diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/deno.json b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/deno.json
index b7aaea8be..97999b7b9 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/deno.json
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/deno.json
@@ -27,8 +27,8 @@
"flowbite-react": "npm:flowbite-react@^0.10.2",
"postcss": "npm:postcss@^8.4.49",
"prop-types": "npm:prop-types@^15.8.1",
- "react": "npm:react@^18.3.1",
- "react-dom": "npm:react-dom@^18.3.1",
+ "react": "https://esm.sh/react@18.2.0",
+ "react-dom": "https://esm.sh/react-dom@18.2.0",
"react-router-dom": "npm:react-router-dom@^7.0.2",
"react-select-async-paginate": "npm:react-select-async-paginate@^0.7.7",
"reflect-metadata": "npm:reflect-metadata@^0.2.2",
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/deno.lock b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/deno.lock
index c98c62b02..5b1c7331f 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/deno.lock
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/deno.lock
@@ -7,7 +7,7 @@
"jsr:@std/path@1": "1.0.8",
"jsr:@udibo/esbuild-plugin-postcss@~0.1.3": "0.1.3",
"npm:@deno/vite-plugin@1": "1.0.2_vite@6.0.5",
- "npm:@ebay/nice-modal-react@^1.2.13": "1.2.13_react@18.3.1_react-dom@18.3.1__react@18.3.1",
+ "npm:@ebay/nice-modal-react@^1.2.13": "1.2.13_react@18.3.1_react-dom@19.0.0__react@19.0.0",
"npm:@rjsf/core@^5.23.2": "5.23.2_@rjsf+utils@5.23.2__react@18.3.1_react@18.3.1",
"npm:@rjsf/validator-ajv6@^5.23.2": "5.23.2_@rjsf+utils@5.23.2__react@18.3.1_react@18.3.1",
"npm:@types/react-dom@^18.3.1": "18.3.5_@types+react@18.3.18",
@@ -15,20 +15,19 @@
"npm:@vitejs/plugin-react-swc@^3.7.1": "3.7.2_vite@6.0.5",
"npm:autoprefixer@^10.4.20": "10.4.20_postcss@8.4.49",
"npm:axios@^1.7.9": "1.7.9",
- "npm:flowbite-react@~0.10.2": "0.10.2_react@18.3.1_react-dom@18.3.1__react@18.3.1_tailwindcss@3.4.17__postcss@8.4.49",
+ "npm:flowbite-react@~0.10.2": "0.10.2_react@18.3.1_react-dom@19.0.0__react@19.0.0_tailwindcss@3.4.17__postcss@8.4.49",
"npm:postcss-modules@6": "6.0.1_postcss@8.4.49",
"npm:postcss@8": "8.4.49",
"npm:postcss@^8.4.49": "8.4.49",
"npm:preact@10.22.1": "10.22.1",
"npm:preact@^10.22.1": "10.25.3",
"npm:prop-types@^15.8.1": "15.8.1",
- "npm:react-dom@^18.3.1": "18.3.1_react@18.3.1",
- "npm:react-router-dom@^7.0.2": "7.0.2_react@18.3.1_react-dom@18.3.1__react@18.3.1",
- "npm:react-select-async-paginate@~0.7.7": "0.7.7_react@18.3.1_react-select@5.9.0__react@18.3.1__react-dom@18.3.1___react@18.3.1__@types+react@18.3.18_react-dom@18.3.1__react@18.3.1_@types+react@18.3.18",
+ "npm:react-router-dom@^7.0.2": "7.1.0_react@18.3.1_react-dom@19.0.0__react@19.0.0",
+ "npm:react-select-async-paginate@~0.7.7": "0.7.7_react@18.3.1_react-select@5.9.0__react@18.3.1__react-dom@19.0.0___react@19.0.0__@types+react@18.3.18_@types+react@18.3.18",
"npm:react@^18.3.1": "18.3.1",
"npm:reflect-metadata@~0.2.2": "0.2.2",
"npm:rxjs@^7.8.1": "7.8.1",
- "npm:styled-components@^6.1.13": "6.1.13_react@18.3.1_react-dom@18.3.1__react@18.3.1",
+ "npm:styled-components@^6.1.13": "6.1.13_react@18.3.1_react-dom@19.0.0__react@19.0.0",
"npm:tailwindcss@^3.4.17": "3.4.17_postcss@8.4.49",
"npm:tsyringe-neo@^5.1.0": "5.1.0",
"npm:use-debounce@^10.0.4": "10.0.4_react@18.3.1",
@@ -151,10 +150,10 @@
"vite"
]
},
- "@ebay/nice-modal-react@1.2.13_react@18.3.1_react-dom@18.3.1__react@18.3.1": {
+ "@ebay/nice-modal-react@1.2.13_react@18.3.1_react-dom@19.0.0__react@19.0.0": {
"integrity": "sha512-jx8xIWe/Up4tpNuM02M+rbnLoxdngTGk3Y8LjJsLGXXcSoKd/+eZStZcAlIO/jwxyz/bhPZnpqPJZWAmhOofuA==",
"dependencies": [
- "react",
+ "react@18.3.1",
"react-dom"
]
},
@@ -210,7 +209,7 @@
"@emotion/utils",
"@emotion/weak-memoize",
"hoist-non-react-statics",
- "react"
+ "react@18.3.1"
]
},
"@emotion/serialize@1.3.3": {
@@ -235,7 +234,7 @@
"@emotion/use-insertion-effect-with-fallbacks@1.2.0_react@18.3.1": {
"integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==",
"dependencies": [
- "react"
+ "react@18.3.1"
]
},
"@emotion/utils@1.4.2": {
@@ -329,20 +328,20 @@
"@floating-ui/utils"
]
},
- "@floating-ui/react-dom@2.1.2_react@18.3.1_react-dom@18.3.1__react@18.3.1": {
+ "@floating-ui/react-dom@2.1.2_react@18.3.1_react-dom@19.0.0__react@19.0.0": {
"integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==",
"dependencies": [
"@floating-ui/dom",
- "react",
+ "react@18.3.1",
"react-dom"
]
},
- "@floating-ui/react@0.26.21_react@18.3.1_react-dom@18.3.1__react@18.3.1": {
+ "@floating-ui/react@0.26.21_react@18.3.1_react-dom@19.0.0__react@19.0.0": {
"integrity": "sha512-7P5ncDIiYd6RrwpCDbKyFzvabM014QlzlumtDbK3Bck0UueC+Rp8BLS34qcGBcN1pZCTodl4QNnCVmKv4tSxfQ==",
"dependencies": [
"@floating-ui/react-dom",
"@floating-ui/utils",
- "react",
+ "react@18.3.1",
"react-dom",
"tabbable"
]
@@ -417,7 +416,7 @@
"markdown-to-jsx",
"nanoid",
"prop-types",
- "react"
+ "react@18.3.1"
]
},
"@rjsf/utils@5.23.2_react@18.3.1": {
@@ -427,7 +426,7 @@
"jsonpointer",
"lodash",
"lodash-es",
- "react",
+ "react@18.3.1",
"react-is@18.3.1"
]
},
@@ -621,7 +620,7 @@
"@vtaits/use-lazy-ref@0.1.3_react@18.3.1": {
"integrity": "sha512-ZTLuFBHSivPcgWrwkXe5ExVt6R3/ybD+N0yFPy4ClzCztk/9bUD/1udKQ/jd7eCal+lapSrRWXbffqI9jkpDlg==",
"dependencies": [
- "react"
+ "react@18.3.1"
]
},
"ajv@6.12.6": {
@@ -945,7 +944,7 @@
"flowbite"
]
},
- "flowbite-react@0.10.2_react@18.3.1_react-dom@18.3.1__react@18.3.1_tailwindcss@3.4.17__postcss@8.4.49": {
+ "flowbite-react@0.10.2_react@18.3.1_react-dom@19.0.0__react@19.0.0_tailwindcss@3.4.17__postcss@8.4.49": {
"integrity": "sha512-qkayK6IFmfH7zuuDnHmS0hJxLtL0KpW4vo4i/VQfZ6ZfaNlUsNLQxCGcmXwbZZtUm2WVw8x71aaDOAxftG9tmg==",
"dependencies": [
"@floating-ui/core",
@@ -953,7 +952,7 @@
"classnames",
"debounce",
"flowbite",
- "react",
+ "react@18.3.1",
"react-dom",
"react-icons",
"tailwind-merge",
@@ -1160,7 +1159,7 @@
"markdown-to-jsx@7.7.2_react@18.3.1": {
"integrity": "sha512-N3AKfYRvxNscvcIH6HDnDKILp4S8UWbebp+s92Y8SwIq0CuSbLW4Jgmrbjku3CWKjTQO0OyIMS6AhzqrwjEa3g==",
"dependencies": [
- "react"
+ "react@18.3.1"
]
},
"memoize-one@6.0.0": {
@@ -1405,18 +1404,17 @@
"queue-microtask@1.2.3": {
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
},
- "react-dom@18.3.1_react@18.3.1": {
- "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
+ "react-dom@19.0.0_react@19.0.0": {
+ "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==",
"dependencies": [
- "loose-envify",
- "react",
+ "react@19.0.0",
"scheduler"
]
},
"react-icons@5.2.1_react@18.3.1": {
"integrity": "sha512-zdbW5GstTzXaVKvGSyTaBalt7HSfuK5ovrzlpyiWHAFXndXTdd/1hdDHI4xBM1Mn7YriT6aqESucFl9kEXzrdw==",
"dependencies": [
- "react"
+ "react@18.3.1"
]
},
"react-is@16.13.1": {
@@ -1425,39 +1423,39 @@
"react-is@18.3.1": {
"integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="
},
- "react-router-dom@7.0.2_react@18.3.1_react-dom@18.3.1__react@18.3.1": {
- "integrity": "sha512-VJOQ+CDWFDGaWdrG12Nl+d7yHtLaurNgAQZVgaIy7/Xd+DojgmYLosFfZdGz1wpxmjJIAkAMVTKWcvkx1oggAw==",
+ "react-router-dom@7.1.0_react@18.3.1_react-dom@19.0.0__react@19.0.0": {
+ "integrity": "sha512-F4/nYBC9e4s0/ZjxM8GkZ9a68DpX76LN1a9W9mfPl2GfbDJ9/vzJro6MThNR5qGBH6KkgcK1BziyEzXhHV46Xw==",
"dependencies": [
- "react",
+ "react@18.3.1",
"react-dom",
"react-router"
]
},
- "react-router@7.0.2_react@18.3.1_react-dom@18.3.1__react@18.3.1": {
- "integrity": "sha512-m5AcPfTRUcjwmhBzOJGEl6Y7+Crqyju0+TgTQxoS4SO+BkWbhOrcfZNq6wSWdl2BBbJbsAoBUb8ZacOFT+/JlA==",
+ "react-router@7.1.0_react@18.3.1_react-dom@19.0.0__react@19.0.0": {
+ "integrity": "sha512-VcFhWqkNIcojDRYaUO8qV0Jib52s9ULpCp3nkBbmrvtoCVFRp6tmk3tJ2w9BZauVctA1YRnJlFYDn9iJRuCpGA==",
"dependencies": [
"@types/cookie",
"cookie",
- "react",
+ "react@18.3.1",
"react-dom",
"set-cookie-parser",
"turbo-stream"
]
},
- "react-select-async-paginate@0.7.7_react@18.3.1_react-select@5.9.0__react@18.3.1__react-dom@18.3.1___react@18.3.1__@types+react@18.3.18_react-dom@18.3.1__react@18.3.1_@types+react@18.3.18": {
+ "react-select-async-paginate@0.7.7_react@18.3.1_react-select@5.9.0__react@18.3.1__react-dom@19.0.0___react@19.0.0__@types+react@18.3.18_@types+react@18.3.18": {
"integrity": "sha512-4u8ULcwVOY9CFMuEMwb8LnTqcVaalZHWJEYuaTlhkORh20/jGMcMKwzAfOsBD/eViUYYCOYBARbFoZ1hwcVt/g==",
"dependencies": [
"@seznam/compose-react-refs",
"@vtaits/use-lazy-ref",
"krustykrab",
- "react",
+ "react@18.3.1",
"react-select",
"sleep-promise",
"use-is-mounted-ref",
"use-latest"
]
},
- "react-select@5.9.0_react@18.3.1_react-dom@18.3.1__react@18.3.1_@types+react@18.3.18": {
+ "react-select@5.9.0_react@18.3.1_react-dom@19.0.0__react@19.0.0_@types+react@18.3.18": {
"integrity": "sha512-nwRKGanVHGjdccsnzhFte/PULziueZxGD8LL2WojON78Mvnq7LdAMEtu2frrwld1fr3geixg3iiMBIc/LLAZpw==",
"dependencies": [
"@babel/runtime",
@@ -1467,20 +1465,20 @@
"@types/react-transition-group",
"memoize-one",
"prop-types",
- "react",
+ "react@18.3.1",
"react-dom",
"react-transition-group",
"use-isomorphic-layout-effect"
]
},
- "react-transition-group@4.4.5_react@18.3.1_react-dom@18.3.1__react@18.3.1": {
+ "react-transition-group@4.4.5_react@18.3.1_react-dom@19.0.0__react@19.0.0": {
"integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
"dependencies": [
"@babel/runtime",
"dom-helpers",
"loose-envify",
"prop-types",
- "react",
+ "react@18.3.1",
"react-dom"
]
},
@@ -1490,6 +1488,9 @@
"loose-envify"
]
},
+ "react@19.0.0": {
+ "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ=="
+ },
"read-cache@1.0.0": {
"integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
"dependencies": [
@@ -1560,11 +1561,8 @@
"tslib@2.8.1"
]
},
- "scheduler@0.23.2": {
- "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
- "dependencies": [
- "loose-envify"
- ]
+ "scheduler@0.25.0": {
+ "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA=="
},
"set-cookie-parser@2.7.1": {
"integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ=="
@@ -1624,7 +1622,7 @@
"ansi-regex@6.1.0"
]
},
- "styled-components@6.1.13_react@18.3.1_react-dom@18.3.1__react@18.3.1": {
+ "styled-components@6.1.13_react@18.3.1_react-dom@19.0.0__react@19.0.0": {
"integrity": "sha512-M0+N2xSnAtwcVAQeFEsGWFFxXDftHUD7XrKla06QbpUMmbmtFBMMTcKWvFXtWxuD5qQkB8iU5gk6QASlx2ZRMw==",
"dependencies": [
"@emotion/is-prop-valid",
@@ -1633,7 +1631,7 @@
"css-to-react-native",
"csstype",
"postcss@8.4.38",
- "react",
+ "react@18.3.1",
"react-dom",
"shallowequal",
"stylis@4.3.2",
@@ -1747,25 +1745,25 @@
"use-debounce@10.0.4_react@18.3.1": {
"integrity": "sha512-6Cf7Yr7Wk7Kdv77nnJMf6de4HuDE4dTxKij+RqE9rufDsI6zsbjyAxcH5y2ueJCQAnfgKbzXbZHYlkFwmBlWkw==",
"dependencies": [
- "react"
+ "react@18.3.1"
]
},
"use-is-mounted-ref@1.5.0_react@18.3.1": {
"integrity": "sha512-p5FksHf/ospZUr5KU9ese6u3jp9fzvZ3wuSb50i0y6fdONaHWgmOqQtxR/PUcwi6hnhQDbNxWSg3eTK3N6m+dg==",
"dependencies": [
- "react"
+ "react@18.3.1"
]
},
"use-isomorphic-layout-effect@1.2.0_react@18.3.1": {
"integrity": "sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w==",
"dependencies": [
- "react"
+ "react@18.3.1"
]
},
"use-latest@1.3.0_react@18.3.1": {
"integrity": "sha512-mhg3xdm9NaM8q+gLT8KryJPnRFOz1/5XPBhmDEVZK1webPzDjrPk7f/mbpeLqTgB9msytYWANxgALOCJKnLvcQ==",
"dependencies": [
- "react",
+ "react@18.3.1",
"use-isomorphic-layout-effect"
]
},
@@ -1835,6 +1833,18 @@
"integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg=="
}
},
+ "redirects": {
+ "https://esm.sh/v128/@types/react@~18.2/index.d.ts": "https://esm.sh/v128/@types/react@18.2.38/index.d.ts",
+ "https://esm.sh/v135/@types/react-dom@~18.2/index.d.ts": "https://esm.sh/v135/@types/react-dom@18.2.25/index.d.ts"
+ },
+ "remote": {
+ "https://esm.sh/react-dom@18.2.0": "0f6e9183d72c65d9873a8eae2c6c872df9b85cde317dbc0ca3d7447bab8e4ec3",
+ "https://esm.sh/react@18.2.0": "04ad7dc6d11fa27b24c136686a334ecdd19e972fae627cd98cbdc13cdac238c2",
+ "https://esm.sh/stable/react@18.2.0/denonext/react.mjs": "3c4f23bcfc53b256fcfaf6f834fa9f584c3bb7be667b2682c6cb6ba8ef88f8e6",
+ "https://esm.sh/v135/react-dom@18.2.0/denonext/react-dom.mjs": "8191fc377ea7083cca5640699c4abd75de033089eb932799e29aa04bb136838f",
+ "https://esm.sh/v135/scheduler@0.23.0/denonext/scheduler.mjs": "cdbc6d2823e2c6fffcb14501146ff2602a38c48d3c9dd9268f308e833ede2b49",
+ "https://esm.sh/v135/scheduler@0.23.2/denonext/scheduler.mjs": "dc96e5be52b14a40ce36295d938d5211e520c4da3183fe2ad4283ed103747d82"
+ },
"workspace": {
"dependencies": [
"jsr:@preact-icons/bs@^1.0.12",
@@ -1852,10 +1862,8 @@
"npm:flowbite-react@~0.10.2",
"npm:postcss@^8.4.49",
"npm:prop-types@^15.8.1",
- "npm:react-dom@^18.3.1",
"npm:react-router-dom@^7.0.2",
"npm:react-select-async-paginate@~0.7.7",
- "npm:react@^18.3.1",
"npm:reflect-metadata@~0.2.2",
"npm:rxjs@^7.8.1",
"npm:styled-components@^6.1.13",
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/app/app.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/app/app.tsx
index 82563eb09..62b57582c 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/app/app.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/app/app.tsx
@@ -1,6 +1,6 @@
import * as Eta from 'eta'
-import { Token } from '../services/token'
-import {container} from "tsyringe"
+import Token from '../services/token'
+import {container} from "tsyringe-neo"
import React from 'react'
import ReactDOM from 'react-dom/client'
import NiceModal from "@ebay/nice-modal-react"
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/assets/index.css b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/assets/index.css
new file mode 100644
index 000000000..bcf21ebb3
--- /dev/null
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/assets/index.css
@@ -0,0 +1,5 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/main.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/main.tsx
index 97c0f01ad..3b1cd99f3 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/main.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/main.tsx
@@ -1,9 +1,9 @@
+import "./assets/index.css"
import "reflect-metadata";
import * as $ from "jquery";
import { App } from "./app/app";
declare var jwt_token: String;
-
let app = new App(jwt_token);
app.init();
app.run();
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/model/order.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/model/order.ts
index f51d79fb3..ad93a53f1 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/model/order.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/model/order.ts
@@ -7,7 +7,7 @@ import {Payment} from "./payment"
import {Shipping} from "./shipping"
import {Shop} from "./shop"
-export class Order {
+class Order {
alias: String
uuid: String
@@ -70,4 +70,6 @@ export class Order {
this.positions.push(pos)
})
}
-}
\ No newline at end of file
+}
+
+export default Order
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/account/AccountSelectComponent.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/account/AccountSelectComponent.tsx
index 317ac6de6..7091044da 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/account/AccountSelectComponent.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/account/AccountSelectComponent.tsx
@@ -1,11 +1,11 @@
import { AsyncPaginate } from "react-select-async-paginate"
-import { AccountService } from '../../services/account'
-import { container } from 'tsyringe'
-import { OrderState } from '../../state/order'
+import AccountService from '../../services/account'
+import { container } from 'tsyringe-neo'
+import OrderState from '../../state/order'
import {useEffect, useState} from 'react'
import * as PropTypes from 'prop-types'
import { Shop } from '../../model/shop'
-import {Order} from "../../model/order"
+import Order from "../../model/order"
import { SelectLabel } from "../base/SelectLabel"
import React from 'react'
const AccountSelectComponent = ({shop, order}) => {
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/base/BaseComponent.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/base/BaseComponent.tsx
index 29435c5a6..a1fd9264d 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/base/BaseComponent.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/base/BaseComponent.tsx
@@ -3,14 +3,14 @@ import ContactComponent from '../contact/ContactComponent'
import TopBarComponent from '../topbar/TopBarComponent'
import PositionsComponent from '../positions/PositionsComponent'
import {useEffect, useState} from 'react'
-import {Order} from "../../model/order"
+import Order from "../../model/order"
import PaymentComponent from "../payment/PaymentComponent"
import ShippingComponent from "../shipping/ShippingComponent"
import ButtonComponent from "../button/ButtonComponent"
import {useParams} from "react-router-dom"
-import {container} from "tsyringe"
-import {OrderState} from "../../state/order"
-import {OrderService} from "../../services/order"
+import {container} from "tsyringe-neo"
+import OrderState from "../../state/order"
+import OrderService from "../../services/order"
import InfoFieldComponent from "../info/InfoFieldComponent"
import React from 'react'
import OrderAliasComponent from '../order/OrderAliasComponent'
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/base/Button.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/base/Button.tsx
index 68e1f5723..a47d7fedb 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/base/Button.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/base/Button.tsx
@@ -1,6 +1,3 @@
-import { BsPlus } from "@react-icons/all-files/bs/BsPlus"
-import { BsPencil } from "@react-icons/all-files/bs/BsPencil"
-import { RiSaveFill } from "@react-icons/all-files/ri/RiSaveFill"
import { RiDeleteBin2Line, RiSaveFill } from "@preact-icons/ri"
import { BsXCircle, BsPlus, BsPencil } from "@preact-icons/bs"
import { Button as BaseButton } from "flowbite-react"
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/button/ButtonComponent.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/button/ButtonComponent.tsx
index aab7f1ffe..0ad7b94ee 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/button/ButtonComponent.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/button/ButtonComponent.tsx
@@ -1,6 +1,6 @@
-import { OrderState } from '../../state/order'
-import {container} from "tsyringe"
-import { OrderService } from '../../services/order'
+import OrderState from '../../state/order'
+import {container} from "tsyringe-neo"
+import OrderService from '../../services/order'
import { Component } from 'react'
import {debounceTime} from "rxjs"
import {Order} from "../../model/order"
@@ -54,10 +54,10 @@ class ButtonComponent extends Component<{loadOrder},{disabled: boolean}> {
return (
)
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/calc/CalcComponent.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/calc/CalcComponent.tsx
index 899f260f5..62c393695 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/calc/CalcComponent.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/calc/CalcComponent.tsx
@@ -1,10 +1,10 @@
import React from 'react'
import * as PropTypes from "prop-types"
-import {Order} from "../../model/order"
-import {container} from "tsyringe"
-import {OrderState} from "../../state/order"
+import Order from "../../model/order"
+import {container} from "tsyringe-neo"
+import OrderState from "../../state/order"
import { debounceTime } from 'rxjs'
-import {OrderService} from "../../services/order"
+import OrderService from "../../services/order"
import Currency from "../base/Currency"
type MyState = {
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/AddressModal.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/AddressModal.tsx
index a724ce7b1..5091dff40 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/AddressModal.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/AddressModal.tsx
@@ -4,7 +4,7 @@ import Button from '../base/Button'
import {RJSFSchema} from "@rjsf/utils"
import validator from "@rjsf/validator-ajv6"
import Form from "@rjsf/core"
-import { CountryService } from '../../services/country'
+import CountryService from '../../services/country'
import { Modal } from "flowbite-react"
import React from 'react'
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/AddressSelect.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/AddressSelect.tsx
index 9cacc16f5..8dc8b44a7 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/AddressSelect.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/AddressSelect.tsx
@@ -2,10 +2,10 @@ import * as PropTypes from 'prop-types'
import { AsyncPaginate } from "react-select-async-paginate"
import { Contact } from '../../model/contact'
import { Address } from '../../model/address'
-import {container} from "tsyringe"
+import {container} from "tsyringe-neo"
import {useEffect,useState} from 'react'
-import {OrderState} from "../../state/order"
-import {AddressService} from "../../services/address"
+import OrderState from "../../state/order"
+import AddressService from "../../services/address"
import AddressModalComponent from "./AddressModalComponent"
import { SelectLabel } from '../base/SelectLabel'
import AddressDetail from './AddressDetail'
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/ContactComponent.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/ContactComponent.tsx
index 301a12a8c..44eb63545 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/ContactComponent.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/ContactComponent.tsx
@@ -5,10 +5,10 @@ import AddressSelect from './AddressSelect'
import {Contact} from '../../model/contact'
import {Address} from '../../model/address'
import {useEffect, useState} from 'react'
-import { OrderState } from '../../state/order'
-import {container} from "tsyringe"
+import OrderState from '../../state/order'
+import {container} from "tsyringe-neo"
import AccountSelectComponent from '../account/AccountSelectComponent'
-import { Order } from '../../model/order'
+import Order from '../../model/order'
import { Shop } from '../../model/shop'
import React from 'react'
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/ContactModal.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/ContactModal.tsx
index f1641d217..dfe9ed026 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/ContactModal.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/ContactModal.tsx
@@ -5,7 +5,7 @@ import {RJSFSchema} from "@rjsf/utils";
import {Contact} from "../../model/contact";
import validator from "@rjsf/validator-ajv6";
import Form from "@rjsf/core";
-import {CountryService} from "../../services/country";
+import CountryService from "../../services/country";
import { Modal } from "flowbite-react";
import React from 'react'
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/ContactModalComponent.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/ContactModalComponent.tsx
index 19f2d9ce4..0a561012c 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/ContactModalComponent.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/ContactModalComponent.tsx
@@ -5,9 +5,9 @@ import Button from "../base/Button"
import ContactModal from "./ContactModal"
import { useCallback } from 'react'
import { useModal } from '@ebay/nice-modal-react'
-import { ContactService } from "../../services/contact"
+import ContactService from "../../services/contact"
import { Address } from "../../model/address"
-import { AddressService } from "../../services/address"
+import AddressService from "../../services/address"
import React from 'react'
const ContactModalComponent = ({shop, handleAdd, handleEdit, contact}) => {
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/ContactSelect.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/ContactSelect.tsx
index b7e9d9a1d..62d53c82f 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/ContactSelect.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/contact/ContactSelect.tsx
@@ -1,13 +1,13 @@
import * as PropTypes from 'prop-types'
import { AsyncPaginate } from "react-select-async-paginate"
import { Contact } from '../../model/contact'
-import {ContactService} from '../../services/contact'
+import ContactService from '../../services/contact'
import { Shop } from '../../model/shop'
import {useEffect, useState} from 'react'
-import { container } from 'tsyringe'
-import { OrderState } from '../../state/order'
+import { container } from 'tsyringe-neo'
+import OrderState from '../../state/order'
import ContactModalComponent from "./ContactModalComponent"
-import { Order } from '../../model/order'
+import Order from '../../model/order'
import { SelectLabel } from '../base/SelectLabel'
import React from 'react'
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/draft/DraftComponent.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/draft/DraftComponent.tsx
index 376f86fbf..9e937729d 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/draft/DraftComponent.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/draft/DraftComponent.tsx
@@ -1,6 +1,6 @@
import {useEffect, useState} from 'react'
-import { container } from 'tsyringe'
-import { OrderState } from '../../state/order'
+import { container } from 'tsyringe-neo'
+import OrderState from'../../state/order'
import { SelectLabel } from '../base/SelectLabel'
import React from 'react'
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/info/InfoFieldComponent.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/info/InfoFieldComponent.tsx
index 2a32470f9..3e4764328 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/info/InfoFieldComponent.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/info/InfoFieldComponent.tsx
@@ -1,10 +1,10 @@
import { AsyncPaginate } from "react-select-async-paginate"
-import {ShippingService} from "../../services/shipping"
+import ShippingService from "../../services/shipping"
import * as PropTypes from "prop-types"
import {Shop} from "../../model/shop"
-import {container} from "tsyringe"
-import {OrderState} from "../../state/order"
-import {Order} from "../../model/order"
+import {container} from "tsyringe-neo"
+import OrderState from "../../state/order"
+import Order from "../../model/order"
import {useEffect, useState} from "react"
import React from 'react'
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/order/OrderAliasComponent.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/order/OrderAliasComponent.tsx
index c8b88c8a3..63e8ca7bd 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/order/OrderAliasComponent.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/order/OrderAliasComponent.tsx
@@ -1,6 +1,6 @@
import * as React from 'react';
import * as PropTypes from "prop-types";
-import {Order} from "../../model/order";
+import Order from "../../model/order";
const OrderAliasComponent = ({order}) => {
@@ -15,4 +15,4 @@ OrderAliasComponent.propTypes = {
order: PropTypes.instanceOf(Order),
};
-export default OrderAliasComponent;
\ No newline at end of file
+export default OrderAliasComponent;
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/payment/PaymentComponent.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/payment/PaymentComponent.tsx
index 9c7f00b2c..7ad4f248d 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/payment/PaymentComponent.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/payment/PaymentComponent.tsx
@@ -1,11 +1,11 @@
import * as React from 'react'
import { AsyncPaginate } from "react-select-async-paginate"
-import { PaymentService } from "../../services/payment"
+import PaymentService from "../../services/payment"
import * as PropTypes from "prop-types"
import { Shop } from "../../model/shop"
-import { container } from "tsyringe"
-import { OrderState } from "../../state/order"
-import { Order } from "../../model/order"
+import { container } from "tsyringe-neo"
+import OrderState from "../../state/order"
+import Order from "../../model/order"
import { useEffect, useState } from "react"
import Select from 'react-select'
import { SelectLabel } from '../base/SelectLabel'
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/positions/AddPositionComponent.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/positions/AddPositionComponent.tsx
index 772a84869..0694eabdb 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/positions/AddPositionComponent.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/positions/AddPositionComponent.tsx
@@ -7,7 +7,7 @@ import {ProductGroup} from "../../model/productGroup"
import ProductGroupSelect from "../product/ProductGroupSelect"
import ProductSelect from "../product/ProductSelect"
import ProductForm from "../product/ProductForm"
-import {Order} from "../../model/order"
+import Order from "../../model/order"
import { Pos } from '../../model/pos'
import Button from '../base/Button'
import { Modal } from "flowbite-react";
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/positions/PositionsComponent.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/positions/PositionsComponent.tsx
index 642f6ff80..c784d050e 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/positions/PositionsComponent.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/positions/PositionsComponent.tsx
@@ -5,9 +5,8 @@ import * as PropTypes from "prop-types"
import { Shop } from '../../model/shop'
import {useEffect, useState} from "react"
import {Pos} from "../../model/pos"
-import {Order} from "../../model/order"
-import {container} from "tsyringe"
-import {OrderState} from "../../state/order"
+import Order from "../../model/order"
+import OrderState from "../../state/order"
const PositionsComponent = ({order, shop, updateOrder}) => {
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/product/ProductForm.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/product/ProductForm.tsx
index 3c7b6f271..e7e96b60e 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/product/ProductForm.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/product/ProductForm.tsx
@@ -3,9 +3,9 @@ import { Shop } from '../../model/shop'
import {Product} from "../../model/product"
import validator from "@rjsf/validator-ajv6"
import { JSONSchema7 } from "json-schema"
-import { container } from 'tsyringe'
+import { container } from 'tsyringe-neo'
import Form from "@rjsf/core"
-import {ProductService} from "../../services/product"
+import ProductService from "../../services/product"
import {useEffect, useRef, useState} from "react"
import {Price} from "../../model/price"
import {Pos} from "../../model/pos"
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/product/ProductGroupSelect.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/product/ProductGroupSelect.tsx
index f57196c3d..e1a36a0dd 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/product/ProductGroupSelect.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/product/ProductGroupSelect.tsx
@@ -1,9 +1,9 @@
import * as PropTypes from 'prop-types';
import { Shop } from '../../model/shop';
-import { container } from 'tsyringe';
-import { OrderState } from '../../state/order';
+import { container } from 'tsyringe-neo';
+import OrderState from '../../state/order';
import {ProductGroup} from "../../model/productGroup";
-import {ProductGroupService} from "../../services/productgroup";
+import ProductGroupService from "../../services/productgroup";
import AsyncSelect , { useAsync } from 'react-select/async';
import React from 'react'
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/product/ProductSelect.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/product/ProductSelect.tsx
index 8b04ff9d4..5ac9aaef1 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/product/ProductSelect.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/product/ProductSelect.tsx
@@ -1,11 +1,11 @@
import * as PropTypes from 'prop-types';
import { Shop } from '../../model/shop';
-import { container } from 'tsyringe';
-import { OrderState } from '../../state/order';
+import { container } from 'tsyringe-neo';
+import OrderState from '../../state/order';
import {Product} from "../../model/product";
import {ProductGroup} from "../../model/productGroup";
import AsyncSelect from "react-select/async";
-import {ProductService} from "../../services/product";
+import ProductService from "../../services/product";
import {useDebounce} from "use-debounce";
import React from 'react'
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/shipping/ShippingComponent.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/shipping/ShippingComponent.tsx
index 5177885d8..99a5e6b9c 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/shipping/ShippingComponent.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/shipping/ShippingComponent.tsx
@@ -1,11 +1,11 @@
import * as React from 'react'
import { AsyncPaginate } from "react-select-async-paginate"
-import {ShippingService} from "../../services/shipping"
+import ShippingService from "../../services/shipping"
import * as PropTypes from "prop-types"
import {Shop} from "../../model/shop"
-import {container} from "tsyringe"
-import {OrderState} from "../../state/order"
-import {Order} from "../../model/order"
+import {container} from "tsyringe-neo"
+import OrderState from "../../state/order"
+import Order from "../../model/order"
import {useEffect, useState} from "react"
import { SelectLabel } from '../base/SelectLabel'
import React from 'react'
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/shop/ShopSelectComponent.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/shop/ShopSelectComponent.tsx
index ba2062b33..3d37db6c7 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/shop/ShopSelectComponent.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/shop/ShopSelectComponent.tsx
@@ -1,7 +1,7 @@
import { AsyncPaginate } from "react-select-async-paginate"
-import { ShopService } from '../../services/shop'
-import { container } from 'tsyringe'
-import { OrderState } from '../../state/order'
+import ShopService from '../../services/shop'
+import { container } from 'tsyringe-neo'
+import OrderState from '../../state/order'
import { SelectLabel } from '../base/SelectLabel'
import React from 'react'
@@ -10,9 +10,11 @@ const ShopSelectComponent = (props) => {
const orderState = container.resolve(OrderState)
const shop_service = container.resolve(ShopService)
+ const token_service = container.resolve(Token)
const loadOptions = async (searchQuery, loadedOptions) => {
+ console.log(token_service)
const data = await shop_service.getShops()
return {
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/topbar/TopBarComponent.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/topbar/TopBarComponent.tsx
index 95156958f..bd4950edc 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/topbar/TopBarComponent.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/topbar/TopBarComponent.tsx
@@ -3,7 +3,7 @@ import ShopSelectComponent from '../shop/ShopSelectComponent'
import * as PropTypes from "prop-types"
import {Shop} from "../../model/shop"
import DraftComponent from "../draft/DraftComponent"
-import {Order} from "../../model/order"
+import Order from "../../model/order"
import CalcComponent from '../calc/CalcComponent'
import React from 'react'
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/type/TypeSelectComponent.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/type/TypeSelectComponent.tsx
index 5549baae8..ad3ad3cd1 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/type/TypeSelectComponent.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/type/TypeSelectComponent.tsx
@@ -1,7 +1,7 @@
import Select from 'react-select'
import {useEffect, useState} from 'react'
-import { container } from 'tsyringe'
-import { OrderState } from '../../state/order'
+import { container } from 'tsyringe-neo'
+import OrderState from '../../state/order'
import { SelectLabel } from '../base/SelectLabel'
import React from 'react'
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/account.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/account.ts
index f17ba0182..96080a451 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/account.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/account.ts
@@ -1,4 +1,4 @@
-import {autoInjectable, singleton} from "tsyringe";
+import {autoInjectable, singleton} from "tsyringe-neo";
import { Token } from "./token";
import axios from 'axios';
import { Account } from "../model/account";
@@ -6,7 +6,7 @@ import { Shop } from "../model/shop";
@singleton()
@autoInjectable()
-export class AccountService {
+class AccountService {
constructor(private token?: Token) {}
async getAccounts(shop: Shop): Promise {
@@ -28,3 +28,5 @@ export class AccountService {
});
}
}
+
+export default AccountService
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/address.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/address.ts
index 9be239e39..c51a80b90 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/address.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/address.ts
@@ -1,11 +1,11 @@
-import {autoInjectable, singleton} from "tsyringe"
+import {autoInjectable, singleton} from "tsyringe-neo"
import { Token } from "./token"
import axios from 'axios'
import { Address } from "../model/address"
@singleton()
@autoInjectable()
-export class AddressService {
+class AddressService {
constructor(private token?: Token) {}
async create(address: Address): Promise {
@@ -55,3 +55,5 @@ export class AddressService {
})
}
}
+
+export default AddressService
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/contact.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/contact.ts
index 8015a9cd9..c5284c0b6 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/contact.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/contact.ts
@@ -1,4 +1,4 @@
-import {autoInjectable, singleton} from "tsyringe";
+import {autoInjectable, singleton} from "tsyringe-neo";
import { Token } from "./token";
import axios from 'axios';
import { Contact } from "../model/contact";
@@ -7,7 +7,7 @@ import { Shop } from "../model/shop";
@singleton()
@autoInjectable()
-export class ContactService {
+class ContactService {
constructor(private token?: Token) {}
async createContact(contact: Contact): Promise {
@@ -49,3 +49,5 @@ export class ContactService {
}
}
+
+export default ContactService
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/country.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/country.ts
index bbba575bb..7aa19eeb6 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/country.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/country.ts
@@ -1,11 +1,11 @@
-import {autoInjectable, singleton} from "tsyringe"
+import {autoInjectable, singleton} from "tsyringe-neo"
import axios from 'axios'
import { Shop } from "../model/shop"
import { Country } from "../model/country"
@singleton()
@autoInjectable()
-export class CountryService {
+class CountryService {
async getCountry(shop: Shop): Promise {
@@ -19,3 +19,5 @@ export class CountryService {
})
}
}
+
+export default CountryService
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/order.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/order.ts
index 461b2dbc3..6ef5391d2 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/order.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/order.ts
@@ -1,11 +1,11 @@
-import {autoInjectable, singleton} from "tsyringe";
+import {autoInjectable, singleton} from "tsyringe-neo";
import { Token } from "./token";
import axios from 'axios';
-import {Order} from "../model/order";
+import Order from "../model/order";
@singleton()
@autoInjectable()
-export class OrderService {
+class OrderService {
constructor(private token?: Token) {}
@@ -35,7 +35,7 @@ export class OrderService {
});
}
- async calcOrder(order: Order): Promise {
+ public async calcOrder(order: Order): Promise {
return await axios.post('/apps/api/order/calc', order ,{
headers: {
@@ -47,3 +47,5 @@ export class OrderService {
}
}
+
+export default OrderService
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/payment.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/payment.ts
index e73dfb4b7..ed290c493 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/payment.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/payment.ts
@@ -1,4 +1,4 @@
-import {autoInjectable, singleton} from "tsyringe"
+import {autoInjectable, singleton} from "tsyringe-neo"
import { Token } from "./token"
import axios from 'axios'
import { Shop } from "../model/shop"
@@ -6,7 +6,7 @@ import {Payment} from "../model/payment"
@singleton()
@autoInjectable()
-export class PaymentService {
+class PaymentService {
constructor(private token?: Token) {}
async getPayments(shop: Shop): Promise {
@@ -27,3 +27,5 @@ export class PaymentService {
})
}
}
+
+export default PaymentService
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/product.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/product.ts
index af22acda3..669c2cdc5 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/product.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/product.ts
@@ -1,4 +1,4 @@
-import {autoInjectable, singleton} from "tsyringe";
+import {autoInjectable, singleton} from "tsyringe-neo";
import { Token } from "./token";
import axios from 'axios';
import { Shop } from "../model/shop";
@@ -8,7 +8,7 @@ import {JSONSchema7} from "json-schema";
@singleton()
@autoInjectable()
-export class ProductService {
+class ProductService {
constructor(private token?: Token) {}
async getProductsByTerm(term: string, shop: Shop): Promise {
@@ -71,3 +71,5 @@ export class ProductService {
})
}
}
+
+export default ProductService
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/productgroup.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/productgroup.ts
index 8f5c64750..80ba7f37b 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/productgroup.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/productgroup.ts
@@ -1,4 +1,4 @@
-import {autoInjectable, singleton} from "tsyringe";
+import {autoInjectable, singleton} from "tsyringe-neo";
import { Token } from "./token";
import axios from 'axios';
import { Shop } from "../model/shop";
@@ -6,7 +6,7 @@ import {ProductGroup} from "../model/productGroup";
@singleton()
@autoInjectable()
-export class ProductGroupService {
+class ProductGroupService {
constructor(private token?: Token) {}
async getProductGroups(searchQuery: String, shop: Shop): Promise {
@@ -42,3 +42,5 @@ export class ProductGroupService {
})
}
}
+
+export default ProductGroupService
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/shipping.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/shipping.ts
index 79eec138d..6edcf0e23 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/shipping.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/shipping.ts
@@ -1,4 +1,4 @@
-import {autoInjectable, singleton} from "tsyringe"
+import {autoInjectable, singleton} from "tsyringe-neo"
import { Token } from "./token"
import axios from 'axios'
import { Shop } from "../model/shop"
@@ -6,7 +6,7 @@ import {Shipping} from "../model/shipping"
@singleton()
@autoInjectable()
-export class ShippingService {
+class ShippingService {
constructor(private token?: Token) {}
async getShipping(shop: Shop): Promise {
@@ -27,3 +27,5 @@ export class ShippingService {
})
}
}
+
+export default ShippingService
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/shop.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/shop.ts
index 08340e2f2..e41c412b6 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/shop.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/shop.ts
@@ -1,16 +1,17 @@
-import {autoInjectable, singleton} from "tsyringe"
+import {autoInjectable, singleton} from "tsyringe-neo"
import { Token } from "./token"
import axios from 'axios'
import { Shop } from "../model/shop"
@singleton()
@autoInjectable()
-export class ShopService {
- constructor(private token: Token) {}
+class ShopService {
+ constructor(token?: Token) {
+ console.log(token)
+ }
async getShops(): Promise {
- console.log(this.token)
return await axios.get('/apps/api/shops', {
headers: {
'Authorization': 'Bearer ' + this.token.currentToken
@@ -25,3 +26,5 @@ export class ShopService {
})
}
}
+
+export default ShopService
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/token.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/token.ts
index da1d3b064..f9dede8cb 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/token.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/token.ts
@@ -1,8 +1,8 @@
import axios from "axios"
-import {singleton} from "tsyringe"
+import {singleton} from "tsyringe-neo"
@singleton()
-export class Token {
+class Token {
public currentToken:String
init() {
@@ -20,3 +20,5 @@ export class Token {
})
}
}
+
+export default Token
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/state/order.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/state/order.ts
index c3d3b70c2..b61d6897a 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/state/order.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/state/order.ts
@@ -1,10 +1,10 @@
-import {singleton} from "tsyringe"
-import {Order} from "../model/order"
+import {singleton} from "tsyringe-neo"
+import Order from "../model/order"
import {observeObject} from "../lib/ob-ob"
import {BehaviorSubject, Observable, of, Subject} from "rxjs"
@singleton()
-export class OrderState {
+class OrderState {
orders: Array
private currentOrder: BehaviorSubject
@@ -29,3 +29,5 @@ export class OrderState {
this.orders.push(order)
}
}
+
+export default OrderState
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tailwind.config.js b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tailwind.config.js
index 910b2c6a4..674fc8cb3 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tailwind.config.js
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tailwind.config.js
@@ -1,4 +1,4 @@
-const flowbite = require("flowbite-react/tailwind");
+import flowbite from "flowbite-react/tailwind"
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tsconfig.app.json b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tsconfig.app.json
new file mode 100644
index 000000000..f0a235055
--- /dev/null
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tsconfig.app.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "target": "ES2020",
+ "useDefineForClassFields": true,
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
+ "module": "ESNext",
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "isolatedModules": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+ "jsx": "react-jsx",
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["src"]
+}
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tsconfig.json b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tsconfig.json
index 11646208d..1ffef600d 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tsconfig.json
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tsconfig.json
@@ -1,7 +1,7 @@
{
- "compilerOptions": {
- "experimentalDecorators": true,
- "emitDecoratorMetadata": true,
- "target": "ES6",
- }
+ "files": [],
+ "references": [
+ { "path": "./tsconfig.app.json" },
+ { "path": "./tsconfig.node.json" }
+ ]
}
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tsconfig.node.json b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tsconfig.node.json
new file mode 100644
index 000000000..0d3d71446
--- /dev/null
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tsconfig.node.json
@@ -0,0 +1,22 @@
+{
+ "compilerOptions": {
+ "target": "ES2022",
+ "lib": ["ES2023"],
+ "module": "ESNext",
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "isolatedModules": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/src/new/var/plugins/System/PSC/Invoice/Resources/public/invoicets/assets/index.css b/src/new/var/plugins/System/PSC/Invoice/Resources/public/invoicets/assets/index.css
new file mode 100644
index 000000000..7c8c417a8
--- /dev/null
+++ b/src/new/var/plugins/System/PSC/Invoice/Resources/public/invoicets/assets/index.css
@@ -0,0 +1,4992 @@
+*, ::before, ::after {
+ --tw-border-spacing-x: 0;
+ --tw-border-spacing-y: 0;
+ --tw-translate-x: 0;
+ --tw-translate-y: 0;
+ --tw-rotate: 0;
+ --tw-skew-x: 0;
+ --tw-skew-y: 0;
+ --tw-scale-x: 1;
+ --tw-scale-y: 1;
+ --tw-pan-x: ;
+ --tw-pan-y: ;
+ --tw-pinch-zoom: ;
+ --tw-scroll-snap-strictness: proximity;
+ --tw-gradient-from-position: ;
+ --tw-gradient-via-position: ;
+ --tw-gradient-to-position: ;
+ --tw-ordinal: ;
+ --tw-slashed-zero: ;
+ --tw-numeric-figure: ;
+ --tw-numeric-spacing: ;
+ --tw-numeric-fraction: ;
+ --tw-ring-inset: ;
+ --tw-ring-offset-width: 0px;
+ --tw-ring-offset-color: #fff;
+ --tw-ring-color: rgb(63 131 248 / 0.5);
+ --tw-ring-offset-shadow: 0 0 #0000;
+ --tw-ring-shadow: 0 0 #0000;
+ --tw-shadow: 0 0 #0000;
+ --tw-shadow-colored: 0 0 #0000;
+ --tw-blur: ;
+ --tw-brightness: ;
+ --tw-contrast: ;
+ --tw-grayscale: ;
+ --tw-hue-rotate: ;
+ --tw-invert: ;
+ --tw-saturate: ;
+ --tw-sepia: ;
+ --tw-drop-shadow: ;
+ --tw-backdrop-blur: ;
+ --tw-backdrop-brightness: ;
+ --tw-backdrop-contrast: ;
+ --tw-backdrop-grayscale: ;
+ --tw-backdrop-hue-rotate: ;
+ --tw-backdrop-invert: ;
+ --tw-backdrop-opacity: ;
+ --tw-backdrop-saturate: ;
+ --tw-backdrop-sepia: ;
+ --tw-contain-size: ;
+ --tw-contain-layout: ;
+ --tw-contain-paint: ;
+ --tw-contain-style: ;
+}
+
+::backdrop {
+ --tw-border-spacing-x: 0;
+ --tw-border-spacing-y: 0;
+ --tw-translate-x: 0;
+ --tw-translate-y: 0;
+ --tw-rotate: 0;
+ --tw-skew-x: 0;
+ --tw-skew-y: 0;
+ --tw-scale-x: 1;
+ --tw-scale-y: 1;
+ --tw-pan-x: ;
+ --tw-pan-y: ;
+ --tw-pinch-zoom: ;
+ --tw-scroll-snap-strictness: proximity;
+ --tw-gradient-from-position: ;
+ --tw-gradient-via-position: ;
+ --tw-gradient-to-position: ;
+ --tw-ordinal: ;
+ --tw-slashed-zero: ;
+ --tw-numeric-figure: ;
+ --tw-numeric-spacing: ;
+ --tw-numeric-fraction: ;
+ --tw-ring-inset: ;
+ --tw-ring-offset-width: 0px;
+ --tw-ring-offset-color: #fff;
+ --tw-ring-color: rgb(63 131 248 / 0.5);
+ --tw-ring-offset-shadow: 0 0 #0000;
+ --tw-ring-shadow: 0 0 #0000;
+ --tw-shadow: 0 0 #0000;
+ --tw-shadow-colored: 0 0 #0000;
+ --tw-blur: ;
+ --tw-brightness: ;
+ --tw-contrast: ;
+ --tw-grayscale: ;
+ --tw-hue-rotate: ;
+ --tw-invert: ;
+ --tw-saturate: ;
+ --tw-sepia: ;
+ --tw-drop-shadow: ;
+ --tw-backdrop-blur: ;
+ --tw-backdrop-brightness: ;
+ --tw-backdrop-contrast: ;
+ --tw-backdrop-grayscale: ;
+ --tw-backdrop-hue-rotate: ;
+ --tw-backdrop-invert: ;
+ --tw-backdrop-opacity: ;
+ --tw-backdrop-saturate: ;
+ --tw-backdrop-sepia: ;
+ --tw-contain-size: ;
+ --tw-contain-layout: ;
+ --tw-contain-paint: ;
+ --tw-contain-style: ;
+}/*
+! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
+*//*
+1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
+2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
+*/
+
+*,
+::before,
+::after {
+ box-sizing: border-box; /* 1 */
+ border-width: 0; /* 2 */
+ border-style: solid; /* 2 */
+ border-color: #E5E7EB; /* 2 */
+}
+
+::before,
+::after {
+ --tw-content: '';
+}
+
+/*
+1. Use a consistent sensible line-height in all browsers.
+2. Prevent adjustments of font size after orientation changes in iOS.
+3. Use a more readable tab size.
+4. Use the user's configured `sans` font-family by default.
+5. Use the user's configured `sans` font-feature-settings by default.
+6. Use the user's configured `sans` font-variation-settings by default.
+7. Disable tap highlights on iOS
+*/
+
+html,
+:host {
+ line-height: 1.5; /* 1 */
+ -webkit-text-size-adjust: 100%; /* 2 */
+ -moz-tab-size: 4; /* 3 */
+ -o-tab-size: 4;
+ tab-size: 4; /* 3 */
+ font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
+ font-feature-settings: normal; /* 5 */
+ font-variation-settings: normal; /* 6 */
+ -webkit-tap-highlight-color: transparent; /* 7 */
+}
+
+/*
+1. Remove the margin in all browsers.
+2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
+*/
+
+body {
+ margin: 0; /* 1 */
+ line-height: inherit; /* 2 */
+}
+
+/*
+1. Add the correct height in Firefox.
+2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
+3. Ensure horizontal rules are visible by default.
+*/
+
+hr {
+ height: 0; /* 1 */
+ color: inherit; /* 2 */
+ border-top-width: 1px; /* 3 */
+}
+
+/*
+Add the correct text decoration in Chrome, Edge, and Safari.
+*/
+
+abbr:where([title]) {
+ -webkit-text-decoration: underline dotted;
+ text-decoration: underline dotted;
+}
+
+/*
+Remove the default font size and weight for headings.
+*/
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-size: inherit;
+ font-weight: inherit;
+}
+
+/*
+Reset links to optimize for opt-in styling instead of opt-out.
+*/
+
+a {
+ color: inherit;
+ text-decoration: inherit;
+}
+
+/*
+Add the correct font weight in Edge and Safari.
+*/
+
+b,
+strong {
+ font-weight: bolder;
+}
+
+/*
+1. Use the user's configured `mono` font-family by default.
+2. Use the user's configured `mono` font-feature-settings by default.
+3. Use the user's configured `mono` font-variation-settings by default.
+4. Correct the odd `em` font sizing in all browsers.
+*/
+
+code,
+kbd,
+samp,
+pre {
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
+ font-feature-settings: normal; /* 2 */
+ font-variation-settings: normal; /* 3 */
+ font-size: 1em; /* 4 */
+}
+
+/*
+Add the correct font size in all browsers.
+*/
+
+small {
+ font-size: 80%;
+}
+
+/*
+Prevent `sub` and `sup` elements from affecting the line height in all browsers.
+*/
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+sup {
+ top: -0.5em;
+}
+
+/*
+1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
+2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
+3. Remove gaps between table borders by default.
+*/
+
+table {
+ text-indent: 0; /* 1 */
+ border-color: inherit; /* 2 */
+ border-collapse: collapse; /* 3 */
+}
+
+/*
+1. Change the font styles in all browsers.
+2. Remove the margin in Firefox and Safari.
+3. Remove default padding in all browsers.
+*/
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ font-family: inherit; /* 1 */
+ font-feature-settings: inherit; /* 1 */
+ font-variation-settings: inherit; /* 1 */
+ font-size: 100%; /* 1 */
+ font-weight: inherit; /* 1 */
+ line-height: inherit; /* 1 */
+ letter-spacing: inherit; /* 1 */
+ color: inherit; /* 1 */
+ margin: 0; /* 2 */
+ padding: 0; /* 3 */
+}
+
+/*
+Remove the inheritance of text transform in Edge and Firefox.
+*/
+
+button,
+select {
+ text-transform: none;
+}
+
+/*
+1. Correct the inability to style clickable types in iOS and Safari.
+2. Remove default button styles.
+*/
+
+button,
+input:where([type='button']),
+input:where([type='reset']),
+input:where([type='submit']) {
+ -webkit-appearance: button; /* 1 */
+ background-color: transparent; /* 2 */
+ background-image: none; /* 2 */
+}
+
+/*
+Use the modern Firefox focus style for all focusable elements.
+*/
+
+:-moz-focusring {
+ outline: auto;
+}
+
+/*
+Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
+*/
+
+:-moz-ui-invalid {
+ box-shadow: none;
+}
+
+/*
+Add the correct vertical alignment in Chrome and Firefox.
+*/
+
+progress {
+ vertical-align: baseline;
+}
+
+/*
+Correct the cursor style of increment and decrement buttons in Safari.
+*/
+
+::-webkit-inner-spin-button,
+::-webkit-outer-spin-button {
+ height: auto;
+}
+
+/*
+1. Correct the odd appearance in Chrome and Safari.
+2. Correct the outline style in Safari.
+*/
+
+[type='search'] {
+ -webkit-appearance: textfield; /* 1 */
+ outline-offset: -2px; /* 2 */
+}
+
+/*
+Remove the inner padding in Chrome and Safari on macOS.
+*/
+
+::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/*
+1. Correct the inability to style clickable types in iOS and Safari.
+2. Change font properties to `inherit` in Safari.
+*/
+
+::-webkit-file-upload-button {
+ -webkit-appearance: button; /* 1 */
+ font: inherit; /* 2 */
+}
+
+/*
+Add the correct display in Chrome and Safari.
+*/
+
+summary {
+ display: list-item;
+}
+
+/*
+Removes the default spacing and border for appropriate elements.
+*/
+
+blockquote,
+dl,
+dd,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+hr,
+figure,
+p,
+pre {
+ margin: 0;
+}
+
+fieldset {
+ margin: 0;
+ padding: 0;
+}
+
+legend {
+ padding: 0;
+}
+
+ol,
+ul,
+menu {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+/*
+Reset default styling for dialogs.
+*/
+dialog {
+ padding: 0;
+}
+
+/*
+Prevent resizing textareas horizontally by default.
+*/
+
+textarea {
+ resize: vertical;
+}
+
+/*
+1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
+2. Set the default placeholder color to the user's configured gray 400 color.
+*/
+
+input::-moz-placeholder, textarea::-moz-placeholder {
+ opacity: 1; /* 1 */
+ color: #9CA3AF; /* 2 */
+}
+
+input::placeholder,
+textarea::placeholder {
+ opacity: 1; /* 1 */
+ color: #9CA3AF; /* 2 */
+}
+
+/*
+Set the default cursor for buttons.
+*/
+
+button,
+[role="button"] {
+ cursor: pointer;
+}
+
+/*
+Make sure disabled buttons don't get the pointer cursor.
+*/
+:disabled {
+ cursor: default;
+}
+
+/*
+1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
+2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
+ This can trigger a poorly considered lint error in some tools but is included by design.
+*/
+
+img,
+svg,
+video,
+canvas,
+audio,
+iframe,
+embed,
+object {
+ display: block; /* 1 */
+ vertical-align: middle; /* 2 */
+}
+
+/*
+Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
+*/
+
+img,
+video {
+ max-width: 100%;
+ height: auto;
+}
+
+/* Make elements with the HTML hidden attribute stay hidden by default */
+[hidden]:where(:not([hidden="until-found"])) {
+ display: none;
+}
+
+[data-tooltip-style^='light'] + .tooltip > .tooltip-arrow:before {
+ border-style: solid;
+ border-color: #e5e7eb;
+}
+
+[data-tooltip-style^='light'] + .tooltip[data-popper-placement^='top'] > .tooltip-arrow:before {
+ border-bottom-width: 1px;
+ border-right-width: 1px;
+}
+
+[data-tooltip-style^='light'] + .tooltip[data-popper-placement^='right'] > .tooltip-arrow:before {
+ border-bottom-width: 1px;
+ border-left-width: 1px;
+}
+
+[data-tooltip-style^='light'] + .tooltip[data-popper-placement^='bottom'] > .tooltip-arrow:before {
+ border-top-width: 1px;
+ border-left-width: 1px;
+}
+
+[data-tooltip-style^='light'] + .tooltip[data-popper-placement^='left'] > .tooltip-arrow:before {
+ border-top-width: 1px;
+ border-right-width: 1px;
+}
+
+.tooltip[data-popper-placement^='top'] > .tooltip-arrow {
+ bottom: -4px;
+}
+
+.tooltip[data-popper-placement^='bottom'] > .tooltip-arrow {
+ top: -4px;
+}
+
+.tooltip[data-popper-placement^='left'] > .tooltip-arrow {
+ right: -4px;
+}
+
+.tooltip[data-popper-placement^='right'] > .tooltip-arrow {
+ left: -4px;
+}
+
+.tooltip.invisible > .tooltip-arrow:before {
+ visibility: hidden;
+}
+
+[data-popper-arrow],[data-popper-arrow]:before {
+ position: absolute;
+ width: 8px;
+ height: 8px;
+ background: inherit;
+}
+
+[data-popper-arrow] {
+ visibility: hidden;
+}
+
+[data-popper-arrow]:before {
+ content: "";
+ visibility: visible;
+ transform: rotate(45deg);
+}
+
+[data-popper-arrow]:after {
+ content: "";
+ visibility: visible;
+ transform: rotate(45deg);
+ position: absolute;
+ width: 9px;
+ height: 9px;
+ background: inherit;
+}
+
+[role="tooltip"] > [data-popper-arrow]:before {
+ border-style: solid;
+ border-color: #e5e7eb;
+}
+
+.dark [role="tooltip"] > [data-popper-arrow]:before {
+ border-style: solid;
+ border-color: #4b5563;
+}
+
+[role="tooltip"] > [data-popper-arrow]:after {
+ border-style: solid;
+ border-color: #e5e7eb;
+}
+
+.dark [role="tooltip"] > [data-popper-arrow]:after {
+ border-style: solid;
+ border-color: #4b5563;
+}
+
+[data-popover][role="tooltip"][data-popper-placement^='top'] > [data-popper-arrow]:before {
+ border-bottom-width: 1px;
+ border-right-width: 1px;
+}
+
+[data-popover][role="tooltip"][data-popper-placement^='top'] > [data-popper-arrow]:after {
+ border-bottom-width: 1px;
+ border-right-width: 1px;
+}
+
+[data-popover][role="tooltip"][data-popper-placement^='right'] > [data-popper-arrow]:before {
+ border-bottom-width: 1px;
+ border-left-width: 1px;
+}
+
+[data-popover][role="tooltip"][data-popper-placement^='right'] > [data-popper-arrow]:after {
+ border-bottom-width: 1px;
+ border-left-width: 1px;
+}
+
+[data-popover][role="tooltip"][data-popper-placement^='bottom'] > [data-popper-arrow]:before {
+ border-top-width: 1px;
+ border-left-width: 1px;
+}
+
+[data-popover][role="tooltip"][data-popper-placement^='bottom'] > [data-popper-arrow]:after {
+ border-top-width: 1px;
+ border-left-width: 1px;
+}
+
+[data-popover][role="tooltip"][data-popper-placement^='left'] > [data-popper-arrow]:before {
+ border-top-width: 1px;
+ border-right-width: 1px;
+}
+
+[data-popover][role="tooltip"][data-popper-placement^='left'] > [data-popper-arrow]:after {
+ border-top-width: 1px;
+ border-right-width: 1px;
+}
+
+[data-popover][role="tooltip"][data-popper-placement^='top'] > [data-popper-arrow] {
+ bottom: -5px;
+}
+
+[data-popover][role="tooltip"][data-popper-placement^='bottom'] > [data-popper-arrow] {
+ top: -5px;
+}
+
+[data-popover][role="tooltip"][data-popper-placement^='left'] > [data-popper-arrow] {
+ right: -5px;
+}
+
+[data-popover][role="tooltip"][data-popper-placement^='right'] > [data-popper-arrow] {
+ left: -5px;
+}
+
+[role="tooltip"].invisible > [data-popper-arrow]:before {
+ visibility: hidden;
+}
+
+[role="tooltip"].invisible > [data-popper-arrow]:after {
+ visibility: hidden;
+}
+
+[type='text'],[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ background-color: #fff;
+ border-color: #6B7280;
+ border-width: 1px;
+ border-radius: 0px;
+ padding-top: 0.5rem;
+ padding-right: 0.75rem;
+ padding-bottom: 0.5rem;
+ padding-left: 0.75rem;
+ font-size: 1rem;
+ line-height: 1.5rem;
+ --tw-shadow: 0 0 #0000;
+}
+
+[type='text']:focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus {
+ outline: 2px solid transparent;
+ outline-offset: 2px;
+ --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
+ --tw-ring-offset-width: 0px;
+ --tw-ring-offset-color: #fff;
+ --tw-ring-color: #1C64F2;
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ border-color: #1C64F2;
+}
+
+input::-moz-placeholder, textarea::-moz-placeholder {
+ color: #6B7280;
+ opacity: 1;
+}
+
+input::placeholder,textarea::placeholder {
+ color: #6B7280;
+ opacity: 1;
+}
+
+::-webkit-datetime-edit-fields-wrapper {
+ padding: 0;
+}
+
+input[type="time"]::-webkit-calendar-picker-indicator {
+ background: none;
+}
+
+select:not([size]) {
+ background-image: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 10 6'%3e %3cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m1 1 4 4 4-4'/%3e %3c/svg%3e");
+ background-position: right 0.75rem center;
+ background-repeat: no-repeat;
+ background-size: 0.75em 0.75em;
+ padding-right: 2.5rem;
+ -webkit-print-color-adjust: exact;
+ print-color-adjust: exact;
+}
+
+:is([dir=rtl]) select:not([size]) {
+ background-position: left 0.75rem center;
+ padding-right: 0.75rem;
+ padding-left: 0;
+}
+
+[multiple] {
+ background-image: initial;
+ background-position: initial;
+ background-repeat: unset;
+ background-size: initial;
+ padding-right: 0.75rem;
+ -webkit-print-color-adjust: unset;
+ print-color-adjust: unset;
+}
+
+[type='checkbox'],[type='radio'] {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ padding: 0;
+ -webkit-print-color-adjust: exact;
+ print-color-adjust: exact;
+ display: inline-block;
+ vertical-align: middle;
+ background-origin: border-box;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+ flex-shrink: 0;
+ height: 1rem;
+ width: 1rem;
+ color: #1C64F2;
+ background-color: #fff;
+ border-color: #6B7280;
+ border-width: 1px;
+ --tw-shadow: 0 0 #0000;
+}
+
+[type='checkbox'] {
+ border-radius: 0px;
+}
+
+[type='radio'] {
+ border-radius: 100%;
+}
+
+[type='checkbox']:focus,[type='radio']:focus {
+ outline: 2px solid transparent;
+ outline-offset: 2px;
+ --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
+ --tw-ring-offset-width: 2px;
+ --tw-ring-offset-color: #fff;
+ --tw-ring-color: #1C64F2;
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+}
+
+[type='checkbox']:checked,[type='radio']:checked,.dark [type='checkbox']:checked,.dark [type='radio']:checked {
+ border-color: transparent;
+ background-color: currentColor;
+ background-size: 0.55em 0.55em;
+ background-position: center;
+ background-repeat: no-repeat;
+}
+
+[type='checkbox']:checked {
+ background-image: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 12'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M1 5.917 5.724 10.5 15 1.5'/%3e %3c/svg%3e");
+ background-repeat: no-repeat;
+ background-size: 0.55em 0.55em;
+ -webkit-print-color-adjust: exact;
+ print-color-adjust: exact;
+}
+
+[type='radio']:checked {
+ background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");
+ background-size: 1em 1em;
+}
+
+.dark [type='radio']:checked {
+ background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");
+ background-size: 1em 1em;
+}
+
+[type='checkbox']:indeterminate {
+ background-image: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 12'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M0.5 6h14'/%3e %3c/svg%3e");
+ background-color: currentColor;
+ border-color: transparent;
+ background-position: center;
+ background-repeat: no-repeat;
+ background-size: 0.55em 0.55em;
+ -webkit-print-color-adjust: exact;
+ print-color-adjust: exact;
+}
+
+[type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus {
+ border-color: transparent;
+ background-color: currentColor;
+}
+
+[type='file'] {
+ background: unset;
+ border-color: inherit;
+ border-width: 0;
+ border-radius: 0;
+ padding: 0;
+ font-size: unset;
+ line-height: inherit;
+}
+
+[type='file']:focus {
+ outline: 1px auto inherit;
+}
+
+input[type=file]::file-selector-button {
+ color: white;
+ background: #1F2937;
+ border: 0;
+ font-weight: 500;
+ font-size: 0.875rem;
+ cursor: pointer;
+ padding-top: 0.625rem;
+ padding-bottom: 0.625rem;
+ padding-left: 2rem;
+ padding-right: 1rem;
+ margin-inline-start: -1rem;
+ margin-inline-end: 1rem;
+}
+
+input[type=file]::file-selector-button:hover {
+ background: #374151;
+}
+
+:is([dir=rtl]) input[type=file]::file-selector-button {
+ padding-right: 2rem;
+ padding-left: 1rem;
+}
+
+.dark input[type=file]::file-selector-button {
+ color: white;
+ background: #4B5563;
+}
+
+.dark input[type=file]::file-selector-button:hover {
+ background: #6B7280;
+}
+
+input[type="range"]::-webkit-slider-thumb {
+ height: 1.25rem;
+ width: 1.25rem;
+ background: #1C64F2;
+ border-radius: 9999px;
+ border: 0;
+ appearance: none;
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ cursor: pointer;
+}
+
+input[type="range"]:disabled::-webkit-slider-thumb {
+ background: #9CA3AF;
+}
+
+.dark input[type="range"]:disabled::-webkit-slider-thumb {
+ background: #6B7280;
+}
+
+input[type="range"]:focus::-webkit-slider-thumb {
+ outline: 2px solid transparent;
+ outline-offset: 2px;
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
+ --tw-ring-opacity: 1px;
+ --tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity));
+}
+
+input[type="range"]::-moz-range-thumb {
+ height: 1.25rem;
+ width: 1.25rem;
+ background: #1C64F2;
+ border-radius: 9999px;
+ border: 0;
+ appearance: none;
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ cursor: pointer;
+}
+
+input[type="range"]:disabled::-moz-range-thumb {
+ background: #9CA3AF;
+}
+
+.dark input[type="range"]:disabled::-moz-range-thumb {
+ background: #6B7280;
+}
+
+input[type="range"]::-moz-range-progress {
+ background: #3F83F8;
+}
+
+input[type="range"]::-ms-fill-lower {
+ background: #3F83F8;
+}
+.container {
+ width: 100%;
+}
+@media (min-width: 640px) {
+
+ .container {
+ max-width: 640px;
+ }
+}
+@media (min-width: 768px) {
+
+ .container {
+ max-width: 768px;
+ }
+}
+@media (min-width: 1024px) {
+
+ .container {
+ max-width: 1024px;
+ }
+}
+@media (min-width: 1280px) {
+
+ .container {
+ max-width: 1280px;
+ }
+}
+@media (min-width: 1536px) {
+
+ .container {
+ max-width: 1536px;
+ }
+}
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border-width: 0;
+}
+.pointer-events-none {
+ pointer-events: none;
+}
+.visible {
+ visibility: visible;
+}
+.invisible {
+ visibility: hidden;
+}
+.collapse {
+ visibility: collapse;
+}
+.fixed {
+ position: fixed;
+}
+.absolute {
+ position: absolute;
+}
+.relative {
+ position: relative;
+}
+.inset-0 {
+ inset: 0px;
+}
+.inset-x-0 {
+ left: 0px;
+ right: 0px;
+}
+.inset-y-0 {
+ top: 0px;
+ bottom: 0px;
+}
+.-bottom-1 {
+ bottom: -0.25rem;
+}
+.-left-1 {
+ left: -0.25rem;
+}
+.-left-1\.5 {
+ left: -0.375rem;
+}
+.-left-3 {
+ left: -0.75rem;
+}
+.-right-1 {
+ right: -0.25rem;
+}
+.-top-1 {
+ top: -0.25rem;
+}
+.bottom-0 {
+ bottom: 0px;
+}
+.bottom-16 {
+ bottom: 4rem;
+}
+.bottom-5 {
+ bottom: 1.25rem;
+}
+.end-2 {
+ inset-inline-end: 0.5rem;
+}
+.end-2\.5 {
+ inset-inline-end: 0.625rem;
+}
+.left-0 {
+ left: 0px;
+}
+.left-1 {
+ left: 0.25rem;
+}
+.left-1\/2 {
+ left: 50%;
+}
+.left-2 {
+ left: 0.5rem;
+}
+.left-2\.5 {
+ left: 0.625rem;
+}
+.left-3 {
+ left: 0.75rem;
+}
+.left-4 {
+ left: 1rem;
+}
+.left-5 {
+ left: 1.25rem;
+}
+.left-6 {
+ left: 1.5rem;
+}
+.right-0 {
+ right: 0px;
+}
+.top-0 {
+ top: 0px;
+}
+.top-1\/2 {
+ top: 50%;
+}
+.top-10 {
+ top: 2.5rem;
+}
+.top-2 {
+ top: 0.5rem;
+}
+.top-2\.5 {
+ top: 0.625rem;
+}
+.top-3 {
+ top: 0.75rem;
+}
+.top-4 {
+ top: 1rem;
+}
+.-z-10 {
+ z-index: -10;
+}
+.z-0 {
+ z-index: 0;
+}
+.z-10 {
+ z-index: 10;
+}
+.z-20 {
+ z-index: 20;
+}
+.z-30 {
+ z-index: 30;
+}
+.z-40 {
+ z-index: 40;
+}
+.z-50 {
+ z-index: 50;
+}
+.z-auto {
+ z-index: auto;
+}
+.-m-1\.5 {
+ margin: -0.375rem;
+}
+.m-0 {
+ margin: 0px;
+}
+.m-1 {
+ margin: 0.25rem;
+}
+.mx-1 {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem;
+}
+.mx-4 {
+ margin-left: 1rem;
+ margin-right: 1rem;
+}
+.mx-auto {
+ margin-left: auto;
+ margin-right: auto;
+}
+.my-1 {
+ margin-top: 0.25rem;
+ margin-bottom: 0.25rem;
+}
+.my-4 {
+ margin-top: 1rem;
+ margin-bottom: 1rem;
+}
+.my-6 {
+ margin-top: 1.5rem;
+ margin-bottom: 1.5rem;
+}
+.my-8 {
+ margin-top: 2rem;
+ margin-bottom: 2rem;
+}
+.-mb-px {
+ margin-bottom: -1px;
+}
+.mb-1 {
+ margin-bottom: 0.25rem;
+}
+.mb-10 {
+ margin-bottom: 2.5rem;
+}
+.mb-2 {
+ margin-bottom: 0.5rem;
+}
+.mb-4 {
+ margin-bottom: 1rem;
+}
+.mb-5 {
+ margin-bottom: 1.25rem;
+}
+.mb-6 {
+ margin-bottom: 1.5rem;
+}
+.me-1\.5 {
+ margin-inline-end: 0.375rem;
+}
+.me-2 {
+ margin-inline-end: 0.5rem;
+}
+.me-2\.5 {
+ margin-inline-end: 0.625rem;
+}
+.me-4 {
+ margin-inline-end: 1rem;
+}
+.ml-0 {
+ margin-left: 0px;
+}
+.ml-1 {
+ margin-left: 0.25rem;
+}
+.ml-2 {
+ margin-left: 0.5rem;
+}
+.ml-3 {
+ margin-left: 0.75rem;
+}
+.ml-6 {
+ margin-left: 1.5rem;
+}
+.ml-auto {
+ margin-left: auto;
+}
+.mr-1 {
+ margin-right: 0.25rem;
+}
+.mr-2 {
+ margin-right: 0.5rem;
+}
+.mr-3 {
+ margin-right: 0.75rem;
+}
+.ms-3 {
+ margin-inline-start: 0.75rem;
+}
+.mt-0\.5 {
+ margin-top: 0.125rem;
+}
+.mt-1 {
+ margin-top: 0.25rem;
+}
+.mt-1\.5 {
+ margin-top: 0.375rem;
+}
+.mt-2 {
+ margin-top: 0.5rem;
+}
+.mt-3 {
+ margin-top: 0.75rem;
+}
+.mt-4 {
+ margin-top: 1rem;
+}
+.mt-6 {
+ margin-top: 1.5rem;
+}
+.block {
+ display: block;
+}
+.inline-block {
+ display: inline-block;
+}
+.\!inline {
+ display: inline !important;
+}
+.inline {
+ display: inline;
+}
+.flex {
+ display: flex;
+}
+.inline-flex {
+ display: inline-flex;
+}
+.table {
+ display: table;
+}
+.grid {
+ display: grid;
+}
+.hidden {
+ display: none;
+}
+.h-0\.5 {
+ height: 0.125rem;
+}
+.h-1 {
+ height: 0.25rem;
+}
+.h-1\.5 {
+ height: 0.375rem;
+}
+.h-10 {
+ height: 2.5rem;
+}
+.h-2 {
+ height: 0.5rem;
+}
+.h-2\.5 {
+ height: 0.625rem;
+}
+.h-20 {
+ height: 5rem;
+}
+.h-3 {
+ height: 0.75rem;
+}
+.h-3\.5 {
+ height: 0.875rem;
+}
+.h-36 {
+ height: 9rem;
+}
+.h-4 {
+ height: 1rem;
+}
+.h-5 {
+ height: 1.25rem;
+}
+.h-6 {
+ height: 1.5rem;
+}
+.h-7 {
+ height: 1.75rem;
+}
+.h-8 {
+ height: 2rem;
+}
+.h-9 {
+ height: 2.25rem;
+}
+.h-96 {
+ height: 24rem;
+}
+.h-auto {
+ height: auto;
+}
+.h-fit {
+ height: -moz-fit-content;
+ height: fit-content;
+}
+.h-full {
+ height: 100%;
+}
+.h-px {
+ height: 1px;
+}
+.h-screen {
+ height: 100vh;
+}
+.max-h-\[90dvh\] {
+ max-height: 90dvh;
+}
+.min-h-96 {
+ min-height: 24rem;
+}
+.w-1\/2 {
+ width: 50%;
+}
+.w-10 {
+ width: 2.5rem;
+}
+.w-11 {
+ width: 2.75rem;
+}
+.w-12 {
+ width: 3rem;
+}
+.w-14 {
+ width: 3.5rem;
+}
+.w-16 {
+ width: 4rem;
+}
+.w-2 {
+ width: 0.5rem;
+}
+.w-2\/4 {
+ width: 50%;
+}
+.w-20 {
+ width: 5rem;
+}
+.w-3 {
+ width: 0.75rem;
+}
+.w-3\.5 {
+ width: 0.875rem;
+}
+.w-36 {
+ width: 9rem;
+}
+.w-4 {
+ width: 1rem;
+}
+.w-48 {
+ width: 12rem;
+}
+.w-5 {
+ width: 1.25rem;
+}
+.w-6 {
+ width: 1.5rem;
+}
+.w-64 {
+ width: 16rem;
+}
+.w-7 {
+ width: 1.75rem;
+}
+.w-8 {
+ width: 2rem;
+}
+.w-80 {
+ width: 20rem;
+}
+.w-9 {
+ width: 2.25rem;
+}
+.w-auto {
+ width: auto;
+}
+.w-fit {
+ width: -moz-fit-content;
+ width: fit-content;
+}
+.w-full {
+ width: 100%;
+}
+.w-max {
+ width: -moz-max-content;
+ width: max-content;
+}
+.min-w-11 {
+ min-width: 2.75rem;
+}
+.min-w-14 {
+ min-width: 3.5rem;
+}
+.min-w-9 {
+ min-width: 2.25rem;
+}
+.max-w-2xl {
+ max-width: 42rem;
+}
+.max-w-3xl {
+ max-width: 48rem;
+}
+.max-w-4xl {
+ max-width: 56rem;
+}
+.max-w-5xl {
+ max-width: 64rem;
+}
+.max-w-6xl {
+ max-width: 72rem;
+}
+.max-w-7xl {
+ max-width: 80rem;
+}
+.max-w-\[100vw\] {
+ max-width: 100vw;
+}
+.max-w-lg {
+ max-width: 32rem;
+}
+.max-w-md {
+ max-width: 28rem;
+}
+.max-w-sm {
+ max-width: 24rem;
+}
+.max-w-xl {
+ max-width: 36rem;
+}
+.max-w-xs {
+ max-width: 20rem;
+}
+.flex-1 {
+ flex: 1 1 0%;
+}
+.flex-auto {
+ flex: 1 1 auto;
+}
+.flex-shrink-0 {
+ flex-shrink: 0;
+}
+.shrink-0 {
+ flex-shrink: 0;
+}
+.origin-\[0\] {
+ transform-origin: 0;
+}
+.-translate-x-1\/2 {
+ --tw-translate-x: -50%;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.-translate-x-full {
+ --tw-translate-x: -100%;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.-translate-y-1\/2 {
+ --tw-translate-y: -50%;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.-translate-y-4 {
+ --tw-translate-y: -1rem;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.-translate-y-6 {
+ --tw-translate-y: -1.5rem;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.-translate-y-full {
+ --tw-translate-y: -100%;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.translate-x-full {
+ --tw-translate-x: 100%;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.translate-y-full {
+ --tw-translate-y: 100%;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.rotate-180 {
+ --tw-rotate: 180deg;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.rotate-45 {
+ --tw-rotate: 45deg;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.scale-75 {
+ --tw-scale-x: .75;
+ --tw-scale-y: .75;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.transform {
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.transform-none {
+ transform: none;
+}
+@keyframes spin {
+
+ to {
+ transform: rotate(360deg);
+ }
+}
+.animate-spin {
+ animation: spin 1s linear infinite;
+}
+.cursor-default {
+ cursor: default;
+}
+.cursor-grab {
+ cursor: grab;
+}
+.cursor-not-allowed {
+ cursor: not-allowed;
+}
+.cursor-pointer {
+ cursor: pointer;
+}
+.cursor-wait {
+ cursor: wait;
+}
+.snap-x {
+ scroll-snap-type: x var(--tw-scroll-snap-strictness);
+}
+.snap-mandatory {
+ --tw-scroll-snap-strictness: mandatory;
+}
+.snap-center {
+ scroll-snap-align: center;
+}
+.list-inside {
+ list-style-position: inside;
+}
+.list-decimal {
+ list-style-type: decimal;
+}
+.list-disc {
+ list-style-type: disc;
+}
+.list-none {
+ list-style-type: none;
+}
+.appearance-none {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+}
+.grid-flow-col {
+ grid-auto-flow: column;
+}
+.grid-cols-4 {
+ grid-template-columns: repeat(4, minmax(0, 1fr));
+}
+.grid-cols-7 {
+ grid-template-columns: repeat(7, minmax(0, 1fr));
+}
+.flex-col {
+ flex-direction: column;
+}
+.flex-wrap {
+ flex-wrap: wrap;
+}
+.items-start {
+ align-items: flex-start;
+}
+.items-end {
+ align-items: flex-end;
+}
+.items-center {
+ align-items: center;
+}
+.items-stretch {
+ align-items: stretch;
+}
+.justify-start {
+ justify-content: flex-start;
+}
+.justify-end {
+ justify-content: flex-end;
+}
+.justify-center {
+ justify-content: center;
+}
+.justify-between {
+ justify-content: space-between;
+}
+.gap-1 {
+ gap: 0.25rem;
+}
+.gap-2 {
+ gap: 0.5rem;
+}
+.gap-3 {
+ gap: 0.75rem;
+}
+.gap-4 {
+ gap: 1rem;
+}
+.-space-x-4 > :not([hidden]) ~ :not([hidden]) {
+ --tw-space-x-reverse: 0;
+ margin-right: calc(-1rem * var(--tw-space-x-reverse));
+ margin-left: calc(-1rem * calc(1 - var(--tw-space-x-reverse)));
+}
+.-space-x-px > :not([hidden]) ~ :not([hidden]) {
+ --tw-space-x-reverse: 0;
+ margin-right: calc(-1px * var(--tw-space-x-reverse));
+ margin-left: calc(-1px * calc(1 - var(--tw-space-x-reverse)));
+}
+.space-x-2 > :not([hidden]) ~ :not([hidden]) {
+ --tw-space-x-reverse: 0;
+ margin-right: calc(0.5rem * var(--tw-space-x-reverse));
+ margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
+}
+.space-x-3 > :not([hidden]) ~ :not([hidden]) {
+ --tw-space-x-reverse: 0;
+ margin-right: calc(0.75rem * var(--tw-space-x-reverse));
+ margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));
+}
+.space-x-4 > :not([hidden]) ~ :not([hidden]) {
+ --tw-space-x-reverse: 0;
+ margin-right: calc(1rem * var(--tw-space-x-reverse));
+ margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
+}
+.space-y-0 > :not([hidden]) ~ :not([hidden]) {
+ --tw-space-y-reverse: 0;
+ margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
+ margin-bottom: calc(0px * var(--tw-space-y-reverse));
+}
+.space-y-1 > :not([hidden]) ~ :not([hidden]) {
+ --tw-space-y-reverse: 0;
+ margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
+ margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
+}
+.space-y-2 > :not([hidden]) ~ :not([hidden]) {
+ --tw-space-y-reverse: 0;
+ margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
+ margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
+}
+.space-y-4 > :not([hidden]) ~ :not([hidden]) {
+ --tw-space-y-reverse: 0;
+ margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
+ margin-bottom: calc(1rem * var(--tw-space-y-reverse));
+}
+.divide-x > :not([hidden]) ~ :not([hidden]) {
+ --tw-divide-x-reverse: 0;
+ border-right-width: calc(1px * var(--tw-divide-x-reverse));
+ border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));
+}
+.divide-y > :not([hidden]) ~ :not([hidden]) {
+ --tw-divide-y-reverse: 0;
+ border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
+ border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
+}
+.divide-gray-100 > :not([hidden]) ~ :not([hidden]) {
+ --tw-divide-opacity: 1;
+ border-color: rgb(243 244 246 / var(--tw-divide-opacity, 1));
+}
+.divide-gray-200 > :not([hidden]) ~ :not([hidden]) {
+ --tw-divide-opacity: 1;
+ border-color: rgb(229 231 235 / var(--tw-divide-opacity, 1));
+}
+.self-center {
+ align-self: center;
+}
+.overflow-auto {
+ overflow: auto;
+}
+.overflow-hidden {
+ overflow: hidden;
+}
+.overflow-y-auto {
+ overflow-y: auto;
+}
+.\!overflow-x-hidden {
+ overflow-x: hidden !important;
+}
+.overflow-x-hidden {
+ overflow-x: hidden;
+}
+.overflow-y-hidden {
+ overflow-y: hidden;
+}
+.overflow-x-scroll {
+ overflow-x: scroll;
+}
+.\!scroll-auto {
+ scroll-behavior: auto !important;
+}
+.scroll-smooth {
+ scroll-behavior: smooth;
+}
+.whitespace-nowrap {
+ white-space: nowrap;
+}
+.rounded {
+ border-radius: 0.25rem;
+}
+.rounded-\[7px\] {
+ border-radius: 7px;
+}
+.rounded-full {
+ border-radius: 9999px;
+}
+.rounded-lg {
+ border-radius: 0.5rem;
+}
+.rounded-md {
+ border-radius: 0.375rem;
+}
+.rounded-none {
+ border-radius: 0px;
+}
+.rounded-b {
+ border-bottom-right-radius: 0.25rem;
+ border-bottom-left-radius: 0.25rem;
+}
+.rounded-e-lg {
+ border-start-end-radius: 0.5rem;
+ border-end-end-radius: 0.5rem;
+}
+.rounded-l-lg {
+ border-top-left-radius: 0.5rem;
+ border-bottom-left-radius: 0.5rem;
+}
+.rounded-l-md {
+ border-top-left-radius: 0.375rem;
+ border-bottom-left-radius: 0.375rem;
+}
+.rounded-l-none {
+ border-top-left-radius: 0px;
+ border-bottom-left-radius: 0px;
+}
+.rounded-r-lg {
+ border-top-right-radius: 0.5rem;
+ border-bottom-right-radius: 0.5rem;
+}
+.rounded-r-none {
+ border-top-right-radius: 0px;
+ border-bottom-right-radius: 0px;
+}
+.rounded-s-lg {
+ border-start-start-radius: 0.5rem;
+ border-end-start-radius: 0.5rem;
+}
+.rounded-t {
+ border-top-left-radius: 0.25rem;
+ border-top-right-radius: 0.25rem;
+}
+.rounded-t-lg {
+ border-top-left-radius: 0.5rem;
+ border-top-right-radius: 0.5rem;
+}
+.border {
+ border-width: 1px;
+}
+.border-0 {
+ border-width: 0px;
+}
+.border-2 {
+ border-width: 2px;
+}
+.border-b {
+ border-bottom-width: 1px;
+}
+.border-b-0 {
+ border-bottom-width: 0px;
+}
+.border-b-2 {
+ border-bottom-width: 2px;
+}
+.border-l {
+ border-left-width: 1px;
+}
+.border-l-0 {
+ border-left-width: 0px;
+}
+.border-r-0 {
+ border-right-width: 0px;
+}
+.border-t {
+ border-top-width: 1px;
+}
+.border-t-4 {
+ border-top-width: 4px;
+}
+.border-blue-500 {
+ --tw-border-opacity: 1;
+ border-color: rgb(63 131 248 / var(--tw-border-opacity, 1));
+}
+.border-cyan-300 {
+ --tw-border-opacity: 1;
+ border-color: rgb(103 232 249 / var(--tw-border-opacity, 1));
+}
+.border-cyan-500 {
+ --tw-border-opacity: 1;
+ border-color: rgb(6 182 212 / var(--tw-border-opacity, 1));
+}
+.border-cyan-600 {
+ --tw-border-opacity: 1;
+ border-color: rgb(8 145 178 / var(--tw-border-opacity, 1));
+}
+.border-cyan-700 {
+ --tw-border-opacity: 1;
+ border-color: rgb(14 116 144 / var(--tw-border-opacity, 1));
+}
+.border-gray-100 {
+ --tw-border-opacity: 1;
+ border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));
+}
+.border-gray-200 {
+ --tw-border-opacity: 1;
+ border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
+}
+.border-gray-300 {
+ --tw-border-opacity: 1;
+ border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
+}
+.border-gray-400 {
+ --tw-border-opacity: 1;
+ border-color: rgb(156 163 175 / var(--tw-border-opacity, 1));
+}
+.border-gray-500 {
+ --tw-border-opacity: 1;
+ border-color: rgb(107 114 128 / var(--tw-border-opacity, 1));
+}
+.border-gray-600 {
+ --tw-border-opacity: 1;
+ border-color: rgb(75 85 99 / var(--tw-border-opacity, 1));
+}
+.border-gray-900 {
+ --tw-border-opacity: 1;
+ border-color: rgb(17 24 39 / var(--tw-border-opacity, 1));
+}
+.border-green-300 {
+ --tw-border-opacity: 1;
+ border-color: rgb(132 225 188 / var(--tw-border-opacity, 1));
+}
+.border-green-500 {
+ --tw-border-opacity: 1;
+ border-color: rgb(14 159 110 / var(--tw-border-opacity, 1));
+}
+.border-green-600 {
+ --tw-border-opacity: 1;
+ border-color: rgb(5 122 85 / var(--tw-border-opacity, 1));
+}
+.border-green-700 {
+ --tw-border-opacity: 1;
+ border-color: rgb(4 108 78 / var(--tw-border-opacity, 1));
+}
+.border-indigo-300 {
+ --tw-border-opacity: 1;
+ border-color: rgb(180 198 252 / var(--tw-border-opacity, 1));
+}
+.border-indigo-400 {
+ --tw-border-opacity: 1;
+ border-color: rgb(141 162 251 / var(--tw-border-opacity, 1));
+}
+.border-indigo-500 {
+ --tw-border-opacity: 1;
+ border-color: rgb(104 117 245 / var(--tw-border-opacity, 1));
+}
+.border-lime-300 {
+ --tw-border-opacity: 1;
+ border-color: rgb(190 242 100 / var(--tw-border-opacity, 1));
+}
+.border-lime-400 {
+ --tw-border-opacity: 1;
+ border-color: rgb(163 230 53 / var(--tw-border-opacity, 1));
+}
+.border-lime-500 {
+ --tw-border-opacity: 1;
+ border-color: rgb(132 204 22 / var(--tw-border-opacity, 1));
+}
+.border-pink-300 {
+ --tw-border-opacity: 1;
+ border-color: rgb(248 180 217 / var(--tw-border-opacity, 1));
+}
+.border-pink-500 {
+ --tw-border-opacity: 1;
+ border-color: rgb(231 70 148 / var(--tw-border-opacity, 1));
+}
+.border-pink-600 {
+ --tw-border-opacity: 1;
+ border-color: rgb(214 31 105 / var(--tw-border-opacity, 1));
+}
+.border-purple-500 {
+ --tw-border-opacity: 1;
+ border-color: rgb(144 97 249 / var(--tw-border-opacity, 1));
+}
+.border-purple-900 {
+ --tw-border-opacity: 1;
+ border-color: rgb(74 29 150 / var(--tw-border-opacity, 1));
+}
+.border-red-300 {
+ --tw-border-opacity: 1;
+ border-color: rgb(248 180 180 / var(--tw-border-opacity, 1));
+}
+.border-red-500 {
+ --tw-border-opacity: 1;
+ border-color: rgb(240 82 82 / var(--tw-border-opacity, 1));
+}
+.border-red-600 {
+ --tw-border-opacity: 1;
+ border-color: rgb(224 36 36 / var(--tw-border-opacity, 1));
+}
+.border-red-900 {
+ --tw-border-opacity: 1;
+ border-color: rgb(119 29 29 / var(--tw-border-opacity, 1));
+}
+.border-slate-200 {
+ --tw-border-opacity: 1;
+ border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
+}
+.border-teal-300 {
+ --tw-border-opacity: 1;
+ border-color: rgb(126 220 226 / var(--tw-border-opacity, 1));
+}
+.border-teal-500 {
+ --tw-border-opacity: 1;
+ border-color: rgb(6 148 162 / var(--tw-border-opacity, 1));
+}
+.border-transparent {
+ border-color: transparent;
+}
+.border-white {
+ --tw-border-opacity: 1;
+ border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
+}
+.border-yellow-300 {
+ --tw-border-opacity: 1;
+ border-color: rgb(250 202 21 / var(--tw-border-opacity, 1));
+}
+.border-yellow-400 {
+ --tw-border-opacity: 1;
+ border-color: rgb(227 160 8 / var(--tw-border-opacity, 1));
+}
+.border-yellow-500 {
+ --tw-border-opacity: 1;
+ border-color: rgb(194 120 3 / var(--tw-border-opacity, 1));
+}
+.border-yellow-600 {
+ --tw-border-opacity: 1;
+ border-color: rgb(159 88 10 / var(--tw-border-opacity, 1));
+}
+.\!bg-gray-50 {
+ --tw-bg-opacity: 1 !important;
+ background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1)) !important;
+}
+.\!bg-transparent {
+ background-color: transparent !important;
+}
+.bg-blue-100 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(225 239 254 / var(--tw-bg-opacity, 1));
+}
+.bg-blue-600 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(28 100 242 / var(--tw-bg-opacity, 1));
+}
+.bg-blue-700 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(26 86 219 / var(--tw-bg-opacity, 1));
+}
+.bg-cyan-100 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(207 250 254 / var(--tw-bg-opacity, 1));
+}
+.bg-cyan-200 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(165 243 252 / var(--tw-bg-opacity, 1));
+}
+.bg-cyan-50 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(236 254 255 / var(--tw-bg-opacity, 1));
+}
+.bg-cyan-500 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(6 182 212 / var(--tw-bg-opacity, 1));
+}
+.bg-cyan-600 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(8 145 178 / var(--tw-bg-opacity, 1));
+}
+.bg-cyan-700 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(14 116 144 / var(--tw-bg-opacity, 1));
+}
+.bg-gray-100 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
+}
+.bg-gray-200 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
+}
+.bg-gray-400 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1));
+}
+.bg-gray-50 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
+}
+.bg-gray-500 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1));
+}
+.bg-gray-600 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));
+}
+.bg-gray-700 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
+}
+.bg-gray-800 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
+}
+.bg-gray-900 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));
+}
+.bg-gray-900\/50 {
+ background-color: rgb(17 24 39 / 0.5);
+}
+.bg-green-100 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(222 247 236 / var(--tw-bg-opacity, 1));
+}
+.bg-green-400 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(49 196 141 / var(--tw-bg-opacity, 1));
+}
+.bg-green-50 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(243 250 247 / var(--tw-bg-opacity, 1));
+}
+.bg-green-500 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(14 159 110 / var(--tw-bg-opacity, 1));
+}
+.bg-green-600 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(5 122 85 / var(--tw-bg-opacity, 1));
+}
+.bg-green-700 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(4 108 78 / var(--tw-bg-opacity, 1));
+}
+.bg-indigo-100 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(229 237 255 / var(--tw-bg-opacity, 1));
+}
+.bg-indigo-400 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(141 162 251 / var(--tw-bg-opacity, 1));
+}
+.bg-indigo-600 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(88 80 236 / var(--tw-bg-opacity, 1));
+}
+.bg-lime-100 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(236 252 203 / var(--tw-bg-opacity, 1));
+}
+.bg-lime-400 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(163 230 53 / var(--tw-bg-opacity, 1));
+}
+.bg-lime-600 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(101 163 13 / var(--tw-bg-opacity, 1));
+}
+.bg-pink-100 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(252 232 243 / var(--tw-bg-opacity, 1));
+}
+.bg-pink-500 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(231 70 148 / var(--tw-bg-opacity, 1));
+}
+.bg-pink-600 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(214 31 105 / var(--tw-bg-opacity, 1));
+}
+.bg-purple-100 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(237 235 254 / var(--tw-bg-opacity, 1));
+}
+.bg-purple-50 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(246 245 255 / var(--tw-bg-opacity, 1));
+}
+.bg-purple-600 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(126 58 242 / var(--tw-bg-opacity, 1));
+}
+.bg-purple-700 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(108 43 217 / var(--tw-bg-opacity, 1));
+}
+.bg-red-100 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(253 232 232 / var(--tw-bg-opacity, 1));
+}
+.bg-red-400 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(249 128 128 / var(--tw-bg-opacity, 1));
+}
+.bg-red-50 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(253 242 242 / var(--tw-bg-opacity, 1));
+}
+.bg-red-600 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(224 36 36 / var(--tw-bg-opacity, 1));
+}
+.bg-red-700 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(200 30 30 / var(--tw-bg-opacity, 1));
+}
+.bg-teal-100 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(213 245 246 / var(--tw-bg-opacity, 1));
+}
+.bg-teal-600 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(4 116 129 / var(--tw-bg-opacity, 1));
+}
+.bg-transparent {
+ background-color: transparent;
+}
+.bg-white {
+ --tw-bg-opacity: 1;
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
+}
+.bg-white\/30 {
+ background-color: rgb(255 255 255 / 0.3);
+}
+.bg-white\/50 {
+ background-color: rgb(255 255 255 / 0.5);
+}
+.bg-yellow-100 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(253 246 178 / var(--tw-bg-opacity, 1));
+}
+.bg-yellow-400 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(227 160 8 / var(--tw-bg-opacity, 1));
+}
+.bg-yellow-50 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(253 253 234 / var(--tw-bg-opacity, 1));
+}
+.bg-yellow-600 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(159 88 10 / var(--tw-bg-opacity, 1));
+}
+.bg-opacity-50 {
+ --tw-bg-opacity: 0.5;
+}
+.bg-gradient-to-br {
+ background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
+}
+.bg-gradient-to-r {
+ background-image: linear-gradient(to right, var(--tw-gradient-stops));
+}
+.from-cyan-400 {
+ --tw-gradient-from: #22d3ee var(--tw-gradient-from-position);
+ --tw-gradient-to: rgb(34 211 238 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
+}
+.from-cyan-500 {
+ --tw-gradient-from: #06b6d4 var(--tw-gradient-from-position);
+ --tw-gradient-to: rgb(6 182 212 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
+}
+.from-green-400 {
+ --tw-gradient-from: #31C48D var(--tw-gradient-from-position);
+ --tw-gradient-to: rgb(49 196 141 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
+}
+.from-lime-200 {
+ --tw-gradient-from: #d9f99d var(--tw-gradient-from-position);
+ --tw-gradient-to: rgb(217 249 157 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
+}
+.from-pink-400 {
+ --tw-gradient-from: #F17EB8 var(--tw-gradient-from-position);
+ --tw-gradient-to: rgb(241 126 184 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
+}
+.from-pink-500 {
+ --tw-gradient-from: #E74694 var(--tw-gradient-from-position);
+ --tw-gradient-to: rgb(231 70 148 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
+}
+.from-purple-500 {
+ --tw-gradient-from: #9061F9 var(--tw-gradient-from-position);
+ --tw-gradient-to: rgb(144 97 249 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
+}
+.from-purple-600 {
+ --tw-gradient-from: #7E3AF2 var(--tw-gradient-from-position);
+ --tw-gradient-to: rgb(126 58 242 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
+}
+.from-red-200 {
+ --tw-gradient-from: #FBD5D5 var(--tw-gradient-from-position);
+ --tw-gradient-to: rgb(251 213 213 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
+}
+.from-red-400 {
+ --tw-gradient-from: #F98080 var(--tw-gradient-from-position);
+ --tw-gradient-to: rgb(249 128 128 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
+}
+.from-teal-200 {
+ --tw-gradient-from: #AFECEF var(--tw-gradient-from-position);
+ --tw-gradient-to: rgb(175 236 239 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
+}
+.from-teal-400 {
+ --tw-gradient-from: #16BDCA var(--tw-gradient-from-position);
+ --tw-gradient-to: rgb(22 189 202 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
+}
+.via-cyan-500 {
+ --tw-gradient-to: rgb(6 182 212 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), #06b6d4 var(--tw-gradient-via-position), var(--tw-gradient-to);
+}
+.via-cyan-600 {
+ --tw-gradient-to: rgb(8 145 178 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), #0891b2 var(--tw-gradient-via-position), var(--tw-gradient-to);
+}
+.via-green-500 {
+ --tw-gradient-to: rgb(14 159 110 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), #0E9F6E var(--tw-gradient-via-position), var(--tw-gradient-to);
+}
+.via-lime-400 {
+ --tw-gradient-to: rgb(163 230 53 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), #a3e635 var(--tw-gradient-via-position), var(--tw-gradient-to);
+}
+.via-pink-500 {
+ --tw-gradient-to: rgb(231 70 148 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), #E74694 var(--tw-gradient-via-position), var(--tw-gradient-to);
+}
+.via-purple-600 {
+ --tw-gradient-to: rgb(126 58 242 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), #7E3AF2 var(--tw-gradient-via-position), var(--tw-gradient-to);
+}
+.via-red-300 {
+ --tw-gradient-to: rgb(248 180 180 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), #F8B4B4 var(--tw-gradient-via-position), var(--tw-gradient-to);
+}
+.via-red-500 {
+ --tw-gradient-to: rgb(240 82 82 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), #F05252 var(--tw-gradient-via-position), var(--tw-gradient-to);
+}
+.via-teal-500 {
+ --tw-gradient-to: rgb(6 148 162 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), #0694A2 var(--tw-gradient-via-position), var(--tw-gradient-to);
+}
+.to-cyan-500 {
+ --tw-gradient-to: #06b6d4 var(--tw-gradient-to-position);
+}
+.to-cyan-600 {
+ --tw-gradient-to: #0891b2 var(--tw-gradient-to-position);
+}
+.to-cyan-700 {
+ --tw-gradient-to: #0e7490 var(--tw-gradient-to-position);
+}
+.to-green-600 {
+ --tw-gradient-to: #057A55 var(--tw-gradient-to-position);
+}
+.to-lime-200 {
+ --tw-gradient-to: #d9f99d var(--tw-gradient-to-position);
+}
+.to-lime-500 {
+ --tw-gradient-to: #84cc16 var(--tw-gradient-to-position);
+}
+.to-orange-400 {
+ --tw-gradient-to: #FF8A4C var(--tw-gradient-to-position);
+}
+.to-pink-500 {
+ --tw-gradient-to: #E74694 var(--tw-gradient-to-position);
+}
+.to-pink-600 {
+ --tw-gradient-to: #D61F69 var(--tw-gradient-to-position);
+}
+.to-purple-700 {
+ --tw-gradient-to: #6C2BD9 var(--tw-gradient-to-position);
+}
+.to-red-600 {
+ --tw-gradient-to: #E02424 var(--tw-gradient-to-position);
+}
+.to-teal-600 {
+ --tw-gradient-to: #047481 var(--tw-gradient-to-position);
+}
+.to-yellow-200 {
+ --tw-gradient-to: #FCE96A var(--tw-gradient-to-position);
+}
+.fill-current {
+ fill: currentColor;
+}
+.fill-cyan-600 {
+ fill: #0891b2;
+}
+.fill-gray-600 {
+ fill: #4B5563;
+}
+.fill-green-500 {
+ fill: #0E9F6E;
+}
+.fill-pink-600 {
+ fill: #D61F69;
+}
+.fill-purple-600 {
+ fill: #7E3AF2;
+}
+.fill-red-600 {
+ fill: #E02424;
+}
+.fill-yellow-400 {
+ fill: #E3A008;
+}
+.object-cover {
+ -o-object-fit: cover;
+ object-fit: cover;
+}
+.p-0\.5 {
+ padding: 0.125rem;
+}
+.p-1 {
+ padding: 0.25rem;
+}
+.p-1\.5 {
+ padding: 0.375rem;
+}
+.p-2 {
+ padding: 0.5rem;
+}
+.p-2\.5 {
+ padding: 0.625rem;
+}
+.p-4 {
+ padding: 1rem;
+}
+.p-5 {
+ padding: 1.25rem;
+}
+.p-6 {
+ padding: 1.5rem;
+}
+.px-0 {
+ padding-left: 0px;
+ padding-right: 0px;
+}
+.px-2 {
+ padding-left: 0.5rem;
+ padding-right: 0.5rem;
+}
+.px-2\.5 {
+ padding-left: 0.625rem;
+ padding-right: 0.625rem;
+}
+.px-3 {
+ padding-left: 0.75rem;
+ padding-right: 0.75rem;
+}
+.px-4 {
+ padding-left: 1rem;
+ padding-right: 1rem;
+}
+.px-5 {
+ padding-left: 1.25rem;
+ padding-right: 1.25rem;
+}
+.px-6 {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem;
+}
+.py-0\.5 {
+ padding-top: 0.125rem;
+ padding-bottom: 0.125rem;
+}
+.py-1 {
+ padding-top: 0.25rem;
+ padding-bottom: 0.25rem;
+}
+.py-1\.5 {
+ padding-top: 0.375rem;
+ padding-bottom: 0.375rem;
+}
+.py-2 {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+}
+.py-2\.5 {
+ padding-top: 0.625rem;
+ padding-bottom: 0.625rem;
+}
+.py-3 {
+ padding-top: 0.75rem;
+ padding-bottom: 0.75rem;
+}
+.py-4 {
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+}
+.pb-2\.5 {
+ padding-bottom: 0.625rem;
+}
+.pl-0 {
+ padding-left: 0px;
+}
+.pl-10 {
+ padding-left: 2.5rem;
+}
+.pl-12 {
+ padding-left: 3rem;
+}
+.pl-16 {
+ padding-left: 4rem;
+}
+.pl-2\.5 {
+ padding-left: 0.625rem;
+}
+.pl-20 {
+ padding-left: 5rem;
+}
+.pl-3 {
+ padding-left: 0.75rem;
+}
+.pl-8 {
+ padding-left: 2rem;
+}
+.pr-10 {
+ padding-right: 2.5rem;
+}
+.pr-3 {
+ padding-right: 0.75rem;
+}
+.pr-4 {
+ padding-right: 1rem;
+}
+.ps-5 {
+ padding-inline-start: 1.25rem;
+}
+.pt-0 {
+ padding-top: 0px;
+}
+.pt-2 {
+ padding-top: 0.5rem;
+}
+.pt-4 {
+ padding-top: 1rem;
+}
+.pt-5 {
+ padding-top: 1.25rem;
+}
+.text-left {
+ text-align: left;
+}
+.text-center {
+ text-align: center;
+}
+.text-start {
+ text-align: start;
+}
+.text-end {
+ text-align: end;
+}
+.text-2xl {
+ font-size: 1.5rem;
+ line-height: 2rem;
+}
+.text-\[17px\] {
+ font-size: 17px;
+}
+.text-base {
+ font-size: 1rem;
+ line-height: 1.5rem;
+}
+.text-lg {
+ font-size: 1.125rem;
+ line-height: 1.75rem;
+}
+.text-sm {
+ font-size: 0.875rem;
+ line-height: 1.25rem;
+}
+.text-xl {
+ font-size: 1.25rem;
+ line-height: 1.75rem;
+}
+.text-xs {
+ font-size: 0.75rem;
+ line-height: 1rem;
+}
+.font-bold {
+ font-weight: 700;
+}
+.font-medium {
+ font-weight: 500;
+}
+.font-normal {
+ font-weight: 400;
+}
+.font-semibold {
+ font-weight: 600;
+}
+.uppercase {
+ text-transform: uppercase;
+}
+.italic {
+ font-style: italic;
+}
+.leading-6 {
+ line-height: 1.5rem;
+}
+.leading-9 {
+ line-height: 2.25rem;
+}
+.leading-none {
+ line-height: 1;
+}
+.leading-tight {
+ line-height: 1.25;
+}
+.text-blue-500 {
+ --tw-text-opacity: 1;
+ color: rgb(63 131 248 / var(--tw-text-opacity, 1));
+}
+.text-blue-700 {
+ --tw-text-opacity: 1;
+ color: rgb(26 86 219 / var(--tw-text-opacity, 1));
+}
+.text-blue-800 {
+ --tw-text-opacity: 1;
+ color: rgb(30 66 159 / var(--tw-text-opacity, 1));
+}
+.text-cyan-300 {
+ --tw-text-opacity: 1;
+ color: rgb(103 232 249 / var(--tw-text-opacity, 1));
+}
+.text-cyan-500 {
+ --tw-text-opacity: 1;
+ color: rgb(6 182 212 / var(--tw-text-opacity, 1));
+}
+.text-cyan-600 {
+ --tw-text-opacity: 1;
+ color: rgb(8 145 178 / var(--tw-text-opacity, 1));
+}
+.text-cyan-700 {
+ --tw-text-opacity: 1;
+ color: rgb(14 116 144 / var(--tw-text-opacity, 1));
+}
+.text-cyan-800 {
+ --tw-text-opacity: 1;
+ color: rgb(21 94 117 / var(--tw-text-opacity, 1));
+}
+.text-cyan-900 {
+ --tw-text-opacity: 1;
+ color: rgb(22 78 99 / var(--tw-text-opacity, 1));
+}
+.text-gray-100 {
+ --tw-text-opacity: 1;
+ color: rgb(243 244 246 / var(--tw-text-opacity, 1));
+}
+.text-gray-200 {
+ --tw-text-opacity: 1;
+ color: rgb(229 231 235 / var(--tw-text-opacity, 1));
+}
+.text-gray-300 {
+ --tw-text-opacity: 1;
+ color: rgb(209 213 219 / var(--tw-text-opacity, 1));
+}
+.text-gray-400 {
+ --tw-text-opacity: 1;
+ color: rgb(156 163 175 / var(--tw-text-opacity, 1));
+}
+.text-gray-500 {
+ --tw-text-opacity: 1;
+ color: rgb(107 114 128 / var(--tw-text-opacity, 1));
+}
+.text-gray-600 {
+ --tw-text-opacity: 1;
+ color: rgb(75 85 99 / var(--tw-text-opacity, 1));
+}
+.text-gray-700 {
+ --tw-text-opacity: 1;
+ color: rgb(55 65 81 / var(--tw-text-opacity, 1));
+}
+.text-gray-800 {
+ --tw-text-opacity: 1;
+ color: rgb(31 41 55 / var(--tw-text-opacity, 1));
+}
+.text-gray-900 {
+ --tw-text-opacity: 1;
+ color: rgb(17 24 39 / var(--tw-text-opacity, 1));
+}
+.text-green-500 {
+ --tw-text-opacity: 1;
+ color: rgb(14 159 110 / var(--tw-text-opacity, 1));
+}
+.text-green-600 {
+ --tw-text-opacity: 1;
+ color: rgb(5 122 85 / var(--tw-text-opacity, 1));
+}
+.text-green-700 {
+ --tw-text-opacity: 1;
+ color: rgb(4 108 78 / var(--tw-text-opacity, 1));
+}
+.text-green-800 {
+ --tw-text-opacity: 1;
+ color: rgb(3 84 63 / var(--tw-text-opacity, 1));
+}
+.text-green-900 {
+ --tw-text-opacity: 1;
+ color: rgb(1 71 55 / var(--tw-text-opacity, 1));
+}
+.text-indigo-500 {
+ --tw-text-opacity: 1;
+ color: rgb(104 117 245 / var(--tw-text-opacity, 1));
+}
+.text-indigo-700 {
+ --tw-text-opacity: 1;
+ color: rgb(81 69 205 / var(--tw-text-opacity, 1));
+}
+.text-indigo-800 {
+ --tw-text-opacity: 1;
+ color: rgb(66 56 157 / var(--tw-text-opacity, 1));
+}
+.text-indigo-900 {
+ --tw-text-opacity: 1;
+ color: rgb(54 47 120 / var(--tw-text-opacity, 1));
+}
+.text-lime-500 {
+ --tw-text-opacity: 1;
+ color: rgb(132 204 22 / var(--tw-text-opacity, 1));
+}
+.text-lime-700 {
+ --tw-text-opacity: 1;
+ color: rgb(77 124 15 / var(--tw-text-opacity, 1));
+}
+.text-lime-800 {
+ --tw-text-opacity: 1;
+ color: rgb(63 98 18 / var(--tw-text-opacity, 1));
+}
+.text-lime-900 {
+ --tw-text-opacity: 1;
+ color: rgb(54 83 20 / var(--tw-text-opacity, 1));
+}
+.text-pink-500 {
+ --tw-text-opacity: 1;
+ color: rgb(231 70 148 / var(--tw-text-opacity, 1));
+}
+.text-pink-600 {
+ --tw-text-opacity: 1;
+ color: rgb(214 31 105 / var(--tw-text-opacity, 1));
+}
+.text-pink-700 {
+ --tw-text-opacity: 1;
+ color: rgb(191 18 93 / var(--tw-text-opacity, 1));
+}
+.text-pink-800 {
+ --tw-text-opacity: 1;
+ color: rgb(153 21 75 / var(--tw-text-opacity, 1));
+}
+.text-pink-900 {
+ --tw-text-opacity: 1;
+ color: rgb(117 26 61 / var(--tw-text-opacity, 1));
+}
+.text-purple-500 {
+ --tw-text-opacity: 1;
+ color: rgb(144 97 249 / var(--tw-text-opacity, 1));
+}
+.text-purple-600 {
+ --tw-text-opacity: 1;
+ color: rgb(126 58 242 / var(--tw-text-opacity, 1));
+}
+.text-purple-700 {
+ --tw-text-opacity: 1;
+ color: rgb(108 43 217 / var(--tw-text-opacity, 1));
+}
+.text-purple-800 {
+ --tw-text-opacity: 1;
+ color: rgb(85 33 181 / var(--tw-text-opacity, 1));
+}
+.text-red-500 {
+ --tw-text-opacity: 1;
+ color: rgb(240 82 82 / var(--tw-text-opacity, 1));
+}
+.text-red-600 {
+ --tw-text-opacity: 1;
+ color: rgb(224 36 36 / var(--tw-text-opacity, 1));
+}
+.text-red-700 {
+ --tw-text-opacity: 1;
+ color: rgb(200 30 30 / var(--tw-text-opacity, 1));
+}
+.text-red-800 {
+ --tw-text-opacity: 1;
+ color: rgb(155 28 28 / var(--tw-text-opacity, 1));
+}
+.text-red-900 {
+ --tw-text-opacity: 1;
+ color: rgb(119 29 29 / var(--tw-text-opacity, 1));
+}
+.text-teal-500 {
+ --tw-text-opacity: 1;
+ color: rgb(6 148 162 / var(--tw-text-opacity, 1));
+}
+.text-teal-600 {
+ --tw-text-opacity: 1;
+ color: rgb(4 116 129 / var(--tw-text-opacity, 1));
+}
+.text-teal-700 {
+ --tw-text-opacity: 1;
+ color: rgb(3 102 114 / var(--tw-text-opacity, 1));
+}
+.text-teal-800 {
+ --tw-text-opacity: 1;
+ color: rgb(5 80 92 / var(--tw-text-opacity, 1));
+}
+.text-teal-900 {
+ --tw-text-opacity: 1;
+ color: rgb(1 68 81 / var(--tw-text-opacity, 1));
+}
+.text-white {
+ --tw-text-opacity: 1;
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
+}
+.text-yellow-400 {
+ --tw-text-opacity: 1;
+ color: rgb(227 160 8 / var(--tw-text-opacity, 1));
+}
+.text-yellow-500 {
+ --tw-text-opacity: 1;
+ color: rgb(194 120 3 / var(--tw-text-opacity, 1));
+}
+.text-yellow-700 {
+ --tw-text-opacity: 1;
+ color: rgb(142 75 16 / var(--tw-text-opacity, 1));
+}
+.text-yellow-800 {
+ --tw-text-opacity: 1;
+ color: rgb(114 59 19 / var(--tw-text-opacity, 1));
+}
+.text-yellow-900 {
+ --tw-text-opacity: 1;
+ color: rgb(99 49 18 / var(--tw-text-opacity, 1));
+}
+.underline {
+ text-decoration-line: underline;
+}
+.placeholder-cyan-700::-moz-placeholder {
+ --tw-placeholder-opacity: 1;
+ color: rgb(14 116 144 / var(--tw-placeholder-opacity, 1));
+}
+.placeholder-cyan-700::placeholder {
+ --tw-placeholder-opacity: 1;
+ color: rgb(14 116 144 / var(--tw-placeholder-opacity, 1));
+}
+.placeholder-green-700::-moz-placeholder {
+ --tw-placeholder-opacity: 1;
+ color: rgb(4 108 78 / var(--tw-placeholder-opacity, 1));
+}
+.placeholder-green-700::placeholder {
+ --tw-placeholder-opacity: 1;
+ color: rgb(4 108 78 / var(--tw-placeholder-opacity, 1));
+}
+.placeholder-red-700::-moz-placeholder {
+ --tw-placeholder-opacity: 1;
+ color: rgb(200 30 30 / var(--tw-placeholder-opacity, 1));
+}
+.placeholder-red-700::placeholder {
+ --tw-placeholder-opacity: 1;
+ color: rgb(200 30 30 / var(--tw-placeholder-opacity, 1));
+}
+.placeholder-yellow-700::-moz-placeholder {
+ --tw-placeholder-opacity: 1;
+ color: rgb(142 75 16 / var(--tw-placeholder-opacity, 1));
+}
+.placeholder-yellow-700::placeholder {
+ --tw-placeholder-opacity: 1;
+ color: rgb(142 75 16 / var(--tw-placeholder-opacity, 1));
+}
+.opacity-0 {
+ opacity: 0;
+}
+.opacity-50 {
+ opacity: 0.5;
+}
+.mix-blend-lighten {
+ mix-blend-mode: lighten;
+}
+.shadow {
+ --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
+ --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
+}
+.shadow-lg {
+ --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
+ --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
+}
+.shadow-md {
+ --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
+ --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
+}
+.shadow-sm {
+ --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
+ --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
+}
+.outline-none {
+ outline: 2px solid transparent;
+ outline-offset: 2px;
+}
+.outline {
+ outline-style: solid;
+}
+.ring-2 {
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
+}
+.ring-8 {
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color);
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
+}
+.ring-cyan-400 {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(34 211 238 / var(--tw-ring-opacity, 1));
+}
+.ring-cyan-700 {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(14 116 144 / var(--tw-ring-opacity, 1));
+}
+.ring-gray-300 {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity, 1));
+}
+.ring-gray-500 {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity, 1));
+}
+.ring-gray-800 {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity, 1));
+}
+.ring-green-500 {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity, 1));
+}
+.ring-pink-500 {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(231 70 148 / var(--tw-ring-opacity, 1));
+}
+.ring-purple-500 {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(144 97 249 / var(--tw-ring-opacity, 1));
+}
+.ring-red-500 {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(240 82 82 / var(--tw-ring-opacity, 1));
+}
+.ring-white {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity, 1));
+}
+.ring-yellow-300 {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(250 202 21 / var(--tw-ring-opacity, 1));
+}
+.drop-shadow-md {
+ --tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+}
+.filter {
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+}
+.transition {
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+ transition-duration: 150ms;
+}
+.transition-\[color\2c background-color\2c border-color\2c text-decoration-color\2c fill\2c stroke\2c box-shadow\] {
+ transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,box-shadow;
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+ transition-duration: 150ms;
+}
+.transition-all {
+ transition-property: all;
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+ transition-duration: 150ms;
+}
+.transition-opacity {
+ transition-property: opacity;
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+ transition-duration: 150ms;
+}
+.transition-transform {
+ transition-property: transform;
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+ transition-duration: 150ms;
+}
+.delay-0 {
+ transition-delay: 0s;
+}
+.duration-100 {
+ transition-duration: 100ms;
+}
+.duration-1000 {
+ transition-duration: 1000ms;
+}
+.duration-150 {
+ transition-duration: 150ms;
+}
+.duration-200 {
+ transition-duration: 200ms;
+}
+.duration-300 {
+ transition-duration: 300ms;
+}
+.duration-500 {
+ transition-duration: 500ms;
+}
+.duration-700 {
+ transition-duration: 700ms;
+}
+.duration-75 {
+ transition-duration: 75ms;
+}
+.ease-in {
+ transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
+}
+.ease-in-out {
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+}
+.ease-out {
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
+}
+.\[overflow\:-moz-scrollbars-none\] {
+ overflow: -moz-scrollbars-none;
+}
+.\[scrollbar-width\:none\] {
+ scrollbar-width: none;
+}
+.after\:absolute::after {
+ content: var(--tw-content);
+ position: absolute;
+}
+.after\:left-1::after {
+ content: var(--tw-content);
+ left: 0.25rem;
+}
+.after\:left-px::after {
+ content: var(--tw-content);
+ left: 1px;
+}
+.after\:start-\[2px\]::after {
+ content: var(--tw-content);
+ inset-inline-start: 2px;
+}
+.after\:top-0\.5::after {
+ content: var(--tw-content);
+ top: 0.125rem;
+}
+.after\:top-px::after {
+ content: var(--tw-content);
+ top: 1px;
+}
+.after\:h-4::after {
+ content: var(--tw-content);
+ height: 1rem;
+}
+.after\:h-5::after {
+ content: var(--tw-content);
+ height: 1.25rem;
+}
+.after\:h-6::after {
+ content: var(--tw-content);
+ height: 1.5rem;
+}
+.after\:w-4::after {
+ content: var(--tw-content);
+ width: 1rem;
+}
+.after\:w-5::after {
+ content: var(--tw-content);
+ width: 1.25rem;
+}
+.after\:w-6::after {
+ content: var(--tw-content);
+ width: 1.5rem;
+}
+.after\:translate-x-full::after {
+ content: var(--tw-content);
+ --tw-translate-x: 100%;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.after\:rounded-full::after {
+ content: var(--tw-content);
+ border-radius: 9999px;
+}
+.after\:border::after {
+ content: var(--tw-content);
+ border-width: 1px;
+}
+.after\:border-gray-300::after {
+ content: var(--tw-content);
+ --tw-border-opacity: 1;
+ border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
+}
+.after\:border-white::after {
+ content: var(--tw-content);
+ --tw-border-opacity: 1;
+ border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
+}
+.after\:bg-white::after {
+ content: var(--tw-content);
+ --tw-bg-opacity: 1;
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
+}
+.after\:transition-all::after {
+ content: var(--tw-content);
+ transition-property: all;
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+ transition-duration: 150ms;
+}
+.after\:content-\[\'\'\]::after {
+ --tw-content: '';
+ content: var(--tw-content);
+}
+.first\:ml-0:first-child {
+ margin-left: 0px;
+}
+.first\:mt-0:first-child {
+ margin-top: 0px;
+}
+.first\:rounded-t-lg:first-child {
+ border-top-left-radius: 0.5rem;
+ border-top-right-radius: 0.5rem;
+}
+.first\:border-t-0:first-child {
+ border-top-width: 0px;
+}
+.first\:pt-0:first-child {
+ padding-top: 0px;
+}
+.last\:mr-0:last-child {
+ margin-right: 0px;
+}
+.last\:rounded-b-lg:last-child {
+ border-bottom-right-radius: 0.5rem;
+ border-bottom-left-radius: 0.5rem;
+}
+.odd\:bg-white:nth-child(odd) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
+}
+.even\:bg-gray-50:nth-child(even) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
+}
+.hover\:cursor-not-allowed:hover {
+ cursor: not-allowed;
+}
+.hover\:border-gray-300:hover {
+ --tw-border-opacity: 1;
+ border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
+}
+.hover\:bg-blue-200:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(195 221 253 / var(--tw-bg-opacity, 1));
+}
+.hover\:bg-blue-800:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(30 66 159 / var(--tw-bg-opacity, 1));
+}
+.hover\:bg-cyan-100:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(207 250 254 / var(--tw-bg-opacity, 1));
+}
+.hover\:bg-cyan-200:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(165 243 252 / var(--tw-bg-opacity, 1));
+}
+.hover\:bg-cyan-600:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(8 145 178 / var(--tw-bg-opacity, 1));
+}
+.hover\:bg-cyan-800:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(21 94 117 / var(--tw-bg-opacity, 1));
+}
+.hover\:bg-gray-100:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
+}
+.hover\:bg-gray-200:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
+}
+.hover\:bg-gray-50:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
+}
+.hover\:bg-gray-600:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));
+}
+.hover\:bg-green-200:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(188 240 218 / var(--tw-bg-opacity, 1));
+}
+.hover\:bg-indigo-200:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(205 219 254 / var(--tw-bg-opacity, 1));
+}
+.hover\:bg-lime-200:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(217 249 157 / var(--tw-bg-opacity, 1));
+}
+.hover\:bg-pink-200:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(250 209 232 / var(--tw-bg-opacity, 1));
+}
+.hover\:bg-purple-200:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(220 215 254 / var(--tw-bg-opacity, 1));
+}
+.hover\:bg-red-200:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(251 213 213 / var(--tw-bg-opacity, 1));
+}
+.hover\:bg-teal-200:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(175 236 239 / var(--tw-bg-opacity, 1));
+}
+.hover\:bg-white:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
+}
+.hover\:bg-yellow-200:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(252 233 106 / var(--tw-bg-opacity, 1));
+}
+.hover\:bg-gradient-to-br:hover {
+ background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
+}
+.hover\:text-cyan-700:hover {
+ --tw-text-opacity: 1;
+ color: rgb(14 116 144 / var(--tw-text-opacity, 1));
+}
+.hover\:text-gray-600:hover {
+ --tw-text-opacity: 1;
+ color: rgb(75 85 99 / var(--tw-text-opacity, 1));
+}
+.hover\:text-gray-700:hover {
+ --tw-text-opacity: 1;
+ color: rgb(55 65 81 / var(--tw-text-opacity, 1));
+}
+.hover\:text-gray-900:hover {
+ --tw-text-opacity: 1;
+ color: rgb(17 24 39 / var(--tw-text-opacity, 1));
+}
+.hover\:underline:hover {
+ text-decoration-line: underline;
+}
+.focus\:z-10:focus {
+ z-index: 10;
+}
+.focus\:border-blue-500:focus {
+ --tw-border-opacity: 1;
+ border-color: rgb(63 131 248 / var(--tw-border-opacity, 1));
+}
+.focus\:border-blue-600:focus {
+ --tw-border-opacity: 1;
+ border-color: rgb(28 100 242 / var(--tw-border-opacity, 1));
+}
+.focus\:border-cyan-500:focus {
+ --tw-border-opacity: 1;
+ border-color: rgb(6 182 212 / var(--tw-border-opacity, 1));
+}
+.focus\:border-green-500:focus {
+ --tw-border-opacity: 1;
+ border-color: rgb(14 159 110 / var(--tw-border-opacity, 1));
+}
+.focus\:border-green-600:focus {
+ --tw-border-opacity: 1;
+ border-color: rgb(5 122 85 / var(--tw-border-opacity, 1));
+}
+.focus\:border-red-500:focus {
+ --tw-border-opacity: 1;
+ border-color: rgb(240 82 82 / var(--tw-border-opacity, 1));
+}
+.focus\:border-red-600:focus {
+ --tw-border-opacity: 1;
+ border-color: rgb(224 36 36 / var(--tw-border-opacity, 1));
+}
+.focus\:border-yellow-500:focus {
+ --tw-border-opacity: 1;
+ border-color: rgb(194 120 3 / var(--tw-border-opacity, 1));
+}
+.focus\:bg-gray-100:focus {
+ --tw-bg-opacity: 1;
+ background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
+}
+.focus\:text-cyan-700:focus {
+ --tw-text-opacity: 1;
+ color: rgb(14 116 144 / var(--tw-text-opacity, 1));
+}
+.focus\:text-gray-900:focus {
+ --tw-text-opacity: 1;
+ color: rgb(17 24 39 / var(--tw-text-opacity, 1));
+}
+.focus\:outline-none:focus {
+ outline: 2px solid transparent;
+ outline-offset: 2px;
+}
+.focus\:ring-0:focus {
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
+}
+.focus\:ring-2:focus {
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
+}
+.focus\:ring-4:focus {
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
+}
+.focus\:ring-blue-300:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-blue-400:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(118 169 250 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-blue-500:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-blue-600:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(28 100 242 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-cyan-300:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(103 232 249 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-cyan-400:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(34 211 238 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-cyan-500:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(6 182 212 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-cyan-600:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(8 145 178 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-cyan-700:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(14 116 144 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-cyan-800:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(21 94 117 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-gray-200:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-gray-300:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-gray-400:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-gray-800:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-gray-900:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(17 24 39 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-green-200:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(188 240 218 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-green-300:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(132 225 188 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-green-400:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(49 196 141 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-green-500:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-green-600:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(5 122 85 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-green-800:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(3 84 63 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-indigo-300:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(180 198 252 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-indigo-400:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(141 162 251 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-indigo-700:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(81 69 205 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-lime-200:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(217 249 157 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-lime-300:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(190 242 100 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-lime-400:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(163 230 53 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-lime-700:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(77 124 15 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-pink-200:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(250 209 232 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-pink-300:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(248 180 217 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-pink-400:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(241 126 184 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-pink-600:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(214 31 105 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-purple-200:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(220 215 254 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-purple-300:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(202 191 253 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-purple-400:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(172 148 250 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-purple-600:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(126 58 242 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-red-100:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(253 232 232 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-red-300:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(248 180 180 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-red-400:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(249 128 128 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-red-500:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(240 82 82 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-red-600:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(224 36 36 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-red-900:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(119 29 29 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-teal-300:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(126 220 226 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-teal-400:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(22 189 202 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-teal-600:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(4 116 129 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-yellow-300:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(250 202 21 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-yellow-400:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(227 160 8 / var(--tw-ring-opacity, 1));
+}
+.focus\:ring-yellow-500:focus {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(194 120 3 / var(--tw-ring-opacity, 1));
+}
+.enabled\:hover\:bg-blue-800:hover:enabled {
+ --tw-bg-opacity: 1;
+ background-color: rgb(30 66 159 / var(--tw-bg-opacity, 1));
+}
+.enabled\:hover\:bg-cyan-100:hover:enabled {
+ --tw-bg-opacity: 1;
+ background-color: rgb(207 250 254 / var(--tw-bg-opacity, 1));
+}
+.enabled\:hover\:bg-cyan-800:hover:enabled {
+ --tw-bg-opacity: 1;
+ background-color: rgb(21 94 117 / var(--tw-bg-opacity, 1));
+}
+.enabled\:hover\:bg-gray-100:hover:enabled {
+ --tw-bg-opacity: 1;
+ background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
+}
+.enabled\:hover\:bg-gray-900:hover:enabled {
+ --tw-bg-opacity: 1;
+ background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));
+}
+.enabled\:hover\:bg-green-100:hover:enabled {
+ --tw-bg-opacity: 1;
+ background-color: rgb(222 247 236 / var(--tw-bg-opacity, 1));
+}
+.enabled\:hover\:bg-green-800:hover:enabled {
+ --tw-bg-opacity: 1;
+ background-color: rgb(3 84 63 / var(--tw-bg-opacity, 1));
+}
+.enabled\:hover\:bg-indigo-100:hover:enabled {
+ --tw-bg-opacity: 1;
+ background-color: rgb(229 237 255 / var(--tw-bg-opacity, 1));
+}
+.enabled\:hover\:bg-lime-100:hover:enabled {
+ --tw-bg-opacity: 1;
+ background-color: rgb(236 252 203 / var(--tw-bg-opacity, 1));
+}
+.enabled\:hover\:bg-pink-100:hover:enabled {
+ --tw-bg-opacity: 1;
+ background-color: rgb(252 232 243 / var(--tw-bg-opacity, 1));
+}
+.enabled\:hover\:bg-purple-800:hover:enabled {
+ --tw-bg-opacity: 1;
+ background-color: rgb(85 33 181 / var(--tw-bg-opacity, 1));
+}
+.enabled\:hover\:bg-red-100:hover:enabled {
+ --tw-bg-opacity: 1;
+ background-color: rgb(253 232 232 / var(--tw-bg-opacity, 1));
+}
+.enabled\:hover\:bg-red-800:hover:enabled {
+ --tw-bg-opacity: 1;
+ background-color: rgb(155 28 28 / var(--tw-bg-opacity, 1));
+}
+.enabled\:hover\:bg-teal-100:hover:enabled {
+ --tw-bg-opacity: 1;
+ background-color: rgb(213 245 246 / var(--tw-bg-opacity, 1));
+}
+.enabled\:hover\:bg-yellow-100:hover:enabled {
+ --tw-bg-opacity: 1;
+ background-color: rgb(253 246 178 / var(--tw-bg-opacity, 1));
+}
+.enabled\:hover\:bg-yellow-500:hover:enabled {
+ --tw-bg-opacity: 1;
+ background-color: rgb(194 120 3 / var(--tw-bg-opacity, 1));
+}
+.enabled\:hover\:bg-gradient-to-bl:hover:enabled {
+ background-image: linear-gradient(to bottom left, var(--tw-gradient-stops));
+}
+.enabled\:hover\:bg-gradient-to-br:hover:enabled {
+ background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
+}
+.enabled\:hover\:bg-gradient-to-l:hover:enabled {
+ background-image: linear-gradient(to left, var(--tw-gradient-stops));
+}
+.enabled\:hover\:from-teal-200:hover:enabled {
+ --tw-gradient-from: #AFECEF var(--tw-gradient-from-position);
+ --tw-gradient-to: rgb(175 236 239 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
+}
+.enabled\:hover\:to-lime-200:hover:enabled {
+ --tw-gradient-to: #d9f99d var(--tw-gradient-to-position);
+}
+.enabled\:hover\:text-cyan-700:hover:enabled {
+ --tw-text-opacity: 1;
+ color: rgb(14 116 144 / var(--tw-text-opacity, 1));
+}
+.enabled\:hover\:text-gray-700:hover:enabled {
+ --tw-text-opacity: 1;
+ color: rgb(55 65 81 / var(--tw-text-opacity, 1));
+}
+.enabled\:hover\:text-gray-900:hover:enabled {
+ --tw-text-opacity: 1;
+ color: rgb(17 24 39 / var(--tw-text-opacity, 1));
+}
+.disabled\:cursor-not-allowed:disabled {
+ cursor: not-allowed;
+}
+.disabled\:text-gray-400:disabled {
+ --tw-text-opacity: 1;
+ color: rgb(156 163 175 / var(--tw-text-opacity, 1));
+}
+.disabled\:opacity-50:disabled {
+ opacity: 0.5;
+}
+.group:first-child .group-first\:hidden {
+ display: none;
+}
+.group\/body:first-child .group\/row:first-child .group-first\/body\:group-first\/row\:first\:rounded-tl-lg:first-child {
+ border-top-left-radius: 0.5rem;
+}
+.group\/head:first-child .group-first\/head\:first\:rounded-tl-lg:first-child {
+ border-top-left-radius: 0.5rem;
+}
+.group\/body:first-child .group\/row:first-child .group-first\/body\:group-first\/row\:last\:rounded-tr-lg:last-child {
+ border-top-right-radius: 0.5rem;
+}
+.group\/head:first-child .group-first\/head\:last\:rounded-tr-lg:last-child {
+ border-top-right-radius: 0.5rem;
+}
+.group\/body:last-child .group\/row:last-child .group-last\/body\:group-last\/row\:first\:rounded-bl-lg:first-child {
+ border-bottom-left-radius: 0.5rem;
+}
+.group\/body:last-child .group\/row:last-child .group-last\/body\:group-last\/row\:last\:rounded-br-lg:last-child {
+ border-bottom-right-radius: 0.5rem;
+}
+.group:hover .group-hover\:bg-blue-200 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(195 221 253 / var(--tw-bg-opacity, 1));
+}
+.group:hover .group-hover\:bg-cyan-200 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(165 243 252 / var(--tw-bg-opacity, 1));
+}
+.group:hover .group-hover\:bg-gray-200 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
+}
+.group:hover .group-hover\:bg-gray-300 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));
+}
+.group:hover .group-hover\:bg-gray-500 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1));
+}
+.group:hover .group-hover\:bg-green-200 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(188 240 218 / var(--tw-bg-opacity, 1));
+}
+.group:hover .group-hover\:bg-indigo-200 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(205 219 254 / var(--tw-bg-opacity, 1));
+}
+.group:hover .group-hover\:bg-lime-200 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(217 249 157 / var(--tw-bg-opacity, 1));
+}
+.group:hover .group-hover\:bg-pink-200 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(250 209 232 / var(--tw-bg-opacity, 1));
+}
+.group:hover .group-hover\:bg-purple-200 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(220 215 254 / var(--tw-bg-opacity, 1));
+}
+.group:hover .group-hover\:bg-red-200 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(251 213 213 / var(--tw-bg-opacity, 1));
+}
+.group:hover .group-hover\:bg-teal-200 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(175 236 239 / var(--tw-bg-opacity, 1));
+}
+.group:hover .group-hover\:bg-white\/50 {
+ background-color: rgb(255 255 255 / 0.5);
+}
+.group:hover .group-hover\:bg-yellow-200 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(252 233 106 / var(--tw-bg-opacity, 1));
+}
+.group:hover .group-hover\:text-gray-900 {
+ --tw-text-opacity: 1;
+ color: rgb(17 24 39 / var(--tw-text-opacity, 1));
+}
+.group:focus .group-focus\:outline-none {
+ outline: 2px solid transparent;
+ outline-offset: 2px;
+}
+.group:focus .group-focus\:ring-4 {
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
+}
+.group:focus .group-focus\:ring-cyan-500\/25 {
+ --tw-ring-color: rgb(6 182 212 / 0.25);
+}
+.group:focus .group-focus\:ring-white {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity, 1));
+}
+.group:enabled:hover .group-enabled\:group-hover\:bg-opacity-0 {
+ --tw-bg-opacity: 0;
+}
+.group:enabled:hover .group-enabled\:group-hover\:text-inherit {
+ color: inherit;
+}
+.peer:checked ~ .peer-checked\:bg-blue-600 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(28 100 242 / var(--tw-bg-opacity, 1));
+}
+.peer:checked ~ .peer-checked\:after\:translate-x-full::after {
+ content: var(--tw-content);
+ --tw-translate-x: 100%;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.peer:checked ~ .peer-checked\:after\:border-white::after {
+ content: var(--tw-content);
+ --tw-border-opacity: 1;
+ border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
+}
+.peer:-moz-placeholder-shown ~ .peer-placeholder-shown\:top-1\/2 {
+ top: 50%;
+}
+.peer:placeholder-shown ~ .peer-placeholder-shown\:top-1\/2 {
+ top: 50%;
+}
+.peer:-moz-placeholder-shown ~ .peer-placeholder-shown\:-translate-y-1\/2 {
+ --tw-translate-y: -50%;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.peer:placeholder-shown ~ .peer-placeholder-shown\:-translate-y-1\/2 {
+ --tw-translate-y: -50%;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.peer:-moz-placeholder-shown ~ .peer-placeholder-shown\:translate-y-0 {
+ --tw-translate-y: 0px;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.peer:placeholder-shown ~ .peer-placeholder-shown\:translate-y-0 {
+ --tw-translate-y: 0px;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.peer:-moz-placeholder-shown ~ .peer-placeholder-shown\:scale-100 {
+ --tw-scale-x: 1;
+ --tw-scale-y: 1;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.peer:placeholder-shown ~ .peer-placeholder-shown\:scale-100 {
+ --tw-scale-x: 1;
+ --tw-scale-y: 1;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.peer:focus ~ .peer-focus\:left-0 {
+ left: 0px;
+}
+.peer:focus ~ .peer-focus\:top-2 {
+ top: 0.5rem;
+}
+.peer:focus ~ .peer-focus\:-translate-y-4 {
+ --tw-translate-y: -1rem;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.peer:focus ~ .peer-focus\:-translate-y-6 {
+ --tw-translate-y: -1.5rem;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.peer:focus ~ .peer-focus\:scale-75 {
+ --tw-scale-x: .75;
+ --tw-scale-y: .75;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.peer:focus ~ .peer-focus\:px-2 {
+ padding-left: 0.5rem;
+ padding-right: 0.5rem;
+}
+.peer:focus ~ .peer-focus\:text-blue-600 {
+ --tw-text-opacity: 1;
+ color: rgb(28 100 242 / var(--tw-text-opacity, 1));
+}
+.peer:focus ~ .peer-focus\:ring-4 {
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
+}
+.peer:focus ~ .peer-focus\:ring-blue-300 {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity, 1));
+}
+.dark\:block:is(.dark *) {
+ display: block;
+}
+.dark\:hidden:is(.dark *) {
+ display: none;
+}
+.dark\:divide-gray-700:is(.dark *) > :not([hidden]) ~ :not([hidden]) {
+ --tw-divide-opacity: 1;
+ border-color: rgb(55 65 81 / var(--tw-divide-opacity, 1));
+}
+.dark\:border-none:is(.dark *) {
+ border-style: none;
+}
+.dark\:border-cyan-400:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(34 211 238 / var(--tw-border-opacity, 1));
+}
+.dark\:border-cyan-500:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(6 182 212 / var(--tw-border-opacity, 1));
+}
+.dark\:border-cyan-600:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(8 145 178 / var(--tw-border-opacity, 1));
+}
+.dark\:border-gray-500:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(107 114 128 / var(--tw-border-opacity, 1));
+}
+.dark\:border-gray-600:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(75 85 99 / var(--tw-border-opacity, 1));
+}
+.dark\:border-gray-700:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));
+}
+.dark\:border-gray-800:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(31 41 55 / var(--tw-border-opacity, 1));
+}
+.dark\:border-gray-900:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(17 24 39 / var(--tw-border-opacity, 1));
+}
+.dark\:border-green-400:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(49 196 141 / var(--tw-border-opacity, 1));
+}
+.dark\:border-green-500:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(14 159 110 / var(--tw-border-opacity, 1));
+}
+.dark\:border-green-600:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(5 122 85 / var(--tw-border-opacity, 1));
+}
+.dark\:border-indigo-600:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(88 80 236 / var(--tw-border-opacity, 1));
+}
+.dark\:border-lime-600:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(101 163 13 / var(--tw-border-opacity, 1));
+}
+.dark\:border-pink-600:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(214 31 105 / var(--tw-border-opacity, 1));
+}
+.dark\:border-red-400:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(249 128 128 / var(--tw-border-opacity, 1));
+}
+.dark\:border-red-500:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(240 82 82 / var(--tw-border-opacity, 1));
+}
+.dark\:border-red-600:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(224 36 36 / var(--tw-border-opacity, 1));
+}
+.dark\:border-teal-600:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(4 116 129 / var(--tw-border-opacity, 1));
+}
+.dark\:border-white:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
+}
+.dark\:border-yellow-400:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(227 160 8 / var(--tw-border-opacity, 1));
+}
+.dark\:border-yellow-600:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(159 88 10 / var(--tw-border-opacity, 1));
+}
+.dark\:\!bg-gray-700:is(.dark *) {
+ --tw-bg-opacity: 1 !important;
+ background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)) !important;
+}
+.dark\:bg-black:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-blue-200:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(195 221 253 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-blue-600:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(28 100 242 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-cyan-100:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(207 250 254 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-cyan-200:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(165 243 252 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-cyan-600:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(8 145 178 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-cyan-900:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(22 78 99 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-gray-200:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-gray-300:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-gray-400:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-gray-500:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-gray-600:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-gray-700:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-gray-800:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-gray-800\/30:is(.dark *) {
+ background-color: rgb(31 41 55 / 0.3);
+}
+.dark\:bg-gray-800\/50:is(.dark *) {
+ background-color: rgb(31 41 55 / 0.5);
+}
+.dark\:bg-gray-900:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-gray-900\/80:is(.dark *) {
+ background-color: rgb(17 24 39 / 0.8);
+}
+.dark\:bg-green-100:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(222 247 236 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-green-200:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(188 240 218 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-green-500:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(14 159 110 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-green-600:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(5 122 85 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-green-900:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(1 71 55 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-indigo-200:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(205 219 254 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-indigo-500:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(104 117 245 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-indigo-600:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(88 80 236 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-lime-200:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(217 249 157 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-lime-600:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(101 163 13 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-pink-200:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(250 209 232 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-pink-600:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(214 31 105 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-purple-200:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(220 215 254 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-purple-500:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(144 97 249 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-purple-600:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(126 58 242 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-purple-900:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(74 29 150 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-red-100:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(253 232 232 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-red-200:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(251 213 213 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-red-500:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(240 82 82 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-red-600:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(224 36 36 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-red-900:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(119 29 29 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-teal-200:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(175 236 239 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-teal-600:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(4 116 129 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-transparent:is(.dark *) {
+ background-color: transparent;
+}
+.dark\:bg-yellow-100:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(253 246 178 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-yellow-200:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(252 233 106 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-yellow-600:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(159 88 10 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-yellow-900:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(99 49 18 / var(--tw-bg-opacity, 1));
+}
+.dark\:bg-opacity-80:is(.dark *) {
+ --tw-bg-opacity: 0.8;
+}
+.dark\:fill-gray-300:is(.dark *) {
+ fill: #D1D5DB;
+}
+.dark\:text-blue-500:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(63 131 248 / var(--tw-text-opacity, 1));
+}
+.dark\:text-blue-600:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(28 100 242 / var(--tw-text-opacity, 1));
+}
+.dark\:text-blue-800:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(30 66 159 / var(--tw-text-opacity, 1));
+}
+.dark\:text-blue-900:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(35 56 118 / var(--tw-text-opacity, 1));
+}
+.dark\:text-cyan-100:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(207 250 254 / var(--tw-text-opacity, 1));
+}
+.dark\:text-cyan-300:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(103 232 249 / var(--tw-text-opacity, 1));
+}
+.dark\:text-cyan-500:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(6 182 212 / var(--tw-text-opacity, 1));
+}
+.dark\:text-cyan-600:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(8 145 178 / var(--tw-text-opacity, 1));
+}
+.dark\:text-cyan-800:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(21 94 117 / var(--tw-text-opacity, 1));
+}
+.dark\:text-cyan-900:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(22 78 99 / var(--tw-text-opacity, 1));
+}
+.dark\:text-gray-100:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(243 244 246 / var(--tw-text-opacity, 1));
+}
+.dark\:text-gray-200:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(229 231 235 / var(--tw-text-opacity, 1));
+}
+.dark\:text-gray-300:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(209 213 219 / var(--tw-text-opacity, 1));
+}
+.dark\:text-gray-400:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(156 163 175 / var(--tw-text-opacity, 1));
+}
+.dark\:text-gray-500:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(107 114 128 / var(--tw-text-opacity, 1));
+}
+.dark\:text-gray-600:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(75 85 99 / var(--tw-text-opacity, 1));
+}
+.dark\:text-gray-800:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(31 41 55 / var(--tw-text-opacity, 1));
+}
+.dark\:text-gray-900:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(17 24 39 / var(--tw-text-opacity, 1));
+}
+.dark\:text-green-400:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(49 196 141 / var(--tw-text-opacity, 1));
+}
+.dark\:text-green-500:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(14 159 110 / var(--tw-text-opacity, 1));
+}
+.dark\:text-green-600:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(5 122 85 / var(--tw-text-opacity, 1));
+}
+.dark\:text-green-800:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(3 84 63 / var(--tw-text-opacity, 1));
+}
+.dark\:text-green-900:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(1 71 55 / var(--tw-text-opacity, 1));
+}
+.dark\:text-indigo-600:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(88 80 236 / var(--tw-text-opacity, 1));
+}
+.dark\:text-indigo-800:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(66 56 157 / var(--tw-text-opacity, 1));
+}
+.dark\:text-indigo-900:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(54 47 120 / var(--tw-text-opacity, 1));
+}
+.dark\:text-lime-600:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(101 163 13 / var(--tw-text-opacity, 1));
+}
+.dark\:text-lime-800:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(63 98 18 / var(--tw-text-opacity, 1));
+}
+.dark\:text-lime-900:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(54 83 20 / var(--tw-text-opacity, 1));
+}
+.dark\:text-pink-600:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(214 31 105 / var(--tw-text-opacity, 1));
+}
+.dark\:text-pink-800:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(153 21 75 / var(--tw-text-opacity, 1));
+}
+.dark\:text-pink-900:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(117 26 61 / var(--tw-text-opacity, 1));
+}
+.dark\:text-purple-600:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(126 58 242 / var(--tw-text-opacity, 1));
+}
+.dark\:text-purple-800:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(85 33 181 / var(--tw-text-opacity, 1));
+}
+.dark\:text-purple-900:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(74 29 150 / var(--tw-text-opacity, 1));
+}
+.dark\:text-red-400:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(249 128 128 / var(--tw-text-opacity, 1));
+}
+.dark\:text-red-500:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(240 82 82 / var(--tw-text-opacity, 1));
+}
+.dark\:text-red-600:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(224 36 36 / var(--tw-text-opacity, 1));
+}
+.dark\:text-red-800:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(155 28 28 / var(--tw-text-opacity, 1));
+}
+.dark\:text-red-900:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(119 29 29 / var(--tw-text-opacity, 1));
+}
+.dark\:text-teal-600:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(4 116 129 / var(--tw-text-opacity, 1));
+}
+.dark\:text-teal-800:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(5 80 92 / var(--tw-text-opacity, 1));
+}
+.dark\:text-teal-900:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(1 68 81 / var(--tw-text-opacity, 1));
+}
+.dark\:text-white:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
+}
+.dark\:text-yellow-600:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(159 88 10 / var(--tw-text-opacity, 1));
+}
+.dark\:text-yellow-800:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(114 59 19 / var(--tw-text-opacity, 1));
+}
+.dark\:text-yellow-900:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(99 49 18 / var(--tw-text-opacity, 1));
+}
+.dark\:placeholder-gray-400:is(.dark *)::-moz-placeholder {
+ --tw-placeholder-opacity: 1;
+ color: rgb(156 163 175 / var(--tw-placeholder-opacity, 1));
+}
+.dark\:placeholder-gray-400:is(.dark *)::placeholder {
+ --tw-placeholder-opacity: 1;
+ color: rgb(156 163 175 / var(--tw-placeholder-opacity, 1));
+}
+.dark\:mix-blend-color:is(.dark *) {
+ mix-blend-mode: color;
+}
+.dark\:shadow-sm-light:is(.dark *) {
+ --tw-shadow: 0 2px 5px 0px rgba(255, 255, 255, 0.08);
+ --tw-shadow-colored: 0 2px 5px 0px var(--tw-shadow-color);
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
+}
+.dark\:ring-cyan-800:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(21 94 117 / var(--tw-ring-opacity, 1));
+}
+.dark\:ring-gray-400:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity, 1));
+}
+.dark\:ring-gray-500:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity, 1));
+}
+.dark\:ring-gray-800:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity, 1));
+}
+.dark\:ring-gray-900:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(17 24 39 / var(--tw-ring-opacity, 1));
+}
+.dark\:ring-green-500:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity, 1));
+}
+.dark\:ring-pink-500:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(231 70 148 / var(--tw-ring-opacity, 1));
+}
+.dark\:ring-purple-600:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(126 58 242 / var(--tw-ring-opacity, 1));
+}
+.dark\:ring-red-700:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(200 30 30 / var(--tw-ring-opacity, 1));
+}
+.dark\:ring-yellow-500:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(194 120 3 / var(--tw-ring-opacity, 1));
+}
+.dark\:ring-offset-blue-700:is(.dark *) {
+ --tw-ring-offset-color: #1A56DB;
+}
+.dark\:ring-offset-cyan-600:is(.dark *) {
+ --tw-ring-offset-color: #0891b2;
+}
+.dark\:ring-offset-gray-800:is(.dark *) {
+ --tw-ring-offset-color: #1F2937;
+}
+.dark\:ring-offset-gray-900:is(.dark *) {
+ --tw-ring-offset-color: #111827;
+}
+.dark\:ring-offset-green-600:is(.dark *) {
+ --tw-ring-offset-color: #057A55;
+}
+.dark\:ring-offset-green-800:is(.dark *) {
+ --tw-ring-offset-color: #03543F;
+}
+.dark\:ring-offset-indigo-700:is(.dark *) {
+ --tw-ring-offset-color: #5145CD;
+}
+.dark\:ring-offset-lime-700:is(.dark *) {
+ --tw-ring-offset-color: #4d7c0f;
+}
+.dark\:ring-offset-pink-600:is(.dark *) {
+ --tw-ring-offset-color: #D61F69;
+}
+.dark\:ring-offset-purple-600:is(.dark *) {
+ --tw-ring-offset-color: #7E3AF2;
+}
+.dark\:ring-offset-red-600:is(.dark *) {
+ --tw-ring-offset-color: #E02424;
+}
+.dark\:ring-offset-red-900:is(.dark *) {
+ --tw-ring-offset-color: #771D1D;
+}
+.dark\:ring-offset-teal-600:is(.dark *) {
+ --tw-ring-offset-color: #047481;
+}
+.dark\:ring-offset-yellow-400:is(.dark *) {
+ --tw-ring-offset-color: #E3A008;
+}
+.odd\:dark\:bg-gray-800:is(.dark *):nth-child(odd) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
+}
+.even\:dark\:bg-gray-700:is(.dark *):nth-child(even) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
+}
+.dark\:hover\:bg-blue-300:hover:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(164 202 254 / var(--tw-bg-opacity, 1));
+}
+.dark\:hover\:bg-blue-700:hover:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(26 86 219 / var(--tw-bg-opacity, 1));
+}
+.dark\:hover\:bg-cyan-300:hover:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(103 232 249 / var(--tw-bg-opacity, 1));
+}
+.dark\:hover\:bg-cyan-700:hover:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(14 116 144 / var(--tw-bg-opacity, 1));
+}
+.dark\:hover\:bg-gray-300:hover:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));
+}
+.dark\:hover\:bg-gray-600:hover:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));
+}
+.dark\:hover\:bg-gray-700:hover:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
+}
+.dark\:hover\:bg-gray-800:hover:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
+}
+.dark\:hover\:bg-green-300:hover:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(132 225 188 / var(--tw-bg-opacity, 1));
+}
+.dark\:hover\:bg-indigo-300:hover:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(180 198 252 / var(--tw-bg-opacity, 1));
+}
+.dark\:hover\:bg-lime-300:hover:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(190 242 100 / var(--tw-bg-opacity, 1));
+}
+.dark\:hover\:bg-pink-300:hover:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(248 180 217 / var(--tw-bg-opacity, 1));
+}
+.dark\:hover\:bg-purple-300:hover:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(202 191 253 / var(--tw-bg-opacity, 1));
+}
+.dark\:hover\:bg-red-300:hover:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(248 180 180 / var(--tw-bg-opacity, 1));
+}
+.dark\:hover\:bg-teal-300:hover:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(126 220 226 / var(--tw-bg-opacity, 1));
+}
+.dark\:hover\:bg-yellow-300:hover:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(250 202 21 / var(--tw-bg-opacity, 1));
+}
+.dark\:hover\:text-gray-300:hover:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(209 213 219 / var(--tw-text-opacity, 1));
+}
+.dark\:hover\:text-white:hover:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
+}
+.dark\:focus\:border-blue-500:focus:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(63 131 248 / var(--tw-border-opacity, 1));
+}
+.dark\:focus\:border-cyan-500:focus:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(6 182 212 / var(--tw-border-opacity, 1));
+}
+.dark\:focus\:border-green-500:focus:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(14 159 110 / var(--tw-border-opacity, 1));
+}
+.dark\:focus\:border-red-500:focus:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(240 82 82 / var(--tw-border-opacity, 1));
+}
+.dark\:focus\:border-yellow-500:focus:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(194 120 3 / var(--tw-border-opacity, 1));
+}
+.dark\:focus\:bg-cyan-600:focus:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(8 145 178 / var(--tw-bg-opacity, 1));
+}
+.dark\:focus\:bg-gray-600:focus:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));
+}
+.dark\:focus\:text-white:focus:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
+}
+.dark\:focus\:ring-blue-500:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-blue-700:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(26 86 219 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-blue-800:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(30 66 159 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-cyan-500:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(6 182 212 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-cyan-600:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(8 145 178 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-cyan-700:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(14 116 144 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-cyan-800:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(21 94 117 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-gray-500:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-gray-600:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(75 85 99 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-gray-700:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(55 65 81 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-gray-800:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-gray-900:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(17 24 39 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-green-500:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-green-600:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(5 122 85 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-green-700:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(4 108 78 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-green-800:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(3 84 63 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-indigo-700:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(81 69 205 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-lime-700:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(77 124 15 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-lime-800:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(63 98 18 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-pink-600:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(214 31 105 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-pink-700:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(191 18 93 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-pink-800:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(153 21 75 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-purple-600:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(126 58 242 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-purple-800:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(85 33 181 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-purple-900:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(74 29 150 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-red-400:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(249 128 128 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-red-500:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(240 82 82 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-red-600:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(224 36 36 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-red-700:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(200 30 30 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-red-800:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(155 28 28 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-red-900:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(119 29 29 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-teal-600:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(4 116 129 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-teal-700:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(3 102 114 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-teal-800:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(5 80 92 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-yellow-400:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(227 160 8 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-yellow-500:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(194 120 3 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-yellow-700:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(142 75 16 / var(--tw-ring-opacity, 1));
+}
+.dark\:focus\:ring-yellow-900:focus:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(99 49 18 / var(--tw-ring-opacity, 1));
+}
+.dark\:enabled\:hover\:border-cyan-700:hover:enabled:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(14 116 144 / var(--tw-border-opacity, 1));
+}
+.dark\:enabled\:hover\:border-gray-700:hover:enabled:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));
+}
+.dark\:enabled\:hover\:border-green-700:hover:enabled:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(4 108 78 / var(--tw-border-opacity, 1));
+}
+.dark\:enabled\:hover\:border-indigo-700:hover:enabled:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(81 69 205 / var(--tw-border-opacity, 1));
+}
+.dark\:enabled\:hover\:border-lime-700:hover:enabled:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(77 124 15 / var(--tw-border-opacity, 1));
+}
+.dark\:enabled\:hover\:border-pink-700:hover:enabled:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(191 18 93 / var(--tw-border-opacity, 1));
+}
+.dark\:enabled\:hover\:border-red-700:hover:enabled:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(200 30 30 / var(--tw-border-opacity, 1));
+}
+.dark\:enabled\:hover\:border-teal-700:hover:enabled:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(3 102 114 / var(--tw-border-opacity, 1));
+}
+.dark\:enabled\:hover\:border-yellow-700:hover:enabled:is(.dark *) {
+ --tw-border-opacity: 1;
+ border-color: rgb(142 75 16 / var(--tw-border-opacity, 1));
+}
+.dark\:enabled\:hover\:bg-cyan-700:hover:enabled:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(14 116 144 / var(--tw-bg-opacity, 1));
+}
+.dark\:enabled\:hover\:bg-gray-700:hover:enabled:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
+}
+.dark\:enabled\:hover\:bg-green-700:hover:enabled:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(4 108 78 / var(--tw-bg-opacity, 1));
+}
+.dark\:enabled\:hover\:bg-indigo-700:hover:enabled:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(81 69 205 / var(--tw-bg-opacity, 1));
+}
+.dark\:enabled\:hover\:bg-lime-700:hover:enabled:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(77 124 15 / var(--tw-bg-opacity, 1));
+}
+.dark\:enabled\:hover\:bg-pink-700:hover:enabled:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(191 18 93 / var(--tw-bg-opacity, 1));
+}
+.dark\:enabled\:hover\:bg-purple-700:hover:enabled:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(108 43 217 / var(--tw-bg-opacity, 1));
+}
+.dark\:enabled\:hover\:bg-red-700:hover:enabled:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(200 30 30 / var(--tw-bg-opacity, 1));
+}
+.dark\:enabled\:hover\:bg-teal-700:hover:enabled:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(3 102 114 / var(--tw-bg-opacity, 1));
+}
+.dark\:enabled\:hover\:bg-yellow-700:hover:enabled:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(142 75 16 / var(--tw-bg-opacity, 1));
+}
+.enabled\:dark\:hover\:bg-gray-700:hover:is(.dark *):enabled {
+ --tw-bg-opacity: 1;
+ background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
+}
+.dark\:enabled\:hover\:text-white:hover:enabled:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
+}
+.enabled\:dark\:hover\:text-white:hover:is(.dark *):enabled {
+ --tw-text-opacity: 1;
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
+}
+.disabled\:dark\:text-gray-500:is(.dark *):disabled {
+ --tw-text-opacity: 1;
+ color: rgb(107 114 128 / var(--tw-text-opacity, 1));
+}
+.group:hover .dark\:group-hover\:bg-blue-300:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(164 202 254 / var(--tw-bg-opacity, 1));
+}
+.group:hover .dark\:group-hover\:bg-cyan-300:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(103 232 249 / var(--tw-bg-opacity, 1));
+}
+.group:hover .dark\:group-hover\:bg-gray-500:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1));
+}
+.group:hover .dark\:group-hover\:bg-gray-600:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));
+}
+.group:hover .dark\:group-hover\:bg-gray-700:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
+}
+.group:hover .dark\:group-hover\:bg-gray-800\/60:is(.dark *) {
+ background-color: rgb(31 41 55 / 0.6);
+}
+.group:hover .dark\:group-hover\:bg-green-300:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(132 225 188 / var(--tw-bg-opacity, 1));
+}
+.group:hover .dark\:group-hover\:bg-indigo-300:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(180 198 252 / var(--tw-bg-opacity, 1));
+}
+.group:hover .dark\:group-hover\:bg-lime-300:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(190 242 100 / var(--tw-bg-opacity, 1));
+}
+.group:hover .dark\:group-hover\:bg-pink-300:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(248 180 217 / var(--tw-bg-opacity, 1));
+}
+.group:hover .dark\:group-hover\:bg-purple-300:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(202 191 253 / var(--tw-bg-opacity, 1));
+}
+.group:hover .dark\:group-hover\:bg-red-300:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(248 180 180 / var(--tw-bg-opacity, 1));
+}
+.group:hover .dark\:group-hover\:bg-teal-300:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(126 220 226 / var(--tw-bg-opacity, 1));
+}
+.group:hover .dark\:group-hover\:bg-yellow-300:is(.dark *) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(250 202 21 / var(--tw-bg-opacity, 1));
+}
+.group:hover .dark\:group-hover\:text-white:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
+}
+.group:focus .dark\:group-focus\:ring-gray-800\/70:is(.dark *) {
+ --tw-ring-color: rgb(31 41 55 / 0.7);
+}
+.peer:focus ~ .peer-focus\:dark\:text-blue-500:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(63 131 248 / var(--tw-text-opacity, 1));
+}
+.peer:focus ~ .dark\:peer-focus\:ring-blue-800:is(.dark *) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(30 66 159 / var(--tw-ring-opacity, 1));
+}
+@media (min-width: 640px) {
+
+ .sm\:mx-auto {
+ margin-left: auto;
+ margin-right: auto;
+ }
+
+ .sm\:mb-0 {
+ margin-bottom: 0px;
+ }
+
+ .sm\:flex {
+ display: flex;
+ }
+
+ .sm\:h-10 {
+ height: 2.5rem;
+ }
+
+ .sm\:h-6 {
+ height: 1.5rem;
+ }
+
+ .sm\:h-7 {
+ height: 1.75rem;
+ }
+
+ .sm\:w-10 {
+ width: 2.5rem;
+ }
+
+ .sm\:w-6 {
+ width: 1.5rem;
+ }
+
+ .sm\:w-auto {
+ width: auto;
+ }
+
+ .sm\:px-4 {
+ padding-left: 1rem;
+ padding-right: 1rem;
+ }
+
+ .sm\:pr-8 {
+ padding-right: 2rem;
+ }
+
+ .sm\:text-center {
+ text-align: center;
+ }
+
+ .sm\:text-base {
+ font-size: 1rem;
+ line-height: 1.5rem;
+ }
+
+ .sm\:text-xs {
+ font-size: 0.75rem;
+ line-height: 1rem;
+ }
+}
+@media (min-width: 768px) {
+
+ .md\:inset-0 {
+ inset: 0px;
+ }
+
+ .md\:mx-2 {
+ margin-left: 0.5rem;
+ margin-right: 0.5rem;
+ }
+
+ .md\:my-10 {
+ margin-top: 2.5rem;
+ margin-bottom: 2.5rem;
+ }
+
+ .md\:my-12 {
+ margin-top: 3rem;
+ margin-bottom: 3rem;
+ }
+
+ .md\:mr-6 {
+ margin-right: 1.5rem;
+ }
+
+ .md\:mt-0 {
+ margin-top: 0px;
+ }
+
+ .md\:block {
+ display: block;
+ }
+
+ .md\:flex {
+ display: flex;
+ }
+
+ .md\:hidden {
+ display: none;
+ }
+
+ .md\:h-auto {
+ height: auto;
+ }
+
+ .md\:h-full {
+ height: 100%;
+ }
+
+ .md\:w-48 {
+ width: 12rem;
+ }
+
+ .md\:w-auto {
+ width: auto;
+ }
+
+ .md\:max-w-xl {
+ max-width: 36rem;
+ }
+
+ .md\:flex-row {
+ flex-direction: row;
+ }
+
+ .md\:items-center {
+ align-items: center;
+ }
+
+ .md\:justify-between {
+ justify-content: space-between;
+ }
+
+ .md\:space-x-8 > :not([hidden]) ~ :not([hidden]) {
+ --tw-space-x-reverse: 0;
+ margin-right: calc(2rem * var(--tw-space-x-reverse));
+ margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse)));
+ }
+
+ .md\:rounded-none {
+ border-radius: 0px;
+ }
+
+ .md\:rounded-l-lg {
+ border-top-left-radius: 0.5rem;
+ border-bottom-left-radius: 0.5rem;
+ }
+
+ .md\:border-0 {
+ border-width: 0px;
+ }
+
+ .md\:bg-transparent {
+ background-color: transparent;
+ }
+
+ .md\:p-0 {
+ padding: 0px;
+ }
+
+ .md\:text-sm {
+ font-size: 0.875rem;
+ line-height: 1.25rem;
+ }
+
+ .md\:font-medium {
+ font-weight: 500;
+ }
+
+ .md\:text-cyan-700 {
+ --tw-text-opacity: 1;
+ color: rgb(14 116 144 / var(--tw-text-opacity, 1));
+ }
+
+ .md\:hover\:bg-transparent:hover {
+ background-color: transparent;
+ }
+
+ .md\:hover\:text-cyan-700:hover {
+ --tw-text-opacity: 1;
+ color: rgb(14 116 144 / var(--tw-text-opacity, 1));
+ }
+
+ .md\:dark\:hover\:bg-transparent:hover:is(.dark *) {
+ background-color: transparent;
+ }
+
+ .md\:dark\:hover\:text-white:hover:is(.dark *) {
+ --tw-text-opacity: 1;
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
+ }
+}
+@media (min-width: 1024px) {
+
+ .lg\:my-8 {
+ margin-top: 2rem;
+ margin-bottom: 2rem;
+ }
+}
+.rtl\:after\:right-1:where([dir="rtl"], [dir="rtl"] *)::after {
+ content: var(--tw-content);
+ right: 0.25rem;
+}
+.rtl\:after\:right-px:where([dir="rtl"], [dir="rtl"] *)::after {
+ content: var(--tw-content);
+ right: 1px;
+}
+.rtl\:after\:-translate-x-full:where([dir="rtl"], [dir="rtl"] *)::after {
+ content: var(--tw-content);
+ --tw-translate-x: -100%;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.peer:checked ~ .rtl\:peer-checked\:after\:-translate-x-full:where([dir="rtl"], [dir="rtl"] *)::after {
+ content: var(--tw-content);
+ --tw-translate-x: -100%;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.\[\&\:\:-webkit-scrollbar\]\:\!hidden::-webkit-scrollbar {
+ display: none !important;
+}
+.\[\&\:\:-webkit-scrollbar\]\:\!h-0::-webkit-scrollbar {
+ height: 0px !important;
+}
+.\[\&\:\:-webkit-scrollbar\]\:\!w-0::-webkit-scrollbar {
+ width: 0px !important;
+}
+.\[\&\:\:-webkit-scrollbar\]\:\!bg-transparent::-webkit-scrollbar {
+ background-color: transparent !important;
+}
+.\[\&\>\*\]\:pointer-events-none>* {
+ pointer-events: none;
+}
+.\[\&\>\*\]\:cursor-grab>* {
+ cursor: grab;
+}
+.\[\&\>\*\]\:first\:rounded-t-lg:first-child>* {
+ border-top-left-radius: 0.5rem;
+ border-top-right-radius: 0.5rem;
+}
+.\[\&\>\*\]\:last\:rounded-b-lg:last-child>* {
+ border-bottom-right-radius: 0.5rem;
+ border-bottom-left-radius: 0.5rem;
+}
+.\[\&\>\*\]\:last\:border-b-0:last-child>* {
+ border-bottom-width: 0px;
+}
+.\[\&_\*\]\:cursor-pointer * {
+ cursor: pointer;
+}
+
+
diff --git a/src/new/var/plugins/System/PSC/Invoice/Resources/public/invoicets/assets/index.js b/src/new/var/plugins/System/PSC/Invoice/Resources/public/invoicets/assets/index.js
index 2414a3bec..b8935d589 100644
--- a/src/new/var/plugins/System/PSC/Invoice/Resources/public/invoicets/assets/index.js
+++ b/src/new/var/plugins/System/PSC/Invoice/Resources/public/invoicets/assets/index.js
@@ -1,6 +1,52 @@
+var __create = Object.create;
var __defProp = Object.defineProperty;
+var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
+var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
+var __typeError = (msg) => {
+ throw TypeError(msg);
+};
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
+var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
+var __decoratorStart = (base) => [, , , __create((base == null ? void 0 : base[__knownSymbol("metadata")]) ?? null)];
+var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
+var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
+var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
+var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
+var __runInitializers = (array, flags, self2, value) => {
+ for (var i2 = 0, fns = array[flags >> 1], n2 = fns && fns.length; i2 < n2; i2++) flags & 1 ? fns[i2].call(self2) : value = fns[i2].call(self2, value);
+ return value;
+};
+var __decorateElement = (array, flags, name, decorators, target, extra) => {
+ var fn, it2, done, ctx, access, k2 = flags & 7, s2 = !!(flags & 8), p2 = !!(flags & 16);
+ var j2 = k2 > 3 ? array.length + 1 : k2 ? s2 ? 1 : 2 : 0, key = __decoratorStrings[k2 + 5];
+ var initializers = k2 > 3 && (array[j2 - 1] = []), extraInitializers = array[j2] || (array[j2] = []);
+ var desc = k2 && (!p2 && !s2 && (target = target.prototype), k2 < 5 && (k2 > 3 || !p2) && __getOwnPropDesc(k2 < 4 ? target : { get [name]() {
+ return __privateGet(this, extra);
+ }, set [name](x2) {
+ return __privateSet(this, extra, x2);
+ } }, name));
+ k2 ? p2 && k2 < 4 && __name(extra, (k2 > 2 ? "set " : k2 > 1 ? "get " : "") + name) : __name(target, name);
+ for (var i2 = decorators.length - 1; i2 >= 0; i2--) {
+ ctx = __decoratorContext(k2, name, done = {}, array[3], extraInitializers);
+ if (k2) {
+ ctx.static = s2, ctx.private = p2, access = ctx.access = { has: p2 ? (x2) => __privateIn(target, x2) : (x2) => name in x2 };
+ if (k2 ^ 3) access.get = p2 ? (x2) => (k2 ^ 1 ? __privateGet : __privateMethod)(x2, target, k2 ^ 4 ? extra : desc.get) : (x2) => x2[name];
+ if (k2 > 2) access.set = p2 ? (x2, y2) => __privateSet(x2, target, y2, k2 ^ 4 ? extra : desc.set) : (x2, y2) => x2[name] = y2;
+ }
+ it2 = (0, decorators[i2])(k2 ? k2 < 4 ? p2 ? extra : desc[key] : k2 > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
+ if (k2 ^ 4 || it2 === void 0) __expectFn(it2) && (k2 > 4 ? initializers.unshift(it2) : k2 ? p2 ? extra = it2 : desc[key] = it2 : target = it2);
+ else if (typeof it2 !== "object" || it2 === null) __typeError("Object expected");
+ else __expectFn(fn = it2.get) && (desc.get = fn), __expectFn(fn = it2.set) && (desc.set = fn), __expectFn(fn = it2.init) && initializers.unshift(fn);
+ }
+ return k2 || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p2 ? k2 ^ 4 ? extra : desc : target;
+};
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
+var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
+var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
+var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
+var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
+var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
+var _Token_decorators, _init, _a, _ContactService_decorators, _init2, _OrderState_decorators, _init3, _CountryService_decorators, _init4, _AddressService_decorators, _init5, _AccountService_decorators, _init6, _ShopService_decorators, _init7, _OrderService_decorators, _init8, _ProductGroupService_decorators, _init9, _ProductService_decorators, _init10, _PaymentService_decorators, _init11, _ShippingService_decorators, _init12;
function _mergeNamespaces(n2, m2) {
for (var i2 = 0; i2 < m2.length; i2++) {
const e2 = m2[i2];
@@ -374,8 +420,8 @@ function require_Reflect() {
keys.push(key);
}
}
- for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {
- var key = parentKeys_1[_a];
+ for (var _a2 = 0, parentKeys_1 = parentKeys; _a2 < parentKeys_1.length; _a2++) {
+ var key = parentKeys_1[_a2];
var hasKey = set2.has(key);
if (!hasKey) {
set2.add(key);
@@ -1172,7 +1218,7 @@ function require_Reflect() {
require_Reflect();
var jsxRuntime = { exports: {} };
var reactJsxRuntime_production_min = {};
-var react = { exports: {} };
+var react$1 = { exports: {} };
var react_production_min = {};
/**
* @license React
@@ -1437,14 +1483,14 @@ function requireReact_production_min() {
react_production_min.version = "18.3.1";
return react_production_min;
}
-var hasRequiredReact;
-function requireReact() {
- if (hasRequiredReact) return react.exports;
- hasRequiredReact = 1;
+var hasRequiredReact$1;
+function requireReact$1() {
+ if (hasRequiredReact$1) return react$1.exports;
+ hasRequiredReact$1 = 1;
{
- react.exports = requireReact_production_min();
+ react$1.exports = requireReact_production_min();
}
- return react.exports;
+ return react$1.exports;
}
/**
* @license React
@@ -1459,7 +1505,7 @@ var hasRequiredReactJsxRuntime_production_min;
function requireReactJsxRuntime_production_min() {
if (hasRequiredReactJsxRuntime_production_min) return reactJsxRuntime_production_min;
hasRequiredReactJsxRuntime_production_min = 1;
- var f2 = requireReact(), k2 = Symbol.for("react.element"), l2 = Symbol.for("react.fragment"), m2 = Object.prototype.hasOwnProperty, n2 = f2.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, p2 = { key: true, ref: true, __self: true, __source: true };
+ var f2 = requireReact$1(), k2 = Symbol.for("react.element"), l2 = Symbol.for("react.fragment"), m2 = Object.prototype.hasOwnProperty, n2 = f2.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, p2 = { key: true, ref: true, __self: true, __source: true };
function q2(c2, a2, g2) {
var b2, d2 = {}, e2 = null, h2 = null;
void 0 !== g2 && (e2 = "" + g2);
@@ -3847,189 +3893,81 @@ axios.formToJSON = (thing) => formDataToJSON(utils$1.isHTMLForm(thing) ? new For
axios.getAdapter = adapters.getAdapter;
axios.HttpStatusCode = HttpStatusCode;
axios.default = axios;
-var Lifecycle;
-(function(Lifecycle2) {
- Lifecycle2[Lifecycle2["Transient"] = 0] = "Transient";
- Lifecycle2[Lifecycle2["Singleton"] = 1] = "Singleton";
- Lifecycle2[Lifecycle2["ResolutionScoped"] = 2] = "ResolutionScoped";
- Lifecycle2[Lifecycle2["ContainerScoped"] = 3] = "ContainerScoped";
-})(Lifecycle || (Lifecycle = {}));
-const Lifecycle$1 = Lifecycle;
-/*! *****************************************************************************
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */
-var extendStatics$1 = function(d2, b2) {
- extendStatics$1 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d3, b3) {
- d3.__proto__ = b3;
- } || function(d3, b3) {
- for (var p2 in b3) if (b3.hasOwnProperty(p2)) d3[p2] = b3[p2];
- };
- return extendStatics$1(d2, b2);
-};
-function __extends$1(d2, b2) {
- extendStatics$1(d2, b2);
- function __() {
- this.constructor = d2;
+function formatDependency(params, idx) {
+ if (params === null) {
+ return `at position #${idx}`;
}
- d2.prototype = b2 === null ? Object.create(b2) : (__.prototype = b2.prototype, new __());
+ const argName = params.split(",")[idx].trim();
+ return `"${argName}" at position #${idx}`;
}
-function __awaiter(thisArg, _arguments, P2, generator) {
- function adopt(value) {
- return value instanceof P2 ? value : new P2(function(resolve) {
- resolve(value);
- });
- }
- return new (P2 || (P2 = Promise))(function(resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e2) {
- reject(e2);
- }
- }
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e2) {
- reject(e2);
- }
- }
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
- step((generator = generator.apply(thisArg, [])).next());
- });
+function composeErrorMessage(msg, e2, indent = " ") {
+ return [msg, ...e2.message.split("\n").map((l2) => indent + l2)].join("\n");
}
-function __generator(thisArg, body) {
- var _2 = { label: 0, sent: function() {
- if (t2[0] & 1) throw t2[1];
- return t2[1];
- }, trys: [], ops: [] }, f2, y2, t2, g2;
- return g2 = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g2[Symbol.iterator] = function() {
- return this;
- }), g2;
- function verb(n2) {
- return function(v2) {
- return step([n2, v2]);
- };
+function formatErrorCtor(ctor, paramIdx, error) {
+ const [, params = null] = ctor.toString().match(/constructor\(([\w, ]+)\)/) || [];
+ const dep = formatDependency(params, paramIdx);
+ return composeErrorMessage(
+ `Cannot inject the dependency ${dep} of "${ctor.name}" constructor. Reason:`,
+ error
+ );
+}
+class RegistryBase {
+ constructor() {
+ this._registryMap = /* @__PURE__ */ new Map();
}
- function step(op) {
- if (f2) throw new TypeError("Generator is already executing.");
- while (_2) try {
- if (f2 = 1, y2 && (t2 = op[0] & 2 ? y2["return"] : op[0] ? y2["throw"] || ((t2 = y2["return"]) && t2.call(y2), 0) : y2.next) && !(t2 = t2.call(y2, op[1])).done) return t2;
- if (y2 = 0, t2) op = [op[0] & 2, t2.value];
- switch (op[0]) {
- case 0:
- case 1:
- t2 = op;
- break;
- case 4:
- _2.label++;
- return { value: op[1], done: false };
- case 5:
- _2.label++;
- y2 = op[1];
- op = [0];
- continue;
- case 7:
- op = _2.ops.pop();
- _2.trys.pop();
- continue;
- default:
- if (!(t2 = _2.trys, t2 = t2.length > 0 && t2[t2.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _2 = 0;
- continue;
- }
- if (op[0] === 3 && (!t2 || op[1] > t2[0] && op[1] < t2[3])) {
- _2.label = op[1];
- break;
- }
- if (op[0] === 6 && _2.label < t2[1]) {
- _2.label = t2[1];
- t2 = op;
- break;
- }
- if (t2 && _2.label < t2[2]) {
- _2.label = t2[2];
- _2.ops.push(op);
- break;
- }
- if (t2[2]) _2.ops.pop();
- _2.trys.pop();
- continue;
- }
- op = body.call(thisArg, _2);
- } catch (e2) {
- op = [6, e2];
- y2 = 0;
- } finally {
- f2 = t2 = 0;
+ tokens() {
+ return Array.from(this._registryMap.keys());
+ }
+ entries() {
+ return this._registryMap.entries();
+ }
+ getAll(key) {
+ this.ensure(key);
+ return this._registryMap.get(key);
+ }
+ get(key) {
+ this.ensure(key);
+ const value = this._registryMap.get(key);
+ return value[value.length - 1] || null;
+ }
+ set(key, value) {
+ this.ensure(key);
+ this._registryMap.get(key).push(value);
+ }
+ setAll(key, value) {
+ this._registryMap.set(key, value);
+ }
+ has(key) {
+ this.ensure(key);
+ return this._registryMap.get(key).length > 0;
+ }
+ clear() {
+ this._registryMap.clear();
+ }
+ delete(key) {
+ this._registryMap.delete(key);
+ }
+ ensure(key) {
+ if (!this._registryMap.has(key)) {
+ this._registryMap.set(key, []);
}
- if (op[0] & 5) throw op[1];
- return { value: op[0] ? op[1] : void 0, done: true };
}
}
-function __values$1(o2) {
- var s2 = typeof Symbol === "function" && Symbol.iterator, m2 = s2 && o2[s2], i2 = 0;
- if (m2) return m2.call(o2);
- if (o2 && typeof o2.length === "number") return {
- next: function() {
- if (o2 && i2 >= o2.length) o2 = void 0;
- return { value: o2 && o2[i2++], done: !o2 };
- }
- };
- throw new TypeError(s2 ? "Object is not iterable." : "Symbol.iterator is not defined.");
+class PostRegistrationInterceptors extends RegistryBase {
}
-function __read$1(o2, n2) {
- var m2 = typeof Symbol === "function" && o2[Symbol.iterator];
- if (!m2) return o2;
- var i2 = m2.call(o2), r2, ar = [], e2;
- try {
- while ((n2 === void 0 || n2-- > 0) && !(r2 = i2.next()).done) ar.push(r2.value);
- } catch (error) {
- e2 = { error };
- } finally {
- try {
- if (r2 && !r2.done && (m2 = i2["return"])) m2.call(i2);
- } finally {
- if (e2) throw e2.error;
- }
+class PreResolutionInterceptors extends RegistryBase {
+}
+class PostResolutionInterceptors extends RegistryBase {
+}
+class Interceptors {
+ constructor() {
+ this.postRegistration = new PostRegistrationInterceptors();
+ this.preResolution = new PreResolutionInterceptors();
+ this.postResolution = new PostResolutionInterceptors();
}
- return ar;
}
-function __spread() {
- for (var ar = [], i2 = 0; i2 < arguments.length; i2++)
- ar = ar.concat(__read$1(arguments[i2]));
- return ar;
-}
-var INJECTION_TOKEN_METADATA_KEY = "injectionTokens";
-function getParamInfo(target) {
- var params = Reflect.getMetadata("design:paramtypes", target) || [];
- var injectionTokens = Reflect.getOwnMetadata(INJECTION_TOKEN_METADATA_KEY, target) || {};
- Object.keys(injectionTokens).forEach(function(key) {
- params[+key] = injectionTokens[key];
- });
- return params;
-}
-function isClassProvider(provider) {
- return !!provider.useClass;
-}
-function isFactoryProvider(provider) {
- return !!provider.useFactory;
-}
-var DelayedConstructor = function() {
- function DelayedConstructor2(wrap) {
+class DelayedConstructor {
+ constructor(wrap) {
this.wrap = wrap;
this.reflectMethods = [
"get",
@@ -4045,38 +3983,38 @@ var DelayedConstructor = function() {
"ownKeys"
];
}
- DelayedConstructor2.prototype.createProxy = function(createObject) {
- var _this = this;
- var target = {};
- var init = false;
- var value;
- var delayedObject = function() {
+ createProxy(createObject) {
+ const target = {};
+ let init = false;
+ let value;
+ const delayedObject = () => {
if (!init) {
- value = createObject(_this.wrap());
+ value = createObject(this.wrap());
init = true;
}
return value;
};
return new Proxy(target, this.createHandler(delayedObject));
- };
- DelayedConstructor2.prototype.createHandler = function(delayedObject) {
- var handler = {};
- var install = function(name) {
- handler[name] = function() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
+ }
+ createHandler(delayedObject) {
+ const handler = {};
+ const install = (name) => {
+ handler[name] = (...args) => {
args[0] = delayedObject();
- var method = Reflect[name];
- return method.apply(void 0, __spread(args));
+ const method = Reflect[name];
+ return method(...args);
};
};
this.reflectMethods.forEach(install);
return handler;
- };
- return DelayedConstructor2;
-}();
+ }
+}
+function isClassProvider(provider) {
+ return Boolean(provider.useClass);
+}
+function isFactoryProvider(provider) {
+ return Boolean(provider.useFactory);
+}
function isNormalToken(token2) {
return typeof token2 === "string" || typeof token2 === "symbol";
}
@@ -4090,144 +4028,78 @@ function isConstructorToken(token2) {
return typeof token2 === "function" || token2 instanceof DelayedConstructor;
}
function isTokenProvider(provider) {
- return !!provider.useToken;
+ return Boolean(provider.useToken);
}
function isValueProvider(provider) {
- return provider.useValue != void 0;
+ return Object.prototype.hasOwnProperty.call(provider, "useValue");
}
function isProvider(provider) {
return isClassProvider(provider) || isValueProvider(provider) || isTokenProvider(provider) || isFactoryProvider(provider);
}
-var RegistryBase = function() {
- function RegistryBase2() {
- this._registryMap = /* @__PURE__ */ new Map();
- }
- RegistryBase2.prototype.entries = function() {
- return this._registryMap.entries();
- };
- RegistryBase2.prototype.getAll = function(key) {
- this.ensure(key);
- return this._registryMap.get(key);
- };
- RegistryBase2.prototype.get = function(key) {
- this.ensure(key);
- var value = this._registryMap.get(key);
- return value[value.length - 1] || null;
- };
- RegistryBase2.prototype.set = function(key, value) {
- this.ensure(key);
- this._registryMap.get(key).push(value);
- };
- RegistryBase2.prototype.setAll = function(key, value) {
- this._registryMap.set(key, value);
- };
- RegistryBase2.prototype.has = function(key) {
- this.ensure(key);
- return this._registryMap.get(key).length > 0;
- };
- RegistryBase2.prototype.clear = function() {
- this._registryMap.clear();
- };
- RegistryBase2.prototype.ensure = function(key) {
- if (!this._registryMap.has(key)) {
- this._registryMap.set(key, []);
- }
- };
- return RegistryBase2;
-}();
-var Registry = function(_super) {
- __extends$1(Registry2, _super);
- function Registry2() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- return Registry2;
-}(RegistryBase);
-var ResolutionContext = /* @__PURE__ */ function() {
- function ResolutionContext2() {
+const INJECTION_TOKEN_METADATA_KEY = "injectionTokens";
+const PARAM_INFOS_METADATA_KEY = "paramInfos";
+function getParamInfo(target) {
+ const params = Reflect.getMetadata("design:paramtypes", target) || [];
+ const injectionTokens = Reflect.getOwnMetadata(INJECTION_TOKEN_METADATA_KEY, target) || {};
+ Object.keys(injectionTokens).forEach((key) => {
+ params[Number(key)] = injectionTokens[key];
+ });
+ return params;
+}
+class Registry extends RegistryBase {
+}
+class ResolutionContext {
+ constructor() {
this.scopedResolutions = /* @__PURE__ */ new Map();
}
- return ResolutionContext2;
-}();
-function formatDependency(params, idx) {
- if (params === null) {
- return "at position #" + idx;
- }
- var argName = params.split(",")[idx].trim();
- return '"' + argName + '" at position #' + idx;
-}
-function composeErrorMessage(msg, e2, indent) {
- if (indent === void 0) {
- indent = " ";
- }
- return __spread([msg], e2.message.split("\n").map(function(l2) {
- return indent + l2;
- })).join("\n");
-}
-function formatErrorCtor(ctor, paramIdx, error) {
- var _a = __read$1(ctor.toString().match(/constructor\(([\w, ]+)\)/) || [], 2), _b = _a[1], params = _b === void 0 ? null : _b;
- var dep = formatDependency(params, paramIdx);
- return composeErrorMessage("Cannot inject the dependency " + dep + ' of "' + ctor.name + '" constructor. Reason:', error);
}
function isDisposable(value) {
- if (typeof value.dispose !== "function")
- return false;
- var disposeFun = value.dispose;
- if (disposeFun.length > 0) {
+ if (typeof value !== "object" || value === null) return false;
+ if (!("dispose" in value)) return false;
+ if (typeof value.dispose !== "function") return false;
+ const disposeFn = value.dispose;
+ if (disposeFn.length > 0) {
return false;
}
return true;
}
-var PreResolutionInterceptors = function(_super) {
- __extends$1(PreResolutionInterceptors2, _super);
- function PreResolutionInterceptors2() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- return PreResolutionInterceptors2;
-}(RegistryBase);
-var PostResolutionInterceptors = function(_super) {
- __extends$1(PostResolutionInterceptors2, _super);
- function PostResolutionInterceptors2() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- return PostResolutionInterceptors2;
-}(RegistryBase);
-var Interceptors = /* @__PURE__ */ function() {
- function Interceptors2() {
- this.preResolution = new PreResolutionInterceptors();
- this.postResolution = new PostResolutionInterceptors();
- }
- return Interceptors2;
-}();
-var typeInfo = /* @__PURE__ */ new Map();
-var InternalDependencyContainer = function() {
- function InternalDependencyContainer2(parent) {
+var Lifecycle = /* @__PURE__ */ ((Lifecycle2) => {
+ Lifecycle2[Lifecycle2["Transient"] = 0] = "Transient";
+ Lifecycle2[Lifecycle2["Singleton"] = 1] = "Singleton";
+ Lifecycle2[Lifecycle2["ResolutionScoped"] = 2] = "ResolutionScoped";
+ Lifecycle2[Lifecycle2["ContainerScoped"] = 3] = "ContainerScoped";
+ return Lifecycle2;
+})(Lifecycle || {});
+class InternalDependencyContainer {
+ constructor(parent) {
this.parent = parent;
this._registry = new Registry();
this.interceptors = new Interceptors();
this.disposed = false;
this.disposables = /* @__PURE__ */ new Set();
}
- InternalDependencyContainer2.prototype.register = function(token2, providerOrConstructor, options2) {
- if (options2 === void 0) {
- options2 = { lifecycle: Lifecycle$1.Transient };
- }
+ register(token2, providerOrConstructor, options2 = { lifecycle: Lifecycle.Transient }) {
this.ensureNotDisposed();
- var provider;
+ let provider;
if (!isProvider(providerOrConstructor)) {
provider = { useClass: providerOrConstructor };
} else {
provider = providerOrConstructor;
}
if (isTokenProvider(provider)) {
- var path = [token2];
- var tokenProvider = provider;
+ const path = [token2];
+ let tokenProvider = provider;
while (tokenProvider != null) {
- var currentToken = tokenProvider.useToken;
+ const currentToken = tokenProvider.useToken;
if (path.includes(currentToken)) {
- throw new Error("Token registration cycle detected! " + __spread(path, [currentToken]).join(" -> "));
+ throw new Error(
+ `Token registration cycle detected! ${[...path, currentToken].join(
+ " -> "
+ )}`
+ );
}
path.push(currentToken);
- var registration = this._registry.get(currentToken);
+ const registration = this._registry.get(currentToken);
if (registration && isTokenProvider(registration.provider)) {
tokenProvider = registration.provider;
} else {
@@ -4235,15 +4107,16 @@ var InternalDependencyContainer = function() {
}
}
}
- if (options2.lifecycle === Lifecycle$1.Singleton || options2.lifecycle == Lifecycle$1.ContainerScoped || options2.lifecycle == Lifecycle$1.ResolutionScoped) {
- if (isValueProvider(provider) || isFactoryProvider(provider)) {
- throw new Error('Cannot use lifecycle "' + Lifecycle$1[options2.lifecycle] + '" with ValueProviders or FactoryProviders');
- }
+ if ((options2.lifecycle === Lifecycle.Singleton || options2.lifecycle === Lifecycle.ContainerScoped || options2.lifecycle === Lifecycle.ResolutionScoped) && (isValueProvider(provider) || isFactoryProvider(provider))) {
+ throw new Error(
+ `Cannot use lifecycle "${Lifecycle[options2.lifecycle]}" with ValueProviders or FactoryProviders`
+ );
}
this._registry.set(token2, { provider, options: options2 });
+ this.executePostRegistrationInterceptor(token2);
return this;
- };
- InternalDependencyContainer2.prototype.registerType = function(from2, to) {
+ }
+ registerType(from2, to) {
this.ensureNotDisposed();
if (isNormalToken(to)) {
return this.register(from2, {
@@ -4253,262 +4126,282 @@ var InternalDependencyContainer = function() {
return this.register(from2, {
useClass: to
});
- };
- InternalDependencyContainer2.prototype.registerInstance = function(token2, instance2) {
+ }
+ registerInstance(token2, instance2) {
this.ensureNotDisposed();
return this.register(token2, {
useValue: instance2
});
- };
- InternalDependencyContainer2.prototype.registerSingleton = function(from2, to) {
+ }
+ registerSingleton(from2, to) {
this.ensureNotDisposed();
if (isNormalToken(from2)) {
if (isNormalToken(to)) {
- return this.register(from2, {
- useToken: to
- }, { lifecycle: Lifecycle$1.Singleton });
- } else if (to) {
- return this.register(from2, {
- useClass: to
- }, { lifecycle: Lifecycle$1.Singleton });
+ return this.register(
+ from2,
+ {
+ useToken: to
+ },
+ { lifecycle: Lifecycle.Singleton }
+ );
}
- throw new Error('Cannot register a type name as a singleton without a "to" token');
+ if (to) {
+ return this.register(
+ from2,
+ {
+ useClass: to
+ },
+ { lifecycle: Lifecycle.Singleton }
+ );
+ }
+ throw new Error(
+ 'Cannot register a type name as a singleton without a "to" token'
+ );
}
- var useClass = from2;
+ let useClass = from2;
if (to && !isNormalToken(to)) {
useClass = to;
}
- return this.register(from2, {
- useClass
- }, { lifecycle: Lifecycle$1.Singleton });
- };
- InternalDependencyContainer2.prototype.resolve = function(token2, context) {
- if (context === void 0) {
- context = new ResolutionContext();
- }
+ return this.register(
+ from2,
+ {
+ useClass
+ },
+ { lifecycle: Lifecycle.Singleton }
+ );
+ }
+ resolve(token2, context = new ResolutionContext()) {
this.ensureNotDisposed();
- var registration = this.getRegistration(token2);
+ const registration = this.getRegistration(token2);
if (!registration && isNormalToken(token2)) {
- throw new Error('Attempted to resolve unregistered dependency token: "' + token2.toString() + '"');
+ throw new Error(
+ `Attempted to resolve unregistered dependency token: "${token2.toString()}"`
+ );
}
this.executePreResolutionInterceptor(token2, "Single");
if (registration) {
- var result = this.resolveRegistration(registration, context);
+ const result = this.resolveRegistration(registration, context);
this.executePostResolutionInterceptor(token2, result, "Single");
return result;
}
if (isConstructorToken(token2)) {
- var result = this.construct(token2, context);
+ const result = this.construct(token2, context);
this.executePostResolutionInterceptor(token2, result, "Single");
return result;
}
- throw new Error("Attempted to construct an undefined constructor. Could mean a circular dependency problem. Try using `delay` function.");
- };
- InternalDependencyContainer2.prototype.executePreResolutionInterceptor = function(token2, resolutionType) {
- var e_1, _a;
+ throw new Error(
+ "Attempted to construct an undefined constructor. Could mean a circular dependency problem. Try using `delay` function."
+ );
+ }
+ executePostRegistrationInterceptor(token2) {
+ if (this.interceptors.postRegistration.has(token2)) {
+ const remainingInterceptors = [];
+ for (const interceptor of this.interceptors.postRegistration.getAll(token2)) {
+ if (interceptor.options.frequency !== "Once") {
+ remainingInterceptors.push(interceptor);
+ }
+ interceptor.callback(token2);
+ }
+ this.interceptors.postRegistration.setAll(token2, remainingInterceptors);
+ }
+ if (this.interceptors.postAnyRegistration) {
+ this.interceptors.postAnyRegistration(token2);
+ }
+ }
+ executePreResolutionInterceptor(token2, resolutionType) {
if (this.interceptors.preResolution.has(token2)) {
- var remainingInterceptors = [];
- try {
- for (var _b = __values$1(this.interceptors.preResolution.getAll(token2)), _c = _b.next(); !_c.done; _c = _b.next()) {
- var interceptor = _c.value;
- if (interceptor.options.frequency != "Once") {
- remainingInterceptors.push(interceptor);
- }
- interceptor.callback(token2, resolutionType);
- }
- } catch (e_1_1) {
- e_1 = { error: e_1_1 };
- } finally {
- try {
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
- } finally {
- if (e_1) throw e_1.error;
+ const remainingInterceptors = [];
+ for (const interceptor of this.interceptors.preResolution.getAll(token2)) {
+ if (interceptor.options.frequency !== "Once") {
+ remainingInterceptors.push(interceptor);
}
+ interceptor.callback(token2, resolutionType);
}
this.interceptors.preResolution.setAll(token2, remainingInterceptors);
}
- };
- InternalDependencyContainer2.prototype.executePostResolutionInterceptor = function(token2, result, resolutionType) {
- var e_2, _a;
+ if (this.interceptors.preAnyResolution) {
+ this.interceptors.preAnyResolution(token2, resolutionType);
+ }
+ }
+ executePostResolutionInterceptor(token2, result, resolutionType) {
if (this.interceptors.postResolution.has(token2)) {
- var remainingInterceptors = [];
- try {
- for (var _b = __values$1(this.interceptors.postResolution.getAll(token2)), _c = _b.next(); !_c.done; _c = _b.next()) {
- var interceptor = _c.value;
- if (interceptor.options.frequency != "Once") {
- remainingInterceptors.push(interceptor);
- }
- interceptor.callback(token2, result, resolutionType);
- }
- } catch (e_2_1) {
- e_2 = { error: e_2_1 };
- } finally {
- try {
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
- } finally {
- if (e_2) throw e_2.error;
+ const remainingInterceptors = [];
+ for (const interceptor of this.interceptors.postResolution.getAll(
+ token2
+ )) {
+ if (interceptor.options.frequency !== "Once") {
+ remainingInterceptors.push(interceptor);
}
+ interceptor.callback(token2, result, resolutionType);
}
this.interceptors.postResolution.setAll(token2, remainingInterceptors);
}
- };
- InternalDependencyContainer2.prototype.resolveRegistration = function(registration, context) {
+ if (this.interceptors.postAnyResolution) {
+ this.interceptors.postAnyResolution(token2, result, resolutionType);
+ }
+ }
+ resolveRegistration(registration, context) {
this.ensureNotDisposed();
- if (registration.options.lifecycle === Lifecycle$1.ResolutionScoped && context.scopedResolutions.has(registration)) {
+ if (registration.options.lifecycle === Lifecycle.ResolutionScoped && context.scopedResolutions.has(registration)) {
return context.scopedResolutions.get(registration);
}
- var isSingleton = registration.options.lifecycle === Lifecycle$1.Singleton;
- var isContainerScoped = registration.options.lifecycle === Lifecycle$1.ContainerScoped;
- var returnInstance = isSingleton || isContainerScoped;
- var resolved;
+ const isSingleton = registration.options.lifecycle === Lifecycle.Singleton;
+ const isContainerScoped = registration.options.lifecycle === Lifecycle.ContainerScoped;
+ const returnInstance = isSingleton || isContainerScoped;
+ let newResolution = true;
+ let resolved;
if (isValueProvider(registration.provider)) {
resolved = registration.provider.useValue;
} else if (isTokenProvider(registration.provider)) {
- resolved = returnInstance ? registration.instance || (registration.instance = this.resolve(registration.provider.useToken, context)) : this.resolve(registration.provider.useToken, context);
+ newResolution = returnInstance;
+ resolved = returnInstance ? registration.instance || (registration.instance = this.resolve(
+ registration.provider.useToken,
+ context
+ )) : this.resolve(registration.provider.useToken, context);
} else if (isClassProvider(registration.provider)) {
- resolved = returnInstance ? registration.instance || (registration.instance = this.construct(registration.provider.useClass, context)) : this.construct(registration.provider.useClass, context);
+ newResolution = returnInstance;
+ resolved = returnInstance ? registration.instance || (registration.instance = this.construct(
+ registration.provider.useClass,
+ context
+ )) : this.construct(registration.provider.useClass, context);
} else if (isFactoryProvider(registration.provider)) {
resolved = registration.provider.useFactory(this);
} else {
+ newResolution = false;
resolved = this.construct(registration.provider, context);
}
- if (registration.options.lifecycle === Lifecycle$1.ResolutionScoped) {
+ if (registration.options.lifecycle === Lifecycle.ResolutionScoped) {
context.scopedResolutions.set(registration, resolved);
}
- return resolved;
- };
- InternalDependencyContainer2.prototype.resolveAll = function(token2, context) {
- var _this = this;
- if (context === void 0) {
- context = new ResolutionContext();
+ if (newResolution && isDisposable(resolved)) {
+ this.disposables.add(resolved);
}
+ return resolved;
+ }
+ resolveAll(token2, context = new ResolutionContext()) {
this.ensureNotDisposed();
- var registrations = this.getAllRegistrations(token2);
+ const registrations = this.getAllRegistrations(token2);
if (!registrations && isNormalToken(token2)) {
- throw new Error('Attempted to resolve unregistered dependency token: "' + token2.toString() + '"');
+ throw new Error(
+ `Attempted to resolve unregistered dependency token: "${token2.toString()}"`
+ );
}
this.executePreResolutionInterceptor(token2, "All");
if (registrations) {
- var result_1 = registrations.map(function(item) {
- return _this.resolveRegistration(item, context);
- });
- this.executePostResolutionInterceptor(token2, result_1, "All");
- return result_1;
+ const result2 = registrations.map(
+ (item) => this.resolveRegistration(item, context)
+ );
+ this.executePostResolutionInterceptor(token2, result2, "All");
+ return result2;
}
- var result = [this.construct(token2, context)];
+ const result = [this.construct(token2, context)];
this.executePostResolutionInterceptor(token2, result, "All");
return result;
- };
- InternalDependencyContainer2.prototype.isRegistered = function(token2, recursive) {
- if (recursive === void 0) {
- recursive = false;
- }
+ }
+ registeredTokens() {
+ return this._registry.tokens();
+ }
+ isRegistered(token2, recursive = false) {
+ var _a2;
this.ensureNotDisposed();
- return this._registry.has(token2) || recursive && (this.parent || false) && this.parent.isRegistered(token2, true);
- };
- InternalDependencyContainer2.prototype.reset = function() {
+ return this._registry.has(token2) || ((recursive && ((_a2 = this.parent) == null ? void 0 : _a2.isRegistered(token2, true))) ?? false);
+ }
+ reset() {
this.ensureNotDisposed();
this._registry.clear();
this.interceptors.preResolution.clear();
this.interceptors.postResolution.clear();
- };
- InternalDependencyContainer2.prototype.clearInstances = function() {
- var e_3, _a;
+ }
+ unregisterAll() {
+ this._registry.clear();
+ this.interceptors.preResolution.clear();
+ this.interceptors.postResolution.clear();
+ }
+ unregister(token2) {
+ const registration = this.getRegistration(token2);
+ if (!registration) {
+ throw new Error(
+ `Attempted to delete unregistered dependency token: "${token2.toString()}"`
+ );
+ }
+ this._registry.delete(token2);
+ this.interceptors.preResolution.delete(token2);
+ this.interceptors.postResolution.delete(token2);
+ }
+ clearInstances() {
this.ensureNotDisposed();
- try {
- for (var _b = __values$1(this._registry.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
- var _d = __read$1(_c.value, 2), token2 = _d[0], registrations = _d[1];
- this._registry.setAll(token2, registrations.filter(function(registration) {
- return !isValueProvider(registration.provider);
- }).map(function(registration) {
+ for (const [token2, registrations] of this._registry.entries()) {
+ this._registry.setAll(
+ token2,
+ registrations.filter((registration) => !isValueProvider(registration.provider)).map((registration) => {
registration.instance = void 0;
return registration;
- }));
- }
- } catch (e_3_1) {
- e_3 = { error: e_3_1 };
- } finally {
- try {
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
- } finally {
- if (e_3) throw e_3.error;
- }
+ })
+ );
}
- };
- InternalDependencyContainer2.prototype.createChildContainer = function() {
- var e_4, _a;
+ }
+ createChildContainer() {
this.ensureNotDisposed();
- var childContainer = new InternalDependencyContainer2(this);
- try {
- for (var _b = __values$1(this._registry.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
- var _d = __read$1(_c.value, 2), token2 = _d[0], registrations = _d[1];
- if (registrations.some(function(_a2) {
- var options2 = _a2.options;
- return options2.lifecycle === Lifecycle$1.ContainerScoped;
- })) {
- childContainer._registry.setAll(token2, registrations.map(function(registration) {
- if (registration.options.lifecycle === Lifecycle$1.ContainerScoped) {
+ const childContainer = new InternalDependencyContainer(this);
+ for (const [token2, registrations] of this._registry.entries()) {
+ if (registrations.some(
+ ({ options: options2 }) => options2.lifecycle === Lifecycle.ContainerScoped
+ )) {
+ childContainer._registry.setAll(
+ token2,
+ registrations.map((registration) => {
+ if (registration.options.lifecycle === Lifecycle.ContainerScoped) {
return {
provider: registration.provider,
options: registration.options
};
}
return registration;
- }));
- }
- }
- } catch (e_4_1) {
- e_4 = { error: e_4_1 };
- } finally {
- try {
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
- } finally {
- if (e_4) throw e_4.error;
+ })
+ );
}
}
return childContainer;
- };
- InternalDependencyContainer2.prototype.beforeResolution = function(token2, callback, options2) {
- if (options2 === void 0) {
- options2 = { frequency: "Always" };
- }
+ }
+ afterRegistration(token2, callback, options2 = { frequency: "Always" }) {
+ this.interceptors.postRegistration.set(token2, {
+ callback,
+ options: options2
+ });
+ }
+ afterAnyRegistration(callback) {
+ this.interceptors.postAnyRegistration = callback;
+ }
+ beforeResolution(token2, callback, options2 = { frequency: "Always" }) {
this.interceptors.preResolution.set(token2, {
callback,
options: options2
});
- };
- InternalDependencyContainer2.prototype.afterResolution = function(token2, callback, options2) {
- if (options2 === void 0) {
- options2 = { frequency: "Always" };
- }
+ }
+ beforeAnyResolution(callback) {
+ this.interceptors.preAnyResolution = callback;
+ }
+ afterResolution(token2, callback, options2 = { frequency: "Always" }) {
this.interceptors.postResolution.set(token2, {
callback,
options: options2
});
- };
- InternalDependencyContainer2.prototype.dispose = function() {
- return __awaiter(this, void 0, void 0, function() {
- var promises;
- return __generator(this, function(_a) {
- switch (_a.label) {
- case 0:
- this.disposed = true;
- promises = [];
- this.disposables.forEach(function(disposable) {
- var maybePromise = disposable.dispose();
- if (maybePromise) {
- promises.push(maybePromise);
- }
- });
- return [4, Promise.all(promises)];
- case 1:
- _a.sent();
- return [2];
- }
- });
+ }
+ afterAnyResolution(callback) {
+ this.interceptors.postAnyResolution = callback;
+ }
+ async dispose() {
+ this.disposed = true;
+ const promises = [];
+ this.disposables.forEach((disposable) => {
+ const maybePromise = disposable.dispose();
+ if (maybePromise) {
+ promises.push(maybePromise);
+ }
});
- };
- InternalDependencyContainer2.prototype.getRegistration = function(token2) {
+ await Promise.all(promises);
+ }
+ getRegistration(token2) {
if (this.isRegistered(token2)) {
return this._registry.get(token2);
}
@@ -4516,8 +4409,8 @@ var InternalDependencyContainer = function() {
return this.parent.getRegistration(token2);
}
return null;
- };
- InternalDependencyContainer2.prototype.getAllRegistrations = function(token2) {
+ }
+ getAllRegistrations(token2) {
if (this.isRegistered(token2)) {
return this._registry.getAll(token2);
}
@@ -4525,95 +4418,110 @@ var InternalDependencyContainer = function() {
return this.parent.getAllRegistrations(token2);
}
return null;
- };
- InternalDependencyContainer2.prototype.construct = function(ctor, context) {
- var _this = this;
+ }
+ construct(ctor, context) {
if (ctor instanceof DelayedConstructor) {
- return ctor.createProxy(function(target) {
- return _this.resolve(target, context);
- });
+ return ctor.createProxy(
+ (target) => this.resolve(target, context)
+ );
}
- var instance2 = function() {
- var paramInfo = typeInfo.get(ctor);
+ const instance2 = (() => {
+ const paramInfo = Reflect.getMetadata(PARAM_INFOS_METADATA_KEY, ctor);
if (!paramInfo || paramInfo.length === 0) {
if (ctor.length === 0) {
return new ctor();
- } else {
- throw new Error('TypeInfo not known for "' + ctor.name + '"');
}
+ throw new Error(`TypeInfo not known for "${ctor.name}"`);
}
- var params = paramInfo.map(_this.resolveParams(context, ctor));
- return new (ctor.bind.apply(ctor, __spread([void 0], params)))();
- }();
+ const params = paramInfo.map(this.resolveParams(context, ctor));
+ return new ctor(...params);
+ })();
if (isDisposable(instance2)) {
this.disposables.add(instance2);
}
return instance2;
- };
- InternalDependencyContainer2.prototype.resolveParams = function(context, ctor) {
- var _this = this;
- return function(param, idx) {
- var _a, _b, _c;
+ }
+ resolveParams(context, ctor) {
+ return (param, idx) => {
try {
if (isTokenDescriptor(param)) {
if (isTransformDescriptor(param)) {
- return param.multiple ? (_a = _this.resolve(param.transform)).transform.apply(_a, __spread([_this.resolveAll(param.token)], param.transformArgs)) : (_b = _this.resolve(param.transform)).transform.apply(_b, __spread([_this.resolve(param.token, context)], param.transformArgs));
- } else {
- return param.multiple ? _this.resolveAll(param.token) : _this.resolve(param.token, context);
+ return param.multiple ? this.resolve(param.transform).transform(
+ this.resolveAll(param.token),
+ ...param.transformArgs
+ ) : this.resolve(param.transform).transform(
+ this.resolve(param.token, context),
+ ...param.transformArgs
+ );
}
- } else if (isTransformDescriptor(param)) {
- return (_c = _this.resolve(param.transform, context)).transform.apply(_c, __spread([_this.resolve(param.token, context)], param.transformArgs));
+ return param.multiple ? this.resolveAll(param.token) : this.resolve(param.token, context);
}
- return _this.resolve(param, context);
- } catch (e2) {
- throw new Error(formatErrorCtor(ctor, idx, e2));
+ if (isTransformDescriptor(param)) {
+ return this.resolve(param.transform, context).transform(
+ this.resolve(param.token, context),
+ ...param.transformArgs
+ );
+ }
+ return this.resolve(param, context);
+ } catch (error) {
+ throw new Error(formatErrorCtor(ctor, idx, error));
}
};
- };
- InternalDependencyContainer2.prototype.ensureNotDisposed = function() {
+ }
+ ensureNotDisposed() {
if (this.disposed) {
- throw new Error("This container has been disposed, you cannot interact with a disposed container");
+ throw new Error(
+ "This container has been disposed, you cannot interact with a disposed container"
+ );
}
- };
- return InternalDependencyContainer2;
-}();
-var instance = new InternalDependencyContainer();
+ }
+}
+const instance = new InternalDependencyContainer();
function autoInjectable() {
return function(target) {
- var paramInfo = getParamInfo(target);
- return function(_super) {
- __extends$1(class_1, _super);
- function class_1() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- return _super.apply(this, __spread(args.concat(paramInfo.slice(args.length).map(function(type2, index2) {
- var _a, _b, _c;
- try {
- if (isTokenDescriptor(type2)) {
- if (isTransformDescriptor(type2)) {
- return type2.multiple ? (_a = instance.resolve(type2.transform)).transform.apply(_a, __spread([instance.resolveAll(type2.token)], type2.transformArgs)) : (_b = instance.resolve(type2.transform)).transform.apply(_b, __spread([instance.resolve(type2.token)], type2.transformArgs));
- } else {
- return type2.multiple ? instance.resolveAll(type2.token) : instance.resolve(type2.token);
+ const paramInfo = getParamInfo(target);
+ return class extends target {
+ constructor(...args) {
+ super(
+ ...args.concat(
+ paramInfo.slice(args.length).map((type2, index2) => {
+ try {
+ if (isTokenDescriptor(type2)) {
+ if (isTransformDescriptor(type2)) {
+ return type2.multiple ? instance.resolve(type2.transform).transform(
+ instance.resolveAll(type2.token),
+ ...type2.transformArgs
+ ) : instance.resolve(type2.transform).transform(
+ instance.resolve(type2.token),
+ ...type2.transformArgs
+ );
+ }
+ return type2.multiple ? instance.resolveAll(type2.token) : instance.resolve(type2.token);
+ }
+ if (isTransformDescriptor(type2)) {
+ return instance.resolve(type2.transform).transform(
+ instance.resolve(type2.token),
+ ...type2.transformArgs
+ );
+ }
+ return instance.resolve(type2);
+ } catch (error) {
+ const argIndex = index2 + args.length;
+ throw new Error(
+ formatErrorCtor(target, argIndex, error)
+ );
}
- } else if (isTransformDescriptor(type2)) {
- return (_c = instance.resolve(type2.transform)).transform.apply(_c, __spread([instance.resolve(type2.token)], type2.transformArgs));
- }
- return instance.resolve(type2);
- } catch (e2) {
- var argIndex = index2 + args.length;
- throw new Error(formatErrorCtor(target, argIndex, e2));
- }
- })))) || this;
+ })
+ )
+ );
}
- return class_1;
- }(target);
+ };
};
}
function injectable() {
return function(target) {
- typeInfo.set(target, getParamInfo(target));
+ const paramInfo = getParamInfo(target);
+ Reflect.defineMetadata(PARAM_INFOS_METADATA_KEY, paramInfo, target);
};
}
function singleton() {
@@ -4623,19 +4531,11 @@ function singleton() {
};
}
if (typeof Reflect === "undefined" || !Reflect.getMetadata) {
- throw new Error(`tsyringe requires a reflect polyfill. Please add 'import "reflect-metadata"' to the top of your entry point.`);
+ throw new Error(
+ `tsyringe-neo requires a reflect polyfill. Please add 'import "reflect-metadata"' to the top of your entry point.`
+ );
}
-var __defProp$c = Object.defineProperty;
-var __getOwnPropDesc$b = Object.getOwnPropertyDescriptor;
-var __decorateClass$b = (decorators, target, key, kind) => {
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$b(target, key) : target;
- for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
- if (decorator = decorators[i2])
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
- if (kind && result) __defProp$c(target, key, result);
- return result;
-};
-let Token = class {
+let Token$1 = (_Token_decorators = [singleton()], _a = class {
constructor() {
__publicField(this, "currentToken");
}
@@ -4653,12 +4553,9 @@ let Token = class {
this.currentToken = response.data.token;
});
}
-};
-Token = __decorateClass$b([
- singleton()
-], Token);
+}, _init = __decoratorStart(null), _a = __decorateElement(_init, 0, "Token", _Token_decorators, _a), __runInitializers(_init, 1, _a), _a);
var client = {};
-var reactDom = { exports: {} };
+var reactDom$1 = { exports: {} };
var reactDom_production_min = {};
var scheduler = { exports: {} };
var scheduler_production_min = {};
@@ -4928,7 +4825,7 @@ var hasRequiredReactDom_production_min;
function requireReactDom_production_min() {
if (hasRequiredReactDom_production_min) return reactDom_production_min;
hasRequiredReactDom_production_min = 1;
- var aa = requireReact(), ca = requireScheduler();
+ var aa = requireReact$1(), ca = requireScheduler();
function p2(a2) {
for (var b2 = "https://reactjs.org/docs/error-decoder.html?invariant=" + a2, c2 = 1; c2 < arguments.length; c2++) b2 += "&args[]=" + encodeURIComponent(arguments[c2]);
return "Minified React error #" + a2 + "; visit " + b2 + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
@@ -11327,10 +11224,10 @@ function requireReactDom_production_min() {
reactDom_production_min.version = "18.3.1-next-f1338f8080-20240426";
return reactDom_production_min;
}
-var hasRequiredReactDom;
-function requireReactDom() {
- if (hasRequiredReactDom) return reactDom.exports;
- hasRequiredReactDom = 1;
+var hasRequiredReactDom$1;
+function requireReactDom$1() {
+ if (hasRequiredReactDom$1) return reactDom$1.exports;
+ hasRequiredReactDom$1 = 1;
function checkDCE() {
if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === "undefined" || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== "function") {
return;
@@ -11343,15 +11240,15 @@ function requireReactDom() {
}
{
checkDCE();
- reactDom.exports = requireReactDom_production_min();
+ reactDom$1.exports = requireReactDom_production_min();
}
- return reactDom.exports;
+ return reactDom$1.exports;
}
var hasRequiredClient;
function requireClient() {
if (hasRequiredClient) return client;
hasRequiredClient = 1;
- var m2 = requireReactDom();
+ var m2 = requireReactDom$1();
{
client.createRoot = m2.createRoot;
client.hydrateRoot = m2.hydrateRoot;
@@ -11360,7 +11257,7 @@ function requireClient() {
}
var clientExports = requireClient();
const ReactDOM = /* @__PURE__ */ getDefaultExportFromCjs(clientExports);
-var reactExports = requireReact();
+var reactExports = requireReact$1();
const React$1 = /* @__PURE__ */ getDefaultExportFromCjs(reactExports);
const React$2 = /* @__PURE__ */ _mergeNamespaces({
__proto__: null,
@@ -11402,14 +11299,14 @@ var getUid = function() {
return "_nice_modal_" + uidSeed++;
};
var reducer = function(state, action) {
- var _a, _b, _c;
+ var _a2, _b, _c;
if (state === void 0) {
state = initialState;
}
switch (action.type) {
case "nice-modal/show": {
var _d = action.payload, modalId = _d.modalId, args = _d.args;
- return __assign$1(__assign$1({}, state), (_a = {}, _a[modalId] = __assign$1(__assign$1({}, state[modalId]), {
+ return __assign$1(__assign$1({}, state), (_a2 = {}, _a2[modalId] = __assign$1(__assign$1({}, state[modalId]), {
id: modalId,
args,
// If modal is not mounted, mount it first then make it visible.
@@ -11417,7 +11314,7 @@ var reducer = function(state, action) {
// This mechanism ensures the entering transition.
visible: !!ALREADY_MOUNTED[modalId],
delayVisible: !ALREADY_MOUNTED[modalId]
- }), _a));
+ }), _a2));
}
case "nice-modal/hide": {
var modalId = action.payload.modalId;
@@ -11440,8 +11337,8 @@ var reducer = function(state, action) {
}
};
function getModal(modalId) {
- var _a;
- return (_a = MODAL_REGISTRY[modalId]) === null || _a === void 0 ? void 0 : _a.comp;
+ var _a2;
+ return (_a2 = MODAL_REGISTRY[modalId]) === null || _a2 === void 0 ? void 0 : _a2.comp;
}
function showModal(modalId, args) {
return {
@@ -11565,18 +11462,18 @@ function useModal(modal, args) {
return remove(mid);
}, [mid]);
var resolveCallback = reactExports.useCallback(function(args2) {
- var _a;
- (_a = modalCallbacks[mid]) === null || _a === void 0 ? void 0 : _a.resolve(args2);
+ var _a2;
+ (_a2 = modalCallbacks[mid]) === null || _a2 === void 0 ? void 0 : _a2.resolve(args2);
delete modalCallbacks[mid];
}, [mid]);
var rejectCallback = reactExports.useCallback(function(args2) {
- var _a;
- (_a = modalCallbacks[mid]) === null || _a === void 0 ? void 0 : _a.reject(args2);
+ var _a2;
+ (_a2 = modalCallbacks[mid]) === null || _a2 === void 0 ? void 0 : _a2.reject(args2);
delete modalCallbacks[mid];
}, [mid]);
var resolveHide = reactExports.useCallback(function(args2) {
- var _a;
- (_a = hideModalCallbacks[mid]) === null || _a === void 0 ? void 0 : _a.resolve(args2);
+ var _a2;
+ (_a2 = hideModalCallbacks[mid]) === null || _a2 === void 0 ? void 0 : _a2.resolve(args2);
delete hideModalCallbacks[mid];
}, [mid]);
return reactExports.useMemo(function() {
@@ -11606,9 +11503,9 @@ function useModal(modal, args) {
]);
}
var create = function(Comp) {
- return function(_a) {
+ return function(_a2) {
var _b;
- var defaultVisible = _a.defaultVisible, keepMounted = _a.keepMounted, id = _a.id, props = __rest(_a, ["defaultVisible", "keepMounted", "id"]);
+ var defaultVisible = _a2.defaultVisible, keepMounted = _a2.keepMounted, id = _a2.id, props = __rest(_a2, ["defaultVisible", "keepMounted", "id"]);
var _c = useModal(id), args = _c.args, show2 = _c.show;
var modals = reactExports.useContext(NiceModalContext);
var shouldMount = !!modals[id];
@@ -11670,8 +11567,8 @@ var NiceModalPlaceholder = function() {
return React$1.createElement(t2.comp, __assign$1({ key: t2.id, id: t2.id }, t2.props));
}));
};
-var InnerContextProvider = function(_a) {
- var children = _a.children;
+var InnerContextProvider = function(_a2) {
+ var children = _a2.children;
var arr = reactExports.useReducer(reducer, initialState);
var modals = arr[0];
dispatch = arr[1];
@@ -11682,8 +11579,8 @@ var InnerContextProvider = function(_a) {
React$1.createElement(NiceModalPlaceholder, null)
);
};
-var Provider = function(_a) {
- var children = _a.children, givenDispatch = _a.dispatch, givenModals = _a.modals;
+var Provider = function(_a2) {
+ var children = _a2.children, givenDispatch = _a2.dispatch, givenModals = _a2.modals;
if (!givenDispatch || !givenModals) {
return React$1.createElement(InnerContextProvider, null, children);
}
@@ -11695,8 +11592,8 @@ var Provider = function(_a) {
React$1.createElement(NiceModalPlaceholder, null)
);
};
-var ModalDef = function(_a) {
- var id = _a.id, component = _a.component;
+var ModalDef = function(_a2) {
+ var id = _a2.id, component = _a2.component;
reactExports.useEffect(function() {
register(id, component);
return function() {
@@ -11705,9 +11602,9 @@ var ModalDef = function(_a) {
}, [id, component]);
return null;
};
-var ModalHolder = function(_a) {
+var ModalHolder = function(_a2) {
var _b;
- var modal = _a.modal, _c = _a.handler, handler = _c === void 0 ? {} : _c, restProps = __rest(_a, ["modal", "handler"]);
+ var modal = _a2.modal, _c = _a2.handler, handler = _c === void 0 ? {} : _c, restProps = __rest(_a2, ["modal", "handler"]);
var mid = reactExports.useMemo(function() {
return getUid();
}, []);
@@ -12880,10 +12777,10 @@ var createCache = function createCache2(options2) {
}
var stylisPlugins = options2.stylisPlugins || defaultStylisPlugins;
var inserted = {};
- var container;
+ var container2;
var nodesToHydrate = [];
{
- container = options2.container || document.head;
+ container2 = options2.container || document.head;
Array.prototype.forEach.call(
// this means we will ignore elements which don't have a space in them which
// means that the style elements we're looking at are only Emotion 11 server-rendered style elements
@@ -12920,7 +12817,7 @@ var createCache = function createCache2(options2) {
key,
sheet: new StyleSheet({
key,
- container,
+ container: container2,
nonce: options2.nonce,
speedy: options2.speedy,
prepend: options2.prepend,
@@ -13750,6 +13647,626 @@ function _taggedTemplateLiteral(e2, t2) {
}
}));
}
+var reactDom = { exports: {} };
+var reactDom_production = {};
+var react = { exports: {} };
+var react_production = {};
+/**
+ * @license React
+ * react.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+var hasRequiredReact_production;
+function requireReact_production() {
+ if (hasRequiredReact_production) return react_production;
+ hasRequiredReact_production = 1;
+ var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), REACT_PORTAL_TYPE = Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = Symbol.for("react.profiler"), REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), REACT_CONTEXT_TYPE = Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), REACT_MEMO_TYPE = Symbol.for("react.memo"), REACT_LAZY_TYPE = Symbol.for("react.lazy"), MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
+ function getIteratorFn(maybeIterable) {
+ if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
+ maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable["@@iterator"];
+ return "function" === typeof maybeIterable ? maybeIterable : null;
+ }
+ var ReactNoopUpdateQueue = {
+ isMounted: function() {
+ return false;
+ },
+ enqueueForceUpdate: function() {
+ },
+ enqueueReplaceState: function() {
+ },
+ enqueueSetState: function() {
+ }
+ }, assign2 = Object.assign, emptyObject = {};
+ function Component(props, context, updater) {
+ this.props = props;
+ this.context = context;
+ this.refs = emptyObject;
+ this.updater = updater || ReactNoopUpdateQueue;
+ }
+ Component.prototype.isReactComponent = {};
+ Component.prototype.setState = function(partialState, callback) {
+ if ("object" !== typeof partialState && "function" !== typeof partialState && null != partialState)
+ throw Error(
+ "takes an object of state variables to update or a function which returns an object of state variables."
+ );
+ this.updater.enqueueSetState(this, partialState, callback, "setState");
+ };
+ Component.prototype.forceUpdate = function(callback) {
+ this.updater.enqueueForceUpdate(this, callback, "forceUpdate");
+ };
+ function ComponentDummy() {
+ }
+ ComponentDummy.prototype = Component.prototype;
+ function PureComponent(props, context, updater) {
+ this.props = props;
+ this.context = context;
+ this.refs = emptyObject;
+ this.updater = updater || ReactNoopUpdateQueue;
+ }
+ var pureComponentPrototype = PureComponent.prototype = new ComponentDummy();
+ pureComponentPrototype.constructor = PureComponent;
+ assign2(pureComponentPrototype, Component.prototype);
+ pureComponentPrototype.isPureReactComponent = true;
+ var isArrayImpl = Array.isArray, ReactSharedInternals = { H: null, A: null, T: null, S: null }, hasOwnProperty2 = Object.prototype.hasOwnProperty;
+ function ReactElement(type2, key, self2, source, owner, props) {
+ self2 = props.ref;
+ return {
+ $$typeof: REACT_ELEMENT_TYPE,
+ type: type2,
+ key,
+ ref: void 0 !== self2 ? self2 : null,
+ props
+ };
+ }
+ function cloneAndReplaceKey(oldElement, newKey) {
+ return ReactElement(
+ oldElement.type,
+ newKey,
+ void 0,
+ void 0,
+ void 0,
+ oldElement.props
+ );
+ }
+ function isValidElement(object) {
+ return "object" === typeof object && null !== object && object.$$typeof === REACT_ELEMENT_TYPE;
+ }
+ function escape(key) {
+ var escaperLookup = { "=": "=0", ":": "=2" };
+ return "$" + key.replace(/[=:]/g, function(match2) {
+ return escaperLookup[match2];
+ });
+ }
+ var userProvidedKeyEscapeRegex = /\/+/g;
+ function getElementKey(element, index2) {
+ return "object" === typeof element && null !== element && null != element.key ? escape("" + element.key) : index2.toString(36);
+ }
+ function noop$12() {
+ }
+ function resolveThenable(thenable) {
+ switch (thenable.status) {
+ case "fulfilled":
+ return thenable.value;
+ case "rejected":
+ throw thenable.reason;
+ default:
+ switch ("string" === typeof thenable.status ? thenable.then(noop$12, noop$12) : (thenable.status = "pending", thenable.then(
+ function(fulfilledValue) {
+ "pending" === thenable.status && (thenable.status = "fulfilled", thenable.value = fulfilledValue);
+ },
+ function(error) {
+ "pending" === thenable.status && (thenable.status = "rejected", thenable.reason = error);
+ }
+ )), thenable.status) {
+ case "fulfilled":
+ return thenable.value;
+ case "rejected":
+ throw thenable.reason;
+ }
+ }
+ throw thenable;
+ }
+ function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {
+ var type2 = typeof children;
+ if ("undefined" === type2 || "boolean" === type2) children = null;
+ var invokeCallback = false;
+ if (null === children) invokeCallback = true;
+ else
+ switch (type2) {
+ case "bigint":
+ case "string":
+ case "number":
+ invokeCallback = true;
+ break;
+ case "object":
+ switch (children.$$typeof) {
+ case REACT_ELEMENT_TYPE:
+ case REACT_PORTAL_TYPE:
+ invokeCallback = true;
+ break;
+ case REACT_LAZY_TYPE:
+ return invokeCallback = children._init, mapIntoArray(
+ invokeCallback(children._payload),
+ array,
+ escapedPrefix,
+ nameSoFar,
+ callback
+ );
+ }
+ }
+ if (invokeCallback)
+ return callback = callback(children), invokeCallback = "" === nameSoFar ? "." + getElementKey(children, 0) : nameSoFar, isArrayImpl(callback) ? (escapedPrefix = "", null != invokeCallback && (escapedPrefix = invokeCallback.replace(userProvidedKeyEscapeRegex, "$&/") + "/"), mapIntoArray(callback, array, escapedPrefix, "", function(c2) {
+ return c2;
+ })) : null != callback && (isValidElement(callback) && (callback = cloneAndReplaceKey(
+ callback,
+ escapedPrefix + (null == callback.key || children && children.key === callback.key ? "" : ("" + callback.key).replace(
+ userProvidedKeyEscapeRegex,
+ "$&/"
+ ) + "/") + invokeCallback
+ )), array.push(callback)), 1;
+ invokeCallback = 0;
+ var nextNamePrefix = "" === nameSoFar ? "." : nameSoFar + ":";
+ if (isArrayImpl(children))
+ for (var i2 = 0; i2 < children.length; i2++)
+ nameSoFar = children[i2], type2 = nextNamePrefix + getElementKey(nameSoFar, i2), invokeCallback += mapIntoArray(
+ nameSoFar,
+ array,
+ escapedPrefix,
+ type2,
+ callback
+ );
+ else if (i2 = getIteratorFn(children), "function" === typeof i2)
+ for (children = i2.call(children), i2 = 0; !(nameSoFar = children.next()).done; )
+ nameSoFar = nameSoFar.value, type2 = nextNamePrefix + getElementKey(nameSoFar, i2++), invokeCallback += mapIntoArray(
+ nameSoFar,
+ array,
+ escapedPrefix,
+ type2,
+ callback
+ );
+ else if ("object" === type2) {
+ if ("function" === typeof children.then)
+ return mapIntoArray(
+ resolveThenable(children),
+ array,
+ escapedPrefix,
+ nameSoFar,
+ callback
+ );
+ array = String(children);
+ throw Error(
+ "Objects are not valid as a React child (found: " + ("[object Object]" === array ? "object with keys {" + Object.keys(children).join(", ") + "}" : array) + "). If you meant to render a collection of children, use an array instead."
+ );
+ }
+ return invokeCallback;
+ }
+ function mapChildren(children, func, context) {
+ if (null == children) return children;
+ var result = [], count2 = 0;
+ mapIntoArray(children, result, "", "", function(child) {
+ return func.call(context, child, count2++);
+ });
+ return result;
+ }
+ function lazyInitializer(payload) {
+ if (-1 === payload._status) {
+ var ctor = payload._result;
+ ctor = ctor();
+ ctor.then(
+ function(moduleObject) {
+ if (0 === payload._status || -1 === payload._status)
+ payload._status = 1, payload._result = moduleObject;
+ },
+ function(error) {
+ if (0 === payload._status || -1 === payload._status)
+ payload._status = 2, payload._result = error;
+ }
+ );
+ -1 === payload._status && (payload._status = 0, payload._result = ctor);
+ }
+ if (1 === payload._status) return payload._result.default;
+ throw payload._result;
+ }
+ var reportGlobalError = "function" === typeof reportError ? reportError : function(error) {
+ if ("object" === typeof window && "function" === typeof window.ErrorEvent) {
+ var event = new window.ErrorEvent("error", {
+ bubbles: true,
+ cancelable: true,
+ message: "object" === typeof error && null !== error && "string" === typeof error.message ? String(error.message) : String(error),
+ error
+ });
+ if (!window.dispatchEvent(event)) return;
+ } else if ("object" === typeof process && "function" === typeof process.emit) {
+ process.emit("uncaughtException", error);
+ return;
+ }
+ console.error(error);
+ };
+ function noop3() {
+ }
+ react_production.Children = {
+ map: mapChildren,
+ forEach: function(children, forEachFunc, forEachContext) {
+ mapChildren(
+ children,
+ function() {
+ forEachFunc.apply(this, arguments);
+ },
+ forEachContext
+ );
+ },
+ count: function(children) {
+ var n2 = 0;
+ mapChildren(children, function() {
+ n2++;
+ });
+ return n2;
+ },
+ toArray: function(children) {
+ return mapChildren(children, function(child) {
+ return child;
+ }) || [];
+ },
+ only: function(children) {
+ if (!isValidElement(children))
+ throw Error(
+ "React.Children.only expected to receive a single React element child."
+ );
+ return children;
+ }
+ };
+ react_production.Component = Component;
+ react_production.Fragment = REACT_FRAGMENT_TYPE;
+ react_production.Profiler = REACT_PROFILER_TYPE;
+ react_production.PureComponent = PureComponent;
+ react_production.StrictMode = REACT_STRICT_MODE_TYPE;
+ react_production.Suspense = REACT_SUSPENSE_TYPE;
+ react_production.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = ReactSharedInternals;
+ react_production.act = function() {
+ throw Error("act(...) is not supported in production builds of React.");
+ };
+ react_production.cache = function(fn) {
+ return function() {
+ return fn.apply(null, arguments);
+ };
+ };
+ react_production.cloneElement = function(element, config2, children) {
+ if (null === element || void 0 === element)
+ throw Error(
+ "The argument must be a React element, but you passed " + element + "."
+ );
+ var props = assign2({}, element.props), key = element.key, owner = void 0;
+ if (null != config2)
+ for (propName in void 0 !== config2.ref && (owner = void 0), void 0 !== config2.key && (key = "" + config2.key), config2)
+ !hasOwnProperty2.call(config2, propName) || "key" === propName || "__self" === propName || "__source" === propName || "ref" === propName && void 0 === config2.ref || (props[propName] = config2[propName]);
+ var propName = arguments.length - 2;
+ if (1 === propName) props.children = children;
+ else if (1 < propName) {
+ for (var childArray = Array(propName), i2 = 0; i2 < propName; i2++)
+ childArray[i2] = arguments[i2 + 2];
+ props.children = childArray;
+ }
+ return ReactElement(element.type, key, void 0, void 0, owner, props);
+ };
+ react_production.createContext = function(defaultValue) {
+ defaultValue = {
+ $$typeof: REACT_CONTEXT_TYPE,
+ _currentValue: defaultValue,
+ _currentValue2: defaultValue,
+ _threadCount: 0,
+ Provider: null,
+ Consumer: null
+ };
+ defaultValue.Provider = defaultValue;
+ defaultValue.Consumer = {
+ $$typeof: REACT_CONSUMER_TYPE,
+ _context: defaultValue
+ };
+ return defaultValue;
+ };
+ react_production.createElement = function(type2, config2, children) {
+ var propName, props = {}, key = null;
+ if (null != config2)
+ for (propName in void 0 !== config2.key && (key = "" + config2.key), config2)
+ hasOwnProperty2.call(config2, propName) && "key" !== propName && "__self" !== propName && "__source" !== propName && (props[propName] = config2[propName]);
+ var childrenLength = arguments.length - 2;
+ if (1 === childrenLength) props.children = children;
+ else if (1 < childrenLength) {
+ for (var childArray = Array(childrenLength), i2 = 0; i2 < childrenLength; i2++)
+ childArray[i2] = arguments[i2 + 2];
+ props.children = childArray;
+ }
+ if (type2 && type2.defaultProps)
+ for (propName in childrenLength = type2.defaultProps, childrenLength)
+ void 0 === props[propName] && (props[propName] = childrenLength[propName]);
+ return ReactElement(type2, key, void 0, void 0, null, props);
+ };
+ react_production.createRef = function() {
+ return { current: null };
+ };
+ react_production.forwardRef = function(render) {
+ return { $$typeof: REACT_FORWARD_REF_TYPE, render };
+ };
+ react_production.isValidElement = isValidElement;
+ react_production.lazy = function(ctor) {
+ return {
+ $$typeof: REACT_LAZY_TYPE,
+ _payload: { _status: -1, _result: ctor },
+ _init: lazyInitializer
+ };
+ };
+ react_production.memo = function(type2, compare) {
+ return {
+ $$typeof: REACT_MEMO_TYPE,
+ type: type2,
+ compare: void 0 === compare ? null : compare
+ };
+ };
+ react_production.startTransition = function(scope) {
+ var prevTransition = ReactSharedInternals.T, currentTransition = {};
+ ReactSharedInternals.T = currentTransition;
+ try {
+ var returnValue = scope(), onStartTransitionFinish = ReactSharedInternals.S;
+ null !== onStartTransitionFinish && onStartTransitionFinish(currentTransition, returnValue);
+ "object" === typeof returnValue && null !== returnValue && "function" === typeof returnValue.then && returnValue.then(noop3, reportGlobalError);
+ } catch (error) {
+ reportGlobalError(error);
+ } finally {
+ ReactSharedInternals.T = prevTransition;
+ }
+ };
+ react_production.unstable_useCacheRefresh = function() {
+ return ReactSharedInternals.H.useCacheRefresh();
+ };
+ react_production.use = function(usable) {
+ return ReactSharedInternals.H.use(usable);
+ };
+ react_production.useActionState = function(action, initialState2, permalink) {
+ return ReactSharedInternals.H.useActionState(action, initialState2, permalink);
+ };
+ react_production.useCallback = function(callback, deps) {
+ return ReactSharedInternals.H.useCallback(callback, deps);
+ };
+ react_production.useContext = function(Context) {
+ return ReactSharedInternals.H.useContext(Context);
+ };
+ react_production.useDebugValue = function() {
+ };
+ react_production.useDeferredValue = function(value, initialValue) {
+ return ReactSharedInternals.H.useDeferredValue(value, initialValue);
+ };
+ react_production.useEffect = function(create2, deps) {
+ return ReactSharedInternals.H.useEffect(create2, deps);
+ };
+ react_production.useId = function() {
+ return ReactSharedInternals.H.useId();
+ };
+ react_production.useImperativeHandle = function(ref2, create2, deps) {
+ return ReactSharedInternals.H.useImperativeHandle(ref2, create2, deps);
+ };
+ react_production.useInsertionEffect = function(create2, deps) {
+ return ReactSharedInternals.H.useInsertionEffect(create2, deps);
+ };
+ react_production.useLayoutEffect = function(create2, deps) {
+ return ReactSharedInternals.H.useLayoutEffect(create2, deps);
+ };
+ react_production.useMemo = function(create2, deps) {
+ return ReactSharedInternals.H.useMemo(create2, deps);
+ };
+ react_production.useOptimistic = function(passthrough, reducer2) {
+ return ReactSharedInternals.H.useOptimistic(passthrough, reducer2);
+ };
+ react_production.useReducer = function(reducer2, initialArg, init) {
+ return ReactSharedInternals.H.useReducer(reducer2, initialArg, init);
+ };
+ react_production.useRef = function(initialValue) {
+ return ReactSharedInternals.H.useRef(initialValue);
+ };
+ react_production.useState = function(initialState2) {
+ return ReactSharedInternals.H.useState(initialState2);
+ };
+ react_production.useSyncExternalStore = function(subscribe, getSnapshot, getServerSnapshot) {
+ return ReactSharedInternals.H.useSyncExternalStore(
+ subscribe,
+ getSnapshot,
+ getServerSnapshot
+ );
+ };
+ react_production.useTransition = function() {
+ return ReactSharedInternals.H.useTransition();
+ };
+ react_production.version = "19.0.0";
+ return react_production;
+}
+var hasRequiredReact;
+function requireReact() {
+ if (hasRequiredReact) return react.exports;
+ hasRequiredReact = 1;
+ {
+ react.exports = requireReact_production();
+ }
+ return react.exports;
+}
+/**
+ * @license React
+ * react-dom.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+var hasRequiredReactDom_production;
+function requireReactDom_production() {
+ if (hasRequiredReactDom_production) return reactDom_production;
+ hasRequiredReactDom_production = 1;
+ var React2 = requireReact();
+ function formatProdErrorMessage(code) {
+ var url = "https://react.dev/errors/" + code;
+ if (1 < arguments.length) {
+ url += "?args[]=" + encodeURIComponent(arguments[1]);
+ for (var i2 = 2; i2 < arguments.length; i2++)
+ url += "&args[]=" + encodeURIComponent(arguments[i2]);
+ }
+ return "Minified React error #" + code + "; visit " + url + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
+ }
+ function noop3() {
+ }
+ var Internals = {
+ d: {
+ f: noop3,
+ r: function() {
+ throw Error(formatProdErrorMessage(522));
+ },
+ D: noop3,
+ C: noop3,
+ L: noop3,
+ m: noop3,
+ X: noop3,
+ S: noop3,
+ M: noop3
+ },
+ p: 0,
+ findDOMNode: null
+ }, REACT_PORTAL_TYPE = Symbol.for("react.portal");
+ function createPortal$1(children, containerInfo, implementation) {
+ var key = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;
+ return {
+ $$typeof: REACT_PORTAL_TYPE,
+ key: null == key ? null : "" + key,
+ children,
+ containerInfo,
+ implementation
+ };
+ }
+ var ReactSharedInternals = React2.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
+ function getCrossOriginStringAs(as, input) {
+ if ("font" === as) return "";
+ if ("string" === typeof input)
+ return "use-credentials" === input ? input : "";
+ }
+ reactDom_production.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = Internals;
+ reactDom_production.createPortal = function(children, container2) {
+ var key = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
+ if (!container2 || 1 !== container2.nodeType && 9 !== container2.nodeType && 11 !== container2.nodeType)
+ throw Error(formatProdErrorMessage(299));
+ return createPortal$1(children, container2, null, key);
+ };
+ reactDom_production.flushSync = function(fn) {
+ var previousTransition = ReactSharedInternals.T, previousUpdatePriority = Internals.p;
+ try {
+ if (ReactSharedInternals.T = null, Internals.p = 2, fn) return fn();
+ } finally {
+ ReactSharedInternals.T = previousTransition, Internals.p = previousUpdatePriority, Internals.d.f();
+ }
+ };
+ reactDom_production.preconnect = function(href, options2) {
+ "string" === typeof href && (options2 ? (options2 = options2.crossOrigin, options2 = "string" === typeof options2 ? "use-credentials" === options2 ? options2 : "" : void 0) : options2 = null, Internals.d.C(href, options2));
+ };
+ reactDom_production.prefetchDNS = function(href) {
+ "string" === typeof href && Internals.d.D(href);
+ };
+ reactDom_production.preinit = function(href, options2) {
+ if ("string" === typeof href && options2 && "string" === typeof options2.as) {
+ var as = options2.as, crossOrigin = getCrossOriginStringAs(as, options2.crossOrigin), integrity = "string" === typeof options2.integrity ? options2.integrity : void 0, fetchPriority = "string" === typeof options2.fetchPriority ? options2.fetchPriority : void 0;
+ "style" === as ? Internals.d.S(
+ href,
+ "string" === typeof options2.precedence ? options2.precedence : void 0,
+ {
+ crossOrigin,
+ integrity,
+ fetchPriority
+ }
+ ) : "script" === as && Internals.d.X(href, {
+ crossOrigin,
+ integrity,
+ fetchPriority,
+ nonce: "string" === typeof options2.nonce ? options2.nonce : void 0
+ });
+ }
+ };
+ reactDom_production.preinitModule = function(href, options2) {
+ if ("string" === typeof href)
+ if ("object" === typeof options2 && null !== options2) {
+ if (null == options2.as || "script" === options2.as) {
+ var crossOrigin = getCrossOriginStringAs(
+ options2.as,
+ options2.crossOrigin
+ );
+ Internals.d.M(href, {
+ crossOrigin,
+ integrity: "string" === typeof options2.integrity ? options2.integrity : void 0,
+ nonce: "string" === typeof options2.nonce ? options2.nonce : void 0
+ });
+ }
+ } else null == options2 && Internals.d.M(href);
+ };
+ reactDom_production.preload = function(href, options2) {
+ if ("string" === typeof href && "object" === typeof options2 && null !== options2 && "string" === typeof options2.as) {
+ var as = options2.as, crossOrigin = getCrossOriginStringAs(as, options2.crossOrigin);
+ Internals.d.L(href, as, {
+ crossOrigin,
+ integrity: "string" === typeof options2.integrity ? options2.integrity : void 0,
+ nonce: "string" === typeof options2.nonce ? options2.nonce : void 0,
+ type: "string" === typeof options2.type ? options2.type : void 0,
+ fetchPriority: "string" === typeof options2.fetchPriority ? options2.fetchPriority : void 0,
+ referrerPolicy: "string" === typeof options2.referrerPolicy ? options2.referrerPolicy : void 0,
+ imageSrcSet: "string" === typeof options2.imageSrcSet ? options2.imageSrcSet : void 0,
+ imageSizes: "string" === typeof options2.imageSizes ? options2.imageSizes : void 0,
+ media: "string" === typeof options2.media ? options2.media : void 0
+ });
+ }
+ };
+ reactDom_production.preloadModule = function(href, options2) {
+ if ("string" === typeof href)
+ if (options2) {
+ var crossOrigin = getCrossOriginStringAs(options2.as, options2.crossOrigin);
+ Internals.d.m(href, {
+ as: "string" === typeof options2.as && "script" !== options2.as ? options2.as : void 0,
+ crossOrigin,
+ integrity: "string" === typeof options2.integrity ? options2.integrity : void 0
+ });
+ } else Internals.d.m(href);
+ };
+ reactDom_production.requestFormReset = function(form) {
+ Internals.d.r(form);
+ };
+ reactDom_production.unstable_batchedUpdates = function(fn, a2) {
+ return fn(a2);
+ };
+ reactDom_production.useFormState = function(action, initialState2, permalink) {
+ return ReactSharedInternals.H.useFormState(action, initialState2, permalink);
+ };
+ reactDom_production.useFormStatus = function() {
+ return ReactSharedInternals.H.useHostTransitionStatus();
+ };
+ reactDom_production.version = "19.0.0";
+ return reactDom_production;
+}
+var hasRequiredReactDom;
+function requireReactDom() {
+ if (hasRequiredReactDom) return reactDom.exports;
+ hasRequiredReactDom = 1;
+ function checkDCE() {
+ if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === "undefined" || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== "function") {
+ return;
+ }
+ try {
+ __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);
+ } catch (err) {
+ console.error(err);
+ }
+ }
+ {
+ checkDCE();
+ reactDom.exports = requireReactDom_production();
+ }
+ return reactDom.exports;
+}
var reactDomExports = requireReactDom();
const sides = ["top", "right", "bottom", "left"];
const alignments = ["start", "end"];
@@ -19516,45 +20033,36 @@ class Contact {
}
}
}
-var __defProp$b = Object.defineProperty;
-var __getOwnPropDesc$a = Object.getOwnPropertyDescriptor;
-var __decorateClass$a = (decorators, target, key, kind) => {
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$a(target, key) : target;
- for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
- if (decorator = decorators[i2])
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
- if (kind && result) __defProp$b(target, key, result);
- return result;
-};
-let ContactService = class {
+_ContactService_decorators = [singleton(), autoInjectable()];
+class ContactService {
constructor(token2) {
this.token = token2;
}
async createContact(contact) {
- var _a;
+ var _a2;
return await axios.post("/apps/api/contact/create", { "contact": contact }, {
headers: {
- "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
+ "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
}
}).then((response) => {
return response.data;
});
}
async updateContact(contact) {
- var _a;
+ var _a2;
return await axios.put("/apps/api/contact/update/" + contact.uuid, { "contact": contact }, {
headers: {
- "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
+ "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
}
}).then((response) => {
return response.data;
});
}
async getContacts(searchQuery, page, shop) {
- var _a;
+ var _a2;
return await axios.get("/apps/api/contact/allbyshop/" + shop.uuid + "?term=" + searchQuery + "&page=" + page, {
headers: {
- "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
+ "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
}
}).then((response) => {
return response.data.data.map((item) => {
@@ -19564,11 +20072,10 @@ let ContactService = class {
});
});
}
-};
-ContactService = __decorateClass$a([
- singleton(),
- autoInjectable()
-], ContactService);
+}
+_init2 = __decoratorStart(null);
+ContactService = __decorateElement(_init2, 0, "ContactService", _ContactService_decorators, ContactService);
+__runInitializers(_init2, 1, ContactService);
const byteToHex = [];
for (let i2 = 0; i2 < 256; ++i2) {
byteToHex.push((i2 + 256).toString(16).slice(1));
@@ -19913,7 +20420,7 @@ var Subscription = function() {
this._finalizers = null;
}
Subscription2.prototype.unsubscribe = function() {
- var e_1, _a, e_2, _b;
+ var e_1, _a2, e_2, _b;
var errors;
if (!this.closed) {
this.closed = true;
@@ -19930,7 +20437,7 @@ var Subscription = function() {
e_1 = { error: e_1_1 };
} finally {
try {
- if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);
+ if (_parentage_1_1 && !_parentage_1_1.done && (_a2 = _parentage_1.return)) _a2.call(_parentage_1);
} finally {
if (e_1) throw e_1.error;
}
@@ -19980,7 +20487,7 @@ var Subscription = function() {
}
};
Subscription2.prototype.add = function(teardown) {
- var _a;
+ var _a2;
if (teardown && teardown !== this) {
if (this.closed) {
execFinalizer(teardown);
@@ -19991,7 +20498,7 @@ var Subscription = function() {
}
teardown._addParent(this);
}
- (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);
+ (this._finalizers = (_a2 = this._finalizers) !== null && _a2 !== void 0 ? _a2 : []).push(teardown);
}
}
};
@@ -20257,7 +20764,7 @@ var Observable = function() {
var _this = this;
var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);
errorContext(function() {
- var _a = _this, operator = _a.operator, source = _a.source;
+ var _a2 = _this, operator = _a2.operator, source = _a2.source;
subscriber.add(operator ? operator.call(subscriber, source) : source ? _this._subscribe(subscriber) : _this._trySubscribe(subscriber));
});
return subscriber;
@@ -20289,8 +20796,8 @@ var Observable = function() {
});
};
Observable2.prototype._subscribe = function(subscriber) {
- var _a;
- return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);
+ var _a2;
+ return (_a2 = this.source) === null || _a2 === void 0 ? void 0 : _a2.subscribe(subscriber);
};
Observable2.prototype[observable] = function() {
return this;
@@ -20322,8 +20829,8 @@ var Observable = function() {
return Observable2;
}();
function getPromiseCtor(promiseCtor) {
- var _a;
- return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;
+ var _a2;
+ return (_a2 = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a2 !== void 0 ? _a2 : Promise;
}
function isObserver(value) {
return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);
@@ -20385,11 +20892,11 @@ var OperatorSubscriber = function(_super) {
return _this;
}
OperatorSubscriber2.prototype.unsubscribe = function() {
- var _a;
+ var _a2;
if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {
var closed_1 = this.closed;
_super.prototype.unsubscribe.call(this);
- !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));
+ !closed_1 && ((_a2 = this.onFinalize) === null || _a2 === void 0 ? void 0 : _a2.call(this));
}
};
return OperatorSubscriber2;
@@ -20426,7 +20933,7 @@ var Subject = function(_super) {
Subject2.prototype.next = function(value) {
var _this = this;
errorContext(function() {
- var e_1, _a;
+ var e_1, _a2;
_this._throwIfClosed();
if (!_this.isStopped) {
if (!_this.currentObservers) {
@@ -20441,7 +20948,7 @@ var Subject = function(_super) {
e_1 = { error: e_1_1 };
} finally {
try {
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ if (_c && !_c.done && (_a2 = _b.return)) _a2.call(_b);
} finally {
if (e_1) throw e_1.error;
}
@@ -20482,8 +20989,8 @@ var Subject = function(_super) {
};
Object.defineProperty(Subject2.prototype, "observed", {
get: function() {
- var _a;
- return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;
+ var _a2;
+ return ((_a2 = this.observers) === null || _a2 === void 0 ? void 0 : _a2.length) > 0;
},
enumerable: false,
configurable: true
@@ -20499,7 +21006,7 @@ var Subject = function(_super) {
};
Subject2.prototype._innerSubscribe = function(subscriber) {
var _this = this;
- var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;
+ var _a2 = this, hasError = _a2.hasError, isStopped = _a2.isStopped, observers = _a2.observers;
if (hasError || isStopped) {
return EMPTY_SUBSCRIPTION;
}
@@ -20511,7 +21018,7 @@ var Subject = function(_super) {
});
};
Subject2.prototype._checkFinalizedStatuses = function(subscriber) {
- var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;
+ var _a2 = this, hasError = _a2.hasError, thrownError = _a2.thrownError, isStopped = _a2.isStopped;
if (hasError) {
subscriber.error(thrownError);
} else if (isStopped) {
@@ -20537,20 +21044,20 @@ var AnonymousSubject = function(_super) {
return _this;
}
AnonymousSubject2.prototype.next = function(value) {
- var _a, _b;
- (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);
+ var _a2, _b;
+ (_b = (_a2 = this.destination) === null || _a2 === void 0 ? void 0 : _a2.next) === null || _b === void 0 ? void 0 : _b.call(_a2, value);
};
AnonymousSubject2.prototype.error = function(err) {
- var _a, _b;
- (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);
+ var _a2, _b;
+ (_b = (_a2 = this.destination) === null || _a2 === void 0 ? void 0 : _a2.error) === null || _b === void 0 ? void 0 : _b.call(_a2, err);
};
AnonymousSubject2.prototype.complete = function() {
- var _a, _b;
- (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);
+ var _a2, _b;
+ (_b = (_a2 = this.destination) === null || _a2 === void 0 ? void 0 : _a2.complete) === null || _b === void 0 ? void 0 : _b.call(_a2);
};
AnonymousSubject2.prototype._subscribe = function(subscriber) {
- var _a, _b;
- return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;
+ var _a2, _b;
+ return (_b = (_a2 = this.source) === null || _a2 === void 0 ? void 0 : _a2.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;
};
return AnonymousSubject2;
}(Subject);
@@ -20574,7 +21081,7 @@ var BehaviorSubject = function(_super) {
return subscription;
};
BehaviorSubject2.prototype.getValue = function() {
- var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value;
+ var _a2 = this, hasError = _a2.hasError, thrownError = _a2.thrownError, _value = _a2._value;
if (hasError) {
throw thrownError;
}
@@ -20625,7 +21132,7 @@ var AsyncAction = function(_super) {
return _this;
}
AsyncAction2.prototype.schedule = function(state, delay) {
- var _a;
+ var _a2;
if (delay === void 0) {
delay = 0;
}
@@ -20640,7 +21147,7 @@ var AsyncAction = function(_super) {
}
this.pending = true;
this.delay = delay;
- this.id = (_a = this.id) !== null && _a !== void 0 ? _a : this.requestAsyncId(scheduler2, this.id, delay);
+ this.id = (_a2 = this.id) !== null && _a2 !== void 0 ? _a2 : this.requestAsyncId(scheduler2, this.id, delay);
return this;
};
AsyncAction2.prototype.requestAsyncId = function(scheduler2, _id, delay) {
@@ -20689,7 +21196,7 @@ var AsyncAction = function(_super) {
};
AsyncAction2.prototype.unsubscribe = function() {
if (!this.closed) {
- var _a = this, id = _a.id, scheduler2 = _a.scheduler;
+ var _a2 = this, id = _a2.id, scheduler2 = _a2.scheduler;
var actions = scheduler2.actions;
this.work = this.state = this.scheduler = null;
this.pending = false;
@@ -20797,17 +21304,8 @@ function debounceTime(dueTime, scheduler2) {
}));
});
}
-var __defProp$a = Object.defineProperty;
-var __getOwnPropDesc$9 = Object.getOwnPropertyDescriptor;
-var __decorateClass$9 = (decorators, target, key, kind) => {
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$9(target, key) : target;
- for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
- if (decorator = decorators[i2])
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
- if (kind && result) __defProp$a(target, key, result);
- return result;
-};
-let OrderState = class {
+_OrderState_decorators = [singleton()];
+class OrderState {
constructor() {
__publicField(this, "orders");
__publicField(this, "currentOrder");
@@ -20825,10 +21323,10 @@ let OrderState = class {
updateOrder(order) {
this.orders.push(order);
}
-};
-OrderState = __decorateClass$9([
- singleton()
-], OrderState);
+}
+_init3 = __decoratorStart(null);
+OrderState = __decorateElement(_init3, 0, "OrderState", _OrderState_decorators, OrderState);
+__runInitializers(_init3, 1, OrderState);
var n$1, l$1, u$1, i$2, r$1, o$1, e, f$2, c$2, s$1, a$2, h$1, p$1 = {}, v$2 = [], y$2 = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i, d$1 = Array.isArray;
function w$2(n2, l2) {
for (var u2 in l2) n2[u2] = l2[u2];
@@ -21160,9 +21658,6 @@ function IconBase$1(props) {
function RiDeleteBin2Line(props) {
return GenIcon$1({ tag: "svg", attr: { viewBox: "0 0 24 24", fill: "currentColor" }, child: [{ tag: "path", attr: { d: "M17 6H22V8H20V21C20 21.5523 19.5523 22 19 22H5C4.44772 22 4 21.5523 4 21V8H2V6H7V3C7 2.44772 7.44772 2 8 2H16C16.5523 2 17 2.44772 17 3V6ZM18 8H6V20H18V8ZM13.4142 13.9997L15.182 15.7675L13.7678 17.1817L12 15.4139L10.2322 17.1817L8.81802 15.7675L10.5858 13.9997L8.81802 12.232L10.2322 10.8178L12 12.5855L13.7678 10.8178L15.182 12.232L13.4142 13.9997ZM9 4V6H15V4H9Z" } }] })(props);
}
-function RiPrinterFill(props) {
- return GenIcon$1({ tag: "svg", attr: { viewBox: "0 0 24 24", fill: "currentColor" }, child: [{ tag: "path", attr: { d: "M7 17H17V22H7V17ZM19 20V15H5V20H3C2.44772 20 2 19.5523 2 19V9C2 8.44772 2.44772 8 3 8H21C21.5523 8 22 8.44772 22 9V19C22 19.5523 21.5523 20 21 20H19ZM5 10V12H8V10H5ZM7 2H17C17.5523 2 18 2.44772 18 3V6H6V3C6 2.44772 6.44772 2 7 2Z" } }] })(props);
-}
function RiSaveFill(props) {
return GenIcon$1({ tag: "svg", attr: { viewBox: "0 0 24 24", fill: "currentColor" }, child: [{ tag: "path", attr: { d: "M18 21V13H6V21H4C3.44772 21 3 20.5523 3 20V4C3 3.44772 3.44772 3 4 3H17L21 7V20C21 20.5523 20.5523 21 20 21H18ZM16 21H8V15H16V21Z" } }] })(props);
}
@@ -21371,7 +21866,7 @@ function createClassGroupUtils(config2) {
};
}
function getGroupRecursive(classParts, classPartObject) {
- var _a;
+ var _a2;
if (classParts.length === 0) {
return classPartObject.classGroupId;
}
@@ -21385,9 +21880,9 @@ function getGroupRecursive(classParts, classPartObject) {
return void 0;
}
const classRest = classParts.join(CLASS_PART_SEPARATOR);
- return (_a = classPartObject.validators.find(({
+ return (_a2 = classPartObject.validators.find(({
validator: validator2
- }) => validator2(classRest))) == null ? void 0 : _a.classGroupId;
+ }) => validator2(classRest))) == null ? void 0 : _a2.classGroupId;
}
const arbitraryPropertyRegex = /^\[(.+)\]$/;
function getGroupIdForArbitraryProperty(className) {
@@ -25965,8 +26460,8 @@ function requireDebounce() {
}
var debounceExports = /* @__PURE__ */ requireDebounce();
const debounce = /* @__PURE__ */ getDefaultExportFromCjs(debounceExports);
-var __defProp$9 = Object.defineProperty;
-var __defNormalProp2 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
+var __defProp2 = Object.defineProperty;
+var __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== "symbol" ? key + "" : key, value);
const SCROLL_END_DEBOUNCE = 300;
const LEFT_BUTTON = 0;
@@ -25990,8 +26485,8 @@ class ScrollContainer extends reactExports.PureComponent {
}
});
__publicField2(this, "onScroll", () => {
- const container = this.container.current;
- if (container.scrollLeft !== this.scrollLeft || container.scrollTop !== this.scrollTop) {
+ const container2 = this.container.current;
+ if (container2.scrollLeft !== this.scrollLeft || container2.scrollTop !== this.scrollTop) {
this.scrolling = true;
this.processScroll();
this.onEndScroll();
@@ -26037,10 +26532,10 @@ class ScrollContainer extends reactExports.PureComponent {
}
});
__publicField2(this, "onMouseDown", (e2) => {
- var _a, _b;
+ var _a2, _b;
if (this.isDraggable(e2.target) && this.isScrollable()) {
this.internal = true;
- if (((_b = (_a = this.props) == null ? void 0 : _a.buttons) == null ? void 0 : _b.indexOf(e2.button)) !== -1) {
+ if (((_b = (_a2 = this.props) == null ? void 0 : _a2.buttons) == null ? void 0 : _b.indexOf(e2.button)) !== -1) {
this.processClick(e2.clientX, e2.clientY);
e2.preventDefault();
if (this.props.stopPropagation) {
@@ -26086,15 +26581,15 @@ class ScrollContainer extends reactExports.PureComponent {
}
componentDidMount() {
const { nativeMobileScroll } = this.props;
- const container = this.container.current;
+ const container2 = this.container.current;
window.addEventListener("mouseup", this.onMouseUp);
window.addEventListener("mousemove", this.onMouseMove);
window.addEventListener("touchmove", this.onTouchMove, { passive: false });
window.addEventListener("touchend", this.onTouchEnd);
- container.addEventListener("touchstart", this.onTouchStart, {
+ container2.addEventListener("touchstart", this.onTouchStart, {
passive: false
});
- container.addEventListener("mousedown", this.onMouseDown, {
+ container2.addEventListener("mousedown", this.onMouseDown, {
passive: false
});
if (nativeMobileScroll) {
@@ -26126,13 +26621,13 @@ class ScrollContainer extends reactExports.PureComponent {
}
}
isScrollable() {
- const container = this.container.current;
- return container && (container.scrollWidth > container.clientWidth || container.scrollHeight > container.clientHeight);
+ const container2 = this.container.current;
+ return container2 && (container2.scrollWidth > container2.clientWidth || container2.scrollHeight > container2.clientHeight);
}
processClick(clientX, clientY) {
- const container = this.container.current;
- this.scrollLeft = container == null ? void 0 : container.scrollLeft;
- this.scrollTop = container == null ? void 0 : container.scrollTop;
+ const container2 = this.container.current;
+ this.scrollLeft = container2 == null ? void 0 : container2.scrollLeft;
+ this.scrollTop = container2 == null ? void 0 : container2.scrollTop;
this.clientX = clientX;
this.clientY = clientY;
this.pressed = true;
@@ -26166,7 +26661,7 @@ class ScrollContainer extends reactExports.PureComponent {
// Process non-native scroll
processMove(newClientX, newClientY) {
const { horizontal, vertical, activationDistance, onScroll } = this.props;
- const container = this.container.current;
+ const container2 = this.container.current;
if (!this.started) {
if (horizontal && Math.abs(newClientX - this.clientX) > activationDistance || vertical && Math.abs(newClientY - this.clientY) > activationDistance) {
this.clientX = newClientX;
@@ -26175,24 +26670,24 @@ class ScrollContainer extends reactExports.PureComponent {
}
} else {
if (horizontal) {
- container.scrollLeft -= newClientX - this.clientX;
+ container2.scrollLeft -= newClientX - this.clientX;
}
if (vertical) {
- container.scrollTop -= newClientY - this.clientY;
+ container2.scrollTop -= newClientY - this.clientY;
}
if (onScroll) {
onScroll({ external: !this.internal });
}
this.clientX = newClientX;
this.clientY = newClientY;
- this.scrollLeft = container.scrollLeft;
- this.scrollTop = container.scrollTop;
+ this.scrollLeft = container2.scrollLeft;
+ this.scrollTop = container2.scrollTop;
}
}
processEnd() {
const { onEndScroll } = this.props;
- const container = this.container.current;
- if (container && onEndScroll) {
+ const container2 = this.container.current;
+ if (container2 && onEndScroll) {
onEndScroll({
external: !this.internal
});
@@ -26660,18 +27155,18 @@ var sortByOrder = function sortByOrder2(candidates) {
return acc;
}, []).concat(regularTabbables);
};
-var tabbable = function tabbable2(container, options2) {
+var tabbable = function tabbable2(container2, options2) {
options2 = options2 || {};
var candidates;
if (options2.getShadowRoot) {
- candidates = getCandidatesIteratively([container], options2.includeContainer, {
+ candidates = getCandidatesIteratively([container2], options2.includeContainer, {
filter: isNodeMatchingSelectorTabbable.bind(null, options2),
flatten: false,
getShadowRoot: options2.getShadowRoot,
shadowRootFilter: isValidShadowRootTabbable
});
} else {
- candidates = getCandidates(container, options2.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options2));
+ candidates = getCandidates(container2, options2.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options2));
}
return sortByOrder(candidates);
};
@@ -27852,12 +28347,12 @@ const getTabbableOptions = () => ({
typeof ResizeObserver === "function" && ResizeObserver.toString().includes("[native code]") ? "full" : "none"
)
});
-function getTabbableIn(container, direction) {
- const allTabbable = tabbable(container, getTabbableOptions());
+function getTabbableIn(container2, direction) {
+ const allTabbable = tabbable(container2, getTabbableOptions());
if (direction === "prev") {
allTabbable.reverse();
}
- const activeIndex = allTabbable.indexOf(activeElement(getDocument(container)));
+ const activeIndex = allTabbable.indexOf(activeElement(getDocument(container2)));
const nextTabbableElements = allTabbable.slice(activeIndex + 1);
return nextTabbableElements[0];
}
@@ -27867,20 +28362,20 @@ function getNextTabbable() {
function getPreviousTabbable() {
return getTabbableIn(document.body, "prev");
}
-function isOutsideEvent(event, container) {
- const containerElement = container || event.currentTarget;
+function isOutsideEvent(event, container2) {
+ const containerElement = container2 || event.currentTarget;
const relatedTarget = event.relatedTarget;
return !relatedTarget || !contains$1(containerElement, relatedTarget);
}
-function disableFocusInside(container) {
- const tabbableElements = tabbable(container, getTabbableOptions());
+function disableFocusInside(container2) {
+ const tabbableElements = tabbable(container2, getTabbableOptions());
tabbableElements.forEach((element) => {
element.dataset.tabindex = element.getAttribute("tabindex") || "";
element.setAttribute("tabindex", "-1");
});
}
-function enableFocusInside(container) {
- const elements = container.querySelectorAll("[data-tabindex]");
+function enableFocusInside(container2) {
+ const elements = container2.querySelectorAll("[data-tabindex]");
elements.forEach((element) => {
const tabindex = element.dataset.tabindex;
delete element.dataset.tabindex;
@@ -27992,20 +28487,20 @@ function useFloatingPortalNode(props) {
index(() => {
if (!uniqueId) return;
if (portalNodeRef.current) return;
- let container = root || (portalContext == null ? void 0 : portalContext.portalNode);
- if (container && !isElement(container)) container = container.current;
- container = container || document.body;
+ let container2 = root || (portalContext == null ? void 0 : portalContext.portalNode);
+ if (container2 && !isElement(container2)) container2 = container2.current;
+ container2 = container2 || document.body;
let idWrapper = null;
if (id) {
idWrapper = document.createElement("div");
idWrapper.id = id;
- container.appendChild(idWrapper);
+ container2.appendChild(idWrapper);
}
const subRoot = document.createElement("div");
subRoot.id = uniqueId;
subRoot.setAttribute(attr, "");
- container = idWrapper || container;
- container.appendChild(subRoot);
+ container2 = idWrapper || container2;
+ container2.appendChild(subRoot);
portalNodeRef.current = subRoot;
setPortalNode(subRoot);
}, [id, root, uniqueId, portalContext]);
@@ -28164,14 +28659,14 @@ function FloatingFocusManager(props) {
const isInsidePortal = portalContext != null;
const firstElementChild = floating == null ? void 0 : floating.firstElementChild;
const floatingFocusNode = (firstElementChild == null ? void 0 : firstElementChild.id) === floatingId ? firstElementChild : floating;
- const getTabbableContent = useEffectEvent(function(container) {
- if (container === void 0) {
- container = floatingFocusNode;
+ const getTabbableContent = useEffectEvent(function(container2) {
+ if (container2 === void 0) {
+ container2 = floatingFocusNode;
}
- return container ? tabbable(container, getTabbableOptions()) : [];
+ return container2 ? tabbable(container2, getTabbableOptions()) : [];
});
- const getTabbableElements = useEffectEvent((container) => {
- const content = getTabbableContent(container);
+ const getTabbableElements = useEffectEvent((container2) => {
+ const content = getTabbableContent(container2);
return orderRef.current.map((type2) => {
if (domReference && type2 === "reference") {
return domReference;
@@ -30257,9 +30752,9 @@ function FaQuoteRight(props) {
return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 448 512" }, "child": [{ "tag": "path", "attr": { "d": "M448 296c0 66.3-53.7 120-120 120h-8c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H320c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72zm-256 0c0 66.3-53.7 120-120 120H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72z" }, "child": [] }] })(props);
}
const copyToClipboard = (valueToCopy, setIsJustCopied) => {
- var _a;
+ var _a2;
setIsJustCopied(true);
- (_a = navigator == null ? void 0 : navigator.clipboard) == null ? void 0 : _a.writeText(valueToCopy).then(() => {
+ (_a2 = navigator == null ? void 0 : navigator.clipboard) == null ? void 0 : _a2.writeText(valueToCopy).then(() => {
console.log("Copy Successfull");
}).catch((error) => {
console.error("Failed to Copy text: ", error);
@@ -30692,8 +31187,8 @@ const DatepickerRender = ({
};
reactExports.useImperativeHandle(ref2, () => ({
focus() {
- var _a;
- (_a = inputRef.current) == null ? void 0 : _a.focus();
+ var _a2;
+ (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
},
clear() {
clearDate();
@@ -30752,8 +31247,8 @@ const DatepickerRender = ({
};
reactExports.useEffect(() => {
const handleClickOutside = (event) => {
- var _a, _b;
- const clickedInsideDatepicker = (_a = datepickerRef == null ? void 0 : datepickerRef.current) == null ? void 0 : _a.contains(event.target);
+ var _a2, _b;
+ const clickedInsideDatepicker = (_a2 = datepickerRef == null ? void 0 : datepickerRef.current) == null ? void 0 : _a2.contains(event.target);
const clickedInsideInput = (_b = inputRef == null ? void 0 : inputRef.current) == null ? void 0 : _b.contains(event.target);
if (!clickedInsideDatepicker && !clickedInsideInput) {
setIsOpen(false);
@@ -31348,7 +31843,7 @@ const FooterComponent = ({
bgDark = false,
children,
className,
- container = false,
+ container: container2 = false,
theme: customTheme = {},
...props
}) => {
@@ -31357,7 +31852,7 @@ const FooterComponent = ({
"footer",
{
"data-testid": "flowbite-footer",
- className: twMerge(theme2.root.base, bgDark && theme2.root.bgDark, container && theme2.root.container, className),
+ className: twMerge(theme2.root.base, bgDark && theme2.root.bgDark, container2 && theme2.root.container, className),
...props,
children
}
@@ -31697,13 +32192,13 @@ const MegaMenuDropdown = ({
const id = reactExports.useId();
const ref2 = reactExports.useRef(null);
reactExports.useEffect(() => {
- var _a;
+ var _a2;
const findToggle = function() {
- var _a2;
- const megaMenu = (_a2 = ref2.current) == null ? void 0 : _a2.closest("nav");
+ var _a3;
+ const megaMenu = (_a3 = ref2.current) == null ? void 0 : _a3.closest("nav");
return megaMenu == null ? void 0 : megaMenu.querySelector('[aria-haspopup="menu"]');
};
- setLabelledBy((_a = findToggle()) == null ? void 0 : _a.id);
+ setLabelledBy((_a2 = findToggle()) == null ? void 0 : _a2.id);
}, []);
return /* @__PURE__ */ jsxRuntimeExports.jsx(
"div",
@@ -31731,13 +32226,13 @@ const MegaMenuDropdownToggle = ({
const [isExpanded, setExpanded] = reactExports.useState(void 0);
const theme2 = mergeDeep(getTheme2().megaMenu.dropdownToggle, customTheme);
const findDropdown = function() {
- var _a;
- const megaMenu = (_a = ref2.current) == null ? void 0 : _a.closest("nav");
+ var _a2;
+ const megaMenu = (_a2 = ref2.current) == null ? void 0 : _a2.closest("nav");
return megaMenu == null ? void 0 : megaMenu.querySelector('[role="menu"]');
};
const onClick = function() {
- var _a;
- (_a = findDropdown()) == null ? void 0 : _a.classList.toggle("hidden");
+ var _a2;
+ (_a2 = findDropdown()) == null ? void 0 : _a2.classList.toggle("hidden");
setExpanded(!isExpanded);
};
reactExports.useEffect(() => {
@@ -32234,7 +32729,7 @@ const SidebarItem = reactExports.forwardRef(
theme: customTheme = {},
...props
}, ref2) => {
- var _a, _b, _c, _d;
+ var _a2, _b, _c, _d;
const id = reactExports.useId();
const { theme: rootTheme, isCollapsed } = useSidebarContext();
const { isInsideCollapse } = useSidebarItemContext();
@@ -32247,7 +32742,7 @@ const SidebarItem = reactExports.forwardRef(
className: twMerge(
theme2.base,
isActive && theme2.active,
- !isCollapsed && isInsideCollapse && ((_a = theme2.collapsed) == null ? void 0 : _a.insideCollapse),
+ !isCollapsed && isInsideCollapse && ((_a2 = theme2.collapsed) == null ? void 0 : _a2.insideCollapse),
className
),
...props,
@@ -32477,8 +32972,8 @@ const TabsComponent = reactExports.forwardRef(
const tabItemStyle = theme2.tablist.tabitem.variant[variant];
const tabItemContainerStyle = theme2.tabitemcontainer.variant[variant];
reactExports.useEffect(() => {
- var _a;
- (_a = tabRefs.current[focusedTab]) == null ? void 0 : _a.focus();
+ var _a2;
+ (_a2 = tabRefs.current[focusedTab]) == null ? void 0 : _a2.focus();
}, [focusedTab]);
reactExports.useImperativeHandle(ref2, () => ({
setActiveTab: setActiveTabWithCallback
@@ -36284,7 +36779,7 @@ function requireTimes() {
var timesExports = requireTimes();
const times = /* @__PURE__ */ getDefaultExportFromCjs(timesExports);
function getOptionMatchingSimpleDiscriminator(formData, options2, discriminatorField) {
- var _a;
+ var _a2;
if (formData && discriminatorField) {
const value = _get(formData, discriminatorField);
if (value === void 0) {
@@ -36299,7 +36794,7 @@ function getOptionMatchingSimpleDiscriminator(formData, options2, discriminatorF
if (discriminator.const === value) {
return i2;
}
- if ((_a = discriminator.enum) === null || _a === void 0 ? void 0 : _a.includes(value)) {
+ if ((_a2 = discriminator.enum) === null || _a2 === void 0 ? void 0 : _a2.includes(value)) {
return i2;
}
}
@@ -38451,7 +38946,7 @@ function retrieveSchemaInternal(validator2, schema, rootSchema, rawFormData, exp
}
const resolvedSchemas = resolveSchema(validator2, schema, rootSchema, expandAllBranches, recurseList, rawFormData, experimental_customMergeAllOf);
return resolvedSchemas.flatMap((s2) => {
- var _a;
+ var _a2;
let resolvedSchema = s2;
if (IF_KEY in resolvedSchema) {
return resolveCondition(validator2, resolvedSchema, rootSchema, expandAllBranches, recurseList, rawFormData, experimental_customMergeAllOf);
@@ -38464,7 +38959,7 @@ function retrieveSchemaInternal(validator2, schema, rootSchema, rawFormData, exp
try {
const withContainsSchemas = [];
const withoutContainsSchemas = [];
- (_a = resolvedSchema.allOf) === null || _a === void 0 ? void 0 : _a.forEach((s3) => {
+ (_a2 = resolvedSchema.allOf) === null || _a2 === void 0 ? void 0 : _a2.forEach((s3) => {
if (typeof s3 === "object" && s3.contains) {
withContainsSchemas.push(s3);
} else {
@@ -38883,7 +39378,7 @@ function getObjectDefaults(validator2, rawSchema, { rawFormData, rootSchema = {}
const retrievedSchema = (experimental_defaultFormStateBehavior === null || experimental_defaultFormStateBehavior === void 0 ? void 0 : experimental_defaultFormStateBehavior.allOf) === "populateDefaults" && ALL_OF_KEY in schema ? retrieveSchema(validator2, schema, rootSchema, formData, experimental_customMergeAllOf) : schema;
const parentConst = retrievedSchema[CONST_KEY];
const objectDefaults = Object.keys(retrievedSchema.properties || {}).reduce((acc, key) => {
- var _a;
+ var _a2;
const propertySchema = _get(retrievedSchema, [PROPERTIES_KEY, key]);
const hasParentConst = isObject$1(parentConst) && parentConst[key] !== void 0;
const hasConst = (isObject$1(propertySchema) && CONST_KEY in propertySchema || hasParentConst) && (experimental_defaultFormStateBehavior === null || experimental_defaultFormStateBehavior === void 0 ? void 0 : experimental_defaultFormStateBehavior.constAsDefaults) !== "never";
@@ -38895,7 +39390,7 @@ function getObjectDefaults(validator2, rawSchema, { rawFormData, rootSchema = {}
includeUndefinedValues: includeUndefinedValues === true,
parentDefaults: _get(defaults2, [key]),
rawFormData: _get(formData, [key]),
- required: (_a = retrievedSchema.required) === null || _a === void 0 ? void 0 : _a.includes(key)
+ required: (_a2 = retrievedSchema.required) === null || _a2 === void 0 ? void 0 : _a2.includes(key)
});
maybeAddDefaultToObject(acc, key, computedDefault, includeUndefinedValues, required2, retrievedSchema.required, experimental_defaultFormStateBehavior, hasConst);
return acc;
@@ -38912,7 +39407,7 @@ function getObjectDefaults(validator2, rawSchema, { rawFormData, rootSchema = {}
formDataRequired.push(key);
});
keys.forEach((key) => {
- var _a;
+ var _a2;
const computedDefault = computeDefaults(validator2, additionalPropertiesSchema, {
rootSchema,
_recurseList,
@@ -38921,7 +39416,7 @@ function getObjectDefaults(validator2, rawSchema, { rawFormData, rootSchema = {}
includeUndefinedValues: includeUndefinedValues === true,
parentDefaults: _get(defaults2, [key]),
rawFormData: _get(formData, [key]),
- required: (_a = retrievedSchema.required) === null || _a === void 0 ? void 0 : _a.includes(key)
+ required: (_a2 = retrievedSchema.required) === null || _a2 === void 0 ? void 0 : _a2.includes(key)
});
maybeAddDefaultToObject(objectDefaults, key, computedDefault, includeUndefinedValues, required2, formDataRequired);
});
@@ -38930,9 +39425,9 @@ function getObjectDefaults(validator2, rawSchema, { rawFormData, rootSchema = {}
}
}
function getArrayDefaults(validator2, rawSchema, { rawFormData, rootSchema = {}, _recurseList = [], experimental_defaultFormStateBehavior = void 0, experimental_customMergeAllOf = void 0, required: required2 } = {}, defaults2) {
- var _a, _b;
+ var _a2, _b;
const schema = rawSchema;
- const arrayMinItemsStateBehavior = (_a = experimental_defaultFormStateBehavior === null || experimental_defaultFormStateBehavior === void 0 ? void 0 : experimental_defaultFormStateBehavior.arrayMinItems) !== null && _a !== void 0 ? _a : {};
+ const arrayMinItemsStateBehavior = (_a2 = experimental_defaultFormStateBehavior === null || experimental_defaultFormStateBehavior === void 0 ? void 0 : experimental_defaultFormStateBehavior.arrayMinItems) !== null && _a2 !== void 0 ? _a2 : {};
const { populate: arrayMinItemsPopulate, mergeExtraDefaults: arrayMergeExtraDefaults } = arrayMinItemsStateBehavior;
const neverPopulate = arrayMinItemsPopulate === "never";
const ignoreMinItemsFlagSet = arrayMinItemsPopulate === "requiredOnly";
@@ -39468,7 +39963,7 @@ function createSchemaUtils(validator2, rootSchema, experimental_defaultFormState
return new SchemaUtils(validator2, rootSchema, experimental_defaultFormStateBehavior, experimental_customMergeAllOf);
}
function dataURItoBlob(dataURILike) {
- var _a;
+ var _a2;
if (dataURILike.indexOf("data:") === -1) {
throw new Error("File is invalid: URI must be a dataURI");
}
@@ -39483,7 +39978,7 @@ function dataURItoBlob(dataURILike) {
const name = decodeURI(
// parse the parameters into key-value pairs, find a key, and extract a value
// if no key is found, then the name is unknown
- ((_a = mediaparams.map((param) => param.split("=")).find(([key]) => key === "name")) === null || _a === void 0 ? void 0 : _a[1]) || "unknown"
+ ((_a2 = mediaparams.map((param) => param.split("=")).find(([key]) => key === "name")) === null || _a2 === void 0 ? void 0 : _a2[1]) || "unknown"
);
try {
const binary = atob(base64);
@@ -46478,11 +46973,11 @@ class AJV6Validator {
* @param rootSchema - The root schema used to provide $ref resolutions
*/
handleSchemaUpdate(rootSchema) {
- var _a;
+ var _a2;
const rootSchemaId = ROOT_SCHEMA_PREFIX;
if (this.ajv.getSchema(ROOT_SCHEMA_PREFIX) === void 0) {
this.ajv.addSchema(rootSchema, ROOT_SCHEMA_PREFIX);
- } else if (!deepEquals(rootSchema, (_a = this.ajv.getSchema(ROOT_SCHEMA_PREFIX)) === null || _a === void 0 ? void 0 : _a.schema)) {
+ } else if (!deepEquals(rootSchema, (_a2 = this.ajv.getSchema(ROOT_SCHEMA_PREFIX)) === null || _a2 === void 0 ? void 0 : _a2.schema)) {
this.ajv.removeSchema(rootSchemaId);
this.ajv.addSchema(rootSchema, rootSchemaId);
}
@@ -46918,38 +47413,38 @@ class ArrayField extends reactExports.Component {
/** Renders an array using the custom widget provided by the user in the `uiSchema`
*/
renderCustomWidget() {
- var _a;
+ var _a2;
const { schema, idSchema, uiSchema, disabled = false, readonly = false, autofocus = false, required: required2 = false, hideError, placeholder, onBlur, onFocus: onFocus2, formData: items2 = [], registry, rawErrors, name } = this.props;
const { widgets: widgets2, formContext, globalUiOptions, schemaUtils } = registry;
const { widget, title: uiTitle, ...options2 } = getUiOptions(uiSchema, globalUiOptions);
const Widget = getWidget(schema, widget, widgets2);
- const label = (_a = uiTitle !== null && uiTitle !== void 0 ? uiTitle : schema.title) !== null && _a !== void 0 ? _a : name;
+ const label = (_a2 = uiTitle !== null && uiTitle !== void 0 ? uiTitle : schema.title) !== null && _a2 !== void 0 ? _a2 : name;
const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);
return jsxRuntimeExports.jsx(Widget, { id: idSchema.$id, name, multiple: true, onChange: this.onSelectChange, onBlur, onFocus: onFocus2, options: options2, schema, uiSchema, registry, value: items2, disabled, readonly, hideError, required: required2, label, hideLabel: !displayLabel, placeholder, formContext, autofocus, rawErrors });
}
/** Renders an array as a set of checkboxes
*/
renderMultiSelect() {
- var _a;
+ var _a2;
const { schema, idSchema, uiSchema, formData: items2 = [], disabled = false, readonly = false, autofocus = false, required: required2 = false, placeholder, onBlur, onFocus: onFocus2, registry, rawErrors, name } = this.props;
const { widgets: widgets2, schemaUtils, formContext, globalUiOptions } = registry;
const itemsSchema = schemaUtils.retrieveSchema(schema.items, items2);
const enumOptions = optionsList(itemsSchema, uiSchema);
const { widget = "select", title: uiTitle, ...options2 } = getUiOptions(uiSchema, globalUiOptions);
const Widget = getWidget(schema, widget, widgets2);
- const label = (_a = uiTitle !== null && uiTitle !== void 0 ? uiTitle : schema.title) !== null && _a !== void 0 ? _a : name;
+ const label = (_a2 = uiTitle !== null && uiTitle !== void 0 ? uiTitle : schema.title) !== null && _a2 !== void 0 ? _a2 : name;
const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);
return jsxRuntimeExports.jsx(Widget, { id: idSchema.$id, name, multiple: true, onChange: this.onSelectChange, onBlur, onFocus: onFocus2, options: { ...options2, enumOptions }, schema, uiSchema, registry, value: items2, disabled, readonly, required: required2, label, hideLabel: !displayLabel, placeholder, formContext, autofocus, rawErrors });
}
/** Renders an array of files using the `FileWidget`
*/
renderFiles() {
- var _a;
+ var _a2;
const { schema, uiSchema, idSchema, name, disabled = false, readonly = false, autofocus = false, required: required2 = false, onBlur, onFocus: onFocus2, registry, formData: items2 = [], rawErrors } = this.props;
const { widgets: widgets2, formContext, globalUiOptions, schemaUtils } = registry;
const { widget = "files", title: uiTitle, ...options2 } = getUiOptions(uiSchema, globalUiOptions);
const Widget = getWidget(schema, widget, widgets2);
- const label = (_a = uiTitle !== null && uiTitle !== void 0 ? uiTitle : schema.title) !== null && _a !== void 0 ? _a : name;
+ const label = (_a2 = uiTitle !== null && uiTitle !== void 0 ? uiTitle : schema.title) !== null && _a2 !== void 0 ? _a2 : name;
const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);
return jsxRuntimeExports.jsx(Widget, { options: options2, id: idSchema.$id, name, multiple: true, onChange: this.onSelectChange, onBlur, onFocus: onFocus2, schema, uiSchema, value: items2, disabled, readonly, required: required2, registry, formContext, autofocus, rawErrors, label, hideLabel: !displayLabel });
}
@@ -47064,7 +47559,7 @@ class ArrayField extends reactExports.Component {
}
}
function BooleanField(props) {
- var _a, _b, _c;
+ var _a2, _b, _c;
const { schema, name, uiSchema, idSchema, formData, registry, required: required2, disabled, readonly, hideError, autofocus, title: title2, onChange: onChange2, onFocus: onFocus2, onBlur, rawErrors } = props;
const { title: schemaTitle } = schema;
const { widgets: widgets2, formContext, translateString, globalUiOptions } = registry;
@@ -47079,7 +47574,7 @@ function BooleanField(props) {
const yes = translateString(TranslatableString.YesLabel);
const no = translateString(TranslatableString.NoLabel);
let enumOptions;
- const label = (_b = (_a = uiTitle !== null && uiTitle !== void 0 ? uiTitle : schemaTitle) !== null && _a !== void 0 ? _a : title2) !== null && _b !== void 0 ? _b : name;
+ const label = (_b = (_a2 = uiTitle !== null && uiTitle !== void 0 ? uiTitle : schemaTitle) !== null && _a2 !== void 0 ? _a2 : title2) !== null && _b !== void 0 ? _b : name;
if (Array.isArray(schema.oneOf)) {
enumOptions = optionsList({
oneOf: schema.oneOf.map((option) => {
@@ -47634,7 +48129,7 @@ class ObjectField extends reactExports.Component {
};
};
this.handleAddClick = (schema) => () => {
- var _a;
+ var _a2;
if (!schema.additionalProperties) {
return;
}
@@ -47660,7 +48155,7 @@ class ObjectField extends reactExports.Component {
}
}
const newKey = this.getAvailableKey("newKey", newFormData);
- const newValue = (_a = constValue !== null && constValue !== void 0 ? constValue : defaultValue) !== null && _a !== void 0 ? _a : this.getDefaultValue(type2);
+ const newValue = (_a2 = constValue !== null && constValue !== void 0 ? constValue : defaultValue) !== null && _a2 !== void 0 ? _a2 : this.getDefaultValue(type2);
set(newFormData, newKey, newValue);
onChange2(newFormData);
};
@@ -47699,14 +48194,14 @@ class ObjectField extends reactExports.Component {
/** Renders the `ObjectField` from the given props
*/
render() {
- var _a, _b, _c, _d;
+ var _a2, _b, _c, _d;
const { schema: rawSchema, uiSchema = {}, formData, errorSchema, idSchema, name, required: required2 = false, disabled, readonly, hideError, idPrefix, idSeparator, onBlur, onFocus: onFocus2, registry, title: title2 } = this.props;
const { fields: fields2, formContext, schemaUtils, translateString, globalUiOptions } = registry;
const { SchemaField: SchemaField2 } = fields2;
const schema = schemaUtils.retrieveSchema(rawSchema, formData);
const uiOptions = getUiOptions(uiSchema, globalUiOptions);
const { properties: schemaProperties = {} } = schema;
- const templateTitle = (_c = (_b = (_a = uiOptions.title) !== null && _a !== void 0 ? _a : schema.title) !== null && _b !== void 0 ? _b : title2) !== null && _c !== void 0 ? _c : name;
+ const templateTitle = (_c = (_b = (_a2 = uiOptions.title) !== null && _a2 !== void 0 ? _a2 : schema.title) !== null && _b !== void 0 ? _b : title2) !== null && _c !== void 0 ? _c : name;
const description2 = (_d = uiOptions.description) !== null && _d !== void 0 ? _d : schema.description;
let orderedProperties;
try {
@@ -47782,7 +48277,7 @@ function getFieldComponent(schema, uiOptions, idSchema, registry) {
};
}
function SchemaFieldRender(props) {
- var _a, _b, _c;
+ var _a2, _b, _c;
const { schema: _schema, idSchema: _idSchema, uiSchema, formData, errorSchema, idPrefix, idSeparator, name, onChange: onChange2, onKeyChange, onDropPropertyClick, required: required2, registry, wasPropertyKeyModified = false } = props;
const { formContext, schemaUtils, globalUiOptions } = registry;
const uiOptions = getUiOptions(uiSchema, globalUiOptions);
@@ -47798,7 +48293,7 @@ function SchemaFieldRender(props) {
return onChange2(formData2, newErrorSchema, theId);
}, [fieldId, onChange2]);
const FieldComponent = getFieldComponent(schema, uiOptions, idSchema, registry);
- const disabled = Boolean((_a = uiOptions.disabled) !== null && _a !== void 0 ? _a : props.disabled);
+ const disabled = Boolean((_a2 = uiOptions.disabled) !== null && _a2 !== void 0 ? _a2 : props.disabled);
const readonly = Boolean((_b = uiOptions.readonly) !== null && _b !== void 0 ? _b : props.readonly || props.schema.readOnly || schema.readOnly);
const uiSchemaHideError = uiOptions.hideError;
const hideError = uiSchemaHideError === void 0 ? props.hideError : Boolean(uiSchemaHideError);
@@ -47876,7 +48371,7 @@ class SchemaField extends reactExports.Component {
}
}
function StringField(props) {
- var _a;
+ var _a2;
const { schema, name, uiSchema, idSchema, formData, required: required2, disabled = false, readonly = false, autofocus = false, onChange: onChange2, onBlur, onFocus: onFocus2, registry, rawErrors, hideError } = props;
const { title: title2, format: format2 } = schema;
const { widgets: widgets2, formContext, schemaUtils, globalUiOptions } = registry;
@@ -47887,7 +48382,7 @@ function StringField(props) {
}
const { widget = defaultWidget, placeholder = "", title: uiTitle, ...options2 } = getUiOptions(uiSchema);
const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);
- const label = (_a = uiTitle !== null && uiTitle !== void 0 ? uiTitle : title2) !== null && _a !== void 0 ? _a : name;
+ const label = (_a2 = uiTitle !== null && uiTitle !== void 0 ? uiTitle : title2) !== null && _a2 !== void 0 ? _a2 : name;
const Widget = getWidget(schema, widget, widgets2);
return jsxRuntimeExports.jsx(Widget, { options: { ...options2, enumOptions }, schema, uiSchema, id: idSchema.$id, name, label, hideLabel: !displayLabel, hideError, value: formData, onChange: onChange2, onBlur, onFocus: onFocus2, required: required2, disabled, readonly, formContext, autofocus, registry, placeholder, rawErrors });
}
@@ -48206,13 +48701,13 @@ function AltDateTimeWidget({ time = true, ...props }) {
return jsxRuntimeExports.jsx(AltDateWidget2, { time, ...props });
}
function CheckboxWidget({ schema, uiSchema, options: options2, id, value, disabled, readonly, label, hideLabel, autofocus = false, onBlur, onFocus: onFocus2, onChange: onChange2, registry }) {
- var _a;
+ var _a2;
const DescriptionFieldTemplate = getTemplate("DescriptionFieldTemplate", registry, options2);
const required2 = schemaRequiresTrueValue(schema);
const handleChange = reactExports.useCallback((event) => onChange2(event.target.checked), [onChange2]);
const handleBlur = reactExports.useCallback((event) => onBlur(id, event.target.checked), [onBlur, id]);
const handleFocus = reactExports.useCallback((event) => onFocus2(id, event.target.checked), [onFocus2, id]);
- const description2 = (_a = options2.description) !== null && _a !== void 0 ? _a : schema.description;
+ const description2 = (_a2 = options2.description) !== null && _a2 !== void 0 ? _a2 : schema.description;
return jsxRuntimeExports.jsxs("div", { className: `checkbox ${disabled || readonly ? "disabled" : ""}`, children: [!hideLabel && !!description2 && jsxRuntimeExports.jsx(DescriptionFieldTemplate, { id: descriptionId(id), description: description2, schema, uiSchema, registry }), jsxRuntimeExports.jsxs("label", { children: [jsxRuntimeExports.jsx("input", { type: "checkbox", id, name: id, checked: typeof value === "undefined" ? false : value, required: required2, disabled: disabled || readonly, autoFocus: autofocus, onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, "aria-describedby": ariaDescribedByIds(id) }), labelValue(jsxRuntimeExports.jsx("span", { children: label }), hideLabel)] })] });
}
function CheckboxesWidget({ id, disabled, options: { inline: inline2 = false, enumOptions, enumDisabled, emptyValue }, value, autofocus = false, readonly, onChange: onChange2, onBlur, onFocus: onFocus2 }) {
@@ -48267,8 +48762,8 @@ function processFile(file) {
const reader = new window.FileReader();
reader.onerror = reject;
reader.onload = (event) => {
- var _a;
- if (typeof ((_a = event.target) === null || _a === void 0 ? void 0 : _a.result) === "string") {
+ var _a2;
+ if (typeof ((_a2 = event.target) === null || _a2 === void 0 ? void 0 : _a2.result) === "string") {
resolve({
dataURL: addNameToDataURL(event.target.result, name),
name,
@@ -48762,7 +49257,7 @@ let Form$1 = class Form extends reactExports.Component {
* @returns - The new state for the `Form`
*/
getStateFromProps(props, inputFormData, retrievedSchema, isSchemaChanged = false) {
- var _a;
+ var _a2;
const state = this.state || {};
const schema = "schema" in props ? props.schema : this.props.schema;
const uiSchema = ("uiSchema" in props ? props.uiSchema : this.props.uiSchema) || {};
@@ -48802,7 +49297,7 @@ let Form$1 = class Form extends reactExports.Component {
if (retrievedSchema === void 0) {
errorSchema = schemaValidation.errorSchema;
} else {
- errorSchema = mergeObjects((_a = this.state) === null || _a === void 0 ? void 0 : _a.errorSchema, schemaValidation.errorSchema, "preventDuplicates");
+ errorSchema = mergeObjects((_a2 = this.state) === null || _a2 === void 0 ? void 0 : _a2.errorSchema, schemaValidation.errorSchema, "preventDuplicates");
}
schemaValidationErrors = errors;
schemaValidationErrorSchema = errorSchema;
@@ -48889,7 +49384,7 @@ let Form$1 = class Form extends reactExports.Component {
}
/** Returns the registry for the form */
getRegistry() {
- var _a;
+ var _a2;
const { translateString: customTranslateString, uiSchema = {} } = this.props;
const { schemaUtils } = this.state;
const { fields: fields2, templates: templates2, widgets: widgets2, formContext, translateString } = getDefaultRegistry();
@@ -48900,7 +49395,7 @@ let Form$1 = class Form extends reactExports.Component {
...this.props.templates,
ButtonTemplates: {
...templates2.ButtonTemplates,
- ...(_a = this.props.templates) === null || _a === void 0 ? void 0 : _a.ButtonTemplates
+ ...(_a2 = this.props.templates) === null || _a2 === void 0 ? void 0 : _a2.ButtonTemplates
}
},
widgets: { ...widgets2, ...this.props.widgets },
@@ -48987,17 +49482,8 @@ class Country {
this.useVatWithoutUstId = item.useVatWithoutUstId;
}
}
-var __defProp$8 = Object.defineProperty;
-var __getOwnPropDesc$8 = Object.getOwnPropertyDescriptor;
-var __decorateClass$8 = (decorators, target, key, kind) => {
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$8(target, key) : target;
- for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
- if (decorator = decorators[i2])
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
- if (kind && result) __defProp$8(target, key, result);
- return result;
-};
-let CountryService = class {
+_CountryService_decorators = [singleton(), autoInjectable()];
+class CountryService {
async getCountry(shop) {
return await axios.get("/apps/api/country/by/shop/" + shop.uuid).then((response) => {
return response.data.data.map((item) => {
@@ -49007,11 +49493,10 @@ let CountryService = class {
});
});
}
-};
-CountryService = __decorateClass$8([
- singleton(),
- autoInjectable()
-], CountryService);
+}
+_init4 = __decoratorStart(null);
+CountryService = __decorateElement(_init4, 0, "CountryService", _CountryService_decorators, CountryService);
+__runInitializers(_init4, 1, CountryService);
const ContactModal = NiceModal.create(
({ title: title2, action, contact, shop }) => {
const country_api = new CountryService();
@@ -49117,45 +49602,36 @@ const ContactModal = NiceModal.create(
] });
}
);
-var __defProp$7 = Object.defineProperty;
-var __getOwnPropDesc$7 = Object.getOwnPropertyDescriptor;
-var __decorateClass$7 = (decorators, target, key, kind) => {
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$7(target, key) : target;
- for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
- if (decorator = decorators[i2])
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
- if (kind && result) __defProp$7(target, key, result);
- return result;
-};
-let AddressService = class {
+_AddressService_decorators = [singleton(), autoInjectable()];
+class AddressService {
constructor(token2) {
this.token = token2;
}
async create(address) {
- var _a;
+ var _a2;
return await axios.post("/apps/api/contact/address/create", { "address": address }, {
headers: {
- "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
+ "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
}
}).then((response) => {
return response.data;
});
}
async update(address) {
- var _a;
+ var _a2;
return await axios.put("/apps/api/contact/address/update/" + address.uuid, { "address": address }, {
headers: {
- "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
+ "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
}
}).then((response) => {
return response.data;
});
}
async getContactAddress(contact, type2) {
- var _a;
+ var _a2;
return await axios.get("/apps/api/contact/address/getallfortype/" + contact + "/" + type2, {
headers: {
- "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
+ "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
}
}).then((response) => {
return response.data.data.map((item) => {
@@ -49176,11 +49652,10 @@ let AddressService = class {
});
});
}
-};
-AddressService = __decorateClass$7([
- singleton(),
- autoInjectable()
-], AddressService);
+}
+_init5 = __decoratorStart(null);
+AddressService = __decorateElement(_init5, 0, "AddressService", _AddressService_decorators, AddressService);
+__runInitializers(_init5, 1, AddressService);
const ContactModalComponent = ({ shop, handleAdd, handleEdit, contact }) => {
const contactModal = useModal(ContactModal);
const showAddModal = reactExports.useCallback(() => {
@@ -50619,7 +51094,7 @@ function requireUseStateManagerCe23061c_cjs_prod() {
var _objectSpread3 = requireObjectSpread2();
var _slicedToArray2 = requireSlicedToArray();
var _objectWithoutProperties2 = requireObjectWithoutProperties();
- var React2 = requireReact();
+ var React2 = requireReact$1();
var _excluded3 = ["defaultInputValue", "defaultMenuIsOpen", "defaultValue", "inputValue", "menuIsOpen", "onChange", "onInputChange", "onMenuClose", "onMenuOpen", "value"];
function useStateManager2(_ref3) {
var _ref$defaultInputValu = _ref3.defaultInputValue, defaultInputValue = _ref$defaultInputValu === void 0 ? "" : _ref$defaultInputValu, _ref$defaultMenuIsOpe = _ref3.defaultMenuIsOpen, defaultMenuIsOpen = _ref$defaultMenuIsOpe === void 0 ? false : _ref$defaultMenuIsOpe, _ref$defaultValue = _ref3.defaultValue, defaultValue = _ref$defaultValue === void 0 ? null : _ref$defaultValue, propsInputValue = _ref3.inputValue, propsMenuIsOpen = _ref3.menuIsOpen, propsOnChange = _ref3.onChange, propsOnInputChange = _ref3.onInputChange, propsOnMenuClose = _ref3.onMenuClose, propsOnMenuOpen = _ref3.onMenuOpen, propsValue = _ref3.value, restSelectProps = _objectWithoutProperties2(_ref3, _excluded3);
@@ -51547,7 +52022,7 @@ function requireIndex665c4ed8_cjs_prod() {
var _typeof2 = require_typeof();
var _taggedTemplateLiteral2 = requireTaggedTemplateLiteral();
var _defineProperty2 = requireDefineProperty();
- var React2 = requireReact();
+ var React2 = requireReact$1();
var reactDom2 = requireReactDom();
var dom = require$$10$1;
var useLayoutEffect = require$$11;
@@ -52626,7 +53101,7 @@ function requireSelect36d15f93_cjs_prod() {
var _inherits2 = requireInherits();
var _createSuper2 = requireCreateSuper();
var _toConsumableArray2 = requireToConsumableArray();
- var React2 = requireReact();
+ var React2 = requireReact$1();
var index2 = /* @__PURE__ */ requireIndex665c4ed8_cjs_prod();
var react2 = require$$4;
var memoizeOne2 = require$$10;
@@ -54955,7 +55430,7 @@ function requireReactSelect_cjs_prod() {
Object.defineProperty(exports, "__esModule", { value: true });
var useStateManager2 = /* @__PURE__ */ requireUseStateManagerCe23061c_cjs_prod();
var _extends2 = require_extends();
- var React2 = requireReact();
+ var React2 = requireReact$1();
var Select2 = /* @__PURE__ */ requireSelect36d15f93_cjs_prod();
var react2 = require$$4;
var createCache3 = require$$5;
@@ -55355,25 +55830,16 @@ AddressSelect.propTypes = {
changeAddress: propTypesExports.func,
name: propTypesExports.string
};
-var __defProp$6 = Object.defineProperty;
-var __getOwnPropDesc$6 = Object.getOwnPropertyDescriptor;
-var __decorateClass$6 = (decorators, target, key, kind) => {
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$6(target, key) : target;
- for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
- if (decorator = decorators[i2])
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
- if (kind && result) __defProp$6(target, key, result);
- return result;
-};
-let AccountService = class {
+_AccountService_decorators = [singleton(), autoInjectable()];
+class AccountService {
constructor(token2) {
this.token = token2;
}
async getAccounts(shop) {
- var _a;
+ var _a2;
return await axios.get("/apps/api/account/allbyshop/" + shop.uuid, {
headers: {
- "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
+ "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
}
}).then((response) => {
return response.data.data.map((item) => {
@@ -55386,11 +55852,10 @@ let AccountService = class {
});
});
}
-};
-AccountService = __decorateClass$6([
- singleton(),
- autoInjectable()
-], AccountService);
+}
+_init6 = __decoratorStart(null);
+AccountService = __decorateElement(_init6, 0, "AccountService", _AccountService_decorators, AccountService);
+__runInitializers(_init6, 1, AccountService);
const AccountSelectComponent = ({ shop, order }) => {
const [shopUuid, setShopUuid] = reactExports.useState(null);
const [account, setAccount] = reactExports.useState(0);
@@ -55549,22 +56014,12 @@ const TypeSelectComponent = ({ order }) => {
}
) });
};
-var __defProp$5 = Object.defineProperty;
-var __getOwnPropDesc$5 = Object.getOwnPropertyDescriptor;
-var __decorateClass$5 = (decorators, target, key, kind) => {
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$5(target, key) : target;
- for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
- if (decorator = decorators[i2])
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
- if (kind && result) __defProp$5(target, key, result);
- return result;
-};
-let ShopService = class {
+_ShopService_decorators = [singleton(), autoInjectable()];
+class ShopService {
constructor(token2) {
- this.token = token2;
+ console.log(token2);
}
async getShops() {
- console.log(this.token);
return await axios.get("/apps/api/shops", {
headers: {
"Authorization": "Bearer " + this.token.currentToken
@@ -55577,15 +56032,16 @@ let ShopService = class {
});
});
}
-};
-ShopService = __decorateClass$5([
- singleton(),
- autoInjectable()
-], ShopService);
+}
+_init7 = __decoratorStart(null);
+ShopService = __decorateElement(_init7, 0, "ShopService", _ShopService_decorators, ShopService);
+__runInitializers(_init7, 1, ShopService);
const ShopSelectComponent = (props) => {
const orderState = instance.resolve(OrderState);
const shop_service = instance.resolve(ShopService);
+ const token_service = instance.resolve(Token);
const loadOptions = async (searchQuery, loadedOptions) => {
+ console.log(token_service);
const data2 = await shop_service.getShops();
return {
options: data2,
@@ -55630,25 +56086,16 @@ const DraftComponent = ({ order }) => {
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ms-3 text-sm font-medium text-gray-900 dark:text-gray-300", children: "Entwurf" })
] }) });
};
-var __defProp$4 = Object.defineProperty;
-var __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor;
-var __decorateClass$4 = (decorators, target, key, kind) => {
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target;
- for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
- if (decorator = decorators[i2])
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
- if (kind && result) __defProp$4(target, key, result);
- return result;
-};
-let OrderService = class {
+_OrderService_decorators = [singleton(), autoInjectable()];
+class OrderService {
constructor(token2) {
this.token = token2;
}
async getOrder(uuid) {
- var _a;
+ var _a2;
return await axios.post("/apps/api/order/getonebyuuid", { uuid }, {
headers: {
- "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
+ "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
}
}).then((response) => {
let order = new Order();
@@ -55657,30 +56104,29 @@ let OrderService = class {
});
}
async saveOrder(order) {
- var _a;
+ var _a2;
return await axios.post("/apps/api/order/create", order, {
headers: {
- "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
+ "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
}
}).then((response) => {
return response.data;
});
}
async calcOrder(order) {
- var _a;
+ var _a2;
return await axios.post("/apps/api/order/calc", order, {
headers: {
- "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
+ "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
}
}).then((response) => {
return response.data;
});
}
-};
-OrderService = __decorateClass$4([
- singleton(),
- autoInjectable()
-], OrderService);
+}
+_init8 = __decoratorStart(null);
+OrderService = __decorateElement(_init8, 0, "OrderService", _OrderService_decorators, OrderService);
+__runInitializers(_init8, 1, OrderService);
const Currency = ({ price }) => {
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: Intl.NumberFormat("de-DE", {
style: "currency",
@@ -55742,17 +56188,8 @@ class ProductGroup {
}
//options: ProductGroup[] = []
}
-var __defProp$3 = Object.defineProperty;
-var __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor;
-var __decorateClass$3 = (decorators, target, key, kind) => {
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target;
- for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
- if (decorator = decorators[i2])
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
- if (kind && result) __defProp$3(target, key, result);
- return result;
-};
-let ProductGroupService = class {
+_ProductGroupService_decorators = [singleton(), autoInjectable()];
+class ProductGroupService {
constructor(token2) {
this.token = token2;
}
@@ -55781,11 +56218,10 @@ let ProductGroupService = class {
return temp;
});
}
-};
-ProductGroupService = __decorateClass$3([
- singleton(),
- autoInjectable()
-], ProductGroupService);
+}
+_init9 = __decoratorStart(null);
+ProductGroupService = __decorateElement(_init9, 0, "ProductGroupService", _ProductGroupService_decorators, ProductGroupService);
+__runInitializers(_init9, 1, ProductGroupService);
var reactSelectAsync_cjs = { exports: {} };
var reactSelectAsync_cjs_prod = {};
var useAsyncBe659a57_cjs_prod = {};
@@ -55797,7 +56233,7 @@ function requireUseAsyncBe659a57_cjs_prod() {
var _objectSpread3 = requireObjectSpread2();
var _slicedToArray2 = requireSlicedToArray();
var _objectWithoutProperties2 = requireObjectWithoutProperties();
- var React2 = requireReact();
+ var React2 = requireReact$1();
var index2 = /* @__PURE__ */ requireIndex665c4ed8_cjs_prod();
var _excluded3 = ["defaultOptions", "cacheOptions", "loadOptions", "options", "isLoading", "onInputChange", "filterOption"];
function useAsync(_ref3) {
@@ -55900,7 +56336,7 @@ function requireReactSelectAsync_cjs_prod() {
(function(exports) {
Object.defineProperty(exports, "__esModule", { value: true });
var _extends2 = require_extends();
- var React2 = requireReact();
+ var React2 = requireReact$1();
var Select2 = /* @__PURE__ */ requireSelect36d15f93_cjs_prod();
var useStateManager2 = /* @__PURE__ */ requireUseStateManagerCe23061c_cjs_prod();
var useAsync = /* @__PURE__ */ requireUseAsyncBe659a57_cjs_prod();
@@ -55997,25 +56433,16 @@ ProductGroupSelect.propTypes = {
value: propTypesExports.instanceOf(ProductGroup),
onChange: propTypesExports.func
};
-var __defProp$2 = Object.defineProperty;
-var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
-var __decorateClass$2 = (decorators, target, key, kind) => {
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;
- for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
- if (decorator = decorators[i2])
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
- if (kind && result) __defProp$2(target, key, result);
- return result;
-};
-let ProductService = class {
+_ProductService_decorators = [singleton(), autoInjectable()];
+class ProductService {
constructor(token2) {
this.token = token2;
}
async getProductsByTerm(term, shop) {
- var _a;
+ var _a2;
return await axios.get("/apps/api/product/getallbyterm/" + shop.uuid + "/" + term, {
headers: {
- "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
+ "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
}
}).then((response) => {
return response.data.data.map((item) => {
@@ -56029,10 +56456,10 @@ let ProductService = class {
});
}
async getProducts(productGroup) {
- var _a;
+ var _a2;
return await axios.get("/apps/api/product/getallbyproductgroup/" + productGroup.uuid, {
headers: {
- "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
+ "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
}
}).then((response) => {
return response.data.data.map((item) => {
@@ -56046,30 +56473,29 @@ let ProductService = class {
});
}
async getAddProductSchema(product, formData) {
- var _a;
+ var _a2;
return await axios.post("/apps/api/product/get/form/json/" + product.uuid, formData, {
headers: {
- "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
+ "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
}
}).then((response) => {
return response.data;
});
}
async calcProduct(product, formData) {
- var _a;
+ var _a2;
return await axios.post("/apps/api/product/get/form/json/" + product.uuid, formData, {
headers: {
- "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
+ "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
}
}).then((response) => {
return response.data;
});
}
-};
-ProductService = __decorateClass$2([
- singleton(),
- autoInjectable()
-], ProductService);
+}
+_init10 = __decoratorStart(null);
+ProductService = __decorateElement(_init10, 0, "ProductService", _ProductService_decorators, ProductService);
+__runInitializers(_init10, 1, ProductService);
function c(e2, u2, c2) {
var i2 = this, a2 = reactExports.useRef(null), o2 = reactExports.useRef(0), f2 = reactExports.useRef(null), l2 = reactExports.useRef([]), v2 = reactExports.useRef(), m2 = reactExports.useRef(), d2 = reactExports.useRef(e2), g2 = reactExports.useRef(true);
d2.current = e2;
@@ -56403,7 +56829,7 @@ ItemsComponent.propTypes = {
shop: propTypesExports.instanceOf(Shop)
};
const PositionsComponent = ({ order, shop, updateOrder }) => {
- const orderState = instance.resolve(OrderState);
+ const orderState = container.resolve(OrderState);
const [positions, setPositions] = reactExports.useState(order.positions);
const addPos = (posObj) => {
setPositions([...positions, posObj]);
@@ -56437,25 +56863,16 @@ PositionsComponent.propTypes = {
order: propTypesExports.instanceOf(Order),
updateOrder: propTypesExports.func
};
-var __defProp$1 = Object.defineProperty;
-var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
-var __decorateClass$1 = (decorators, target, key, kind) => {
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target;
- for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
- if (decorator = decorators[i2])
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
- if (kind && result) __defProp$1(target, key, result);
- return result;
-};
-let PaymentService = class {
+_PaymentService_decorators = [singleton(), autoInjectable()];
+class PaymentService {
constructor(token2) {
this.token = token2;
}
async getPayments(shop) {
- var _a;
+ var _a2;
return await axios.get("/apps/api/payment/by/shop/" + shop.uuid, {
headers: {
- "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
+ "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
}
}).then((response) => {
return response.data.data.map((item) => {
@@ -56467,11 +56884,10 @@ let PaymentService = class {
});
});
}
-};
-PaymentService = __decorateClass$1([
- singleton(),
- autoInjectable()
-], PaymentService);
+}
+_init11 = __decoratorStart(null);
+PaymentService = __decorateElement(_init11, 0, "PaymentService", _PaymentService_decorators, PaymentService);
+__runInitializers(_init11, 1, PaymentService);
const PaymentComponent = ({ shop, order }) => {
const [shopUuid, setShopUuid] = reactExports.useState(null);
const orderState = instance.resolve(OrderState);
@@ -56519,25 +56935,16 @@ PaymentComponent.propTypes = {
shop: propTypesExports.instanceOf(Shop),
order: propTypesExports.instanceOf(Order)
};
-var __defProp2 = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __decorateClass = (decorators, target, key, kind) => {
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
- for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
- if (decorator = decorators[i2])
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
- if (kind && result) __defProp2(target, key, result);
- return result;
-};
-let ShippingService = class {
+_ShippingService_decorators = [singleton(), autoInjectable()];
+class ShippingService {
constructor(token2) {
this.token = token2;
}
async getShipping(shop) {
- var _a;
+ var _a2;
return await axios.get("/apps/api/shipping/by/shop/" + shop.uuid, {
headers: {
- "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
+ "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
}
}).then((response) => {
return response.data.data.map((item) => {
@@ -56549,11 +56956,10 @@ let ShippingService = class {
});
});
}
-};
-ShippingService = __decorateClass([
- singleton(),
- autoInjectable()
-], ShippingService);
+}
+_init12 = __decoratorStart(null);
+ShippingService = __decorateElement(_init12, 0, "ShippingService", _ShippingService_decorators, ShippingService);
+__runInitializers(_init12, 1, ShippingService);
const ShippingComponent = ({ shop, order }) => {
const [shopUuid, setShopUuid] = reactExports.useState(null);
const orderState = instance.resolve(OrderState);
@@ -56631,11 +57037,11 @@ class ButtonComponent extends reactExports.Component {
render() {
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex gap-3", children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs(Button$1, { size: "xs", color: "info", disabled: this.state.disabled, onClick: (e2) => this.handleSave(e2), children: [
- /* @__PURE__ */ jsxRuntimeExports.jsx(RiSaveFill, { className: "mr-2 h-5 w-5" }),
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mr-2 h-5 w-5" }),
" Speichern"
] }),
/* @__PURE__ */ jsxRuntimeExports.jsxs(Button$1, { size: "xs", color: "success", disabled: !this.orderState.getCurrentOrder().value.saved, onClick: (e2) => this.handlePrint(e2), children: [
- /* @__PURE__ */ jsxRuntimeExports.jsx(RiPrinterFill, { className: "mr-2 h-5 w-5" }),
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mr-2 h-5 w-5" }),
" Drucken"
] })
] });
@@ -56802,7 +57208,7 @@ function requireDist() {
}
requireDist();
/**
- * react-router v7.0.2
+ * react-router v7.1.0
*
* Copyright (c) Remix Software Inc.
*
@@ -57084,8 +57490,8 @@ function flattenRoutes(routes, branches = [], parentsMeta = [], parentPath = "")
});
};
routes.forEach((route, index2) => {
- var _a;
- if (route.path === "" || !((_a = route.path) == null ? void 0 : _a.includes("?"))) {
+ var _a2;
+ if (route.path === "" || !((_a2 = route.path) == null ? void 0 : _a2.includes("?"))) {
flattenRoute(route, index2);
} else {
for (let exploded of explodeOptionalSegments(route.path)) {
@@ -57535,7 +57941,7 @@ function useRoutes(routes, locationArg) {
return useRoutesImpl(routes, locationArg);
}
function useRoutesImpl(routes, locationArg, dataRouterState, future) {
- var _a;
+ var _a2;
invariant(
useInRouterContext(),
// TODO: This error is probably because they somehow have 2 versions of the
@@ -57564,7 +57970,7 @@ Please change the parent to \` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${parentPathnameBase}" but pathname "${parsedLocationArg.pathname}" was given in the \`location\` prop.`
);
location = parsedLocationArg;
@@ -57849,7 +58255,7 @@ function useRouteId() {
);
}
function useRouteError() {
- var _a;
+ var _a2;
let error = reactExports.useContext(RouteErrorContext);
let state = useDataRouterState(
"useRouteError"
@@ -57862,7 +58268,7 @@ function useRouteError() {
if (error !== void 0) {
return error;
}
- return (_a = state.errors) == null ? void 0 : _a[routeId];
+ return (_a2 = state.errors) == null ? void 0 : _a2[routeId];
}
function useNavigateStable() {
let { router } = useDataRouterContext(
@@ -58191,12 +58597,12 @@ function getNewMatchesForLinks(page, nextMatches, currentMatches, manifest, loca
return match2.route.id !== currentMatches[index2].route.id;
};
let matchPathChanged = (match2, index2) => {
- var _a;
+ var _a2;
return (
// param change, /users/123 -> /users/456
currentMatches[index2].pathname !== match2.pathname || // splat param changed, which is not present in match.path
// e.g. /files/images/avatar.jpg -> files/finances.xls
- ((_a = currentMatches[index2].route.path) == null ? void 0 : _a.endsWith("*")) && currentMatches[index2].params["*"] !== match2.params["*"]
+ ((_a2 = currentMatches[index2].route.path) == null ? void 0 : _a2.endsWith("*")) && currentMatches[index2].params["*"] !== match2.params["*"]
);
};
if (mode === "assets") {
@@ -58206,7 +58612,7 @@ function getNewMatchesForLinks(page, nextMatches, currentMatches, manifest, loca
}
if (mode === "data") {
return nextMatches.filter((match2, index2) => {
- var _a;
+ var _a2;
let manifestRoute = manifest.routes[match2.route.id];
if (!manifestRoute || !manifestRoute.hasLoader) {
return false;
@@ -58220,7 +58626,7 @@ function getNewMatchesForLinks(page, nextMatches, currentMatches, manifest, loca
location.pathname + location.search + location.hash,
window.origin
),
- currentParams: ((_a = currentMatches[0]) == null ? void 0 : _a.params) || {},
+ currentParams: ((_a2 = currentMatches[0]) == null ? void 0 : _a2.params) || {},
nextUrl: new URL(page, window.origin),
nextParams: match2.params,
defaultShouldRevalidate: true
@@ -58386,7 +58792,6 @@ function PrefetchPageLinks({
[router.routes, page, router.basename]
);
if (!matches2) {
- console.warn(`Tried to prefetch ${page} but no routes matched.`);
return null;
}
return /* @__PURE__ */ reactExports.createElement(PrefetchPageLinksImpl, { page, matches: matches2, ...dataLinkProps });
@@ -58446,12 +58851,12 @@ function PrefetchPageLinksImpl({
let routesParams = /* @__PURE__ */ new Set();
let foundOptOutRoute = false;
nextMatches.forEach((m2) => {
- var _a;
+ var _a2;
let manifestRoute = manifest.routes[m2.route.id];
if (!manifestRoute || !manifestRoute.hasLoader) {
return;
}
- if (!newMatchesForData.some((m22) => m22.route.id === m2.route.id) && m2.route.id in loaderData && ((_a = routeModules[m2.route.id]) == null ? void 0 : _a.shouldRevalidate)) {
+ if (!newMatchesForData.some((m22) => m22.route.id === m2.route.id) && m2.route.id in loaderData && ((_a2 = routeModules[m2.route.id]) == null ? void 0 : _a2.shouldRevalidate)) {
foundOptOutRoute = true;
} else if (manifestRoute.hasClientLoader) {
foundOptOutRoute = true;
@@ -58504,7 +58909,7 @@ function mergeRefs(...refs) {
var isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined";
try {
if (isBrowser) {
- window.__reactRouterVersion = "7.0.2";
+ window.__reactRouterVersion = "7.1.0";
}
} catch (e2) {
}
@@ -58949,7 +59354,7 @@ class App {
constructor(jwt) {
__publicField(this, "searchParams");
__publicField(this, "setSearchParams");
- let token2 = instance.resolve(Token);
+ let token2 = instance.resolve(Token$1);
console.log(jwt);
token2.currentToken = jwt;
token2.init();
@@ -58972,4 +59377,4 @@ class App {
let app = new App(jwt_token);
app.init();
app.run();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVmbGVjdC1tZXRhZGF0YUAwLjIuMi9ub2RlX21vZHVsZXMvcmVmbGVjdC1tZXRhZGF0YS9SZWZsZWN0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdEAxOC4zLjEvbm9kZV9tb2R1bGVzL3JlYWN0L2Nqcy9yZWFjdC5wcm9kdWN0aW9uLm1pbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3RAMTguMy4xL25vZGVfbW9kdWxlcy9yZWFjdC9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3RAMTguMy4xL25vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QtanN4LXJ1bnRpbWUucHJvZHVjdGlvbi5taW4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3JlYWN0QDE4LjMuMS9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9iaW5kLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL3V0aWxzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvQXhpb3NFcnJvci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL251bGwuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy90b0Zvcm1EYXRhLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvQXhpb3NVUkxTZWFyY2hQYXJhbXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9idWlsZFVSTC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL0ludGVyY2VwdG9yTWFuYWdlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9kZWZhdWx0cy90cmFuc2l0aW9uYWwuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvcGxhdGZvcm0vYnJvd3Nlci9jbGFzc2VzL1VSTFNlYXJjaFBhcmFtcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9wbGF0Zm9ybS9icm93c2VyL2NsYXNzZXMvRm9ybURhdGEuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvcGxhdGZvcm0vYnJvd3Nlci9jbGFzc2VzL0Jsb2IuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvcGxhdGZvcm0vYnJvd3Nlci9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9wbGF0Zm9ybS9jb21tb24vdXRpbHMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvcGxhdGZvcm0vaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy90b1VSTEVuY29kZWRGb3JtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvZm9ybURhdGFUb0pTT04uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvZGVmYXVsdHMvaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9wYXJzZUhlYWRlcnMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9BeGlvc0hlYWRlcnMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS90cmFuc2Zvcm1EYXRhLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NhbmNlbC9pc0NhbmNlbC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jYW5jZWwvQ2FuY2VsZWRFcnJvci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL3NldHRsZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3BhcnNlUHJvdG9jb2wuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9zcGVlZG9tZXRlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3Rocm90dGxlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvcHJvZ3Jlc3NFdmVudFJlZHVjZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9pc1VSTFNhbWVPcmlnaW4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9jb29raWVzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvaXNBYnNvbHV0ZVVSTC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL2NvbWJpbmVVUkxzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvYnVpbGRGdWxsUGF0aC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL21lcmdlQ29uZmlnLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvcmVzb2x2ZUNvbmZpZy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9hZGFwdGVycy94aHIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9jb21wb3NlU2lnbmFscy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3RyYWNrU3RyZWFtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2FkYXB0ZXJzL2ZldGNoLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2FkYXB0ZXJzL2FkYXB0ZXJzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvZGlzcGF0Y2hSZXF1ZXN0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2Vudi9kYXRhLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvdmFsaWRhdG9yLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvQXhpb3MuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvY2FuY2VsL0NhbmNlbFRva2VuLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvc3ByZWFkLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvaXNBeGlvc0Vycm9yLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvSHR0cFN0YXR1c0NvZGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvYXhpb3MuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3RzeXJpbmdlQDQuOC4wL25vZGVfbW9kdWxlcy90c3lyaW5nZS9kaXN0L2VzbTUvdHlwZXMvbGlmZWN5Y2xlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby90c2xpYkAxLjE0LjEvbm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vdHN5cmluZ2VANC44LjAvbm9kZV9tb2R1bGVzL3RzeXJpbmdlL2Rpc3QvZXNtNS9yZWZsZWN0aW9uLWhlbHBlcnMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3RzeXJpbmdlQDQuOC4wL25vZGVfbW9kdWxlcy90c3lyaW5nZS9kaXN0L2VzbTUvcHJvdmlkZXJzL2NsYXNzLXByb3ZpZGVyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby90c3lyaW5nZUA0LjguMC9ub2RlX21vZHVsZXMvdHN5cmluZ2UvZGlzdC9lc201L3Byb3ZpZGVycy9mYWN0b3J5LXByb3ZpZGVyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby90c3lyaW5nZUA0LjguMC9ub2RlX21vZHVsZXMvdHN5cmluZ2UvZGlzdC9lc201L2xhenktaGVscGVycy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vdHN5cmluZ2VANC44LjAvbm9kZV9tb2R1bGVzL3RzeXJpbmdlL2Rpc3QvZXNtNS9wcm92aWRlcnMvaW5qZWN0aW9uLXRva2VuLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby90c3lyaW5nZUA0LjguMC9ub2RlX21vZHVsZXMvdHN5cmluZ2UvZGlzdC9lc201L3Byb3ZpZGVycy90b2tlbi1wcm92aWRlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vdHN5cmluZ2VANC44LjAvbm9kZV9tb2R1bGVzL3RzeXJpbmdlL2Rpc3QvZXNtNS9wcm92aWRlcnMvdmFsdWUtcHJvdmlkZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3RzeXJpbmdlQDQuOC4wL25vZGVfbW9kdWxlcy90c3lyaW5nZS9kaXN0L2VzbTUvcHJvdmlkZXJzL3Byb3ZpZGVyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby90c3lyaW5nZUA0LjguMC9ub2RlX21vZHVsZXMvdHN5cmluZ2UvZGlzdC9lc201L3JlZ2lzdHJ5LWJhc2UuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3RzeXJpbmdlQDQuOC4wL25vZGVfbW9kdWxlcy90c3lyaW5nZS9kaXN0L2VzbTUvcmVnaXN0cnkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3RzeXJpbmdlQDQuOC4wL25vZGVfbW9kdWxlcy90c3lyaW5nZS9kaXN0L2VzbTUvcmVzb2x1dGlvbi1jb250ZXh0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby90c3lyaW5nZUA0LjguMC9ub2RlX21vZHVsZXMvdHN5cmluZ2UvZGlzdC9lc201L2Vycm9yLWhlbHBlcnMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3RzeXJpbmdlQDQuOC4wL25vZGVfbW9kdWxlcy90c3lyaW5nZS9kaXN0L2VzbTUvdHlwZXMvZGlzcG9zYWJsZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vdHN5cmluZ2VANC44LjAvbm9kZV9tb2R1bGVzL3RzeXJpbmdlL2Rpc3QvZXNtNS9pbnRlcmNlcHRvcnMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3RzeXJpbmdlQDQuOC4wL25vZGVfbW9kdWxlcy90c3lyaW5nZS9kaXN0L2VzbTUvZGVwZW5kZW5jeS1jb250YWluZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3RzeXJpbmdlQDQuOC4wL25vZGVfbW9kdWxlcy90c3lyaW5nZS9kaXN0L2VzbTUvZGVjb3JhdG9ycy9hdXRvLWluamVjdGFibGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3RzeXJpbmdlQDQuOC4wL25vZGVfbW9kdWxlcy90c3lyaW5nZS9kaXN0L2VzbTUvZGVjb3JhdG9ycy9pbmplY3RhYmxlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby90c3lyaW5nZUA0LjguMC9ub2RlX21vZHVsZXMvdHN5cmluZ2UvZGlzdC9lc201L2RlY29yYXRvcnMvc2luZ2xldG9uLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby90c3lyaW5nZUA0LjguMC9ub2RlX21vZHVsZXMvdHN5cmluZ2UvZGlzdC9lc201L2luZGV4LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9zZXJ2aWNlcy90b2tlbi50cyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vc2NoZWR1bGVyQDAuMjMuMi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3NjaGVkdWxlckAwLjIzLjIvbm9kZV9tb2R1bGVzL3NjaGVkdWxlci9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3QtZG9tQDE4LjMuMS9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3JlYWN0LWRvbUAxOC4zLjEvbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3QtZG9tQDE4LjMuMS9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2NsaWVudC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGViYXkrbmljZS1tb2RhbC1yZWFjdEAxLjIuMTMvbm9kZV9tb2R1bGVzL0BlYmF5L25pY2UtbW9kYWwtcmVhY3QvbGliL2VzbS9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kZWwvc2hvcC50cyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcHJvcC10eXBlc0AxNS44LjEvbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9wcm9wLXR5cGVzQDE1LjguMS9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3Byb3AtdHlwZXNAMTUuOC4xL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b1ByaW1pdGl2ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b1Byb3BlcnR5S2V5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRoSG9sZXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaXRlcmFibGVUb0FycmF5TGltaXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlMaWtlVG9BcnJheS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9ub25JdGVyYWJsZVJlc3QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1zZWxlY3RANS45LjAvbm9kZV9tb2R1bGVzL3JlYWN0LXNlbGVjdC9kaXN0L3VzZVN0YXRlTWFuYWdlci03ZTFlODQ4OS5lc20uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVjay5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVDbGFzcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zZXRQcm90b3R5cGVPZi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pbmhlcml0cy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9nZXRQcm90b3R5cGVPZi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlU3VwZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRob3V0SG9sZXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaXRlcmFibGVUb0FycmF5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL25vbkl0ZXJhYmxlU3ByZWFkLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AZW1vdGlvbitzaGVldEAxLjQuMC9ub2RlX21vZHVsZXMvQGVtb3Rpb24vc2hlZXQvZGlzdC9lbW90aW9uLXNoZWV0LmVzbS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vc3R5bGlzQDQuMi4wL25vZGVfbW9kdWxlcy9zdHlsaXMvc3JjL0VudW0uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3N0eWxpc0A0LjIuMC9ub2RlX21vZHVsZXMvc3R5bGlzL3NyYy9VdGlsaXR5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9zdHlsaXNANC4yLjAvbm9kZV9tb2R1bGVzL3N0eWxpcy9zcmMvVG9rZW5pemVyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9zdHlsaXNANC4yLjAvbm9kZV9tb2R1bGVzL3N0eWxpcy9zcmMvUGFyc2VyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9zdHlsaXNANC4yLjAvbm9kZV9tb2R1bGVzL3N0eWxpcy9zcmMvU2VyaWFsaXplci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vc3R5bGlzQDQuMi4wL25vZGVfbW9kdWxlcy9zdHlsaXMvc3JjL01pZGRsZXdhcmUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BlbW90aW9uK3dlYWstbWVtb2l6ZUAwLjQuMC9ub2RlX21vZHVsZXMvQGVtb3Rpb24vd2Vhay1tZW1vaXplL2Rpc3QvZW1vdGlvbi13ZWFrLW1lbW9pemUuZXNtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AZW1vdGlvbittZW1vaXplQDAuOS4wL25vZGVfbW9kdWxlcy9AZW1vdGlvbi9tZW1vaXplL2Rpc3QvZW1vdGlvbi1tZW1vaXplLmVzbS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGVtb3Rpb24rY2FjaGVAMTEuMTQuMC9ub2RlX21vZHVsZXMvQGVtb3Rpb24vY2FjaGUvZGlzdC9lbW90aW9uLWNhY2hlLmJyb3dzZXIuZXNtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1pc0AxNi4xMy4xL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3JlYWN0LWlzQDE2LjEzLjEvbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2luZGV4LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9ob2lzdC1ub24tcmVhY3Qtc3RhdGljc0AzLjMuMi9ub2RlX21vZHVsZXMvaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3MvZGlzdC9ob2lzdC1ub24tcmVhY3Qtc3RhdGljcy5janMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BlbW90aW9uK3JlYWN0QDExLjE0LjAvbm9kZV9tb2R1bGVzL0BlbW90aW9uL3JlYWN0L19pc29sYXRlZC1obnJzL2Rpc3QvZW1vdGlvbi1yZWFjdC1faXNvbGF0ZWQtaG5ycy5icm93c2VyLmVzbS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGVtb3Rpb24rdXRpbHNAMS40LjIvbm9kZV9tb2R1bGVzL0BlbW90aW9uL3V0aWxzL2Rpc3QvZW1vdGlvbi11dGlscy5icm93c2VyLmVzbS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGVtb3Rpb24raGFzaEAwLjkuMi9ub2RlX21vZHVsZXMvQGVtb3Rpb24vaGFzaC9kaXN0L2Vtb3Rpb24taGFzaC5lc20uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BlbW90aW9uK3VuaXRsZXNzQDAuMTAuMC9ub2RlX21vZHVsZXMvQGVtb3Rpb24vdW5pdGxlc3MvZGlzdC9lbW90aW9uLXVuaXRsZXNzLmVzbS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGVtb3Rpb24rc2VyaWFsaXplQDEuMy4zL25vZGVfbW9kdWxlcy9AZW1vdGlvbi9zZXJpYWxpemUvZGlzdC9lbW90aW9uLXNlcmlhbGl6ZS5lc20uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BlbW90aW9uK3VzZS1pbnNlcnRpb24tZWZmZWN0LXdpdGgtZmFsbGJhY2tzQDEuMi4wL25vZGVfbW9kdWxlcy9AZW1vdGlvbi91c2UtaW5zZXJ0aW9uLWVmZmVjdC13aXRoLWZhbGxiYWNrcy9kaXN0L2Vtb3Rpb24tdXNlLWluc2VydGlvbi1lZmZlY3Qtd2l0aC1mYWxsYmFja3MuYnJvd3Nlci5lc20uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BlbW90aW9uK3JlYWN0QDExLjE0LjAvbm9kZV9tb2R1bGVzL0BlbW90aW9uL3JlYWN0L2Rpc3QvZW1vdGlvbi1lbGVtZW50LWYwZGU5NjhlLmJyb3dzZXIuZXNtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AZW1vdGlvbityZWFjdEAxMS4xNC4wL25vZGVfbW9kdWxlcy9AZW1vdGlvbi9yZWFjdC9kaXN0L2Vtb3Rpb24tcmVhY3QuYnJvd3Nlci5lc20uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdGFnZ2VkVGVtcGxhdGVMaXRlcmFsLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AZmxvYXRpbmctdWkrdXRpbHNAMC4yLjgvbm9kZV9tb2R1bGVzL0BmbG9hdGluZy11aS91dGlscy9kaXN0L2Zsb2F0aW5nLXVpLnV0aWxzLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGZsb2F0aW5nLXVpK2NvcmVAMS42LjYvbm9kZV9tb2R1bGVzL0BmbG9hdGluZy11aS9jb3JlL2Rpc3QvZmxvYXRpbmctdWkuY29yZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BmbG9hdGluZy11aSt1dGlsc0AwLjIuOC9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL3V0aWxzL2Rpc3QvZmxvYXRpbmctdWkudXRpbHMuZG9tLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGZsb2F0aW5nLXVpK2RvbUAxLjYuMTIvbm9kZV9tb2R1bGVzL0BmbG9hdGluZy11aS9kb20vZGlzdC9mbG9hdGluZy11aS5kb20ubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby91c2UtaXNvbW9ycGhpYy1sYXlvdXQtZWZmZWN0QDEuMi4wL25vZGVfbW9kdWxlcy91c2UtaXNvbW9ycGhpYy1sYXlvdXQtZWZmZWN0L2Rpc3QvdXNlLWlzb21vcnBoaWMtbGF5b3V0LWVmZmVjdC5icm93c2VyLmVzbS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3Qtc2VsZWN0QDUuOS4wL25vZGVfbW9kdWxlcy9yZWFjdC1zZWxlY3QvZGlzdC9pbmRleC02NDFlZTViOC5lc20uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL21lbW9pemUtb25lQDYuMC4wL25vZGVfbW9kdWxlcy9tZW1vaXplLW9uZS9kaXN0L21lbW9pemUtb25lLmVzbS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3Qtc2VsZWN0QDUuOS4wL25vZGVfbW9kdWxlcy9yZWFjdC1zZWxlY3QvZGlzdC9TZWxlY3QtYWFiMDI3ZjMuZXNtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1zZWxlY3RANS45LjAvbm9kZV9tb2R1bGVzL3JlYWN0LXNlbGVjdC9kaXN0L3JlYWN0LXNlbGVjdC5lc20uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0B2dGFpdHMrdXNlLWxhenktcmVmQDAuMS4zL25vZGVfbW9kdWxlcy9AdnRhaXRzL3VzZS1sYXp5LXJlZi9kaXN0L2luZGV4LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby91c2UtaXMtbW91bnRlZC1yZWZAMS41LjAvbm9kZV9tb2R1bGVzL3VzZS1pcy1tb3VudGVkLXJlZi9kaXN0L3VzZS1pcy1tb3VudGVkLXJlZi5lcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vdXNlLWxhdGVzdEAxLjMuMC9ub2RlX21vZHVsZXMvdXNlLWxhdGVzdC9kaXN0L3VzZS1sYXRlc3QuZXNtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9rcnVzdHlrcmFiQDEuMS4wL25vZGVfbW9kdWxlcy9rcnVzdHlrcmFiL2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9zbGVlcC1wcm9taXNlQDkuMS4wL25vZGVfbW9kdWxlcy9zbGVlcC1wcm9taXNlL2J1aWxkL2VzbS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BzZXpuYW0rY29tcG9zZS1yZWFjdC1yZWZzQDEuMC42L25vZGVfbW9kdWxlcy9Ac2V6bmFtL2NvbXBvc2UtcmVhY3QtcmVmcy9jb21wb3NlUmVmcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3Qtc2VsZWN0LWFzeW5jLXBhZ2luYXRlQDAuNy43L25vZGVfbW9kdWxlcy9yZWFjdC1zZWxlY3QtYXN5bmMtcGFnaW5hdGUvZGlzdC9lc20vaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZGVsL2NvbnRhY3QudHMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL3NlcnZpY2VzL2NvbnRhY3QudHMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3V1aWRAMTEuMC4zL25vZGVfbW9kdWxlcy91dWlkL2Rpc3QvZXNtLWJyb3dzZXIvc3RyaW5naWZ5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby91dWlkQDExLjAuMy9ub2RlX21vZHVsZXMvdXVpZC9kaXN0L2VzbS1icm93c2VyL3JuZy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vdXVpZEAxMS4wLjMvbm9kZV9tb2R1bGVzL3V1aWQvZGlzdC9lc20tYnJvd3Nlci9uYXRpdmUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3V1aWRAMTEuMC4zL25vZGVfbW9kdWxlcy91dWlkL2Rpc3QvZXNtLWJyb3dzZXIvdjQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZGVsL2FjY291bnQudHMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZGVsL2FkZHJlc3MudHMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZGVsL3Byb2R1Y3QudHMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZGVsL3ByaWNlLnRzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2RlbC9wb3MudHMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZGVsL3BheW1lbnQudHMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZGVsL3NoaXBwaW5nLnRzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2RlbC9vcmRlci50cyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vdHNsaWJAMi44LjEvbm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3J4anNANy44LjEvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9lc201L2ludGVybmFsL3V0aWwvaXNGdW5jdGlvbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcnhqc0A3LjguMS9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2VzbTUvaW50ZXJuYWwvdXRpbC9jcmVhdGVFcnJvckNsYXNzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yeGpzQDcuOC4xL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvZXNtNS9pbnRlcm5hbC91dGlsL1Vuc3Vic2NyaXB0aW9uRXJyb3IuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3J4anNANy44LjEvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9lc201L2ludGVybmFsL3V0aWwvYXJyUmVtb3ZlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yeGpzQDcuOC4xL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvZXNtNS9pbnRlcm5hbC9TdWJzY3JpcHRpb24uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3J4anNANy44LjEvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9lc201L2ludGVybmFsL2NvbmZpZy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcnhqc0A3LjguMS9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2VzbTUvaW50ZXJuYWwvc2NoZWR1bGVyL3RpbWVvdXRQcm92aWRlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcnhqc0A3LjguMS9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2VzbTUvaW50ZXJuYWwvdXRpbC9yZXBvcnRVbmhhbmRsZWRFcnJvci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcnhqc0A3LjguMS9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2VzbTUvaW50ZXJuYWwvdXRpbC9ub29wLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yeGpzQDcuOC4xL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvZXNtNS9pbnRlcm5hbC91dGlsL2Vycm9yQ29udGV4dC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcnhqc0A3LjguMS9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2VzbTUvaW50ZXJuYWwvU3Vic2NyaWJlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcnhqc0A3LjguMS9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2VzbTUvaW50ZXJuYWwvc3ltYm9sL29ic2VydmFibGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3J4anNANy44LjEvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9lc201L2ludGVybmFsL3V0aWwvaWRlbnRpdHkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3J4anNANy44LjEvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9lc201L2ludGVybmFsL3V0aWwvcGlwZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcnhqc0A3LjguMS9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2VzbTUvaW50ZXJuYWwvT2JzZXJ2YWJsZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcnhqc0A3LjguMS9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2VzbTUvaW50ZXJuYWwvdXRpbC9saWZ0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yeGpzQDcuOC4xL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvZXNtNS9pbnRlcm5hbC9vcGVyYXRvcnMvT3BlcmF0b3JTdWJzY3JpYmVyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yeGpzQDcuOC4xL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvZXNtNS9pbnRlcm5hbC91dGlsL09iamVjdFVuc3Vic2NyaWJlZEVycm9yLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yeGpzQDcuOC4xL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvZXNtNS9pbnRlcm5hbC9TdWJqZWN0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yeGpzQDcuOC4xL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvZXNtNS9pbnRlcm5hbC9CZWhhdmlvclN1YmplY3QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3J4anNANy44LjEvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9lc201L2ludGVybmFsL3NjaGVkdWxlci9kYXRlVGltZXN0YW1wUHJvdmlkZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3J4anNANy44LjEvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9lc201L2ludGVybmFsL3NjaGVkdWxlci9BY3Rpb24uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3J4anNANy44LjEvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9lc201L2ludGVybmFsL3NjaGVkdWxlci9pbnRlcnZhbFByb3ZpZGVyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yeGpzQDcuOC4xL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvZXNtNS9pbnRlcm5hbC9zY2hlZHVsZXIvQXN5bmNBY3Rpb24uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3J4anNANy44LjEvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9lc201L2ludGVybmFsL1NjaGVkdWxlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcnhqc0A3LjguMS9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2VzbTUvaW50ZXJuYWwvc2NoZWR1bGVyL0FzeW5jU2NoZWR1bGVyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yeGpzQDcuOC4xL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvZXNtNS9pbnRlcm5hbC9zY2hlZHVsZXIvYXN5bmMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3J4anNANy44LjEvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9lc201L2ludGVybmFsL29wZXJhdG9ycy9kZWJvdW5jZVRpbWUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL3N0YXRlL29yZGVyLnRzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9wcmVhY3RAMTAuMjUuMy9ub2RlX21vZHVsZXMvcHJlYWN0L2Rpc3QvcHJlYWN0Lm1vZHVsZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3QtaWNvbnNANS4yLjEvbm9kZV9tb2R1bGVzL3JlYWN0LWljb25zL2xpYi9pY29uQ29udGV4dC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3JlYWN0LWljb25zQDUuMi4xL25vZGVfbW9kdWxlcy9yZWFjdC1pY29ucy9saWIvaWNvbkJhc2UubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1pY29uc0A1LjIuMS9ub2RlX21vZHVsZXMvcmVhY3QtaWNvbnMvaGkvaW5kZXgubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby90YWlsd2luZC1tZXJnZUAyLjQuMC9ub2RlX21vZHVsZXMvdGFpbHdpbmQtbWVyZ2UvZGlzdC9idW5kbGUtbWpzLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9oZWxwZXJzL2lzLW9iamVjdC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vaGVscGVycy9jbG9uZS1kZWVwLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9oZWxwZXJzL21lcmdlLWRlZXAubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0FjY29yZGlvbi90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9BbGVydC90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9BdmF0YXIvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvQmFkZ2UvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvQmxvY2txdW90ZS90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9CcmVhZGNydW1iL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0J1dHRvbi90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9DYXJkL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0Nhcm91c2VsL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0NoZWNrYm94L3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0NsaXBib2FyZC90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9EYXJrVGhlbWVUb2dnbGUvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRGF0ZXBpY2tlci90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9EcmF3ZXIvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRHJvcGRvd24vdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRmlsZUlucHV0L3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0Zsb2F0aW5nTGFiZWwvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRm9vdGVyL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0hlbHBlclRleHQvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvSFIvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvS2JkL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0xhYmVsL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0xpc3QvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvTGlzdEdyb3VwL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL05hdmJhci90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9NZWdhTWVudS90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9Nb2RhbC90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9QYWdpbmF0aW9uL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1BvcG92ZXIvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvUHJvZ3Jlc3MvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvUmFkaW8vdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvUmFuZ2VTbGlkZXIvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvUmF0aW5nL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1NlbGVjdC90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9TaWRlYmFyL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1NwaW5uZXIvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVGFibGUvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVGFicy90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UZXh0YXJlYS90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UZXh0SW5wdXQvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVGltZWxpbmUvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVG9hc3QvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVG9nZ2xlU3dpdGNoL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1Rvb2x0aXAvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS90aGVtZS1zdG9yZS9pbmRleC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9BY2NvcmRpb24vQWNjb3JkaW9uUGFuZWxDb250ZXh0Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0FjY29yZGlvbi9BY2NvcmRpb25Db250ZW50Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0FjY29yZGlvbi9BY2NvcmRpb25QYW5lbC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9BY2NvcmRpb24vQWNjb3JkaW9uVGl0bGUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvQWNjb3JkaW9uL0FjY29yZGlvbi5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9BdmF0YXIvQXZhdGFyR3JvdXAubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvQXZhdGFyL0F2YXRhckdyb3VwQ291bnRlci5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9BdmF0YXIvQXZhdGFyLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0JhZGdlL0JhZGdlLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1NwaW5uZXIvU3Bpbm5lci5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9CdXR0b24vQnV0dG9uQmFzZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9CdXR0b24vQnV0dG9uR3JvdXAubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvQnV0dG9uL0J1dHRvbi5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9CYW5uZXIvQmFubmVyQ29sbGFwc2VCdXR0b24ubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvQmFubmVyL0Jhbm5lci5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9CcmVhZGNydW1iL0JyZWFkY3J1bWJJdGVtLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0JyZWFkY3J1bWIvQnJlYWRjcnVtYi5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2NsYXNzbmFtZXNAMi41LjEvbm9kZV9tb2R1bGVzL2NsYXNzbmFtZXMvaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2RlYm91bmNlQDIuMS4wL25vZGVfbW9kdWxlcy9kZWJvdW5jZS9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9oZWxwZXJzL2RyYWctc2Nyb2xsL2luZGV4Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0NoZWNrYm94L0NoZWNrYm94Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGZsb2F0aW5nLXVpK3JlYWN0QDAuMjYuMjEvbm9kZV9tb2R1bGVzL0BmbG9hdGluZy11aS9yZWFjdC9kaXN0L2Zsb2F0aW5nLXVpLnJlYWN0LnV0aWxzLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vdGFiYmFibGVANi4yLjAvbm9kZV9tb2R1bGVzL3RhYmJhYmxlL2Rpc3QvaW5kZXguZXNtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AZmxvYXRpbmctdWkrcmVhY3QtZG9tQDIuMS4yL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvcmVhY3QtZG9tL2Rpc3QvZmxvYXRpbmctdWkucmVhY3QtZG9tLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGZsb2F0aW5nLXVpK3JlYWN0QDAuMjYuMjEvbm9kZV9tb2R1bGVzL0BmbG9hdGluZy11aS9yZWFjdC9kaXN0L2Zsb2F0aW5nLXVpLnJlYWN0Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0Zsb2F0aW5nL2hlbHBlcnMubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2hvb2tzL3VzZS1mbG9hdGluZy5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9GbG9hdGluZy9GbG9hdGluZy5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9Ub29sdGlwL1Rvb2x0aXAubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1pY29uc0A1LjIuMS9ub2RlX21vZHVsZXMvcmVhY3QtaWNvbnMvZmE2L2luZGV4Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0NsaXBib2FyZC9oZWxwZXJzLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0NsaXBib2FyZC9DbGlwYm9hcmRXaXRoSWNvbi5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9DbGlwYm9hcmQvQ2xpcGJvYXJkV2l0aEljb25UZXh0Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0NsaXBib2FyZC9DbGlwYm9hcmQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvSGVscGVyVGV4dC9IZWxwZXJUZXh0Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1RleHRJbnB1dC9UZXh0SW5wdXQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRGF0ZXBpY2tlci9EYXRlcGlja2VyQ29udGV4dC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9EYXRlcGlja2VyL2hlbHBlcnMubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRGF0ZXBpY2tlci9WaWV3cy9EYXlzLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0RhdGVwaWNrZXIvVmlld3MvRGVjYWRlcy5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9EYXRlcGlja2VyL1ZpZXdzL01vbnRocy5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9EYXRlcGlja2VyL1ZpZXdzL1llYXJzLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0RhdGVwaWNrZXIvRGF0ZXBpY2tlci5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9EcmF3ZXIvRHJhd2VyQ29udGV4dC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3JlYWN0LWljb25zQDUuMi4xL25vZGVfbW9kdWxlcy9yZWFjdC1pY29ucy9tZC9pbmRleC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9EcmF3ZXIvRHJhd2VySGVhZGVyLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0RyYXdlci9EcmF3ZXJJdGVtcy5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9EcmF3ZXIvRHJhd2VyLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0Ryb3Bkb3duL0Ryb3Bkb3duQ29udGV4dC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9Ecm9wZG93bi9Ecm9wZG93bkRpdmlkZXIubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRHJvcGRvd24vRHJvcGRvd25IZWFkZXIubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRHJvcGRvd24vRHJvcGRvd25JdGVtLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0Ryb3Bkb3duL0Ryb3Bkb3duLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0ZpbGVJbnB1dC9GaWxlSW5wdXQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRmxvYXRpbmdMYWJlbC9GbG9hdGluZ0xhYmVsLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0Zvb3Rlci9Gb290ZXJCcmFuZC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9Gb290ZXIvRm9vdGVyQ29weXJpZ2h0Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0Zvb3Rlci9Gb290ZXJEaXZpZGVyLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0Zvb3Rlci9Gb290ZXJJY29uLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0Zvb3Rlci9Gb290ZXJMaW5rLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0Zvb3Rlci9Gb290ZXJMaW5rR3JvdXAubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRm9vdGVyL0Zvb3RlclRpdGxlLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0Zvb3Rlci9Gb290ZXIubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvSFIvSFJJY29uLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0hSL0hSU3F1YXJlLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0hSL0hSVGV4dC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9IUi9IUlRyaW1tZWQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvSFIvSFIubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvTGlzdC9MaXN0SXRlbS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9MaXN0L0xpc3QubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvTGlzdEdyb3VwL0xpc3RHcm91cEl0ZW0ubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvTGlzdEdyb3VwL0xpc3RHcm91cC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9OYXZiYXIvTmF2YmFyQ29udGV4dC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9OYXZiYXIvTmF2YmFyQnJhbmQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvTmF2YmFyL05hdmJhckNvbGxhcHNlLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL05hdmJhci9OYXZiYXJMaW5rLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3QtaWNvbnNANS4yLjEvbm9kZV9tb2R1bGVzL3JlYWN0LWljb25zL2ZhL2luZGV4Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL05hdmJhci9OYXZiYXJUb2dnbGUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvTmF2YmFyL05hdmJhci5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9NZWdhTWVudS9NZWdhTWVudURyb3Bkb3duLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL01lZ2FNZW51L01lZ2FNZW51RHJvcGRvd25Ub2dnbGUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvTWVnYU1lbnUvTWVnYU1lbnUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvTW9kYWwvTW9kYWxDb250ZXh0Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL01vZGFsL01vZGFsQm9keS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9Nb2RhbC9Nb2RhbEZvb3Rlci5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9Nb2RhbC9Nb2RhbEhlYWRlci5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9Nb2RhbC9Nb2RhbC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9QYWdpbmF0aW9uL2hlbHBlcnMubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvUGFnaW5hdGlvbi9QYWdpbmF0aW9uQnV0dG9uLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1BhZ2luYXRpb24vUGFnaW5hdGlvbi5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9SYWRpby9SYWRpby5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9SYW5nZVNsaWRlci9SYW5nZVNsaWRlci5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9SYXRpbmcvUmF0aW5nQWR2YW5jZWQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvUmF0aW5nL1JhdGluZ0NvbnRleHQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvUmF0aW5nL1JhdGluZ1N0YXIubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvUmF0aW5nL1JhdGluZy5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9TZWxlY3QvU2VsZWN0Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1NpZGViYXIvU2lkZWJhckNvbnRleHQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvU2lkZWJhci9TaWRlYmFySXRlbUNvbnRleHQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvU2lkZWJhci9TaWRlYmFyQ29sbGFwc2UubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvU2lkZWJhci9TaWRlYmFyQ1RBLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1NpZGViYXIvU2lkZWJhckl0ZW0ubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvU2lkZWJhci9TaWRlYmFySXRlbUdyb3VwLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1NpZGViYXIvU2lkZWJhckl0ZW1zLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1NpZGViYXIvU2lkZWJhckxvZ28ubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvU2lkZWJhci9TaWRlYmFyLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1RhYmxlL1RhYmxlQm9keUNvbnRleHQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVGFibGUvVGFibGVDb250ZXh0Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1RhYmxlL1RhYmxlQm9keS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UYWJsZS9UYWJsZUNlbGwubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVGFibGUvVGFibGVIZWFkQ29udGV4dC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UYWJsZS9UYWJsZUhlYWQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVGFibGUvVGFibGVIZWFkQ2VsbC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UYWJsZS9UYWJsZVJvdy5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UYWJsZS9UYWJsZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UYWJzL1RhYkl0ZW0ubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVGFicy9UYWJzLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1RleHRhcmVhL1RleHRhcmVhLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1RpbWVsaW5lL1RpbWVsaW5lQ29udGVudENvbnRleHQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVGltZWxpbmUvVGltZWxpbmVCb2R5Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1RpbWVsaW5lL1RpbWVsaW5lQ29udGV4dC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UaW1lbGluZS9UaW1lbGluZUl0ZW1Db250ZXh0Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1RpbWVsaW5lL1RpbWVsaW5lQ29udGVudC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UaW1lbGluZS9UaW1lbGluZUl0ZW0ubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVGltZWxpbmUvVGltZWxpbmVQb2ludC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UaW1lbGluZS9UaW1lbGluZVRpbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVGltZWxpbmUvVGltZWxpbmVUaXRsZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UaW1lbGluZS9UaW1lbGluZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9Ub2FzdC9Ub2FzdENvbnRleHQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVG9hc3QvVG9hc3RUb2dnbGUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVG9hc3QvVG9hc3QubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVG9nZ2xlU3dpdGNoL1RvZ2dsZVN3aXRjaC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZHVsZXMvYmFzZS9CdXR0b24udHN4IiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9pc09iamVjdC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvYWxsb3dBZGRpdGlvbmFsSXRlbXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2FzTnVtYmVyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9jb25zdGFudHMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2dldFVpT3B0aW9ucy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvY2FuRXhwYW5kLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19mcmVlR2xvYmFsLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19yb290LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19TeW1ib2wuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldFJhd1RhZy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fb2JqZWN0VG9TdHJpbmcuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VHZXRUYWcuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX292ZXJBcmcuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldFByb3RvdHlwZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc09iamVjdExpa2UuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNQbGFpbk9iamVjdC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvY3JlYXRlRXJyb3JIYW5kbGVyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19saXN0Q2FjaGVDbGVhci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9lcS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXNzb2NJbmRleE9mLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19saXN0Q2FjaGVEZWxldGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2xpc3RDYWNoZUdldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fbGlzdENhY2hlSGFzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19saXN0Q2FjaGVTZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX0xpc3RDYWNoZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fc3RhY2tDbGVhci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fc3RhY2tEZWxldGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3N0YWNrR2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19zdGFja0hhcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc09iamVjdC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0Z1bmN0aW9uLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19jb3JlSnNEYXRhLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19pc01hc2tlZC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fdG9Tb3VyY2UuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc05hdGl2ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0VmFsdWUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldE5hdGl2ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fTWFwLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19uYXRpdmVDcmVhdGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2hhc2hDbGVhci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9faGFzaERlbGV0ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9faGFzaEdldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9faGFzaEhhcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9faGFzaFNldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fSGFzaC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWFwQ2FjaGVDbGVhci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9faXNLZXlhYmxlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRNYXBEYXRhLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19tYXBDYWNoZURlbGV0ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWFwQ2FjaGVHZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX21hcENhY2hlSGFzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19tYXBDYWNoZVNldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fTWFwQ2FjaGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3N0YWNrU2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19TdGFjay5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fc2V0Q2FjaGVBZGQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3NldENhY2hlSGFzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19TZXRDYWNoZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXJyYXlTb21lLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19jYWNoZUhhcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fZXF1YWxBcnJheXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX1VpbnQ4QXJyYXkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX21hcFRvQXJyYXkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3NldFRvQXJyYXkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2VxdWFsQnlUYWcuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2FycmF5UHVzaC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0FycmF5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlR2V0QWxsS2V5cy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXJyYXlGaWx0ZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvc3R1YkFycmF5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRTeW1ib2xzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlVGltZXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc0FyZ3VtZW50cy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0FyZ3VtZW50cy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9zdHViRmFsc2UuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNCdWZmZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2lzSW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNMZW5ndGguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc1R5cGVkQXJyYXkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VVbmFyeS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fbm9kZVV0aWwuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNUeXBlZEFycmF5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19hcnJheUxpa2VLZXlzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19pc1Byb3RvdHlwZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fbmF0aXZlS2V5cy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUtleXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNBcnJheUxpa2UuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gva2V5cy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0QWxsS2V5cy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fZXF1YWxPYmplY3RzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19EYXRhVmlldy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fUHJvbWlzZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fU2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19XZWFrTWFwLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRUYWcuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc0VxdWFsRGVlcC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzRXF1YWwuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNFcXVhbFdpdGguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2RlZXBFcXVhbHMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNTeW1ib2wuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2lzS2V5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL21lbW9pemUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX21lbW9pemVDYXBwZWQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3N0cmluZ1RvUGF0aC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXJyYXlNYXAuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VUb1N0cmluZy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC90b1N0cmluZy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fY2FzdFBhdGguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3RvS2V5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlR2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2dldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0VtcHR5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9qc29ucG9pbnRlckA1LjAuMS9ub2RlX21vZHVsZXMvanNvbnBvaW50ZXIvanNvbnBvaW50ZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2FycmF5RWFjaC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fZGVmaW5lUHJvcGVydHkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VBc3NpZ25WYWx1ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXNzaWduVmFsdWUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NvcHlPYmplY3QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VBc3NpZ24uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX25hdGl2ZUtleXNJbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUtleXNJbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9rZXlzSW4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VBc3NpZ25Jbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fY2xvbmVCdWZmZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NvcHlBcnJheS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fY29weVN5bWJvbHMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldFN5bWJvbHNJbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fY29weVN5bWJvbHNJbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0QWxsS2V5c0luLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19pbml0Q2xvbmVBcnJheS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fY2xvbmVBcnJheUJ1ZmZlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fY2xvbmVEYXRhVmlldy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fY2xvbmVSZWdFeHAuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Nsb25lU3ltYm9sLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19jbG9uZVR5cGVkQXJyYXkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2luaXRDbG9uZUJ5VGFnLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlQ3JlYXRlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19pbml0Q2xvbmVPYmplY3QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc01hcC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc01hcC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzU2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2lzU2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlQ2xvbmUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvbGFzdC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVNsaWNlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19wYXJlbnQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VVbnNldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3VzdG9tT21pdENsb25lLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19pc0ZsYXR0ZW5hYmxlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlRmxhdHRlbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9mbGF0dGVuLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19hcHBseS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fb3ZlclJlc3QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvY29uc3RhbnQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvaWRlbnRpdHkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VTZXRUb1N0cmluZy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fc2hvcnRPdXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3NldFRvU3RyaW5nLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19mbGF0UmVzdC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9vbWl0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9maW5kU2NoZW1hRGVmaW5pdGlvbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUhhcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9faGFzUGF0aC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9oYXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNOdW1iZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNTdHJpbmcuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2FycmF5UmVkdWNlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19jcmVhdGVCYXNlRm9yLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlRm9yLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlRm9yT3duLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19jcmVhdGVCYXNlRWFjaC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUVhY2guanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc01hdGNoLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19pc1N0cmljdENvbXBhcmFibGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldE1hdGNoRGF0YS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWF0Y2hlc1N0cmljdENvbXBhcmFibGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VNYXRjaGVzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSGFzSW4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvaGFzSW4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VNYXRjaGVzUHJvcGVydHkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VQcm9wZXJ0eS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVByb3BlcnR5RGVlcC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9wcm9wZXJ0eS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUl0ZXJhdGVlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlUmVkdWNlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL3JlZHVjZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fY2FzdEZ1bmN0aW9uLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL190cmltbWVkRW5kSW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VUcmltLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL3RvTnVtYmVyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL3RvRmluaXRlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL3RvSW50ZWdlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC90aW1lcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvZ2V0T3B0aW9uTWF0Y2hpbmdTaW1wbGVEaXNjcmltaW5hdG9yLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9zY2hlbWEvZ2V0TWF0Y2hpbmdPcHRpb24uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL3NjaGVtYS9nZXRGaXJzdE1hdGNoaW5nT3B0aW9uLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2lzRXF1YWwuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VTZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvc2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL3RyYW5zZm9ybS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXNzaWduTWVyZ2VWYWx1ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0FycmF5TGlrZU9iamVjdC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fc2FmZUdldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC90b1BsYWluT2JqZWN0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlTWVyZ2VEZWVwLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlTWVyZ2UuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VSZXN0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19pc0l0ZXJhdGVlQ2FsbC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3JlYXRlQXNzaWduZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvbWVyZ2UuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvZmxhdHRlbkRlZXAuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VGaW5kSW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc05hTi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fc3RyaWN0SW5kZXhPZi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUluZGV4T2YuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2FycmF5SW5jbHVkZXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2FycmF5SW5jbHVkZXNXaXRoLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL25vb3AuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NyZWF0ZVNldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVVuaXEuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvdW5pcS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9jbG9uZURlZXAuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VNYXAuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VTb3J0QnkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NvbXBhcmVBc2NlbmRpbmcuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NvbXBhcmVNdWx0aXBsZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZU9yZGVyQnkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvc29ydEJ5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL3VuaXFXaXRoLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2RlZmF1bHRzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSW50ZXJzZWN0aW9uLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19jYXN0QXJyYXlMaWtlT2JqZWN0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2ludGVyc2VjdGlvbldpdGguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNCb29sZWFuLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9qc29uLXNjaGVtYS1jb21wYXJlQDAuMi4yL25vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1jb21wYXJlL3NyYy9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vdmFsaWRhdGUuaW8tYXJyYXlAMS4wLjYvbm9kZV9tb2R1bGVzL3ZhbGlkYXRlLmlvLWFycmF5L2xpYi9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vdmFsaWRhdGUuaW8tbnVtYmVyQDEuMC4zL25vZGVfbW9kdWxlcy92YWxpZGF0ZS5pby1udW1iZXIvbGliL2luZGV4LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby92YWxpZGF0ZS5pby1pbnRlZ2VyQDEuMC41L25vZGVfbW9kdWxlcy92YWxpZGF0ZS5pby1pbnRlZ2VyL2xpYi9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vdmFsaWRhdGUuaW8taW50ZWdlci1hcnJheUAxLjAuMC9ub2RlX21vZHVsZXMvdmFsaWRhdGUuaW8taW50ZWdlci1hcnJheS9saWIvaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3ZhbGlkYXRlLmlvLWZ1bmN0aW9uQDEuMC4yL25vZGVfbW9kdWxlcy92YWxpZGF0ZS5pby1mdW5jdGlvbi9saWIvaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2NvbXB1dGUtZ2NkQDEuMi4xL25vZGVfbW9kdWxlcy9jb21wdXRlLWdjZC9saWIvaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2NvbXB1dGUtbGNtQDEuMS4yL25vZGVfbW9kdWxlcy9jb21wdXRlLWxjbS9saWIvaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2N1c3RvbURlZmF1bHRzTWVyZ2UuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvbWVyZ2VXaXRoLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2RlZmF1bHRzRGVlcC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9pbnRlcnNlY3Rpb24uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJbmRleE9mV2l0aC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVB1bGxBbGwuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvcHVsbEFsbC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9mb3JFYWNoLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlRGlmZmVyZW5jZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC93aXRob3V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9qc29uLXNjaGVtYS1tZXJnZS1hbGxvZkAwLjguMS9ub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtbWVyZ2UtYWxsb2Yvc3JjL2NvbW1vbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vanNvbi1zY2hlbWEtbWVyZ2UtYWxsb2ZAMC44LjEvbm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLW1lcmdlLWFsbG9mL3NyYy9jb21wbGV4LXJlc29sdmVycy9wcm9wZXJ0aWVzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9qc29uLXNjaGVtYS1tZXJnZS1hbGxvZkAwLjguMS9ub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtbWVyZ2UtYWxsb2Yvc3JjL2NvbXBsZXgtcmVzb2x2ZXJzL2l0ZW1zLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9qc29uLXNjaGVtYS1tZXJnZS1hbGxvZkAwLjguMS9ub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtbWVyZ2UtYWxsb2Yvc3JjL2luZGV4LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9nZXREaXNjcmltaW5hdG9yRmllbGRGcm9tU2NoZW1hLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9ndWVzc1R5cGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvdW5pb24uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2dldFNjaGVtYVR5cGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL21lcmdlU2NoZW1hcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvc2NoZW1hL3JldHJpZXZlU2NoZW1hLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9zY2hlbWEvZ2V0Q2xvc2VzdE1hdGNoaW5nT3B0aW9uLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9pc0ZpeGVkSXRlbXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL21lcmdlRGVmYXVsdHNXaXRoRm9ybURhdGEuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL21lcmdlT2JqZWN0cy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvaXNDb25zdGFudC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvc2NoZW1hL2lzU2VsZWN0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9zY2hlbWEvaXNNdWx0aVNlbGVjdC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvc2NoZW1hL2dldERlZmF1bHRGb3JtU3RhdGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2lzQ3VzdG9tV2lkZ2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9zY2hlbWEvaXNGaWxlc0FycmF5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9zY2hlbWEvZ2V0RGlzcGxheUxhYmVsLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9zY2hlbWEvbWVyZ2VWYWxpZGF0aW9uRGF0YS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvc2NoZW1hL3Nhbml0aXplRGF0YUZvck5ld1NjaGVtYS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvc2NoZW1hL3RvSWRTY2hlbWEuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL3NjaGVtYS90b1BhdGhTY2hlbWEuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2NyZWF0ZVNjaGVtYVV0aWxzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9kYXRhVVJJdG9CbG9iLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9wYWQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2RhdGVSYW5nZU9wdGlvbnMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL3JlcGxhY2VTdHJpbmdQYXJhbWV0ZXJzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9lbmdsaXNoU3RyaW5nVHJhbnNsYXRvci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvZW51bU9wdGlvbnNWYWx1ZUZvckluZGV4LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9lbnVtT3B0aW9uc0Rlc2VsZWN0VmFsdWUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2VudW1PcHRpb25zSXNTZWxlY3RlZC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvZW51bU9wdGlvbnNJbmRleEZvclZhbHVlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2lzTmlsLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9lbnVtT3B0aW9uc1NlbGVjdFZhbHVlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL3NldFdpdGguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL0Vycm9yU2NoZW1hQnVpbGRlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvZ2V0RGF0ZUVsZW1lbnRQcm9wcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvcmFuZ2VTcGVjLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9nZXRJbnB1dFByb3BzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9nZXRTdWJtaXRCdXR0b25PcHRpb25zLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9nZXRUZW1wbGF0ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3QtaXNAMTguMy4xL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3JlYWN0LWlzQDE4LjMuMS9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2dldFdpZGdldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvaGFzV2lkZ2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9pZEdlbmVyYXRvcnMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2xhYmVsVmFsdWUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2xvY2FsVG9VVEMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL3RvQ29uc3RhbnQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL29wdGlvbnNMaXN0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9vcmRlclByb3BlcnRpZXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL3BhcnNlRGF0ZVN0cmluZy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvc2NoZW1hUmVxdWlyZXNUcnVlVmFsdWUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL3Nob3VsZFJlbmRlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvdG9EYXRlU3RyaW5nLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi90b0Vycm9yTGlzdC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC90b1BhdGguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL3RvRXJyb3JTY2hlbWEuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL3Vud3JhcEVycm9ySGFuZGxlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvdXRjVG9Mb2NhbC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvdmFsaWRhdGlvbkRhdGFNZXJnZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvd2l0aElkUmVmUHJlZml4LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9lbnVtcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vdXJpLWpzQDQuNC4xL25vZGVfbW9kdWxlcy91cmktanMvZGlzdC9lczUvdXJpLmFsbC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmFzdC1kZWVwLWVxdWFsQDMuMS4zL25vZGVfbW9kdWxlcy9mYXN0LWRlZXAtZXF1YWwvaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvY29tcGlsZS91Y3MybGVuZ3RoLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2NvbXBpbGUvdXRpbC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9jb21waWxlL3NjaGVtYV9vYmouanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2pzb24tc2NoZW1hLXRyYXZlcnNlQDAuNC4xL25vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS10cmF2ZXJzZS9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9jb21waWxlL3Jlc29sdmUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvY29tcGlsZS9lcnJvcl9jbGFzc2VzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mYXN0LWpzb24tc3RhYmxlLXN0cmluZ2lmeUAyLjEuMC9ub2RlX21vZHVsZXMvZmFzdC1qc29uLXN0YWJsZS1zdHJpbmdpZnkvaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvdmFsaWRhdGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvY29tcGlsZS9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9jYWNoZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9jb21waWxlL2Zvcm1hdHMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvcmVmLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL2FsbE9mLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL2FueU9mLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL2NvbW1lbnQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvY29uc3QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvY29udGFpbnMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvZGVwZW5kZW5jaWVzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL2VudW0uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvZm9ybWF0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL2lmLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL2l0ZW1zLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL19saW1pdC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9fbGltaXRJdGVtcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9fbGltaXRMZW5ndGguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvX2xpbWl0UHJvcGVydGllcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9tdWx0aXBsZU9mLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL25vdC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9vbmVPZi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9wYXR0ZXJuLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL3Byb3BlcnRpZXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvcHJvcGVydHlOYW1lcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9yZXF1aXJlZC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy91bmlxdWVJdGVtcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9jb21waWxlL3J1bGVzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2RhdGEuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvY29tcGlsZS9hc3luYy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9jdXN0b20uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvZGVmaW5pdGlvbl9zY2hlbWEuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIva2V5d29yZC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9hanYuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3ZhbGlkYXRvci1hanY2QDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdmFsaWRhdG9yLWFqdjYvbGliL2NyZWF0ZUFqdkluc3RhbmNlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit2YWxpZGF0b3ItYWp2NkA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3ZhbGlkYXRvci1hanY2L2xpYi92YWxpZGF0b3IuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3ZhbGlkYXRvci1hanY2QDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdmFsaWRhdG9yLWFqdjYvbGliL2N1c3RvbWl6ZVZhbGlkYXRvci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdmFsaWRhdG9yLWFqdjZANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi92YWxpZGF0b3ItYWp2Ni9saWIvaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VQaWNrQnkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VQaWNrLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL3BpY2suanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL25hbm9pZEAzLjMuOC9ub2RlX21vZHVsZXMvbmFub2lkL2luZGV4LmJyb3dzZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL2ZpZWxkcy9BcnJheUZpZWxkLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy9maWVsZHMvQm9vbGVhbkZpZWxkLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy9maWVsZHMvTXVsdGlTY2hlbWFGaWVsZC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvZmllbGRzL051bWJlckZpZWxkLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9tYXJrZG93bi10by1qc3hANy43LjIvbm9kZV9tb2R1bGVzL21hcmtkb3duLXRvLWpzeC9kaXN0L2luZGV4Lm1vZGVybi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC91bnNldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvZmllbGRzL09iamVjdEZpZWxkLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy9maWVsZHMvU2NoZW1hRmllbGQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL2ZpZWxkcy9TdHJpbmdGaWVsZC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvZmllbGRzL051bGxGaWVsZC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvZmllbGRzL2luZGV4LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvQXJyYXlGaWVsZERlc2NyaXB0aW9uVGVtcGxhdGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9BcnJheUZpZWxkSXRlbVRlbXBsYXRlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvQXJyYXlGaWVsZFRlbXBsYXRlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvQXJyYXlGaWVsZFRpdGxlVGVtcGxhdGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9CYXNlSW5wdXRUZW1wbGF0ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL0J1dHRvblRlbXBsYXRlcy9TdWJtaXRCdXR0b24uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9CdXR0b25UZW1wbGF0ZXMvSWNvbkJ1dHRvbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL0J1dHRvblRlbXBsYXRlcy9BZGRCdXR0b24uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9CdXR0b25UZW1wbGF0ZXMvaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9EZXNjcmlwdGlvbkZpZWxkLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvRXJyb3JMaXN0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvRmllbGRUZW1wbGF0ZS9MYWJlbC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL0ZpZWxkVGVtcGxhdGUvRmllbGRUZW1wbGF0ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL0ZpZWxkRXJyb3JUZW1wbGF0ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL0ZpZWxkSGVscFRlbXBsYXRlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvT2JqZWN0RmllbGRUZW1wbGF0ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL1RpdGxlRmllbGQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9VbnN1cHBvcnRlZEZpZWxkLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvV3JhcElmQWRkaXRpb25hbFRlbXBsYXRlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3dpZGdldHMvQWx0RGF0ZVdpZGdldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvd2lkZ2V0cy9BbHREYXRlVGltZVdpZGdldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvd2lkZ2V0cy9DaGVja2JveFdpZGdldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvd2lkZ2V0cy9DaGVja2JveGVzV2lkZ2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy93aWRnZXRzL0NvbG9yV2lkZ2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy93aWRnZXRzL0RhdGVXaWRnZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3dpZGdldHMvRGF0ZVRpbWVXaWRnZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3dpZGdldHMvRW1haWxXaWRnZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3dpZGdldHMvRmlsZVdpZGdldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvd2lkZ2V0cy9IaWRkZW5XaWRnZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3dpZGdldHMvUGFzc3dvcmRXaWRnZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3dpZGdldHMvUmFkaW9XaWRnZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3dpZGdldHMvUmFuZ2VXaWRnZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3dpZGdldHMvU2VsZWN0V2lkZ2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy93aWRnZXRzL1RleHRhcmVhV2lkZ2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy93aWRnZXRzL1RleHRXaWRnZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3dpZGdldHMvVGltZVdpZGdldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvd2lkZ2V0cy9VUkxXaWRnZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3dpZGdldHMvVXBEb3duV2lkZ2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy93aWRnZXRzL2luZGV4LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvZ2V0RGVmYXVsdFJlZ2lzdHJ5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy9Gb3JtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2RlbC9jb3VudHJ5LnRzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9zZXJ2aWNlcy9jb3VudHJ5LnRzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL2NvbnRhY3QvQ29udGFjdE1vZGFsLnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvc2VydmljZXMvYWRkcmVzcy50cyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kdWxlcy9jb250YWN0L0NvbnRhY3RNb2RhbENvbXBvbmVudC50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3RzbGliQDIuNi4yL25vZGVfbW9kdWxlcy90c2xpYi90c2xpYi5lczYubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9zdHlsaXNANC4zLjIvbm9kZV9tb2R1bGVzL3N0eWxpcy9zcmMvRW51bS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vc3R5bGlzQDQuMy4yL25vZGVfbW9kdWxlcy9zdHlsaXMvc3JjL1V0aWxpdHkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3N0eWxpc0A0LjMuMi9ub2RlX21vZHVsZXMvc3R5bGlzL3NyYy9Ub2tlbml6ZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3N0eWxpc0A0LjMuMi9ub2RlX21vZHVsZXMvc3R5bGlzL3NyYy9QYXJzZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3N0eWxpc0A0LjMuMi9ub2RlX21vZHVsZXMvc3R5bGlzL3NyYy9QcmVmaXhlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vc3R5bGlzQDQuMy4yL25vZGVfbW9kdWxlcy9zdHlsaXMvc3JjL1NlcmlhbGl6ZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3N0eWxpc0A0LjMuMi9ub2RlX21vZHVsZXMvc3R5bGlzL3NyYy9NaWRkbGV3YXJlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AZW1vdGlvbit1bml0bGVzc0AwLjguMS9ub2RlX21vZHVsZXMvQGVtb3Rpb24vdW5pdGxlc3MvZGlzdC9lbW90aW9uLXVuaXRsZXNzLmVzbS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vc3R5bGVkLWNvbXBvbmVudHNANi4xLjEzL25vZGVfbW9kdWxlcy9zdHlsZWQtY29tcG9uZW50cy9kaXN0L3N0eWxlZC1jb21wb25lbnRzLmJyb3dzZXIuZXNtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdG9QcmltaXRpdmUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90b1Byb3BlcnR5S2V5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9vYmplY3RTcHJlYWQyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXJyYXlXaXRoSG9sZXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2FycmF5TGlrZVRvQXJyYXkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL25vbkl0ZXJhYmxlUmVzdC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3NsaWNlZFRvQXJyYXkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvb2JqZWN0V2l0aG91dFByb3BlcnRpZXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3JlYWN0LXNlbGVjdEA1LjkuMC9ub2RlX21vZHVsZXMvcmVhY3Qtc2VsZWN0L2Rpc3QvdXNlU3RhdGVNYW5hZ2VyLWNlMjMwNjFjLmNqcy5wcm9kLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY3JlYXRlQ2xhc3MuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zZXRQcm90b3R5cGVPZi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2luaGVyaXRzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZ2V0UHJvdG90eXBlT2YuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY3JlYXRlU3VwZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheVdpdGhvdXRIb2xlcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2l0ZXJhYmxlVG9BcnJheS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL25vbkl0ZXJhYmxlU3ByZWFkLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdG9Db25zdW1hYmxlQXJyYXkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90YWdnZWRUZW1wbGF0ZUxpdGVyYWwuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BmbG9hdGluZy11aStkb21AMS42LjEyL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvZG9tL2Rpc3QvZmxvYXRpbmctdWkuZG9tLmVzbS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3Qtc2VsZWN0QDUuOS4wL25vZGVfbW9kdWxlcy9yZWFjdC1zZWxlY3QvZGlzdC9pbmRleC02NjVjNGVkOC5janMucHJvZC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3Qtc2VsZWN0QDUuOS4wL25vZGVfbW9kdWxlcy9yZWFjdC1zZWxlY3QvZGlzdC9TZWxlY3QtMzZkMTVmOTMuY2pzLnByb2QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3JlYWN0LXNlbGVjdEA1LjkuMC9ub2RlX21vZHVsZXMvcmVhY3Qtc2VsZWN0L2Rpc3QvcmVhY3Qtc2VsZWN0LmNqcy5wcm9kLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1zZWxlY3RANS45LjAvbm9kZV9tb2R1bGVzL3JlYWN0LXNlbGVjdC9kaXN0L3JlYWN0LXNlbGVjdC5janMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3JlYWN0LXNlbGVjdEA1LjkuMC9ub2RlX21vZHVsZXMvcmVhY3Qtc2VsZWN0L2Rpc3QvcmVhY3Qtc2VsZWN0LmNqcy5kZWZhdWx0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL2Jhc2UvU2VsZWN0TGFiZWwudHN4IiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL2NvbnRhY3QvQ29udGFjdFNlbGVjdC50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZHVsZXMvY29udGFjdC9BZGRyZXNzTW9kYWwudHN4IiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL2NvbnRhY3QvQWRkcmVzc01vZGFsQ29tcG9uZW50LnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kdWxlcy9jb250YWN0L0FkZHJlc3NEZXRhaWwudHN4IiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL2NvbnRhY3QvQWRkcmVzc1NlbGVjdC50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL3NlcnZpY2VzL2FjY291bnQudHMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZHVsZXMvYWNjb3VudC9BY2NvdW50U2VsZWN0Q29tcG9uZW50LnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kdWxlcy9jb250YWN0L0NvbnRhY3RDb21wb25lbnQudHN4IiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL3R5cGUvVHlwZVNlbGVjdENvbXBvbmVudC50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL3NlcnZpY2VzL3Nob3AudHMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZHVsZXMvc2hvcC9TaG9wU2VsZWN0Q29tcG9uZW50LnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kdWxlcy9kcmFmdC9EcmFmdENvbXBvbmVudC50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL3NlcnZpY2VzL29yZGVyLnRzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL2Jhc2UvQ3VycmVuY3kudHN4IiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL2NhbGMvQ2FsY0NvbXBvbmVudC50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZHVsZXMvdG9wYmFyL1RvcEJhckNvbXBvbmVudC50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZGVsL3Byb2R1Y3RHcm91cC50cyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvc2VydmljZXMvcHJvZHVjdGdyb3VwLnRzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1zZWxlY3RANS45LjAvbm9kZV9tb2R1bGVzL3JlYWN0LXNlbGVjdC9kaXN0L3VzZUFzeW5jLWJlNjU5YTU3LmNqcy5wcm9kLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1zZWxlY3RANS45LjAvbm9kZV9tb2R1bGVzL3JlYWN0LXNlbGVjdC9hc3luYy9kaXN0L3JlYWN0LXNlbGVjdC1hc3luYy5janMucHJvZC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3Qtc2VsZWN0QDUuOS4wL25vZGVfbW9kdWxlcy9yZWFjdC1zZWxlY3QvYXN5bmMvZGlzdC9yZWFjdC1zZWxlY3QtYXN5bmMuY2pzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1zZWxlY3RANS45LjAvbm9kZV9tb2R1bGVzL3JlYWN0LXNlbGVjdC9hc3luYy9kaXN0L3JlYWN0LXNlbGVjdC1hc3luYy5janMuZGVmYXVsdC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kdWxlcy9wcm9kdWN0L1Byb2R1Y3RHcm91cFNlbGVjdC50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL3NlcnZpY2VzL3Byb2R1Y3QudHMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3VzZS1kZWJvdW5jZUAxMC4wLjQvbm9kZV9tb2R1bGVzL3VzZS1kZWJvdW5jZS9kaXN0L2luZGV4Lm1vZHVsZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kdWxlcy9wcm9kdWN0L1Byb2R1Y3RTZWxlY3QudHN4IiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL3Byb2R1Y3QvUHJvZHVjdEZvcm0udHN4IiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL3Bvc2l0aW9ucy9BZGRQb3NpdGlvbkNvbXBvbmVudC50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZHVsZXMvcG9zaXRpb25zL0VkaXRQb3NpdGlvbkNvbXBvbmVudC50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZHVsZXMvcG9zaXRpb25zL1Bvc0NvbXBvbmVudC50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZHVsZXMvcG9zaXRpb25zL0l0ZW1zQ29tcG9uZW50LnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kdWxlcy9wb3NpdGlvbnMvUG9zaXRpb25zQ29tcG9uZW50LnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvc2VydmljZXMvcGF5bWVudC50cyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kdWxlcy9wYXltZW50L1BheW1lbnRDb21wb25lbnQudHN4IiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9zZXJ2aWNlcy9zaGlwcGluZy50cyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kdWxlcy9zaGlwcGluZy9TaGlwcGluZ0NvbXBvbmVudC50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZHVsZXMvYnV0dG9uL0J1dHRvbkNvbXBvbmVudC50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Nvb2tpZUAxLjAuMi9ub2RlX21vZHVsZXMvY29va2llL2Rpc3QvaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3JlYWN0LXJvdXRlckA3LjAuMi9ub2RlX21vZHVsZXMvcmVhY3Qtcm91dGVyL2Rpc3QvZGV2ZWxvcG1lbnQvY2h1bmstRDUyWEc2SUEubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL2luZm8vSW5mb0ZpZWxkQ29tcG9uZW50LnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kdWxlcy9vcmRlci9PcmRlckFsaWFzQ29tcG9uZW50LnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kdWxlcy9iYXNlL0Jhc2VDb21wb25lbnQudHN4IiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9hcHAvYXBwLnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbWFpbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5Db3B5cmlnaHQgKEMpIE1pY3Jvc29mdC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90IHVzZVxudGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGVcbkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cblRISVMgQ09ERSBJUyBQUk9WSURFRCBPTiBBTiAqQVMgSVMqIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTllcbktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRURcbldBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsXG5NRVJDSEFOVEFCTElUWSBPUiBOT04tSU5GUklOR0VNRU5ULlxuXG5TZWUgdGhlIEFwYWNoZSBWZXJzaW9uIDIuMCBMaWNlbnNlIGZvciBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbmFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG52YXIgUmVmbGVjdDtcbihmdW5jdGlvbiAoUmVmbGVjdCkge1xuICAgIC8vIE1ldGFkYXRhIFByb3Bvc2FsXG4gICAgLy8gaHR0cHM6Ly9yYnVja3Rvbi5naXRodWIuaW8vcmVmbGVjdC1tZXRhZGF0YS9cbiAgICAoZnVuY3Rpb24gKGZhY3RvcnkpIHtcbiAgICAgICAgdmFyIHJvb3QgPSB0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gXCJvYmplY3RcIiA/IGdsb2JhbFRoaXMgOlxuICAgICAgICAgICAgdHlwZW9mIGdsb2JhbCA9PT0gXCJvYmplY3RcIiA/IGdsb2JhbCA6XG4gICAgICAgICAgICAgICAgdHlwZW9mIHNlbGYgPT09IFwib2JqZWN0XCIgPyBzZWxmIDpcbiAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHRoaXMgPT09IFwib2JqZWN0XCIgPyB0aGlzIDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsb3BweU1vZGVUaGlzKCk7XG4gICAgICAgIHZhciBleHBvcnRlciA9IG1ha2VFeHBvcnRlcihSZWZsZWN0KTtcbiAgICAgICAgaWYgKHR5cGVvZiByb290LlJlZmxlY3QgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIGV4cG9ydGVyID0gbWFrZUV4cG9ydGVyKHJvb3QuUmVmbGVjdCwgZXhwb3J0ZXIpO1xuICAgICAgICB9XG4gICAgICAgIGZhY3RvcnkoZXhwb3J0ZXIsIHJvb3QpO1xuICAgICAgICBpZiAodHlwZW9mIHJvb3QuUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgcm9vdC5SZWZsZWN0ID0gUmVmbGVjdDtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBtYWtlRXhwb3J0ZXIodGFyZ2V0LCBwcmV2aW91cykge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbiAgICAgICAgICAgICAgICBpZiAocHJldmlvdXMpXG4gICAgICAgICAgICAgICAgICAgIHByZXZpb3VzKGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBmdW5jdGlvblRoaXMoKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBGdW5jdGlvbihcInJldHVybiB0aGlzO1wiKSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKF8pIHsgfVxuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGluZGlyZWN0RXZhbFRoaXMoKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiAodm9pZCAwLCBldmFsKShcIihmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pKClcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoXykgeyB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc2xvcHB5TW9kZVRoaXMoKSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb25UaGlzKCkgfHwgaW5kaXJlY3RFdmFsVGhpcygpO1xuICAgICAgICB9XG4gICAgfSkoZnVuY3Rpb24gKGV4cG9ydGVyLCByb290KSB7XG4gICAgICAgIHZhciBoYXNPd24gPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuICAgICAgICAvLyBmZWF0dXJlIHRlc3QgZm9yIFN5bWJvbCBzdXBwb3J0XG4gICAgICAgIHZhciBzdXBwb3J0c1N5bWJvbCA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIjtcbiAgICAgICAgdmFyIHRvUHJpbWl0aXZlU3ltYm9sID0gc3VwcG9ydHNTeW1ib2wgJiYgdHlwZW9mIFN5bWJvbC50b1ByaW1pdGl2ZSAhPT0gXCJ1bmRlZmluZWRcIiA/IFN5bWJvbC50b1ByaW1pdGl2ZSA6IFwiQEB0b1ByaW1pdGl2ZVwiO1xuICAgICAgICB2YXIgaXRlcmF0b3JTeW1ib2wgPSBzdXBwb3J0c1N5bWJvbCAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yICE9PSBcInVuZGVmaW5lZFwiID8gU3ltYm9sLml0ZXJhdG9yIDogXCJAQGl0ZXJhdG9yXCI7XG4gICAgICAgIHZhciBzdXBwb3J0c0NyZWF0ZSA9IHR5cGVvZiBPYmplY3QuY3JlYXRlID09PSBcImZ1bmN0aW9uXCI7IC8vIGZlYXR1cmUgdGVzdCBmb3IgT2JqZWN0LmNyZWF0ZSBzdXBwb3J0XG4gICAgICAgIHZhciBzdXBwb3J0c1Byb3RvID0geyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheTsgLy8gZmVhdHVyZSB0ZXN0IGZvciBfX3Byb3RvX18gc3VwcG9ydFxuICAgICAgICB2YXIgZG93bkxldmVsID0gIXN1cHBvcnRzQ3JlYXRlICYmICFzdXBwb3J0c1Byb3RvO1xuICAgICAgICB2YXIgSGFzaE1hcCA9IHtcbiAgICAgICAgICAgIC8vIGNyZWF0ZSBhbiBvYmplY3QgaW4gZGljdGlvbmFyeSBtb2RlIChhLmsuYS4gXCJzbG93XCIgbW9kZSBpbiB2OClcbiAgICAgICAgICAgIGNyZWF0ZTogc3VwcG9ydHNDcmVhdGVcbiAgICAgICAgICAgICAgICA/IGZ1bmN0aW9uICgpIHsgcmV0dXJuIE1ha2VEaWN0aW9uYXJ5KE9iamVjdC5jcmVhdGUobnVsbCkpOyB9XG4gICAgICAgICAgICAgICAgOiBzdXBwb3J0c1Byb3RvXG4gICAgICAgICAgICAgICAgICAgID8gZnVuY3Rpb24gKCkgeyByZXR1cm4gTWFrZURpY3Rpb25hcnkoeyBfX3Byb3RvX186IG51bGwgfSk7IH1cbiAgICAgICAgICAgICAgICAgICAgOiBmdW5jdGlvbiAoKSB7IHJldHVybiBNYWtlRGljdGlvbmFyeSh7fSk7IH0sXG4gICAgICAgICAgICBoYXM6IGRvd25MZXZlbFxuICAgICAgICAgICAgICAgID8gZnVuY3Rpb24gKG1hcCwga2V5KSB7IHJldHVybiBoYXNPd24uY2FsbChtYXAsIGtleSk7IH1cbiAgICAgICAgICAgICAgICA6IGZ1bmN0aW9uIChtYXAsIGtleSkgeyByZXR1cm4ga2V5IGluIG1hcDsgfSxcbiAgICAgICAgICAgIGdldDogZG93bkxldmVsXG4gICAgICAgICAgICAgICAgPyBmdW5jdGlvbiAobWFwLCBrZXkpIHsgcmV0dXJuIGhhc093bi5jYWxsKG1hcCwga2V5KSA/IG1hcFtrZXldIDogdW5kZWZpbmVkOyB9XG4gICAgICAgICAgICAgICAgOiBmdW5jdGlvbiAobWFwLCBrZXkpIHsgcmV0dXJuIG1hcFtrZXldOyB9LFxuICAgICAgICB9O1xuICAgICAgICAvLyBMb2FkIGdsb2JhbCBvciBzaGltIHZlcnNpb25zIG9mIE1hcCwgU2V0LCBhbmQgV2Vha01hcFxuICAgICAgICB2YXIgZnVuY3Rpb25Qcm90b3R5cGUgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoRnVuY3Rpb24pO1xuICAgICAgICB2YXIgX01hcCA9IHR5cGVvZiBNYXAgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgTWFwLnByb3RvdHlwZS5lbnRyaWVzID09PSBcImZ1bmN0aW9uXCIgPyBNYXAgOiBDcmVhdGVNYXBQb2x5ZmlsbCgpO1xuICAgICAgICB2YXIgX1NldCA9IHR5cGVvZiBTZXQgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU2V0LnByb3RvdHlwZS5lbnRyaWVzID09PSBcImZ1bmN0aW9uXCIgPyBTZXQgOiBDcmVhdGVTZXRQb2x5ZmlsbCgpO1xuICAgICAgICB2YXIgX1dlYWtNYXAgPSB0eXBlb2YgV2Vha01hcCA9PT0gXCJmdW5jdGlvblwiID8gV2Vha01hcCA6IENyZWF0ZVdlYWtNYXBQb2x5ZmlsbCgpO1xuICAgICAgICB2YXIgcmVnaXN0cnlTeW1ib2wgPSBzdXBwb3J0c1N5bWJvbCA/IFN5bWJvbC5mb3IoXCJAcmVmbGVjdC1tZXRhZGF0YTpyZWdpc3RyeVwiKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgdmFyIG1ldGFkYXRhUmVnaXN0cnkgPSBHZXRPckNyZWF0ZU1ldGFkYXRhUmVnaXN0cnkoKTtcbiAgICAgICAgdmFyIG1ldGFkYXRhUHJvdmlkZXIgPSBDcmVhdGVNZXRhZGF0YVByb3ZpZGVyKG1ldGFkYXRhUmVnaXN0cnkpO1xuICAgICAgICAvKipcbiAgICAgICAgICogQXBwbGllcyBhIHNldCBvZiBkZWNvcmF0b3JzIHRvIGEgcHJvcGVydHkgb2YgYSB0YXJnZXQgb2JqZWN0LlxuICAgICAgICAgKiBAcGFyYW0gZGVjb3JhdG9ycyBBbiBhcnJheSBvZiBkZWNvcmF0b3JzLlxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSB0YXJnZXQgb2JqZWN0LlxuICAgICAgICAgKiBAcGFyYW0gcHJvcGVydHlLZXkgKE9wdGlvbmFsKSBUaGUgcHJvcGVydHkga2V5IHRvIGRlY29yYXRlLlxuICAgICAgICAgKiBAcGFyYW0gYXR0cmlidXRlcyAoT3B0aW9uYWwpIFRoZSBwcm9wZXJ0eSBkZXNjcmlwdG9yIGZvciB0aGUgdGFyZ2V0IGtleS5cbiAgICAgICAgICogQHJlbWFya3MgRGVjb3JhdG9ycyBhcmUgYXBwbGllZCBpbiByZXZlcnNlIG9yZGVyLlxuICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgY2xhc3MgRXhhbXBsZSB7XG4gICAgICAgICAqICAgICAgICAgLy8gcHJvcGVydHkgZGVjbGFyYXRpb25zIGFyZSBub3QgcGFydCBvZiBFUzYsIHRob3VnaCB0aGV5IGFyZSB2YWxpZCBpbiBUeXBlU2NyaXB0OlxuICAgICAgICAgKiAgICAgICAgIC8vIHN0YXRpYyBzdGF0aWNQcm9wZXJ0eTtcbiAgICAgICAgICogICAgICAgICAvLyBwcm9wZXJ0eTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgICAgICBjb25zdHJ1Y3RvcihwKSB7IH1cbiAgICAgICAgICogICAgICAgICBzdGF0aWMgc3RhdGljTWV0aG9kKHApIHsgfVxuICAgICAgICAgKiAgICAgICAgIG1ldGhvZChwKSB7IH1cbiAgICAgICAgICogICAgIH1cbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIGNvbnN0cnVjdG9yXG4gICAgICAgICAqICAgICBFeGFtcGxlID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzQXJyYXksIEV4YW1wbGUpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIGNvbnN0cnVjdG9yKVxuICAgICAgICAgKiAgICAgUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzQXJyYXksIEV4YW1wbGUsIFwic3RhdGljUHJvcGVydHlcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBwcm9wZXJ0eSAob24gcHJvdG90eXBlKVxuICAgICAgICAgKiAgICAgUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzQXJyYXksIEV4YW1wbGUucHJvdG90eXBlLCBcInByb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gbWV0aG9kIChvbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgICogICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFeGFtcGxlLCBcInN0YXRpY01ldGhvZFwiLFxuICAgICAgICAgKiAgICAgICAgIFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9yc0FycmF5LCBFeGFtcGxlLCBcInN0YXRpY01ldGhvZFwiLFxuICAgICAgICAgKiAgICAgICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4YW1wbGUsIFwic3RhdGljTWV0aG9kXCIpKSk7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBtZXRob2QgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFeGFtcGxlLnByb3RvdHlwZSwgXCJtZXRob2RcIixcbiAgICAgICAgICogICAgICAgICBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnNBcnJheSwgRXhhbXBsZS5wcm90b3R5cGUsIFwibWV0aG9kXCIsXG4gICAgICAgICAqICAgICAgICAgICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhhbXBsZS5wcm90b3R5cGUsIFwibWV0aG9kXCIpKSk7XG4gICAgICAgICAqXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBkZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIHByb3BlcnR5S2V5LCBhdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKHByb3BlcnR5S2V5KSkge1xuICAgICAgICAgICAgICAgIGlmICghSXNBcnJheShkZWNvcmF0b3JzKSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgICAgIGlmICghSXNPYmplY3QodGFyZ2V0KSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgICAgIGlmICghSXNPYmplY3QoYXR0cmlidXRlcykgJiYgIUlzVW5kZWZpbmVkKGF0dHJpYnV0ZXMpICYmICFJc051bGwoYXR0cmlidXRlcykpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgICAgICAgICBpZiAoSXNOdWxsKGF0dHJpYnV0ZXMpKVxuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIHByb3BlcnR5S2V5ID0gVG9Qcm9wZXJ0eUtleShwcm9wZXJ0eUtleSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIERlY29yYXRlUHJvcGVydHkoZGVjb3JhdG9ycywgdGFyZ2V0LCBwcm9wZXJ0eUtleSwgYXR0cmlidXRlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoIUlzQXJyYXkoZGVjb3JhdG9ycykpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgICAgICAgICBpZiAoIUlzQ29uc3RydWN0b3IodGFyZ2V0KSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgICAgIHJldHVybiBEZWNvcmF0ZUNvbnN0cnVjdG9yKGRlY29yYXRvcnMsIHRhcmdldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZXhwb3J0ZXIoXCJkZWNvcmF0ZVwiLCBkZWNvcmF0ZSk7XG4gICAgICAgIC8vIDQuMS4yIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpXG4gICAgICAgIC8vIGh0dHBzOi8vcmJ1Y2t0b24uZ2l0aHViLmlvL3JlZmxlY3QtbWV0YWRhdGEvI3JlZmxlY3QubWV0YWRhdGFcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEEgZGVmYXVsdCBtZXRhZGF0YSBkZWNvcmF0b3IgZmFjdG9yeSB0aGF0IGNhbiBiZSB1c2VkIG9uIGEgY2xhc3MsIGNsYXNzIG1lbWJlciwgb3IgcGFyYW1ldGVyLlxuICAgICAgICAgKiBAcGFyYW0gbWV0YWRhdGFLZXkgVGhlIGtleSBmb3IgdGhlIG1ldGFkYXRhIGVudHJ5LlxuICAgICAgICAgKiBAcGFyYW0gbWV0YWRhdGFWYWx1ZSBUaGUgdmFsdWUgZm9yIHRoZSBtZXRhZGF0YSBlbnRyeS5cbiAgICAgICAgICogQHJldHVybnMgQSBkZWNvcmF0b3IgZnVuY3Rpb24uXG4gICAgICAgICAqIEByZW1hcmtzXG4gICAgICAgICAqIElmIGBtZXRhZGF0YUtleWAgaXMgYWxyZWFkeSBkZWZpbmVkIGZvciB0aGUgdGFyZ2V0IGFuZCB0YXJnZXQga2V5LCB0aGVcbiAgICAgICAgICogbWV0YWRhdGFWYWx1ZSBmb3IgdGhhdCBrZXkgd2lsbCBiZSBvdmVyd3JpdHRlbi5cbiAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIGNvbnN0cnVjdG9yXG4gICAgICAgICAqICAgICBAUmVmbGVjdC5tZXRhZGF0YShrZXksIHZhbHVlKVxuICAgICAgICAgKiAgICAgY2xhc3MgRXhhbXBsZSB7XG4gICAgICAgICAqICAgICB9XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBwcm9wZXJ0eSAob24gY29uc3RydWN0b3IsIFR5cGVTY3JpcHQgb25seSlcbiAgICAgICAgICogICAgIGNsYXNzIEV4YW1wbGUge1xuICAgICAgICAgKiAgICAgICAgIEBSZWZsZWN0Lm1ldGFkYXRhKGtleSwgdmFsdWUpXG4gICAgICAgICAqICAgICAgICAgc3RhdGljIHN0YXRpY1Byb3BlcnR5O1xuICAgICAgICAgKiAgICAgfVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIHByb3RvdHlwZSwgVHlwZVNjcmlwdCBvbmx5KVxuICAgICAgICAgKiAgICAgY2xhc3MgRXhhbXBsZSB7XG4gICAgICAgICAqICAgICAgICAgQFJlZmxlY3QubWV0YWRhdGEoa2V5LCB2YWx1ZSlcbiAgICAgICAgICogICAgICAgICBwcm9wZXJ0eTtcbiAgICAgICAgICogICAgIH1cbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICBjbGFzcyBFeGFtcGxlIHtcbiAgICAgICAgICogICAgICAgICBAUmVmbGVjdC5tZXRhZGF0YShrZXksIHZhbHVlKVxuICAgICAgICAgKiAgICAgICAgIHN0YXRpYyBzdGF0aWNNZXRob2QoKSB7IH1cbiAgICAgICAgICogICAgIH1cbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gcHJvdG90eXBlKVxuICAgICAgICAgKiAgICAgY2xhc3MgRXhhbXBsZSB7XG4gICAgICAgICAqICAgICAgICAgQFJlZmxlY3QubWV0YWRhdGEoa2V5LCB2YWx1ZSlcbiAgICAgICAgICogICAgICAgICBtZXRob2QoKSB7IH1cbiAgICAgICAgICogICAgIH1cbiAgICAgICAgICpcbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIG1ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKSB7XG4gICAgICAgICAgICBmdW5jdGlvbiBkZWNvcmF0b3IodGFyZ2V0LCBwcm9wZXJ0eUtleSkge1xuICAgICAgICAgICAgICAgIGlmICghSXNPYmplY3QodGFyZ2V0KSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQocHJvcGVydHlLZXkpICYmICFJc1Byb3BlcnR5S2V5KHByb3BlcnR5S2V5KSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgICAgIE9yZGluYXJ5RGVmaW5lT3duTWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUsIHRhcmdldCwgcHJvcGVydHlLZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGRlY29yYXRvcjtcbiAgICAgICAgfVxuICAgICAgICBleHBvcnRlcihcIm1ldGFkYXRhXCIsIG1ldGFkYXRhKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERlZmluZSBhIHVuaXF1ZSBtZXRhZGF0YSBlbnRyeSBvbiB0aGUgdGFyZ2V0LlxuICAgICAgICAgKiBAcGFyYW0gbWV0YWRhdGFLZXkgQSBrZXkgdXNlZCB0byBzdG9yZSBhbmQgcmV0cmlldmUgbWV0YWRhdGEuXG4gICAgICAgICAqIEBwYXJhbSBtZXRhZGF0YVZhbHVlIEEgdmFsdWUgdGhhdCBjb250YWlucyBhdHRhY2hlZCBtZXRhZGF0YS5cbiAgICAgICAgICogQHBhcmFtIHRhcmdldCBUaGUgdGFyZ2V0IG9iamVjdCBvbiB3aGljaCB0byBkZWZpbmUgbWV0YWRhdGEuXG4gICAgICAgICAqIEBwYXJhbSBwcm9wZXJ0eUtleSAoT3B0aW9uYWwpIFRoZSBwcm9wZXJ0eSBrZXkgZm9yIHRoZSB0YXJnZXQuXG4gICAgICAgICAqIEBleGFtcGxlXG4gICAgICAgICAqXG4gICAgICAgICAqICAgICBjbGFzcyBFeGFtcGxlIHtcbiAgICAgICAgICogICAgICAgICAvLyBwcm9wZXJ0eSBkZWNsYXJhdGlvbnMgYXJlIG5vdCBwYXJ0IG9mIEVTNiwgdGhvdWdoIHRoZXkgYXJlIHZhbGlkIGluIFR5cGVTY3JpcHQ6XG4gICAgICAgICAqICAgICAgICAgLy8gc3RhdGljIHN0YXRpY1Byb3BlcnR5O1xuICAgICAgICAgKiAgICAgICAgIC8vIHByb3BlcnR5O1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgICAgIGNvbnN0cnVjdG9yKHApIHsgfVxuICAgICAgICAgKiAgICAgICAgIHN0YXRpYyBzdGF0aWNNZXRob2QocCkgeyB9XG4gICAgICAgICAqICAgICAgICAgbWV0aG9kKHApIHsgfVxuICAgICAgICAgKiAgICAgfVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gY29uc3RydWN0b3JcbiAgICAgICAgICogICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBvcHRpb25zLCBFeGFtcGxlKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIHByb3BlcnR5IChvbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgICogICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBvcHRpb25zLCBFeGFtcGxlLCBcInN0YXRpY1Byb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBvcHRpb25zLCBFeGFtcGxlLnByb3RvdHlwZSwgXCJwcm9wZXJ0eVwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgb3B0aW9ucywgRXhhbXBsZSwgXCJzdGF0aWNNZXRob2RcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBtZXRob2QgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBvcHRpb25zLCBFeGFtcGxlLnByb3RvdHlwZSwgXCJtZXRob2RcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBkZWNvcmF0b3IgZmFjdG9yeSBhcyBtZXRhZGF0YS1wcm9kdWNpbmcgYW5ub3RhdGlvbi5cbiAgICAgICAgICogICAgIGZ1bmN0aW9uIE15QW5ub3RhdGlvbihvcHRpb25zKTogRGVjb3JhdG9yIHtcbiAgICAgICAgICogICAgICAgICByZXR1cm4gKHRhcmdldCwga2V5PykgPT4gUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIG9wdGlvbnMsIHRhcmdldCwga2V5KTtcbiAgICAgICAgICogICAgIH1cbiAgICAgICAgICpcbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIGRlZmluZU1ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlLCB0YXJnZXQsIHByb3BlcnR5S2V5KSB7XG4gICAgICAgICAgICBpZiAoIUlzT2JqZWN0KHRhcmdldCkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgaWYgKCFJc1VuZGVmaW5lZChwcm9wZXJ0eUtleSkpXG4gICAgICAgICAgICAgICAgcHJvcGVydHlLZXkgPSBUb1Byb3BlcnR5S2V5KHByb3BlcnR5S2V5KTtcbiAgICAgICAgICAgIHJldHVybiBPcmRpbmFyeURlZmluZU93bk1ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlLCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcbiAgICAgICAgfVxuICAgICAgICBleHBvcnRlcihcImRlZmluZU1ldGFkYXRhXCIsIGRlZmluZU1ldGFkYXRhKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHRhcmdldCBvYmplY3Qgb3IgaXRzIHByb3RvdHlwZSBjaGFpbiBoYXMgdGhlIHByb3ZpZGVkIG1ldGFkYXRhIGtleSBkZWZpbmVkLlxuICAgICAgICAgKiBAcGFyYW0gbWV0YWRhdGFLZXkgQSBrZXkgdXNlZCB0byBzdG9yZSBhbmQgcmV0cmlldmUgbWV0YWRhdGEuXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQgVGhlIHRhcmdldCBvYmplY3Qgb24gd2hpY2ggdGhlIG1ldGFkYXRhIGlzIGRlZmluZWQuXG4gICAgICAgICAqIEBwYXJhbSBwcm9wZXJ0eUtleSAoT3B0aW9uYWwpIFRoZSBwcm9wZXJ0eSBrZXkgZm9yIHRoZSB0YXJnZXQuXG4gICAgICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgbWV0YWRhdGEga2V5IHdhcyBkZWZpbmVkIG9uIHRoZSB0YXJnZXQgb2JqZWN0IG9yIGl0cyBwcm90b3R5cGUgY2hhaW47IG90aGVyd2lzZSwgYGZhbHNlYC5cbiAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIGNsYXNzIEV4YW1wbGUge1xuICAgICAgICAgKiAgICAgICAgIC8vIHByb3BlcnR5IGRlY2xhcmF0aW9ucyBhcmUgbm90IHBhcnQgb2YgRVM2LCB0aG91Z2ggdGhleSBhcmUgdmFsaWQgaW4gVHlwZVNjcmlwdDpcbiAgICAgICAgICogICAgICAgICAvLyBzdGF0aWMgc3RhdGljUHJvcGVydHk7XG4gICAgICAgICAqICAgICAgICAgLy8gcHJvcGVydHk7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAgICAgY29uc3RydWN0b3IocCkgeyB9XG4gICAgICAgICAqICAgICAgICAgc3RhdGljIHN0YXRpY01ldGhvZChwKSB7IH1cbiAgICAgICAgICogICAgICAgICBtZXRob2QocCkgeyB9XG4gICAgICAgICAqICAgICB9XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBjb25zdHJ1Y3RvclxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5oYXNNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIGNvbnN0cnVjdG9yKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5oYXNNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUsIFwic3RhdGljUHJvcGVydHlcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBwcm9wZXJ0eSAob24gcHJvdG90eXBlKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5oYXNNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUucHJvdG90eXBlLCBcInByb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gbWV0aG9kIChvbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuaGFzTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLCBcInN0YXRpY01ldGhvZFwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gcHJvdG90eXBlKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5oYXNNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUucHJvdG90eXBlLCBcIm1ldGhvZFwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIGhhc01ldGFkYXRhKG1ldGFkYXRhS2V5LCB0YXJnZXQsIHByb3BlcnR5S2V5KSB7XG4gICAgICAgICAgICBpZiAoIUlzT2JqZWN0KHRhcmdldCkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgaWYgKCFJc1VuZGVmaW5lZChwcm9wZXJ0eUtleSkpXG4gICAgICAgICAgICAgICAgcHJvcGVydHlLZXkgPSBUb1Byb3BlcnR5S2V5KHByb3BlcnR5S2V5KTtcbiAgICAgICAgICAgIHJldHVybiBPcmRpbmFyeUhhc01ldGFkYXRhKG1ldGFkYXRhS2V5LCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcbiAgICAgICAgfVxuICAgICAgICBleHBvcnRlcihcImhhc01ldGFkYXRhXCIsIGhhc01ldGFkYXRhKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHRhcmdldCBvYmplY3QgaGFzIHRoZSBwcm92aWRlZCBtZXRhZGF0YSBrZXkgZGVmaW5lZC5cbiAgICAgICAgICogQHBhcmFtIG1ldGFkYXRhS2V5IEEga2V5IHVzZWQgdG8gc3RvcmUgYW5kIHJldHJpZXZlIG1ldGFkYXRhLlxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSB0YXJnZXQgb2JqZWN0IG9uIHdoaWNoIHRoZSBtZXRhZGF0YSBpcyBkZWZpbmVkLlxuICAgICAgICAgKiBAcGFyYW0gcHJvcGVydHlLZXkgKE9wdGlvbmFsKSBUaGUgcHJvcGVydHkga2V5IGZvciB0aGUgdGFyZ2V0LlxuICAgICAgICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG1ldGFkYXRhIGtleSB3YXMgZGVmaW5lZCBvbiB0aGUgdGFyZ2V0IG9iamVjdDsgb3RoZXJ3aXNlLCBgZmFsc2VgLlxuICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgY2xhc3MgRXhhbXBsZSB7XG4gICAgICAgICAqICAgICAgICAgLy8gcHJvcGVydHkgZGVjbGFyYXRpb25zIGFyZSBub3QgcGFydCBvZiBFUzYsIHRob3VnaCB0aGV5IGFyZSB2YWxpZCBpbiBUeXBlU2NyaXB0OlxuICAgICAgICAgKiAgICAgICAgIC8vIHN0YXRpYyBzdGF0aWNQcm9wZXJ0eTtcbiAgICAgICAgICogICAgICAgICAvLyBwcm9wZXJ0eTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgICAgICBjb25zdHJ1Y3RvcihwKSB7IH1cbiAgICAgICAgICogICAgICAgICBzdGF0aWMgc3RhdGljTWV0aG9kKHApIHsgfVxuICAgICAgICAgKiAgICAgICAgIG1ldGhvZChwKSB7IH1cbiAgICAgICAgICogICAgIH1cbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIGNvbnN0cnVjdG9yXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0Lmhhc093bk1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZSk7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBwcm9wZXJ0eSAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0Lmhhc093bk1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZSwgXCJzdGF0aWNQcm9wZXJ0eVwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIHByb3BlcnR5IChvbiBwcm90b3R5cGUpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0Lmhhc093bk1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZS5wcm90b3R5cGUsIFwicHJvcGVydHlcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBtZXRob2QgKG9uIGNvbnN0cnVjdG9yKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5oYXNPd25NZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUsIFwic3RhdGljTWV0aG9kXCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gbWV0aG9kIChvbiBwcm90b3R5cGUpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0Lmhhc093bk1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZS5wcm90b3R5cGUsIFwibWV0aG9kXCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gaGFzT3duTWV0YWRhdGEobWV0YWRhdGFLZXksIHRhcmdldCwgcHJvcGVydHlLZXkpIHtcbiAgICAgICAgICAgIGlmICghSXNPYmplY3QodGFyZ2V0KSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCk7XG4gICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKHByb3BlcnR5S2V5KSlcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eUtleSA9IFRvUHJvcGVydHlLZXkocHJvcGVydHlLZXkpO1xuICAgICAgICAgICAgcmV0dXJuIE9yZGluYXJ5SGFzT3duTWV0YWRhdGEobWV0YWRhdGFLZXksIHRhcmdldCwgcHJvcGVydHlLZXkpO1xuICAgICAgICB9XG4gICAgICAgIGV4cG9ydGVyKFwiaGFzT3duTWV0YWRhdGFcIiwgaGFzT3duTWV0YWRhdGEpO1xuICAgICAgICAvKipcbiAgICAgICAgICogR2V0cyB0aGUgbWV0YWRhdGEgdmFsdWUgZm9yIHRoZSBwcm92aWRlZCBtZXRhZGF0YSBrZXkgb24gdGhlIHRhcmdldCBvYmplY3Qgb3IgaXRzIHByb3RvdHlwZSBjaGFpbi5cbiAgICAgICAgICogQHBhcmFtIG1ldGFkYXRhS2V5IEEga2V5IHVzZWQgdG8gc3RvcmUgYW5kIHJldHJpZXZlIG1ldGFkYXRhLlxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSB0YXJnZXQgb2JqZWN0IG9uIHdoaWNoIHRoZSBtZXRhZGF0YSBpcyBkZWZpbmVkLlxuICAgICAgICAgKiBAcGFyYW0gcHJvcGVydHlLZXkgKE9wdGlvbmFsKSBUaGUgcHJvcGVydHkga2V5IGZvciB0aGUgdGFyZ2V0LlxuICAgICAgICAgKiBAcmV0dXJucyBUaGUgbWV0YWRhdGEgdmFsdWUgZm9yIHRoZSBtZXRhZGF0YSBrZXkgaWYgZm91bmQ7IG90aGVyd2lzZSwgYHVuZGVmaW5lZGAuXG4gICAgICAgICAqIEBleGFtcGxlXG4gICAgICAgICAqXG4gICAgICAgICAqICAgICBjbGFzcyBFeGFtcGxlIHtcbiAgICAgICAgICogICAgICAgICAvLyBwcm9wZXJ0eSBkZWNsYXJhdGlvbnMgYXJlIG5vdCBwYXJ0IG9mIEVTNiwgdGhvdWdoIHRoZXkgYXJlIHZhbGlkIGluIFR5cGVTY3JpcHQ6XG4gICAgICAgICAqICAgICAgICAgLy8gc3RhdGljIHN0YXRpY1Byb3BlcnR5O1xuICAgICAgICAgKiAgICAgICAgIC8vIHByb3BlcnR5O1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgICAgIGNvbnN0cnVjdG9yKHApIHsgfVxuICAgICAgICAgKiAgICAgICAgIHN0YXRpYyBzdGF0aWNNZXRob2QocCkgeyB9XG4gICAgICAgICAqICAgICAgICAgbWV0aG9kKHApIHsgfVxuICAgICAgICAgKiAgICAgfVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gY29uc3RydWN0b3JcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIHByb3BlcnR5IChvbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLCBcInN0YXRpY1Byb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLnByb3RvdHlwZSwgXCJwcm9wZXJ0eVwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZSwgXCJzdGF0aWNNZXRob2RcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBtZXRob2QgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLnByb3RvdHlwZSwgXCJtZXRob2RcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBnZXRNZXRhZGF0YShtZXRhZGF0YUtleSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSkge1xuICAgICAgICAgICAgaWYgKCFJc09iamVjdCh0YXJnZXQpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQocHJvcGVydHlLZXkpKVxuICAgICAgICAgICAgICAgIHByb3BlcnR5S2V5ID0gVG9Qcm9wZXJ0eUtleShwcm9wZXJ0eUtleSk7XG4gICAgICAgICAgICByZXR1cm4gT3JkaW5hcnlHZXRNZXRhZGF0YShtZXRhZGF0YUtleSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZXhwb3J0ZXIoXCJnZXRNZXRhZGF0YVwiLCBnZXRNZXRhZGF0YSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBHZXRzIHRoZSBtZXRhZGF0YSB2YWx1ZSBmb3IgdGhlIHByb3ZpZGVkIG1ldGFkYXRhIGtleSBvbiB0aGUgdGFyZ2V0IG9iamVjdC5cbiAgICAgICAgICogQHBhcmFtIG1ldGFkYXRhS2V5IEEga2V5IHVzZWQgdG8gc3RvcmUgYW5kIHJldHJpZXZlIG1ldGFkYXRhLlxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSB0YXJnZXQgb2JqZWN0IG9uIHdoaWNoIHRoZSBtZXRhZGF0YSBpcyBkZWZpbmVkLlxuICAgICAgICAgKiBAcGFyYW0gcHJvcGVydHlLZXkgKE9wdGlvbmFsKSBUaGUgcHJvcGVydHkga2V5IGZvciB0aGUgdGFyZ2V0LlxuICAgICAgICAgKiBAcmV0dXJucyBUaGUgbWV0YWRhdGEgdmFsdWUgZm9yIHRoZSBtZXRhZGF0YSBrZXkgaWYgZm91bmQ7IG90aGVyd2lzZSwgYHVuZGVmaW5lZGAuXG4gICAgICAgICAqIEBleGFtcGxlXG4gICAgICAgICAqXG4gICAgICAgICAqICAgICBjbGFzcyBFeGFtcGxlIHtcbiAgICAgICAgICogICAgICAgICAvLyBwcm9wZXJ0eSBkZWNsYXJhdGlvbnMgYXJlIG5vdCBwYXJ0IG9mIEVTNiwgdGhvdWdoIHRoZXkgYXJlIHZhbGlkIGluIFR5cGVTY3JpcHQ6XG4gICAgICAgICAqICAgICAgICAgLy8gc3RhdGljIHN0YXRpY1Byb3BlcnR5O1xuICAgICAgICAgKiAgICAgICAgIC8vIHByb3BlcnR5O1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgICAgIGNvbnN0cnVjdG9yKHApIHsgfVxuICAgICAgICAgKiAgICAgICAgIHN0YXRpYyBzdGF0aWNNZXRob2QocCkgeyB9XG4gICAgICAgICAqICAgICAgICAgbWV0aG9kKHApIHsgfVxuICAgICAgICAgKiAgICAgfVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gY29uc3RydWN0b3JcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0T3duTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIHByb3BlcnR5IChvbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0T3duTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLCBcInN0YXRpY1Byb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0T3duTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLnByb3RvdHlwZSwgXCJwcm9wZXJ0eVwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmdldE93bk1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZSwgXCJzdGF0aWNNZXRob2RcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBtZXRob2QgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0T3duTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLnByb3RvdHlwZSwgXCJtZXRob2RcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBnZXRPd25NZXRhZGF0YShtZXRhZGF0YUtleSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSkge1xuICAgICAgICAgICAgaWYgKCFJc09iamVjdCh0YXJnZXQpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQocHJvcGVydHlLZXkpKVxuICAgICAgICAgICAgICAgIHByb3BlcnR5S2V5ID0gVG9Qcm9wZXJ0eUtleShwcm9wZXJ0eUtleSk7XG4gICAgICAgICAgICByZXR1cm4gT3JkaW5hcnlHZXRPd25NZXRhZGF0YShtZXRhZGF0YUtleSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZXhwb3J0ZXIoXCJnZXRPd25NZXRhZGF0YVwiLCBnZXRPd25NZXRhZGF0YSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBHZXRzIHRoZSBtZXRhZGF0YSBrZXlzIGRlZmluZWQgb24gdGhlIHRhcmdldCBvYmplY3Qgb3IgaXRzIHByb3RvdHlwZSBjaGFpbi5cbiAgICAgICAgICogQHBhcmFtIHRhcmdldCBUaGUgdGFyZ2V0IG9iamVjdCBvbiB3aGljaCB0aGUgbWV0YWRhdGEgaXMgZGVmaW5lZC5cbiAgICAgICAgICogQHBhcmFtIHByb3BlcnR5S2V5IChPcHRpb25hbCkgVGhlIHByb3BlcnR5IGtleSBmb3IgdGhlIHRhcmdldC5cbiAgICAgICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgdW5pcXVlIG1ldGFkYXRhIGtleXMuXG4gICAgICAgICAqIEBleGFtcGxlXG4gICAgICAgICAqXG4gICAgICAgICAqICAgICBjbGFzcyBFeGFtcGxlIHtcbiAgICAgICAgICogICAgICAgICAvLyBwcm9wZXJ0eSBkZWNsYXJhdGlvbnMgYXJlIG5vdCBwYXJ0IG9mIEVTNiwgdGhvdWdoIHRoZXkgYXJlIHZhbGlkIGluIFR5cGVTY3JpcHQ6XG4gICAgICAgICAqICAgICAgICAgLy8gc3RhdGljIHN0YXRpY1Byb3BlcnR5O1xuICAgICAgICAgKiAgICAgICAgIC8vIHByb3BlcnR5O1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgICAgIGNvbnN0cnVjdG9yKHApIHsgfVxuICAgICAgICAgKiAgICAgICAgIHN0YXRpYyBzdGF0aWNNZXRob2QocCkgeyB9XG4gICAgICAgICAqICAgICAgICAgbWV0aG9kKHApIHsgfVxuICAgICAgICAgKiAgICAgfVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gY29uc3RydWN0b3JcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0TWV0YWRhdGFLZXlzKEV4YW1wbGUpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIGNvbnN0cnVjdG9yKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5nZXRNZXRhZGF0YUtleXMoRXhhbXBsZSwgXCJzdGF0aWNQcm9wZXJ0eVwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIHByb3BlcnR5IChvbiBwcm90b3R5cGUpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmdldE1ldGFkYXRhS2V5cyhFeGFtcGxlLnByb3RvdHlwZSwgXCJwcm9wZXJ0eVwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmdldE1ldGFkYXRhS2V5cyhFeGFtcGxlLCBcInN0YXRpY01ldGhvZFwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gcHJvdG90eXBlKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5nZXRNZXRhZGF0YUtleXMoRXhhbXBsZS5wcm90b3R5cGUsIFwibWV0aG9kXCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gZ2V0TWV0YWRhdGFLZXlzKHRhcmdldCwgcHJvcGVydHlLZXkpIHtcbiAgICAgICAgICAgIGlmICghSXNPYmplY3QodGFyZ2V0KSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCk7XG4gICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKHByb3BlcnR5S2V5KSlcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eUtleSA9IFRvUHJvcGVydHlLZXkocHJvcGVydHlLZXkpO1xuICAgICAgICAgICAgcmV0dXJuIE9yZGluYXJ5TWV0YWRhdGFLZXlzKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuICAgICAgICB9XG4gICAgICAgIGV4cG9ydGVyKFwiZ2V0TWV0YWRhdGFLZXlzXCIsIGdldE1ldGFkYXRhS2V5cyk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBHZXRzIHRoZSB1bmlxdWUgbWV0YWRhdGEga2V5cyBkZWZpbmVkIG9uIHRoZSB0YXJnZXQgb2JqZWN0LlxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSB0YXJnZXQgb2JqZWN0IG9uIHdoaWNoIHRoZSBtZXRhZGF0YSBpcyBkZWZpbmVkLlxuICAgICAgICAgKiBAcGFyYW0gcHJvcGVydHlLZXkgKE9wdGlvbmFsKSBUaGUgcHJvcGVydHkga2V5IGZvciB0aGUgdGFyZ2V0LlxuICAgICAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiB1bmlxdWUgbWV0YWRhdGEga2V5cy5cbiAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIGNsYXNzIEV4YW1wbGUge1xuICAgICAgICAgKiAgICAgICAgIC8vIHByb3BlcnR5IGRlY2xhcmF0aW9ucyBhcmUgbm90IHBhcnQgb2YgRVM2LCB0aG91Z2ggdGhleSBhcmUgdmFsaWQgaW4gVHlwZVNjcmlwdDpcbiAgICAgICAgICogICAgICAgICAvLyBzdGF0aWMgc3RhdGljUHJvcGVydHk7XG4gICAgICAgICAqICAgICAgICAgLy8gcHJvcGVydHk7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAgICAgY29uc3RydWN0b3IocCkgeyB9XG4gICAgICAgICAqICAgICAgICAgc3RhdGljIHN0YXRpY01ldGhvZChwKSB7IH1cbiAgICAgICAgICogICAgICAgICBtZXRob2QocCkgeyB9XG4gICAgICAgICAqICAgICB9XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBjb25zdHJ1Y3RvclxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5nZXRPd25NZXRhZGF0YUtleXMoRXhhbXBsZSk7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBwcm9wZXJ0eSAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmdldE93bk1ldGFkYXRhS2V5cyhFeGFtcGxlLCBcInN0YXRpY1Byb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0T3duTWV0YWRhdGFLZXlzKEV4YW1wbGUucHJvdG90eXBlLCBcInByb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gbWV0aG9kIChvbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0T3duTWV0YWRhdGFLZXlzKEV4YW1wbGUsIFwic3RhdGljTWV0aG9kXCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gbWV0aG9kIChvbiBwcm90b3R5cGUpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmdldE93bk1ldGFkYXRhS2V5cyhFeGFtcGxlLnByb3RvdHlwZSwgXCJtZXRob2RcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBnZXRPd25NZXRhZGF0YUtleXModGFyZ2V0LCBwcm9wZXJ0eUtleSkge1xuICAgICAgICAgICAgaWYgKCFJc09iamVjdCh0YXJnZXQpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQocHJvcGVydHlLZXkpKVxuICAgICAgICAgICAgICAgIHByb3BlcnR5S2V5ID0gVG9Qcm9wZXJ0eUtleShwcm9wZXJ0eUtleSk7XG4gICAgICAgICAgICByZXR1cm4gT3JkaW5hcnlPd25NZXRhZGF0YUtleXModGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZXhwb3J0ZXIoXCJnZXRPd25NZXRhZGF0YUtleXNcIiwgZ2V0T3duTWV0YWRhdGFLZXlzKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERlbGV0ZXMgdGhlIG1ldGFkYXRhIGVudHJ5IGZyb20gdGhlIHRhcmdldCBvYmplY3Qgd2l0aCB0aGUgcHJvdmlkZWQga2V5LlxuICAgICAgICAgKiBAcGFyYW0gbWV0YWRhdGFLZXkgQSBrZXkgdXNlZCB0byBzdG9yZSBhbmQgcmV0cmlldmUgbWV0YWRhdGEuXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQgVGhlIHRhcmdldCBvYmplY3Qgb24gd2hpY2ggdGhlIG1ldGFkYXRhIGlzIGRlZmluZWQuXG4gICAgICAgICAqIEBwYXJhbSBwcm9wZXJ0eUtleSAoT3B0aW9uYWwpIFRoZSBwcm9wZXJ0eSBrZXkgZm9yIHRoZSB0YXJnZXQuXG4gICAgICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgbWV0YWRhdGEgZW50cnkgd2FzIGZvdW5kIGFuZCBkZWxldGVkOyBvdGhlcndpc2UsIGZhbHNlLlxuICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgY2xhc3MgRXhhbXBsZSB7XG4gICAgICAgICAqICAgICAgICAgLy8gcHJvcGVydHkgZGVjbGFyYXRpb25zIGFyZSBub3QgcGFydCBvZiBFUzYsIHRob3VnaCB0aGV5IGFyZSB2YWxpZCBpbiBUeXBlU2NyaXB0OlxuICAgICAgICAgKiAgICAgICAgIC8vIHN0YXRpYyBzdGF0aWNQcm9wZXJ0eTtcbiAgICAgICAgICogICAgICAgICAvLyBwcm9wZXJ0eTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgICAgICBjb25zdHJ1Y3RvcihwKSB7IH1cbiAgICAgICAgICogICAgICAgICBzdGF0aWMgc3RhdGljTWV0aG9kKHApIHsgfVxuICAgICAgICAgKiAgICAgICAgIG1ldGhvZChwKSB7IH1cbiAgICAgICAgICogICAgIH1cbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIGNvbnN0cnVjdG9yXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmRlbGV0ZU1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZSk7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBwcm9wZXJ0eSAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmRlbGV0ZU1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZSwgXCJzdGF0aWNQcm9wZXJ0eVwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIHByb3BlcnR5IChvbiBwcm90b3R5cGUpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmRlbGV0ZU1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZS5wcm90b3R5cGUsIFwicHJvcGVydHlcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBtZXRob2QgKG9uIGNvbnN0cnVjdG9yKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5kZWxldGVNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUsIFwic3RhdGljTWV0aG9kXCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gbWV0aG9kIChvbiBwcm90b3R5cGUpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmRlbGV0ZU1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZS5wcm90b3R5cGUsIFwibWV0aG9kXCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gZGVsZXRlTWV0YWRhdGEobWV0YWRhdGFLZXksIHRhcmdldCwgcHJvcGVydHlLZXkpIHtcbiAgICAgICAgICAgIGlmICghSXNPYmplY3QodGFyZ2V0KSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCk7XG4gICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKHByb3BlcnR5S2V5KSlcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eUtleSA9IFRvUHJvcGVydHlLZXkocHJvcGVydHlLZXkpO1xuICAgICAgICAgICAgaWYgKCFJc09iamVjdCh0YXJnZXQpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQocHJvcGVydHlLZXkpKVxuICAgICAgICAgICAgICAgIHByb3BlcnR5S2V5ID0gVG9Qcm9wZXJ0eUtleShwcm9wZXJ0eUtleSk7XG4gICAgICAgICAgICB2YXIgcHJvdmlkZXIgPSBHZXRNZXRhZGF0YVByb3ZpZGVyKHRhcmdldCwgcHJvcGVydHlLZXksIC8qQ3JlYXRlKi8gZmFsc2UpO1xuICAgICAgICAgICAgaWYgKElzVW5kZWZpbmVkKHByb3ZpZGVyKSlcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gcHJvdmlkZXIuT3JkaW5hcnlEZWxldGVNZXRhZGF0YShtZXRhZGF0YUtleSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZXhwb3J0ZXIoXCJkZWxldGVNZXRhZGF0YVwiLCBkZWxldGVNZXRhZGF0YSk7XG4gICAgICAgIGZ1bmN0aW9uIERlY29yYXRlQ29uc3RydWN0b3IoZGVjb3JhdG9ycywgdGFyZ2V0KSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICAgICAgICAgIHZhciBkZWNvcmF0b3IgPSBkZWNvcmF0b3JzW2ldO1xuICAgICAgICAgICAgICAgIHZhciBkZWNvcmF0ZWQgPSBkZWNvcmF0b3IodGFyZ2V0KTtcbiAgICAgICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKGRlY29yYXRlZCkgJiYgIUlzTnVsbChkZWNvcmF0ZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghSXNDb25zdHJ1Y3RvcihkZWNvcmF0ZWQpKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQgPSBkZWNvcmF0ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBEZWNvcmF0ZVByb3BlcnR5KGRlY29yYXRvcnMsIHRhcmdldCwgcHJvcGVydHlLZXksIGRlc2NyaXB0b3IpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRlY29yYXRvciA9IGRlY29yYXRvcnNbaV07XG4gICAgICAgICAgICAgICAgdmFyIGRlY29yYXRlZCA9IGRlY29yYXRvcih0YXJnZXQsIHByb3BlcnR5S2V5LCBkZXNjcmlwdG9yKTtcbiAgICAgICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKGRlY29yYXRlZCkgJiYgIUlzTnVsbChkZWNvcmF0ZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghSXNPYmplY3QoZGVjb3JhdGVkKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvciA9IGRlY29yYXRlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICAgICAgfVxuICAgICAgICAvLyAzLjEuMS4xIE9yZGluYXJ5SGFzTWV0YWRhdGEoTWV0YWRhdGFLZXksIE8sIFApXG4gICAgICAgIC8vIGh0dHBzOi8vcmJ1Y2t0b24uZ2l0aHViLmlvL3JlZmxlY3QtbWV0YWRhdGEvI29yZGluYXJ5aGFzbWV0YWRhdGFcbiAgICAgICAgZnVuY3Rpb24gT3JkaW5hcnlIYXNNZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUCkge1xuICAgICAgICAgICAgdmFyIGhhc093biA9IE9yZGluYXJ5SGFzT3duTWV0YWRhdGEoTWV0YWRhdGFLZXksIE8sIFApO1xuICAgICAgICAgICAgaWYgKGhhc093bilcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIHZhciBwYXJlbnQgPSBPcmRpbmFyeUdldFByb3RvdHlwZU9mKE8pO1xuICAgICAgICAgICAgaWYgKCFJc051bGwocGFyZW50KSlcbiAgICAgICAgICAgICAgICByZXR1cm4gT3JkaW5hcnlIYXNNZXRhZGF0YShNZXRhZGF0YUtleSwgcGFyZW50LCBQKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyAzLjEuMi4xIE9yZGluYXJ5SGFzT3duTWV0YWRhdGEoTWV0YWRhdGFLZXksIE8sIFApXG4gICAgICAgIC8vIGh0dHBzOi8vcmJ1Y2t0b24uZ2l0aHViLmlvL3JlZmxlY3QtbWV0YWRhdGEvI29yZGluYXJ5aGFzb3dubWV0YWRhdGFcbiAgICAgICAgZnVuY3Rpb24gT3JkaW5hcnlIYXNPd25NZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUCkge1xuICAgICAgICAgICAgdmFyIHByb3ZpZGVyID0gR2V0TWV0YWRhdGFQcm92aWRlcihPLCBQLCAvKkNyZWF0ZSovIGZhbHNlKTtcbiAgICAgICAgICAgIGlmIChJc1VuZGVmaW5lZChwcm92aWRlcikpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuIFRvQm9vbGVhbihwcm92aWRlci5PcmRpbmFyeUhhc093bk1ldGFkYXRhKE1ldGFkYXRhS2V5LCBPLCBQKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gMy4xLjMuMSBPcmRpbmFyeUdldE1ldGFkYXRhKE1ldGFkYXRhS2V5LCBPLCBQKVxuICAgICAgICAvLyBodHRwczovL3JidWNrdG9uLmdpdGh1Yi5pby9yZWZsZWN0LW1ldGFkYXRhLyNvcmRpbmFyeWdldG1ldGFkYXRhXG4gICAgICAgIGZ1bmN0aW9uIE9yZGluYXJ5R2V0TWV0YWRhdGEoTWV0YWRhdGFLZXksIE8sIFApIHtcbiAgICAgICAgICAgIHZhciBoYXNPd24gPSBPcmRpbmFyeUhhc093bk1ldGFkYXRhKE1ldGFkYXRhS2V5LCBPLCBQKTtcbiAgICAgICAgICAgIGlmIChoYXNPd24pXG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZGluYXJ5R2V0T3duTWV0YWRhdGEoTWV0YWRhdGFLZXksIE8sIFApO1xuICAgICAgICAgICAgdmFyIHBhcmVudCA9IE9yZGluYXJ5R2V0UHJvdG90eXBlT2YoTyk7XG4gICAgICAgICAgICBpZiAoIUlzTnVsbChwYXJlbnQpKVxuICAgICAgICAgICAgICAgIHJldHVybiBPcmRpbmFyeUdldE1ldGFkYXRhKE1ldGFkYXRhS2V5LCBwYXJlbnQsIFApO1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICAvLyAzLjEuNC4xIE9yZGluYXJ5R2V0T3duTWV0YWRhdGEoTWV0YWRhdGFLZXksIE8sIFApXG4gICAgICAgIC8vIGh0dHBzOi8vcmJ1Y2t0b24uZ2l0aHViLmlvL3JlZmxlY3QtbWV0YWRhdGEvI29yZGluYXJ5Z2V0b3dubWV0YWRhdGFcbiAgICAgICAgZnVuY3Rpb24gT3JkaW5hcnlHZXRPd25NZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUCkge1xuICAgICAgICAgICAgdmFyIHByb3ZpZGVyID0gR2V0TWV0YWRhdGFQcm92aWRlcihPLCBQLCAvKkNyZWF0ZSovIGZhbHNlKTtcbiAgICAgICAgICAgIGlmIChJc1VuZGVmaW5lZChwcm92aWRlcikpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgcmV0dXJuIHByb3ZpZGVyLk9yZGluYXJ5R2V0T3duTWV0YWRhdGEoTWV0YWRhdGFLZXksIE8sIFApO1xuICAgICAgICB9XG4gICAgICAgIC8vIDMuMS41LjEgT3JkaW5hcnlEZWZpbmVPd25NZXRhZGF0YShNZXRhZGF0YUtleSwgTWV0YWRhdGFWYWx1ZSwgTywgUClcbiAgICAgICAgLy8gaHR0cHM6Ly9yYnVja3Rvbi5naXRodWIuaW8vcmVmbGVjdC1tZXRhZGF0YS8jb3JkaW5hcnlkZWZpbmVvd25tZXRhZGF0YVxuICAgICAgICBmdW5jdGlvbiBPcmRpbmFyeURlZmluZU93bk1ldGFkYXRhKE1ldGFkYXRhS2V5LCBNZXRhZGF0YVZhbHVlLCBPLCBQKSB7XG4gICAgICAgICAgICB2YXIgcHJvdmlkZXIgPSBHZXRNZXRhZGF0YVByb3ZpZGVyKE8sIFAsIC8qQ3JlYXRlKi8gdHJ1ZSk7XG4gICAgICAgICAgICBwcm92aWRlci5PcmRpbmFyeURlZmluZU93bk1ldGFkYXRhKE1ldGFkYXRhS2V5LCBNZXRhZGF0YVZhbHVlLCBPLCBQKTtcbiAgICAgICAgfVxuICAgICAgICAvLyAzLjEuNi4xIE9yZGluYXJ5TWV0YWRhdGFLZXlzKE8sIFApXG4gICAgICAgIC8vIGh0dHBzOi8vcmJ1Y2t0b24uZ2l0aHViLmlvL3JlZmxlY3QtbWV0YWRhdGEvI29yZGluYXJ5bWV0YWRhdGFrZXlzXG4gICAgICAgIGZ1bmN0aW9uIE9yZGluYXJ5TWV0YWRhdGFLZXlzKE8sIFApIHtcbiAgICAgICAgICAgIHZhciBvd25LZXlzID0gT3JkaW5hcnlPd25NZXRhZGF0YUtleXMoTywgUCk7XG4gICAgICAgICAgICB2YXIgcGFyZW50ID0gT3JkaW5hcnlHZXRQcm90b3R5cGVPZihPKTtcbiAgICAgICAgICAgIGlmIChwYXJlbnQgPT09IG51bGwpXG4gICAgICAgICAgICAgICAgcmV0dXJuIG93bktleXM7XG4gICAgICAgICAgICB2YXIgcGFyZW50S2V5cyA9IE9yZGluYXJ5TWV0YWRhdGFLZXlzKHBhcmVudCwgUCk7XG4gICAgICAgICAgICBpZiAocGFyZW50S2V5cy5sZW5ndGggPD0gMClcbiAgICAgICAgICAgICAgICByZXR1cm4gb3duS2V5cztcbiAgICAgICAgICAgIGlmIChvd25LZXlzLmxlbmd0aCA8PSAwKVxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJlbnRLZXlzO1xuICAgICAgICAgICAgdmFyIHNldCA9IG5ldyBfU2V0KCk7XG4gICAgICAgICAgICB2YXIga2V5cyA9IFtdO1xuICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBvd25LZXlzXzEgPSBvd25LZXlzOyBfaSA8IG93bktleXNfMS5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICB2YXIga2V5ID0gb3duS2V5c18xW19pXTtcbiAgICAgICAgICAgICAgICB2YXIgaGFzS2V5ID0gc2V0LmhhcyhrZXkpO1xuICAgICAgICAgICAgICAgIGlmICghaGFzS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIHNldC5hZGQoa2V5KTtcbiAgICAgICAgICAgICAgICAgICAga2V5cy5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yICh2YXIgX2EgPSAwLCBwYXJlbnRLZXlzXzEgPSBwYXJlbnRLZXlzOyBfYSA8IHBhcmVudEtleXNfMS5sZW5ndGg7IF9hKyspIHtcbiAgICAgICAgICAgICAgICB2YXIga2V5ID0gcGFyZW50S2V5c18xW19hXTtcbiAgICAgICAgICAgICAgICB2YXIgaGFzS2V5ID0gc2V0LmhhcyhrZXkpO1xuICAgICAgICAgICAgICAgIGlmICghaGFzS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIHNldC5hZGQoa2V5KTtcbiAgICAgICAgICAgICAgICAgICAga2V5cy5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGtleXM7XG4gICAgICAgIH1cbiAgICAgICAgLy8gMy4xLjcuMSBPcmRpbmFyeU93bk1ldGFkYXRhS2V5cyhPLCBQKVxuICAgICAgICAvLyBodHRwczovL3JidWNrdG9uLmdpdGh1Yi5pby9yZWZsZWN0LW1ldGFkYXRhLyNvcmRpbmFyeW93bm1ldGFkYXRha2V5c1xuICAgICAgICBmdW5jdGlvbiBPcmRpbmFyeU93bk1ldGFkYXRhS2V5cyhPLCBQKSB7XG4gICAgICAgICAgICB2YXIgcHJvdmlkZXIgPSBHZXRNZXRhZGF0YVByb3ZpZGVyKE8sIFAsIC8qY3JlYXRlKi8gZmFsc2UpO1xuICAgICAgICAgICAgaWYgKCFwcm92aWRlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwcm92aWRlci5PcmRpbmFyeU93bk1ldGFkYXRhS2V5cyhPLCBQKTtcbiAgICAgICAgfVxuICAgICAgICAvLyA2IEVDTUFTY3JpcHQgRGF0YSBUeXBlcyBhbmQgVmFsdWVzXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWVjbWFzY3JpcHQtZGF0YS10eXBlcy1hbmQtdmFsdWVzXG4gICAgICAgIGZ1bmN0aW9uIFR5cGUoeCkge1xuICAgICAgICAgICAgaWYgKHggPT09IG51bGwpXG4gICAgICAgICAgICAgICAgcmV0dXJuIDEgLyogTnVsbCAqLztcbiAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIHgpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwidW5kZWZpbmVkXCI6IHJldHVybiAwIC8qIFVuZGVmaW5lZCAqLztcbiAgICAgICAgICAgICAgICBjYXNlIFwiYm9vbGVhblwiOiByZXR1cm4gMiAvKiBCb29sZWFuICovO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJzdHJpbmdcIjogcmV0dXJuIDMgLyogU3RyaW5nICovO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJzeW1ib2xcIjogcmV0dXJuIDQgLyogU3ltYm9sICovO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJudW1iZXJcIjogcmV0dXJuIDUgLyogTnVtYmVyICovO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJvYmplY3RcIjogcmV0dXJuIHggPT09IG51bGwgPyAxIC8qIE51bGwgKi8gOiA2IC8qIE9iamVjdCAqLztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiByZXR1cm4gNiAvKiBPYmplY3QgKi87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gNi4xLjEgVGhlIFVuZGVmaW5lZCBUeXBlXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWVjbWFzY3JpcHQtbGFuZ3VhZ2UtdHlwZXMtdW5kZWZpbmVkLXR5cGVcbiAgICAgICAgZnVuY3Rpb24gSXNVbmRlZmluZWQoeCkge1xuICAgICAgICAgICAgcmV0dXJuIHggPT09IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICAvLyA2LjEuMiBUaGUgTnVsbCBUeXBlXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWVjbWFzY3JpcHQtbGFuZ3VhZ2UtdHlwZXMtbnVsbC10eXBlXG4gICAgICAgIGZ1bmN0aW9uIElzTnVsbCh4KSB7XG4gICAgICAgICAgICByZXR1cm4geCA9PT0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICAvLyA2LjEuNSBUaGUgU3ltYm9sIFR5cGVcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcy1zeW1ib2wtdHlwZVxuICAgICAgICBmdW5jdGlvbiBJc1N5bWJvbCh4KSB7XG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mIHggPT09IFwic3ltYm9sXCI7XG4gICAgICAgIH1cbiAgICAgICAgLy8gNi4xLjcgVGhlIE9iamVjdCBUeXBlXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW9iamVjdC10eXBlXG4gICAgICAgIGZ1bmN0aW9uIElzT2JqZWN0KHgpIHtcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgeCA9PT0gXCJvYmplY3RcIiA/IHggIT09IG51bGwgOiB0eXBlb2YgeCA9PT0gXCJmdW5jdGlvblwiO1xuICAgICAgICB9XG4gICAgICAgIC8vIDcuMSBUeXBlIENvbnZlcnNpb25cbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtdHlwZS1jb252ZXJzaW9uXG4gICAgICAgIC8vIDcuMS4xIFRvUHJpbWl0aXZlKGlucHV0IFssIFByZWZlcnJlZFR5cGVdKVxuICAgICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy10b3ByaW1pdGl2ZVxuICAgICAgICBmdW5jdGlvbiBUb1ByaW1pdGl2ZShpbnB1dCwgUHJlZmVycmVkVHlwZSkge1xuICAgICAgICAgICAgc3dpdGNoIChUeXBlKGlucHV0KSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMCAvKiBVbmRlZmluZWQgKi86IHJldHVybiBpbnB1dDtcbiAgICAgICAgICAgICAgICBjYXNlIDEgLyogTnVsbCAqLzogcmV0dXJuIGlucHV0O1xuICAgICAgICAgICAgICAgIGNhc2UgMiAvKiBCb29sZWFuICovOiByZXR1cm4gaW5wdXQ7XG4gICAgICAgICAgICAgICAgY2FzZSAzIC8qIFN0cmluZyAqLzogcmV0dXJuIGlucHV0O1xuICAgICAgICAgICAgICAgIGNhc2UgNCAvKiBTeW1ib2wgKi86IHJldHVybiBpbnB1dDtcbiAgICAgICAgICAgICAgICBjYXNlIDUgLyogTnVtYmVyICovOiByZXR1cm4gaW5wdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgaGludCA9IFByZWZlcnJlZFR5cGUgPT09IDMgLyogU3RyaW5nICovID8gXCJzdHJpbmdcIiA6IFByZWZlcnJlZFR5cGUgPT09IDUgLyogTnVtYmVyICovID8gXCJudW1iZXJcIiA6IFwiZGVmYXVsdFwiO1xuICAgICAgICAgICAgdmFyIGV4b3RpY1RvUHJpbSA9IEdldE1ldGhvZChpbnB1dCwgdG9QcmltaXRpdmVTeW1ib2wpO1xuICAgICAgICAgICAgaWYgKGV4b3RpY1RvUHJpbSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGV4b3RpY1RvUHJpbS5jYWxsKGlucHV0LCBoaW50KTtcbiAgICAgICAgICAgICAgICBpZiAoSXNPYmplY3QocmVzdWx0KSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gT3JkaW5hcnlUb1ByaW1pdGl2ZShpbnB1dCwgaGludCA9PT0gXCJkZWZhdWx0XCIgPyBcIm51bWJlclwiIDogaGludCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gNy4xLjEuMSBPcmRpbmFyeVRvUHJpbWl0aXZlKE8sIGhpbnQpXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW9yZGluYXJ5dG9wcmltaXRpdmVcbiAgICAgICAgZnVuY3Rpb24gT3JkaW5hcnlUb1ByaW1pdGl2ZShPLCBoaW50KSB7XG4gICAgICAgICAgICBpZiAoaGludCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIHZhciB0b1N0cmluZ18xID0gTy50b1N0cmluZztcbiAgICAgICAgICAgICAgICBpZiAoSXNDYWxsYWJsZSh0b1N0cmluZ18xKSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gdG9TdHJpbmdfMS5jYWxsKE8pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIUlzT2JqZWN0KHJlc3VsdCkpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgdmFsdWVPZiA9IE8udmFsdWVPZjtcbiAgICAgICAgICAgICAgICBpZiAoSXNDYWxsYWJsZSh2YWx1ZU9mKSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gdmFsdWVPZi5jYWxsKE8pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIUlzT2JqZWN0KHJlc3VsdCkpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhciB2YWx1ZU9mID0gTy52YWx1ZU9mO1xuICAgICAgICAgICAgICAgIGlmIChJc0NhbGxhYmxlKHZhbHVlT2YpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSB2YWx1ZU9mLmNhbGwoTyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghSXNPYmplY3QocmVzdWx0KSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciB0b1N0cmluZ18yID0gTy50b1N0cmluZztcbiAgICAgICAgICAgICAgICBpZiAoSXNDYWxsYWJsZSh0b1N0cmluZ18yKSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gdG9TdHJpbmdfMi5jYWxsKE8pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIUlzT2JqZWN0KHJlc3VsdCkpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyA3LjEuMiBUb0Jvb2xlYW4oYXJndW1lbnQpXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8yMDE2LyNzZWMtdG9ib29sZWFuXG4gICAgICAgIGZ1bmN0aW9uIFRvQm9vbGVhbihhcmd1bWVudCkge1xuICAgICAgICAgICAgcmV0dXJuICEhYXJndW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gNy4xLjEyIFRvU3RyaW5nKGFyZ3VtZW50KVxuICAgICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy10b3N0cmluZ1xuICAgICAgICBmdW5jdGlvbiBUb1N0cmluZyhhcmd1bWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIFwiXCIgKyBhcmd1bWVudDtcbiAgICAgICAgfVxuICAgICAgICAvLyA3LjEuMTQgVG9Qcm9wZXJ0eUtleShhcmd1bWVudClcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtdG9wcm9wZXJ0eWtleVxuICAgICAgICBmdW5jdGlvbiBUb1Byb3BlcnR5S2V5KGFyZ3VtZW50KSB7XG4gICAgICAgICAgICB2YXIga2V5ID0gVG9QcmltaXRpdmUoYXJndW1lbnQsIDMgLyogU3RyaW5nICovKTtcbiAgICAgICAgICAgIGlmIChJc1N5bWJvbChrZXkpKVxuICAgICAgICAgICAgICAgIHJldHVybiBrZXk7XG4gICAgICAgICAgICByZXR1cm4gVG9TdHJpbmcoa2V5KTtcbiAgICAgICAgfVxuICAgICAgICAvLyA3LjIgVGVzdGluZyBhbmQgQ29tcGFyaXNvbiBPcGVyYXRpb25zXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXRlc3RpbmctYW5kLWNvbXBhcmlzb24tb3BlcmF0aW9uc1xuICAgICAgICAvLyA3LjIuMiBJc0FycmF5KGFyZ3VtZW50KVxuICAgICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1pc2FycmF5XG4gICAgICAgIGZ1bmN0aW9uIElzQXJyYXkoYXJndW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5XG4gICAgICAgICAgICAgICAgPyBBcnJheS5pc0FycmF5KGFyZ3VtZW50KVxuICAgICAgICAgICAgICAgIDogYXJndW1lbnQgaW5zdGFuY2VvZiBPYmplY3RcbiAgICAgICAgICAgICAgICAgICAgPyBhcmd1bWVudCBpbnN0YW5jZW9mIEFycmF5XG4gICAgICAgICAgICAgICAgICAgIDogT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGFyZ3VtZW50KSA9PT0gXCJbb2JqZWN0IEFycmF5XVwiO1xuICAgICAgICB9XG4gICAgICAgIC8vIDcuMi4zIElzQ2FsbGFibGUoYXJndW1lbnQpXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWlzY2FsbGFibGVcbiAgICAgICAgZnVuY3Rpb24gSXNDYWxsYWJsZShhcmd1bWVudCkge1xuICAgICAgICAgICAgLy8gTk9URTogVGhpcyBpcyBhbiBhcHByb3hpbWF0aW9uIGFzIHdlIGNhbm5vdCBjaGVjayBmb3IgW1tDYWxsXV0gaW50ZXJuYWwgbWV0aG9kLlxuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBhcmd1bWVudCA9PT0gXCJmdW5jdGlvblwiO1xuICAgICAgICB9XG4gICAgICAgIC8vIDcuMi40IElzQ29uc3RydWN0b3IoYXJndW1lbnQpXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWlzY29uc3RydWN0b3JcbiAgICAgICAgZnVuY3Rpb24gSXNDb25zdHJ1Y3Rvcihhcmd1bWVudCkge1xuICAgICAgICAgICAgLy8gTk9URTogVGhpcyBpcyBhbiBhcHByb3hpbWF0aW9uIGFzIHdlIGNhbm5vdCBjaGVjayBmb3IgW1tDb25zdHJ1Y3RdXSBpbnRlcm5hbCBtZXRob2QuXG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mIGFyZ3VtZW50ID09PSBcImZ1bmN0aW9uXCI7XG4gICAgICAgIH1cbiAgICAgICAgLy8gNy4yLjcgSXNQcm9wZXJ0eUtleShhcmd1bWVudClcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtaXNwcm9wZXJ0eWtleVxuICAgICAgICBmdW5jdGlvbiBJc1Byb3BlcnR5S2V5KGFyZ3VtZW50KSB7XG4gICAgICAgICAgICBzd2l0Y2ggKFR5cGUoYXJndW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAzIC8qIFN0cmluZyAqLzogcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgY2FzZSA0IC8qIFN5bWJvbCAqLzogcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDogcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIFNhbWVWYWx1ZVplcm8oeCwgeSkge1xuICAgICAgICAgICAgcmV0dXJuIHggPT09IHkgfHwgeCAhPT0geCAmJiB5ICE9PSB5O1xuICAgICAgICB9XG4gICAgICAgIC8vIDcuMyBPcGVyYXRpb25zIG9uIE9iamVjdHNcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb3BlcmF0aW9ucy1vbi1vYmplY3RzXG4gICAgICAgIC8vIDcuMy45IEdldE1ldGhvZChWLCBQKVxuICAgICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1nZXRtZXRob2RcbiAgICAgICAgZnVuY3Rpb24gR2V0TWV0aG9kKFYsIFApIHtcbiAgICAgICAgICAgIHZhciBmdW5jID0gVltQXTtcbiAgICAgICAgICAgIGlmIChmdW5jID09PSB1bmRlZmluZWQgfHwgZnVuYyA9PT0gbnVsbClcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKCFJc0NhbGxhYmxlKGZ1bmMpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgICAgIHJldHVybiBmdW5jO1xuICAgICAgICB9XG4gICAgICAgIC8vIDcuNCBPcGVyYXRpb25zIG9uIEl0ZXJhdG9yIE9iamVjdHNcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb3BlcmF0aW9ucy1vbi1pdGVyYXRvci1vYmplY3RzXG4gICAgICAgIGZ1bmN0aW9uIEdldEl0ZXJhdG9yKG9iaikge1xuICAgICAgICAgICAgdmFyIG1ldGhvZCA9IEdldE1ldGhvZChvYmosIGl0ZXJhdG9yU3ltYm9sKTtcbiAgICAgICAgICAgIGlmICghSXNDYWxsYWJsZShtZXRob2QpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTsgLy8gZnJvbSBDYWxsXG4gICAgICAgICAgICB2YXIgaXRlcmF0b3IgPSBtZXRob2QuY2FsbChvYmopO1xuICAgICAgICAgICAgaWYgKCFJc09iamVjdChpdGVyYXRvcikpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yO1xuICAgICAgICB9XG4gICAgICAgIC8vIDcuNC40IEl0ZXJhdG9yVmFsdWUoaXRlclJlc3VsdClcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLzIwMTYvI3NlYy1pdGVyYXRvcnZhbHVlXG4gICAgICAgIGZ1bmN0aW9uIEl0ZXJhdG9yVmFsdWUoaXRlclJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZXJSZXN1bHQudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gNy40LjUgSXRlcmF0b3JTdGVwKGl0ZXJhdG9yKVxuICAgICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1pdGVyYXRvcnN0ZXBcbiAgICAgICAgZnVuY3Rpb24gSXRlcmF0b3JTdGVwKGl0ZXJhdG9yKSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gaXRlcmF0b3IubmV4dCgpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5kb25lID8gZmFsc2UgOiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gNy40LjYgSXRlcmF0b3JDbG9zZShpdGVyYXRvciwgY29tcGxldGlvbilcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtaXRlcmF0b3JjbG9zZVxuICAgICAgICBmdW5jdGlvbiBJdGVyYXRvckNsb3NlKGl0ZXJhdG9yKSB7XG4gICAgICAgICAgICB2YXIgZiA9IGl0ZXJhdG9yW1wicmV0dXJuXCJdO1xuICAgICAgICAgICAgaWYgKGYpXG4gICAgICAgICAgICAgICAgZi5jYWxsKGl0ZXJhdG9yKTtcbiAgICAgICAgfVxuICAgICAgICAvLyA5LjEgT3JkaW5hcnkgT2JqZWN0IEludGVybmFsIE1ldGhvZHMgYW5kIEludGVybmFsIFNsb3RzXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW9yZGluYXJ5LW9iamVjdC1pbnRlcm5hbC1tZXRob2RzLWFuZC1pbnRlcm5hbC1zbG90c1xuICAgICAgICAvLyA5LjEuMS4xIE9yZGluYXJ5R2V0UHJvdG90eXBlT2YoTylcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb3JkaW5hcnlnZXRwcm90b3R5cGVvZlxuICAgICAgICBmdW5jdGlvbiBPcmRpbmFyeUdldFByb3RvdHlwZU9mKE8pIHtcbiAgICAgICAgICAgIHZhciBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihPKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgTyAhPT0gXCJmdW5jdGlvblwiIHx8IE8gPT09IGZ1bmN0aW9uUHJvdG90eXBlKVxuICAgICAgICAgICAgICAgIHJldHVybiBwcm90bztcbiAgICAgICAgICAgIC8vIFR5cGVTY3JpcHQgZG9lc24ndCBzZXQgX19wcm90b19fIGluIEVTNSwgYXMgaXQncyBub24tc3RhbmRhcmQuXG4gICAgICAgICAgICAvLyBUcnkgdG8gZGV0ZXJtaW5lIHRoZSBzdXBlcmNsYXNzIGNvbnN0cnVjdG9yLiBDb21wYXRpYmxlIGltcGxlbWVudGF0aW9uc1xuICAgICAgICAgICAgLy8gbXVzdCBlaXRoZXIgc2V0IF9fcHJvdG9fXyBvbiBhIHN1YmNsYXNzIGNvbnN0cnVjdG9yIHRvIHRoZSBzdXBlcmNsYXNzIGNvbnN0cnVjdG9yLFxuICAgICAgICAgICAgLy8gb3IgZW5zdXJlIGVhY2ggY2xhc3MgaGFzIGEgdmFsaWQgYGNvbnN0cnVjdG9yYCBwcm9wZXJ0eSBvbiBpdHMgcHJvdG90eXBlIHRoYXRcbiAgICAgICAgICAgIC8vIHBvaW50cyBiYWNrIHRvIHRoZSBjb25zdHJ1Y3Rvci5cbiAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgbm90IHRoZSBzYW1lIGFzIEZ1bmN0aW9uLltbUHJvdG90eXBlXV0sIHRoZW4gdGhpcyBpcyBkZWZpbmF0ZWx5IGluaGVyaXRlZC5cbiAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGNhc2Ugd2hlbiBpbiBFUzYgb3Igd2hlbiB1c2luZyBfX3Byb3RvX18gaW4gYSBjb21wYXRpYmxlIGJyb3dzZXIuXG4gICAgICAgICAgICBpZiAocHJvdG8gIT09IGZ1bmN0aW9uUHJvdG90eXBlKVxuICAgICAgICAgICAgICAgIHJldHVybiBwcm90bztcbiAgICAgICAgICAgIC8vIElmIHRoZSBzdXBlciBwcm90b3R5cGUgaXMgT2JqZWN0LnByb3RvdHlwZSwgbnVsbCwgb3IgdW5kZWZpbmVkLCB0aGVuIHdlIGNhbm5vdCBkZXRlcm1pbmUgdGhlIGhlcml0YWdlLlxuICAgICAgICAgICAgdmFyIHByb3RvdHlwZSA9IE8ucHJvdG90eXBlO1xuICAgICAgICAgICAgdmFyIHByb3RvdHlwZVByb3RvID0gcHJvdG90eXBlICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZihwcm90b3R5cGUpO1xuICAgICAgICAgICAgaWYgKHByb3RvdHlwZVByb3RvID09IG51bGwgfHwgcHJvdG90eXBlUHJvdG8gPT09IE9iamVjdC5wcm90b3R5cGUpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3RvO1xuICAgICAgICAgICAgLy8gSWYgdGhlIGNvbnN0cnVjdG9yIHdhcyBub3QgYSBmdW5jdGlvbiwgdGhlbiB3ZSBjYW5ub3QgZGV0ZXJtaW5lIHRoZSBoZXJpdGFnZS5cbiAgICAgICAgICAgIHZhciBjb25zdHJ1Y3RvciA9IHByb3RvdHlwZVByb3RvLmNvbnN0cnVjdG9yO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb25zdHJ1Y3RvciAhPT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgICAgICAgIHJldHVybiBwcm90bztcbiAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgc29tZSBraW5kIG9mIHNlbGYtcmVmZXJlbmNlLCB0aGVuIHdlIGNhbm5vdCBkZXRlcm1pbmUgdGhlIGhlcml0YWdlLlxuICAgICAgICAgICAgaWYgKGNvbnN0cnVjdG9yID09PSBPKVxuICAgICAgICAgICAgICAgIHJldHVybiBwcm90bztcbiAgICAgICAgICAgIC8vIHdlIGhhdmUgYSBwcmV0dHkgZ29vZCBndWVzcyBhdCB0aGUgaGVyaXRhZ2UuXG4gICAgICAgICAgICByZXR1cm4gY29uc3RydWN0b3I7XG4gICAgICAgIH1cbiAgICAgICAgLy8gR2xvYmFsIG1ldGFkYXRhIHJlZ2lzdHJ5XG4gICAgICAgIC8vIC0gQWxsb3dzIGBpbXBvcnQgXCJyZWZsZWN0LW1ldGFkYXRhXCJgIGFuZCBgaW1wb3J0IFwicmVmbGVjdC1tZXRhZGF0YS9uby1jb25mbGljdFwiYCB0byBpbnRlcm9wZXJhdGUuXG4gICAgICAgIC8vIC0gVXNlcyBpc29sYXRlZCBtZXRhZGF0YSBpZiBgUmVmbGVjdGAgaXMgZnJvemVuIGJlZm9yZSB0aGUgcmVnaXN0cnkgY2FuIGJlIGluc3RhbGxlZC5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIENyZWF0ZXMgYSByZWdpc3RyeSB1c2VkIHRvIGFsbG93IG11bHRpcGxlIGByZWZsZWN0LW1ldGFkYXRhYCBwcm92aWRlcnMuXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBDcmVhdGVNZXRhZGF0YVJlZ2lzdHJ5KCkge1xuICAgICAgICAgICAgdmFyIGZhbGxiYWNrO1xuICAgICAgICAgICAgaWYgKCFJc1VuZGVmaW5lZChyZWdpc3RyeVN5bWJvbCkgJiZcbiAgICAgICAgICAgICAgICB0eXBlb2Ygcm9vdC5SZWZsZWN0ICE9PSBcInVuZGVmaW5lZFwiICYmXG4gICAgICAgICAgICAgICAgIShyZWdpc3RyeVN5bWJvbCBpbiByb290LlJlZmxlY3QpICYmXG4gICAgICAgICAgICAgICAgdHlwZW9mIHJvb3QuUmVmbGVjdC5kZWZpbmVNZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgLy8gaW50ZXJvcGVyYXRlIHdpdGggb2xkZXIgdmVyc2lvbiBvZiBgcmVmbGVjdC1tZXRhZGF0YWAgdGhhdCBkaWQgbm90IHN1cHBvcnQgYSByZWdpc3RyeS5cbiAgICAgICAgICAgICAgICBmYWxsYmFjayA9IENyZWF0ZUZhbGxiYWNrUHJvdmlkZXIocm9vdC5SZWZsZWN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBmaXJzdDtcbiAgICAgICAgICAgIHZhciBzZWNvbmQ7XG4gICAgICAgICAgICB2YXIgcmVzdDtcbiAgICAgICAgICAgIHZhciB0YXJnZXRQcm92aWRlck1hcCA9IG5ldyBfV2Vha01hcCgpO1xuICAgICAgICAgICAgdmFyIHJlZ2lzdHJ5ID0ge1xuICAgICAgICAgICAgICAgIHJlZ2lzdGVyUHJvdmlkZXI6IHJlZ2lzdGVyUHJvdmlkZXIsXG4gICAgICAgICAgICAgICAgZ2V0UHJvdmlkZXI6IGdldFByb3ZpZGVyLFxuICAgICAgICAgICAgICAgIHNldFByb3ZpZGVyOiBzZXRQcm92aWRlcixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gcmVnaXN0cnk7XG4gICAgICAgICAgICBmdW5jdGlvbiByZWdpc3RlclByb3ZpZGVyKHByb3ZpZGVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFPYmplY3QuaXNFeHRlbnNpYmxlKHJlZ2lzdHJ5KSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgYWRkIHByb3ZpZGVyIHRvIGEgZnJvemVuIHJlZ2lzdHJ5LlwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsbGJhY2sgPT09IHByb3ZpZGVyOiBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBJc1VuZGVmaW5lZChmaXJzdCk6XG4gICAgICAgICAgICAgICAgICAgICAgICBmaXJzdCA9IHByb3ZpZGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgZmlyc3QgPT09IHByb3ZpZGVyOiBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBJc1VuZGVmaW5lZChzZWNvbmQpOlxuICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kID0gcHJvdmlkZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBzZWNvbmQgPT09IHByb3ZpZGVyOiBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN0ID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdCA9IG5ldyBfU2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN0LmFkZChwcm92aWRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmdW5jdGlvbiBnZXRQcm92aWRlck5vQ2FjaGUoTywgUCkge1xuICAgICAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQoZmlyc3QpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdC5pc1Byb3ZpZGVyRm9yKE8sIFApKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0O1xuICAgICAgICAgICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKHNlY29uZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZWNvbmQuaXNQcm92aWRlckZvcihPLCBQKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlyc3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKHJlc3QpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZXJhdG9yID0gR2V0SXRlcmF0b3IocmVzdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5leHQgPSBJdGVyYXRvclN0ZXAoaXRlcmF0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW5leHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHByb3ZpZGVyID0gSXRlcmF0b3JWYWx1ZShuZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByb3ZpZGVyLmlzUHJvdmlkZXJGb3IoTywgUCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yQ2xvc2UoaXRlcmF0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByb3ZpZGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQoZmFsbGJhY2spICYmIGZhbGxiYWNrLmlzUHJvdmlkZXJGb3IoTywgUCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbGxiYWNrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gZ2V0UHJvdmlkZXIoTywgUCkge1xuICAgICAgICAgICAgICAgIHZhciBwcm92aWRlck1hcCA9IHRhcmdldFByb3ZpZGVyTWFwLmdldChPKTtcbiAgICAgICAgICAgICAgICB2YXIgcHJvdmlkZXI7XG4gICAgICAgICAgICAgICAgaWYgKCFJc1VuZGVmaW5lZChwcm92aWRlck1hcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXIgPSBwcm92aWRlck1hcC5nZXQoUCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQocHJvdmlkZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm92aWRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcHJvdmlkZXIgPSBnZXRQcm92aWRlck5vQ2FjaGUoTywgUCk7XG4gICAgICAgICAgICAgICAgaWYgKCFJc1VuZGVmaW5lZChwcm92aWRlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKElzVW5kZWZpbmVkKHByb3ZpZGVyTWFwKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJNYXAgPSBuZXcgX01hcCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0UHJvdmlkZXJNYXAuc2V0KE8sIHByb3ZpZGVyTWFwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlck1hcC5zZXQoUCwgcHJvdmlkZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvdmlkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmdW5jdGlvbiBoYXNQcm92aWRlcihwcm92aWRlcikge1xuICAgICAgICAgICAgICAgIGlmIChJc1VuZGVmaW5lZChwcm92aWRlcikpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlyc3QgPT09IHByb3ZpZGVyIHx8IHNlY29uZCA9PT0gcHJvdmlkZXIgfHwgIUlzVW5kZWZpbmVkKHJlc3QpICYmIHJlc3QuaGFzKHByb3ZpZGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZ1bmN0aW9uIHNldFByb3ZpZGVyKE8sIFAsIHByb3ZpZGVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFoYXNQcm92aWRlcihwcm92aWRlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0YWRhdGEgcHJvdmlkZXIgbm90IHJlZ2lzdGVyZWQuXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgZXhpc3RpbmdQcm92aWRlciA9IGdldFByb3ZpZGVyKE8sIFApO1xuICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ1Byb3ZpZGVyICE9PSBwcm92aWRlcikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKGV4aXN0aW5nUHJvdmlkZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIHByb3ZpZGVyTWFwID0gdGFyZ2V0UHJvdmlkZXJNYXAuZ2V0KE8pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoSXNVbmRlZmluZWQocHJvdmlkZXJNYXApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlck1hcCA9IG5ldyBfTWFwKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRQcm92aWRlck1hcC5zZXQoTywgcHJvdmlkZXJNYXApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyTWFwLnNldChQLCBwcm92aWRlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBHZXRzIG9yIGNyZWF0ZXMgdGhlIHNoYXJlZCByZWdpc3RyeSBvZiBtZXRhZGF0YSBwcm92aWRlcnMuXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBHZXRPckNyZWF0ZU1ldGFkYXRhUmVnaXN0cnkoKSB7XG4gICAgICAgICAgICB2YXIgbWV0YWRhdGFSZWdpc3RyeTtcbiAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQocmVnaXN0cnlTeW1ib2wpICYmIElzT2JqZWN0KHJvb3QuUmVmbGVjdCkgJiYgT2JqZWN0LmlzRXh0ZW5zaWJsZShyb290LlJlZmxlY3QpKSB7XG4gICAgICAgICAgICAgICAgbWV0YWRhdGFSZWdpc3RyeSA9IHJvb3QuUmVmbGVjdFtyZWdpc3RyeVN5bWJvbF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoSXNVbmRlZmluZWQobWV0YWRhdGFSZWdpc3RyeSkpIHtcbiAgICAgICAgICAgICAgICBtZXRhZGF0YVJlZ2lzdHJ5ID0gQ3JlYXRlTWV0YWRhdGFSZWdpc3RyeSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFJc1VuZGVmaW5lZChyZWdpc3RyeVN5bWJvbCkgJiYgSXNPYmplY3Qocm9vdC5SZWZsZWN0KSAmJiBPYmplY3QuaXNFeHRlbnNpYmxlKHJvb3QuUmVmbGVjdCkpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocm9vdC5SZWZsZWN0LCByZWdpc3RyeVN5bWJvbCwge1xuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbWV0YWRhdGFSZWdpc3RyeVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG1ldGFkYXRhUmVnaXN0cnk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gQ3JlYXRlTWV0YWRhdGFQcm92aWRlcihyZWdpc3RyeSkge1xuICAgICAgICAgICAgLy8gW1tNZXRhZGF0YV1dIGludGVybmFsIHNsb3RcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vcmJ1Y2t0b24uZ2l0aHViLmlvL3JlZmxlY3QtbWV0YWRhdGEvI29yZGluYXJ5LW9iamVjdC1pbnRlcm5hbC1tZXRob2RzLWFuZC1pbnRlcm5hbC1zbG90c1xuICAgICAgICAgICAgdmFyIG1ldGFkYXRhID0gbmV3IF9XZWFrTWFwKCk7XG4gICAgICAgICAgICB2YXIgcHJvdmlkZXIgPSB7XG4gICAgICAgICAgICAgICAgaXNQcm92aWRlckZvcjogZnVuY3Rpb24gKE8sIFApIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhcmdldE1ldGFkYXRhID0gbWV0YWRhdGEuZ2V0KE8pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoSXNVbmRlZmluZWQodGFyZ2V0TWV0YWRhdGEpKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0TWV0YWRhdGEuaGFzKFApO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgT3JkaW5hcnlEZWZpbmVPd25NZXRhZGF0YTogT3JkaW5hcnlEZWZpbmVPd25NZXRhZGF0YSxcbiAgICAgICAgICAgICAgICBPcmRpbmFyeUhhc093bk1ldGFkYXRhOiBPcmRpbmFyeUhhc093bk1ldGFkYXRhLFxuICAgICAgICAgICAgICAgIE9yZGluYXJ5R2V0T3duTWV0YWRhdGE6IE9yZGluYXJ5R2V0T3duTWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgT3JkaW5hcnlPd25NZXRhZGF0YUtleXM6IE9yZGluYXJ5T3duTWV0YWRhdGFLZXlzLFxuICAgICAgICAgICAgICAgIE9yZGluYXJ5RGVsZXRlTWV0YWRhdGE6IE9yZGluYXJ5RGVsZXRlTWV0YWRhdGEsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbWV0YWRhdGFSZWdpc3RyeS5yZWdpc3RlclByb3ZpZGVyKHByb3ZpZGVyKTtcbiAgICAgICAgICAgIHJldHVybiBwcm92aWRlcjtcbiAgICAgICAgICAgIGZ1bmN0aW9uIEdldE9yQ3JlYXRlTWV0YWRhdGFNYXAoTywgUCwgQ3JlYXRlKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRhcmdldE1ldGFkYXRhID0gbWV0YWRhdGEuZ2V0KE8pO1xuICAgICAgICAgICAgICAgIHZhciBjcmVhdGVkVGFyZ2V0TWV0YWRhdGEgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAoSXNVbmRlZmluZWQodGFyZ2V0TWV0YWRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghQ3JlYXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0TWV0YWRhdGEgPSBuZXcgX01hcCgpO1xuICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YS5zZXQoTywgdGFyZ2V0TWV0YWRhdGEpO1xuICAgICAgICAgICAgICAgICAgICBjcmVhdGVkVGFyZ2V0TWV0YWRhdGEgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgbWV0YWRhdGFNYXAgPSB0YXJnZXRNZXRhZGF0YS5nZXQoUCk7XG4gICAgICAgICAgICAgICAgaWYgKElzVW5kZWZpbmVkKG1ldGFkYXRhTWFwKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIUNyZWF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhTWFwID0gbmV3IF9NYXAoKTtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0TWV0YWRhdGEuc2V0KFAsIG1ldGFkYXRhTWFwKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZWdpc3RyeS5zZXRQcm92aWRlcihPLCBQLCBwcm92aWRlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldE1ldGFkYXRhLmRlbGV0ZShQKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjcmVhdGVkVGFyZ2V0TWV0YWRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YS5kZWxldGUoTyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJXcm9uZyBwcm92aWRlciBmb3IgdGFyZ2V0LlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbWV0YWRhdGFNYXA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAzLjEuMi4xIE9yZGluYXJ5SGFzT3duTWV0YWRhdGEoTWV0YWRhdGFLZXksIE8sIFApXG4gICAgICAgICAgICAvLyBodHRwczovL3JidWNrdG9uLmdpdGh1Yi5pby9yZWZsZWN0LW1ldGFkYXRhLyNvcmRpbmFyeWhhc293bm1ldGFkYXRhXG4gICAgICAgICAgICBmdW5jdGlvbiBPcmRpbmFyeUhhc093bk1ldGFkYXRhKE1ldGFkYXRhS2V5LCBPLCBQKSB7XG4gICAgICAgICAgICAgICAgdmFyIG1ldGFkYXRhTWFwID0gR2V0T3JDcmVhdGVNZXRhZGF0YU1hcChPLCBQLCAvKkNyZWF0ZSovIGZhbHNlKTtcbiAgICAgICAgICAgICAgICBpZiAoSXNVbmRlZmluZWQobWV0YWRhdGFNYXApKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFRvQm9vbGVhbihtZXRhZGF0YU1hcC5oYXMoTWV0YWRhdGFLZXkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIDMuMS40LjEgT3JkaW5hcnlHZXRPd25NZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUClcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vcmJ1Y2t0b24uZ2l0aHViLmlvL3JlZmxlY3QtbWV0YWRhdGEvI29yZGluYXJ5Z2V0b3dubWV0YWRhdGFcbiAgICAgICAgICAgIGZ1bmN0aW9uIE9yZGluYXJ5R2V0T3duTWV0YWRhdGEoTWV0YWRhdGFLZXksIE8sIFApIHtcbiAgICAgICAgICAgICAgICB2YXIgbWV0YWRhdGFNYXAgPSBHZXRPckNyZWF0ZU1ldGFkYXRhTWFwKE8sIFAsIC8qQ3JlYXRlKi8gZmFsc2UpO1xuICAgICAgICAgICAgICAgIGlmIChJc1VuZGVmaW5lZChtZXRhZGF0YU1hcCkpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1ldGFkYXRhTWFwLmdldChNZXRhZGF0YUtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAzLjEuNS4xIE9yZGluYXJ5RGVmaW5lT3duTWV0YWRhdGEoTWV0YWRhdGFLZXksIE1ldGFkYXRhVmFsdWUsIE8sIFApXG4gICAgICAgICAgICAvLyBodHRwczovL3JidWNrdG9uLmdpdGh1Yi5pby9yZWZsZWN0LW1ldGFkYXRhLyNvcmRpbmFyeWRlZmluZW93bm1ldGFkYXRhXG4gICAgICAgICAgICBmdW5jdGlvbiBPcmRpbmFyeURlZmluZU93bk1ldGFkYXRhKE1ldGFkYXRhS2V5LCBNZXRhZGF0YVZhbHVlLCBPLCBQKSB7XG4gICAgICAgICAgICAgICAgdmFyIG1ldGFkYXRhTWFwID0gR2V0T3JDcmVhdGVNZXRhZGF0YU1hcChPLCBQLCAvKkNyZWF0ZSovIHRydWUpO1xuICAgICAgICAgICAgICAgIG1ldGFkYXRhTWFwLnNldChNZXRhZGF0YUtleSwgTWV0YWRhdGFWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAzLjEuNy4xIE9yZGluYXJ5T3duTWV0YWRhdGFLZXlzKE8sIFApXG4gICAgICAgICAgICAvLyBodHRwczovL3JidWNrdG9uLmdpdGh1Yi5pby9yZWZsZWN0LW1ldGFkYXRhLyNvcmRpbmFyeW93bm1ldGFkYXRha2V5c1xuICAgICAgICAgICAgZnVuY3Rpb24gT3JkaW5hcnlPd25NZXRhZGF0YUtleXMoTywgUCkge1xuICAgICAgICAgICAgICAgIHZhciBrZXlzID0gW107XG4gICAgICAgICAgICAgICAgdmFyIG1ldGFkYXRhTWFwID0gR2V0T3JDcmVhdGVNZXRhZGF0YU1hcChPLCBQLCAvKkNyZWF0ZSovIGZhbHNlKTtcbiAgICAgICAgICAgICAgICBpZiAoSXNVbmRlZmluZWQobWV0YWRhdGFNYXApKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ga2V5cztcbiAgICAgICAgICAgICAgICB2YXIga2V5c09iaiA9IG1ldGFkYXRhTWFwLmtleXMoKTtcbiAgICAgICAgICAgICAgICB2YXIgaXRlcmF0b3IgPSBHZXRJdGVyYXRvcihrZXlzT2JqKTtcbiAgICAgICAgICAgICAgICB2YXIgayA9IDA7XG4gICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG5leHQgPSBJdGVyYXRvclN0ZXAoaXRlcmF0b3IpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW5leHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleXMubGVuZ3RoID0gaztcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBrZXlzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBuZXh0VmFsdWUgPSBJdGVyYXRvclZhbHVlKG5leHQpO1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5c1trXSA9IG5leHRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJdGVyYXRvckNsb3NlKGl0ZXJhdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaysrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZ1bmN0aW9uIE9yZGluYXJ5RGVsZXRlTWV0YWRhdGEoTWV0YWRhdGFLZXksIE8sIFApIHtcbiAgICAgICAgICAgICAgICB2YXIgbWV0YWRhdGFNYXAgPSBHZXRPckNyZWF0ZU1ldGFkYXRhTWFwKE8sIFAsIC8qQ3JlYXRlKi8gZmFsc2UpO1xuICAgICAgICAgICAgICAgIGlmIChJc1VuZGVmaW5lZChtZXRhZGF0YU1hcCkpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAoIW1ldGFkYXRhTWFwLmRlbGV0ZShNZXRhZGF0YUtleSkpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAobWV0YWRhdGFNYXAuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0TWV0YWRhdGEgPSBtZXRhZGF0YS5nZXQoTyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQodGFyZ2V0TWV0YWRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRNZXRhZGF0YS5kZWxldGUoUCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0TWV0YWRhdGEuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLmRlbGV0ZSh0YXJnZXRNZXRhZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gQ3JlYXRlRmFsbGJhY2tQcm92aWRlcihyZWZsZWN0KSB7XG4gICAgICAgICAgICB2YXIgZGVmaW5lTWV0YWRhdGEgPSByZWZsZWN0LmRlZmluZU1ldGFkYXRhLCBoYXNPd25NZXRhZGF0YSA9IHJlZmxlY3QuaGFzT3duTWV0YWRhdGEsIGdldE93bk1ldGFkYXRhID0gcmVmbGVjdC5nZXRPd25NZXRhZGF0YSwgZ2V0T3duTWV0YWRhdGFLZXlzID0gcmVmbGVjdC5nZXRPd25NZXRhZGF0YUtleXMsIGRlbGV0ZU1ldGFkYXRhID0gcmVmbGVjdC5kZWxldGVNZXRhZGF0YTtcbiAgICAgICAgICAgIHZhciBtZXRhZGF0YU93bmVyID0gbmV3IF9XZWFrTWFwKCk7XG4gICAgICAgICAgICB2YXIgcHJvdmlkZXIgPSB7XG4gICAgICAgICAgICAgICAgaXNQcm92aWRlckZvcjogZnVuY3Rpb24gKE8sIFApIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG1ldGFkYXRhUHJvcGVydHlTZXQgPSBtZXRhZGF0YU93bmVyLmdldChPKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFJc1VuZGVmaW5lZChtZXRhZGF0YVByb3BlcnR5U2V0KSAmJiBtZXRhZGF0YVByb3BlcnR5U2V0LmhhcyhQKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGdldE93bk1ldGFkYXRhS2V5cyhPLCBQKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChJc1VuZGVmaW5lZChtZXRhZGF0YVByb3BlcnR5U2V0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhUHJvcGVydHlTZXQgPSBuZXcgX1NldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhT3duZXIuc2V0KE8sIG1ldGFkYXRhUHJvcGVydHlTZXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGFQcm9wZXJ0eVNldC5hZGQoUCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBPcmRpbmFyeURlZmluZU93bk1ldGFkYXRhOiBkZWZpbmVNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICBPcmRpbmFyeUhhc093bk1ldGFkYXRhOiBoYXNPd25NZXRhZGF0YSxcbiAgICAgICAgICAgICAgICBPcmRpbmFyeUdldE93bk1ldGFkYXRhOiBnZXRPd25NZXRhZGF0YSxcbiAgICAgICAgICAgICAgICBPcmRpbmFyeU93bk1ldGFkYXRhS2V5czogZ2V0T3duTWV0YWRhdGFLZXlzLFxuICAgICAgICAgICAgICAgIE9yZGluYXJ5RGVsZXRlTWV0YWRhdGE6IGRlbGV0ZU1ldGFkYXRhLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiBwcm92aWRlcjtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogR2V0cyB0aGUgbWV0YWRhdGEgcHJvdmlkZXIgZm9yIGFuIG9iamVjdC4gSWYgdGhlIG9iamVjdCBoYXMgbm8gbWV0YWRhdGEgcHJvdmlkZXIgYW5kIHRoaXMgaXMgZm9yIGEgY3JlYXRlIG9wZXJhdGlvbixcbiAgICAgICAgICogdGhlbiB0aGlzIG1vZHVsZSdzIG1ldGFkYXRhIHByb3ZpZGVyIGlzIGFzc2lnbmVkIHRvIHRoZSBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBHZXRNZXRhZGF0YVByb3ZpZGVyKE8sIFAsIENyZWF0ZSkge1xuICAgICAgICAgICAgdmFyIHJlZ2lzdGVyZWRQcm92aWRlciA9IG1ldGFkYXRhUmVnaXN0cnkuZ2V0UHJvdmlkZXIoTywgUCk7XG4gICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKHJlZ2lzdGVyZWRQcm92aWRlcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVnaXN0ZXJlZFByb3ZpZGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKENyZWF0ZSkge1xuICAgICAgICAgICAgICAgIGlmIChtZXRhZGF0YVJlZ2lzdHJ5LnNldFByb3ZpZGVyKE8sIFAsIG1ldGFkYXRhUHJvdmlkZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtZXRhZGF0YVByb3ZpZGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbGxlZ2FsIHN0YXRlLlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbmFpdmUgTWFwIHNoaW1cbiAgICAgICAgZnVuY3Rpb24gQ3JlYXRlTWFwUG9seWZpbGwoKSB7XG4gICAgICAgICAgICB2YXIgY2FjaGVTZW50aW5lbCA9IHt9O1xuICAgICAgICAgICAgdmFyIGFycmF5U2VudGluZWwgPSBbXTtcbiAgICAgICAgICAgIHZhciBNYXBJdGVyYXRvciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBNYXBJdGVyYXRvcihrZXlzLCB2YWx1ZXMsIHNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2luZGV4ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fa2V5cyA9IGtleXM7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlcyA9IHZhbHVlcztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0b3IgPSBzZWxlY3RvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgTWFwSXRlcmF0b3IucHJvdG90eXBlW1wiQEBpdGVyYXRvclwiXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH07XG4gICAgICAgICAgICAgICAgTWFwSXRlcmF0b3IucHJvdG90eXBlW2l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH07XG4gICAgICAgICAgICAgICAgTWFwSXRlcmF0b3IucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHRoaXMuX2luZGV4O1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMuX2tleXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gdGhpcy5fc2VsZWN0b3IodGhpcy5fa2V5c1tpbmRleF0sIHRoaXMuX3ZhbHVlc1tpbmRleF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ICsgMSA+PSB0aGlzLl9rZXlzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luZGV4ID0gLTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fa2V5cyA9IGFycmF5U2VudGluZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVzID0gYXJyYXlTZW50aW5lbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luZGV4Kys7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogcmVzdWx0LCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIE1hcEl0ZXJhdG9yLnByb3RvdHlwZS50aHJvdyA9IGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5faW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5kZXggPSAtMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2tleXMgPSBhcnJheVNlbnRpbmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVzID0gYXJyYXlTZW50aW5lbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIE1hcEl0ZXJhdG9yLnByb3RvdHlwZS5yZXR1cm4gPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2luZGV4ID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luZGV4ID0gLTE7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9rZXlzID0gYXJyYXlTZW50aW5lbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlcyA9IGFycmF5U2VudGluZWw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IHZhbHVlLCBkb25lOiB0cnVlIH07XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXR1cm4gTWFwSXRlcmF0b3I7XG4gICAgICAgICAgICB9KCkpO1xuICAgICAgICAgICAgdmFyIE1hcCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBNYXAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2tleXMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVzID0gW107XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlS2V5ID0gY2FjaGVTZW50aW5lbDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVJbmRleCA9IC0yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoTWFwLnByb3RvdHlwZSwgXCJzaXplXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9rZXlzLmxlbmd0aDsgfSxcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgTWFwLnByb3RvdHlwZS5oYXMgPSBmdW5jdGlvbiAoa2V5KSB7IHJldHVybiB0aGlzLl9maW5kKGtleSwgLyppbnNlcnQqLyBmYWxzZSkgPj0gMDsgfTtcbiAgICAgICAgICAgICAgICBNYXAucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gdGhpcy5fZmluZChrZXksIC8qaW5zZXJ0Ki8gZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXggPj0gMCA/IHRoaXMuX3ZhbHVlc1tpbmRleF0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBNYXAucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHRoaXMuX2ZpbmQoa2V5LCAvKmluc2VydCovIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZXNbaW5kZXhdID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgTWFwLnByb3RvdHlwZS5kZWxldGUgPSBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHRoaXMuX2ZpbmQoa2V5LCAvKmluc2VydCovIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzaXplID0gdGhpcy5fa2V5cy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gaW5kZXggKyAxOyBpIDwgc2l6ZTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fa2V5c1tpIC0gMV0gPSB0aGlzLl9rZXlzW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlc1tpIC0gMV0gPSB0aGlzLl92YWx1ZXNbaV07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9rZXlzLmxlbmd0aC0tO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVzLmxlbmd0aC0tO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFNhbWVWYWx1ZVplcm8oa2V5LCB0aGlzLl9jYWNoZUtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZUtleSA9IGNhY2hlU2VudGluZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVJbmRleCA9IC0yO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgTWFwLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fa2V5cy5sZW5ndGggPSAwO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZXMubGVuZ3RoID0gMDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVLZXkgPSBjYWNoZVNlbnRpbmVsO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZUluZGV4ID0gLTI7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBNYXAucHJvdG90eXBlLmtleXMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBuZXcgTWFwSXRlcmF0b3IodGhpcy5fa2V5cywgdGhpcy5fdmFsdWVzLCBnZXRLZXkpOyB9O1xuICAgICAgICAgICAgICAgIE1hcC5wcm90b3R5cGUudmFsdWVzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gbmV3IE1hcEl0ZXJhdG9yKHRoaXMuX2tleXMsIHRoaXMuX3ZhbHVlcywgZ2V0VmFsdWUpOyB9O1xuICAgICAgICAgICAgICAgIE1hcC5wcm90b3R5cGUuZW50cmllcyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG5ldyBNYXBJdGVyYXRvcih0aGlzLl9rZXlzLCB0aGlzLl92YWx1ZXMsIGdldEVudHJ5KTsgfTtcbiAgICAgICAgICAgICAgICBNYXAucHJvdG90eXBlW1wiQEBpdGVyYXRvclwiXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuZW50cmllcygpOyB9O1xuICAgICAgICAgICAgICAgIE1hcC5wcm90b3R5cGVbaXRlcmF0b3JTeW1ib2xdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5lbnRyaWVzKCk7IH07XG4gICAgICAgICAgICAgICAgTWFwLnByb3RvdHlwZS5fZmluZCA9IGZ1bmN0aW9uIChrZXksIGluc2VydCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIVNhbWVWYWx1ZVplcm8odGhpcy5fY2FjaGVLZXksIGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlSW5kZXggPSAtMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fa2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTYW1lVmFsdWVaZXJvKHRoaXMuX2tleXNbaV0sIGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVJbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY2FjaGVJbmRleCA8IDAgJiYgaW5zZXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZUluZGV4ID0gdGhpcy5fa2V5cy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9rZXlzLnB1c2goa2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlcy5wdXNoKHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NhY2hlSW5kZXg7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXR1cm4gTWFwO1xuICAgICAgICAgICAgfSgpKTtcbiAgICAgICAgICAgIHJldHVybiBNYXA7XG4gICAgICAgICAgICBmdW5jdGlvbiBnZXRLZXkoa2V5LCBfKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZ1bmN0aW9uIGdldFZhbHVlKF8sIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gZ2V0RW50cnkoa2V5LCB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBba2V5LCB2YWx1ZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gbmFpdmUgU2V0IHNoaW1cbiAgICAgICAgZnVuY3Rpb24gQ3JlYXRlU2V0UG9seWZpbGwoKSB7XG4gICAgICAgICAgICB2YXIgU2V0ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIFNldCgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwID0gbmV3IF9NYXAoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFNldC5wcm90b3R5cGUsIFwic2l6ZVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fbWFwLnNpemU7IH0sXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIFNldC5wcm90b3R5cGUuaGFzID0gZnVuY3Rpb24gKHZhbHVlKSB7IHJldHVybiB0aGlzLl9tYXAuaGFzKHZhbHVlKTsgfTtcbiAgICAgICAgICAgICAgICBTZXQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh2YWx1ZSkgeyByZXR1cm4gdGhpcy5fbWFwLnNldCh2YWx1ZSwgdmFsdWUpLCB0aGlzOyB9O1xuICAgICAgICAgICAgICAgIFNldC5wcm90b3R5cGUuZGVsZXRlID0gZnVuY3Rpb24gKHZhbHVlKSB7IHJldHVybiB0aGlzLl9tYXAuZGVsZXRlKHZhbHVlKTsgfTtcbiAgICAgICAgICAgICAgICBTZXQucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24gKCkgeyB0aGlzLl9tYXAuY2xlYXIoKTsgfTtcbiAgICAgICAgICAgICAgICBTZXQucHJvdG90eXBlLmtleXMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9tYXAua2V5cygpOyB9O1xuICAgICAgICAgICAgICAgIFNldC5wcm90b3R5cGUudmFsdWVzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fbWFwLmtleXMoKTsgfTtcbiAgICAgICAgICAgICAgICBTZXQucHJvdG90eXBlLmVudHJpZXMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9tYXAuZW50cmllcygpOyB9O1xuICAgICAgICAgICAgICAgIFNldC5wcm90b3R5cGVbXCJAQGl0ZXJhdG9yXCJdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5rZXlzKCk7IH07XG4gICAgICAgICAgICAgICAgU2V0LnByb3RvdHlwZVtpdGVyYXRvclN5bWJvbF0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLmtleXMoKTsgfTtcbiAgICAgICAgICAgICAgICByZXR1cm4gU2V0O1xuICAgICAgICAgICAgfSgpKTtcbiAgICAgICAgICAgIHJldHVybiBTZXQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbmFpdmUgV2Vha01hcCBzaGltXG4gICAgICAgIGZ1bmN0aW9uIENyZWF0ZVdlYWtNYXBQb2x5ZmlsbCgpIHtcbiAgICAgICAgICAgIHZhciBVVUlEX1NJWkUgPSAxNjtcbiAgICAgICAgICAgIHZhciBrZXlzID0gSGFzaE1hcC5jcmVhdGUoKTtcbiAgICAgICAgICAgIHZhciByb290S2V5ID0gQ3JlYXRlVW5pcXVlS2V5KCk7XG4gICAgICAgICAgICByZXR1cm4gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIFdlYWtNYXAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2tleSA9IENyZWF0ZVVuaXF1ZUtleSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBXZWFrTWFwLnByb3RvdHlwZS5oYXMgPSBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciB0YWJsZSA9IEdldE9yQ3JlYXRlV2Vha01hcFRhYmxlKHRhcmdldCwgLypjcmVhdGUqLyBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0YWJsZSAhPT0gdW5kZWZpbmVkID8gSGFzaE1hcC5oYXModGFibGUsIHRoaXMuX2tleSkgOiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIFdlYWtNYXAucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhYmxlID0gR2V0T3JDcmVhdGVXZWFrTWFwVGFibGUodGFyZ2V0LCAvKmNyZWF0ZSovIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRhYmxlICE9PSB1bmRlZmluZWQgPyBIYXNoTWFwLmdldCh0YWJsZSwgdGhpcy5fa2V5KSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIFdlYWtNYXAucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uICh0YXJnZXQsIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciB0YWJsZSA9IEdldE9yQ3JlYXRlV2Vha01hcFRhYmxlKHRhcmdldCwgLypjcmVhdGUqLyB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgdGFibGVbdGhpcy5fa2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIFdlYWtNYXAucHJvdG90eXBlLmRlbGV0ZSA9IGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhYmxlID0gR2V0T3JDcmVhdGVXZWFrTWFwVGFibGUodGFyZ2V0LCAvKmNyZWF0ZSovIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRhYmxlICE9PSB1bmRlZmluZWQgPyBkZWxldGUgdGFibGVbdGhpcy5fa2V5XSA6IGZhbHNlO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgV2Vha01hcC5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE5PVEU6IG5vdCBhIHJlYWwgY2xlYXIsIGp1c3QgbWFrZXMgdGhlIHByZXZpb3VzIGRhdGEgdW5yZWFjaGFibGVcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fa2V5ID0gQ3JlYXRlVW5pcXVlS2V5KCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXR1cm4gV2Vha01hcDtcbiAgICAgICAgICAgIH0oKSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBDcmVhdGVVbmlxdWVLZXkoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGtleTtcbiAgICAgICAgICAgICAgICBkb1xuICAgICAgICAgICAgICAgICAgICBrZXkgPSBcIkBAV2Vha01hcEBAXCIgKyBDcmVhdGVVVUlEKCk7XG4gICAgICAgICAgICAgICAgd2hpbGUgKEhhc2hNYXAuaGFzKGtleXMsIGtleSkpO1xuICAgICAgICAgICAgICAgIGtleXNba2V5XSA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZ1bmN0aW9uIEdldE9yQ3JlYXRlV2Vha01hcFRhYmxlKHRhcmdldCwgY3JlYXRlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFoYXNPd24uY2FsbCh0YXJnZXQsIHJvb3RLZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY3JlYXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgcm9vdEtleSwgeyB2YWx1ZTogSGFzaE1hcC5jcmVhdGUoKSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtyb290S2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZ1bmN0aW9uIEZpbGxSYW5kb21CeXRlcyhidWZmZXIsIHNpemUpIHtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpemU7ICsraSlcbiAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2ldID0gTWF0aC5yYW5kb20oKSAqIDB4ZmYgfCAwO1xuICAgICAgICAgICAgICAgIHJldHVybiBidWZmZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmdW5jdGlvbiBHZW5SYW5kb21CeXRlcyhzaXplKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBVaW50OEFycmF5ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoc2l6ZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY3J5cHRvICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGFycmF5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgbXNDcnlwdG8gIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcyhhcnJheSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBGaWxsUmFuZG9tQnl0ZXMoYXJyYXksIHNpemUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhcnJheTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpbGxSYW5kb21CeXRlcyhuZXcgQXJyYXkoc2l6ZSksIHNpemUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gQ3JlYXRlVVVJRCgpIHtcbiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IEdlblJhbmRvbUJ5dGVzKFVVSURfU0laRSk7XG4gICAgICAgICAgICAgICAgLy8gbWFyayBhcyByYW5kb20gLSBSRkMgNDEyMiDCpyA0LjRcbiAgICAgICAgICAgICAgICBkYXRhWzZdID0gZGF0YVs2XSAmIDB4NGYgfCAweDQwO1xuICAgICAgICAgICAgICAgIGRhdGFbOF0gPSBkYXRhWzhdICYgMHhiZiB8IDB4ODA7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgb2Zmc2V0ID0gMDsgb2Zmc2V0IDwgVVVJRF9TSVpFOyArK29mZnNldCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgYnl0ZSA9IGRhdGFbb2Zmc2V0XTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9mZnNldCA9PT0gNCB8fCBvZmZzZXQgPT09IDYgfHwgb2Zmc2V0ID09PSA4KVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IFwiLVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYnl0ZSA8IDE2KVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IFwiMFwiO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gYnl0ZS50b1N0cmluZygxNikudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyB1c2VzIGEgaGV1cmlzdGljIHVzZWQgYnkgdjggYW5kIGNoYWtyYSB0byBmb3JjZSBhbiBvYmplY3QgaW50byBkaWN0aW9uYXJ5IG1vZGUuXG4gICAgICAgIGZ1bmN0aW9uIE1ha2VEaWN0aW9uYXJ5KG9iaikge1xuICAgICAgICAgICAgb2JqLl9fID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgZGVsZXRlIG9iai5fXztcbiAgICAgICAgICAgIHJldHVybiBvYmo7XG4gICAgICAgIH1cbiAgICB9KTtcbn0pKFJlZmxlY3QgfHwgKFJlZmxlY3QgPSB7fSkpO1xuIiwiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogcmVhY3QucHJvZHVjdGlvbi5taW4uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuJ3VzZSBzdHJpY3QnO3ZhciBsPVN5bWJvbC5mb3IoXCJyZWFjdC5lbGVtZW50XCIpLG49U3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKSxwPVN5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKSxxPVN5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKSxyPVN5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKSx0PVN5bWJvbC5mb3IoXCJyZWFjdC5wcm92aWRlclwiKSx1PVN5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpLHY9U3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpLHc9U3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpLHg9U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9cIikseT1TeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKSx6PVN5bWJvbC5pdGVyYXRvcjtmdW5jdGlvbiBBKGEpe2lmKG51bGw9PT1hfHxcIm9iamVjdFwiIT09dHlwZW9mIGEpcmV0dXJuIG51bGw7YT16JiZhW3pdfHxhW1wiQEBpdGVyYXRvclwiXTtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgYT9hOm51bGx9XG52YXIgQj17aXNNb3VudGVkOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVNldFN0YXRlOmZ1bmN0aW9uKCl7fX0sQz1PYmplY3QuYXNzaWduLEQ9e307ZnVuY3Rpb24gRShhLGIsZSl7dGhpcy5wcm9wcz1hO3RoaXMuY29udGV4dD1iO3RoaXMucmVmcz1EO3RoaXMudXBkYXRlcj1lfHxCfUUucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9e307XG5FLnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihhLGIpe2lmKFwib2JqZWN0XCIhPT10eXBlb2YgYSYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGEmJm51bGwhPWEpdGhyb3cgRXJyb3IoXCJzZXRTdGF0ZSguLi4pOiB0YWtlcyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzIHRvIHVwZGF0ZSBvciBhIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcy5cIik7dGhpcy51cGRhdGVyLmVucXVldWVTZXRTdGF0ZSh0aGlzLGEsYixcInNldFN0YXRlXCIpfTtFLnByb3RvdHlwZS5mb3JjZVVwZGF0ZT1mdW5jdGlvbihhKXt0aGlzLnVwZGF0ZXIuZW5xdWV1ZUZvcmNlVXBkYXRlKHRoaXMsYSxcImZvcmNlVXBkYXRlXCIpfTtmdW5jdGlvbiBGKCl7fUYucHJvdG90eXBlPUUucHJvdG90eXBlO2Z1bmN0aW9uIEcoYSxiLGUpe3RoaXMucHJvcHM9YTt0aGlzLmNvbnRleHQ9Yjt0aGlzLnJlZnM9RDt0aGlzLnVwZGF0ZXI9ZXx8Qn12YXIgSD1HLnByb3RvdHlwZT1uZXcgRjtcbkguY29uc3RydWN0b3I9RztDKEgsRS5wcm90b3R5cGUpO0guaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIEk9QXJyYXkuaXNBcnJheSxKPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksSz17Y3VycmVudDpudWxsfSxMPXtrZXk6ITAscmVmOiEwLF9fc2VsZjohMCxfX3NvdXJjZTohMH07XG5mdW5jdGlvbiBNKGEsYixlKXt2YXIgZCxjPXt9LGs9bnVsbCxoPW51bGw7aWYobnVsbCE9Yilmb3IoZCBpbiB2b2lkIDAhPT1iLnJlZiYmKGg9Yi5yZWYpLHZvaWQgMCE9PWIua2V5JiYoaz1cIlwiK2Iua2V5KSxiKUouY2FsbChiLGQpJiYhTC5oYXNPd25Qcm9wZXJ0eShkKSYmKGNbZF09YltkXSk7dmFyIGc9YXJndW1lbnRzLmxlbmd0aC0yO2lmKDE9PT1nKWMuY2hpbGRyZW49ZTtlbHNlIGlmKDE8Zyl7Zm9yKHZhciBmPUFycmF5KGcpLG09MDttPGc7bSsrKWZbbV09YXJndW1lbnRzW20rMl07Yy5jaGlsZHJlbj1mfWlmKGEmJmEuZGVmYXVsdFByb3BzKWZvcihkIGluIGc9YS5kZWZhdWx0UHJvcHMsZyl2b2lkIDA9PT1jW2RdJiYoY1tkXT1nW2RdKTtyZXR1cm57JCR0eXBlb2Y6bCx0eXBlOmEsa2V5OmsscmVmOmgscHJvcHM6Yyxfb3duZXI6Sy5jdXJyZW50fX1cbmZ1bmN0aW9uIE4oYSxiKXtyZXR1cm57JCR0eXBlb2Y6bCx0eXBlOmEudHlwZSxrZXk6YixyZWY6YS5yZWYscHJvcHM6YS5wcm9wcyxfb3duZXI6YS5fb3duZXJ9fWZ1bmN0aW9uIE8oYSl7cmV0dXJuXCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSYmYS4kJHR5cGVvZj09PWx9ZnVuY3Rpb24gZXNjYXBlKGEpe3ZhciBiPXtcIj1cIjpcIj0wXCIsXCI6XCI6XCI9MlwifTtyZXR1cm5cIiRcIithLnJlcGxhY2UoL1s9Ol0vZyxmdW5jdGlvbihhKXtyZXR1cm4gYlthXX0pfXZhciBQPS9cXC8rL2c7ZnVuY3Rpb24gUShhLGIpe3JldHVyblwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEmJm51bGwhPWEua2V5P2VzY2FwZShcIlwiK2Eua2V5KTpiLnRvU3RyaW5nKDM2KX1cbmZ1bmN0aW9uIFIoYSxiLGUsZCxjKXt2YXIgaz10eXBlb2YgYTtpZihcInVuZGVmaW5lZFwiPT09a3x8XCJib29sZWFuXCI9PT1rKWE9bnVsbDt2YXIgaD0hMTtpZihudWxsPT09YSloPSEwO2Vsc2Ugc3dpdGNoKGspe2Nhc2UgXCJzdHJpbmdcIjpjYXNlIFwibnVtYmVyXCI6aD0hMDticmVhaztjYXNlIFwib2JqZWN0XCI6c3dpdGNoKGEuJCR0eXBlb2Ype2Nhc2UgbDpjYXNlIG46aD0hMH19aWYoaClyZXR1cm4gaD1hLGM9YyhoKSxhPVwiXCI9PT1kP1wiLlwiK1EoaCwwKTpkLEkoYyk/KGU9XCJcIixudWxsIT1hJiYoZT1hLnJlcGxhY2UoUCxcIiQmL1wiKStcIi9cIiksUihjLGIsZSxcIlwiLGZ1bmN0aW9uKGEpe3JldHVybiBhfSkpOm51bGwhPWMmJihPKGMpJiYoYz1OKGMsZSsoIWMua2V5fHxoJiZoLmtleT09PWMua2V5P1wiXCI6KFwiXCIrYy5rZXkpLnJlcGxhY2UoUCxcIiQmL1wiKStcIi9cIikrYSkpLGIucHVzaChjKSksMTtoPTA7ZD1cIlwiPT09ZD9cIi5cIjpkK1wiOlwiO2lmKEkoYSkpZm9yKHZhciBnPTA7ZzxhLmxlbmd0aDtnKyspe2s9XG5hW2ddO3ZhciBmPWQrUShrLGcpO2grPVIoayxiLGUsZixjKX1lbHNlIGlmKGY9QShhKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZilmb3IoYT1mLmNhbGwoYSksZz0wOyEoaz1hLm5leHQoKSkuZG9uZTspaz1rLnZhbHVlLGY9ZCtRKGssZysrKSxoKz1SKGssYixlLGYsYyk7ZWxzZSBpZihcIm9iamVjdFwiPT09ayl0aHJvdyBiPVN0cmluZyhhKSxFcnJvcihcIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogXCIrKFwiW29iamVjdCBPYmplY3RdXCI9PT1iP1wib2JqZWN0IHdpdGgga2V5cyB7XCIrT2JqZWN0LmtleXMoYSkuam9pbihcIiwgXCIpK1wifVwiOmIpK1wiKS4gSWYgeW91IG1lYW50IHRvIHJlbmRlciBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4sIHVzZSBhbiBhcnJheSBpbnN0ZWFkLlwiKTtyZXR1cm4gaH1cbmZ1bmN0aW9uIFMoYSxiLGUpe2lmKG51bGw9PWEpcmV0dXJuIGE7dmFyIGQ9W10sYz0wO1IoYSxkLFwiXCIsXCJcIixmdW5jdGlvbihhKXtyZXR1cm4gYi5jYWxsKGUsYSxjKyspfSk7cmV0dXJuIGR9ZnVuY3Rpb24gVChhKXtpZigtMT09PWEuX3N0YXR1cyl7dmFyIGI9YS5fcmVzdWx0O2I9YigpO2IudGhlbihmdW5jdGlvbihiKXtpZigwPT09YS5fc3RhdHVzfHwtMT09PWEuX3N0YXR1cylhLl9zdGF0dXM9MSxhLl9yZXN1bHQ9Yn0sZnVuY3Rpb24oYil7aWYoMD09PWEuX3N0YXR1c3x8LTE9PT1hLl9zdGF0dXMpYS5fc3RhdHVzPTIsYS5fcmVzdWx0PWJ9KTstMT09PWEuX3N0YXR1cyYmKGEuX3N0YXR1cz0wLGEuX3Jlc3VsdD1iKX1pZigxPT09YS5fc3RhdHVzKXJldHVybiBhLl9yZXN1bHQuZGVmYXVsdDt0aHJvdyBhLl9yZXN1bHQ7fVxudmFyIFU9e2N1cnJlbnQ6bnVsbH0sVj17dHJhbnNpdGlvbjpudWxsfSxXPXtSZWFjdEN1cnJlbnREaXNwYXRjaGVyOlUsUmVhY3RDdXJyZW50QmF0Y2hDb25maWc6VixSZWFjdEN1cnJlbnRPd25lcjpLfTtmdW5jdGlvbiBYKCl7dGhyb3cgRXJyb3IoXCJhY3QoLi4uKSBpcyBub3Qgc3VwcG9ydGVkIGluIHByb2R1Y3Rpb24gYnVpbGRzIG9mIFJlYWN0LlwiKTt9XG5leHBvcnRzLkNoaWxkcmVuPXttYXA6Uyxmb3JFYWNoOmZ1bmN0aW9uKGEsYixlKXtTKGEsZnVuY3Rpb24oKXtiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZSl9LGNvdW50OmZ1bmN0aW9uKGEpe3ZhciBiPTA7UyhhLGZ1bmN0aW9uKCl7YisrfSk7cmV0dXJuIGJ9LHRvQXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIFMoYSxmdW5jdGlvbihhKXtyZXR1cm4gYX0pfHxbXX0sb25seTpmdW5jdGlvbihhKXtpZighTyhhKSl0aHJvdyBFcnJvcihcIlJlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLlwiKTtyZXR1cm4gYX19O2V4cG9ydHMuQ29tcG9uZW50PUU7ZXhwb3J0cy5GcmFnbWVudD1wO2V4cG9ydHMuUHJvZmlsZXI9cjtleHBvcnRzLlB1cmVDb21wb25lbnQ9RztleHBvcnRzLlN0cmljdE1vZGU9cTtleHBvcnRzLlN1c3BlbnNlPXc7XG5leHBvcnRzLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEPVc7ZXhwb3J0cy5hY3Q9WDtcbmV4cG9ydHMuY2xvbmVFbGVtZW50PWZ1bmN0aW9uKGEsYixlKXtpZihudWxsPT09YXx8dm9pZCAwPT09YSl0aHJvdyBFcnJvcihcIlJlYWN0LmNsb25lRWxlbWVudCguLi4pOiBUaGUgYXJndW1lbnQgbXVzdCBiZSBhIFJlYWN0IGVsZW1lbnQsIGJ1dCB5b3UgcGFzc2VkIFwiK2ErXCIuXCIpO3ZhciBkPUMoe30sYS5wcm9wcyksYz1hLmtleSxrPWEucmVmLGg9YS5fb3duZXI7aWYobnVsbCE9Yil7dm9pZCAwIT09Yi5yZWYmJihrPWIucmVmLGg9Sy5jdXJyZW50KTt2b2lkIDAhPT1iLmtleSYmKGM9XCJcIitiLmtleSk7aWYoYS50eXBlJiZhLnR5cGUuZGVmYXVsdFByb3BzKXZhciBnPWEudHlwZS5kZWZhdWx0UHJvcHM7Zm9yKGYgaW4gYilKLmNhbGwoYixmKSYmIUwuaGFzT3duUHJvcGVydHkoZikmJihkW2ZdPXZvaWQgMD09PWJbZl0mJnZvaWQgMCE9PWc/Z1tmXTpiW2ZdKX12YXIgZj1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWYpZC5jaGlsZHJlbj1lO2Vsc2UgaWYoMTxmKXtnPUFycmF5KGYpO1xuZm9yKHZhciBtPTA7bTxmO20rKylnW21dPWFyZ3VtZW50c1ttKzJdO2QuY2hpbGRyZW49Z31yZXR1cm57JCR0eXBlb2Y6bCx0eXBlOmEudHlwZSxrZXk6YyxyZWY6ayxwcm9wczpkLF9vd25lcjpofX07ZXhwb3J0cy5jcmVhdGVDb250ZXh0PWZ1bmN0aW9uKGEpe2E9eyQkdHlwZW9mOnUsX2N1cnJlbnRWYWx1ZTphLF9jdXJyZW50VmFsdWUyOmEsX3RocmVhZENvdW50OjAsUHJvdmlkZXI6bnVsbCxDb25zdW1lcjpudWxsLF9kZWZhdWx0VmFsdWU6bnVsbCxfZ2xvYmFsTmFtZTpudWxsfTthLlByb3ZpZGVyPXskJHR5cGVvZjp0LF9jb250ZXh0OmF9O3JldHVybiBhLkNvbnN1bWVyPWF9O2V4cG9ydHMuY3JlYXRlRWxlbWVudD1NO2V4cG9ydHMuY3JlYXRlRmFjdG9yeT1mdW5jdGlvbihhKXt2YXIgYj1NLmJpbmQobnVsbCxhKTtiLnR5cGU9YTtyZXR1cm4gYn07ZXhwb3J0cy5jcmVhdGVSZWY9ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpudWxsfX07XG5leHBvcnRzLmZvcndhcmRSZWY9ZnVuY3Rpb24oYSl7cmV0dXJueyQkdHlwZW9mOnYscmVuZGVyOmF9fTtleHBvcnRzLmlzVmFsaWRFbGVtZW50PU87ZXhwb3J0cy5sYXp5PWZ1bmN0aW9uKGEpe3JldHVybnskJHR5cGVvZjp5LF9wYXlsb2FkOntfc3RhdHVzOi0xLF9yZXN1bHQ6YX0sX2luaXQ6VH19O2V4cG9ydHMubWVtbz1mdW5jdGlvbihhLGIpe3JldHVybnskJHR5cGVvZjp4LHR5cGU6YSxjb21wYXJlOnZvaWQgMD09PWI/bnVsbDpifX07ZXhwb3J0cy5zdGFydFRyYW5zaXRpb249ZnVuY3Rpb24oYSl7dmFyIGI9Vi50cmFuc2l0aW9uO1YudHJhbnNpdGlvbj17fTt0cnl7YSgpfWZpbmFsbHl7Vi50cmFuc2l0aW9uPWJ9fTtleHBvcnRzLnVuc3RhYmxlX2FjdD1YO2V4cG9ydHMudXNlQ2FsbGJhY2s9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVS5jdXJyZW50LnVzZUNhbGxiYWNrKGEsYil9O2V4cG9ydHMudXNlQ29udGV4dD1mdW5jdGlvbihhKXtyZXR1cm4gVS5jdXJyZW50LnVzZUNvbnRleHQoYSl9O1xuZXhwb3J0cy51c2VEZWJ1Z1ZhbHVlPWZ1bmN0aW9uKCl7fTtleHBvcnRzLnVzZURlZmVycmVkVmFsdWU9ZnVuY3Rpb24oYSl7cmV0dXJuIFUuY3VycmVudC51c2VEZWZlcnJlZFZhbHVlKGEpfTtleHBvcnRzLnVzZUVmZmVjdD1mdW5jdGlvbihhLGIpe3JldHVybiBVLmN1cnJlbnQudXNlRWZmZWN0KGEsYil9O2V4cG9ydHMudXNlSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gVS5jdXJyZW50LnVzZUlkKCl9O2V4cG9ydHMudXNlSW1wZXJhdGl2ZUhhbmRsZT1mdW5jdGlvbihhLGIsZSl7cmV0dXJuIFUuY3VycmVudC51c2VJbXBlcmF0aXZlSGFuZGxlKGEsYixlKX07ZXhwb3J0cy51c2VJbnNlcnRpb25FZmZlY3Q9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVS5jdXJyZW50LnVzZUluc2VydGlvbkVmZmVjdChhLGIpfTtleHBvcnRzLnVzZUxheW91dEVmZmVjdD1mdW5jdGlvbihhLGIpe3JldHVybiBVLmN1cnJlbnQudXNlTGF5b3V0RWZmZWN0KGEsYil9O1xuZXhwb3J0cy51c2VNZW1vPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFUuY3VycmVudC51c2VNZW1vKGEsYil9O2V4cG9ydHMudXNlUmVkdWNlcj1mdW5jdGlvbihhLGIsZSl7cmV0dXJuIFUuY3VycmVudC51c2VSZWR1Y2VyKGEsYixlKX07ZXhwb3J0cy51c2VSZWY9ZnVuY3Rpb24oYSl7cmV0dXJuIFUuY3VycmVudC51c2VSZWYoYSl9O2V4cG9ydHMudXNlU3RhdGU9ZnVuY3Rpb24oYSl7cmV0dXJuIFUuY3VycmVudC51c2VTdGF0ZShhKX07ZXhwb3J0cy51c2VTeW5jRXh0ZXJuYWxTdG9yZT1mdW5jdGlvbihhLGIsZSl7cmV0dXJuIFUuY3VycmVudC51c2VTeW5jRXh0ZXJuYWxTdG9yZShhLGIsZSl9O2V4cG9ydHMudXNlVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiBVLmN1cnJlbnQudXNlVHJhbnNpdGlvbigpfTtleHBvcnRzLnZlcnNpb249XCIxOC4zLjFcIjtcbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogcmVhY3QtanN4LXJ1bnRpbWUucHJvZHVjdGlvbi5taW4uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuJ3VzZSBzdHJpY3QnO3ZhciBmPXJlcXVpcmUoXCJyZWFjdFwiKSxrPVN5bWJvbC5mb3IoXCJyZWFjdC5lbGVtZW50XCIpLGw9U3ltYm9sLmZvcihcInJlYWN0LmZyYWdtZW50XCIpLG09T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxuPWYuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQuUmVhY3RDdXJyZW50T3duZXIscD17a2V5OiEwLHJlZjohMCxfX3NlbGY6ITAsX19zb3VyY2U6ITB9O1xuZnVuY3Rpb24gcShjLGEsZyl7dmFyIGIsZD17fSxlPW51bGwsaD1udWxsO3ZvaWQgMCE9PWcmJihlPVwiXCIrZyk7dm9pZCAwIT09YS5rZXkmJihlPVwiXCIrYS5rZXkpO3ZvaWQgMCE9PWEucmVmJiYoaD1hLnJlZik7Zm9yKGIgaW4gYSltLmNhbGwoYSxiKSYmIXAuaGFzT3duUHJvcGVydHkoYikmJihkW2JdPWFbYl0pO2lmKGMmJmMuZGVmYXVsdFByb3BzKWZvcihiIGluIGE9Yy5kZWZhdWx0UHJvcHMsYSl2b2lkIDA9PT1kW2JdJiYoZFtiXT1hW2JdKTtyZXR1cm57JCR0eXBlb2Y6ayx0eXBlOmMsa2V5OmUscmVmOmgscHJvcHM6ZCxfb3duZXI6bi5jdXJyZW50fX1leHBvcnRzLkZyYWdtZW50PWw7ZXhwb3J0cy5qc3g9cTtleHBvcnRzLmpzeHM9cTtcbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1qc3gtcnVudGltZS5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1qc3gtcnVudGltZS5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBiaW5kKGZuLCB0aGlzQXJnKSB7XG4gIHJldHVybiBmdW5jdGlvbiB3cmFwKCkge1xuICAgIHJldHVybiBmbi5hcHBseSh0aGlzQXJnLCBhcmd1bWVudHMpO1xuICB9O1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgYmluZCBmcm9tICcuL2hlbHBlcnMvYmluZC5qcyc7XG5cbi8vIHV0aWxzIGlzIGEgbGlicmFyeSBvZiBnZW5lcmljIGhlbHBlciBmdW5jdGlvbnMgbm9uLXNwZWNpZmljIHRvIGF4aW9zXG5cbmNvbnN0IHt0b1N0cmluZ30gPSBPYmplY3QucHJvdG90eXBlO1xuY29uc3Qge2dldFByb3RvdHlwZU9mfSA9IE9iamVjdDtcblxuY29uc3Qga2luZE9mID0gKGNhY2hlID0+IHRoaW5nID0+IHtcbiAgICBjb25zdCBzdHIgPSB0b1N0cmluZy5jYWxsKHRoaW5nKTtcbiAgICByZXR1cm4gY2FjaGVbc3RyXSB8fCAoY2FjaGVbc3RyXSA9IHN0ci5zbGljZSg4LCAtMSkudG9Mb3dlckNhc2UoKSk7XG59KShPYmplY3QuY3JlYXRlKG51bGwpKTtcblxuY29uc3Qga2luZE9mVGVzdCA9ICh0eXBlKSA9PiB7XG4gIHR5cGUgPSB0eXBlLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiAodGhpbmcpID0+IGtpbmRPZih0aGluZykgPT09IHR5cGVcbn1cblxuY29uc3QgdHlwZU9mVGVzdCA9IHR5cGUgPT4gdGhpbmcgPT4gdHlwZW9mIHRoaW5nID09PSB0eXBlO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGFuIEFycmF5XG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGFuIEFycmF5LCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3Qge2lzQXJyYXl9ID0gQXJyYXk7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgdW5kZWZpbmVkXG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgdmFsdWUgaXMgdW5kZWZpbmVkLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNVbmRlZmluZWQgPSB0eXBlT2ZUZXN0KCd1bmRlZmluZWQnKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIEJ1ZmZlclxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBCdWZmZXIsIG90aGVyd2lzZSBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0J1ZmZlcih2YWwpIHtcbiAgcmV0dXJuIHZhbCAhPT0gbnVsbCAmJiAhaXNVbmRlZmluZWQodmFsKSAmJiB2YWwuY29uc3RydWN0b3IgIT09IG51bGwgJiYgIWlzVW5kZWZpbmVkKHZhbC5jb25zdHJ1Y3RvcilcbiAgICAmJiBpc0Z1bmN0aW9uKHZhbC5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikgJiYgdmFsLmNvbnN0cnVjdG9yLmlzQnVmZmVyKHZhbCk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYW4gQXJyYXlCdWZmZXJcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGFuIEFycmF5QnVmZmVyLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNBcnJheUJ1ZmZlciA9IGtpbmRPZlRlc3QoJ0FycmF5QnVmZmVyJyk7XG5cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIHZpZXcgb24gYW4gQXJyYXlCdWZmZXJcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgdmlldyBvbiBhbiBBcnJheUJ1ZmZlciwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXlCdWZmZXJWaWV3KHZhbCkge1xuICBsZXQgcmVzdWx0O1xuICBpZiAoKHR5cGVvZiBBcnJheUJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcpICYmIChBcnJheUJ1ZmZlci5pc1ZpZXcpKSB7XG4gICAgcmVzdWx0ID0gQXJyYXlCdWZmZXIuaXNWaWV3KHZhbCk7XG4gIH0gZWxzZSB7XG4gICAgcmVzdWx0ID0gKHZhbCkgJiYgKHZhbC5idWZmZXIpICYmIChpc0FycmF5QnVmZmVyKHZhbC5idWZmZXIpKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgU3RyaW5nXG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIFN0cmluZywgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzU3RyaW5nID0gdHlwZU9mVGVzdCgnc3RyaW5nJyk7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBGdW5jdGlvblxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIEZ1bmN0aW9uLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNGdW5jdGlvbiA9IHR5cGVPZlRlc3QoJ2Z1bmN0aW9uJyk7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBOdW1iZXJcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgTnVtYmVyLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNOdW1iZXIgPSB0eXBlT2ZUZXN0KCdudW1iZXInKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhbiBPYmplY3RcbiAqXG4gKiBAcGFyYW0geyp9IHRoaW5nIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYW4gT2JqZWN0LCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNPYmplY3QgPSAodGhpbmcpID0+IHRoaW5nICE9PSBudWxsICYmIHR5cGVvZiB0aGluZyA9PT0gJ29iamVjdCc7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBCb29sZWFuXG4gKlxuICogQHBhcmFtIHsqfSB0aGluZyBUaGUgdmFsdWUgdG8gdGVzdFxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBCb29sZWFuLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNCb29sZWFuID0gdGhpbmcgPT4gdGhpbmcgPT09IHRydWUgfHwgdGhpbmcgPT09IGZhbHNlO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgcGxhaW4gT2JqZWN0XG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIHBsYWluIE9iamVjdCwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzUGxhaW5PYmplY3QgPSAodmFsKSA9PiB7XG4gIGlmIChraW5kT2YodmFsKSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBwcm90b3R5cGUgPSBnZXRQcm90b3R5cGVPZih2YWwpO1xuICByZXR1cm4gKHByb3RvdHlwZSA9PT0gbnVsbCB8fCBwcm90b3R5cGUgPT09IE9iamVjdC5wcm90b3R5cGUgfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvdHlwZSkgPT09IG51bGwpICYmICEoU3ltYm9sLnRvU3RyaW5nVGFnIGluIHZhbCkgJiYgIShTeW1ib2wuaXRlcmF0b3IgaW4gdmFsKTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIERhdGVcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgRGF0ZSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzRGF0ZSA9IGtpbmRPZlRlc3QoJ0RhdGUnKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIEZpbGVcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgRmlsZSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzRmlsZSA9IGtpbmRPZlRlc3QoJ0ZpbGUnKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIEJsb2JcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgQmxvYiwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzQmxvYiA9IGtpbmRPZlRlc3QoJ0Jsb2InKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIEZpbGVMaXN0XG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIEZpbGUsIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc0ZpbGVMaXN0ID0ga2luZE9mVGVzdCgnRmlsZUxpc3QnKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIFN0cmVhbVxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBTdHJlYW0sIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc1N0cmVhbSA9ICh2YWwpID0+IGlzT2JqZWN0KHZhbCkgJiYgaXNGdW5jdGlvbih2YWwucGlwZSk7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBGb3JtRGF0YVxuICpcbiAqIEBwYXJhbSB7Kn0gdGhpbmcgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhbiBGb3JtRGF0YSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzRm9ybURhdGEgPSAodGhpbmcpID0+IHtcbiAgbGV0IGtpbmQ7XG4gIHJldHVybiB0aGluZyAmJiAoXG4gICAgKHR5cGVvZiBGb3JtRGF0YSA9PT0gJ2Z1bmN0aW9uJyAmJiB0aGluZyBpbnN0YW5jZW9mIEZvcm1EYXRhKSB8fCAoXG4gICAgICBpc0Z1bmN0aW9uKHRoaW5nLmFwcGVuZCkgJiYgKFxuICAgICAgICAoa2luZCA9IGtpbmRPZih0aGluZykpID09PSAnZm9ybWRhdGEnIHx8XG4gICAgICAgIC8vIGRldGVjdCBmb3JtLWRhdGEgaW5zdGFuY2VcbiAgICAgICAgKGtpbmQgPT09ICdvYmplY3QnICYmIGlzRnVuY3Rpb24odGhpbmcudG9TdHJpbmcpICYmIHRoaW5nLnRvU3RyaW5nKCkgPT09ICdbb2JqZWN0IEZvcm1EYXRhXScpXG4gICAgICApXG4gICAgKVxuICApXG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBVUkxTZWFyY2hQYXJhbXMgb2JqZWN0XG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIFVSTFNlYXJjaFBhcmFtcyBvYmplY3QsIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc1VSTFNlYXJjaFBhcmFtcyA9IGtpbmRPZlRlc3QoJ1VSTFNlYXJjaFBhcmFtcycpO1xuXG5jb25zdCBbaXNSZWFkYWJsZVN0cmVhbSwgaXNSZXF1ZXN0LCBpc1Jlc3BvbnNlLCBpc0hlYWRlcnNdID0gWydSZWFkYWJsZVN0cmVhbScsICdSZXF1ZXN0JywgJ1Jlc3BvbnNlJywgJ0hlYWRlcnMnXS5tYXAoa2luZE9mVGVzdCk7XG5cbi8qKlxuICogVHJpbSBleGNlc3Mgd2hpdGVzcGFjZSBvZmYgdGhlIGJlZ2lubmluZyBhbmQgZW5kIG9mIGEgc3RyaW5nXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0ciBUaGUgU3RyaW5nIHRvIHRyaW1cbiAqXG4gKiBAcmV0dXJucyB7U3RyaW5nfSBUaGUgU3RyaW5nIGZyZWVkIG9mIGV4Y2VzcyB3aGl0ZXNwYWNlXG4gKi9cbmNvbnN0IHRyaW0gPSAoc3RyKSA9PiBzdHIudHJpbSA/XG4gIHN0ci50cmltKCkgOiBzdHIucmVwbGFjZSgvXltcXHNcXHVGRUZGXFx4QTBdK3xbXFxzXFx1RkVGRlxceEEwXSskL2csICcnKTtcblxuLyoqXG4gKiBJdGVyYXRlIG92ZXIgYW4gQXJyYXkgb3IgYW4gT2JqZWN0IGludm9raW5nIGEgZnVuY3Rpb24gZm9yIGVhY2ggaXRlbS5cbiAqXG4gKiBJZiBgb2JqYCBpcyBhbiBBcnJheSBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBwYXNzaW5nXG4gKiB0aGUgdmFsdWUsIGluZGV4LCBhbmQgY29tcGxldGUgYXJyYXkgZm9yIGVhY2ggaXRlbS5cbiAqXG4gKiBJZiAnb2JqJyBpcyBhbiBPYmplY3QgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQgcGFzc2luZ1xuICogdGhlIHZhbHVlLCBrZXksIGFuZCBjb21wbGV0ZSBvYmplY3QgZm9yIGVhY2ggcHJvcGVydHkuXG4gKlxuICogQHBhcmFtIHtPYmplY3R8QXJyYXl9IG9iaiBUaGUgb2JqZWN0IHRvIGl0ZXJhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBjYWxsYmFjayB0byBpbnZva2UgZm9yIGVhY2ggaXRlbVxuICpcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gW2FsbE93bktleXMgPSBmYWxzZV1cbiAqIEByZXR1cm5zIHthbnl9XG4gKi9cbmZ1bmN0aW9uIGZvckVhY2gob2JqLCBmbiwge2FsbE93bktleXMgPSBmYWxzZX0gPSB7fSkge1xuICAvLyBEb24ndCBib3RoZXIgaWYgbm8gdmFsdWUgcHJvdmlkZWRcbiAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCBpO1xuICBsZXQgbDtcblxuICAvLyBGb3JjZSBhbiBhcnJheSBpZiBub3QgYWxyZWFkeSBzb21ldGhpbmcgaXRlcmFibGVcbiAgaWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgLyplc2xpbnQgbm8tcGFyYW0tcmVhc3NpZ246MCovXG4gICAgb2JqID0gW29ial07XG4gIH1cblxuICBpZiAoaXNBcnJheShvYmopKSB7XG4gICAgLy8gSXRlcmF0ZSBvdmVyIGFycmF5IHZhbHVlc1xuICAgIGZvciAoaSA9IDAsIGwgPSBvYmoubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBmbi5jYWxsKG51bGwsIG9ialtpXSwgaSwgb2JqKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gSXRlcmF0ZSBvdmVyIG9iamVjdCBrZXlzXG4gICAgY29uc3Qga2V5cyA9IGFsbE93bktleXMgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopIDogT2JqZWN0LmtleXMob2JqKTtcbiAgICBjb25zdCBsZW4gPSBrZXlzLmxlbmd0aDtcbiAgICBsZXQga2V5O1xuXG4gICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBrZXkgPSBrZXlzW2ldO1xuICAgICAgZm4uY2FsbChudWxsLCBvYmpba2V5XSwga2V5LCBvYmopO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kS2V5KG9iaiwga2V5KSB7XG4gIGtleSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob2JqKTtcbiAgbGV0IGkgPSBrZXlzLmxlbmd0aDtcbiAgbGV0IF9rZXk7XG4gIHdoaWxlIChpLS0gPiAwKSB7XG4gICAgX2tleSA9IGtleXNbaV07XG4gICAgaWYgKGtleSA9PT0gX2tleS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICByZXR1cm4gX2tleTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbmNvbnN0IF9nbG9iYWwgPSAoKCkgPT4ge1xuICAvKmVzbGludCBuby11bmRlZjowKi9cbiAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzICE9PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gZ2xvYmFsVGhpcztcbiAgcmV0dXJuIHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiID8gc2VsZiA6ICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdyA6IGdsb2JhbClcbn0pKCk7XG5cbmNvbnN0IGlzQ29udGV4dERlZmluZWQgPSAoY29udGV4dCkgPT4gIWlzVW5kZWZpbmVkKGNvbnRleHQpICYmIGNvbnRleHQgIT09IF9nbG9iYWw7XG5cbi8qKlxuICogQWNjZXB0cyB2YXJhcmdzIGV4cGVjdGluZyBlYWNoIGFyZ3VtZW50IHRvIGJlIGFuIG9iamVjdCwgdGhlblxuICogaW1tdXRhYmx5IG1lcmdlcyB0aGUgcHJvcGVydGllcyBvZiBlYWNoIG9iamVjdCBhbmQgcmV0dXJucyByZXN1bHQuXG4gKlxuICogV2hlbiBtdWx0aXBsZSBvYmplY3RzIGNvbnRhaW4gdGhlIHNhbWUga2V5IHRoZSBsYXRlciBvYmplY3QgaW5cbiAqIHRoZSBhcmd1bWVudHMgbGlzdCB3aWxsIHRha2UgcHJlY2VkZW5jZS5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIGBgYGpzXG4gKiB2YXIgcmVzdWx0ID0gbWVyZ2Uoe2ZvbzogMTIzfSwge2ZvbzogNDU2fSk7XG4gKiBjb25zb2xlLmxvZyhyZXN1bHQuZm9vKTsgLy8gb3V0cHV0cyA0NTZcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmoxIE9iamVjdCB0byBtZXJnZVxuICpcbiAqIEByZXR1cm5zIHtPYmplY3R9IFJlc3VsdCBvZiBhbGwgbWVyZ2UgcHJvcGVydGllc1xuICovXG5mdW5jdGlvbiBtZXJnZSgvKiBvYmoxLCBvYmoyLCBvYmozLCAuLi4gKi8pIHtcbiAgY29uc3Qge2Nhc2VsZXNzfSA9IGlzQ29udGV4dERlZmluZWQodGhpcykgJiYgdGhpcyB8fCB7fTtcbiAgY29uc3QgcmVzdWx0ID0ge307XG4gIGNvbnN0IGFzc2lnblZhbHVlID0gKHZhbCwga2V5KSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0S2V5ID0gY2FzZWxlc3MgJiYgZmluZEtleShyZXN1bHQsIGtleSkgfHwga2V5O1xuICAgIGlmIChpc1BsYWluT2JqZWN0KHJlc3VsdFt0YXJnZXRLZXldKSAmJiBpc1BsYWluT2JqZWN0KHZhbCkpIHtcbiAgICAgIHJlc3VsdFt0YXJnZXRLZXldID0gbWVyZ2UocmVzdWx0W3RhcmdldEtleV0sIHZhbCk7XG4gICAgfSBlbHNlIGlmIChpc1BsYWluT2JqZWN0KHZhbCkpIHtcbiAgICAgIHJlc3VsdFt0YXJnZXRLZXldID0gbWVyZ2Uoe30sIHZhbCk7XG4gICAgfSBlbHNlIGlmIChpc0FycmF5KHZhbCkpIHtcbiAgICAgIHJlc3VsdFt0YXJnZXRLZXldID0gdmFsLnNsaWNlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdFt0YXJnZXRLZXldID0gdmFsO1xuICAgIH1cbiAgfVxuXG4gIGZvciAobGV0IGkgPSAwLCBsID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIGFyZ3VtZW50c1tpXSAmJiBmb3JFYWNoKGFyZ3VtZW50c1tpXSwgYXNzaWduVmFsdWUpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogRXh0ZW5kcyBvYmplY3QgYSBieSBtdXRhYmx5IGFkZGluZyB0byBpdCB0aGUgcHJvcGVydGllcyBvZiBvYmplY3QgYi5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gYSBUaGUgb2JqZWN0IHRvIGJlIGV4dGVuZGVkXG4gKiBAcGFyYW0ge09iamVjdH0gYiBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyBmcm9tXG4gKiBAcGFyYW0ge09iamVjdH0gdGhpc0FyZyBUaGUgb2JqZWN0IHRvIGJpbmQgZnVuY3Rpb24gdG9cbiAqXG4gKiBAcGFyYW0ge0Jvb2xlYW59IFthbGxPd25LZXlzXVxuICogQHJldHVybnMge09iamVjdH0gVGhlIHJlc3VsdGluZyB2YWx1ZSBvZiBvYmplY3QgYVxuICovXG5jb25zdCBleHRlbmQgPSAoYSwgYiwgdGhpc0FyZywge2FsbE93bktleXN9PSB7fSkgPT4ge1xuICBmb3JFYWNoKGIsICh2YWwsIGtleSkgPT4ge1xuICAgIGlmICh0aGlzQXJnICYmIGlzRnVuY3Rpb24odmFsKSkge1xuICAgICAgYVtrZXldID0gYmluZCh2YWwsIHRoaXNBcmcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhW2tleV0gPSB2YWw7XG4gICAgfVxuICB9LCB7YWxsT3duS2V5c30pO1xuICByZXR1cm4gYTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgYnl0ZSBvcmRlciBtYXJrZXIuIFRoaXMgY2F0Y2hlcyBFRiBCQiBCRiAodGhlIFVURi04IEJPTSlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gY29udGVudCB3aXRoIEJPTVxuICpcbiAqIEByZXR1cm5zIHtzdHJpbmd9IGNvbnRlbnQgdmFsdWUgd2l0aG91dCBCT01cbiAqL1xuY29uc3Qgc3RyaXBCT00gPSAoY29udGVudCkgPT4ge1xuICBpZiAoY29udGVudC5jaGFyQ29kZUF0KDApID09PSAweEZFRkYpIHtcbiAgICBjb250ZW50ID0gY29udGVudC5zbGljZSgxKTtcbiAgfVxuICByZXR1cm4gY29udGVudDtcbn1cblxuLyoqXG4gKiBJbmhlcml0IHRoZSBwcm90b3R5cGUgbWV0aG9kcyBmcm9tIG9uZSBjb25zdHJ1Y3RvciBpbnRvIGFub3RoZXJcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBzdXBlckNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge29iamVjdH0gW3Byb3BzXVxuICogQHBhcmFtIHtvYmplY3R9IFtkZXNjcmlwdG9yc11cbiAqXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuY29uc3QgaW5oZXJpdHMgPSAoY29uc3RydWN0b3IsIHN1cGVyQ29uc3RydWN0b3IsIHByb3BzLCBkZXNjcmlwdG9ycykgPT4ge1xuICBjb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ29uc3RydWN0b3IucHJvdG90eXBlLCBkZXNjcmlwdG9ycyk7XG4gIGNvbnN0cnVjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGNvbnN0cnVjdG9yO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29uc3RydWN0b3IsICdzdXBlcicsIHtcbiAgICB2YWx1ZTogc3VwZXJDb25zdHJ1Y3Rvci5wcm90b3R5cGVcbiAgfSk7XG4gIHByb3BzICYmIE9iamVjdC5hc3NpZ24oY29uc3RydWN0b3IucHJvdG90eXBlLCBwcm9wcyk7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBvYmplY3Qgd2l0aCBkZWVwIHByb3RvdHlwZSBjaGFpbiB0byBhIGZsYXQgb2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlT2JqIHNvdXJjZSBvYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBbZGVzdE9ial1cbiAqIEBwYXJhbSB7RnVuY3Rpb258Qm9vbGVhbn0gW2ZpbHRlcl1cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcm9wRmlsdGVyXVxuICpcbiAqIEByZXR1cm5zIHtPYmplY3R9XG4gKi9cbmNvbnN0IHRvRmxhdE9iamVjdCA9IChzb3VyY2VPYmosIGRlc3RPYmosIGZpbHRlciwgcHJvcEZpbHRlcikgPT4ge1xuICBsZXQgcHJvcHM7XG4gIGxldCBpO1xuICBsZXQgcHJvcDtcbiAgY29uc3QgbWVyZ2VkID0ge307XG5cbiAgZGVzdE9iaiA9IGRlc3RPYmogfHwge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lcS1udWxsLGVxZXFlcVxuICBpZiAoc291cmNlT2JqID09IG51bGwpIHJldHVybiBkZXN0T2JqO1xuXG4gIGRvIHtcbiAgICBwcm9wcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHNvdXJjZU9iaik7XG4gICAgaSA9IHByb3BzLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tID4gMCkge1xuICAgICAgcHJvcCA9IHByb3BzW2ldO1xuICAgICAgaWYgKCghcHJvcEZpbHRlciB8fCBwcm9wRmlsdGVyKHByb3AsIHNvdXJjZU9iaiwgZGVzdE9iaikpICYmICFtZXJnZWRbcHJvcF0pIHtcbiAgICAgICAgZGVzdE9ialtwcm9wXSA9IHNvdXJjZU9ialtwcm9wXTtcbiAgICAgICAgbWVyZ2VkW3Byb3BdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgc291cmNlT2JqID0gZmlsdGVyICE9PSBmYWxzZSAmJiBnZXRQcm90b3R5cGVPZihzb3VyY2VPYmopO1xuICB9IHdoaWxlIChzb3VyY2VPYmogJiYgKCFmaWx0ZXIgfHwgZmlsdGVyKHNvdXJjZU9iaiwgZGVzdE9iaikpICYmIHNvdXJjZU9iaiAhPT0gT2JqZWN0LnByb3RvdHlwZSk7XG5cbiAgcmV0dXJuIGRlc3RPYmo7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgc3RyaW5nIGVuZHMgd2l0aCB0aGUgY2hhcmFjdGVycyBvZiBhIHNwZWNpZmllZCBzdHJpbmdcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcGFyYW0ge1N0cmluZ30gc2VhcmNoU3RyaW5nXG4gKiBAcGFyYW0ge051bWJlcn0gW3Bvc2l0aW9uPSAwXVxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5jb25zdCBlbmRzV2l0aCA9IChzdHIsIHNlYXJjaFN0cmluZywgcG9zaXRpb24pID0+IHtcbiAgc3RyID0gU3RyaW5nKHN0cik7XG4gIGlmIChwb3NpdGlvbiA9PT0gdW5kZWZpbmVkIHx8IHBvc2l0aW9uID4gc3RyLmxlbmd0aCkge1xuICAgIHBvc2l0aW9uID0gc3RyLmxlbmd0aDtcbiAgfVxuICBwb3NpdGlvbiAtPSBzZWFyY2hTdHJpbmcubGVuZ3RoO1xuICBjb25zdCBsYXN0SW5kZXggPSBzdHIuaW5kZXhPZihzZWFyY2hTdHJpbmcsIHBvc2l0aW9uKTtcbiAgcmV0dXJuIGxhc3RJbmRleCAhPT0gLTEgJiYgbGFzdEluZGV4ID09PSBwb3NpdGlvbjtcbn1cblxuXG4vKipcbiAqIFJldHVybnMgbmV3IGFycmF5IGZyb20gYXJyYXkgbGlrZSBvYmplY3Qgb3IgbnVsbCBpZiBmYWlsZWRcbiAqXG4gKiBAcGFyYW0geyp9IFt0aGluZ11cbiAqXG4gKiBAcmV0dXJucyB7P0FycmF5fVxuICovXG5jb25zdCB0b0FycmF5ID0gKHRoaW5nKSA9PiB7XG4gIGlmICghdGhpbmcpIHJldHVybiBudWxsO1xuICBpZiAoaXNBcnJheSh0aGluZykpIHJldHVybiB0aGluZztcbiAgbGV0IGkgPSB0aGluZy5sZW5ndGg7XG4gIGlmICghaXNOdW1iZXIoaSkpIHJldHVybiBudWxsO1xuICBjb25zdCBhcnIgPSBuZXcgQXJyYXkoaSk7XG4gIHdoaWxlIChpLS0gPiAwKSB7XG4gICAgYXJyW2ldID0gdGhpbmdbaV07XG4gIH1cbiAgcmV0dXJuIGFycjtcbn1cblxuLyoqXG4gKiBDaGVja2luZyBpZiB0aGUgVWludDhBcnJheSBleGlzdHMgYW5kIGlmIGl0IGRvZXMsIGl0IHJldHVybnMgYSBmdW5jdGlvbiB0aGF0IGNoZWNrcyBpZiB0aGVcbiAqIHRoaW5nIHBhc3NlZCBpbiBpcyBhbiBpbnN0YW5jZSBvZiBVaW50OEFycmF5XG4gKlxuICogQHBhcmFtIHtUeXBlZEFycmF5fVxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcbmNvbnN0IGlzVHlwZWRBcnJheSA9IChUeXBlZEFycmF5ID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcbiAgcmV0dXJuIHRoaW5nID0+IHtcbiAgICByZXR1cm4gVHlwZWRBcnJheSAmJiB0aGluZyBpbnN0YW5jZW9mIFR5cGVkQXJyYXk7XG4gIH07XG59KSh0eXBlb2YgVWludDhBcnJheSAhPT0gJ3VuZGVmaW5lZCcgJiYgZ2V0UHJvdG90eXBlT2YoVWludDhBcnJheSkpO1xuXG4vKipcbiAqIEZvciBlYWNoIGVudHJ5IGluIHRoZSBvYmplY3QsIGNhbGwgdGhlIGZ1bmN0aW9uIHdpdGggdGhlIGtleSBhbmQgdmFsdWUuXG4gKlxuICogQHBhcmFtIHtPYmplY3Q8YW55LCBhbnk+fSBvYmogLSBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIC0gVGhlIGZ1bmN0aW9uIHRvIGNhbGwgZm9yIGVhY2ggZW50cnkuXG4gKlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmNvbnN0IGZvckVhY2hFbnRyeSA9IChvYmosIGZuKSA9PiB7XG4gIGNvbnN0IGdlbmVyYXRvciA9IG9iaiAmJiBvYmpbU3ltYm9sLml0ZXJhdG9yXTtcblxuICBjb25zdCBpdGVyYXRvciA9IGdlbmVyYXRvci5jYWxsKG9iaik7XG5cbiAgbGV0IHJlc3VsdDtcblxuICB3aGlsZSAoKHJlc3VsdCA9IGl0ZXJhdG9yLm5leHQoKSkgJiYgIXJlc3VsdC5kb25lKSB7XG4gICAgY29uc3QgcGFpciA9IHJlc3VsdC52YWx1ZTtcbiAgICBmbi5jYWxsKG9iaiwgcGFpclswXSwgcGFpclsxXSk7XG4gIH1cbn1cblxuLyoqXG4gKiBJdCB0YWtlcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBhbmQgYSBzdHJpbmcsIGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIGFsbCB0aGUgbWF0Y2hlc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSByZWdFeHAgLSBUaGUgcmVndWxhciBleHByZXNzaW9uIHRvIG1hdGNoIGFnYWluc3QuXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyIC0gVGhlIHN0cmluZyB0byBzZWFyY2guXG4gKlxuICogQHJldHVybnMge0FycmF5PGJvb2xlYW4+fVxuICovXG5jb25zdCBtYXRjaEFsbCA9IChyZWdFeHAsIHN0cikgPT4ge1xuICBsZXQgbWF0Y2hlcztcbiAgY29uc3QgYXJyID0gW107XG5cbiAgd2hpbGUgKChtYXRjaGVzID0gcmVnRXhwLmV4ZWMoc3RyKSkgIT09IG51bGwpIHtcbiAgICBhcnIucHVzaChtYXRjaGVzKTtcbiAgfVxuXG4gIHJldHVybiBhcnI7XG59XG5cbi8qIENoZWNraW5nIGlmIHRoZSBraW5kT2ZUZXN0IGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSB3aGVuIHBhc3NlZCBhbiBIVE1MRm9ybUVsZW1lbnQuICovXG5jb25zdCBpc0hUTUxGb3JtID0ga2luZE9mVGVzdCgnSFRNTEZvcm1FbGVtZW50Jyk7XG5cbmNvbnN0IHRvQ2FtZWxDYXNlID0gc3RyID0+IHtcbiAgcmV0dXJuIHN0ci50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xcc10oW2EtelxcZF0pKFxcdyopL2csXG4gICAgZnVuY3Rpb24gcmVwbGFjZXIobSwgcDEsIHAyKSB7XG4gICAgICByZXR1cm4gcDEudG9VcHBlckNhc2UoKSArIHAyO1xuICAgIH1cbiAgKTtcbn07XG5cbi8qIENyZWF0aW5nIGEgZnVuY3Rpb24gdGhhdCB3aWxsIGNoZWNrIGlmIGFuIG9iamVjdCBoYXMgYSBwcm9wZXJ0eS4gKi9cbmNvbnN0IGhhc093blByb3BlcnR5ID0gKCh7aGFzT3duUHJvcGVydHl9KSA9PiAob2JqLCBwcm9wKSA9PiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpKE9iamVjdC5wcm90b3R5cGUpO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgUmVnRXhwIG9iamVjdFxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBSZWdFeHAgb2JqZWN0LCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNSZWdFeHAgPSBraW5kT2ZUZXN0KCdSZWdFeHAnKTtcblxuY29uc3QgcmVkdWNlRGVzY3JpcHRvcnMgPSAob2JqLCByZWR1Y2VyKSA9PiB7XG4gIGNvbnN0IGRlc2NyaXB0b3JzID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMob2JqKTtcbiAgY29uc3QgcmVkdWNlZERlc2NyaXB0b3JzID0ge307XG5cbiAgZm9yRWFjaChkZXNjcmlwdG9ycywgKGRlc2NyaXB0b3IsIG5hbWUpID0+IHtcbiAgICBsZXQgcmV0O1xuICAgIGlmICgocmV0ID0gcmVkdWNlcihkZXNjcmlwdG9yLCBuYW1lLCBvYmopKSAhPT0gZmFsc2UpIHtcbiAgICAgIHJlZHVjZWREZXNjcmlwdG9yc1tuYW1lXSA9IHJldCB8fCBkZXNjcmlwdG9yO1xuICAgIH1cbiAgfSk7XG5cbiAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMob2JqLCByZWR1Y2VkRGVzY3JpcHRvcnMpO1xufVxuXG4vKipcbiAqIE1ha2VzIGFsbCBtZXRob2RzIHJlYWQtb25seVxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICovXG5cbmNvbnN0IGZyZWV6ZU1ldGhvZHMgPSAob2JqKSA9PiB7XG4gIHJlZHVjZURlc2NyaXB0b3JzKG9iaiwgKGRlc2NyaXB0b3IsIG5hbWUpID0+IHtcbiAgICAvLyBza2lwIHJlc3RyaWN0ZWQgcHJvcHMgaW4gc3RyaWN0IG1vZGVcbiAgICBpZiAoaXNGdW5jdGlvbihvYmopICYmIFsnYXJndW1lbnRzJywgJ2NhbGxlcicsICdjYWxsZWUnXS5pbmRleE9mKG5hbWUpICE9PSAtMSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gb2JqW25hbWVdO1xuXG4gICAgaWYgKCFpc0Z1bmN0aW9uKHZhbHVlKSkgcmV0dXJuO1xuXG4gICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZmFsc2U7XG5cbiAgICBpZiAoJ3dyaXRhYmxlJyBpbiBkZXNjcmlwdG9yKSB7XG4gICAgICBkZXNjcmlwdG9yLndyaXRhYmxlID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFkZXNjcmlwdG9yLnNldCkge1xuICAgICAgZGVzY3JpcHRvci5zZXQgPSAoKSA9PiB7XG4gICAgICAgIHRocm93IEVycm9yKCdDYW4gbm90IHJld3JpdGUgcmVhZC1vbmx5IG1ldGhvZCBcXCcnICsgbmFtZSArICdcXCcnKTtcbiAgICAgIH07XG4gICAgfVxuICB9KTtcbn1cblxuY29uc3QgdG9PYmplY3RTZXQgPSAoYXJyYXlPclN0cmluZywgZGVsaW1pdGVyKSA9PiB7XG4gIGNvbnN0IG9iaiA9IHt9O1xuXG4gIGNvbnN0IGRlZmluZSA9IChhcnIpID0+IHtcbiAgICBhcnIuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICBvYmpbdmFsdWVdID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIGlzQXJyYXkoYXJyYXlPclN0cmluZykgPyBkZWZpbmUoYXJyYXlPclN0cmluZykgOiBkZWZpbmUoU3RyaW5nKGFycmF5T3JTdHJpbmcpLnNwbGl0KGRlbGltaXRlcikpO1xuXG4gIHJldHVybiBvYmo7XG59XG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7fVxuXG5jb25zdCB0b0Zpbml0ZU51bWJlciA9ICh2YWx1ZSwgZGVmYXVsdFZhbHVlKSA9PiB7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIE51bWJlci5pc0Zpbml0ZSh2YWx1ZSA9ICt2YWx1ZSkgPyB2YWx1ZSA6IGRlZmF1bHRWYWx1ZTtcbn1cblxuY29uc3QgQUxQSEEgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonXG5cbmNvbnN0IERJR0lUID0gJzAxMjM0NTY3ODknO1xuXG5jb25zdCBBTFBIQUJFVCA9IHtcbiAgRElHSVQsXG4gIEFMUEhBLFxuICBBTFBIQV9ESUdJVDogQUxQSEEgKyBBTFBIQS50b1VwcGVyQ2FzZSgpICsgRElHSVRcbn1cblxuY29uc3QgZ2VuZXJhdGVTdHJpbmcgPSAoc2l6ZSA9IDE2LCBhbHBoYWJldCA9IEFMUEhBQkVULkFMUEhBX0RJR0lUKSA9PiB7XG4gIGxldCBzdHIgPSAnJztcbiAgY29uc3Qge2xlbmd0aH0gPSBhbHBoYWJldDtcbiAgd2hpbGUgKHNpemUtLSkge1xuICAgIHN0ciArPSBhbHBoYWJldFtNYXRoLnJhbmRvbSgpICogbGVuZ3RofDBdXG4gIH1cblxuICByZXR1cm4gc3RyO1xufVxuXG4vKipcbiAqIElmIHRoZSB0aGluZyBpcyBhIEZvcm1EYXRhIG9iamVjdCwgcmV0dXJuIHRydWUsIG90aGVyd2lzZSByZXR1cm4gZmFsc2UuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSB0aGluZyAtIFRoZSB0aGluZyB0byBjaGVjay5cbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNTcGVjQ29tcGxpYW50Rm9ybSh0aGluZykge1xuICByZXR1cm4gISEodGhpbmcgJiYgaXNGdW5jdGlvbih0aGluZy5hcHBlbmQpICYmIHRoaW5nW1N5bWJvbC50b1N0cmluZ1RhZ10gPT09ICdGb3JtRGF0YScgJiYgdGhpbmdbU3ltYm9sLml0ZXJhdG9yXSk7XG59XG5cbmNvbnN0IHRvSlNPTk9iamVjdCA9IChvYmopID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgQXJyYXkoMTApO1xuXG4gIGNvbnN0IHZpc2l0ID0gKHNvdXJjZSwgaSkgPT4ge1xuXG4gICAgaWYgKGlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICAgIGlmIChzdGFjay5pbmRleE9mKHNvdXJjZSkgPj0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmKCEoJ3RvSlNPTicgaW4gc291cmNlKSkge1xuICAgICAgICBzdGFja1tpXSA9IHNvdXJjZTtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gaXNBcnJheShzb3VyY2UpID8gW10gOiB7fTtcblxuICAgICAgICBmb3JFYWNoKHNvdXJjZSwgKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICBjb25zdCByZWR1Y2VkVmFsdWUgPSB2aXNpdCh2YWx1ZSwgaSArIDEpO1xuICAgICAgICAgICFpc1VuZGVmaW5lZChyZWR1Y2VkVmFsdWUpICYmICh0YXJnZXRba2V5XSA9IHJlZHVjZWRWYWx1ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHN0YWNrW2ldID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNvdXJjZTtcbiAgfVxuXG4gIHJldHVybiB2aXNpdChvYmosIDApO1xufVxuXG5jb25zdCBpc0FzeW5jRm4gPSBraW5kT2ZUZXN0KCdBc3luY0Z1bmN0aW9uJyk7XG5cbmNvbnN0IGlzVGhlbmFibGUgPSAodGhpbmcpID0+XG4gIHRoaW5nICYmIChpc09iamVjdCh0aGluZykgfHwgaXNGdW5jdGlvbih0aGluZykpICYmIGlzRnVuY3Rpb24odGhpbmcudGhlbikgJiYgaXNGdW5jdGlvbih0aGluZy5jYXRjaCk7XG5cbi8vIG9yaWdpbmFsIGNvZGVcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9EaWdpdGFsQnJhaW5KUy9BeGlvc1Byb21pc2UvYmxvYi8xNmRlYWIxMzcxMGVjMDk3Nzk5MjIxMzFmM2ZhNTk1NDMyMGY4M2FiL2xpYi91dGlscy5qcyNMMTEtTDM0XG5cbmNvbnN0IF9zZXRJbW1lZGlhdGUgPSAoKHNldEltbWVkaWF0ZVN1cHBvcnRlZCwgcG9zdE1lc3NhZ2VTdXBwb3J0ZWQpID0+IHtcbiAgaWYgKHNldEltbWVkaWF0ZVN1cHBvcnRlZCkge1xuICAgIHJldHVybiBzZXRJbW1lZGlhdGU7XG4gIH1cblxuICByZXR1cm4gcG9zdE1lc3NhZ2VTdXBwb3J0ZWQgPyAoKHRva2VuLCBjYWxsYmFja3MpID0+IHtcbiAgICBfZ2xvYmFsLmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsICh7c291cmNlLCBkYXRhfSkgPT4ge1xuICAgICAgaWYgKHNvdXJjZSA9PT0gX2dsb2JhbCAmJiBkYXRhID09PSB0b2tlbikge1xuICAgICAgICBjYWxsYmFja3MubGVuZ3RoICYmIGNhbGxiYWNrcy5zaGlmdCgpKCk7XG4gICAgICB9XG4gICAgfSwgZmFsc2UpO1xuXG4gICAgcmV0dXJuIChjYikgPT4ge1xuICAgICAgY2FsbGJhY2tzLnB1c2goY2IpO1xuICAgICAgX2dsb2JhbC5wb3N0TWVzc2FnZSh0b2tlbiwgXCIqXCIpO1xuICAgIH1cbiAgfSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLCBbXSkgOiAoY2IpID0+IHNldFRpbWVvdXQoY2IpO1xufSkoXG4gIHR5cGVvZiBzZXRJbW1lZGlhdGUgPT09ICdmdW5jdGlvbicsXG4gIGlzRnVuY3Rpb24oX2dsb2JhbC5wb3N0TWVzc2FnZSlcbik7XG5cbmNvbnN0IGFzYXAgPSB0eXBlb2YgcXVldWVNaWNyb3Rhc2sgIT09ICd1bmRlZmluZWQnID9cbiAgcXVldWVNaWNyb3Rhc2suYmluZChfZ2xvYmFsKSA6ICggdHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHByb2Nlc3MubmV4dFRpY2sgfHwgX3NldEltbWVkaWF0ZSk7XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKlxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGlzQXJyYXksXG4gIGlzQXJyYXlCdWZmZXIsXG4gIGlzQnVmZmVyLFxuICBpc0Zvcm1EYXRhLFxuICBpc0FycmF5QnVmZmVyVmlldyxcbiAgaXNTdHJpbmcsXG4gIGlzTnVtYmVyLFxuICBpc0Jvb2xlYW4sXG4gIGlzT2JqZWN0LFxuICBpc1BsYWluT2JqZWN0LFxuICBpc1JlYWRhYmxlU3RyZWFtLFxuICBpc1JlcXVlc3QsXG4gIGlzUmVzcG9uc2UsXG4gIGlzSGVhZGVycyxcbiAgaXNVbmRlZmluZWQsXG4gIGlzRGF0ZSxcbiAgaXNGaWxlLFxuICBpc0Jsb2IsXG4gIGlzUmVnRXhwLFxuICBpc0Z1bmN0aW9uLFxuICBpc1N0cmVhbSxcbiAgaXNVUkxTZWFyY2hQYXJhbXMsXG4gIGlzVHlwZWRBcnJheSxcbiAgaXNGaWxlTGlzdCxcbiAgZm9yRWFjaCxcbiAgbWVyZ2UsXG4gIGV4dGVuZCxcbiAgdHJpbSxcbiAgc3RyaXBCT00sXG4gIGluaGVyaXRzLFxuICB0b0ZsYXRPYmplY3QsXG4gIGtpbmRPZixcbiAga2luZE9mVGVzdCxcbiAgZW5kc1dpdGgsXG4gIHRvQXJyYXksXG4gIGZvckVhY2hFbnRyeSxcbiAgbWF0Y2hBbGwsXG4gIGlzSFRNTEZvcm0sXG4gIGhhc093blByb3BlcnR5LFxuICBoYXNPd25Qcm9wOiBoYXNPd25Qcm9wZXJ0eSwgLy8gYW4gYWxpYXMgdG8gYXZvaWQgRVNMaW50IG5vLXByb3RvdHlwZS1idWlsdGlucyBkZXRlY3Rpb25cbiAgcmVkdWNlRGVzY3JpcHRvcnMsXG4gIGZyZWV6ZU1ldGhvZHMsXG4gIHRvT2JqZWN0U2V0LFxuICB0b0NhbWVsQ2FzZSxcbiAgbm9vcCxcbiAgdG9GaW5pdGVOdW1iZXIsXG4gIGZpbmRLZXksXG4gIGdsb2JhbDogX2dsb2JhbCxcbiAgaXNDb250ZXh0RGVmaW5lZCxcbiAgQUxQSEFCRVQsXG4gIGdlbmVyYXRlU3RyaW5nLFxuICBpc1NwZWNDb21wbGlhbnRGb3JtLFxuICB0b0pTT05PYmplY3QsXG4gIGlzQXN5bmNGbixcbiAgaXNUaGVuYWJsZSxcbiAgc2V0SW1tZWRpYXRlOiBfc2V0SW1tZWRpYXRlLFxuICBhc2FwXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuXG4vKipcbiAqIENyZWF0ZSBhbiBFcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgbWVzc2FnZSwgY29uZmlnLCBlcnJvciBjb2RlLCByZXF1ZXN0IGFuZCByZXNwb25zZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbY29kZV0gVGhlIGVycm9yIGNvZGUgKGZvciBleGFtcGxlLCAnRUNPTk5BQk9SVEVEJykuXG4gKiBAcGFyYW0ge09iamVjdH0gW2NvbmZpZ10gVGhlIGNvbmZpZy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbcmVxdWVzdF0gVGhlIHJlcXVlc3QuXG4gKiBAcGFyYW0ge09iamVjdH0gW3Jlc3BvbnNlXSBUaGUgcmVzcG9uc2UuXG4gKlxuICogQHJldHVybnMge0Vycm9yfSBUaGUgY3JlYXRlZCBlcnJvci5cbiAqL1xuZnVuY3Rpb24gQXhpb3NFcnJvcihtZXNzYWdlLCBjb2RlLCBjb25maWcsIHJlcXVlc3QsIHJlc3BvbnNlKSB7XG4gIEVycm9yLmNhbGwodGhpcyk7XG5cbiAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgdGhpcy5jb25zdHJ1Y3Rvcik7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5zdGFjayA9IChuZXcgRXJyb3IoKSkuc3RhY2s7XG4gIH1cblxuICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICB0aGlzLm5hbWUgPSAnQXhpb3NFcnJvcic7XG4gIGNvZGUgJiYgKHRoaXMuY29kZSA9IGNvZGUpO1xuICBjb25maWcgJiYgKHRoaXMuY29uZmlnID0gY29uZmlnKTtcbiAgcmVxdWVzdCAmJiAodGhpcy5yZXF1ZXN0ID0gcmVxdWVzdCk7XG4gIGlmIChyZXNwb25zZSkge1xuICAgIHRoaXMucmVzcG9uc2UgPSByZXNwb25zZTtcbiAgICB0aGlzLnN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1cyA/IHJlc3BvbnNlLnN0YXR1cyA6IG51bGw7XG4gIH1cbn1cblxudXRpbHMuaW5oZXJpdHMoQXhpb3NFcnJvciwgRXJyb3IsIHtcbiAgdG9KU09OOiBmdW5jdGlvbiB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC8vIFN0YW5kYXJkXG4gICAgICBtZXNzYWdlOiB0aGlzLm1lc3NhZ2UsXG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAvLyBNaWNyb3NvZnRcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxuICAgICAgbnVtYmVyOiB0aGlzLm51bWJlcixcbiAgICAgIC8vIE1vemlsbGFcbiAgICAgIGZpbGVOYW1lOiB0aGlzLmZpbGVOYW1lLFxuICAgICAgbGluZU51bWJlcjogdGhpcy5saW5lTnVtYmVyLFxuICAgICAgY29sdW1uTnVtYmVyOiB0aGlzLmNvbHVtbk51bWJlcixcbiAgICAgIHN0YWNrOiB0aGlzLnN0YWNrLFxuICAgICAgLy8gQXhpb3NcbiAgICAgIGNvbmZpZzogdXRpbHMudG9KU09OT2JqZWN0KHRoaXMuY29uZmlnKSxcbiAgICAgIGNvZGU6IHRoaXMuY29kZSxcbiAgICAgIHN0YXR1czogdGhpcy5zdGF0dXNcbiAgICB9O1xuICB9XG59KTtcblxuY29uc3QgcHJvdG90eXBlID0gQXhpb3NFcnJvci5wcm90b3R5cGU7XG5jb25zdCBkZXNjcmlwdG9ycyA9IHt9O1xuXG5bXG4gICdFUlJfQkFEX09QVElPTl9WQUxVRScsXG4gICdFUlJfQkFEX09QVElPTicsXG4gICdFQ09OTkFCT1JURUQnLFxuICAnRVRJTUVET1VUJyxcbiAgJ0VSUl9ORVRXT1JLJyxcbiAgJ0VSUl9GUl9UT09fTUFOWV9SRURJUkVDVFMnLFxuICAnRVJSX0RFUFJFQ0FURUQnLFxuICAnRVJSX0JBRF9SRVNQT05TRScsXG4gICdFUlJfQkFEX1JFUVVFU1QnLFxuICAnRVJSX0NBTkNFTEVEJyxcbiAgJ0VSUl9OT1RfU1VQUE9SVCcsXG4gICdFUlJfSU5WQUxJRF9VUkwnXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuXS5mb3JFYWNoKGNvZGUgPT4ge1xuICBkZXNjcmlwdG9yc1tjb2RlXSA9IHt2YWx1ZTogY29kZX07XG59KTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQXhpb3NFcnJvciwgZGVzY3JpcHRvcnMpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvdHlwZSwgJ2lzQXhpb3NFcnJvcicsIHt2YWx1ZTogdHJ1ZX0pO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuQXhpb3NFcnJvci5mcm9tID0gKGVycm9yLCBjb2RlLCBjb25maWcsIHJlcXVlc3QsIHJlc3BvbnNlLCBjdXN0b21Qcm9wcykgPT4ge1xuICBjb25zdCBheGlvc0Vycm9yID0gT2JqZWN0LmNyZWF0ZShwcm90b3R5cGUpO1xuXG4gIHV0aWxzLnRvRmxhdE9iamVjdChlcnJvciwgYXhpb3NFcnJvciwgZnVuY3Rpb24gZmlsdGVyKG9iaikge1xuICAgIHJldHVybiBvYmogIT09IEVycm9yLnByb3RvdHlwZTtcbiAgfSwgcHJvcCA9PiB7XG4gICAgcmV0dXJuIHByb3AgIT09ICdpc0F4aW9zRXJyb3InO1xuICB9KTtcblxuICBBeGlvc0Vycm9yLmNhbGwoYXhpb3NFcnJvciwgZXJyb3IubWVzc2FnZSwgY29kZSwgY29uZmlnLCByZXF1ZXN0LCByZXNwb25zZSk7XG5cbiAgYXhpb3NFcnJvci5jYXVzZSA9IGVycm9yO1xuXG4gIGF4aW9zRXJyb3IubmFtZSA9IGVycm9yLm5hbWU7XG5cbiAgY3VzdG9tUHJvcHMgJiYgT2JqZWN0LmFzc2lnbihheGlvc0Vycm9yLCBjdXN0b21Qcm9wcyk7XG5cbiAgcmV0dXJuIGF4aW9zRXJyb3I7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBBeGlvc0Vycm9yO1xuIiwiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHN0cmljdFxuZXhwb3J0IGRlZmF1bHQgbnVsbDtcbiIsIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzLmpzJztcbmltcG9ydCBBeGlvc0Vycm9yIGZyb20gJy4uL2NvcmUvQXhpb3NFcnJvci5qcyc7XG4vLyB0ZW1wb3JhcnkgaG90Zml4IHRvIGF2b2lkIGNpcmN1bGFyIHJlZmVyZW5jZXMgdW50aWwgQXhpb3NVUkxTZWFyY2hQYXJhbXMgaXMgcmVmYWN0b3JlZFxuaW1wb3J0IFBsYXRmb3JtRm9ybURhdGEgZnJvbSAnLi4vcGxhdGZvcm0vbm9kZS9jbGFzc2VzL0Zvcm1EYXRhLmpzJztcblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiB0aGluZyBpcyBhIGFycmF5IG9yIGpzIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdGhpbmcgLSBUaGUgb2JqZWN0IG9yIGFycmF5IHRvIGJlIHZpc2l0ZWQuXG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzVmlzaXRhYmxlKHRoaW5nKSB7XG4gIHJldHVybiB1dGlscy5pc1BsYWluT2JqZWN0KHRoaW5nKSB8fCB1dGlscy5pc0FycmF5KHRoaW5nKTtcbn1cblxuLyoqXG4gKiBJdCByZW1vdmVzIHRoZSBicmFja2V0cyBmcm9tIHRoZSBlbmQgb2YgYSBzdHJpbmdcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIGtleSBvZiB0aGUgcGFyYW1ldGVyLlxuICpcbiAqIEByZXR1cm5zIHtzdHJpbmd9IHRoZSBrZXkgd2l0aG91dCB0aGUgYnJhY2tldHMuXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZUJyYWNrZXRzKGtleSkge1xuICByZXR1cm4gdXRpbHMuZW5kc1dpdGgoa2V5LCAnW10nKSA/IGtleS5zbGljZSgwLCAtMikgOiBrZXk7XG59XG5cbi8qKlxuICogSXQgdGFrZXMgYSBwYXRoLCBhIGtleSwgYW5kIGEgYm9vbGVhbiwgYW5kIHJldHVybnMgYSBzdHJpbmdcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aCAtIFRoZSBwYXRoIHRvIHRoZSBjdXJyZW50IGtleS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSBjdXJyZW50IG9iamVjdCBiZWluZyBpdGVyYXRlZCBvdmVyLlxuICogQHBhcmFtIHtzdHJpbmd9IGRvdHMgLSBJZiB0cnVlLCB0aGUga2V5IHdpbGwgYmUgcmVuZGVyZWQgd2l0aCBkb3RzIGluc3RlYWQgb2YgYnJhY2tldHMuXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gVGhlIHBhdGggdG8gdGhlIGN1cnJlbnQga2V5LlxuICovXG5mdW5jdGlvbiByZW5kZXJLZXkocGF0aCwga2V5LCBkb3RzKSB7XG4gIGlmICghcGF0aCkgcmV0dXJuIGtleTtcbiAgcmV0dXJuIHBhdGguY29uY2F0KGtleSkubWFwKGZ1bmN0aW9uIGVhY2godG9rZW4sIGkpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICB0b2tlbiA9IHJlbW92ZUJyYWNrZXRzKHRva2VuKTtcbiAgICByZXR1cm4gIWRvdHMgJiYgaSA/ICdbJyArIHRva2VuICsgJ10nIDogdG9rZW47XG4gIH0pLmpvaW4oZG90cyA/ICcuJyA6ICcnKTtcbn1cblxuLyoqXG4gKiBJZiB0aGUgYXJyYXkgaXMgYW4gYXJyYXkgYW5kIG5vbmUgb2YgaXRzIGVsZW1lbnRzIGFyZSB2aXNpdGFibGUsIHRoZW4gaXQncyBhIGZsYXQgYXJyYXkuXG4gKlxuICogQHBhcmFtIHtBcnJheTxhbnk+fSBhcnIgLSBUaGUgYXJyYXkgdG8gY2hlY2tcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNGbGF0QXJyYXkoYXJyKSB7XG4gIHJldHVybiB1dGlscy5pc0FycmF5KGFycikgJiYgIWFyci5zb21lKGlzVmlzaXRhYmxlKTtcbn1cblxuY29uc3QgcHJlZGljYXRlcyA9IHV0aWxzLnRvRmxhdE9iamVjdCh1dGlscywge30sIG51bGwsIGZ1bmN0aW9uIGZpbHRlcihwcm9wKSB7XG4gIHJldHVybiAvXmlzW0EtWl0vLnRlc3QocHJvcCk7XG59KTtcblxuLyoqXG4gKiBDb252ZXJ0IGEgZGF0YSBvYmplY3QgdG8gRm9ybURhdGFcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcGFyYW0gez9PYmplY3R9IFtmb3JtRGF0YV1cbiAqIEBwYXJhbSB7P09iamVjdH0gW29wdGlvbnNdXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb3B0aW9ucy52aXNpdG9yXVxuICogQHBhcmFtIHtCb29sZWFufSBbb3B0aW9ucy5tZXRhVG9rZW5zID0gdHJ1ZV1cbiAqIEBwYXJhbSB7Qm9vbGVhbn0gW29wdGlvbnMuZG90cyA9IGZhbHNlXVxuICogQHBhcmFtIHs/Qm9vbGVhbn0gW29wdGlvbnMuaW5kZXhlcyA9IGZhbHNlXVxuICpcbiAqIEByZXR1cm5zIHtPYmplY3R9XG4gKiovXG5cbi8qKlxuICogSXQgY29udmVydHMgYW4gb2JqZWN0IGludG8gYSBGb3JtRGF0YSBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge09iamVjdDxhbnksIGFueT59IG9iaiAtIFRoZSBvYmplY3QgdG8gY29udmVydCB0byBmb3JtIGRhdGEuXG4gKiBAcGFyYW0ge3N0cmluZ30gZm9ybURhdGEgLSBUaGUgRm9ybURhdGEgb2JqZWN0IHRvIGFwcGVuZCB0by5cbiAqIEBwYXJhbSB7T2JqZWN0PHN0cmluZywgYW55Pn0gb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zXG4gKi9cbmZ1bmN0aW9uIHRvRm9ybURhdGEob2JqLCBmb3JtRGF0YSwgb3B0aW9ucykge1xuICBpZiAoIXV0aWxzLmlzT2JqZWN0KG9iaikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QnKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBmb3JtRGF0YSA9IGZvcm1EYXRhIHx8IG5ldyAoUGxhdGZvcm1Gb3JtRGF0YSB8fCBGb3JtRGF0YSkoKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgb3B0aW9ucyA9IHV0aWxzLnRvRmxhdE9iamVjdChvcHRpb25zLCB7XG4gICAgbWV0YVRva2VuczogdHJ1ZSxcbiAgICBkb3RzOiBmYWxzZSxcbiAgICBpbmRleGVzOiBmYWxzZVxuICB9LCBmYWxzZSwgZnVuY3Rpb24gZGVmaW5lZChvcHRpb24sIHNvdXJjZSkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lcS1udWxsLGVxZXFlcVxuICAgIHJldHVybiAhdXRpbHMuaXNVbmRlZmluZWQoc291cmNlW29wdGlvbl0pO1xuICB9KTtcblxuICBjb25zdCBtZXRhVG9rZW5zID0gb3B0aW9ucy5tZXRhVG9rZW5zO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgY29uc3QgdmlzaXRvciA9IG9wdGlvbnMudmlzaXRvciB8fCBkZWZhdWx0VmlzaXRvcjtcbiAgY29uc3QgZG90cyA9IG9wdGlvbnMuZG90cztcbiAgY29uc3QgaW5kZXhlcyA9IG9wdGlvbnMuaW5kZXhlcztcbiAgY29uc3QgX0Jsb2IgPSBvcHRpb25zLkJsb2IgfHwgdHlwZW9mIEJsb2IgIT09ICd1bmRlZmluZWQnICYmIEJsb2I7XG4gIGNvbnN0IHVzZUJsb2IgPSBfQmxvYiAmJiB1dGlscy5pc1NwZWNDb21wbGlhbnRGb3JtKGZvcm1EYXRhKTtcblxuICBpZiAoIXV0aWxzLmlzRnVuY3Rpb24odmlzaXRvcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2aXNpdG9yIG11c3QgYmUgYSBmdW5jdGlvbicpO1xuICB9XG5cbiAgZnVuY3Rpb24gY29udmVydFZhbHVlKHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsKSByZXR1cm4gJyc7XG5cbiAgICBpZiAodXRpbHMuaXNEYXRlKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlLnRvSVNPU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgaWYgKCF1c2VCbG9iICYmIHV0aWxzLmlzQmxvYih2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBBeGlvc0Vycm9yKCdCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLicpO1xuICAgIH1cblxuICAgIGlmICh1dGlscy5pc0FycmF5QnVmZmVyKHZhbHVlKSB8fCB1dGlscy5pc1R5cGVkQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdXNlQmxvYiAmJiB0eXBlb2YgQmxvYiA9PT0gJ2Z1bmN0aW9uJyA/IG5ldyBCbG9iKFt2YWx1ZV0pIDogQnVmZmVyLmZyb20odmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZhdWx0IHZpc2l0b3IuXG4gICAqXG4gICAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAgICogQHBhcmFtIHtTdHJpbmd8TnVtYmVyfSBrZXlcbiAgICogQHBhcmFtIHtBcnJheTxTdHJpbmd8TnVtYmVyPn0gcGF0aFxuICAgKiBAdGhpcyB7Rm9ybURhdGF9XG4gICAqXG4gICAqIEByZXR1cm5zIHtib29sZWFufSByZXR1cm4gdHJ1ZSB0byB2aXNpdCB0aGUgZWFjaCBwcm9wIG9mIHRoZSB2YWx1ZSByZWN1cnNpdmVseVxuICAgKi9cbiAgZnVuY3Rpb24gZGVmYXVsdFZpc2l0b3IodmFsdWUsIGtleSwgcGF0aCkge1xuICAgIGxldCBhcnIgPSB2YWx1ZTtcblxuICAgIGlmICh2YWx1ZSAmJiAhcGF0aCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAodXRpbHMuZW5kc1dpdGgoa2V5LCAne30nKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAga2V5ID0gbWV0YVRva2VucyA/IGtleSA6IGtleS5zbGljZSgwLCAtMik7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICB2YWx1ZSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICh1dGlscy5pc0FycmF5KHZhbHVlKSAmJiBpc0ZsYXRBcnJheSh2YWx1ZSkpIHx8XG4gICAgICAgICgodXRpbHMuaXNGaWxlTGlzdCh2YWx1ZSkgfHwgdXRpbHMuZW5kc1dpdGgoa2V5LCAnW10nKSkgJiYgKGFyciA9IHV0aWxzLnRvQXJyYXkodmFsdWUpKVxuICAgICAgICApKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICBrZXkgPSByZW1vdmVCcmFja2V0cyhrZXkpO1xuXG4gICAgICAgIGFyci5mb3JFYWNoKGZ1bmN0aW9uIGVhY2goZWwsIGluZGV4KSB7XG4gICAgICAgICAgISh1dGlscy5pc1VuZGVmaW5lZChlbCkgfHwgZWwgPT09IG51bGwpICYmIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXN0ZWQtdGVybmFyeVxuICAgICAgICAgICAgaW5kZXhlcyA9PT0gdHJ1ZSA/IHJlbmRlcktleShba2V5XSwgaW5kZXgsIGRvdHMpIDogKGluZGV4ZXMgPT09IG51bGwgPyBrZXkgOiBrZXkgKyAnW10nKSxcbiAgICAgICAgICAgIGNvbnZlcnRWYWx1ZShlbClcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc1Zpc2l0YWJsZSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZvcm1EYXRhLmFwcGVuZChyZW5kZXJLZXkocGF0aCwga2V5LCBkb3RzKSwgY29udmVydFZhbHVlKHZhbHVlKSk7XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBzdGFjayA9IFtdO1xuXG4gIGNvbnN0IGV4cG9zZWRIZWxwZXJzID0gT2JqZWN0LmFzc2lnbihwcmVkaWNhdGVzLCB7XG4gICAgZGVmYXVsdFZpc2l0b3IsXG4gICAgY29udmVydFZhbHVlLFxuICAgIGlzVmlzaXRhYmxlXG4gIH0pO1xuXG4gIGZ1bmN0aW9uIGJ1aWxkKHZhbHVlLCBwYXRoKSB7XG4gICAgaWYgKHV0aWxzLmlzVW5kZWZpbmVkKHZhbHVlKSkgcmV0dXJuO1xuXG4gICAgaWYgKHN0YWNrLmluZGV4T2YodmFsdWUpICE9PSAtMSkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0NpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCBpbiAnICsgcGF0aC5qb2luKCcuJykpO1xuICAgIH1cblxuICAgIHN0YWNrLnB1c2godmFsdWUpO1xuXG4gICAgdXRpbHMuZm9yRWFjaCh2YWx1ZSwgZnVuY3Rpb24gZWFjaChlbCwga2V5KSB7XG4gICAgICBjb25zdCByZXN1bHQgPSAhKHV0aWxzLmlzVW5kZWZpbmVkKGVsKSB8fCBlbCA9PT0gbnVsbCkgJiYgdmlzaXRvci5jYWxsKFxuICAgICAgICBmb3JtRGF0YSwgZWwsIHV0aWxzLmlzU3RyaW5nKGtleSkgPyBrZXkudHJpbSgpIDoga2V5LCBwYXRoLCBleHBvc2VkSGVscGVyc1xuICAgICAgKTtcblxuICAgICAgaWYgKHJlc3VsdCA9PT0gdHJ1ZSkge1xuICAgICAgICBidWlsZChlbCwgcGF0aCA/IHBhdGguY29uY2F0KGtleSkgOiBba2V5XSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBzdGFjay5wb3AoKTtcbiAgfVxuXG4gIGlmICghdXRpbHMuaXNPYmplY3Qob2JqKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2RhdGEgbXVzdCBiZSBhbiBvYmplY3QnKTtcbiAgfVxuXG4gIGJ1aWxkKG9iaik7XG5cbiAgcmV0dXJuIGZvcm1EYXRhO1xufVxuXG5leHBvcnQgZGVmYXVsdCB0b0Zvcm1EYXRhO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdG9Gb3JtRGF0YSBmcm9tICcuL3RvRm9ybURhdGEuanMnO1xuXG4vKipcbiAqIEl0IGVuY29kZXMgYSBzdHJpbmcgYnkgcmVwbGFjaW5nIGFsbCBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBpbiB0aGUgdW5yZXNlcnZlZCBzZXQgd2l0aFxuICogdGhlaXIgcGVyY2VudC1lbmNvZGVkIGVxdWl2YWxlbnRzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHN0ciAtIFRoZSBzdHJpbmcgdG8gZW5jb2RlLlxuICpcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBlbmNvZGVkIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gZW5jb2RlKHN0cikge1xuICBjb25zdCBjaGFyTWFwID0ge1xuICAgICchJzogJyUyMScsXG4gICAgXCInXCI6ICclMjcnLFxuICAgICcoJzogJyUyOCcsXG4gICAgJyknOiAnJTI5JyxcbiAgICAnfic6ICclN0UnLFxuICAgICclMjAnOiAnKycsXG4gICAgJyUwMCc6ICdcXHgwMCdcbiAgfTtcbiAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChzdHIpLnJlcGxhY2UoL1shJygpfl18JTIwfCUwMC9nLCBmdW5jdGlvbiByZXBsYWNlcihtYXRjaCkge1xuICAgIHJldHVybiBjaGFyTWFwW21hdGNoXTtcbiAgfSk7XG59XG5cbi8qKlxuICogSXQgdGFrZXMgYSBwYXJhbXMgb2JqZWN0IGFuZCBjb252ZXJ0cyBpdCB0byBhIEZvcm1EYXRhIG9iamVjdFxuICpcbiAqIEBwYXJhbSB7T2JqZWN0PHN0cmluZywgYW55Pn0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgdG8gYmUgY29udmVydGVkIHRvIGEgRm9ybURhdGEgb2JqZWN0LlxuICogQHBhcmFtIHtPYmplY3Q8c3RyaW5nLCBhbnk+fSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgb2JqZWN0IHBhc3NlZCB0byB0aGUgQXhpb3MgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIEF4aW9zVVJMU2VhcmNoUGFyYW1zKHBhcmFtcywgb3B0aW9ucykge1xuICB0aGlzLl9wYWlycyA9IFtdO1xuXG4gIHBhcmFtcyAmJiB0b0Zvcm1EYXRhKHBhcmFtcywgdGhpcywgb3B0aW9ucyk7XG59XG5cbmNvbnN0IHByb3RvdHlwZSA9IEF4aW9zVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZTtcblxucHJvdG90eXBlLmFwcGVuZCA9IGZ1bmN0aW9uIGFwcGVuZChuYW1lLCB2YWx1ZSkge1xuICB0aGlzLl9wYWlycy5wdXNoKFtuYW1lLCB2YWx1ZV0pO1xufTtcblxucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoZW5jb2Rlcikge1xuICBjb25zdCBfZW5jb2RlID0gZW5jb2RlciA/IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIGVuY29kZXIuY2FsbCh0aGlzLCB2YWx1ZSwgZW5jb2RlKTtcbiAgfSA6IGVuY29kZTtcblxuICByZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uIGVhY2gocGFpcikge1xuICAgIHJldHVybiBfZW5jb2RlKHBhaXJbMF0pICsgJz0nICsgX2VuY29kZShwYWlyWzFdKTtcbiAgfSwgJycpLmpvaW4oJyYnKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEF4aW9zVVJMU2VhcmNoUGFyYW1zO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuaW1wb3J0IEF4aW9zVVJMU2VhcmNoUGFyYW1zIGZyb20gJy4uL2hlbHBlcnMvQXhpb3NVUkxTZWFyY2hQYXJhbXMuanMnO1xuXG4vKipcbiAqIEl0IHJlcGxhY2VzIGFsbCBpbnN0YW5jZXMgb2YgdGhlIGNoYXJhY3RlcnMgYDpgLCBgJGAsIGAsYCwgYCtgLCBgW2AsIGFuZCBgXWAgd2l0aCB0aGVpclxuICogVVJJIGVuY29kZWQgY291bnRlcnBhcnRzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbCBUaGUgdmFsdWUgdG8gYmUgZW5jb2RlZC5cbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgZW5jb2RlZCB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gZW5jb2RlKHZhbCkge1xuICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHZhbCkuXG4gICAgcmVwbGFjZSgvJTNBL2dpLCAnOicpLlxuICAgIHJlcGxhY2UoLyUyNC9nLCAnJCcpLlxuICAgIHJlcGxhY2UoLyUyQy9naSwgJywnKS5cbiAgICByZXBsYWNlKC8lMjAvZywgJysnKS5cbiAgICByZXBsYWNlKC8lNUIvZ2ksICdbJykuXG4gICAgcmVwbGFjZSgvJTVEL2dpLCAnXScpO1xufVxuXG4vKipcbiAqIEJ1aWxkIGEgVVJMIGJ5IGFwcGVuZGluZyBwYXJhbXMgdG8gdGhlIGVuZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIGJhc2Ugb2YgdGhlIHVybCAoZS5nLiwgaHR0cDovL3d3dy5nb29nbGUuY29tKVxuICogQHBhcmFtIHtvYmplY3R9IFtwYXJhbXNdIFRoZSBwYXJhbXMgdG8gYmUgYXBwZW5kZWRcbiAqIEBwYXJhbSB7PyhvYmplY3R8RnVuY3Rpb24pfSBvcHRpb25zXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gVGhlIGZvcm1hdHRlZCB1cmxcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYnVpbGRVUkwodXJsLCBwYXJhbXMsIG9wdGlvbnMpIHtcbiAgLyplc2xpbnQgbm8tcGFyYW0tcmVhc3NpZ246MCovXG4gIGlmICghcGFyYW1zKSB7XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuICBcbiAgY29uc3QgX2VuY29kZSA9IG9wdGlvbnMgJiYgb3B0aW9ucy5lbmNvZGUgfHwgZW5jb2RlO1xuXG4gIGlmICh1dGlscy5pc0Z1bmN0aW9uKG9wdGlvbnMpKSB7XG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIHNlcmlhbGl6ZTogb3B0aW9uc1xuICAgIH07XG4gIH0gXG5cbiAgY29uc3Qgc2VyaWFsaXplRm4gPSBvcHRpb25zICYmIG9wdGlvbnMuc2VyaWFsaXplO1xuXG4gIGxldCBzZXJpYWxpemVkUGFyYW1zO1xuXG4gIGlmIChzZXJpYWxpemVGbikge1xuICAgIHNlcmlhbGl6ZWRQYXJhbXMgPSBzZXJpYWxpemVGbihwYXJhbXMsIG9wdGlvbnMpO1xuICB9IGVsc2Uge1xuICAgIHNlcmlhbGl6ZWRQYXJhbXMgPSB1dGlscy5pc1VSTFNlYXJjaFBhcmFtcyhwYXJhbXMpID9cbiAgICAgIHBhcmFtcy50b1N0cmluZygpIDpcbiAgICAgIG5ldyBBeGlvc1VSTFNlYXJjaFBhcmFtcyhwYXJhbXMsIG9wdGlvbnMpLnRvU3RyaW5nKF9lbmNvZGUpO1xuICB9XG5cbiAgaWYgKHNlcmlhbGl6ZWRQYXJhbXMpIHtcbiAgICBjb25zdCBoYXNobWFya0luZGV4ID0gdXJsLmluZGV4T2YoXCIjXCIpO1xuXG4gICAgaWYgKGhhc2htYXJrSW5kZXggIT09IC0xKSB7XG4gICAgICB1cmwgPSB1cmwuc2xpY2UoMCwgaGFzaG1hcmtJbmRleCk7XG4gICAgfVxuICAgIHVybCArPSAodXJsLmluZGV4T2YoJz8nKSA9PT0gLTEgPyAnPycgOiAnJicpICsgc2VyaWFsaXplZFBhcmFtcztcbiAgfVxuXG4gIHJldHVybiB1cmw7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLy4uL3V0aWxzLmpzJztcblxuY2xhc3MgSW50ZXJjZXB0b3JNYW5hZ2VyIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5oYW5kbGVycyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBpbnRlcmNlcHRvciB0byB0aGUgc3RhY2tcbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVsZmlsbGVkIFRoZSBmdW5jdGlvbiB0byBoYW5kbGUgYHRoZW5gIGZvciBhIGBQcm9taXNlYFxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSByZWplY3RlZCBUaGUgZnVuY3Rpb24gdG8gaGFuZGxlIGByZWplY3RgIGZvciBhIGBQcm9taXNlYFxuICAgKlxuICAgKiBAcmV0dXJuIHtOdW1iZXJ9IEFuIElEIHVzZWQgdG8gcmVtb3ZlIGludGVyY2VwdG9yIGxhdGVyXG4gICAqL1xuICB1c2UoZnVsZmlsbGVkLCByZWplY3RlZCwgb3B0aW9ucykge1xuICAgIHRoaXMuaGFuZGxlcnMucHVzaCh7XG4gICAgICBmdWxmaWxsZWQsXG4gICAgICByZWplY3RlZCxcbiAgICAgIHN5bmNocm9ub3VzOiBvcHRpb25zID8gb3B0aW9ucy5zeW5jaHJvbm91cyA6IGZhbHNlLFxuICAgICAgcnVuV2hlbjogb3B0aW9ucyA/IG9wdGlvbnMucnVuV2hlbiA6IG51bGxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVycy5sZW5ndGggLSAxO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbiBpbnRlcmNlcHRvciBmcm9tIHRoZSBzdGFja1xuICAgKlxuICAgKiBAcGFyYW0ge051bWJlcn0gaWQgVGhlIElEIHRoYXQgd2FzIHJldHVybmVkIGJ5IGB1c2VgXG4gICAqXG4gICAqIEByZXR1cm5zIHtCb29sZWFufSBgdHJ1ZWAgaWYgdGhlIGludGVyY2VwdG9yIHdhcyByZW1vdmVkLCBgZmFsc2VgIG90aGVyd2lzZVxuICAgKi9cbiAgZWplY3QoaWQpIHtcbiAgICBpZiAodGhpcy5oYW5kbGVyc1tpZF0pIHtcbiAgICAgIHRoaXMuaGFuZGxlcnNbaWRdID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgYWxsIGludGVyY2VwdG9ycyBmcm9tIHRoZSBzdGFja1xuICAgKlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIGNsZWFyKCkge1xuICAgIGlmICh0aGlzLmhhbmRsZXJzKSB7XG4gICAgICB0aGlzLmhhbmRsZXJzID0gW107XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEl0ZXJhdGUgb3ZlciBhbGwgdGhlIHJlZ2lzdGVyZWQgaW50ZXJjZXB0b3JzXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgZm9yIHNraXBwaW5nIG92ZXIgYW55XG4gICAqIGludGVyY2VwdG9ycyB0aGF0IG1heSBoYXZlIGJlY29tZSBgbnVsbGAgY2FsbGluZyBgZWplY3RgLlxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBUaGUgZnVuY3Rpb24gdG8gY2FsbCBmb3IgZWFjaCBpbnRlcmNlcHRvclxuICAgKlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIGZvckVhY2goZm4pIHtcbiAgICB1dGlscy5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsIGZ1bmN0aW9uIGZvckVhY2hIYW5kbGVyKGgpIHtcbiAgICAgIGlmIChoICE9PSBudWxsKSB7XG4gICAgICAgIGZuKGgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEludGVyY2VwdG9yTWFuYWdlcjtcbiIsIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0IGRlZmF1bHQge1xuICBzaWxlbnRKU09OUGFyc2luZzogdHJ1ZSxcbiAgZm9yY2VkSlNPTlBhcnNpbmc6IHRydWUsXG4gIGNsYXJpZnlUaW1lb3V0RXJyb3I6IGZhbHNlXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgQXhpb3NVUkxTZWFyY2hQYXJhbXMgZnJvbSAnLi4vLi4vLi4vaGVscGVycy9BeGlvc1VSTFNlYXJjaFBhcmFtcy5qcyc7XG5leHBvcnQgZGVmYXVsdCB0eXBlb2YgVVJMU2VhcmNoUGFyYW1zICE9PSAndW5kZWZpbmVkJyA/IFVSTFNlYXJjaFBhcmFtcyA6IEF4aW9zVVJMU2VhcmNoUGFyYW1zO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnQgZGVmYXVsdCB0eXBlb2YgRm9ybURhdGEgIT09ICd1bmRlZmluZWQnID8gRm9ybURhdGEgOiBudWxsO1xuIiwiJ3VzZSBzdHJpY3QnXG5cbmV4cG9ydCBkZWZhdWx0IHR5cGVvZiBCbG9iICE9PSAndW5kZWZpbmVkJyA/IEJsb2IgOiBudWxsXG4iLCJpbXBvcnQgVVJMU2VhcmNoUGFyYW1zIGZyb20gJy4vY2xhc3Nlcy9VUkxTZWFyY2hQYXJhbXMuanMnXG5pbXBvcnQgRm9ybURhdGEgZnJvbSAnLi9jbGFzc2VzL0Zvcm1EYXRhLmpzJ1xuaW1wb3J0IEJsb2IgZnJvbSAnLi9jbGFzc2VzL0Jsb2IuanMnXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgaXNCcm93c2VyOiB0cnVlLFxuICBjbGFzc2VzOiB7XG4gICAgVVJMU2VhcmNoUGFyYW1zLFxuICAgIEZvcm1EYXRhLFxuICAgIEJsb2JcbiAgfSxcbiAgcHJvdG9jb2xzOiBbJ2h0dHAnLCAnaHR0cHMnLCAnZmlsZScsICdibG9iJywgJ3VybCcsICdkYXRhJ11cbn07XG4iLCJjb25zdCBoYXNCcm93c2VyRW52ID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJztcblxuY29uc3QgX25hdmlnYXRvciA9IHR5cGVvZiBuYXZpZ2F0b3IgPT09ICdvYmplY3QnICYmIG5hdmlnYXRvciB8fCB1bmRlZmluZWQ7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSBzdGFuZGFyZCBicm93c2VyIGVudmlyb25tZW50XG4gKlxuICogVGhpcyBhbGxvd3MgYXhpb3MgdG8gcnVuIGluIGEgd2ViIHdvcmtlciwgYW5kIHJlYWN0LW5hdGl2ZS5cbiAqIEJvdGggZW52aXJvbm1lbnRzIHN1cHBvcnQgWE1MSHR0cFJlcXVlc3QsIGJ1dCBub3QgZnVsbHkgc3RhbmRhcmQgZ2xvYmFscy5cbiAqXG4gKiB3ZWIgd29ya2VyczpcbiAqICB0eXBlb2Ygd2luZG93IC0+IHVuZGVmaW5lZFxuICogIHR5cGVvZiBkb2N1bWVudCAtPiB1bmRlZmluZWRcbiAqXG4gKiByZWFjdC1uYXRpdmU6XG4gKiAgbmF2aWdhdG9yLnByb2R1Y3QgLT4gJ1JlYWN0TmF0aXZlJ1xuICogbmF0aXZlc2NyaXB0XG4gKiAgbmF2aWdhdG9yLnByb2R1Y3QgLT4gJ05hdGl2ZVNjcmlwdCcgb3IgJ05TJ1xuICpcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5jb25zdCBoYXNTdGFuZGFyZEJyb3dzZXJFbnYgPSBoYXNCcm93c2VyRW52ICYmXG4gICghX25hdmlnYXRvciB8fCBbJ1JlYWN0TmF0aXZlJywgJ05hdGl2ZVNjcmlwdCcsICdOUyddLmluZGV4T2YoX25hdmlnYXRvci5wcm9kdWN0KSA8IDApO1xuXG4vKipcbiAqIERldGVybWluZSBpZiB3ZSdyZSBydW5uaW5nIGluIGEgc3RhbmRhcmQgYnJvd3NlciB3ZWJXb3JrZXIgZW52aXJvbm1lbnRcbiAqXG4gKiBBbHRob3VnaCB0aGUgYGlzU3RhbmRhcmRCcm93c2VyRW52YCBtZXRob2QgaW5kaWNhdGVzIHRoYXRcbiAqIGBhbGxvd3MgYXhpb3MgdG8gcnVuIGluIGEgd2ViIHdvcmtlcmAsIHRoZSBXZWJXb3JrZXIgd2lsbCBzdGlsbCBiZVxuICogZmlsdGVyZWQgb3V0IGR1ZSB0byBpdHMganVkZ21lbnQgc3RhbmRhcmRcbiAqIGB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnYC5cbiAqIFRoaXMgbGVhZHMgdG8gYSBwcm9ibGVtIHdoZW4gYXhpb3MgcG9zdCBgRm9ybURhdGFgIGluIHdlYldvcmtlclxuICovXG5jb25zdCBoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnYgPSAoKCkgPT4ge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZSAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgICBzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUgJiZcbiAgICB0eXBlb2Ygc2VsZi5pbXBvcnRTY3JpcHRzID09PSAnZnVuY3Rpb24nXG4gICk7XG59KSgpO1xuXG5jb25zdCBvcmlnaW4gPSBoYXNCcm93c2VyRW52ICYmIHdpbmRvdy5sb2NhdGlvbi5ocmVmIHx8ICdodHRwOi8vbG9jYWxob3N0JztcblxuZXhwb3J0IHtcbiAgaGFzQnJvd3NlckVudixcbiAgaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52LFxuICBoYXNTdGFuZGFyZEJyb3dzZXJFbnYsXG4gIF9uYXZpZ2F0b3IgYXMgbmF2aWdhdG9yLFxuICBvcmlnaW5cbn1cbiIsImltcG9ydCBwbGF0Zm9ybSBmcm9tICcuL25vZGUvaW5kZXguanMnO1xuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSAnLi9jb21tb24vdXRpbHMuanMnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIC4uLnV0aWxzLFxuICAuLi5wbGF0Zm9ybVxufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuaW1wb3J0IHRvRm9ybURhdGEgZnJvbSAnLi90b0Zvcm1EYXRhLmpzJztcbmltcG9ydCBwbGF0Zm9ybSBmcm9tICcuLi9wbGF0Zm9ybS9pbmRleC5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRvVVJMRW5jb2RlZEZvcm0oZGF0YSwgb3B0aW9ucykge1xuICByZXR1cm4gdG9Gb3JtRGF0YShkYXRhLCBuZXcgcGxhdGZvcm0uY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMoKSwgT2JqZWN0LmFzc2lnbih7XG4gICAgdmlzaXRvcjogZnVuY3Rpb24odmFsdWUsIGtleSwgcGF0aCwgaGVscGVycykge1xuICAgICAgaWYgKHBsYXRmb3JtLmlzTm9kZSAmJiB1dGlscy5pc0J1ZmZlcih2YWx1ZSkpIHtcbiAgICAgICAgdGhpcy5hcHBlbmQoa2V5LCB2YWx1ZS50b1N0cmluZygnYmFzZTY0JykpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBoZWxwZXJzLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfVxuICB9LCBvcHRpb25zKSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscy5qcyc7XG5cbi8qKlxuICogSXQgdGFrZXMgYSBzdHJpbmcgbGlrZSBgZm9vW3hdW3ldW3pdYCBhbmQgcmV0dXJucyBhbiBhcnJheSBsaWtlIGBbJ2ZvbycsICd4JywgJ3knLCAneiddXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICpcbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlUHJvcFBhdGgobmFtZSkge1xuICAvLyBmb29beF1beV1bel1cbiAgLy8gZm9vLngueS56XG4gIC8vIGZvby14LXktelxuICAvLyBmb28geCB5IHpcbiAgcmV0dXJuIHV0aWxzLm1hdGNoQWxsKC9cXHcrfFxcWyhcXHcqKV0vZywgbmFtZSkubWFwKG1hdGNoID0+IHtcbiAgICByZXR1cm4gbWF0Y2hbMF0gPT09ICdbXScgPyAnJyA6IG1hdGNoWzFdIHx8IG1hdGNoWzBdO1xuICB9KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGFuIGFycmF5IHRvIGFuIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PGFueT59IGFyciAtIFRoZSBhcnJheSB0byBjb252ZXJ0IHRvIGFuIG9iamVjdC5cbiAqXG4gKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCB0aGUgc2FtZSBrZXlzIGFuZCB2YWx1ZXMgYXMgdGhlIGFycmF5LlxuICovXG5mdW5jdGlvbiBhcnJheVRvT2JqZWN0KGFycikge1xuICBjb25zdCBvYmogPSB7fTtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGFycik7XG4gIGxldCBpO1xuICBjb25zdCBsZW4gPSBrZXlzLmxlbmd0aDtcbiAgbGV0IGtleTtcbiAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAga2V5ID0ga2V5c1tpXTtcbiAgICBvYmpba2V5XSA9IGFycltrZXldO1xuICB9XG4gIHJldHVybiBvYmo7XG59XG5cbi8qKlxuICogSXQgdGFrZXMgYSBGb3JtRGF0YSBvYmplY3QgYW5kIHJldHVybnMgYSBKYXZhU2NyaXB0IG9iamVjdFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtRGF0YSBUaGUgRm9ybURhdGEgb2JqZWN0IHRvIGNvbnZlcnQgdG8gSlNPTi5cbiAqXG4gKiBAcmV0dXJucyB7T2JqZWN0PHN0cmluZywgYW55PiB8IG51bGx9IFRoZSBjb252ZXJ0ZWQgb2JqZWN0LlxuICovXG5mdW5jdGlvbiBmb3JtRGF0YVRvSlNPTihmb3JtRGF0YSkge1xuICBmdW5jdGlvbiBidWlsZFBhdGgocGF0aCwgdmFsdWUsIHRhcmdldCwgaW5kZXgpIHtcbiAgICBsZXQgbmFtZSA9IHBhdGhbaW5kZXgrK107XG5cbiAgICBpZiAobmFtZSA9PT0gJ19fcHJvdG9fXycpIHJldHVybiB0cnVlO1xuXG4gICAgY29uc3QgaXNOdW1lcmljS2V5ID0gTnVtYmVyLmlzRmluaXRlKCtuYW1lKTtcbiAgICBjb25zdCBpc0xhc3QgPSBpbmRleCA+PSBwYXRoLmxlbmd0aDtcbiAgICBuYW1lID0gIW5hbWUgJiYgdXRpbHMuaXNBcnJheSh0YXJnZXQpID8gdGFyZ2V0Lmxlbmd0aCA6IG5hbWU7XG5cbiAgICBpZiAoaXNMYXN0KSB7XG4gICAgICBpZiAodXRpbHMuaGFzT3duUHJvcCh0YXJnZXQsIG5hbWUpKSB7XG4gICAgICAgIHRhcmdldFtuYW1lXSA9IFt0YXJnZXRbbmFtZV0sIHZhbHVlXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhcmdldFtuYW1lXSA9IHZhbHVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gIWlzTnVtZXJpY0tleTtcbiAgICB9XG5cbiAgICBpZiAoIXRhcmdldFtuYW1lXSB8fCAhdXRpbHMuaXNPYmplY3QodGFyZ2V0W25hbWVdKSkge1xuICAgICAgdGFyZ2V0W25hbWVdID0gW107XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYnVpbGRQYXRoKHBhdGgsIHZhbHVlLCB0YXJnZXRbbmFtZV0sIGluZGV4KTtcblxuICAgIGlmIChyZXN1bHQgJiYgdXRpbHMuaXNBcnJheSh0YXJnZXRbbmFtZV0pKSB7XG4gICAgICB0YXJnZXRbbmFtZV0gPSBhcnJheVRvT2JqZWN0KHRhcmdldFtuYW1lXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuICFpc051bWVyaWNLZXk7XG4gIH1cblxuICBpZiAodXRpbHMuaXNGb3JtRGF0YShmb3JtRGF0YSkgJiYgdXRpbHMuaXNGdW5jdGlvbihmb3JtRGF0YS5lbnRyaWVzKSkge1xuICAgIGNvbnN0IG9iaiA9IHt9O1xuXG4gICAgdXRpbHMuZm9yRWFjaEVudHJ5KGZvcm1EYXRhLCAobmFtZSwgdmFsdWUpID0+IHtcbiAgICAgIGJ1aWxkUGF0aChwYXJzZVByb3BQYXRoKG5hbWUpLCB2YWx1ZSwgb2JqLCAwKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZm9ybURhdGFUb0pTT047XG4iLCIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscy5qcyc7XG5pbXBvcnQgQXhpb3NFcnJvciBmcm9tICcuLi9jb3JlL0F4aW9zRXJyb3IuanMnO1xuaW1wb3J0IHRyYW5zaXRpb25hbERlZmF1bHRzIGZyb20gJy4vdHJhbnNpdGlvbmFsLmpzJztcbmltcG9ydCB0b0Zvcm1EYXRhIGZyb20gJy4uL2hlbHBlcnMvdG9Gb3JtRGF0YS5qcyc7XG5pbXBvcnQgdG9VUkxFbmNvZGVkRm9ybSBmcm9tICcuLi9oZWxwZXJzL3RvVVJMRW5jb2RlZEZvcm0uanMnO1xuaW1wb3J0IHBsYXRmb3JtIGZyb20gJy4uL3BsYXRmb3JtL2luZGV4LmpzJztcbmltcG9ydCBmb3JtRGF0YVRvSlNPTiBmcm9tICcuLi9oZWxwZXJzL2Zvcm1EYXRhVG9KU09OLmpzJztcblxuLyoqXG4gKiBJdCB0YWtlcyBhIHN0cmluZywgdHJpZXMgdG8gcGFyc2UgaXQsIGFuZCBpZiBpdCBmYWlscywgaXQgcmV0dXJucyB0aGUgc3RyaW5naWZpZWQgdmVyc2lvblxuICogb2YgdGhlIGlucHV0XG4gKlxuICogQHBhcmFtIHthbnl9IHJhd1ZhbHVlIC0gVGhlIHZhbHVlIHRvIGJlIHN0cmluZ2lmaWVkLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcGFyc2VyIC0gQSBmdW5jdGlvbiB0aGF0IHBhcnNlcyBhIHN0cmluZyBpbnRvIGEgSmF2YVNjcmlwdCBvYmplY3QuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlbmNvZGVyIC0gQSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgdmFsdWUgYW5kIHJldHVybnMgYSBzdHJpbmcuXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gQSBzdHJpbmdpZmllZCB2ZXJzaW9uIG9mIHRoZSByYXdWYWx1ZS5cbiAqL1xuZnVuY3Rpb24gc3RyaW5naWZ5U2FmZWx5KHJhd1ZhbHVlLCBwYXJzZXIsIGVuY29kZXIpIHtcbiAgaWYgKHV0aWxzLmlzU3RyaW5nKHJhd1ZhbHVlKSkge1xuICAgIHRyeSB7XG4gICAgICAocGFyc2VyIHx8IEpTT04ucGFyc2UpKHJhd1ZhbHVlKTtcbiAgICAgIHJldHVybiB1dGlscy50cmltKHJhd1ZhbHVlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoZS5uYW1lICE9PSAnU3ludGF4RXJyb3InKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChlbmNvZGVyIHx8IEpTT04uc3RyaW5naWZ5KShyYXdWYWx1ZSk7XG59XG5cbmNvbnN0IGRlZmF1bHRzID0ge1xuXG4gIHRyYW5zaXRpb25hbDogdHJhbnNpdGlvbmFsRGVmYXVsdHMsXG5cbiAgYWRhcHRlcjogWyd4aHInLCAnaHR0cCcsICdmZXRjaCddLFxuXG4gIHRyYW5zZm9ybVJlcXVlc3Q6IFtmdW5jdGlvbiB0cmFuc2Zvcm1SZXF1ZXN0KGRhdGEsIGhlYWRlcnMpIHtcbiAgICBjb25zdCBjb250ZW50VHlwZSA9IGhlYWRlcnMuZ2V0Q29udGVudFR5cGUoKSB8fCAnJztcbiAgICBjb25zdCBoYXNKU09OQ29udGVudFR5cGUgPSBjb250ZW50VHlwZS5pbmRleE9mKCdhcHBsaWNhdGlvbi9qc29uJykgPiAtMTtcbiAgICBjb25zdCBpc09iamVjdFBheWxvYWQgPSB1dGlscy5pc09iamVjdChkYXRhKTtcblxuICAgIGlmIChpc09iamVjdFBheWxvYWQgJiYgdXRpbHMuaXNIVE1MRm9ybShkYXRhKSkge1xuICAgICAgZGF0YSA9IG5ldyBGb3JtRGF0YShkYXRhKTtcbiAgICB9XG5cbiAgICBjb25zdCBpc0Zvcm1EYXRhID0gdXRpbHMuaXNGb3JtRGF0YShkYXRhKTtcblxuICAgIGlmIChpc0Zvcm1EYXRhKSB7XG4gICAgICByZXR1cm4gaGFzSlNPTkNvbnRlbnRUeXBlID8gSlNPTi5zdHJpbmdpZnkoZm9ybURhdGFUb0pTT04oZGF0YSkpIDogZGF0YTtcbiAgICB9XG5cbiAgICBpZiAodXRpbHMuaXNBcnJheUJ1ZmZlcihkYXRhKSB8fFxuICAgICAgdXRpbHMuaXNCdWZmZXIoZGF0YSkgfHxcbiAgICAgIHV0aWxzLmlzU3RyZWFtKGRhdGEpIHx8XG4gICAgICB1dGlscy5pc0ZpbGUoZGF0YSkgfHxcbiAgICAgIHV0aWxzLmlzQmxvYihkYXRhKSB8fFxuICAgICAgdXRpbHMuaXNSZWFkYWJsZVN0cmVhbShkYXRhKVxuICAgICkge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGlmICh1dGlscy5pc0FycmF5QnVmZmVyVmlldyhkYXRhKSkge1xuICAgICAgcmV0dXJuIGRhdGEuYnVmZmVyO1xuICAgIH1cbiAgICBpZiAodXRpbHMuaXNVUkxTZWFyY2hQYXJhbXMoZGF0YSkpIHtcbiAgICAgIGhlYWRlcnMuc2V0Q29udGVudFR5cGUoJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04JywgZmFsc2UpO1xuICAgICAgcmV0dXJuIGRhdGEudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBsZXQgaXNGaWxlTGlzdDtcblxuICAgIGlmIChpc09iamVjdFBheWxvYWQpIHtcbiAgICAgIGlmIChjb250ZW50VHlwZS5pbmRleE9mKCdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnKSA+IC0xKSB7XG4gICAgICAgIHJldHVybiB0b1VSTEVuY29kZWRGb3JtKGRhdGEsIHRoaXMuZm9ybVNlcmlhbGl6ZXIpLnRvU3RyaW5nKCk7XG4gICAgICB9XG5cbiAgICAgIGlmICgoaXNGaWxlTGlzdCA9IHV0aWxzLmlzRmlsZUxpc3QoZGF0YSkpIHx8IGNvbnRlbnRUeXBlLmluZGV4T2YoJ211bHRpcGFydC9mb3JtLWRhdGEnKSA+IC0xKSB7XG4gICAgICAgIGNvbnN0IF9Gb3JtRGF0YSA9IHRoaXMuZW52ICYmIHRoaXMuZW52LkZvcm1EYXRhO1xuXG4gICAgICAgIHJldHVybiB0b0Zvcm1EYXRhKFxuICAgICAgICAgIGlzRmlsZUxpc3QgPyB7J2ZpbGVzW10nOiBkYXRhfSA6IGRhdGEsXG4gICAgICAgICAgX0Zvcm1EYXRhICYmIG5ldyBfRm9ybURhdGEoKSxcbiAgICAgICAgICB0aGlzLmZvcm1TZXJpYWxpemVyXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzT2JqZWN0UGF5bG9hZCB8fCBoYXNKU09OQ29udGVudFR5cGUgKSB7XG4gICAgICBoZWFkZXJzLnNldENvbnRlbnRUeXBlKCdhcHBsaWNhdGlvbi9qc29uJywgZmFsc2UpO1xuICAgICAgcmV0dXJuIHN0cmluZ2lmeVNhZmVseShkYXRhKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfV0sXG5cbiAgdHJhbnNmb3JtUmVzcG9uc2U6IFtmdW5jdGlvbiB0cmFuc2Zvcm1SZXNwb25zZShkYXRhKSB7XG4gICAgY29uc3QgdHJhbnNpdGlvbmFsID0gdGhpcy50cmFuc2l0aW9uYWwgfHwgZGVmYXVsdHMudHJhbnNpdGlvbmFsO1xuICAgIGNvbnN0IGZvcmNlZEpTT05QYXJzaW5nID0gdHJhbnNpdGlvbmFsICYmIHRyYW5zaXRpb25hbC5mb3JjZWRKU09OUGFyc2luZztcbiAgICBjb25zdCBKU09OUmVxdWVzdGVkID0gdGhpcy5yZXNwb25zZVR5cGUgPT09ICdqc29uJztcblxuICAgIGlmICh1dGlscy5pc1Jlc3BvbnNlKGRhdGEpIHx8IHV0aWxzLmlzUmVhZGFibGVTdHJlYW0oZGF0YSkpIHtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cblxuICAgIGlmIChkYXRhICYmIHV0aWxzLmlzU3RyaW5nKGRhdGEpICYmICgoZm9yY2VkSlNPTlBhcnNpbmcgJiYgIXRoaXMucmVzcG9uc2VUeXBlKSB8fCBKU09OUmVxdWVzdGVkKSkge1xuICAgICAgY29uc3Qgc2lsZW50SlNPTlBhcnNpbmcgPSB0cmFuc2l0aW9uYWwgJiYgdHJhbnNpdGlvbmFsLnNpbGVudEpTT05QYXJzaW5nO1xuICAgICAgY29uc3Qgc3RyaWN0SlNPTlBhcnNpbmcgPSAhc2lsZW50SlNPTlBhcnNpbmcgJiYgSlNPTlJlcXVlc3RlZDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmIChzdHJpY3RKU09OUGFyc2luZykge1xuICAgICAgICAgIGlmIChlLm5hbWUgPT09ICdTeW50YXhFcnJvcicpIHtcbiAgICAgICAgICAgIHRocm93IEF4aW9zRXJyb3IuZnJvbShlLCBBeGlvc0Vycm9yLkVSUl9CQURfUkVTUE9OU0UsIHRoaXMsIG51bGwsIHRoaXMucmVzcG9uc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1dLFxuXG4gIC8qKlxuICAgKiBBIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIHRvIGFib3J0IGEgcmVxdWVzdC4gSWYgc2V0IHRvIDAgKGRlZmF1bHQpIGFcbiAgICogdGltZW91dCBpcyBub3QgY3JlYXRlZC5cbiAgICovXG4gIHRpbWVvdXQ6IDAsXG5cbiAgeHNyZkNvb2tpZU5hbWU6ICdYU1JGLVRPS0VOJyxcbiAgeHNyZkhlYWRlck5hbWU6ICdYLVhTUkYtVE9LRU4nLFxuXG4gIG1heENvbnRlbnRMZW5ndGg6IC0xLFxuICBtYXhCb2R5TGVuZ3RoOiAtMSxcblxuICBlbnY6IHtcbiAgICBGb3JtRGF0YTogcGxhdGZvcm0uY2xhc3Nlcy5Gb3JtRGF0YSxcbiAgICBCbG9iOiBwbGF0Zm9ybS5jbGFzc2VzLkJsb2JcbiAgfSxcblxuICB2YWxpZGF0ZVN0YXR1czogZnVuY3Rpb24gdmFsaWRhdGVTdGF0dXMoc3RhdHVzKSB7XG4gICAgcmV0dXJuIHN0YXR1cyA+PSAyMDAgJiYgc3RhdHVzIDwgMzAwO1xuICB9LFxuXG4gIGhlYWRlcnM6IHtcbiAgICBjb21tb246IHtcbiAgICAgICdBY2NlcHQnOiAnYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qJyxcbiAgICAgICdDb250ZW50LVR5cGUnOiB1bmRlZmluZWRcbiAgICB9XG4gIH1cbn07XG5cbnV0aWxzLmZvckVhY2goWydkZWxldGUnLCAnZ2V0JywgJ2hlYWQnLCAncG9zdCcsICdwdXQnLCAncGF0Y2gnXSwgKG1ldGhvZCkgPT4ge1xuICBkZWZhdWx0cy5oZWFkZXJzW21ldGhvZF0gPSB7fTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZhdWx0cztcbiIsIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHV0aWxzIGZyb20gJy4vLi4vdXRpbHMuanMnO1xuXG4vLyBSYXdBeGlvc0hlYWRlcnMgd2hvc2UgZHVwbGljYXRlcyBhcmUgaWdub3JlZCBieSBub2RlXG4vLyBjLmYuIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvaHR0cC5odG1sI2h0dHBfbWVzc2FnZV9oZWFkZXJzXG5jb25zdCBpZ25vcmVEdXBsaWNhdGVPZiA9IHV0aWxzLnRvT2JqZWN0U2V0KFtcbiAgJ2FnZScsICdhdXRob3JpemF0aW9uJywgJ2NvbnRlbnQtbGVuZ3RoJywgJ2NvbnRlbnQtdHlwZScsICdldGFnJyxcbiAgJ2V4cGlyZXMnLCAnZnJvbScsICdob3N0JywgJ2lmLW1vZGlmaWVkLXNpbmNlJywgJ2lmLXVubW9kaWZpZWQtc2luY2UnLFxuICAnbGFzdC1tb2RpZmllZCcsICdsb2NhdGlvbicsICdtYXgtZm9yd2FyZHMnLCAncHJveHktYXV0aG9yaXphdGlvbicsXG4gICdyZWZlcmVyJywgJ3JldHJ5LWFmdGVyJywgJ3VzZXItYWdlbnQnXG5dKTtcblxuLyoqXG4gKiBQYXJzZSBoZWFkZXJzIGludG8gYW4gb2JqZWN0XG4gKlxuICogYGBgXG4gKiBEYXRlOiBXZWQsIDI3IEF1ZyAyMDE0IDA4OjU4OjQ5IEdNVFxuICogQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uXG4gKiBDb25uZWN0aW9uOiBrZWVwLWFsaXZlXG4gKiBUcmFuc2Zlci1FbmNvZGluZzogY2h1bmtlZFxuICogYGBgXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHJhd0hlYWRlcnMgSGVhZGVycyBuZWVkaW5nIHRvIGJlIHBhcnNlZFxuICpcbiAqIEByZXR1cm5zIHtPYmplY3R9IEhlYWRlcnMgcGFyc2VkIGludG8gYW4gb2JqZWN0XG4gKi9cbmV4cG9ydCBkZWZhdWx0IHJhd0hlYWRlcnMgPT4ge1xuICBjb25zdCBwYXJzZWQgPSB7fTtcbiAgbGV0IGtleTtcbiAgbGV0IHZhbDtcbiAgbGV0IGk7XG5cbiAgcmF3SGVhZGVycyAmJiByYXdIZWFkZXJzLnNwbGl0KCdcXG4nKS5mb3JFYWNoKGZ1bmN0aW9uIHBhcnNlcihsaW5lKSB7XG4gICAgaSA9IGxpbmUuaW5kZXhPZignOicpO1xuICAgIGtleSA9IGxpbmUuc3Vic3RyaW5nKDAsIGkpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhbCA9IGxpbmUuc3Vic3RyaW5nKGkgKyAxKS50cmltKCk7XG5cbiAgICBpZiAoIWtleSB8fCAocGFyc2VkW2tleV0gJiYgaWdub3JlRHVwbGljYXRlT2Zba2V5XSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoa2V5ID09PSAnc2V0LWNvb2tpZScpIHtcbiAgICAgIGlmIChwYXJzZWRba2V5XSkge1xuICAgICAgICBwYXJzZWRba2V5XS5wdXNoKHZhbCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJzZWRba2V5XSA9IFt2YWxdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwYXJzZWRba2V5XSA9IHBhcnNlZFtrZXldID8gcGFyc2VkW2tleV0gKyAnLCAnICsgdmFsIDogdmFsO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHBhcnNlZDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscy5qcyc7XG5pbXBvcnQgcGFyc2VIZWFkZXJzIGZyb20gJy4uL2hlbHBlcnMvcGFyc2VIZWFkZXJzLmpzJztcblxuY29uc3QgJGludGVybmFscyA9IFN5bWJvbCgnaW50ZXJuYWxzJyk7XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUhlYWRlcihoZWFkZXIpIHtcbiAgcmV0dXJuIGhlYWRlciAmJiBTdHJpbmcoaGVhZGVyKS50cmltKCkudG9Mb3dlckNhc2UoKTtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplVmFsdWUodmFsdWUpIHtcbiAgaWYgKHZhbHVlID09PSBmYWxzZSB8fCB2YWx1ZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIHV0aWxzLmlzQXJyYXkodmFsdWUpID8gdmFsdWUubWFwKG5vcm1hbGl6ZVZhbHVlKSA6IFN0cmluZyh2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlVG9rZW5zKHN0cikge1xuICBjb25zdCB0b2tlbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBjb25zdCB0b2tlbnNSRSA9IC8oW15cXHMsOz1dKylcXHMqKD86PVxccyooW14sO10rKSk/L2c7XG4gIGxldCBtYXRjaDtcblxuICB3aGlsZSAoKG1hdGNoID0gdG9rZW5zUkUuZXhlYyhzdHIpKSkge1xuICAgIHRva2Vuc1ttYXRjaFsxXV0gPSBtYXRjaFsyXTtcbiAgfVxuXG4gIHJldHVybiB0b2tlbnM7XG59XG5cbmNvbnN0IGlzVmFsaWRIZWFkZXJOYW1lID0gKHN0cikgPT4gL15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChzdHIudHJpbSgpKTtcblxuZnVuY3Rpb24gbWF0Y2hIZWFkZXJWYWx1ZShjb250ZXh0LCB2YWx1ZSwgaGVhZGVyLCBmaWx0ZXIsIGlzSGVhZGVyTmFtZUZpbHRlcikge1xuICBpZiAodXRpbHMuaXNGdW5jdGlvbihmaWx0ZXIpKSB7XG4gICAgcmV0dXJuIGZpbHRlci5jYWxsKHRoaXMsIHZhbHVlLCBoZWFkZXIpO1xuICB9XG5cbiAgaWYgKGlzSGVhZGVyTmFtZUZpbHRlcikge1xuICAgIHZhbHVlID0gaGVhZGVyO1xuICB9XG5cbiAgaWYgKCF1dGlscy5pc1N0cmluZyh2YWx1ZSkpIHJldHVybjtcblxuICBpZiAodXRpbHMuaXNTdHJpbmcoZmlsdGVyKSkge1xuICAgIHJldHVybiB2YWx1ZS5pbmRleE9mKGZpbHRlcikgIT09IC0xO1xuICB9XG5cbiAgaWYgKHV0aWxzLmlzUmVnRXhwKGZpbHRlcikpIHtcbiAgICByZXR1cm4gZmlsdGVyLnRlc3QodmFsdWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZvcm1hdEhlYWRlcihoZWFkZXIpIHtcbiAgcmV0dXJuIGhlYWRlci50cmltKClcbiAgICAudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8oW2EtelxcZF0pKFxcdyopL2csICh3LCBjaGFyLCBzdHIpID0+IHtcbiAgICAgIHJldHVybiBjaGFyLnRvVXBwZXJDYXNlKCkgKyBzdHI7XG4gICAgfSk7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQWNjZXNzb3JzKG9iaiwgaGVhZGVyKSB7XG4gIGNvbnN0IGFjY2Vzc29yTmFtZSA9IHV0aWxzLnRvQ2FtZWxDYXNlKCcgJyArIGhlYWRlcik7XG5cbiAgWydnZXQnLCAnc2V0JywgJ2hhcyddLmZvckVhY2gobWV0aG9kTmFtZSA9PiB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgbWV0aG9kTmFtZSArIGFjY2Vzc29yTmFtZSwge1xuICAgICAgdmFsdWU6IGZ1bmN0aW9uKGFyZzEsIGFyZzIsIGFyZzMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbbWV0aG9kTmFtZV0uY2FsbCh0aGlzLCBoZWFkZXIsIGFyZzEsIGFyZzIsIGFyZzMpO1xuICAgICAgfSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9KTtcbn1cblxuY2xhc3MgQXhpb3NIZWFkZXJzIHtcbiAgY29uc3RydWN0b3IoaGVhZGVycykge1xuICAgIGhlYWRlcnMgJiYgdGhpcy5zZXQoaGVhZGVycyk7XG4gIH1cblxuICBzZXQoaGVhZGVyLCB2YWx1ZU9yUmV3cml0ZSwgcmV3cml0ZSkge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuXG4gICAgZnVuY3Rpb24gc2V0SGVhZGVyKF92YWx1ZSwgX2hlYWRlciwgX3Jld3JpdGUpIHtcbiAgICAgIGNvbnN0IGxIZWFkZXIgPSBub3JtYWxpemVIZWFkZXIoX2hlYWRlcik7XG5cbiAgICAgIGlmICghbEhlYWRlcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2hlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGtleSA9IHV0aWxzLmZpbmRLZXkoc2VsZiwgbEhlYWRlcik7XG5cbiAgICAgIGlmKCFrZXkgfHwgc2VsZltrZXldID09PSB1bmRlZmluZWQgfHwgX3Jld3JpdGUgPT09IHRydWUgfHwgKF9yZXdyaXRlID09PSB1bmRlZmluZWQgJiYgc2VsZltrZXldICE9PSBmYWxzZSkpIHtcbiAgICAgICAgc2VsZltrZXkgfHwgX2hlYWRlcl0gPSBub3JtYWxpemVWYWx1ZShfdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHNldEhlYWRlcnMgPSAoaGVhZGVycywgX3Jld3JpdGUpID0+XG4gICAgICB1dGlscy5mb3JFYWNoKGhlYWRlcnMsIChfdmFsdWUsIF9oZWFkZXIpID0+IHNldEhlYWRlcihfdmFsdWUsIF9oZWFkZXIsIF9yZXdyaXRlKSk7XG5cbiAgICBpZiAodXRpbHMuaXNQbGFpbk9iamVjdChoZWFkZXIpIHx8IGhlYWRlciBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3IpIHtcbiAgICAgIHNldEhlYWRlcnMoaGVhZGVyLCB2YWx1ZU9yUmV3cml0ZSlcbiAgICB9IGVsc2UgaWYodXRpbHMuaXNTdHJpbmcoaGVhZGVyKSAmJiAoaGVhZGVyID0gaGVhZGVyLnRyaW0oKSkgJiYgIWlzVmFsaWRIZWFkZXJOYW1lKGhlYWRlcikpIHtcbiAgICAgIHNldEhlYWRlcnMocGFyc2VIZWFkZXJzKGhlYWRlciksIHZhbHVlT3JSZXdyaXRlKTtcbiAgICB9IGVsc2UgaWYgKHV0aWxzLmlzSGVhZGVycyhoZWFkZXIpKSB7XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBoZWFkZXIuZW50cmllcygpKSB7XG4gICAgICAgIHNldEhlYWRlcih2YWx1ZSwga2V5LCByZXdyaXRlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaGVhZGVyICE9IG51bGwgJiYgc2V0SGVhZGVyKHZhbHVlT3JSZXdyaXRlLCBoZWFkZXIsIHJld3JpdGUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZ2V0KGhlYWRlciwgcGFyc2VyKSB7XG4gICAgaGVhZGVyID0gbm9ybWFsaXplSGVhZGVyKGhlYWRlcik7XG5cbiAgICBpZiAoaGVhZGVyKSB7XG4gICAgICBjb25zdCBrZXkgPSB1dGlscy5maW5kS2V5KHRoaXMsIGhlYWRlcik7XG5cbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzW2tleV07XG5cbiAgICAgICAgaWYgKCFwYXJzZXIpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFyc2VyID09PSB0cnVlKSB7XG4gICAgICAgICAgcmV0dXJuIHBhcnNlVG9rZW5zKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh1dGlscy5pc0Z1bmN0aW9uKHBhcnNlcikpIHtcbiAgICAgICAgICByZXR1cm4gcGFyc2VyLmNhbGwodGhpcywgdmFsdWUsIGtleSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodXRpbHMuaXNSZWdFeHAocGFyc2VyKSkge1xuICAgICAgICAgIHJldHVybiBwYXJzZXIuZXhlYyh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXJzZXIgbXVzdCBiZSBib29sZWFufHJlZ2V4cHxmdW5jdGlvbicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhcyhoZWFkZXIsIG1hdGNoZXIpIHtcbiAgICBoZWFkZXIgPSBub3JtYWxpemVIZWFkZXIoaGVhZGVyKTtcblxuICAgIGlmIChoZWFkZXIpIHtcbiAgICAgIGNvbnN0IGtleSA9IHV0aWxzLmZpbmRLZXkodGhpcywgaGVhZGVyKTtcblxuICAgICAgcmV0dXJuICEhKGtleSAmJiB0aGlzW2tleV0gIT09IHVuZGVmaW5lZCAmJiAoIW1hdGNoZXIgfHwgbWF0Y2hIZWFkZXJWYWx1ZSh0aGlzLCB0aGlzW2tleV0sIGtleSwgbWF0Y2hlcikpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBkZWxldGUoaGVhZGVyLCBtYXRjaGVyKSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgbGV0IGRlbGV0ZWQgPSBmYWxzZTtcblxuICAgIGZ1bmN0aW9uIGRlbGV0ZUhlYWRlcihfaGVhZGVyKSB7XG4gICAgICBfaGVhZGVyID0gbm9ybWFsaXplSGVhZGVyKF9oZWFkZXIpO1xuXG4gICAgICBpZiAoX2hlYWRlcikge1xuICAgICAgICBjb25zdCBrZXkgPSB1dGlscy5maW5kS2V5KHNlbGYsIF9oZWFkZXIpO1xuXG4gICAgICAgIGlmIChrZXkgJiYgKCFtYXRjaGVyIHx8IG1hdGNoSGVhZGVyVmFsdWUoc2VsZiwgc2VsZltrZXldLCBrZXksIG1hdGNoZXIpKSkge1xuICAgICAgICAgIGRlbGV0ZSBzZWxmW2tleV07XG5cbiAgICAgICAgICBkZWxldGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh1dGlscy5pc0FycmF5KGhlYWRlcikpIHtcbiAgICAgIGhlYWRlci5mb3JFYWNoKGRlbGV0ZUhlYWRlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZUhlYWRlcihoZWFkZXIpO1xuICAgIH1cblxuICAgIHJldHVybiBkZWxldGVkO1xuICB9XG5cbiAgY2xlYXIobWF0Y2hlcikge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzKTtcbiAgICBsZXQgaSA9IGtleXMubGVuZ3RoO1xuICAgIGxldCBkZWxldGVkID0gZmFsc2U7XG5cbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICBjb25zdCBrZXkgPSBrZXlzW2ldO1xuICAgICAgaWYoIW1hdGNoZXIgfHwgbWF0Y2hIZWFkZXJWYWx1ZSh0aGlzLCB0aGlzW2tleV0sIGtleSwgbWF0Y2hlciwgdHJ1ZSkpIHtcbiAgICAgICAgZGVsZXRlIHRoaXNba2V5XTtcbiAgICAgICAgZGVsZXRlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlbGV0ZWQ7XG4gIH1cblxuICBub3JtYWxpemUoZm9ybWF0KSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgY29uc3QgaGVhZGVycyA9IHt9O1xuXG4gICAgdXRpbHMuZm9yRWFjaCh0aGlzLCAodmFsdWUsIGhlYWRlcikgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gdXRpbHMuZmluZEtleShoZWFkZXJzLCBoZWFkZXIpO1xuXG4gICAgICBpZiAoa2V5KSB7XG4gICAgICAgIHNlbGZba2V5XSA9IG5vcm1hbGl6ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgZGVsZXRlIHNlbGZbaGVhZGVyXTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBub3JtYWxpemVkID0gZm9ybWF0ID8gZm9ybWF0SGVhZGVyKGhlYWRlcikgOiBTdHJpbmcoaGVhZGVyKS50cmltKCk7XG5cbiAgICAgIGlmIChub3JtYWxpemVkICE9PSBoZWFkZXIpIHtcbiAgICAgICAgZGVsZXRlIHNlbGZbaGVhZGVyXTtcbiAgICAgIH1cblxuICAgICAgc2VsZltub3JtYWxpemVkXSA9IG5vcm1hbGl6ZVZhbHVlKHZhbHVlKTtcblxuICAgICAgaGVhZGVyc1tub3JtYWxpemVkXSA9IHRydWU7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNvbmNhdCguLi50YXJnZXRzKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsIC4uLnRhcmdldHMpO1xuICB9XG5cbiAgdG9KU09OKGFzU3RyaW5ncykge1xuICAgIGNvbnN0IG9iaiA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbiAgICB1dGlscy5mb3JFYWNoKHRoaXMsICh2YWx1ZSwgaGVhZGVyKSA9PiB7XG4gICAgICB2YWx1ZSAhPSBudWxsICYmIHZhbHVlICE9PSBmYWxzZSAmJiAob2JqW2hlYWRlcl0gPSBhc1N0cmluZ3MgJiYgdXRpbHMuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5qb2luKCcsICcpIDogdmFsdWUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIFtTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCk7XG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbaGVhZGVyLCB2YWx1ZV0pID0+IGhlYWRlciArICc6ICcgKyB2YWx1ZSkuam9pbignXFxuJyk7XG4gIH1cblxuICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgcmV0dXJuICdBeGlvc0hlYWRlcnMnO1xuICB9XG5cbiAgc3RhdGljIGZyb20odGhpbmcpIHtcbiAgICByZXR1cm4gdGhpbmcgaW5zdGFuY2VvZiB0aGlzID8gdGhpbmcgOiBuZXcgdGhpcyh0aGluZyk7XG4gIH1cblxuICBzdGF0aWMgY29uY2F0KGZpcnN0LCAuLi50YXJnZXRzKSB7XG4gICAgY29uc3QgY29tcHV0ZWQgPSBuZXcgdGhpcyhmaXJzdCk7XG5cbiAgICB0YXJnZXRzLmZvckVhY2goKHRhcmdldCkgPT4gY29tcHV0ZWQuc2V0KHRhcmdldCkpO1xuXG4gICAgcmV0dXJuIGNvbXB1dGVkO1xuICB9XG5cbiAgc3RhdGljIGFjY2Vzc29yKGhlYWRlcikge1xuICAgIGNvbnN0IGludGVybmFscyA9IHRoaXNbJGludGVybmFsc10gPSAodGhpc1skaW50ZXJuYWxzXSA9IHtcbiAgICAgIGFjY2Vzc29yczoge31cbiAgICB9KTtcblxuICAgIGNvbnN0IGFjY2Vzc29ycyA9IGludGVybmFscy5hY2Nlc3NvcnM7XG4gICAgY29uc3QgcHJvdG90eXBlID0gdGhpcy5wcm90b3R5cGU7XG5cbiAgICBmdW5jdGlvbiBkZWZpbmVBY2Nlc3NvcihfaGVhZGVyKSB7XG4gICAgICBjb25zdCBsSGVhZGVyID0gbm9ybWFsaXplSGVhZGVyKF9oZWFkZXIpO1xuXG4gICAgICBpZiAoIWFjY2Vzc29yc1tsSGVhZGVyXSkge1xuICAgICAgICBidWlsZEFjY2Vzc29ycyhwcm90b3R5cGUsIF9oZWFkZXIpO1xuICAgICAgICBhY2Nlc3NvcnNbbEhlYWRlcl0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHV0aWxzLmlzQXJyYXkoaGVhZGVyKSA/IGhlYWRlci5mb3JFYWNoKGRlZmluZUFjY2Vzc29yKSA6IGRlZmluZUFjY2Vzc29yKGhlYWRlcik7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxufVxuXG5BeGlvc0hlYWRlcnMuYWNjZXNzb3IoWydDb250ZW50LVR5cGUnLCAnQ29udGVudC1MZW5ndGgnLCAnQWNjZXB0JywgJ0FjY2VwdC1FbmNvZGluZycsICdVc2VyLUFnZW50JywgJ0F1dGhvcml6YXRpb24nXSk7XG5cbi8vIHJlc2VydmVkIG5hbWVzIGhvdGZpeFxudXRpbHMucmVkdWNlRGVzY3JpcHRvcnMoQXhpb3NIZWFkZXJzLnByb3RvdHlwZSwgKHt2YWx1ZX0sIGtleSkgPT4ge1xuICBsZXQgbWFwcGVkID0ga2V5WzBdLnRvVXBwZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSk7IC8vIG1hcCBgc2V0YCA9PiBgU2V0YFxuICByZXR1cm4ge1xuICAgIGdldDogKCkgPT4gdmFsdWUsXG4gICAgc2V0KGhlYWRlclZhbHVlKSB7XG4gICAgICB0aGlzW21hcHBlZF0gPSBoZWFkZXJWYWx1ZTtcbiAgICB9XG4gIH1cbn0pO1xuXG51dGlscy5mcmVlemVNZXRob2RzKEF4aW9zSGVhZGVycyk7XG5cbmV4cG9ydCBkZWZhdWx0IEF4aW9zSGVhZGVycztcbiIsIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHV0aWxzIGZyb20gJy4vLi4vdXRpbHMuanMnO1xuaW1wb3J0IGRlZmF1bHRzIGZyb20gJy4uL2RlZmF1bHRzL2luZGV4LmpzJztcbmltcG9ydCBBeGlvc0hlYWRlcnMgZnJvbSAnLi4vY29yZS9BeGlvc0hlYWRlcnMuanMnO1xuXG4vKipcbiAqIFRyYW5zZm9ybSB0aGUgZGF0YSBmb3IgYSByZXF1ZXN0IG9yIGEgcmVzcG9uc2VcbiAqXG4gKiBAcGFyYW0ge0FycmF5fEZ1bmN0aW9ufSBmbnMgQSBzaW5nbGUgZnVuY3Rpb24gb3IgQXJyYXkgb2YgZnVuY3Rpb25zXG4gKiBAcGFyYW0gez9PYmplY3R9IHJlc3BvbnNlIFRoZSByZXNwb25zZSBvYmplY3RcbiAqXG4gKiBAcmV0dXJucyB7Kn0gVGhlIHJlc3VsdGluZyB0cmFuc2Zvcm1lZCBkYXRhXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRyYW5zZm9ybURhdGEoZm5zLCByZXNwb25zZSkge1xuICBjb25zdCBjb25maWcgPSB0aGlzIHx8IGRlZmF1bHRzO1xuICBjb25zdCBjb250ZXh0ID0gcmVzcG9uc2UgfHwgY29uZmlnO1xuICBjb25zdCBoZWFkZXJzID0gQXhpb3NIZWFkZXJzLmZyb20oY29udGV4dC5oZWFkZXJzKTtcbiAgbGV0IGRhdGEgPSBjb250ZXh0LmRhdGE7XG5cbiAgdXRpbHMuZm9yRWFjaChmbnMsIGZ1bmN0aW9uIHRyYW5zZm9ybShmbikge1xuICAgIGRhdGEgPSBmbi5jYWxsKGNvbmZpZywgZGF0YSwgaGVhZGVycy5ub3JtYWxpemUoKSwgcmVzcG9uc2UgPyByZXNwb25zZS5zdGF0dXMgOiB1bmRlZmluZWQpO1xuICB9KTtcblxuICBoZWFkZXJzLm5vcm1hbGl6ZSgpO1xuXG4gIHJldHVybiBkYXRhO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc0NhbmNlbCh2YWx1ZSkge1xuICByZXR1cm4gISEodmFsdWUgJiYgdmFsdWUuX19DQU5DRUxfXyk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbmltcG9ydCBBeGlvc0Vycm9yIGZyb20gJy4uL2NvcmUvQXhpb3NFcnJvci5qcyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuXG4vKipcbiAqIEEgYENhbmNlbGVkRXJyb3JgIGlzIGFuIG9iamVjdCB0aGF0IGlzIHRocm93biB3aGVuIGFuIG9wZXJhdGlvbiBpcyBjYW5jZWxlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZz19IG1lc3NhZ2UgVGhlIG1lc3NhZ2UuXG4gKiBAcGFyYW0ge09iamVjdD19IGNvbmZpZyBUaGUgY29uZmlnLlxuICogQHBhcmFtIHtPYmplY3Q9fSByZXF1ZXN0IFRoZSByZXF1ZXN0LlxuICpcbiAqIEByZXR1cm5zIHtDYW5jZWxlZEVycm9yfSBUaGUgY3JlYXRlZCBlcnJvci5cbiAqL1xuZnVuY3Rpb24gQ2FuY2VsZWRFcnJvcihtZXNzYWdlLCBjb25maWcsIHJlcXVlc3QpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVxLW51bGwsZXFlcWVxXG4gIEF4aW9zRXJyb3IuY2FsbCh0aGlzLCBtZXNzYWdlID09IG51bGwgPyAnY2FuY2VsZWQnIDogbWVzc2FnZSwgQXhpb3NFcnJvci5FUlJfQ0FOQ0VMRUQsIGNvbmZpZywgcmVxdWVzdCk7XG4gIHRoaXMubmFtZSA9ICdDYW5jZWxlZEVycm9yJztcbn1cblxudXRpbHMuaW5oZXJpdHMoQ2FuY2VsZWRFcnJvciwgQXhpb3NFcnJvciwge1xuICBfX0NBTkNFTF9fOiB0cnVlXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FuY2VsZWRFcnJvcjtcbiIsIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IEF4aW9zRXJyb3IgZnJvbSAnLi9BeGlvc0Vycm9yLmpzJztcblxuLyoqXG4gKiBSZXNvbHZlIG9yIHJlamVjdCBhIFByb21pc2UgYmFzZWQgb24gcmVzcG9uc2Ugc3RhdHVzLlxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHJlc29sdmUgQSBmdW5jdGlvbiB0aGF0IHJlc29sdmVzIHRoZSBwcm9taXNlLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcmVqZWN0IEEgZnVuY3Rpb24gdGhhdCByZWplY3RzIHRoZSBwcm9taXNlLlxuICogQHBhcmFtIHtvYmplY3R9IHJlc3BvbnNlIFRoZSByZXNwb25zZS5cbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0fSBUaGUgcmVzcG9uc2UuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHJlc3BvbnNlKSB7XG4gIGNvbnN0IHZhbGlkYXRlU3RhdHVzID0gcmVzcG9uc2UuY29uZmlnLnZhbGlkYXRlU3RhdHVzO1xuICBpZiAoIXJlc3BvbnNlLnN0YXR1cyB8fCAhdmFsaWRhdGVTdGF0dXMgfHwgdmFsaWRhdGVTdGF0dXMocmVzcG9uc2Uuc3RhdHVzKSkge1xuICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICB9IGVsc2Uge1xuICAgIHJlamVjdChuZXcgQXhpb3NFcnJvcihcbiAgICAgICdSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICcgKyByZXNwb25zZS5zdGF0dXMsXG4gICAgICBbQXhpb3NFcnJvci5FUlJfQkFEX1JFUVVFU1QsIEF4aW9zRXJyb3IuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcihyZXNwb25zZS5zdGF0dXMgLyAxMDApIC0gNF0sXG4gICAgICByZXNwb25zZS5jb25maWcsXG4gICAgICByZXNwb25zZS5yZXF1ZXN0LFxuICAgICAgcmVzcG9uc2VcbiAgICApKTtcbiAgfVxufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBwYXJzZVByb3RvY29sKHVybCkge1xuICBjb25zdCBtYXRjaCA9IC9eKFstK1xcd117MSwyNX0pKDo/XFwvXFwvfDopLy5leGVjKHVybCk7XG4gIHJldHVybiBtYXRjaCAmJiBtYXRjaFsxXSB8fCAnJztcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBDYWxjdWxhdGUgZGF0YSBtYXhSYXRlXG4gKiBAcGFyYW0ge051bWJlcn0gW3NhbXBsZXNDb3VudD0gMTBdXG4gKiBAcGFyYW0ge051bWJlcn0gW21pbj0gMTAwMF1cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn1cbiAqL1xuZnVuY3Rpb24gc3BlZWRvbWV0ZXIoc2FtcGxlc0NvdW50LCBtaW4pIHtcbiAgc2FtcGxlc0NvdW50ID0gc2FtcGxlc0NvdW50IHx8IDEwO1xuICBjb25zdCBieXRlcyA9IG5ldyBBcnJheShzYW1wbGVzQ291bnQpO1xuICBjb25zdCB0aW1lc3RhbXBzID0gbmV3IEFycmF5KHNhbXBsZXNDb3VudCk7XG4gIGxldCBoZWFkID0gMDtcbiAgbGV0IHRhaWwgPSAwO1xuICBsZXQgZmlyc3RTYW1wbGVUUztcblxuICBtaW4gPSBtaW4gIT09IHVuZGVmaW5lZCA/IG1pbiA6IDEwMDA7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIHB1c2goY2h1bmtMZW5ndGgpIHtcbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuXG4gICAgY29uc3Qgc3RhcnRlZEF0ID0gdGltZXN0YW1wc1t0YWlsXTtcblxuICAgIGlmICghZmlyc3RTYW1wbGVUUykge1xuICAgICAgZmlyc3RTYW1wbGVUUyA9IG5vdztcbiAgICB9XG5cbiAgICBieXRlc1toZWFkXSA9IGNodW5rTGVuZ3RoO1xuICAgIHRpbWVzdGFtcHNbaGVhZF0gPSBub3c7XG5cbiAgICBsZXQgaSA9IHRhaWw7XG4gICAgbGV0IGJ5dGVzQ291bnQgPSAwO1xuXG4gICAgd2hpbGUgKGkgIT09IGhlYWQpIHtcbiAgICAgIGJ5dGVzQ291bnQgKz0gYnl0ZXNbaSsrXTtcbiAgICAgIGkgPSBpICUgc2FtcGxlc0NvdW50O1xuICAgIH1cblxuICAgIGhlYWQgPSAoaGVhZCArIDEpICUgc2FtcGxlc0NvdW50O1xuXG4gICAgaWYgKGhlYWQgPT09IHRhaWwpIHtcbiAgICAgIHRhaWwgPSAodGFpbCArIDEpICUgc2FtcGxlc0NvdW50O1xuICAgIH1cblxuICAgIGlmIChub3cgLSBmaXJzdFNhbXBsZVRTIDwgbWluKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFzc2VkID0gc3RhcnRlZEF0ICYmIG5vdyAtIHN0YXJ0ZWRBdDtcblxuICAgIHJldHVybiBwYXNzZWQgPyBNYXRoLnJvdW5kKGJ5dGVzQ291bnQgKiAxMDAwIC8gcGFzc2VkKSA6IHVuZGVmaW5lZDtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgc3BlZWRvbWV0ZXI7XG4iLCIvKipcbiAqIFRocm90dGxlIGRlY29yYXRvclxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEBwYXJhbSB7TnVtYmVyfSBmcmVxXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn1cbiAqL1xuZnVuY3Rpb24gdGhyb3R0bGUoZm4sIGZyZXEpIHtcbiAgbGV0IHRpbWVzdGFtcCA9IDA7XG4gIGxldCB0aHJlc2hvbGQgPSAxMDAwIC8gZnJlcTtcbiAgbGV0IGxhc3RBcmdzO1xuICBsZXQgdGltZXI7XG5cbiAgY29uc3QgaW52b2tlID0gKGFyZ3MsIG5vdyA9IERhdGUubm93KCkpID0+IHtcbiAgICB0aW1lc3RhbXAgPSBub3c7XG4gICAgbGFzdEFyZ3MgPSBudWxsO1xuICAgIGlmICh0aW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgIHRpbWVyID0gbnVsbDtcbiAgICB9XG4gICAgZm4uYXBwbHkobnVsbCwgYXJncyk7XG4gIH1cblxuICBjb25zdCB0aHJvdHRsZWQgPSAoLi4uYXJncykgPT4ge1xuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgY29uc3QgcGFzc2VkID0gbm93IC0gdGltZXN0YW1wO1xuICAgIGlmICggcGFzc2VkID49IHRocmVzaG9sZCkge1xuICAgICAgaW52b2tlKGFyZ3MsIG5vdyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxhc3RBcmdzID0gYXJncztcbiAgICAgIGlmICghdGltZXIpIHtcbiAgICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aW1lciA9IG51bGw7XG4gICAgICAgICAgaW52b2tlKGxhc3RBcmdzKVxuICAgICAgICB9LCB0aHJlc2hvbGQgLSBwYXNzZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGZsdXNoID0gKCkgPT4gbGFzdEFyZ3MgJiYgaW52b2tlKGxhc3RBcmdzKTtcblxuICByZXR1cm4gW3Rocm90dGxlZCwgZmx1c2hdO1xufVxuXG5leHBvcnQgZGVmYXVsdCB0aHJvdHRsZTtcbiIsImltcG9ydCBzcGVlZG9tZXRlciBmcm9tIFwiLi9zcGVlZG9tZXRlci5qc1wiO1xuaW1wb3J0IHRocm90dGxlIGZyb20gXCIuL3Rocm90dGxlLmpzXCI7XG5pbXBvcnQgdXRpbHMgZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5cbmV4cG9ydCBjb25zdCBwcm9ncmVzc0V2ZW50UmVkdWNlciA9IChsaXN0ZW5lciwgaXNEb3dubG9hZFN0cmVhbSwgZnJlcSA9IDMpID0+IHtcbiAgbGV0IGJ5dGVzTm90aWZpZWQgPSAwO1xuICBjb25zdCBfc3BlZWRvbWV0ZXIgPSBzcGVlZG9tZXRlcig1MCwgMjUwKTtcblxuICByZXR1cm4gdGhyb3R0bGUoZSA9PiB7XG4gICAgY29uc3QgbG9hZGVkID0gZS5sb2FkZWQ7XG4gICAgY29uc3QgdG90YWwgPSBlLmxlbmd0aENvbXB1dGFibGUgPyBlLnRvdGFsIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHByb2dyZXNzQnl0ZXMgPSBsb2FkZWQgLSBieXRlc05vdGlmaWVkO1xuICAgIGNvbnN0IHJhdGUgPSBfc3BlZWRvbWV0ZXIocHJvZ3Jlc3NCeXRlcyk7XG4gICAgY29uc3QgaW5SYW5nZSA9IGxvYWRlZCA8PSB0b3RhbDtcblxuICAgIGJ5dGVzTm90aWZpZWQgPSBsb2FkZWQ7XG5cbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgbG9hZGVkLFxuICAgICAgdG90YWwsXG4gICAgICBwcm9ncmVzczogdG90YWwgPyAobG9hZGVkIC8gdG90YWwpIDogdW5kZWZpbmVkLFxuICAgICAgYnl0ZXM6IHByb2dyZXNzQnl0ZXMsXG4gICAgICByYXRlOiByYXRlID8gcmF0ZSA6IHVuZGVmaW5lZCxcbiAgICAgIGVzdGltYXRlZDogcmF0ZSAmJiB0b3RhbCAmJiBpblJhbmdlID8gKHRvdGFsIC0gbG9hZGVkKSAvIHJhdGUgOiB1bmRlZmluZWQsXG4gICAgICBldmVudDogZSxcbiAgICAgIGxlbmd0aENvbXB1dGFibGU6IHRvdGFsICE9IG51bGwsXG4gICAgICBbaXNEb3dubG9hZFN0cmVhbSA/ICdkb3dubG9hZCcgOiAndXBsb2FkJ106IHRydWVcbiAgICB9O1xuXG4gICAgbGlzdGVuZXIoZGF0YSk7XG4gIH0sIGZyZXEpO1xufVxuXG5leHBvcnQgY29uc3QgcHJvZ3Jlc3NFdmVudERlY29yYXRvciA9ICh0b3RhbCwgdGhyb3R0bGVkKSA9PiB7XG4gIGNvbnN0IGxlbmd0aENvbXB1dGFibGUgPSB0b3RhbCAhPSBudWxsO1xuXG4gIHJldHVybiBbKGxvYWRlZCkgPT4gdGhyb3R0bGVkWzBdKHtcbiAgICBsZW5ndGhDb21wdXRhYmxlLFxuICAgIHRvdGFsLFxuICAgIGxvYWRlZFxuICB9KSwgdGhyb3R0bGVkWzFdXTtcbn1cblxuZXhwb3J0IGNvbnN0IGFzeW5jRGVjb3JhdG9yID0gKGZuKSA9PiAoLi4uYXJncykgPT4gdXRpbHMuYXNhcCgoKSA9PiBmbiguLi5hcmdzKSk7XG4iLCJpbXBvcnQgcGxhdGZvcm0gZnJvbSAnLi4vcGxhdGZvcm0vaW5kZXguanMnO1xuXG5leHBvcnQgZGVmYXVsdCBwbGF0Zm9ybS5oYXNTdGFuZGFyZEJyb3dzZXJFbnYgPyAoKG9yaWdpbiwgaXNNU0lFKSA9PiAodXJsKSA9PiB7XG4gIHVybCA9IG5ldyBVUkwodXJsLCBwbGF0Zm9ybS5vcmlnaW4pO1xuXG4gIHJldHVybiAoXG4gICAgb3JpZ2luLnByb3RvY29sID09PSB1cmwucHJvdG9jb2wgJiZcbiAgICBvcmlnaW4uaG9zdCA9PT0gdXJsLmhvc3QgJiZcbiAgICAoaXNNU0lFIHx8IG9yaWdpbi5wb3J0ID09PSB1cmwucG9ydClcbiAgKTtcbn0pKFxuICBuZXcgVVJMKHBsYXRmb3JtLm9yaWdpbiksXG4gIHBsYXRmb3JtLm5hdmlnYXRvciAmJiAvKG1zaWV8dHJpZGVudCkvaS50ZXN0KHBsYXRmb3JtLm5hdmlnYXRvci51c2VyQWdlbnQpXG4pIDogKCkgPT4gdHJ1ZTtcbiIsImltcG9ydCB1dGlscyBmcm9tICcuLy4uL3V0aWxzLmpzJztcbmltcG9ydCBwbGF0Zm9ybSBmcm9tICcuLi9wbGF0Zm9ybS9pbmRleC5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IHBsYXRmb3JtLmhhc1N0YW5kYXJkQnJvd3NlckVudiA/XG5cbiAgLy8gU3RhbmRhcmQgYnJvd3NlciBlbnZzIHN1cHBvcnQgZG9jdW1lbnQuY29va2llXG4gIHtcbiAgICB3cml0ZShuYW1lLCB2YWx1ZSwgZXhwaXJlcywgcGF0aCwgZG9tYWluLCBzZWN1cmUpIHtcbiAgICAgIGNvbnN0IGNvb2tpZSA9IFtuYW1lICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKV07XG5cbiAgICAgIHV0aWxzLmlzTnVtYmVyKGV4cGlyZXMpICYmIGNvb2tpZS5wdXNoKCdleHBpcmVzPScgKyBuZXcgRGF0ZShleHBpcmVzKS50b0dNVFN0cmluZygpKTtcblxuICAgICAgdXRpbHMuaXNTdHJpbmcocGF0aCkgJiYgY29va2llLnB1c2goJ3BhdGg9JyArIHBhdGgpO1xuXG4gICAgICB1dGlscy5pc1N0cmluZyhkb21haW4pICYmIGNvb2tpZS5wdXNoKCdkb21haW49JyArIGRvbWFpbik7XG5cbiAgICAgIHNlY3VyZSA9PT0gdHJ1ZSAmJiBjb29raWUucHVzaCgnc2VjdXJlJyk7XG5cbiAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZS5qb2luKCc7ICcpO1xuICAgIH0sXG5cbiAgICByZWFkKG5hbWUpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoJyhefDtcXFxccyopKCcgKyBuYW1lICsgJyk9KFteO10qKScpKTtcbiAgICAgIHJldHVybiAobWF0Y2ggPyBkZWNvZGVVUklDb21wb25lbnQobWF0Y2hbM10pIDogbnVsbCk7XG4gICAgfSxcblxuICAgIHJlbW92ZShuYW1lKSB7XG4gICAgICB0aGlzLndyaXRlKG5hbWUsICcnLCBEYXRlLm5vdygpIC0gODY0MDAwMDApO1xuICAgIH1cbiAgfVxuXG4gIDpcblxuICAvLyBOb24tc3RhbmRhcmQgYnJvd3NlciBlbnYgKHdlYiB3b3JrZXJzLCByZWFjdC1uYXRpdmUpIGxhY2sgbmVlZGVkIHN1cHBvcnQuXG4gIHtcbiAgICB3cml0ZSgpIHt9LFxuICAgIHJlYWQoKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9LFxuICAgIHJlbW92ZSgpIHt9XG4gIH07XG5cbiIsIid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHNwZWNpZmllZCBVUkwgaXMgYWJzb2x1dGVcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBVUkwgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHRoZSBzcGVjaWZpZWQgVVJMIGlzIGFic29sdXRlLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNBYnNvbHV0ZVVSTCh1cmwpIHtcbiAgLy8gQSBVUkwgaXMgY29uc2lkZXJlZCBhYnNvbHV0ZSBpZiBpdCBiZWdpbnMgd2l0aCBcIjxzY2hlbWU+Oi8vXCIgb3IgXCIvL1wiIChwcm90b2NvbC1yZWxhdGl2ZSBVUkwpLlxuICAvLyBSRkMgMzk4NiBkZWZpbmVzIHNjaGVtZSBuYW1lIGFzIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyBiZWdpbm5pbmcgd2l0aCBhIGxldHRlciBhbmQgZm9sbG93ZWRcbiAgLy8gYnkgYW55IGNvbWJpbmF0aW9uIG9mIGxldHRlcnMsIGRpZ2l0cywgcGx1cywgcGVyaW9kLCBvciBoeXBoZW4uXG4gIHJldHVybiAvXihbYS16XVthLXpcXGQrXFwtLl0qOik/XFwvXFwvL2kudGVzdCh1cmwpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgVVJMIGJ5IGNvbWJpbmluZyB0aGUgc3BlY2lmaWVkIFVSTHNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYmFzZVVSTCBUaGUgYmFzZSBVUkxcbiAqIEBwYXJhbSB7c3RyaW5nfSByZWxhdGl2ZVVSTCBUaGUgcmVsYXRpdmUgVVJMXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gVGhlIGNvbWJpbmVkIFVSTFxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb21iaW5lVVJMcyhiYXNlVVJMLCByZWxhdGl2ZVVSTCkge1xuICByZXR1cm4gcmVsYXRpdmVVUkxcbiAgICA/IGJhc2VVUkwucmVwbGFjZSgvXFwvP1xcLyQvLCAnJykgKyAnLycgKyByZWxhdGl2ZVVSTC5yZXBsYWNlKC9eXFwvKy8sICcnKVxuICAgIDogYmFzZVVSTDtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IGlzQWJzb2x1dGVVUkwgZnJvbSAnLi4vaGVscGVycy9pc0Fic29sdXRlVVJMLmpzJztcbmltcG9ydCBjb21iaW5lVVJMcyBmcm9tICcuLi9oZWxwZXJzL2NvbWJpbmVVUkxzLmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IFVSTCBieSBjb21iaW5pbmcgdGhlIGJhc2VVUkwgd2l0aCB0aGUgcmVxdWVzdGVkVVJMLFxuICogb25seSB3aGVuIHRoZSByZXF1ZXN0ZWRVUkwgaXMgbm90IGFscmVhZHkgYW4gYWJzb2x1dGUgVVJMLlxuICogSWYgdGhlIHJlcXVlc3RVUkwgaXMgYWJzb2x1dGUsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgcmVxdWVzdGVkVVJMIHVudG91Y2hlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYmFzZVVSTCBUaGUgYmFzZSBVUkxcbiAqIEBwYXJhbSB7c3RyaW5nfSByZXF1ZXN0ZWRVUkwgQWJzb2x1dGUgb3IgcmVsYXRpdmUgVVJMIHRvIGNvbWJpbmVcbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgY29tYmluZWQgZnVsbCBwYXRoXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGJ1aWxkRnVsbFBhdGgoYmFzZVVSTCwgcmVxdWVzdGVkVVJMKSB7XG4gIGlmIChiYXNlVVJMICYmICFpc0Fic29sdXRlVVJMKHJlcXVlc3RlZFVSTCkpIHtcbiAgICByZXR1cm4gY29tYmluZVVSTHMoYmFzZVVSTCwgcmVxdWVzdGVkVVJMKTtcbiAgfVxuICByZXR1cm4gcmVxdWVzdGVkVVJMO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuaW1wb3J0IEF4aW9zSGVhZGVycyBmcm9tIFwiLi9BeGlvc0hlYWRlcnMuanNcIjtcblxuY29uc3QgaGVhZGVyc1RvT2JqZWN0ID0gKHRoaW5nKSA9PiB0aGluZyBpbnN0YW5jZW9mIEF4aW9zSGVhZGVycyA/IHsgLi4udGhpbmcgfSA6IHRoaW5nO1xuXG4vKipcbiAqIENvbmZpZy1zcGVjaWZpYyBtZXJnZS1mdW5jdGlvbiB3aGljaCBjcmVhdGVzIGEgbmV3IGNvbmZpZy1vYmplY3RcbiAqIGJ5IG1lcmdpbmcgdHdvIGNvbmZpZ3VyYXRpb24gb2JqZWN0cyB0b2dldGhlci5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gY29uZmlnMVxuICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZzJcbiAqXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBOZXcgb2JqZWN0IHJlc3VsdGluZyBmcm9tIG1lcmdpbmcgY29uZmlnMiB0byBjb25maWcxXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1lcmdlQ29uZmlnKGNvbmZpZzEsIGNvbmZpZzIpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGNvbmZpZzIgPSBjb25maWcyIHx8IHt9O1xuICBjb25zdCBjb25maWcgPSB7fTtcblxuICBmdW5jdGlvbiBnZXRNZXJnZWRWYWx1ZSh0YXJnZXQsIHNvdXJjZSwgcHJvcCwgY2FzZWxlc3MpIHtcbiAgICBpZiAodXRpbHMuaXNQbGFpbk9iamVjdCh0YXJnZXQpICYmIHV0aWxzLmlzUGxhaW5PYmplY3Qoc291cmNlKSkge1xuICAgICAgcmV0dXJuIHV0aWxzLm1lcmdlLmNhbGwoe2Nhc2VsZXNzfSwgdGFyZ2V0LCBzb3VyY2UpO1xuICAgIH0gZWxzZSBpZiAodXRpbHMuaXNQbGFpbk9iamVjdChzb3VyY2UpKSB7XG4gICAgICByZXR1cm4gdXRpbHMubWVyZ2Uoe30sIHNvdXJjZSk7XG4gICAgfSBlbHNlIGlmICh1dGlscy5pc0FycmF5KHNvdXJjZSkpIHtcbiAgICAgIHJldHVybiBzb3VyY2Uuc2xpY2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIHNvdXJjZTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb25zaXN0ZW50LXJldHVyblxuICBmdW5jdGlvbiBtZXJnZURlZXBQcm9wZXJ0aWVzKGEsIGIsIHByb3AgLCBjYXNlbGVzcykge1xuICAgIGlmICghdXRpbHMuaXNVbmRlZmluZWQoYikpIHtcbiAgICAgIHJldHVybiBnZXRNZXJnZWRWYWx1ZShhLCBiLCBwcm9wICwgY2FzZWxlc3MpO1xuICAgIH0gZWxzZSBpZiAoIXV0aWxzLmlzVW5kZWZpbmVkKGEpKSB7XG4gICAgICByZXR1cm4gZ2V0TWVyZ2VkVmFsdWUodW5kZWZpbmVkLCBhLCBwcm9wICwgY2FzZWxlc3MpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb25zaXN0ZW50LXJldHVyblxuICBmdW5jdGlvbiB2YWx1ZUZyb21Db25maWcyKGEsIGIpIHtcbiAgICBpZiAoIXV0aWxzLmlzVW5kZWZpbmVkKGIpKSB7XG4gICAgICByZXR1cm4gZ2V0TWVyZ2VkVmFsdWUodW5kZWZpbmVkLCBiKTtcbiAgICB9XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29uc2lzdGVudC1yZXR1cm5cbiAgZnVuY3Rpb24gZGVmYXVsdFRvQ29uZmlnMihhLCBiKSB7XG4gICAgaWYgKCF1dGlscy5pc1VuZGVmaW5lZChiKSkge1xuICAgICAgcmV0dXJuIGdldE1lcmdlZFZhbHVlKHVuZGVmaW5lZCwgYik7XG4gICAgfSBlbHNlIGlmICghdXRpbHMuaXNVbmRlZmluZWQoYSkpIHtcbiAgICAgIHJldHVybiBnZXRNZXJnZWRWYWx1ZSh1bmRlZmluZWQsIGEpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb25zaXN0ZW50LXJldHVyblxuICBmdW5jdGlvbiBtZXJnZURpcmVjdEtleXMoYSwgYiwgcHJvcCkge1xuICAgIGlmIChwcm9wIGluIGNvbmZpZzIpIHtcbiAgICAgIHJldHVybiBnZXRNZXJnZWRWYWx1ZShhLCBiKTtcbiAgICB9IGVsc2UgaWYgKHByb3AgaW4gY29uZmlnMSkge1xuICAgICAgcmV0dXJuIGdldE1lcmdlZFZhbHVlKHVuZGVmaW5lZCwgYSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgbWVyZ2VNYXAgPSB7XG4gICAgdXJsOiB2YWx1ZUZyb21Db25maWcyLFxuICAgIG1ldGhvZDogdmFsdWVGcm9tQ29uZmlnMixcbiAgICBkYXRhOiB2YWx1ZUZyb21Db25maWcyLFxuICAgIGJhc2VVUkw6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgdHJhbnNmb3JtUmVxdWVzdDogZGVmYXVsdFRvQ29uZmlnMixcbiAgICB0cmFuc2Zvcm1SZXNwb25zZTogZGVmYXVsdFRvQ29uZmlnMixcbiAgICBwYXJhbXNTZXJpYWxpemVyOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIHRpbWVvdXQ6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgdGltZW91dE1lc3NhZ2U6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgd2l0aENyZWRlbnRpYWxzOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIHdpdGhYU1JGVG9rZW46IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgYWRhcHRlcjogZGVmYXVsdFRvQ29uZmlnMixcbiAgICByZXNwb25zZVR5cGU6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgeHNyZkNvb2tpZU5hbWU6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgeHNyZkhlYWRlck5hbWU6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgb25VcGxvYWRQcm9ncmVzczogZGVmYXVsdFRvQ29uZmlnMixcbiAgICBvbkRvd25sb2FkUHJvZ3Jlc3M6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgZGVjb21wcmVzczogZGVmYXVsdFRvQ29uZmlnMixcbiAgICBtYXhDb250ZW50TGVuZ3RoOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIG1heEJvZHlMZW5ndGg6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgYmVmb3JlUmVkaXJlY3Q6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgdHJhbnNwb3J0OiBkZWZhdWx0VG9Db25maWcyLFxuICAgIGh0dHBBZ2VudDogZGVmYXVsdFRvQ29uZmlnMixcbiAgICBodHRwc0FnZW50OiBkZWZhdWx0VG9Db25maWcyLFxuICAgIGNhbmNlbFRva2VuOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIHNvY2tldFBhdGg6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgcmVzcG9uc2VFbmNvZGluZzogZGVmYXVsdFRvQ29uZmlnMixcbiAgICB2YWxpZGF0ZVN0YXR1czogbWVyZ2VEaXJlY3RLZXlzLFxuICAgIGhlYWRlcnM6IChhLCBiICwgcHJvcCkgPT4gbWVyZ2VEZWVwUHJvcGVydGllcyhoZWFkZXJzVG9PYmplY3QoYSksIGhlYWRlcnNUb09iamVjdChiKSxwcm9wLCB0cnVlKVxuICB9O1xuXG4gIHV0aWxzLmZvckVhY2goT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSwgY29uZmlnMSwgY29uZmlnMikpLCBmdW5jdGlvbiBjb21wdXRlQ29uZmlnVmFsdWUocHJvcCkge1xuICAgIGNvbnN0IG1lcmdlID0gbWVyZ2VNYXBbcHJvcF0gfHwgbWVyZ2VEZWVwUHJvcGVydGllcztcbiAgICBjb25zdCBjb25maWdWYWx1ZSA9IG1lcmdlKGNvbmZpZzFbcHJvcF0sIGNvbmZpZzJbcHJvcF0sIHByb3ApO1xuICAgICh1dGlscy5pc1VuZGVmaW5lZChjb25maWdWYWx1ZSkgJiYgbWVyZ2UgIT09IG1lcmdlRGlyZWN0S2V5cykgfHwgKGNvbmZpZ1twcm9wXSA9IGNvbmZpZ1ZhbHVlKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbmZpZztcbn1cbiIsImltcG9ydCBwbGF0Zm9ybSBmcm9tIFwiLi4vcGxhdGZvcm0vaW5kZXguanNcIjtcbmltcG9ydCB1dGlscyBmcm9tIFwiLi4vdXRpbHMuanNcIjtcbmltcG9ydCBpc1VSTFNhbWVPcmlnaW4gZnJvbSBcIi4vaXNVUkxTYW1lT3JpZ2luLmpzXCI7XG5pbXBvcnQgY29va2llcyBmcm9tIFwiLi9jb29raWVzLmpzXCI7XG5pbXBvcnQgYnVpbGRGdWxsUGF0aCBmcm9tIFwiLi4vY29yZS9idWlsZEZ1bGxQYXRoLmpzXCI7XG5pbXBvcnQgbWVyZ2VDb25maWcgZnJvbSBcIi4uL2NvcmUvbWVyZ2VDb25maWcuanNcIjtcbmltcG9ydCBBeGlvc0hlYWRlcnMgZnJvbSBcIi4uL2NvcmUvQXhpb3NIZWFkZXJzLmpzXCI7XG5pbXBvcnQgYnVpbGRVUkwgZnJvbSBcIi4vYnVpbGRVUkwuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgKGNvbmZpZykgPT4ge1xuICBjb25zdCBuZXdDb25maWcgPSBtZXJnZUNvbmZpZyh7fSwgY29uZmlnKTtcblxuICBsZXQge2RhdGEsIHdpdGhYU1JGVG9rZW4sIHhzcmZIZWFkZXJOYW1lLCB4c3JmQ29va2llTmFtZSwgaGVhZGVycywgYXV0aH0gPSBuZXdDb25maWc7XG5cbiAgbmV3Q29uZmlnLmhlYWRlcnMgPSBoZWFkZXJzID0gQXhpb3NIZWFkZXJzLmZyb20oaGVhZGVycyk7XG5cbiAgbmV3Q29uZmlnLnVybCA9IGJ1aWxkVVJMKGJ1aWxkRnVsbFBhdGgobmV3Q29uZmlnLmJhc2VVUkwsIG5ld0NvbmZpZy51cmwpLCBjb25maWcucGFyYW1zLCBjb25maWcucGFyYW1zU2VyaWFsaXplcik7XG5cbiAgLy8gSFRUUCBiYXNpYyBhdXRoZW50aWNhdGlvblxuICBpZiAoYXV0aCkge1xuICAgIGhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0Jhc2ljICcgK1xuICAgICAgYnRvYSgoYXV0aC51c2VybmFtZSB8fCAnJykgKyAnOicgKyAoYXV0aC5wYXNzd29yZCA/IHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChhdXRoLnBhc3N3b3JkKSkgOiAnJykpXG4gICAgKTtcbiAgfVxuXG4gIGxldCBjb250ZW50VHlwZTtcblxuICBpZiAodXRpbHMuaXNGb3JtRGF0YShkYXRhKSkge1xuICAgIGlmIChwbGF0Zm9ybS5oYXNTdGFuZGFyZEJyb3dzZXJFbnYgfHwgcGxhdGZvcm0uaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KSB7XG4gICAgICBoZWFkZXJzLnNldENvbnRlbnRUeXBlKHVuZGVmaW5lZCk7IC8vIExldCB0aGUgYnJvd3NlciBzZXQgaXRcbiAgICB9IGVsc2UgaWYgKChjb250ZW50VHlwZSA9IGhlYWRlcnMuZ2V0Q29udGVudFR5cGUoKSkgIT09IGZhbHNlKSB7XG4gICAgICAvLyBmaXggc2VtaWNvbG9uIGR1cGxpY2F0aW9uIGlzc3VlIGZvciBSZWFjdE5hdGl2ZSBGb3JtRGF0YSBpbXBsZW1lbnRhdGlvblxuICAgICAgY29uc3QgW3R5cGUsIC4uLnRva2Vuc10gPSBjb250ZW50VHlwZSA/IGNvbnRlbnRUeXBlLnNwbGl0KCc7JykubWFwKHRva2VuID0+IHRva2VuLnRyaW0oKSkuZmlsdGVyKEJvb2xlYW4pIDogW107XG4gICAgICBoZWFkZXJzLnNldENvbnRlbnRUeXBlKFt0eXBlIHx8ICdtdWx0aXBhcnQvZm9ybS1kYXRhJywgLi4udG9rZW5zXS5qb2luKCc7ICcpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBZGQgeHNyZiBoZWFkZXJcbiAgLy8gVGhpcyBpcyBvbmx5IGRvbmUgaWYgcnVubmluZyBpbiBhIHN0YW5kYXJkIGJyb3dzZXIgZW52aXJvbm1lbnQuXG4gIC8vIFNwZWNpZmljYWxseSBub3QgaWYgd2UncmUgaW4gYSB3ZWIgd29ya2VyLCBvciByZWFjdC1uYXRpdmUuXG5cbiAgaWYgKHBsYXRmb3JtLmhhc1N0YW5kYXJkQnJvd3NlckVudikge1xuICAgIHdpdGhYU1JGVG9rZW4gJiYgdXRpbHMuaXNGdW5jdGlvbih3aXRoWFNSRlRva2VuKSAmJiAod2l0aFhTUkZUb2tlbiA9IHdpdGhYU1JGVG9rZW4obmV3Q29uZmlnKSk7XG5cbiAgICBpZiAod2l0aFhTUkZUb2tlbiB8fCAod2l0aFhTUkZUb2tlbiAhPT0gZmFsc2UgJiYgaXNVUkxTYW1lT3JpZ2luKG5ld0NvbmZpZy51cmwpKSkge1xuICAgICAgLy8gQWRkIHhzcmYgaGVhZGVyXG4gICAgICBjb25zdCB4c3JmVmFsdWUgPSB4c3JmSGVhZGVyTmFtZSAmJiB4c3JmQ29va2llTmFtZSAmJiBjb29raWVzLnJlYWQoeHNyZkNvb2tpZU5hbWUpO1xuXG4gICAgICBpZiAoeHNyZlZhbHVlKSB7XG4gICAgICAgIGhlYWRlcnMuc2V0KHhzcmZIZWFkZXJOYW1lLCB4c3JmVmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXdDb25maWc7XG59XG5cbiIsImltcG9ydCB1dGlscyBmcm9tICcuLy4uL3V0aWxzLmpzJztcbmltcG9ydCBzZXR0bGUgZnJvbSAnLi8uLi9jb3JlL3NldHRsZS5qcyc7XG5pbXBvcnQgdHJhbnNpdGlvbmFsRGVmYXVsdHMgZnJvbSAnLi4vZGVmYXVsdHMvdHJhbnNpdGlvbmFsLmpzJztcbmltcG9ydCBBeGlvc0Vycm9yIGZyb20gJy4uL2NvcmUvQXhpb3NFcnJvci5qcyc7XG5pbXBvcnQgQ2FuY2VsZWRFcnJvciBmcm9tICcuLi9jYW5jZWwvQ2FuY2VsZWRFcnJvci5qcyc7XG5pbXBvcnQgcGFyc2VQcm90b2NvbCBmcm9tICcuLi9oZWxwZXJzL3BhcnNlUHJvdG9jb2wuanMnO1xuaW1wb3J0IHBsYXRmb3JtIGZyb20gJy4uL3BsYXRmb3JtL2luZGV4LmpzJztcbmltcG9ydCBBeGlvc0hlYWRlcnMgZnJvbSAnLi4vY29yZS9BeGlvc0hlYWRlcnMuanMnO1xuaW1wb3J0IHtwcm9ncmVzc0V2ZW50UmVkdWNlcn0gZnJvbSAnLi4vaGVscGVycy9wcm9ncmVzc0V2ZW50UmVkdWNlci5qcyc7XG5pbXBvcnQgcmVzb2x2ZUNvbmZpZyBmcm9tIFwiLi4vaGVscGVycy9yZXNvbHZlQ29uZmlnLmpzXCI7XG5cbmNvbnN0IGlzWEhSQWRhcHRlclN1cHBvcnRlZCA9IHR5cGVvZiBYTUxIdHRwUmVxdWVzdCAhPT0gJ3VuZGVmaW5lZCc7XG5cbmV4cG9ydCBkZWZhdWx0IGlzWEhSQWRhcHRlclN1cHBvcnRlZCAmJiBmdW5jdGlvbiAoY29uZmlnKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiBkaXNwYXRjaFhoclJlcXVlc3QocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgY29uc3QgX2NvbmZpZyA9IHJlc29sdmVDb25maWcoY29uZmlnKTtcbiAgICBsZXQgcmVxdWVzdERhdGEgPSBfY29uZmlnLmRhdGE7XG4gICAgY29uc3QgcmVxdWVzdEhlYWRlcnMgPSBBeGlvc0hlYWRlcnMuZnJvbShfY29uZmlnLmhlYWRlcnMpLm5vcm1hbGl6ZSgpO1xuICAgIGxldCB7cmVzcG9uc2VUeXBlLCBvblVwbG9hZFByb2dyZXNzLCBvbkRvd25sb2FkUHJvZ3Jlc3N9ID0gX2NvbmZpZztcbiAgICBsZXQgb25DYW5jZWxlZDtcbiAgICBsZXQgdXBsb2FkVGhyb3R0bGVkLCBkb3dubG9hZFRocm90dGxlZDtcbiAgICBsZXQgZmx1c2hVcGxvYWQsIGZsdXNoRG93bmxvYWQ7XG5cbiAgICBmdW5jdGlvbiBkb25lKCkge1xuICAgICAgZmx1c2hVcGxvYWQgJiYgZmx1c2hVcGxvYWQoKTsgLy8gZmx1c2ggZXZlbnRzXG4gICAgICBmbHVzaERvd25sb2FkICYmIGZsdXNoRG93bmxvYWQoKTsgLy8gZmx1c2ggZXZlbnRzXG5cbiAgICAgIF9jb25maWcuY2FuY2VsVG9rZW4gJiYgX2NvbmZpZy5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShvbkNhbmNlbGVkKTtcblxuICAgICAgX2NvbmZpZy5zaWduYWwgJiYgX2NvbmZpZy5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkNhbmNlbGVkKTtcbiAgICB9XG5cbiAgICBsZXQgcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuXG4gICAgcmVxdWVzdC5vcGVuKF9jb25maWcubWV0aG9kLnRvVXBwZXJDYXNlKCksIF9jb25maWcudXJsLCB0cnVlKTtcblxuICAgIC8vIFNldCB0aGUgcmVxdWVzdCB0aW1lb3V0IGluIE1TXG4gICAgcmVxdWVzdC50aW1lb3V0ID0gX2NvbmZpZy50aW1lb3V0O1xuXG4gICAgZnVuY3Rpb24gb25sb2FkZW5kKCkge1xuICAgICAgaWYgKCFyZXF1ZXN0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIFByZXBhcmUgdGhlIHJlc3BvbnNlXG4gICAgICBjb25zdCByZXNwb25zZUhlYWRlcnMgPSBBeGlvc0hlYWRlcnMuZnJvbShcbiAgICAgICAgJ2dldEFsbFJlc3BvbnNlSGVhZGVycycgaW4gcmVxdWVzdCAmJiByZXF1ZXN0LmdldEFsbFJlc3BvbnNlSGVhZGVycygpXG4gICAgICApO1xuICAgICAgY29uc3QgcmVzcG9uc2VEYXRhID0gIXJlc3BvbnNlVHlwZSB8fCByZXNwb25zZVR5cGUgPT09ICd0ZXh0JyB8fCByZXNwb25zZVR5cGUgPT09ICdqc29uJyA/XG4gICAgICAgIHJlcXVlc3QucmVzcG9uc2VUZXh0IDogcmVxdWVzdC5yZXNwb25zZTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgICAgICBkYXRhOiByZXNwb25zZURhdGEsXG4gICAgICAgIHN0YXR1czogcmVxdWVzdC5zdGF0dXMsXG4gICAgICAgIHN0YXR1c1RleHQ6IHJlcXVlc3Quc3RhdHVzVGV4dCxcbiAgICAgICAgaGVhZGVyczogcmVzcG9uc2VIZWFkZXJzLFxuICAgICAgICBjb25maWcsXG4gICAgICAgIHJlcXVlc3RcbiAgICAgIH07XG5cbiAgICAgIHNldHRsZShmdW5jdGlvbiBfcmVzb2x2ZSh2YWx1ZSkge1xuICAgICAgICByZXNvbHZlKHZhbHVlKTtcbiAgICAgICAgZG9uZSgpO1xuICAgICAgfSwgZnVuY3Rpb24gX3JlamVjdChlcnIpIHtcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgIGRvbmUoKTtcbiAgICAgIH0sIHJlc3BvbnNlKTtcblxuICAgICAgLy8gQ2xlYW4gdXAgcmVxdWVzdFxuICAgICAgcmVxdWVzdCA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCdvbmxvYWRlbmQnIGluIHJlcXVlc3QpIHtcbiAgICAgIC8vIFVzZSBvbmxvYWRlbmQgaWYgYXZhaWxhYmxlXG4gICAgICByZXF1ZXN0Lm9ubG9hZGVuZCA9IG9ubG9hZGVuZDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTGlzdGVuIGZvciByZWFkeSBzdGF0ZSB0byBlbXVsYXRlIG9ubG9hZGVuZFxuICAgICAgcmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiBoYW5kbGVMb2FkKCkge1xuICAgICAgICBpZiAoIXJlcXVlc3QgfHwgcmVxdWVzdC5yZWFkeVN0YXRlICE9PSA0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhlIHJlcXVlc3QgZXJyb3JlZCBvdXQgYW5kIHdlIGRpZG4ndCBnZXQgYSByZXNwb25zZSwgdGhpcyB3aWxsIGJlXG4gICAgICAgIC8vIGhhbmRsZWQgYnkgb25lcnJvciBpbnN0ZWFkXG4gICAgICAgIC8vIFdpdGggb25lIGV4Y2VwdGlvbjogcmVxdWVzdCB0aGF0IHVzaW5nIGZpbGU6IHByb3RvY29sLCBtb3N0IGJyb3dzZXJzXG4gICAgICAgIC8vIHdpbGwgcmV0dXJuIHN0YXR1cyBhcyAwIGV2ZW4gdGhvdWdoIGl0J3MgYSBzdWNjZXNzZnVsIHJlcXVlc3RcbiAgICAgICAgaWYgKHJlcXVlc3Quc3RhdHVzID09PSAwICYmICEocmVxdWVzdC5yZXNwb25zZVVSTCAmJiByZXF1ZXN0LnJlc3BvbnNlVVJMLmluZGV4T2YoJ2ZpbGU6JykgPT09IDApKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHJlYWR5c3RhdGUgaGFuZGxlciBpcyBjYWxsaW5nIGJlZm9yZSBvbmVycm9yIG9yIG9udGltZW91dCBoYW5kbGVycyxcbiAgICAgICAgLy8gc28gd2Ugc2hvdWxkIGNhbGwgb25sb2FkZW5kIG9uIHRoZSBuZXh0ICd0aWNrJ1xuICAgICAgICBzZXRUaW1lb3V0KG9ubG9hZGVuZCk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBicm93c2VyIHJlcXVlc3QgY2FuY2VsbGF0aW9uIChhcyBvcHBvc2VkIHRvIGEgbWFudWFsIGNhbmNlbGxhdGlvbilcbiAgICByZXF1ZXN0Lm9uYWJvcnQgPSBmdW5jdGlvbiBoYW5kbGVBYm9ydCgpIHtcbiAgICAgIGlmICghcmVxdWVzdCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJlamVjdChuZXcgQXhpb3NFcnJvcignUmVxdWVzdCBhYm9ydGVkJywgQXhpb3NFcnJvci5FQ09OTkFCT1JURUQsIGNvbmZpZywgcmVxdWVzdCkpO1xuXG4gICAgICAvLyBDbGVhbiB1cCByZXF1ZXN0XG4gICAgICByZXF1ZXN0ID0gbnVsbDtcbiAgICB9O1xuXG4gICAgLy8gSGFuZGxlIGxvdyBsZXZlbCBuZXR3b3JrIGVycm9yc1xuICAgIHJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uIGhhbmRsZUVycm9yKCkge1xuICAgICAgLy8gUmVhbCBlcnJvcnMgYXJlIGhpZGRlbiBmcm9tIHVzIGJ5IHRoZSBicm93c2VyXG4gICAgICAvLyBvbmVycm9yIHNob3VsZCBvbmx5IGZpcmUgaWYgaXQncyBhIG5ldHdvcmsgZXJyb3JcbiAgICAgIHJlamVjdChuZXcgQXhpb3NFcnJvcignTmV0d29yayBFcnJvcicsIEF4aW9zRXJyb3IuRVJSX05FVFdPUkssIGNvbmZpZywgcmVxdWVzdCkpO1xuXG4gICAgICAvLyBDbGVhbiB1cCByZXF1ZXN0XG4gICAgICByZXF1ZXN0ID0gbnVsbDtcbiAgICB9O1xuXG4gICAgLy8gSGFuZGxlIHRpbWVvdXRcbiAgICByZXF1ZXN0Lm9udGltZW91dCA9IGZ1bmN0aW9uIGhhbmRsZVRpbWVvdXQoKSB7XG4gICAgICBsZXQgdGltZW91dEVycm9yTWVzc2FnZSA9IF9jb25maWcudGltZW91dCA/ICd0aW1lb3V0IG9mICcgKyBfY29uZmlnLnRpbWVvdXQgKyAnbXMgZXhjZWVkZWQnIDogJ3RpbWVvdXQgZXhjZWVkZWQnO1xuICAgICAgY29uc3QgdHJhbnNpdGlvbmFsID0gX2NvbmZpZy50cmFuc2l0aW9uYWwgfHwgdHJhbnNpdGlvbmFsRGVmYXVsdHM7XG4gICAgICBpZiAoX2NvbmZpZy50aW1lb3V0RXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIHRpbWVvdXRFcnJvck1lc3NhZ2UgPSBfY29uZmlnLnRpbWVvdXRFcnJvck1lc3NhZ2U7XG4gICAgICB9XG4gICAgICByZWplY3QobmV3IEF4aW9zRXJyb3IoXG4gICAgICAgIHRpbWVvdXRFcnJvck1lc3NhZ2UsXG4gICAgICAgIHRyYW5zaXRpb25hbC5jbGFyaWZ5VGltZW91dEVycm9yID8gQXhpb3NFcnJvci5FVElNRURPVVQgOiBBeGlvc0Vycm9yLkVDT05OQUJPUlRFRCxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICByZXF1ZXN0KSk7XG5cbiAgICAgIC8vIENsZWFuIHVwIHJlcXVlc3RcbiAgICAgIHJlcXVlc3QgPSBudWxsO1xuICAgIH07XG5cbiAgICAvLyBSZW1vdmUgQ29udGVudC1UeXBlIGlmIGRhdGEgaXMgdW5kZWZpbmVkXG4gICAgcmVxdWVzdERhdGEgPT09IHVuZGVmaW5lZCAmJiByZXF1ZXN0SGVhZGVycy5zZXRDb250ZW50VHlwZShudWxsKTtcblxuICAgIC8vIEFkZCBoZWFkZXJzIHRvIHRoZSByZXF1ZXN0XG4gICAgaWYgKCdzZXRSZXF1ZXN0SGVhZGVyJyBpbiByZXF1ZXN0KSB7XG4gICAgICB1dGlscy5mb3JFYWNoKHJlcXVlc3RIZWFkZXJzLnRvSlNPTigpLCBmdW5jdGlvbiBzZXRSZXF1ZXN0SGVhZGVyKHZhbCwga2V5KSB7XG4gICAgICAgIHJlcXVlc3Quc2V0UmVxdWVzdEhlYWRlcihrZXksIHZhbCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBBZGQgd2l0aENyZWRlbnRpYWxzIHRvIHJlcXVlc3QgaWYgbmVlZGVkXG4gICAgaWYgKCF1dGlscy5pc1VuZGVmaW5lZChfY29uZmlnLndpdGhDcmVkZW50aWFscykpIHtcbiAgICAgIHJlcXVlc3Qud2l0aENyZWRlbnRpYWxzID0gISFfY29uZmlnLndpdGhDcmVkZW50aWFscztcbiAgICB9XG5cbiAgICAvLyBBZGQgcmVzcG9uc2VUeXBlIHRvIHJlcXVlc3QgaWYgbmVlZGVkXG4gICAgaWYgKHJlc3BvbnNlVHlwZSAmJiByZXNwb25zZVR5cGUgIT09ICdqc29uJykge1xuICAgICAgcmVxdWVzdC5yZXNwb25zZVR5cGUgPSBfY29uZmlnLnJlc3BvbnNlVHlwZTtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgcHJvZ3Jlc3MgaWYgbmVlZGVkXG4gICAgaWYgKG9uRG93bmxvYWRQcm9ncmVzcykge1xuICAgICAgKFtkb3dubG9hZFRocm90dGxlZCwgZmx1c2hEb3dubG9hZF0gPSBwcm9ncmVzc0V2ZW50UmVkdWNlcihvbkRvd25sb2FkUHJvZ3Jlc3MsIHRydWUpKTtcbiAgICAgIHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcigncHJvZ3Jlc3MnLCBkb3dubG9hZFRocm90dGxlZCk7XG4gICAgfVxuXG4gICAgLy8gTm90IGFsbCBicm93c2VycyBzdXBwb3J0IHVwbG9hZCBldmVudHNcbiAgICBpZiAob25VcGxvYWRQcm9ncmVzcyAmJiByZXF1ZXN0LnVwbG9hZCkge1xuICAgICAgKFt1cGxvYWRUaHJvdHRsZWQsIGZsdXNoVXBsb2FkXSA9IHByb2dyZXNzRXZlbnRSZWR1Y2VyKG9uVXBsb2FkUHJvZ3Jlc3MpKTtcblxuICAgICAgcmVxdWVzdC51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigncHJvZ3Jlc3MnLCB1cGxvYWRUaHJvdHRsZWQpO1xuXG4gICAgICByZXF1ZXN0LnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCdsb2FkZW5kJywgZmx1c2hVcGxvYWQpO1xuICAgIH1cblxuICAgIGlmIChfY29uZmlnLmNhbmNlbFRva2VuIHx8IF9jb25maWcuc2lnbmFsKSB7XG4gICAgICAvLyBIYW5kbGUgY2FuY2VsbGF0aW9uXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuICAgICAgb25DYW5jZWxlZCA9IGNhbmNlbCA9PiB7XG4gICAgICAgIGlmICghcmVxdWVzdCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZWplY3QoIWNhbmNlbCB8fCBjYW5jZWwudHlwZSA/IG5ldyBDYW5jZWxlZEVycm9yKG51bGwsIGNvbmZpZywgcmVxdWVzdCkgOiBjYW5jZWwpO1xuICAgICAgICByZXF1ZXN0LmFib3J0KCk7XG4gICAgICAgIHJlcXVlc3QgPSBudWxsO1xuICAgICAgfTtcblxuICAgICAgX2NvbmZpZy5jYW5jZWxUb2tlbiAmJiBfY29uZmlnLmNhbmNlbFRva2VuLnN1YnNjcmliZShvbkNhbmNlbGVkKTtcbiAgICAgIGlmIChfY29uZmlnLnNpZ25hbCkge1xuICAgICAgICBfY29uZmlnLnNpZ25hbC5hYm9ydGVkID8gb25DYW5jZWxlZCgpIDogX2NvbmZpZy5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkNhbmNlbGVkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBwcm90b2NvbCA9IHBhcnNlUHJvdG9jb2woX2NvbmZpZy51cmwpO1xuXG4gICAgaWYgKHByb3RvY29sICYmIHBsYXRmb3JtLnByb3RvY29scy5pbmRleE9mKHByb3RvY29sKSA9PT0gLTEpIHtcbiAgICAgIHJlamVjdChuZXcgQXhpb3NFcnJvcignVW5zdXBwb3J0ZWQgcHJvdG9jb2wgJyArIHByb3RvY29sICsgJzonLCBBeGlvc0Vycm9yLkVSUl9CQURfUkVRVUVTVCwgY29uZmlnKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG5cbiAgICAvLyBTZW5kIHRoZSByZXF1ZXN0XG4gICAgcmVxdWVzdC5zZW5kKHJlcXVlc3REYXRhIHx8IG51bGwpO1xuICB9KTtcbn1cbiIsImltcG9ydCBDYW5jZWxlZEVycm9yIGZyb20gXCIuLi9jYW5jZWwvQ2FuY2VsZWRFcnJvci5qc1wiO1xuaW1wb3J0IEF4aW9zRXJyb3IgZnJvbSBcIi4uL2NvcmUvQXhpb3NFcnJvci5qc1wiO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzLmpzJztcblxuY29uc3QgY29tcG9zZVNpZ25hbHMgPSAoc2lnbmFscywgdGltZW91dCkgPT4ge1xuICBjb25zdCB7bGVuZ3RofSA9IChzaWduYWxzID0gc2lnbmFscyA/IHNpZ25hbHMuZmlsdGVyKEJvb2xlYW4pIDogW10pO1xuXG4gIGlmICh0aW1lb3V0IHx8IGxlbmd0aCkge1xuICAgIGxldCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgbGV0IGFib3J0ZWQ7XG5cbiAgICBjb25zdCBvbmFib3J0ID0gZnVuY3Rpb24gKHJlYXNvbikge1xuICAgICAgaWYgKCFhYm9ydGVkKSB7XG4gICAgICAgIGFib3J0ZWQgPSB0cnVlO1xuICAgICAgICB1bnN1YnNjcmliZSgpO1xuICAgICAgICBjb25zdCBlcnIgPSByZWFzb24gaW5zdGFuY2VvZiBFcnJvciA/IHJlYXNvbiA6IHRoaXMucmVhc29uO1xuICAgICAgICBjb250cm9sbGVyLmFib3J0KGVyciBpbnN0YW5jZW9mIEF4aW9zRXJyb3IgPyBlcnIgOiBuZXcgQ2FuY2VsZWRFcnJvcihlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogZXJyKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IHRpbWVyID0gdGltZW91dCAmJiBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRpbWVyID0gbnVsbDtcbiAgICAgIG9uYWJvcnQobmV3IEF4aW9zRXJyb3IoYHRpbWVvdXQgJHt0aW1lb3V0fSBvZiBtcyBleGNlZWRlZGAsIEF4aW9zRXJyb3IuRVRJTUVET1VUKSlcbiAgICB9LCB0aW1lb3V0KVxuXG4gICAgY29uc3QgdW5zdWJzY3JpYmUgPSAoKSA9PiB7XG4gICAgICBpZiAoc2lnbmFscykge1xuICAgICAgICB0aW1lciAmJiBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgICAgICB0aW1lciA9IG51bGw7XG4gICAgICAgIHNpZ25hbHMuZm9yRWFjaChzaWduYWwgPT4ge1xuICAgICAgICAgIHNpZ25hbC51bnN1YnNjcmliZSA/IHNpZ25hbC51bnN1YnNjcmliZShvbmFib3J0KSA6IHNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm9ydCcsIG9uYWJvcnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgc2lnbmFscyA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2lnbmFscy5mb3JFYWNoKChzaWduYWwpID0+IHNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsIG9uYWJvcnQpKTtcblxuICAgIGNvbnN0IHtzaWduYWx9ID0gY29udHJvbGxlcjtcblxuICAgIHNpZ25hbC51bnN1YnNjcmliZSA9ICgpID0+IHV0aWxzLmFzYXAodW5zdWJzY3JpYmUpO1xuXG4gICAgcmV0dXJuIHNpZ25hbDtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb3NlU2lnbmFscztcbiIsIlxuZXhwb3J0IGNvbnN0IHN0cmVhbUNodW5rID0gZnVuY3Rpb24qIChjaHVuaywgY2h1bmtTaXplKSB7XG4gIGxldCBsZW4gPSBjaHVuay5ieXRlTGVuZ3RoO1xuXG4gIGlmICghY2h1bmtTaXplIHx8IGxlbiA8IGNodW5rU2l6ZSkge1xuICAgIHlpZWxkIGNodW5rO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCBwb3MgPSAwO1xuICBsZXQgZW5kO1xuXG4gIHdoaWxlIChwb3MgPCBsZW4pIHtcbiAgICBlbmQgPSBwb3MgKyBjaHVua1NpemU7XG4gICAgeWllbGQgY2h1bmsuc2xpY2UocG9zLCBlbmQpO1xuICAgIHBvcyA9IGVuZDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgcmVhZEJ5dGVzID0gYXN5bmMgZnVuY3Rpb24qIChpdGVyYWJsZSwgY2h1bmtTaXplKSB7XG4gIGZvciBhd2FpdCAoY29uc3QgY2h1bmsgb2YgcmVhZFN0cmVhbShpdGVyYWJsZSkpIHtcbiAgICB5aWVsZCogc3RyZWFtQ2h1bmsoY2h1bmssIGNodW5rU2l6ZSk7XG4gIH1cbn1cblxuY29uc3QgcmVhZFN0cmVhbSA9IGFzeW5jIGZ1bmN0aW9uKiAoc3RyZWFtKSB7XG4gIGlmIChzdHJlYW1bU3ltYm9sLmFzeW5jSXRlcmF0b3JdKSB7XG4gICAgeWllbGQqIHN0cmVhbTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCByZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKCk7XG4gIHRyeSB7XG4gICAgZm9yICg7Oykge1xuICAgICAgY29uc3Qge2RvbmUsIHZhbHVlfSA9IGF3YWl0IHJlYWRlci5yZWFkKCk7XG4gICAgICBpZiAoZG9uZSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHlpZWxkIHZhbHVlO1xuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCByZWFkZXIuY2FuY2VsKCk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHRyYWNrU3RyZWFtID0gKHN0cmVhbSwgY2h1bmtTaXplLCBvblByb2dyZXNzLCBvbkZpbmlzaCkgPT4ge1xuICBjb25zdCBpdGVyYXRvciA9IHJlYWRCeXRlcyhzdHJlYW0sIGNodW5rU2l6ZSk7XG5cbiAgbGV0IGJ5dGVzID0gMDtcbiAgbGV0IGRvbmU7XG4gIGxldCBfb25GaW5pc2ggPSAoZSkgPT4ge1xuICAgIGlmICghZG9uZSkge1xuICAgICAgZG9uZSA9IHRydWU7XG4gICAgICBvbkZpbmlzaCAmJiBvbkZpbmlzaChlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICBhc3luYyBwdWxsKGNvbnRyb2xsZXIpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHtkb25lLCB2YWx1ZX0gPSBhd2FpdCBpdGVyYXRvci5uZXh0KCk7XG5cbiAgICAgICAgaWYgKGRvbmUpIHtcbiAgICAgICAgIF9vbkZpbmlzaCgpO1xuICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGVuID0gdmFsdWUuYnl0ZUxlbmd0aDtcbiAgICAgICAgaWYgKG9uUHJvZ3Jlc3MpIHtcbiAgICAgICAgICBsZXQgbG9hZGVkQnl0ZXMgPSBieXRlcyArPSBsZW47XG4gICAgICAgICAgb25Qcm9ncmVzcyhsb2FkZWRCeXRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KHZhbHVlKSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgX29uRmluaXNoKGVycik7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICB9LFxuICAgIGNhbmNlbChyZWFzb24pIHtcbiAgICAgIF9vbkZpbmlzaChyZWFzb24pO1xuICAgICAgcmV0dXJuIGl0ZXJhdG9yLnJldHVybigpO1xuICAgIH1cbiAgfSwge1xuICAgIGhpZ2hXYXRlck1hcms6IDJcbiAgfSlcbn1cbiIsImltcG9ydCBwbGF0Zm9ybSBmcm9tIFwiLi4vcGxhdGZvcm0vaW5kZXguanNcIjtcbmltcG9ydCB1dGlscyBmcm9tIFwiLi4vdXRpbHMuanNcIjtcbmltcG9ydCBBeGlvc0Vycm9yIGZyb20gXCIuLi9jb3JlL0F4aW9zRXJyb3IuanNcIjtcbmltcG9ydCBjb21wb3NlU2lnbmFscyBmcm9tIFwiLi4vaGVscGVycy9jb21wb3NlU2lnbmFscy5qc1wiO1xuaW1wb3J0IHt0cmFja1N0cmVhbX0gZnJvbSBcIi4uL2hlbHBlcnMvdHJhY2tTdHJlYW0uanNcIjtcbmltcG9ydCBBeGlvc0hlYWRlcnMgZnJvbSBcIi4uL2NvcmUvQXhpb3NIZWFkZXJzLmpzXCI7XG5pbXBvcnQge3Byb2dyZXNzRXZlbnRSZWR1Y2VyLCBwcm9ncmVzc0V2ZW50RGVjb3JhdG9yLCBhc3luY0RlY29yYXRvcn0gZnJvbSBcIi4uL2hlbHBlcnMvcHJvZ3Jlc3NFdmVudFJlZHVjZXIuanNcIjtcbmltcG9ydCByZXNvbHZlQ29uZmlnIGZyb20gXCIuLi9oZWxwZXJzL3Jlc29sdmVDb25maWcuanNcIjtcbmltcG9ydCBzZXR0bGUgZnJvbSBcIi4uL2NvcmUvc2V0dGxlLmpzXCI7XG5cbmNvbnN0IGlzRmV0Y2hTdXBwb3J0ZWQgPSB0eXBlb2YgZmV0Y2ggPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIFJlcXVlc3QgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIFJlc3BvbnNlID09PSAnZnVuY3Rpb24nO1xuY29uc3QgaXNSZWFkYWJsZVN0cmVhbVN1cHBvcnRlZCA9IGlzRmV0Y2hTdXBwb3J0ZWQgJiYgdHlwZW9mIFJlYWRhYmxlU3RyZWFtID09PSAnZnVuY3Rpb24nO1xuXG4vLyB1c2VkIG9ubHkgaW5zaWRlIHRoZSBmZXRjaCBhZGFwdGVyXG5jb25zdCBlbmNvZGVUZXh0ID0gaXNGZXRjaFN1cHBvcnRlZCAmJiAodHlwZW9mIFRleHRFbmNvZGVyID09PSAnZnVuY3Rpb24nID9cbiAgICAoKGVuY29kZXIpID0+IChzdHIpID0+IGVuY29kZXIuZW5jb2RlKHN0cikpKG5ldyBUZXh0RW5jb2RlcigpKSA6XG4gICAgYXN5bmMgKHN0cikgPT4gbmV3IFVpbnQ4QXJyYXkoYXdhaXQgbmV3IFJlc3BvbnNlKHN0cikuYXJyYXlCdWZmZXIoKSlcbik7XG5cbmNvbnN0IHRlc3QgPSAoZm4sIC4uLmFyZ3MpID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gISFmbiguLi5hcmdzKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbmNvbnN0IHN1cHBvcnRzUmVxdWVzdFN0cmVhbSA9IGlzUmVhZGFibGVTdHJlYW1TdXBwb3J0ZWQgJiYgdGVzdCgoKSA9PiB7XG4gIGxldCBkdXBsZXhBY2Nlc3NlZCA9IGZhbHNlO1xuXG4gIGNvbnN0IGhhc0NvbnRlbnRUeXBlID0gbmV3IFJlcXVlc3QocGxhdGZvcm0ub3JpZ2luLCB7XG4gICAgYm9keTogbmV3IFJlYWRhYmxlU3RyZWFtKCksXG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgZ2V0IGR1cGxleCgpIHtcbiAgICAgIGR1cGxleEFjY2Vzc2VkID0gdHJ1ZTtcbiAgICAgIHJldHVybiAnaGFsZic7XG4gICAgfSxcbiAgfSkuaGVhZGVycy5oYXMoJ0NvbnRlbnQtVHlwZScpO1xuXG4gIHJldHVybiBkdXBsZXhBY2Nlc3NlZCAmJiAhaGFzQ29udGVudFR5cGU7XG59KTtcblxuY29uc3QgREVGQVVMVF9DSFVOS19TSVpFID0gNjQgKiAxMDI0O1xuXG5jb25zdCBzdXBwb3J0c1Jlc3BvbnNlU3RyZWFtID0gaXNSZWFkYWJsZVN0cmVhbVN1cHBvcnRlZCAmJlxuICB0ZXN0KCgpID0+IHV0aWxzLmlzUmVhZGFibGVTdHJlYW0obmV3IFJlc3BvbnNlKCcnKS5ib2R5KSk7XG5cblxuY29uc3QgcmVzb2x2ZXJzID0ge1xuICBzdHJlYW06IHN1cHBvcnRzUmVzcG9uc2VTdHJlYW0gJiYgKChyZXMpID0+IHJlcy5ib2R5KVxufTtcblxuaXNGZXRjaFN1cHBvcnRlZCAmJiAoKChyZXMpID0+IHtcbiAgWyd0ZXh0JywgJ2FycmF5QnVmZmVyJywgJ2Jsb2InLCAnZm9ybURhdGEnLCAnc3RyZWFtJ10uZm9yRWFjaCh0eXBlID0+IHtcbiAgICAhcmVzb2x2ZXJzW3R5cGVdICYmIChyZXNvbHZlcnNbdHlwZV0gPSB1dGlscy5pc0Z1bmN0aW9uKHJlc1t0eXBlXSkgPyAocmVzKSA9PiByZXNbdHlwZV0oKSA6XG4gICAgICAoXywgY29uZmlnKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBBeGlvc0Vycm9yKGBSZXNwb25zZSB0eXBlICcke3R5cGV9JyBpcyBub3Qgc3VwcG9ydGVkYCwgQXhpb3NFcnJvci5FUlJfTk9UX1NVUFBPUlQsIGNvbmZpZyk7XG4gICAgICB9KVxuICB9KTtcbn0pKG5ldyBSZXNwb25zZSkpO1xuXG5jb25zdCBnZXRCb2R5TGVuZ3RoID0gYXN5bmMgKGJvZHkpID0+IHtcbiAgaWYgKGJvZHkgPT0gbnVsbCkge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgaWYodXRpbHMuaXNCbG9iKGJvZHkpKSB7XG4gICAgcmV0dXJuIGJvZHkuc2l6ZTtcbiAgfVxuXG4gIGlmKHV0aWxzLmlzU3BlY0NvbXBsaWFudEZvcm0oYm9keSkpIHtcbiAgICBjb25zdCBfcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KHBsYXRmb3JtLm9yaWdpbiwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5LFxuICAgIH0pO1xuICAgIHJldHVybiAoYXdhaXQgX3JlcXVlc3QuYXJyYXlCdWZmZXIoKSkuYnl0ZUxlbmd0aDtcbiAgfVxuXG4gIGlmKHV0aWxzLmlzQXJyYXlCdWZmZXJWaWV3KGJvZHkpIHx8IHV0aWxzLmlzQXJyYXlCdWZmZXIoYm9keSkpIHtcbiAgICByZXR1cm4gYm9keS5ieXRlTGVuZ3RoO1xuICB9XG5cbiAgaWYodXRpbHMuaXNVUkxTZWFyY2hQYXJhbXMoYm9keSkpIHtcbiAgICBib2R5ID0gYm9keSArICcnO1xuICB9XG5cbiAgaWYodXRpbHMuaXNTdHJpbmcoYm9keSkpIHtcbiAgICByZXR1cm4gKGF3YWl0IGVuY29kZVRleHQoYm9keSkpLmJ5dGVMZW5ndGg7XG4gIH1cbn1cblxuY29uc3QgcmVzb2x2ZUJvZHlMZW5ndGggPSBhc3luYyAoaGVhZGVycywgYm9keSkgPT4ge1xuICBjb25zdCBsZW5ndGggPSB1dGlscy50b0Zpbml0ZU51bWJlcihoZWFkZXJzLmdldENvbnRlbnRMZW5ndGgoKSk7XG5cbiAgcmV0dXJuIGxlbmd0aCA9PSBudWxsID8gZ2V0Qm9keUxlbmd0aChib2R5KSA6IGxlbmd0aDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNGZXRjaFN1cHBvcnRlZCAmJiAoYXN5bmMgKGNvbmZpZykgPT4ge1xuICBsZXQge1xuICAgIHVybCxcbiAgICBtZXRob2QsXG4gICAgZGF0YSxcbiAgICBzaWduYWwsXG4gICAgY2FuY2VsVG9rZW4sXG4gICAgdGltZW91dCxcbiAgICBvbkRvd25sb2FkUHJvZ3Jlc3MsXG4gICAgb25VcGxvYWRQcm9ncmVzcyxcbiAgICByZXNwb25zZVR5cGUsXG4gICAgaGVhZGVycyxcbiAgICB3aXRoQ3JlZGVudGlhbHMgPSAnc2FtZS1vcmlnaW4nLFxuICAgIGZldGNoT3B0aW9uc1xuICB9ID0gcmVzb2x2ZUNvbmZpZyhjb25maWcpO1xuXG4gIHJlc3BvbnNlVHlwZSA9IHJlc3BvbnNlVHlwZSA/IChyZXNwb25zZVR5cGUgKyAnJykudG9Mb3dlckNhc2UoKSA6ICd0ZXh0JztcblxuICBsZXQgY29tcG9zZWRTaWduYWwgPSBjb21wb3NlU2lnbmFscyhbc2lnbmFsLCBjYW5jZWxUb2tlbiAmJiBjYW5jZWxUb2tlbi50b0Fib3J0U2lnbmFsKCldLCB0aW1lb3V0KTtcblxuICBsZXQgcmVxdWVzdDtcblxuICBjb25zdCB1bnN1YnNjcmliZSA9IGNvbXBvc2VkU2lnbmFsICYmIGNvbXBvc2VkU2lnbmFsLnVuc3Vic2NyaWJlICYmICgoKSA9PiB7XG4gICAgICBjb21wb3NlZFNpZ25hbC51bnN1YnNjcmliZSgpO1xuICB9KTtcblxuICBsZXQgcmVxdWVzdENvbnRlbnRMZW5ndGg7XG5cbiAgdHJ5IHtcbiAgICBpZiAoXG4gICAgICBvblVwbG9hZFByb2dyZXNzICYmIHN1cHBvcnRzUmVxdWVzdFN0cmVhbSAmJiBtZXRob2QgIT09ICdnZXQnICYmIG1ldGhvZCAhPT0gJ2hlYWQnICYmXG4gICAgICAocmVxdWVzdENvbnRlbnRMZW5ndGggPSBhd2FpdCByZXNvbHZlQm9keUxlbmd0aChoZWFkZXJzLCBkYXRhKSkgIT09IDBcbiAgICApIHtcbiAgICAgIGxldCBfcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KHVybCwge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgYm9keTogZGF0YSxcbiAgICAgICAgZHVwbGV4OiBcImhhbGZcIlxuICAgICAgfSk7XG5cbiAgICAgIGxldCBjb250ZW50VHlwZUhlYWRlcjtcblxuICAgICAgaWYgKHV0aWxzLmlzRm9ybURhdGEoZGF0YSkgJiYgKGNvbnRlbnRUeXBlSGVhZGVyID0gX3JlcXVlc3QuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpKSkge1xuICAgICAgICBoZWFkZXJzLnNldENvbnRlbnRUeXBlKGNvbnRlbnRUeXBlSGVhZGVyKVxuICAgICAgfVxuXG4gICAgICBpZiAoX3JlcXVlc3QuYm9keSkge1xuICAgICAgICBjb25zdCBbb25Qcm9ncmVzcywgZmx1c2hdID0gcHJvZ3Jlc3NFdmVudERlY29yYXRvcihcbiAgICAgICAgICByZXF1ZXN0Q29udGVudExlbmd0aCxcbiAgICAgICAgICBwcm9ncmVzc0V2ZW50UmVkdWNlcihhc3luY0RlY29yYXRvcihvblVwbG9hZFByb2dyZXNzKSlcbiAgICAgICAgKTtcblxuICAgICAgICBkYXRhID0gdHJhY2tTdHJlYW0oX3JlcXVlc3QuYm9keSwgREVGQVVMVF9DSFVOS19TSVpFLCBvblByb2dyZXNzLCBmbHVzaCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCF1dGlscy5pc1N0cmluZyh3aXRoQ3JlZGVudGlhbHMpKSB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHMgPSB3aXRoQ3JlZGVudGlhbHMgPyAnaW5jbHVkZScgOiAnb21pdCc7XG4gICAgfVxuXG4gICAgLy8gQ2xvdWRmbGFyZSBXb3JrZXJzIHRocm93cyB3aGVuIGNyZWRlbnRpYWxzIGFyZSBkZWZpbmVkXG4gICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9jbG91ZGZsYXJlL3dvcmtlcmQvaXNzdWVzLzkwMlxuICAgIGNvbnN0IGlzQ3JlZGVudGlhbHNTdXBwb3J0ZWQgPSBcImNyZWRlbnRpYWxzXCIgaW4gUmVxdWVzdC5wcm90b3R5cGU7XG4gICAgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KHVybCwge1xuICAgICAgLi4uZmV0Y2hPcHRpb25zLFxuICAgICAgc2lnbmFsOiBjb21wb3NlZFNpZ25hbCxcbiAgICAgIG1ldGhvZDogbWV0aG9kLnRvVXBwZXJDYXNlKCksXG4gICAgICBoZWFkZXJzOiBoZWFkZXJzLm5vcm1hbGl6ZSgpLnRvSlNPTigpLFxuICAgICAgYm9keTogZGF0YSxcbiAgICAgIGR1cGxleDogXCJoYWxmXCIsXG4gICAgICBjcmVkZW50aWFsczogaXNDcmVkZW50aWFsc1N1cHBvcnRlZCA/IHdpdGhDcmVkZW50aWFscyA6IHVuZGVmaW5lZFxuICAgIH0pO1xuXG4gICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2gocmVxdWVzdCk7XG5cbiAgICBjb25zdCBpc1N0cmVhbVJlc3BvbnNlID0gc3VwcG9ydHNSZXNwb25zZVN0cmVhbSAmJiAocmVzcG9uc2VUeXBlID09PSAnc3RyZWFtJyB8fCByZXNwb25zZVR5cGUgPT09ICdyZXNwb25zZScpO1xuXG4gICAgaWYgKHN1cHBvcnRzUmVzcG9uc2VTdHJlYW0gJiYgKG9uRG93bmxvYWRQcm9ncmVzcyB8fCAoaXNTdHJlYW1SZXNwb25zZSAmJiB1bnN1YnNjcmliZSkpKSB7XG4gICAgICBjb25zdCBvcHRpb25zID0ge307XG5cbiAgICAgIFsnc3RhdHVzJywgJ3N0YXR1c1RleHQnLCAnaGVhZGVycyddLmZvckVhY2gocHJvcCA9PiB7XG4gICAgICAgIG9wdGlvbnNbcHJvcF0gPSByZXNwb25zZVtwcm9wXTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCByZXNwb25zZUNvbnRlbnRMZW5ndGggPSB1dGlscy50b0Zpbml0ZU51bWJlcihyZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC1sZW5ndGgnKSk7XG5cbiAgICAgIGNvbnN0IFtvblByb2dyZXNzLCBmbHVzaF0gPSBvbkRvd25sb2FkUHJvZ3Jlc3MgJiYgcHJvZ3Jlc3NFdmVudERlY29yYXRvcihcbiAgICAgICAgcmVzcG9uc2VDb250ZW50TGVuZ3RoLFxuICAgICAgICBwcm9ncmVzc0V2ZW50UmVkdWNlcihhc3luY0RlY29yYXRvcihvbkRvd25sb2FkUHJvZ3Jlc3MpLCB0cnVlKVxuICAgICAgKSB8fCBbXTtcblxuICAgICAgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoXG4gICAgICAgIHRyYWNrU3RyZWFtKHJlc3BvbnNlLmJvZHksIERFRkFVTFRfQ0hVTktfU0laRSwgb25Qcm9ncmVzcywgKCkgPT4ge1xuICAgICAgICAgIGZsdXNoICYmIGZsdXNoKCk7XG4gICAgICAgICAgdW5zdWJzY3JpYmUgJiYgdW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfSksXG4gICAgICAgIG9wdGlvbnNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmVzcG9uc2VUeXBlID0gcmVzcG9uc2VUeXBlIHx8ICd0ZXh0JztcblxuICAgIGxldCByZXNwb25zZURhdGEgPSBhd2FpdCByZXNvbHZlcnNbdXRpbHMuZmluZEtleShyZXNvbHZlcnMsIHJlc3BvbnNlVHlwZSkgfHwgJ3RleHQnXShyZXNwb25zZSwgY29uZmlnKTtcblxuICAgICFpc1N0cmVhbVJlc3BvbnNlICYmIHVuc3Vic2NyaWJlICYmIHVuc3Vic2NyaWJlKCk7XG5cbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgc2V0dGxlKHJlc29sdmUsIHJlamVjdCwge1xuICAgICAgICBkYXRhOiByZXNwb25zZURhdGEsXG4gICAgICAgIGhlYWRlcnM6IEF4aW9zSGVhZGVycy5mcm9tKHJlc3BvbnNlLmhlYWRlcnMpLFxuICAgICAgICBzdGF0dXM6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgICAgc3RhdHVzVGV4dDogcmVzcG9uc2Uuc3RhdHVzVGV4dCxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICByZXF1ZXN0XG4gICAgICB9KVxuICAgIH0pXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHVuc3Vic2NyaWJlICYmIHVuc3Vic2NyaWJlKCk7XG5cbiAgICBpZiAoZXJyICYmIGVyci5uYW1lID09PSAnVHlwZUVycm9yJyAmJiAvZmV0Y2gvaS50ZXN0KGVyci5tZXNzYWdlKSkge1xuICAgICAgdGhyb3cgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgbmV3IEF4aW9zRXJyb3IoJ05ldHdvcmsgRXJyb3InLCBBeGlvc0Vycm9yLkVSUl9ORVRXT1JLLCBjb25maWcsIHJlcXVlc3QpLFxuICAgICAgICB7XG4gICAgICAgICAgY2F1c2U6IGVyci5jYXVzZSB8fCBlcnJcbiAgICAgICAgfVxuICAgICAgKVxuICAgIH1cblxuICAgIHRocm93IEF4aW9zRXJyb3IuZnJvbShlcnIsIGVyciAmJiBlcnIuY29kZSwgY29uZmlnLCByZXF1ZXN0KTtcbiAgfVxufSk7XG5cblxuIiwiaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzLmpzJztcbmltcG9ydCBodHRwQWRhcHRlciBmcm9tICcuL2h0dHAuanMnO1xuaW1wb3J0IHhockFkYXB0ZXIgZnJvbSAnLi94aHIuanMnO1xuaW1wb3J0IGZldGNoQWRhcHRlciBmcm9tICcuL2ZldGNoLmpzJztcbmltcG9ydCBBeGlvc0Vycm9yIGZyb20gXCIuLi9jb3JlL0F4aW9zRXJyb3IuanNcIjtcblxuY29uc3Qga25vd25BZGFwdGVycyA9IHtcbiAgaHR0cDogaHR0cEFkYXB0ZXIsXG4gIHhocjogeGhyQWRhcHRlcixcbiAgZmV0Y2g6IGZldGNoQWRhcHRlclxufVxuXG51dGlscy5mb3JFYWNoKGtub3duQWRhcHRlcnMsIChmbiwgdmFsdWUpID0+IHtcbiAgaWYgKGZuKSB7XG4gICAgdHJ5IHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmbiwgJ25hbWUnLCB7dmFsdWV9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZW1wdHlcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGZuLCAnYWRhcHRlck5hbWUnLCB7dmFsdWV9KTtcbiAgfVxufSk7XG5cbmNvbnN0IHJlbmRlclJlYXNvbiA9IChyZWFzb24pID0+IGAtICR7cmVhc29ufWA7XG5cbmNvbnN0IGlzUmVzb2x2ZWRIYW5kbGUgPSAoYWRhcHRlcikgPT4gdXRpbHMuaXNGdW5jdGlvbihhZGFwdGVyKSB8fCBhZGFwdGVyID09PSBudWxsIHx8IGFkYXB0ZXIgPT09IGZhbHNlO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGdldEFkYXB0ZXI6IChhZGFwdGVycykgPT4ge1xuICAgIGFkYXB0ZXJzID0gdXRpbHMuaXNBcnJheShhZGFwdGVycykgPyBhZGFwdGVycyA6IFthZGFwdGVyc107XG5cbiAgICBjb25zdCB7bGVuZ3RofSA9IGFkYXB0ZXJzO1xuICAgIGxldCBuYW1lT3JBZGFwdGVyO1xuICAgIGxldCBhZGFwdGVyO1xuXG4gICAgY29uc3QgcmVqZWN0ZWRSZWFzb25zID0ge307XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICBuYW1lT3JBZGFwdGVyID0gYWRhcHRlcnNbaV07XG4gICAgICBsZXQgaWQ7XG5cbiAgICAgIGFkYXB0ZXIgPSBuYW1lT3JBZGFwdGVyO1xuXG4gICAgICBpZiAoIWlzUmVzb2x2ZWRIYW5kbGUobmFtZU9yQWRhcHRlcikpIHtcbiAgICAgICAgYWRhcHRlciA9IGtub3duQWRhcHRlcnNbKGlkID0gU3RyaW5nKG5hbWVPckFkYXB0ZXIpKS50b0xvd2VyQ2FzZSgpXTtcblxuICAgICAgICBpZiAoYWRhcHRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEF4aW9zRXJyb3IoYFVua25vd24gYWRhcHRlciAnJHtpZH0nYCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGFkYXB0ZXIpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHJlamVjdGVkUmVhc29uc1tpZCB8fCAnIycgKyBpXSA9IGFkYXB0ZXI7XG4gICAgfVxuXG4gICAgaWYgKCFhZGFwdGVyKSB7XG5cbiAgICAgIGNvbnN0IHJlYXNvbnMgPSBPYmplY3QuZW50cmllcyhyZWplY3RlZFJlYXNvbnMpXG4gICAgICAgIC5tYXAoKFtpZCwgc3RhdGVdKSA9PiBgYWRhcHRlciAke2lkfSBgICtcbiAgICAgICAgICAoc3RhdGUgPT09IGZhbHNlID8gJ2lzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50JyA6ICdpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBidWlsZCcpXG4gICAgICAgICk7XG5cbiAgICAgIGxldCBzID0gbGVuZ3RoID9cbiAgICAgICAgKHJlYXNvbnMubGVuZ3RoID4gMSA/ICdzaW5jZSA6XFxuJyArIHJlYXNvbnMubWFwKHJlbmRlclJlYXNvbikuam9pbignXFxuJykgOiAnICcgKyByZW5kZXJSZWFzb24ocmVhc29uc1swXSkpIDpcbiAgICAgICAgJ2FzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkJztcblxuICAgICAgdGhyb3cgbmV3IEF4aW9zRXJyb3IoXG4gICAgICAgIGBUaGVyZSBpcyBubyBzdWl0YWJsZSBhZGFwdGVyIHRvIGRpc3BhdGNoIHRoZSByZXF1ZXN0IGAgKyBzLFxuICAgICAgICAnRVJSX05PVF9TVVBQT1JUJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWRhcHRlcjtcbiAgfSxcbiAgYWRhcHRlcnM6IGtub3duQWRhcHRlcnNcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHRyYW5zZm9ybURhdGEgZnJvbSAnLi90cmFuc2Zvcm1EYXRhLmpzJztcbmltcG9ydCBpc0NhbmNlbCBmcm9tICcuLi9jYW5jZWwvaXNDYW5jZWwuanMnO1xuaW1wb3J0IGRlZmF1bHRzIGZyb20gJy4uL2RlZmF1bHRzL2luZGV4LmpzJztcbmltcG9ydCBDYW5jZWxlZEVycm9yIGZyb20gJy4uL2NhbmNlbC9DYW5jZWxlZEVycm9yLmpzJztcbmltcG9ydCBBeGlvc0hlYWRlcnMgZnJvbSAnLi4vY29yZS9BeGlvc0hlYWRlcnMuanMnO1xuaW1wb3J0IGFkYXB0ZXJzIGZyb20gXCIuLi9hZGFwdGVycy9hZGFwdGVycy5qc1wiO1xuXG4vKipcbiAqIFRocm93cyBhIGBDYW5jZWxlZEVycm9yYCBpZiBjYW5jZWxsYXRpb24gaGFzIGJlZW4gcmVxdWVzdGVkLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgVGhlIGNvbmZpZyB0aGF0IGlzIHRvIGJlIHVzZWQgZm9yIHRoZSByZXF1ZXN0XG4gKlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIHRocm93SWZDYW5jZWxsYXRpb25SZXF1ZXN0ZWQoY29uZmlnKSB7XG4gIGlmIChjb25maWcuY2FuY2VsVG9rZW4pIHtcbiAgICBjb25maWcuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpO1xuICB9XG5cbiAgaWYgKGNvbmZpZy5zaWduYWwgJiYgY29uZmlnLnNpZ25hbC5hYm9ydGVkKSB7XG4gICAgdGhyb3cgbmV3IENhbmNlbGVkRXJyb3IobnVsbCwgY29uZmlnKTtcbiAgfVxufVxuXG4vKipcbiAqIERpc3BhdGNoIGEgcmVxdWVzdCB0byB0aGUgc2VydmVyIHVzaW5nIHRoZSBjb25maWd1cmVkIGFkYXB0ZXIuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGNvbmZpZyBUaGUgY29uZmlnIHRoYXQgaXMgdG8gYmUgdXNlZCBmb3IgdGhlIHJlcXVlc3RcbiAqXG4gKiBAcmV0dXJucyB7UHJvbWlzZX0gVGhlIFByb21pc2UgdG8gYmUgZnVsZmlsbGVkXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRpc3BhdGNoUmVxdWVzdChjb25maWcpIHtcbiAgdGhyb3dJZkNhbmNlbGxhdGlvblJlcXVlc3RlZChjb25maWcpO1xuXG4gIGNvbmZpZy5oZWFkZXJzID0gQXhpb3NIZWFkZXJzLmZyb20oY29uZmlnLmhlYWRlcnMpO1xuXG4gIC8vIFRyYW5zZm9ybSByZXF1ZXN0IGRhdGFcbiAgY29uZmlnLmRhdGEgPSB0cmFuc2Zvcm1EYXRhLmNhbGwoXG4gICAgY29uZmlnLFxuICAgIGNvbmZpZy50cmFuc2Zvcm1SZXF1ZXN0XG4gICk7XG5cbiAgaWYgKFsncG9zdCcsICdwdXQnLCAncGF0Y2gnXS5pbmRleE9mKGNvbmZpZy5tZXRob2QpICE9PSAtMSkge1xuICAgIGNvbmZpZy5oZWFkZXJzLnNldENvbnRlbnRUeXBlKCdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLCBmYWxzZSk7XG4gIH1cblxuICBjb25zdCBhZGFwdGVyID0gYWRhcHRlcnMuZ2V0QWRhcHRlcihjb25maWcuYWRhcHRlciB8fCBkZWZhdWx0cy5hZGFwdGVyKTtcblxuICByZXR1cm4gYWRhcHRlcihjb25maWcpLnRoZW4oZnVuY3Rpb24gb25BZGFwdGVyUmVzb2x1dGlvbihyZXNwb25zZSkge1xuICAgIHRocm93SWZDYW5jZWxsYXRpb25SZXF1ZXN0ZWQoY29uZmlnKTtcblxuICAgIC8vIFRyYW5zZm9ybSByZXNwb25zZSBkYXRhXG4gICAgcmVzcG9uc2UuZGF0YSA9IHRyYW5zZm9ybURhdGEuY2FsbChcbiAgICAgIGNvbmZpZyxcbiAgICAgIGNvbmZpZy50cmFuc2Zvcm1SZXNwb25zZSxcbiAgICAgIHJlc3BvbnNlXG4gICAgKTtcblxuICAgIHJlc3BvbnNlLmhlYWRlcnMgPSBBeGlvc0hlYWRlcnMuZnJvbShyZXNwb25zZS5oZWFkZXJzKTtcblxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfSwgZnVuY3Rpb24gb25BZGFwdGVyUmVqZWN0aW9uKHJlYXNvbikge1xuICAgIGlmICghaXNDYW5jZWwocmVhc29uKSkge1xuICAgICAgdGhyb3dJZkNhbmNlbGxhdGlvblJlcXVlc3RlZChjb25maWcpO1xuXG4gICAgICAvLyBUcmFuc2Zvcm0gcmVzcG9uc2UgZGF0YVxuICAgICAgaWYgKHJlYXNvbiAmJiByZWFzb24ucmVzcG9uc2UpIHtcbiAgICAgICAgcmVhc29uLnJlc3BvbnNlLmRhdGEgPSB0cmFuc2Zvcm1EYXRhLmNhbGwoXG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIGNvbmZpZy50cmFuc2Zvcm1SZXNwb25zZSxcbiAgICAgICAgICByZWFzb24ucmVzcG9uc2VcbiAgICAgICAgKTtcbiAgICAgICAgcmVhc29uLnJlc3BvbnNlLmhlYWRlcnMgPSBBeGlvc0hlYWRlcnMuZnJvbShyZWFzb24ucmVzcG9uc2UuaGVhZGVycyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHJlYXNvbik7XG4gIH0pO1xufVxuIiwiZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBcIjEuNy45XCI7IiwiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQge1ZFUlNJT059IGZyb20gJy4uL2Vudi9kYXRhLmpzJztcbmltcG9ydCBBeGlvc0Vycm9yIGZyb20gJy4uL2NvcmUvQXhpb3NFcnJvci5qcyc7XG5cbmNvbnN0IHZhbGlkYXRvcnMgPSB7fTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcblsnb2JqZWN0JywgJ2Jvb2xlYW4nLCAnbnVtYmVyJywgJ2Z1bmN0aW9uJywgJ3N0cmluZycsICdzeW1ib2wnXS5mb3JFYWNoKCh0eXBlLCBpKSA9PiB7XG4gIHZhbGlkYXRvcnNbdHlwZV0gPSBmdW5jdGlvbiB2YWxpZGF0b3IodGhpbmcpIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaW5nID09PSB0eXBlIHx8ICdhJyArIChpIDwgMSA/ICduICcgOiAnICcpICsgdHlwZTtcbiAgfTtcbn0pO1xuXG5jb25zdCBkZXByZWNhdGVkV2FybmluZ3MgPSB7fTtcblxuLyoqXG4gKiBUcmFuc2l0aW9uYWwgb3B0aW9uIHZhbGlkYXRvclxuICpcbiAqIEBwYXJhbSB7ZnVuY3Rpb258Ym9vbGVhbj99IHZhbGlkYXRvciAtIHNldCB0byBmYWxzZSBpZiB0aGUgdHJhbnNpdGlvbmFsIG9wdGlvbiBoYXMgYmVlbiByZW1vdmVkXG4gKiBAcGFyYW0ge3N0cmluZz99IHZlcnNpb24gLSBkZXByZWNhdGVkIHZlcnNpb24gLyByZW1vdmVkIHNpbmNlIHZlcnNpb25cbiAqIEBwYXJhbSB7c3RyaW5nP30gbWVzc2FnZSAtIHNvbWUgbWVzc2FnZSB3aXRoIGFkZGl0aW9uYWwgaW5mb1xuICpcbiAqIEByZXR1cm5zIHtmdW5jdGlvbn1cbiAqL1xudmFsaWRhdG9ycy50cmFuc2l0aW9uYWwgPSBmdW5jdGlvbiB0cmFuc2l0aW9uYWwodmFsaWRhdG9yLCB2ZXJzaW9uLCBtZXNzYWdlKSB7XG4gIGZ1bmN0aW9uIGZvcm1hdE1lc3NhZ2Uob3B0LCBkZXNjKSB7XG4gICAgcmV0dXJuICdbQXhpb3MgdicgKyBWRVJTSU9OICsgJ10gVHJhbnNpdGlvbmFsIG9wdGlvbiBcXCcnICsgb3B0ICsgJ1xcJycgKyBkZXNjICsgKG1lc3NhZ2UgPyAnLiAnICsgbWVzc2FnZSA6ICcnKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG4gIHJldHVybiAodmFsdWUsIG9wdCwgb3B0cykgPT4ge1xuICAgIGlmICh2YWxpZGF0b3IgPT09IGZhbHNlKSB7XG4gICAgICB0aHJvdyBuZXcgQXhpb3NFcnJvcihcbiAgICAgICAgZm9ybWF0TWVzc2FnZShvcHQsICcgaGFzIGJlZW4gcmVtb3ZlZCcgKyAodmVyc2lvbiA/ICcgaW4gJyArIHZlcnNpb24gOiAnJykpLFxuICAgICAgICBBeGlvc0Vycm9yLkVSUl9ERVBSRUNBVEVEXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh2ZXJzaW9uICYmICFkZXByZWNhdGVkV2FybmluZ3Nbb3B0XSkge1xuICAgICAgZGVwcmVjYXRlZFdhcm5pbmdzW29wdF0gPSB0cnVlO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgZm9ybWF0TWVzc2FnZShcbiAgICAgICAgICBvcHQsXG4gICAgICAgICAgJyBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYnICsgdmVyc2lvbiArICcgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUnXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRvciA/IHZhbGlkYXRvcih2YWx1ZSwgb3B0LCBvcHRzKSA6IHRydWU7XG4gIH07XG59O1xuXG52YWxpZGF0b3JzLnNwZWxsaW5nID0gZnVuY3Rpb24gc3BlbGxpbmcoY29ycmVjdFNwZWxsaW5nKSB7XG4gIHJldHVybiAodmFsdWUsIG9wdCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS53YXJuKGAke29wdH0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHtjb3JyZWN0U3BlbGxpbmd9YCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG5cbi8qKlxuICogQXNzZXJ0IG9iamVjdCdzIHByb3BlcnRpZXMgdHlwZVxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zXG4gKiBAcGFyYW0ge29iamVjdH0gc2NoZW1hXG4gKiBAcGFyYW0ge2Jvb2xlYW4/fSBhbGxvd1Vua25vd25cbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0fVxuICovXG5cbmZ1bmN0aW9uIGFzc2VydE9wdGlvbnMob3B0aW9ucywgc2NoZW1hLCBhbGxvd1Vua25vd24pIHtcbiAgaWYgKHR5cGVvZiBvcHRpb25zICE9PSAnb2JqZWN0Jykge1xuICAgIHRocm93IG5ldyBBeGlvc0Vycm9yKCdvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0JywgQXhpb3NFcnJvci5FUlJfQkFEX09QVElPTl9WQUxVRSk7XG4gIH1cbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9wdGlvbnMpO1xuICBsZXQgaSA9IGtleXMubGVuZ3RoO1xuICB3aGlsZSAoaS0tID4gMCkge1xuICAgIGNvbnN0IG9wdCA9IGtleXNbaV07XG4gICAgY29uc3QgdmFsaWRhdG9yID0gc2NoZW1hW29wdF07XG4gICAgaWYgKHZhbGlkYXRvcikge1xuICAgICAgY29uc3QgdmFsdWUgPSBvcHRpb25zW29wdF07XG4gICAgICBjb25zdCByZXN1bHQgPSB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbGlkYXRvcih2YWx1ZSwgb3B0LCBvcHRpb25zKTtcbiAgICAgIGlmIChyZXN1bHQgIT09IHRydWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEF4aW9zRXJyb3IoJ29wdGlvbiAnICsgb3B0ICsgJyBtdXN0IGJlICcgKyByZXN1bHQsIEF4aW9zRXJyb3IuRVJSX0JBRF9PUFRJT05fVkFMVUUpO1xuICAgICAgfVxuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChhbGxvd1Vua25vd24gIT09IHRydWUpIHtcbiAgICAgIHRocm93IG5ldyBBeGlvc0Vycm9yKCdVbmtub3duIG9wdGlvbiAnICsgb3B0LCBBeGlvc0Vycm9yLkVSUl9CQURfT1BUSU9OKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBhc3NlcnRPcHRpb25zLFxuICB2YWxpZGF0b3JzXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi8uLi91dGlscy5qcyc7XG5pbXBvcnQgYnVpbGRVUkwgZnJvbSAnLi4vaGVscGVycy9idWlsZFVSTC5qcyc7XG5pbXBvcnQgSW50ZXJjZXB0b3JNYW5hZ2VyIGZyb20gJy4vSW50ZXJjZXB0b3JNYW5hZ2VyLmpzJztcbmltcG9ydCBkaXNwYXRjaFJlcXVlc3QgZnJvbSAnLi9kaXNwYXRjaFJlcXVlc3QuanMnO1xuaW1wb3J0IG1lcmdlQ29uZmlnIGZyb20gJy4vbWVyZ2VDb25maWcuanMnO1xuaW1wb3J0IGJ1aWxkRnVsbFBhdGggZnJvbSAnLi9idWlsZEZ1bGxQYXRoLmpzJztcbmltcG9ydCB2YWxpZGF0b3IgZnJvbSAnLi4vaGVscGVycy92YWxpZGF0b3IuanMnO1xuaW1wb3J0IEF4aW9zSGVhZGVycyBmcm9tICcuL0F4aW9zSGVhZGVycy5qcyc7XG5cbmNvbnN0IHZhbGlkYXRvcnMgPSB2YWxpZGF0b3IudmFsaWRhdG9ycztcblxuLyoqXG4gKiBDcmVhdGUgYSBuZXcgaW5zdGFuY2Ugb2YgQXhpb3NcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gaW5zdGFuY2VDb25maWcgVGhlIGRlZmF1bHQgY29uZmlnIGZvciB0aGUgaW5zdGFuY2VcbiAqXG4gKiBAcmV0dXJuIHtBeGlvc30gQSBuZXcgaW5zdGFuY2Ugb2YgQXhpb3NcbiAqL1xuY2xhc3MgQXhpb3Mge1xuICBjb25zdHJ1Y3RvcihpbnN0YW5jZUNvbmZpZykge1xuICAgIHRoaXMuZGVmYXVsdHMgPSBpbnN0YW5jZUNvbmZpZztcbiAgICB0aGlzLmludGVyY2VwdG9ycyA9IHtcbiAgICAgIHJlcXVlc3Q6IG5ldyBJbnRlcmNlcHRvck1hbmFnZXIoKSxcbiAgICAgIHJlc3BvbnNlOiBuZXcgSW50ZXJjZXB0b3JNYW5hZ2VyKClcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3BhdGNoIGEgcmVxdWVzdFxuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGNvbmZpZ09yVXJsIFRoZSBjb25maWcgc3BlY2lmaWMgZm9yIHRoaXMgcmVxdWVzdCAobWVyZ2VkIHdpdGggdGhpcy5kZWZhdWx0cylcbiAgICogQHBhcmFtIHs/T2JqZWN0fSBjb25maWdcbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2V9IFRoZSBQcm9taXNlIHRvIGJlIGZ1bGZpbGxlZFxuICAgKi9cbiAgYXN5bmMgcmVxdWVzdChjb25maWdPclVybCwgY29uZmlnKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KGNvbmZpZ09yVXJsLCBjb25maWcpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIGxldCBkdW1teSA9IHt9O1xuXG4gICAgICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlID8gRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoZHVtbXkpIDogKGR1bW15ID0gbmV3IEVycm9yKCkpO1xuXG4gICAgICAgIC8vIHNsaWNlIG9mZiB0aGUgRXJyb3I6IC4uLiBsaW5lXG4gICAgICAgIGNvbnN0IHN0YWNrID0gZHVtbXkuc3RhY2sgPyBkdW1teS5zdGFjay5yZXBsYWNlKC9eLitcXG4vLCAnJykgOiAnJztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAoIWVyci5zdGFjaykge1xuICAgICAgICAgICAgZXJyLnN0YWNrID0gc3RhY2s7XG4gICAgICAgICAgICAvLyBtYXRjaCB3aXRob3V0IHRoZSAyIHRvcCBzdGFjayBsaW5lc1xuICAgICAgICAgIH0gZWxzZSBpZiAoc3RhY2sgJiYgIVN0cmluZyhlcnIuc3RhY2spLmVuZHNXaXRoKHN0YWNrLnJlcGxhY2UoL14uK1xcbi4rXFxuLywgJycpKSkge1xuICAgICAgICAgICAgZXJyLnN0YWNrICs9ICdcXG4nICsgc3RhY2tcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAvLyBpZ25vcmUgdGhlIGNhc2Ugd2hlcmUgXCJzdGFja1wiIGlzIGFuIHVuLXdyaXRhYmxlIHByb3BlcnR5XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxuXG4gIF9yZXF1ZXN0KGNvbmZpZ09yVXJsLCBjb25maWcpIHtcbiAgICAvKmVzbGludCBuby1wYXJhbS1yZWFzc2lnbjowKi9cbiAgICAvLyBBbGxvdyBmb3IgYXhpb3MoJ2V4YW1wbGUvdXJsJ1ssIGNvbmZpZ10pIGEgbGEgZmV0Y2ggQVBJXG4gICAgaWYgKHR5cGVvZiBjb25maWdPclVybCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbmZpZyA9IGNvbmZpZyB8fCB7fTtcbiAgICAgIGNvbmZpZy51cmwgPSBjb25maWdPclVybDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZmlnID0gY29uZmlnT3JVcmwgfHwge307XG4gICAgfVxuXG4gICAgY29uZmlnID0gbWVyZ2VDb25maWcodGhpcy5kZWZhdWx0cywgY29uZmlnKTtcblxuICAgIGNvbnN0IHt0cmFuc2l0aW9uYWwsIHBhcmFtc1NlcmlhbGl6ZXIsIGhlYWRlcnN9ID0gY29uZmlnO1xuXG4gICAgaWYgKHRyYW5zaXRpb25hbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YWxpZGF0b3IuYXNzZXJ0T3B0aW9ucyh0cmFuc2l0aW9uYWwsIHtcbiAgICAgICAgc2lsZW50SlNPTlBhcnNpbmc6IHZhbGlkYXRvcnMudHJhbnNpdGlvbmFsKHZhbGlkYXRvcnMuYm9vbGVhbiksXG4gICAgICAgIGZvcmNlZEpTT05QYXJzaW5nOiB2YWxpZGF0b3JzLnRyYW5zaXRpb25hbCh2YWxpZGF0b3JzLmJvb2xlYW4pLFxuICAgICAgICBjbGFyaWZ5VGltZW91dEVycm9yOiB2YWxpZGF0b3JzLnRyYW5zaXRpb25hbCh2YWxpZGF0b3JzLmJvb2xlYW4pXG4gICAgICB9LCBmYWxzZSk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtc1NlcmlhbGl6ZXIgIT0gbnVsbCkge1xuICAgICAgaWYgKHV0aWxzLmlzRnVuY3Rpb24ocGFyYW1zU2VyaWFsaXplcikpIHtcbiAgICAgICAgY29uZmlnLnBhcmFtc1NlcmlhbGl6ZXIgPSB7XG4gICAgICAgICAgc2VyaWFsaXplOiBwYXJhbXNTZXJpYWxpemVyXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbGlkYXRvci5hc3NlcnRPcHRpb25zKHBhcmFtc1NlcmlhbGl6ZXIsIHtcbiAgICAgICAgICBlbmNvZGU6IHZhbGlkYXRvcnMuZnVuY3Rpb24sXG4gICAgICAgICAgc2VyaWFsaXplOiB2YWxpZGF0b3JzLmZ1bmN0aW9uXG4gICAgICAgIH0sIHRydWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhbGlkYXRvci5hc3NlcnRPcHRpb25zKGNvbmZpZywge1xuICAgICAgYmFzZVVybDogdmFsaWRhdG9ycy5zcGVsbGluZygnYmFzZVVSTCcpLFxuICAgICAgd2l0aFhzcmZUb2tlbjogdmFsaWRhdG9ycy5zcGVsbGluZygnd2l0aFhTUkZUb2tlbicpXG4gICAgfSwgdHJ1ZSk7XG5cbiAgICAvLyBTZXQgY29uZmlnLm1ldGhvZFxuICAgIGNvbmZpZy5tZXRob2QgPSAoY29uZmlnLm1ldGhvZCB8fCB0aGlzLmRlZmF1bHRzLm1ldGhvZCB8fCAnZ2V0JykudG9Mb3dlckNhc2UoKTtcblxuICAgIC8vIEZsYXR0ZW4gaGVhZGVyc1xuICAgIGxldCBjb250ZXh0SGVhZGVycyA9IGhlYWRlcnMgJiYgdXRpbHMubWVyZ2UoXG4gICAgICBoZWFkZXJzLmNvbW1vbixcbiAgICAgIGhlYWRlcnNbY29uZmlnLm1ldGhvZF1cbiAgICApO1xuXG4gICAgaGVhZGVycyAmJiB1dGlscy5mb3JFYWNoKFxuICAgICAgWydkZWxldGUnLCAnZ2V0JywgJ2hlYWQnLCAncG9zdCcsICdwdXQnLCAncGF0Y2gnLCAnY29tbW9uJ10sXG4gICAgICAobWV0aG9kKSA9PiB7XG4gICAgICAgIGRlbGV0ZSBoZWFkZXJzW21ldGhvZF07XG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbmZpZy5oZWFkZXJzID0gQXhpb3NIZWFkZXJzLmNvbmNhdChjb250ZXh0SGVhZGVycywgaGVhZGVycyk7XG5cbiAgICAvLyBmaWx0ZXIgb3V0IHNraXBwZWQgaW50ZXJjZXB0b3JzXG4gICAgY29uc3QgcmVxdWVzdEludGVyY2VwdG9yQ2hhaW4gPSBbXTtcbiAgICBsZXQgc3luY2hyb25vdXNSZXF1ZXN0SW50ZXJjZXB0b3JzID0gdHJ1ZTtcbiAgICB0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24gdW5zaGlmdFJlcXVlc3RJbnRlcmNlcHRvcnMoaW50ZXJjZXB0b3IpIHtcbiAgICAgIGlmICh0eXBlb2YgaW50ZXJjZXB0b3IucnVuV2hlbiA9PT0gJ2Z1bmN0aW9uJyAmJiBpbnRlcmNlcHRvci5ydW5XaGVuKGNvbmZpZykgPT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc3luY2hyb25vdXNSZXF1ZXN0SW50ZXJjZXB0b3JzID0gc3luY2hyb25vdXNSZXF1ZXN0SW50ZXJjZXB0b3JzICYmIGludGVyY2VwdG9yLnN5bmNocm9ub3VzO1xuXG4gICAgICByZXF1ZXN0SW50ZXJjZXB0b3JDaGFpbi51bnNoaWZ0KGludGVyY2VwdG9yLmZ1bGZpbGxlZCwgaW50ZXJjZXB0b3IucmVqZWN0ZWQpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzcG9uc2VJbnRlcmNlcHRvckNoYWluID0gW107XG4gICAgdGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbiBwdXNoUmVzcG9uc2VJbnRlcmNlcHRvcnMoaW50ZXJjZXB0b3IpIHtcbiAgICAgIHJlc3BvbnNlSW50ZXJjZXB0b3JDaGFpbi5wdXNoKGludGVyY2VwdG9yLmZ1bGZpbGxlZCwgaW50ZXJjZXB0b3IucmVqZWN0ZWQpO1xuICAgIH0pO1xuXG4gICAgbGV0IHByb21pc2U7XG4gICAgbGV0IGkgPSAwO1xuICAgIGxldCBsZW47XG5cbiAgICBpZiAoIXN5bmNocm9ub3VzUmVxdWVzdEludGVyY2VwdG9ycykge1xuICAgICAgY29uc3QgY2hhaW4gPSBbZGlzcGF0Y2hSZXF1ZXN0LmJpbmQodGhpcyksIHVuZGVmaW5lZF07XG4gICAgICBjaGFpbi51bnNoaWZ0LmFwcGx5KGNoYWluLCByZXF1ZXN0SW50ZXJjZXB0b3JDaGFpbik7XG4gICAgICBjaGFpbi5wdXNoLmFwcGx5KGNoYWluLCByZXNwb25zZUludGVyY2VwdG9yQ2hhaW4pO1xuICAgICAgbGVuID0gY2hhaW4ubGVuZ3RoO1xuXG4gICAgICBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKGNvbmZpZyk7XG5cbiAgICAgIHdoaWxlIChpIDwgbGVuKSB7XG4gICAgICAgIHByb21pc2UgPSBwcm9taXNlLnRoZW4oY2hhaW5baSsrXSwgY2hhaW5baSsrXSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH1cblxuICAgIGxlbiA9IHJlcXVlc3RJbnRlcmNlcHRvckNoYWluLmxlbmd0aDtcblxuICAgIGxldCBuZXdDb25maWcgPSBjb25maWc7XG5cbiAgICBpID0gMDtcblxuICAgIHdoaWxlIChpIDwgbGVuKSB7XG4gICAgICBjb25zdCBvbkZ1bGZpbGxlZCA9IHJlcXVlc3RJbnRlcmNlcHRvckNoYWluW2krK107XG4gICAgICBjb25zdCBvblJlamVjdGVkID0gcmVxdWVzdEludGVyY2VwdG9yQ2hhaW5baSsrXTtcbiAgICAgIHRyeSB7XG4gICAgICAgIG5ld0NvbmZpZyA9IG9uRnVsZmlsbGVkKG5ld0NvbmZpZyk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBvblJlamVjdGVkLmNhbGwodGhpcywgZXJyb3IpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcHJvbWlzZSA9IGRpc3BhdGNoUmVxdWVzdC5jYWxsKHRoaXMsIG5ld0NvbmZpZyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgfVxuXG4gICAgaSA9IDA7XG4gICAgbGVuID0gcmVzcG9uc2VJbnRlcmNlcHRvckNoYWluLmxlbmd0aDtcblxuICAgIHdoaWxlIChpIDwgbGVuKSB7XG4gICAgICBwcm9taXNlID0gcHJvbWlzZS50aGVuKHJlc3BvbnNlSW50ZXJjZXB0b3JDaGFpbltpKytdLCByZXNwb25zZUludGVyY2VwdG9yQ2hhaW5baSsrXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb21pc2U7XG4gIH1cblxuICBnZXRVcmkoY29uZmlnKSB7XG4gICAgY29uZmlnID0gbWVyZ2VDb25maWcodGhpcy5kZWZhdWx0cywgY29uZmlnKTtcbiAgICBjb25zdCBmdWxsUGF0aCA9IGJ1aWxkRnVsbFBhdGgoY29uZmlnLmJhc2VVUkwsIGNvbmZpZy51cmwpO1xuICAgIHJldHVybiBidWlsZFVSTChmdWxsUGF0aCwgY29uZmlnLnBhcmFtcywgY29uZmlnLnBhcmFtc1NlcmlhbGl6ZXIpO1xuICB9XG59XG5cbi8vIFByb3ZpZGUgYWxpYXNlcyBmb3Igc3VwcG9ydGVkIHJlcXVlc3QgbWV0aG9kc1xudXRpbHMuZm9yRWFjaChbJ2RlbGV0ZScsICdnZXQnLCAnaGVhZCcsICdvcHRpb25zJ10sIGZ1bmN0aW9uIGZvckVhY2hNZXRob2ROb0RhdGEobWV0aG9kKSB7XG4gIC8qZXNsaW50IGZ1bmMtbmFtZXM6MCovXG4gIEF4aW9zLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24odXJsLCBjb25maWcpIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KG1lcmdlQ29uZmlnKGNvbmZpZyB8fCB7fSwge1xuICAgICAgbWV0aG9kLFxuICAgICAgdXJsLFxuICAgICAgZGF0YTogKGNvbmZpZyB8fCB7fSkuZGF0YVxuICAgIH0pKTtcbiAgfTtcbn0pO1xuXG51dGlscy5mb3JFYWNoKFsncG9zdCcsICdwdXQnLCAncGF0Y2gnXSwgZnVuY3Rpb24gZm9yRWFjaE1ldGhvZFdpdGhEYXRhKG1ldGhvZCkge1xuICAvKmVzbGludCBmdW5jLW5hbWVzOjAqL1xuXG4gIGZ1bmN0aW9uIGdlbmVyYXRlSFRUUE1ldGhvZChpc0Zvcm0pIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gaHR0cE1ldGhvZCh1cmwsIGRhdGEsIGNvbmZpZykge1xuICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdChtZXJnZUNvbmZpZyhjb25maWcgfHwge30sIHtcbiAgICAgICAgbWV0aG9kLFxuICAgICAgICBoZWFkZXJzOiBpc0Zvcm0gPyB7XG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdtdWx0aXBhcnQvZm9ybS1kYXRhJ1xuICAgICAgICB9IDoge30sXG4gICAgICAgIHVybCxcbiAgICAgICAgZGF0YVxuICAgICAgfSkpO1xuICAgIH07XG4gIH1cblxuICBBeGlvcy5wcm90b3R5cGVbbWV0aG9kXSA9IGdlbmVyYXRlSFRUUE1ldGhvZCgpO1xuXG4gIEF4aW9zLnByb3RvdHlwZVttZXRob2QgKyAnRm9ybSddID0gZ2VuZXJhdGVIVFRQTWV0aG9kKHRydWUpO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IEF4aW9zO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgQ2FuY2VsZWRFcnJvciBmcm9tICcuL0NhbmNlbGVkRXJyb3IuanMnO1xuXG4vKipcbiAqIEEgYENhbmNlbFRva2VuYCBpcyBhbiBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byByZXF1ZXN0IGNhbmNlbGxhdGlvbiBvZiBhbiBvcGVyYXRpb24uXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZXhlY3V0b3IgVGhlIGV4ZWN1dG9yIGZ1bmN0aW9uLlxuICpcbiAqIEByZXR1cm5zIHtDYW5jZWxUb2tlbn1cbiAqL1xuY2xhc3MgQ2FuY2VsVG9rZW4ge1xuICBjb25zdHJ1Y3RvcihleGVjdXRvcikge1xuICAgIGlmICh0eXBlb2YgZXhlY3V0b3IgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2V4ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi4nKTtcbiAgICB9XG5cbiAgICBsZXQgcmVzb2x2ZVByb21pc2U7XG5cbiAgICB0aGlzLnByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiBwcm9taXNlRXhlY3V0b3IocmVzb2x2ZSkge1xuICAgICAgcmVzb2x2ZVByb21pc2UgPSByZXNvbHZlO1xuICAgIH0pO1xuXG4gICAgY29uc3QgdG9rZW4gPSB0aGlzO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcbiAgICB0aGlzLnByb21pc2UudGhlbihjYW5jZWwgPT4ge1xuICAgICAgaWYgKCF0b2tlbi5fbGlzdGVuZXJzKSByZXR1cm47XG5cbiAgICAgIGxldCBpID0gdG9rZW4uX2xpc3RlbmVycy5sZW5ndGg7XG5cbiAgICAgIHdoaWxlIChpLS0gPiAwKSB7XG4gICAgICAgIHRva2VuLl9saXN0ZW5lcnNbaV0oY2FuY2VsKTtcbiAgICAgIH1cbiAgICAgIHRva2VuLl9saXN0ZW5lcnMgPSBudWxsO1xuICAgIH0pO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcbiAgICB0aGlzLnByb21pc2UudGhlbiA9IG9uZnVsZmlsbGVkID0+IHtcbiAgICAgIGxldCBfcmVzb2x2ZTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG4gICAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgIHRva2VuLnN1YnNjcmliZShyZXNvbHZlKTtcbiAgICAgICAgX3Jlc29sdmUgPSByZXNvbHZlO1xuICAgICAgfSkudGhlbihvbmZ1bGZpbGxlZCk7XG5cbiAgICAgIHByb21pc2UuY2FuY2VsID0gZnVuY3Rpb24gcmVqZWN0KCkge1xuICAgICAgICB0b2tlbi51bnN1YnNjcmliZShfcmVzb2x2ZSk7XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICB9O1xuXG4gICAgZXhlY3V0b3IoZnVuY3Rpb24gY2FuY2VsKG1lc3NhZ2UsIGNvbmZpZywgcmVxdWVzdCkge1xuICAgICAgaWYgKHRva2VuLnJlYXNvbikge1xuICAgICAgICAvLyBDYW5jZWxsYXRpb24gaGFzIGFscmVhZHkgYmVlbiByZXF1ZXN0ZWRcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0b2tlbi5yZWFzb24gPSBuZXcgQ2FuY2VsZWRFcnJvcihtZXNzYWdlLCBjb25maWcsIHJlcXVlc3QpO1xuICAgICAgcmVzb2x2ZVByb21pc2UodG9rZW4ucmVhc29uKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaHJvd3MgYSBgQ2FuY2VsZWRFcnJvcmAgaWYgY2FuY2VsbGF0aW9uIGhhcyBiZWVuIHJlcXVlc3RlZC5cbiAgICovXG4gIHRocm93SWZSZXF1ZXN0ZWQoKSB7XG4gICAgaWYgKHRoaXMucmVhc29uKSB7XG4gICAgICB0aHJvdyB0aGlzLnJlYXNvbjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlIHRvIHRoZSBjYW5jZWwgc2lnbmFsXG4gICAqL1xuXG4gIHN1YnNjcmliZShsaXN0ZW5lcikge1xuICAgIGlmICh0aGlzLnJlYXNvbikge1xuICAgICAgbGlzdGVuZXIodGhpcy5yZWFzb24pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9saXN0ZW5lcnMpIHtcbiAgICAgIHRoaXMuX2xpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbGlzdGVuZXJzID0gW2xpc3RlbmVyXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgZnJvbSB0aGUgY2FuY2VsIHNpZ25hbFxuICAgKi9cblxuICB1bnN1YnNjcmliZShsaXN0ZW5lcikge1xuICAgIGlmICghdGhpcy5fbGlzdGVuZXJzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fbGlzdGVuZXJzLmluZGV4T2YobGlzdGVuZXIpO1xuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMuX2xpc3RlbmVycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgfVxuXG4gIHRvQWJvcnRTaWduYWwoKSB7XG4gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICAgIGNvbnN0IGFib3J0ID0gKGVycikgPT4ge1xuICAgICAgY29udHJvbGxlci5hYm9ydChlcnIpO1xuICAgIH07XG5cbiAgICB0aGlzLnN1YnNjcmliZShhYm9ydCk7XG5cbiAgICBjb250cm9sbGVyLnNpZ25hbC51bnN1YnNjcmliZSA9ICgpID0+IHRoaXMudW5zdWJzY3JpYmUoYWJvcnQpO1xuXG4gICAgcmV0dXJuIGNvbnRyb2xsZXIuc2lnbmFsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JqZWN0IHRoYXQgY29udGFpbnMgYSBuZXcgYENhbmNlbFRva2VuYCBhbmQgYSBmdW5jdGlvbiB0aGF0LCB3aGVuIGNhbGxlZCxcbiAgICogY2FuY2VscyB0aGUgYENhbmNlbFRva2VuYC5cbiAgICovXG4gIHN0YXRpYyBzb3VyY2UoKSB7XG4gICAgbGV0IGNhbmNlbDtcbiAgICBjb25zdCB0b2tlbiA9IG5ldyBDYW5jZWxUb2tlbihmdW5jdGlvbiBleGVjdXRvcihjKSB7XG4gICAgICBjYW5jZWwgPSBjO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICB0b2tlbixcbiAgICAgIGNhbmNlbFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ2FuY2VsVG9rZW47XG4iLCIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogU3ludGFjdGljIHN1Z2FyIGZvciBpbnZva2luZyBhIGZ1bmN0aW9uIGFuZCBleHBhbmRpbmcgYW4gYXJyYXkgZm9yIGFyZ3VtZW50cy5cbiAqXG4gKiBDb21tb24gdXNlIGNhc2Ugd291bGQgYmUgdG8gdXNlIGBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHlgLlxuICpcbiAqICBgYGBqc1xuICogIGZ1bmN0aW9uIGYoeCwgeSwgeikge31cbiAqICB2YXIgYXJncyA9IFsxLCAyLCAzXTtcbiAqICBmLmFwcGx5KG51bGwsIGFyZ3MpO1xuICogIGBgYFxuICpcbiAqIFdpdGggYHNwcmVhZGAgdGhpcyBleGFtcGxlIGNhbiBiZSByZS13cml0dGVuLlxuICpcbiAqICBgYGBqc1xuICogIHNwcmVhZChmdW5jdGlvbih4LCB5LCB6KSB7fSkoWzEsIDIsIDNdKTtcbiAqICBgYGBcbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuICpcbiAqIEByZXR1cm5zIHtGdW5jdGlvbn1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc3ByZWFkKGNhbGxiYWNrKSB7XG4gIHJldHVybiBmdW5jdGlvbiB3cmFwKGFycikge1xuICAgIHJldHVybiBjYWxsYmFjay5hcHBseShudWxsLCBhcnIpO1xuICB9O1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi8uLi91dGlscy5qcyc7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwYXlsb2FkIGlzIGFuIGVycm9yIHRocm93biBieSBBeGlvc1xuICpcbiAqIEBwYXJhbSB7Kn0gcGF5bG9hZCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHRoZSBwYXlsb2FkIGlzIGFuIGVycm9yIHRocm93biBieSBBeGlvcywgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzQXhpb3NFcnJvcihwYXlsb2FkKSB7XG4gIHJldHVybiB1dGlscy5pc09iamVjdChwYXlsb2FkKSAmJiAocGF5bG9hZC5pc0F4aW9zRXJyb3IgPT09IHRydWUpO1xufVxuIiwiY29uc3QgSHR0cFN0YXR1c0NvZGUgPSB7XG4gIENvbnRpbnVlOiAxMDAsXG4gIFN3aXRjaGluZ1Byb3RvY29sczogMTAxLFxuICBQcm9jZXNzaW5nOiAxMDIsXG4gIEVhcmx5SGludHM6IDEwMyxcbiAgT2s6IDIwMCxcbiAgQ3JlYXRlZDogMjAxLFxuICBBY2NlcHRlZDogMjAyLFxuICBOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246IDIwMyxcbiAgTm9Db250ZW50OiAyMDQsXG4gIFJlc2V0Q29udGVudDogMjA1LFxuICBQYXJ0aWFsQ29udGVudDogMjA2LFxuICBNdWx0aVN0YXR1czogMjA3LFxuICBBbHJlYWR5UmVwb3J0ZWQ6IDIwOCxcbiAgSW1Vc2VkOiAyMjYsXG4gIE11bHRpcGxlQ2hvaWNlczogMzAwLFxuICBNb3ZlZFBlcm1hbmVudGx5OiAzMDEsXG4gIEZvdW5kOiAzMDIsXG4gIFNlZU90aGVyOiAzMDMsXG4gIE5vdE1vZGlmaWVkOiAzMDQsXG4gIFVzZVByb3h5OiAzMDUsXG4gIFVudXNlZDogMzA2LFxuICBUZW1wb3JhcnlSZWRpcmVjdDogMzA3LFxuICBQZXJtYW5lbnRSZWRpcmVjdDogMzA4LFxuICBCYWRSZXF1ZXN0OiA0MDAsXG4gIFVuYXV0aG9yaXplZDogNDAxLFxuICBQYXltZW50UmVxdWlyZWQ6IDQwMixcbiAgRm9yYmlkZGVuOiA0MDMsXG4gIE5vdEZvdW5kOiA0MDQsXG4gIE1ldGhvZE5vdEFsbG93ZWQ6IDQwNSxcbiAgTm90QWNjZXB0YWJsZTogNDA2LFxuICBQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6IDQwNyxcbiAgUmVxdWVzdFRpbWVvdXQ6IDQwOCxcbiAgQ29uZmxpY3Q6IDQwOSxcbiAgR29uZTogNDEwLFxuICBMZW5ndGhSZXF1aXJlZDogNDExLFxuICBQcmVjb25kaXRpb25GYWlsZWQ6IDQxMixcbiAgUGF5bG9hZFRvb0xhcmdlOiA0MTMsXG4gIFVyaVRvb0xvbmc6IDQxNCxcbiAgVW5zdXBwb3J0ZWRNZWRpYVR5cGU6IDQxNSxcbiAgUmFuZ2VOb3RTYXRpc2ZpYWJsZTogNDE2LFxuICBFeHBlY3RhdGlvbkZhaWxlZDogNDE3LFxuICBJbUFUZWFwb3Q6IDQxOCxcbiAgTWlzZGlyZWN0ZWRSZXF1ZXN0OiA0MjEsXG4gIFVucHJvY2Vzc2FibGVFbnRpdHk6IDQyMixcbiAgTG9ja2VkOiA0MjMsXG4gIEZhaWxlZERlcGVuZGVuY3k6IDQyNCxcbiAgVG9vRWFybHk6IDQyNSxcbiAgVXBncmFkZVJlcXVpcmVkOiA0MjYsXG4gIFByZWNvbmRpdGlvblJlcXVpcmVkOiA0MjgsXG4gIFRvb01hbnlSZXF1ZXN0czogNDI5LFxuICBSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6IDQzMSxcbiAgVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnM6IDQ1MSxcbiAgSW50ZXJuYWxTZXJ2ZXJFcnJvcjogNTAwLFxuICBOb3RJbXBsZW1lbnRlZDogNTAxLFxuICBCYWRHYXRld2F5OiA1MDIsXG4gIFNlcnZpY2VVbmF2YWlsYWJsZTogNTAzLFxuICBHYXRld2F5VGltZW91dDogNTA0LFxuICBIdHRwVmVyc2lvbk5vdFN1cHBvcnRlZDogNTA1LFxuICBWYXJpYW50QWxzb05lZ290aWF0ZXM6IDUwNixcbiAgSW5zdWZmaWNpZW50U3RvcmFnZTogNTA3LFxuICBMb29wRGV0ZWN0ZWQ6IDUwOCxcbiAgTm90RXh0ZW5kZWQ6IDUxMCxcbiAgTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6IDUxMSxcbn07XG5cbk9iamVjdC5lbnRyaWVzKEh0dHBTdGF0dXNDb2RlKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgSHR0cFN0YXR1c0NvZGVbdmFsdWVdID0ga2V5O1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IEh0dHBTdGF0dXNDb2RlO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscy5qcyc7XG5pbXBvcnQgYmluZCBmcm9tICcuL2hlbHBlcnMvYmluZC5qcyc7XG5pbXBvcnQgQXhpb3MgZnJvbSAnLi9jb3JlL0F4aW9zLmpzJztcbmltcG9ydCBtZXJnZUNvbmZpZyBmcm9tICcuL2NvcmUvbWVyZ2VDb25maWcuanMnO1xuaW1wb3J0IGRlZmF1bHRzIGZyb20gJy4vZGVmYXVsdHMvaW5kZXguanMnO1xuaW1wb3J0IGZvcm1EYXRhVG9KU09OIGZyb20gJy4vaGVscGVycy9mb3JtRGF0YVRvSlNPTi5qcyc7XG5pbXBvcnQgQ2FuY2VsZWRFcnJvciBmcm9tICcuL2NhbmNlbC9DYW5jZWxlZEVycm9yLmpzJztcbmltcG9ydCBDYW5jZWxUb2tlbiBmcm9tICcuL2NhbmNlbC9DYW5jZWxUb2tlbi5qcyc7XG5pbXBvcnQgaXNDYW5jZWwgZnJvbSAnLi9jYW5jZWwvaXNDYW5jZWwuanMnO1xuaW1wb3J0IHtWRVJTSU9OfSBmcm9tICcuL2Vudi9kYXRhLmpzJztcbmltcG9ydCB0b0Zvcm1EYXRhIGZyb20gJy4vaGVscGVycy90b0Zvcm1EYXRhLmpzJztcbmltcG9ydCBBeGlvc0Vycm9yIGZyb20gJy4vY29yZS9BeGlvc0Vycm9yLmpzJztcbmltcG9ydCBzcHJlYWQgZnJvbSAnLi9oZWxwZXJzL3NwcmVhZC5qcyc7XG5pbXBvcnQgaXNBeGlvc0Vycm9yIGZyb20gJy4vaGVscGVycy9pc0F4aW9zRXJyb3IuanMnO1xuaW1wb3J0IEF4aW9zSGVhZGVycyBmcm9tIFwiLi9jb3JlL0F4aW9zSGVhZGVycy5qc1wiO1xuaW1wb3J0IGFkYXB0ZXJzIGZyb20gJy4vYWRhcHRlcnMvYWRhcHRlcnMuanMnO1xuaW1wb3J0IEh0dHBTdGF0dXNDb2RlIGZyb20gJy4vaGVscGVycy9IdHRwU3RhdHVzQ29kZS5qcyc7XG5cbi8qKlxuICogQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEF4aW9zXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IGRlZmF1bHRDb25maWcgVGhlIGRlZmF1bHQgY29uZmlnIGZvciB0aGUgaW5zdGFuY2VcbiAqXG4gKiBAcmV0dXJucyB7QXhpb3N9IEEgbmV3IGluc3RhbmNlIG9mIEF4aW9zXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUluc3RhbmNlKGRlZmF1bHRDb25maWcpIHtcbiAgY29uc3QgY29udGV4dCA9IG5ldyBBeGlvcyhkZWZhdWx0Q29uZmlnKTtcbiAgY29uc3QgaW5zdGFuY2UgPSBiaW5kKEF4aW9zLnByb3RvdHlwZS5yZXF1ZXN0LCBjb250ZXh0KTtcblxuICAvLyBDb3B5IGF4aW9zLnByb3RvdHlwZSB0byBpbnN0YW5jZVxuICB1dGlscy5leHRlbmQoaW5zdGFuY2UsIEF4aW9zLnByb3RvdHlwZSwgY29udGV4dCwge2FsbE93bktleXM6IHRydWV9KTtcblxuICAvLyBDb3B5IGNvbnRleHQgdG8gaW5zdGFuY2VcbiAgdXRpbHMuZXh0ZW5kKGluc3RhbmNlLCBjb250ZXh0LCBudWxsLCB7YWxsT3duS2V5czogdHJ1ZX0pO1xuXG4gIC8vIEZhY3RvcnkgZm9yIGNyZWF0aW5nIG5ldyBpbnN0YW5jZXNcbiAgaW5zdGFuY2UuY3JlYXRlID0gZnVuY3Rpb24gY3JlYXRlKGluc3RhbmNlQ29uZmlnKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUluc3RhbmNlKG1lcmdlQ29uZmlnKGRlZmF1bHRDb25maWcsIGluc3RhbmNlQ29uZmlnKSk7XG4gIH07XG5cbiAgcmV0dXJuIGluc3RhbmNlO1xufVxuXG4vLyBDcmVhdGUgdGhlIGRlZmF1bHQgaW5zdGFuY2UgdG8gYmUgZXhwb3J0ZWRcbmNvbnN0IGF4aW9zID0gY3JlYXRlSW5zdGFuY2UoZGVmYXVsdHMpO1xuXG4vLyBFeHBvc2UgQXhpb3MgY2xhc3MgdG8gYWxsb3cgY2xhc3MgaW5oZXJpdGFuY2VcbmF4aW9zLkF4aW9zID0gQXhpb3M7XG5cbi8vIEV4cG9zZSBDYW5jZWwgJiBDYW5jZWxUb2tlblxuYXhpb3MuQ2FuY2VsZWRFcnJvciA9IENhbmNlbGVkRXJyb3I7XG5heGlvcy5DYW5jZWxUb2tlbiA9IENhbmNlbFRva2VuO1xuYXhpb3MuaXNDYW5jZWwgPSBpc0NhbmNlbDtcbmF4aW9zLlZFUlNJT04gPSBWRVJTSU9OO1xuYXhpb3MudG9Gb3JtRGF0YSA9IHRvRm9ybURhdGE7XG5cbi8vIEV4cG9zZSBBeGlvc0Vycm9yIGNsYXNzXG5heGlvcy5BeGlvc0Vycm9yID0gQXhpb3NFcnJvcjtcblxuLy8gYWxpYXMgZm9yIENhbmNlbGVkRXJyb3IgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbmF4aW9zLkNhbmNlbCA9IGF4aW9zLkNhbmNlbGVkRXJyb3I7XG5cbi8vIEV4cG9zZSBhbGwvc3ByZWFkXG5heGlvcy5hbGwgPSBmdW5jdGlvbiBhbGwocHJvbWlzZXMpIHtcbiAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKTtcbn07XG5cbmF4aW9zLnNwcmVhZCA9IHNwcmVhZDtcblxuLy8gRXhwb3NlIGlzQXhpb3NFcnJvclxuYXhpb3MuaXNBeGlvc0Vycm9yID0gaXNBeGlvc0Vycm9yO1xuXG4vLyBFeHBvc2UgbWVyZ2VDb25maWdcbmF4aW9zLm1lcmdlQ29uZmlnID0gbWVyZ2VDb25maWc7XG5cbmF4aW9zLkF4aW9zSGVhZGVycyA9IEF4aW9zSGVhZGVycztcblxuYXhpb3MuZm9ybVRvSlNPTiA9IHRoaW5nID0+IGZvcm1EYXRhVG9KU09OKHV0aWxzLmlzSFRNTEZvcm0odGhpbmcpID8gbmV3IEZvcm1EYXRhKHRoaW5nKSA6IHRoaW5nKTtcblxuYXhpb3MuZ2V0QWRhcHRlciA9IGFkYXB0ZXJzLmdldEFkYXB0ZXI7XG5cbmF4aW9zLkh0dHBTdGF0dXNDb2RlID0gSHR0cFN0YXR1c0NvZGU7XG5cbmF4aW9zLmRlZmF1bHQgPSBheGlvcztcblxuLy8gdGhpcyBtb2R1bGUgc2hvdWxkIG9ubHkgaGF2ZSBhIGRlZmF1bHQgZXhwb3J0XG5leHBvcnQgZGVmYXVsdCBheGlvc1xuIiwidmFyIExpZmVjeWNsZTtcbihmdW5jdGlvbiAoTGlmZWN5Y2xlKSB7XG4gICAgTGlmZWN5Y2xlW0xpZmVjeWNsZVtcIlRyYW5zaWVudFwiXSA9IDBdID0gXCJUcmFuc2llbnRcIjtcbiAgICBMaWZlY3ljbGVbTGlmZWN5Y2xlW1wiU2luZ2xldG9uXCJdID0gMV0gPSBcIlNpbmdsZXRvblwiO1xuICAgIExpZmVjeWNsZVtMaWZlY3ljbGVbXCJSZXNvbHV0aW9uU2NvcGVkXCJdID0gMl0gPSBcIlJlc29sdXRpb25TY29wZWRcIjtcbiAgICBMaWZlY3ljbGVbTGlmZWN5Y2xlW1wiQ29udGFpbmVyU2NvcGVkXCJdID0gM10gPSBcIkNvbnRhaW5lclNjb3BlZFwiO1xufSkoTGlmZWN5Y2xlIHx8IChMaWZlY3ljbGUgPSB7fSkpO1xuZXhwb3J0IGRlZmF1bHQgTGlmZWN5Y2xlO1xuIiwiLyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UgKi9cclxuXHJcbnZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikge1xyXG4gICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxyXG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcclxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XHJcbiAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XHJcbiAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcclxuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiBfX2Fzc2lnbih0KSB7XHJcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XHJcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSkgdFtwXSA9IHNbcF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxyXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XHJcbiAgICAgICAgfVxyXG4gICAgcmV0dXJuIHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2RlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XHJcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xyXG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcclxuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XHJcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19wYXJhbShwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSkge1xyXG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2dlbmVyYXRvcih0aGlzQXJnLCBib2R5KSB7XHJcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xyXG4gICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcclxuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XHJcbiAgICAgICAgd2hpbGUgKF8pIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcclxuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XHJcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcclxuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cclxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY3JlYXRlQmluZGluZyhvLCBtLCBrLCBrMikge1xyXG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcclxuICAgIG9bazJdID0gbVtrXTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXhwb3J0U3RhcihtLCBleHBvcnRzKSB7XHJcbiAgICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSBcImRlZmF1bHRcIiAmJiAhZXhwb3J0cy5oYXNPd25Qcm9wZXJ0eShwKSkgZXhwb3J0c1twXSA9IG1bcF07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3ZhbHVlcyhvKSB7XHJcbiAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBTeW1ib2wuaXRlcmF0b3IsIG0gPSBzICYmIG9bc10sIGkgPSAwO1xyXG4gICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7XHJcbiAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09IFwibnVtYmVyXCIpIHJldHVybiB7XHJcbiAgICAgICAgbmV4dDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwO1xyXG4gICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogbyAmJiBvW2krK10sIGRvbmU6ICFvIH07XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/IFwiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS5cIiA6IFwiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVhZChvLCBuKSB7XHJcbiAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07XHJcbiAgICBpZiAoIW0pIHJldHVybiBvO1xyXG4gICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGVycm9yKSB7IGUgPSB7IGVycm9yOiBlcnJvciB9OyB9XHJcbiAgICBmaW5hbGx5IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVtcInJldHVyblwiXSkpIG0uY2FsbChpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmluYWxseSB7IGlmIChlKSB0aHJvdyBlLmVycm9yOyB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZCgpIHtcclxuICAgIGZvciAodmFyIGFyID0gW10sIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIGFyID0gYXIuY29uY2F0KF9fcmVhZChhcmd1bWVudHNbaV0pKTtcclxuICAgIHJldHVybiBhcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXlzKCkge1xyXG4gICAgZm9yICh2YXIgcyA9IDAsIGkgPSAwLCBpbCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBpbDsgaSsrKSBzICs9IGFyZ3VtZW50c1tpXS5sZW5ndGg7XHJcbiAgICBmb3IgKHZhciByID0gQXJyYXkocyksIGsgPSAwLCBpID0gMDsgaSA8IGlsOyBpKyspXHJcbiAgICAgICAgZm9yICh2YXIgYSA9IGFyZ3VtZW50c1tpXSwgaiA9IDAsIGpsID0gYS5sZW5ndGg7IGogPCBqbDsgaisrLCBrKyspXHJcbiAgICAgICAgICAgIHJba10gPSBhW2pdO1xyXG4gICAgcmV0dXJuIHI7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdCh2KSB7XHJcbiAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF9fYXdhaXQgPyAodGhpcy52ID0gdiwgdGhpcykgOiBuZXcgX19hd2FpdCh2KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNHZW5lcmF0b3IodGhpc0FyZywgX2FyZ3VtZW50cywgZ2VuZXJhdG9yKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIGcgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSksIGksIHEgPSBbXTtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyBpZiAoZ1tuXSkgaVtuXSA9IGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAoYSwgYikgeyBxLnB1c2goW24sIHYsIGEsIGJdKSA+IDEgfHwgcmVzdW1lKG4sIHYpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gcmVzdW1lKG4sIHYpIHsgdHJ5IHsgc3RlcChnW25dKHYpKTsgfSBjYXRjaCAoZSkgeyBzZXR0bGUocVswXVszXSwgZSk7IH0gfVxyXG4gICAgZnVuY3Rpb24gc3RlcChyKSB7IHIudmFsdWUgaW5zdGFuY2VvZiBfX2F3YWl0ID8gUHJvbWlzZS5yZXNvbHZlKHIudmFsdWUudikudGhlbihmdWxmaWxsLCByZWplY3QpIDogc2V0dGxlKHFbMF1bMl0sIHIpOyB9XHJcbiAgICBmdW5jdGlvbiBmdWxmaWxsKHZhbHVlKSB7IHJlc3VtZShcIm5leHRcIiwgdmFsdWUpOyB9XHJcbiAgICBmdW5jdGlvbiByZWplY3QodmFsdWUpIHsgcmVzdW1lKFwidGhyb3dcIiwgdmFsdWUpOyB9XHJcbiAgICBmdW5jdGlvbiBzZXR0bGUoZiwgdikgeyBpZiAoZih2KSwgcS5zaGlmdCgpLCBxLmxlbmd0aCkgcmVzdW1lKHFbMF1bMF0sIHFbMF1bMV0pOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jRGVsZWdhdG9yKG8pIHtcclxuICAgIHZhciBpLCBwO1xyXG4gICAgcmV0dXJuIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiLCBmdW5jdGlvbiAoZSkgeyB0aHJvdyBlOyB9KSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobiwgZikgeyBpW25dID0gb1tuXSA/IGZ1bmN0aW9uICh2KSB7IHJldHVybiAocCA9ICFwKSA/IHsgdmFsdWU6IF9fYXdhaXQob1tuXSh2KSksIGRvbmU6IG4gPT09IFwicmV0dXJuXCIgfSA6IGYgPyBmKHYpIDogdjsgfSA6IGY7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNWYWx1ZXMobykge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl0sIGk7XHJcbiAgICByZXR1cm4gbSA/IG0uY2FsbChvKSA6IChvID0gdHlwZW9mIF9fdmFsdWVzID09PSBcImZ1bmN0aW9uXCIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpLCBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaSk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaVtuXSA9IG9bbl0gJiYgZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsgdiA9IG9bbl0odiksIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHYuZG9uZSwgdi52YWx1ZSk7IH0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCBkLCB2KSB7IFByb21pc2UucmVzb2x2ZSh2KS50aGVuKGZ1bmN0aW9uKHYpIHsgcmVzb2x2ZSh7IHZhbHVlOiB2LCBkb25lOiBkIH0pOyB9LCByZWplY3QpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ha2VUZW1wbGF0ZU9iamVjdChjb29rZWQsIHJhdykge1xyXG4gICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cclxuICAgIHJldHVybiBjb29rZWQ7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnRTdGFyKG1vZCkge1xyXG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcclxuICAgIHZhciByZXN1bHQgPSB7fTtcclxuICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayBpbiBtb2QpIGlmIChPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSByZXN1bHRba10gPSBtb2Rba107XHJcbiAgICByZXN1bHQuZGVmYXVsdCA9IG1vZDtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydERlZmF1bHQobW9kKSB7XHJcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IGRlZmF1bHQ6IG1vZCB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgcHJpdmF0ZU1hcCkge1xyXG4gICAgaWYgKCFwcml2YXRlTWFwLmhhcyhyZWNlaXZlcikpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwcml2YXRlTWFwLmdldChyZWNlaXZlcik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHJlY2VpdmVyLCBwcml2YXRlTWFwLCB2YWx1ZSkge1xyXG4gICAgaWYgKCFwcml2YXRlTWFwLmhhcyhyZWNlaXZlcikpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXR0ZW1wdGVkIHRvIHNldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICAgIHByaXZhdGVNYXAuc2V0KHJlY2VpdmVyLCB2YWx1ZSk7XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbn1cclxuIiwiZXhwb3J0IHZhciBJTkpFQ1RJT05fVE9LRU5fTUVUQURBVEFfS0VZID0gXCJpbmplY3Rpb25Ub2tlbnNcIjtcbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXJhbUluZm8odGFyZ2V0KSB7XG4gICAgdmFyIHBhcmFtcyA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCB0YXJnZXQpIHx8IFtdO1xuICAgIHZhciBpbmplY3Rpb25Ub2tlbnMgPSBSZWZsZWN0LmdldE93bk1ldGFkYXRhKElOSkVDVElPTl9UT0tFTl9NRVRBREFUQV9LRVksIHRhcmdldCkgfHwge307XG4gICAgT2JqZWN0LmtleXMoaW5qZWN0aW9uVG9rZW5zKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgcGFyYW1zWytrZXldID0gaW5qZWN0aW9uVG9rZW5zW2tleV07XG4gICAgfSk7XG4gICAgcmV0dXJuIHBhcmFtcztcbn1cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVJbmplY3Rpb25Ub2tlbk1ldGFkYXRhKGRhdGEsIHRyYW5zZm9ybSkge1xuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBfcHJvcGVydHlLZXksIHBhcmFtZXRlckluZGV4KSB7XG4gICAgICAgIHZhciBkZXNjcmlwdG9ycyA9IFJlZmxlY3QuZ2V0T3duTWV0YWRhdGEoSU5KRUNUSU9OX1RPS0VOX01FVEFEQVRBX0tFWSwgdGFyZ2V0KSB8fCB7fTtcbiAgICAgICAgZGVzY3JpcHRvcnNbcGFyYW1ldGVySW5kZXhdID0gdHJhbnNmb3JtXG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICB0b2tlbjogZGF0YSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zZm9ybS50cmFuc2Zvcm1Ub2tlbixcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1BcmdzOiB0cmFuc2Zvcm0uYXJncyB8fCBbXVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiBkYXRhO1xuICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKElOSkVDVElPTl9UT0tFTl9NRVRBREFUQV9LRVksIGRlc2NyaXB0b3JzLCB0YXJnZXQpO1xuICAgIH07XG59XG4iLCJleHBvcnQgZnVuY3Rpb24gaXNDbGFzc1Byb3ZpZGVyKHByb3ZpZGVyKSB7XG4gICAgcmV0dXJuICEhcHJvdmlkZXIudXNlQ2xhc3M7XG59XG4iLCJleHBvcnQgZnVuY3Rpb24gaXNGYWN0b3J5UHJvdmlkZXIocHJvdmlkZXIpIHtcbiAgICByZXR1cm4gISFwcm92aWRlci51c2VGYWN0b3J5O1xufVxuIiwiaW1wb3J0IHsgX19yZWFkLCBfX3NwcmVhZCB9IGZyb20gXCJ0c2xpYlwiO1xudmFyIERlbGF5ZWRDb25zdHJ1Y3RvciA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gRGVsYXllZENvbnN0cnVjdG9yKHdyYXApIHtcbiAgICAgICAgdGhpcy53cmFwID0gd3JhcDtcbiAgICAgICAgdGhpcy5yZWZsZWN0TWV0aG9kcyA9IFtcbiAgICAgICAgICAgIFwiZ2V0XCIsXG4gICAgICAgICAgICBcImdldFByb3RvdHlwZU9mXCIsXG4gICAgICAgICAgICBcInNldFByb3RvdHlwZU9mXCIsXG4gICAgICAgICAgICBcImdldE93blByb3BlcnR5RGVzY3JpcHRvclwiLFxuICAgICAgICAgICAgXCJkZWZpbmVQcm9wZXJ0eVwiLFxuICAgICAgICAgICAgXCJoYXNcIixcbiAgICAgICAgICAgIFwic2V0XCIsXG4gICAgICAgICAgICBcImRlbGV0ZVByb3BlcnR5XCIsXG4gICAgICAgICAgICBcImFwcGx5XCIsXG4gICAgICAgICAgICBcImNvbnN0cnVjdFwiLFxuICAgICAgICAgICAgXCJvd25LZXlzXCJcbiAgICAgICAgXTtcbiAgICB9XG4gICAgRGVsYXllZENvbnN0cnVjdG9yLnByb3RvdHlwZS5jcmVhdGVQcm94eSA9IGZ1bmN0aW9uIChjcmVhdGVPYmplY3QpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIHRhcmdldCA9IHt9O1xuICAgICAgICB2YXIgaW5pdCA9IGZhbHNlO1xuICAgICAgICB2YXIgdmFsdWU7XG4gICAgICAgIHZhciBkZWxheWVkT2JqZWN0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKCFpbml0KSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBjcmVhdGVPYmplY3QoX3RoaXMud3JhcCgpKTtcbiAgICAgICAgICAgICAgICBpbml0ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm94eSh0YXJnZXQsIHRoaXMuY3JlYXRlSGFuZGxlcihkZWxheWVkT2JqZWN0KSk7XG4gICAgfTtcbiAgICBEZWxheWVkQ29uc3RydWN0b3IucHJvdG90eXBlLmNyZWF0ZUhhbmRsZXIgPSBmdW5jdGlvbiAoZGVsYXllZE9iamVjdCkge1xuICAgICAgICB2YXIgaGFuZGxlciA9IHt9O1xuICAgICAgICB2YXIgaW5zdGFsbCA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgICAgICBoYW5kbGVyW25hbWVdID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBhcmdzID0gW107XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICAgICAgYXJnc1tfaV0gPSBhcmd1bWVudHNbX2ldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhcmdzWzBdID0gZGVsYXllZE9iamVjdCgpO1xuICAgICAgICAgICAgICAgIHZhciBtZXRob2QgPSBSZWZsZWN0W25hbWVdO1xuICAgICAgICAgICAgICAgIHJldHVybiBtZXRob2QuYXBwbHkodm9pZCAwLCBfX3NwcmVhZChhcmdzKSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLnJlZmxlY3RNZXRob2RzLmZvckVhY2goaW5zdGFsbCk7XG4gICAgICAgIHJldHVybiBoYW5kbGVyO1xuICAgIH07XG4gICAgcmV0dXJuIERlbGF5ZWRDb25zdHJ1Y3Rvcjtcbn0oKSk7XG5leHBvcnQgeyBEZWxheWVkQ29uc3RydWN0b3IgfTtcbmV4cG9ydCBmdW5jdGlvbiBkZWxheSh3cmFwcGVkQ29uc3RydWN0b3IpIHtcbiAgICBpZiAodHlwZW9mIHdyYXBwZWRDb25zdHJ1Y3RvciA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBdHRlbXB0IHRvIGBkZWxheWAgdW5kZWZpbmVkLiBDb25zdHJ1Y3RvciBtdXN0IGJlIHdyYXBwZWQgaW4gYSBjYWxsYmFja1wiKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBEZWxheWVkQ29uc3RydWN0b3Iod3JhcHBlZENvbnN0cnVjdG9yKTtcbn1cbiIsImltcG9ydCB7IERlbGF5ZWRDb25zdHJ1Y3RvciB9IGZyb20gXCIuLi9sYXp5LWhlbHBlcnNcIjtcbmV4cG9ydCBmdW5jdGlvbiBpc05vcm1hbFRva2VuKHRva2VuKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0b2tlbiA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgdG9rZW4gPT09IFwic3ltYm9sXCI7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNUb2tlbkRlc2NyaXB0b3IoZGVzY3JpcHRvcikge1xuICAgIHJldHVybiAodHlwZW9mIGRlc2NyaXB0b3IgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgXCJ0b2tlblwiIGluIGRlc2NyaXB0b3IgJiZcbiAgICAgICAgXCJtdWx0aXBsZVwiIGluIGRlc2NyaXB0b3IpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzVHJhbnNmb3JtRGVzY3JpcHRvcihkZXNjcmlwdG9yKSB7XG4gICAgcmV0dXJuICh0eXBlb2YgZGVzY3JpcHRvciA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgICBcInRva2VuXCIgaW4gZGVzY3JpcHRvciAmJlxuICAgICAgICBcInRyYW5zZm9ybVwiIGluIGRlc2NyaXB0b3IpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29uc3RydWN0b3JUb2tlbih0b2tlbikge1xuICAgIHJldHVybiB0eXBlb2YgdG9rZW4gPT09IFwiZnVuY3Rpb25cIiB8fCB0b2tlbiBpbnN0YW5jZW9mIERlbGF5ZWRDb25zdHJ1Y3Rvcjtcbn1cbiIsImV4cG9ydCBmdW5jdGlvbiBpc1Rva2VuUHJvdmlkZXIocHJvdmlkZXIpIHtcbiAgICByZXR1cm4gISFwcm92aWRlci51c2VUb2tlbjtcbn1cbiIsImV4cG9ydCBmdW5jdGlvbiBpc1ZhbHVlUHJvdmlkZXIocHJvdmlkZXIpIHtcbiAgICByZXR1cm4gcHJvdmlkZXIudXNlVmFsdWUgIT0gdW5kZWZpbmVkO1xufVxuIiwiaW1wb3J0IHsgaXNDbGFzc1Byb3ZpZGVyIH0gZnJvbSBcIi4vY2xhc3MtcHJvdmlkZXJcIjtcbmltcG9ydCB7IGlzVmFsdWVQcm92aWRlciB9IGZyb20gXCIuL3ZhbHVlLXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBpc1Rva2VuUHJvdmlkZXIgfSBmcm9tIFwiLi90b2tlbi1wcm92aWRlclwiO1xuaW1wb3J0IHsgaXNGYWN0b3J5UHJvdmlkZXIgfSBmcm9tIFwiLi9mYWN0b3J5LXByb3ZpZGVyXCI7XG5leHBvcnQgZnVuY3Rpb24gaXNQcm92aWRlcihwcm92aWRlcikge1xuICAgIHJldHVybiAoaXNDbGFzc1Byb3ZpZGVyKHByb3ZpZGVyKSB8fFxuICAgICAgICBpc1ZhbHVlUHJvdmlkZXIocHJvdmlkZXIpIHx8XG4gICAgICAgIGlzVG9rZW5Qcm92aWRlcihwcm92aWRlcikgfHxcbiAgICAgICAgaXNGYWN0b3J5UHJvdmlkZXIocHJvdmlkZXIpKTtcbn1cbiIsInZhciBSZWdpc3RyeUJhc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFJlZ2lzdHJ5QmFzZSgpIHtcbiAgICAgICAgdGhpcy5fcmVnaXN0cnlNYXAgPSBuZXcgTWFwKCk7XG4gICAgfVxuICAgIFJlZ2lzdHJ5QmFzZS5wcm90b3R5cGUuZW50cmllcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlZ2lzdHJ5TWFwLmVudHJpZXMoKTtcbiAgICB9O1xuICAgIFJlZ2lzdHJ5QmFzZS5wcm90b3R5cGUuZ2V0QWxsID0gZnVuY3Rpb24gKGtleSkge1xuICAgICAgICB0aGlzLmVuc3VyZShrZXkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVnaXN0cnlNYXAuZ2V0KGtleSk7XG4gICAgfTtcbiAgICBSZWdpc3RyeUJhc2UucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgdGhpcy5lbnN1cmUoa2V5KTtcbiAgICAgICAgdmFyIHZhbHVlID0gdGhpcy5fcmVnaXN0cnlNYXAuZ2V0KGtleSk7XG4gICAgICAgIHJldHVybiB2YWx1ZVt2YWx1ZS5sZW5ndGggLSAxXSB8fCBudWxsO1xuICAgIH07XG4gICAgUmVnaXN0cnlCYXNlLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgICAgICB0aGlzLmVuc3VyZShrZXkpO1xuICAgICAgICB0aGlzLl9yZWdpc3RyeU1hcC5nZXQoa2V5KS5wdXNoKHZhbHVlKTtcbiAgICB9O1xuICAgIFJlZ2lzdHJ5QmFzZS5wcm90b3R5cGUuc2V0QWxsID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5fcmVnaXN0cnlNYXAuc2V0KGtleSwgdmFsdWUpO1xuICAgIH07XG4gICAgUmVnaXN0cnlCYXNlLnByb3RvdHlwZS5oYXMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIHRoaXMuZW5zdXJlKGtleSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWdpc3RyeU1hcC5nZXQoa2V5KS5sZW5ndGggPiAwO1xuICAgIH07XG4gICAgUmVnaXN0cnlCYXNlLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5fcmVnaXN0cnlNYXAuY2xlYXIoKTtcbiAgICB9O1xuICAgIFJlZ2lzdHJ5QmFzZS5wcm90b3R5cGUuZW5zdXJlID0gZnVuY3Rpb24gKGtleSkge1xuICAgICAgICBpZiAoIXRoaXMuX3JlZ2lzdHJ5TWFwLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICB0aGlzLl9yZWdpc3RyeU1hcC5zZXQoa2V5LCBbXSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBSZWdpc3RyeUJhc2U7XG59KCkpO1xuZXhwb3J0IGRlZmF1bHQgUmVnaXN0cnlCYXNlO1xuIiwiaW1wb3J0IHsgX19leHRlbmRzIH0gZnJvbSBcInRzbGliXCI7XG5pbXBvcnQgUmVnaXN0cnlCYXNlIGZyb20gXCIuL3JlZ2lzdHJ5LWJhc2VcIjtcbnZhciBSZWdpc3RyeSA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFJlZ2lzdHJ5LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFJlZ2lzdHJ5KCkge1xuICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIHJldHVybiBSZWdpc3RyeTtcbn0oUmVnaXN0cnlCYXNlKSk7XG5leHBvcnQgZGVmYXVsdCBSZWdpc3RyeTtcbiIsInZhciBSZXNvbHV0aW9uQ29udGV4dCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gUmVzb2x1dGlvbkNvbnRleHQoKSB7XG4gICAgICAgIHRoaXMuc2NvcGVkUmVzb2x1dGlvbnMgPSBuZXcgTWFwKCk7XG4gICAgfVxuICAgIHJldHVybiBSZXNvbHV0aW9uQ29udGV4dDtcbn0oKSk7XG5leHBvcnQgZGVmYXVsdCBSZXNvbHV0aW9uQ29udGV4dDtcbiIsImltcG9ydCB7IF9fcmVhZCwgX19zcHJlYWQgfSBmcm9tIFwidHNsaWJcIjtcbmZ1bmN0aW9uIGZvcm1hdERlcGVuZGVuY3kocGFyYW1zLCBpZHgpIHtcbiAgICBpZiAocGFyYW1zID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBcImF0IHBvc2l0aW9uICNcIiArIGlkeDtcbiAgICB9XG4gICAgdmFyIGFyZ05hbWUgPSBwYXJhbXMuc3BsaXQoXCIsXCIpW2lkeF0udHJpbSgpO1xuICAgIHJldHVybiBcIlxcXCJcIiArIGFyZ05hbWUgKyBcIlxcXCIgYXQgcG9zaXRpb24gI1wiICsgaWR4O1xufVxuZnVuY3Rpb24gY29tcG9zZUVycm9yTWVzc2FnZShtc2csIGUsIGluZGVudCkge1xuICAgIGlmIChpbmRlbnQgPT09IHZvaWQgMCkgeyBpbmRlbnQgPSBcIiAgICBcIjsgfVxuICAgIHJldHVybiBfX3NwcmVhZChbbXNnXSwgZS5tZXNzYWdlLnNwbGl0KFwiXFxuXCIpLm1hcChmdW5jdGlvbiAobCkgeyByZXR1cm4gaW5kZW50ICsgbDsgfSkpLmpvaW4oXCJcXG5cIik7XG59XG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RXJyb3JDdG9yKGN0b3IsIHBhcmFtSWR4LCBlcnJvcikge1xuICAgIHZhciBfYSA9IF9fcmVhZChjdG9yLnRvU3RyaW5nKCkubWF0Y2goL2NvbnN0cnVjdG9yXFwoKFtcXHcsIF0rKVxcKS8pIHx8IFtdLCAyKSwgX2IgPSBfYVsxXSwgcGFyYW1zID0gX2IgPT09IHZvaWQgMCA/IG51bGwgOiBfYjtcbiAgICB2YXIgZGVwID0gZm9ybWF0RGVwZW5kZW5jeShwYXJhbXMsIHBhcmFtSWR4KTtcbiAgICByZXR1cm4gY29tcG9zZUVycm9yTWVzc2FnZShcIkNhbm5vdCBpbmplY3QgdGhlIGRlcGVuZGVuY3kgXCIgKyBkZXAgKyBcIiBvZiBcXFwiXCIgKyBjdG9yLm5hbWUgKyBcIlxcXCIgY29uc3RydWN0b3IuIFJlYXNvbjpcIiwgZXJyb3IpO1xufVxuIiwiZXhwb3J0IGZ1bmN0aW9uIGlzRGlzcG9zYWJsZSh2YWx1ZSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUuZGlzcG9zZSAhPT0gXCJmdW5jdGlvblwiKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgdmFyIGRpc3Bvc2VGdW4gPSB2YWx1ZS5kaXNwb3NlO1xuICAgIGlmIChkaXNwb3NlRnVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cbiIsImltcG9ydCB7IF9fZXh0ZW5kcyB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IFJlZ2lzdHJ5QmFzZSBmcm9tIFwiLi9yZWdpc3RyeS1iYXNlXCI7XG52YXIgUHJlUmVzb2x1dGlvbkludGVyY2VwdG9ycyA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFByZVJlc29sdXRpb25JbnRlcmNlcHRvcnMsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gUHJlUmVzb2x1dGlvbkludGVyY2VwdG9ycygpIHtcbiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gUHJlUmVzb2x1dGlvbkludGVyY2VwdG9ycztcbn0oUmVnaXN0cnlCYXNlKSk7XG5leHBvcnQgeyBQcmVSZXNvbHV0aW9uSW50ZXJjZXB0b3JzIH07XG52YXIgUG9zdFJlc29sdXRpb25JbnRlcmNlcHRvcnMgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhQb3N0UmVzb2x1dGlvbkludGVyY2VwdG9ycywgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBQb3N0UmVzb2x1dGlvbkludGVyY2VwdG9ycygpIHtcbiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gUG9zdFJlc29sdXRpb25JbnRlcmNlcHRvcnM7XG59KFJlZ2lzdHJ5QmFzZSkpO1xuZXhwb3J0IHsgUG9zdFJlc29sdXRpb25JbnRlcmNlcHRvcnMgfTtcbnZhciBJbnRlcmNlcHRvcnMgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEludGVyY2VwdG9ycygpIHtcbiAgICAgICAgdGhpcy5wcmVSZXNvbHV0aW9uID0gbmV3IFByZVJlc29sdXRpb25JbnRlcmNlcHRvcnMoKTtcbiAgICAgICAgdGhpcy5wb3N0UmVzb2x1dGlvbiA9IG5ldyBQb3N0UmVzb2x1dGlvbkludGVyY2VwdG9ycygpO1xuICAgIH1cbiAgICByZXR1cm4gSW50ZXJjZXB0b3JzO1xufSgpKTtcbmV4cG9ydCBkZWZhdWx0IEludGVyY2VwdG9ycztcbiIsImltcG9ydCB7IF9fYXdhaXRlciwgX19nZW5lcmF0b3IsIF9fcmVhZCwgX19zcHJlYWQsIF9fdmFsdWVzIH0gZnJvbSBcInRzbGliXCI7XG5pbXBvcnQgeyBpc0NsYXNzUHJvdmlkZXIsIGlzRmFjdG9yeVByb3ZpZGVyLCBpc05vcm1hbFRva2VuLCBpc1Rva2VuUHJvdmlkZXIsIGlzVmFsdWVQcm92aWRlciB9IGZyb20gXCIuL3Byb3ZpZGVyc1wiO1xuaW1wb3J0IHsgaXNQcm92aWRlciB9IGZyb20gXCIuL3Byb3ZpZGVycy9wcm92aWRlclwiO1xuaW1wb3J0IHsgaXNDb25zdHJ1Y3RvclRva2VuLCBpc1Rva2VuRGVzY3JpcHRvciwgaXNUcmFuc2Zvcm1EZXNjcmlwdG9yIH0gZnJvbSBcIi4vcHJvdmlkZXJzL2luamVjdGlvbi10b2tlblwiO1xuaW1wb3J0IFJlZ2lzdHJ5IGZyb20gXCIuL3JlZ2lzdHJ5XCI7XG5pbXBvcnQgTGlmZWN5Y2xlIGZyb20gXCIuL3R5cGVzL2xpZmVjeWNsZVwiO1xuaW1wb3J0IFJlc29sdXRpb25Db250ZXh0IGZyb20gXCIuL3Jlc29sdXRpb24tY29udGV4dFwiO1xuaW1wb3J0IHsgZm9ybWF0RXJyb3JDdG9yIH0gZnJvbSBcIi4vZXJyb3ItaGVscGVyc1wiO1xuaW1wb3J0IHsgRGVsYXllZENvbnN0cnVjdG9yIH0gZnJvbSBcIi4vbGF6eS1oZWxwZXJzXCI7XG5pbXBvcnQgeyBpc0Rpc3Bvc2FibGUgfSBmcm9tIFwiLi90eXBlcy9kaXNwb3NhYmxlXCI7XG5pbXBvcnQgSW50ZXJjZXB0b3JzIGZyb20gXCIuL2ludGVyY2VwdG9yc1wiO1xuZXhwb3J0IHZhciB0eXBlSW5mbyA9IG5ldyBNYXAoKTtcbnZhciBJbnRlcm5hbERlcGVuZGVuY3lDb250YWluZXIgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEludGVybmFsRGVwZW5kZW5jeUNvbnRhaW5lcihwYXJlbnQpIHtcbiAgICAgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7XG4gICAgICAgIHRoaXMuX3JlZ2lzdHJ5ID0gbmV3IFJlZ2lzdHJ5KCk7XG4gICAgICAgIHRoaXMuaW50ZXJjZXB0b3JzID0gbmV3IEludGVyY2VwdG9ycygpO1xuICAgICAgICB0aGlzLmRpc3Bvc2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGlzcG9zYWJsZXMgPSBuZXcgU2V0KCk7XG4gICAgfVxuICAgIEludGVybmFsRGVwZW5kZW5jeUNvbnRhaW5lci5wcm90b3R5cGUucmVnaXN0ZXIgPSBmdW5jdGlvbiAodG9rZW4sIHByb3ZpZGVyT3JDb25zdHJ1Y3Rvciwgb3B0aW9ucykge1xuICAgICAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7IG9wdGlvbnMgPSB7IGxpZmVjeWNsZTogTGlmZWN5Y2xlLlRyYW5zaWVudCB9OyB9XG4gICAgICAgIHRoaXMuZW5zdXJlTm90RGlzcG9zZWQoKTtcbiAgICAgICAgdmFyIHByb3ZpZGVyO1xuICAgICAgICBpZiAoIWlzUHJvdmlkZXIocHJvdmlkZXJPckNvbnN0cnVjdG9yKSkge1xuICAgICAgICAgICAgcHJvdmlkZXIgPSB7IHVzZUNsYXNzOiBwcm92aWRlck9yQ29uc3RydWN0b3IgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHByb3ZpZGVyID0gcHJvdmlkZXJPckNvbnN0cnVjdG9yO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1Rva2VuUHJvdmlkZXIocHJvdmlkZXIpKSB7XG4gICAgICAgICAgICB2YXIgcGF0aCA9IFt0b2tlbl07XG4gICAgICAgICAgICB2YXIgdG9rZW5Qcm92aWRlciA9IHByb3ZpZGVyO1xuICAgICAgICAgICAgd2hpbGUgKHRva2VuUHJvdmlkZXIgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHZhciBjdXJyZW50VG9rZW4gPSB0b2tlblByb3ZpZGVyLnVzZVRva2VuO1xuICAgICAgICAgICAgICAgIGlmIChwYXRoLmluY2x1ZGVzKGN1cnJlbnRUb2tlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVG9rZW4gcmVnaXN0cmF0aW9uIGN5Y2xlIGRldGVjdGVkISBcIiArIF9fc3ByZWFkKHBhdGgsIFtjdXJyZW50VG9rZW5dKS5qb2luKFwiIC0+IFwiKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBhdGgucHVzaChjdXJyZW50VG9rZW4pO1xuICAgICAgICAgICAgICAgIHZhciByZWdpc3RyYXRpb24gPSB0aGlzLl9yZWdpc3RyeS5nZXQoY3VycmVudFRva2VuKTtcbiAgICAgICAgICAgICAgICBpZiAocmVnaXN0cmF0aW9uICYmIGlzVG9rZW5Qcm92aWRlcihyZWdpc3RyYXRpb24ucHJvdmlkZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRva2VuUHJvdmlkZXIgPSByZWdpc3RyYXRpb24ucHJvdmlkZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0b2tlblByb3ZpZGVyID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMubGlmZWN5Y2xlID09PSBMaWZlY3ljbGUuU2luZ2xldG9uIHx8XG4gICAgICAgICAgICBvcHRpb25zLmxpZmVjeWNsZSA9PSBMaWZlY3ljbGUuQ29udGFpbmVyU2NvcGVkIHx8XG4gICAgICAgICAgICBvcHRpb25zLmxpZmVjeWNsZSA9PSBMaWZlY3ljbGUuUmVzb2x1dGlvblNjb3BlZCkge1xuICAgICAgICAgICAgaWYgKGlzVmFsdWVQcm92aWRlcihwcm92aWRlcikgfHwgaXNGYWN0b3J5UHJvdmlkZXIocHJvdmlkZXIpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IHVzZSBsaWZlY3ljbGUgXFxcIlwiICsgTGlmZWN5Y2xlW29wdGlvbnMubGlmZWN5Y2xlXSArIFwiXFxcIiB3aXRoIFZhbHVlUHJvdmlkZXJzIG9yIEZhY3RvcnlQcm92aWRlcnNcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcmVnaXN0cnkuc2V0KHRva2VuLCB7IHByb3ZpZGVyOiBwcm92aWRlciwgb3B0aW9uczogb3B0aW9ucyB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICBJbnRlcm5hbERlcGVuZGVuY3lDb250YWluZXIucHJvdG90eXBlLnJlZ2lzdGVyVHlwZSA9IGZ1bmN0aW9uIChmcm9tLCB0bykge1xuICAgICAgICB0aGlzLmVuc3VyZU5vdERpc3Bvc2VkKCk7XG4gICAgICAgIGlmIChpc05vcm1hbFRva2VuKHRvKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0ZXIoZnJvbSwge1xuICAgICAgICAgICAgICAgIHVzZVRva2VuOiB0b1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0ZXIoZnJvbSwge1xuICAgICAgICAgICAgdXNlQ2xhc3M6IHRvXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgSW50ZXJuYWxEZXBlbmRlbmN5Q29udGFpbmVyLnByb3RvdHlwZS5yZWdpc3Rlckluc3RhbmNlID0gZnVuY3Rpb24gKHRva2VuLCBpbnN0YW5jZSkge1xuICAgICAgICB0aGlzLmVuc3VyZU5vdERpc3Bvc2VkKCk7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdGVyKHRva2VuLCB7XG4gICAgICAgICAgICB1c2VWYWx1ZTogaW5zdGFuY2VcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBJbnRlcm5hbERlcGVuZGVuY3lDb250YWluZXIucHJvdG90eXBlLnJlZ2lzdGVyU2luZ2xldG9uID0gZnVuY3Rpb24gKGZyb20sIHRvKSB7XG4gICAgICAgIHRoaXMuZW5zdXJlTm90RGlzcG9zZWQoKTtcbiAgICAgICAgaWYgKGlzTm9ybWFsVG9rZW4oZnJvbSkpIHtcbiAgICAgICAgICAgIGlmIChpc05vcm1hbFRva2VuKHRvKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdGVyKGZyb20sIHtcbiAgICAgICAgICAgICAgICAgICAgdXNlVG9rZW46IHRvXG4gICAgICAgICAgICAgICAgfSwgeyBsaWZlY3ljbGU6IExpZmVjeWNsZS5TaW5nbGV0b24gfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0bykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdGVyKGZyb20sIHtcbiAgICAgICAgICAgICAgICAgICAgdXNlQ2xhc3M6IHRvXG4gICAgICAgICAgICAgICAgfSwgeyBsaWZlY3ljbGU6IExpZmVjeWNsZS5TaW5nbGV0b24gfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCByZWdpc3RlciBhIHR5cGUgbmFtZSBhcyBhIHNpbmdsZXRvbiB3aXRob3V0IGEgXCJ0b1wiIHRva2VuJyk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHVzZUNsYXNzID0gZnJvbTtcbiAgICAgICAgaWYgKHRvICYmICFpc05vcm1hbFRva2VuKHRvKSkge1xuICAgICAgICAgICAgdXNlQ2xhc3MgPSB0bztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yZWdpc3Rlcihmcm9tLCB7XG4gICAgICAgICAgICB1c2VDbGFzczogdXNlQ2xhc3NcbiAgICAgICAgfSwgeyBsaWZlY3ljbGU6IExpZmVjeWNsZS5TaW5nbGV0b24gfSk7XG4gICAgfTtcbiAgICBJbnRlcm5hbERlcGVuZGVuY3lDb250YWluZXIucHJvdG90eXBlLnJlc29sdmUgPSBmdW5jdGlvbiAodG9rZW4sIGNvbnRleHQpIHtcbiAgICAgICAgaWYgKGNvbnRleHQgPT09IHZvaWQgMCkgeyBjb250ZXh0ID0gbmV3IFJlc29sdXRpb25Db250ZXh0KCk7IH1cbiAgICAgICAgdGhpcy5lbnN1cmVOb3REaXNwb3NlZCgpO1xuICAgICAgICB2YXIgcmVnaXN0cmF0aW9uID0gdGhpcy5nZXRSZWdpc3RyYXRpb24odG9rZW4pO1xuICAgICAgICBpZiAoIXJlZ2lzdHJhdGlvbiAmJiBpc05vcm1hbFRva2VuKHRva2VuKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXR0ZW1wdGVkIHRvIHJlc29sdmUgdW5yZWdpc3RlcmVkIGRlcGVuZGVuY3kgdG9rZW46IFxcXCJcIiArIHRva2VuLnRvU3RyaW5nKCkgKyBcIlxcXCJcIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5leGVjdXRlUHJlUmVzb2x1dGlvbkludGVyY2VwdG9yKHRva2VuLCBcIlNpbmdsZVwiKTtcbiAgICAgICAgaWYgKHJlZ2lzdHJhdGlvbikge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMucmVzb2x2ZVJlZ2lzdHJhdGlvbihyZWdpc3RyYXRpb24sIGNvbnRleHQpO1xuICAgICAgICAgICAgdGhpcy5leGVjdXRlUG9zdFJlc29sdXRpb25JbnRlcmNlcHRvcih0b2tlbiwgcmVzdWx0LCBcIlNpbmdsZVwiKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzQ29uc3RydWN0b3JUb2tlbih0b2tlbikpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSB0aGlzLmNvbnN0cnVjdCh0b2tlbiwgY29udGV4dCk7XG4gICAgICAgICAgICB0aGlzLmV4ZWN1dGVQb3N0UmVzb2x1dGlvbkludGVyY2VwdG9yKHRva2VuLCByZXN1bHQsIFwiU2luZ2xlXCIpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBdHRlbXB0ZWQgdG8gY29uc3RydWN0IGFuIHVuZGVmaW5lZCBjb25zdHJ1Y3Rvci4gQ291bGQgbWVhbiBhIGNpcmN1bGFyIGRlcGVuZGVuY3kgcHJvYmxlbS4gVHJ5IHVzaW5nIGBkZWxheWAgZnVuY3Rpb24uXCIpO1xuICAgIH07XG4gICAgSW50ZXJuYWxEZXBlbmRlbmN5Q29udGFpbmVyLnByb3RvdHlwZS5leGVjdXRlUHJlUmVzb2x1dGlvbkludGVyY2VwdG9yID0gZnVuY3Rpb24gKHRva2VuLCByZXNvbHV0aW9uVHlwZSkge1xuICAgICAgICB2YXIgZV8xLCBfYTtcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJjZXB0b3JzLnByZVJlc29sdXRpb24uaGFzKHRva2VuKSkge1xuICAgICAgICAgICAgdmFyIHJlbWFpbmluZ0ludGVyY2VwdG9ycyA9IFtdO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBfYiA9IF9fdmFsdWVzKHRoaXMuaW50ZXJjZXB0b3JzLnByZVJlc29sdXRpb24uZ2V0QWxsKHRva2VuKSksIF9jID0gX2IubmV4dCgpOyAhX2MuZG9uZTsgX2MgPSBfYi5uZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGludGVyY2VwdG9yID0gX2MudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnRlcmNlcHRvci5vcHRpb25zLmZyZXF1ZW5jeSAhPSBcIk9uY2VcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nSW50ZXJjZXB0b3JzLnB1c2goaW50ZXJjZXB0b3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGludGVyY2VwdG9yLmNhbGxiYWNrKHRva2VuLCByZXNvbHV0aW9uVHlwZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVfMV8xKSB7IGVfMSA9IHsgZXJyb3I6IGVfMV8xIH07IH1cbiAgICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChfYyAmJiAhX2MuZG9uZSAmJiAoX2EgPSBfYi5yZXR1cm4pKSBfYS5jYWxsKF9iKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZmluYWxseSB7IGlmIChlXzEpIHRocm93IGVfMS5lcnJvcjsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pbnRlcmNlcHRvcnMucHJlUmVzb2x1dGlvbi5zZXRBbGwodG9rZW4sIHJlbWFpbmluZ0ludGVyY2VwdG9ycyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIEludGVybmFsRGVwZW5kZW5jeUNvbnRhaW5lci5wcm90b3R5cGUuZXhlY3V0ZVBvc3RSZXNvbHV0aW9uSW50ZXJjZXB0b3IgPSBmdW5jdGlvbiAodG9rZW4sIHJlc3VsdCwgcmVzb2x1dGlvblR5cGUpIHtcbiAgICAgICAgdmFyIGVfMiwgX2E7XG4gICAgICAgIGlmICh0aGlzLmludGVyY2VwdG9ycy5wb3N0UmVzb2x1dGlvbi5oYXModG9rZW4pKSB7XG4gICAgICAgICAgICB2YXIgcmVtYWluaW5nSW50ZXJjZXB0b3JzID0gW107XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGZvciAodmFyIF9iID0gX192YWx1ZXModGhpcy5pbnRlcmNlcHRvcnMucG9zdFJlc29sdXRpb24uZ2V0QWxsKHRva2VuKSksIF9jID0gX2IubmV4dCgpOyAhX2MuZG9uZTsgX2MgPSBfYi5uZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGludGVyY2VwdG9yID0gX2MudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnRlcmNlcHRvci5vcHRpb25zLmZyZXF1ZW5jeSAhPSBcIk9uY2VcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nSW50ZXJjZXB0b3JzLnB1c2goaW50ZXJjZXB0b3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGludGVyY2VwdG9yLmNhbGxiYWNrKHRva2VuLCByZXN1bHQsIHJlc29sdXRpb25UeXBlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZV8yXzEpIHsgZV8yID0geyBlcnJvcjogZV8yXzEgfTsgfVxuICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKF9jICYmICFfYy5kb25lICYmIChfYSA9IF9iLnJldHVybikpIF9hLmNhbGwoX2IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmaW5hbGx5IHsgaWYgKGVfMikgdGhyb3cgZV8yLmVycm9yOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmludGVyY2VwdG9ycy5wb3N0UmVzb2x1dGlvbi5zZXRBbGwodG9rZW4sIHJlbWFpbmluZ0ludGVyY2VwdG9ycyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIEludGVybmFsRGVwZW5kZW5jeUNvbnRhaW5lci5wcm90b3R5cGUucmVzb2x2ZVJlZ2lzdHJhdGlvbiA9IGZ1bmN0aW9uIChyZWdpc3RyYXRpb24sIGNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5lbnN1cmVOb3REaXNwb3NlZCgpO1xuICAgICAgICBpZiAocmVnaXN0cmF0aW9uLm9wdGlvbnMubGlmZWN5Y2xlID09PSBMaWZlY3ljbGUuUmVzb2x1dGlvblNjb3BlZCAmJlxuICAgICAgICAgICAgY29udGV4dC5zY29wZWRSZXNvbHV0aW9ucy5oYXMocmVnaXN0cmF0aW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQuc2NvcGVkUmVzb2x1dGlvbnMuZ2V0KHJlZ2lzdHJhdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGlzU2luZ2xldG9uID0gcmVnaXN0cmF0aW9uLm9wdGlvbnMubGlmZWN5Y2xlID09PSBMaWZlY3ljbGUuU2luZ2xldG9uO1xuICAgICAgICB2YXIgaXNDb250YWluZXJTY29wZWQgPSByZWdpc3RyYXRpb24ub3B0aW9ucy5saWZlY3ljbGUgPT09IExpZmVjeWNsZS5Db250YWluZXJTY29wZWQ7XG4gICAgICAgIHZhciByZXR1cm5JbnN0YW5jZSA9IGlzU2luZ2xldG9uIHx8IGlzQ29udGFpbmVyU2NvcGVkO1xuICAgICAgICB2YXIgcmVzb2x2ZWQ7XG4gICAgICAgIGlmIChpc1ZhbHVlUHJvdmlkZXIocmVnaXN0cmF0aW9uLnByb3ZpZGVyKSkge1xuICAgICAgICAgICAgcmVzb2x2ZWQgPSByZWdpc3RyYXRpb24ucHJvdmlkZXIudXNlVmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNUb2tlblByb3ZpZGVyKHJlZ2lzdHJhdGlvbi5wcm92aWRlcikpIHtcbiAgICAgICAgICAgIHJlc29sdmVkID0gcmV0dXJuSW5zdGFuY2VcbiAgICAgICAgICAgICAgICA/IHJlZ2lzdHJhdGlvbi5pbnN0YW5jZSB8fFxuICAgICAgICAgICAgICAgICAgICAocmVnaXN0cmF0aW9uLmluc3RhbmNlID0gdGhpcy5yZXNvbHZlKHJlZ2lzdHJhdGlvbi5wcm92aWRlci51c2VUb2tlbiwgY29udGV4dCkpXG4gICAgICAgICAgICAgICAgOiB0aGlzLnJlc29sdmUocmVnaXN0cmF0aW9uLnByb3ZpZGVyLnVzZVRva2VuLCBjb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc0NsYXNzUHJvdmlkZXIocmVnaXN0cmF0aW9uLnByb3ZpZGVyKSkge1xuICAgICAgICAgICAgcmVzb2x2ZWQgPSByZXR1cm5JbnN0YW5jZVxuICAgICAgICAgICAgICAgID8gcmVnaXN0cmF0aW9uLmluc3RhbmNlIHx8XG4gICAgICAgICAgICAgICAgICAgIChyZWdpc3RyYXRpb24uaW5zdGFuY2UgPSB0aGlzLmNvbnN0cnVjdChyZWdpc3RyYXRpb24ucHJvdmlkZXIudXNlQ2xhc3MsIGNvbnRleHQpKVxuICAgICAgICAgICAgICAgIDogdGhpcy5jb25zdHJ1Y3QocmVnaXN0cmF0aW9uLnByb3ZpZGVyLnVzZUNsYXNzLCBjb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc0ZhY3RvcnlQcm92aWRlcihyZWdpc3RyYXRpb24ucHJvdmlkZXIpKSB7XG4gICAgICAgICAgICByZXNvbHZlZCA9IHJlZ2lzdHJhdGlvbi5wcm92aWRlci51c2VGYWN0b3J5KHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZWQgPSB0aGlzLmNvbnN0cnVjdChyZWdpc3RyYXRpb24ucHJvdmlkZXIsIGNvbnRleHQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWdpc3RyYXRpb24ub3B0aW9ucy5saWZlY3ljbGUgPT09IExpZmVjeWNsZS5SZXNvbHV0aW9uU2NvcGVkKSB7XG4gICAgICAgICAgICBjb250ZXh0LnNjb3BlZFJlc29sdXRpb25zLnNldChyZWdpc3RyYXRpb24sIHJlc29sdmVkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzb2x2ZWQ7XG4gICAgfTtcbiAgICBJbnRlcm5hbERlcGVuZGVuY3lDb250YWluZXIucHJvdG90eXBlLnJlc29sdmVBbGwgPSBmdW5jdGlvbiAodG9rZW4sIGNvbnRleHQpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgaWYgKGNvbnRleHQgPT09IHZvaWQgMCkgeyBjb250ZXh0ID0gbmV3IFJlc29sdXRpb25Db250ZXh0KCk7IH1cbiAgICAgICAgdGhpcy5lbnN1cmVOb3REaXNwb3NlZCgpO1xuICAgICAgICB2YXIgcmVnaXN0cmF0aW9ucyA9IHRoaXMuZ2V0QWxsUmVnaXN0cmF0aW9ucyh0b2tlbik7XG4gICAgICAgIGlmICghcmVnaXN0cmF0aW9ucyAmJiBpc05vcm1hbFRva2VuKHRva2VuKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXR0ZW1wdGVkIHRvIHJlc29sdmUgdW5yZWdpc3RlcmVkIGRlcGVuZGVuY3kgdG9rZW46IFxcXCJcIiArIHRva2VuLnRvU3RyaW5nKCkgKyBcIlxcXCJcIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5leGVjdXRlUHJlUmVzb2x1dGlvbkludGVyY2VwdG9yKHRva2VuLCBcIkFsbFwiKTtcbiAgICAgICAgaWYgKHJlZ2lzdHJhdGlvbnMpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHRfMSA9IHJlZ2lzdHJhdGlvbnMubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF90aGlzLnJlc29sdmVSZWdpc3RyYXRpb24oaXRlbSwgY29udGV4dCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuZXhlY3V0ZVBvc3RSZXNvbHV0aW9uSW50ZXJjZXB0b3IodG9rZW4sIHJlc3VsdF8xLCBcIkFsbFwiKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHRfMTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcmVzdWx0ID0gW3RoaXMuY29uc3RydWN0KHRva2VuLCBjb250ZXh0KV07XG4gICAgICAgIHRoaXMuZXhlY3V0ZVBvc3RSZXNvbHV0aW9uSW50ZXJjZXB0b3IodG9rZW4sIHJlc3VsdCwgXCJBbGxcIik7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICBJbnRlcm5hbERlcGVuZGVuY3lDb250YWluZXIucHJvdG90eXBlLmlzUmVnaXN0ZXJlZCA9IGZ1bmN0aW9uICh0b2tlbiwgcmVjdXJzaXZlKSB7XG4gICAgICAgIGlmIChyZWN1cnNpdmUgPT09IHZvaWQgMCkgeyByZWN1cnNpdmUgPSBmYWxzZTsgfVxuICAgICAgICB0aGlzLmVuc3VyZU5vdERpc3Bvc2VkKCk7XG4gICAgICAgIHJldHVybiAodGhpcy5fcmVnaXN0cnkuaGFzKHRva2VuKSB8fFxuICAgICAgICAgICAgKHJlY3Vyc2l2ZSAmJlxuICAgICAgICAgICAgICAgICh0aGlzLnBhcmVudCB8fCBmYWxzZSkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnBhcmVudC5pc1JlZ2lzdGVyZWQodG9rZW4sIHRydWUpKSk7XG4gICAgfTtcbiAgICBJbnRlcm5hbERlcGVuZGVuY3lDb250YWluZXIucHJvdG90eXBlLnJlc2V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmVuc3VyZU5vdERpc3Bvc2VkKCk7XG4gICAgICAgIHRoaXMuX3JlZ2lzdHJ5LmNsZWFyKCk7XG4gICAgICAgIHRoaXMuaW50ZXJjZXB0b3JzLnByZVJlc29sdXRpb24uY2xlYXIoKTtcbiAgICAgICAgdGhpcy5pbnRlcmNlcHRvcnMucG9zdFJlc29sdXRpb24uY2xlYXIoKTtcbiAgICB9O1xuICAgIEludGVybmFsRGVwZW5kZW5jeUNvbnRhaW5lci5wcm90b3R5cGUuY2xlYXJJbnN0YW5jZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBlXzMsIF9hO1xuICAgICAgICB0aGlzLmVuc3VyZU5vdERpc3Bvc2VkKCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBmb3IgKHZhciBfYiA9IF9fdmFsdWVzKHRoaXMuX3JlZ2lzdHJ5LmVudHJpZXMoKSksIF9jID0gX2IubmV4dCgpOyAhX2MuZG9uZTsgX2MgPSBfYi5uZXh0KCkpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2QgPSBfX3JlYWQoX2MudmFsdWUsIDIpLCB0b2tlbiA9IF9kWzBdLCByZWdpc3RyYXRpb25zID0gX2RbMV07XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVnaXN0cnkuc2V0QWxsKHRva2VuLCByZWdpc3RyYXRpb25zXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoZnVuY3Rpb24gKHJlZ2lzdHJhdGlvbikgeyByZXR1cm4gIWlzVmFsdWVQcm92aWRlcihyZWdpc3RyYXRpb24ucHJvdmlkZXIpOyB9KVxuICAgICAgICAgICAgICAgICAgICAubWFwKGZ1bmN0aW9uIChyZWdpc3RyYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgcmVnaXN0cmF0aW9uLmluc3RhbmNlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uO1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZV8zXzEpIHsgZV8zID0geyBlcnJvcjogZV8zXzEgfTsgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgaWYgKF9jICYmICFfYy5kb25lICYmIChfYSA9IF9iLnJldHVybikpIF9hLmNhbGwoX2IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmluYWxseSB7IGlmIChlXzMpIHRocm93IGVfMy5lcnJvcjsgfVxuICAgICAgICB9XG4gICAgfTtcbiAgICBJbnRlcm5hbERlcGVuZGVuY3lDb250YWluZXIucHJvdG90eXBlLmNyZWF0ZUNoaWxkQ29udGFpbmVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgZV80LCBfYTtcbiAgICAgICAgdGhpcy5lbnN1cmVOb3REaXNwb3NlZCgpO1xuICAgICAgICB2YXIgY2hpbGRDb250YWluZXIgPSBuZXcgSW50ZXJuYWxEZXBlbmRlbmN5Q29udGFpbmVyKHRoaXMpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZm9yICh2YXIgX2IgPSBfX3ZhbHVlcyh0aGlzLl9yZWdpc3RyeS5lbnRyaWVzKCkpLCBfYyA9IF9iLm5leHQoKTsgIV9jLmRvbmU7IF9jID0gX2IubmV4dCgpKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9kID0gX19yZWFkKF9jLnZhbHVlLCAyKSwgdG9rZW4gPSBfZFswXSwgcmVnaXN0cmF0aW9ucyA9IF9kWzFdO1xuICAgICAgICAgICAgICAgIGlmIChyZWdpc3RyYXRpb25zLnNvbWUoZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBvcHRpb25zID0gX2Eub3B0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMubGlmZWN5Y2xlID09PSBMaWZlY3ljbGUuQ29udGFpbmVyU2NvcGVkO1xuICAgICAgICAgICAgICAgIH0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkQ29udGFpbmVyLl9yZWdpc3RyeS5zZXRBbGwodG9rZW4sIHJlZ2lzdHJhdGlvbnMubWFwKGZ1bmN0aW9uIChyZWdpc3RyYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWdpc3RyYXRpb24ub3B0aW9ucy5saWZlY3ljbGUgPT09IExpZmVjeWNsZS5Db250YWluZXJTY29wZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlcjogcmVnaXN0cmF0aW9uLnByb3ZpZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiByZWdpc3RyYXRpb24ub3B0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uO1xuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlXzRfMSkgeyBlXzQgPSB7IGVycm9yOiBlXzRfMSB9OyB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBpZiAoX2MgJiYgIV9jLmRvbmUgJiYgKF9hID0gX2IucmV0dXJuKSkgX2EuY2FsbChfYik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaW5hbGx5IHsgaWYgKGVfNCkgdGhyb3cgZV80LmVycm9yOyB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNoaWxkQ29udGFpbmVyO1xuICAgIH07XG4gICAgSW50ZXJuYWxEZXBlbmRlbmN5Q29udGFpbmVyLnByb3RvdHlwZS5iZWZvcmVSZXNvbHV0aW9uID0gZnVuY3Rpb24gKHRva2VuLCBjYWxsYmFjaywgb3B0aW9ucykge1xuICAgICAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7IG9wdGlvbnMgPSB7IGZyZXF1ZW5jeTogXCJBbHdheXNcIiB9OyB9XG4gICAgICAgIHRoaXMuaW50ZXJjZXB0b3JzLnByZVJlc29sdXRpb24uc2V0KHRva2VuLCB7XG4gICAgICAgICAgICBjYWxsYmFjazogY2FsbGJhY2ssXG4gICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgSW50ZXJuYWxEZXBlbmRlbmN5Q29udGFpbmVyLnByb3RvdHlwZS5hZnRlclJlc29sdXRpb24gPSBmdW5jdGlvbiAodG9rZW4sIGNhbGxiYWNrLCBvcHRpb25zKSB7XG4gICAgICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIHsgb3B0aW9ucyA9IHsgZnJlcXVlbmN5OiBcIkFsd2F5c1wiIH07IH1cbiAgICAgICAgdGhpcy5pbnRlcmNlcHRvcnMucG9zdFJlc29sdXRpb24uc2V0KHRva2VuLCB7XG4gICAgICAgICAgICBjYWxsYmFjazogY2FsbGJhY2ssXG4gICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgSW50ZXJuYWxEZXBlbmRlbmN5Q29udGFpbmVyLnByb3RvdHlwZS5kaXNwb3NlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgcHJvbWlzZXM7XG4gICAgICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChfYS5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc3Bvc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb21pc2VzID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc3Bvc2FibGVzLmZvckVhY2goZnVuY3Rpb24gKGRpc3Bvc2FibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWF5YmVQcm9taXNlID0gZGlzcG9zYWJsZS5kaXNwb3NlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1heWJlUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKG1heWJlUHJvbWlzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzQsIFByb21pc2UuYWxsKHByb21pc2VzKV07XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgICAgIF9hLnNlbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbMl07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgSW50ZXJuYWxEZXBlbmRlbmN5Q29udGFpbmVyLnByb3RvdHlwZS5nZXRSZWdpc3RyYXRpb24gPSBmdW5jdGlvbiAodG9rZW4pIHtcbiAgICAgICAgaWYgKHRoaXMuaXNSZWdpc3RlcmVkKHRva2VuKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3JlZ2lzdHJ5LmdldCh0b2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucGFyZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQuZ2V0UmVnaXN0cmF0aW9uKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICAgIEludGVybmFsRGVwZW5kZW5jeUNvbnRhaW5lci5wcm90b3R5cGUuZ2V0QWxsUmVnaXN0cmF0aW9ucyA9IGZ1bmN0aW9uICh0b2tlbikge1xuICAgICAgICBpZiAodGhpcy5pc1JlZ2lzdGVyZWQodG9rZW4pKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcmVnaXN0cnkuZ2V0QWxsKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wYXJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcmVudC5nZXRBbGxSZWdpc3RyYXRpb25zKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICAgIEludGVybmFsRGVwZW5kZW5jeUNvbnRhaW5lci5wcm90b3R5cGUuY29uc3RydWN0ID0gZnVuY3Rpb24gKGN0b3IsIGNvbnRleHQpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgaWYgKGN0b3IgaW5zdGFuY2VvZiBEZWxheWVkQ29uc3RydWN0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiBjdG9yLmNyZWF0ZVByb3h5KGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX3RoaXMucmVzb2x2ZSh0YXJnZXQsIGNvbnRleHQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGluc3RhbmNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBwYXJhbUluZm8gPSB0eXBlSW5mby5nZXQoY3Rvcik7XG4gICAgICAgICAgICBpZiAoIXBhcmFtSW5mbyB8fCBwYXJhbUluZm8ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKGN0b3IubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgY3RvcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVHlwZUluZm8gbm90IGtub3duIGZvciBcXFwiXCIgKyBjdG9yLm5hbWUgKyBcIlxcXCJcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHBhcmFtcyA9IHBhcmFtSW5mby5tYXAoX3RoaXMucmVzb2x2ZVBhcmFtcyhjb250ZXh0LCBjdG9yKSk7XG4gICAgICAgICAgICByZXR1cm4gbmV3IChjdG9yLmJpbmQuYXBwbHkoY3RvciwgX19zcHJlYWQoW3ZvaWQgMF0sIHBhcmFtcykpKSgpO1xuICAgICAgICB9KSgpO1xuICAgICAgICBpZiAoaXNEaXNwb3NhYmxlKGluc3RhbmNlKSkge1xuICAgICAgICAgICAgdGhpcy5kaXNwb3NhYmxlcy5hZGQoaW5zdGFuY2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICB9O1xuICAgIEludGVybmFsRGVwZW5kZW5jeUNvbnRhaW5lci5wcm90b3R5cGUucmVzb2x2ZVBhcmFtcyA9IGZ1bmN0aW9uIChjb250ZXh0LCBjdG9yKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAocGFyYW0sIGlkeCkge1xuICAgICAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGlmIChpc1Rva2VuRGVzY3JpcHRvcihwYXJhbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzVHJhbnNmb3JtRGVzY3JpcHRvcihwYXJhbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJhbS5tdWx0aXBsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKF9hID0gX3RoaXMucmVzb2x2ZShwYXJhbS50cmFuc2Zvcm0pKS50cmFuc2Zvcm0uYXBwbHkoX2EsIF9fc3ByZWFkKFtfdGhpcy5yZXNvbHZlQWxsKHBhcmFtLnRva2VuKV0sIHBhcmFtLnRyYW5zZm9ybUFyZ3MpKSA6IChfYiA9IF90aGlzLnJlc29sdmUocGFyYW0udHJhbnNmb3JtKSkudHJhbnNmb3JtLmFwcGx5KF9iLCBfX3NwcmVhZChbX3RoaXMucmVzb2x2ZShwYXJhbS50b2tlbiwgY29udGV4dCldLCBwYXJhbS50cmFuc2Zvcm1BcmdzKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyYW0ubXVsdGlwbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IF90aGlzLnJlc29sdmVBbGwocGFyYW0udG9rZW4pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBfdGhpcy5yZXNvbHZlKHBhcmFtLnRva2VuLCBjb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChpc1RyYW5zZm9ybURlc2NyaXB0b3IocGFyYW0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2MgPSBfdGhpcy5yZXNvbHZlKHBhcmFtLnRyYW5zZm9ybSwgY29udGV4dCkpLnRyYW5zZm9ybS5hcHBseShfYywgX19zcHJlYWQoW190aGlzLnJlc29sdmUocGFyYW0udG9rZW4sIGNvbnRleHQpXSwgcGFyYW0udHJhbnNmb3JtQXJncykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gX3RoaXMucmVzb2x2ZShwYXJhbSwgY29udGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihmb3JtYXRFcnJvckN0b3IoY3RvciwgaWR4LCBlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfTtcbiAgICBJbnRlcm5hbERlcGVuZGVuY3lDb250YWluZXIucHJvdG90eXBlLmVuc3VyZU5vdERpc3Bvc2VkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5kaXNwb3NlZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhpcyBjb250YWluZXIgaGFzIGJlZW4gZGlzcG9zZWQsIHlvdSBjYW5ub3QgaW50ZXJhY3Qgd2l0aCBhIGRpc3Bvc2VkIGNvbnRhaW5lclwiKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIEludGVybmFsRGVwZW5kZW5jeUNvbnRhaW5lcjtcbn0oKSk7XG5leHBvcnQgdmFyIGluc3RhbmNlID0gbmV3IEludGVybmFsRGVwZW5kZW5jeUNvbnRhaW5lcigpO1xuZXhwb3J0IGRlZmF1bHQgaW5zdGFuY2U7XG4iLCJpbXBvcnQgeyBfX2V4dGVuZHMsIF9fcmVhZCwgX19zcHJlYWQgfSBmcm9tIFwidHNsaWJcIjtcbmltcG9ydCB7IGdldFBhcmFtSW5mbyB9IGZyb20gXCIuLi9yZWZsZWN0aW9uLWhlbHBlcnNcIjtcbmltcG9ydCB7IGluc3RhbmNlIGFzIGdsb2JhbENvbnRhaW5lciB9IGZyb20gXCIuLi9kZXBlbmRlbmN5LWNvbnRhaW5lclwiO1xuaW1wb3J0IHsgaXNUb2tlbkRlc2NyaXB0b3IsIGlzVHJhbnNmb3JtRGVzY3JpcHRvciB9IGZyb20gXCIuLi9wcm92aWRlcnMvaW5qZWN0aW9uLXRva2VuXCI7XG5pbXBvcnQgeyBmb3JtYXRFcnJvckN0b3IgfSBmcm9tIFwiLi4vZXJyb3ItaGVscGVyc1wiO1xuZnVuY3Rpb24gYXV0b0luamVjdGFibGUoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgICAgICAgdmFyIHBhcmFtSW5mbyA9IGdldFBhcmFtSW5mbyh0YXJnZXQpO1xuICAgICAgICByZXR1cm4gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICAgICAgICAgIF9fZXh0ZW5kcyhjbGFzc18xLCBfc3VwZXIpO1xuICAgICAgICAgICAgZnVuY3Rpb24gY2xhc3NfMSgpIHtcbiAgICAgICAgICAgICAgICB2YXIgYXJncyA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9zdXBlci5hcHBseSh0aGlzLCBfX3NwcmVhZChhcmdzLmNvbmNhdChwYXJhbUluZm8uc2xpY2UoYXJncy5sZW5ndGgpLm1hcChmdW5jdGlvbiAodHlwZSwgaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNUb2tlbkRlc2NyaXB0b3IodHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNUcmFuc2Zvcm1EZXNjcmlwdG9yKHR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0eXBlLm11bHRpcGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChfYSA9IGdsb2JhbENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXNvbHZlKHR5cGUudHJhbnNmb3JtKSkudHJhbnNmb3JtLmFwcGx5KF9hLCBfX3NwcmVhZChbZ2xvYmFsQ29udGFpbmVyLnJlc29sdmVBbGwodHlwZS50b2tlbildLCB0eXBlLnRyYW5zZm9ybUFyZ3MpKSA6IChfYiA9IGdsb2JhbENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlc29sdmUodHlwZS50cmFuc2Zvcm0pKS50cmFuc2Zvcm0uYXBwbHkoX2IsIF9fc3ByZWFkKFtnbG9iYWxDb250YWluZXIucmVzb2x2ZSh0eXBlLnRva2VuKV0sIHR5cGUudHJhbnNmb3JtQXJncykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGUubXVsdGlwbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZ2xvYmFsQ29udGFpbmVyLnJlc29sdmVBbGwodHlwZS50b2tlbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZ2xvYmFsQ29udGFpbmVyLnJlc29sdmUodHlwZS50b2tlbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNUcmFuc2Zvcm1EZXNjcmlwdG9yKHR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfYyA9IGdsb2JhbENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVzb2x2ZSh0eXBlLnRyYW5zZm9ybSkpLnRyYW5zZm9ybS5hcHBseShfYywgX19zcHJlYWQoW2dsb2JhbENvbnRhaW5lci5yZXNvbHZlKHR5cGUudG9rZW4pXSwgdHlwZS50cmFuc2Zvcm1BcmdzKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2xvYmFsQ29udGFpbmVyLnJlc29sdmUodHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhcmdJbmRleCA9IGluZGV4ICsgYXJncy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZm9ybWF0RXJyb3JDdG9yKHRhcmdldCwgYXJnSW5kZXgsIGUpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pKSkpIHx8IHRoaXM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY2xhc3NfMTtcbiAgICAgICAgfSh0YXJnZXQpKTtcbiAgICB9O1xufVxuZXhwb3J0IGRlZmF1bHQgYXV0b0luamVjdGFibGU7XG4iLCJpbXBvcnQgeyBnZXRQYXJhbUluZm8gfSBmcm9tIFwiLi4vcmVmbGVjdGlvbi1oZWxwZXJzXCI7XG5pbXBvcnQgeyB0eXBlSW5mbyB9IGZyb20gXCIuLi9kZXBlbmRlbmN5LWNvbnRhaW5lclwiO1xuZnVuY3Rpb24gaW5qZWN0YWJsZSgpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCkge1xuICAgICAgICB0eXBlSW5mby5zZXQodGFyZ2V0LCBnZXRQYXJhbUluZm8odGFyZ2V0KSk7XG4gICAgfTtcbn1cbmV4cG9ydCBkZWZhdWx0IGluamVjdGFibGU7XG4iLCJpbXBvcnQgaW5qZWN0YWJsZSBmcm9tIFwiLi9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBpbnN0YW5jZSBhcyBnbG9iYWxDb250YWluZXIgfSBmcm9tIFwiLi4vZGVwZW5kZW5jeS1jb250YWluZXJcIjtcbmZ1bmN0aW9uIHNpbmdsZXRvbigpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCkge1xuICAgICAgICBpbmplY3RhYmxlKCkodGFyZ2V0KTtcbiAgICAgICAgZ2xvYmFsQ29udGFpbmVyLnJlZ2lzdGVyU2luZ2xldG9uKHRhcmdldCk7XG4gICAgfTtcbn1cbmV4cG9ydCBkZWZhdWx0IHNpbmdsZXRvbjtcbiIsImlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5nZXRNZXRhZGF0YSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcInRzeXJpbmdlIHJlcXVpcmVzIGEgcmVmbGVjdCBwb2x5ZmlsbC4gUGxlYXNlIGFkZCAnaW1wb3J0IFxcXCJyZWZsZWN0LW1ldGFkYXRhXFxcIicgdG8gdGhlIHRvcCBvZiB5b3VyIGVudHJ5IHBvaW50LlwiKTtcbn1cbmV4cG9ydCB7IExpZmVjeWNsZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mYWN0b3JpZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Byb3ZpZGVyc1wiO1xuZXhwb3J0IHsgZGVsYXkgfSBmcm9tIFwiLi9sYXp5LWhlbHBlcnNcIjtcbmV4cG9ydCB7IGluc3RhbmNlIGFzIGNvbnRhaW5lciB9IGZyb20gXCIuL2RlcGVuZGVuY3ktY29udGFpbmVyXCI7XG4iLCJpbXBvcnQgYXhpb3MgZnJvbSBcImF4aW9zXCJcbmltcG9ydCB7c2luZ2xldG9ufSBmcm9tIFwidHN5cmluZ2VcIlxuXG5Ac2luZ2xldG9uKClcbmV4cG9ydCBjbGFzcyBUb2tlbiB7XG4gICAgcHVibGljIGN1cnJlbnRUb2tlbjpTdHJpbmdcblxuICAgIGluaXQoKSB7XG4gICAgICAgIHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuKClcbiAgICAgICAgfSwgMio2MCoxMDAwKVxuICAgIH1cbiAgICByZWZyZXNoVG9rZW4oKTogdm9pZCB7XG4gICAgICAgIGF4aW9zLmdldCgnL2FwcHMvYXBpL2NvbnRhY3QvcmVmcmVzaCcsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIHRoaXMuY3VycmVudFRva2VuXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLnRoZW4oKCByZXNwb25zZSApID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFRva2VuID0gcmVzcG9uc2UuZGF0YS50b2tlblxuICAgICAgICB9KVxuICAgIH1cbn1cbiIsIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHNjaGVkdWxlci5wcm9kdWN0aW9uLm1pbi5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG4ndXNlIHN0cmljdCc7ZnVuY3Rpb24gZihhLGIpe3ZhciBjPWEubGVuZ3RoO2EucHVzaChiKTthOmZvcig7MDxjOyl7dmFyIGQ9Yy0xPj4+MSxlPWFbZF07aWYoMDxnKGUsYikpYVtkXT1iLGFbY109ZSxjPWQ7ZWxzZSBicmVhayBhfX1mdW5jdGlvbiBoKGEpe3JldHVybiAwPT09YS5sZW5ndGg/bnVsbDphWzBdfWZ1bmN0aW9uIGsoYSl7aWYoMD09PWEubGVuZ3RoKXJldHVybiBudWxsO3ZhciBiPWFbMF0sYz1hLnBvcCgpO2lmKGMhPT1iKXthWzBdPWM7YTpmb3IodmFyIGQ9MCxlPWEubGVuZ3RoLHc9ZT4+PjE7ZDx3Oyl7dmFyIG09MiooZCsxKS0xLEM9YVttXSxuPW0rMSx4PWFbbl07aWYoMD5nKEMsYykpbjxlJiYwPmcoeCxDKT8oYVtkXT14LGFbbl09YyxkPW4pOihhW2RdPUMsYVttXT1jLGQ9bSk7ZWxzZSBpZihuPGUmJjA+Zyh4LGMpKWFbZF09eCxhW25dPWMsZD1uO2Vsc2UgYnJlYWsgYX19cmV0dXJuIGJ9XG5mdW5jdGlvbiBnKGEsYil7dmFyIGM9YS5zb3J0SW5kZXgtYi5zb3J0SW5kZXg7cmV0dXJuIDAhPT1jP2M6YS5pZC1iLmlkfWlmKFwib2JqZWN0XCI9PT10eXBlb2YgcGVyZm9ybWFuY2UmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBwZXJmb3JtYW5jZS5ub3cpe3ZhciBsPXBlcmZvcm1hbmNlO2V4cG9ydHMudW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIGwubm93KCl9fWVsc2V7dmFyIHA9RGF0ZSxxPXAubm93KCk7ZXhwb3J0cy51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gcC5ub3coKS1xfX12YXIgcj1bXSx0PVtdLHU9MSx2PW51bGwseT0zLHo9ITEsQT0hMSxCPSExLEQ9XCJmdW5jdGlvblwiPT09dHlwZW9mIHNldFRpbWVvdXQ/c2V0VGltZW91dDpudWxsLEU9XCJmdW5jdGlvblwiPT09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6bnVsbCxGPVwidW5kZWZpbmVkXCIhPT10eXBlb2Ygc2V0SW1tZWRpYXRlP3NldEltbWVkaWF0ZTpudWxsO1xuXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBuYXZpZ2F0b3ImJnZvaWQgMCE9PW5hdmlnYXRvci5zY2hlZHVsaW5nJiZ2b2lkIDAhPT1uYXZpZ2F0b3Iuc2NoZWR1bGluZy5pc0lucHV0UGVuZGluZyYmbmF2aWdhdG9yLnNjaGVkdWxpbmcuaXNJbnB1dFBlbmRpbmcuYmluZChuYXZpZ2F0b3Iuc2NoZWR1bGluZyk7ZnVuY3Rpb24gRyhhKXtmb3IodmFyIGI9aCh0KTtudWxsIT09Yjspe2lmKG51bGw9PT1iLmNhbGxiYWNrKWsodCk7ZWxzZSBpZihiLnN0YXJ0VGltZTw9YSlrKHQpLGIuc29ydEluZGV4PWIuZXhwaXJhdGlvblRpbWUsZihyLGIpO2Vsc2UgYnJlYWs7Yj1oKHQpfX1mdW5jdGlvbiBIKGEpe0I9ITE7RyhhKTtpZighQSlpZihudWxsIT09aChyKSlBPSEwLEkoSik7ZWxzZXt2YXIgYj1oKHQpO251bGwhPT1iJiZLKEgsYi5zdGFydFRpbWUtYSl9fVxuZnVuY3Rpb24gSihhLGIpe0E9ITE7QiYmKEI9ITEsRShMKSxMPS0xKTt6PSEwO3ZhciBjPXk7dHJ5e0coYik7Zm9yKHY9aChyKTtudWxsIT09diYmKCEodi5leHBpcmF0aW9uVGltZT5iKXx8YSYmIU0oKSk7KXt2YXIgZD12LmNhbGxiYWNrO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkKXt2LmNhbGxiYWNrPW51bGw7eT12LnByaW9yaXR5TGV2ZWw7dmFyIGU9ZCh2LmV4cGlyYXRpb25UaW1lPD1iKTtiPWV4cG9ydHMudW5zdGFibGVfbm93KCk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGU/di5jYWxsYmFjaz1lOnY9PT1oKHIpJiZrKHIpO0coYil9ZWxzZSBrKHIpO3Y9aChyKX1pZihudWxsIT09dil2YXIgdz0hMDtlbHNle3ZhciBtPWgodCk7bnVsbCE9PW0mJksoSCxtLnN0YXJ0VGltZS1iKTt3PSExfXJldHVybiB3fWZpbmFsbHl7dj1udWxsLHk9Yyx6PSExfX12YXIgTj0hMSxPPW51bGwsTD0tMSxQPTUsUT0tMTtcbmZ1bmN0aW9uIE0oKXtyZXR1cm4gZXhwb3J0cy51bnN0YWJsZV9ub3coKS1RPFA/ITE6ITB9ZnVuY3Rpb24gUigpe2lmKG51bGwhPT1PKXt2YXIgYT1leHBvcnRzLnVuc3RhYmxlX25vdygpO1E9YTt2YXIgYj0hMDt0cnl7Yj1PKCEwLGEpfWZpbmFsbHl7Yj9TKCk6KE49ITEsTz1udWxsKX19ZWxzZSBOPSExfXZhciBTO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBGKVM9ZnVuY3Rpb24oKXtGKFIpfTtlbHNlIGlmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgTWVzc2FnZUNoYW5uZWwpe3ZhciBUPW5ldyBNZXNzYWdlQ2hhbm5lbCxVPVQucG9ydDI7VC5wb3J0MS5vbm1lc3NhZ2U9UjtTPWZ1bmN0aW9uKCl7VS5wb3N0TWVzc2FnZShudWxsKX19ZWxzZSBTPWZ1bmN0aW9uKCl7RChSLDApfTtmdW5jdGlvbiBJKGEpe089YTtOfHwoTj0hMCxTKCkpfWZ1bmN0aW9uIEsoYSxiKXtMPUQoZnVuY3Rpb24oKXthKGV4cG9ydHMudW5zdGFibGVfbm93KCkpfSxiKX1cbmV4cG9ydHMudW5zdGFibGVfSWRsZVByaW9yaXR5PTU7ZXhwb3J0cy51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eT0xO2V4cG9ydHMudW5zdGFibGVfTG93UHJpb3JpdHk9NDtleHBvcnRzLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5PTM7ZXhwb3J0cy51bnN0YWJsZV9Qcm9maWxpbmc9bnVsbDtleHBvcnRzLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5PTI7ZXhwb3J0cy51bnN0YWJsZV9jYW5jZWxDYWxsYmFjaz1mdW5jdGlvbihhKXthLmNhbGxiYWNrPW51bGx9O2V4cG9ydHMudW5zdGFibGVfY29udGludWVFeGVjdXRpb249ZnVuY3Rpb24oKXtBfHx6fHwoQT0hMCxJKEopKX07XG5leHBvcnRzLnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlPWZ1bmN0aW9uKGEpezA+YXx8MTI1PGE/Y29uc29sZS5lcnJvcihcImZvcmNlRnJhbWVSYXRlIHRha2VzIGEgcG9zaXRpdmUgaW50IGJldHdlZW4gMCBhbmQgMTI1LCBmb3JjaW5nIGZyYW1lIHJhdGVzIGhpZ2hlciB0aGFuIDEyNSBmcHMgaXMgbm90IHN1cHBvcnRlZFwiKTpQPTA8YT9NYXRoLmZsb29yKDFFMy9hKTo1fTtleHBvcnRzLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsPWZ1bmN0aW9uKCl7cmV0dXJuIHl9O2V4cG9ydHMudW5zdGFibGVfZ2V0Rmlyc3RDYWxsYmFja05vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gaChyKX07ZXhwb3J0cy51bnN0YWJsZV9uZXh0PWZ1bmN0aW9uKGEpe3N3aXRjaCh5KXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzp2YXIgYj0zO2JyZWFrO2RlZmF1bHQ6Yj15fXZhciBjPXk7eT1iO3RyeXtyZXR1cm4gYSgpfWZpbmFsbHl7eT1jfX07ZXhwb3J0cy51bnN0YWJsZV9wYXVzZUV4ZWN1dGlvbj1mdW5jdGlvbigpe307XG5leHBvcnRzLnVuc3RhYmxlX3JlcXVlc3RQYWludD1mdW5jdGlvbigpe307ZXhwb3J0cy51bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHk9ZnVuY3Rpb24oYSxiKXtzd2l0Y2goYSl7Y2FzZSAxOmNhc2UgMjpjYXNlIDM6Y2FzZSA0OmNhc2UgNTpicmVhaztkZWZhdWx0OmE9M312YXIgYz15O3k9YTt0cnl7cmV0dXJuIGIoKX1maW5hbGx5e3k9Y319O1xuZXhwb3J0cy51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1leHBvcnRzLnVuc3RhYmxlX25vdygpO1wib2JqZWN0XCI9PT10eXBlb2YgYyYmbnVsbCE9PWM/KGM9Yy5kZWxheSxjPVwibnVtYmVyXCI9PT10eXBlb2YgYyYmMDxjP2QrYzpkKTpjPWQ7c3dpdGNoKGEpe2Nhc2UgMTp2YXIgZT0tMTticmVhaztjYXNlIDI6ZT0yNTA7YnJlYWs7Y2FzZSA1OmU9MTA3Mzc0MTgyMzticmVhaztjYXNlIDQ6ZT0xRTQ7YnJlYWs7ZGVmYXVsdDplPTVFM31lPWMrZTthPXtpZDp1KyssY2FsbGJhY2s6Yixwcmlvcml0eUxldmVsOmEsc3RhcnRUaW1lOmMsZXhwaXJhdGlvblRpbWU6ZSxzb3J0SW5kZXg6LTF9O2M+ZD8oYS5zb3J0SW5kZXg9YyxmKHQsYSksbnVsbD09PWgocikmJmE9PT1oKHQpJiYoQj8oRShMKSxMPS0xKTpCPSEwLEsoSCxjLWQpKSk6KGEuc29ydEluZGV4PWUsZihyLGEpLEF8fHp8fChBPSEwLEkoSikpKTtyZXR1cm4gYX07XG5leHBvcnRzLnVuc3RhYmxlX3Nob3VsZFlpZWxkPU07ZXhwb3J0cy51bnN0YWJsZV93cmFwQ2FsbGJhY2s9ZnVuY3Rpb24oYSl7dmFyIGI9eTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYz15O3k9Yjt0cnl7cmV0dXJuIGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZpbmFsbHl7eT1jfX19O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3NjaGVkdWxlci5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9zY2hlZHVsZXIuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiIsIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHJlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG4vKlxuIE1vZGVybml6ciAzLjAuMHByZSAoQ3VzdG9tIEJ1aWxkKSB8IE1JVFxuKi9cbid1c2Ugc3RyaWN0Jzt2YXIgYWE9cmVxdWlyZShcInJlYWN0XCIpLGNhPXJlcXVpcmUoXCJzY2hlZHVsZXJcIik7ZnVuY3Rpb24gcChhKXtmb3IodmFyIGI9XCJodHRwczovL3JlYWN0anMub3JnL2RvY3MvZXJyb3ItZGVjb2Rlci5odG1sP2ludmFyaWFudD1cIithLGM9MTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKWIrPVwiJmFyZ3NbXT1cIitlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzW2NdKTtyZXR1cm5cIk1pbmlmaWVkIFJlYWN0IGVycm9yICNcIithK1wiOyB2aXNpdCBcIitiK1wiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy5cIn12YXIgZGE9bmV3IFNldCxlYT17fTtmdW5jdGlvbiBmYShhLGIpe2hhKGEsYik7aGEoYStcIkNhcHR1cmVcIixiKX1cbmZ1bmN0aW9uIGhhKGEsYil7ZWFbYV09Yjtmb3IoYT0wO2E8Yi5sZW5ndGg7YSsrKWRhLmFkZChiW2FdKX1cbnZhciBpYT0hKFwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93fHxcInVuZGVmaW5lZFwiPT09dHlwZW9mIHdpbmRvdy5kb2N1bWVudHx8XCJ1bmRlZmluZWRcIj09PXR5cGVvZiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCksamE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxrYT0vXls6QS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRF1bOkEtWl9hLXpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyRkZcXHUwMzcwLVxcdTAzN0RcXHUwMzdGLVxcdTFGRkZcXHUyMDBDLVxcdTIwMERcXHUyMDcwLVxcdTIxOEZcXHUyQzAwLVxcdTJGRUZcXHUzMDAxLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRkRcXC0uMC05XFx1MDBCN1xcdTAzMDAtXFx1MDM2RlxcdTIwM0YtXFx1MjA0MF0qJC8sbGE9XG57fSxtYT17fTtmdW5jdGlvbiBvYShhKXtpZihqYS5jYWxsKG1hLGEpKXJldHVybiEwO2lmKGphLmNhbGwobGEsYSkpcmV0dXJuITE7aWYoa2EudGVzdChhKSlyZXR1cm4gbWFbYV09ITA7bGFbYV09ITA7cmV0dXJuITF9ZnVuY3Rpb24gcGEoYSxiLGMsZCl7aWYobnVsbCE9PWMmJjA9PT1jLnR5cGUpcmV0dXJuITE7c3dpdGNoKHR5cGVvZiBiKXtjYXNlIFwiZnVuY3Rpb25cIjpjYXNlIFwic3ltYm9sXCI6cmV0dXJuITA7Y2FzZSBcImJvb2xlYW5cIjppZihkKXJldHVybiExO2lmKG51bGwhPT1jKXJldHVybiFjLmFjY2VwdHNCb29sZWFuczthPWEudG9Mb3dlckNhc2UoKS5zbGljZSgwLDUpO3JldHVyblwiZGF0YS1cIiE9PWEmJlwiYXJpYS1cIiE9PWE7ZGVmYXVsdDpyZXR1cm4hMX19XG5mdW5jdGlvbiBxYShhLGIsYyxkKXtpZihudWxsPT09Ynx8XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBifHxwYShhLGIsYyxkKSlyZXR1cm4hMDtpZihkKXJldHVybiExO2lmKG51bGwhPT1jKXN3aXRjaChjLnR5cGUpe2Nhc2UgMzpyZXR1cm4hYjtjYXNlIDQ6cmV0dXJuITE9PT1iO2Nhc2UgNTpyZXR1cm4gaXNOYU4oYik7Y2FzZSA2OnJldHVybiBpc05hTihiKXx8MT5ifXJldHVybiExfWZ1bmN0aW9uIHYoYSxiLGMsZCxlLGYsZyl7dGhpcy5hY2NlcHRzQm9vbGVhbnM9Mj09PWJ8fDM9PT1ifHw0PT09Yjt0aGlzLmF0dHJpYnV0ZU5hbWU9ZDt0aGlzLmF0dHJpYnV0ZU5hbWVzcGFjZT1lO3RoaXMubXVzdFVzZVByb3BlcnR5PWM7dGhpcy5wcm9wZXJ0eU5hbWU9YTt0aGlzLnR5cGU9Yjt0aGlzLnNhbml0aXplVVJMPWY7dGhpcy5yZW1vdmVFbXB0eVN0cmluZz1nfXZhciB6PXt9O1xuXCJjaGlsZHJlbiBkYW5nZXJvdXNseVNldElubmVySFRNTCBkZWZhdWx0VmFsdWUgZGVmYXVsdENoZWNrZWQgaW5uZXJIVE1MIHN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyBzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcgc3R5bGVcIi5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsMCwhMSxhLG51bGwsITEsITEpfSk7W1tcImFjY2VwdENoYXJzZXRcIixcImFjY2VwdC1jaGFyc2V0XCJdLFtcImNsYXNzTmFtZVwiLFwiY2xhc3NcIl0sW1wiaHRtbEZvclwiLFwiZm9yXCJdLFtcImh0dHBFcXVpdlwiLFwiaHR0cC1lcXVpdlwiXV0uZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hWzBdO3pbYl09bmV3IHYoYiwxLCExLGFbMV0sbnVsbCwhMSwhMSl9KTtbXCJjb250ZW50RWRpdGFibGVcIixcImRyYWdnYWJsZVwiLFwic3BlbGxDaGVja1wiLFwidmFsdWVcIl0uZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsMiwhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KTtcbltcImF1dG9SZXZlcnNlXCIsXCJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXCIsXCJmb2N1c2FibGVcIixcInByZXNlcnZlQWxwaGFcIl0uZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsMiwhMSxhLG51bGwsITEsITEpfSk7XCJhbGxvd0Z1bGxTY3JlZW4gYXN5bmMgYXV0b0ZvY3VzIGF1dG9QbGF5IGNvbnRyb2xzIGRlZmF1bHQgZGVmZXIgZGlzYWJsZWQgZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUgZGlzYWJsZVJlbW90ZVBsYXliYWNrIGZvcm1Ob1ZhbGlkYXRlIGhpZGRlbiBsb29wIG5vTW9kdWxlIG5vVmFsaWRhdGUgb3BlbiBwbGF5c0lubGluZSByZWFkT25seSByZXF1aXJlZCByZXZlcnNlZCBzY29wZWQgc2VhbWxlc3MgaXRlbVNjb3BlXCIuc3BsaXQoXCIgXCIpLmZvckVhY2goZnVuY3Rpb24oYSl7elthXT1uZXcgdihhLDMsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSk7XG5bXCJjaGVja2VkXCIsXCJtdWx0aXBsZVwiLFwibXV0ZWRcIixcInNlbGVjdGVkXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7elthXT1uZXcgdihhLDMsITAsYSxudWxsLCExLCExKX0pO1tcImNhcHR1cmVcIixcImRvd25sb2FkXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7elthXT1uZXcgdihhLDQsITEsYSxudWxsLCExLCExKX0pO1tcImNvbHNcIixcInJvd3NcIixcInNpemVcIixcInNwYW5cIl0uZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsNiwhMSxhLG51bGwsITEsITEpfSk7W1wicm93U3BhblwiLFwic3RhcnRcIl0uZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsNSwhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KTt2YXIgcmE9L1tcXC06XShbYS16XSkvZztmdW5jdGlvbiBzYShhKXtyZXR1cm4gYVsxXS50b1VwcGVyQ2FzZSgpfVxuXCJhY2NlbnQtaGVpZ2h0IGFsaWdubWVudC1iYXNlbGluZSBhcmFiaWMtZm9ybSBiYXNlbGluZS1zaGlmdCBjYXAtaGVpZ2h0IGNsaXAtcGF0aCBjbGlwLXJ1bGUgY29sb3ItaW50ZXJwb2xhdGlvbiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMgY29sb3ItcHJvZmlsZSBjb2xvci1yZW5kZXJpbmcgZG9taW5hbnQtYmFzZWxpbmUgZW5hYmxlLWJhY2tncm91bmQgZmlsbC1vcGFjaXR5IGZpbGwtcnVsZSBmbG9vZC1jb2xvciBmbG9vZC1vcGFjaXR5IGZvbnQtZmFtaWx5IGZvbnQtc2l6ZSBmb250LXNpemUtYWRqdXN0IGZvbnQtc3RyZXRjaCBmb250LXN0eWxlIGZvbnQtdmFyaWFudCBmb250LXdlaWdodCBnbHlwaC1uYW1lIGdseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwgZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwgaG9yaXotYWR2LXggaG9yaXotb3JpZ2luLXggaW1hZ2UtcmVuZGVyaW5nIGxldHRlci1zcGFjaW5nIGxpZ2h0aW5nLWNvbG9yIG1hcmtlci1lbmQgbWFya2VyLW1pZCBtYXJrZXItc3RhcnQgb3ZlcmxpbmUtcG9zaXRpb24gb3ZlcmxpbmUtdGhpY2tuZXNzIHBhaW50LW9yZGVyIHBhbm9zZS0xIHBvaW50ZXItZXZlbnRzIHJlbmRlcmluZy1pbnRlbnQgc2hhcGUtcmVuZGVyaW5nIHN0b3AtY29sb3Igc3RvcC1vcGFjaXR5IHN0cmlrZXRocm91Z2gtcG9zaXRpb24gc3RyaWtldGhyb3VnaC10aGlja25lc3Mgc3Ryb2tlLWRhc2hhcnJheSBzdHJva2UtZGFzaG9mZnNldCBzdHJva2UtbGluZWNhcCBzdHJva2UtbGluZWpvaW4gc3Ryb2tlLW1pdGVybGltaXQgc3Ryb2tlLW9wYWNpdHkgc3Ryb2tlLXdpZHRoIHRleHQtYW5jaG9yIHRleHQtZGVjb3JhdGlvbiB0ZXh0LXJlbmRlcmluZyB1bmRlcmxpbmUtcG9zaXRpb24gdW5kZXJsaW5lLXRoaWNrbmVzcyB1bmljb2RlLWJpZGkgdW5pY29kZS1yYW5nZSB1bml0cy1wZXItZW0gdi1hbHBoYWJldGljIHYtaGFuZ2luZyB2LWlkZW9ncmFwaGljIHYtbWF0aGVtYXRpY2FsIHZlY3Rvci1lZmZlY3QgdmVydC1hZHYteSB2ZXJ0LW9yaWdpbi14IHZlcnQtb3JpZ2luLXkgd29yZC1zcGFjaW5nIHdyaXRpbmctbW9kZSB4bWxuczp4bGluayB4LWhlaWdodFwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShyYSxcbnNhKTt6W2JdPW5ldyB2KGIsMSwhMSxhLG51bGwsITEsITEpfSk7XCJ4bGluazphY3R1YXRlIHhsaW5rOmFyY3JvbGUgeGxpbms6cm9sZSB4bGluazpzaG93IHhsaW5rOnRpdGxlIHhsaW5rOnR5cGVcIi5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UocmEsc2EpO3pbYl09bmV3IHYoYiwxLCExLGEsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsITEsITEpfSk7W1wieG1sOmJhc2VcIixcInhtbDpsYW5nXCIsXCJ4bWw6c3BhY2VcIl0uZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UocmEsc2EpO3pbYl09bmV3IHYoYiwxLCExLGEsXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIiwhMSwhMSl9KTtbXCJ0YWJJbmRleFwiLFwiY3Jvc3NPcmlnaW5cIl0uZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsMSwhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KTtcbnoueGxpbmtIcmVmPW5ldyB2KFwieGxpbmtIcmVmXCIsMSwhMSxcInhsaW5rOmhyZWZcIixcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiwhMCwhMSk7W1wic3JjXCIsXCJocmVmXCIsXCJhY3Rpb25cIixcImZvcm1BY3Rpb25cIl0uZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsMSwhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMCwhMCl9KTtcbmZ1bmN0aW9uIHRhKGEsYixjLGQpe3ZhciBlPXouaGFzT3duUHJvcGVydHkoYik/eltiXTpudWxsO2lmKG51bGwhPT1lPzAhPT1lLnR5cGU6ZHx8ISgyPGIubGVuZ3RoKXx8XCJvXCIhPT1iWzBdJiZcIk9cIiE9PWJbMF18fFwiblwiIT09YlsxXSYmXCJOXCIhPT1iWzFdKXFhKGIsYyxlLGQpJiYoYz1udWxsKSxkfHxudWxsPT09ZT9vYShiKSYmKG51bGw9PT1jP2EucmVtb3ZlQXR0cmlidXRlKGIpOmEuc2V0QXR0cmlidXRlKGIsXCJcIitjKSk6ZS5tdXN0VXNlUHJvcGVydHk/YVtlLnByb3BlcnR5TmFtZV09bnVsbD09PWM/Mz09PWUudHlwZT8hMTpcIlwiOmM6KGI9ZS5hdHRyaWJ1dGVOYW1lLGQ9ZS5hdHRyaWJ1dGVOYW1lc3BhY2UsbnVsbD09PWM/YS5yZW1vdmVBdHRyaWJ1dGUoYik6KGU9ZS50eXBlLGM9Mz09PWV8fDQ9PT1lJiYhMD09PWM/XCJcIjpcIlwiK2MsZD9hLnNldEF0dHJpYnV0ZU5TKGQsYixjKTphLnNldEF0dHJpYnV0ZShiLGMpKSl9XG52YXIgdWE9YWEuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQsdmE9U3ltYm9sLmZvcihcInJlYWN0LmVsZW1lbnRcIiksd2E9U3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKSx5YT1TeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIiksemE9U3ltYm9sLmZvcihcInJlYWN0LnN0cmljdF9tb2RlXCIpLEFhPVN5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKSxCYT1TeW1ib2wuZm9yKFwicmVhY3QucHJvdmlkZXJcIiksQ2E9U3ltYm9sLmZvcihcInJlYWN0LmNvbnRleHRcIiksRGE9U3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpLEVhPVN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZVwiKSxGYT1TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VfbGlzdFwiKSxHYT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb1wiKSxIYT1TeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKTtTeW1ib2wuZm9yKFwicmVhY3Quc2NvcGVcIik7U3ltYm9sLmZvcihcInJlYWN0LmRlYnVnX3RyYWNlX21vZGVcIik7XG52YXIgSWE9U3ltYm9sLmZvcihcInJlYWN0Lm9mZnNjcmVlblwiKTtTeW1ib2wuZm9yKFwicmVhY3QubGVnYWN5X2hpZGRlblwiKTtTeW1ib2wuZm9yKFwicmVhY3QuY2FjaGVcIik7U3ltYm9sLmZvcihcInJlYWN0LnRyYWNpbmdfbWFya2VyXCIpO3ZhciBKYT1TeW1ib2wuaXRlcmF0b3I7ZnVuY3Rpb24gS2EoYSl7aWYobnVsbD09PWF8fFwib2JqZWN0XCIhPT10eXBlb2YgYSlyZXR1cm4gbnVsbDthPUphJiZhW0phXXx8YVtcIkBAaXRlcmF0b3JcIl07cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIGE/YTpudWxsfXZhciBBPU9iamVjdC5hc3NpZ24sTGE7ZnVuY3Rpb24gTWEoYSl7aWYodm9pZCAwPT09TGEpdHJ5e3Rocm93IEVycm9yKCk7fWNhdGNoKGMpe3ZhciBiPWMuc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLyk7TGE9YiYmYlsxXXx8XCJcIn1yZXR1cm5cIlxcblwiK0xhK2F9dmFyIE5hPSExO1xuZnVuY3Rpb24gT2EoYSxiKXtpZighYXx8TmEpcmV0dXJuXCJcIjtOYT0hMDt2YXIgYz1FcnJvci5wcmVwYXJlU3RhY2tUcmFjZTtFcnJvci5wcmVwYXJlU3RhY2tUcmFjZT12b2lkIDA7dHJ5e2lmKGIpaWYoYj1mdW5jdGlvbigpe3Rocm93IEVycm9yKCk7fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5wcm90b3R5cGUsXCJwcm9wc1wiLHtzZXQ6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpO319KSxcIm9iamVjdFwiPT09dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuY29uc3RydWN0KXt0cnl7UmVmbGVjdC5jb25zdHJ1Y3QoYixbXSl9Y2F0Y2gobCl7dmFyIGQ9bH1SZWZsZWN0LmNvbnN0cnVjdChhLFtdLGIpfWVsc2V7dHJ5e2IuY2FsbCgpfWNhdGNoKGwpe2Q9bH1hLmNhbGwoYi5wcm90b3R5cGUpfWVsc2V7dHJ5e3Rocm93IEVycm9yKCk7fWNhdGNoKGwpe2Q9bH1hKCl9fWNhdGNoKGwpe2lmKGwmJmQmJlwic3RyaW5nXCI9PT10eXBlb2YgbC5zdGFjayl7Zm9yKHZhciBlPWwuc3RhY2suc3BsaXQoXCJcXG5cIiksXG5mPWQuc3RhY2suc3BsaXQoXCJcXG5cIiksZz1lLmxlbmd0aC0xLGg9Zi5sZW5ndGgtMTsxPD1nJiYwPD1oJiZlW2ddIT09ZltoXTspaC0tO2Zvcig7MTw9ZyYmMDw9aDtnLS0saC0tKWlmKGVbZ10hPT1mW2hdKXtpZigxIT09Z3x8MSE9PWgpe2RvIGlmKGctLSxoLS0sMD5ofHxlW2ddIT09ZltoXSl7dmFyIGs9XCJcXG5cIitlW2ddLnJlcGxhY2UoXCIgYXQgbmV3IFwiLFwiIGF0IFwiKTthLmRpc3BsYXlOYW1lJiZrLmluY2x1ZGVzKFwiPGFub255bW91cz5cIikmJihrPWsucmVwbGFjZShcIjxhbm9ueW1vdXM+XCIsYS5kaXNwbGF5TmFtZSkpO3JldHVybiBrfXdoaWxlKDE8PWcmJjA8PWgpfWJyZWFrfX19ZmluYWxseXtOYT0hMSxFcnJvci5wcmVwYXJlU3RhY2tUcmFjZT1jfXJldHVybihhPWE/YS5kaXNwbGF5TmFtZXx8YS5uYW1lOlwiXCIpP01hKGEpOlwiXCJ9XG5mdW5jdGlvbiBQYShhKXtzd2l0Y2goYS50YWcpe2Nhc2UgNTpyZXR1cm4gTWEoYS50eXBlKTtjYXNlIDE2OnJldHVybiBNYShcIkxhenlcIik7Y2FzZSAxMzpyZXR1cm4gTWEoXCJTdXNwZW5zZVwiKTtjYXNlIDE5OnJldHVybiBNYShcIlN1c3BlbnNlTGlzdFwiKTtjYXNlIDA6Y2FzZSAyOmNhc2UgMTU6cmV0dXJuIGE9T2EoYS50eXBlLCExKSxhO2Nhc2UgMTE6cmV0dXJuIGE9T2EoYS50eXBlLnJlbmRlciwhMSksYTtjYXNlIDE6cmV0dXJuIGE9T2EoYS50eXBlLCEwKSxhO2RlZmF1bHQ6cmV0dXJuXCJcIn19XG5mdW5jdGlvbiBRYShhKXtpZihudWxsPT1hKXJldHVybiBudWxsO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhKXJldHVybiBhLmRpc3BsYXlOYW1lfHxhLm5hbWV8fG51bGw7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBhKXJldHVybiBhO3N3aXRjaChhKXtjYXNlIHlhOnJldHVyblwiRnJhZ21lbnRcIjtjYXNlIHdhOnJldHVyblwiUG9ydGFsXCI7Y2FzZSBBYTpyZXR1cm5cIlByb2ZpbGVyXCI7Y2FzZSB6YTpyZXR1cm5cIlN0cmljdE1vZGVcIjtjYXNlIEVhOnJldHVyblwiU3VzcGVuc2VcIjtjYXNlIEZhOnJldHVyblwiU3VzcGVuc2VMaXN0XCJ9aWYoXCJvYmplY3RcIj09PXR5cGVvZiBhKXN3aXRjaChhLiQkdHlwZW9mKXtjYXNlIENhOnJldHVybihhLmRpc3BsYXlOYW1lfHxcIkNvbnRleHRcIikrXCIuQ29uc3VtZXJcIjtjYXNlIEJhOnJldHVybihhLl9jb250ZXh0LmRpc3BsYXlOYW1lfHxcIkNvbnRleHRcIikrXCIuUHJvdmlkZXJcIjtjYXNlIERhOnZhciBiPWEucmVuZGVyO2E9YS5kaXNwbGF5TmFtZTthfHwoYT1iLmRpc3BsYXlOYW1lfHxcbmIubmFtZXx8XCJcIixhPVwiXCIhPT1hP1wiRm9yd2FyZFJlZihcIithK1wiKVwiOlwiRm9yd2FyZFJlZlwiKTtyZXR1cm4gYTtjYXNlIEdhOnJldHVybiBiPWEuZGlzcGxheU5hbWV8fG51bGwsbnVsbCE9PWI/YjpRYShhLnR5cGUpfHxcIk1lbW9cIjtjYXNlIEhhOmI9YS5fcGF5bG9hZDthPWEuX2luaXQ7dHJ5e3JldHVybiBRYShhKGIpKX1jYXRjaChjKXt9fXJldHVybiBudWxsfVxuZnVuY3Rpb24gUmEoYSl7dmFyIGI9YS50eXBlO3N3aXRjaChhLnRhZyl7Y2FzZSAyNDpyZXR1cm5cIkNhY2hlXCI7Y2FzZSA5OnJldHVybihiLmRpc3BsYXlOYW1lfHxcIkNvbnRleHRcIikrXCIuQ29uc3VtZXJcIjtjYXNlIDEwOnJldHVybihiLl9jb250ZXh0LmRpc3BsYXlOYW1lfHxcIkNvbnRleHRcIikrXCIuUHJvdmlkZXJcIjtjYXNlIDE4OnJldHVyblwiRGVoeWRyYXRlZEZyYWdtZW50XCI7Y2FzZSAxMTpyZXR1cm4gYT1iLnJlbmRlcixhPWEuZGlzcGxheU5hbWV8fGEubmFtZXx8XCJcIixiLmRpc3BsYXlOYW1lfHwoXCJcIiE9PWE/XCJGb3J3YXJkUmVmKFwiK2ErXCIpXCI6XCJGb3J3YXJkUmVmXCIpO2Nhc2UgNzpyZXR1cm5cIkZyYWdtZW50XCI7Y2FzZSA1OnJldHVybiBiO2Nhc2UgNDpyZXR1cm5cIlBvcnRhbFwiO2Nhc2UgMzpyZXR1cm5cIlJvb3RcIjtjYXNlIDY6cmV0dXJuXCJUZXh0XCI7Y2FzZSAxNjpyZXR1cm4gUWEoYik7Y2FzZSA4OnJldHVybiBiPT09emE/XCJTdHJpY3RNb2RlXCI6XCJNb2RlXCI7Y2FzZSAyMjpyZXR1cm5cIk9mZnNjcmVlblwiO1xuY2FzZSAxMjpyZXR1cm5cIlByb2ZpbGVyXCI7Y2FzZSAyMTpyZXR1cm5cIlNjb3BlXCI7Y2FzZSAxMzpyZXR1cm5cIlN1c3BlbnNlXCI7Y2FzZSAxOTpyZXR1cm5cIlN1c3BlbnNlTGlzdFwiO2Nhc2UgMjU6cmV0dXJuXCJUcmFjaW5nTWFya2VyXCI7Y2FzZSAxOmNhc2UgMDpjYXNlIDE3OmNhc2UgMjpjYXNlIDE0OmNhc2UgMTU6aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGIpcmV0dXJuIGIuZGlzcGxheU5hbWV8fGIubmFtZXx8bnVsbDtpZihcInN0cmluZ1wiPT09dHlwZW9mIGIpcmV0dXJuIGJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gU2EoYSl7c3dpdGNoKHR5cGVvZiBhKXtjYXNlIFwiYm9vbGVhblwiOmNhc2UgXCJudW1iZXJcIjpjYXNlIFwic3RyaW5nXCI6Y2FzZSBcInVuZGVmaW5lZFwiOnJldHVybiBhO2Nhc2UgXCJvYmplY3RcIjpyZXR1cm4gYTtkZWZhdWx0OnJldHVyblwiXCJ9fVxuZnVuY3Rpb24gVGEoYSl7dmFyIGI9YS50eXBlO3JldHVybihhPWEubm9kZU5hbWUpJiZcImlucHV0XCI9PT1hLnRvTG93ZXJDYXNlKCkmJihcImNoZWNrYm94XCI9PT1ifHxcInJhZGlvXCI9PT1iKX1cbmZ1bmN0aW9uIFVhKGEpe3ZhciBiPVRhKGEpP1wiY2hlY2tlZFwiOlwidmFsdWVcIixjPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsYiksZD1cIlwiK2FbYl07aWYoIWEuaGFzT3duUHJvcGVydHkoYikmJlwidW5kZWZpbmVkXCIhPT10eXBlb2YgYyYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGMuZ2V0JiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgYy5zZXQpe3ZhciBlPWMuZ2V0LGY9Yy5zZXQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlLmNhbGwodGhpcyl9LHNldDpmdW5jdGlvbihhKXtkPVwiXCIrYTtmLmNhbGwodGhpcyxhKX19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxiLHtlbnVtZXJhYmxlOmMuZW51bWVyYWJsZX0pO3JldHVybntnZXRWYWx1ZTpmdW5jdGlvbigpe3JldHVybiBkfSxzZXRWYWx1ZTpmdW5jdGlvbihhKXtkPVwiXCIrYX0sc3RvcFRyYWNraW5nOmZ1bmN0aW9uKCl7YS5fdmFsdWVUcmFja2VyPVxubnVsbDtkZWxldGUgYVtiXX19fX1mdW5jdGlvbiBWYShhKXthLl92YWx1ZVRyYWNrZXJ8fChhLl92YWx1ZVRyYWNrZXI9VWEoYSkpfWZ1bmN0aW9uIFdhKGEpe2lmKCFhKXJldHVybiExO3ZhciBiPWEuX3ZhbHVlVHJhY2tlcjtpZighYilyZXR1cm4hMDt2YXIgYz1iLmdldFZhbHVlKCk7dmFyIGQ9XCJcIjthJiYoZD1UYShhKT9hLmNoZWNrZWQ/XCJ0cnVlXCI6XCJmYWxzZVwiOmEudmFsdWUpO2E9ZDtyZXR1cm4gYSE9PWM/KGIuc2V0VmFsdWUoYSksITApOiExfWZ1bmN0aW9uIFhhKGEpe2E9YXx8KFwidW5kZWZpbmVkXCIhPT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQ6dm9pZCAwKTtpZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIGEpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBhLmFjdGl2ZUVsZW1lbnR8fGEuYm9keX1jYXRjaChiKXtyZXR1cm4gYS5ib2R5fX1cbmZ1bmN0aW9uIFlhKGEsYil7dmFyIGM9Yi5jaGVja2VkO3JldHVybiBBKHt9LGIse2RlZmF1bHRDaGVja2VkOnZvaWQgMCxkZWZhdWx0VmFsdWU6dm9pZCAwLHZhbHVlOnZvaWQgMCxjaGVja2VkOm51bGwhPWM/YzphLl93cmFwcGVyU3RhdGUuaW5pdGlhbENoZWNrZWR9KX1mdW5jdGlvbiBaYShhLGIpe3ZhciBjPW51bGw9PWIuZGVmYXVsdFZhbHVlP1wiXCI6Yi5kZWZhdWx0VmFsdWUsZD1udWxsIT1iLmNoZWNrZWQ/Yi5jaGVja2VkOmIuZGVmYXVsdENoZWNrZWQ7Yz1TYShudWxsIT1iLnZhbHVlP2IudmFsdWU6Yyk7YS5fd3JhcHBlclN0YXRlPXtpbml0aWFsQ2hlY2tlZDpkLGluaXRpYWxWYWx1ZTpjLGNvbnRyb2xsZWQ6XCJjaGVja2JveFwiPT09Yi50eXBlfHxcInJhZGlvXCI9PT1iLnR5cGU/bnVsbCE9Yi5jaGVja2VkOm51bGwhPWIudmFsdWV9fWZ1bmN0aW9uIGFiKGEsYil7Yj1iLmNoZWNrZWQ7bnVsbCE9YiYmdGEoYSxcImNoZWNrZWRcIixiLCExKX1cbmZ1bmN0aW9uIGJiKGEsYil7YWIoYSxiKTt2YXIgYz1TYShiLnZhbHVlKSxkPWIudHlwZTtpZihudWxsIT1jKWlmKFwibnVtYmVyXCI9PT1kKXtpZigwPT09YyYmXCJcIj09PWEudmFsdWV8fGEudmFsdWUhPWMpYS52YWx1ZT1cIlwiK2N9ZWxzZSBhLnZhbHVlIT09XCJcIitjJiYoYS52YWx1ZT1cIlwiK2MpO2Vsc2UgaWYoXCJzdWJtaXRcIj09PWR8fFwicmVzZXRcIj09PWQpe2EucmVtb3ZlQXR0cmlidXRlKFwidmFsdWVcIik7cmV0dXJufWIuaGFzT3duUHJvcGVydHkoXCJ2YWx1ZVwiKT9jYihhLGIudHlwZSxjKTpiLmhhc093blByb3BlcnR5KFwiZGVmYXVsdFZhbHVlXCIpJiZjYihhLGIudHlwZSxTYShiLmRlZmF1bHRWYWx1ZSkpO251bGw9PWIuY2hlY2tlZCYmbnVsbCE9Yi5kZWZhdWx0Q2hlY2tlZCYmKGEuZGVmYXVsdENoZWNrZWQ9ISFiLmRlZmF1bHRDaGVja2VkKX1cbmZ1bmN0aW9uIGRiKGEsYixjKXtpZihiLmhhc093blByb3BlcnR5KFwidmFsdWVcIil8fGIuaGFzT3duUHJvcGVydHkoXCJkZWZhdWx0VmFsdWVcIikpe3ZhciBkPWIudHlwZTtpZighKFwic3VibWl0XCIhPT1kJiZcInJlc2V0XCIhPT1kfHx2b2lkIDAhPT1iLnZhbHVlJiZudWxsIT09Yi52YWx1ZSkpcmV0dXJuO2I9XCJcIithLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlO2N8fGI9PT1hLnZhbHVlfHwoYS52YWx1ZT1iKTthLmRlZmF1bHRWYWx1ZT1ifWM9YS5uYW1lO1wiXCIhPT1jJiYoYS5uYW1lPVwiXCIpO2EuZGVmYXVsdENoZWNrZWQ9ISFhLl93cmFwcGVyU3RhdGUuaW5pdGlhbENoZWNrZWQ7XCJcIiE9PWMmJihhLm5hbWU9Yyl9XG5mdW5jdGlvbiBjYihhLGIsYyl7aWYoXCJudW1iZXJcIiE9PWJ8fFhhKGEub3duZXJEb2N1bWVudCkhPT1hKW51bGw9PWM/YS5kZWZhdWx0VmFsdWU9XCJcIithLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlOmEuZGVmYXVsdFZhbHVlIT09XCJcIitjJiYoYS5kZWZhdWx0VmFsdWU9XCJcIitjKX12YXIgZWI9QXJyYXkuaXNBcnJheTtcbmZ1bmN0aW9uIGZiKGEsYixjLGQpe2E9YS5vcHRpb25zO2lmKGIpe2I9e307Zm9yKHZhciBlPTA7ZTxjLmxlbmd0aDtlKyspYltcIiRcIitjW2VdXT0hMDtmb3IoYz0wO2M8YS5sZW5ndGg7YysrKWU9Yi5oYXNPd25Qcm9wZXJ0eShcIiRcIithW2NdLnZhbHVlKSxhW2NdLnNlbGVjdGVkIT09ZSYmKGFbY10uc2VsZWN0ZWQ9ZSksZSYmZCYmKGFbY10uZGVmYXVsdFNlbGVjdGVkPSEwKX1lbHNle2M9XCJcIitTYShjKTtiPW51bGw7Zm9yKGU9MDtlPGEubGVuZ3RoO2UrKyl7aWYoYVtlXS52YWx1ZT09PWMpe2FbZV0uc2VsZWN0ZWQ9ITA7ZCYmKGFbZV0uZGVmYXVsdFNlbGVjdGVkPSEwKTtyZXR1cm59bnVsbCE9PWJ8fGFbZV0uZGlzYWJsZWR8fChiPWFbZV0pfW51bGwhPT1iJiYoYi5zZWxlY3RlZD0hMCl9fVxuZnVuY3Rpb24gZ2IoYSxiKXtpZihudWxsIT1iLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKXRocm93IEVycm9yKHAoOTEpKTtyZXR1cm4gQSh7fSxiLHt2YWx1ZTp2b2lkIDAsZGVmYXVsdFZhbHVlOnZvaWQgMCxjaGlsZHJlbjpcIlwiK2EuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWV9KX1mdW5jdGlvbiBoYihhLGIpe3ZhciBjPWIudmFsdWU7aWYobnVsbD09Yyl7Yz1iLmNoaWxkcmVuO2I9Yi5kZWZhdWx0VmFsdWU7aWYobnVsbCE9Yyl7aWYobnVsbCE9Yil0aHJvdyBFcnJvcihwKDkyKSk7aWYoZWIoYykpe2lmKDE8Yy5sZW5ndGgpdGhyb3cgRXJyb3IocCg5MykpO2M9Y1swXX1iPWN9bnVsbD09YiYmKGI9XCJcIik7Yz1ifWEuX3dyYXBwZXJTdGF0ZT17aW5pdGlhbFZhbHVlOlNhKGMpfX1cbmZ1bmN0aW9uIGliKGEsYil7dmFyIGM9U2EoYi52YWx1ZSksZD1TYShiLmRlZmF1bHRWYWx1ZSk7bnVsbCE9YyYmKGM9XCJcIitjLGMhPT1hLnZhbHVlJiYoYS52YWx1ZT1jKSxudWxsPT1iLmRlZmF1bHRWYWx1ZSYmYS5kZWZhdWx0VmFsdWUhPT1jJiYoYS5kZWZhdWx0VmFsdWU9YykpO251bGwhPWQmJihhLmRlZmF1bHRWYWx1ZT1cIlwiK2QpfWZ1bmN0aW9uIGpiKGEpe3ZhciBiPWEudGV4dENvbnRlbnQ7Yj09PWEuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUmJlwiXCIhPT1iJiZudWxsIT09YiYmKGEudmFsdWU9Yil9ZnVuY3Rpb24ga2IoYSl7c3dpdGNoKGEpe2Nhc2UgXCJzdmdcIjpyZXR1cm5cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI7Y2FzZSBcIm1hdGhcIjpyZXR1cm5cImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIjtkZWZhdWx0OnJldHVyblwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwifX1cbmZ1bmN0aW9uIGxiKGEsYil7cmV0dXJuIG51bGw9PWF8fFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiPT09YT9rYihiKTpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI9PT1hJiZcImZvcmVpZ25PYmplY3RcIj09PWI/XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI6YX1cbnZhciBtYixuYj1mdW5jdGlvbihhKXtyZXR1cm5cInVuZGVmaW5lZFwiIT09dHlwZW9mIE1TQXBwJiZNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbj9mdW5jdGlvbihiLGMsZCxlKXtNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbihmdW5jdGlvbigpe3JldHVybiBhKGIsYyxkLGUpfSl9OmF9KGZ1bmN0aW9uKGEsYil7aWYoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIT09YS5uYW1lc3BhY2VVUkl8fFwiaW5uZXJIVE1MXCJpbiBhKWEuaW5uZXJIVE1MPWI7ZWxzZXttYj1tYnx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTttYi5pbm5lckhUTUw9XCI8c3ZnPlwiK2IudmFsdWVPZigpLnRvU3RyaW5nKCkrXCI8L3N2Zz5cIjtmb3IoYj1tYi5maXJzdENoaWxkO2EuZmlyc3RDaGlsZDspYS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2Zvcig7Yi5maXJzdENoaWxkOylhLmFwcGVuZENoaWxkKGIuZmlyc3RDaGlsZCl9fSk7XG5mdW5jdGlvbiBvYihhLGIpe2lmKGIpe3ZhciBjPWEuZmlyc3RDaGlsZDtpZihjJiZjPT09YS5sYXN0Q2hpbGQmJjM9PT1jLm5vZGVUeXBlKXtjLm5vZGVWYWx1ZT1iO3JldHVybn19YS50ZXh0Q29udGVudD1ifVxudmFyIHBiPXthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxhc3BlY3RSYXRpbzohMCxib3JkZXJJbWFnZU91dHNldDohMCxib3JkZXJJbWFnZVNsaWNlOiEwLGJvcmRlckltYWdlV2lkdGg6ITAsYm94RmxleDohMCxib3hGbGV4R3JvdXA6ITAsYm94T3JkaW5hbEdyb3VwOiEwLGNvbHVtbkNvdW50OiEwLGNvbHVtbnM6ITAsZmxleDohMCxmbGV4R3JvdzohMCxmbGV4UG9zaXRpdmU6ITAsZmxleFNocmluazohMCxmbGV4TmVnYXRpdmU6ITAsZmxleE9yZGVyOiEwLGdyaWRBcmVhOiEwLGdyaWRSb3c6ITAsZ3JpZFJvd0VuZDohMCxncmlkUm93U3BhbjohMCxncmlkUm93U3RhcnQ6ITAsZ3JpZENvbHVtbjohMCxncmlkQ29sdW1uRW5kOiEwLGdyaWRDb2x1bW5TcGFuOiEwLGdyaWRDb2x1bW5TdGFydDohMCxmb250V2VpZ2h0OiEwLGxpbmVDbGFtcDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx0YWJTaXplOiEwLHdpZG93czohMCx6SW5kZXg6ITAsXG56b29tOiEwLGZpbGxPcGFjaXR5OiEwLGZsb29kT3BhY2l0eTohMCxzdG9wT3BhY2l0eTohMCxzdHJva2VEYXNoYXJyYXk6ITAsc3Ryb2tlRGFzaG9mZnNldDohMCxzdHJva2VNaXRlcmxpbWl0OiEwLHN0cm9rZU9wYWNpdHk6ITAsc3Ryb2tlV2lkdGg6ITB9LHFiPVtcIldlYmtpdFwiLFwibXNcIixcIk1velwiLFwiT1wiXTtPYmplY3Qua2V5cyhwYikuZm9yRWFjaChmdW5jdGlvbihhKXtxYi5mb3JFYWNoKGZ1bmN0aW9uKGIpe2I9YithLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Euc3Vic3RyaW5nKDEpO3BiW2JdPXBiW2FdfSl9KTtmdW5jdGlvbiByYihhLGIsYyl7cmV0dXJuIG51bGw9PWJ8fFwiYm9vbGVhblwiPT09dHlwZW9mIGJ8fFwiXCI9PT1iP1wiXCI6Y3x8XCJudW1iZXJcIiE9PXR5cGVvZiBifHwwPT09Ynx8cGIuaGFzT3duUHJvcGVydHkoYSkmJnBiW2FdPyhcIlwiK2IpLnRyaW0oKTpiK1wicHhcIn1cbmZ1bmN0aW9uIHNiKGEsYil7YT1hLnN0eWxlO2Zvcih2YXIgYyBpbiBiKWlmKGIuaGFzT3duUHJvcGVydHkoYykpe3ZhciBkPTA9PT1jLmluZGV4T2YoXCItLVwiKSxlPXJiKGMsYltjXSxkKTtcImZsb2F0XCI9PT1jJiYoYz1cImNzc0Zsb2F0XCIpO2Q/YS5zZXRQcm9wZXJ0eShjLGUpOmFbY109ZX19dmFyIHRiPUEoe21lbnVpdGVtOiEwfSx7YXJlYTohMCxiYXNlOiEwLGJyOiEwLGNvbDohMCxlbWJlZDohMCxocjohMCxpbWc6ITAsaW5wdXQ6ITAsa2V5Z2VuOiEwLGxpbms6ITAsbWV0YTohMCxwYXJhbTohMCxzb3VyY2U6ITAsdHJhY2s6ITAsd2JyOiEwfSk7XG5mdW5jdGlvbiB1YihhLGIpe2lmKGIpe2lmKHRiW2FdJiYobnVsbCE9Yi5jaGlsZHJlbnx8bnVsbCE9Yi5kYW5nZXJvdXNseVNldElubmVySFRNTCkpdGhyb3cgRXJyb3IocCgxMzcsYSkpO2lmKG51bGwhPWIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpe2lmKG51bGwhPWIuY2hpbGRyZW4pdGhyb3cgRXJyb3IocCg2MCkpO2lmKFwib2JqZWN0XCIhPT10eXBlb2YgYi5kYW5nZXJvdXNseVNldElubmVySFRNTHx8IShcIl9faHRtbFwiaW4gYi5kYW5nZXJvdXNseVNldElubmVySFRNTCkpdGhyb3cgRXJyb3IocCg2MSkpO31pZihudWxsIT1iLnN0eWxlJiZcIm9iamVjdFwiIT09dHlwZW9mIGIuc3R5bGUpdGhyb3cgRXJyb3IocCg2MikpO319XG5mdW5jdGlvbiB2YihhLGIpe2lmKC0xPT09YS5pbmRleE9mKFwiLVwiKSlyZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIGIuaXM7c3dpdGNoKGEpe2Nhc2UgXCJhbm5vdGF0aW9uLXhtbFwiOmNhc2UgXCJjb2xvci1wcm9maWxlXCI6Y2FzZSBcImZvbnQtZmFjZVwiOmNhc2UgXCJmb250LWZhY2Utc3JjXCI6Y2FzZSBcImZvbnQtZmFjZS11cmlcIjpjYXNlIFwiZm9udC1mYWNlLWZvcm1hdFwiOmNhc2UgXCJmb250LWZhY2UtbmFtZVwiOmNhc2UgXCJtaXNzaW5nLWdseXBoXCI6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19dmFyIHdiPW51bGw7ZnVuY3Rpb24geGIoYSl7YT1hLnRhcmdldHx8YS5zcmNFbGVtZW50fHx3aW5kb3c7YS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCYmKGE9YS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCk7cmV0dXJuIDM9PT1hLm5vZGVUeXBlP2EucGFyZW50Tm9kZTphfXZhciB5Yj1udWxsLHpiPW51bGwsQWI9bnVsbDtcbmZ1bmN0aW9uIEJiKGEpe2lmKGE9Q2IoYSkpe2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiB5Yil0aHJvdyBFcnJvcihwKDI4MCkpO3ZhciBiPWEuc3RhdGVOb2RlO2ImJihiPURiKGIpLHliKGEuc3RhdGVOb2RlLGEudHlwZSxiKSl9fWZ1bmN0aW9uIEViKGEpe3piP0FiP0FiLnB1c2goYSk6QWI9W2FdOnpiPWF9ZnVuY3Rpb24gRmIoKXtpZih6Yil7dmFyIGE9emIsYj1BYjtBYj16Yj1udWxsO0JiKGEpO2lmKGIpZm9yKGE9MDthPGIubGVuZ3RoO2ErKylCYihiW2FdKX19ZnVuY3Rpb24gR2IoYSxiKXtyZXR1cm4gYShiKX1mdW5jdGlvbiBIYigpe312YXIgSWI9ITE7ZnVuY3Rpb24gSmIoYSxiLGMpe2lmKEliKXJldHVybiBhKGIsYyk7SWI9ITA7dHJ5e3JldHVybiBHYihhLGIsYyl9ZmluYWxseXtpZihJYj0hMSxudWxsIT09emJ8fG51bGwhPT1BYilIYigpLEZiKCl9fVxuZnVuY3Rpb24gS2IoYSxiKXt2YXIgYz1hLnN0YXRlTm9kZTtpZihudWxsPT09YylyZXR1cm4gbnVsbDt2YXIgZD1EYihjKTtpZihudWxsPT09ZClyZXR1cm4gbnVsbDtjPWRbYl07YTpzd2l0Y2goYil7Y2FzZSBcIm9uQ2xpY2tcIjpjYXNlIFwib25DbGlja0NhcHR1cmVcIjpjYXNlIFwib25Eb3VibGVDbGlja1wiOmNhc2UgXCJvbkRvdWJsZUNsaWNrQ2FwdHVyZVwiOmNhc2UgXCJvbk1vdXNlRG93blwiOmNhc2UgXCJvbk1vdXNlRG93bkNhcHR1cmVcIjpjYXNlIFwib25Nb3VzZU1vdmVcIjpjYXNlIFwib25Nb3VzZU1vdmVDYXB0dXJlXCI6Y2FzZSBcIm9uTW91c2VVcFwiOmNhc2UgXCJvbk1vdXNlVXBDYXB0dXJlXCI6Y2FzZSBcIm9uTW91c2VFbnRlclwiOihkPSFkLmRpc2FibGVkKXx8KGE9YS50eXBlLGQ9IShcImJ1dHRvblwiPT09YXx8XCJpbnB1dFwiPT09YXx8XCJzZWxlY3RcIj09PWF8fFwidGV4dGFyZWFcIj09PWEpKTthPSFkO2JyZWFrIGE7ZGVmYXVsdDphPSExfWlmKGEpcmV0dXJuIG51bGw7aWYoYyYmXCJmdW5jdGlvblwiIT09XG50eXBlb2YgYyl0aHJvdyBFcnJvcihwKDIzMSxiLHR5cGVvZiBjKSk7cmV0dXJuIGN9dmFyIExiPSExO2lmKGlhKXRyeXt2YXIgTWI9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KE1iLFwicGFzc2l2ZVwiLHtnZXQ6ZnVuY3Rpb24oKXtMYj0hMH19KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInRlc3RcIixNYixNYik7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0ZXN0XCIsTWIsTWIpfWNhdGNoKGEpe0xiPSExfWZ1bmN0aW9uIE5iKGEsYixjLGQsZSxmLGcsaCxrKXt2YXIgbD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMyk7dHJ5e2IuYXBwbHkoYyxsKX1jYXRjaChtKXt0aGlzLm9uRXJyb3IobSl9fXZhciBPYj0hMSxQYj1udWxsLFFiPSExLFJiPW51bGwsU2I9e29uRXJyb3I6ZnVuY3Rpb24oYSl7T2I9ITA7UGI9YX19O2Z1bmN0aW9uIFRiKGEsYixjLGQsZSxmLGcsaCxrKXtPYj0hMTtQYj1udWxsO05iLmFwcGx5KFNiLGFyZ3VtZW50cyl9XG5mdW5jdGlvbiBVYihhLGIsYyxkLGUsZixnLGgsayl7VGIuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKE9iKXtpZihPYil7dmFyIGw9UGI7T2I9ITE7UGI9bnVsbH1lbHNlIHRocm93IEVycm9yKHAoMTk4KSk7UWJ8fChRYj0hMCxSYj1sKX19ZnVuY3Rpb24gVmIoYSl7dmFyIGI9YSxjPWE7aWYoYS5hbHRlcm5hdGUpZm9yKDtiLnJldHVybjspYj1iLnJldHVybjtlbHNle2E9YjtkbyBiPWEsMCE9PShiLmZsYWdzJjQwOTgpJiYoYz1iLnJldHVybiksYT1iLnJldHVybjt3aGlsZShhKX1yZXR1cm4gMz09PWIudGFnP2M6bnVsbH1mdW5jdGlvbiBXYihhKXtpZigxMz09PWEudGFnKXt2YXIgYj1hLm1lbW9pemVkU3RhdGU7bnVsbD09PWImJihhPWEuYWx0ZXJuYXRlLG51bGwhPT1hJiYoYj1hLm1lbW9pemVkU3RhdGUpKTtpZihudWxsIT09YilyZXR1cm4gYi5kZWh5ZHJhdGVkfXJldHVybiBudWxsfWZ1bmN0aW9uIFhiKGEpe2lmKFZiKGEpIT09YSl0aHJvdyBFcnJvcihwKDE4OCkpO31cbmZ1bmN0aW9uIFliKGEpe3ZhciBiPWEuYWx0ZXJuYXRlO2lmKCFiKXtiPVZiKGEpO2lmKG51bGw9PT1iKXRocm93IEVycm9yKHAoMTg4KSk7cmV0dXJuIGIhPT1hP251bGw6YX1mb3IodmFyIGM9YSxkPWI7Oyl7dmFyIGU9Yy5yZXR1cm47aWYobnVsbD09PWUpYnJlYWs7dmFyIGY9ZS5hbHRlcm5hdGU7aWYobnVsbD09PWYpe2Q9ZS5yZXR1cm47aWYobnVsbCE9PWQpe2M9ZDtjb250aW51ZX1icmVha31pZihlLmNoaWxkPT09Zi5jaGlsZCl7Zm9yKGY9ZS5jaGlsZDtmOyl7aWYoZj09PWMpcmV0dXJuIFhiKGUpLGE7aWYoZj09PWQpcmV0dXJuIFhiKGUpLGI7Zj1mLnNpYmxpbmd9dGhyb3cgRXJyb3IocCgxODgpKTt9aWYoYy5yZXR1cm4hPT1kLnJldHVybiljPWUsZD1mO2Vsc2V7Zm9yKHZhciBnPSExLGg9ZS5jaGlsZDtoOyl7aWYoaD09PWMpe2c9ITA7Yz1lO2Q9ZjticmVha31pZihoPT09ZCl7Zz0hMDtkPWU7Yz1mO2JyZWFrfWg9aC5zaWJsaW5nfWlmKCFnKXtmb3IoaD1mLmNoaWxkO2g7KXtpZihoPT09XG5jKXtnPSEwO2M9ZjtkPWU7YnJlYWt9aWYoaD09PWQpe2c9ITA7ZD1mO2M9ZTticmVha31oPWguc2libGluZ31pZighZyl0aHJvdyBFcnJvcihwKDE4OSkpO319aWYoYy5hbHRlcm5hdGUhPT1kKXRocm93IEVycm9yKHAoMTkwKSk7fWlmKDMhPT1jLnRhZyl0aHJvdyBFcnJvcihwKDE4OCkpO3JldHVybiBjLnN0YXRlTm9kZS5jdXJyZW50PT09Yz9hOmJ9ZnVuY3Rpb24gWmIoYSl7YT1ZYihhKTtyZXR1cm4gbnVsbCE9PWE/JGIoYSk6bnVsbH1mdW5jdGlvbiAkYihhKXtpZig1PT09YS50YWd8fDY9PT1hLnRhZylyZXR1cm4gYTtmb3IoYT1hLmNoaWxkO251bGwhPT1hOyl7dmFyIGI9JGIoYSk7aWYobnVsbCE9PWIpcmV0dXJuIGI7YT1hLnNpYmxpbmd9cmV0dXJuIG51bGx9XG52YXIgYWM9Y2EudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayxiYz1jYS51bnN0YWJsZV9jYW5jZWxDYWxsYmFjayxjYz1jYS51bnN0YWJsZV9zaG91bGRZaWVsZCxkYz1jYS51bnN0YWJsZV9yZXF1ZXN0UGFpbnQsQj1jYS51bnN0YWJsZV9ub3csZWM9Y2EudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwsZmM9Y2EudW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHksZ2M9Y2EudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHksaGM9Y2EudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksaWM9Y2EudW5zdGFibGVfTG93UHJpb3JpdHksamM9Y2EudW5zdGFibGVfSWRsZVByaW9yaXR5LGtjPW51bGwsbGM9bnVsbDtmdW5jdGlvbiBtYyhhKXtpZihsYyYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGxjLm9uQ29tbWl0RmliZXJSb290KXRyeXtsYy5vbkNvbW1pdEZpYmVyUm9vdChrYyxhLHZvaWQgMCwxMjg9PT0oYS5jdXJyZW50LmZsYWdzJjEyOCkpfWNhdGNoKGIpe319XG52YXIgb2M9TWF0aC5jbHozMj9NYXRoLmNsejMyOm5jLHBjPU1hdGgubG9nLHFjPU1hdGguTE4yO2Z1bmN0aW9uIG5jKGEpe2E+Pj49MDtyZXR1cm4gMD09PWE/MzI6MzEtKHBjKGEpL3FjfDApfDB9dmFyIHJjPTY0LHNjPTQxOTQzMDQ7XG5mdW5jdGlvbiB0YyhhKXtzd2l0Y2goYSYtYSl7Y2FzZSAxOnJldHVybiAxO2Nhc2UgMjpyZXR1cm4gMjtjYXNlIDQ6cmV0dXJuIDQ7Y2FzZSA4OnJldHVybiA4O2Nhc2UgMTY6cmV0dXJuIDE2O2Nhc2UgMzI6cmV0dXJuIDMyO2Nhc2UgNjQ6Y2FzZSAxMjg6Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOmNhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6cmV0dXJuIGEmNDE5NDI0MDtjYXNlIDQxOTQzMDQ6Y2FzZSA4Mzg4NjA4OmNhc2UgMTY3NzcyMTY6Y2FzZSAzMzU1NDQzMjpjYXNlIDY3MTA4ODY0OnJldHVybiBhJjEzMDAyMzQyNDtjYXNlIDEzNDIxNzcyODpyZXR1cm4gMTM0MjE3NzI4O2Nhc2UgMjY4NDM1NDU2OnJldHVybiAyNjg0MzU0NTY7Y2FzZSA1MzY4NzA5MTI6cmV0dXJuIDUzNjg3MDkxMjtjYXNlIDEwNzM3NDE4MjQ6cmV0dXJuIDEwNzM3NDE4MjQ7XG5kZWZhdWx0OnJldHVybiBhfX1mdW5jdGlvbiB1YyhhLGIpe3ZhciBjPWEucGVuZGluZ0xhbmVzO2lmKDA9PT1jKXJldHVybiAwO3ZhciBkPTAsZT1hLnN1c3BlbmRlZExhbmVzLGY9YS5waW5nZWRMYW5lcyxnPWMmMjY4NDM1NDU1O2lmKDAhPT1nKXt2YXIgaD1nJn5lOzAhPT1oP2Q9dGMoaCk6KGYmPWcsMCE9PWYmJihkPXRjKGYpKSl9ZWxzZSBnPWMmfmUsMCE9PWc/ZD10YyhnKTowIT09ZiYmKGQ9dGMoZikpO2lmKDA9PT1kKXJldHVybiAwO2lmKDAhPT1iJiZiIT09ZCYmMD09PShiJmUpJiYoZT1kJi1kLGY9YiYtYixlPj1mfHwxNj09PWUmJjAhPT0oZiY0MTk0MjQwKSkpcmV0dXJuIGI7MCE9PShkJjQpJiYoZHw9YyYxNik7Yj1hLmVudGFuZ2xlZExhbmVzO2lmKDAhPT1iKWZvcihhPWEuZW50YW5nbGVtZW50cyxiJj1kOzA8YjspYz0zMS1vYyhiKSxlPTE8PGMsZHw9YVtjXSxiJj1+ZTtyZXR1cm4gZH1cbmZ1bmN0aW9uIHZjKGEsYil7c3dpdGNoKGEpe2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OnJldHVybiBiKzI1MDtjYXNlIDg6Y2FzZSAxNjpjYXNlIDMyOmNhc2UgNjQ6Y2FzZSAxMjg6Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOmNhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6cmV0dXJuIGIrNUUzO2Nhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAxNjc3NzIxNjpjYXNlIDMzNTU0NDMyOmNhc2UgNjcxMDg4NjQ6cmV0dXJuLTE7Y2FzZSAxMzQyMTc3Mjg6Y2FzZSAyNjg0MzU0NTY6Y2FzZSA1MzY4NzA5MTI6Y2FzZSAxMDczNzQxODI0OnJldHVybi0xO2RlZmF1bHQ6cmV0dXJuLTF9fVxuZnVuY3Rpb24gd2MoYSxiKXtmb3IodmFyIGM9YS5zdXNwZW5kZWRMYW5lcyxkPWEucGluZ2VkTGFuZXMsZT1hLmV4cGlyYXRpb25UaW1lcyxmPWEucGVuZGluZ0xhbmVzOzA8Zjspe3ZhciBnPTMxLW9jKGYpLGg9MTw8ZyxrPWVbZ107aWYoLTE9PT1rKXtpZigwPT09KGgmYyl8fDAhPT0oaCZkKSllW2ddPXZjKGgsYil9ZWxzZSBrPD1iJiYoYS5leHBpcmVkTGFuZXN8PWgpO2YmPX5ofX1mdW5jdGlvbiB4YyhhKXthPWEucGVuZGluZ0xhbmVzJi0xMDczNzQxODI1O3JldHVybiAwIT09YT9hOmEmMTA3Mzc0MTgyND8xMDczNzQxODI0OjB9ZnVuY3Rpb24geWMoKXt2YXIgYT1yYztyYzw8PTE7MD09PShyYyY0MTk0MjQwKSYmKHJjPTY0KTtyZXR1cm4gYX1mdW5jdGlvbiB6YyhhKXtmb3IodmFyIGI9W10sYz0wOzMxPmM7YysrKWIucHVzaChhKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIEFjKGEsYixjKXthLnBlbmRpbmdMYW5lc3w9Yjs1MzY4NzA5MTIhPT1iJiYoYS5zdXNwZW5kZWRMYW5lcz0wLGEucGluZ2VkTGFuZXM9MCk7YT1hLmV2ZW50VGltZXM7Yj0zMS1vYyhiKTthW2JdPWN9ZnVuY3Rpb24gQmMoYSxiKXt2YXIgYz1hLnBlbmRpbmdMYW5lcyZ+YjthLnBlbmRpbmdMYW5lcz1iO2Euc3VzcGVuZGVkTGFuZXM9MDthLnBpbmdlZExhbmVzPTA7YS5leHBpcmVkTGFuZXMmPWI7YS5tdXRhYmxlUmVhZExhbmVzJj1iO2EuZW50YW5nbGVkTGFuZXMmPWI7Yj1hLmVudGFuZ2xlbWVudHM7dmFyIGQ9YS5ldmVudFRpbWVzO2ZvcihhPWEuZXhwaXJhdGlvblRpbWVzOzA8Yzspe3ZhciBlPTMxLW9jKGMpLGY9MTw8ZTtiW2VdPTA7ZFtlXT0tMTthW2VdPS0xO2MmPX5mfX1cbmZ1bmN0aW9uIENjKGEsYil7dmFyIGM9YS5lbnRhbmdsZWRMYW5lc3w9Yjtmb3IoYT1hLmVudGFuZ2xlbWVudHM7Yzspe3ZhciBkPTMxLW9jKGMpLGU9MTw8ZDtlJmJ8YVtkXSZiJiYoYVtkXXw9Yik7YyY9fmV9fXZhciBDPTA7ZnVuY3Rpb24gRGMoYSl7YSY9LWE7cmV0dXJuIDE8YT80PGE/MCE9PShhJjI2ODQzNTQ1NSk/MTY6NTM2ODcwOTEyOjQ6MX12YXIgRWMsRmMsR2MsSGMsSWMsSmM9ITEsS2M9W10sTGM9bnVsbCxNYz1udWxsLE5jPW51bGwsT2M9bmV3IE1hcCxQYz1uZXcgTWFwLFFjPVtdLFJjPVwibW91c2Vkb3duIG1vdXNldXAgdG91Y2hjYW5jZWwgdG91Y2hlbmQgdG91Y2hzdGFydCBhdXhjbGljayBkYmxjbGljayBwb2ludGVyY2FuY2VsIHBvaW50ZXJkb3duIHBvaW50ZXJ1cCBkcmFnZW5kIGRyYWdzdGFydCBkcm9wIGNvbXBvc2l0aW9uZW5kIGNvbXBvc2l0aW9uc3RhcnQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBpbnB1dCB0ZXh0SW5wdXQgY29weSBjdXQgcGFzdGUgY2xpY2sgY2hhbmdlIGNvbnRleHRtZW51IHJlc2V0IHN1Ym1pdFwiLnNwbGl0KFwiIFwiKTtcbmZ1bmN0aW9uIFNjKGEsYil7c3dpdGNoKGEpe2Nhc2UgXCJmb2N1c2luXCI6Y2FzZSBcImZvY3Vzb3V0XCI6TGM9bnVsbDticmVhaztjYXNlIFwiZHJhZ2VudGVyXCI6Y2FzZSBcImRyYWdsZWF2ZVwiOk1jPW51bGw7YnJlYWs7Y2FzZSBcIm1vdXNlb3ZlclwiOmNhc2UgXCJtb3VzZW91dFwiOk5jPW51bGw7YnJlYWs7Y2FzZSBcInBvaW50ZXJvdmVyXCI6Y2FzZSBcInBvaW50ZXJvdXRcIjpPYy5kZWxldGUoYi5wb2ludGVySWQpO2JyZWFrO2Nhc2UgXCJnb3Rwb2ludGVyY2FwdHVyZVwiOmNhc2UgXCJsb3N0cG9pbnRlcmNhcHR1cmVcIjpQYy5kZWxldGUoYi5wb2ludGVySWQpfX1cbmZ1bmN0aW9uIFRjKGEsYixjLGQsZSxmKXtpZihudWxsPT09YXx8YS5uYXRpdmVFdmVudCE9PWYpcmV0dXJuIGE9e2Jsb2NrZWRPbjpiLGRvbUV2ZW50TmFtZTpjLGV2ZW50U3lzdGVtRmxhZ3M6ZCxuYXRpdmVFdmVudDpmLHRhcmdldENvbnRhaW5lcnM6W2VdfSxudWxsIT09YiYmKGI9Q2IoYiksbnVsbCE9PWImJkZjKGIpKSxhO2EuZXZlbnRTeXN0ZW1GbGFnc3w9ZDtiPWEudGFyZ2V0Q29udGFpbmVycztudWxsIT09ZSYmLTE9PT1iLmluZGV4T2YoZSkmJmIucHVzaChlKTtyZXR1cm4gYX1cbmZ1bmN0aW9uIFVjKGEsYixjLGQsZSl7c3dpdGNoKGIpe2Nhc2UgXCJmb2N1c2luXCI6cmV0dXJuIExjPVRjKExjLGEsYixjLGQsZSksITA7Y2FzZSBcImRyYWdlbnRlclwiOnJldHVybiBNYz1UYyhNYyxhLGIsYyxkLGUpLCEwO2Nhc2UgXCJtb3VzZW92ZXJcIjpyZXR1cm4gTmM9VGMoTmMsYSxiLGMsZCxlKSwhMDtjYXNlIFwicG9pbnRlcm92ZXJcIjp2YXIgZj1lLnBvaW50ZXJJZDtPYy5zZXQoZixUYyhPYy5nZXQoZil8fG51bGwsYSxiLGMsZCxlKSk7cmV0dXJuITA7Y2FzZSBcImdvdHBvaW50ZXJjYXB0dXJlXCI6cmV0dXJuIGY9ZS5wb2ludGVySWQsUGMuc2V0KGYsVGMoUGMuZ2V0KGYpfHxudWxsLGEsYixjLGQsZSkpLCEwfXJldHVybiExfVxuZnVuY3Rpb24gVmMoYSl7dmFyIGI9V2MoYS50YXJnZXQpO2lmKG51bGwhPT1iKXt2YXIgYz1WYihiKTtpZihudWxsIT09YylpZihiPWMudGFnLDEzPT09Yil7aWYoYj1XYihjKSxudWxsIT09Yil7YS5ibG9ja2VkT249YjtJYyhhLnByaW9yaXR5LGZ1bmN0aW9uKCl7R2MoYyl9KTtyZXR1cm59fWVsc2UgaWYoMz09PWImJmMuc3RhdGVOb2RlLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpe2EuYmxvY2tlZE9uPTM9PT1jLnRhZz9jLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOm51bGw7cmV0dXJufX1hLmJsb2NrZWRPbj1udWxsfVxuZnVuY3Rpb24gWGMoYSl7aWYobnVsbCE9PWEuYmxvY2tlZE9uKXJldHVybiExO2Zvcih2YXIgYj1hLnRhcmdldENvbnRhaW5lcnM7MDxiLmxlbmd0aDspe3ZhciBjPVljKGEuZG9tRXZlbnROYW1lLGEuZXZlbnRTeXN0ZW1GbGFncyxiWzBdLGEubmF0aXZlRXZlbnQpO2lmKG51bGw9PT1jKXtjPWEubmF0aXZlRXZlbnQ7dmFyIGQ9bmV3IGMuY29uc3RydWN0b3IoYy50eXBlLGMpO3diPWQ7Yy50YXJnZXQuZGlzcGF0Y2hFdmVudChkKTt3Yj1udWxsfWVsc2UgcmV0dXJuIGI9Q2IoYyksbnVsbCE9PWImJkZjKGIpLGEuYmxvY2tlZE9uPWMsITE7Yi5zaGlmdCgpfXJldHVybiEwfWZ1bmN0aW9uIFpjKGEsYixjKXtYYyhhKSYmYy5kZWxldGUoYil9ZnVuY3Rpb24gJGMoKXtKYz0hMTtudWxsIT09TGMmJlhjKExjKSYmKExjPW51bGwpO251bGwhPT1NYyYmWGMoTWMpJiYoTWM9bnVsbCk7bnVsbCE9PU5jJiZYYyhOYykmJihOYz1udWxsKTtPYy5mb3JFYWNoKFpjKTtQYy5mb3JFYWNoKFpjKX1cbmZ1bmN0aW9uIGFkKGEsYil7YS5ibG9ja2VkT249PT1iJiYoYS5ibG9ja2VkT249bnVsbCxKY3x8KEpjPSEwLGNhLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2soY2EudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksJGMpKSl9XG5mdW5jdGlvbiBiZChhKXtmdW5jdGlvbiBiKGIpe3JldHVybiBhZChiLGEpfWlmKDA8S2MubGVuZ3RoKXthZChLY1swXSxhKTtmb3IodmFyIGM9MTtjPEtjLmxlbmd0aDtjKyspe3ZhciBkPUtjW2NdO2QuYmxvY2tlZE9uPT09YSYmKGQuYmxvY2tlZE9uPW51bGwpfX1udWxsIT09TGMmJmFkKExjLGEpO251bGwhPT1NYyYmYWQoTWMsYSk7bnVsbCE9PU5jJiZhZChOYyxhKTtPYy5mb3JFYWNoKGIpO1BjLmZvckVhY2goYik7Zm9yKGM9MDtjPFFjLmxlbmd0aDtjKyspZD1RY1tjXSxkLmJsb2NrZWRPbj09PWEmJihkLmJsb2NrZWRPbj1udWxsKTtmb3IoOzA8UWMubGVuZ3RoJiYoYz1RY1swXSxudWxsPT09Yy5ibG9ja2VkT24pOylWYyhjKSxudWxsPT09Yy5ibG9ja2VkT24mJlFjLnNoaWZ0KCl9dmFyIGNkPXVhLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLGRkPSEwO1xuZnVuY3Rpb24gZWQoYSxiLGMsZCl7dmFyIGU9QyxmPWNkLnRyYW5zaXRpb247Y2QudHJhbnNpdGlvbj1udWxsO3RyeXtDPTEsZmQoYSxiLGMsZCl9ZmluYWxseXtDPWUsY2QudHJhbnNpdGlvbj1mfX1mdW5jdGlvbiBnZChhLGIsYyxkKXt2YXIgZT1DLGY9Y2QudHJhbnNpdGlvbjtjZC50cmFuc2l0aW9uPW51bGw7dHJ5e0M9NCxmZChhLGIsYyxkKX1maW5hbGx5e0M9ZSxjZC50cmFuc2l0aW9uPWZ9fVxuZnVuY3Rpb24gZmQoYSxiLGMsZCl7aWYoZGQpe3ZhciBlPVljKGEsYixjLGQpO2lmKG51bGw9PT1lKWhkKGEsYixkLGlkLGMpLFNjKGEsZCk7ZWxzZSBpZihVYyhlLGEsYixjLGQpKWQuc3RvcFByb3BhZ2F0aW9uKCk7ZWxzZSBpZihTYyhhLGQpLGImNCYmLTE8UmMuaW5kZXhPZihhKSl7Zm9yKDtudWxsIT09ZTspe3ZhciBmPUNiKGUpO251bGwhPT1mJiZFYyhmKTtmPVljKGEsYixjLGQpO251bGw9PT1mJiZoZChhLGIsZCxpZCxjKTtpZihmPT09ZSlicmVhaztlPWZ9bnVsbCE9PWUmJmQuc3RvcFByb3BhZ2F0aW9uKCl9ZWxzZSBoZChhLGIsZCxudWxsLGMpfX12YXIgaWQ9bnVsbDtcbmZ1bmN0aW9uIFljKGEsYixjLGQpe2lkPW51bGw7YT14YihkKTthPVdjKGEpO2lmKG51bGwhPT1hKWlmKGI9VmIoYSksbnVsbD09PWIpYT1udWxsO2Vsc2UgaWYoYz1iLnRhZywxMz09PWMpe2E9V2IoYik7aWYobnVsbCE9PWEpcmV0dXJuIGE7YT1udWxsfWVsc2UgaWYoMz09PWMpe2lmKGIuc3RhdGVOb2RlLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpcmV0dXJuIDM9PT1iLnRhZz9iLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOm51bGw7YT1udWxsfWVsc2UgYiE9PWEmJihhPW51bGwpO2lkPWE7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBqZChhKXtzd2l0Y2goYSl7Y2FzZSBcImNhbmNlbFwiOmNhc2UgXCJjbGlja1wiOmNhc2UgXCJjbG9zZVwiOmNhc2UgXCJjb250ZXh0bWVudVwiOmNhc2UgXCJjb3B5XCI6Y2FzZSBcImN1dFwiOmNhc2UgXCJhdXhjbGlja1wiOmNhc2UgXCJkYmxjbGlja1wiOmNhc2UgXCJkcmFnZW5kXCI6Y2FzZSBcImRyYWdzdGFydFwiOmNhc2UgXCJkcm9wXCI6Y2FzZSBcImZvY3VzaW5cIjpjYXNlIFwiZm9jdXNvdXRcIjpjYXNlIFwiaW5wdXRcIjpjYXNlIFwiaW52YWxpZFwiOmNhc2UgXCJrZXlkb3duXCI6Y2FzZSBcImtleXByZXNzXCI6Y2FzZSBcImtleXVwXCI6Y2FzZSBcIm1vdXNlZG93blwiOmNhc2UgXCJtb3VzZXVwXCI6Y2FzZSBcInBhc3RlXCI6Y2FzZSBcInBhdXNlXCI6Y2FzZSBcInBsYXlcIjpjYXNlIFwicG9pbnRlcmNhbmNlbFwiOmNhc2UgXCJwb2ludGVyZG93blwiOmNhc2UgXCJwb2ludGVydXBcIjpjYXNlIFwicmF0ZWNoYW5nZVwiOmNhc2UgXCJyZXNldFwiOmNhc2UgXCJyZXNpemVcIjpjYXNlIFwic2Vla2VkXCI6Y2FzZSBcInN1Ym1pdFwiOmNhc2UgXCJ0b3VjaGNhbmNlbFwiOmNhc2UgXCJ0b3VjaGVuZFwiOmNhc2UgXCJ0b3VjaHN0YXJ0XCI6Y2FzZSBcInZvbHVtZWNoYW5nZVwiOmNhc2UgXCJjaGFuZ2VcIjpjYXNlIFwic2VsZWN0aW9uY2hhbmdlXCI6Y2FzZSBcInRleHRJbnB1dFwiOmNhc2UgXCJjb21wb3NpdGlvbnN0YXJ0XCI6Y2FzZSBcImNvbXBvc2l0aW9uZW5kXCI6Y2FzZSBcImNvbXBvc2l0aW9udXBkYXRlXCI6Y2FzZSBcImJlZm9yZWJsdXJcIjpjYXNlIFwiYWZ0ZXJibHVyXCI6Y2FzZSBcImJlZm9yZWlucHV0XCI6Y2FzZSBcImJsdXJcIjpjYXNlIFwiZnVsbHNjcmVlbmNoYW5nZVwiOmNhc2UgXCJmb2N1c1wiOmNhc2UgXCJoYXNoY2hhbmdlXCI6Y2FzZSBcInBvcHN0YXRlXCI6Y2FzZSBcInNlbGVjdFwiOmNhc2UgXCJzZWxlY3RzdGFydFwiOnJldHVybiAxO2Nhc2UgXCJkcmFnXCI6Y2FzZSBcImRyYWdlbnRlclwiOmNhc2UgXCJkcmFnZXhpdFwiOmNhc2UgXCJkcmFnbGVhdmVcIjpjYXNlIFwiZHJhZ292ZXJcIjpjYXNlIFwibW91c2Vtb3ZlXCI6Y2FzZSBcIm1vdXNlb3V0XCI6Y2FzZSBcIm1vdXNlb3ZlclwiOmNhc2UgXCJwb2ludGVybW92ZVwiOmNhc2UgXCJwb2ludGVyb3V0XCI6Y2FzZSBcInBvaW50ZXJvdmVyXCI6Y2FzZSBcInNjcm9sbFwiOmNhc2UgXCJ0b2dnbGVcIjpjYXNlIFwidG91Y2htb3ZlXCI6Y2FzZSBcIndoZWVsXCI6Y2FzZSBcIm1vdXNlZW50ZXJcIjpjYXNlIFwibW91c2VsZWF2ZVwiOmNhc2UgXCJwb2ludGVyZW50ZXJcIjpjYXNlIFwicG9pbnRlcmxlYXZlXCI6cmV0dXJuIDQ7XG5jYXNlIFwibWVzc2FnZVwiOnN3aXRjaChlYygpKXtjYXNlIGZjOnJldHVybiAxO2Nhc2UgZ2M6cmV0dXJuIDQ7Y2FzZSBoYzpjYXNlIGljOnJldHVybiAxNjtjYXNlIGpjOnJldHVybiA1MzY4NzA5MTI7ZGVmYXVsdDpyZXR1cm4gMTZ9ZGVmYXVsdDpyZXR1cm4gMTZ9fXZhciBrZD1udWxsLGxkPW51bGwsbWQ9bnVsbDtmdW5jdGlvbiBuZCgpe2lmKG1kKXJldHVybiBtZDt2YXIgYSxiPWxkLGM9Yi5sZW5ndGgsZCxlPVwidmFsdWVcImluIGtkP2tkLnZhbHVlOmtkLnRleHRDb250ZW50LGY9ZS5sZW5ndGg7Zm9yKGE9MDthPGMmJmJbYV09PT1lW2FdO2ErKyk7dmFyIGc9Yy1hO2ZvcihkPTE7ZDw9ZyYmYltjLWRdPT09ZVtmLWRdO2QrKyk7cmV0dXJuIG1kPWUuc2xpY2UoYSwxPGQ/MS1kOnZvaWQgMCl9XG5mdW5jdGlvbiBvZChhKXt2YXIgYj1hLmtleUNvZGU7XCJjaGFyQ29kZVwiaW4gYT8oYT1hLmNoYXJDb2RlLDA9PT1hJiYxMz09PWImJihhPTEzKSk6YT1iOzEwPT09YSYmKGE9MTMpO3JldHVybiAzMjw9YXx8MTM9PT1hP2E6MH1mdW5jdGlvbiBwZCgpe3JldHVybiEwfWZ1bmN0aW9uIHFkKCl7cmV0dXJuITF9XG5mdW5jdGlvbiByZChhKXtmdW5jdGlvbiBiKGIsZCxlLGYsZyl7dGhpcy5fcmVhY3ROYW1lPWI7dGhpcy5fdGFyZ2V0SW5zdD1lO3RoaXMudHlwZT1kO3RoaXMubmF0aXZlRXZlbnQ9Zjt0aGlzLnRhcmdldD1nO3RoaXMuY3VycmVudFRhcmdldD1udWxsO2Zvcih2YXIgYyBpbiBhKWEuaGFzT3duUHJvcGVydHkoYykmJihiPWFbY10sdGhpc1tjXT1iP2IoZik6ZltjXSk7dGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9KG51bGwhPWYuZGVmYXVsdFByZXZlbnRlZD9mLmRlZmF1bHRQcmV2ZW50ZWQ6ITE9PT1mLnJldHVyblZhbHVlKT9wZDpxZDt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXFkO3JldHVybiB0aGlzfUEoYi5wcm90b3R5cGUse3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwO3ZhciBhPXRoaXMubmF0aXZlRXZlbnQ7YSYmKGEucHJldmVudERlZmF1bHQ/YS5wcmV2ZW50RGVmYXVsdCgpOlwidW5rbm93blwiIT09dHlwZW9mIGEucmV0dXJuVmFsdWUmJlxuKGEucmV0dXJuVmFsdWU9ITEpLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPXBkKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5uYXRpdmVFdmVudDthJiYoYS5zdG9wUHJvcGFnYXRpb24/YS5zdG9wUHJvcGFnYXRpb24oKTpcInVua25vd25cIiE9PXR5cGVvZiBhLmNhbmNlbEJ1YmJsZSYmKGEuY2FuY2VsQnViYmxlPSEwKSx0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXBkKX0scGVyc2lzdDpmdW5jdGlvbigpe30saXNQZXJzaXN0ZW50OnBkfSk7cmV0dXJuIGJ9XG52YXIgc2Q9e2V2ZW50UGhhc2U6MCxidWJibGVzOjAsY2FuY2VsYWJsZTowLHRpbWVTdGFtcDpmdW5jdGlvbihhKXtyZXR1cm4gYS50aW1lU3RhbXB8fERhdGUubm93KCl9LGRlZmF1bHRQcmV2ZW50ZWQ6MCxpc1RydXN0ZWQ6MH0sdGQ9cmQoc2QpLHVkPUEoe30sc2Qse3ZpZXc6MCxkZXRhaWw6MH0pLHZkPXJkKHVkKSx3ZCx4ZCx5ZCxBZD1BKHt9LHVkLHtzY3JlZW5YOjAsc2NyZWVuWTowLGNsaWVudFg6MCxjbGllbnRZOjAscGFnZVg6MCxwYWdlWTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGFsdEtleTowLG1ldGFLZXk6MCxnZXRNb2RpZmllclN0YXRlOnpkLGJ1dHRvbjowLGJ1dHRvbnM6MCxyZWxhdGVkVGFyZ2V0OmZ1bmN0aW9uKGEpe3JldHVybiB2b2lkIDA9PT1hLnJlbGF0ZWRUYXJnZXQ/YS5mcm9tRWxlbWVudD09PWEuc3JjRWxlbWVudD9hLnRvRWxlbWVudDphLmZyb21FbGVtZW50OmEucmVsYXRlZFRhcmdldH0sbW92ZW1lbnRYOmZ1bmN0aW9uKGEpe2lmKFwibW92ZW1lbnRYXCJpblxuYSlyZXR1cm4gYS5tb3ZlbWVudFg7YSE9PXlkJiYoeWQmJlwibW91c2Vtb3ZlXCI9PT1hLnR5cGU/KHdkPWEuc2NyZWVuWC15ZC5zY3JlZW5YLHhkPWEuc2NyZWVuWS15ZC5zY3JlZW5ZKTp4ZD13ZD0wLHlkPWEpO3JldHVybiB3ZH0sbW92ZW1lbnRZOmZ1bmN0aW9uKGEpe3JldHVyblwibW92ZW1lbnRZXCJpbiBhP2EubW92ZW1lbnRZOnhkfX0pLEJkPXJkKEFkKSxDZD1BKHt9LEFkLHtkYXRhVHJhbnNmZXI6MH0pLERkPXJkKENkKSxFZD1BKHt9LHVkLHtyZWxhdGVkVGFyZ2V0OjB9KSxGZD1yZChFZCksR2Q9QSh7fSxzZCx7YW5pbWF0aW9uTmFtZTowLGVsYXBzZWRUaW1lOjAscHNldWRvRWxlbWVudDowfSksSGQ9cmQoR2QpLElkPUEoe30sc2Qse2NsaXBib2FyZERhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuXCJjbGlwYm9hcmREYXRhXCJpbiBhP2EuY2xpcGJvYXJkRGF0YTp3aW5kb3cuY2xpcGJvYXJkRGF0YX19KSxKZD1yZChJZCksS2Q9QSh7fSxzZCx7ZGF0YTowfSksTGQ9cmQoS2QpLE1kPXtFc2M6XCJFc2NhcGVcIixcblNwYWNlYmFyOlwiIFwiLExlZnQ6XCJBcnJvd0xlZnRcIixVcDpcIkFycm93VXBcIixSaWdodDpcIkFycm93UmlnaHRcIixEb3duOlwiQXJyb3dEb3duXCIsRGVsOlwiRGVsZXRlXCIsV2luOlwiT1NcIixNZW51OlwiQ29udGV4dE1lbnVcIixBcHBzOlwiQ29udGV4dE1lbnVcIixTY3JvbGw6XCJTY3JvbGxMb2NrXCIsTW96UHJpbnRhYmxlS2V5OlwiVW5pZGVudGlmaWVkXCJ9LE5kPXs4OlwiQmFja3NwYWNlXCIsOTpcIlRhYlwiLDEyOlwiQ2xlYXJcIiwxMzpcIkVudGVyXCIsMTY6XCJTaGlmdFwiLDE3OlwiQ29udHJvbFwiLDE4OlwiQWx0XCIsMTk6XCJQYXVzZVwiLDIwOlwiQ2Fwc0xvY2tcIiwyNzpcIkVzY2FwZVwiLDMyOlwiIFwiLDMzOlwiUGFnZVVwXCIsMzQ6XCJQYWdlRG93blwiLDM1OlwiRW5kXCIsMzY6XCJIb21lXCIsMzc6XCJBcnJvd0xlZnRcIiwzODpcIkFycm93VXBcIiwzOTpcIkFycm93UmlnaHRcIiw0MDpcIkFycm93RG93blwiLDQ1OlwiSW5zZXJ0XCIsNDY6XCJEZWxldGVcIiwxMTI6XCJGMVwiLDExMzpcIkYyXCIsMTE0OlwiRjNcIiwxMTU6XCJGNFwiLDExNjpcIkY1XCIsMTE3OlwiRjZcIiwxMTg6XCJGN1wiLFxuMTE5OlwiRjhcIiwxMjA6XCJGOVwiLDEyMTpcIkYxMFwiLDEyMjpcIkYxMVwiLDEyMzpcIkYxMlwiLDE0NDpcIk51bUxvY2tcIiwxNDU6XCJTY3JvbGxMb2NrXCIsMjI0OlwiTWV0YVwifSxPZD17QWx0OlwiYWx0S2V5XCIsQ29udHJvbDpcImN0cmxLZXlcIixNZXRhOlwibWV0YUtleVwiLFNoaWZ0Olwic2hpZnRLZXlcIn07ZnVuY3Rpb24gUGQoYSl7dmFyIGI9dGhpcy5uYXRpdmVFdmVudDtyZXR1cm4gYi5nZXRNb2RpZmllclN0YXRlP2IuZ2V0TW9kaWZpZXJTdGF0ZShhKTooYT1PZFthXSk/ISFiW2FdOiExfWZ1bmN0aW9uIHpkKCl7cmV0dXJuIFBkfVxudmFyIFFkPUEoe30sdWQse2tleTpmdW5jdGlvbihhKXtpZihhLmtleSl7dmFyIGI9TWRbYS5rZXldfHxhLmtleTtpZihcIlVuaWRlbnRpZmllZFwiIT09YilyZXR1cm4gYn1yZXR1cm5cImtleXByZXNzXCI9PT1hLnR5cGU/KGE9b2QoYSksMTM9PT1hP1wiRW50ZXJcIjpTdHJpbmcuZnJvbUNoYXJDb2RlKGEpKTpcImtleWRvd25cIj09PWEudHlwZXx8XCJrZXl1cFwiPT09YS50eXBlP05kW2Eua2V5Q29kZV18fFwiVW5pZGVudGlmaWVkXCI6XCJcIn0sY29kZTowLGxvY2F0aW9uOjAsY3RybEtleTowLHNoaWZ0S2V5OjAsYWx0S2V5OjAsbWV0YUtleTowLHJlcGVhdDowLGxvY2FsZTowLGdldE1vZGlmaWVyU3RhdGU6emQsY2hhckNvZGU6ZnVuY3Rpb24oYSl7cmV0dXJuXCJrZXlwcmVzc1wiPT09YS50eXBlP29kKGEpOjB9LGtleUNvZGU6ZnVuY3Rpb24oYSl7cmV0dXJuXCJrZXlkb3duXCI9PT1hLnR5cGV8fFwia2V5dXBcIj09PWEudHlwZT9hLmtleUNvZGU6MH0sd2hpY2g6ZnVuY3Rpb24oYSl7cmV0dXJuXCJrZXlwcmVzc1wiPT09XG5hLnR5cGU/b2QoYSk6XCJrZXlkb3duXCI9PT1hLnR5cGV8fFwia2V5dXBcIj09PWEudHlwZT9hLmtleUNvZGU6MH19KSxSZD1yZChRZCksU2Q9QSh7fSxBZCx7cG9pbnRlcklkOjAsd2lkdGg6MCxoZWlnaHQ6MCxwcmVzc3VyZTowLHRhbmdlbnRpYWxQcmVzc3VyZTowLHRpbHRYOjAsdGlsdFk6MCx0d2lzdDowLHBvaW50ZXJUeXBlOjAsaXNQcmltYXJ5OjB9KSxUZD1yZChTZCksVWQ9QSh7fSx1ZCx7dG91Y2hlczowLHRhcmdldFRvdWNoZXM6MCxjaGFuZ2VkVG91Y2hlczowLGFsdEtleTowLG1ldGFLZXk6MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxnZXRNb2RpZmllclN0YXRlOnpkfSksVmQ9cmQoVWQpLFdkPUEoe30sc2Qse3Byb3BlcnR5TmFtZTowLGVsYXBzZWRUaW1lOjAscHNldWRvRWxlbWVudDowfSksWGQ9cmQoV2QpLFlkPUEoe30sQWQse2RlbHRhWDpmdW5jdGlvbihhKXtyZXR1cm5cImRlbHRhWFwiaW4gYT9hLmRlbHRhWDpcIndoZWVsRGVsdGFYXCJpbiBhPy1hLndoZWVsRGVsdGFYOjB9LFxuZGVsdGFZOmZ1bmN0aW9uKGEpe3JldHVyblwiZGVsdGFZXCJpbiBhP2EuZGVsdGFZOlwid2hlZWxEZWx0YVlcImluIGE/LWEud2hlZWxEZWx0YVk6XCJ3aGVlbERlbHRhXCJpbiBhPy1hLndoZWVsRGVsdGE6MH0sZGVsdGFaOjAsZGVsdGFNb2RlOjB9KSxaZD1yZChZZCksJGQ9WzksMTMsMjcsMzJdLGFlPWlhJiZcIkNvbXBvc2l0aW9uRXZlbnRcImluIHdpbmRvdyxiZT1udWxsO2lhJiZcImRvY3VtZW50TW9kZVwiaW4gZG9jdW1lbnQmJihiZT1kb2N1bWVudC5kb2N1bWVudE1vZGUpO3ZhciBjZT1pYSYmXCJUZXh0RXZlbnRcImluIHdpbmRvdyYmIWJlLGRlPWlhJiYoIWFlfHxiZSYmODxiZSYmMTE+PWJlKSxlZT1TdHJpbmcuZnJvbUNoYXJDb2RlKDMyKSxmZT0hMTtcbmZ1bmN0aW9uIGdlKGEsYil7c3dpdGNoKGEpe2Nhc2UgXCJrZXl1cFwiOnJldHVybi0xIT09JGQuaW5kZXhPZihiLmtleUNvZGUpO2Nhc2UgXCJrZXlkb3duXCI6cmV0dXJuIDIyOSE9PWIua2V5Q29kZTtjYXNlIFwia2V5cHJlc3NcIjpjYXNlIFwibW91c2Vkb3duXCI6Y2FzZSBcImZvY3Vzb3V0XCI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gaGUoYSl7YT1hLmRldGFpbDtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIGEmJlwiZGF0YVwiaW4gYT9hLmRhdGE6bnVsbH12YXIgaWU9ITE7ZnVuY3Rpb24gamUoYSxiKXtzd2l0Y2goYSl7Y2FzZSBcImNvbXBvc2l0aW9uZW5kXCI6cmV0dXJuIGhlKGIpO2Nhc2UgXCJrZXlwcmVzc1wiOmlmKDMyIT09Yi53aGljaClyZXR1cm4gbnVsbDtmZT0hMDtyZXR1cm4gZWU7Y2FzZSBcInRleHRJbnB1dFwiOnJldHVybiBhPWIuZGF0YSxhPT09ZWUmJmZlP251bGw6YTtkZWZhdWx0OnJldHVybiBudWxsfX1cbmZ1bmN0aW9uIGtlKGEsYil7aWYoaWUpcmV0dXJuXCJjb21wb3NpdGlvbmVuZFwiPT09YXx8IWFlJiZnZShhLGIpPyhhPW5kKCksbWQ9bGQ9a2Q9bnVsbCxpZT0hMSxhKTpudWxsO3N3aXRjaChhKXtjYXNlIFwicGFzdGVcIjpyZXR1cm4gbnVsbDtjYXNlIFwia2V5cHJlc3NcIjppZighKGIuY3RybEtleXx8Yi5hbHRLZXl8fGIubWV0YUtleSl8fGIuY3RybEtleSYmYi5hbHRLZXkpe2lmKGIuY2hhciYmMTxiLmNoYXIubGVuZ3RoKXJldHVybiBiLmNoYXI7aWYoYi53aGljaClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShiLndoaWNoKX1yZXR1cm4gbnVsbDtjYXNlIFwiY29tcG9zaXRpb25lbmRcIjpyZXR1cm4gZGUmJlwia29cIiE9PWIubG9jYWxlP251bGw6Yi5kYXRhO2RlZmF1bHQ6cmV0dXJuIG51bGx9fVxudmFyIGxlPXtjb2xvcjohMCxkYXRlOiEwLGRhdGV0aW1lOiEwLFwiZGF0ZXRpbWUtbG9jYWxcIjohMCxlbWFpbDohMCxtb250aDohMCxudW1iZXI6ITAscGFzc3dvcmQ6ITAscmFuZ2U6ITAsc2VhcmNoOiEwLHRlbDohMCx0ZXh0OiEwLHRpbWU6ITAsdXJsOiEwLHdlZWs6ITB9O2Z1bmN0aW9uIG1lKGEpe3ZhciBiPWEmJmEubm9kZU5hbWUmJmEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm5cImlucHV0XCI9PT1iPyEhbGVbYS50eXBlXTpcInRleHRhcmVhXCI9PT1iPyEwOiExfWZ1bmN0aW9uIG5lKGEsYixjLGQpe0ViKGQpO2I9b2UoYixcIm9uQ2hhbmdlXCIpOzA8Yi5sZW5ndGgmJihjPW5ldyB0ZChcIm9uQ2hhbmdlXCIsXCJjaGFuZ2VcIixudWxsLGMsZCksYS5wdXNoKHtldmVudDpjLGxpc3RlbmVyczpifSkpfXZhciBwZT1udWxsLHFlPW51bGw7ZnVuY3Rpb24gcmUoYSl7c2UoYSwwKX1mdW5jdGlvbiB0ZShhKXt2YXIgYj11ZShhKTtpZihXYShiKSlyZXR1cm4gYX1cbmZ1bmN0aW9uIHZlKGEsYil7aWYoXCJjaGFuZ2VcIj09PWEpcmV0dXJuIGJ9dmFyIHdlPSExO2lmKGlhKXt2YXIgeGU7aWYoaWEpe3ZhciB5ZT1cIm9uaW5wdXRcImluIGRvY3VtZW50O2lmKCF5ZSl7dmFyIHplPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7emUuc2V0QXR0cmlidXRlKFwib25pbnB1dFwiLFwicmV0dXJuO1wiKTt5ZT1cImZ1bmN0aW9uXCI9PT10eXBlb2YgemUub25pbnB1dH14ZT15ZX1lbHNlIHhlPSExO3dlPXhlJiYoIWRvY3VtZW50LmRvY3VtZW50TW9kZXx8OTxkb2N1bWVudC5kb2N1bWVudE1vZGUpfWZ1bmN0aW9uIEFlKCl7cGUmJihwZS5kZXRhY2hFdmVudChcIm9ucHJvcGVydHljaGFuZ2VcIixCZSkscWU9cGU9bnVsbCl9ZnVuY3Rpb24gQmUoYSl7aWYoXCJ2YWx1ZVwiPT09YS5wcm9wZXJ0eU5hbWUmJnRlKHFlKSl7dmFyIGI9W107bmUoYixxZSxhLHhiKGEpKTtKYihyZSxiKX19XG5mdW5jdGlvbiBDZShhLGIsYyl7XCJmb2N1c2luXCI9PT1hPyhBZSgpLHBlPWIscWU9YyxwZS5hdHRhY2hFdmVudChcIm9ucHJvcGVydHljaGFuZ2VcIixCZSkpOlwiZm9jdXNvdXRcIj09PWEmJkFlKCl9ZnVuY3Rpb24gRGUoYSl7aWYoXCJzZWxlY3Rpb25jaGFuZ2VcIj09PWF8fFwia2V5dXBcIj09PWF8fFwia2V5ZG93blwiPT09YSlyZXR1cm4gdGUocWUpfWZ1bmN0aW9uIEVlKGEsYil7aWYoXCJjbGlja1wiPT09YSlyZXR1cm4gdGUoYil9ZnVuY3Rpb24gRmUoYSxiKXtpZihcImlucHV0XCI9PT1hfHxcImNoYW5nZVwiPT09YSlyZXR1cm4gdGUoYil9ZnVuY3Rpb24gR2UoYSxiKXtyZXR1cm4gYT09PWImJigwIT09YXx8MS9hPT09MS9iKXx8YSE9PWEmJmIhPT1ifXZhciBIZT1cImZ1bmN0aW9uXCI9PT10eXBlb2YgT2JqZWN0LmlzP09iamVjdC5pczpHZTtcbmZ1bmN0aW9uIEllKGEsYil7aWYoSGUoYSxiKSlyZXR1cm4hMDtpZihcIm9iamVjdFwiIT09dHlwZW9mIGF8fG51bGw9PT1hfHxcIm9iamVjdFwiIT09dHlwZW9mIGJ8fG51bGw9PT1iKXJldHVybiExO3ZhciBjPU9iamVjdC5rZXlzKGEpLGQ9T2JqZWN0LmtleXMoYik7aWYoYy5sZW5ndGghPT1kLmxlbmd0aClyZXR1cm4hMTtmb3IoZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1jW2RdO2lmKCFqYS5jYWxsKGIsZSl8fCFIZShhW2VdLGJbZV0pKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIEplKGEpe2Zvcig7YSYmYS5maXJzdENoaWxkOylhPWEuZmlyc3RDaGlsZDtyZXR1cm4gYX1cbmZ1bmN0aW9uIEtlKGEsYil7dmFyIGM9SmUoYSk7YT0wO2Zvcih2YXIgZDtjOyl7aWYoMz09PWMubm9kZVR5cGUpe2Q9YStjLnRleHRDb250ZW50Lmxlbmd0aDtpZihhPD1iJiZkPj1iKXJldHVybntub2RlOmMsb2Zmc2V0OmItYX07YT1kfWE6e2Zvcig7Yzspe2lmKGMubmV4dFNpYmxpbmcpe2M9Yy5uZXh0U2libGluZzticmVhayBhfWM9Yy5wYXJlbnROb2RlfWM9dm9pZCAwfWM9SmUoYyl9fWZ1bmN0aW9uIExlKGEsYil7cmV0dXJuIGEmJmI/YT09PWI/ITA6YSYmMz09PWEubm9kZVR5cGU/ITE6YiYmMz09PWIubm9kZVR5cGU/TGUoYSxiLnBhcmVudE5vZGUpOlwiY29udGFpbnNcImluIGE/YS5jb250YWlucyhiKTphLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uPyEhKGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikmMTYpOiExOiExfVxuZnVuY3Rpb24gTWUoKXtmb3IodmFyIGE9d2luZG93LGI9WGEoKTtiIGluc3RhbmNlb2YgYS5IVE1MSUZyYW1lRWxlbWVudDspe3RyeXt2YXIgYz1cInN0cmluZ1wiPT09dHlwZW9mIGIuY29udGVudFdpbmRvdy5sb2NhdGlvbi5ocmVmfWNhdGNoKGQpe2M9ITF9aWYoYylhPWIuY29udGVudFdpbmRvdztlbHNlIGJyZWFrO2I9WGEoYS5kb2N1bWVudCl9cmV0dXJuIGJ9ZnVuY3Rpb24gTmUoYSl7dmFyIGI9YSYmYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiBiJiYoXCJpbnB1dFwiPT09YiYmKFwidGV4dFwiPT09YS50eXBlfHxcInNlYXJjaFwiPT09YS50eXBlfHxcInRlbFwiPT09YS50eXBlfHxcInVybFwiPT09YS50eXBlfHxcInBhc3N3b3JkXCI9PT1hLnR5cGUpfHxcInRleHRhcmVhXCI9PT1ifHxcInRydWVcIj09PWEuY29udGVudEVkaXRhYmxlKX1cbmZ1bmN0aW9uIE9lKGEpe3ZhciBiPU1lKCksYz1hLmZvY3VzZWRFbGVtLGQ9YS5zZWxlY3Rpb25SYW5nZTtpZihiIT09YyYmYyYmYy5vd25lckRvY3VtZW50JiZMZShjLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGMpKXtpZihudWxsIT09ZCYmTmUoYykpaWYoYj1kLnN0YXJ0LGE9ZC5lbmQsdm9pZCAwPT09YSYmKGE9YiksXCJzZWxlY3Rpb25TdGFydFwiaW4gYyljLnNlbGVjdGlvblN0YXJ0PWIsYy5zZWxlY3Rpb25FbmQ9TWF0aC5taW4oYSxjLnZhbHVlLmxlbmd0aCk7ZWxzZSBpZihhPShiPWMub3duZXJEb2N1bWVudHx8ZG9jdW1lbnQpJiZiLmRlZmF1bHRWaWV3fHx3aW5kb3csYS5nZXRTZWxlY3Rpb24pe2E9YS5nZXRTZWxlY3Rpb24oKTt2YXIgZT1jLnRleHRDb250ZW50Lmxlbmd0aCxmPU1hdGgubWluKGQuc3RhcnQsZSk7ZD12b2lkIDA9PT1kLmVuZD9mOk1hdGgubWluKGQuZW5kLGUpOyFhLmV4dGVuZCYmZj5kJiYoZT1kLGQ9ZixmPWUpO2U9S2UoYyxmKTt2YXIgZz1LZShjLFxuZCk7ZSYmZyYmKDEhPT1hLnJhbmdlQ291bnR8fGEuYW5jaG9yTm9kZSE9PWUubm9kZXx8YS5hbmNob3JPZmZzZXQhPT1lLm9mZnNldHx8YS5mb2N1c05vZGUhPT1nLm5vZGV8fGEuZm9jdXNPZmZzZXQhPT1nLm9mZnNldCkmJihiPWIuY3JlYXRlUmFuZ2UoKSxiLnNldFN0YXJ0KGUubm9kZSxlLm9mZnNldCksYS5yZW1vdmVBbGxSYW5nZXMoKSxmPmQ/KGEuYWRkUmFuZ2UoYiksYS5leHRlbmQoZy5ub2RlLGcub2Zmc2V0KSk6KGIuc2V0RW5kKGcubm9kZSxnLm9mZnNldCksYS5hZGRSYW5nZShiKSkpfWI9W107Zm9yKGE9YzthPWEucGFyZW50Tm9kZTspMT09PWEubm9kZVR5cGUmJmIucHVzaCh7ZWxlbWVudDphLGxlZnQ6YS5zY3JvbGxMZWZ0LHRvcDphLnNjcm9sbFRvcH0pO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBjLmZvY3VzJiZjLmZvY3VzKCk7Zm9yKGM9MDtjPGIubGVuZ3RoO2MrKylhPWJbY10sYS5lbGVtZW50LnNjcm9sbExlZnQ9YS5sZWZ0LGEuZWxlbWVudC5zY3JvbGxUb3A9YS50b3B9fVxudmFyIFBlPWlhJiZcImRvY3VtZW50TW9kZVwiaW4gZG9jdW1lbnQmJjExPj1kb2N1bWVudC5kb2N1bWVudE1vZGUsUWU9bnVsbCxSZT1udWxsLFNlPW51bGwsVGU9ITE7XG5mdW5jdGlvbiBVZShhLGIsYyl7dmFyIGQ9Yy53aW5kb3c9PT1jP2MuZG9jdW1lbnQ6OT09PWMubm9kZVR5cGU/YzpjLm93bmVyRG9jdW1lbnQ7VGV8fG51bGw9PVFlfHxRZSE9PVhhKGQpfHwoZD1RZSxcInNlbGVjdGlvblN0YXJ0XCJpbiBkJiZOZShkKT9kPXtzdGFydDpkLnNlbGVjdGlvblN0YXJ0LGVuZDpkLnNlbGVjdGlvbkVuZH06KGQ9KGQub3duZXJEb2N1bWVudCYmZC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbigpLGQ9e2FuY2hvck5vZGU6ZC5hbmNob3JOb2RlLGFuY2hvck9mZnNldDpkLmFuY2hvck9mZnNldCxmb2N1c05vZGU6ZC5mb2N1c05vZGUsZm9jdXNPZmZzZXQ6ZC5mb2N1c09mZnNldH0pLFNlJiZJZShTZSxkKXx8KFNlPWQsZD1vZShSZSxcIm9uU2VsZWN0XCIpLDA8ZC5sZW5ndGgmJihiPW5ldyB0ZChcIm9uU2VsZWN0XCIsXCJzZWxlY3RcIixudWxsLGIsYyksYS5wdXNoKHtldmVudDpiLGxpc3RlbmVyczpkfSksYi50YXJnZXQ9UWUpKSl9XG5mdW5jdGlvbiBWZShhLGIpe3ZhciBjPXt9O2NbYS50b0xvd2VyQ2FzZSgpXT1iLnRvTG93ZXJDYXNlKCk7Y1tcIldlYmtpdFwiK2FdPVwid2Via2l0XCIrYjtjW1wiTW96XCIrYV09XCJtb3pcIitiO3JldHVybiBjfXZhciBXZT17YW5pbWF0aW9uZW5kOlZlKFwiQW5pbWF0aW9uXCIsXCJBbmltYXRpb25FbmRcIiksYW5pbWF0aW9uaXRlcmF0aW9uOlZlKFwiQW5pbWF0aW9uXCIsXCJBbmltYXRpb25JdGVyYXRpb25cIiksYW5pbWF0aW9uc3RhcnQ6VmUoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvblN0YXJ0XCIpLHRyYW5zaXRpb25lbmQ6VmUoXCJUcmFuc2l0aW9uXCIsXCJUcmFuc2l0aW9uRW5kXCIpfSxYZT17fSxZZT17fTtcbmlhJiYoWWU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKS5zdHlsZSxcIkFuaW1hdGlvbkV2ZW50XCJpbiB3aW5kb3d8fChkZWxldGUgV2UuYW5pbWF0aW9uZW5kLmFuaW1hdGlvbixkZWxldGUgV2UuYW5pbWF0aW9uaXRlcmF0aW9uLmFuaW1hdGlvbixkZWxldGUgV2UuYW5pbWF0aW9uc3RhcnQuYW5pbWF0aW9uKSxcIlRyYW5zaXRpb25FdmVudFwiaW4gd2luZG93fHxkZWxldGUgV2UudHJhbnNpdGlvbmVuZC50cmFuc2l0aW9uKTtmdW5jdGlvbiBaZShhKXtpZihYZVthXSlyZXR1cm4gWGVbYV07aWYoIVdlW2FdKXJldHVybiBhO3ZhciBiPVdlW2FdLGM7Zm9yKGMgaW4gYilpZihiLmhhc093blByb3BlcnR5KGMpJiZjIGluIFllKXJldHVybiBYZVthXT1iW2NdO3JldHVybiBhfXZhciAkZT1aZShcImFuaW1hdGlvbmVuZFwiKSxhZj1aZShcImFuaW1hdGlvbml0ZXJhdGlvblwiKSxiZj1aZShcImFuaW1hdGlvbnN0YXJ0XCIpLGNmPVplKFwidHJhbnNpdGlvbmVuZFwiKSxkZj1uZXcgTWFwLGVmPVwiYWJvcnQgYXV4Q2xpY2sgY2FuY2VsIGNhblBsYXkgY2FuUGxheVRocm91Z2ggY2xpY2sgY2xvc2UgY29udGV4dE1lbnUgY29weSBjdXQgZHJhZyBkcmFnRW5kIGRyYWdFbnRlciBkcmFnRXhpdCBkcmFnTGVhdmUgZHJhZ092ZXIgZHJhZ1N0YXJ0IGRyb3AgZHVyYXRpb25DaGFuZ2UgZW1wdGllZCBlbmNyeXB0ZWQgZW5kZWQgZXJyb3IgZ290UG9pbnRlckNhcHR1cmUgaW5wdXQgaW52YWxpZCBrZXlEb3duIGtleVByZXNzIGtleVVwIGxvYWQgbG9hZGVkRGF0YSBsb2FkZWRNZXRhZGF0YSBsb2FkU3RhcnQgbG9zdFBvaW50ZXJDYXB0dXJlIG1vdXNlRG93biBtb3VzZU1vdmUgbW91c2VPdXQgbW91c2VPdmVyIG1vdXNlVXAgcGFzdGUgcGF1c2UgcGxheSBwbGF5aW5nIHBvaW50ZXJDYW5jZWwgcG9pbnRlckRvd24gcG9pbnRlck1vdmUgcG9pbnRlck91dCBwb2ludGVyT3ZlciBwb2ludGVyVXAgcHJvZ3Jlc3MgcmF0ZUNoYW5nZSByZXNldCByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdWJtaXQgc3VzcGVuZCB0aW1lVXBkYXRlIHRvdWNoQ2FuY2VsIHRvdWNoRW5kIHRvdWNoU3RhcnQgdm9sdW1lQ2hhbmdlIHNjcm9sbCB0b2dnbGUgdG91Y2hNb3ZlIHdhaXRpbmcgd2hlZWxcIi5zcGxpdChcIiBcIik7XG5mdW5jdGlvbiBmZihhLGIpe2RmLnNldChhLGIpO2ZhKGIsW2FdKX1mb3IodmFyIGdmPTA7Z2Y8ZWYubGVuZ3RoO2dmKyspe3ZhciBoZj1lZltnZl0samY9aGYudG9Mb3dlckNhc2UoKSxrZj1oZlswXS50b1VwcGVyQ2FzZSgpK2hmLnNsaWNlKDEpO2ZmKGpmLFwib25cIitrZil9ZmYoJGUsXCJvbkFuaW1hdGlvbkVuZFwiKTtmZihhZixcIm9uQW5pbWF0aW9uSXRlcmF0aW9uXCIpO2ZmKGJmLFwib25BbmltYXRpb25TdGFydFwiKTtmZihcImRibGNsaWNrXCIsXCJvbkRvdWJsZUNsaWNrXCIpO2ZmKFwiZm9jdXNpblwiLFwib25Gb2N1c1wiKTtmZihcImZvY3Vzb3V0XCIsXCJvbkJsdXJcIik7ZmYoY2YsXCJvblRyYW5zaXRpb25FbmRcIik7aGEoXCJvbk1vdXNlRW50ZXJcIixbXCJtb3VzZW91dFwiLFwibW91c2VvdmVyXCJdKTtoYShcIm9uTW91c2VMZWF2ZVwiLFtcIm1vdXNlb3V0XCIsXCJtb3VzZW92ZXJcIl0pO2hhKFwib25Qb2ludGVyRW50ZXJcIixbXCJwb2ludGVyb3V0XCIsXCJwb2ludGVyb3ZlclwiXSk7XG5oYShcIm9uUG9pbnRlckxlYXZlXCIsW1wicG9pbnRlcm91dFwiLFwicG9pbnRlcm92ZXJcIl0pO2ZhKFwib25DaGFuZ2VcIixcImNoYW5nZSBjbGljayBmb2N1c2luIGZvY3Vzb3V0IGlucHV0IGtleWRvd24ga2V5dXAgc2VsZWN0aW9uY2hhbmdlXCIuc3BsaXQoXCIgXCIpKTtmYShcIm9uU2VsZWN0XCIsXCJmb2N1c291dCBjb250ZXh0bWVudSBkcmFnZW5kIGZvY3VzaW4ga2V5ZG93biBrZXl1cCBtb3VzZWRvd24gbW91c2V1cCBzZWxlY3Rpb25jaGFuZ2VcIi5zcGxpdChcIiBcIikpO2ZhKFwib25CZWZvcmVJbnB1dFwiLFtcImNvbXBvc2l0aW9uZW5kXCIsXCJrZXlwcmVzc1wiLFwidGV4dElucHV0XCIsXCJwYXN0ZVwiXSk7ZmEoXCJvbkNvbXBvc2l0aW9uRW5kXCIsXCJjb21wb3NpdGlvbmVuZCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSk7ZmEoXCJvbkNvbXBvc2l0aW9uU3RhcnRcIixcImNvbXBvc2l0aW9uc3RhcnQgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd25cIi5zcGxpdChcIiBcIikpO1xuZmEoXCJvbkNvbXBvc2l0aW9uVXBkYXRlXCIsXCJjb21wb3NpdGlvbnVwZGF0ZSBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSk7dmFyIGxmPVwiYWJvcnQgY2FucGxheSBjYW5wbGF5dGhyb3VnaCBkdXJhdGlvbmNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBsb2FkZWRkYXRhIGxvYWRlZG1ldGFkYXRhIGxvYWRzdGFydCBwYXVzZSBwbGF5IHBsYXlpbmcgcHJvZ3Jlc3MgcmF0ZWNoYW5nZSByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdXNwZW5kIHRpbWV1cGRhdGUgdm9sdW1lY2hhbmdlIHdhaXRpbmdcIi5zcGxpdChcIiBcIiksbWY9bmV3IFNldChcImNhbmNlbCBjbG9zZSBpbnZhbGlkIGxvYWQgc2Nyb2xsIHRvZ2dsZVwiLnNwbGl0KFwiIFwiKS5jb25jYXQobGYpKTtcbmZ1bmN0aW9uIG5mKGEsYixjKXt2YXIgZD1hLnR5cGV8fFwidW5rbm93bi1ldmVudFwiO2EuY3VycmVudFRhcmdldD1jO1ViKGQsYix2b2lkIDAsYSk7YS5jdXJyZW50VGFyZ2V0PW51bGx9XG5mdW5jdGlvbiBzZShhLGIpe2I9MCE9PShiJjQpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdLGU9ZC5ldmVudDtkPWQubGlzdGVuZXJzO2E6e3ZhciBmPXZvaWQgMDtpZihiKWZvcih2YXIgZz1kLmxlbmd0aC0xOzA8PWc7Zy0tKXt2YXIgaD1kW2ddLGs9aC5pbnN0YW5jZSxsPWguY3VycmVudFRhcmdldDtoPWgubGlzdGVuZXI7aWYoayE9PWYmJmUuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVhayBhO25mKGUsaCxsKTtmPWt9ZWxzZSBmb3IoZz0wO2c8ZC5sZW5ndGg7ZysrKXtoPWRbZ107az1oLmluc3RhbmNlO2w9aC5jdXJyZW50VGFyZ2V0O2g9aC5saXN0ZW5lcjtpZihrIT09ZiYmZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWJyZWFrIGE7bmYoZSxoLGwpO2Y9a319fWlmKFFiKXRocm93IGE9UmIsUWI9ITEsUmI9bnVsbCxhO31cbmZ1bmN0aW9uIEQoYSxiKXt2YXIgYz1iW29mXTt2b2lkIDA9PT1jJiYoYz1iW29mXT1uZXcgU2V0KTt2YXIgZD1hK1wiX19idWJibGVcIjtjLmhhcyhkKXx8KHBmKGIsYSwyLCExKSxjLmFkZChkKSl9ZnVuY3Rpb24gcWYoYSxiLGMpe3ZhciBkPTA7YiYmKGR8PTQpO3BmKGMsYSxkLGIpfXZhciByZj1cIl9yZWFjdExpc3RlbmluZ1wiK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpO2Z1bmN0aW9uIHNmKGEpe2lmKCFhW3JmXSl7YVtyZl09ITA7ZGEuZm9yRWFjaChmdW5jdGlvbihiKXtcInNlbGVjdGlvbmNoYW5nZVwiIT09YiYmKG1mLmhhcyhiKXx8cWYoYiwhMSxhKSxxZihiLCEwLGEpKX0pO3ZhciBiPTk9PT1hLm5vZGVUeXBlP2E6YS5vd25lckRvY3VtZW50O251bGw9PT1ifHxiW3JmXXx8KGJbcmZdPSEwLHFmKFwic2VsZWN0aW9uY2hhbmdlXCIsITEsYikpfX1cbmZ1bmN0aW9uIHBmKGEsYixjLGQpe3N3aXRjaChqZChiKSl7Y2FzZSAxOnZhciBlPWVkO2JyZWFrO2Nhc2UgNDplPWdkO2JyZWFrO2RlZmF1bHQ6ZT1mZH1jPWUuYmluZChudWxsLGIsYyxhKTtlPXZvaWQgMDshTGJ8fFwidG91Y2hzdGFydFwiIT09YiYmXCJ0b3VjaG1vdmVcIiE9PWImJlwid2hlZWxcIiE9PWJ8fChlPSEwKTtkP3ZvaWQgMCE9PWU/YS5hZGRFdmVudExpc3RlbmVyKGIsYyx7Y2FwdHVyZTohMCxwYXNzaXZlOmV9KTphLmFkZEV2ZW50TGlzdGVuZXIoYixjLCEwKTp2b2lkIDAhPT1lP2EuYWRkRXZlbnRMaXN0ZW5lcihiLGMse3Bhc3NpdmU6ZX0pOmEuYWRkRXZlbnRMaXN0ZW5lcihiLGMsITEpfVxuZnVuY3Rpb24gaGQoYSxiLGMsZCxlKXt2YXIgZj1kO2lmKDA9PT0oYiYxKSYmMD09PShiJjIpJiZudWxsIT09ZClhOmZvcig7Oyl7aWYobnVsbD09PWQpcmV0dXJuO3ZhciBnPWQudGFnO2lmKDM9PT1nfHw0PT09Zyl7dmFyIGg9ZC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztpZihoPT09ZXx8OD09PWgubm9kZVR5cGUmJmgucGFyZW50Tm9kZT09PWUpYnJlYWs7aWYoND09PWcpZm9yKGc9ZC5yZXR1cm47bnVsbCE9PWc7KXt2YXIgaz1nLnRhZztpZigzPT09a3x8ND09PWspaWYoaz1nLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLGs9PT1lfHw4PT09ay5ub2RlVHlwZSYmay5wYXJlbnROb2RlPT09ZSlyZXR1cm47Zz1nLnJldHVybn1mb3IoO251bGwhPT1oOyl7Zz1XYyhoKTtpZihudWxsPT09ZylyZXR1cm47az1nLnRhZztpZig1PT09a3x8Nj09PWspe2Q9Zj1nO2NvbnRpbnVlIGF9aD1oLnBhcmVudE5vZGV9fWQ9ZC5yZXR1cm59SmIoZnVuY3Rpb24oKXt2YXIgZD1mLGU9eGIoYyksZz1bXTtcbmE6e3ZhciBoPWRmLmdldChhKTtpZih2b2lkIDAhPT1oKXt2YXIgaz10ZCxuPWE7c3dpdGNoKGEpe2Nhc2UgXCJrZXlwcmVzc1wiOmlmKDA9PT1vZChjKSlicmVhayBhO2Nhc2UgXCJrZXlkb3duXCI6Y2FzZSBcImtleXVwXCI6az1SZDticmVhaztjYXNlIFwiZm9jdXNpblwiOm49XCJmb2N1c1wiO2s9RmQ7YnJlYWs7Y2FzZSBcImZvY3Vzb3V0XCI6bj1cImJsdXJcIjtrPUZkO2JyZWFrO2Nhc2UgXCJiZWZvcmVibHVyXCI6Y2FzZSBcImFmdGVyYmx1clwiOms9RmQ7YnJlYWs7Y2FzZSBcImNsaWNrXCI6aWYoMj09PWMuYnV0dG9uKWJyZWFrIGE7Y2FzZSBcImF1eGNsaWNrXCI6Y2FzZSBcImRibGNsaWNrXCI6Y2FzZSBcIm1vdXNlZG93blwiOmNhc2UgXCJtb3VzZW1vdmVcIjpjYXNlIFwibW91c2V1cFwiOmNhc2UgXCJtb3VzZW91dFwiOmNhc2UgXCJtb3VzZW92ZXJcIjpjYXNlIFwiY29udGV4dG1lbnVcIjprPUJkO2JyZWFrO2Nhc2UgXCJkcmFnXCI6Y2FzZSBcImRyYWdlbmRcIjpjYXNlIFwiZHJhZ2VudGVyXCI6Y2FzZSBcImRyYWdleGl0XCI6Y2FzZSBcImRyYWdsZWF2ZVwiOmNhc2UgXCJkcmFnb3ZlclwiOmNhc2UgXCJkcmFnc3RhcnRcIjpjYXNlIFwiZHJvcFwiOms9XG5EZDticmVhaztjYXNlIFwidG91Y2hjYW5jZWxcIjpjYXNlIFwidG91Y2hlbmRcIjpjYXNlIFwidG91Y2htb3ZlXCI6Y2FzZSBcInRvdWNoc3RhcnRcIjprPVZkO2JyZWFrO2Nhc2UgJGU6Y2FzZSBhZjpjYXNlIGJmOms9SGQ7YnJlYWs7Y2FzZSBjZjprPVhkO2JyZWFrO2Nhc2UgXCJzY3JvbGxcIjprPXZkO2JyZWFrO2Nhc2UgXCJ3aGVlbFwiOms9WmQ7YnJlYWs7Y2FzZSBcImNvcHlcIjpjYXNlIFwiY3V0XCI6Y2FzZSBcInBhc3RlXCI6az1KZDticmVhaztjYXNlIFwiZ290cG9pbnRlcmNhcHR1cmVcIjpjYXNlIFwibG9zdHBvaW50ZXJjYXB0dXJlXCI6Y2FzZSBcInBvaW50ZXJjYW5jZWxcIjpjYXNlIFwicG9pbnRlcmRvd25cIjpjYXNlIFwicG9pbnRlcm1vdmVcIjpjYXNlIFwicG9pbnRlcm91dFwiOmNhc2UgXCJwb2ludGVyb3ZlclwiOmNhc2UgXCJwb2ludGVydXBcIjprPVRkfXZhciB0PTAhPT0oYiY0KSxKPSF0JiZcInNjcm9sbFwiPT09YSx4PXQ/bnVsbCE9PWg/aCtcIkNhcHR1cmVcIjpudWxsOmg7dD1bXTtmb3IodmFyIHc9ZCx1O251bGwhPT1cbnc7KXt1PXc7dmFyIEY9dS5zdGF0ZU5vZGU7NT09PXUudGFnJiZudWxsIT09RiYmKHU9RixudWxsIT09eCYmKEY9S2Iodyx4KSxudWxsIT1GJiZ0LnB1c2godGYodyxGLHUpKSkpO2lmKEopYnJlYWs7dz13LnJldHVybn0wPHQubGVuZ3RoJiYoaD1uZXcgayhoLG4sbnVsbCxjLGUpLGcucHVzaCh7ZXZlbnQ6aCxsaXN0ZW5lcnM6dH0pKX19aWYoMD09PShiJjcpKXthOntoPVwibW91c2VvdmVyXCI9PT1hfHxcInBvaW50ZXJvdmVyXCI9PT1hO2s9XCJtb3VzZW91dFwiPT09YXx8XCJwb2ludGVyb3V0XCI9PT1hO2lmKGgmJmMhPT13YiYmKG49Yy5yZWxhdGVkVGFyZ2V0fHxjLmZyb21FbGVtZW50KSYmKFdjKG4pfHxuW3VmXSkpYnJlYWsgYTtpZihrfHxoKXtoPWUud2luZG93PT09ZT9lOihoPWUub3duZXJEb2N1bWVudCk/aC5kZWZhdWx0Vmlld3x8aC5wYXJlbnRXaW5kb3c6d2luZG93O2lmKGspe2lmKG49Yy5yZWxhdGVkVGFyZ2V0fHxjLnRvRWxlbWVudCxrPWQsbj1uP1djKG4pOm51bGwsbnVsbCE9PVxubiYmKEo9VmIobiksbiE9PUp8fDUhPT1uLnRhZyYmNiE9PW4udGFnKSluPW51bGx9ZWxzZSBrPW51bGwsbj1kO2lmKGshPT1uKXt0PUJkO0Y9XCJvbk1vdXNlTGVhdmVcIjt4PVwib25Nb3VzZUVudGVyXCI7dz1cIm1vdXNlXCI7aWYoXCJwb2ludGVyb3V0XCI9PT1hfHxcInBvaW50ZXJvdmVyXCI9PT1hKXQ9VGQsRj1cIm9uUG9pbnRlckxlYXZlXCIseD1cIm9uUG9pbnRlckVudGVyXCIsdz1cInBvaW50ZXJcIjtKPW51bGw9PWs/aDp1ZShrKTt1PW51bGw9PW4/aDp1ZShuKTtoPW5ldyB0KEYsdytcImxlYXZlXCIsayxjLGUpO2gudGFyZ2V0PUo7aC5yZWxhdGVkVGFyZ2V0PXU7Rj1udWxsO1djKGUpPT09ZCYmKHQ9bmV3IHQoeCx3K1wiZW50ZXJcIixuLGMsZSksdC50YXJnZXQ9dSx0LnJlbGF0ZWRUYXJnZXQ9SixGPXQpO0o9RjtpZihrJiZuKWI6e3Q9azt4PW47dz0wO2Zvcih1PXQ7dTt1PXZmKHUpKXcrKzt1PTA7Zm9yKEY9eDtGO0Y9dmYoRikpdSsrO2Zvcig7MDx3LXU7KXQ9dmYodCksdy0tO2Zvcig7MDx1LXc7KXg9XG52Zih4KSx1LS07Zm9yKDt3LS07KXtpZih0PT09eHx8bnVsbCE9PXgmJnQ9PT14LmFsdGVybmF0ZSlicmVhayBiO3Q9dmYodCk7eD12Zih4KX10PW51bGx9ZWxzZSB0PW51bGw7bnVsbCE9PWsmJndmKGcsaCxrLHQsITEpO251bGwhPT1uJiZudWxsIT09SiYmd2YoZyxKLG4sdCwhMCl9fX1hOntoPWQ/dWUoZCk6d2luZG93O2s9aC5ub2RlTmFtZSYmaC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO2lmKFwic2VsZWN0XCI9PT1rfHxcImlucHV0XCI9PT1rJiZcImZpbGVcIj09PWgudHlwZSl2YXIgbmE9dmU7ZWxzZSBpZihtZShoKSlpZih3ZSluYT1GZTtlbHNle25hPURlO3ZhciB4YT1DZX1lbHNlKGs9aC5ub2RlTmFtZSkmJlwiaW5wdXRcIj09PWsudG9Mb3dlckNhc2UoKSYmKFwiY2hlY2tib3hcIj09PWgudHlwZXx8XCJyYWRpb1wiPT09aC50eXBlKSYmKG5hPUVlKTtpZihuYSYmKG5hPW5hKGEsZCkpKXtuZShnLG5hLGMsZSk7YnJlYWsgYX14YSYmeGEoYSxoLGQpO1wiZm9jdXNvdXRcIj09PWEmJih4YT1oLl93cmFwcGVyU3RhdGUpJiZcbnhhLmNvbnRyb2xsZWQmJlwibnVtYmVyXCI9PT1oLnR5cGUmJmNiKGgsXCJudW1iZXJcIixoLnZhbHVlKX14YT1kP3VlKGQpOndpbmRvdztzd2l0Y2goYSl7Y2FzZSBcImZvY3VzaW5cIjppZihtZSh4YSl8fFwidHJ1ZVwiPT09eGEuY29udGVudEVkaXRhYmxlKVFlPXhhLFJlPWQsU2U9bnVsbDticmVhaztjYXNlIFwiZm9jdXNvdXRcIjpTZT1SZT1RZT1udWxsO2JyZWFrO2Nhc2UgXCJtb3VzZWRvd25cIjpUZT0hMDticmVhaztjYXNlIFwiY29udGV4dG1lbnVcIjpjYXNlIFwibW91c2V1cFwiOmNhc2UgXCJkcmFnZW5kXCI6VGU9ITE7VWUoZyxjLGUpO2JyZWFrO2Nhc2UgXCJzZWxlY3Rpb25jaGFuZ2VcIjppZihQZSlicmVhaztjYXNlIFwia2V5ZG93blwiOmNhc2UgXCJrZXl1cFwiOlVlKGcsYyxlKX12YXIgJGE7aWYoYWUpYjp7c3dpdGNoKGEpe2Nhc2UgXCJjb21wb3NpdGlvbnN0YXJ0XCI6dmFyIGJhPVwib25Db21wb3NpdGlvblN0YXJ0XCI7YnJlYWsgYjtjYXNlIFwiY29tcG9zaXRpb25lbmRcIjpiYT1cIm9uQ29tcG9zaXRpb25FbmRcIjtcbmJyZWFrIGI7Y2FzZSBcImNvbXBvc2l0aW9udXBkYXRlXCI6YmE9XCJvbkNvbXBvc2l0aW9uVXBkYXRlXCI7YnJlYWsgYn1iYT12b2lkIDB9ZWxzZSBpZT9nZShhLGMpJiYoYmE9XCJvbkNvbXBvc2l0aW9uRW5kXCIpOlwia2V5ZG93blwiPT09YSYmMjI5PT09Yy5rZXlDb2RlJiYoYmE9XCJvbkNvbXBvc2l0aW9uU3RhcnRcIik7YmEmJihkZSYmXCJrb1wiIT09Yy5sb2NhbGUmJihpZXx8XCJvbkNvbXBvc2l0aW9uU3RhcnRcIiE9PWJhP1wib25Db21wb3NpdGlvbkVuZFwiPT09YmEmJmllJiYoJGE9bmQoKSk6KGtkPWUsbGQ9XCJ2YWx1ZVwiaW4ga2Q/a2QudmFsdWU6a2QudGV4dENvbnRlbnQsaWU9ITApKSx4YT1vZShkLGJhKSwwPHhhLmxlbmd0aCYmKGJhPW5ldyBMZChiYSxhLG51bGwsYyxlKSxnLnB1c2goe2V2ZW50OmJhLGxpc3RlbmVyczp4YX0pLCRhP2JhLmRhdGE9JGE6KCRhPWhlKGMpLG51bGwhPT0kYSYmKGJhLmRhdGE9JGEpKSkpO2lmKCRhPWNlP2plKGEsYyk6a2UoYSxjKSlkPW9lKGQsXCJvbkJlZm9yZUlucHV0XCIpLFxuMDxkLmxlbmd0aCYmKGU9bmV3IExkKFwib25CZWZvcmVJbnB1dFwiLFwiYmVmb3JlaW5wdXRcIixudWxsLGMsZSksZy5wdXNoKHtldmVudDplLGxpc3RlbmVyczpkfSksZS5kYXRhPSRhKX1zZShnLGIpfSl9ZnVuY3Rpb24gdGYoYSxiLGMpe3JldHVybntpbnN0YW5jZTphLGxpc3RlbmVyOmIsY3VycmVudFRhcmdldDpjfX1mdW5jdGlvbiBvZShhLGIpe2Zvcih2YXIgYz1iK1wiQ2FwdHVyZVwiLGQ9W107bnVsbCE9PWE7KXt2YXIgZT1hLGY9ZS5zdGF0ZU5vZGU7NT09PWUudGFnJiZudWxsIT09ZiYmKGU9ZixmPUtiKGEsYyksbnVsbCE9ZiYmZC51bnNoaWZ0KHRmKGEsZixlKSksZj1LYihhLGIpLG51bGwhPWYmJmQucHVzaCh0ZihhLGYsZSkpKTthPWEucmV0dXJufXJldHVybiBkfWZ1bmN0aW9uIHZmKGEpe2lmKG51bGw9PT1hKXJldHVybiBudWxsO2RvIGE9YS5yZXR1cm47d2hpbGUoYSYmNSE9PWEudGFnKTtyZXR1cm4gYT9hOm51bGx9XG5mdW5jdGlvbiB3ZihhLGIsYyxkLGUpe2Zvcih2YXIgZj1iLl9yZWFjdE5hbWUsZz1bXTtudWxsIT09YyYmYyE9PWQ7KXt2YXIgaD1jLGs9aC5hbHRlcm5hdGUsbD1oLnN0YXRlTm9kZTtpZihudWxsIT09ayYmaz09PWQpYnJlYWs7NT09PWgudGFnJiZudWxsIT09bCYmKGg9bCxlPyhrPUtiKGMsZiksbnVsbCE9ayYmZy51bnNoaWZ0KHRmKGMsayxoKSkpOmV8fChrPUtiKGMsZiksbnVsbCE9ayYmZy5wdXNoKHRmKGMsayxoKSkpKTtjPWMucmV0dXJufTAhPT1nLmxlbmd0aCYmYS5wdXNoKHtldmVudDpiLGxpc3RlbmVyczpnfSl9dmFyIHhmPS9cXHJcXG4/L2cseWY9L1xcdTAwMDB8XFx1RkZGRC9nO2Z1bmN0aW9uIHpmKGEpe3JldHVybihcInN0cmluZ1wiPT09dHlwZW9mIGE/YTpcIlwiK2EpLnJlcGxhY2UoeGYsXCJcXG5cIikucmVwbGFjZSh5ZixcIlwiKX1mdW5jdGlvbiBBZihhLGIsYyl7Yj16ZihiKTtpZih6ZihhKSE9PWImJmMpdGhyb3cgRXJyb3IocCg0MjUpKTt9ZnVuY3Rpb24gQmYoKXt9XG52YXIgQ2Y9bnVsbCxEZj1udWxsO2Z1bmN0aW9uIEVmKGEsYil7cmV0dXJuXCJ0ZXh0YXJlYVwiPT09YXx8XCJub3NjcmlwdFwiPT09YXx8XCJzdHJpbmdcIj09PXR5cGVvZiBiLmNoaWxkcmVufHxcIm51bWJlclwiPT09dHlwZW9mIGIuY2hpbGRyZW58fFwib2JqZWN0XCI9PT10eXBlb2YgYi5kYW5nZXJvdXNseVNldElubmVySFRNTCYmbnVsbCE9PWIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJm51bGwhPWIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sfVxudmFyIEZmPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6dm9pZCAwLEdmPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0OnZvaWQgMCxIZj1cImZ1bmN0aW9uXCI9PT10eXBlb2YgUHJvbWlzZT9Qcm9taXNlOnZvaWQgMCxKZj1cImZ1bmN0aW9uXCI9PT10eXBlb2YgcXVldWVNaWNyb3Rhc2s/cXVldWVNaWNyb3Rhc2s6XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBIZj9mdW5jdGlvbihhKXtyZXR1cm4gSGYucmVzb2x2ZShudWxsKS50aGVuKGEpLmNhdGNoKElmKX06RmY7ZnVuY3Rpb24gSWYoYSl7c2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGE7fSl9XG5mdW5jdGlvbiBLZihhLGIpe3ZhciBjPWIsZD0wO2Rve3ZhciBlPWMubmV4dFNpYmxpbmc7YS5yZW1vdmVDaGlsZChjKTtpZihlJiY4PT09ZS5ub2RlVHlwZSlpZihjPWUuZGF0YSxcIi8kXCI9PT1jKXtpZigwPT09ZCl7YS5yZW1vdmVDaGlsZChlKTtiZChiKTtyZXR1cm59ZC0tfWVsc2VcIiRcIiE9PWMmJlwiJD9cIiE9PWMmJlwiJCFcIiE9PWN8fGQrKztjPWV9d2hpbGUoYyk7YmQoYil9ZnVuY3Rpb24gTGYoYSl7Zm9yKDtudWxsIT1hO2E9YS5uZXh0U2libGluZyl7dmFyIGI9YS5ub2RlVHlwZTtpZigxPT09Ynx8Mz09PWIpYnJlYWs7aWYoOD09PWIpe2I9YS5kYXRhO2lmKFwiJFwiPT09Ynx8XCIkIVwiPT09Ynx8XCIkP1wiPT09YilicmVhaztpZihcIi8kXCI9PT1iKXJldHVybiBudWxsfX1yZXR1cm4gYX1cbmZ1bmN0aW9uIE1mKGEpe2E9YS5wcmV2aW91c1NpYmxpbmc7Zm9yKHZhciBiPTA7YTspe2lmKDg9PT1hLm5vZGVUeXBlKXt2YXIgYz1hLmRhdGE7aWYoXCIkXCI9PT1jfHxcIiQhXCI9PT1jfHxcIiQ/XCI9PT1jKXtpZigwPT09YilyZXR1cm4gYTtiLS19ZWxzZVwiLyRcIj09PWMmJmIrK31hPWEucHJldmlvdXNTaWJsaW5nfXJldHVybiBudWxsfXZhciBOZj1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKSxPZj1cIl9fcmVhY3RGaWJlciRcIitOZixQZj1cIl9fcmVhY3RQcm9wcyRcIitOZix1Zj1cIl9fcmVhY3RDb250YWluZXIkXCIrTmYsb2Y9XCJfX3JlYWN0RXZlbnRzJFwiK05mLFFmPVwiX19yZWFjdExpc3RlbmVycyRcIitOZixSZj1cIl9fcmVhY3RIYW5kbGVzJFwiK05mO1xuZnVuY3Rpb24gV2MoYSl7dmFyIGI9YVtPZl07aWYoYilyZXR1cm4gYjtmb3IodmFyIGM9YS5wYXJlbnROb2RlO2M7KXtpZihiPWNbdWZdfHxjW09mXSl7Yz1iLmFsdGVybmF0ZTtpZihudWxsIT09Yi5jaGlsZHx8bnVsbCE9PWMmJm51bGwhPT1jLmNoaWxkKWZvcihhPU1mKGEpO251bGwhPT1hOyl7aWYoYz1hW09mXSlyZXR1cm4gYzthPU1mKGEpfXJldHVybiBifWE9YztjPWEucGFyZW50Tm9kZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBDYihhKXthPWFbT2ZdfHxhW3VmXTtyZXR1cm4hYXx8NSE9PWEudGFnJiY2IT09YS50YWcmJjEzIT09YS50YWcmJjMhPT1hLnRhZz9udWxsOmF9ZnVuY3Rpb24gdWUoYSl7aWYoNT09PWEudGFnfHw2PT09YS50YWcpcmV0dXJuIGEuc3RhdGVOb2RlO3Rocm93IEVycm9yKHAoMzMpKTt9ZnVuY3Rpb24gRGIoYSl7cmV0dXJuIGFbUGZdfHxudWxsfXZhciBTZj1bXSxUZj0tMTtmdW5jdGlvbiBVZihhKXtyZXR1cm57Y3VycmVudDphfX1cbmZ1bmN0aW9uIEUoYSl7MD5UZnx8KGEuY3VycmVudD1TZltUZl0sU2ZbVGZdPW51bGwsVGYtLSl9ZnVuY3Rpb24gRyhhLGIpe1RmKys7U2ZbVGZdPWEuY3VycmVudDthLmN1cnJlbnQ9Yn12YXIgVmY9e30sSD1VZihWZiksV2Y9VWYoITEpLFhmPVZmO2Z1bmN0aW9uIFlmKGEsYil7dmFyIGM9YS50eXBlLmNvbnRleHRUeXBlcztpZighYylyZXR1cm4gVmY7dmFyIGQ9YS5zdGF0ZU5vZGU7aWYoZCYmZC5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PT09YilyZXR1cm4gZC5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dDt2YXIgZT17fSxmO2ZvcihmIGluIGMpZVtmXT1iW2ZdO2QmJihhPWEuc3RhdGVOb2RlLGEuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD1iLGEuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ9ZSk7cmV0dXJuIGV9XG5mdW5jdGlvbiBaZihhKXthPWEuY2hpbGRDb250ZXh0VHlwZXM7cmV0dXJuIG51bGwhPT1hJiZ2b2lkIDAhPT1hfWZ1bmN0aW9uICRmKCl7RShXZik7RShIKX1mdW5jdGlvbiBhZyhhLGIsYyl7aWYoSC5jdXJyZW50IT09VmYpdGhyb3cgRXJyb3IocCgxNjgpKTtHKEgsYik7RyhXZixjKX1mdW5jdGlvbiBiZyhhLGIsYyl7dmFyIGQ9YS5zdGF0ZU5vZGU7Yj1iLmNoaWxkQ29udGV4dFR5cGVzO2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBkLmdldENoaWxkQ29udGV4dClyZXR1cm4gYztkPWQuZ2V0Q2hpbGRDb250ZXh0KCk7Zm9yKHZhciBlIGluIGQpaWYoIShlIGluIGIpKXRocm93IEVycm9yKHAoMTA4LFJhKGEpfHxcIlVua25vd25cIixlKSk7cmV0dXJuIEEoe30sYyxkKX1cbmZ1bmN0aW9uIGNnKGEpe2E9KGE9YS5zdGF0ZU5vZGUpJiZhLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0fHxWZjtYZj1ILmN1cnJlbnQ7RyhILGEpO0coV2YsV2YuY3VycmVudCk7cmV0dXJuITB9ZnVuY3Rpb24gZGcoYSxiLGMpe3ZhciBkPWEuc3RhdGVOb2RlO2lmKCFkKXRocm93IEVycm9yKHAoMTY5KSk7Yz8oYT1iZyhhLGIsWGYpLGQuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQ9YSxFKFdmKSxFKEgpLEcoSCxhKSk6RShXZik7RyhXZixjKX12YXIgZWc9bnVsbCxmZz0hMSxnZz0hMTtmdW5jdGlvbiBoZyhhKXtudWxsPT09ZWc/ZWc9W2FdOmVnLnB1c2goYSl9ZnVuY3Rpb24gaWcoYSl7Zmc9ITA7aGcoYSl9XG5mdW5jdGlvbiBqZygpe2lmKCFnZyYmbnVsbCE9PWVnKXtnZz0hMDt2YXIgYT0wLGI9Qzt0cnl7dmFyIGM9ZWc7Zm9yKEM9MTthPGMubGVuZ3RoO2ErKyl7dmFyIGQ9Y1thXTtkbyBkPWQoITApO3doaWxlKG51bGwhPT1kKX1lZz1udWxsO2ZnPSExfWNhdGNoKGUpe3Rocm93IG51bGwhPT1lZyYmKGVnPWVnLnNsaWNlKGErMSkpLGFjKGZjLGpnKSxlO31maW5hbGx5e0M9YixnZz0hMX19cmV0dXJuIG51bGx9dmFyIGtnPVtdLGxnPTAsbWc9bnVsbCxuZz0wLG9nPVtdLHBnPTAscWc9bnVsbCxyZz0xLHNnPVwiXCI7ZnVuY3Rpb24gdGcoYSxiKXtrZ1tsZysrXT1uZztrZ1tsZysrXT1tZzttZz1hO25nPWJ9XG5mdW5jdGlvbiB1ZyhhLGIsYyl7b2dbcGcrK109cmc7b2dbcGcrK109c2c7b2dbcGcrK109cWc7cWc9YTt2YXIgZD1yZzthPXNnO3ZhciBlPTMyLW9jKGQpLTE7ZCY9figxPDxlKTtjKz0xO3ZhciBmPTMyLW9jKGIpK2U7aWYoMzA8Zil7dmFyIGc9ZS1lJTU7Zj0oZCYoMTw8ZyktMSkudG9TdHJpbmcoMzIpO2Q+Pj1nO2UtPWc7cmc9MTw8MzItb2MoYikrZXxjPDxlfGQ7c2c9ZithfWVsc2Ugcmc9MTw8ZnxjPDxlfGQsc2c9YX1mdW5jdGlvbiB2ZyhhKXtudWxsIT09YS5yZXR1cm4mJih0ZyhhLDEpLHVnKGEsMSwwKSl9ZnVuY3Rpb24gd2coYSl7Zm9yKDthPT09bWc7KW1nPWtnWy0tbGddLGtnW2xnXT1udWxsLG5nPWtnWy0tbGddLGtnW2xnXT1udWxsO2Zvcig7YT09PXFnOylxZz1vZ1stLXBnXSxvZ1twZ109bnVsbCxzZz1vZ1stLXBnXSxvZ1twZ109bnVsbCxyZz1vZ1stLXBnXSxvZ1twZ109bnVsbH12YXIgeGc9bnVsbCx5Zz1udWxsLEk9ITEsemc9bnVsbDtcbmZ1bmN0aW9uIEFnKGEsYil7dmFyIGM9QmcoNSxudWxsLG51bGwsMCk7Yy5lbGVtZW50VHlwZT1cIkRFTEVURURcIjtjLnN0YXRlTm9kZT1iO2MucmV0dXJuPWE7Yj1hLmRlbGV0aW9ucztudWxsPT09Yj8oYS5kZWxldGlvbnM9W2NdLGEuZmxhZ3N8PTE2KTpiLnB1c2goYyl9XG5mdW5jdGlvbiBDZyhhLGIpe3N3aXRjaChhLnRhZyl7Y2FzZSA1OnZhciBjPWEudHlwZTtiPTEhPT1iLm5vZGVUeXBlfHxjLnRvTG93ZXJDYXNlKCkhPT1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk/bnVsbDpiO3JldHVybiBudWxsIT09Yj8oYS5zdGF0ZU5vZGU9Yix4Zz1hLHlnPUxmKGIuZmlyc3RDaGlsZCksITApOiExO2Nhc2UgNjpyZXR1cm4gYj1cIlwiPT09YS5wZW5kaW5nUHJvcHN8fDMhPT1iLm5vZGVUeXBlP251bGw6YixudWxsIT09Yj8oYS5zdGF0ZU5vZGU9Yix4Zz1hLHlnPW51bGwsITApOiExO2Nhc2UgMTM6cmV0dXJuIGI9OCE9PWIubm9kZVR5cGU/bnVsbDpiLG51bGwhPT1iPyhjPW51bGwhPT1xZz97aWQ6cmcsb3ZlcmZsb3c6c2d9Om51bGwsYS5tZW1vaXplZFN0YXRlPXtkZWh5ZHJhdGVkOmIsdHJlZUNvbnRleHQ6YyxyZXRyeUxhbmU6MTA3Mzc0MTgyNH0sYz1CZygxOCxudWxsLG51bGwsMCksYy5zdGF0ZU5vZGU9YixjLnJldHVybj1hLGEuY2hpbGQ9Yyx4Zz1hLHlnPVxubnVsbCwhMCk6ITE7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gRGcoYSl7cmV0dXJuIDAhPT0oYS5tb2RlJjEpJiYwPT09KGEuZmxhZ3MmMTI4KX1mdW5jdGlvbiBFZyhhKXtpZihJKXt2YXIgYj15ZztpZihiKXt2YXIgYz1iO2lmKCFDZyhhLGIpKXtpZihEZyhhKSl0aHJvdyBFcnJvcihwKDQxOCkpO2I9TGYoYy5uZXh0U2libGluZyk7dmFyIGQ9eGc7YiYmQ2coYSxiKT9BZyhkLGMpOihhLmZsYWdzPWEuZmxhZ3MmLTQwOTd8MixJPSExLHhnPWEpfX1lbHNle2lmKERnKGEpKXRocm93IEVycm9yKHAoNDE4KSk7YS5mbGFncz1hLmZsYWdzJi00MDk3fDI7ST0hMTt4Zz1hfX19ZnVuY3Rpb24gRmcoYSl7Zm9yKGE9YS5yZXR1cm47bnVsbCE9PWEmJjUhPT1hLnRhZyYmMyE9PWEudGFnJiYxMyE9PWEudGFnOylhPWEucmV0dXJuO3hnPWF9XG5mdW5jdGlvbiBHZyhhKXtpZihhIT09eGcpcmV0dXJuITE7aWYoIUkpcmV0dXJuIEZnKGEpLEk9ITAsITE7dmFyIGI7KGI9MyE9PWEudGFnKSYmIShiPTUhPT1hLnRhZykmJihiPWEudHlwZSxiPVwiaGVhZFwiIT09YiYmXCJib2R5XCIhPT1iJiYhRWYoYS50eXBlLGEubWVtb2l6ZWRQcm9wcykpO2lmKGImJihiPXlnKSl7aWYoRGcoYSkpdGhyb3cgSGcoKSxFcnJvcihwKDQxOCkpO2Zvcig7YjspQWcoYSxiKSxiPUxmKGIubmV4dFNpYmxpbmcpfUZnKGEpO2lmKDEzPT09YS50YWcpe2E9YS5tZW1vaXplZFN0YXRlO2E9bnVsbCE9PWE/YS5kZWh5ZHJhdGVkOm51bGw7aWYoIWEpdGhyb3cgRXJyb3IocCgzMTcpKTthOnthPWEubmV4dFNpYmxpbmc7Zm9yKGI9MDthOyl7aWYoOD09PWEubm9kZVR5cGUpe3ZhciBjPWEuZGF0YTtpZihcIi8kXCI9PT1jKXtpZigwPT09Yil7eWc9TGYoYS5uZXh0U2libGluZyk7YnJlYWsgYX1iLS19ZWxzZVwiJFwiIT09YyYmXCIkIVwiIT09YyYmXCIkP1wiIT09Y3x8YisrfWE9YS5uZXh0U2libGluZ315Zz1cbm51bGx9fWVsc2UgeWc9eGc/TGYoYS5zdGF0ZU5vZGUubmV4dFNpYmxpbmcpOm51bGw7cmV0dXJuITB9ZnVuY3Rpb24gSGcoKXtmb3IodmFyIGE9eWc7YTspYT1MZihhLm5leHRTaWJsaW5nKX1mdW5jdGlvbiBJZygpe3lnPXhnPW51bGw7ST0hMX1mdW5jdGlvbiBKZyhhKXtudWxsPT09emc/emc9W2FdOnpnLnB1c2goYSl9dmFyIEtnPXVhLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnO1xuZnVuY3Rpb24gTGcoYSxiLGMpe2E9Yy5yZWY7aWYobnVsbCE9PWEmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBhJiZcIm9iamVjdFwiIT09dHlwZW9mIGEpe2lmKGMuX293bmVyKXtjPWMuX293bmVyO2lmKGMpe2lmKDEhPT1jLnRhZyl0aHJvdyBFcnJvcihwKDMwOSkpO3ZhciBkPWMuc3RhdGVOb2RlfWlmKCFkKXRocm93IEVycm9yKHAoMTQ3LGEpKTt2YXIgZT1kLGY9XCJcIithO2lmKG51bGwhPT1iJiZudWxsIT09Yi5yZWYmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBiLnJlZiYmYi5yZWYuX3N0cmluZ1JlZj09PWYpcmV0dXJuIGIucmVmO2I9ZnVuY3Rpb24oYSl7dmFyIGI9ZS5yZWZzO251bGw9PT1hP2RlbGV0ZSBiW2ZdOmJbZl09YX07Yi5fc3RyaW5nUmVmPWY7cmV0dXJuIGJ9aWYoXCJzdHJpbmdcIiE9PXR5cGVvZiBhKXRocm93IEVycm9yKHAoMjg0KSk7aWYoIWMuX293bmVyKXRocm93IEVycm9yKHAoMjkwLGEpKTt9cmV0dXJuIGF9XG5mdW5jdGlvbiBNZyhhLGIpe2E9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGIpO3Rocm93IEVycm9yKHAoMzEsXCJbb2JqZWN0IE9iamVjdF1cIj09PWE/XCJvYmplY3Qgd2l0aCBrZXlzIHtcIitPYmplY3Qua2V5cyhiKS5qb2luKFwiLCBcIikrXCJ9XCI6YSkpO31mdW5jdGlvbiBOZyhhKXt2YXIgYj1hLl9pbml0O3JldHVybiBiKGEuX3BheWxvYWQpfVxuZnVuY3Rpb24gT2coYSl7ZnVuY3Rpb24gYihiLGMpe2lmKGEpe3ZhciBkPWIuZGVsZXRpb25zO251bGw9PT1kPyhiLmRlbGV0aW9ucz1bY10sYi5mbGFnc3w9MTYpOmQucHVzaChjKX19ZnVuY3Rpb24gYyhjLGQpe2lmKCFhKXJldHVybiBudWxsO2Zvcig7bnVsbCE9PWQ7KWIoYyxkKSxkPWQuc2libGluZztyZXR1cm4gbnVsbH1mdW5jdGlvbiBkKGEsYil7Zm9yKGE9bmV3IE1hcDtudWxsIT09YjspbnVsbCE9PWIua2V5P2Euc2V0KGIua2V5LGIpOmEuc2V0KGIuaW5kZXgsYiksYj1iLnNpYmxpbmc7cmV0dXJuIGF9ZnVuY3Rpb24gZShhLGIpe2E9UGcoYSxiKTthLmluZGV4PTA7YS5zaWJsaW5nPW51bGw7cmV0dXJuIGF9ZnVuY3Rpb24gZihiLGMsZCl7Yi5pbmRleD1kO2lmKCFhKXJldHVybiBiLmZsYWdzfD0xMDQ4NTc2LGM7ZD1iLmFsdGVybmF0ZTtpZihudWxsIT09ZClyZXR1cm4gZD1kLmluZGV4LGQ8Yz8oYi5mbGFnc3w9MixjKTpkO2IuZmxhZ3N8PTI7cmV0dXJuIGN9ZnVuY3Rpb24gZyhiKXthJiZcbm51bGw9PT1iLmFsdGVybmF0ZSYmKGIuZmxhZ3N8PTIpO3JldHVybiBifWZ1bmN0aW9uIGgoYSxiLGMsZCl7aWYobnVsbD09PWJ8fDYhPT1iLnRhZylyZXR1cm4gYj1RZyhjLGEubW9kZSxkKSxiLnJldHVybj1hLGI7Yj1lKGIsYyk7Yi5yZXR1cm49YTtyZXR1cm4gYn1mdW5jdGlvbiBrKGEsYixjLGQpe3ZhciBmPWMudHlwZTtpZihmPT09eWEpcmV0dXJuIG0oYSxiLGMucHJvcHMuY2hpbGRyZW4sZCxjLmtleSk7aWYobnVsbCE9PWImJihiLmVsZW1lbnRUeXBlPT09Znx8XCJvYmplY3RcIj09PXR5cGVvZiBmJiZudWxsIT09ZiYmZi4kJHR5cGVvZj09PUhhJiZOZyhmKT09PWIudHlwZSkpcmV0dXJuIGQ9ZShiLGMucHJvcHMpLGQucmVmPUxnKGEsYixjKSxkLnJldHVybj1hLGQ7ZD1SZyhjLnR5cGUsYy5rZXksYy5wcm9wcyxudWxsLGEubW9kZSxkKTtkLnJlZj1MZyhhLGIsYyk7ZC5yZXR1cm49YTtyZXR1cm4gZH1mdW5jdGlvbiBsKGEsYixjLGQpe2lmKG51bGw9PT1ifHw0IT09Yi50YWd8fFxuYi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyE9PWMuY29udGFpbmVySW5mb3x8Yi5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb24hPT1jLmltcGxlbWVudGF0aW9uKXJldHVybiBiPVNnKGMsYS5tb2RlLGQpLGIucmV0dXJuPWEsYjtiPWUoYixjLmNoaWxkcmVufHxbXSk7Yi5yZXR1cm49YTtyZXR1cm4gYn1mdW5jdGlvbiBtKGEsYixjLGQsZil7aWYobnVsbD09PWJ8fDchPT1iLnRhZylyZXR1cm4gYj1UZyhjLGEubW9kZSxkLGYpLGIucmV0dXJuPWEsYjtiPWUoYixjKTtiLnJldHVybj1hO3JldHVybiBifWZ1bmN0aW9uIHEoYSxiLGMpe2lmKFwic3RyaW5nXCI9PT10eXBlb2YgYiYmXCJcIiE9PWJ8fFwibnVtYmVyXCI9PT10eXBlb2YgYilyZXR1cm4gYj1RZyhcIlwiK2IsYS5tb2RlLGMpLGIucmV0dXJuPWEsYjtpZihcIm9iamVjdFwiPT09dHlwZW9mIGImJm51bGwhPT1iKXtzd2l0Y2goYi4kJHR5cGVvZil7Y2FzZSB2YTpyZXR1cm4gYz1SZyhiLnR5cGUsYi5rZXksYi5wcm9wcyxudWxsLGEubW9kZSxjKSxcbmMucmVmPUxnKGEsbnVsbCxiKSxjLnJldHVybj1hLGM7Y2FzZSB3YTpyZXR1cm4gYj1TZyhiLGEubW9kZSxjKSxiLnJldHVybj1hLGI7Y2FzZSBIYTp2YXIgZD1iLl9pbml0O3JldHVybiBxKGEsZChiLl9wYXlsb2FkKSxjKX1pZihlYihiKXx8S2EoYikpcmV0dXJuIGI9VGcoYixhLm1vZGUsYyxudWxsKSxiLnJldHVybj1hLGI7TWcoYSxiKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiByKGEsYixjLGQpe3ZhciBlPW51bGwhPT1iP2Iua2V5Om51bGw7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBjJiZcIlwiIT09Y3x8XCJudW1iZXJcIj09PXR5cGVvZiBjKXJldHVybiBudWxsIT09ZT9udWxsOmgoYSxiLFwiXCIrYyxkKTtpZihcIm9iamVjdFwiPT09dHlwZW9mIGMmJm51bGwhPT1jKXtzd2l0Y2goYy4kJHR5cGVvZil7Y2FzZSB2YTpyZXR1cm4gYy5rZXk9PT1lP2soYSxiLGMsZCk6bnVsbDtjYXNlIHdhOnJldHVybiBjLmtleT09PWU/bChhLGIsYyxkKTpudWxsO2Nhc2UgSGE6cmV0dXJuIGU9Yy5faW5pdCxyKGEsXG5iLGUoYy5fcGF5bG9hZCksZCl9aWYoZWIoYyl8fEthKGMpKXJldHVybiBudWxsIT09ZT9udWxsOm0oYSxiLGMsZCxudWxsKTtNZyhhLGMpfXJldHVybiBudWxsfWZ1bmN0aW9uIHkoYSxiLGMsZCxlKXtpZihcInN0cmluZ1wiPT09dHlwZW9mIGQmJlwiXCIhPT1kfHxcIm51bWJlclwiPT09dHlwZW9mIGQpcmV0dXJuIGE9YS5nZXQoYyl8fG51bGwsaChiLGEsXCJcIitkLGUpO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgZCYmbnVsbCE9PWQpe3N3aXRjaChkLiQkdHlwZW9mKXtjYXNlIHZhOnJldHVybiBhPWEuZ2V0KG51bGw9PT1kLmtleT9jOmQua2V5KXx8bnVsbCxrKGIsYSxkLGUpO2Nhc2Ugd2E6cmV0dXJuIGE9YS5nZXQobnVsbD09PWQua2V5P2M6ZC5rZXkpfHxudWxsLGwoYixhLGQsZSk7Y2FzZSBIYTp2YXIgZj1kLl9pbml0O3JldHVybiB5KGEsYixjLGYoZC5fcGF5bG9hZCksZSl9aWYoZWIoZCl8fEthKGQpKXJldHVybiBhPWEuZ2V0KGMpfHxudWxsLG0oYixhLGQsZSxudWxsKTtNZyhiLGQpfXJldHVybiBudWxsfVxuZnVuY3Rpb24gbihlLGcsaCxrKXtmb3IodmFyIGw9bnVsbCxtPW51bGwsdT1nLHc9Zz0wLHg9bnVsbDtudWxsIT09dSYmdzxoLmxlbmd0aDt3Kyspe3UuaW5kZXg+dz8oeD11LHU9bnVsbCk6eD11LnNpYmxpbmc7dmFyIG49cihlLHUsaFt3XSxrKTtpZihudWxsPT09bil7bnVsbD09PXUmJih1PXgpO2JyZWFrfWEmJnUmJm51bGw9PT1uLmFsdGVybmF0ZSYmYihlLHUpO2c9ZihuLGcsdyk7bnVsbD09PW0/bD1uOm0uc2libGluZz1uO209bjt1PXh9aWYodz09PWgubGVuZ3RoKXJldHVybiBjKGUsdSksSSYmdGcoZSx3KSxsO2lmKG51bGw9PT11KXtmb3IoO3c8aC5sZW5ndGg7dysrKXU9cShlLGhbd10sayksbnVsbCE9PXUmJihnPWYodSxnLHcpLG51bGw9PT1tP2w9dTptLnNpYmxpbmc9dSxtPXUpO0kmJnRnKGUsdyk7cmV0dXJuIGx9Zm9yKHU9ZChlLHUpO3c8aC5sZW5ndGg7dysrKXg9eSh1LGUsdyxoW3ddLGspLG51bGwhPT14JiYoYSYmbnVsbCE9PXguYWx0ZXJuYXRlJiZ1LmRlbGV0ZShudWxsPT09XG54LmtleT93Ongua2V5KSxnPWYoeCxnLHcpLG51bGw9PT1tP2w9eDptLnNpYmxpbmc9eCxtPXgpO2EmJnUuZm9yRWFjaChmdW5jdGlvbihhKXtyZXR1cm4gYihlLGEpfSk7SSYmdGcoZSx3KTtyZXR1cm4gbH1mdW5jdGlvbiB0KGUsZyxoLGspe3ZhciBsPUthKGgpO2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBsKXRocm93IEVycm9yKHAoMTUwKSk7aD1sLmNhbGwoaCk7aWYobnVsbD09aCl0aHJvdyBFcnJvcihwKDE1MSkpO2Zvcih2YXIgdT1sPW51bGwsbT1nLHc9Zz0wLHg9bnVsbCxuPWgubmV4dCgpO251bGwhPT1tJiYhbi5kb25lO3crKyxuPWgubmV4dCgpKXttLmluZGV4Pnc/KHg9bSxtPW51bGwpOng9bS5zaWJsaW5nO3ZhciB0PXIoZSxtLG4udmFsdWUsayk7aWYobnVsbD09PXQpe251bGw9PT1tJiYobT14KTticmVha31hJiZtJiZudWxsPT09dC5hbHRlcm5hdGUmJmIoZSxtKTtnPWYodCxnLHcpO251bGw9PT11P2w9dDp1LnNpYmxpbmc9dDt1PXQ7bT14fWlmKG4uZG9uZSlyZXR1cm4gYyhlLFxubSksSSYmdGcoZSx3KSxsO2lmKG51bGw9PT1tKXtmb3IoOyFuLmRvbmU7dysrLG49aC5uZXh0KCkpbj1xKGUsbi52YWx1ZSxrKSxudWxsIT09biYmKGc9ZihuLGcsdyksbnVsbD09PXU/bD1uOnUuc2libGluZz1uLHU9bik7SSYmdGcoZSx3KTtyZXR1cm4gbH1mb3IobT1kKGUsbSk7IW4uZG9uZTt3Kyssbj1oLm5leHQoKSluPXkobSxlLHcsbi52YWx1ZSxrKSxudWxsIT09biYmKGEmJm51bGwhPT1uLmFsdGVybmF0ZSYmbS5kZWxldGUobnVsbD09PW4ua2V5P3c6bi5rZXkpLGc9ZihuLGcsdyksbnVsbD09PXU/bD1uOnUuc2libGluZz1uLHU9bik7YSYmbS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBiKGUsYSl9KTtJJiZ0ZyhlLHcpO3JldHVybiBsfWZ1bmN0aW9uIEooYSxkLGYsaCl7XCJvYmplY3RcIj09PXR5cGVvZiBmJiZudWxsIT09ZiYmZi50eXBlPT09eWEmJm51bGw9PT1mLmtleSYmKGY9Zi5wcm9wcy5jaGlsZHJlbik7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBmJiZudWxsIT09Zil7c3dpdGNoKGYuJCR0eXBlb2Ype2Nhc2UgdmE6YTp7Zm9yKHZhciBrPVxuZi5rZXksbD1kO251bGwhPT1sOyl7aWYobC5rZXk9PT1rKXtrPWYudHlwZTtpZihrPT09eWEpe2lmKDc9PT1sLnRhZyl7YyhhLGwuc2libGluZyk7ZD1lKGwsZi5wcm9wcy5jaGlsZHJlbik7ZC5yZXR1cm49YTthPWQ7YnJlYWsgYX19ZWxzZSBpZihsLmVsZW1lbnRUeXBlPT09a3x8XCJvYmplY3RcIj09PXR5cGVvZiBrJiZudWxsIT09ayYmay4kJHR5cGVvZj09PUhhJiZOZyhrKT09PWwudHlwZSl7YyhhLGwuc2libGluZyk7ZD1lKGwsZi5wcm9wcyk7ZC5yZWY9TGcoYSxsLGYpO2QucmV0dXJuPWE7YT1kO2JyZWFrIGF9YyhhLGwpO2JyZWFrfWVsc2UgYihhLGwpO2w9bC5zaWJsaW5nfWYudHlwZT09PXlhPyhkPVRnKGYucHJvcHMuY2hpbGRyZW4sYS5tb2RlLGgsZi5rZXkpLGQucmV0dXJuPWEsYT1kKTooaD1SZyhmLnR5cGUsZi5rZXksZi5wcm9wcyxudWxsLGEubW9kZSxoKSxoLnJlZj1MZyhhLGQsZiksaC5yZXR1cm49YSxhPWgpfXJldHVybiBnKGEpO2Nhc2Ugd2E6YTp7Zm9yKGw9Zi5rZXk7bnVsbCE9PVxuZDspe2lmKGQua2V5PT09bClpZig0PT09ZC50YWcmJmQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm89PT1mLmNvbnRhaW5lckluZm8mJmQuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uPT09Zi5pbXBsZW1lbnRhdGlvbil7YyhhLGQuc2libGluZyk7ZD1lKGQsZi5jaGlsZHJlbnx8W10pO2QucmV0dXJuPWE7YT1kO2JyZWFrIGF9ZWxzZXtjKGEsZCk7YnJlYWt9ZWxzZSBiKGEsZCk7ZD1kLnNpYmxpbmd9ZD1TZyhmLGEubW9kZSxoKTtkLnJldHVybj1hO2E9ZH1yZXR1cm4gZyhhKTtjYXNlIEhhOnJldHVybiBsPWYuX2luaXQsSihhLGQsbChmLl9wYXlsb2FkKSxoKX1pZihlYihmKSlyZXR1cm4gbihhLGQsZixoKTtpZihLYShmKSlyZXR1cm4gdChhLGQsZixoKTtNZyhhLGYpfXJldHVyblwic3RyaW5nXCI9PT10eXBlb2YgZiYmXCJcIiE9PWZ8fFwibnVtYmVyXCI9PT10eXBlb2YgZj8oZj1cIlwiK2YsbnVsbCE9PWQmJjY9PT1kLnRhZz8oYyhhLGQuc2libGluZyksZD1lKGQsZiksZC5yZXR1cm49YSxhPWQpOlxuKGMoYSxkKSxkPVFnKGYsYS5tb2RlLGgpLGQucmV0dXJuPWEsYT1kKSxnKGEpKTpjKGEsZCl9cmV0dXJuIEp9dmFyIFVnPU9nKCEwKSxWZz1PZyghMSksV2c9VWYobnVsbCksWGc9bnVsbCxZZz1udWxsLFpnPW51bGw7ZnVuY3Rpb24gJGcoKXtaZz1ZZz1YZz1udWxsfWZ1bmN0aW9uIGFoKGEpe3ZhciBiPVdnLmN1cnJlbnQ7RShXZyk7YS5fY3VycmVudFZhbHVlPWJ9ZnVuY3Rpb24gYmgoYSxiLGMpe2Zvcig7bnVsbCE9PWE7KXt2YXIgZD1hLmFsdGVybmF0ZTsoYS5jaGlsZExhbmVzJmIpIT09Yj8oYS5jaGlsZExhbmVzfD1iLG51bGwhPT1kJiYoZC5jaGlsZExhbmVzfD1iKSk6bnVsbCE9PWQmJihkLmNoaWxkTGFuZXMmYikhPT1iJiYoZC5jaGlsZExhbmVzfD1iKTtpZihhPT09YylicmVhazthPWEucmV0dXJufX1cbmZ1bmN0aW9uIGNoKGEsYil7WGc9YTtaZz1ZZz1udWxsO2E9YS5kZXBlbmRlbmNpZXM7bnVsbCE9PWEmJm51bGwhPT1hLmZpcnN0Q29udGV4dCYmKDAhPT0oYS5sYW5lcyZiKSYmKGRoPSEwKSxhLmZpcnN0Q29udGV4dD1udWxsKX1mdW5jdGlvbiBlaChhKXt2YXIgYj1hLl9jdXJyZW50VmFsdWU7aWYoWmchPT1hKWlmKGE9e2NvbnRleHQ6YSxtZW1vaXplZFZhbHVlOmIsbmV4dDpudWxsfSxudWxsPT09WWcpe2lmKG51bGw9PT1YZyl0aHJvdyBFcnJvcihwKDMwOCkpO1lnPWE7WGcuZGVwZW5kZW5jaWVzPXtsYW5lczowLGZpcnN0Q29udGV4dDphfX1lbHNlIFlnPVlnLm5leHQ9YTtyZXR1cm4gYn12YXIgZmg9bnVsbDtmdW5jdGlvbiBnaChhKXtudWxsPT09Zmg/Zmg9W2FdOmZoLnB1c2goYSl9XG5mdW5jdGlvbiBoaChhLGIsYyxkKXt2YXIgZT1iLmludGVybGVhdmVkO251bGw9PT1lPyhjLm5leHQ9YyxnaChiKSk6KGMubmV4dD1lLm5leHQsZS5uZXh0PWMpO2IuaW50ZXJsZWF2ZWQ9YztyZXR1cm4gaWgoYSxkKX1mdW5jdGlvbiBpaChhLGIpe2EubGFuZXN8PWI7dmFyIGM9YS5hbHRlcm5hdGU7bnVsbCE9PWMmJihjLmxhbmVzfD1iKTtjPWE7Zm9yKGE9YS5yZXR1cm47bnVsbCE9PWE7KWEuY2hpbGRMYW5lc3w9YixjPWEuYWx0ZXJuYXRlLG51bGwhPT1jJiYoYy5jaGlsZExhbmVzfD1iKSxjPWEsYT1hLnJldHVybjtyZXR1cm4gMz09PWMudGFnP2Muc3RhdGVOb2RlOm51bGx9dmFyIGpoPSExO2Z1bmN0aW9uIGtoKGEpe2EudXBkYXRlUXVldWU9e2Jhc2VTdGF0ZTphLm1lbW9pemVkU3RhdGUsZmlyc3RCYXNlVXBkYXRlOm51bGwsbGFzdEJhc2VVcGRhdGU6bnVsbCxzaGFyZWQ6e3BlbmRpbmc6bnVsbCxpbnRlcmxlYXZlZDpudWxsLGxhbmVzOjB9LGVmZmVjdHM6bnVsbH19XG5mdW5jdGlvbiBsaChhLGIpe2E9YS51cGRhdGVRdWV1ZTtiLnVwZGF0ZVF1ZXVlPT09YSYmKGIudXBkYXRlUXVldWU9e2Jhc2VTdGF0ZTphLmJhc2VTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6YS5maXJzdEJhc2VVcGRhdGUsbGFzdEJhc2VVcGRhdGU6YS5sYXN0QmFzZVVwZGF0ZSxzaGFyZWQ6YS5zaGFyZWQsZWZmZWN0czphLmVmZmVjdHN9KX1mdW5jdGlvbiBtaChhLGIpe3JldHVybntldmVudFRpbWU6YSxsYW5lOmIsdGFnOjAscGF5bG9hZDpudWxsLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfX1cbmZ1bmN0aW9uIG5oKGEsYixjKXt2YXIgZD1hLnVwZGF0ZVF1ZXVlO2lmKG51bGw9PT1kKXJldHVybiBudWxsO2Q9ZC5zaGFyZWQ7aWYoMCE9PShLJjIpKXt2YXIgZT1kLnBlbmRpbmc7bnVsbD09PWU/Yi5uZXh0PWI6KGIubmV4dD1lLm5leHQsZS5uZXh0PWIpO2QucGVuZGluZz1iO3JldHVybiBpaChhLGMpfWU9ZC5pbnRlcmxlYXZlZDtudWxsPT09ZT8oYi5uZXh0PWIsZ2goZCkpOihiLm5leHQ9ZS5uZXh0LGUubmV4dD1iKTtkLmludGVybGVhdmVkPWI7cmV0dXJuIGloKGEsYyl9ZnVuY3Rpb24gb2goYSxiLGMpe2I9Yi51cGRhdGVRdWV1ZTtpZihudWxsIT09YiYmKGI9Yi5zaGFyZWQsMCE9PShjJjQxOTQyNDApKSl7dmFyIGQ9Yi5sYW5lcztkJj1hLnBlbmRpbmdMYW5lcztjfD1kO2IubGFuZXM9YztDYyhhLGMpfX1cbmZ1bmN0aW9uIHBoKGEsYil7dmFyIGM9YS51cGRhdGVRdWV1ZSxkPWEuYWx0ZXJuYXRlO2lmKG51bGwhPT1kJiYoZD1kLnVwZGF0ZVF1ZXVlLGM9PT1kKSl7dmFyIGU9bnVsbCxmPW51bGw7Yz1jLmZpcnN0QmFzZVVwZGF0ZTtpZihudWxsIT09Yyl7ZG97dmFyIGc9e2V2ZW50VGltZTpjLmV2ZW50VGltZSxsYW5lOmMubGFuZSx0YWc6Yy50YWcscGF5bG9hZDpjLnBheWxvYWQsY2FsbGJhY2s6Yy5jYWxsYmFjayxuZXh0Om51bGx9O251bGw9PT1mP2U9Zj1nOmY9Zi5uZXh0PWc7Yz1jLm5leHR9d2hpbGUobnVsbCE9PWMpO251bGw9PT1mP2U9Zj1iOmY9Zi5uZXh0PWJ9ZWxzZSBlPWY9YjtjPXtiYXNlU3RhdGU6ZC5iYXNlU3RhdGUsZmlyc3RCYXNlVXBkYXRlOmUsbGFzdEJhc2VVcGRhdGU6ZixzaGFyZWQ6ZC5zaGFyZWQsZWZmZWN0czpkLmVmZmVjdHN9O2EudXBkYXRlUXVldWU9YztyZXR1cm59YT1jLmxhc3RCYXNlVXBkYXRlO251bGw9PT1hP2MuZmlyc3RCYXNlVXBkYXRlPWI6YS5uZXh0PVxuYjtjLmxhc3RCYXNlVXBkYXRlPWJ9XG5mdW5jdGlvbiBxaChhLGIsYyxkKXt2YXIgZT1hLnVwZGF0ZVF1ZXVlO2poPSExO3ZhciBmPWUuZmlyc3RCYXNlVXBkYXRlLGc9ZS5sYXN0QmFzZVVwZGF0ZSxoPWUuc2hhcmVkLnBlbmRpbmc7aWYobnVsbCE9PWgpe2Uuc2hhcmVkLnBlbmRpbmc9bnVsbDt2YXIgaz1oLGw9ay5uZXh0O2submV4dD1udWxsO251bGw9PT1nP2Y9bDpnLm5leHQ9bDtnPWs7dmFyIG09YS5hbHRlcm5hdGU7bnVsbCE9PW0mJihtPW0udXBkYXRlUXVldWUsaD1tLmxhc3RCYXNlVXBkYXRlLGghPT1nJiYobnVsbD09PWg/bS5maXJzdEJhc2VVcGRhdGU9bDpoLm5leHQ9bCxtLmxhc3RCYXNlVXBkYXRlPWspKX1pZihudWxsIT09Zil7dmFyIHE9ZS5iYXNlU3RhdGU7Zz0wO209bD1rPW51bGw7aD1mO2Rve3ZhciByPWgubGFuZSx5PWguZXZlbnRUaW1lO2lmKChkJnIpPT09cil7bnVsbCE9PW0mJihtPW0ubmV4dD17ZXZlbnRUaW1lOnksbGFuZTowLHRhZzpoLnRhZyxwYXlsb2FkOmgucGF5bG9hZCxjYWxsYmFjazpoLmNhbGxiYWNrLFxubmV4dDpudWxsfSk7YTp7dmFyIG49YSx0PWg7cj1iO3k9Yztzd2l0Y2godC50YWcpe2Nhc2UgMTpuPXQucGF5bG9hZDtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2Ygbil7cT1uLmNhbGwoeSxxLHIpO2JyZWFrIGF9cT1uO2JyZWFrIGE7Y2FzZSAzOm4uZmxhZ3M9bi5mbGFncyYtNjU1Mzd8MTI4O2Nhc2UgMDpuPXQucGF5bG9hZDtyPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBuP24uY2FsbCh5LHEscik6bjtpZihudWxsPT09cnx8dm9pZCAwPT09cilicmVhayBhO3E9QSh7fSxxLHIpO2JyZWFrIGE7Y2FzZSAyOmpoPSEwfX1udWxsIT09aC5jYWxsYmFjayYmMCE9PWgubGFuZSYmKGEuZmxhZ3N8PTY0LHI9ZS5lZmZlY3RzLG51bGw9PT1yP2UuZWZmZWN0cz1baF06ci5wdXNoKGgpKX1lbHNlIHk9e2V2ZW50VGltZTp5LGxhbmU6cix0YWc6aC50YWcscGF5bG9hZDpoLnBheWxvYWQsY2FsbGJhY2s6aC5jYWxsYmFjayxuZXh0Om51bGx9LG51bGw9PT1tPyhsPW09eSxrPXEpOm09bS5uZXh0PXksZ3w9cjtcbmg9aC5uZXh0O2lmKG51bGw9PT1oKWlmKGg9ZS5zaGFyZWQucGVuZGluZyxudWxsPT09aClicmVhaztlbHNlIHI9aCxoPXIubmV4dCxyLm5leHQ9bnVsbCxlLmxhc3RCYXNlVXBkYXRlPXIsZS5zaGFyZWQucGVuZGluZz1udWxsfXdoaWxlKDEpO251bGw9PT1tJiYoaz1xKTtlLmJhc2VTdGF0ZT1rO2UuZmlyc3RCYXNlVXBkYXRlPWw7ZS5sYXN0QmFzZVVwZGF0ZT1tO2I9ZS5zaGFyZWQuaW50ZXJsZWF2ZWQ7aWYobnVsbCE9PWIpe2U9YjtkbyBnfD1lLmxhbmUsZT1lLm5leHQ7d2hpbGUoZSE9PWIpfWVsc2UgbnVsbD09PWYmJihlLnNoYXJlZC5sYW5lcz0wKTtyaHw9ZzthLmxhbmVzPWc7YS5tZW1vaXplZFN0YXRlPXF9fVxuZnVuY3Rpb24gc2goYSxiLGMpe2E9Yi5lZmZlY3RzO2IuZWZmZWN0cz1udWxsO2lmKG51bGwhPT1hKWZvcihiPTA7YjxhLmxlbmd0aDtiKyspe3ZhciBkPWFbYl0sZT1kLmNhbGxiYWNrO2lmKG51bGwhPT1lKXtkLmNhbGxiYWNrPW51bGw7ZD1jO2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlKXRocm93IEVycm9yKHAoMTkxLGUpKTtlLmNhbGwoZCl9fX12YXIgdGg9e30sdWg9VWYodGgpLHZoPVVmKHRoKSx3aD1VZih0aCk7ZnVuY3Rpb24geGgoYSl7aWYoYT09PXRoKXRocm93IEVycm9yKHAoMTc0KSk7cmV0dXJuIGF9XG5mdW5jdGlvbiB5aChhLGIpe0cod2gsYik7Ryh2aCxhKTtHKHVoLHRoKTthPWIubm9kZVR5cGU7c3dpdGNoKGEpe2Nhc2UgOTpjYXNlIDExOmI9KGI9Yi5kb2N1bWVudEVsZW1lbnQpP2IubmFtZXNwYWNlVVJJOmxiKG51bGwsXCJcIik7YnJlYWs7ZGVmYXVsdDphPTg9PT1hP2IucGFyZW50Tm9kZTpiLGI9YS5uYW1lc3BhY2VVUkl8fG51bGwsYT1hLnRhZ05hbWUsYj1sYihiLGEpfUUodWgpO0codWgsYil9ZnVuY3Rpb24gemgoKXtFKHVoKTtFKHZoKTtFKHdoKX1mdW5jdGlvbiBBaChhKXt4aCh3aC5jdXJyZW50KTt2YXIgYj14aCh1aC5jdXJyZW50KTt2YXIgYz1sYihiLGEudHlwZSk7YiE9PWMmJihHKHZoLGEpLEcodWgsYykpfWZ1bmN0aW9uIEJoKGEpe3ZoLmN1cnJlbnQ9PT1hJiYoRSh1aCksRSh2aCkpfXZhciBMPVVmKDApO1xuZnVuY3Rpb24gQ2goYSl7Zm9yKHZhciBiPWE7bnVsbCE9PWI7KXtpZigxMz09PWIudGFnKXt2YXIgYz1iLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWMmJihjPWMuZGVoeWRyYXRlZCxudWxsPT09Y3x8XCIkP1wiPT09Yy5kYXRhfHxcIiQhXCI9PT1jLmRhdGEpKXJldHVybiBifWVsc2UgaWYoMTk9PT1iLnRhZyYmdm9pZCAwIT09Yi5tZW1vaXplZFByb3BzLnJldmVhbE9yZGVyKXtpZigwIT09KGIuZmxhZ3MmMTI4KSlyZXR1cm4gYn1lbHNlIGlmKG51bGwhPT1iLmNoaWxkKXtiLmNoaWxkLnJldHVybj1iO2I9Yi5jaGlsZDtjb250aW51ZX1pZihiPT09YSlicmVhaztmb3IoO251bGw9PT1iLnNpYmxpbmc7KXtpZihudWxsPT09Yi5yZXR1cm58fGIucmV0dXJuPT09YSlyZXR1cm4gbnVsbDtiPWIucmV0dXJufWIuc2libGluZy5yZXR1cm49Yi5yZXR1cm47Yj1iLnNpYmxpbmd9cmV0dXJuIG51bGx9dmFyIERoPVtdO1xuZnVuY3Rpb24gRWgoKXtmb3IodmFyIGE9MDthPERoLmxlbmd0aDthKyspRGhbYV0uX3dvcmtJblByb2dyZXNzVmVyc2lvblByaW1hcnk9bnVsbDtEaC5sZW5ndGg9MH12YXIgRmg9dWEuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixHaD11YS5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZyxIaD0wLE09bnVsbCxOPW51bGwsTz1udWxsLEloPSExLEpoPSExLEtoPTAsTGg9MDtmdW5jdGlvbiBQKCl7dGhyb3cgRXJyb3IocCgzMjEpKTt9ZnVuY3Rpb24gTWgoYSxiKXtpZihudWxsPT09YilyZXR1cm4hMTtmb3IodmFyIGM9MDtjPGIubGVuZ3RoJiZjPGEubGVuZ3RoO2MrKylpZighSGUoYVtjXSxiW2NdKSlyZXR1cm4hMTtyZXR1cm4hMH1cbmZ1bmN0aW9uIE5oKGEsYixjLGQsZSxmKXtIaD1mO009YjtiLm1lbW9pemVkU3RhdGU9bnVsbDtiLnVwZGF0ZVF1ZXVlPW51bGw7Yi5sYW5lcz0wO0ZoLmN1cnJlbnQ9bnVsbD09PWF8fG51bGw9PT1hLm1lbW9pemVkU3RhdGU/T2g6UGg7YT1jKGQsZSk7aWYoSmgpe2Y9MDtkb3tKaD0hMTtLaD0wO2lmKDI1PD1mKXRocm93IEVycm9yKHAoMzAxKSk7Zis9MTtPPU49bnVsbDtiLnVwZGF0ZVF1ZXVlPW51bGw7RmguY3VycmVudD1RaDthPWMoZCxlKX13aGlsZShKaCl9RmguY3VycmVudD1SaDtiPW51bGwhPT1OJiZudWxsIT09Ti5uZXh0O0hoPTA7Tz1OPU09bnVsbDtJaD0hMTtpZihiKXRocm93IEVycm9yKHAoMzAwKSk7cmV0dXJuIGF9ZnVuY3Rpb24gU2goKXt2YXIgYT0wIT09S2g7S2g9MDtyZXR1cm4gYX1cbmZ1bmN0aW9uIFRoKCl7dmFyIGE9e21lbW9pemVkU3RhdGU6bnVsbCxiYXNlU3RhdGU6bnVsbCxiYXNlUXVldWU6bnVsbCxxdWV1ZTpudWxsLG5leHQ6bnVsbH07bnVsbD09PU8/TS5tZW1vaXplZFN0YXRlPU89YTpPPU8ubmV4dD1hO3JldHVybiBPfWZ1bmN0aW9uIFVoKCl7aWYobnVsbD09PU4pe3ZhciBhPU0uYWx0ZXJuYXRlO2E9bnVsbCE9PWE/YS5tZW1vaXplZFN0YXRlOm51bGx9ZWxzZSBhPU4ubmV4dDt2YXIgYj1udWxsPT09Tz9NLm1lbW9pemVkU3RhdGU6Ty5uZXh0O2lmKG51bGwhPT1iKU89YixOPWE7ZWxzZXtpZihudWxsPT09YSl0aHJvdyBFcnJvcihwKDMxMCkpO049YTthPXttZW1vaXplZFN0YXRlOk4ubWVtb2l6ZWRTdGF0ZSxiYXNlU3RhdGU6Ti5iYXNlU3RhdGUsYmFzZVF1ZXVlOk4uYmFzZVF1ZXVlLHF1ZXVlOk4ucXVldWUsbmV4dDpudWxsfTtudWxsPT09Tz9NLm1lbW9pemVkU3RhdGU9Tz1hOk89Ty5uZXh0PWF9cmV0dXJuIE99XG5mdW5jdGlvbiBWaChhLGIpe3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBiP2IoYSk6Yn1cbmZ1bmN0aW9uIFdoKGEpe3ZhciBiPVVoKCksYz1iLnF1ZXVlO2lmKG51bGw9PT1jKXRocm93IEVycm9yKHAoMzExKSk7Yy5sYXN0UmVuZGVyZWRSZWR1Y2VyPWE7dmFyIGQ9TixlPWQuYmFzZVF1ZXVlLGY9Yy5wZW5kaW5nO2lmKG51bGwhPT1mKXtpZihudWxsIT09ZSl7dmFyIGc9ZS5uZXh0O2UubmV4dD1mLm5leHQ7Zi5uZXh0PWd9ZC5iYXNlUXVldWU9ZT1mO2MucGVuZGluZz1udWxsfWlmKG51bGwhPT1lKXtmPWUubmV4dDtkPWQuYmFzZVN0YXRlO3ZhciBoPWc9bnVsbCxrPW51bGwsbD1mO2Rve3ZhciBtPWwubGFuZTtpZigoSGgmbSk9PT1tKW51bGwhPT1rJiYoaz1rLm5leHQ9e2xhbmU6MCxhY3Rpb246bC5hY3Rpb24saGFzRWFnZXJTdGF0ZTpsLmhhc0VhZ2VyU3RhdGUsZWFnZXJTdGF0ZTpsLmVhZ2VyU3RhdGUsbmV4dDpudWxsfSksZD1sLmhhc0VhZ2VyU3RhdGU/bC5lYWdlclN0YXRlOmEoZCxsLmFjdGlvbik7ZWxzZXt2YXIgcT17bGFuZTptLGFjdGlvbjpsLmFjdGlvbixoYXNFYWdlclN0YXRlOmwuaGFzRWFnZXJTdGF0ZSxcbmVhZ2VyU3RhdGU6bC5lYWdlclN0YXRlLG5leHQ6bnVsbH07bnVsbD09PWs/KGg9az1xLGc9ZCk6az1rLm5leHQ9cTtNLmxhbmVzfD1tO3JofD1tfWw9bC5uZXh0fXdoaWxlKG51bGwhPT1sJiZsIT09Zik7bnVsbD09PWs/Zz1kOmsubmV4dD1oO0hlKGQsYi5tZW1vaXplZFN0YXRlKXx8KGRoPSEwKTtiLm1lbW9pemVkU3RhdGU9ZDtiLmJhc2VTdGF0ZT1nO2IuYmFzZVF1ZXVlPWs7Yy5sYXN0UmVuZGVyZWRTdGF0ZT1kfWE9Yy5pbnRlcmxlYXZlZDtpZihudWxsIT09YSl7ZT1hO2RvIGY9ZS5sYW5lLE0ubGFuZXN8PWYscmh8PWYsZT1lLm5leHQ7d2hpbGUoZSE9PWEpfWVsc2UgbnVsbD09PWUmJihjLmxhbmVzPTApO3JldHVybltiLm1lbW9pemVkU3RhdGUsYy5kaXNwYXRjaF19XG5mdW5jdGlvbiBYaChhKXt2YXIgYj1VaCgpLGM9Yi5xdWV1ZTtpZihudWxsPT09Yyl0aHJvdyBFcnJvcihwKDMxMSkpO2MubGFzdFJlbmRlcmVkUmVkdWNlcj1hO3ZhciBkPWMuZGlzcGF0Y2gsZT1jLnBlbmRpbmcsZj1iLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWUpe2MucGVuZGluZz1udWxsO3ZhciBnPWU9ZS5uZXh0O2RvIGY9YShmLGcuYWN0aW9uKSxnPWcubmV4dDt3aGlsZShnIT09ZSk7SGUoZixiLm1lbW9pemVkU3RhdGUpfHwoZGg9ITApO2IubWVtb2l6ZWRTdGF0ZT1mO251bGw9PT1iLmJhc2VRdWV1ZSYmKGIuYmFzZVN0YXRlPWYpO2MubGFzdFJlbmRlcmVkU3RhdGU9Zn1yZXR1cm5bZixkXX1mdW5jdGlvbiBZaCgpe31cbmZ1bmN0aW9uIFpoKGEsYil7dmFyIGM9TSxkPVVoKCksZT1iKCksZj0hSGUoZC5tZW1vaXplZFN0YXRlLGUpO2YmJihkLm1lbW9pemVkU3RhdGU9ZSxkaD0hMCk7ZD1kLnF1ZXVlOyRoKGFpLmJpbmQobnVsbCxjLGQsYSksW2FdKTtpZihkLmdldFNuYXBzaG90IT09Ynx8Znx8bnVsbCE9PU8mJk8ubWVtb2l6ZWRTdGF0ZS50YWcmMSl7Yy5mbGFnc3w9MjA0ODtiaSg5LGNpLmJpbmQobnVsbCxjLGQsZSxiKSx2b2lkIDAsbnVsbCk7aWYobnVsbD09PVEpdGhyb3cgRXJyb3IocCgzNDkpKTswIT09KEhoJjMwKXx8ZGkoYyxiLGUpfXJldHVybiBlfWZ1bmN0aW9uIGRpKGEsYixjKXthLmZsYWdzfD0xNjM4NDthPXtnZXRTbmFwc2hvdDpiLHZhbHVlOmN9O2I9TS51cGRhdGVRdWV1ZTtudWxsPT09Yj8oYj17bGFzdEVmZmVjdDpudWxsLHN0b3JlczpudWxsfSxNLnVwZGF0ZVF1ZXVlPWIsYi5zdG9yZXM9W2FdKTooYz1iLnN0b3JlcyxudWxsPT09Yz9iLnN0b3Jlcz1bYV06Yy5wdXNoKGEpKX1cbmZ1bmN0aW9uIGNpKGEsYixjLGQpe2IudmFsdWU9YztiLmdldFNuYXBzaG90PWQ7ZWkoYikmJmZpKGEpfWZ1bmN0aW9uIGFpKGEsYixjKXtyZXR1cm4gYyhmdW5jdGlvbigpe2VpKGIpJiZmaShhKX0pfWZ1bmN0aW9uIGVpKGEpe3ZhciBiPWEuZ2V0U25hcHNob3Q7YT1hLnZhbHVlO3RyeXt2YXIgYz1iKCk7cmV0dXJuIUhlKGEsYyl9Y2F0Y2goZCl7cmV0dXJuITB9fWZ1bmN0aW9uIGZpKGEpe3ZhciBiPWloKGEsMSk7bnVsbCE9PWImJmdpKGIsYSwxLC0xKX1cbmZ1bmN0aW9uIGhpKGEpe3ZhciBiPVRoKCk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGEmJihhPWEoKSk7Yi5tZW1vaXplZFN0YXRlPWIuYmFzZVN0YXRlPWE7YT17cGVuZGluZzpudWxsLGludGVybGVhdmVkOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6VmgsbGFzdFJlbmRlcmVkU3RhdGU6YX07Yi5xdWV1ZT1hO2E9YS5kaXNwYXRjaD1paS5iaW5kKG51bGwsTSxhKTtyZXR1cm5bYi5tZW1vaXplZFN0YXRlLGFdfVxuZnVuY3Rpb24gYmkoYSxiLGMsZCl7YT17dGFnOmEsY3JlYXRlOmIsZGVzdHJveTpjLGRlcHM6ZCxuZXh0Om51bGx9O2I9TS51cGRhdGVRdWV1ZTtudWxsPT09Yj8oYj17bGFzdEVmZmVjdDpudWxsLHN0b3JlczpudWxsfSxNLnVwZGF0ZVF1ZXVlPWIsYi5sYXN0RWZmZWN0PWEubmV4dD1hKTooYz1iLmxhc3RFZmZlY3QsbnVsbD09PWM/Yi5sYXN0RWZmZWN0PWEubmV4dD1hOihkPWMubmV4dCxjLm5leHQ9YSxhLm5leHQ9ZCxiLmxhc3RFZmZlY3Q9YSkpO3JldHVybiBhfWZ1bmN0aW9uIGppKCl7cmV0dXJuIFVoKCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiBraShhLGIsYyxkKXt2YXIgZT1UaCgpO00uZmxhZ3N8PWE7ZS5tZW1vaXplZFN0YXRlPWJpKDF8YixjLHZvaWQgMCx2b2lkIDA9PT1kP251bGw6ZCl9XG5mdW5jdGlvbiBsaShhLGIsYyxkKXt2YXIgZT1VaCgpO2Q9dm9pZCAwPT09ZD9udWxsOmQ7dmFyIGY9dm9pZCAwO2lmKG51bGwhPT1OKXt2YXIgZz1OLm1lbW9pemVkU3RhdGU7Zj1nLmRlc3Ryb3k7aWYobnVsbCE9PWQmJk1oKGQsZy5kZXBzKSl7ZS5tZW1vaXplZFN0YXRlPWJpKGIsYyxmLGQpO3JldHVybn19TS5mbGFnc3w9YTtlLm1lbW9pemVkU3RhdGU9YmkoMXxiLGMsZixkKX1mdW5jdGlvbiBtaShhLGIpe3JldHVybiBraSg4MzkwNjU2LDgsYSxiKX1mdW5jdGlvbiAkaChhLGIpe3JldHVybiBsaSgyMDQ4LDgsYSxiKX1mdW5jdGlvbiBuaShhLGIpe3JldHVybiBsaSg0LDIsYSxiKX1mdW5jdGlvbiBvaShhLGIpe3JldHVybiBsaSg0LDQsYSxiKX1cbmZ1bmN0aW9uIHBpKGEsYil7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGIpcmV0dXJuIGE9YSgpLGIoYSksZnVuY3Rpb24oKXtiKG51bGwpfTtpZihudWxsIT09YiYmdm9pZCAwIT09YilyZXR1cm4gYT1hKCksYi5jdXJyZW50PWEsZnVuY3Rpb24oKXtiLmN1cnJlbnQ9bnVsbH19ZnVuY3Rpb24gcWkoYSxiLGMpe2M9bnVsbCE9PWMmJnZvaWQgMCE9PWM/Yy5jb25jYXQoW2FdKTpudWxsO3JldHVybiBsaSg0LDQscGkuYmluZChudWxsLGIsYSksYyl9ZnVuY3Rpb24gcmkoKXt9ZnVuY3Rpb24gc2koYSxiKXt2YXIgYz1VaCgpO2I9dm9pZCAwPT09Yj9udWxsOmI7dmFyIGQ9Yy5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1kJiZudWxsIT09YiYmTWgoYixkWzFdKSlyZXR1cm4gZFswXTtjLm1lbW9pemVkU3RhdGU9W2EsYl07cmV0dXJuIGF9XG5mdW5jdGlvbiB0aShhLGIpe3ZhciBjPVVoKCk7Yj12b2lkIDA9PT1iP251bGw6Yjt2YXIgZD1jLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWQmJm51bGwhPT1iJiZNaChiLGRbMV0pKXJldHVybiBkWzBdO2E9YSgpO2MubWVtb2l6ZWRTdGF0ZT1bYSxiXTtyZXR1cm4gYX1mdW5jdGlvbiB1aShhLGIsYyl7aWYoMD09PShIaCYyMSkpcmV0dXJuIGEuYmFzZVN0YXRlJiYoYS5iYXNlU3RhdGU9ITEsZGg9ITApLGEubWVtb2l6ZWRTdGF0ZT1jO0hlKGMsYil8fChjPXljKCksTS5sYW5lc3w9YyxyaHw9YyxhLmJhc2VTdGF0ZT0hMCk7cmV0dXJuIGJ9ZnVuY3Rpb24gdmkoYSxiKXt2YXIgYz1DO0M9MCE9PWMmJjQ+Yz9jOjQ7YSghMCk7dmFyIGQ9R2gudHJhbnNpdGlvbjtHaC50cmFuc2l0aW9uPXt9O3RyeXthKCExKSxiKCl9ZmluYWxseXtDPWMsR2gudHJhbnNpdGlvbj1kfX1mdW5jdGlvbiB3aSgpe3JldHVybiBVaCgpLm1lbW9pemVkU3RhdGV9XG5mdW5jdGlvbiB4aShhLGIsYyl7dmFyIGQ9eWkoYSk7Yz17bGFuZTpkLGFjdGlvbjpjLGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH07aWYoemkoYSkpQWkoYixjKTtlbHNlIGlmKGM9aGgoYSxiLGMsZCksbnVsbCE9PWMpe3ZhciBlPVIoKTtnaShjLGEsZCxlKTtCaShjLGIsZCl9fVxuZnVuY3Rpb24gaWkoYSxiLGMpe3ZhciBkPXlpKGEpLGU9e2xhbmU6ZCxhY3Rpb246YyxoYXNFYWdlclN0YXRlOiExLGVhZ2VyU3RhdGU6bnVsbCxuZXh0Om51bGx9O2lmKHppKGEpKUFpKGIsZSk7ZWxzZXt2YXIgZj1hLmFsdGVybmF0ZTtpZigwPT09YS5sYW5lcyYmKG51bGw9PT1mfHwwPT09Zi5sYW5lcykmJihmPWIubGFzdFJlbmRlcmVkUmVkdWNlcixudWxsIT09ZikpdHJ5e3ZhciBnPWIubGFzdFJlbmRlcmVkU3RhdGUsaD1mKGcsYyk7ZS5oYXNFYWdlclN0YXRlPSEwO2UuZWFnZXJTdGF0ZT1oO2lmKEhlKGgsZykpe3ZhciBrPWIuaW50ZXJsZWF2ZWQ7bnVsbD09PWs/KGUubmV4dD1lLGdoKGIpKTooZS5uZXh0PWsubmV4dCxrLm5leHQ9ZSk7Yi5pbnRlcmxlYXZlZD1lO3JldHVybn19Y2F0Y2gobCl7fWZpbmFsbHl7fWM9aGgoYSxiLGUsZCk7bnVsbCE9PWMmJihlPVIoKSxnaShjLGEsZCxlKSxCaShjLGIsZCkpfX1cbmZ1bmN0aW9uIHppKGEpe3ZhciBiPWEuYWx0ZXJuYXRlO3JldHVybiBhPT09TXx8bnVsbCE9PWImJmI9PT1NfWZ1bmN0aW9uIEFpKGEsYil7Smg9SWg9ITA7dmFyIGM9YS5wZW5kaW5nO251bGw9PT1jP2IubmV4dD1iOihiLm5leHQ9Yy5uZXh0LGMubmV4dD1iKTthLnBlbmRpbmc9Yn1mdW5jdGlvbiBCaShhLGIsYyl7aWYoMCE9PShjJjQxOTQyNDApKXt2YXIgZD1iLmxhbmVzO2QmPWEucGVuZGluZ0xhbmVzO2N8PWQ7Yi5sYW5lcz1jO0NjKGEsYyl9fVxudmFyIFJoPXtyZWFkQ29udGV4dDplaCx1c2VDYWxsYmFjazpQLHVzZUNvbnRleHQ6UCx1c2VFZmZlY3Q6UCx1c2VJbXBlcmF0aXZlSGFuZGxlOlAsdXNlSW5zZXJ0aW9uRWZmZWN0OlAsdXNlTGF5b3V0RWZmZWN0OlAsdXNlTWVtbzpQLHVzZVJlZHVjZXI6UCx1c2VSZWY6UCx1c2VTdGF0ZTpQLHVzZURlYnVnVmFsdWU6UCx1c2VEZWZlcnJlZFZhbHVlOlAsdXNlVHJhbnNpdGlvbjpQLHVzZU11dGFibGVTb3VyY2U6UCx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpQLHVzZUlkOlAsdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfSxPaD17cmVhZENvbnRleHQ6ZWgsdXNlQ2FsbGJhY2s6ZnVuY3Rpb24oYSxiKXtUaCgpLm1lbW9pemVkU3RhdGU9W2Esdm9pZCAwPT09Yj9udWxsOmJdO3JldHVybiBhfSx1c2VDb250ZXh0OmVoLHVzZUVmZmVjdDptaSx1c2VJbXBlcmF0aXZlSGFuZGxlOmZ1bmN0aW9uKGEsYixjKXtjPW51bGwhPT1jJiZ2b2lkIDAhPT1jP2MuY29uY2F0KFthXSk6bnVsbDtyZXR1cm4ga2koNDE5NDMwOCxcbjQscGkuYmluZChudWxsLGIsYSksYyl9LHVzZUxheW91dEVmZmVjdDpmdW5jdGlvbihhLGIpe3JldHVybiBraSg0MTk0MzA4LDQsYSxiKX0sdXNlSW5zZXJ0aW9uRWZmZWN0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIGtpKDQsMixhLGIpfSx1c2VNZW1vOmZ1bmN0aW9uKGEsYil7dmFyIGM9VGgoKTtiPXZvaWQgMD09PWI/bnVsbDpiO2E9YSgpO2MubWVtb2l6ZWRTdGF0ZT1bYSxiXTtyZXR1cm4gYX0sdXNlUmVkdWNlcjpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9VGgoKTtiPXZvaWQgMCE9PWM/YyhiKTpiO2QubWVtb2l6ZWRTdGF0ZT1kLmJhc2VTdGF0ZT1iO2E9e3BlbmRpbmc6bnVsbCxpbnRlcmxlYXZlZDpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmEsbGFzdFJlbmRlcmVkU3RhdGU6Yn07ZC5xdWV1ZT1hO2E9YS5kaXNwYXRjaD14aS5iaW5kKG51bGwsTSxhKTtyZXR1cm5bZC5tZW1vaXplZFN0YXRlLGFdfSx1c2VSZWY6ZnVuY3Rpb24oYSl7dmFyIGI9XG5UaCgpO2E9e2N1cnJlbnQ6YX07cmV0dXJuIGIubWVtb2l6ZWRTdGF0ZT1hfSx1c2VTdGF0ZTpoaSx1c2VEZWJ1Z1ZhbHVlOnJpLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oYSl7cmV0dXJuIFRoKCkubWVtb2l6ZWRTdGF0ZT1hfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9aGkoITEpLGI9YVswXTthPXZpLmJpbmQobnVsbCxhWzFdKTtUaCgpLm1lbW9pemVkU3RhdGU9YTtyZXR1cm5bYixhXX0sdXNlTXV0YWJsZVNvdXJjZTpmdW5jdGlvbigpe30sdXNlU3luY0V4dGVybmFsU3RvcmU6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPU0sZT1UaCgpO2lmKEkpe2lmKHZvaWQgMD09PWMpdGhyb3cgRXJyb3IocCg0MDcpKTtjPWMoKX1lbHNle2M9YigpO2lmKG51bGw9PT1RKXRocm93IEVycm9yKHAoMzQ5KSk7MCE9PShIaCYzMCl8fGRpKGQsYixjKX1lLm1lbW9pemVkU3RhdGU9Yzt2YXIgZj17dmFsdWU6YyxnZXRTbmFwc2hvdDpifTtlLnF1ZXVlPWY7bWkoYWkuYmluZChudWxsLGQsXG5mLGEpLFthXSk7ZC5mbGFnc3w9MjA0ODtiaSg5LGNpLmJpbmQobnVsbCxkLGYsYyxiKSx2b2lkIDAsbnVsbCk7cmV0dXJuIGN9LHVzZUlkOmZ1bmN0aW9uKCl7dmFyIGE9VGgoKSxiPVEuaWRlbnRpZmllclByZWZpeDtpZihJKXt2YXIgYz1zZzt2YXIgZD1yZztjPShkJn4oMTw8MzItb2MoZCktMSkpLnRvU3RyaW5nKDMyKStjO2I9XCI6XCIrYitcIlJcIitjO2M9S2grKzswPGMmJihiKz1cIkhcIitjLnRvU3RyaW5nKDMyKSk7Yis9XCI6XCJ9ZWxzZSBjPUxoKyssYj1cIjpcIitiK1wiclwiK2MudG9TdHJpbmcoMzIpK1wiOlwiO3JldHVybiBhLm1lbW9pemVkU3RhdGU9Yn0sdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfSxQaD17cmVhZENvbnRleHQ6ZWgsdXNlQ2FsbGJhY2s6c2ksdXNlQ29udGV4dDplaCx1c2VFZmZlY3Q6JGgsdXNlSW1wZXJhdGl2ZUhhbmRsZTpxaSx1c2VJbnNlcnRpb25FZmZlY3Q6bmksdXNlTGF5b3V0RWZmZWN0Om9pLHVzZU1lbW86dGksdXNlUmVkdWNlcjpXaCx1c2VSZWY6amksdXNlU3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gV2goVmgpfSxcbnVzZURlYnVnVmFsdWU6cmksdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihhKXt2YXIgYj1VaCgpO3JldHVybiB1aShiLE4ubWVtb2l6ZWRTdGF0ZSxhKX0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciBhPVdoKFZoKVswXSxiPVVoKCkubWVtb2l6ZWRTdGF0ZTtyZXR1cm5bYSxiXX0sdXNlTXV0YWJsZVNvdXJjZTpZaCx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpaaCx1c2VJZDp3aSx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9LFFoPXtyZWFkQ29udGV4dDplaCx1c2VDYWxsYmFjazpzaSx1c2VDb250ZXh0OmVoLHVzZUVmZmVjdDokaCx1c2VJbXBlcmF0aXZlSGFuZGxlOnFpLHVzZUluc2VydGlvbkVmZmVjdDpuaSx1c2VMYXlvdXRFZmZlY3Q6b2ksdXNlTWVtbzp0aSx1c2VSZWR1Y2VyOlhoLHVzZVJlZjpqaSx1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBYaChWaCl9LHVzZURlYnVnVmFsdWU6cmksdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihhKXt2YXIgYj1VaCgpO3JldHVybiBudWxsPT09XG5OP2IubWVtb2l6ZWRTdGF0ZT1hOnVpKGIsTi5tZW1vaXplZFN0YXRlLGEpfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9WGgoVmgpWzBdLGI9VWgoKS5tZW1vaXplZFN0YXRlO3JldHVyblthLGJdfSx1c2VNdXRhYmxlU291cmNlOlloLHVzZVN5bmNFeHRlcm5hbFN0b3JlOlpoLHVzZUlkOndpLHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX07ZnVuY3Rpb24gQ2koYSxiKXtpZihhJiZhLmRlZmF1bHRQcm9wcyl7Yj1BKHt9LGIpO2E9YS5kZWZhdWx0UHJvcHM7Zm9yKHZhciBjIGluIGEpdm9pZCAwPT09YltjXSYmKGJbY109YVtjXSk7cmV0dXJuIGJ9cmV0dXJuIGJ9ZnVuY3Rpb24gRGkoYSxiLGMsZCl7Yj1hLm1lbW9pemVkU3RhdGU7Yz1jKGQsYik7Yz1udWxsPT09Y3x8dm9pZCAwPT09Yz9iOkEoe30sYixjKTthLm1lbW9pemVkU3RhdGU9YzswPT09YS5sYW5lcyYmKGEudXBkYXRlUXVldWUuYmFzZVN0YXRlPWMpfVxudmFyIEVpPXtpc01vdW50ZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuKGE9YS5fcmVhY3RJbnRlcm5hbHMpP1ZiKGEpPT09YTohMX0sZW5xdWV1ZVNldFN0YXRlOmZ1bmN0aW9uKGEsYixjKXthPWEuX3JlYWN0SW50ZXJuYWxzO3ZhciBkPVIoKSxlPXlpKGEpLGY9bWgoZCxlKTtmLnBheWxvYWQ9Yjt2b2lkIDAhPT1jJiZudWxsIT09YyYmKGYuY2FsbGJhY2s9Yyk7Yj1uaChhLGYsZSk7bnVsbCE9PWImJihnaShiLGEsZSxkKSxvaChiLGEsZSkpfSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKGEsYixjKXthPWEuX3JlYWN0SW50ZXJuYWxzO3ZhciBkPVIoKSxlPXlpKGEpLGY9bWgoZCxlKTtmLnRhZz0xO2YucGF5bG9hZD1iO3ZvaWQgMCE9PWMmJm51bGwhPT1jJiYoZi5jYWxsYmFjaz1jKTtiPW5oKGEsZixlKTtudWxsIT09YiYmKGdpKGIsYSxlLGQpLG9oKGIsYSxlKSl9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbihhLGIpe2E9YS5fcmVhY3RJbnRlcm5hbHM7dmFyIGM9UigpLGQ9XG55aShhKSxlPW1oKGMsZCk7ZS50YWc9Mjt2b2lkIDAhPT1iJiZudWxsIT09YiYmKGUuY2FsbGJhY2s9Yik7Yj1uaChhLGUsZCk7bnVsbCE9PWImJihnaShiLGEsZCxjKSxvaChiLGEsZCkpfX07ZnVuY3Rpb24gRmkoYSxiLGMsZCxlLGYsZyl7YT1hLnN0YXRlTm9kZTtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgYS5zaG91bGRDb21wb25lbnRVcGRhdGU/YS5zaG91bGRDb21wb25lbnRVcGRhdGUoZCxmLGcpOmIucHJvdG90eXBlJiZiLnByb3RvdHlwZS5pc1B1cmVSZWFjdENvbXBvbmVudD8hSWUoYyxkKXx8IUllKGUsZik6ITB9XG5mdW5jdGlvbiBHaShhLGIsYyl7dmFyIGQ9ITEsZT1WZjt2YXIgZj1iLmNvbnRleHRUeXBlO1wib2JqZWN0XCI9PT10eXBlb2YgZiYmbnVsbCE9PWY/Zj1laChmKTooZT1aZihiKT9YZjpILmN1cnJlbnQsZD1iLmNvbnRleHRUeXBlcyxmPShkPW51bGwhPT1kJiZ2b2lkIDAhPT1kKT9ZZihhLGUpOlZmKTtiPW5ldyBiKGMsZik7YS5tZW1vaXplZFN0YXRlPW51bGwhPT1iLnN0YXRlJiZ2b2lkIDAhPT1iLnN0YXRlP2Iuc3RhdGU6bnVsbDtiLnVwZGF0ZXI9RWk7YS5zdGF0ZU5vZGU9YjtiLl9yZWFjdEludGVybmFscz1hO2QmJihhPWEuc3RhdGVOb2RlLGEuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD1lLGEuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ9Zik7cmV0dXJuIGJ9XG5mdW5jdGlvbiBIaShhLGIsYyxkKXthPWIuc3RhdGU7XCJmdW5jdGlvblwiPT09dHlwZW9mIGIuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmYi5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKGMsZCk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGIuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJmIuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoYyxkKTtiLnN0YXRlIT09YSYmRWkuZW5xdWV1ZVJlcGxhY2VTdGF0ZShiLGIuc3RhdGUsbnVsbCl9XG5mdW5jdGlvbiBJaShhLGIsYyxkKXt2YXIgZT1hLnN0YXRlTm9kZTtlLnByb3BzPWM7ZS5zdGF0ZT1hLm1lbW9pemVkU3RhdGU7ZS5yZWZzPXt9O2toKGEpO3ZhciBmPWIuY29udGV4dFR5cGU7XCJvYmplY3RcIj09PXR5cGVvZiBmJiZudWxsIT09Zj9lLmNvbnRleHQ9ZWgoZik6KGY9WmYoYik/WGY6SC5jdXJyZW50LGUuY29udGV4dD1ZZihhLGYpKTtlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZTtmPWIuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBmJiYoRGkoYSxiLGYsYyksZS5zdGF0ZT1hLm1lbW9pemVkU3RhdGUpO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBiLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc3x8XCJmdW5jdGlvblwiPT09dHlwZW9mIGUuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlLmNvbXBvbmVudFdpbGxNb3VudHx8KGI9ZS5zdGF0ZSxcblwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLmNvbXBvbmVudFdpbGxNb3VudCYmZS5jb21wb25lbnRXaWxsTW91bnQoKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSxiIT09ZS5zdGF0ZSYmRWkuZW5xdWV1ZVJlcGxhY2VTdGF0ZShlLGUuc3RhdGUsbnVsbCkscWgoYSxjLGUsZCksZS5zdGF0ZT1hLm1lbW9pemVkU3RhdGUpO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBlLmNvbXBvbmVudERpZE1vdW50JiYoYS5mbGFnc3w9NDE5NDMwOCl9ZnVuY3Rpb24gSmkoYSxiKXt0cnl7dmFyIGM9XCJcIixkPWI7ZG8gYys9UGEoZCksZD1kLnJldHVybjt3aGlsZShkKTt2YXIgZT1jfWNhdGNoKGYpe2U9XCJcXG5FcnJvciBnZW5lcmF0aW5nIHN0YWNrOiBcIitmLm1lc3NhZ2UrXCJcXG5cIitmLnN0YWNrfXJldHVybnt2YWx1ZTphLHNvdXJjZTpiLHN0YWNrOmUsZGlnZXN0Om51bGx9fVxuZnVuY3Rpb24gS2koYSxiLGMpe3JldHVybnt2YWx1ZTphLHNvdXJjZTpudWxsLHN0YWNrOm51bGwhPWM/YzpudWxsLGRpZ2VzdDpudWxsIT1iP2I6bnVsbH19ZnVuY3Rpb24gTGkoYSxiKXt0cnl7Y29uc29sZS5lcnJvcihiLnZhbHVlKX1jYXRjaChjKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgYzt9KX19dmFyIE1pPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBXZWFrTWFwP1dlYWtNYXA6TWFwO2Z1bmN0aW9uIE5pKGEsYixjKXtjPW1oKC0xLGMpO2MudGFnPTM7Yy5wYXlsb2FkPXtlbGVtZW50Om51bGx9O3ZhciBkPWIudmFsdWU7Yy5jYWxsYmFjaz1mdW5jdGlvbigpe09pfHwoT2k9ITAsUGk9ZCk7TGkoYSxiKX07cmV0dXJuIGN9XG5mdW5jdGlvbiBRaShhLGIsYyl7Yz1taCgtMSxjKTtjLnRhZz0zO3ZhciBkPWEudHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGQpe3ZhciBlPWIudmFsdWU7Yy5wYXlsb2FkPWZ1bmN0aW9uKCl7cmV0dXJuIGQoZSl9O2MuY2FsbGJhY2s9ZnVuY3Rpb24oKXtMaShhLGIpfX12YXIgZj1hLnN0YXRlTm9kZTtudWxsIT09ZiYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGYuY29tcG9uZW50RGlkQ2F0Y2gmJihjLmNhbGxiYWNrPWZ1bmN0aW9uKCl7TGkoYSxiKTtcImZ1bmN0aW9uXCIhPT10eXBlb2YgZCYmKG51bGw9PT1SaT9SaT1uZXcgU2V0KFt0aGlzXSk6UmkuYWRkKHRoaXMpKTt2YXIgYz1iLnN0YWNrO3RoaXMuY29tcG9uZW50RGlkQ2F0Y2goYi52YWx1ZSx7Y29tcG9uZW50U3RhY2s6bnVsbCE9PWM/YzpcIlwifSl9KTtyZXR1cm4gY31cbmZ1bmN0aW9uIFNpKGEsYixjKXt2YXIgZD1hLnBpbmdDYWNoZTtpZihudWxsPT09ZCl7ZD1hLnBpbmdDYWNoZT1uZXcgTWk7dmFyIGU9bmV3IFNldDtkLnNldChiLGUpfWVsc2UgZT1kLmdldChiKSx2b2lkIDA9PT1lJiYoZT1uZXcgU2V0LGQuc2V0KGIsZSkpO2UuaGFzKGMpfHwoZS5hZGQoYyksYT1UaS5iaW5kKG51bGwsYSxiLGMpLGIudGhlbihhLGEpKX1mdW5jdGlvbiBVaShhKXtkb3t2YXIgYjtpZihiPTEzPT09YS50YWcpYj1hLm1lbW9pemVkU3RhdGUsYj1udWxsIT09Yj9udWxsIT09Yi5kZWh5ZHJhdGVkPyEwOiExOiEwO2lmKGIpcmV0dXJuIGE7YT1hLnJldHVybn13aGlsZShudWxsIT09YSk7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBWaShhLGIsYyxkLGUpe2lmKDA9PT0oYS5tb2RlJjEpKXJldHVybiBhPT09Yj9hLmZsYWdzfD02NTUzNjooYS5mbGFnc3w9MTI4LGMuZmxhZ3N8PTEzMTA3MixjLmZsYWdzJj0tNTI4MDUsMT09PWMudGFnJiYobnVsbD09PWMuYWx0ZXJuYXRlP2MudGFnPTE3OihiPW1oKC0xLDEpLGIudGFnPTIsbmgoYyxiLDEpKSksYy5sYW5lc3w9MSksYTthLmZsYWdzfD02NTUzNjthLmxhbmVzPWU7cmV0dXJuIGF9dmFyIFdpPXVhLlJlYWN0Q3VycmVudE93bmVyLGRoPSExO2Z1bmN0aW9uIFhpKGEsYixjLGQpe2IuY2hpbGQ9bnVsbD09PWE/VmcoYixudWxsLGMsZCk6VWcoYixhLmNoaWxkLGMsZCl9XG5mdW5jdGlvbiBZaShhLGIsYyxkLGUpe2M9Yy5yZW5kZXI7dmFyIGY9Yi5yZWY7Y2goYixlKTtkPU5oKGEsYixjLGQsZixlKTtjPVNoKCk7aWYobnVsbCE9PWEmJiFkaClyZXR1cm4gYi51cGRhdGVRdWV1ZT1hLnVwZGF0ZVF1ZXVlLGIuZmxhZ3MmPS0yMDUzLGEubGFuZXMmPX5lLFppKGEsYixlKTtJJiZjJiZ2ZyhiKTtiLmZsYWdzfD0xO1hpKGEsYixkLGUpO3JldHVybiBiLmNoaWxkfVxuZnVuY3Rpb24gJGkoYSxiLGMsZCxlKXtpZihudWxsPT09YSl7dmFyIGY9Yy50eXBlO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBmJiYhYWooZikmJnZvaWQgMD09PWYuZGVmYXVsdFByb3BzJiZudWxsPT09Yy5jb21wYXJlJiZ2b2lkIDA9PT1jLmRlZmF1bHRQcm9wcylyZXR1cm4gYi50YWc9MTUsYi50eXBlPWYsYmooYSxiLGYsZCxlKTthPVJnKGMudHlwZSxudWxsLGQsYixiLm1vZGUsZSk7YS5yZWY9Yi5yZWY7YS5yZXR1cm49YjtyZXR1cm4gYi5jaGlsZD1hfWY9YS5jaGlsZDtpZigwPT09KGEubGFuZXMmZSkpe3ZhciBnPWYubWVtb2l6ZWRQcm9wcztjPWMuY29tcGFyZTtjPW51bGwhPT1jP2M6SWU7aWYoYyhnLGQpJiZhLnJlZj09PWIucmVmKXJldHVybiBaaShhLGIsZSl9Yi5mbGFnc3w9MTthPVBnKGYsZCk7YS5yZWY9Yi5yZWY7YS5yZXR1cm49YjtyZXR1cm4gYi5jaGlsZD1hfVxuZnVuY3Rpb24gYmooYSxiLGMsZCxlKXtpZihudWxsIT09YSl7dmFyIGY9YS5tZW1vaXplZFByb3BzO2lmKEllKGYsZCkmJmEucmVmPT09Yi5yZWYpaWYoZGg9ITEsYi5wZW5kaW5nUHJvcHM9ZD1mLDAhPT0oYS5sYW5lcyZlKSkwIT09KGEuZmxhZ3MmMTMxMDcyKSYmKGRoPSEwKTtlbHNlIHJldHVybiBiLmxhbmVzPWEubGFuZXMsWmkoYSxiLGUpfXJldHVybiBjaihhLGIsYyxkLGUpfVxuZnVuY3Rpb24gZGooYSxiLGMpe3ZhciBkPWIucGVuZGluZ1Byb3BzLGU9ZC5jaGlsZHJlbixmPW51bGwhPT1hP2EubWVtb2l6ZWRTdGF0ZTpudWxsO2lmKFwiaGlkZGVuXCI9PT1kLm1vZGUpaWYoMD09PShiLm1vZGUmMSkpYi5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6MCxjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczpudWxsfSxHKGVqLGZqKSxmanw9YztlbHNle2lmKDA9PT0oYyYxMDczNzQxODI0KSlyZXR1cm4gYT1udWxsIT09Zj9mLmJhc2VMYW5lc3xjOmMsYi5sYW5lcz1iLmNoaWxkTGFuZXM9MTA3Mzc0MTgyNCxiLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczphLGNhY2hlUG9vbDpudWxsLHRyYW5zaXRpb25zOm51bGx9LGIudXBkYXRlUXVldWU9bnVsbCxHKGVqLGZqKSxmanw9YSxudWxsO2IubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOjAsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH07ZD1udWxsIT09Zj9mLmJhc2VMYW5lczpjO0coZWosZmopO2ZqfD1kfWVsc2UgbnVsbCE9PVxuZj8oZD1mLmJhc2VMYW5lc3xjLGIubWVtb2l6ZWRTdGF0ZT1udWxsKTpkPWMsRyhlaixmaiksZmp8PWQ7WGkoYSxiLGUsYyk7cmV0dXJuIGIuY2hpbGR9ZnVuY3Rpb24gZ2ooYSxiKXt2YXIgYz1iLnJlZjtpZihudWxsPT09YSYmbnVsbCE9PWN8fG51bGwhPT1hJiZhLnJlZiE9PWMpYi5mbGFnc3w9NTEyLGIuZmxhZ3N8PTIwOTcxNTJ9ZnVuY3Rpb24gY2ooYSxiLGMsZCxlKXt2YXIgZj1aZihjKT9YZjpILmN1cnJlbnQ7Zj1ZZihiLGYpO2NoKGIsZSk7Yz1OaChhLGIsYyxkLGYsZSk7ZD1TaCgpO2lmKG51bGwhPT1hJiYhZGgpcmV0dXJuIGIudXBkYXRlUXVldWU9YS51cGRhdGVRdWV1ZSxiLmZsYWdzJj0tMjA1MyxhLmxhbmVzJj1+ZSxaaShhLGIsZSk7SSYmZCYmdmcoYik7Yi5mbGFnc3w9MTtYaShhLGIsYyxlKTtyZXR1cm4gYi5jaGlsZH1cbmZ1bmN0aW9uIGhqKGEsYixjLGQsZSl7aWYoWmYoYykpe3ZhciBmPSEwO2NnKGIpfWVsc2UgZj0hMTtjaChiLGUpO2lmKG51bGw9PT1iLnN0YXRlTm9kZSlpaihhLGIpLEdpKGIsYyxkKSxJaShiLGMsZCxlKSxkPSEwO2Vsc2UgaWYobnVsbD09PWEpe3ZhciBnPWIuc3RhdGVOb2RlLGg9Yi5tZW1vaXplZFByb3BzO2cucHJvcHM9aDt2YXIgaz1nLmNvbnRleHQsbD1jLmNvbnRleHRUeXBlO1wib2JqZWN0XCI9PT10eXBlb2YgbCYmbnVsbCE9PWw/bD1laChsKToobD1aZihjKT9YZjpILmN1cnJlbnQsbD1ZZihiLGwpKTt2YXIgbT1jLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyxxPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBtfHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZTtxfHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc3x8XG4oaCE9PWR8fGshPT1sKSYmSGkoYixnLGQsbCk7amg9ITE7dmFyIHI9Yi5tZW1vaXplZFN0YXRlO2cuc3RhdGU9cjtxaChiLGQsZyxlKTtrPWIubWVtb2l6ZWRTdGF0ZTtoIT09ZHx8ciE9PWt8fFdmLmN1cnJlbnR8fGpoPyhcImZ1bmN0aW9uXCI9PT10eXBlb2YgbSYmKERpKGIsYyxtLGQpLGs9Yi5tZW1vaXplZFN0YXRlKSwoaD1qaHx8RmkoYixjLGgsZCxyLGssbCkpPyhxfHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5jb21wb25lbnRXaWxsTW91bnR8fChcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5jb21wb25lbnRXaWxsTW91bnQmJmcuY29tcG9uZW50V2lsbE1vdW50KCksXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmZy5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCkpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudERpZE1vdW50JiYoYi5mbGFnc3w9NDE5NDMwOCkpOlxuKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudERpZE1vdW50JiYoYi5mbGFnc3w9NDE5NDMwOCksYi5tZW1vaXplZFByb3BzPWQsYi5tZW1vaXplZFN0YXRlPWspLGcucHJvcHM9ZCxnLnN0YXRlPWssZy5jb250ZXh0PWwsZD1oKTooXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuY29tcG9uZW50RGlkTW91bnQmJihiLmZsYWdzfD00MTk0MzA4KSxkPSExKX1lbHNle2c9Yi5zdGF0ZU5vZGU7bGgoYSxiKTtoPWIubWVtb2l6ZWRQcm9wcztsPWIudHlwZT09PWIuZWxlbWVudFR5cGU/aDpDaShiLnR5cGUsaCk7Zy5wcm9wcz1sO3E9Yi5wZW5kaW5nUHJvcHM7cj1nLmNvbnRleHQ7az1jLmNvbnRleHRUeXBlO1wib2JqZWN0XCI9PT10eXBlb2YgayYmbnVsbCE9PWs/az1laChrKTooaz1aZihjKT9YZjpILmN1cnJlbnQsaz1ZZihiLGspKTt2YXIgeT1jLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wczsobT1cImZ1bmN0aW9uXCI9PT10eXBlb2YgeXx8XCJmdW5jdGlvblwiPT09dHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUpfHxcblwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzfHwoaCE9PXF8fHIhPT1rKSYmSGkoYixnLGQsayk7amg9ITE7cj1iLm1lbW9pemVkU3RhdGU7Zy5zdGF0ZT1yO3FoKGIsZCxnLGUpO3ZhciBuPWIubWVtb2l6ZWRTdGF0ZTtoIT09cXx8ciE9PW58fFdmLmN1cnJlbnR8fGpoPyhcImZ1bmN0aW9uXCI9PT10eXBlb2YgeSYmKERpKGIsYyx5LGQpLG49Yi5tZW1vaXplZFN0YXRlKSwobD1qaHx8RmkoYixjLGwsZCxyLG4sayl8fCExKT8obXx8XCJmdW5jdGlvblwiIT09dHlwZW9mIGcuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmNvbXBvbmVudFdpbGxVcGRhdGV8fChcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5jb21wb25lbnRXaWxsVXBkYXRlJiZnLmNvbXBvbmVudFdpbGxVcGRhdGUoZCxuLGspLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiZcbmcuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUoZCxuLGspKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5jb21wb25lbnREaWRVcGRhdGUmJihiLmZsYWdzfD00KSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSYmKGIuZmxhZ3N8PTEwMjQpKTooXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuY29tcG9uZW50RGlkVXBkYXRlfHxoPT09YS5tZW1vaXplZFByb3BzJiZyPT09YS5tZW1vaXplZFN0YXRlfHwoYi5mbGFnc3w9NCksXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fGg9PT1hLm1lbW9pemVkUHJvcHMmJnI9PT1hLm1lbW9pemVkU3RhdGV8fChiLmZsYWdzfD0xMDI0KSxiLm1lbW9pemVkUHJvcHM9ZCxiLm1lbW9pemVkU3RhdGU9biksZy5wcm9wcz1kLGcuc3RhdGU9bixnLmNvbnRleHQ9ayxkPWwpOihcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5jb21wb25lbnREaWRVcGRhdGV8fGg9PT1hLm1lbW9pemVkUHJvcHMmJnI9PT1cbmEubWVtb2l6ZWRTdGF0ZXx8KGIuZmxhZ3N8PTQpLFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxoPT09YS5tZW1vaXplZFByb3BzJiZyPT09YS5tZW1vaXplZFN0YXRlfHwoYi5mbGFnc3w9MTAyNCksZD0hMSl9cmV0dXJuIGpqKGEsYixjLGQsZixlKX1cbmZ1bmN0aW9uIGpqKGEsYixjLGQsZSxmKXtnaihhLGIpO3ZhciBnPTAhPT0oYi5mbGFncyYxMjgpO2lmKCFkJiYhZylyZXR1cm4gZSYmZGcoYixjLCExKSxaaShhLGIsZik7ZD1iLnN0YXRlTm9kZTtXaS5jdXJyZW50PWI7dmFyIGg9ZyYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGMuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yP251bGw6ZC5yZW5kZXIoKTtiLmZsYWdzfD0xO251bGwhPT1hJiZnPyhiLmNoaWxkPVVnKGIsYS5jaGlsZCxudWxsLGYpLGIuY2hpbGQ9VWcoYixudWxsLGgsZikpOlhpKGEsYixoLGYpO2IubWVtb2l6ZWRTdGF0ZT1kLnN0YXRlO2UmJmRnKGIsYywhMCk7cmV0dXJuIGIuY2hpbGR9ZnVuY3Rpb24ga2ooYSl7dmFyIGI9YS5zdGF0ZU5vZGU7Yi5wZW5kaW5nQ29udGV4dD9hZyhhLGIucGVuZGluZ0NvbnRleHQsYi5wZW5kaW5nQ29udGV4dCE9PWIuY29udGV4dCk6Yi5jb250ZXh0JiZhZyhhLGIuY29udGV4dCwhMSk7eWgoYSxiLmNvbnRhaW5lckluZm8pfVxuZnVuY3Rpb24gbGooYSxiLGMsZCxlKXtJZygpO0pnKGUpO2IuZmxhZ3N8PTI1NjtYaShhLGIsYyxkKTtyZXR1cm4gYi5jaGlsZH12YXIgbWo9e2RlaHlkcmF0ZWQ6bnVsbCx0cmVlQ29udGV4dDpudWxsLHJldHJ5TGFuZTowfTtmdW5jdGlvbiBuaihhKXtyZXR1cm57YmFzZUxhbmVzOmEsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH19XG5mdW5jdGlvbiBvaihhLGIsYyl7dmFyIGQ9Yi5wZW5kaW5nUHJvcHMsZT1MLmN1cnJlbnQsZj0hMSxnPTAhPT0oYi5mbGFncyYxMjgpLGg7KGg9Zyl8fChoPW51bGwhPT1hJiZudWxsPT09YS5tZW1vaXplZFN0YXRlPyExOjAhPT0oZSYyKSk7aWYoaClmPSEwLGIuZmxhZ3MmPS0xMjk7ZWxzZSBpZihudWxsPT09YXx8bnVsbCE9PWEubWVtb2l6ZWRTdGF0ZSllfD0xO0coTCxlJjEpO2lmKG51bGw9PT1hKXtFZyhiKTthPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09YSYmKGE9YS5kZWh5ZHJhdGVkLG51bGwhPT1hKSlyZXR1cm4gMD09PShiLm1vZGUmMSk/Yi5sYW5lcz0xOlwiJCFcIj09PWEuZGF0YT9iLmxhbmVzPTg6Yi5sYW5lcz0xMDczNzQxODI0LG51bGw7Zz1kLmNoaWxkcmVuO2E9ZC5mYWxsYmFjaztyZXR1cm4gZj8oZD1iLm1vZGUsZj1iLmNoaWxkLGc9e21vZGU6XCJoaWRkZW5cIixjaGlsZHJlbjpnfSwwPT09KGQmMSkmJm51bGwhPT1mPyhmLmNoaWxkTGFuZXM9MCxmLnBlbmRpbmdQcm9wcz1cbmcpOmY9cGooZyxkLDAsbnVsbCksYT1UZyhhLGQsYyxudWxsKSxmLnJldHVybj1iLGEucmV0dXJuPWIsZi5zaWJsaW5nPWEsYi5jaGlsZD1mLGIuY2hpbGQubWVtb2l6ZWRTdGF0ZT1uaihjKSxiLm1lbW9pemVkU3RhdGU9bWosYSk6cWooYixnKX1lPWEubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09ZSYmKGg9ZS5kZWh5ZHJhdGVkLG51bGwhPT1oKSlyZXR1cm4gcmooYSxiLGcsZCxoLGUsYyk7aWYoZil7Zj1kLmZhbGxiYWNrO2c9Yi5tb2RlO2U9YS5jaGlsZDtoPWUuc2libGluZzt2YXIgaz17bW9kZTpcImhpZGRlblwiLGNoaWxkcmVuOmQuY2hpbGRyZW59OzA9PT0oZyYxKSYmYi5jaGlsZCE9PWU/KGQ9Yi5jaGlsZCxkLmNoaWxkTGFuZXM9MCxkLnBlbmRpbmdQcm9wcz1rLGIuZGVsZXRpb25zPW51bGwpOihkPVBnKGUsayksZC5zdWJ0cmVlRmxhZ3M9ZS5zdWJ0cmVlRmxhZ3MmMTQ2ODAwNjQpO251bGwhPT1oP2Y9UGcoaCxmKTooZj1UZyhmLGcsYyxudWxsKSxmLmZsYWdzfD0yKTtmLnJldHVybj1cbmI7ZC5yZXR1cm49YjtkLnNpYmxpbmc9ZjtiLmNoaWxkPWQ7ZD1mO2Y9Yi5jaGlsZDtnPWEuY2hpbGQubWVtb2l6ZWRTdGF0ZTtnPW51bGw9PT1nP25qKGMpOntiYXNlTGFuZXM6Zy5iYXNlTGFuZXN8YyxjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczpnLnRyYW5zaXRpb25zfTtmLm1lbW9pemVkU3RhdGU9ZztmLmNoaWxkTGFuZXM9YS5jaGlsZExhbmVzJn5jO2IubWVtb2l6ZWRTdGF0ZT1tajtyZXR1cm4gZH1mPWEuY2hpbGQ7YT1mLnNpYmxpbmc7ZD1QZyhmLHttb2RlOlwidmlzaWJsZVwiLGNoaWxkcmVuOmQuY2hpbGRyZW59KTswPT09KGIubW9kZSYxKSYmKGQubGFuZXM9Yyk7ZC5yZXR1cm49YjtkLnNpYmxpbmc9bnVsbDtudWxsIT09YSYmKGM9Yi5kZWxldGlvbnMsbnVsbD09PWM/KGIuZGVsZXRpb25zPVthXSxiLmZsYWdzfD0xNik6Yy5wdXNoKGEpKTtiLmNoaWxkPWQ7Yi5tZW1vaXplZFN0YXRlPW51bGw7cmV0dXJuIGR9XG5mdW5jdGlvbiBxaihhLGIpe2I9cGooe21vZGU6XCJ2aXNpYmxlXCIsY2hpbGRyZW46Yn0sYS5tb2RlLDAsbnVsbCk7Yi5yZXR1cm49YTtyZXR1cm4gYS5jaGlsZD1ifWZ1bmN0aW9uIHNqKGEsYixjLGQpe251bGwhPT1kJiZKZyhkKTtVZyhiLGEuY2hpbGQsbnVsbCxjKTthPXFqKGIsYi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4pO2EuZmxhZ3N8PTI7Yi5tZW1vaXplZFN0YXRlPW51bGw7cmV0dXJuIGF9XG5mdW5jdGlvbiByaihhLGIsYyxkLGUsZixnKXtpZihjKXtpZihiLmZsYWdzJjI1NilyZXR1cm4gYi5mbGFncyY9LTI1NyxkPUtpKEVycm9yKHAoNDIyKSkpLHNqKGEsYixnLGQpO2lmKG51bGwhPT1iLm1lbW9pemVkU3RhdGUpcmV0dXJuIGIuY2hpbGQ9YS5jaGlsZCxiLmZsYWdzfD0xMjgsbnVsbDtmPWQuZmFsbGJhY2s7ZT1iLm1vZGU7ZD1waih7bW9kZTpcInZpc2libGVcIixjaGlsZHJlbjpkLmNoaWxkcmVufSxlLDAsbnVsbCk7Zj1UZyhmLGUsZyxudWxsKTtmLmZsYWdzfD0yO2QucmV0dXJuPWI7Zi5yZXR1cm49YjtkLnNpYmxpbmc9ZjtiLmNoaWxkPWQ7MCE9PShiLm1vZGUmMSkmJlVnKGIsYS5jaGlsZCxudWxsLGcpO2IuY2hpbGQubWVtb2l6ZWRTdGF0ZT1uaihnKTtiLm1lbW9pemVkU3RhdGU9bWo7cmV0dXJuIGZ9aWYoMD09PShiLm1vZGUmMSkpcmV0dXJuIHNqKGEsYixnLG51bGwpO2lmKFwiJCFcIj09PWUuZGF0YSl7ZD1lLm5leHRTaWJsaW5nJiZlLm5leHRTaWJsaW5nLmRhdGFzZXQ7XG5pZihkKXZhciBoPWQuZGdzdDtkPWg7Zj1FcnJvcihwKDQxOSkpO2Q9S2koZixkLHZvaWQgMCk7cmV0dXJuIHNqKGEsYixnLGQpfWg9MCE9PShnJmEuY2hpbGRMYW5lcyk7aWYoZGh8fGgpe2Q9UTtpZihudWxsIT09ZCl7c3dpdGNoKGcmLWcpe2Nhc2UgNDplPTI7YnJlYWs7Y2FzZSAxNjplPTg7YnJlYWs7Y2FzZSA2NDpjYXNlIDEyODpjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpjYXNlIDQxOTQzMDQ6Y2FzZSA4Mzg4NjA4OmNhc2UgMTY3NzcyMTY6Y2FzZSAzMzU1NDQzMjpjYXNlIDY3MTA4ODY0OmU9MzI7YnJlYWs7Y2FzZSA1MzY4NzA5MTI6ZT0yNjg0MzU0NTY7YnJlYWs7ZGVmYXVsdDplPTB9ZT0wIT09KGUmKGQuc3VzcGVuZGVkTGFuZXN8ZykpPzA6ZTtcbjAhPT1lJiZlIT09Zi5yZXRyeUxhbmUmJihmLnJldHJ5TGFuZT1lLGloKGEsZSksZ2koZCxhLGUsLTEpKX10aigpO2Q9S2koRXJyb3IocCg0MjEpKSk7cmV0dXJuIHNqKGEsYixnLGQpfWlmKFwiJD9cIj09PWUuZGF0YSlyZXR1cm4gYi5mbGFnc3w9MTI4LGIuY2hpbGQ9YS5jaGlsZCxiPXVqLmJpbmQobnVsbCxhKSxlLl9yZWFjdFJldHJ5PWIsbnVsbDthPWYudHJlZUNvbnRleHQ7eWc9TGYoZS5uZXh0U2libGluZyk7eGc9YjtJPSEwO3pnPW51bGw7bnVsbCE9PWEmJihvZ1twZysrXT1yZyxvZ1twZysrXT1zZyxvZ1twZysrXT1xZyxyZz1hLmlkLHNnPWEub3ZlcmZsb3cscWc9Yik7Yj1xaihiLGQuY2hpbGRyZW4pO2IuZmxhZ3N8PTQwOTY7cmV0dXJuIGJ9ZnVuY3Rpb24gdmooYSxiLGMpe2EubGFuZXN8PWI7dmFyIGQ9YS5hbHRlcm5hdGU7bnVsbCE9PWQmJihkLmxhbmVzfD1iKTtiaChhLnJldHVybixiLGMpfVxuZnVuY3Rpb24gd2ooYSxiLGMsZCxlKXt2YXIgZj1hLm1lbW9pemVkU3RhdGU7bnVsbD09PWY/YS5tZW1vaXplZFN0YXRlPXtpc0JhY2t3YXJkczpiLHJlbmRlcmluZzpudWxsLHJlbmRlcmluZ1N0YXJ0VGltZTowLGxhc3Q6ZCx0YWlsOmMsdGFpbE1vZGU6ZX06KGYuaXNCYWNrd2FyZHM9YixmLnJlbmRlcmluZz1udWxsLGYucmVuZGVyaW5nU3RhcnRUaW1lPTAsZi5sYXN0PWQsZi50YWlsPWMsZi50YWlsTW9kZT1lKX1cbmZ1bmN0aW9uIHhqKGEsYixjKXt2YXIgZD1iLnBlbmRpbmdQcm9wcyxlPWQucmV2ZWFsT3JkZXIsZj1kLnRhaWw7WGkoYSxiLGQuY2hpbGRyZW4sYyk7ZD1MLmN1cnJlbnQ7aWYoMCE9PShkJjIpKWQ9ZCYxfDIsYi5mbGFnc3w9MTI4O2Vsc2V7aWYobnVsbCE9PWEmJjAhPT0oYS5mbGFncyYxMjgpKWE6Zm9yKGE9Yi5jaGlsZDtudWxsIT09YTspe2lmKDEzPT09YS50YWcpbnVsbCE9PWEubWVtb2l6ZWRTdGF0ZSYmdmooYSxjLGIpO2Vsc2UgaWYoMTk9PT1hLnRhZyl2aihhLGMsYik7ZWxzZSBpZihudWxsIT09YS5jaGlsZCl7YS5jaGlsZC5yZXR1cm49YTthPWEuY2hpbGQ7Y29udGludWV9aWYoYT09PWIpYnJlYWsgYTtmb3IoO251bGw9PT1hLnNpYmxpbmc7KXtpZihudWxsPT09YS5yZXR1cm58fGEucmV0dXJuPT09YilicmVhayBhO2E9YS5yZXR1cm59YS5zaWJsaW5nLnJldHVybj1hLnJldHVybjthPWEuc2libGluZ31kJj0xfUcoTCxkKTtpZigwPT09KGIubW9kZSYxKSliLm1lbW9pemVkU3RhdGU9XG5udWxsO2Vsc2Ugc3dpdGNoKGUpe2Nhc2UgXCJmb3J3YXJkc1wiOmM9Yi5jaGlsZDtmb3IoZT1udWxsO251bGwhPT1jOylhPWMuYWx0ZXJuYXRlLG51bGwhPT1hJiZudWxsPT09Q2goYSkmJihlPWMpLGM9Yy5zaWJsaW5nO2M9ZTtudWxsPT09Yz8oZT1iLmNoaWxkLGIuY2hpbGQ9bnVsbCk6KGU9Yy5zaWJsaW5nLGMuc2libGluZz1udWxsKTt3aihiLCExLGUsYyxmKTticmVhaztjYXNlIFwiYmFja3dhcmRzXCI6Yz1udWxsO2U9Yi5jaGlsZDtmb3IoYi5jaGlsZD1udWxsO251bGwhPT1lOyl7YT1lLmFsdGVybmF0ZTtpZihudWxsIT09YSYmbnVsbD09PUNoKGEpKXtiLmNoaWxkPWU7YnJlYWt9YT1lLnNpYmxpbmc7ZS5zaWJsaW5nPWM7Yz1lO2U9YX13aihiLCEwLGMsbnVsbCxmKTticmVhaztjYXNlIFwidG9nZXRoZXJcIjp3aihiLCExLG51bGwsbnVsbCx2b2lkIDApO2JyZWFrO2RlZmF1bHQ6Yi5tZW1vaXplZFN0YXRlPW51bGx9cmV0dXJuIGIuY2hpbGR9XG5mdW5jdGlvbiBpaihhLGIpezA9PT0oYi5tb2RlJjEpJiZudWxsIT09YSYmKGEuYWx0ZXJuYXRlPW51bGwsYi5hbHRlcm5hdGU9bnVsbCxiLmZsYWdzfD0yKX1mdW5jdGlvbiBaaShhLGIsYyl7bnVsbCE9PWEmJihiLmRlcGVuZGVuY2llcz1hLmRlcGVuZGVuY2llcyk7cmh8PWIubGFuZXM7aWYoMD09PShjJmIuY2hpbGRMYW5lcykpcmV0dXJuIG51bGw7aWYobnVsbCE9PWEmJmIuY2hpbGQhPT1hLmNoaWxkKXRocm93IEVycm9yKHAoMTUzKSk7aWYobnVsbCE9PWIuY2hpbGQpe2E9Yi5jaGlsZDtjPVBnKGEsYS5wZW5kaW5nUHJvcHMpO2IuY2hpbGQ9Yztmb3IoYy5yZXR1cm49YjtudWxsIT09YS5zaWJsaW5nOylhPWEuc2libGluZyxjPWMuc2libGluZz1QZyhhLGEucGVuZGluZ1Byb3BzKSxjLnJldHVybj1iO2Muc2libGluZz1udWxsfXJldHVybiBiLmNoaWxkfVxuZnVuY3Rpb24geWooYSxiLGMpe3N3aXRjaChiLnRhZyl7Y2FzZSAzOmtqKGIpO0lnKCk7YnJlYWs7Y2FzZSA1OkFoKGIpO2JyZWFrO2Nhc2UgMTpaZihiLnR5cGUpJiZjZyhiKTticmVhaztjYXNlIDQ6eWgoYixiLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTticmVhaztjYXNlIDEwOnZhciBkPWIudHlwZS5fY29udGV4dCxlPWIubWVtb2l6ZWRQcm9wcy52YWx1ZTtHKFdnLGQuX2N1cnJlbnRWYWx1ZSk7ZC5fY3VycmVudFZhbHVlPWU7YnJlYWs7Y2FzZSAxMzpkPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09ZCl7aWYobnVsbCE9PWQuZGVoeWRyYXRlZClyZXR1cm4gRyhMLEwuY3VycmVudCYxKSxiLmZsYWdzfD0xMjgsbnVsbDtpZigwIT09KGMmYi5jaGlsZC5jaGlsZExhbmVzKSlyZXR1cm4gb2ooYSxiLGMpO0coTCxMLmN1cnJlbnQmMSk7YT1aaShhLGIsYyk7cmV0dXJuIG51bGwhPT1hP2Euc2libGluZzpudWxsfUcoTCxMLmN1cnJlbnQmMSk7YnJlYWs7Y2FzZSAxOTpkPTAhPT0oYyZcbmIuY2hpbGRMYW5lcyk7aWYoMCE9PShhLmZsYWdzJjEyOCkpe2lmKGQpcmV0dXJuIHhqKGEsYixjKTtiLmZsYWdzfD0xMjh9ZT1iLm1lbW9pemVkU3RhdGU7bnVsbCE9PWUmJihlLnJlbmRlcmluZz1udWxsLGUudGFpbD1udWxsLGUubGFzdEVmZmVjdD1udWxsKTtHKEwsTC5jdXJyZW50KTtpZihkKWJyZWFrO2Vsc2UgcmV0dXJuIG51bGw7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBiLmxhbmVzPTAsZGooYSxiLGMpfXJldHVybiBaaShhLGIsYyl9dmFyIHpqLEFqLEJqLENqO1xuemo9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9Yi5jaGlsZDtudWxsIT09Yzspe2lmKDU9PT1jLnRhZ3x8Nj09PWMudGFnKWEuYXBwZW5kQ2hpbGQoYy5zdGF0ZU5vZGUpO2Vsc2UgaWYoNCE9PWMudGFnJiZudWxsIT09Yy5jaGlsZCl7Yy5jaGlsZC5yZXR1cm49YztjPWMuY2hpbGQ7Y29udGludWV9aWYoYz09PWIpYnJlYWs7Zm9yKDtudWxsPT09Yy5zaWJsaW5nOyl7aWYobnVsbD09PWMucmV0dXJufHxjLnJldHVybj09PWIpcmV0dXJuO2M9Yy5yZXR1cm59Yy5zaWJsaW5nLnJldHVybj1jLnJldHVybjtjPWMuc2libGluZ319O0FqPWZ1bmN0aW9uKCl7fTtcbkJqPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEubWVtb2l6ZWRQcm9wcztpZihlIT09ZCl7YT1iLnN0YXRlTm9kZTt4aCh1aC5jdXJyZW50KTt2YXIgZj1udWxsO3N3aXRjaChjKXtjYXNlIFwiaW5wdXRcIjplPVlhKGEsZSk7ZD1ZYShhLGQpO2Y9W107YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmU9QSh7fSxlLHt2YWx1ZTp2b2lkIDB9KTtkPUEoe30sZCx7dmFsdWU6dm9pZCAwfSk7Zj1bXTticmVhaztjYXNlIFwidGV4dGFyZWFcIjplPWdiKGEsZSk7ZD1nYihhLGQpO2Y9W107YnJlYWs7ZGVmYXVsdDpcImZ1bmN0aW9uXCIhPT10eXBlb2YgZS5vbkNsaWNrJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgZC5vbkNsaWNrJiYoYS5vbmNsaWNrPUJmKX11YihjLGQpO3ZhciBnO2M9bnVsbDtmb3IobCBpbiBlKWlmKCFkLmhhc093blByb3BlcnR5KGwpJiZlLmhhc093blByb3BlcnR5KGwpJiZudWxsIT1lW2xdKWlmKFwic3R5bGVcIj09PWwpe3ZhciBoPWVbbF07Zm9yKGcgaW4gaCloLmhhc093blByb3BlcnR5KGcpJiZcbihjfHwoYz17fSksY1tnXT1cIlwiKX1lbHNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiIT09bCYmXCJjaGlsZHJlblwiIT09bCYmXCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmdcIiE9PWwmJlwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nXCIhPT1sJiZcImF1dG9Gb2N1c1wiIT09bCYmKGVhLmhhc093blByb3BlcnR5KGwpP2Z8fChmPVtdKTooZj1mfHxbXSkucHVzaChsLG51bGwpKTtmb3IobCBpbiBkKXt2YXIgaz1kW2xdO2g9bnVsbCE9ZT9lW2xdOnZvaWQgMDtpZihkLmhhc093blByb3BlcnR5KGwpJiZrIT09aCYmKG51bGwhPWt8fG51bGwhPWgpKWlmKFwic3R5bGVcIj09PWwpaWYoaCl7Zm9yKGcgaW4gaCkhaC5oYXNPd25Qcm9wZXJ0eShnKXx8ayYmay5oYXNPd25Qcm9wZXJ0eShnKXx8KGN8fChjPXt9KSxjW2ddPVwiXCIpO2ZvcihnIGluIGspay5oYXNPd25Qcm9wZXJ0eShnKSYmaFtnXSE9PWtbZ10mJihjfHwoYz17fSksY1tnXT1rW2ddKX1lbHNlIGN8fChmfHwoZj1bXSksZi5wdXNoKGwsXG5jKSksYz1rO2Vsc2VcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI9PT1sPyhrPWs/ay5fX2h0bWw6dm9pZCAwLGg9aD9oLl9faHRtbDp2b2lkIDAsbnVsbCE9ayYmaCE9PWsmJihmPWZ8fFtdKS5wdXNoKGwsaykpOlwiY2hpbGRyZW5cIj09PWw/XCJzdHJpbmdcIiE9PXR5cGVvZiBrJiZcIm51bWJlclwiIT09dHlwZW9mIGt8fChmPWZ8fFtdKS5wdXNoKGwsXCJcIitrKTpcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiIT09bCYmXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIiE9PWwmJihlYS5oYXNPd25Qcm9wZXJ0eShsKT8obnVsbCE9ayYmXCJvblNjcm9sbFwiPT09bCYmRChcInNjcm9sbFwiLGEpLGZ8fGg9PT1rfHwoZj1bXSkpOihmPWZ8fFtdKS5wdXNoKGwsaykpfWMmJihmPWZ8fFtdKS5wdXNoKFwic3R5bGVcIixjKTt2YXIgbD1mO2lmKGIudXBkYXRlUXVldWU9bCliLmZsYWdzfD00fX07Q2o9ZnVuY3Rpb24oYSxiLGMsZCl7YyE9PWQmJihiLmZsYWdzfD00KX07XG5mdW5jdGlvbiBEaihhLGIpe2lmKCFJKXN3aXRjaChhLnRhaWxNb2RlKXtjYXNlIFwiaGlkZGVuXCI6Yj1hLnRhaWw7Zm9yKHZhciBjPW51bGw7bnVsbCE9PWI7KW51bGwhPT1iLmFsdGVybmF0ZSYmKGM9YiksYj1iLnNpYmxpbmc7bnVsbD09PWM/YS50YWlsPW51bGw6Yy5zaWJsaW5nPW51bGw7YnJlYWs7Y2FzZSBcImNvbGxhcHNlZFwiOmM9YS50YWlsO2Zvcih2YXIgZD1udWxsO251bGwhPT1jOyludWxsIT09Yy5hbHRlcm5hdGUmJihkPWMpLGM9Yy5zaWJsaW5nO251bGw9PT1kP2J8fG51bGw9PT1hLnRhaWw/YS50YWlsPW51bGw6YS50YWlsLnNpYmxpbmc9bnVsbDpkLnNpYmxpbmc9bnVsbH19XG5mdW5jdGlvbiBTKGEpe3ZhciBiPW51bGwhPT1hLmFsdGVybmF0ZSYmYS5hbHRlcm5hdGUuY2hpbGQ9PT1hLmNoaWxkLGM9MCxkPTA7aWYoYilmb3IodmFyIGU9YS5jaGlsZDtudWxsIT09ZTspY3w9ZS5sYW5lc3xlLmNoaWxkTGFuZXMsZHw9ZS5zdWJ0cmVlRmxhZ3MmMTQ2ODAwNjQsZHw9ZS5mbGFncyYxNDY4MDA2NCxlLnJldHVybj1hLGU9ZS5zaWJsaW5nO2Vsc2UgZm9yKGU9YS5jaGlsZDtudWxsIT09ZTspY3w9ZS5sYW5lc3xlLmNoaWxkTGFuZXMsZHw9ZS5zdWJ0cmVlRmxhZ3MsZHw9ZS5mbGFncyxlLnJldHVybj1hLGU9ZS5zaWJsaW5nO2Euc3VidHJlZUZsYWdzfD1kO2EuY2hpbGRMYW5lcz1jO3JldHVybiBifVxuZnVuY3Rpb24gRWooYSxiLGMpe3ZhciBkPWIucGVuZGluZ1Byb3BzO3dnKGIpO3N3aXRjaChiLnRhZyl7Y2FzZSAyOmNhc2UgMTY6Y2FzZSAxNTpjYXNlIDA6Y2FzZSAxMTpjYXNlIDc6Y2FzZSA4OmNhc2UgMTI6Y2FzZSA5OmNhc2UgMTQ6cmV0dXJuIFMoYiksbnVsbDtjYXNlIDE6cmV0dXJuIFpmKGIudHlwZSkmJiRmKCksUyhiKSxudWxsO2Nhc2UgMzpkPWIuc3RhdGVOb2RlO3poKCk7RShXZik7RShIKTtFaCgpO2QucGVuZGluZ0NvbnRleHQmJihkLmNvbnRleHQ9ZC5wZW5kaW5nQ29udGV4dCxkLnBlbmRpbmdDb250ZXh0PW51bGwpO2lmKG51bGw9PT1hfHxudWxsPT09YS5jaGlsZClHZyhiKT9iLmZsYWdzfD00Om51bGw9PT1hfHxhLm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkJiYwPT09KGIuZmxhZ3MmMjU2KXx8KGIuZmxhZ3N8PTEwMjQsbnVsbCE9PXpnJiYoRmooemcpLHpnPW51bGwpKTtBaihhLGIpO1MoYik7cmV0dXJuIG51bGw7Y2FzZSA1OkJoKGIpO3ZhciBlPXhoKHdoLmN1cnJlbnQpO1xuYz1iLnR5cGU7aWYobnVsbCE9PWEmJm51bGwhPWIuc3RhdGVOb2RlKUJqKGEsYixjLGQsZSksYS5yZWYhPT1iLnJlZiYmKGIuZmxhZ3N8PTUxMixiLmZsYWdzfD0yMDk3MTUyKTtlbHNle2lmKCFkKXtpZihudWxsPT09Yi5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IocCgxNjYpKTtTKGIpO3JldHVybiBudWxsfWE9eGgodWguY3VycmVudCk7aWYoR2coYikpe2Q9Yi5zdGF0ZU5vZGU7Yz1iLnR5cGU7dmFyIGY9Yi5tZW1vaXplZFByb3BzO2RbT2ZdPWI7ZFtQZl09ZjthPTAhPT0oYi5tb2RlJjEpO3N3aXRjaChjKXtjYXNlIFwiZGlhbG9nXCI6RChcImNhbmNlbFwiLGQpO0QoXCJjbG9zZVwiLGQpO2JyZWFrO2Nhc2UgXCJpZnJhbWVcIjpjYXNlIFwib2JqZWN0XCI6Y2FzZSBcImVtYmVkXCI6RChcImxvYWRcIixkKTticmVhaztjYXNlIFwidmlkZW9cIjpjYXNlIFwiYXVkaW9cIjpmb3IoZT0wO2U8bGYubGVuZ3RoO2UrKylEKGxmW2VdLGQpO2JyZWFrO2Nhc2UgXCJzb3VyY2VcIjpEKFwiZXJyb3JcIixkKTticmVhaztjYXNlIFwiaW1nXCI6Y2FzZSBcImltYWdlXCI6Y2FzZSBcImxpbmtcIjpEKFwiZXJyb3JcIixcbmQpO0QoXCJsb2FkXCIsZCk7YnJlYWs7Y2FzZSBcImRldGFpbHNcIjpEKFwidG9nZ2xlXCIsZCk7YnJlYWs7Y2FzZSBcImlucHV0XCI6WmEoZCxmKTtEKFwiaW52YWxpZFwiLGQpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjpkLl93cmFwcGVyU3RhdGU9e3dhc011bHRpcGxlOiEhZi5tdWx0aXBsZX07RChcImludmFsaWRcIixkKTticmVhaztjYXNlIFwidGV4dGFyZWFcIjpoYihkLGYpLEQoXCJpbnZhbGlkXCIsZCl9dWIoYyxmKTtlPW51bGw7Zm9yKHZhciBnIGluIGYpaWYoZi5oYXNPd25Qcm9wZXJ0eShnKSl7dmFyIGg9ZltnXTtcImNoaWxkcmVuXCI9PT1nP1wic3RyaW5nXCI9PT10eXBlb2YgaD9kLnRleHRDb250ZW50IT09aCYmKCEwIT09Zi5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcmJkFmKGQudGV4dENvbnRlbnQsaCxhKSxlPVtcImNoaWxkcmVuXCIsaF0pOlwibnVtYmVyXCI9PT10eXBlb2YgaCYmZC50ZXh0Q29udGVudCE9PVwiXCIraCYmKCEwIT09Zi5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcmJkFmKGQudGV4dENvbnRlbnQsXG5oLGEpLGU9W1wiY2hpbGRyZW5cIixcIlwiK2hdKTplYS5oYXNPd25Qcm9wZXJ0eShnKSYmbnVsbCE9aCYmXCJvblNjcm9sbFwiPT09ZyYmRChcInNjcm9sbFwiLGQpfXN3aXRjaChjKXtjYXNlIFwiaW5wdXRcIjpWYShkKTtkYihkLGYsITApO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOlZhKGQpO2piKGQpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjpjYXNlIFwib3B0aW9uXCI6YnJlYWs7ZGVmYXVsdDpcImZ1bmN0aW9uXCI9PT10eXBlb2YgZi5vbkNsaWNrJiYoZC5vbmNsaWNrPUJmKX1kPWU7Yi51cGRhdGVRdWV1ZT1kO251bGwhPT1kJiYoYi5mbGFnc3w9NCl9ZWxzZXtnPTk9PT1lLm5vZGVUeXBlP2U6ZS5vd25lckRvY3VtZW50O1wiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiPT09YSYmKGE9a2IoYykpO1wiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiPT09YT9cInNjcmlwdFwiPT09Yz8oYT1nLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksYS5pbm5lckhUTUw9XCI8c2NyaXB0PlxceDNjL3NjcmlwdD5cIixhPWEucmVtb3ZlQ2hpbGQoYS5maXJzdENoaWxkKSk6XG5cInN0cmluZ1wiPT09dHlwZW9mIGQuaXM/YT1nLmNyZWF0ZUVsZW1lbnQoYyx7aXM6ZC5pc30pOihhPWcuY3JlYXRlRWxlbWVudChjKSxcInNlbGVjdFwiPT09YyYmKGc9YSxkLm11bHRpcGxlP2cubXVsdGlwbGU9ITA6ZC5zaXplJiYoZy5zaXplPWQuc2l6ZSkpKTphPWcuY3JlYXRlRWxlbWVudE5TKGEsYyk7YVtPZl09YjthW1BmXT1kO3pqKGEsYiwhMSwhMSk7Yi5zdGF0ZU5vZGU9YTthOntnPXZiKGMsZCk7c3dpdGNoKGMpe2Nhc2UgXCJkaWFsb2dcIjpEKFwiY2FuY2VsXCIsYSk7RChcImNsb3NlXCIsYSk7ZT1kO2JyZWFrO2Nhc2UgXCJpZnJhbWVcIjpjYXNlIFwib2JqZWN0XCI6Y2FzZSBcImVtYmVkXCI6RChcImxvYWRcIixhKTtlPWQ7YnJlYWs7Y2FzZSBcInZpZGVvXCI6Y2FzZSBcImF1ZGlvXCI6Zm9yKGU9MDtlPGxmLmxlbmd0aDtlKyspRChsZltlXSxhKTtlPWQ7YnJlYWs7Y2FzZSBcInNvdXJjZVwiOkQoXCJlcnJvclwiLGEpO2U9ZDticmVhaztjYXNlIFwiaW1nXCI6Y2FzZSBcImltYWdlXCI6Y2FzZSBcImxpbmtcIjpEKFwiZXJyb3JcIixcbmEpO0QoXCJsb2FkXCIsYSk7ZT1kO2JyZWFrO2Nhc2UgXCJkZXRhaWxzXCI6RChcInRvZ2dsZVwiLGEpO2U9ZDticmVhaztjYXNlIFwiaW5wdXRcIjpaYShhLGQpO2U9WWEoYSxkKTtEKFwiaW52YWxpZFwiLGEpO2JyZWFrO2Nhc2UgXCJvcHRpb25cIjplPWQ7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmEuX3dyYXBwZXJTdGF0ZT17d2FzTXVsdGlwbGU6ISFkLm11bHRpcGxlfTtlPUEoe30sZCx7dmFsdWU6dm9pZCAwfSk7RChcImludmFsaWRcIixhKTticmVhaztjYXNlIFwidGV4dGFyZWFcIjpoYihhLGQpO2U9Z2IoYSxkKTtEKFwiaW52YWxpZFwiLGEpO2JyZWFrO2RlZmF1bHQ6ZT1kfXViKGMsZSk7aD1lO2ZvcihmIGluIGgpaWYoaC5oYXNPd25Qcm9wZXJ0eShmKSl7dmFyIGs9aFtmXTtcInN0eWxlXCI9PT1mP3NiKGEsayk6XCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiPT09Zj8oaz1rP2suX19odG1sOnZvaWQgMCxudWxsIT1rJiZuYihhLGspKTpcImNoaWxkcmVuXCI9PT1mP1wic3RyaW5nXCI9PT10eXBlb2Ygaz8oXCJ0ZXh0YXJlYVwiIT09XG5jfHxcIlwiIT09aykmJm9iKGEsayk6XCJudW1iZXJcIj09PXR5cGVvZiBrJiZvYihhLFwiXCIrayk6XCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmdcIiE9PWYmJlwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nXCIhPT1mJiZcImF1dG9Gb2N1c1wiIT09ZiYmKGVhLmhhc093blByb3BlcnR5KGYpP251bGwhPWsmJlwib25TY3JvbGxcIj09PWYmJkQoXCJzY3JvbGxcIixhKTpudWxsIT1rJiZ0YShhLGYsayxnKSl9c3dpdGNoKGMpe2Nhc2UgXCJpbnB1dFwiOlZhKGEpO2RiKGEsZCwhMSk7YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6VmEoYSk7amIoYSk7YnJlYWs7Y2FzZSBcIm9wdGlvblwiOm51bGwhPWQudmFsdWUmJmEuc2V0QXR0cmlidXRlKFwidmFsdWVcIixcIlwiK1NhKGQudmFsdWUpKTticmVhaztjYXNlIFwic2VsZWN0XCI6YS5tdWx0aXBsZT0hIWQubXVsdGlwbGU7Zj1kLnZhbHVlO251bGwhPWY/ZmIoYSwhIWQubXVsdGlwbGUsZiwhMSk6bnVsbCE9ZC5kZWZhdWx0VmFsdWUmJmZiKGEsISFkLm11bHRpcGxlLGQuZGVmYXVsdFZhbHVlLFxuITApO2JyZWFrO2RlZmF1bHQ6XCJmdW5jdGlvblwiPT09dHlwZW9mIGUub25DbGljayYmKGEub25jbGljaz1CZil9c3dpdGNoKGMpe2Nhc2UgXCJidXR0b25cIjpjYXNlIFwiaW5wdXRcIjpjYXNlIFwic2VsZWN0XCI6Y2FzZSBcInRleHRhcmVhXCI6ZD0hIWQuYXV0b0ZvY3VzO2JyZWFrIGE7Y2FzZSBcImltZ1wiOmQ9ITA7YnJlYWsgYTtkZWZhdWx0OmQ9ITF9fWQmJihiLmZsYWdzfD00KX1udWxsIT09Yi5yZWYmJihiLmZsYWdzfD01MTIsYi5mbGFnc3w9MjA5NzE1Mil9UyhiKTtyZXR1cm4gbnVsbDtjYXNlIDY6aWYoYSYmbnVsbCE9Yi5zdGF0ZU5vZGUpQ2ooYSxiLGEubWVtb2l6ZWRQcm9wcyxkKTtlbHNle2lmKFwic3RyaW5nXCIhPT10eXBlb2YgZCYmbnVsbD09PWIuc3RhdGVOb2RlKXRocm93IEVycm9yKHAoMTY2KSk7Yz14aCh3aC5jdXJyZW50KTt4aCh1aC5jdXJyZW50KTtpZihHZyhiKSl7ZD1iLnN0YXRlTm9kZTtjPWIubWVtb2l6ZWRQcm9wcztkW09mXT1iO2lmKGY9ZC5ub2RlVmFsdWUhPT1jKWlmKGE9XG54ZyxudWxsIT09YSlzd2l0Y2goYS50YWcpe2Nhc2UgMzpBZihkLm5vZGVWYWx1ZSxjLDAhPT0oYS5tb2RlJjEpKTticmVhaztjYXNlIDU6ITAhPT1hLm1lbW9pemVkUHJvcHMuc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nJiZBZihkLm5vZGVWYWx1ZSxjLDAhPT0oYS5tb2RlJjEpKX1mJiYoYi5mbGFnc3w9NCl9ZWxzZSBkPSg5PT09Yy5ub2RlVHlwZT9jOmMub3duZXJEb2N1bWVudCkuY3JlYXRlVGV4dE5vZGUoZCksZFtPZl09YixiLnN0YXRlTm9kZT1kfVMoYik7cmV0dXJuIG51bGw7Y2FzZSAxMzpFKEwpO2Q9Yi5tZW1vaXplZFN0YXRlO2lmKG51bGw9PT1hfHxudWxsIT09YS5tZW1vaXplZFN0YXRlJiZudWxsIT09YS5tZW1vaXplZFN0YXRlLmRlaHlkcmF0ZWQpe2lmKEkmJm51bGwhPT15ZyYmMCE9PShiLm1vZGUmMSkmJjA9PT0oYi5mbGFncyYxMjgpKUhnKCksSWcoKSxiLmZsYWdzfD05ODU2MCxmPSExO2Vsc2UgaWYoZj1HZyhiKSxudWxsIT09ZCYmbnVsbCE9PWQuZGVoeWRyYXRlZCl7aWYobnVsbD09PVxuYSl7aWYoIWYpdGhyb3cgRXJyb3IocCgzMTgpKTtmPWIubWVtb2l6ZWRTdGF0ZTtmPW51bGwhPT1mP2YuZGVoeWRyYXRlZDpudWxsO2lmKCFmKXRocm93IEVycm9yKHAoMzE3KSk7ZltPZl09Yn1lbHNlIElnKCksMD09PShiLmZsYWdzJjEyOCkmJihiLm1lbW9pemVkU3RhdGU9bnVsbCksYi5mbGFnc3w9NDtTKGIpO2Y9ITF9ZWxzZSBudWxsIT09emcmJihGaih6Zyksemc9bnVsbCksZj0hMDtpZighZilyZXR1cm4gYi5mbGFncyY2NTUzNj9iOm51bGx9aWYoMCE9PShiLmZsYWdzJjEyOCkpcmV0dXJuIGIubGFuZXM9YyxiO2Q9bnVsbCE9PWQ7ZCE9PShudWxsIT09YSYmbnVsbCE9PWEubWVtb2l6ZWRTdGF0ZSkmJmQmJihiLmNoaWxkLmZsYWdzfD04MTkyLDAhPT0oYi5tb2RlJjEpJiYobnVsbD09PWF8fDAhPT0oTC5jdXJyZW50JjEpPzA9PT1UJiYoVD0zKTp0aigpKSk7bnVsbCE9PWIudXBkYXRlUXVldWUmJihiLmZsYWdzfD00KTtTKGIpO3JldHVybiBudWxsO2Nhc2UgNDpyZXR1cm4gemgoKSxcbkFqKGEsYiksbnVsbD09PWEmJnNmKGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLFMoYiksbnVsbDtjYXNlIDEwOnJldHVybiBhaChiLnR5cGUuX2NvbnRleHQpLFMoYiksbnVsbDtjYXNlIDE3OnJldHVybiBaZihiLnR5cGUpJiYkZigpLFMoYiksbnVsbDtjYXNlIDE5OkUoTCk7Zj1iLm1lbW9pemVkU3RhdGU7aWYobnVsbD09PWYpcmV0dXJuIFMoYiksbnVsbDtkPTAhPT0oYi5mbGFncyYxMjgpO2c9Zi5yZW5kZXJpbmc7aWYobnVsbD09PWcpaWYoZClEaihmLCExKTtlbHNle2lmKDAhPT1UfHxudWxsIT09YSYmMCE9PShhLmZsYWdzJjEyOCkpZm9yKGE9Yi5jaGlsZDtudWxsIT09YTspe2c9Q2goYSk7aWYobnVsbCE9PWcpe2IuZmxhZ3N8PTEyODtEaihmLCExKTtkPWcudXBkYXRlUXVldWU7bnVsbCE9PWQmJihiLnVwZGF0ZVF1ZXVlPWQsYi5mbGFnc3w9NCk7Yi5zdWJ0cmVlRmxhZ3M9MDtkPWM7Zm9yKGM9Yi5jaGlsZDtudWxsIT09YzspZj1jLGE9ZCxmLmZsYWdzJj0xNDY4MDA2Nixcbmc9Zi5hbHRlcm5hdGUsbnVsbD09PWc/KGYuY2hpbGRMYW5lcz0wLGYubGFuZXM9YSxmLmNoaWxkPW51bGwsZi5zdWJ0cmVlRmxhZ3M9MCxmLm1lbW9pemVkUHJvcHM9bnVsbCxmLm1lbW9pemVkU3RhdGU9bnVsbCxmLnVwZGF0ZVF1ZXVlPW51bGwsZi5kZXBlbmRlbmNpZXM9bnVsbCxmLnN0YXRlTm9kZT1udWxsKTooZi5jaGlsZExhbmVzPWcuY2hpbGRMYW5lcyxmLmxhbmVzPWcubGFuZXMsZi5jaGlsZD1nLmNoaWxkLGYuc3VidHJlZUZsYWdzPTAsZi5kZWxldGlvbnM9bnVsbCxmLm1lbW9pemVkUHJvcHM9Zy5tZW1vaXplZFByb3BzLGYubWVtb2l6ZWRTdGF0ZT1nLm1lbW9pemVkU3RhdGUsZi51cGRhdGVRdWV1ZT1nLnVwZGF0ZVF1ZXVlLGYudHlwZT1nLnR5cGUsYT1nLmRlcGVuZGVuY2llcyxmLmRlcGVuZGVuY2llcz1udWxsPT09YT9udWxsOntsYW5lczphLmxhbmVzLGZpcnN0Q29udGV4dDphLmZpcnN0Q29udGV4dH0pLGM9Yy5zaWJsaW5nO0coTCxMLmN1cnJlbnQmMXwyKTtyZXR1cm4gYi5jaGlsZH1hPVxuYS5zaWJsaW5nfW51bGwhPT1mLnRhaWwmJkIoKT5HaiYmKGIuZmxhZ3N8PTEyOCxkPSEwLERqKGYsITEpLGIubGFuZXM9NDE5NDMwNCl9ZWxzZXtpZighZClpZihhPUNoKGcpLG51bGwhPT1hKXtpZihiLmZsYWdzfD0xMjgsZD0hMCxjPWEudXBkYXRlUXVldWUsbnVsbCE9PWMmJihiLnVwZGF0ZVF1ZXVlPWMsYi5mbGFnc3w9NCksRGooZiwhMCksbnVsbD09PWYudGFpbCYmXCJoaWRkZW5cIj09PWYudGFpbE1vZGUmJiFnLmFsdGVybmF0ZSYmIUkpcmV0dXJuIFMoYiksbnVsbH1lbHNlIDIqQigpLWYucmVuZGVyaW5nU3RhcnRUaW1lPkdqJiYxMDczNzQxODI0IT09YyYmKGIuZmxhZ3N8PTEyOCxkPSEwLERqKGYsITEpLGIubGFuZXM9NDE5NDMwNCk7Zi5pc0JhY2t3YXJkcz8oZy5zaWJsaW5nPWIuY2hpbGQsYi5jaGlsZD1nKTooYz1mLmxhc3QsbnVsbCE9PWM/Yy5zaWJsaW5nPWc6Yi5jaGlsZD1nLGYubGFzdD1nKX1pZihudWxsIT09Zi50YWlsKXJldHVybiBiPWYudGFpbCxmLnJlbmRlcmluZz1cbmIsZi50YWlsPWIuc2libGluZyxmLnJlbmRlcmluZ1N0YXJ0VGltZT1CKCksYi5zaWJsaW5nPW51bGwsYz1MLmN1cnJlbnQsRyhMLGQ/YyYxfDI6YyYxKSxiO1MoYik7cmV0dXJuIG51bGw7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBIaigpLGQ9bnVsbCE9PWIubWVtb2l6ZWRTdGF0ZSxudWxsIT09YSYmbnVsbCE9PWEubWVtb2l6ZWRTdGF0ZSE9PWQmJihiLmZsYWdzfD04MTkyKSxkJiYwIT09KGIubW9kZSYxKT8wIT09KGZqJjEwNzM3NDE4MjQpJiYoUyhiKSxiLnN1YnRyZWVGbGFncyY2JiYoYi5mbGFnc3w9ODE5MikpOlMoYiksbnVsbDtjYXNlIDI0OnJldHVybiBudWxsO2Nhc2UgMjU6cmV0dXJuIG51bGx9dGhyb3cgRXJyb3IocCgxNTYsYi50YWcpKTt9XG5mdW5jdGlvbiBJaihhLGIpe3dnKGIpO3N3aXRjaChiLnRhZyl7Y2FzZSAxOnJldHVybiBaZihiLnR5cGUpJiYkZigpLGE9Yi5mbGFncyxhJjY1NTM2PyhiLmZsYWdzPWEmLTY1NTM3fDEyOCxiKTpudWxsO2Nhc2UgMzpyZXR1cm4gemgoKSxFKFdmKSxFKEgpLEVoKCksYT1iLmZsYWdzLDAhPT0oYSY2NTUzNikmJjA9PT0oYSYxMjgpPyhiLmZsYWdzPWEmLTY1NTM3fDEyOCxiKTpudWxsO2Nhc2UgNTpyZXR1cm4gQmgoYiksbnVsbDtjYXNlIDEzOkUoTCk7YT1iLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWEmJm51bGwhPT1hLmRlaHlkcmF0ZWQpe2lmKG51bGw9PT1iLmFsdGVybmF0ZSl0aHJvdyBFcnJvcihwKDM0MCkpO0lnKCl9YT1iLmZsYWdzO3JldHVybiBhJjY1NTM2PyhiLmZsYWdzPWEmLTY1NTM3fDEyOCxiKTpudWxsO2Nhc2UgMTk6cmV0dXJuIEUoTCksbnVsbDtjYXNlIDQ6cmV0dXJuIHpoKCksbnVsbDtjYXNlIDEwOnJldHVybiBhaChiLnR5cGUuX2NvbnRleHQpLG51bGw7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBIaigpLFxubnVsbDtjYXNlIDI0OnJldHVybiBudWxsO2RlZmF1bHQ6cmV0dXJuIG51bGx9fXZhciBKaj0hMSxVPSExLEtqPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBXZWFrU2V0P1dlYWtTZXQ6U2V0LFY9bnVsbDtmdW5jdGlvbiBMaihhLGIpe3ZhciBjPWEucmVmO2lmKG51bGwhPT1jKWlmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBjKXRyeXtjKG51bGwpfWNhdGNoKGQpe1coYSxiLGQpfWVsc2UgYy5jdXJyZW50PW51bGx9ZnVuY3Rpb24gTWooYSxiLGMpe3RyeXtjKCl9Y2F0Y2goZCl7VyhhLGIsZCl9fXZhciBOaj0hMTtcbmZ1bmN0aW9uIE9qKGEsYil7Q2Y9ZGQ7YT1NZSgpO2lmKE5lKGEpKXtpZihcInNlbGVjdGlvblN0YXJ0XCJpbiBhKXZhciBjPXtzdGFydDphLnNlbGVjdGlvblN0YXJ0LGVuZDphLnNlbGVjdGlvbkVuZH07ZWxzZSBhOntjPShjPWEub3duZXJEb2N1bWVudCkmJmMuZGVmYXVsdFZpZXd8fHdpbmRvdzt2YXIgZD1jLmdldFNlbGVjdGlvbiYmYy5nZXRTZWxlY3Rpb24oKTtpZihkJiYwIT09ZC5yYW5nZUNvdW50KXtjPWQuYW5jaG9yTm9kZTt2YXIgZT1kLmFuY2hvck9mZnNldCxmPWQuZm9jdXNOb2RlO2Q9ZC5mb2N1c09mZnNldDt0cnl7Yy5ub2RlVHlwZSxmLm5vZGVUeXBlfWNhdGNoKEYpe2M9bnVsbDticmVhayBhfXZhciBnPTAsaD0tMSxrPS0xLGw9MCxtPTAscT1hLHI9bnVsbDtiOmZvcig7Oyl7Zm9yKHZhciB5Ozspe3EhPT1jfHwwIT09ZSYmMyE9PXEubm9kZVR5cGV8fChoPWcrZSk7cSE9PWZ8fDAhPT1kJiYzIT09cS5ub2RlVHlwZXx8KGs9ZytkKTszPT09cS5ub2RlVHlwZSYmKGcrPVxucS5ub2RlVmFsdWUubGVuZ3RoKTtpZihudWxsPT09KHk9cS5maXJzdENoaWxkKSlicmVhaztyPXE7cT15fWZvcig7Oyl7aWYocT09PWEpYnJlYWsgYjtyPT09YyYmKytsPT09ZSYmKGg9Zyk7cj09PWYmJisrbT09PWQmJihrPWcpO2lmKG51bGwhPT0oeT1xLm5leHRTaWJsaW5nKSlicmVhaztxPXI7cj1xLnBhcmVudE5vZGV9cT15fWM9LTE9PT1ofHwtMT09PWs/bnVsbDp7c3RhcnQ6aCxlbmQ6a319ZWxzZSBjPW51bGx9Yz1jfHx7c3RhcnQ6MCxlbmQ6MH19ZWxzZSBjPW51bGw7RGY9e2ZvY3VzZWRFbGVtOmEsc2VsZWN0aW9uUmFuZ2U6Y307ZGQ9ITE7Zm9yKFY9YjtudWxsIT09VjspaWYoYj1WLGE9Yi5jaGlsZCwwIT09KGIuc3VidHJlZUZsYWdzJjEwMjgpJiZudWxsIT09YSlhLnJldHVybj1iLFY9YTtlbHNlIGZvcig7bnVsbCE9PVY7KXtiPVY7dHJ5e3ZhciBuPWIuYWx0ZXJuYXRlO2lmKDAhPT0oYi5mbGFncyYxMDI0KSlzd2l0Y2goYi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6YnJlYWs7XG5jYXNlIDE6aWYobnVsbCE9PW4pe3ZhciB0PW4ubWVtb2l6ZWRQcm9wcyxKPW4ubWVtb2l6ZWRTdGF0ZSx4PWIuc3RhdGVOb2RlLHc9eC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShiLmVsZW1lbnRUeXBlPT09Yi50eXBlP3Q6Q2koYi50eXBlLHQpLEopO3guX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGU9d31icmVhaztjYXNlIDM6dmFyIHU9Yi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzsxPT09dS5ub2RlVHlwZT91LnRleHRDb250ZW50PVwiXCI6OT09PXUubm9kZVR5cGUmJnUuZG9jdW1lbnRFbGVtZW50JiZ1LnJlbW92ZUNoaWxkKHUuZG9jdW1lbnRFbGVtZW50KTticmVhaztjYXNlIDU6Y2FzZSA2OmNhc2UgNDpjYXNlIDE3OmJyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IocCgxNjMpKTt9fWNhdGNoKEYpe1coYixiLnJldHVybixGKX1hPWIuc2libGluZztpZihudWxsIT09YSl7YS5yZXR1cm49Yi5yZXR1cm47Vj1hO2JyZWFrfVY9Yi5yZXR1cm59bj1OajtOaj0hMTtyZXR1cm4gbn1cbmZ1bmN0aW9uIFBqKGEsYixjKXt2YXIgZD1iLnVwZGF0ZVF1ZXVlO2Q9bnVsbCE9PWQ/ZC5sYXN0RWZmZWN0Om51bGw7aWYobnVsbCE9PWQpe3ZhciBlPWQ9ZC5uZXh0O2Rve2lmKChlLnRhZyZhKT09PWEpe3ZhciBmPWUuZGVzdHJveTtlLmRlc3Ryb3k9dm9pZCAwO3ZvaWQgMCE9PWYmJk1qKGIsYyxmKX1lPWUubmV4dH13aGlsZShlIT09ZCl9fWZ1bmN0aW9uIFFqKGEsYil7Yj1iLnVwZGF0ZVF1ZXVlO2I9bnVsbCE9PWI/Yi5sYXN0RWZmZWN0Om51bGw7aWYobnVsbCE9PWIpe3ZhciBjPWI9Yi5uZXh0O2Rve2lmKChjLnRhZyZhKT09PWEpe3ZhciBkPWMuY3JlYXRlO2MuZGVzdHJveT1kKCl9Yz1jLm5leHR9d2hpbGUoYyE9PWIpfX1mdW5jdGlvbiBSaihhKXt2YXIgYj1hLnJlZjtpZihudWxsIT09Yil7dmFyIGM9YS5zdGF0ZU5vZGU7c3dpdGNoKGEudGFnKXtjYXNlIDU6YT1jO2JyZWFrO2RlZmF1bHQ6YT1jfVwiZnVuY3Rpb25cIj09PXR5cGVvZiBiP2IoYSk6Yi5jdXJyZW50PWF9fVxuZnVuY3Rpb24gU2ooYSl7dmFyIGI9YS5hbHRlcm5hdGU7bnVsbCE9PWImJihhLmFsdGVybmF0ZT1udWxsLFNqKGIpKTthLmNoaWxkPW51bGw7YS5kZWxldGlvbnM9bnVsbDthLnNpYmxpbmc9bnVsbDs1PT09YS50YWcmJihiPWEuc3RhdGVOb2RlLG51bGwhPT1iJiYoZGVsZXRlIGJbT2ZdLGRlbGV0ZSBiW1BmXSxkZWxldGUgYltvZl0sZGVsZXRlIGJbUWZdLGRlbGV0ZSBiW1JmXSkpO2Euc3RhdGVOb2RlPW51bGw7YS5yZXR1cm49bnVsbDthLmRlcGVuZGVuY2llcz1udWxsO2EubWVtb2l6ZWRQcm9wcz1udWxsO2EubWVtb2l6ZWRTdGF0ZT1udWxsO2EucGVuZGluZ1Byb3BzPW51bGw7YS5zdGF0ZU5vZGU9bnVsbDthLnVwZGF0ZVF1ZXVlPW51bGx9ZnVuY3Rpb24gVGooYSl7cmV0dXJuIDU9PT1hLnRhZ3x8Mz09PWEudGFnfHw0PT09YS50YWd9XG5mdW5jdGlvbiBVaihhKXthOmZvcig7Oyl7Zm9yKDtudWxsPT09YS5zaWJsaW5nOyl7aWYobnVsbD09PWEucmV0dXJufHxUaihhLnJldHVybikpcmV0dXJuIG51bGw7YT1hLnJldHVybn1hLnNpYmxpbmcucmV0dXJuPWEucmV0dXJuO2ZvcihhPWEuc2libGluZzs1IT09YS50YWcmJjYhPT1hLnRhZyYmMTghPT1hLnRhZzspe2lmKGEuZmxhZ3MmMiljb250aW51ZSBhO2lmKG51bGw9PT1hLmNoaWxkfHw0PT09YS50YWcpY29udGludWUgYTtlbHNlIGEuY2hpbGQucmV0dXJuPWEsYT1hLmNoaWxkfWlmKCEoYS5mbGFncyYyKSlyZXR1cm4gYS5zdGF0ZU5vZGV9fVxuZnVuY3Rpb24gVmooYSxiLGMpe3ZhciBkPWEudGFnO2lmKDU9PT1kfHw2PT09ZClhPWEuc3RhdGVOb2RlLGI/OD09PWMubm9kZVR5cGU/Yy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLGIpOmMuaW5zZXJ0QmVmb3JlKGEsYik6KDg9PT1jLm5vZGVUeXBlPyhiPWMucGFyZW50Tm9kZSxiLmluc2VydEJlZm9yZShhLGMpKTooYj1jLGIuYXBwZW5kQ2hpbGQoYSkpLGM9Yy5fcmVhY3RSb290Q29udGFpbmVyLG51bGwhPT1jJiZ2b2lkIDAhPT1jfHxudWxsIT09Yi5vbmNsaWNrfHwoYi5vbmNsaWNrPUJmKSk7ZWxzZSBpZig0IT09ZCYmKGE9YS5jaGlsZCxudWxsIT09YSkpZm9yKFZqKGEsYixjKSxhPWEuc2libGluZztudWxsIT09YTspVmooYSxiLGMpLGE9YS5zaWJsaW5nfVxuZnVuY3Rpb24gV2ooYSxiLGMpe3ZhciBkPWEudGFnO2lmKDU9PT1kfHw2PT09ZClhPWEuc3RhdGVOb2RlLGI/Yy5pbnNlcnRCZWZvcmUoYSxiKTpjLmFwcGVuZENoaWxkKGEpO2Vsc2UgaWYoNCE9PWQmJihhPWEuY2hpbGQsbnVsbCE9PWEpKWZvcihXaihhLGIsYyksYT1hLnNpYmxpbmc7bnVsbCE9PWE7KVdqKGEsYixjKSxhPWEuc2libGluZ312YXIgWD1udWxsLFhqPSExO2Z1bmN0aW9uIFlqKGEsYixjKXtmb3IoYz1jLmNoaWxkO251bGwhPT1jOylaaihhLGIsYyksYz1jLnNpYmxpbmd9XG5mdW5jdGlvbiBaaihhLGIsYyl7aWYobGMmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBsYy5vbkNvbW1pdEZpYmVyVW5tb3VudCl0cnl7bGMub25Db21taXRGaWJlclVubW91bnQoa2MsYyl9Y2F0Y2goaCl7fXN3aXRjaChjLnRhZyl7Y2FzZSA1OlV8fExqKGMsYik7Y2FzZSA2OnZhciBkPVgsZT1YajtYPW51bGw7WWooYSxiLGMpO1g9ZDtYaj1lO251bGwhPT1YJiYoWGo/KGE9WCxjPWMuc3RhdGVOb2RlLDg9PT1hLm5vZGVUeXBlP2EucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjKTphLnJlbW92ZUNoaWxkKGMpKTpYLnJlbW92ZUNoaWxkKGMuc3RhdGVOb2RlKSk7YnJlYWs7Y2FzZSAxODpudWxsIT09WCYmKFhqPyhhPVgsYz1jLnN0YXRlTm9kZSw4PT09YS5ub2RlVHlwZT9LZihhLnBhcmVudE5vZGUsYyk6MT09PWEubm9kZVR5cGUmJktmKGEsYyksYmQoYSkpOktmKFgsYy5zdGF0ZU5vZGUpKTticmVhaztjYXNlIDQ6ZD1YO2U9WGo7WD1jLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1hqPSEwO1xuWWooYSxiLGMpO1g9ZDtYaj1lO2JyZWFrO2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTppZighVSYmKGQ9Yy51cGRhdGVRdWV1ZSxudWxsIT09ZCYmKGQ9ZC5sYXN0RWZmZWN0LG51bGwhPT1kKSkpe2U9ZD1kLm5leHQ7ZG97dmFyIGY9ZSxnPWYuZGVzdHJveTtmPWYudGFnO3ZvaWQgMCE9PWcmJigwIT09KGYmMik/TWooYyxiLGcpOjAhPT0oZiY0KSYmTWooYyxiLGcpKTtlPWUubmV4dH13aGlsZShlIT09ZCl9WWooYSxiLGMpO2JyZWFrO2Nhc2UgMTppZighVSYmKExqKGMsYiksZD1jLnN0YXRlTm9kZSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZC5jb21wb25lbnRXaWxsVW5tb3VudCkpdHJ5e2QucHJvcHM9Yy5tZW1vaXplZFByb3BzLGQuc3RhdGU9Yy5tZW1vaXplZFN0YXRlLGQuY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaChoKXtXKGMsYixoKX1ZaihhLGIsYyk7YnJlYWs7Y2FzZSAyMTpZaihhLGIsYyk7YnJlYWs7Y2FzZSAyMjpjLm1vZGUmMT8oVT0oZD1VKXx8bnVsbCE9PVxuYy5tZW1vaXplZFN0YXRlLFlqKGEsYixjKSxVPWQpOllqKGEsYixjKTticmVhaztkZWZhdWx0OllqKGEsYixjKX19ZnVuY3Rpb24gYWsoYSl7dmFyIGI9YS51cGRhdGVRdWV1ZTtpZihudWxsIT09Yil7YS51cGRhdGVRdWV1ZT1udWxsO3ZhciBjPWEuc3RhdGVOb2RlO251bGw9PT1jJiYoYz1hLnN0YXRlTm9kZT1uZXcgS2opO2IuZm9yRWFjaChmdW5jdGlvbihiKXt2YXIgZD1iay5iaW5kKG51bGwsYSxiKTtjLmhhcyhiKXx8KGMuYWRkKGIpLGIudGhlbihkLGQpKX0pfX1cbmZ1bmN0aW9uIGNrKGEsYil7dmFyIGM9Yi5kZWxldGlvbnM7aWYobnVsbCE9PWMpZm9yKHZhciBkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPWNbZF07dHJ5e3ZhciBmPWEsZz1iLGg9ZzthOmZvcig7bnVsbCE9PWg7KXtzd2l0Y2goaC50YWcpe2Nhc2UgNTpYPWguc3RhdGVOb2RlO1hqPSExO2JyZWFrIGE7Y2FzZSAzOlg9aC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztYaj0hMDticmVhayBhO2Nhc2UgNDpYPWguc3RhdGVOb2RlLmNvbnRhaW5lckluZm87WGo9ITA7YnJlYWsgYX1oPWgucmV0dXJufWlmKG51bGw9PT1YKXRocm93IEVycm9yKHAoMTYwKSk7WmooZixnLGUpO1g9bnVsbDtYaj0hMTt2YXIgaz1lLmFsdGVybmF0ZTtudWxsIT09ayYmKGsucmV0dXJuPW51bGwpO2UucmV0dXJuPW51bGx9Y2F0Y2gobCl7VyhlLGIsbCl9fWlmKGIuc3VidHJlZUZsYWdzJjEyODU0KWZvcihiPWIuY2hpbGQ7bnVsbCE9PWI7KWRrKGIsYSksYj1iLnNpYmxpbmd9XG5mdW5jdGlvbiBkayhhLGIpe3ZhciBjPWEuYWx0ZXJuYXRlLGQ9YS5mbGFncztzd2l0Y2goYS50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTpjayhiLGEpO2VrKGEpO2lmKGQmNCl7dHJ5e1BqKDMsYSxhLnJldHVybiksUWooMyxhKX1jYXRjaCh0KXtXKGEsYS5yZXR1cm4sdCl9dHJ5e1BqKDUsYSxhLnJldHVybil9Y2F0Y2godCl7VyhhLGEucmV0dXJuLHQpfX1icmVhaztjYXNlIDE6Y2soYixhKTtlayhhKTtkJjUxMiYmbnVsbCE9PWMmJkxqKGMsYy5yZXR1cm4pO2JyZWFrO2Nhc2UgNTpjayhiLGEpO2VrKGEpO2QmNTEyJiZudWxsIT09YyYmTGooYyxjLnJldHVybik7aWYoYS5mbGFncyYzMil7dmFyIGU9YS5zdGF0ZU5vZGU7dHJ5e29iKGUsXCJcIil9Y2F0Y2godCl7VyhhLGEucmV0dXJuLHQpfX1pZihkJjQmJihlPWEuc3RhdGVOb2RlLG51bGwhPWUpKXt2YXIgZj1hLm1lbW9pemVkUHJvcHMsZz1udWxsIT09Yz9jLm1lbW9pemVkUHJvcHM6ZixoPWEudHlwZSxrPWEudXBkYXRlUXVldWU7XG5hLnVwZGF0ZVF1ZXVlPW51bGw7aWYobnVsbCE9PWspdHJ5e1wiaW5wdXRcIj09PWgmJlwicmFkaW9cIj09PWYudHlwZSYmbnVsbCE9Zi5uYW1lJiZhYihlLGYpO3ZiKGgsZyk7dmFyIGw9dmIoaCxmKTtmb3IoZz0wO2c8ay5sZW5ndGg7Zys9Mil7dmFyIG09a1tnXSxxPWtbZysxXTtcInN0eWxlXCI9PT1tP3NiKGUscSk6XCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiPT09bT9uYihlLHEpOlwiY2hpbGRyZW5cIj09PW0/b2IoZSxxKTp0YShlLG0scSxsKX1zd2l0Y2goaCl7Y2FzZSBcImlucHV0XCI6YmIoZSxmKTticmVhaztjYXNlIFwidGV4dGFyZWFcIjppYihlLGYpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjp2YXIgcj1lLl93cmFwcGVyU3RhdGUud2FzTXVsdGlwbGU7ZS5fd3JhcHBlclN0YXRlLndhc011bHRpcGxlPSEhZi5tdWx0aXBsZTt2YXIgeT1mLnZhbHVlO251bGwhPXk/ZmIoZSwhIWYubXVsdGlwbGUseSwhMSk6ciE9PSEhZi5tdWx0aXBsZSYmKG51bGwhPWYuZGVmYXVsdFZhbHVlP2ZiKGUsISFmLm11bHRpcGxlLFxuZi5kZWZhdWx0VmFsdWUsITApOmZiKGUsISFmLm11bHRpcGxlLGYubXVsdGlwbGU/W106XCJcIiwhMSkpfWVbUGZdPWZ9Y2F0Y2godCl7VyhhLGEucmV0dXJuLHQpfX1icmVhaztjYXNlIDY6Y2soYixhKTtlayhhKTtpZihkJjQpe2lmKG51bGw9PT1hLnN0YXRlTm9kZSl0aHJvdyBFcnJvcihwKDE2MikpO2U9YS5zdGF0ZU5vZGU7Zj1hLm1lbW9pemVkUHJvcHM7dHJ5e2Uubm9kZVZhbHVlPWZ9Y2F0Y2godCl7VyhhLGEucmV0dXJuLHQpfX1icmVhaztjYXNlIDM6Y2soYixhKTtlayhhKTtpZihkJjQmJm51bGwhPT1jJiZjLm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXRyeXtiZChiLmNvbnRhaW5lckluZm8pfWNhdGNoKHQpe1coYSxhLnJldHVybix0KX1icmVhaztjYXNlIDQ6Y2soYixhKTtlayhhKTticmVhaztjYXNlIDEzOmNrKGIsYSk7ZWsoYSk7ZT1hLmNoaWxkO2UuZmxhZ3MmODE5MiYmKGY9bnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSxlLnN0YXRlTm9kZS5pc0hpZGRlbj1mLCFmfHxcbm51bGwhPT1lLmFsdGVybmF0ZSYmbnVsbCE9PWUuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGV8fChmaz1CKCkpKTtkJjQmJmFrKGEpO2JyZWFrO2Nhc2UgMjI6bT1udWxsIT09YyYmbnVsbCE9PWMubWVtb2l6ZWRTdGF0ZTthLm1vZGUmMT8oVT0obD1VKXx8bSxjayhiLGEpLFU9bCk6Y2soYixhKTtlayhhKTtpZihkJjgxOTIpe2w9bnVsbCE9PWEubWVtb2l6ZWRTdGF0ZTtpZigoYS5zdGF0ZU5vZGUuaXNIaWRkZW49bCkmJiFtJiYwIT09KGEubW9kZSYxKSlmb3IoVj1hLG09YS5jaGlsZDtudWxsIT09bTspe2ZvcihxPVY9bTtudWxsIT09Vjspe3I9Vjt5PXIuY2hpbGQ7c3dpdGNoKHIudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6UGooNCxyLHIucmV0dXJuKTticmVhaztjYXNlIDE6TGoocixyLnJldHVybik7dmFyIG49ci5zdGF0ZU5vZGU7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIG4uY29tcG9uZW50V2lsbFVubW91bnQpe2Q9cjtjPXIucmV0dXJuO3RyeXtiPWQsbi5wcm9wcz1cbmIubWVtb2l6ZWRQcm9wcyxuLnN0YXRlPWIubWVtb2l6ZWRTdGF0ZSxuLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2godCl7VyhkLGMsdCl9fWJyZWFrO2Nhc2UgNTpMaihyLHIucmV0dXJuKTticmVhaztjYXNlIDIyOmlmKG51bGwhPT1yLm1lbW9pemVkU3RhdGUpe2drKHEpO2NvbnRpbnVlfX1udWxsIT09eT8oeS5yZXR1cm49cixWPXkpOmdrKHEpfW09bS5zaWJsaW5nfWE6Zm9yKG09bnVsbCxxPWE7Oyl7aWYoNT09PXEudGFnKXtpZihudWxsPT09bSl7bT1xO3RyeXtlPXEuc3RhdGVOb2RlLGw/KGY9ZS5zdHlsZSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZi5zZXRQcm9wZXJ0eT9mLnNldFByb3BlcnR5KFwiZGlzcGxheVwiLFwibm9uZVwiLFwiaW1wb3J0YW50XCIpOmYuZGlzcGxheT1cIm5vbmVcIik6KGg9cS5zdGF0ZU5vZGUsaz1xLm1lbW9pemVkUHJvcHMuc3R5bGUsZz12b2lkIDAhPT1rJiZudWxsIT09ayYmay5oYXNPd25Qcm9wZXJ0eShcImRpc3BsYXlcIik/ay5kaXNwbGF5Om51bGwsaC5zdHlsZS5kaXNwbGF5PVxucmIoXCJkaXNwbGF5XCIsZykpfWNhdGNoKHQpe1coYSxhLnJldHVybix0KX19fWVsc2UgaWYoNj09PXEudGFnKXtpZihudWxsPT09bSl0cnl7cS5zdGF0ZU5vZGUubm9kZVZhbHVlPWw/XCJcIjpxLm1lbW9pemVkUHJvcHN9Y2F0Y2godCl7VyhhLGEucmV0dXJuLHQpfX1lbHNlIGlmKCgyMiE9PXEudGFnJiYyMyE9PXEudGFnfHxudWxsPT09cS5tZW1vaXplZFN0YXRlfHxxPT09YSkmJm51bGwhPT1xLmNoaWxkKXtxLmNoaWxkLnJldHVybj1xO3E9cS5jaGlsZDtjb250aW51ZX1pZihxPT09YSlicmVhayBhO2Zvcig7bnVsbD09PXEuc2libGluZzspe2lmKG51bGw9PT1xLnJldHVybnx8cS5yZXR1cm49PT1hKWJyZWFrIGE7bT09PXEmJihtPW51bGwpO3E9cS5yZXR1cm59bT09PXEmJihtPW51bGwpO3Euc2libGluZy5yZXR1cm49cS5yZXR1cm47cT1xLnNpYmxpbmd9fWJyZWFrO2Nhc2UgMTk6Y2soYixhKTtlayhhKTtkJjQmJmFrKGEpO2JyZWFrO2Nhc2UgMjE6YnJlYWs7ZGVmYXVsdDpjayhiLFxuYSksZWsoYSl9fWZ1bmN0aW9uIGVrKGEpe3ZhciBiPWEuZmxhZ3M7aWYoYiYyKXt0cnl7YTp7Zm9yKHZhciBjPWEucmV0dXJuO251bGwhPT1jOyl7aWYoVGooYykpe3ZhciBkPWM7YnJlYWsgYX1jPWMucmV0dXJufXRocm93IEVycm9yKHAoMTYwKSk7fXN3aXRjaChkLnRhZyl7Y2FzZSA1OnZhciBlPWQuc3RhdGVOb2RlO2QuZmxhZ3MmMzImJihvYihlLFwiXCIpLGQuZmxhZ3MmPS0zMyk7dmFyIGY9VWooYSk7V2ooYSxmLGUpO2JyZWFrO2Nhc2UgMzpjYXNlIDQ6dmFyIGc9ZC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxoPVVqKGEpO1ZqKGEsaCxnKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKHAoMTYxKSk7fX1jYXRjaChrKXtXKGEsYS5yZXR1cm4sayl9YS5mbGFncyY9LTN9YiY0MDk2JiYoYS5mbGFncyY9LTQwOTcpfWZ1bmN0aW9uIGhrKGEsYixjKXtWPWE7aWsoYSxiLGMpfVxuZnVuY3Rpb24gaWsoYSxiLGMpe2Zvcih2YXIgZD0wIT09KGEubW9kZSYxKTtudWxsIT09Vjspe3ZhciBlPVYsZj1lLmNoaWxkO2lmKDIyPT09ZS50YWcmJmQpe3ZhciBnPW51bGwhPT1lLm1lbW9pemVkU3RhdGV8fEpqO2lmKCFnKXt2YXIgaD1lLmFsdGVybmF0ZSxrPW51bGwhPT1oJiZudWxsIT09aC5tZW1vaXplZFN0YXRlfHxVO2g9Smo7dmFyIGw9VTtKaj1nO2lmKChVPWspJiYhbClmb3IoVj1lO251bGwhPT1WOylnPVYsaz1nLmNoaWxkLDIyPT09Zy50YWcmJm51bGwhPT1nLm1lbW9pemVkU3RhdGU/amsoZSk6bnVsbCE9PWs/KGsucmV0dXJuPWcsVj1rKTpqayhlKTtmb3IoO251bGwhPT1mOylWPWYsaWsoZixiLGMpLGY9Zi5zaWJsaW5nO1Y9ZTtKaj1oO1U9bH1rayhhLGIsYyl9ZWxzZSAwIT09KGUuc3VidHJlZUZsYWdzJjg3NzIpJiZudWxsIT09Zj8oZi5yZXR1cm49ZSxWPWYpOmtrKGEsYixjKX19XG5mdW5jdGlvbiBrayhhKXtmb3IoO251bGwhPT1WOyl7dmFyIGI9VjtpZigwIT09KGIuZmxhZ3MmODc3Mikpe3ZhciBjPWIuYWx0ZXJuYXRlO3RyeXtpZigwIT09KGIuZmxhZ3MmODc3Mikpc3dpdGNoKGIudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OlV8fFFqKDUsYik7YnJlYWs7Y2FzZSAxOnZhciBkPWIuc3RhdGVOb2RlO2lmKGIuZmxhZ3MmNCYmIVUpaWYobnVsbD09PWMpZC5jb21wb25lbnREaWRNb3VudCgpO2Vsc2V7dmFyIGU9Yi5lbGVtZW50VHlwZT09PWIudHlwZT9jLm1lbW9pemVkUHJvcHM6Q2koYi50eXBlLGMubWVtb2l6ZWRQcm9wcyk7ZC5jb21wb25lbnREaWRVcGRhdGUoZSxjLm1lbW9pemVkU3RhdGUsZC5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZSl9dmFyIGY9Yi51cGRhdGVRdWV1ZTtudWxsIT09ZiYmc2goYixmLGQpO2JyZWFrO2Nhc2UgMzp2YXIgZz1iLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1nKXtjPW51bGw7aWYobnVsbCE9PWIuY2hpbGQpc3dpdGNoKGIuY2hpbGQudGFnKXtjYXNlIDU6Yz1cbmIuY2hpbGQuc3RhdGVOb2RlO2JyZWFrO2Nhc2UgMTpjPWIuY2hpbGQuc3RhdGVOb2RlfXNoKGIsZyxjKX1icmVhaztjYXNlIDU6dmFyIGg9Yi5zdGF0ZU5vZGU7aWYobnVsbD09PWMmJmIuZmxhZ3MmNCl7Yz1oO3ZhciBrPWIubWVtb2l6ZWRQcm9wcztzd2l0Y2goYi50eXBlKXtjYXNlIFwiYnV0dG9uXCI6Y2FzZSBcImlucHV0XCI6Y2FzZSBcInNlbGVjdFwiOmNhc2UgXCJ0ZXh0YXJlYVwiOmsuYXV0b0ZvY3VzJiZjLmZvY3VzKCk7YnJlYWs7Y2FzZSBcImltZ1wiOmsuc3JjJiYoYy5zcmM9ay5zcmMpfX1icmVhaztjYXNlIDY6YnJlYWs7Y2FzZSA0OmJyZWFrO2Nhc2UgMTI6YnJlYWs7Y2FzZSAxMzppZihudWxsPT09Yi5tZW1vaXplZFN0YXRlKXt2YXIgbD1iLmFsdGVybmF0ZTtpZihudWxsIT09bCl7dmFyIG09bC5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1tKXt2YXIgcT1tLmRlaHlkcmF0ZWQ7bnVsbCE9PXEmJmJkKHEpfX19YnJlYWs7Y2FzZSAxOTpjYXNlIDE3OmNhc2UgMjE6Y2FzZSAyMjpjYXNlIDIzOmNhc2UgMjU6YnJlYWs7XG5kZWZhdWx0OnRocm93IEVycm9yKHAoMTYzKSk7fVV8fGIuZmxhZ3MmNTEyJiZSaihiKX1jYXRjaChyKXtXKGIsYi5yZXR1cm4scil9fWlmKGI9PT1hKXtWPW51bGw7YnJlYWt9Yz1iLnNpYmxpbmc7aWYobnVsbCE9PWMpe2MucmV0dXJuPWIucmV0dXJuO1Y9YzticmVha31WPWIucmV0dXJufX1mdW5jdGlvbiBnayhhKXtmb3IoO251bGwhPT1WOyl7dmFyIGI9VjtpZihiPT09YSl7Vj1udWxsO2JyZWFrfXZhciBjPWIuc2libGluZztpZihudWxsIT09Yyl7Yy5yZXR1cm49Yi5yZXR1cm47Vj1jO2JyZWFrfVY9Yi5yZXR1cm59fVxuZnVuY3Rpb24gamsoYSl7Zm9yKDtudWxsIT09Vjspe3ZhciBiPVY7dHJ5e3N3aXRjaChiLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTp2YXIgYz1iLnJldHVybjt0cnl7UWooNCxiKX1jYXRjaChrKXtXKGIsYyxrKX1icmVhaztjYXNlIDE6dmFyIGQ9Yi5zdGF0ZU5vZGU7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGQuY29tcG9uZW50RGlkTW91bnQpe3ZhciBlPWIucmV0dXJuO3RyeXtkLmNvbXBvbmVudERpZE1vdW50KCl9Y2F0Y2goayl7VyhiLGUsayl9fXZhciBmPWIucmV0dXJuO3RyeXtSaihiKX1jYXRjaChrKXtXKGIsZixrKX1icmVhaztjYXNlIDU6dmFyIGc9Yi5yZXR1cm47dHJ5e1JqKGIpfWNhdGNoKGspe1coYixnLGspfX19Y2F0Y2goayl7VyhiLGIucmV0dXJuLGspfWlmKGI9PT1hKXtWPW51bGw7YnJlYWt9dmFyIGg9Yi5zaWJsaW5nO2lmKG51bGwhPT1oKXtoLnJldHVybj1iLnJldHVybjtWPWg7YnJlYWt9Vj1iLnJldHVybn19XG52YXIgbGs9TWF0aC5jZWlsLG1rPXVhLlJlYWN0Q3VycmVudERpc3BhdGNoZXIsbms9dWEuUmVhY3RDdXJyZW50T3duZXIsb2s9dWEuUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsSz0wLFE9bnVsbCxZPW51bGwsWj0wLGZqPTAsZWo9VWYoMCksVD0wLHBrPW51bGwscmg9MCxxaz0wLHJrPTAsc2s9bnVsbCx0az1udWxsLGZrPTAsR2o9SW5maW5pdHksdWs9bnVsbCxPaT0hMSxQaT1udWxsLFJpPW51bGwsdms9ITEsd2s9bnVsbCx4az0wLHlrPTAsems9bnVsbCxBaz0tMSxCaz0wO2Z1bmN0aW9uIFIoKXtyZXR1cm4gMCE9PShLJjYpP0IoKTotMSE9PUFrP0FrOkFrPUIoKX1cbmZ1bmN0aW9uIHlpKGEpe2lmKDA9PT0oYS5tb2RlJjEpKXJldHVybiAxO2lmKDAhPT0oSyYyKSYmMCE9PVopcmV0dXJuIFomLVo7aWYobnVsbCE9PUtnLnRyYW5zaXRpb24pcmV0dXJuIDA9PT1CayYmKEJrPXljKCkpLEJrO2E9QztpZigwIT09YSlyZXR1cm4gYTthPXdpbmRvdy5ldmVudDthPXZvaWQgMD09PWE/MTY6amQoYS50eXBlKTtyZXR1cm4gYX1mdW5jdGlvbiBnaShhLGIsYyxkKXtpZig1MDx5ayl0aHJvdyB5az0wLHprPW51bGwsRXJyb3IocCgxODUpKTtBYyhhLGMsZCk7aWYoMD09PShLJjIpfHxhIT09USlhPT09USYmKDA9PT0oSyYyKSYmKHFrfD1jKSw0PT09VCYmQ2soYSxaKSksRGsoYSxkKSwxPT09YyYmMD09PUsmJjA9PT0oYi5tb2RlJjEpJiYoR2o9QigpKzUwMCxmZyYmamcoKSl9XG5mdW5jdGlvbiBEayhhLGIpe3ZhciBjPWEuY2FsbGJhY2tOb2RlO3djKGEsYik7dmFyIGQ9dWMoYSxhPT09UT9aOjApO2lmKDA9PT1kKW51bGwhPT1jJiZiYyhjKSxhLmNhbGxiYWNrTm9kZT1udWxsLGEuY2FsbGJhY2tQcmlvcml0eT0wO2Vsc2UgaWYoYj1kJi1kLGEuY2FsbGJhY2tQcmlvcml0eSE9PWIpe251bGwhPWMmJmJjKGMpO2lmKDE9PT1iKTA9PT1hLnRhZz9pZyhFay5iaW5kKG51bGwsYSkpOmhnKEVrLmJpbmQobnVsbCxhKSksSmYoZnVuY3Rpb24oKXswPT09KEsmNikmJmpnKCl9KSxjPW51bGw7ZWxzZXtzd2l0Y2goRGMoZCkpe2Nhc2UgMTpjPWZjO2JyZWFrO2Nhc2UgNDpjPWdjO2JyZWFrO2Nhc2UgMTY6Yz1oYzticmVhaztjYXNlIDUzNjg3MDkxMjpjPWpjO2JyZWFrO2RlZmF1bHQ6Yz1oY31jPUZrKGMsR2suYmluZChudWxsLGEpKX1hLmNhbGxiYWNrUHJpb3JpdHk9YjthLmNhbGxiYWNrTm9kZT1jfX1cbmZ1bmN0aW9uIEdrKGEsYil7QWs9LTE7Qms9MDtpZigwIT09KEsmNikpdGhyb3cgRXJyb3IocCgzMjcpKTt2YXIgYz1hLmNhbGxiYWNrTm9kZTtpZihIaygpJiZhLmNhbGxiYWNrTm9kZSE9PWMpcmV0dXJuIG51bGw7dmFyIGQ9dWMoYSxhPT09UT9aOjApO2lmKDA9PT1kKXJldHVybiBudWxsO2lmKDAhPT0oZCYzMCl8fDAhPT0oZCZhLmV4cGlyZWRMYW5lcyl8fGIpYj1JayhhLGQpO2Vsc2V7Yj1kO3ZhciBlPUs7S3w9Mjt2YXIgZj1KaygpO2lmKFEhPT1hfHxaIT09Yil1az1udWxsLEdqPUIoKSs1MDAsS2soYSxiKTtkbyB0cnl7TGsoKTticmVha31jYXRjaChoKXtNayhhLGgpfXdoaWxlKDEpOyRnKCk7bWsuY3VycmVudD1mO0s9ZTtudWxsIT09WT9iPTA6KFE9bnVsbCxaPTAsYj1UKX1pZigwIT09Yil7Mj09PWImJihlPXhjKGEpLDAhPT1lJiYoZD1lLGI9TmsoYSxlKSkpO2lmKDE9PT1iKXRocm93IGM9cGssS2soYSwwKSxDayhhLGQpLERrKGEsQigpKSxjO2lmKDY9PT1iKUNrKGEsZCk7XG5lbHNle2U9YS5jdXJyZW50LmFsdGVybmF0ZTtpZigwPT09KGQmMzApJiYhT2soZSkmJihiPUlrKGEsZCksMj09PWImJihmPXhjKGEpLDAhPT1mJiYoZD1mLGI9TmsoYSxmKSkpLDE9PT1iKSl0aHJvdyBjPXBrLEtrKGEsMCksQ2soYSxkKSxEayhhLEIoKSksYzthLmZpbmlzaGVkV29yaz1lO2EuZmluaXNoZWRMYW5lcz1kO3N3aXRjaChiKXtjYXNlIDA6Y2FzZSAxOnRocm93IEVycm9yKHAoMzQ1KSk7Y2FzZSAyOlBrKGEsdGssdWspO2JyZWFrO2Nhc2UgMzpDayhhLGQpO2lmKChkJjEzMDAyMzQyNCk9PT1kJiYoYj1mays1MDAtQigpLDEwPGIpKXtpZigwIT09dWMoYSwwKSlicmVhaztlPWEuc3VzcGVuZGVkTGFuZXM7aWYoKGUmZCkhPT1kKXtSKCk7YS5waW5nZWRMYW5lc3w9YS5zdXNwZW5kZWRMYW5lcyZlO2JyZWFrfWEudGltZW91dEhhbmRsZT1GZihQay5iaW5kKG51bGwsYSx0ayx1ayksYik7YnJlYWt9UGsoYSx0ayx1ayk7YnJlYWs7Y2FzZSA0OkNrKGEsZCk7aWYoKGQmNDE5NDI0MCk9PT1cbmQpYnJlYWs7Yj1hLmV2ZW50VGltZXM7Zm9yKGU9LTE7MDxkOyl7dmFyIGc9MzEtb2MoZCk7Zj0xPDxnO2c9YltnXTtnPmUmJihlPWcpO2QmPX5mfWQ9ZTtkPUIoKS1kO2Q9KDEyMD5kPzEyMDo0ODA+ZD80ODA6MTA4MD5kPzEwODA6MTkyMD5kPzE5MjA6M0UzPmQ/M0UzOjQzMjA+ZD80MzIwOjE5NjAqbGsoZC8xOTYwKSktZDtpZigxMDxkKXthLnRpbWVvdXRIYW5kbGU9RmYoUGsuYmluZChudWxsLGEsdGssdWspLGQpO2JyZWFrfVBrKGEsdGssdWspO2JyZWFrO2Nhc2UgNTpQayhhLHRrLHVrKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKHAoMzI5KSk7fX19RGsoYSxCKCkpO3JldHVybiBhLmNhbGxiYWNrTm9kZT09PWM/R2suYmluZChudWxsLGEpOm51bGx9XG5mdW5jdGlvbiBOayhhLGIpe3ZhciBjPXNrO2EuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCYmKEtrKGEsYikuZmxhZ3N8PTI1Nik7YT1JayhhLGIpOzIhPT1hJiYoYj10ayx0az1jLG51bGwhPT1iJiZGaihiKSk7cmV0dXJuIGF9ZnVuY3Rpb24gRmooYSl7bnVsbD09PXRrP3RrPWE6dGsucHVzaC5hcHBseSh0ayxhKX1cbmZ1bmN0aW9uIE9rKGEpe2Zvcih2YXIgYj1hOzspe2lmKGIuZmxhZ3MmMTYzODQpe3ZhciBjPWIudXBkYXRlUXVldWU7aWYobnVsbCE9PWMmJihjPWMuc3RvcmVzLG51bGwhPT1jKSlmb3IodmFyIGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9Y1tkXSxmPWUuZ2V0U25hcHNob3Q7ZT1lLnZhbHVlO3RyeXtpZighSGUoZigpLGUpKXJldHVybiExfWNhdGNoKGcpe3JldHVybiExfX19Yz1iLmNoaWxkO2lmKGIuc3VidHJlZUZsYWdzJjE2Mzg0JiZudWxsIT09YyljLnJldHVybj1iLGI9YztlbHNle2lmKGI9PT1hKWJyZWFrO2Zvcig7bnVsbD09PWIuc2libGluZzspe2lmKG51bGw9PT1iLnJldHVybnx8Yi5yZXR1cm49PT1hKXJldHVybiEwO2I9Yi5yZXR1cm59Yi5zaWJsaW5nLnJldHVybj1iLnJldHVybjtiPWIuc2libGluZ319cmV0dXJuITB9XG5mdW5jdGlvbiBDayhhLGIpe2ImPX5yaztiJj1+cWs7YS5zdXNwZW5kZWRMYW5lc3w9YjthLnBpbmdlZExhbmVzJj1+Yjtmb3IoYT1hLmV4cGlyYXRpb25UaW1lczswPGI7KXt2YXIgYz0zMS1vYyhiKSxkPTE8PGM7YVtjXT0tMTtiJj1+ZH19ZnVuY3Rpb24gRWsoYSl7aWYoMCE9PShLJjYpKXRocm93IEVycm9yKHAoMzI3KSk7SGsoKTt2YXIgYj11YyhhLDApO2lmKDA9PT0oYiYxKSlyZXR1cm4gRGsoYSxCKCkpLG51bGw7dmFyIGM9SWsoYSxiKTtpZigwIT09YS50YWcmJjI9PT1jKXt2YXIgZD14YyhhKTswIT09ZCYmKGI9ZCxjPU5rKGEsZCkpfWlmKDE9PT1jKXRocm93IGM9cGssS2soYSwwKSxDayhhLGIpLERrKGEsQigpKSxjO2lmKDY9PT1jKXRocm93IEVycm9yKHAoMzQ1KSk7YS5maW5pc2hlZFdvcms9YS5jdXJyZW50LmFsdGVybmF0ZTthLmZpbmlzaGVkTGFuZXM9YjtQayhhLHRrLHVrKTtEayhhLEIoKSk7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBRayhhLGIpe3ZhciBjPUs7S3w9MTt0cnl7cmV0dXJuIGEoYil9ZmluYWxseXtLPWMsMD09PUsmJihHaj1CKCkrNTAwLGZnJiZqZygpKX19ZnVuY3Rpb24gUmsoYSl7bnVsbCE9PXdrJiYwPT09d2sudGFnJiYwPT09KEsmNikmJkhrKCk7dmFyIGI9SztLfD0xO3ZhciBjPW9rLnRyYW5zaXRpb24sZD1DO3RyeXtpZihvay50cmFuc2l0aW9uPW51bGwsQz0xLGEpcmV0dXJuIGEoKX1maW5hbGx5e0M9ZCxvay50cmFuc2l0aW9uPWMsSz1iLDA9PT0oSyY2KSYmamcoKX19ZnVuY3Rpb24gSGooKXtmaj1lai5jdXJyZW50O0UoZWopfVxuZnVuY3Rpb24gS2soYSxiKXthLmZpbmlzaGVkV29yaz1udWxsO2EuZmluaXNoZWRMYW5lcz0wO3ZhciBjPWEudGltZW91dEhhbmRsZTstMSE9PWMmJihhLnRpbWVvdXRIYW5kbGU9LTEsR2YoYykpO2lmKG51bGwhPT1ZKWZvcihjPVkucmV0dXJuO251bGwhPT1jOyl7dmFyIGQ9Yzt3ZyhkKTtzd2l0Y2goZC50YWcpe2Nhc2UgMTpkPWQudHlwZS5jaGlsZENvbnRleHRUeXBlcztudWxsIT09ZCYmdm9pZCAwIT09ZCYmJGYoKTticmVhaztjYXNlIDM6emgoKTtFKFdmKTtFKEgpO0VoKCk7YnJlYWs7Y2FzZSA1OkJoKGQpO2JyZWFrO2Nhc2UgNDp6aCgpO2JyZWFrO2Nhc2UgMTM6RShMKTticmVhaztjYXNlIDE5OkUoTCk7YnJlYWs7Y2FzZSAxMDphaChkLnR5cGUuX2NvbnRleHQpO2JyZWFrO2Nhc2UgMjI6Y2FzZSAyMzpIaigpfWM9Yy5yZXR1cm59UT1hO1k9YT1QZyhhLmN1cnJlbnQsbnVsbCk7Wj1maj1iO1Q9MDtwaz1udWxsO3JrPXFrPXJoPTA7dGs9c2s9bnVsbDtpZihudWxsIT09Zmgpe2ZvcihiPVxuMDtiPGZoLmxlbmd0aDtiKyspaWYoYz1maFtiXSxkPWMuaW50ZXJsZWF2ZWQsbnVsbCE9PWQpe2MuaW50ZXJsZWF2ZWQ9bnVsbDt2YXIgZT1kLm5leHQsZj1jLnBlbmRpbmc7aWYobnVsbCE9PWYpe3ZhciBnPWYubmV4dDtmLm5leHQ9ZTtkLm5leHQ9Z31jLnBlbmRpbmc9ZH1maD1udWxsfXJldHVybiBhfVxuZnVuY3Rpb24gTWsoYSxiKXtkb3t2YXIgYz1ZO3RyeXskZygpO0ZoLmN1cnJlbnQ9Umg7aWYoSWgpe2Zvcih2YXIgZD1NLm1lbW9pemVkU3RhdGU7bnVsbCE9PWQ7KXt2YXIgZT1kLnF1ZXVlO251bGwhPT1lJiYoZS5wZW5kaW5nPW51bGwpO2Q9ZC5uZXh0fUloPSExfUhoPTA7Tz1OPU09bnVsbDtKaD0hMTtLaD0wO25rLmN1cnJlbnQ9bnVsbDtpZihudWxsPT09Y3x8bnVsbD09PWMucmV0dXJuKXtUPTE7cGs9YjtZPW51bGw7YnJlYWt9YTp7dmFyIGY9YSxnPWMucmV0dXJuLGg9YyxrPWI7Yj1aO2guZmxhZ3N8PTMyNzY4O2lmKG51bGwhPT1rJiZcIm9iamVjdFwiPT09dHlwZW9mIGsmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBrLnRoZW4pe3ZhciBsPWssbT1oLHE9bS50YWc7aWYoMD09PShtLm1vZGUmMSkmJigwPT09cXx8MTE9PT1xfHwxNT09PXEpKXt2YXIgcj1tLmFsdGVybmF0ZTtyPyhtLnVwZGF0ZVF1ZXVlPXIudXBkYXRlUXVldWUsbS5tZW1vaXplZFN0YXRlPXIubWVtb2l6ZWRTdGF0ZSxcbm0ubGFuZXM9ci5sYW5lcyk6KG0udXBkYXRlUXVldWU9bnVsbCxtLm1lbW9pemVkU3RhdGU9bnVsbCl9dmFyIHk9VWkoZyk7aWYobnVsbCE9PXkpe3kuZmxhZ3MmPS0yNTc7VmkoeSxnLGgsZixiKTt5Lm1vZGUmMSYmU2koZixsLGIpO2I9eTtrPWw7dmFyIG49Yi51cGRhdGVRdWV1ZTtpZihudWxsPT09bil7dmFyIHQ9bmV3IFNldDt0LmFkZChrKTtiLnVwZGF0ZVF1ZXVlPXR9ZWxzZSBuLmFkZChrKTticmVhayBhfWVsc2V7aWYoMD09PShiJjEpKXtTaShmLGwsYik7dGooKTticmVhayBhfWs9RXJyb3IocCg0MjYpKX19ZWxzZSBpZihJJiZoLm1vZGUmMSl7dmFyIEo9VWkoZyk7aWYobnVsbCE9PUopezA9PT0oSi5mbGFncyY2NTUzNikmJihKLmZsYWdzfD0yNTYpO1ZpKEosZyxoLGYsYik7SmcoSmkoayxoKSk7YnJlYWsgYX19Zj1rPUppKGssaCk7NCE9PVQmJihUPTIpO251bGw9PT1zaz9zaz1bZl06c2sucHVzaChmKTtmPWc7ZG97c3dpdGNoKGYudGFnKXtjYXNlIDM6Zi5mbGFnc3w9NjU1MzY7XG5iJj0tYjtmLmxhbmVzfD1iO3ZhciB4PU5pKGYsayxiKTtwaChmLHgpO2JyZWFrIGE7Y2FzZSAxOmg9azt2YXIgdz1mLnR5cGUsdT1mLnN0YXRlTm9kZTtpZigwPT09KGYuZmxhZ3MmMTI4KSYmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiB3LmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8bnVsbCE9PXUmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiB1LmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PVJpfHwhUmkuaGFzKHUpKSkpe2YuZmxhZ3N8PTY1NTM2O2ImPS1iO2YubGFuZXN8PWI7dmFyIEY9UWkoZixoLGIpO3BoKGYsRik7YnJlYWsgYX19Zj1mLnJldHVybn13aGlsZShudWxsIT09Zil9U2soYyl9Y2F0Y2gobmEpe2I9bmE7WT09PWMmJm51bGwhPT1jJiYoWT1jPWMucmV0dXJuKTtjb250aW51ZX1icmVha313aGlsZSgxKX1mdW5jdGlvbiBKaygpe3ZhciBhPW1rLmN1cnJlbnQ7bWsuY3VycmVudD1SaDtyZXR1cm4gbnVsbD09PWE/Umg6YX1cbmZ1bmN0aW9uIHRqKCl7aWYoMD09PVR8fDM9PT1UfHwyPT09VClUPTQ7bnVsbD09PVF8fDA9PT0ocmgmMjY4NDM1NDU1KSYmMD09PShxayYyNjg0MzU0NTUpfHxDayhRLFopfWZ1bmN0aW9uIElrKGEsYil7dmFyIGM9SztLfD0yO3ZhciBkPUprKCk7aWYoUSE9PWF8fFohPT1iKXVrPW51bGwsS2soYSxiKTtkbyB0cnl7VGsoKTticmVha31jYXRjaChlKXtNayhhLGUpfXdoaWxlKDEpOyRnKCk7Sz1jO21rLmN1cnJlbnQ9ZDtpZihudWxsIT09WSl0aHJvdyBFcnJvcihwKDI2MSkpO1E9bnVsbDtaPTA7cmV0dXJuIFR9ZnVuY3Rpb24gVGsoKXtmb3IoO251bGwhPT1ZOylVayhZKX1mdW5jdGlvbiBMaygpe2Zvcig7bnVsbCE9PVkmJiFjYygpOylVayhZKX1mdW5jdGlvbiBVayhhKXt2YXIgYj1WayhhLmFsdGVybmF0ZSxhLGZqKTthLm1lbW9pemVkUHJvcHM9YS5wZW5kaW5nUHJvcHM7bnVsbD09PWI/U2soYSk6WT1iO25rLmN1cnJlbnQ9bnVsbH1cbmZ1bmN0aW9uIFNrKGEpe3ZhciBiPWE7ZG97dmFyIGM9Yi5hbHRlcm5hdGU7YT1iLnJldHVybjtpZigwPT09KGIuZmxhZ3MmMzI3NjgpKXtpZihjPUVqKGMsYixmaiksbnVsbCE9PWMpe1k9YztyZXR1cm59fWVsc2V7Yz1JaihjLGIpO2lmKG51bGwhPT1jKXtjLmZsYWdzJj0zMjc2NztZPWM7cmV0dXJufWlmKG51bGwhPT1hKWEuZmxhZ3N8PTMyNzY4LGEuc3VidHJlZUZsYWdzPTAsYS5kZWxldGlvbnM9bnVsbDtlbHNle1Q9NjtZPW51bGw7cmV0dXJufX1iPWIuc2libGluZztpZihudWxsIT09Yil7WT1iO3JldHVybn1ZPWI9YX13aGlsZShudWxsIT09Yik7MD09PVQmJihUPTUpfWZ1bmN0aW9uIFBrKGEsYixjKXt2YXIgZD1DLGU9b2sudHJhbnNpdGlvbjt0cnl7b2sudHJhbnNpdGlvbj1udWxsLEM9MSxXayhhLGIsYyxkKX1maW5hbGx5e29rLnRyYW5zaXRpb249ZSxDPWR9cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBXayhhLGIsYyxkKXtkbyBIaygpO3doaWxlKG51bGwhPT13ayk7aWYoMCE9PShLJjYpKXRocm93IEVycm9yKHAoMzI3KSk7Yz1hLmZpbmlzaGVkV29yazt2YXIgZT1hLmZpbmlzaGVkTGFuZXM7aWYobnVsbD09PWMpcmV0dXJuIG51bGw7YS5maW5pc2hlZFdvcms9bnVsbDthLmZpbmlzaGVkTGFuZXM9MDtpZihjPT09YS5jdXJyZW50KXRocm93IEVycm9yKHAoMTc3KSk7YS5jYWxsYmFja05vZGU9bnVsbDthLmNhbGxiYWNrUHJpb3JpdHk9MDt2YXIgZj1jLmxhbmVzfGMuY2hpbGRMYW5lcztCYyhhLGYpO2E9PT1RJiYoWT1RPW51bGwsWj0wKTswPT09KGMuc3VidHJlZUZsYWdzJjIwNjQpJiYwPT09KGMuZmxhZ3MmMjA2NCl8fHZrfHwodms9ITAsRmsoaGMsZnVuY3Rpb24oKXtIaygpO3JldHVybiBudWxsfSkpO2Y9MCE9PShjLmZsYWdzJjE1OTkwKTtpZigwIT09KGMuc3VidHJlZUZsYWdzJjE1OTkwKXx8Zil7Zj1vay50cmFuc2l0aW9uO29rLnRyYW5zaXRpb249bnVsbDtcbnZhciBnPUM7Qz0xO3ZhciBoPUs7S3w9NDtuay5jdXJyZW50PW51bGw7T2ooYSxjKTtkayhjLGEpO09lKERmKTtkZD0hIUNmO0RmPUNmPW51bGw7YS5jdXJyZW50PWM7aGsoYyxhLGUpO2RjKCk7Sz1oO0M9Zztvay50cmFuc2l0aW9uPWZ9ZWxzZSBhLmN1cnJlbnQ9Yzt2ayYmKHZrPSExLHdrPWEseGs9ZSk7Zj1hLnBlbmRpbmdMYW5lczswPT09ZiYmKFJpPW51bGwpO21jKGMuc3RhdGVOb2RlLGQpO0RrKGEsQigpKTtpZihudWxsIT09Yilmb3IoZD1hLm9uUmVjb3ZlcmFibGVFcnJvcixjPTA7YzxiLmxlbmd0aDtjKyspZT1iW2NdLGQoZS52YWx1ZSx7Y29tcG9uZW50U3RhY2s6ZS5zdGFjayxkaWdlc3Q6ZS5kaWdlc3R9KTtpZihPaSl0aHJvdyBPaT0hMSxhPVBpLFBpPW51bGwsYTswIT09KHhrJjEpJiYwIT09YS50YWcmJkhrKCk7Zj1hLnBlbmRpbmdMYW5lczswIT09KGYmMSk/YT09PXprP3lrKys6KHlrPTAsems9YSk6eWs9MDtqZygpO3JldHVybiBudWxsfVxuZnVuY3Rpb24gSGsoKXtpZihudWxsIT09d2spe3ZhciBhPURjKHhrKSxiPW9rLnRyYW5zaXRpb24sYz1DO3RyeXtvay50cmFuc2l0aW9uPW51bGw7Qz0xNj5hPzE2OmE7aWYobnVsbD09PXdrKXZhciBkPSExO2Vsc2V7YT13azt3az1udWxsO3hrPTA7aWYoMCE9PShLJjYpKXRocm93IEVycm9yKHAoMzMxKSk7dmFyIGU9SztLfD00O2ZvcihWPWEuY3VycmVudDtudWxsIT09Vjspe3ZhciBmPVYsZz1mLmNoaWxkO2lmKDAhPT0oVi5mbGFncyYxNikpe3ZhciBoPWYuZGVsZXRpb25zO2lmKG51bGwhPT1oKXtmb3IodmFyIGs9MDtrPGgubGVuZ3RoO2srKyl7dmFyIGw9aFtrXTtmb3IoVj1sO251bGwhPT1WOyl7dmFyIG09Vjtzd2l0Y2gobS50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6UGooOCxtLGYpfXZhciBxPW0uY2hpbGQ7aWYobnVsbCE9PXEpcS5yZXR1cm49bSxWPXE7ZWxzZSBmb3IoO251bGwhPT1WOyl7bT1WO3ZhciByPW0uc2libGluZyx5PW0ucmV0dXJuO1NqKG0pO2lmKG09PT1cbmwpe1Y9bnVsbDticmVha31pZihudWxsIT09cil7ci5yZXR1cm49eTtWPXI7YnJlYWt9Vj15fX19dmFyIG49Zi5hbHRlcm5hdGU7aWYobnVsbCE9PW4pe3ZhciB0PW4uY2hpbGQ7aWYobnVsbCE9PXQpe24uY2hpbGQ9bnVsbDtkb3t2YXIgSj10LnNpYmxpbmc7dC5zaWJsaW5nPW51bGw7dD1KfXdoaWxlKG51bGwhPT10KX19Vj1mfX1pZigwIT09KGYuc3VidHJlZUZsYWdzJjIwNjQpJiZudWxsIT09ZylnLnJldHVybj1mLFY9ZztlbHNlIGI6Zm9yKDtudWxsIT09Vjspe2Y9VjtpZigwIT09KGYuZmxhZ3MmMjA0OCkpc3dpdGNoKGYudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OlBqKDksZixmLnJldHVybil9dmFyIHg9Zi5zaWJsaW5nO2lmKG51bGwhPT14KXt4LnJldHVybj1mLnJldHVybjtWPXg7YnJlYWsgYn1WPWYucmV0dXJufX12YXIgdz1hLmN1cnJlbnQ7Zm9yKFY9dztudWxsIT09Vjspe2c9Vjt2YXIgdT1nLmNoaWxkO2lmKDAhPT0oZy5zdWJ0cmVlRmxhZ3MmMjA2NCkmJm51bGwhPT1cbnUpdS5yZXR1cm49ZyxWPXU7ZWxzZSBiOmZvcihnPXc7bnVsbCE9PVY7KXtoPVY7aWYoMCE9PShoLmZsYWdzJjIwNDgpKXRyeXtzd2l0Y2goaC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6UWooOSxoKX19Y2F0Y2gobmEpe1coaCxoLnJldHVybixuYSl9aWYoaD09PWcpe1Y9bnVsbDticmVhayBifXZhciBGPWguc2libGluZztpZihudWxsIT09Ril7Ri5yZXR1cm49aC5yZXR1cm47Vj1GO2JyZWFrIGJ9Vj1oLnJldHVybn19Sz1lO2pnKCk7aWYobGMmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBsYy5vblBvc3RDb21taXRGaWJlclJvb3QpdHJ5e2xjLm9uUG9zdENvbW1pdEZpYmVyUm9vdChrYyxhKX1jYXRjaChuYSl7fWQ9ITB9cmV0dXJuIGR9ZmluYWxseXtDPWMsb2sudHJhbnNpdGlvbj1ifX1yZXR1cm4hMX1mdW5jdGlvbiBYayhhLGIsYyl7Yj1KaShjLGIpO2I9TmkoYSxiLDEpO2E9bmgoYSxiLDEpO2I9UigpO251bGwhPT1hJiYoQWMoYSwxLGIpLERrKGEsYikpfVxuZnVuY3Rpb24gVyhhLGIsYyl7aWYoMz09PWEudGFnKVhrKGEsYSxjKTtlbHNlIGZvcig7bnVsbCE9PWI7KXtpZigzPT09Yi50YWcpe1hrKGIsYSxjKTticmVha31lbHNlIGlmKDE9PT1iLnRhZyl7dmFyIGQ9Yi5zdGF0ZU5vZGU7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGIudHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3J8fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PVJpfHwhUmkuaGFzKGQpKSl7YT1KaShjLGEpO2E9UWkoYixhLDEpO2I9bmgoYixhLDEpO2E9UigpO251bGwhPT1iJiYoQWMoYiwxLGEpLERrKGIsYSkpO2JyZWFrfX1iPWIucmV0dXJufX1cbmZ1bmN0aW9uIFRpKGEsYixjKXt2YXIgZD1hLnBpbmdDYWNoZTtudWxsIT09ZCYmZC5kZWxldGUoYik7Yj1SKCk7YS5waW5nZWRMYW5lc3w9YS5zdXNwZW5kZWRMYW5lcyZjO1E9PT1hJiYoWiZjKT09PWMmJig0PT09VHx8Mz09PVQmJihaJjEzMDAyMzQyNCk9PT1aJiY1MDA+QigpLWZrP0trKGEsMCk6cmt8PWMpO0RrKGEsYil9ZnVuY3Rpb24gWWsoYSxiKXswPT09YiYmKDA9PT0oYS5tb2RlJjEpP2I9MTooYj1zYyxzYzw8PTEsMD09PShzYyYxMzAwMjM0MjQpJiYoc2M9NDE5NDMwNCkpKTt2YXIgYz1SKCk7YT1paChhLGIpO251bGwhPT1hJiYoQWMoYSxiLGMpLERrKGEsYykpfWZ1bmN0aW9uIHVqKGEpe3ZhciBiPWEubWVtb2l6ZWRTdGF0ZSxjPTA7bnVsbCE9PWImJihjPWIucmV0cnlMYW5lKTtZayhhLGMpfVxuZnVuY3Rpb24gYmsoYSxiKXt2YXIgYz0wO3N3aXRjaChhLnRhZyl7Y2FzZSAxMzp2YXIgZD1hLnN0YXRlTm9kZTt2YXIgZT1hLm1lbW9pemVkU3RhdGU7bnVsbCE9PWUmJihjPWUucmV0cnlMYW5lKTticmVhaztjYXNlIDE5OmQ9YS5zdGF0ZU5vZGU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihwKDMxNCkpO31udWxsIT09ZCYmZC5kZWxldGUoYik7WWsoYSxjKX12YXIgVms7XG5Waz1mdW5jdGlvbihhLGIsYyl7aWYobnVsbCE9PWEpaWYoYS5tZW1vaXplZFByb3BzIT09Yi5wZW5kaW5nUHJvcHN8fFdmLmN1cnJlbnQpZGg9ITA7ZWxzZXtpZigwPT09KGEubGFuZXMmYykmJjA9PT0oYi5mbGFncyYxMjgpKXJldHVybiBkaD0hMSx5aihhLGIsYyk7ZGg9MCE9PShhLmZsYWdzJjEzMTA3Mik/ITA6ITF9ZWxzZSBkaD0hMSxJJiYwIT09KGIuZmxhZ3MmMTA0ODU3NikmJnVnKGIsbmcsYi5pbmRleCk7Yi5sYW5lcz0wO3N3aXRjaChiLnRhZyl7Y2FzZSAyOnZhciBkPWIudHlwZTtpaihhLGIpO2E9Yi5wZW5kaW5nUHJvcHM7dmFyIGU9WWYoYixILmN1cnJlbnQpO2NoKGIsYyk7ZT1OaChudWxsLGIsZCxhLGUsYyk7dmFyIGY9U2goKTtiLmZsYWdzfD0xO1wib2JqZWN0XCI9PT10eXBlb2YgZSYmbnVsbCE9PWUmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLnJlbmRlciYmdm9pZCAwPT09ZS4kJHR5cGVvZj8oYi50YWc9MSxiLm1lbW9pemVkU3RhdGU9bnVsbCxiLnVwZGF0ZVF1ZXVlPVxubnVsbCxaZihkKT8oZj0hMCxjZyhiKSk6Zj0hMSxiLm1lbW9pemVkU3RhdGU9bnVsbCE9PWUuc3RhdGUmJnZvaWQgMCE9PWUuc3RhdGU/ZS5zdGF0ZTpudWxsLGtoKGIpLGUudXBkYXRlcj1FaSxiLnN0YXRlTm9kZT1lLGUuX3JlYWN0SW50ZXJuYWxzPWIsSWkoYixkLGEsYyksYj1qaihudWxsLGIsZCwhMCxmLGMpKTooYi50YWc9MCxJJiZmJiZ2ZyhiKSxYaShudWxsLGIsZSxjKSxiPWIuY2hpbGQpO3JldHVybiBiO2Nhc2UgMTY6ZD1iLmVsZW1lbnRUeXBlO2E6e2lqKGEsYik7YT1iLnBlbmRpbmdQcm9wcztlPWQuX2luaXQ7ZD1lKGQuX3BheWxvYWQpO2IudHlwZT1kO2U9Yi50YWc9WmsoZCk7YT1DaShkLGEpO3N3aXRjaChlKXtjYXNlIDA6Yj1jaihudWxsLGIsZCxhLGMpO2JyZWFrIGE7Y2FzZSAxOmI9aGoobnVsbCxiLGQsYSxjKTticmVhayBhO2Nhc2UgMTE6Yj1ZaShudWxsLGIsZCxhLGMpO2JyZWFrIGE7Y2FzZSAxNDpiPSRpKG51bGwsYixkLENpKGQudHlwZSxhKSxjKTticmVhayBhfXRocm93IEVycm9yKHAoMzA2LFxuZCxcIlwiKSk7fXJldHVybiBiO2Nhc2UgMDpyZXR1cm4gZD1iLnR5cGUsZT1iLnBlbmRpbmdQcm9wcyxlPWIuZWxlbWVudFR5cGU9PT1kP2U6Q2koZCxlKSxjaihhLGIsZCxlLGMpO2Nhc2UgMTpyZXR1cm4gZD1iLnR5cGUsZT1iLnBlbmRpbmdQcm9wcyxlPWIuZWxlbWVudFR5cGU9PT1kP2U6Q2koZCxlKSxoaihhLGIsZCxlLGMpO2Nhc2UgMzphOntraihiKTtpZihudWxsPT09YSl0aHJvdyBFcnJvcihwKDM4NykpO2Q9Yi5wZW5kaW5nUHJvcHM7Zj1iLm1lbW9pemVkU3RhdGU7ZT1mLmVsZW1lbnQ7bGgoYSxiKTtxaChiLGQsbnVsbCxjKTt2YXIgZz1iLm1lbW9pemVkU3RhdGU7ZD1nLmVsZW1lbnQ7aWYoZi5pc0RlaHlkcmF0ZWQpaWYoZj17ZWxlbWVudDpkLGlzRGVoeWRyYXRlZDohMSxjYWNoZTpnLmNhY2hlLHBlbmRpbmdTdXNwZW5zZUJvdW5kYXJpZXM6Zy5wZW5kaW5nU3VzcGVuc2VCb3VuZGFyaWVzLHRyYW5zaXRpb25zOmcudHJhbnNpdGlvbnN9LGIudXBkYXRlUXVldWUuYmFzZVN0YXRlPVxuZixiLm1lbW9pemVkU3RhdGU9ZixiLmZsYWdzJjI1Nil7ZT1KaShFcnJvcihwKDQyMykpLGIpO2I9bGooYSxiLGQsYyxlKTticmVhayBhfWVsc2UgaWYoZCE9PWUpe2U9SmkoRXJyb3IocCg0MjQpKSxiKTtiPWxqKGEsYixkLGMsZSk7YnJlYWsgYX1lbHNlIGZvcih5Zz1MZihiLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLmZpcnN0Q2hpbGQpLHhnPWIsST0hMCx6Zz1udWxsLGM9VmcoYixudWxsLGQsYyksYi5jaGlsZD1jO2M7KWMuZmxhZ3M9Yy5mbGFncyYtM3w0MDk2LGM9Yy5zaWJsaW5nO2Vsc2V7SWcoKTtpZihkPT09ZSl7Yj1aaShhLGIsYyk7YnJlYWsgYX1YaShhLGIsZCxjKX1iPWIuY2hpbGR9cmV0dXJuIGI7Y2FzZSA1OnJldHVybiBBaChiKSxudWxsPT09YSYmRWcoYiksZD1iLnR5cGUsZT1iLnBlbmRpbmdQcm9wcyxmPW51bGwhPT1hP2EubWVtb2l6ZWRQcm9wczpudWxsLGc9ZS5jaGlsZHJlbixFZihkLGUpP2c9bnVsbDpudWxsIT09ZiYmRWYoZCxmKSYmKGIuZmxhZ3N8PTMyKSxcbmdqKGEsYiksWGkoYSxiLGcsYyksYi5jaGlsZDtjYXNlIDY6cmV0dXJuIG51bGw9PT1hJiZFZyhiKSxudWxsO2Nhc2UgMTM6cmV0dXJuIG9qKGEsYixjKTtjYXNlIDQ6cmV0dXJuIHloKGIsYi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksZD1iLnBlbmRpbmdQcm9wcyxudWxsPT09YT9iLmNoaWxkPVVnKGIsbnVsbCxkLGMpOlhpKGEsYixkLGMpLGIuY2hpbGQ7Y2FzZSAxMTpyZXR1cm4gZD1iLnR5cGUsZT1iLnBlbmRpbmdQcm9wcyxlPWIuZWxlbWVudFR5cGU9PT1kP2U6Q2koZCxlKSxZaShhLGIsZCxlLGMpO2Nhc2UgNzpyZXR1cm4gWGkoYSxiLGIucGVuZGluZ1Byb3BzLGMpLGIuY2hpbGQ7Y2FzZSA4OnJldHVybiBYaShhLGIsYi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sYyksYi5jaGlsZDtjYXNlIDEyOnJldHVybiBYaShhLGIsYi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sYyksYi5jaGlsZDtjYXNlIDEwOmE6e2Q9Yi50eXBlLl9jb250ZXh0O2U9Yi5wZW5kaW5nUHJvcHM7Zj1iLm1lbW9pemVkUHJvcHM7XG5nPWUudmFsdWU7RyhXZyxkLl9jdXJyZW50VmFsdWUpO2QuX2N1cnJlbnRWYWx1ZT1nO2lmKG51bGwhPT1mKWlmKEhlKGYudmFsdWUsZykpe2lmKGYuY2hpbGRyZW49PT1lLmNoaWxkcmVuJiYhV2YuY3VycmVudCl7Yj1aaShhLGIsYyk7YnJlYWsgYX19ZWxzZSBmb3IoZj1iLmNoaWxkLG51bGwhPT1mJiYoZi5yZXR1cm49Yik7bnVsbCE9PWY7KXt2YXIgaD1mLmRlcGVuZGVuY2llcztpZihudWxsIT09aCl7Zz1mLmNoaWxkO2Zvcih2YXIgaz1oLmZpcnN0Q29udGV4dDtudWxsIT09azspe2lmKGsuY29udGV4dD09PWQpe2lmKDE9PT1mLnRhZyl7az1taCgtMSxjJi1jKTtrLnRhZz0yO3ZhciBsPWYudXBkYXRlUXVldWU7aWYobnVsbCE9PWwpe2w9bC5zaGFyZWQ7dmFyIG09bC5wZW5kaW5nO251bGw9PT1tP2submV4dD1rOihrLm5leHQ9bS5uZXh0LG0ubmV4dD1rKTtsLnBlbmRpbmc9a319Zi5sYW5lc3w9YztrPWYuYWx0ZXJuYXRlO251bGwhPT1rJiYoay5sYW5lc3w9Yyk7YmgoZi5yZXR1cm4sXG5jLGIpO2gubGFuZXN8PWM7YnJlYWt9az1rLm5leHR9fWVsc2UgaWYoMTA9PT1mLnRhZylnPWYudHlwZT09PWIudHlwZT9udWxsOmYuY2hpbGQ7ZWxzZSBpZigxOD09PWYudGFnKXtnPWYucmV0dXJuO2lmKG51bGw9PT1nKXRocm93IEVycm9yKHAoMzQxKSk7Zy5sYW5lc3w9YztoPWcuYWx0ZXJuYXRlO251bGwhPT1oJiYoaC5sYW5lc3w9Yyk7YmgoZyxjLGIpO2c9Zi5zaWJsaW5nfWVsc2UgZz1mLmNoaWxkO2lmKG51bGwhPT1nKWcucmV0dXJuPWY7ZWxzZSBmb3IoZz1mO251bGwhPT1nOyl7aWYoZz09PWIpe2c9bnVsbDticmVha31mPWcuc2libGluZztpZihudWxsIT09Zil7Zi5yZXR1cm49Zy5yZXR1cm47Zz1mO2JyZWFrfWc9Zy5yZXR1cm59Zj1nfVhpKGEsYixlLmNoaWxkcmVuLGMpO2I9Yi5jaGlsZH1yZXR1cm4gYjtjYXNlIDk6cmV0dXJuIGU9Yi50eXBlLGQ9Yi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sY2goYixjKSxlPWVoKGUpLGQ9ZChlKSxiLmZsYWdzfD0xLFhpKGEsYixkLGMpLFxuYi5jaGlsZDtjYXNlIDE0OnJldHVybiBkPWIudHlwZSxlPUNpKGQsYi5wZW5kaW5nUHJvcHMpLGU9Q2koZC50eXBlLGUpLCRpKGEsYixkLGUsYyk7Y2FzZSAxNTpyZXR1cm4gYmooYSxiLGIudHlwZSxiLnBlbmRpbmdQcm9wcyxjKTtjYXNlIDE3OnJldHVybiBkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGU9Yi5lbGVtZW50VHlwZT09PWQ/ZTpDaShkLGUpLGlqKGEsYiksYi50YWc9MSxaZihkKT8oYT0hMCxjZyhiKSk6YT0hMSxjaChiLGMpLEdpKGIsZCxlKSxJaShiLGQsZSxjKSxqaihudWxsLGIsZCwhMCxhLGMpO2Nhc2UgMTk6cmV0dXJuIHhqKGEsYixjKTtjYXNlIDIyOnJldHVybiBkaihhLGIsYyl9dGhyb3cgRXJyb3IocCgxNTYsYi50YWcpKTt9O2Z1bmN0aW9uIEZrKGEsYil7cmV0dXJuIGFjKGEsYil9XG5mdW5jdGlvbiAkayhhLGIsYyxkKXt0aGlzLnRhZz1hO3RoaXMua2V5PWM7dGhpcy5zaWJsaW5nPXRoaXMuY2hpbGQ9dGhpcy5yZXR1cm49dGhpcy5zdGF0ZU5vZGU9dGhpcy50eXBlPXRoaXMuZWxlbWVudFR5cGU9bnVsbDt0aGlzLmluZGV4PTA7dGhpcy5yZWY9bnVsbDt0aGlzLnBlbmRpbmdQcm9wcz1iO3RoaXMuZGVwZW5kZW5jaWVzPXRoaXMubWVtb2l6ZWRTdGF0ZT10aGlzLnVwZGF0ZVF1ZXVlPXRoaXMubWVtb2l6ZWRQcm9wcz1udWxsO3RoaXMubW9kZT1kO3RoaXMuc3VidHJlZUZsYWdzPXRoaXMuZmxhZ3M9MDt0aGlzLmRlbGV0aW9ucz1udWxsO3RoaXMuY2hpbGRMYW5lcz10aGlzLmxhbmVzPTA7dGhpcy5hbHRlcm5hdGU9bnVsbH1mdW5jdGlvbiBCZyhhLGIsYyxkKXtyZXR1cm4gbmV3ICRrKGEsYixjLGQpfWZ1bmN0aW9uIGFqKGEpe2E9YS5wcm90b3R5cGU7cmV0dXJuISghYXx8IWEuaXNSZWFjdENvbXBvbmVudCl9XG5mdW5jdGlvbiBaayhhKXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSlyZXR1cm4gYWooYSk/MTowO2lmKHZvaWQgMCE9PWEmJm51bGwhPT1hKXthPWEuJCR0eXBlb2Y7aWYoYT09PURhKXJldHVybiAxMTtpZihhPT09R2EpcmV0dXJuIDE0fXJldHVybiAyfVxuZnVuY3Rpb24gUGcoYSxiKXt2YXIgYz1hLmFsdGVybmF0ZTtudWxsPT09Yz8oYz1CZyhhLnRhZyxiLGEua2V5LGEubW9kZSksYy5lbGVtZW50VHlwZT1hLmVsZW1lbnRUeXBlLGMudHlwZT1hLnR5cGUsYy5zdGF0ZU5vZGU9YS5zdGF0ZU5vZGUsYy5hbHRlcm5hdGU9YSxhLmFsdGVybmF0ZT1jKTooYy5wZW5kaW5nUHJvcHM9YixjLnR5cGU9YS50eXBlLGMuZmxhZ3M9MCxjLnN1YnRyZWVGbGFncz0wLGMuZGVsZXRpb25zPW51bGwpO2MuZmxhZ3M9YS5mbGFncyYxNDY4MDA2NDtjLmNoaWxkTGFuZXM9YS5jaGlsZExhbmVzO2MubGFuZXM9YS5sYW5lcztjLmNoaWxkPWEuY2hpbGQ7Yy5tZW1vaXplZFByb3BzPWEubWVtb2l6ZWRQcm9wcztjLm1lbW9pemVkU3RhdGU9YS5tZW1vaXplZFN0YXRlO2MudXBkYXRlUXVldWU9YS51cGRhdGVRdWV1ZTtiPWEuZGVwZW5kZW5jaWVzO2MuZGVwZW5kZW5jaWVzPW51bGw9PT1iP251bGw6e2xhbmVzOmIubGFuZXMsZmlyc3RDb250ZXh0OmIuZmlyc3RDb250ZXh0fTtcbmMuc2libGluZz1hLnNpYmxpbmc7Yy5pbmRleD1hLmluZGV4O2MucmVmPWEucmVmO3JldHVybiBjfVxuZnVuY3Rpb24gUmcoYSxiLGMsZCxlLGYpe3ZhciBnPTI7ZD1hO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhKWFqKGEpJiYoZz0xKTtlbHNlIGlmKFwic3RyaW5nXCI9PT10eXBlb2YgYSlnPTU7ZWxzZSBhOnN3aXRjaChhKXtjYXNlIHlhOnJldHVybiBUZyhjLmNoaWxkcmVuLGUsZixiKTtjYXNlIHphOmc9ODtlfD04O2JyZWFrO2Nhc2UgQWE6cmV0dXJuIGE9QmcoMTIsYyxiLGV8MiksYS5lbGVtZW50VHlwZT1BYSxhLmxhbmVzPWYsYTtjYXNlIEVhOnJldHVybiBhPUJnKDEzLGMsYixlKSxhLmVsZW1lbnRUeXBlPUVhLGEubGFuZXM9ZixhO2Nhc2UgRmE6cmV0dXJuIGE9QmcoMTksYyxiLGUpLGEuZWxlbWVudFR5cGU9RmEsYS5sYW5lcz1mLGE7Y2FzZSBJYTpyZXR1cm4gcGooYyxlLGYsYik7ZGVmYXVsdDppZihcIm9iamVjdFwiPT09dHlwZW9mIGEmJm51bGwhPT1hKXN3aXRjaChhLiQkdHlwZW9mKXtjYXNlIEJhOmc9MTA7YnJlYWsgYTtjYXNlIENhOmc9OTticmVhayBhO2Nhc2UgRGE6Zz0xMTtcbmJyZWFrIGE7Y2FzZSBHYTpnPTE0O2JyZWFrIGE7Y2FzZSBIYTpnPTE2O2Q9bnVsbDticmVhayBhfXRocm93IEVycm9yKHAoMTMwLG51bGw9PWE/YTp0eXBlb2YgYSxcIlwiKSk7fWI9QmcoZyxjLGIsZSk7Yi5lbGVtZW50VHlwZT1hO2IudHlwZT1kO2IubGFuZXM9ZjtyZXR1cm4gYn1mdW5jdGlvbiBUZyhhLGIsYyxkKXthPUJnKDcsYSxkLGIpO2EubGFuZXM9YztyZXR1cm4gYX1mdW5jdGlvbiBwaihhLGIsYyxkKXthPUJnKDIyLGEsZCxiKTthLmVsZW1lbnRUeXBlPUlhO2EubGFuZXM9YzthLnN0YXRlTm9kZT17aXNIaWRkZW46ITF9O3JldHVybiBhfWZ1bmN0aW9uIFFnKGEsYixjKXthPUJnKDYsYSxudWxsLGIpO2EubGFuZXM9YztyZXR1cm4gYX1cbmZ1bmN0aW9uIFNnKGEsYixjKXtiPUJnKDQsbnVsbCE9PWEuY2hpbGRyZW4/YS5jaGlsZHJlbjpbXSxhLmtleSxiKTtiLmxhbmVzPWM7Yi5zdGF0ZU5vZGU9e2NvbnRhaW5lckluZm86YS5jb250YWluZXJJbmZvLHBlbmRpbmdDaGlsZHJlbjpudWxsLGltcGxlbWVudGF0aW9uOmEuaW1wbGVtZW50YXRpb259O3JldHVybiBifVxuZnVuY3Rpb24gYWwoYSxiLGMsZCxlKXt0aGlzLnRhZz1iO3RoaXMuY29udGFpbmVySW5mbz1hO3RoaXMuZmluaXNoZWRXb3JrPXRoaXMucGluZ0NhY2hlPXRoaXMuY3VycmVudD10aGlzLnBlbmRpbmdDaGlsZHJlbj1udWxsO3RoaXMudGltZW91dEhhbmRsZT0tMTt0aGlzLmNhbGxiYWNrTm9kZT10aGlzLnBlbmRpbmdDb250ZXh0PXRoaXMuY29udGV4dD1udWxsO3RoaXMuY2FsbGJhY2tQcmlvcml0eT0wO3RoaXMuZXZlbnRUaW1lcz16YygwKTt0aGlzLmV4cGlyYXRpb25UaW1lcz16YygtMSk7dGhpcy5lbnRhbmdsZWRMYW5lcz10aGlzLmZpbmlzaGVkTGFuZXM9dGhpcy5tdXRhYmxlUmVhZExhbmVzPXRoaXMuZXhwaXJlZExhbmVzPXRoaXMucGluZ2VkTGFuZXM9dGhpcy5zdXNwZW5kZWRMYW5lcz10aGlzLnBlbmRpbmdMYW5lcz0wO3RoaXMuZW50YW5nbGVtZW50cz16YygwKTt0aGlzLmlkZW50aWZpZXJQcmVmaXg9ZDt0aGlzLm9uUmVjb3ZlcmFibGVFcnJvcj1lO3RoaXMubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YT1cbm51bGx9ZnVuY3Rpb24gYmwoYSxiLGMsZCxlLGYsZyxoLGspe2E9bmV3IGFsKGEsYixjLGgsayk7MT09PWI/KGI9MSwhMD09PWYmJihifD04KSk6Yj0wO2Y9QmcoMyxudWxsLG51bGwsYik7YS5jdXJyZW50PWY7Zi5zdGF0ZU5vZGU9YTtmLm1lbW9pemVkU3RhdGU9e2VsZW1lbnQ6ZCxpc0RlaHlkcmF0ZWQ6YyxjYWNoZTpudWxsLHRyYW5zaXRpb25zOm51bGwscGVuZGluZ1N1c3BlbnNlQm91bmRhcmllczpudWxsfTtraChmKTtyZXR1cm4gYX1mdW5jdGlvbiBjbChhLGIsYyl7dmFyIGQ9Mzxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOm51bGw7cmV0dXJueyQkdHlwZW9mOndhLGtleTpudWxsPT1kP251bGw6XCJcIitkLGNoaWxkcmVuOmEsY29udGFpbmVySW5mbzpiLGltcGxlbWVudGF0aW9uOmN9fVxuZnVuY3Rpb24gZGwoYSl7aWYoIWEpcmV0dXJuIFZmO2E9YS5fcmVhY3RJbnRlcm5hbHM7YTp7aWYoVmIoYSkhPT1hfHwxIT09YS50YWcpdGhyb3cgRXJyb3IocCgxNzApKTt2YXIgYj1hO2Rve3N3aXRjaChiLnRhZyl7Y2FzZSAzOmI9Yi5zdGF0ZU5vZGUuY29udGV4dDticmVhayBhO2Nhc2UgMTppZihaZihiLnR5cGUpKXtiPWIuc3RhdGVOb2RlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0O2JyZWFrIGF9fWI9Yi5yZXR1cm59d2hpbGUobnVsbCE9PWIpO3Rocm93IEVycm9yKHAoMTcxKSk7fWlmKDE9PT1hLnRhZyl7dmFyIGM9YS50eXBlO2lmKFpmKGMpKXJldHVybiBiZyhhLGMsYil9cmV0dXJuIGJ9XG5mdW5jdGlvbiBlbChhLGIsYyxkLGUsZixnLGgsayl7YT1ibChjLGQsITAsYSxlLGYsZyxoLGspO2EuY29udGV4dD1kbChudWxsKTtjPWEuY3VycmVudDtkPVIoKTtlPXlpKGMpO2Y9bWgoZCxlKTtmLmNhbGxiYWNrPXZvaWQgMCE9PWImJm51bGwhPT1iP2I6bnVsbDtuaChjLGYsZSk7YS5jdXJyZW50LmxhbmVzPWU7QWMoYSxlLGQpO0RrKGEsZCk7cmV0dXJuIGF9ZnVuY3Rpb24gZmwoYSxiLGMsZCl7dmFyIGU9Yi5jdXJyZW50LGY9UigpLGc9eWkoZSk7Yz1kbChjKTtudWxsPT09Yi5jb250ZXh0P2IuY29udGV4dD1jOmIucGVuZGluZ0NvbnRleHQ9YztiPW1oKGYsZyk7Yi5wYXlsb2FkPXtlbGVtZW50OmF9O2Q9dm9pZCAwPT09ZD9udWxsOmQ7bnVsbCE9PWQmJihiLmNhbGxiYWNrPWQpO2E9bmgoZSxiLGcpO251bGwhPT1hJiYoZ2koYSxlLGcsZiksb2goYSxlLGcpKTtyZXR1cm4gZ31cbmZ1bmN0aW9uIGdsKGEpe2E9YS5jdXJyZW50O2lmKCFhLmNoaWxkKXJldHVybiBudWxsO3N3aXRjaChhLmNoaWxkLnRhZyl7Y2FzZSA1OnJldHVybiBhLmNoaWxkLnN0YXRlTm9kZTtkZWZhdWx0OnJldHVybiBhLmNoaWxkLnN0YXRlTm9kZX19ZnVuY3Rpb24gaGwoYSxiKXthPWEubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09YSYmbnVsbCE9PWEuZGVoeWRyYXRlZCl7dmFyIGM9YS5yZXRyeUxhbmU7YS5yZXRyeUxhbmU9MCE9PWMmJmM8Yj9jOmJ9fWZ1bmN0aW9uIGlsKGEsYil7aGwoYSxiKTsoYT1hLmFsdGVybmF0ZSkmJmhsKGEsYil9ZnVuY3Rpb24gamwoKXtyZXR1cm4gbnVsbH12YXIga2w9XCJmdW5jdGlvblwiPT09dHlwZW9mIHJlcG9ydEVycm9yP3JlcG9ydEVycm9yOmZ1bmN0aW9uKGEpe2NvbnNvbGUuZXJyb3IoYSl9O2Z1bmN0aW9uIGxsKGEpe3RoaXMuX2ludGVybmFsUm9vdD1hfVxubWwucHJvdG90eXBlLnJlbmRlcj1sbC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuX2ludGVybmFsUm9vdDtpZihudWxsPT09Yil0aHJvdyBFcnJvcihwKDQwOSkpO2ZsKGEsYixudWxsLG51bGwpfTttbC5wcm90b3R5cGUudW5tb3VudD1sbC5wcm90b3R5cGUudW5tb3VudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuX2ludGVybmFsUm9vdDtpZihudWxsIT09YSl7dGhpcy5faW50ZXJuYWxSb290PW51bGw7dmFyIGI9YS5jb250YWluZXJJbmZvO1JrKGZ1bmN0aW9uKCl7ZmwobnVsbCxhLG51bGwsbnVsbCl9KTtiW3VmXT1udWxsfX07ZnVuY3Rpb24gbWwoYSl7dGhpcy5faW50ZXJuYWxSb290PWF9XG5tbC5wcm90b3R5cGUudW5zdGFibGVfc2NoZWR1bGVIeWRyYXRpb249ZnVuY3Rpb24oYSl7aWYoYSl7dmFyIGI9SGMoKTthPXtibG9ja2VkT246bnVsbCx0YXJnZXQ6YSxwcmlvcml0eTpifTtmb3IodmFyIGM9MDtjPFFjLmxlbmd0aCYmMCE9PWImJmI8UWNbY10ucHJpb3JpdHk7YysrKTtRYy5zcGxpY2UoYywwLGEpOzA9PT1jJiZWYyhhKX19O2Z1bmN0aW9uIG5sKGEpe3JldHVybiEoIWF8fDEhPT1hLm5vZGVUeXBlJiY5IT09YS5ub2RlVHlwZSYmMTEhPT1hLm5vZGVUeXBlKX1mdW5jdGlvbiBvbChhKXtyZXR1cm4hKCFhfHwxIT09YS5ub2RlVHlwZSYmOSE9PWEubm9kZVR5cGUmJjExIT09YS5ub2RlVHlwZSYmKDghPT1hLm5vZGVUeXBlfHxcIiByZWFjdC1tb3VudC1wb2ludC11bnN0YWJsZSBcIiE9PWEubm9kZVZhbHVlKSl9ZnVuY3Rpb24gcGwoKXt9XG5mdW5jdGlvbiBxbChhLGIsYyxkLGUpe2lmKGUpe2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkKXt2YXIgZj1kO2Q9ZnVuY3Rpb24oKXt2YXIgYT1nbChnKTtmLmNhbGwoYSl9fXZhciBnPWVsKGIsZCxhLDAsbnVsbCwhMSwhMSxcIlwiLHBsKTthLl9yZWFjdFJvb3RDb250YWluZXI9ZzthW3VmXT1nLmN1cnJlbnQ7c2YoOD09PWEubm9kZVR5cGU/YS5wYXJlbnROb2RlOmEpO1JrKCk7cmV0dXJuIGd9Zm9yKDtlPWEubGFzdENoaWxkOylhLnJlbW92ZUNoaWxkKGUpO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkKXt2YXIgaD1kO2Q9ZnVuY3Rpb24oKXt2YXIgYT1nbChrKTtoLmNhbGwoYSl9fXZhciBrPWJsKGEsMCwhMSxudWxsLG51bGwsITEsITEsXCJcIixwbCk7YS5fcmVhY3RSb290Q29udGFpbmVyPWs7YVt1Zl09ay5jdXJyZW50O3NmKDg9PT1hLm5vZGVUeXBlP2EucGFyZW50Tm9kZTphKTtSayhmdW5jdGlvbigpe2ZsKGIsayxjLGQpfSk7cmV0dXJuIGt9XG5mdW5jdGlvbiBybChhLGIsYyxkLGUpe3ZhciBmPWMuX3JlYWN0Um9vdENvbnRhaW5lcjtpZihmKXt2YXIgZz1mO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlKXt2YXIgaD1lO2U9ZnVuY3Rpb24oKXt2YXIgYT1nbChnKTtoLmNhbGwoYSl9fWZsKGIsZyxhLGUpfWVsc2UgZz1xbChjLGIsYSxlLGQpO3JldHVybiBnbChnKX1FYz1mdW5jdGlvbihhKXtzd2l0Y2goYS50YWcpe2Nhc2UgMzp2YXIgYj1hLnN0YXRlTm9kZTtpZihiLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpe3ZhciBjPXRjKGIucGVuZGluZ0xhbmVzKTswIT09YyYmKENjKGIsY3wxKSxEayhiLEIoKSksMD09PShLJjYpJiYoR2o9QigpKzUwMCxqZygpKSl9YnJlYWs7Y2FzZSAxMzpSayhmdW5jdGlvbigpe3ZhciBiPWloKGEsMSk7aWYobnVsbCE9PWIpe3ZhciBjPVIoKTtnaShiLGEsMSxjKX19KSxpbChhLDEpfX07XG5GYz1mdW5jdGlvbihhKXtpZigxMz09PWEudGFnKXt2YXIgYj1paChhLDEzNDIxNzcyOCk7aWYobnVsbCE9PWIpe3ZhciBjPVIoKTtnaShiLGEsMTM0MjE3NzI4LGMpfWlsKGEsMTM0MjE3NzI4KX19O0djPWZ1bmN0aW9uKGEpe2lmKDEzPT09YS50YWcpe3ZhciBiPXlpKGEpLGM9aWgoYSxiKTtpZihudWxsIT09Yyl7dmFyIGQ9UigpO2dpKGMsYSxiLGQpfWlsKGEsYil9fTtIYz1mdW5jdGlvbigpe3JldHVybiBDfTtJYz1mdW5jdGlvbihhLGIpe3ZhciBjPUM7dHJ5e3JldHVybiBDPWEsYigpfWZpbmFsbHl7Qz1jfX07XG55Yj1mdW5jdGlvbihhLGIsYyl7c3dpdGNoKGIpe2Nhc2UgXCJpbnB1dFwiOmJiKGEsYyk7Yj1jLm5hbWU7aWYoXCJyYWRpb1wiPT09Yy50eXBlJiZudWxsIT1iKXtmb3IoYz1hO2MucGFyZW50Tm9kZTspYz1jLnBhcmVudE5vZGU7Yz1jLnF1ZXJ5U2VsZWN0b3JBbGwoXCJpbnB1dFtuYW1lPVwiK0pTT04uc3RyaW5naWZ5KFwiXCIrYikrJ11bdHlwZT1cInJhZGlvXCJdJyk7Zm9yKGI9MDtiPGMubGVuZ3RoO2IrKyl7dmFyIGQ9Y1tiXTtpZihkIT09YSYmZC5mb3JtPT09YS5mb3JtKXt2YXIgZT1EYihkKTtpZighZSl0aHJvdyBFcnJvcihwKDkwKSk7V2EoZCk7YmIoZCxlKX19fWJyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmliKGEsYyk7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmI9Yy52YWx1ZSxudWxsIT1iJiZmYihhLCEhYy5tdWx0aXBsZSxiLCExKX19O0diPVFrO0hiPVJrO1xudmFyIHNsPXt1c2luZ0NsaWVudEVudHJ5UG9pbnQ6ITEsRXZlbnRzOltDYix1ZSxEYixFYixGYixRa119LHRsPXtmaW5kRmliZXJCeUhvc3RJbnN0YW5jZTpXYyxidW5kbGVUeXBlOjAsdmVyc2lvbjpcIjE4LjMuMVwiLHJlbmRlcmVyUGFja2FnZU5hbWU6XCJyZWFjdC1kb21cIn07XG52YXIgdWw9e2J1bmRsZVR5cGU6dGwuYnVuZGxlVHlwZSx2ZXJzaW9uOnRsLnZlcnNpb24scmVuZGVyZXJQYWNrYWdlTmFtZTp0bC5yZW5kZXJlclBhY2thZ2VOYW1lLHJlbmRlcmVyQ29uZmlnOnRsLnJlbmRlcmVyQ29uZmlnLG92ZXJyaWRlSG9va1N0YXRlOm51bGwsb3ZlcnJpZGVIb29rU3RhdGVEZWxldGVQYXRoOm51bGwsb3ZlcnJpZGVIb29rU3RhdGVSZW5hbWVQYXRoOm51bGwsb3ZlcnJpZGVQcm9wczpudWxsLG92ZXJyaWRlUHJvcHNEZWxldGVQYXRoOm51bGwsb3ZlcnJpZGVQcm9wc1JlbmFtZVBhdGg6bnVsbCxzZXRFcnJvckhhbmRsZXI6bnVsbCxzZXRTdXNwZW5zZUhhbmRsZXI6bnVsbCxzY2hlZHVsZVVwZGF0ZTpudWxsLGN1cnJlbnREaXNwYXRjaGVyUmVmOnVhLlJlYWN0Q3VycmVudERpc3BhdGNoZXIsZmluZEhvc3RJbnN0YW5jZUJ5RmliZXI6ZnVuY3Rpb24oYSl7YT1aYihhKTtyZXR1cm4gbnVsbD09PWE/bnVsbDphLnN0YXRlTm9kZX0sZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6dGwuZmluZEZpYmVyQnlIb3N0SW5zdGFuY2V8fFxuamwsZmluZEhvc3RJbnN0YW5jZXNGb3JSZWZyZXNoOm51bGwsc2NoZWR1bGVSZWZyZXNoOm51bGwsc2NoZWR1bGVSb290Om51bGwsc2V0UmVmcmVzaEhhbmRsZXI6bnVsbCxnZXRDdXJyZW50RmliZXI6bnVsbCxyZWNvbmNpbGVyVmVyc2lvbjpcIjE4LjMuMS1uZXh0LWYxMzM4ZjgwODAtMjAyNDA0MjZcIn07aWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18pe3ZhciB2bD1fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX187aWYoIXZsLmlzRGlzYWJsZWQmJnZsLnN1cHBvcnRzRmliZXIpdHJ5e2tjPXZsLmluamVjdCh1bCksbGM9dmx9Y2F0Y2goYSl7fX1leHBvcnRzLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEPXNsO1xuZXhwb3J0cy5jcmVhdGVQb3J0YWw9ZnVuY3Rpb24oYSxiKXt2YXIgYz0yPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVsbDtpZighbmwoYikpdGhyb3cgRXJyb3IocCgyMDApKTtyZXR1cm4gY2woYSxiLG51bGwsYyl9O2V4cG9ydHMuY3JlYXRlUm9vdD1mdW5jdGlvbihhLGIpe2lmKCFubChhKSl0aHJvdyBFcnJvcihwKDI5OSkpO3ZhciBjPSExLGQ9XCJcIixlPWtsO251bGwhPT1iJiZ2b2lkIDAhPT1iJiYoITA9PT1iLnVuc3RhYmxlX3N0cmljdE1vZGUmJihjPSEwKSx2b2lkIDAhPT1iLmlkZW50aWZpZXJQcmVmaXgmJihkPWIuaWRlbnRpZmllclByZWZpeCksdm9pZCAwIT09Yi5vblJlY292ZXJhYmxlRXJyb3ImJihlPWIub25SZWNvdmVyYWJsZUVycm9yKSk7Yj1ibChhLDEsITEsbnVsbCxudWxsLGMsITEsZCxlKTthW3VmXT1iLmN1cnJlbnQ7c2YoOD09PWEubm9kZVR5cGU/YS5wYXJlbnROb2RlOmEpO3JldHVybiBuZXcgbGwoYil9O1xuZXhwb3J0cy5maW5kRE9NTm9kZT1mdW5jdGlvbihhKXtpZihudWxsPT1hKXJldHVybiBudWxsO2lmKDE9PT1hLm5vZGVUeXBlKXJldHVybiBhO3ZhciBiPWEuX3JlYWN0SW50ZXJuYWxzO2lmKHZvaWQgMD09PWIpe2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhLnJlbmRlcil0aHJvdyBFcnJvcihwKDE4OCkpO2E9T2JqZWN0LmtleXMoYSkuam9pbihcIixcIik7dGhyb3cgRXJyb3IocCgyNjgsYSkpO31hPVpiKGIpO2E9bnVsbD09PWE/bnVsbDphLnN0YXRlTm9kZTtyZXR1cm4gYX07ZXhwb3J0cy5mbHVzaFN5bmM9ZnVuY3Rpb24oYSl7cmV0dXJuIFJrKGEpfTtleHBvcnRzLmh5ZHJhdGU9ZnVuY3Rpb24oYSxiLGMpe2lmKCFvbChiKSl0aHJvdyBFcnJvcihwKDIwMCkpO3JldHVybiBybChudWxsLGEsYiwhMCxjKX07XG5leHBvcnRzLmh5ZHJhdGVSb290PWZ1bmN0aW9uKGEsYixjKXtpZighbmwoYSkpdGhyb3cgRXJyb3IocCg0MDUpKTt2YXIgZD1udWxsIT1jJiZjLmh5ZHJhdGVkU291cmNlc3x8bnVsbCxlPSExLGY9XCJcIixnPWtsO251bGwhPT1jJiZ2b2lkIDAhPT1jJiYoITA9PT1jLnVuc3RhYmxlX3N0cmljdE1vZGUmJihlPSEwKSx2b2lkIDAhPT1jLmlkZW50aWZpZXJQcmVmaXgmJihmPWMuaWRlbnRpZmllclByZWZpeCksdm9pZCAwIT09Yy5vblJlY292ZXJhYmxlRXJyb3ImJihnPWMub25SZWNvdmVyYWJsZUVycm9yKSk7Yj1lbChiLG51bGwsYSwxLG51bGwhPWM/YzpudWxsLGUsITEsZixnKTthW3VmXT1iLmN1cnJlbnQ7c2YoYSk7aWYoZClmb3IoYT0wO2E8ZC5sZW5ndGg7YSsrKWM9ZFthXSxlPWMuX2dldFZlcnNpb24sZT1lKGMuX3NvdXJjZSksbnVsbD09Yi5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhP2IubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YT1bYyxlXTpiLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGEucHVzaChjLFxuZSk7cmV0dXJuIG5ldyBtbChiKX07ZXhwb3J0cy5yZW5kZXI9ZnVuY3Rpb24oYSxiLGMpe2lmKCFvbChiKSl0aHJvdyBFcnJvcihwKDIwMCkpO3JldHVybiBybChudWxsLGEsYiwhMSxjKX07ZXhwb3J0cy51bm1vdW50Q29tcG9uZW50QXROb2RlPWZ1bmN0aW9uKGEpe2lmKCFvbChhKSl0aHJvdyBFcnJvcihwKDQwKSk7cmV0dXJuIGEuX3JlYWN0Um9vdENvbnRhaW5lcj8oUmsoZnVuY3Rpb24oKXtybChudWxsLG51bGwsYSwhMSxmdW5jdGlvbigpe2EuX3JlYWN0Um9vdENvbnRhaW5lcj1udWxsO2FbdWZdPW51bGx9KX0pLCEwKTohMX07ZXhwb3J0cy51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcz1RaztcbmV4cG9ydHMudW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXI9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoIW9sKGMpKXRocm93IEVycm9yKHAoMjAwKSk7aWYobnVsbD09YXx8dm9pZCAwPT09YS5fcmVhY3RJbnRlcm5hbHMpdGhyb3cgRXJyb3IocCgzOCkpO3JldHVybiBybChhLGIsYywhMSxkKX07ZXhwb3J0cy52ZXJzaW9uPVwiMTguMy4xLW5leHQtZjEzMzhmODA4MC0yMDI0MDQyNlwiO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5mdW5jdGlvbiBjaGVja0RDRSgpIHtcbiAgLyogZ2xvYmFsIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAqL1xuICBpZiAoXG4gICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyA9PT0gJ3VuZGVmaW5lZCcgfHxcbiAgICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFICE9PSAnZnVuY3Rpb24nXG4gICkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIC8vIFRoaXMgYnJhbmNoIGlzIHVucmVhY2hhYmxlIGJlY2F1c2UgdGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZFxuICAgIC8vIGluIHByb2R1Y3Rpb24sIGJ1dCB0aGUgY29uZGl0aW9uIGlzIHRydWUgb25seSBpbiBkZXZlbG9wbWVudC5cbiAgICAvLyBUaGVyZWZvcmUgaWYgdGhlIGJyYW5jaCBpcyBzdGlsbCBoZXJlLCBkZWFkIGNvZGUgZWxpbWluYXRpb24gd2Fzbid0XG4gICAgLy8gcHJvcGVybHkgYXBwbGllZC5cbiAgICAvLyBEb24ndCBjaGFuZ2UgdGhlIG1lc3NhZ2UuIFJlYWN0IERldlRvb2xzIHJlbGllcyBvbiBpdC4gQWxzbyBtYWtlIHN1cmVcbiAgICAvLyB0aGlzIG1lc3NhZ2UgZG9lc24ndCBvY2N1ciBlbHNld2hlcmUgaW4gdGhpcyBmdW5jdGlvbiwgb3IgaXQgd2lsbCBjYXVzZVxuICAgIC8vIGEgZmFsc2UgcG9zaXRpdmUuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdeX14nKTtcbiAgfVxuICB0cnkge1xuICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBjb2RlIGFib3ZlIGhhcyBiZWVuIGRlYWQgY29kZSBlbGltaW5hdGVkIChEQ0UnZCkuXG4gICAgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKGNoZWNrRENFKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgLy8gRGV2VG9vbHMgc2hvdWxkbid0IGNyYXNoIFJlYWN0LCBubyBtYXR0ZXIgd2hhdC5cbiAgICAvLyBXZSBzaG91bGQgc3RpbGwgcmVwb3J0IGluIGNhc2Ugd2UgYnJlYWsgdGhpcyBjb2RlLlxuICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgfVxufVxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAvLyBEQ0UgY2hlY2sgc2hvdWxkIGhhcHBlbiBiZWZvcmUgUmVhY3RET00gYnVuZGxlIGV4ZWN1dGVzIHNvIHRoYXRcbiAgLy8gRGV2VG9vbHMgY2FuIHJlcG9ydCBiYWQgbWluaWZpY2F0aW9uIGR1cmluZyBpbmplY3Rpb24uXG4gIGNoZWNrRENFKCk7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtZG9tLnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWRvbS5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgbSA9IHJlcXVpcmUoJ3JlYWN0LWRvbScpO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgZXhwb3J0cy5jcmVhdGVSb290ID0gbS5jcmVhdGVSb290O1xuICBleHBvcnRzLmh5ZHJhdGVSb290ID0gbS5oeWRyYXRlUm9vdDtcbn0gZWxzZSB7XG4gIHZhciBpID0gbS5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRDtcbiAgZXhwb3J0cy5jcmVhdGVSb290ID0gZnVuY3Rpb24oYywgbykge1xuICAgIGkudXNpbmdDbGllbnRFbnRyeVBvaW50ID0gdHJ1ZTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIG0uY3JlYXRlUm9vdChjLCBvKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaS51c2luZ0NsaWVudEVudHJ5UG9pbnQgPSBmYWxzZTtcbiAgICB9XG4gIH07XG4gIGV4cG9ydHMuaHlkcmF0ZVJvb3QgPSBmdW5jdGlvbihjLCBoLCBvKSB7XG4gICAgaS51c2luZ0NsaWVudEVudHJ5UG9pbnQgPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbS5oeWRyYXRlUm9vdChjLCBoLCBvKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaS51c2luZ0NsaWVudEVudHJ5UG9pbnQgPSBmYWxzZTtcbiAgICB9XG4gIH07XG59XG4iLCIvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvcHlyaWdodCAyMDIxIGVCYXkgSW5jLlxuXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGVcbiAqIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBvciBhdFxuICogaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQuXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qKlxuICogQG1vZHVsZSBOaWNlTW9kYWxcbiAqICovXG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlUmVkdWNlciwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbnZhciBzeW1Nb2RhbElkID0gU3ltYm9sKCdOaWNlTW9kYWxJZCcpO1xudmFyIGluaXRpYWxTdGF0ZSA9IHt9O1xuZXhwb3J0IHZhciBOaWNlTW9kYWxDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dChpbml0aWFsU3RhdGUpO1xudmFyIE5pY2VNb2RhbElkQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCk7XG52YXIgTU9EQUxfUkVHSVNUUlkgPSB7fTtcbnZhciBBTFJFQURZX01PVU5URUQgPSB7fTtcbnZhciB1aWRTZWVkID0gMDtcbnZhciBkaXNwYXRjaCA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGRpc3BhdGNoIG1ldGhvZCBkZXRlY3RlZCwgZGlkIHlvdSBlbWJlZCB5b3VyIGFwcCB3aXRoIE5pY2VNb2RhbC5Qcm92aWRlcj8nKTtcbn07XG52YXIgZ2V0VWlkID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gXCJfbmljZV9tb2RhbF9cIiArIHVpZFNlZWQrKzsgfTtcbi8vIE1vZGFsIHJlZHVjZXIgdXNlZCBpbiB1c2VSZWR1Y2VyIGhvb2suXG5leHBvcnQgdmFyIHJlZHVjZXIgPSBmdW5jdGlvbiAoc3RhdGUsIGFjdGlvbikge1xuICAgIHZhciBfYSwgX2IsIF9jO1xuICAgIGlmIChzdGF0ZSA9PT0gdm9pZCAwKSB7IHN0YXRlID0gaW5pdGlhbFN0YXRlOyB9XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgICBjYXNlICduaWNlLW1vZGFsL3Nob3cnOiB7XG4gICAgICAgICAgICB2YXIgX2QgPSBhY3Rpb24ucGF5bG9hZCwgbW9kYWxJZCA9IF9kLm1vZGFsSWQsIGFyZ3MgPSBfZC5hcmdzO1xuICAgICAgICAgICAgcmV0dXJuIF9fYXNzaWduKF9fYXNzaWduKHt9LCBzdGF0ZSksIChfYSA9IHt9LCBfYVttb2RhbElkXSA9IF9fYXNzaWduKF9fYXNzaWduKHt9LCBzdGF0ZVttb2RhbElkXSksIHsgaWQ6IG1vZGFsSWQsIGFyZ3M6IGFyZ3MsIFxuICAgICAgICAgICAgICAgIC8vIElmIG1vZGFsIGlzIG5vdCBtb3VudGVkLCBtb3VudCBpdCBmaXJzdCB0aGVuIG1ha2UgaXQgdmlzaWJsZS5cbiAgICAgICAgICAgICAgICAvLyBUaGVyZSBpcyBsb2dpYyBpbnNpZGUgSE9DIHdyYXBwZXIgdG8gbWFrZSBpdCB2aXNpYmxlIGFmdGVyIGl0cyBmaXJzdCBtb3VudC5cbiAgICAgICAgICAgICAgICAvLyBUaGlzIG1lY2hhbmlzbSBlbnN1cmVzIHRoZSBlbnRlcmluZyB0cmFuc2l0aW9uLlxuICAgICAgICAgICAgICAgIHZpc2libGU6ICEhQUxSRUFEWV9NT1VOVEVEW21vZGFsSWRdLCBkZWxheVZpc2libGU6ICFBTFJFQURZX01PVU5URURbbW9kYWxJZF0gfSksIF9hKSk7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnbmljZS1tb2RhbC9oaWRlJzoge1xuICAgICAgICAgICAgdmFyIG1vZGFsSWQgPSBhY3Rpb24ucGF5bG9hZC5tb2RhbElkO1xuICAgICAgICAgICAgaWYgKCFzdGF0ZVttb2RhbElkXSlcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgICAgICByZXR1cm4gX19hc3NpZ24oX19hc3NpZ24oe30sIHN0YXRlKSwgKF9iID0ge30sIF9iW21vZGFsSWRdID0gX19hc3NpZ24oX19hc3NpZ24oe30sIHN0YXRlW21vZGFsSWRdKSwgeyB2aXNpYmxlOiBmYWxzZSB9KSwgX2IpKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICduaWNlLW1vZGFsL3JlbW92ZSc6IHtcbiAgICAgICAgICAgIHZhciBtb2RhbElkID0gYWN0aW9uLnBheWxvYWQubW9kYWxJZDtcbiAgICAgICAgICAgIHZhciBuZXdTdGF0ZSA9IF9fYXNzaWduKHt9LCBzdGF0ZSk7XG4gICAgICAgICAgICBkZWxldGUgbmV3U3RhdGVbbW9kYWxJZF07XG4gICAgICAgICAgICByZXR1cm4gbmV3U3RhdGU7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnbmljZS1tb2RhbC9zZXQtZmxhZ3MnOiB7XG4gICAgICAgICAgICB2YXIgX2UgPSBhY3Rpb24ucGF5bG9hZCwgbW9kYWxJZCA9IF9lLm1vZGFsSWQsIGZsYWdzID0gX2UuZmxhZ3M7XG4gICAgICAgICAgICByZXR1cm4gX19hc3NpZ24oX19hc3NpZ24oe30sIHN0YXRlKSwgKF9jID0ge30sIF9jW21vZGFsSWRdID0gX19hc3NpZ24oX19hc3NpZ24oe30sIHN0YXRlW21vZGFsSWRdKSwgZmxhZ3MpLCBfYykpO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxufTtcbi8vIEdldCBtb2RhbCBjb21wb25lbnQgYnkgbW9kYWwgaWRcbmZ1bmN0aW9uIGdldE1vZGFsKG1vZGFsSWQpIHtcbiAgICB2YXIgX2E7XG4gICAgcmV0dXJuIChfYSA9IE1PREFMX1JFR0lTVFJZW21vZGFsSWRdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29tcDtcbn1cbi8vIGFjdGlvbiBjcmVhdG9yIHRvIHNob3cgYSBtb2RhbFxuZnVuY3Rpb24gc2hvd01vZGFsKG1vZGFsSWQsIGFyZ3MpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiAnbmljZS1tb2RhbC9zaG93JyxcbiAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgbW9kYWxJZDogbW9kYWxJZCxcbiAgICAgICAgICAgIGFyZ3M6IGFyZ3MsXG4gICAgICAgIH0sXG4gICAgfTtcbn1cbi8vIGFjdGlvbiBjcmVhdG9yIHRvIHNldCBmbGFncyBvZiBhIG1vZGFsXG5mdW5jdGlvbiBzZXRNb2RhbEZsYWdzKG1vZGFsSWQsIGZsYWdzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ25pY2UtbW9kYWwvc2V0LWZsYWdzJyxcbiAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgbW9kYWxJZDogbW9kYWxJZCxcbiAgICAgICAgICAgIGZsYWdzOiBmbGFncyxcbiAgICAgICAgfSxcbiAgICB9O1xufVxuLy8gYWN0aW9uIGNyZWF0b3IgdG8gaGlkZSBhIG1vZGFsXG5mdW5jdGlvbiBoaWRlTW9kYWwobW9kYWxJZCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6ICduaWNlLW1vZGFsL2hpZGUnLFxuICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICBtb2RhbElkOiBtb2RhbElkLFxuICAgICAgICB9LFxuICAgIH07XG59XG4vLyBhY3Rpb24gY3JlYXRvciB0byByZW1vdmUgYSBtb2RhbFxuZnVuY3Rpb24gcmVtb3ZlTW9kYWwobW9kYWxJZCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6ICduaWNlLW1vZGFsL3JlbW92ZScsXG4gICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgIG1vZGFsSWQ6IG1vZGFsSWQsXG4gICAgICAgIH0sXG4gICAgfTtcbn1cbnZhciBtb2RhbENhbGxiYWNrcyA9IHt9O1xudmFyIGhpZGVNb2RhbENhbGxiYWNrcyA9IHt9O1xudmFyIGdldE1vZGFsSWQgPSBmdW5jdGlvbiAobW9kYWwpIHtcbiAgICBpZiAodHlwZW9mIG1vZGFsID09PSAnc3RyaW5nJylcbiAgICAgICAgcmV0dXJuIG1vZGFsO1xuICAgIGlmICghbW9kYWxbc3ltTW9kYWxJZF0pIHtcbiAgICAgICAgbW9kYWxbc3ltTW9kYWxJZF0gPSBnZXRVaWQoKTtcbiAgICB9XG4gICAgcmV0dXJuIG1vZGFsW3N5bU1vZGFsSWRdO1xufTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvZXhwbGljaXQtbW9kdWxlLWJvdW5kYXJ5LXR5cGVzXG5leHBvcnQgZnVuY3Rpb24gc2hvdyhtb2RhbCwgYXJncykge1xuICAgIHZhciBtb2RhbElkID0gZ2V0TW9kYWxJZChtb2RhbCk7XG4gICAgaWYgKHR5cGVvZiBtb2RhbCAhPT0gJ3N0cmluZycgJiYgIU1PREFMX1JFR0lTVFJZW21vZGFsSWRdKSB7XG4gICAgICAgIHJlZ2lzdGVyKG1vZGFsSWQsIG1vZGFsKTtcbiAgICB9XG4gICAgZGlzcGF0Y2goc2hvd01vZGFsKG1vZGFsSWQsIGFyZ3MpKTtcbiAgICBpZiAoIW1vZGFsQ2FsbGJhY2tzW21vZGFsSWRdKSB7XG4gICAgICAgIC8vIGAhYCB0ZWxsIHRzIHRoYXQgdGhlUmVzb2x2ZSB3aWxsIGJlIHdyaXR0ZW4gYmVmb3JlIGl0IGlzIHVzZWRcbiAgICAgICAgdmFyIHRoZVJlc29sdmVfMTtcbiAgICAgICAgLy8gYCFgIHRlbGwgdHMgdGhhdCB0aGVSZXNvbHZlIHdpbGwgYmUgd3JpdHRlbiBiZWZvcmUgaXQgaXMgdXNlZFxuICAgICAgICB2YXIgdGhlUmVqZWN0XzE7XG4gICAgICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgdGhlUmVzb2x2ZV8xID0gcmVzb2x2ZTtcbiAgICAgICAgICAgIHRoZVJlamVjdF8xID0gcmVqZWN0O1xuICAgICAgICB9KTtcbiAgICAgICAgbW9kYWxDYWxsYmFja3NbbW9kYWxJZF0gPSB7XG4gICAgICAgICAgICByZXNvbHZlOiB0aGVSZXNvbHZlXzEsXG4gICAgICAgICAgICByZWplY3Q6IHRoZVJlamVjdF8xLFxuICAgICAgICAgICAgcHJvbWlzZTogcHJvbWlzZSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIG1vZGFsQ2FsbGJhY2tzW21vZGFsSWRdLnByb21pc2U7XG59XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LW1vZHVsZS1ib3VuZGFyeS10eXBlc1xuZXhwb3J0IGZ1bmN0aW9uIGhpZGUobW9kYWwpIHtcbiAgICB2YXIgbW9kYWxJZCA9IGdldE1vZGFsSWQobW9kYWwpO1xuICAgIGRpc3BhdGNoKGhpZGVNb2RhbChtb2RhbElkKSk7XG4gICAgLy8gU2hvdWxkIGFsc28gZGVsZXRlIHRoZSBjYWxsYmFjayBmb3IgbW9kYWwucmVzb2x2ZSAjMzVcbiAgICBkZWxldGUgbW9kYWxDYWxsYmFja3NbbW9kYWxJZF07XG4gICAgaWYgKCFoaWRlTW9kYWxDYWxsYmFja3NbbW9kYWxJZF0pIHtcbiAgICAgICAgLy8gYCFgIHRlbGwgdHMgdGhhdCB0aGVSZXNvbHZlIHdpbGwgYmUgd3JpdHRlbiBiZWZvcmUgaXQgaXMgdXNlZFxuICAgICAgICB2YXIgdGhlUmVzb2x2ZV8yO1xuICAgICAgICAvLyBgIWAgdGVsbCB0cyB0aGF0IHRoZVJlc29sdmUgd2lsbCBiZSB3cml0dGVuIGJlZm9yZSBpdCBpcyB1c2VkXG4gICAgICAgIHZhciB0aGVSZWplY3RfMjtcbiAgICAgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICB0aGVSZXNvbHZlXzIgPSByZXNvbHZlO1xuICAgICAgICAgICAgdGhlUmVqZWN0XzIgPSByZWplY3Q7XG4gICAgICAgIH0pO1xuICAgICAgICBoaWRlTW9kYWxDYWxsYmFja3NbbW9kYWxJZF0gPSB7XG4gICAgICAgICAgICByZXNvbHZlOiB0aGVSZXNvbHZlXzIsXG4gICAgICAgICAgICByZWplY3Q6IHRoZVJlamVjdF8yLFxuICAgICAgICAgICAgcHJvbWlzZTogcHJvbWlzZSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGhpZGVNb2RhbENhbGxiYWNrc1ttb2RhbElkXS5wcm9taXNlO1xufVxuZXhwb3J0IHZhciByZW1vdmUgPSBmdW5jdGlvbiAobW9kYWwpIHtcbiAgICB2YXIgbW9kYWxJZCA9IGdldE1vZGFsSWQobW9kYWwpO1xuICAgIGRpc3BhdGNoKHJlbW92ZU1vZGFsKG1vZGFsSWQpKTtcbiAgICBkZWxldGUgbW9kYWxDYWxsYmFja3NbbW9kYWxJZF07XG4gICAgZGVsZXRlIGhpZGVNb2RhbENhbGxiYWNrc1ttb2RhbElkXTtcbn07XG52YXIgc2V0RmxhZ3MgPSBmdW5jdGlvbiAobW9kYWxJZCwgZmxhZ3MpIHtcbiAgICBkaXNwYXRjaChzZXRNb2RhbEZsYWdzKG1vZGFsSWQsIGZsYWdzKSk7XG59O1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tb2R1bGUtYm91bmRhcnktdHlwZXNcbmV4cG9ydCBmdW5jdGlvbiB1c2VNb2RhbChtb2RhbCwgYXJncykge1xuICAgIHZhciBtb2RhbHMgPSB1c2VDb250ZXh0KE5pY2VNb2RhbENvbnRleHQpO1xuICAgIHZhciBjb250ZXh0TW9kYWxJZCA9IHVzZUNvbnRleHQoTmljZU1vZGFsSWRDb250ZXh0KTtcbiAgICB2YXIgbW9kYWxJZCA9IG51bGw7XG4gICAgdmFyIGlzVXNlQ29tcG9uZW50ID0gbW9kYWwgJiYgdHlwZW9mIG1vZGFsICE9PSAnc3RyaW5nJztcbiAgICBpZiAoIW1vZGFsKSB7XG4gICAgICAgIG1vZGFsSWQgPSBjb250ZXh0TW9kYWxJZDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIG1vZGFsSWQgPSBnZXRNb2RhbElkKG1vZGFsKTtcbiAgICB9XG4gICAgLy8gT25seSBpZiBjb250ZXh0TW9kYWxJZCBkb2Vzbid0IGV4aXN0XG4gICAgaWYgKCFtb2RhbElkKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIG1vZGFsIGlkIGZvdW5kIGluIE5pY2VNb2RhbC51c2VNb2RhbC4nKTtcbiAgICB2YXIgbWlkID0gbW9kYWxJZDtcbiAgICAvLyBJZiB1c2UgYSBjb21wb25lbnQgZGlyZWN0bHksIHJlZ2lzdGVyIGl0LlxuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChpc1VzZUNvbXBvbmVudCAmJiAhTU9EQUxfUkVHSVNUUllbbWlkXSkge1xuICAgICAgICAgICAgcmVnaXN0ZXIobWlkLCBtb2RhbCwgYXJncyk7XG4gICAgICAgIH1cbiAgICB9LCBbaXNVc2VDb21wb25lbnQsIG1pZCwgbW9kYWwsIGFyZ3NdKTtcbiAgICB2YXIgbW9kYWxJbmZvID0gbW9kYWxzW21pZF07XG4gICAgdmFyIHNob3dDYWxsYmFjayA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChhcmdzKSB7IHJldHVybiBzaG93KG1pZCwgYXJncyk7IH0sIFttaWRdKTtcbiAgICB2YXIgaGlkZUNhbGxiYWNrID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKCkgeyByZXR1cm4gaGlkZShtaWQpOyB9LCBbbWlkXSk7XG4gICAgdmFyIHJlbW92ZUNhbGxiYWNrID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKCkgeyByZXR1cm4gcmVtb3ZlKG1pZCk7IH0sIFttaWRdKTtcbiAgICB2YXIgcmVzb2x2ZUNhbGxiYWNrID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKGFyZ3MpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICAoX2EgPSBtb2RhbENhbGxiYWNrc1ttaWRdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVzb2x2ZShhcmdzKTtcbiAgICAgICAgZGVsZXRlIG1vZGFsQ2FsbGJhY2tzW21pZF07XG4gICAgfSwgW21pZF0pO1xuICAgIHZhciByZWplY3RDYWxsYmFjayA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChhcmdzKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgKF9hID0gbW9kYWxDYWxsYmFja3NbbWlkXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlamVjdChhcmdzKTtcbiAgICAgICAgZGVsZXRlIG1vZGFsQ2FsbGJhY2tzW21pZF07XG4gICAgfSwgW21pZF0pO1xuICAgIHZhciByZXNvbHZlSGlkZSA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChhcmdzKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgKF9hID0gaGlkZU1vZGFsQ2FsbGJhY2tzW21pZF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZXNvbHZlKGFyZ3MpO1xuICAgICAgICBkZWxldGUgaGlkZU1vZGFsQ2FsbGJhY2tzW21pZF07XG4gICAgfSwgW21pZF0pO1xuICAgIHJldHVybiB1c2VNZW1vKGZ1bmN0aW9uICgpIHsgcmV0dXJuICh7XG4gICAgICAgIGlkOiBtaWQsXG4gICAgICAgIGFyZ3M6IG1vZGFsSW5mbyA9PT0gbnVsbCB8fCBtb2RhbEluZm8gPT09IHZvaWQgMCA/IHZvaWQgMCA6IG1vZGFsSW5mby5hcmdzLFxuICAgICAgICB2aXNpYmxlOiAhIShtb2RhbEluZm8gPT09IG51bGwgfHwgbW9kYWxJbmZvID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtb2RhbEluZm8udmlzaWJsZSksXG4gICAgICAgIGtlZXBNb3VudGVkOiAhIShtb2RhbEluZm8gPT09IG51bGwgfHwgbW9kYWxJbmZvID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtb2RhbEluZm8ua2VlcE1vdW50ZWQpLFxuICAgICAgICBzaG93OiBzaG93Q2FsbGJhY2ssXG4gICAgICAgIGhpZGU6IGhpZGVDYWxsYmFjayxcbiAgICAgICAgcmVtb3ZlOiByZW1vdmVDYWxsYmFjayxcbiAgICAgICAgcmVzb2x2ZTogcmVzb2x2ZUNhbGxiYWNrLFxuICAgICAgICByZWplY3Q6IHJlamVjdENhbGxiYWNrLFxuICAgICAgICByZXNvbHZlSGlkZTogcmVzb2x2ZUhpZGUsXG4gICAgfSk7IH0sIFtcbiAgICAgICAgbWlkLFxuICAgICAgICBtb2RhbEluZm8gPT09IG51bGwgfHwgbW9kYWxJbmZvID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtb2RhbEluZm8uYXJncyxcbiAgICAgICAgbW9kYWxJbmZvID09PSBudWxsIHx8IG1vZGFsSW5mbyA9PT0gdm9pZCAwID8gdm9pZCAwIDogbW9kYWxJbmZvLnZpc2libGUsXG4gICAgICAgIG1vZGFsSW5mbyA9PT0gbnVsbCB8fCBtb2RhbEluZm8gPT09IHZvaWQgMCA/IHZvaWQgMCA6IG1vZGFsSW5mby5rZWVwTW91bnRlZCxcbiAgICAgICAgc2hvd0NhbGxiYWNrLFxuICAgICAgICBoaWRlQ2FsbGJhY2ssXG4gICAgICAgIHJlbW92ZUNhbGxiYWNrLFxuICAgICAgICByZXNvbHZlQ2FsbGJhY2ssXG4gICAgICAgIHJlamVjdENhbGxiYWNrLFxuICAgICAgICByZXNvbHZlSGlkZSxcbiAgICBdKTtcbn1cbmV4cG9ydCB2YXIgY3JlYXRlID0gZnVuY3Rpb24gKENvbXApIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgIHZhciBfYjtcbiAgICAgICAgdmFyIGRlZmF1bHRWaXNpYmxlID0gX2EuZGVmYXVsdFZpc2libGUsIGtlZXBNb3VudGVkID0gX2Eua2VlcE1vdW50ZWQsIGlkID0gX2EuaWQsIHByb3BzID0gX19yZXN0KF9hLCBbXCJkZWZhdWx0VmlzaWJsZVwiLCBcImtlZXBNb3VudGVkXCIsIFwiaWRcIl0pO1xuICAgICAgICB2YXIgX2MgPSB1c2VNb2RhbChpZCksIGFyZ3MgPSBfYy5hcmdzLCBzaG93ID0gX2Muc2hvdztcbiAgICAgICAgLy8gSWYgdGhlcmUncyBtb2RhbCBzdGF0ZSwgdGhlbiBzaG91bGQgbW91bnQgaXQuXG4gICAgICAgIHZhciBtb2RhbHMgPSB1c2VDb250ZXh0KE5pY2VNb2RhbENvbnRleHQpO1xuICAgICAgICB2YXIgc2hvdWxkTW91bnQgPSAhIW1vZGFsc1tpZF07XG4gICAgICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAvLyBJZiBkZWZhdWx0VmlzaWJsZSwgc2hvdyBpdCBhZnRlciBtb3VudGVkLlxuICAgICAgICAgICAgaWYgKGRlZmF1bHRWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgc2hvdygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQUxSRUFEWV9NT1VOVEVEW2lkXSA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBBTFJFQURZX01PVU5URURbaWRdO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSwgW2lkLCBzaG93LCBkZWZhdWx0VmlzaWJsZV0pO1xuICAgICAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKGtlZXBNb3VudGVkKVxuICAgICAgICAgICAgICAgIHNldEZsYWdzKGlkLCB7IGtlZXBNb3VudGVkOiB0cnVlIH0pO1xuICAgICAgICB9LCBbaWQsIGtlZXBNb3VudGVkXSk7XG4gICAgICAgIHZhciBkZWxheVZpc2libGUgPSAoX2IgPSBtb2RhbHNbaWRdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZGVsYXlWaXNpYmxlO1xuICAgICAgICAvLyBJZiBtb2RhbC5zaG93IGlzIGNhbGxlZFxuICAgICAgICAvLyAgMS4gSWYgbW9kYWwgd2FzIG1vdW50ZWQsIHNob3VsZCBtYWtlIGl0IHZpc2libGUgZGlyZWN0bHlcbiAgICAgICAgLy8gIDIuIElmIG1vZGFsIGhhcyBub3QgYmVlbiBtb3VudGVkLCBzaG91bGQgbW91bnQgaXQgZmlyc3QsIHRoZW4gbWFrZSBpdCB2aXNpYmxlXG4gICAgICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoZGVsYXlWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgLy8gZGVsYXlWaXNpYmxlOiBmYWxzZSA9PiB0cnVlLCBpdCBtZWFucyB0aGUgbW9kYWwuc2hvdygpIGlzIGNhbGxlZCwgc2hvdWxkIHNob3cgaXQuXG4gICAgICAgICAgICAgICAgc2hvdyhhcmdzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgW2RlbGF5VmlzaWJsZSwgYXJncywgc2hvd10pO1xuICAgICAgICBpZiAoIXNob3VsZE1vdW50KVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChOaWNlTW9kYWxJZENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGlkIH0sXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KENvbXAsIF9fYXNzaWduKHt9LCBwcm9wcywgYXJncykpKSk7XG4gICAgfTtcbn07XG4vLyBBbGwgcmVnaXN0ZXJlZCBtb2RhbHMgd2lsbCBiZSByZW5kZXJlZCBpbiBtb2RhbCBwbGFjZWhvbGRlclxuZXhwb3J0IHZhciByZWdpc3RlciA9IGZ1bmN0aW9uIChpZCwgY29tcCwgcHJvcHMpIHtcbiAgICBpZiAoIU1PREFMX1JFR0lTVFJZW2lkXSkge1xuICAgICAgICBNT0RBTF9SRUdJU1RSWVtpZF0gPSB7IGNvbXA6IGNvbXAsIHByb3BzOiBwcm9wcyB9O1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgTU9EQUxfUkVHSVNUUllbaWRdLnByb3BzID0gcHJvcHM7XG4gICAgfVxufTtcbi8qKlxuICogVW5yZWdpc3RlciBhIG1vZGFsLlxuICogQHBhcmFtIGlkIC0gVGhlIGlkIG9mIHRoZSBtb2RhbC5cbiAqL1xuZXhwb3J0IHZhciB1bnJlZ2lzdGVyID0gZnVuY3Rpb24gKGlkKSB7XG4gICAgZGVsZXRlIE1PREFMX1JFR0lTVFJZW2lkXTtcbn07XG4vLyBUaGUgcGxhY2Vob2xkZXIgY29tcG9uZW50IGlzIHVzZWQgdG8gYXV0byByZW5kZXIgbW9kYWxzIHdoZW4gY2FsbCBtb2RhbC5zaG93KClcbi8vIFdoZW4gbW9kYWwuc2hvdygpIGlzIGNhbGxlZCwgaXQgbWVhbnMgdGhlcmUndmUgYmVlbiBtb2RhbCBpbmZvXG52YXIgTmljZU1vZGFsUGxhY2Vob2xkZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG1vZGFscyA9IHVzZUNvbnRleHQoTmljZU1vZGFsQ29udGV4dCk7XG4gICAgdmFyIHZpc2libGVNb2RhbElkcyA9IE9iamVjdC5rZXlzKG1vZGFscykuZmlsdGVyKGZ1bmN0aW9uIChpZCkgeyByZXR1cm4gISFtb2RhbHNbaWRdOyB9KTtcbiAgICB2aXNpYmxlTW9kYWxJZHMuZm9yRWFjaChmdW5jdGlvbiAoaWQpIHtcbiAgICAgICAgaWYgKCFNT0RBTF9SRUdJU1RSWVtpZF0gJiYgIUFMUkVBRFlfTU9VTlRFRFtpZF0pIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIk5vIG1vZGFsIGZvdW5kIGZvciBpZDogXCIgKyBpZCArIFwiLiBQbGVhc2UgY2hlY2sgdGhlIGlkIG9yIGlmIGl0IGlzIHJlZ2lzdGVyZWQgb3IgZGVjbGFyZWQgdmlhIEpTWC5cIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgdG9SZW5kZXIgPSB2aXNpYmxlTW9kYWxJZHNcbiAgICAgICAgLmZpbHRlcihmdW5jdGlvbiAoaWQpIHsgcmV0dXJuIE1PREFMX1JFR0lTVFJZW2lkXTsgfSlcbiAgICAgICAgLm1hcChmdW5jdGlvbiAoaWQpIHsgcmV0dXJuIChfX2Fzc2lnbih7IGlkOiBpZCB9LCBNT0RBTF9SRUdJU1RSWVtpZF0pKTsgfSk7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLCB0b1JlbmRlci5tYXAoZnVuY3Rpb24gKHQpIHsgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KHQuY29tcCwgX19hc3NpZ24oeyBrZXk6IHQuaWQsIGlkOiB0LmlkIH0sIHQucHJvcHMpKSk7IH0pKSk7XG59O1xudmFyIElubmVyQ29udGV4dFByb3ZpZGVyID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gX2EuY2hpbGRyZW47XG4gICAgdmFyIGFyciA9IHVzZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbFN0YXRlKTtcbiAgICB2YXIgbW9kYWxzID0gYXJyWzBdO1xuICAgIGRpc3BhdGNoID0gYXJyWzFdO1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChOaWNlTW9kYWxDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBtb2RhbHMgfSxcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoTmljZU1vZGFsUGxhY2Vob2xkZXIsIG51bGwpKSk7XG59O1xuZXhwb3J0IHZhciBQcm92aWRlciA9IGZ1bmN0aW9uIChfYSkge1xuICAgIHZhciBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuLCBnaXZlbkRpc3BhdGNoID0gX2EuZGlzcGF0Y2gsIGdpdmVuTW9kYWxzID0gX2EubW9kYWxzO1xuICAgIGlmICghZ2l2ZW5EaXNwYXRjaCB8fCAhZ2l2ZW5Nb2RhbHMpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5uZXJDb250ZXh0UHJvdmlkZXIsIG51bGwsIGNoaWxkcmVuKTtcbiAgICB9XG4gICAgZGlzcGF0Y2ggPSBnaXZlbkRpc3BhdGNoO1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChOaWNlTW9kYWxDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBnaXZlbk1vZGFscyB9LFxuICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChOaWNlTW9kYWxQbGFjZWhvbGRlciwgbnVsbCkpKTtcbn07XG4vKipcbiAqIERlY2xhcmF0aXZlIHdheSB0byByZWdpc3RlciBhIG1vZGFsLlxuICogQHBhcmFtIGlkIC0gVGhlIGlkIG9mIHRoZSBtb2RhbC5cbiAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgbW9kYWwgQ29tcG9uZW50LlxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IHZhciBNb2RhbERlZiA9IGZ1bmN0aW9uIChfYSkge1xuICAgIHZhciBpZCA9IF9hLmlkLCBjb21wb25lbnQgPSBfYS5jb21wb25lbnQ7XG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmVnaXN0ZXIoaWQsIGNvbXBvbmVudCk7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB1bnJlZ2lzdGVyKGlkKTtcbiAgICAgICAgfTtcbiAgICB9LCBbaWQsIGNvbXBvbmVudF0pO1xuICAgIHJldHVybiBudWxsO1xufTtcbi8qKlxuICogQSBwbGFjZSBob2xkZXIgYWxsb3dzIHRvIGJpbmQgcHJvcHMgdG8gYSBtb2RhbC5cbiAqIEl0IGFzc2lnbnMgc2hvdy9oaWRlIG1ldGhvZHMgdG8gaGFuZGxlciBvYmplY3QgdG8gc2hvdy9oaWRlIHRoZSBtb2RhbC5cbiAqXG4gKiBDb21wYXJpbmcgdG8gdXNlIHRoZSA8TXlOaWNlTW9kYWwgaWQ9Li4vPiBkaXJlY3RseSwgdGhpcyBhcHByb2FjaCBhbGxvd3MgdXNlIHJlZ2lzdGVyZWQgbW9kYWwgaWQgdG8gZmluZCB0aGUgbW9kYWwgY29tcG9uZW50LlxuICogQWxzbyBpdCBhdm9pZHMgdG8gY3JlYXRlIHVuaXF1ZSBpZCBmb3IgTXlOaWNlTW9kYWwuXG4gKlxuICogQHBhcmFtIG1vZGFsIC0gVGhlIG1vZGFsIGlkIHJlZ2lzdGVyZWQgb3IgYSBtb2RhbCBjb21wb25lbnQuXG4gKiBAcGFyYW0gaGFuZGxlciAtIFRoZSBoYW5kbGVyIG9iamVjdCB0byBjb250cm9sIHRoZSBtb2RhbC5cbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCB2YXIgTW9kYWxIb2xkZXIgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICB2YXIgX2I7XG4gICAgdmFyIG1vZGFsID0gX2EubW9kYWwsIF9jID0gX2EuaGFuZGxlciwgaGFuZGxlciA9IF9jID09PSB2b2lkIDAgPyB7fSA6IF9jLCByZXN0UHJvcHMgPSBfX3Jlc3QoX2EsIFtcIm1vZGFsXCIsIFwiaGFuZGxlclwiXSk7XG4gICAgdmFyIG1pZCA9IHVzZU1lbW8oZnVuY3Rpb24gKCkgeyByZXR1cm4gZ2V0VWlkKCk7IH0sIFtdKTtcbiAgICB2YXIgTW9kYWxDb21wID0gdHlwZW9mIG1vZGFsID09PSAnc3RyaW5nJyA/IChfYiA9IE1PREFMX1JFR0lTVFJZW21vZGFsXSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNvbXAgOiBtb2RhbDtcbiAgICBpZiAoIWhhbmRsZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBoYW5kbGVyIGZvdW5kIGluIE5pY2VNb2RhbC5Nb2RhbEhvbGRlci4nKTtcbiAgICB9XG4gICAgaWYgKCFNb2RhbENvbXApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm8gbW9kYWwgZm91bmQgZm9yIGlkOiBcIiArIG1vZGFsICsgXCIgaW4gTmljZU1vZGFsLk1vZGFsSG9sZGVyLlwiKTtcbiAgICB9XG4gICAgaGFuZGxlci5zaG93ID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKGFyZ3MpIHsgcmV0dXJuIHNob3cobWlkLCBhcmdzKTsgfSwgW21pZF0pO1xuICAgIGhhbmRsZXIuaGlkZSA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uICgpIHsgcmV0dXJuIGhpZGUobWlkKTsgfSwgW21pZF0pO1xuICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KE1vZGFsQ29tcCwgX19hc3NpZ24oeyBpZDogbWlkIH0sIHJlc3RQcm9wcykpO1xufTtcbmV4cG9ydCB2YXIgYW50ZE1vZGFsID0gZnVuY3Rpb24gKG1vZGFsKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdmlzaWJsZTogbW9kYWwudmlzaWJsZSxcbiAgICAgICAgb25PazogZnVuY3Rpb24gKCkgeyByZXR1cm4gbW9kYWwuaGlkZSgpOyB9LFxuICAgICAgICBvbkNhbmNlbDogZnVuY3Rpb24gKCkgeyByZXR1cm4gbW9kYWwuaGlkZSgpOyB9LFxuICAgICAgICBhZnRlckNsb3NlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAvLyBOZWVkIHRvIHJlc29sdmUgYmVmb3JlIHJlbW92ZVxuICAgICAgICAgICAgbW9kYWwucmVzb2x2ZUhpZGUoKTtcbiAgICAgICAgICAgIGlmICghbW9kYWwua2VlcE1vdW50ZWQpXG4gICAgICAgICAgICAgICAgbW9kYWwucmVtb3ZlKCk7XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5leHBvcnQgdmFyIGFudGRNb2RhbFY1ID0gZnVuY3Rpb24gKG1vZGFsKSB7XG4gICAgdmFyIF9hID0gYW50ZE1vZGFsKG1vZGFsKSwgb25PayA9IF9hLm9uT2ssIG9uQ2FuY2VsID0gX2Eub25DYW5jZWwsIGFmdGVyQ2xvc2UgPSBfYS5hZnRlckNsb3NlO1xuICAgIHJldHVybiB7XG4gICAgICAgIG9wZW46IG1vZGFsLnZpc2libGUsXG4gICAgICAgIG9uT2s6IG9uT2ssXG4gICAgICAgIG9uQ2FuY2VsOiBvbkNhbmNlbCxcbiAgICAgICAgYWZ0ZXJDbG9zZTogYWZ0ZXJDbG9zZSxcbiAgICB9O1xufTtcbmV4cG9ydCB2YXIgYW50ZERyYXdlciA9IGZ1bmN0aW9uIChtb2RhbCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHZpc2libGU6IG1vZGFsLnZpc2libGUsXG4gICAgICAgIG9uQ2xvc2U6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG1vZGFsLmhpZGUoKTsgfSxcbiAgICAgICAgYWZ0ZXJWaXNpYmxlQ2hhbmdlOiBmdW5jdGlvbiAodikge1xuICAgICAgICAgICAgaWYgKCF2KSB7XG4gICAgICAgICAgICAgICAgbW9kYWwucmVzb2x2ZUhpZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICF2ICYmICFtb2RhbC5rZWVwTW91bnRlZCAmJiBtb2RhbC5yZW1vdmUoKTtcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmV4cG9ydCB2YXIgYW50ZERyYXdlclY1ID0gZnVuY3Rpb24gKG1vZGFsKSB7XG4gICAgdmFyIF9hID0gYW50ZERyYXdlcihtb2RhbCksIG9uQ2xvc2UgPSBfYS5vbkNsb3NlLCBhZnRlck9wZW5DaGFuZ2UgPSBfYS5hZnRlclZpc2libGVDaGFuZ2U7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb3BlbjogbW9kYWwudmlzaWJsZSxcbiAgICAgICAgb25DbG9zZTogb25DbG9zZSxcbiAgICAgICAgYWZ0ZXJPcGVuQ2hhbmdlOiBhZnRlck9wZW5DaGFuZ2UsXG4gICAgfTtcbn07XG5leHBvcnQgdmFyIG11aURpYWxvZyA9IGZ1bmN0aW9uIChtb2RhbCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIG9wZW46IG1vZGFsLnZpc2libGUsXG4gICAgICAgIG9uQ2xvc2U6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG1vZGFsLmhpZGUoKTsgfSxcbiAgICAgICAgb25FeGl0ZWQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIG1vZGFsLnJlc29sdmVIaWRlKCk7XG4gICAgICAgICAgICAhbW9kYWwua2VlcE1vdW50ZWQgJiYgbW9kYWwucmVtb3ZlKCk7XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5leHBvcnQgdmFyIG11aURpYWxvZ1Y1ID0gZnVuY3Rpb24gKG1vZGFsKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb3BlbjogbW9kYWwudmlzaWJsZSxcbiAgICAgICAgb25DbG9zZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gbW9kYWwuaGlkZSgpOyB9LFxuICAgICAgICBUcmFuc2l0aW9uUHJvcHM6IHtcbiAgICAgICAgICAgIG9uRXhpdGVkOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgbW9kYWwucmVzb2x2ZUhpZGUoKTtcbiAgICAgICAgICAgICAgICAhbW9kYWwua2VlcE1vdW50ZWQgJiYgbW9kYWwucmVtb3ZlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgIH07XG59O1xuZXhwb3J0IHZhciBib290c3RyYXBEaWFsb2cgPSBmdW5jdGlvbiAobW9kYWwpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzaG93OiBtb2RhbC52aXNpYmxlLFxuICAgICAgICBvbkhpZGU6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG1vZGFsLmhpZGUoKTsgfSxcbiAgICAgICAgb25FeGl0ZWQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIG1vZGFsLnJlc29sdmVIaWRlKCk7XG4gICAgICAgICAgICAhbW9kYWwua2VlcE1vdW50ZWQgJiYgbW9kYWwucmVtb3ZlKCk7XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG52YXIgTmljZU1vZGFsID0ge1xuICAgIFByb3ZpZGVyOiBQcm92aWRlcixcbiAgICBNb2RhbERlZjogTW9kYWxEZWYsXG4gICAgTW9kYWxIb2xkZXI6IE1vZGFsSG9sZGVyLFxuICAgIE5pY2VNb2RhbENvbnRleHQ6IE5pY2VNb2RhbENvbnRleHQsXG4gICAgY3JlYXRlOiBjcmVhdGUsXG4gICAgcmVnaXN0ZXI6IHJlZ2lzdGVyLFxuICAgIGdldE1vZGFsOiBnZXRNb2RhbCxcbiAgICBzaG93OiBzaG93LFxuICAgIGhpZGU6IGhpZGUsXG4gICAgcmVtb3ZlOiByZW1vdmUsXG4gICAgdXNlTW9kYWw6IHVzZU1vZGFsLFxuICAgIHJlZHVjZXI6IHJlZHVjZXIsXG4gICAgYW50ZE1vZGFsOiBhbnRkTW9kYWwsXG4gICAgYW50ZERyYXdlcjogYW50ZERyYXdlcixcbiAgICBtdWlEaWFsb2c6IG11aURpYWxvZyxcbiAgICBib290c3RyYXBEaWFsb2c6IGJvb3RzdHJhcERpYWxvZyxcbn07XG5leHBvcnQgZGVmYXVsdCBOaWNlTW9kYWw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiLCJcbmV4cG9ydCBjbGFzcyBTaG9wIHtcbiAgICBpZDogbnVtYmVyID0gMFxuICAgIG5hbWU6IHN0cmluZyA9IFwiXCJcbiAgICB1dWlkOiBzdHJpbmcgPSBcIlwiXG4gICAgYmFza2V0RmllbGQxOiBzdHJpbmcgPSBcIlwiXG4gICAgYmFza2V0RmllbGQyOiBzdHJpbmcgPSBcIlwiXG4gICAgYmFza2V0UG9zRmllbGQxOiBzdHJpbmcgPSBcIlwiXG4gICAgYmFza2V0UG9zRmllbGQyOiBzdHJpbmcgPSBcIlwiXG5cbiAgICBwYXJzZUZyb21Kc29uKGl0ZW06IGFueSkge1xuICAgICAgICB0aGlzLmlkID0gaXRlbS5zaG9wLmlkXG4gICAgICAgIHRoaXMubmFtZSA9IGl0ZW0uc2hvcC5uYW1lXG4gICAgICAgIHRoaXMudXVpZCA9IGl0ZW0uc2hvcC51dWlkXG4gICAgICAgIHRoaXMuYmFza2V0RmllbGQxID0gaXRlbS5zaG9wLmJhc2tldEZpZWxkMVxuICAgICAgICB0aGlzLmJhc2tldEZpZWxkMiA9IGl0ZW0uc2hvcC5iYXNrZXRGaWVsZDJcbiAgICAgICAgdGhpcy5iYXNrZXRQb3NGaWVsZDEgPSBpdGVtLnNob3AuYmFza2V0UG9zRmllbGQxXG4gICAgICAgIHRoaXMuYmFza2V0UG9zRmllbGQyID0gaXRlbS5zaG9wLmJhc2tldFBvc0ZpZWxkMlxuICAgIH1cbn0iLCIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFJlYWN0UHJvcFR5cGVzU2VjcmV0ID0gJ1NFQ1JFVF9ET19OT1RfUEFTU19USElTX09SX1lPVV9XSUxMX0JFX0ZJUkVEJztcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdFByb3BUeXBlc1NlY3JldDtcbiIsIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSByZXF1aXJlKCcuL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldCcpO1xuXG5mdW5jdGlvbiBlbXB0eUZ1bmN0aW9uKCkge31cbmZ1bmN0aW9uIGVtcHR5RnVuY3Rpb25XaXRoUmVzZXQoKSB7fVxuZW1wdHlGdW5jdGlvbldpdGhSZXNldC5yZXNldFdhcm5pbmdDYWNoZSA9IGVtcHR5RnVuY3Rpb247XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oKSB7XG4gIGZ1bmN0aW9uIHNoaW0ocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lLCBzZWNyZXQpIHtcbiAgICBpZiAoc2VjcmV0ID09PSBSZWFjdFByb3BUeXBlc1NlY3JldCkge1xuICAgICAgLy8gSXQgaXMgc3RpbGwgc2FmZSB3aGVuIGNhbGxlZCBmcm9tIFJlYWN0LlxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgZXJyID0gbmV3IEVycm9yKFxuICAgICAgJ0NhbGxpbmcgUHJvcFR5cGVzIHZhbGlkYXRvcnMgZGlyZWN0bHkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgYHByb3AtdHlwZXNgIHBhY2thZ2UuICcgK1xuICAgICAgJ1VzZSBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKSB0byBjYWxsIHRoZW0uICcgK1xuICAgICAgJ1JlYWQgbW9yZSBhdCBodHRwOi8vZmIubWUvdXNlLWNoZWNrLXByb3AtdHlwZXMnXG4gICAgKTtcbiAgICBlcnIubmFtZSA9ICdJbnZhcmlhbnQgVmlvbGF0aW9uJztcbiAgICB0aHJvdyBlcnI7XG4gIH07XG4gIHNoaW0uaXNSZXF1aXJlZCA9IHNoaW07XG4gIGZ1bmN0aW9uIGdldFNoaW0oKSB7XG4gICAgcmV0dXJuIHNoaW07XG4gIH07XG4gIC8vIEltcG9ydGFudCFcbiAgLy8gS2VlcCB0aGlzIGxpc3QgaW4gc3luYyB3aXRoIHByb2R1Y3Rpb24gdmVyc2lvbiBpbiBgLi9mYWN0b3J5V2l0aFR5cGVDaGVja2Vycy5qc2AuXG4gIHZhciBSZWFjdFByb3BUeXBlcyA9IHtcbiAgICBhcnJheTogc2hpbSxcbiAgICBiaWdpbnQ6IHNoaW0sXG4gICAgYm9vbDogc2hpbSxcbiAgICBmdW5jOiBzaGltLFxuICAgIG51bWJlcjogc2hpbSxcbiAgICBvYmplY3Q6IHNoaW0sXG4gICAgc3RyaW5nOiBzaGltLFxuICAgIHN5bWJvbDogc2hpbSxcblxuICAgIGFueTogc2hpbSxcbiAgICBhcnJheU9mOiBnZXRTaGltLFxuICAgIGVsZW1lbnQ6IHNoaW0sXG4gICAgZWxlbWVudFR5cGU6IHNoaW0sXG4gICAgaW5zdGFuY2VPZjogZ2V0U2hpbSxcbiAgICBub2RlOiBzaGltLFxuICAgIG9iamVjdE9mOiBnZXRTaGltLFxuICAgIG9uZU9mOiBnZXRTaGltLFxuICAgIG9uZU9mVHlwZTogZ2V0U2hpbSxcbiAgICBzaGFwZTogZ2V0U2hpbSxcbiAgICBleGFjdDogZ2V0U2hpbSxcblxuICAgIGNoZWNrUHJvcFR5cGVzOiBlbXB0eUZ1bmN0aW9uV2l0aFJlc2V0LFxuICAgIHJlc2V0V2FybmluZ0NhY2hlOiBlbXB0eUZ1bmN0aW9uXG4gIH07XG5cbiAgUmVhY3RQcm9wVHlwZXMuUHJvcFR5cGVzID0gUmVhY3RQcm9wVHlwZXM7XG5cbiAgcmV0dXJuIFJlYWN0UHJvcFR5cGVzO1xufTtcbiIsIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIFJlYWN0SXMgPSByZXF1aXJlKCdyZWFjdC1pcycpO1xuXG4gIC8vIEJ5IGV4cGxpY2l0bHkgdXNpbmcgYHByb3AtdHlwZXNgIHlvdSBhcmUgb3B0aW5nIGludG8gbmV3IGRldmVsb3BtZW50IGJlaGF2aW9yLlxuICAvLyBodHRwOi8vZmIubWUvcHJvcC10eXBlcy1pbi1wcm9kXG4gIHZhciB0aHJvd09uRGlyZWN0QWNjZXNzID0gdHJ1ZTtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2ZhY3RvcnlXaXRoVHlwZUNoZWNrZXJzJykoUmVhY3RJcy5pc0VsZW1lbnQsIHRocm93T25EaXJlY3RBY2Nlc3MpO1xufSBlbHNlIHtcbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgcHJvZHVjdGlvbiBiZWhhdmlvci5cbiAgLy8gaHR0cDovL2ZiLm1lL3Byb3AtdHlwZXMtaW4tcHJvZFxuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZmFjdG9yeVdpdGhUaHJvd2luZ1NoaW1zJykoKTtcbn1cbiIsImZ1bmN0aW9uIF90eXBlb2Yobykge1xuICBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7XG5cbiAgcmV0dXJuIF90eXBlb2YgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBcInN5bWJvbFwiID09IHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPyBmdW5jdGlvbiAobykge1xuICAgIHJldHVybiB0eXBlb2YgbztcbiAgfSA6IGZ1bmN0aW9uIChvKSB7XG4gICAgcmV0dXJuIG8gJiYgXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgby5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG8gIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG87XG4gIH0sIF90eXBlb2Yobyk7XG59XG5leHBvcnQgeyBfdHlwZW9mIGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgX3R5cGVvZiBmcm9tIFwiLi90eXBlb2YuanNcIjtcbmZ1bmN0aW9uIHRvUHJpbWl0aXZlKHQsIHIpIHtcbiAgaWYgKFwib2JqZWN0XCIgIT0gX3R5cGVvZih0KSB8fCAhdCkgcmV0dXJuIHQ7XG4gIHZhciBlID0gdFtTeW1ib2wudG9QcmltaXRpdmVdO1xuICBpZiAodm9pZCAwICE9PSBlKSB7XG4gICAgdmFyIGkgPSBlLmNhbGwodCwgciB8fCBcImRlZmF1bHRcIik7XG4gICAgaWYgKFwib2JqZWN0XCIgIT0gX3R5cGVvZihpKSkgcmV0dXJuIGk7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpO1xuICB9XG4gIHJldHVybiAoXCJzdHJpbmdcIiA9PT0gciA/IFN0cmluZyA6IE51bWJlcikodCk7XG59XG5leHBvcnQgeyB0b1ByaW1pdGl2ZSBhcyBkZWZhdWx0IH07IiwiaW1wb3J0IF90eXBlb2YgZnJvbSBcIi4vdHlwZW9mLmpzXCI7XG5pbXBvcnQgdG9QcmltaXRpdmUgZnJvbSBcIi4vdG9QcmltaXRpdmUuanNcIjtcbmZ1bmN0aW9uIHRvUHJvcGVydHlLZXkodCkge1xuICB2YXIgaSA9IHRvUHJpbWl0aXZlKHQsIFwic3RyaW5nXCIpO1xuICByZXR1cm4gXCJzeW1ib2xcIiA9PSBfdHlwZW9mKGkpID8gaSA6IGkgKyBcIlwiO1xufVxuZXhwb3J0IHsgdG9Qcm9wZXJ0eUtleSBhcyBkZWZhdWx0IH07IiwiaW1wb3J0IHRvUHJvcGVydHlLZXkgZnJvbSBcIi4vdG9Qcm9wZXJ0eUtleS5qc1wiO1xuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KGUsIHIsIHQpIHtcbiAgcmV0dXJuIChyID0gdG9Qcm9wZXJ0eUtleShyKSkgaW4gZSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCByLCB7XG4gICAgdmFsdWU6IHQsXG4gICAgZW51bWVyYWJsZTogITAsXG4gICAgY29uZmlndXJhYmxlOiAhMCxcbiAgICB3cml0YWJsZTogITBcbiAgfSkgOiBlW3JdID0gdCwgZTtcbn1cbmV4cG9ydCB7IF9kZWZpbmVQcm9wZXJ0eSBhcyBkZWZhdWx0IH07IiwiaW1wb3J0IGRlZmluZVByb3BlcnR5IGZyb20gXCIuL2RlZmluZVByb3BlcnR5LmpzXCI7XG5mdW5jdGlvbiBvd25LZXlzKGUsIHIpIHtcbiAgdmFyIHQgPSBPYmplY3Qua2V5cyhlKTtcbiAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgICB2YXIgbyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7XG4gICAgciAmJiAobyA9IG8uZmlsdGVyKGZ1bmN0aW9uIChyKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLCByKS5lbnVtZXJhYmxlO1xuICAgIH0pKSwgdC5wdXNoLmFwcGx5KHQsIG8pO1xuICB9XG4gIHJldHVybiB0O1xufVxuZnVuY3Rpb24gX29iamVjdFNwcmVhZDIoZSkge1xuICBmb3IgKHZhciByID0gMTsgciA8IGFyZ3VtZW50cy5sZW5ndGg7IHIrKykge1xuICAgIHZhciB0ID0gbnVsbCAhPSBhcmd1bWVudHNbcl0gPyBhcmd1bWVudHNbcl0gOiB7fTtcbiAgICByICUgMiA/IG93bktleXMoT2JqZWN0KHQpLCAhMCkuZm9yRWFjaChmdW5jdGlvbiAocikge1xuICAgICAgZGVmaW5lUHJvcGVydHkoZSwgciwgdFtyXSk7XG4gICAgfSkgOiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKSA6IG93bktleXMoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgciwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LCByKSk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGU7XG59XG5leHBvcnQgeyBfb2JqZWN0U3ByZWFkMiBhcyBkZWZhdWx0IH07IiwiZnVuY3Rpb24gX2FycmF5V2l0aEhvbGVzKHIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkocikpIHJldHVybiByO1xufVxuZXhwb3J0IHsgX2FycmF5V2l0aEhvbGVzIGFzIGRlZmF1bHQgfTsiLCJmdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5TGltaXQociwgbCkge1xuICB2YXIgdCA9IG51bGwgPT0gciA/IG51bGwgOiBcInVuZGVmaW5lZFwiICE9IHR5cGVvZiBTeW1ib2wgJiYgcltTeW1ib2wuaXRlcmF0b3JdIHx8IHJbXCJAQGl0ZXJhdG9yXCJdO1xuICBpZiAobnVsbCAhPSB0KSB7XG4gICAgdmFyIGUsXG4gICAgICBuLFxuICAgICAgaSxcbiAgICAgIHUsXG4gICAgICBhID0gW10sXG4gICAgICBmID0gITAsXG4gICAgICBvID0gITE7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChpID0gKHQgPSB0LmNhbGwocikpLm5leHQsIDAgPT09IGwpIHtcbiAgICAgICAgaWYgKE9iamVjdCh0KSAhPT0gdCkgcmV0dXJuO1xuICAgICAgICBmID0gITE7XG4gICAgICB9IGVsc2UgZm9yICg7ICEoZiA9IChlID0gaS5jYWxsKHQpKS5kb25lKSAmJiAoYS5wdXNoKGUudmFsdWUpLCBhLmxlbmd0aCAhPT0gbCk7IGYgPSAhMCk7XG4gICAgfSBjYXRjaCAocikge1xuICAgICAgbyA9ICEwLCBuID0gcjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKCFmICYmIG51bGwgIT0gdFtcInJldHVyblwiXSAmJiAodSA9IHRbXCJyZXR1cm5cIl0oKSwgT2JqZWN0KHUpICE9PSB1KSkgcmV0dXJuO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKG8pIHRocm93IG47XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhO1xuICB9XG59XG5leHBvcnQgeyBfaXRlcmFibGVUb0FycmF5TGltaXQgYXMgZGVmYXVsdCB9OyIsImZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KHIsIGEpIHtcbiAgKG51bGwgPT0gYSB8fCBhID4gci5sZW5ndGgpICYmIChhID0gci5sZW5ndGgpO1xuICBmb3IgKHZhciBlID0gMCwgbiA9IEFycmF5KGEpOyBlIDwgYTsgZSsrKSBuW2VdID0gcltlXTtcbiAgcmV0dXJuIG47XG59XG5leHBvcnQgeyBfYXJyYXlMaWtlVG9BcnJheSBhcyBkZWZhdWx0IH07IiwiaW1wb3J0IGFycmF5TGlrZVRvQXJyYXkgZnJvbSBcIi4vYXJyYXlMaWtlVG9BcnJheS5qc1wiO1xuZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KHIsIGEpIHtcbiAgaWYgKHIpIHtcbiAgICBpZiAoXCJzdHJpbmdcIiA9PSB0eXBlb2YgcikgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkociwgYSk7XG4gICAgdmFyIHQgPSB7fS50b1N0cmluZy5jYWxsKHIpLnNsaWNlKDgsIC0xKTtcbiAgICByZXR1cm4gXCJPYmplY3RcIiA9PT0gdCAmJiByLmNvbnN0cnVjdG9yICYmICh0ID0gci5jb25zdHJ1Y3Rvci5uYW1lKSwgXCJNYXBcIiA9PT0gdCB8fCBcIlNldFwiID09PSB0ID8gQXJyYXkuZnJvbShyKSA6IFwiQXJndW1lbnRzXCIgPT09IHQgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkgPyBhcnJheUxpa2VUb0FycmF5KHIsIGEpIDogdm9pZCAwO1xuICB9XG59XG5leHBvcnQgeyBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkgYXMgZGVmYXVsdCB9OyIsImZ1bmN0aW9uIF9ub25JdGVyYWJsZVJlc3QoKSB7XG4gIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7XG59XG5leHBvcnQgeyBfbm9uSXRlcmFibGVSZXN0IGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgYXJyYXlXaXRoSG9sZXMgZnJvbSBcIi4vYXJyYXlXaXRoSG9sZXMuanNcIjtcbmltcG9ydCBpdGVyYWJsZVRvQXJyYXlMaW1pdCBmcm9tIFwiLi9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qc1wiO1xuaW1wb3J0IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IGZyb20gXCIuL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzXCI7XG5pbXBvcnQgbm9uSXRlcmFibGVSZXN0IGZyb20gXCIuL25vbkl0ZXJhYmxlUmVzdC5qc1wiO1xuZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkociwgZSkge1xuICByZXR1cm4gYXJyYXlXaXRoSG9sZXMocikgfHwgaXRlcmFibGVUb0FycmF5TGltaXQociwgZSkgfHwgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkociwgZSkgfHwgbm9uSXRlcmFibGVSZXN0KCk7XG59XG5leHBvcnQgeyBfc2xpY2VkVG9BcnJheSBhcyBkZWZhdWx0IH07IiwiZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UociwgZSkge1xuICBpZiAobnVsbCA9PSByKSByZXR1cm4ge307XG4gIHZhciB0ID0ge307XG4gIGZvciAodmFyIG4gaW4gcikgaWYgKHt9Lmhhc093blByb3BlcnR5LmNhbGwociwgbikpIHtcbiAgICBpZiAoZS5pbmNsdWRlcyhuKSkgY29udGludWU7XG4gICAgdFtuXSA9IHJbbl07XG4gIH1cbiAgcmV0dXJuIHQ7XG59XG5leHBvcnQgeyBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSBhcyBkZWZhdWx0IH07IiwiaW1wb3J0IG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UgZnJvbSBcIi4vb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZS5qc1wiO1xuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKGUsIHQpIHtcbiAgaWYgKG51bGwgPT0gZSkgcmV0dXJuIHt9O1xuICB2YXIgbyxcbiAgICByLFxuICAgIGkgPSBvYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKGUsIHQpO1xuICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykge1xuICAgIHZhciBzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtcbiAgICBmb3IgKHIgPSAwOyByIDwgcy5sZW5ndGg7IHIrKykgbyA9IHNbcl0sIHQuaW5jbHVkZXMobykgfHwge30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLCBvKSAmJiAoaVtvXSA9IGVbb10pO1xuICB9XG4gIHJldHVybiBpO1xufVxuZXhwb3J0IHsgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyJztcbmltcG9ydCBfc2xpY2VkVG9BcnJheSBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zbGljZWRUb0FycmF5JztcbmltcG9ydCBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0V2l0aG91dFByb3BlcnRpZXMnO1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuXG52YXIgX2V4Y2x1ZGVkID0gW1wiZGVmYXVsdElucHV0VmFsdWVcIiwgXCJkZWZhdWx0TWVudUlzT3BlblwiLCBcImRlZmF1bHRWYWx1ZVwiLCBcImlucHV0VmFsdWVcIiwgXCJtZW51SXNPcGVuXCIsIFwib25DaGFuZ2VcIiwgXCJvbklucHV0Q2hhbmdlXCIsIFwib25NZW51Q2xvc2VcIiwgXCJvbk1lbnVPcGVuXCIsIFwidmFsdWVcIl07XG5mdW5jdGlvbiB1c2VTdGF0ZU1hbmFnZXIoX3JlZikge1xuICB2YXIgX3JlZiRkZWZhdWx0SW5wdXRWYWx1ID0gX3JlZi5kZWZhdWx0SW5wdXRWYWx1ZSxcbiAgICBkZWZhdWx0SW5wdXRWYWx1ZSA9IF9yZWYkZGVmYXVsdElucHV0VmFsdSA9PT0gdm9pZCAwID8gJycgOiBfcmVmJGRlZmF1bHRJbnB1dFZhbHUsXG4gICAgX3JlZiRkZWZhdWx0TWVudUlzT3BlID0gX3JlZi5kZWZhdWx0TWVudUlzT3BlbixcbiAgICBkZWZhdWx0TWVudUlzT3BlbiA9IF9yZWYkZGVmYXVsdE1lbnVJc09wZSA9PT0gdm9pZCAwID8gZmFsc2UgOiBfcmVmJGRlZmF1bHRNZW51SXNPcGUsXG4gICAgX3JlZiRkZWZhdWx0VmFsdWUgPSBfcmVmLmRlZmF1bHRWYWx1ZSxcbiAgICBkZWZhdWx0VmFsdWUgPSBfcmVmJGRlZmF1bHRWYWx1ZSA9PT0gdm9pZCAwID8gbnVsbCA6IF9yZWYkZGVmYXVsdFZhbHVlLFxuICAgIHByb3BzSW5wdXRWYWx1ZSA9IF9yZWYuaW5wdXRWYWx1ZSxcbiAgICBwcm9wc01lbnVJc09wZW4gPSBfcmVmLm1lbnVJc09wZW4sXG4gICAgcHJvcHNPbkNoYW5nZSA9IF9yZWYub25DaGFuZ2UsXG4gICAgcHJvcHNPbklucHV0Q2hhbmdlID0gX3JlZi5vbklucHV0Q2hhbmdlLFxuICAgIHByb3BzT25NZW51Q2xvc2UgPSBfcmVmLm9uTWVudUNsb3NlLFxuICAgIHByb3BzT25NZW51T3BlbiA9IF9yZWYub25NZW51T3BlbixcbiAgICBwcm9wc1ZhbHVlID0gX3JlZi52YWx1ZSxcbiAgICByZXN0U2VsZWN0UHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3JlZiwgX2V4Y2x1ZGVkKTtcbiAgdmFyIF91c2VTdGF0ZSA9IHVzZVN0YXRlKHByb3BzSW5wdXRWYWx1ZSAhPT0gdW5kZWZpbmVkID8gcHJvcHNJbnB1dFZhbHVlIDogZGVmYXVsdElucHV0VmFsdWUpLFxuICAgIF91c2VTdGF0ZTIgPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdGUsIDIpLFxuICAgIHN0YXRlSW5wdXRWYWx1ZSA9IF91c2VTdGF0ZTJbMF0sXG4gICAgc2V0U3RhdGVJbnB1dFZhbHVlID0gX3VzZVN0YXRlMlsxXTtcbiAgdmFyIF91c2VTdGF0ZTMgPSB1c2VTdGF0ZShwcm9wc01lbnVJc09wZW4gIT09IHVuZGVmaW5lZCA/IHByb3BzTWVudUlzT3BlbiA6IGRlZmF1bHRNZW51SXNPcGVuKSxcbiAgICBfdXNlU3RhdGU0ID0gX3NsaWNlZFRvQXJyYXkoX3VzZVN0YXRlMywgMiksXG4gICAgc3RhdGVNZW51SXNPcGVuID0gX3VzZVN0YXRlNFswXSxcbiAgICBzZXRTdGF0ZU1lbnVJc09wZW4gPSBfdXNlU3RhdGU0WzFdO1xuICB2YXIgX3VzZVN0YXRlNSA9IHVzZVN0YXRlKHByb3BzVmFsdWUgIT09IHVuZGVmaW5lZCA/IHByb3BzVmFsdWUgOiBkZWZhdWx0VmFsdWUpLFxuICAgIF91c2VTdGF0ZTYgPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdGU1LCAyKSxcbiAgICBzdGF0ZVZhbHVlID0gX3VzZVN0YXRlNlswXSxcbiAgICBzZXRTdGF0ZVZhbHVlID0gX3VzZVN0YXRlNlsxXTtcbiAgdmFyIG9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHZhbHVlLCBhY3Rpb25NZXRhKSB7XG4gICAgaWYgKHR5cGVvZiBwcm9wc09uQ2hhbmdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwcm9wc09uQ2hhbmdlKHZhbHVlLCBhY3Rpb25NZXRhKTtcbiAgICB9XG4gICAgc2V0U3RhdGVWYWx1ZSh2YWx1ZSk7XG4gIH0sIFtwcm9wc09uQ2hhbmdlXSk7XG4gIHZhciBvbklucHV0Q2hhbmdlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHZhbHVlLCBhY3Rpb25NZXRhKSB7XG4gICAgdmFyIG5ld1ZhbHVlO1xuICAgIGlmICh0eXBlb2YgcHJvcHNPbklucHV0Q2hhbmdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBuZXdWYWx1ZSA9IHByb3BzT25JbnB1dENoYW5nZSh2YWx1ZSwgYWN0aW9uTWV0YSk7XG4gICAgfVxuICAgIHNldFN0YXRlSW5wdXRWYWx1ZShuZXdWYWx1ZSAhPT0gdW5kZWZpbmVkID8gbmV3VmFsdWUgOiB2YWx1ZSk7XG4gIH0sIFtwcm9wc09uSW5wdXRDaGFuZ2VdKTtcbiAgdmFyIG9uTWVudU9wZW4gPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHR5cGVvZiBwcm9wc09uTWVudU9wZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHByb3BzT25NZW51T3BlbigpO1xuICAgIH1cbiAgICBzZXRTdGF0ZU1lbnVJc09wZW4odHJ1ZSk7XG4gIH0sIFtwcm9wc09uTWVudU9wZW5dKTtcbiAgdmFyIG9uTWVudUNsb3NlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKCkge1xuICAgIGlmICh0eXBlb2YgcHJvcHNPbk1lbnVDbG9zZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcHJvcHNPbk1lbnVDbG9zZSgpO1xuICAgIH1cbiAgICBzZXRTdGF0ZU1lbnVJc09wZW4oZmFsc2UpO1xuICB9LCBbcHJvcHNPbk1lbnVDbG9zZV0pO1xuICB2YXIgaW5wdXRWYWx1ZSA9IHByb3BzSW5wdXRWYWx1ZSAhPT0gdW5kZWZpbmVkID8gcHJvcHNJbnB1dFZhbHVlIDogc3RhdGVJbnB1dFZhbHVlO1xuICB2YXIgbWVudUlzT3BlbiA9IHByb3BzTWVudUlzT3BlbiAhPT0gdW5kZWZpbmVkID8gcHJvcHNNZW51SXNPcGVuIDogc3RhdGVNZW51SXNPcGVuO1xuICB2YXIgdmFsdWUgPSBwcm9wc1ZhbHVlICE9PSB1bmRlZmluZWQgPyBwcm9wc1ZhbHVlIDogc3RhdGVWYWx1ZTtcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgcmVzdFNlbGVjdFByb3BzKSwge30sIHtcbiAgICBpbnB1dFZhbHVlOiBpbnB1dFZhbHVlLFxuICAgIG1lbnVJc09wZW46IG1lbnVJc09wZW4sXG4gICAgb25DaGFuZ2U6IG9uQ2hhbmdlLFxuICAgIG9uSW5wdXRDaGFuZ2U6IG9uSW5wdXRDaGFuZ2UsXG4gICAgb25NZW51Q2xvc2U6IG9uTWVudUNsb3NlLFxuICAgIG9uTWVudU9wZW46IG9uTWVudU9wZW4sXG4gICAgdmFsdWU6IHZhbHVlXG4gIH0pO1xufVxuXG5leHBvcnQgeyB1c2VTdGF0ZU1hbmFnZXIgYXMgdSB9O1xuIiwiZnVuY3Rpb24gX2V4dGVuZHMoKSB7XG4gIHJldHVybiBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gPyBPYmplY3QuYXNzaWduLmJpbmQoKSA6IGZ1bmN0aW9uIChuKSB7XG4gICAgZm9yICh2YXIgZSA9IDE7IGUgPCBhcmd1bWVudHMubGVuZ3RoOyBlKyspIHtcbiAgICAgIHZhciB0ID0gYXJndW1lbnRzW2VdO1xuICAgICAgZm9yICh2YXIgciBpbiB0KSAoe30pLmhhc093blByb3BlcnR5LmNhbGwodCwgcikgJiYgKG5bcl0gPSB0W3JdKTtcbiAgICB9XG4gICAgcmV0dXJuIG47XG4gIH0sIF9leHRlbmRzLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG59XG5leHBvcnQgeyBfZXh0ZW5kcyBhcyBkZWZhdWx0IH07IiwiZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGEsIG4pIHtcbiAgaWYgKCEoYSBpbnN0YW5jZW9mIG4pKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpO1xufVxuZXhwb3J0IHsgX2NsYXNzQ2FsbENoZWNrIGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgdG9Qcm9wZXJ0eUtleSBmcm9tIFwiLi90b1Byb3BlcnR5S2V5LmpzXCI7XG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyhlLCByKSB7XG4gIGZvciAodmFyIHQgPSAwOyB0IDwgci5sZW5ndGg7IHQrKykge1xuICAgIHZhciBvID0gclt0XTtcbiAgICBvLmVudW1lcmFibGUgPSBvLmVudW1lcmFibGUgfHwgITEsIG8uY29uZmlndXJhYmxlID0gITAsIFwidmFsdWVcIiBpbiBvICYmIChvLndyaXRhYmxlID0gITApLCBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgdG9Qcm9wZXJ0eUtleShvLmtleSksIG8pO1xuICB9XG59XG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoZSwgciwgdCkge1xuICByZXR1cm4gciAmJiBfZGVmaW5lUHJvcGVydGllcyhlLnByb3RvdHlwZSwgciksIHQgJiYgX2RlZmluZVByb3BlcnRpZXMoZSwgdCksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcInByb3RvdHlwZVwiLCB7XG4gICAgd3JpdGFibGU6ICExXG4gIH0pLCBlO1xufVxuZXhwb3J0IHsgX2NyZWF0ZUNsYXNzIGFzIGRlZmF1bHQgfTsiLCJmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YodCwgZSkge1xuICByZXR1cm4gX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKSA6IGZ1bmN0aW9uICh0LCBlKSB7XG4gICAgcmV0dXJuIHQuX19wcm90b19fID0gZSwgdDtcbiAgfSwgX3NldFByb3RvdHlwZU9mKHQsIGUpO1xufVxuZXhwb3J0IHsgX3NldFByb3RvdHlwZU9mIGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgc2V0UHJvdG90eXBlT2YgZnJvbSBcIi4vc2V0UHJvdG90eXBlT2YuanNcIjtcbmZ1bmN0aW9uIF9pbmhlcml0cyh0LCBlKSB7XG4gIGlmIChcImZ1bmN0aW9uXCIgIT0gdHlwZW9mIGUgJiYgbnVsbCAhPT0gZSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO1xuICB0LnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoZSAmJiBlLnByb3RvdHlwZSwge1xuICAgIGNvbnN0cnVjdG9yOiB7XG4gICAgICB2YWx1ZTogdCxcbiAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgIGNvbmZpZ3VyYWJsZTogITBcbiAgICB9XG4gIH0pLCBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgXCJwcm90b3R5cGVcIiwge1xuICAgIHdyaXRhYmxlOiAhMVxuICB9KSwgZSAmJiBzZXRQcm90b3R5cGVPZih0LCBlKTtcbn1cbmV4cG9ydCB7IF9pbmhlcml0cyBhcyBkZWZhdWx0IH07IiwiZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKHQpIHtcbiAgcmV0dXJuIF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCkgOiBmdW5jdGlvbiAodCkge1xuICAgIHJldHVybiB0Ll9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk7XG4gIH0sIF9nZXRQcm90b3R5cGVPZih0KTtcbn1cbmV4cG9ydCB7IF9nZXRQcm90b3R5cGVPZiBhcyBkZWZhdWx0IH07IiwiZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHtcbiAgdHJ5IHtcbiAgICB2YXIgdCA9ICFCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbiwgW10sIGZ1bmN0aW9uICgpIHt9KSk7XG4gIH0gY2F0Y2ggKHQpIHt9XG4gIHJldHVybiAoX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IGZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7XG4gICAgcmV0dXJuICEhdDtcbiAgfSkoKTtcbn1cbmV4cG9ydCB7IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgYXMgZGVmYXVsdCB9OyIsImZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoZSkge1xuICBpZiAodm9pZCAwID09PSBlKSB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7XG4gIHJldHVybiBlO1xufVxuZXhwb3J0IHsgX2Fzc2VydFRoaXNJbml0aWFsaXplZCBhcyBkZWZhdWx0IH07IiwiaW1wb3J0IF90eXBlb2YgZnJvbSBcIi4vdHlwZW9mLmpzXCI7XG5pbXBvcnQgYXNzZXJ0VGhpc0luaXRpYWxpemVkIGZyb20gXCIuL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qc1wiO1xuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odCwgZSkge1xuICBpZiAoZSAmJiAoXCJvYmplY3RcIiA9PSBfdHlwZW9mKGUpIHx8IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgZSkpIHJldHVybiBlO1xuICBpZiAodm9pZCAwICE9PSBlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWRcIik7XG4gIHJldHVybiBhc3NlcnRUaGlzSW5pdGlhbGl6ZWQodCk7XG59XG5leHBvcnQgeyBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiBhcyBkZWZhdWx0IH07IiwiaW1wb3J0IGdldFByb3RvdHlwZU9mIGZyb20gXCIuL2dldFByb3RvdHlwZU9mLmpzXCI7XG5pbXBvcnQgaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IGZyb20gXCIuL2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdC5qc1wiO1xuaW1wb3J0IHBvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4gZnJvbSBcIi4vcG9zc2libGVDb25zdHJ1Y3RvclJldHVybi5qc1wiO1xuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKHQpIHtcbiAgdmFyIHIgPSBpc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZSxcbiAgICAgIG8gPSBnZXRQcm90b3R5cGVPZih0KTtcbiAgICBpZiAocikge1xuICAgICAgdmFyIHMgPSBnZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjtcbiAgICAgIGUgPSBSZWZsZWN0LmNvbnN0cnVjdChvLCBhcmd1bWVudHMsIHMpO1xuICAgIH0gZWxzZSBlID0gby5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIHJldHVybiBwb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIGUpO1xuICB9O1xufVxuZXhwb3J0IHsgX2NyZWF0ZVN1cGVyIGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgYXJyYXlMaWtlVG9BcnJheSBmcm9tIFwiLi9hcnJheUxpa2VUb0FycmF5LmpzXCI7XG5mdW5jdGlvbiBfYXJyYXlXaXRob3V0SG9sZXMocikge1xuICBpZiAoQXJyYXkuaXNBcnJheShyKSkgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkocik7XG59XG5leHBvcnQgeyBfYXJyYXlXaXRob3V0SG9sZXMgYXMgZGVmYXVsdCB9OyIsImZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkocikge1xuICBpZiAoXCJ1bmRlZmluZWRcIiAhPSB0eXBlb2YgU3ltYm9sICYmIG51bGwgIT0gcltTeW1ib2wuaXRlcmF0b3JdIHx8IG51bGwgIT0gcltcIkBAaXRlcmF0b3JcIl0pIHJldHVybiBBcnJheS5mcm9tKHIpO1xufVxuZXhwb3J0IHsgX2l0ZXJhYmxlVG9BcnJheSBhcyBkZWZhdWx0IH07IiwiZnVuY3Rpb24gX25vbkl0ZXJhYmxlU3ByZWFkKCkge1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn1cbmV4cG9ydCB7IF9ub25JdGVyYWJsZVNwcmVhZCBhcyBkZWZhdWx0IH07IiwiaW1wb3J0IGFycmF5V2l0aG91dEhvbGVzIGZyb20gXCIuL2FycmF5V2l0aG91dEhvbGVzLmpzXCI7XG5pbXBvcnQgaXRlcmFibGVUb0FycmF5IGZyb20gXCIuL2l0ZXJhYmxlVG9BcnJheS5qc1wiO1xuaW1wb3J0IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IGZyb20gXCIuL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzXCI7XG5pbXBvcnQgbm9uSXRlcmFibGVTcHJlYWQgZnJvbSBcIi4vbm9uSXRlcmFibGVTcHJlYWQuanNcIjtcbmZ1bmN0aW9uIF90b0NvbnN1bWFibGVBcnJheShyKSB7XG4gIHJldHVybiBhcnJheVdpdGhvdXRIb2xlcyhyKSB8fCBpdGVyYWJsZVRvQXJyYXkocikgfHwgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkocikgfHwgbm9uSXRlcmFibGVTcHJlYWQoKTtcbn1cbmV4cG9ydCB7IF90b0NvbnN1bWFibGVBcnJheSBhcyBkZWZhdWx0IH07IiwidmFyIGlzRGV2ZWxvcG1lbnQgPSBmYWxzZTtcblxuLypcblxuQmFzZWQgb2ZmIGdsYW1vcidzIFN0eWxlU2hlZXQsIHRoYW5rcyBTdW5pbCDinaTvuI9cblxuaGlnaCBwZXJmb3JtYW5jZSBTdHlsZVNoZWV0IGZvciBjc3MtaW4tanMgc3lzdGVtc1xuXG4tIHVzZXMgbXVsdGlwbGUgc3R5bGUgdGFncyBiZWhpbmQgdGhlIHNjZW5lcyBmb3IgbWlsbGlvbnMgb2YgcnVsZXNcbi0gdXNlcyBgaW5zZXJ0UnVsZWAgZm9yIGFwcGVuZGluZyBpbiBwcm9kdWN0aW9uIGZvciAqbXVjaCogZmFzdGVyIHBlcmZvcm1hbmNlXG5cbi8vIHVzYWdlXG5cbmltcG9ydCB7IFN0eWxlU2hlZXQgfSBmcm9tICdAZW1vdGlvbi9zaGVldCdcblxubGV0IHN0eWxlU2hlZXQgPSBuZXcgU3R5bGVTaGVldCh7IGtleTogJycsIGNvbnRhaW5lcjogZG9jdW1lbnQuaGVhZCB9KVxuXG5zdHlsZVNoZWV0Lmluc2VydCgnI2JveCB7IGJvcmRlcjogMXB4IHNvbGlkIHJlZDsgfScpXG4tIGFwcGVuZHMgYSBjc3MgcnVsZSBpbnRvIHRoZSBzdHlsZXNoZWV0XG5cbnN0eWxlU2hlZXQuZmx1c2goKVxuLSBlbXB0aWVzIHRoZSBzdHlsZXNoZWV0IG9mIGFsbCBpdHMgY29udGVudHNcblxuKi9cblxuZnVuY3Rpb24gc2hlZXRGb3JUYWcodGFnKSB7XG4gIGlmICh0YWcuc2hlZXQpIHtcbiAgICByZXR1cm4gdGFnLnNoZWV0O1xuICB9IC8vIHRoaXMgd2VpcmRuZXNzIGJyb3VnaHQgdG8geW91IGJ5IGZpcmVmb3hcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkb2N1bWVudC5zdHlsZVNoZWV0cy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChkb2N1bWVudC5zdHlsZVNoZWV0c1tpXS5vd25lck5vZGUgPT09IHRhZykge1xuICAgICAgcmV0dXJuIGRvY3VtZW50LnN0eWxlU2hlZXRzW2ldO1xuICAgIH1cbiAgfSAvLyB0aGlzIGZ1bmN0aW9uIHNob3VsZCBhbHdheXMgcmV0dXJuIHdpdGggYSB2YWx1ZVxuICAvLyBUUyBjYW4ndCB1bmRlcnN0YW5kIGl0IHRob3VnaCBzbyB3ZSBtYWtlIGl0IHN0b3AgY29tcGxhaW5pbmcgaGVyZVxuXG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlU3R5bGVFbGVtZW50KG9wdGlvbnMpIHtcbiAgdmFyIHRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gIHRhZy5zZXRBdHRyaWJ1dGUoJ2RhdGEtZW1vdGlvbicsIG9wdGlvbnMua2V5KTtcblxuICBpZiAob3B0aW9ucy5ub25jZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdGFnLnNldEF0dHJpYnV0ZSgnbm9uY2UnLCBvcHRpb25zLm5vbmNlKTtcbiAgfVxuXG4gIHRhZy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnJykpO1xuICB0YWcuc2V0QXR0cmlidXRlKCdkYXRhLXMnLCAnJyk7XG4gIHJldHVybiB0YWc7XG59XG5cbnZhciBTdHlsZVNoZWV0ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHtcbiAgLy8gVXNpbmcgTm9kZSBpbnN0ZWFkIG9mIEhUTUxFbGVtZW50IHNpbmNlIGNvbnRhaW5lciBtYXkgYmUgYSBTaGFkb3dSb290XG4gIGZ1bmN0aW9uIFN0eWxlU2hlZXQob3B0aW9ucykge1xuICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICB0aGlzLl9pbnNlcnRUYWcgPSBmdW5jdGlvbiAodGFnKSB7XG4gICAgICB2YXIgYmVmb3JlO1xuXG4gICAgICBpZiAoX3RoaXMudGFncy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgaWYgKF90aGlzLmluc2VydGlvblBvaW50KSB7XG4gICAgICAgICAgYmVmb3JlID0gX3RoaXMuaW5zZXJ0aW9uUG9pbnQubmV4dFNpYmxpbmc7XG4gICAgICAgIH0gZWxzZSBpZiAoX3RoaXMucHJlcGVuZCkge1xuICAgICAgICAgIGJlZm9yZSA9IF90aGlzLmNvbnRhaW5lci5maXJzdENoaWxkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJlZm9yZSA9IF90aGlzLmJlZm9yZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYmVmb3JlID0gX3RoaXMudGFnc1tfdGhpcy50YWdzLmxlbmd0aCAtIDFdLm5leHRTaWJsaW5nO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy5jb250YWluZXIuaW5zZXJ0QmVmb3JlKHRhZywgYmVmb3JlKTtcblxuICAgICAgX3RoaXMudGFncy5wdXNoKHRhZyk7XG4gICAgfTtcblxuICAgIHRoaXMuaXNTcGVlZHkgPSBvcHRpb25zLnNwZWVkeSA9PT0gdW5kZWZpbmVkID8gIWlzRGV2ZWxvcG1lbnQgOiBvcHRpb25zLnNwZWVkeTtcbiAgICB0aGlzLnRhZ3MgPSBbXTtcbiAgICB0aGlzLmN0ciA9IDA7XG4gICAgdGhpcy5ub25jZSA9IG9wdGlvbnMubm9uY2U7IC8vIGtleSBpcyB0aGUgdmFsdWUgb2YgdGhlIGRhdGEtZW1vdGlvbiBhdHRyaWJ1dGUsIGl0J3MgdXNlZCB0byBpZGVudGlmeSBkaWZmZXJlbnQgc2hlZXRzXG5cbiAgICB0aGlzLmtleSA9IG9wdGlvbnMua2V5O1xuICAgIHRoaXMuY29udGFpbmVyID0gb3B0aW9ucy5jb250YWluZXI7XG4gICAgdGhpcy5wcmVwZW5kID0gb3B0aW9ucy5wcmVwZW5kO1xuICAgIHRoaXMuaW5zZXJ0aW9uUG9pbnQgPSBvcHRpb25zLmluc2VydGlvblBvaW50O1xuICAgIHRoaXMuYmVmb3JlID0gbnVsbDtcbiAgfVxuXG4gIHZhciBfcHJvdG8gPSBTdHlsZVNoZWV0LnByb3RvdHlwZTtcblxuICBfcHJvdG8uaHlkcmF0ZSA9IGZ1bmN0aW9uIGh5ZHJhdGUobm9kZXMpIHtcbiAgICBub2Rlcy5mb3JFYWNoKHRoaXMuX2luc2VydFRhZyk7XG4gIH07XG5cbiAgX3Byb3RvLmluc2VydCA9IGZ1bmN0aW9uIGluc2VydChydWxlKSB7XG4gICAgLy8gdGhlIG1heCBsZW5ndGggaXMgaG93IG1hbnkgcnVsZXMgd2UgaGF2ZSBwZXIgc3R5bGUgdGFnLCBpdCdzIDY1MDAwIGluIHNwZWVkeSBtb2RlXG4gICAgLy8gaXQncyAxIGluIGRldiBiZWNhdXNlIHdlIGluc2VydCBzb3VyY2UgbWFwcyB0aGF0IG1hcCBhIHNpbmdsZSBydWxlIHRvIGEgbG9jYXRpb25cbiAgICAvLyBhbmQgeW91IGNhbiBvbmx5IGhhdmUgb25lIHNvdXJjZSBtYXAgcGVyIHN0eWxlIHRhZ1xuICAgIGlmICh0aGlzLmN0ciAlICh0aGlzLmlzU3BlZWR5ID8gNjUwMDAgOiAxKSA9PT0gMCkge1xuICAgICAgdGhpcy5faW5zZXJ0VGFnKGNyZWF0ZVN0eWxlRWxlbWVudCh0aGlzKSk7XG4gICAgfVxuXG4gICAgdmFyIHRhZyA9IHRoaXMudGFnc1t0aGlzLnRhZ3MubGVuZ3RoIC0gMV07XG5cbiAgICBpZiAodGhpcy5pc1NwZWVkeSkge1xuICAgICAgdmFyIHNoZWV0ID0gc2hlZXRGb3JUYWcodGFnKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gdGhpcyBpcyB0aGUgdWx0cmFmYXN0IHZlcnNpb24sIHdvcmtzIGFjcm9zcyBicm93c2Vyc1xuICAgICAgICAvLyB0aGUgYmlnIGRyYXdiYWNrIGlzIHRoYXQgdGhlIGNzcyB3b24ndCBiZSBlZGl0YWJsZSBpbiBkZXZ0b29sc1xuICAgICAgICBzaGVldC5pbnNlcnRSdWxlKHJ1bGUsIHNoZWV0LmNzc1J1bGVzLmxlbmd0aCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhZy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShydWxlKSk7XG4gICAgfVxuXG4gICAgdGhpcy5jdHIrKztcbiAgfTtcblxuICBfcHJvdG8uZmx1c2ggPSBmdW5jdGlvbiBmbHVzaCgpIHtcbiAgICB0aGlzLnRhZ3MuZm9yRWFjaChmdW5jdGlvbiAodGFnKSB7XG4gICAgICB2YXIgX3RhZyRwYXJlbnROb2RlO1xuXG4gICAgICByZXR1cm4gKF90YWckcGFyZW50Tm9kZSA9IHRhZy5wYXJlbnROb2RlKSA9PSBudWxsID8gdm9pZCAwIDogX3RhZyRwYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRhZyk7XG4gICAgfSk7XG4gICAgdGhpcy50YWdzID0gW107XG4gICAgdGhpcy5jdHIgPSAwO1xuICB9O1xuXG4gIHJldHVybiBTdHlsZVNoZWV0O1xufSgpO1xuXG5leHBvcnQgeyBTdHlsZVNoZWV0IH07XG4iLCJleHBvcnQgdmFyIE1TID0gJy1tcy0nXG5leHBvcnQgdmFyIE1PWiA9ICctbW96LSdcbmV4cG9ydCB2YXIgV0VCS0lUID0gJy13ZWJraXQtJ1xuXG5leHBvcnQgdmFyIENPTU1FTlQgPSAnY29tbSdcbmV4cG9ydCB2YXIgUlVMRVNFVCA9ICdydWxlJ1xuZXhwb3J0IHZhciBERUNMQVJBVElPTiA9ICdkZWNsJ1xuXG5leHBvcnQgdmFyIFBBR0UgPSAnQHBhZ2UnXG5leHBvcnQgdmFyIE1FRElBID0gJ0BtZWRpYSdcbmV4cG9ydCB2YXIgSU1QT1JUID0gJ0BpbXBvcnQnXG5leHBvcnQgdmFyIENIQVJTRVQgPSAnQGNoYXJzZXQnXG5leHBvcnQgdmFyIFZJRVdQT1JUID0gJ0B2aWV3cG9ydCdcbmV4cG9ydCB2YXIgU1VQUE9SVFMgPSAnQHN1cHBvcnRzJ1xuZXhwb3J0IHZhciBET0NVTUVOVCA9ICdAZG9jdW1lbnQnXG5leHBvcnQgdmFyIE5BTUVTUEFDRSA9ICdAbmFtZXNwYWNlJ1xuZXhwb3J0IHZhciBLRVlGUkFNRVMgPSAnQGtleWZyYW1lcydcbmV4cG9ydCB2YXIgRk9OVF9GQUNFID0gJ0Bmb250LWZhY2UnXG5leHBvcnQgdmFyIENPVU5URVJfU1RZTEUgPSAnQGNvdW50ZXItc3R5bGUnXG5leHBvcnQgdmFyIEZPTlRfRkVBVFVSRV9WQUxVRVMgPSAnQGZvbnQtZmVhdHVyZS12YWx1ZXMnXG5leHBvcnQgdmFyIExBWUVSID0gJ0BsYXllcidcbiIsIi8qKlxuICogQHBhcmFtIHtudW1iZXJ9XG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCB2YXIgYWJzID0gTWF0aC5hYnNcblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn1cbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IHZhciBmcm9tID0gU3RyaW5nLmZyb21DaGFyQ29kZVxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fVxuICogQHJldHVybiB7b2JqZWN0fVxuICovXG5leHBvcnQgdmFyIGFzc2lnbiA9IE9iamVjdC5hc3NpZ25cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7bnVtYmVyfSBsZW5ndGhcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc2ggKHZhbHVlLCBsZW5ndGgpIHtcblx0cmV0dXJuIGNoYXJhdCh2YWx1ZSwgMCkgXiA0NSA/ICgoKCgoKChsZW5ndGggPDwgMikgXiBjaGFyYXQodmFsdWUsIDApKSA8PCAyKSBeIGNoYXJhdCh2YWx1ZSwgMSkpIDw8IDIpIF4gY2hhcmF0KHZhbHVlLCAyKSkgPDwgMikgXiBjaGFyYXQodmFsdWUsIDMpIDogMFxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJpbSAodmFsdWUpIHtcblx0cmV0dXJuIHZhbHVlLnRyaW0oKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtSZWdFeHB9IHBhdHRlcm5cbiAqIEByZXR1cm4ge3N0cmluZz99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaCAodmFsdWUsIHBhdHRlcm4pIHtcblx0cmV0dXJuICh2YWx1ZSA9IHBhdHRlcm4uZXhlYyh2YWx1ZSkpID8gdmFsdWVbMF0gOiB2YWx1ZVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHsoc3RyaW5nfFJlZ0V4cCl9IHBhdHRlcm5cbiAqIEBwYXJhbSB7c3RyaW5nfSByZXBsYWNlbWVudFxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZSAodmFsdWUsIHBhdHRlcm4sIHJlcGxhY2VtZW50KSB7XG5cdHJldHVybiB2YWx1ZS5yZXBsYWNlKHBhdHRlcm4sIHJlcGxhY2VtZW50KVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtzdHJpbmd9IHNlYXJjaFxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5kZXhvZiAodmFsdWUsIHNlYXJjaCkge1xuXHRyZXR1cm4gdmFsdWUuaW5kZXhPZihzZWFyY2gpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoYXJhdCAodmFsdWUsIGluZGV4KSB7XG5cdHJldHVybiB2YWx1ZS5jaGFyQ29kZUF0KGluZGV4KSB8IDBcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7bnVtYmVyfSBiZWdpblxuICogQHBhcmFtIHtudW1iZXJ9IGVuZFxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3Vic3RyICh2YWx1ZSwgYmVnaW4sIGVuZCkge1xuXHRyZXR1cm4gdmFsdWUuc2xpY2UoYmVnaW4sIGVuZClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmxlbiAodmFsdWUpIHtcblx0cmV0dXJuIHZhbHVlLmxlbmd0aFxufVxuXG4vKipcbiAqIEBwYXJhbSB7YW55W119IHZhbHVlXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaXplb2YgKHZhbHVlKSB7XG5cdHJldHVybiB2YWx1ZS5sZW5ndGhcbn1cblxuLyoqXG4gKiBAcGFyYW0ge2FueX0gdmFsdWVcbiAqIEBwYXJhbSB7YW55W119IGFycmF5XG4gKiBAcmV0dXJuIHthbnl9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmQgKHZhbHVlLCBhcnJheSkge1xuXHRyZXR1cm4gYXJyYXkucHVzaCh2YWx1ZSksIHZhbHVlXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmdbXX0gYXJyYXlcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lIChhcnJheSwgY2FsbGJhY2spIHtcblx0cmV0dXJuIGFycmF5Lm1hcChjYWxsYmFjaykuam9pbignJylcbn1cbiIsImltcG9ydCB7ZnJvbSwgdHJpbSwgY2hhcmF0LCBzdHJsZW4sIHN1YnN0ciwgYXBwZW5kLCBhc3NpZ259IGZyb20gJy4vVXRpbGl0eS5qcydcblxuZXhwb3J0IHZhciBsaW5lID0gMVxuZXhwb3J0IHZhciBjb2x1bW4gPSAxXG5leHBvcnQgdmFyIGxlbmd0aCA9IDBcbmV4cG9ydCB2YXIgcG9zaXRpb24gPSAwXG5leHBvcnQgdmFyIGNoYXJhY3RlciA9IDBcbmV4cG9ydCB2YXIgY2hhcmFjdGVycyA9ICcnXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge29iamVjdCB8IG51bGx9IHJvb3RcbiAqIEBwYXJhbSB7b2JqZWN0IHwgbnVsbH0gcGFyZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gdHlwZVxuICogQHBhcmFtIHtzdHJpbmdbXSB8IHN0cmluZ30gcHJvcHNcbiAqIEBwYXJhbSB7b2JqZWN0W10gfCBzdHJpbmd9IGNoaWxkcmVuXG4gKiBAcGFyYW0ge251bWJlcn0gbGVuZ3RoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub2RlICh2YWx1ZSwgcm9vdCwgcGFyZW50LCB0eXBlLCBwcm9wcywgY2hpbGRyZW4sIGxlbmd0aCkge1xuXHRyZXR1cm4ge3ZhbHVlOiB2YWx1ZSwgcm9vdDogcm9vdCwgcGFyZW50OiBwYXJlbnQsIHR5cGU6IHR5cGUsIHByb3BzOiBwcm9wcywgY2hpbGRyZW46IGNoaWxkcmVuLCBsaW5lOiBsaW5lLCBjb2x1bW46IGNvbHVtbiwgbGVuZ3RoOiBsZW5ndGgsIHJldHVybjogJyd9XG59XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IHJvb3RcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICogQHJldHVybiB7b2JqZWN0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29weSAocm9vdCwgcHJvcHMpIHtcblx0cmV0dXJuIGFzc2lnbihub2RlKCcnLCBudWxsLCBudWxsLCAnJywgbnVsbCwgbnVsbCwgMCksIHJvb3QsIHtsZW5ndGg6IC1yb290Lmxlbmd0aH0sIHByb3BzKVxufVxuXG4vKipcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoYXIgKCkge1xuXHRyZXR1cm4gY2hhcmFjdGVyXG59XG5cbi8qKlxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJldiAoKSB7XG5cdGNoYXJhY3RlciA9IHBvc2l0aW9uID4gMCA/IGNoYXJhdChjaGFyYWN0ZXJzLCAtLXBvc2l0aW9uKSA6IDBcblxuXHRpZiAoY29sdW1uLS0sIGNoYXJhY3RlciA9PT0gMTApXG5cdFx0Y29sdW1uID0gMSwgbGluZS0tXG5cblx0cmV0dXJuIGNoYXJhY3RlclxufVxuXG4vKipcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5leHQgKCkge1xuXHRjaGFyYWN0ZXIgPSBwb3NpdGlvbiA8IGxlbmd0aCA/IGNoYXJhdChjaGFyYWN0ZXJzLCBwb3NpdGlvbisrKSA6IDBcblxuXHRpZiAoY29sdW1uKyssIGNoYXJhY3RlciA9PT0gMTApXG5cdFx0Y29sdW1uID0gMSwgbGluZSsrXG5cblx0cmV0dXJuIGNoYXJhY3RlclxufVxuXG4vKipcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBlZWsgKCkge1xuXHRyZXR1cm4gY2hhcmF0KGNoYXJhY3RlcnMsIHBvc2l0aW9uKVxufVxuXG4vKipcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhcmV0ICgpIHtcblx0cmV0dXJuIHBvc2l0aW9uXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IGJlZ2luXG4gKiBAcGFyYW0ge251bWJlcn0gZW5kXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzbGljZSAoYmVnaW4sIGVuZCkge1xuXHRyZXR1cm4gc3Vic3RyKGNoYXJhY3RlcnMsIGJlZ2luLCBlbmQpXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHR5cGVcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRva2VuICh0eXBlKSB7XG5cdHN3aXRjaCAodHlwZSkge1xuXHRcdC8vIFxcMCBcXHQgXFxuIFxcciBcXHMgd2hpdGVzcGFjZSB0b2tlblxuXHRcdGNhc2UgMDogY2FzZSA5OiBjYXNlIDEwOiBjYXNlIDEzOiBjYXNlIDMyOlxuXHRcdFx0cmV0dXJuIDVcblx0XHQvLyAhICsgLCAvID4gQCB+IGlzb2xhdGUgdG9rZW5cblx0XHRjYXNlIDMzOiBjYXNlIDQzOiBjYXNlIDQ0OiBjYXNlIDQ3OiBjYXNlIDYyOiBjYXNlIDY0OiBjYXNlIDEyNjpcblx0XHQvLyA7IHsgfSBicmVha3BvaW50IHRva2VuXG5cdFx0Y2FzZSA1OTogY2FzZSAxMjM6IGNhc2UgMTI1OlxuXHRcdFx0cmV0dXJuIDRcblx0XHQvLyA6IGFjY29tcGFuaWVkIHRva2VuXG5cdFx0Y2FzZSA1ODpcblx0XHRcdHJldHVybiAzXG5cdFx0Ly8gXCIgJyAoIFsgb3BlbmluZyBkZWxpbWl0IHRva2VuXG5cdFx0Y2FzZSAzNDogY2FzZSAzOTogY2FzZSA0MDogY2FzZSA5MTpcblx0XHRcdHJldHVybiAyXG5cdFx0Ly8gKSBdIGNsb3NpbmcgZGVsaW1pdCB0b2tlblxuXHRcdGNhc2UgNDE6IGNhc2UgOTM6XG5cdFx0XHRyZXR1cm4gMVxuXHR9XG5cblx0cmV0dXJuIDBcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm4ge2FueVtdfVxuICovXG5leHBvcnQgZnVuY3Rpb24gYWxsb2MgKHZhbHVlKSB7XG5cdHJldHVybiBsaW5lID0gY29sdW1uID0gMSwgbGVuZ3RoID0gc3RybGVuKGNoYXJhY3RlcnMgPSB2YWx1ZSksIHBvc2l0aW9uID0gMCwgW11cbn1cblxuLyoqXG4gKiBAcGFyYW0ge2FueX0gdmFsdWVcbiAqIEByZXR1cm4ge2FueX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlYWxsb2MgKHZhbHVlKSB7XG5cdHJldHVybiBjaGFyYWN0ZXJzID0gJycsIHZhbHVlXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHR5cGVcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlbGltaXQgKHR5cGUpIHtcblx0cmV0dXJuIHRyaW0oc2xpY2UocG9zaXRpb24gLSAxLCBkZWxpbWl0ZXIodHlwZSA9PT0gOTEgPyB0eXBlICsgMiA6IHR5cGUgPT09IDQwID8gdHlwZSArIDEgOiB0eXBlKSkpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHtzdHJpbmdbXX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRva2VuaXplICh2YWx1ZSkge1xuXHRyZXR1cm4gZGVhbGxvYyh0b2tlbml6ZXIoYWxsb2ModmFsdWUpKSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdHlwZVxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gd2hpdGVzcGFjZSAodHlwZSkge1xuXHR3aGlsZSAoY2hhcmFjdGVyID0gcGVlaygpKVxuXHRcdGlmIChjaGFyYWN0ZXIgPCAzMylcblx0XHRcdG5leHQoKVxuXHRcdGVsc2Vcblx0XHRcdGJyZWFrXG5cblx0cmV0dXJuIHRva2VuKHR5cGUpID4gMiB8fCB0b2tlbihjaGFyYWN0ZXIpID4gMyA/ICcnIDogJyAnXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmdbXX0gY2hpbGRyZW5cbiAqIEByZXR1cm4ge3N0cmluZ1tdfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9rZW5pemVyIChjaGlsZHJlbikge1xuXHR3aGlsZSAobmV4dCgpKVxuXHRcdHN3aXRjaCAodG9rZW4oY2hhcmFjdGVyKSkge1xuXHRcdFx0Y2FzZSAwOiBhcHBlbmQoaWRlbnRpZmllcihwb3NpdGlvbiAtIDEpLCBjaGlsZHJlbilcblx0XHRcdFx0YnJlYWtcblx0XHRcdGNhc2UgMjogYXBwZW5kKGRlbGltaXQoY2hhcmFjdGVyKSwgY2hpbGRyZW4pXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHRkZWZhdWx0OiBhcHBlbmQoZnJvbShjaGFyYWN0ZXIpLCBjaGlsZHJlbilcblx0XHR9XG5cblx0cmV0dXJuIGNoaWxkcmVuXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gKiBAcGFyYW0ge251bWJlcn0gY291bnRcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwaW5nIChpbmRleCwgY291bnQpIHtcblx0d2hpbGUgKC0tY291bnQgJiYgbmV4dCgpKVxuXHRcdC8vIG5vdCAwLTkgQS1GIGEtZlxuXHRcdGlmIChjaGFyYWN0ZXIgPCA0OCB8fCBjaGFyYWN0ZXIgPiAxMDIgfHwgKGNoYXJhY3RlciA+IDU3ICYmIGNoYXJhY3RlciA8IDY1KSB8fCAoY2hhcmFjdGVyID4gNzAgJiYgY2hhcmFjdGVyIDwgOTcpKVxuXHRcdFx0YnJlYWtcblxuXHRyZXR1cm4gc2xpY2UoaW5kZXgsIGNhcmV0KCkgKyAoY291bnQgPCA2ICYmIHBlZWsoKSA9PSAzMiAmJiBuZXh0KCkgPT0gMzIpKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB0eXBlXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWxpbWl0ZXIgKHR5cGUpIHtcblx0d2hpbGUgKG5leHQoKSlcblx0XHRzd2l0Y2ggKGNoYXJhY3Rlcikge1xuXHRcdFx0Ly8gXSApIFwiICdcblx0XHRcdGNhc2UgdHlwZTpcblx0XHRcdFx0cmV0dXJuIHBvc2l0aW9uXG5cdFx0XHQvLyBcIiAnXG5cdFx0XHRjYXNlIDM0OiBjYXNlIDM5OlxuXHRcdFx0XHRpZiAodHlwZSAhPT0gMzQgJiYgdHlwZSAhPT0gMzkpXG5cdFx0XHRcdFx0ZGVsaW1pdGVyKGNoYXJhY3Rlcilcblx0XHRcdFx0YnJlYWtcblx0XHRcdC8vIChcblx0XHRcdGNhc2UgNDA6XG5cdFx0XHRcdGlmICh0eXBlID09PSA0MSlcblx0XHRcdFx0XHRkZWxpbWl0ZXIodHlwZSlcblx0XHRcdFx0YnJlYWtcblx0XHRcdC8vIFxcXG5cdFx0XHRjYXNlIDkyOlxuXHRcdFx0XHRuZXh0KClcblx0XHRcdFx0YnJlYWtcblx0XHR9XG5cblx0cmV0dXJuIHBvc2l0aW9uXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHR5cGVcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tbWVudGVyICh0eXBlLCBpbmRleCkge1xuXHR3aGlsZSAobmV4dCgpKVxuXHRcdC8vIC8vXG5cdFx0aWYgKHR5cGUgKyBjaGFyYWN0ZXIgPT09IDQ3ICsgMTApXG5cdFx0XHRicmVha1xuXHRcdC8vIC8qXG5cdFx0ZWxzZSBpZiAodHlwZSArIGNoYXJhY3RlciA9PT0gNDIgKyA0MiAmJiBwZWVrKCkgPT09IDQ3KVxuXHRcdFx0YnJlYWtcblxuXHRyZXR1cm4gJy8qJyArIHNsaWNlKGluZGV4LCBwb3NpdGlvbiAtIDEpICsgJyonICsgZnJvbSh0eXBlID09PSA0NyA/IHR5cGUgOiBuZXh0KCkpXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpZGVudGlmaWVyIChpbmRleCkge1xuXHR3aGlsZSAoIXRva2VuKHBlZWsoKSkpXG5cdFx0bmV4dCgpXG5cblx0cmV0dXJuIHNsaWNlKGluZGV4LCBwb3NpdGlvbilcbn1cbiIsImltcG9ydCB7Q09NTUVOVCwgUlVMRVNFVCwgREVDTEFSQVRJT059IGZyb20gJy4vRW51bS5qcydcbmltcG9ydCB7YWJzLCBjaGFyYXQsIHRyaW0sIGZyb20sIHNpemVvZiwgc3RybGVuLCBzdWJzdHIsIGFwcGVuZCwgcmVwbGFjZSwgaW5kZXhvZn0gZnJvbSAnLi9VdGlsaXR5LmpzJ1xuaW1wb3J0IHtub2RlLCBjaGFyLCBwcmV2LCBuZXh0LCBwZWVrLCBjYXJldCwgYWxsb2MsIGRlYWxsb2MsIGRlbGltaXQsIHdoaXRlc3BhY2UsIGVzY2FwaW5nLCBpZGVudGlmaWVyLCBjb21tZW50ZXJ9IGZyb20gJy4vVG9rZW5pemVyLmpzJ1xuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybiB7b2JqZWN0W119XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21waWxlICh2YWx1ZSkge1xuXHRyZXR1cm4gZGVhbGxvYyhwYXJzZSgnJywgbnVsbCwgbnVsbCwgbnVsbCwgWycnXSwgdmFsdWUgPSBhbGxvYyh2YWx1ZSksIDAsIFswXSwgdmFsdWUpKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtvYmplY3R9IHJvb3RcbiAqIEBwYXJhbSB7b2JqZWN0P30gcGFyZW50XG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBydWxlXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBydWxlc1xuICogQHBhcmFtIHtzdHJpbmdbXX0gcnVsZXNldHNcbiAqIEBwYXJhbSB7bnVtYmVyW119IHBzZXVkb1xuICogQHBhcmFtIHtudW1iZXJbXX0gcG9pbnRzXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBkZWNsYXJhdGlvbnNcbiAqIEByZXR1cm4ge29iamVjdH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlICh2YWx1ZSwgcm9vdCwgcGFyZW50LCBydWxlLCBydWxlcywgcnVsZXNldHMsIHBzZXVkbywgcG9pbnRzLCBkZWNsYXJhdGlvbnMpIHtcblx0dmFyIGluZGV4ID0gMFxuXHR2YXIgb2Zmc2V0ID0gMFxuXHR2YXIgbGVuZ3RoID0gcHNldWRvXG5cdHZhciBhdHJ1bGUgPSAwXG5cdHZhciBwcm9wZXJ0eSA9IDBcblx0dmFyIHByZXZpb3VzID0gMFxuXHR2YXIgdmFyaWFibGUgPSAxXG5cdHZhciBzY2FubmluZyA9IDFcblx0dmFyIGFtcGVyc2FuZCA9IDFcblx0dmFyIGNoYXJhY3RlciA9IDBcblx0dmFyIHR5cGUgPSAnJ1xuXHR2YXIgcHJvcHMgPSBydWxlc1xuXHR2YXIgY2hpbGRyZW4gPSBydWxlc2V0c1xuXHR2YXIgcmVmZXJlbmNlID0gcnVsZVxuXHR2YXIgY2hhcmFjdGVycyA9IHR5cGVcblxuXHR3aGlsZSAoc2Nhbm5pbmcpXG5cdFx0c3dpdGNoIChwcmV2aW91cyA9IGNoYXJhY3RlciwgY2hhcmFjdGVyID0gbmV4dCgpKSB7XG5cdFx0XHQvLyAoXG5cdFx0XHRjYXNlIDQwOlxuXHRcdFx0XHRpZiAocHJldmlvdXMgIT0gMTA4ICYmIGNoYXJhdChjaGFyYWN0ZXJzLCBsZW5ndGggLSAxKSA9PSA1OCkge1xuXHRcdFx0XHRcdGlmIChpbmRleG9mKGNoYXJhY3RlcnMgKz0gcmVwbGFjZShkZWxpbWl0KGNoYXJhY3RlciksICcmJywgJyZcXGYnKSwgJyZcXGYnKSAhPSAtMSlcblx0XHRcdFx0XHRcdGFtcGVyc2FuZCA9IC0xXG5cdFx0XHRcdFx0YnJlYWtcblx0XHRcdFx0fVxuXHRcdFx0Ly8gXCIgJyBbXG5cdFx0XHRjYXNlIDM0OiBjYXNlIDM5OiBjYXNlIDkxOlxuXHRcdFx0XHRjaGFyYWN0ZXJzICs9IGRlbGltaXQoY2hhcmFjdGVyKVxuXHRcdFx0XHRicmVha1xuXHRcdFx0Ly8gXFx0IFxcbiBcXHIgXFxzXG5cdFx0XHRjYXNlIDk6IGNhc2UgMTA6IGNhc2UgMTM6IGNhc2UgMzI6XG5cdFx0XHRcdGNoYXJhY3RlcnMgKz0gd2hpdGVzcGFjZShwcmV2aW91cylcblx0XHRcdFx0YnJlYWtcblx0XHRcdC8vIFxcXG5cdFx0XHRjYXNlIDkyOlxuXHRcdFx0XHRjaGFyYWN0ZXJzICs9IGVzY2FwaW5nKGNhcmV0KCkgLSAxLCA3KVxuXHRcdFx0XHRjb250aW51ZVxuXHRcdFx0Ly8gL1xuXHRcdFx0Y2FzZSA0Nzpcblx0XHRcdFx0c3dpdGNoIChwZWVrKCkpIHtcblx0XHRcdFx0XHRjYXNlIDQyOiBjYXNlIDQ3OlxuXHRcdFx0XHRcdFx0YXBwZW5kKGNvbW1lbnQoY29tbWVudGVyKG5leHQoKSwgY2FyZXQoKSksIHJvb3QsIHBhcmVudCksIGRlY2xhcmF0aW9ucylcblx0XHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdGNoYXJhY3RlcnMgKz0gJy8nXG5cdFx0XHRcdH1cblx0XHRcdFx0YnJlYWtcblx0XHRcdC8vIHtcblx0XHRcdGNhc2UgMTIzICogdmFyaWFibGU6XG5cdFx0XHRcdHBvaW50c1tpbmRleCsrXSA9IHN0cmxlbihjaGFyYWN0ZXJzKSAqIGFtcGVyc2FuZFxuXHRcdFx0Ly8gfSA7IFxcMFxuXHRcdFx0Y2FzZSAxMjUgKiB2YXJpYWJsZTogY2FzZSA1OTogY2FzZSAwOlxuXHRcdFx0XHRzd2l0Y2ggKGNoYXJhY3Rlcikge1xuXHRcdFx0XHRcdC8vIFxcMCB9XG5cdFx0XHRcdFx0Y2FzZSAwOiBjYXNlIDEyNTogc2Nhbm5pbmcgPSAwXG5cdFx0XHRcdFx0Ly8gO1xuXHRcdFx0XHRcdGNhc2UgNTkgKyBvZmZzZXQ6IGlmIChhbXBlcnNhbmQgPT0gLTEpIGNoYXJhY3RlcnMgPSByZXBsYWNlKGNoYXJhY3RlcnMsIC9cXGYvZywgJycpXG5cdFx0XHRcdFx0XHRpZiAocHJvcGVydHkgPiAwICYmIChzdHJsZW4oY2hhcmFjdGVycykgLSBsZW5ndGgpKVxuXHRcdFx0XHRcdFx0XHRhcHBlbmQocHJvcGVydHkgPiAzMiA/IGRlY2xhcmF0aW9uKGNoYXJhY3RlcnMgKyAnOycsIHJ1bGUsIHBhcmVudCwgbGVuZ3RoIC0gMSkgOiBkZWNsYXJhdGlvbihyZXBsYWNlKGNoYXJhY3RlcnMsICcgJywgJycpICsgJzsnLCBydWxlLCBwYXJlbnQsIGxlbmd0aCAtIDIpLCBkZWNsYXJhdGlvbnMpXG5cdFx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHRcdC8vIEAgO1xuXHRcdFx0XHRcdGNhc2UgNTk6IGNoYXJhY3RlcnMgKz0gJzsnXG5cdFx0XHRcdFx0Ly8geyBydWxlL2F0LXJ1bGVcblx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0YXBwZW5kKHJlZmVyZW5jZSA9IHJ1bGVzZXQoY2hhcmFjdGVycywgcm9vdCwgcGFyZW50LCBpbmRleCwgb2Zmc2V0LCBydWxlcywgcG9pbnRzLCB0eXBlLCBwcm9wcyA9IFtdLCBjaGlsZHJlbiA9IFtdLCBsZW5ndGgpLCBydWxlc2V0cylcblxuXHRcdFx0XHRcdFx0aWYgKGNoYXJhY3RlciA9PT0gMTIzKVxuXHRcdFx0XHRcdFx0XHRpZiAob2Zmc2V0ID09PSAwKVxuXHRcdFx0XHRcdFx0XHRcdHBhcnNlKGNoYXJhY3RlcnMsIHJvb3QsIHJlZmVyZW5jZSwgcmVmZXJlbmNlLCBwcm9wcywgcnVsZXNldHMsIGxlbmd0aCwgcG9pbnRzLCBjaGlsZHJlbilcblx0XHRcdFx0XHRcdFx0ZWxzZVxuXHRcdFx0XHRcdFx0XHRcdHN3aXRjaCAoYXRydWxlID09PSA5OSAmJiBjaGFyYXQoY2hhcmFjdGVycywgMykgPT09IDExMCA/IDEwMCA6IGF0cnVsZSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gZCBsIG0gc1xuXHRcdFx0XHRcdFx0XHRcdFx0Y2FzZSAxMDA6IGNhc2UgMTA4OiBjYXNlIDEwOTogY2FzZSAxMTU6XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHBhcnNlKHZhbHVlLCByZWZlcmVuY2UsIHJlZmVyZW5jZSwgcnVsZSAmJiBhcHBlbmQocnVsZXNldCh2YWx1ZSwgcmVmZXJlbmNlLCByZWZlcmVuY2UsIDAsIDAsIHJ1bGVzLCBwb2ludHMsIHR5cGUsIHJ1bGVzLCBwcm9wcyA9IFtdLCBsZW5ndGgpLCBjaGlsZHJlbiksIHJ1bGVzLCBjaGlsZHJlbiwgbGVuZ3RoLCBwb2ludHMsIHJ1bGUgPyBwcm9wcyA6IGNoaWxkcmVuKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHRcdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdFx0XHRcdFx0cGFyc2UoY2hhcmFjdGVycywgcmVmZXJlbmNlLCByZWZlcmVuY2UsIHJlZmVyZW5jZSwgWycnXSwgY2hpbGRyZW4sIDAsIHBvaW50cywgY2hpbGRyZW4pXG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0aW5kZXggPSBvZmZzZXQgPSBwcm9wZXJ0eSA9IDAsIHZhcmlhYmxlID0gYW1wZXJzYW5kID0gMSwgdHlwZSA9IGNoYXJhY3RlcnMgPSAnJywgbGVuZ3RoID0gcHNldWRvXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHQvLyA6XG5cdFx0XHRjYXNlIDU4OlxuXHRcdFx0XHRsZW5ndGggPSAxICsgc3RybGVuKGNoYXJhY3RlcnMpLCBwcm9wZXJ0eSA9IHByZXZpb3VzXG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRpZiAodmFyaWFibGUgPCAxKVxuXHRcdFx0XHRcdGlmIChjaGFyYWN0ZXIgPT0gMTIzKVxuXHRcdFx0XHRcdFx0LS12YXJpYWJsZVxuXHRcdFx0XHRcdGVsc2UgaWYgKGNoYXJhY3RlciA9PSAxMjUgJiYgdmFyaWFibGUrKyA9PSAwICYmIHByZXYoKSA9PSAxMjUpXG5cdFx0XHRcdFx0XHRjb250aW51ZVxuXG5cdFx0XHRcdHN3aXRjaCAoY2hhcmFjdGVycyArPSBmcm9tKGNoYXJhY3RlciksIGNoYXJhY3RlciAqIHZhcmlhYmxlKSB7XG5cdFx0XHRcdFx0Ly8gJlxuXHRcdFx0XHRcdGNhc2UgMzg6XG5cdFx0XHRcdFx0XHRhbXBlcnNhbmQgPSBvZmZzZXQgPiAwID8gMSA6IChjaGFyYWN0ZXJzICs9ICdcXGYnLCAtMSlcblx0XHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdFx0Ly8gLFxuXHRcdFx0XHRcdGNhc2UgNDQ6XG5cdFx0XHRcdFx0XHRwb2ludHNbaW5kZXgrK10gPSAoc3RybGVuKGNoYXJhY3RlcnMpIC0gMSkgKiBhbXBlcnNhbmQsIGFtcGVyc2FuZCA9IDFcblx0XHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdFx0Ly8gQFxuXHRcdFx0XHRcdGNhc2UgNjQ6XG5cdFx0XHRcdFx0XHQvLyAtXG5cdFx0XHRcdFx0XHRpZiAocGVlaygpID09PSA0NSlcblx0XHRcdFx0XHRcdFx0Y2hhcmFjdGVycyArPSBkZWxpbWl0KG5leHQoKSlcblxuXHRcdFx0XHRcdFx0YXRydWxlID0gcGVlaygpLCBvZmZzZXQgPSBsZW5ndGggPSBzdHJsZW4odHlwZSA9IGNoYXJhY3RlcnMgKz0gaWRlbnRpZmllcihjYXJldCgpKSksIGNoYXJhY3RlcisrXG5cdFx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHRcdC8vIC1cblx0XHRcdFx0XHRjYXNlIDQ1OlxuXHRcdFx0XHRcdFx0aWYgKHByZXZpb3VzID09PSA0NSAmJiBzdHJsZW4oY2hhcmFjdGVycykgPT0gMilcblx0XHRcdFx0XHRcdFx0dmFyaWFibGUgPSAwXG5cdFx0XHRcdH1cblx0XHR9XG5cblx0cmV0dXJuIHJ1bGVzZXRzXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge29iamVjdH0gcm9vdFxuICogQHBhcmFtIHtvYmplY3Q/fSBwYXJlbnRcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICogQHBhcmFtIHtudW1iZXJ9IG9mZnNldFxuICogQHBhcmFtIHtzdHJpbmdbXX0gcnVsZXNcbiAqIEBwYXJhbSB7bnVtYmVyW119IHBvaW50c1xuICogQHBhcmFtIHtzdHJpbmd9IHR5cGVcbiAqIEBwYXJhbSB7c3RyaW5nW119IHByb3BzXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBjaGlsZHJlblxuICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aFxuICogQHJldHVybiB7b2JqZWN0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcnVsZXNldCAodmFsdWUsIHJvb3QsIHBhcmVudCwgaW5kZXgsIG9mZnNldCwgcnVsZXMsIHBvaW50cywgdHlwZSwgcHJvcHMsIGNoaWxkcmVuLCBsZW5ndGgpIHtcblx0dmFyIHBvc3QgPSBvZmZzZXQgLSAxXG5cdHZhciBydWxlID0gb2Zmc2V0ID09PSAwID8gcnVsZXMgOiBbJyddXG5cdHZhciBzaXplID0gc2l6ZW9mKHJ1bGUpXG5cblx0Zm9yICh2YXIgaSA9IDAsIGogPSAwLCBrID0gMDsgaSA8IGluZGV4OyArK2kpXG5cdFx0Zm9yICh2YXIgeCA9IDAsIHkgPSBzdWJzdHIodmFsdWUsIHBvc3QgKyAxLCBwb3N0ID0gYWJzKGogPSBwb2ludHNbaV0pKSwgeiA9IHZhbHVlOyB4IDwgc2l6ZTsgKyt4KVxuXHRcdFx0aWYgKHogPSB0cmltKGogPiAwID8gcnVsZVt4XSArICcgJyArIHkgOiByZXBsYWNlKHksIC8mXFxmL2csIHJ1bGVbeF0pKSlcblx0XHRcdFx0cHJvcHNbaysrXSA9IHpcblxuXHRyZXR1cm4gbm9kZSh2YWx1ZSwgcm9vdCwgcGFyZW50LCBvZmZzZXQgPT09IDAgPyBSVUxFU0VUIDogdHlwZSwgcHJvcHMsIGNoaWxkcmVuLCBsZW5ndGgpXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlXG4gKiBAcGFyYW0ge29iamVjdH0gcm9vdFxuICogQHBhcmFtIHtvYmplY3Q/fSBwYXJlbnRcbiAqIEByZXR1cm4ge29iamVjdH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbW1lbnQgKHZhbHVlLCByb290LCBwYXJlbnQpIHtcblx0cmV0dXJuIG5vZGUodmFsdWUsIHJvb3QsIHBhcmVudCwgQ09NTUVOVCwgZnJvbShjaGFyKCkpLCBzdWJzdHIodmFsdWUsIDIsIC0yKSwgMClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7b2JqZWN0fSByb290XG4gKiBAcGFyYW0ge29iamVjdD99IHBhcmVudFxuICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aFxuICogQHJldHVybiB7b2JqZWN0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjbGFyYXRpb24gKHZhbHVlLCByb290LCBwYXJlbnQsIGxlbmd0aCkge1xuXHRyZXR1cm4gbm9kZSh2YWx1ZSwgcm9vdCwgcGFyZW50LCBERUNMQVJBVElPTiwgc3Vic3RyKHZhbHVlLCAwLCBsZW5ndGgpLCBzdWJzdHIodmFsdWUsIGxlbmd0aCArIDEsIC0xKSwgbGVuZ3RoKVxufVxuIiwiaW1wb3J0IHtJTVBPUlQsIExBWUVSLCBDT01NRU5ULCBSVUxFU0VULCBERUNMQVJBVElPTiwgS0VZRlJBTUVTfSBmcm9tICcuL0VudW0uanMnXG5pbXBvcnQge3N0cmxlbiwgc2l6ZW9mfSBmcm9tICcuL1V0aWxpdHkuanMnXG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3RbXX0gY2hpbGRyZW5cbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemUgKGNoaWxkcmVuLCBjYWxsYmFjaykge1xuXHR2YXIgb3V0cHV0ID0gJydcblx0dmFyIGxlbmd0aCA9IHNpemVvZihjaGlsZHJlbilcblxuXHRmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKVxuXHRcdG91dHB1dCArPSBjYWxsYmFjayhjaGlsZHJlbltpXSwgaSwgY2hpbGRyZW4sIGNhbGxiYWNrKSB8fCAnJ1xuXG5cdHJldHVybiBvdXRwdXRcbn1cblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gZWxlbWVudFxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gKiBAcGFyYW0ge29iamVjdFtdfSBjaGlsZHJlblxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeSAoZWxlbWVudCwgaW5kZXgsIGNoaWxkcmVuLCBjYWxsYmFjaykge1xuXHRzd2l0Y2ggKGVsZW1lbnQudHlwZSkge1xuXHRcdGNhc2UgTEFZRVI6IGlmIChlbGVtZW50LmNoaWxkcmVuLmxlbmd0aCkgYnJlYWtcblx0XHRjYXNlIElNUE9SVDogY2FzZSBERUNMQVJBVElPTjogcmV0dXJuIGVsZW1lbnQucmV0dXJuID0gZWxlbWVudC5yZXR1cm4gfHwgZWxlbWVudC52YWx1ZVxuXHRcdGNhc2UgQ09NTUVOVDogcmV0dXJuICcnXG5cdFx0Y2FzZSBLRVlGUkFNRVM6IHJldHVybiBlbGVtZW50LnJldHVybiA9IGVsZW1lbnQudmFsdWUgKyAneycgKyBzZXJpYWxpemUoZWxlbWVudC5jaGlsZHJlbiwgY2FsbGJhY2spICsgJ30nXG5cdFx0Y2FzZSBSVUxFU0VUOiBlbGVtZW50LnZhbHVlID0gZWxlbWVudC5wcm9wcy5qb2luKCcsJylcblx0fVxuXG5cdHJldHVybiBzdHJsZW4oY2hpbGRyZW4gPSBzZXJpYWxpemUoZWxlbWVudC5jaGlsZHJlbiwgY2FsbGJhY2spKSA/IGVsZW1lbnQucmV0dXJuID0gZWxlbWVudC52YWx1ZSArICd7JyArIGNoaWxkcmVuICsgJ30nIDogJydcbn1cbiIsImltcG9ydCB7TVMsIE1PWiwgV0VCS0lULCBSVUxFU0VULCBLRVlGUkFNRVMsIERFQ0xBUkFUSU9OfSBmcm9tICcuL0VudW0uanMnXG5pbXBvcnQge21hdGNoLCBjaGFyYXQsIHN1YnN0ciwgc3RybGVuLCBzaXplb2YsIHJlcGxhY2UsIGNvbWJpbmV9IGZyb20gJy4vVXRpbGl0eS5qcydcbmltcG9ydCB7Y29weSwgdG9rZW5pemV9IGZyb20gJy4vVG9rZW5pemVyLmpzJ1xuaW1wb3J0IHtzZXJpYWxpemV9IGZyb20gJy4vU2VyaWFsaXplci5qcydcbmltcG9ydCB7cHJlZml4fSBmcm9tICcuL1ByZWZpeGVyLmpzJ1xuXG4vKipcbiAqIEBwYXJhbSB7ZnVuY3Rpb25bXX0gY29sbGVjdGlvblxuICogQHJldHVybiB7ZnVuY3Rpb259XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtaWRkbGV3YXJlIChjb2xsZWN0aW9uKSB7XG5cdHZhciBsZW5ndGggPSBzaXplb2YoY29sbGVjdGlvbilcblxuXHRyZXR1cm4gZnVuY3Rpb24gKGVsZW1lbnQsIGluZGV4LCBjaGlsZHJlbiwgY2FsbGJhY2spIHtcblx0XHR2YXIgb3V0cHV0ID0gJydcblxuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspXG5cdFx0XHRvdXRwdXQgKz0gY29sbGVjdGlvbltpXShlbGVtZW50LCBpbmRleCwgY2hpbGRyZW4sIGNhbGxiYWNrKSB8fCAnJ1xuXG5cdFx0cmV0dXJuIG91dHB1dFxuXHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm4ge2Z1bmN0aW9ufVxuICovXG5leHBvcnQgZnVuY3Rpb24gcnVsZXNoZWV0IChjYWxsYmFjaykge1xuXHRyZXR1cm4gZnVuY3Rpb24gKGVsZW1lbnQpIHtcblx0XHRpZiAoIWVsZW1lbnQucm9vdClcblx0XHRcdGlmIChlbGVtZW50ID0gZWxlbWVudC5yZXR1cm4pXG5cdFx0XHRcdGNhbGxiYWNrKGVsZW1lbnQpXG5cdH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gZWxlbWVudFxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gKiBAcGFyYW0ge29iamVjdFtdfSBjaGlsZHJlblxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZWZpeGVyIChlbGVtZW50LCBpbmRleCwgY2hpbGRyZW4sIGNhbGxiYWNrKSB7XG5cdGlmIChlbGVtZW50Lmxlbmd0aCA+IC0xKVxuXHRcdGlmICghZWxlbWVudC5yZXR1cm4pXG5cdFx0XHRzd2l0Y2ggKGVsZW1lbnQudHlwZSkge1xuXHRcdFx0XHRjYXNlIERFQ0xBUkFUSU9OOiBlbGVtZW50LnJldHVybiA9IHByZWZpeChlbGVtZW50LnZhbHVlLCBlbGVtZW50Lmxlbmd0aCwgY2hpbGRyZW4pXG5cdFx0XHRcdFx0cmV0dXJuXG5cdFx0XHRcdGNhc2UgS0VZRlJBTUVTOlxuXHRcdFx0XHRcdHJldHVybiBzZXJpYWxpemUoW2NvcHkoZWxlbWVudCwge3ZhbHVlOiByZXBsYWNlKGVsZW1lbnQudmFsdWUsICdAJywgJ0AnICsgV0VCS0lUKX0pXSwgY2FsbGJhY2spXG5cdFx0XHRcdGNhc2UgUlVMRVNFVDpcblx0XHRcdFx0XHRpZiAoZWxlbWVudC5sZW5ndGgpXG5cdFx0XHRcdFx0XHRyZXR1cm4gY29tYmluZShlbGVtZW50LnByb3BzLCBmdW5jdGlvbiAodmFsdWUpIHtcblx0XHRcdFx0XHRcdFx0c3dpdGNoIChtYXRjaCh2YWx1ZSwgLyg6OnBsYWNcXHcrfDpyZWFkLVxcdyspLykpIHtcblx0XHRcdFx0XHRcdFx0XHQvLyA6cmVhZC0ob25seXx3cml0ZSlcblx0XHRcdFx0XHRcdFx0XHRjYXNlICc6cmVhZC1vbmx5JzogY2FzZSAnOnJlYWQtd3JpdGUnOlxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHNlcmlhbGl6ZShbY29weShlbGVtZW50LCB7cHJvcHM6IFtyZXBsYWNlKHZhbHVlLCAvOihyZWFkLVxcdyspLywgJzonICsgTU9aICsgJyQxJyldfSldLCBjYWxsYmFjaylcblx0XHRcdFx0XHRcdFx0XHQvLyA6cGxhY2Vob2xkZXJcblx0XHRcdFx0XHRcdFx0XHRjYXNlICc6OnBsYWNlaG9sZGVyJzpcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBzZXJpYWxpemUoW1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb3B5KGVsZW1lbnQsIHtwcm9wczogW3JlcGxhY2UodmFsdWUsIC86KHBsYWNcXHcrKS8sICc6JyArIFdFQktJVCArICdpbnB1dC0kMScpXX0pLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb3B5KGVsZW1lbnQsIHtwcm9wczogW3JlcGxhY2UodmFsdWUsIC86KHBsYWNcXHcrKS8sICc6JyArIE1PWiArICckMScpXX0pLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb3B5KGVsZW1lbnQsIHtwcm9wczogW3JlcGxhY2UodmFsdWUsIC86KHBsYWNcXHcrKS8sIE1TICsgJ2lucHV0LSQxJyldfSlcblx0XHRcdFx0XHRcdFx0XHRcdF0sIGNhbGxiYWNrKVxuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0cmV0dXJuICcnXG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0fVxufVxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBlbGVtZW50XG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqIEBwYXJhbSB7b2JqZWN0W119IGNoaWxkcmVuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuYW1lc3BhY2UgKGVsZW1lbnQpIHtcblx0c3dpdGNoIChlbGVtZW50LnR5cGUpIHtcblx0XHRjYXNlIFJVTEVTRVQ6XG5cdFx0XHRlbGVtZW50LnByb3BzID0gZWxlbWVudC5wcm9wcy5tYXAoZnVuY3Rpb24gKHZhbHVlKSB7XG5cdFx0XHRcdHJldHVybiBjb21iaW5lKHRva2VuaXplKHZhbHVlKSwgZnVuY3Rpb24gKHZhbHVlLCBpbmRleCwgY2hpbGRyZW4pIHtcblx0XHRcdFx0XHRzd2l0Y2ggKGNoYXJhdCh2YWx1ZSwgMCkpIHtcblx0XHRcdFx0XHRcdC8vIFxcZlxuXHRcdFx0XHRcdFx0Y2FzZSAxMjpcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHN1YnN0cih2YWx1ZSwgMSwgc3RybGVuKHZhbHVlKSlcblx0XHRcdFx0XHRcdC8vIFxcMCAoICsgPiB+XG5cdFx0XHRcdFx0XHRjYXNlIDA6IGNhc2UgNDA6IGNhc2UgNDM6IGNhc2UgNjI6IGNhc2UgMTI2OlxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdmFsdWVcblx0XHRcdFx0XHRcdC8vIDpcblx0XHRcdFx0XHRcdGNhc2UgNTg6XG5cdFx0XHRcdFx0XHRcdGlmIChjaGlsZHJlblsrK2luZGV4XSA9PT0gJ2dsb2JhbCcpXG5cdFx0XHRcdFx0XHRcdFx0Y2hpbGRyZW5baW5kZXhdID0gJycsIGNoaWxkcmVuWysraW5kZXhdID0gJ1xcZicgKyBzdWJzdHIoY2hpbGRyZW5baW5kZXhdLCBpbmRleCA9IDEsIC0xKVxuXHRcdFx0XHRcdFx0Ly8gXFxzXG5cdFx0XHRcdFx0XHRjYXNlIDMyOlxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gaW5kZXggPT09IDEgPyAnJyA6IHZhbHVlXG5cdFx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0XHRzd2l0Y2ggKGluZGV4KSB7XG5cdFx0XHRcdFx0XHRcdFx0Y2FzZSAwOiBlbGVtZW50ID0gdmFsdWVcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBzaXplb2YoY2hpbGRyZW4pID4gMSA/ICcnIDogdmFsdWVcblx0XHRcdFx0XHRcdFx0XHRjYXNlIGluZGV4ID0gc2l6ZW9mKGNoaWxkcmVuKSAtIDE6IGNhc2UgMjpcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBpbmRleCA9PT0gMiA/IHZhbHVlICsgZWxlbWVudCArIGVsZW1lbnQgOiB2YWx1ZSArIGVsZW1lbnRcblx0XHRcdFx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHZhbHVlXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9KVxuXHR9XG59XG4iLCJ2YXIgd2Vha01lbW9pemUgPSBmdW5jdGlvbiB3ZWFrTWVtb2l6ZShmdW5jKSB7XG4gIHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7XG4gIHJldHVybiBmdW5jdGlvbiAoYXJnKSB7XG4gICAgaWYgKGNhY2hlLmhhcyhhcmcpKSB7XG4gICAgICAvLyBVc2Ugbm9uLW51bGwgYXNzZXJ0aW9uIGJlY2F1c2Ugd2UganVzdCBjaGVja2VkIHRoYXQgdGhlIGNhY2hlIGBoYXNgIGl0XG4gICAgICAvLyBUaGlzIGFsbG93cyB1cyB0byByZW1vdmUgYHVuZGVmaW5lZGAgZnJvbSB0aGUgcmV0dXJuIHZhbHVlXG4gICAgICByZXR1cm4gY2FjaGUuZ2V0KGFyZyk7XG4gICAgfVxuXG4gICAgdmFyIHJldCA9IGZ1bmMoYXJnKTtcbiAgICBjYWNoZS5zZXQoYXJnLCByZXQpO1xuICAgIHJldHVybiByZXQ7XG4gIH07XG59O1xuXG5leHBvcnQgeyB3ZWFrTWVtb2l6ZSBhcyBkZWZhdWx0IH07XG4iLCJmdW5jdGlvbiBtZW1vaXplKGZuKSB7XG4gIHZhciBjYWNoZSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIHJldHVybiBmdW5jdGlvbiAoYXJnKSB7XG4gICAgaWYgKGNhY2hlW2FyZ10gPT09IHVuZGVmaW5lZCkgY2FjaGVbYXJnXSA9IGZuKGFyZyk7XG4gICAgcmV0dXJuIGNhY2hlW2FyZ107XG4gIH07XG59XG5cbmV4cG9ydCB7IG1lbW9pemUgYXMgZGVmYXVsdCB9O1xuIiwiaW1wb3J0IHsgU3R5bGVTaGVldCB9IGZyb20gJ0BlbW90aW9uL3NoZWV0JztcbmltcG9ydCB7IGRlYWxsb2MsIGFsbG9jLCBuZXh0LCB0b2tlbiwgZnJvbSwgcGVlaywgZGVsaW1pdCwgc2xpY2UsIHBvc2l0aW9uLCBSVUxFU0VULCBjb21iaW5lLCBtYXRjaCwgc2VyaWFsaXplLCBjb3B5LCByZXBsYWNlLCBXRUJLSVQsIE1PWiwgTVMsIEtFWUZSQU1FUywgREVDTEFSQVRJT04sIGhhc2gsIGNoYXJhdCwgc3RybGVuLCBpbmRleG9mLCBzdHJpbmdpZnksIHJ1bGVzaGVldCwgbWlkZGxld2FyZSwgY29tcGlsZSB9IGZyb20gJ3N0eWxpcyc7XG5pbXBvcnQgJ0BlbW90aW9uL3dlYWstbWVtb2l6ZSc7XG5pbXBvcnQgJ0BlbW90aW9uL21lbW9pemUnO1xuXG52YXIgaWRlbnRpZmllcldpdGhQb2ludFRyYWNraW5nID0gZnVuY3Rpb24gaWRlbnRpZmllcldpdGhQb2ludFRyYWNraW5nKGJlZ2luLCBwb2ludHMsIGluZGV4KSB7XG4gIHZhciBwcmV2aW91cyA9IDA7XG4gIHZhciBjaGFyYWN0ZXIgPSAwO1xuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgcHJldmlvdXMgPSBjaGFyYWN0ZXI7XG4gICAgY2hhcmFjdGVyID0gcGVlaygpOyAvLyAmXFxmXG5cbiAgICBpZiAocHJldmlvdXMgPT09IDM4ICYmIGNoYXJhY3RlciA9PT0gMTIpIHtcbiAgICAgIHBvaW50c1tpbmRleF0gPSAxO1xuICAgIH1cblxuICAgIGlmICh0b2tlbihjaGFyYWN0ZXIpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBuZXh0KCk7XG4gIH1cblxuICByZXR1cm4gc2xpY2UoYmVnaW4sIHBvc2l0aW9uKTtcbn07XG5cbnZhciB0b1J1bGVzID0gZnVuY3Rpb24gdG9SdWxlcyhwYXJzZWQsIHBvaW50cykge1xuICAvLyBwcmV0ZW5kIHdlJ3ZlIHN0YXJ0ZWQgd2l0aCBhIGNvbW1hXG4gIHZhciBpbmRleCA9IC0xO1xuICB2YXIgY2hhcmFjdGVyID0gNDQ7XG5cbiAgZG8ge1xuICAgIHN3aXRjaCAodG9rZW4oY2hhcmFjdGVyKSkge1xuICAgICAgY2FzZSAwOlxuICAgICAgICAvLyAmXFxmXG4gICAgICAgIGlmIChjaGFyYWN0ZXIgPT09IDM4ICYmIHBlZWsoKSA9PT0gMTIpIHtcbiAgICAgICAgICAvLyB0aGlzIGlzIG5vdCAxMDAlIGNvcnJlY3QsIHdlIGRvbid0IGFjY291bnQgZm9yIGxpdGVyYWwgc2VxdWVuY2VzIGhlcmUgLSBsaWtlIGZvciBleGFtcGxlIHF1b3RlZCBzdHJpbmdzXG4gICAgICAgICAgLy8gc3R5bGlzIGluc2VydHMgXFxmIGFmdGVyICYgdG8ga25vdyB3aGVuICYgd2hlcmUgaXQgc2hvdWxkIHJlcGxhY2UgdGhpcyBzZXF1ZW5jZSB3aXRoIHRoZSBjb250ZXh0IHNlbGVjdG9yXG4gICAgICAgICAgLy8gYW5kIHdoZW4gaXQgc2hvdWxkIGp1c3QgY29uY2F0ZW5hdGUgdGhlIG91dGVyIGFuZCBpbm5lciBzZWxlY3RvcnNcbiAgICAgICAgICAvLyBpdCdzIHZlcnkgdW5saWtlbHkgZm9yIHRoaXMgc2VxdWVuY2UgdG8gYWN0dWFsbHkgYXBwZWFyIGluIGEgZGlmZmVyZW50IGNvbnRleHQsIHNvIHdlIGp1c3QgbGV2ZXJhZ2UgdGhpcyBmYWN0IGhlcmVcbiAgICAgICAgICBwb2ludHNbaW5kZXhdID0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcnNlZFtpbmRleF0gKz0gaWRlbnRpZmllcldpdGhQb2ludFRyYWNraW5nKHBvc2l0aW9uIC0gMSwgcG9pbnRzLCBpbmRleCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIDI6XG4gICAgICAgIHBhcnNlZFtpbmRleF0gKz0gZGVsaW1pdChjaGFyYWN0ZXIpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSA0OlxuICAgICAgICAvLyBjb21tYVxuICAgICAgICBpZiAoY2hhcmFjdGVyID09PSA0NCkge1xuICAgICAgICAgIC8vIGNvbG9uXG4gICAgICAgICAgcGFyc2VkWysraW5kZXhdID0gcGVlaygpID09PSA1OCA/ICcmXFxmJyA6ICcnO1xuICAgICAgICAgIHBvaW50c1tpbmRleF0gPSBwYXJzZWRbaW5kZXhdLmxlbmd0aDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAvLyBmYWxsdGhyb3VnaFxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBwYXJzZWRbaW5kZXhdICs9IGZyb20oY2hhcmFjdGVyKTtcbiAgICB9XG4gIH0gd2hpbGUgKGNoYXJhY3RlciA9IG5leHQoKSk7XG5cbiAgcmV0dXJuIHBhcnNlZDtcbn07XG5cbnZhciBnZXRSdWxlcyA9IGZ1bmN0aW9uIGdldFJ1bGVzKHZhbHVlLCBwb2ludHMpIHtcbiAgcmV0dXJuIGRlYWxsb2ModG9SdWxlcyhhbGxvYyh2YWx1ZSksIHBvaW50cykpO1xufTsgLy8gV2Vha1NldCB3b3VsZCBiZSBtb3JlIGFwcHJvcHJpYXRlLCBidXQgb25seSBXZWFrTWFwIGlzIHN1cHBvcnRlZCBpbiBJRTExXG5cblxudmFyIGZpeGVkRWxlbWVudHMgPSAvKiAjX19QVVJFX18gKi9uZXcgV2Vha01hcCgpO1xudmFyIGNvbXBhdCA9IGZ1bmN0aW9uIGNvbXBhdChlbGVtZW50KSB7XG4gIGlmIChlbGVtZW50LnR5cGUgIT09ICdydWxlJyB8fCAhZWxlbWVudC5wYXJlbnQgfHwgLy8gcG9zaXRpdmUgLmxlbmd0aCBpbmRpY2F0ZXMgdGhhdCB0aGlzIHJ1bGUgY29udGFpbnMgcHNldWRvXG4gIC8vIG5lZ2F0aXZlIC5sZW5ndGggaW5kaWNhdGVzIHRoYXQgdGhpcyBydWxlIGhhcyBiZWVuIGFscmVhZHkgcHJlZml4ZWRcbiAgZWxlbWVudC5sZW5ndGggPCAxKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIHZhbHVlID0gZWxlbWVudC52YWx1ZTtcbiAgdmFyIHBhcmVudCA9IGVsZW1lbnQucGFyZW50O1xuICB2YXIgaXNJbXBsaWNpdFJ1bGUgPSBlbGVtZW50LmNvbHVtbiA9PT0gcGFyZW50LmNvbHVtbiAmJiBlbGVtZW50LmxpbmUgPT09IHBhcmVudC5saW5lO1xuXG4gIHdoaWxlIChwYXJlbnQudHlwZSAhPT0gJ3J1bGUnKSB7XG4gICAgcGFyZW50ID0gcGFyZW50LnBhcmVudDtcbiAgICBpZiAoIXBhcmVudCkgcmV0dXJuO1xuICB9IC8vIHNob3J0LWNpcmN1aXQgZm9yIHRoZSBzaW1wbGVzdCBjYXNlXG5cblxuICBpZiAoZWxlbWVudC5wcm9wcy5sZW5ndGggPT09IDEgJiYgdmFsdWUuY2hhckNvZGVBdCgwKSAhPT0gNThcbiAgLyogY29sb24gKi9cbiAgJiYgIWZpeGVkRWxlbWVudHMuZ2V0KHBhcmVudCkpIHtcbiAgICByZXR1cm47XG4gIH0gLy8gaWYgdGhpcyBpcyBhbiBpbXBsaWNpdGx5IGluc2VydGVkIHJ1bGUgKHRoZSBvbmUgZWFnZXJseSBpbnNlcnRlZCBhdCB0aGUgZWFjaCBuZXcgbmVzdGVkIGxldmVsKVxuICAvLyB0aGVuIHRoZSBwcm9wcyBoYXMgYWxyZWFkeSBiZWVuIG1hbmlwdWxhdGVkIGJlZm9yZWhhbmQgYXMgdGhleSB0aGF0IGFycmF5IGlzIHNoYXJlZCBiZXR3ZWVuIGl0IGFuZCBpdHMgXCJydWxlIHBhcmVudFwiXG5cblxuICBpZiAoaXNJbXBsaWNpdFJ1bGUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBmaXhlZEVsZW1lbnRzLnNldChlbGVtZW50LCB0cnVlKTtcbiAgdmFyIHBvaW50cyA9IFtdO1xuICB2YXIgcnVsZXMgPSBnZXRSdWxlcyh2YWx1ZSwgcG9pbnRzKTtcbiAgdmFyIHBhcmVudFJ1bGVzID0gcGFyZW50LnByb3BzO1xuXG4gIGZvciAodmFyIGkgPSAwLCBrID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBwYXJlbnRSdWxlcy5sZW5ndGg7IGorKywgaysrKSB7XG4gICAgICBlbGVtZW50LnByb3BzW2tdID0gcG9pbnRzW2ldID8gcnVsZXNbaV0ucmVwbGFjZSgvJlxcZi9nLCBwYXJlbnRSdWxlc1tqXSkgOiBwYXJlbnRSdWxlc1tqXSArIFwiIFwiICsgcnVsZXNbaV07XG4gICAgfVxuICB9XG59O1xudmFyIHJlbW92ZUxhYmVsID0gZnVuY3Rpb24gcmVtb3ZlTGFiZWwoZWxlbWVudCkge1xuICBpZiAoZWxlbWVudC50eXBlID09PSAnZGVjbCcpIHtcbiAgICB2YXIgdmFsdWUgPSBlbGVtZW50LnZhbHVlO1xuXG4gICAgaWYgKCAvLyBjaGFyY29kZSBmb3IgbFxuICAgIHZhbHVlLmNoYXJDb2RlQXQoMCkgPT09IDEwOCAmJiAvLyBjaGFyY29kZSBmb3IgYlxuICAgIHZhbHVlLmNoYXJDb2RlQXQoMikgPT09IDk4KSB7XG4gICAgICAvLyB0aGlzIGlnbm9yZXMgbGFiZWxcbiAgICAgIGVsZW1lbnRbXCJyZXR1cm5cIl0gPSAnJztcbiAgICAgIGVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB9XG4gIH1cbn07XG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLWZhbGx0aHJvdWdoICovXG5cbmZ1bmN0aW9uIHByZWZpeCh2YWx1ZSwgbGVuZ3RoKSB7XG4gIHN3aXRjaCAoaGFzaCh2YWx1ZSwgbGVuZ3RoKSkge1xuICAgIC8vIGNvbG9yLWFkanVzdFxuICAgIGNhc2UgNTEwMzpcbiAgICAgIHJldHVybiBXRUJLSVQgKyAncHJpbnQtJyArIHZhbHVlICsgdmFsdWU7XG4gICAgLy8gYW5pbWF0aW9uLCBhbmltYXRpb24tKGRlbGF5fGRpcmVjdGlvbnxkdXJhdGlvbnxmaWxsLW1vZGV8aXRlcmF0aW9uLWNvdW50fG5hbWV8cGxheS1zdGF0ZXx0aW1pbmctZnVuY3Rpb24pXG5cbiAgICBjYXNlIDU3Mzc6XG4gICAgY2FzZSA0MjAxOlxuICAgIGNhc2UgMzE3NzpcbiAgICBjYXNlIDM0MzM6XG4gICAgY2FzZSAxNjQxOlxuICAgIGNhc2UgNDQ1NzpcbiAgICBjYXNlIDI5MjE6IC8vIHRleHQtZGVjb3JhdGlvbiwgZmlsdGVyLCBjbGlwLXBhdGgsIGJhY2tmYWNlLXZpc2liaWxpdHksIGNvbHVtbiwgYm94LWRlY29yYXRpb24tYnJlYWtcblxuICAgIGNhc2UgNTU3MjpcbiAgICBjYXNlIDYzNTY6XG4gICAgY2FzZSA1ODQ0OlxuICAgIGNhc2UgMzE5MTpcbiAgICBjYXNlIDY2NDU6XG4gICAgY2FzZSAzMDA1OiAvLyBtYXNrLCBtYXNrLWltYWdlLCBtYXNrLShtb2RlfGNsaXB8c2l6ZSksIG1hc2stKHJlcGVhdHxvcmlnaW4pLCBtYXNrLXBvc2l0aW9uLCBtYXNrLWNvbXBvc2l0ZSxcblxuICAgIGNhc2UgNjM5MTpcbiAgICBjYXNlIDU4Nzk6XG4gICAgY2FzZSA1NjIzOlxuICAgIGNhc2UgNjEzNTpcbiAgICBjYXNlIDQ1OTk6XG4gICAgY2FzZSA0ODU1OiAvLyBiYWNrZ3JvdW5kLWNsaXAsIGNvbHVtbnMsIGNvbHVtbi0oY291bnR8ZmlsbHxnYXB8cnVsZXxydWxlLWNvbG9yfHJ1bGUtc3R5bGV8cnVsZS13aWR0aHxzcGFufHdpZHRoKVxuXG4gICAgY2FzZSA0MjE1OlxuICAgIGNhc2UgNjM4OTpcbiAgICBjYXNlIDUxMDk6XG4gICAgY2FzZSA1MzY1OlxuICAgIGNhc2UgNTYyMTpcbiAgICBjYXNlIDM4Mjk6XG4gICAgICByZXR1cm4gV0VCS0lUICsgdmFsdWUgKyB2YWx1ZTtcbiAgICAvLyBhcHBlYXJhbmNlLCB1c2VyLXNlbGVjdCwgdHJhbnNmb3JtLCBoeXBoZW5zLCB0ZXh0LXNpemUtYWRqdXN0XG5cbiAgICBjYXNlIDUzNDk6XG4gICAgY2FzZSA0MjQ2OlxuICAgIGNhc2UgNDgxMDpcbiAgICBjYXNlIDY5Njg6XG4gICAgY2FzZSAyNzU2OlxuICAgICAgcmV0dXJuIFdFQktJVCArIHZhbHVlICsgTU9aICsgdmFsdWUgKyBNUyArIHZhbHVlICsgdmFsdWU7XG4gICAgLy8gZmxleCwgZmxleC1kaXJlY3Rpb25cblxuICAgIGNhc2UgNjgyODpcbiAgICBjYXNlIDQyNjg6XG4gICAgICByZXR1cm4gV0VCS0lUICsgdmFsdWUgKyBNUyArIHZhbHVlICsgdmFsdWU7XG4gICAgLy8gb3JkZXJcblxuICAgIGNhc2UgNjE2NTpcbiAgICAgIHJldHVybiBXRUJLSVQgKyB2YWx1ZSArIE1TICsgJ2ZsZXgtJyArIHZhbHVlICsgdmFsdWU7XG4gICAgLy8gYWxpZ24taXRlbXNcblxuICAgIGNhc2UgNTE4NzpcbiAgICAgIHJldHVybiBXRUJLSVQgKyB2YWx1ZSArIHJlcGxhY2UodmFsdWUsIC8oXFx3KykuKyg6W15dKykvLCBXRUJLSVQgKyAnYm94LSQxJDInICsgTVMgKyAnZmxleC0kMSQyJykgKyB2YWx1ZTtcbiAgICAvLyBhbGlnbi1zZWxmXG5cbiAgICBjYXNlIDU0NDM6XG4gICAgICByZXR1cm4gV0VCS0lUICsgdmFsdWUgKyBNUyArICdmbGV4LWl0ZW0tJyArIHJlcGxhY2UodmFsdWUsIC9mbGV4LXwtc2VsZi8sICcnKSArIHZhbHVlO1xuICAgIC8vIGFsaWduLWNvbnRlbnRcblxuICAgIGNhc2UgNDY3NTpcbiAgICAgIHJldHVybiBXRUJLSVQgKyB2YWx1ZSArIE1TICsgJ2ZsZXgtbGluZS1wYWNrJyArIHJlcGxhY2UodmFsdWUsIC9hbGlnbi1jb250ZW50fGZsZXgtfC1zZWxmLywgJycpICsgdmFsdWU7XG4gICAgLy8gZmxleC1zaHJpbmtcblxuICAgIGNhc2UgNTU0ODpcbiAgICAgIHJldHVybiBXRUJLSVQgKyB2YWx1ZSArIE1TICsgcmVwbGFjZSh2YWx1ZSwgJ3NocmluaycsICduZWdhdGl2ZScpICsgdmFsdWU7XG4gICAgLy8gZmxleC1iYXNpc1xuXG4gICAgY2FzZSA1MjkyOlxuICAgICAgcmV0dXJuIFdFQktJVCArIHZhbHVlICsgTVMgKyByZXBsYWNlKHZhbHVlLCAnYmFzaXMnLCAncHJlZmVycmVkLXNpemUnKSArIHZhbHVlO1xuICAgIC8vIGZsZXgtZ3Jvd1xuXG4gICAgY2FzZSA2MDYwOlxuICAgICAgcmV0dXJuIFdFQktJVCArICdib3gtJyArIHJlcGxhY2UodmFsdWUsICctZ3JvdycsICcnKSArIFdFQktJVCArIHZhbHVlICsgTVMgKyByZXBsYWNlKHZhbHVlLCAnZ3JvdycsICdwb3NpdGl2ZScpICsgdmFsdWU7XG4gICAgLy8gdHJhbnNpdGlvblxuXG4gICAgY2FzZSA0NTU0OlxuICAgICAgcmV0dXJuIFdFQktJVCArIHJlcGxhY2UodmFsdWUsIC8oW14tXSkodHJhbnNmb3JtKS9nLCAnJDEnICsgV0VCS0lUICsgJyQyJykgKyB2YWx1ZTtcbiAgICAvLyBjdXJzb3JcblxuICAgIGNhc2UgNjE4NzpcbiAgICAgIHJldHVybiByZXBsYWNlKHJlcGxhY2UocmVwbGFjZSh2YWx1ZSwgLyh6b29tLXxncmFiKS8sIFdFQktJVCArICckMScpLCAvKGltYWdlLXNldCkvLCBXRUJLSVQgKyAnJDEnKSwgdmFsdWUsICcnKSArIHZhbHVlO1xuICAgIC8vIGJhY2tncm91bmQsIGJhY2tncm91bmQtaW1hZ2VcblxuICAgIGNhc2UgNTQ5NTpcbiAgICBjYXNlIDM5NTk6XG4gICAgICByZXR1cm4gcmVwbGFjZSh2YWx1ZSwgLyhpbWFnZS1zZXRcXChbXl0qKS8sIFdFQktJVCArICckMScgKyAnJGAkMScpO1xuICAgIC8vIGp1c3RpZnktY29udGVudFxuXG4gICAgY2FzZSA0OTY4OlxuICAgICAgcmV0dXJuIHJlcGxhY2UocmVwbGFjZSh2YWx1ZSwgLyguKzopKGZsZXgtKT8oLiopLywgV0VCS0lUICsgJ2JveC1wYWNrOiQzJyArIE1TICsgJ2ZsZXgtcGFjazokMycpLCAvcy4rLWJbXjtdKy8sICdqdXN0aWZ5JykgKyBXRUJLSVQgKyB2YWx1ZSArIHZhbHVlO1xuICAgIC8vIChtYXJnaW58cGFkZGluZyktaW5saW5lLShzdGFydHxlbmQpXG5cbiAgICBjYXNlIDQwOTU6XG4gICAgY2FzZSAzNTgzOlxuICAgIGNhc2UgNDA2ODpcbiAgICBjYXNlIDI1MzI6XG4gICAgICByZXR1cm4gcmVwbGFjZSh2YWx1ZSwgLyguKyktaW5saW5lKC4rKS8sIFdFQktJVCArICckMSQyJykgKyB2YWx1ZTtcbiAgICAvLyAobWlufG1heCk/KHdpZHRofGhlaWdodHxpbmxpbmUtc2l6ZXxibG9jay1zaXplKVxuXG4gICAgY2FzZSA4MTE2OlxuICAgIGNhc2UgNzA1OTpcbiAgICBjYXNlIDU3NTM6XG4gICAgY2FzZSA1NTM1OlxuICAgIGNhc2UgNTQ0NTpcbiAgICBjYXNlIDU3MDE6XG4gICAgY2FzZSA0OTMzOlxuICAgIGNhc2UgNDY3NzpcbiAgICBjYXNlIDU1MzM6XG4gICAgY2FzZSA1Nzg5OlxuICAgIGNhc2UgNTAyMTpcbiAgICBjYXNlIDQ3NjU6XG4gICAgICAvLyBzdHJldGNoLCBtYXgtY29udGVudCwgbWluLWNvbnRlbnQsIGZpbGwtYXZhaWxhYmxlXG4gICAgICBpZiAoc3RybGVuKHZhbHVlKSAtIDEgLSBsZW5ndGggPiA2KSBzd2l0Y2ggKGNoYXJhdCh2YWx1ZSwgbGVuZ3RoICsgMSkpIHtcbiAgICAgICAgLy8gKG0pYXgtY29udGVudCwgKG0paW4tY29udGVudFxuICAgICAgICBjYXNlIDEwOTpcbiAgICAgICAgICAvLyAtXG4gICAgICAgICAgaWYgKGNoYXJhdCh2YWx1ZSwgbGVuZ3RoICsgNCkgIT09IDQ1KSBicmVhaztcbiAgICAgICAgLy8gKGYpaWxsLWF2YWlsYWJsZSwgKGYpaXQtY29udGVudFxuXG4gICAgICAgIGNhc2UgMTAyOlxuICAgICAgICAgIHJldHVybiByZXBsYWNlKHZhbHVlLCAvKC4rOikoLispLShbXl0rKS8sICckMScgKyBXRUJLSVQgKyAnJDItJDMnICsgJyQxJyArIE1PWiArIChjaGFyYXQodmFsdWUsIGxlbmd0aCArIDMpID09IDEwOCA/ICckMycgOiAnJDItJDMnKSkgKyB2YWx1ZTtcbiAgICAgICAgLy8gKHMpdHJldGNoXG5cbiAgICAgICAgY2FzZSAxMTU6XG4gICAgICAgICAgcmV0dXJuIH5pbmRleG9mKHZhbHVlLCAnc3RyZXRjaCcpID8gcHJlZml4KHJlcGxhY2UodmFsdWUsICdzdHJldGNoJywgJ2ZpbGwtYXZhaWxhYmxlJyksIGxlbmd0aCkgKyB2YWx1ZSA6IHZhbHVlO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgLy8gcG9zaXRpb246IHN0aWNreVxuXG4gICAgY2FzZSA0OTQ5OlxuICAgICAgLy8gKHMpdGlja3k/XG4gICAgICBpZiAoY2hhcmF0KHZhbHVlLCBsZW5ndGggKyAxKSAhPT0gMTE1KSBicmVhaztcbiAgICAvLyBkaXNwbGF5OiAoZmxleHxpbmxpbmUtZmxleClcblxuICAgIGNhc2UgNjQ0NDpcbiAgICAgIHN3aXRjaCAoY2hhcmF0KHZhbHVlLCBzdHJsZW4odmFsdWUpIC0gMyAtICh+aW5kZXhvZih2YWx1ZSwgJyFpbXBvcnRhbnQnKSAmJiAxMCkpKSB7XG4gICAgICAgIC8vIHN0aWMoayl5XG4gICAgICAgIGNhc2UgMTA3OlxuICAgICAgICAgIHJldHVybiByZXBsYWNlKHZhbHVlLCAnOicsICc6JyArIFdFQktJVCkgKyB2YWx1ZTtcbiAgICAgICAgLy8gKGlubGluZS0pP2ZsKGUpeFxuXG4gICAgICAgIGNhc2UgMTAxOlxuICAgICAgICAgIHJldHVybiByZXBsYWNlKHZhbHVlLCAvKC4rOikoW147IV0rKSg7fCEuKyk/LywgJyQxJyArIFdFQktJVCArIChjaGFyYXQodmFsdWUsIDE0KSA9PT0gNDUgPyAnaW5saW5lLScgOiAnJykgKyAnYm94JDMnICsgJyQxJyArIFdFQktJVCArICckMiQzJyArICckMScgKyBNUyArICckMmJveCQzJykgKyB2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgLy8gd3JpdGluZy1tb2RlXG5cbiAgICBjYXNlIDU5MzY6XG4gICAgICBzd2l0Y2ggKGNoYXJhdCh2YWx1ZSwgbGVuZ3RoICsgMTEpKSB7XG4gICAgICAgIC8vIHZlcnRpY2FsLWwocilcbiAgICAgICAgY2FzZSAxMTQ6XG4gICAgICAgICAgcmV0dXJuIFdFQktJVCArIHZhbHVlICsgTVMgKyByZXBsYWNlKHZhbHVlLCAvW3N2aF1cXHcrLVt0YmxyXXsyfS8sICd0YicpICsgdmFsdWU7XG4gICAgICAgIC8vIHZlcnRpY2FsLXIobClcblxuICAgICAgICBjYXNlIDEwODpcbiAgICAgICAgICByZXR1cm4gV0VCS0lUICsgdmFsdWUgKyBNUyArIHJlcGxhY2UodmFsdWUsIC9bc3ZoXVxcdystW3RibHJdezJ9LywgJ3RiLXJsJykgKyB2YWx1ZTtcbiAgICAgICAgLy8gaG9yaXpvbnRhbCgtKXRiXG5cbiAgICAgICAgY2FzZSA0NTpcbiAgICAgICAgICByZXR1cm4gV0VCS0lUICsgdmFsdWUgKyBNUyArIHJlcGxhY2UodmFsdWUsIC9bc3ZoXVxcdystW3RibHJdezJ9LywgJ2xyJykgKyB2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFdFQktJVCArIHZhbHVlICsgTVMgKyB2YWx1ZSArIHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG52YXIgcHJlZml4ZXIgPSBmdW5jdGlvbiBwcmVmaXhlcihlbGVtZW50LCBpbmRleCwgY2hpbGRyZW4sIGNhbGxiYWNrKSB7XG4gIGlmIChlbGVtZW50Lmxlbmd0aCA+IC0xKSBpZiAoIWVsZW1lbnRbXCJyZXR1cm5cIl0pIHN3aXRjaCAoZWxlbWVudC50eXBlKSB7XG4gICAgY2FzZSBERUNMQVJBVElPTjpcbiAgICAgIGVsZW1lbnRbXCJyZXR1cm5cIl0gPSBwcmVmaXgoZWxlbWVudC52YWx1ZSwgZWxlbWVudC5sZW5ndGgpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIEtFWUZSQU1FUzpcbiAgICAgIHJldHVybiBzZXJpYWxpemUoW2NvcHkoZWxlbWVudCwge1xuICAgICAgICB2YWx1ZTogcmVwbGFjZShlbGVtZW50LnZhbHVlLCAnQCcsICdAJyArIFdFQktJVClcbiAgICAgIH0pXSwgY2FsbGJhY2spO1xuXG4gICAgY2FzZSBSVUxFU0VUOlxuICAgICAgaWYgKGVsZW1lbnQubGVuZ3RoKSByZXR1cm4gY29tYmluZShlbGVtZW50LnByb3BzLCBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgc3dpdGNoIChtYXRjaCh2YWx1ZSwgLyg6OnBsYWNcXHcrfDpyZWFkLVxcdyspLykpIHtcbiAgICAgICAgICAvLyA6cmVhZC0ob25seXx3cml0ZSlcbiAgICAgICAgICBjYXNlICc6cmVhZC1vbmx5JzpcbiAgICAgICAgICBjYXNlICc6cmVhZC13cml0ZSc6XG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplKFtjb3B5KGVsZW1lbnQsIHtcbiAgICAgICAgICAgICAgcHJvcHM6IFtyZXBsYWNlKHZhbHVlLCAvOihyZWFkLVxcdyspLywgJzonICsgTU9aICsgJyQxJyldXG4gICAgICAgICAgICB9KV0sIGNhbGxiYWNrKTtcbiAgICAgICAgICAvLyA6cGxhY2Vob2xkZXJcblxuICAgICAgICAgIGNhc2UgJzo6cGxhY2Vob2xkZXInOlxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZShbY29weShlbGVtZW50LCB7XG4gICAgICAgICAgICAgIHByb3BzOiBbcmVwbGFjZSh2YWx1ZSwgLzoocGxhY1xcdyspLywgJzonICsgV0VCS0lUICsgJ2lucHV0LSQxJyldXG4gICAgICAgICAgICB9KSwgY29weShlbGVtZW50LCB7XG4gICAgICAgICAgICAgIHByb3BzOiBbcmVwbGFjZSh2YWx1ZSwgLzoocGxhY1xcdyspLywgJzonICsgTU9aICsgJyQxJyldXG4gICAgICAgICAgICB9KSwgY29weShlbGVtZW50LCB7XG4gICAgICAgICAgICAgIHByb3BzOiBbcmVwbGFjZSh2YWx1ZSwgLzoocGxhY1xcdyspLywgTVMgKyAnaW5wdXQtJDEnKV1cbiAgICAgICAgICAgIH0pXSwgY2FsbGJhY2spO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfSk7XG4gIH1cbn07XG5cbnZhciBkZWZhdWx0U3R5bGlzUGx1Z2lucyA9IFtwcmVmaXhlcl07XG5cbnZhciBjcmVhdGVDYWNoZSA9IGZ1bmN0aW9uIGNyZWF0ZUNhY2hlKG9wdGlvbnMpIHtcbiAgdmFyIGtleSA9IG9wdGlvbnMua2V5O1xuXG4gIGlmIChrZXkgPT09ICdjc3MnKSB7XG4gICAgdmFyIHNzclN0eWxlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJzdHlsZVtkYXRhLWVtb3Rpb25dOm5vdChbZGF0YS1zXSlcIik7IC8vIGdldCBTU1JlZCBzdHlsZXMgb3V0IG9mIHRoZSB3YXkgb2YgUmVhY3QncyBoeWRyYXRpb25cbiAgICAvLyBkb2N1bWVudC5oZWFkIGlzIGEgc2FmZSBwbGFjZSB0byBtb3ZlIHRoZW0gdG8odGhvdWdoIG5vdGUgZG9jdW1lbnQuaGVhZCBpcyBub3QgbmVjZXNzYXJpbHkgdGhlIGxhc3QgcGxhY2UgdGhleSB3aWxsIGJlKVxuICAgIC8vIG5vdGUgdGhpcyB2ZXJ5IHZlcnkgaW50ZW50aW9uYWxseSB0YXJnZXRzIGFsbCBzdHlsZSBlbGVtZW50cyByZWdhcmRsZXNzIG9mIHRoZSBrZXkgdG8gZW5zdXJlXG4gICAgLy8gdGhhdCBjcmVhdGluZyBhIGNhY2hlIHdvcmtzIGluc2lkZSBvZiByZW5kZXIgb2YgYSBSZWFjdCBjb21wb25lbnRcblxuICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoc3NyU3R5bGVzLCBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgLy8gd2Ugd2FudCB0byBvbmx5IG1vdmUgZWxlbWVudHMgd2hpY2ggaGF2ZSBhIHNwYWNlIGluIHRoZSBkYXRhLWVtb3Rpb24gYXR0cmlidXRlIHZhbHVlXG4gICAgICAvLyBiZWNhdXNlIHRoYXQgaW5kaWNhdGVzIHRoYXQgaXQgaXMgYW4gRW1vdGlvbiAxMSBzZXJ2ZXItc2lkZSByZW5kZXJlZCBzdHlsZSBlbGVtZW50c1xuICAgICAgLy8gd2hpbGUgd2Ugd2lsbCBhbHJlYWR5IGlnbm9yZSBFbW90aW9uIDExIGNsaWVudC1zaWRlIGluc2VydGVkIHN0eWxlcyBiZWNhdXNlIG9mIHRoZSA6bm90KFtkYXRhLXNdKSBwYXJ0IGluIHRoZSBzZWxlY3RvclxuICAgICAgLy8gRW1vdGlvbiAxMCBjbGllbnQtc2lkZSBpbnNlcnRlZCBzdHlsZXMgZGlkIG5vdCBoYXZlIGRhdGEtcyAoYnV0IGltcG9ydGFudGx5IGRpZCBub3QgaGF2ZSBhIHNwYWNlIGluIHRoZWlyIGRhdGEtZW1vdGlvbiBhdHRyaWJ1dGVzKVxuICAgICAgLy8gc28gY2hlY2tpbmcgZm9yIHRoZSBzcGFjZSBlbnN1cmVzIHRoYXQgbG9hZGluZyBFbW90aW9uIDExIGFmdGVyIEVtb3Rpb24gMTAgaGFzIGluc2VydGVkIHNvbWUgc3R5bGVzXG4gICAgICAvLyB3aWxsIG5vdCByZXN1bHQgaW4gdGhlIEVtb3Rpb24gMTAgc3R5bGVzIGJlaW5nIGRlc3Ryb3llZFxuICAgICAgdmFyIGRhdGFFbW90aW9uQXR0cmlidXRlID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtZW1vdGlvbicpO1xuXG4gICAgICBpZiAoZGF0YUVtb3Rpb25BdHRyaWJ1dGUuaW5kZXhPZignICcpID09PSAtMSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobm9kZSk7XG4gICAgICBub2RlLnNldEF0dHJpYnV0ZSgnZGF0YS1zJywgJycpO1xuICAgIH0pO1xuICB9XG5cbiAgdmFyIHN0eWxpc1BsdWdpbnMgPSBvcHRpb25zLnN0eWxpc1BsdWdpbnMgfHwgZGVmYXVsdFN0eWxpc1BsdWdpbnM7XG5cbiAgdmFyIGluc2VydGVkID0ge307XG4gIHZhciBjb250YWluZXI7XG4gIHZhciBub2Rlc1RvSHlkcmF0ZSA9IFtdO1xuXG4gIHtcbiAgICBjb250YWluZXIgPSBvcHRpb25zLmNvbnRhaW5lciB8fCBkb2N1bWVudC5oZWFkO1xuICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoIC8vIHRoaXMgbWVhbnMgd2Ugd2lsbCBpZ25vcmUgZWxlbWVudHMgd2hpY2ggZG9uJ3QgaGF2ZSBhIHNwYWNlIGluIHRoZW0gd2hpY2hcbiAgICAvLyBtZWFucyB0aGF0IHRoZSBzdHlsZSBlbGVtZW50cyB3ZSdyZSBsb29raW5nIGF0IGFyZSBvbmx5IEVtb3Rpb24gMTEgc2VydmVyLXJlbmRlcmVkIHN0eWxlIGVsZW1lbnRzXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInN0eWxlW2RhdGEtZW1vdGlvbl49XFxcIlwiICsga2V5ICsgXCIgXFxcIl1cIiksIGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICB2YXIgYXR0cmliID0gbm9kZS5nZXRBdHRyaWJ1dGUoXCJkYXRhLWVtb3Rpb25cIikuc3BsaXQoJyAnKTtcblxuICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhdHRyaWIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaW5zZXJ0ZWRbYXR0cmliW2ldXSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIG5vZGVzVG9IeWRyYXRlLnB1c2gobm9kZSk7XG4gICAgfSk7XG4gIH1cblxuICB2YXIgX2luc2VydDtcblxuICB2YXIgb21uaXByZXNlbnRQbHVnaW5zID0gW2NvbXBhdCwgcmVtb3ZlTGFiZWxdO1xuXG4gIHtcbiAgICB2YXIgY3VycmVudFNoZWV0O1xuICAgIHZhciBmaW5hbGl6aW5nUGx1Z2lucyA9IFtzdHJpbmdpZnksIHJ1bGVzaGVldChmdW5jdGlvbiAocnVsZSkge1xuICAgICAgY3VycmVudFNoZWV0Lmluc2VydChydWxlKTtcbiAgICB9KV07XG4gICAgdmFyIHNlcmlhbGl6ZXIgPSBtaWRkbGV3YXJlKG9tbmlwcmVzZW50UGx1Z2lucy5jb25jYXQoc3R5bGlzUGx1Z2lucywgZmluYWxpemluZ1BsdWdpbnMpKTtcblxuICAgIHZhciBzdHlsaXMgPSBmdW5jdGlvbiBzdHlsaXMoc3R5bGVzKSB7XG4gICAgICByZXR1cm4gc2VyaWFsaXplKGNvbXBpbGUoc3R5bGVzKSwgc2VyaWFsaXplcik7XG4gICAgfTtcblxuICAgIF9pbnNlcnQgPSBmdW5jdGlvbiBpbnNlcnQoc2VsZWN0b3IsIHNlcmlhbGl6ZWQsIHNoZWV0LCBzaG91bGRDYWNoZSkge1xuICAgICAgY3VycmVudFNoZWV0ID0gc2hlZXQ7XG5cbiAgICAgIHN0eWxpcyhzZWxlY3RvciA/IHNlbGVjdG9yICsgXCJ7XCIgKyBzZXJpYWxpemVkLnN0eWxlcyArIFwifVwiIDogc2VyaWFsaXplZC5zdHlsZXMpO1xuXG4gICAgICBpZiAoc2hvdWxkQ2FjaGUpIHtcbiAgICAgICAgY2FjaGUuaW5zZXJ0ZWRbc2VyaWFsaXplZC5uYW1lXSA9IHRydWU7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHZhciBjYWNoZSA9IHtcbiAgICBrZXk6IGtleSxcbiAgICBzaGVldDogbmV3IFN0eWxlU2hlZXQoe1xuICAgICAga2V5OiBrZXksXG4gICAgICBjb250YWluZXI6IGNvbnRhaW5lcixcbiAgICAgIG5vbmNlOiBvcHRpb25zLm5vbmNlLFxuICAgICAgc3BlZWR5OiBvcHRpb25zLnNwZWVkeSxcbiAgICAgIHByZXBlbmQ6IG9wdGlvbnMucHJlcGVuZCxcbiAgICAgIGluc2VydGlvblBvaW50OiBvcHRpb25zLmluc2VydGlvblBvaW50XG4gICAgfSksXG4gICAgbm9uY2U6IG9wdGlvbnMubm9uY2UsXG4gICAgaW5zZXJ0ZWQ6IGluc2VydGVkLFxuICAgIHJlZ2lzdGVyZWQ6IHt9LFxuICAgIGluc2VydDogX2luc2VydFxuICB9O1xuICBjYWNoZS5zaGVldC5oeWRyYXRlKG5vZGVzVG9IeWRyYXRlKTtcbiAgcmV0dXJuIGNhY2hlO1xufTtcblxuZXhwb3J0IHsgY3JlYXRlQ2FjaGUgYXMgZGVmYXVsdCB9O1xuIiwiLyoqIEBsaWNlbnNlIFJlYWN0IHYxNi4xMy4xXG4gKiByZWFjdC1pcy5wcm9kdWN0aW9uLm1pbi5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0Jzt2YXIgYj1cImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuZm9yLGM9Yj9TeW1ib2wuZm9yKFwicmVhY3QuZWxlbWVudFwiKTo2MDEwMyxkPWI/U3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKTo2MDEwNixlPWI/U3ltYm9sLmZvcihcInJlYWN0LmZyYWdtZW50XCIpOjYwMTA3LGY9Yj9TeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIik6NjAxMDgsZz1iP1N5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKTo2MDExNCxoPWI/U3ltYm9sLmZvcihcInJlYWN0LnByb3ZpZGVyXCIpOjYwMTA5LGs9Yj9TeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKTo2MDExMCxsPWI/U3ltYm9sLmZvcihcInJlYWN0LmFzeW5jX21vZGVcIik6NjAxMTEsbT1iP1N5bWJvbC5mb3IoXCJyZWFjdC5jb25jdXJyZW50X21vZGVcIik6NjAxMTEsbj1iP1N5bWJvbC5mb3IoXCJyZWFjdC5mb3J3YXJkX3JlZlwiKTo2MDExMixwPWI/U3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpOjYwMTEzLHE9Yj9cblN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZV9saXN0XCIpOjYwMTIwLHI9Yj9TeW1ib2wuZm9yKFwicmVhY3QubWVtb1wiKTo2MDExNSx0PWI/U3ltYm9sLmZvcihcInJlYWN0LmxhenlcIik6NjAxMTYsdj1iP1N5bWJvbC5mb3IoXCJyZWFjdC5ibG9ja1wiKTo2MDEyMSx3PWI/U3ltYm9sLmZvcihcInJlYWN0LmZ1bmRhbWVudGFsXCIpOjYwMTE3LHg9Yj9TeW1ib2wuZm9yKFwicmVhY3QucmVzcG9uZGVyXCIpOjYwMTE4LHk9Yj9TeW1ib2wuZm9yKFwicmVhY3Quc2NvcGVcIik6NjAxMTk7XG5mdW5jdGlvbiB6KGEpe2lmKFwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEpe3ZhciB1PWEuJCR0eXBlb2Y7c3dpdGNoKHUpe2Nhc2UgYzpzd2l0Y2goYT1hLnR5cGUsYSl7Y2FzZSBsOmNhc2UgbTpjYXNlIGU6Y2FzZSBnOmNhc2UgZjpjYXNlIHA6cmV0dXJuIGE7ZGVmYXVsdDpzd2l0Y2goYT1hJiZhLiQkdHlwZW9mLGEpe2Nhc2UgazpjYXNlIG46Y2FzZSB0OmNhc2UgcjpjYXNlIGg6cmV0dXJuIGE7ZGVmYXVsdDpyZXR1cm4gdX19Y2FzZSBkOnJldHVybiB1fX19ZnVuY3Rpb24gQShhKXtyZXR1cm4geihhKT09PW19ZXhwb3J0cy5Bc3luY01vZGU9bDtleHBvcnRzLkNvbmN1cnJlbnRNb2RlPW07ZXhwb3J0cy5Db250ZXh0Q29uc3VtZXI9aztleHBvcnRzLkNvbnRleHRQcm92aWRlcj1oO2V4cG9ydHMuRWxlbWVudD1jO2V4cG9ydHMuRm9yd2FyZFJlZj1uO2V4cG9ydHMuRnJhZ21lbnQ9ZTtleHBvcnRzLkxhenk9dDtleHBvcnRzLk1lbW89cjtleHBvcnRzLlBvcnRhbD1kO1xuZXhwb3J0cy5Qcm9maWxlcj1nO2V4cG9ydHMuU3RyaWN0TW9kZT1mO2V4cG9ydHMuU3VzcGVuc2U9cDtleHBvcnRzLmlzQXN5bmNNb2RlPWZ1bmN0aW9uKGEpe3JldHVybiBBKGEpfHx6KGEpPT09bH07ZXhwb3J0cy5pc0NvbmN1cnJlbnRNb2RlPUE7ZXhwb3J0cy5pc0NvbnRleHRDb25zdW1lcj1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PWt9O2V4cG9ydHMuaXNDb250ZXh0UHJvdmlkZXI9ZnVuY3Rpb24oYSl7cmV0dXJuIHooYSk9PT1ofTtleHBvcnRzLmlzRWxlbWVudD1mdW5jdGlvbihhKXtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIGEmJm51bGwhPT1hJiZhLiQkdHlwZW9mPT09Y307ZXhwb3J0cy5pc0ZvcndhcmRSZWY9ZnVuY3Rpb24oYSl7cmV0dXJuIHooYSk9PT1ufTtleHBvcnRzLmlzRnJhZ21lbnQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHooYSk9PT1lfTtleHBvcnRzLmlzTGF6eT1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PXR9O1xuZXhwb3J0cy5pc01lbW89ZnVuY3Rpb24oYSl7cmV0dXJuIHooYSk9PT1yfTtleHBvcnRzLmlzUG9ydGFsPWZ1bmN0aW9uKGEpe3JldHVybiB6KGEpPT09ZH07ZXhwb3J0cy5pc1Byb2ZpbGVyPWZ1bmN0aW9uKGEpe3JldHVybiB6KGEpPT09Z307ZXhwb3J0cy5pc1N0cmljdE1vZGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHooYSk9PT1mfTtleHBvcnRzLmlzU3VzcGVuc2U9ZnVuY3Rpb24oYSl7cmV0dXJuIHooYSk9PT1wfTtcbmV4cG9ydHMuaXNWYWxpZEVsZW1lbnRUeXBlPWZ1bmN0aW9uKGEpe3JldHVyblwic3RyaW5nXCI9PT10eXBlb2YgYXx8XCJmdW5jdGlvblwiPT09dHlwZW9mIGF8fGE9PT1lfHxhPT09bXx8YT09PWd8fGE9PT1mfHxhPT09cHx8YT09PXF8fFwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEmJihhLiQkdHlwZW9mPT09dHx8YS4kJHR5cGVvZj09PXJ8fGEuJCR0eXBlb2Y9PT1ofHxhLiQkdHlwZW9mPT09a3x8YS4kJHR5cGVvZj09PW58fGEuJCR0eXBlb2Y9PT13fHxhLiQkdHlwZW9mPT09eHx8YS4kJHR5cGVvZj09PXl8fGEuJCR0eXBlb2Y9PT12KX07ZXhwb3J0cy50eXBlT2Y9ejtcbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1pcy5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUsIFlhaG9vISBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbnZhciBSRUFDVF9TVEFUSUNTID0ge1xuICBjaGlsZENvbnRleHRUeXBlczogdHJ1ZSxcbiAgY29udGV4dFR5cGU6IHRydWUsXG4gIGNvbnRleHRUeXBlczogdHJ1ZSxcbiAgZGVmYXVsdFByb3BzOiB0cnVlLFxuICBkaXNwbGF5TmFtZTogdHJ1ZSxcbiAgZ2V0RGVmYXVsdFByb3BzOiB0cnVlLFxuICBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I6IHRydWUsXG4gIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wczogdHJ1ZSxcbiAgbWl4aW5zOiB0cnVlLFxuICBwcm9wVHlwZXM6IHRydWUsXG4gIHR5cGU6IHRydWVcbn07XG52YXIgS05PV05fU1RBVElDUyA9IHtcbiAgbmFtZTogdHJ1ZSxcbiAgbGVuZ3RoOiB0cnVlLFxuICBwcm90b3R5cGU6IHRydWUsXG4gIGNhbGxlcjogdHJ1ZSxcbiAgY2FsbGVlOiB0cnVlLFxuICBhcmd1bWVudHM6IHRydWUsXG4gIGFyaXR5OiB0cnVlXG59O1xudmFyIEZPUldBUkRfUkVGX1NUQVRJQ1MgPSB7XG4gICckJHR5cGVvZic6IHRydWUsXG4gIHJlbmRlcjogdHJ1ZSxcbiAgZGVmYXVsdFByb3BzOiB0cnVlLFxuICBkaXNwbGF5TmFtZTogdHJ1ZSxcbiAgcHJvcFR5cGVzOiB0cnVlXG59O1xudmFyIE1FTU9fU1RBVElDUyA9IHtcbiAgJyQkdHlwZW9mJzogdHJ1ZSxcbiAgY29tcGFyZTogdHJ1ZSxcbiAgZGVmYXVsdFByb3BzOiB0cnVlLFxuICBkaXNwbGF5TmFtZTogdHJ1ZSxcbiAgcHJvcFR5cGVzOiB0cnVlLFxuICB0eXBlOiB0cnVlXG59O1xudmFyIFRZUEVfU1RBVElDUyA9IHt9O1xuVFlQRV9TVEFUSUNTW3JlYWN0SXMuRm9yd2FyZFJlZl0gPSBGT1JXQVJEX1JFRl9TVEFUSUNTO1xuVFlQRV9TVEFUSUNTW3JlYWN0SXMuTWVtb10gPSBNRU1PX1NUQVRJQ1M7XG5cbmZ1bmN0aW9uIGdldFN0YXRpY3MoY29tcG9uZW50KSB7XG4gIC8vIFJlYWN0IHYxNi4xMSBhbmQgYmVsb3dcbiAgaWYgKHJlYWN0SXMuaXNNZW1vKGNvbXBvbmVudCkpIHtcbiAgICByZXR1cm4gTUVNT19TVEFUSUNTO1xuICB9IC8vIFJlYWN0IHYxNi4xMiBhbmQgYWJvdmVcblxuXG4gIHJldHVybiBUWVBFX1NUQVRJQ1NbY29tcG9uZW50WyckJHR5cGVvZiddXSB8fCBSRUFDVF9TVEFUSUNTO1xufVxuXG52YXIgZGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgZ2V0T3duUHJvcGVydHlOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO1xudmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG52YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbnZhciBnZXRQcm90b3R5cGVPZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjtcbnZhciBvYmplY3RQcm90b3R5cGUgPSBPYmplY3QucHJvdG90eXBlO1xuZnVuY3Rpb24gaG9pc3ROb25SZWFjdFN0YXRpY3ModGFyZ2V0Q29tcG9uZW50LCBzb3VyY2VDb21wb25lbnQsIGJsYWNrbGlzdCkge1xuICBpZiAodHlwZW9mIHNvdXJjZUNvbXBvbmVudCAhPT0gJ3N0cmluZycpIHtcbiAgICAvLyBkb24ndCBob2lzdCBvdmVyIHN0cmluZyAoaHRtbCkgY29tcG9uZW50c1xuICAgIGlmIChvYmplY3RQcm90b3R5cGUpIHtcbiAgICAgIHZhciBpbmhlcml0ZWRDb21wb25lbnQgPSBnZXRQcm90b3R5cGVPZihzb3VyY2VDb21wb25lbnQpO1xuXG4gICAgICBpZiAoaW5oZXJpdGVkQ29tcG9uZW50ICYmIGluaGVyaXRlZENvbXBvbmVudCAhPT0gb2JqZWN0UHJvdG90eXBlKSB7XG4gICAgICAgIGhvaXN0Tm9uUmVhY3RTdGF0aWNzKHRhcmdldENvbXBvbmVudCwgaW5oZXJpdGVkQ29tcG9uZW50LCBibGFja2xpc3QpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBrZXlzID0gZ2V0T3duUHJvcGVydHlOYW1lcyhzb3VyY2VDb21wb25lbnQpO1xuXG4gICAgaWYgKGdldE93blByb3BlcnR5U3ltYm9scykge1xuICAgICAga2V5cyA9IGtleXMuY29uY2F0KGdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2VDb21wb25lbnQpKTtcbiAgICB9XG5cbiAgICB2YXIgdGFyZ2V0U3RhdGljcyA9IGdldFN0YXRpY3ModGFyZ2V0Q29tcG9uZW50KTtcbiAgICB2YXIgc291cmNlU3RhdGljcyA9IGdldFN0YXRpY3Moc291cmNlQ29tcG9uZW50KTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7ICsraSkge1xuICAgICAgdmFyIGtleSA9IGtleXNbaV07XG5cbiAgICAgIGlmICghS05PV05fU1RBVElDU1trZXldICYmICEoYmxhY2tsaXN0ICYmIGJsYWNrbGlzdFtrZXldKSAmJiAhKHNvdXJjZVN0YXRpY3MgJiYgc291cmNlU3RhdGljc1trZXldKSAmJiAhKHRhcmdldFN0YXRpY3MgJiYgdGFyZ2V0U3RhdGljc1trZXldKSkge1xuICAgICAgICB2YXIgZGVzY3JpcHRvciA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2VDb21wb25lbnQsIGtleSk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBBdm9pZCBmYWlsdXJlcyBmcm9tIHJlYWQtb25seSBwcm9wZXJ0aWVzXG4gICAgICAgICAgZGVmaW5lUHJvcGVydHkodGFyZ2V0Q29tcG9uZW50LCBrZXksIGRlc2NyaXB0b3IpO1xuICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXRDb21wb25lbnQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaG9pc3ROb25SZWFjdFN0YXRpY3M7XG4iLCJpbXBvcnQgaG9pc3ROb25SZWFjdFN0YXRpY3MkMSBmcm9tICdob2lzdC1ub24tcmVhY3Qtc3RhdGljcyc7XG5cbi8vIHRoaXMgZmlsZSBpc29sYXRlcyB0aGlzIHBhY2thZ2UgdGhhdCBpcyBub3QgdHJlZS1zaGFrZWFibGVcbi8vIGFuZCBpZiB0aGlzIG1vZHVsZSBkb2Vzbid0IGFjdHVhbGx5IGNvbnRhaW4gYW55IGxvZ2ljIG9mIGl0cyBvd25cbi8vIHRoZW4gUm9sbHVwIGp1c3QgdXNlICdob2lzdC1ub24tcmVhY3Qtc3RhdGljcycgZGlyZWN0bHkgaW4gb3RoZXIgY2h1bmtzXG5cbnZhciBob2lzdE5vblJlYWN0U3RhdGljcyA9IChmdW5jdGlvbiAodGFyZ2V0Q29tcG9uZW50LCBzb3VyY2VDb21wb25lbnQpIHtcbiAgcmV0dXJuIGhvaXN0Tm9uUmVhY3RTdGF0aWNzJDEodGFyZ2V0Q29tcG9uZW50LCBzb3VyY2VDb21wb25lbnQpO1xufSk7XG5cbmV4cG9ydCB7IGhvaXN0Tm9uUmVhY3RTdGF0aWNzIGFzIGRlZmF1bHQgfTtcbiIsInZhciBpc0Jyb3dzZXIgPSB0cnVlO1xuXG5mdW5jdGlvbiBnZXRSZWdpc3RlcmVkU3R5bGVzKHJlZ2lzdGVyZWQsIHJlZ2lzdGVyZWRTdHlsZXMsIGNsYXNzTmFtZXMpIHtcbiAgdmFyIHJhd0NsYXNzTmFtZSA9ICcnO1xuICBjbGFzc05hbWVzLnNwbGl0KCcgJykuZm9yRWFjaChmdW5jdGlvbiAoY2xhc3NOYW1lKSB7XG4gICAgaWYgKHJlZ2lzdGVyZWRbY2xhc3NOYW1lXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZWdpc3RlcmVkU3R5bGVzLnB1c2gocmVnaXN0ZXJlZFtjbGFzc05hbWVdICsgXCI7XCIpO1xuICAgIH0gZWxzZSBpZiAoY2xhc3NOYW1lKSB7XG4gICAgICByYXdDbGFzc05hbWUgKz0gY2xhc3NOYW1lICsgXCIgXCI7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHJhd0NsYXNzTmFtZTtcbn1cbnZhciByZWdpc3RlclN0eWxlcyA9IGZ1bmN0aW9uIHJlZ2lzdGVyU3R5bGVzKGNhY2hlLCBzZXJpYWxpemVkLCBpc1N0cmluZ1RhZykge1xuICB2YXIgY2xhc3NOYW1lID0gY2FjaGUua2V5ICsgXCItXCIgKyBzZXJpYWxpemVkLm5hbWU7XG5cbiAgaWYgKCAvLyB3ZSBvbmx5IG5lZWQgdG8gYWRkIHRoZSBzdHlsZXMgdG8gdGhlIHJlZ2lzdGVyZWQgY2FjaGUgaWYgdGhlXG4gIC8vIGNsYXNzIG5hbWUgY291bGQgYmUgdXNlZCBmdXJ0aGVyIGRvd25cbiAgLy8gdGhlIHRyZWUgYnV0IGlmIGl0J3MgYSBzdHJpbmcgdGFnLCB3ZSBrbm93IGl0IHdvbid0XG4gIC8vIHNvIHdlIGRvbid0IGhhdmUgdG8gYWRkIGl0IHRvIHJlZ2lzdGVyZWQgY2FjaGUuXG4gIC8vIHRoaXMgaW1wcm92ZXMgbWVtb3J5IHVzYWdlIHNpbmNlIHdlIGNhbiBhdm9pZCBzdG9yaW5nIHRoZSB3aG9sZSBzdHlsZSBzdHJpbmdcbiAgKGlzU3RyaW5nVGFnID09PSBmYWxzZSB8fCAvLyB3ZSBuZWVkIHRvIGFsd2F5cyBzdG9yZSBpdCBpZiB3ZSdyZSBpbiBjb21wYXQgbW9kZSBhbmRcbiAgLy8gaW4gbm9kZSBzaW5jZSBlbW90aW9uLXNlcnZlciByZWxpZXMgb24gd2hldGhlciBhIHN0eWxlIGlzIGluXG4gIC8vIHRoZSByZWdpc3RlcmVkIGNhY2hlIHRvIGtub3cgd2hldGhlciBhIHN0eWxlIGlzIGdsb2JhbCBvciBub3RcbiAgLy8gYWxzbywgbm90ZSB0aGF0IHRoaXMgY2hlY2sgd2lsbCBiZSBkZWFkIGNvZGUgZWxpbWluYXRlZCBpbiB0aGUgYnJvd3NlclxuICBpc0Jyb3dzZXIgPT09IGZhbHNlICkgJiYgY2FjaGUucmVnaXN0ZXJlZFtjbGFzc05hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICBjYWNoZS5yZWdpc3RlcmVkW2NsYXNzTmFtZV0gPSBzZXJpYWxpemVkLnN0eWxlcztcbiAgfVxufTtcbnZhciBpbnNlcnRTdHlsZXMgPSBmdW5jdGlvbiBpbnNlcnRTdHlsZXMoY2FjaGUsIHNlcmlhbGl6ZWQsIGlzU3RyaW5nVGFnKSB7XG4gIHJlZ2lzdGVyU3R5bGVzKGNhY2hlLCBzZXJpYWxpemVkLCBpc1N0cmluZ1RhZyk7XG4gIHZhciBjbGFzc05hbWUgPSBjYWNoZS5rZXkgKyBcIi1cIiArIHNlcmlhbGl6ZWQubmFtZTtcblxuICBpZiAoY2FjaGUuaW5zZXJ0ZWRbc2VyaWFsaXplZC5uYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGN1cnJlbnQgPSBzZXJpYWxpemVkO1xuXG4gICAgZG8ge1xuICAgICAgY2FjaGUuaW5zZXJ0KHNlcmlhbGl6ZWQgPT09IGN1cnJlbnQgPyBcIi5cIiArIGNsYXNzTmFtZSA6ICcnLCBjdXJyZW50LCBjYWNoZS5zaGVldCwgdHJ1ZSk7XG5cbiAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm5leHQ7XG4gICAgfSB3aGlsZSAoY3VycmVudCAhPT0gdW5kZWZpbmVkKTtcbiAgfVxufTtcblxuZXhwb3J0IHsgZ2V0UmVnaXN0ZXJlZFN0eWxlcywgaW5zZXJ0U3R5bGVzLCByZWdpc3RlclN0eWxlcyB9O1xuIiwiLyogZXNsaW50LWRpc2FibGUgKi9cbi8vIEluc3BpcmVkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9nYXJ5Y291cnQvbXVybXVyaGFzaC1qc1xuLy8gUG9ydGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FhcHBsZWJ5L3NtaGFzaGVyL2Jsb2IvNjFhMDUzMGYyODI3N2YyZTg1MGJmYzM5NjAwY2U2MWQwMmI1MThkZS9zcmMvTXVybXVySGFzaDIuY3BwI0wzNy1MODZcbmZ1bmN0aW9uIG11cm11cjIoc3RyKSB7XG4gIC8vICdtJyBhbmQgJ3InIGFyZSBtaXhpbmcgY29uc3RhbnRzIGdlbmVyYXRlZCBvZmZsaW5lLlxuICAvLyBUaGV5J3JlIG5vdCByZWFsbHkgJ21hZ2ljJywgdGhleSBqdXN0IGhhcHBlbiB0byB3b3JrIHdlbGwuXG4gIC8vIGNvbnN0IG0gPSAweDViZDFlOTk1O1xuICAvLyBjb25zdCByID0gMjQ7XG4gIC8vIEluaXRpYWxpemUgdGhlIGhhc2hcbiAgdmFyIGggPSAwOyAvLyBNaXggNCBieXRlcyBhdCBhIHRpbWUgaW50byB0aGUgaGFzaFxuXG4gIHZhciBrLFxuICAgICAgaSA9IDAsXG4gICAgICBsZW4gPSBzdHIubGVuZ3RoO1xuXG4gIGZvciAoOyBsZW4gPj0gNDsgKytpLCBsZW4gLT0gNCkge1xuICAgIGsgPSBzdHIuY2hhckNvZGVBdChpKSAmIDB4ZmYgfCAoc3RyLmNoYXJDb2RlQXQoKytpKSAmIDB4ZmYpIDw8IDggfCAoc3RyLmNoYXJDb2RlQXQoKytpKSAmIDB4ZmYpIDw8IDE2IHwgKHN0ci5jaGFyQ29kZUF0KCsraSkgJiAweGZmKSA8PCAyNDtcbiAgICBrID1cbiAgICAvKiBNYXRoLmltdWwoaywgbSk6ICovXG4gICAgKGsgJiAweGZmZmYpICogMHg1YmQxZTk5NSArICgoayA+Pj4gMTYpICogMHhlOTk1IDw8IDE2KTtcbiAgICBrIF49XG4gICAgLyogayA+Pj4gcjogKi9cbiAgICBrID4+PiAyNDtcbiAgICBoID1cbiAgICAvKiBNYXRoLmltdWwoaywgbSk6ICovXG4gICAgKGsgJiAweGZmZmYpICogMHg1YmQxZTk5NSArICgoayA+Pj4gMTYpICogMHhlOTk1IDw8IDE2KSBeXG4gICAgLyogTWF0aC5pbXVsKGgsIG0pOiAqL1xuICAgIChoICYgMHhmZmZmKSAqIDB4NWJkMWU5OTUgKyAoKGggPj4+IDE2KSAqIDB4ZTk5NSA8PCAxNik7XG4gIH0gLy8gSGFuZGxlIHRoZSBsYXN0IGZldyBieXRlcyBvZiB0aGUgaW5wdXQgYXJyYXlcblxuXG4gIHN3aXRjaCAobGVuKSB7XG4gICAgY2FzZSAzOlxuICAgICAgaCBePSAoc3RyLmNoYXJDb2RlQXQoaSArIDIpICYgMHhmZikgPDwgMTY7XG5cbiAgICBjYXNlIDI6XG4gICAgICBoIF49IChzdHIuY2hhckNvZGVBdChpICsgMSkgJiAweGZmKSA8PCA4O1xuXG4gICAgY2FzZSAxOlxuICAgICAgaCBePSBzdHIuY2hhckNvZGVBdChpKSAmIDB4ZmY7XG4gICAgICBoID1cbiAgICAgIC8qIE1hdGguaW11bChoLCBtKTogKi9cbiAgICAgIChoICYgMHhmZmZmKSAqIDB4NWJkMWU5OTUgKyAoKGggPj4+IDE2KSAqIDB4ZTk5NSA8PCAxNik7XG4gIH0gLy8gRG8gYSBmZXcgZmluYWwgbWl4ZXMgb2YgdGhlIGhhc2ggdG8gZW5zdXJlIHRoZSBsYXN0IGZld1xuICAvLyBieXRlcyBhcmUgd2VsbC1pbmNvcnBvcmF0ZWQuXG5cblxuICBoIF49IGggPj4+IDEzO1xuICBoID1cbiAgLyogTWF0aC5pbXVsKGgsIG0pOiAqL1xuICAoaCAmIDB4ZmZmZikgKiAweDViZDFlOTk1ICsgKChoID4+PiAxNikgKiAweGU5OTUgPDwgMTYpO1xuICByZXR1cm4gKChoIF4gaCA+Pj4gMTUpID4+PiAwKS50b1N0cmluZygzNik7XG59XG5cbmV4cG9ydCB7IG11cm11cjIgYXMgZGVmYXVsdCB9O1xuIiwidmFyIHVuaXRsZXNzS2V5cyA9IHtcbiAgYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6IDEsXG4gIGFzcGVjdFJhdGlvOiAxLFxuICBib3JkZXJJbWFnZU91dHNldDogMSxcbiAgYm9yZGVySW1hZ2VTbGljZTogMSxcbiAgYm9yZGVySW1hZ2VXaWR0aDogMSxcbiAgYm94RmxleDogMSxcbiAgYm94RmxleEdyb3VwOiAxLFxuICBib3hPcmRpbmFsR3JvdXA6IDEsXG4gIGNvbHVtbkNvdW50OiAxLFxuICBjb2x1bW5zOiAxLFxuICBmbGV4OiAxLFxuICBmbGV4R3JvdzogMSxcbiAgZmxleFBvc2l0aXZlOiAxLFxuICBmbGV4U2hyaW5rOiAxLFxuICBmbGV4TmVnYXRpdmU6IDEsXG4gIGZsZXhPcmRlcjogMSxcbiAgZ3JpZFJvdzogMSxcbiAgZ3JpZFJvd0VuZDogMSxcbiAgZ3JpZFJvd1NwYW46IDEsXG4gIGdyaWRSb3dTdGFydDogMSxcbiAgZ3JpZENvbHVtbjogMSxcbiAgZ3JpZENvbHVtbkVuZDogMSxcbiAgZ3JpZENvbHVtblNwYW46IDEsXG4gIGdyaWRDb2x1bW5TdGFydDogMSxcbiAgbXNHcmlkUm93OiAxLFxuICBtc0dyaWRSb3dTcGFuOiAxLFxuICBtc0dyaWRDb2x1bW46IDEsXG4gIG1zR3JpZENvbHVtblNwYW46IDEsXG4gIGZvbnRXZWlnaHQ6IDEsXG4gIGxpbmVIZWlnaHQ6IDEsXG4gIG9wYWNpdHk6IDEsXG4gIG9yZGVyOiAxLFxuICBvcnBoYW5zOiAxLFxuICBzY2FsZTogMSxcbiAgdGFiU2l6ZTogMSxcbiAgd2lkb3dzOiAxLFxuICB6SW5kZXg6IDEsXG4gIHpvb206IDEsXG4gIFdlYmtpdExpbmVDbGFtcDogMSxcbiAgLy8gU1ZHLXJlbGF0ZWQgcHJvcGVydGllc1xuICBmaWxsT3BhY2l0eTogMSxcbiAgZmxvb2RPcGFjaXR5OiAxLFxuICBzdG9wT3BhY2l0eTogMSxcbiAgc3Ryb2tlRGFzaGFycmF5OiAxLFxuICBzdHJva2VEYXNob2Zmc2V0OiAxLFxuICBzdHJva2VNaXRlcmxpbWl0OiAxLFxuICBzdHJva2VPcGFjaXR5OiAxLFxuICBzdHJva2VXaWR0aDogMVxufTtcblxuZXhwb3J0IHsgdW5pdGxlc3NLZXlzIGFzIGRlZmF1bHQgfTtcbiIsImltcG9ydCBoYXNoU3RyaW5nIGZyb20gJ0BlbW90aW9uL2hhc2gnO1xuaW1wb3J0IHVuaXRsZXNzIGZyb20gJ0BlbW90aW9uL3VuaXRsZXNzJztcbmltcG9ydCBtZW1vaXplIGZyb20gJ0BlbW90aW9uL21lbW9pemUnO1xuXG52YXIgaXNEZXZlbG9wbWVudCA9IGZhbHNlO1xuXG52YXIgaHlwaGVuYXRlUmVnZXggPSAvW0EtWl18Xm1zL2c7XG52YXIgYW5pbWF0aW9uUmVnZXggPSAvX0VNT18oW15fXSs/KV8oW15dKj8pX0VNT18vZztcblxudmFyIGlzQ3VzdG9tUHJvcGVydHkgPSBmdW5jdGlvbiBpc0N1c3RvbVByb3BlcnR5KHByb3BlcnR5KSB7XG4gIHJldHVybiBwcm9wZXJ0eS5jaGFyQ29kZUF0KDEpID09PSA0NTtcbn07XG5cbnZhciBpc1Byb2Nlc3NhYmxlVmFsdWUgPSBmdW5jdGlvbiBpc1Byb2Nlc3NhYmxlVmFsdWUodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbic7XG59O1xuXG52YXIgcHJvY2Vzc1N0eWxlTmFtZSA9IC8qICNfX1BVUkVfXyAqL21lbW9pemUoZnVuY3Rpb24gKHN0eWxlTmFtZSkge1xuICByZXR1cm4gaXNDdXN0b21Qcm9wZXJ0eShzdHlsZU5hbWUpID8gc3R5bGVOYW1lIDogc3R5bGVOYW1lLnJlcGxhY2UoaHlwaGVuYXRlUmVnZXgsICctJCYnKS50b0xvd2VyQ2FzZSgpO1xufSk7XG5cbnZhciBwcm9jZXNzU3R5bGVWYWx1ZSA9IGZ1bmN0aW9uIHByb2Nlc3NTdHlsZVZhbHVlKGtleSwgdmFsdWUpIHtcbiAgc3dpdGNoIChrZXkpIHtcbiAgICBjYXNlICdhbmltYXRpb24nOlxuICAgIGNhc2UgJ2FuaW1hdGlvbk5hbWUnOlxuICAgICAge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKGFuaW1hdGlvblJlZ2V4LCBmdW5jdGlvbiAobWF0Y2gsIHAxLCBwMikge1xuICAgICAgICAgICAgY3Vyc29yID0ge1xuICAgICAgICAgICAgICBuYW1lOiBwMSxcbiAgICAgICAgICAgICAgc3R5bGVzOiBwMixcbiAgICAgICAgICAgICAgbmV4dDogY3Vyc29yXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHAxO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gIH1cblxuICBpZiAodW5pdGxlc3Nba2V5XSAhPT0gMSAmJiAhaXNDdXN0b21Qcm9wZXJ0eShrZXkpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgdmFsdWUgIT09IDApIHtcbiAgICByZXR1cm4gdmFsdWUgKyAncHgnO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufTtcblxudmFyIG5vQ29tcG9uZW50U2VsZWN0b3JNZXNzYWdlID0gJ0NvbXBvbmVudCBzZWxlY3RvcnMgY2FuIG9ubHkgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoICcgKyAnQGVtb3Rpb24vYmFiZWwtcGx1Z2luLCB0aGUgc3djIEVtb3Rpb24gcGx1Z2luLCBvciBhbm90aGVyIEVtb3Rpb24tYXdhcmUgJyArICdjb21waWxlciB0cmFuc2Zvcm0uJztcblxuZnVuY3Rpb24gaGFuZGxlSW50ZXJwb2xhdGlvbihtZXJnZWRQcm9wcywgcmVnaXN0ZXJlZCwgaW50ZXJwb2xhdGlvbikge1xuICBpZiAoaW50ZXJwb2xhdGlvbiA9PSBudWxsKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgdmFyIGNvbXBvbmVudFNlbGVjdG9yID0gaW50ZXJwb2xhdGlvbjtcblxuICBpZiAoY29tcG9uZW50U2VsZWN0b3IuX19lbW90aW9uX3N0eWxlcyAhPT0gdW5kZWZpbmVkKSB7XG5cbiAgICByZXR1cm4gY29tcG9uZW50U2VsZWN0b3I7XG4gIH1cblxuICBzd2l0Y2ggKHR5cGVvZiBpbnRlcnBvbGF0aW9uKSB7XG4gICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cblxuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICB7XG4gICAgICAgIHZhciBrZXlmcmFtZXMgPSBpbnRlcnBvbGF0aW9uO1xuXG4gICAgICAgIGlmIChrZXlmcmFtZXMuYW5pbSA9PT0gMSkge1xuICAgICAgICAgIGN1cnNvciA9IHtcbiAgICAgICAgICAgIG5hbWU6IGtleWZyYW1lcy5uYW1lLFxuICAgICAgICAgICAgc3R5bGVzOiBrZXlmcmFtZXMuc3R5bGVzLFxuICAgICAgICAgICAgbmV4dDogY3Vyc29yXG4gICAgICAgICAgfTtcbiAgICAgICAgICByZXR1cm4ga2V5ZnJhbWVzLm5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgc2VyaWFsaXplZFN0eWxlcyA9IGludGVycG9sYXRpb247XG5cbiAgICAgICAgaWYgKHNlcmlhbGl6ZWRTdHlsZXMuc3R5bGVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB2YXIgbmV4dCA9IHNlcmlhbGl6ZWRTdHlsZXMubmV4dDtcblxuICAgICAgICAgIGlmIChuZXh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIG5vdCB0aGUgbW9zdCBlZmZpY2llbnQgdGhpbmcgZXZlciBidXQgdGhpcyBpcyBhIHByZXR0eSByYXJlIGNhc2VcbiAgICAgICAgICAgIC8vIGFuZCB0aGVyZSB3aWxsIGJlIHZlcnkgZmV3IGl0ZXJhdGlvbnMgb2YgdGhpcyBnZW5lcmFsbHlcbiAgICAgICAgICAgIHdoaWxlIChuZXh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgY3Vyc29yID0ge1xuICAgICAgICAgICAgICAgIG5hbWU6IG5leHQubmFtZSxcbiAgICAgICAgICAgICAgICBzdHlsZXM6IG5leHQuc3R5bGVzLFxuICAgICAgICAgICAgICAgIG5leHQ6IGN1cnNvclxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICBuZXh0ID0gbmV4dC5uZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhciBzdHlsZXMgPSBzZXJpYWxpemVkU3R5bGVzLnN0eWxlcyArIFwiO1wiO1xuICAgICAgICAgIHJldHVybiBzdHlsZXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY3JlYXRlU3RyaW5nRnJvbU9iamVjdChtZXJnZWRQcm9wcywgcmVnaXN0ZXJlZCwgaW50ZXJwb2xhdGlvbik7XG4gICAgICB9XG5cbiAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgICB7XG4gICAgICAgIGlmIChtZXJnZWRQcm9wcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdmFyIHByZXZpb3VzQ3Vyc29yID0gY3Vyc29yO1xuICAgICAgICAgIHZhciByZXN1bHQgPSBpbnRlcnBvbGF0aW9uKG1lcmdlZFByb3BzKTtcbiAgICAgICAgICBjdXJzb3IgPSBwcmV2aW91c0N1cnNvcjtcbiAgICAgICAgICByZXR1cm4gaGFuZGxlSW50ZXJwb2xhdGlvbihtZXJnZWRQcm9wcywgcmVnaXN0ZXJlZCwgcmVzdWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICB9IC8vIGZpbmFsaXplIHN0cmluZyB2YWx1ZXMgKHJlZ3VsYXIgc3RyaW5ncyBhbmQgZnVuY3Rpb25zIGludGVycG9sYXRlZCBpbnRvIGNzcyBjYWxscylcblxuXG4gIHZhciBhc1N0cmluZyA9IGludGVycG9sYXRpb247XG5cbiAgaWYgKHJlZ2lzdGVyZWQgPT0gbnVsbCkge1xuICAgIHJldHVybiBhc1N0cmluZztcbiAgfVxuXG4gIHZhciBjYWNoZWQgPSByZWdpc3RlcmVkW2FzU3RyaW5nXTtcbiAgcmV0dXJuIGNhY2hlZCAhPT0gdW5kZWZpbmVkID8gY2FjaGVkIDogYXNTdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVN0cmluZ0Zyb21PYmplY3QobWVyZ2VkUHJvcHMsIHJlZ2lzdGVyZWQsIG9iaikge1xuICB2YXIgc3RyaW5nID0gJyc7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqLmxlbmd0aDsgaSsrKSB7XG4gICAgICBzdHJpbmcgKz0gaGFuZGxlSW50ZXJwb2xhdGlvbihtZXJnZWRQcm9wcywgcmVnaXN0ZXJlZCwgb2JqW2ldKSArIFwiO1wiO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgICB2YXIgdmFsdWUgPSBvYmpba2V5XTtcblxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdmFyIGFzU3RyaW5nID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHJlZ2lzdGVyZWQgIT0gbnVsbCAmJiByZWdpc3RlcmVkW2FzU3RyaW5nXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc3RyaW5nICs9IGtleSArIFwie1wiICsgcmVnaXN0ZXJlZFthc1N0cmluZ10gKyBcIn1cIjtcbiAgICAgICAgfSBlbHNlIGlmIChpc1Byb2Nlc3NhYmxlVmFsdWUoYXNTdHJpbmcpKSB7XG4gICAgICAgICAgc3RyaW5nICs9IHByb2Nlc3NTdHlsZU5hbWUoa2V5KSArIFwiOlwiICsgcHJvY2Vzc1N0eWxlVmFsdWUoa2V5LCBhc1N0cmluZykgKyBcIjtcIjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ05PX0NPTVBPTkVOVF9TRUxFQ1RPUicgJiYgaXNEZXZlbG9wbWVudCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihub0NvbXBvbmVudFNlbGVjdG9yTWVzc2FnZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdHlwZW9mIHZhbHVlWzBdID09PSAnc3RyaW5nJyAmJiAocmVnaXN0ZXJlZCA9PSBudWxsIHx8IHJlZ2lzdGVyZWRbdmFsdWVbMF1dID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IHZhbHVlLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgaWYgKGlzUHJvY2Vzc2FibGVWYWx1ZSh2YWx1ZVtfaV0pKSB7XG4gICAgICAgICAgICAgIHN0cmluZyArPSBwcm9jZXNzU3R5bGVOYW1lKGtleSkgKyBcIjpcIiArIHByb2Nlc3NTdHlsZVZhbHVlKGtleSwgdmFsdWVbX2ldKSArIFwiO1wiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgaW50ZXJwb2xhdGVkID0gaGFuZGxlSW50ZXJwb2xhdGlvbihtZXJnZWRQcm9wcywgcmVnaXN0ZXJlZCwgdmFsdWUpO1xuXG4gICAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2FuaW1hdGlvbic6XG4gICAgICAgICAgICBjYXNlICdhbmltYXRpb25OYW1lJzpcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHN0cmluZyArPSBwcm9jZXNzU3R5bGVOYW1lKGtleSkgKyBcIjpcIiArIGludGVycG9sYXRlZCArIFwiO1wiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIHN0cmluZyArPSBrZXkgKyBcIntcIiArIGludGVycG9sYXRlZCArIFwifVwiO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0cmluZztcbn1cblxudmFyIGxhYmVsUGF0dGVybiA9IC9sYWJlbDpcXHMqKFteXFxzO3tdKylcXHMqKDt8JCkvZzsgLy8gdGhpcyBpcyB0aGUgY3Vyc29yIGZvciBrZXlmcmFtZXNcbi8vIGtleWZyYW1lcyBhcmUgc3RvcmVkIG9uIHRoZSBTZXJpYWxpemVkU3R5bGVzIG9iamVjdCBhcyBhIGxpbmtlZCBsaXN0XG5cbnZhciBjdXJzb3I7XG5mdW5jdGlvbiBzZXJpYWxpemVTdHlsZXMoYXJncywgcmVnaXN0ZXJlZCwgbWVyZ2VkUHJvcHMpIHtcbiAgaWYgKGFyZ3MubGVuZ3RoID09PSAxICYmIHR5cGVvZiBhcmdzWzBdID09PSAnb2JqZWN0JyAmJiBhcmdzWzBdICE9PSBudWxsICYmIGFyZ3NbMF0uc3R5bGVzICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gYXJnc1swXTtcbiAgfVxuXG4gIHZhciBzdHJpbmdNb2RlID0gdHJ1ZTtcbiAgdmFyIHN0eWxlcyA9ICcnO1xuICBjdXJzb3IgPSB1bmRlZmluZWQ7XG4gIHZhciBzdHJpbmdzID0gYXJnc1swXTtcblxuICBpZiAoc3RyaW5ncyA9PSBudWxsIHx8IHN0cmluZ3MucmF3ID09PSB1bmRlZmluZWQpIHtcbiAgICBzdHJpbmdNb2RlID0gZmFsc2U7XG4gICAgc3R5bGVzICs9IGhhbmRsZUludGVycG9sYXRpb24obWVyZ2VkUHJvcHMsIHJlZ2lzdGVyZWQsIHN0cmluZ3MpO1xuICB9IGVsc2Uge1xuICAgIHZhciBhc1RlbXBsYXRlU3RyaW5nc0FyciA9IHN0cmluZ3M7XG5cbiAgICBzdHlsZXMgKz0gYXNUZW1wbGF0ZVN0cmluZ3NBcnJbMF07XG4gIH0gLy8gd2Ugc3RhcnQgYXQgMSBzaW5jZSB3ZSd2ZSBhbHJlYWR5IGhhbmRsZWQgdGhlIGZpcnN0IGFyZ1xuXG5cbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgc3R5bGVzICs9IGhhbmRsZUludGVycG9sYXRpb24obWVyZ2VkUHJvcHMsIHJlZ2lzdGVyZWQsIGFyZ3NbaV0pO1xuXG4gICAgaWYgKHN0cmluZ01vZGUpIHtcbiAgICAgIHZhciB0ZW1wbGF0ZVN0cmluZ3NBcnIgPSBzdHJpbmdzO1xuXG4gICAgICBzdHlsZXMgKz0gdGVtcGxhdGVTdHJpbmdzQXJyW2ldO1xuICAgIH1cbiAgfSAvLyB1c2luZyBhIGdsb2JhbCByZWdleCB3aXRoIC5leGVjIGlzIHN0YXRlZnVsIHNvIGxhc3RJbmRleCBoYXMgdG8gYmUgcmVzZXQgZWFjaCB0aW1lXG5cblxuICBsYWJlbFBhdHRlcm4ubGFzdEluZGV4ID0gMDtcbiAgdmFyIGlkZW50aWZpZXJOYW1lID0gJyc7XG4gIHZhciBtYXRjaDsgLy8gaHR0cHM6Ly9lc2JlbmNoLmNvbS9iZW5jaC81YjgwOWMyY2YyOTQ5ODAwYTBmNjFmYjVcblxuICB3aGlsZSAoKG1hdGNoID0gbGFiZWxQYXR0ZXJuLmV4ZWMoc3R5bGVzKSkgIT09IG51bGwpIHtcbiAgICBpZGVudGlmaWVyTmFtZSArPSAnLScgKyBtYXRjaFsxXTtcbiAgfVxuXG4gIHZhciBuYW1lID0gaGFzaFN0cmluZyhzdHlsZXMpICsgaWRlbnRpZmllck5hbWU7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBuYW1lLFxuICAgIHN0eWxlczogc3R5bGVzLFxuICAgIG5leHQ6IGN1cnNvclxuICB9O1xufVxuXG5leHBvcnQgeyBzZXJpYWxpemVTdHlsZXMgfTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcblxudmFyIHN5bmNGYWxsYmFjayA9IGZ1bmN0aW9uIHN5bmNGYWxsYmFjayhjcmVhdGUpIHtcbiAgcmV0dXJuIGNyZWF0ZSgpO1xufTtcblxudmFyIHVzZUluc2VydGlvbkVmZmVjdCA9IFJlYWN0Wyd1c2VJbnNlcnRpb24nICsgJ0VmZmVjdCddID8gUmVhY3RbJ3VzZUluc2VydGlvbicgKyAnRWZmZWN0J10gOiBmYWxzZTtcbnZhciB1c2VJbnNlcnRpb25FZmZlY3RBbHdheXNXaXRoU3luY0ZhbGxiYWNrID0gdXNlSW5zZXJ0aW9uRWZmZWN0IHx8IHN5bmNGYWxsYmFjaztcbnZhciB1c2VJbnNlcnRpb25FZmZlY3RXaXRoTGF5b3V0RmFsbGJhY2sgPSB1c2VJbnNlcnRpb25FZmZlY3QgfHwgUmVhY3QudXNlTGF5b3V0RWZmZWN0O1xuXG5leHBvcnQgeyB1c2VJbnNlcnRpb25FZmZlY3RBbHdheXNXaXRoU3luY0ZhbGxiYWNrLCB1c2VJbnNlcnRpb25FZmZlY3RXaXRoTGF5b3V0RmFsbGJhY2sgfTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRleHQsIGZvcndhcmRSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY3JlYXRlQ2FjaGUgZnJvbSAnQGVtb3Rpb24vY2FjaGUnO1xuaW1wb3J0IF9leHRlbmRzIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2V4dGVuZHMnO1xuaW1wb3J0IHdlYWtNZW1vaXplIGZyb20gJ0BlbW90aW9uL3dlYWstbWVtb2l6ZSc7XG5pbXBvcnQgaG9pc3ROb25SZWFjdFN0YXRpY3MgZnJvbSAnLi4vX2lzb2xhdGVkLWhucnMvZGlzdC9lbW90aW9uLXJlYWN0LV9pc29sYXRlZC1obnJzLmJyb3dzZXIuZXNtLmpzJztcbmltcG9ydCB7IGdldFJlZ2lzdGVyZWRTdHlsZXMsIHJlZ2lzdGVyU3R5bGVzLCBpbnNlcnRTdHlsZXMgfSBmcm9tICdAZW1vdGlvbi91dGlscyc7XG5pbXBvcnQgeyBzZXJpYWxpemVTdHlsZXMgfSBmcm9tICdAZW1vdGlvbi9zZXJpYWxpemUnO1xuaW1wb3J0IHsgdXNlSW5zZXJ0aW9uRWZmZWN0QWx3YXlzV2l0aFN5bmNGYWxsYmFjayB9IGZyb20gJ0BlbW90aW9uL3VzZS1pbnNlcnRpb24tZWZmZWN0LXdpdGgtZmFsbGJhY2tzJztcblxudmFyIGlzRGV2ZWxvcG1lbnQgPSBmYWxzZTtcblxudmFyIEVtb3Rpb25DYWNoZUNvbnRleHQgPSAvKiAjX19QVVJFX18gKi9SZWFjdC5jcmVhdGVDb250ZXh0KCAvLyB3ZSdyZSBkb2luZyB0aGlzIHRvIGF2b2lkIHByZWNvbnN0cnVjdCdzIGRlYWQgY29kZSBlbGltaW5hdGlvbiBpbiB0aGlzIG9uZSBjYXNlXG4vLyBiZWNhdXNlIHRoaXMgbW9kdWxlIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgdGhlIGJyb3dzZXIgYW5kIG5vZGVcbi8vIGJ1dCBpdCdzIGFsc28gcmVxdWlyZWQgaW4gcmVhY3QgbmF0aXZlIGFuZCBzaW1pbGFyIGVudmlyb25tZW50cyBzb21ldGltZXNcbi8vIGFuZCB3ZSBjb3VsZCBoYXZlIGEgc3BlY2lhbCBidWlsZCBqdXN0IGZvciB0aGF0XG4vLyBidXQgdGhpcyBpcyBtdWNoIGVhc2llciBhbmQgdGhlIG5hdGl2ZSBwYWNrYWdlc1xuLy8gbWlnaHQgdXNlIGEgZGlmZmVyZW50IHRoZW1lIGNvbnRleHQgaW4gdGhlIGZ1dHVyZSBhbnl3YXlcbnR5cGVvZiBIVE1MRWxlbWVudCAhPT0gJ3VuZGVmaW5lZCcgPyAvKiAjX19QVVJFX18gKi9jcmVhdGVDYWNoZSh7XG4gIGtleTogJ2Nzcydcbn0pIDogbnVsbCk7XG5cbnZhciBDYWNoZVByb3ZpZGVyID0gRW1vdGlvbkNhY2hlQ29udGV4dC5Qcm92aWRlcjtcbnZhciBfX3Vuc2FmZV91c2VFbW90aW9uQ2FjaGUgPSBmdW5jdGlvbiB1c2VFbW90aW9uQ2FjaGUoKSB7XG4gIHJldHVybiB1c2VDb250ZXh0KEVtb3Rpb25DYWNoZUNvbnRleHQpO1xufTtcblxudmFyIHdpdGhFbW90aW9uQ2FjaGUgPSBmdW5jdGlvbiB3aXRoRW1vdGlvbkNhY2hlKGZ1bmMpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9mb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7XG4gICAgLy8gdGhlIGNhY2hlIHdpbGwgbmV2ZXIgYmUgbnVsbCBpbiB0aGUgYnJvd3NlclxuICAgIHZhciBjYWNoZSA9IHVzZUNvbnRleHQoRW1vdGlvbkNhY2hlQ29udGV4dCk7XG4gICAgcmV0dXJuIGZ1bmMocHJvcHMsIGNhY2hlLCByZWYpO1xuICB9KTtcbn07XG5cbnZhciBUaGVtZUNvbnRleHQgPSAvKiAjX19QVVJFX18gKi9SZWFjdC5jcmVhdGVDb250ZXh0KHt9KTtcblxudmFyIHVzZVRoZW1lID0gZnVuY3Rpb24gdXNlVGhlbWUoKSB7XG4gIHJldHVybiBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XG59O1xuXG52YXIgZ2V0VGhlbWUgPSBmdW5jdGlvbiBnZXRUaGVtZShvdXRlclRoZW1lLCB0aGVtZSkge1xuICBpZiAodHlwZW9mIHRoZW1lID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdmFyIG1lcmdlZFRoZW1lID0gdGhlbWUob3V0ZXJUaGVtZSk7XG5cbiAgICByZXR1cm4gbWVyZ2VkVGhlbWU7XG4gIH1cblxuICByZXR1cm4gX2V4dGVuZHMoe30sIG91dGVyVGhlbWUsIHRoZW1lKTtcbn07XG5cbnZhciBjcmVhdGVDYWNoZVdpdGhUaGVtZSA9IC8qICNfX1BVUkVfXyAqL3dlYWtNZW1vaXplKGZ1bmN0aW9uIChvdXRlclRoZW1lKSB7XG4gIHJldHVybiB3ZWFrTWVtb2l6ZShmdW5jdGlvbiAodGhlbWUpIHtcbiAgICByZXR1cm4gZ2V0VGhlbWUob3V0ZXJUaGVtZSwgdGhlbWUpO1xuICB9KTtcbn0pO1xudmFyIFRoZW1lUHJvdmlkZXIgPSBmdW5jdGlvbiBUaGVtZVByb3ZpZGVyKHByb3BzKSB7XG4gIHZhciB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcblxuICBpZiAocHJvcHMudGhlbWUgIT09IHRoZW1lKSB7XG4gICAgdGhlbWUgPSBjcmVhdGVDYWNoZVdpdGhUaGVtZSh0aGVtZSkocHJvcHMudGhlbWUpO1xuICB9XG5cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFRoZW1lQ29udGV4dC5Qcm92aWRlciwge1xuICAgIHZhbHVlOiB0aGVtZVxuICB9LCBwcm9wcy5jaGlsZHJlbik7XG59O1xuZnVuY3Rpb24gd2l0aFRoZW1lKENvbXBvbmVudCkge1xuICB2YXIgY29tcG9uZW50TmFtZSA9IENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnQ29tcG9uZW50JztcbiAgdmFyIFdpdGhUaGVtZSA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIHJlbmRlcihwcm9wcywgcmVmKSB7XG4gICAgdmFyIHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChDb21wb25lbnQsIF9leHRlbmRzKHtcbiAgICAgIHRoZW1lOiB0aGVtZSxcbiAgICAgIHJlZjogcmVmXG4gICAgfSwgcHJvcHMpKTtcbiAgfSk7XG4gIFdpdGhUaGVtZS5kaXNwbGF5TmFtZSA9IFwiV2l0aFRoZW1lKFwiICsgY29tcG9uZW50TmFtZSArIFwiKVwiO1xuICByZXR1cm4gaG9pc3ROb25SZWFjdFN0YXRpY3MoV2l0aFRoZW1lLCBDb21wb25lbnQpO1xufVxuXG52YXIgaGFzT3duID0ge30uaGFzT3duUHJvcGVydHk7XG5cbnZhciB0eXBlUHJvcE5hbWUgPSAnX19FTU9USU9OX1RZUEVfUExFQVNFX0RPX05PVF9VU0VfXyc7XG52YXIgY3JlYXRlRW1vdGlvblByb3BzID0gZnVuY3Rpb24gY3JlYXRlRW1vdGlvblByb3BzKHR5cGUsIHByb3BzKSB7XG5cbiAgdmFyIG5ld1Byb3BzID0ge307XG5cbiAgZm9yICh2YXIgX2tleSBpbiBwcm9wcykge1xuICAgIGlmIChoYXNPd24uY2FsbChwcm9wcywgX2tleSkpIHtcbiAgICAgIG5ld1Byb3BzW19rZXldID0gcHJvcHNbX2tleV07XG4gICAgfVxuICB9XG5cbiAgbmV3UHJvcHNbdHlwZVByb3BOYW1lXSA9IHR5cGU7IC8vIFJ1bnRpbWUgbGFiZWxpbmcgaXMgYW4gb3B0LWluIGZlYXR1cmUgYmVjYXVzZTpcblxuICByZXR1cm4gbmV3UHJvcHM7XG59O1xuXG52YXIgSW5zZXJ0aW9uID0gZnVuY3Rpb24gSW5zZXJ0aW9uKF9yZWYpIHtcbiAgdmFyIGNhY2hlID0gX3JlZi5jYWNoZSxcbiAgICAgIHNlcmlhbGl6ZWQgPSBfcmVmLnNlcmlhbGl6ZWQsXG4gICAgICBpc1N0cmluZ1RhZyA9IF9yZWYuaXNTdHJpbmdUYWc7XG4gIHJlZ2lzdGVyU3R5bGVzKGNhY2hlLCBzZXJpYWxpemVkLCBpc1N0cmluZ1RhZyk7XG4gIHVzZUluc2VydGlvbkVmZmVjdEFsd2F5c1dpdGhTeW5jRmFsbGJhY2soZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBpbnNlcnRTdHlsZXMoY2FjaGUsIHNlcmlhbGl6ZWQsIGlzU3RyaW5nVGFnKTtcbiAgfSk7XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG52YXIgRW1vdGlvbiA9IC8qICNfX1BVUkVfXyAqL3dpdGhFbW90aW9uQ2FjaGUoZnVuY3Rpb24gKHByb3BzLCBjYWNoZSwgcmVmKSB7XG4gIHZhciBjc3NQcm9wID0gcHJvcHMuY3NzOyAvLyBzbyB0aGF0IHVzaW5nIGBjc3NgIGZyb20gYGVtb3Rpb25gIGFuZCBwYXNzaW5nIHRoZSByZXN1bHQgdG8gdGhlIGNzcyBwcm9wIHdvcmtzXG4gIC8vIG5vdCBwYXNzaW5nIHRoZSByZWdpc3RlcmVkIGNhY2hlIHRvIHNlcmlhbGl6ZVN0eWxlcyBiZWNhdXNlIGl0IHdvdWxkXG4gIC8vIG1ha2UgY2VydGFpbiBiYWJlbCBvcHRpbWlzYXRpb25zIG5vdCBwb3NzaWJsZVxuXG4gIGlmICh0eXBlb2YgY3NzUHJvcCA9PT0gJ3N0cmluZycgJiYgY2FjaGUucmVnaXN0ZXJlZFtjc3NQcm9wXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY3NzUHJvcCA9IGNhY2hlLnJlZ2lzdGVyZWRbY3NzUHJvcF07XG4gIH1cblxuICB2YXIgV3JhcHBlZENvbXBvbmVudCA9IHByb3BzW3R5cGVQcm9wTmFtZV07XG4gIHZhciByZWdpc3RlcmVkU3R5bGVzID0gW2Nzc1Byb3BdO1xuICB2YXIgY2xhc3NOYW1lID0gJyc7XG5cbiAgaWYgKHR5cGVvZiBwcm9wcy5jbGFzc05hbWUgPT09ICdzdHJpbmcnKSB7XG4gICAgY2xhc3NOYW1lID0gZ2V0UmVnaXN0ZXJlZFN0eWxlcyhjYWNoZS5yZWdpc3RlcmVkLCByZWdpc3RlcmVkU3R5bGVzLCBwcm9wcy5jbGFzc05hbWUpO1xuICB9IGVsc2UgaWYgKHByb3BzLmNsYXNzTmFtZSAhPSBudWxsKSB7XG4gICAgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lICsgXCIgXCI7XG4gIH1cblxuICB2YXIgc2VyaWFsaXplZCA9IHNlcmlhbGl6ZVN0eWxlcyhyZWdpc3RlcmVkU3R5bGVzLCB1bmRlZmluZWQsIFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KSk7XG5cbiAgY2xhc3NOYW1lICs9IGNhY2hlLmtleSArIFwiLVwiICsgc2VyaWFsaXplZC5uYW1lO1xuICB2YXIgbmV3UHJvcHMgPSB7fTtcblxuICBmb3IgKHZhciBfa2V5MiBpbiBwcm9wcykge1xuICAgIGlmIChoYXNPd24uY2FsbChwcm9wcywgX2tleTIpICYmIF9rZXkyICE9PSAnY3NzJyAmJiBfa2V5MiAhPT0gdHlwZVByb3BOYW1lICYmICghaXNEZXZlbG9wbWVudCApKSB7XG4gICAgICBuZXdQcm9wc1tfa2V5Ml0gPSBwcm9wc1tfa2V5Ml07XG4gICAgfVxuICB9XG5cbiAgbmV3UHJvcHMuY2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuXG4gIGlmIChyZWYpIHtcbiAgICBuZXdQcm9wcy5yZWYgPSByZWY7XG4gIH1cblxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEluc2VydGlvbiwge1xuICAgIGNhY2hlOiBjYWNoZSxcbiAgICBzZXJpYWxpemVkOiBzZXJpYWxpemVkLFxuICAgIGlzU3RyaW5nVGFnOiB0eXBlb2YgV3JhcHBlZENvbXBvbmVudCA9PT0gJ3N0cmluZydcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFdyYXBwZWRDb21wb25lbnQsIG5ld1Byb3BzKSk7XG59KTtcblxudmFyIEVtb3Rpb24kMSA9IEVtb3Rpb247XG5cbmV4cG9ydCB7IENhY2hlUHJvdmlkZXIgYXMgQywgRW1vdGlvbiQxIGFzIEUsIFRoZW1lQ29udGV4dCBhcyBULCBfX3Vuc2FmZV91c2VFbW90aW9uQ2FjaGUgYXMgXywgVGhlbWVQcm92aWRlciBhcyBhLCB3aXRoVGhlbWUgYXMgYiwgY3JlYXRlRW1vdGlvblByb3BzIGFzIGMsIGhhc093biBhcyBoLCBpc0RldmVsb3BtZW50IGFzIGksIHVzZVRoZW1lIGFzIHUsIHdpdGhFbW90aW9uQ2FjaGUgYXMgdyB9O1xuIiwiaW1wb3J0IHsgaCBhcyBoYXNPd24sIEUgYXMgRW1vdGlvbiwgYyBhcyBjcmVhdGVFbW90aW9uUHJvcHMsIHcgYXMgd2l0aEVtb3Rpb25DYWNoZSwgVCBhcyBUaGVtZUNvbnRleHQsIGkgYXMgaXNEZXZlbG9wbWVudCB9IGZyb20gJy4vZW1vdGlvbi1lbGVtZW50LWYwZGU5NjhlLmJyb3dzZXIuZXNtLmpzJztcbmV4cG9ydCB7IEMgYXMgQ2FjaGVQcm92aWRlciwgVCBhcyBUaGVtZUNvbnRleHQsIGEgYXMgVGhlbWVQcm92aWRlciwgXyBhcyBfX3Vuc2FmZV91c2VFbW90aW9uQ2FjaGUsIHUgYXMgdXNlVGhlbWUsIHcgYXMgd2l0aEVtb3Rpb25DYWNoZSwgYiBhcyB3aXRoVGhlbWUgfSBmcm9tICcuL2Vtb3Rpb24tZWxlbWVudC1mMGRlOTY4ZS5icm93c2VyLmVzbS5qcyc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBpbnNlcnRTdHlsZXMsIHJlZ2lzdGVyU3R5bGVzLCBnZXRSZWdpc3RlcmVkU3R5bGVzIH0gZnJvbSAnQGVtb3Rpb24vdXRpbHMnO1xuaW1wb3J0IHsgdXNlSW5zZXJ0aW9uRWZmZWN0V2l0aExheW91dEZhbGxiYWNrLCB1c2VJbnNlcnRpb25FZmZlY3RBbHdheXNXaXRoU3luY0ZhbGxiYWNrIH0gZnJvbSAnQGVtb3Rpb24vdXNlLWluc2VydGlvbi1lZmZlY3Qtd2l0aC1mYWxsYmFja3MnO1xuaW1wb3J0IHsgc2VyaWFsaXplU3R5bGVzIH0gZnJvbSAnQGVtb3Rpb24vc2VyaWFsaXplJztcbmltcG9ydCAnQGVtb3Rpb24vY2FjaGUnO1xuaW1wb3J0ICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2V4dGVuZHMnO1xuaW1wb3J0ICdAZW1vdGlvbi93ZWFrLW1lbW9pemUnO1xuaW1wb3J0ICcuLi9faXNvbGF0ZWQtaG5ycy9kaXN0L2Vtb3Rpb24tcmVhY3QtX2lzb2xhdGVkLWhucnMuYnJvd3Nlci5lc20uanMnO1xuaW1wb3J0ICdob2lzdC1ub24tcmVhY3Qtc3RhdGljcyc7XG5cbnZhciBqc3ggPSBmdW5jdGlvbiBqc3godHlwZSwgcHJvcHMpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1yZXN0LXBhcmFtc1xuICB2YXIgYXJncyA9IGFyZ3VtZW50cztcblxuICBpZiAocHJvcHMgPT0gbnVsbCB8fCAhaGFzT3duLmNhbGwocHJvcHMsICdjc3MnKSkge1xuICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50LmFwcGx5KHVuZGVmaW5lZCwgYXJncyk7XG4gIH1cblxuICB2YXIgYXJnc0xlbmd0aCA9IGFyZ3MubGVuZ3RoO1xuICB2YXIgY3JlYXRlRWxlbWVudEFyZ0FycmF5ID0gbmV3IEFycmF5KGFyZ3NMZW5ndGgpO1xuICBjcmVhdGVFbGVtZW50QXJnQXJyYXlbMF0gPSBFbW90aW9uO1xuICBjcmVhdGVFbGVtZW50QXJnQXJyYXlbMV0gPSBjcmVhdGVFbW90aW9uUHJvcHModHlwZSwgcHJvcHMpO1xuXG4gIGZvciAodmFyIGkgPSAyOyBpIDwgYXJnc0xlbmd0aDsgaSsrKSB7XG4gICAgY3JlYXRlRWxlbWVudEFyZ0FycmF5W2ldID0gYXJnc1tpXTtcbiAgfVxuXG4gIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50LmFwcGx5KG51bGwsIGNyZWF0ZUVsZW1lbnRBcmdBcnJheSk7XG59O1xuXG4oZnVuY3Rpb24gKF9qc3gpIHtcbiAgdmFyIEpTWDtcblxuICAoZnVuY3Rpb24gKF9KU1gpIHt9KShKU1ggfHwgKEpTWCA9IF9qc3guSlNYIHx8IChfanN4LkpTWCA9IHt9KSkpO1xufSkoanN4IHx8IChqc3ggPSB7fSkpO1xuXG4vLyBpbml0aWFsIHJlbmRlciBmcm9tIGJyb3dzZXIsIGluc2VydEJlZm9yZSBjb250ZXh0LnNoZWV0LnRhZ3NbMF0gb3IgaWYgYSBzdHlsZSBoYXNuJ3QgYmVlbiBpbnNlcnRlZCB0aGVyZSB5ZXQsIGFwcGVuZENoaWxkXG4vLyBpbml0aWFsIGNsaWVudC1zaWRlIHJlbmRlciBmcm9tIFNTUiwgdXNlIHBsYWNlIG9mIGh5ZHJhdGluZyB0YWdcblxudmFyIEdsb2JhbCA9IC8qICNfX1BVUkVfXyAqL3dpdGhFbW90aW9uQ2FjaGUoZnVuY3Rpb24gKHByb3BzLCBjYWNoZSkge1xuXG4gIHZhciBzdHlsZXMgPSBwcm9wcy5zdHlsZXM7XG4gIHZhciBzZXJpYWxpemVkID0gc2VyaWFsaXplU3R5bGVzKFtzdHlsZXNdLCB1bmRlZmluZWQsIFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KSk7XG4gIC8vIGJ1dCBpdCBpcyBiYXNlZCBvbiBhIGNvbnN0YW50IHRoYXQgd2lsbCBuZXZlciBjaGFuZ2UgYXQgcnVudGltZVxuICAvLyBpdCdzIGVmZmVjdGl2ZWx5IGxpa2UgaGF2aW5nIHR3byBpbXBsZW1lbnRhdGlvbnMgYW5kIHN3aXRjaGluZyB0aGVtIG91dFxuICAvLyBzbyBpdCdzIG5vdCBhY3R1YWxseSBicmVha2luZyBhbnl0aGluZ1xuXG5cbiAgdmFyIHNoZWV0UmVmID0gUmVhY3QudXNlUmVmKCk7XG4gIHVzZUluc2VydGlvbkVmZmVjdFdpdGhMYXlvdXRGYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGtleSA9IGNhY2hlLmtleSArIFwiLWdsb2JhbFwiOyAvLyB1c2UgY2FzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vZW1vdGlvbi1qcy9lbW90aW9uL2lzc3Vlcy8yNjc1XG5cbiAgICB2YXIgc2hlZXQgPSBuZXcgY2FjaGUuc2hlZXQuY29uc3RydWN0b3Ioe1xuICAgICAga2V5OiBrZXksXG4gICAgICBub25jZTogY2FjaGUuc2hlZXQubm9uY2UsXG4gICAgICBjb250YWluZXI6IGNhY2hlLnNoZWV0LmNvbnRhaW5lcixcbiAgICAgIHNwZWVkeTogY2FjaGUuc2hlZXQuaXNTcGVlZHlcbiAgICB9KTtcbiAgICB2YXIgcmVoeWRyYXRpbmcgPSBmYWxzZTtcbiAgICB2YXIgbm9kZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJzdHlsZVtkYXRhLWVtb3Rpb249XFxcIlwiICsga2V5ICsgXCIgXCIgKyBzZXJpYWxpemVkLm5hbWUgKyBcIlxcXCJdXCIpO1xuXG4gICAgaWYgKGNhY2hlLnNoZWV0LnRhZ3MubGVuZ3RoKSB7XG4gICAgICBzaGVldC5iZWZvcmUgPSBjYWNoZS5zaGVldC50YWdzWzBdO1xuICAgIH1cblxuICAgIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgICByZWh5ZHJhdGluZyA9IHRydWU7IC8vIGNsZWFyIHRoZSBoYXNoIHNvIHRoaXMgbm9kZSB3b24ndCBiZSByZWNvZ25pemFibGUgYXMgcmVoeWRyYXRhYmxlIGJ5IG90aGVyIDxHbG9iYWwvPnNcblxuICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtZW1vdGlvbicsIGtleSk7XG4gICAgICBzaGVldC5oeWRyYXRlKFtub2RlXSk7XG4gICAgfVxuXG4gICAgc2hlZXRSZWYuY3VycmVudCA9IFtzaGVldCwgcmVoeWRyYXRpbmddO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICBzaGVldC5mbHVzaCgpO1xuICAgIH07XG4gIH0sIFtjYWNoZV0pO1xuICB1c2VJbnNlcnRpb25FZmZlY3RXaXRoTGF5b3V0RmFsbGJhY2soZnVuY3Rpb24gKCkge1xuICAgIHZhciBzaGVldFJlZkN1cnJlbnQgPSBzaGVldFJlZi5jdXJyZW50O1xuICAgIHZhciBzaGVldCA9IHNoZWV0UmVmQ3VycmVudFswXSxcbiAgICAgICAgcmVoeWRyYXRpbmcgPSBzaGVldFJlZkN1cnJlbnRbMV07XG5cbiAgICBpZiAocmVoeWRyYXRpbmcpIHtcbiAgICAgIHNoZWV0UmVmQ3VycmVudFsxXSA9IGZhbHNlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChzZXJpYWxpemVkLm5leHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gaW5zZXJ0IGtleWZyYW1lc1xuICAgICAgaW5zZXJ0U3R5bGVzKGNhY2hlLCBzZXJpYWxpemVkLm5leHQsIHRydWUpO1xuICAgIH1cblxuICAgIGlmIChzaGVldC50YWdzLmxlbmd0aCkge1xuICAgICAgLy8gaWYgdGhpcyBkb2Vzbid0IGV4aXN0IHRoZW4gaXQgd2lsbCBiZSBudWxsIHNvIHRoZSBzdHlsZSBlbGVtZW50IHdpbGwgYmUgYXBwZW5kZWRcbiAgICAgIHZhciBlbGVtZW50ID0gc2hlZXQudGFnc1tzaGVldC50YWdzLmxlbmd0aCAtIDFdLm5leHRFbGVtZW50U2libGluZztcbiAgICAgIHNoZWV0LmJlZm9yZSA9IGVsZW1lbnQ7XG4gICAgICBzaGVldC5mbHVzaCgpO1xuICAgIH1cblxuICAgIGNhY2hlLmluc2VydChcIlwiLCBzZXJpYWxpemVkLCBzaGVldCwgZmFsc2UpO1xuICB9LCBbY2FjaGUsIHNlcmlhbGl6ZWQubmFtZV0pO1xuICByZXR1cm4gbnVsbDtcbn0pO1xuXG5mdW5jdGlvbiBjc3MoKSB7XG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICByZXR1cm4gc2VyaWFsaXplU3R5bGVzKGFyZ3MpO1xufVxuXG5mdW5jdGlvbiBrZXlmcmFtZXMoKSB7XG4gIHZhciBpbnNlcnRhYmxlID0gY3NzLmFwcGx5KHZvaWQgMCwgYXJndW1lbnRzKTtcbiAgdmFyIG5hbWUgPSBcImFuaW1hdGlvbi1cIiArIGluc2VydGFibGUubmFtZTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBuYW1lLFxuICAgIHN0eWxlczogXCJAa2V5ZnJhbWVzIFwiICsgbmFtZSArIFwie1wiICsgaW5zZXJ0YWJsZS5zdHlsZXMgKyBcIn1cIixcbiAgICBhbmltOiAxLFxuICAgIHRvU3RyaW5nOiBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICAgIHJldHVybiBcIl9FTU9fXCIgKyB0aGlzLm5hbWUgKyBcIl9cIiArIHRoaXMuc3R5bGVzICsgXCJfRU1PX1wiO1xuICAgIH1cbiAgfTtcbn1cblxudmFyIGNsYXNzbmFtZXMgPSBmdW5jdGlvbiBjbGFzc25hbWVzKGFyZ3MpIHtcbiAgdmFyIGxlbiA9IGFyZ3MubGVuZ3RoO1xuICB2YXIgaSA9IDA7XG4gIHZhciBjbHMgPSAnJztcblxuICBmb3IgKDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgdmFyIGFyZyA9IGFyZ3NbaV07XG4gICAgaWYgKGFyZyA9PSBudWxsKSBjb250aW51ZTtcbiAgICB2YXIgdG9BZGQgPSB2b2lkIDA7XG5cbiAgICBzd2l0Y2ggKHR5cGVvZiBhcmcpIHtcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgICAge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFyZykpIHtcbiAgICAgICAgICAgIHRvQWRkID0gY2xhc3NuYW1lcyhhcmcpO1xuICAgICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgIHRvQWRkID0gJyc7XG5cbiAgICAgICAgICAgIGZvciAodmFyIGsgaW4gYXJnKSB7XG4gICAgICAgICAgICAgIGlmIChhcmdba10gJiYgaykge1xuICAgICAgICAgICAgICAgIHRvQWRkICYmICh0b0FkZCArPSAnICcpO1xuICAgICAgICAgICAgICAgIHRvQWRkICs9IGs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB7XG4gICAgICAgICAgdG9BZGQgPSBhcmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodG9BZGQpIHtcbiAgICAgIGNscyAmJiAoY2xzICs9ICcgJyk7XG4gICAgICBjbHMgKz0gdG9BZGQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNscztcbn07XG5cbmZ1bmN0aW9uIG1lcmdlKHJlZ2lzdGVyZWQsIGNzcywgY2xhc3NOYW1lKSB7XG4gIHZhciByZWdpc3RlcmVkU3R5bGVzID0gW107XG4gIHZhciByYXdDbGFzc05hbWUgPSBnZXRSZWdpc3RlcmVkU3R5bGVzKHJlZ2lzdGVyZWQsIHJlZ2lzdGVyZWRTdHlsZXMsIGNsYXNzTmFtZSk7XG5cbiAgaWYgKHJlZ2lzdGVyZWRTdHlsZXMubGVuZ3RoIDwgMikge1xuICAgIHJldHVybiBjbGFzc05hbWU7XG4gIH1cblxuICByZXR1cm4gcmF3Q2xhc3NOYW1lICsgY3NzKHJlZ2lzdGVyZWRTdHlsZXMpO1xufVxuXG52YXIgSW5zZXJ0aW9uID0gZnVuY3Rpb24gSW5zZXJ0aW9uKF9yZWYpIHtcbiAgdmFyIGNhY2hlID0gX3JlZi5jYWNoZSxcbiAgICAgIHNlcmlhbGl6ZWRBcnIgPSBfcmVmLnNlcmlhbGl6ZWRBcnI7XG4gIHVzZUluc2VydGlvbkVmZmVjdEFsd2F5c1dpdGhTeW5jRmFsbGJhY2soZnVuY3Rpb24gKCkge1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZXJpYWxpemVkQXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpbnNlcnRTdHlsZXMoY2FjaGUsIHNlcmlhbGl6ZWRBcnJbaV0sIGZhbHNlKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBudWxsO1xufTtcblxudmFyIENsYXNzTmFtZXMgPSAvKiAjX19QVVJFX18gKi93aXRoRW1vdGlvbkNhY2hlKGZ1bmN0aW9uIChwcm9wcywgY2FjaGUpIHtcbiAgdmFyIGhhc1JlbmRlcmVkID0gZmFsc2U7XG4gIHZhciBzZXJpYWxpemVkQXJyID0gW107XG5cbiAgdmFyIGNzcyA9IGZ1bmN0aW9uIGNzcygpIHtcbiAgICBpZiAoaGFzUmVuZGVyZWQgJiYgaXNEZXZlbG9wbWVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjc3MgY2FuIG9ubHkgYmUgdXNlZCBkdXJpbmcgcmVuZGVyJyk7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIHZhciBzZXJpYWxpemVkID0gc2VyaWFsaXplU3R5bGVzKGFyZ3MsIGNhY2hlLnJlZ2lzdGVyZWQpO1xuICAgIHNlcmlhbGl6ZWRBcnIucHVzaChzZXJpYWxpemVkKTsgLy8gcmVnaXN0cmF0aW9uIGhhcyB0byBoYXBwZW4gaGVyZSBhcyB0aGUgcmVzdWx0IG9mIHRoaXMgbWlnaHQgZ2V0IGNvbnN1bWVkIGJ5IGBjeGBcblxuICAgIHJlZ2lzdGVyU3R5bGVzKGNhY2hlLCBzZXJpYWxpemVkLCBmYWxzZSk7XG4gICAgcmV0dXJuIGNhY2hlLmtleSArIFwiLVwiICsgc2VyaWFsaXplZC5uYW1lO1xuICB9O1xuXG4gIHZhciBjeCA9IGZ1bmN0aW9uIGN4KCkge1xuICAgIGlmIChoYXNSZW5kZXJlZCAmJiBpc0RldmVsb3BtZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2N4IGNhbiBvbmx5IGJlIHVzZWQgZHVyaW5nIHJlbmRlcicpO1xuICAgIH1cblxuICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiksIF9rZXkyID0gMDsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgICAgYXJnc1tfa2V5Ml0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgIH1cblxuICAgIHJldHVybiBtZXJnZShjYWNoZS5yZWdpc3RlcmVkLCBjc3MsIGNsYXNzbmFtZXMoYXJncykpO1xuICB9O1xuXG4gIHZhciBjb250ZW50ID0ge1xuICAgIGNzczogY3NzLFxuICAgIGN4OiBjeCxcbiAgICB0aGVtZTogUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpXG4gIH07XG4gIHZhciBlbGUgPSBwcm9wcy5jaGlsZHJlbihjb250ZW50KTtcbiAgaGFzUmVuZGVyZWQgPSB0cnVlO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEluc2VydGlvbiwge1xuICAgIGNhY2hlOiBjYWNoZSxcbiAgICBzZXJpYWxpemVkQXJyOiBzZXJpYWxpemVkQXJyXG4gIH0pLCBlbGUpO1xufSk7XG5cbmV4cG9ydCB7IENsYXNzTmFtZXMsIEdsb2JhbCwganN4IGFzIGNyZWF0ZUVsZW1lbnQsIGNzcywganN4LCBrZXlmcmFtZXMgfTtcbiIsImZ1bmN0aW9uIF90YWdnZWRUZW1wbGF0ZUxpdGVyYWwoZSwgdCkge1xuICByZXR1cm4gdCB8fCAodCA9IGUuc2xpY2UoMCkpLCBPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsIHtcbiAgICByYXc6IHtcbiAgICAgIHZhbHVlOiBPYmplY3QuZnJlZXplKHQpXG4gICAgfVxuICB9KSk7XG59XG5leHBvcnQgeyBfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsIGFzIGRlZmF1bHQgfTsiLCIvKipcbiAqIEN1c3RvbSBwb3NpdGlvbmluZyByZWZlcmVuY2UgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy92aXJ0dWFsLWVsZW1lbnRzXG4gKi9cblxuY29uc3Qgc2lkZXMgPSBbJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCddO1xuY29uc3QgYWxpZ25tZW50cyA9IFsnc3RhcnQnLCAnZW5kJ107XG5jb25zdCBwbGFjZW1lbnRzID0gLyojX19QVVJFX18qL3NpZGVzLnJlZHVjZSgoYWNjLCBzaWRlKSA9PiBhY2MuY29uY2F0KHNpZGUsIHNpZGUgKyBcIi1cIiArIGFsaWdubWVudHNbMF0sIHNpZGUgKyBcIi1cIiArIGFsaWdubWVudHNbMV0pLCBbXSk7XG5jb25zdCBtaW4gPSBNYXRoLm1pbjtcbmNvbnN0IG1heCA9IE1hdGgubWF4O1xuY29uc3Qgcm91bmQgPSBNYXRoLnJvdW5kO1xuY29uc3QgZmxvb3IgPSBNYXRoLmZsb29yO1xuY29uc3QgY3JlYXRlQ29vcmRzID0gdiA9PiAoe1xuICB4OiB2LFxuICB5OiB2XG59KTtcbmNvbnN0IG9wcG9zaXRlU2lkZU1hcCA9IHtcbiAgbGVmdDogJ3JpZ2h0JyxcbiAgcmlnaHQ6ICdsZWZ0JyxcbiAgYm90dG9tOiAndG9wJyxcbiAgdG9wOiAnYm90dG9tJ1xufTtcbmNvbnN0IG9wcG9zaXRlQWxpZ25tZW50TWFwID0ge1xuICBzdGFydDogJ2VuZCcsXG4gIGVuZDogJ3N0YXJ0J1xufTtcbmZ1bmN0aW9uIGNsYW1wKHN0YXJ0LCB2YWx1ZSwgZW5kKSB7XG4gIHJldHVybiBtYXgoc3RhcnQsIG1pbih2YWx1ZSwgZW5kKSk7XG59XG5mdW5jdGlvbiBldmFsdWF0ZSh2YWx1ZSwgcGFyYW0pIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyA/IHZhbHVlKHBhcmFtKSA6IHZhbHVlO1xufVxuZnVuY3Rpb24gZ2V0U2lkZShwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5zcGxpdCgnLScpWzBdO1xufVxuZnVuY3Rpb24gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnNwbGl0KCctJylbMV07XG59XG5mdW5jdGlvbiBnZXRPcHBvc2l0ZUF4aXMoYXhpcykge1xuICByZXR1cm4gYXhpcyA9PT0gJ3gnID8gJ3knIDogJ3gnO1xufVxuZnVuY3Rpb24gZ2V0QXhpc0xlbmd0aChheGlzKSB7XG4gIHJldHVybiBheGlzID09PSAneScgPyAnaGVpZ2h0JyA6ICd3aWR0aCc7XG59XG5mdW5jdGlvbiBnZXRTaWRlQXhpcyhwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIFsndG9wJywgJ2JvdHRvbSddLmluY2x1ZGVzKGdldFNpZGUocGxhY2VtZW50KSkgPyAneScgOiAneCc7XG59XG5mdW5jdGlvbiBnZXRBbGlnbm1lbnRBeGlzKHBsYWNlbWVudCkge1xuICByZXR1cm4gZ2V0T3Bwb3NpdGVBeGlzKGdldFNpZGVBeGlzKHBsYWNlbWVudCkpO1xufVxuZnVuY3Rpb24gZ2V0QWxpZ25tZW50U2lkZXMocGxhY2VtZW50LCByZWN0cywgcnRsKSB7XG4gIGlmIChydGwgPT09IHZvaWQgMCkge1xuICAgIHJ0bCA9IGZhbHNlO1xuICB9XG4gIGNvbnN0IGFsaWdubWVudCA9IGdldEFsaWdubWVudChwbGFjZW1lbnQpO1xuICBjb25zdCBhbGlnbm1lbnRBeGlzID0gZ2V0QWxpZ25tZW50QXhpcyhwbGFjZW1lbnQpO1xuICBjb25zdCBsZW5ndGggPSBnZXRBeGlzTGVuZ3RoKGFsaWdubWVudEF4aXMpO1xuICBsZXQgbWFpbkFsaWdubWVudFNpZGUgPSBhbGlnbm1lbnRBeGlzID09PSAneCcgPyBhbGlnbm1lbnQgPT09IChydGwgPyAnZW5kJyA6ICdzdGFydCcpID8gJ3JpZ2h0JyA6ICdsZWZ0JyA6IGFsaWdubWVudCA9PT0gJ3N0YXJ0JyA/ICdib3R0b20nIDogJ3RvcCc7XG4gIGlmIChyZWN0cy5yZWZlcmVuY2VbbGVuZ3RoXSA+IHJlY3RzLmZsb2F0aW5nW2xlbmd0aF0pIHtcbiAgICBtYWluQWxpZ25tZW50U2lkZSA9IGdldE9wcG9zaXRlUGxhY2VtZW50KG1haW5BbGlnbm1lbnRTaWRlKTtcbiAgfVxuICByZXR1cm4gW21haW5BbGlnbm1lbnRTaWRlLCBnZXRPcHBvc2l0ZVBsYWNlbWVudChtYWluQWxpZ25tZW50U2lkZSldO1xufVxuZnVuY3Rpb24gZ2V0RXhwYW5kZWRQbGFjZW1lbnRzKHBsYWNlbWVudCkge1xuICBjb25zdCBvcHBvc2l0ZVBsYWNlbWVudCA9IGdldE9wcG9zaXRlUGxhY2VtZW50KHBsYWNlbWVudCk7XG4gIHJldHVybiBbZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQocGxhY2VtZW50KSwgb3Bwb3NpdGVQbGFjZW1lbnQsIGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50KG9wcG9zaXRlUGxhY2VtZW50KV07XG59XG5mdW5jdGlvbiBnZXRPcHBvc2l0ZUFsaWdubWVudFBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5yZXBsYWNlKC9zdGFydHxlbmQvZywgYWxpZ25tZW50ID0+IG9wcG9zaXRlQWxpZ25tZW50TWFwW2FsaWdubWVudF0pO1xufVxuZnVuY3Rpb24gZ2V0U2lkZUxpc3Qoc2lkZSwgaXNTdGFydCwgcnRsKSB7XG4gIGNvbnN0IGxyID0gWydsZWZ0JywgJ3JpZ2h0J107XG4gIGNvbnN0IHJsID0gWydyaWdodCcsICdsZWZ0J107XG4gIGNvbnN0IHRiID0gWyd0b3AnLCAnYm90dG9tJ107XG4gIGNvbnN0IGJ0ID0gWydib3R0b20nLCAndG9wJ107XG4gIHN3aXRjaCAoc2lkZSkge1xuICAgIGNhc2UgJ3RvcCc6XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICAgIGlmIChydGwpIHJldHVybiBpc1N0YXJ0ID8gcmwgOiBscjtcbiAgICAgIHJldHVybiBpc1N0YXJ0ID8gbHIgOiBybDtcbiAgICBjYXNlICdsZWZ0JzpcbiAgICBjYXNlICdyaWdodCc6XG4gICAgICByZXR1cm4gaXNTdGFydCA/IHRiIDogYnQ7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBbXTtcbiAgfVxufVxuZnVuY3Rpb24gZ2V0T3Bwb3NpdGVBeGlzUGxhY2VtZW50cyhwbGFjZW1lbnQsIGZsaXBBbGlnbm1lbnQsIGRpcmVjdGlvbiwgcnRsKSB7XG4gIGNvbnN0IGFsaWdubWVudCA9IGdldEFsaWdubWVudChwbGFjZW1lbnQpO1xuICBsZXQgbGlzdCA9IGdldFNpZGVMaXN0KGdldFNpZGUocGxhY2VtZW50KSwgZGlyZWN0aW9uID09PSAnc3RhcnQnLCBydGwpO1xuICBpZiAoYWxpZ25tZW50KSB7XG4gICAgbGlzdCA9IGxpc3QubWFwKHNpZGUgPT4gc2lkZSArIFwiLVwiICsgYWxpZ25tZW50KTtcbiAgICBpZiAoZmxpcEFsaWdubWVudCkge1xuICAgICAgbGlzdCA9IGxpc3QuY29uY2F0KGxpc3QubWFwKGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50KSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBsaXN0O1xufVxuZnVuY3Rpb24gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQocGxhY2VtZW50KSB7XG4gIHJldHVybiBwbGFjZW1lbnQucmVwbGFjZSgvbGVmdHxyaWdodHxib3R0b218dG9wL2csIHNpZGUgPT4gb3Bwb3NpdGVTaWRlTWFwW3NpZGVdKTtcbn1cbmZ1bmN0aW9uIGV4cGFuZFBhZGRpbmdPYmplY3QocGFkZGluZykge1xuICByZXR1cm4ge1xuICAgIHRvcDogMCxcbiAgICByaWdodDogMCxcbiAgICBib3R0b206IDAsXG4gICAgbGVmdDogMCxcbiAgICAuLi5wYWRkaW5nXG4gIH07XG59XG5mdW5jdGlvbiBnZXRQYWRkaW5nT2JqZWN0KHBhZGRpbmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBwYWRkaW5nICE9PSAnbnVtYmVyJyA/IGV4cGFuZFBhZGRpbmdPYmplY3QocGFkZGluZykgOiB7XG4gICAgdG9wOiBwYWRkaW5nLFxuICAgIHJpZ2h0OiBwYWRkaW5nLFxuICAgIGJvdHRvbTogcGFkZGluZyxcbiAgICBsZWZ0OiBwYWRkaW5nXG4gIH07XG59XG5mdW5jdGlvbiByZWN0VG9DbGllbnRSZWN0KHJlY3QpIHtcbiAgY29uc3Qge1xuICAgIHgsXG4gICAgeSxcbiAgICB3aWR0aCxcbiAgICBoZWlnaHRcbiAgfSA9IHJlY3Q7XG4gIHJldHVybiB7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0LFxuICAgIHRvcDogeSxcbiAgICBsZWZ0OiB4LFxuICAgIHJpZ2h0OiB4ICsgd2lkdGgsXG4gICAgYm90dG9tOiB5ICsgaGVpZ2h0LFxuICAgIHgsXG4gICAgeVxuICB9O1xufVxuXG5leHBvcnQgeyBhbGlnbm1lbnRzLCBjbGFtcCwgY3JlYXRlQ29vcmRzLCBldmFsdWF0ZSwgZXhwYW5kUGFkZGluZ09iamVjdCwgZmxvb3IsIGdldEFsaWdubWVudCwgZ2V0QWxpZ25tZW50QXhpcywgZ2V0QWxpZ25tZW50U2lkZXMsIGdldEF4aXNMZW5ndGgsIGdldEV4cGFuZGVkUGxhY2VtZW50cywgZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQsIGdldE9wcG9zaXRlQXhpcywgZ2V0T3Bwb3NpdGVBeGlzUGxhY2VtZW50cywgZ2V0T3Bwb3NpdGVQbGFjZW1lbnQsIGdldFBhZGRpbmdPYmplY3QsIGdldFNpZGUsIGdldFNpZGVBeGlzLCBtYXgsIG1pbiwgcGxhY2VtZW50cywgcmVjdFRvQ2xpZW50UmVjdCwgcm91bmQsIHNpZGVzIH07XG4iLCJpbXBvcnQgeyBnZXRTaWRlQXhpcywgZ2V0QWxpZ25tZW50QXhpcywgZ2V0QXhpc0xlbmd0aCwgZ2V0U2lkZSwgZ2V0QWxpZ25tZW50LCBldmFsdWF0ZSwgZ2V0UGFkZGluZ09iamVjdCwgcmVjdFRvQ2xpZW50UmVjdCwgbWluLCBjbGFtcCwgcGxhY2VtZW50cywgZ2V0QWxpZ25tZW50U2lkZXMsIGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50LCBnZXRPcHBvc2l0ZVBsYWNlbWVudCwgZ2V0RXhwYW5kZWRQbGFjZW1lbnRzLCBnZXRPcHBvc2l0ZUF4aXNQbGFjZW1lbnRzLCBzaWRlcywgbWF4LCBnZXRPcHBvc2l0ZUF4aXMgfSBmcm9tICdAZmxvYXRpbmctdWkvdXRpbHMnO1xuZXhwb3J0IHsgcmVjdFRvQ2xpZW50UmVjdCB9IGZyb20gJ0BmbG9hdGluZy11aS91dGlscyc7XG5cbmZ1bmN0aW9uIGNvbXB1dGVDb29yZHNGcm9tUGxhY2VtZW50KF9yZWYsIHBsYWNlbWVudCwgcnRsKSB7XG4gIGxldCB7XG4gICAgcmVmZXJlbmNlLFxuICAgIGZsb2F0aW5nXG4gIH0gPSBfcmVmO1xuICBjb25zdCBzaWRlQXhpcyA9IGdldFNpZGVBeGlzKHBsYWNlbWVudCk7XG4gIGNvbnN0IGFsaWdubWVudEF4aXMgPSBnZXRBbGlnbm1lbnRBeGlzKHBsYWNlbWVudCk7XG4gIGNvbnN0IGFsaWduTGVuZ3RoID0gZ2V0QXhpc0xlbmd0aChhbGlnbm1lbnRBeGlzKTtcbiAgY29uc3Qgc2lkZSA9IGdldFNpZGUocGxhY2VtZW50KTtcbiAgY29uc3QgaXNWZXJ0aWNhbCA9IHNpZGVBeGlzID09PSAneSc7XG4gIGNvbnN0IGNvbW1vblggPSByZWZlcmVuY2UueCArIHJlZmVyZW5jZS53aWR0aCAvIDIgLSBmbG9hdGluZy53aWR0aCAvIDI7XG4gIGNvbnN0IGNvbW1vblkgPSByZWZlcmVuY2UueSArIHJlZmVyZW5jZS5oZWlnaHQgLyAyIC0gZmxvYXRpbmcuaGVpZ2h0IC8gMjtcbiAgY29uc3QgY29tbW9uQWxpZ24gPSByZWZlcmVuY2VbYWxpZ25MZW5ndGhdIC8gMiAtIGZsb2F0aW5nW2FsaWduTGVuZ3RoXSAvIDI7XG4gIGxldCBjb29yZHM7XG4gIHN3aXRjaCAoc2lkZSkge1xuICAgIGNhc2UgJ3RvcCc6XG4gICAgICBjb29yZHMgPSB7XG4gICAgICAgIHg6IGNvbW1vblgsXG4gICAgICAgIHk6IHJlZmVyZW5jZS55IC0gZmxvYXRpbmcuaGVpZ2h0XG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICAgIGNvb3JkcyA9IHtcbiAgICAgICAgeDogY29tbW9uWCxcbiAgICAgICAgeTogcmVmZXJlbmNlLnkgKyByZWZlcmVuY2UuaGVpZ2h0XG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncmlnaHQnOlxuICAgICAgY29vcmRzID0ge1xuICAgICAgICB4OiByZWZlcmVuY2UueCArIHJlZmVyZW5jZS53aWR0aCxcbiAgICAgICAgeTogY29tbW9uWVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgY29vcmRzID0ge1xuICAgICAgICB4OiByZWZlcmVuY2UueCAtIGZsb2F0aW5nLndpZHRoLFxuICAgICAgICB5OiBjb21tb25ZXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGNvb3JkcyA9IHtcbiAgICAgICAgeDogcmVmZXJlbmNlLngsXG4gICAgICAgIHk6IHJlZmVyZW5jZS55XG4gICAgICB9O1xuICB9XG4gIHN3aXRjaCAoZ2V0QWxpZ25tZW50KHBsYWNlbWVudCkpIHtcbiAgICBjYXNlICdzdGFydCc6XG4gICAgICBjb29yZHNbYWxpZ25tZW50QXhpc10gLT0gY29tbW9uQWxpZ24gKiAocnRsICYmIGlzVmVydGljYWwgPyAtMSA6IDEpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZW5kJzpcbiAgICAgIGNvb3Jkc1thbGlnbm1lbnRBeGlzXSArPSBjb21tb25BbGlnbiAqIChydGwgJiYgaXNWZXJ0aWNhbCA/IC0xIDogMSk7XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gY29vcmRzO1xufVxuXG4vKipcbiAqIENvbXB1dGVzIHRoZSBgeGAgYW5kIGB5YCBjb29yZGluYXRlcyB0aGF0IHdpbGwgcGxhY2UgdGhlIGZsb2F0aW5nIGVsZW1lbnRcbiAqIG5leHQgdG8gYSBnaXZlbiByZWZlcmVuY2UgZWxlbWVudC5cbiAqXG4gKiBUaGlzIGV4cG9ydCBkb2VzIG5vdCBoYXZlIGFueSBgcGxhdGZvcm1gIGludGVyZmFjZSBsb2dpYy4gWW91IHdpbGwgbmVlZCB0b1xuICogd3JpdGUgb25lIGZvciB0aGUgcGxhdGZvcm0geW91IGFyZSB1c2luZyBGbG9hdGluZyBVSSB3aXRoLlxuICovXG5jb25zdCBjb21wdXRlUG9zaXRpb24gPSBhc3luYyAocmVmZXJlbmNlLCBmbG9hdGluZywgY29uZmlnKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBwbGFjZW1lbnQgPSAnYm90dG9tJyxcbiAgICBzdHJhdGVneSA9ICdhYnNvbHV0ZScsXG4gICAgbWlkZGxld2FyZSA9IFtdLFxuICAgIHBsYXRmb3JtXG4gIH0gPSBjb25maWc7XG4gIGNvbnN0IHZhbGlkTWlkZGxld2FyZSA9IG1pZGRsZXdhcmUuZmlsdGVyKEJvb2xlYW4pO1xuICBjb25zdCBydGwgPSBhd2FpdCAocGxhdGZvcm0uaXNSVEwgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmlzUlRMKGZsb2F0aW5nKSk7XG4gIGxldCByZWN0cyA9IGF3YWl0IHBsYXRmb3JtLmdldEVsZW1lbnRSZWN0cyh7XG4gICAgcmVmZXJlbmNlLFxuICAgIGZsb2F0aW5nLFxuICAgIHN0cmF0ZWd5XG4gIH0pO1xuICBsZXQge1xuICAgIHgsXG4gICAgeVxuICB9ID0gY29tcHV0ZUNvb3Jkc0Zyb21QbGFjZW1lbnQocmVjdHMsIHBsYWNlbWVudCwgcnRsKTtcbiAgbGV0IHN0YXRlZnVsUGxhY2VtZW50ID0gcGxhY2VtZW50O1xuICBsZXQgbWlkZGxld2FyZURhdGEgPSB7fTtcbiAgbGV0IHJlc2V0Q291bnQgPSAwO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbGlkTWlkZGxld2FyZS5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHtcbiAgICAgIG5hbWUsXG4gICAgICBmblxuICAgIH0gPSB2YWxpZE1pZGRsZXdhcmVbaV07XG4gICAgY29uc3Qge1xuICAgICAgeDogbmV4dFgsXG4gICAgICB5OiBuZXh0WSxcbiAgICAgIGRhdGEsXG4gICAgICByZXNldFxuICAgIH0gPSBhd2FpdCBmbih7XG4gICAgICB4LFxuICAgICAgeSxcbiAgICAgIGluaXRpYWxQbGFjZW1lbnQ6IHBsYWNlbWVudCxcbiAgICAgIHBsYWNlbWVudDogc3RhdGVmdWxQbGFjZW1lbnQsXG4gICAgICBzdHJhdGVneSxcbiAgICAgIG1pZGRsZXdhcmVEYXRhLFxuICAgICAgcmVjdHMsXG4gICAgICBwbGF0Zm9ybSxcbiAgICAgIGVsZW1lbnRzOiB7XG4gICAgICAgIHJlZmVyZW5jZSxcbiAgICAgICAgZmxvYXRpbmdcbiAgICAgIH1cbiAgICB9KTtcbiAgICB4ID0gbmV4dFggIT0gbnVsbCA/IG5leHRYIDogeDtcbiAgICB5ID0gbmV4dFkgIT0gbnVsbCA/IG5leHRZIDogeTtcbiAgICBtaWRkbGV3YXJlRGF0YSA9IHtcbiAgICAgIC4uLm1pZGRsZXdhcmVEYXRhLFxuICAgICAgW25hbWVdOiB7XG4gICAgICAgIC4uLm1pZGRsZXdhcmVEYXRhW25hbWVdLFxuICAgICAgICAuLi5kYXRhXG4gICAgICB9XG4gICAgfTtcbiAgICBpZiAocmVzZXQgJiYgcmVzZXRDb3VudCA8PSA1MCkge1xuICAgICAgcmVzZXRDb3VudCsrO1xuICAgICAgaWYgKHR5cGVvZiByZXNldCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgaWYgKHJlc2V0LnBsYWNlbWVudCkge1xuICAgICAgICAgIHN0YXRlZnVsUGxhY2VtZW50ID0gcmVzZXQucGxhY2VtZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXNldC5yZWN0cykge1xuICAgICAgICAgIHJlY3RzID0gcmVzZXQucmVjdHMgPT09IHRydWUgPyBhd2FpdCBwbGF0Zm9ybS5nZXRFbGVtZW50UmVjdHMoe1xuICAgICAgICAgICAgcmVmZXJlbmNlLFxuICAgICAgICAgICAgZmxvYXRpbmcsXG4gICAgICAgICAgICBzdHJhdGVneVxuICAgICAgICAgIH0pIDogcmVzZXQucmVjdHM7XG4gICAgICAgIH1cbiAgICAgICAgKHtcbiAgICAgICAgICB4LFxuICAgICAgICAgIHlcbiAgICAgICAgfSA9IGNvbXB1dGVDb29yZHNGcm9tUGxhY2VtZW50KHJlY3RzLCBzdGF0ZWZ1bFBsYWNlbWVudCwgcnRsKSk7XG4gICAgICB9XG4gICAgICBpID0gLTE7XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgeCxcbiAgICB5LFxuICAgIHBsYWNlbWVudDogc3RhdGVmdWxQbGFjZW1lbnQsXG4gICAgc3RyYXRlZ3ksXG4gICAgbWlkZGxld2FyZURhdGFcbiAgfTtcbn07XG5cbi8qKlxuICogUmVzb2x2ZXMgd2l0aCBhbiBvYmplY3Qgb2Ygb3ZlcmZsb3cgc2lkZSBvZmZzZXRzIHRoYXQgZGV0ZXJtaW5lIGhvdyBtdWNoIHRoZVxuICogZWxlbWVudCBpcyBvdmVyZmxvd2luZyBhIGdpdmVuIGNsaXBwaW5nIGJvdW5kYXJ5IG9uIGVhY2ggc2lkZS5cbiAqIC0gcG9zaXRpdmUgPSBvdmVyZmxvd2luZyB0aGUgYm91bmRhcnkgYnkgdGhhdCBudW1iZXIgb2YgcGl4ZWxzXG4gKiAtIG5lZ2F0aXZlID0gaG93IG1hbnkgcGl4ZWxzIGxlZnQgYmVmb3JlIGl0IHdpbGwgb3ZlcmZsb3dcbiAqIC0gMCA9IGxpZXMgZmx1c2ggd2l0aCB0aGUgYm91bmRhcnlcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9kZXRlY3RPdmVyZmxvd1xuICovXG5hc3luYyBmdW5jdGlvbiBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwgb3B0aW9ucykge1xuICB2YXIgX2F3YWl0JHBsYXRmb3JtJGlzRWxlO1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGNvbnN0IHtcbiAgICB4LFxuICAgIHksXG4gICAgcGxhdGZvcm0sXG4gICAgcmVjdHMsXG4gICAgZWxlbWVudHMsXG4gICAgc3RyYXRlZ3lcbiAgfSA9IHN0YXRlO1xuICBjb25zdCB7XG4gICAgYm91bmRhcnkgPSAnY2xpcHBpbmdBbmNlc3RvcnMnLFxuICAgIHJvb3RCb3VuZGFyeSA9ICd2aWV3cG9ydCcsXG4gICAgZWxlbWVudENvbnRleHQgPSAnZmxvYXRpbmcnLFxuICAgIGFsdEJvdW5kYXJ5ID0gZmFsc2UsXG4gICAgcGFkZGluZyA9IDBcbiAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgY29uc3QgcGFkZGluZ09iamVjdCA9IGdldFBhZGRpbmdPYmplY3QocGFkZGluZyk7XG4gIGNvbnN0IGFsdENvbnRleHQgPSBlbGVtZW50Q29udGV4dCA9PT0gJ2Zsb2F0aW5nJyA/ICdyZWZlcmVuY2UnIDogJ2Zsb2F0aW5nJztcbiAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRzW2FsdEJvdW5kYXJ5ID8gYWx0Q29udGV4dCA6IGVsZW1lbnRDb250ZXh0XTtcbiAgY29uc3QgY2xpcHBpbmdDbGllbnRSZWN0ID0gcmVjdFRvQ2xpZW50UmVjdChhd2FpdCBwbGF0Zm9ybS5nZXRDbGlwcGluZ1JlY3Qoe1xuICAgIGVsZW1lbnQ6ICgoX2F3YWl0JHBsYXRmb3JtJGlzRWxlID0gYXdhaXQgKHBsYXRmb3JtLmlzRWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNFbGVtZW50KGVsZW1lbnQpKSkgIT0gbnVsbCA/IF9hd2FpdCRwbGF0Zm9ybSRpc0VsZSA6IHRydWUpID8gZWxlbWVudCA6IGVsZW1lbnQuY29udGV4dEVsZW1lbnQgfHwgKGF3YWl0IChwbGF0Zm9ybS5nZXREb2N1bWVudEVsZW1lbnQgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmdldERvY3VtZW50RWxlbWVudChlbGVtZW50cy5mbG9hdGluZykpKSxcbiAgICBib3VuZGFyeSxcbiAgICByb290Qm91bmRhcnksXG4gICAgc3RyYXRlZ3lcbiAgfSkpO1xuICBjb25zdCByZWN0ID0gZWxlbWVudENvbnRleHQgPT09ICdmbG9hdGluZycgPyB7XG4gICAgeCxcbiAgICB5LFxuICAgIHdpZHRoOiByZWN0cy5mbG9hdGluZy53aWR0aCxcbiAgICBoZWlnaHQ6IHJlY3RzLmZsb2F0aW5nLmhlaWdodFxuICB9IDogcmVjdHMucmVmZXJlbmNlO1xuICBjb25zdCBvZmZzZXRQYXJlbnQgPSBhd2FpdCAocGxhdGZvcm0uZ2V0T2Zmc2V0UGFyZW50ID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5nZXRPZmZzZXRQYXJlbnQoZWxlbWVudHMuZmxvYXRpbmcpKTtcbiAgY29uc3Qgb2Zmc2V0U2NhbGUgPSAoYXdhaXQgKHBsYXRmb3JtLmlzRWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNFbGVtZW50KG9mZnNldFBhcmVudCkpKSA/IChhd2FpdCAocGxhdGZvcm0uZ2V0U2NhbGUgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmdldFNjYWxlKG9mZnNldFBhcmVudCkpKSB8fCB7XG4gICAgeDogMSxcbiAgICB5OiAxXG4gIH0gOiB7XG4gICAgeDogMSxcbiAgICB5OiAxXG4gIH07XG4gIGNvbnN0IGVsZW1lbnRDbGllbnRSZWN0ID0gcmVjdFRvQ2xpZW50UmVjdChwbGF0Zm9ybS5jb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdCA/IGF3YWl0IHBsYXRmb3JtLmNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0KHtcbiAgICBlbGVtZW50cyxcbiAgICByZWN0LFxuICAgIG9mZnNldFBhcmVudCxcbiAgICBzdHJhdGVneVxuICB9KSA6IHJlY3QpO1xuICByZXR1cm4ge1xuICAgIHRvcDogKGNsaXBwaW5nQ2xpZW50UmVjdC50b3AgLSBlbGVtZW50Q2xpZW50UmVjdC50b3AgKyBwYWRkaW5nT2JqZWN0LnRvcCkgLyBvZmZzZXRTY2FsZS55LFxuICAgIGJvdHRvbTogKGVsZW1lbnRDbGllbnRSZWN0LmJvdHRvbSAtIGNsaXBwaW5nQ2xpZW50UmVjdC5ib3R0b20gKyBwYWRkaW5nT2JqZWN0LmJvdHRvbSkgLyBvZmZzZXRTY2FsZS55LFxuICAgIGxlZnQ6IChjbGlwcGluZ0NsaWVudFJlY3QubGVmdCAtIGVsZW1lbnRDbGllbnRSZWN0LmxlZnQgKyBwYWRkaW5nT2JqZWN0LmxlZnQpIC8gb2Zmc2V0U2NhbGUueCxcbiAgICByaWdodDogKGVsZW1lbnRDbGllbnRSZWN0LnJpZ2h0IC0gY2xpcHBpbmdDbGllbnRSZWN0LnJpZ2h0ICsgcGFkZGluZ09iamVjdC5yaWdodCkgLyBvZmZzZXRTY2FsZS54XG4gIH07XG59XG5cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0byBwb3NpdGlvbiBhbiBpbm5lciBlbGVtZW50IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IHNvIHRoYXQgaXRcbiAqIGFwcGVhcnMgY2VudGVyZWQgdG8gdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2Fycm93XG4gKi9cbmNvbnN0IGFycm93ID0gb3B0aW9ucyA9PiAoe1xuICBuYW1lOiAnYXJyb3cnLFxuICBvcHRpb25zLFxuICBhc3luYyBmbihzdGF0ZSkge1xuICAgIGNvbnN0IHtcbiAgICAgIHgsXG4gICAgICB5LFxuICAgICAgcGxhY2VtZW50LFxuICAgICAgcmVjdHMsXG4gICAgICBwbGF0Zm9ybSxcbiAgICAgIGVsZW1lbnRzLFxuICAgICAgbWlkZGxld2FyZURhdGFcbiAgICB9ID0gc3RhdGU7XG4gICAgLy8gU2luY2UgYGVsZW1lbnRgIGlzIHJlcXVpcmVkLCB3ZSBkb24ndCBQYXJ0aWFsPD4gdGhlIHR5cGUuXG4gICAgY29uc3Qge1xuICAgICAgZWxlbWVudCxcbiAgICAgIHBhZGRpbmcgPSAwXG4gICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKSB8fCB7fTtcbiAgICBpZiAoZWxlbWVudCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHBhZGRpbmdPYmplY3QgPSBnZXRQYWRkaW5nT2JqZWN0KHBhZGRpbmcpO1xuICAgIGNvbnN0IGNvb3JkcyA9IHtcbiAgICAgIHgsXG4gICAgICB5XG4gICAgfTtcbiAgICBjb25zdCBheGlzID0gZ2V0QWxpZ25tZW50QXhpcyhwbGFjZW1lbnQpO1xuICAgIGNvbnN0IGxlbmd0aCA9IGdldEF4aXNMZW5ndGgoYXhpcyk7XG4gICAgY29uc3QgYXJyb3dEaW1lbnNpb25zID0gYXdhaXQgcGxhdGZvcm0uZ2V0RGltZW5zaW9ucyhlbGVtZW50KTtcbiAgICBjb25zdCBpc1lBeGlzID0gYXhpcyA9PT0gJ3knO1xuICAgIGNvbnN0IG1pblByb3AgPSBpc1lBeGlzID8gJ3RvcCcgOiAnbGVmdCc7XG4gICAgY29uc3QgbWF4UHJvcCA9IGlzWUF4aXMgPyAnYm90dG9tJyA6ICdyaWdodCc7XG4gICAgY29uc3QgY2xpZW50UHJvcCA9IGlzWUF4aXMgPyAnY2xpZW50SGVpZ2h0JyA6ICdjbGllbnRXaWR0aCc7XG4gICAgY29uc3QgZW5kRGlmZiA9IHJlY3RzLnJlZmVyZW5jZVtsZW5ndGhdICsgcmVjdHMucmVmZXJlbmNlW2F4aXNdIC0gY29vcmRzW2F4aXNdIC0gcmVjdHMuZmxvYXRpbmdbbGVuZ3RoXTtcbiAgICBjb25zdCBzdGFydERpZmYgPSBjb29yZHNbYXhpc10gLSByZWN0cy5yZWZlcmVuY2VbYXhpc107XG4gICAgY29uc3QgYXJyb3dPZmZzZXRQYXJlbnQgPSBhd2FpdCAocGxhdGZvcm0uZ2V0T2Zmc2V0UGFyZW50ID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5nZXRPZmZzZXRQYXJlbnQoZWxlbWVudCkpO1xuICAgIGxldCBjbGllbnRTaXplID0gYXJyb3dPZmZzZXRQYXJlbnQgPyBhcnJvd09mZnNldFBhcmVudFtjbGllbnRQcm9wXSA6IDA7XG5cbiAgICAvLyBET00gcGxhdGZvcm0gY2FuIHJldHVybiBgd2luZG93YCBhcyB0aGUgYG9mZnNldFBhcmVudGAuXG4gICAgaWYgKCFjbGllbnRTaXplIHx8ICEoYXdhaXQgKHBsYXRmb3JtLmlzRWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNFbGVtZW50KGFycm93T2Zmc2V0UGFyZW50KSkpKSB7XG4gICAgICBjbGllbnRTaXplID0gZWxlbWVudHMuZmxvYXRpbmdbY2xpZW50UHJvcF0gfHwgcmVjdHMuZmxvYXRpbmdbbGVuZ3RoXTtcbiAgICB9XG4gICAgY29uc3QgY2VudGVyVG9SZWZlcmVuY2UgPSBlbmREaWZmIC8gMiAtIHN0YXJ0RGlmZiAvIDI7XG5cbiAgICAvLyBJZiB0aGUgcGFkZGluZyBpcyBsYXJnZSBlbm91Z2ggdGhhdCBpdCBjYXVzZXMgdGhlIGFycm93IHRvIG5vIGxvbmdlciBiZVxuICAgIC8vIGNlbnRlcmVkLCBtb2RpZnkgdGhlIHBhZGRpbmcgc28gdGhhdCBpdCBpcyBjZW50ZXJlZC5cbiAgICBjb25zdCBsYXJnZXN0UG9zc2libGVQYWRkaW5nID0gY2xpZW50U2l6ZSAvIDIgLSBhcnJvd0RpbWVuc2lvbnNbbGVuZ3RoXSAvIDIgLSAxO1xuICAgIGNvbnN0IG1pblBhZGRpbmcgPSBtaW4ocGFkZGluZ09iamVjdFttaW5Qcm9wXSwgbGFyZ2VzdFBvc3NpYmxlUGFkZGluZyk7XG4gICAgY29uc3QgbWF4UGFkZGluZyA9IG1pbihwYWRkaW5nT2JqZWN0W21heFByb3BdLCBsYXJnZXN0UG9zc2libGVQYWRkaW5nKTtcblxuICAgIC8vIE1ha2Ugc3VyZSB0aGUgYXJyb3cgZG9lc24ndCBvdmVyZmxvdyB0aGUgZmxvYXRpbmcgZWxlbWVudCBpZiB0aGUgY2VudGVyXG4gICAgLy8gcG9pbnQgaXMgb3V0c2lkZSB0aGUgZmxvYXRpbmcgZWxlbWVudCdzIGJvdW5kcy5cbiAgICBjb25zdCBtaW4kMSA9IG1pblBhZGRpbmc7XG4gICAgY29uc3QgbWF4ID0gY2xpZW50U2l6ZSAtIGFycm93RGltZW5zaW9uc1tsZW5ndGhdIC0gbWF4UGFkZGluZztcbiAgICBjb25zdCBjZW50ZXIgPSBjbGllbnRTaXplIC8gMiAtIGFycm93RGltZW5zaW9uc1tsZW5ndGhdIC8gMiArIGNlbnRlclRvUmVmZXJlbmNlO1xuICAgIGNvbnN0IG9mZnNldCA9IGNsYW1wKG1pbiQxLCBjZW50ZXIsIG1heCk7XG5cbiAgICAvLyBJZiB0aGUgcmVmZXJlbmNlIGlzIHNtYWxsIGVub3VnaCB0aGF0IHRoZSBhcnJvdydzIHBhZGRpbmcgY2F1c2VzIGl0IHRvXG4gICAgLy8gdG8gcG9pbnQgdG8gbm90aGluZyBmb3IgYW4gYWxpZ25lZCBwbGFjZW1lbnQsIGFkanVzdCB0aGUgb2Zmc2V0IG9mIHRoZVxuICAgIC8vIGZsb2F0aW5nIGVsZW1lbnQgaXRzZWxmLiBUbyBlbnN1cmUgYHNoaWZ0KClgIGNvbnRpbnVlcyB0byB0YWtlIGFjdGlvbixcbiAgICAvLyBhIHNpbmdsZSByZXNldCBpcyBwZXJmb3JtZWQgd2hlbiB0aGlzIGlzIHRydWUuXG4gICAgY29uc3Qgc2hvdWxkQWRkT2Zmc2V0ID0gIW1pZGRsZXdhcmVEYXRhLmFycm93ICYmIGdldEFsaWdubWVudChwbGFjZW1lbnQpICE9IG51bGwgJiYgY2VudGVyICE9PSBvZmZzZXQgJiYgcmVjdHMucmVmZXJlbmNlW2xlbmd0aF0gLyAyIC0gKGNlbnRlciA8IG1pbiQxID8gbWluUGFkZGluZyA6IG1heFBhZGRpbmcpIC0gYXJyb3dEaW1lbnNpb25zW2xlbmd0aF0gLyAyIDwgMDtcbiAgICBjb25zdCBhbGlnbm1lbnRPZmZzZXQgPSBzaG91bGRBZGRPZmZzZXQgPyBjZW50ZXIgPCBtaW4kMSA/IGNlbnRlciAtIG1pbiQxIDogY2VudGVyIC0gbWF4IDogMDtcbiAgICByZXR1cm4ge1xuICAgICAgW2F4aXNdOiBjb29yZHNbYXhpc10gKyBhbGlnbm1lbnRPZmZzZXQsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIFtheGlzXTogb2Zmc2V0LFxuICAgICAgICBjZW50ZXJPZmZzZXQ6IGNlbnRlciAtIG9mZnNldCAtIGFsaWdubWVudE9mZnNldCxcbiAgICAgICAgLi4uKHNob3VsZEFkZE9mZnNldCAmJiB7XG4gICAgICAgICAgYWxpZ25tZW50T2Zmc2V0XG4gICAgICAgIH0pXG4gICAgICB9LFxuICAgICAgcmVzZXQ6IHNob3VsZEFkZE9mZnNldFxuICAgIH07XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBnZXRQbGFjZW1lbnRMaXN0KGFsaWdubWVudCwgYXV0b0FsaWdubWVudCwgYWxsb3dlZFBsYWNlbWVudHMpIHtcbiAgY29uc3QgYWxsb3dlZFBsYWNlbWVudHNTb3J0ZWRCeUFsaWdubWVudCA9IGFsaWdubWVudCA/IFsuLi5hbGxvd2VkUGxhY2VtZW50cy5maWx0ZXIocGxhY2VtZW50ID0+IGdldEFsaWdubWVudChwbGFjZW1lbnQpID09PSBhbGlnbm1lbnQpLCAuLi5hbGxvd2VkUGxhY2VtZW50cy5maWx0ZXIocGxhY2VtZW50ID0+IGdldEFsaWdubWVudChwbGFjZW1lbnQpICE9PSBhbGlnbm1lbnQpXSA6IGFsbG93ZWRQbGFjZW1lbnRzLmZpbHRlcihwbGFjZW1lbnQgPT4gZ2V0U2lkZShwbGFjZW1lbnQpID09PSBwbGFjZW1lbnQpO1xuICByZXR1cm4gYWxsb3dlZFBsYWNlbWVudHNTb3J0ZWRCeUFsaWdubWVudC5maWx0ZXIocGxhY2VtZW50ID0+IHtcbiAgICBpZiAoYWxpZ25tZW50KSB7XG4gICAgICByZXR1cm4gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCkgPT09IGFsaWdubWVudCB8fCAoYXV0b0FsaWdubWVudCA/IGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50KHBsYWNlbWVudCkgIT09IHBsYWNlbWVudCA6IGZhbHNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH0pO1xufVxuLyoqXG4gKiBPcHRpbWl6ZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYnkgY2hvb3NpbmcgdGhlIHBsYWNlbWVudFxuICogdGhhdCBoYXMgdGhlIG1vc3Qgc3BhY2UgYXZhaWxhYmxlIGF1dG9tYXRpY2FsbHksIHdpdGhvdXQgbmVlZGluZyB0byBzcGVjaWZ5IGFcbiAqIHByZWZlcnJlZCBwbGFjZW1lbnQuIEFsdGVybmF0aXZlIHRvIGBmbGlwYC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9hdXRvUGxhY2VtZW50XG4gKi9cbmNvbnN0IGF1dG9QbGFjZW1lbnQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2F1dG9QbGFjZW1lbnQnLFxuICAgIG9wdGlvbnMsXG4gICAgYXN5bmMgZm4oc3RhdGUpIHtcbiAgICAgIHZhciBfbWlkZGxld2FyZURhdGEkYXV0b1AsIF9taWRkbGV3YXJlRGF0YSRhdXRvUDIsIF9wbGFjZW1lbnRzVGhhdEZpdE9uRTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcmVjdHMsXG4gICAgICAgIG1pZGRsZXdhcmVEYXRhLFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHBsYXRmb3JtLFxuICAgICAgICBlbGVtZW50c1xuICAgICAgfSA9IHN0YXRlO1xuICAgICAgY29uc3Qge1xuICAgICAgICBjcm9zc0F4aXMgPSBmYWxzZSxcbiAgICAgICAgYWxpZ25tZW50LFxuICAgICAgICBhbGxvd2VkUGxhY2VtZW50cyA9IHBsYWNlbWVudHMsXG4gICAgICAgIGF1dG9BbGlnbm1lbnQgPSB0cnVlLFxuICAgICAgICAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnNcbiAgICAgIH0gPSBldmFsdWF0ZShvcHRpb25zLCBzdGF0ZSk7XG4gICAgICBjb25zdCBwbGFjZW1lbnRzJDEgPSBhbGlnbm1lbnQgIT09IHVuZGVmaW5lZCB8fCBhbGxvd2VkUGxhY2VtZW50cyA9PT0gcGxhY2VtZW50cyA/IGdldFBsYWNlbWVudExpc3QoYWxpZ25tZW50IHx8IG51bGwsIGF1dG9BbGlnbm1lbnQsIGFsbG93ZWRQbGFjZW1lbnRzKSA6IGFsbG93ZWRQbGFjZW1lbnRzO1xuICAgICAgY29uc3Qgb3ZlcmZsb3cgPSBhd2FpdCBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwgZGV0ZWN0T3ZlcmZsb3dPcHRpb25zKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9ICgoX21pZGRsZXdhcmVEYXRhJGF1dG9QID0gbWlkZGxld2FyZURhdGEuYXV0b1BsYWNlbWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9taWRkbGV3YXJlRGF0YSRhdXRvUC5pbmRleCkgfHwgMDtcbiAgICAgIGNvbnN0IGN1cnJlbnRQbGFjZW1lbnQgPSBwbGFjZW1lbnRzJDFbY3VycmVudEluZGV4XTtcbiAgICAgIGlmIChjdXJyZW50UGxhY2VtZW50ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgICAgY29uc3QgYWxpZ25tZW50U2lkZXMgPSBnZXRBbGlnbm1lbnRTaWRlcyhjdXJyZW50UGxhY2VtZW50LCByZWN0cywgYXdhaXQgKHBsYXRmb3JtLmlzUlRMID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5pc1JUTChlbGVtZW50cy5mbG9hdGluZykpKTtcblxuICAgICAgLy8gTWFrZSBgY29tcHV0ZUNvb3Jkc2Agc3RhcnQgZnJvbSB0aGUgcmlnaHQgcGxhY2UuXG4gICAgICBpZiAocGxhY2VtZW50ICE9PSBjdXJyZW50UGxhY2VtZW50KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgIHBsYWNlbWVudDogcGxhY2VtZW50cyQxWzBdXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3QgY3VycmVudE92ZXJmbG93cyA9IFtvdmVyZmxvd1tnZXRTaWRlKGN1cnJlbnRQbGFjZW1lbnQpXSwgb3ZlcmZsb3dbYWxpZ25tZW50U2lkZXNbMF1dLCBvdmVyZmxvd1thbGlnbm1lbnRTaWRlc1sxXV1dO1xuICAgICAgY29uc3QgYWxsT3ZlcmZsb3dzID0gWy4uLigoKF9taWRkbGV3YXJlRGF0YSRhdXRvUDIgPSBtaWRkbGV3YXJlRGF0YS5hdXRvUGxhY2VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJGF1dG9QMi5vdmVyZmxvd3MpIHx8IFtdKSwge1xuICAgICAgICBwbGFjZW1lbnQ6IGN1cnJlbnRQbGFjZW1lbnQsXG4gICAgICAgIG92ZXJmbG93czogY3VycmVudE92ZXJmbG93c1xuICAgICAgfV07XG4gICAgICBjb25zdCBuZXh0UGxhY2VtZW50ID0gcGxhY2VtZW50cyQxW2N1cnJlbnRJbmRleCArIDFdO1xuXG4gICAgICAvLyBUaGVyZSBhcmUgbW9yZSBwbGFjZW1lbnRzIHRvIGNoZWNrLlxuICAgICAgaWYgKG5leHRQbGFjZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBpbmRleDogY3VycmVudEluZGV4ICsgMSxcbiAgICAgICAgICAgIG92ZXJmbG93czogYWxsT3ZlcmZsb3dzXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNldDoge1xuICAgICAgICAgICAgcGxhY2VtZW50OiBuZXh0UGxhY2VtZW50XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3QgcGxhY2VtZW50c1NvcnRlZEJ5TW9zdFNwYWNlID0gYWxsT3ZlcmZsb3dzLm1hcChkID0+IHtcbiAgICAgICAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KGQucGxhY2VtZW50KTtcbiAgICAgICAgcmV0dXJuIFtkLnBsYWNlbWVudCwgYWxpZ25tZW50ICYmIGNyb3NzQXhpcyA/XG4gICAgICAgIC8vIENoZWNrIGFsb25nIHRoZSBtYWluQXhpcyBhbmQgbWFpbiBjcm9zc0F4aXMgc2lkZS5cbiAgICAgICAgZC5vdmVyZmxvd3Muc2xpY2UoMCwgMikucmVkdWNlKChhY2MsIHYpID0+IGFjYyArIHYsIDApIDpcbiAgICAgICAgLy8gQ2hlY2sgb25seSB0aGUgbWFpbkF4aXMuXG4gICAgICAgIGQub3ZlcmZsb3dzWzBdLCBkLm92ZXJmbG93c107XG4gICAgICB9KS5zb3J0KChhLCBiKSA9PiBhWzFdIC0gYlsxXSk7XG4gICAgICBjb25zdCBwbGFjZW1lbnRzVGhhdEZpdE9uRWFjaFNpZGUgPSBwbGFjZW1lbnRzU29ydGVkQnlNb3N0U3BhY2UuZmlsdGVyKGQgPT4gZFsyXS5zbGljZSgwLFxuICAgICAgLy8gQWxpZ25lZCBwbGFjZW1lbnRzIHNob3VsZCBub3QgY2hlY2sgdGhlaXIgb3Bwb3NpdGUgY3Jvc3NBeGlzXG4gICAgICAvLyBzaWRlLlxuICAgICAgZ2V0QWxpZ25tZW50KGRbMF0pID8gMiA6IDMpLmV2ZXJ5KHYgPT4gdiA8PSAwKSk7XG4gICAgICBjb25zdCByZXNldFBsYWNlbWVudCA9ICgoX3BsYWNlbWVudHNUaGF0Rml0T25FID0gcGxhY2VtZW50c1RoYXRGaXRPbkVhY2hTaWRlWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX3BsYWNlbWVudHNUaGF0Rml0T25FWzBdKSB8fCBwbGFjZW1lbnRzU29ydGVkQnlNb3N0U3BhY2VbMF1bMF07XG4gICAgICBpZiAocmVzZXRQbGFjZW1lbnQgIT09IHBsYWNlbWVudCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGluZGV4OiBjdXJyZW50SW5kZXggKyAxLFxuICAgICAgICAgICAgb3ZlcmZsb3dzOiBhbGxPdmVyZmxvd3NcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc2V0OiB7XG4gICAgICAgICAgICBwbGFjZW1lbnQ6IHJlc2V0UGxhY2VtZW50XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IGZsaXBwaW5nIHRoZSBgcGxhY2VtZW50YFxuICogaW4gb3JkZXIgdG8ga2VlcCBpdCBpbiB2aWV3IHdoZW4gdGhlIHByZWZlcnJlZCBwbGFjZW1lbnQocykgd2lsbCBvdmVyZmxvdyB0aGVcbiAqIGNsaXBwaW5nIGJvdW5kYXJ5LiBBbHRlcm5hdGl2ZSB0byBgYXV0b1BsYWNlbWVudGAuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvZmxpcFxuICovXG5jb25zdCBmbGlwID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdmbGlwJyxcbiAgICBvcHRpb25zLFxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgICB2YXIgX21pZGRsZXdhcmVEYXRhJGFycm93LCBfbWlkZGxld2FyZURhdGEkZmxpcDtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICBtaWRkbGV3YXJlRGF0YSxcbiAgICAgICAgcmVjdHMsXG4gICAgICAgIGluaXRpYWxQbGFjZW1lbnQsXG4gICAgICAgIHBsYXRmb3JtLFxuICAgICAgICBlbGVtZW50c1xuICAgICAgfSA9IHN0YXRlO1xuICAgICAgY29uc3Qge1xuICAgICAgICBtYWluQXhpczogY2hlY2tNYWluQXhpcyA9IHRydWUsXG4gICAgICAgIGNyb3NzQXhpczogY2hlY2tDcm9zc0F4aXMgPSB0cnVlLFxuICAgICAgICBmYWxsYmFja1BsYWNlbWVudHM6IHNwZWNpZmllZEZhbGxiYWNrUGxhY2VtZW50cyxcbiAgICAgICAgZmFsbGJhY2tTdHJhdGVneSA9ICdiZXN0Rml0JyxcbiAgICAgICAgZmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbiA9ICdub25lJyxcbiAgICAgICAgZmxpcEFsaWdubWVudCA9IHRydWUsXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcblxuICAgICAgLy8gSWYgYSByZXNldCBieSB0aGUgYXJyb3cgd2FzIGNhdXNlZCBkdWUgdG8gYW4gYWxpZ25tZW50IG9mZnNldCBiZWluZ1xuICAgICAgLy8gYWRkZWQsIHdlIHNob3VsZCBza2lwIGFueSBsb2dpYyBub3cgc2luY2UgYGZsaXAoKWAgaGFzIGFscmVhZHkgZG9uZSBpdHNcbiAgICAgIC8vIHdvcmsuXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmxvYXRpbmctdWkvZmxvYXRpbmctdWkvaXNzdWVzLzI1NDkjaXNzdWVjb21tZW50LTE3MTk2MDE2NDNcbiAgICAgIGlmICgoX21pZGRsZXdhcmVEYXRhJGFycm93ID0gbWlkZGxld2FyZURhdGEuYXJyb3cpICE9IG51bGwgJiYgX21pZGRsZXdhcmVEYXRhJGFycm93LmFsaWdubWVudE9mZnNldCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG4gICAgICBjb25zdCBzaWRlID0gZ2V0U2lkZShwbGFjZW1lbnQpO1xuICAgICAgY29uc3QgaW5pdGlhbFNpZGVBeGlzID0gZ2V0U2lkZUF4aXMoaW5pdGlhbFBsYWNlbWVudCk7XG4gICAgICBjb25zdCBpc0Jhc2VQbGFjZW1lbnQgPSBnZXRTaWRlKGluaXRpYWxQbGFjZW1lbnQpID09PSBpbml0aWFsUGxhY2VtZW50O1xuICAgICAgY29uc3QgcnRsID0gYXdhaXQgKHBsYXRmb3JtLmlzUlRMID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5pc1JUTChlbGVtZW50cy5mbG9hdGluZykpO1xuICAgICAgY29uc3QgZmFsbGJhY2tQbGFjZW1lbnRzID0gc3BlY2lmaWVkRmFsbGJhY2tQbGFjZW1lbnRzIHx8IChpc0Jhc2VQbGFjZW1lbnQgfHwgIWZsaXBBbGlnbm1lbnQgPyBbZ2V0T3Bwb3NpdGVQbGFjZW1lbnQoaW5pdGlhbFBsYWNlbWVudCldIDogZ2V0RXhwYW5kZWRQbGFjZW1lbnRzKGluaXRpYWxQbGFjZW1lbnQpKTtcbiAgICAgIGNvbnN0IGhhc0ZhbGxiYWNrQXhpc1NpZGVEaXJlY3Rpb24gPSBmYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uICE9PSAnbm9uZSc7XG4gICAgICBpZiAoIXNwZWNpZmllZEZhbGxiYWNrUGxhY2VtZW50cyAmJiBoYXNGYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uKSB7XG4gICAgICAgIGZhbGxiYWNrUGxhY2VtZW50cy5wdXNoKC4uLmdldE9wcG9zaXRlQXhpc1BsYWNlbWVudHMoaW5pdGlhbFBsYWNlbWVudCwgZmxpcEFsaWdubWVudCwgZmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbiwgcnRsKSk7XG4gICAgICB9XG4gICAgICBjb25zdCBwbGFjZW1lbnRzID0gW2luaXRpYWxQbGFjZW1lbnQsIC4uLmZhbGxiYWNrUGxhY2VtZW50c107XG4gICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCBkZXRlY3RPdmVyZmxvd09wdGlvbnMpO1xuICAgICAgY29uc3Qgb3ZlcmZsb3dzID0gW107XG4gICAgICBsZXQgb3ZlcmZsb3dzRGF0YSA9ICgoX21pZGRsZXdhcmVEYXRhJGZsaXAgPSBtaWRkbGV3YXJlRGF0YS5mbGlwKSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJGZsaXAub3ZlcmZsb3dzKSB8fCBbXTtcbiAgICAgIGlmIChjaGVja01haW5BeGlzKSB7XG4gICAgICAgIG92ZXJmbG93cy5wdXNoKG92ZXJmbG93W3NpZGVdKTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGVja0Nyb3NzQXhpcykge1xuICAgICAgICBjb25zdCBzaWRlcyA9IGdldEFsaWdubWVudFNpZGVzKHBsYWNlbWVudCwgcmVjdHMsIHJ0bCk7XG4gICAgICAgIG92ZXJmbG93cy5wdXNoKG92ZXJmbG93W3NpZGVzWzBdXSwgb3ZlcmZsb3dbc2lkZXNbMV1dKTtcbiAgICAgIH1cbiAgICAgIG92ZXJmbG93c0RhdGEgPSBbLi4ub3ZlcmZsb3dzRGF0YSwge1xuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIG92ZXJmbG93c1xuICAgICAgfV07XG5cbiAgICAgIC8vIE9uZSBvciBtb3JlIHNpZGVzIGlzIG92ZXJmbG93aW5nLlxuICAgICAgaWYgKCFvdmVyZmxvd3MuZXZlcnkoc2lkZSA9PiBzaWRlIDw9IDApKSB7XG4gICAgICAgIHZhciBfbWlkZGxld2FyZURhdGEkZmxpcDIsIF9vdmVyZmxvd3NEYXRhJGZpbHRlcjtcbiAgICAgICAgY29uc3QgbmV4dEluZGV4ID0gKCgoX21pZGRsZXdhcmVEYXRhJGZsaXAyID0gbWlkZGxld2FyZURhdGEuZmxpcCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9taWRkbGV3YXJlRGF0YSRmbGlwMi5pbmRleCkgfHwgMCkgKyAxO1xuICAgICAgICBjb25zdCBuZXh0UGxhY2VtZW50ID0gcGxhY2VtZW50c1tuZXh0SW5kZXhdO1xuICAgICAgICBpZiAobmV4dFBsYWNlbWVudCkge1xuICAgICAgICAgIC8vIFRyeSBuZXh0IHBsYWNlbWVudCBhbmQgcmUtcnVuIHRoZSBsaWZlY3ljbGUuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgaW5kZXg6IG5leHRJbmRleCxcbiAgICAgICAgICAgICAgb3ZlcmZsb3dzOiBvdmVyZmxvd3NEYXRhXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgICAgcGxhY2VtZW50OiBuZXh0UGxhY2VtZW50XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZpcnN0LCBmaW5kIHRoZSBjYW5kaWRhdGVzIHRoYXQgZml0IG9uIHRoZSBtYWluQXhpcyBzaWRlIG9mIG92ZXJmbG93LFxuICAgICAgICAvLyB0aGVuIGZpbmQgdGhlIHBsYWNlbWVudCB0aGF0IGZpdHMgdGhlIGJlc3Qgb24gdGhlIG1haW4gY3Jvc3NBeGlzIHNpZGUuXG4gICAgICAgIGxldCByZXNldFBsYWNlbWVudCA9IChfb3ZlcmZsb3dzRGF0YSRmaWx0ZXIgPSBvdmVyZmxvd3NEYXRhLmZpbHRlcihkID0+IGQub3ZlcmZsb3dzWzBdIDw9IDApLnNvcnQoKGEsIGIpID0+IGEub3ZlcmZsb3dzWzFdIC0gYi5vdmVyZmxvd3NbMV0pWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX292ZXJmbG93c0RhdGEkZmlsdGVyLnBsYWNlbWVudDtcblxuICAgICAgICAvLyBPdGhlcndpc2UgZmFsbGJhY2suXG4gICAgICAgIGlmICghcmVzZXRQbGFjZW1lbnQpIHtcbiAgICAgICAgICBzd2l0Y2ggKGZhbGxiYWNrU3RyYXRlZ3kpIHtcbiAgICAgICAgICAgIGNhc2UgJ2Jlc3RGaXQnOlxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFyIF9vdmVyZmxvd3NEYXRhJGZpbHRlcjI7XG4gICAgICAgICAgICAgICAgY29uc3QgcGxhY2VtZW50ID0gKF9vdmVyZmxvd3NEYXRhJGZpbHRlcjIgPSBvdmVyZmxvd3NEYXRhLmZpbHRlcihkID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChoYXNGYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTaWRlQXhpcyA9IGdldFNpZGVBeGlzKGQucGxhY2VtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRTaWRlQXhpcyA9PT0gaW5pdGlhbFNpZGVBeGlzIHx8XG4gICAgICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBhIGJpYXMgdG8gdGhlIGB5YCBzaWRlIGF4aXMgZHVlIHRvIGhvcml6b250YWxcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVhZGluZyBkaXJlY3Rpb25zIGZhdm9yaW5nIGdyZWF0ZXIgd2lkdGguXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTaWRlQXhpcyA9PT0gJ3knO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSkubWFwKGQgPT4gW2QucGxhY2VtZW50LCBkLm92ZXJmbG93cy5maWx0ZXIob3ZlcmZsb3cgPT4gb3ZlcmZsb3cgPiAwKS5yZWR1Y2UoKGFjYywgb3ZlcmZsb3cpID0+IGFjYyArIG92ZXJmbG93LCAwKV0pLnNvcnQoKGEsIGIpID0+IGFbMV0gLSBiWzFdKVswXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9vdmVyZmxvd3NEYXRhJGZpbHRlcjJbMF07XG4gICAgICAgICAgICAgICAgaWYgKHBsYWNlbWVudCkge1xuICAgICAgICAgICAgICAgICAgcmVzZXRQbGFjZW1lbnQgPSBwbGFjZW1lbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdpbml0aWFsUGxhY2VtZW50JzpcbiAgICAgICAgICAgICAgcmVzZXRQbGFjZW1lbnQgPSBpbml0aWFsUGxhY2VtZW50O1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBsYWNlbWVudCAhPT0gcmVzZXRQbGFjZW1lbnQpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgICAgcGxhY2VtZW50OiByZXNldFBsYWNlbWVudFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH07XG59O1xuXG5mdW5jdGlvbiBnZXRTaWRlT2Zmc2V0cyhvdmVyZmxvdywgcmVjdCkge1xuICByZXR1cm4ge1xuICAgIHRvcDogb3ZlcmZsb3cudG9wIC0gcmVjdC5oZWlnaHQsXG4gICAgcmlnaHQ6IG92ZXJmbG93LnJpZ2h0IC0gcmVjdC53aWR0aCxcbiAgICBib3R0b206IG92ZXJmbG93LmJvdHRvbSAtIHJlY3QuaGVpZ2h0LFxuICAgIGxlZnQ6IG92ZXJmbG93LmxlZnQgLSByZWN0LndpZHRoXG4gIH07XG59XG5mdW5jdGlvbiBpc0FueVNpZGVGdWxseUNsaXBwZWQob3ZlcmZsb3cpIHtcbiAgcmV0dXJuIHNpZGVzLnNvbWUoc2lkZSA9PiBvdmVyZmxvd1tzaWRlXSA+PSAwKTtcbn1cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0byBoaWRlIHRoZSBmbG9hdGluZyBlbGVtZW50IGluIGFwcGxpY2FibGUgc2l0dWF0aW9ucywgc3VjaCBhc1xuICogd2hlbiBpdCBpcyBub3QgaW4gdGhlIHNhbWUgY2xpcHBpbmcgY29udGV4dCBhcyB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvaGlkZVxuICovXG5jb25zdCBoaWRlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdoaWRlJyxcbiAgICBvcHRpb25zLFxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHJlY3RzXG4gICAgICB9ID0gc3RhdGU7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHN0cmF0ZWd5ID0gJ3JlZmVyZW5jZUhpZGRlbicsXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgICAgIHN3aXRjaCAoc3RyYXRlZ3kpIHtcbiAgICAgICAgY2FzZSAncmVmZXJlbmNlSGlkZGVuJzpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCB7XG4gICAgICAgICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyxcbiAgICAgICAgICAgICAgZWxlbWVudENvbnRleHQ6ICdyZWZlcmVuY2UnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldHMgPSBnZXRTaWRlT2Zmc2V0cyhvdmVyZmxvdywgcmVjdHMucmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VIaWRkZW5PZmZzZXRzOiBvZmZzZXRzLFxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZUhpZGRlbjogaXNBbnlTaWRlRnVsbHlDbGlwcGVkKG9mZnNldHMpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICBjYXNlICdlc2NhcGVkJzpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCB7XG4gICAgICAgICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyxcbiAgICAgICAgICAgICAgYWx0Qm91bmRhcnk6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0cyA9IGdldFNpZGVPZmZzZXRzKG92ZXJmbG93LCByZWN0cy5mbG9hdGluZyk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZXNjYXBlZE9mZnNldHM6IG9mZnNldHMsXG4gICAgICAgICAgICAgICAgZXNjYXBlZDogaXNBbnlTaWRlRnVsbHlDbGlwcGVkKG9mZnNldHMpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xufTtcblxuZnVuY3Rpb24gZ2V0Qm91bmRpbmdSZWN0KHJlY3RzKSB7XG4gIGNvbnN0IG1pblggPSBtaW4oLi4ucmVjdHMubWFwKHJlY3QgPT4gcmVjdC5sZWZ0KSk7XG4gIGNvbnN0IG1pblkgPSBtaW4oLi4ucmVjdHMubWFwKHJlY3QgPT4gcmVjdC50b3ApKTtcbiAgY29uc3QgbWF4WCA9IG1heCguLi5yZWN0cy5tYXAocmVjdCA9PiByZWN0LnJpZ2h0KSk7XG4gIGNvbnN0IG1heFkgPSBtYXgoLi4ucmVjdHMubWFwKHJlY3QgPT4gcmVjdC5ib3R0b20pKTtcbiAgcmV0dXJuIHtcbiAgICB4OiBtaW5YLFxuICAgIHk6IG1pblksXG4gICAgd2lkdGg6IG1heFggLSBtaW5YLFxuICAgIGhlaWdodDogbWF4WSAtIG1pbllcbiAgfTtcbn1cbmZ1bmN0aW9uIGdldFJlY3RzQnlMaW5lKHJlY3RzKSB7XG4gIGNvbnN0IHNvcnRlZFJlY3RzID0gcmVjdHMuc2xpY2UoKS5zb3J0KChhLCBiKSA9PiBhLnkgLSBiLnkpO1xuICBjb25zdCBncm91cHMgPSBbXTtcbiAgbGV0IHByZXZSZWN0ID0gbnVsbDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzb3J0ZWRSZWN0cy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHJlY3QgPSBzb3J0ZWRSZWN0c1tpXTtcbiAgICBpZiAoIXByZXZSZWN0IHx8IHJlY3QueSAtIHByZXZSZWN0LnkgPiBwcmV2UmVjdC5oZWlnaHQgLyAyKSB7XG4gICAgICBncm91cHMucHVzaChbcmVjdF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBncm91cHNbZ3JvdXBzLmxlbmd0aCAtIDFdLnB1c2gocmVjdCk7XG4gICAgfVxuICAgIHByZXZSZWN0ID0gcmVjdDtcbiAgfVxuICByZXR1cm4gZ3JvdXBzLm1hcChyZWN0ID0+IHJlY3RUb0NsaWVudFJlY3QoZ2V0Qm91bmRpbmdSZWN0KHJlY3QpKSk7XG59XG4vKipcbiAqIFByb3ZpZGVzIGltcHJvdmVkIHBvc2l0aW9uaW5nIGZvciBpbmxpbmUgcmVmZXJlbmNlIGVsZW1lbnRzIHRoYXQgY2FuIHNwYW5cbiAqIG92ZXIgbXVsdGlwbGUgbGluZXMsIHN1Y2ggYXMgaHlwZXJsaW5rcyBvciByYW5nZSBzZWxlY3Rpb25zLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2lubGluZVxuICovXG5jb25zdCBpbmxpbmUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2lubGluZScsXG4gICAgb3B0aW9ucyxcbiAgICBhc3luYyBmbihzdGF0ZSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIGVsZW1lbnRzLFxuICAgICAgICByZWN0cyxcbiAgICAgICAgcGxhdGZvcm0sXG4gICAgICAgIHN0cmF0ZWd5XG4gICAgICB9ID0gc3RhdGU7XG4gICAgICAvLyBBIE1vdXNlRXZlbnQncyBjbGllbnR7WCxZfSBjb29yZHMgY2FuIGJlIHVwIHRvIDIgcGl4ZWxzIG9mZiBhXG4gICAgICAvLyBDbGllbnRSZWN0J3MgYm91bmRzLCBkZXNwaXRlIHRoZSBldmVudCBsaXN0ZW5lciBiZWluZyB0cmlnZ2VyZWQuIEFcbiAgICAgIC8vIHBhZGRpbmcgb2YgMiBzZWVtcyB0byBoYW5kbGUgdGhpcyBpc3N1ZS5cbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcGFkZGluZyA9IDIsXG4gICAgICAgIHgsXG4gICAgICAgIHlcbiAgICAgIH0gPSBldmFsdWF0ZShvcHRpb25zLCBzdGF0ZSk7XG4gICAgICBjb25zdCBuYXRpdmVDbGllbnRSZWN0cyA9IEFycmF5LmZyb20oKGF3YWl0IChwbGF0Zm9ybS5nZXRDbGllbnRSZWN0cyA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uZ2V0Q2xpZW50UmVjdHMoZWxlbWVudHMucmVmZXJlbmNlKSkpIHx8IFtdKTtcbiAgICAgIGNvbnN0IGNsaWVudFJlY3RzID0gZ2V0UmVjdHNCeUxpbmUobmF0aXZlQ2xpZW50UmVjdHMpO1xuICAgICAgY29uc3QgZmFsbGJhY2sgPSByZWN0VG9DbGllbnRSZWN0KGdldEJvdW5kaW5nUmVjdChuYXRpdmVDbGllbnRSZWN0cykpO1xuICAgICAgY29uc3QgcGFkZGluZ09iamVjdCA9IGdldFBhZGRpbmdPYmplY3QocGFkZGluZyk7XG4gICAgICBmdW5jdGlvbiBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSB7XG4gICAgICAgIC8vIFRoZXJlIGFyZSB0d28gcmVjdHMgYW5kIHRoZXkgYXJlIGRpc2pvaW5lZC5cbiAgICAgICAgaWYgKGNsaWVudFJlY3RzLmxlbmd0aCA9PT0gMiAmJiBjbGllbnRSZWN0c1swXS5sZWZ0ID4gY2xpZW50UmVjdHNbMV0ucmlnaHQgJiYgeCAhPSBudWxsICYmIHkgIT0gbnVsbCkge1xuICAgICAgICAgIC8vIEZpbmQgdGhlIGZpcnN0IHJlY3QgaW4gd2hpY2ggdGhlIHBvaW50IGlzIGZ1bGx5IGluc2lkZS5cbiAgICAgICAgICByZXR1cm4gY2xpZW50UmVjdHMuZmluZChyZWN0ID0+IHggPiByZWN0LmxlZnQgLSBwYWRkaW5nT2JqZWN0LmxlZnQgJiYgeCA8IHJlY3QucmlnaHQgKyBwYWRkaW5nT2JqZWN0LnJpZ2h0ICYmIHkgPiByZWN0LnRvcCAtIHBhZGRpbmdPYmplY3QudG9wICYmIHkgPCByZWN0LmJvdHRvbSArIHBhZGRpbmdPYmplY3QuYm90dG9tKSB8fCBmYWxsYmFjaztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZXJlIGFyZSAyIG9yIG1vcmUgY29ubmVjdGVkIHJlY3RzLlxuICAgICAgICBpZiAoY2xpZW50UmVjdHMubGVuZ3RoID49IDIpIHtcbiAgICAgICAgICBpZiAoZ2V0U2lkZUF4aXMocGxhY2VtZW50KSA9PT0gJ3knKSB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdFJlY3QgPSBjbGllbnRSZWN0c1swXTtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RSZWN0ID0gY2xpZW50UmVjdHNbY2xpZW50UmVjdHMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBjb25zdCBpc1RvcCA9IGdldFNpZGUocGxhY2VtZW50KSA9PT0gJ3RvcCc7XG4gICAgICAgICAgICBjb25zdCB0b3AgPSBmaXJzdFJlY3QudG9wO1xuICAgICAgICAgICAgY29uc3QgYm90dG9tID0gbGFzdFJlY3QuYm90dG9tO1xuICAgICAgICAgICAgY29uc3QgbGVmdCA9IGlzVG9wID8gZmlyc3RSZWN0LmxlZnQgOiBsYXN0UmVjdC5sZWZ0O1xuICAgICAgICAgICAgY29uc3QgcmlnaHQgPSBpc1RvcCA/IGZpcnN0UmVjdC5yaWdodCA6IGxhc3RSZWN0LnJpZ2h0O1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSByaWdodCAtIGxlZnQ7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBib3R0b20gLSB0b3A7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0b3AsXG4gICAgICAgICAgICAgIGJvdHRvbSxcbiAgICAgICAgICAgICAgbGVmdCxcbiAgICAgICAgICAgICAgcmlnaHQsXG4gICAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICAgIHg6IGxlZnQsXG4gICAgICAgICAgICAgIHk6IHRvcFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgaXNMZWZ0U2lkZSA9IGdldFNpZGUocGxhY2VtZW50KSA9PT0gJ2xlZnQnO1xuICAgICAgICAgIGNvbnN0IG1heFJpZ2h0ID0gbWF4KC4uLmNsaWVudFJlY3RzLm1hcChyZWN0ID0+IHJlY3QucmlnaHQpKTtcbiAgICAgICAgICBjb25zdCBtaW5MZWZ0ID0gbWluKC4uLmNsaWVudFJlY3RzLm1hcChyZWN0ID0+IHJlY3QubGVmdCkpO1xuICAgICAgICAgIGNvbnN0IG1lYXN1cmVSZWN0cyA9IGNsaWVudFJlY3RzLmZpbHRlcihyZWN0ID0+IGlzTGVmdFNpZGUgPyByZWN0LmxlZnQgPT09IG1pbkxlZnQgOiByZWN0LnJpZ2h0ID09PSBtYXhSaWdodCk7XG4gICAgICAgICAgY29uc3QgdG9wID0gbWVhc3VyZVJlY3RzWzBdLnRvcDtcbiAgICAgICAgICBjb25zdCBib3R0b20gPSBtZWFzdXJlUmVjdHNbbWVhc3VyZVJlY3RzLmxlbmd0aCAtIDFdLmJvdHRvbTtcbiAgICAgICAgICBjb25zdCBsZWZ0ID0gbWluTGVmdDtcbiAgICAgICAgICBjb25zdCByaWdodCA9IG1heFJpZ2h0O1xuICAgICAgICAgIGNvbnN0IHdpZHRoID0gcmlnaHQgLSBsZWZ0O1xuICAgICAgICAgIGNvbnN0IGhlaWdodCA9IGJvdHRvbSAtIHRvcDtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdG9wLFxuICAgICAgICAgICAgYm90dG9tLFxuICAgICAgICAgICAgbGVmdCxcbiAgICAgICAgICAgIHJpZ2h0LFxuICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICB4OiBsZWZ0LFxuICAgICAgICAgICAgeTogdG9wXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsbGJhY2s7XG4gICAgICB9XG4gICAgICBjb25zdCByZXNldFJlY3RzID0gYXdhaXQgcGxhdGZvcm0uZ2V0RWxlbWVudFJlY3RzKHtcbiAgICAgICAgcmVmZXJlbmNlOiB7XG4gICAgICAgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0XG4gICAgICAgIH0sXG4gICAgICAgIGZsb2F0aW5nOiBlbGVtZW50cy5mbG9hdGluZyxcbiAgICAgICAgc3RyYXRlZ3lcbiAgICAgIH0pO1xuICAgICAgaWYgKHJlY3RzLnJlZmVyZW5jZS54ICE9PSByZXNldFJlY3RzLnJlZmVyZW5jZS54IHx8IHJlY3RzLnJlZmVyZW5jZS55ICE9PSByZXNldFJlY3RzLnJlZmVyZW5jZS55IHx8IHJlY3RzLnJlZmVyZW5jZS53aWR0aCAhPT0gcmVzZXRSZWN0cy5yZWZlcmVuY2Uud2lkdGggfHwgcmVjdHMucmVmZXJlbmNlLmhlaWdodCAhPT0gcmVzZXRSZWN0cy5yZWZlcmVuY2UuaGVpZ2h0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgIHJlY3RzOiByZXNldFJlY3RzXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfTtcbn07XG5cbi8vIEZvciB0eXBlIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LCB0aGUgYE9mZnNldE9wdGlvbnNgIHR5cGUgd2FzIGFsc29cbi8vIERlcml2YWJsZS5cblxuYXN5bmMgZnVuY3Rpb24gY29udmVydFZhbHVlVG9Db29yZHMoc3RhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3Qge1xuICAgIHBsYWNlbWVudCxcbiAgICBwbGF0Zm9ybSxcbiAgICBlbGVtZW50c1xuICB9ID0gc3RhdGU7XG4gIGNvbnN0IHJ0bCA9IGF3YWl0IChwbGF0Zm9ybS5pc1JUTCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNSVEwoZWxlbWVudHMuZmxvYXRpbmcpKTtcbiAgY29uc3Qgc2lkZSA9IGdldFNpZGUocGxhY2VtZW50KTtcbiAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCk7XG4gIGNvbnN0IGlzVmVydGljYWwgPSBnZXRTaWRlQXhpcyhwbGFjZW1lbnQpID09PSAneSc7XG4gIGNvbnN0IG1haW5BeGlzTXVsdGkgPSBbJ2xlZnQnLCAndG9wJ10uaW5jbHVkZXMoc2lkZSkgPyAtMSA6IDE7XG4gIGNvbnN0IGNyb3NzQXhpc011bHRpID0gcnRsICYmIGlzVmVydGljYWwgPyAtMSA6IDE7XG4gIGNvbnN0IHJhd1ZhbHVlID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgbGV0IHtcbiAgICBtYWluQXhpcyxcbiAgICBjcm9zc0F4aXMsXG4gICAgYWxpZ25tZW50QXhpc1xuICB9ID0gdHlwZW9mIHJhd1ZhbHVlID09PSAnbnVtYmVyJyA/IHtcbiAgICBtYWluQXhpczogcmF3VmFsdWUsXG4gICAgY3Jvc3NBeGlzOiAwLFxuICAgIGFsaWdubWVudEF4aXM6IG51bGxcbiAgfSA6IHtcbiAgICBtYWluQXhpczogMCxcbiAgICBjcm9zc0F4aXM6IDAsXG4gICAgYWxpZ25tZW50QXhpczogbnVsbCxcbiAgICAuLi5yYXdWYWx1ZVxuICB9O1xuICBpZiAoYWxpZ25tZW50ICYmIHR5cGVvZiBhbGlnbm1lbnRBeGlzID09PSAnbnVtYmVyJykge1xuICAgIGNyb3NzQXhpcyA9IGFsaWdubWVudCA9PT0gJ2VuZCcgPyBhbGlnbm1lbnRBeGlzICogLTEgOiBhbGlnbm1lbnRBeGlzO1xuICB9XG4gIHJldHVybiBpc1ZlcnRpY2FsID8ge1xuICAgIHg6IGNyb3NzQXhpcyAqIGNyb3NzQXhpc011bHRpLFxuICAgIHk6IG1haW5BeGlzICogbWFpbkF4aXNNdWx0aVxuICB9IDoge1xuICAgIHg6IG1haW5BeGlzICogbWFpbkF4aXNNdWx0aSxcbiAgICB5OiBjcm9zc0F4aXMgKiBjcm9zc0F4aXNNdWx0aVxuICB9O1xufVxuXG4vKipcbiAqIE1vZGlmaWVzIHRoZSBwbGFjZW1lbnQgYnkgdHJhbnNsYXRpbmcgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYWxvbmcgdGhlXG4gKiBzcGVjaWZpZWQgYXhlcy5cbiAqIEEgbnVtYmVyIChzaG9ydGhhbmQgZm9yIGBtYWluQXhpc2Agb3IgZGlzdGFuY2UpLCBvciBhbiBheGVzIGNvbmZpZ3VyYXRpb25cbiAqIG9iamVjdCBtYXkgYmUgcGFzc2VkLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL29mZnNldFxuICovXG5jb25zdCBvZmZzZXQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IDA7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnb2Zmc2V0JyxcbiAgICBvcHRpb25zLFxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgICB2YXIgX21pZGRsZXdhcmVEYXRhJG9mZnNlLCBfbWlkZGxld2FyZURhdGEkYXJyb3c7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHgsXG4gICAgICAgIHksXG4gICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgbWlkZGxld2FyZURhdGFcbiAgICAgIH0gPSBzdGF0ZTtcbiAgICAgIGNvbnN0IGRpZmZDb29yZHMgPSBhd2FpdCBjb252ZXJ0VmFsdWVUb0Nvb3JkcyhzdGF0ZSwgb3B0aW9ucyk7XG5cbiAgICAgIC8vIElmIHRoZSBwbGFjZW1lbnQgaXMgdGhlIHNhbWUgYW5kIHRoZSBhcnJvdyBjYXVzZWQgYW4gYWxpZ25tZW50IG9mZnNldFxuICAgICAgLy8gdGhlbiB3ZSBkb24ndCBuZWVkIHRvIGNoYW5nZSB0aGUgcG9zaXRpb25pbmcgY29vcmRpbmF0ZXMuXG4gICAgICBpZiAocGxhY2VtZW50ID09PSAoKF9taWRkbGV3YXJlRGF0YSRvZmZzZSA9IG1pZGRsZXdhcmVEYXRhLm9mZnNldCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9taWRkbGV3YXJlRGF0YSRvZmZzZS5wbGFjZW1lbnQpICYmIChfbWlkZGxld2FyZURhdGEkYXJyb3cgPSBtaWRkbGV3YXJlRGF0YS5hcnJvdykgIT0gbnVsbCAmJiBfbWlkZGxld2FyZURhdGEkYXJyb3cuYWxpZ25tZW50T2Zmc2V0KSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHg6IHggKyBkaWZmQ29vcmRzLngsXG4gICAgICAgIHk6IHkgKyBkaWZmQ29vcmRzLnksXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAuLi5kaWZmQ29vcmRzLFxuICAgICAgICAgIHBsYWNlbWVudFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IHNoaWZ0aW5nIGl0IGluIG9yZGVyIHRvXG4gKiBrZWVwIGl0IGluIHZpZXcgd2hlbiBpdCB3aWxsIG92ZXJmbG93IHRoZSBjbGlwcGluZyBib3VuZGFyeS5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9zaGlmdFxuICovXG5jb25zdCBzaGlmdCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnc2hpZnQnLFxuICAgIG9wdGlvbnMsXG4gICAgYXN5bmMgZm4oc3RhdGUpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgeCxcbiAgICAgICAgeSxcbiAgICAgICAgcGxhY2VtZW50XG4gICAgICB9ID0gc3RhdGU7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG1haW5BeGlzOiBjaGVja01haW5BeGlzID0gdHJ1ZSxcbiAgICAgICAgY3Jvc3NBeGlzOiBjaGVja0Nyb3NzQXhpcyA9IGZhbHNlLFxuICAgICAgICBsaW1pdGVyID0ge1xuICAgICAgICAgIGZuOiBfcmVmID0+IHtcbiAgICAgICAgICAgIGxldCB7XG4gICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgIHlcbiAgICAgICAgICAgIH0gPSBfcmVmO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgeVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgICAgIGNvbnN0IGNvb3JkcyA9IHtcbiAgICAgICAgeCxcbiAgICAgICAgeVxuICAgICAgfTtcbiAgICAgIGNvbnN0IG92ZXJmbG93ID0gYXdhaXQgZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIGRldGVjdE92ZXJmbG93T3B0aW9ucyk7XG4gICAgICBjb25zdCBjcm9zc0F4aXMgPSBnZXRTaWRlQXhpcyhnZXRTaWRlKHBsYWNlbWVudCkpO1xuICAgICAgY29uc3QgbWFpbkF4aXMgPSBnZXRPcHBvc2l0ZUF4aXMoY3Jvc3NBeGlzKTtcbiAgICAgIGxldCBtYWluQXhpc0Nvb3JkID0gY29vcmRzW21haW5BeGlzXTtcbiAgICAgIGxldCBjcm9zc0F4aXNDb29yZCA9IGNvb3Jkc1tjcm9zc0F4aXNdO1xuICAgICAgaWYgKGNoZWNrTWFpbkF4aXMpIHtcbiAgICAgICAgY29uc3QgbWluU2lkZSA9IG1haW5BeGlzID09PSAneScgPyAndG9wJyA6ICdsZWZ0JztcbiAgICAgICAgY29uc3QgbWF4U2lkZSA9IG1haW5BeGlzID09PSAneScgPyAnYm90dG9tJyA6ICdyaWdodCc7XG4gICAgICAgIGNvbnN0IG1pbiA9IG1haW5BeGlzQ29vcmQgKyBvdmVyZmxvd1ttaW5TaWRlXTtcbiAgICAgICAgY29uc3QgbWF4ID0gbWFpbkF4aXNDb29yZCAtIG92ZXJmbG93W21heFNpZGVdO1xuICAgICAgICBtYWluQXhpc0Nvb3JkID0gY2xhbXAobWluLCBtYWluQXhpc0Nvb3JkLCBtYXgpO1xuICAgICAgfVxuICAgICAgaWYgKGNoZWNrQ3Jvc3NBeGlzKSB7XG4gICAgICAgIGNvbnN0IG1pblNpZGUgPSBjcm9zc0F4aXMgPT09ICd5JyA/ICd0b3AnIDogJ2xlZnQnO1xuICAgICAgICBjb25zdCBtYXhTaWRlID0gY3Jvc3NBeGlzID09PSAneScgPyAnYm90dG9tJyA6ICdyaWdodCc7XG4gICAgICAgIGNvbnN0IG1pbiA9IGNyb3NzQXhpc0Nvb3JkICsgb3ZlcmZsb3dbbWluU2lkZV07XG4gICAgICAgIGNvbnN0IG1heCA9IGNyb3NzQXhpc0Nvb3JkIC0gb3ZlcmZsb3dbbWF4U2lkZV07XG4gICAgICAgIGNyb3NzQXhpc0Nvb3JkID0gY2xhbXAobWluLCBjcm9zc0F4aXNDb29yZCwgbWF4KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGxpbWl0ZWRDb29yZHMgPSBsaW1pdGVyLmZuKHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIFttYWluQXhpc106IG1haW5BeGlzQ29vcmQsXG4gICAgICAgIFtjcm9zc0F4aXNdOiBjcm9zc0F4aXNDb29yZFxuICAgICAgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5saW1pdGVkQ29vcmRzLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgeDogbGltaXRlZENvb3Jkcy54IC0geCxcbiAgICAgICAgICB5OiBsaW1pdGVkQ29vcmRzLnkgLSB5XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9O1xufTtcbi8qKlxuICogQnVpbHQtaW4gYGxpbWl0ZXJgIHRoYXQgd2lsbCBzdG9wIGBzaGlmdCgpYCBhdCBhIGNlcnRhaW4gcG9pbnQuXG4gKi9cbmNvbnN0IGxpbWl0U2hpZnQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgb3B0aW9ucyxcbiAgICBmbihzdGF0ZSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICB4LFxuICAgICAgICB5LFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHJlY3RzLFxuICAgICAgICBtaWRkbGV3YXJlRGF0YVxuICAgICAgfSA9IHN0YXRlO1xuICAgICAgY29uc3Qge1xuICAgICAgICBvZmZzZXQgPSAwLFxuICAgICAgICBtYWluQXhpczogY2hlY2tNYWluQXhpcyA9IHRydWUsXG4gICAgICAgIGNyb3NzQXhpczogY2hlY2tDcm9zc0F4aXMgPSB0cnVlXG4gICAgICB9ID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpO1xuICAgICAgY29uc3QgY29vcmRzID0ge1xuICAgICAgICB4LFxuICAgICAgICB5XG4gICAgICB9O1xuICAgICAgY29uc3QgY3Jvc3NBeGlzID0gZ2V0U2lkZUF4aXMocGxhY2VtZW50KTtcbiAgICAgIGNvbnN0IG1haW5BeGlzID0gZ2V0T3Bwb3NpdGVBeGlzKGNyb3NzQXhpcyk7XG4gICAgICBsZXQgbWFpbkF4aXNDb29yZCA9IGNvb3Jkc1ttYWluQXhpc107XG4gICAgICBsZXQgY3Jvc3NBeGlzQ29vcmQgPSBjb29yZHNbY3Jvc3NBeGlzXTtcbiAgICAgIGNvbnN0IHJhd09mZnNldCA9IGV2YWx1YXRlKG9mZnNldCwgc3RhdGUpO1xuICAgICAgY29uc3QgY29tcHV0ZWRPZmZzZXQgPSB0eXBlb2YgcmF3T2Zmc2V0ID09PSAnbnVtYmVyJyA/IHtcbiAgICAgICAgbWFpbkF4aXM6IHJhd09mZnNldCxcbiAgICAgICAgY3Jvc3NBeGlzOiAwXG4gICAgICB9IDoge1xuICAgICAgICBtYWluQXhpczogMCxcbiAgICAgICAgY3Jvc3NBeGlzOiAwLFxuICAgICAgICAuLi5yYXdPZmZzZXRcbiAgICAgIH07XG4gICAgICBpZiAoY2hlY2tNYWluQXhpcykge1xuICAgICAgICBjb25zdCBsZW4gPSBtYWluQXhpcyA9PT0gJ3knID8gJ2hlaWdodCcgOiAnd2lkdGgnO1xuICAgICAgICBjb25zdCBsaW1pdE1pbiA9IHJlY3RzLnJlZmVyZW5jZVttYWluQXhpc10gLSByZWN0cy5mbG9hdGluZ1tsZW5dICsgY29tcHV0ZWRPZmZzZXQubWFpbkF4aXM7XG4gICAgICAgIGNvbnN0IGxpbWl0TWF4ID0gcmVjdHMucmVmZXJlbmNlW21haW5BeGlzXSArIHJlY3RzLnJlZmVyZW5jZVtsZW5dIC0gY29tcHV0ZWRPZmZzZXQubWFpbkF4aXM7XG4gICAgICAgIGlmIChtYWluQXhpc0Nvb3JkIDwgbGltaXRNaW4pIHtcbiAgICAgICAgICBtYWluQXhpc0Nvb3JkID0gbGltaXRNaW47XG4gICAgICAgIH0gZWxzZSBpZiAobWFpbkF4aXNDb29yZCA+IGxpbWl0TWF4KSB7XG4gICAgICAgICAgbWFpbkF4aXNDb29yZCA9IGxpbWl0TWF4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY2hlY2tDcm9zc0F4aXMpIHtcbiAgICAgICAgdmFyIF9taWRkbGV3YXJlRGF0YSRvZmZzZSwgX21pZGRsZXdhcmVEYXRhJG9mZnNlMjtcbiAgICAgICAgY29uc3QgbGVuID0gbWFpbkF4aXMgPT09ICd5JyA/ICd3aWR0aCcgOiAnaGVpZ2h0JztcbiAgICAgICAgY29uc3QgaXNPcmlnaW5TaWRlID0gWyd0b3AnLCAnbGVmdCddLmluY2x1ZGVzKGdldFNpZGUocGxhY2VtZW50KSk7XG4gICAgICAgIGNvbnN0IGxpbWl0TWluID0gcmVjdHMucmVmZXJlbmNlW2Nyb3NzQXhpc10gLSByZWN0cy5mbG9hdGluZ1tsZW5dICsgKGlzT3JpZ2luU2lkZSA/ICgoX21pZGRsZXdhcmVEYXRhJG9mZnNlID0gbWlkZGxld2FyZURhdGEub2Zmc2V0KSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJG9mZnNlW2Nyb3NzQXhpc10pIHx8IDAgOiAwKSArIChpc09yaWdpblNpZGUgPyAwIDogY29tcHV0ZWRPZmZzZXQuY3Jvc3NBeGlzKTtcbiAgICAgICAgY29uc3QgbGltaXRNYXggPSByZWN0cy5yZWZlcmVuY2VbY3Jvc3NBeGlzXSArIHJlY3RzLnJlZmVyZW5jZVtsZW5dICsgKGlzT3JpZ2luU2lkZSA/IDAgOiAoKF9taWRkbGV3YXJlRGF0YSRvZmZzZTIgPSBtaWRkbGV3YXJlRGF0YS5vZmZzZXQpID09IG51bGwgPyB2b2lkIDAgOiBfbWlkZGxld2FyZURhdGEkb2Zmc2UyW2Nyb3NzQXhpc10pIHx8IDApIC0gKGlzT3JpZ2luU2lkZSA/IGNvbXB1dGVkT2Zmc2V0LmNyb3NzQXhpcyA6IDApO1xuICAgICAgICBpZiAoY3Jvc3NBeGlzQ29vcmQgPCBsaW1pdE1pbikge1xuICAgICAgICAgIGNyb3NzQXhpc0Nvb3JkID0gbGltaXRNaW47XG4gICAgICAgIH0gZWxzZSBpZiAoY3Jvc3NBeGlzQ29vcmQgPiBsaW1pdE1heCkge1xuICAgICAgICAgIGNyb3NzQXhpc0Nvb3JkID0gbGltaXRNYXg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIFttYWluQXhpc106IG1haW5BeGlzQ29vcmQsXG4gICAgICAgIFtjcm9zc0F4aXNdOiBjcm9zc0F4aXNDb29yZFxuICAgICAgfTtcbiAgICB9XG4gIH07XG59O1xuXG4vKipcbiAqIFByb3ZpZGVzIGRhdGEgdGhhdCBhbGxvd3MgeW91IHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCDigJRcbiAqIGZvciBpbnN0YW5jZSwgcHJldmVudCBpdCBmcm9tIG92ZXJmbG93aW5nIHRoZSBjbGlwcGluZyBib3VuZGFyeSBvciBtYXRjaCB0aGVcbiAqIHdpZHRoIG9mIHRoZSByZWZlcmVuY2UgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9zaXplXG4gKi9cbmNvbnN0IHNpemUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3NpemUnLFxuICAgIG9wdGlvbnMsXG4gICAgYXN5bmMgZm4oc3RhdGUpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICByZWN0cyxcbiAgICAgICAgcGxhdGZvcm0sXG4gICAgICAgIGVsZW1lbnRzXG4gICAgICB9ID0gc3RhdGU7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGFwcGx5ID0gKCkgPT4ge30sXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgICAgIGNvbnN0IG92ZXJmbG93ID0gYXdhaXQgZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIGRldGVjdE92ZXJmbG93T3B0aW9ucyk7XG4gICAgICBjb25zdCBzaWRlID0gZ2V0U2lkZShwbGFjZW1lbnQpO1xuICAgICAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCk7XG4gICAgICBjb25zdCBpc1lBeGlzID0gZ2V0U2lkZUF4aXMocGxhY2VtZW50KSA9PT0gJ3knO1xuICAgICAgY29uc3Qge1xuICAgICAgICB3aWR0aCxcbiAgICAgICAgaGVpZ2h0XG4gICAgICB9ID0gcmVjdHMuZmxvYXRpbmc7XG4gICAgICBsZXQgaGVpZ2h0U2lkZTtcbiAgICAgIGxldCB3aWR0aFNpZGU7XG4gICAgICBpZiAoc2lkZSA9PT0gJ3RvcCcgfHwgc2lkZSA9PT0gJ2JvdHRvbScpIHtcbiAgICAgICAgaGVpZ2h0U2lkZSA9IHNpZGU7XG4gICAgICAgIHdpZHRoU2lkZSA9IGFsaWdubWVudCA9PT0gKChhd2FpdCAocGxhdGZvcm0uaXNSVEwgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmlzUlRMKGVsZW1lbnRzLmZsb2F0aW5nKSkpID8gJ3N0YXJ0JyA6ICdlbmQnKSA/ICdsZWZ0JyA6ICdyaWdodCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aWR0aFNpZGUgPSBzaWRlO1xuICAgICAgICBoZWlnaHRTaWRlID0gYWxpZ25tZW50ID09PSAnZW5kJyA/ICd0b3AnIDogJ2JvdHRvbSc7XG4gICAgICB9XG4gICAgICBjb25zdCBtYXhpbXVtQ2xpcHBpbmdIZWlnaHQgPSBoZWlnaHQgLSBvdmVyZmxvdy50b3AgLSBvdmVyZmxvdy5ib3R0b207XG4gICAgICBjb25zdCBtYXhpbXVtQ2xpcHBpbmdXaWR0aCA9IHdpZHRoIC0gb3ZlcmZsb3cubGVmdCAtIG92ZXJmbG93LnJpZ2h0O1xuICAgICAgY29uc3Qgb3ZlcmZsb3dBdmFpbGFibGVIZWlnaHQgPSBtaW4oaGVpZ2h0IC0gb3ZlcmZsb3dbaGVpZ2h0U2lkZV0sIG1heGltdW1DbGlwcGluZ0hlaWdodCk7XG4gICAgICBjb25zdCBvdmVyZmxvd0F2YWlsYWJsZVdpZHRoID0gbWluKHdpZHRoIC0gb3ZlcmZsb3dbd2lkdGhTaWRlXSwgbWF4aW11bUNsaXBwaW5nV2lkdGgpO1xuICAgICAgY29uc3Qgbm9TaGlmdCA9ICFzdGF0ZS5taWRkbGV3YXJlRGF0YS5zaGlmdDtcbiAgICAgIGxldCBhdmFpbGFibGVIZWlnaHQgPSBvdmVyZmxvd0F2YWlsYWJsZUhlaWdodDtcbiAgICAgIGxldCBhdmFpbGFibGVXaWR0aCA9IG92ZXJmbG93QXZhaWxhYmxlV2lkdGg7XG4gICAgICBpZiAoaXNZQXhpcykge1xuICAgICAgICBhdmFpbGFibGVXaWR0aCA9IGFsaWdubWVudCB8fCBub1NoaWZ0ID8gbWluKG92ZXJmbG93QXZhaWxhYmxlV2lkdGgsIG1heGltdW1DbGlwcGluZ1dpZHRoKSA6IG1heGltdW1DbGlwcGluZ1dpZHRoO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXZhaWxhYmxlSGVpZ2h0ID0gYWxpZ25tZW50IHx8IG5vU2hpZnQgPyBtaW4ob3ZlcmZsb3dBdmFpbGFibGVIZWlnaHQsIG1heGltdW1DbGlwcGluZ0hlaWdodCkgOiBtYXhpbXVtQ2xpcHBpbmdIZWlnaHQ7XG4gICAgICB9XG4gICAgICBpZiAobm9TaGlmdCAmJiAhYWxpZ25tZW50KSB7XG4gICAgICAgIGNvbnN0IHhNaW4gPSBtYXgob3ZlcmZsb3cubGVmdCwgMCk7XG4gICAgICAgIGNvbnN0IHhNYXggPSBtYXgob3ZlcmZsb3cucmlnaHQsIDApO1xuICAgICAgICBjb25zdCB5TWluID0gbWF4KG92ZXJmbG93LnRvcCwgMCk7XG4gICAgICAgIGNvbnN0IHlNYXggPSBtYXgob3ZlcmZsb3cuYm90dG9tLCAwKTtcbiAgICAgICAgaWYgKGlzWUF4aXMpIHtcbiAgICAgICAgICBhdmFpbGFibGVXaWR0aCA9IHdpZHRoIC0gMiAqICh4TWluICE9PSAwIHx8IHhNYXggIT09IDAgPyB4TWluICsgeE1heCA6IG1heChvdmVyZmxvdy5sZWZ0LCBvdmVyZmxvdy5yaWdodCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF2YWlsYWJsZUhlaWdodCA9IGhlaWdodCAtIDIgKiAoeU1pbiAhPT0gMCB8fCB5TWF4ICE9PSAwID8geU1pbiArIHlNYXggOiBtYXgob3ZlcmZsb3cudG9wLCBvdmVyZmxvdy5ib3R0b20pKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYXdhaXQgYXBwbHkoe1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgYXZhaWxhYmxlV2lkdGgsXG4gICAgICAgIGF2YWlsYWJsZUhlaWdodFxuICAgICAgfSk7XG4gICAgICBjb25zdCBuZXh0RGltZW5zaW9ucyA9IGF3YWl0IHBsYXRmb3JtLmdldERpbWVuc2lvbnMoZWxlbWVudHMuZmxvYXRpbmcpO1xuICAgICAgaWYgKHdpZHRoICE9PSBuZXh0RGltZW5zaW9ucy53aWR0aCB8fCBoZWlnaHQgIT09IG5leHREaW1lbnNpb25zLmhlaWdodCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlc2V0OiB7XG4gICAgICAgICAgICByZWN0czogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgeyBhcnJvdywgYXV0b1BsYWNlbWVudCwgY29tcHV0ZVBvc2l0aW9uLCBkZXRlY3RPdmVyZmxvdywgZmxpcCwgaGlkZSwgaW5saW5lLCBsaW1pdFNoaWZ0LCBvZmZzZXQsIHNoaWZ0LCBzaXplIH07XG4iLCJmdW5jdGlvbiBoYXNXaW5kb3coKSB7XG4gIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJztcbn1cbmZ1bmN0aW9uIGdldE5vZGVOYW1lKG5vZGUpIHtcbiAgaWYgKGlzTm9kZShub2RlKSkge1xuICAgIHJldHVybiAobm9kZS5ub2RlTmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKTtcbiAgfVxuICAvLyBNb2NrZWQgbm9kZXMgaW4gdGVzdGluZyBlbnZpcm9ubWVudHMgbWF5IG5vdCBiZSBpbnN0YW5jZXMgb2YgTm9kZS4gQnlcbiAgLy8gcmV0dXJuaW5nIGAjZG9jdW1lbnRgIGFuIGluZmluaXRlIGxvb3Agd29uJ3Qgb2NjdXIuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mbG9hdGluZy11aS9mbG9hdGluZy11aS9pc3N1ZXMvMjMxN1xuICByZXR1cm4gJyNkb2N1bWVudCc7XG59XG5mdW5jdGlvbiBnZXRXaW5kb3cobm9kZSkge1xuICB2YXIgX25vZGUkb3duZXJEb2N1bWVudDtcbiAgcmV0dXJuIChub2RlID09IG51bGwgfHwgKF9ub2RlJG93bmVyRG9jdW1lbnQgPSBub2RlLm93bmVyRG9jdW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfbm9kZSRvd25lckRvY3VtZW50LmRlZmF1bHRWaWV3KSB8fCB3aW5kb3c7XG59XG5mdW5jdGlvbiBnZXREb2N1bWVudEVsZW1lbnQobm9kZSkge1xuICB2YXIgX3JlZjtcbiAgcmV0dXJuIChfcmVmID0gKGlzTm9kZShub2RlKSA/IG5vZGUub3duZXJEb2N1bWVudCA6IG5vZGUuZG9jdW1lbnQpIHx8IHdpbmRvdy5kb2N1bWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZWYuZG9jdW1lbnRFbGVtZW50O1xufVxuZnVuY3Rpb24gaXNOb2RlKHZhbHVlKSB7XG4gIGlmICghaGFzV2luZG93KCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgTm9kZSB8fCB2YWx1ZSBpbnN0YW5jZW9mIGdldFdpbmRvdyh2YWx1ZSkuTm9kZTtcbn1cbmZ1bmN0aW9uIGlzRWxlbWVudCh2YWx1ZSkge1xuICBpZiAoIWhhc1dpbmRvdygpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIEVsZW1lbnQgfHwgdmFsdWUgaW5zdGFuY2VvZiBnZXRXaW5kb3codmFsdWUpLkVsZW1lbnQ7XG59XG5mdW5jdGlvbiBpc0hUTUxFbGVtZW50KHZhbHVlKSB7XG4gIGlmICghaGFzV2luZG93KCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgfHwgdmFsdWUgaW5zdGFuY2VvZiBnZXRXaW5kb3codmFsdWUpLkhUTUxFbGVtZW50O1xufVxuZnVuY3Rpb24gaXNTaGFkb3dSb290KHZhbHVlKSB7XG4gIGlmICghaGFzV2luZG93KCkgfHwgdHlwZW9mIFNoYWRvd1Jvb3QgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QgfHwgdmFsdWUgaW5zdGFuY2VvZiBnZXRXaW5kb3codmFsdWUpLlNoYWRvd1Jvb3Q7XG59XG5mdW5jdGlvbiBpc092ZXJmbG93RWxlbWVudChlbGVtZW50KSB7XG4gIGNvbnN0IHtcbiAgICBvdmVyZmxvdyxcbiAgICBvdmVyZmxvd1gsXG4gICAgb3ZlcmZsb3dZLFxuICAgIGRpc3BsYXlcbiAgfSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gIHJldHVybiAvYXV0b3xzY3JvbGx8b3ZlcmxheXxoaWRkZW58Y2xpcC8udGVzdChvdmVyZmxvdyArIG92ZXJmbG93WSArIG92ZXJmbG93WCkgJiYgIVsnaW5saW5lJywgJ2NvbnRlbnRzJ10uaW5jbHVkZXMoZGlzcGxheSk7XG59XG5mdW5jdGlvbiBpc1RhYmxlRWxlbWVudChlbGVtZW50KSB7XG4gIHJldHVybiBbJ3RhYmxlJywgJ3RkJywgJ3RoJ10uaW5jbHVkZXMoZ2V0Tm9kZU5hbWUoZWxlbWVudCkpO1xufVxuZnVuY3Rpb24gaXNUb3BMYXllcihlbGVtZW50KSB7XG4gIHJldHVybiBbJzpwb3BvdmVyLW9wZW4nLCAnOm1vZGFsJ10uc29tZShzZWxlY3RvciA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBlbGVtZW50Lm1hdGNoZXMoc2VsZWN0b3IpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0pO1xufVxuZnVuY3Rpb24gaXNDb250YWluaW5nQmxvY2soZWxlbWVudE9yQ3NzKSB7XG4gIGNvbnN0IHdlYmtpdCA9IGlzV2ViS2l0KCk7XG4gIGNvbnN0IGNzcyA9IGlzRWxlbWVudChlbGVtZW50T3JDc3MpID8gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50T3JDc3MpIDogZWxlbWVudE9yQ3NzO1xuXG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Db250YWluaW5nX2Jsb2NrI2lkZW50aWZ5aW5nX3RoZV9jb250YWluaW5nX2Jsb2NrXG4gIHJldHVybiBjc3MudHJhbnNmb3JtICE9PSAnbm9uZScgfHwgY3NzLnBlcnNwZWN0aXZlICE9PSAnbm9uZScgfHwgKGNzcy5jb250YWluZXJUeXBlID8gY3NzLmNvbnRhaW5lclR5cGUgIT09ICdub3JtYWwnIDogZmFsc2UpIHx8ICF3ZWJraXQgJiYgKGNzcy5iYWNrZHJvcEZpbHRlciA/IGNzcy5iYWNrZHJvcEZpbHRlciAhPT0gJ25vbmUnIDogZmFsc2UpIHx8ICF3ZWJraXQgJiYgKGNzcy5maWx0ZXIgPyBjc3MuZmlsdGVyICE9PSAnbm9uZScgOiBmYWxzZSkgfHwgWyd0cmFuc2Zvcm0nLCAncGVyc3BlY3RpdmUnLCAnZmlsdGVyJ10uc29tZSh2YWx1ZSA9PiAoY3NzLndpbGxDaGFuZ2UgfHwgJycpLmluY2x1ZGVzKHZhbHVlKSkgfHwgWydwYWludCcsICdsYXlvdXQnLCAnc3RyaWN0JywgJ2NvbnRlbnQnXS5zb21lKHZhbHVlID0+IChjc3MuY29udGFpbiB8fCAnJykuaW5jbHVkZXModmFsdWUpKTtcbn1cbmZ1bmN0aW9uIGdldENvbnRhaW5pbmdCbG9jayhlbGVtZW50KSB7XG4gIGxldCBjdXJyZW50Tm9kZSA9IGdldFBhcmVudE5vZGUoZWxlbWVudCk7XG4gIHdoaWxlIChpc0hUTUxFbGVtZW50KGN1cnJlbnROb2RlKSAmJiAhaXNMYXN0VHJhdmVyc2FibGVOb2RlKGN1cnJlbnROb2RlKSkge1xuICAgIGlmIChpc0NvbnRhaW5pbmdCbG9jayhjdXJyZW50Tm9kZSkpIHtcbiAgICAgIHJldHVybiBjdXJyZW50Tm9kZTtcbiAgICB9IGVsc2UgaWYgKGlzVG9wTGF5ZXIoY3VycmVudE5vZGUpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY3VycmVudE5vZGUgPSBnZXRQYXJlbnROb2RlKGN1cnJlbnROb2RlKTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cbmZ1bmN0aW9uIGlzV2ViS2l0KCkge1xuICBpZiAodHlwZW9mIENTUyA9PT0gJ3VuZGVmaW5lZCcgfHwgIUNTUy5zdXBwb3J0cykgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gQ1NTLnN1cHBvcnRzKCctd2Via2l0LWJhY2tkcm9wLWZpbHRlcicsICdub25lJyk7XG59XG5mdW5jdGlvbiBpc0xhc3RUcmF2ZXJzYWJsZU5vZGUobm9kZSkge1xuICByZXR1cm4gWydodG1sJywgJ2JvZHknLCAnI2RvY3VtZW50J10uaW5jbHVkZXMoZ2V0Tm9kZU5hbWUobm9kZSkpO1xufVxuZnVuY3Rpb24gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KSB7XG4gIHJldHVybiBnZXRXaW5kb3coZWxlbWVudCkuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbn1cbmZ1bmN0aW9uIGdldE5vZGVTY3JvbGwoZWxlbWVudCkge1xuICBpZiAoaXNFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjcm9sbExlZnQ6IGVsZW1lbnQuc2Nyb2xsTGVmdCxcbiAgICAgIHNjcm9sbFRvcDogZWxlbWVudC5zY3JvbGxUb3BcbiAgICB9O1xuICB9XG4gIHJldHVybiB7XG4gICAgc2Nyb2xsTGVmdDogZWxlbWVudC5zY3JvbGxYLFxuICAgIHNjcm9sbFRvcDogZWxlbWVudC5zY3JvbGxZXG4gIH07XG59XG5mdW5jdGlvbiBnZXRQYXJlbnROb2RlKG5vZGUpIHtcbiAgaWYgKGdldE5vZGVOYW1lKG5vZGUpID09PSAnaHRtbCcpIHtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuICBjb25zdCByZXN1bHQgPVxuICAvLyBTdGVwIGludG8gdGhlIHNoYWRvdyBET00gb2YgdGhlIHBhcmVudCBvZiBhIHNsb3R0ZWQgbm9kZS5cbiAgbm9kZS5hc3NpZ25lZFNsb3QgfHxcbiAgLy8gRE9NIEVsZW1lbnQgZGV0ZWN0ZWQuXG4gIG5vZGUucGFyZW50Tm9kZSB8fFxuICAvLyBTaGFkb3dSb290IGRldGVjdGVkLlxuICBpc1NoYWRvd1Jvb3Qobm9kZSkgJiYgbm9kZS5ob3N0IHx8XG4gIC8vIEZhbGxiYWNrLlxuICBnZXREb2N1bWVudEVsZW1lbnQobm9kZSk7XG4gIHJldHVybiBpc1NoYWRvd1Jvb3QocmVzdWx0KSA/IHJlc3VsdC5ob3N0IDogcmVzdWx0O1xufVxuZnVuY3Rpb24gZ2V0TmVhcmVzdE92ZXJmbG93QW5jZXN0b3Iobm9kZSkge1xuICBjb25zdCBwYXJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShub2RlKTtcbiAgaWYgKGlzTGFzdFRyYXZlcnNhYmxlTm9kZShwYXJlbnROb2RlKSkge1xuICAgIHJldHVybiBub2RlLm93bmVyRG9jdW1lbnQgPyBub2RlLm93bmVyRG9jdW1lbnQuYm9keSA6IG5vZGUuYm9keTtcbiAgfVxuICBpZiAoaXNIVE1MRWxlbWVudChwYXJlbnROb2RlKSAmJiBpc092ZXJmbG93RWxlbWVudChwYXJlbnROb2RlKSkge1xuICAgIHJldHVybiBwYXJlbnROb2RlO1xuICB9XG4gIHJldHVybiBnZXROZWFyZXN0T3ZlcmZsb3dBbmNlc3RvcihwYXJlbnROb2RlKTtcbn1cbmZ1bmN0aW9uIGdldE92ZXJmbG93QW5jZXN0b3JzKG5vZGUsIGxpc3QsIHRyYXZlcnNlSWZyYW1lcykge1xuICB2YXIgX25vZGUkb3duZXJEb2N1bWVudDI7XG4gIGlmIChsaXN0ID09PSB2b2lkIDApIHtcbiAgICBsaXN0ID0gW107XG4gIH1cbiAgaWYgKHRyYXZlcnNlSWZyYW1lcyA9PT0gdm9pZCAwKSB7XG4gICAgdHJhdmVyc2VJZnJhbWVzID0gdHJ1ZTtcbiAgfVxuICBjb25zdCBzY3JvbGxhYmxlQW5jZXN0b3IgPSBnZXROZWFyZXN0T3ZlcmZsb3dBbmNlc3Rvcihub2RlKTtcbiAgY29uc3QgaXNCb2R5ID0gc2Nyb2xsYWJsZUFuY2VzdG9yID09PSAoKF9ub2RlJG93bmVyRG9jdW1lbnQyID0gbm9kZS5vd25lckRvY3VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX25vZGUkb3duZXJEb2N1bWVudDIuYm9keSk7XG4gIGNvbnN0IHdpbiA9IGdldFdpbmRvdyhzY3JvbGxhYmxlQW5jZXN0b3IpO1xuICBpZiAoaXNCb2R5KSB7XG4gICAgY29uc3QgZnJhbWVFbGVtZW50ID0gZ2V0RnJhbWVFbGVtZW50KHdpbik7XG4gICAgcmV0dXJuIGxpc3QuY29uY2F0KHdpbiwgd2luLnZpc3VhbFZpZXdwb3J0IHx8IFtdLCBpc092ZXJmbG93RWxlbWVudChzY3JvbGxhYmxlQW5jZXN0b3IpID8gc2Nyb2xsYWJsZUFuY2VzdG9yIDogW10sIGZyYW1lRWxlbWVudCAmJiB0cmF2ZXJzZUlmcmFtZXMgPyBnZXRPdmVyZmxvd0FuY2VzdG9ycyhmcmFtZUVsZW1lbnQpIDogW10pO1xuICB9XG4gIHJldHVybiBsaXN0LmNvbmNhdChzY3JvbGxhYmxlQW5jZXN0b3IsIGdldE92ZXJmbG93QW5jZXN0b3JzKHNjcm9sbGFibGVBbmNlc3RvciwgW10sIHRyYXZlcnNlSWZyYW1lcykpO1xufVxuZnVuY3Rpb24gZ2V0RnJhbWVFbGVtZW50KHdpbikge1xuICByZXR1cm4gd2luLnBhcmVudCAmJiBPYmplY3QuZ2V0UHJvdG90eXBlT2Yod2luLnBhcmVudCkgPyB3aW4uZnJhbWVFbGVtZW50IDogbnVsbDtcbn1cblxuZXhwb3J0IHsgZ2V0Q29tcHV0ZWRTdHlsZSwgZ2V0Q29udGFpbmluZ0Jsb2NrLCBnZXREb2N1bWVudEVsZW1lbnQsIGdldEZyYW1lRWxlbWVudCwgZ2V0TmVhcmVzdE92ZXJmbG93QW5jZXN0b3IsIGdldE5vZGVOYW1lLCBnZXROb2RlU2Nyb2xsLCBnZXRPdmVyZmxvd0FuY2VzdG9ycywgZ2V0UGFyZW50Tm9kZSwgZ2V0V2luZG93LCBpc0NvbnRhaW5pbmdCbG9jaywgaXNFbGVtZW50LCBpc0hUTUxFbGVtZW50LCBpc0xhc3RUcmF2ZXJzYWJsZU5vZGUsIGlzTm9kZSwgaXNPdmVyZmxvd0VsZW1lbnQsIGlzU2hhZG93Um9vdCwgaXNUYWJsZUVsZW1lbnQsIGlzVG9wTGF5ZXIsIGlzV2ViS2l0IH07XG4iLCJpbXBvcnQgeyByZWN0VG9DbGllbnRSZWN0LCBkZXRlY3RPdmVyZmxvdyBhcyBkZXRlY3RPdmVyZmxvdyQxLCBvZmZzZXQgYXMgb2Zmc2V0JDEsIGF1dG9QbGFjZW1lbnQgYXMgYXV0b1BsYWNlbWVudCQxLCBzaGlmdCBhcyBzaGlmdCQxLCBmbGlwIGFzIGZsaXAkMSwgc2l6ZSBhcyBzaXplJDEsIGhpZGUgYXMgaGlkZSQxLCBhcnJvdyBhcyBhcnJvdyQxLCBpbmxpbmUgYXMgaW5saW5lJDEsIGxpbWl0U2hpZnQgYXMgbGltaXRTaGlmdCQxLCBjb21wdXRlUG9zaXRpb24gYXMgY29tcHV0ZVBvc2l0aW9uJDEgfSBmcm9tICdAZmxvYXRpbmctdWkvY29yZSc7XG5pbXBvcnQgeyByb3VuZCwgY3JlYXRlQ29vcmRzLCBtYXgsIG1pbiwgZmxvb3IgfSBmcm9tICdAZmxvYXRpbmctdWkvdXRpbHMnO1xuaW1wb3J0IHsgZ2V0Q29tcHV0ZWRTdHlsZSwgaXNIVE1MRWxlbWVudCwgaXNFbGVtZW50LCBnZXRXaW5kb3csIGlzV2ViS2l0LCBnZXRGcmFtZUVsZW1lbnQsIGdldE5vZGVTY3JvbGwsIGdldERvY3VtZW50RWxlbWVudCwgaXNUb3BMYXllciwgZ2V0Tm9kZU5hbWUsIGlzT3ZlcmZsb3dFbGVtZW50LCBnZXRPdmVyZmxvd0FuY2VzdG9ycywgZ2V0UGFyZW50Tm9kZSwgaXNMYXN0VHJhdmVyc2FibGVOb2RlLCBpc0NvbnRhaW5pbmdCbG9jaywgaXNUYWJsZUVsZW1lbnQsIGdldENvbnRhaW5pbmdCbG9jayB9IGZyb20gJ0BmbG9hdGluZy11aS91dGlscy9kb20nO1xuZXhwb3J0IHsgZ2V0T3ZlcmZsb3dBbmNlc3RvcnMgfSBmcm9tICdAZmxvYXRpbmctdWkvdXRpbHMvZG9tJztcblxuZnVuY3Rpb24gZ2V0Q3NzRGltZW5zaW9ucyhlbGVtZW50KSB7XG4gIGNvbnN0IGNzcyA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gIC8vIEluIHRlc3RpbmcgZW52aXJvbm1lbnRzLCB0aGUgYHdpZHRoYCBhbmQgYGhlaWdodGAgcHJvcGVydGllcyBhcmUgZW1wdHlcbiAgLy8gc3RyaW5ncyBmb3IgU1ZHIGVsZW1lbnRzLCByZXR1cm5pbmcgTmFOLiBGYWxsYmFjayB0byBgMGAgaW4gdGhpcyBjYXNlLlxuICBsZXQgd2lkdGggPSBwYXJzZUZsb2F0KGNzcy53aWR0aCkgfHwgMDtcbiAgbGV0IGhlaWdodCA9IHBhcnNlRmxvYXQoY3NzLmhlaWdodCkgfHwgMDtcbiAgY29uc3QgaGFzT2Zmc2V0ID0gaXNIVE1MRWxlbWVudChlbGVtZW50KTtcbiAgY29uc3Qgb2Zmc2V0V2lkdGggPSBoYXNPZmZzZXQgPyBlbGVtZW50Lm9mZnNldFdpZHRoIDogd2lkdGg7XG4gIGNvbnN0IG9mZnNldEhlaWdodCA9IGhhc09mZnNldCA/IGVsZW1lbnQub2Zmc2V0SGVpZ2h0IDogaGVpZ2h0O1xuICBjb25zdCBzaG91bGRGYWxsYmFjayA9IHJvdW5kKHdpZHRoKSAhPT0gb2Zmc2V0V2lkdGggfHwgcm91bmQoaGVpZ2h0KSAhPT0gb2Zmc2V0SGVpZ2h0O1xuICBpZiAoc2hvdWxkRmFsbGJhY2spIHtcbiAgICB3aWR0aCA9IG9mZnNldFdpZHRoO1xuICAgIGhlaWdodCA9IG9mZnNldEhlaWdodDtcbiAgfVxuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICAkOiBzaG91bGRGYWxsYmFja1xuICB9O1xufVxuXG5mdW5jdGlvbiB1bndyYXBFbGVtZW50KGVsZW1lbnQpIHtcbiAgcmV0dXJuICFpc0VsZW1lbnQoZWxlbWVudCkgPyBlbGVtZW50LmNvbnRleHRFbGVtZW50IDogZWxlbWVudDtcbn1cblxuZnVuY3Rpb24gZ2V0U2NhbGUoZWxlbWVudCkge1xuICBjb25zdCBkb21FbGVtZW50ID0gdW53cmFwRWxlbWVudChlbGVtZW50KTtcbiAgaWYgKCFpc0hUTUxFbGVtZW50KGRvbUVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUNvb3JkcygxKTtcbiAgfVxuICBjb25zdCByZWN0ID0gZG9tRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgY29uc3Qge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICAkXG4gIH0gPSBnZXRDc3NEaW1lbnNpb25zKGRvbUVsZW1lbnQpO1xuICBsZXQgeCA9ICgkID8gcm91bmQocmVjdC53aWR0aCkgOiByZWN0LndpZHRoKSAvIHdpZHRoO1xuICBsZXQgeSA9ICgkID8gcm91bmQocmVjdC5oZWlnaHQpIDogcmVjdC5oZWlnaHQpIC8gaGVpZ2h0O1xuXG4gIC8vIDAsIE5hTiwgb3IgSW5maW5pdHkgc2hvdWxkIGFsd2F5cyBmYWxsYmFjayB0byAxLlxuXG4gIGlmICgheCB8fCAhTnVtYmVyLmlzRmluaXRlKHgpKSB7XG4gICAgeCA9IDE7XG4gIH1cbiAgaWYgKCF5IHx8ICFOdW1iZXIuaXNGaW5pdGUoeSkpIHtcbiAgICB5ID0gMTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHgsXG4gICAgeVxuICB9O1xufVxuXG5jb25zdCBub09mZnNldHMgPSAvKiNfX1BVUkVfXyovY3JlYXRlQ29vcmRzKDApO1xuZnVuY3Rpb24gZ2V0VmlzdWFsT2Zmc2V0cyhlbGVtZW50KSB7XG4gIGNvbnN0IHdpbiA9IGdldFdpbmRvdyhlbGVtZW50KTtcbiAgaWYgKCFpc1dlYktpdCgpIHx8ICF3aW4udmlzdWFsVmlld3BvcnQpIHtcbiAgICByZXR1cm4gbm9PZmZzZXRzO1xuICB9XG4gIHJldHVybiB7XG4gICAgeDogd2luLnZpc3VhbFZpZXdwb3J0Lm9mZnNldExlZnQsXG4gICAgeTogd2luLnZpc3VhbFZpZXdwb3J0Lm9mZnNldFRvcFxuICB9O1xufVxuZnVuY3Rpb24gc2hvdWxkQWRkVmlzdWFsT2Zmc2V0cyhlbGVtZW50LCBpc0ZpeGVkLCBmbG9hdGluZ09mZnNldFBhcmVudCkge1xuICBpZiAoaXNGaXhlZCA9PT0gdm9pZCAwKSB7XG4gICAgaXNGaXhlZCA9IGZhbHNlO1xuICB9XG4gIGlmICghZmxvYXRpbmdPZmZzZXRQYXJlbnQgfHwgaXNGaXhlZCAmJiBmbG9hdGluZ09mZnNldFBhcmVudCAhPT0gZ2V0V2luZG93KGVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBpc0ZpeGVkO1xufVxuXG5mdW5jdGlvbiBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgaW5jbHVkZVNjYWxlLCBpc0ZpeGVkU3RyYXRlZ3ksIG9mZnNldFBhcmVudCkge1xuICBpZiAoaW5jbHVkZVNjYWxlID09PSB2b2lkIDApIHtcbiAgICBpbmNsdWRlU2NhbGUgPSBmYWxzZTtcbiAgfVxuICBpZiAoaXNGaXhlZFN0cmF0ZWd5ID09PSB2b2lkIDApIHtcbiAgICBpc0ZpeGVkU3RyYXRlZ3kgPSBmYWxzZTtcbiAgfVxuICBjb25zdCBjbGllbnRSZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgY29uc3QgZG9tRWxlbWVudCA9IHVud3JhcEVsZW1lbnQoZWxlbWVudCk7XG4gIGxldCBzY2FsZSA9IGNyZWF0ZUNvb3JkcygxKTtcbiAgaWYgKGluY2x1ZGVTY2FsZSkge1xuICAgIGlmIChvZmZzZXRQYXJlbnQpIHtcbiAgICAgIGlmIChpc0VsZW1lbnQob2Zmc2V0UGFyZW50KSkge1xuICAgICAgICBzY2FsZSA9IGdldFNjYWxlKG9mZnNldFBhcmVudCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNjYWxlID0gZ2V0U2NhbGUoZWxlbWVudCk7XG4gICAgfVxuICB9XG4gIGNvbnN0IHZpc3VhbE9mZnNldHMgPSBzaG91bGRBZGRWaXN1YWxPZmZzZXRzKGRvbUVsZW1lbnQsIGlzRml4ZWRTdHJhdGVneSwgb2Zmc2V0UGFyZW50KSA/IGdldFZpc3VhbE9mZnNldHMoZG9tRWxlbWVudCkgOiBjcmVhdGVDb29yZHMoMCk7XG4gIGxldCB4ID0gKGNsaWVudFJlY3QubGVmdCArIHZpc3VhbE9mZnNldHMueCkgLyBzY2FsZS54O1xuICBsZXQgeSA9IChjbGllbnRSZWN0LnRvcCArIHZpc3VhbE9mZnNldHMueSkgLyBzY2FsZS55O1xuICBsZXQgd2lkdGggPSBjbGllbnRSZWN0LndpZHRoIC8gc2NhbGUueDtcbiAgbGV0IGhlaWdodCA9IGNsaWVudFJlY3QuaGVpZ2h0IC8gc2NhbGUueTtcbiAgaWYgKGRvbUVsZW1lbnQpIHtcbiAgICBjb25zdCB3aW4gPSBnZXRXaW5kb3coZG9tRWxlbWVudCk7XG4gICAgY29uc3Qgb2Zmc2V0V2luID0gb2Zmc2V0UGFyZW50ICYmIGlzRWxlbWVudChvZmZzZXRQYXJlbnQpID8gZ2V0V2luZG93KG9mZnNldFBhcmVudCkgOiBvZmZzZXRQYXJlbnQ7XG4gICAgbGV0IGN1cnJlbnRXaW4gPSB3aW47XG4gICAgbGV0IGN1cnJlbnRJRnJhbWUgPSBnZXRGcmFtZUVsZW1lbnQoY3VycmVudFdpbik7XG4gICAgd2hpbGUgKGN1cnJlbnRJRnJhbWUgJiYgb2Zmc2V0UGFyZW50ICYmIG9mZnNldFdpbiAhPT0gY3VycmVudFdpbikge1xuICAgICAgY29uc3QgaWZyYW1lU2NhbGUgPSBnZXRTY2FsZShjdXJyZW50SUZyYW1lKTtcbiAgICAgIGNvbnN0IGlmcmFtZVJlY3QgPSBjdXJyZW50SUZyYW1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgY3NzID0gZ2V0Q29tcHV0ZWRTdHlsZShjdXJyZW50SUZyYW1lKTtcbiAgICAgIGNvbnN0IGxlZnQgPSBpZnJhbWVSZWN0LmxlZnQgKyAoY3VycmVudElGcmFtZS5jbGllbnRMZWZ0ICsgcGFyc2VGbG9hdChjc3MucGFkZGluZ0xlZnQpKSAqIGlmcmFtZVNjYWxlLng7XG4gICAgICBjb25zdCB0b3AgPSBpZnJhbWVSZWN0LnRvcCArIChjdXJyZW50SUZyYW1lLmNsaWVudFRvcCArIHBhcnNlRmxvYXQoY3NzLnBhZGRpbmdUb3ApKSAqIGlmcmFtZVNjYWxlLnk7XG4gICAgICB4ICo9IGlmcmFtZVNjYWxlLng7XG4gICAgICB5ICo9IGlmcmFtZVNjYWxlLnk7XG4gICAgICB3aWR0aCAqPSBpZnJhbWVTY2FsZS54O1xuICAgICAgaGVpZ2h0ICo9IGlmcmFtZVNjYWxlLnk7XG4gICAgICB4ICs9IGxlZnQ7XG4gICAgICB5ICs9IHRvcDtcbiAgICAgIGN1cnJlbnRXaW4gPSBnZXRXaW5kb3coY3VycmVudElGcmFtZSk7XG4gICAgICBjdXJyZW50SUZyYW1lID0gZ2V0RnJhbWVFbGVtZW50KGN1cnJlbnRXaW4pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVjdFRvQ2xpZW50UmVjdCh7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0LFxuICAgIHgsXG4gICAgeVxuICB9KTtcbn1cblxuLy8gSWYgPGh0bWw+IGhhcyBhIENTUyB3aWR0aCBncmVhdGVyIHRoYW4gdGhlIHZpZXdwb3J0LCB0aGVuIHRoaXMgd2lsbCBiZVxuLy8gaW5jb3JyZWN0IGZvciBSVEwuXG5mdW5jdGlvbiBnZXRXaW5kb3dTY3JvbGxCYXJYKGVsZW1lbnQsIHJlY3QpIHtcbiAgY29uc3QgbGVmdFNjcm9sbCA9IGdldE5vZGVTY3JvbGwoZWxlbWVudCkuc2Nyb2xsTGVmdDtcbiAgaWYgKCFyZWN0KSB7XG4gICAgcmV0dXJuIGdldEJvdW5kaW5nQ2xpZW50UmVjdChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkpLmxlZnQgKyBsZWZ0U2Nyb2xsO1xuICB9XG4gIHJldHVybiByZWN0LmxlZnQgKyBsZWZ0U2Nyb2xsO1xufVxuXG5mdW5jdGlvbiBnZXRIVE1MT2Zmc2V0KGRvY3VtZW50RWxlbWVudCwgc2Nyb2xsLCBpZ25vcmVTY3JvbGxiYXJYKSB7XG4gIGlmIChpZ25vcmVTY3JvbGxiYXJYID09PSB2b2lkIDApIHtcbiAgICBpZ25vcmVTY3JvbGxiYXJYID0gZmFsc2U7XG4gIH1cbiAgY29uc3QgaHRtbFJlY3QgPSBkb2N1bWVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IHggPSBodG1sUmVjdC5sZWZ0ICsgc2Nyb2xsLnNjcm9sbExlZnQgLSAoaWdub3JlU2Nyb2xsYmFyWCA/IDAgOlxuICAvLyBSVEwgPGJvZHk+IHNjcm9sbGJhci5cbiAgZ2V0V2luZG93U2Nyb2xsQmFyWChkb2N1bWVudEVsZW1lbnQsIGh0bWxSZWN0KSk7XG4gIGNvbnN0IHkgPSBodG1sUmVjdC50b3AgKyBzY3JvbGwuc2Nyb2xsVG9wO1xuICByZXR1cm4ge1xuICAgIHgsXG4gICAgeVxuICB9O1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdChfcmVmKSB7XG4gIGxldCB7XG4gICAgZWxlbWVudHMsXG4gICAgcmVjdCxcbiAgICBvZmZzZXRQYXJlbnQsXG4gICAgc3RyYXRlZ3lcbiAgfSA9IF9yZWY7XG4gIGNvbnN0IGlzRml4ZWQgPSBzdHJhdGVneSA9PT0gJ2ZpeGVkJztcbiAgY29uc3QgZG9jdW1lbnRFbGVtZW50ID0gZ2V0RG9jdW1lbnRFbGVtZW50KG9mZnNldFBhcmVudCk7XG4gIGNvbnN0IHRvcExheWVyID0gZWxlbWVudHMgPyBpc1RvcExheWVyKGVsZW1lbnRzLmZsb2F0aW5nKSA6IGZhbHNlO1xuICBpZiAob2Zmc2V0UGFyZW50ID09PSBkb2N1bWVudEVsZW1lbnQgfHwgdG9wTGF5ZXIgJiYgaXNGaXhlZCkge1xuICAgIHJldHVybiByZWN0O1xuICB9XG4gIGxldCBzY3JvbGwgPSB7XG4gICAgc2Nyb2xsTGVmdDogMCxcbiAgICBzY3JvbGxUb3A6IDBcbiAgfTtcbiAgbGV0IHNjYWxlID0gY3JlYXRlQ29vcmRzKDEpO1xuICBjb25zdCBvZmZzZXRzID0gY3JlYXRlQ29vcmRzKDApO1xuICBjb25zdCBpc09mZnNldFBhcmVudEFuRWxlbWVudCA9IGlzSFRNTEVsZW1lbnQob2Zmc2V0UGFyZW50KTtcbiAgaWYgKGlzT2Zmc2V0UGFyZW50QW5FbGVtZW50IHx8ICFpc09mZnNldFBhcmVudEFuRWxlbWVudCAmJiAhaXNGaXhlZCkge1xuICAgIGlmIChnZXROb2RlTmFtZShvZmZzZXRQYXJlbnQpICE9PSAnYm9keScgfHwgaXNPdmVyZmxvd0VsZW1lbnQoZG9jdW1lbnRFbGVtZW50KSkge1xuICAgICAgc2Nyb2xsID0gZ2V0Tm9kZVNjcm9sbChvZmZzZXRQYXJlbnQpO1xuICAgIH1cbiAgICBpZiAoaXNIVE1MRWxlbWVudChvZmZzZXRQYXJlbnQpKSB7XG4gICAgICBjb25zdCBvZmZzZXRSZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KG9mZnNldFBhcmVudCk7XG4gICAgICBzY2FsZSA9IGdldFNjYWxlKG9mZnNldFBhcmVudCk7XG4gICAgICBvZmZzZXRzLnggPSBvZmZzZXRSZWN0LnggKyBvZmZzZXRQYXJlbnQuY2xpZW50TGVmdDtcbiAgICAgIG9mZnNldHMueSA9IG9mZnNldFJlY3QueSArIG9mZnNldFBhcmVudC5jbGllbnRUb3A7XG4gICAgfVxuICB9XG4gIGNvbnN0IGh0bWxPZmZzZXQgPSBkb2N1bWVudEVsZW1lbnQgJiYgIWlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ICYmICFpc0ZpeGVkID8gZ2V0SFRNTE9mZnNldChkb2N1bWVudEVsZW1lbnQsIHNjcm9sbCwgdHJ1ZSkgOiBjcmVhdGVDb29yZHMoMCk7XG4gIHJldHVybiB7XG4gICAgd2lkdGg6IHJlY3Qud2lkdGggKiBzY2FsZS54LFxuICAgIGhlaWdodDogcmVjdC5oZWlnaHQgKiBzY2FsZS55LFxuICAgIHg6IHJlY3QueCAqIHNjYWxlLnggLSBzY3JvbGwuc2Nyb2xsTGVmdCAqIHNjYWxlLnggKyBvZmZzZXRzLnggKyBodG1sT2Zmc2V0LngsXG4gICAgeTogcmVjdC55ICogc2NhbGUueSAtIHNjcm9sbC5zY3JvbGxUb3AgKiBzY2FsZS55ICsgb2Zmc2V0cy55ICsgaHRtbE9mZnNldC55XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldENsaWVudFJlY3RzKGVsZW1lbnQpIHtcbiAgcmV0dXJuIEFycmF5LmZyb20oZWxlbWVudC5nZXRDbGllbnRSZWN0cygpKTtcbn1cblxuLy8gR2V0cyB0aGUgZW50aXJlIHNpemUgb2YgdGhlIHNjcm9sbGFibGUgZG9jdW1lbnQgYXJlYSwgZXZlbiBleHRlbmRpbmcgb3V0c2lkZVxuLy8gb2YgdGhlIGA8aHRtbD5gIGFuZCBgPGJvZHk+YCByZWN0IGJvdW5kcyBpZiBob3Jpem9udGFsbHkgc2Nyb2xsYWJsZS5cbmZ1bmN0aW9uIGdldERvY3VtZW50UmVjdChlbGVtZW50KSB7XG4gIGNvbnN0IGh0bWwgPSBnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCk7XG4gIGNvbnN0IHNjcm9sbCA9IGdldE5vZGVTY3JvbGwoZWxlbWVudCk7XG4gIGNvbnN0IGJvZHkgPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQuYm9keTtcbiAgY29uc3Qgd2lkdGggPSBtYXgoaHRtbC5zY3JvbGxXaWR0aCwgaHRtbC5jbGllbnRXaWR0aCwgYm9keS5zY3JvbGxXaWR0aCwgYm9keS5jbGllbnRXaWR0aCk7XG4gIGNvbnN0IGhlaWdodCA9IG1heChodG1sLnNjcm9sbEhlaWdodCwgaHRtbC5jbGllbnRIZWlnaHQsIGJvZHkuc2Nyb2xsSGVpZ2h0LCBib2R5LmNsaWVudEhlaWdodCk7XG4gIGxldCB4ID0gLXNjcm9sbC5zY3JvbGxMZWZ0ICsgZ2V0V2luZG93U2Nyb2xsQmFyWChlbGVtZW50KTtcbiAgY29uc3QgeSA9IC1zY3JvbGwuc2Nyb2xsVG9wO1xuICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShib2R5KS5kaXJlY3Rpb24gPT09ICdydGwnKSB7XG4gICAgeCArPSBtYXgoaHRtbC5jbGllbnRXaWR0aCwgYm9keS5jbGllbnRXaWR0aCkgLSB3aWR0aDtcbiAgfVxuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0Vmlld3BvcnRSZWN0KGVsZW1lbnQsIHN0cmF0ZWd5KSB7XG4gIGNvbnN0IHdpbiA9IGdldFdpbmRvdyhlbGVtZW50KTtcbiAgY29uc3QgaHRtbCA9IGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KTtcbiAgY29uc3QgdmlzdWFsVmlld3BvcnQgPSB3aW4udmlzdWFsVmlld3BvcnQ7XG4gIGxldCB3aWR0aCA9IGh0bWwuY2xpZW50V2lkdGg7XG4gIGxldCBoZWlnaHQgPSBodG1sLmNsaWVudEhlaWdodDtcbiAgbGV0IHggPSAwO1xuICBsZXQgeSA9IDA7XG4gIGlmICh2aXN1YWxWaWV3cG9ydCkge1xuICAgIHdpZHRoID0gdmlzdWFsVmlld3BvcnQud2lkdGg7XG4gICAgaGVpZ2h0ID0gdmlzdWFsVmlld3BvcnQuaGVpZ2h0O1xuICAgIGNvbnN0IHZpc3VhbFZpZXdwb3J0QmFzZWQgPSBpc1dlYktpdCgpO1xuICAgIGlmICghdmlzdWFsVmlld3BvcnRCYXNlZCB8fCB2aXN1YWxWaWV3cG9ydEJhc2VkICYmIHN0cmF0ZWd5ID09PSAnZml4ZWQnKSB7XG4gICAgICB4ID0gdmlzdWFsVmlld3BvcnQub2Zmc2V0TGVmdDtcbiAgICAgIHkgPSB2aXN1YWxWaWV3cG9ydC5vZmZzZXRUb3A7XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0LFxuICAgIHgsXG4gICAgeVxuICB9O1xufVxuXG4vLyBSZXR1cm5zIHRoZSBpbm5lciBjbGllbnQgcmVjdCwgc3VidHJhY3Rpbmcgc2Nyb2xsYmFycyBpZiBwcmVzZW50LlxuZnVuY3Rpb24gZ2V0SW5uZXJCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgc3RyYXRlZ3kpIHtcbiAgY29uc3QgY2xpZW50UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50LCB0cnVlLCBzdHJhdGVneSA9PT0gJ2ZpeGVkJyk7XG4gIGNvbnN0IHRvcCA9IGNsaWVudFJlY3QudG9wICsgZWxlbWVudC5jbGllbnRUb3A7XG4gIGNvbnN0IGxlZnQgPSBjbGllbnRSZWN0LmxlZnQgKyBlbGVtZW50LmNsaWVudExlZnQ7XG4gIGNvbnN0IHNjYWxlID0gaXNIVE1MRWxlbWVudChlbGVtZW50KSA/IGdldFNjYWxlKGVsZW1lbnQpIDogY3JlYXRlQ29vcmRzKDEpO1xuICBjb25zdCB3aWR0aCA9IGVsZW1lbnQuY2xpZW50V2lkdGggKiBzY2FsZS54O1xuICBjb25zdCBoZWlnaHQgPSBlbGVtZW50LmNsaWVudEhlaWdodCAqIHNjYWxlLnk7XG4gIGNvbnN0IHggPSBsZWZ0ICogc2NhbGUueDtcbiAgY29uc3QgeSA9IHRvcCAqIHNjYWxlLnk7XG4gIHJldHVybiB7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0LFxuICAgIHgsXG4gICAgeVxuICB9O1xufVxuZnVuY3Rpb24gZ2V0Q2xpZW50UmVjdEZyb21DbGlwcGluZ0FuY2VzdG9yKGVsZW1lbnQsIGNsaXBwaW5nQW5jZXN0b3IsIHN0cmF0ZWd5KSB7XG4gIGxldCByZWN0O1xuICBpZiAoY2xpcHBpbmdBbmNlc3RvciA9PT0gJ3ZpZXdwb3J0Jykge1xuICAgIHJlY3QgPSBnZXRWaWV3cG9ydFJlY3QoZWxlbWVudCwgc3RyYXRlZ3kpO1xuICB9IGVsc2UgaWYgKGNsaXBwaW5nQW5jZXN0b3IgPT09ICdkb2N1bWVudCcpIHtcbiAgICByZWN0ID0gZ2V0RG9jdW1lbnRSZWN0KGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSk7XG4gIH0gZWxzZSBpZiAoaXNFbGVtZW50KGNsaXBwaW5nQW5jZXN0b3IpKSB7XG4gICAgcmVjdCA9IGdldElubmVyQm91bmRpbmdDbGllbnRSZWN0KGNsaXBwaW5nQW5jZXN0b3IsIHN0cmF0ZWd5KTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB2aXN1YWxPZmZzZXRzID0gZ2V0VmlzdWFsT2Zmc2V0cyhlbGVtZW50KTtcbiAgICByZWN0ID0ge1xuICAgICAgeDogY2xpcHBpbmdBbmNlc3Rvci54IC0gdmlzdWFsT2Zmc2V0cy54LFxuICAgICAgeTogY2xpcHBpbmdBbmNlc3Rvci55IC0gdmlzdWFsT2Zmc2V0cy55LFxuICAgICAgd2lkdGg6IGNsaXBwaW5nQW5jZXN0b3Iud2lkdGgsXG4gICAgICBoZWlnaHQ6IGNsaXBwaW5nQW5jZXN0b3IuaGVpZ2h0XG4gICAgfTtcbiAgfVxuICByZXR1cm4gcmVjdFRvQ2xpZW50UmVjdChyZWN0KTtcbn1cbmZ1bmN0aW9uIGhhc0ZpeGVkUG9zaXRpb25BbmNlc3RvcihlbGVtZW50LCBzdG9wTm9kZSkge1xuICBjb25zdCBwYXJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShlbGVtZW50KTtcbiAgaWYgKHBhcmVudE5vZGUgPT09IHN0b3BOb2RlIHx8ICFpc0VsZW1lbnQocGFyZW50Tm9kZSkgfHwgaXNMYXN0VHJhdmVyc2FibGVOb2RlKHBhcmVudE5vZGUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBnZXRDb21wdXRlZFN0eWxlKHBhcmVudE5vZGUpLnBvc2l0aW9uID09PSAnZml4ZWQnIHx8IGhhc0ZpeGVkUG9zaXRpb25BbmNlc3RvcihwYXJlbnROb2RlLCBzdG9wTm9kZSk7XG59XG5cbi8vIEEgXCJjbGlwcGluZyBhbmNlc3RvclwiIGlzIGFuIGBvdmVyZmxvd2AgZWxlbWVudCB3aXRoIHRoZSBjaGFyYWN0ZXJpc3RpYyBvZlxuLy8gY2xpcHBpbmcgKG9yIGhpZGluZykgY2hpbGQgZWxlbWVudHMuIFRoaXMgcmV0dXJucyBhbGwgY2xpcHBpbmcgYW5jZXN0b3JzXG4vLyBvZiB0aGUgZ2l2ZW4gZWxlbWVudCB1cCB0aGUgdHJlZS5cbmZ1bmN0aW9uIGdldENsaXBwaW5nRWxlbWVudEFuY2VzdG9ycyhlbGVtZW50LCBjYWNoZSkge1xuICBjb25zdCBjYWNoZWRSZXN1bHQgPSBjYWNoZS5nZXQoZWxlbWVudCk7XG4gIGlmIChjYWNoZWRSZXN1bHQpIHtcbiAgICByZXR1cm4gY2FjaGVkUmVzdWx0O1xuICB9XG4gIGxldCByZXN1bHQgPSBnZXRPdmVyZmxvd0FuY2VzdG9ycyhlbGVtZW50LCBbXSwgZmFsc2UpLmZpbHRlcihlbCA9PiBpc0VsZW1lbnQoZWwpICYmIGdldE5vZGVOYW1lKGVsKSAhPT0gJ2JvZHknKTtcbiAgbGV0IGN1cnJlbnRDb250YWluaW5nQmxvY2tDb21wdXRlZFN0eWxlID0gbnVsbDtcbiAgY29uc3QgZWxlbWVudElzRml4ZWQgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uID09PSAnZml4ZWQnO1xuICBsZXQgY3VycmVudE5vZGUgPSBlbGVtZW50SXNGaXhlZCA/IGdldFBhcmVudE5vZGUoZWxlbWVudCkgOiBlbGVtZW50O1xuXG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Db250YWluaW5nX2Jsb2NrI2lkZW50aWZ5aW5nX3RoZV9jb250YWluaW5nX2Jsb2NrXG4gIHdoaWxlIChpc0VsZW1lbnQoY3VycmVudE5vZGUpICYmICFpc0xhc3RUcmF2ZXJzYWJsZU5vZGUoY3VycmVudE5vZGUpKSB7XG4gICAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoY3VycmVudE5vZGUpO1xuICAgIGNvbnN0IGN1cnJlbnROb2RlSXNDb250YWluaW5nID0gaXNDb250YWluaW5nQmxvY2soY3VycmVudE5vZGUpO1xuICAgIGlmICghY3VycmVudE5vZGVJc0NvbnRhaW5pbmcgJiYgY29tcHV0ZWRTdHlsZS5wb3NpdGlvbiA9PT0gJ2ZpeGVkJykge1xuICAgICAgY3VycmVudENvbnRhaW5pbmdCbG9ja0NvbXB1dGVkU3R5bGUgPSBudWxsO1xuICAgIH1cbiAgICBjb25zdCBzaG91bGREcm9wQ3VycmVudE5vZGUgPSBlbGVtZW50SXNGaXhlZCA/ICFjdXJyZW50Tm9kZUlzQ29udGFpbmluZyAmJiAhY3VycmVudENvbnRhaW5pbmdCbG9ja0NvbXB1dGVkU3R5bGUgOiAhY3VycmVudE5vZGVJc0NvbnRhaW5pbmcgJiYgY29tcHV0ZWRTdHlsZS5wb3NpdGlvbiA9PT0gJ3N0YXRpYycgJiYgISFjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZSAmJiBbJ2Fic29sdXRlJywgJ2ZpeGVkJ10uaW5jbHVkZXMoY3VycmVudENvbnRhaW5pbmdCbG9ja0NvbXB1dGVkU3R5bGUucG9zaXRpb24pIHx8IGlzT3ZlcmZsb3dFbGVtZW50KGN1cnJlbnROb2RlKSAmJiAhY3VycmVudE5vZGVJc0NvbnRhaW5pbmcgJiYgaGFzRml4ZWRQb3NpdGlvbkFuY2VzdG9yKGVsZW1lbnQsIGN1cnJlbnROb2RlKTtcbiAgICBpZiAoc2hvdWxkRHJvcEN1cnJlbnROb2RlKSB7XG4gICAgICAvLyBEcm9wIG5vbi1jb250YWluaW5nIGJsb2Nrcy5cbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5maWx0ZXIoYW5jZXN0b3IgPT4gYW5jZXN0b3IgIT09IGN1cnJlbnROb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUmVjb3JkIGxhc3QgY29udGFpbmluZyBibG9jayBmb3IgbmV4dCBpdGVyYXRpb24uXG4gICAgICBjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZSA9IGNvbXB1dGVkU3R5bGU7XG4gICAgfVxuICAgIGN1cnJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShjdXJyZW50Tm9kZSk7XG4gIH1cbiAgY2FjaGUuc2V0KGVsZW1lbnQsIHJlc3VsdCk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8vIEdldHMgdGhlIG1heGltdW0gYXJlYSB0aGF0IHRoZSBlbGVtZW50IGlzIHZpc2libGUgaW4gZHVlIHRvIGFueSBudW1iZXIgb2Zcbi8vIGNsaXBwaW5nIGFuY2VzdG9ycy5cbmZ1bmN0aW9uIGdldENsaXBwaW5nUmVjdChfcmVmKSB7XG4gIGxldCB7XG4gICAgZWxlbWVudCxcbiAgICBib3VuZGFyeSxcbiAgICByb290Qm91bmRhcnksXG4gICAgc3RyYXRlZ3lcbiAgfSA9IF9yZWY7XG4gIGNvbnN0IGVsZW1lbnRDbGlwcGluZ0FuY2VzdG9ycyA9IGJvdW5kYXJ5ID09PSAnY2xpcHBpbmdBbmNlc3RvcnMnID8gaXNUb3BMYXllcihlbGVtZW50KSA/IFtdIDogZ2V0Q2xpcHBpbmdFbGVtZW50QW5jZXN0b3JzKGVsZW1lbnQsIHRoaXMuX2MpIDogW10uY29uY2F0KGJvdW5kYXJ5KTtcbiAgY29uc3QgY2xpcHBpbmdBbmNlc3RvcnMgPSBbLi4uZWxlbWVudENsaXBwaW5nQW5jZXN0b3JzLCByb290Qm91bmRhcnldO1xuICBjb25zdCBmaXJzdENsaXBwaW5nQW5jZXN0b3IgPSBjbGlwcGluZ0FuY2VzdG9yc1swXTtcbiAgY29uc3QgY2xpcHBpbmdSZWN0ID0gY2xpcHBpbmdBbmNlc3RvcnMucmVkdWNlKChhY2NSZWN0LCBjbGlwcGluZ0FuY2VzdG9yKSA9PiB7XG4gICAgY29uc3QgcmVjdCA9IGdldENsaWVudFJlY3RGcm9tQ2xpcHBpbmdBbmNlc3RvcihlbGVtZW50LCBjbGlwcGluZ0FuY2VzdG9yLCBzdHJhdGVneSk7XG4gICAgYWNjUmVjdC50b3AgPSBtYXgocmVjdC50b3AsIGFjY1JlY3QudG9wKTtcbiAgICBhY2NSZWN0LnJpZ2h0ID0gbWluKHJlY3QucmlnaHQsIGFjY1JlY3QucmlnaHQpO1xuICAgIGFjY1JlY3QuYm90dG9tID0gbWluKHJlY3QuYm90dG9tLCBhY2NSZWN0LmJvdHRvbSk7XG4gICAgYWNjUmVjdC5sZWZ0ID0gbWF4KHJlY3QubGVmdCwgYWNjUmVjdC5sZWZ0KTtcbiAgICByZXR1cm4gYWNjUmVjdDtcbiAgfSwgZ2V0Q2xpZW50UmVjdEZyb21DbGlwcGluZ0FuY2VzdG9yKGVsZW1lbnQsIGZpcnN0Q2xpcHBpbmdBbmNlc3Rvciwgc3RyYXRlZ3kpKTtcbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogY2xpcHBpbmdSZWN0LnJpZ2h0IC0gY2xpcHBpbmdSZWN0LmxlZnQsXG4gICAgaGVpZ2h0OiBjbGlwcGluZ1JlY3QuYm90dG9tIC0gY2xpcHBpbmdSZWN0LnRvcCxcbiAgICB4OiBjbGlwcGluZ1JlY3QubGVmdCxcbiAgICB5OiBjbGlwcGluZ1JlY3QudG9wXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldERpbWVuc2lvbnMoZWxlbWVudCkge1xuICBjb25zdCB7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0XG4gIH0gPSBnZXRDc3NEaW1lbnNpb25zKGVsZW1lbnQpO1xuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRSZWN0UmVsYXRpdmVUb09mZnNldFBhcmVudChlbGVtZW50LCBvZmZzZXRQYXJlbnQsIHN0cmF0ZWd5KSB7XG4gIGNvbnN0IGlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ID0gaXNIVE1MRWxlbWVudChvZmZzZXRQYXJlbnQpO1xuICBjb25zdCBkb2N1bWVudEVsZW1lbnQgPSBnZXREb2N1bWVudEVsZW1lbnQob2Zmc2V0UGFyZW50KTtcbiAgY29uc3QgaXNGaXhlZCA9IHN0cmF0ZWd5ID09PSAnZml4ZWQnO1xuICBjb25zdCByZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQsIHRydWUsIGlzRml4ZWQsIG9mZnNldFBhcmVudCk7XG4gIGxldCBzY3JvbGwgPSB7XG4gICAgc2Nyb2xsTGVmdDogMCxcbiAgICBzY3JvbGxUb3A6IDBcbiAgfTtcbiAgY29uc3Qgb2Zmc2V0cyA9IGNyZWF0ZUNvb3JkcygwKTtcbiAgaWYgKGlzT2Zmc2V0UGFyZW50QW5FbGVtZW50IHx8ICFpc09mZnNldFBhcmVudEFuRWxlbWVudCAmJiAhaXNGaXhlZCkge1xuICAgIGlmIChnZXROb2RlTmFtZShvZmZzZXRQYXJlbnQpICE9PSAnYm9keScgfHwgaXNPdmVyZmxvd0VsZW1lbnQoZG9jdW1lbnRFbGVtZW50KSkge1xuICAgICAgc2Nyb2xsID0gZ2V0Tm9kZVNjcm9sbChvZmZzZXRQYXJlbnQpO1xuICAgIH1cbiAgICBpZiAoaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IG9mZnNldFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3Qob2Zmc2V0UGFyZW50LCB0cnVlLCBpc0ZpeGVkLCBvZmZzZXRQYXJlbnQpO1xuICAgICAgb2Zmc2V0cy54ID0gb2Zmc2V0UmVjdC54ICsgb2Zmc2V0UGFyZW50LmNsaWVudExlZnQ7XG4gICAgICBvZmZzZXRzLnkgPSBvZmZzZXRSZWN0LnkgKyBvZmZzZXRQYXJlbnQuY2xpZW50VG9wO1xuICAgIH0gZWxzZSBpZiAoZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICAvLyBJZiB0aGUgPGJvZHk+IHNjcm9sbGJhciBhcHBlYXJzIG9uIHRoZSBsZWZ0IChlLmcuIFJUTCBzeXN0ZW1zKS4gVXNlXG4gICAgICAvLyBGaXJlZm94IHdpdGggbGF5b3V0LnNjcm9sbGJhci5zaWRlID0gMyBpbiBhYm91dDpjb25maWcgdG8gdGVzdCB0aGlzLlxuICAgICAgb2Zmc2V0cy54ID0gZ2V0V2luZG93U2Nyb2xsQmFyWChkb2N1bWVudEVsZW1lbnQpO1xuICAgIH1cbiAgfVxuICBjb25zdCBodG1sT2Zmc2V0ID0gZG9jdW1lbnRFbGVtZW50ICYmICFpc09mZnNldFBhcmVudEFuRWxlbWVudCAmJiAhaXNGaXhlZCA/IGdldEhUTUxPZmZzZXQoZG9jdW1lbnRFbGVtZW50LCBzY3JvbGwpIDogY3JlYXRlQ29vcmRzKDApO1xuICBjb25zdCB4ID0gcmVjdC5sZWZ0ICsgc2Nyb2xsLnNjcm9sbExlZnQgLSBvZmZzZXRzLnggLSBodG1sT2Zmc2V0Lng7XG4gIGNvbnN0IHkgPSByZWN0LnRvcCArIHNjcm9sbC5zY3JvbGxUb3AgLSBvZmZzZXRzLnkgLSBodG1sT2Zmc2V0Lnk7XG4gIHJldHVybiB7XG4gICAgeCxcbiAgICB5LFxuICAgIHdpZHRoOiByZWN0LndpZHRoLFxuICAgIGhlaWdodDogcmVjdC5oZWlnaHRcbiAgfTtcbn1cblxuZnVuY3Rpb24gaXNTdGF0aWNQb3NpdGlvbmVkKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkucG9zaXRpb24gPT09ICdzdGF0aWMnO1xufVxuXG5mdW5jdGlvbiBnZXRUcnVlT2Zmc2V0UGFyZW50KGVsZW1lbnQsIHBvbHlmaWxsKSB7XG4gIGlmICghaXNIVE1MRWxlbWVudChlbGVtZW50KSB8fCBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uID09PSAnZml4ZWQnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgaWYgKHBvbHlmaWxsKSB7XG4gICAgcmV0dXJuIHBvbHlmaWxsKGVsZW1lbnQpO1xuICB9XG4gIGxldCByYXdPZmZzZXRQYXJlbnQgPSBlbGVtZW50Lm9mZnNldFBhcmVudDtcblxuICAvLyBGaXJlZm94IHJldHVybnMgdGhlIDxodG1sPiBlbGVtZW50IGFzIHRoZSBvZmZzZXRQYXJlbnQgaWYgaXQncyBub24tc3RhdGljLFxuICAvLyB3aGlsZSBDaHJvbWUgYW5kIFNhZmFyaSByZXR1cm4gdGhlIDxib2R5PiBlbGVtZW50LiBUaGUgPGJvZHk+IGVsZW1lbnQgbXVzdFxuICAvLyBiZSB1c2VkIHRvIHBlcmZvcm0gdGhlIGNvcnJlY3QgY2FsY3VsYXRpb25zIGV2ZW4gaWYgdGhlIDxodG1sPiBlbGVtZW50IGlzXG4gIC8vIG5vbi1zdGF0aWMuXG4gIGlmIChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkgPT09IHJhd09mZnNldFBhcmVudCkge1xuICAgIHJhd09mZnNldFBhcmVudCA9IHJhd09mZnNldFBhcmVudC5vd25lckRvY3VtZW50LmJvZHk7XG4gIH1cbiAgcmV0dXJuIHJhd09mZnNldFBhcmVudDtcbn1cblxuLy8gR2V0cyB0aGUgY2xvc2VzdCBhbmNlc3RvciBwb3NpdGlvbmVkIGVsZW1lbnQuIEhhbmRsZXMgc29tZSBlZGdlIGNhc2VzLFxuLy8gc3VjaCBhcyB0YWJsZSBhbmNlc3RvcnMgYW5kIGNyb3NzIGJyb3dzZXIgYnVncy5cbmZ1bmN0aW9uIGdldE9mZnNldFBhcmVudChlbGVtZW50LCBwb2x5ZmlsbCkge1xuICBjb25zdCB3aW4gPSBnZXRXaW5kb3coZWxlbWVudCk7XG4gIGlmIChpc1RvcExheWVyKGVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIHdpbjtcbiAgfVxuICBpZiAoIWlzSFRNTEVsZW1lbnQoZWxlbWVudCkpIHtcbiAgICBsZXQgc3ZnT2Zmc2V0UGFyZW50ID0gZ2V0UGFyZW50Tm9kZShlbGVtZW50KTtcbiAgICB3aGlsZSAoc3ZnT2Zmc2V0UGFyZW50ICYmICFpc0xhc3RUcmF2ZXJzYWJsZU5vZGUoc3ZnT2Zmc2V0UGFyZW50KSkge1xuICAgICAgaWYgKGlzRWxlbWVudChzdmdPZmZzZXRQYXJlbnQpICYmICFpc1N0YXRpY1Bvc2l0aW9uZWQoc3ZnT2Zmc2V0UGFyZW50KSkge1xuICAgICAgICByZXR1cm4gc3ZnT2Zmc2V0UGFyZW50O1xuICAgICAgfVxuICAgICAgc3ZnT2Zmc2V0UGFyZW50ID0gZ2V0UGFyZW50Tm9kZShzdmdPZmZzZXRQYXJlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gd2luO1xuICB9XG4gIGxldCBvZmZzZXRQYXJlbnQgPSBnZXRUcnVlT2Zmc2V0UGFyZW50KGVsZW1lbnQsIHBvbHlmaWxsKTtcbiAgd2hpbGUgKG9mZnNldFBhcmVudCAmJiBpc1RhYmxlRWxlbWVudChvZmZzZXRQYXJlbnQpICYmIGlzU3RhdGljUG9zaXRpb25lZChvZmZzZXRQYXJlbnQpKSB7XG4gICAgb2Zmc2V0UGFyZW50ID0gZ2V0VHJ1ZU9mZnNldFBhcmVudChvZmZzZXRQYXJlbnQsIHBvbHlmaWxsKTtcbiAgfVxuICBpZiAob2Zmc2V0UGFyZW50ICYmIGlzTGFzdFRyYXZlcnNhYmxlTm9kZShvZmZzZXRQYXJlbnQpICYmIGlzU3RhdGljUG9zaXRpb25lZChvZmZzZXRQYXJlbnQpICYmICFpc0NvbnRhaW5pbmdCbG9jayhvZmZzZXRQYXJlbnQpKSB7XG4gICAgcmV0dXJuIHdpbjtcbiAgfVxuICByZXR1cm4gb2Zmc2V0UGFyZW50IHx8IGdldENvbnRhaW5pbmdCbG9jayhlbGVtZW50KSB8fCB3aW47XG59XG5cbmNvbnN0IGdldEVsZW1lbnRSZWN0cyA9IGFzeW5jIGZ1bmN0aW9uIChkYXRhKSB7XG4gIGNvbnN0IGdldE9mZnNldFBhcmVudEZuID0gdGhpcy5nZXRPZmZzZXRQYXJlbnQgfHwgZ2V0T2Zmc2V0UGFyZW50O1xuICBjb25zdCBnZXREaW1lbnNpb25zRm4gPSB0aGlzLmdldERpbWVuc2lvbnM7XG4gIGNvbnN0IGZsb2F0aW5nRGltZW5zaW9ucyA9IGF3YWl0IGdldERpbWVuc2lvbnNGbihkYXRhLmZsb2F0aW5nKTtcbiAgcmV0dXJuIHtcbiAgICByZWZlcmVuY2U6IGdldFJlY3RSZWxhdGl2ZVRvT2Zmc2V0UGFyZW50KGRhdGEucmVmZXJlbmNlLCBhd2FpdCBnZXRPZmZzZXRQYXJlbnRGbihkYXRhLmZsb2F0aW5nKSwgZGF0YS5zdHJhdGVneSksXG4gICAgZmxvYXRpbmc6IHtcbiAgICAgIHg6IDAsXG4gICAgICB5OiAwLFxuICAgICAgd2lkdGg6IGZsb2F0aW5nRGltZW5zaW9ucy53aWR0aCxcbiAgICAgIGhlaWdodDogZmxvYXRpbmdEaW1lbnNpb25zLmhlaWdodFxuICAgIH1cbiAgfTtcbn07XG5cbmZ1bmN0aW9uIGlzUlRMKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZGlyZWN0aW9uID09PSAncnRsJztcbn1cblxuY29uc3QgcGxhdGZvcm0gPSB7XG4gIGNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0LFxuICBnZXREb2N1bWVudEVsZW1lbnQsXG4gIGdldENsaXBwaW5nUmVjdCxcbiAgZ2V0T2Zmc2V0UGFyZW50LFxuICBnZXRFbGVtZW50UmVjdHMsXG4gIGdldENsaWVudFJlY3RzLFxuICBnZXREaW1lbnNpb25zLFxuICBnZXRTY2FsZSxcbiAgaXNFbGVtZW50LFxuICBpc1JUTFxufTtcblxuLy8gaHR0cHM6Ly9zYW10aG9yLmF1LzIwMjEvb2JzZXJ2aW5nLWRvbS9cbmZ1bmN0aW9uIG9ic2VydmVNb3ZlKGVsZW1lbnQsIG9uTW92ZSkge1xuICBsZXQgaW8gPSBudWxsO1xuICBsZXQgdGltZW91dElkO1xuICBjb25zdCByb290ID0gZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpO1xuICBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgIHZhciBfaW87XG4gICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgKF9pbyA9IGlvKSA9PSBudWxsIHx8IF9pby5kaXNjb25uZWN0KCk7XG4gICAgaW8gPSBudWxsO1xuICB9XG4gIGZ1bmN0aW9uIHJlZnJlc2goc2tpcCwgdGhyZXNob2xkKSB7XG4gICAgaWYgKHNraXAgPT09IHZvaWQgMCkge1xuICAgICAgc2tpcCA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAodGhyZXNob2xkID09PSB2b2lkIDApIHtcbiAgICAgIHRocmVzaG9sZCA9IDE7XG4gICAgfVxuICAgIGNsZWFudXAoKTtcbiAgICBjb25zdCB7XG4gICAgICBsZWZ0LFxuICAgICAgdG9wLFxuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHRcbiAgICB9ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBpZiAoIXNraXApIHtcbiAgICAgIG9uTW92ZSgpO1xuICAgIH1cbiAgICBpZiAoIXdpZHRoIHx8ICFoZWlnaHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaW5zZXRUb3AgPSBmbG9vcih0b3ApO1xuICAgIGNvbnN0IGluc2V0UmlnaHQgPSBmbG9vcihyb290LmNsaWVudFdpZHRoIC0gKGxlZnQgKyB3aWR0aCkpO1xuICAgIGNvbnN0IGluc2V0Qm90dG9tID0gZmxvb3Iocm9vdC5jbGllbnRIZWlnaHQgLSAodG9wICsgaGVpZ2h0KSk7XG4gICAgY29uc3QgaW5zZXRMZWZ0ID0gZmxvb3IobGVmdCk7XG4gICAgY29uc3Qgcm9vdE1hcmdpbiA9IC1pbnNldFRvcCArIFwicHggXCIgKyAtaW5zZXRSaWdodCArIFwicHggXCIgKyAtaW5zZXRCb3R0b20gKyBcInB4IFwiICsgLWluc2V0TGVmdCArIFwicHhcIjtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgcm9vdE1hcmdpbixcbiAgICAgIHRocmVzaG9sZDogbWF4KDAsIG1pbigxLCB0aHJlc2hvbGQpKSB8fCAxXG4gICAgfTtcbiAgICBsZXQgaXNGaXJzdFVwZGF0ZSA9IHRydWU7XG4gICAgZnVuY3Rpb24gaGFuZGxlT2JzZXJ2ZShlbnRyaWVzKSB7XG4gICAgICBjb25zdCByYXRpbyA9IGVudHJpZXNbMF0uaW50ZXJzZWN0aW9uUmF0aW87XG4gICAgICBpZiAocmF0aW8gIT09IHRocmVzaG9sZCkge1xuICAgICAgICBpZiAoIWlzRmlyc3RVcGRhdGUpIHtcbiAgICAgICAgICByZXR1cm4gcmVmcmVzaCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcmF0aW8pIHtcbiAgICAgICAgICAvLyBJZiB0aGUgcmVmZXJlbmNlIGlzIGNsaXBwZWQsIHRoZSByYXRpbyBpcyAwLiBUaHJvdHRsZSB0aGUgcmVmcmVzaFxuICAgICAgICAgIC8vIHRvIHByZXZlbnQgYW4gaW5maW5pdGUgbG9vcCBvZiB1cGRhdGVzLlxuICAgICAgICAgIHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgcmVmcmVzaChmYWxzZSwgMWUtNyk7XG4gICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVmcmVzaChmYWxzZSwgcmF0aW8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpc0ZpcnN0VXBkYXRlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gT2xkZXIgYnJvd3NlcnMgZG9uJ3Qgc3VwcG9ydCBhIGBkb2N1bWVudGAgYXMgdGhlIHJvb3QgYW5kIHdpbGwgdGhyb3cgYW5cbiAgICAvLyBlcnJvci5cbiAgICB0cnkge1xuICAgICAgaW8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoaGFuZGxlT2JzZXJ2ZSwge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAvLyBIYW5kbGUgPGlmcmFtZT5zXG4gICAgICAgIHJvb3Q6IHJvb3Qub3duZXJEb2N1bWVudFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaW8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoaGFuZGxlT2JzZXJ2ZSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGlvLm9ic2VydmUoZWxlbWVudCk7XG4gIH1cbiAgcmVmcmVzaCh0cnVlKTtcbiAgcmV0dXJuIGNsZWFudXA7XG59XG5cbi8qKlxuICogQXV0b21hdGljYWxseSB1cGRhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCB3aGVuIG5lY2Vzc2FyeS5cbiAqIFNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZSBmbG9hdGluZyBlbGVtZW50IGlzIG1vdW50ZWQgb24gdGhlIERPTSBvclxuICogdmlzaWJsZSBvbiB0aGUgc2NyZWVuLlxuICogQHJldHVybnMgY2xlYW51cCBmdW5jdGlvbiB0aGF0IHNob3VsZCBiZSBpbnZva2VkIHdoZW4gdGhlIGZsb2F0aW5nIGVsZW1lbnQgaXNcbiAqIHJlbW92ZWQgZnJvbSB0aGUgRE9NIG9yIGhpZGRlbiBmcm9tIHRoZSBzY3JlZW4uXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXV0b1VwZGF0ZVxuICovXG5mdW5jdGlvbiBhdXRvVXBkYXRlKHJlZmVyZW5jZSwgZmxvYXRpbmcsIHVwZGF0ZSwgb3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGNvbnN0IHtcbiAgICBhbmNlc3RvclNjcm9sbCA9IHRydWUsXG4gICAgYW5jZXN0b3JSZXNpemUgPSB0cnVlLFxuICAgIGVsZW1lbnRSZXNpemUgPSB0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgPT09ICdmdW5jdGlvbicsXG4gICAgbGF5b3V0U2hpZnQgPSB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPT09ICdmdW5jdGlvbicsXG4gICAgYW5pbWF0aW9uRnJhbWUgPSBmYWxzZVxuICB9ID0gb3B0aW9ucztcbiAgY29uc3QgcmVmZXJlbmNlRWwgPSB1bndyYXBFbGVtZW50KHJlZmVyZW5jZSk7XG4gIGNvbnN0IGFuY2VzdG9ycyA9IGFuY2VzdG9yU2Nyb2xsIHx8IGFuY2VzdG9yUmVzaXplID8gWy4uLihyZWZlcmVuY2VFbCA/IGdldE92ZXJmbG93QW5jZXN0b3JzKHJlZmVyZW5jZUVsKSA6IFtdKSwgLi4uZ2V0T3ZlcmZsb3dBbmNlc3RvcnMoZmxvYXRpbmcpXSA6IFtdO1xuICBhbmNlc3RvcnMuZm9yRWFjaChhbmNlc3RvciA9PiB7XG4gICAgYW5jZXN0b3JTY3JvbGwgJiYgYW5jZXN0b3IuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlXG4gICAgfSk7XG4gICAgYW5jZXN0b3JSZXNpemUgJiYgYW5jZXN0b3IuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdXBkYXRlKTtcbiAgfSk7XG4gIGNvbnN0IGNsZWFudXBJbyA9IHJlZmVyZW5jZUVsICYmIGxheW91dFNoaWZ0ID8gb2JzZXJ2ZU1vdmUocmVmZXJlbmNlRWwsIHVwZGF0ZSkgOiBudWxsO1xuICBsZXQgcmVvYnNlcnZlRnJhbWUgPSAtMTtcbiAgbGV0IHJlc2l6ZU9ic2VydmVyID0gbnVsbDtcbiAgaWYgKGVsZW1lbnRSZXNpemUpIHtcbiAgICByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihfcmVmID0+IHtcbiAgICAgIGxldCBbZmlyc3RFbnRyeV0gPSBfcmVmO1xuICAgICAgaWYgKGZpcnN0RW50cnkgJiYgZmlyc3RFbnRyeS50YXJnZXQgPT09IHJlZmVyZW5jZUVsICYmIHJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgIC8vIFByZXZlbnQgdXBkYXRlIGxvb3BzIHdoZW4gdXNpbmcgdGhlIGBzaXplYCBtaWRkbGV3YXJlLlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmxvYXRpbmctdWkvZmxvYXRpbmctdWkvaXNzdWVzLzE3NDBcbiAgICAgICAgcmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKGZsb2F0aW5nKTtcbiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmVvYnNlcnZlRnJhbWUpO1xuICAgICAgICByZW9ic2VydmVGcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgdmFyIF9yZXNpemVPYnNlcnZlcjtcbiAgICAgICAgICAoX3Jlc2l6ZU9ic2VydmVyID0gcmVzaXplT2JzZXJ2ZXIpID09IG51bGwgfHwgX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoZmxvYXRpbmcpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHVwZGF0ZSgpO1xuICAgIH0pO1xuICAgIGlmIChyZWZlcmVuY2VFbCAmJiAhYW5pbWF0aW9uRnJhbWUpIHtcbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUocmVmZXJlbmNlRWwpO1xuICAgIH1cbiAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKGZsb2F0aW5nKTtcbiAgfVxuICBsZXQgZnJhbWVJZDtcbiAgbGV0IHByZXZSZWZSZWN0ID0gYW5pbWF0aW9uRnJhbWUgPyBnZXRCb3VuZGluZ0NsaWVudFJlY3QocmVmZXJlbmNlKSA6IG51bGw7XG4gIGlmIChhbmltYXRpb25GcmFtZSkge1xuICAgIGZyYW1lTG9vcCgpO1xuICB9XG4gIGZ1bmN0aW9uIGZyYW1lTG9vcCgpIHtcbiAgICBjb25zdCBuZXh0UmVmUmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChyZWZlcmVuY2UpO1xuICAgIGlmIChwcmV2UmVmUmVjdCAmJiAobmV4dFJlZlJlY3QueCAhPT0gcHJldlJlZlJlY3QueCB8fCBuZXh0UmVmUmVjdC55ICE9PSBwcmV2UmVmUmVjdC55IHx8IG5leHRSZWZSZWN0LndpZHRoICE9PSBwcmV2UmVmUmVjdC53aWR0aCB8fCBuZXh0UmVmUmVjdC5oZWlnaHQgIT09IHByZXZSZWZSZWN0LmhlaWdodCkpIHtcbiAgICAgIHVwZGF0ZSgpO1xuICAgIH1cbiAgICBwcmV2UmVmUmVjdCA9IG5leHRSZWZSZWN0O1xuICAgIGZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnJhbWVMb29wKTtcbiAgfVxuICB1cGRhdGUoKTtcbiAgcmV0dXJuICgpID0+IHtcbiAgICB2YXIgX3Jlc2l6ZU9ic2VydmVyMjtcbiAgICBhbmNlc3RvcnMuZm9yRWFjaChhbmNlc3RvciA9PiB7XG4gICAgICBhbmNlc3RvclNjcm9sbCAmJiBhbmNlc3Rvci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGUpO1xuICAgICAgYW5jZXN0b3JSZXNpemUgJiYgYW5jZXN0b3IucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdXBkYXRlKTtcbiAgICB9KTtcbiAgICBjbGVhbnVwSW8gPT0gbnVsbCB8fCBjbGVhbnVwSW8oKTtcbiAgICAoX3Jlc2l6ZU9ic2VydmVyMiA9IHJlc2l6ZU9ic2VydmVyKSA9PSBudWxsIHx8IF9yZXNpemVPYnNlcnZlcjIuZGlzY29ubmVjdCgpO1xuICAgIHJlc2l6ZU9ic2VydmVyID0gbnVsbDtcbiAgICBpZiAoYW5pbWF0aW9uRnJhbWUpIHtcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lSWQpO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB3aXRoIGFuIG9iamVjdCBvZiBvdmVyZmxvdyBzaWRlIG9mZnNldHMgdGhhdCBkZXRlcm1pbmUgaG93IG11Y2ggdGhlXG4gKiBlbGVtZW50IGlzIG92ZXJmbG93aW5nIGEgZ2l2ZW4gY2xpcHBpbmcgYm91bmRhcnkgb24gZWFjaCBzaWRlLlxuICogLSBwb3NpdGl2ZSA9IG92ZXJmbG93aW5nIHRoZSBib3VuZGFyeSBieSB0aGF0IG51bWJlciBvZiBwaXhlbHNcbiAqIC0gbmVnYXRpdmUgPSBob3cgbWFueSBwaXhlbHMgbGVmdCBiZWZvcmUgaXQgd2lsbCBvdmVyZmxvd1xuICogLSAwID0gbGllcyBmbHVzaCB3aXRoIHRoZSBib3VuZGFyeVxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2RldGVjdE92ZXJmbG93XG4gKi9cbmNvbnN0IGRldGVjdE92ZXJmbG93ID0gZGV0ZWN0T3ZlcmZsb3ckMTtcblxuLyoqXG4gKiBNb2RpZmllcyB0aGUgcGxhY2VtZW50IGJ5IHRyYW5zbGF0aW5nIHRoZSBmbG9hdGluZyBlbGVtZW50IGFsb25nIHRoZVxuICogc3BlY2lmaWVkIGF4ZXMuXG4gKiBBIG51bWJlciAoc2hvcnRoYW5kIGZvciBgbWFpbkF4aXNgIG9yIGRpc3RhbmNlKSwgb3IgYW4gYXhlcyBjb25maWd1cmF0aW9uXG4gKiBvYmplY3QgbWF5IGJlIHBhc3NlZC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9vZmZzZXRcbiAqL1xuY29uc3Qgb2Zmc2V0ID0gb2Zmc2V0JDE7XG5cbi8qKlxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IGNob29zaW5nIHRoZSBwbGFjZW1lbnRcbiAqIHRoYXQgaGFzIHRoZSBtb3N0IHNwYWNlIGF2YWlsYWJsZSBhdXRvbWF0aWNhbGx5LCB3aXRob3V0IG5lZWRpbmcgdG8gc3BlY2lmeSBhXG4gKiBwcmVmZXJyZWQgcGxhY2VtZW50LiBBbHRlcm5hdGl2ZSB0byBgZmxpcGAuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXV0b1BsYWNlbWVudFxuICovXG5jb25zdCBhdXRvUGxhY2VtZW50ID0gYXV0b1BsYWNlbWVudCQxO1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBzaGlmdGluZyBpdCBpbiBvcmRlciB0b1xuICoga2VlcCBpdCBpbiB2aWV3IHdoZW4gaXQgd2lsbCBvdmVyZmxvdyB0aGUgY2xpcHBpbmcgYm91bmRhcnkuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvc2hpZnRcbiAqL1xuY29uc3Qgc2hpZnQgPSBzaGlmdCQxO1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBmbGlwcGluZyB0aGUgYHBsYWNlbWVudGBcbiAqIGluIG9yZGVyIHRvIGtlZXAgaXQgaW4gdmlldyB3aGVuIHRoZSBwcmVmZXJyZWQgcGxhY2VtZW50KHMpIHdpbGwgb3ZlcmZsb3cgdGhlXG4gKiBjbGlwcGluZyBib3VuZGFyeS4gQWx0ZXJuYXRpdmUgdG8gYGF1dG9QbGFjZW1lbnRgLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2ZsaXBcbiAqL1xuY29uc3QgZmxpcCA9IGZsaXAkMTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRoYXQgYWxsb3dzIHlvdSB0byBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQg4oCUXG4gKiBmb3IgaW5zdGFuY2UsIHByZXZlbnQgaXQgZnJvbSBvdmVyZmxvd2luZyB0aGUgY2xpcHBpbmcgYm91bmRhcnkgb3IgbWF0Y2ggdGhlXG4gKiB3aWR0aCBvZiB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvc2l6ZVxuICovXG5jb25zdCBzaXplID0gc2l6ZSQxO1xuXG4vKipcbiAqIFByb3ZpZGVzIGRhdGEgdG8gaGlkZSB0aGUgZmxvYXRpbmcgZWxlbWVudCBpbiBhcHBsaWNhYmxlIHNpdHVhdGlvbnMsIHN1Y2ggYXNcbiAqIHdoZW4gaXQgaXMgbm90IGluIHRoZSBzYW1lIGNsaXBwaW5nIGNvbnRleHQgYXMgdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2hpZGVcbiAqL1xuY29uc3QgaGlkZSA9IGhpZGUkMTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIHBvc2l0aW9uIGFuIGlubmVyIGVsZW1lbnQgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgc28gdGhhdCBpdFxuICogYXBwZWFycyBjZW50ZXJlZCB0byB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXJyb3dcbiAqL1xuY29uc3QgYXJyb3cgPSBhcnJvdyQxO1xuXG4vKipcbiAqIFByb3ZpZGVzIGltcHJvdmVkIHBvc2l0aW9uaW5nIGZvciBpbmxpbmUgcmVmZXJlbmNlIGVsZW1lbnRzIHRoYXQgY2FuIHNwYW5cbiAqIG92ZXIgbXVsdGlwbGUgbGluZXMsIHN1Y2ggYXMgaHlwZXJsaW5rcyBvciByYW5nZSBzZWxlY3Rpb25zLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2lubGluZVxuICovXG5jb25zdCBpbmxpbmUgPSBpbmxpbmUkMTtcblxuLyoqXG4gKiBCdWlsdC1pbiBgbGltaXRlcmAgdGhhdCB3aWxsIHN0b3AgYHNoaWZ0KClgIGF0IGEgY2VydGFpbiBwb2ludC5cbiAqL1xuY29uc3QgbGltaXRTaGlmdCA9IGxpbWl0U2hpZnQkMTtcblxuLyoqXG4gKiBDb21wdXRlcyB0aGUgYHhgIGFuZCBgeWAgY29vcmRpbmF0ZXMgdGhhdCB3aWxsIHBsYWNlIHRoZSBmbG9hdGluZyBlbGVtZW50XG4gKiBuZXh0IHRvIGEgZ2l2ZW4gcmVmZXJlbmNlIGVsZW1lbnQuXG4gKi9cbmNvbnN0IGNvbXB1dGVQb3NpdGlvbiA9IChyZWZlcmVuY2UsIGZsb2F0aW5nLCBvcHRpb25zKSA9PiB7XG4gIC8vIFRoaXMgY2FjaGVzIHRoZSBleHBlbnNpdmUgYGdldENsaXBwaW5nRWxlbWVudEFuY2VzdG9yc2AgZnVuY3Rpb24gc28gdGhhdFxuICAvLyBtdWx0aXBsZSBsaWZlY3ljbGUgcmVzZXRzIHJlLXVzZSB0aGUgc2FtZSByZXN1bHQuIEl0IG9ubHkgbGl2ZXMgZm9yIGFcbiAgLy8gc2luZ2xlIGNhbGwuIElmIG90aGVyIGZ1bmN0aW9ucyBiZWNvbWUgZXhwZW5zaXZlLCB3ZSBjYW4gYWRkIHRoZW0gYXMgd2VsbC5cbiAgY29uc3QgY2FjaGUgPSBuZXcgTWFwKCk7XG4gIGNvbnN0IG1lcmdlZE9wdGlvbnMgPSB7XG4gICAgcGxhdGZvcm0sXG4gICAgLi4ub3B0aW9uc1xuICB9O1xuICBjb25zdCBwbGF0Zm9ybVdpdGhDYWNoZSA9IHtcbiAgICAuLi5tZXJnZWRPcHRpb25zLnBsYXRmb3JtLFxuICAgIF9jOiBjYWNoZVxuICB9O1xuICByZXR1cm4gY29tcHV0ZVBvc2l0aW9uJDEocmVmZXJlbmNlLCBmbG9hdGluZywge1xuICAgIC4uLm1lcmdlZE9wdGlvbnMsXG4gICAgcGxhdGZvcm06IHBsYXRmb3JtV2l0aENhY2hlXG4gIH0pO1xufTtcblxuZXhwb3J0IHsgYXJyb3csIGF1dG9QbGFjZW1lbnQsIGF1dG9VcGRhdGUsIGNvbXB1dGVQb3NpdGlvbiwgZGV0ZWN0T3ZlcmZsb3csIGZsaXAsIGhpZGUsIGlubGluZSwgbGltaXRTaGlmdCwgb2Zmc2V0LCBwbGF0Zm9ybSwgc2hpZnQsIHNpemUgfTtcbiIsImltcG9ydCB7IHVzZUxheW91dEVmZmVjdCB9IGZyb20gJ3JlYWN0JztcblxudmFyIGluZGV4ID0gdXNlTGF5b3V0RWZmZWN0IDtcblxuZXhwb3J0IHsgaW5kZXggYXMgZGVmYXVsdCB9O1xuIiwiaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMic7XG5pbXBvcnQgX2V4dGVuZHMgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kcyc7XG5pbXBvcnQgeyBqc3gsIGtleWZyYW1lcywgY3NzIGFzIGNzcyQyIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IF9zbGljZWRUb0FycmF5IGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXknO1xuaW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllcyc7XG5pbXBvcnQgX3R5cGVvZiBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2YnO1xuaW1wb3J0IF90YWdnZWRUZW1wbGF0ZUxpdGVyYWwgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdGFnZ2VkVGVtcGxhdGVMaXRlcmFsJztcbmltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHknO1xuaW1wb3J0IHsgdXNlQ29udGV4dCwgdXNlUmVmLCB1c2VTdGF0ZSwgdXNlTWVtbywgdXNlQ2FsbGJhY2ssIGNyZWF0ZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgYXV0b1VwZGF0ZSB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0IHVzZUxheW91dEVmZmVjdCBmcm9tICd1c2UtaXNvbW9ycGhpYy1sYXlvdXQtZWZmZWN0JztcblxudmFyIF9leGNsdWRlZCQ0ID0gW1wiY2xhc3NOYW1lXCIsIFwiY2xlYXJWYWx1ZVwiLCBcImN4XCIsIFwiZ2V0U3R5bGVzXCIsIFwiZ2V0Q2xhc3NOYW1lc1wiLCBcImdldFZhbHVlXCIsIFwiaGFzVmFsdWVcIiwgXCJpc011bHRpXCIsIFwiaXNSdGxcIiwgXCJvcHRpb25zXCIsIFwic2VsZWN0T3B0aW9uXCIsIFwic2VsZWN0UHJvcHNcIiwgXCJzZXRWYWx1ZVwiLCBcInRoZW1lXCJdO1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBOTyBPUFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnZhciBub29wID0gZnVuY3Rpb24gbm9vcCgpIHt9O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENsYXNzIE5hbWUgUHJlZml4ZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgY29tcG9uZW50IHN0YXRlIGZvciBzdHlsaW5nIHdpdGggY2xhc3MgbmFtZXMuXG5cbiBFeHBlY3RzIGFuIGFycmF5IG9mIHN0cmluZ3MgT1IgYSBzdHJpbmcvb2JqZWN0IHBhaXI6XG4gLSBjbGFzc05hbWUoWydjb21wJywgJ2NvbXAtYXJnJywgJ2NvbXAtYXJnLTInXSlcbiAgIEByZXR1cm5zICdyZWFjdC1zZWxlY3RfX2NvbXAgcmVhY3Qtc2VsZWN0X19jb21wLWFyZyByZWFjdC1zZWxlY3RfX2NvbXAtYXJnLTInXG4gLSBjbGFzc05hbWUoJ2NvbXAnLCB7IHNvbWU6IHRydWUsIHN0YXRlOiBmYWxzZSB9KVxuICAgQHJldHVybnMgJ3JlYWN0LXNlbGVjdF9fY29tcCByZWFjdC1zZWxlY3RfX2NvbXAtLXNvbWUnXG4qL1xuZnVuY3Rpb24gYXBwbHlQcmVmaXhUb05hbWUocHJlZml4LCBuYW1lKSB7XG4gIGlmICghbmFtZSkge1xuICAgIHJldHVybiBwcmVmaXg7XG4gIH0gZWxzZSBpZiAobmFtZVswXSA9PT0gJy0nKSB7XG4gICAgcmV0dXJuIHByZWZpeCArIG5hbWU7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHByZWZpeCArICdfXycgKyBuYW1lO1xuICB9XG59XG5mdW5jdGlvbiBjbGFzc05hbWVzKHByZWZpeCwgc3RhdGUpIHtcbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGNsYXNzTmFtZUxpc3QgPSBuZXcgQXJyYXkoX2xlbiA+IDIgPyBfbGVuIC0gMiA6IDApLCBfa2V5ID0gMjsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIGNsYXNzTmFtZUxpc3RbX2tleSAtIDJdID0gYXJndW1lbnRzW19rZXldO1xuICB9XG4gIHZhciBhcnIgPSBbXS5jb25jYXQoY2xhc3NOYW1lTGlzdCk7XG4gIGlmIChzdGF0ZSAmJiBwcmVmaXgpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gc3RhdGUpIHtcbiAgICAgIGlmIChzdGF0ZS5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIHN0YXRlW2tleV0pIHtcbiAgICAgICAgYXJyLnB1c2goXCJcIi5jb25jYXQoYXBwbHlQcmVmaXhUb05hbWUocHJlZml4LCBrZXkpKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBhcnIuZmlsdGVyKGZ1bmN0aW9uIChpKSB7XG4gICAgcmV0dXJuIGk7XG4gIH0pLm1hcChmdW5jdGlvbiAoaSkge1xuICAgIHJldHVybiBTdHJpbmcoaSkudHJpbSgpO1xuICB9KS5qb2luKCcgJyk7XG59XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENsZWFuIFZhbHVlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxudmFyIGNsZWFuVmFsdWUgPSBmdW5jdGlvbiBjbGVhblZhbHVlKHZhbHVlKSB7XG4gIGlmIChpc0FycmF5KHZhbHVlKSkgcmV0dXJuIHZhbHVlLmZpbHRlcihCb29sZWFuKTtcbiAgaWYgKF90eXBlb2YodmFsdWUpID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCkgcmV0dXJuIFt2YWx1ZV07XG4gIHJldHVybiBbXTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ2xlYW4gQ29tbW9uIFByb3BzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxudmFyIGNsZWFuQ29tbW9uUHJvcHMgPSBmdW5jdGlvbiBjbGVhbkNvbW1vblByb3BzKHByb3BzKSB7XG4gIC8vY2xhc3NOYW1lXG4gIHByb3BzLmNsYXNzTmFtZTtcbiAgICBwcm9wcy5jbGVhclZhbHVlO1xuICAgIHByb3BzLmN4O1xuICAgIHByb3BzLmdldFN0eWxlcztcbiAgICBwcm9wcy5nZXRDbGFzc05hbWVzO1xuICAgIHByb3BzLmdldFZhbHVlO1xuICAgIHByb3BzLmhhc1ZhbHVlO1xuICAgIHByb3BzLmlzTXVsdGk7XG4gICAgcHJvcHMuaXNSdGw7XG4gICAgcHJvcHMub3B0aW9ucztcbiAgICBwcm9wcy5zZWxlY3RPcHRpb247XG4gICAgcHJvcHMuc2VsZWN0UHJvcHM7XG4gICAgcHJvcHMuc2V0VmFsdWU7XG4gICAgcHJvcHMudGhlbWU7XG4gICAgdmFyIGlubmVyUHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMocHJvcHMsIF9leGNsdWRlZCQ0KTtcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe30sIGlubmVyUHJvcHMpO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHZXQgU3R5bGUgUHJvcHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgZ2V0U3R5bGVQcm9wcyA9IGZ1bmN0aW9uIGdldFN0eWxlUHJvcHMocHJvcHMsIG5hbWUsIGNsYXNzTmFtZXNTdGF0ZSkge1xuICB2YXIgY3ggPSBwcm9wcy5jeCxcbiAgICBnZXRTdHlsZXMgPSBwcm9wcy5nZXRTdHlsZXMsXG4gICAgZ2V0Q2xhc3NOYW1lcyA9IHByb3BzLmdldENsYXNzTmFtZXMsXG4gICAgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lO1xuICByZXR1cm4ge1xuICAgIGNzczogZ2V0U3R5bGVzKG5hbWUsIHByb3BzKSxcbiAgICBjbGFzc05hbWU6IGN4KGNsYXNzTmFtZXNTdGF0ZSAhPT0gbnVsbCAmJiBjbGFzc05hbWVzU3RhdGUgIT09IHZvaWQgMCA/IGNsYXNzTmFtZXNTdGF0ZSA6IHt9LCBnZXRDbGFzc05hbWVzKG5hbWUsIHByb3BzKSwgY2xhc3NOYW1lKVxuICB9O1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIYW5kbGUgSW5wdXQgQ2hhbmdlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZnVuY3Rpb24gaGFuZGxlSW5wdXRDaGFuZ2UoaW5wdXRWYWx1ZSwgYWN0aW9uTWV0YSwgb25JbnB1dENoYW5nZSkge1xuICBpZiAob25JbnB1dENoYW5nZSkge1xuICAgIHZhciBfbmV3VmFsdWUgPSBvbklucHV0Q2hhbmdlKGlucHV0VmFsdWUsIGFjdGlvbk1ldGEpO1xuICAgIGlmICh0eXBlb2YgX25ld1ZhbHVlID09PSAnc3RyaW5nJykgcmV0dXJuIF9uZXdWYWx1ZTtcbiAgfVxuICByZXR1cm4gaW5wdXRWYWx1ZTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTY3JvbGwgSGVscGVyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmZ1bmN0aW9uIGlzRG9jdW1lbnRFbGVtZW50KGVsKSB7XG4gIHJldHVybiBbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBkb2N1bWVudC5ib2R5LCB3aW5kb3ddLmluZGV4T2YoZWwpID4gLTE7XG59XG5cbi8vIE5vcm1hbGl6ZWQgU2Nyb2xsIFRvcFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZWRIZWlnaHQoZWwpIHtcbiAgaWYgKGlzRG9jdW1lbnRFbGVtZW50KGVsKSkge1xuICAgIHJldHVybiB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gIH1cbiAgcmV0dXJuIGVsLmNsaWVudEhlaWdodDtcbn1cblxuLy8gTm9ybWFsaXplZCBzY3JvbGxUbyAmIHNjcm9sbFRvcFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIGdldFNjcm9sbFRvcChlbCkge1xuICBpZiAoaXNEb2N1bWVudEVsZW1lbnQoZWwpKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5wYWdlWU9mZnNldDtcbiAgfVxuICByZXR1cm4gZWwuc2Nyb2xsVG9wO1xufVxuZnVuY3Rpb24gc2Nyb2xsVG8oZWwsIHRvcCkge1xuICAvLyB3aXRoIGEgc2Nyb2xsIGRpc3RhbmNlLCB3ZSBwZXJmb3JtIHNjcm9sbCBvbiB0aGUgZWxlbWVudFxuICBpZiAoaXNEb2N1bWVudEVsZW1lbnQoZWwpKSB7XG4gICAgd2luZG93LnNjcm9sbFRvKDAsIHRvcCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGVsLnNjcm9sbFRvcCA9IHRvcDtcbn1cblxuLy8gR2V0IFNjcm9sbCBQYXJlbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBnZXRTY3JvbGxQYXJlbnQoZWxlbWVudCkge1xuICB2YXIgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuICB2YXIgZXhjbHVkZVN0YXRpY1BhcmVudCA9IHN0eWxlLnBvc2l0aW9uID09PSAnYWJzb2x1dGUnO1xuICB2YXIgb3ZlcmZsb3dSeCA9IC8oYXV0b3xzY3JvbGwpLztcbiAgaWYgKHN0eWxlLnBvc2l0aW9uID09PSAnZml4ZWQnKSByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICBmb3IgKHZhciBwYXJlbnQgPSBlbGVtZW50OyBwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudDspIHtcbiAgICBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUocGFyZW50KTtcbiAgICBpZiAoZXhjbHVkZVN0YXRpY1BhcmVudCAmJiBzdHlsZS5wb3NpdGlvbiA9PT0gJ3N0YXRpYycpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAob3ZlcmZsb3dSeC50ZXN0KHN0eWxlLm92ZXJmbG93ICsgc3R5bGUub3ZlcmZsb3dZICsgc3R5bGUub3ZlcmZsb3dYKSkge1xuICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbn1cblxuLy8gQW5pbWF0ZWQgU2Nyb2xsIFRvXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gIEBwYXJhbSB0OiB0aW1lIChlbGFwc2VkKVxuICBAcGFyYW0gYjogaW5pdGlhbCB2YWx1ZVxuICBAcGFyYW0gYzogYW1vdW50IG9mIGNoYW5nZVxuICBAcGFyYW0gZDogZHVyYXRpb25cbiovXG5mdW5jdGlvbiBlYXNlT3V0Q3ViaWModCwgYiwgYywgZCkge1xuICByZXR1cm4gYyAqICgodCA9IHQgLyBkIC0gMSkgKiB0ICogdCArIDEpICsgYjtcbn1cbmZ1bmN0aW9uIGFuaW1hdGVkU2Nyb2xsVG8oZWxlbWVudCwgdG8pIHtcbiAgdmFyIGR1cmF0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiAyMDA7XG4gIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50cy5sZW5ndGggPiAzICYmIGFyZ3VtZW50c1szXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzNdIDogbm9vcDtcbiAgdmFyIHN0YXJ0ID0gZ2V0U2Nyb2xsVG9wKGVsZW1lbnQpO1xuICB2YXIgY2hhbmdlID0gdG8gLSBzdGFydDtcbiAgdmFyIGluY3JlbWVudCA9IDEwO1xuICB2YXIgY3VycmVudFRpbWUgPSAwO1xuICBmdW5jdGlvbiBhbmltYXRlU2Nyb2xsKCkge1xuICAgIGN1cnJlbnRUaW1lICs9IGluY3JlbWVudDtcbiAgICB2YXIgdmFsID0gZWFzZU91dEN1YmljKGN1cnJlbnRUaW1lLCBzdGFydCwgY2hhbmdlLCBkdXJhdGlvbik7XG4gICAgc2Nyb2xsVG8oZWxlbWVudCwgdmFsKTtcbiAgICBpZiAoY3VycmVudFRpbWUgPCBkdXJhdGlvbikge1xuICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShhbmltYXRlU2Nyb2xsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FsbGJhY2soZWxlbWVudCk7XG4gICAgfVxuICB9XG4gIGFuaW1hdGVTY3JvbGwoKTtcbn1cblxuLy8gU2Nyb2xsIEludG8gVmlld1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIHNjcm9sbEludG9WaWV3KG1lbnVFbCwgZm9jdXNlZEVsKSB7XG4gIHZhciBtZW51UmVjdCA9IG1lbnVFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgdmFyIGZvY3VzZWRSZWN0ID0gZm9jdXNlZEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB2YXIgb3ZlclNjcm9sbCA9IGZvY3VzZWRFbC5vZmZzZXRIZWlnaHQgLyAzO1xuICBpZiAoZm9jdXNlZFJlY3QuYm90dG9tICsgb3ZlclNjcm9sbCA+IG1lbnVSZWN0LmJvdHRvbSkge1xuICAgIHNjcm9sbFRvKG1lbnVFbCwgTWF0aC5taW4oZm9jdXNlZEVsLm9mZnNldFRvcCArIGZvY3VzZWRFbC5jbGllbnRIZWlnaHQgLSBtZW51RWwub2Zmc2V0SGVpZ2h0ICsgb3ZlclNjcm9sbCwgbWVudUVsLnNjcm9sbEhlaWdodCkpO1xuICB9IGVsc2UgaWYgKGZvY3VzZWRSZWN0LnRvcCAtIG92ZXJTY3JvbGwgPCBtZW51UmVjdC50b3ApIHtcbiAgICBzY3JvbGxUbyhtZW51RWwsIE1hdGgubWF4KGZvY3VzZWRFbC5vZmZzZXRUb3AgLSBvdmVyU2Nyb2xsLCAwKSk7XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHZXQgYm91bmRpbmcgY2xpZW50IG9iamVjdFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIGNhbm5vdCBnZXQga2V5cyB1c2luZyBhcnJheSBub3RhdGlvbiB3aXRoIERPTVJlY3RcbmZ1bmN0aW9uIGdldEJvdW5kaW5nQ2xpZW50T2JqKGVsZW1lbnQpIHtcbiAgdmFyIHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICByZXR1cm4ge1xuICAgIGJvdHRvbTogcmVjdC5ib3R0b20sXG4gICAgaGVpZ2h0OiByZWN0LmhlaWdodCxcbiAgICBsZWZ0OiByZWN0LmxlZnQsXG4gICAgcmlnaHQ6IHJlY3QucmlnaHQsXG4gICAgdG9wOiByZWN0LnRvcCxcbiAgICB3aWR0aDogcmVjdC53aWR0aFxuICB9O1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRvdWNoIENhcGFiaWxpdHkgRGV0ZWN0b3Jcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5mdW5jdGlvbiBpc1RvdWNoQ2FwYWJsZSgpIHtcbiAgdHJ5IHtcbiAgICBkb2N1bWVudC5jcmVhdGVFdmVudCgnVG91Y2hFdmVudCcpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTW9iaWxlIERldmljZSBEZXRlY3RvclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmZ1bmN0aW9uIGlzTW9iaWxlRGV2aWNlKCkge1xuICB0cnkge1xuICAgIHJldHVybiAvQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnl8SUVNb2JpbGV8T3BlcmEgTWluaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQYXNzaXZlIEV2ZW50IERldGVjdG9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3JhZmdyYXBoL2RldGVjdC1pdC9ibG9iL21haW4vc3JjL2luZGV4LnRzI0wxOS1MMzZcbnZhciBwYXNzaXZlT3B0aW9uQWNjZXNzZWQgPSBmYWxzZTtcbnZhciBvcHRpb25zID0ge1xuICBnZXQgcGFzc2l2ZSgpIHtcbiAgICByZXR1cm4gcGFzc2l2ZU9wdGlvbkFjY2Vzc2VkID0gdHJ1ZTtcbiAgfVxufTtcbi8vIGNoZWNrIGZvciBTU1JcbnZhciB3ID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cgOiB7fTtcbmlmICh3LmFkZEV2ZW50TGlzdGVuZXIgJiYgdy5yZW1vdmVFdmVudExpc3RlbmVyKSB7XG4gIHcuYWRkRXZlbnRMaXN0ZW5lcigncCcsIG5vb3AsIG9wdGlvbnMpO1xuICB3LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3AnLCBub29wLCBmYWxzZSk7XG59XG52YXIgc3VwcG9ydHNQYXNzaXZlRXZlbnRzID0gcGFzc2l2ZU9wdGlvbkFjY2Vzc2VkO1xuZnVuY3Rpb24gbm90TnVsbGlzaChpdGVtKSB7XG4gIHJldHVybiBpdGVtICE9IG51bGw7XG59XG5mdW5jdGlvbiBpc0FycmF5KGFyZykge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShhcmcpO1xufVxuZnVuY3Rpb24gdmFsdWVUZXJuYXJ5KGlzTXVsdGksIG11bHRpVmFsdWUsIHNpbmdsZVZhbHVlKSB7XG4gIHJldHVybiBpc011bHRpID8gbXVsdGlWYWx1ZSA6IHNpbmdsZVZhbHVlO1xufVxuZnVuY3Rpb24gc2luZ2xlVmFsdWVBc1ZhbHVlKHNpbmdsZVZhbHVlKSB7XG4gIHJldHVybiBzaW5nbGVWYWx1ZTtcbn1cbmZ1bmN0aW9uIG11bHRpVmFsdWVBc1ZhbHVlKG11bHRpVmFsdWUpIHtcbiAgcmV0dXJuIG11bHRpVmFsdWU7XG59XG52YXIgcmVtb3ZlUHJvcHMgPSBmdW5jdGlvbiByZW1vdmVQcm9wcyhwcm9wc09iaikge1xuICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIHByb3BlcnRpZXMgPSBuZXcgQXJyYXkoX2xlbjIgPiAxID8gX2xlbjIgLSAxIDogMCksIF9rZXkyID0gMTsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgIHByb3BlcnRpZXNbX2tleTIgLSAxXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gIH1cbiAgdmFyIHByb3BzTWFwID0gT2JqZWN0LmVudHJpZXMocHJvcHNPYmopLmZpbHRlcihmdW5jdGlvbiAoX3JlZikge1xuICAgIHZhciBfcmVmMiA9IF9zbGljZWRUb0FycmF5KF9yZWYsIDEpLFxuICAgICAga2V5ID0gX3JlZjJbMF07XG4gICAgcmV0dXJuICFwcm9wZXJ0aWVzLmluY2x1ZGVzKGtleSk7XG4gIH0pO1xuICByZXR1cm4gcHJvcHNNYXAucmVkdWNlKGZ1bmN0aW9uIChuZXdQcm9wcywgX3JlZjMpIHtcbiAgICB2YXIgX3JlZjQgPSBfc2xpY2VkVG9BcnJheShfcmVmMywgMiksXG4gICAgICBrZXkgPSBfcmVmNFswXSxcbiAgICAgIHZhbCA9IF9yZWY0WzFdO1xuICAgIG5ld1Byb3BzW2tleV0gPSB2YWw7XG4gICAgcmV0dXJuIG5ld1Byb3BzO1xuICB9LCB7fSk7XG59O1xuXG52YXIgX2V4Y2x1ZGVkJDMgPSBbXCJjaGlsZHJlblwiLCBcImlubmVyUHJvcHNcIl0sXG4gIF9leGNsdWRlZDIkMSA9IFtcImNoaWxkcmVuXCIsIFwiaW5uZXJQcm9wc1wiXTtcbmZ1bmN0aW9uIGdldE1lbnVQbGFjZW1lbnQoX3JlZikge1xuICB2YXIgcHJlZmVycmVkTWF4SGVpZ2h0ID0gX3JlZi5tYXhIZWlnaHQsXG4gICAgbWVudUVsID0gX3JlZi5tZW51RWwsXG4gICAgbWluSGVpZ2h0ID0gX3JlZi5taW5IZWlnaHQsXG4gICAgcHJlZmVycmVkUGxhY2VtZW50ID0gX3JlZi5wbGFjZW1lbnQsXG4gICAgc2hvdWxkU2Nyb2xsID0gX3JlZi5zaG91bGRTY3JvbGwsXG4gICAgaXNGaXhlZFBvc2l0aW9uID0gX3JlZi5pc0ZpeGVkUG9zaXRpb24sXG4gICAgY29udHJvbEhlaWdodCA9IF9yZWYuY29udHJvbEhlaWdodDtcbiAgdmFyIHNjcm9sbFBhcmVudCA9IGdldFNjcm9sbFBhcmVudChtZW51RWwpO1xuICB2YXIgZGVmYXVsdFN0YXRlID0ge1xuICAgIHBsYWNlbWVudDogJ2JvdHRvbScsXG4gICAgbWF4SGVpZ2h0OiBwcmVmZXJyZWRNYXhIZWlnaHRcbiAgfTtcblxuICAvLyBzb21ldGhpbmcgd2VudCB3cm9uZywgcmV0dXJuIGRlZmF1bHQgc3RhdGVcbiAgaWYgKCFtZW51RWwgfHwgIW1lbnVFbC5vZmZzZXRQYXJlbnQpIHJldHVybiBkZWZhdWx0U3RhdGU7XG5cbiAgLy8gd2UgY2FuJ3QgdHJ1c3QgYHNjcm9sbFBhcmVudC5zY3JvbGxIZWlnaHRgIC0tPiBpdCBtYXkgaW5jcmVhc2Ugd2hlblxuICAvLyB0aGUgbWVudSBpcyByZW5kZXJlZFxuICB2YXIgX3Njcm9sbFBhcmVudCRnZXRCb3VuID0gc2Nyb2xsUGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgIHNjcm9sbEhlaWdodCA9IF9zY3JvbGxQYXJlbnQkZ2V0Qm91bi5oZWlnaHQ7XG4gIHZhciBfbWVudUVsJGdldEJvdW5kaW5nQ2wgPSBtZW51RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgbWVudUJvdHRvbSA9IF9tZW51RWwkZ2V0Qm91bmRpbmdDbC5ib3R0b20sXG4gICAgbWVudUhlaWdodCA9IF9tZW51RWwkZ2V0Qm91bmRpbmdDbC5oZWlnaHQsXG4gICAgbWVudVRvcCA9IF9tZW51RWwkZ2V0Qm91bmRpbmdDbC50b3A7XG4gIHZhciBfbWVudUVsJG9mZnNldFBhcmVudCQgPSBtZW51RWwub2Zmc2V0UGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgIGNvbnRhaW5lclRvcCA9IF9tZW51RWwkb2Zmc2V0UGFyZW50JC50b3A7XG4gIHZhciB2aWV3SGVpZ2h0ID0gaXNGaXhlZFBvc2l0aW9uID8gd2luZG93LmlubmVySGVpZ2h0IDogbm9ybWFsaXplZEhlaWdodChzY3JvbGxQYXJlbnQpO1xuICB2YXIgc2Nyb2xsVG9wID0gZ2V0U2Nyb2xsVG9wKHNjcm9sbFBhcmVudCk7XG4gIHZhciBtYXJnaW5Cb3R0b20gPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKG1lbnVFbCkubWFyZ2luQm90dG9tLCAxMCk7XG4gIHZhciBtYXJnaW5Ub3AgPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKG1lbnVFbCkubWFyZ2luVG9wLCAxMCk7XG4gIHZhciB2aWV3U3BhY2VBYm92ZSA9IGNvbnRhaW5lclRvcCAtIG1hcmdpblRvcDtcbiAgdmFyIHZpZXdTcGFjZUJlbG93ID0gdmlld0hlaWdodCAtIG1lbnVUb3A7XG4gIHZhciBzY3JvbGxTcGFjZUFib3ZlID0gdmlld1NwYWNlQWJvdmUgKyBzY3JvbGxUb3A7XG4gIHZhciBzY3JvbGxTcGFjZUJlbG93ID0gc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsVG9wIC0gbWVudVRvcDtcbiAgdmFyIHNjcm9sbERvd24gPSBtZW51Qm90dG9tIC0gdmlld0hlaWdodCArIHNjcm9sbFRvcCArIG1hcmdpbkJvdHRvbTtcbiAgdmFyIHNjcm9sbFVwID0gc2Nyb2xsVG9wICsgbWVudVRvcCAtIG1hcmdpblRvcDtcbiAgdmFyIHNjcm9sbER1cmF0aW9uID0gMTYwO1xuICBzd2l0Y2ggKHByZWZlcnJlZFBsYWNlbWVudCkge1xuICAgIGNhc2UgJ2F1dG8nOlxuICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAvLyAxOiB0aGUgbWVudSB3aWxsIGZpdCwgZG8gbm90aGluZ1xuICAgICAgaWYgKHZpZXdTcGFjZUJlbG93ID49IG1lbnVIZWlnaHQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b20nLFxuICAgICAgICAgIG1heEhlaWdodDogcHJlZmVycmVkTWF4SGVpZ2h0XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIDI6IHRoZSBtZW51IHdpbGwgZml0LCBpZiBzY3JvbGxlZFxuICAgICAgaWYgKHNjcm9sbFNwYWNlQmVsb3cgPj0gbWVudUhlaWdodCAmJiAhaXNGaXhlZFBvc2l0aW9uKSB7XG4gICAgICAgIGlmIChzaG91bGRTY3JvbGwpIHtcbiAgICAgICAgICBhbmltYXRlZFNjcm9sbFRvKHNjcm9sbFBhcmVudCwgc2Nyb2xsRG93biwgc2Nyb2xsRHVyYXRpb24pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tJyxcbiAgICAgICAgICBtYXhIZWlnaHQ6IHByZWZlcnJlZE1heEhlaWdodFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICAvLyAzOiB0aGUgbWVudSB3aWxsIGZpdCwgaWYgY29uc3RyYWluZWRcbiAgICAgIGlmICghaXNGaXhlZFBvc2l0aW9uICYmIHNjcm9sbFNwYWNlQmVsb3cgPj0gbWluSGVpZ2h0IHx8IGlzRml4ZWRQb3NpdGlvbiAmJiB2aWV3U3BhY2VCZWxvdyA+PSBtaW5IZWlnaHQpIHtcbiAgICAgICAgaWYgKHNob3VsZFNjcm9sbCkge1xuICAgICAgICAgIGFuaW1hdGVkU2Nyb2xsVG8oc2Nyb2xsUGFyZW50LCBzY3JvbGxEb3duLCBzY3JvbGxEdXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB3ZSB3YW50IHRvIHByb3ZpZGUgYXMgbXVjaCBvZiB0aGUgbWVudSBhcyBwb3NzaWJsZSB0byB0aGUgdXNlcixcbiAgICAgICAgLy8gc28gZ2l2ZSB0aGVtIHdoYXRldmVyIGlzIGF2YWlsYWJsZSBiZWxvdyByYXRoZXIgdGhhbiB0aGUgbWluSGVpZ2h0LlxuICAgICAgICB2YXIgY29uc3RyYWluZWRIZWlnaHQgPSBpc0ZpeGVkUG9zaXRpb24gPyB2aWV3U3BhY2VCZWxvdyAtIG1hcmdpbkJvdHRvbSA6IHNjcm9sbFNwYWNlQmVsb3cgLSBtYXJnaW5Cb3R0b207XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tJyxcbiAgICAgICAgICBtYXhIZWlnaHQ6IGNvbnN0cmFpbmVkSGVpZ2h0XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIDQuIEZvcmtlZCBiZXZpb3VyIHdoZW4gdGhlcmUgaXNuJ3QgZW5vdWdoIHNwYWNlIGJlbG93XG5cbiAgICAgIC8vIEFVVE86IGZsaXAgdGhlIG1lbnUsIHJlbmRlciBhYm92ZVxuICAgICAgaWYgKHByZWZlcnJlZFBsYWNlbWVudCA9PT0gJ2F1dG8nIHx8IGlzRml4ZWRQb3NpdGlvbikge1xuICAgICAgICAvLyBtYXkgbmVlZCB0byBiZSBjb25zdHJhaW5lZCBhZnRlciBmbGlwcGluZ1xuICAgICAgICB2YXIgX2NvbnN0cmFpbmVkSGVpZ2h0ID0gcHJlZmVycmVkTWF4SGVpZ2h0O1xuICAgICAgICB2YXIgc3BhY2VBYm92ZSA9IGlzRml4ZWRQb3NpdGlvbiA/IHZpZXdTcGFjZUFib3ZlIDogc2Nyb2xsU3BhY2VBYm92ZTtcbiAgICAgICAgaWYgKHNwYWNlQWJvdmUgPj0gbWluSGVpZ2h0KSB7XG4gICAgICAgICAgX2NvbnN0cmFpbmVkSGVpZ2h0ID0gTWF0aC5taW4oc3BhY2VBYm92ZSAtIG1hcmdpbkJvdHRvbSAtIGNvbnRyb2xIZWlnaHQsIHByZWZlcnJlZE1heEhlaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwbGFjZW1lbnQ6ICd0b3AnLFxuICAgICAgICAgIG1heEhlaWdodDogX2NvbnN0cmFpbmVkSGVpZ2h0XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIEJPVFRPTTogYWxsb3cgYnJvd3NlciB0byBpbmNyZWFzZSBzY3JvbGxhYmxlIGFyZWEgYW5kIGltbWVkaWF0ZWx5IHNldCBzY3JvbGxcbiAgICAgIGlmIChwcmVmZXJyZWRQbGFjZW1lbnQgPT09ICdib3R0b20nKSB7XG4gICAgICAgIGlmIChzaG91bGRTY3JvbGwpIHtcbiAgICAgICAgICBzY3JvbGxUbyhzY3JvbGxQYXJlbnQsIHNjcm9sbERvd24pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tJyxcbiAgICAgICAgICBtYXhIZWlnaHQ6IHByZWZlcnJlZE1heEhlaWdodFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAndG9wJzpcbiAgICAgIC8vIDE6IHRoZSBtZW51IHdpbGwgZml0LCBkbyBub3RoaW5nXG4gICAgICBpZiAodmlld1NwYWNlQWJvdmUgPj0gbWVudUhlaWdodCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHBsYWNlbWVudDogJ3RvcCcsXG4gICAgICAgICAgbWF4SGVpZ2h0OiBwcmVmZXJyZWRNYXhIZWlnaHRcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8gMjogdGhlIG1lbnUgd2lsbCBmaXQsIGlmIHNjcm9sbGVkXG4gICAgICBpZiAoc2Nyb2xsU3BhY2VBYm92ZSA+PSBtZW51SGVpZ2h0ICYmICFpc0ZpeGVkUG9zaXRpb24pIHtcbiAgICAgICAgaWYgKHNob3VsZFNjcm9sbCkge1xuICAgICAgICAgIGFuaW1hdGVkU2Nyb2xsVG8oc2Nyb2xsUGFyZW50LCBzY3JvbGxVcCwgc2Nyb2xsRHVyYXRpb24pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGxhY2VtZW50OiAndG9wJyxcbiAgICAgICAgICBtYXhIZWlnaHQ6IHByZWZlcnJlZE1heEhlaWdodFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICAvLyAzOiB0aGUgbWVudSB3aWxsIGZpdCwgaWYgY29uc3RyYWluZWRcbiAgICAgIGlmICghaXNGaXhlZFBvc2l0aW9uICYmIHNjcm9sbFNwYWNlQWJvdmUgPj0gbWluSGVpZ2h0IHx8IGlzRml4ZWRQb3NpdGlvbiAmJiB2aWV3U3BhY2VBYm92ZSA+PSBtaW5IZWlnaHQpIHtcbiAgICAgICAgdmFyIF9jb25zdHJhaW5lZEhlaWdodDIgPSBwcmVmZXJyZWRNYXhIZWlnaHQ7XG5cbiAgICAgICAgLy8gd2Ugd2FudCB0byBwcm92aWRlIGFzIG11Y2ggb2YgdGhlIG1lbnUgYXMgcG9zc2libGUgdG8gdGhlIHVzZXIsXG4gICAgICAgIC8vIHNvIGdpdmUgdGhlbSB3aGF0ZXZlciBpcyBhdmFpbGFibGUgYmVsb3cgcmF0aGVyIHRoYW4gdGhlIG1pbkhlaWdodC5cbiAgICAgICAgaWYgKCFpc0ZpeGVkUG9zaXRpb24gJiYgc2Nyb2xsU3BhY2VBYm92ZSA+PSBtaW5IZWlnaHQgfHwgaXNGaXhlZFBvc2l0aW9uICYmIHZpZXdTcGFjZUFib3ZlID49IG1pbkhlaWdodCkge1xuICAgICAgICAgIF9jb25zdHJhaW5lZEhlaWdodDIgPSBpc0ZpeGVkUG9zaXRpb24gPyB2aWV3U3BhY2VBYm92ZSAtIG1hcmdpblRvcCA6IHNjcm9sbFNwYWNlQWJvdmUgLSBtYXJnaW5Ub3A7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNob3VsZFNjcm9sbCkge1xuICAgICAgICAgIGFuaW1hdGVkU2Nyb2xsVG8oc2Nyb2xsUGFyZW50LCBzY3JvbGxVcCwgc2Nyb2xsRHVyYXRpb24pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGxhY2VtZW50OiAndG9wJyxcbiAgICAgICAgICBtYXhIZWlnaHQ6IF9jb25zdHJhaW5lZEhlaWdodDJcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8gNC4gbm90IGVub3VnaCBzcGFjZSwgdGhlIGJyb3dzZXIgV0lMTCBOT1QgaW5jcmVhc2Ugc2Nyb2xsYWJsZSBhcmVhIHdoZW5cbiAgICAgIC8vIGFic29sdXRlbHkgcG9zaXRpb25lZCBlbGVtZW50IHJlbmRlcmVkIGFib3ZlIHRoZSB2aWV3cG9ydCAob25seSBiZWxvdykuXG4gICAgICAvLyBGbGlwIHRoZSBtZW51LCByZW5kZXIgYmVsb3dcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBsYWNlbWVudDogJ2JvdHRvbScsXG4gICAgICAgIG1heEhlaWdodDogcHJlZmVycmVkTWF4SGVpZ2h0XG4gICAgICB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHBsYWNlbWVudCBwcm92aWRlZCBcXFwiXCIuY29uY2F0KHByZWZlcnJlZFBsYWNlbWVudCwgXCJcXFwiLlwiKSk7XG4gIH1cbiAgcmV0dXJuIGRlZmF1bHRTdGF0ZTtcbn1cblxuLy8gTWVudSBDb21wb25lbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBhbGlnblRvQ29udHJvbChwbGFjZW1lbnQpIHtcbiAgdmFyIHBsYWNlbWVudFRvQ1NTUHJvcCA9IHtcbiAgICBib3R0b206ICd0b3AnLFxuICAgIHRvcDogJ2JvdHRvbSdcbiAgfTtcbiAgcmV0dXJuIHBsYWNlbWVudCA/IHBsYWNlbWVudFRvQ1NTUHJvcFtwbGFjZW1lbnRdIDogJ2JvdHRvbSc7XG59XG52YXIgY29lcmNlUGxhY2VtZW50ID0gZnVuY3Rpb24gY29lcmNlUGxhY2VtZW50KHApIHtcbiAgcmV0dXJuIHAgPT09ICdhdXRvJyA/ICdib3R0b20nIDogcDtcbn07XG52YXIgbWVudUNTUyA9IGZ1bmN0aW9uIG1lbnVDU1MoX3JlZjIsIHVuc3R5bGVkKSB7XG4gIHZhciBfb2JqZWN0U3ByZWFkMjtcbiAgdmFyIHBsYWNlbWVudCA9IF9yZWYyLnBsYWNlbWVudCxcbiAgICBfcmVmMiR0aGVtZSA9IF9yZWYyLnRoZW1lLFxuICAgIGJvcmRlclJhZGl1cyA9IF9yZWYyJHRoZW1lLmJvcmRlclJhZGl1cyxcbiAgICBzcGFjaW5nID0gX3JlZjIkdGhlbWUuc3BhY2luZyxcbiAgICBjb2xvcnMgPSBfcmVmMiR0aGVtZS5jb2xvcnM7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKChfb2JqZWN0U3ByZWFkMiA9IHtcbiAgICBsYWJlbDogJ21lbnUnXG4gIH0sIF9kZWZpbmVQcm9wZXJ0eShfb2JqZWN0U3ByZWFkMiwgYWxpZ25Ub0NvbnRyb2wocGxhY2VtZW50KSwgJzEwMCUnKSwgX2RlZmluZVByb3BlcnR5KF9vYmplY3RTcHJlYWQyLCBcInBvc2l0aW9uXCIsICdhYnNvbHV0ZScpLCBfZGVmaW5lUHJvcGVydHkoX29iamVjdFNwcmVhZDIsIFwid2lkdGhcIiwgJzEwMCUnKSwgX2RlZmluZVByb3BlcnR5KF9vYmplY3RTcHJlYWQyLCBcInpJbmRleFwiLCAxKSwgX29iamVjdFNwcmVhZDIpLCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3JzLm5ldXRyYWwwLFxuICAgIGJvcmRlclJhZGl1czogYm9yZGVyUmFkaXVzLFxuICAgIGJveFNoYWRvdzogJzAgMCAwIDFweCBoc2xhKDAsIDAlLCAwJSwgMC4xKSwgMCA0cHggMTFweCBoc2xhKDAsIDAlLCAwJSwgMC4xKScsXG4gICAgbWFyZ2luQm90dG9tOiBzcGFjaW5nLm1lbnVHdXR0ZXIsXG4gICAgbWFyZ2luVG9wOiBzcGFjaW5nLm1lbnVHdXR0ZXJcbiAgfSk7XG59O1xudmFyIFBvcnRhbFBsYWNlbWVudENvbnRleHQgPSAvKiNfX1BVUkVfXyovY3JlYXRlQ29udGV4dChudWxsKTtcblxuLy8gTk9URTogaW50ZXJuYWwgb25seVxudmFyIE1lbnVQbGFjZXIgPSBmdW5jdGlvbiBNZW51UGxhY2VyKHByb3BzKSB7XG4gIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgIG1pbk1lbnVIZWlnaHQgPSBwcm9wcy5taW5NZW51SGVpZ2h0LFxuICAgIG1heE1lbnVIZWlnaHQgPSBwcm9wcy5tYXhNZW51SGVpZ2h0LFxuICAgIG1lbnVQbGFjZW1lbnQgPSBwcm9wcy5tZW51UGxhY2VtZW50LFxuICAgIG1lbnVQb3NpdGlvbiA9IHByb3BzLm1lbnVQb3NpdGlvbixcbiAgICBtZW51U2hvdWxkU2Nyb2xsSW50b1ZpZXcgPSBwcm9wcy5tZW51U2hvdWxkU2Nyb2xsSW50b1ZpZXcsXG4gICAgdGhlbWUgPSBwcm9wcy50aGVtZTtcbiAgdmFyIF9yZWYzID0gdXNlQ29udGV4dChQb3J0YWxQbGFjZW1lbnRDb250ZXh0KSB8fCB7fSxcbiAgICBzZXRQb3J0YWxQbGFjZW1lbnQgPSBfcmVmMy5zZXRQb3J0YWxQbGFjZW1lbnQ7XG4gIHZhciByZWYgPSB1c2VSZWYobnVsbCk7XG4gIHZhciBfdXNlU3RhdGUgPSB1c2VTdGF0ZShtYXhNZW51SGVpZ2h0KSxcbiAgICBfdXNlU3RhdGUyID0gX3NsaWNlZFRvQXJyYXkoX3VzZVN0YXRlLCAyKSxcbiAgICBtYXhIZWlnaHQgPSBfdXNlU3RhdGUyWzBdLFxuICAgIHNldE1heEhlaWdodCA9IF91c2VTdGF0ZTJbMV07XG4gIHZhciBfdXNlU3RhdGUzID0gdXNlU3RhdGUobnVsbCksXG4gICAgX3VzZVN0YXRlNCA9IF9zbGljZWRUb0FycmF5KF91c2VTdGF0ZTMsIDIpLFxuICAgIHBsYWNlbWVudCA9IF91c2VTdGF0ZTRbMF0sXG4gICAgc2V0UGxhY2VtZW50ID0gX3VzZVN0YXRlNFsxXTtcbiAgdmFyIGNvbnRyb2xIZWlnaHQgPSB0aGVtZS5zcGFjaW5nLmNvbnRyb2xIZWlnaHQ7XG4gIHVzZUxheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG1lbnVFbCA9IHJlZi5jdXJyZW50O1xuICAgIGlmICghbWVudUVsKSByZXR1cm47XG5cbiAgICAvLyBETyBOT1Qgc2Nyb2xsIGlmIHBvc2l0aW9uIGlzIGZpeGVkXG4gICAgdmFyIGlzRml4ZWRQb3NpdGlvbiA9IG1lbnVQb3NpdGlvbiA9PT0gJ2ZpeGVkJztcbiAgICB2YXIgc2hvdWxkU2Nyb2xsID0gbWVudVNob3VsZFNjcm9sbEludG9WaWV3ICYmICFpc0ZpeGVkUG9zaXRpb247XG4gICAgdmFyIHN0YXRlID0gZ2V0TWVudVBsYWNlbWVudCh7XG4gICAgICBtYXhIZWlnaHQ6IG1heE1lbnVIZWlnaHQsXG4gICAgICBtZW51RWw6IG1lbnVFbCxcbiAgICAgIG1pbkhlaWdodDogbWluTWVudUhlaWdodCxcbiAgICAgIHBsYWNlbWVudDogbWVudVBsYWNlbWVudCxcbiAgICAgIHNob3VsZFNjcm9sbDogc2hvdWxkU2Nyb2xsLFxuICAgICAgaXNGaXhlZFBvc2l0aW9uOiBpc0ZpeGVkUG9zaXRpb24sXG4gICAgICBjb250cm9sSGVpZ2h0OiBjb250cm9sSGVpZ2h0XG4gICAgfSk7XG4gICAgc2V0TWF4SGVpZ2h0KHN0YXRlLm1heEhlaWdodCk7XG4gICAgc2V0UGxhY2VtZW50KHN0YXRlLnBsYWNlbWVudCk7XG4gICAgc2V0UG9ydGFsUGxhY2VtZW50ID09PSBudWxsIHx8IHNldFBvcnRhbFBsYWNlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2V0UG9ydGFsUGxhY2VtZW50KHN0YXRlLnBsYWNlbWVudCk7XG4gIH0sIFttYXhNZW51SGVpZ2h0LCBtZW51UGxhY2VtZW50LCBtZW51UG9zaXRpb24sIG1lbnVTaG91bGRTY3JvbGxJbnRvVmlldywgbWluTWVudUhlaWdodCwgc2V0UG9ydGFsUGxhY2VtZW50LCBjb250cm9sSGVpZ2h0XSk7XG4gIHJldHVybiBjaGlsZHJlbih7XG4gICAgcmVmOiByZWYsXG4gICAgcGxhY2VyUHJvcHM6IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgcHJvcHMpLCB7fSwge1xuICAgICAgcGxhY2VtZW50OiBwbGFjZW1lbnQgfHwgY29lcmNlUGxhY2VtZW50KG1lbnVQbGFjZW1lbnQpLFxuICAgICAgbWF4SGVpZ2h0OiBtYXhIZWlnaHRcbiAgICB9KVxuICB9KTtcbn07XG52YXIgTWVudSA9IGZ1bmN0aW9uIE1lbnUocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgaW5uZXJSZWYgPSBwcm9wcy5pbm5lclJlZixcbiAgICBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcztcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ21lbnUnLCB7XG4gICAgbWVudTogdHJ1ZVxuICB9KSwge1xuICAgIHJlZjogaW5uZXJSZWZcbiAgfSwgaW5uZXJQcm9wcyksIGNoaWxkcmVuKTtcbn07XG52YXIgTWVudSQxID0gTWVudTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNZW51IExpc3Rcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgbWVudUxpc3RDU1MgPSBmdW5jdGlvbiBtZW51TGlzdENTUyhfcmVmNCwgdW5zdHlsZWQpIHtcbiAgdmFyIG1heEhlaWdodCA9IF9yZWY0Lm1heEhlaWdodCxcbiAgICBiYXNlVW5pdCA9IF9yZWY0LnRoZW1lLnNwYWNpbmcuYmFzZVVuaXQ7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBtYXhIZWlnaHQ6IG1heEhlaWdodCxcbiAgICBvdmVyZmxvd1k6ICdhdXRvJyxcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAvLyByZXF1aXJlZCBmb3Igb2Zmc2V0W0hlaWdodCwgVG9wXSA+IGtleWJvYXJkIHNjcm9sbFxuICAgIFdlYmtpdE92ZXJmbG93U2Nyb2xsaW5nOiAndG91Y2gnXG4gIH0sIHVuc3R5bGVkID8ge30gOiB7XG4gICAgcGFkZGluZ0JvdHRvbTogYmFzZVVuaXQsXG4gICAgcGFkZGluZ1RvcDogYmFzZVVuaXRcbiAgfSk7XG59O1xudmFyIE1lbnVMaXN0ID0gZnVuY3Rpb24gTWVudUxpc3QocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IHByb3BzLmlubmVyUHJvcHMsXG4gICAgaW5uZXJSZWYgPSBwcm9wcy5pbm5lclJlZixcbiAgICBpc011bHRpID0gcHJvcHMuaXNNdWx0aTtcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ21lbnVMaXN0Jywge1xuICAgICdtZW51LWxpc3QnOiB0cnVlLFxuICAgICdtZW51LWxpc3QtLWlzLW11bHRpJzogaXNNdWx0aVxuICB9KSwge1xuICAgIHJlZjogaW5uZXJSZWZcbiAgfSwgaW5uZXJQcm9wcyksIGNoaWxkcmVuKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWVudSBOb3RpY2VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxudmFyIG5vdGljZUNTUyA9IGZ1bmN0aW9uIG5vdGljZUNTUyhfcmVmNSwgdW5zdHlsZWQpIHtcbiAgdmFyIF9yZWY1JHRoZW1lID0gX3JlZjUudGhlbWUsXG4gICAgYmFzZVVuaXQgPSBfcmVmNSR0aGVtZS5zcGFjaW5nLmJhc2VVbml0LFxuICAgIGNvbG9ycyA9IF9yZWY1JHRoZW1lLmNvbG9ycztcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe1xuICAgIHRleHRBbGlnbjogJ2NlbnRlcidcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBjb2xvcjogY29sb3JzLm5ldXRyYWw0MCxcbiAgICBwYWRkaW5nOiBcIlwiLmNvbmNhdChiYXNlVW5pdCAqIDIsIFwicHggXCIpLmNvbmNhdChiYXNlVW5pdCAqIDMsIFwicHhcIilcbiAgfSk7XG59O1xudmFyIG5vT3B0aW9uc01lc3NhZ2VDU1MgPSBub3RpY2VDU1M7XG52YXIgbG9hZGluZ01lc3NhZ2VDU1MgPSBub3RpY2VDU1M7XG52YXIgTm9PcHRpb25zTWVzc2FnZSA9IGZ1bmN0aW9uIE5vT3B0aW9uc01lc3NhZ2UoX3JlZjYpIHtcbiAgdmFyIF9yZWY2JGNoaWxkcmVuID0gX3JlZjYuY2hpbGRyZW4sXG4gICAgY2hpbGRyZW4gPSBfcmVmNiRjaGlsZHJlbiA9PT0gdm9pZCAwID8gJ05vIG9wdGlvbnMnIDogX3JlZjYkY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IF9yZWY2LmlubmVyUHJvcHMsXG4gICAgcmVzdFByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9yZWY2LCBfZXhjbHVkZWQkMyk7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCByZXN0UHJvcHMpLCB7fSwge1xuICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcbiAgICBpbm5lclByb3BzOiBpbm5lclByb3BzXG4gIH0pLCAnbm9PcHRpb25zTWVzc2FnZScsIHtcbiAgICAnbWVudS1ub3RpY2UnOiB0cnVlLFxuICAgICdtZW51LW5vdGljZS0tbm8tb3B0aW9ucyc6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpLCBjaGlsZHJlbik7XG59O1xudmFyIExvYWRpbmdNZXNzYWdlID0gZnVuY3Rpb24gTG9hZGluZ01lc3NhZ2UoX3JlZjcpIHtcbiAgdmFyIF9yZWY3JGNoaWxkcmVuID0gX3JlZjcuY2hpbGRyZW4sXG4gICAgY2hpbGRyZW4gPSBfcmVmNyRjaGlsZHJlbiA9PT0gdm9pZCAwID8gJ0xvYWRpbmcuLi4nIDogX3JlZjckY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IF9yZWY3LmlubmVyUHJvcHMsXG4gICAgcmVzdFByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9yZWY3LCBfZXhjbHVkZWQyJDEpO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBnZXRTdHlsZVByb3BzKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgcmVzdFByb3BzKSwge30sIHtcbiAgICBjaGlsZHJlbjogY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wczogaW5uZXJQcm9wc1xuICB9KSwgJ2xvYWRpbmdNZXNzYWdlJywge1xuICAgICdtZW51LW5vdGljZSc6IHRydWUsXG4gICAgJ21lbnUtbm90aWNlLS1sb2FkaW5nJzogdHJ1ZVxuICB9KSwgaW5uZXJQcm9wcyksIGNoaWxkcmVuKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWVudSBQb3J0YWxcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgbWVudVBvcnRhbENTUyA9IGZ1bmN0aW9uIG1lbnVQb3J0YWxDU1MoX3JlZjgpIHtcbiAgdmFyIHJlY3QgPSBfcmVmOC5yZWN0LFxuICAgIG9mZnNldCA9IF9yZWY4Lm9mZnNldCxcbiAgICBwb3NpdGlvbiA9IF9yZWY4LnBvc2l0aW9uO1xuICByZXR1cm4ge1xuICAgIGxlZnQ6IHJlY3QubGVmdCxcbiAgICBwb3NpdGlvbjogcG9zaXRpb24sXG4gICAgdG9wOiBvZmZzZXQsXG4gICAgd2lkdGg6IHJlY3Qud2lkdGgsXG4gICAgekluZGV4OiAxXG4gIH07XG59O1xudmFyIE1lbnVQb3J0YWwgPSBmdW5jdGlvbiBNZW51UG9ydGFsKHByb3BzKSB7XG4gIHZhciBhcHBlbmRUbyA9IHByb3BzLmFwcGVuZFRvLFxuICAgIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgY29udHJvbEVsZW1lbnQgPSBwcm9wcy5jb250cm9sRWxlbWVudCxcbiAgICBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcyxcbiAgICBtZW51UGxhY2VtZW50ID0gcHJvcHMubWVudVBsYWNlbWVudCxcbiAgICBtZW51UG9zaXRpb24gPSBwcm9wcy5tZW51UG9zaXRpb247XG4gIHZhciBtZW51UG9ydGFsUmVmID0gdXNlUmVmKG51bGwpO1xuICB2YXIgY2xlYW51cFJlZiA9IHVzZVJlZihudWxsKTtcbiAgdmFyIF91c2VTdGF0ZTUgPSB1c2VTdGF0ZShjb2VyY2VQbGFjZW1lbnQobWVudVBsYWNlbWVudCkpLFxuICAgIF91c2VTdGF0ZTYgPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdGU1LCAyKSxcbiAgICBwbGFjZW1lbnQgPSBfdXNlU3RhdGU2WzBdLFxuICAgIHNldFBvcnRhbFBsYWNlbWVudCA9IF91c2VTdGF0ZTZbMV07XG4gIHZhciBwb3J0YWxQbGFjZW1lbnRDb250ZXh0ID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNldFBvcnRhbFBsYWNlbWVudDogc2V0UG9ydGFsUGxhY2VtZW50XG4gICAgfTtcbiAgfSwgW10pO1xuICB2YXIgX3VzZVN0YXRlNyA9IHVzZVN0YXRlKG51bGwpLFxuICAgIF91c2VTdGF0ZTggPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdGU3LCAyKSxcbiAgICBjb21wdXRlZFBvc2l0aW9uID0gX3VzZVN0YXRlOFswXSxcbiAgICBzZXRDb21wdXRlZFBvc2l0aW9uID0gX3VzZVN0YXRlOFsxXTtcbiAgdmFyIHVwZGF0ZUNvbXB1dGVkUG9zaXRpb24gPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFjb250cm9sRWxlbWVudCkgcmV0dXJuO1xuICAgIHZhciByZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRPYmooY29udHJvbEVsZW1lbnQpO1xuICAgIHZhciBzY3JvbGxEaXN0YW5jZSA9IG1lbnVQb3NpdGlvbiA9PT0gJ2ZpeGVkJyA/IDAgOiB3aW5kb3cucGFnZVlPZmZzZXQ7XG4gICAgdmFyIG9mZnNldCA9IHJlY3RbcGxhY2VtZW50XSArIHNjcm9sbERpc3RhbmNlO1xuICAgIGlmIChvZmZzZXQgIT09IChjb21wdXRlZFBvc2l0aW9uID09PSBudWxsIHx8IGNvbXB1dGVkUG9zaXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbXB1dGVkUG9zaXRpb24ub2Zmc2V0KSB8fCByZWN0LmxlZnQgIT09IChjb21wdXRlZFBvc2l0aW9uID09PSBudWxsIHx8IGNvbXB1dGVkUG9zaXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbXB1dGVkUG9zaXRpb24ucmVjdC5sZWZ0KSB8fCByZWN0LndpZHRoICE9PSAoY29tcHV0ZWRQb3NpdGlvbiA9PT0gbnVsbCB8fCBjb21wdXRlZFBvc2l0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb21wdXRlZFBvc2l0aW9uLnJlY3Qud2lkdGgpKSB7XG4gICAgICBzZXRDb21wdXRlZFBvc2l0aW9uKHtcbiAgICAgICAgb2Zmc2V0OiBvZmZzZXQsXG4gICAgICAgIHJlY3Q6IHJlY3RcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2NvbnRyb2xFbGVtZW50LCBtZW51UG9zaXRpb24sIHBsYWNlbWVudCwgY29tcHV0ZWRQb3NpdGlvbiA9PT0gbnVsbCB8fCBjb21wdXRlZFBvc2l0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb21wdXRlZFBvc2l0aW9uLm9mZnNldCwgY29tcHV0ZWRQb3NpdGlvbiA9PT0gbnVsbCB8fCBjb21wdXRlZFBvc2l0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb21wdXRlZFBvc2l0aW9uLnJlY3QubGVmdCwgY29tcHV0ZWRQb3NpdGlvbiA9PT0gbnVsbCB8fCBjb21wdXRlZFBvc2l0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb21wdXRlZFBvc2l0aW9uLnJlY3Qud2lkdGhdKTtcbiAgdXNlTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICB1cGRhdGVDb21wdXRlZFBvc2l0aW9uKCk7XG4gIH0sIFt1cGRhdGVDb21wdXRlZFBvc2l0aW9uXSk7XG4gIHZhciBydW5BdXRvVXBkYXRlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKCkge1xuICAgIGlmICh0eXBlb2YgY2xlYW51cFJlZi5jdXJyZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjbGVhbnVwUmVmLmN1cnJlbnQoKTtcbiAgICAgIGNsZWFudXBSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfVxuICAgIGlmIChjb250cm9sRWxlbWVudCAmJiBtZW51UG9ydGFsUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNsZWFudXBSZWYuY3VycmVudCA9IGF1dG9VcGRhdGUoY29udHJvbEVsZW1lbnQsIG1lbnVQb3J0YWxSZWYuY3VycmVudCwgdXBkYXRlQ29tcHV0ZWRQb3NpdGlvbiwge1xuICAgICAgICBlbGVtZW50UmVzaXplOiAnUmVzaXplT2JzZXJ2ZXInIGluIHdpbmRvd1xuICAgICAgfSk7XG4gICAgfVxuICB9LCBbY29udHJvbEVsZW1lbnQsIHVwZGF0ZUNvbXB1dGVkUG9zaXRpb25dKTtcbiAgdXNlTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBydW5BdXRvVXBkYXRlKCk7XG4gIH0sIFtydW5BdXRvVXBkYXRlXSk7XG4gIHZhciBzZXRNZW51UG9ydGFsRWxlbWVudCA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChtZW51UG9ydGFsRWxlbWVudCkge1xuICAgIG1lbnVQb3J0YWxSZWYuY3VycmVudCA9IG1lbnVQb3J0YWxFbGVtZW50O1xuICAgIHJ1bkF1dG9VcGRhdGUoKTtcbiAgfSwgW3J1bkF1dG9VcGRhdGVdKTtcblxuICAvLyBiYWlsIGVhcmx5IGlmIHJlcXVpcmVkIGVsZW1lbnRzIGFyZW4ndCBwcmVzZW50XG4gIGlmICghYXBwZW5kVG8gJiYgbWVudVBvc2l0aW9uICE9PSAnZml4ZWQnIHx8ICFjb21wdXRlZFBvc2l0aW9uKSByZXR1cm4gbnVsbDtcblxuICAvLyBzYW1lIHdyYXBwZXIgZWxlbWVudCB3aGV0aGVyIGZpeGVkIG9yIHBvcnRhbGxlZFxuICB2YXIgbWVudVdyYXBwZXIgPSBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe1xuICAgIHJlZjogc2V0TWVudVBvcnRhbEVsZW1lbnRcbiAgfSwgZ2V0U3R5bGVQcm9wcyhfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHByb3BzKSwge30sIHtcbiAgICBvZmZzZXQ6IGNvbXB1dGVkUG9zaXRpb24ub2Zmc2V0LFxuICAgIHBvc2l0aW9uOiBtZW51UG9zaXRpb24sXG4gICAgcmVjdDogY29tcHV0ZWRQb3NpdGlvbi5yZWN0XG4gIH0pLCAnbWVudVBvcnRhbCcsIHtcbiAgICAnbWVudS1wb3J0YWwnOiB0cnVlXG4gIH0pLCBpbm5lclByb3BzKSwgY2hpbGRyZW4pO1xuICByZXR1cm4ganN4KFBvcnRhbFBsYWNlbWVudENvbnRleHQuUHJvdmlkZXIsIHtcbiAgICB2YWx1ZTogcG9ydGFsUGxhY2VtZW50Q29udGV4dFxuICB9LCBhcHBlbmRUbyA/IC8qI19fUFVSRV9fKi9jcmVhdGVQb3J0YWwobWVudVdyYXBwZXIsIGFwcGVuZFRvKSA6IG1lbnVXcmFwcGVyKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUm9vdCBDb250YWluZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgY29udGFpbmVyQ1NTID0gZnVuY3Rpb24gY29udGFpbmVyQ1NTKF9yZWYpIHtcbiAgdmFyIGlzRGlzYWJsZWQgPSBfcmVmLmlzRGlzYWJsZWQsXG4gICAgaXNSdGwgPSBfcmVmLmlzUnRsO1xuICByZXR1cm4ge1xuICAgIGxhYmVsOiAnY29udGFpbmVyJyxcbiAgICBkaXJlY3Rpb246IGlzUnRsID8gJ3J0bCcgOiB1bmRlZmluZWQsXG4gICAgcG9pbnRlckV2ZW50czogaXNEaXNhYmxlZCA/ICdub25lJyA6IHVuZGVmaW5lZCxcbiAgICAvLyBjYW5jZWwgbW91c2UgZXZlbnRzIHdoZW4gZGlzYWJsZWRcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJ1xuICB9O1xufTtcbnZhciBTZWxlY3RDb250YWluZXIgPSBmdW5jdGlvbiBTZWxlY3RDb250YWluZXIocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IHByb3BzLmlubmVyUHJvcHMsXG4gICAgaXNEaXNhYmxlZCA9IHByb3BzLmlzRGlzYWJsZWQsXG4gICAgaXNSdGwgPSBwcm9wcy5pc1J0bDtcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2NvbnRhaW5lcicsIHtcbiAgICAnLS1pcy1kaXNhYmxlZCc6IGlzRGlzYWJsZWQsXG4gICAgJy0taXMtcnRsJzogaXNSdGxcbiAgfSksIGlubmVyUHJvcHMpLCBjaGlsZHJlbik7XG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFZhbHVlIENvbnRhaW5lclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnZhciB2YWx1ZUNvbnRhaW5lckNTUyA9IGZ1bmN0aW9uIHZhbHVlQ29udGFpbmVyQ1NTKF9yZWYyLCB1bnN0eWxlZCkge1xuICB2YXIgc3BhY2luZyA9IF9yZWYyLnRoZW1lLnNwYWNpbmcsXG4gICAgaXNNdWx0aSA9IF9yZWYyLmlzTXVsdGksXG4gICAgaGFzVmFsdWUgPSBfcmVmMi5oYXNWYWx1ZSxcbiAgICBjb250cm9sU2hvdWxkUmVuZGVyVmFsdWUgPSBfcmVmMi5zZWxlY3RQcm9wcy5jb250cm9sU2hvdWxkUmVuZGVyVmFsdWU7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBkaXNwbGF5OiBpc011bHRpICYmIGhhc1ZhbHVlICYmIGNvbnRyb2xTaG91bGRSZW5kZXJWYWx1ZSA/ICdmbGV4JyA6ICdncmlkJyxcbiAgICBmbGV4OiAxLFxuICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgV2Via2l0T3ZlcmZsb3dTY3JvbGxpbmc6ICd0b3VjaCcsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nXG4gIH0sIHVuc3R5bGVkID8ge30gOiB7XG4gICAgcGFkZGluZzogXCJcIi5jb25jYXQoc3BhY2luZy5iYXNlVW5pdCAvIDIsIFwicHggXCIpLmNvbmNhdChzcGFjaW5nLmJhc2VVbml0ICogMiwgXCJweFwiKVxuICB9KTtcbn07XG52YXIgVmFsdWVDb250YWluZXIgPSBmdW5jdGlvbiBWYWx1ZUNvbnRhaW5lcihwcm9wcykge1xuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcyxcbiAgICBpc011bHRpID0gcHJvcHMuaXNNdWx0aSxcbiAgICBoYXNWYWx1ZSA9IHByb3BzLmhhc1ZhbHVlO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAndmFsdWVDb250YWluZXInLCB7XG4gICAgJ3ZhbHVlLWNvbnRhaW5lcic6IHRydWUsXG4gICAgJ3ZhbHVlLWNvbnRhaW5lci0taXMtbXVsdGknOiBpc011bHRpLFxuICAgICd2YWx1ZS1jb250YWluZXItLWhhcy12YWx1ZSc6IGhhc1ZhbHVlXG4gIH0pLCBpbm5lclByb3BzKSwgY2hpbGRyZW4pO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBJbmRpY2F0b3IgQ29udGFpbmVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxudmFyIGluZGljYXRvcnNDb250YWluZXJDU1MgPSBmdW5jdGlvbiBpbmRpY2F0b3JzQ29udGFpbmVyQ1NTKCkge1xuICByZXR1cm4ge1xuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGFsaWduU2VsZjogJ3N0cmV0Y2gnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4U2hyaW5rOiAwXG4gIH07XG59O1xudmFyIEluZGljYXRvcnNDb250YWluZXIgPSBmdW5jdGlvbiBJbmRpY2F0b3JzQ29udGFpbmVyKHByb3BzKSB7XG4gIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgIGlubmVyUHJvcHMgPSBwcm9wcy5pbm5lclByb3BzO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnaW5kaWNhdG9yc0NvbnRhaW5lcicsIHtcbiAgICBpbmRpY2F0b3JzOiB0cnVlXG4gIH0pLCBpbm5lclByb3BzKSwgY2hpbGRyZW4pO1xufTtcblxudmFyIF90ZW1wbGF0ZU9iamVjdDtcbnZhciBfZXhjbHVkZWQkMiA9IFtcInNpemVcIl0sXG4gIF9leGNsdWRlZDIgPSBbXCJpbm5lclByb3BzXCIsIFwiaXNSdGxcIiwgXCJzaXplXCJdO1xuZnVuY3Rpb24gX0VNT1RJT05fU1RSSU5HSUZJRURfQ1NTX0VSUk9SX18oKSB7IHJldHVybiBcIllvdSBoYXZlIHRyaWVkIHRvIHN0cmluZ2lmeSBvYmplY3QgcmV0dXJuZWQgZnJvbSBgY3NzYCBmdW5jdGlvbi4gSXQgaXNuJ3Qgc3VwcG9zZWQgdG8gYmUgdXNlZCBkaXJlY3RseSAoZS5nLiBhcyB2YWx1ZSBvZiB0aGUgYGNsYXNzTmFtZWAgcHJvcCksIGJ1dCByYXRoZXIgaGFuZGVkIHRvIGVtb3Rpb24gc28gaXQgY2FuIGhhbmRsZSBpdCAoZS5nLiBhcyB2YWx1ZSBvZiBgY3NzYCBwcm9wKS5cIjsgfVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERyb3Bkb3duICYgQ2xlYXIgSWNvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxudmFyIF9yZWYyID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8ge1xuICBuYW1lOiBcIjhtbWtjZ1wiLFxuICBzdHlsZXM6IFwiZGlzcGxheTppbmxpbmUtYmxvY2s7ZmlsbDpjdXJyZW50Q29sb3I7bGluZS1oZWlnaHQ6MTtzdHJva2U6Y3VycmVudENvbG9yO3N0cm9rZS13aWR0aDowXCJcbn0gOiB7XG4gIG5hbWU6IFwidGo1YmRlLVN2Z1wiLFxuICBzdHlsZXM6IFwiZGlzcGxheTppbmxpbmUtYmxvY2s7ZmlsbDpjdXJyZW50Q29sb3I7bGluZS1oZWlnaHQ6MTtzdHJva2U6Y3VycmVudENvbG9yO3N0cm9rZS13aWR0aDowO2xhYmVsOlN2ZztcIixcbiAgbWFwOiBcIi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYkltbHVaR2xqWVhSdmNuTXVkSE40SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVhsQ1NTSXNJbVpwYkdVaU9pSnBibVJwWTJGMGIzSnpMblJ6ZUNJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLaUJBYW5ONElHcHplQ0FxTDF4dWFXMXdiM0owSUhzZ1NsTllMQ0JTWldGamRFNXZaR1VnZlNCbWNtOXRJQ2R5WldGamRDYzdYRzVwYlhCdmNuUWdleUJxYzNnc0lHdGxlV1p5WVcxbGN5QjlJR1p5YjIwZ0owQmxiVzkwYVc5dUwzSmxZV04wSnp0Y2JseHVhVzF3YjNKMElIdGNiaUFnUTI5dGJXOXVVSEp2Y0hOQmJtUkRiR0Z6YzA1aGJXVXNYRzRnSUVOVFUwOWlhbVZqZEZkcGRHaE1ZV0psYkN4Y2JpQWdSM0p2ZFhCQ1lYTmxMRnh1ZlNCbWNtOXRJQ2N1TGk5MGVYQmxjeWM3WEc1cGJYQnZjblFnZXlCblpYUlRkSGxzWlZCeWIzQnpJSDBnWm5KdmJTQW5MaTR2ZFhScGJITW5PMXh1WEc0dkx5QTlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDFjYmk4dklFUnliM0JrYjNkdUlDWWdRMnhsWVhJZ1NXTnZibk5jYmk4dklEMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVnh1WEc1amIyNXpkQ0JUZG1jZ1BTQW9lMXh1SUNCemFYcGxMRnh1SUNBdUxpNXdjbTl3YzF4dWZUb2dTbE5ZTGtsdWRISnBibk5wWTBWc1pXMWxiblJ6V3lkemRtY25YU0FtSUhzZ2MybDZaVG9nYm5WdFltVnlJSDBwSUQwK0lDaGNiaUFnUEhOMloxeHVJQ0FnSUdobGFXZG9kRDE3YzJsNlpYMWNiaUFnSUNCM2FXUjBhRDE3YzJsNlpYMWNiaUFnSUNCMmFXVjNRbTk0UFZ3aU1DQXdJREl3SURJd1hDSmNiaUFnSUNCaGNtbGhMV2hwWkdSbGJqMWNJblJ5ZFdWY0lseHVJQ0FnSUdadlkzVnpZV0pzWlQxY0ltWmhiSE5sWENKY2JpQWdJQ0JqYzNNOWUzdGNiaUFnSUNBZ0lHUnBjM0JzWVhrNklDZHBibXhwYm1VdFlteHZZMnNuTEZ4dUlDQWdJQ0FnWm1sc2JEb2dKMk4xY25KbGJuUkRiMnh2Y2ljc1hHNGdJQ0FnSUNCc2FXNWxTR1ZwWjJoME9pQXhMRnh1SUNBZ0lDQWdjM1J5YjJ0bE9pQW5ZM1Z5Y21WdWRFTnZiRzl5Snl4Y2JpQWdJQ0FnSUhOMGNtOXJaVmRwWkhSb09pQXdMRnh1SUNBZ0lIMTlYRzRnSUNBZ2V5NHVMbkJ5YjNCemZWeHVJQ0F2UGx4dUtUdGNibHh1Wlhod2IzSjBJSFI1Y0dVZ1EzSnZjM05KWTI5dVVISnZjSE1nUFNCS1UxZ3VTVzUwY21sdWMybGpSV3hsYldWdWRITmJKM04yWnlkZElDWWdleUJ6YVhwbFB6b2diblZ0WW1WeUlIMDdYRzVsZUhCdmNuUWdZMjl1YzNRZ1EzSnZjM05KWTI5dUlEMGdLSEJ5YjNCek9pQkRjbTl6YzBsamIyNVFjbTl3Y3lrZ1BUNGdLRnh1SUNBOFUzWm5JSE5wZW1VOWV6SXdmU0I3TGk0dWNISnZjSE45UGx4dUlDQWdJRHh3WVhSb0lHUTlYQ0pOTVRRdU16UTRJREUwTGpnME9XTXRNQzQwTmprZ01DNDBOamt0TVM0eU1qa2dNQzQwTmprdE1TNDJPVGNnTUd3dE1pNDJOVEV0TXk0d016QXRNaTQyTlRFZ015NHdNamxqTFRBdU5EWTVJREF1TkRZNUxURXVNakk1SURBdU5EWTVMVEV1TmprM0lEQXRNQzQwTmprdE1DNDBOamt0TUM0ME5qa3RNUzR5TWprZ01DMHhMalk1TjJ3eUxqYzFPQzB6TGpFMUxUSXVOelU1TFRNdU1UVXlZeTB3TGpRMk9TMHdMalEyT1Mwd0xqUTJPUzB4TGpJeU9DQXdMVEV1TmprM2N6RXVNakk0TFRBdU5EWTVJREV1TmprM0lEQnNNaTQyTlRJZ015NHdNekVnTWk0Mk5URXRNeTR3TXpGak1DNDBOamt0TUM0ME5qa2dNUzR5TWpndE1DNDBOamtnTVM0Mk9UY2dNSE13TGpRMk9TQXhMakl5T1NBd0lERXVOamszYkMweUxqYzFPQ0F6TGpFMU1pQXlMamMxT0NBekxqRTFZekF1TkRZNUlEQXVORFk1SURBdU5EWTVJREV1TWpJNUlEQWdNUzQyT1RoNlhDSWdMejVjYmlBZ1BDOVRkbWMrWEc0cE8xeHVaWGh3YjNKMElIUjVjR1VnUkc5M2JrTm9aWFp5YjI1UWNtOXdjeUE5SUVwVFdDNUpiblJ5YVc1emFXTkZiR1Z0Wlc1MGMxc25jM1puSjEwZ0ppQjdJSE5wZW1VL09pQnVkVzFpWlhJZ2ZUdGNibVY0Y0c5eWRDQmpiMjV6ZENCRWIzZHVRMmhsZG5KdmJpQTlJQ2h3Y205d2N6b2dSRzkzYmtOb1pYWnliMjVRY205d2N5a2dQVDRnS0Z4dUlDQThVM1puSUhOcGVtVTllekl3ZlNCN0xpNHVjSEp2Y0hOOVBseHVJQ0FnSUR4d1lYUm9JR1E5WENKTk5DNDFNVFlnTnk0MU5EaGpNQzQwTXpZdE1DNDBORFlnTVM0d05ETXRNQzQwT0RFZ01TNDFOellnTUd3ekxqa3dPQ0F6TGpjME55QXpMamt3T0MwekxqYzBOMk13TGpVek15MHdMalE0TVNBeExqRTBNUzB3TGpRME5pQXhMalUzTkNBd0lEQXVORE0ySURBdU5EUTFJREF1TkRBNElERXVNVGszSURBZ01TNDJNVFV0TUM0ME1EWWdNQzQwTVRndE5DNDJPVFVnTkM0MU1ESXROQzQyT1RVZ05DNDFNREl0TUM0eU1UY2dNQzR5TWpNdE1DNDFNRElnTUM0ek16VXRNQzQzT0RjZ01DNHpNelZ6TFRBdU5UY3RNQzR4TVRJdE1DNDNPRGt0TUM0ek16VmpNQ0F3TFRRdU1qZzNMVFF1TURnMExUUXVOamsxTFRRdU5UQXljeTB3TGpRek5pMHhMakUzSURBdE1TNDJNVFY2WENJZ0x6NWNiaUFnUEM5VGRtYytYRzRwTzF4dVhHNHZMeUE5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQxY2JpOHZJRVJ5YjNCa2IzZHVJQ1lnUTJ4bFlYSWdRblYwZEc5dWMxeHVMeThnUFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVhHNWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdSSEp2Y0dSdmQyNUpibVJwWTJGMGIzSlFjbTl3Y3p4Y2JpQWdUM0IwYVc5dUlEMGdkVzVyYm05M2JpeGNiaUFnU1hOTmRXeDBhU0JsZUhSbGJtUnpJR0p2YjJ4bFlXNGdQU0JpYjI5c1pXRnVMRnh1SUNCSGNtOTFjQ0JsZUhSbGJtUnpJRWR5YjNWd1FtRnpaVHhQY0hScGIyNCtJRDBnUjNKdmRYQkNZWE5sUEU5d2RHbHZiajVjYmo0Z1pYaDBaVzVrY3lCRGIyMXRiMjVRY205d2MwRnVaRU5zWVhOelRtRnRaVHhQY0hScGIyNHNJRWx6VFhWc2RHa3NJRWR5YjNWd1BpQjdYRzRnSUM4cUtpQlVhR1VnWTJocGJHUnlaVzRnZEc4Z1ltVWdjbVZ1WkdWeVpXUWdhVzV6YVdSbElIUm9aU0JwYm1ScFkyRjBiM0l1SUNvdlhHNGdJR05vYVd4a2NtVnVQem9nVW1WaFkzUk9iMlJsTzF4dUlDQXZLaW9nVUhKdmNITWdkR2hoZENCM2FXeHNJR0psSUhCaGMzTmxaQ0J2YmlCMGJ5QjBhR1VnWTJocGJHUnlaVzR1SUNvdlhHNGdJR2x1Ym1WeVVISnZjSE02SUVwVFdDNUpiblJ5YVc1emFXTkZiR1Z0Wlc1MGMxc25aR2wySjEwN1hHNGdJQzhxS2lCVWFHVWdabTlqZFhObFpDQnpkR0YwWlNCdlppQjBhR1VnYzJWc1pXTjBMaUFxTDF4dUlDQnBjMFp2WTNWelpXUTZJR0p2YjJ4bFlXNDdYRzRnSUdselJHbHpZV0pzWldRNklHSnZiMnhsWVc0N1hHNTlYRzVjYm1OdmJuTjBJR0poYzJWRFUxTWdQU0E4WEc0Z0lFOXdkR2x2Yml4Y2JpQWdTWE5OZFd4MGFTQmxlSFJsYm1SeklHSnZiMnhsWVc0c1hHNGdJRWR5YjNWd0lHVjRkR1Z1WkhNZ1IzSnZkWEJDWVhObFBFOXdkR2x2Ymo1Y2JqNG9YRzRnSUh0Y2JpQWdJQ0JwYzBadlkzVnpaV1FzWEc0Z0lDQWdkR2hsYldVNklIdGNiaUFnSUNBZ0lITndZV05wYm1jNklIc2dZbUZ6WlZWdWFYUWdmU3hjYmlBZ0lDQWdJR052Ykc5eWN5eGNiaUFnSUNCOUxGeHVJQ0I5T2x4dUlDQWdJSHdnUkhKdmNHUnZkMjVKYm1ScFkyRjBiM0pRY205d2N6eFBjSFJwYjI0c0lFbHpUWFZzZEdrc0lFZHliM1Z3UGx4dUlDQWdJSHdnUTJ4bFlYSkpibVJwWTJGMGIzSlFjbTl3Y3p4UGNIUnBiMjRzSUVselRYVnNkR2tzSUVkeWIzVndQaXhjYmlBZ2RXNXpkSGxzWldRNklHSnZiMnhsWVc1Y2JpazZJRU5UVTA5aWFtVmpkRmRwZEdoTVlXSmxiQ0E5UGlBb2UxeHVJQ0JzWVdKbGJEb2dKMmx1WkdsallYUnZja052Ym5SaGFXNWxjaWNzWEc0Z0lHUnBjM0JzWVhrNklDZG1iR1Y0Snl4Y2JpQWdkSEpoYm5OcGRHbHZiam9nSjJOdmJHOXlJREUxTUcxekp5eGNiaUFnTGk0dUtIVnVjM1I1YkdWa1hHNGdJQ0FnUHlCN2ZWeHVJQ0FnSURvZ2UxeHVJQ0FnSUNBZ0lDQmpiMnh2Y2pvZ2FYTkdiMk4xYzJWa0lEOGdZMjlzYjNKekxtNWxkWFJ5WVd3Mk1DQTZJR052Ykc5eWN5NXVaWFYwY21Gc01qQXNYRzRnSUNBZ0lDQWdJSEJoWkdScGJtYzZJR0poYzJWVmJtbDBJQ29nTWl4Y2JpQWdJQ0FnSUNBZ0p6cG9iM1psY2ljNklIdGNiaUFnSUNBZ0lDQWdJQ0JqYjJ4dmNqb2dhWE5HYjJOMWMyVmtJRDhnWTI5c2IzSnpMbTVsZFhSeVlXdzRNQ0E2SUdOdmJHOXljeTV1WlhWMGNtRnNOREFzWEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCOUtTeGNibjBwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWkhKdmNHUnZkMjVKYm1ScFkyRjBiM0pEVTFNZ1BTQmlZWE5sUTFOVE8xeHVaWGh3YjNKMElHTnZibk4wSUVSeWIzQmtiM2R1U1c1a2FXTmhkRzl5SUQwZ1BGeHVJQ0JQY0hScGIyNHNYRzRnSUVselRYVnNkR2tnWlhoMFpXNWtjeUJpYjI5c1pXRnVMRnh1SUNCSGNtOTFjQ0JsZUhSbGJtUnpJRWR5YjNWd1FtRnpaVHhQY0hScGIyNCtYRzQrS0Z4dUlDQndjbTl3Y3pvZ1JISnZjR1J2ZDI1SmJtUnBZMkYwYjNKUWNtOXdjenhQY0hScGIyNHNJRWx6VFhWc2RHa3NJRWR5YjNWd1BseHVLU0E5UGlCN1hHNGdJR052Ym5OMElIc2dZMmhwYkdSeVpXNHNJR2x1Ym1WeVVISnZjSE1nZlNBOUlIQnliM0J6TzF4dUlDQnlaWFIxY200Z0tGeHVJQ0FnSUR4a2FYWmNiaUFnSUNBZ0lIc3VMaTVuWlhSVGRIbHNaVkJ5YjNCektIQnliM0J6TENBblpISnZjR1J2ZDI1SmJtUnBZMkYwYjNJbkxDQjdYRzRnSUNBZ0lDQWdJR2x1WkdsallYUnZjam9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdKMlJ5YjNCa2IzZHVMV2x1WkdsallYUnZjaWM2SUhSeWRXVXNYRzRnSUNBZ0lDQjlLWDFjYmlBZ0lDQWdJSHN1TGk1cGJtNWxjbEJ5YjNCemZWeHVJQ0FnSUQ1Y2JpQWdJQ0FnSUh0amFHbHNaSEpsYmlCOGZDQThSRzkzYmtOb1pYWnliMjRnTHo1OVhHNGdJQ0FnUEM5a2FYWStYRzRnSUNrN1hHNTlPMXh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVOc1pXRnlTVzVrYVdOaGRHOXlVSEp2Y0hNOFhHNGdJRTl3ZEdsdmJpQTlJSFZ1YTI1dmQyNHNYRzRnSUVselRYVnNkR2tnWlhoMFpXNWtjeUJpYjI5c1pXRnVJRDBnWW05dmJHVmhiaXhjYmlBZ1IzSnZkWEFnWlhoMFpXNWtjeUJIY205MWNFSmhjMlU4VDNCMGFXOXVQaUE5SUVkeWIzVndRbUZ6WlR4UGNIUnBiMjQrWEc0K0lHVjRkR1Z1WkhNZ1EyOXRiVzl1VUhKdmNITkJibVJEYkdGemMwNWhiV1U4VDNCMGFXOXVMQ0JKYzAxMWJIUnBMQ0JIY205MWNENGdlMXh1SUNBdktpb2dWR2hsSUdOb2FXeGtjbVZ1SUhSdklHSmxJSEpsYm1SbGNtVmtJR2x1YzJsa1pTQjBhR1VnYVc1a2FXTmhkRzl5TGlBcUwxeHVJQ0JqYUdsc1pISmxiajg2SUZKbFlXTjBUbTlrWlR0Y2JpQWdMeW9xSUZCeWIzQnpJSFJvWVhRZ2QybHNiQ0JpWlNCd1lYTnpaV1FnYjI0Z2RHOGdkR2hsSUdOb2FXeGtjbVZ1TGlBcUwxeHVJQ0JwYm01bGNsQnliM0J6T2lCS1UxZ3VTVzUwY21sdWMybGpSV3hsYldWdWRITmJKMlJwZGlkZE8xeHVJQ0F2S2lvZ1ZHaGxJR1p2WTNWelpXUWdjM1JoZEdVZ2IyWWdkR2hsSUhObGJHVmpkQzRnS2k5Y2JpQWdhWE5HYjJOMWMyVmtPaUJpYjI5c1pXRnVPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWTJ4bFlYSkpibVJwWTJGMGIzSkRVMU1nUFNCaVlYTmxRMU5UTzF4dVpYaHdiM0owSUdOdmJuTjBJRU5zWldGeVNXNWthV05oZEc5eUlEMGdQRnh1SUNCUGNIUnBiMjRzWEc0Z0lFbHpUWFZzZEdrZ1pYaDBaVzVrY3lCaWIyOXNaV0Z1TEZ4dUlDQkhjbTkxY0NCbGVIUmxibVJ6SUVkeWIzVndRbUZ6WlR4UGNIUnBiMjQrWEc0K0tGeHVJQ0J3Y205d2N6b2dRMnhsWVhKSmJtUnBZMkYwYjNKUWNtOXdjenhQY0hScGIyNHNJRWx6VFhWc2RHa3NJRWR5YjNWd1BseHVLU0E5UGlCN1hHNGdJR052Ym5OMElIc2dZMmhwYkdSeVpXNHNJR2x1Ym1WeVVISnZjSE1nZlNBOUlIQnliM0J6TzF4dUlDQnlaWFIxY200Z0tGeHVJQ0FnSUR4a2FYWmNiaUFnSUNBZ0lIc3VMaTVuWlhSVGRIbHNaVkJ5YjNCektIQnliM0J6TENBblkyeGxZWEpKYm1ScFkyRjBiM0luTENCN1hHNGdJQ0FnSUNBZ0lHbHVaR2xqWVhSdmNqb2dkSEoxWlN4Y2JpQWdJQ0FnSUNBZ0oyTnNaV0Z5TFdsdVpHbGpZWFJ2Y2ljNklIUnlkV1VzWEc0Z0lDQWdJQ0I5S1gxY2JpQWdJQ0FnSUhzdUxpNXBibTVsY2xCeWIzQnpmVnh1SUNBZ0lENWNiaUFnSUNBZ0lIdGphR2xzWkhKbGJpQjhmQ0E4UTNKdmMzTkpZMjl1SUM4K2ZWeHVJQ0FnSUR3dlpHbDJQbHh1SUNBcE8xeHVmVHRjYmx4dUx5OGdQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5WEc0dkx5QlRaWEJoY21GMGIzSmNiaTh2SUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBWeHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRWx1WkdsallYUnZjbE5sY0dGeVlYUnZjbEJ5YjNCelBGeHVJQ0JQY0hScGIyNGdQU0IxYm10dWIzZHVMRnh1SUNCSmMwMTFiSFJwSUdWNGRHVnVaSE1nWW05dmJHVmhiaUE5SUdKdmIyeGxZVzRzWEc0Z0lFZHliM1Z3SUdWNGRHVnVaSE1nUjNKdmRYQkNZWE5sUEU5d2RHbHZiajRnUFNCSGNtOTFjRUpoYzJVOFQzQjBhVzl1UGx4dVBpQmxlSFJsYm1SeklFTnZiVzF2YmxCeWIzQnpRVzVrUTJ4aGMzTk9ZVzFsUEU5d2RHbHZiaXdnU1hOTmRXeDBhU3dnUjNKdmRYQStJSHRjYmlBZ2FYTkVhWE5oWW14bFpEb2dZbTl2YkdWaGJqdGNiaUFnYVhOR2IyTjFjMlZrT2lCaWIyOXNaV0Z1TzF4dUlDQnBibTVsY2xCeWIzQnpQem9nU2xOWUxrbHVkSEpwYm5OcFkwVnNaVzFsYm5Seld5ZHpjR0Z1SjEwN1hHNTlYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnBibVJwWTJGMGIzSlRaWEJoY21GMGIzSkRVMU1nUFNBOFhHNGdJRTl3ZEdsdmJpeGNiaUFnU1hOTmRXeDBhU0JsZUhSbGJtUnpJR0p2YjJ4bFlXNHNYRzRnSUVkeWIzVndJR1Y0ZEdWdVpITWdSM0p2ZFhCQ1lYTmxQRTl3ZEdsdmJqNWNiajRvWEc0Z0lIdGNiaUFnSUNCcGMwUnBjMkZpYkdWa0xGeHVJQ0FnSUhSb1pXMWxPaUI3WEc0Z0lDQWdJQ0J6Y0dGamFXNW5PaUI3SUdKaGMyVlZibWwwSUgwc1hHNGdJQ0FnSUNCamIyeHZjbk1zWEc0Z0lDQWdmU3hjYmlBZ2ZUb2dTVzVrYVdOaGRHOXlVMlZ3WVhKaGRHOXlVSEp2Y0hNOFQzQjBhVzl1TENCSmMwMTFiSFJwTENCSGNtOTFjRDRzWEc0Z0lIVnVjM1I1YkdWa09pQmliMjlzWldGdVhHNHBPaUJEVTFOUFltcGxZM1JYYVhSb1RHRmlaV3dnUFQ0Z0tIdGNiaUFnYkdGaVpXdzZJQ2RwYm1ScFkyRjBiM0pUWlhCaGNtRjBiM0luTEZ4dUlDQmhiR2xuYmxObGJHWTZJQ2R6ZEhKbGRHTm9KeXhjYmlBZ2QybGtkR2c2SURFc1hHNGdJQzR1TGloMWJuTjBlV3hsWkZ4dUlDQWdJRDhnZTMxY2JpQWdJQ0E2SUh0Y2JpQWdJQ0FnSUNBZ1ltRmphMmR5YjNWdVpFTnZiRzl5T2lCcGMwUnBjMkZpYkdWa0lEOGdZMjlzYjNKekxtNWxkWFJ5WVd3eE1DQTZJR052Ykc5eWN5NXVaWFYwY21Gc01qQXNYRzRnSUNBZ0lDQWdJRzFoY21kcGJrSnZkSFJ2YlRvZ1ltRnpaVlZ1YVhRZ0tpQXlMRnh1SUNBZ0lDQWdJQ0J0WVhKbmFXNVViM0E2SUdKaGMyVlZibWwwSUNvZ01peGNiaUFnSUNBZ0lIMHBMRnh1ZlNrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCSmJtUnBZMkYwYjNKVFpYQmhjbUYwYjNJZ1BTQThYRzRnSUU5d2RHbHZiaXhjYmlBZ1NYTk5kV3gwYVNCbGVIUmxibVJ6SUdKdmIyeGxZVzRzWEc0Z0lFZHliM1Z3SUdWNGRHVnVaSE1nUjNKdmRYQkNZWE5sUEU5d2RHbHZiajVjYmo0b1hHNGdJSEJ5YjNCek9pQkpibVJwWTJGMGIzSlRaWEJoY21GMGIzSlFjbTl3Y3p4UGNIUnBiMjRzSUVselRYVnNkR2tzSUVkeWIzVndQbHh1S1NBOVBpQjdYRzRnSUdOdmJuTjBJSHNnYVc1dVpYSlFjbTl3Y3lCOUlEMGdjSEp2Y0hNN1hHNGdJSEpsZEhWeWJpQW9YRzRnSUNBZ1BITndZVzVjYmlBZ0lDQWdJSHN1TGk1cGJtNWxjbEJ5YjNCemZWeHVJQ0FnSUNBZ2V5NHVMbWRsZEZOMGVXeGxVSEp2Y0hNb2NISnZjSE1zSUNkcGJtUnBZMkYwYjNKVFpYQmhjbUYwYjNJbkxDQjdYRzRnSUNBZ0lDQWdJQ2RwYm1ScFkyRjBiM0l0YzJWd1lYSmhkRzl5SnpvZ2RISjFaU3hjYmlBZ0lDQWdJSDBwZlZ4dUlDQWdJQzgrWEc0Z0lDazdYRzU5TzF4dVhHNHZMeUE5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQxY2JpOHZJRXh2WVdScGJtZGNiaTh2SUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBWeHVYRzVqYjI1emRDQnNiMkZrYVc1blJHOTBRVzVwYldGMGFXOXVjeUE5SUd0bGVXWnlZVzFsYzJCY2JpQWdNQ1VzSURnd0pTd2dNVEF3SlNCN0lHOXdZV05wZEhrNklEQTdJSDFjYmlBZ05EQWxJSHNnYjNCaFkybDBlVG9nTVRzZ2ZWeHVZRHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR3h2WVdScGJtZEpibVJwWTJGMGIzSkRVMU1nUFNBOFhHNGdJRTl3ZEdsdmJpeGNiaUFnU1hOTmRXeDBhU0JsZUhSbGJtUnpJR0p2YjJ4bFlXNHNYRzRnSUVkeWIzVndJR1Y0ZEdWdVpITWdSM0p2ZFhCQ1lYTmxQRTl3ZEdsdmJqNWNiajRvWEc0Z0lIdGNiaUFnSUNCcGMwWnZZM1Z6WldRc1hHNGdJQ0FnYzJsNlpTeGNiaUFnSUNCMGFHVnRaVG9nZTF4dUlDQWdJQ0FnWTI5c2IzSnpMRnh1SUNBZ0lDQWdjM0JoWTJsdVp6b2dleUJpWVhObFZXNXBkQ0I5TEZ4dUlDQWdJSDBzWEc0Z0lIMDZJRXh2WVdScGJtZEpibVJwWTJGMGIzSlFjbTl3Y3p4UGNIUnBiMjRzSUVselRYVnNkR2tzSUVkeWIzVndQaXhjYmlBZ2RXNXpkSGxzWldRNklHSnZiMnhsWVc1Y2JpazZJRU5UVTA5aWFtVmpkRmRwZEdoTVlXSmxiQ0E5UGlBb2UxeHVJQ0JzWVdKbGJEb2dKMnh2WVdScGJtZEpibVJwWTJGMGIzSW5MRnh1SUNCa2FYTndiR0Y1T2lBblpteGxlQ2NzWEc0Z0lIUnlZVzV6YVhScGIyNDZJQ2RqYjJ4dmNpQXhOVEJ0Y3ljc1hHNGdJR0ZzYVdkdVUyVnNaam9nSjJObGJuUmxjaWNzWEc0Z0lHWnZiblJUYVhwbE9pQnphWHBsTEZ4dUlDQnNhVzVsU0dWcFoyaDBPaUF4TEZ4dUlDQnRZWEpuYVc1U2FXZG9kRG9nYzJsNlpTeGNiaUFnZEdWNGRFRnNhV2R1T2lBblkyVnVkR1Z5Snl4Y2JpQWdkbVZ5ZEdsallXeEJiR2xuYmpvZ0oyMXBaR1JzWlNjc1hHNGdJQzR1TGloMWJuTjBlV3hsWkZ4dUlDQWdJRDhnZTMxY2JpQWdJQ0E2SUh0Y2JpQWdJQ0FnSUNBZ1kyOXNiM0k2SUdselJtOWpkWE5sWkNBL0lHTnZiRzl5Y3k1dVpYVjBjbUZzTmpBZ09pQmpiMnh2Y25NdWJtVjFkSEpoYkRJd0xGeHVJQ0FnSUNBZ0lDQndZV1JrYVc1bk9pQmlZWE5sVlc1cGRDQXFJRElzWEc0Z0lDQWdJQ0I5S1N4Y2JuMHBPMXh1WEc1cGJuUmxjbVpoWTJVZ1RHOWhaR2x1WjBSdmRGQnliM0J6SUh0Y2JpQWdaR1ZzWVhrNklHNTFiV0psY2p0Y2JpQWdiMlptYzJWME9pQmliMjlzWldGdU8xeHVmVnh1WTI5dWMzUWdURzloWkdsdVowUnZkQ0E5SUNoN0lHUmxiR0Y1TENCdlptWnpaWFFnZlRvZ1RHOWhaR2x1WjBSdmRGQnliM0J6S1NBOVBpQW9YRzRnSUR4emNHRnVYRzRnSUNBZ1kzTnpQWHQ3WEc0Z0lDQWdJQ0JoYm1sdFlYUnBiMjQ2SUdBa2UyeHZZV1JwYm1kRWIzUkJibWx0WVhScGIyNXpmU0F4Y3lCbFlYTmxMV2x1TFc5MWRDQWtlMlJsYkdGNWZXMXpJR2x1Wm1sdWFYUmxPMkFzWEc0Z0lDQWdJQ0JpWVdOclozSnZkVzVrUTI5c2IzSTZJQ2RqZFhKeVpXNTBRMjlzYjNJbkxGeHVJQ0FnSUNBZ1ltOXlaR1Z5VW1Ga2FYVnpPaUFuTVdWdEp5eGNiaUFnSUNBZ0lHUnBjM0JzWVhrNklDZHBibXhwYm1VdFlteHZZMnNuTEZ4dUlDQWdJQ0FnYldGeVoybHVUR1ZtZERvZ2IyWm1jMlYwSUQ4Z0p6RmxiU2NnT2lCMWJtUmxabWx1WldRc1hHNGdJQ0FnSUNCb1pXbG5hSFE2SUNjeFpXMG5MRnh1SUNBZ0lDQWdkbVZ5ZEdsallXeEJiR2xuYmpvZ0ozUnZjQ2NzWEc0Z0lDQWdJQ0IzYVdSMGFEb2dKekZsYlNjc1hHNGdJQ0FnZlgxY2JpQWdMejVjYmlrN1hHNWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdURzloWkdsdVowbHVaR2xqWVhSdmNsQnliM0J6UEZ4dUlDQlBjSFJwYjI0Z1BTQjFibXR1YjNkdUxGeHVJQ0JKYzAxMWJIUnBJR1Y0ZEdWdVpITWdZbTl2YkdWaGJpQTlJR0p2YjJ4bFlXNHNYRzRnSUVkeWIzVndJR1Y0ZEdWdVpITWdSM0p2ZFhCQ1lYTmxQRTl3ZEdsdmJqNGdQU0JIY205MWNFSmhjMlU4VDNCMGFXOXVQbHh1UGlCbGVIUmxibVJ6SUVOdmJXMXZibEJ5YjNCelFXNWtRMnhoYzNOT1lXMWxQRTl3ZEdsdmJpd2dTWE5OZFd4MGFTd2dSM0p2ZFhBK0lIdGNiaUFnTHlvcUlGQnliM0J6SUhSb1lYUWdkMmxzYkNCaVpTQndZWE56WldRZ2IyNGdkRzhnZEdobElHTm9hV3hrY21WdUxpQXFMMXh1SUNCcGJtNWxjbEJ5YjNCek9pQktVMWd1U1c1MGNtbHVjMmxqUld4bGJXVnVkSE5iSjJScGRpZGRPMXh1SUNBdktpb2dWR2hsSUdadlkzVnpaV1FnYzNSaGRHVWdiMllnZEdobElITmxiR1ZqZEM0Z0tpOWNiaUFnYVhOR2IyTjFjMlZrT2lCaWIyOXNaV0Z1TzF4dUlDQnBjMFJwYzJGaWJHVmtPaUJpYjI5c1pXRnVPMXh1SUNBdktpb2dVMlYwSUhOcGVtVWdiMllnZEdobElHTnZiblJoYVc1bGNpNGdLaTljYmlBZ2MybDZaVG9nYm5WdFltVnlPMXh1ZlZ4dVpYaHdiM0owSUdOdmJuTjBJRXh2WVdScGJtZEpibVJwWTJGMGIzSWdQU0E4WEc0Z0lFOXdkR2x2Yml4Y2JpQWdTWE5OZFd4MGFTQmxlSFJsYm1SeklHSnZiMnhsWVc0c1hHNGdJRWR5YjNWd0lHVjRkR1Z1WkhNZ1IzSnZkWEJDWVhObFBFOXdkR2x2Ymo1Y2JqNG9lMXh1SUNCcGJtNWxjbEJ5YjNCekxGeHVJQ0JwYzFKMGJDeGNiaUFnYzJsNlpTQTlJRFFzWEc0Z0lDNHVMbkpsYzNSUWNtOXdjMXh1ZlRvZ1RHOWhaR2x1WjBsdVpHbGpZWFJ2Y2xCeWIzQnpQRTl3ZEdsdmJpd2dTWE5OZFd4MGFTd2dSM0p2ZFhBK0tTQTlQaUI3WEc0Z0lISmxkSFZ5YmlBb1hHNGdJQ0FnUEdScGRseHVJQ0FnSUNBZ2V5NHVMbWRsZEZOMGVXeGxVSEp2Y0hNb1hHNGdJQ0FnSUNBZ0lIc2dMaTR1Y21WemRGQnliM0J6TENCcGJtNWxjbEJ5YjNCekxDQnBjMUowYkN3Z2MybDZaU0I5TEZ4dUlDQWdJQ0FnSUNBbmJHOWhaR2x1WjBsdVpHbGpZWFJ2Y2ljc1hHNGdJQ0FnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdJQ0JwYm1ScFkyRjBiM0k2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJQ0FnSjJ4dllXUnBibWN0YVc1a2FXTmhkRzl5SnpvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnS1gxY2JpQWdJQ0FnSUhzdUxpNXBibTVsY2xCeWIzQnpmVnh1SUNBZ0lENWNiaUFnSUNBZ0lEeE1iMkZrYVc1blJHOTBJR1JsYkdGNVBYc3dmU0J2Wm1aelpYUTllMmx6VW5Sc2ZTQXZQbHh1SUNBZ0lDQWdQRXh2WVdScGJtZEViM1FnWkdWc1lYazllekUyTUgwZ2IyWm1jMlYwSUM4K1hHNGdJQ0FnSUNBOFRHOWhaR2x1WjBSdmRDQmtaV3hoZVQxN016SXdmU0J2Wm1aelpYUTlleUZwYzFKMGJIMGdMejVjYmlBZ0lDQThMMlJwZGo1Y2JpQWdLVHRjYm4wN1hHNGlYWDA9ICovXCIsXG4gIHRvU3RyaW5nOiBfRU1PVElPTl9TVFJJTkdJRklFRF9DU1NfRVJST1JfX1xufTtcbnZhciBTdmcgPSBmdW5jdGlvbiBTdmcoX3JlZikge1xuICB2YXIgc2l6ZSA9IF9yZWYuc2l6ZSxcbiAgICBwcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcmVmLCBfZXhjbHVkZWQkMik7XG4gIHJldHVybiBqc3goXCJzdmdcIiwgX2V4dGVuZHMoe1xuICAgIGhlaWdodDogc2l6ZSxcbiAgICB3aWR0aDogc2l6ZSxcbiAgICB2aWV3Qm94OiBcIjAgMCAyMCAyMFwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgZm9jdXNhYmxlOiBcImZhbHNlXCIsXG4gICAgY3NzOiBfcmVmMlxuICB9LCBwcm9wcykpO1xufTtcbnZhciBDcm9zc0ljb24gPSBmdW5jdGlvbiBDcm9zc0ljb24ocHJvcHMpIHtcbiAgcmV0dXJuIGpzeChTdmcsIF9leHRlbmRzKHtcbiAgICBzaXplOiAyMFxuICB9LCBwcm9wcyksIGpzeChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiXG4gIH0pKTtcbn07XG52YXIgRG93bkNoZXZyb24gPSBmdW5jdGlvbiBEb3duQ2hldnJvbihwcm9wcykge1xuICByZXR1cm4ganN4KFN2ZywgX2V4dGVuZHMoe1xuICAgIHNpemU6IDIwXG4gIH0sIHByb3BzKSwganN4KFwicGF0aFwiLCB7XG4gICAgZDogXCJNNC41MTYgNy41NDhjMC40MzYtMC40NDYgMS4wNDMtMC40ODEgMS41NzYgMGwzLjkwOCAzLjc0NyAzLjkwOC0zLjc0N2MwLjUzMy0wLjQ4MSAxLjE0MS0wLjQ0NiAxLjU3NCAwIDAuNDM2IDAuNDQ1IDAuNDA4IDEuMTk3IDAgMS42MTUtMC40MDYgMC40MTgtNC42OTUgNC41MDItNC42OTUgNC41MDItMC4yMTcgMC4yMjMtMC41MDIgMC4zMzUtMC43ODcgMC4zMzVzLTAuNTctMC4xMTItMC43ODktMC4zMzVjMCAwLTQuMjg3LTQuMDg0LTQuNjk1LTQuNTAycy0wLjQzNi0xLjE3IDAtMS42MTV6XCJcbiAgfSkpO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEJ1dHRvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgYmFzZUNTUyA9IGZ1bmN0aW9uIGJhc2VDU1MoX3JlZjMsIHVuc3R5bGVkKSB7XG4gIHZhciBpc0ZvY3VzZWQgPSBfcmVmMy5pc0ZvY3VzZWQsXG4gICAgX3JlZjMkdGhlbWUgPSBfcmVmMy50aGVtZSxcbiAgICBiYXNlVW5pdCA9IF9yZWYzJHRoZW1lLnNwYWNpbmcuYmFzZVVuaXQsXG4gICAgY29sb3JzID0gX3JlZjMkdGhlbWUuY29sb3JzO1xuICByZXR1cm4gX29iamVjdFNwcmVhZCh7XG4gICAgbGFiZWw6ICdpbmRpY2F0b3JDb250YWluZXInLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnXG4gIH0sIHVuc3R5bGVkID8ge30gOiB7XG4gICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgIHBhZGRpbmc6IGJhc2VVbml0ICogMixcbiAgICAnOmhvdmVyJzoge1xuICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsODAgOiBjb2xvcnMubmV1dHJhbDQwXG4gICAgfVxuICB9KTtcbn07XG52YXIgZHJvcGRvd25JbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xudmFyIERyb3Bkb3duSW5kaWNhdG9yID0gZnVuY3Rpb24gRHJvcGRvd25JbmRpY2F0b3IocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IHByb3BzLmlubmVyUHJvcHM7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMocHJvcHMsICdkcm9wZG93bkluZGljYXRvcicsIHtcbiAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgJ2Ryb3Bkb3duLWluZGljYXRvcic6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpLCBjaGlsZHJlbiB8fCBqc3goRG93bkNoZXZyb24sIG51bGwpKTtcbn07XG52YXIgY2xlYXJJbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xudmFyIENsZWFySW5kaWNhdG9yID0gZnVuY3Rpb24gQ2xlYXJJbmRpY2F0b3IocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IHByb3BzLmlubmVyUHJvcHM7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMocHJvcHMsICdjbGVhckluZGljYXRvcicsIHtcbiAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgJ2NsZWFyLWluZGljYXRvcic6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpLCBjaGlsZHJlbiB8fCBqc3goQ3Jvc3NJY29uLCBudWxsKSk7XG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNlcGFyYXRvclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnZhciBpbmRpY2F0b3JTZXBhcmF0b3JDU1MgPSBmdW5jdGlvbiBpbmRpY2F0b3JTZXBhcmF0b3JDU1MoX3JlZjQsIHVuc3R5bGVkKSB7XG4gIHZhciBpc0Rpc2FibGVkID0gX3JlZjQuaXNEaXNhYmxlZCxcbiAgICBfcmVmNCR0aGVtZSA9IF9yZWY0LnRoZW1lLFxuICAgIGJhc2VVbml0ID0gX3JlZjQkdGhlbWUuc3BhY2luZy5iYXNlVW5pdCxcbiAgICBjb2xvcnMgPSBfcmVmNCR0aGVtZS5jb2xvcnM7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBsYWJlbDogJ2luZGljYXRvclNlcGFyYXRvcicsXG4gICAgYWxpZ25TZWxmOiAnc3RyZXRjaCcsXG4gICAgd2lkdGg6IDFcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDEwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgICBtYXJnaW5Cb3R0b206IGJhc2VVbml0ICogMixcbiAgICBtYXJnaW5Ub3A6IGJhc2VVbml0ICogMlxuICB9KTtcbn07XG52YXIgSW5kaWNhdG9yU2VwYXJhdG9yID0gZnVuY3Rpb24gSW5kaWNhdG9yU2VwYXJhdG9yKHByb3BzKSB7XG4gIHZhciBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcztcbiAgcmV0dXJuIGpzeChcInNwYW5cIiwgX2V4dGVuZHMoe30sIGlubmVyUHJvcHMsIGdldFN0eWxlUHJvcHMocHJvcHMsICdpbmRpY2F0b3JTZXBhcmF0b3InLCB7XG4gICAgJ2luZGljYXRvci1zZXBhcmF0b3InOiB0cnVlXG4gIH0pKSk7XG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExvYWRpbmdcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXMoX3RlbXBsYXRlT2JqZWN0IHx8IChfdGVtcGxhdGVPYmplY3QgPSBfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsKFtcIlxcbiAgMCUsIDgwJSwgMTAwJSB7IG9wYWNpdHk6IDA7IH1cXG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cXG5cIl0pKSk7XG52YXIgbG9hZGluZ0luZGljYXRvckNTUyA9IGZ1bmN0aW9uIGxvYWRpbmdJbmRpY2F0b3JDU1MoX3JlZjUsIHVuc3R5bGVkKSB7XG4gIHZhciBpc0ZvY3VzZWQgPSBfcmVmNS5pc0ZvY3VzZWQsXG4gICAgc2l6ZSA9IF9yZWY1LnNpemUsXG4gICAgX3JlZjUkdGhlbWUgPSBfcmVmNS50aGVtZSxcbiAgICBjb2xvcnMgPSBfcmVmNSR0aGVtZS5jb2xvcnMsXG4gICAgYmFzZVVuaXQgPSBfcmVmNSR0aGVtZS5zcGFjaW5nLmJhc2VVbml0O1xuICByZXR1cm4gX29iamVjdFNwcmVhZCh7XG4gICAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgdHJhbnNpdGlvbjogJ2NvbG9yIDE1MG1zJyxcbiAgICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICAgIGZvbnRTaXplOiBzaXplLFxuICAgIGxpbmVIZWlnaHQ6IDEsXG4gICAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJ1xuICB9LCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDYwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgICBwYWRkaW5nOiBiYXNlVW5pdCAqIDJcbiAgfSk7XG59O1xudmFyIExvYWRpbmdEb3QgPSBmdW5jdGlvbiBMb2FkaW5nRG90KF9yZWY2KSB7XG4gIHZhciBkZWxheSA9IF9yZWY2LmRlbGF5LFxuICAgIG9mZnNldCA9IF9yZWY2Lm9mZnNldDtcbiAgcmV0dXJuIGpzeChcInNwYW5cIiwge1xuICAgIGNzczogLyojX19QVVJFX18qL2NzcyQyKHtcbiAgICAgIGFuaW1hdGlvbjogXCJcIi5jb25jYXQobG9hZGluZ0RvdEFuaW1hdGlvbnMsIFwiIDFzIGVhc2UtaW4tb3V0IFwiKS5jb25jYXQoZGVsYXksIFwibXMgaW5maW5pdGU7XCIpLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGJvcmRlclJhZGl1czogJzFlbScsXG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIG1hcmdpbkxlZnQ6IG9mZnNldCA/ICcxZW0nIDogdW5kZWZpbmVkLFxuICAgICAgaGVpZ2h0OiAnMWVtJyxcbiAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICAgICAgd2lkdGg6ICcxZW0nXG4gICAgfSwgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gXCJcIiA6IFwiO2xhYmVsOkxvYWRpbmdEb3Q7XCIsIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IFwiXCIgOiBcIi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYkltbHVaR2xqWVhSdmNuTXVkSE40SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVcxUlNTSXNJbVpwYkdVaU9pSnBibVJwWTJGMGIzSnpMblJ6ZUNJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLaUJBYW5ONElHcHplQ0FxTDF4dWFXMXdiM0owSUhzZ1NsTllMQ0JTWldGamRFNXZaR1VnZlNCbWNtOXRJQ2R5WldGamRDYzdYRzVwYlhCdmNuUWdleUJxYzNnc0lHdGxlV1p5WVcxbGN5QjlJR1p5YjIwZ0owQmxiVzkwYVc5dUwzSmxZV04wSnp0Y2JseHVhVzF3YjNKMElIdGNiaUFnUTI5dGJXOXVVSEp2Y0hOQmJtUkRiR0Z6YzA1aGJXVXNYRzRnSUVOVFUwOWlhbVZqZEZkcGRHaE1ZV0psYkN4Y2JpQWdSM0p2ZFhCQ1lYTmxMRnh1ZlNCbWNtOXRJQ2N1TGk5MGVYQmxjeWM3WEc1cGJYQnZjblFnZXlCblpYUlRkSGxzWlZCeWIzQnpJSDBnWm5KdmJTQW5MaTR2ZFhScGJITW5PMXh1WEc0dkx5QTlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDFjYmk4dklFUnliM0JrYjNkdUlDWWdRMnhsWVhJZ1NXTnZibk5jYmk4dklEMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVnh1WEc1amIyNXpkQ0JUZG1jZ1BTQW9lMXh1SUNCemFYcGxMRnh1SUNBdUxpNXdjbTl3YzF4dWZUb2dTbE5ZTGtsdWRISnBibk5wWTBWc1pXMWxiblJ6V3lkemRtY25YU0FtSUhzZ2MybDZaVG9nYm5WdFltVnlJSDBwSUQwK0lDaGNiaUFnUEhOMloxeHVJQ0FnSUdobGFXZG9kRDE3YzJsNlpYMWNiaUFnSUNCM2FXUjBhRDE3YzJsNlpYMWNiaUFnSUNCMmFXVjNRbTk0UFZ3aU1DQXdJREl3SURJd1hDSmNiaUFnSUNCaGNtbGhMV2hwWkdSbGJqMWNJblJ5ZFdWY0lseHVJQ0FnSUdadlkzVnpZV0pzWlQxY0ltWmhiSE5sWENKY2JpQWdJQ0JqYzNNOWUzdGNiaUFnSUNBZ0lHUnBjM0JzWVhrNklDZHBibXhwYm1VdFlteHZZMnNuTEZ4dUlDQWdJQ0FnWm1sc2JEb2dKMk4xY25KbGJuUkRiMnh2Y2ljc1hHNGdJQ0FnSUNCc2FXNWxTR1ZwWjJoME9pQXhMRnh1SUNBZ0lDQWdjM1J5YjJ0bE9pQW5ZM1Z5Y21WdWRFTnZiRzl5Snl4Y2JpQWdJQ0FnSUhOMGNtOXJaVmRwWkhSb09pQXdMRnh1SUNBZ0lIMTlYRzRnSUNBZ2V5NHVMbkJ5YjNCemZWeHVJQ0F2UGx4dUtUdGNibHh1Wlhod2IzSjBJSFI1Y0dVZ1EzSnZjM05KWTI5dVVISnZjSE1nUFNCS1UxZ3VTVzUwY21sdWMybGpSV3hsYldWdWRITmJKM04yWnlkZElDWWdleUJ6YVhwbFB6b2diblZ0WW1WeUlIMDdYRzVsZUhCdmNuUWdZMjl1YzNRZ1EzSnZjM05KWTI5dUlEMGdLSEJ5YjNCek9pQkRjbTl6YzBsamIyNVFjbTl3Y3lrZ1BUNGdLRnh1SUNBOFUzWm5JSE5wZW1VOWV6SXdmU0I3TGk0dWNISnZjSE45UGx4dUlDQWdJRHh3WVhSb0lHUTlYQ0pOTVRRdU16UTRJREUwTGpnME9XTXRNQzQwTmprZ01DNDBOamt0TVM0eU1qa2dNQzQwTmprdE1TNDJPVGNnTUd3dE1pNDJOVEV0TXk0d016QXRNaTQyTlRFZ015NHdNamxqTFRBdU5EWTVJREF1TkRZNUxURXVNakk1SURBdU5EWTVMVEV1TmprM0lEQXRNQzQwTmprdE1DNDBOamt0TUM0ME5qa3RNUzR5TWprZ01DMHhMalk1TjJ3eUxqYzFPQzB6TGpFMUxUSXVOelU1TFRNdU1UVXlZeTB3TGpRMk9TMHdMalEyT1Mwd0xqUTJPUzB4TGpJeU9DQXdMVEV1TmprM2N6RXVNakk0TFRBdU5EWTVJREV1TmprM0lEQnNNaTQyTlRJZ015NHdNekVnTWk0Mk5URXRNeTR3TXpGak1DNDBOamt0TUM0ME5qa2dNUzR5TWpndE1DNDBOamtnTVM0Mk9UY2dNSE13TGpRMk9TQXhMakl5T1NBd0lERXVOamszYkMweUxqYzFPQ0F6TGpFMU1pQXlMamMxT0NBekxqRTFZekF1TkRZNUlEQXVORFk1SURBdU5EWTVJREV1TWpJNUlEQWdNUzQyT1RoNlhDSWdMejVjYmlBZ1BDOVRkbWMrWEc0cE8xeHVaWGh3YjNKMElIUjVjR1VnUkc5M2JrTm9aWFp5YjI1UWNtOXdjeUE5SUVwVFdDNUpiblJ5YVc1emFXTkZiR1Z0Wlc1MGMxc25jM1puSjEwZ0ppQjdJSE5wZW1VL09pQnVkVzFpWlhJZ2ZUdGNibVY0Y0c5eWRDQmpiMjV6ZENCRWIzZHVRMmhsZG5KdmJpQTlJQ2h3Y205d2N6b2dSRzkzYmtOb1pYWnliMjVRY205d2N5a2dQVDRnS0Z4dUlDQThVM1puSUhOcGVtVTllekl3ZlNCN0xpNHVjSEp2Y0hOOVBseHVJQ0FnSUR4d1lYUm9JR1E5WENKTk5DNDFNVFlnTnk0MU5EaGpNQzQwTXpZdE1DNDBORFlnTVM0d05ETXRNQzQwT0RFZ01TNDFOellnTUd3ekxqa3dPQ0F6TGpjME55QXpMamt3T0MwekxqYzBOMk13TGpVek15MHdMalE0TVNBeExqRTBNUzB3TGpRME5pQXhMalUzTkNBd0lEQXVORE0ySURBdU5EUTFJREF1TkRBNElERXVNVGszSURBZ01TNDJNVFV0TUM0ME1EWWdNQzQwTVRndE5DNDJPVFVnTkM0MU1ESXROQzQyT1RVZ05DNDFNREl0TUM0eU1UY2dNQzR5TWpNdE1DNDFNRElnTUM0ek16VXRNQzQzT0RjZ01DNHpNelZ6TFRBdU5UY3RNQzR4TVRJdE1DNDNPRGt0TUM0ek16VmpNQ0F3TFRRdU1qZzNMVFF1TURnMExUUXVOamsxTFRRdU5UQXljeTB3TGpRek5pMHhMakUzSURBdE1TNDJNVFY2WENJZ0x6NWNiaUFnUEM5VGRtYytYRzRwTzF4dVhHNHZMeUE5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQxY2JpOHZJRVJ5YjNCa2IzZHVJQ1lnUTJ4bFlYSWdRblYwZEc5dWMxeHVMeThnUFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVhHNWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdSSEp2Y0dSdmQyNUpibVJwWTJGMGIzSlFjbTl3Y3p4Y2JpQWdUM0IwYVc5dUlEMGdkVzVyYm05M2JpeGNiaUFnU1hOTmRXeDBhU0JsZUhSbGJtUnpJR0p2YjJ4bFlXNGdQU0JpYjI5c1pXRnVMRnh1SUNCSGNtOTFjQ0JsZUhSbGJtUnpJRWR5YjNWd1FtRnpaVHhQY0hScGIyNCtJRDBnUjNKdmRYQkNZWE5sUEU5d2RHbHZiajVjYmo0Z1pYaDBaVzVrY3lCRGIyMXRiMjVRY205d2MwRnVaRU5zWVhOelRtRnRaVHhQY0hScGIyNHNJRWx6VFhWc2RHa3NJRWR5YjNWd1BpQjdYRzRnSUM4cUtpQlVhR1VnWTJocGJHUnlaVzRnZEc4Z1ltVWdjbVZ1WkdWeVpXUWdhVzV6YVdSbElIUm9aU0JwYm1ScFkyRjBiM0l1SUNvdlhHNGdJR05vYVd4a2NtVnVQem9nVW1WaFkzUk9iMlJsTzF4dUlDQXZLaW9nVUhKdmNITWdkR2hoZENCM2FXeHNJR0psSUhCaGMzTmxaQ0J2YmlCMGJ5QjBhR1VnWTJocGJHUnlaVzR1SUNvdlhHNGdJR2x1Ym1WeVVISnZjSE02SUVwVFdDNUpiblJ5YVc1emFXTkZiR1Z0Wlc1MGMxc25aR2wySjEwN1hHNGdJQzhxS2lCVWFHVWdabTlqZFhObFpDQnpkR0YwWlNCdlppQjBhR1VnYzJWc1pXTjBMaUFxTDF4dUlDQnBjMFp2WTNWelpXUTZJR0p2YjJ4bFlXNDdYRzRnSUdselJHbHpZV0pzWldRNklHSnZiMnhsWVc0N1hHNTlYRzVjYm1OdmJuTjBJR0poYzJWRFUxTWdQU0E4WEc0Z0lFOXdkR2x2Yml4Y2JpQWdTWE5OZFd4MGFTQmxlSFJsYm1SeklHSnZiMnhsWVc0c1hHNGdJRWR5YjNWd0lHVjRkR1Z1WkhNZ1IzSnZkWEJDWVhObFBFOXdkR2x2Ymo1Y2JqNG9YRzRnSUh0Y2JpQWdJQ0JwYzBadlkzVnpaV1FzWEc0Z0lDQWdkR2hsYldVNklIdGNiaUFnSUNBZ0lITndZV05wYm1jNklIc2dZbUZ6WlZWdWFYUWdmU3hjYmlBZ0lDQWdJR052Ykc5eWN5eGNiaUFnSUNCOUxGeHVJQ0I5T2x4dUlDQWdJSHdnUkhKdmNHUnZkMjVKYm1ScFkyRjBiM0pRY205d2N6eFBjSFJwYjI0c0lFbHpUWFZzZEdrc0lFZHliM1Z3UGx4dUlDQWdJSHdnUTJ4bFlYSkpibVJwWTJGMGIzSlFjbTl3Y3p4UGNIUnBiMjRzSUVselRYVnNkR2tzSUVkeWIzVndQaXhjYmlBZ2RXNXpkSGxzWldRNklHSnZiMnhsWVc1Y2JpazZJRU5UVTA5aWFtVmpkRmRwZEdoTVlXSmxiQ0E5UGlBb2UxeHVJQ0JzWVdKbGJEb2dKMmx1WkdsallYUnZja052Ym5SaGFXNWxjaWNzWEc0Z0lHUnBjM0JzWVhrNklDZG1iR1Y0Snl4Y2JpQWdkSEpoYm5OcGRHbHZiam9nSjJOdmJHOXlJREUxTUcxekp5eGNiaUFnTGk0dUtIVnVjM1I1YkdWa1hHNGdJQ0FnUHlCN2ZWeHVJQ0FnSURvZ2UxeHVJQ0FnSUNBZ0lDQmpiMnh2Y2pvZ2FYTkdiMk4xYzJWa0lEOGdZMjlzYjNKekxtNWxkWFJ5WVd3Mk1DQTZJR052Ykc5eWN5NXVaWFYwY21Gc01qQXNYRzRnSUNBZ0lDQWdJSEJoWkdScGJtYzZJR0poYzJWVmJtbDBJQ29nTWl4Y2JpQWdJQ0FnSUNBZ0p6cG9iM1psY2ljNklIdGNiaUFnSUNBZ0lDQWdJQ0JqYjJ4dmNqb2dhWE5HYjJOMWMyVmtJRDhnWTI5c2IzSnpMbTVsZFhSeVlXdzRNQ0E2SUdOdmJHOXljeTV1WlhWMGNtRnNOREFzWEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCOUtTeGNibjBwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWkhKdmNHUnZkMjVKYm1ScFkyRjBiM0pEVTFNZ1BTQmlZWE5sUTFOVE8xeHVaWGh3YjNKMElHTnZibk4wSUVSeWIzQmtiM2R1U1c1a2FXTmhkRzl5SUQwZ1BGeHVJQ0JQY0hScGIyNHNYRzRnSUVselRYVnNkR2tnWlhoMFpXNWtjeUJpYjI5c1pXRnVMRnh1SUNCSGNtOTFjQ0JsZUhSbGJtUnpJRWR5YjNWd1FtRnpaVHhQY0hScGIyNCtYRzQrS0Z4dUlDQndjbTl3Y3pvZ1JISnZjR1J2ZDI1SmJtUnBZMkYwYjNKUWNtOXdjenhQY0hScGIyNHNJRWx6VFhWc2RHa3NJRWR5YjNWd1BseHVLU0E5UGlCN1hHNGdJR052Ym5OMElIc2dZMmhwYkdSeVpXNHNJR2x1Ym1WeVVISnZjSE1nZlNBOUlIQnliM0J6TzF4dUlDQnlaWFIxY200Z0tGeHVJQ0FnSUR4a2FYWmNiaUFnSUNBZ0lIc3VMaTVuWlhSVGRIbHNaVkJ5YjNCektIQnliM0J6TENBblpISnZjR1J2ZDI1SmJtUnBZMkYwYjNJbkxDQjdYRzRnSUNBZ0lDQWdJR2x1WkdsallYUnZjam9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdKMlJ5YjNCa2IzZHVMV2x1WkdsallYUnZjaWM2SUhSeWRXVXNYRzRnSUNBZ0lDQjlLWDFjYmlBZ0lDQWdJSHN1TGk1cGJtNWxjbEJ5YjNCemZWeHVJQ0FnSUQ1Y2JpQWdJQ0FnSUh0amFHbHNaSEpsYmlCOGZDQThSRzkzYmtOb1pYWnliMjRnTHo1OVhHNGdJQ0FnUEM5a2FYWStYRzRnSUNrN1hHNTlPMXh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVOc1pXRnlTVzVrYVdOaGRHOXlVSEp2Y0hNOFhHNGdJRTl3ZEdsdmJpQTlJSFZ1YTI1dmQyNHNYRzRnSUVselRYVnNkR2tnWlhoMFpXNWtjeUJpYjI5c1pXRnVJRDBnWW05dmJHVmhiaXhjYmlBZ1IzSnZkWEFnWlhoMFpXNWtjeUJIY205MWNFSmhjMlU4VDNCMGFXOXVQaUE5SUVkeWIzVndRbUZ6WlR4UGNIUnBiMjQrWEc0K0lHVjRkR1Z1WkhNZ1EyOXRiVzl1VUhKdmNITkJibVJEYkdGemMwNWhiV1U4VDNCMGFXOXVMQ0JKYzAxMWJIUnBMQ0JIY205MWNENGdlMXh1SUNBdktpb2dWR2hsSUdOb2FXeGtjbVZ1SUhSdklHSmxJSEpsYm1SbGNtVmtJR2x1YzJsa1pTQjBhR1VnYVc1a2FXTmhkRzl5TGlBcUwxeHVJQ0JqYUdsc1pISmxiajg2SUZKbFlXTjBUbTlrWlR0Y2JpQWdMeW9xSUZCeWIzQnpJSFJvWVhRZ2QybHNiQ0JpWlNCd1lYTnpaV1FnYjI0Z2RHOGdkR2hsSUdOb2FXeGtjbVZ1TGlBcUwxeHVJQ0JwYm01bGNsQnliM0J6T2lCS1UxZ3VTVzUwY21sdWMybGpSV3hsYldWdWRITmJKMlJwZGlkZE8xeHVJQ0F2S2lvZ1ZHaGxJR1p2WTNWelpXUWdjM1JoZEdVZ2IyWWdkR2hsSUhObGJHVmpkQzRnS2k5Y2JpQWdhWE5HYjJOMWMyVmtPaUJpYjI5c1pXRnVPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWTJ4bFlYSkpibVJwWTJGMGIzSkRVMU1nUFNCaVlYTmxRMU5UTzF4dVpYaHdiM0owSUdOdmJuTjBJRU5zWldGeVNXNWthV05oZEc5eUlEMGdQRnh1SUNCUGNIUnBiMjRzWEc0Z0lFbHpUWFZzZEdrZ1pYaDBaVzVrY3lCaWIyOXNaV0Z1TEZ4dUlDQkhjbTkxY0NCbGVIUmxibVJ6SUVkeWIzVndRbUZ6WlR4UGNIUnBiMjQrWEc0K0tGeHVJQ0J3Y205d2N6b2dRMnhsWVhKSmJtUnBZMkYwYjNKUWNtOXdjenhQY0hScGIyNHNJRWx6VFhWc2RHa3NJRWR5YjNWd1BseHVLU0E5UGlCN1hHNGdJR052Ym5OMElIc2dZMmhwYkdSeVpXNHNJR2x1Ym1WeVVISnZjSE1nZlNBOUlIQnliM0J6TzF4dUlDQnlaWFIxY200Z0tGeHVJQ0FnSUR4a2FYWmNiaUFnSUNBZ0lIc3VMaTVuWlhSVGRIbHNaVkJ5YjNCektIQnliM0J6TENBblkyeGxZWEpKYm1ScFkyRjBiM0luTENCN1hHNGdJQ0FnSUNBZ0lHbHVaR2xqWVhSdmNqb2dkSEoxWlN4Y2JpQWdJQ0FnSUNBZ0oyTnNaV0Z5TFdsdVpHbGpZWFJ2Y2ljNklIUnlkV1VzWEc0Z0lDQWdJQ0I5S1gxY2JpQWdJQ0FnSUhzdUxpNXBibTVsY2xCeWIzQnpmVnh1SUNBZ0lENWNiaUFnSUNBZ0lIdGphR2xzWkhKbGJpQjhmQ0E4UTNKdmMzTkpZMjl1SUM4K2ZWeHVJQ0FnSUR3dlpHbDJQbHh1SUNBcE8xeHVmVHRjYmx4dUx5OGdQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5WEc0dkx5QlRaWEJoY21GMGIzSmNiaTh2SUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBWeHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRWx1WkdsallYUnZjbE5sY0dGeVlYUnZjbEJ5YjNCelBGeHVJQ0JQY0hScGIyNGdQU0IxYm10dWIzZHVMRnh1SUNCSmMwMTFiSFJwSUdWNGRHVnVaSE1nWW05dmJHVmhiaUE5SUdKdmIyeGxZVzRzWEc0Z0lFZHliM1Z3SUdWNGRHVnVaSE1nUjNKdmRYQkNZWE5sUEU5d2RHbHZiajRnUFNCSGNtOTFjRUpoYzJVOFQzQjBhVzl1UGx4dVBpQmxlSFJsYm1SeklFTnZiVzF2YmxCeWIzQnpRVzVrUTJ4aGMzTk9ZVzFsUEU5d2RHbHZiaXdnU1hOTmRXeDBhU3dnUjNKdmRYQStJSHRjYmlBZ2FYTkVhWE5oWW14bFpEb2dZbTl2YkdWaGJqdGNiaUFnYVhOR2IyTjFjMlZrT2lCaWIyOXNaV0Z1TzF4dUlDQnBibTVsY2xCeWIzQnpQem9nU2xOWUxrbHVkSEpwYm5OcFkwVnNaVzFsYm5Seld5ZHpjR0Z1SjEwN1hHNTlYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnBibVJwWTJGMGIzSlRaWEJoY21GMGIzSkRVMU1nUFNBOFhHNGdJRTl3ZEdsdmJpeGNiaUFnU1hOTmRXeDBhU0JsZUhSbGJtUnpJR0p2YjJ4bFlXNHNYRzRnSUVkeWIzVndJR1Y0ZEdWdVpITWdSM0p2ZFhCQ1lYTmxQRTl3ZEdsdmJqNWNiajRvWEc0Z0lIdGNiaUFnSUNCcGMwUnBjMkZpYkdWa0xGeHVJQ0FnSUhSb1pXMWxPaUI3WEc0Z0lDQWdJQ0J6Y0dGamFXNW5PaUI3SUdKaGMyVlZibWwwSUgwc1hHNGdJQ0FnSUNCamIyeHZjbk1zWEc0Z0lDQWdmU3hjYmlBZ2ZUb2dTVzVrYVdOaGRHOXlVMlZ3WVhKaGRHOXlVSEp2Y0hNOFQzQjBhVzl1TENCSmMwMTFiSFJwTENCSGNtOTFjRDRzWEc0Z0lIVnVjM1I1YkdWa09pQmliMjlzWldGdVhHNHBPaUJEVTFOUFltcGxZM1JYYVhSb1RHRmlaV3dnUFQ0Z0tIdGNiaUFnYkdGaVpXdzZJQ2RwYm1ScFkyRjBiM0pUWlhCaGNtRjBiM0luTEZ4dUlDQmhiR2xuYmxObGJHWTZJQ2R6ZEhKbGRHTm9KeXhjYmlBZ2QybGtkR2c2SURFc1hHNGdJQzR1TGloMWJuTjBlV3hsWkZ4dUlDQWdJRDhnZTMxY2JpQWdJQ0E2SUh0Y2JpQWdJQ0FnSUNBZ1ltRmphMmR5YjNWdVpFTnZiRzl5T2lCcGMwUnBjMkZpYkdWa0lEOGdZMjlzYjNKekxtNWxkWFJ5WVd3eE1DQTZJR052Ykc5eWN5NXVaWFYwY21Gc01qQXNYRzRnSUNBZ0lDQWdJRzFoY21kcGJrSnZkSFJ2YlRvZ1ltRnpaVlZ1YVhRZ0tpQXlMRnh1SUNBZ0lDQWdJQ0J0WVhKbmFXNVViM0E2SUdKaGMyVlZibWwwSUNvZ01peGNiaUFnSUNBZ0lIMHBMRnh1ZlNrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCSmJtUnBZMkYwYjNKVFpYQmhjbUYwYjNJZ1BTQThYRzRnSUU5d2RHbHZiaXhjYmlBZ1NYTk5kV3gwYVNCbGVIUmxibVJ6SUdKdmIyeGxZVzRzWEc0Z0lFZHliM1Z3SUdWNGRHVnVaSE1nUjNKdmRYQkNZWE5sUEU5d2RHbHZiajVjYmo0b1hHNGdJSEJ5YjNCek9pQkpibVJwWTJGMGIzSlRaWEJoY21GMGIzSlFjbTl3Y3p4UGNIUnBiMjRzSUVselRYVnNkR2tzSUVkeWIzVndQbHh1S1NBOVBpQjdYRzRnSUdOdmJuTjBJSHNnYVc1dVpYSlFjbTl3Y3lCOUlEMGdjSEp2Y0hNN1hHNGdJSEpsZEhWeWJpQW9YRzRnSUNBZ1BITndZVzVjYmlBZ0lDQWdJSHN1TGk1cGJtNWxjbEJ5YjNCemZWeHVJQ0FnSUNBZ2V5NHVMbWRsZEZOMGVXeGxVSEp2Y0hNb2NISnZjSE1zSUNkcGJtUnBZMkYwYjNKVFpYQmhjbUYwYjNJbkxDQjdYRzRnSUNBZ0lDQWdJQ2RwYm1ScFkyRjBiM0l0YzJWd1lYSmhkRzl5SnpvZ2RISjFaU3hjYmlBZ0lDQWdJSDBwZlZ4dUlDQWdJQzgrWEc0Z0lDazdYRzU5TzF4dVhHNHZMeUE5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQxY2JpOHZJRXh2WVdScGJtZGNiaTh2SUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBWeHVYRzVqYjI1emRDQnNiMkZrYVc1blJHOTBRVzVwYldGMGFXOXVjeUE5SUd0bGVXWnlZVzFsYzJCY2JpQWdNQ1VzSURnd0pTd2dNVEF3SlNCN0lHOXdZV05wZEhrNklEQTdJSDFjYmlBZ05EQWxJSHNnYjNCaFkybDBlVG9nTVRzZ2ZWeHVZRHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR3h2WVdScGJtZEpibVJwWTJGMGIzSkRVMU1nUFNBOFhHNGdJRTl3ZEdsdmJpeGNiaUFnU1hOTmRXeDBhU0JsZUhSbGJtUnpJR0p2YjJ4bFlXNHNYRzRnSUVkeWIzVndJR1Y0ZEdWdVpITWdSM0p2ZFhCQ1lYTmxQRTl3ZEdsdmJqNWNiajRvWEc0Z0lIdGNiaUFnSUNCcGMwWnZZM1Z6WldRc1hHNGdJQ0FnYzJsNlpTeGNiaUFnSUNCMGFHVnRaVG9nZTF4dUlDQWdJQ0FnWTI5c2IzSnpMRnh1SUNBZ0lDQWdjM0JoWTJsdVp6b2dleUJpWVhObFZXNXBkQ0I5TEZ4dUlDQWdJSDBzWEc0Z0lIMDZJRXh2WVdScGJtZEpibVJwWTJGMGIzSlFjbTl3Y3p4UGNIUnBiMjRzSUVselRYVnNkR2tzSUVkeWIzVndQaXhjYmlBZ2RXNXpkSGxzWldRNklHSnZiMnhsWVc1Y2JpazZJRU5UVTA5aWFtVmpkRmRwZEdoTVlXSmxiQ0E5UGlBb2UxeHVJQ0JzWVdKbGJEb2dKMnh2WVdScGJtZEpibVJwWTJGMGIzSW5MRnh1SUNCa2FYTndiR0Y1T2lBblpteGxlQ2NzWEc0Z0lIUnlZVzV6YVhScGIyNDZJQ2RqYjJ4dmNpQXhOVEJ0Y3ljc1hHNGdJR0ZzYVdkdVUyVnNaam9nSjJObGJuUmxjaWNzWEc0Z0lHWnZiblJUYVhwbE9pQnphWHBsTEZ4dUlDQnNhVzVsU0dWcFoyaDBPaUF4TEZ4dUlDQnRZWEpuYVc1U2FXZG9kRG9nYzJsNlpTeGNiaUFnZEdWNGRFRnNhV2R1T2lBblkyVnVkR1Z5Snl4Y2JpQWdkbVZ5ZEdsallXeEJiR2xuYmpvZ0oyMXBaR1JzWlNjc1hHNGdJQzR1TGloMWJuTjBlV3hsWkZ4dUlDQWdJRDhnZTMxY2JpQWdJQ0E2SUh0Y2JpQWdJQ0FnSUNBZ1kyOXNiM0k2SUdselJtOWpkWE5sWkNBL0lHTnZiRzl5Y3k1dVpYVjBjbUZzTmpBZ09pQmpiMnh2Y25NdWJtVjFkSEpoYkRJd0xGeHVJQ0FnSUNBZ0lDQndZV1JrYVc1bk9pQmlZWE5sVlc1cGRDQXFJRElzWEc0Z0lDQWdJQ0I5S1N4Y2JuMHBPMXh1WEc1cGJuUmxjbVpoWTJVZ1RHOWhaR2x1WjBSdmRGQnliM0J6SUh0Y2JpQWdaR1ZzWVhrNklHNTFiV0psY2p0Y2JpQWdiMlptYzJWME9pQmliMjlzWldGdU8xeHVmVnh1WTI5dWMzUWdURzloWkdsdVowUnZkQ0E5SUNoN0lHUmxiR0Y1TENCdlptWnpaWFFnZlRvZ1RHOWhaR2x1WjBSdmRGQnliM0J6S1NBOVBpQW9YRzRnSUR4emNHRnVYRzRnSUNBZ1kzTnpQWHQ3WEc0Z0lDQWdJQ0JoYm1sdFlYUnBiMjQ2SUdBa2UyeHZZV1JwYm1kRWIzUkJibWx0WVhScGIyNXpmU0F4Y3lCbFlYTmxMV2x1TFc5MWRDQWtlMlJsYkdGNWZXMXpJR2x1Wm1sdWFYUmxPMkFzWEc0Z0lDQWdJQ0JpWVdOclozSnZkVzVrUTI5c2IzSTZJQ2RqZFhKeVpXNTBRMjlzYjNJbkxGeHVJQ0FnSUNBZ1ltOXlaR1Z5VW1Ga2FYVnpPaUFuTVdWdEp5eGNiaUFnSUNBZ0lHUnBjM0JzWVhrNklDZHBibXhwYm1VdFlteHZZMnNuTEZ4dUlDQWdJQ0FnYldGeVoybHVUR1ZtZERvZ2IyWm1jMlYwSUQ4Z0p6RmxiU2NnT2lCMWJtUmxabWx1WldRc1hHNGdJQ0FnSUNCb1pXbG5hSFE2SUNjeFpXMG5MRnh1SUNBZ0lDQWdkbVZ5ZEdsallXeEJiR2xuYmpvZ0ozUnZjQ2NzWEc0Z0lDQWdJQ0IzYVdSMGFEb2dKekZsYlNjc1hHNGdJQ0FnZlgxY2JpQWdMejVjYmlrN1hHNWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdURzloWkdsdVowbHVaR2xqWVhSdmNsQnliM0J6UEZ4dUlDQlBjSFJwYjI0Z1BTQjFibXR1YjNkdUxGeHVJQ0JKYzAxMWJIUnBJR1Y0ZEdWdVpITWdZbTl2YkdWaGJpQTlJR0p2YjJ4bFlXNHNYRzRnSUVkeWIzVndJR1Y0ZEdWdVpITWdSM0p2ZFhCQ1lYTmxQRTl3ZEdsdmJqNGdQU0JIY205MWNFSmhjMlU4VDNCMGFXOXVQbHh1UGlCbGVIUmxibVJ6SUVOdmJXMXZibEJ5YjNCelFXNWtRMnhoYzNOT1lXMWxQRTl3ZEdsdmJpd2dTWE5OZFd4MGFTd2dSM0p2ZFhBK0lIdGNiaUFnTHlvcUlGQnliM0J6SUhSb1lYUWdkMmxzYkNCaVpTQndZWE56WldRZ2IyNGdkRzhnZEdobElHTm9hV3hrY21WdUxpQXFMMXh1SUNCcGJtNWxjbEJ5YjNCek9pQktVMWd1U1c1MGNtbHVjMmxqUld4bGJXVnVkSE5iSjJScGRpZGRPMXh1SUNBdktpb2dWR2hsSUdadlkzVnpaV1FnYzNSaGRHVWdiMllnZEdobElITmxiR1ZqZEM0Z0tpOWNiaUFnYVhOR2IyTjFjMlZrT2lCaWIyOXNaV0Z1TzF4dUlDQnBjMFJwYzJGaWJHVmtPaUJpYjI5c1pXRnVPMXh1SUNBdktpb2dVMlYwSUhOcGVtVWdiMllnZEdobElHTnZiblJoYVc1bGNpNGdLaTljYmlBZ2MybDZaVG9nYm5WdFltVnlPMXh1ZlZ4dVpYaHdiM0owSUdOdmJuTjBJRXh2WVdScGJtZEpibVJwWTJGMGIzSWdQU0E4WEc0Z0lFOXdkR2x2Yml4Y2JpQWdTWE5OZFd4MGFTQmxlSFJsYm1SeklHSnZiMnhsWVc0c1hHNGdJRWR5YjNWd0lHVjRkR1Z1WkhNZ1IzSnZkWEJDWVhObFBFOXdkR2x2Ymo1Y2JqNG9lMXh1SUNCcGJtNWxjbEJ5YjNCekxGeHVJQ0JwYzFKMGJDeGNiaUFnYzJsNlpTQTlJRFFzWEc0Z0lDNHVMbkpsYzNSUWNtOXdjMXh1ZlRvZ1RHOWhaR2x1WjBsdVpHbGpZWFJ2Y2xCeWIzQnpQRTl3ZEdsdmJpd2dTWE5OZFd4MGFTd2dSM0p2ZFhBK0tTQTlQaUI3WEc0Z0lISmxkSFZ5YmlBb1hHNGdJQ0FnUEdScGRseHVJQ0FnSUNBZ2V5NHVMbWRsZEZOMGVXeGxVSEp2Y0hNb1hHNGdJQ0FnSUNBZ0lIc2dMaTR1Y21WemRGQnliM0J6TENCcGJtNWxjbEJ5YjNCekxDQnBjMUowYkN3Z2MybDZaU0I5TEZ4dUlDQWdJQ0FnSUNBbmJHOWhaR2x1WjBsdVpHbGpZWFJ2Y2ljc1hHNGdJQ0FnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdJQ0JwYm1ScFkyRjBiM0k2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJQ0FnSjJ4dllXUnBibWN0YVc1a2FXTmhkRzl5SnpvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnS1gxY2JpQWdJQ0FnSUhzdUxpNXBibTVsY2xCeWIzQnpmVnh1SUNBZ0lENWNiaUFnSUNBZ0lEeE1iMkZrYVc1blJHOTBJR1JsYkdGNVBYc3dmU0J2Wm1aelpYUTllMmx6VW5Sc2ZTQXZQbHh1SUNBZ0lDQWdQRXh2WVdScGJtZEViM1FnWkdWc1lYazllekUyTUgwZ2IyWm1jMlYwSUM4K1hHNGdJQ0FnSUNBOFRHOWhaR2x1WjBSdmRDQmtaV3hoZVQxN016SXdmU0J2Wm1aelpYUTlleUZwYzFKMGJIMGdMejVjYmlBZ0lDQThMMlJwZGo1Y2JpQWdLVHRjYm4wN1hHNGlYWDA9ICovXCIpXG4gIH0pO1xufTtcbnZhciBMb2FkaW5nSW5kaWNhdG9yID0gZnVuY3Rpb24gTG9hZGluZ0luZGljYXRvcihfcmVmNykge1xuICB2YXIgaW5uZXJQcm9wcyA9IF9yZWY3LmlubmVyUHJvcHMsXG4gICAgaXNSdGwgPSBfcmVmNy5pc1J0bCxcbiAgICBfcmVmNyRzaXplID0gX3JlZjcuc2l6ZSxcbiAgICBzaXplID0gX3JlZjckc2l6ZSA9PT0gdm9pZCAwID8gNCA6IF9yZWY3JHNpemUsXG4gICAgcmVzdFByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9yZWY3LCBfZXhjbHVkZWQyKTtcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZ2V0U3R5bGVQcm9wcyhfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHJlc3RQcm9wcyksIHt9LCB7XG4gICAgaW5uZXJQcm9wczogaW5uZXJQcm9wcyxcbiAgICBpc1J0bDogaXNSdGwsXG4gICAgc2l6ZTogc2l6ZVxuICB9KSwgJ2xvYWRpbmdJbmRpY2F0b3InLCB7XG4gICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICdsb2FkaW5nLWluZGljYXRvcic6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpLCBqc3goTG9hZGluZ0RvdCwge1xuICAgIGRlbGF5OiAwLFxuICAgIG9mZnNldDogaXNSdGxcbiAgfSksIGpzeChMb2FkaW5nRG90LCB7XG4gICAgZGVsYXk6IDE2MCxcbiAgICBvZmZzZXQ6IHRydWVcbiAgfSksIGpzeChMb2FkaW5nRG90LCB7XG4gICAgZGVsYXk6IDMyMCxcbiAgICBvZmZzZXQ6ICFpc1J0bFxuICB9KSk7XG59O1xuXG52YXIgY3NzJDEgPSBmdW5jdGlvbiBjc3MoX3JlZiwgdW5zdHlsZWQpIHtcbiAgdmFyIGlzRGlzYWJsZWQgPSBfcmVmLmlzRGlzYWJsZWQsXG4gICAgaXNGb2N1c2VkID0gX3JlZi5pc0ZvY3VzZWQsXG4gICAgX3JlZiR0aGVtZSA9IF9yZWYudGhlbWUsXG4gICAgY29sb3JzID0gX3JlZiR0aGVtZS5jb2xvcnMsXG4gICAgYm9yZGVyUmFkaXVzID0gX3JlZiR0aGVtZS5ib3JkZXJSYWRpdXMsXG4gICAgc3BhY2luZyA9IF9yZWYkdGhlbWUuc3BhY2luZztcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe1xuICAgIGxhYmVsOiAnY29udHJvbCcsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgY3Vyc29yOiAnZGVmYXVsdCcsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICBtaW5IZWlnaHQ6IHNwYWNpbmcuY29udHJvbEhlaWdodCxcbiAgICBvdXRsaW5lOiAnMCAhaW1wb3J0YW50JyxcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICB0cmFuc2l0aW9uOiAnYWxsIDEwMG1zJ1xuICB9LCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIGJhY2tncm91bmRDb2xvcjogaXNEaXNhYmxlZCA/IGNvbG9ycy5uZXV0cmFsNSA6IGNvbG9ycy5uZXV0cmFsMCxcbiAgICBib3JkZXJDb2xvcjogaXNEaXNhYmxlZCA/IGNvbG9ycy5uZXV0cmFsMTAgOiBpc0ZvY3VzZWQgPyBjb2xvcnMucHJpbWFyeSA6IGNvbG9ycy5uZXV0cmFsMjAsXG4gICAgYm9yZGVyUmFkaXVzOiBib3JkZXJSYWRpdXMsXG4gICAgYm9yZGVyU3R5bGU6ICdzb2xpZCcsXG4gICAgYm9yZGVyV2lkdGg6IDEsXG4gICAgYm94U2hhZG93OiBpc0ZvY3VzZWQgPyBcIjAgMCAwIDFweCBcIi5jb25jYXQoY29sb3JzLnByaW1hcnkpIDogdW5kZWZpbmVkLFxuICAgICcmOmhvdmVyJzoge1xuICAgICAgYm9yZGVyQ29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5wcmltYXJ5IDogY29sb3JzLm5ldXRyYWwzMFxuICAgIH1cbiAgfSk7XG59O1xudmFyIENvbnRyb2wgPSBmdW5jdGlvbiBDb250cm9sKHByb3BzKSB7XG4gIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgIGlzRGlzYWJsZWQgPSBwcm9wcy5pc0Rpc2FibGVkLFxuICAgIGlzRm9jdXNlZCA9IHByb3BzLmlzRm9jdXNlZCxcbiAgICBpbm5lclJlZiA9IHByb3BzLmlubmVyUmVmLFxuICAgIGlubmVyUHJvcHMgPSBwcm9wcy5pbm5lclByb3BzLFxuICAgIG1lbnVJc09wZW4gPSBwcm9wcy5tZW51SXNPcGVuO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHtcbiAgICByZWY6IGlubmVyUmVmXG4gIH0sIGdldFN0eWxlUHJvcHMocHJvcHMsICdjb250cm9sJywge1xuICAgIGNvbnRyb2w6IHRydWUsXG4gICAgJ2NvbnRyb2wtLWlzLWRpc2FibGVkJzogaXNEaXNhYmxlZCxcbiAgICAnY29udHJvbC0taXMtZm9jdXNlZCc6IGlzRm9jdXNlZCxcbiAgICAnY29udHJvbC0tbWVudS1pcy1vcGVuJzogbWVudUlzT3BlblxuICB9KSwgaW5uZXJQcm9wcywge1xuICAgIFwiYXJpYS1kaXNhYmxlZFwiOiBpc0Rpc2FibGVkIHx8IHVuZGVmaW5lZFxuICB9KSwgY2hpbGRyZW4pO1xufTtcbnZhciBDb250cm9sJDEgPSBDb250cm9sO1xuXG52YXIgX2V4Y2x1ZGVkJDEgPSBbXCJkYXRhXCJdO1xudmFyIGdyb3VwQ1NTID0gZnVuY3Rpb24gZ3JvdXBDU1MoX3JlZiwgdW5zdHlsZWQpIHtcbiAgdmFyIHNwYWNpbmcgPSBfcmVmLnRoZW1lLnNwYWNpbmc7XG4gIHJldHVybiB1bnN0eWxlZCA/IHt9IDoge1xuICAgIHBhZGRpbmdCb3R0b206IHNwYWNpbmcuYmFzZVVuaXQgKiAyLFxuICAgIHBhZGRpbmdUb3A6IHNwYWNpbmcuYmFzZVVuaXQgKiAyXG4gIH07XG59O1xudmFyIEdyb3VwID0gZnVuY3Rpb24gR3JvdXAocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgY3ggPSBwcm9wcy5jeCxcbiAgICBnZXRTdHlsZXMgPSBwcm9wcy5nZXRTdHlsZXMsXG4gICAgZ2V0Q2xhc3NOYW1lcyA9IHByb3BzLmdldENsYXNzTmFtZXMsXG4gICAgSGVhZGluZyA9IHByb3BzLkhlYWRpbmcsXG4gICAgaGVhZGluZ1Byb3BzID0gcHJvcHMuaGVhZGluZ1Byb3BzLFxuICAgIGlubmVyUHJvcHMgPSBwcm9wcy5pbm5lclByb3BzLFxuICAgIGxhYmVsID0gcHJvcHMubGFiZWwsXG4gICAgdGhlbWUgPSBwcm9wcy50aGVtZSxcbiAgICBzZWxlY3RQcm9wcyA9IHByb3BzLnNlbGVjdFByb3BzO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnZ3JvdXAnLCB7XG4gICAgZ3JvdXA6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpLCBqc3goSGVhZGluZywgX2V4dGVuZHMoe30sIGhlYWRpbmdQcm9wcywge1xuICAgIHNlbGVjdFByb3BzOiBzZWxlY3RQcm9wcyxcbiAgICB0aGVtZTogdGhlbWUsXG4gICAgZ2V0U3R5bGVzOiBnZXRTdHlsZXMsXG4gICAgZ2V0Q2xhc3NOYW1lczogZ2V0Q2xhc3NOYW1lcyxcbiAgICBjeDogY3hcbiAgfSksIGxhYmVsKSwganN4KFwiZGl2XCIsIG51bGwsIGNoaWxkcmVuKSk7XG59O1xudmFyIGdyb3VwSGVhZGluZ0NTUyA9IGZ1bmN0aW9uIGdyb3VwSGVhZGluZ0NTUyhfcmVmMiwgdW5zdHlsZWQpIHtcbiAgdmFyIF9yZWYyJHRoZW1lID0gX3JlZjIudGhlbWUsXG4gICAgY29sb3JzID0gX3JlZjIkdGhlbWUuY29sb3JzLFxuICAgIHNwYWNpbmcgPSBfcmVmMiR0aGVtZS5zcGFjaW5nO1xuICByZXR1cm4gX29iamVjdFNwcmVhZCh7XG4gICAgbGFiZWw6ICdncm91cCcsXG4gICAgY3Vyc29yOiAnZGVmYXVsdCcsXG4gICAgZGlzcGxheTogJ2Jsb2NrJ1xuICB9LCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIGNvbG9yOiBjb2xvcnMubmV1dHJhbDQwLFxuICAgIGZvbnRTaXplOiAnNzUlJyxcbiAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgbWFyZ2luQm90dG9tOiAnMC4yNWVtJyxcbiAgICBwYWRkaW5nTGVmdDogc3BhY2luZy5iYXNlVW5pdCAqIDMsXG4gICAgcGFkZGluZ1JpZ2h0OiBzcGFjaW5nLmJhc2VVbml0ICogMyxcbiAgICB0ZXh0VHJhbnNmb3JtOiAndXBwZXJjYXNlJ1xuICB9KTtcbn07XG52YXIgR3JvdXBIZWFkaW5nID0gZnVuY3Rpb24gR3JvdXBIZWFkaW5nKHByb3BzKSB7XG4gIHZhciBfY2xlYW5Db21tb25Qcm9wcyA9IGNsZWFuQ29tbW9uUHJvcHMocHJvcHMpO1xuICAgIF9jbGVhbkNvbW1vblByb3BzLmRhdGE7XG4gICAgdmFyIGlubmVyUHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX2NsZWFuQ29tbW9uUHJvcHMsIF9leGNsdWRlZCQxKTtcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2dyb3VwSGVhZGluZycsIHtcbiAgICAnZ3JvdXAtaGVhZGluZyc6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpKTtcbn07XG52YXIgR3JvdXAkMSA9IEdyb3VwO1xuXG52YXIgX2V4Y2x1ZGVkID0gW1wiaW5uZXJSZWZcIiwgXCJpc0Rpc2FibGVkXCIsIFwiaXNIaWRkZW5cIiwgXCJpbnB1dENsYXNzTmFtZVwiXTtcbnZhciBpbnB1dENTUyA9IGZ1bmN0aW9uIGlucHV0Q1NTKF9yZWYsIHVuc3R5bGVkKSB7XG4gIHZhciBpc0Rpc2FibGVkID0gX3JlZi5pc0Rpc2FibGVkLFxuICAgIHZhbHVlID0gX3JlZi52YWx1ZSxcbiAgICBfcmVmJHRoZW1lID0gX3JlZi50aGVtZSxcbiAgICBzcGFjaW5nID0gX3JlZiR0aGVtZS5zcGFjaW5nLFxuICAgIGNvbG9ycyA9IF9yZWYkdGhlbWUuY29sb3JzO1xuICByZXR1cm4gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHtcbiAgICB2aXNpYmlsaXR5OiBpc0Rpc2FibGVkID8gJ2hpZGRlbicgOiAndmlzaWJsZScsXG4gICAgLy8gZm9yY2UgY3NzIHRvIHJlY29tcHV0ZSB3aGVuIHZhbHVlIGNoYW5nZSBkdWUgdG8gQGVtb3Rpb24gYnVnLlxuICAgIC8vIFdlIGNhbiByZW1vdmUgaXQgd2hlbmV2ZXIgdGhlIGJ1ZyBpcyBmaXhlZC5cbiAgICB0cmFuc2Zvcm06IHZhbHVlID8gJ3RyYW5zbGF0ZVooMCknIDogJydcbiAgfSwgY29udGFpbmVyU3R5bGUpLCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIG1hcmdpbjogc3BhY2luZy5iYXNlVW5pdCAvIDIsXG4gICAgcGFkZGluZ0JvdHRvbTogc3BhY2luZy5iYXNlVW5pdCAvIDIsXG4gICAgcGFkZGluZ1RvcDogc3BhY2luZy5iYXNlVW5pdCAvIDIsXG4gICAgY29sb3I6IGNvbG9ycy5uZXV0cmFsODBcbiAgfSk7XG59O1xudmFyIHNwYWNpbmdTdHlsZSA9IHtcbiAgZ3JpZEFyZWE6ICcxIC8gMicsXG4gIGZvbnQ6ICdpbmhlcml0JyxcbiAgbWluV2lkdGg6ICcycHgnLFxuICBib3JkZXI6IDAsXG4gIG1hcmdpbjogMCxcbiAgb3V0bGluZTogMCxcbiAgcGFkZGluZzogMFxufTtcbnZhciBjb250YWluZXJTdHlsZSA9IHtcbiAgZmxleDogJzEgMSBhdXRvJyxcbiAgZGlzcGxheTogJ2lubGluZS1ncmlkJyxcbiAgZ3JpZEFyZWE6ICcxIC8gMSAvIDIgLyAzJyxcbiAgZ3JpZFRlbXBsYXRlQ29sdW1uczogJzAgbWluLWNvbnRlbnQnLFxuICAnJjphZnRlcic6IF9vYmplY3RTcHJlYWQoe1xuICAgIGNvbnRlbnQ6ICdhdHRyKGRhdGEtdmFsdWUpIFwiIFwiJyxcbiAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJyxcbiAgICB3aGl0ZVNwYWNlOiAncHJlJ1xuICB9LCBzcGFjaW5nU3R5bGUpXG59O1xudmFyIGlucHV0U3R5bGUgPSBmdW5jdGlvbiBpbnB1dFN0eWxlKGlzSGlkZGVuKSB7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBsYWJlbDogJ2lucHV0JyxcbiAgICBjb2xvcjogJ2luaGVyaXQnLFxuICAgIGJhY2tncm91bmQ6IDAsXG4gICAgb3BhY2l0eTogaXNIaWRkZW4gPyAwIDogMSxcbiAgICB3aWR0aDogJzEwMCUnXG4gIH0sIHNwYWNpbmdTdHlsZSk7XG59O1xudmFyIElucHV0ID0gZnVuY3Rpb24gSW5wdXQocHJvcHMpIHtcbiAgdmFyIGN4ID0gcHJvcHMuY3gsXG4gICAgdmFsdWUgPSBwcm9wcy52YWx1ZTtcbiAgdmFyIF9jbGVhbkNvbW1vblByb3BzID0gY2xlYW5Db21tb25Qcm9wcyhwcm9wcyksXG4gICAgaW5uZXJSZWYgPSBfY2xlYW5Db21tb25Qcm9wcy5pbm5lclJlZixcbiAgICBpc0Rpc2FibGVkID0gX2NsZWFuQ29tbW9uUHJvcHMuaXNEaXNhYmxlZCxcbiAgICBpc0hpZGRlbiA9IF9jbGVhbkNvbW1vblByb3BzLmlzSGlkZGVuLFxuICAgIGlucHV0Q2xhc3NOYW1lID0gX2NsZWFuQ29tbW9uUHJvcHMuaW5wdXRDbGFzc05hbWUsXG4gICAgaW5uZXJQcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfY2xlYW5Db21tb25Qcm9wcywgX2V4Y2x1ZGVkKTtcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2lucHV0Jywge1xuICAgICdpbnB1dC1jb250YWluZXInOiB0cnVlXG4gIH0pLCB7XG4gICAgXCJkYXRhLXZhbHVlXCI6IHZhbHVlIHx8ICcnXG4gIH0pLCBqc3goXCJpbnB1dFwiLCBfZXh0ZW5kcyh7XG4gICAgY2xhc3NOYW1lOiBjeCh7XG4gICAgICBpbnB1dDogdHJ1ZVxuICAgIH0sIGlucHV0Q2xhc3NOYW1lKSxcbiAgICByZWY6IGlubmVyUmVmLFxuICAgIHN0eWxlOiBpbnB1dFN0eWxlKGlzSGlkZGVuKSxcbiAgICBkaXNhYmxlZDogaXNEaXNhYmxlZFxuICB9LCBpbm5lclByb3BzKSkpO1xufTtcbnZhciBJbnB1dCQxID0gSW5wdXQ7XG5cbnZhciBtdWx0aVZhbHVlQ1NTID0gZnVuY3Rpb24gbXVsdGlWYWx1ZUNTUyhfcmVmLCB1bnN0eWxlZCkge1xuICB2YXIgX3JlZiR0aGVtZSA9IF9yZWYudGhlbWUsXG4gICAgc3BhY2luZyA9IF9yZWYkdGhlbWUuc3BhY2luZyxcbiAgICBib3JkZXJSYWRpdXMgPSBfcmVmJHRoZW1lLmJvcmRlclJhZGl1cyxcbiAgICBjb2xvcnMgPSBfcmVmJHRoZW1lLmNvbG9ycztcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe1xuICAgIGxhYmVsOiAnbXVsdGlWYWx1ZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIG1pbldpZHRoOiAwXG4gIH0sIHVuc3R5bGVkID8ge30gOiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMubmV1dHJhbDEwLFxuICAgIGJvcmRlclJhZGl1czogYm9yZGVyUmFkaXVzIC8gMixcbiAgICBtYXJnaW46IHNwYWNpbmcuYmFzZVVuaXQgLyAyXG4gIH0pO1xufTtcbnZhciBtdWx0aVZhbHVlTGFiZWxDU1MgPSBmdW5jdGlvbiBtdWx0aVZhbHVlTGFiZWxDU1MoX3JlZjIsIHVuc3R5bGVkKSB7XG4gIHZhciBfcmVmMiR0aGVtZSA9IF9yZWYyLnRoZW1lLFxuICAgIGJvcmRlclJhZGl1cyA9IF9yZWYyJHRoZW1lLmJvcmRlclJhZGl1cyxcbiAgICBjb2xvcnMgPSBfcmVmMiR0aGVtZS5jb2xvcnMsXG4gICAgY3JvcFdpdGhFbGxpcHNpcyA9IF9yZWYyLmNyb3BXaXRoRWxsaXBzaXM7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgdGV4dE92ZXJmbG93OiBjcm9wV2l0aEVsbGlwc2lzIHx8IGNyb3BXaXRoRWxsaXBzaXMgPT09IHVuZGVmaW5lZCA/ICdlbGxpcHNpcycgOiB1bmRlZmluZWQsXG4gICAgd2hpdGVTcGFjZTogJ25vd3JhcCdcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBib3JkZXJSYWRpdXM6IGJvcmRlclJhZGl1cyAvIDIsXG4gICAgY29sb3I6IGNvbG9ycy5uZXV0cmFsODAsXG4gICAgZm9udFNpemU6ICc4NSUnLFxuICAgIHBhZGRpbmc6IDMsXG4gICAgcGFkZGluZ0xlZnQ6IDZcbiAgfSk7XG59O1xudmFyIG11bHRpVmFsdWVSZW1vdmVDU1MgPSBmdW5jdGlvbiBtdWx0aVZhbHVlUmVtb3ZlQ1NTKF9yZWYzLCB1bnN0eWxlZCkge1xuICB2YXIgX3JlZjMkdGhlbWUgPSBfcmVmMy50aGVtZSxcbiAgICBzcGFjaW5nID0gX3JlZjMkdGhlbWUuc3BhY2luZyxcbiAgICBib3JkZXJSYWRpdXMgPSBfcmVmMyR0aGVtZS5ib3JkZXJSYWRpdXMsXG4gICAgY29sb3JzID0gX3JlZjMkdGhlbWUuY29sb3JzLFxuICAgIGlzRm9jdXNlZCA9IF9yZWYzLmlzRm9jdXNlZDtcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe1xuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGRpc3BsYXk6ICdmbGV4J1xuICB9LCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIGJvcmRlclJhZGl1czogYm9yZGVyUmFkaXVzIC8gMixcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5kYW5nZXJMaWdodCA6IHVuZGVmaW5lZCxcbiAgICBwYWRkaW5nTGVmdDogc3BhY2luZy5iYXNlVW5pdCxcbiAgICBwYWRkaW5nUmlnaHQ6IHNwYWNpbmcuYmFzZVVuaXQsXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogY29sb3JzLmRhbmdlckxpZ2h0LFxuICAgICAgY29sb3I6IGNvbG9ycy5kYW5nZXJcbiAgICB9XG4gIH0pO1xufTtcbnZhciBNdWx0aVZhbHVlR2VuZXJpYyA9IGZ1bmN0aW9uIE11bHRpVmFsdWVHZW5lcmljKF9yZWY0KSB7XG4gIHZhciBjaGlsZHJlbiA9IF9yZWY0LmNoaWxkcmVuLFxuICAgIGlubmVyUHJvcHMgPSBfcmVmNC5pbm5lclByb3BzO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIGlubmVyUHJvcHMsIGNoaWxkcmVuKTtcbn07XG52YXIgTXVsdGlWYWx1ZUNvbnRhaW5lciA9IE11bHRpVmFsdWVHZW5lcmljO1xudmFyIE11bHRpVmFsdWVMYWJlbCA9IE11bHRpVmFsdWVHZW5lcmljO1xuZnVuY3Rpb24gTXVsdGlWYWx1ZVJlbW92ZShfcmVmNSkge1xuICB2YXIgY2hpbGRyZW4gPSBfcmVmNS5jaGlsZHJlbixcbiAgICBpbm5lclByb3BzID0gX3JlZjUuaW5uZXJQcm9wcztcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7XG4gICAgcm9sZTogXCJidXR0b25cIlxuICB9LCBpbm5lclByb3BzKSwgY2hpbGRyZW4gfHwganN4KENyb3NzSWNvbiwge1xuICAgIHNpemU6IDE0XG4gIH0pKTtcbn1cbnZhciBNdWx0aVZhbHVlID0gZnVuY3Rpb24gTXVsdGlWYWx1ZShwcm9wcykge1xuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBjb21wb25lbnRzID0gcHJvcHMuY29tcG9uZW50cyxcbiAgICBkYXRhID0gcHJvcHMuZGF0YSxcbiAgICBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcyxcbiAgICBpc0Rpc2FibGVkID0gcHJvcHMuaXNEaXNhYmxlZCxcbiAgICByZW1vdmVQcm9wcyA9IHByb3BzLnJlbW92ZVByb3BzLFxuICAgIHNlbGVjdFByb3BzID0gcHJvcHMuc2VsZWN0UHJvcHM7XG4gIHZhciBDb250YWluZXIgPSBjb21wb25lbnRzLkNvbnRhaW5lcixcbiAgICBMYWJlbCA9IGNvbXBvbmVudHMuTGFiZWwsXG4gICAgUmVtb3ZlID0gY29tcG9uZW50cy5SZW1vdmU7XG4gIHJldHVybiBqc3goQ29udGFpbmVyLCB7XG4gICAgZGF0YTogZGF0YSxcbiAgICBpbm5lclByb3BzOiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGdldFN0eWxlUHJvcHMocHJvcHMsICdtdWx0aVZhbHVlJywge1xuICAgICAgJ211bHRpLXZhbHVlJzogdHJ1ZSxcbiAgICAgICdtdWx0aS12YWx1ZS0taXMtZGlzYWJsZWQnOiBpc0Rpc2FibGVkXG4gICAgfSkpLCBpbm5lclByb3BzKSxcbiAgICBzZWxlY3RQcm9wczogc2VsZWN0UHJvcHNcbiAgfSwganN4KExhYmVsLCB7XG4gICAgZGF0YTogZGF0YSxcbiAgICBpbm5lclByb3BzOiBfb2JqZWN0U3ByZWFkKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnbXVsdGlWYWx1ZUxhYmVsJywge1xuICAgICAgJ211bHRpLXZhbHVlX19sYWJlbCc6IHRydWVcbiAgICB9KSksXG4gICAgc2VsZWN0UHJvcHM6IHNlbGVjdFByb3BzXG4gIH0sIGNoaWxkcmVuKSwganN4KFJlbW92ZSwge1xuICAgIGRhdGE6IGRhdGEsXG4gICAgaW5uZXJQcm9wczogX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnbXVsdGlWYWx1ZVJlbW92ZScsIHtcbiAgICAgICdtdWx0aS12YWx1ZV9fcmVtb3ZlJzogdHJ1ZVxuICAgIH0pKSwge30sIHtcbiAgICAgICdhcmlhLWxhYmVsJzogXCJSZW1vdmUgXCIuY29uY2F0KGNoaWxkcmVuIHx8ICdvcHRpb24nKVxuICAgIH0sIHJlbW92ZVByb3BzKSxcbiAgICBzZWxlY3RQcm9wczogc2VsZWN0UHJvcHNcbiAgfSkpO1xufTtcbnZhciBNdWx0aVZhbHVlJDEgPSBNdWx0aVZhbHVlO1xuXG52YXIgb3B0aW9uQ1NTID0gZnVuY3Rpb24gb3B0aW9uQ1NTKF9yZWYsIHVuc3R5bGVkKSB7XG4gIHZhciBpc0Rpc2FibGVkID0gX3JlZi5pc0Rpc2FibGVkLFxuICAgIGlzRm9jdXNlZCA9IF9yZWYuaXNGb2N1c2VkLFxuICAgIGlzU2VsZWN0ZWQgPSBfcmVmLmlzU2VsZWN0ZWQsXG4gICAgX3JlZiR0aGVtZSA9IF9yZWYudGhlbWUsXG4gICAgc3BhY2luZyA9IF9yZWYkdGhlbWUuc3BhY2luZyxcbiAgICBjb2xvcnMgPSBfcmVmJHRoZW1lLmNvbG9ycztcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe1xuICAgIGxhYmVsOiAnb3B0aW9uJyxcbiAgICBjdXJzb3I6ICdkZWZhdWx0JyxcbiAgICBkaXNwbGF5OiAnYmxvY2snLFxuICAgIGZvbnRTaXplOiAnaW5oZXJpdCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICB1c2VyU2VsZWN0OiAnbm9uZScsXG4gICAgV2Via2l0VGFwSGlnaGxpZ2h0Q29sb3I6ICdyZ2JhKDAsIDAsIDAsIDApJ1xuICB9LCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIGJhY2tncm91bmRDb2xvcjogaXNTZWxlY3RlZCA/IGNvbG9ycy5wcmltYXJ5IDogaXNGb2N1c2VkID8gY29sb3JzLnByaW1hcnkyNSA6ICd0cmFuc3BhcmVudCcsXG4gICAgY29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDIwIDogaXNTZWxlY3RlZCA/IGNvbG9ycy5uZXV0cmFsMCA6ICdpbmhlcml0JyxcbiAgICBwYWRkaW5nOiBcIlwiLmNvbmNhdChzcGFjaW5nLmJhc2VVbml0ICogMiwgXCJweCBcIikuY29uY2F0KHNwYWNpbmcuYmFzZVVuaXQgKiAzLCBcInB4XCIpLFxuICAgIC8vIHByb3ZpZGUgc29tZSBhZmZvcmRhbmNlIG9uIHRvdWNoIGRldmljZXNcbiAgICAnOmFjdGl2ZSc6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogIWlzRGlzYWJsZWQgPyBpc1NlbGVjdGVkID8gY29sb3JzLnByaW1hcnkgOiBjb2xvcnMucHJpbWFyeTUwIDogdW5kZWZpbmVkXG4gICAgfVxuICB9KTtcbn07XG52YXIgT3B0aW9uID0gZnVuY3Rpb24gT3B0aW9uKHByb3BzKSB7XG4gIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgIGlzRGlzYWJsZWQgPSBwcm9wcy5pc0Rpc2FibGVkLFxuICAgIGlzRm9jdXNlZCA9IHByb3BzLmlzRm9jdXNlZCxcbiAgICBpc1NlbGVjdGVkID0gcHJvcHMuaXNTZWxlY3RlZCxcbiAgICBpbm5lclJlZiA9IHByb3BzLmlubmVyUmVmLFxuICAgIGlubmVyUHJvcHMgPSBwcm9wcy5pbm5lclByb3BzO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnb3B0aW9uJywge1xuICAgIG9wdGlvbjogdHJ1ZSxcbiAgICAnb3B0aW9uLS1pcy1kaXNhYmxlZCc6IGlzRGlzYWJsZWQsXG4gICAgJ29wdGlvbi0taXMtZm9jdXNlZCc6IGlzRm9jdXNlZCxcbiAgICAnb3B0aW9uLS1pcy1zZWxlY3RlZCc6IGlzU2VsZWN0ZWRcbiAgfSksIHtcbiAgICByZWY6IGlubmVyUmVmLFxuICAgIFwiYXJpYS1kaXNhYmxlZFwiOiBpc0Rpc2FibGVkXG4gIH0sIGlubmVyUHJvcHMpLCBjaGlsZHJlbik7XG59O1xudmFyIE9wdGlvbiQxID0gT3B0aW9uO1xuXG52YXIgcGxhY2Vob2xkZXJDU1MgPSBmdW5jdGlvbiBwbGFjZWhvbGRlckNTUyhfcmVmLCB1bnN0eWxlZCkge1xuICB2YXIgX3JlZiR0aGVtZSA9IF9yZWYudGhlbWUsXG4gICAgc3BhY2luZyA9IF9yZWYkdGhlbWUuc3BhY2luZyxcbiAgICBjb2xvcnMgPSBfcmVmJHRoZW1lLmNvbG9ycztcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe1xuICAgIGxhYmVsOiAncGxhY2Vob2xkZXInLFxuICAgIGdyaWRBcmVhOiAnMSAvIDEgLyAyIC8gMydcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBjb2xvcjogY29sb3JzLm5ldXRyYWw1MCxcbiAgICBtYXJnaW5MZWZ0OiBzcGFjaW5nLmJhc2VVbml0IC8gMixcbiAgICBtYXJnaW5SaWdodDogc3BhY2luZy5iYXNlVW5pdCAvIDJcbiAgfSk7XG59O1xudmFyIFBsYWNlaG9sZGVyID0gZnVuY3Rpb24gUGxhY2Vob2xkZXIocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IHByb3BzLmlubmVyUHJvcHM7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMocHJvcHMsICdwbGFjZWhvbGRlcicsIHtcbiAgICBwbGFjZWhvbGRlcjogdHJ1ZVxuICB9KSwgaW5uZXJQcm9wcyksIGNoaWxkcmVuKTtcbn07XG52YXIgUGxhY2Vob2xkZXIkMSA9IFBsYWNlaG9sZGVyO1xuXG52YXIgY3NzID0gZnVuY3Rpb24gY3NzKF9yZWYsIHVuc3R5bGVkKSB7XG4gIHZhciBpc0Rpc2FibGVkID0gX3JlZi5pc0Rpc2FibGVkLFxuICAgIF9yZWYkdGhlbWUgPSBfcmVmLnRoZW1lLFxuICAgIHNwYWNpbmcgPSBfcmVmJHRoZW1lLnNwYWNpbmcsXG4gICAgY29sb3JzID0gX3JlZiR0aGVtZS5jb2xvcnM7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBsYWJlbDogJ3NpbmdsZVZhbHVlJyxcbiAgICBncmlkQXJlYTogJzEgLyAxIC8gMiAvIDMnLFxuICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICB3aGl0ZVNwYWNlOiAnbm93cmFwJ1xuICB9LCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIGNvbG9yOiBpc0Rpc2FibGVkID8gY29sb3JzLm5ldXRyYWw0MCA6IGNvbG9ycy5uZXV0cmFsODAsXG4gICAgbWFyZ2luTGVmdDogc3BhY2luZy5iYXNlVW5pdCAvIDIsXG4gICAgbWFyZ2luUmlnaHQ6IHNwYWNpbmcuYmFzZVVuaXQgLyAyXG4gIH0pO1xufTtcbnZhciBTaW5nbGVWYWx1ZSA9IGZ1bmN0aW9uIFNpbmdsZVZhbHVlKHByb3BzKSB7XG4gIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgIGlzRGlzYWJsZWQgPSBwcm9wcy5pc0Rpc2FibGVkLFxuICAgIGlubmVyUHJvcHMgPSBwcm9wcy5pbm5lclByb3BzO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnc2luZ2xlVmFsdWUnLCB7XG4gICAgJ3NpbmdsZS12YWx1ZSc6IHRydWUsXG4gICAgJ3NpbmdsZS12YWx1ZS0taXMtZGlzYWJsZWQnOiBpc0Rpc2FibGVkXG4gIH0pLCBpbm5lclByb3BzKSwgY2hpbGRyZW4pO1xufTtcbnZhciBTaW5nbGVWYWx1ZSQxID0gU2luZ2xlVmFsdWU7XG5cbnZhciBjb21wb25lbnRzID0ge1xuICBDbGVhckluZGljYXRvcjogQ2xlYXJJbmRpY2F0b3IsXG4gIENvbnRyb2w6IENvbnRyb2wkMSxcbiAgRHJvcGRvd25JbmRpY2F0b3I6IERyb3Bkb3duSW5kaWNhdG9yLFxuICBEb3duQ2hldnJvbjogRG93bkNoZXZyb24sXG4gIENyb3NzSWNvbjogQ3Jvc3NJY29uLFxuICBHcm91cDogR3JvdXAkMSxcbiAgR3JvdXBIZWFkaW5nOiBHcm91cEhlYWRpbmcsXG4gIEluZGljYXRvcnNDb250YWluZXI6IEluZGljYXRvcnNDb250YWluZXIsXG4gIEluZGljYXRvclNlcGFyYXRvcjogSW5kaWNhdG9yU2VwYXJhdG9yLFxuICBJbnB1dDogSW5wdXQkMSxcbiAgTG9hZGluZ0luZGljYXRvcjogTG9hZGluZ0luZGljYXRvcixcbiAgTWVudTogTWVudSQxLFxuICBNZW51TGlzdDogTWVudUxpc3QsXG4gIE1lbnVQb3J0YWw6IE1lbnVQb3J0YWwsXG4gIExvYWRpbmdNZXNzYWdlOiBMb2FkaW5nTWVzc2FnZSxcbiAgTm9PcHRpb25zTWVzc2FnZTogTm9PcHRpb25zTWVzc2FnZSxcbiAgTXVsdGlWYWx1ZTogTXVsdGlWYWx1ZSQxLFxuICBNdWx0aVZhbHVlQ29udGFpbmVyOiBNdWx0aVZhbHVlQ29udGFpbmVyLFxuICBNdWx0aVZhbHVlTGFiZWw6IE11bHRpVmFsdWVMYWJlbCxcbiAgTXVsdGlWYWx1ZVJlbW92ZTogTXVsdGlWYWx1ZVJlbW92ZSxcbiAgT3B0aW9uOiBPcHRpb24kMSxcbiAgUGxhY2Vob2xkZXI6IFBsYWNlaG9sZGVyJDEsXG4gIFNlbGVjdENvbnRhaW5lcjogU2VsZWN0Q29udGFpbmVyLFxuICBTaW5nbGVWYWx1ZTogU2luZ2xlVmFsdWUkMSxcbiAgVmFsdWVDb250YWluZXI6IFZhbHVlQ29udGFpbmVyXG59O1xudmFyIGRlZmF1bHRDb21wb25lbnRzID0gZnVuY3Rpb24gZGVmYXVsdENvbXBvbmVudHMocHJvcHMpIHtcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgY29tcG9uZW50cyksIHByb3BzLmNvbXBvbmVudHMpO1xufTtcblxuZXhwb3J0IHsgaXNNb2JpbGVEZXZpY2UgYXMgQSwgbXVsdGlWYWx1ZUFzVmFsdWUgYXMgQiwgc2luZ2xlVmFsdWVBc1ZhbHVlIGFzIEMsIHZhbHVlVGVybmFyeSBhcyBELCBjbGFzc05hbWVzIGFzIEUsIGRlZmF1bHRDb21wb25lbnRzIGFzIEYsIGlzRG9jdW1lbnRFbGVtZW50IGFzIEcsIGNsZWFuVmFsdWUgYXMgSCwgc2Nyb2xsSW50b1ZpZXcgYXMgSSwgbm9vcCBhcyBKLCBub3ROdWxsaXNoIGFzIEssIGhhbmRsZUlucHV0Q2hhbmdlIGFzIEwsIE1lbnVQbGFjZXIgYXMgTSwgY2xlYXJJbmRpY2F0b3JDU1MgYXMgYSwgY29udGFpbmVyQ1NTIGFzIGIsIGNvbXBvbmVudHMgYXMgYywgY3NzJDEgYXMgZCwgZHJvcGRvd25JbmRpY2F0b3JDU1MgYXMgZSwgZ3JvdXBIZWFkaW5nQ1NTIGFzIGYsIGdyb3VwQ1NTIGFzIGcsIGluZGljYXRvclNlcGFyYXRvckNTUyBhcyBoLCBpbmRpY2F0b3JzQ29udGFpbmVyQ1NTIGFzIGksIGlucHV0Q1NTIGFzIGosIGxvYWRpbmdNZXNzYWdlQ1NTIGFzIGssIGxvYWRpbmdJbmRpY2F0b3JDU1MgYXMgbCwgbWVudUNTUyBhcyBtLCBtZW51TGlzdENTUyBhcyBuLCBtZW51UG9ydGFsQ1NTIGFzIG8sIG11bHRpVmFsdWVDU1MgYXMgcCwgbXVsdGlWYWx1ZUxhYmVsQ1NTIGFzIHEsIHJlbW92ZVByb3BzIGFzIHIsIHN1cHBvcnRzUGFzc2l2ZUV2ZW50cyBhcyBzLCBtdWx0aVZhbHVlUmVtb3ZlQ1NTIGFzIHQsIG5vT3B0aW9uc01lc3NhZ2VDU1MgYXMgdSwgb3B0aW9uQ1NTIGFzIHYsIHBsYWNlaG9sZGVyQ1NTIGFzIHcsIGNzcyBhcyB4LCB2YWx1ZUNvbnRhaW5lckNTUyBhcyB5LCBpc1RvdWNoQ2FwYWJsZSBhcyB6IH07XG4iLCJ2YXIgc2FmZUlzTmFOID0gTnVtYmVyLmlzTmFOIHx8XG4gICAgZnVuY3Rpb24gcG9ueWZpbGwodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgdmFsdWUgIT09IHZhbHVlO1xuICAgIH07XG5mdW5jdGlvbiBpc0VxdWFsKGZpcnN0LCBzZWNvbmQpIHtcbiAgICBpZiAoZmlyc3QgPT09IHNlY29uZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHNhZmVJc05hTihmaXJzdCkgJiYgc2FmZUlzTmFOKHNlY29uZCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGFyZUlucHV0c0VxdWFsKG5ld0lucHV0cywgbGFzdElucHV0cykge1xuICAgIGlmIChuZXdJbnB1dHMubGVuZ3RoICE9PSBsYXN0SW5wdXRzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmV3SW5wdXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICghaXNFcXVhbChuZXdJbnB1dHNbaV0sIGxhc3RJbnB1dHNbaV0pKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIG1lbW9pemVPbmUocmVzdWx0Rm4sIGlzRXF1YWwpIHtcbiAgICBpZiAoaXNFcXVhbCA9PT0gdm9pZCAwKSB7IGlzRXF1YWwgPSBhcmVJbnB1dHNFcXVhbDsgfVxuICAgIHZhciBjYWNoZSA9IG51bGw7XG4gICAgZnVuY3Rpb24gbWVtb2l6ZWQoKSB7XG4gICAgICAgIHZhciBuZXdBcmdzID0gW107XG4gICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICBuZXdBcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhY2hlICYmIGNhY2hlLmxhc3RUaGlzID09PSB0aGlzICYmIGlzRXF1YWwobmV3QXJncywgY2FjaGUubGFzdEFyZ3MpKSB7XG4gICAgICAgICAgICByZXR1cm4gY2FjaGUubGFzdFJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbGFzdFJlc3VsdCA9IHJlc3VsdEZuLmFwcGx5KHRoaXMsIG5ld0FyZ3MpO1xuICAgICAgICBjYWNoZSA9IHtcbiAgICAgICAgICAgIGxhc3RSZXN1bHQ6IGxhc3RSZXN1bHQsXG4gICAgICAgICAgICBsYXN0QXJnczogbmV3QXJncyxcbiAgICAgICAgICAgIGxhc3RUaGlzOiB0aGlzLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gbGFzdFJlc3VsdDtcbiAgICB9XG4gICAgbWVtb2l6ZWQuY2xlYXIgPSBmdW5jdGlvbiBjbGVhcigpIHtcbiAgICAgICAgY2FjaGUgPSBudWxsO1xuICAgIH07XG4gICAgcmV0dXJuIG1lbW9pemVkO1xufVxuXG5leHBvcnQgeyBtZW1vaXplT25lIGFzIGRlZmF1bHQgfTtcbiIsImltcG9ydCBfZXh0ZW5kcyBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzJztcbmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDInO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVjayc7XG5pbXBvcnQgX2NyZWF0ZUNsYXNzIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUNsYXNzJztcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHMnO1xuaW1wb3J0IF9jcmVhdGVTdXBlciBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVTdXBlcic7XG5pbXBvcnQgX3RvQ29uc3VtYWJsZUFycmF5IGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZU1lbW8sIEZyYWdtZW50LCB1c2VSZWYsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHIgYXMgcmVtb3ZlUHJvcHMsIHMgYXMgc3VwcG9ydHNQYXNzaXZlRXZlbnRzLCBhIGFzIGNsZWFySW5kaWNhdG9yQ1NTLCBiIGFzIGNvbnRhaW5lckNTUywgZCBhcyBjc3MkMSwgZSBhcyBkcm9wZG93bkluZGljYXRvckNTUywgZyBhcyBncm91cENTUywgZiBhcyBncm91cEhlYWRpbmdDU1MsIGkgYXMgaW5kaWNhdG9yc0NvbnRhaW5lckNTUywgaCBhcyBpbmRpY2F0b3JTZXBhcmF0b3JDU1MsIGogYXMgaW5wdXRDU1MsIGwgYXMgbG9hZGluZ0luZGljYXRvckNTUywgayBhcyBsb2FkaW5nTWVzc2FnZUNTUywgbSBhcyBtZW51Q1NTLCBuIGFzIG1lbnVMaXN0Q1NTLCBvIGFzIG1lbnVQb3J0YWxDU1MsIHAgYXMgbXVsdGlWYWx1ZUNTUywgcSBhcyBtdWx0aVZhbHVlTGFiZWxDU1MsIHQgYXMgbXVsdGlWYWx1ZVJlbW92ZUNTUywgdSBhcyBub09wdGlvbnNNZXNzYWdlQ1NTLCB2IGFzIG9wdGlvbkNTUywgdyBhcyBwbGFjZWhvbGRlckNTUywgeCBhcyBjc3MkMiwgeSBhcyB2YWx1ZUNvbnRhaW5lckNTUywgeiBhcyBpc1RvdWNoQ2FwYWJsZSwgQSBhcyBpc01vYmlsZURldmljZSwgQiBhcyBtdWx0aVZhbHVlQXNWYWx1ZSwgQyBhcyBzaW5nbGVWYWx1ZUFzVmFsdWUsIEQgYXMgdmFsdWVUZXJuYXJ5LCBFIGFzIGNsYXNzTmFtZXMsIEYgYXMgZGVmYXVsdENvbXBvbmVudHMsIEcgYXMgaXNEb2N1bWVudEVsZW1lbnQsIEggYXMgY2xlYW5WYWx1ZSwgSSBhcyBzY3JvbGxJbnRvVmlldywgSiBhcyBub29wLCBNIGFzIE1lbnVQbGFjZXIsIEsgYXMgbm90TnVsbGlzaCB9IGZyb20gJy4vaW5kZXgtNjQxZWU1YjguZXNtLmpzJztcbmltcG9ydCB7IGpzeCwgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IG1lbW9pemVPbmUgZnJvbSAnbWVtb2l6ZS1vbmUnO1xuaW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllcyc7XG5cbmZ1bmN0aW9uIF9FTU9USU9OX1NUUklOR0lGSUVEX0NTU19FUlJPUl9fJDIoKSB7IHJldHVybiBcIllvdSBoYXZlIHRyaWVkIHRvIHN0cmluZ2lmeSBvYmplY3QgcmV0dXJuZWQgZnJvbSBgY3NzYCBmdW5jdGlvbi4gSXQgaXNuJ3Qgc3VwcG9zZWQgdG8gYmUgdXNlZCBkaXJlY3RseSAoZS5nLiBhcyB2YWx1ZSBvZiB0aGUgYGNsYXNzTmFtZWAgcHJvcCksIGJ1dCByYXRoZXIgaGFuZGVkIHRvIGVtb3Rpb24gc28gaXQgY2FuIGhhbmRsZSBpdCAoZS5nLiBhcyB2YWx1ZSBvZiBgY3NzYCBwcm9wKS5cIjsgfVxuXG4vLyBBc3Npc3RpdmUgdGV4dCB0byBkZXNjcmliZSB2aXN1YWwgZWxlbWVudHMuIEhpZGRlbiBmb3Igc2lnaHRlZCB1c2Vycy5cbnZhciBfcmVmID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8ge1xuICBuYW1lOiBcIjdwZzBjai1hMTF5VGV4dFwiLFxuICBzdHlsZXM6IFwibGFiZWw6YTExeVRleHQ7ei1pbmRleDo5OTk5O2JvcmRlcjowO2NsaXA6cmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO2hlaWdodDoxcHg7d2lkdGg6MXB4O3Bvc2l0aW9uOmFic29sdXRlO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7d2hpdGUtc3BhY2U6bm93cmFwXCJcbn0gOiB7XG4gIG5hbWU6IFwiMWY0M2F2ei1hMTF5VGV4dC1BMTF5VGV4dFwiLFxuICBzdHlsZXM6IFwibGFiZWw6YTExeVRleHQ7ei1pbmRleDo5OTk5O2JvcmRlcjowO2NsaXA6cmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO2hlaWdodDoxcHg7d2lkdGg6MXB4O3Bvc2l0aW9uOmFic29sdXRlO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7d2hpdGUtc3BhY2U6bm93cmFwO2xhYmVsOkExMXlUZXh0O1wiLFxuICBtYXA6IFwiLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWtFeE1YbFVaWGgwTG5SemVDSmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRlBTU0lzSW1acGJHVWlPaUpCTVRGNVZHVjRkQzUwYzNnaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZLaW9nUUdwemVDQnFjM2dnS2k5Y2JtbHRjRzl5ZENCN0lFcFRXQ0I5SUdaeWIyMGdKM0psWVdOMEp6dGNibWx0Y0c5eWRDQjdJR3B6ZUNCOUlHWnliMjBnSjBCbGJXOTBhVzl1TDNKbFlXTjBKenRjYmx4dUx5OGdRWE56YVhOMGFYWmxJSFJsZUhRZ2RHOGdaR1Z6WTNKcFltVWdkbWx6ZFdGc0lHVnNaVzFsYm5SekxpQklhV1JrWlc0Z1ptOXlJSE5wWjJoMFpXUWdkWE5sY25NdVhHNWpiMjV6ZENCQk1URjVWR1Y0ZENBOUlDaHdjbTl3Y3pvZ1NsTllMa2x1ZEhKcGJuTnBZMFZzWlcxbGJuUnpXeWR6Y0dGdUoxMHBJRDArSUNoY2JpQWdQSE53WVc1Y2JpQWdJQ0JqYzNNOWUzdGNiaUFnSUNBZ0lHeGhZbVZzT2lBbllURXhlVlJsZUhRbkxGeHVJQ0FnSUNBZ2VrbHVaR1Y0T2lBNU9UazVMRnh1SUNBZ0lDQWdZbTl5WkdWeU9pQXdMRnh1SUNBZ0lDQWdZMnhwY0RvZ0ozSmxZM1FvTVhCNExDQXhjSGdzSURGd2VDd2dNWEI0S1Njc1hHNGdJQ0FnSUNCb1pXbG5hSFE2SURFc1hHNGdJQ0FnSUNCM2FXUjBhRG9nTVN4Y2JpQWdJQ0FnSUhCdmMybDBhVzl1T2lBbllXSnpiMngxZEdVbkxGeHVJQ0FnSUNBZ2IzWmxjbVpzYjNjNklDZG9hV1JrWlc0bkxGeHVJQ0FnSUNBZ2NHRmtaR2x1WnpvZ01DeGNiaUFnSUNBZ0lIZG9hWFJsVTNCaFkyVTZJQ2R1YjNkeVlYQW5MRnh1SUNBZ0lIMTlYRzRnSUNBZ2V5NHVMbkJ5YjNCemZWeHVJQ0F2UGx4dUtUdGNibHh1Wlhod2IzSjBJR1JsWm1GMWJIUWdRVEV4ZVZSbGVIUTdYRzRpWFgwPSAqL1wiLFxuICB0b1N0cmluZzogX0VNT1RJT05fU1RSSU5HSUZJRURfQ1NTX0VSUk9SX18kMlxufTtcbnZhciBBMTF5VGV4dCA9IGZ1bmN0aW9uIEExMXlUZXh0KHByb3BzKSB7XG4gIHJldHVybiBqc3goXCJzcGFuXCIsIF9leHRlbmRzKHtcbiAgICBjc3M6IF9yZWZcbiAgfSwgcHJvcHMpKTtcbn07XG52YXIgQTExeVRleHQkMSA9IEExMXlUZXh0O1xuXG52YXIgZGVmYXVsdEFyaWFMaXZlTWVzc2FnZXMgPSB7XG4gIGd1aWRhbmNlOiBmdW5jdGlvbiBndWlkYW5jZShwcm9wcykge1xuICAgIHZhciBpc1NlYXJjaGFibGUgPSBwcm9wcy5pc1NlYXJjaGFibGUsXG4gICAgICBpc011bHRpID0gcHJvcHMuaXNNdWx0aSxcbiAgICAgIHRhYlNlbGVjdHNWYWx1ZSA9IHByb3BzLnRhYlNlbGVjdHNWYWx1ZSxcbiAgICAgIGNvbnRleHQgPSBwcm9wcy5jb250ZXh0LFxuICAgICAgaXNJbml0aWFsRm9jdXMgPSBwcm9wcy5pc0luaXRpYWxGb2N1cztcbiAgICBzd2l0Y2ggKGNvbnRleHQpIHtcbiAgICAgIGNhc2UgJ21lbnUnOlxuICAgICAgICByZXR1cm4gXCJVc2UgVXAgYW5kIERvd24gdG8gY2hvb3NlIG9wdGlvbnMsIHByZXNzIEVudGVyIHRvIHNlbGVjdCB0aGUgY3VycmVudGx5IGZvY3VzZWQgb3B0aW9uLCBwcmVzcyBFc2NhcGUgdG8gZXhpdCB0aGUgbWVudVwiLmNvbmNhdCh0YWJTZWxlY3RzVmFsdWUgPyAnLCBwcmVzcyBUYWIgdG8gc2VsZWN0IHRoZSBvcHRpb24gYW5kIGV4aXQgdGhlIG1lbnUnIDogJycsIFwiLlwiKTtcbiAgICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgICAgcmV0dXJuIGlzSW5pdGlhbEZvY3VzID8gXCJcIi5jb25jYXQocHJvcHNbJ2FyaWEtbGFiZWwnXSB8fCAnU2VsZWN0JywgXCIgaXMgZm9jdXNlZCBcIikuY29uY2F0KGlzU2VhcmNoYWJsZSA/ICcsdHlwZSB0byByZWZpbmUgbGlzdCcgOiAnJywgXCIsIHByZXNzIERvd24gdG8gb3BlbiB0aGUgbWVudSwgXCIpLmNvbmNhdChpc011bHRpID8gJyBwcmVzcyBsZWZ0IHRvIGZvY3VzIHNlbGVjdGVkIHZhbHVlcycgOiAnJykgOiAnJztcbiAgICAgIGNhc2UgJ3ZhbHVlJzpcbiAgICAgICAgcmV0dXJuICdVc2UgbGVmdCBhbmQgcmlnaHQgdG8gdG9nZ2xlIGJldHdlZW4gZm9jdXNlZCB2YWx1ZXMsIHByZXNzIEJhY2tzcGFjZSB0byByZW1vdmUgdGhlIGN1cnJlbnRseSBmb2N1c2VkIHZhbHVlJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH0sXG4gIG9uQ2hhbmdlOiBmdW5jdGlvbiBvbkNoYW5nZShwcm9wcykge1xuICAgIHZhciBhY3Rpb24gPSBwcm9wcy5hY3Rpb24sXG4gICAgICBfcHJvcHMkbGFiZWwgPSBwcm9wcy5sYWJlbCxcbiAgICAgIGxhYmVsID0gX3Byb3BzJGxhYmVsID09PSB2b2lkIDAgPyAnJyA6IF9wcm9wcyRsYWJlbCxcbiAgICAgIGxhYmVscyA9IHByb3BzLmxhYmVscyxcbiAgICAgIGlzRGlzYWJsZWQgPSBwcm9wcy5pc0Rpc2FibGVkO1xuICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICBjYXNlICdkZXNlbGVjdC1vcHRpb24nOlxuICAgICAgY2FzZSAncG9wLXZhbHVlJzpcbiAgICAgIGNhc2UgJ3JlbW92ZS12YWx1ZSc6XG4gICAgICAgIHJldHVybiBcIm9wdGlvbiBcIi5jb25jYXQobGFiZWwsIFwiLCBkZXNlbGVjdGVkLlwiKTtcbiAgICAgIGNhc2UgJ2NsZWFyJzpcbiAgICAgICAgcmV0dXJuICdBbGwgc2VsZWN0ZWQgb3B0aW9ucyBoYXZlIGJlZW4gY2xlYXJlZC4nO1xuICAgICAgY2FzZSAnaW5pdGlhbC1pbnB1dC1mb2N1cyc6XG4gICAgICAgIHJldHVybiBcIm9wdGlvblwiLmNvbmNhdChsYWJlbHMubGVuZ3RoID4gMSA/ICdzJyA6ICcnLCBcIiBcIikuY29uY2F0KGxhYmVscy5qb2luKCcsJyksIFwiLCBzZWxlY3RlZC5cIik7XG4gICAgICBjYXNlICdzZWxlY3Qtb3B0aW9uJzpcbiAgICAgICAgcmV0dXJuIGlzRGlzYWJsZWQgPyBcIm9wdGlvbiBcIi5jb25jYXQobGFiZWwsIFwiIGlzIGRpc2FibGVkLiBTZWxlY3QgYW5vdGhlciBvcHRpb24uXCIpIDogXCJvcHRpb24gXCIuY29uY2F0KGxhYmVsLCBcIiwgc2VsZWN0ZWQuXCIpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfSxcbiAgb25Gb2N1czogZnVuY3Rpb24gb25Gb2N1cyhwcm9wcykge1xuICAgIHZhciBjb250ZXh0ID0gcHJvcHMuY29udGV4dCxcbiAgICAgIGZvY3VzZWQgPSBwcm9wcy5mb2N1c2VkLFxuICAgICAgb3B0aW9ucyA9IHByb3BzLm9wdGlvbnMsXG4gICAgICBfcHJvcHMkbGFiZWwyID0gcHJvcHMubGFiZWwsXG4gICAgICBsYWJlbCA9IF9wcm9wcyRsYWJlbDIgPT09IHZvaWQgMCA/ICcnIDogX3Byb3BzJGxhYmVsMixcbiAgICAgIHNlbGVjdFZhbHVlID0gcHJvcHMuc2VsZWN0VmFsdWUsXG4gICAgICBpc0Rpc2FibGVkID0gcHJvcHMuaXNEaXNhYmxlZCxcbiAgICAgIGlzU2VsZWN0ZWQgPSBwcm9wcy5pc1NlbGVjdGVkLFxuICAgICAgaXNBcHBsZURldmljZSA9IHByb3BzLmlzQXBwbGVEZXZpY2U7XG4gICAgdmFyIGdldEFycmF5SW5kZXggPSBmdW5jdGlvbiBnZXRBcnJheUluZGV4KGFyciwgaXRlbSkge1xuICAgICAgcmV0dXJuIGFyciAmJiBhcnIubGVuZ3RoID8gXCJcIi5jb25jYXQoYXJyLmluZGV4T2YoaXRlbSkgKyAxLCBcIiBvZiBcIikuY29uY2F0KGFyci5sZW5ndGgpIDogJyc7XG4gICAgfTtcbiAgICBpZiAoY29udGV4dCA9PT0gJ3ZhbHVlJyAmJiBzZWxlY3RWYWx1ZSkge1xuICAgICAgcmV0dXJuIFwidmFsdWUgXCIuY29uY2F0KGxhYmVsLCBcIiBmb2N1c2VkLCBcIikuY29uY2F0KGdldEFycmF5SW5kZXgoc2VsZWN0VmFsdWUsIGZvY3VzZWQpLCBcIi5cIik7XG4gICAgfVxuICAgIGlmIChjb250ZXh0ID09PSAnbWVudScgJiYgaXNBcHBsZURldmljZSkge1xuICAgICAgdmFyIGRpc2FibGVkID0gaXNEaXNhYmxlZCA/ICcgZGlzYWJsZWQnIDogJyc7XG4gICAgICB2YXIgc3RhdHVzID0gXCJcIi5jb25jYXQoaXNTZWxlY3RlZCA/ICcgc2VsZWN0ZWQnIDogJycpLmNvbmNhdChkaXNhYmxlZCk7XG4gICAgICByZXR1cm4gXCJcIi5jb25jYXQobGFiZWwpLmNvbmNhdChzdGF0dXMsIFwiLCBcIikuY29uY2F0KGdldEFycmF5SW5kZXgob3B0aW9ucywgZm9jdXNlZCksIFwiLlwiKTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9LFxuICBvbkZpbHRlcjogZnVuY3Rpb24gb25GaWx0ZXIocHJvcHMpIHtcbiAgICB2YXIgaW5wdXRWYWx1ZSA9IHByb3BzLmlucHV0VmFsdWUsXG4gICAgICByZXN1bHRzTWVzc2FnZSA9IHByb3BzLnJlc3VsdHNNZXNzYWdlO1xuICAgIHJldHVybiBcIlwiLmNvbmNhdChyZXN1bHRzTWVzc2FnZSkuY29uY2F0KGlucHV0VmFsdWUgPyAnIGZvciBzZWFyY2ggdGVybSAnICsgaW5wdXRWYWx1ZSA6ICcnLCBcIi5cIik7XG4gIH1cbn07XG5cbnZhciBMaXZlUmVnaW9uID0gZnVuY3Rpb24gTGl2ZVJlZ2lvbihwcm9wcykge1xuICB2YXIgYXJpYVNlbGVjdGlvbiA9IHByb3BzLmFyaWFTZWxlY3Rpb24sXG4gICAgZm9jdXNlZE9wdGlvbiA9IHByb3BzLmZvY3VzZWRPcHRpb24sXG4gICAgZm9jdXNlZFZhbHVlID0gcHJvcHMuZm9jdXNlZFZhbHVlLFxuICAgIGZvY3VzYWJsZU9wdGlvbnMgPSBwcm9wcy5mb2N1c2FibGVPcHRpb25zLFxuICAgIGlzRm9jdXNlZCA9IHByb3BzLmlzRm9jdXNlZCxcbiAgICBzZWxlY3RWYWx1ZSA9IHByb3BzLnNlbGVjdFZhbHVlLFxuICAgIHNlbGVjdFByb3BzID0gcHJvcHMuc2VsZWN0UHJvcHMsXG4gICAgaWQgPSBwcm9wcy5pZCxcbiAgICBpc0FwcGxlRGV2aWNlID0gcHJvcHMuaXNBcHBsZURldmljZTtcbiAgdmFyIGFyaWFMaXZlTWVzc2FnZXMgPSBzZWxlY3RQcm9wcy5hcmlhTGl2ZU1lc3NhZ2VzLFxuICAgIGdldE9wdGlvbkxhYmVsID0gc2VsZWN0UHJvcHMuZ2V0T3B0aW9uTGFiZWwsXG4gICAgaW5wdXRWYWx1ZSA9IHNlbGVjdFByb3BzLmlucHV0VmFsdWUsXG4gICAgaXNNdWx0aSA9IHNlbGVjdFByb3BzLmlzTXVsdGksXG4gICAgaXNPcHRpb25EaXNhYmxlZCA9IHNlbGVjdFByb3BzLmlzT3B0aW9uRGlzYWJsZWQsXG4gICAgaXNTZWFyY2hhYmxlID0gc2VsZWN0UHJvcHMuaXNTZWFyY2hhYmxlLFxuICAgIG1lbnVJc09wZW4gPSBzZWxlY3RQcm9wcy5tZW51SXNPcGVuLFxuICAgIG9wdGlvbnMgPSBzZWxlY3RQcm9wcy5vcHRpb25zLFxuICAgIHNjcmVlblJlYWRlclN0YXR1cyA9IHNlbGVjdFByb3BzLnNjcmVlblJlYWRlclN0YXR1cyxcbiAgICB0YWJTZWxlY3RzVmFsdWUgPSBzZWxlY3RQcm9wcy50YWJTZWxlY3RzVmFsdWUsXG4gICAgaXNMb2FkaW5nID0gc2VsZWN0UHJvcHMuaXNMb2FkaW5nO1xuICB2YXIgYXJpYUxhYmVsID0gc2VsZWN0UHJvcHNbJ2FyaWEtbGFiZWwnXTtcbiAgdmFyIGFyaWFMaXZlID0gc2VsZWN0UHJvcHNbJ2FyaWEtbGl2ZSddO1xuXG4gIC8vIFVwZGF0ZSBhcmlhIGxpdmUgbWVzc2FnZSBjb25maWd1cmF0aW9uIHdoZW4gcHJvcCBjaGFuZ2VzXG4gIHZhciBtZXNzYWdlcyA9IHVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGRlZmF1bHRBcmlhTGl2ZU1lc3NhZ2VzKSwgYXJpYUxpdmVNZXNzYWdlcyB8fCB7fSk7XG4gIH0sIFthcmlhTGl2ZU1lc3NhZ2VzXSk7XG5cbiAgLy8gVXBkYXRlIGFyaWEgbGl2ZSBzZWxlY3RlZCBvcHRpb24gd2hlbiBwcm9wIGNoYW5nZXNcbiAgdmFyIGFyaWFTZWxlY3RlZCA9IHVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHZhciBtZXNzYWdlID0gJyc7XG4gICAgaWYgKGFyaWFTZWxlY3Rpb24gJiYgbWVzc2FnZXMub25DaGFuZ2UpIHtcbiAgICAgIHZhciBvcHRpb24gPSBhcmlhU2VsZWN0aW9uLm9wdGlvbixcbiAgICAgICAgc2VsZWN0ZWRPcHRpb25zID0gYXJpYVNlbGVjdGlvbi5vcHRpb25zLFxuICAgICAgICByZW1vdmVkVmFsdWUgPSBhcmlhU2VsZWN0aW9uLnJlbW92ZWRWYWx1ZSxcbiAgICAgICAgcmVtb3ZlZFZhbHVlcyA9IGFyaWFTZWxlY3Rpb24ucmVtb3ZlZFZhbHVlcyxcbiAgICAgICAgdmFsdWUgPSBhcmlhU2VsZWN0aW9uLnZhbHVlO1xuICAgICAgLy8gc2VsZWN0LW9wdGlvbiB3aGVuICFpc011bHRpIGRvZXMgbm90IHJldHVybiBvcHRpb24gc28gd2UgYXNzdW1lIHNlbGVjdGVkIG9wdGlvbiBpcyB2YWx1ZVxuICAgICAgdmFyIGFzT3B0aW9uID0gZnVuY3Rpb24gYXNPcHRpb24odmFsKSB7XG4gICAgICAgIHJldHVybiAhQXJyYXkuaXNBcnJheSh2YWwpID8gdmFsIDogbnVsbDtcbiAgICAgIH07XG5cbiAgICAgIC8vIElmIHRoZXJlIGlzIGp1c3Qgb25lIGl0ZW0gZnJvbSB0aGUgYWN0aW9uIHRoZW4gZ2V0IGl0cyBsYWJlbFxuICAgICAgdmFyIHNlbGVjdGVkID0gcmVtb3ZlZFZhbHVlIHx8IG9wdGlvbiB8fCBhc09wdGlvbih2YWx1ZSk7XG4gICAgICB2YXIgbGFiZWwgPSBzZWxlY3RlZCA/IGdldE9wdGlvbkxhYmVsKHNlbGVjdGVkKSA6ICcnO1xuXG4gICAgICAvLyBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgaXRlbXMgZnJvbSB0aGUgYWN0aW9uIHRoZW4gcmV0dXJuIGFuIGFycmF5IG9mIGxhYmVsc1xuICAgICAgdmFyIG11bHRpU2VsZWN0ZWQgPSBzZWxlY3RlZE9wdGlvbnMgfHwgcmVtb3ZlZFZhbHVlcyB8fCB1bmRlZmluZWQ7XG4gICAgICB2YXIgbGFiZWxzID0gbXVsdGlTZWxlY3RlZCA/IG11bHRpU2VsZWN0ZWQubWFwKGdldE9wdGlvbkxhYmVsKSA6IFtdO1xuICAgICAgdmFyIG9uQ2hhbmdlUHJvcHMgPSBfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgLy8gbXVsdGlTZWxlY3RlZCBpdGVtcyBhcmUgdXN1YWxseSBpdGVtcyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHNlbGVjdGVkXG4gICAgICAgIC8vIG9yIHNldCBieSB0aGUgdXNlciBhcyBhIGRlZmF1bHQgdmFsdWUgc28gd2UgYXNzdW1lIHRoZXkgYXJlIG5vdCBkaXNhYmxlZFxuICAgICAgICBpc0Rpc2FibGVkOiBzZWxlY3RlZCAmJiBpc09wdGlvbkRpc2FibGVkKHNlbGVjdGVkLCBzZWxlY3RWYWx1ZSksXG4gICAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgICAgbGFiZWxzOiBsYWJlbHNcbiAgICAgIH0sIGFyaWFTZWxlY3Rpb24pO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2VzLm9uQ2hhbmdlKG9uQ2hhbmdlUHJvcHMpO1xuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSwgW2FyaWFTZWxlY3Rpb24sIG1lc3NhZ2VzLCBpc09wdGlvbkRpc2FibGVkLCBzZWxlY3RWYWx1ZSwgZ2V0T3B0aW9uTGFiZWxdKTtcbiAgdmFyIGFyaWFGb2N1c2VkID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGZvY3VzTXNnID0gJyc7XG4gICAgdmFyIGZvY3VzZWQgPSBmb2N1c2VkT3B0aW9uIHx8IGZvY3VzZWRWYWx1ZTtcbiAgICB2YXIgaXNTZWxlY3RlZCA9ICEhKGZvY3VzZWRPcHRpb24gJiYgc2VsZWN0VmFsdWUgJiYgc2VsZWN0VmFsdWUuaW5jbHVkZXMoZm9jdXNlZE9wdGlvbikpO1xuICAgIGlmIChmb2N1c2VkICYmIG1lc3NhZ2VzLm9uRm9jdXMpIHtcbiAgICAgIHZhciBvbkZvY3VzUHJvcHMgPSB7XG4gICAgICAgIGZvY3VzZWQ6IGZvY3VzZWQsXG4gICAgICAgIGxhYmVsOiBnZXRPcHRpb25MYWJlbChmb2N1c2VkKSxcbiAgICAgICAgaXNEaXNhYmxlZDogaXNPcHRpb25EaXNhYmxlZChmb2N1c2VkLCBzZWxlY3RWYWx1ZSksXG4gICAgICAgIGlzU2VsZWN0ZWQ6IGlzU2VsZWN0ZWQsXG4gICAgICAgIG9wdGlvbnM6IGZvY3VzYWJsZU9wdGlvbnMsXG4gICAgICAgIGNvbnRleHQ6IGZvY3VzZWQgPT09IGZvY3VzZWRPcHRpb24gPyAnbWVudScgOiAndmFsdWUnLFxuICAgICAgICBzZWxlY3RWYWx1ZTogc2VsZWN0VmFsdWUsXG4gICAgICAgIGlzQXBwbGVEZXZpY2U6IGlzQXBwbGVEZXZpY2VcbiAgICAgIH07XG4gICAgICBmb2N1c01zZyA9IG1lc3NhZ2VzLm9uRm9jdXMob25Gb2N1c1Byb3BzKTtcbiAgICB9XG4gICAgcmV0dXJuIGZvY3VzTXNnO1xuICB9LCBbZm9jdXNlZE9wdGlvbiwgZm9jdXNlZFZhbHVlLCBnZXRPcHRpb25MYWJlbCwgaXNPcHRpb25EaXNhYmxlZCwgbWVzc2FnZXMsIGZvY3VzYWJsZU9wdGlvbnMsIHNlbGVjdFZhbHVlLCBpc0FwcGxlRGV2aWNlXSk7XG4gIHZhciBhcmlhUmVzdWx0cyA9IHVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHZhciByZXN1bHRzTXNnID0gJyc7XG4gICAgaWYgKG1lbnVJc09wZW4gJiYgb3B0aW9ucy5sZW5ndGggJiYgIWlzTG9hZGluZyAmJiBtZXNzYWdlcy5vbkZpbHRlcikge1xuICAgICAgdmFyIHJlc3VsdHNNZXNzYWdlID0gc2NyZWVuUmVhZGVyU3RhdHVzKHtcbiAgICAgICAgY291bnQ6IGZvY3VzYWJsZU9wdGlvbnMubGVuZ3RoXG4gICAgICB9KTtcbiAgICAgIHJlc3VsdHNNc2cgPSBtZXNzYWdlcy5vbkZpbHRlcih7XG4gICAgICAgIGlucHV0VmFsdWU6IGlucHV0VmFsdWUsXG4gICAgICAgIHJlc3VsdHNNZXNzYWdlOiByZXN1bHRzTWVzc2FnZVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRzTXNnO1xuICB9LCBbZm9jdXNhYmxlT3B0aW9ucywgaW5wdXRWYWx1ZSwgbWVudUlzT3BlbiwgbWVzc2FnZXMsIG9wdGlvbnMsIHNjcmVlblJlYWRlclN0YXR1cywgaXNMb2FkaW5nXSk7XG4gIHZhciBpc0luaXRpYWxGb2N1cyA9IChhcmlhU2VsZWN0aW9uID09PSBudWxsIHx8IGFyaWFTZWxlY3Rpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFyaWFTZWxlY3Rpb24uYWN0aW9uKSA9PT0gJ2luaXRpYWwtaW5wdXQtZm9jdXMnO1xuICB2YXIgYXJpYUd1aWRhbmNlID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGd1aWRhbmNlTXNnID0gJyc7XG4gICAgaWYgKG1lc3NhZ2VzLmd1aWRhbmNlKSB7XG4gICAgICB2YXIgY29udGV4dCA9IGZvY3VzZWRWYWx1ZSA/ICd2YWx1ZScgOiBtZW51SXNPcGVuID8gJ21lbnUnIDogJ2lucHV0JztcbiAgICAgIGd1aWRhbmNlTXNnID0gbWVzc2FnZXMuZ3VpZGFuY2Uoe1xuICAgICAgICAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCxcbiAgICAgICAgY29udGV4dDogY29udGV4dCxcbiAgICAgICAgaXNEaXNhYmxlZDogZm9jdXNlZE9wdGlvbiAmJiBpc09wdGlvbkRpc2FibGVkKGZvY3VzZWRPcHRpb24sIHNlbGVjdFZhbHVlKSxcbiAgICAgICAgaXNNdWx0aTogaXNNdWx0aSxcbiAgICAgICAgaXNTZWFyY2hhYmxlOiBpc1NlYXJjaGFibGUsXG4gICAgICAgIHRhYlNlbGVjdHNWYWx1ZTogdGFiU2VsZWN0c1ZhbHVlLFxuICAgICAgICBpc0luaXRpYWxGb2N1czogaXNJbml0aWFsRm9jdXNcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZ3VpZGFuY2VNc2c7XG4gIH0sIFthcmlhTGFiZWwsIGZvY3VzZWRPcHRpb24sIGZvY3VzZWRWYWx1ZSwgaXNNdWx0aSwgaXNPcHRpb25EaXNhYmxlZCwgaXNTZWFyY2hhYmxlLCBtZW51SXNPcGVuLCBtZXNzYWdlcywgc2VsZWN0VmFsdWUsIHRhYlNlbGVjdHNWYWx1ZSwgaXNJbml0aWFsRm9jdXNdKTtcbiAgdmFyIFNjcmVlblJlYWRlclRleHQgPSBqc3goRnJhZ21lbnQsIG51bGwsIGpzeChcInNwYW5cIiwge1xuICAgIGlkOiBcImFyaWEtc2VsZWN0aW9uXCJcbiAgfSwgYXJpYVNlbGVjdGVkKSwganN4KFwic3BhblwiLCB7XG4gICAgaWQ6IFwiYXJpYS1mb2N1c2VkXCJcbiAgfSwgYXJpYUZvY3VzZWQpLCBqc3goXCJzcGFuXCIsIHtcbiAgICBpZDogXCJhcmlhLXJlc3VsdHNcIlxuICB9LCBhcmlhUmVzdWx0cyksIGpzeChcInNwYW5cIiwge1xuICAgIGlkOiBcImFyaWEtZ3VpZGFuY2VcIlxuICB9LCBhcmlhR3VpZGFuY2UpKTtcbiAgcmV0dXJuIGpzeChGcmFnbWVudCwgbnVsbCwganN4KEExMXlUZXh0JDEsIHtcbiAgICBpZDogaWRcbiAgfSwgaXNJbml0aWFsRm9jdXMgJiYgU2NyZWVuUmVhZGVyVGV4dCksIGpzeChBMTF5VGV4dCQxLCB7XG4gICAgXCJhcmlhLWxpdmVcIjogYXJpYUxpdmUsXG4gICAgXCJhcmlhLWF0b21pY1wiOiBcImZhbHNlXCIsXG4gICAgXCJhcmlhLXJlbGV2YW50XCI6IFwiYWRkaXRpb25zIHRleHRcIixcbiAgICByb2xlOiBcImxvZ1wiXG4gIH0sIGlzRm9jdXNlZCAmJiAhaXNJbml0aWFsRm9jdXMgJiYgU2NyZWVuUmVhZGVyVGV4dCkpO1xufTtcbnZhciBMaXZlUmVnaW9uJDEgPSBMaXZlUmVnaW9uO1xuXG52YXIgZGlhY3JpdGljcyA9IFt7XG4gIGJhc2U6ICdBJyxcbiAgbGV0dGVyczogXCJBXFx1MjRCNlxcdUZGMjFcXHhDMFxceEMxXFx4QzJcXHUxRUE2XFx1MUVBNFxcdTFFQUFcXHUxRUE4XFx4QzNcXHUwMTAwXFx1MDEwMlxcdTFFQjBcXHUxRUFFXFx1MUVCNFxcdTFFQjJcXHUwMjI2XFx1MDFFMFxceEM0XFx1MDFERVxcdTFFQTJcXHhDNVxcdTAxRkFcXHUwMUNEXFx1MDIwMFxcdTAyMDJcXHUxRUEwXFx1MUVBQ1xcdTFFQjZcXHUxRTAwXFx1MDEwNFxcdTAyM0FcXHUyQzZGXCJcbn0sIHtcbiAgYmFzZTogJ0FBJyxcbiAgbGV0dGVyczogXCJcXHVBNzMyXCJcbn0sIHtcbiAgYmFzZTogJ0FFJyxcbiAgbGV0dGVyczogXCJcXHhDNlxcdTAxRkNcXHUwMUUyXCJcbn0sIHtcbiAgYmFzZTogJ0FPJyxcbiAgbGV0dGVyczogXCJcXHVBNzM0XCJcbn0sIHtcbiAgYmFzZTogJ0FVJyxcbiAgbGV0dGVyczogXCJcXHVBNzM2XCJcbn0sIHtcbiAgYmFzZTogJ0FWJyxcbiAgbGV0dGVyczogXCJcXHVBNzM4XFx1QTczQVwiXG59LCB7XG4gIGJhc2U6ICdBWScsXG4gIGxldHRlcnM6IFwiXFx1QTczQ1wiXG59LCB7XG4gIGJhc2U6ICdCJyxcbiAgbGV0dGVyczogXCJCXFx1MjRCN1xcdUZGMjJcXHUxRTAyXFx1MUUwNFxcdTFFMDZcXHUwMjQzXFx1MDE4MlxcdTAxODFcIlxufSwge1xuICBiYXNlOiAnQycsXG4gIGxldHRlcnM6IFwiQ1xcdTI0QjhcXHVGRjIzXFx1MDEwNlxcdTAxMDhcXHUwMTBBXFx1MDEwQ1xceEM3XFx1MUUwOFxcdTAxODdcXHUwMjNCXFx1QTczRVwiXG59LCB7XG4gIGJhc2U6ICdEJyxcbiAgbGV0dGVyczogXCJEXFx1MjRCOVxcdUZGMjRcXHUxRTBBXFx1MDEwRVxcdTFFMENcXHUxRTEwXFx1MUUxMlxcdTFFMEVcXHUwMTEwXFx1MDE4QlxcdTAxOEFcXHUwMTg5XFx1QTc3OVwiXG59LCB7XG4gIGJhc2U6ICdEWicsXG4gIGxldHRlcnM6IFwiXFx1MDFGMVxcdTAxQzRcIlxufSwge1xuICBiYXNlOiAnRHonLFxuICBsZXR0ZXJzOiBcIlxcdTAxRjJcXHUwMUM1XCJcbn0sIHtcbiAgYmFzZTogJ0UnLFxuICBsZXR0ZXJzOiBcIkVcXHUyNEJBXFx1RkYyNVxceEM4XFx4QzlcXHhDQVxcdTFFQzBcXHUxRUJFXFx1MUVDNFxcdTFFQzJcXHUxRUJDXFx1MDExMlxcdTFFMTRcXHUxRTE2XFx1MDExNFxcdTAxMTZcXHhDQlxcdTFFQkFcXHUwMTFBXFx1MDIwNFxcdTAyMDZcXHUxRUI4XFx1MUVDNlxcdTAyMjhcXHUxRTFDXFx1MDExOFxcdTFFMThcXHUxRTFBXFx1MDE5MFxcdTAxOEVcIlxufSwge1xuICBiYXNlOiAnRicsXG4gIGxldHRlcnM6IFwiRlxcdTI0QkJcXHVGRjI2XFx1MUUxRVxcdTAxOTFcXHVBNzdCXCJcbn0sIHtcbiAgYmFzZTogJ0cnLFxuICBsZXR0ZXJzOiBcIkdcXHUyNEJDXFx1RkYyN1xcdTAxRjRcXHUwMTFDXFx1MUUyMFxcdTAxMUVcXHUwMTIwXFx1MDFFNlxcdTAxMjJcXHUwMUU0XFx1MDE5M1xcdUE3QTBcXHVBNzdEXFx1QTc3RVwiXG59LCB7XG4gIGJhc2U6ICdIJyxcbiAgbGV0dGVyczogXCJIXFx1MjRCRFxcdUZGMjhcXHUwMTI0XFx1MUUyMlxcdTFFMjZcXHUwMjFFXFx1MUUyNFxcdTFFMjhcXHUxRTJBXFx1MDEyNlxcdTJDNjdcXHUyQzc1XFx1QTc4RFwiXG59LCB7XG4gIGJhc2U6ICdJJyxcbiAgbGV0dGVyczogXCJJXFx1MjRCRVxcdUZGMjlcXHhDQ1xceENEXFx4Q0VcXHUwMTI4XFx1MDEyQVxcdTAxMkNcXHUwMTMwXFx4Q0ZcXHUxRTJFXFx1MUVDOFxcdTAxQ0ZcXHUwMjA4XFx1MDIwQVxcdTFFQ0FcXHUwMTJFXFx1MUUyQ1xcdTAxOTdcIlxufSwge1xuICBiYXNlOiAnSicsXG4gIGxldHRlcnM6IFwiSlxcdTI0QkZcXHVGRjJBXFx1MDEzNFxcdTAyNDhcIlxufSwge1xuICBiYXNlOiAnSycsXG4gIGxldHRlcnM6IFwiS1xcdTI0QzBcXHVGRjJCXFx1MUUzMFxcdTAxRThcXHUxRTMyXFx1MDEzNlxcdTFFMzRcXHUwMTk4XFx1MkM2OVxcdUE3NDBcXHVBNzQyXFx1QTc0NFxcdUE3QTJcIlxufSwge1xuICBiYXNlOiAnTCcsXG4gIGxldHRlcnM6IFwiTFxcdTI0QzFcXHVGRjJDXFx1MDEzRlxcdTAxMzlcXHUwMTNEXFx1MUUzNlxcdTFFMzhcXHUwMTNCXFx1MUUzQ1xcdTFFM0FcXHUwMTQxXFx1MDIzRFxcdTJDNjJcXHUyQzYwXFx1QTc0OFxcdUE3NDZcXHVBNzgwXCJcbn0sIHtcbiAgYmFzZTogJ0xKJyxcbiAgbGV0dGVyczogXCJcXHUwMUM3XCJcbn0sIHtcbiAgYmFzZTogJ0xqJyxcbiAgbGV0dGVyczogXCJcXHUwMUM4XCJcbn0sIHtcbiAgYmFzZTogJ00nLFxuICBsZXR0ZXJzOiBcIk1cXHUyNEMyXFx1RkYyRFxcdTFFM0VcXHUxRTQwXFx1MUU0MlxcdTJDNkVcXHUwMTlDXCJcbn0sIHtcbiAgYmFzZTogJ04nLFxuICBsZXR0ZXJzOiBcIk5cXHUyNEMzXFx1RkYyRVxcdTAxRjhcXHUwMTQzXFx4RDFcXHUxRTQ0XFx1MDE0N1xcdTFFNDZcXHUwMTQ1XFx1MUU0QVxcdTFFNDhcXHUwMjIwXFx1MDE5RFxcdUE3OTBcXHVBN0E0XCJcbn0sIHtcbiAgYmFzZTogJ05KJyxcbiAgbGV0dGVyczogXCJcXHUwMUNBXCJcbn0sIHtcbiAgYmFzZTogJ05qJyxcbiAgbGV0dGVyczogXCJcXHUwMUNCXCJcbn0sIHtcbiAgYmFzZTogJ08nLFxuICBsZXR0ZXJzOiBcIk9cXHUyNEM0XFx1RkYyRlxceEQyXFx4RDNcXHhENFxcdTFFRDJcXHUxRUQwXFx1MUVENlxcdTFFRDRcXHhENVxcdTFFNENcXHUwMjJDXFx1MUU0RVxcdTAxNENcXHUxRTUwXFx1MUU1MlxcdTAxNEVcXHUwMjJFXFx1MDIzMFxceEQ2XFx1MDIyQVxcdTFFQ0VcXHUwMTUwXFx1MDFEMVxcdTAyMENcXHUwMjBFXFx1MDFBMFxcdTFFRENcXHUxRURBXFx1MUVFMFxcdTFFREVcXHUxRUUyXFx1MUVDQ1xcdTFFRDhcXHUwMUVBXFx1MDFFQ1xceEQ4XFx1MDFGRVxcdTAxODZcXHUwMTlGXFx1QTc0QVxcdUE3NENcIlxufSwge1xuICBiYXNlOiAnT0knLFxuICBsZXR0ZXJzOiBcIlxcdTAxQTJcIlxufSwge1xuICBiYXNlOiAnT08nLFxuICBsZXR0ZXJzOiBcIlxcdUE3NEVcIlxufSwge1xuICBiYXNlOiAnT1UnLFxuICBsZXR0ZXJzOiBcIlxcdTAyMjJcIlxufSwge1xuICBiYXNlOiAnUCcsXG4gIGxldHRlcnM6IFwiUFxcdTI0QzVcXHVGRjMwXFx1MUU1NFxcdTFFNTZcXHUwMUE0XFx1MkM2M1xcdUE3NTBcXHVBNzUyXFx1QTc1NFwiXG59LCB7XG4gIGJhc2U6ICdRJyxcbiAgbGV0dGVyczogXCJRXFx1MjRDNlxcdUZGMzFcXHVBNzU2XFx1QTc1OFxcdTAyNEFcIlxufSwge1xuICBiYXNlOiAnUicsXG4gIGxldHRlcnM6IFwiUlxcdTI0QzdcXHVGRjMyXFx1MDE1NFxcdTFFNThcXHUwMTU4XFx1MDIxMFxcdTAyMTJcXHUxRTVBXFx1MUU1Q1xcdTAxNTZcXHUxRTVFXFx1MDI0Q1xcdTJDNjRcXHVBNzVBXFx1QTdBNlxcdUE3ODJcIlxufSwge1xuICBiYXNlOiAnUycsXG4gIGxldHRlcnM6IFwiU1xcdTI0QzhcXHVGRjMzXFx1MUU5RVxcdTAxNUFcXHUxRTY0XFx1MDE1Q1xcdTFFNjBcXHUwMTYwXFx1MUU2NlxcdTFFNjJcXHUxRTY4XFx1MDIxOFxcdTAxNUVcXHUyQzdFXFx1QTdBOFxcdUE3ODRcIlxufSwge1xuICBiYXNlOiAnVCcsXG4gIGxldHRlcnM6IFwiVFxcdTI0QzlcXHVGRjM0XFx1MUU2QVxcdTAxNjRcXHUxRTZDXFx1MDIxQVxcdTAxNjJcXHUxRTcwXFx1MUU2RVxcdTAxNjZcXHUwMUFDXFx1MDFBRVxcdTAyM0VcXHVBNzg2XCJcbn0sIHtcbiAgYmFzZTogJ1RaJyxcbiAgbGV0dGVyczogXCJcXHVBNzI4XCJcbn0sIHtcbiAgYmFzZTogJ1UnLFxuICBsZXR0ZXJzOiBcIlVcXHUyNENBXFx1RkYzNVxceEQ5XFx4REFcXHhEQlxcdTAxNjhcXHUxRTc4XFx1MDE2QVxcdTFFN0FcXHUwMTZDXFx4RENcXHUwMURCXFx1MDFEN1xcdTAxRDVcXHUwMUQ5XFx1MUVFNlxcdTAxNkVcXHUwMTcwXFx1MDFEM1xcdTAyMTRcXHUwMjE2XFx1MDFBRlxcdTFFRUFcXHUxRUU4XFx1MUVFRVxcdTFFRUNcXHUxRUYwXFx1MUVFNFxcdTFFNzJcXHUwMTcyXFx1MUU3NlxcdTFFNzRcXHUwMjQ0XCJcbn0sIHtcbiAgYmFzZTogJ1YnLFxuICBsZXR0ZXJzOiBcIlZcXHUyNENCXFx1RkYzNlxcdTFFN0NcXHUxRTdFXFx1MDFCMlxcdUE3NUVcXHUwMjQ1XCJcbn0sIHtcbiAgYmFzZTogJ1ZZJyxcbiAgbGV0dGVyczogXCJcXHVBNzYwXCJcbn0sIHtcbiAgYmFzZTogJ1cnLFxuICBsZXR0ZXJzOiBcIldcXHUyNENDXFx1RkYzN1xcdTFFODBcXHUxRTgyXFx1MDE3NFxcdTFFODZcXHUxRTg0XFx1MUU4OFxcdTJDNzJcIlxufSwge1xuICBiYXNlOiAnWCcsXG4gIGxldHRlcnM6IFwiWFxcdTI0Q0RcXHVGRjM4XFx1MUU4QVxcdTFFOENcIlxufSwge1xuICBiYXNlOiAnWScsXG4gIGxldHRlcnM6IFwiWVxcdTI0Q0VcXHVGRjM5XFx1MUVGMlxceEREXFx1MDE3NlxcdTFFRjhcXHUwMjMyXFx1MUU4RVxcdTAxNzhcXHUxRUY2XFx1MUVGNFxcdTAxQjNcXHUwMjRFXFx1MUVGRVwiXG59LCB7XG4gIGJhc2U6ICdaJyxcbiAgbGV0dGVyczogXCJaXFx1MjRDRlxcdUZGM0FcXHUwMTc5XFx1MUU5MFxcdTAxN0JcXHUwMTdEXFx1MUU5MlxcdTFFOTRcXHUwMUI1XFx1MDIyNFxcdTJDN0ZcXHUyQzZCXFx1QTc2MlwiXG59LCB7XG4gIGJhc2U6ICdhJyxcbiAgbGV0dGVyczogXCJhXFx1MjREMFxcdUZGNDFcXHUxRTlBXFx4RTBcXHhFMVxceEUyXFx1MUVBN1xcdTFFQTVcXHUxRUFCXFx1MUVBOVxceEUzXFx1MDEwMVxcdTAxMDNcXHUxRUIxXFx1MUVBRlxcdTFFQjVcXHUxRUIzXFx1MDIyN1xcdTAxRTFcXHhFNFxcdTAxREZcXHUxRUEzXFx4RTVcXHUwMUZCXFx1MDFDRVxcdTAyMDFcXHUwMjAzXFx1MUVBMVxcdTFFQURcXHUxRUI3XFx1MUUwMVxcdTAxMDVcXHUyQzY1XFx1MDI1MFwiXG59LCB7XG4gIGJhc2U6ICdhYScsXG4gIGxldHRlcnM6IFwiXFx1QTczM1wiXG59LCB7XG4gIGJhc2U6ICdhZScsXG4gIGxldHRlcnM6IFwiXFx4RTZcXHUwMUZEXFx1MDFFM1wiXG59LCB7XG4gIGJhc2U6ICdhbycsXG4gIGxldHRlcnM6IFwiXFx1QTczNVwiXG59LCB7XG4gIGJhc2U6ICdhdScsXG4gIGxldHRlcnM6IFwiXFx1QTczN1wiXG59LCB7XG4gIGJhc2U6ICdhdicsXG4gIGxldHRlcnM6IFwiXFx1QTczOVxcdUE3M0JcIlxufSwge1xuICBiYXNlOiAnYXknLFxuICBsZXR0ZXJzOiBcIlxcdUE3M0RcIlxufSwge1xuICBiYXNlOiAnYicsXG4gIGxldHRlcnM6IFwiYlxcdTI0RDFcXHVGRjQyXFx1MUUwM1xcdTFFMDVcXHUxRTA3XFx1MDE4MFxcdTAxODNcXHUwMjUzXCJcbn0sIHtcbiAgYmFzZTogJ2MnLFxuICBsZXR0ZXJzOiBcImNcXHUyNEQyXFx1RkY0M1xcdTAxMDdcXHUwMTA5XFx1MDEwQlxcdTAxMERcXHhFN1xcdTFFMDlcXHUwMTg4XFx1MDIzQ1xcdUE3M0ZcXHUyMTg0XCJcbn0sIHtcbiAgYmFzZTogJ2QnLFxuICBsZXR0ZXJzOiBcImRcXHUyNEQzXFx1RkY0NFxcdTFFMEJcXHUwMTBGXFx1MUUwRFxcdTFFMTFcXHUxRTEzXFx1MUUwRlxcdTAxMTFcXHUwMThDXFx1MDI1NlxcdTAyNTdcXHVBNzdBXCJcbn0sIHtcbiAgYmFzZTogJ2R6JyxcbiAgbGV0dGVyczogXCJcXHUwMUYzXFx1MDFDNlwiXG59LCB7XG4gIGJhc2U6ICdlJyxcbiAgbGV0dGVyczogXCJlXFx1MjRENFxcdUZGNDVcXHhFOFxceEU5XFx4RUFcXHUxRUMxXFx1MUVCRlxcdTFFQzVcXHUxRUMzXFx1MUVCRFxcdTAxMTNcXHUxRTE1XFx1MUUxN1xcdTAxMTVcXHUwMTE3XFx4RUJcXHUxRUJCXFx1MDExQlxcdTAyMDVcXHUwMjA3XFx1MUVCOVxcdTFFQzdcXHUwMjI5XFx1MUUxRFxcdTAxMTlcXHUxRTE5XFx1MUUxQlxcdTAyNDdcXHUwMjVCXFx1MDFERFwiXG59LCB7XG4gIGJhc2U6ICdmJyxcbiAgbGV0dGVyczogXCJmXFx1MjRENVxcdUZGNDZcXHUxRTFGXFx1MDE5MlxcdUE3N0NcIlxufSwge1xuICBiYXNlOiAnZycsXG4gIGxldHRlcnM6IFwiZ1xcdTI0RDZcXHVGRjQ3XFx1MDFGNVxcdTAxMURcXHUxRTIxXFx1MDExRlxcdTAxMjFcXHUwMUU3XFx1MDEyM1xcdTAxRTVcXHUwMjYwXFx1QTdBMVxcdTFENzlcXHVBNzdGXCJcbn0sIHtcbiAgYmFzZTogJ2gnLFxuICBsZXR0ZXJzOiBcImhcXHUyNEQ3XFx1RkY0OFxcdTAxMjVcXHUxRTIzXFx1MUUyN1xcdTAyMUZcXHUxRTI1XFx1MUUyOVxcdTFFMkJcXHUxRTk2XFx1MDEyN1xcdTJDNjhcXHUyQzc2XFx1MDI2NVwiXG59LCB7XG4gIGJhc2U6ICdodicsXG4gIGxldHRlcnM6IFwiXFx1MDE5NVwiXG59LCB7XG4gIGJhc2U6ICdpJyxcbiAgbGV0dGVyczogXCJpXFx1MjREOFxcdUZGNDlcXHhFQ1xceEVEXFx4RUVcXHUwMTI5XFx1MDEyQlxcdTAxMkRcXHhFRlxcdTFFMkZcXHUxRUM5XFx1MDFEMFxcdTAyMDlcXHUwMjBCXFx1MUVDQlxcdTAxMkZcXHUxRTJEXFx1MDI2OFxcdTAxMzFcIlxufSwge1xuICBiYXNlOiAnaicsXG4gIGxldHRlcnM6IFwialxcdTI0RDlcXHVGRjRBXFx1MDEzNVxcdTAxRjBcXHUwMjQ5XCJcbn0sIHtcbiAgYmFzZTogJ2snLFxuICBsZXR0ZXJzOiBcImtcXHUyNERBXFx1RkY0QlxcdTFFMzFcXHUwMUU5XFx1MUUzM1xcdTAxMzdcXHUxRTM1XFx1MDE5OVxcdTJDNkFcXHVBNzQxXFx1QTc0M1xcdUE3NDVcXHVBN0EzXCJcbn0sIHtcbiAgYmFzZTogJ2wnLFxuICBsZXR0ZXJzOiBcImxcXHUyNERCXFx1RkY0Q1xcdTAxNDBcXHUwMTNBXFx1MDEzRVxcdTFFMzdcXHUxRTM5XFx1MDEzQ1xcdTFFM0RcXHUxRTNCXFx1MDE3RlxcdTAxNDJcXHUwMTlBXFx1MDI2QlxcdTJDNjFcXHVBNzQ5XFx1QTc4MVxcdUE3NDdcIlxufSwge1xuICBiYXNlOiAnbGonLFxuICBsZXR0ZXJzOiBcIlxcdTAxQzlcIlxufSwge1xuICBiYXNlOiAnbScsXG4gIGxldHRlcnM6IFwibVxcdTI0RENcXHVGRjREXFx1MUUzRlxcdTFFNDFcXHUxRTQzXFx1MDI3MVxcdTAyNkZcIlxufSwge1xuICBiYXNlOiAnbicsXG4gIGxldHRlcnM6IFwiblxcdTI0RERcXHVGRjRFXFx1MDFGOVxcdTAxNDRcXHhGMVxcdTFFNDVcXHUwMTQ4XFx1MUU0N1xcdTAxNDZcXHUxRTRCXFx1MUU0OVxcdTAxOUVcXHUwMjcyXFx1MDE0OVxcdUE3OTFcXHVBN0E1XCJcbn0sIHtcbiAgYmFzZTogJ25qJyxcbiAgbGV0dGVyczogXCJcXHUwMUNDXCJcbn0sIHtcbiAgYmFzZTogJ28nLFxuICBsZXR0ZXJzOiBcIm9cXHUyNERFXFx1RkY0RlxceEYyXFx4RjNcXHhGNFxcdTFFRDNcXHUxRUQxXFx1MUVEN1xcdTFFRDVcXHhGNVxcdTFFNERcXHUwMjJEXFx1MUU0RlxcdTAxNERcXHUxRTUxXFx1MUU1M1xcdTAxNEZcXHUwMjJGXFx1MDIzMVxceEY2XFx1MDIyQlxcdTFFQ0ZcXHUwMTUxXFx1MDFEMlxcdTAyMERcXHUwMjBGXFx1MDFBMVxcdTFFRERcXHUxRURCXFx1MUVFMVxcdTFFREZcXHUxRUUzXFx1MUVDRFxcdTFFRDlcXHUwMUVCXFx1MDFFRFxceEY4XFx1MDFGRlxcdTAyNTRcXHVBNzRCXFx1QTc0RFxcdTAyNzVcIlxufSwge1xuICBiYXNlOiAnb2knLFxuICBsZXR0ZXJzOiBcIlxcdTAxQTNcIlxufSwge1xuICBiYXNlOiAnb3UnLFxuICBsZXR0ZXJzOiBcIlxcdTAyMjNcIlxufSwge1xuICBiYXNlOiAnb28nLFxuICBsZXR0ZXJzOiBcIlxcdUE3NEZcIlxufSwge1xuICBiYXNlOiAncCcsXG4gIGxldHRlcnM6IFwicFxcdTI0REZcXHVGRjUwXFx1MUU1NVxcdTFFNTdcXHUwMUE1XFx1MUQ3RFxcdUE3NTFcXHVBNzUzXFx1QTc1NVwiXG59LCB7XG4gIGJhc2U6ICdxJyxcbiAgbGV0dGVyczogXCJxXFx1MjRFMFxcdUZGNTFcXHUwMjRCXFx1QTc1N1xcdUE3NTlcIlxufSwge1xuICBiYXNlOiAncicsXG4gIGxldHRlcnM6IFwiclxcdTI0RTFcXHVGRjUyXFx1MDE1NVxcdTFFNTlcXHUwMTU5XFx1MDIxMVxcdTAyMTNcXHUxRTVCXFx1MUU1RFxcdTAxNTdcXHUxRTVGXFx1MDI0RFxcdTAyN0RcXHVBNzVCXFx1QTdBN1xcdUE3ODNcIlxufSwge1xuICBiYXNlOiAncycsXG4gIGxldHRlcnM6IFwic1xcdTI0RTJcXHVGRjUzXFx4REZcXHUwMTVCXFx1MUU2NVxcdTAxNURcXHUxRTYxXFx1MDE2MVxcdTFFNjdcXHUxRTYzXFx1MUU2OVxcdTAyMTlcXHUwMTVGXFx1MDIzRlxcdUE3QTlcXHVBNzg1XFx1MUU5QlwiXG59LCB7XG4gIGJhc2U6ICd0JyxcbiAgbGV0dGVyczogXCJ0XFx1MjRFM1xcdUZGNTRcXHUxRTZCXFx1MUU5N1xcdTAxNjVcXHUxRTZEXFx1MDIxQlxcdTAxNjNcXHUxRTcxXFx1MUU2RlxcdTAxNjdcXHUwMUFEXFx1MDI4OFxcdTJDNjZcXHVBNzg3XCJcbn0sIHtcbiAgYmFzZTogJ3R6JyxcbiAgbGV0dGVyczogXCJcXHVBNzI5XCJcbn0sIHtcbiAgYmFzZTogJ3UnLFxuICBsZXR0ZXJzOiBcInVcXHUyNEU0XFx1RkY1NVxceEY5XFx4RkFcXHhGQlxcdTAxNjlcXHUxRTc5XFx1MDE2QlxcdTFFN0JcXHUwMTZEXFx4RkNcXHUwMURDXFx1MDFEOFxcdTAxRDZcXHUwMURBXFx1MUVFN1xcdTAxNkZcXHUwMTcxXFx1MDFENFxcdTAyMTVcXHUwMjE3XFx1MDFCMFxcdTFFRUJcXHUxRUU5XFx1MUVFRlxcdTFFRURcXHUxRUYxXFx1MUVFNVxcdTFFNzNcXHUwMTczXFx1MUU3N1xcdTFFNzVcXHUwMjg5XCJcbn0sIHtcbiAgYmFzZTogJ3YnLFxuICBsZXR0ZXJzOiBcInZcXHUyNEU1XFx1RkY1NlxcdTFFN0RcXHUxRTdGXFx1MDI4QlxcdUE3NUZcXHUwMjhDXCJcbn0sIHtcbiAgYmFzZTogJ3Z5JyxcbiAgbGV0dGVyczogXCJcXHVBNzYxXCJcbn0sIHtcbiAgYmFzZTogJ3cnLFxuICBsZXR0ZXJzOiBcIndcXHUyNEU2XFx1RkY1N1xcdTFFODFcXHUxRTgzXFx1MDE3NVxcdTFFODdcXHUxRTg1XFx1MUU5OFxcdTFFODlcXHUyQzczXCJcbn0sIHtcbiAgYmFzZTogJ3gnLFxuICBsZXR0ZXJzOiBcInhcXHUyNEU3XFx1RkY1OFxcdTFFOEJcXHUxRThEXCJcbn0sIHtcbiAgYmFzZTogJ3knLFxuICBsZXR0ZXJzOiBcInlcXHUyNEU4XFx1RkY1OVxcdTFFRjNcXHhGRFxcdTAxNzdcXHUxRUY5XFx1MDIzM1xcdTFFOEZcXHhGRlxcdTFFRjdcXHUxRTk5XFx1MUVGNVxcdTAxQjRcXHUwMjRGXFx1MUVGRlwiXG59LCB7XG4gIGJhc2U6ICd6JyxcbiAgbGV0dGVyczogXCJ6XFx1MjRFOVxcdUZGNUFcXHUwMTdBXFx1MUU5MVxcdTAxN0NcXHUwMTdFXFx1MUU5M1xcdTFFOTVcXHUwMUI2XFx1MDIyNVxcdTAyNDBcXHUyQzZDXFx1QTc2M1wiXG59XTtcbnZhciBhbnlEaWFjcml0aWMgPSBuZXcgUmVnRXhwKCdbJyArIGRpYWNyaXRpY3MubWFwKGZ1bmN0aW9uIChkKSB7XG4gIHJldHVybiBkLmxldHRlcnM7XG59KS5qb2luKCcnKSArICddJywgJ2cnKTtcbnZhciBkaWFjcml0aWNUb0Jhc2UgPSB7fTtcbmZvciAodmFyIGkgPSAwOyBpIDwgZGlhY3JpdGljcy5sZW5ndGg7IGkrKykge1xuICB2YXIgZGlhY3JpdGljID0gZGlhY3JpdGljc1tpXTtcbiAgZm9yICh2YXIgaiA9IDA7IGogPCBkaWFjcml0aWMubGV0dGVycy5sZW5ndGg7IGorKykge1xuICAgIGRpYWNyaXRpY1RvQmFzZVtkaWFjcml0aWMubGV0dGVyc1tqXV0gPSBkaWFjcml0aWMuYmFzZTtcbiAgfVxufVxudmFyIHN0cmlwRGlhY3JpdGljcyA9IGZ1bmN0aW9uIHN0cmlwRGlhY3JpdGljcyhzdHIpIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKGFueURpYWNyaXRpYywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgcmV0dXJuIGRpYWNyaXRpY1RvQmFzZVttYXRjaF07XG4gIH0pO1xufTtcblxudmFyIG1lbW9pemVkU3RyaXBEaWFjcml0aWNzRm9ySW5wdXQgPSBtZW1vaXplT25lKHN0cmlwRGlhY3JpdGljcyk7XG52YXIgdHJpbVN0cmluZyA9IGZ1bmN0aW9uIHRyaW1TdHJpbmcoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpO1xufTtcbnZhciBkZWZhdWx0U3RyaW5naWZ5ID0gZnVuY3Rpb24gZGVmYXVsdFN0cmluZ2lmeShvcHRpb24pIHtcbiAgcmV0dXJuIFwiXCIuY29uY2F0KG9wdGlvbi5sYWJlbCwgXCIgXCIpLmNvbmNhdChvcHRpb24udmFsdWUpO1xufTtcbnZhciBjcmVhdGVGaWx0ZXIgPSBmdW5jdGlvbiBjcmVhdGVGaWx0ZXIoY29uZmlnKSB7XG4gIHJldHVybiBmdW5jdGlvbiAob3B0aW9uLCByYXdJbnB1dCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuICAgIGlmIChvcHRpb24uZGF0YS5fX2lzTmV3X18pIHJldHVybiB0cnVlO1xuICAgIHZhciBfaWdub3JlQ2FzZSRpZ25vcmVBY2MgPSBfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgaWdub3JlQ2FzZTogdHJ1ZSxcbiAgICAgICAgaWdub3JlQWNjZW50czogdHJ1ZSxcbiAgICAgICAgc3RyaW5naWZ5OiBkZWZhdWx0U3RyaW5naWZ5LFxuICAgICAgICB0cmltOiB0cnVlLFxuICAgICAgICBtYXRjaEZyb206ICdhbnknXG4gICAgICB9LCBjb25maWcpLFxuICAgICAgaWdub3JlQ2FzZSA9IF9pZ25vcmVDYXNlJGlnbm9yZUFjYy5pZ25vcmVDYXNlLFxuICAgICAgaWdub3JlQWNjZW50cyA9IF9pZ25vcmVDYXNlJGlnbm9yZUFjYy5pZ25vcmVBY2NlbnRzLFxuICAgICAgc3RyaW5naWZ5ID0gX2lnbm9yZUNhc2UkaWdub3JlQWNjLnN0cmluZ2lmeSxcbiAgICAgIHRyaW0gPSBfaWdub3JlQ2FzZSRpZ25vcmVBY2MudHJpbSxcbiAgICAgIG1hdGNoRnJvbSA9IF9pZ25vcmVDYXNlJGlnbm9yZUFjYy5tYXRjaEZyb207XG4gICAgdmFyIGlucHV0ID0gdHJpbSA/IHRyaW1TdHJpbmcocmF3SW5wdXQpIDogcmF3SW5wdXQ7XG4gICAgdmFyIGNhbmRpZGF0ZSA9IHRyaW0gPyB0cmltU3RyaW5nKHN0cmluZ2lmeShvcHRpb24pKSA6IHN0cmluZ2lmeShvcHRpb24pO1xuICAgIGlmIChpZ25vcmVDYXNlKSB7XG4gICAgICBpbnB1dCA9IGlucHV0LnRvTG93ZXJDYXNlKCk7XG4gICAgICBjYW5kaWRhdGUgPSBjYW5kaWRhdGUudG9Mb3dlckNhc2UoKTtcbiAgICB9XG4gICAgaWYgKGlnbm9yZUFjY2VudHMpIHtcbiAgICAgIGlucHV0ID0gbWVtb2l6ZWRTdHJpcERpYWNyaXRpY3NGb3JJbnB1dChpbnB1dCk7XG4gICAgICBjYW5kaWRhdGUgPSBzdHJpcERpYWNyaXRpY3MoY2FuZGlkYXRlKTtcbiAgICB9XG4gICAgcmV0dXJuIG1hdGNoRnJvbSA9PT0gJ3N0YXJ0JyA/IGNhbmRpZGF0ZS5zdWJzdHIoMCwgaW5wdXQubGVuZ3RoKSA9PT0gaW5wdXQgOiBjYW5kaWRhdGUuaW5kZXhPZihpbnB1dCkgPiAtMTtcbiAgfTtcbn07XG5cbnZhciBfZXhjbHVkZWQgPSBbXCJpbm5lclJlZlwiXTtcbmZ1bmN0aW9uIER1bW15SW5wdXQoX3JlZikge1xuICB2YXIgaW5uZXJSZWYgPSBfcmVmLmlubmVyUmVmLFxuICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9yZWYsIF9leGNsdWRlZCk7XG4gIC8vIFJlbW92ZSBhbmltYXRpb24gcHJvcHMgbm90IG1lYW50IGZvciBIVE1MIGVsZW1lbnRzXG4gIHZhciBmaWx0ZXJlZFByb3BzID0gcmVtb3ZlUHJvcHMocHJvcHMsICdvbkV4aXRlZCcsICdpbicsICdlbnRlcicsICdleGl0JywgJ2FwcGVhcicpO1xuICByZXR1cm4ganN4KFwiaW5wdXRcIiwgX2V4dGVuZHMoe1xuICAgIHJlZjogaW5uZXJSZWZcbiAgfSwgZmlsdGVyZWRQcm9wcywge1xuICAgIGNzczogLyojX19QVVJFX18qL2Nzcyh7XG4gICAgICBsYWJlbDogJ2R1bW15SW5wdXQnLFxuICAgICAgLy8gZ2V0IHJpZCBvZiBhbnkgZGVmYXVsdCBzdHlsZXNcbiAgICAgIGJhY2tncm91bmQ6IDAsXG4gICAgICBib3JkZXI6IDAsXG4gICAgICAvLyBpbXBvcnRhbnQhIHRoaXMgaGlkZXMgdGhlIGZsYXNoaW5nIGN1cnNvclxuICAgICAgY2FyZXRDb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICAgIGZvbnRTaXplOiAnaW5oZXJpdCcsXG4gICAgICBncmlkQXJlYTogJzEgLyAxIC8gMiAvIDMnLFxuICAgICAgb3V0bGluZTogMCxcbiAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAvLyBpbXBvcnRhbnQhIHdpdGhvdXQgYHdpZHRoYCBicm93c2VycyB3b24ndCBhbGxvdyBmb2N1c1xuICAgICAgd2lkdGg6IDEsXG4gICAgICAvLyByZW1vdmUgY3Vyc29yIG9uIGRlc2t0b3BcbiAgICAgIGNvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgLy8gcmVtb3ZlIGN1cnNvciBvbiBtb2JpbGUgd2hpbHN0IG1haW50YWluaW5nIFwic2Nyb2xsIGludG8gdmlld1wiIGJlaGF2aW91clxuICAgICAgbGVmdDogLTEwMCxcbiAgICAgIG9wYWNpdHk6IDAsXG4gICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKC4wMSknXG4gICAgfSwgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gXCJcIiA6IFwiO2xhYmVsOkR1bW15SW5wdXQ7XCIsIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IFwiXCIgOiBcIi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYklrUjFiVzE1U1c1d2RYUXVkSE40SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVhsQ1RTSXNJbVpwYkdVaU9pSkVkVzF0ZVVsdWNIVjBMblJ6ZUNJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLaUJBYW5ONElHcHplQ0FxTDF4dWFXMXdiM0owSUhzZ1NsTllMQ0JTWldZZ2ZTQm1jbTl0SUNkeVpXRmpkQ2M3WEc1cGJYQnZjblFnZXlCcWMzZ2dmU0JtY205dElDZEFaVzF2ZEdsdmJpOXlaV0ZqZENjN1hHNXBiWEJ2Y25RZ2V5QnlaVzF2ZG1WUWNtOXdjeUI5SUdaeWIyMGdKeTR1TDNWMGFXeHpKenRjYmx4dVpYaHdiM0owSUdSbFptRjFiSFFnWm5WdVkzUnBiMjRnUkhWdGJYbEpibkIxZENoN1hHNGdJR2x1Ym1WeVVtVm1MRnh1SUNBdUxpNXdjbTl3YzF4dWZUb2dTbE5ZTGtsdWRISnBibk5wWTBWc1pXMWxiblJ6V3lkcGJuQjFkQ2RkSUNZZ2UxeHVJQ0J5WldGa2IyNXNlU0JwYm01bGNsSmxaam9nVW1WbVBFaFVUVXhKYm5CMWRFVnNaVzFsYm5RK08xeHVmU2tnZTF4dUlDQXZMeUJTWlcxdmRtVWdZVzVwYldGMGFXOXVJSEJ5YjNCeklHNXZkQ0J0WldGdWRDQm1iM0lnU0ZSTlRDQmxiR1Z0Wlc1MGMxeHVJQ0JqYjI1emRDQm1hV3gwWlhKbFpGQnliM0J6SUQwZ2NtVnRiM1psVUhKdmNITW9YRzRnSUNBZ2NISnZjSE1zWEc0Z0lDQWdKMjl1UlhocGRHVmtKeXhjYmlBZ0lDQW5hVzRuTEZ4dUlDQWdJQ2RsYm5SbGNpY3NYRzRnSUNBZ0oyVjRhWFFuTEZ4dUlDQWdJQ2RoY0hCbFlYSW5YRzRnSUNrN1hHNWNiaUFnY21WMGRYSnVJQ2hjYmlBZ0lDQThhVzV3ZFhSY2JpQWdJQ0FnSUhKbFpqMTdhVzV1WlhKU1pXWjlYRzRnSUNBZ0lDQjdMaTR1Wm1sc2RHVnlaV1JRY205d2MzMWNiaUFnSUNBZ0lHTnpjejE3ZTF4dUlDQWdJQ0FnSUNCc1lXSmxiRG9nSjJSMWJXMTVTVzV3ZFhRbkxGeHVJQ0FnSUNBZ0lDQXZMeUJuWlhRZ2NtbGtJRzltSUdGdWVTQmtaV1poZFd4MElITjBlV3hsYzF4dUlDQWdJQ0FnSUNCaVlXTnJaM0p2ZFc1a09pQXdMRnh1SUNBZ0lDQWdJQ0JpYjNKa1pYSTZJREFzWEc0Z0lDQWdJQ0FnSUM4dklHbHRjRzl5ZEdGdWRDRWdkR2hwY3lCb2FXUmxjeUIwYUdVZ1pteGhjMmhwYm1jZ1kzVnljMjl5WEc0Z0lDQWdJQ0FnSUdOaGNtVjBRMjlzYjNJNklDZDBjbUZ1YzNCaGNtVnVkQ2NzWEc0Z0lDQWdJQ0FnSUdadmJuUlRhWHBsT2lBbmFXNW9aWEpwZENjc1hHNGdJQ0FnSUNBZ0lHZHlhV1JCY21WaE9pQW5NU0F2SURFZ0x5QXlJQzhnTXljc1hHNGdJQ0FnSUNBZ0lHOTFkR3hwYm1VNklEQXNYRzRnSUNBZ0lDQWdJSEJoWkdScGJtYzZJREFzWEc0Z0lDQWdJQ0FnSUM4dklHbHRjRzl5ZEdGdWRDRWdkMmwwYUc5MWRDQmdkMmxrZEdoZ0lHSnliM2R6WlhKeklIZHZiaWQwSUdGc2JHOTNJR1p2WTNWelhHNGdJQ0FnSUNBZ0lIZHBaSFJvT2lBeExGeHVYRzRnSUNBZ0lDQWdJQzh2SUhKbGJXOTJaU0JqZFhKemIzSWdiMjRnWkdWemEzUnZjRnh1SUNBZ0lDQWdJQ0JqYjJ4dmNqb2dKM1J5WVc1emNHRnlaVzUwSnl4Y2JseHVJQ0FnSUNBZ0lDQXZMeUJ5WlcxdmRtVWdZM1Z5YzI5eUlHOXVJRzF2WW1sc1pTQjNhR2xzYzNRZ2JXRnBiblJoYVc1cGJtY2dYQ0p6WTNKdmJHd2dhVzUwYnlCMmFXVjNYQ0lnWW1Wb1lYWnBiM1Z5WEc0Z0lDQWdJQ0FnSUd4bFpuUTZJQzB4TURBc1hHNGdJQ0FnSUNBZ0lHOXdZV05wZEhrNklEQXNYRzRnSUNBZ0lDQWdJSEJ2YzJsMGFXOXVPaUFuY21Wc1lYUnBkbVVuTEZ4dUlDQWdJQ0FnSUNCMGNtRnVjMlp2Y20wNklDZHpZMkZzWlNndU1ERXBKeXhjYmlBZ0lDQWdJSDE5WEc0Z0lDQWdMejVjYmlBZ0tUdGNibjFjYmlKZGZRPT0gKi9cIilcbiAgfSkpO1xufVxuXG52YXIgY2FuY2VsU2Nyb2xsID0gZnVuY3Rpb24gY2FuY2VsU2Nyb2xsKGV2ZW50KSB7XG4gIGlmIChldmVudC5jYW5jZWxhYmxlKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbn07XG5mdW5jdGlvbiB1c2VTY3JvbGxDYXB0dXJlKF9yZWYpIHtcbiAgdmFyIGlzRW5hYmxlZCA9IF9yZWYuaXNFbmFibGVkLFxuICAgIG9uQm90dG9tQXJyaXZlID0gX3JlZi5vbkJvdHRvbUFycml2ZSxcbiAgICBvbkJvdHRvbUxlYXZlID0gX3JlZi5vbkJvdHRvbUxlYXZlLFxuICAgIG9uVG9wQXJyaXZlID0gX3JlZi5vblRvcEFycml2ZSxcbiAgICBvblRvcExlYXZlID0gX3JlZi5vblRvcExlYXZlO1xuICB2YXIgaXNCb3R0b20gPSB1c2VSZWYoZmFsc2UpO1xuICB2YXIgaXNUb3AgPSB1c2VSZWYoZmFsc2UpO1xuICB2YXIgdG91Y2hTdGFydCA9IHVzZVJlZigwKTtcbiAgdmFyIHNjcm9sbFRhcmdldCA9IHVzZVJlZihudWxsKTtcbiAgdmFyIGhhbmRsZUV2ZW50RGVsdGEgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoZXZlbnQsIGRlbHRhKSB7XG4gICAgaWYgKHNjcm9sbFRhcmdldC5jdXJyZW50ID09PSBudWxsKSByZXR1cm47XG4gICAgdmFyIF9zY3JvbGxUYXJnZXQkY3VycmVudCA9IHNjcm9sbFRhcmdldC5jdXJyZW50LFxuICAgICAgc2Nyb2xsVG9wID0gX3Njcm9sbFRhcmdldCRjdXJyZW50LnNjcm9sbFRvcCxcbiAgICAgIHNjcm9sbEhlaWdodCA9IF9zY3JvbGxUYXJnZXQkY3VycmVudC5zY3JvbGxIZWlnaHQsXG4gICAgICBjbGllbnRIZWlnaHQgPSBfc2Nyb2xsVGFyZ2V0JGN1cnJlbnQuY2xpZW50SGVpZ2h0O1xuICAgIHZhciB0YXJnZXQgPSBzY3JvbGxUYXJnZXQuY3VycmVudDtcbiAgICB2YXIgaXNEZWx0YVBvc2l0aXZlID0gZGVsdGEgPiAwO1xuICAgIHZhciBhdmFpbGFibGVTY3JvbGwgPSBzY3JvbGxIZWlnaHQgLSBjbGllbnRIZWlnaHQgLSBzY3JvbGxUb3A7XG4gICAgdmFyIHNob3VsZENhbmNlbFNjcm9sbCA9IGZhbHNlO1xuXG4gICAgLy8gcmVzZXQgYm90dG9tL3RvcCBmbGFnc1xuICAgIGlmIChhdmFpbGFibGVTY3JvbGwgPiBkZWx0YSAmJiBpc0JvdHRvbS5jdXJyZW50KSB7XG4gICAgICBpZiAob25Cb3R0b21MZWF2ZSkgb25Cb3R0b21MZWF2ZShldmVudCk7XG4gICAgICBpc0JvdHRvbS5jdXJyZW50ID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChpc0RlbHRhUG9zaXRpdmUgJiYgaXNUb3AuY3VycmVudCkge1xuICAgICAgaWYgKG9uVG9wTGVhdmUpIG9uVG9wTGVhdmUoZXZlbnQpO1xuICAgICAgaXNUb3AuY3VycmVudCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGJvdHRvbSBsaW1pdFxuICAgIGlmIChpc0RlbHRhUG9zaXRpdmUgJiYgZGVsdGEgPiBhdmFpbGFibGVTY3JvbGwpIHtcbiAgICAgIGlmIChvbkJvdHRvbUFycml2ZSAmJiAhaXNCb3R0b20uY3VycmVudCkge1xuICAgICAgICBvbkJvdHRvbUFycml2ZShldmVudCk7XG4gICAgICB9XG4gICAgICB0YXJnZXQuc2Nyb2xsVG9wID0gc2Nyb2xsSGVpZ2h0O1xuICAgICAgc2hvdWxkQ2FuY2VsU2Nyb2xsID0gdHJ1ZTtcbiAgICAgIGlzQm90dG9tLmN1cnJlbnQgPSB0cnVlO1xuXG4gICAgICAvLyB0b3AgbGltaXRcbiAgICB9IGVsc2UgaWYgKCFpc0RlbHRhUG9zaXRpdmUgJiYgLWRlbHRhID4gc2Nyb2xsVG9wKSB7XG4gICAgICBpZiAob25Ub3BBcnJpdmUgJiYgIWlzVG9wLmN1cnJlbnQpIHtcbiAgICAgICAgb25Ub3BBcnJpdmUoZXZlbnQpO1xuICAgICAgfVxuICAgICAgdGFyZ2V0LnNjcm9sbFRvcCA9IDA7XG4gICAgICBzaG91bGRDYW5jZWxTY3JvbGwgPSB0cnVlO1xuICAgICAgaXNUb3AuY3VycmVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgLy8gY2FuY2VsIHNjcm9sbFxuICAgIGlmIChzaG91bGRDYW5jZWxTY3JvbGwpIHtcbiAgICAgIGNhbmNlbFNjcm9sbChldmVudCk7XG4gICAgfVxuICB9LCBbb25Cb3R0b21BcnJpdmUsIG9uQm90dG9tTGVhdmUsIG9uVG9wQXJyaXZlLCBvblRvcExlYXZlXSk7XG4gIHZhciBvbldoZWVsID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgaGFuZGxlRXZlbnREZWx0YShldmVudCwgZXZlbnQuZGVsdGFZKTtcbiAgfSwgW2hhbmRsZUV2ZW50RGVsdGFdKTtcbiAgdmFyIG9uVG91Y2hTdGFydCA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChldmVudCkge1xuICAgIC8vIHNldCB0b3VjaCBzdGFydCBzbyB3ZSBjYW4gY2FsY3VsYXRlIHRvdWNobW92ZSBkZWx0YVxuICAgIHRvdWNoU3RhcnQuY3VycmVudCA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFk7XG4gIH0sIFtdKTtcbiAgdmFyIG9uVG91Y2hNb3ZlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgdmFyIGRlbHRhWSA9IHRvdWNoU3RhcnQuY3VycmVudCAtIGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFk7XG4gICAgaGFuZGxlRXZlbnREZWx0YShldmVudCwgZGVsdGFZKTtcbiAgfSwgW2hhbmRsZUV2ZW50RGVsdGFdKTtcbiAgdmFyIHN0YXJ0TGlzdGVuaW5nID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKGVsKSB7XG4gICAgLy8gYmFpbCBlYXJseSBpZiBubyBlbGVtZW50IGlzIGF2YWlsYWJsZSB0byBhdHRhY2ggdG9cbiAgICBpZiAoIWVsKSByZXR1cm47XG4gICAgdmFyIG5vdFBhc3NpdmUgPSBzdXBwb3J0c1Bhc3NpdmVFdmVudHMgPyB7XG4gICAgICBwYXNzaXZlOiBmYWxzZVxuICAgIH0gOiBmYWxzZTtcbiAgICBlbC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIG9uV2hlZWwsIG5vdFBhc3NpdmUpO1xuICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBvblRvdWNoU3RhcnQsIG5vdFBhc3NpdmUpO1xuICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIG9uVG91Y2hNb3ZlLCBub3RQYXNzaXZlKTtcbiAgfSwgW29uVG91Y2hNb3ZlLCBvblRvdWNoU3RhcnQsIG9uV2hlZWxdKTtcbiAgdmFyIHN0b3BMaXN0ZW5pbmcgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoZWwpIHtcbiAgICAvLyBiYWlsIGVhcmx5IGlmIG5vIGVsZW1lbnQgaXMgYXZhaWxhYmxlIHRvIGRldGFjaCBmcm9tXG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3doZWVsJywgb25XaGVlbCwgZmFsc2UpO1xuICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBvblRvdWNoU3RhcnQsIGZhbHNlKTtcbiAgICBlbC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBvblRvdWNoTW92ZSwgZmFsc2UpO1xuICB9LCBbb25Ub3VjaE1vdmUsIG9uVG91Y2hTdGFydCwgb25XaGVlbF0pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmICghaXNFbmFibGVkKSByZXR1cm47XG4gICAgdmFyIGVsZW1lbnQgPSBzY3JvbGxUYXJnZXQuY3VycmVudDtcbiAgICBzdGFydExpc3RlbmluZyhlbGVtZW50KTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgc3RvcExpc3RlbmluZyhlbGVtZW50KTtcbiAgICB9O1xuICB9LCBbaXNFbmFibGVkLCBzdGFydExpc3RlbmluZywgc3RvcExpc3RlbmluZ10pO1xuICByZXR1cm4gZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICBzY3JvbGxUYXJnZXQuY3VycmVudCA9IGVsZW1lbnQ7XG4gIH07XG59XG5cbnZhciBTVFlMRV9LRVlTID0gWydib3hTaXppbmcnLCAnaGVpZ2h0JywgJ292ZXJmbG93JywgJ3BhZGRpbmdSaWdodCcsICdwb3NpdGlvbiddO1xudmFyIExPQ0tfU1RZTEVTID0ge1xuICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgLy8gYWNjb3VudCBmb3IgcG9zc2libGUgZGVjbGFyYXRpb24gYHdpZHRoOiAxMDAlO2Agb24gYm9keVxuICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICBoZWlnaHQ6ICcxMDAlJ1xufTtcbmZ1bmN0aW9uIHByZXZlbnRUb3VjaE1vdmUoZSkge1xuICBpZiAoZS5jYW5jZWxhYmxlKSBlLnByZXZlbnREZWZhdWx0KCk7XG59XG5mdW5jdGlvbiBhbGxvd1RvdWNoTW92ZShlKSB7XG4gIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG59XG5mdW5jdGlvbiBwcmV2ZW50SW5lcnRpYVNjcm9sbCgpIHtcbiAgdmFyIHRvcCA9IHRoaXMuc2Nyb2xsVG9wO1xuICB2YXIgdG90YWxTY3JvbGwgPSB0aGlzLnNjcm9sbEhlaWdodDtcbiAgdmFyIGN1cnJlbnRTY3JvbGwgPSB0b3AgKyB0aGlzLm9mZnNldEhlaWdodDtcbiAgaWYgKHRvcCA9PT0gMCkge1xuICAgIHRoaXMuc2Nyb2xsVG9wID0gMTtcbiAgfSBlbHNlIGlmIChjdXJyZW50U2Nyb2xsID09PSB0b3RhbFNjcm9sbCkge1xuICAgIHRoaXMuc2Nyb2xsVG9wID0gdG9wIC0gMTtcbiAgfVxufVxuXG4vLyBgb250b3VjaHN0YXJ0YCBjaGVjayB3b3JrcyBvbiBtb3N0IGJyb3dzZXJzXG4vLyBgbWF4VG91Y2hQb2ludHNgIHdvcmtzIG9uIElFMTAvMTEgYW5kIFN1cmZhY2VcbmZ1bmN0aW9uIGlzVG91Y2hEZXZpY2UoKSB7XG4gIHJldHVybiAnb250b3VjaHN0YXJ0JyBpbiB3aW5kb3cgfHwgbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzO1xufVxudmFyIGNhblVzZURPTSA9ICEhKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG52YXIgYWN0aXZlU2Nyb2xsTG9ja3MgPSAwO1xudmFyIGxpc3RlbmVyT3B0aW9ucyA9IHtcbiAgY2FwdHVyZTogZmFsc2UsXG4gIHBhc3NpdmU6IGZhbHNlXG59O1xuZnVuY3Rpb24gdXNlU2Nyb2xsTG9jayhfcmVmKSB7XG4gIHZhciBpc0VuYWJsZWQgPSBfcmVmLmlzRW5hYmxlZCxcbiAgICBfcmVmJGFjY291bnRGb3JTY3JvbGwgPSBfcmVmLmFjY291bnRGb3JTY3JvbGxiYXJzLFxuICAgIGFjY291bnRGb3JTY3JvbGxiYXJzID0gX3JlZiRhY2NvdW50Rm9yU2Nyb2xsID09PSB2b2lkIDAgPyB0cnVlIDogX3JlZiRhY2NvdW50Rm9yU2Nyb2xsO1xuICB2YXIgb3JpZ2luYWxTdHlsZXMgPSB1c2VSZWYoe30pO1xuICB2YXIgc2Nyb2xsVGFyZ2V0ID0gdXNlUmVmKG51bGwpO1xuICB2YXIgYWRkU2Nyb2xsTG9jayA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uICh0b3VjaFNjcm9sbFRhcmdldCkge1xuICAgIGlmICghY2FuVXNlRE9NKSByZXR1cm47XG4gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmJvZHk7XG4gICAgdmFyIHRhcmdldFN0eWxlID0gdGFyZ2V0ICYmIHRhcmdldC5zdHlsZTtcbiAgICBpZiAoYWNjb3VudEZvclNjcm9sbGJhcnMpIHtcbiAgICAgIC8vIHN0b3JlIGFueSBzdHlsZXMgYWxyZWFkeSBhcHBsaWVkIHRvIHRoZSBib2R5XG4gICAgICBTVFlMRV9LRVlTLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICB2YXIgdmFsID0gdGFyZ2V0U3R5bGUgJiYgdGFyZ2V0U3R5bGVba2V5XTtcbiAgICAgICAgb3JpZ2luYWxTdHlsZXMuY3VycmVudFtrZXldID0gdmFsO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gYXBwbHkgdGhlIGxvY2sgc3R5bGVzIGFuZCBwYWRkaW5nIGlmIHRoaXMgaXMgdGhlIGZpcnN0IHNjcm9sbCBsb2NrXG4gICAgaWYgKGFjY291bnRGb3JTY3JvbGxiYXJzICYmIGFjdGl2ZVNjcm9sbExvY2tzIDwgMSkge1xuICAgICAgdmFyIGN1cnJlbnRQYWRkaW5nID0gcGFyc2VJbnQob3JpZ2luYWxTdHlsZXMuY3VycmVudC5wYWRkaW5nUmlnaHQsIDEwKSB8fCAwO1xuICAgICAgdmFyIGNsaWVudFdpZHRoID0gZG9jdW1lbnQuYm9keSA/IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggOiAwO1xuICAgICAgdmFyIGFkanVzdGVkUGFkZGluZyA9IHdpbmRvdy5pbm5lcldpZHRoIC0gY2xpZW50V2lkdGggKyBjdXJyZW50UGFkZGluZyB8fCAwO1xuICAgICAgT2JqZWN0LmtleXMoTE9DS19TVFlMRVMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICB2YXIgdmFsID0gTE9DS19TVFlMRVNba2V5XTtcbiAgICAgICAgaWYgKHRhcmdldFN0eWxlKSB7XG4gICAgICAgICAgdGFyZ2V0U3R5bGVba2V5XSA9IHZhbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAodGFyZ2V0U3R5bGUpIHtcbiAgICAgICAgdGFyZ2V0U3R5bGUucGFkZGluZ1JpZ2h0ID0gXCJcIi5jb25jYXQoYWRqdXN0ZWRQYWRkaW5nLCBcInB4XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGFjY291bnQgZm9yIHRvdWNoIGRldmljZXNcbiAgICBpZiAodGFyZ2V0ICYmIGlzVG91Y2hEZXZpY2UoKSkge1xuICAgICAgLy8gTW9iaWxlIFNhZmFyaSBpZ25vcmVzIHsgb3ZlcmZsb3c6IGhpZGRlbiB9IGRlY2xhcmF0aW9uIG9uIHRoZSBib2R5LlxuICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHByZXZlbnRUb3VjaE1vdmUsIGxpc3RlbmVyT3B0aW9ucyk7XG5cbiAgICAgIC8vIEFsbG93IHNjcm9sbCBvbiBwcm92aWRlZCB0YXJnZXRcbiAgICAgIGlmICh0b3VjaFNjcm9sbFRhcmdldCkge1xuICAgICAgICB0b3VjaFNjcm9sbFRhcmdldC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgcHJldmVudEluZXJ0aWFTY3JvbGwsIGxpc3RlbmVyT3B0aW9ucyk7XG4gICAgICAgIHRvdWNoU2Nyb2xsVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGFsbG93VG91Y2hNb3ZlLCBsaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGluY3JlbWVudCBhY3RpdmUgc2Nyb2xsIGxvY2tzXG4gICAgYWN0aXZlU2Nyb2xsTG9ja3MgKz0gMTtcbiAgfSwgW2FjY291bnRGb3JTY3JvbGxiYXJzXSk7XG4gIHZhciByZW1vdmVTY3JvbGxMb2NrID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHRvdWNoU2Nyb2xsVGFyZ2V0KSB7XG4gICAgaWYgKCFjYW5Vc2VET00pIHJldHVybjtcbiAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuYm9keTtcbiAgICB2YXIgdGFyZ2V0U3R5bGUgPSB0YXJnZXQgJiYgdGFyZ2V0LnN0eWxlO1xuXG4gICAgLy8gc2FmZWx5IGRlY3JlbWVudCBhY3RpdmUgc2Nyb2xsIGxvY2tzXG4gICAgYWN0aXZlU2Nyb2xsTG9ja3MgPSBNYXRoLm1heChhY3RpdmVTY3JvbGxMb2NrcyAtIDEsIDApO1xuXG4gICAgLy8gcmVhcHBseSBvcmlnaW5hbCBib2R5IHN0eWxlcywgaWYgYW55XG4gICAgaWYgKGFjY291bnRGb3JTY3JvbGxiYXJzICYmIGFjdGl2ZVNjcm9sbExvY2tzIDwgMSkge1xuICAgICAgU1RZTEVfS0VZUy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgdmFyIHZhbCA9IG9yaWdpbmFsU3R5bGVzLmN1cnJlbnRba2V5XTtcbiAgICAgICAgaWYgKHRhcmdldFN0eWxlKSB7XG4gICAgICAgICAgdGFyZ2V0U3R5bGVba2V5XSA9IHZhbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gcmVtb3ZlIHRvdWNoIGxpc3RlbmVyc1xuICAgIGlmICh0YXJnZXQgJiYgaXNUb3VjaERldmljZSgpKSB7XG4gICAgICB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgcHJldmVudFRvdWNoTW92ZSwgbGlzdGVuZXJPcHRpb25zKTtcbiAgICAgIGlmICh0b3VjaFNjcm9sbFRhcmdldCkge1xuICAgICAgICB0b3VjaFNjcm9sbFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgcHJldmVudEluZXJ0aWFTY3JvbGwsIGxpc3RlbmVyT3B0aW9ucyk7XG4gICAgICAgIHRvdWNoU2Nyb2xsVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGFsbG93VG91Y2hNb3ZlLCBsaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW2FjY291bnRGb3JTY3JvbGxiYXJzXSk7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFpc0VuYWJsZWQpIHJldHVybjtcbiAgICB2YXIgZWxlbWVudCA9IHNjcm9sbFRhcmdldC5jdXJyZW50O1xuICAgIGFkZFNjcm9sbExvY2soZWxlbWVudCk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJlbW92ZVNjcm9sbExvY2soZWxlbWVudCk7XG4gICAgfTtcbiAgfSwgW2lzRW5hYmxlZCwgYWRkU2Nyb2xsTG9jaywgcmVtb3ZlU2Nyb2xsTG9ja10pO1xuICByZXR1cm4gZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICBzY3JvbGxUYXJnZXQuY3VycmVudCA9IGVsZW1lbnQ7XG4gIH07XG59XG5cbmZ1bmN0aW9uIF9FTU9USU9OX1NUUklOR0lGSUVEX0NTU19FUlJPUl9fJDEoKSB7IHJldHVybiBcIllvdSBoYXZlIHRyaWVkIHRvIHN0cmluZ2lmeSBvYmplY3QgcmV0dXJuZWQgZnJvbSBgY3NzYCBmdW5jdGlvbi4gSXQgaXNuJ3Qgc3VwcG9zZWQgdG8gYmUgdXNlZCBkaXJlY3RseSAoZS5nLiBhcyB2YWx1ZSBvZiB0aGUgYGNsYXNzTmFtZWAgcHJvcCksIGJ1dCByYXRoZXIgaGFuZGVkIHRvIGVtb3Rpb24gc28gaXQgY2FuIGhhbmRsZSBpdCAoZS5nLiBhcyB2YWx1ZSBvZiBgY3NzYCBwcm9wKS5cIjsgfVxudmFyIGJsdXJTZWxlY3RJbnB1dCA9IGZ1bmN0aW9uIGJsdXJTZWxlY3RJbnB1dChldmVudCkge1xuICB2YXIgZWxlbWVudCA9IGV2ZW50LnRhcmdldDtcbiAgcmV0dXJuIGVsZW1lbnQub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmIGVsZW1lbnQub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtcbn07XG52YXIgX3JlZjIkMSA9IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IHtcbiAgbmFtZTogXCIxa2ZkYjBlXCIsXG4gIHN0eWxlczogXCJwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7Ym90dG9tOjA7cmlnaHQ6MDt0b3A6MFwiXG59IDoge1xuICBuYW1lOiBcImJwOGN1YS1TY3JvbGxNYW5hZ2VyXCIsXG4gIHN0eWxlczogXCJwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7Ym90dG9tOjA7cmlnaHQ6MDt0b3A6MDtsYWJlbDpTY3JvbGxNYW5hZ2VyO1wiLFxuICBtYXA6IFwiLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWxOamNtOXNiRTFoYm1GblpYSXVkSE40SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVc5RVZTSXNJbVpwYkdVaU9pSlRZM0p2Ykd4TllXNWhaMlZ5TG5SemVDSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaThxS2lCQWFuTjRJR3B6ZUNBcUwxeHVhVzF3YjNKMElIc2dhbk40SUgwZ1puSnZiU0FuUUdWdGIzUnBiMjR2Y21WaFkzUW5PMXh1YVcxd2IzSjBJSHNnUm5KaFoyMWxiblFzSUZKbFlXTjBSV3hsYldWdWRDd2dVbVZtUTJGc2JHSmhZMnNzSUUxdmRYTmxSWFpsYm5RZ2ZTQm1jbTl0SUNkeVpXRmpkQ2M3WEc1cGJYQnZjblFnZFhObFUyTnliMnhzUTJGd2RIVnlaU0JtY205dElDY3VMM1Z6WlZOamNtOXNiRU5oY0hSMWNtVW5PMXh1YVcxd2IzSjBJSFZ6WlZOamNtOXNiRXh2WTJzZ1puSnZiU0FuTGk5MWMyVlRZM0p2Ykd4TWIyTnJKenRjYmx4dWFXNTBaWEptWVdObElGQnliM0J6SUh0Y2JpQWdjbVZoWkc5dWJIa2dZMmhwYkdSeVpXNDZJQ2h5WldZNklGSmxaa05oYkd4aVlXTnJQRWhVVFV4RmJHVnRaVzUwUGlrZ1BUNGdVbVZoWTNSRmJHVnRaVzUwTzF4dUlDQnlaV0ZrYjI1c2VTQnNiMk5yUlc1aFlteGxaRG9nWW05dmJHVmhianRjYmlBZ2NtVmhaRzl1YkhrZ1kyRndkSFZ5WlVWdVlXSnNaV1E2SUdKdmIyeGxZVzQ3WEc0Z0lISmxZV1J2Ym14NUlHOXVRbTkwZEc5dFFYSnlhWFpsUHpvZ0tHVjJaVzUwT2lCWGFHVmxiRVYyWlc1MElId2dWRzkxWTJoRmRtVnVkQ2tnUFQ0Z2RtOXBaRHRjYmlBZ2NtVmhaRzl1YkhrZ2IyNUNiM1IwYjIxTVpXRjJaVDg2SUNobGRtVnVkRG9nVjJobFpXeEZkbVZ1ZENCOElGUnZkV05vUlhabGJuUXBJRDArSUhadmFXUTdYRzRnSUhKbFlXUnZibXg1SUc5dVZHOXdRWEp5YVhabFB6b2dLR1YyWlc1ME9pQlhhR1ZsYkVWMlpXNTBJSHdnVkc5MVkyaEZkbVZ1ZENrZ1BUNGdkbTlwWkR0Y2JpQWdjbVZoWkc5dWJIa2diMjVVYjNCTVpXRjJaVDg2SUNobGRtVnVkRG9nVjJobFpXeEZkbVZ1ZENCOElGUnZkV05vUlhabGJuUXBJRDArSUhadmFXUTdYRzU5WEc1Y2JtTnZibk4wSUdKc2RYSlRaV3hsWTNSSmJuQjFkQ0E5SUNobGRtVnVkRG9nVFc5MWMyVkZkbVZ1ZER4SVZFMU1SR2wyUld4bGJXVnVkRDRwSUQwK0lIdGNiaUFnWTI5dWMzUWdaV3hsYldWdWRDQTlJR1YyWlc1MExuUmhjbWRsZENCaGN5QklWRTFNUkdsMlJXeGxiV1Z1ZER0Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNCbGJHVnRaVzUwTG05M2JtVnlSRzlqZFcxbGJuUXVZV04wYVhabFJXeGxiV1Z1ZENBbUpseHVJQ0FnSUNobGJHVnRaVzUwTG05M2JtVnlSRzlqZFcxbGJuUXVZV04wYVhabFJXeGxiV1Z1ZENCaGN5QklWRTFNUld4bGJXVnVkQ2t1WW14MWNpZ3BYRzRnSUNrN1hHNTlPMXh1WEc1bGVIQnZjblFnWkdWbVlYVnNkQ0JtZFc1amRHbHZiaUJUWTNKdmJHeE5ZVzVoWjJWeUtIdGNiaUFnWTJocGJHUnlaVzRzWEc0Z0lHeHZZMnRGYm1GaWJHVmtMRnh1SUNCallYQjBkWEpsUlc1aFlteGxaQ0E5SUhSeWRXVXNYRzRnSUc5dVFtOTBkRzl0UVhKeWFYWmxMRnh1SUNCdmJrSnZkSFJ2YlV4bFlYWmxMRnh1SUNCdmJsUnZjRUZ5Y21sMlpTeGNiaUFnYjI1VWIzQk1aV0YyWlN4Y2JuMDZJRkJ5YjNCektTQjdYRzRnSUdOdmJuTjBJSE5sZEZOamNtOXNiRU5oY0hSMWNtVlVZWEpuWlhRZ1BTQjFjMlZUWTNKdmJHeERZWEIwZFhKbEtIdGNiaUFnSUNCcGMwVnVZV0pzWldRNklHTmhjSFIxY21WRmJtRmliR1ZrTEZ4dUlDQWdJRzl1UW05MGRHOXRRWEp5YVhabExGeHVJQ0FnSUc5dVFtOTBkRzl0VEdWaGRtVXNYRzRnSUNBZ2IyNVViM0JCY25KcGRtVXNYRzRnSUNBZ2IyNVViM0JNWldGMlpTeGNiaUFnZlNrN1hHNGdJR052Ym5OMElITmxkRk5qY205c2JFeHZZMnRVWVhKblpYUWdQU0IxYzJWVFkzSnZiR3hNYjJOcktIc2dhWE5GYm1GaWJHVmtPaUJzYjJOclJXNWhZbXhsWkNCOUtUdGNibHh1SUNCamIyNXpkQ0IwWVhKblpYUlNaV1k2SUZKbFprTmhiR3hpWVdOclBFaFVUVXhGYkdWdFpXNTBQaUE5SUNobGJHVnRaVzUwS1NBOVBpQjdYRzRnSUNBZ2MyVjBVMk55YjJ4c1EyRndkSFZ5WlZSaGNtZGxkQ2hsYkdWdFpXNTBLVHRjYmlBZ0lDQnpaWFJUWTNKdmJHeE1iMk5yVkdGeVoyVjBLR1ZzWlcxbGJuUXBPMXh1SUNCOU8xeHVYRzRnSUhKbGRIVnliaUFvWEc0Z0lDQWdQRVp5WVdkdFpXNTBQbHh1SUNBZ0lDQWdlMnh2WTJ0RmJtRmliR1ZrSUNZbUlDaGNiaUFnSUNBZ0lDQWdQR1JwZGx4dUlDQWdJQ0FnSUNBZ0lHOXVRMnhwWTJzOWUySnNkWEpUWld4bFkzUkpibkIxZEgxY2JpQWdJQ0FnSUNBZ0lDQmpjM005ZTNzZ2NHOXphWFJwYjI0NklDZG1hWGhsWkNjc0lHeGxablE2SURBc0lHSnZkSFJ2YlRvZ01Dd2djbWxuYUhRNklEQXNJSFJ2Y0RvZ01DQjlmVnh1SUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnS1gxY2JpQWdJQ0FnSUh0amFHbHNaSEpsYmloMFlYSm5aWFJTWldZcGZWeHVJQ0FnSUR3dlJuSmhaMjFsYm5RK1hHNGdJQ2s3WEc1OVhHNGlYWDA9ICovXCIsXG4gIHRvU3RyaW5nOiBfRU1PVElPTl9TVFJJTkdJRklFRF9DU1NfRVJST1JfXyQxXG59O1xuZnVuY3Rpb24gU2Nyb2xsTWFuYWdlcihfcmVmKSB7XG4gIHZhciBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW4sXG4gICAgbG9ja0VuYWJsZWQgPSBfcmVmLmxvY2tFbmFibGVkLFxuICAgIF9yZWYkY2FwdHVyZUVuYWJsZWQgPSBfcmVmLmNhcHR1cmVFbmFibGVkLFxuICAgIGNhcHR1cmVFbmFibGVkID0gX3JlZiRjYXB0dXJlRW5hYmxlZCA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9yZWYkY2FwdHVyZUVuYWJsZWQsXG4gICAgb25Cb3R0b21BcnJpdmUgPSBfcmVmLm9uQm90dG9tQXJyaXZlLFxuICAgIG9uQm90dG9tTGVhdmUgPSBfcmVmLm9uQm90dG9tTGVhdmUsXG4gICAgb25Ub3BBcnJpdmUgPSBfcmVmLm9uVG9wQXJyaXZlLFxuICAgIG9uVG9wTGVhdmUgPSBfcmVmLm9uVG9wTGVhdmU7XG4gIHZhciBzZXRTY3JvbGxDYXB0dXJlVGFyZ2V0ID0gdXNlU2Nyb2xsQ2FwdHVyZSh7XG4gICAgaXNFbmFibGVkOiBjYXB0dXJlRW5hYmxlZCxcbiAgICBvbkJvdHRvbUFycml2ZTogb25Cb3R0b21BcnJpdmUsXG4gICAgb25Cb3R0b21MZWF2ZTogb25Cb3R0b21MZWF2ZSxcbiAgICBvblRvcEFycml2ZTogb25Ub3BBcnJpdmUsXG4gICAgb25Ub3BMZWF2ZTogb25Ub3BMZWF2ZVxuICB9KTtcbiAgdmFyIHNldFNjcm9sbExvY2tUYXJnZXQgPSB1c2VTY3JvbGxMb2NrKHtcbiAgICBpc0VuYWJsZWQ6IGxvY2tFbmFibGVkXG4gIH0pO1xuICB2YXIgdGFyZ2V0UmVmID0gZnVuY3Rpb24gdGFyZ2V0UmVmKGVsZW1lbnQpIHtcbiAgICBzZXRTY3JvbGxDYXB0dXJlVGFyZ2V0KGVsZW1lbnQpO1xuICAgIHNldFNjcm9sbExvY2tUYXJnZXQoZWxlbWVudCk7XG4gIH07XG4gIHJldHVybiBqc3goRnJhZ21lbnQsIG51bGwsIGxvY2tFbmFibGVkICYmIGpzeChcImRpdlwiLCB7XG4gICAgb25DbGljazogYmx1clNlbGVjdElucHV0LFxuICAgIGNzczogX3JlZjIkMVxuICB9KSwgY2hpbGRyZW4odGFyZ2V0UmVmKSk7XG59XG5cbmZ1bmN0aW9uIF9FTU9USU9OX1NUUklOR0lGSUVEX0NTU19FUlJPUl9fKCkgeyByZXR1cm4gXCJZb3UgaGF2ZSB0cmllZCB0byBzdHJpbmdpZnkgb2JqZWN0IHJldHVybmVkIGZyb20gYGNzc2AgZnVuY3Rpb24uIEl0IGlzbid0IHN1cHBvc2VkIHRvIGJlIHVzZWQgZGlyZWN0bHkgKGUuZy4gYXMgdmFsdWUgb2YgdGhlIGBjbGFzc05hbWVgIHByb3ApLCBidXQgcmF0aGVyIGhhbmRlZCB0byBlbW90aW9uIHNvIGl0IGNhbiBoYW5kbGUgaXQgKGUuZy4gYXMgdmFsdWUgb2YgYGNzc2AgcHJvcCkuXCI7IH1cbnZhciBfcmVmMiA9IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IHtcbiAgbmFtZTogXCIxYTBybzRuLXJlcXVpcmVkSW5wdXRcIixcbiAgc3R5bGVzOiBcImxhYmVsOnJlcXVpcmVkSW5wdXQ7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7d2lkdGg6MTAwJVwiXG59IDoge1xuICBuYW1lOiBcIjVra3hiMi1yZXF1aXJlZElucHV0LVJlcXVpcmVkSW5wdXRcIixcbiAgc3R5bGVzOiBcImxhYmVsOnJlcXVpcmVkSW5wdXQ7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7d2lkdGg6MTAwJTtsYWJlbDpSZXF1aXJlZElucHV0O1wiLFxuICBtYXA6IFwiLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWxKbGNYVnBjbVZrU1c1d2RYUXVkSE40SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVdOSklpd2labWxzWlNJNklsSmxjWFZwY21Wa1NXNXdkWFF1ZEhONElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lMeW9xSUVCcWMzZ2dhbk40SUNvdlhHNXBiWEJ2Y25RZ2V5QkdiMk4xYzBWMlpXNTBTR0Z1Wkd4bGNpd2dSblZ1WTNScGIyNURiMjF3YjI1bGJuUWdmU0JtY205dElDZHlaV0ZqZENjN1hHNXBiWEJ2Y25RZ2V5QnFjM2dnZlNCbWNtOXRJQ2RBWlcxdmRHbHZiaTl5WldGamRDYzdYRzVjYm1OdmJuTjBJRkpsY1hWcGNtVmtTVzV3ZFhRNklFWjFibU4wYVc5dVEyOXRjRzl1Wlc1MFBIdGNiaUFnY21WaFpHOXViSGtnYm1GdFpUODZJSE4wY21sdVp6dGNiaUFnY21WaFpHOXViSGtnYjI1R2IyTjFjem9nUm05amRYTkZkbVZ1ZEVoaGJtUnNaWEk4U0ZSTlRFbHVjSFYwUld4bGJXVnVkRDQ3WEc1OVBpQTlJQ2g3SUc1aGJXVXNJRzl1Um05amRYTWdmU2tnUFQ0Z0tGeHVJQ0E4YVc1d2RYUmNiaUFnSUNCeVpYRjFhWEpsWkZ4dUlDQWdJRzVoYldVOWUyNWhiV1Y5WEc0Z0lDQWdkR0ZpU1c1a1pYZzlleTB4ZlZ4dUlDQWdJR0Z5YVdFdGFHbGtaR1Z1UFZ3aWRISjFaVndpWEc0Z0lDQWdiMjVHYjJOMWN6MTdiMjVHYjJOMWMzMWNiaUFnSUNCamMzTTllM3RjYmlBZ0lDQWdJR3hoWW1Wc09pQW5jbVZ4ZFdseVpXUkpibkIxZENjc1hHNGdJQ0FnSUNCdmNHRmphWFI1T2lBd0xGeHVJQ0FnSUNBZ2NHOXBiblJsY2tWMlpXNTBjem9nSjI1dmJtVW5MRnh1SUNBZ0lDQWdjRzl6YVhScGIyNDZJQ2RoWW5OdmJIVjBaU2NzWEc0Z0lDQWdJQ0JpYjNSMGIyMDZJREFzWEc0Z0lDQWdJQ0JzWldaME9pQXdMRnh1SUNBZ0lDQWdjbWxuYUhRNklEQXNYRzRnSUNBZ0lDQjNhV1IwYURvZ0p6RXdNQ1VuTEZ4dUlDQWdJSDE5WEc0Z0lDQWdMeThnVUhKbGRtVnVkQ0JnVTNkcGRHTm9hVzVuSUdaeWIyMGdkVzVqYjI1MGNtOXNiR1ZrSUhSdklHTnZiblJ5YjJ4c1pXUmdJR1Z5Y205eVhHNGdJQ0FnZG1Gc2RXVTlYQ0pjSWx4dUlDQWdJRzl1UTJoaGJtZGxQWHNvS1NBOVBpQjdmWDFjYmlBZ0x6NWNiaWs3WEc1Y2JtVjRjRzl5ZENCa1pXWmhkV3gwSUZKbGNYVnBjbVZrU1c1d2RYUTdYRzRpWFgwPSAqL1wiLFxuICB0b1N0cmluZzogX0VNT1RJT05fU1RSSU5HSUZJRURfQ1NTX0VSUk9SX19cbn07XG52YXIgUmVxdWlyZWRJbnB1dCA9IGZ1bmN0aW9uIFJlcXVpcmVkSW5wdXQoX3JlZikge1xuICB2YXIgbmFtZSA9IF9yZWYubmFtZSxcbiAgICBvbkZvY3VzID0gX3JlZi5vbkZvY3VzO1xuICByZXR1cm4ganN4KFwiaW5wdXRcIiwge1xuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIG5hbWU6IG5hbWUsXG4gICAgdGFiSW5kZXg6IC0xLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgb25Gb2N1czogb25Gb2N1cyxcbiAgICBjc3M6IF9yZWYyXG4gICAgLy8gUHJldmVudCBgU3dpdGNoaW5nIGZyb20gdW5jb250cm9sbGVkIHRvIGNvbnRyb2xsZWRgIGVycm9yXG4gICAgLFxuICAgIHZhbHVlOiBcIlwiLFxuICAgIG9uQ2hhbmdlOiBmdW5jdGlvbiBvbkNoYW5nZSgpIHt9XG4gIH0pO1xufTtcbnZhciBSZXF1aXJlZElucHV0JDEgPSBSZXF1aXJlZElucHV0O1xuXG4vLy8gPHJlZmVyZW5jZSB0eXBlcz1cInVzZXItYWdlbnQtZGF0YS10eXBlc1wiIC8+XG5cbmZ1bmN0aW9uIHRlc3RQbGF0Zm9ybShyZSkge1xuICB2YXIgX3dpbmRvdyRuYXZpZ2F0b3IkdXNlO1xuICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lm5hdmlnYXRvciAhPSBudWxsID8gcmUudGVzdCgoKF93aW5kb3ckbmF2aWdhdG9yJHVzZSA9IHdpbmRvdy5uYXZpZ2F0b3JbJ3VzZXJBZ2VudERhdGEnXSkgPT09IG51bGwgfHwgX3dpbmRvdyRuYXZpZ2F0b3IkdXNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfd2luZG93JG5hdmlnYXRvciR1c2UucGxhdGZvcm0pIHx8IHdpbmRvdy5uYXZpZ2F0b3IucGxhdGZvcm0pIDogZmFsc2U7XG59XG5mdW5jdGlvbiBpc0lQaG9uZSgpIHtcbiAgcmV0dXJuIHRlc3RQbGF0Zm9ybSgvXmlQaG9uZS9pKTtcbn1cbmZ1bmN0aW9uIGlzTWFjKCkge1xuICByZXR1cm4gdGVzdFBsYXRmb3JtKC9eTWFjL2kpO1xufVxuZnVuY3Rpb24gaXNJUGFkKCkge1xuICByZXR1cm4gdGVzdFBsYXRmb3JtKC9eaVBhZC9pKSB8fFxuICAvLyBpUGFkT1MgMTMgbGllcyBhbmQgc2F5cyBpdCdzIGEgTWFjLCBidXQgd2UgY2FuIGRpc3Rpbmd1aXNoIGJ5IGRldGVjdGluZyB0b3VjaCBzdXBwb3J0LlxuICBpc01hYygpICYmIG5hdmlnYXRvci5tYXhUb3VjaFBvaW50cyA+IDE7XG59XG5mdW5jdGlvbiBpc0lPUygpIHtcbiAgcmV0dXJuIGlzSVBob25lKCkgfHwgaXNJUGFkKCk7XG59XG5mdW5jdGlvbiBpc0FwcGxlRGV2aWNlKCkge1xuICByZXR1cm4gaXNNYWMoKSB8fCBpc0lPUygpO1xufVxuXG52YXIgZm9ybWF0R3JvdXBMYWJlbCA9IGZ1bmN0aW9uIGZvcm1hdEdyb3VwTGFiZWwoZ3JvdXApIHtcbiAgcmV0dXJuIGdyb3VwLmxhYmVsO1xufTtcbnZhciBnZXRPcHRpb25MYWJlbCQxID0gZnVuY3Rpb24gZ2V0T3B0aW9uTGFiZWwob3B0aW9uKSB7XG4gIHJldHVybiBvcHRpb24ubGFiZWw7XG59O1xudmFyIGdldE9wdGlvblZhbHVlJDEgPSBmdW5jdGlvbiBnZXRPcHRpb25WYWx1ZShvcHRpb24pIHtcbiAgcmV0dXJuIG9wdGlvbi52YWx1ZTtcbn07XG52YXIgaXNPcHRpb25EaXNhYmxlZCA9IGZ1bmN0aW9uIGlzT3B0aW9uRGlzYWJsZWQob3B0aW9uKSB7XG4gIHJldHVybiAhIW9wdGlvbi5pc0Rpc2FibGVkO1xufTtcblxudmFyIGRlZmF1bHRTdHlsZXMgPSB7XG4gIGNsZWFySW5kaWNhdG9yOiBjbGVhckluZGljYXRvckNTUyxcbiAgY29udGFpbmVyOiBjb250YWluZXJDU1MsXG4gIGNvbnRyb2w6IGNzcyQxLFxuICBkcm9wZG93bkluZGljYXRvcjogZHJvcGRvd25JbmRpY2F0b3JDU1MsXG4gIGdyb3VwOiBncm91cENTUyxcbiAgZ3JvdXBIZWFkaW5nOiBncm91cEhlYWRpbmdDU1MsXG4gIGluZGljYXRvcnNDb250YWluZXI6IGluZGljYXRvcnNDb250YWluZXJDU1MsXG4gIGluZGljYXRvclNlcGFyYXRvcjogaW5kaWNhdG9yU2VwYXJhdG9yQ1NTLFxuICBpbnB1dDogaW5wdXRDU1MsXG4gIGxvYWRpbmdJbmRpY2F0b3I6IGxvYWRpbmdJbmRpY2F0b3JDU1MsXG4gIGxvYWRpbmdNZXNzYWdlOiBsb2FkaW5nTWVzc2FnZUNTUyxcbiAgbWVudTogbWVudUNTUyxcbiAgbWVudUxpc3Q6IG1lbnVMaXN0Q1NTLFxuICBtZW51UG9ydGFsOiBtZW51UG9ydGFsQ1NTLFxuICBtdWx0aVZhbHVlOiBtdWx0aVZhbHVlQ1NTLFxuICBtdWx0aVZhbHVlTGFiZWw6IG11bHRpVmFsdWVMYWJlbENTUyxcbiAgbXVsdGlWYWx1ZVJlbW92ZTogbXVsdGlWYWx1ZVJlbW92ZUNTUyxcbiAgbm9PcHRpb25zTWVzc2FnZTogbm9PcHRpb25zTWVzc2FnZUNTUyxcbiAgb3B0aW9uOiBvcHRpb25DU1MsXG4gIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlckNTUyxcbiAgc2luZ2xlVmFsdWU6IGNzcyQyLFxuICB2YWx1ZUNvbnRhaW5lcjogdmFsdWVDb250YWluZXJDU1Ncbn07XG4vLyBNZXJnZSBVdGlsaXR5XG4vLyBBbGxvd3MgY29uc3VtZXJzIHRvIGV4dGVuZCBhIGJhc2UgU2VsZWN0IHdpdGggYWRkaXRpb25hbCBzdHlsZXNcblxuZnVuY3Rpb24gbWVyZ2VTdHlsZXMoc291cmNlKSB7XG4gIHZhciB0YXJnZXQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICAvLyBpbml0aWFsaXplIHdpdGggc291cmNlIHN0eWxlc1xuICB2YXIgc3R5bGVzID0gX29iamVjdFNwcmVhZCh7fSwgc291cmNlKTtcblxuICAvLyBtYXNzYWdlIGluIHRhcmdldCBzdHlsZXNcbiAgT2JqZWN0LmtleXModGFyZ2V0KS5mb3JFYWNoKGZ1bmN0aW9uIChrZXlBc1N0cmluZykge1xuICAgIHZhciBrZXkgPSBrZXlBc1N0cmluZztcbiAgICBpZiAoc291cmNlW2tleV0pIHtcbiAgICAgIHN0eWxlc1trZXldID0gZnVuY3Rpb24gKHJzQ3NzLCBwcm9wcykge1xuICAgICAgICByZXR1cm4gdGFyZ2V0W2tleV0oc291cmNlW2tleV0ocnNDc3MsIHByb3BzKSwgcHJvcHMpO1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGVzW2tleV0gPSB0YXJnZXRba2V5XTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gc3R5bGVzO1xufVxuXG52YXIgY29sb3JzID0ge1xuICBwcmltYXJ5OiAnIzI2ODRGRicsXG4gIHByaW1hcnk3NTogJyM0QzlBRkYnLFxuICBwcmltYXJ5NTA6ICcjQjJENEZGJyxcbiAgcHJpbWFyeTI1OiAnI0RFRUJGRicsXG4gIGRhbmdlcjogJyNERTM1MEInLFxuICBkYW5nZXJMaWdodDogJyNGRkJEQUQnLFxuICBuZXV0cmFsMDogJ2hzbCgwLCAwJSwgMTAwJSknLFxuICBuZXV0cmFsNTogJ2hzbCgwLCAwJSwgOTUlKScsXG4gIG5ldXRyYWwxMDogJ2hzbCgwLCAwJSwgOTAlKScsXG4gIG5ldXRyYWwyMDogJ2hzbCgwLCAwJSwgODAlKScsXG4gIG5ldXRyYWwzMDogJ2hzbCgwLCAwJSwgNzAlKScsXG4gIG5ldXRyYWw0MDogJ2hzbCgwLCAwJSwgNjAlKScsXG4gIG5ldXRyYWw1MDogJ2hzbCgwLCAwJSwgNTAlKScsXG4gIG5ldXRyYWw2MDogJ2hzbCgwLCAwJSwgNDAlKScsXG4gIG5ldXRyYWw3MDogJ2hzbCgwLCAwJSwgMzAlKScsXG4gIG5ldXRyYWw4MDogJ2hzbCgwLCAwJSwgMjAlKScsXG4gIG5ldXRyYWw5MDogJ2hzbCgwLCAwJSwgMTAlKSdcbn07XG52YXIgYm9yZGVyUmFkaXVzID0gNDtcbi8vIFVzZWQgdG8gY2FsY3VsYXRlIGNvbnNpc3RlbnQgbWFyZ2luL3BhZGRpbmcgb24gZWxlbWVudHNcbnZhciBiYXNlVW5pdCA9IDQ7XG4vLyBUaGUgbWluaW11bSBoZWlnaHQgb2YgdGhlIGNvbnRyb2xcbnZhciBjb250cm9sSGVpZ2h0ID0gMzg7XG4vLyBUaGUgYW1vdW50IG9mIHNwYWNlIGJldHdlZW4gdGhlIGNvbnRyb2wgYW5kIG1lbnUgKi9cbnZhciBtZW51R3V0dGVyID0gYmFzZVVuaXQgKiAyO1xudmFyIHNwYWNpbmcgPSB7XG4gIGJhc2VVbml0OiBiYXNlVW5pdCxcbiAgY29udHJvbEhlaWdodDogY29udHJvbEhlaWdodCxcbiAgbWVudUd1dHRlcjogbWVudUd1dHRlclxufTtcbnZhciBkZWZhdWx0VGhlbWUgPSB7XG4gIGJvcmRlclJhZGl1czogYm9yZGVyUmFkaXVzLFxuICBjb2xvcnM6IGNvbG9ycyxcbiAgc3BhY2luZzogc3BhY2luZ1xufTtcblxudmFyIGRlZmF1bHRQcm9wcyA9IHtcbiAgJ2FyaWEtbGl2ZSc6ICdwb2xpdGUnLFxuICBiYWNrc3BhY2VSZW1vdmVzVmFsdWU6IHRydWUsXG4gIGJsdXJJbnB1dE9uU2VsZWN0OiBpc1RvdWNoQ2FwYWJsZSgpLFxuICBjYXB0dXJlTWVudVNjcm9sbDogIWlzVG91Y2hDYXBhYmxlKCksXG4gIGNsYXNzTmFtZXM6IHt9LFxuICBjbG9zZU1lbnVPblNlbGVjdDogdHJ1ZSxcbiAgY2xvc2VNZW51T25TY3JvbGw6IGZhbHNlLFxuICBjb21wb25lbnRzOiB7fSxcbiAgY29udHJvbFNob3VsZFJlbmRlclZhbHVlOiB0cnVlLFxuICBlc2NhcGVDbGVhcnNWYWx1ZTogZmFsc2UsXG4gIGZpbHRlck9wdGlvbjogY3JlYXRlRmlsdGVyKCksXG4gIGZvcm1hdEdyb3VwTGFiZWw6IGZvcm1hdEdyb3VwTGFiZWwsXG4gIGdldE9wdGlvbkxhYmVsOiBnZXRPcHRpb25MYWJlbCQxLFxuICBnZXRPcHRpb25WYWx1ZTogZ2V0T3B0aW9uVmFsdWUkMSxcbiAgaXNEaXNhYmxlZDogZmFsc2UsXG4gIGlzTG9hZGluZzogZmFsc2UsXG4gIGlzTXVsdGk6IGZhbHNlLFxuICBpc1J0bDogZmFsc2UsXG4gIGlzU2VhcmNoYWJsZTogdHJ1ZSxcbiAgaXNPcHRpb25EaXNhYmxlZDogaXNPcHRpb25EaXNhYmxlZCxcbiAgbG9hZGluZ01lc3NhZ2U6IGZ1bmN0aW9uIGxvYWRpbmdNZXNzYWdlKCkge1xuICAgIHJldHVybiAnTG9hZGluZy4uLic7XG4gIH0sXG4gIG1heE1lbnVIZWlnaHQ6IDMwMCxcbiAgbWluTWVudUhlaWdodDogMTQwLFxuICBtZW51SXNPcGVuOiBmYWxzZSxcbiAgbWVudVBsYWNlbWVudDogJ2JvdHRvbScsXG4gIG1lbnVQb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgbWVudVNob3VsZEJsb2NrU2Nyb2xsOiBmYWxzZSxcbiAgbWVudVNob3VsZFNjcm9sbEludG9WaWV3OiAhaXNNb2JpbGVEZXZpY2UoKSxcbiAgbm9PcHRpb25zTWVzc2FnZTogZnVuY3Rpb24gbm9PcHRpb25zTWVzc2FnZSgpIHtcbiAgICByZXR1cm4gJ05vIG9wdGlvbnMnO1xuICB9LFxuICBvcGVuTWVudU9uRm9jdXM6IGZhbHNlLFxuICBvcGVuTWVudU9uQ2xpY2s6IHRydWUsXG4gIG9wdGlvbnM6IFtdLFxuICBwYWdlU2l6ZTogNSxcbiAgcGxhY2Vob2xkZXI6ICdTZWxlY3QuLi4nLFxuICBzY3JlZW5SZWFkZXJTdGF0dXM6IGZ1bmN0aW9uIHNjcmVlblJlYWRlclN0YXR1cyhfcmVmKSB7XG4gICAgdmFyIGNvdW50ID0gX3JlZi5jb3VudDtcbiAgICByZXR1cm4gXCJcIi5jb25jYXQoY291bnQsIFwiIHJlc3VsdFwiKS5jb25jYXQoY291bnQgIT09IDEgPyAncycgOiAnJywgXCIgYXZhaWxhYmxlXCIpO1xuICB9LFxuICBzdHlsZXM6IHt9LFxuICB0YWJJbmRleDogMCxcbiAgdGFiU2VsZWN0c1ZhbHVlOiB0cnVlLFxuICB1bnN0eWxlZDogZmFsc2Vcbn07XG5mdW5jdGlvbiB0b0NhdGVnb3JpemVkT3B0aW9uKHByb3BzLCBvcHRpb24sIHNlbGVjdFZhbHVlLCBpbmRleCkge1xuICB2YXIgaXNEaXNhYmxlZCA9IF9pc09wdGlvbkRpc2FibGVkKHByb3BzLCBvcHRpb24sIHNlbGVjdFZhbHVlKTtcbiAgdmFyIGlzU2VsZWN0ZWQgPSBfaXNPcHRpb25TZWxlY3RlZChwcm9wcywgb3B0aW9uLCBzZWxlY3RWYWx1ZSk7XG4gIHZhciBsYWJlbCA9IGdldE9wdGlvbkxhYmVsKHByb3BzLCBvcHRpb24pO1xuICB2YXIgdmFsdWUgPSBnZXRPcHRpb25WYWx1ZShwcm9wcywgb3B0aW9uKTtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnb3B0aW9uJyxcbiAgICBkYXRhOiBvcHRpb24sXG4gICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICBpc1NlbGVjdGVkOiBpc1NlbGVjdGVkLFxuICAgIGxhYmVsOiBsYWJlbCxcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgaW5kZXg6IGluZGV4XG4gIH07XG59XG5mdW5jdGlvbiBidWlsZENhdGVnb3JpemVkT3B0aW9ucyhwcm9wcywgc2VsZWN0VmFsdWUpIHtcbiAgcmV0dXJuIHByb3BzLm9wdGlvbnMubWFwKGZ1bmN0aW9uIChncm91cE9yT3B0aW9uLCBncm91cE9yT3B0aW9uSW5kZXgpIHtcbiAgICBpZiAoJ29wdGlvbnMnIGluIGdyb3VwT3JPcHRpb24pIHtcbiAgICAgIHZhciBjYXRlZ29yaXplZE9wdGlvbnMgPSBncm91cE9yT3B0aW9uLm9wdGlvbnMubWFwKGZ1bmN0aW9uIChvcHRpb24sIG9wdGlvbkluZGV4KSB7XG4gICAgICAgIHJldHVybiB0b0NhdGVnb3JpemVkT3B0aW9uKHByb3BzLCBvcHRpb24sIHNlbGVjdFZhbHVlLCBvcHRpb25JbmRleCk7XG4gICAgICB9KS5maWx0ZXIoZnVuY3Rpb24gKGNhdGVnb3JpemVkT3B0aW9uKSB7XG4gICAgICAgIHJldHVybiBpc0ZvY3VzYWJsZShwcm9wcywgY2F0ZWdvcml6ZWRPcHRpb24pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gY2F0ZWdvcml6ZWRPcHRpb25zLmxlbmd0aCA+IDAgPyB7XG4gICAgICAgIHR5cGU6ICdncm91cCcsXG4gICAgICAgIGRhdGE6IGdyb3VwT3JPcHRpb24sXG4gICAgICAgIG9wdGlvbnM6IGNhdGVnb3JpemVkT3B0aW9ucyxcbiAgICAgICAgaW5kZXg6IGdyb3VwT3JPcHRpb25JbmRleFxuICAgICAgfSA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdmFyIGNhdGVnb3JpemVkT3B0aW9uID0gdG9DYXRlZ29yaXplZE9wdGlvbihwcm9wcywgZ3JvdXBPck9wdGlvbiwgc2VsZWN0VmFsdWUsIGdyb3VwT3JPcHRpb25JbmRleCk7XG4gICAgcmV0dXJuIGlzRm9jdXNhYmxlKHByb3BzLCBjYXRlZ29yaXplZE9wdGlvbikgPyBjYXRlZ29yaXplZE9wdGlvbiA6IHVuZGVmaW5lZDtcbiAgfSkuZmlsdGVyKG5vdE51bGxpc2gpO1xufVxuZnVuY3Rpb24gYnVpbGRGb2N1c2FibGVPcHRpb25zRnJvbUNhdGVnb3JpemVkT3B0aW9ucyhjYXRlZ29yaXplZE9wdGlvbnMpIHtcbiAgcmV0dXJuIGNhdGVnb3JpemVkT3B0aW9ucy5yZWR1Y2UoZnVuY3Rpb24gKG9wdGlvbnNBY2N1bXVsYXRvciwgY2F0ZWdvcml6ZWRPcHRpb24pIHtcbiAgICBpZiAoY2F0ZWdvcml6ZWRPcHRpb24udHlwZSA9PT0gJ2dyb3VwJykge1xuICAgICAgb3B0aW9uc0FjY3VtdWxhdG9yLnB1c2guYXBwbHkob3B0aW9uc0FjY3VtdWxhdG9yLCBfdG9Db25zdW1hYmxlQXJyYXkoY2F0ZWdvcml6ZWRPcHRpb24ub3B0aW9ucy5tYXAoZnVuY3Rpb24gKG9wdGlvbikge1xuICAgICAgICByZXR1cm4gb3B0aW9uLmRhdGE7XG4gICAgICB9KSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zQWNjdW11bGF0b3IucHVzaChjYXRlZ29yaXplZE9wdGlvbi5kYXRhKTtcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnNBY2N1bXVsYXRvcjtcbiAgfSwgW10pO1xufVxuZnVuY3Rpb24gYnVpbGRGb2N1c2FibGVPcHRpb25zV2l0aElkcyhjYXRlZ29yaXplZE9wdGlvbnMsIG9wdGlvbklkKSB7XG4gIHJldHVybiBjYXRlZ29yaXplZE9wdGlvbnMucmVkdWNlKGZ1bmN0aW9uIChvcHRpb25zQWNjdW11bGF0b3IsIGNhdGVnb3JpemVkT3B0aW9uKSB7XG4gICAgaWYgKGNhdGVnb3JpemVkT3B0aW9uLnR5cGUgPT09ICdncm91cCcpIHtcbiAgICAgIG9wdGlvbnNBY2N1bXVsYXRvci5wdXNoLmFwcGx5KG9wdGlvbnNBY2N1bXVsYXRvciwgX3RvQ29uc3VtYWJsZUFycmF5KGNhdGVnb3JpemVkT3B0aW9uLm9wdGlvbnMubWFwKGZ1bmN0aW9uIChvcHRpb24pIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiBvcHRpb24uZGF0YSxcbiAgICAgICAgICBpZDogXCJcIi5jb25jYXQob3B0aW9uSWQsIFwiLVwiKS5jb25jYXQoY2F0ZWdvcml6ZWRPcHRpb24uaW5kZXgsIFwiLVwiKS5jb25jYXQob3B0aW9uLmluZGV4KVxuICAgICAgICB9O1xuICAgICAgfSkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3B0aW9uc0FjY3VtdWxhdG9yLnB1c2goe1xuICAgICAgICBkYXRhOiBjYXRlZ29yaXplZE9wdGlvbi5kYXRhLFxuICAgICAgICBpZDogXCJcIi5jb25jYXQob3B0aW9uSWQsIFwiLVwiKS5jb25jYXQoY2F0ZWdvcml6ZWRPcHRpb24uaW5kZXgpXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnNBY2N1bXVsYXRvcjtcbiAgfSwgW10pO1xufVxuZnVuY3Rpb24gYnVpbGRGb2N1c2FibGVPcHRpb25zKHByb3BzLCBzZWxlY3RWYWx1ZSkge1xuICByZXR1cm4gYnVpbGRGb2N1c2FibGVPcHRpb25zRnJvbUNhdGVnb3JpemVkT3B0aW9ucyhidWlsZENhdGVnb3JpemVkT3B0aW9ucyhwcm9wcywgc2VsZWN0VmFsdWUpKTtcbn1cbmZ1bmN0aW9uIGlzRm9jdXNhYmxlKHByb3BzLCBjYXRlZ29yaXplZE9wdGlvbikge1xuICB2YXIgX3Byb3BzJGlucHV0VmFsdWUgPSBwcm9wcy5pbnB1dFZhbHVlLFxuICAgIGlucHV0VmFsdWUgPSBfcHJvcHMkaW5wdXRWYWx1ZSA9PT0gdm9pZCAwID8gJycgOiBfcHJvcHMkaW5wdXRWYWx1ZTtcbiAgdmFyIGRhdGEgPSBjYXRlZ29yaXplZE9wdGlvbi5kYXRhLFxuICAgIGlzU2VsZWN0ZWQgPSBjYXRlZ29yaXplZE9wdGlvbi5pc1NlbGVjdGVkLFxuICAgIGxhYmVsID0gY2F0ZWdvcml6ZWRPcHRpb24ubGFiZWwsXG4gICAgdmFsdWUgPSBjYXRlZ29yaXplZE9wdGlvbi52YWx1ZTtcbiAgcmV0dXJuICghc2hvdWxkSGlkZVNlbGVjdGVkT3B0aW9ucyhwcm9wcykgfHwgIWlzU2VsZWN0ZWQpICYmIF9maWx0ZXJPcHRpb24ocHJvcHMsIHtcbiAgICBsYWJlbDogbGFiZWwsXG4gICAgdmFsdWU6IHZhbHVlLFxuICAgIGRhdGE6IGRhdGFcbiAgfSwgaW5wdXRWYWx1ZSk7XG59XG5mdW5jdGlvbiBnZXROZXh0Rm9jdXNlZFZhbHVlKHN0YXRlLCBuZXh0U2VsZWN0VmFsdWUpIHtcbiAgdmFyIGZvY3VzZWRWYWx1ZSA9IHN0YXRlLmZvY3VzZWRWYWx1ZSxcbiAgICBsYXN0U2VsZWN0VmFsdWUgPSBzdGF0ZS5zZWxlY3RWYWx1ZTtcbiAgdmFyIGxhc3RGb2N1c2VkSW5kZXggPSBsYXN0U2VsZWN0VmFsdWUuaW5kZXhPZihmb2N1c2VkVmFsdWUpO1xuICBpZiAobGFzdEZvY3VzZWRJbmRleCA+IC0xKSB7XG4gICAgdmFyIG5leHRGb2N1c2VkSW5kZXggPSBuZXh0U2VsZWN0VmFsdWUuaW5kZXhPZihmb2N1c2VkVmFsdWUpO1xuICAgIGlmIChuZXh0Rm9jdXNlZEluZGV4ID4gLTEpIHtcbiAgICAgIC8vIHRoZSBmb2N1c2VkIHZhbHVlIGlzIHN0aWxsIGluIHRoZSBzZWxlY3RWYWx1ZSwgcmV0dXJuIGl0XG4gICAgICByZXR1cm4gZm9jdXNlZFZhbHVlO1xuICAgIH0gZWxzZSBpZiAobGFzdEZvY3VzZWRJbmRleCA8IG5leHRTZWxlY3RWYWx1ZS5sZW5ndGgpIHtcbiAgICAgIC8vIHRoZSBmb2N1c2VkVmFsdWUgaXMgbm90IHByZXNlbnQgaW4gdGhlIG5leHQgc2VsZWN0VmFsdWUgYXJyYXkgYnlcbiAgICAgIC8vIHJlZmVyZW5jZSwgc28gcmV0dXJuIHRoZSBuZXcgdmFsdWUgYXQgdGhlIHNhbWUgaW5kZXhcbiAgICAgIHJldHVybiBuZXh0U2VsZWN0VmFsdWVbbGFzdEZvY3VzZWRJbmRleF07XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gZ2V0TmV4dEZvY3VzZWRPcHRpb24oc3RhdGUsIG9wdGlvbnMpIHtcbiAgdmFyIGxhc3RGb2N1c2VkT3B0aW9uID0gc3RhdGUuZm9jdXNlZE9wdGlvbjtcbiAgcmV0dXJuIGxhc3RGb2N1c2VkT3B0aW9uICYmIG9wdGlvbnMuaW5kZXhPZihsYXN0Rm9jdXNlZE9wdGlvbikgPiAtMSA/IGxhc3RGb2N1c2VkT3B0aW9uIDogb3B0aW9uc1swXTtcbn1cbnZhciBnZXRGb2N1c2VkT3B0aW9uSWQgPSBmdW5jdGlvbiBnZXRGb2N1c2VkT3B0aW9uSWQoZm9jdXNhYmxlT3B0aW9uc1dpdGhJZHMsIGZvY3VzZWRPcHRpb24pIHtcbiAgdmFyIF9mb2N1c2FibGVPcHRpb25zV2l0aDtcbiAgdmFyIGZvY3VzZWRPcHRpb25JZCA9IChfZm9jdXNhYmxlT3B0aW9uc1dpdGggPSBmb2N1c2FibGVPcHRpb25zV2l0aElkcy5maW5kKGZ1bmN0aW9uIChvcHRpb24pIHtcbiAgICByZXR1cm4gb3B0aW9uLmRhdGEgPT09IGZvY3VzZWRPcHRpb247XG4gIH0pKSA9PT0gbnVsbCB8fCBfZm9jdXNhYmxlT3B0aW9uc1dpdGggPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9mb2N1c2FibGVPcHRpb25zV2l0aC5pZDtcbiAgcmV0dXJuIGZvY3VzZWRPcHRpb25JZCB8fCBudWxsO1xufTtcbnZhciBnZXRPcHRpb25MYWJlbCA9IGZ1bmN0aW9uIGdldE9wdGlvbkxhYmVsKHByb3BzLCBkYXRhKSB7XG4gIHJldHVybiBwcm9wcy5nZXRPcHRpb25MYWJlbChkYXRhKTtcbn07XG52YXIgZ2V0T3B0aW9uVmFsdWUgPSBmdW5jdGlvbiBnZXRPcHRpb25WYWx1ZShwcm9wcywgZGF0YSkge1xuICByZXR1cm4gcHJvcHMuZ2V0T3B0aW9uVmFsdWUoZGF0YSk7XG59O1xuZnVuY3Rpb24gX2lzT3B0aW9uRGlzYWJsZWQocHJvcHMsIG9wdGlvbiwgc2VsZWN0VmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiBwcm9wcy5pc09wdGlvbkRpc2FibGVkID09PSAnZnVuY3Rpb24nID8gcHJvcHMuaXNPcHRpb25EaXNhYmxlZChvcHRpb24sIHNlbGVjdFZhbHVlKSA6IGZhbHNlO1xufVxuZnVuY3Rpb24gX2lzT3B0aW9uU2VsZWN0ZWQocHJvcHMsIG9wdGlvbiwgc2VsZWN0VmFsdWUpIHtcbiAgaWYgKHNlbGVjdFZhbHVlLmluZGV4T2Yob3B0aW9uKSA+IC0xKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKHR5cGVvZiBwcm9wcy5pc09wdGlvblNlbGVjdGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHByb3BzLmlzT3B0aW9uU2VsZWN0ZWQob3B0aW9uLCBzZWxlY3RWYWx1ZSk7XG4gIH1cbiAgdmFyIGNhbmRpZGF0ZSA9IGdldE9wdGlvblZhbHVlKHByb3BzLCBvcHRpb24pO1xuICByZXR1cm4gc2VsZWN0VmFsdWUuc29tZShmdW5jdGlvbiAoaSkge1xuICAgIHJldHVybiBnZXRPcHRpb25WYWx1ZShwcm9wcywgaSkgPT09IGNhbmRpZGF0ZTtcbiAgfSk7XG59XG5mdW5jdGlvbiBfZmlsdGVyT3B0aW9uKHByb3BzLCBvcHRpb24sIGlucHV0VmFsdWUpIHtcbiAgcmV0dXJuIHByb3BzLmZpbHRlck9wdGlvbiA/IHByb3BzLmZpbHRlck9wdGlvbihvcHRpb24sIGlucHV0VmFsdWUpIDogdHJ1ZTtcbn1cbnZhciBzaG91bGRIaWRlU2VsZWN0ZWRPcHRpb25zID0gZnVuY3Rpb24gc2hvdWxkSGlkZVNlbGVjdGVkT3B0aW9ucyhwcm9wcykge1xuICB2YXIgaGlkZVNlbGVjdGVkT3B0aW9ucyA9IHByb3BzLmhpZGVTZWxlY3RlZE9wdGlvbnMsXG4gICAgaXNNdWx0aSA9IHByb3BzLmlzTXVsdGk7XG4gIGlmIChoaWRlU2VsZWN0ZWRPcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiBpc011bHRpO1xuICByZXR1cm4gaGlkZVNlbGVjdGVkT3B0aW9ucztcbn07XG52YXIgaW5zdGFuY2VJZCA9IDE7XG52YXIgU2VsZWN0ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhTZWxlY3QsIF9Db21wb25lbnQpO1xuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKFNlbGVjdCk7XG4gIC8vIE1pc2MuIEluc3RhbmNlIFByb3BlcnRpZXNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLy8gVE9ET1xuXG4gIC8vIFJlZnNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLy8gTGlmZWN5Y2xlXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGZ1bmN0aW9uIFNlbGVjdChfcHJvcHMpIHtcbiAgICB2YXIgX3RoaXM7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNlbGVjdCk7XG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBfcHJvcHMpO1xuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgYXJpYVNlbGVjdGlvbjogbnVsbCxcbiAgICAgIGZvY3VzZWRPcHRpb246IG51bGwsXG4gICAgICBmb2N1c2VkT3B0aW9uSWQ6IG51bGwsXG4gICAgICBmb2N1c2FibGVPcHRpb25zV2l0aElkczogW10sXG4gICAgICBmb2N1c2VkVmFsdWU6IG51bGwsXG4gICAgICBpbnB1dElzSGlkZGVuOiBmYWxzZSxcbiAgICAgIGlzRm9jdXNlZDogZmFsc2UsXG4gICAgICBzZWxlY3RWYWx1ZTogW10sXG4gICAgICBjbGVhckZvY3VzVmFsdWVPblVwZGF0ZTogZmFsc2UsXG4gICAgICBwcmV2V2FzRm9jdXNlZDogZmFsc2UsXG4gICAgICBpbnB1dElzSGlkZGVuQWZ0ZXJVcGRhdGU6IHVuZGVmaW5lZCxcbiAgICAgIHByZXZQcm9wczogdW5kZWZpbmVkLFxuICAgICAgaW5zdGFuY2VQcmVmaXg6ICcnXG4gICAgfTtcbiAgICBfdGhpcy5ibG9ja09wdGlvbkhvdmVyID0gZmFsc2U7XG4gICAgX3RoaXMuaXNDb21wb3NpbmcgPSBmYWxzZTtcbiAgICBfdGhpcy5jb21tb25Qcm9wcyA9IHZvaWQgMDtcbiAgICBfdGhpcy5pbml0aWFsVG91Y2hYID0gMDtcbiAgICBfdGhpcy5pbml0aWFsVG91Y2hZID0gMDtcbiAgICBfdGhpcy5vcGVuQWZ0ZXJGb2N1cyA9IGZhbHNlO1xuICAgIF90aGlzLnNjcm9sbFRvRm9jdXNlZE9wdGlvbk9uVXBkYXRlID0gZmFsc2U7XG4gICAgX3RoaXMudXNlcklzRHJhZ2dpbmcgPSB2b2lkIDA7XG4gICAgX3RoaXMuaXNBcHBsZURldmljZSA9IGlzQXBwbGVEZXZpY2UoKTtcbiAgICBfdGhpcy5jb250cm9sUmVmID0gbnVsbDtcbiAgICBfdGhpcy5nZXRDb250cm9sUmVmID0gZnVuY3Rpb24gKHJlZikge1xuICAgICAgX3RoaXMuY29udHJvbFJlZiA9IHJlZjtcbiAgICB9O1xuICAgIF90aGlzLmZvY3VzZWRPcHRpb25SZWYgPSBudWxsO1xuICAgIF90aGlzLmdldEZvY3VzZWRPcHRpb25SZWYgPSBmdW5jdGlvbiAocmVmKSB7XG4gICAgICBfdGhpcy5mb2N1c2VkT3B0aW9uUmVmID0gcmVmO1xuICAgIH07XG4gICAgX3RoaXMubWVudUxpc3RSZWYgPSBudWxsO1xuICAgIF90aGlzLmdldE1lbnVMaXN0UmVmID0gZnVuY3Rpb24gKHJlZikge1xuICAgICAgX3RoaXMubWVudUxpc3RSZWYgPSByZWY7XG4gICAgfTtcbiAgICBfdGhpcy5pbnB1dFJlZiA9IG51bGw7XG4gICAgX3RoaXMuZ2V0SW5wdXRSZWYgPSBmdW5jdGlvbiAocmVmKSB7XG4gICAgICBfdGhpcy5pbnB1dFJlZiA9IHJlZjtcbiAgICB9O1xuICAgIF90aGlzLmZvY3VzID0gX3RoaXMuZm9jdXNJbnB1dDtcbiAgICBfdGhpcy5ibHVyID0gX3RoaXMuYmx1cklucHV0O1xuICAgIF90aGlzLm9uQ2hhbmdlID0gZnVuY3Rpb24gKG5ld1ZhbHVlLCBhY3Rpb25NZXRhKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgb25DaGFuZ2UgPSBfdGhpcyRwcm9wcy5vbkNoYW5nZSxcbiAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzLm5hbWU7XG4gICAgICBhY3Rpb25NZXRhLm5hbWUgPSBuYW1lO1xuICAgICAgX3RoaXMuYXJpYU9uQ2hhbmdlKG5ld1ZhbHVlLCBhY3Rpb25NZXRhKTtcbiAgICAgIG9uQ2hhbmdlKG5ld1ZhbHVlLCBhY3Rpb25NZXRhKTtcbiAgICB9O1xuICAgIF90aGlzLnNldFZhbHVlID0gZnVuY3Rpb24gKG5ld1ZhbHVlLCBhY3Rpb24sIG9wdGlvbikge1xuICAgICAgdmFyIF90aGlzJHByb3BzMiA9IF90aGlzLnByb3BzLFxuICAgICAgICBjbG9zZU1lbnVPblNlbGVjdCA9IF90aGlzJHByb3BzMi5jbG9zZU1lbnVPblNlbGVjdCxcbiAgICAgICAgaXNNdWx0aSA9IF90aGlzJHByb3BzMi5pc011bHRpLFxuICAgICAgICBpbnB1dFZhbHVlID0gX3RoaXMkcHJvcHMyLmlucHV0VmFsdWU7XG4gICAgICBfdGhpcy5vbklucHV0Q2hhbmdlKCcnLCB7XG4gICAgICAgIGFjdGlvbjogJ3NldC12YWx1ZScsXG4gICAgICAgIHByZXZJbnB1dFZhbHVlOiBpbnB1dFZhbHVlXG4gICAgICB9KTtcbiAgICAgIGlmIChjbG9zZU1lbnVPblNlbGVjdCkge1xuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgaW5wdXRJc0hpZGRlbkFmdGVyVXBkYXRlOiAhaXNNdWx0aVxuICAgICAgICB9KTtcbiAgICAgICAgX3RoaXMub25NZW51Q2xvc2UoKTtcbiAgICAgIH1cbiAgICAgIC8vIHdoZW4gdGhlIHNlbGVjdCB2YWx1ZSBzaG91bGQgY2hhbmdlLCB3ZSBzaG91bGQgcmVzZXQgZm9jdXNlZFZhbHVlXG4gICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGNsZWFyRm9jdXNWYWx1ZU9uVXBkYXRlOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIF90aGlzLm9uQ2hhbmdlKG5ld1ZhbHVlLCB7XG4gICAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgICBvcHRpb246IG9wdGlvblxuICAgICAgfSk7XG4gICAgfTtcbiAgICBfdGhpcy5zZWxlY3RPcHRpb24gPSBmdW5jdGlvbiAobmV3VmFsdWUpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgYmx1cklucHV0T25TZWxlY3QgPSBfdGhpcyRwcm9wczMuYmx1cklucHV0T25TZWxlY3QsXG4gICAgICAgIGlzTXVsdGkgPSBfdGhpcyRwcm9wczMuaXNNdWx0aSxcbiAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzMy5uYW1lO1xuICAgICAgdmFyIHNlbGVjdFZhbHVlID0gX3RoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XG4gICAgICB2YXIgZGVzZWxlY3RlZCA9IGlzTXVsdGkgJiYgX3RoaXMuaXNPcHRpb25TZWxlY3RlZChuZXdWYWx1ZSwgc2VsZWN0VmFsdWUpO1xuICAgICAgdmFyIGlzRGlzYWJsZWQgPSBfdGhpcy5pc09wdGlvbkRpc2FibGVkKG5ld1ZhbHVlLCBzZWxlY3RWYWx1ZSk7XG4gICAgICBpZiAoZGVzZWxlY3RlZCkge1xuICAgICAgICB2YXIgY2FuZGlkYXRlID0gX3RoaXMuZ2V0T3B0aW9uVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICBfdGhpcy5zZXRWYWx1ZShtdWx0aVZhbHVlQXNWYWx1ZShzZWxlY3RWYWx1ZS5maWx0ZXIoZnVuY3Rpb24gKGkpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXMuZ2V0T3B0aW9uVmFsdWUoaSkgIT09IGNhbmRpZGF0ZTtcbiAgICAgICAgfSkpLCAnZGVzZWxlY3Qtb3B0aW9uJywgbmV3VmFsdWUpO1xuICAgICAgfSBlbHNlIGlmICghaXNEaXNhYmxlZCkge1xuICAgICAgICAvLyBTZWxlY3Qgb3B0aW9uIGlmIG9wdGlvbiBpcyBub3QgZGlzYWJsZWRcbiAgICAgICAgaWYgKGlzTXVsdGkpIHtcbiAgICAgICAgICBfdGhpcy5zZXRWYWx1ZShtdWx0aVZhbHVlQXNWYWx1ZShbXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KHNlbGVjdFZhbHVlKSwgW25ld1ZhbHVlXSkpLCAnc2VsZWN0LW9wdGlvbicsIG5ld1ZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfdGhpcy5zZXRWYWx1ZShzaW5nbGVWYWx1ZUFzVmFsdWUobmV3VmFsdWUpLCAnc2VsZWN0LW9wdGlvbicpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfdGhpcy5hcmlhT25DaGFuZ2Uoc2luZ2xlVmFsdWVBc1ZhbHVlKG5ld1ZhbHVlKSwge1xuICAgICAgICAgIGFjdGlvbjogJ3NlbGVjdC1vcHRpb24nLFxuICAgICAgICAgIG9wdGlvbjogbmV3VmFsdWUsXG4gICAgICAgICAgbmFtZTogbmFtZVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGJsdXJJbnB1dE9uU2VsZWN0KSB7XG4gICAgICAgIF90aGlzLmJsdXJJbnB1dCgpO1xuICAgICAgfVxuICAgIH07XG4gICAgX3RoaXMucmVtb3ZlVmFsdWUgPSBmdW5jdGlvbiAocmVtb3ZlZFZhbHVlKSB7XG4gICAgICB2YXIgaXNNdWx0aSA9IF90aGlzLnByb3BzLmlzTXVsdGk7XG4gICAgICB2YXIgc2VsZWN0VmFsdWUgPSBfdGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZTtcbiAgICAgIHZhciBjYW5kaWRhdGUgPSBfdGhpcy5nZXRPcHRpb25WYWx1ZShyZW1vdmVkVmFsdWUpO1xuICAgICAgdmFyIG5ld1ZhbHVlQXJyYXkgPSBzZWxlY3RWYWx1ZS5maWx0ZXIoZnVuY3Rpb24gKGkpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLmdldE9wdGlvblZhbHVlKGkpICE9PSBjYW5kaWRhdGU7XG4gICAgICB9KTtcbiAgICAgIHZhciBuZXdWYWx1ZSA9IHZhbHVlVGVybmFyeShpc011bHRpLCBuZXdWYWx1ZUFycmF5LCBuZXdWYWx1ZUFycmF5WzBdIHx8IG51bGwpO1xuICAgICAgX3RoaXMub25DaGFuZ2UobmV3VmFsdWUsIHtcbiAgICAgICAgYWN0aW9uOiAncmVtb3ZlLXZhbHVlJyxcbiAgICAgICAgcmVtb3ZlZFZhbHVlOiByZW1vdmVkVmFsdWVcbiAgICAgIH0pO1xuICAgICAgX3RoaXMuZm9jdXNJbnB1dCgpO1xuICAgIH07XG4gICAgX3RoaXMuY2xlYXJWYWx1ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBzZWxlY3RWYWx1ZSA9IF90aGlzLnN0YXRlLnNlbGVjdFZhbHVlO1xuICAgICAgX3RoaXMub25DaGFuZ2UodmFsdWVUZXJuYXJ5KF90aGlzLnByb3BzLmlzTXVsdGksIFtdLCBudWxsKSwge1xuICAgICAgICBhY3Rpb246ICdjbGVhcicsXG4gICAgICAgIHJlbW92ZWRWYWx1ZXM6IHNlbGVjdFZhbHVlXG4gICAgICB9KTtcbiAgICB9O1xuICAgIF90aGlzLnBvcFZhbHVlID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGlzTXVsdGkgPSBfdGhpcy5wcm9wcy5pc011bHRpO1xuICAgICAgdmFyIHNlbGVjdFZhbHVlID0gX3RoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XG4gICAgICB2YXIgbGFzdFNlbGVjdGVkVmFsdWUgPSBzZWxlY3RWYWx1ZVtzZWxlY3RWYWx1ZS5sZW5ndGggLSAxXTtcbiAgICAgIHZhciBuZXdWYWx1ZUFycmF5ID0gc2VsZWN0VmFsdWUuc2xpY2UoMCwgc2VsZWN0VmFsdWUubGVuZ3RoIC0gMSk7XG4gICAgICB2YXIgbmV3VmFsdWUgPSB2YWx1ZVRlcm5hcnkoaXNNdWx0aSwgbmV3VmFsdWVBcnJheSwgbmV3VmFsdWVBcnJheVswXSB8fCBudWxsKTtcbiAgICAgIGlmIChsYXN0U2VsZWN0ZWRWYWx1ZSkge1xuICAgICAgICBfdGhpcy5vbkNoYW5nZShuZXdWYWx1ZSwge1xuICAgICAgICAgIGFjdGlvbjogJ3BvcC12YWx1ZScsXG4gICAgICAgICAgcmVtb3ZlZFZhbHVlOiBsYXN0U2VsZWN0ZWRWYWx1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIF90aGlzLmdldEZvY3VzZWRPcHRpb25JZCA9IGZ1bmN0aW9uIChmb2N1c2VkT3B0aW9uKSB7XG4gICAgICByZXR1cm4gZ2V0Rm9jdXNlZE9wdGlvbklkKF90aGlzLnN0YXRlLmZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzLCBmb2N1c2VkT3B0aW9uKTtcbiAgICB9O1xuICAgIF90aGlzLmdldEZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGJ1aWxkRm9jdXNhYmxlT3B0aW9uc1dpdGhJZHMoYnVpbGRDYXRlZ29yaXplZE9wdGlvbnMoX3RoaXMucHJvcHMsIF90aGlzLnN0YXRlLnNlbGVjdFZhbHVlKSwgX3RoaXMuZ2V0RWxlbWVudElkKCdvcHRpb24nKSk7XG4gICAgfTtcbiAgICBfdGhpcy5nZXRWYWx1ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZTtcbiAgICB9O1xuICAgIF90aGlzLmN4ID0gZnVuY3Rpb24gKCkge1xuICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICB9XG4gICAgICByZXR1cm4gY2xhc3NOYW1lcy5hcHBseSh2b2lkIDAsIFtfdGhpcy5wcm9wcy5jbGFzc05hbWVQcmVmaXhdLmNvbmNhdChhcmdzKSk7XG4gICAgfTtcbiAgICBfdGhpcy5nZXRPcHRpb25MYWJlbCA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICByZXR1cm4gZ2V0T3B0aW9uTGFiZWwoX3RoaXMucHJvcHMsIGRhdGEpO1xuICAgIH07XG4gICAgX3RoaXMuZ2V0T3B0aW9uVmFsdWUgPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgcmV0dXJuIGdldE9wdGlvblZhbHVlKF90aGlzLnByb3BzLCBkYXRhKTtcbiAgICB9O1xuICAgIF90aGlzLmdldFN0eWxlcyA9IGZ1bmN0aW9uIChrZXksIHByb3BzKSB7XG4gICAgICB2YXIgdW5zdHlsZWQgPSBfdGhpcy5wcm9wcy51bnN0eWxlZDtcbiAgICAgIHZhciBiYXNlID0gZGVmYXVsdFN0eWxlc1trZXldKHByb3BzLCB1bnN0eWxlZCk7XG4gICAgICBiYXNlLmJveFNpemluZyA9ICdib3JkZXItYm94JztcbiAgICAgIHZhciBjdXN0b20gPSBfdGhpcy5wcm9wcy5zdHlsZXNba2V5XTtcbiAgICAgIHJldHVybiBjdXN0b20gPyBjdXN0b20oYmFzZSwgcHJvcHMpIDogYmFzZTtcbiAgICB9O1xuICAgIF90aGlzLmdldENsYXNzTmFtZXMgPSBmdW5jdGlvbiAoa2V5LCBwcm9wcykge1xuICAgICAgdmFyIF90aGlzJHByb3BzJGNsYXNzTmFtZSwgX3RoaXMkcHJvcHMkY2xhc3NOYW1lMjtcbiAgICAgIHJldHVybiAoX3RoaXMkcHJvcHMkY2xhc3NOYW1lID0gKF90aGlzJHByb3BzJGNsYXNzTmFtZTIgPSBfdGhpcy5wcm9wcy5jbGFzc05hbWVzKVtrZXldKSA9PT0gbnVsbCB8fCBfdGhpcyRwcm9wcyRjbGFzc05hbWUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzJHByb3BzJGNsYXNzTmFtZS5jYWxsKF90aGlzJHByb3BzJGNsYXNzTmFtZTIsIHByb3BzKTtcbiAgICB9O1xuICAgIF90aGlzLmdldEVsZW1lbnRJZCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICByZXR1cm4gXCJcIi5jb25jYXQoX3RoaXMuc3RhdGUuaW5zdGFuY2VQcmVmaXgsIFwiLVwiKS5jb25jYXQoZWxlbWVudCk7XG4gICAgfTtcbiAgICBfdGhpcy5nZXRDb21wb25lbnRzID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGRlZmF1bHRDb21wb25lbnRzKF90aGlzLnByb3BzKTtcbiAgICB9O1xuICAgIF90aGlzLmJ1aWxkQ2F0ZWdvcml6ZWRPcHRpb25zID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGJ1aWxkQ2F0ZWdvcml6ZWRPcHRpb25zKF90aGlzLnByb3BzLCBfdGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZSk7XG4gICAgfTtcbiAgICBfdGhpcy5nZXRDYXRlZ29yaXplZE9wdGlvbnMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX3RoaXMucHJvcHMubWVudUlzT3BlbiA/IF90aGlzLmJ1aWxkQ2F0ZWdvcml6ZWRPcHRpb25zKCkgOiBbXTtcbiAgICB9O1xuICAgIF90aGlzLmJ1aWxkRm9jdXNhYmxlT3B0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBidWlsZEZvY3VzYWJsZU9wdGlvbnNGcm9tQ2F0ZWdvcml6ZWRPcHRpb25zKF90aGlzLmJ1aWxkQ2F0ZWdvcml6ZWRPcHRpb25zKCkpO1xuICAgIH07XG4gICAgX3RoaXMuZ2V0Rm9jdXNhYmxlT3B0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5wcm9wcy5tZW51SXNPcGVuID8gX3RoaXMuYnVpbGRGb2N1c2FibGVPcHRpb25zKCkgOiBbXTtcbiAgICB9O1xuICAgIF90aGlzLmFyaWFPbkNoYW5nZSA9IGZ1bmN0aW9uICh2YWx1ZSwgYWN0aW9uTWV0YSkge1xuICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICBhcmlhU2VsZWN0aW9uOiBfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgfSwgYWN0aW9uTWV0YSlcbiAgICAgIH0pO1xuICAgIH07XG4gICAgX3RoaXMub25NZW51TW91c2VEb3duID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICBpZiAoZXZlbnQuYnV0dG9uICE9PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIF90aGlzLmZvY3VzSW5wdXQoKTtcbiAgICB9O1xuICAgIF90aGlzLm9uTWVudU1vdXNlTW92ZSA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgX3RoaXMuYmxvY2tPcHRpb25Ib3ZlciA9IGZhbHNlO1xuICAgIH07XG4gICAgX3RoaXMub25Db250cm9sTW91c2VEb3duID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAvLyBFdmVudCBjYXB0dXJlZCBieSBkcm9wZG93biBpbmRpY2F0b3JcbiAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHZhciBvcGVuTWVudU9uQ2xpY2sgPSBfdGhpcy5wcm9wcy5vcGVuTWVudU9uQ2xpY2s7XG4gICAgICBpZiAoIV90aGlzLnN0YXRlLmlzRm9jdXNlZCkge1xuICAgICAgICBpZiAob3Blbk1lbnVPbkNsaWNrKSB7XG4gICAgICAgICAgX3RoaXMub3BlbkFmdGVyRm9jdXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIF90aGlzLmZvY3VzSW5wdXQoKTtcbiAgICAgIH0gZWxzZSBpZiAoIV90aGlzLnByb3BzLm1lbnVJc09wZW4pIHtcbiAgICAgICAgaWYgKG9wZW5NZW51T25DbGljaykge1xuICAgICAgICAgIF90aGlzLm9wZW5NZW51KCdmaXJzdCcpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0LnRhZ05hbWUgIT09ICdJTlBVVCcgJiYgZXZlbnQudGFyZ2V0LnRhZ05hbWUgIT09ICdURVhUQVJFQScpIHtcbiAgICAgICAgICBfdGhpcy5vbk1lbnVDbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQudGFyZ2V0LnRhZ05hbWUgIT09ICdJTlBVVCcgJiYgZXZlbnQudGFyZ2V0LnRhZ05hbWUgIT09ICdURVhUQVJFQScpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIF90aGlzLm9uRHJvcGRvd25JbmRpY2F0b3JNb3VzZURvd24gPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgIC8vIGlnbm9yZSBtb3VzZSBldmVudHMgdGhhdCB3ZXJlbid0IHRyaWdnZXJlZCBieSB0aGUgcHJpbWFyeSBidXR0b25cbiAgICAgIGlmIChldmVudCAmJiBldmVudC50eXBlID09PSAnbW91c2Vkb3duJyAmJiBldmVudC5idXR0b24gIT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKF90aGlzLnByb3BzLmlzRGlzYWJsZWQpIHJldHVybjtcbiAgICAgIHZhciBfdGhpcyRwcm9wczQgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgaXNNdWx0aSA9IF90aGlzJHByb3BzNC5pc011bHRpLFxuICAgICAgICBtZW51SXNPcGVuID0gX3RoaXMkcHJvcHM0Lm1lbnVJc09wZW47XG4gICAgICBfdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICBpZiAobWVudUlzT3Blbikge1xuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgaW5wdXRJc0hpZGRlbkFmdGVyVXBkYXRlOiAhaXNNdWx0aVxuICAgICAgICB9KTtcbiAgICAgICAgX3RoaXMub25NZW51Q2xvc2UoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIF90aGlzLm9wZW5NZW51KCdmaXJzdCcpO1xuICAgICAgfVxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuICAgIF90aGlzLm9uQ2xlYXJJbmRpY2F0b3JNb3VzZURvd24gPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgIC8vIGlnbm9yZSBtb3VzZSBldmVudHMgdGhhdCB3ZXJlbid0IHRyaWdnZXJlZCBieSB0aGUgcHJpbWFyeSBidXR0b25cbiAgICAgIGlmIChldmVudCAmJiBldmVudC50eXBlID09PSAnbW91c2Vkb3duJyAmJiBldmVudC5idXR0b24gIT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgX3RoaXMuY2xlYXJWYWx1ZSgpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIF90aGlzLm9wZW5BZnRlckZvY3VzID0gZmFsc2U7XG4gICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3RvdWNoZW5kJykge1xuICAgICAgICBfdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIF90aGlzLm9uU2Nyb2xsID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICBpZiAodHlwZW9mIF90aGlzLnByb3BzLmNsb3NlTWVudU9uU2Nyb2xsID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgaWYgKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIGlzRG9jdW1lbnRFbGVtZW50KGV2ZW50LnRhcmdldCkpIHtcbiAgICAgICAgICBfdGhpcy5wcm9wcy5vbk1lbnVDbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBfdGhpcy5wcm9wcy5jbG9zZU1lbnVPblNjcm9sbCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpZiAoX3RoaXMucHJvcHMuY2xvc2VNZW51T25TY3JvbGwoZXZlbnQpKSB7XG4gICAgICAgICAgX3RoaXMucHJvcHMub25NZW51Q2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgX3RoaXMub25Db21wb3NpdGlvblN0YXJ0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgX3RoaXMuaXNDb21wb3NpbmcgPSB0cnVlO1xuICAgIH07XG4gICAgX3RoaXMub25Db21wb3NpdGlvbkVuZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIF90aGlzLmlzQ29tcG9zaW5nID0gZmFsc2U7XG4gICAgfTtcbiAgICBfdGhpcy5vblRvdWNoU3RhcnQgPSBmdW5jdGlvbiAoX3JlZjIpIHtcbiAgICAgIHZhciB0b3VjaGVzID0gX3JlZjIudG91Y2hlcztcbiAgICAgIHZhciB0b3VjaCA9IHRvdWNoZXMgJiYgdG91Y2hlcy5pdGVtKDApO1xuICAgICAgaWYgKCF0b3VjaCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBfdGhpcy5pbml0aWFsVG91Y2hYID0gdG91Y2guY2xpZW50WDtcbiAgICAgIF90aGlzLmluaXRpYWxUb3VjaFkgPSB0b3VjaC5jbGllbnRZO1xuICAgICAgX3RoaXMudXNlcklzRHJhZ2dpbmcgPSBmYWxzZTtcbiAgICB9O1xuICAgIF90aGlzLm9uVG91Y2hNb3ZlID0gZnVuY3Rpb24gKF9yZWYzKSB7XG4gICAgICB2YXIgdG91Y2hlcyA9IF9yZWYzLnRvdWNoZXM7XG4gICAgICB2YXIgdG91Y2ggPSB0b3VjaGVzICYmIHRvdWNoZXMuaXRlbSgwKTtcbiAgICAgIGlmICghdG91Y2gpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIGRlbHRhWCA9IE1hdGguYWJzKHRvdWNoLmNsaWVudFggLSBfdGhpcy5pbml0aWFsVG91Y2hYKTtcbiAgICAgIHZhciBkZWx0YVkgPSBNYXRoLmFicyh0b3VjaC5jbGllbnRZIC0gX3RoaXMuaW5pdGlhbFRvdWNoWSk7XG4gICAgICB2YXIgbW92ZVRocmVzaG9sZCA9IDU7XG4gICAgICBfdGhpcy51c2VySXNEcmFnZ2luZyA9IGRlbHRhWCA+IG1vdmVUaHJlc2hvbGQgfHwgZGVsdGFZID4gbW92ZVRocmVzaG9sZDtcbiAgICB9O1xuICAgIF90aGlzLm9uVG91Y2hFbmQgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgIGlmIChfdGhpcy51c2VySXNEcmFnZ2luZykgcmV0dXJuO1xuXG4gICAgICAvLyBjbG9zZSB0aGUgbWVudSBpZiB0aGUgdXNlciB0YXBzIG91dHNpZGVcbiAgICAgIC8vIHdlJ3JlIGNoZWNraW5nIG9uIGV2ZW50LnRhcmdldCBoZXJlIGluc3RlYWQgb2YgZXZlbnQuY3VycmVudFRhcmdldCwgYmVjYXVzZSB3ZSB3YW50IHRvIGFzc2VydCBpbmZvcm1hdGlvblxuICAgICAgLy8gb24gZXZlbnRzIG9uIGNoaWxkIGVsZW1lbnRzLCBub3QgdGhlIGRvY3VtZW50ICh3aGljaCB3ZSd2ZSBhdHRhY2hlZCB0aGlzIGhhbmRsZXIgdG8pLlxuICAgICAgaWYgKF90aGlzLmNvbnRyb2xSZWYgJiYgIV90aGlzLmNvbnRyb2xSZWYuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJiBfdGhpcy5tZW51TGlzdFJlZiAmJiAhX3RoaXMubWVudUxpc3RSZWYuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICBfdGhpcy5ibHVySW5wdXQoKTtcbiAgICAgIH1cblxuICAgICAgLy8gcmVzZXQgbW92ZSB2YXJzXG4gICAgICBfdGhpcy5pbml0aWFsVG91Y2hYID0gMDtcbiAgICAgIF90aGlzLmluaXRpYWxUb3VjaFkgPSAwO1xuICAgIH07XG4gICAgX3RoaXMub25Db250cm9sVG91Y2hFbmQgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgIGlmIChfdGhpcy51c2VySXNEcmFnZ2luZykgcmV0dXJuO1xuICAgICAgX3RoaXMub25Db250cm9sTW91c2VEb3duKGV2ZW50KTtcbiAgICB9O1xuICAgIF90aGlzLm9uQ2xlYXJJbmRpY2F0b3JUb3VjaEVuZCA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgaWYgKF90aGlzLnVzZXJJc0RyYWdnaW5nKSByZXR1cm47XG4gICAgICBfdGhpcy5vbkNsZWFySW5kaWNhdG9yTW91c2VEb3duKGV2ZW50KTtcbiAgICB9O1xuICAgIF90aGlzLm9uRHJvcGRvd25JbmRpY2F0b3JUb3VjaEVuZCA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgaWYgKF90aGlzLnVzZXJJc0RyYWdnaW5nKSByZXR1cm47XG4gICAgICBfdGhpcy5vbkRyb3Bkb3duSW5kaWNhdG9yTW91c2VEb3duKGV2ZW50KTtcbiAgICB9O1xuICAgIF90aGlzLmhhbmRsZUlucHV0Q2hhbmdlID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICB2YXIgcHJldklucHV0VmFsdWUgPSBfdGhpcy5wcm9wcy5pbnB1dFZhbHVlO1xuICAgICAgdmFyIGlucHV0VmFsdWUgPSBldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICBpbnB1dElzSGlkZGVuQWZ0ZXJVcGRhdGU6IGZhbHNlXG4gICAgICB9KTtcbiAgICAgIF90aGlzLm9uSW5wdXRDaGFuZ2UoaW5wdXRWYWx1ZSwge1xuICAgICAgICBhY3Rpb246ICdpbnB1dC1jaGFuZ2UnLFxuICAgICAgICBwcmV2SW5wdXRWYWx1ZTogcHJldklucHV0VmFsdWVcbiAgICAgIH0pO1xuICAgICAgaWYgKCFfdGhpcy5wcm9wcy5tZW51SXNPcGVuKSB7XG4gICAgICAgIF90aGlzLm9uTWVudU9wZW4oKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIF90aGlzLm9uSW5wdXRGb2N1cyA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgaWYgKF90aGlzLnByb3BzLm9uRm9jdXMpIHtcbiAgICAgICAgX3RoaXMucHJvcHMub25Gb2N1cyhldmVudCk7XG4gICAgICB9XG4gICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGlucHV0SXNIaWRkZW5BZnRlclVwZGF0ZTogZmFsc2UsXG4gICAgICAgIGlzRm9jdXNlZDogdHJ1ZVxuICAgICAgfSk7XG4gICAgICBpZiAoX3RoaXMub3BlbkFmdGVyRm9jdXMgfHwgX3RoaXMucHJvcHMub3Blbk1lbnVPbkZvY3VzKSB7XG4gICAgICAgIF90aGlzLm9wZW5NZW51KCdmaXJzdCcpO1xuICAgICAgfVxuICAgICAgX3RoaXMub3BlbkFmdGVyRm9jdXMgPSBmYWxzZTtcbiAgICB9O1xuICAgIF90aGlzLm9uSW5wdXRCbHVyID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICB2YXIgcHJldklucHV0VmFsdWUgPSBfdGhpcy5wcm9wcy5pbnB1dFZhbHVlO1xuICAgICAgaWYgKF90aGlzLm1lbnVMaXN0UmVmICYmIF90aGlzLm1lbnVMaXN0UmVmLmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgIF90aGlzLmlucHV0UmVmLmZvY3VzKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChfdGhpcy5wcm9wcy5vbkJsdXIpIHtcbiAgICAgICAgX3RoaXMucHJvcHMub25CbHVyKGV2ZW50KTtcbiAgICAgIH1cbiAgICAgIF90aGlzLm9uSW5wdXRDaGFuZ2UoJycsIHtcbiAgICAgICAgYWN0aW9uOiAnaW5wdXQtYmx1cicsXG4gICAgICAgIHByZXZJbnB1dFZhbHVlOiBwcmV2SW5wdXRWYWx1ZVxuICAgICAgfSk7XG4gICAgICBfdGhpcy5vbk1lbnVDbG9zZSgpO1xuICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICBmb2N1c2VkVmFsdWU6IG51bGwsXG4gICAgICAgIGlzRm9jdXNlZDogZmFsc2VcbiAgICAgIH0pO1xuICAgIH07XG4gICAgX3RoaXMub25PcHRpb25Ib3ZlciA9IGZ1bmN0aW9uIChmb2N1c2VkT3B0aW9uKSB7XG4gICAgICBpZiAoX3RoaXMuYmxvY2tPcHRpb25Ib3ZlciB8fCBfdGhpcy5zdGF0ZS5mb2N1c2VkT3B0aW9uID09PSBmb2N1c2VkT3B0aW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHZhciBvcHRpb25zID0gX3RoaXMuZ2V0Rm9jdXNhYmxlT3B0aW9ucygpO1xuICAgICAgdmFyIGZvY3VzZWRPcHRpb25JbmRleCA9IG9wdGlvbnMuaW5kZXhPZihmb2N1c2VkT3B0aW9uKTtcbiAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgZm9jdXNlZE9wdGlvbjogZm9jdXNlZE9wdGlvbixcbiAgICAgICAgZm9jdXNlZE9wdGlvbklkOiBmb2N1c2VkT3B0aW9uSW5kZXggPiAtMSA/IF90aGlzLmdldEZvY3VzZWRPcHRpb25JZChmb2N1c2VkT3B0aW9uKSA6IG51bGxcbiAgICAgIH0pO1xuICAgIH07XG4gICAgX3RoaXMuc2hvdWxkSGlkZVNlbGVjdGVkT3B0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBzaG91bGRIaWRlU2VsZWN0ZWRPcHRpb25zKF90aGlzLnByb3BzKTtcbiAgICB9O1xuICAgIF90aGlzLm9uVmFsdWVJbnB1dEZvY3VzID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBfdGhpcy5mb2N1cygpO1xuICAgIH07XG4gICAgX3RoaXMub25LZXlEb3duID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHM1ID0gX3RoaXMucHJvcHMsXG4gICAgICAgIGlzTXVsdGkgPSBfdGhpcyRwcm9wczUuaXNNdWx0aSxcbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlID0gX3RoaXMkcHJvcHM1LmJhY2tzcGFjZVJlbW92ZXNWYWx1ZSxcbiAgICAgICAgZXNjYXBlQ2xlYXJzVmFsdWUgPSBfdGhpcyRwcm9wczUuZXNjYXBlQ2xlYXJzVmFsdWUsXG4gICAgICAgIGlucHV0VmFsdWUgPSBfdGhpcyRwcm9wczUuaW5wdXRWYWx1ZSxcbiAgICAgICAgaXNDbGVhcmFibGUgPSBfdGhpcyRwcm9wczUuaXNDbGVhcmFibGUsXG4gICAgICAgIGlzRGlzYWJsZWQgPSBfdGhpcyRwcm9wczUuaXNEaXNhYmxlZCxcbiAgICAgICAgbWVudUlzT3BlbiA9IF90aGlzJHByb3BzNS5tZW51SXNPcGVuLFxuICAgICAgICBvbktleURvd24gPSBfdGhpcyRwcm9wczUub25LZXlEb3duLFxuICAgICAgICB0YWJTZWxlY3RzVmFsdWUgPSBfdGhpcyRwcm9wczUudGFiU2VsZWN0c1ZhbHVlLFxuICAgICAgICBvcGVuTWVudU9uRm9jdXMgPSBfdGhpcyRwcm9wczUub3Blbk1lbnVPbkZvY3VzO1xuICAgICAgdmFyIF90aGlzJHN0YXRlID0gX3RoaXMuc3RhdGUsXG4gICAgICAgIGZvY3VzZWRPcHRpb24gPSBfdGhpcyRzdGF0ZS5mb2N1c2VkT3B0aW9uLFxuICAgICAgICBmb2N1c2VkVmFsdWUgPSBfdGhpcyRzdGF0ZS5mb2N1c2VkVmFsdWUsXG4gICAgICAgIHNlbGVjdFZhbHVlID0gX3RoaXMkc3RhdGUuc2VsZWN0VmFsdWU7XG4gICAgICBpZiAoaXNEaXNhYmxlZCkgcmV0dXJuO1xuICAgICAgaWYgKHR5cGVvZiBvbktleURvd24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgb25LZXlEb3duKGV2ZW50KTtcbiAgICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQmxvY2sgb3B0aW9uIGhvdmVyIGV2ZW50cyB3aGVuIHRoZSB1c2VyIGhhcyBqdXN0IHByZXNzZWQgYSBrZXlcbiAgICAgIF90aGlzLmJsb2NrT3B0aW9uSG92ZXIgPSB0cnVlO1xuICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgICBpZiAoIWlzTXVsdGkgfHwgaW5wdXRWYWx1ZSkgcmV0dXJuO1xuICAgICAgICAgIF90aGlzLmZvY3VzVmFsdWUoJ3ByZXZpb3VzJyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICAgIGlmICghaXNNdWx0aSB8fCBpbnB1dFZhbHVlKSByZXR1cm47XG4gICAgICAgICAgX3RoaXMuZm9jdXNWYWx1ZSgnbmV4dCcpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdEZWxldGUnOlxuICAgICAgICBjYXNlICdCYWNrc3BhY2UnOlxuICAgICAgICAgIGlmIChpbnB1dFZhbHVlKSByZXR1cm47XG4gICAgICAgICAgaWYgKGZvY3VzZWRWYWx1ZSkge1xuICAgICAgICAgICAgX3RoaXMucmVtb3ZlVmFsdWUoZm9jdXNlZFZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFiYWNrc3BhY2VSZW1vdmVzVmFsdWUpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChpc011bHRpKSB7XG4gICAgICAgICAgICAgIF90aGlzLnBvcFZhbHVlKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzQ2xlYXJhYmxlKSB7XG4gICAgICAgICAgICAgIF90aGlzLmNsZWFyVmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgICAgaWYgKF90aGlzLmlzQ29tcG9zaW5nKSByZXR1cm47XG4gICAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5IHx8ICFtZW51SXNPcGVuIHx8ICF0YWJTZWxlY3RzVmFsdWUgfHwgIWZvY3VzZWRPcHRpb24gfHxcbiAgICAgICAgICAvLyBkb24ndCBjYXB0dXJlIHRoZSBldmVudCBpZiB0aGUgbWVudSBvcGVucyBvbiBmb2N1cyBhbmQgdGhlIGZvY3VzZWRcbiAgICAgICAgICAvLyBvcHRpb24gaXMgYWxyZWFkeSBzZWxlY3RlZDsgaXQgYnJlYWtzIHRoZSBmbG93IG9mIG5hdmlnYXRpb25cbiAgICAgICAgICBvcGVuTWVudU9uRm9jdXMgJiYgX3RoaXMuaXNPcHRpb25TZWxlY3RlZChmb2N1c2VkT3B0aW9uLCBzZWxlY3RWYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgX3RoaXMuc2VsZWN0T3B0aW9uKGZvY3VzZWRPcHRpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDIyOSkge1xuICAgICAgICAgICAgLy8gaWdub3JlIHRoZSBrZXlkb3duIGV2ZW50IGZyb20gYW4gSW5wdXQgTWV0aG9kIEVkaXRvcihJTUUpXG4gICAgICAgICAgICAvLyByZWYuIGh0dHBzOi8vd3d3LnczLm9yZy9UUi91aWV2ZW50cy8jZGV0ZXJtaW5lLWtleWRvd24ta2V5dXAta2V5Q29kZVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChtZW51SXNPcGVuKSB7XG4gICAgICAgICAgICBpZiAoIWZvY3VzZWRPcHRpb24pIHJldHVybjtcbiAgICAgICAgICAgIGlmIChfdGhpcy5pc0NvbXBvc2luZykgcmV0dXJuO1xuICAgICAgICAgICAgX3RoaXMuc2VsZWN0T3B0aW9uKGZvY3VzZWRPcHRpb24pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgICBpZiAobWVudUlzT3Blbikge1xuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICBpbnB1dElzSGlkZGVuQWZ0ZXJVcGRhdGU6IGZhbHNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIF90aGlzLm9uSW5wdXRDaGFuZ2UoJycsIHtcbiAgICAgICAgICAgICAgYWN0aW9uOiAnbWVudS1jbG9zZScsXG4gICAgICAgICAgICAgIHByZXZJbnB1dFZhbHVlOiBpbnB1dFZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIF90aGlzLm9uTWVudUNsb3NlKCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChpc0NsZWFyYWJsZSAmJiBlc2NhcGVDbGVhcnNWYWx1ZSkge1xuICAgICAgICAgICAgX3RoaXMuY2xlYXJWYWx1ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnICc6XG4gICAgICAgICAgLy8gc3BhY2VcbiAgICAgICAgICBpZiAoaW5wdXRWYWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIW1lbnVJc09wZW4pIHtcbiAgICAgICAgICAgIF90aGlzLm9wZW5NZW51KCdmaXJzdCcpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghZm9jdXNlZE9wdGlvbikgcmV0dXJuO1xuICAgICAgICAgIF90aGlzLnNlbGVjdE9wdGlvbihmb2N1c2VkT3B0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgICAgaWYgKG1lbnVJc09wZW4pIHtcbiAgICAgICAgICAgIF90aGlzLmZvY3VzT3B0aW9uKCd1cCcpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBfdGhpcy5vcGVuTWVudSgnbGFzdCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgICBpZiAobWVudUlzT3Blbikge1xuICAgICAgICAgICAgX3RoaXMuZm9jdXNPcHRpb24oJ2Rvd24nKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgX3RoaXMub3Blbk1lbnUoJ2ZpcnN0Jyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdQYWdlVXAnOlxuICAgICAgICAgIGlmICghbWVudUlzT3BlbikgcmV0dXJuO1xuICAgICAgICAgIF90aGlzLmZvY3VzT3B0aW9uKCdwYWdldXAnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnUGFnZURvd24nOlxuICAgICAgICAgIGlmICghbWVudUlzT3BlbikgcmV0dXJuO1xuICAgICAgICAgIF90aGlzLmZvY3VzT3B0aW9uKCdwYWdlZG93bicpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdIb21lJzpcbiAgICAgICAgICBpZiAoIW1lbnVJc09wZW4pIHJldHVybjtcbiAgICAgICAgICBfdGhpcy5mb2N1c09wdGlvbignZmlyc3QnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnRW5kJzpcbiAgICAgICAgICBpZiAoIW1lbnVJc09wZW4pIHJldHVybjtcbiAgICAgICAgICBfdGhpcy5mb2N1c09wdGlvbignbGFzdCcpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcbiAgICBfdGhpcy5zdGF0ZS5pbnN0YW5jZVByZWZpeCA9ICdyZWFjdC1zZWxlY3QtJyArIChfdGhpcy5wcm9wcy5pbnN0YW5jZUlkIHx8ICsraW5zdGFuY2VJZCk7XG4gICAgX3RoaXMuc3RhdGUuc2VsZWN0VmFsdWUgPSBjbGVhblZhbHVlKF9wcm9wcy52YWx1ZSk7XG4gICAgLy8gU2V0IGZvY3VzZWRPcHRpb24gaWYgbWVudUlzT3BlbiBpcyBzZXQgb24gaW5pdCAoZS5nLiBkZWZhdWx0TWVudUlzT3BlbilcbiAgICBpZiAoX3Byb3BzLm1lbnVJc09wZW4gJiYgX3RoaXMuc3RhdGUuc2VsZWN0VmFsdWUubGVuZ3RoKSB7XG4gICAgICB2YXIgZm9jdXNhYmxlT3B0aW9uc1dpdGhJZHMgPSBfdGhpcy5nZXRGb2N1c2FibGVPcHRpb25zV2l0aElkcygpO1xuICAgICAgdmFyIGZvY3VzYWJsZU9wdGlvbnMgPSBfdGhpcy5idWlsZEZvY3VzYWJsZU9wdGlvbnMoKTtcbiAgICAgIHZhciBvcHRpb25JbmRleCA9IGZvY3VzYWJsZU9wdGlvbnMuaW5kZXhPZihfdGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZVswXSk7XG4gICAgICBfdGhpcy5zdGF0ZS5mb2N1c2FibGVPcHRpb25zV2l0aElkcyA9IGZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzO1xuICAgICAgX3RoaXMuc3RhdGUuZm9jdXNlZE9wdGlvbiA9IGZvY3VzYWJsZU9wdGlvbnNbb3B0aW9uSW5kZXhdO1xuICAgICAgX3RoaXMuc3RhdGUuZm9jdXNlZE9wdGlvbklkID0gZ2V0Rm9jdXNlZE9wdGlvbklkKGZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzLCBmb2N1c2FibGVPcHRpb25zW29wdGlvbkluZGV4XSk7XG4gICAgfVxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuICBfY3JlYXRlQ2xhc3MoU2VsZWN0LCBbe1xuICAgIGtleTogXCJjb21wb25lbnREaWRNb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIHRoaXMuc3RhcnRMaXN0ZW5pbmdDb21wb3NpdGlvbigpO1xuICAgICAgdGhpcy5zdGFydExpc3RlbmluZ1RvVG91Y2goKTtcbiAgICAgIGlmICh0aGlzLnByb3BzLmNsb3NlTWVudU9uU2Nyb2xsICYmIGRvY3VtZW50ICYmIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIpIHtcbiAgICAgICAgLy8gTGlzdGVuIHRvIGFsbCBzY3JvbGwgZXZlbnRzLCBhbmQgZmlsdGVyIHRoZW0gb3V0IGluc2lkZSBvZiAnb25TY3JvbGwnXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25TY3JvbGwsIHRydWUpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucHJvcHMuYXV0b0ZvY3VzKSB7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBTY3JvbGwgZm9jdXNlZE9wdGlvbiBpbnRvIHZpZXcgaWYgbWVudUlzT3BlbiBpcyBzZXQgb24gbW91bnQgKGUuZy4gZGVmYXVsdE1lbnVJc09wZW4pXG4gICAgICBpZiAodGhpcy5wcm9wcy5tZW51SXNPcGVuICYmIHRoaXMuc3RhdGUuZm9jdXNlZE9wdGlvbiAmJiB0aGlzLm1lbnVMaXN0UmVmICYmIHRoaXMuZm9jdXNlZE9wdGlvblJlZikge1xuICAgICAgICBzY3JvbGxJbnRvVmlldyh0aGlzLm1lbnVMaXN0UmVmLCB0aGlzLmZvY3VzZWRPcHRpb25SZWYpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnREaWRVcGRhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgdmFyIF90aGlzJHByb3BzNiA9IHRoaXMucHJvcHMsXG4gICAgICAgIGlzRGlzYWJsZWQgPSBfdGhpcyRwcm9wczYuaXNEaXNhYmxlZCxcbiAgICAgICAgbWVudUlzT3BlbiA9IF90aGlzJHByb3BzNi5tZW51SXNPcGVuO1xuICAgICAgdmFyIGlzRm9jdXNlZCA9IHRoaXMuc3RhdGUuaXNGb2N1c2VkO1xuICAgICAgaWYgKFxuICAgICAgLy8gZW5zdXJlIGZvY3VzIGlzIHJlc3RvcmVkIGNvcnJlY3RseSB3aGVuIHRoZSBjb250cm9sIGJlY29tZXMgZW5hYmxlZFxuICAgICAgaXNGb2N1c2VkICYmICFpc0Rpc2FibGVkICYmIHByZXZQcm9wcy5pc0Rpc2FibGVkIHx8XG4gICAgICAvLyBlbnN1cmUgZm9jdXMgaXMgb24gdGhlIElucHV0IHdoZW4gdGhlIG1lbnUgb3BlbnNcbiAgICAgIGlzRm9jdXNlZCAmJiBtZW51SXNPcGVuICYmICFwcmV2UHJvcHMubWVudUlzT3Blbikge1xuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc0ZvY3VzZWQgJiYgaXNEaXNhYmxlZCAmJiAhcHJldlByb3BzLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgLy8gZW5zdXJlIHNlbGVjdCBzdGF0ZSBnZXRzIGJsdXJyZWQgaW4gY2FzZSBTZWxlY3QgaXMgcHJvZ3JhbW1hdGljYWxseSBkaXNhYmxlZCB3aGlsZSBmb2N1c2VkXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby1kaWQtdXBkYXRlLXNldC1zdGF0ZVxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBpc0ZvY3VzZWQ6IGZhbHNlXG4gICAgICAgIH0sIHRoaXMub25NZW51Q2xvc2UpO1xuICAgICAgfSBlbHNlIGlmICghaXNGb2N1c2VkICYmICFpc0Rpc2FibGVkICYmIHByZXZQcm9wcy5pc0Rpc2FibGVkICYmIHRoaXMuaW5wdXRSZWYgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgLy8gZW5zdXJlIHNlbGVjdCBzdGF0ZSBnZXRzIGZvY3VzZWQgaW4gY2FzZSBTZWxlY3QgaXMgcHJvZ3JhbWF0aWNhbGx5IHJlLWVuYWJsZWQgd2hpbGUgZm9jdXNlZCAoRmlyZWZveClcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLWRpZC11cGRhdGUtc2V0LXN0YXRlXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIGlzRm9jdXNlZDogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gc2Nyb2xsIHRoZSBmb2N1c2VkIG9wdGlvbiBpbnRvIHZpZXcgaWYgbmVjZXNzYXJ5XG4gICAgICBpZiAodGhpcy5tZW51TGlzdFJlZiAmJiB0aGlzLmZvY3VzZWRPcHRpb25SZWYgJiYgdGhpcy5zY3JvbGxUb0ZvY3VzZWRPcHRpb25PblVwZGF0ZSkge1xuICAgICAgICBzY3JvbGxJbnRvVmlldyh0aGlzLm1lbnVMaXN0UmVmLCB0aGlzLmZvY3VzZWRPcHRpb25SZWYpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvRm9jdXNlZE9wdGlvbk9uVXBkYXRlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdGhpcy5zdG9wTGlzdGVuaW5nQ29tcG9zaXRpb24oKTtcbiAgICAgIHRoaXMuc3RvcExpc3RlbmluZ1RvVG91Y2goKTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25TY3JvbGwsIHRydWUpO1xuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vIENvbnN1bWVyIEhhbmRsZXJzXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIH0sIHtcbiAgICBrZXk6IFwib25NZW51T3BlblwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBvbk1lbnVPcGVuKCkge1xuICAgICAgdGhpcy5wcm9wcy5vbk1lbnVPcGVuKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcIm9uTWVudUNsb3NlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIG9uTWVudUNsb3NlKCkge1xuICAgICAgdGhpcy5vbklucHV0Q2hhbmdlKCcnLCB7XG4gICAgICAgIGFjdGlvbjogJ21lbnUtY2xvc2UnLFxuICAgICAgICBwcmV2SW5wdXRWYWx1ZTogdGhpcy5wcm9wcy5pbnB1dFZhbHVlXG4gICAgICB9KTtcbiAgICAgIHRoaXMucHJvcHMub25NZW51Q2xvc2UoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwib25JbnB1dENoYW5nZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBvbklucHV0Q2hhbmdlKG5ld1ZhbHVlLCBhY3Rpb25NZXRhKSB7XG4gICAgICB0aGlzLnByb3BzLm9uSW5wdXRDaGFuZ2UobmV3VmFsdWUsIGFjdGlvbk1ldGEpO1xuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vIE1ldGhvZHNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgfSwge1xuICAgIGtleTogXCJmb2N1c0lucHV0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGZvY3VzSW5wdXQoKSB7XG4gICAgICBpZiAoIXRoaXMuaW5wdXRSZWYpIHJldHVybjtcbiAgICAgIHRoaXMuaW5wdXRSZWYuZm9jdXMoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiYmx1cklucHV0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGJsdXJJbnB1dCgpIHtcbiAgICAgIGlmICghdGhpcy5pbnB1dFJlZikgcmV0dXJuO1xuICAgICAgdGhpcy5pbnB1dFJlZi5ibHVyKCk7XG4gICAgfVxuXG4gICAgLy8gYWxpYXNlZCBmb3IgY29uc3VtZXJzXG4gIH0sIHtcbiAgICBrZXk6IFwib3Blbk1lbnVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gb3Blbk1lbnUoZm9jdXNPcHRpb24pIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuICAgICAgdmFyIF90aGlzJHN0YXRlMiA9IHRoaXMuc3RhdGUsXG4gICAgICAgIHNlbGVjdFZhbHVlID0gX3RoaXMkc3RhdGUyLnNlbGVjdFZhbHVlLFxuICAgICAgICBpc0ZvY3VzZWQgPSBfdGhpcyRzdGF0ZTIuaXNGb2N1c2VkO1xuICAgICAgdmFyIGZvY3VzYWJsZU9wdGlvbnMgPSB0aGlzLmJ1aWxkRm9jdXNhYmxlT3B0aW9ucygpO1xuICAgICAgdmFyIG9wZW5BdEluZGV4ID0gZm9jdXNPcHRpb24gPT09ICdmaXJzdCcgPyAwIDogZm9jdXNhYmxlT3B0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgaWYgKCF0aGlzLnByb3BzLmlzTXVsdGkpIHtcbiAgICAgICAgdmFyIHNlbGVjdGVkSW5kZXggPSBmb2N1c2FibGVPcHRpb25zLmluZGV4T2Yoc2VsZWN0VmFsdWVbMF0pO1xuICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgb3BlbkF0SW5kZXggPSBzZWxlY3RlZEluZGV4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIG9ubHkgc2Nyb2xsIGlmIHRoZSBtZW51IGlzbid0IGFscmVhZHkgb3BlblxuICAgICAgdGhpcy5zY3JvbGxUb0ZvY3VzZWRPcHRpb25PblVwZGF0ZSA9ICEoaXNGb2N1c2VkICYmIHRoaXMubWVudUxpc3RSZWYpO1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGlucHV0SXNIaWRkZW5BZnRlclVwZGF0ZTogZmFsc2UsXG4gICAgICAgIGZvY3VzZWRWYWx1ZTogbnVsbCxcbiAgICAgICAgZm9jdXNlZE9wdGlvbjogZm9jdXNhYmxlT3B0aW9uc1tvcGVuQXRJbmRleF0sXG4gICAgICAgIGZvY3VzZWRPcHRpb25JZDogdGhpcy5nZXRGb2N1c2VkT3B0aW9uSWQoZm9jdXNhYmxlT3B0aW9uc1tvcGVuQXRJbmRleF0pXG4gICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBfdGhpczIub25NZW51T3BlbigpO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImZvY3VzVmFsdWVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZm9jdXNWYWx1ZShkaXJlY3Rpb24pIHtcbiAgICAgIHZhciBfdGhpcyRzdGF0ZTMgPSB0aGlzLnN0YXRlLFxuICAgICAgICBzZWxlY3RWYWx1ZSA9IF90aGlzJHN0YXRlMy5zZWxlY3RWYWx1ZSxcbiAgICAgICAgZm9jdXNlZFZhbHVlID0gX3RoaXMkc3RhdGUzLmZvY3VzZWRWYWx1ZTtcblxuICAgICAgLy8gT25seSBtdWx0aXNlbGVjdHMgc3VwcG9ydCB2YWx1ZSBmb2N1c2luZ1xuICAgICAgaWYgKCF0aGlzLnByb3BzLmlzTXVsdGkpIHJldHVybjtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBmb2N1c2VkT3B0aW9uOiBudWxsXG4gICAgICB9KTtcbiAgICAgIHZhciBmb2N1c2VkSW5kZXggPSBzZWxlY3RWYWx1ZS5pbmRleE9mKGZvY3VzZWRWYWx1ZSk7XG4gICAgICBpZiAoIWZvY3VzZWRWYWx1ZSkge1xuICAgICAgICBmb2N1c2VkSW5kZXggPSAtMTtcbiAgICAgIH1cbiAgICAgIHZhciBsYXN0SW5kZXggPSBzZWxlY3RWYWx1ZS5sZW5ndGggLSAxO1xuICAgICAgdmFyIG5leHRGb2N1cyA9IC0xO1xuICAgICAgaWYgKCFzZWxlY3RWYWx1ZS5sZW5ndGgpIHJldHVybjtcbiAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XG4gICAgICAgIGNhc2UgJ3ByZXZpb3VzJzpcbiAgICAgICAgICBpZiAoZm9jdXNlZEluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAvLyBkb24ndCBjeWNsZSBmcm9tIHRoZSBzdGFydCB0byB0aGUgZW5kXG4gICAgICAgICAgICBuZXh0Rm9jdXMgPSAwO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZm9jdXNlZEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgLy8gaWYgbm90aGluZyBpcyBmb2N1c2VkLCBmb2N1cyB0aGUgbGFzdCB2YWx1ZSBmaXJzdFxuICAgICAgICAgICAgbmV4dEZvY3VzID0gbGFzdEluZGV4O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXh0Rm9jdXMgPSBmb2N1c2VkSW5kZXggLSAxO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbmV4dCc6XG4gICAgICAgICAgaWYgKGZvY3VzZWRJbmRleCA+IC0xICYmIGZvY3VzZWRJbmRleCA8IGxhc3RJbmRleCkge1xuICAgICAgICAgICAgbmV4dEZvY3VzID0gZm9jdXNlZEluZGV4ICsgMTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgaW5wdXRJc0hpZGRlbjogbmV4dEZvY3VzICE9PSAtMSxcbiAgICAgICAgZm9jdXNlZFZhbHVlOiBzZWxlY3RWYWx1ZVtuZXh0Rm9jdXNdXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZm9jdXNPcHRpb25cIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZm9jdXNPcHRpb24oKSB7XG4gICAgICB2YXIgZGlyZWN0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiAnZmlyc3QnO1xuICAgICAgdmFyIHBhZ2VTaXplID0gdGhpcy5wcm9wcy5wYWdlU2l6ZTtcbiAgICAgIHZhciBmb2N1c2VkT3B0aW9uID0gdGhpcy5zdGF0ZS5mb2N1c2VkT3B0aW9uO1xuICAgICAgdmFyIG9wdGlvbnMgPSB0aGlzLmdldEZvY3VzYWJsZU9wdGlvbnMoKTtcbiAgICAgIGlmICghb3B0aW9ucy5sZW5ndGgpIHJldHVybjtcbiAgICAgIHZhciBuZXh0Rm9jdXMgPSAwOyAvLyBoYW5kbGVzICdmaXJzdCdcbiAgICAgIHZhciBmb2N1c2VkSW5kZXggPSBvcHRpb25zLmluZGV4T2YoZm9jdXNlZE9wdGlvbik7XG4gICAgICBpZiAoIWZvY3VzZWRPcHRpb24pIHtcbiAgICAgICAgZm9jdXNlZEluZGV4ID0gLTE7XG4gICAgICB9XG4gICAgICBpZiAoZGlyZWN0aW9uID09PSAndXAnKSB7XG4gICAgICAgIG5leHRGb2N1cyA9IGZvY3VzZWRJbmRleCA+IDAgPyBmb2N1c2VkSW5kZXggLSAxIDogb3B0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICdkb3duJykge1xuICAgICAgICBuZXh0Rm9jdXMgPSAoZm9jdXNlZEluZGV4ICsgMSkgJSBvcHRpb25zLmxlbmd0aDtcbiAgICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSAncGFnZXVwJykge1xuICAgICAgICBuZXh0Rm9jdXMgPSBmb2N1c2VkSW5kZXggLSBwYWdlU2l6ZTtcbiAgICAgICAgaWYgKG5leHRGb2N1cyA8IDApIG5leHRGb2N1cyA9IDA7XG4gICAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gJ3BhZ2Vkb3duJykge1xuICAgICAgICBuZXh0Rm9jdXMgPSBmb2N1c2VkSW5kZXggKyBwYWdlU2l6ZTtcbiAgICAgICAgaWYgKG5leHRGb2N1cyA+IG9wdGlvbnMubGVuZ3RoIC0gMSkgbmV4dEZvY3VzID0gb3B0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICdsYXN0Jykge1xuICAgICAgICBuZXh0Rm9jdXMgPSBvcHRpb25zLmxlbmd0aCAtIDE7XG4gICAgICB9XG4gICAgICB0aGlzLnNjcm9sbFRvRm9jdXNlZE9wdGlvbk9uVXBkYXRlID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBmb2N1c2VkT3B0aW9uOiBvcHRpb25zW25leHRGb2N1c10sXG4gICAgICAgIGZvY3VzZWRWYWx1ZTogbnVsbCxcbiAgICAgICAgZm9jdXNlZE9wdGlvbklkOiB0aGlzLmdldEZvY3VzZWRPcHRpb25JZChvcHRpb25zW25leHRGb2N1c10pXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0VGhlbWVcIixcbiAgICB2YWx1ZTpcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBHZXR0ZXJzXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICBmdW5jdGlvbiBnZXRUaGVtZSgpIHtcbiAgICAgIC8vIFVzZSB0aGUgZGVmYXVsdCB0aGVtZSBpZiB0aGVyZSBhcmUgbm8gY3VzdG9taXNhdGlvbnMuXG4gICAgICBpZiAoIXRoaXMucHJvcHMudGhlbWUpIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRUaGVtZTtcbiAgICAgIH1cbiAgICAgIC8vIElmIHRoZSB0aGVtZSBwcm9wIGlzIGEgZnVuY3Rpb24sIGFzc3VtZSB0aGUgZnVuY3Rpb25cbiAgICAgIC8vIGtub3dzIGhvdyB0byBtZXJnZSB0aGUgcGFzc2VkLWluIGRlZmF1bHQgdGhlbWUgd2l0aFxuICAgICAgLy8gaXRzIG93biBtb2RpZmljYXRpb25zLlxuICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLnRoZW1lID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLnRoZW1lKGRlZmF1bHRUaGVtZSk7XG4gICAgICB9XG4gICAgICAvLyBPdGhlcndpc2UsIGlmIGEgcGxhaW4gdGhlbWUgb2JqZWN0IHdhcyBwYXNzZWQgaW4sXG4gICAgICAvLyBvdmVybGF5IGl0IHdpdGggdGhlIGRlZmF1bHQgdGhlbWUuXG4gICAgICByZXR1cm4gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBkZWZhdWx0VGhlbWUpLCB0aGlzLnByb3BzLnRoZW1lKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0Q29tbW9uUHJvcHNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0Q29tbW9uUHJvcHMoKSB7XG4gICAgICB2YXIgY2xlYXJWYWx1ZSA9IHRoaXMuY2xlYXJWYWx1ZSxcbiAgICAgICAgY3ggPSB0aGlzLmN4LFxuICAgICAgICBnZXRTdHlsZXMgPSB0aGlzLmdldFN0eWxlcyxcbiAgICAgICAgZ2V0Q2xhc3NOYW1lcyA9IHRoaXMuZ2V0Q2xhc3NOYW1lcyxcbiAgICAgICAgZ2V0VmFsdWUgPSB0aGlzLmdldFZhbHVlLFxuICAgICAgICBzZWxlY3RPcHRpb24gPSB0aGlzLnNlbGVjdE9wdGlvbixcbiAgICAgICAgc2V0VmFsdWUgPSB0aGlzLnNldFZhbHVlLFxuICAgICAgICBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICB2YXIgaXNNdWx0aSA9IHByb3BzLmlzTXVsdGksXG4gICAgICAgIGlzUnRsID0gcHJvcHMuaXNSdGwsXG4gICAgICAgIG9wdGlvbnMgPSBwcm9wcy5vcHRpb25zO1xuICAgICAgdmFyIGhhc1ZhbHVlID0gdGhpcy5oYXNWYWx1ZSgpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2xlYXJWYWx1ZTogY2xlYXJWYWx1ZSxcbiAgICAgICAgY3g6IGN4LFxuICAgICAgICBnZXRTdHlsZXM6IGdldFN0eWxlcyxcbiAgICAgICAgZ2V0Q2xhc3NOYW1lczogZ2V0Q2xhc3NOYW1lcyxcbiAgICAgICAgZ2V0VmFsdWU6IGdldFZhbHVlLFxuICAgICAgICBoYXNWYWx1ZTogaGFzVmFsdWUsXG4gICAgICAgIGlzTXVsdGk6IGlzTXVsdGksXG4gICAgICAgIGlzUnRsOiBpc1J0bCxcbiAgICAgICAgb3B0aW9uczogb3B0aW9ucyxcbiAgICAgICAgc2VsZWN0T3B0aW9uOiBzZWxlY3RPcHRpb24sXG4gICAgICAgIHNlbGVjdFByb3BzOiBwcm9wcyxcbiAgICAgICAgc2V0VmFsdWU6IHNldFZhbHVlLFxuICAgICAgICB0aGVtZTogdGhpcy5nZXRUaGVtZSgpXG4gICAgICB9O1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJoYXNWYWx1ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBoYXNWYWx1ZSgpIHtcbiAgICAgIHZhciBzZWxlY3RWYWx1ZSA9IHRoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XG4gICAgICByZXR1cm4gc2VsZWN0VmFsdWUubGVuZ3RoID4gMDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaGFzT3B0aW9uc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBoYXNPcHRpb25zKCkge1xuICAgICAgcmV0dXJuICEhdGhpcy5nZXRGb2N1c2FibGVPcHRpb25zKCkubGVuZ3RoO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpc0NsZWFyYWJsZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpc0NsZWFyYWJsZSgpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczcgPSB0aGlzLnByb3BzLFxuICAgICAgICBpc0NsZWFyYWJsZSA9IF90aGlzJHByb3BzNy5pc0NsZWFyYWJsZSxcbiAgICAgICAgaXNNdWx0aSA9IF90aGlzJHByb3BzNy5pc011bHRpO1xuXG4gICAgICAvLyBzaW5nbGUgc2VsZWN0LCBieSBkZWZhdWx0LCBJUyBOT1QgY2xlYXJhYmxlXG4gICAgICAvLyBtdWx0aSBzZWxlY3QsIGJ5IGRlZmF1bHQsIElTIGNsZWFyYWJsZVxuICAgICAgaWYgKGlzQ2xlYXJhYmxlID09PSB1bmRlZmluZWQpIHJldHVybiBpc011bHRpO1xuICAgICAgcmV0dXJuIGlzQ2xlYXJhYmxlO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpc09wdGlvbkRpc2FibGVkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGlzT3B0aW9uRGlzYWJsZWQob3B0aW9uLCBzZWxlY3RWYWx1ZSkge1xuICAgICAgcmV0dXJuIF9pc09wdGlvbkRpc2FibGVkKHRoaXMucHJvcHMsIG9wdGlvbiwgc2VsZWN0VmFsdWUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpc09wdGlvblNlbGVjdGVkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGlzT3B0aW9uU2VsZWN0ZWQob3B0aW9uLCBzZWxlY3RWYWx1ZSkge1xuICAgICAgcmV0dXJuIF9pc09wdGlvblNlbGVjdGVkKHRoaXMucHJvcHMsIG9wdGlvbiwgc2VsZWN0VmFsdWUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJmaWx0ZXJPcHRpb25cIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZmlsdGVyT3B0aW9uKG9wdGlvbiwgaW5wdXRWYWx1ZSkge1xuICAgICAgcmV0dXJuIF9maWx0ZXJPcHRpb24odGhpcy5wcm9wcywgb3B0aW9uLCBpbnB1dFZhbHVlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZm9ybWF0T3B0aW9uTGFiZWxcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZm9ybWF0T3B0aW9uTGFiZWwoZGF0YSwgY29udGV4dCkge1xuICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLmZvcm1hdE9wdGlvbkxhYmVsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHZhciBfaW5wdXRWYWx1ZSA9IHRoaXMucHJvcHMuaW5wdXRWYWx1ZTtcbiAgICAgICAgdmFyIF9zZWxlY3RWYWx1ZSA9IHRoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmZvcm1hdE9wdGlvbkxhYmVsKGRhdGEsIHtcbiAgICAgICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgICAgIGlucHV0VmFsdWU6IF9pbnB1dFZhbHVlLFxuICAgICAgICAgIHNlbGVjdFZhbHVlOiBfc2VsZWN0VmFsdWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRPcHRpb25MYWJlbChkYXRhKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZm9ybWF0R3JvdXBMYWJlbFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBmb3JtYXRHcm91cExhYmVsKGRhdGEpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLmZvcm1hdEdyb3VwTGFiZWwoZGF0YSk7XG4gICAgfVxuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gTW91c2UgSGFuZGxlcnNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgfSwge1xuICAgIGtleTogXCJzdGFydExpc3RlbmluZ0NvbXBvc2l0aW9uXCIsXG4gICAgdmFsdWU6XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gQ29tcG9zaXRpb24gSGFuZGxlcnNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAgIGZ1bmN0aW9uIHN0YXJ0TGlzdGVuaW5nQ29tcG9zaXRpb24oKSB7XG4gICAgICBpZiAoZG9jdW1lbnQgJiYgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcikge1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjb21wb3NpdGlvbnN0YXJ0JywgdGhpcy5vbkNvbXBvc2l0aW9uU3RhcnQsIGZhbHNlKTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY29tcG9zaXRpb25lbmQnLCB0aGlzLm9uQ29tcG9zaXRpb25FbmQsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic3RvcExpc3RlbmluZ0NvbXBvc2l0aW9uXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHN0b3BMaXN0ZW5pbmdDb21wb3NpdGlvbigpIHtcbiAgICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKSB7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NvbXBvc2l0aW9uc3RhcnQnLCB0aGlzLm9uQ29tcG9zaXRpb25TdGFydCk7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NvbXBvc2l0aW9uZW5kJywgdGhpcy5vbkNvbXBvc2l0aW9uRW5kKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic3RhcnRMaXN0ZW5pbmdUb1RvdWNoXCIsXG4gICAgdmFsdWU6XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gVG91Y2ggSGFuZGxlcnNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAgIGZ1bmN0aW9uIHN0YXJ0TGlzdGVuaW5nVG9Ub3VjaCgpIHtcbiAgICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLm9uVG91Y2hTdGFydCwgZmFsc2UpO1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLm9uVG91Y2hNb3ZlLCBmYWxzZSk7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5vblRvdWNoRW5kLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInN0b3BMaXN0ZW5pbmdUb1RvdWNoXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHN0b3BMaXN0ZW5pbmdUb1RvdWNoKCkge1xuICAgICAgaWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIpIHtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMub25Ub3VjaFN0YXJ0KTtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5vblRvdWNoTW92ZSk7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5vblRvdWNoRW5kKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVySW5wdXRcIixcbiAgICB2YWx1ZTpcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBSZW5kZXJlcnNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBmdW5jdGlvbiByZW5kZXJJbnB1dCgpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczggPSB0aGlzLnByb3BzLFxuICAgICAgICBpc0Rpc2FibGVkID0gX3RoaXMkcHJvcHM4LmlzRGlzYWJsZWQsXG4gICAgICAgIGlzU2VhcmNoYWJsZSA9IF90aGlzJHByb3BzOC5pc1NlYXJjaGFibGUsXG4gICAgICAgIGlucHV0SWQgPSBfdGhpcyRwcm9wczguaW5wdXRJZCxcbiAgICAgICAgaW5wdXRWYWx1ZSA9IF90aGlzJHByb3BzOC5pbnB1dFZhbHVlLFxuICAgICAgICB0YWJJbmRleCA9IF90aGlzJHByb3BzOC50YWJJbmRleCxcbiAgICAgICAgZm9ybSA9IF90aGlzJHByb3BzOC5mb3JtLFxuICAgICAgICBtZW51SXNPcGVuID0gX3RoaXMkcHJvcHM4Lm1lbnVJc09wZW4sXG4gICAgICAgIHJlcXVpcmVkID0gX3RoaXMkcHJvcHM4LnJlcXVpcmVkO1xuICAgICAgdmFyIF90aGlzJGdldENvbXBvbmVudHMgPSB0aGlzLmdldENvbXBvbmVudHMoKSxcbiAgICAgICAgSW5wdXQgPSBfdGhpcyRnZXRDb21wb25lbnRzLklucHV0O1xuICAgICAgdmFyIF90aGlzJHN0YXRlNCA9IHRoaXMuc3RhdGUsXG4gICAgICAgIGlucHV0SXNIaWRkZW4gPSBfdGhpcyRzdGF0ZTQuaW5wdXRJc0hpZGRlbixcbiAgICAgICAgYXJpYVNlbGVjdGlvbiA9IF90aGlzJHN0YXRlNC5hcmlhU2VsZWN0aW9uO1xuICAgICAgdmFyIGNvbW1vblByb3BzID0gdGhpcy5jb21tb25Qcm9wcztcbiAgICAgIHZhciBpZCA9IGlucHV0SWQgfHwgdGhpcy5nZXRFbGVtZW50SWQoJ2lucHV0Jyk7XG5cbiAgICAgIC8vIGFyaWEgYXR0cmlidXRlcyBtYWtlcyB0aGUgSlNYIFwibm9pc3lcIiwgc2VwYXJhdGVkIGZvciBjbGFyaXR5XG4gICAgICB2YXIgYXJpYUF0dHJpYnV0ZXMgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICdhcmlhLWF1dG9jb21wbGV0ZSc6ICdsaXN0JyxcbiAgICAgICAgJ2FyaWEtZXhwYW5kZWQnOiBtZW51SXNPcGVuLFxuICAgICAgICAnYXJpYS1oYXNwb3B1cCc6IHRydWUsXG4gICAgICAgICdhcmlhLWVycm9ybWVzc2FnZSc6IHRoaXMucHJvcHNbJ2FyaWEtZXJyb3JtZXNzYWdlJ10sXG4gICAgICAgICdhcmlhLWludmFsaWQnOiB0aGlzLnByb3BzWydhcmlhLWludmFsaWQnXSxcbiAgICAgICAgJ2FyaWEtbGFiZWwnOiB0aGlzLnByb3BzWydhcmlhLWxhYmVsJ10sXG4gICAgICAgICdhcmlhLWxhYmVsbGVkYnknOiB0aGlzLnByb3BzWydhcmlhLWxhYmVsbGVkYnknXSxcbiAgICAgICAgJ2FyaWEtcmVxdWlyZWQnOiByZXF1aXJlZCxcbiAgICAgICAgcm9sZTogJ2NvbWJvYm94JyxcbiAgICAgICAgJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCc6IHRoaXMuaXNBcHBsZURldmljZSA/IHVuZGVmaW5lZCA6IHRoaXMuc3RhdGUuZm9jdXNlZE9wdGlvbklkIHx8ICcnXG4gICAgICB9LCBtZW51SXNPcGVuICYmIHtcbiAgICAgICAgJ2FyaWEtY29udHJvbHMnOiB0aGlzLmdldEVsZW1lbnRJZCgnbGlzdGJveCcpXG4gICAgICB9KSwgIWlzU2VhcmNoYWJsZSAmJiB7XG4gICAgICAgICdhcmlhLXJlYWRvbmx5JzogdHJ1ZVxuICAgICAgfSksIHRoaXMuaGFzVmFsdWUoKSA/IChhcmlhU2VsZWN0aW9uID09PSBudWxsIHx8IGFyaWFTZWxlY3Rpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFyaWFTZWxlY3Rpb24uYWN0aW9uKSA9PT0gJ2luaXRpYWwtaW5wdXQtZm9jdXMnICYmIHtcbiAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiB0aGlzLmdldEVsZW1lbnRJZCgnbGl2ZS1yZWdpb24nKVxuICAgICAgfSA6IHtcbiAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiB0aGlzLmdldEVsZW1lbnRJZCgncGxhY2Vob2xkZXInKVxuICAgICAgfSk7XG4gICAgICBpZiAoIWlzU2VhcmNoYWJsZSkge1xuICAgICAgICAvLyB1c2UgYSBkdW1teSBpbnB1dCB0byBtYWludGFpbiBmb2N1cy9ibHVyIGZ1bmN0aW9uYWxpdHlcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KER1bW15SW5wdXQsIF9leHRlbmRzKHtcbiAgICAgICAgICBpZDogaWQsXG4gICAgICAgICAgaW5uZXJSZWY6IHRoaXMuZ2V0SW5wdXRSZWYsXG4gICAgICAgICAgb25CbHVyOiB0aGlzLm9uSW5wdXRCbHVyLFxuICAgICAgICAgIG9uQ2hhbmdlOiBub29wLFxuICAgICAgICAgIG9uRm9jdXM6IHRoaXMub25JbnB1dEZvY3VzLFxuICAgICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxuICAgICAgICAgIHRhYkluZGV4OiB0YWJJbmRleCxcbiAgICAgICAgICBpbnB1dE1vZGU6IFwibm9uZVwiLFxuICAgICAgICAgIGZvcm06IGZvcm0sXG4gICAgICAgICAgdmFsdWU6IFwiXCJcbiAgICAgICAgfSwgYXJpYUF0dHJpYnV0ZXMpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChJbnB1dCwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgIGF1dG9DYXBpdGFsaXplOiBcIm5vbmVcIixcbiAgICAgICAgYXV0b0NvbXBsZXRlOiBcIm9mZlwiLFxuICAgICAgICBhdXRvQ29ycmVjdDogXCJvZmZcIixcbiAgICAgICAgaWQ6IGlkLFxuICAgICAgICBpbm5lclJlZjogdGhpcy5nZXRJbnB1dFJlZixcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICAgICAgaXNIaWRkZW46IGlucHV0SXNIaWRkZW4sXG4gICAgICAgIG9uQmx1cjogdGhpcy5vbklucHV0Qmx1cixcbiAgICAgICAgb25DaGFuZ2U6IHRoaXMuaGFuZGxlSW5wdXRDaGFuZ2UsXG4gICAgICAgIG9uRm9jdXM6IHRoaXMub25JbnB1dEZvY3VzLFxuICAgICAgICBzcGVsbENoZWNrOiBcImZhbHNlXCIsXG4gICAgICAgIHRhYkluZGV4OiB0YWJJbmRleCxcbiAgICAgICAgZm9ybTogZm9ybSxcbiAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgIHZhbHVlOiBpbnB1dFZhbHVlXG4gICAgICB9LCBhcmlhQXR0cmlidXRlcykpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJQbGFjZWhvbGRlck9yVmFsdWVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyUGxhY2Vob2xkZXJPclZhbHVlKCkge1xuICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG4gICAgICB2YXIgX3RoaXMkZ2V0Q29tcG9uZW50czIgPSB0aGlzLmdldENvbXBvbmVudHMoKSxcbiAgICAgICAgTXVsdGlWYWx1ZSA9IF90aGlzJGdldENvbXBvbmVudHMyLk11bHRpVmFsdWUsXG4gICAgICAgIE11bHRpVmFsdWVDb250YWluZXIgPSBfdGhpcyRnZXRDb21wb25lbnRzMi5NdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICBNdWx0aVZhbHVlTGFiZWwgPSBfdGhpcyRnZXRDb21wb25lbnRzMi5NdWx0aVZhbHVlTGFiZWwsXG4gICAgICAgIE11bHRpVmFsdWVSZW1vdmUgPSBfdGhpcyRnZXRDb21wb25lbnRzMi5NdWx0aVZhbHVlUmVtb3ZlLFxuICAgICAgICBTaW5nbGVWYWx1ZSA9IF90aGlzJGdldENvbXBvbmVudHMyLlNpbmdsZVZhbHVlLFxuICAgICAgICBQbGFjZWhvbGRlciA9IF90aGlzJGdldENvbXBvbmVudHMyLlBsYWNlaG9sZGVyO1xuICAgICAgdmFyIGNvbW1vblByb3BzID0gdGhpcy5jb21tb25Qcm9wcztcbiAgICAgIHZhciBfdGhpcyRwcm9wczkgPSB0aGlzLnByb3BzLFxuICAgICAgICBjb250cm9sU2hvdWxkUmVuZGVyVmFsdWUgPSBfdGhpcyRwcm9wczkuY29udHJvbFNob3VsZFJlbmRlclZhbHVlLFxuICAgICAgICBpc0Rpc2FibGVkID0gX3RoaXMkcHJvcHM5LmlzRGlzYWJsZWQsXG4gICAgICAgIGlzTXVsdGkgPSBfdGhpcyRwcm9wczkuaXNNdWx0aSxcbiAgICAgICAgaW5wdXRWYWx1ZSA9IF90aGlzJHByb3BzOS5pbnB1dFZhbHVlLFxuICAgICAgICBwbGFjZWhvbGRlciA9IF90aGlzJHByb3BzOS5wbGFjZWhvbGRlcjtcbiAgICAgIHZhciBfdGhpcyRzdGF0ZTUgPSB0aGlzLnN0YXRlLFxuICAgICAgICBzZWxlY3RWYWx1ZSA9IF90aGlzJHN0YXRlNS5zZWxlY3RWYWx1ZSxcbiAgICAgICAgZm9jdXNlZFZhbHVlID0gX3RoaXMkc3RhdGU1LmZvY3VzZWRWYWx1ZSxcbiAgICAgICAgaXNGb2N1c2VkID0gX3RoaXMkc3RhdGU1LmlzRm9jdXNlZDtcbiAgICAgIGlmICghdGhpcy5oYXNWYWx1ZSgpIHx8ICFjb250cm9sU2hvdWxkUmVuZGVyVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0VmFsdWUgPyBudWxsIDogLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUGxhY2Vob2xkZXIsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICAgIGtleTogXCJwbGFjZWhvbGRlclwiLFxuICAgICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWQsXG4gICAgICAgICAgaW5uZXJQcm9wczoge1xuICAgICAgICAgICAgaWQ6IHRoaXMuZ2V0RWxlbWVudElkKCdwbGFjZWhvbGRlcicpXG4gICAgICAgICAgfVxuICAgICAgICB9KSwgcGxhY2Vob2xkZXIpO1xuICAgICAgfVxuICAgICAgaWYgKGlzTXVsdGkpIHtcbiAgICAgICAgcmV0dXJuIHNlbGVjdFZhbHVlLm1hcChmdW5jdGlvbiAob3B0LCBpbmRleCkge1xuICAgICAgICAgIHZhciBpc09wdGlvbkZvY3VzZWQgPSBvcHQgPT09IGZvY3VzZWRWYWx1ZTtcbiAgICAgICAgICB2YXIga2V5ID0gXCJcIi5jb25jYXQoX3RoaXMzLmdldE9wdGlvbkxhYmVsKG9wdCksIFwiLVwiKS5jb25jYXQoX3RoaXMzLmdldE9wdGlvblZhbHVlKG9wdCkpO1xuICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChNdWx0aVZhbHVlLCBfZXh0ZW5kcyh7fSwgY29tbW9uUHJvcHMsIHtcbiAgICAgICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgICAgQ29udGFpbmVyOiBNdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICAgICAgICBMYWJlbDogTXVsdGlWYWx1ZUxhYmVsLFxuICAgICAgICAgICAgICBSZW1vdmU6IE11bHRpVmFsdWVSZW1vdmVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpc0ZvY3VzZWQ6IGlzT3B0aW9uRm9jdXNlZCxcbiAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgIHJlbW92ZVByb3BzOiB7XG4gICAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF90aGlzMy5yZW1vdmVWYWx1ZShvcHQpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBvblRvdWNoRW5kOiBmdW5jdGlvbiBvblRvdWNoRW5kKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfdGhpczMucmVtb3ZlVmFsdWUob3B0KTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgb25Nb3VzZURvd246IGZ1bmN0aW9uIG9uTW91c2VEb3duKGUpIHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkYXRhOiBvcHRcbiAgICAgICAgICB9KSwgX3RoaXMzLmZvcm1hdE9wdGlvbkxhYmVsKG9wdCwgJ3ZhbHVlJykpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChpbnB1dFZhbHVlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgdmFyIHNpbmdsZVZhbHVlID0gc2VsZWN0VmFsdWVbMF07XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoU2luZ2xlVmFsdWUsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICBkYXRhOiBzaW5nbGVWYWx1ZSxcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZFxuICAgICAgfSksIHRoaXMuZm9ybWF0T3B0aW9uTGFiZWwoc2luZ2xlVmFsdWUsICd2YWx1ZScpKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyQ2xlYXJJbmRpY2F0b3JcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyQ2xlYXJJbmRpY2F0b3IoKSB7XG4gICAgICB2YXIgX3RoaXMkZ2V0Q29tcG9uZW50czMgPSB0aGlzLmdldENvbXBvbmVudHMoKSxcbiAgICAgICAgQ2xlYXJJbmRpY2F0b3IgPSBfdGhpcyRnZXRDb21wb25lbnRzMy5DbGVhckluZGljYXRvcjtcbiAgICAgIHZhciBjb21tb25Qcm9wcyA9IHRoaXMuY29tbW9uUHJvcHM7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMxMCA9IHRoaXMucHJvcHMsXG4gICAgICAgIGlzRGlzYWJsZWQgPSBfdGhpcyRwcm9wczEwLmlzRGlzYWJsZWQsXG4gICAgICAgIGlzTG9hZGluZyA9IF90aGlzJHByb3BzMTAuaXNMb2FkaW5nO1xuICAgICAgdmFyIGlzRm9jdXNlZCA9IHRoaXMuc3RhdGUuaXNGb2N1c2VkO1xuICAgICAgaWYgKCF0aGlzLmlzQ2xlYXJhYmxlKCkgfHwgIUNsZWFySW5kaWNhdG9yIHx8IGlzRGlzYWJsZWQgfHwgIXRoaXMuaGFzVmFsdWUoKSB8fCBpc0xvYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICB2YXIgaW5uZXJQcm9wcyA9IHtcbiAgICAgICAgb25Nb3VzZURvd246IHRoaXMub25DbGVhckluZGljYXRvck1vdXNlRG93bixcbiAgICAgICAgb25Ub3VjaEVuZDogdGhpcy5vbkNsZWFySW5kaWNhdG9yVG91Y2hFbmQsXG4gICAgICAgICdhcmlhLWhpZGRlbic6ICd0cnVlJ1xuICAgICAgfTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChDbGVhckluZGljYXRvciwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgIGlubmVyUHJvcHM6IGlubmVyUHJvcHMsXG4gICAgICAgIGlzRm9jdXNlZDogaXNGb2N1c2VkXG4gICAgICB9KSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlckxvYWRpbmdJbmRpY2F0b3JcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyTG9hZGluZ0luZGljYXRvcigpIHtcbiAgICAgIHZhciBfdGhpcyRnZXRDb21wb25lbnRzNCA9IHRoaXMuZ2V0Q29tcG9uZW50cygpLFxuICAgICAgICBMb2FkaW5nSW5kaWNhdG9yID0gX3RoaXMkZ2V0Q29tcG9uZW50czQuTG9hZGluZ0luZGljYXRvcjtcbiAgICAgIHZhciBjb21tb25Qcm9wcyA9IHRoaXMuY29tbW9uUHJvcHM7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMxMSA9IHRoaXMucHJvcHMsXG4gICAgICAgIGlzRGlzYWJsZWQgPSBfdGhpcyRwcm9wczExLmlzRGlzYWJsZWQsXG4gICAgICAgIGlzTG9hZGluZyA9IF90aGlzJHByb3BzMTEuaXNMb2FkaW5nO1xuICAgICAgdmFyIGlzRm9jdXNlZCA9IHRoaXMuc3RhdGUuaXNGb2N1c2VkO1xuICAgICAgaWYgKCFMb2FkaW5nSW5kaWNhdG9yIHx8ICFpc0xvYWRpbmcpIHJldHVybiBudWxsO1xuICAgICAgdmFyIGlubmVyUHJvcHMgPSB7XG4gICAgICAgICdhcmlhLWhpZGRlbic6ICd0cnVlJ1xuICAgICAgfTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChMb2FkaW5nSW5kaWNhdG9yLCBfZXh0ZW5kcyh7fSwgY29tbW9uUHJvcHMsIHtcbiAgICAgICAgaW5uZXJQcm9wczogaW5uZXJQcm9wcyxcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICAgICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWRcbiAgICAgIH0pKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVySW5kaWNhdG9yU2VwYXJhdG9yXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlckluZGljYXRvclNlcGFyYXRvcigpIHtcbiAgICAgIHZhciBfdGhpcyRnZXRDb21wb25lbnRzNSA9IHRoaXMuZ2V0Q29tcG9uZW50cygpLFxuICAgICAgICBEcm9wZG93bkluZGljYXRvciA9IF90aGlzJGdldENvbXBvbmVudHM1LkRyb3Bkb3duSW5kaWNhdG9yLFxuICAgICAgICBJbmRpY2F0b3JTZXBhcmF0b3IgPSBfdGhpcyRnZXRDb21wb25lbnRzNS5JbmRpY2F0b3JTZXBhcmF0b3I7XG5cbiAgICAgIC8vIHNlcGFyYXRvciBkb2Vzbid0IG1ha2Ugc2Vuc2Ugd2l0aG91dCB0aGUgZHJvcGRvd24gaW5kaWNhdG9yXG4gICAgICBpZiAoIURyb3Bkb3duSW5kaWNhdG9yIHx8ICFJbmRpY2F0b3JTZXBhcmF0b3IpIHJldHVybiBudWxsO1xuICAgICAgdmFyIGNvbW1vblByb3BzID0gdGhpcy5jb21tb25Qcm9wcztcbiAgICAgIHZhciBpc0Rpc2FibGVkID0gdGhpcy5wcm9wcy5pc0Rpc2FibGVkO1xuICAgICAgdmFyIGlzRm9jdXNlZCA9IHRoaXMuc3RhdGUuaXNGb2N1c2VkO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEluZGljYXRvclNlcGFyYXRvciwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgIGlzRm9jdXNlZDogaXNGb2N1c2VkXG4gICAgICB9KSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlckRyb3Bkb3duSW5kaWNhdG9yXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlckRyb3Bkb3duSW5kaWNhdG9yKCkge1xuICAgICAgdmFyIF90aGlzJGdldENvbXBvbmVudHM2ID0gdGhpcy5nZXRDb21wb25lbnRzKCksXG4gICAgICAgIERyb3Bkb3duSW5kaWNhdG9yID0gX3RoaXMkZ2V0Q29tcG9uZW50czYuRHJvcGRvd25JbmRpY2F0b3I7XG4gICAgICBpZiAoIURyb3Bkb3duSW5kaWNhdG9yKSByZXR1cm4gbnVsbDtcbiAgICAgIHZhciBjb21tb25Qcm9wcyA9IHRoaXMuY29tbW9uUHJvcHM7XG4gICAgICB2YXIgaXNEaXNhYmxlZCA9IHRoaXMucHJvcHMuaXNEaXNhYmxlZDtcbiAgICAgIHZhciBpc0ZvY3VzZWQgPSB0aGlzLnN0YXRlLmlzRm9jdXNlZDtcbiAgICAgIHZhciBpbm5lclByb3BzID0ge1xuICAgICAgICBvbk1vdXNlRG93bjogdGhpcy5vbkRyb3Bkb3duSW5kaWNhdG9yTW91c2VEb3duLFxuICAgICAgICBvblRvdWNoRW5kOiB0aGlzLm9uRHJvcGRvd25JbmRpY2F0b3JUb3VjaEVuZCxcbiAgICAgICAgJ2FyaWEtaGlkZGVuJzogJ3RydWUnXG4gICAgICB9O1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KERyb3Bkb3duSW5kaWNhdG9yLCBfZXh0ZW5kcyh7fSwgY29tbW9uUHJvcHMsIHtcbiAgICAgICAgaW5uZXJQcm9wczogaW5uZXJQcm9wcyxcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICAgICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWRcbiAgICAgIH0pKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyTWVudVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXJNZW51KCkge1xuICAgICAgdmFyIF90aGlzNCA9IHRoaXM7XG4gICAgICB2YXIgX3RoaXMkZ2V0Q29tcG9uZW50czcgPSB0aGlzLmdldENvbXBvbmVudHMoKSxcbiAgICAgICAgR3JvdXAgPSBfdGhpcyRnZXRDb21wb25lbnRzNy5Hcm91cCxcbiAgICAgICAgR3JvdXBIZWFkaW5nID0gX3RoaXMkZ2V0Q29tcG9uZW50czcuR3JvdXBIZWFkaW5nLFxuICAgICAgICBNZW51ID0gX3RoaXMkZ2V0Q29tcG9uZW50czcuTWVudSxcbiAgICAgICAgTWVudUxpc3QgPSBfdGhpcyRnZXRDb21wb25lbnRzNy5NZW51TGlzdCxcbiAgICAgICAgTWVudVBvcnRhbCA9IF90aGlzJGdldENvbXBvbmVudHM3Lk1lbnVQb3J0YWwsXG4gICAgICAgIExvYWRpbmdNZXNzYWdlID0gX3RoaXMkZ2V0Q29tcG9uZW50czcuTG9hZGluZ01lc3NhZ2UsXG4gICAgICAgIE5vT3B0aW9uc01lc3NhZ2UgPSBfdGhpcyRnZXRDb21wb25lbnRzNy5Ob09wdGlvbnNNZXNzYWdlLFxuICAgICAgICBPcHRpb24gPSBfdGhpcyRnZXRDb21wb25lbnRzNy5PcHRpb247XG4gICAgICB2YXIgY29tbW9uUHJvcHMgPSB0aGlzLmNvbW1vblByb3BzO1xuICAgICAgdmFyIGZvY3VzZWRPcHRpb24gPSB0aGlzLnN0YXRlLmZvY3VzZWRPcHRpb247XG4gICAgICB2YXIgX3RoaXMkcHJvcHMxMiA9IHRoaXMucHJvcHMsXG4gICAgICAgIGNhcHR1cmVNZW51U2Nyb2xsID0gX3RoaXMkcHJvcHMxMi5jYXB0dXJlTWVudVNjcm9sbCxcbiAgICAgICAgaW5wdXRWYWx1ZSA9IF90aGlzJHByb3BzMTIuaW5wdXRWYWx1ZSxcbiAgICAgICAgaXNMb2FkaW5nID0gX3RoaXMkcHJvcHMxMi5pc0xvYWRpbmcsXG4gICAgICAgIGxvYWRpbmdNZXNzYWdlID0gX3RoaXMkcHJvcHMxMi5sb2FkaW5nTWVzc2FnZSxcbiAgICAgICAgbWluTWVudUhlaWdodCA9IF90aGlzJHByb3BzMTIubWluTWVudUhlaWdodCxcbiAgICAgICAgbWF4TWVudUhlaWdodCA9IF90aGlzJHByb3BzMTIubWF4TWVudUhlaWdodCxcbiAgICAgICAgbWVudUlzT3BlbiA9IF90aGlzJHByb3BzMTIubWVudUlzT3BlbixcbiAgICAgICAgbWVudVBsYWNlbWVudCA9IF90aGlzJHByb3BzMTIubWVudVBsYWNlbWVudCxcbiAgICAgICAgbWVudVBvc2l0aW9uID0gX3RoaXMkcHJvcHMxMi5tZW51UG9zaXRpb24sXG4gICAgICAgIG1lbnVQb3J0YWxUYXJnZXQgPSBfdGhpcyRwcm9wczEyLm1lbnVQb3J0YWxUYXJnZXQsXG4gICAgICAgIG1lbnVTaG91bGRCbG9ja1Njcm9sbCA9IF90aGlzJHByb3BzMTIubWVudVNob3VsZEJsb2NrU2Nyb2xsLFxuICAgICAgICBtZW51U2hvdWxkU2Nyb2xsSW50b1ZpZXcgPSBfdGhpcyRwcm9wczEyLm1lbnVTaG91bGRTY3JvbGxJbnRvVmlldyxcbiAgICAgICAgbm9PcHRpb25zTWVzc2FnZSA9IF90aGlzJHByb3BzMTIubm9PcHRpb25zTWVzc2FnZSxcbiAgICAgICAgb25NZW51U2Nyb2xsVG9Ub3AgPSBfdGhpcyRwcm9wczEyLm9uTWVudVNjcm9sbFRvVG9wLFxuICAgICAgICBvbk1lbnVTY3JvbGxUb0JvdHRvbSA9IF90aGlzJHByb3BzMTIub25NZW51U2Nyb2xsVG9Cb3R0b207XG4gICAgICBpZiAoIW1lbnVJc09wZW4pIHJldHVybiBudWxsO1xuXG4gICAgICAvLyBUT0RPOiBJbnRlcm5hbCBPcHRpb24gVHlwZSBoZXJlXG4gICAgICB2YXIgcmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKHByb3BzLCBpZCkge1xuICAgICAgICB2YXIgdHlwZSA9IHByb3BzLnR5cGUsXG4gICAgICAgICAgZGF0YSA9IHByb3BzLmRhdGEsXG4gICAgICAgICAgaXNEaXNhYmxlZCA9IHByb3BzLmlzRGlzYWJsZWQsXG4gICAgICAgICAgaXNTZWxlY3RlZCA9IHByb3BzLmlzU2VsZWN0ZWQsXG4gICAgICAgICAgbGFiZWwgPSBwcm9wcy5sYWJlbCxcbiAgICAgICAgICB2YWx1ZSA9IHByb3BzLnZhbHVlO1xuICAgICAgICB2YXIgaXNGb2N1c2VkID0gZm9jdXNlZE9wdGlvbiA9PT0gZGF0YTtcbiAgICAgICAgdmFyIG9uSG92ZXIgPSBpc0Rpc2FibGVkID8gdW5kZWZpbmVkIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBfdGhpczQub25PcHRpb25Ib3ZlcihkYXRhKTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIG9uU2VsZWN0ID0gaXNEaXNhYmxlZCA/IHVuZGVmaW5lZCA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXM0LnNlbGVjdE9wdGlvbihkYXRhKTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIG9wdGlvbklkID0gXCJcIi5jb25jYXQoX3RoaXM0LmdldEVsZW1lbnRJZCgnb3B0aW9uJyksIFwiLVwiKS5jb25jYXQoaWQpO1xuICAgICAgICB2YXIgaW5uZXJQcm9wcyA9IHtcbiAgICAgICAgICBpZDogb3B0aW9uSWQsXG4gICAgICAgICAgb25DbGljazogb25TZWxlY3QsXG4gICAgICAgICAgb25Nb3VzZU1vdmU6IG9uSG92ZXIsXG4gICAgICAgICAgb25Nb3VzZU92ZXI6IG9uSG92ZXIsXG4gICAgICAgICAgdGFiSW5kZXg6IC0xLFxuICAgICAgICAgIHJvbGU6ICdvcHRpb24nLFxuICAgICAgICAgICdhcmlhLXNlbGVjdGVkJzogX3RoaXM0LmlzQXBwbGVEZXZpY2UgPyB1bmRlZmluZWQgOiBpc1NlbGVjdGVkIC8vIGlzIG5vdCBzdXBwb3J0ZWQgb24gQXBwbGUgZGV2aWNlc1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChPcHRpb24sIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICAgIGlubmVyUHJvcHM6IGlubmVyUHJvcHMsXG4gICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLFxuICAgICAgICAgIGlzU2VsZWN0ZWQ6IGlzU2VsZWN0ZWQsXG4gICAgICAgICAga2V5OiBvcHRpb25JZCxcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXG4gICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWQsXG4gICAgICAgICAgaW5uZXJSZWY6IGlzRm9jdXNlZCA/IF90aGlzNC5nZXRGb2N1c2VkT3B0aW9uUmVmIDogdW5kZWZpbmVkXG4gICAgICAgIH0pLCBfdGhpczQuZm9ybWF0T3B0aW9uTGFiZWwocHJvcHMuZGF0YSwgJ21lbnUnKSk7XG4gICAgICB9O1xuICAgICAgdmFyIG1lbnVVSTtcbiAgICAgIGlmICh0aGlzLmhhc09wdGlvbnMoKSkge1xuICAgICAgICBtZW51VUkgPSB0aGlzLmdldENhdGVnb3JpemVkT3B0aW9ucygpLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdncm91cCcpIHtcbiAgICAgICAgICAgIHZhciBfZGF0YSA9IGl0ZW0uZGF0YSxcbiAgICAgICAgICAgICAgb3B0aW9ucyA9IGl0ZW0ub3B0aW9ucyxcbiAgICAgICAgICAgICAgZ3JvdXBJbmRleCA9IGl0ZW0uaW5kZXg7XG4gICAgICAgICAgICB2YXIgZ3JvdXBJZCA9IFwiXCIuY29uY2F0KF90aGlzNC5nZXRFbGVtZW50SWQoJ2dyb3VwJyksIFwiLVwiKS5jb25jYXQoZ3JvdXBJbmRleCk7XG4gICAgICAgICAgICB2YXIgaGVhZGluZ0lkID0gXCJcIi5jb25jYXQoZ3JvdXBJZCwgXCItaGVhZGluZ1wiKTtcbiAgICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChHcm91cCwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgICAgICAgIGtleTogZ3JvdXBJZCxcbiAgICAgICAgICAgICAgZGF0YTogX2RhdGEsXG4gICAgICAgICAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICAgICAgICAgIEhlYWRpbmc6IEdyb3VwSGVhZGluZyxcbiAgICAgICAgICAgICAgaGVhZGluZ1Byb3BzOiB7XG4gICAgICAgICAgICAgICAgaWQ6IGhlYWRpbmdJZCxcbiAgICAgICAgICAgICAgICBkYXRhOiBpdGVtLmRhdGFcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgbGFiZWw6IF90aGlzNC5mb3JtYXRHcm91cExhYmVsKGl0ZW0uZGF0YSlcbiAgICAgICAgICAgIH0pLCBpdGVtLm9wdGlvbnMubWFwKGZ1bmN0aW9uIChvcHRpb24pIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlbmRlcihvcHRpb24sIFwiXCIuY29uY2F0KGdyb3VwSW5kZXgsIFwiLVwiKS5jb25jYXQob3B0aW9uLmluZGV4KSk7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09ICdvcHRpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVuZGVyKGl0ZW0sIFwiXCIuY29uY2F0KGl0ZW0uaW5kZXgpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChpc0xvYWRpbmcpIHtcbiAgICAgICAgdmFyIG1lc3NhZ2UgPSBsb2FkaW5nTWVzc2FnZSh7XG4gICAgICAgICAgaW5wdXRWYWx1ZTogaW5wdXRWYWx1ZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKG1lc3NhZ2UgPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgICAgICBtZW51VUkgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChMb2FkaW5nTWVzc2FnZSwgY29tbW9uUHJvcHMsIG1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIF9tZXNzYWdlID0gbm9PcHRpb25zTWVzc2FnZSh7XG4gICAgICAgICAgaW5wdXRWYWx1ZTogaW5wdXRWYWx1ZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKF9tZXNzYWdlID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgbWVudVVJID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoTm9PcHRpb25zTWVzc2FnZSwgY29tbW9uUHJvcHMsIF9tZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIHZhciBtZW51UGxhY2VtZW50UHJvcHMgPSB7XG4gICAgICAgIG1pbk1lbnVIZWlnaHQ6IG1pbk1lbnVIZWlnaHQsXG4gICAgICAgIG1heE1lbnVIZWlnaHQ6IG1heE1lbnVIZWlnaHQsXG4gICAgICAgIG1lbnVQbGFjZW1lbnQ6IG1lbnVQbGFjZW1lbnQsXG4gICAgICAgIG1lbnVQb3NpdGlvbjogbWVudVBvc2l0aW9uLFxuICAgICAgICBtZW51U2hvdWxkU2Nyb2xsSW50b1ZpZXc6IG1lbnVTaG91bGRTY3JvbGxJbnRvVmlld1xuICAgICAgfTtcbiAgICAgIHZhciBtZW51RWxlbWVudCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KE1lbnVQbGFjZXIsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywgbWVudVBsYWNlbWVudFByb3BzKSwgZnVuY3Rpb24gKF9yZWY0KSB7XG4gICAgICAgIHZhciByZWYgPSBfcmVmNC5yZWYsXG4gICAgICAgICAgX3JlZjQkcGxhY2VyUHJvcHMgPSBfcmVmNC5wbGFjZXJQcm9wcyxcbiAgICAgICAgICBwbGFjZW1lbnQgPSBfcmVmNCRwbGFjZXJQcm9wcy5wbGFjZW1lbnQsXG4gICAgICAgICAgbWF4SGVpZ2h0ID0gX3JlZjQkcGxhY2VyUHJvcHMubWF4SGVpZ2h0O1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoTWVudSwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCBtZW51UGxhY2VtZW50UHJvcHMsIHtcbiAgICAgICAgICBpbm5lclJlZjogcmVmLFxuICAgICAgICAgIGlubmVyUHJvcHM6IHtcbiAgICAgICAgICAgIG9uTW91c2VEb3duOiBfdGhpczQub25NZW51TW91c2VEb3duLFxuICAgICAgICAgICAgb25Nb3VzZU1vdmU6IF90aGlzNC5vbk1lbnVNb3VzZU1vdmVcbiAgICAgICAgICB9LFxuICAgICAgICAgIGlzTG9hZGluZzogaXNMb2FkaW5nLFxuICAgICAgICAgIHBsYWNlbWVudDogcGxhY2VtZW50XG4gICAgICAgIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChTY3JvbGxNYW5hZ2VyLCB7XG4gICAgICAgICAgY2FwdHVyZUVuYWJsZWQ6IGNhcHR1cmVNZW51U2Nyb2xsLFxuICAgICAgICAgIG9uVG9wQXJyaXZlOiBvbk1lbnVTY3JvbGxUb1RvcCxcbiAgICAgICAgICBvbkJvdHRvbUFycml2ZTogb25NZW51U2Nyb2xsVG9Cb3R0b20sXG4gICAgICAgICAgbG9ja0VuYWJsZWQ6IG1lbnVTaG91bGRCbG9ja1Njcm9sbFxuICAgICAgICB9LCBmdW5jdGlvbiAoc2Nyb2xsVGFyZ2V0UmVmKSB7XG4gICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KE1lbnVMaXN0LCBfZXh0ZW5kcyh7fSwgY29tbW9uUHJvcHMsIHtcbiAgICAgICAgICAgIGlubmVyUmVmOiBmdW5jdGlvbiBpbm5lclJlZihpbnN0YW5jZSkge1xuICAgICAgICAgICAgICBfdGhpczQuZ2V0TWVudUxpc3RSZWYoaW5zdGFuY2UpO1xuICAgICAgICAgICAgICBzY3JvbGxUYXJnZXRSZWYoaW5zdGFuY2UpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlubmVyUHJvcHM6IHtcbiAgICAgICAgICAgICAgcm9sZTogJ2xpc3Rib3gnLFxuICAgICAgICAgICAgICAnYXJpYS1tdWx0aXNlbGVjdGFibGUnOiBjb21tb25Qcm9wcy5pc011bHRpLFxuICAgICAgICAgICAgICBpZDogX3RoaXM0LmdldEVsZW1lbnRJZCgnbGlzdGJveCcpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNMb2FkaW5nOiBpc0xvYWRpbmcsXG4gICAgICAgICAgICBtYXhIZWlnaHQ6IG1heEhlaWdodCxcbiAgICAgICAgICAgIGZvY3VzZWRPcHRpb246IGZvY3VzZWRPcHRpb25cbiAgICAgICAgICB9KSwgbWVudVVJKTtcbiAgICAgICAgfSkpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIHBvc2l0aW9uaW5nIGJlaGF2aW91ciBpcyBhbG1vc3QgaWRlbnRpY2FsIGZvciBwb3J0YWxsZWQgYW5kIGZpeGVkLFxuICAgICAgLy8gc28gd2UgdXNlIHRoZSBzYW1lIGNvbXBvbmVudC4gdGhlIGFjdHVhbCBwb3J0YWxsaW5nIGxvZ2ljIGlzIGZvcmtlZFxuICAgICAgLy8gd2l0aGluIHRoZSBjb21wb25lbnQgYmFzZWQgb24gYG1lbnVQb3NpdGlvbmBcbiAgICAgIHJldHVybiBtZW51UG9ydGFsVGFyZ2V0IHx8IG1lbnVQb3NpdGlvbiA9PT0gJ2ZpeGVkJyA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KE1lbnVQb3J0YWwsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICBhcHBlbmRUbzogbWVudVBvcnRhbFRhcmdldCxcbiAgICAgICAgY29udHJvbEVsZW1lbnQ6IHRoaXMuY29udHJvbFJlZixcbiAgICAgICAgbWVudVBsYWNlbWVudDogbWVudVBsYWNlbWVudCxcbiAgICAgICAgbWVudVBvc2l0aW9uOiBtZW51UG9zaXRpb25cbiAgICAgIH0pLCBtZW51RWxlbWVudCkgOiBtZW51RWxlbWVudDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyRm9ybUZpZWxkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlckZvcm1GaWVsZCgpIHtcbiAgICAgIHZhciBfdGhpczUgPSB0aGlzO1xuICAgICAgdmFyIF90aGlzJHByb3BzMTMgPSB0aGlzLnByb3BzLFxuICAgICAgICBkZWxpbWl0ZXIgPSBfdGhpcyRwcm9wczEzLmRlbGltaXRlcixcbiAgICAgICAgaXNEaXNhYmxlZCA9IF90aGlzJHByb3BzMTMuaXNEaXNhYmxlZCxcbiAgICAgICAgaXNNdWx0aSA9IF90aGlzJHByb3BzMTMuaXNNdWx0aSxcbiAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzMTMubmFtZSxcbiAgICAgICAgcmVxdWlyZWQgPSBfdGhpcyRwcm9wczEzLnJlcXVpcmVkO1xuICAgICAgdmFyIHNlbGVjdFZhbHVlID0gdGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZTtcbiAgICAgIGlmIChyZXF1aXJlZCAmJiAhdGhpcy5oYXNWYWx1ZSgpICYmICFpc0Rpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChSZXF1aXJlZElucHV0JDEsIHtcbiAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgIG9uRm9jdXM6IHRoaXMub25WYWx1ZUlucHV0Rm9jdXNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAoIW5hbWUgfHwgaXNEaXNhYmxlZCkgcmV0dXJuO1xuICAgICAgaWYgKGlzTXVsdGkpIHtcbiAgICAgICAgaWYgKGRlbGltaXRlcikge1xuICAgICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdFZhbHVlLm1hcChmdW5jdGlvbiAob3B0KSB7XG4gICAgICAgICAgICByZXR1cm4gX3RoaXM1LmdldE9wdGlvblZhbHVlKG9wdCk7XG4gICAgICAgICAgfSkuam9pbihkZWxpbWl0ZXIpO1xuICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHtcbiAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICB0eXBlOiBcImhpZGRlblwiLFxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIGlucHV0ID0gc2VsZWN0VmFsdWUubGVuZ3RoID4gMCA/IHNlbGVjdFZhbHVlLm1hcChmdW5jdGlvbiAob3B0LCBpKSB7XG4gICAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7XG4gICAgICAgICAgICAgIGtleTogXCJpLVwiLmNvbmNhdChpKSxcbiAgICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgdHlwZTogXCJoaWRkZW5cIixcbiAgICAgICAgICAgICAgdmFsdWU6IF90aGlzNS5nZXRPcHRpb25WYWx1ZShvcHQpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KSA6IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgIHR5cGU6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgICB2YWx1ZTogXCJcIlxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBudWxsLCBpbnB1dCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBfdmFsdWUgPSBzZWxlY3RWYWx1ZVswXSA/IHRoaXMuZ2V0T3B0aW9uVmFsdWUoc2VsZWN0VmFsdWVbMF0pIDogJyc7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHtcbiAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgIHR5cGU6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgdmFsdWU6IF92YWx1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyTGl2ZVJlZ2lvblwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXJMaXZlUmVnaW9uKCkge1xuICAgICAgdmFyIGNvbW1vblByb3BzID0gdGhpcy5jb21tb25Qcm9wcztcbiAgICAgIHZhciBfdGhpcyRzdGF0ZTYgPSB0aGlzLnN0YXRlLFxuICAgICAgICBhcmlhU2VsZWN0aW9uID0gX3RoaXMkc3RhdGU2LmFyaWFTZWxlY3Rpb24sXG4gICAgICAgIGZvY3VzZWRPcHRpb24gPSBfdGhpcyRzdGF0ZTYuZm9jdXNlZE9wdGlvbixcbiAgICAgICAgZm9jdXNlZFZhbHVlID0gX3RoaXMkc3RhdGU2LmZvY3VzZWRWYWx1ZSxcbiAgICAgICAgaXNGb2N1c2VkID0gX3RoaXMkc3RhdGU2LmlzRm9jdXNlZCxcbiAgICAgICAgc2VsZWN0VmFsdWUgPSBfdGhpcyRzdGF0ZTYuc2VsZWN0VmFsdWU7XG4gICAgICB2YXIgZm9jdXNhYmxlT3B0aW9ucyA9IHRoaXMuZ2V0Rm9jdXNhYmxlT3B0aW9ucygpO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KExpdmVSZWdpb24kMSwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgIGlkOiB0aGlzLmdldEVsZW1lbnRJZCgnbGl2ZS1yZWdpb24nKSxcbiAgICAgICAgYXJpYVNlbGVjdGlvbjogYXJpYVNlbGVjdGlvbixcbiAgICAgICAgZm9jdXNlZE9wdGlvbjogZm9jdXNlZE9wdGlvbixcbiAgICAgICAgZm9jdXNlZFZhbHVlOiBmb2N1c2VkVmFsdWUsXG4gICAgICAgIGlzRm9jdXNlZDogaXNGb2N1c2VkLFxuICAgICAgICBzZWxlY3RWYWx1ZTogc2VsZWN0VmFsdWUsXG4gICAgICAgIGZvY3VzYWJsZU9wdGlvbnM6IGZvY3VzYWJsZU9wdGlvbnMsXG4gICAgICAgIGlzQXBwbGVEZXZpY2U6IHRoaXMuaXNBcHBsZURldmljZVxuICAgICAgfSkpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzJGdldENvbXBvbmVudHM4ID0gdGhpcy5nZXRDb21wb25lbnRzKCksXG4gICAgICAgIENvbnRyb2wgPSBfdGhpcyRnZXRDb21wb25lbnRzOC5Db250cm9sLFxuICAgICAgICBJbmRpY2F0b3JzQ29udGFpbmVyID0gX3RoaXMkZ2V0Q29tcG9uZW50czguSW5kaWNhdG9yc0NvbnRhaW5lcixcbiAgICAgICAgU2VsZWN0Q29udGFpbmVyID0gX3RoaXMkZ2V0Q29tcG9uZW50czguU2VsZWN0Q29udGFpbmVyLFxuICAgICAgICBWYWx1ZUNvbnRhaW5lciA9IF90aGlzJGdldENvbXBvbmVudHM4LlZhbHVlQ29udGFpbmVyO1xuICAgICAgdmFyIF90aGlzJHByb3BzMTQgPSB0aGlzLnByb3BzLFxuICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wczE0LmNsYXNzTmFtZSxcbiAgICAgICAgaWQgPSBfdGhpcyRwcm9wczE0LmlkLFxuICAgICAgICBpc0Rpc2FibGVkID0gX3RoaXMkcHJvcHMxNC5pc0Rpc2FibGVkLFxuICAgICAgICBtZW51SXNPcGVuID0gX3RoaXMkcHJvcHMxNC5tZW51SXNPcGVuO1xuICAgICAgdmFyIGlzRm9jdXNlZCA9IHRoaXMuc3RhdGUuaXNGb2N1c2VkO1xuICAgICAgdmFyIGNvbW1vblByb3BzID0gdGhpcy5jb21tb25Qcm9wcyA9IHRoaXMuZ2V0Q29tbW9uUHJvcHMoKTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RDb250YWluZXIsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICAgICAgaW5uZXJQcm9wczoge1xuICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICBvbktleURvd246IHRoaXMub25LZXlEb3duXG4gICAgICAgIH0sXG4gICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgIGlzRm9jdXNlZDogaXNGb2N1c2VkXG4gICAgICB9KSwgdGhpcy5yZW5kZXJMaXZlUmVnaW9uKCksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KENvbnRyb2wsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICBpbm5lclJlZjogdGhpcy5nZXRDb250cm9sUmVmLFxuICAgICAgICBpbm5lclByb3BzOiB7XG4gICAgICAgICAgb25Nb3VzZURvd246IHRoaXMub25Db250cm9sTW91c2VEb3duLFxuICAgICAgICAgIG9uVG91Y2hFbmQ6IHRoaXMub25Db250cm9sVG91Y2hFbmRcbiAgICAgICAgfSxcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICAgICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWQsXG4gICAgICAgIG1lbnVJc09wZW46IG1lbnVJc09wZW5cbiAgICAgIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChWYWx1ZUNvbnRhaW5lciwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWRcbiAgICAgIH0pLCB0aGlzLnJlbmRlclBsYWNlaG9sZGVyT3JWYWx1ZSgpLCB0aGlzLnJlbmRlcklucHV0KCkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChJbmRpY2F0b3JzQ29udGFpbmVyLCBfZXh0ZW5kcyh7fSwgY29tbW9uUHJvcHMsIHtcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZFxuICAgICAgfSksIHRoaXMucmVuZGVyQ2xlYXJJbmRpY2F0b3IoKSwgdGhpcy5yZW5kZXJMb2FkaW5nSW5kaWNhdG9yKCksIHRoaXMucmVuZGVySW5kaWNhdG9yU2VwYXJhdG9yKCksIHRoaXMucmVuZGVyRHJvcGRvd25JbmRpY2F0b3IoKSkpLCB0aGlzLnJlbmRlck1lbnUoKSwgdGhpcy5yZW5kZXJGb3JtRmllbGQoKSk7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6IFwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhwcm9wcywgc3RhdGUpIHtcbiAgICAgIHZhciBwcmV2UHJvcHMgPSBzdGF0ZS5wcmV2UHJvcHMsXG4gICAgICAgIGNsZWFyRm9jdXNWYWx1ZU9uVXBkYXRlID0gc3RhdGUuY2xlYXJGb2N1c1ZhbHVlT25VcGRhdGUsXG4gICAgICAgIGlucHV0SXNIaWRkZW5BZnRlclVwZGF0ZSA9IHN0YXRlLmlucHV0SXNIaWRkZW5BZnRlclVwZGF0ZSxcbiAgICAgICAgYXJpYVNlbGVjdGlvbiA9IHN0YXRlLmFyaWFTZWxlY3Rpb24sXG4gICAgICAgIGlzRm9jdXNlZCA9IHN0YXRlLmlzRm9jdXNlZCxcbiAgICAgICAgcHJldldhc0ZvY3VzZWQgPSBzdGF0ZS5wcmV2V2FzRm9jdXNlZCxcbiAgICAgICAgaW5zdGFuY2VQcmVmaXggPSBzdGF0ZS5pbnN0YW5jZVByZWZpeDtcbiAgICAgIHZhciBvcHRpb25zID0gcHJvcHMub3B0aW9ucyxcbiAgICAgICAgdmFsdWUgPSBwcm9wcy52YWx1ZSxcbiAgICAgICAgbWVudUlzT3BlbiA9IHByb3BzLm1lbnVJc09wZW4sXG4gICAgICAgIGlucHV0VmFsdWUgPSBwcm9wcy5pbnB1dFZhbHVlLFxuICAgICAgICBpc011bHRpID0gcHJvcHMuaXNNdWx0aTtcbiAgICAgIHZhciBzZWxlY3RWYWx1ZSA9IGNsZWFuVmFsdWUodmFsdWUpO1xuICAgICAgdmFyIG5ld01lbnVPcHRpb25zU3RhdGUgPSB7fTtcbiAgICAgIGlmIChwcmV2UHJvcHMgJiYgKHZhbHVlICE9PSBwcmV2UHJvcHMudmFsdWUgfHwgb3B0aW9ucyAhPT0gcHJldlByb3BzLm9wdGlvbnMgfHwgbWVudUlzT3BlbiAhPT0gcHJldlByb3BzLm1lbnVJc09wZW4gfHwgaW5wdXRWYWx1ZSAhPT0gcHJldlByb3BzLmlucHV0VmFsdWUpKSB7XG4gICAgICAgIHZhciBmb2N1c2FibGVPcHRpb25zID0gbWVudUlzT3BlbiA/IGJ1aWxkRm9jdXNhYmxlT3B0aW9ucyhwcm9wcywgc2VsZWN0VmFsdWUpIDogW107XG4gICAgICAgIHZhciBmb2N1c2FibGVPcHRpb25zV2l0aElkcyA9IG1lbnVJc09wZW4gPyBidWlsZEZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzKGJ1aWxkQ2F0ZWdvcml6ZWRPcHRpb25zKHByb3BzLCBzZWxlY3RWYWx1ZSksIFwiXCIuY29uY2F0KGluc3RhbmNlUHJlZml4LCBcIi1vcHRpb25cIikpIDogW107XG4gICAgICAgIHZhciBmb2N1c2VkVmFsdWUgPSBjbGVhckZvY3VzVmFsdWVPblVwZGF0ZSA/IGdldE5leHRGb2N1c2VkVmFsdWUoc3RhdGUsIHNlbGVjdFZhbHVlKSA6IG51bGw7XG4gICAgICAgIHZhciBmb2N1c2VkT3B0aW9uID0gZ2V0TmV4dEZvY3VzZWRPcHRpb24oc3RhdGUsIGZvY3VzYWJsZU9wdGlvbnMpO1xuICAgICAgICB2YXIgZm9jdXNlZE9wdGlvbklkID0gZ2V0Rm9jdXNlZE9wdGlvbklkKGZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzLCBmb2N1c2VkT3B0aW9uKTtcbiAgICAgICAgbmV3TWVudU9wdGlvbnNTdGF0ZSA9IHtcbiAgICAgICAgICBzZWxlY3RWYWx1ZTogc2VsZWN0VmFsdWUsXG4gICAgICAgICAgZm9jdXNlZE9wdGlvbjogZm9jdXNlZE9wdGlvbixcbiAgICAgICAgICBmb2N1c2VkT3B0aW9uSWQ6IGZvY3VzZWRPcHRpb25JZCxcbiAgICAgICAgICBmb2N1c2FibGVPcHRpb25zV2l0aElkczogZm9jdXNhYmxlT3B0aW9uc1dpdGhJZHMsXG4gICAgICAgICAgZm9jdXNlZFZhbHVlOiBmb2N1c2VkVmFsdWUsXG4gICAgICAgICAgY2xlYXJGb2N1c1ZhbHVlT25VcGRhdGU6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICAvLyBzb21lIHVwZGF0ZXMgc2hvdWxkIHRvZ2dsZSB0aGUgc3RhdGUgb2YgdGhlIGlucHV0IHZpc2liaWxpdHlcbiAgICAgIHZhciBuZXdJbnB1dElzSGlkZGVuU3RhdGUgPSBpbnB1dElzSGlkZGVuQWZ0ZXJVcGRhdGUgIT0gbnVsbCAmJiBwcm9wcyAhPT0gcHJldlByb3BzID8ge1xuICAgICAgICBpbnB1dElzSGlkZGVuOiBpbnB1dElzSGlkZGVuQWZ0ZXJVcGRhdGUsXG4gICAgICAgIGlucHV0SXNIaWRkZW5BZnRlclVwZGF0ZTogdW5kZWZpbmVkXG4gICAgICB9IDoge307XG4gICAgICB2YXIgbmV3QXJpYVNlbGVjdGlvbiA9IGFyaWFTZWxlY3Rpb247XG4gICAgICB2YXIgaGFzS2VwdEZvY3VzID0gaXNGb2N1c2VkICYmIHByZXZXYXNGb2N1c2VkO1xuICAgICAgaWYgKGlzRm9jdXNlZCAmJiAhaGFzS2VwdEZvY3VzKSB7XG4gICAgICAgIC8vIElmIGB2YWx1ZWAgb3IgYGRlZmF1bHRWYWx1ZWAgcHJvcHMgYXJlIG5vdCBlbXB0eSB0aGVuIGFubm91bmNlIHRoZW1cbiAgICAgICAgLy8gd2hlbiB0aGUgU2VsZWN0IGlzIGluaXRpYWxseSBmb2N1c2VkXG4gICAgICAgIG5ld0FyaWFTZWxlY3Rpb24gPSB7XG4gICAgICAgICAgdmFsdWU6IHZhbHVlVGVybmFyeShpc011bHRpLCBzZWxlY3RWYWx1ZSwgc2VsZWN0VmFsdWVbMF0gfHwgbnVsbCksXG4gICAgICAgICAgb3B0aW9uczogc2VsZWN0VmFsdWUsXG4gICAgICAgICAgYWN0aW9uOiAnaW5pdGlhbC1pbnB1dC1mb2N1cydcbiAgICAgICAgfTtcbiAgICAgICAgaGFzS2VwdEZvY3VzID0gIXByZXZXYXNGb2N1c2VkO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGUgJ2luaXRpYWwtaW5wdXQtZm9jdXMnIGFjdGlvbiBoYXMgYmVlbiBzZXQgYWxyZWFkeVxuICAgICAgLy8gdGhlbiByZXNldCB0aGUgYXJpYVNlbGVjdGlvbiB0byBudWxsXG4gICAgICBpZiAoKGFyaWFTZWxlY3Rpb24gPT09IG51bGwgfHwgYXJpYVNlbGVjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogYXJpYVNlbGVjdGlvbi5hY3Rpb24pID09PSAnaW5pdGlhbC1pbnB1dC1mb2N1cycpIHtcbiAgICAgICAgbmV3QXJpYVNlbGVjdGlvbiA9IG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG5ld01lbnVPcHRpb25zU3RhdGUpLCBuZXdJbnB1dElzSGlkZGVuU3RhdGUpLCB7fSwge1xuICAgICAgICBwcmV2UHJvcHM6IHByb3BzLFxuICAgICAgICBhcmlhU2VsZWN0aW9uOiBuZXdBcmlhU2VsZWN0aW9uLFxuICAgICAgICBwcmV2V2FzRm9jdXNlZDogaGFzS2VwdEZvY3VzXG4gICAgICB9KTtcbiAgICB9XG4gIH1dKTtcbiAgcmV0dXJuIFNlbGVjdDtcbn0oQ29tcG9uZW50KTtcblNlbGVjdC5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG5cbmV4cG9ydCB7IFNlbGVjdCBhcyBTLCBkZWZhdWx0UHJvcHMgYXMgYSwgZ2V0T3B0aW9uTGFiZWwkMSBhcyBiLCBjcmVhdGVGaWx0ZXIgYXMgYywgZGVmYXVsdFRoZW1lIGFzIGQsIGdldE9wdGlvblZhbHVlJDEgYXMgZywgbWVyZ2VTdHlsZXMgYXMgbSB9O1xuIiwiaW1wb3J0IHsgdSBhcyB1c2VTdGF0ZU1hbmFnZXIgfSBmcm9tICcuL3VzZVN0YXRlTWFuYWdlci03ZTFlODQ4OS5lc20uanMnO1xuZXhwb3J0IHsgdSBhcyB1c2VTdGF0ZU1hbmFnZXIgfSBmcm9tICcuL3VzZVN0YXRlTWFuYWdlci03ZTFlODQ4OS5lc20uanMnO1xuaW1wb3J0IF9leHRlbmRzIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2V4dGVuZHMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFMgYXMgU2VsZWN0IH0gZnJvbSAnLi9TZWxlY3QtYWFiMDI3ZjMuZXNtLmpzJztcbmV4cG9ydCB7IGMgYXMgY3JlYXRlRmlsdGVyLCBkIGFzIGRlZmF1bHRUaGVtZSwgbSBhcyBtZXJnZVN0eWxlcyB9IGZyb20gJy4vU2VsZWN0LWFhYjAyN2YzLmVzbS5qcyc7XG5pbXBvcnQgeyBDYWNoZVByb3ZpZGVyIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IGNyZWF0ZUNhY2hlIGZyb20gJ0BlbW90aW9uL2NhY2hlJztcbmV4cG9ydCB7IGMgYXMgY29tcG9uZW50cyB9IGZyb20gJy4vaW5kZXgtNjQxZWU1YjguZXNtLmpzJztcbmltcG9ydCAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9vYmplY3RTcHJlYWQyJztcbmltcG9ydCAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zbGljZWRUb0FycmF5JztcbmltcG9ydCAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9vYmplY3RXaXRob3V0UHJvcGVydGllcyc7XG5pbXBvcnQgJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2snO1xuaW1wb3J0ICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzJztcbmltcG9ydCAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbmhlcml0cyc7XG5pbXBvcnQgJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY3JlYXRlU3VwZXInO1xuaW1wb3J0ICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL3RvQ29uc3VtYWJsZUFycmF5JztcbmltcG9ydCAnbWVtb2l6ZS1vbmUnO1xuaW1wb3J0ICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZic7XG5pbXBvcnQgJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdGFnZ2VkVGVtcGxhdGVMaXRlcmFsJztcbmltcG9ydCAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eSc7XG5pbXBvcnQgJ3JlYWN0LWRvbSc7XG5pbXBvcnQgJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0ICd1c2UtaXNvbW9ycGhpYy1sYXlvdXQtZWZmZWN0JztcblxudmFyIFN0YXRlTWFuYWdlZFNlbGVjdCA9IC8qI19fUFVSRV9fKi9mb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7XG4gIHZhciBiYXNlU2VsZWN0UHJvcHMgPSB1c2VTdGF0ZU1hbmFnZXIocHJvcHMpO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoU2VsZWN0LCBfZXh0ZW5kcyh7XG4gICAgcmVmOiByZWZcbiAgfSwgYmFzZVNlbGVjdFByb3BzKSk7XG59KTtcbnZhciBTdGF0ZU1hbmFnZWRTZWxlY3QkMSA9IFN0YXRlTWFuYWdlZFNlbGVjdDtcblxudmFyIE5vbmNlUHJvdmlkZXIgPSAoZnVuY3Rpb24gKF9yZWYpIHtcbiAgdmFyIG5vbmNlID0gX3JlZi5ub25jZSxcbiAgICBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW4sXG4gICAgY2FjaGVLZXkgPSBfcmVmLmNhY2hlS2V5O1xuICB2YXIgZW1vdGlvbkNhY2hlID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUNhY2hlKHtcbiAgICAgIGtleTogY2FjaGVLZXksXG4gICAgICBub25jZTogbm9uY2VcbiAgICB9KTtcbiAgfSwgW2NhY2hlS2V5LCBub25jZV0pO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FjaGVQcm92aWRlciwge1xuICAgIHZhbHVlOiBlbW90aW9uQ2FjaGVcbiAgfSwgY2hpbGRyZW4pO1xufSk7XG5cbmV4cG9ydCB7IE5vbmNlUHJvdmlkZXIsIFN0YXRlTWFuYWdlZFNlbGVjdCQxIGFzIGRlZmF1bHQgfTtcbiIsIi8vIHNyYy9pbmRleC50c1xuaW1wb3J0IHsgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG52YXIgRU1QVFlfVkFMVUUgPSBTeW1ib2woXCJ1c2VMYXp5UmVmIGVtcHR5IHZhbHVlXCIpO1xudmFyIHVzZUxhenlSZWYgPSAoaW5pdCkgPT4ge1xuICBjb25zdCByZXN1bHRSZWYgPSB1c2VSZWYoRU1QVFlfVkFMVUUpO1xuICBpZiAocmVzdWx0UmVmLmN1cnJlbnQgPT09IEVNUFRZX1ZBTFVFKSB7XG4gICAgcmVzdWx0UmVmLmN1cnJlbnQgPSBpbml0KCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdFJlZjtcbn07XG5leHBvcnQge1xuICBFTVBUWV9WQUxVRSxcbiAgdXNlTGF6eVJlZlxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCIsImltcG9ydCB7IHVzZVJlZiwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuXG5mdW5jdGlvbiB1c2VJc01vdW50ZWRSZWYoKSB7XHJcbiAgICB2YXIgaXNNb3VudGVkUmVmID0gdXNlUmVmKGZhbHNlKTtcclxuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaXNNb3VudGVkUmVmLmN1cnJlbnQgPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlzTW91bnRlZFJlZi5jdXJyZW50ID0gZmFsc2U7XHJcbiAgICAgICAgfTtcclxuICAgIH0sIFtdKTtcclxuICAgIHJldHVybiBpc01vdW50ZWRSZWY7XHJcbn1cblxuZXhwb3J0IHsgdXNlSXNNb3VudGVkUmVmIGFzIGRlZmF1bHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1pcy1tb3VudGVkLXJlZi5lcy5qcy5tYXBcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCBmcm9tICd1c2UtaXNvbW9ycGhpYy1sYXlvdXQtZWZmZWN0JztcblxudmFyIHVzZUxhdGVzdCA9IGZ1bmN0aW9uIHVzZUxhdGVzdCh2YWx1ZSkge1xuICB2YXIgcmVmID0gUmVhY3QudXNlUmVmKHZhbHVlKTtcbiAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgcmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgfSk7XG4gIHJldHVybiByZWY7XG59O1xuXG5leHBvcnQgeyB1c2VMYXRlc3QgYXMgZGVmYXVsdCB9O1xuIiwiLy8gc3JjL29wdGlvbl9yZXN1bHQudHNcbmZ1bmN0aW9uIE9rKHJlc3VsdCkge1xuICBjb25zdCBzZWxmID0ge1xuICAgIGlzT2s6ICgpID0+IHRydWUsXG4gICAgaXNPa0FuZDogKGZuKSA9PiBmbihyZXN1bHQpLFxuICAgIGlzRXJyOiAoKSA9PiBmYWxzZSxcbiAgICBpc0VyckFuZDogKCkgPT4gZmFsc2UsXG4gICAgb2s6ICgpID0+IFNvbWUocmVzdWx0KSxcbiAgICBlcnI6ICgpID0+IE5vbmUoKSxcbiAgICBtYXA6IChmbikgPT4gT2soZm4ocmVzdWx0KSksXG4gICAgbWFwT3I6IChfLCBmbikgPT4gZm4ocmVzdWx0KSxcbiAgICBtYXBPckVsc2U6IChfLCBmbikgPT4gZm4ocmVzdWx0KSxcbiAgICBtYXBFcnI6ICgpID0+IE9rKHJlc3VsdCksXG4gICAgZXhwZWN0OiAoKSA9PiByZXN1bHQsXG4gICAgZXhwZWN0RXJyOiAobXNnKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTtcbiAgICB9LFxuICAgIHVud3JhcDogKCkgPT4gcmVzdWx0LFxuICAgIHVud3JhcEVycjogKCkgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3Jlc3VsdH1gKTtcbiAgICB9LFxuICAgIHVud3JhcE9yOiAoKSA9PiByZXN1bHQsXG4gICAgdW53cmFwT3JFbHNlOiAoKSA9PiByZXN1bHQsXG4gICAgYW5kOiAocmVzKSA9PiByZXMsXG4gICAgYW5kVGhlbjogKGdldFJlcykgPT4gZ2V0UmVzKHJlc3VsdCksXG4gICAgb3I6ICgpID0+IE9rKHJlc3VsdCksXG4gICAgb3JFbHNlOiAoKSA9PiBPayhyZXN1bHQpXG4gIH07XG4gIHJldHVybiBzZWxmO1xufVxuZnVuY3Rpb24gRXJyKGVycikge1xuICBjb25zdCBzZWxmID0ge1xuICAgIGlzT2s6ICgpID0+IGZhbHNlLFxuICAgIGlzT2tBbmQ6ICgpID0+IGZhbHNlLFxuICAgIGlzRXJyOiAoKSA9PiB0cnVlLFxuICAgIGlzRXJyQW5kOiAoZm4pID0+IGZuKGVyciksXG4gICAgb2s6ICgpID0+IE5vbmUoKSxcbiAgICBlcnI6ICgpID0+IFNvbWUoZXJyKSxcbiAgICBtYXA6ICgpID0+IEVycihlcnIpLFxuICAgIG1hcE9yOiAoZGVmYXVsdFZhbHVlKSA9PiBkZWZhdWx0VmFsdWUsXG4gICAgbWFwT3JFbHNlOiAoZ2V0RGVmYXVsdFZhbHVlKSA9PiBnZXREZWZhdWx0VmFsdWUoZXJyKSxcbiAgICBtYXBFcnI6IChmbikgPT4gRXJyKGZuKGVycikpLFxuICAgIGV4cGVjdDogKG1zZykgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7XG4gICAgfSxcbiAgICBleHBlY3RFcnI6ICgpID0+IGVycixcbiAgICB1bndyYXA6ICgpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtlcnJ9YCk7XG4gICAgfSxcbiAgICB1bndyYXBFcnI6ICgpID0+IGVycixcbiAgICB1bndyYXBPcjogKGRlZmF1bHRWYWx1ZSkgPT4gZGVmYXVsdFZhbHVlLFxuICAgIHVud3JhcE9yRWxzZTogKGdldERlZmF1bHRWYWx1ZSkgPT4gZ2V0RGVmYXVsdFZhbHVlKGVyciksXG4gICAgYW5kOiAoKSA9PiBFcnIoZXJyKSxcbiAgICBhbmRUaGVuOiAoKSA9PiBFcnIoZXJyKSxcbiAgICBvcjogKHJlcykgPT4gcmVzLFxuICAgIG9yRWxzZTogKGdldFJlcykgPT4gZ2V0UmVzKGVycilcbiAgfTtcbiAgcmV0dXJuIHNlbGY7XG59XG5mdW5jdGlvbiBOb25lKCkge1xuICBjb25zdCBzZWxmID0ge1xuICAgIGFuZDogKCkgPT4gTm9uZSgpLFxuICAgIGFuZFRoZW46ICgpID0+IE5vbmUoKSxcbiAgICBleHBlY3Q6IChtc2cpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihtc2cpO1xuICAgIH0sXG4gICAgZmlsdGVyOiAoKSA9PiBzZWxmLFxuICAgIGlzU29tZTogKCkgPT4gZmFsc2UsXG4gICAgaXNTb21lQW5kOiAoKSA9PiBmYWxzZSxcbiAgICBpc05vbmU6ICgpID0+IHRydWUsXG4gICAgbWFwOiAoKSA9PiBOb25lKCksXG4gICAgbWFwT3I6IChkZWZhdWx0VmFsdWUpID0+IGRlZmF1bHRWYWx1ZSxcbiAgICBtYXBPckVsc2U6IChnZXREZWZhdWx0VmFsdWUpID0+IGdldERlZmF1bHRWYWx1ZSgpLFxuICAgIG9rT3I6IChlcnIpID0+IEVycihlcnIpLFxuICAgIG9rT3JFbHNlOiAoZ2V0RXJyKSA9PiBFcnIoZ2V0RXJyKCkpLFxuICAgIG9yOiAob3B0KSA9PiBvcHQsXG4gICAgb3JFbHNlOiAoZm4pID0+IGZuKCksXG4gICAgdW53cmFwOiAoKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJwYW5pYyEgY2FsbCBgdW53cmFwYCBvbiBhIGBOb25lYCB2YWx1ZVwiKTtcbiAgICB9LFxuICAgIHVud3JhcE9yOiAoZGVmYXVsdFZhbHVlKSA9PiBkZWZhdWx0VmFsdWUsXG4gICAgdW53cmFwT3JFbHNlOiAoZ2V0RGVmYXVsdFZhbHVlKSA9PiBnZXREZWZhdWx0VmFsdWUoKSxcbiAgICB4b3I6IChvcHQpID0+IHtcbiAgICAgIGlmIChvcHQuaXNTb21lKCkpIHtcbiAgICAgICAgcmV0dXJuIG9wdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzZWxmO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHNlbGY7XG59XG5mdW5jdGlvbiBTb21lKHZhbHVlKSB7XG4gIGNvbnN0IHNlbGYgPSB7XG4gICAgYW5kOiAob3B0KSA9PiBvcHQsXG4gICAgYW5kVGhlbjogKGZuKSA9PiBmbih2YWx1ZSksXG4gICAgZXhwZWN0OiAoKSA9PiB2YWx1ZSxcbiAgICBmaWx0ZXI6IChmbikgPT4ge1xuICAgICAgaWYgKGZuKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gc2VsZjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBOb25lKCk7XG4gICAgfSxcbiAgICBpc1NvbWU6ICgpID0+IHRydWUsXG4gICAgaXNTb21lQW5kOiAoZm4pID0+IGZuKHZhbHVlKSxcbiAgICBpc05vbmU6ICgpID0+IGZhbHNlLFxuICAgIG1hcDogKGZuKSA9PiBTb21lKGZuKHZhbHVlKSksXG4gICAgbWFwT3I6IChfLCBmbikgPT4gZm4odmFsdWUpLFxuICAgIG1hcE9yRWxzZTogKF8sIGZuKSA9PiBmbih2YWx1ZSksXG4gICAgb2tPcjogKCkgPT4gT2sodmFsdWUpLFxuICAgIG9rT3JFbHNlOiAoKSA9PiBPayh2YWx1ZSksXG4gICAgb3I6ICgpID0+IHNlbGYsXG4gICAgb3JFbHNlOiAoKSA9PiBzZWxmLFxuICAgIHVud3JhcDogKCkgPT4gdmFsdWUsXG4gICAgdW53cmFwT3I6ICgpID0+IHZhbHVlLFxuICAgIHVud3JhcE9yRWxzZTogKCkgPT4gdmFsdWUsXG4gICAgeG9yOiAob3B0KSA9PiB7XG4gICAgICBpZiAob3B0LmlzTm9uZSgpKSB7XG4gICAgICAgIHJldHVybiBzZWxmO1xuICAgICAgfVxuICAgICAgcmV0dXJuIE5vbmUoKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiBzZWxmO1xufVxuXG4vLyBzcmMvdG9fb3B0aW9uLnRzXG5mdW5jdGlvbiB0b09wdGlvbihhcmcpIHtcbiAgaWYgKGFyZyA9PT0gbnVsbCB8fCBhcmcgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBOb25lKCk7XG4gIH1cbiAgcmV0dXJuIFNvbWUoYXJnKTtcbn1cblxuLy8gc3JjL2dldF9yZXN1bHQudHNcbmZ1bmN0aW9uIGdldFJlc3VsdChwcm9taXNlKSB7XG4gIHJldHVybiBwcm9taXNlLnRoZW4oXG4gICAgKHJlc3BvbnNlKSA9PiBPayhyZXNwb25zZSksXG4gICAgKGVycikgPT4gRXJyKGVycilcbiAgKTtcbn1cblxuLy8gc3JjL3Vud3JhcC50c1xuZnVuY3Rpb24gdW53cmFwKHZhbHVlKSB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBwYW5pYyEgY2FsbCBcXGB1bndyYXBcXGAgb24gYSBcXGAke3ZhbHVlfVxcYCB2YWx1ZWApO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLy8gc3JjL3Vud3JhcF9vci50c1xuZnVuY3Rpb24gdW53cmFwT3IodmFsdWUsIGRlZmF1bHRWYWx1ZSkge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG4vLyBzcmMvdW53cmFwX29yX2Vsc2UudHNcbmZ1bmN0aW9uIHVud3JhcE9yRWxzZSh2YWx1ZSwgZ2V0RGVmYXVsdFZhbHVlKSB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIGdldERlZmF1bHRWYWx1ZSgpO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLy8gc3JjL3RyeV9jYXRjaC50c1xuZnVuY3Rpb24gdHJ5Q2F0Y2goZm4pIHtcbiAgbGV0IHJlc3VsdDtcbiAgdHJ5IHtcbiAgICByZXN1bHQgPSBmbigpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIEVycihlKTtcbiAgfVxuICByZXR1cm4gT2socmVzdWx0KTtcbn1cbmV4cG9ydCB7XG4gIEVycixcbiAgTm9uZSxcbiAgT2ssXG4gIFNvbWUsXG4gIGdldFJlc3VsdCxcbiAgdG9PcHRpb24sXG4gIHRyeUNhdGNoLFxuICB1bndyYXAsXG4gIHVud3JhcE9yLFxuICB1bndyYXBPckVsc2Vcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwIiwidmFyIGU9c2V0VGltZW91dDtmdW5jdGlvbiB0KHQsbil7dmFyIHU9bi51c2VDYWNoZWRTZXRUaW1lb3V0P2U6c2V0VGltZW91dDtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe3UoZSx0KX0pKX1mdW5jdGlvbiBuKGUpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSx1PW4udXNlQ2FjaGVkU2V0VGltZW91dCxyPXQoZSx7dXNlQ2FjaGVkU2V0VGltZW91dDp1fSk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gci50aGVuKChmdW5jdGlvbigpe3JldHVybiBlfSkpfXJldHVybiBvLnRoZW49ZnVuY3Rpb24oKXtyZXR1cm4gci50aGVuLmFwcGx5KHIsYXJndW1lbnRzKX0sby5jYXRjaD1Qcm9taXNlLnJlc29sdmUoKS5jYXRjaCxvfWV4cG9ydCBkZWZhdWx0IG47XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmZ1bmN0aW9uIGNvbXBvc2VSZWZzKCkge1xuICAgIHZhciByZWZzID0gW107XG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgcmVmc1tfaV0gPSBhcmd1bWVudHNbX2ldO1xuICAgIH1cbiAgICBpZiAocmVmcy5sZW5ndGggPT09IDIpIHsgLy8gbWljcm8tb3B0aW1pemUgdGhlIGhvdCBwYXRoXG4gICAgICAgIHJldHVybiBjb21wb3NlVHdvUmVmcyhyZWZzWzBdLCByZWZzWzFdKSB8fCBudWxsO1xuICAgIH1cbiAgICB2YXIgY29tcG9zZWRSZWYgPSByZWZzLnNsaWNlKDEpLnJlZHVjZShmdW5jdGlvbiAoc2VtaUNvbWJpbmVkUmVmLCByZWZUb0luY2x1ZGUpIHsgcmV0dXJuIGNvbXBvc2VUd29SZWZzKHNlbWlDb21iaW5lZFJlZiwgcmVmVG9JbmNsdWRlKTsgfSwgcmVmc1swXSk7XG4gICAgcmV0dXJuIGNvbXBvc2VkUmVmIHx8IG51bGw7XG59XG5leHBvcnRzLmRlZmF1bHQgPSBjb21wb3NlUmVmcztcbnZhciBjb21wb3NlZFJlZkNhY2hlID0gbmV3IFdlYWtNYXAoKTtcbmZ1bmN0aW9uIGNvbXBvc2VUd29SZWZzKHJlZjEsIHJlZjIpIHtcbiAgICBpZiAocmVmMSAmJiByZWYyKSB7XG4gICAgICAgIHZhciByZWYxQ2FjaGUgPSBjb21wb3NlZFJlZkNhY2hlLmdldChyZWYxKSB8fCBuZXcgV2Vha01hcCgpO1xuICAgICAgICBjb21wb3NlZFJlZkNhY2hlLnNldChyZWYxLCByZWYxQ2FjaGUpO1xuICAgICAgICB2YXIgY29tcG9zZWRSZWYgPSByZWYxQ2FjaGUuZ2V0KHJlZjIpIHx8IChmdW5jdGlvbiAoaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHVwZGF0ZVJlZihyZWYxLCBpbnN0YW5jZSk7XG4gICAgICAgICAgICB1cGRhdGVSZWYocmVmMiwgaW5zdGFuY2UpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVmMUNhY2hlLnNldChyZWYyLCBjb21wb3NlZFJlZik7XG4gICAgICAgIHJldHVybiBjb21wb3NlZFJlZjtcbiAgICB9XG4gICAgaWYgKCFyZWYxKSB7XG4gICAgICAgIHJldHVybiByZWYyO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHJlZjE7XG4gICAgfVxufVxuZnVuY3Rpb24gdXBkYXRlUmVmKHJlZiwgaW5zdGFuY2UpIHtcbiAgICBpZiAodHlwZW9mIHJlZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZWYoaW5zdGFuY2UpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmVmLmN1cnJlbnQgPSBpbnN0YW5jZTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb21wb3NlUmVmcy5qcy5tYXAiLCIvLyBzcmMvaW5kZXgudHNcbmltcG9ydCBTZWxlY3QgZnJvbSBcInJlYWN0LXNlbGVjdFwiO1xuXG4vLyBzcmMvdXNlQXN5bmNQYWdpbmF0ZS50c1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgYXMgdXNlQ2FsbGJhY2syLCB1c2VTdGF0ZSBhcyB1c2VTdGF0ZTIgfSBmcm9tIFwicmVhY3RcIjtcblxuLy8gc3JjL3VzZUFzeW5jUGFnaW5hdGVCYXNlLnRzXG5pbXBvcnQgeyB1c2VMYXp5UmVmIH0gZnJvbSBcIkB2dGFpdHMvdXNlLWxhenktcmVmXCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdXNlSXNNb3VudGVkUmVmIGZyb20gXCJ1c2UtaXMtbW91bnRlZC1yZWZcIjtcbmltcG9ydCB1c2VMYXRlc3QgZnJvbSBcInVzZS1sYXRlc3RcIjtcblxuLy8gc3JjL2RlZmF1bHRSZWR1Y2VPcHRpb25zLnRzXG52YXIgZGVmYXVsdFJlZHVjZU9wdGlvbnMgPSAocHJldk9wdGlvbnMsIGxvYWRlZE9wdGlvbnMpID0+IFsuLi5wcmV2T3B0aW9ucywgLi4ubG9hZGVkT3B0aW9uc107XG5cbi8vIHNyYy9kZWZhdWx0U2hvdWxkTG9hZE1vcmUudHNcbnZhciBBVkFJTEFCTEVfREVMVEEgPSAxMDtcbnZhciBkZWZhdWx0U2hvdWxkTG9hZE1vcmUgPSAoc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQsIHNjcm9sbFRvcCkgPT4ge1xuICBjb25zdCBib3R0b21Cb3JkZXIgPSBzY3JvbGxIZWlnaHQgLSBjbGllbnRIZWlnaHQgLSBBVkFJTEFCTEVfREVMVEE7XG4gIHJldHVybiBib3R0b21Cb3JkZXIgPCBzY3JvbGxUb3A7XG59O1xuXG4vLyBzcmMvZ2V0SW5pdGlhbENhY2hlLnRzXG52YXIgZ2V0SW5pdGlhbENhY2hlID0gKHBhcmFtcykgPT4gKHtcbiAgaXNGaXJzdExvYWQ6IHRydWUsXG4gIG9wdGlvbnM6IFtdLFxuICBoYXNNb3JlOiB0cnVlLFxuICBpc0xvYWRpbmc6IGZhbHNlLFxuICBsb2NrZWRVbnRpbDogMCxcbiAgYWRkaXRpb25hbDogcGFyYW1zLmFkZGl0aW9uYWxcbn0pO1xuXG4vLyBzcmMvZ2V0SW5pdGlhbE9wdGlvbnNDYWNoZS50c1xudmFyIGdldEluaXRpYWxPcHRpb25zQ2FjaGUgPSAoe1xuICBvcHRpb25zLFxuICBkZWZhdWx0T3B0aW9ucyxcbiAgYWRkaXRpb25hbCxcbiAgZGVmYXVsdEFkZGl0aW9uYWxcbn0pID0+IHtcbiAgY29uc3QgaW5pdGlhbE9wdGlvbnMgPSBkZWZhdWx0T3B0aW9ucyA9PT0gdHJ1ZSA/IG51bGwgOiBBcnJheS5pc0FycmF5KGRlZmF1bHRPcHRpb25zKSA/IGRlZmF1bHRPcHRpb25zIDogb3B0aW9ucztcbiAgaWYgKGluaXRpYWxPcHRpb25zKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIFwiXCI6IHtcbiAgICAgICAgaXNGaXJzdExvYWQ6IGZhbHNlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBvcHRpb25zOiBpbml0aWFsT3B0aW9ucyxcbiAgICAgICAgaGFzTW9yZTogdHJ1ZSxcbiAgICAgICAgbG9ja2VkVW50aWw6IDAsXG4gICAgICAgIGFkZGl0aW9uYWw6IGRlZmF1bHRBZGRpdGlvbmFsIHx8IGFkZGl0aW9uYWxcbiAgICAgIH1cbiAgICB9O1xuICB9XG4gIHJldHVybiB7fTtcbn07XG5cbi8vIHNyYy9yZXF1ZXN0T3B0aW9ucy50c1xuaW1wb3J0IHsgZ2V0UmVzdWx0IH0gZnJvbSBcImtydXN0eWtyYWJcIjtcbmltcG9ydCBzbGVlcCBmcm9tIFwic2xlZXAtcHJvbWlzZVwiO1xuXG4vLyBzcmMvdmFsaWRhdGVSZXNwb25zZS50c1xudmFyIGVycm9yVGV4dCA9ICdbcmVhY3Qtc2VsZWN0LWFzeW5jLXBhZ2luYXRlXSByZXNwb25zZSBvZiBcImxvYWRPcHRpb25zXCIgc2hvdWxkIGJlIGFuIG9iamVjdCB3aXRoIFwib3B0aW9uc1wiIHByb3AsIHdoaWNoIGNvbnRhaW5zIGFycmF5IG9mIG9wdGlvbnMuJztcbnZhciBjaGVja0lzUmVzcG9uc2UgPSAocmVzcG9uc2UpID0+IHtcbiAgaWYgKCFyZXNwb25zZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCB7IG9wdGlvbnMsIGhhc01vcmUgfSA9IHJlc3BvbnNlO1xuICBpZiAoIUFycmF5LmlzQXJyYXkob3B0aW9ucykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKHR5cGVvZiBoYXNNb3JlICE9PSBcImJvb2xlYW5cIiAmJiB0eXBlb2YgaGFzTW9yZSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn07XG52YXIgdmFsaWRhdGVSZXNwb25zZSA9IChyZXNwb25zZSkgPT4ge1xuICBpZiAoIWNoZWNrSXNSZXNwb25zZShyZXNwb25zZSkpIHtcbiAgICBjb25zb2xlLmVycm9yKGVycm9yVGV4dCwgXCJSZWNlaXZlZDpcIiwgcmVzcG9uc2UpO1xuICAgIHRocm93IG5ldyBFcnJvcihlcnJvclRleHQpO1xuICB9XG4gIHJldHVybiB0cnVlO1xufTtcblxuLy8gc3JjL3JlcXVlc3RPcHRpb25zLnRzXG52YXIgcmVxdWVzdE9wdGlvbnMgPSBhc3luYyAoY2FsbGVyLCBwYXJhbXNSZWYsIG9wdGlvbnNDYWNoZVJlZiwgZGVib3VuY2VUaW1lb3V0LCBzZXRPcHRpb25zQ2FjaGUsIHJlZHVjZU9wdGlvbnMsIGlzTW91bnRlZFJlZikgPT4ge1xuICBjb25zdCBjdXJyZW50SW5wdXRWYWx1ZSA9IHBhcmFtc1JlZi5jdXJyZW50LmlucHV0VmFsdWU7XG4gIGNvbnN0IGlzQ2FjaGVFbXB0eSA9ICFvcHRpb25zQ2FjaGVSZWYuY3VycmVudFtjdXJyZW50SW5wdXRWYWx1ZV07XG4gIGNvbnN0IGN1cnJlbnRPcHRpb25zID0gaXNDYWNoZUVtcHR5ID8gZ2V0SW5pdGlhbENhY2hlKHBhcmFtc1JlZi5jdXJyZW50KSA6IG9wdGlvbnNDYWNoZVJlZi5jdXJyZW50W2N1cnJlbnRJbnB1dFZhbHVlXTtcbiAgaWYgKGN1cnJlbnRPcHRpb25zLmlzTG9hZGluZyB8fCAhY3VycmVudE9wdGlvbnMuaGFzTW9yZSB8fCBjdXJyZW50T3B0aW9ucy5sb2NrZWRVbnRpbCA+IERhdGUubm93KCkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgc2V0T3B0aW9uc0NhY2hlKFxuICAgIChwcmV2T3B0aW9uc0NhY2hlKSA9PiAoe1xuICAgICAgLi4ucHJldk9wdGlvbnNDYWNoZSxcbiAgICAgIFtjdXJyZW50SW5wdXRWYWx1ZV06IHtcbiAgICAgICAgLi4uY3VycmVudE9wdGlvbnMsXG4gICAgICAgIGlzTG9hZGluZzogdHJ1ZVxuICAgICAgfVxuICAgIH0pXG4gICk7XG4gIGlmIChkZWJvdW5jZVRpbWVvdXQgPiAwICYmIGNhbGxlciA9PT0gXCJpbnB1dC1jaGFuZ2VcIikge1xuICAgIGF3YWl0IHNsZWVwKGRlYm91bmNlVGltZW91dCk7XG4gICAgY29uc3QgbmV3SW5wdXRWYWx1ZSA9IHBhcmFtc1JlZi5jdXJyZW50LmlucHV0VmFsdWU7XG4gICAgaWYgKGN1cnJlbnRJbnB1dFZhbHVlICE9PSBuZXdJbnB1dFZhbHVlKSB7XG4gICAgICBzZXRPcHRpb25zQ2FjaGUoKHByZXZPcHRpb25zQ2FjaGUpID0+IHtcbiAgICAgICAgaWYgKGlzQ2FjaGVFbXB0eSkge1xuICAgICAgICAgIGNvbnN0IHsgW2N1cnJlbnRJbnB1dFZhbHVlXTogaXRlbUZvckRlbGV0ZSwgLi4ucmVzdENhY2hlIH0gPSBwcmV2T3B0aW9uc0NhY2hlO1xuICAgICAgICAgIHJldHVybiByZXN0Q2FjaGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wcmV2T3B0aW9uc0NhY2hlLFxuICAgICAgICAgIFtjdXJyZW50SW5wdXRWYWx1ZV06IHtcbiAgICAgICAgICAgIC4uLmN1cnJlbnRPcHRpb25zLFxuICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuICBjb25zdCB7IGxvYWRPcHRpb25zLCByZWxvYWRPbkVycm9yVGltZW91dCA9IDAgfSA9IHBhcmFtc1JlZi5jdXJyZW50O1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBnZXRSZXN1bHQoXG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihcbiAgICAgICgpID0+IGxvYWRPcHRpb25zKFxuICAgICAgICBjdXJyZW50SW5wdXRWYWx1ZSxcbiAgICAgICAgY3VycmVudE9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgY3VycmVudE9wdGlvbnMuYWRkaXRpb25hbFxuICAgICAgKVxuICAgIClcbiAgKTtcbiAgaWYgKCFpc01vdW50ZWRSZWYuY3VycmVudCkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAocmVzdWx0LmlzRXJyKCkpIHtcbiAgICBzZXRPcHRpb25zQ2FjaGUoKHByZXZPcHRpb25zQ2FjaGUpID0+ICh7XG4gICAgICAuLi5wcmV2T3B0aW9uc0NhY2hlLFxuICAgICAgW2N1cnJlbnRJbnB1dFZhbHVlXToge1xuICAgICAgICAuLi5jdXJyZW50T3B0aW9ucyxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgbG9ja2VkVW50aWw6IERhdGUubm93KCkgKyByZWxvYWRPbkVycm9yVGltZW91dFxuICAgICAgfVxuICAgIH0pKTtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgcmVzcG9uc2UgPSByZXN1bHQudW53cmFwKCk7XG4gIGlmICh2YWxpZGF0ZVJlc3BvbnNlKHJlc3BvbnNlKSkge1xuICAgIGNvbnN0IHsgb3B0aW9ucywgaGFzTW9yZSB9ID0gcmVzcG9uc2U7XG4gICAgY29uc3QgbmV3QWRkaXRpb25hbCA9IE9iamVjdC5oYXNPd24ocmVzcG9uc2UsIFwiYWRkaXRpb25hbFwiKSA/IHJlc3BvbnNlLmFkZGl0aW9uYWwgOiBjdXJyZW50T3B0aW9ucy5hZGRpdGlvbmFsO1xuICAgIHNldE9wdGlvbnNDYWNoZSgocHJldk9wdGlvbnNDYWNoZSkgPT4gKHtcbiAgICAgIC4uLnByZXZPcHRpb25zQ2FjaGUsXG4gICAgICBbY3VycmVudElucHV0VmFsdWVdOiB7XG4gICAgICAgIC4uLmN1cnJlbnRPcHRpb25zLFxuICAgICAgICBvcHRpb25zOiByZWR1Y2VPcHRpb25zKGN1cnJlbnRPcHRpb25zLm9wdGlvbnMsIG9wdGlvbnMsIG5ld0FkZGl0aW9uYWwpLFxuICAgICAgICBoYXNNb3JlOiAhIWhhc01vcmUsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGlzRmlyc3RMb2FkOiBmYWxzZSxcbiAgICAgICAgYWRkaXRpb25hbDogbmV3QWRkaXRpb25hbFxuICAgICAgfVxuICAgIH0pKTtcbiAgfVxufTtcblxuLy8gc3JjL3VzZUFzeW5jUGFnaW5hdGVCYXNlLnRzXG52YXIgaW5jcmVhc2VTdGF0ZUlkID0gKHByZXZTdGF0ZUlkKSA9PiBwcmV2U3RhdGVJZCArIDE7XG52YXIgdXNlQXN5bmNQYWdpbmF0ZUJhc2UgPSAocGFyYW1zLCBkZXBzID0gW10pID0+IHtcbiAgY29uc3Qge1xuICAgIGRlZmF1bHRPcHRpb25zLFxuICAgIGxvYWRPcHRpb25zT25NZW51T3BlbiA9IHRydWUsXG4gICAgZGVib3VuY2VUaW1lb3V0ID0gMCxcbiAgICBpbnB1dFZhbHVlLFxuICAgIG1lbnVJc09wZW4sXG4gICAgZmlsdGVyT3B0aW9uID0gbnVsbCxcbiAgICByZWR1Y2VPcHRpb25zID0gZGVmYXVsdFJlZHVjZU9wdGlvbnMsXG4gICAgc2hvdWxkTG9hZE1vcmUgPSBkZWZhdWx0U2hvdWxkTG9hZE1vcmVcbiAgfSA9IHBhcmFtcztcbiAgY29uc3QgaXNNb3VudGVkUmVmID0gdXNlSXNNb3VudGVkUmVmKCk7XG4gIGNvbnN0IHJlZHVjZU9wdGlvbnNSZWYgPSB1c2VMYXRlc3QocmVkdWNlT3B0aW9ucyk7XG4gIGNvbnN0IGxvYWRPcHRpb25zT25NZW51T3BlblJlZiA9IHVzZUxhdGVzdChsb2FkT3B0aW9uc09uTWVudU9wZW4pO1xuICBjb25zdCBpc0luaXRSZWYgPSB1c2VSZWYodHJ1ZSk7XG4gIGNvbnN0IHBhcmFtc1JlZiA9IHVzZVJlZihwYXJhbXMpO1xuICBwYXJhbXNSZWYuY3VycmVudCA9IHBhcmFtcztcbiAgY29uc3QgW19zdGF0ZUlkLCBzZXRTdGF0ZUlkXSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCBvcHRpb25zQ2FjaGVSZWYgPSB1c2VMYXp5UmVmKCgpID0+IGdldEluaXRpYWxPcHRpb25zQ2FjaGUocGFyYW1zKSk7XG4gIGNvbnN0IGNhbGxSZXF1ZXN0T3B0aW9uc1JlZiA9IHVzZUxhdGVzdChcbiAgICAoY2FsbGVyKSA9PiB7XG4gICAgICByZXF1ZXN0T3B0aW9ucyhcbiAgICAgICAgY2FsbGVyLFxuICAgICAgICBwYXJhbXNSZWYsXG4gICAgICAgIG9wdGlvbnNDYWNoZVJlZixcbiAgICAgICAgZGVib3VuY2VUaW1lb3V0LFxuICAgICAgICAocmVkdWNlU3RhdGUpID0+IHtcbiAgICAgICAgICBvcHRpb25zQ2FjaGVSZWYuY3VycmVudCA9IHJlZHVjZVN0YXRlKG9wdGlvbnNDYWNoZVJlZi5jdXJyZW50KTtcbiAgICAgICAgICBpZiAoaXNNb3VudGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHNldFN0YXRlSWQoaW5jcmVhc2VTdGF0ZUlkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHJlZHVjZU9wdGlvbnNSZWYuY3VycmVudCxcbiAgICAgICAgaXNNb3VudGVkUmVmXG4gICAgICApO1xuICAgIH1cbiAgKTtcbiAgY29uc3QgaGFuZGxlU2Nyb2xsZWRUb0JvdHRvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBjdXJyZW50SW5wdXRWYWx1ZSA9IHBhcmFtc1JlZi5jdXJyZW50LmlucHV0VmFsdWU7XG4gICAgY29uc3QgY3VycmVudE9wdGlvbnMyID0gb3B0aW9uc0NhY2hlUmVmLmN1cnJlbnRbY3VycmVudElucHV0VmFsdWVdO1xuICAgIGlmIChjdXJyZW50T3B0aW9uczIpIHtcbiAgICAgIGNhbGxSZXF1ZXN0T3B0aW9uc1JlZi5jdXJyZW50KFwibWVudS1zY3JvbGxcIik7XG4gICAgfVxuICB9LCBbY2FsbFJlcXVlc3RPcHRpb25zUmVmLCBvcHRpb25zQ2FjaGVSZWZdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNJbml0UmVmLmN1cnJlbnQpIHtcbiAgICAgIGlzSW5pdFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9wdGlvbnNDYWNoZVJlZi5jdXJyZW50ID0ge307XG4gICAgICBzZXRTdGF0ZUlkKGluY3JlYXNlU3RhdGVJZCk7XG4gICAgfVxuICAgIGlmIChkZWZhdWx0T3B0aW9ucyA9PT0gdHJ1ZSkge1xuICAgICAgY2FsbFJlcXVlc3RPcHRpb25zUmVmLmN1cnJlbnQoXCJhdXRvbG9hZFwiKTtcbiAgICB9XG4gIH0sIGRlcHMpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChtZW51SXNPcGVuICYmICFvcHRpb25zQ2FjaGVSZWYuY3VycmVudFtpbnB1dFZhbHVlXSkge1xuICAgICAgY2FsbFJlcXVlc3RPcHRpb25zUmVmLmN1cnJlbnQoXCJpbnB1dC1jaGFuZ2VcIik7XG4gICAgfVxuICB9LCBbY2FsbFJlcXVlc3RPcHRpb25zUmVmLCBpbnB1dFZhbHVlLCBtZW51SXNPcGVuLCBvcHRpb25zQ2FjaGVSZWZdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobWVudUlzT3BlbiAmJiAhb3B0aW9uc0NhY2hlUmVmLmN1cnJlbnRbXCJcIl0gJiYgbG9hZE9wdGlvbnNPbk1lbnVPcGVuUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNhbGxSZXF1ZXN0T3B0aW9uc1JlZi5jdXJyZW50KFwibWVudS10b2dnbGVcIik7XG4gICAgfVxuICB9LCBbXG4gICAgY2FsbFJlcXVlc3RPcHRpb25zUmVmLFxuICAgIGxvYWRPcHRpb25zT25NZW51T3BlblJlZixcbiAgICBtZW51SXNPcGVuLFxuICAgIG9wdGlvbnNDYWNoZVJlZlxuICBdKTtcbiAgY29uc3QgY3VycmVudE9wdGlvbnMgPSBvcHRpb25zQ2FjaGVSZWYuY3VycmVudFtpbnB1dFZhbHVlXSB8fCBnZXRJbml0aWFsQ2FjaGUocGFyYW1zKTtcbiAgcmV0dXJuIHtcbiAgICBoYW5kbGVTY3JvbGxlZFRvQm90dG9tLFxuICAgIHNob3VsZExvYWRNb3JlLFxuICAgIGZpbHRlck9wdGlvbixcbiAgICBpc0xvYWRpbmc6IGN1cnJlbnRPcHRpb25zLmlzTG9hZGluZyB8fCBjdXJyZW50T3B0aW9ucy5sb2NrZWRVbnRpbCA+IERhdGUubm93KCksXG4gICAgaXNGaXJzdExvYWQ6IGN1cnJlbnRPcHRpb25zLmlzRmlyc3RMb2FkLFxuICAgIG9wdGlvbnM6IGN1cnJlbnRPcHRpb25zLm9wdGlvbnNcbiAgfTtcbn07XG5cbi8vIHNyYy91c2VBc3luY1BhZ2luYXRlLnRzXG52YXIgdXNlQXN5bmNQYWdpbmF0ZSA9IChwYXJhbXMsIGRlcHMgPSBbXSkgPT4ge1xuICBjb25zdCB7XG4gICAgaW5wdXRWYWx1ZTogaW5wdXRWYWx1ZVBhcmFtLFxuICAgIG1lbnVJc09wZW46IG1lbnVJc09wZW5QYXJhbSxcbiAgICBkZWZhdWx0SW5wdXRWYWx1ZTogZGVmYXVsdElucHV0VmFsdWVQYXJhbSxcbiAgICBkZWZhdWx0TWVudUlzT3BlbjogZGVmYXVsdE1lbnVJc09wZW5QYXJhbSxcbiAgICBvbklucHV0Q2hhbmdlOiBvbklucHV0Q2hhbmdlUGFyYW0sXG4gICAgb25NZW51Q2xvc2U6IG9uTWVudUNsb3NlUGFyYW0sXG4gICAgb25NZW51T3Blbjogb25NZW51T3BlblBhcmFtXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IFtpbnB1dFZhbHVlU3RhdGUsIHNldElucHV0VmFsdWVdID0gdXNlU3RhdGUyKFxuICAgIGRlZmF1bHRJbnB1dFZhbHVlUGFyYW0gfHwgXCJcIlxuICApO1xuICBjb25zdCBbbWVudUlzT3BlblN0YXRlLCBzZXRNZW51SXNPcGVuXSA9IHVzZVN0YXRlMighIWRlZmF1bHRNZW51SXNPcGVuUGFyYW0pO1xuICBjb25zdCBpbnB1dFZhbHVlID0gdHlwZW9mIGlucHV0VmFsdWVQYXJhbSA9PT0gXCJzdHJpbmdcIiA/IGlucHV0VmFsdWVQYXJhbSA6IGlucHV0VmFsdWVTdGF0ZTtcbiAgY29uc3QgbWVudUlzT3BlbiA9IHR5cGVvZiBtZW51SXNPcGVuUGFyYW0gPT09IFwiYm9vbGVhblwiID8gbWVudUlzT3BlblBhcmFtIDogbWVudUlzT3BlblN0YXRlO1xuICBjb25zdCBvbklucHV0Q2hhbmdlID0gdXNlQ2FsbGJhY2syKFxuICAgIChuZXh0SW5wdXRWYWx1ZSwgYWN0aW9uTWV0YSkgPT4ge1xuICAgICAgaWYgKG9uSW5wdXRDaGFuZ2VQYXJhbSkge1xuICAgICAgICBvbklucHV0Q2hhbmdlUGFyYW0obmV4dElucHV0VmFsdWUsIGFjdGlvbk1ldGEpO1xuICAgICAgfVxuICAgICAgc2V0SW5wdXRWYWx1ZShuZXh0SW5wdXRWYWx1ZSk7XG4gICAgfSxcbiAgICBbb25JbnB1dENoYW5nZVBhcmFtXVxuICApO1xuICBjb25zdCBvbk1lbnVDbG9zZSA9IHVzZUNhbGxiYWNrMigoKSA9PiB7XG4gICAgaWYgKG9uTWVudUNsb3NlUGFyYW0pIHtcbiAgICAgIG9uTWVudUNsb3NlUGFyYW0oKTtcbiAgICB9XG4gICAgc2V0TWVudUlzT3BlbihmYWxzZSk7XG4gIH0sIFtvbk1lbnVDbG9zZVBhcmFtXSk7XG4gIGNvbnN0IG9uTWVudU9wZW4gPSB1c2VDYWxsYmFjazIoKCkgPT4ge1xuICAgIGlmIChvbk1lbnVPcGVuUGFyYW0pIHtcbiAgICAgIG9uTWVudU9wZW5QYXJhbSgpO1xuICAgIH1cbiAgICBzZXRNZW51SXNPcGVuKHRydWUpO1xuICB9LCBbb25NZW51T3BlblBhcmFtXSk7XG4gIGNvbnN0IGJhc2VSZXN1bHQgPSB1c2VBc3luY1BhZ2luYXRlQmFzZShcbiAgICB7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICBpbnB1dFZhbHVlLFxuICAgICAgbWVudUlzT3BlblxuICAgIH0sXG4gICAgZGVwc1xuICApO1xuICByZXR1cm4ge1xuICAgIC4uLmJhc2VSZXN1bHQsXG4gICAgaW5wdXRWYWx1ZSxcbiAgICBtZW51SXNPcGVuLFxuICAgIG9uSW5wdXRDaGFuZ2UsXG4gICAgb25NZW51Q2xvc2UsXG4gICAgb25NZW51T3BlblxuICB9O1xufTtcblxuLy8gc3JjL3VzZUNvbXBvbmVudHMudHNcbmltcG9ydCB7IHVzZU1lbW8gYXMgdXNlTWVtbzIgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNvbXBvbmVudHMgYXMgZGVmYXVsdENvbXBvbmVudHMgfSBmcm9tIFwicmVhY3Qtc2VsZWN0XCI7XG5cbi8vIHNyYy93cmFwTWVudUxpc3QudHN4XG5pbXBvcnQgY29tcG9zZVJlZnMgZnJvbSBcIkBzZXpuYW0vY29tcG9zZS1yZWFjdC1yZWZzXCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjayBhcyB1c2VDYWxsYmFjazMsIHVzZUVmZmVjdCBhcyB1c2VFZmZlY3QyLCB1c2VNZW1vLCB1c2VSZWYgYXMgdXNlUmVmMiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG52YXIgQ0hFQ0tfVElNRU9VVCA9IDMwMDtcbmZ1bmN0aW9uIHdyYXBNZW51TGlzdChNZW51TGlzdDIpIHtcbiAgZnVuY3Rpb24gV3JhcHBlZE1lbnVMaXN0KHByb3BzKSB7XG4gICAgY29uc3QgeyBzZWxlY3RQcm9wcywgaW5uZXJSZWYgfSA9IHByb3BzO1xuICAgIGNvbnN0IHsgaGFuZGxlU2Nyb2xsZWRUb0JvdHRvbSwgc2hvdWxkTG9hZE1vcmUgfSA9IHNlbGVjdFByb3BzO1xuICAgIGNvbnN0IGNoZWNrVGltZW91dFJlZiA9IHVzZVJlZjIobnVsbCk7XG4gICAgY29uc3QgbWVudUxpc3RSZWYgPSB1c2VSZWYyKG51bGwpO1xuICAgIGNvbnN0IHNob3VsZEhhbmRsZSA9IHVzZUNhbGxiYWNrMygoKSA9PiB7XG4gICAgICBjb25zdCBlbCA9IG1lbnVMaXN0UmVmLmN1cnJlbnQ7XG4gICAgICBpZiAoIWVsKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gZWw7XG4gICAgICByZXR1cm4gc2hvdWxkTG9hZE1vcmUoc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQsIHNjcm9sbFRvcCk7XG4gICAgfSwgW3Nob3VsZExvYWRNb3JlXSk7XG4gICAgY29uc3QgY2hlY2tBbmRIYW5kbGUgPSB1c2VDYWxsYmFjazMoKCkgPT4ge1xuICAgICAgaWYgKHNob3VsZEhhbmRsZSgpKSB7XG4gICAgICAgIGlmIChoYW5kbGVTY3JvbGxlZFRvQm90dG9tKSB7XG4gICAgICAgICAgaGFuZGxlU2Nyb2xsZWRUb0JvdHRvbSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgW3Nob3VsZEhhbmRsZSwgaGFuZGxlU2Nyb2xsZWRUb0JvdHRvbV0pO1xuICAgIGNvbnN0IHNldENoZWNrQW5kSGFuZGxlVGltZW91dCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgcmVzID0gKCkgPT4ge1xuICAgICAgICBjaGVja0FuZEhhbmRsZSgpO1xuICAgICAgICBjaGVja1RpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQocmVzLCBDSEVDS19USU1FT1VUKTtcbiAgICAgIH07XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0sIFtjaGVja0FuZEhhbmRsZV0pO1xuICAgIHVzZUVmZmVjdDIoKCkgPT4ge1xuICAgICAgc2V0Q2hlY2tBbmRIYW5kbGVUaW1lb3V0KCk7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoY2hlY2tUaW1lb3V0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQoY2hlY2tUaW1lb3V0UmVmLmN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIE1lbnVMaXN0MixcbiAgICAgIHtcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIGlubmVyUmVmOiBjb21wb3NlUmVmcyhpbm5lclJlZiwgbWVudUxpc3RSZWYpXG4gICAgICB9XG4gICAgKTtcbiAgfVxuICByZXR1cm4gV3JhcHBlZE1lbnVMaXN0O1xufVxuXG4vLyBzcmMvdXNlQ29tcG9uZW50cy50c1xudmFyIE1lbnVMaXN0ID0gd3JhcE1lbnVMaXN0KFxuICAvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vRXhwbGljaXRBbnk6IGZpeCB0eXBlc1xuICBkZWZhdWx0Q29tcG9uZW50cy5NZW51TGlzdFxuKTtcbnZhciB1c2VDb21wb25lbnRzID0gKGNvbXBvbmVudHMpID0+IHVzZU1lbW8yKFxuICAoKSA9PiAoe1xuICAgIE1lbnVMaXN0LFxuICAgIC4uLmNvbXBvbmVudHNcbiAgfSksXG4gIFtjb21wb25lbnRzXVxuKTtcblxuLy8gc3JjL3dpdGhBc3luY1BhZ2luYXRlLnRzeFxuaW1wb3J0IHsganN4IGFzIGpzeDIgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBkZWZhdWx0Q2FjaGVVbmlxcyA9IFtdO1xudmFyIGRlZmF1bHRDb21wb25lbnRzMiA9IHt9O1xuZnVuY3Rpb24gd2l0aEFzeW5jUGFnaW5hdGUoU2VsZWN0Q29tcG9uZW50KSB7XG4gIGZ1bmN0aW9uIFdpdGhBc3luY1BhZ2luYXRlKHByb3BzKSB7XG4gICAgY29uc3Qge1xuICAgICAgY29tcG9uZW50cyA9IGRlZmF1bHRDb21wb25lbnRzMixcbiAgICAgIHNlbGVjdFJlZiA9IHZvaWQgMCxcbiAgICAgIGlzTG9hZGluZzogaXNMb2FkaW5nUHJvcCxcbiAgICAgIGNhY2hlVW5pcXMgPSBkZWZhdWx0Q2FjaGVVbmlxcyxcbiAgICAgIC4uLnJlc3RcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgYXN5bmNQYWdpbmF0ZVByb3BzID0gdXNlQXN5bmNQYWdpbmF0ZShyZXN0LCBjYWNoZVVuaXFzKTtcbiAgICBjb25zdCBwcm9jZXNzZWRDb21wb25lbnRzID0gdXNlQ29tcG9uZW50cyhcbiAgICAgIGNvbXBvbmVudHNcbiAgICApO1xuICAgIGNvbnN0IGlzTG9hZGluZyA9IHR5cGVvZiBpc0xvYWRpbmdQcm9wID09PSBcImJvb2xlYW5cIiA/IGlzTG9hZGluZ1Byb3AgOiBhc3luY1BhZ2luYXRlUHJvcHMuaXNMb2FkaW5nO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4MihcbiAgICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICAgIHtcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIC4uLmFzeW5jUGFnaW5hdGVQcm9wcyxcbiAgICAgICAgaXNMb2FkaW5nLFxuICAgICAgICBjb21wb25lbnRzOiBwcm9jZXNzZWRDb21wb25lbnRzLFxuICAgICAgICByZWY6IHNlbGVjdFJlZlxuICAgICAgfVxuICAgICk7XG4gIH1cbiAgcmV0dXJuIFdpdGhBc3luY1BhZ2luYXRlO1xufVxuXG4vLyBzcmMvcmVkdWNlR3JvdXBlZE9wdGlvbnMudHNcbnZhciBjaGVja0dyb3VwID0gKGdyb3VwKSA9PiB7XG4gIGlmICghZ3JvdXApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3QgeyBsYWJlbCwgb3B0aW9ucyB9ID0gZ3JvdXA7XG4gIGlmICh0eXBlb2YgbGFiZWwgIT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIGxhYmVsICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICghQXJyYXkuaXNBcnJheShvcHRpb25zKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn07XG52YXIgcmVkdWNlR3JvdXBlZE9wdGlvbnMgPSAocHJldk9wdGlvbnMsIGxvYWRlZE9wdGlvbnMpID0+IHtcbiAgY29uc3QgcmVzID0gcHJldk9wdGlvbnMuc2xpY2UoKTtcbiAgY29uc3QgbWFwTGFiZWxUb0luZGV4ID0ge307XG4gIGxldCBwcmV2T3B0aW9uc0luZGV4ID0gMDtcbiAgY29uc3QgcHJldk9wdGlvbnNMZW5ndGggPSBwcmV2T3B0aW9ucy5sZW5ndGg7XG4gIGZvciAoY29uc3Qgb3B0aW9uT3JHcm91cCBvZiBsb2FkZWRPcHRpb25zKSB7XG4gICAgY29uc3QgZ3JvdXAgPSBjaGVja0dyb3VwKG9wdGlvbk9yR3JvdXApID8gb3B0aW9uT3JHcm91cCA6IHtcbiAgICAgIG9wdGlvbnM6IFtvcHRpb25Pckdyb3VwXVxuICAgIH07XG4gICAgY29uc3QgeyBsYWJlbCA9IFwiXCIgfSA9IGdyb3VwO1xuICAgIGxldCBncm91cEluZGV4ID0gbWFwTGFiZWxUb0luZGV4W2xhYmVsXTtcbiAgICBpZiAodHlwZW9mIGdyb3VwSW5kZXggIT09IFwibnVtYmVyXCIpIHtcbiAgICAgIGZvciAoOyBwcmV2T3B0aW9uc0luZGV4IDwgcHJldk9wdGlvbnNMZW5ndGggJiYgdHlwZW9mIG1hcExhYmVsVG9JbmRleFtsYWJlbF0gIT09IFwibnVtYmVyXCI7ICsrcHJldk9wdGlvbnNJbmRleCkge1xuICAgICAgICBjb25zdCBwcmV2R3JvdXAgPSBwcmV2T3B0aW9uc1twcmV2T3B0aW9uc0luZGV4XTtcbiAgICAgICAgaWYgKGNoZWNrR3JvdXAocHJldkdyb3VwKSkge1xuICAgICAgICAgIG1hcExhYmVsVG9JbmRleFtwcmV2R3JvdXAubGFiZWwgfHwgXCJcIl0gPSBwcmV2T3B0aW9uc0luZGV4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBncm91cEluZGV4ID0gbWFwTGFiZWxUb0luZGV4W2xhYmVsXTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBncm91cEluZGV4ICE9PSBcIm51bWJlclwiKSB7XG4gICAgICBtYXBMYWJlbFRvSW5kZXhbbGFiZWxdID0gcmVzLmxlbmd0aDtcbiAgICAgIHJlcy5wdXNoKGdyb3VwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzW2dyb3VwSW5kZXhdID0ge1xuICAgICAgICAuLi5yZXNbZ3JvdXBJbmRleF0sXG4gICAgICAgIG9wdGlvbnM6IFsuLi5yZXNbZ3JvdXBJbmRleF0ub3B0aW9ucywgLi4uZ3JvdXAub3B0aW9uc11cbiAgICAgIH07XG4gICAgfVxuICB9XG4gIHJldHVybiByZXM7XG59O1xuXG4vLyBzcmMvaW5kZXgudHNcbnZhciBBc3luY1BhZ2luYXRlID0gd2l0aEFzeW5jUGFnaW5hdGUoU2VsZWN0KTtcbmV4cG9ydCB7XG4gIEFzeW5jUGFnaW5hdGUsXG4gIGNoZWNrSXNSZXNwb25zZSxcbiAgcmVkdWNlR3JvdXBlZE9wdGlvbnMsXG4gIHVzZUFzeW5jUGFnaW5hdGUsXG4gIHVzZUFzeW5jUGFnaW5hdGVCYXNlLFxuICB1c2VDb21wb25lbnRzLFxuICB2YWxpZGF0ZVJlc3BvbnNlLFxuICB3aXRoQXN5bmNQYWdpbmF0ZSxcbiAgd3JhcE1lbnVMaXN0XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwiaW1wb3J0IHtTaG9wfSBmcm9tIFwiLi9zaG9wXCJcblxuZXhwb3J0IGNsYXNzIExheW91dGVyRGF0YSB7XG4gICAgZmlyc3RuYW1lOiBzdHJpbmdcbiAgICBjb21wYW55OiBzdHJpbmdcbiAgICBsYXN0bmFtZTogc3RyaW5nXG4gICAgc3RyZWV0OiBzdHJpbmdcbiAgICBob3VzZU51bWJlcjogc3RyaW5nXG4gICAgemlwOiBzdHJpbmdcbiAgICBjaXR5OiBzdHJpbmdcbiAgICBwaG9uZTogc3RyaW5nXG4gICAgY291bnRyeTogc3RyaW5nXG4gICAgdXN0aWQ6IHN0cmluZ1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZmlyc3RuYW1lID0gXCJcIlxuICAgICAgICB0aGlzLmNvbXBhbnkgPSBcIlwiXG4gICAgICAgIHRoaXMubGFzdG5hbWUgPSBcIlwiXG4gICAgICAgIHRoaXMuc3RyZWV0ID0gXCJcIlxuICAgICAgICB0aGlzLmhvdXNlTnVtYmVyID0gXCJcIlxuICAgICAgICB0aGlzLnppcCA9IFwiXCJcbiAgICAgICAgdGhpcy5jaXR5ID0gXCJcIlxuICAgICAgICB0aGlzLnBob25lID0gXCJcIlxuICAgICAgICB0aGlzLmNvdW50cnkgPSBcIlwiXG4gICAgICAgIHRoaXMudXN0aWQgPSBcIlwiXG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIENvbnRhY3Qge1xuICAgIHVpZDogbnVtYmVyXG4gICAgdXNlcm5hbWU6IHN0cmluZ1xuICAgIGVtYWlsOiBzdHJpbmdcbiAgICBwYXNzd29yZDogc3RyaW5nXG4gICAgdXVpZDogc3RyaW5nXG4gICAgc2hvcHM6IFNob3BbXVxuICAgIGxheW91dGVyX2RhdGE6IExheW91dGVyRGF0YVxuXG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy51aWQgPSAwXG4gICAgICAgIHRoaXMudXVpZCA9IFwiXCJcbiAgICAgICAgdGhpcy51c2VybmFtZSA9IFwiXCJcbiAgICAgICAgdGhpcy5lbWFpbCA9IFwiXCJcbiAgICAgICAgdGhpcy5wYXNzd29yZCA9IFwiXCJcbiAgICAgICAgdGhpcy5zaG9wcyA9IFtdXG4gICAgICAgIHRoaXMubGF5b3V0ZXJfZGF0YSA9IG5ldyBMYXlvdXRlckRhdGEoKVxuICAgIH1cblxuICAgIHBhcnNlRnJvbUpzb24oaXRlbTogYW55KSB7XG4gICAgICAgIHRoaXMudWlkID0gaXRlbS5jb250YWN0LnVpZFxuICAgICAgICB0aGlzLnV1aWQgPSBpdGVtLmNvbnRhY3QudXVpZFxuICAgICAgICB0aGlzLmVtYWlsID0gaXRlbS5jb250YWN0LmVtYWlsXG4gICAgICAgIHRoaXMudXNlcm5hbWUgPSBpdGVtLmNvbnRhY3QudXNlcm5hbWVcbiAgICAgICAgdGhpcy5sYXlvdXRlcl9kYXRhLmZpcnN0bmFtZSA9IGl0ZW0uY29udGFjdC5sYXlvdXRlcl9kYXRhLmZpcnN0bmFtZVxuICAgICAgICB0aGlzLmxheW91dGVyX2RhdGEuY29tcGFueSA9IGl0ZW0uY29udGFjdC5sYXlvdXRlcl9kYXRhLmNvbXBhbnlcbiAgICAgICAgdGhpcy5sYXlvdXRlcl9kYXRhLmxhc3RuYW1lID0gaXRlbS5jb250YWN0LmxheW91dGVyX2RhdGEubGFzdG5hbWVcbiAgICAgICAgdGhpcy5sYXlvdXRlcl9kYXRhLnN0cmVldCA9IGl0ZW0uY29udGFjdC5sYXlvdXRlcl9kYXRhLnN0cmVldFxuICAgICAgICB0aGlzLmxheW91dGVyX2RhdGEuaG91c2VOdW1iZXIgPSBpdGVtLmNvbnRhY3QubGF5b3V0ZXJfZGF0YS5ob3VzZU51bWJlclxuICAgICAgICB0aGlzLmxheW91dGVyX2RhdGEuemlwID0gaXRlbS5jb250YWN0LmxheW91dGVyX2RhdGEuemlwXG4gICAgICAgIHRoaXMubGF5b3V0ZXJfZGF0YS5jaXR5ID0gaXRlbS5jb250YWN0LmxheW91dGVyX2RhdGEuY2l0eVxuICAgICAgICB0aGlzLmxheW91dGVyX2RhdGEucGhvbmUgPSBpdGVtLmNvbnRhY3QubGF5b3V0ZXJfZGF0YS5waG9uZVxuICAgICAgICB0aGlzLmxheW91dGVyX2RhdGEuY291bnRyeSA9IGl0ZW0uY29udGFjdC5sYXlvdXRlcl9kYXRhLmNvdW50cnlcbiAgICAgICAgdGhpcy5sYXlvdXRlcl9kYXRhLnVzdGlkID0gaXRlbS5jb250YWN0LmxheW91dGVyX2RhdGEudXN0aWRcbiAgICB9XG5cbiAgICBwYXJzZUZyb21Gb3JtRGF0YShmb3JtZGF0YTogYW55LCBzaG9wOiBTaG9wID0gbnVsbCkge1xuXG4gICAgICAgIHRoaXMuZW1haWwgPSBmb3JtZGF0YS5lbWFpbFxuICAgICAgICB0aGlzLmxheW91dGVyX2RhdGEuY29tcGFueSA9IGZvcm1kYXRhLmNvbXBhbnlcbiAgICAgICAgdGhpcy5sYXlvdXRlcl9kYXRhLmZpcnN0bmFtZSA9IGZvcm1kYXRhLmZpcnN0bmFtZVxuICAgICAgICB0aGlzLmxheW91dGVyX2RhdGEubGFzdG5hbWUgPSBmb3JtZGF0YS5sYXN0bmFtZVxuICAgICAgICB0aGlzLmxheW91dGVyX2RhdGEuc3RyZWV0ID0gZm9ybWRhdGEuc3RyZWV0XG4gICAgICAgIHRoaXMubGF5b3V0ZXJfZGF0YS5ob3VzZU51bWJlciA9IGZvcm1kYXRhLmhvdXNlTnVtYmVyXG4gICAgICAgIHRoaXMubGF5b3V0ZXJfZGF0YS56aXAgPSBmb3JtZGF0YS56aXBcbiAgICAgICAgdGhpcy5sYXlvdXRlcl9kYXRhLmNpdHkgPSBmb3JtZGF0YS5jaXR5XG4gICAgICAgIHRoaXMubGF5b3V0ZXJfZGF0YS5waG9uZSA9IGZvcm1kYXRhLnBob25lXG4gICAgICAgIHRoaXMubGF5b3V0ZXJfZGF0YS5jb3VudHJ5ID0gZm9ybWRhdGEuY291bnRyeVxuICAgICAgICB0aGlzLmxheW91dGVyX2RhdGEudXN0aWQgPSBmb3JtZGF0YS51c3RpZFxuICAgICAgICBpZihzaG9wKSB7XG4gICAgICAgICAgICB0aGlzLnNob3BzLnB1c2goc2hvcClcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsImltcG9ydCB7YXV0b0luamVjdGFibGUsIHNpbmdsZXRvbn0gZnJvbSBcInRzeXJpbmdlXCI7XG5pbXBvcnQgeyBUb2tlbiB9IGZyb20gXCIuL3Rva2VuXCI7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHsgQ29udGFjdCB9IGZyb20gXCIuLi9tb2RlbC9jb250YWN0XCI7XG5pbXBvcnQgeyBBZGRyZXNzIH0gZnJvbSBcIi4uL21vZGVsL2FkZHJlc3NcIjtcbmltcG9ydCB7IFNob3AgfSBmcm9tIFwiLi4vbW9kZWwvc2hvcFwiO1xuXG5Ac2luZ2xldG9uKClcbkBhdXRvSW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29udGFjdFNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRva2VuPzogVG9rZW4pIHt9XG5cbiAgYXN5bmMgY3JlYXRlQ29udGFjdChjb250YWN0OiBDb250YWN0KTogUHJvbWlzZTxDb250YWN0PiB7XG5cbiAgICByZXR1cm4gYXdhaXQgYXhpb3MucG9zdCgnL2FwcHMvYXBpL2NvbnRhY3QvY3JlYXRlJywgeydjb250YWN0JzogY29udGFjdH0gLHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0F1dGhvcml6YXRpb24nOiAnQmVhcmVyICcgKyB0aGlzLnRva2VuPy5jdXJyZW50VG9rZW5cbiAgICAgIH1cbiAgICB9KS50aGVuKCggcmVzcG9uc2UgKSA9PiB7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUNvbnRhY3QoY29udGFjdDogQ29udGFjdCk6IFByb21pc2U8Q29udGFjdD4ge1xuXG4gICAgcmV0dXJuIGF3YWl0IGF4aW9zLnB1dCgnL2FwcHMvYXBpL2NvbnRhY3QvdXBkYXRlLycgKyBjb250YWN0LnV1aWQsIHsnY29udGFjdCc6IGNvbnRhY3R9ICx7XG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdBdXRob3JpemF0aW9uJzogJ0JlYXJlciAnICsgdGhpcy50b2tlbj8uY3VycmVudFRva2VuXG4gICAgICB9XG4gICAgfSkudGhlbigoIHJlc3BvbnNlICkgPT4ge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBnZXRDb250YWN0cyhzZWFyY2hRdWVyeTogU3RyaW5nLCBwYWdlOiBOdW1iZXIsIHNob3A6IFNob3ApOiBQcm9taXNlPENvbnRhY3RbXT4ge1xuXG4gICAgcmV0dXJuIGF3YWl0IGF4aW9zLmdldCgnL2FwcHMvYXBpL2NvbnRhY3QvYWxsYnlzaG9wLycgKyBzaG9wLnV1aWQgKyAnP3Rlcm09JyArIHNlYXJjaFF1ZXJ5ICsgJyZwYWdlPScgKyBwYWdlLCB7XG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdBdXRob3JpemF0aW9uJzogJ0JlYXJlciAnICsgdGhpcy50b2tlbj8uY3VycmVudFRva2VuXG4gICAgICAgIH1cbiAgICB9KS50aGVuKCggcmVzcG9uc2UgKSA9PiB7XG4gICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhLmRhdGEubWFwKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICBsZXQgY29udGFjdCA9IG5ldyBDb250YWN0O1xuICAgICAgICAgIGNvbnRhY3QucGFyc2VGcm9tSnNvbih7Y29udGFjdDogaXRlbX0pO1xuICAgICAgICAgIHJldHVybiBjb250YWN0O1xuICAgICAgICB9KVxuICAgIFxuICAgIH0pO1xuICB9XG5cbn1cbiIsImltcG9ydCB2YWxpZGF0ZSBmcm9tICcuL3ZhbGlkYXRlLmpzJztcbmNvbnN0IGJ5dGVUb0hleCA9IFtdO1xuZm9yIChsZXQgaSA9IDA7IGkgPCAyNTY7ICsraSkge1xuICAgIGJ5dGVUb0hleC5wdXNoKChpICsgMHgxMDApLnRvU3RyaW5nKDE2KS5zbGljZSgxKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gdW5zYWZlU3RyaW5naWZ5KGFyciwgb2Zmc2V0ID0gMCkge1xuICAgIHJldHVybiAoYnl0ZVRvSGV4W2FycltvZmZzZXQgKyAwXV0gK1xuICAgICAgICBieXRlVG9IZXhbYXJyW29mZnNldCArIDFdXSArXG4gICAgICAgIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgMl1dICtcbiAgICAgICAgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyAzXV0gK1xuICAgICAgICAnLScgK1xuICAgICAgICBieXRlVG9IZXhbYXJyW29mZnNldCArIDRdXSArXG4gICAgICAgIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgNV1dICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyA2XV0gK1xuICAgICAgICBieXRlVG9IZXhbYXJyW29mZnNldCArIDddXSArXG4gICAgICAgICctJyArXG4gICAgICAgIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgOF1dICtcbiAgICAgICAgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyA5XV0gK1xuICAgICAgICAnLScgK1xuICAgICAgICBieXRlVG9IZXhbYXJyW29mZnNldCArIDEwXV0gK1xuICAgICAgICBieXRlVG9IZXhbYXJyW29mZnNldCArIDExXV0gK1xuICAgICAgICBieXRlVG9IZXhbYXJyW29mZnNldCArIDEyXV0gK1xuICAgICAgICBieXRlVG9IZXhbYXJyW29mZnNldCArIDEzXV0gK1xuICAgICAgICBieXRlVG9IZXhbYXJyW29mZnNldCArIDE0XV0gK1xuICAgICAgICBieXRlVG9IZXhbYXJyW29mZnNldCArIDE1XV0pLnRvTG93ZXJDYXNlKCk7XG59XG5mdW5jdGlvbiBzdHJpbmdpZnkoYXJyLCBvZmZzZXQgPSAwKSB7XG4gICAgY29uc3QgdXVpZCA9IHVuc2FmZVN0cmluZ2lmeShhcnIsIG9mZnNldCk7XG4gICAgaWYgKCF2YWxpZGF0ZSh1dWlkKSkge1xuICAgICAgICB0aHJvdyBUeXBlRXJyb3IoJ1N0cmluZ2lmaWVkIFVVSUQgaXMgaW52YWxpZCcpO1xuICAgIH1cbiAgICByZXR1cm4gdXVpZDtcbn1cbmV4cG9ydCBkZWZhdWx0IHN0cmluZ2lmeTtcbiIsImxldCBnZXRSYW5kb21WYWx1ZXM7XG5jb25zdCBybmRzOCA9IG5ldyBVaW50OEFycmF5KDE2KTtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJuZygpIHtcbiAgICBpZiAoIWdldFJhbmRvbVZhbHVlcykge1xuICAgICAgICBpZiAodHlwZW9mIGNyeXB0byA9PT0gJ3VuZGVmaW5lZCcgfHwgIWNyeXB0by5nZXRSYW5kb21WYWx1ZXMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignY3J5cHRvLmdldFJhbmRvbVZhbHVlcygpIG5vdCBzdXBwb3J0ZWQuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdXVpZGpzL3V1aWQjZ2V0cmFuZG9tdmFsdWVzLW5vdC1zdXBwb3J0ZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBnZXRSYW5kb21WYWx1ZXMgPSBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzLmJpbmQoY3J5cHRvKTtcbiAgICB9XG4gICAgcmV0dXJuIGdldFJhbmRvbVZhbHVlcyhybmRzOCk7XG59XG4iLCJjb25zdCByYW5kb21VVUlEID0gdHlwZW9mIGNyeXB0byAhPT0gJ3VuZGVmaW5lZCcgJiYgY3J5cHRvLnJhbmRvbVVVSUQgJiYgY3J5cHRvLnJhbmRvbVVVSUQuYmluZChjcnlwdG8pO1xuZXhwb3J0IGRlZmF1bHQgeyByYW5kb21VVUlEIH07XG4iLCJpbXBvcnQgbmF0aXZlIGZyb20gJy4vbmF0aXZlLmpzJztcbmltcG9ydCBybmcgZnJvbSAnLi9ybmcuanMnO1xuaW1wb3J0IHsgdW5zYWZlU3RyaW5naWZ5IH0gZnJvbSAnLi9zdHJpbmdpZnkuanMnO1xuZnVuY3Rpb24gdjQob3B0aW9ucywgYnVmLCBvZmZzZXQpIHtcbiAgICBpZiAobmF0aXZlLnJhbmRvbVVVSUQgJiYgIWJ1ZiAmJiAhb3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbmF0aXZlLnJhbmRvbVVVSUQoKTtcbiAgICB9XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgY29uc3Qgcm5kcyA9IG9wdGlvbnMucmFuZG9tIHx8IChvcHRpb25zLnJuZyB8fCBybmcpKCk7XG4gICAgcm5kc1s2XSA9IChybmRzWzZdICYgMHgwZikgfCAweDQwO1xuICAgIHJuZHNbOF0gPSAocm5kc1s4XSAmIDB4M2YpIHwgMHg4MDtcbiAgICBpZiAoYnVmKSB7XG4gICAgICAgIG9mZnNldCA9IG9mZnNldCB8fCAwO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDE2OyArK2kpIHtcbiAgICAgICAgICAgIGJ1ZltvZmZzZXQgKyBpXSA9IHJuZHNbaV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJ1ZjtcbiAgICB9XG4gICAgcmV0dXJuIHVuc2FmZVN0cmluZ2lmeShybmRzKTtcbn1cbmV4cG9ydCBkZWZhdWx0IHY0O1xuIiwiaW1wb3J0IHt2NCBhcyB1dWlkdjR9IGZyb20gJ3V1aWQnXG5cbmV4cG9ydCBjbGFzcyBBY2NvdW50IHtcbiAgICB1aWQ6IE51bWJlclxuICAgIGFwcGVuZGl4OiBTdHJpbmdcbiAgICB0aXRsZTogU3RyaW5nXG4gICAgdXVpZDogU3RyaW5nXG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy51aWQgPSAwXG4gICAgICAgIHRoaXMudXVpZCA9IFwiXCJcbiAgICAgICAgdGhpcy5hcHBlbmRpeCA9IFwiXCJcbiAgICAgICAgdGhpcy50aXRsZSA9IFwiXCJcbiAgICB9XG5cbiAgICBwYXJzZUZyb21Kc29uKGl0ZW06IGFueSkge1xuICAgICAgICB0aGlzLnVpZCA9IGl0ZW0uYWNjb3VudC51aWRcbiAgICAgICAgdGhpcy51dWlkID0gaXRlbS5hY2NvdW50LnV1aWRcbiAgICAgICAgdGhpcy50aXRsZSA9IGl0ZW0uYWNjb3VudC50aXRsZVxuICAgICAgICB0aGlzLmFwcGVuZGl4ID0gaXRlbS5hY2NvdW50LmFwcGVuZGl4XG4gICAgfVxufSIsImltcG9ydCB7djQgYXMgdXVpZHY0fSBmcm9tICd1dWlkJ1xuaW1wb3J0IHtDb250YWN0fSBmcm9tIFwiLi9jb250YWN0XCJcbmltcG9ydCB7U2hvcH0gZnJvbSBcIi4vc2hvcFwiXG5cbmV4cG9ydCBjbGFzcyBBZGRyZXNzIHtcbiAgICB1aWQ6IE51bWJlclxuICAgIHV1aWQ6IFN0cmluZ1xuICAgIGZpcnN0bmFtZTogU3RyaW5nXG4gICAgbGFzdG5hbWU6IFN0cmluZ1xuICAgIHN0cmVldDogU3RyaW5nXG4gICAgaG91c2VOdW1iZXI6IFN0cmluZ1xuICAgIHppcDogU3RyaW5nXG4gICAgY29tcGFueTogU3RyaW5nXG4gICAgY29tcGFueTI6IFN0cmluZ1xuICAgIHBob25lOiBTdHJpbmdcbiAgICBjb3VudHJ5OiBTdHJpbmdcbiAgICB1c3RpZDogU3RyaW5nXG4gICAgY2l0eTogU3RyaW5nXG4gICAgZW1haWw6IFN0cmluZ1xuICAgIGNvbnRhY3Q6IENvbnRhY3RcbiAgICB0eXBlOiBOdW1iZXJcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnVpZCA9IDBcbiAgICAgICAgdGhpcy51dWlkID0gXCJcIlxuICAgICAgICB0aGlzLmZpcnN0bmFtZSA9IFwiXCJcbiAgICAgICAgdGhpcy5sYXN0bmFtZSA9IFwiXCJcbiAgICAgICAgdGhpcy5zdHJlZXQgPSBcIlwiXG4gICAgICAgIHRoaXMuaG91c2VOdW1iZXIgPSBcIlwiXG4gICAgICAgIHRoaXMuemlwID0gXCJcIlxuICAgICAgICB0aGlzLmNvbXBhbnkgPSBcIlwiXG4gICAgICAgIHRoaXMuY29tcGFueTIgPSBcIlwiXG4gICAgICAgIHRoaXMuY2l0eSA9IFwiXCJcbiAgICAgICAgdGhpcy5lbWFpbCA9IFwiXCJcbiAgICAgICAgdGhpcy5jb3VudHJ5ID0gXCJcIlxuICAgICAgICB0aGlzLnVzdGlkID0gXCJcIlxuICAgICAgICB0aGlzLmNvbnRhY3QgPSBuZXcgQ29udGFjdCgpXG4gICAgICAgIHRoaXMudHlwZSA9IDBcbiAgICB9XG5cbiAgICBwYXJzZUZyb21Kc29uKGl0ZW06IGFueSkge1xuICAgICAgICB0aGlzLnVpZCA9IGl0ZW0udWlkXG4gICAgICAgIHRoaXMudXVpZCA9IGl0ZW0udXVpZFxuICAgICAgICB0aGlzLmZpcnN0bmFtZSA9IGl0ZW0uZmlyc3RuYW1lXG4gICAgICAgIHRoaXMubGFzdG5hbWUgPSBpdGVtLmxhc3RuYW1lXG4gICAgICAgIHRoaXMuc3RyZWV0ID0gaXRlbS5zdHJlZXRcbiAgICAgICAgdGhpcy5ob3VzZU51bWJlciA9IGl0ZW0uaG91c2VOdW1iZXJcbiAgICAgICAgdGhpcy56aXAgPSBpdGVtLnppcFxuICAgICAgICB0aGlzLmNvbXBhbnkgPSBpdGVtLmNvbXBhbnlcbiAgICAgICAgdGhpcy5jb21wYW55MiA9IGl0ZW0uY29tcGFueTJcbiAgICAgICAgdGhpcy5waG9uZSA9IGl0ZW0ucGhvbmVcbiAgICAgICAgdGhpcy5jaXR5ID0gaXRlbS5jaXR5XG4gICAgICAgIHRoaXMuZW1haWwgPSBpdGVtLmVtYWlsXG4gICAgICAgIHRoaXMudHlwZSA9IGl0ZW0udHlwZVxuICAgICAgICB0aGlzLmNvdW50cnkgPSBpdGVtLmNvdW50cnlcbiAgICAgICAgdGhpcy51c3RpZCA9IGl0ZW0udXN0aWRcbiAgICB9XG5cbiAgICBwYXJzZUZyb21Gb3JtRGF0YShmb3JtZGF0YTogYW55KSB7XG5cbiAgICAgICAgdGhpcy5lbWFpbCA9IGZvcm1kYXRhLmVtYWlsXG4gICAgICAgIHRoaXMuY29tcGFueSA9IGZvcm1kYXRhLmNvbXBhbnlcbiAgICAgICAgdGhpcy5maXJzdG5hbWUgPSBmb3JtZGF0YS5maXJzdG5hbWVcbiAgICAgICAgdGhpcy5sYXN0bmFtZSA9IGZvcm1kYXRhLmxhc3RuYW1lXG4gICAgICAgIHRoaXMuc3RyZWV0ID0gZm9ybWRhdGEuc3RyZWV0XG4gICAgICAgIHRoaXMuaG91c2VOdW1iZXIgPSBmb3JtZGF0YS5ob3VzZU51bWJlclxuICAgICAgICB0aGlzLnppcCA9IGZvcm1kYXRhLnppcFxuICAgICAgICB0aGlzLmNpdHkgPSBmb3JtZGF0YS5jaXR5XG4gICAgICAgIHRoaXMucGhvbmUgPSBmb3JtZGF0YS5waG9uZVxuICAgICAgICB0aGlzLmNvdW50cnkgPSBmb3JtZGF0YS5jb3VudHJ5XG4gICAgICAgIHRoaXMudXN0aWQgPSBmb3JtZGF0YS51c3RpZFxuICAgIH1cbn0iLCJpbnRlcmZhY2UgUGFyYW0ge1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXJcbn1cblxuZXhwb3J0IGNsYXNzIFNwZWNpYWxQcm9kdWN0VHlwZU9iamVjdCB7XG4gICAgcGFyYW1zOiBBcnJheTxQYXJhbT4gPSBbXVxuICAgIHR5cDogTnVtYmVyID0gMFxuXG4gICAgcGFyc2VGcm9tSnNvbihpdGVtOiBhbnkpIHtcbiAgICAgICAgdGhpcy50eXAgPSBpdGVtLnR5cFxuICAgICAgICB0aGlzLnBhcmFtcyA9IGl0ZW0ucGFyYW1zXG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUHJvZHVjdCB7XG4gICAgaWQ6IE51bWJlciA9IDBcbiAgICB0aXRsZTogU3RyaW5nID0gXCJcIlxuICAgIHV1aWQ6IFN0cmluZyA9IFwiXCJcbiAgICBzcGVjaWFsUHJvZHVjdFR5cGVPYmplY3Q6IFNwZWNpYWxQcm9kdWN0VHlwZU9iamVjdCA9IG5ldyBTcGVjaWFsUHJvZHVjdFR5cGVPYmplY3QoKVxuXG4gICAgcGFyc2VGcm9tSnNvbihpdGVtOiBhbnkpIHtcbiAgICAgICAgdGhpcy5pZCA9IGl0ZW0uaWRcbiAgICAgICAgdGhpcy50aXRsZSA9IGl0ZW0udGl0bGVcbiAgICAgICAgdGhpcy51dWlkID0gaXRlbS51dWlkXG4gICAgICAgIHRoaXMuc3BlY2lhbFByb2R1Y3RUeXBlT2JqZWN0LnBhcnNlRnJvbUpzb24oaXRlbS5zcGVjaWFsUHJvZHVjdFR5cGVPYmplY3QpXG4gICAgfVxufSIsImV4cG9ydCBjbGFzcyBQcmljZSB7XHJcbiAgICBuZXQ6IG51bWJlciA9IDBcclxuICAgIHZhdDogbnVtYmVyID0gMFxyXG4gICAgZ3Jvc3M6IG51bWJlciA9IDBcclxuXHJcbiAgICBhbGxOZXQ6IG51bWJlciA9IDBcclxuICAgIGFsbFZhdDogbnVtYmVyID0gMFxyXG4gICAgYWxsR3Jvc3M6IG51bWJlciA9IDBcclxuXHJcbiAgICBwYXJzZUZyb21Kc29uKGl0ZW06IGFueSkge1xyXG4gICAgICAgIHRoaXMubmV0ID0gaXRlbS5uZXRcclxuICAgICAgICB0aGlzLnZhdCA9IGl0ZW0udmF0XHJcbiAgICAgICAgdGhpcy5ncm9zcyA9IGl0ZW0uZ3Jvc3NcclxuICAgICAgICB0aGlzLmFsbE5ldCA9IGl0ZW0uYWxsTmV0XHJcbiAgICAgICAgdGhpcy5hbGxWYXQgPSBpdGVtLmFsbFZhdFxyXG4gICAgICAgIHRoaXMuYWxsR3Jvc3MgPSBpdGVtLmFsbEdyb3NzXHJcbiAgICB9XHJcbn0iLCJpbXBvcnQge3Y0IGFzIHV1aWR2NH0gZnJvbSAndXVpZCdcclxuaW1wb3J0IHtQcm9kdWN0fSBmcm9tIFwiLi9wcm9kdWN0XCJcclxuaW1wb3J0IHtQcmljZX0gZnJvbSBcIi4vcHJpY2VcIlxyXG5cclxuZXhwb3J0IGNsYXNzIFBvcyB7XHJcbiAgICB1dWlkOiBTdHJpbmcgPSBcIlwiXHJcbiAgICBwcm9kdWN0OiBQcm9kdWN0ID0gbmV3IFByb2R1Y3QoKVxyXG4gICAgc3RhdHVzOiBOdW1iZXIgPSAxMFxyXG4gICAgY291bnQ6IE51bWJlciA9IDFcclxuICAgIHByaWNlOiBQcmljZSA9IG5ldyBQcmljZSgpXHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy51dWlkID0gdXVpZHY0KClcclxuICAgIH1cclxuXHJcbiAgICBwYXJzZUZyb21Kc29uKGl0ZW06IGFueSkge1xyXG4gICAgICAgIHRoaXMuY291bnQgPSBpdGVtLnByaWNlLmNvdW50XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBpdGVtLnN0YXR1c1xyXG4gICAgICAgIHRoaXMudXVpZCA9IGl0ZW0udXVpZFxyXG4gICAgICAgIHRoaXMucHJpY2UucGFyc2VGcm9tSnNvbihpdGVtLnByaWNlKVxyXG4gICAgICAgIHRoaXMucHJvZHVjdC5wYXJzZUZyb21Kc29uKGl0ZW0ucHJvZHVjdClcclxuICAgIH1cclxufSIsImV4cG9ydCBjbGFzcyBQYXltZW50IHtcbiAgICB1aWQ6IE51bWJlciA9IDBcbiAgICB0aXRsZTogU3RyaW5nID0gXCJcIlxuICAgIHV1aWQ6IFN0cmluZyA9IFwiXCJcblxuICAgIHBhcnNlRnJvbUpzb24oaXRlbTogYW55KSB7XG4gICAgICAgIHRoaXMudWlkID0gaXRlbS5wYXltZW50LnVpZFxuICAgICAgICB0aGlzLnRpdGxlID0gaXRlbS5wYXltZW50LnRpdGxlXG4gICAgICAgIHRoaXMudXVpZCA9IFN0cmluZyhpdGVtLnBheW1lbnQudXVpZClcbiAgICB9XG59IiwiXG5leHBvcnQgY2xhc3MgU2hpcHBpbmcge1xuICAgIHVpZDogTnVtYmVyID0gMFxuICAgIHRpdGxlOiBTdHJpbmcgPSBcIlwiXG4gICAgdXVpZDogU3RyaW5nID0gXCJcIlxuXG4gICAgcGFyc2VGcm9tSnNvbihpdGVtOiBhbnkpIHtcbiAgICAgICAgdGhpcy51aWQgPSBpdGVtLnNoaXBwaW5nLnVpZFxuICAgICAgICB0aGlzLnRpdGxlID0gaXRlbS5zaGlwcGluZy50aXRsZVxuICAgICAgICB0aGlzLnV1aWQgPSBTdHJpbmcoaXRlbS5zaGlwcGluZy51dWlkKVxuICAgIH1cbn0iLCJpbXBvcnQge3Y0IGFzIHV1aWR2NH0gZnJvbSAndXVpZCdcbmltcG9ydCB7Q29udGFjdH0gZnJvbSBcIi4vY29udGFjdFwiXG5pbXBvcnQge0FjY291bnR9IGZyb20gXCIuL2FjY291bnRcIlxuaW1wb3J0IHtBZGRyZXNzfSBmcm9tIFwiLi9hZGRyZXNzXCJcbmltcG9ydCB7UG9zfSBmcm9tIFwiLi9wb3NcIlxuaW1wb3J0IHtQYXltZW50fSBmcm9tIFwiLi9wYXltZW50XCJcbmltcG9ydCB7U2hpcHBpbmd9IGZyb20gXCIuL3NoaXBwaW5nXCJcbmltcG9ydCB7U2hvcH0gZnJvbSBcIi4vc2hvcFwiXG5cbmV4cG9ydCBjbGFzcyBPcmRlciB7XG5cbiAgICBhbGlhczogU3RyaW5nXG4gICAgdXVpZDogU3RyaW5nXG4gICAgZHJhZnQ6IEJvb2xlYW5cbiAgICBzYXZlZDogYm9vbGVhblxuXG4gICAgY29udGFjdDogQ29udGFjdCA9IG5ldyBDb250YWN0KClcbiAgICBhY2NvdW50OiBBY2NvdW50ID0gbmV3IEFjY291bnQoKVxuICAgIGRlbGl2ZXJ5QWRkcmVzczogQWRkcmVzcyA9IG5ldyBBZGRyZXNzKClcbiAgICBzZW5kZXJBZGRyZXNzOiBBZGRyZXNzID0gbmV3IEFkZHJlc3MoKVxuICAgIGludm9pY2VBZGRyZXNzOiBBZGRyZXNzID0gbmV3IEFkZHJlc3MoKVxuXG4gICAgcG9zaXRpb25zOiBBcnJheTxQb3M+ID0gW11cblxuICAgIHBheW1lbnQ6IFBheW1lbnQgPSBuZXcgUGF5bWVudCgpXG4gICAgc2hpcHBpbmc6IFNoaXBwaW5nID0gbmV3IFNoaXBwaW5nKClcblxuICAgIGJhc2tldEZpZWxkMTogU3RyaW5nXG4gICAgYmFza2V0RmllbGQyOiBTdHJpbmdcblxuICAgIHR5cGU6IE51bWJlclxuICAgIHNob3A6IFNob3AgPSBuZXcgU2hvcCgpXG5cbiAgICBuZXQ6IG51bWJlclxuICAgIHZhdDogbnVtYmVyXG4gICAgZ3Jvc3M6IG51bWJlclxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMudXVpZCA9IHV1aWR2NCgpXG4gICAgICAgIHRoaXMuYmFza2V0RmllbGQxID0gXCJcIlxuICAgICAgICB0aGlzLmJhc2tldEZpZWxkMiA9IFwiXCJcbiAgICAgICAgdGhpcy5kcmFmdCA9IHRydWVcbiAgICAgICAgdGhpcy5zYXZlZCA9IGZhbHNlXG4gICAgfVxuXG4gICAgYWRkUG9zaXRpb24ocG9zOiBQb3MpIHtcbiAgICAgICAgdGhpcy5wb3NpdGlvbnMucHVzaChwb3MpXG4gICAgfVxuXG4gICAgcGFyc2VGcm9tSnNvbihpdGVtOiBhbnkpIHtcbiAgICAgICAgdGhpcy5zaG9wLnBhcnNlRnJvbUpzb24oaXRlbSlcbiAgICAgICAgdGhpcy5jb250YWN0LnBhcnNlRnJvbUpzb24oaXRlbSlcbiAgICAgICAgdGhpcy5hY2NvdW50LnBhcnNlRnJvbUpzb24oaXRlbSlcbiAgICAgICAgdGhpcy5zaGlwcGluZy5wYXJzZUZyb21Kc29uKGl0ZW0pXG4gICAgICAgIHRoaXMucGF5bWVudC5wYXJzZUZyb21Kc29uKGl0ZW0pXG4gICAgICAgIHRoaXMuaW52b2ljZUFkZHJlc3MucGFyc2VGcm9tSnNvbihpdGVtLmludm9pY2VBZGRyZXNzKVxuICAgICAgICB0aGlzLmRlbGl2ZXJ5QWRkcmVzcy5wYXJzZUZyb21Kc29uKGl0ZW0uZGVsaXZlcnlBZGRyZXNzKVxuICAgICAgICB0aGlzLnNlbmRlckFkZHJlc3MucGFyc2VGcm9tSnNvbihpdGVtLnNlbmRlckFkZHJlc3MpXG4gICAgICAgIHRoaXMuYWxpYXMgPSBpdGVtLmFsaWFzXG4gICAgICAgIHRoaXMudXVpZCA9IGl0ZW0udXVpZFxuICAgICAgICB0aGlzLnR5cGUgPSBpdGVtLnR5cGVcbiAgICAgICAgdGhpcy5kcmFmdCA9IGl0ZW0uZHJhZnRcbiAgICAgICAgdGhpcy5zYXZlZCA9IHRydWVcbiAgICAgICAgdGhpcy5iYXNrZXRGaWVsZDEgPSBpdGVtLmJhc2tldEZpZWxkMVxuICAgICAgICB0aGlzLmJhc2tldEZpZWxkMiA9IGl0ZW0uYmFza2V0RmllbGQyXG5cbiAgICAgICAgaXRlbS5wb3NpdGlvbnMubWFwKChlKSA9PiB7XG4gICAgICAgICAgICBsZXQgcG9zID0gbmV3IFBvcygpXG4gICAgICAgICAgICBwb3MucGFyc2VGcm9tSnNvbihlKVxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbnMucHVzaChwb3MpXG4gICAgICAgIH0pXG4gICAgfVxufSIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxuXG5QZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXG5JTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXG5QRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCwgSXRlcmF0b3IgKi9cblxudmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7XG4gIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XG4gIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XG4gIGlmICh0eXBlb2YgYiAhPT0gXCJmdW5jdGlvblwiICYmIGIgIT09IG51bGwpXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XG4gIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG59XG5cbmV4cG9ydCB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcbiAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcbiAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0O1xuICB9XG4gIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19yZXN0KHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcbiAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICB0W3BdID0gc1twXTtcbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICB9XG4gIHJldHVybiB0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xuICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xuICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19wYXJhbShwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2VzRGVjb3JhdGUoY3RvciwgZGVzY3JpcHRvckluLCBkZWNvcmF0b3JzLCBjb250ZXh0SW4sIGluaXRpYWxpemVycywgZXh0cmFJbml0aWFsaXplcnMpIHtcbiAgZnVuY3Rpb24gYWNjZXB0KGYpIHsgaWYgKGYgIT09IHZvaWQgMCAmJiB0eXBlb2YgZiAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRnVuY3Rpb24gZXhwZWN0ZWRcIik7IHJldHVybiBmOyB9XG4gIHZhciBraW5kID0gY29udGV4dEluLmtpbmQsIGtleSA9IGtpbmQgPT09IFwiZ2V0dGVyXCIgPyBcImdldFwiIDoga2luZCA9PT0gXCJzZXR0ZXJcIiA/IFwic2V0XCIgOiBcInZhbHVlXCI7XG4gIHZhciB0YXJnZXQgPSAhZGVzY3JpcHRvckluICYmIGN0b3IgPyBjb250ZXh0SW5bXCJzdGF0aWNcIl0gPyBjdG9yIDogY3Rvci5wcm90b3R5cGUgOiBudWxsO1xuICB2YXIgZGVzY3JpcHRvciA9IGRlc2NyaXB0b3JJbiB8fCAodGFyZ2V0ID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGNvbnRleHRJbi5uYW1lKSA6IHt9KTtcbiAgdmFyIF8sIGRvbmUgPSBmYWxzZTtcbiAgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHZhciBjb250ZXh0ID0ge307XG4gICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbikgY29udGV4dFtwXSA9IHAgPT09IFwiYWNjZXNzXCIgPyB7fSA6IGNvbnRleHRJbltwXTtcbiAgICAgIGZvciAodmFyIHAgaW4gY29udGV4dEluLmFjY2VzcykgY29udGV4dC5hY2Nlc3NbcF0gPSBjb250ZXh0SW4uYWNjZXNzW3BdO1xuICAgICAgY29udGV4dC5hZGRJbml0aWFsaXplciA9IGZ1bmN0aW9uIChmKSB7IGlmIChkb25lKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkXCIpOyBleHRyYUluaXRpYWxpemVycy5wdXNoKGFjY2VwdChmIHx8IG51bGwpKTsgfTtcbiAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gXCJhY2Nlc3NvclwiID8geyBnZXQ6IGRlc2NyaXB0b3IuZ2V0LCBzZXQ6IGRlc2NyaXB0b3Iuc2V0IH0gOiBkZXNjcmlwdG9yW2tleV0sIGNvbnRleHQpO1xuICAgICAgaWYgKGtpbmQgPT09IFwiYWNjZXNzb3JcIikge1xuICAgICAgICAgIGlmIChyZXN1bHQgPT09IHZvaWQgMCkgY29udGludWU7XG4gICAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCB8fCB0eXBlb2YgcmVzdWx0ICE9PSBcIm9iamVjdFwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkXCIpO1xuICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5nZXQpKSBkZXNjcmlwdG9yLmdldCA9IF87XG4gICAgICAgICAgaWYgKF8gPSBhY2NlcHQocmVzdWx0LnNldCkpIGRlc2NyaXB0b3Iuc2V0ID0gXztcbiAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuaW5pdCkpIGluaXRpYWxpemVycy51bnNoaWZ0KF8pO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoXyA9IGFjY2VwdChyZXN1bHQpKSB7XG4gICAgICAgICAgaWYgKGtpbmQgPT09IFwiZmllbGRcIikgaW5pdGlhbGl6ZXJzLnVuc2hpZnQoXyk7XG4gICAgICAgICAgZWxzZSBkZXNjcmlwdG9yW2tleV0gPSBfO1xuICAgICAgfVxuICB9XG4gIGlmICh0YXJnZXQpIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGNvbnRleHRJbi5uYW1lLCBkZXNjcmlwdG9yKTtcbiAgZG9uZSA9IHRydWU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19ydW5Jbml0aWFsaXplcnModGhpc0FyZywgaW5pdGlhbGl6ZXJzLCB2YWx1ZSkge1xuICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbml0aWFsaXplcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhbHVlID0gdXNlVmFsdWUgPyBpbml0aWFsaXplcnNbaV0uY2FsbCh0aGlzQXJnLCB2YWx1ZSkgOiBpbml0aWFsaXplcnNbaV0uY2FsbCh0aGlzQXJnKTtcbiAgfVxuICByZXR1cm4gdXNlVmFsdWUgPyB2YWx1ZSA6IHZvaWQgMDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3Byb3BLZXkoeCkge1xuICByZXR1cm4gdHlwZW9mIHggPT09IFwic3ltYm9sXCIgPyB4IDogXCJcIi5jb25jYXQoeCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19zZXRGdW5jdGlvbk5hbWUoZiwgbmFtZSwgcHJlZml4KSB7XG4gIGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzeW1ib2xcIikgbmFtZSA9IG5hbWUuZGVzY3JpcHRpb24gPyBcIltcIi5jb25jYXQobmFtZS5kZXNjcmlwdGlvbiwgXCJdXCIpIDogXCJcIjtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCBcIm5hbWVcIiwgeyBjb25maWd1cmFibGU6IHRydWUsIHZhbHVlOiBwcmVmaXggPyBcIlwiLmNvbmNhdChwcmVmaXgsIFwiIFwiLCBuYW1lKSA6IG5hbWUgfSk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSkge1xuICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19nZW5lcmF0b3IodGhpc0FyZywgYm9keSkge1xuICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yID09PSBcImZ1bmN0aW9uXCIgPyBJdGVyYXRvciA6IE9iamVjdCkucHJvdG90eXBlKTtcbiAgcmV0dXJuIGcubmV4dCA9IHZlcmIoMCksIGdbXCJ0aHJvd1wiXSA9IHZlcmIoMSksIGdbXCJyZXR1cm5cIl0gPSB2ZXJiKDIpLCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICB3aGlsZSAoZyAmJiAoZyA9IDAsIG9wWzBdICYmIChfID0gMCkpLCBfKSB0cnkge1xuICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gIH1cbn1cblxuZXhwb3J0IHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTtcbiAgaWYgKCFkZXNjIHx8IChcImdldFwiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHtcbiAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH07XG4gIH1cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gIG9bazJdID0gbVtrXTtcbn0pO1xuXG5leHBvcnQgZnVuY3Rpb24gX19leHBvcnRTdGFyKG0sIG8pIHtcbiAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xuICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBTeW1ib2wuaXRlcmF0b3IsIG0gPSBzICYmIG9bc10sIGkgPSAwO1xuICBpZiAobSkgcmV0dXJuIG0uY2FsbChvKTtcbiAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgICAgbmV4dDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7XG4gICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xuICAgICAgfVxuICB9O1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xuICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07XG4gIGlmICghbSkgcmV0dXJuIG87XG4gIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xuICB0cnkge1xuICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7XG4gIH1cbiAgY2F0Y2ggKGVycm9yKSB7IGUgPSB7IGVycm9yOiBlcnJvciB9OyB9XG4gIGZpbmFsbHkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVtcInJldHVyblwiXSkpIG0uY2FsbChpKTtcbiAgICAgIH1cbiAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxuICB9XG4gIHJldHVybiBhcjtcbn1cblxuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWQoKSB7XG4gIGZvciAodmFyIGFyID0gW10sIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKVxuICAgICAgYXIgPSBhci5jb25jYXQoX19yZWFkKGFyZ3VtZW50c1tpXSkpO1xuICByZXR1cm4gYXI7XG59XG5cbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXlzKCkge1xuICBmb3IgKHZhciBzID0gMCwgaSA9IDAsIGlsID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGlsOyBpKyspIHMgKz0gYXJndW1lbnRzW2ldLmxlbmd0aDtcbiAgZm9yICh2YXIgciA9IEFycmF5KHMpLCBrID0gMCwgaSA9IDA7IGkgPCBpbDsgaSsrKVxuICAgICAgZm9yICh2YXIgYSA9IGFyZ3VtZW50c1tpXSwgaiA9IDAsIGpsID0gYS5sZW5ndGg7IGogPCBqbDsgaisrLCBrKyspXG4gICAgICAgICAgcltrXSA9IGFbal07XG4gIHJldHVybiByO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWRBcnJheSh0bywgZnJvbSwgcGFjaykge1xuICBpZiAocGFjayB8fCBhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBpID0gMCwgbCA9IGZyb20ubGVuZ3RoLCBhcjsgaSA8IGw7IGkrKykge1xuICAgICAgaWYgKGFyIHx8ICEoaSBpbiBmcm9tKSkge1xuICAgICAgICAgIGlmICghYXIpIGFyID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSwgMCwgaSk7XG4gICAgICAgICAgYXJbaV0gPSBmcm9tW2ldO1xuICAgICAgfVxuICB9XG4gIHJldHVybiB0by5jb25jYXQoYXIgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdCh2KSB7XG4gIHJldHVybiB0aGlzIGluc3RhbmNlb2YgX19hd2FpdCA/ICh0aGlzLnYgPSB2LCB0aGlzKSA6IG5ldyBfX2F3YWl0KHYpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0dlbmVyYXRvcih0aGlzQXJnLCBfYXJndW1lbnRzLCBnZW5lcmF0b3IpIHtcbiAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgdmFyIGcgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSksIGksIHEgPSBbXTtcbiAgcmV0dXJuIGkgPSBPYmplY3QuY3JlYXRlKCh0eXBlb2YgQXN5bmNJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gQXN5bmNJdGVyYXRvciA6IE9iamVjdCkucHJvdG90eXBlKSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiLCBhd2FpdFJldHVybiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcbiAgZnVuY3Rpb24gYXdhaXRSZXR1cm4oZikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh2KS50aGVuKGYsIHJlamVjdCk7IH07IH1cbiAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlmIChnW25dKSB7IGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IGlmIChmKSBpW25dID0gZihpW25dKTsgfSB9XG4gIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cbiAgZnVuY3Rpb24gc3RlcChyKSB7IHIudmFsdWUgaW5zdGFuY2VvZiBfX2F3YWl0ID8gUHJvbWlzZS5yZXNvbHZlKHIudmFsdWUudikudGhlbihmdWxmaWxsLCByZWplY3QpIDogc2V0dGxlKHFbMF1bMl0sIHIpOyB9XG4gIGZ1bmN0aW9uIGZ1bGZpbGwodmFsdWUpIHsgcmVzdW1lKFwibmV4dFwiLCB2YWx1ZSk7IH1cbiAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxuICBmdW5jdGlvbiBzZXR0bGUoZiwgdikgeyBpZiAoZih2KSwgcS5zaGlmdCgpLCBxLmxlbmd0aCkgcmVzdW1lKHFbMF1bMF0sIHFbMF1bMV0pOyB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jRGVsZWdhdG9yKG8pIHtcbiAgdmFyIGksIHA7XG4gIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XG4gIGZ1bmN0aW9uIHZlcmIobiwgZikgeyBpW25dID0gb1tuXSA/IGZ1bmN0aW9uICh2KSB7IHJldHVybiAocCA9ICFwKSA/IHsgdmFsdWU6IF9fYXdhaXQob1tuXSh2KSksIGRvbmU6IGZhbHNlIH0gOiBmID8gZih2KSA6IHY7IH0gOiBmOyB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jVmFsdWVzKG8pIHtcbiAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgdmFyIG0gPSBvW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSwgaTtcbiAgcmV0dXJuIG0gPyBtLmNhbGwobykgOiAobyA9IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKSwgaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGkpO1xuICBmdW5jdGlvbiB2ZXJiKG4pIHsgaVtuXSA9IG9bbl0gJiYgZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsgdiA9IG9bbl0odiksIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHYuZG9uZSwgdi52YWx1ZSk7IH0pOyB9OyB9XG4gIGZ1bmN0aW9uIHNldHRsZShyZXNvbHZlLCByZWplY3QsIGQsIHYpIHsgUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZnVuY3Rpb24odikgeyByZXNvbHZlKHsgdmFsdWU6IHYsIGRvbmU6IGQgfSk7IH0sIHJlamVjdCk7IH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fbWFrZVRlbXBsYXRlT2JqZWN0KGNvb2tlZCwgcmF3KSB7XG4gIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XG4gIHJldHVybiBjb29rZWQ7XG59O1xuXG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59O1xuXG52YXIgb3duS2V5cyA9IGZ1bmN0aW9uKG8pIHtcbiAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uIChvKSB7XG4gICAgdmFyIGFyID0gW107XG4gICAgZm9yICh2YXIgayBpbiBvKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sIGspKSBhclthci5sZW5ndGhdID0gaztcbiAgICByZXR1cm4gYXI7XG4gIH07XG4gIHJldHVybiBvd25LZXlzKG8pO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0U3Rhcihtb2QpIHtcbiAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgdmFyIHJlc3VsdCA9IHt9O1xuICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgPSBvd25LZXlzKG1vZCksIGkgPSAwOyBpIDwgay5sZW5ndGg7IGkrKykgaWYgKGtbaV0gIT09IFwiZGVmYXVsdFwiKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGtbaV0pO1xuICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0KG1vZCkge1xuICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IGRlZmF1bHQ6IG1vZCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgc3RhdGUsIGtpbmQsIGYpIHtcbiAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgZ2V0dGVyXCIpO1xuICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgcmV0dXJuIGtpbmQgPT09IFwibVwiID8gZiA6IGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyKSA6IGYgPyBmLnZhbHVlIDogc3RhdGUuZ2V0KHJlY2VpdmVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRTZXQocmVjZWl2ZXIsIHN0YXRlLCB2YWx1ZSwga2luZCwgZikge1xuICBpZiAoa2luZCA9PT0gXCJtXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGVcIik7XG4gIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlclwiKTtcbiAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgcmV0dXJuIChraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlciwgdmFsdWUpIDogZiA/IGYudmFsdWUgPSB2YWx1ZSA6IHN0YXRlLnNldChyZWNlaXZlciwgdmFsdWUpKSwgdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oc3RhdGUsIHJlY2VpdmVyKSB7XG4gIGlmIChyZWNlaXZlciA9PT0gbnVsbCB8fCAodHlwZW9mIHJlY2VpdmVyICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiByZWNlaXZlciAhPT0gXCJmdW5jdGlvblwiKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0XCIpO1xuICByZXR1cm4gdHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciA9PT0gc3RhdGUgOiBzdGF0ZS5oYXMocmVjZWl2ZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hZGREaXNwb3NhYmxlUmVzb3VyY2UoZW52LCB2YWx1ZSwgYXN5bmMpIHtcbiAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB2b2lkIDApIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiB2YWx1ZSAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkLlwiKTtcbiAgICB2YXIgZGlzcG9zZSwgaW5uZXI7XG4gICAgaWYgKGFzeW5jKSB7XG4gICAgICBpZiAoIVN5bWJvbC5hc3luY0Rpc3Bvc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNEaXNwb3NlIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXTtcbiAgICB9XG4gICAgaWYgKGRpc3Bvc2UgPT09IHZvaWQgMCkge1xuICAgICAgaWYgKCFTeW1ib2wuZGlzcG9zZSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5kaXNwb3NlIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuZGlzcG9zZV07XG4gICAgICBpZiAoYXN5bmMpIGlubmVyID0gZGlzcG9zZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBkaXNwb3NlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuXCIpO1xuICAgIGlmIChpbm5lcikgZGlzcG9zZSA9IGZ1bmN0aW9uKCkgeyB0cnkgeyBpbm5lci5jYWxsKHRoaXMpOyB9IGNhdGNoIChlKSB7IHJldHVybiBQcm9taXNlLnJlamVjdChlKTsgfSB9O1xuICAgIGVudi5zdGFjay5wdXNoKHsgdmFsdWU6IHZhbHVlLCBkaXNwb3NlOiBkaXNwb3NlLCBhc3luYzogYXN5bmMgfSk7XG4gIH1cbiAgZWxzZSBpZiAoYXN5bmMpIHtcbiAgICBlbnYuc3RhY2sucHVzaCh7IGFzeW5jOiB0cnVlIH0pO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxudmFyIF9TdXBwcmVzc2VkRXJyb3IgPSB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcbiAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19kaXNwb3NlUmVzb3VyY2VzKGVudikge1xuICBmdW5jdGlvbiBmYWlsKGUpIHtcbiAgICBlbnYuZXJyb3IgPSBlbnYuaGFzRXJyb3IgPyBuZXcgX1N1cHByZXNzZWRFcnJvcihlLCBlbnYuZXJyb3IsIFwiQW4gZXJyb3Igd2FzIHN1cHByZXNzZWQgZHVyaW5nIGRpc3Bvc2FsLlwiKSA6IGU7XG4gICAgZW52Lmhhc0Vycm9yID0gdHJ1ZTtcbiAgfVxuICB2YXIgciwgcyA9IDA7XG4gIGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgd2hpbGUgKHIgPSBlbnYuc3RhY2sucG9wKCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICghci5hc3luYyAmJiBzID09PSAxKSByZXR1cm4gcyA9IDAsIGVudi5zdGFjay5wdXNoKHIpLCBQcm9taXNlLnJlc29sdmUoKS50aGVuKG5leHQpO1xuICAgICAgICBpZiAoci5kaXNwb3NlKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IHIuZGlzcG9zZS5jYWxsKHIudmFsdWUpO1xuICAgICAgICAgIGlmIChyLmFzeW5jKSByZXR1cm4gcyB8PSAyLCBQcm9taXNlLnJlc29sdmUocmVzdWx0KS50aGVuKG5leHQsIGZ1bmN0aW9uKGUpIHsgZmFpbChlKTsgcmV0dXJuIG5leHQoKTsgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBzIHw9IDE7XG4gICAgICB9XG4gICAgICBjYXRjaCAoZSkge1xuICAgICAgICBmYWlsKGUpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocyA9PT0gMSkgcmV0dXJuIGVudi5oYXNFcnJvciA/IFByb21pc2UucmVqZWN0KGVudi5lcnJvcikgOiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICBpZiAoZW52Lmhhc0Vycm9yKSB0aHJvdyBlbnYuZXJyb3I7XG4gIH1cbiAgcmV0dXJuIG5leHQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uKHBhdGgsIHByZXNlcnZlSnN4KSB7XG4gIGlmICh0eXBlb2YgcGF0aCA9PT0gXCJzdHJpbmdcIiAmJiAvXlxcLlxcLj9cXC8vLnRlc3QocGF0aCkpIHtcbiAgICAgIHJldHVybiBwYXRoLnJlcGxhY2UoL1xcLih0c3gpJHwoKD86XFwuZCk/KSgoPzpcXC5bXi4vXSs/KT8pXFwuKFtjbV0/KXRzJC9pLCBmdW5jdGlvbiAobSwgdHN4LCBkLCBleHQsIGNtKSB7XG4gICAgICAgICAgcmV0dXJuIHRzeCA/IHByZXNlcnZlSnN4ID8gXCIuanN4XCIgOiBcIi5qc1wiIDogZCAmJiAoIWV4dCB8fCAhY20pID8gbSA6IChkICsgZXh0ICsgXCIuXCIgKyBjbS50b0xvd2VyQ2FzZSgpICsgXCJqc1wiKTtcbiAgICAgIH0pO1xuICB9XG4gIHJldHVybiBwYXRoO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIF9fZXh0ZW5kcyxcbiAgX19hc3NpZ24sXG4gIF9fcmVzdCxcbiAgX19kZWNvcmF0ZSxcbiAgX19wYXJhbSxcbiAgX19lc0RlY29yYXRlLFxuICBfX3J1bkluaXRpYWxpemVycyxcbiAgX19wcm9wS2V5LFxuICBfX3NldEZ1bmN0aW9uTmFtZSxcbiAgX19tZXRhZGF0YSxcbiAgX19hd2FpdGVyLFxuICBfX2dlbmVyYXRvcixcbiAgX19jcmVhdGVCaW5kaW5nLFxuICBfX2V4cG9ydFN0YXIsXG4gIF9fdmFsdWVzLFxuICBfX3JlYWQsXG4gIF9fc3ByZWFkLFxuICBfX3NwcmVhZEFycmF5cyxcbiAgX19zcHJlYWRBcnJheSxcbiAgX19hd2FpdCxcbiAgX19hc3luY0dlbmVyYXRvcixcbiAgX19hc3luY0RlbGVnYXRvcixcbiAgX19hc3luY1ZhbHVlcyxcbiAgX19tYWtlVGVtcGxhdGVPYmplY3QsXG4gIF9faW1wb3J0U3RhcixcbiAgX19pbXBvcnREZWZhdWx0LFxuICBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0LFxuICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0LFxuICBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4sXG4gIF9fYWRkRGlzcG9zYWJsZVJlc291cmNlLFxuICBfX2Rpc3Bvc2VSZXNvdXJjZXMsXG4gIF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uLFxufTtcbiIsImV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJztcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzRnVuY3Rpb24uanMubWFwIiwiZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVycm9yQ2xhc3MoY3JlYXRlSW1wbCkge1xuICAgIHZhciBfc3VwZXIgPSBmdW5jdGlvbiAoaW5zdGFuY2UpIHtcbiAgICAgICAgRXJyb3IuY2FsbChpbnN0YW5jZSk7XG4gICAgICAgIGluc3RhbmNlLnN0YWNrID0gbmV3IEVycm9yKCkuc3RhY2s7XG4gICAgfTtcbiAgICB2YXIgY3RvckZ1bmMgPSBjcmVhdGVJbXBsKF9zdXBlcik7XG4gICAgY3RvckZ1bmMucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpO1xuICAgIGN0b3JGdW5jLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3JGdW5jO1xuICAgIHJldHVybiBjdG9yRnVuYztcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNyZWF0ZUVycm9yQ2xhc3MuanMubWFwIiwiaW1wb3J0IHsgY3JlYXRlRXJyb3JDbGFzcyB9IGZyb20gJy4vY3JlYXRlRXJyb3JDbGFzcyc7XG5leHBvcnQgdmFyIFVuc3Vic2NyaXB0aW9uRXJyb3IgPSBjcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gVW5zdWJzY3JpcHRpb25FcnJvckltcGwoZXJyb3JzKSB7XG4gICAgICAgIF9zdXBlcih0aGlzKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlID0gZXJyb3JzXG4gICAgICAgICAgICA/IGVycm9ycy5sZW5ndGggKyBcIiBlcnJvcnMgb2NjdXJyZWQgZHVyaW5nIHVuc3Vic2NyaXB0aW9uOlxcblwiICsgZXJyb3JzLm1hcChmdW5jdGlvbiAoZXJyLCBpKSB7IHJldHVybiBpICsgMSArIFwiKSBcIiArIGVyci50b1N0cmluZygpOyB9KS5qb2luKCdcXG4gICcpXG4gICAgICAgICAgICA6ICcnO1xuICAgICAgICB0aGlzLm5hbWUgPSAnVW5zdWJzY3JpcHRpb25FcnJvcic7XG4gICAgICAgIHRoaXMuZXJyb3JzID0gZXJyb3JzO1xuICAgIH07XG59KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVVuc3Vic2NyaXB0aW9uRXJyb3IuanMubWFwIiwiZXhwb3J0IGZ1bmN0aW9uIGFyclJlbW92ZShhcnIsIGl0ZW0pIHtcbiAgICBpZiAoYXJyKSB7XG4gICAgICAgIHZhciBpbmRleCA9IGFyci5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAwIDw9IGluZGV4ICYmIGFyci5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFyclJlbW92ZS5qcy5tYXAiLCJpbXBvcnQgeyBfX3JlYWQsIF9fc3ByZWFkQXJyYXksIF9fdmFsdWVzIH0gZnJvbSBcInRzbGliXCI7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnLi91dGlsL2lzRnVuY3Rpb24nO1xuaW1wb3J0IHsgVW5zdWJzY3JpcHRpb25FcnJvciB9IGZyb20gJy4vdXRpbC9VbnN1YnNjcmlwdGlvbkVycm9yJztcbmltcG9ydCB7IGFyclJlbW92ZSB9IGZyb20gJy4vdXRpbC9hcnJSZW1vdmUnO1xudmFyIFN1YnNjcmlwdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gU3Vic2NyaXB0aW9uKGluaXRpYWxUZWFyZG93bikge1xuICAgICAgICB0aGlzLmluaXRpYWxUZWFyZG93biA9IGluaXRpYWxUZWFyZG93bjtcbiAgICAgICAgdGhpcy5jbG9zZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fcGFyZW50YWdlID0gbnVsbDtcbiAgICAgICAgdGhpcy5fZmluYWxpemVycyA9IG51bGw7XG4gICAgfVxuICAgIFN1YnNjcmlwdGlvbi5wcm90b3R5cGUudW5zdWJzY3JpYmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBlXzEsIF9hLCBlXzIsIF9iO1xuICAgICAgICB2YXIgZXJyb3JzO1xuICAgICAgICBpZiAoIXRoaXMuY2xvc2VkKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlZCA9IHRydWU7XG4gICAgICAgICAgICB2YXIgX3BhcmVudGFnZSA9IHRoaXMuX3BhcmVudGFnZTtcbiAgICAgICAgICAgIGlmIChfcGFyZW50YWdlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcGFyZW50YWdlID0gbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShfcGFyZW50YWdlKSkge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgX3BhcmVudGFnZV8xID0gX192YWx1ZXMoX3BhcmVudGFnZSksIF9wYXJlbnRhZ2VfMV8xID0gX3BhcmVudGFnZV8xLm5leHQoKTsgIV9wYXJlbnRhZ2VfMV8xLmRvbmU7IF9wYXJlbnRhZ2VfMV8xID0gX3BhcmVudGFnZV8xLm5leHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYXJlbnRfMSA9IF9wYXJlbnRhZ2VfMV8xLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudF8xLnJlbW92ZSh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZV8xXzEpIHsgZV8xID0geyBlcnJvcjogZV8xXzEgfTsgfVxuICAgICAgICAgICAgICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9wYXJlbnRhZ2VfMV8xICYmICFfcGFyZW50YWdlXzFfMS5kb25lICYmIChfYSA9IF9wYXJlbnRhZ2VfMS5yZXR1cm4pKSBfYS5jYWxsKF9wYXJlbnRhZ2VfMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBmaW5hbGx5IHsgaWYgKGVfMSkgdGhyb3cgZV8xLmVycm9yOyB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIF9wYXJlbnRhZ2UucmVtb3ZlKHRoaXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBpbml0aWFsRmluYWxpemVyID0gdGhpcy5pbml0aWFsVGVhcmRvd247XG4gICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihpbml0aWFsRmluYWxpemVyKSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxGaW5hbGl6ZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gZSBpbnN0YW5jZW9mIFVuc3Vic2NyaXB0aW9uRXJyb3IgPyBlLmVycm9ycyA6IFtlXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgX2ZpbmFsaXplcnMgPSB0aGlzLl9maW5hbGl6ZXJzO1xuICAgICAgICAgICAgaWYgKF9maW5hbGl6ZXJzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZmluYWxpemVycyA9IG51bGw7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgX2ZpbmFsaXplcnNfMSA9IF9fdmFsdWVzKF9maW5hbGl6ZXJzKSwgX2ZpbmFsaXplcnNfMV8xID0gX2ZpbmFsaXplcnNfMS5uZXh0KCk7ICFfZmluYWxpemVyc18xXzEuZG9uZTsgX2ZpbmFsaXplcnNfMV8xID0gX2ZpbmFsaXplcnNfMS5uZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmaW5hbGl6ZXIgPSBfZmluYWxpemVyc18xXzEudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWNGaW5hbGl6ZXIoZmluYWxpemVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSBlcnJvcnMgIT09IG51bGwgJiYgZXJyb3JzICE9PSB2b2lkIDAgPyBlcnJvcnMgOiBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgVW5zdWJzY3JpcHRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSBfX3NwcmVhZEFycmF5KF9fc3ByZWFkQXJyYXkoW10sIF9fcmVhZChlcnJvcnMpKSwgX19yZWFkKGVyci5lcnJvcnMpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycy5wdXNoKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoIChlXzJfMSkgeyBlXzIgPSB7IGVycm9yOiBlXzJfMSB9OyB9XG4gICAgICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2ZpbmFsaXplcnNfMV8xICYmICFfZmluYWxpemVyc18xXzEuZG9uZSAmJiAoX2IgPSBfZmluYWxpemVyc18xLnJldHVybikpIF9iLmNhbGwoX2ZpbmFsaXplcnNfMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZmluYWxseSB7IGlmIChlXzIpIHRocm93IGVfMi5lcnJvcjsgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlcnJvcnMpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdWJzY3JpcHRpb25FcnJvcihlcnJvcnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcbiAgICBTdWJzY3JpcHRpb24ucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh0ZWFyZG93bikge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICh0ZWFyZG93biAmJiB0ZWFyZG93biAhPT0gdGhpcykge1xuICAgICAgICAgICAgaWYgKHRoaXMuY2xvc2VkKSB7XG4gICAgICAgICAgICAgICAgZXhlY0ZpbmFsaXplcih0ZWFyZG93bik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGVhcmRvd24gaW5zdGFuY2VvZiBTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRlYXJkb3duLmNsb3NlZCB8fCB0ZWFyZG93bi5faGFzUGFyZW50KHRoaXMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGVhcmRvd24uX2FkZFBhcmVudCh0aGlzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKHRoaXMuX2ZpbmFsaXplcnMgPSAoX2EgPSB0aGlzLl9maW5hbGl6ZXJzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBbXSkucHVzaCh0ZWFyZG93bik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFN1YnNjcmlwdGlvbi5wcm90b3R5cGUuX2hhc1BhcmVudCA9IGZ1bmN0aW9uIChwYXJlbnQpIHtcbiAgICAgICAgdmFyIF9wYXJlbnRhZ2UgPSB0aGlzLl9wYXJlbnRhZ2U7XG4gICAgICAgIHJldHVybiBfcGFyZW50YWdlID09PSBwYXJlbnQgfHwgKEFycmF5LmlzQXJyYXkoX3BhcmVudGFnZSkgJiYgX3BhcmVudGFnZS5pbmNsdWRlcyhwYXJlbnQpKTtcbiAgICB9O1xuICAgIFN1YnNjcmlwdGlvbi5wcm90b3R5cGUuX2FkZFBhcmVudCA9IGZ1bmN0aW9uIChwYXJlbnQpIHtcbiAgICAgICAgdmFyIF9wYXJlbnRhZ2UgPSB0aGlzLl9wYXJlbnRhZ2U7XG4gICAgICAgIHRoaXMuX3BhcmVudGFnZSA9IEFycmF5LmlzQXJyYXkoX3BhcmVudGFnZSkgPyAoX3BhcmVudGFnZS5wdXNoKHBhcmVudCksIF9wYXJlbnRhZ2UpIDogX3BhcmVudGFnZSA/IFtfcGFyZW50YWdlLCBwYXJlbnRdIDogcGFyZW50O1xuICAgIH07XG4gICAgU3Vic2NyaXB0aW9uLnByb3RvdHlwZS5fcmVtb3ZlUGFyZW50ID0gZnVuY3Rpb24gKHBhcmVudCkge1xuICAgICAgICB2YXIgX3BhcmVudGFnZSA9IHRoaXMuX3BhcmVudGFnZTtcbiAgICAgICAgaWYgKF9wYXJlbnRhZ2UgPT09IHBhcmVudCkge1xuICAgICAgICAgICAgdGhpcy5fcGFyZW50YWdlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KF9wYXJlbnRhZ2UpKSB7XG4gICAgICAgICAgICBhcnJSZW1vdmUoX3BhcmVudGFnZSwgcGFyZW50KTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgU3Vic2NyaXB0aW9uLnByb3RvdHlwZS5yZW1vdmUgPSBmdW5jdGlvbiAodGVhcmRvd24pIHtcbiAgICAgICAgdmFyIF9maW5hbGl6ZXJzID0gdGhpcy5fZmluYWxpemVycztcbiAgICAgICAgX2ZpbmFsaXplcnMgJiYgYXJyUmVtb3ZlKF9maW5hbGl6ZXJzLCB0ZWFyZG93bik7XG4gICAgICAgIGlmICh0ZWFyZG93biBpbnN0YW5jZW9mIFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGVhcmRvd24uX3JlbW92ZVBhcmVudCh0aGlzKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgU3Vic2NyaXB0aW9uLkVNUFRZID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGVtcHR5ID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgICAgICBlbXB0eS5jbG9zZWQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gZW1wdHk7XG4gICAgfSkoKTtcbiAgICByZXR1cm4gU3Vic2NyaXB0aW9uO1xufSgpKTtcbmV4cG9ydCB7IFN1YnNjcmlwdGlvbiB9O1xuZXhwb3J0IHZhciBFTVBUWV9TVUJTQ1JJUFRJT04gPSBTdWJzY3JpcHRpb24uRU1QVFk7XG5leHBvcnQgZnVuY3Rpb24gaXNTdWJzY3JpcHRpb24odmFsdWUpIHtcbiAgICByZXR1cm4gKHZhbHVlIGluc3RhbmNlb2YgU3Vic2NyaXB0aW9uIHx8XG4gICAgICAgICh2YWx1ZSAmJiAnY2xvc2VkJyBpbiB2YWx1ZSAmJiBpc0Z1bmN0aW9uKHZhbHVlLnJlbW92ZSkgJiYgaXNGdW5jdGlvbih2YWx1ZS5hZGQpICYmIGlzRnVuY3Rpb24odmFsdWUudW5zdWJzY3JpYmUpKSk7XG59XG5mdW5jdGlvbiBleGVjRmluYWxpemVyKGZpbmFsaXplcikge1xuICAgIGlmIChpc0Z1bmN0aW9uKGZpbmFsaXplcikpIHtcbiAgICAgICAgZmluYWxpemVyKCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBmaW5hbGl6ZXIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1TdWJzY3JpcHRpb24uanMubWFwIiwiZXhwb3J0IHZhciBjb25maWcgPSB7XG4gICAgb25VbmhhbmRsZWRFcnJvcjogbnVsbCxcbiAgICBvblN0b3BwZWROb3RpZmljYXRpb246IG51bGwsXG4gICAgUHJvbWlzZTogdW5kZWZpbmVkLFxuICAgIHVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmc6IGZhbHNlLFxuICAgIHVzZURlcHJlY2F0ZWROZXh0Q29udGV4dDogZmFsc2UsXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uZmlnLmpzLm1hcCIsImltcG9ydCB7IF9fcmVhZCwgX19zcHJlYWRBcnJheSB9IGZyb20gXCJ0c2xpYlwiO1xuZXhwb3J0IHZhciB0aW1lb3V0UHJvdmlkZXIgPSB7XG4gICAgc2V0VGltZW91dDogZnVuY3Rpb24gKGhhbmRsZXIsIHRpbWVvdXQpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgX2kgPSAyOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgIGFyZ3NbX2kgLSAyXSA9IGFyZ3VtZW50c1tfaV07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRlbGVnYXRlID0gdGltZW91dFByb3ZpZGVyLmRlbGVnYXRlO1xuICAgICAgICBpZiAoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLnNldFRpbWVvdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBkZWxlZ2F0ZS5zZXRUaW1lb3V0LmFwcGx5KGRlbGVnYXRlLCBfX3NwcmVhZEFycmF5KFtoYW5kbGVyLCB0aW1lb3V0XSwgX19yZWFkKGFyZ3MpKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtoYW5kbGVyLCB0aW1lb3V0XSwgX19yZWFkKGFyZ3MpKSk7XG4gICAgfSxcbiAgICBjbGVhclRpbWVvdXQ6IGZ1bmN0aW9uIChoYW5kbGUpIHtcbiAgICAgICAgdmFyIGRlbGVnYXRlID0gdGltZW91dFByb3ZpZGVyLmRlbGVnYXRlO1xuICAgICAgICByZXR1cm4gKChkZWxlZ2F0ZSA9PT0gbnVsbCB8fCBkZWxlZ2F0ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGVsZWdhdGUuY2xlYXJUaW1lb3V0KSB8fCBjbGVhclRpbWVvdXQpKGhhbmRsZSk7XG4gICAgfSxcbiAgICBkZWxlZ2F0ZTogdW5kZWZpbmVkLFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRpbWVvdXRQcm92aWRlci5qcy5tYXAiLCJpbXBvcnQgeyBjb25maWcgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgdGltZW91dFByb3ZpZGVyIH0gZnJvbSAnLi4vc2NoZWR1bGVyL3RpbWVvdXRQcm92aWRlcic7XG5leHBvcnQgZnVuY3Rpb24gcmVwb3J0VW5oYW5kbGVkRXJyb3IoZXJyKSB7XG4gICAgdGltZW91dFByb3ZpZGVyLnNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgb25VbmhhbmRsZWRFcnJvciA9IGNvbmZpZy5vblVuaGFuZGxlZEVycm9yO1xuICAgICAgICBpZiAob25VbmhhbmRsZWRFcnJvcikge1xuICAgICAgICAgICAgb25VbmhhbmRsZWRFcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgfSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXBvcnRVbmhhbmRsZWRFcnJvci5qcy5tYXAiLCJleHBvcnQgZnVuY3Rpb24gbm9vcCgpIHsgfVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9vcC5qcy5tYXAiLCJpbXBvcnQgeyBjb25maWcgfSBmcm9tICcuLi9jb25maWcnO1xudmFyIGNvbnRleHQgPSBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIGVycm9yQ29udGV4dChjYikge1xuICAgIGlmIChjb25maWcudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZykge1xuICAgICAgICB2YXIgaXNSb290ID0gIWNvbnRleHQ7XG4gICAgICAgIGlmIChpc1Jvb3QpIHtcbiAgICAgICAgICAgIGNvbnRleHQgPSB7IGVycm9yVGhyb3duOiBmYWxzZSwgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgfVxuICAgICAgICBjYigpO1xuICAgICAgICBpZiAoaXNSb290KSB7XG4gICAgICAgICAgICB2YXIgX2EgPSBjb250ZXh0LCBlcnJvclRocm93biA9IF9hLmVycm9yVGhyb3duLCBlcnJvciA9IF9hLmVycm9yO1xuICAgICAgICAgICAgY29udGV4dCA9IG51bGw7XG4gICAgICAgICAgICBpZiAoZXJyb3JUaHJvd24pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY2IoKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gY2FwdHVyZUVycm9yKGVycikge1xuICAgIGlmIChjb25maWcudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyAmJiBjb250ZXh0KSB7XG4gICAgICAgIGNvbnRleHQuZXJyb3JUaHJvd24gPSB0cnVlO1xuICAgICAgICBjb250ZXh0LmVycm9yID0gZXJyO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVycm9yQ29udGV4dC5qcy5tYXAiLCJpbXBvcnQgeyBfX2V4dGVuZHMgfSBmcm9tIFwidHNsaWJcIjtcbmltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICcuL3V0aWwvaXNGdW5jdGlvbic7XG5pbXBvcnQgeyBpc1N1YnNjcmlwdGlvbiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAnLi9TdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgcmVwb3J0VW5oYW5kbGVkRXJyb3IgfSBmcm9tICcuL3V0aWwvcmVwb3J0VW5oYW5kbGVkRXJyb3InO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4vdXRpbC9ub29wJztcbmltcG9ydCB7IG5leHROb3RpZmljYXRpb24sIGVycm9yTm90aWZpY2F0aW9uLCBDT01QTEVURV9OT1RJRklDQVRJT04gfSBmcm9tICcuL05vdGlmaWNhdGlvbkZhY3Rvcmllcyc7XG5pbXBvcnQgeyB0aW1lb3V0UHJvdmlkZXIgfSBmcm9tICcuL3NjaGVkdWxlci90aW1lb3V0UHJvdmlkZXInO1xuaW1wb3J0IHsgY2FwdHVyZUVycm9yIH0gZnJvbSAnLi91dGlsL2Vycm9yQ29udGV4dCc7XG52YXIgU3Vic2NyaWJlciA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFN1YnNjcmliZXIsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gU3Vic2NyaWJlcihkZXN0aW5hdGlvbikge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5pc1N0b3BwZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKGRlc3RpbmF0aW9uKSB7XG4gICAgICAgICAgICBfdGhpcy5kZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uO1xuICAgICAgICAgICAgaWYgKGlzU3Vic2NyaXB0aW9uKGRlc3RpbmF0aW9uKSkge1xuICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uLmFkZChfdGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBfdGhpcy5kZXN0aW5hdGlvbiA9IEVNUFRZX09CU0VSVkVSO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgU3Vic2NyaWJlci5jcmVhdGUgPSBmdW5jdGlvbiAobmV4dCwgZXJyb3IsIGNvbXBsZXRlKSB7XG4gICAgICAgIHJldHVybiBuZXcgU2FmZVN1YnNjcmliZXIobmV4dCwgZXJyb3IsIGNvbXBsZXRlKTtcbiAgICB9O1xuICAgIFN1YnNjcmliZXIucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdG9wcGVkKSB7XG4gICAgICAgICAgICBoYW5kbGVTdG9wcGVkTm90aWZpY2F0aW9uKG5leHROb3RpZmljYXRpb24odmFsdWUpLCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX25leHQodmFsdWUpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBTdWJzY3JpYmVyLnByb3RvdHlwZS5lcnJvciA9IGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdG9wcGVkKSB7XG4gICAgICAgICAgICBoYW5kbGVTdG9wcGVkTm90aWZpY2F0aW9uKGVycm9yTm90aWZpY2F0aW9uKGVyciksIHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pc1N0b3BwZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5fZXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgU3Vic2NyaWJlci5wcm90b3R5cGUuY29tcGxldGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzU3RvcHBlZCkge1xuICAgICAgICAgICAgaGFuZGxlU3RvcHBlZE5vdGlmaWNhdGlvbihDT01QTEVURV9OT1RJRklDQVRJT04sIHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pc1N0b3BwZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5fY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgU3Vic2NyaWJlci5wcm90b3R5cGUudW5zdWJzY3JpYmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghdGhpcy5jbG9zZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTdG9wcGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIF9zdXBlci5wcm90b3R5cGUudW5zdWJzY3JpYmUuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIHRoaXMuZGVzdGluYXRpb24gPSBudWxsO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBTdWJzY3JpYmVyLnByb3RvdHlwZS5fbmV4dCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICB0aGlzLmRlc3RpbmF0aW9uLm5leHQodmFsdWUpO1xuICAgIH07XG4gICAgU3Vic2NyaWJlci5wcm90b3R5cGUuX2Vycm9yID0gZnVuY3Rpb24gKGVycikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5kZXN0aW5hdGlvbi5lcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBTdWJzY3JpYmVyLnByb3RvdHlwZS5fY29tcGxldGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBTdWJzY3JpYmVyO1xufShTdWJzY3JpcHRpb24pKTtcbmV4cG9ydCB7IFN1YnNjcmliZXIgfTtcbnZhciBfYmluZCA9IEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kO1xuZnVuY3Rpb24gYmluZChmbiwgdGhpc0FyZykge1xuICAgIHJldHVybiBfYmluZC5jYWxsKGZuLCB0aGlzQXJnKTtcbn1cbnZhciBDb25zdW1lck9ic2VydmVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBDb25zdW1lck9ic2VydmVyKHBhcnRpYWxPYnNlcnZlcikge1xuICAgICAgICB0aGlzLnBhcnRpYWxPYnNlcnZlciA9IHBhcnRpYWxPYnNlcnZlcjtcbiAgICB9XG4gICAgQ29uc3VtZXJPYnNlcnZlci5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICB2YXIgcGFydGlhbE9ic2VydmVyID0gdGhpcy5wYXJ0aWFsT2JzZXJ2ZXI7XG4gICAgICAgIGlmIChwYXJ0aWFsT2JzZXJ2ZXIubmV4dCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBwYXJ0aWFsT2JzZXJ2ZXIubmV4dCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVVbmhhbmRsZWRFcnJvcihlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIENvbnN1bWVyT2JzZXJ2ZXIucHJvdG90eXBlLmVycm9yID0gZnVuY3Rpb24gKGVycikge1xuICAgICAgICB2YXIgcGFydGlhbE9ic2VydmVyID0gdGhpcy5wYXJ0aWFsT2JzZXJ2ZXI7XG4gICAgICAgIGlmIChwYXJ0aWFsT2JzZXJ2ZXIuZXJyb3IpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcGFydGlhbE9ic2VydmVyLmVycm9yKGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVVbmhhbmRsZWRFcnJvcihlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBoYW5kbGVVbmhhbmRsZWRFcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBDb25zdW1lck9ic2VydmVyLnByb3RvdHlwZS5jb21wbGV0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHBhcnRpYWxPYnNlcnZlciA9IHRoaXMucGFydGlhbE9ic2VydmVyO1xuICAgICAgICBpZiAocGFydGlhbE9ic2VydmVyLmNvbXBsZXRlKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHBhcnRpYWxPYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlVW5oYW5kbGVkRXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gQ29uc3VtZXJPYnNlcnZlcjtcbn0oKSk7XG52YXIgU2FmZVN1YnNjcmliZXIgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhTYWZlU3Vic2NyaWJlciwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBTYWZlU3Vic2NyaWJlcihvYnNlcnZlck9yTmV4dCwgZXJyb3IsIGNvbXBsZXRlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XG4gICAgICAgIHZhciBwYXJ0aWFsT2JzZXJ2ZXI7XG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKG9ic2VydmVyT3JOZXh0KSB8fCAhb2JzZXJ2ZXJPck5leHQpIHtcbiAgICAgICAgICAgIHBhcnRpYWxPYnNlcnZlciA9IHtcbiAgICAgICAgICAgICAgICBuZXh0OiAob2JzZXJ2ZXJPck5leHQgIT09IG51bGwgJiYgb2JzZXJ2ZXJPck5leHQgIT09IHZvaWQgMCA/IG9ic2VydmVyT3JOZXh0IDogdW5kZWZpbmVkKSxcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3IgIT09IG51bGwgJiYgZXJyb3IgIT09IHZvaWQgMCA/IGVycm9yIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGNvbXBsZXRlOiBjb21wbGV0ZSAhPT0gbnVsbCAmJiBjb21wbGV0ZSAhPT0gdm9pZCAwID8gY29tcGxldGUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdmFyIGNvbnRleHRfMTtcbiAgICAgICAgICAgIGlmIChfdGhpcyAmJiBjb25maWcudXNlRGVwcmVjYXRlZE5leHRDb250ZXh0KSB7XG4gICAgICAgICAgICAgICAgY29udGV4dF8xID0gT2JqZWN0LmNyZWF0ZShvYnNlcnZlck9yTmV4dCk7XG4gICAgICAgICAgICAgICAgY29udGV4dF8xLnVuc3Vic2NyaWJlID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gX3RoaXMudW5zdWJzY3JpYmUoKTsgfTtcbiAgICAgICAgICAgICAgICBwYXJ0aWFsT2JzZXJ2ZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IG9ic2VydmVyT3JOZXh0Lm5leHQgJiYgYmluZChvYnNlcnZlck9yTmV4dC5uZXh0LCBjb250ZXh0XzEpLFxuICAgICAgICAgICAgICAgICAgICBlcnJvcjogb2JzZXJ2ZXJPck5leHQuZXJyb3IgJiYgYmluZChvYnNlcnZlck9yTmV4dC5lcnJvciwgY29udGV4dF8xKSxcbiAgICAgICAgICAgICAgICAgICAgY29tcGxldGU6IG9ic2VydmVyT3JOZXh0LmNvbXBsZXRlICYmIGJpbmQob2JzZXJ2ZXJPck5leHQuY29tcGxldGUsIGNvbnRleHRfMSksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcnRpYWxPYnNlcnZlciA9IG9ic2VydmVyT3JOZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIF90aGlzLmRlc3RpbmF0aW9uID0gbmV3IENvbnN1bWVyT2JzZXJ2ZXIocGFydGlhbE9ic2VydmVyKTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICByZXR1cm4gU2FmZVN1YnNjcmliZXI7XG59KFN1YnNjcmliZXIpKTtcbmV4cG9ydCB7IFNhZmVTdWJzY3JpYmVyIH07XG5mdW5jdGlvbiBoYW5kbGVVbmhhbmRsZWRFcnJvcihlcnJvcikge1xuICAgIGlmIChjb25maWcudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZykge1xuICAgICAgICBjYXB0dXJlRXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmVwb3J0VW5oYW5kbGVkRXJyb3IoZXJyb3IpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGRlZmF1bHRFcnJvckhhbmRsZXIoZXJyKSB7XG4gICAgdGhyb3cgZXJyO1xufVxuZnVuY3Rpb24gaGFuZGxlU3RvcHBlZE5vdGlmaWNhdGlvbihub3RpZmljYXRpb24sIHN1YnNjcmliZXIpIHtcbiAgICB2YXIgb25TdG9wcGVkTm90aWZpY2F0aW9uID0gY29uZmlnLm9uU3RvcHBlZE5vdGlmaWNhdGlvbjtcbiAgICBvblN0b3BwZWROb3RpZmljYXRpb24gJiYgdGltZW91dFByb3ZpZGVyLnNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyByZXR1cm4gb25TdG9wcGVkTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbiwgc3Vic2NyaWJlcik7IH0pO1xufVxuZXhwb3J0IHZhciBFTVBUWV9PQlNFUlZFUiA9IHtcbiAgICBjbG9zZWQ6IHRydWUsXG4gICAgbmV4dDogbm9vcCxcbiAgICBlcnJvcjogZGVmYXVsdEVycm9ySGFuZGxlcixcbiAgICBjb21wbGV0ZTogbm9vcCxcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1TdWJzY3JpYmVyLmpzLm1hcCIsImV4cG9ydCB2YXIgb2JzZXJ2YWJsZSA9IChmdW5jdGlvbiAoKSB7IHJldHVybiAodHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wub2JzZXJ2YWJsZSkgfHwgJ0BAb2JzZXJ2YWJsZSc7IH0pKCk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1vYnNlcnZhYmxlLmpzLm1hcCIsImV4cG9ydCBmdW5jdGlvbiBpZGVudGl0eSh4KSB7XG4gICAgcmV0dXJuIHg7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pZGVudGl0eS5qcy5tYXAiLCJpbXBvcnQgeyBpZGVudGl0eSB9IGZyb20gJy4vaWRlbnRpdHknO1xuZXhwb3J0IGZ1bmN0aW9uIHBpcGUoKSB7XG4gICAgdmFyIGZucyA9IFtdO1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgIGZuc1tfaV0gPSBhcmd1bWVudHNbX2ldO1xuICAgIH1cbiAgICByZXR1cm4gcGlwZUZyb21BcnJheShmbnMpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHBpcGVGcm9tQXJyYXkoZm5zKSB7XG4gICAgaWYgKGZucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGlkZW50aXR5O1xuICAgIH1cbiAgICBpZiAoZm5zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gZm5zWzBdO1xuICAgIH1cbiAgICByZXR1cm4gZnVuY3Rpb24gcGlwZWQoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGZucy5yZWR1Y2UoZnVuY3Rpb24gKHByZXYsIGZuKSB7IHJldHVybiBmbihwcmV2KTsgfSwgaW5wdXQpO1xuICAgIH07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1waXBlLmpzLm1hcCIsImltcG9ydCB7IFNhZmVTdWJzY3JpYmVyLCBTdWJzY3JpYmVyIH0gZnJvbSAnLi9TdWJzY3JpYmVyJztcbmltcG9ydCB7IGlzU3Vic2NyaXB0aW9uIH0gZnJvbSAnLi9TdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgb2JzZXJ2YWJsZSBhcyBTeW1ib2xfb2JzZXJ2YWJsZSB9IGZyb20gJy4vc3ltYm9sL29ic2VydmFibGUnO1xuaW1wb3J0IHsgcGlwZUZyb21BcnJheSB9IGZyb20gJy4vdXRpbC9waXBlJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICcuL3V0aWwvaXNGdW5jdGlvbic7XG5pbXBvcnQgeyBlcnJvckNvbnRleHQgfSBmcm9tICcuL3V0aWwvZXJyb3JDb250ZXh0JztcbnZhciBPYnNlcnZhYmxlID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBPYnNlcnZhYmxlKHN1YnNjcmliZSkge1xuICAgICAgICBpZiAoc3Vic2NyaWJlKSB7XG4gICAgICAgICAgICB0aGlzLl9zdWJzY3JpYmUgPSBzdWJzY3JpYmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgT2JzZXJ2YWJsZS5wcm90b3R5cGUubGlmdCA9IGZ1bmN0aW9uIChvcGVyYXRvcikge1xuICAgICAgICB2YXIgb2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlKCk7XG4gICAgICAgIG9ic2VydmFibGUuc291cmNlID0gdGhpcztcbiAgICAgICAgb2JzZXJ2YWJsZS5vcGVyYXRvciA9IG9wZXJhdG9yO1xuICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZTtcbiAgICB9O1xuICAgIE9ic2VydmFibGUucHJvdG90eXBlLnN1YnNjcmliZSA9IGZ1bmN0aW9uIChvYnNlcnZlck9yTmV4dCwgZXJyb3IsIGNvbXBsZXRlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBzdWJzY3JpYmVyID0gaXNTdWJzY3JpYmVyKG9ic2VydmVyT3JOZXh0KSA/IG9ic2VydmVyT3JOZXh0IDogbmV3IFNhZmVTdWJzY3JpYmVyKG9ic2VydmVyT3JOZXh0LCBlcnJvciwgY29tcGxldGUpO1xuICAgICAgICBlcnJvckNvbnRleHQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIF9hID0gX3RoaXMsIG9wZXJhdG9yID0gX2Eub3BlcmF0b3IsIHNvdXJjZSA9IF9hLnNvdXJjZTtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuYWRkKG9wZXJhdG9yXG4gICAgICAgICAgICAgICAgP1xuICAgICAgICAgICAgICAgICAgICBvcGVyYXRvci5jYWxsKHN1YnNjcmliZXIsIHNvdXJjZSlcbiAgICAgICAgICAgICAgICA6IHNvdXJjZVxuICAgICAgICAgICAgICAgICAgICA/XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5fc3Vic2NyaWJlKHN1YnNjcmliZXIpXG4gICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLl90cnlTdWJzY3JpYmUoc3Vic2NyaWJlcikpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHN1YnNjcmliZXI7XG4gICAgfTtcbiAgICBPYnNlcnZhYmxlLnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlID0gZnVuY3Rpb24gKHNpbmspIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdWJzY3JpYmUoc2luayk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgc2luay5lcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBPYnNlcnZhYmxlLnByb3RvdHlwZS5mb3JFYWNoID0gZnVuY3Rpb24gKG5leHQsIHByb21pc2VDdG9yKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHByb21pc2VDdG9yID0gZ2V0UHJvbWlzZUN0b3IocHJvbWlzZUN0b3IpO1xuICAgICAgICByZXR1cm4gbmV3IHByb21pc2VDdG9yKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIHZhciBzdWJzY3JpYmVyID0gbmV3IFNhZmVTdWJzY3JpYmVyKHtcbiAgICAgICAgICAgICAgICBuZXh0OiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogcmVqZWN0LFxuICAgICAgICAgICAgICAgIGNvbXBsZXRlOiByZXNvbHZlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBfdGhpcy5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZS5wcm90b3R5cGUuX3N1YnNjcmliZSA9IGZ1bmN0aW9uIChzdWJzY3JpYmVyKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgcmV0dXJuIChfYSA9IHRoaXMuc291cmNlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc3Vic2NyaWJlKHN1YnNjcmliZXIpO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZS5wcm90b3R5cGVbU3ltYm9sX29ic2VydmFibGVdID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIE9ic2VydmFibGUucHJvdG90eXBlLnBpcGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBvcGVyYXRpb25zID0gW107XG4gICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICBvcGVyYXRpb25zW19pXSA9IGFyZ3VtZW50c1tfaV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBpcGVGcm9tQXJyYXkob3BlcmF0aW9ucykodGhpcyk7XG4gICAgfTtcbiAgICBPYnNlcnZhYmxlLnByb3RvdHlwZS50b1Byb21pc2UgPSBmdW5jdGlvbiAocHJvbWlzZUN0b3IpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgcHJvbWlzZUN0b3IgPSBnZXRQcm9taXNlQ3Rvcihwcm9taXNlQ3Rvcik7XG4gICAgICAgIHJldHVybiBuZXcgcHJvbWlzZUN0b3IoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgdmFyIHZhbHVlO1xuICAgICAgICAgICAgX3RoaXMuc3Vic2NyaWJlKGZ1bmN0aW9uICh4KSB7IHJldHVybiAodmFsdWUgPSB4KTsgfSwgZnVuY3Rpb24gKGVycikgeyByZXR1cm4gcmVqZWN0KGVycik7IH0sIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHJlc29sdmUodmFsdWUpOyB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBPYnNlcnZhYmxlLmNyZWF0ZSA9IGZ1bmN0aW9uIChzdWJzY3JpYmUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKHN1YnNjcmliZSk7XG4gICAgfTtcbiAgICByZXR1cm4gT2JzZXJ2YWJsZTtcbn0oKSk7XG5leHBvcnQgeyBPYnNlcnZhYmxlIH07XG5mdW5jdGlvbiBnZXRQcm9taXNlQ3Rvcihwcm9taXNlQ3Rvcikge1xuICAgIHZhciBfYTtcbiAgICByZXR1cm4gKF9hID0gcHJvbWlzZUN0b3IgIT09IG51bGwgJiYgcHJvbWlzZUN0b3IgIT09IHZvaWQgMCA/IHByb21pc2VDdG9yIDogY29uZmlnLlByb21pc2UpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFByb21pc2U7XG59XG5mdW5jdGlvbiBpc09ic2VydmVyKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlICYmIGlzRnVuY3Rpb24odmFsdWUubmV4dCkgJiYgaXNGdW5jdGlvbih2YWx1ZS5lcnJvcikgJiYgaXNGdW5jdGlvbih2YWx1ZS5jb21wbGV0ZSk7XG59XG5mdW5jdGlvbiBpc1N1YnNjcmliZXIodmFsdWUpIHtcbiAgICByZXR1cm4gKHZhbHVlICYmIHZhbHVlIGluc3RhbmNlb2YgU3Vic2NyaWJlcikgfHwgKGlzT2JzZXJ2ZXIodmFsdWUpICYmIGlzU3Vic2NyaXB0aW9uKHZhbHVlKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1PYnNlcnZhYmxlLmpzLm1hcCIsImltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICcuL2lzRnVuY3Rpb24nO1xuZXhwb3J0IGZ1bmN0aW9uIGhhc0xpZnQoc291cmNlKSB7XG4gICAgcmV0dXJuIGlzRnVuY3Rpb24oc291cmNlID09PSBudWxsIHx8IHNvdXJjZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc291cmNlLmxpZnQpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG9wZXJhdGUoaW5pdCkge1xuICAgIHJldHVybiBmdW5jdGlvbiAoc291cmNlKSB7XG4gICAgICAgIGlmIChoYXNMaWZ0KHNvdXJjZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBzb3VyY2UubGlmdChmdW5jdGlvbiAobGlmdGVkU291cmNlKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGluaXQobGlmdGVkU291cmNlLCB0aGlzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5hYmxlIHRvIGxpZnQgdW5rbm93biBPYnNlcnZhYmxlIHR5cGUnKTtcbiAgICB9O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bGlmdC5qcy5tYXAiLCJpbXBvcnQgeyBfX2V4dGVuZHMgfSBmcm9tIFwidHNsaWJcIjtcbmltcG9ydCB7IFN1YnNjcmliZXIgfSBmcm9tICcuLi9TdWJzY3JpYmVyJztcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoZGVzdGluYXRpb24sIG9uTmV4dCwgb25Db21wbGV0ZSwgb25FcnJvciwgb25GaW5hbGl6ZSkge1xuICAgIHJldHVybiBuZXcgT3BlcmF0b3JTdWJzY3JpYmVyKGRlc3RpbmF0aW9uLCBvbk5leHQsIG9uQ29tcGxldGUsIG9uRXJyb3IsIG9uRmluYWxpemUpO1xufVxudmFyIE9wZXJhdG9yU3Vic2NyaWJlciA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKE9wZXJhdG9yU3Vic2NyaWJlciwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBPcGVyYXRvclN1YnNjcmliZXIoZGVzdGluYXRpb24sIG9uTmV4dCwgb25Db21wbGV0ZSwgb25FcnJvciwgb25GaW5hbGl6ZSwgc2hvdWxkVW5zdWJzY3JpYmUpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgZGVzdGluYXRpb24pIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLm9uRmluYWxpemUgPSBvbkZpbmFsaXplO1xuICAgICAgICBfdGhpcy5zaG91bGRVbnN1YnNjcmliZSA9IHNob3VsZFVuc3Vic2NyaWJlO1xuICAgICAgICBfdGhpcy5fbmV4dCA9IG9uTmV4dFxuICAgICAgICAgICAgPyBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBvbk5leHQodmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiBfc3VwZXIucHJvdG90eXBlLl9uZXh0O1xuICAgICAgICBfdGhpcy5fZXJyb3IgPSBvbkVycm9yXG4gICAgICAgICAgICA/IGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24uZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA6IF9zdXBlci5wcm90b3R5cGUuX2Vycm9yO1xuICAgICAgICBfdGhpcy5fY29tcGxldGUgPSBvbkNvbXBsZXRlXG4gICAgICAgICAgICA/IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBvbkNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24uZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA6IF9zdXBlci5wcm90b3R5cGUuX2NvbXBsZXRlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIE9wZXJhdG9yU3Vic2NyaWJlci5wcm90b3R5cGUudW5zdWJzY3JpYmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCF0aGlzLnNob3VsZFVuc3Vic2NyaWJlIHx8IHRoaXMuc2hvdWxkVW5zdWJzY3JpYmUoKSkge1xuICAgICAgICAgICAgdmFyIGNsb3NlZF8xID0gdGhpcy5jbG9zZWQ7XG4gICAgICAgICAgICBfc3VwZXIucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICAhY2xvc2VkXzEgJiYgKChfYSA9IHRoaXMub25GaW5hbGl6ZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwodGhpcykpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gT3BlcmF0b3JTdWJzY3JpYmVyO1xufShTdWJzY3JpYmVyKSk7XG5leHBvcnQgeyBPcGVyYXRvclN1YnNjcmliZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU9wZXJhdG9yU3Vic2NyaWJlci5qcy5tYXAiLCJpbXBvcnQgeyBjcmVhdGVFcnJvckNsYXNzIH0gZnJvbSAnLi9jcmVhdGVFcnJvckNsYXNzJztcbmV4cG9ydCB2YXIgT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IgPSBjcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3JJbXBsKCkge1xuICAgICAgICBfc3VwZXIodGhpcyk7XG4gICAgICAgIHRoaXMubmFtZSA9ICdPYmplY3RVbnN1YnNjcmliZWRFcnJvcic7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9ICdvYmplY3QgdW5zdWJzY3JpYmVkJztcbiAgICB9O1xufSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1PYmplY3RVbnN1YnNjcmliZWRFcnJvci5qcy5tYXAiLCJpbXBvcnQgeyBfX2V4dGVuZHMsIF9fdmFsdWVzIH0gZnJvbSBcInRzbGliXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgRU1QVFlfU1VCU0NSSVBUSU9OIH0gZnJvbSAnLi9TdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IgfSBmcm9tICcuL3V0aWwvT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3InO1xuaW1wb3J0IHsgYXJyUmVtb3ZlIH0gZnJvbSAnLi91dGlsL2FyclJlbW92ZSc7XG5pbXBvcnQgeyBlcnJvckNvbnRleHQgfSBmcm9tICcuL3V0aWwvZXJyb3JDb250ZXh0JztcbnZhciBTdWJqZWN0ID0gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU3ViamVjdCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBTdWJqZWN0KCkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jbG9zZWQgPSBmYWxzZTtcbiAgICAgICAgX3RoaXMuY3VycmVudE9ic2VydmVycyA9IG51bGw7XG4gICAgICAgIF90aGlzLm9ic2VydmVycyA9IFtdO1xuICAgICAgICBfdGhpcy5pc1N0b3BwZWQgPSBmYWxzZTtcbiAgICAgICAgX3RoaXMuaGFzRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgX3RoaXMudGhyb3duRXJyb3IgPSBudWxsO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFN1YmplY3QucHJvdG90eXBlLmxpZnQgPSBmdW5jdGlvbiAob3BlcmF0b3IpIHtcbiAgICAgICAgdmFyIHN1YmplY3QgPSBuZXcgQW5vbnltb3VzU3ViamVjdCh0aGlzLCB0aGlzKTtcbiAgICAgICAgc3ViamVjdC5vcGVyYXRvciA9IG9wZXJhdG9yO1xuICAgICAgICByZXR1cm4gc3ViamVjdDtcbiAgICB9O1xuICAgIFN1YmplY3QucHJvdG90eXBlLl90aHJvd0lmQ2xvc2VkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5jbG9zZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBPYmplY3RVbnN1YnNjcmliZWRFcnJvcigpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBTdWJqZWN0LnByb3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIGVycm9yQ29udGV4dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgZV8xLCBfYTtcbiAgICAgICAgICAgIF90aGlzLl90aHJvd0lmQ2xvc2VkKCk7XG4gICAgICAgICAgICBpZiAoIV90aGlzLmlzU3RvcHBlZCkge1xuICAgICAgICAgICAgICAgIGlmICghX3RoaXMuY3VycmVudE9ic2VydmVycykge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5jdXJyZW50T2JzZXJ2ZXJzID0gQXJyYXkuZnJvbShfdGhpcy5vYnNlcnZlcnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBfYiA9IF9fdmFsdWVzKF90aGlzLmN1cnJlbnRPYnNlcnZlcnMpLCBfYyA9IF9iLm5leHQoKTsgIV9jLmRvbmU7IF9jID0gX2IubmV4dCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgb2JzZXJ2ZXIgPSBfYy52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoIChlXzFfMSkgeyBlXzEgPSB7IGVycm9yOiBlXzFfMSB9OyB9XG4gICAgICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2MgJiYgIV9jLmRvbmUgJiYgKF9hID0gX2IucmV0dXJuKSkgX2EuY2FsbChfYik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZmluYWxseSB7IGlmIChlXzEpIHRocm93IGVfMS5lcnJvcjsgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBTdWJqZWN0LnByb3RvdHlwZS5lcnJvciA9IGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgZXJyb3JDb250ZXh0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzLl90aHJvd0lmQ2xvc2VkKCk7XG4gICAgICAgICAgICBpZiAoIV90aGlzLmlzU3RvcHBlZCkge1xuICAgICAgICAgICAgICAgIF90aGlzLmhhc0Vycm9yID0gX3RoaXMuaXNTdG9wcGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBfdGhpcy50aHJvd25FcnJvciA9IGVycjtcbiAgICAgICAgICAgICAgICB2YXIgb2JzZXJ2ZXJzID0gX3RoaXMub2JzZXJ2ZXJzO1xuICAgICAgICAgICAgICAgIHdoaWxlIChvYnNlcnZlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVycy5zaGlmdCgpLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIFN1YmplY3QucHJvdG90eXBlLmNvbXBsZXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBlcnJvckNvbnRleHQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgX3RoaXMuX3Rocm93SWZDbG9zZWQoKTtcbiAgICAgICAgICAgIGlmICghX3RoaXMuaXNTdG9wcGVkKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuaXNTdG9wcGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB2YXIgb2JzZXJ2ZXJzID0gX3RoaXMub2JzZXJ2ZXJzO1xuICAgICAgICAgICAgICAgIHdoaWxlIChvYnNlcnZlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVycy5zaGlmdCgpLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIFN1YmplY3QucHJvdG90eXBlLnVuc3Vic2NyaWJlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmlzU3RvcHBlZCA9IHRoaXMuY2xvc2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vYnNlcnZlcnMgPSB0aGlzLmN1cnJlbnRPYnNlcnZlcnMgPSBudWxsO1xuICAgIH07XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFN1YmplY3QucHJvdG90eXBlLCBcIm9ic2VydmVkXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICByZXR1cm4gKChfYSA9IHRoaXMub2JzZXJ2ZXJzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubGVuZ3RoKSA+IDA7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBTdWJqZWN0LnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlID0gZnVuY3Rpb24gKHN1YnNjcmliZXIpIHtcbiAgICAgICAgdGhpcy5fdGhyb3dJZkNsb3NlZCgpO1xuICAgICAgICByZXR1cm4gX3N1cGVyLnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlLmNhbGwodGhpcywgc3Vic2NyaWJlcik7XG4gICAgfTtcbiAgICBTdWJqZWN0LnByb3RvdHlwZS5fc3Vic2NyaWJlID0gZnVuY3Rpb24gKHN1YnNjcmliZXIpIHtcbiAgICAgICAgdGhpcy5fdGhyb3dJZkNsb3NlZCgpO1xuICAgICAgICB0aGlzLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKHN1YnNjcmliZXIpO1xuICAgICAgICByZXR1cm4gdGhpcy5faW5uZXJTdWJzY3JpYmUoc3Vic2NyaWJlcik7XG4gICAgfTtcbiAgICBTdWJqZWN0LnByb3RvdHlwZS5faW5uZXJTdWJzY3JpYmUgPSBmdW5jdGlvbiAoc3Vic2NyaWJlcikge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgX2EgPSB0aGlzLCBoYXNFcnJvciA9IF9hLmhhc0Vycm9yLCBpc1N0b3BwZWQgPSBfYS5pc1N0b3BwZWQsIG9ic2VydmVycyA9IF9hLm9ic2VydmVycztcbiAgICAgICAgaWYgKGhhc0Vycm9yIHx8IGlzU3RvcHBlZCkge1xuICAgICAgICAgICAgcmV0dXJuIEVNUFRZX1NVQlNDUklQVElPTjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRPYnNlcnZlcnMgPSBudWxsO1xuICAgICAgICBvYnNlcnZlcnMucHVzaChzdWJzY3JpYmVyKTtcbiAgICAgICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb24oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgX3RoaXMuY3VycmVudE9ic2VydmVycyA9IG51bGw7XG4gICAgICAgICAgICBhcnJSZW1vdmUob2JzZXJ2ZXJzLCBzdWJzY3JpYmVyKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBTdWJqZWN0LnByb3RvdHlwZS5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyA9IGZ1bmN0aW9uIChzdWJzY3JpYmVyKSB7XG4gICAgICAgIHZhciBfYSA9IHRoaXMsIGhhc0Vycm9yID0gX2EuaGFzRXJyb3IsIHRocm93bkVycm9yID0gX2EudGhyb3duRXJyb3IsIGlzU3RvcHBlZCA9IF9hLmlzU3RvcHBlZDtcbiAgICAgICAgaWYgKGhhc0Vycm9yKSB7XG4gICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKHRocm93bkVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc1N0b3BwZWQpIHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgU3ViamVjdC5wcm90b3R5cGUuYXNPYnNlcnZhYmxlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgb2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlKCk7XG4gICAgICAgIG9ic2VydmFibGUuc291cmNlID0gdGhpcztcbiAgICAgICAgcmV0dXJuIG9ic2VydmFibGU7XG4gICAgfTtcbiAgICBTdWJqZWN0LmNyZWF0ZSA9IGZ1bmN0aW9uIChkZXN0aW5hdGlvbiwgc291cmNlKSB7XG4gICAgICAgIHJldHVybiBuZXcgQW5vbnltb3VzU3ViamVjdChkZXN0aW5hdGlvbiwgc291cmNlKTtcbiAgICB9O1xuICAgIHJldHVybiBTdWJqZWN0O1xufShPYnNlcnZhYmxlKSk7XG5leHBvcnQgeyBTdWJqZWN0IH07XG52YXIgQW5vbnltb3VzU3ViamVjdCA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKEFub255bW91c1N1YmplY3QsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gQW5vbnltb3VzU3ViamVjdChkZXN0aW5hdGlvbiwgc291cmNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmRlc3RpbmF0aW9uID0gZGVzdGluYXRpb247XG4gICAgICAgIF90aGlzLnNvdXJjZSA9IHNvdXJjZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBBbm9ueW1vdXNTdWJqZWN0LnByb3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIChfYiA9IChfYSA9IHRoaXMuZGVzdGluYXRpb24pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5uZXh0KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgdmFsdWUpO1xuICAgIH07XG4gICAgQW5vbnltb3VzU3ViamVjdC5wcm90b3R5cGUuZXJyb3IgPSBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIChfYiA9IChfYSA9IHRoaXMuZGVzdGluYXRpb24pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5lcnJvcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIGVycik7XG4gICAgfTtcbiAgICBBbm9ueW1vdXNTdWJqZWN0LnByb3RvdHlwZS5jb21wbGV0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgKF9iID0gKF9hID0gdGhpcy5kZXN0aW5hdGlvbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNvbXBsZXRlKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7XG4gICAgfTtcbiAgICBBbm9ueW1vdXNTdWJqZWN0LnByb3RvdHlwZS5fc3Vic2NyaWJlID0gZnVuY3Rpb24gKHN1YnNjcmliZXIpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgcmV0dXJuIChfYiA9IChfYSA9IHRoaXMuc291cmNlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc3Vic2NyaWJlKHN1YnNjcmliZXIpKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBFTVBUWV9TVUJTQ1JJUFRJT047XG4gICAgfTtcbiAgICByZXR1cm4gQW5vbnltb3VzU3ViamVjdDtcbn0oU3ViamVjdCkpO1xuZXhwb3J0IHsgQW5vbnltb3VzU3ViamVjdCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U3ViamVjdC5qcy5tYXAiLCJpbXBvcnQgeyBfX2V4dGVuZHMgfSBmcm9tIFwidHNsaWJcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICcuL1N1YmplY3QnO1xudmFyIEJlaGF2aW9yU3ViamVjdCA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKEJlaGF2aW9yU3ViamVjdCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBCZWhhdmlvclN1YmplY3QoX3ZhbHVlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLl92YWx1ZSA9IF92YWx1ZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQmVoYXZpb3JTdWJqZWN0LnByb3RvdHlwZSwgXCJ2YWx1ZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWUoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIEJlaGF2aW9yU3ViamVjdC5wcm90b3R5cGUuX3N1YnNjcmliZSA9IGZ1bmN0aW9uIChzdWJzY3JpYmVyKSB7XG4gICAgICAgIHZhciBzdWJzY3JpcHRpb24gPSBfc3VwZXIucHJvdG90eXBlLl9zdWJzY3JpYmUuY2FsbCh0aGlzLCBzdWJzY3JpYmVyKTtcbiAgICAgICAgIXN1YnNjcmlwdGlvbi5jbG9zZWQgJiYgc3Vic2NyaWJlci5uZXh0KHRoaXMuX3ZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbjtcbiAgICB9O1xuICAgIEJlaGF2aW9yU3ViamVjdC5wcm90b3R5cGUuZ2V0VmFsdWUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfYSA9IHRoaXMsIGhhc0Vycm9yID0gX2EuaGFzRXJyb3IsIHRocm93bkVycm9yID0gX2EudGhyb3duRXJyb3IsIF92YWx1ZSA9IF9hLl92YWx1ZTtcbiAgICAgICAgaWYgKGhhc0Vycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyB0aHJvd25FcnJvcjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl90aHJvd0lmQ2xvc2VkKCk7XG4gICAgICAgIHJldHVybiBfdmFsdWU7XG4gICAgfTtcbiAgICBCZWhhdmlvclN1YmplY3QucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgX3N1cGVyLnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcywgKHRoaXMuX3ZhbHVlID0gdmFsdWUpKTtcbiAgICB9O1xuICAgIHJldHVybiBCZWhhdmlvclN1YmplY3Q7XG59KFN1YmplY3QpKTtcbmV4cG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QmVoYXZpb3JTdWJqZWN0LmpzLm1hcCIsImV4cG9ydCB2YXIgZGF0ZVRpbWVzdGFtcFByb3ZpZGVyID0ge1xuICAgIG5vdzogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKGRhdGVUaW1lc3RhbXBQcm92aWRlci5kZWxlZ2F0ZSB8fCBEYXRlKS5ub3coKTtcbiAgICB9LFxuICAgIGRlbGVnYXRlOiB1bmRlZmluZWQsXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0ZVRpbWVzdGFtcFByb3ZpZGVyLmpzLm1hcCIsImltcG9ydCB7IF9fZXh0ZW5kcyB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAnLi4vU3Vic2NyaXB0aW9uJztcbnZhciBBY3Rpb24gPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhBY3Rpb24sIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gQWN0aW9uKHNjaGVkdWxlciwgd29yaykge1xuICAgICAgICByZXR1cm4gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpcztcbiAgICB9XG4gICAgQWN0aW9uLnByb3RvdHlwZS5zY2hlZHVsZSA9IGZ1bmN0aW9uIChzdGF0ZSwgZGVsYXkpIHtcbiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsgZGVsYXkgPSAwOyB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgcmV0dXJuIEFjdGlvbjtcbn0oU3Vic2NyaXB0aW9uKSk7XG5leHBvcnQgeyBBY3Rpb24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUFjdGlvbi5qcy5tYXAiLCJpbXBvcnQgeyBfX3JlYWQsIF9fc3ByZWFkQXJyYXkgfSBmcm9tIFwidHNsaWJcIjtcbmV4cG9ydCB2YXIgaW50ZXJ2YWxQcm92aWRlciA9IHtcbiAgICBzZXRJbnRlcnZhbDogZnVuY3Rpb24gKGhhbmRsZXIsIHRpbWVvdXQpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgX2kgPSAyOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgIGFyZ3NbX2kgLSAyXSA9IGFyZ3VtZW50c1tfaV07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRlbGVnYXRlID0gaW50ZXJ2YWxQcm92aWRlci5kZWxlZ2F0ZTtcbiAgICAgICAgaWYgKGRlbGVnYXRlID09PSBudWxsIHx8IGRlbGVnYXRlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkZWxlZ2F0ZS5zZXRJbnRlcnZhbCkge1xuICAgICAgICAgICAgcmV0dXJuIGRlbGVnYXRlLnNldEludGVydmFsLmFwcGx5KGRlbGVnYXRlLCBfX3NwcmVhZEFycmF5KFtoYW5kbGVyLCB0aW1lb3V0XSwgX19yZWFkKGFyZ3MpKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNldEludGVydmFsLmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbaGFuZGxlciwgdGltZW91dF0sIF9fcmVhZChhcmdzKSkpO1xuICAgIH0sXG4gICAgY2xlYXJJbnRlcnZhbDogZnVuY3Rpb24gKGhhbmRsZSkge1xuICAgICAgICB2YXIgZGVsZWdhdGUgPSBpbnRlcnZhbFByb3ZpZGVyLmRlbGVnYXRlO1xuICAgICAgICByZXR1cm4gKChkZWxlZ2F0ZSA9PT0gbnVsbCB8fCBkZWxlZ2F0ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGVsZWdhdGUuY2xlYXJJbnRlcnZhbCkgfHwgY2xlYXJJbnRlcnZhbCkoaGFuZGxlKTtcbiAgICB9LFxuICAgIGRlbGVnYXRlOiB1bmRlZmluZWQsXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW50ZXJ2YWxQcm92aWRlci5qcy5tYXAiLCJpbXBvcnQgeyBfX2V4dGVuZHMgfSBmcm9tIFwidHNsaWJcIjtcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4vQWN0aW9uJztcbmltcG9ydCB7IGludGVydmFsUHJvdmlkZXIgfSBmcm9tICcuL2ludGVydmFsUHJvdmlkZXInO1xuaW1wb3J0IHsgYXJyUmVtb3ZlIH0gZnJvbSAnLi4vdXRpbC9hcnJSZW1vdmUnO1xudmFyIEFzeW5jQWN0aW9uID0gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoQXN5bmNBY3Rpb24sIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gQXN5bmNBY3Rpb24oc2NoZWR1bGVyLCB3b3JrKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHNjaGVkdWxlciwgd29yaykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuc2NoZWR1bGVyID0gc2NoZWR1bGVyO1xuICAgICAgICBfdGhpcy53b3JrID0gd29yaztcbiAgICAgICAgX3RoaXMucGVuZGluZyA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIEFzeW5jQWN0aW9uLnByb3RvdHlwZS5zY2hlZHVsZSA9IGZ1bmN0aW9uIChzdGF0ZSwgZGVsYXkpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgeyBkZWxheSA9IDA7IH1cbiAgICAgICAgaWYgKHRoaXMuY2xvc2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgICAgIHZhciBpZCA9IHRoaXMuaWQ7XG4gICAgICAgIHZhciBzY2hlZHVsZXIgPSB0aGlzLnNjaGVkdWxlcjtcbiAgICAgICAgaWYgKGlkICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuaWQgPSB0aGlzLnJlY3ljbGVBc3luY0lkKHNjaGVkdWxlciwgaWQsIGRlbGF5KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBlbmRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmRlbGF5ID0gZGVsYXk7XG4gICAgICAgIHRoaXMuaWQgPSAoX2EgPSB0aGlzLmlkKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLnJlcXVlc3RBc3luY0lkKHNjaGVkdWxlciwgdGhpcy5pZCwgZGVsYXkpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIEFzeW5jQWN0aW9uLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZCA9IGZ1bmN0aW9uIChzY2hlZHVsZXIsIF9pZCwgZGVsYXkpIHtcbiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsgZGVsYXkgPSAwOyB9XG4gICAgICAgIHJldHVybiBpbnRlcnZhbFByb3ZpZGVyLnNldEludGVydmFsKHNjaGVkdWxlci5mbHVzaC5iaW5kKHNjaGVkdWxlciwgdGhpcyksIGRlbGF5KTtcbiAgICB9O1xuICAgIEFzeW5jQWN0aW9uLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZCA9IGZ1bmN0aW9uIChfc2NoZWR1bGVyLCBpZCwgZGVsYXkpIHtcbiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsgZGVsYXkgPSAwOyB9XG4gICAgICAgIGlmIChkZWxheSAhPSBudWxsICYmIHRoaXMuZGVsYXkgPT09IGRlbGF5ICYmIHRoaXMucGVuZGluZyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBpZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaWQgIT0gbnVsbCkge1xuICAgICAgICAgICAgaW50ZXJ2YWxQcm92aWRlci5jbGVhckludGVydmFsKGlkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH07XG4gICAgQXN5bmNBY3Rpb24ucHJvdG90eXBlLmV4ZWN1dGUgPSBmdW5jdGlvbiAoc3RhdGUsIGRlbGF5KSB7XG4gICAgICAgIGlmICh0aGlzLmNsb3NlZCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcignZXhlY3V0aW5nIGEgY2FuY2VsbGVkIGFjdGlvbicpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGVuZGluZyA9IGZhbHNlO1xuICAgICAgICB2YXIgZXJyb3IgPSB0aGlzLl9leGVjdXRlKHN0YXRlLCBkZWxheSk7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMucGVuZGluZyA9PT0gZmFsc2UgJiYgdGhpcy5pZCAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmlkID0gdGhpcy5yZWN5Y2xlQXN5bmNJZCh0aGlzLnNjaGVkdWxlciwgdGhpcy5pZCwgbnVsbCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIEFzeW5jQWN0aW9uLnByb3RvdHlwZS5fZXhlY3V0ZSA9IGZ1bmN0aW9uIChzdGF0ZSwgX2RlbGF5KSB7XG4gICAgICAgIHZhciBlcnJvcmVkID0gZmFsc2U7XG4gICAgICAgIHZhciBlcnJvclZhbHVlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy53b3JrKHN0YXRlKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgZXJyb3JlZCA9IHRydWU7XG4gICAgICAgICAgICBlcnJvclZhbHVlID0gZSA/IGUgOiBuZXcgRXJyb3IoJ1NjaGVkdWxlZCBhY3Rpb24gdGhyZXcgZmFsc3kgZXJyb3InKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyb3JlZCkge1xuICAgICAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yVmFsdWU7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIEFzeW5jQWN0aW9uLnByb3RvdHlwZS51bnN1YnNjcmliZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNsb3NlZCkge1xuICAgICAgICAgICAgdmFyIF9hID0gdGhpcywgaWQgPSBfYS5pZCwgc2NoZWR1bGVyID0gX2Euc2NoZWR1bGVyO1xuICAgICAgICAgICAgdmFyIGFjdGlvbnMgPSBzY2hlZHVsZXIuYWN0aW9ucztcbiAgICAgICAgICAgIHRoaXMud29yayA9IHRoaXMuc3RhdGUgPSB0aGlzLnNjaGVkdWxlciA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIGFyclJlbW92ZShhY3Rpb25zLCB0aGlzKTtcbiAgICAgICAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pZCA9IHRoaXMucmVjeWNsZUFzeW5jSWQoc2NoZWR1bGVyLCBpZCwgbnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmRlbGF5ID0gbnVsbDtcbiAgICAgICAgICAgIF9zdXBlci5wcm90b3R5cGUudW5zdWJzY3JpYmUuY2FsbCh0aGlzKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIEFzeW5jQWN0aW9uO1xufShBY3Rpb24pKTtcbmV4cG9ydCB7IEFzeW5jQWN0aW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Bc3luY0FjdGlvbi5qcy5tYXAiLCJpbXBvcnQgeyBkYXRlVGltZXN0YW1wUHJvdmlkZXIgfSBmcm9tICcuL3NjaGVkdWxlci9kYXRlVGltZXN0YW1wUHJvdmlkZXInO1xudmFyIFNjaGVkdWxlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gU2NoZWR1bGVyKHNjaGVkdWxlckFjdGlvbkN0b3IsIG5vdykge1xuICAgICAgICBpZiAobm93ID09PSB2b2lkIDApIHsgbm93ID0gU2NoZWR1bGVyLm5vdzsgfVxuICAgICAgICB0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3IgPSBzY2hlZHVsZXJBY3Rpb25DdG9yO1xuICAgICAgICB0aGlzLm5vdyA9IG5vdztcbiAgICB9XG4gICAgU2NoZWR1bGVyLnByb3RvdHlwZS5zY2hlZHVsZSA9IGZ1bmN0aW9uICh3b3JrLCBkZWxheSwgc3RhdGUpIHtcbiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsgZGVsYXkgPSAwOyB9XG4gICAgICAgIHJldHVybiBuZXcgdGhpcy5zY2hlZHVsZXJBY3Rpb25DdG9yKHRoaXMsIHdvcmspLnNjaGVkdWxlKHN0YXRlLCBkZWxheSk7XG4gICAgfTtcbiAgICBTY2hlZHVsZXIubm93ID0gZGF0ZVRpbWVzdGFtcFByb3ZpZGVyLm5vdztcbiAgICByZXR1cm4gU2NoZWR1bGVyO1xufSgpKTtcbmV4cG9ydCB7IFNjaGVkdWxlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2NoZWR1bGVyLmpzLm1hcCIsImltcG9ydCB7IF9fZXh0ZW5kcyB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IHsgU2NoZWR1bGVyIH0gZnJvbSAnLi4vU2NoZWR1bGVyJztcbnZhciBBc3luY1NjaGVkdWxlciA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKEFzeW5jU2NoZWR1bGVyLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIEFzeW5jU2NoZWR1bGVyKFNjaGVkdWxlckFjdGlvbiwgbm93KSB7XG4gICAgICAgIGlmIChub3cgPT09IHZvaWQgMCkgeyBub3cgPSBTY2hlZHVsZXIubm93OyB9XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIFNjaGVkdWxlckFjdGlvbiwgbm93KSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5hY3Rpb25zID0gW107XG4gICAgICAgIF90aGlzLl9hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBBc3luY1NjaGVkdWxlci5wcm90b3R5cGUuZmx1c2ggPSBmdW5jdGlvbiAoYWN0aW9uKSB7XG4gICAgICAgIHZhciBhY3Rpb25zID0gdGhpcy5hY3Rpb25zO1xuICAgICAgICBpZiAodGhpcy5fYWN0aXZlKSB7XG4gICAgICAgICAgICBhY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZXJyb3I7XG4gICAgICAgIHRoaXMuX2FjdGl2ZSA9IHRydWU7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIGlmICgoZXJyb3IgPSBhY3Rpb24uZXhlY3V0ZShhY3Rpb24uc3RhdGUsIGFjdGlvbi5kZWxheSkpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gd2hpbGUgKChhY3Rpb24gPSBhY3Rpb25zLnNoaWZ0KCkpKTtcbiAgICAgICAgdGhpcy5fYWN0aXZlID0gZmFsc2U7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgd2hpbGUgKChhY3Rpb24gPSBhY3Rpb25zLnNoaWZ0KCkpKSB7XG4gICAgICAgICAgICAgICAgYWN0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIEFzeW5jU2NoZWR1bGVyO1xufShTY2hlZHVsZXIpKTtcbmV4cG9ydCB7IEFzeW5jU2NoZWR1bGVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Bc3luY1NjaGVkdWxlci5qcy5tYXAiLCJpbXBvcnQgeyBBc3luY0FjdGlvbiB9IGZyb20gJy4vQXN5bmNBY3Rpb24nO1xuaW1wb3J0IHsgQXN5bmNTY2hlZHVsZXIgfSBmcm9tICcuL0FzeW5jU2NoZWR1bGVyJztcbmV4cG9ydCB2YXIgYXN5bmNTY2hlZHVsZXIgPSBuZXcgQXN5bmNTY2hlZHVsZXIoQXN5bmNBY3Rpb24pO1xuZXhwb3J0IHZhciBhc3luYyA9IGFzeW5jU2NoZWR1bGVyO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXN5bmMuanMubWFwIiwiaW1wb3J0IHsgYXN5bmNTY2hlZHVsZXIgfSBmcm9tICcuLi9zY2hlZHVsZXIvYXN5bmMnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIgfSBmcm9tICcuL09wZXJhdG9yU3Vic2NyaWJlcic7XG5leHBvcnQgZnVuY3Rpb24gZGVib3VuY2VUaW1lKGR1ZVRpbWUsIHNjaGVkdWxlcikge1xuICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgeyBzY2hlZHVsZXIgPSBhc3luY1NjaGVkdWxlcjsgfVxuICAgIHJldHVybiBvcGVyYXRlKGZ1bmN0aW9uIChzb3VyY2UsIHN1YnNjcmliZXIpIHtcbiAgICAgICAgdmFyIGFjdGl2ZVRhc2sgPSBudWxsO1xuICAgICAgICB2YXIgbGFzdFZhbHVlID0gbnVsbDtcbiAgICAgICAgdmFyIGxhc3RUaW1lID0gbnVsbDtcbiAgICAgICAgdmFyIGVtaXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoYWN0aXZlVGFzaykge1xuICAgICAgICAgICAgICAgIGFjdGl2ZVRhc2sudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICBhY3RpdmVUYXNrID0gbnVsbDtcbiAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBsYXN0VmFsdWU7XG4gICAgICAgICAgICAgICAgbGFzdFZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBmdW5jdGlvbiBlbWl0V2hlbklkbGUoKSB7XG4gICAgICAgICAgICB2YXIgdGFyZ2V0VGltZSA9IGxhc3RUaW1lICsgZHVlVGltZTtcbiAgICAgICAgICAgIHZhciBub3cgPSBzY2hlZHVsZXIubm93KCk7XG4gICAgICAgICAgICBpZiAobm93IDwgdGFyZ2V0VGltZSkge1xuICAgICAgICAgICAgICAgIGFjdGl2ZVRhc2sgPSB0aGlzLnNjaGVkdWxlKHVuZGVmaW5lZCwgdGFyZ2V0VGltZSAtIG5vdyk7XG4gICAgICAgICAgICAgICAgc3Vic2NyaWJlci5hZGQoYWN0aXZlVGFzayk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZW1pdCgpO1xuICAgICAgICB9XG4gICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgbGFzdFZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICBsYXN0VGltZSA9IHNjaGVkdWxlci5ub3coKTtcbiAgICAgICAgICAgIGlmICghYWN0aXZlVGFzaykge1xuICAgICAgICAgICAgICAgIGFjdGl2ZVRhc2sgPSBzY2hlZHVsZXIuc2NoZWR1bGUoZW1pdFdoZW5JZGxlLCBkdWVUaW1lKTtcbiAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLmFkZChhY3RpdmVUYXNrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgZW1pdCgpO1xuICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICB9LCB1bmRlZmluZWQsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGxhc3RWYWx1ZSA9IGFjdGl2ZVRhc2sgPSBudWxsO1xuICAgICAgICB9KSk7XG4gICAgfSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWJvdW5jZVRpbWUuanMubWFwIiwiaW1wb3J0IHtzaW5nbGV0b259IGZyb20gXCJ0c3lyaW5nZVwiXG5pbXBvcnQge09yZGVyfSBmcm9tIFwiLi4vbW9kZWwvb3JkZXJcIlxuaW1wb3J0IHtvYnNlcnZlT2JqZWN0fSBmcm9tIFwiLi4vbGliL29iLW9iXCJcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdH0gZnJvbSBcInJ4anNcIlxuXG5Ac2luZ2xldG9uKClcbmV4cG9ydCBjbGFzcyBPcmRlclN0YXRlIHtcblxuICAgIG9yZGVyczogQXJyYXk8T3JkZXI+XG4gICAgcHJpdmF0ZSBjdXJyZW50T3JkZXI6IEJlaGF2aW9yU3ViamVjdDxPcmRlcj5cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRPcmRlciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8T3JkZXI+KG5ldyBPcmRlcigpKVxuICAgIH1cblxuICAgIGdldEN1cnJlbnRPcmRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE9yZGVyXG4gICAgfVxuXG4gICAgc2V0Q3VycmVudE9yZGVyKG9yZGVyOiBPcmRlcikge1xuICAgICAgICB0aGlzLmN1cnJlbnRPcmRlci5uZXh0KG9yZGVyKVxuICAgIH1cblxuICAgIGdldE9yZGVyKHV1aWQ6IFN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmRlcnMubWFwKChlKSA9PiBlLnV1aWQgPT0gdXVpZClcbiAgICB9XG5cbiAgICB1cGRhdGVPcmRlcihvcmRlcjogT3JkZXIpIHtcbiAgICAgICAgdGhpcy5vcmRlcnMucHVzaChvcmRlcilcbiAgICB9XG59XG4iLCJ2YXIgbixsLHUsdCxpLHIsbyxlLGYsYyxzLGEsaCxwPXt9LHY9W10seT0vYWNpdHxleCg/OnN8Z3xufHB8JCl8cnBofGdyaWR8b3dzfG1uY3xudHd8aW5lW2NoXXx6b298Xm9yZHxpdGVyYS9pLGQ9QXJyYXkuaXNBcnJheTtmdW5jdGlvbiB3KG4sbCl7Zm9yKHZhciB1IGluIGwpblt1XT1sW3VdO3JldHVybiBufWZ1bmN0aW9uIF8obil7biYmbi5wYXJlbnROb2RlJiZuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobil9ZnVuY3Rpb24gZyhsLHUsdCl7dmFyIGkscixvLGU9e307Zm9yKG8gaW4gdSlcImtleVwiPT1vP2k9dVtvXTpcInJlZlwiPT1vP3I9dVtvXTplW29dPXVbb107aWYoYXJndW1lbnRzLmxlbmd0aD4yJiYoZS5jaGlsZHJlbj1hcmd1bWVudHMubGVuZ3RoPjM/bi5jYWxsKGFyZ3VtZW50cywyKTp0KSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBsJiZudWxsIT1sLmRlZmF1bHRQcm9wcylmb3IobyBpbiBsLmRlZmF1bHRQcm9wcyl2b2lkIDA9PT1lW29dJiYoZVtvXT1sLmRlZmF1bHRQcm9wc1tvXSk7cmV0dXJuIG0obCxlLGkscixudWxsKX1mdW5jdGlvbiBtKG4sdCxpLHIsbyl7dmFyIGU9e3R5cGU6bixwcm9wczp0LGtleTppLHJlZjpyLF9fazpudWxsLF9fOm51bGwsX19iOjAsX19lOm51bGwsX19jOm51bGwsY29uc3RydWN0b3I6dm9pZCAwLF9fdjpudWxsPT1vPysrdTpvLF9faTotMSxfX3U6MH07cmV0dXJuIG51bGw9PW8mJm51bGwhPWwudm5vZGUmJmwudm5vZGUoZSksZX1mdW5jdGlvbiBiKCl7cmV0dXJue2N1cnJlbnQ6bnVsbH19ZnVuY3Rpb24gayhuKXtyZXR1cm4gbi5jaGlsZHJlbn1mdW5jdGlvbiB4KG4sbCl7dGhpcy5wcm9wcz1uLHRoaXMuY29udGV4dD1sfWZ1bmN0aW9uIEMobixsKXtpZihudWxsPT1sKXJldHVybiBuLl9fP0Mobi5fXyxuLl9faSsxKTpudWxsO2Zvcih2YXIgdTtsPG4uX19rLmxlbmd0aDtsKyspaWYobnVsbCE9KHU9bi5fX2tbbF0pJiZudWxsIT11Ll9fZSlyZXR1cm4gdS5fX2U7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2Ygbi50eXBlP0Mobik6bnVsbH1mdW5jdGlvbiBTKG4pe3ZhciBsLHU7aWYobnVsbCE9KG49bi5fXykmJm51bGwhPW4uX19jKXtmb3Iobi5fX2U9bi5fX2MuYmFzZT1udWxsLGw9MDtsPG4uX19rLmxlbmd0aDtsKyspaWYobnVsbCE9KHU9bi5fX2tbbF0pJiZudWxsIT11Ll9fZSl7bi5fX2U9bi5fX2MuYmFzZT11Ll9fZTticmVha31yZXR1cm4gUyhuKX19ZnVuY3Rpb24gTShuKXsoIW4uX19kJiYobi5fX2Q9ITApJiZpLnB1c2gobikmJiFQLl9fcisrfHxyIT09bC5kZWJvdW5jZVJlbmRlcmluZykmJigocj1sLmRlYm91bmNlUmVuZGVyaW5nKXx8bykoUCl9ZnVuY3Rpb24gUCgpe3ZhciBuLHUsdCxyLG8sZixjLHM7Zm9yKGkuc29ydChlKTtuPWkuc2hpZnQoKTspbi5fX2QmJih1PWkubGVuZ3RoLHI9dm9pZCAwLGY9KG89KHQ9bikuX192KS5fX2UsYz1bXSxzPVtdLHQuX19QJiYoKHI9dyh7fSxvKSkuX192PW8uX192KzEsbC52bm9kZSYmbC52bm9kZShyKSxqKHQuX19QLHIsbyx0Ll9fbix0Ll9fUC5uYW1lc3BhY2VVUkksMzImby5fX3U/W2ZdOm51bGwsYyxudWxsPT1mP0Mobyk6ZiwhISgzMiZvLl9fdSkscyksci5fX3Y9by5fX3Ysci5fXy5fX2tbci5fX2ldPXIseihjLHIscyksci5fX2UhPWYmJlMocikpLGkubGVuZ3RoPnUmJmkuc29ydChlKSk7UC5fX3I9MH1mdW5jdGlvbiAkKG4sbCx1LHQsaSxyLG8sZSxmLGMscyl7dmFyIGEsaCx5LGQsdyxfLGc9dCYmdC5fX2t8fHYsbT1sLmxlbmd0aDtmb3IoZj1JKHUsbCxnLGYsbSksYT0wO2E8bTthKyspbnVsbCE9KHk9dS5fX2tbYV0pJiYoaD0tMT09PXkuX19pP3A6Z1t5Ll9faV18fHAseS5fX2k9YSxfPWoobix5LGgsaSxyLG8sZSxmLGMscyksZD15Ll9fZSx5LnJlZiYmaC5yZWYhPXkucmVmJiYoaC5yZWYmJlYoaC5yZWYsbnVsbCx5KSxzLnB1c2goeS5yZWYseS5fX2N8fGQseSkpLG51bGw9PXcmJm51bGwhPWQmJih3PWQpLDQmeS5fX3V8fGguX19rPT09eS5fX2s/Zj1BKHksZixuKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiB5LnR5cGUmJnZvaWQgMCE9PV8/Zj1fOmQmJihmPWQubmV4dFNpYmxpbmcpLHkuX191Jj0tNyk7cmV0dXJuIHUuX19lPXcsZn1mdW5jdGlvbiBJKG4sbCx1LHQsaSl7dmFyIHIsbyxlLGYsYyxzPXUubGVuZ3RoLGE9cyxoPTA7Zm9yKG4uX19rPW5ldyBBcnJheShpKSxyPTA7cjxpO3IrKyludWxsIT0obz1sW3JdKSYmXCJib29sZWFuXCIhPXR5cGVvZiBvJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBvPyhmPXIraCwobz1uLl9fa1tyXT1cInN0cmluZ1wiPT10eXBlb2Ygb3x8XCJudW1iZXJcIj09dHlwZW9mIG98fFwiYmlnaW50XCI9PXR5cGVvZiBvfHxvLmNvbnN0cnVjdG9yPT1TdHJpbmc/bShudWxsLG8sbnVsbCxudWxsLG51bGwpOmQobyk/bShrLHtjaGlsZHJlbjpvfSxudWxsLG51bGwsbnVsbCk6dm9pZCAwPT09by5jb25zdHJ1Y3RvciYmby5fX2I+MD9tKG8udHlwZSxvLnByb3BzLG8ua2V5LG8ucmVmP28ucmVmOm51bGwsby5fX3YpOm8pLl9fPW4sby5fX2I9bi5fX2IrMSxlPW51bGwsLTEhPT0oYz1vLl9faT1MKG8sdSxmLGEpKSYmKGEtLSwoZT11W2NdKSYmKGUuX191fD0yKSksbnVsbD09ZXx8bnVsbD09PWUuX192PygtMT09YyYmaC0tLFwiZnVuY3Rpb25cIiE9dHlwZW9mIG8udHlwZSYmKG8uX191fD00KSk6YyE9ZiYmKGM9PWYtMT9oLS06Yz09ZisxP2grKzooYz5mP2gtLTpoKyssby5fX3V8PTQpKSk6bi5fX2tbcl09bnVsbDtpZihhKWZvcihyPTA7cjxzO3IrKyludWxsIT0oZT11W3JdKSYmMD09KDImZS5fX3UpJiYoZS5fX2U9PXQmJih0PUMoZSkpLHEoZSxlKSk7cmV0dXJuIHR9ZnVuY3Rpb24gQShuLGwsdSl7dmFyIHQsaTtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBuLnR5cGUpe2Zvcih0PW4uX19rLGk9MDt0JiZpPHQubGVuZ3RoO2krKyl0W2ldJiYodFtpXS5fXz1uLGw9QSh0W2ldLGwsdSkpO3JldHVybiBsfW4uX19lIT1sJiYobCYmbi50eXBlJiYhdS5jb250YWlucyhsKSYmKGw9QyhuKSksdS5pbnNlcnRCZWZvcmUobi5fX2UsbHx8bnVsbCksbD1uLl9fZSk7ZG97bD1sJiZsLm5leHRTaWJsaW5nfXdoaWxlKG51bGwhPWwmJjg9PWwubm9kZVR5cGUpO3JldHVybiBsfWZ1bmN0aW9uIEgobixsKXtyZXR1cm4gbD1sfHxbXSxudWxsPT1ufHxcImJvb2xlYW5cIj09dHlwZW9mIG58fChkKG4pP24uc29tZShmdW5jdGlvbihuKXtIKG4sbCl9KTpsLnB1c2gobikpLGx9ZnVuY3Rpb24gTChuLGwsdSx0KXt2YXIgaSxyLG89bi5rZXksZT1uLnR5cGUsZj1sW3VdO2lmKG51bGw9PT1mfHxmJiZvPT1mLmtleSYmZT09PWYudHlwZSYmMD09KDImZi5fX3UpKXJldHVybiB1O2lmKHQ+KG51bGwhPWYmJjA9PSgyJmYuX191KT8xOjApKWZvcihpPXUtMSxyPXUrMTtpPj0wfHxyPGwubGVuZ3RoOyl7aWYoaT49MCl7aWYoKGY9bFtpXSkmJjA9PSgyJmYuX191KSYmbz09Zi5rZXkmJmU9PT1mLnR5cGUpcmV0dXJuIGk7aS0tfWlmKHI8bC5sZW5ndGgpe2lmKChmPWxbcl0pJiYwPT0oMiZmLl9fdSkmJm89PWYua2V5JiZlPT09Zi50eXBlKXJldHVybiByO3IrK319cmV0dXJuLTF9ZnVuY3Rpb24gVChuLGwsdSl7XCItXCI9PWxbMF0/bi5zZXRQcm9wZXJ0eShsLG51bGw9PXU/XCJcIjp1KTpuW2xdPW51bGw9PXU/XCJcIjpcIm51bWJlclwiIT10eXBlb2YgdXx8eS50ZXN0KGwpP3U6dStcInB4XCJ9ZnVuY3Rpb24gRihuLGwsdSx0LGkpe3ZhciByO246aWYoXCJzdHlsZVwiPT1sKWlmKFwic3RyaW5nXCI9PXR5cGVvZiB1KW4uc3R5bGUuY3NzVGV4dD11O2Vsc2V7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQmJihuLnN0eWxlLmNzc1RleHQ9dD1cIlwiKSx0KWZvcihsIGluIHQpdSYmbCBpbiB1fHxUKG4uc3R5bGUsbCxcIlwiKTtpZih1KWZvcihsIGluIHUpdCYmdVtsXT09PXRbbF18fFQobi5zdHlsZSxsLHVbbF0pfWVsc2UgaWYoXCJvXCI9PWxbMF0mJlwiblwiPT1sWzFdKXI9bCE9KGw9bC5yZXBsYWNlKGYsXCIkMVwiKSksbD1sLnRvTG93ZXJDYXNlKClpbiBufHxcIm9uRm9jdXNPdXRcIj09bHx8XCJvbkZvY3VzSW5cIj09bD9sLnRvTG93ZXJDYXNlKCkuc2xpY2UoMik6bC5zbGljZSgyKSxuLmx8fChuLmw9e30pLG4ubFtsK3JdPXUsdT90P3UudT10LnU6KHUudT1jLG4uYWRkRXZlbnRMaXN0ZW5lcihsLHI/YTpzLHIpKTpuLnJlbW92ZUV2ZW50TGlzdGVuZXIobCxyP2E6cyxyKTtlbHNle2lmKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj09aSlsPWwucmVwbGFjZSgveGxpbmsoSHw6aCkvLFwiaFwiKS5yZXBsYWNlKC9zTmFtZSQvLFwic1wiKTtlbHNlIGlmKFwid2lkdGhcIiE9bCYmXCJoZWlnaHRcIiE9bCYmXCJocmVmXCIhPWwmJlwibGlzdFwiIT1sJiZcImZvcm1cIiE9bCYmXCJ0YWJJbmRleFwiIT1sJiZcImRvd25sb2FkXCIhPWwmJlwicm93U3BhblwiIT1sJiZcImNvbFNwYW5cIiE9bCYmXCJyb2xlXCIhPWwmJlwicG9wb3ZlclwiIT1sJiZsIGluIG4pdHJ5e25bbF09bnVsbD09dT9cIlwiOnU7YnJlYWsgbn1jYXRjaChuKXt9XCJmdW5jdGlvblwiPT10eXBlb2YgdXx8KG51bGw9PXV8fCExPT09dSYmXCItXCIhPWxbNF0/bi5yZW1vdmVBdHRyaWJ1dGUobCk6bi5zZXRBdHRyaWJ1dGUobCxcInBvcG92ZXJcIj09bCYmMT09dT9cIlwiOnUpKX19ZnVuY3Rpb24gTyhuKXtyZXR1cm4gZnVuY3Rpb24odSl7aWYodGhpcy5sKXt2YXIgdD10aGlzLmxbdS50eXBlK25dO2lmKG51bGw9PXUudCl1LnQ9YysrO2Vsc2UgaWYodS50PHQudSlyZXR1cm47cmV0dXJuIHQobC5ldmVudD9sLmV2ZW50KHUpOnUpfX19ZnVuY3Rpb24gaihuLHUsdCxpLHIsbyxlLGYsYyxzKXt2YXIgYSxoLHAsdix5LGcsbSxiLEMsUyxNLFAsSSxBLEgsTCxULEY9dS50eXBlO2lmKHZvaWQgMCE9PXUuY29uc3RydWN0b3IpcmV0dXJuIG51bGw7MTI4JnQuX191JiYoYz0hISgzMiZ0Ll9fdSksbz1bZj11Ll9fZT10Ll9fZV0pLChhPWwuX19iKSYmYSh1KTtuOmlmKFwiZnVuY3Rpb25cIj09dHlwZW9mIEYpdHJ5e2lmKGI9dS5wcm9wcyxDPVwicHJvdG90eXBlXCJpbiBGJiZGLnByb3RvdHlwZS5yZW5kZXIsUz0oYT1GLmNvbnRleHRUeXBlKSYmaVthLl9fY10sTT1hP1M/Uy5wcm9wcy52YWx1ZTphLl9fOmksdC5fX2M/bT0oaD11Ll9fYz10Ll9fYykuX189aC5fX0U6KEM/dS5fX2M9aD1uZXcgRihiLE0pOih1Ll9fYz1oPW5ldyB4KGIsTSksaC5jb25zdHJ1Y3Rvcj1GLGgucmVuZGVyPUIpLFMmJlMuc3ViKGgpLGgucHJvcHM9YixoLnN0YXRlfHwoaC5zdGF0ZT17fSksaC5jb250ZXh0PU0saC5fX249aSxwPWguX19kPSEwLGguX19oPVtdLGguX3NiPVtdKSxDJiZudWxsPT1oLl9fcyYmKGguX19zPWguc3RhdGUpLEMmJm51bGwhPUYuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzJiYoaC5fX3M9PWguc3RhdGUmJihoLl9fcz13KHt9LGguX19zKSksdyhoLl9fcyxGLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhiLGguX19zKSkpLHY9aC5wcm9wcyx5PWguc3RhdGUsaC5fX3Y9dSxwKUMmJm51bGw9PUYuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzJiZudWxsIT1oLmNvbXBvbmVudFdpbGxNb3VudCYmaC5jb21wb25lbnRXaWxsTW91bnQoKSxDJiZudWxsIT1oLmNvbXBvbmVudERpZE1vdW50JiZoLl9faC5wdXNoKGguY29tcG9uZW50RGlkTW91bnQpO2Vsc2V7aWYoQyYmbnVsbD09Ri5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMmJmIhPT12JiZudWxsIT1oLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJmguY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhiLE0pLCFoLl9fZSYmKG51bGwhPWguc2hvdWxkQ29tcG9uZW50VXBkYXRlJiYhMT09PWguc2hvdWxkQ29tcG9uZW50VXBkYXRlKGIsaC5fX3MsTSl8fHUuX192PT10Ll9fdikpe2Zvcih1Ll9fdiE9dC5fX3YmJihoLnByb3BzPWIsaC5zdGF0ZT1oLl9fcyxoLl9fZD0hMSksdS5fX2U9dC5fX2UsdS5fX2s9dC5fX2ssdS5fX2suc29tZShmdW5jdGlvbihuKXtuJiYobi5fXz11KX0pLFA9MDtQPGguX3NiLmxlbmd0aDtQKyspaC5fX2gucHVzaChoLl9zYltQXSk7aC5fc2I9W10saC5fX2gubGVuZ3RoJiZlLnB1c2goaCk7YnJlYWsgbn1udWxsIT1oLmNvbXBvbmVudFdpbGxVcGRhdGUmJmguY29tcG9uZW50V2lsbFVwZGF0ZShiLGguX19zLE0pLEMmJm51bGwhPWguY29tcG9uZW50RGlkVXBkYXRlJiZoLl9faC5wdXNoKGZ1bmN0aW9uKCl7aC5jb21wb25lbnREaWRVcGRhdGUodix5LGcpfSl9aWYoaC5jb250ZXh0PU0saC5wcm9wcz1iLGguX19QPW4saC5fX2U9ITEsST1sLl9fcixBPTAsQyl7Zm9yKGguc3RhdGU9aC5fX3MsaC5fX2Q9ITEsSSYmSSh1KSxhPWgucmVuZGVyKGgucHJvcHMsaC5zdGF0ZSxoLmNvbnRleHQpLEg9MDtIPGguX3NiLmxlbmd0aDtIKyspaC5fX2gucHVzaChoLl9zYltIXSk7aC5fc2I9W119ZWxzZSBkb3toLl9fZD0hMSxJJiZJKHUpLGE9aC5yZW5kZXIoaC5wcm9wcyxoLnN0YXRlLGguY29udGV4dCksaC5zdGF0ZT1oLl9fc313aGlsZShoLl9fZCYmKytBPDI1KTtoLnN0YXRlPWguX19zLG51bGwhPWguZ2V0Q2hpbGRDb250ZXh0JiYoaT13KHcoe30saSksaC5nZXRDaGlsZENvbnRleHQoKSkpLEMmJiFwJiZudWxsIT1oLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlJiYoZz1oLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKHYseSkpLGY9JChuLGQoTD1udWxsIT1hJiZhLnR5cGU9PT1rJiZudWxsPT1hLmtleT9hLnByb3BzLmNoaWxkcmVuOmEpP0w6W0xdLHUsdCxpLHIsbyxlLGYsYyxzKSxoLmJhc2U9dS5fX2UsdS5fX3UmPS0xNjEsaC5fX2gubGVuZ3RoJiZlLnB1c2goaCksbSYmKGguX19FPWguX189bnVsbCl9Y2F0Y2gobil7aWYodS5fX3Y9bnVsbCxjfHxudWxsIT1vKWlmKG4udGhlbil7Zm9yKHUuX191fD1jPzE2MDoxMjg7ZiYmOD09Zi5ub2RlVHlwZSYmZi5uZXh0U2libGluZzspZj1mLm5leHRTaWJsaW5nO29bby5pbmRleE9mKGYpXT1udWxsLHUuX19lPWZ9ZWxzZSBmb3IoVD1vLmxlbmd0aDtULS07KV8ob1tUXSk7ZWxzZSB1Ll9fZT10Ll9fZSx1Ll9faz10Ll9faztsLl9fZShuLHUsdCl9ZWxzZSBudWxsPT1vJiZ1Ll9fdj09dC5fX3Y/KHUuX19rPXQuX19rLHUuX19lPXQuX19lKTpmPXUuX19lPU4odC5fX2UsdSx0LGkscixvLGUsYyxzKTtyZXR1cm4oYT1sLmRpZmZlZCkmJmEodSksMTI4JnUuX191P3ZvaWQgMDpmfWZ1bmN0aW9uIHoobix1LHQpe2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKVYodFtpXSx0WysraV0sdFsrK2ldKTtsLl9fYyYmbC5fX2ModSxuKSxuLnNvbWUoZnVuY3Rpb24odSl7dHJ5e249dS5fX2gsdS5fX2g9W10sbi5zb21lKGZ1bmN0aW9uKG4pe24uY2FsbCh1KX0pfWNhdGNoKG4pe2wuX19lKG4sdS5fX3YpfX0pfWZ1bmN0aW9uIE4odSx0LGkscixvLGUsZixjLHMpe3ZhciBhLGgsdix5LHcsZyxtLGI9aS5wcm9wcyxrPXQucHJvcHMseD10LnR5cGU7aWYoXCJzdmdcIj09eD9vPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjpcIm1hdGhcIj09eD9vPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiOm98fChvPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiKSxudWxsIT1lKWZvcihhPTA7YTxlLmxlbmd0aDthKyspaWYoKHc9ZVthXSkmJlwic2V0QXR0cmlidXRlXCJpbiB3PT0hIXgmJih4P3cubG9jYWxOYW1lPT14OjM9PXcubm9kZVR5cGUpKXt1PXcsZVthXT1udWxsO2JyZWFrfWlmKG51bGw9PXUpe2lmKG51bGw9PXgpcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGspO3U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKG8seCxrLmlzJiZrKSxjJiYobC5fX20mJmwuX19tKHQsZSksYz0hMSksZT1udWxsfWlmKG51bGw9PT14KWI9PT1rfHxjJiZ1LmRhdGE9PT1rfHwodS5kYXRhPWspO2Vsc2V7aWYoZT1lJiZuLmNhbGwodS5jaGlsZE5vZGVzKSxiPWkucHJvcHN8fHAsIWMmJm51bGwhPWUpZm9yKGI9e30sYT0wO2E8dS5hdHRyaWJ1dGVzLmxlbmd0aDthKyspYlsodz11LmF0dHJpYnV0ZXNbYV0pLm5hbWVdPXcudmFsdWU7Zm9yKGEgaW4gYilpZih3PWJbYV0sXCJjaGlsZHJlblwiPT1hKTtlbHNlIGlmKFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIj09YSl2PXc7ZWxzZSBpZighKGEgaW4gaykpe2lmKFwidmFsdWVcIj09YSYmXCJkZWZhdWx0VmFsdWVcImluIGt8fFwiY2hlY2tlZFwiPT1hJiZcImRlZmF1bHRDaGVja2VkXCJpbiBrKWNvbnRpbnVlO0YodSxhLG51bGwsdyxvKX1mb3IoYSBpbiBrKXc9a1thXSxcImNoaWxkcmVuXCI9PWE/eT13OlwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIj09YT9oPXc6XCJ2YWx1ZVwiPT1hP2c9dzpcImNoZWNrZWRcIj09YT9tPXc6YyYmXCJmdW5jdGlvblwiIT10eXBlb2Ygd3x8YlthXT09PXd8fEYodSxhLHcsYlthXSxvKTtpZihoKWN8fHYmJihoLl9faHRtbD09PXYuX19odG1sfHxoLl9faHRtbD09PXUuaW5uZXJIVE1MKXx8KHUuaW5uZXJIVE1MPWguX19odG1sKSx0Ll9faz1bXTtlbHNlIGlmKHYmJih1LmlubmVySFRNTD1cIlwiKSwkKHUsZCh5KT95Olt5XSx0LGkscixcImZvcmVpZ25PYmplY3RcIj09eD9cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIjpvLGUsZixlP2VbMF06aS5fX2smJkMoaSwwKSxjLHMpLG51bGwhPWUpZm9yKGE9ZS5sZW5ndGg7YS0tOylfKGVbYV0pO2N8fChhPVwidmFsdWVcIixcInByb2dyZXNzXCI9PXgmJm51bGw9PWc/dS5yZW1vdmVBdHRyaWJ1dGUoXCJ2YWx1ZVwiKTp2b2lkIDAhPT1nJiYoZyE9PXVbYV18fFwicHJvZ3Jlc3NcIj09eCYmIWd8fFwib3B0aW9uXCI9PXgmJmchPT1iW2FdKSYmRih1LGEsZyxiW2FdLG8pLGE9XCJjaGVja2VkXCIsdm9pZCAwIT09bSYmbSE9PXVbYV0mJkYodSxhLG0sYlthXSxvKSl9cmV0dXJuIHV9ZnVuY3Rpb24gVihuLHUsdCl7dHJ5e2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG4pe3ZhciBpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4uX191O2kmJm4uX191KCksaSYmbnVsbD09dXx8KG4uX191PW4odSkpfWVsc2Ugbi5jdXJyZW50PXV9Y2F0Y2gobil7bC5fX2Uobix0KX19ZnVuY3Rpb24gcShuLHUsdCl7dmFyIGkscjtpZihsLnVubW91bnQmJmwudW5tb3VudChuKSwoaT1uLnJlZikmJihpLmN1cnJlbnQmJmkuY3VycmVudCE9PW4uX19lfHxWKGksbnVsbCx1KSksbnVsbCE9KGk9bi5fX2MpKXtpZihpLmNvbXBvbmVudFdpbGxVbm1vdW50KXRyeXtpLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2gobil7bC5fX2Uobix1KX1pLmJhc2U9aS5fX1A9bnVsbH1pZihpPW4uX19rKWZvcihyPTA7cjxpLmxlbmd0aDtyKyspaVtyXSYmcShpW3JdLHUsdHx8XCJmdW5jdGlvblwiIT10eXBlb2Ygbi50eXBlKTt0fHxfKG4uX19lKSxuLl9fYz1uLl9fPW4uX19lPXZvaWQgMH1mdW5jdGlvbiBCKG4sbCx1KXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3RvcihuLHUpfWZ1bmN0aW9uIEQodSx0LGkpe3ZhciByLG8sZSxmO3Q9PWRvY3VtZW50JiYodD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLGwuX18mJmwuX18odSx0KSxvPShyPVwiZnVuY3Rpb25cIj09dHlwZW9mIGkpP251bGw6aSYmaS5fX2t8fHQuX19rLGU9W10sZj1bXSxqKHQsdT0oIXImJml8fHQpLl9faz1nKGssbnVsbCxbdV0pLG98fHAscCx0Lm5hbWVzcGFjZVVSSSwhciYmaT9baV06bz9udWxsOnQuZmlyc3RDaGlsZD9uLmNhbGwodC5jaGlsZE5vZGVzKTpudWxsLGUsIXImJmk/aTpvP28uX19lOnQuZmlyc3RDaGlsZCxyLGYpLHooZSx1LGYpfWZ1bmN0aW9uIEUobixsKXtEKG4sbCxFKX1mdW5jdGlvbiBHKGwsdSx0KXt2YXIgaSxyLG8sZSxmPXcoe30sbC5wcm9wcyk7Zm9yKG8gaW4gbC50eXBlJiZsLnR5cGUuZGVmYXVsdFByb3BzJiYoZT1sLnR5cGUuZGVmYXVsdFByb3BzKSx1KVwia2V5XCI9PW8/aT11W29dOlwicmVmXCI9PW8/cj11W29dOmZbb109dm9pZCAwPT09dVtvXSYmdm9pZCAwIT09ZT9lW29dOnVbb107cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MiYmKGYuY2hpbGRyZW49YXJndW1lbnRzLmxlbmd0aD4zP24uY2FsbChhcmd1bWVudHMsMik6dCksbShsLnR5cGUsZixpfHxsLmtleSxyfHxsLnJlZixudWxsKX1mdW5jdGlvbiBKKG4sbCl7dmFyIHU9e19fYzpsPVwiX19jQ1wiK2grKyxfXzpuLENvbnN1bWVyOmZ1bmN0aW9uKG4sbCl7cmV0dXJuIG4uY2hpbGRyZW4obCl9LFByb3ZpZGVyOmZ1bmN0aW9uKG4pe3ZhciB1LHQ7cmV0dXJuIHRoaXMuZ2V0Q2hpbGRDb250ZXh0fHwodT1uZXcgU2V0LCh0PXt9KVtsXT10aGlzLHRoaXMuZ2V0Q2hpbGRDb250ZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHR9LHRoaXMuY29tcG9uZW50V2lsbFVubW91bnQ9ZnVuY3Rpb24oKXt1PW51bGx9LHRoaXMuc2hvdWxkQ29tcG9uZW50VXBkYXRlPWZ1bmN0aW9uKG4pe3RoaXMucHJvcHMudmFsdWUhPT1uLnZhbHVlJiZ1LmZvckVhY2goZnVuY3Rpb24obil7bi5fX2U9ITAsTShuKX0pfSx0aGlzLnN1Yj1mdW5jdGlvbihuKXt1LmFkZChuKTt2YXIgbD1uLmNvbXBvbmVudFdpbGxVbm1vdW50O24uY29tcG9uZW50V2lsbFVubW91bnQ9ZnVuY3Rpb24oKXt1JiZ1LmRlbGV0ZShuKSxsJiZsLmNhbGwobil9fSksbi5jaGlsZHJlbn19O3JldHVybiB1LlByb3ZpZGVyLl9fPXUuQ29uc3VtZXIuY29udGV4dFR5cGU9dX1uPXYuc2xpY2UsbD17X19lOmZ1bmN0aW9uKG4sbCx1LHQpe2Zvcih2YXIgaSxyLG87bD1sLl9fOylpZigoaT1sLl9fYykmJiFpLl9fKXRyeXtpZigocj1pLmNvbnN0cnVjdG9yKSYmbnVsbCE9ci5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3ImJihpLnNldFN0YXRlKHIuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKG4pKSxvPWkuX19kKSxudWxsIT1pLmNvbXBvbmVudERpZENhdGNoJiYoaS5jb21wb25lbnREaWRDYXRjaChuLHR8fHt9KSxvPWkuX19kKSxvKXJldHVybiBpLl9fRT1pfWNhdGNoKGwpe249bH10aHJvdyBufX0sdT0wLHQ9ZnVuY3Rpb24obil7cmV0dXJuIG51bGwhPW4mJm51bGw9PW4uY29uc3RydWN0b3J9LHgucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKG4sbCl7dmFyIHU7dT1udWxsIT10aGlzLl9fcyYmdGhpcy5fX3MhPT10aGlzLnN0YXRlP3RoaXMuX19zOnRoaXMuX19zPXcoe30sdGhpcy5zdGF0ZSksXCJmdW5jdGlvblwiPT10eXBlb2YgbiYmKG49bih3KHt9LHUpLHRoaXMucHJvcHMpKSxuJiZ3KHUsbiksbnVsbCE9biYmdGhpcy5fX3YmJihsJiZ0aGlzLl9zYi5wdXNoKGwpLE0odGhpcykpfSx4LnByb3RvdHlwZS5mb3JjZVVwZGF0ZT1mdW5jdGlvbihuKXt0aGlzLl9fdiYmKHRoaXMuX19lPSEwLG4mJnRoaXMuX19oLnB1c2gobiksTSh0aGlzKSl9LHgucHJvdG90eXBlLnJlbmRlcj1rLGk9W10sbz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBQcm9taXNlP1Byb21pc2UucHJvdG90eXBlLnRoZW4uYmluZChQcm9taXNlLnJlc29sdmUoKSk6c2V0VGltZW91dCxlPWZ1bmN0aW9uKG4sbCl7cmV0dXJuIG4uX192Ll9fYi1sLl9fdi5fX2J9LFAuX19yPTAsZj0vKFBvaW50ZXJDYXB0dXJlKSR8Q2FwdHVyZSQvaSxjPTAscz1PKCExKSxhPU8oITApLGg9MDtleHBvcnR7eCBhcyBDb21wb25lbnQsayBhcyBGcmFnbWVudCxHIGFzIGNsb25lRWxlbWVudCxKIGFzIGNyZWF0ZUNvbnRleHQsZyBhcyBjcmVhdGVFbGVtZW50LGIgYXMgY3JlYXRlUmVmLGcgYXMgaCxFIGFzIGh5ZHJhdGUsdCBhcyBpc1ZhbGlkRWxlbWVudCxsIGFzIG9wdGlvbnMsRCBhcyByZW5kZXIsSCBhcyB0b0NoaWxkQXJyYXl9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJlYWN0Lm1vZHVsZS5qcy5tYXBcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmV4cG9ydCB2YXIgRGVmYXVsdENvbnRleHQgPSB7XG4gIGNvbG9yOiB1bmRlZmluZWQsXG4gIHNpemU6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lOiB1bmRlZmluZWQsXG4gIHN0eWxlOiB1bmRlZmluZWQsXG4gIGF0dHI6IHVuZGVmaW5lZFxufTtcbmV4cG9ydCB2YXIgSWNvbkNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0ICYmIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVDb250ZXh0KERlZmF1bHRDb250ZXh0KTsiLCJ2YXIgX2V4Y2x1ZGVkID0gW1wiYXR0clwiLCBcInNpemVcIiwgXCJ0aXRsZVwiXTtcbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhzb3VyY2UsIGV4Y2x1ZGVkKSB7IGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9OyB2YXIgdGFyZ2V0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCk7IHZhciBrZXksIGk7IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7IHZhciBzb3VyY2VTeW1ib2xLZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpOyBmb3IgKGkgPSAwOyBpIDwgc291cmNlU3ltYm9sS2V5cy5sZW5ndGg7IGkrKykgeyBrZXkgPSBzb3VyY2VTeW1ib2xLZXlzW2ldOyBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlOyBpZiAoIU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzb3VyY2UsIGtleSkpIGNvbnRpbnVlOyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gcmV0dXJuIHRhcmdldDsgfVxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkgeyBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTsgdmFyIHRhcmdldCA9IHt9OyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cbmZ1bmN0aW9uIG93bktleXMoZSwgcikgeyB2YXIgdCA9IE9iamVjdC5rZXlzKGUpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgbyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7IHIgJiYgKG8gPSBvLmZpbHRlcihmdW5jdGlvbiAocikgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLCByKS5lbnVtZXJhYmxlOyB9KSksIHQucHVzaC5hcHBseSh0LCBvKTsgfSByZXR1cm4gdDsgfVxuZnVuY3Rpb24gX29iamVjdFNwcmVhZChlKSB7IGZvciAodmFyIHIgPSAxOyByIDwgYXJndW1lbnRzLmxlbmd0aDsgcisrKSB7IHZhciB0ID0gbnVsbCAhPSBhcmd1bWVudHNbcl0gPyBhcmd1bWVudHNbcl0gOiB7fTsgciAlIDIgPyBvd25LZXlzKE9iamVjdCh0KSwgITApLmZvckVhY2goZnVuY3Rpb24gKHIpIHsgX2RlZmluZVByb3BlcnR5KGUsIHIsIHRbcl0pOyB9KSA6IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpIDogb3duS2V5cyhPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24gKHIpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHIsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCwgcikpOyB9KTsgfSByZXR1cm4gZTsgfVxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBrZXkgPSBfdG9Qcm9wZXJ0eUtleShrZXkpOyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cbmZ1bmN0aW9uIF90b1Byb3BlcnR5S2V5KHQpIHsgdmFyIGkgPSBfdG9QcmltaXRpdmUodCwgXCJzdHJpbmdcIik7IHJldHVybiBcInN5bWJvbFwiID09IHR5cGVvZiBpID8gaSA6IGkgKyBcIlwiOyB9XG5mdW5jdGlvbiBfdG9QcmltaXRpdmUodCwgcikgeyBpZiAoXCJvYmplY3RcIiAhPSB0eXBlb2YgdCB8fCAhdCkgcmV0dXJuIHQ7IHZhciBlID0gdFtTeW1ib2wudG9QcmltaXRpdmVdOyBpZiAodm9pZCAwICE9PSBlKSB7IHZhciBpID0gZS5jYWxsKHQsIHIgfHwgXCJkZWZhdWx0XCIpOyBpZiAoXCJvYmplY3RcIiAhPSB0eXBlb2YgaSkgcmV0dXJuIGk7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKTsgfSByZXR1cm4gKFwic3RyaW5nXCIgPT09IHIgPyBTdHJpbmcgOiBOdW1iZXIpKHQpOyB9XG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBJY29uQ29udGV4dCwgRGVmYXVsdENvbnRleHQgfSBmcm9tIFwiLi9pY29uQ29udGV4dC5tanNcIjtcbmZ1bmN0aW9uIFRyZWUyRWxlbWVudCh0cmVlKSB7XG4gIHJldHVybiB0cmVlICYmIHRyZWUubWFwKChub2RlLCBpKSA9PiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChub2RlLnRhZywgX29iamVjdFNwcmVhZCh7XG4gICAga2V5OiBpXG4gIH0sIG5vZGUuYXR0ciksIFRyZWUyRWxlbWVudChub2RlLmNoaWxkKSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIEdlbkljb24oZGF0YSkge1xuICByZXR1cm4gcHJvcHMgPT4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJhc2UsIF9leHRlbmRzKHtcbiAgICBhdHRyOiBfb2JqZWN0U3ByZWFkKHt9LCBkYXRhLmF0dHIpXG4gIH0sIHByb3BzKSwgVHJlZTJFbGVtZW50KGRhdGEuY2hpbGQpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBJY29uQmFzZShwcm9wcykge1xuICB2YXIgZWxlbSA9IGNvbmYgPT4ge1xuICAgIHZhciB7XG4gICAgICAgIGF0dHIsXG4gICAgICAgIHNpemUsXG4gICAgICAgIHRpdGxlXG4gICAgICB9ID0gcHJvcHMsXG4gICAgICBzdmdQcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhwcm9wcywgX2V4Y2x1ZGVkKTtcbiAgICB2YXIgY29tcHV0ZWRTaXplID0gc2l6ZSB8fCBjb25mLnNpemUgfHwgXCIxZW1cIjtcbiAgICB2YXIgY2xhc3NOYW1lO1xuICAgIGlmIChjb25mLmNsYXNzTmFtZSkgY2xhc3NOYW1lID0gY29uZi5jbGFzc05hbWU7XG4gICAgaWYgKHByb3BzLmNsYXNzTmFtZSkgY2xhc3NOYW1lID0gKGNsYXNzTmFtZSA/IGNsYXNzTmFtZSArIFwiIFwiIDogXCJcIikgKyBwcm9wcy5jbGFzc05hbWU7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIF9leHRlbmRzKHtcbiAgICAgIHN0cm9rZTogXCJjdXJyZW50Q29sb3JcIixcbiAgICAgIGZpbGw6IFwiY3VycmVudENvbG9yXCIsXG4gICAgICBzdHJva2VXaWR0aDogXCIwXCJcbiAgICB9LCBjb25mLmF0dHIsIGF0dHIsIHN2Z1Byb3BzLCB7XG4gICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICAgIHN0eWxlOiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICBjb2xvcjogcHJvcHMuY29sb3IgfHwgY29uZi5jb2xvclxuICAgICAgfSwgY29uZi5zdHlsZSksIHByb3BzLnN0eWxlKSxcbiAgICAgIGhlaWdodDogY29tcHV0ZWRTaXplLFxuICAgICAgd2lkdGg6IGNvbXB1dGVkU2l6ZSxcbiAgICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICB9KSwgdGl0bGUgJiYgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCBudWxsLCB0aXRsZSksIHByb3BzLmNoaWxkcmVuKTtcbiAgfTtcbiAgcmV0dXJuIEljb25Db250ZXh0ICE9PSB1bmRlZmluZWQgPyAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQ29udGV4dC5Db25zdW1lciwgbnVsbCwgY29uZiA9PiBlbGVtKGNvbmYpKSA6IGVsZW0oRGVmYXVsdENvbnRleHQpO1xufSIsIi8vIFRISVMgRklMRSBJUyBBVVRPIEdFTkVSQVRFRFxuaW1wb3J0IHsgR2VuSWNvbiB9IGZyb20gJy4uL2xpYi9pbmRleC5tanMnO1xuZXhwb3J0IGZ1bmN0aW9uIEhpQWNhZGVtaWNDYXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjM5NCAyLjA4YTEgMSAwIDAwLS43ODggMGwtNyAzYTEgMSAwIDAwMCAxLjg0TDUuMjUgOC4wNTFhLjk5OS45OTkgMCAwMS4zNTYtLjI1N2w0LTEuNzE0YTEgMSAwIDExLjc4OCAxLjgzOEw3LjY2NyA5LjA4OGwxLjk0LjgzMWExIDEgMCAwMC43ODcgMGw3LTNhMSAxIDAgMDAwLTEuODM4bC03LTN6TTMuMzEgOS4zOTdMNSAxMC4xMnY0LjEwMmE4Ljk2OSA4Ljk2OSAwIDAwLTEuMDUtLjE3NCAxIDEgMCAwMS0uODktLjg5IDExLjExNSAxMS4xMTUgMCAwMS4yNS0zLjc2MnpNOS4zIDE2LjU3M0E5LjAyNiA5LjAyNiAwIDAwNyAxNC45MzV2LTMuOTU3bDEuODE4Ljc4YTMgMyAwIDAwMi4zNjQgMGw1LjUwOC0yLjM2MWExMS4wMjYgMTEuMDI2IDAgMDEuMjUgMy43NjIgMSAxIDAgMDEtLjg5Ljg5IDguOTY4IDguOTY4IDAgMDAtNS4zNSAyLjUyNCAxIDEgMCAwMS0xLjQgMHpNNiAxOGExIDEgMCAwMDEtMXYtMi4wNjVhOC45MzUgOC45MzUgMCAwMC0yLS43MTJWMTdhMSAxIDAgMDAxIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUFkanVzdG1lbnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDRhMSAxIDAgMDAtMiAwdjcuMjY4YTIgMiAwIDAwMCAzLjQ2NFYxNmExIDEgMCAxMDIgMHYtMS4yNjhhMiAyIDAgMDAwLTMuNDY0VjR6TTExIDRhMSAxIDAgMTAtMiAwdjEuMjY4YTIgMiAwIDAwMCAzLjQ2NFYxNmExIDEgMCAxMDIgMFY4LjczMmEyIDIgMCAwMDAtMy40NjRWNHpNMTYgM2ExIDEgMCAwMTEgMXY3LjI2OGEyIDIgMCAwMTAgMy40NjRWMTZhMSAxIDAgMTEtMiAwdi0xLjI2OGEyIDIgMCAwMTAtMy40NjRWNGExIDEgMCAwMTEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQW5ub3RhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE4IDEzVjVhMiAyIDAgMDAtMi0ySDRhMiAyIDAgMDAtMiAydjhhMiAyIDAgMDAyIDJoM2wzIDMgMy0zaDNhMiAyIDAgMDAyLTJ6TTUgN2ExIDEgMCAwMTEtMWg4YTEgMSAwIDExMCAySDZhMSAxIDAgMDEtMS0xem0xIDNhMSAxIDAgMTAwIDJoM2ExIDEgMCAxMDAtMkg2elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQXJjaGl2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAzYTIgMiAwIDEwMCA0aDEyYTIgMiAwIDEwMC00SDR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zIDhoMTR2N2EyIDIgMCAwMS0yIDJINWEyIDIgMCAwMS0yLTJWOHptNSAzYTEgMSAwIDAxMS0xaDJhMSAxIDAgMTEwIDJIOWExIDEgMCAwMS0xLTF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlBcnJvd0NpcmNsZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2em0xLTExYTEgMSAwIDEwLTIgMHYzLjU4Nkw3LjcwNyA5LjI5M2ExIDEgMCAwMC0xLjQxNCAxLjQxNGwzIDNhMSAxIDAgMDAxLjQxNCAwbDMtM2ExIDEgMCAwMC0xLjQxNC0xLjQxNEwxMSAxMC41ODZWN3pcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUFycm93Q2lyY2xlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6bS43MDctMTAuMjkzYTEgMSAwIDAwLTEuNDE0LTEuNDE0bC0zIDNhMSAxIDAgMDAwIDEuNDE0bDMgM2ExIDEgMCAwMDEuNDE0LTEuNDE0TDkuNDE0IDExSDEzYTEgMSAwIDEwMC0ySDkuNDE0bDEuMjkzLTEuMjkzelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQXJyb3dDaXJjbGVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6bTMuNzA3LTguNzA3bC0zLTNhMSAxIDAgMDAtMS40MTQgMS40MTRMMTAuNTg2IDlIN2ExIDEgMCAxMDAgMmgzLjU4NmwtMS4yOTMgMS4yOTNhMSAxIDAgMTAxLjQxNCAxLjQxNGwzLTNhMSAxIDAgMDAwLTEuNDE0elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQXJyb3dDaXJjbGVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6bTMuNzA3LTguNzA3bC0zLTNhMSAxIDAgMDAtMS40MTQgMGwtMyAzYTEgMSAwIDAwMS40MTQgMS40MTRMOSA5LjQxNFYxM2ExIDEgMCAxMDIgMFY5LjQxNGwxLjI5MyAxLjI5M2ExIDEgMCAwMDEuNDE0LTEuNDE0elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQXJyb3dEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTYuNzA3IDEwLjI5M2ExIDEgMCAwMTAgMS40MTRsLTYgNmExIDEgMCAwMS0xLjQxNCAwbC02LTZhMSAxIDAgMTExLjQxNC0xLjQxNEw5IDE0LjU4NlYzYTEgMSAwIDAxMiAwdjExLjU4Nmw0LjI5My00LjI5M2ExIDEgMCAwMTEuNDE0IDB6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlBcnJvd0xlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk05LjcwNyAxNi43MDdhMSAxIDAgMDEtMS40MTQgMGwtNi02YTEgMSAwIDAxMC0xLjQxNGw2LTZhMSAxIDAgMDExLjQxNCAxLjQxNEw1LjQxNCA5SDE3YTEgMSAwIDExMCAySDUuNDE0bDQuMjkzIDQuMjkzYTEgMSAwIDAxMCAxLjQxNHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUFycm93TmFycm93RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE0LjcwNyAxMi4yOTNhMSAxIDAgMDEwIDEuNDE0bC00IDRhMSAxIDAgMDEtMS40MTQgMGwtNC00YTEgMSAwIDExMS40MTQtMS40MTRMOSAxNC41ODZWM2ExIDEgMCAwMTIgMHYxMS41ODZsMi4yOTMtMi4yOTNhMSAxIDAgMDExLjQxNCAwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQXJyb3dOYXJyb3dMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNy43MDcgMTQuNzA3YTEgMSAwIDAxLTEuNDE0IDBsLTQtNGExIDEgMCAwMTAtMS40MTRsNC00YTEgMSAwIDAxMS40MTQgMS40MTRMNS40MTQgOUgxN2ExIDEgMCAxMTAgMkg1LjQxNGwyLjI5MyAyLjI5M2ExIDEgMCAwMTAgMS40MTR6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlBcnJvd05hcnJvd1JpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTIuMjkzIDUuMjkzYTEgMSAwIDAxMS40MTQgMGw0IDRhMSAxIDAgMDEwIDEuNDE0bC00IDRhMSAxIDAgMDEtMS40MTQtMS40MTRMMTQuNTg2IDExSDNhMSAxIDAgMTEwLTJoMTEuNTg2bC0yLjI5My0yLjI5M2ExIDEgMCAwMTAtMS40MTR6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlBcnJvd05hcnJvd1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNS4yOTMgNy43MDdhMSAxIDAgMDEwLTEuNDE0bDQtNGExIDEgMCAwMTEuNDE0IDBsNCA0YTEgMSAwIDAxLTEuNDE0IDEuNDE0TDExIDUuNDE0VjE3YTEgMSAwIDExLTIgMFY1LjQxNEw2LjcwNyA3LjcwN2ExIDEgMCAwMS0xLjQxNCAwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQXJyb3dSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwLjI5MyAzLjI5M2ExIDEgMCAwMTEuNDE0IDBsNiA2YTEgMSAwIDAxMCAxLjQxNGwtNiA2YTEgMSAwIDAxLTEuNDE0LTEuNDE0TDE0LjU4NiAxMUgzYTEgMSAwIDExMC0yaDExLjU4NmwtNC4yOTMtNC4yOTNhMSAxIDAgMDEwLTEuNDE0elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQXJyb3dTbURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xNC43MDcgMTAuMjkzYTEgMSAwIDAxMCAxLjQxNGwtNCA0YTEgMSAwIDAxLTEuNDE0IDBsLTQtNGExIDEgMCAxMTEuNDE0LTEuNDE0TDkgMTIuNTg2VjVhMSAxIDAgMDEyIDB2Ny41ODZsMi4yOTMtMi4yOTNhMSAxIDAgMDExLjQxNCAwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQXJyb3dTbUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk05LjcwNyAxNC43MDdhMSAxIDAgMDEtMS40MTQgMGwtNC00YTEgMSAwIDAxMC0xLjQxNGw0LTRhMSAxIDAgMDExLjQxNCAxLjQxNEw3LjQxNCA5SDE1YTEgMSAwIDExMCAySDcuNDE0bDIuMjkzIDIuMjkzYTEgMSAwIDAxMCAxLjQxNHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUFycm93U21SaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwLjI5MyA1LjI5M2ExIDEgMCAwMTEuNDE0IDBsNCA0YTEgMSAwIDAxMCAxLjQxNGwtNCA0YTEgMSAwIDAxLTEuNDE0LTEuNDE0TDEyLjU4NiAxMUg1YTEgMSAwIDExMC0yaDcuNTg2bC0yLjI5My0yLjI5M2ExIDEgMCAwMTAtMS40MTR6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlBcnJvd1NtVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk01LjI5MyA5LjcwN2ExIDEgMCAwMTAtMS40MTRsNC00YTEgMSAwIDAxMS40MTQgMGw0IDRhMSAxIDAgMDEtMS40MTQgMS40MTRMMTEgNy40MTRWMTVhMSAxIDAgMTEtMiAwVjcuNDE0TDYuNzA3IDkuNzA3YTEgMSAwIDAxLTEuNDE0IDB6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlBcnJvd1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMy4yOTMgOS43MDdhMSAxIDAgMDEwLTEuNDE0bDYtNmExIDEgMCAwMTEuNDE0IDBsNiA2YTEgMSAwIDAxLTEuNDE0IDEuNDE0TDExIDUuNDE0VjE3YTEgMSAwIDExLTIgMFY1LjQxNEw0LjcwNyA5LjcwN2ExIDEgMCAwMS0xLjQxNCAwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQXJyb3dzRXhwYW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMyA0YTEgMSAwIDAxMS0xaDRhMSAxIDAgMDEwIDJINi40MTRsMi4yOTMgMi4yOTNhMSAxIDAgMDEtMS40MTQgMS40MTRMNSA2LjQxNFY4YTEgMSAwIDAxLTIgMFY0em05IDFhMSAxIDAgMTEwLTJoNGExIDEgMCAwMTEgMXY0YTEgMSAwIDExLTIgMFY2LjQxNGwtMi4yOTMgMi4yOTNhMSAxIDAgMTEtMS40MTQtMS40MTRMMTMuNTg2IDVIMTJ6bS05IDdhMSAxIDAgMTEyIDB2MS41ODZsMi4yOTMtMi4yOTNhMSAxIDAgMDExLjQxNCAxLjQxNEw2LjQxNCAxNUg4YTEgMSAwIDExMCAySDRhMSAxIDAgMDEtMS0xdi00em0xMy0xYTEgMSAwIDAxMSAxdjRhMSAxIDAgMDEtMSAxaC00YTEgMSAwIDExMC0yaDEuNTg2bC0yLjI5My0yLjI5M2ExIDEgMCAwMTEuNDE0LTEuNDE0TDE1IDEzLjU4NlYxMmExIDEgMCAwMTEtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUF0U3ltYm9sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTQuMjQzIDUuNzU3YTYgNiAwIDEwLS45ODYgOS4yODQgMSAxIDAgMTExLjA4NyAxLjY3OEE4IDggMCAxMTE4IDEwYTMgMyAwIDAxLTQuOCAyLjQwMUE0IDQgMCAxMTE0IDEwYTEgMSAwIDEwMiAwYzAtMS41MzctLjU4Ni0zLjA3LTEuNzU3LTQuMjQzek0xMiAxMGEyIDIgMCAxMC00IDAgMiAyIDAgMDA0IDB6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlCYWNrc3BhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk02LjcwNyA0Ljg3OUEzIDMgMCAwMTguODI4IDRIMTVhMyAzIDAgMDEzIDN2NmEzIDMgMCAwMS0zIDNIOC44MjhhMyAzIDAgMDEtMi4xMi0uODc5bC00LjQxNS00LjQxNGExIDEgMCAwMTAtMS40MTRsNC40MTQtNC40MTR6bTQgMi40MTRhMSAxIDAgMDAtMS40MTQgMS40MTRMMTAuNTg2IDEwbC0xLjI5MyAxLjI5M2ExIDEgMCAxMDEuNDE0IDEuNDE0TDEyIDExLjQxNGwxLjI5MyAxLjI5M2ExIDEgMCAwMDEuNDE0LTEuNDE0TDEzLjQxNCAxMGwxLjI5My0xLjI5M2ExIDEgMCAwMC0xLjQxNC0xLjQxNEwxMiA4LjU4NmwtMS4yOTMtMS4yOTN6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlCYWRnZUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNi4yNjcgMy40NTVhMy4wNjYgMy4wNjYgMCAwMDEuNzQ1LS43MjMgMy4wNjYgMy4wNjYgMCAwMTMuOTc2IDAgMy4wNjYgMy4wNjYgMCAwMDEuNzQ1LjcyMyAzLjA2NiAzLjA2NiAwIDAxMi44MTIgMi44MTJjLjA1MS42NDMuMzA0IDEuMjU0LjcyMyAxLjc0NWEzLjA2NiAzLjA2NiAwIDAxMCAzLjk3NiAzLjA2NiAzLjA2NiAwIDAwLS43MjMgMS43NDUgMy4wNjYgMy4wNjYgMCAwMS0yLjgxMiAyLjgxMiAzLjA2NiAzLjA2NiAwIDAwLTEuNzQ1LjcyMyAzLjA2NiAzLjA2NiAwIDAxLTMuOTc2IDAgMy4wNjYgMy4wNjYgMCAwMC0xLjc0NS0uNzIzIDMuMDY2IDMuMDY2IDAgMDEtMi44MTItMi44MTIgMy4wNjYgMy4wNjYgMCAwMC0uNzIzLTEuNzQ1IDMuMDY2IDMuMDY2IDAgMDEwLTMuOTc2IDMuMDY2IDMuMDY2IDAgMDAuNzIzLTEuNzQ1IDMuMDY2IDMuMDY2IDAgMDEyLjgxMi0yLjgxMnptNy40NCA1LjI1MmExIDEgMCAwMC0xLjQxNC0xLjQxNEw5IDEwLjU4NiA3LjcwNyA5LjI5M2ExIDEgMCAwMC0xLjQxNCAxLjQxNGwyIDJhMSAxIDAgMDAxLjQxNCAwbDQtNHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUJhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEzLjQ3NyAxNC44OUE2IDYgMCAwMTUuMTEgNi41MjRsOC4zNjcgOC4zNjh6bTEuNDE0LTEuNDE0TDYuNTI0IDUuMTFhNiA2IDAgMDE4LjM2NyA4LjM2N3pNMTggMTBhOCA4IDAgMTEtMTYgMCA4IDggMCAwMTE2IDB6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlCZWFrZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk03IDJhMSAxIDAgMDAtLjcwNyAxLjcwN0w3IDQuNDE0djMuNzU4YTEgMSAwIDAxLS4yOTMuNzA3bC00IDRDLjgxNyAxNC43NjkgMi4xNTYgMTggNC44MjggMThoMTAuMzQzYzIuNjczIDAgNC4wMTItMy4yMzEgMi4xMjItNS4xMjFsLTQtNEExIDEgMCAwMTEzIDguMTcyVjQuNDE0bC43MDctLjcwN0ExIDEgMCAwMDEzIDJIN3ptMiA2LjE3MlY0aDJ2NC4xNzJhMyAzIDAgMDAuODc5IDIuMTJsMS4wMjcgMS4wMjhhNCA0IDAgMDAtMi4xNzEuMTAybC0uNDcuMTU2YTQgNCAwIDAxLTIuNTMgMGwtLjU2My0uMTg3YTEuOTkzIDEuOTkzIDAgMDAtLjExNC0uMDM1bDEuMDYzLTEuMDYzQTMgMyAwIDAwOSA4LjE3MnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUJlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDJhNiA2IDAgMDAtNiA2djMuNTg2bC0uNzA3LjcwN0ExIDEgMCAwMDQgMTRoMTJhMSAxIDAgMDAuNzA3LTEuNzA3TDE2IDExLjU4NlY4YTYgNiAwIDAwLTYtNnpNMTAgMThhMyAzIDAgMDEtMy0zaDZhMyAzIDAgMDEtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlCb29rT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA0LjgwNEE3Ljk2OCA3Ljk2OCAwIDAwNS41IDRjLTEuMjU1IDAtMi40NDMuMjktMy41LjgwNHYxMEE3Ljk2OSA3Ljk2OSAwIDAxNS41IDE0YzEuNjY5IDAgMy4yMTguNTEgNC41IDEuMzg1QTcuOTYyIDcuOTYyIDAgMDExNC41IDE0YzEuMjU1IDAgMi40NDMuMjkgMy41LjgwNHYtMTBBNy45NjggNy45NjggMCAwMDE0LjUgNGMtMS4yNTUgMC0yLjQ0My4yOS0zLjUuODA0VjEyYTEgMSAwIDExLTIgMFY0LjgwNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQm9va21hcmtBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zIDVhMiAyIDAgMDEyLTJoMTBhMiAyIDAgMDEyIDJ2MTBhMiAyIDAgMDEtMiAySDVhMiAyIDAgMDEtMi0yVjV6bTExIDFINnY4bDQtMiA0IDJWNnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUJvb2ttYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDRhMiAyIDAgMDEyLTJoNmEyIDIgMCAwMTIgMnYxNGwtNS0yLjVMNSAxOFY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlCcmllZmNhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk02IDZWNWEzIDMgMCAwMTMtM2gyYTMgMyAwIDAxMyAzdjFoMmEyIDIgMCAwMTIgMnYzLjU3QTIyLjk1MiAyMi45NTIgMCAwMTEwIDEzYTIyLjk1IDIyLjk1IDAgMDEtOC0xLjQzVjhhMiAyIDAgMDEyLTJoMnptMi0xYTEgMSAwIDAxMS0xaDJhMSAxIDAgMDExIDF2MUg4VjV6bTEgNWExIDEgMCAwMTEtMWguMDFhMSAxIDAgMTEwIDJIMTBhMSAxIDAgMDEtMS0xelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxMy42OTJWMTZhMiAyIDAgMDAyIDJoMTJhMiAyIDAgMDAyLTJ2LTIuMzA4QTI0Ljk3NCAyNC45NzQgMCAwMTEwIDE1Yy0yLjc5NiAwLTUuNDg3LS40Ni04LTEuMzA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDYWtlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNiAzYTEgMSAwIDAxMS0xaC4wMWExIDEgMCAwMTAgMkg3YTEgMSAwIDAxLTEtMXptMiAzYTEgMSAwIDAwLTIgMHYxYTIgMiAwIDAwLTIgMnYxYTIgMiAwIDAwLTIgMnYuNjgzYTMuNyAzLjcgMCAwMTEuMDU1LjQ4NSAxLjcwNCAxLjcwNCAwIDAwMS44OSAwIDMuNzA0IDMuNzA0IDAgMDE0LjExIDAgMS43MDQgMS43MDQgMCAwMDEuODkgMCAzLjcwNCAzLjcwNCAwIDAxNC4xMSAwIDEuNzA0IDEuNzA0IDAgMDAxLjg5IDBBMy43IDMuNyAwIDAxMTggMTIuNjgzVjEyYTIgMiAwIDAwLTItMlY5YTIgMiAwIDAwLTItMlY2YTEgMSAwIDEwLTIgMHYxaC0xVjZhMSAxIDAgMTAtMiAwdjFIOFY2em0xMCA4Ljg2OGEzLjcwNCAzLjcwNCAwIDAxLTQuMDU1LS4wMzYgMS43MDQgMS43MDQgMCAwMC0xLjg5IDAgMy43MDQgMy43MDQgMCAwMS00LjExIDAgMS43MDQgMS43MDQgMCAwMC0xLjg5IDBBMy43MDQgMy43MDQgMCAwMTIgMTQuODY4VjE3YTEgMSAwIDAwMSAxaDE0YTEgMSAwIDAwMS0xdi0yLjEzMnpNOSAzYTEgMSAwIDAxMS0xaC4wMWExIDEgMCAxMTAgMkgxMGExIDEgMCAwMS0xLTF6bTMgMGExIDEgMCAwMTEtMWguMDFhMSAxIDAgMTEwIDJIMTNhMSAxIDAgMDEtMS0xelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ2FsY3VsYXRvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTYgMmEyIDIgMCAwMC0yIDJ2MTJhMiAyIDAgMDAyIDJoOGEyIDIgMCAwMDItMlY0YTIgMiAwIDAwLTItMkg2em0xIDJhMSAxIDAgMDAwIDJoNmExIDEgMCAxMDAtMkg3em02IDdhMSAxIDAgMDExIDF2M2ExIDEgMCAxMS0yIDB2LTNhMSAxIDAgMDExLTF6bS0zIDNhMSAxIDAgMTAwIDJoLjAxYTEgMSAwIDEwMC0ySDEwem0tNCAxYTEgMSAwIDAxMS0xaC4wMWExIDEgMCAxMTAgMkg3YTEgMSAwIDAxLTEtMXptMS00YTEgMSAwIDEwMCAyaC4wMWExIDEgMCAxMDAtMkg3em0yIDFhMSAxIDAgMDExLTFoLjAxYTEgMSAwIDExMCAySDEwYTEgMSAwIDAxLTEtMXptNC00YTEgMSAwIDEwMCAyaC4wMWExIDEgMCAxMDAtMkgxM3pNOSA5YTEgMSAwIDAxMS0xaC4wMWExIDEgMCAxMTAgMkgxMGExIDEgMCAwMS0xLTF6TTcgOGExIDEgMCAwMDAgMmguMDFhMSAxIDAgMDAwLTJIN3pcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNhbGVuZGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNiAyYTEgMSAwIDAwLTEgMXYxSDRhMiAyIDAgMDAtMiAydjEwYTIgMiAwIDAwMiAyaDEyYTIgMiAwIDAwMi0yVjZhMiAyIDAgMDAtMi0yaC0xVjNhMSAxIDAgMTAtMiAwdjFIN1YzYTEgMSAwIDAwLTEtMXptMCA1YTEgMSAwIDAwMCAyaDhhMSAxIDAgMTAwLTJINnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNhbWVyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQgNWEyIDIgMCAwMC0yIDJ2OGEyIDIgMCAwMDIgMmgxMmEyIDIgMCAwMDItMlY3YTIgMiAwIDAwLTItMmgtMS41ODZhMSAxIDAgMDEtLjcwNy0uMjkzbC0xLjEyMS0xLjEyMUEyIDIgMCAwMDExLjE3MiAzSDguODI4YTIgMiAwIDAwLTEuNDE0LjU4Nkw2LjI5MyA0LjcwN0ExIDEgMCAwMTUuNTg2IDVINHptNiA5YTMgMyAwIDEwMC02IDMgMyAwIDAwMCA2elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ2FzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQgNGEyIDIgMCAwMC0yIDJ2NGEyIDIgMCAwMDIgMlY2aDEwYTIgMiAwIDAwLTItMkg0em0yIDZhMiAyIDAgMDEyLTJoOGEyIDIgMCAwMTIgMnY0YTIgMiAwIDAxLTIgMkg4YTIgMiAwIDAxLTItMnYtNHptNiA0YTIgMiAwIDEwMC00IDIgMiAwIDAwMCA0elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ2hhcnRCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTFhMSAxIDAgMDExLTFoMmExIDEgMCAwMTEgMXY1YTEgMSAwIDAxLTEgMUgzYTEgMSAwIDAxLTEtMXYtNXpNOCA3YTEgMSAwIDAxMS0xaDJhMSAxIDAgMDExIDF2OWExIDEgMCAwMS0xIDFIOWExIDEgMCAwMS0xLTFWN3pNMTQgNGExIDEgMCAwMTEtMWgyYTEgMSAwIDAxMSAxdjEyYTEgMSAwIDAxLTEgMWgtMmExIDEgMCAwMS0xLTFWNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ2hhcnRQaWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTBhOCA4IDAgMDE4LTh2OGg4YTggOCAwIDExLTE2IDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIuMjUyQTguMDE0IDguMDE0IDAgMDExNy43NDggOEgxMlYyLjI1MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ2hhcnRTcXVhcmVCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk01IDNhMiAyIDAgMDAtMiAydjEwYTIgMiAwIDAwMiAyaDEwYTIgMiAwIDAwMi0yVjVhMiAyIDAgMDAtMi0ySDV6bTkgNGExIDEgMCAxMC0yIDB2NmExIDEgMCAxMDIgMFY3em0tMyAyYTEgMSAwIDEwLTIgMHY0YTEgMSAwIDEwMiAwVjl6bS0zIDNhMSAxIDAgMTAtMiAwdjFhMSAxIDAgMTAyIDB2LTF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDaGF0QWx0MiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA1YTIgMiAwIDAxMi0yaDdhMiAyIDAgMDEyIDJ2NGEyIDIgMCAwMS0yIDJIOWwtMyAzdi0zSDRhMiAyIDAgMDEtMi0yVjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDd2MmE0IDQgMCAwMS00IDRIOS44MjhsLTEuNzY2IDEuNzY3Yy4yOC4xNDkuNTk5LjIzMy45MzguMjMzaDJsMyAzdi0zaDJhMiAyIDAgMDAyLTJWOWEyIDIgMCAwMC0yLTJoLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNoYXRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xOCA1djhhMiAyIDAgMDEtMiAyaC01bC01IDR2LTRINGEyIDIgMCAwMS0yLTJWNWEyIDIgMCAwMTItMmgxMmEyIDIgMCAwMTIgMnpNNyA4SDV2MmgyVjh6bTIgMGgydjJIOVY4em02IDBoLTJ2MmgyVjh6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDaGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTggMTBjMCAzLjg2Ni0zLjU4MiA3LTggN2E4Ljg0MSA4Ljg0MSAwIDAxLTQuMDgzLS45OEwyIDE3bDEuMzM4LTMuMTIzQzIuNDkzIDEyLjc2NyAyIDExLjQzNCAyIDEwYzAtMy44NjYgMy41ODItNyA4LTdzOCAzLjEzNCA4IDd6TTcgOUg1djJoMlY5em04IDBoLTJ2MmgyVjl6TTkgOWgydjJIOVY5elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ2hlY2tDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2em0zLjcwNy05LjI5M2ExIDEgMCAwMC0xLjQxNC0xLjQxNEw5IDEwLjU4NiA3LjcwNyA5LjI5M2ExIDEgMCAwMC0xLjQxNCAxLjQxNGwyIDJhMSAxIDAgMDAxLjQxNCAwbDQtNHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTYuNzA3IDUuMjkzYTEgMSAwIDAxMCAxLjQxNGwtOCA4YTEgMSAwIDAxLTEuNDE0IDBsLTQtNGExIDEgMCAwMTEuNDE0LTEuNDE0TDggMTIuNTg2bDcuMjkzLTcuMjkzYTEgMSAwIDAxMS40MTQgMHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNoZXZyb25Eb3VibGVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTUuNzA3IDQuMjkzYTEgMSAwIDAxMCAxLjQxNGwtNSA1YTEgMSAwIDAxLTEuNDE0IDBsLTUtNWExIDEgMCAwMTEuNDE0LTEuNDE0TDEwIDguNTg2bDQuMjkzLTQuMjkzYTEgMSAwIDAxMS40MTQgMHptMCA2YTEgMSAwIDAxMCAxLjQxNGwtNSA1YTEgMSAwIDAxLTEuNDE0IDBsLTUtNWExIDEgMCAxMTEuNDE0LTEuNDE0TDEwIDE0LjU4Nmw0LjI5My00LjI5M2ExIDEgMCAwMTEuNDE0IDB6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDaGV2cm9uRG91YmxlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE1LjcwNyAxNS43MDdhMSAxIDAgMDEtMS40MTQgMGwtNS01YTEgMSAwIDAxMC0xLjQxNGw1LTVhMSAxIDAgMTExLjQxNCAxLjQxNEwxMS40MTQgMTBsNC4yOTMgNC4yOTNhMSAxIDAgMDEwIDEuNDE0em0tNiAwYTEgMSAwIDAxLTEuNDE0IDBsLTUtNWExIDEgMCAwMTAtMS40MTRsNS01YTEgMSAwIDAxMS40MTQgMS40MTRMNS40MTQgMTBsNC4yOTMgNC4yOTNhMSAxIDAgMDEwIDEuNDE0elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ2hldnJvbkRvdWJsZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAuMjkzIDE1LjcwN2ExIDEgMCAwMTAtMS40MTRMMTQuNTg2IDEwbC00LjI5My00LjI5M2ExIDEgMCAxMTEuNDE0LTEuNDE0bDUgNWExIDEgMCAwMTAgMS40MTRsLTUgNWExIDEgMCAwMS0xLjQxNCAwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQuMjkzIDE1LjcwN2ExIDEgMCAwMTAtMS40MTRMOC41ODYgMTAgNC4yOTMgNS43MDdhMSAxIDAgMDExLjQxNC0xLjQxNGw1IDVhMSAxIDAgMDEwIDEuNDE0bC01IDVhMSAxIDAgMDEtMS40MTQgMHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNoZXZyb25Eb3VibGVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQuMjkzIDE1LjcwN2ExIDEgMCAwMTAtMS40MTRsNS01YTEgMSAwIDAxMS40MTQgMGw1IDVhMSAxIDAgMDEtMS40MTQgMS40MTRMMTAgMTEuNDE0bC00LjI5MyA0LjI5M2ExIDEgMCAwMS0xLjQxNCAwem0wLTZhMSAxIDAgMDEwLTEuNDE0bDUtNWExIDEgMCAwMTEuNDE0IDBsNSA1YTEgMSAwIDAxLTEuNDE0IDEuNDE0TDEwIDUuNDE0IDUuNzA3IDkuNzA3YTEgMSAwIDAxLTEuNDE0IDB6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDaGV2cm9uRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUuMjkzIDcuMjkzYTEgMSAwIDAxMS40MTQgMEwxMCAxMC41ODZsMy4yOTMtMy4yOTNhMSAxIDAgMTExLjQxNCAxLjQxNGwtNCA0YTEgMSAwIDAxLTEuNDE0IDBsLTQtNGExIDEgMCAwMTAtMS40MTR6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDaGV2cm9uTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEyLjcwNyA1LjI5M2ExIDEgMCAwMTAgMS40MTRMOS40MTQgMTBsMy4yOTMgMy4yOTNhMSAxIDAgMDEtMS40MTQgMS40MTRsLTQtNGExIDEgMCAwMTAtMS40MTRsNC00YTEgMSAwIDAxMS40MTQgMHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNoZXZyb25SaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTcuMjkzIDE0LjcwN2ExIDEgMCAwMTAtMS40MTRMMTAuNTg2IDEwIDcuMjkzIDYuNzA3YTEgMSAwIDAxMS40MTQtMS40MTRsNCA0YTEgMSAwIDAxMCAxLjQxNGwtNCA0YTEgMSAwIDAxLTEuNDE0IDB6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDaGV2cm9uVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xNC43MDcgMTIuNzA3YTEgMSAwIDAxLTEuNDE0IDBMMTAgOS40MTRsLTMuMjkzIDMuMjkzYTEgMSAwIDAxLTEuNDE0LTEuNDE0bDQtNGExIDEgMCAwMTEuNDE0IDBsNCA0YTEgMSAwIDAxMCAxLjQxNHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNoaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDdIN3Y2aDZWN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTcgMmExIDEgMCAwMTIgMHYxaDJWMmExIDEgMCAxMTIgMHYxaDJhMiAyIDAgMDEyIDJ2MmgxYTEgMSAwIDExMCAyaC0xdjJoMWExIDEgMCAxMTAgMmgtMXYyYTIgMiAwIDAxLTIgMmgtMnYxYTEgMSAwIDExLTIgMHYtMUg5djFhMSAxIDAgMTEtMiAwdi0xSDVhMiAyIDAgMDEtMi0ydi0ySDJhMSAxIDAgMTEwLTJoMVY5SDJhMSAxIDAgMDEwLTJoMVY1YTIgMiAwIDAxMi0yaDJWMnpNNSA1aDEwdjEwSDVWNXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNsaXBib2FyZENoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDJhMSAxIDAgMDAwIDJoMmExIDEgMCAxMDAtMkg5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNCA1YTIgMiAwIDAxMi0yIDMgMyAwIDAwMyAzaDJhMyAzIDAgMDAzLTMgMiAyIDAgMDEyIDJ2MTFhMiAyIDAgMDEtMiAySDZhMiAyIDAgMDEtMi0yVjV6bTkuNzA3IDUuNzA3YTEgMSAwIDAwLTEuNDE0LTEuNDE0TDkgMTIuNTg2bC0xLjI5My0xLjI5M2ExIDEgMCAwMC0xLjQxNCAxLjQxNGwyIDJhMSAxIDAgMDAxLjQxNCAwbDQtNHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNsaXBib2FyZENvcHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMmExIDEgMCAwMDAgMmgyYTEgMSAwIDEwMC0ySDh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNWEyIDIgMCAwMTItMiAzIDMgMCAwMDMgM2gyYTMgMyAwIDAwMy0zIDIgMiAwIDAxMiAydjZoLTQuNTg2bDEuMjkzLTEuMjkzYTEgMSAwIDAwLTEuNDE0LTEuNDE0bC0zIDNhMSAxIDAgMDAwIDEuNDE0bDMgM2ExIDEgMCAwMDEuNDE0LTEuNDE0TDEwLjQxNCAxM0gxNXYzYTIgMiAwIDAxLTIgMkg1YTIgMiAwIDAxLTItMlY1ek0xNSAxMWgyYTEgMSAwIDExMCAyaC0ydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDbGlwYm9hcmRMaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDJhMSAxIDAgMDAwIDJoMmExIDEgMCAxMDAtMkg5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNCA1YTIgMiAwIDAxMi0yIDMgMyAwIDAwMyAzaDJhMyAzIDAgMDAzLTMgMiAyIDAgMDEyIDJ2MTFhMiAyIDAgMDEtMiAySDZhMiAyIDAgMDEtMi0yVjV6bTMgNGExIDEgMCAwMDAgMmguMDFhMSAxIDAgMTAwLTJIN3ptMyAwYTEgMSAwIDAwMCAyaDNhMSAxIDAgMTAwLTJoLTN6bS0zIDRhMSAxIDAgMTAwIDJoLjAxYTEgMSAwIDEwMC0ySDd6bTMgMGExIDEgMCAxMDAgMmgzYTEgMSAwIDEwMC0yaC0zelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ2xpcGJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDNhMSAxIDAgMDExLTFoMmExIDEgMCAxMTAgMkg5YTEgMSAwIDAxLTEtMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAzYTIgMiAwIDAwLTIgMnYxMWEyIDIgMCAwMDIgMmg4YTIgMiAwIDAwMi0yVjVhMiAyIDAgMDAtMi0yIDMgMyAwIDAxLTMgM0g5YTMgMyAwIDAxLTMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ2xvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2em0xLTEyYTEgMSAwIDEwLTIgMHY0YTEgMSAwIDAwLjI5My43MDdsMi44MjggMi44MjlhMSAxIDAgMTAxLjQxNS0xLjQxNUwxMSA5LjU4NlY2elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ2xvdWREb3dubG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIgOS41QTMuNSAzLjUgMCAwMDUuNSAxM0g5djIuNTg2bC0xLjI5My0xLjI5M2ExIDEgMCAwMC0xLjQxNCAxLjQxNGwzIDNhMSAxIDAgMDAxLjQxNCAwbDMtM2ExIDEgMCAwMC0xLjQxNC0xLjQxNEwxMSAxNS41ODZWMTNoMi41YTQuNSA0LjUgMCAxMC0uNjE2LTguOTU4IDQuMDAyIDQuMDAyIDAgMTAtNy43NTMgMS45NzdBMy41IDMuNSAwIDAwMiA5LjV6bTkgMy41SDlWOGExIDEgMCAwMTIgMHY1elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ2xvdWRVcGxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNSAxM2EzLjUgMy41IDAgMDEtLjM2OS02Ljk4IDQgNCAwIDExNy43NTMtMS45NzdBNC41IDQuNSAwIDExMTMuNSAxM0gxMVY5LjQxM2wxLjI5MyAxLjI5M2ExIDEgMCAwMDEuNDE0LTEuNDE0bC0zLTNhMSAxIDAgMDAtMS40MTQgMGwtMyAzYTEgMSAwIDAwMS40MTQgMS40MTRMOSA5LjQxNFYxM0g1LjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTNoMnY1YTEgMSAwIDExLTIgMHYtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ2xvdWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNSAxNmEzLjUgMy41IDAgMDEtLjM2OS02Ljk4IDQgNCAwIDExNy43NTMtMS45NzdBNC41IDQuNSAwIDExMTMuNSAxNmgtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ29kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEyLjMxNiAzLjA1MWExIDEgMCAwMS42MzMgMS4yNjVsLTQgMTJhMSAxIDAgMTEtMS44OTgtLjYzMmw0LTEyYTEgMSAwIDAxMS4yNjUtLjYzM3pNNS43MDcgNi4yOTNhMSAxIDAgMDEwIDEuNDE0TDMuNDE0IDEwbDIuMjkzIDIuMjkzYTEgMSAwIDExLTEuNDE0IDEuNDE0bC0zLTNhMSAxIDAgMDEwLTEuNDE0bDMtM2ExIDEgMCAwMTEuNDE0IDB6bTguNTg2IDBhMSAxIDAgMDExLjQxNCAwbDMgM2ExIDEgMCAwMTAgMS40MTRsLTMgM2ExIDEgMCAxMS0xLjQxNC0xLjQxNEwxNi41ODYgMTBsLTIuMjkzLTIuMjkzYTEgMSAwIDAxMC0xLjQxNHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNvZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTExLjQ5IDMuMTdjLS4zOC0xLjU2LTIuNi0xLjU2LTIuOTggMGExLjUzMiAxLjUzMiAwIDAxLTIuMjg2Ljk0OGMtMS4zNzItLjgzNi0yLjk0Mi43MzQtMi4xMDYgMi4xMDYuNTQuODg2LjA2MSAyLjA0Mi0uOTQ3IDIuMjg3LTEuNTYxLjM3OS0xLjU2MSAyLjYgMCAyLjk3OGExLjUzMiAxLjUzMiAwIDAxLjk0NyAyLjI4N2MtLjgzNiAxLjM3Mi43MzQgMi45NDIgMi4xMDYgMi4xMDZhMS41MzIgMS41MzIgMCAwMTIuMjg3Ljk0N2MuMzc5IDEuNTYxIDIuNiAxLjU2MSAyLjk3OCAwYTEuNTMzIDEuNTMzIDAgMDEyLjI4Ny0uOTQ3YzEuMzcyLjgzNiAyLjk0Mi0uNzM0IDIuMTA2LTIuMTA2YTEuNTMzIDEuNTMzIDAgMDEuOTQ3LTIuMjg3YzEuNTYxLS4zNzkgMS41NjEtMi42IDAtMi45NzhhMS41MzIgMS41MzIgMCAwMS0uOTQ3LTIuMjg3Yy44MzYtMS4zNzItLjczNC0yLjk0Mi0yLjEwNi0yLjEwNmExLjUzMiAxLjUzMiAwIDAxLTIuMjg3LS45NDd6TTEwIDEzYTMgMyAwIDEwMC02IDMgMyAwIDAwMCA2elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ29sbGVjdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAzYTEgMSAwIDAwMCAyaDZhMSAxIDAgMTAwLTJIN3pNNCA3YTEgMSAwIDAxMS0xaDEwYTEgMSAwIDExMCAySDVhMSAxIDAgMDEtMS0xek0yIDExYTIgMiAwIDAxMi0yaDEyYTIgMiAwIDAxMiAydjRhMiAyIDAgMDEtMiAySDRhMiAyIDAgMDEtMi0ydi00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDb2xvclN3YXRjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQgMmEyIDIgMCAwMC0yIDJ2MTFhMyAzIDAgMTA2IDBWNGEyIDIgMCAwMC0yLTJINHptMSAxNGExIDEgMCAxMDAtMiAxIDEgMCAwMDAgMnptNS0xLjc1N2w0LjktNC45YTIgMiAwIDAwMC0yLjgyOEwxMy40ODUgNS4xYTIgMiAwIDAwLTIuODI4IDBMMTAgNS43NTd2OC40ODZ6TTE2IDE4SDkuMDcxbDYtNkgxNmEyIDIgMCAwMTIgMnYyYTIgMiAwIDAxLTIgMnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNyZWRpdENhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNGEyIDIgMCAwMC0yIDJ2MWgxNlY2YTIgMiAwIDAwLTItMkg0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTggOUgydjVhMiAyIDAgMDAyIDJoMTJhMiAyIDAgMDAyLTJWOXpNNCAxM2ExIDEgMCAwMTEtMWgxYTEgMSAwIDExMCAySDVhMSAxIDAgMDEtMS0xem01LTFhMSAxIDAgMTAwIDJoMWExIDEgMCAxMDAtMkg5elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ3ViZVRyYW5zcGFyZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOS41MDQgMS4xMzJhMSAxIDAgMDEuOTkyIDBsMS43NSAxYTEgMSAwIDExLS45OTIgMS43MzZMMTAgMy4xNTJsLTEuMjU0LjcxNmExIDEgMCAxMS0uOTkyLTEuNzM2bDEuNzUtMXpNNS42MTggNC41MDRhMSAxIDAgMDEtLjM3MiAxLjM2NEw1LjAxNiA2bC4yMy4xMzJhMSAxIDAgMTEtLjk5MiAxLjczNkw0IDcuNzIzVjhhMSAxIDAgMDEtMiAwVjZhLjk5Ni45OTYgMCAwMS41Mi0uODc4bDEuNzM0LS45OWExIDEgMCAwMTEuMzY0LjM3MnptOC43NjQgMGExIDEgMCAwMTEuMzY0LS4zNzJsMS43MzMuOTlBMS4wMDIgMS4wMDIgMCAwMTE4IDZ2MmExIDEgMCAxMS0yIDB2LS4yNzdsLS4yNTQuMTQ1YTEgMSAwIDExLS45OTItMS43MzZsLjIzLS4xMzItLjIzLS4xMzJhMSAxIDAgMDEtLjM3Mi0xLjM2NHptLTcgNGExIDEgMCAwMTEuMzY0LS4zNzJMMTAgOC44NDhsMS4yNTQtLjcxNmExIDEgMCAxMS45OTIgMS43MzZMMTEgMTAuNThWMTJhMSAxIDAgMTEtMiAwdi0xLjQybC0xLjI0Ni0uNzEyYTEgMSAwIDAxLS4zNzItMS4zNjR6TTMgMTFhMSAxIDAgMDExIDF2MS40MmwxLjI0Ni43MTJhMSAxIDAgMTEtLjk5MiAxLjczNmwtMS43NS0xQTEgMSAwIDAxMiAxNHYtMmExIDEgMCAwMTEtMXptMTQgMGExIDEgMCAwMTEgMXYyYTEgMSAwIDAxLS41MDQuODY4bC0xLjc1IDFhMSAxIDAgMTEtLjk5Mi0xLjczNkwxNiAxMy40MlYxMmExIDEgMCAwMTEtMXptLTkuNjE4IDUuNTA0YTEgMSAwIDAxMS4zNjQtLjM3MmwuMjU0LjE0NVYxNmExIDEgMCAxMTIgMHYuMjc3bC4yNTQtLjE0NWExIDEgMCAxMS45OTIgMS43MzZsLTEuNzM1Ljk5MmEuOTk1Ljk5NSAwIDAxLTEuMDIyIDBsLTEuNzM1LS45OTJhMSAxIDAgMDEtLjM3Mi0xLjM2NHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUN1YmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE3YTEgMSAwIDAwMS40NDcuODk0bDQtMkExIDEgMCAwMDE3IDE1VjkuMjM2YTEgMSAwIDAwLTEuNDQ3LS44OTRsLTQgMmExIDEgMCAwMC0uNTUzLjg5NFYxN3pNMTUuMjExIDYuMjc2YTEgMSAwIDAwMC0xLjc4OGwtNC43NjQtMi4zODJhMSAxIDAgMDAtLjg5NCAwTDQuNzg5IDQuNDg4YTEgMSAwIDAwMCAxLjc4OGw0Ljc2NCAyLjM4MmExIDEgMCAwMC44OTQgMGw0Ljc2NC0yLjM4MnpNNC40NDcgOC4zNDJBMSAxIDAgMDAzIDkuMjM2VjE1YTEgMSAwIDAwLjU1My44OTRsNCAyQTEgMSAwIDAwOSAxN3YtNS43NjRhMSAxIDAgMDAtLjU1My0uODk0bC00LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUN1cnJlbmN5QmFuZ2xhZGVzaGkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2ek03IDRhMSAxIDAgMDAwIDIgMSAxIDAgMDExIDF2MUg3YTEgMSAwIDAwMCAyaDF2M2EzIDMgMCAxMDYgMHYtMWExIDEgMCAxMC0yIDB2MWExIDEgMCAxMS0yIDB2LTNoM2ExIDEgMCAxMDAtMmgtM1Y3YTMgMyAwIDAwLTMtM3pcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUN1cnJlbmN5RG9sbGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjQzMyA3LjQxOGMuMTU1LS4xMDMuMzQ2LS4xOTYuNTY3LS4yNjd2MS42OThhMi4zMDUgMi4zMDUgMCAwMS0uNTY3LS4yNjdDOC4wNyA4LjM0IDggOC4xMTQgOCA4YzAtLjExNC4wNy0uMzQuNDMzLS41ODJ6TTExIDEyLjg0OXYtMS42OThjLjIyLjA3MS40MTIuMTY0LjU2Ny4yNjcuMzY0LjI0My40MzMuNDY4LjQzMy41ODIgMCAuMTE0LS4wNy4zNC0uNDMzLjU4MmEyLjMwNSAyLjMwNSAwIDAxLS41NjcuMjY3elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnptMS0xM2ExIDEgMCAxMC0yIDB2LjA5MmE0LjUzNSA0LjUzNSAwIDAwLTEuNjc2LjY2MkM2LjYwMiA2LjIzNCA2IDcuMDA5IDYgOGMwIC45OS42MDIgMS43NjUgMS4zMjQgMi4yNDYuNDguMzIgMS4wNTQuNTQ1IDEuNjc2LjY2MnYxLjk0MWMtLjM5MS0uMTI3LS42OC0uMzE3LS44NDMtLjUwNGExIDEgMCAxMC0xLjUxIDEuMzFjLjU2Mi42NDkgMS40MTMgMS4wNzYgMi4zNTMgMS4yNTNWMTVhMSAxIDAgMTAyIDB2LS4wOTJhNC41MzUgNC41MzUgMCAwMDEuNjc2LS42NjJDMTMuMzk4IDEzLjc2NiAxNCAxMi45OTEgMTQgMTJjMC0uOTktLjYwMi0xLjc2NS0xLjMyNC0yLjI0NkE0LjUzNSA0LjUzNSAwIDAwMTEgOS4wOTJWNy4xNTFjLjM5MS4xMjcuNjguMzE3Ljg0My41MDRhMSAxIDAgMTAxLjUxMS0xLjMxYy0uNTYzLS42NDktMS40MTMtMS4wNzYtMi4zNTQtMS4yNTNWNXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUN1cnJlbmN5RXVybyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6TTguNzM2IDYuOTc5QzkuMjA4IDYuMTkzIDkuNjk2IDYgMTAgNmMuMzA0IDAgLjc5Mi4xOTMgMS4yNjQuOTc5YTEgMSAwIDAwMS43MTUtMS4wMjlDMTIuMjc5IDQuNzg0IDExLjIzMiA0IDEwIDRzLTIuMjc5Ljc4NC0yLjk3OSAxLjk1Yy0uMjg1LjQ3NS0uNTA3IDEtLjY3IDEuNTVINmExIDEgMCAwMDAgMmguMDEzYTkuMzU4IDkuMzU4IDAgMDAwIDFINmExIDEgMCAxMDAgMmguMzUxYy4xNjMuNTUuMzg1IDEuMDc1LjY3IDEuNTVDNy43MjEgMTUuMjE2IDguNzY4IDE2IDEwIDE2czIuMjc5LS43ODQgMi45NzktMS45NWExIDEgMCAxMC0xLjcxNS0xLjAyOWMtLjQ3Mi43ODYtLjk2Ljk3OS0xLjI2NC45NzktLjMwNCAwLS43OTItLjE5My0xLjI2NC0uOTc5YTQuMjY1IDQuMjY1IDAgMDEtLjI2NC0uNTIxSDEwYTEgMSAwIDEwMC0ySDguMDE3YTcuMzYgNy4zNiAwIDAxMC0xSDEwYTEgMSAwIDEwMC0ySDguNDcyYy4wOC0uMTg1LjE2Ny0uMzYuMjY0LS41MjF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDdXJyZW5jeVBvdW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnptMS0xNGEzIDMgMCAwMC0zIDN2Mkg3YTEgMSAwIDAwMCAyaDF2MWExIDEgMCAwMS0xIDEgMSAxIDAgMTAwIDJoNmExIDEgMCAxMDAtMkg5LjgzYy4xMS0uMzEzLjE3LS42NS4xNy0xdi0xaDFhMSAxIDAgMTAwLTJoLTFWN2ExIDEgMCAxMTIgMCAxIDEgMCAxMDIgMCAzIDMgMCAwMC0zLTN6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDdXJyZW5jeVJ1cGVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnpNNyA1YTEgMSAwIDEwMCAyaDFhMiAyIDAgMDExLjczMiAxSDdhMSAxIDAgMTAwIDJoMi43MzJBMiAyIDAgMDE4IDExSDdhMSAxIDAgMDAtLjcwNyAxLjcwN2wzIDNhMSAxIDAgMDAxLjQxNC0xLjQxNGwtMS40ODMtMS40ODRBNC4wMDggNC4wMDggMCAwMDExLjg3NCAxMEgxM2ExIDEgMCAxMDAtMmgtMS4xMjZhMy45NzYgMy45NzYgMCAwMC0uNDEtMUgxM2ExIDEgMCAxMDAtMkg3elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ3VycmVuY3lZZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2ek03Ljg1OCA1LjQ4NWExIDEgMCAwMC0xLjcxNSAxLjAzTDcuNjMzIDlIN2ExIDEgMCAxMDAgMmgxLjgzNGwuMTY2LjI3N1YxMkg3YTEgMSAwIDEwMCAyaDJ2MWExIDEgMCAxMDIgMHYtMWgyYTEgMSAwIDEwMC0yaC0ydi0uNzIzbC4xNjYtLjI3N0gxM2ExIDEgMCAxMDAtMmgtLjYzNGwxLjQ5Mi0yLjQ4NmExIDEgMCAxMC0xLjcxNi0xLjAyOUwxMC4wMzQgOWgtLjA2OEw3Ljg1OCA1LjQ4NXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUN1cnNvckNsaWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNi42NzIgMS45MTFhMSAxIDAgMTAtMS45MzIuNTE4bC4yNTkuOTY2YTEgMSAwIDAwMS45MzItLjUxOGwtLjI2LS45NjZ6TTIuNDI5IDQuNzRhMSAxIDAgMTAtLjUxNyAxLjkzMmwuOTY2LjI1OWExIDEgMCAwMC41MTctMS45MzJsLS45NjYtLjI2em04LjgxNC0uNTY5YTEgMSAwIDAwLTEuNDE1LTEuNDE0bC0uNzA3LjcwN2ExIDEgMCAxMDEuNDE1IDEuNDE1bC43MDctLjcwOHptLTcuMDcxIDcuMDcybC43MDctLjcwN0ExIDEgMCAwMDMuNDY1IDkuMTJsLS43MDguNzA3YTEgMSAwIDAwMS40MTUgMS40MTV6bTMuMi01LjE3MWExIDEgMCAwMC0xLjMgMS4zbDQgMTBhMSAxIDAgMDAxLjgyMy4wNzVsMS4zOC0yLjc1OSAzLjAxOCAzLjAyYTEgMSAwIDAwMS40MTQtMS40MTVsLTMuMDE5LTMuMDIgMi43Ni0xLjM3OWExIDEgMCAwMC0uMDc2LTEuODIybC0xMC00elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRGF0YWJhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTJ2M2MwIDEuNjU3IDMuMTM0IDMgNyAzczctMS4zNDMgNy0zdi0zYzAgMS42NTctMy4xMzQgMy03IDNzLTctMS4zNDMtNy0zelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDd2M2MwIDEuNjU3IDMuMTM0IDMgNyAzczctMS4zNDMgNy0zVjdjMCAxLjY1Ny0zLjEzNCAzLTcgM1MzIDguNjU3IDMgN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNWMwIDEuNjU3LTMuMTM0IDMtNyAzUzMgNi42NTcgMyA1czMuMTM0LTMgNy0zIDcgMS4zNDMgNyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlEZXNrdG9wQ29tcHV0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zIDVhMiAyIDAgMDEyLTJoMTBhMiAyIDAgMDEyIDJ2OGEyIDIgMCAwMS0yIDJoLTIuMjJsLjEyMy40ODkuODA0LjgwNEExIDEgMCAwMTEzIDE4SDdhMSAxIDAgMDEtLjcwNy0xLjcwN2wuODA0LS44MDRMNy4yMiAxNUg1YTIgMiAwIDAxLTItMlY1em01Ljc3MSA3SDVWNWgxMHY3SDguNzcxelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRGV2aWNlTW9iaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNyAyYTIgMiAwIDAwLTIgMnYxMmEyIDIgMCAwMDIgMmg2YTIgMiAwIDAwMi0yVjRhMiAyIDAgMDAtMi0ySDd6bTMgMTRhMSAxIDAgMTAwLTIgMSAxIDAgMDAwIDJ6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlEZXZpY2VUYWJsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk02IDJhMiAyIDAgMDAtMiAydjEyYTIgMiAwIDAwMiAyaDhhMiAyIDAgMDAyLTJWNGEyIDIgMCAwMC0yLTJINnptNCAxNGExIDEgMCAxMDAtMiAxIDEgMCAwMDAgMnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaURvY3VtZW50QWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNiAyYTIgMiAwIDAwLTIgMnYxMmEyIDIgMCAwMDIgMmg4YTIgMiAwIDAwMi0yVjcuNDE0QTIgMiAwIDAwMTUuNDE0IDZMMTIgMi41ODZBMiAyIDAgMDAxMC41ODYgMkg2em01IDZhMSAxIDAgMTAtMiAwdjJIN2ExIDEgMCAxMDAgMmgydjJhMSAxIDAgMTAyIDB2LTJoMmExIDEgMCAxMDAtMmgtMlY4elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRG9jdW1lbnREb3dubG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTYgMmEyIDIgMCAwMC0yIDJ2MTJhMiAyIDAgMDAyIDJoOGEyIDIgMCAwMDItMlY3LjQxNEEyIDIgMCAwMDE1LjQxNCA2TDEyIDIuNTg2QTIgMiAwIDAwMTAuNTg2IDJINnptNSA2YTEgMSAwIDEwLTIgMHYzLjU4NmwtMS4yOTMtMS4yOTNhMSAxIDAgMTAtMS40MTQgMS40MTRsMyAzYTEgMSAwIDAwMS40MTQgMGwzLTNhMSAxIDAgMDAtMS40MTQtMS40MTRMMTEgMTEuNTg2Vjh6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlEb2N1bWVudER1cGxpY2F0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAyYTIgMiAwIDAwLTIgMnY4YTIgMiAwIDAwMiAyaDZhMiAyIDAgMDAyLTJWNi40MTRBMiAyIDAgMDAxNi40MTQgNUwxNCAyLjU4NkEyIDIgMCAwMDEyLjU4NiAySDl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgOGEyIDIgMCAwMTItMnYxMGg4YTIgMiAwIDAxLTIgMkg1YTIgMiAwIDAxLTItMlY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlEb2N1bWVudFJlbW92ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTYgMmEyIDIgMCAwMC0yIDJ2MTJhMiAyIDAgMDAyIDJoOGEyIDIgMCAwMDItMlY3LjQxNEEyIDIgMCAwMDE1LjQxNCA2TDEyIDIuNTg2QTIgMiAwIDAwMTAuNTg2IDJINnptMSA4YTEgMSAwIDEwMCAyaDZhMSAxIDAgMTAwLTJIN3pcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaURvY3VtZW50UmVwb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNiAyYTIgMiAwIDAwLTIgMnYxMmEyIDIgMCAwMDIgMmg4YTIgMiAwIDAwMi0yVjcuNDE0QTIgMiAwIDAwMTUuNDE0IDZMMTIgMi41ODZBMiAyIDAgMDAxMC41ODYgMkg2em0yIDEwYTEgMSAwIDEwLTIgMHYzYTEgMSAwIDEwMiAwdi0zem0yLTNhMSAxIDAgMDExIDF2NWExIDEgMCAxMS0yIDB2LTVhMSAxIDAgMDExLTF6bTQtMWExIDEgMCAxMC0yIDB2N2ExIDEgMCAxMDIgMFY4elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRG9jdW1lbnRTZWFyY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNGEyIDIgMCAwMTItMmg0LjU4NkEyIDIgMCAwMTEyIDIuNTg2TDE1LjQxNCA2QTIgMiAwIDAxMTYgNy40MTRWMTZhMiAyIDAgMDEtMiAyaC0xLjUyOEE2IDYgMCAwMDQgOS41MjhWNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggMTBhNCA0IDAgMDAtMy40NDYgNi4wMzJsLTEuMjYxIDEuMjZhMSAxIDAgMTAxLjQxNCAxLjQxNWwxLjI2MS0xLjI2MUE0IDQgMCAxMDggMTB6bS0yIDRhMiAyIDAgMTE0IDAgMiAyIDAgMDEtNCAwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRG9jdW1lbnRUZXh0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNCA0YTIgMiAwIDAxMi0yaDQuNTg2QTIgMiAwIDAxMTIgMi41ODZMMTUuNDE0IDZBMiAyIDAgMDExNiA3LjQxNFYxNmEyIDIgMCAwMS0yIDJINmEyIDIgMCAwMS0yLTJWNHptMiA2YTEgMSAwIDAxMS0xaDZhMSAxIDAgMTEwIDJIN2ExIDEgMCAwMS0xLTF6bTEgM2ExIDEgMCAxMDAgMmg2YTEgMSAwIDEwMC0ySDd6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlEb2N1bWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQgNGEyIDIgMCAwMTItMmg0LjU4NkEyIDIgMCAwMTEyIDIuNTg2TDE1LjQxNCA2QTIgMiAwIDAxMTYgNy40MTRWMTZhMiAyIDAgMDEtMiAySDZhMiAyIDAgMDEtMi0yVjR6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlEb3RzQ2lyY2xlSG9yaXpvbnRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6TTcgOUg1djJoMlY5em04IDBoLTJ2MmgyVjl6TTkgOWgydjJIOVY5elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRG90c0hvcml6b250YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTBhMiAyIDAgMTEtNCAwIDIgMiAwIDAxNCAwek0xMiAxMGEyIDIgMCAxMS00IDAgMiAyIDAgMDE0IDB6TTE2IDEyYTIgMiAwIDEwMC00IDIgMiAwIDAwMCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlEb3RzVmVydGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDZhMiAyIDAgMTEwLTQgMiAyIDAgMDEwIDR6TTEwIDEyYTIgMiAwIDExMC00IDIgMiAwIDAxMCA0ek0xMCAxOGEyIDIgMCAxMTAtNCAyIDIgMCAwMTAgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRG93bmxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zIDE3YTEgMSAwIDAxMS0xaDEyYTEgMSAwIDExMCAySDRhMSAxIDAgMDEtMS0xem0zLjI5My03LjcwN2ExIDEgMCAwMTEuNDE0IDBMOSAxMC41ODZWM2ExIDEgMCAxMTIgMHY3LjU4NmwxLjI5My0xLjI5M2ExIDEgMCAxMTEuNDE0IDEuNDE0bC0zIDNhMSAxIDAgMDEtMS40MTQgMGwtMy0zYTEgMSAwIDAxMC0xLjQxNHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUR1cGxpY2F0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA5YTIgMiAwIDAxMi0yaDZhMiAyIDAgMDEyIDJ2NmEyIDIgMCAwMS0yIDJIOWEyIDIgMCAwMS0yLTJWOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAzYTIgMiAwIDAwLTIgMnY2YTIgMiAwIDAwMiAyVjVoOGEyIDIgMCAwMC0yLTJINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRW1vamlIYXBweSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6TTcgOWExIDEgMCAxMDAtMiAxIDEgMCAwMDAgMnptNy0xYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLS40NjQgNS41MzVhMSAxIDAgMTAtMS40MTUtMS40MTQgMyAzIDAgMDEtNC4yNDIgMCAxIDEgMCAwMC0xLjQxNSAxLjQxNCA1IDUgMCAwMDcuMDcyIDB6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlFbW9qaVNhZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6TTcgOWExIDEgMCAxMDAtMiAxIDEgMCAwMDAgMnptNy0xYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLTcuNTM2IDUuODc5YTEgMSAwIDAwMS40MTUgMCAzIDMgMCAwMTQuMjQyIDAgMSAxIDAgMDAxLjQxNS0xLjQxNSA1IDUgMCAwMC03LjA3MiAwIDEgMSAwIDAwMCAxLjQxNXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUV4Y2xhbWF0aW9uQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTggMTBhOCA4IDAgMTEtMTYgMCA4IDggMCAwMTE2IDB6bS03IDRhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwem0tMS05YTEgMSAwIDAwLTEgMXY0YTEgMSAwIDEwMiAwVjZhMSAxIDAgMDAtMS0xelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRXhjbGFtYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk04LjI1NyAzLjA5OWMuNzY1LTEuMzYgMi43MjItMS4zNiAzLjQ4NiAwbDUuNTggOS45MmMuNzUgMS4zMzQtLjIxMyAyLjk4LTEuNzQyIDIuOThINC40MmMtMS41MyAwLTIuNDkzLTEuNjQ2LTEuNzQzLTIuOThsNS41OC05Ljkyek0xMSAxM2ExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0xLThhMSAxIDAgMDAtMSAxdjNhMSAxIDAgMDAyIDBWNmExIDEgMCAwMC0xLTF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlFeHRlcm5hbExpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDNhMSAxIDAgMTAwIDJoMi41ODZsLTYuMjkzIDYuMjkzYTEgMSAwIDEwMS40MTQgMS40MTRMMTUgNi40MTRWOWExIDEgMCAxMDIgMFY0YTEgMSAwIDAwLTEtMWgtNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA1YTIgMiAwIDAwLTIgMnY4YTIgMiAwIDAwMiAyaDhhMiAyIDAgMDAyLTJ2LTNhMSAxIDAgMTAtMiAwdjNINVY3aDNhMSAxIDAgMDAwLTJINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRXllT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMy43MDcgMi4yOTNhMSAxIDAgMDAtMS40MTQgMS40MTRsMTQgMTRhMSAxIDAgMDAxLjQxNC0xLjQxNGwtMS40NzMtMS40NzNBMTAuMDE0IDEwLjAxNCAwIDAwMTkuNTQyIDEwQzE4LjI2OCA1Ljk0MyAxNC40NzggMyAxMCAzYTkuOTU4IDkuOTU4IDAgMDAtNC41MTIgMS4wNzRsLTEuNzgtMS43ODF6bTQuMjYxIDQuMjZsMS41MTQgMS41MTVhMi4wMDMgMi4wMDMgMCAwMTIuNDUgMi40NWwxLjUxNCAxLjUxNGE0IDQgMCAwMC01LjQ3OC01LjQ3OHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjQ1NCAxNi42OTdMOS43NSAxMy45OTJhNCA0IDAgMDEtMy43NDItMy43NDFMMi4zMzUgNi41NzhBOS45OCA5Ljk4IDAgMDAuNDU4IDEwYzEuMjc0IDQuMDU3IDUuMDY1IDcgOS41NDIgNyAuODQ3IDAgMS42NjktLjEwNSAyLjQ1NC0uMzAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlFeWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDEyYTIgMiAwIDEwMC00IDIgMiAwIDAwMCA0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNLjQ1OCAxMEMxLjczMiA1Ljk0MyA1LjUyMiAzIDEwIDNzOC4yNjggMi45NDMgOS41NDIgN2MtMS4yNzQgNC4wNTctNS4wNjQgNy05LjU0MiA3UzEuNzMyIDE0LjA1Ny40NTggMTB6TTE0IDEwYTQgNCAwIDExLTggMCA0IDQgMCAwMTggMHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUZhc3RGb3J3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjU1NSA1LjE2OEExIDEgMCAwMDMgNnY4YTEgMSAwIDAwMS41NTUuODMyTDEwIDExLjIwMlYxNGExIDEgMCAwMDEuNTU1LjgzMmw2LTRhMSAxIDAgMDAwLTEuNjY0bC02LTRBMSAxIDAgMDAxMCA2djIuNzk4bC01LjQ0NS0zLjYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlGaWxtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNCAzYTIgMiAwIDAwLTIgMnYxMGEyIDIgMCAwMDIgMmgxMmEyIDIgMCAwMDItMlY1YTIgMiAwIDAwLTItMkg0em0zIDJoNnY0SDdWNXptOCA4djJoMXYtMmgtMXptLTItMkg3djRoNnYtNHptMiAwaDFWOWgtMXYyem0xLTRWNWgtMXYyaDF6TTUgNXYySDRWNWgxem0wIDRINHYyaDFWOXptLTEgNGgxdjJINHYtMnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUZpbHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTMgM2ExIDEgMCAwMTEtMWgxMmExIDEgMCAwMTEgMXYzYTEgMSAwIDAxLS4yOTMuNzA3TDEyIDExLjQxNFYxNWExIDEgMCAwMS0uMjkzLjcwN2wtMiAyQTEgMSAwIDAxOCAxN3YtNS41ODZMMy4yOTMgNi43MDdBMSAxIDAgMDEzIDZWM3pcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUZpbmdlclByaW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNi42MjUgMi42NTVBOSA5IDAgMDExOSAxMWExIDEgMCAxMS0yIDAgNyA3IDAgMDAtOS42MjUtNi40OTIgMSAxIDAgMTEtLjc1LTEuODUzek00LjY2MiA0Ljk1OUExIDEgMCAwMTQuNzUgNi4zNyA2Ljk3IDYuOTcgMCAwMDMgMTFhMSAxIDAgMTEtMiAwIDguOTcgOC45NyAwIDAxMi4yNS01Ljk1MyAxIDEgMCAwMTEuNDEyLS4wODh6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNSAxMWE1IDUgMCAxMTEwIDAgMSAxIDAgMTEtMiAwIDMgMyAwIDEwLTYgMGMwIDEuNjc3LS4zNDUgMy4yNzYtLjk2OCA0LjcyOWExIDEgMCAxMS0xLjgzOC0uNzg5QTkuOTY0IDkuOTY0IDAgMDA1IDExem04LjkyMSAyLjAxMmExIDEgMCAwMS44MzEgMS4xNDUgMTkuODYgMTkuODYgMCAwMS0uNTQ1IDIuNDM2IDEgMSAwIDExLTEuOTItLjU1OGMuMjA3LS43MTMuMzcxLTEuNDQ1LjQ5LTIuMTkyYTEgMSAwIDAxMS4xNDQtLjgzelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDEwYTEgMSAwIDAxMSAxYzAgMi4yMzYtLjQ2IDQuMzY4LTEuMjkgNi4zMDRhMSAxIDAgMDEtMS44MzgtLjc4OUExMy45NTIgMTMuOTUyIDAgMDA5IDExYTEgMSAwIDAxMS0xelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRmlyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEyLjM5NSAyLjU1M2ExIDEgMCAwMC0xLjQ1LS4zODVjLS4zNDUuMjMtLjYxNC41NTgtLjgyMi44OC0uMjE0LjMzLS40MDMuNzEzLS41NyAxLjExNi0uMzM0LjgwNC0uNjE0IDEuNzY4LS44NCAyLjczNGEzMS4zNjUgMzEuMzY1IDAgMDAtLjYxMyAzLjU4IDIuNjQgMi42NCAwIDAxLS45NDUtMS4wNjdjLS4zMjgtLjY4LS4zOTgtMS41MzQtLjM5OC0yLjY1NEExIDEgMCAwMDUuMDUgNi4wNSA2Ljk4MSA2Ljk4MSAwIDAwMyAxMWE3IDcgMCAxMDExLjk1LTQuOTVjLS41OTItLjU5MS0uOTgtLjk4NS0xLjM0OC0xLjQ2Ny0uMzYzLS40NzYtLjcyNC0xLjA2My0xLjIwNy0yLjAzek0xMi4xMiAxNS4xMkEzIDMgMCAwMTcgMTNzLjg3OS41IDIuNS41YzAtMSAuNS00IDEuMjUtNC41LjUgMSAuNzg2IDEuMjkzIDEuMzcxIDEuODc5QTIuOTkgMi45OSAwIDAxMTMgMTNhMi45OSAyLjk5IDAgMDEtLjg3OSAyLjEyMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUZsYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zIDZhMyAzIDAgMDEzLTNoMTBhMSAxIDAgMDEuOCAxLjZMMTQuMjUgOGwyLjU1IDMuNEExIDEgMCAwMTE2IDEzSDZhMSAxIDAgMDAtMSAxdjNhMSAxIDAgMTEtMiAwVjZ6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlGb2xkZXJBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk00IDRhMiAyIDAgMDAtMiAydjhhMiAyIDAgMDAyIDJoMTJhMiAyIDAgMDAyLTJWOGEyIDIgMCAwMC0yLTJoLTVMOSA0SDR6bTcgNWExIDEgMCAxMC0yIDB2MUg4YTEgMSAwIDEwMCAyaDF2MWExIDEgMCAxMDIgMHYtMWgxYTEgMSAwIDEwMC0yaC0xVjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUZvbGRlckRvd25sb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNCA0YTIgMiAwIDAwLTIgMnY4YTIgMiAwIDAwMiAyaDEyYTIgMiAwIDAwMi0yVjhhMiAyIDAgMDAtMi0yaC01TDkgNEg0em03IDVhMSAxIDAgMTAtMiAwdjEuNTg2bC0uMjkzLS4yOTNhMSAxIDAgMTAtMS40MTQgMS40MTRsMiAyIC4wMDIuMDAyYS45OTcuOTk3IDAgMDAxLjQxIDBsLjAwMi0uMDAyIDItMmExIDEgMCAwMC0xLjQxNC0xLjQxNGwtLjI5My4yOTNWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRm9sZGVyT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIgNmEyIDIgMCAwMTItMmg0bDIgMmg0YTIgMiAwIDAxMiAydjFIOGEzIDMgMCAwMC0zIDN2MS41YTEuNSAxLjUgMCAwMS0zIDBWNnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTJhMiAyIDAgMDEyLTJoOGEyIDIgMCAwMTIgMnYyYTIgMiAwIDAxLTIgMkgyaDJhMiAyIDAgMDAyLTJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUZvbGRlclJlbW92ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQgNGEyIDIgMCAwMC0yIDJ2OGEyIDIgMCAwMDIgMmgxMmEyIDIgMCAwMDItMlY4YTIgMiAwIDAwLTItMmgtNUw5IDRINHptNCA2YTEgMSAwIDEwMCAyaDRhMSAxIDAgMTAwLTJIOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRm9sZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDZhMiAyIDAgMDEyLTJoNWwyIDJoNWEyIDIgMCAwMTIgMnY2YTIgMiAwIDAxLTIgMkg0YTIgMiAwIDAxLTItMlY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlHaWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNSA1YTMgMyAwIDAxNS0yLjIzNkEzIDMgMCAwMTE0LjgzIDZIMTZhMiAyIDAgMTEwIDRoLTVWOWExIDEgMCAxMC0yIDB2MUg0YTIgMiAwIDExMC00aDEuMTdDNS4wNiA1LjY4NyA1IDUuMzUgNSA1em00IDFWNWExIDEgMCAxMC0xIDFoMXptMyAwYTEgMSAwIDEwLTEtMXYxaDF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDExSDN2NWEyIDIgMCAwMDIgMmg0di03ek0xMSAxOGg0YTIgMiAwIDAwMi0ydi01aC02djd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUdsb2JlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNC4wODMgOWgxLjk0NmMuMDg5LTEuNTQ2LjM4My0yLjk3LjgzNy00LjExOEE2LjAwNCA2LjAwNCAwIDAwNC4wODMgOXpNMTAgMmE4IDggMCAxMDAgMTYgOCA4IDAgMDAwLTE2em0wIDJjLS4wNzYgMC0uMjMyLjAzMi0uNDY1LjI2Mi0uMjM4LjIzNC0uNDk3LjYyMy0uNzM3IDEuMTgyLS4zODkuOTA3LS42NzMgMi4xNDItLjc2NiAzLjU1NmgzLjkzNmMtLjA5My0xLjQxNC0uMzc3LTIuNjQ5LS43NjYtMy41NTYtLjI0LS41Ni0uNS0uOTQ4LS43MzctMS4xODJDMTAuMjMyIDQuMDMyIDEwLjA3NiA0IDEwIDR6bTMuOTcxIDVjLS4wODktMS41NDYtLjM4My0yLjk3LS44MzctNC4xMThBNi4wMDQgNi4wMDQgMCAwMTE1LjkxNyA5aC0xLjk0NnptLTIuMDAzIDJIOC4wMzJjLjA5MyAxLjQxNC4zNzcgMi42NDkuNzY2IDMuNTU2LjI0LjU2LjUuOTQ4LjczNyAxLjE4Mi4yMzMuMjMuMzg5LjI2Mi40NjUuMjYyLjA3NiAwIC4yMzItLjAzMi40NjUtLjI2Mi4yMzgtLjIzNC40OTgtLjYyMy43MzctMS4xODIuMzg5LS45MDcuNjczLTIuMTQyLjc2Ni0zLjU1NnptMS4xNjYgNC4xMThjLjQ1NC0xLjE0Ny43NDgtMi41NzIuODM3LTQuMTE4aDEuOTQ2YTYuMDA0IDYuMDA0IDAgMDEtMi43ODMgNC4xMTh6bS02LjI2OCAwQzYuNDEyIDEzLjk3IDYuMTE4IDEyLjU0NiA2LjAzIDExSDQuMDgzYTYuMDA0IDYuMDA0IDAgMDAyLjc4MyA0LjExOHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUdsb2JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnpNNC4zMzIgOC4wMjdhNi4wMTIgNi4wMTIgMCAwMTEuOTEyLTIuNzA2QzYuNTEyIDUuNzMgNi45NzQgNiA3LjUgNkExLjUgMS41IDAgMDE5IDcuNVY4YTIgMiAwIDAwNCAwIDIgMiAwIDAxMS41MjMtMS45NDNBNS45NzcgNS45NzcgMCAwMTE2IDEwYzAgLjM0LS4wMjguNjc1LS4wODMgMUgxNWEyIDIgMCAwMC0yIDJ2Mi4xOTdBNS45NzMgNS45NzMgMCAwMTEwIDE2di0yYTIgMiAwIDAwLTItMiAyIDIgMCAwMS0yLTIgMiAyIDAgMDAtMS42NjgtMS45NzN6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlIYW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOSAzYTEgMSAwIDAxMiAwdjUuNWEuNS41IDAgMDAxIDBWNGExIDEgMCAxMTIgMHY0LjVhLjUuNSAwIDAwMSAwVjZhMSAxIDAgMTEyIDB2NWE3IDcgMCAxMS0xNCAwVjlhMSAxIDAgMDEyIDB2Mi41YS41LjUgMCAwMDEgMFY0YTEgMSAwIDAxMiAwdjQuNWEuNS41IDAgMDAxIDBWM3pcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUhhc2h0YWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk05LjI0MyAzLjAzYTEgMSAwIDAxLjcyNyAxLjIxM0w5LjUzIDZoMi45NGwuNTYtMi4yNDNhMSAxIDAgMTExLjk0LjQ4NkwxNC41MyA2SDE3YTEgMSAwIDExMCAyaC0yLjk3bC0xIDRIMTVhMSAxIDAgMTEwIDJoLTIuNDdsLS41NiAyLjI0MmExIDEgMCAxMS0xLjk0LS40ODVMMTAuNDcgMTRINy41M2wtLjU2IDIuMjQyYTEgMSAwIDExLTEuOTQtLjQ4NUw1LjQ3IDE0SDNhMSAxIDAgMTEwLTJoMi45N2wxLTRINWExIDEgMCAxMTAtMmgyLjQ3bC41Ni0yLjI0M2ExIDEgMCAwMTEuMjEzLS43Mjd6TTkuMDMgOGwtMSA0aDIuOTM4bDEtNEg5LjAzMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUhlYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMy4xNzIgNS4xNzJhNCA0IDAgMDE1LjY1NiAwTDEwIDYuMzQzbDEuMTcyLTEuMTcxYTQgNCAwIDExNS42NTYgNS42NTZMMTAgMTcuNjU3bC02LjgyOC02LjgyOWE0IDQgMCAwMTAtNS42NTZ6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlIb21lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC43MDcgMi4yOTNhMSAxIDAgMDAtMS40MTQgMGwtNyA3YTEgMSAwIDAwMS40MTQgMS40MTRMNCAxMC40MTRWMTdhMSAxIDAgMDAxIDFoMmExIDEgMCAwMDEtMXYtMmExIDEgMCAwMTEtMWgyYTEgMSAwIDAxMSAxdjJhMSAxIDAgMDAxIDFoMmExIDEgMCAwMDEtMXYtNi41ODZsLjI5My4yOTNhMSAxIDAgMDAxLjQxNC0xLjQxNGwtNy03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlJZGVudGlmaWNhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDJhMSAxIDAgMDAtMSAxdjFhMSAxIDAgMDAyIDBWM2ExIDEgMCAwMC0xLTF6TTQgNGgzYTMgMyAwIDAwNiAwaDNhMiAyIDAgMDEyIDJ2OWEyIDIgMCAwMS0yIDJINGEyIDIgMCAwMS0yLTJWNmEyIDIgMCAwMTItMnptMi41IDdhMS41IDEuNSAwIDEwMC0zIDEuNSAxLjUgMCAwMDAgM3ptMi40NSA0YTIuNSAyLjUgMCAxMC00LjkgMGg0Ljl6TTEyIDlhMSAxIDAgMTAwIDJoM2ExIDEgMCAxMDAtMmgtM3ptLTEgNGExIDEgMCAwMTEtMWgyYTEgMSAwIDExMCAyaC0yYTEgMSAwIDAxLTEtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUluYm94SW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNzA3IDcuMjkzYTEgMSAwIDAwLTEuNDE0IDEuNDE0bDIgMmExIDEgMCAwMDEuNDE0IDBsMi0yYTEgMSAwIDAwLTEuNDE0LTEuNDE0TDExIDcuNTg2VjNhMSAxIDAgMTAtMiAwdjQuNTg2bC0uMjkzLS4yOTN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNWEyIDIgMCAwMTItMmgxYTEgMSAwIDAxMCAySDV2N2gybDEgMmg0bDEtMmgyVjVoLTFhMSAxIDAgMTEwLTJoMWEyIDIgMCAwMTIgMnYxMGEyIDIgMCAwMS0yIDJINWEyIDIgMCAwMS0yLTJWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpSW5ib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk01IDNhMiAyIDAgMDAtMiAydjEwYTIgMiAwIDAwMiAyaDEwYTIgMiAwIDAwMi0yVjVhMiAyIDAgMDAtMi0ySDV6bTAgMmgxMHY3aC0ybC0xIDJIOGwtMS0ySDVWNXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUluZm9ybWF0aW9uQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTggMTBhOCA4IDAgMTEtMTYgMCA4IDggMCAwMTE2IDB6bS03LTRhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwek05IDlhMSAxIDAgMDAwIDJ2M2ExIDEgMCAwMDEgMWgxYTEgMSAwIDEwMC0ydi0zYTEgMSAwIDAwLTEtMUg5elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpS2V5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTggOGE2IDYgMCAwMS03Ljc0MyA1Ljc0M0wxMCAxNGwtMSAxLTEgMUg2djJIMnYtNGw0LjI1Ny00LjI1N0E2IDYgMCAxMTE4IDh6bS02LTRhMSAxIDAgMTAwIDIgMiAyIDAgMDEyIDIgMSAxIDAgMTAyIDAgNCA0IDAgMDAtNC00elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpTGlicmFyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwLjQ5NiAyLjEzMmExIDEgMCAwMC0uOTkyIDBsLTcgNEExIDEgMCAwMDMgOHY3YTEgMSAwIDEwMCAyaDE0YTEgMSAwIDEwMC0yVjhhMSAxIDAgMDAuNDk2LTEuODY4bC03LTR6TTYgOWExIDEgMCAwMC0xIDF2M2ExIDEgMCAxMDIgMHYtM2ExIDEgMCAwMC0xLTF6bTMgMWExIDEgMCAwMTIgMHYzYTEgMSAwIDExLTIgMHYtM3ptNS0xYTEgMSAwIDAwLTEgMXYzYTEgMSAwIDEwMiAwdi0zYTEgMSAwIDAwLTEtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUxpZ2h0QnVsYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgM2ExIDEgMCAxMC0yIDB2MWExIDEgMCAxMDIgMFYzek0xNS42NTcgNS43NTdhMSAxIDAgMDAtMS40MTQtMS40MTRsLS43MDcuNzA3YTEgMSAwIDAwMS40MTQgMS40MTRsLjcwNy0uNzA3ek0xOCAxMGExIDEgMCAwMS0xIDFoLTFhMSAxIDAgMTEwLTJoMWExIDEgMCAwMTEgMXpNNS4wNSA2LjQ2NEExIDEgMCAxMDYuNDY0IDUuMDVsLS43MDctLjcwN2ExIDEgMCAwMC0xLjQxNCAxLjQxNGwuNzA3LjcwN3pNNSAxMGExIDEgMCAwMS0xIDFIM2ExIDEgMCAxMTAtMmgxYTEgMSAwIDAxMSAxek04IDE2di0xaDR2MWEyIDIgMCAxMS00IDB6TTEyIDE0Yy4wMTUtLjM0LjIwOC0uNjQ2LjQ3Ny0uODU5YTQgNCAwIDEwLTQuOTU0IDBjLjI3LjIxMy40NjIuNTE5LjQ3Ni44NTloNC4wMDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUxpZ2h0bmluZ0JvbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMS4zIDEuMDQ2QTEgMSAwIDAxMTIgMnY1aDRhMSAxIDAgMDEuODIgMS41NzNsLTcgMTBBMSAxIDAgMDE4IDE4di01SDRhMSAxIDAgMDEtLjgyLTEuNTczbDctMTBhMSAxIDAgMDExLjEyLS4zOHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUxpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMi41ODYgNC41ODZhMiAyIDAgMTEyLjgyOCAyLjgyOGwtMyAzYTIgMiAwIDAxLTIuODI4IDAgMSAxIDAgMDAtMS40MTQgMS40MTQgNCA0IDAgMDA1LjY1NiAwbDMtM2E0IDQgMCAwMC01LjY1Ni01LjY1NmwtMS41IDEuNWExIDEgMCAxMDEuNDE0IDEuNDE0bDEuNS0xLjV6bS01IDVhMiAyIDAgMDEyLjgyOCAwIDEgMSAwIDEwMS40MTQtMS40MTQgNCA0IDAgMDAtNS42NTYgMGwtMyAzYTQgNCAwIDEwNS42NTYgNS42NTZsMS41LTEuNWExIDEgMCAxMC0xLjQxNC0xLjQxNGwtMS41IDEuNWEyIDIgMCAxMS0yLjgyOC0yLjgyOGwzLTN6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlMb2NhdGlvbk1hcmtlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUuMDUgNC4wNWE3IDcgMCAxMTkuOSA5LjlMMTAgMTguOWwtNC45NS00Ljk1YTcgNyAwIDAxMC05Ljl6TTEwIDExYTIgMiAwIDEwMC00IDIgMiAwIDAwMCA0elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpTG9ja0Nsb3NlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUgOVY3YTUgNSAwIDAxMTAgMHYyYTIgMiAwIDAxMiAydjVhMiAyIDAgMDEtMiAySDVhMiAyIDAgMDEtMi0ydi01YTIgMiAwIDAxMi0yem04LTJ2Mkg3VjdhMyAzIDAgMDE2IDB6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlMb2NrT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMmE1IDUgMCAwMC01IDV2MmEyIDIgMCAwMC0yIDJ2NWEyIDIgMCAwMDIgMmgxMGEyIDIgMCAwMDItMnYtNWEyIDIgMCAwMC0yLTJIN1Y3YTMgMyAwIDAxNS45MDUtLjc1IDEgMSAwIDAwMS45MzctLjVBNS4wMDIgNS4wMDIgMCAwMDEwIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUxvZ2luIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMyAzYTEgMSAwIDAxMSAxdjEyYTEgMSAwIDExLTIgMFY0YTEgMSAwIDAxMS0xem03LjcwNyAzLjI5M2ExIDEgMCAwMTAgMS40MTRMOS40MTQgOUgxN2ExIDEgMCAxMTAgMkg5LjQxNGwxLjI5MyAxLjI5M2ExIDEgMCAwMS0xLjQxNCAxLjQxNGwtMy0zYTEgMSAwIDAxMC0xLjQxNGwzLTNhMSAxIDAgMDExLjQxNCAwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpTG9nb3V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMyAzYTEgMSAwIDAwLTEgMXYxMmExIDEgMCAxMDIgMFY0YTEgMSAwIDAwLTEtMXptMTAuMjkzIDkuMjkzYTEgMSAwIDAwMS40MTQgMS40MTRsMy0zYTEgMSAwIDAwMC0xLjQxNGwtMy0zYTEgMSAwIDEwLTEuNDE0IDEuNDE0TDE0LjU4NiA5SDdhMSAxIDAgMTAwIDJoNy41ODZsLTEuMjkzIDEuMjkzelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpTWFpbE9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0yLjk0IDYuNDEyQTIgMiAwIDAwMiA4LjEwOFYxNmEyIDIgMCAwMDIgMmgxMmEyIDIgMCAwMDItMlY4LjEwOGEyIDIgMCAwMC0uOTQtMS42OTZsLTYtMy43NWEyIDIgMCAwMC0yLjEyIDBsLTYgMy43NXptMi42MTUgMi40MjNhMSAxIDAgMTAtMS4xMSAxLjY2NGw1IDMuMzMzYTEgMSAwIDAwMS4xMSAwbDUtMy4zMzNhMSAxIDAgMDAtMS4xMS0xLjY2NEwxMCAxMS43OTggNS41NTUgOC44MzV6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlNYWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjAwMyA1Ljg4NEwxMCA5Ljg4Mmw3Ljk5Ny0zLjk5OEEyIDIgMCAwMDE2IDRINGEyIDIgMCAwMC0xLjk5NyAxLjg4NHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggOC4xMThsLTggNC04LTRWMTRhMiAyIDAgMDAyIDJoMTJhMiAyIDAgMDAyLTJWOC4xMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU1hcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEyIDEuNTg2bC00IDR2MTIuODI4bDQtNFYxLjU4NnpNMy43MDcgMy4yOTNBMSAxIDAgMDAyIDR2MTBhMSAxIDAgMDAuMjkzLjcwN0w2IDE4LjQxNFY1LjU4NkwzLjcwNyAzLjI5M3pNMTcuNzA3IDUuMjkzTDE0IDEuNTg2djEyLjgyOGwyLjI5MyAyLjI5M0ExIDEgMCAwMDE4IDE2VjZhMSAxIDAgMDAtLjI5My0uNzA3elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpTWVudUFsdDEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zIDVhMSAxIDAgMDExLTFoMTJhMSAxIDAgMTEwIDJINGExIDEgMCAwMS0xLTF6TTMgMTBhMSAxIDAgMDExLTFoNmExIDEgMCAxMTAgMkg0YTEgMSAwIDAxLTEtMXpNMyAxNWExIDEgMCAwMTEtMWgxMmExIDEgMCAxMTAgMkg0YTEgMSAwIDAxLTEtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU1lbnVBbHQyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMyA1YTEgMSAwIDAxMS0xaDEyYTEgMSAwIDExMCAySDRhMSAxIDAgMDEtMS0xek0zIDEwYTEgMSAwIDAxMS0xaDEyYTEgMSAwIDExMCAySDRhMSAxIDAgMDEtMS0xek0zIDE1YTEgMSAwIDAxMS0xaDZhMSAxIDAgMTEwIDJINGExIDEgMCAwMS0xLTF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlNZW51QWx0MyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTMgNWExIDEgMCAwMTEtMWgxMmExIDEgMCAxMTAgMkg0YTEgMSAwIDAxLTEtMXpNMyAxMGExIDEgMCAwMTEtMWgxMmExIDEgMCAxMTAgMkg0YTEgMSAwIDAxLTEtMXpNOSAxNWExIDEgMCAwMTEtMWg2YTEgMSAwIDExMCAyaC02YTEgMSAwIDAxLTEtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU1lbnVBbHQ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMyA3YTEgMSAwIDAxMS0xaDEyYTEgMSAwIDExMCAySDRhMSAxIDAgMDEtMS0xek0zIDEzYTEgMSAwIDAxMS0xaDEyYTEgMSAwIDExMCAySDRhMSAxIDAgMDEtMS0xelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpTWVudSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTMgNWExIDEgMCAwMTEtMWgxMmExIDEgMCAxMTAgMkg0YTEgMSAwIDAxLTEtMXpNMyAxMGExIDEgMCAwMTEtMWgxMmExIDEgMCAxMTAgMkg0YTEgMSAwIDAxLTEtMXpNMyAxNWExIDEgMCAwMTEtMWgxMmExIDEgMCAxMTAgMkg0YTEgMSAwIDAxLTEtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU1pY3JvcGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk03IDRhMyAzIDAgMDE2IDB2NGEzIDMgMCAxMS02IDBWNHptNCAxMC45M0E3LjAwMSA3LjAwMSAwIDAwMTcgOGExIDEgMCAxMC0yIDBBNSA1IDAgMDE1IDhhMSAxIDAgMDAtMiAwIDcuMDAxIDcuMDAxIDAgMDA2IDYuOTNWMTdINmExIDEgMCAxMDAgMmg4YTEgMSAwIDEwMC0yaC0zdi0yLjA3elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpTWludXNDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2ek03IDlhMSAxIDAgMDAwIDJoNmExIDEgMCAxMDAtMkg3elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpTWludXNTbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUgMTBhMSAxIDAgMDExLTFoOGExIDEgMCAxMTAgMkg2YTEgMSAwIDAxLTEtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMyAxMGExIDEgMCAwMTEtMWgxMmExIDEgMCAxMTAgMkg0YTEgMSAwIDAxLTEtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU1vb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjI5MyAxMy4yOTNBOCA4IDAgMDE2LjcwNyAyLjcwN2E4LjAwMSA4LjAwMSAwIDEwMTAuNTg2IDEwLjU4NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpTXVzaWNOb3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAzYTEgMSAwIDAwLTEuMTk2LS45OGwtMTAgMkExIDEgMCAwMDYgNXY5LjExNEE0LjM2OSA0LjM2OSAwIDAwNSAxNGMtMS42NTcgMC0zIC44OTUtMyAyczEuMzQzIDIgMyAyIDMtLjg5NSAzLTJWNy44Mmw4LTEuNnY1Ljg5NEE0LjM3IDQuMzcgMCAwMDE1IDEyYy0xLjY1NyAwLTMgLjg5NS0zIDJzMS4zNDMgMiAzIDIgMy0uODk1IDMtMlYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlOZXdzcGFwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0yIDVhMiAyIDAgMDEyLTJoOGEyIDIgMCAwMTIgMnYxMGEyIDIgMCAwMDIgMkg0YTIgMiAwIDAxLTItMlY1em0zIDFoNnY0SDVWNnptNiA2SDV2Mmg2di0yelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgN2gxYTIgMiAwIDAxMiAydjUuNWExLjUgMS41IDAgMDEtMyAwVjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU9mZmljZUJ1aWxkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNCA0YTIgMiAwIDAxMi0yaDhhMiAyIDAgMDEyIDJ2MTJhMSAxIDAgMTEwIDJoLTNhMSAxIDAgMDEtMS0xdi0yYTEgMSAwIDAwLTEtMUg5YTEgMSAwIDAwLTEgMXYyYTEgMSAwIDAxLTEgMUg0YTEgMSAwIDExMC0yVjR6bTMgMWgydjJIN1Y1em0yIDRIN3YyaDJWOXptMi00aDJ2MmgtMlY1em0yIDRoLTJ2MmgyVjl6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlQYXBlckFpcnBsYW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC44OTQgMi41NTNhMSAxIDAgMDAtMS43ODggMGwtNyAxNGExIDEgMCAwMDEuMTY5IDEuNDA5bDUtMS40MjlBMSAxIDAgMDA5IDE1LjU3MVYxMWExIDEgMCAxMTIgMHY0LjU3MWExIDEgMCAwMC43MjUuOTYybDUgMS40MjhhMSAxIDAgMDAxLjE3LTEuNDA4bC03LTE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlQYXBlckNsaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk04IDRhMyAzIDAgMDAtMyAzdjRhNSA1IDAgMDAxMCAwVjdhMSAxIDAgMTEyIDB2NGE3IDcgMCAxMS0xNCAwVjdhNSA1IDAgMDExMCAwdjRhMyAzIDAgMTEtNiAwVjdhMSAxIDAgMDEyIDB2NGExIDEgMCAxMDIgMFY3YTMgMyAwIDAwLTMtM3pcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVBhdXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTggMTBhOCA4IDAgMTEtMTYgMCA4IDggMCAwMTE2IDB6TTcgOGExIDEgMCAwMTIgMHY0YTEgMSAwIDExLTIgMFY4em01LTFhMSAxIDAgMDAtMSAxdjRhMSAxIDAgMTAyIDBWOGExIDEgMCAwMC0xLTF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlQZW5jaWxBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjQxNCAyLjU4NmEyIDIgMCAwMC0yLjgyOCAwTDcgMTAuMTcyVjEzaDIuODI4bDcuNTg2LTcuNTg2YTIgMiAwIDAwMC0yLjgyOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIgNmEyIDIgMCAwMTItMmg0YTEgMSAwIDAxMCAySDR2MTBoMTB2LTRhMSAxIDAgMTEyIDB2NGEyIDIgMCAwMS0yIDJINGEyIDIgMCAwMS0yLTJWNnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVBlbmNpbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNTg2IDMuNTg2YTIgMiAwIDExMi44MjggMi44MjhsLS43OTMuNzkzLTIuODI4LTIuODI4Ljc5My0uNzkzek0xMS4zNzkgNS43OTNMMyAxNC4xNzJWMTdoMi44MjhsOC4zOC04LjM3OS0yLjgzLTIuODI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlQaG9uZUluY29taW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC40MTQgN2wzLjI5My0zLjI5M2ExIDEgMCAwMC0xLjQxNC0xLjQxNEwxMyA1LjU4NlY0YTEgMSAwIDEwLTIgMHY0LjAwM2EuOTk2Ljk5NiAwIDAwLjYxNy45MjFBLjk5Ny45OTcgMCAwMDEyIDloNGExIDEgMCAxMDAtMmgtMS41ODZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgM2ExIDEgMCAwMTEtMWgyLjE1M2ExIDEgMCAwMS45ODYuODM2bC43NCA0LjQzNWExIDEgMCAwMS0uNTQgMS4wNmwtMS41NDguNzczYTExLjAzNyAxMS4wMzcgMCAwMDYuMTA1IDYuMTA1bC43NzQtMS41NDhhMSAxIDAgMDExLjA1OS0uNTRsNC40MzUuNzRhMSAxIDAgMDEuODM2Ljk4NlYxN2ExIDEgMCAwMS0xIDFoLTJDNy44MiAxOCAyIDEyLjE4IDIgNVYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlQaG9uZU1pc3NlZENhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgM2ExIDEgMCAwMTEtMWgyLjE1M2ExIDEgMCAwMS45ODYuODM2bC43NCA0LjQzNWExIDEgMCAwMS0uNTQgMS4wNmwtMS41NDguNzczYTExLjAzNyAxMS4wMzcgMCAwMDYuMTA1IDYuMTA1bC43NzQtMS41NDhhMSAxIDAgMDExLjA1OS0uNTRsNC40MzUuNzRhMSAxIDAgMDEuODM2Ljk4NlYxN2ExIDEgMCAwMS0xIDFoLTJDNy44MiAxOCAyIDEyLjE4IDIgNVYzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi43MDcgMy4yOTNhMSAxIDAgMDEwIDEuNDE0TDE1LjQxNCA2bDEuMjkzIDEuMjkzYTEgMSAwIDAxLTEuNDE0IDEuNDE0TDE0IDcuNDE0bC0xLjI5MyAxLjI5M2ExIDEgMCAxMS0xLjQxNC0xLjQxNEwxMi41ODYgNmwtMS4yOTMtMS4yOTNhMSAxIDAgMDExLjQxNC0xLjQxNEwxNCA0LjU4NmwxLjI5My0xLjI5M2ExIDEgMCAwMTEuNDE0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVBob25lT3V0Z29pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjkyNCAyLjYxN2EuOTk3Ljk5NyAwIDAwLS4yMTUtLjMyMmwtLjAwNC0uMDA0QS45OTcuOTk3IDAgMDAxNyAyaC00YTEgMSAwIDEwMCAyaDEuNTg2bC0zLjI5MyAzLjI5M2ExIDEgMCAwMDEuNDE0IDEuNDE0TDE2IDUuNDE0VjdhMSAxIDAgMTAyIDBWM2EuOTk3Ljk5NyAwIDAwLS4wNzYtLjM4M3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAzYTEgMSAwIDAxMS0xaDIuMTUzYTEgMSAwIDAxLjk4Ni44MzZsLjc0IDQuNDM1YTEgMSAwIDAxLS41NCAxLjA2bC0xLjU0OC43NzNhMTEuMDM3IDExLjAzNyAwIDAwNi4xMDUgNi4xMDVsLjc3NC0xLjU0OGExIDEgMCAwMTEuMDU5LS41NGw0LjQzNS43NGExIDEgMCAwMS44MzYuOTg2VjE3YTEgMSAwIDAxLTEgMWgtMkM3LjgyIDE4IDIgMTIuMTggMiA1VjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVBob25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDNhMSAxIDAgMDExLTFoMi4xNTNhMSAxIDAgMDEuOTg2LjgzNmwuNzQgNC40MzVhMSAxIDAgMDEtLjU0IDEuMDZsLTEuNTQ4Ljc3M2ExMS4wMzcgMTEuMDM3IDAgMDA2LjEwNSA2LjEwNWwuNzc0LTEuNTQ4YTEgMSAwIDAxMS4wNTktLjU0bDQuNDM1Ljc0YTEgMSAwIDAxLjgzNi45ODZWMTdhMSAxIDAgMDEtMSAxaC0yQzcuODIgMTggMiAxMi4xOCAyIDVWM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpUGhvdG9ncmFwaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQgM2EyIDIgMCAwMC0yIDJ2MTBhMiAyIDAgMDAyIDJoMTJhMiAyIDAgMDAyLTJWNWEyIDIgMCAwMC0yLTJINHptMTIgMTJINGw0LTggMyA2IDItNCAzIDZ6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlQbGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnpNOS41NTUgNy4xNjhBMSAxIDAgMDA4IDh2NGExIDEgMCAwMDEuNTU1LjgzMmwzLTJhMSAxIDAgMDAwLTEuNjY0bC0zLTJ6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlQbHVzQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnptMS0xMWExIDEgMCAxMC0yIDB2Mkg3YTEgMSAwIDEwMCAyaDJ2MmExIDEgMCAxMDIgMHYtMmgyYTEgMSAwIDEwMC0yaC0yVjd6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlQbHVzU20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCA1YTEgMSAwIDAxMSAxdjNoM2ExIDEgMCAxMTAgMmgtM3YzYTEgMSAwIDExLTIgMHYtM0g2YTEgMSAwIDExMC0yaDNWNmExIDEgMCAwMTEtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAzYTEgMSAwIDAxMSAxdjVoNWExIDEgMCAxMTAgMmgtNXY1YTEgMSAwIDExLTIgMHYtNUg0YTEgMSAwIDExMC0yaDVWNGExIDEgMCAwMTEtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVByZXNlbnRhdGlvbkNoYXJ0QmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMyAzYTEgMSAwIDAwMCAydjhhMiAyIDAgMDAyIDJoMi41ODZsLTEuMjkzIDEuMjkzYTEgMSAwIDEwMS40MTQgMS40MTRMMTAgMTUuNDE0bDIuMjkzIDIuMjkzYTEgMSAwIDAwMS40MTQtMS40MTRMMTIuNDE0IDE1SDE1YTIgMiAwIDAwMi0yVjVhMSAxIDAgMTAwLTJIM3ptMTEgNGExIDEgMCAxMC0yIDB2NGExIDEgMCAxMDIgMFY3em0tMyAxYTEgMSAwIDEwLTIgMHYzYTEgMSAwIDEwMiAwVjh6TTggOWExIDEgMCAwMC0yIDB2MmExIDEgMCAxMDIgMFY5elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpUHJlc2VudGF0aW9uQ2hhcnRMaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMyAzYTEgMSAwIDAwMCAydjhhMiAyIDAgMDAyIDJoMi41ODZsLTEuMjkzIDEuMjkzYTEgMSAwIDEwMS40MTQgMS40MTRMMTAgMTUuNDE0bDIuMjkzIDIuMjkzYTEgMSAwIDAwMS40MTQtMS40MTRMMTIuNDE0IDE1SDE1YTIgMiAwIDAwMi0yVjVhMSAxIDAgMTAwLTJIM3ptMTEuNzA3IDQuNzA3YTEgMSAwIDAwLTEuNDE0LTEuNDE0TDEwIDkuNTg2IDguNzA3IDguMjkzYTEgMSAwIDAwLTEuNDE0IDBsLTIgMmExIDEgMCAxMDEuNDE0IDEuNDE0TDggMTAuNDE0bDEuMjkzIDEuMjkzYTEgMSAwIDAwMS40MTQgMGw0LTR6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlQcmludGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNSA0djNINGEyIDIgMCAwMC0yIDJ2M2EyIDIgMCAwMDIgMmgxdjJhMiAyIDAgMDAyIDJoNmEyIDIgMCAwMDItMnYtMmgxYTIgMiAwIDAwMi0yVjlhMiAyIDAgMDAtMi0yaC0xVjRhMiAyIDAgMDAtMi0ySDdhMiAyIDAgMDAtMiAyem04IDBIN3YzaDZWNHptMCA4SDd2NGg2di00elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpUHV6emxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAzLjVhMS41IDEuNSAwIDAxMyAwVjRhMSAxIDAgMDAxIDFoM2ExIDEgMCAwMTEgMXYzYTEgMSAwIDAxLTEgMWgtLjVhMS41IDEuNSAwIDAwMCAzaC41YTEgMSAwIDAxMSAxdjNhMSAxIDAgMDEtMSAxaC0zYTEgMSAwIDAxLTEtMXYtLjVhMS41IDEuNSAwIDAwLTMgMHYuNWExIDEgMCAwMS0xIDFINmExIDEgMCAwMS0xLTF2LTNhMSAxIDAgMDAtMS0xaC0uNWExLjUgMS41IDAgMDEwLTNINGExIDEgMCAwMDEtMVY2YTEgMSAwIDAxMS0xaDNhMSAxIDAgMDAxLTF2LS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlRcmNvZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zIDRhMSAxIDAgMDExLTFoM2ExIDEgMCAwMTEgMXYzYTEgMSAwIDAxLTEgMUg0YTEgMSAwIDAxLTEtMVY0em0yIDJWNWgxdjFINXpNMyAxM2ExIDEgMCAwMTEtMWgzYTEgMSAwIDAxMSAxdjNhMSAxIDAgMDEtMSAxSDRhMSAxIDAgMDEtMS0xdi0zem0yIDJ2LTFoMXYxSDV6TTEzIDNhMSAxIDAgMDAtMSAxdjNhMSAxIDAgMDAxIDFoM2ExIDEgMCAwMDEtMVY0YTEgMSAwIDAwLTEtMWgtM3ptMSAydjFoMVY1aC0xelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNGExIDEgMCAxMC0yIDB2MWExIDEgMCAwMDIgMFY0ek0xMCA3YTEgMSAwIDAxMSAxdjFoMmExIDEgMCAxMTAgMmgtM2ExIDEgMCAwMS0xLTFWOGExIDEgMCAwMTEtMXpNMTYgOWExIDEgMCAxMDAgMiAxIDEgMCAwMDAtMnpNOSAxM2ExIDEgMCAwMTEtMWgxYTEgMSAwIDExMCAydjJhMSAxIDAgMTEtMiAwdi0zek03IDExYTEgMSAwIDEwMC0ySDRhMSAxIDAgMTAwIDJoM3pNMTcgMTNhMSAxIDAgMDEtMSAxaC0yYTEgMSAwIDExMC0yaDJhMSAxIDAgMDExIDF6TTE2IDE3YTEgMSAwIDEwMC0yaC0zYTEgMSAwIDEwMCAyaDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVF1ZXN0aW9uTWFya0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE4IDEwYTggOCAwIDExLTE2IDAgOCA4IDAgMDExNiAwem0tOC0zYTEgMSAwIDAwLS44NjcuNSAxIDEgMCAxMS0xLjczMS0xQTMgMyAwIDAxMTMgOGEzLjAwMSAzLjAwMSAwIDAxLTIgMi44M1YxMWExIDEgMCAxMS0yIDB2LTFhMSAxIDAgMDExLTEgMSAxIDAgMTAwLTJ6bTAgOGExIDEgMCAxMDAtMiAxIDEgMCAwMDAgMnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVJlY2VpcHRSZWZ1bmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk01IDJhMiAyIDAgMDAtMiAydjE0bDMuNS0yIDMuNSAyIDMuNS0yIDMuNSAyVjRhMiAyIDAgMDAtMi0ySDV6bTQuNzA3IDMuNzA3YTEgMSAwIDAwLTEuNDE0LTEuNDE0bC0zIDNhMSAxIDAgMDAwIDEuNDE0bDMgM2ExIDEgMCAwMDEuNDE0LTEuNDE0TDguNDE0IDlIMTBhMyAzIDAgMDEzIDN2MWExIDEgMCAxMDIgMHYtMWE1IDUgMCAwMC01LTVIOC40MTRsMS4yOTMtMS4yOTN6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlSZWNlaXB0VGF4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNSAyYTIgMiAwIDAwLTIgMnYxNGwzLjUtMiAzLjUgMiAzLjUtMiAzLjUgMlY0YTIgMiAwIDAwLTItMkg1em0yLjUgM2ExLjUgMS41IDAgMTAwIDMgMS41IDEuNSAwIDAwMC0zem02LjIwNy4yOTNhMSAxIDAgMDAtMS40MTQgMGwtNiA2YTEgMSAwIDEwMS40MTQgMS40MTRsNi02YTEgMSAwIDAwMC0xLjQxNHpNMTIuNSAxMGExLjUgMS41IDAgMTAwIDMgMS41IDEuNSAwIDAwMC0zelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpUmVmcmVzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQgMmExIDEgMCAwMTEgMXYyLjEwMWE3LjAwMiA3LjAwMiAwIDAxMTEuNjAxIDIuNTY2IDEgMSAwIDExLTEuODg1LjY2NkE1LjAwMiA1LjAwMiAwIDAwNS45OTkgN0g5YTEgMSAwIDAxMCAySDRhMSAxIDAgMDEtMS0xVjNhMSAxIDAgMDExLTF6bS4wMDggOS4wNTdhMSAxIDAgMDExLjI3Ni42MUE1LjAwMiA1LjAwMiAwIDAwMTQuMDAxIDEzSDExYTEgMSAwIDExMC0yaDVhMSAxIDAgMDExIDF2NWExIDEgMCAxMS0yIDB2LTIuMTAxYTcuMDAyIDcuMDAyIDAgMDEtMTEuNjAxLTIuNTY2IDEgMSAwIDAxLjYxLTEuMjc2elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpUmVwbHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk03LjcwNyAzLjI5M2ExIDEgMCAwMTAgMS40MTRMNS40MTQgN0gxMWE3IDcgMCAwMTcgN3YyYTEgMSAwIDExLTIgMHYtMmE1IDUgMCAwMC01LTVINS40MTRsMi4yOTMgMi4yOTNhMSAxIDAgMTEtMS40MTQgMS40MTRsLTQtNGExIDEgMCAwMTAtMS40MTRsNC00YTEgMSAwIDAxMS40MTQgMHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVJld2luZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC40NDUgMTQuODMyQTEgMSAwIDAwMTAgMTR2LTIuNzk4bDUuNDQ1IDMuNjNBMSAxIDAgMDAxNyAxNFY2YTEgMSAwIDAwLTEuNTU1LS44MzJMMTAgOC43OThWNmExIDEgMCAwMC0xLjU1NS0uODMybC02IDRhMSAxIDAgMDAwIDEuNjY0bDYgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpUnNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDNhMSAxIDAgMDAwIDJjNS41MjMgMCAxMCA0LjQ3NyAxMCAxMGExIDEgMCAxMDIgMEMxNyA4LjM3MyAxMS42MjcgMyA1IDN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgOWExIDEgMCAwMTEtMSA3IDcgMCAwMTcgNyAxIDEgMCAxMS0yIDAgNSA1IDAgMDAtNS01IDEgMSAwIDAxLTEtMXpNMyAxNWEyIDIgMCAxMTQgMCAyIDIgMCAwMS00IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVNhdmVBcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS43MDcgNy4yOTNhMSAxIDAgMDAtMS40MTQgMS40MTRsMyAzYTEgMSAwIDAwMS40MTQgMGwzLTNhMSAxIDAgMDAtMS40MTQtMS40MTRMMTMgOC41ODZWNWgzYTIgMiAwIDAxMiAydjVhMiAyIDAgMDEtMiAySDhhMiAyIDAgMDEtMi0yVjdhMiAyIDAgMDEyLTJoM3YzLjU4Nkw5LjcwNyA3LjI5M3pNMTEgM2ExIDEgMCAxMTIgMHYyaC0yVjN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgOWEyIDIgMCAwMC0yIDJ2NWEyIDIgMCAwMDIgMmg4YTIgMiAwIDAwMi0ySDRWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU2F2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy43MDcgMTAuMjkzYTEgMSAwIDEwLTEuNDE0IDEuNDE0bDMgM2ExIDEgMCAwMDEuNDE0IDBsMy0zYTEgMSAwIDAwLTEuNDE0LTEuNDE0TDExIDExLjU4NlY2aDVhMiAyIDAgMDEyIDJ2N2EyIDIgMCAwMS0yIDJINGEyIDIgMCAwMS0yLTJWOGEyIDIgMCAwMTItMmg1djUuNTg2bC0xLjI5My0xLjI5M3pNOSA0YTEgMSAwIDAxMiAwdjJIOVY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlTY2FsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDJhMSAxIDAgMDExIDF2MS4zMjNsMy45NTQgMS41ODIgMS41OTktLjhhMSAxIDAgMDEuODk0IDEuNzlsLTEuMjMzLjYxNiAxLjczOCA1LjQyYTEgMSAwIDAxLS4yODUgMS4wNUEzLjk4OSAzLjk4OSAwIDAxMTUgMTVhMy45ODkgMy45ODkgMCAwMS0yLjY2Ny0xLjAxOSAxIDEgMCAwMS0uMjg1LTEuMDVsMS43MTUtNS4zNDlMMTEgNi40NzdWMTZoMmExIDEgMCAxMTAgMkg3YTEgMSAwIDExMC0yaDJWNi40NzdMNi4yMzcgNy41ODJsMS43MTUgNS4zNDlhMSAxIDAgMDEtLjI4NSAxLjA1QTMuOTg5IDMuOTg5IDAgMDE1IDE1YTMuOTg5IDMuOTg5IDAgMDEtMi42NjctMS4wMTkgMSAxIDAgMDEtLjI4NS0xLjA1bDEuNzM4LTUuNDItMS4yMzMtLjYxN2ExIDEgMCAwMS44OTQtMS43ODhsMS41OTkuNzk5TDkgNC4zMjNWM2ExIDEgMCAwMTEtMXptLTUgOC4yNzRsLS44MTggMi41NTJjLjI1LjExMi41MjYuMTc0LjgxOC4xNzQuMjkyIDAgLjU2OS0uMDYyLjgxOC0uMTc0TDUgMTAuMjc0em0xMCAwbC0uODE4IDIuNTUyYy4yNS4xMTIuNTI2LjE3NC44MTguMTc0LjI5MiAwIC41NjktLjA2Mi44MTgtLjE3NEwxNSAxMC4yNzR6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlTY2lzc29ycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUuNSAyYTMuNSAzLjUgMCAxMDEuNjY1IDYuNThMOC41ODUgMTBsLTEuNDIgMS40MmEzLjUgMy41IDAgMTAxLjQxNCAxLjQxNGw4LjEyOC04LjEyN2ExIDEgMCAwMC0xLjQxNC0xLjQxNEwxMCA4LjU4NmwtMS40Mi0xLjQyQTMuNSAzLjUgMCAwMDUuNSAyek00IDUuNWExLjUgMS41IDAgMTEzIDAgMS41IDEuNSAwIDAxLTMgMHptMCA5YTEuNSAxLjUgMCAxMTMgMCAxLjUgMS41IDAgMDEtMyAwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuODI4IDExLjQxNGExIDEgMCAwMC0xLjQxNCAxLjQxNGwzLjg3OSAzLjg4YTEgMSAwIDAwMS40MTQtMS40MTVsLTMuODc5LTMuODc5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlTZWFyY2hDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgOWEyIDIgMCAxMTQgMCAyIDIgMCAwMS00IDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2em0xLTEzYTQgNCAwIDAwLTMuNDQ2IDYuMDMybC0yLjI2MSAyLjI2YTEgMSAwIDEwMS40MTQgMS40MTVsMi4yNjEtMi4yNjFBNCA0IDAgMTAxMSA1elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU2VhcmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOCA0YTQgNCAwIDEwMCA4IDQgNCAwIDAwMC04ek0yIDhhNiA2IDAgMTExMC44OSAzLjQ3Nmw0LjgxNyA0LjgxN2ExIDEgMCAwMS0xLjQxNCAxLjQxNGwtNC44MTYtNC44MTZBNiA2IDAgMDEyIDh6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlTZWxlY3RvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDNhMSAxIDAgMDEuNzA3LjI5M2wzIDNhMSAxIDAgMDEtMS40MTQgMS40MTRMMTAgNS40MTQgNy43MDcgNy43MDdhMSAxIDAgMDEtMS40MTQtMS40MTRsMy0zQTEgMSAwIDAxMTAgM3ptLTMuNzA3IDkuMjkzYTEgMSAwIDAxMS40MTQgMEwxMCAxNC41ODZsMi4yOTMtMi4yOTNhMSAxIDAgMDExLjQxNCAxLjQxNGwtMyAzYTEgMSAwIDAxLTEuNDE0IDBsLTMtM2ExIDEgMCAwMTAtMS40MTR6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlTZXJ2ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0yIDVhMiAyIDAgMDEyLTJoMTJhMiAyIDAgMDEyIDJ2MmEyIDIgMCAwMS0yIDJINGEyIDIgMCAwMS0yLTJWNXptMTQgMWExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6TTIgMTNhMiAyIDAgMDEyLTJoMTJhMiAyIDAgMDEyIDJ2MmEyIDIgMCAwMS0yIDJINGEyIDIgMCAwMS0yLTJ2LTJ6bTE0IDFhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDhhMyAzIDAgMTAtMi45NzctMi42M2wtNC45NCAyLjQ3YTMgMyAwIDEwMCA0LjMxOWw0Ljk0IDIuNDdhMyAzIDAgMTAuODk1LTEuNzg5bC00Ljk0LTIuNDdhMy4wMjcgMy4wMjcgMCAwMDAtLjc0bDQuOTQtMi40N0MxMy40NTYgNy42OCAxNC4xOSA4IDE1IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVNoaWVsZENoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMi4xNjYgNC45OTlBMTEuOTU0IDExLjk1NCAwIDAwMTAgMS45NDQgMTEuOTU0IDExLjk1NCAwIDAwMTcuODM0IDVjLjExLjY1LjE2NiAxLjMyLjE2NiAyLjAwMSAwIDUuMjI1LTMuMzQgOS42Ny04IDExLjMxN0M1LjM0IDE2LjY3IDIgMTIuMjI1IDIgN2MwLS42ODIuMDU3LTEuMzUuMTY2LTIuMDAxem0xMS41NDEgMy43MDhhMSAxIDAgMDAtMS40MTQtMS40MTRMOSAxMC41ODYgNy43MDcgOS4yOTNhMSAxIDAgMDAtMS40MTQgMS40MTRsMiAyYTEgMSAwIDAwMS40MTQgMGw0LTR6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlTaGllbGRFeGNsYW1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDEuOTQ0QTExLjk1NCAxMS45NTQgMCAwMTIuMTY2IDVDMi4wNTYgNS42NDkgMiA2LjMxOSAyIDdjMCA1LjIyNSAzLjM0IDkuNjcgOCAxMS4zMTdDMTQuNjYgMTYuNjcgMTggMTIuMjI1IDE4IDdjMC0uNjgyLS4wNTctMS4zNS0uMTY2LTIuMDAxQTExLjk1NCAxMS45NTQgMCAwMTEwIDEuOTQ0ek0xMSAxNGExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bTAtN2ExIDEgMCAxMC0yIDB2M2ExIDEgMCAxMDIgMFY3elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU2hvcHBpbmdCYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAyYTQgNCAwIDAwLTQgNHYxSDVhMSAxIDAgMDAtLjk5NC44OWwtMSA5QTEgMSAwIDAwNCAxOGgxMmExIDEgMCAwMC45OTQtMS4xMWwtMS05QTEgMSAwIDAwMTUgN2gtMVY2YTQgNCAwIDAwLTQtNHptMiA1VjZhMiAyIDAgMTAtNCAwdjFoNHptLTYgM2ExIDEgMCAxMTIgMCAxIDEgMCAwMS0yIDB6bTctMWExIDEgMCAxMDAgMiAxIDEgMCAwMDAtMnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVNob3BwaW5nQ2FydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxYTEgMSAwIDAwMCAyaDEuMjJsLjMwNSAxLjIyMmEuOTk3Ljk5NyAwIDAwLjAxLjA0MmwxLjM1OCA1LjQzLS44OTMuODkyQzMuNzQgMTEuODQ2IDQuNjMyIDE0IDYuNDE0IDE0SDE1YTEgMSAwIDAwMC0ySDYuNDE0bDEtMUgxNGExIDEgMCAwMC44OTQtLjU1M2wzLTZBMSAxIDAgMDAxNyAzSDYuMjhsLS4zMS0xLjI0M0ExIDEgMCAwMDUgMUgzek0xNiAxNi41YTEuNSAxLjUgMCAxMS0zIDAgMS41IDEuNSAwIDAxMyAwek02LjUgMThhMS41IDEuNSAwIDEwMC0zIDEuNSAxLjUgMCAwMDAgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU29ydEFzY2VuZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAzYTEgMSAwIDAwMCAyaDExYTEgMSAwIDEwMC0ySDN6TTMgN2ExIDEgMCAwMDAgMmg1YTEgMSAwIDAwMC0ySDN6TTMgMTFhMSAxIDAgMTAwIDJoNGExIDEgMCAxMDAtMkgzek0xMyAxNmExIDEgMCAxMDIgMHYtNS41ODZsMS4yOTMgMS4yOTNhMSAxIDAgMDAxLjQxNC0xLjQxNGwtMy0zYTEgMSAwIDAwLTEuNDE0IDBsLTMgM2ExIDEgMCAxMDEuNDE0IDEuNDE0TDEzIDEwLjQxNFYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU29ydERlc2NlbmRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgM2ExIDEgMCAwMDAgMmgxMWExIDEgMCAxMDAtMkgzek0zIDdhMSAxIDAgMDAwIDJoN2ExIDEgMCAxMDAtMkgzek0zIDExYTEgMSAwIDEwMCAyaDRhMSAxIDAgMTAwLTJIM3pNMTUgOGExIDEgMCAxMC0yIDB2NS41ODZsLTEuMjkzLTEuMjkzYTEgMSAwIDAwLTEuNDE0IDEuNDE0bDMgM2ExIDEgMCAwMDEuNDE0IDBsMy0zYTEgMSAwIDAwLTEuNDE0LTEuNDE0TDE1IDEzLjU4NlY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlTcGFya2xlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUgMmExIDEgMCAwMTEgMXYxaDFhMSAxIDAgMDEwIDJINnYxYTEgMSAwIDAxLTIgMFY2SDNhMSAxIDAgMDEwLTJoMVYzYTEgMSAwIDAxMS0xem0wIDEwYTEgMSAwIDAxMSAxdjFoMWExIDEgMCAxMTAgMkg2djFhMSAxIDAgMTEtMiAwdi0xSDNhMSAxIDAgMTEwLTJoMXYtMWExIDEgMCAwMTEtMXpNMTIgMmExIDEgMCAwMS45NjcuNzQ0TDE0LjE0NiA3LjIgMTcuNSA5LjEzNGExIDEgMCAwMTAgMS43MzJsLTMuMzU0IDEuOTM1LTEuMTggNC40NTVhMSAxIDAgMDEtMS45MzMgMEw5Ljg1NCAxMi44IDYuNSAxMC44NjZhMSAxIDAgMDEwLTEuNzMybDMuMzU0LTEuOTM1IDEuMTgtNC40NTVBMSAxIDAgMDExMiAyelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU3BlYWtlcnBob25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTggM2ExIDEgMCAwMC0xLjQ0Ny0uODk0TDguNzYzIDZINWEzIDMgMCAwMDAgNmguMjhsMS43NzEgNS4zMTZBMSAxIDAgMDA4IDE4aDFhMSAxIDAgMDAxLTF2LTQuMzgybDYuNTUzIDMuMjc2QTEgMSAwIDAwMTggMTVWM3pcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVN0YXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMDQ5IDIuOTI3Yy4zLS45MjEgMS42MDMtLjkyMSAxLjkwMiAwbDEuMDcgMy4yOTJhMSAxIDAgMDAuOTUuNjloMy40NjJjLjk2OSAwIDEuMzcxIDEuMjQuNTg4IDEuODFsLTIuOCAyLjAzNGExIDEgMCAwMC0uMzY0IDEuMTE4bDEuMDcgMy4yOTJjLjMuOTIxLS43NTUgMS42ODgtMS41NCAxLjExOGwtMi44LTIuMDM0YTEgMSAwIDAwLTEuMTc1IDBsLTIuOCAyLjAzNGMtLjc4NC41Ny0xLjgzOC0uMTk3LTEuNTM5LTEuMTE4bDEuMDctMy4yOTJhMSAxIDAgMDAtLjM2NC0xLjExOEwyLjk4IDguNzJjLS43ODMtLjU3LS4zOC0xLjgxLjU4OC0xLjgxaDMuNDYxYTEgMSAwIDAwLjk1MS0uNjlsMS4wNy0zLjI5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU3RhdHVzT2ZmbGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy43MDcgMi4yOTNhMSAxIDAgMDAtMS40MTQgMS40MTRsNi45MjEgNi45MjJjLjA1LjA2Mi4xMDUuMTE4LjE2OC4xNjdsNi45MSA2LjkxMWExIDEgMCAwMDEuNDE1LTEuNDE0bC0uNjc1LS42NzVhOS4wMDEgOS4wMDEgMCAwMC0uNjY4LTExLjk4MkExIDEgMCAxMDE0Ljk1IDUuMDVhNy4wMDIgNy4wMDIgMCAwMS42NTcgOS4xNDNsLTEuNDM1LTEuNDM1YTUuMDAyIDUuMDAyIDAgMDAtLjYzNi02LjI5NEExIDEgMCAwMDEyLjEyIDcuODhjLjkyNC45MjMgMS4xMiAyLjMuNTg3IDMuNDE1bC0xLjk5Mi0xLjk5MmEuOTIyLjkyMiAwIDAwLS4wMTgtLjAxOGwtNi45OS02Ljk5MXpNMy4yMzggOC4xODdhMSAxIDAgMDAtMS45MzMtLjUxNmMtLjggMy0uMDI1IDYuMzM2IDIuMzMxIDguNjkzYTEgMSAwIDAwMS40MTQtMS40MTUgNi45OTcgNi45OTcgMCAwMS0xLjgxMi02Ljc2MnpNNy40IDExLjVhMSAxIDAgMTAtMS43MyAxYy4yMTQuMzcxLjQ4LjcyLjc5NSAxLjAzNWExIDEgMCAwMDEuNDE0LTEuNDE0Yy0uMTkxLS4xOTEtLjM1LS40LS40NzgtLjYyMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU3RhdHVzT25saW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNS4wNSAzLjYzNmExIDEgMCAwMTAgMS40MTQgNyA3IDAgMDAwIDkuOSAxIDEgMCAxMS0xLjQxNCAxLjQxNCA5IDkgMCAwMTAtMTIuNzI4IDEgMSAwIDAxMS40MTQgMHptOS45IDBhMSAxIDAgMDExLjQxNCAwIDkgOSAwIDAxMCAxMi43MjggMSAxIDAgMTEtMS40MTQtMS40MTQgNyA3IDAgMDAwLTkuOSAxIDEgMCAwMTAtMS40MTR6TTcuODc5IDYuNDY0YTEgMSAwIDAxMCAxLjQxNCAzIDMgMCAwMDAgNC4yNDMgMSAxIDAgMTEtMS40MTUgMS40MTQgNSA1IDAgMDEwLTcuMDcgMSAxIDAgMDExLjQxNSAwem00LjI0MiAwYTEgMSAwIDAxMS40MTUgMCA1IDUgMCAwMTAgNy4wNzIgMSAxIDAgMDEtMS40MTUtMS40MTUgMyAzIDAgMDAwLTQuMjQyIDEgMSAwIDAxMC0xLjQxNXpNMTAgOWExIDEgMCAwMTEgMXYuMDFhMSAxIDAgMTEtMiAwVjEwYTEgMSAwIDAxMS0xelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU3RvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6TTggN2ExIDEgMCAwMC0xIDF2NGExIDEgMCAwMDEgMWg0YTEgMSAwIDAwMS0xVjhhMSAxIDAgMDAtMS0xSDh6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlTdW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAyYTEgMSAwIDAxMSAxdjFhMSAxIDAgMTEtMiAwVjNhMSAxIDAgMDExLTF6bTQgOGE0IDQgMCAxMS04IDAgNCA0IDAgMDE4IDB6bS0uNDY0IDQuOTVsLjcwNy43MDdhMSAxIDAgMDAxLjQxNC0xLjQxNGwtLjcwNy0uNzA3YTEgMSAwIDAwLTEuNDE0IDEuNDE0em0yLjEyLTEwLjYwN2ExIDEgMCAwMTAgMS40MTRsLS43MDYuNzA3YTEgMSAwIDExLTEuNDE0LTEuNDE0bC43MDctLjcwN2ExIDEgMCAwMTEuNDE0IDB6TTE3IDExYTEgMSAwIDEwMC0yaC0xYTEgMSAwIDEwMCAyaDF6bS03IDRhMSAxIDAgMDExIDF2MWExIDEgMCAxMS0yIDB2LTFhMSAxIDAgMDExLTF6TTUuMDUgNi40NjRBMSAxIDAgMTA2LjQ2NSA1LjA1bC0uNzA4LS43MDdhMSAxIDAgMDAtMS40MTQgMS40MTRsLjcwNy43MDd6bTEuNDE0IDguNDg2bC0uNzA3LjcwN2ExIDEgMCAwMS0xLjQxNC0xLjQxNGwuNzA3LS43MDdhMSAxIDAgMDExLjQxNCAxLjQxNHpNNCAxMWExIDEgMCAxMDAtMkgzYTEgMSAwIDAwMCAyaDF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlTdXBwb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTggMTBhOCA4IDAgMTEtMTYgMCA4IDggMCAwMTE2IDB6bS0yIDBjMCAuOTkzLS4yNDEgMS45MjktLjY2OCAyLjc1NGwtMS41MjQtMS41MjVhMy45OTcgMy45OTcgMCAwMC4wNzgtMi4xODNsMS41NjItMS41NjJDMTUuODAyIDguMjQ5IDE2IDkuMSAxNiAxMHptLTUuMTY1IDMuOTEzbDEuNTggMS41OEE1Ljk4IDUuOTggMCAwMTEwIDE2YTUuOTc2IDUuOTc2IDAgMDEtMi41MTYtLjU1MmwxLjU2Mi0xLjU2MmE0LjAwNiA0LjAwNiAwIDAwMS43ODkuMDI3em0tNC42NzctMi43OTZhNC4wMDIgNC4wMDIgMCAwMS0uMDQxLTIuMDhsLS4wOC4wOC0xLjUzLTEuNTMzQTUuOTggNS45OCAwIDAwNCAxMGMwIC45NTQuMjIzIDEuODU2LjYxOSAyLjY1N2wxLjU0LTEuNTR6bTEuMDg4LTYuNDVBNS45NzQgNS45NzQgMCAwMTEwIDRjLjk1NCAwIDEuODU2LjIyMyAyLjY1Ny42MTlsLTEuNTQgMS41NGE0LjAwMiA0LjAwMiAwIDAwLTIuMzQ2LjAzM0w3LjI0NiA0LjY2OHpNMTIgMTBhMiAyIDAgMTEtNCAwIDIgMiAwIDAxNCAwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU3dpdGNoSG9yaXpvbnRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA1YTEgMSAwIDEwMCAyaDUuNTg2bC0xLjI5MyAxLjI5M2ExIDEgMCAwMDEuNDE0IDEuNDE0bDMtM2ExIDEgMCAwMDAtMS40MTRsLTMtM2ExIDEgMCAxMC0xLjQxNCAxLjQxNEwxMy41ODYgNUg4ek0xMiAxNWExIDEgMCAxMDAtMkg2LjQxNGwxLjI5My0xLjI5M2ExIDEgMCAxMC0xLjQxNC0xLjQxNGwtMyAzYTEgMSAwIDAwMCAxLjQxNGwzIDNhMSAxIDAgMDAxLjQxNC0xLjQxNEw2LjQxNCAxNUgxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU3dpdGNoVmVydGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTJhMSAxIDAgMTAyIDBWNi40MTRsMS4yOTMgMS4yOTNhMSAxIDAgMDAxLjQxNC0xLjQxNGwtMy0zYTEgMSAwIDAwLTEuNDE0IDBsLTMgM2ExIDEgMCAwMDEuNDE0IDEuNDE0TDUgNi40MTRWMTJ6TTE1IDhhMSAxIDAgMTAtMiAwdjUuNTg2bC0xLjI5My0xLjI5M2ExIDEgMCAwMC0xLjQxNCAxLjQxNGwzIDNhMSAxIDAgMDAxLjQxNCAwbDMtM2ExIDEgMCAwMC0xLjQxNC0xLjQxNEwxNSAxMy41ODZWOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpVGFibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk01IDRhMyAzIDAgMDAtMyAzdjZhMyAzIDAgMDAzIDNoMTBhMyAzIDAgMDAzLTNWN2EzIDMgMCAwMC0zLTNINXptLTEgOXYtMWg1djJINWExIDEgMCAwMS0xLTF6bTcgMWg0YTEgMSAwIDAwMS0xdi0xaC01djJ6bTAtNGg1VjhoLTV2MnpNOSA4SDR2Mmg1Vjh6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlUYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xNy43MDcgOS4yOTNhMSAxIDAgMDEwIDEuNDE0bC03IDdhMSAxIDAgMDEtMS40MTQgMGwtNy03QS45OTcuOTk3IDAgMDEyIDEwVjVhMyAzIDAgMDEzLTNoNWMuMjU2IDAgLjUxMi4wOTguNzA3LjI5M2w3IDd6TTUgNmExIDEgMCAxMDAtMiAxIDEgMCAwMDAgMnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVRlbXBsYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDRhMSAxIDAgMDExLTFoMTJhMSAxIDAgMDExIDF2MmExIDEgMCAwMS0xIDFINGExIDEgMCAwMS0xLTFWNHpNMyAxMGExIDEgMCAwMTEtMWg2YTEgMSAwIDAxMSAxdjZhMSAxIDAgMDEtMSAxSDRhMSAxIDAgMDEtMS0xdi02ek0xNCA5YTEgMSAwIDAwLTEgMXY2YTEgMSAwIDAwMSAxaDJhMSAxIDAgMDAxLTF2LTZhMSAxIDAgMDAtMS0xaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlUZXJtaW5hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIgNWEyIDIgMCAwMTItMmgxMmEyIDIgMCAwMTIgMnYxMGEyIDIgMCAwMS0yIDJINGEyIDIgMCAwMS0yLTJWNXptMy4yOTMgMS4yOTNhMSAxIDAgMDExLjQxNCAwbDMgM2ExIDEgMCAwMTAgMS40MTRsLTMgM2ExIDEgMCAwMS0xLjQxNC0xLjQxNEw3LjU4NiAxMCA1LjI5MyA3LjcwN2ExIDEgMCAwMTAtMS40MTR6TTExIDEyYTEgMSAwIDEwMCAyaDNhMSAxIDAgMTAwLTJoLTN6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlUaHVtYkRvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDkuNWExLjUgMS41IDAgMTEtMyAwdi02YTEuNSAxLjUgMCAwMTMgMHY2ek0xNCA5LjY2N3YtNS40M2EyIDIgMCAwMC0xLjEwNS0xLjc5bC0uMDUtLjAyNUE0IDQgMCAwMDExLjA1NSAySDUuNjRhMiAyIDAgMDAtMS45NjIgMS42MDhsLTEuMiA2QTIgMiAwIDAwNC40NCAxMkg4djRhMiAyIDAgMDAyIDIgMSAxIDAgMDAxLTF2LS42NjdhNCA0IDAgMDEuOC0yLjRsMS40LTEuODY2YTQgNCAwIDAwLjgtMi40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlUaHVtYlVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDEwLjVhMS41IDEuNSAwIDExMyAwdjZhMS41IDEuNSAwIDAxLTMgMHYtNnpNNiAxMC4zMzN2NS40M2EyIDIgMCAwMDEuMTA2IDEuNzlsLjA1LjAyNUE0IDQgMCAwMDguOTQzIDE4aDUuNDE2YTIgMiAwIDAwMS45NjItMS42MDhsMS4yLTZBMiAyIDAgMDAxNS41NiA4SDEyVjRhMiAyIDAgMDAtMi0yIDEgMSAwIDAwLTEgMXYuNjY3YTQgNCAwIDAxLS44IDIuNEw2LjggNy45MzNhNCA0IDAgMDAtLjggMi40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlUaWNrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgNmEyIDIgMCAwMTItMmgxMmEyIDIgMCAwMTIgMnYyYTIgMiAwIDEwMCA0djJhMiAyIDAgMDEtMiAySDRhMiAyIDAgMDEtMi0ydi0yYTIgMiAwIDEwMC00VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVRyYW5zbGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTcgMmExIDEgMCAwMTEgMXYxaDNhMSAxIDAgMTEwIDJIOS41NzhhMTguODcgMTguODcgMCAwMS0xLjcyNCA0Ljc4Yy4yOS4zNTQuNTk2LjY5Ni45MTQgMS4wMjZhMSAxIDAgMTEtMS40NCAxLjM4OWMtLjE4OC0uMTk2LS4zNzMtLjM5Ni0uNTU0LS42YTE5LjA5OCAxOS4wOTggMCAwMS0zLjEwNyAzLjU2NyAxIDEgMCAwMS0xLjMzNC0xLjQ5IDE3LjA4NyAxNy4wODcgMCAwMDMuMTMtMy43MzMgMTguOTkyIDE4Ljk5MiAwIDAxLTEuNDg3LTIuNDk0IDEgMSAwIDExMS43OS0uODljLjIzNC40Ny40ODkuOTI4Ljc2NCAxLjM3Mi40MTctLjkzNC43NTItMS45MTMuOTk3LTIuOTI3SDNhMSAxIDAgMTEwLTJoM1YzYTEgMSAwIDAxMS0xem02IDZhMSAxIDAgMDEuODk0LjU1M2wyLjk5MSA1Ljk4MmEuODY5Ljg2OSAwIDAxLjAyLjAzN2wuOTkgMS45OGExIDEgMCAxMS0xLjc5Ljg5NUwxNS4zODMgMTZoLTQuNzY0bC0uNzI0IDEuNDQ3YTEgMSAwIDExLTEuNzg4LS44OTRsLjk5LTEuOTguMDE5LS4wMzggMi45OS01Ljk4MkExIDEgMCAwMTEzIDh6bS0xLjM4MiA2aDIuNzY0TDEzIDExLjIzNiAxMS42MTggMTR6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlUcmFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTkgMmExIDEgMCAwMC0uODk0LjU1M0w3LjM4MiA0SDRhMSAxIDAgMDAwIDJ2MTBhMiAyIDAgMDAyIDJoOGEyIDIgMCAwMDItMlY2YTEgMSAwIDEwMC0yaC0zLjM4MmwtLjcyNC0xLjQ0N0ExIDEgMCAwMDExIDJIOXpNNyA4YTEgMSAwIDAxMiAwdjZhMSAxIDAgMTEtMiAwVjh6bTUtMWExIDEgMCAwMC0xIDF2NmExIDEgMCAxMDIgMFY4YTEgMSAwIDAwLTEtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVRyZW5kaW5nRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEyIDEzYTEgMSAwIDEwMCAyaDVhMSAxIDAgMDAxLTFWOWExIDEgMCAxMC0yIDB2Mi41ODZsLTQuMjkzLTQuMjkzYTEgMSAwIDAwLTEuNDE0IDBMOCA5LjU4NiAzLjcwNyA1LjI5M2ExIDEgMCAwMC0xLjQxNCAxLjQxNGw1IDVhMSAxIDAgMDAxLjQxNCAwTDExIDkuNDE0IDE0LjU4NiAxM0gxMnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVRyZW5kaW5nVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMiA3YTEgMSAwIDExMC0yaDVhMSAxIDAgMDExIDF2NWExIDEgMCAxMS0yIDBWOC40MTRsLTQuMjkzIDQuMjkzYTEgMSAwIDAxLTEuNDE0IDBMOCAxMC40MTRsLTQuMjkzIDQuMjkzYTEgMSAwIDAxLTEuNDE0LTEuNDE0bDUtNWExIDEgMCAwMTEuNDE0IDBMMTEgMTAuNTg2IDE0LjU4NiA3SDEyelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpVHJ1Y2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTYuNWExLjUgMS41IDAgMTEtMyAwIDEuNSAxLjUgMCAwMTMgMHpNMTUgMTYuNWExLjUgMS41IDAgMTEtMyAwIDEuNSAxLjUgMCAwMTMgMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA0YTEgMSAwIDAwLTEgMXYxMGExIDEgMCAwMDEgMWgxLjA1YTIuNSAyLjUgMCAwMTQuOSAwSDEwYTEgMSAwIDAwMS0xVjVhMSAxIDAgMDAtMS0xSDN6TTE0IDdhMSAxIDAgMDAtMSAxdjYuMDVBMi41IDIuNSAwIDAxMTUuOTUgMTZIMTdhMSAxIDAgMDAxLTF2LTVhMSAxIDAgMDAtLjI5My0uNzA3bC0yLTJBMSAxIDAgMDAxNSA3aC0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlVcGxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zIDE3YTEgMSAwIDAxMS0xaDEyYTEgMSAwIDExMCAySDRhMSAxIDAgMDEtMS0xek02LjI5MyA2LjcwN2ExIDEgMCAwMTAtMS40MTRsMy0zYTEgMSAwIDAxMS40MTQgMGwzIDNhMSAxIDAgMDEtMS40MTQgMS40MTRMMTEgNS40MTRWMTNhMSAxIDAgMTEtMiAwVjUuNDE0TDcuNzA3IDYuNzA3YTEgMSAwIDAxLTEuNDE0IDB6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlVc2VyQWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDlhMyAzIDAgMTAwLTYgMyAzIDAgMDAwIDZ6TTggMTFhNiA2IDAgMDE2IDZIMmE2IDYgMCAwMTYtNnpNMTYgN2ExIDEgMCAxMC0yIDB2MWgtMWExIDEgMCAxMDAgMmgxdjFhMSAxIDAgMTAyIDB2LTFoMWExIDEgMCAxMDAtMmgtMVY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlVc2VyQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTggMTBhOCA4IDAgMTEtMTYgMCA4IDggMCAwMTE2IDB6bS02LTNhMiAyIDAgMTEtNCAwIDIgMiAwIDAxNCAwem0tMiA0YTUgNSAwIDAwLTQuNTQ2IDIuOTE2QTUuOTg2IDUuOTg2IDAgMDAxMCAxNmE1Ljk4NiA1Ljk4NiAwIDAwNC41NDYtMi4wODRBNSA1IDAgMDAxMCAxMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVVzZXJHcm91cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgNmEzIDMgMCAxMS02IDAgMyAzIDAgMDE2IDB6TTE4IDhhMiAyIDAgMTEtNCAwIDIgMiAwIDAxNCAwek0xNCAxNWE0IDQgMCAwMC04IDB2M2g4di0zek02IDhhMiAyIDAgMTEtNCAwIDIgMiAwIDAxNCAwek0xNiAxOHYtM2E1Ljk3MiA1Ljk3MiAwIDAwLS43NS0yLjkwNkEzLjAwNSAzLjAwNSAwIDAxMTkgMTV2M2gtM3pNNC43NSAxMi4wOTRBNS45NzMgNS45NzMgMCAwMDQgMTV2M0gxdi0zYTMgMyAwIDAxMy43NS0yLjkwNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpVXNlclJlbW92ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNmEzIDMgMCAxMS02IDAgMyAzIDAgMDE2IDB6TTE0IDE3YTYgNiAwIDAwLTEyIDBoMTJ6TTEzIDhhMSAxIDAgMTAwIDJoNGExIDEgMCAxMDAtMmgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpVXNlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDlhMyAzIDAgMTAwLTYgMyAzIDAgMDAwIDZ6bS03IDlhNyA3IDAgMTExNCAwSDN6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlVc2VycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA2YTMgMyAwIDExLTYgMCAzIDMgMCAwMTYgMHpNMTcgNmEzIDMgMCAxMS02IDAgMyAzIDAgMDE2IDB6TTEyLjkzIDE3Yy4wNDYtLjMyNy4wNy0uNjYuMDctMWE2Ljk3IDYuOTcgMCAwMC0xLjUtNC4zM0E1IDUgMCAwMTE5IDE2djFoLTYuMDd6TTYgMTFhNSA1IDAgMDE1IDV2MUgxdi0xYTUgNSAwIDAxNS01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlWYXJpYWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQuNjQ5IDMuMDg0QTEgMSAwIDAxNS4xNjMgNC40IDEzLjk1IDEzLjk1IDAgMDA0IDEwYzAgMS45OTMuNDE2IDMuODg2IDEuMTY0IDUuNmExIDEgMCAwMS0xLjgzMi44QTE1Ljk1IDE1Ljk1IDAgMDEyIDEwYzAtMi4yNzQuNDc1LTQuNDQgMS4zMzItNi40YTEgMSAwIDAxMS4zMTctLjUxNnpNMTIuOTYgN2EzIDMgMCAwMC0yLjM0MiAxLjEyNmwtLjMyOC40MS0uMTExLS4yNzlBMiAyIDAgMDA4LjMyMyA3SDhhMSAxIDAgMDAwIDJoLjMyM2wuNTMyIDEuMzMtMS4wMzUgMS4yOTVhMSAxIDAgMDEtLjc4MS4zNzVIN2ExIDEgMCAxMDAgMmguMDM5YTMgMyAwIDAwMi4zNDItMS4xMjZsLjMyOC0uNDEuMTExLjI3OUEyIDIgMCAwMDExLjY3NyAxNEgxMmExIDEgMCAxMDAtMmgtLjMyM2wtLjUzMi0xLjMzIDEuMDM1LTEuMjk1QTEgMSAwIDAxMTIuOTYxIDlIMTNhMSAxIDAgMTAwLTJoLS4wMzl6bTEuODc0LTIuNmExIDEgMCAwMTEuODMzLS44QTE1Ljk1IDE1Ljk1IDAgMDExOCAxMGMwIDIuMjc0LS40NzUgNC40NC0xLjMzMiA2LjRhMSAxIDAgMTEtMS44MzItLjhBMTMuOTQ5IDEzLjk0OSAwIDAwMTYgMTBjMC0xLjk5My0uNDE2LTMuODg2LTEuMTY1LTUuNnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVZpZGVvQ2FtZXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDZhMiAyIDAgMDEyLTJoNmEyIDIgMCAwMTIgMnY4YTIgMiAwIDAxLTIgMkg0YTIgMiAwIDAxLTItMlY2ek0xNC41NTMgNy4xMDZBMSAxIDAgMDAxNCA4djRhMSAxIDAgMDAuNTUzLjg5NGwyIDFBMSAxIDAgMDAxOCAxM1Y3YTEgMSAwIDAwLTEuNDQ3LS44OTRsLTIgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpVmlld0JvYXJkcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA0YTEgMSAwIDAxMS0xaDJhMSAxIDAgMDExIDF2MTJhMSAxIDAgMDEtMSAxSDNhMSAxIDAgMDEtMS0xVjR6TTggNGExIDEgMCAwMTEtMWgyYTEgMSAwIDAxMSAxdjEyYTEgMSAwIDAxLTEgMUg5YTEgMSAwIDAxLTEtMVY0ek0xNSAzYTEgMSAwIDAwLTEgMXYxMmExIDEgMCAwMDEgMWgyYTEgMSAwIDAwMS0xVjRhMSAxIDAgMDAtMS0xaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlWaWV3R3JpZEFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAzYTIgMiAwIDAwLTIgMnYyYTIgMiAwIDAwMiAyaDJhMiAyIDAgMDAyLTJWNWEyIDIgMCAwMC0yLTJINXpNNSAxMWEyIDIgMCAwMC0yIDJ2MmEyIDIgMCAwMDIgMmgyYTIgMiAwIDAwMi0ydi0yYTIgMiAwIDAwLTItMkg1ek0xMSA1YTIgMiAwIDAxMi0yaDJhMiAyIDAgMDEyIDJ2MmEyIDIgMCAwMS0yIDJoLTJhMiAyIDAgMDEtMi0yVjV6TTE0IDExYTEgMSAwIDAxMSAxdjFoMWExIDEgMCAxMTAgMmgtMXYxYTEgMSAwIDExLTIgMHYtMWgtMWExIDEgMCAxMTAtMmgxdi0xYTEgMSAwIDAxMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlWaWV3R3JpZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAzYTIgMiAwIDAwLTIgMnYyYTIgMiAwIDAwMiAyaDJhMiAyIDAgMDAyLTJWNWEyIDIgMCAwMC0yLTJINXpNNSAxMWEyIDIgMCAwMC0yIDJ2MmEyIDIgMCAwMDIgMmgyYTIgMiAwIDAwMi0ydi0yYTIgMiAwIDAwLTItMkg1ek0xMSA1YTIgMiAwIDAxMi0yaDJhMiAyIDAgMDEyIDJ2MmEyIDIgMCAwMS0yIDJoLTJhMiAyIDAgMDEtMi0yVjV6TTExIDEzYTIgMiAwIDAxMi0yaDJhMiAyIDAgMDEyIDJ2MmEyIDIgMCAwMS0yIDJoLTJhMiAyIDAgMDEtMi0ydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlWaWV3TGlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTMgNGExIDEgMCAwMTEtMWgxMmExIDEgMCAxMTAgMkg0YTEgMSAwIDAxLTEtMXptMCA0YTEgMSAwIDAxMS0xaDEyYTEgMSAwIDExMCAySDRhMSAxIDAgMDEtMS0xem0wIDRhMSAxIDAgMDExLTFoMTJhMSAxIDAgMTEwIDJINGExIDEgMCAwMS0xLTF6bTAgNGExIDEgMCAwMTEtMWgxMmExIDEgMCAxMTAgMkg0YTEgMSAwIDAxLTEtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVZvbHVtZU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTkuMzgzIDMuMDc2QTEgMSAwIDAxMTAgNHYxMmExIDEgMCAwMS0xLjcwNy43MDdMNC41ODYgMTNIMmExIDEgMCAwMS0xLTFWOGExIDEgMCAwMTEtMWgyLjU4NmwzLjcwNy0zLjcwN2ExIDEgMCAwMTEuMDktLjIxN3pNMTIuMjkzIDcuMjkzYTEgMSAwIDAxMS40MTQgMEwxNSA4LjU4NmwxLjI5My0xLjI5M2ExIDEgMCAxMTEuNDE0IDEuNDE0TDE2LjQxNCAxMGwxLjI5MyAxLjI5M2ExIDEgMCAwMS0xLjQxNCAxLjQxNEwxNSAxMS40MTRsLTEuMjkzIDEuMjkzYTEgMSAwIDAxLTEuNDE0LTEuNDE0TDEzLjU4NiAxMGwtMS4yOTMtMS4yOTNhMSAxIDAgMDEwLTEuNDE0elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpVm9sdW1lVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk05LjM4MyAzLjA3NkExIDEgMCAwMTEwIDR2MTJhMSAxIDAgMDEtMS43MDcuNzA3TDQuNTg2IDEzSDJhMSAxIDAgMDEtMS0xVjhhMSAxIDAgMDExLTFoMi41ODZsMy43MDctMy43MDdhMSAxIDAgMDExLjA5LS4yMTd6TTE0LjY1NyAyLjkyOWExIDEgMCAwMTEuNDE0IDBBOS45NzIgOS45NzIgMCAwMTE5IDEwYTkuOTcyIDkuOTcyIDAgMDEtMi45MjkgNy4wNzEgMSAxIDAgMDEtMS40MTQtMS40MTRBNy45NzEgNy45NzEgMCAwMDE3IDEwYzAtMi4yMS0uODk0LTQuMjA4LTIuMzQzLTUuNjU3YTEgMSAwIDAxMC0xLjQxNHptLTIuODI5IDIuODI4YTEgMSAwIDAxMS40MTUgMEE1Ljk4MyA1Ljk4MyAwIDAxMTUgMTBhNS45ODQgNS45ODQgMCAwMS0xLjc1NyA0LjI0MyAxIDEgMCAwMS0xLjQxNS0xLjQxNUEzLjk4NCAzLjk4NCAwIDAwMTMgMTBhMy45ODMgMy45ODMgMCAwMC0xLjE3Mi0yLjgyOCAxIDEgMCAwMTAtMS40MTV6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlXaWZpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTcuNzc4IDguMjIyYy00LjI5Ni00LjI5Ni0xMS4yNi00LjI5Ni0xNS41NTYgMEExIDEgMCAwMS44MDggNi44MDhjNS4wNzYtNS4wNzcgMTMuMzA4LTUuMDc3IDE4LjM4NCAwYTEgMSAwIDAxLTEuNDE0IDEuNDE0ek0xNC45NSAxMS4wNWE3IDcgMCAwMC05LjkgMCAxIDEgMCAwMS0xLjQxNC0xLjQxNCA5IDkgMCAwMTEyLjcyOCAwIDEgMSAwIDAxLTEuNDE0IDEuNDE0ek0xMi4xMiAxMy44OGEzIDMgMCAwMC00LjI0MiAwIDEgMSAwIDAxLTEuNDE1LTEuNDE1IDUgNSAwIDAxNy4wNzIgMCAxIDEgMCAwMS0xLjQxNSAxLjQxNXpNOSAxNmExIDEgMCAwMTEtMWguMDFhMSAxIDAgMTEwIDJIMTBhMSAxIDAgMDEtMS0xelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpWENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6TTguNzA3IDcuMjkzYTEgMSAwIDAwLTEuNDE0IDEuNDE0TDguNTg2IDEwbC0xLjI5MyAxLjI5M2ExIDEgMCAxMDEuNDE0IDEuNDE0TDEwIDExLjQxNGwxLjI5MyAxLjI5M2ExIDEgMCAwMDEuNDE0LTEuNDE0TDExLjQxNCAxMGwxLjI5My0xLjI5M2ExIDEgMCAwMC0xLjQxNC0xLjQxNEwxMCA4LjU4NiA4LjcwNyA3LjI5M3pcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk00LjI5MyA0LjI5M2ExIDEgMCAwMTEuNDE0IDBMMTAgOC41ODZsNC4yOTMtNC4yOTNhMSAxIDAgMTExLjQxNCAxLjQxNEwxMS40MTQgMTBsNC4yOTMgNC4yOTNhMSAxIDAgMDEtMS40MTQgMS40MTRMMTAgMTEuNDE0bC00LjI5MyA0LjI5M2ExIDEgMCAwMS0xLjQxNC0xLjQxNEw4LjU4NiAxMCA0LjI5MyA1LjcwN2ExIDEgMCAwMTAtMS40MTR6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlab29tSW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgOGExIDEgMCAwMTEtMWgxVjZhMSAxIDAgMDEyIDB2MWgxYTEgMSAwIDExMCAySDl2MWExIDEgMCAxMS0yIDBWOUg2YTEgMSAwIDAxLTEtMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIgOGE2IDYgMCAxMTEwLjg5IDMuNDc2bDQuODE3IDQuODE3YTEgMSAwIDAxLTEuNDE0IDEuNDE0bC00LjgxNi00LjgxNkE2IDYgMCAwMTIgOHptNi00YTQgNCAwIDEwMCA4IDQgNCAwIDAwMC04elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpWm9vbU91dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggNGE0IDQgMCAxMDAgOCA0IDQgMCAwMDAtOHpNMiA4YTYgNiAwIDExMTAuODkgMy40NzZsNC44MTcgNC44MTdhMSAxIDAgMDEtMS40MTQgMS40MTRsLTQuODE2LTQuODE2QTYgNiAwIDAxMiA4elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUgOGExIDEgMCAwMTEtMWg0YTEgMSAwIDExMCAySDZhMSAxIDAgMDEtMS0xelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUFjYWRlbWljQ2FwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNGw5LTUtOS01LTkgNSA5IDV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE0bDYuMTYtMy40MjJhMTIuMDgzIDEyLjA4MyAwIDAxLjY2NSA2LjQ3OUExMS45NTIgMTEuOTUyIDAgMDAxMiAyMC4wNTVhMTEuOTUyIDExLjk1MiAwIDAwLTYuODI0LTIuOTk4IDEyLjA3OCAxMi4wNzggMCAwMS42NjUtNi40NzlMMTIgMTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEyIDE0bDktNS05LTUtOSA1IDkgNXptMCAwbDYuMTYtMy40MjJhMTIuMDgzIDEyLjA4MyAwIDAxLjY2NSA2LjQ3OUExMS45NTIgMTEuOTUyIDAgMDAxMiAyMC4wNTVhMTEuOTUyIDExLjk1MiAwIDAwLTYuODI0LTIuOTk4IDEyLjA3OCAxMi4wNzggMCAwMS42NjUtNi40NzlMMTIgMTR6bS00IDZ2LTcuNWw0LTIuMjIyXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVBZGp1c3RtZW50cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTIgNlY0bTAgMmEyIDIgMCAxMDAgNG0wLTRhMiAyIDAgMTEwIDRtLTYgOGEyIDIgMCAxMDAtNG0wIDRhMiAyIDAgMTEwLTRtMCA0djJtMC02VjRtNiA2djEwbTYtMmEyIDIgMCAxMDAtNG0wIDRhMiAyIDAgMTEwLTRtMCA0djJtMC02VjRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUFubm90YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTcgOGgxME03IDEyaDRtMSA4bC00LTRINWEyIDIgMCAwMS0yLTJWNmEyIDIgMCAwMTItMmgxNGEyIDIgMCAwMTIgMnY4YTIgMiAwIDAxLTIgMmgtM2wtNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQXJjaGl2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNSA4aDE0TTUgOGEyIDIgMCAxMTAtNGgxNGEyIDIgMCAxMTAgNE01IDh2MTBhMiAyIDAgMDAyIDJoMTBhMiAyIDAgMDAyLTJWOG0tOSA0aDRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUFycm93Q2lyY2xlRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTUgMTNsLTMgM20wIDBsLTMtM20zIDNWOG0wIDEzYTkgOSAwIDExMC0xOCA5IDkgMCAwMTAgMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVBcnJvd0NpcmNsZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTExIDE1bC0zLTNtMCAwbDMtM20tMyAzaDhNMyAxMmE5IDkgMCAxMTE4IDAgOSA5IDAgMDEtMTggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUFycm93Q2lyY2xlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEzIDlsMyAzbTAgMGwtMyAzbTMtM0g4bTEzIDBhOSA5IDAgMTEtMTggMCA5IDkgMCAwMTE4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVBcnJvd0NpcmNsZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk05IDExbDMtM20wIDBsMyAzbS0zLTN2OG0wLTEzYTkgOSAwIDExMCAxOCA5IDkgMCAwMTAtMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVBcnJvd0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE5IDE0bC03IDdtMCAwbC03LTdtNyA3VjNcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUFycm93TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTAgMTlsLTctN20wIDBsNy03bS03IDdoMThcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUFycm93TmFycm93RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTYgMTdsLTQgNG0wIDBsLTQtNG00IDRWM1wifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQXJyb3dOYXJyb3dMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk03IDE2bC00LTRtMCAwbDQtNG0tNCA0aDE4XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVBcnJvd05hcnJvd1JpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNyA4bDQgNG0wIDBsLTQgNG00LTRIM1wifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQXJyb3dOYXJyb3dVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOCA3bDQtNG0wIDBsNCA0bS00LTR2MThcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUFycm93UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE0IDVsNyA3bTAgMGwtNyA3bTctN0gzXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVBcnJvd1NtRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTcgMTNsLTUgNW0wIDBsLTUtNW01IDVWNlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQXJyb3dTbUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTExIDE3bC01LTVtMCAwbDUtNW0tNSA1aDEyXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVBcnJvd1NtUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEzIDdsNSA1bTAgMGwtNSA1bTUtNUg2XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVBcnJvd1NtVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTcgMTFsNS01bTAgMGw1IDVtLTUtNXYxMlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQXJyb3dVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNSAxMGw3LTdtMCAwbDcgN20tNy03djE4XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVBcnJvd3NFeHBhbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTQgOFY0bTAgMGg0TTQgNGw1IDVtMTEtMVY0bTAgMGgtNG00IDBsLTUgNU00IDE2djRtMCAwaDRtLTQgMGw1LTVtMTEgNWwtNS01bTUgNXYtNG0wIDRoLTRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUF0U3ltYm9sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNiAxMmE0IDQgMCAxMC04IDAgNCA0IDAgMDA4IDB6bTAgMHYxLjVhMi41IDIuNSAwIDAwNSAwVjEyYTkgOSAwIDEwLTkgOW00LjUtMS4yMDZhOC45NTkgOC45NTkgMCAwMS00LjUgMS4yMDdcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUJhY2tzcGFjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTIgMTRsMi0ybTAgMGwyLTJtLTIgMmwtMi0ybTIgMmwyIDJNMyAxMmw2LjQxNCA2LjQxNGEyIDIgMCAwMDEuNDE0LjU4NkgxOWEyIDIgMCAwMDItMlY3YTIgMiAwIDAwLTItMmgtOC4xNzJhMiAyIDAgMDAtMS40MTQuNTg2TDMgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVCYWRnZUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk05IDEybDIgMiA0LTRNNy44MzUgNC42OTdhMy40MiAzLjQyIDAgMDAxLjk0Ni0uODA2IDMuNDIgMy40MiAwIDAxNC40MzggMCAzLjQyIDMuNDIgMCAwMDEuOTQ2LjgwNiAzLjQyIDMuNDIgMCAwMTMuMTM4IDMuMTM4IDMuNDIgMy40MiAwIDAwLjgwNiAxLjk0NiAzLjQyIDMuNDIgMCAwMTAgNC40MzggMy40MiAzLjQyIDAgMDAtLjgwNiAxLjk0NiAzLjQyIDMuNDIgMCAwMS0zLjEzOCAzLjEzOCAzLjQyIDMuNDIgMCAwMC0xLjk0Ni44MDYgMy40MiAzLjQyIDAgMDEtNC40MzggMCAzLjQyIDMuNDIgMCAwMC0xLjk0Ni0uODA2IDMuNDIgMy40MiAwIDAxLTMuMTM4LTMuMTM4IDMuNDIgMy40MiAwIDAwLS44MDYtMS45NDYgMy40MiAzLjQyIDAgMDEwLTQuNDM4IDMuNDIgMy40MiAwIDAwLjgwNi0xLjk0NiAzLjQyIDMuNDIgMCAwMTMuMTM4LTMuMTM4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQmFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xOC4zNjQgMTguMzY0QTkgOSAwIDAwNS42MzYgNS42MzZtMTIuNzI4IDEyLjcyOEE5IDkgMCAwMTUuNjM2IDUuNjM2bTEyLjcyOCAxMi43MjhMNS42MzYgNS42MzZcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUJlYWtlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTkuNDI4IDE1LjQyOGEyIDIgMCAwMC0xLjAyMi0uNTQ3bC0yLjM4Ny0uNDc3YTYgNiAwIDAwLTMuODYuNTE3bC0uMzE4LjE1OGE2IDYgMCAwMS0zLjg2LjUxN0w2LjA1IDE1LjIxYTIgMiAwIDAwLTEuODA2LjU0N004IDRoOGwtMSAxdjUuMTcyYTIgMiAwIDAwLjU4NiAxLjQxNGw1IDVjMS4yNiAxLjI2LjM2NyAzLjQxNC0xLjQxNSAzLjQxNEg0LjgyOGMtMS43ODIgMC0yLjY3NC0yLjE1NC0xLjQxNC0zLjQxNGw1LTVBMiAyIDAgMDA5IDEwLjE3MlY1TDggNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUJlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE1IDE3aDVsLTEuNDA1LTEuNDA1QTIuMDMyIDIuMDMyIDAgMDExOCAxNC4xNThWMTFhNi4wMDIgNi4wMDIgMCAwMC00LTUuNjU5VjVhMiAyIDAgMTAtNCAwdi4zNDFDNy42NyA2LjE2NSA2IDguMzg4IDYgMTF2My4xNTljMCAuNTM4LS4yMTQgMS4wNTUtLjU5NSAxLjQzNkw0IDE3aDVtNiAwdjFhMyAzIDAgMTEtNiAwdi0xbTYgMEg5XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVCb29rT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTIgNi4yNTN2MTNtMC0xM0MxMC44MzIgNS40NzcgOS4yNDYgNSA3LjUgNVM0LjE2OCA1LjQ3NyAzIDYuMjUzdjEzQzQuMTY4IDE4LjQ3NyA1Ljc1NCAxOCA3LjUgMThzMy4zMzIuNDc3IDQuNSAxLjI1M20wLTEzQzEzLjE2OCA1LjQ3NyAxNC43NTQgNSAxNi41IDVjMS43NDcgMCAzLjMzMi40NzcgNC41IDEuMjUzdjEzQzE5LjgzMiAxOC40NzcgMTguMjQ3IDE4IDE2LjUgMThjLTEuNzQ2IDAtMy4zMzIuNDc3LTQuNSAxLjI1M1wifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQm9va21hcmtBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE2IDR2MTJsLTQtMi00IDJWNE02IDIwaDEyYTIgMiAwIDAwMi0yVjZhMiAyIDAgMDAtMi0ySDZhMiAyIDAgMDAtMiAydjEyYTIgMiAwIDAwMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQm9va21hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTUgNWEyIDIgMCAwMTItMmgxMGEyIDIgMCAwMTIgMnYxNmwtNy0zLjVMNSAyMVY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQnJpZWZjYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0yMSAxMy4yNTVBMjMuOTMxIDIzLjkzMSAwIDAxMTIgMTVjLTMuMTgzIDAtNi4yMi0uNjItOS0xLjc0NU0xNiA2VjRhMiAyIDAgMDAtMi0yaC00YTIgMiAwIDAwLTIgMnYybTQgNmguMDFNNSAyMGgxNGEyIDIgMCAwMDItMlY4YTIgMiAwIDAwLTItMkg1YTIgMiAwIDAwLTIgMnYxMGEyIDIgMCAwMDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNha2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTIxIDE1LjU0NmMtLjUyMyAwLTEuMDQ2LjE1MS0xLjUuNDU0YTIuNzA0IDIuNzA0IDAgMDEtMyAwIDIuNzA0IDIuNzA0IDAgMDAtMyAwIDIuNzA0IDIuNzA0IDAgMDEtMyAwIDIuNzA0IDIuNzA0IDAgMDAtMyAwIDIuNzA0IDIuNzA0IDAgMDEtMyAwIDIuNzAxIDIuNzAxIDAgMDAtMS41LS40NTRNOSA2djJtMy0ydjJtMy0ydjJNOSAzaC4wMU0xMiAzaC4wMU0xNSAzaC4wMU0yMSAyMXYtN2EyIDIgMCAwMC0yLTJINWEyIDIgMCAwMC0yIDJ2N2gxOHptLTMtOXYtMmEyIDIgMCAwMC0yLTJIOGEyIDIgMCAwMC0yIDJ2MmgxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNhbGN1bGF0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTkgN2g2bTAgMTB2LTNtLTMgM2guMDFNOSAxN2guMDFNOSAxNGguMDFNMTIgMTRoLjAxTTE1IDExaC4wMU0xMiAxMWguMDFNOSAxMWguMDFNNyAyMWgxMGEyIDIgMCAwMDItMlY1YTIgMiAwIDAwLTItMkg3YTIgMiAwIDAwLTIgMnYxNGEyIDIgMCAwMDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNhbGVuZGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk04IDdWM204IDRWM20tOSA4aDEwTTUgMjFoMTRhMiAyIDAgMDAyLTJWN2EyIDIgMCAwMC0yLTJINWEyIDIgMCAwMC0yIDJ2MTJhMiAyIDAgMDAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDYW1lcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTMgOWEyIDIgMCAwMTItMmguOTNhMiAyIDAgMDAxLjY2NC0uODlsLjgxMi0xLjIyQTIgMiAwIDAxMTAuMDcgNGgzLjg2YTIgMiAwIDAxMS42NjQuODlsLjgxMiAxLjIyQTIgMiAwIDAwMTguMDcgN0gxOWEyIDIgMCAwMTIgMnY5YTIgMiAwIDAxLTIgMkg1YTIgMiAwIDAxLTItMlY5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNSAxM2EzIDMgMCAxMS02IDAgMyAzIDAgMDE2IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNyA5VjdhMiAyIDAgMDAtMi0ySDVhMiAyIDAgMDAtMiAydjZhMiAyIDAgMDAyIDJoMm0yIDRoMTBhMiAyIDAgMDAyLTJ2LTZhMiAyIDAgMDAtMi0ySDlhMiAyIDAgMDAtMiAydjZhMiAyIDAgMDAyIDJ6bTctNWEyIDIgMCAxMS00IDAgMiAyIDAgMDE0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDaGFydEJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOSAxOXYtNmEyIDIgMCAwMC0yLTJINWEyIDIgMCAwMC0yIDJ2NmEyIDIgMCAwMDIgMmgyYTIgMiAwIDAwMi0yem0wIDBWOWEyIDIgMCAwMTItMmgyYTIgMiAwIDAxMiAydjEwbS02IDBhMiAyIDAgMDAyIDJoMmEyIDIgMCAwMDItMm0wIDBWNWEyIDIgMCAwMTItMmgyYTIgMiAwIDAxMiAydjE0YTIgMiAwIDAxLTIgMmgtMmEyIDIgMCAwMS0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDaGFydFBpZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTEgMy4wNTVBOS4wMDEgOS4wMDEgMCAxMDIwLjk0NSAxM0gxMVYzLjA1NXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMjAuNDg4IDlIMTVWMy41MTJBOS4wMjUgOS4wMjUgMCAwMTIwLjQ4OCA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2hhcnRTcXVhcmVCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE2IDh2OG0tNC01djVtLTQtMnYybS0yIDRoMTJhMiAyIDAgMDAyLTJWNmEyIDIgMCAwMC0yLTJINmEyIDIgMCAwMC0yIDJ2MTJhMiAyIDAgMDAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDaGF0QWx0MiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTcgOGgyYTIgMiAwIDAxMiAydjZhMiAyIDAgMDEtMiAyaC0ydjRsLTQtNEg5YTEuOTk0IDEuOTk0IDAgMDEtMS40MTQtLjU4Nm0wIDBMMTEgMTRoNGEyIDIgMCAwMDItMlY2YTIgMiAwIDAwLTItMkg1YTIgMiAwIDAwLTIgMnY2YTIgMiAwIDAwMiAyaDJ2NGwuNTg2LS41ODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDaGF0QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk04IDEwaC4wMU0xMiAxMGguMDFNMTYgMTBoLjAxTTkgMTZINWEyIDIgMCAwMS0yLTJWNmEyIDIgMCAwMTItMmgxNGEyIDIgMCAwMTIgMnY4YTIgMiAwIDAxLTIgMmgtNWwtNSA1di01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2hhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOCAxMmguMDFNMTIgMTJoLjAxTTE2IDEyaC4wMU0yMSAxMmMwIDQuNDE4LTQuMDMgOC05IDhhOS44NjMgOS44NjMgMCAwMS00LjI1NS0uOTQ5TDMgMjBsMS4zOTUtMy43MkMzLjUxMiAxNS4wNDIgMyAxMy41NzQgMyAxMmMwLTQuNDE4IDQuMDMtOCA5LThzOSAzLjU4MiA5IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDaGVja0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOSAxMmwyIDIgNC00bTYgMmE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk01IDEzbDQgNEwxOSA3XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDaGV2cm9uRG91YmxlRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTkgMTNsLTcgNy03LTdtMTQtOGwtNyA3LTctN1wifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2hldnJvbkRvdWJsZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTExIDE5bC03LTcgNy03bTggMTRsLTctNyA3LTdcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNoZXZyb25Eb3VibGVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTMgNWw3IDctNyA3TTUgNWw3IDctNyA3XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDaGV2cm9uRG91YmxlVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTUgMTFsNy03IDcgN001IDE5bDctNyA3IDdcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNoZXZyb25Eb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xOSA5bC03IDctNy03XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDaGV2cm9uTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTUgMTlsLTctNyA3LTdcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNoZXZyb25SaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOSA1bDcgNy03IDdcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNoZXZyb25VcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNSAxNWw3LTcgNyA3XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDaGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk05IDN2Mm02LTJ2Mk05IDE5djJtNi0ydjJNNSA5SDNtMiA2SDNtMTgtNmgtMm0yIDZoLTJNNyAxOWgxMGEyIDIgMCAwMDItMlY3YTIgMiAwIDAwLTItMkg3YTIgMiAwIDAwLTIgMnYxMGEyIDIgMCAwMDIgMnpNOSA5aDZ2Nkg5Vjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDbGlwYm9hcmRDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOSA1SDdhMiAyIDAgMDAtMiAydjEyYTIgMiAwIDAwMiAyaDEwYTIgMiAwIDAwMi0yVjdhMiAyIDAgMDAtMi0yaC0yTTkgNWEyIDIgMCAwMDIgMmgyYTIgMiAwIDAwMi0yTTkgNWEyIDIgMCAwMTItMmgyYTIgMiAwIDAxMiAybS02IDlsMiAyIDQtNFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2xpcGJvYXJkQ29weSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOCA1SDZhMiAyIDAgMDAtMiAydjEyYTIgMiAwIDAwMiAyaDEwYTIgMiAwIDAwMi0ydi0xTTggNWEyIDIgMCAwMDIgMmgyYTIgMiAwIDAwMi0yTTggNWEyIDIgMCAwMTItMmgyYTIgMiAwIDAxMiAybTAgMGgyYTIgMiAwIDAxMiAydjNtMiA0SDEwbTAgMGwzLTNtLTMgM2wzIDNcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNsaXBib2FyZExpc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTkgNUg3YTIgMiAwIDAwLTIgMnYxMmEyIDIgMCAwMDIgMmgxMGEyIDIgMCAwMDItMlY3YTIgMiAwIDAwLTItMmgtMk05IDVhMiAyIDAgMDAyIDJoMmEyIDIgMCAwMDItMk05IDVhMiAyIDAgMDEyLTJoMmEyIDIgMCAwMTIgMm0tMyA3aDNtLTMgNGgzbS02LTRoLjAxTTkgMTZoLjAxXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDbGlwYm9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTkgNUg3YTIgMiAwIDAwLTIgMnYxMmEyIDIgMCAwMDIgMmgxMGEyIDIgMCAwMDItMlY3YTIgMiAwIDAwLTItMmgtMk05IDVhMiAyIDAgMDAyIDJoMmEyIDIgMCAwMDItMk05IDVhMiAyIDAgMDEyLTJoMmEyIDIgMCAwMTIgMlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2xvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEyIDh2NGwzIDNtNi0zYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2xvdWREb3dubG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNyAxNmE0IDQgMCAwMS0uODgtNy45MDNBNSA1IDAgMTExNS45IDZMMTYgNmE1IDUgMCAwMTEgOS45TTkgMTlsMyAzbTAgMGwzLTNtLTMgM1YxMFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2xvdWRVcGxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTcgMTZhNCA0IDAgMDEtLjg4LTcuOTAzQTUgNSAwIDExMTUuOSA2TDE2IDZhNSA1IDAgMDExIDkuOU0xNSAxM2wtMy0zbTAgMGwtMyAzbTMtM3YxMlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2xvdWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTMgMTVhNCA0IDAgMDA0IDRoOWE1IDUgMCAxMC0uMS05Ljk5OSA1LjAwMiA1LjAwMiAwIDEwLTkuNzggMi4wOTZBNC4wMDEgNC4wMDEgMCAwMDMgMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMCAyMGw0LTE2bTQgNGw0IDQtNCA0TTYgMTZsLTQtNCA0LTRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNvZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTAuMzI1IDQuMzE3Yy40MjYtMS43NTYgMi45MjQtMS43NTYgMy4zNSAwYTEuNzI0IDEuNzI0IDAgMDAyLjU3MyAxLjA2NmMxLjU0My0uOTQgMy4zMS44MjYgMi4zNyAyLjM3YTEuNzI0IDEuNzI0IDAgMDAxLjA2NSAyLjU3MmMxLjc1Ni40MjYgMS43NTYgMi45MjQgMCAzLjM1YTEuNzI0IDEuNzI0IDAgMDAtMS4wNjYgMi41NzNjLjk0IDEuNTQzLS44MjYgMy4zMS0yLjM3IDIuMzdhMS43MjQgMS43MjQgMCAwMC0yLjU3MiAxLjA2NWMtLjQyNiAxLjc1Ni0yLjkyNCAxLjc1Ni0zLjM1IDBhMS43MjQgMS43MjQgMCAwMC0yLjU3My0xLjA2NmMtMS41NDMuOTQtMy4zMS0uODI2LTIuMzctMi4zN2ExLjcyNCAxLjcyNCAwIDAwLTEuMDY1LTIuNTcyYy0xLjc1Ni0uNDI2LTEuNzU2LTIuOTI0IDAtMy4zNWExLjcyNCAxLjcyNCAwIDAwMS4wNjYtMi41NzNjLS45NC0xLjU0My44MjYtMy4zMSAyLjM3LTIuMzcuOTk2LjYwOCAyLjI5Ni4wNyAyLjU3Mi0xLjA2NXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTUgMTJhMyAzIDAgMTEtNiAwIDMgMyAwIDAxNiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ29sbGVjdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTkgMTFINW0xNCAwYTIgMiAwIDAxMiAydjZhMiAyIDAgMDEtMiAySDVhMiAyIDAgMDEtMi0ydi02YTIgMiAwIDAxMi0ybTE0IDBWOWEyIDIgMCAwMC0yLTJNNSAxMVY5YTIgMiAwIDAxMi0ybTAgMFY1YTIgMiAwIDAxMi0yaDZhMiAyIDAgMDEyIDJ2Mk03IDdoMTBcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNvbG9yU3dhdGNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk03IDIxYTQgNCAwIDAxLTQtNFY1YTIgMiAwIDAxMi0yaDRhMiAyIDAgMDEyIDJ2MTJhNCA0IDAgMDEtNCA0em0wIDBoMTJhMiAyIDAgMDAyLTJ2LTRhMiAyIDAgMDAtMi0yaC0yLjM0M00xMSA3LjM0M2wxLjY1Ny0xLjY1N2EyIDIgMCAwMTIuODI4IDBsMi44MjkgMi44MjlhMiAyIDAgMDEwIDIuODI4bC04LjQ4NiA4LjQ4NU03IDE3aC4wMVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ3JlZGl0Q2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMyAxMGgxOE03IDE1aDFtNCAwaDFtLTcgNGgxMmEzIDMgMCAwMDMtM1Y4YTMgMyAwIDAwLTMtM0g2YTMgMyAwIDAwLTMgM3Y4YTMgMyAwIDAwMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ3ViZVRyYW5zcGFyZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNCAxMGwtMiAxbTAgMGwtMi0xbTIgMXYyLjVNMjAgN2wtMiAxbTItMWwtMi0xbTIgMXYyLjVNMTQgNGwtMi0xLTIgMU00IDdsMi0xTTQgN2wyIDFNNCA3djIuNU0xMiAyMWwtMi0xbTIgMWwyLTFtLTIgMXYtMi41TTYgMThsLTItMXYtMi41TTE4IDE4bDItMXYtMi41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDdWJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0yMCA3bC04LTQtOCA0bTE2IDBsLTggNG04LTR2MTBsLTggNG0wLTEwTDQgN204IDR2MTBNNCA3djEwbDggNFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ3VycmVuY3lCYW5nbGFkZXNoaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTEgMTFWOWEyIDIgMCAwMC0yLTJtMiA0djRhMiAyIDAgMTA0IDB2LTFtLTQtM0g5bTIgMGg0bTYgMWE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUN1cnJlbmN5RG9sbGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMiA4Yy0xLjY1NyAwLTMgLjg5NS0zIDJzMS4zNDMgMiAzIDIgMyAuODk1IDMgMi0xLjM0MyAyLTMgMm0wLThjMS4xMSAwIDIuMDguNDAyIDIuNTk5IDFNMTIgOFY3bTAgMXY4bTAgMHYxbTAtMWMtMS4xMSAwLTIuMDgtLjQwMi0yLjU5OS0xTTIxIDEyYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ3VycmVuY3lFdXJvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNC4xMjEgMTUuNTM2Yy0xLjE3MSAxLjk1Mi0zLjA3IDEuOTUyLTQuMjQyIDAtMS4xNzItMS45NTMtMS4xNzItNS4xMTkgMC03LjA3MiAxLjE3MS0xLjk1MiAzLjA3LTEuOTUyIDQuMjQyIDBNOCAxMC41aDRtLTQgM2g0bTktMS41YTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ3VycmVuY3lQb3VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTUgOWEyIDIgMCAxMC00IDB2NWEyIDIgMCAwMS0yIDJoNm0tNi00aDRtOCAwYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ3VycmVuY3lSdXBlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOSA4aDZtLTUgMGEzIDMgMCAxMTAgNkg5bDMgM20tMy02aDZtNiAxYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ3VycmVuY3lZZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTkgOGwzIDVtMCAwbDMtNW0tMyA1djRtLTMtNWg2bS02IDNoNm02LTNhOSA5IDAgMTEtMTggMCA5IDkgMCAwMTE4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDdXJzb3JDbGljayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTUgMTVsLTIgNUw5IDlsMTEgNC01IDJ6bTAgMGw1IDVNNy4xODggMi4yMzlsLjc3NyAyLjg5N001LjEzNiA3Ljk2NWwtMi44OTgtLjc3N00xMy45NSA0LjA1bC0yLjEyMiAyLjEyMm0tNS42NTcgNS42NTZsLTIuMTIgMi4xMjJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZURhdGFiYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk00IDd2MTBjMCAyLjIxIDMuNTgyIDQgOCA0czgtMS43OSA4LTRWN000IDdjMCAyLjIxIDMuNTgyIDQgOCA0czgtMS43OSA4LTRNNCA3YzAtMi4yMSAzLjU4Mi00IDgtNHM4IDEuNzkgOCA0bTAgNWMwIDIuMjEtMy41ODIgNC04IDRzLTgtMS43OS04LTRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZURlc2t0b3BDb21wdXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOS43NSAxN0w5IDIwbC0xIDFoOGwtMS0xLS43NS0zTTMgMTNoMThNNSAxN2gxNGEyIDIgMCAwMDItMlY1YTIgMiAwIDAwLTItMkg1YTIgMiAwIDAwLTIgMnYxMGEyIDIgMCAwMDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZURldmljZU1vYmlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTIgMThoLjAxTTggMjFoOGEyIDIgMCAwMDItMlY1YTIgMiAwIDAwLTItMkg4YTIgMiAwIDAwLTIgMnYxNGEyIDIgMCAwMDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZURldmljZVRhYmxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTIgMThoLjAxTTcgMjFoMTBhMiAyIDAgMDAyLTJWNWEyIDIgMCAwMC0yLTJIN2EyIDIgMCAwMC0yIDJ2MTRhMiAyIDAgMDAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVEb2N1bWVudEFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOSAxM2g2bS0zLTN2Nm01IDVIN2EyIDIgMCAwMS0yLTJWNWEyIDIgMCAwMTItMmg1LjU4NmExIDEgMCAwMS43MDcuMjkzbDUuNDE0IDUuNDE0YTEgMSAwIDAxLjI5My43MDdWMTlhMiAyIDAgMDEtMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRG9jdW1lbnREb3dubG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTIgMTB2Nm0wIDBsLTMtM20zIDNsMy0zbTIgOEg3YTIgMiAwIDAxLTItMlY1YTIgMiAwIDAxMi0yaDUuNTg2YTEgMSAwIDAxLjcwNy4yOTNsNS40MTQgNS40MTRhMSAxIDAgMDEuMjkzLjcwN1YxOWEyIDIgMCAwMS0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVEb2N1bWVudER1cGxpY2F0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOCA3djhhMiAyIDAgMDAyIDJoNk04IDdWNWEyIDIgMCAwMTItMmg0LjU4NmExIDEgMCAwMS43MDcuMjkzbDQuNDE0IDQuNDE0YTEgMSAwIDAxLjI5My43MDdWMTVhMiAyIDAgMDEtMiAyaC0yTTggN0g2YTIgMiAwIDAwLTIgMnYxMGEyIDIgMCAwMDIgMmg4YTIgMiAwIDAwMi0ydi0yXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVEb2N1bWVudFJlbW92ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOSAxM2g2bTIgOEg3YTIgMiAwIDAxLTItMlY1YTIgMiAwIDAxMi0yaDUuNTg2YTEgMSAwIDAxLjcwNy4yOTNsNS40MTQgNS40MTRhMSAxIDAgMDEuMjkzLjcwN1YxOWEyIDIgMCAwMS0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVEb2N1bWVudFJlcG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOSAxN3YtMm0zIDJ2LTRtMyA0di02bTIgMTBIN2EyIDIgMCAwMS0yLTJWNWEyIDIgMCAwMTItMmg1LjU4NmExIDEgMCAwMS43MDcuMjkzbDUuNDE0IDUuNDE0YTEgMSAwIDAxLjI5My43MDdWMTlhMiAyIDAgMDEtMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRG9jdW1lbnRTZWFyY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEwIDIxaDdhMiAyIDAgMDAyLTJWOS40MTRhMSAxIDAgMDAtLjI5My0uNzA3bC01LjQxNC01LjQxNEExIDEgMCAwMDEyLjU4NiAzSDdhMiAyIDAgMDAtMiAydjExbTAgNWw0Ljg3OS00Ljg3OW0wIDBhMyAzIDAgMTA0LjI0My00LjI0MiAzIDMgMCAwMC00LjI0MyA0LjI0MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZURvY3VtZW50VGV4dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOSAxMmg2bS02IDRoNm0yIDVIN2EyIDIgMCAwMS0yLTJWNWEyIDIgMCAwMTItMmg1LjU4NmExIDEgMCAwMS43MDcuMjkzbDUuNDE0IDUuNDE0YTEgMSAwIDAxLjI5My43MDdWMTlhMiAyIDAgMDEtMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRG9jdW1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTcgMjFoMTBhMiAyIDAgMDAyLTJWOS40MTRhMSAxIDAgMDAtLjI5My0uNzA3bC01LjQxNC01LjQxNEExIDEgMCAwMDEyLjU4NiAzSDdhMiAyIDAgMDAtMiAydjE0YTIgMiAwIDAwMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRG90c0NpcmNsZUhvcml6b250YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTggMTJoLjAxTTEyIDEyaC4wMU0xNiAxMmguMDFNMjEgMTJhOSA5IDAgMTEtMTggMCA5IDkgMCAwMTE4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVEb3RzSG9yaXpvbnRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNSAxMmguMDFNMTIgMTJoLjAxTTE5IDEyaC4wMU02IDEyYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptNyAwYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptNyAwYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZURvdHNWZXJ0aWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTIgNXYuMDFNMTIgMTJ2LjAxTTEyIDE5di4wMU0xMiA2YTEgMSAwIDExMC0yIDEgMSAwIDAxMCAyem0wIDdhMSAxIDAgMTEwLTIgMSAxIDAgMDEwIDJ6bTAgN2ExIDEgMCAxMTAtMiAxIDEgMCAwMTAgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZURvd25sb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk00IDE2djFhMyAzIDAgMDAzIDNoMTBhMyAzIDAgMDAzLTN2LTFtLTQtNGwtNCA0bTAgMGwtNC00bTQgNFY0XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVEdXBsaWNhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTggMTZINmEyIDIgMCAwMS0yLTJWNmEyIDIgMCAwMTItMmg4YTIgMiAwIDAxMiAydjJtLTYgMTJoOGEyIDIgMCAwMDItMnYtOGEyIDIgMCAwMC0yLTJoLThhMiAyIDAgMDAtMiAydjhhMiAyIDAgMDAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVFbW9qaUhhcHB5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNC44MjggMTQuODI4YTQgNCAwIDAxLTUuNjU2IDBNOSAxMGguMDFNMTUgMTBoLjAxTTIxIDEyYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRW1vamlTYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTkuMTcyIDE2LjE3MmE0IDQgMCAwMTUuNjU2IDBNOSAxMGguMDFNMTUgMTBoLjAxTTIxIDEyYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRXhjbGFtYXRpb25DaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEyIDh2NG0wIDRoLjAxTTIxIDEyYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRXhjbGFtYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEyIDl2Mm0wIDRoLjAxbS02LjkzOCA0aDEzLjg1NmMxLjU0IDAgMi41MDItMS42NjcgMS43MzItM0wxMy43MzIgNGMtLjc3LTEuMzMzLTIuNjk0LTEuMzMzLTMuNDY0IDBMMy4zNCAxNmMtLjc3IDEuMzMzLjE5MiAzIDEuNzMyIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVFeHRlcm5hbExpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEwIDZINmEyIDIgMCAwMC0yIDJ2MTBhMiAyIDAgMDAyIDJoMTBhMiAyIDAgMDAyLTJ2LTRNMTQgNGg2bTAgMHY2bTAtNkwxMCAxNFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRXllT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMy44NzUgMTguODI1QTEwLjA1IDEwLjA1IDAgMDExMiAxOWMtNC40NzggMC04LjI2OC0yLjk0My05LjU0My03YTkuOTcgOS45NyAwIDAxMS41NjMtMy4wMjltNS44NTguOTA4YTMgMyAwIDExNC4yNDMgNC4yNDNNOS44NzggOS44NzhsNC4yNDIgNC4yNDJNOS44OCA5Ljg4bC0zLjI5LTMuMjltNy41MzIgNy41MzJsMy4yOSAzLjI5TTMgM2wzLjU5IDMuNTltMCAwQTkuOTUzIDkuOTUzIDAgMDExMiA1YzQuNDc4IDAgOC4yNjggMi45NDMgOS41NDMgN2ExMC4wMjUgMTAuMDI1IDAgMDEtNC4xMzIgNS40MTFtMCAwTDIxIDIxXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVFeWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE1IDEyYTMgMyAwIDExLTYgMCAzIDMgMCAwMTYgMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMi40NTggMTJDMy43MzIgNy45NDMgNy41MjMgNSAxMiA1YzQuNDc4IDAgOC4yNjggMi45NDMgOS41NDIgNy0xLjI3NCA0LjA1Ny01LjA2NCA3LTkuNTQyIDctNC40NzcgMC04LjI2OC0yLjk0My05LjU0Mi03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRmFzdEZvcndhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTExLjkzMyAxMi44YTEgMSAwIDAwMC0xLjZMNi42IDcuMkExIDEgMCAwMDUgOHY4YTEgMSAwIDAwMS42LjhsNS4zMzMtNHpNMTkuOTMzIDEyLjhhMSAxIDAgMDAwLTEuNmwtNS4zMzMtNEExIDEgMCAwMDEzIDh2OGExIDEgMCAwMDEuNi44bDUuMzMzLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVGaWxtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk03IDR2MTZNMTcgNHYxNk0zIDhoNG0xMCAwaDRNMyAxMmgxOE0zIDE2aDRtMTAgMGg0TTQgMjBoMTZhMSAxIDAgMDAxLTFWNWExIDEgMCAwMC0xLTFINGExIDEgMCAwMC0xIDF2MTRhMSAxIDAgMDAxIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVGaWx0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTMgNGExIDEgMCAwMTEtMWgxNmExIDEgMCAwMTEgMXYyLjU4NmExIDEgMCAwMS0uMjkzLjcwN2wtNi40MTQgNi40MTRhMSAxIDAgMDAtLjI5My43MDdWMTdsLTQgNHYtNi41ODZhMSAxIDAgMDAtLjI5My0uNzA3TDMuMjkzIDcuMjkzQTEgMSAwIDAxMyA2LjU4NlY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRmluZ2VyUHJpbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEyIDExYzAgMy41MTctMS4wMDkgNi43OTktMi43NTMgOS41NzFtLTMuNDQtMi4wNGwuMDU0LS4wOUExMy45MTYgMTMuOTE2IDAgMDA4IDExYTQgNCAwIDExOCAwYzAgMS4wMTctLjA3IDIuMDE5LS4yMDMgM20tMi4xMTggNi44NDRBMjEuODggMjEuODggMCAwMDE1LjE3MSAxN20zLjgzOSAxLjEzMmMuNjQ1LTIuMjY2Ljk5LTQuNjU5Ljk5LTcuMTMyQTggOCAwIDAwOCA0LjA3TTMgMTUuMzY0Yy42NC0xLjMxOSAxLTIuOCAxLTQuMzY0IDAtMS40NTcuMzktMi44MjMgMS4wNy00XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVGaXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNy42NTcgMTguNjU3QTggOCAwIDAxNi4zNDMgNy4zNDNTNyA5IDkgMTBjMC0yIC41LTUgMi45ODYtN0MxNCA1IDE2LjA5IDUuNzc3IDE3LjY1NiA3LjM0M0E3Ljk3NSA3Ljk3NSAwIDAxMjAgMTNhNy45NzUgNy45NzUgMCAwMS0yLjM0MyA1LjY1N3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOS44NzkgMTYuMTIxQTMgMyAwIDEwMTIuMDE1IDExTDExIDE0SDljMCAuNzY4LjI5MyAxLjUzNi44NzkgMi4xMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVGbGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0zIDIxdi00bTAgMFY1YTIgMiAwIDAxMi0yaDYuNWwxIDFIMjFsLTMgNiAzIDZoLTguNWwtMS0xSDVhMiAyIDAgMDAtMiAyem05LTEzLjVWOVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRm9sZGVyQWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk05IDEzaDZtLTMtM3Y2bS05IDFWN2EyIDIgMCAwMTItMmg2bDIgMmg2YTIgMiAwIDAxMiAydjhhMiAyIDAgMDEtMiAySDVhMiAyIDAgMDEtMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRm9sZGVyRG93bmxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEyIDEwdjZtMCAwbC0zLTNtMyAzbDMtM00zIDE3VjdhMiAyIDAgMDEyLTJoNmwyIDJoNmEyIDIgMCAwMTIgMnY4YTIgMiAwIDAxLTIgMkg1YTIgMiAwIDAxLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUZvbGRlck9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTUgMTlhMiAyIDAgMDEtMi0yVjdhMiAyIDAgMDEyLTJoNGwyIDJoNGEyIDIgMCAwMTIgMnYxTTUgMTloMTRhMiAyIDAgMDAyLTJ2LTVhMiAyIDAgMDAtMi0ySDlhMiAyIDAgMDAtMiAydjVhMiAyIDAgMDEtMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRm9sZGVyUmVtb3ZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk05IDEzaDZNMyAxN1Y3YTIgMiAwIDAxMi0yaDZsMiAyaDZhMiAyIDAgMDEyIDJ2OGEyIDIgMCAwMS0yIDJINWEyIDIgMCAwMS0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVGb2xkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTMgN3YxMGEyIDIgMCAwMDIgMmgxNGEyIDIgMCAwMDItMlY5YTIgMiAwIDAwLTItMmgtNmwtMi0ySDVhMiAyIDAgMDAtMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lR2lmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTIgOHYxM20wLTEzVjZhMiAyIDAgMTEyIDJoLTJ6bTAgMFY1LjVBMi41IDIuNSAwIDEwOS41IDhIMTJ6bS03IDRoMTRNNSAxMmEyIDIgMCAxMTAtNGgxNGEyIDIgMCAxMTAgNE01IDEydjdhMiAyIDAgMDAyIDJoMTBhMiAyIDAgMDAyLTJ2LTdcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUdsb2JlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0yMSAxMmE5IDkgMCAwMS05IDltOS05YTkgOSAwIDAwLTktOW05IDlIM205IDlhOSA5IDAgMDEtOS05bTkgOWMxLjY1NyAwIDMtNC4wMyAzLTlzLTEuMzQzLTktMy05bTAgMThjLTEuNjU3IDAtMy00LjAzLTMtOXMxLjM0My05IDMtOW0tOSA5YTkgOSAwIDAxOS05XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVHbG9iZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMy4wNTUgMTFINWEyIDIgMCAwMTIgMnYxYTIgMiAwIDAwMiAyIDIgMiAwIDAxMiAydjIuOTQ1TTggMy45MzVWNS41QTIuNSAyLjUgMCAwMDEwLjUgOGguNWEyIDIgMCAwMTIgMiAyIDIgMCAxMDQgMCAyIDIgMCAwMTItMmgxLjA2NE0xNSAyMC40ODhWMThhMiAyIDAgMDEyLTJoMy4wNjRNMjEgMTJhOSA5IDAgMTEtMTggMCA5IDkgMCAwMTE4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVIYW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk03IDExLjVWMTRtMC0yLjV2LTZhMS41IDEuNSAwIDExMyAwbS0zIDZhMS41IDEuNSAwIDAwLTMgMHYyYTcuNSA3LjUgMCAwMDE1IDB2LTVhMS41IDEuNSAwIDAwLTMgMG0tNi0zVjExbTAtNS41di0xYTEuNSAxLjUgMCAwMTMgMHYxbTAgMFYxMW0wLTUuNWExLjUgMS41IDAgMDEzIDB2M20wIDBWMTFcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUhhc2h0YWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTcgMjBsNC0xNm0yIDE2bDQtMTZNNiA5aDE0TTQgMTVoMTRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUhlYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk00LjMxOCA2LjMxOGE0LjUgNC41IDAgMDAwIDYuMzY0TDEyIDIwLjM2NGw3LjY4Mi03LjY4MmE0LjUgNC41IDAgMDAtNi4zNjQtNi4zNjRMMTIgNy42MzZsLTEuMzE4LTEuMzE4YTQuNSA0LjUgMCAwMC02LjM2NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lSG9tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMyAxMmwyLTJtMCAwbDctNyA3IDdNNSAxMHYxMGExIDEgMCAwMDEgMWgzbTEwLTExbDIgMm0tMi0ydjEwYTEgMSAwIDAxLTEgMWgtM20tNiAwYTEgMSAwIDAwMS0xdi00YTEgMSAwIDAxMS0xaDJhMSAxIDAgMDExIDF2NGExIDEgMCAwMDEgMW0tNiAwaDZcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUlkZW50aWZpY2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMCA2SDVhMiAyIDAgMDAtMiAydjlhMiAyIDAgMDAyIDJoMTRhMiAyIDAgMDAyLTJWOGEyIDIgMCAwMC0yLTJoLTVtLTQgMFY1YTIgMiAwIDExNCAwdjFtLTQgMGEyIDIgMCAxMDQgMG0tNSA4YTIgMiAwIDEwMC00IDIgMiAwIDAwMCA0em0wIDBjMS4zMDYgMCAyLjQxNy44MzUgMi44MyAyTTkgMTRhMy4wMDEgMy4wMDEgMCAwMC0yLjgzIDJNMTUgMTFoM20tMyA0aDJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUluYm94SW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTggNEg2YTIgMiAwIDAwLTIgMnYxMmEyIDIgMCAwMDIgMmgxMmEyIDIgMCAwMDItMlY2YTIgMiAwIDAwLTItMmgtMm0tNC0xdjhtMCAwbDMtM20tMyAzTDkgOG0tNSA1aDIuNTg2YTEgMSAwIDAxLjcwNy4yOTNsMi40MTQgMi40MTRhMSAxIDAgMDAuNzA3LjI5M2gzLjE3MmExIDEgMCAwMC43MDctLjI5M2wyLjQxNC0yLjQxNGExIDEgMCAwMS43MDctLjI5M0gyMFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lSW5ib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTIwIDEzVjZhMiAyIDAgMDAtMi0ySDZhMiAyIDAgMDAtMiAydjdtMTYgMHY1YTIgMiAwIDAxLTIgMkg2YTIgMiAwIDAxLTItMnYtNW0xNiAwaC0yLjU4NmExIDEgMCAwMC0uNzA3LjI5M2wtMi40MTQgMi40MTRhMSAxIDAgMDEtLjcwNy4yOTNoLTMuMTcyYTEgMSAwIDAxLS43MDctLjI5M2wtMi40MTQtMi40MTRBMSAxIDAgMDA2LjU4NiAxM0g0XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVJbmZvcm1hdGlvbkNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTMgMTZoLTF2LTRoLTFtMS00aC4wMU0yMSAxMmE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUtleSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTUgN2EyIDIgMCAwMTIgMm00IDBhNiA2IDAgMDEtNy43NDMgNS43NDNMMTEgMTdIOXYySDd2Mkg0YTEgMSAwIDAxLTEtMXYtMi41ODZhMSAxIDAgMDEuMjkzLS43MDdsNS45NjQtNS45NjRBNiA2IDAgMTEyMSA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lTGlicmFyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOCAxNHYzbTQtM3YzbTQtM3YzTTMgMjFoMThNMyAxMGgxOE0zIDdsOS00IDkgNE00IDEwaDE2djExSDRWMTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVMaWdodEJ1bGIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTkuNjYzIDE3aDQuNjczTTEyIDN2MW02LjM2NCAxLjYzNmwtLjcwNy43MDdNMjEgMTJoLTFNNCAxMkgzbTMuMzQzLTUuNjU3bC0uNzA3LS43MDdtMi44MjggOS45YTUgNSAwIDExNy4wNzIgMGwtLjU0OC41NDdBMy4zNzQgMy4zNzQgMCAwMDE0IDE4LjQ2OVYxOWEyIDIgMCAxMS00IDB2LS41MzFjMC0uODk1LS4zNTYtMS43NTQtLjk4OC0yLjM4NmwtLjU0OC0uNTQ3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lTGlnaHRuaW5nQm9sdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTMgMTBWM0w0IDE0aDd2N2w5LTExaC03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lTGluayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTMuODI4IDEwLjE3MmE0IDQgMCAwMC01LjY1NiAwbC00IDRhNCA0IDAgMTA1LjY1NiA1LjY1NmwxLjEwMi0xLjEwMW0tLjc1OC00Ljg5OWE0IDQgMCAwMDUuNjU2IDBsNC00YTQgNCAwIDAwLTUuNjU2LTUuNjU2bC0xLjEgMS4xXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVMb2NhdGlvbk1hcmtlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTcuNjU3IDE2LjY1N0wxMy40MTQgMjAuOWExLjk5OCAxLjk5OCAwIDAxLTIuODI3IDBsLTQuMjQ0LTQuMjQzYTggOCAwIDExMTEuMzE0IDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE1IDExYTMgMyAwIDExLTYgMCAzIDMgMCAwMTYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUxvY2tDbG9zZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEyIDE1djJtLTYgNGgxMmEyIDIgMCAwMDItMnYtNmEyIDIgMCAwMC0yLTJINmEyIDIgMCAwMC0yIDJ2NmEyIDIgMCAwMDIgMnptMTAtMTBWN2E0IDQgMCAwMC04IDB2NGg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lTG9ja09wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTggMTFWN2E0IDQgMCAxMTggMG0tNCA4djJtLTYgNGgxMmEyIDIgMCAwMDItMnYtNmEyIDIgMCAwMC0yLTJINmEyIDIgMCAwMC0yIDJ2NmEyIDIgMCAwMDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUxvZ2luIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMSAxNmwtNC00bTAgMGw0LTRtLTQgNGgxNG0tNSA0djFhMyAzIDAgMDEtMyAzSDZhMyAzIDAgMDEtMy0zVjdhMyAzIDAgMDEzLTNoN2EzIDMgMCAwMTMgM3YxXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVMb2dvdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE3IDE2bDQtNG0wIDBsLTQtNG00IDRIN202IDR2MWEzIDMgMCAwMS0zIDNINmEzIDMgMCAwMS0zLTNWN2EzIDMgMCAwMTMtM2g0YTMgMyAwIDAxMyAzdjFcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZU1haWxPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0zIDE5di04LjkzYTIgMiAwIDAxLjg5LTEuNjY0bDctNC42NjZhMiAyIDAgMDEyLjIyIDBsNyA0LjY2NkEyIDIgMCAwMTIxIDEwLjA3VjE5TTMgMTlhMiAyIDAgMDAyIDJoMTRhMiAyIDAgMDAyLTJNMyAxOWw2Ljc1LTQuNU0yMSAxOWwtNi43NS00LjVNMyAxMGw2Ljc1IDQuNU0yMSAxMGwtNi43NSA0LjVtMCAwbC0xLjE0Ljc2YTIgMiAwIDAxLTIuMjIgMGwtMS4xNC0uNzZcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZU1haWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTMgOGw3Ljg5IDUuMjZhMiAyIDAgMDAyLjIyIDBMMjEgOE01IDE5aDE0YTIgMiAwIDAwMi0yVjdhMiAyIDAgMDAtMi0ySDVhMiAyIDAgMDAtMiAydjEwYTIgMiAwIDAwMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lTWFwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk05IDIwbC01LjQ0Ny0yLjcyNEExIDEgMCAwMTMgMTYuMzgyVjUuNjE4YTEgMSAwIDAxMS40NDctLjg5NEw5IDdtMCAxM2w2LTNtLTYgM1Y3bTYgMTBsNC41NTMgMi4yNzZBMSAxIDAgMDAyMSAxOC4zODJWNy42MThhMSAxIDAgMDAtLjU1My0uODk0TDE1IDRtMCAxM1Y0bTAgMEw5IDdcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZU1lbnVBbHQxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk00IDZoMTZNNCAxMmg4bS04IDZoMTZcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZU1lbnVBbHQyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk00IDZoMTZNNCAxMmgxNk00IDE4aDdcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZU1lbnVBbHQzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk00IDZoMTZNNCAxMmgxNm0tNyA2aDdcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZU1lbnVBbHQ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk00IDhoMTZNNCAxNmgxNlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lTWVudSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNCA2aDE2TTQgMTJoMTZNNCAxOGgxNlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lTWljcm9waG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTkgMTFhNyA3IDAgMDEtNyA3bTAgMGE3IDcgMCAwMS03LTdtNyA3djRtMCAwSDhtNCAwaDRtLTQtOGEzIDMgMCAwMS0zLTNWNWEzIDMgMCAxMTYgMHY2YTMgMyAwIDAxLTMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZU1pbnVzQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNSAxMkg5bTEyIDBhOSA5IDAgMTEtMTggMCA5IDkgMCAwMTE4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVNaW51c1NtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xOCAxMkg2XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMjAgMTJINFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lTW9vbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMjAuMzU0IDE1LjM1NEE5IDkgMCAwMTguNjQ2IDMuNjQ2IDkuMDAzIDkuMDAzIDAgMDAxMiAyMWE5LjAwMyA5LjAwMyAwIDAwOC4zNTQtNS42NDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVNdXNpY05vdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTkgMTlWNmwxMi0zdjEzTTkgMTljMCAxLjEwNS0xLjM0MyAyLTMgMnMtMy0uODk1LTMtMiAxLjM0My0yIDMtMiAzIC44OTUgMyAyem0xMi0zYzAgMS4xMDUtMS4zNDMgMi0zIDJzLTMtLjg5NS0zLTIgMS4zNDMtMiAzLTIgMyAuODk1IDMgMnpNOSAxMGwxMi0zXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVOZXdzcGFwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE5IDIwSDVhMiAyIDAgMDEtMi0yVjZhMiAyIDAgMDEyLTJoMTBhMiAyIDAgMDEyIDJ2MW0yIDEzYTIgMiAwIDAxLTItMlY3bTIgMTNhMiAyIDAgMDAyLTJWOWEyIDIgMCAwMC0yLTJoLTJtLTQtM0g5TTcgMTZoNk03IDhoNnY0SDdWOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZU9mZmljZUJ1aWxkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xOSAyMVY1YTIgMiAwIDAwLTItMkg3YTIgMiAwIDAwLTIgMnYxNm0xNCAwaDJtLTIgMGgtNW0tOSAwSDNtMiAwaDVNOSA3aDFtLTEgNGgxbTQtNGgxbS0xIDRoMW0tNSAxMHYtNWExIDEgMCAwMTEtMWgyYTEgMSAwIDAxMSAxdjVtLTQgMGg0XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVQYXBlckFpcnBsYW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMiAxOWw5IDItOS0xOC05IDE4IDktMnptMCAwdi04XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVQYXBlckNsaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE1LjE3MiA3bC02LjU4NiA2LjU4NmEyIDIgMCAxMDIuODI4IDIuODI4bDYuNDE0LTYuNTg2YTQgNCAwIDAwLTUuNjU2LTUuNjU2bC02LjQxNSA2LjU4NWE2IDYgMCAxMDguNDg2IDguNDg2TDIwLjUgMTNcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVBhdXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMCA5djZtNC02djZtNy0zYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lUGVuY2lsQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMSA1SDZhMiAyIDAgMDAtMiAydjExYTIgMiAwIDAwMiAyaDExYTIgMiAwIDAwMi0ydi01bS0xLjQxNC05LjQxNGEyIDIgMCAxMTIuODI4IDIuODI4TDExLjgyOCAxNUg5di0yLjgyOGw4LjU4Ni04LjU4NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVBlbmNpbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTUuMjMyIDUuMjMybDMuNTM2IDMuNTM2bS0yLjAzNi01LjAzNmEyLjUgMi41IDAgMTEzLjUzNiAzLjUzNkw2LjUgMjEuMDM2SDN2LTMuNTcyTDE2LjczMiAzLjczMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVBob25lSW5jb21pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTIxIDNsLTYgNm0wIDBWNG0wIDVoNU01IDNhMiAyIDAgMDAtMiAydjFjMCA4LjI4NCA2LjcxNiAxNSAxNSAxNWgxYTIgMiAwIDAwMi0ydi0zLjI4YTEgMSAwIDAwLS42ODQtLjk0OGwtNC40OTMtMS40OThhMSAxIDAgMDAtMS4yMS41MDJsLTEuMTMgMi4yNTdhMTEuMDQyIDExLjA0MiAwIDAxLTUuNTE2LTUuNTE3bDIuMjU3LTEuMTI4YTEgMSAwIDAwLjUwMi0xLjIxTDkuMjI4IDMuNjgzQTEgMSAwIDAwOC4yNzkgM0g1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lUGhvbmVNaXNzZWRDYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNiA4bDItMm0wIDBsMi0ybS0yIDJsLTItMm0yIDJsMiAyTTUgM2EyIDIgMCAwMC0yIDJ2MWMwIDguMjg0IDYuNzE2IDE1IDE1IDE1aDFhMiAyIDAgMDAyLTJ2LTMuMjhhMSAxIDAgMDAtLjY4NC0uOTQ4bC00LjQ5My0xLjQ5OGExIDEgMCAwMC0xLjIxLjUwMmwtMS4xMyAyLjI1N2ExMS4wNDIgMTEuMDQyIDAgMDEtNS41MTYtNS41MTdsMi4yNTctMS4xMjhhMSAxIDAgMDAuNTAyLTEuMjFMOS4yMjggMy42ODNBMSAxIDAgMDA4LjI3OSAzSDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVQaG9uZU91dGdvaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNiAzaDVtMCAwdjVtMC01bC02IDZNNSAzYTIgMiAwIDAwLTIgMnYxYzAgOC4yODQgNi43MTYgMTUgMTUgMTVoMWEyIDIgMCAwMDItMnYtMy4yOGExIDEgMCAwMC0uNjg0LS45NDhsLTQuNDkzLTEuNDk4YTEgMSAwIDAwLTEuMjEuNTAybC0xLjEzIDIuMjU3YTExLjA0MiAxMS4wNDIgMCAwMS01LjUxNi01LjUxN2wyLjI1Ny0xLjEyOGExIDEgMCAwMC41MDItMS4yMUw5LjIyOCAzLjY4M0ExIDEgMCAwMDguMjc5IDNINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVBob25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0zIDVhMiAyIDAgMDEyLTJoMy4yOGExIDEgMCAwMS45NDguNjg0bDEuNDk4IDQuNDkzYTEgMSAwIDAxLS41MDIgMS4yMWwtMi4yNTcgMS4xM2ExMS4wNDIgMTEuMDQyIDAgMDA1LjUxNiA1LjUxNmwxLjEzLTIuMjU3YTEgMSAwIDAxMS4yMS0uNTAybDQuNDkzIDEuNDk4YTEgMSAwIDAxLjY4NC45NDlWMTlhMiAyIDAgMDEtMiAyaC0xQzkuNzE2IDIxIDMgMTQuMjg0IDMgNlY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lUGhvdG9ncmFwaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNCAxNmw0LjU4Ni00LjU4NmEyIDIgMCAwMTIuODI4IDBMMTYgMTZtLTItMmwxLjU4Ni0xLjU4NmEyIDIgMCAwMTIuODI4IDBMMjAgMTRtLTYtNmguMDFNNiAyMGgxMmEyIDIgMCAwMDItMlY2YTIgMiAwIDAwLTItMkg2YTIgMiAwIDAwLTIgMnYxMmEyIDIgMCAwMDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVBsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE0Ljc1MiAxMS4xNjhsLTMuMTk3LTIuMTMyQTEgMSAwIDAwMTAgOS44N3Y0LjI2M2ExIDEgMCAwMDEuNTU1LjgzMmwzLjE5Ny0yLjEzMmExIDEgMCAwMDAtMS42NjR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTIxIDEyYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lUGx1c0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTIgOXYzbTAgMHYzbTAtM2gzbS0zIDBIOW0xMiAwYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lUGx1c1NtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMiA2djZtMCAwdjZtMC02aDZtLTYgMEg2XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMiA0djE2bTgtOEg0XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVQcmVzZW50YXRpb25DaGFydEJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOCAxM3YtMW00IDF2LTNtNCAzVjhNOCAyMWw0LTQgNCA0TTMgNGgxOE00IDRoMTZ2MTJhMSAxIDAgMDEtMSAxSDVhMSAxIDAgMDEtMS0xVjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVQcmVzZW50YXRpb25DaGFydExpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTcgMTJsMy0zIDMgMyA0LTRNOCAyMWw0LTQgNCA0TTMgNGgxOE00IDRoMTZ2MTJhMSAxIDAgMDEtMSAxSDVhMSAxIDAgMDEtMS0xVjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVQcmludGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNyAxN2gyYTIgMiAwIDAwMi0ydi00YTIgMiAwIDAwLTItMkg1YTIgMiAwIDAwLTIgMnY0YTIgMiAwIDAwMiAyaDJtMiA0aDZhMiAyIDAgMDAyLTJ2LTRhMiAyIDAgMDAtMi0ySDlhMiAyIDAgMDAtMiAydjRhMiAyIDAgMDAyIDJ6bTgtMTJWNWEyIDIgMCAwMC0yLTJIOWEyIDIgMCAwMC0yIDJ2NGgxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVB1enpsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTEgNGEyIDIgMCAxMTQgMHYxYTEgMSAwIDAwMSAxaDNhMSAxIDAgMDExIDF2M2ExIDEgMCAwMS0xIDFoLTFhMiAyIDAgMTAwIDRoMWExIDEgMCAwMTEgMXYzYTEgMSAwIDAxLTEgMWgtM2ExIDEgMCAwMS0xLTF2LTFhMiAyIDAgMTAtNCAwdjFhMSAxIDAgMDEtMSAxSDdhMSAxIDAgMDEtMS0xdi0zYTEgMSAwIDAwLTEtMUg0YTIgMiAwIDExMC00aDFhMSAxIDAgMDAxLTFWN2ExIDEgMCAwMTEtMWgzYTEgMSAwIDAwMS0xVjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVRcmNvZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEyIDR2MW02IDExaDJtLTYgMGgtMnY0bTAtMTF2M20wIDBoLjAxTTEyIDEyaDQuMDFNMTYgMjBoNE00IDEyaDRtMTIgMGguMDFNNSA4aDJhMSAxIDAgMDAxLTFWNWExIDEgMCAwMC0xLTFINWExIDEgMCAwMC0xIDF2MmExIDEgMCAwMDEgMXptMTIgMGgyYTEgMSAwIDAwMS0xVjVhMSAxIDAgMDAtMS0xaC0yYTEgMSAwIDAwLTEgMXYyYTEgMSAwIDAwMSAxek01IDIwaDJhMSAxIDAgMDAxLTF2LTJhMSAxIDAgMDAtMS0xSDVhMSAxIDAgMDAtMSAxdjJhMSAxIDAgMDAxIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVRdWVzdGlvbk1hcmtDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTguMjI4IDljLjU0OS0xLjE2NSAyLjAzLTIgMy43NzItMiAyLjIxIDAgNCAxLjM0MyA0IDMgMCAxLjQtMS4yNzggMi41NzUtMy4wMDYgMi45MDctLjU0Mi4xMDQtLjk5NC41NC0uOTk0IDEuMDkzbTAgM2guMDFNMjEgMTJhOSA5IDAgMTEtMTggMCA5IDkgMCAwMTE4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVSZWNlaXB0UmVmdW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNiAxNXYtMWE0IDQgMCAwMC00LTRIOG0wIDBsMyAzbS0zLTNsMy0zbTkgMTRWNWEyIDIgMCAwMC0yLTJINmEyIDIgMCAwMC0yIDJ2MTZsNC0yIDQgMiA0LTIgNCAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lUmVjZWlwdFRheCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOSAxNGw2LTZtLTUuNS41aC4wMW00Ljk5IDVoLjAxTTE5IDIxVjVhMiAyIDAgMDAtMi0ySDdhMiAyIDAgMDAtMiAydjE2bDMuNS0yIDMuNSAyIDMuNS0yIDMuNSAyek0xMCA4LjVhLjUuNSAwIDExLTEgMCAuNS41IDAgMDExIDB6bTUgNWEuNS41IDAgMTEtMSAwIC41LjUgMCAwMTEgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVJlZnJlc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTQgNHY1aC41ODJtMTUuMzU2IDJBOC4wMDEgOC4wMDEgMCAwMDQuNTgyIDltMCAwSDltMTEgMTF2LTVoLS41ODFtMCAwYTguMDAzIDguMDAzIDAgMDEtMTUuMzU3LTJtMTUuMzU3IDJIMTVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVJlcGx5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0zIDEwaDEwYTggOCAwIDAxOCA4djJNMyAxMGw2IDZtLTYtNmw2LTZcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVJld2luZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTIuMDY2IDExLjJhMSAxIDAgMDAwIDEuNmw1LjMzNCA0QTEgMSAwIDAwMTkgMTZWOGExIDEgMCAwMC0xLjYtLjhsLTUuMzMzIDR6TTQuMDY2IDExLjJhMSAxIDAgMDAwIDEuNmw1LjMzNCA0QTEgMSAwIDAwMTEgMTZWOGExIDEgMCAwMC0xLjYtLjhsLTUuMzM0IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVSc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTYgNWM3LjE4IDAgMTMgNS44MiAxMyAxM002IDExYTcgNyAwIDAxNyA3bS02IDBhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lU2F2ZUFzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNyAxNnYyYTIgMiAwIDAxLTIgMkg1YTIgMiAwIDAxLTItMnYtN2EyIDIgMCAwMTItMmgybTMtNEg5YTIgMiAwIDAwLTIgMnY3YTIgMiAwIDAwMiAyaDEwYTIgMiAwIDAwMi0yVjdhMiAyIDAgMDAtMi0yaC0xbS0xIDRsLTMgM20wIDBsLTMtM20zIDNWM1wifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lU2F2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOCA3SDVhMiAyIDAgMDAtMiAydjlhMiAyIDAgMDAyIDJoMTRhMiAyIDAgMDAyLTJWOWEyIDIgMCAwMC0yLTJoLTNtLTEgNGwtMyAzbTAgMGwtMy0zbTMgM1Y0XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVTY2FsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMyA2bDMgMW0wIDBsLTMgOWE1LjAwMiA1LjAwMiAwIDAwNi4wMDEgME02IDdsMyA5TTYgN2w2LTJtNiAybDMtMW0tMyAxbC0zIDlhNS4wMDIgNS4wMDIgMCAwMDYuMDAxIDBNMTggN2wzIDltLTMtOWwtNi0ybTAtMnYybTAgMTZWNW0wIDE2SDltMyAwaDNcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVNjaXNzb3JzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNC4xMjEgMTQuMTIxTDE5IDE5bS03LTdsNy03bS03IDdsLTIuODc5IDIuODc5TTEyIDEyTDkuMTIxIDkuMTIxbTAgNS43NThhMyAzIDAgMTAtNC4yNDMgNC4yNDMgMyAzIDAgMDA0LjI0My00LjI0M3ptMC01Ljc1OGEzIDMgMCAxMC00LjI0My00LjI0MyAzIDMgMCAwMDQuMjQzIDQuMjQzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lU2VhcmNoQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk04IDE2bDIuODc5LTIuODc5bTAgMGEzIDMgMCAxMDQuMjQzLTQuMjQyIDMgMyAwIDAwLTQuMjQzIDQuMjQyek0yMSAxMmE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVNlYXJjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMjEgMjFsLTYtNm0yLTVhNyA3IDAgMTEtMTQgMCA3IDcgMCAwMTE0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVTZWxlY3RvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOCA5bDQtNCA0IDRtMCA2bC00IDQtNC00XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVTZXJ2ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTUgMTJoMTRNNSAxMmEyIDIgMCAwMS0yLTJWNmEyIDIgMCAwMTItMmgxNGEyIDIgMCAwMTIgMnY0YTIgMiAwIDAxLTIgMk01IDEyYTIgMiAwIDAwLTIgMnY0YTIgMiAwIDAwMiAyaDE0YTIgMiAwIDAwMi0ydi00YTIgMiAwIDAwLTItMm0tMi00aC4wMU0xNyAxNmguMDFcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVNoYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk04LjY4NCAxMy4zNDJDOC44ODYgMTIuOTM4IDkgMTIuNDgyIDkgMTJjMC0uNDgyLS4xMTQtLjkzOC0uMzE2LTEuMzQybTAgMi42ODRhMyAzIDAgMTEwLTIuNjg0bTAgMi42ODRsNi42MzIgMy4zMTZtLTYuNjMyLTZsNi42MzItMy4zMTZtMCAwYTMgMyAwIDEwNS4zNjctMi42ODQgMyAzIDAgMDAtNS4zNjcgMi42ODR6bTAgOS4zMTZhMyAzIDAgMTA1LjM2OCAyLjY4NCAzIDMgMCAwMC01LjM2OC0yLjY4NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVNoaWVsZENoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk05IDEybDIgMiA0LTRtNS42MTgtNC4wMTZBMTEuOTU1IDExLjk1NSAwIDAxMTIgMi45NDRhMTEuOTU1IDExLjk1NSAwIDAxLTguNjE4IDMuMDRBMTIuMDIgMTIuMDIgMCAwMDMgOWMwIDUuNTkxIDMuODI0IDEwLjI5IDkgMTEuNjIyIDUuMTc2LTEuMzMyIDktNi4wMyA5LTExLjYyMiAwLTEuMDQyLS4xMzMtMi4wNTItLjM4Mi0zLjAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVNoaWVsZEV4Y2xhbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0yMC42MTggNS45ODRBMTEuOTU1IDExLjk1NSAwIDAxMTIgMi45NDRhMTEuOTU1IDExLjk1NSAwIDAxLTguNjE4IDMuMDRBMTIuMDIgMTIuMDIgMCAwMDMgOWMwIDUuNTkxIDMuODI0IDEwLjI5IDkgMTEuNjIyIDUuMTc2LTEuMzMyIDktNi4wMyA5LTExLjYyMiAwLTEuMDQyLS4xMzMtMi4wNTItLjM4Mi0zLjAxNnpNMTIgOXYybTAgNGguMDFcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVNob3BwaW5nQmFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNiAxMVY3YTQgNCAwIDAwLTggMHY0TTUgOWgxNGwxIDEySDRMNSA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lU2hvcHBpbmdDYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0zIDNoMmwuNCAyTTcgMTNoMTBsNC04SDUuNE03IDEzTDUuNCA1TTcgMTNsLTIuMjkzIDIuMjkzYy0uNjMuNjMtLjE4NCAxLjcwNy43MDcgMS43MDdIMTdtMCAwYTIgMiAwIDEwMCA0IDIgMiAwIDAwMC00em0tOCAyYTIgMiAwIDExLTQgMCAyIDIgMCAwMTQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVNvcnRBc2NlbmRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTMgNGgxM00zIDhoOW0tOSA0aDZtNCAwbDQtNG0wIDBsNCA0bS00LTR2MTJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVNvcnREZXNjZW5kaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0zIDRoMTNNMyA4aDltLTkgNGg5bTUtNHYxMm0wIDBsLTQtNG00IDRsNC00XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVTcGFya2xlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNSAzdjRNMyA1aDRNNiAxN3Y0bS0yLTJoNG01LTE2bDIuMjg2IDYuODU3TDIxIDEybC01LjcxNCAyLjE0M0wxMyAyMWwtMi4yODYtNi44NTdMNSAxMmw1LjcxNC0yLjE0M0wxMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lU3BlYWtlcnBob25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMSA1Ljg4MlYxOS4yNGExLjc2IDEuNzYgMCAwMS0zLjQxNy41OTJsLTIuMTQ3LTYuMTVNMTggMTNhMyAzIDAgMTAwLTZNNS40MzYgMTMuNjgzQTQuMDAxIDQuMDAxIDAgMDE3IDZoMS44MzJjNC4xIDAgNy42MjUtMS4yMzQgOS4xNjgtM3YxNGMtMS41NDMtMS43NjYtNS4wNjctMy05LjE2OC0zSDdhMy45ODggMy45ODggMCAwMS0xLjU2NC0uMzE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lU3RhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTEuMDQ5IDIuOTI3Yy4zLS45MjEgMS42MDMtLjkyMSAxLjkwMiAwbDEuNTE5IDQuNjc0YTEgMSAwIDAwLjk1LjY5aDQuOTE1Yy45NjkgMCAxLjM3MSAxLjI0LjU4OCAxLjgxbC0zLjk3NiAyLjg4OGExIDEgMCAwMC0uMzYzIDEuMTE4bDEuNTE4IDQuNjc0Yy4zLjkyMi0uNzU1IDEuNjg4LTEuNTM4IDEuMTE4bC0zLjk3Ni0yLjg4OGExIDEgMCAwMC0xLjE3NiAwbC0zLjk3NiAyLjg4OGMtLjc4My41Ny0xLjgzOC0uMTk3LTEuNTM4LTEuMTE4bDEuNTE4LTQuNjc0YTEgMSAwIDAwLS4zNjMtMS4xMThsLTMuOTc2LTIuODg4Yy0uNzg0LS41Ny0uMzgtMS44MS41ODgtMS44MWg0LjkxNGExIDEgMCAwMC45NTEtLjY5bDEuNTE5LTQuNjc0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lU3RhdHVzT2ZmbGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTguMzY0IDUuNjM2YTkgOSAwIDAxMCAxMi43MjhtMCAwbC0yLjgyOS0yLjgyOW0yLjgyOSAyLjgyOUwyMSAyMU0xNS41MzYgOC40NjRhNSA1IDAgMDEwIDcuMDcybTAgMGwtMi44MjktMi44MjltLTQuMjQzIDIuODI5YTQuOTc4IDQuOTc4IDAgMDEtMS40MTQtMi44M20tMS40MTQgNS42NThhOSA5IDAgMDEtMi4xNjctOS4yMzhtNy44MjQgMi4xNjdhMSAxIDAgMTExLjQxNCAxLjQxNG0tMS40MTQtMS40MTRMMyAzbTguMjkzIDguMjkzbDEuNDE0IDEuNDE0XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVTdGF0dXNPbmxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTUuNjM2IDE4LjM2NGE5IDkgMCAwMTAtMTIuNzI4bTEyLjcyOCAwYTkgOSAwIDAxMCAxMi43MjhtLTkuOS0yLjgyOWE1IDUgMCAwMTAtNy4wN203LjA3MiAwYTUgNSAwIDAxMCA3LjA3TTEzIDEyYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVN0b3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTIxIDEyYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk05IDEwYTEgMSAwIDAxMS0xaDRhMSAxIDAgMDExIDF2NGExIDEgMCAwMS0xIDFoLTRhMSAxIDAgMDEtMS0xdi00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lU3VuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMiAzdjFtMCAxNnYxbTktOWgtMU00IDEySDNtMTUuMzY0IDYuMzY0bC0uNzA3LS43MDdNNi4zNDMgNi4zNDNsLS43MDctLjcwN20xMi43MjggMGwtLjcwNy43MDdNNi4zNDMgMTcuNjU3bC0uNzA3LjcwN00xNiAxMmE0IDQgMCAxMS04IDAgNCA0IDAgMDE4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVTdXBwb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xOC4zNjQgNS42MzZsLTMuNTM2IDMuNTM2bTAgNS42NTZsMy41MzYgMy41MzZNOS4xNzIgOS4xNzJMNS42MzYgNS42MzZtMy41MzYgOS4xOTJsLTMuNTM2IDMuNTM2TTIxIDEyYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwem0tNSAwYTQgNCAwIDExLTggMCA0IDQgMCAwMTggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVN3aXRjaEhvcml6b250YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTggN2gxMm0wIDBsLTQtNG00IDRsLTQgNG0wIDZING0wIDBsNCA0bS00LTRsNC00XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVTd2l0Y2hWZXJ0aWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNyAxNlY0bTAgMEwzIDhtNC00bDQgNG02IDB2MTJtMCAwbDQtNG0tNCA0bC00LTRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVRhYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0zIDEwaDE4TTMgMTRoMThtLTktNHY4bS03IDBoMTRhMiAyIDAgMDAyLTJWOGEyIDIgMCAwMC0yLTJINWEyIDIgMCAwMC0yIDJ2OGEyIDIgMCAwMDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVRhZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNyA3aC4wMU03IDNoNWMuNTEyIDAgMS4wMjQuMTk1IDEuNDE0LjU4Nmw3IDdhMiAyIDAgMDEwIDIuODI4bC03IDdhMiAyIDAgMDEtMi44MjggMGwtNy03QTEuOTk0IDEuOTk0IDAgMDEzIDEyVjdhNCA0IDAgMDE0LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVUZW1wbGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNCA1YTEgMSAwIDAxMS0xaDE0YTEgMSAwIDAxMSAxdjJhMSAxIDAgMDEtMSAxSDVhMSAxIDAgMDEtMS0xVjV6TTQgMTNhMSAxIDAgMDExLTFoNmExIDEgMCAwMTEgMXY2YTEgMSAwIDAxLTEgMUg1YTEgMSAwIDAxLTEtMXYtNnpNMTYgMTNhMSAxIDAgMDExLTFoMmExIDEgMCAwMTEgMXY2YTEgMSAwIDAxLTEgMWgtMmExIDEgMCAwMS0xLTF2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVUZXJtaW5hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOCA5bDMgMy0zIDNtNSAwaDNNNSAyMGgxNGEyIDIgMCAwMDItMlY2YTIgMiAwIDAwLTItMkg1YTIgMiAwIDAwLTIgMnYxMmEyIDIgMCAwMDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVRodW1iRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTAgMTRINS4yMzZhMiAyIDAgMDEtMS43ODktMi44OTRsMy41LTdBMiAyIDAgMDE4LjczNiAzaDQuMDE4YTIgMiAwIDAxLjQ4NS4wNmwzLjc2Ljk0bS03IDEwdjVhMiAyIDAgMDAyIDJoLjA5NmMuNSAwIC45MDUtLjQwNS45MDUtLjkwNCAwLS43MTUuMjExLTEuNDEzLjYwOC0yLjAwOEwxNyAxM1Y0bS03IDEwaDJtNS0xMGgyYTIgMiAwIDAxMiAydjZhMiAyIDAgMDEtMiAyaC0yLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVRodW1iVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE0IDEwaDQuNzY0YTIgMiAwIDAxMS43ODkgMi44OTRsLTMuNSA3QTIgMiAwIDAxMTUuMjYzIDIxaC00LjAxN2MtLjE2MyAwLS4zMjYtLjAyLS40ODUtLjA2TDcgMjBtNy0xMFY1YTIgMiAwIDAwLTItMmgtLjA5NWMtLjUgMC0uOTA1LjQwNS0uOTA1LjkwNSAwIC43MTQtLjIxMSAxLjQxMi0uNjA4IDIuMDA2TDcgMTF2OW03LTEwaC0yTTcgMjBINWEyIDIgMCAwMS0yLTJ2LTZhMiAyIDAgMDEyLTJoMi41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVUaWNrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE1IDV2Mm0wIDR2Mm0wIDR2Mk01IDVhMiAyIDAgMDAtMiAydjNhMiAyIDAgMTEwIDR2M2EyIDIgMCAwMDIgMmgxNGEyIDIgMCAwMDItMnYtM2EyIDIgMCAxMTAtNFY3YTIgMiAwIDAwLTItMkg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lVHJhbnNsYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0zIDVoMTJNOSAzdjJtMS4wNDggOS41QTE4LjAyMiAxOC4wMjIgMCAwMTYuNDEyIDltNi4wODggOWg3TTExIDIxbDUtMTAgNSAxME0xMi43NTEgNUMxMS43ODMgMTAuNzcgOC4wNyAxNS42MSAzIDE4LjEyOVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lVHJhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE5IDdsLS44NjcgMTIuMTQyQTIgMiAwIDAxMTYuMTM4IDIxSDcuODYyYTIgMiAwIDAxLTEuOTk1LTEuODU4TDUgN201IDR2Nm00LTZ2Nm0xLTEwVjRhMSAxIDAgMDAtMS0xaC00YTEgMSAwIDAwLTEgMXYzTTQgN2gxNlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lVHJlbmRpbmdEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMyAxN2g4bTAgMFY5bTAgOGwtOC04LTQgNC02LTZcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVRyZW5kaW5nVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEzIDdoOG0wIDB2OG0wLThsLTggOC00LTQtNiA2XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVUcnVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxN2EyIDIgMCAxMS00IDAgMiAyIDAgMDE0IDB6TTE5IDE3YTIgMiAwIDExLTQgMCAyIDIgMCAwMTQgMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTMgMTZWNmExIDEgMCAwMC0xLTFINGExIDEgMCAwMC0xIDF2MTBhMSAxIDAgMDAxIDFoMW04LTFhMSAxIDAgMDEtMSAxSDltNC0xVjhhMSAxIDAgMDExLTFoMi41ODZhMSAxIDAgMDEuNzA3LjI5M2wzLjQxNCAzLjQxNGExIDEgMCAwMS4yOTMuNzA3VjE2YTEgMSAwIDAxLTEgMWgtMW0tNi0xYTEgMSAwIDAwMSAxaDFNNSAxN2EyIDIgMCAxMDQgMG0tNCAwYTIgMiAwIDExNCAwbTYgMGEyIDIgMCAxMDQgMG0tNCAwYTIgMiAwIDExNCAwXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVVcGxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTQgMTZ2MWEzIDMgMCAwMDMgM2gxMGEzIDMgMCAwMDMtM3YtMW0tNC04bC00LTRtMCAwTDggOG00LTR2MTJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVVzZXJBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE4IDl2M20wIDB2M20wLTNoM20tMyAwaC0zbS0yLTVhNCA0IDAgMTEtOCAwIDQgNCAwIDAxOCAwek0zIDIwYTYgNiAwIDAxMTIgMHYxSDN2LTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVVc2VyQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk01LjEyMSAxNy44MDRBMTMuOTM3IDEzLjkzNyAwIDAxMTIgMTZjMi41IDAgNC44NDcuNjU1IDYuODc5IDEuODA0TTE1IDEwYTMgMyAwIDExLTYgMCAzIDMgMCAwMTYgMHptNiAyYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lVXNlckdyb3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNyAyMGg1di0yYTMgMyAwIDAwLTUuMzU2LTEuODU3TTE3IDIwSDdtMTAgMHYtMmMwLS42NTYtLjEyNi0xLjI4My0uMzU2LTEuODU3TTcgMjBIMnYtMmEzIDMgMCAwMTUuMzU2LTEuODU3TTcgMjB2LTJjMC0uNjU2LjEyNi0xLjI4My4zNTYtMS44NTdtMCAwYTUuMDAyIDUuMDAyIDAgMDE5LjI4OCAwTTE1IDdhMyAzIDAgMTEtNiAwIDMgMyAwIDAxNiAwem02IDNhMiAyIDAgMTEtNCAwIDIgMiAwIDAxNCAwek03IDEwYTIgMiAwIDExLTQgMCAyIDIgMCAwMTQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVVzZXJSZW1vdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEzIDdhNCA0IDAgMTEtOCAwIDQgNCAwIDAxOCAwek05IDE0YTYgNiAwIDAwLTYgNnYxaDEydi0xYTYgNiAwIDAwLTYtNnpNMjEgMTJoLTZcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVVzZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE2IDdhNCA0IDAgMTEtOCAwIDQgNCAwIDAxOCAwek0xMiAxNGE3IDcgMCAwMC03IDdoMTRhNyA3IDAgMDAtNy03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lVXNlcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEyIDQuMzU0YTQgNCAwIDExMCA1LjI5Mk0xNSAyMUgzdi0xYTYgNiAwIDAxMTIgMHYxem0wIDBoNnYtMWE2IDYgMCAwMC05LTUuMTk3TTEzIDdhNCA0IDAgMTEtOCAwIDQgNCAwIDAxOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lVmFyaWFibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTQuODcxIDRBMTcuOTI2IDE3LjkyNiAwIDAwMyAxMmMwIDIuODc0LjY3MyA1LjU5IDEuODcxIDhtMTQuMTMgMGExNy45MjYgMTcuOTI2IDAgMDAxLjg3LThjMC0yLjg3NC0uNjczLTUuNTktMS44Ny04TTkgOWgxLjI0NmExIDEgMCAwMS45NjEuNzI1bDEuNTg2IDUuNTVhMSAxIDAgMDAuOTYxLjcyNUgxNW0xLTdoLS4wOGEyIDIgMCAwMC0xLjUxOS42OThMOS42IDE1LjMwMkEyIDIgMCAwMTguMDggMTZIOFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lVmlkZW9DYW1lcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE1IDEwbDQuNTUzLTIuMjc2QTEgMSAwIDAxMjEgOC42MTh2Ni43NjRhMSAxIDAgMDEtMS40NDcuODk0TDE1IDE0TTUgMThoOGEyIDIgMCAwMDItMlY4YTIgMiAwIDAwLTItMkg1YTIgMiAwIDAwLTIgMnY4YTIgMiAwIDAwMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lVmlld0JvYXJkcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOSAxN1Y3bTAgMTBhMiAyIDAgMDEtMiAySDVhMiAyIDAgMDEtMi0yVjdhMiAyIDAgMDEyLTJoMmEyIDIgMCAwMTIgMm0wIDEwYTIgMiAwIDAwMiAyaDJhMiAyIDAgMDAyLTJNOSA3YTIgMiAwIDAxMi0yaDJhMiAyIDAgMDEyIDJtMCAxMFY3bTAgMTBhMiAyIDAgMDAyIDJoMmEyIDIgMCAwMDItMlY3YTIgMiAwIDAwLTItMmgtMmEyIDIgMCAwMC0yIDJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVZpZXdHcmlkQWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNyAxNHY2bS0zLTNoNk02IDEwaDJhMiAyIDAgMDAyLTJWNmEyIDIgMCAwMC0yLTJINmEyIDIgMCAwMC0yIDJ2MmEyIDIgMCAwMDIgMnptMTAgMGgyYTIgMiAwIDAwMi0yVjZhMiAyIDAgMDAtMi0yaC0yYTIgMiAwIDAwLTIgMnYyYTIgMiAwIDAwMiAyek02IDIwaDJhMiAyIDAgMDAyLTJ2LTJhMiAyIDAgMDAtMi0ySDZhMiAyIDAgMDAtMiAydjJhMiAyIDAgMDAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVWaWV3R3JpZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNCA2YTIgMiAwIDAxMi0yaDJhMiAyIDAgMDEyIDJ2MmEyIDIgMCAwMS0yIDJINmEyIDIgMCAwMS0yLTJWNnpNMTQgNmEyIDIgMCAwMTItMmgyYTIgMiAwIDAxMiAydjJhMiAyIDAgMDEtMiAyaC0yYTIgMiAwIDAxLTItMlY2ek00IDE2YTIgMiAwIDAxMi0yaDJhMiAyIDAgMDEyIDJ2MmEyIDIgMCAwMS0yIDJINmEyIDIgMCAwMS0yLTJ2LTJ6TTE0IDE2YTIgMiAwIDAxMi0yaDJhMiAyIDAgMDEyIDJ2MmEyIDIgMCAwMS0yIDJoLTJhMiAyIDAgMDEtMi0ydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lVmlld0xpc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTQgNmgxNk00IDEwaDE2TTQgMTRoMTZNNCAxOGgxNlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lVm9sdW1lT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk01LjU4NiAxNUg0YTEgMSAwIDAxLTEtMXYtNGExIDEgMCAwMTEtMWgxLjU4Nmw0LjcwNy00LjcwN0MxMC45MjMgMy42NjMgMTIgNC4xMDkgMTIgNXYxNGMwIC44OTEtMS4wNzcgMS4zMzctMS43MDcuNzA3TDUuNTg2IDE1elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTcgMTRsMi0ybTAgMGwyLTJtLTIgMmwtMi0ybTIgMmwyIDJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVZvbHVtZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNS41MzYgOC40NjRhNSA1IDAgMDEwIDcuMDcybTIuODI4LTkuOWE5IDkgMCAwMTAgMTIuNzI4TTUuNTg2IDE1SDRhMSAxIDAgMDEtMS0xdi00YTEgMSAwIDAxMS0xaDEuNTg2bDQuNzA3LTQuNzA3QzEwLjkyMyAzLjY2MyAxMiA0LjEwOSAxMiA1djE0YzAgLjg5MS0xLjA3NyAxLjMzNy0xLjcwNy43MDdMNS41ODYgMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVXaWZpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk04LjExMSAxNi40MDRhNS41IDUuNSAwIDAxNy43NzggME0xMiAyMGguMDFtLTcuMDgtNy4wNzFjMy45MDQtMy45MDUgMTAuMjM2LTMuOTA1IDE0LjE0MSAwTTEuMzk0IDkuMzkzYzUuODU3LTUuODU3IDE1LjM1NS01Ljg1NyAyMS4yMTMgMFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lWENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTAgMTRsMi0ybTAgMGwyLTJtLTIgMmwtMi0ybTIgMmwyIDJtNy0yYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lWCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNiAxOEwxOCA2TTYgNmwxMiAxMlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lWm9vbUluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0yMSAyMWwtNi02bTItNWE3IDcgMCAxMS0xNCAwIDcgNyAwIDAxMTQgMHpNMTAgN3YzbTAgMHYzbTAtM2gzbS0zIDBIN1wifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lWm9vbU91dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMjEgMjFsLTYtNm0yLTVhNyA3IDAgMTEtMTQgMCA3IDcgMCAwMTE0IDB6TTEzIDEwSDdcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuIiwiY29uc3QgQ0xBU1NfUEFSVF9TRVBBUkFUT1IgPSAnLSc7XG5mdW5jdGlvbiBjcmVhdGVDbGFzc0dyb3VwVXRpbHMoY29uZmlnKSB7XG4gIGNvbnN0IGNsYXNzTWFwID0gY3JlYXRlQ2xhc3NNYXAoY29uZmlnKTtcbiAgY29uc3Qge1xuICAgIGNvbmZsaWN0aW5nQ2xhc3NHcm91cHMsXG4gICAgY29uZmxpY3RpbmdDbGFzc0dyb3VwTW9kaWZpZXJzXG4gIH0gPSBjb25maWc7XG4gIGZ1bmN0aW9uIGdldENsYXNzR3JvdXBJZChjbGFzc05hbWUpIHtcbiAgICBjb25zdCBjbGFzc1BhcnRzID0gY2xhc3NOYW1lLnNwbGl0KENMQVNTX1BBUlRfU0VQQVJBVE9SKTtcbiAgICAvLyBDbGFzc2VzIGxpa2UgYC1pbnNldC0xYCBwcm9kdWNlIGFuIGVtcHR5IHN0cmluZyBhcyBmaXJzdCBjbGFzc1BhcnQuIFdlIGFzc3VtZSB0aGF0IGNsYXNzZXMgZm9yIG5lZ2F0aXZlIHZhbHVlcyBhcmUgdXNlZCBjb3JyZWN0bHkgYW5kIHJlbW92ZSBpdCBmcm9tIGNsYXNzUGFydHMuXG4gICAgaWYgKGNsYXNzUGFydHNbMF0gPT09ICcnICYmIGNsYXNzUGFydHMubGVuZ3RoICE9PSAxKSB7XG4gICAgICBjbGFzc1BhcnRzLnNoaWZ0KCk7XG4gICAgfVxuICAgIHJldHVybiBnZXRHcm91cFJlY3Vyc2l2ZShjbGFzc1BhcnRzLCBjbGFzc01hcCkgfHwgZ2V0R3JvdXBJZEZvckFyYml0cmFyeVByb3BlcnR5KGNsYXNzTmFtZSk7XG4gIH1cbiAgZnVuY3Rpb24gZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzKGNsYXNzR3JvdXBJZCwgaGFzUG9zdGZpeE1vZGlmaWVyKSB7XG4gICAgY29uc3QgY29uZmxpY3RzID0gY29uZmxpY3RpbmdDbGFzc0dyb3Vwc1tjbGFzc0dyb3VwSWRdIHx8IFtdO1xuICAgIGlmIChoYXNQb3N0Zml4TW9kaWZpZXIgJiYgY29uZmxpY3RpbmdDbGFzc0dyb3VwTW9kaWZpZXJzW2NsYXNzR3JvdXBJZF0pIHtcbiAgICAgIHJldHVybiBbLi4uY29uZmxpY3RzLCAuLi5jb25mbGljdGluZ0NsYXNzR3JvdXBNb2RpZmllcnNbY2xhc3NHcm91cElkXV07XG4gICAgfVxuICAgIHJldHVybiBjb25mbGljdHM7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBnZXRDbGFzc0dyb3VwSWQsXG4gICAgZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzXG4gIH07XG59XG5mdW5jdGlvbiBnZXRHcm91cFJlY3Vyc2l2ZShjbGFzc1BhcnRzLCBjbGFzc1BhcnRPYmplY3QpIHtcbiAgaWYgKGNsYXNzUGFydHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGNsYXNzUGFydE9iamVjdC5jbGFzc0dyb3VwSWQ7XG4gIH1cbiAgY29uc3QgY3VycmVudENsYXNzUGFydCA9IGNsYXNzUGFydHNbMF07XG4gIGNvbnN0IG5leHRDbGFzc1BhcnRPYmplY3QgPSBjbGFzc1BhcnRPYmplY3QubmV4dFBhcnQuZ2V0KGN1cnJlbnRDbGFzc1BhcnQpO1xuICBjb25zdCBjbGFzc0dyb3VwRnJvbU5leHRDbGFzc1BhcnQgPSBuZXh0Q2xhc3NQYXJ0T2JqZWN0ID8gZ2V0R3JvdXBSZWN1cnNpdmUoY2xhc3NQYXJ0cy5zbGljZSgxKSwgbmV4dENsYXNzUGFydE9iamVjdCkgOiB1bmRlZmluZWQ7XG4gIGlmIChjbGFzc0dyb3VwRnJvbU5leHRDbGFzc1BhcnQpIHtcbiAgICByZXR1cm4gY2xhc3NHcm91cEZyb21OZXh0Q2xhc3NQYXJ0O1xuICB9XG4gIGlmIChjbGFzc1BhcnRPYmplY3QudmFsaWRhdG9ycy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IGNsYXNzUmVzdCA9IGNsYXNzUGFydHMuam9pbihDTEFTU19QQVJUX1NFUEFSQVRPUik7XG4gIHJldHVybiBjbGFzc1BhcnRPYmplY3QudmFsaWRhdG9ycy5maW5kKCh7XG4gICAgdmFsaWRhdG9yXG4gIH0pID0+IHZhbGlkYXRvcihjbGFzc1Jlc3QpKT8uY2xhc3NHcm91cElkO1xufVxuY29uc3QgYXJiaXRyYXJ5UHJvcGVydHlSZWdleCA9IC9eXFxbKC4rKVxcXSQvO1xuZnVuY3Rpb24gZ2V0R3JvdXBJZEZvckFyYml0cmFyeVByb3BlcnR5KGNsYXNzTmFtZSkge1xuICBpZiAoYXJiaXRyYXJ5UHJvcGVydHlSZWdleC50ZXN0KGNsYXNzTmFtZSkpIHtcbiAgICBjb25zdCBhcmJpdHJhcnlQcm9wZXJ0eUNsYXNzTmFtZSA9IGFyYml0cmFyeVByb3BlcnR5UmVnZXguZXhlYyhjbGFzc05hbWUpWzFdO1xuICAgIGNvbnN0IHByb3BlcnR5ID0gYXJiaXRyYXJ5UHJvcGVydHlDbGFzc05hbWU/LnN1YnN0cmluZygwLCBhcmJpdHJhcnlQcm9wZXJ0eUNsYXNzTmFtZS5pbmRleE9mKCc6JykpO1xuICAgIGlmIChwcm9wZXJ0eSkge1xuICAgICAgLy8gSSB1c2UgdHdvIGRvdHMgaGVyZSBiZWNhdXNlIG9uZSBkb3QgaXMgdXNlZCBhcyBwcmVmaXggZm9yIGNsYXNzIGdyb3VwcyBpbiBwbHVnaW5zXG4gICAgICByZXR1cm4gJ2FyYml0cmFyeS4uJyArIHByb3BlcnR5O1xuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBFeHBvcnRlZCBmb3IgdGVzdGluZyBvbmx5XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUNsYXNzTWFwKGNvbmZpZykge1xuICBjb25zdCB7XG4gICAgdGhlbWUsXG4gICAgcHJlZml4XG4gIH0gPSBjb25maWc7XG4gIGNvbnN0IGNsYXNzTWFwID0ge1xuICAgIG5leHRQYXJ0OiBuZXcgTWFwKCksXG4gICAgdmFsaWRhdG9yczogW11cbiAgfTtcbiAgY29uc3QgcHJlZml4ZWRDbGFzc0dyb3VwRW50cmllcyA9IGdldFByZWZpeGVkQ2xhc3NHcm91cEVudHJpZXMoT2JqZWN0LmVudHJpZXMoY29uZmlnLmNsYXNzR3JvdXBzKSwgcHJlZml4KTtcbiAgcHJlZml4ZWRDbGFzc0dyb3VwRW50cmllcy5mb3JFYWNoKChbY2xhc3NHcm91cElkLCBjbGFzc0dyb3VwXSkgPT4ge1xuICAgIHByb2Nlc3NDbGFzc2VzUmVjdXJzaXZlbHkoY2xhc3NHcm91cCwgY2xhc3NNYXAsIGNsYXNzR3JvdXBJZCwgdGhlbWUpO1xuICB9KTtcbiAgcmV0dXJuIGNsYXNzTWFwO1xufVxuZnVuY3Rpb24gcHJvY2Vzc0NsYXNzZXNSZWN1cnNpdmVseShjbGFzc0dyb3VwLCBjbGFzc1BhcnRPYmplY3QsIGNsYXNzR3JvdXBJZCwgdGhlbWUpIHtcbiAgY2xhc3NHcm91cC5mb3JFYWNoKGNsYXNzRGVmaW5pdGlvbiA9PiB7XG4gICAgaWYgKHR5cGVvZiBjbGFzc0RlZmluaXRpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBjbGFzc1BhcnRPYmplY3RUb0VkaXQgPSBjbGFzc0RlZmluaXRpb24gPT09ICcnID8gY2xhc3NQYXJ0T2JqZWN0IDogZ2V0UGFydChjbGFzc1BhcnRPYmplY3QsIGNsYXNzRGVmaW5pdGlvbik7XG4gICAgICBjbGFzc1BhcnRPYmplY3RUb0VkaXQuY2xhc3NHcm91cElkID0gY2xhc3NHcm91cElkO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGNsYXNzRGVmaW5pdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaWYgKGlzVGhlbWVHZXR0ZXIoY2xhc3NEZWZpbml0aW9uKSkge1xuICAgICAgICBwcm9jZXNzQ2xhc3Nlc1JlY3Vyc2l2ZWx5KGNsYXNzRGVmaW5pdGlvbih0aGVtZSksIGNsYXNzUGFydE9iamVjdCwgY2xhc3NHcm91cElkLCB0aGVtZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNsYXNzUGFydE9iamVjdC52YWxpZGF0b3JzLnB1c2goe1xuICAgICAgICB2YWxpZGF0b3I6IGNsYXNzRGVmaW5pdGlvbixcbiAgICAgICAgY2xhc3NHcm91cElkXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgT2JqZWN0LmVudHJpZXMoY2xhc3NEZWZpbml0aW9uKS5mb3JFYWNoKChba2V5LCBjbGFzc0dyb3VwXSkgPT4ge1xuICAgICAgcHJvY2Vzc0NsYXNzZXNSZWN1cnNpdmVseShjbGFzc0dyb3VwLCBnZXRQYXJ0KGNsYXNzUGFydE9iamVjdCwga2V5KSwgY2xhc3NHcm91cElkLCB0aGVtZSk7XG4gICAgfSk7XG4gIH0pO1xufVxuZnVuY3Rpb24gZ2V0UGFydChjbGFzc1BhcnRPYmplY3QsIHBhdGgpIHtcbiAgbGV0IGN1cnJlbnRDbGFzc1BhcnRPYmplY3QgPSBjbGFzc1BhcnRPYmplY3Q7XG4gIHBhdGguc3BsaXQoQ0xBU1NfUEFSVF9TRVBBUkFUT1IpLmZvckVhY2gocGF0aFBhcnQgPT4ge1xuICAgIGlmICghY3VycmVudENsYXNzUGFydE9iamVjdC5uZXh0UGFydC5oYXMocGF0aFBhcnQpKSB7XG4gICAgICBjdXJyZW50Q2xhc3NQYXJ0T2JqZWN0Lm5leHRQYXJ0LnNldChwYXRoUGFydCwge1xuICAgICAgICBuZXh0UGFydDogbmV3IE1hcCgpLFxuICAgICAgICB2YWxpZGF0b3JzOiBbXVxuICAgICAgfSk7XG4gICAgfVxuICAgIGN1cnJlbnRDbGFzc1BhcnRPYmplY3QgPSBjdXJyZW50Q2xhc3NQYXJ0T2JqZWN0Lm5leHRQYXJ0LmdldChwYXRoUGFydCk7XG4gIH0pO1xuICByZXR1cm4gY3VycmVudENsYXNzUGFydE9iamVjdDtcbn1cbmZ1bmN0aW9uIGlzVGhlbWVHZXR0ZXIoZnVuYykge1xuICByZXR1cm4gZnVuYy5pc1RoZW1lR2V0dGVyO1xufVxuZnVuY3Rpb24gZ2V0UHJlZml4ZWRDbGFzc0dyb3VwRW50cmllcyhjbGFzc0dyb3VwRW50cmllcywgcHJlZml4KSB7XG4gIGlmICghcHJlZml4KSB7XG4gICAgcmV0dXJuIGNsYXNzR3JvdXBFbnRyaWVzO1xuICB9XG4gIHJldHVybiBjbGFzc0dyb3VwRW50cmllcy5tYXAoKFtjbGFzc0dyb3VwSWQsIGNsYXNzR3JvdXBdKSA9PiB7XG4gICAgY29uc3QgcHJlZml4ZWRDbGFzc0dyb3VwID0gY2xhc3NHcm91cC5tYXAoY2xhc3NEZWZpbml0aW9uID0+IHtcbiAgICAgIGlmICh0eXBlb2YgY2xhc3NEZWZpbml0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gcHJlZml4ICsgY2xhc3NEZWZpbml0aW9uO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBjbGFzc0RlZmluaXRpb24gPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoY2xhc3NEZWZpbml0aW9uKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gW3ByZWZpeCArIGtleSwgdmFsdWVdKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY2xhc3NEZWZpbml0aW9uO1xuICAgIH0pO1xuICAgIHJldHVybiBbY2xhc3NHcm91cElkLCBwcmVmaXhlZENsYXNzR3JvdXBdO1xuICB9KTtcbn1cblxuLy8gTFJVIGNhY2hlIGluc3BpcmVkIGZyb20gaGFzaGxydSAoaHR0cHM6Ly9naXRodWIuY29tL2RvbWluaWN0YXJyL2hhc2hscnUvYmxvYi92MS4wLjQvaW5kZXguanMpIGJ1dCBvYmplY3QgcmVwbGFjZWQgd2l0aCBNYXAgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZVxuZnVuY3Rpb24gY3JlYXRlTHJ1Q2FjaGUobWF4Q2FjaGVTaXplKSB7XG4gIGlmIChtYXhDYWNoZVNpemUgPCAxKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgc2V0OiAoKSA9PiB7fVxuICAgIH07XG4gIH1cbiAgbGV0IGNhY2hlU2l6ZSA9IDA7XG4gIGxldCBjYWNoZSA9IG5ldyBNYXAoKTtcbiAgbGV0IHByZXZpb3VzQ2FjaGUgPSBuZXcgTWFwKCk7XG4gIGZ1bmN0aW9uIHVwZGF0ZShrZXksIHZhbHVlKSB7XG4gICAgY2FjaGUuc2V0KGtleSwgdmFsdWUpO1xuICAgIGNhY2hlU2l6ZSsrO1xuICAgIGlmIChjYWNoZVNpemUgPiBtYXhDYWNoZVNpemUpIHtcbiAgICAgIGNhY2hlU2l6ZSA9IDA7XG4gICAgICBwcmV2aW91c0NhY2hlID0gY2FjaGU7XG4gICAgICBjYWNoZSA9IG5ldyBNYXAoKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBnZXQoa2V5KSB7XG4gICAgICBsZXQgdmFsdWUgPSBjYWNoZS5nZXQoa2V5KTtcbiAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmICgodmFsdWUgPSBwcmV2aW91c0NhY2hlLmdldChrZXkpKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHVwZGF0ZShrZXksIHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgIH0sXG4gICAgc2V0KGtleSwgdmFsdWUpIHtcbiAgICAgIGlmIChjYWNoZS5oYXMoa2V5KSkge1xuICAgICAgICBjYWNoZS5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1cGRhdGUoa2V5LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuY29uc3QgSU1QT1JUQU5UX01PRElGSUVSID0gJyEnO1xuZnVuY3Rpb24gY3JlYXRlUGFyc2VDbGFzc05hbWUoY29uZmlnKSB7XG4gIGNvbnN0IHtcbiAgICBzZXBhcmF0b3IsXG4gICAgZXhwZXJpbWVudGFsUGFyc2VDbGFzc05hbWVcbiAgfSA9IGNvbmZpZztcbiAgY29uc3QgaXNTZXBhcmF0b3JTaW5nbGVDaGFyYWN0ZXIgPSBzZXBhcmF0b3IubGVuZ3RoID09PSAxO1xuICBjb25zdCBmaXJzdFNlcGFyYXRvckNoYXJhY3RlciA9IHNlcGFyYXRvclswXTtcbiAgY29uc3Qgc2VwYXJhdG9yTGVuZ3RoID0gc2VwYXJhdG9yLmxlbmd0aDtcbiAgLy8gcGFyc2VDbGFzc05hbWUgaW5zcGlyZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9ibG9iL3YzLjIuMi9zcmMvdXRpbC9zcGxpdEF0VG9wTGV2ZWxPbmx5LmpzXG4gIGZ1bmN0aW9uIHBhcnNlQ2xhc3NOYW1lKGNsYXNzTmFtZSkge1xuICAgIGNvbnN0IG1vZGlmaWVycyA9IFtdO1xuICAgIGxldCBicmFja2V0RGVwdGggPSAwO1xuICAgIGxldCBtb2RpZmllclN0YXJ0ID0gMDtcbiAgICBsZXQgcG9zdGZpeE1vZGlmaWVyUG9zaXRpb247XG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGNsYXNzTmFtZS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGxldCBjdXJyZW50Q2hhcmFjdGVyID0gY2xhc3NOYW1lW2luZGV4XTtcbiAgICAgIGlmIChicmFja2V0RGVwdGggPT09IDApIHtcbiAgICAgICAgaWYgKGN1cnJlbnRDaGFyYWN0ZXIgPT09IGZpcnN0U2VwYXJhdG9yQ2hhcmFjdGVyICYmIChpc1NlcGFyYXRvclNpbmdsZUNoYXJhY3RlciB8fCBjbGFzc05hbWUuc2xpY2UoaW5kZXgsIGluZGV4ICsgc2VwYXJhdG9yTGVuZ3RoKSA9PT0gc2VwYXJhdG9yKSkge1xuICAgICAgICAgIG1vZGlmaWVycy5wdXNoKGNsYXNzTmFtZS5zbGljZShtb2RpZmllclN0YXJ0LCBpbmRleCkpO1xuICAgICAgICAgIG1vZGlmaWVyU3RhcnQgPSBpbmRleCArIHNlcGFyYXRvckxlbmd0aDtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY3VycmVudENoYXJhY3RlciA9PT0gJy8nKSB7XG4gICAgICAgICAgcG9zdGZpeE1vZGlmaWVyUG9zaXRpb24gPSBpbmRleDtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGN1cnJlbnRDaGFyYWN0ZXIgPT09ICdbJykge1xuICAgICAgICBicmFja2V0RGVwdGgrKztcbiAgICAgIH0gZWxzZSBpZiAoY3VycmVudENoYXJhY3RlciA9PT0gJ10nKSB7XG4gICAgICAgIGJyYWNrZXREZXB0aC0tO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBiYXNlQ2xhc3NOYW1lV2l0aEltcG9ydGFudE1vZGlmaWVyID0gbW9kaWZpZXJzLmxlbmd0aCA9PT0gMCA/IGNsYXNzTmFtZSA6IGNsYXNzTmFtZS5zdWJzdHJpbmcobW9kaWZpZXJTdGFydCk7XG4gICAgY29uc3QgaGFzSW1wb3J0YW50TW9kaWZpZXIgPSBiYXNlQ2xhc3NOYW1lV2l0aEltcG9ydGFudE1vZGlmaWVyLnN0YXJ0c1dpdGgoSU1QT1JUQU5UX01PRElGSUVSKTtcbiAgICBjb25zdCBiYXNlQ2xhc3NOYW1lID0gaGFzSW1wb3J0YW50TW9kaWZpZXIgPyBiYXNlQ2xhc3NOYW1lV2l0aEltcG9ydGFudE1vZGlmaWVyLnN1YnN0cmluZygxKSA6IGJhc2VDbGFzc05hbWVXaXRoSW1wb3J0YW50TW9kaWZpZXI7XG4gICAgY29uc3QgbWF5YmVQb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiA9IHBvc3RmaXhNb2RpZmllclBvc2l0aW9uICYmIHBvc3RmaXhNb2RpZmllclBvc2l0aW9uID4gbW9kaWZpZXJTdGFydCA/IHBvc3RmaXhNb2RpZmllclBvc2l0aW9uIC0gbW9kaWZpZXJTdGFydCA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgbW9kaWZpZXJzLFxuICAgICAgaGFzSW1wb3J0YW50TW9kaWZpZXIsXG4gICAgICBiYXNlQ2xhc3NOYW1lLFxuICAgICAgbWF5YmVQb3N0Zml4TW9kaWZpZXJQb3NpdGlvblxuICAgIH07XG4gIH1cbiAgaWYgKGV4cGVyaW1lbnRhbFBhcnNlQ2xhc3NOYW1lKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHBhcnNlQ2xhc3NOYW1lRXhwZXJpbWVudGFsKGNsYXNzTmFtZSkge1xuICAgICAgcmV0dXJuIGV4cGVyaW1lbnRhbFBhcnNlQ2xhc3NOYW1lKHtcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICBwYXJzZUNsYXNzTmFtZVxuICAgICAgfSk7XG4gICAgfTtcbiAgfVxuICByZXR1cm4gcGFyc2VDbGFzc05hbWU7XG59XG4vKipcbiAqIFNvcnRzIG1vZGlmaWVycyBhY2NvcmRpbmcgdG8gZm9sbG93aW5nIHNjaGVtYTpcbiAqIC0gUHJlZGVmaW5lZCBtb2RpZmllcnMgYXJlIHNvcnRlZCBhbHBoYWJldGljYWxseVxuICogLSBXaGVuIGFuIGFyYml0cmFyeSB2YXJpYW50IGFwcGVhcnMsIGl0IG11c3QgYmUgcHJlc2VydmVkIHdoaWNoIG1vZGlmaWVycyBhcmUgYmVmb3JlIGFuZCBhZnRlciBpdFxuICovXG5mdW5jdGlvbiBzb3J0TW9kaWZpZXJzKG1vZGlmaWVycykge1xuICBpZiAobW9kaWZpZXJzLmxlbmd0aCA8PSAxKSB7XG4gICAgcmV0dXJuIG1vZGlmaWVycztcbiAgfVxuICBjb25zdCBzb3J0ZWRNb2RpZmllcnMgPSBbXTtcbiAgbGV0IHVuc29ydGVkTW9kaWZpZXJzID0gW107XG4gIG1vZGlmaWVycy5mb3JFYWNoKG1vZGlmaWVyID0+IHtcbiAgICBjb25zdCBpc0FyYml0cmFyeVZhcmlhbnQgPSBtb2RpZmllclswXSA9PT0gJ1snO1xuICAgIGlmIChpc0FyYml0cmFyeVZhcmlhbnQpIHtcbiAgICAgIHNvcnRlZE1vZGlmaWVycy5wdXNoKC4uLnVuc29ydGVkTW9kaWZpZXJzLnNvcnQoKSwgbW9kaWZpZXIpO1xuICAgICAgdW5zb3J0ZWRNb2RpZmllcnMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdW5zb3J0ZWRNb2RpZmllcnMucHVzaChtb2RpZmllcik7XG4gICAgfVxuICB9KTtcbiAgc29ydGVkTW9kaWZpZXJzLnB1c2goLi4udW5zb3J0ZWRNb2RpZmllcnMuc29ydCgpKTtcbiAgcmV0dXJuIHNvcnRlZE1vZGlmaWVycztcbn1cbmZ1bmN0aW9uIGNyZWF0ZUNvbmZpZ1V0aWxzKGNvbmZpZykge1xuICByZXR1cm4ge1xuICAgIGNhY2hlOiBjcmVhdGVMcnVDYWNoZShjb25maWcuY2FjaGVTaXplKSxcbiAgICBwYXJzZUNsYXNzTmFtZTogY3JlYXRlUGFyc2VDbGFzc05hbWUoY29uZmlnKSxcbiAgICAuLi5jcmVhdGVDbGFzc0dyb3VwVXRpbHMoY29uZmlnKVxuICB9O1xufVxuY29uc3QgU1BMSVRfQ0xBU1NFU19SRUdFWCA9IC9cXHMrLztcbmZ1bmN0aW9uIG1lcmdlQ2xhc3NMaXN0KGNsYXNzTGlzdCwgY29uZmlnVXRpbHMpIHtcbiAgY29uc3Qge1xuICAgIHBhcnNlQ2xhc3NOYW1lLFxuICAgIGdldENsYXNzR3JvdXBJZCxcbiAgICBnZXRDb25mbGljdGluZ0NsYXNzR3JvdXBJZHNcbiAgfSA9IGNvbmZpZ1V0aWxzO1xuICAvKipcbiAgICogU2V0IG9mIGNsYXNzR3JvdXBJZHMgaW4gZm9sbG93aW5nIGZvcm1hdDpcbiAgICogYHtpbXBvcnRhbnRNb2RpZmllcn17dmFyaWFudE1vZGlmaWVyc317Y2xhc3NHcm91cElkfWBcbiAgICogQGV4YW1wbGUgJ2Zsb2F0J1xuICAgKiBAZXhhbXBsZSAnaG92ZXI6Zm9jdXM6YmctY29sb3InXG4gICAqIEBleGFtcGxlICdtZDohcHInXG4gICAqL1xuICBjb25zdCBjbGFzc0dyb3Vwc0luQ29uZmxpY3QgPSBuZXcgU2V0KCk7XG4gIHJldHVybiBjbGFzc0xpc3QudHJpbSgpLnNwbGl0KFNQTElUX0NMQVNTRVNfUkVHRVgpLm1hcChvcmlnaW5hbENsYXNzTmFtZSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgbW9kaWZpZXJzLFxuICAgICAgaGFzSW1wb3J0YW50TW9kaWZpZXIsXG4gICAgICBiYXNlQ2xhc3NOYW1lLFxuICAgICAgbWF5YmVQb3N0Zml4TW9kaWZpZXJQb3NpdGlvblxuICAgIH0gPSBwYXJzZUNsYXNzTmFtZShvcmlnaW5hbENsYXNzTmFtZSk7XG4gICAgbGV0IGhhc1Bvc3RmaXhNb2RpZmllciA9IEJvb2xlYW4obWF5YmVQb3N0Zml4TW9kaWZpZXJQb3NpdGlvbik7XG4gICAgbGV0IGNsYXNzR3JvdXBJZCA9IGdldENsYXNzR3JvdXBJZChoYXNQb3N0Zml4TW9kaWZpZXIgPyBiYXNlQ2xhc3NOYW1lLnN1YnN0cmluZygwLCBtYXliZVBvc3RmaXhNb2RpZmllclBvc2l0aW9uKSA6IGJhc2VDbGFzc05hbWUpO1xuICAgIGlmICghY2xhc3NHcm91cElkKSB7XG4gICAgICBpZiAoIWhhc1Bvc3RmaXhNb2RpZmllcikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGlzVGFpbHdpbmRDbGFzczogZmFsc2UsXG4gICAgICAgICAgb3JpZ2luYWxDbGFzc05hbWVcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGNsYXNzR3JvdXBJZCA9IGdldENsYXNzR3JvdXBJZChiYXNlQ2xhc3NOYW1lKTtcbiAgICAgIGlmICghY2xhc3NHcm91cElkKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaXNUYWlsd2luZENsYXNzOiBmYWxzZSxcbiAgICAgICAgICBvcmlnaW5hbENsYXNzTmFtZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgaGFzUG9zdGZpeE1vZGlmaWVyID0gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IHZhcmlhbnRNb2RpZmllciA9IHNvcnRNb2RpZmllcnMobW9kaWZpZXJzKS5qb2luKCc6Jyk7XG4gICAgY29uc3QgbW9kaWZpZXJJZCA9IGhhc0ltcG9ydGFudE1vZGlmaWVyID8gdmFyaWFudE1vZGlmaWVyICsgSU1QT1JUQU5UX01PRElGSUVSIDogdmFyaWFudE1vZGlmaWVyO1xuICAgIHJldHVybiB7XG4gICAgICBpc1RhaWx3aW5kQ2xhc3M6IHRydWUsXG4gICAgICBtb2RpZmllcklkLFxuICAgICAgY2xhc3NHcm91cElkLFxuICAgICAgb3JpZ2luYWxDbGFzc05hbWUsXG4gICAgICBoYXNQb3N0Zml4TW9kaWZpZXJcbiAgICB9O1xuICB9KS5yZXZlcnNlKClcbiAgLy8gTGFzdCBjbGFzcyBpbiBjb25mbGljdCB3aW5zLCBzbyB3ZSBuZWVkIHRvIGZpbHRlciBjb25mbGljdGluZyBjbGFzc2VzIGluIHJldmVyc2Ugb3JkZXIuXG4gIC5maWx0ZXIocGFyc2VkID0+IHtcbiAgICBpZiAoIXBhcnNlZC5pc1RhaWx3aW5kQ2xhc3MpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjb25zdCB7XG4gICAgICBtb2RpZmllcklkLFxuICAgICAgY2xhc3NHcm91cElkLFxuICAgICAgaGFzUG9zdGZpeE1vZGlmaWVyXG4gICAgfSA9IHBhcnNlZDtcbiAgICBjb25zdCBjbGFzc0lkID0gbW9kaWZpZXJJZCArIGNsYXNzR3JvdXBJZDtcbiAgICBpZiAoY2xhc3NHcm91cHNJbkNvbmZsaWN0LmhhcyhjbGFzc0lkKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjbGFzc0dyb3Vwc0luQ29uZmxpY3QuYWRkKGNsYXNzSWQpO1xuICAgIGdldENvbmZsaWN0aW5nQ2xhc3NHcm91cElkcyhjbGFzc0dyb3VwSWQsIGhhc1Bvc3RmaXhNb2RpZmllcikuZm9yRWFjaChncm91cCA9PiBjbGFzc0dyb3Vwc0luQ29uZmxpY3QuYWRkKG1vZGlmaWVySWQgKyBncm91cCkpO1xuICAgIHJldHVybiB0cnVlO1xuICB9KS5yZXZlcnNlKCkubWFwKHBhcnNlZCA9PiBwYXJzZWQub3JpZ2luYWxDbGFzc05hbWUpLmpvaW4oJyAnKTtcbn1cblxuLyoqXG4gKiBUaGUgY29kZSBpbiB0aGlzIGZpbGUgaXMgY29waWVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2x1a2VlZC9jbHN4IGFuZCBtb2RpZmllZCB0byBzdWl0IHRoZSBuZWVkcyBvZiB0YWlsd2luZC1tZXJnZSBiZXR0ZXIuXG4gKlxuICogU3BlY2lmaWNhbGx5OlxuICogLSBSdW50aW1lIGNvZGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbHVrZWVkL2Nsc3gvYmxvYi92MS4yLjEvc3JjL2luZGV4LmpzXG4gKiAtIFR5cGVTY3JpcHQgdHlwZXMgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbHVrZWVkL2Nsc3gvYmxvYi92MS4yLjEvY2xzeC5kLnRzXG4gKlxuICogT3JpZ2luYWwgY29kZSBoYXMgTUlUIGxpY2Vuc2U6IENvcHlyaWdodCAoYykgTHVrZSBFZHdhcmRzIDxsdWtlLmVkd2FyZHMwNUBnbWFpbC5jb20+IChsdWtlZWQuY29tKVxuICovXG5mdW5jdGlvbiB0d0pvaW4oKSB7XG4gIGxldCBpbmRleCA9IDA7XG4gIGxldCBhcmd1bWVudDtcbiAgbGV0IHJlc29sdmVkVmFsdWU7XG4gIGxldCBzdHJpbmcgPSAnJztcbiAgd2hpbGUgKGluZGV4IDwgYXJndW1lbnRzLmxlbmd0aCkge1xuICAgIGlmIChhcmd1bWVudCA9IGFyZ3VtZW50c1tpbmRleCsrXSkge1xuICAgICAgaWYgKHJlc29sdmVkVmFsdWUgPSB0b1ZhbHVlKGFyZ3VtZW50KSkge1xuICAgICAgICBzdHJpbmcgJiYgKHN0cmluZyArPSAnICcpO1xuICAgICAgICBzdHJpbmcgKz0gcmVzb2x2ZWRWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0cmluZztcbn1cbmZ1bmN0aW9uIHRvVmFsdWUobWl4KSB7XG4gIGlmICh0eXBlb2YgbWl4ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBtaXg7XG4gIH1cbiAgbGV0IHJlc29sdmVkVmFsdWU7XG4gIGxldCBzdHJpbmcgPSAnJztcbiAgZm9yIChsZXQgayA9IDA7IGsgPCBtaXgubGVuZ3RoOyBrKyspIHtcbiAgICBpZiAobWl4W2tdKSB7XG4gICAgICBpZiAocmVzb2x2ZWRWYWx1ZSA9IHRvVmFsdWUobWl4W2tdKSkge1xuICAgICAgICBzdHJpbmcgJiYgKHN0cmluZyArPSAnICcpO1xuICAgICAgICBzdHJpbmcgKz0gcmVzb2x2ZWRWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0cmluZztcbn1cbmZ1bmN0aW9uIGNyZWF0ZVRhaWx3aW5kTWVyZ2UoY3JlYXRlQ29uZmlnRmlyc3QsIC4uLmNyZWF0ZUNvbmZpZ1Jlc3QpIHtcbiAgbGV0IGNvbmZpZ1V0aWxzO1xuICBsZXQgY2FjaGVHZXQ7XG4gIGxldCBjYWNoZVNldDtcbiAgbGV0IGZ1bmN0aW9uVG9DYWxsID0gaW5pdFRhaWx3aW5kTWVyZ2U7XG4gIGZ1bmN0aW9uIGluaXRUYWlsd2luZE1lcmdlKGNsYXNzTGlzdCkge1xuICAgIGNvbnN0IGNvbmZpZyA9IGNyZWF0ZUNvbmZpZ1Jlc3QucmVkdWNlKChwcmV2aW91c0NvbmZpZywgY3JlYXRlQ29uZmlnQ3VycmVudCkgPT4gY3JlYXRlQ29uZmlnQ3VycmVudChwcmV2aW91c0NvbmZpZyksIGNyZWF0ZUNvbmZpZ0ZpcnN0KCkpO1xuICAgIGNvbmZpZ1V0aWxzID0gY3JlYXRlQ29uZmlnVXRpbHMoY29uZmlnKTtcbiAgICBjYWNoZUdldCA9IGNvbmZpZ1V0aWxzLmNhY2hlLmdldDtcbiAgICBjYWNoZVNldCA9IGNvbmZpZ1V0aWxzLmNhY2hlLnNldDtcbiAgICBmdW5jdGlvblRvQ2FsbCA9IHRhaWx3aW5kTWVyZ2U7XG4gICAgcmV0dXJuIHRhaWx3aW5kTWVyZ2UoY2xhc3NMaXN0KTtcbiAgfVxuICBmdW5jdGlvbiB0YWlsd2luZE1lcmdlKGNsYXNzTGlzdCkge1xuICAgIGNvbnN0IGNhY2hlZFJlc3VsdCA9IGNhY2hlR2V0KGNsYXNzTGlzdCk7XG4gICAgaWYgKGNhY2hlZFJlc3VsdCkge1xuICAgICAgcmV0dXJuIGNhY2hlZFJlc3VsdDtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gbWVyZ2VDbGFzc0xpc3QoY2xhc3NMaXN0LCBjb25maWdVdGlscyk7XG4gICAgY2FjaGVTZXQoY2xhc3NMaXN0LCByZXN1bHQpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uIGNhbGxUYWlsd2luZE1lcmdlKCkge1xuICAgIHJldHVybiBmdW5jdGlvblRvQ2FsbCh0d0pvaW4uYXBwbHkobnVsbCwgYXJndW1lbnRzKSk7XG4gIH07XG59XG5mdW5jdGlvbiBmcm9tVGhlbWUoa2V5KSB7XG4gIGNvbnN0IHRoZW1lR2V0dGVyID0gdGhlbWUgPT4gdGhlbWVba2V5XSB8fCBbXTtcbiAgdGhlbWVHZXR0ZXIuaXNUaGVtZUdldHRlciA9IHRydWU7XG4gIHJldHVybiB0aGVtZUdldHRlcjtcbn1cbmNvbnN0IGFyYml0cmFyeVZhbHVlUmVnZXggPSAvXlxcWyg/OihbYS16LV0rKTopPyguKylcXF0kL2k7XG5jb25zdCBmcmFjdGlvblJlZ2V4ID0gL15cXGQrXFwvXFxkKyQvO1xuY29uc3Qgc3RyaW5nTGVuZ3RocyA9IC8qI19fUFVSRV9fKi9uZXcgU2V0KFsncHgnLCAnZnVsbCcsICdzY3JlZW4nXSk7XG5jb25zdCB0c2hpcnRVbml0UmVnZXggPSAvXihcXGQrKFxcLlxcZCspPyk/KHhzfHNtfG1kfGxnfHhsKSQvO1xuY29uc3QgbGVuZ3RoVW5pdFJlZ2V4ID0gL1xcZCsoJXxweHxyP2VtfFtzZGxdP3YoW2h3aWJdfG1pbnxtYXgpfHB0fHBjfGlufGNtfG1tfGNhcHxjaHxleHxyP2xofGNxKHd8aHxpfGJ8bWlufG1heCkpfFxcYihjYWxjfG1pbnxtYXh8Y2xhbXApXFwoLitcXCl8XjAkLztcbmNvbnN0IGNvbG9yRnVuY3Rpb25SZWdleCA9IC9eKHJnYmE/fGhzbGE/fGh3Ynwob2spPyhsYWJ8bGNoKSlcXCguK1xcKSQvO1xuLy8gU2hhZG93IGFsd2F5cyBiZWdpbnMgd2l0aCB4IGFuZCB5IG9mZnNldCBzZXBhcmF0ZWQgYnkgdW5kZXJzY29yZSBvcHRpb25hbGx5IHByZXBlbmRlZCBieSBpbnNldFxuY29uc3Qgc2hhZG93UmVnZXggPSAvXihpbnNldF8pPy0/KChcXGQrKT9cXC4/KFxcZCspW2Etel0rfDApXy0/KChcXGQrKT9cXC4/KFxcZCspW2Etel0rfDApLztcbmNvbnN0IGltYWdlUmVnZXggPSAvXih1cmx8aW1hZ2V8aW1hZ2Utc2V0fGNyb3NzLWZhZGV8ZWxlbWVudHwocmVwZWF0aW5nLSk/KGxpbmVhcnxyYWRpYWx8Y29uaWMpLWdyYWRpZW50KVxcKC4rXFwpJC87XG5mdW5jdGlvbiBpc0xlbmd0aCh2YWx1ZSkge1xuICByZXR1cm4gaXNOdW1iZXIodmFsdWUpIHx8IHN0cmluZ0xlbmd0aHMuaGFzKHZhbHVlKSB8fCBmcmFjdGlvblJlZ2V4LnRlc3QodmFsdWUpO1xufVxuZnVuY3Rpb24gaXNBcmJpdHJhcnlMZW5ndGgodmFsdWUpIHtcbiAgcmV0dXJuIGdldElzQXJiaXRyYXJ5VmFsdWUodmFsdWUsICdsZW5ndGgnLCBpc0xlbmd0aE9ubHkpO1xufVxuZnVuY3Rpb24gaXNOdW1iZXIodmFsdWUpIHtcbiAgcmV0dXJuIEJvb2xlYW4odmFsdWUpICYmICFOdW1iZXIuaXNOYU4oTnVtYmVyKHZhbHVlKSk7XG59XG5mdW5jdGlvbiBpc0FyYml0cmFyeU51bWJlcih2YWx1ZSkge1xuICByZXR1cm4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgJ251bWJlcicsIGlzTnVtYmVyKTtcbn1cbmZ1bmN0aW9uIGlzSW50ZWdlcih2YWx1ZSkge1xuICByZXR1cm4gQm9vbGVhbih2YWx1ZSkgJiYgTnVtYmVyLmlzSW50ZWdlcihOdW1iZXIodmFsdWUpKTtcbn1cbmZ1bmN0aW9uIGlzUGVyY2VudCh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUuZW5kc1dpdGgoJyUnKSAmJiBpc051bWJlcih2YWx1ZS5zbGljZSgwLCAtMSkpO1xufVxuZnVuY3Rpb24gaXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSkge1xuICByZXR1cm4gYXJiaXRyYXJ5VmFsdWVSZWdleC50ZXN0KHZhbHVlKTtcbn1cbmZ1bmN0aW9uIGlzVHNoaXJ0U2l6ZSh2YWx1ZSkge1xuICByZXR1cm4gdHNoaXJ0VW5pdFJlZ2V4LnRlc3QodmFsdWUpO1xufVxuY29uc3Qgc2l6ZUxhYmVscyA9IC8qI19fUFVSRV9fKi9uZXcgU2V0KFsnbGVuZ3RoJywgJ3NpemUnLCAncGVyY2VudGFnZSddKTtcbmZ1bmN0aW9uIGlzQXJiaXRyYXJ5U2l6ZSh2YWx1ZSkge1xuICByZXR1cm4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgc2l6ZUxhYmVscywgaXNOZXZlcik7XG59XG5mdW5jdGlvbiBpc0FyYml0cmFyeVBvc2l0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBnZXRJc0FyYml0cmFyeVZhbHVlKHZhbHVlLCAncG9zaXRpb24nLCBpc05ldmVyKTtcbn1cbmNvbnN0IGltYWdlTGFiZWxzID0gLyojX19QVVJFX18qL25ldyBTZXQoWydpbWFnZScsICd1cmwnXSk7XG5mdW5jdGlvbiBpc0FyYml0cmFyeUltYWdlKHZhbHVlKSB7XG4gIHJldHVybiBnZXRJc0FyYml0cmFyeVZhbHVlKHZhbHVlLCBpbWFnZUxhYmVscywgaXNJbWFnZSk7XG59XG5mdW5jdGlvbiBpc0FyYml0cmFyeVNoYWRvdyh2YWx1ZSkge1xuICByZXR1cm4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgJycsIGlzU2hhZG93KTtcbn1cbmZ1bmN0aW9uIGlzQW55KCkge1xuICByZXR1cm4gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGdldElzQXJiaXRyYXJ5VmFsdWUodmFsdWUsIGxhYmVsLCB0ZXN0VmFsdWUpIHtcbiAgY29uc3QgcmVzdWx0ID0gYXJiaXRyYXJ5VmFsdWVSZWdleC5leGVjKHZhbHVlKTtcbiAgaWYgKHJlc3VsdCkge1xuICAgIGlmIChyZXN1bHRbMV0pIHtcbiAgICAgIHJldHVybiB0eXBlb2YgbGFiZWwgPT09ICdzdHJpbmcnID8gcmVzdWx0WzFdID09PSBsYWJlbCA6IGxhYmVsLmhhcyhyZXN1bHRbMV0pO1xuICAgIH1cbiAgICByZXR1cm4gdGVzdFZhbHVlKHJlc3VsdFsyXSk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gaXNMZW5ndGhPbmx5KHZhbHVlKSB7XG4gIC8vIGBjb2xvckZ1bmN0aW9uUmVnZXhgIGNoZWNrIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGNvbG9yIGZ1bmN0aW9ucyBjYW4gaGF2ZSBwZXJjZW50YWdlcyBpbiB0aGVtIHdoaWNoIHdoaWNoIHdvdWxkIGJlIGluY29ycmVjdGx5IGNsYXNzaWZpZWQgYXMgbGVuZ3Rocy5cbiAgLy8gRm9yIGV4YW1wbGUsIGBoc2woMCAwJSAwJSlgIHdvdWxkIGJlIGNsYXNzaWZpZWQgYXMgYSBsZW5ndGggd2l0aG91dCB0aGlzIGNoZWNrLlxuICAvLyBJIGNvdWxkIGFsc28gdXNlIGxvb2tiZWhpbmQgYXNzZXJ0aW9uIGluIGBsZW5ndGhVbml0UmVnZXhgIGJ1dCB0aGF0IGlzbid0IHN1cHBvcnRlZCB3aWRlbHkgZW5vdWdoLlxuICByZXR1cm4gbGVuZ3RoVW5pdFJlZ2V4LnRlc3QodmFsdWUpICYmICFjb2xvckZ1bmN0aW9uUmVnZXgudGVzdCh2YWx1ZSk7XG59XG5mdW5jdGlvbiBpc05ldmVyKCkge1xuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBpc1NoYWRvdyh2YWx1ZSkge1xuICByZXR1cm4gc2hhZG93UmVnZXgudGVzdCh2YWx1ZSk7XG59XG5mdW5jdGlvbiBpc0ltYWdlKHZhbHVlKSB7XG4gIHJldHVybiBpbWFnZVJlZ2V4LnRlc3QodmFsdWUpO1xufVxuY29uc3QgdmFsaWRhdG9ycyA9IC8qI19fUFVSRV9fKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoe1xuICBfX3Byb3RvX186IG51bGwsXG4gIGlzQW55LFxuICBpc0FyYml0cmFyeUltYWdlLFxuICBpc0FyYml0cmFyeUxlbmd0aCxcbiAgaXNBcmJpdHJhcnlOdW1iZXIsXG4gIGlzQXJiaXRyYXJ5UG9zaXRpb24sXG4gIGlzQXJiaXRyYXJ5U2hhZG93LFxuICBpc0FyYml0cmFyeVNpemUsXG4gIGlzQXJiaXRyYXJ5VmFsdWUsXG4gIGlzSW50ZWdlcixcbiAgaXNMZW5ndGgsXG4gIGlzTnVtYmVyLFxuICBpc1BlcmNlbnQsXG4gIGlzVHNoaXJ0U2l6ZVxufSwgU3ltYm9sLnRvU3RyaW5nVGFnLCB7XG4gIHZhbHVlOiAnTW9kdWxlJ1xufSk7XG5mdW5jdGlvbiBnZXREZWZhdWx0Q29uZmlnKCkge1xuICBjb25zdCBjb2xvcnMgPSBmcm9tVGhlbWUoJ2NvbG9ycycpO1xuICBjb25zdCBzcGFjaW5nID0gZnJvbVRoZW1lKCdzcGFjaW5nJyk7XG4gIGNvbnN0IGJsdXIgPSBmcm9tVGhlbWUoJ2JsdXInKTtcbiAgY29uc3QgYnJpZ2h0bmVzcyA9IGZyb21UaGVtZSgnYnJpZ2h0bmVzcycpO1xuICBjb25zdCBib3JkZXJDb2xvciA9IGZyb21UaGVtZSgnYm9yZGVyQ29sb3InKTtcbiAgY29uc3QgYm9yZGVyUmFkaXVzID0gZnJvbVRoZW1lKCdib3JkZXJSYWRpdXMnKTtcbiAgY29uc3QgYm9yZGVyU3BhY2luZyA9IGZyb21UaGVtZSgnYm9yZGVyU3BhY2luZycpO1xuICBjb25zdCBib3JkZXJXaWR0aCA9IGZyb21UaGVtZSgnYm9yZGVyV2lkdGgnKTtcbiAgY29uc3QgY29udHJhc3QgPSBmcm9tVGhlbWUoJ2NvbnRyYXN0Jyk7XG4gIGNvbnN0IGdyYXlzY2FsZSA9IGZyb21UaGVtZSgnZ3JheXNjYWxlJyk7XG4gIGNvbnN0IGh1ZVJvdGF0ZSA9IGZyb21UaGVtZSgnaHVlUm90YXRlJyk7XG4gIGNvbnN0IGludmVydCA9IGZyb21UaGVtZSgnaW52ZXJ0Jyk7XG4gIGNvbnN0IGdhcCA9IGZyb21UaGVtZSgnZ2FwJyk7XG4gIGNvbnN0IGdyYWRpZW50Q29sb3JTdG9wcyA9IGZyb21UaGVtZSgnZ3JhZGllbnRDb2xvclN0b3BzJyk7XG4gIGNvbnN0IGdyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zID0gZnJvbVRoZW1lKCdncmFkaWVudENvbG9yU3RvcFBvc2l0aW9ucycpO1xuICBjb25zdCBpbnNldCA9IGZyb21UaGVtZSgnaW5zZXQnKTtcbiAgY29uc3QgbWFyZ2luID0gZnJvbVRoZW1lKCdtYXJnaW4nKTtcbiAgY29uc3Qgb3BhY2l0eSA9IGZyb21UaGVtZSgnb3BhY2l0eScpO1xuICBjb25zdCBwYWRkaW5nID0gZnJvbVRoZW1lKCdwYWRkaW5nJyk7XG4gIGNvbnN0IHNhdHVyYXRlID0gZnJvbVRoZW1lKCdzYXR1cmF0ZScpO1xuICBjb25zdCBzY2FsZSA9IGZyb21UaGVtZSgnc2NhbGUnKTtcbiAgY29uc3Qgc2VwaWEgPSBmcm9tVGhlbWUoJ3NlcGlhJyk7XG4gIGNvbnN0IHNrZXcgPSBmcm9tVGhlbWUoJ3NrZXcnKTtcbiAgY29uc3Qgc3BhY2UgPSBmcm9tVGhlbWUoJ3NwYWNlJyk7XG4gIGNvbnN0IHRyYW5zbGF0ZSA9IGZyb21UaGVtZSgndHJhbnNsYXRlJyk7XG4gIGNvbnN0IGdldE92ZXJzY3JvbGwgPSAoKSA9PiBbJ2F1dG8nLCAnY29udGFpbicsICdub25lJ107XG4gIGNvbnN0IGdldE92ZXJmbG93ID0gKCkgPT4gWydhdXRvJywgJ2hpZGRlbicsICdjbGlwJywgJ3Zpc2libGUnLCAnc2Nyb2xsJ107XG4gIGNvbnN0IGdldFNwYWNpbmdXaXRoQXV0b0FuZEFyYml0cmFyeSA9ICgpID0+IFsnYXV0bycsIGlzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmddO1xuICBjb25zdCBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSA9ICgpID0+IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nXTtcbiAgY29uc3QgZ2V0TGVuZ3RoV2l0aEVtcHR5QW5kQXJiaXRyYXJ5ID0gKCkgPT4gWycnLCBpc0xlbmd0aCwgaXNBcmJpdHJhcnlMZW5ndGhdO1xuICBjb25zdCBnZXROdW1iZXJXaXRoQXV0b0FuZEFyYml0cmFyeSA9ICgpID0+IFsnYXV0bycsIGlzTnVtYmVyLCBpc0FyYml0cmFyeVZhbHVlXTtcbiAgY29uc3QgZ2V0UG9zaXRpb25zID0gKCkgPT4gWydib3R0b20nLCAnY2VudGVyJywgJ2xlZnQnLCAnbGVmdC1ib3R0b20nLCAnbGVmdC10b3AnLCAncmlnaHQnLCAncmlnaHQtYm90dG9tJywgJ3JpZ2h0LXRvcCcsICd0b3AnXTtcbiAgY29uc3QgZ2V0TGluZVN0eWxlcyA9ICgpID0+IFsnc29saWQnLCAnZGFzaGVkJywgJ2RvdHRlZCcsICdkb3VibGUnLCAnbm9uZSddO1xuICBjb25zdCBnZXRCbGVuZE1vZGVzID0gKCkgPT4gWydub3JtYWwnLCAnbXVsdGlwbHknLCAnc2NyZWVuJywgJ292ZXJsYXknLCAnZGFya2VuJywgJ2xpZ2h0ZW4nLCAnY29sb3ItZG9kZ2UnLCAnY29sb3ItYnVybicsICdoYXJkLWxpZ2h0JywgJ3NvZnQtbGlnaHQnLCAnZGlmZmVyZW5jZScsICdleGNsdXNpb24nLCAnaHVlJywgJ3NhdHVyYXRpb24nLCAnY29sb3InLCAnbHVtaW5vc2l0eSddO1xuICBjb25zdCBnZXRBbGlnbiA9ICgpID0+IFsnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdiZXR3ZWVuJywgJ2Fyb3VuZCcsICdldmVubHknLCAnc3RyZXRjaCddO1xuICBjb25zdCBnZXRaZXJvQW5kRW1wdHkgPSAoKSA9PiBbJycsICcwJywgaXNBcmJpdHJhcnlWYWx1ZV07XG4gIGNvbnN0IGdldEJyZWFrcyA9ICgpID0+IFsnYXV0bycsICdhdm9pZCcsICdhbGwnLCAnYXZvaWQtcGFnZScsICdwYWdlJywgJ2xlZnQnLCAncmlnaHQnLCAnY29sdW1uJ107XG4gIGNvbnN0IGdldE51bWJlciA9ICgpID0+IFtpc051bWJlciwgaXNBcmJpdHJhcnlOdW1iZXJdO1xuICBjb25zdCBnZXROdW1iZXJBbmRBcmJpdHJhcnkgPSAoKSA9PiBbaXNOdW1iZXIsIGlzQXJiaXRyYXJ5VmFsdWVdO1xuICByZXR1cm4ge1xuICAgIGNhY2hlU2l6ZTogNTAwLFxuICAgIHNlcGFyYXRvcjogJzonLFxuICAgIHRoZW1lOiB7XG4gICAgICBjb2xvcnM6IFtpc0FueV0sXG4gICAgICBzcGFjaW5nOiBbaXNMZW5ndGgsIGlzQXJiaXRyYXJ5TGVuZ3RoXSxcbiAgICAgIGJsdXI6IFsnbm9uZScsICcnLCBpc1RzaGlydFNpemUsIGlzQXJiaXRyYXJ5VmFsdWVdLFxuICAgICAgYnJpZ2h0bmVzczogZ2V0TnVtYmVyKCksXG4gICAgICBib3JkZXJDb2xvcjogW2NvbG9yc10sXG4gICAgICBib3JkZXJSYWRpdXM6IFsnbm9uZScsICcnLCAnZnVsbCcsIGlzVHNoaXJ0U2l6ZSwgaXNBcmJpdHJhcnlWYWx1ZV0sXG4gICAgICBib3JkZXJTcGFjaW5nOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpLFxuICAgICAgYm9yZGVyV2lkdGg6IGdldExlbmd0aFdpdGhFbXB0eUFuZEFyYml0cmFyeSgpLFxuICAgICAgY29udHJhc3Q6IGdldE51bWJlcigpLFxuICAgICAgZ3JheXNjYWxlOiBnZXRaZXJvQW5kRW1wdHkoKSxcbiAgICAgIGh1ZVJvdGF0ZTogZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5KCksXG4gICAgICBpbnZlcnQ6IGdldFplcm9BbmRFbXB0eSgpLFxuICAgICAgZ2FwOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpLFxuICAgICAgZ3JhZGllbnRDb2xvclN0b3BzOiBbY29sb3JzXSxcbiAgICAgIGdyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zOiBbaXNQZXJjZW50LCBpc0FyYml0cmFyeUxlbmd0aF0sXG4gICAgICBpbnNldDogZ2V0U3BhY2luZ1dpdGhBdXRvQW5kQXJiaXRyYXJ5KCksXG4gICAgICBtYXJnaW46IGdldFNwYWNpbmdXaXRoQXV0b0FuZEFyYml0cmFyeSgpLFxuICAgICAgb3BhY2l0eTogZ2V0TnVtYmVyKCksXG4gICAgICBwYWRkaW5nOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpLFxuICAgICAgc2F0dXJhdGU6IGdldE51bWJlcigpLFxuICAgICAgc2NhbGU6IGdldE51bWJlcigpLFxuICAgICAgc2VwaWE6IGdldFplcm9BbmRFbXB0eSgpLFxuICAgICAgc2tldzogZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5KCksXG4gICAgICBzcGFjZTogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKSxcbiAgICAgIHRyYW5zbGF0ZTogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgIH0sXG4gICAgY2xhc3NHcm91cHM6IHtcbiAgICAgIC8vIExheW91dFxuICAgICAgLyoqXG4gICAgICAgKiBBc3BlY3QgUmF0aW9cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hc3BlY3QtcmF0aW9cbiAgICAgICAqL1xuICAgICAgYXNwZWN0OiBbe1xuICAgICAgICBhc3BlY3Q6IFsnYXV0bycsICdzcXVhcmUnLCAndmlkZW8nLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIENvbnRhaW5lclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2NvbnRhaW5lclxuICAgICAgICovXG4gICAgICBjb250YWluZXI6IFsnY29udGFpbmVyJ10sXG4gICAgICAvKipcbiAgICAgICAqIENvbHVtbnNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb2x1bW5zXG4gICAgICAgKi9cbiAgICAgIGNvbHVtbnM6IFt7XG4gICAgICAgIGNvbHVtbnM6IFtpc1RzaGlydFNpemVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQnJlYWsgQWZ0ZXJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9icmVhay1hZnRlclxuICAgICAgICovXG4gICAgICAnYnJlYWstYWZ0ZXInOiBbe1xuICAgICAgICAnYnJlYWstYWZ0ZXInOiBnZXRCcmVha3MoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJyZWFrIEJlZm9yZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JyZWFrLWJlZm9yZVxuICAgICAgICovXG4gICAgICAnYnJlYWstYmVmb3JlJzogW3tcbiAgICAgICAgJ2JyZWFrLWJlZm9yZSc6IGdldEJyZWFrcygpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQnJlYWsgSW5zaWRlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYnJlYWstaW5zaWRlXG4gICAgICAgKi9cbiAgICAgICdicmVhay1pbnNpZGUnOiBbe1xuICAgICAgICAnYnJlYWstaW5zaWRlJzogWydhdXRvJywgJ2F2b2lkJywgJ2F2b2lkLXBhZ2UnLCAnYXZvaWQtY29sdW1uJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3ggRGVjb3JhdGlvbiBCcmVha1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JveC1kZWNvcmF0aW9uLWJyZWFrXG4gICAgICAgKi9cbiAgICAgICdib3gtZGVjb3JhdGlvbic6IFt7XG4gICAgICAgICdib3gtZGVjb3JhdGlvbic6IFsnc2xpY2UnLCAnY2xvbmUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJveCBTaXppbmdcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3gtc2l6aW5nXG4gICAgICAgKi9cbiAgICAgIGJveDogW3tcbiAgICAgICAgYm94OiBbJ2JvcmRlcicsICdjb250ZW50J11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBEaXNwbGF5XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGlzcGxheVxuICAgICAgICovXG4gICAgICBkaXNwbGF5OiBbJ2Jsb2NrJywgJ2lubGluZS1ibG9jaycsICdpbmxpbmUnLCAnZmxleCcsICdpbmxpbmUtZmxleCcsICd0YWJsZScsICdpbmxpbmUtdGFibGUnLCAndGFibGUtY2FwdGlvbicsICd0YWJsZS1jZWxsJywgJ3RhYmxlLWNvbHVtbicsICd0YWJsZS1jb2x1bW4tZ3JvdXAnLCAndGFibGUtZm9vdGVyLWdyb3VwJywgJ3RhYmxlLWhlYWRlci1ncm91cCcsICd0YWJsZS1yb3ctZ3JvdXAnLCAndGFibGUtcm93JywgJ2Zsb3ctcm9vdCcsICdncmlkJywgJ2lubGluZS1ncmlkJywgJ2NvbnRlbnRzJywgJ2xpc3QtaXRlbScsICdoaWRkZW4nXSxcbiAgICAgIC8qKlxuICAgICAgICogRmxvYXRzXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmxvYXRcbiAgICAgICAqL1xuICAgICAgZmxvYXQ6IFt7XG4gICAgICAgIGZsb2F0OiBbJ3JpZ2h0JywgJ2xlZnQnLCAnbm9uZScsICdzdGFydCcsICdlbmQnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIENsZWFyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY2xlYXJcbiAgICAgICAqL1xuICAgICAgY2xlYXI6IFt7XG4gICAgICAgIGNsZWFyOiBbJ2xlZnQnLCAncmlnaHQnLCAnYm90aCcsICdub25lJywgJ3N0YXJ0JywgJ2VuZCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSXNvbGF0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvaXNvbGF0aW9uXG4gICAgICAgKi9cbiAgICAgIGlzb2xhdGlvbjogWydpc29sYXRlJywgJ2lzb2xhdGlvbi1hdXRvJ10sXG4gICAgICAvKipcbiAgICAgICAqIE9iamVjdCBGaXRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vYmplY3QtZml0XG4gICAgICAgKi9cbiAgICAgICdvYmplY3QtZml0JzogW3tcbiAgICAgICAgb2JqZWN0OiBbJ2NvbnRhaW4nLCAnY292ZXInLCAnZmlsbCcsICdub25lJywgJ3NjYWxlLWRvd24nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE9iamVjdCBQb3NpdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL29iamVjdC1wb3NpdGlvblxuICAgICAgICovXG4gICAgICAnb2JqZWN0LXBvc2l0aW9uJzogW3tcbiAgICAgICAgb2JqZWN0OiBbLi4uZ2V0UG9zaXRpb25zKCksIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcmZsb3dcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdmVyZmxvd1xuICAgICAgICovXG4gICAgICBvdmVyZmxvdzogW3tcbiAgICAgICAgb3ZlcmZsb3c6IGdldE92ZXJmbG93KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPdmVyZmxvdyBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcmZsb3dcbiAgICAgICAqL1xuICAgICAgJ292ZXJmbG93LXgnOiBbe1xuICAgICAgICAnb3ZlcmZsb3cteCc6IGdldE92ZXJmbG93KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPdmVyZmxvdyBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcmZsb3dcbiAgICAgICAqL1xuICAgICAgJ292ZXJmbG93LXknOiBbe1xuICAgICAgICAnb3ZlcmZsb3cteSc6IGdldE92ZXJmbG93KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPdmVyc2Nyb2xsIEJlaGF2aW9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcnNjcm9sbC1iZWhhdmlvclxuICAgICAgICovXG4gICAgICBvdmVyc2Nyb2xsOiBbe1xuICAgICAgICBvdmVyc2Nyb2xsOiBnZXRPdmVyc2Nyb2xsKClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPdmVyc2Nyb2xsIEJlaGF2aW9yIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdmVyc2Nyb2xsLWJlaGF2aW9yXG4gICAgICAgKi9cbiAgICAgICdvdmVyc2Nyb2xsLXgnOiBbe1xuICAgICAgICAnb3ZlcnNjcm9sbC14JzogZ2V0T3ZlcnNjcm9sbCgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcnNjcm9sbCBCZWhhdmlvciBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcnNjcm9sbC1iZWhhdmlvclxuICAgICAgICovXG4gICAgICAnb3ZlcnNjcm9sbC15JzogW3tcbiAgICAgICAgJ292ZXJzY3JvbGwteSc6IGdldE92ZXJzY3JvbGwoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBvc2l0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcG9zaXRpb25cbiAgICAgICAqL1xuICAgICAgcG9zaXRpb246IFsnc3RhdGljJywgJ2ZpeGVkJywgJ2Fic29sdXRlJywgJ3JlbGF0aXZlJywgJ3N0aWNreSddLFxuICAgICAgLyoqXG4gICAgICAgKiBUb3AgLyBSaWdodCAvIEJvdHRvbSAvIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3AtcmlnaHQtYm90dG9tLWxlZnRcbiAgICAgICAqL1xuICAgICAgaW5zZXQ6IFt7XG4gICAgICAgIGluc2V0OiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUmlnaHQgLyBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgICdpbnNldC14JzogW3tcbiAgICAgICAgJ2luc2V0LXgnOiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVG9wIC8gQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgICdpbnNldC15JzogW3tcbiAgICAgICAgJ2luc2V0LXknOiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3AtcmlnaHQtYm90dG9tLWxlZnRcbiAgICAgICAqL1xuICAgICAgc3RhcnQ6IFt7XG4gICAgICAgIHN0YXJ0OiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIGVuZDogW3tcbiAgICAgICAgZW5kOiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIHRvcDogW3tcbiAgICAgICAgdG9wOiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3AtcmlnaHQtYm90dG9tLWxlZnRcbiAgICAgICAqL1xuICAgICAgcmlnaHQ6IFt7XG4gICAgICAgIHJpZ2h0OiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIGJvdHRvbTogW3tcbiAgICAgICAgYm90dG9tOiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICBsZWZ0OiBbe1xuICAgICAgICBsZWZ0OiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVmlzaWJpbGl0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Zpc2liaWxpdHlcbiAgICAgICAqL1xuICAgICAgdmlzaWJpbGl0eTogWyd2aXNpYmxlJywgJ2ludmlzaWJsZScsICdjb2xsYXBzZSddLFxuICAgICAgLyoqXG4gICAgICAgKiBaLUluZGV4XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvei1pbmRleFxuICAgICAgICovXG4gICAgICB6OiBbe1xuICAgICAgICB6OiBbJ2F1dG8nLCBpc0ludGVnZXIsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8vIEZsZXhib3ggYW5kIEdyaWRcbiAgICAgIC8qKlxuICAgICAgICogRmxleCBCYXNpc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZsZXgtYmFzaXNcbiAgICAgICAqL1xuICAgICAgYmFzaXM6IFt7XG4gICAgICAgIGJhc2lzOiBnZXRTcGFjaW5nV2l0aEF1dG9BbmRBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEZsZXggRGlyZWN0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmxleC1kaXJlY3Rpb25cbiAgICAgICAqL1xuICAgICAgJ2ZsZXgtZGlyZWN0aW9uJzogW3tcbiAgICAgICAgZmxleDogWydyb3cnLCAncm93LXJldmVyc2UnLCAnY29sJywgJ2NvbC1yZXZlcnNlJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGbGV4IFdyYXBcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mbGV4LXdyYXBcbiAgICAgICAqL1xuICAgICAgJ2ZsZXgtd3JhcCc6IFt7XG4gICAgICAgIGZsZXg6IFsnd3JhcCcsICd3cmFwLXJldmVyc2UnLCAnbm93cmFwJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGbGV4XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmxleFxuICAgICAgICovXG4gICAgICBmbGV4OiBbe1xuICAgICAgICBmbGV4OiBbJzEnLCAnYXV0bycsICdpbml0aWFsJywgJ25vbmUnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEZsZXggR3Jvd1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZsZXgtZ3Jvd1xuICAgICAgICovXG4gICAgICBncm93OiBbe1xuICAgICAgICBncm93OiBnZXRaZXJvQW5kRW1wdHkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEZsZXggU2hyaW5rXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmxleC1zaHJpbmtcbiAgICAgICAqL1xuICAgICAgc2hyaW5rOiBbe1xuICAgICAgICBzaHJpbms6IGdldFplcm9BbmRFbXB0eSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3JkZXJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vcmRlclxuICAgICAgICovXG4gICAgICBvcmRlcjogW3tcbiAgICAgICAgb3JkZXI6IFsnZmlyc3QnLCAnbGFzdCcsICdub25lJywgaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgVGVtcGxhdGUgQ29sdW1uc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtdGVtcGxhdGUtY29sdW1uc1xuICAgICAgICovXG4gICAgICAnZ3JpZC1jb2xzJzogW3tcbiAgICAgICAgJ2dyaWQtY29scyc6IFtpc0FueV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIENvbHVtbiBTdGFydCAvIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtY29sdW1uXG4gICAgICAgKi9cbiAgICAgICdjb2wtc3RhcnQtZW5kJzogW3tcbiAgICAgICAgY29sOiBbJ2F1dG8nLCB7XG4gICAgICAgICAgc3BhbjogWydmdWxsJywgaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgICB9LCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgQ29sdW1uIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1jb2x1bW5cbiAgICAgICAqL1xuICAgICAgJ2NvbC1zdGFydCc6IFt7XG4gICAgICAgICdjb2wtc3RhcnQnOiBnZXROdW1iZXJXaXRoQXV0b0FuZEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBDb2x1bW4gRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1jb2x1bW5cbiAgICAgICAqL1xuICAgICAgJ2NvbC1lbmQnOiBbe1xuICAgICAgICAnY29sLWVuZCc6IGdldE51bWJlcldpdGhBdXRvQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIFRlbXBsYXRlIFJvd3NcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLXRlbXBsYXRlLXJvd3NcbiAgICAgICAqL1xuICAgICAgJ2dyaWQtcm93cyc6IFt7XG4gICAgICAgICdncmlkLXJvd3MnOiBbaXNBbnldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBSb3cgU3RhcnQgLyBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLXJvd1xuICAgICAgICovXG4gICAgICAncm93LXN0YXJ0LWVuZCc6IFt7XG4gICAgICAgIHJvdzogWydhdXRvJywge1xuICAgICAgICAgIHNwYW46IFtpc0ludGVnZXIsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICAgIH0sIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBSb3cgU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLXJvd1xuICAgICAgICovXG4gICAgICAncm93LXN0YXJ0JzogW3tcbiAgICAgICAgJ3Jvdy1zdGFydCc6IGdldE51bWJlcldpdGhBdXRvQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIFJvdyBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLXJvd1xuICAgICAgICovXG4gICAgICAncm93LWVuZCc6IFt7XG4gICAgICAgICdyb3ctZW5kJzogZ2V0TnVtYmVyV2l0aEF1dG9BbmRBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgQXV0byBGbG93XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1hdXRvLWZsb3dcbiAgICAgICAqL1xuICAgICAgJ2dyaWQtZmxvdyc6IFt7XG4gICAgICAgICdncmlkLWZsb3cnOiBbJ3JvdycsICdjb2wnLCAnZGVuc2UnLCAncm93LWRlbnNlJywgJ2NvbC1kZW5zZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBBdXRvIENvbHVtbnNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLWF1dG8tY29sdW1uc1xuICAgICAgICovXG4gICAgICAnYXV0by1jb2xzJzogW3tcbiAgICAgICAgJ2F1dG8tY29scyc6IFsnYXV0bycsICdtaW4nLCAnbWF4JywgJ2ZyJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIEF1dG8gUm93c1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtYXV0by1yb3dzXG4gICAgICAgKi9cbiAgICAgICdhdXRvLXJvd3MnOiBbe1xuICAgICAgICAnYXV0by1yb3dzJzogWydhdXRvJywgJ21pbicsICdtYXgnLCAnZnInLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdhcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dhcFxuICAgICAgICovXG4gICAgICBnYXA6IFt7XG4gICAgICAgIGdhcDogW2dhcF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHYXAgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dhcFxuICAgICAgICovXG4gICAgICAnZ2FwLXgnOiBbe1xuICAgICAgICAnZ2FwLXgnOiBbZ2FwXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdhcCBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ2FwXG4gICAgICAgKi9cbiAgICAgICdnYXAteSc6IFt7XG4gICAgICAgICdnYXAteSc6IFtnYXBdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSnVzdGlmeSBDb250ZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvanVzdGlmeS1jb250ZW50XG4gICAgICAgKi9cbiAgICAgICdqdXN0aWZ5LWNvbnRlbnQnOiBbe1xuICAgICAgICBqdXN0aWZ5OiBbJ25vcm1hbCcsIC4uLmdldEFsaWduKCldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSnVzdGlmeSBJdGVtc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2p1c3RpZnktaXRlbXNcbiAgICAgICAqL1xuICAgICAgJ2p1c3RpZnktaXRlbXMnOiBbe1xuICAgICAgICAnanVzdGlmeS1pdGVtcyc6IFsnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdzdHJldGNoJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBKdXN0aWZ5IFNlbGZcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9qdXN0aWZ5LXNlbGZcbiAgICAgICAqL1xuICAgICAgJ2p1c3RpZnktc2VsZic6IFt7XG4gICAgICAgICdqdXN0aWZ5LXNlbGYnOiBbJ2F1dG8nLCAnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdzdHJldGNoJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBBbGlnbiBDb250ZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYWxpZ24tY29udGVudFxuICAgICAgICovXG4gICAgICAnYWxpZ24tY29udGVudCc6IFt7XG4gICAgICAgIGNvbnRlbnQ6IFsnbm9ybWFsJywgLi4uZ2V0QWxpZ24oKSwgJ2Jhc2VsaW5lJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBBbGlnbiBJdGVtc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2FsaWduLWl0ZW1zXG4gICAgICAgKi9cbiAgICAgICdhbGlnbi1pdGVtcyc6IFt7XG4gICAgICAgIGl0ZW1zOiBbJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnYmFzZWxpbmUnLCAnc3RyZXRjaCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQWxpZ24gU2VsZlxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2FsaWduLXNlbGZcbiAgICAgICAqL1xuICAgICAgJ2FsaWduLXNlbGYnOiBbe1xuICAgICAgICBzZWxmOiBbJ2F1dG8nLCAnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdzdHJldGNoJywgJ2Jhc2VsaW5lJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQbGFjZSBDb250ZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGxhY2UtY29udGVudFxuICAgICAgICovXG4gICAgICAncGxhY2UtY29udGVudCc6IFt7XG4gICAgICAgICdwbGFjZS1jb250ZW50JzogWy4uLmdldEFsaWduKCksICdiYXNlbGluZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGxhY2UgSXRlbXNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wbGFjZS1pdGVtc1xuICAgICAgICovXG4gICAgICAncGxhY2UtaXRlbXMnOiBbe1xuICAgICAgICAncGxhY2UtaXRlbXMnOiBbJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnYmFzZWxpbmUnLCAnc3RyZXRjaCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGxhY2UgU2VsZlxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BsYWNlLXNlbGZcbiAgICAgICAqL1xuICAgICAgJ3BsYWNlLXNlbGYnOiBbe1xuICAgICAgICAncGxhY2Utc2VsZic6IFsnYXV0bycsICdzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ3N0cmV0Y2gnXVxuICAgICAgfV0sXG4gICAgICAvLyBTcGFjaW5nXG4gICAgICAvKipcbiAgICAgICAqIFBhZGRpbmdcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHA6IFt7XG4gICAgICAgIHA6IFtwYWRkaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBhZGRpbmcgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcHg6IFt7XG4gICAgICAgIHB4OiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHB5OiBbe1xuICAgICAgICBweTogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGFkZGluZyBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcHM6IFt7XG4gICAgICAgIHBzOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcGU6IFt7XG4gICAgICAgIHBlOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIFRvcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcHQ6IFt7XG4gICAgICAgIHB0OiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGFkZGluZ1xuICAgICAgICovXG4gICAgICBwcjogW3tcbiAgICAgICAgcHI6IFtwYWRkaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBhZGRpbmcgQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGFkZGluZ1xuICAgICAgICovXG4gICAgICBwYjogW3tcbiAgICAgICAgcGI6IFtwYWRkaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBhZGRpbmcgTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcGw6IFt7XG4gICAgICAgIHBsOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNYXJnaW5cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbTogW3tcbiAgICAgICAgbTogW21hcmdpbl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNYXJnaW4gWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBteDogW3tcbiAgICAgICAgbXg6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbXk6IFt7XG4gICAgICAgIG15OiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1hcmdpbiBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBtczogW3tcbiAgICAgICAgbXM6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBtZTogW3tcbiAgICAgICAgbWU6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIFRvcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBtdDogW3tcbiAgICAgICAgbXQ6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWFyZ2luXG4gICAgICAgKi9cbiAgICAgIG1yOiBbe1xuICAgICAgICBtcjogW21hcmdpbl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNYXJnaW4gQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWFyZ2luXG4gICAgICAgKi9cbiAgICAgIG1iOiBbe1xuICAgICAgICBtYjogW21hcmdpbl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNYXJnaW4gTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBtbDogW3tcbiAgICAgICAgbWw6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU3BhY2UgQmV0d2VlbiBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc3BhY2VcbiAgICAgICAqL1xuICAgICAgJ3NwYWNlLXgnOiBbe1xuICAgICAgICAnc3BhY2UteCc6IFtzcGFjZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTcGFjZSBCZXR3ZWVuIFggUmV2ZXJzZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NwYWNlXG4gICAgICAgKi9cbiAgICAgICdzcGFjZS14LXJldmVyc2UnOiBbJ3NwYWNlLXgtcmV2ZXJzZSddLFxuICAgICAgLyoqXG4gICAgICAgKiBTcGFjZSBCZXR3ZWVuIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zcGFjZVxuICAgICAgICovXG4gICAgICAnc3BhY2UteSc6IFt7XG4gICAgICAgICdzcGFjZS15JzogW3NwYWNlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNwYWNlIEJldHdlZW4gWSBSZXZlcnNlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc3BhY2VcbiAgICAgICAqL1xuICAgICAgJ3NwYWNlLXktcmV2ZXJzZSc6IFsnc3BhY2UteS1yZXZlcnNlJ10sXG4gICAgICAvLyBTaXppbmdcbiAgICAgIC8qKlxuICAgICAgICogV2lkdGhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy93aWR0aFxuICAgICAgICovXG4gICAgICB3OiBbe1xuICAgICAgICB3OiBbJ2F1dG8nLCAnbWluJywgJ21heCcsICdmaXQnLCAnc3Z3JywgJ2x2dycsICdkdncnLCBpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1pbi1XaWR0aFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21pbi13aWR0aFxuICAgICAgICovXG4gICAgICAnbWluLXcnOiBbe1xuICAgICAgICAnbWluLXcnOiBbaXNBcmJpdHJhcnlWYWx1ZSwgc3BhY2luZywgJ21pbicsICdtYXgnLCAnZml0J11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNYXgtV2lkdGhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXgtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ21heC13JzogW3tcbiAgICAgICAgJ21heC13JzogW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmcsICdub25lJywgJ2Z1bGwnLCAnbWluJywgJ21heCcsICdmaXQnLCAncHJvc2UnLCB7XG4gICAgICAgICAgc2NyZWVuOiBbaXNUc2hpcnRTaXplXVxuICAgICAgICB9LCBpc1RzaGlydFNpemVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSGVpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvaGVpZ2h0XG4gICAgICAgKi9cbiAgICAgIGg6IFt7XG4gICAgICAgIGg6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnYXV0bycsICdtaW4nLCAnbWF4JywgJ2ZpdCcsICdzdmgnLCAnbHZoJywgJ2R2aCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWluLUhlaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21pbi1oZWlnaHRcbiAgICAgICAqL1xuICAgICAgJ21pbi1oJzogW3tcbiAgICAgICAgJ21pbi1oJzogW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmcsICdtaW4nLCAnbWF4JywgJ2ZpdCcsICdzdmgnLCAnbHZoJywgJ2R2aCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWF4LUhlaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21heC1oZWlnaHRcbiAgICAgICAqL1xuICAgICAgJ21heC1oJzogW3tcbiAgICAgICAgJ21heC1oJzogW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmcsICdtaW4nLCAnbWF4JywgJ2ZpdCcsICdzdmgnLCAnbHZoJywgJ2R2aCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2l6ZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NpemVcbiAgICAgICAqL1xuICAgICAgc2l6ZTogW3tcbiAgICAgICAgc2l6ZTogW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmcsICdhdXRvJywgJ21pbicsICdtYXgnLCAnZml0J11cbiAgICAgIH1dLFxuICAgICAgLy8gVHlwb2dyYXBoeVxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFNpemVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXNpemVcbiAgICAgICAqL1xuICAgICAgJ2ZvbnQtc2l6ZSc6IFt7XG4gICAgICAgIHRleHQ6IFsnYmFzZScsIGlzVHNoaXJ0U2l6ZSwgaXNBcmJpdHJhcnlMZW5ndGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBTbW9vdGhpbmdcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXNtb290aGluZ1xuICAgICAgICovXG4gICAgICAnZm9udC1zbW9vdGhpbmcnOiBbJ2FudGlhbGlhc2VkJywgJ3N1YnBpeGVsLWFudGlhbGlhc2VkJ10sXG4gICAgICAvKipcbiAgICAgICAqIEZvbnQgU3R5bGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXN0eWxlXG4gICAgICAgKi9cbiAgICAgICdmb250LXN0eWxlJzogWydpdGFsaWMnLCAnbm90LWl0YWxpYyddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFdlaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtd2VpZ2h0XG4gICAgICAgKi9cbiAgICAgICdmb250LXdlaWdodCc6IFt7XG4gICAgICAgIGZvbnQ6IFsndGhpbicsICdleHRyYWxpZ2h0JywgJ2xpZ2h0JywgJ25vcm1hbCcsICdtZWRpdW0nLCAnc2VtaWJvbGQnLCAnYm9sZCcsICdleHRyYWJvbGQnLCAnYmxhY2snLCBpc0FyYml0cmFyeU51bWJlcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IEZhbWlseVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtZmFtaWx5XG4gICAgICAgKi9cbiAgICAgICdmb250LWZhbWlseSc6IFt7XG4gICAgICAgIGZvbnQ6IFtpc0FueV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFZhcmlhbnQgTnVtZXJpY1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtdmFyaWFudC1udW1lcmljXG4gICAgICAgKi9cbiAgICAgICdmdm4tbm9ybWFsJzogWydub3JtYWwtbnVtcyddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFZhcmlhbnQgTnVtZXJpY1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtdmFyaWFudC1udW1lcmljXG4gICAgICAgKi9cbiAgICAgICdmdm4tb3JkaW5hbCc6IFsnb3JkaW5hbCddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFZhcmlhbnQgTnVtZXJpY1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtdmFyaWFudC1udW1lcmljXG4gICAgICAgKi9cbiAgICAgICdmdm4tc2xhc2hlZC16ZXJvJzogWydzbGFzaGVkLXplcm8nXSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBWYXJpYW50IE51bWVyaWNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXZhcmlhbnQtbnVtZXJpY1xuICAgICAgICovXG4gICAgICAnZnZuLWZpZ3VyZSc6IFsnbGluaW5nLW51bXMnLCAnb2xkc3R5bGUtbnVtcyddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFZhcmlhbnQgTnVtZXJpY1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtdmFyaWFudC1udW1lcmljXG4gICAgICAgKi9cbiAgICAgICdmdm4tc3BhY2luZyc6IFsncHJvcG9ydGlvbmFsLW51bXMnLCAndGFidWxhci1udW1zJ10sXG4gICAgICAvKipcbiAgICAgICAqIEZvbnQgVmFyaWFudCBOdW1lcmljXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC12YXJpYW50LW51bWVyaWNcbiAgICAgICAqL1xuICAgICAgJ2Z2bi1mcmFjdGlvbic6IFsnZGlhZ29uYWwtZnJhY3Rpb25zJywgJ3N0YWNrZWQtZnJhY3RvbnMnXSxcbiAgICAgIC8qKlxuICAgICAgICogTGV0dGVyIFNwYWNpbmdcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9sZXR0ZXItc3BhY2luZ1xuICAgICAgICovXG4gICAgICB0cmFja2luZzogW3tcbiAgICAgICAgdHJhY2tpbmc6IFsndGlnaHRlcicsICd0aWdodCcsICdub3JtYWwnLCAnd2lkZScsICd3aWRlcicsICd3aWRlc3QnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIExpbmUgQ2xhbXBcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9saW5lLWNsYW1wXG4gICAgICAgKi9cbiAgICAgICdsaW5lLWNsYW1wJzogW3tcbiAgICAgICAgJ2xpbmUtY2xhbXAnOiBbJ25vbmUnLCBpc051bWJlciwgaXNBcmJpdHJhcnlOdW1iZXJdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTGluZSBIZWlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9saW5lLWhlaWdodFxuICAgICAgICovXG4gICAgICBsZWFkaW5nOiBbe1xuICAgICAgICBsZWFkaW5nOiBbJ25vbmUnLCAndGlnaHQnLCAnc251ZycsICdub3JtYWwnLCAncmVsYXhlZCcsICdsb29zZScsIGlzTGVuZ3RoLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIExpc3QgU3R5bGUgSW1hZ2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9saXN0LXN0eWxlLWltYWdlXG4gICAgICAgKi9cbiAgICAgICdsaXN0LWltYWdlJzogW3tcbiAgICAgICAgJ2xpc3QtaW1hZ2UnOiBbJ25vbmUnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIExpc3QgU3R5bGUgVHlwZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xpc3Qtc3R5bGUtdHlwZVxuICAgICAgICovXG4gICAgICAnbGlzdC1zdHlsZS10eXBlJzogW3tcbiAgICAgICAgbGlzdDogWydub25lJywgJ2Rpc2MnLCAnZGVjaW1hbCcsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTGlzdCBTdHlsZSBQb3NpdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xpc3Qtc3R5bGUtcG9zaXRpb25cbiAgICAgICAqL1xuICAgICAgJ2xpc3Qtc3R5bGUtcG9zaXRpb24nOiBbe1xuICAgICAgICBsaXN0OiBbJ2luc2lkZScsICdvdXRzaWRlJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQbGFjZWhvbGRlciBDb2xvclxuICAgICAgICogQGRlcHJlY2F0ZWQgc2luY2UgVGFpbHdpbmQgQ1NTIHYzLjAuMFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BsYWNlaG9sZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdwbGFjZWhvbGRlci1jb2xvcic6IFt7XG4gICAgICAgIHBsYWNlaG9sZGVyOiBbY29sb3JzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBsYWNlaG9sZGVyIE9wYWNpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wbGFjZWhvbGRlci1vcGFjaXR5XG4gICAgICAgKi9cbiAgICAgICdwbGFjZWhvbGRlci1vcGFjaXR5JzogW3tcbiAgICAgICAgJ3BsYWNlaG9sZGVyLW9wYWNpdHknOiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IEFsaWdubWVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtYWxpZ25cbiAgICAgICAqL1xuICAgICAgJ3RleHQtYWxpZ25tZW50JzogW3tcbiAgICAgICAgdGV4dDogWydsZWZ0JywgJ2NlbnRlcicsICdyaWdodCcsICdqdXN0aWZ5JywgJ3N0YXJ0JywgJ2VuZCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtY29sb3JcbiAgICAgICAqL1xuICAgICAgJ3RleHQtY29sb3InOiBbe1xuICAgICAgICB0ZXh0OiBbY29sb3JzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgT3BhY2l0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtb3BhY2l0eVxuICAgICAgICovXG4gICAgICAndGV4dC1vcGFjaXR5JzogW3tcbiAgICAgICAgJ3RleHQtb3BhY2l0eSc6IFtvcGFjaXR5XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgRGVjb3JhdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtZGVjb3JhdGlvblxuICAgICAgICovXG4gICAgICAndGV4dC1kZWNvcmF0aW9uJzogWyd1bmRlcmxpbmUnLCAnb3ZlcmxpbmUnLCAnbGluZS10aHJvdWdoJywgJ25vLXVuZGVybGluZSddLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IERlY29yYXRpb24gU3R5bGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LWRlY29yYXRpb24tc3R5bGVcbiAgICAgICAqL1xuICAgICAgJ3RleHQtZGVjb3JhdGlvbi1zdHlsZSc6IFt7XG4gICAgICAgIGRlY29yYXRpb246IFsuLi5nZXRMaW5lU3R5bGVzKCksICd3YXZ5J11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IERlY29yYXRpb24gVGhpY2tuZXNzXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzc1xuICAgICAgICovXG4gICAgICAndGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcyc6IFt7XG4gICAgICAgIGRlY29yYXRpb246IFsnYXV0bycsICdmcm9tLWZvbnQnLCBpc0xlbmd0aCwgaXNBcmJpdHJhcnlMZW5ndGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBVbmRlcmxpbmUgT2Zmc2V0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC11bmRlcmxpbmUtb2Zmc2V0XG4gICAgICAgKi9cbiAgICAgICd1bmRlcmxpbmUtb2Zmc2V0JzogW3tcbiAgICAgICAgJ3VuZGVybGluZS1vZmZzZXQnOiBbJ2F1dG8nLCBpc0xlbmd0aCwgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IERlY29yYXRpb24gQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LWRlY29yYXRpb24tY29sb3JcbiAgICAgICAqL1xuICAgICAgJ3RleHQtZGVjb3JhdGlvbi1jb2xvcic6IFt7XG4gICAgICAgIGRlY29yYXRpb246IFtjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBUcmFuc2Zvcm1cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LXRyYW5zZm9ybVxuICAgICAgICovXG4gICAgICAndGV4dC10cmFuc2Zvcm0nOiBbJ3VwcGVyY2FzZScsICdsb3dlcmNhc2UnLCAnY2FwaXRhbGl6ZScsICdub3JtYWwtY2FzZSddLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IE92ZXJmbG93XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1vdmVyZmxvd1xuICAgICAgICovXG4gICAgICAndGV4dC1vdmVyZmxvdyc6IFsndHJ1bmNhdGUnLCAndGV4dC1lbGxpcHNpcycsICd0ZXh0LWNsaXAnXSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBXcmFwXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC13cmFwXG4gICAgICAgKi9cbiAgICAgICd0ZXh0LXdyYXAnOiBbe1xuICAgICAgICB0ZXh0OiBbJ3dyYXAnLCAnbm93cmFwJywgJ2JhbGFuY2UnLCAncHJldHR5J11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IEluZGVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtaW5kZW50XG4gICAgICAgKi9cbiAgICAgIGluZGVudDogW3tcbiAgICAgICAgaW5kZW50OiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVmVydGljYWwgQWxpZ25tZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdmVydGljYWwtYWxpZ25cbiAgICAgICAqL1xuICAgICAgJ3ZlcnRpY2FsLWFsaWduJzogW3tcbiAgICAgICAgYWxpZ246IFsnYmFzZWxpbmUnLCAndG9wJywgJ21pZGRsZScsICdib3R0b20nLCAndGV4dC10b3AnLCAndGV4dC1ib3R0b20nLCAnc3ViJywgJ3N1cGVyJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBXaGl0ZXNwYWNlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvd2hpdGVzcGFjZVxuICAgICAgICovXG4gICAgICB3aGl0ZXNwYWNlOiBbe1xuICAgICAgICB3aGl0ZXNwYWNlOiBbJ25vcm1hbCcsICdub3dyYXAnLCAncHJlJywgJ3ByZS1saW5lJywgJ3ByZS13cmFwJywgJ2JyZWFrLXNwYWNlcyddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogV29yZCBCcmVha1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3dvcmQtYnJlYWtcbiAgICAgICAqL1xuICAgICAgYnJlYWs6IFt7XG4gICAgICAgIGJyZWFrOiBbJ25vcm1hbCcsICd3b3JkcycsICdhbGwnLCAna2VlcCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSHlwaGVuc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2h5cGhlbnNcbiAgICAgICAqL1xuICAgICAgaHlwaGVuczogW3tcbiAgICAgICAgaHlwaGVuczogWydub25lJywgJ21hbnVhbCcsICdhdXRvJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBDb250ZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY29udGVudFxuICAgICAgICovXG4gICAgICBjb250ZW50OiBbe1xuICAgICAgICBjb250ZW50OiBbJ25vbmUnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvLyBCYWNrZ3JvdW5kc1xuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIEF0dGFjaG1lbnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZ3JvdW5kLWF0dGFjaG1lbnRcbiAgICAgICAqL1xuICAgICAgJ2JnLWF0dGFjaG1lbnQnOiBbe1xuICAgICAgICBiZzogWydmaXhlZCcsICdsb2NhbCcsICdzY3JvbGwnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgQ2xpcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtY2xpcFxuICAgICAgICovXG4gICAgICAnYmctY2xpcCc6IFt7XG4gICAgICAgICdiZy1jbGlwJzogWydib3JkZXInLCAncGFkZGluZycsICdjb250ZW50JywgJ3RleHQnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgT3BhY2l0eVxuICAgICAgICogQGRlcHJlY2F0ZWQgc2luY2UgVGFpbHdpbmQgQ1NTIHYzLjAuMFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtb3BhY2l0eVxuICAgICAgICovXG4gICAgICAnYmctb3BhY2l0eSc6IFt7XG4gICAgICAgICdiZy1vcGFjaXR5JzogW29wYWNpdHldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBPcmlnaW5cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZ3JvdW5kLW9yaWdpblxuICAgICAgICovXG4gICAgICAnYmctb3JpZ2luJzogW3tcbiAgICAgICAgJ2JnLW9yaWdpbic6IFsnYm9yZGVyJywgJ3BhZGRpbmcnLCAnY29udGVudCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBQb3NpdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtcG9zaXRpb25cbiAgICAgICAqL1xuICAgICAgJ2JnLXBvc2l0aW9uJzogW3tcbiAgICAgICAgYmc6IFsuLi5nZXRQb3NpdGlvbnMoKSwgaXNBcmJpdHJhcnlQb3NpdGlvbl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIFJlcGVhdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtcmVwZWF0XG4gICAgICAgKi9cbiAgICAgICdiZy1yZXBlYXQnOiBbe1xuICAgICAgICBiZzogWyduby1yZXBlYXQnLCB7XG4gICAgICAgICAgcmVwZWF0OiBbJycsICd4JywgJ3knLCAncm91bmQnLCAnc3BhY2UnXVxuICAgICAgICB9XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgU2l6ZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtc2l6ZVxuICAgICAgICovXG4gICAgICAnYmctc2l6ZSc6IFt7XG4gICAgICAgIGJnOiBbJ2F1dG8nLCAnY292ZXInLCAnY29udGFpbicsIGlzQXJiaXRyYXJ5U2l6ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIEltYWdlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1pbWFnZVxuICAgICAgICovXG4gICAgICAnYmctaW1hZ2UnOiBbe1xuICAgICAgICBiZzogWydub25lJywge1xuICAgICAgICAgICdncmFkaWVudC10byc6IFsndCcsICd0cicsICdyJywgJ2JyJywgJ2InLCAnYmwnLCAnbCcsICd0bCddXG4gICAgICAgIH0sIGlzQXJiaXRyYXJ5SW1hZ2VdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtY29sb3JcbiAgICAgICAqL1xuICAgICAgJ2JnLWNvbG9yJzogW3tcbiAgICAgICAgYmc6IFtjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JhZGllbnQgQ29sb3IgU3RvcHMgRnJvbSBQb3NpdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYWRpZW50LWNvbG9yLXN0b3BzXG4gICAgICAgKi9cbiAgICAgICdncmFkaWVudC1mcm9tLXBvcyc6IFt7XG4gICAgICAgIGZyb206IFtncmFkaWVudENvbG9yU3RvcFBvc2l0aW9uc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmFkaWVudCBDb2xvciBTdG9wcyBWaWEgUG9zaXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmFkaWVudC1jb2xvci1zdG9wc1xuICAgICAgICovXG4gICAgICAnZ3JhZGllbnQtdmlhLXBvcyc6IFt7XG4gICAgICAgIHZpYTogW2dyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyYWRpZW50IENvbG9yIFN0b3BzIFRvIFBvc2l0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JhZGllbnQtY29sb3Itc3RvcHNcbiAgICAgICAqL1xuICAgICAgJ2dyYWRpZW50LXRvLXBvcyc6IFt7XG4gICAgICAgIHRvOiBbZ3JhZGllbnRDb2xvclN0b3BQb3NpdGlvbnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JhZGllbnQgQ29sb3IgU3RvcHMgRnJvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYWRpZW50LWNvbG9yLXN0b3BzXG4gICAgICAgKi9cbiAgICAgICdncmFkaWVudC1mcm9tJzogW3tcbiAgICAgICAgZnJvbTogW2dyYWRpZW50Q29sb3JTdG9wc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmFkaWVudCBDb2xvciBTdG9wcyBWaWFcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmFkaWVudC1jb2xvci1zdG9wc1xuICAgICAgICovXG4gICAgICAnZ3JhZGllbnQtdmlhJzogW3tcbiAgICAgICAgdmlhOiBbZ3JhZGllbnRDb2xvclN0b3BzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyYWRpZW50IENvbG9yIFN0b3BzIFRvXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JhZGllbnQtY29sb3Itc3RvcHNcbiAgICAgICAqL1xuICAgICAgJ2dyYWRpZW50LXRvJzogW3tcbiAgICAgICAgdG86IFtncmFkaWVudENvbG9yU3RvcHNdXG4gICAgICB9XSxcbiAgICAgIC8vIEJvcmRlcnNcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1c1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgcm91bmRlZDogW3tcbiAgICAgICAgcm91bmRlZDogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1zJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtcyc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLWUnOiBbe1xuICAgICAgICAncm91bmRlZC1lJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIFRvcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtdCc6IFt7XG4gICAgICAgICdyb3VuZGVkLXQnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLXInOiBbe1xuICAgICAgICAncm91bmRlZC1yJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtYic6IFt7XG4gICAgICAgICdyb3VuZGVkLWInOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtbCc6IFt7XG4gICAgICAgICdyb3VuZGVkLWwnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgU3RhcnQgU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLXNzJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtc3MnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgU3RhcnQgRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1zZSc6IFt7XG4gICAgICAgICdyb3VuZGVkLXNlJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIEVuZCBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLWVlJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtZWUnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgRW5kIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1lcyc6IFt7XG4gICAgICAgICdyb3VuZGVkLWVzJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIFRvcCBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC10bCc6IFt7XG4gICAgICAgICdyb3VuZGVkLXRsJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIFRvcCBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtdHInOiBbe1xuICAgICAgICAncm91bmRlZC10cic6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBCb3R0b20gUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLWJyJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtYnInOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgQm90dG9tIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLWJsJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtYmwnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXcnOiBbe1xuICAgICAgICBib3JkZXI6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGggWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXcteCc6IFt7XG4gICAgICAgICdib3JkZXIteCc6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGggWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXcteSc6IFt7XG4gICAgICAgICdib3JkZXIteSc6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGggU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci13LXMnOiBbe1xuICAgICAgICAnYm9yZGVyLXMnOiBbYm9yZGVyV2lkdGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFdpZHRoIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXctZSc6IFt7XG4gICAgICAgICdib3JkZXItZSc6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGggVG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy10JzogW3tcbiAgICAgICAgJ2JvcmRlci10JzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXctcic6IFt7XG4gICAgICAgICdib3JkZXItcic6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGggQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy1iJzogW3tcbiAgICAgICAgJ2JvcmRlci1iJzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy1sJzogW3tcbiAgICAgICAgJ2JvcmRlci1sJzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBPcGFjaXR5XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLW9wYWNpdHlcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1vcGFjaXR5JzogW3tcbiAgICAgICAgJ2JvcmRlci1vcGFjaXR5JzogW29wYWNpdHldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFN0eWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXN0eWxlXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItc3R5bGUnOiBbe1xuICAgICAgICBib3JkZXI6IFsuLi5nZXRMaW5lU3R5bGVzKCksICdoaWRkZW4nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIERpdmlkZSBXaWR0aCBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdkaXZpZGUteCc6IFt7XG4gICAgICAgICdkaXZpZGUteCc6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBEaXZpZGUgV2lkdGggWCBSZXZlcnNlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdkaXZpZGUteC1yZXZlcnNlJzogWydkaXZpZGUteC1yZXZlcnNlJ10sXG4gICAgICAvKipcbiAgICAgICAqIERpdmlkZSBXaWR0aCBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdkaXZpZGUteSc6IFt7XG4gICAgICAgICdkaXZpZGUteSc6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBEaXZpZGUgV2lkdGggWSBSZXZlcnNlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdkaXZpZGUteS1yZXZlcnNlJzogWydkaXZpZGUteS1yZXZlcnNlJ10sXG4gICAgICAvKipcbiAgICAgICAqIERpdmlkZSBPcGFjaXR5XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLW9wYWNpdHlcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS1vcGFjaXR5JzogW3tcbiAgICAgICAgJ2RpdmlkZS1vcGFjaXR5JzogW29wYWNpdHldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRGl2aWRlIFN0eWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLXN0eWxlXG4gICAgICAgKi9cbiAgICAgICdkaXZpZGUtc3R5bGUnOiBbe1xuICAgICAgICBkaXZpZGU6IGdldExpbmVTdHlsZXMoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxuICAgICAgICovXG4gICAgICAnYm9yZGVyLWNvbG9yJzogW3tcbiAgICAgICAgYm9yZGVyOiBbYm9yZGVyQ29sb3JdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbG9yIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sb3JcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1jb2xvci14JzogW3tcbiAgICAgICAgJ2JvcmRlci14JzogW2JvcmRlckNvbG9yXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBDb2xvciBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3IteSc6IFt7XG4gICAgICAgICdib3JkZXIteSc6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgVG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3ItdCc6IFt7XG4gICAgICAgICdib3JkZXItdCc6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sb3JcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1jb2xvci1yJzogW3tcbiAgICAgICAgJ2JvcmRlci1yJzogW2JvcmRlckNvbG9yXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBDb2xvciBCb3R0b21cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sb3JcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1jb2xvci1iJzogW3tcbiAgICAgICAgJ2JvcmRlci1iJzogW2JvcmRlckNvbG9yXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBDb2xvciBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3ItbCc6IFt7XG4gICAgICAgICdib3JkZXItbCc6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBEaXZpZGUgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtY29sb3JcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS1jb2xvcic6IFt7XG4gICAgICAgIGRpdmlkZTogW2JvcmRlckNvbG9yXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE91dGxpbmUgU3R5bGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdXRsaW5lLXN0eWxlXG4gICAgICAgKi9cbiAgICAgICdvdXRsaW5lLXN0eWxlJzogW3tcbiAgICAgICAgb3V0bGluZTogWycnLCAuLi5nZXRMaW5lU3R5bGVzKCldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3V0bGluZSBPZmZzZXRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdXRsaW5lLW9mZnNldFxuICAgICAgICovXG4gICAgICAnb3V0bGluZS1vZmZzZXQnOiBbe1xuICAgICAgICAnb3V0bGluZS1vZmZzZXQnOiBbaXNMZW5ndGgsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3V0bGluZSBXaWR0aFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL291dGxpbmUtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ291dGxpbmUtdyc6IFt7XG4gICAgICAgIG91dGxpbmU6IFtpc0xlbmd0aCwgaXNBcmJpdHJhcnlMZW5ndGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3V0bGluZSBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL291dGxpbmUtY29sb3JcbiAgICAgICAqL1xuICAgICAgJ291dGxpbmUtY29sb3InOiBbe1xuICAgICAgICBvdXRsaW5lOiBbY29sb3JzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpbmcgV2lkdGhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yaW5nLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdyaW5nLXcnOiBbe1xuICAgICAgICByaW5nOiBnZXRMZW5ndGhXaXRoRW1wdHlBbmRBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpbmcgV2lkdGggSW5zZXRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yaW5nLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdyaW5nLXctaW5zZXQnOiBbJ3JpbmctaW5zZXQnXSxcbiAgICAgIC8qKlxuICAgICAgICogUmluZyBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3JpbmctY29sb3JcbiAgICAgICAqL1xuICAgICAgJ3JpbmctY29sb3InOiBbe1xuICAgICAgICByaW5nOiBbY29sb3JzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpbmcgT3BhY2l0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Jpbmctb3BhY2l0eVxuICAgICAgICovXG4gICAgICAncmluZy1vcGFjaXR5JzogW3tcbiAgICAgICAgJ3Jpbmctb3BhY2l0eSc6IFtvcGFjaXR5XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpbmcgT2Zmc2V0IFdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcmluZy1vZmZzZXQtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ3Jpbmctb2Zmc2V0LXcnOiBbe1xuICAgICAgICAncmluZy1vZmZzZXQnOiBbaXNMZW5ndGgsIGlzQXJiaXRyYXJ5TGVuZ3RoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpbmcgT2Zmc2V0IENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcmluZy1vZmZzZXQtY29sb3JcbiAgICAgICAqL1xuICAgICAgJ3Jpbmctb2Zmc2V0LWNvbG9yJzogW3tcbiAgICAgICAgJ3Jpbmctb2Zmc2V0JzogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLy8gRWZmZWN0c1xuICAgICAgLyoqXG4gICAgICAgKiBCb3ggU2hhZG93XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm94LXNoYWRvd1xuICAgICAgICovXG4gICAgICBzaGFkb3c6IFt7XG4gICAgICAgIHNoYWRvdzogWycnLCAnaW5uZXInLCAnbm9uZScsIGlzVHNoaXJ0U2l6ZSwgaXNBcmJpdHJhcnlTaGFkb3ddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm94IFNoYWRvdyBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JveC1zaGFkb3ctY29sb3JcbiAgICAgICAqL1xuICAgICAgJ3NoYWRvdy1jb2xvcic6IFt7XG4gICAgICAgIHNoYWRvdzogW2lzQW55XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE9wYWNpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vcGFjaXR5XG4gICAgICAgKi9cbiAgICAgIG9wYWNpdHk6IFt7XG4gICAgICAgIG9wYWNpdHk6IFtvcGFjaXR5XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1peCBCbGVuZCBNb2RlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWl4LWJsZW5kLW1vZGVcbiAgICAgICAqL1xuICAgICAgJ21peC1ibGVuZCc6IFt7XG4gICAgICAgICdtaXgtYmxlbmQnOiBbLi4uZ2V0QmxlbmRNb2RlcygpLCAncGx1cy1saWdodGVyJywgJ3BsdXMtZGFya2VyJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIEJsZW5kIE1vZGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZ3JvdW5kLWJsZW5kLW1vZGVcbiAgICAgICAqL1xuICAgICAgJ2JnLWJsZW5kJzogW3tcbiAgICAgICAgJ2JnLWJsZW5kJzogZ2V0QmxlbmRNb2RlcygpXG4gICAgICB9XSxcbiAgICAgIC8vIEZpbHRlcnNcbiAgICAgIC8qKlxuICAgICAgICogRmlsdGVyXG4gICAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSBUYWlsd2luZCBDU1MgdjMuMC4wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmlsdGVyXG4gICAgICAgKi9cbiAgICAgIGZpbHRlcjogW3tcbiAgICAgICAgZmlsdGVyOiBbJycsICdub25lJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCbHVyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmx1clxuICAgICAgICovXG4gICAgICBibHVyOiBbe1xuICAgICAgICBibHVyOiBbYmx1cl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCcmlnaHRuZXNzXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYnJpZ2h0bmVzc1xuICAgICAgICovXG4gICAgICBicmlnaHRuZXNzOiBbe1xuICAgICAgICBicmlnaHRuZXNzOiBbYnJpZ2h0bmVzc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBDb250cmFzdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2NvbnRyYXN0XG4gICAgICAgKi9cbiAgICAgIGNvbnRyYXN0OiBbe1xuICAgICAgICBjb250cmFzdDogW2NvbnRyYXN0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIERyb3AgU2hhZG93XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZHJvcC1zaGFkb3dcbiAgICAgICAqL1xuICAgICAgJ2Ryb3Atc2hhZG93JzogW3tcbiAgICAgICAgJ2Ryb3Atc2hhZG93JzogWycnLCAnbm9uZScsIGlzVHNoaXJ0U2l6ZSwgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmF5c2NhbGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmF5c2NhbGVcbiAgICAgICAqL1xuICAgICAgZ3JheXNjYWxlOiBbe1xuICAgICAgICBncmF5c2NhbGU6IFtncmF5c2NhbGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSHVlIFJvdGF0ZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2h1ZS1yb3RhdGVcbiAgICAgICAqL1xuICAgICAgJ2h1ZS1yb3RhdGUnOiBbe1xuICAgICAgICAnaHVlLXJvdGF0ZSc6IFtodWVSb3RhdGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSW52ZXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvaW52ZXJ0XG4gICAgICAgKi9cbiAgICAgIGludmVydDogW3tcbiAgICAgICAgaW52ZXJ0OiBbaW52ZXJ0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNhdHVyYXRlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2F0dXJhdGVcbiAgICAgICAqL1xuICAgICAgc2F0dXJhdGU6IFt7XG4gICAgICAgIHNhdHVyYXRlOiBbc2F0dXJhdGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2VwaWFcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zZXBpYVxuICAgICAgICovXG4gICAgICBzZXBpYTogW3tcbiAgICAgICAgc2VwaWE6IFtzZXBpYV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZHJvcCBGaWx0ZXJcbiAgICAgICAqIEBkZXByZWNhdGVkIHNpbmNlIFRhaWx3aW5kIENTUyB2My4wLjBcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1maWx0ZXJcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLWZpbHRlcic6IFt7XG4gICAgICAgICdiYWNrZHJvcC1maWx0ZXInOiBbJycsICdub25lJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZHJvcCBCbHVyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3AtYmx1clxuICAgICAgICovXG4gICAgICAnYmFja2Ryb3AtYmx1cic6IFt7XG4gICAgICAgICdiYWNrZHJvcC1ibHVyJzogW2JsdXJdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgQnJpZ2h0bmVzc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWJyaWdodG5lc3NcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLWJyaWdodG5lc3MnOiBbe1xuICAgICAgICAnYmFja2Ryb3AtYnJpZ2h0bmVzcyc6IFticmlnaHRuZXNzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIENvbnRyYXN0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3AtY29udHJhc3RcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLWNvbnRyYXN0JzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLWNvbnRyYXN0JzogW2NvbnRyYXN0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIEdyYXlzY2FsZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWdyYXlzY2FsZVxuICAgICAgICovXG4gICAgICAnYmFja2Ryb3AtZ3JheXNjYWxlJzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLWdyYXlzY2FsZSc6IFtncmF5c2NhbGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgSHVlIFJvdGF0ZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWh1ZS1yb3RhdGVcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLWh1ZS1yb3RhdGUnOiBbe1xuICAgICAgICAnYmFja2Ryb3AtaHVlLXJvdGF0ZSc6IFtodWVSb3RhdGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgSW52ZXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3AtaW52ZXJ0XG4gICAgICAgKi9cbiAgICAgICdiYWNrZHJvcC1pbnZlcnQnOiBbe1xuICAgICAgICAnYmFja2Ryb3AtaW52ZXJ0JzogW2ludmVydF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZHJvcCBPcGFjaXR5XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3Atb3BhY2l0eVxuICAgICAgICovXG4gICAgICAnYmFja2Ryb3Atb3BhY2l0eSc6IFt7XG4gICAgICAgICdiYWNrZHJvcC1vcGFjaXR5JzogW29wYWNpdHldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgU2F0dXJhdGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1zYXR1cmF0ZVxuICAgICAgICovXG4gICAgICAnYmFja2Ryb3Atc2F0dXJhdGUnOiBbe1xuICAgICAgICAnYmFja2Ryb3Atc2F0dXJhdGUnOiBbc2F0dXJhdGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgU2VwaWFcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1zZXBpYVxuICAgICAgICovXG4gICAgICAnYmFja2Ryb3Atc2VwaWEnOiBbe1xuICAgICAgICAnYmFja2Ryb3Atc2VwaWEnOiBbc2VwaWFdXG4gICAgICB9XSxcbiAgICAgIC8vIFRhYmxlc1xuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sbGFwc2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sbGFwc2VcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1jb2xsYXBzZSc6IFt7XG4gICAgICAgIGJvcmRlcjogWydjb2xsYXBzZScsICdzZXBhcmF0ZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFNwYWNpbmdcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItc3BhY2luZ1xuICAgICAgICovXG4gICAgICAnYm9yZGVyLXNwYWNpbmcnOiBbe1xuICAgICAgICAnYm9yZGVyLXNwYWNpbmcnOiBbYm9yZGVyU3BhY2luZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgU3BhY2luZyBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXNwYWNpbmdcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1zcGFjaW5nLXgnOiBbe1xuICAgICAgICAnYm9yZGVyLXNwYWNpbmcteCc6IFtib3JkZXJTcGFjaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBTcGFjaW5nIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItc3BhY2luZ1xuICAgICAgICovXG4gICAgICAnYm9yZGVyLXNwYWNpbmcteSc6IFt7XG4gICAgICAgICdib3JkZXItc3BhY2luZy15JzogW2JvcmRlclNwYWNpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGFibGUgTGF5b3V0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGFibGUtbGF5b3V0XG4gICAgICAgKi9cbiAgICAgICd0YWJsZS1sYXlvdXQnOiBbe1xuICAgICAgICB0YWJsZTogWydhdXRvJywgJ2ZpeGVkJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBDYXB0aW9uIFNpZGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jYXB0aW9uLXNpZGVcbiAgICAgICAqL1xuICAgICAgY2FwdGlvbjogW3tcbiAgICAgICAgY2FwdGlvbjogWyd0b3AnLCAnYm90dG9tJ11cbiAgICAgIH1dLFxuICAgICAgLy8gVHJhbnNpdGlvbnMgYW5kIEFuaW1hdGlvblxuICAgICAgLyoqXG4gICAgICAgKiBUcmFuaXNpdGlvbiBQcm9wZXJ0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zaXRpb24tcHJvcGVydHlcbiAgICAgICAqL1xuICAgICAgdHJhbnNpdGlvbjogW3tcbiAgICAgICAgdHJhbnNpdGlvbjogWydub25lJywgJ2FsbCcsICcnLCAnY29sb3JzJywgJ29wYWNpdHknLCAnc2hhZG93JywgJ3RyYW5zZm9ybScsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVHJhbnNpdGlvbiBEdXJhdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zaXRpb24tZHVyYXRpb25cbiAgICAgICAqL1xuICAgICAgZHVyYXRpb246IFt7XG4gICAgICAgIGR1cmF0aW9uOiBnZXROdW1iZXJBbmRBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zaXRpb24gVGltaW5nIEZ1bmN0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb25cbiAgICAgICAqL1xuICAgICAgZWFzZTogW3tcbiAgICAgICAgZWFzZTogWydsaW5lYXInLCAnaW4nLCAnb3V0JywgJ2luLW91dCcsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVHJhbnNpdGlvbiBEZWxheVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zaXRpb24tZGVsYXlcbiAgICAgICAqL1xuICAgICAgZGVsYXk6IFt7XG4gICAgICAgIGRlbGF5OiBnZXROdW1iZXJBbmRBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEFuaW1hdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2FuaW1hdGlvblxuICAgICAgICovXG4gICAgICBhbmltYXRlOiBbe1xuICAgICAgICBhbmltYXRlOiBbJ25vbmUnLCAnc3BpbicsICdwaW5nJywgJ3B1bHNlJywgJ2JvdW5jZScsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8vIFRyYW5zZm9ybXNcbiAgICAgIC8qKlxuICAgICAgICogVHJhbnNmb3JtXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdHJhbnNmb3JtXG4gICAgICAgKi9cbiAgICAgIHRyYW5zZm9ybTogW3tcbiAgICAgICAgdHJhbnNmb3JtOiBbJycsICdncHUnLCAnbm9uZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2NhbGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY2FsZVxuICAgICAgICovXG4gICAgICBzY2FsZTogW3tcbiAgICAgICAgc2NhbGU6IFtzY2FsZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY2FsZSBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2NhbGVcbiAgICAgICAqL1xuICAgICAgJ3NjYWxlLXgnOiBbe1xuICAgICAgICAnc2NhbGUteCc6IFtzY2FsZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY2FsZSBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2NhbGVcbiAgICAgICAqL1xuICAgICAgJ3NjYWxlLXknOiBbe1xuICAgICAgICAnc2NhbGUteSc6IFtzY2FsZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSb3RhdGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yb3RhdGVcbiAgICAgICAqL1xuICAgICAgcm90YXRlOiBbe1xuICAgICAgICByb3RhdGU6IFtpc0ludGVnZXIsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVHJhbnNsYXRlIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2xhdGVcbiAgICAgICAqL1xuICAgICAgJ3RyYW5zbGF0ZS14JzogW3tcbiAgICAgICAgJ3RyYW5zbGF0ZS14JzogW3RyYW5zbGF0ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUcmFuc2xhdGUgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zbGF0ZVxuICAgICAgICovXG4gICAgICAndHJhbnNsYXRlLXknOiBbe1xuICAgICAgICAndHJhbnNsYXRlLXknOiBbdHJhbnNsYXRlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNrZXcgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NrZXdcbiAgICAgICAqL1xuICAgICAgJ3NrZXcteCc6IFt7XG4gICAgICAgICdza2V3LXgnOiBbc2tld11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTa2V3IFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9za2V3XG4gICAgICAgKi9cbiAgICAgICdza2V3LXknOiBbe1xuICAgICAgICAnc2tldy15JzogW3NrZXddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVHJhbnNmb3JtIE9yaWdpblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zZm9ybS1vcmlnaW5cbiAgICAgICAqL1xuICAgICAgJ3RyYW5zZm9ybS1vcmlnaW4nOiBbe1xuICAgICAgICBvcmlnaW46IFsnY2VudGVyJywgJ3RvcCcsICd0b3AtcmlnaHQnLCAncmlnaHQnLCAnYm90dG9tLXJpZ2h0JywgJ2JvdHRvbScsICdib3R0b20tbGVmdCcsICdsZWZ0JywgJ3RvcC1sZWZ0JywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLy8gSW50ZXJhY3Rpdml0eVxuICAgICAgLyoqXG4gICAgICAgKiBBY2NlbnQgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hY2NlbnQtY29sb3JcbiAgICAgICAqL1xuICAgICAgYWNjZW50OiBbe1xuICAgICAgICBhY2NlbnQ6IFsnYXV0bycsIGNvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBBcHBlYXJhbmNlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYXBwZWFyYW5jZVxuICAgICAgICovXG4gICAgICBhcHBlYXJhbmNlOiBbe1xuICAgICAgICBhcHBlYXJhbmNlOiBbJ25vbmUnLCAnYXV0byddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQ3Vyc29yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY3Vyc29yXG4gICAgICAgKi9cbiAgICAgIGN1cnNvcjogW3tcbiAgICAgICAgY3Vyc29yOiBbJ2F1dG8nLCAnZGVmYXVsdCcsICdwb2ludGVyJywgJ3dhaXQnLCAndGV4dCcsICdtb3ZlJywgJ2hlbHAnLCAnbm90LWFsbG93ZWQnLCAnbm9uZScsICdjb250ZXh0LW1lbnUnLCAncHJvZ3Jlc3MnLCAnY2VsbCcsICdjcm9zc2hhaXInLCAndmVydGljYWwtdGV4dCcsICdhbGlhcycsICdjb3B5JywgJ25vLWRyb3AnLCAnZ3JhYicsICdncmFiYmluZycsICdhbGwtc2Nyb2xsJywgJ2NvbC1yZXNpemUnLCAncm93LXJlc2l6ZScsICduLXJlc2l6ZScsICdlLXJlc2l6ZScsICdzLXJlc2l6ZScsICd3LXJlc2l6ZScsICduZS1yZXNpemUnLCAnbnctcmVzaXplJywgJ3NlLXJlc2l6ZScsICdzdy1yZXNpemUnLCAnZXctcmVzaXplJywgJ25zLXJlc2l6ZScsICduZXN3LXJlc2l6ZScsICdud3NlLXJlc2l6ZScsICd6b29tLWluJywgJ3pvb20tb3V0JywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBDYXJldCBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2p1c3QtaW4tdGltZS1tb2RlI2NhcmV0LWNvbG9yLXV0aWxpdGllc1xuICAgICAgICovXG4gICAgICAnY2FyZXQtY29sb3InOiBbe1xuICAgICAgICBjYXJldDogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQb2ludGVyIEV2ZW50c1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BvaW50ZXItZXZlbnRzXG4gICAgICAgKi9cbiAgICAgICdwb2ludGVyLWV2ZW50cyc6IFt7XG4gICAgICAgICdwb2ludGVyLWV2ZW50cyc6IFsnbm9uZScsICdhdXRvJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSZXNpemVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yZXNpemVcbiAgICAgICAqL1xuICAgICAgcmVzaXplOiBbe1xuICAgICAgICByZXNpemU6IFsnbm9uZScsICd5JywgJ3gnLCAnJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgQmVoYXZpb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtYmVoYXZpb3JcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1iZWhhdmlvcic6IFt7XG4gICAgICAgIHNjcm9sbDogWydhdXRvJywgJ3Ntb290aCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1tJzogW3tcbiAgICAgICAgJ3Njcm9sbC1tJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1teCc6IFt7XG4gICAgICAgICdzY3JvbGwtbXgnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW15JzogW3tcbiAgICAgICAgJ3Njcm9sbC1teSc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW1zJzogW3tcbiAgICAgICAgJ3Njcm9sbC1tcyc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1tZSc6IFt7XG4gICAgICAgICdzY3JvbGwtbWUnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBUb3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbXQnOiBbe1xuICAgICAgICAnc2Nyb2xsLW10JzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbXInOiBbe1xuICAgICAgICAnc2Nyb2xsLW1yJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW1iJzogW3tcbiAgICAgICAgJ3Njcm9sbC1tYic6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbWwnOiBbe1xuICAgICAgICAnc2Nyb2xsLW1sJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBQYWRkaW5nXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1wJzogW3tcbiAgICAgICAgJ3Njcm9sbC1wJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBQYWRkaW5nIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXB4JzogW3tcbiAgICAgICAgJ3Njcm9sbC1weCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1weSc6IFt7XG4gICAgICAgICdzY3JvbGwtcHknOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXBzJzogW3tcbiAgICAgICAgJ3Njcm9sbC1wcyc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXBlJzogW3tcbiAgICAgICAgJ3Njcm9sbC1wZSc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBUb3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXB0JzogW3tcbiAgICAgICAgJ3Njcm9sbC1wdCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtcHInOiBbe1xuICAgICAgICAnc2Nyb2xsLXByJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBQYWRkaW5nIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtcGInOiBbe1xuICAgICAgICAnc2Nyb2xsLXBiJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBQYWRkaW5nIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXBsJzogW3tcbiAgICAgICAgJ3Njcm9sbC1wbCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgU25hcCBBbGlnblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1zbmFwLWFsaWduXG4gICAgICAgKi9cbiAgICAgICdzbmFwLWFsaWduJzogW3tcbiAgICAgICAgc25hcDogWydzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ2FsaWduLW5vbmUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBTbmFwIFN0b3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtc25hcC1zdG9wXG4gICAgICAgKi9cbiAgICAgICdzbmFwLXN0b3AnOiBbe1xuICAgICAgICBzbmFwOiBbJ25vcm1hbCcsICdhbHdheXMnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBTbmFwIFR5cGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtc25hcC10eXBlXG4gICAgICAgKi9cbiAgICAgICdzbmFwLXR5cGUnOiBbe1xuICAgICAgICBzbmFwOiBbJ25vbmUnLCAneCcsICd5JywgJ2JvdGgnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBTbmFwIFR5cGUgU3RyaWN0bmVzc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1zbmFwLXR5cGVcbiAgICAgICAqL1xuICAgICAgJ3NuYXAtc3RyaWN0bmVzcyc6IFt7XG4gICAgICAgIHNuYXA6IFsnbWFuZGF0b3J5JywgJ3Byb3hpbWl0eSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVG91Y2ggQWN0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG91Y2gtYWN0aW9uXG4gICAgICAgKi9cbiAgICAgIHRvdWNoOiBbe1xuICAgICAgICB0b3VjaDogWydhdXRvJywgJ25vbmUnLCAnbWFuaXB1bGF0aW9uJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUb3VjaCBBY3Rpb24gWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvdWNoLWFjdGlvblxuICAgICAgICovXG4gICAgICAndG91Y2gteCc6IFt7XG4gICAgICAgICd0b3VjaC1wYW4nOiBbJ3gnLCAnbGVmdCcsICdyaWdodCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVG91Y2ggQWN0aW9uIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3VjaC1hY3Rpb25cbiAgICAgICAqL1xuICAgICAgJ3RvdWNoLXknOiBbe1xuICAgICAgICAndG91Y2gtcGFuJzogWyd5JywgJ3VwJywgJ2Rvd24nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRvdWNoIEFjdGlvbiBQaW5jaCBab29tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG91Y2gtYWN0aW9uXG4gICAgICAgKi9cbiAgICAgICd0b3VjaC1weic6IFsndG91Y2gtcGluY2gtem9vbSddLFxuICAgICAgLyoqXG4gICAgICAgKiBVc2VyIFNlbGVjdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3VzZXItc2VsZWN0XG4gICAgICAgKi9cbiAgICAgIHNlbGVjdDogW3tcbiAgICAgICAgc2VsZWN0OiBbJ25vbmUnLCAndGV4dCcsICdhbGwnLCAnYXV0byddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogV2lsbCBDaGFuZ2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy93aWxsLWNoYW5nZVxuICAgICAgICovXG4gICAgICAnd2lsbC1jaGFuZ2UnOiBbe1xuICAgICAgICAnd2lsbC1jaGFuZ2UnOiBbJ2F1dG8nLCAnc2Nyb2xsJywgJ2NvbnRlbnRzJywgJ3RyYW5zZm9ybScsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8vIFNWR1xuICAgICAgLyoqXG4gICAgICAgKiBGaWxsXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmlsbFxuICAgICAgICovXG4gICAgICBmaWxsOiBbe1xuICAgICAgICBmaWxsOiBbY29sb3JzLCAnbm9uZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU3Ryb2tlIFdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc3Ryb2tlLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdzdHJva2Utdyc6IFt7XG4gICAgICAgIHN0cm9rZTogW2lzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aCwgaXNBcmJpdHJhcnlOdW1iZXJdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU3Ryb2tlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc3Ryb2tlXG4gICAgICAgKi9cbiAgICAgIHN0cm9rZTogW3tcbiAgICAgICAgc3Ryb2tlOiBbY29sb3JzLCAnbm9uZSddXG4gICAgICB9XSxcbiAgICAgIC8vIEFjY2Vzc2liaWxpdHlcbiAgICAgIC8qKlxuICAgICAgICogU2NyZWVuIFJlYWRlcnNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JlZW4tcmVhZGVyc1xuICAgICAgICovXG4gICAgICBzcjogWydzci1vbmx5JywgJ25vdC1zci1vbmx5J10sXG4gICAgICAvKipcbiAgICAgICAqIEZvcmNlZCBDb2xvciBBZGp1c3RcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb3JjZWQtY29sb3ItYWRqdXN0XG4gICAgICAgKi9cbiAgICAgICdmb3JjZWQtY29sb3ItYWRqdXN0JzogW3tcbiAgICAgICAgJ2ZvcmNlZC1jb2xvci1hZGp1c3QnOiBbJ2F1dG8nLCAnbm9uZSddXG4gICAgICB9XVxuICAgIH0sXG4gICAgY29uZmxpY3RpbmdDbGFzc0dyb3Vwczoge1xuICAgICAgb3ZlcmZsb3c6IFsnb3ZlcmZsb3cteCcsICdvdmVyZmxvdy15J10sXG4gICAgICBvdmVyc2Nyb2xsOiBbJ292ZXJzY3JvbGwteCcsICdvdmVyc2Nyb2xsLXknXSxcbiAgICAgIGluc2V0OiBbJ2luc2V0LXgnLCAnaW5zZXQteScsICdzdGFydCcsICdlbmQnLCAndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0J10sXG4gICAgICAnaW5zZXQteCc6IFsncmlnaHQnLCAnbGVmdCddLFxuICAgICAgJ2luc2V0LXknOiBbJ3RvcCcsICdib3R0b20nXSxcbiAgICAgIGZsZXg6IFsnYmFzaXMnLCAnZ3JvdycsICdzaHJpbmsnXSxcbiAgICAgIGdhcDogWydnYXAteCcsICdnYXAteSddLFxuICAgICAgcDogWydweCcsICdweScsICdwcycsICdwZScsICdwdCcsICdwcicsICdwYicsICdwbCddLFxuICAgICAgcHg6IFsncHInLCAncGwnXSxcbiAgICAgIHB5OiBbJ3B0JywgJ3BiJ10sXG4gICAgICBtOiBbJ214JywgJ215JywgJ21zJywgJ21lJywgJ210JywgJ21yJywgJ21iJywgJ21sJ10sXG4gICAgICBteDogWydtcicsICdtbCddLFxuICAgICAgbXk6IFsnbXQnLCAnbWInXSxcbiAgICAgIHNpemU6IFsndycsICdoJ10sXG4gICAgICAnZm9udC1zaXplJzogWydsZWFkaW5nJ10sXG4gICAgICAnZnZuLW5vcm1hbCc6IFsnZnZuLW9yZGluYWwnLCAnZnZuLXNsYXNoZWQtemVybycsICdmdm4tZmlndXJlJywgJ2Z2bi1zcGFjaW5nJywgJ2Z2bi1mcmFjdGlvbiddLFxuICAgICAgJ2Z2bi1vcmRpbmFsJzogWydmdm4tbm9ybWFsJ10sXG4gICAgICAnZnZuLXNsYXNoZWQtemVybyc6IFsnZnZuLW5vcm1hbCddLFxuICAgICAgJ2Z2bi1maWd1cmUnOiBbJ2Z2bi1ub3JtYWwnXSxcbiAgICAgICdmdm4tc3BhY2luZyc6IFsnZnZuLW5vcm1hbCddLFxuICAgICAgJ2Z2bi1mcmFjdGlvbic6IFsnZnZuLW5vcm1hbCddLFxuICAgICAgJ2xpbmUtY2xhbXAnOiBbJ2Rpc3BsYXknLCAnb3ZlcmZsb3cnXSxcbiAgICAgIHJvdW5kZWQ6IFsncm91bmRlZC1zJywgJ3JvdW5kZWQtZScsICdyb3VuZGVkLXQnLCAncm91bmRlZC1yJywgJ3JvdW5kZWQtYicsICdyb3VuZGVkLWwnLCAncm91bmRlZC1zcycsICdyb3VuZGVkLXNlJywgJ3JvdW5kZWQtZWUnLCAncm91bmRlZC1lcycsICdyb3VuZGVkLXRsJywgJ3JvdW5kZWQtdHInLCAncm91bmRlZC1icicsICdyb3VuZGVkLWJsJ10sXG4gICAgICAncm91bmRlZC1zJzogWydyb3VuZGVkLXNzJywgJ3JvdW5kZWQtZXMnXSxcbiAgICAgICdyb3VuZGVkLWUnOiBbJ3JvdW5kZWQtc2UnLCAncm91bmRlZC1lZSddLFxuICAgICAgJ3JvdW5kZWQtdCc6IFsncm91bmRlZC10bCcsICdyb3VuZGVkLXRyJ10sXG4gICAgICAncm91bmRlZC1yJzogWydyb3VuZGVkLXRyJywgJ3JvdW5kZWQtYnInXSxcbiAgICAgICdyb3VuZGVkLWInOiBbJ3JvdW5kZWQtYnInLCAncm91bmRlZC1ibCddLFxuICAgICAgJ3JvdW5kZWQtbCc6IFsncm91bmRlZC10bCcsICdyb3VuZGVkLWJsJ10sXG4gICAgICAnYm9yZGVyLXNwYWNpbmcnOiBbJ2JvcmRlci1zcGFjaW5nLXgnLCAnYm9yZGVyLXNwYWNpbmcteSddLFxuICAgICAgJ2JvcmRlci13JzogWydib3JkZXItdy1zJywgJ2JvcmRlci13LWUnLCAnYm9yZGVyLXctdCcsICdib3JkZXItdy1yJywgJ2JvcmRlci13LWInLCAnYm9yZGVyLXctbCddLFxuICAgICAgJ2JvcmRlci13LXgnOiBbJ2JvcmRlci13LXInLCAnYm9yZGVyLXctbCddLFxuICAgICAgJ2JvcmRlci13LXknOiBbJ2JvcmRlci13LXQnLCAnYm9yZGVyLXctYiddLFxuICAgICAgJ2JvcmRlci1jb2xvcic6IFsnYm9yZGVyLWNvbG9yLXQnLCAnYm9yZGVyLWNvbG9yLXInLCAnYm9yZGVyLWNvbG9yLWInLCAnYm9yZGVyLWNvbG9yLWwnXSxcbiAgICAgICdib3JkZXItY29sb3IteCc6IFsnYm9yZGVyLWNvbG9yLXInLCAnYm9yZGVyLWNvbG9yLWwnXSxcbiAgICAgICdib3JkZXItY29sb3IteSc6IFsnYm9yZGVyLWNvbG9yLXQnLCAnYm9yZGVyLWNvbG9yLWInXSxcbiAgICAgICdzY3JvbGwtbSc6IFsnc2Nyb2xsLW14JywgJ3Njcm9sbC1teScsICdzY3JvbGwtbXMnLCAnc2Nyb2xsLW1lJywgJ3Njcm9sbC1tdCcsICdzY3JvbGwtbXInLCAnc2Nyb2xsLW1iJywgJ3Njcm9sbC1tbCddLFxuICAgICAgJ3Njcm9sbC1teCc6IFsnc2Nyb2xsLW1yJywgJ3Njcm9sbC1tbCddLFxuICAgICAgJ3Njcm9sbC1teSc6IFsnc2Nyb2xsLW10JywgJ3Njcm9sbC1tYiddLFxuICAgICAgJ3Njcm9sbC1wJzogWydzY3JvbGwtcHgnLCAnc2Nyb2xsLXB5JywgJ3Njcm9sbC1wcycsICdzY3JvbGwtcGUnLCAnc2Nyb2xsLXB0JywgJ3Njcm9sbC1wcicsICdzY3JvbGwtcGInLCAnc2Nyb2xsLXBsJ10sXG4gICAgICAnc2Nyb2xsLXB4JzogWydzY3JvbGwtcHInLCAnc2Nyb2xsLXBsJ10sXG4gICAgICAnc2Nyb2xsLXB5JzogWydzY3JvbGwtcHQnLCAnc2Nyb2xsLXBiJ10sXG4gICAgICB0b3VjaDogWyd0b3VjaC14JywgJ3RvdWNoLXknLCAndG91Y2gtcHonXSxcbiAgICAgICd0b3VjaC14JzogWyd0b3VjaCddLFxuICAgICAgJ3RvdWNoLXknOiBbJ3RvdWNoJ10sXG4gICAgICAndG91Y2gtcHonOiBbJ3RvdWNoJ11cbiAgICB9LFxuICAgIGNvbmZsaWN0aW5nQ2xhc3NHcm91cE1vZGlmaWVyczoge1xuICAgICAgJ2ZvbnQtc2l6ZSc6IFsnbGVhZGluZyddXG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIEBwYXJhbSBiYXNlQ29uZmlnIENvbmZpZyB3aGVyZSBvdGhlciBjb25maWcgd2lsbCBiZSBtZXJnZWQgaW50by4gVGhpcyBvYmplY3Qgd2lsbCBiZSBtdXRhdGVkLlxuICogQHBhcmFtIGNvbmZpZ0V4dGVuc2lvbiBQYXJ0aWFsIGNvbmZpZyB0byBtZXJnZSBpbnRvIHRoZSBgYmFzZUNvbmZpZ2AuXG4gKi9cbmZ1bmN0aW9uIG1lcmdlQ29uZmlncyhiYXNlQ29uZmlnLCB7XG4gIGNhY2hlU2l6ZSxcbiAgcHJlZml4LFxuICBzZXBhcmF0b3IsXG4gIGV4cGVyaW1lbnRhbFBhcnNlQ2xhc3NOYW1lLFxuICBleHRlbmQgPSB7fSxcbiAgb3ZlcnJpZGUgPSB7fVxufSkge1xuICBvdmVycmlkZVByb3BlcnR5KGJhc2VDb25maWcsICdjYWNoZVNpemUnLCBjYWNoZVNpemUpO1xuICBvdmVycmlkZVByb3BlcnR5KGJhc2VDb25maWcsICdwcmVmaXgnLCBwcmVmaXgpO1xuICBvdmVycmlkZVByb3BlcnR5KGJhc2VDb25maWcsICdzZXBhcmF0b3InLCBzZXBhcmF0b3IpO1xuICBvdmVycmlkZVByb3BlcnR5KGJhc2VDb25maWcsICdleHBlcmltZW50YWxQYXJzZUNsYXNzTmFtZScsIGV4cGVyaW1lbnRhbFBhcnNlQ2xhc3NOYW1lKTtcbiAgZm9yIChjb25zdCBjb25maWdLZXkgaW4gb3ZlcnJpZGUpIHtcbiAgICBvdmVycmlkZUNvbmZpZ1Byb3BlcnRpZXMoYmFzZUNvbmZpZ1tjb25maWdLZXldLCBvdmVycmlkZVtjb25maWdLZXldKTtcbiAgfVxuICBmb3IgKGNvbnN0IGtleSBpbiBleHRlbmQpIHtcbiAgICBtZXJnZUNvbmZpZ1Byb3BlcnRpZXMoYmFzZUNvbmZpZ1trZXldLCBleHRlbmRba2V5XSk7XG4gIH1cbiAgcmV0dXJuIGJhc2VDb25maWc7XG59XG5mdW5jdGlvbiBvdmVycmlkZVByb3BlcnR5KGJhc2VPYmplY3QsIG92ZXJyaWRlS2V5LCBvdmVycmlkZVZhbHVlKSB7XG4gIGlmIChvdmVycmlkZVZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICBiYXNlT2JqZWN0W292ZXJyaWRlS2V5XSA9IG92ZXJyaWRlVmFsdWU7XG4gIH1cbn1cbmZ1bmN0aW9uIG92ZXJyaWRlQ29uZmlnUHJvcGVydGllcyhiYXNlT2JqZWN0LCBvdmVycmlkZU9iamVjdCkge1xuICBpZiAob3ZlcnJpZGVPYmplY3QpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBvdmVycmlkZU9iamVjdCkge1xuICAgICAgb3ZlcnJpZGVQcm9wZXJ0eShiYXNlT2JqZWN0LCBrZXksIG92ZXJyaWRlT2JqZWN0W2tleV0pO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gbWVyZ2VDb25maWdQcm9wZXJ0aWVzKGJhc2VPYmplY3QsIG1lcmdlT2JqZWN0KSB7XG4gIGlmIChtZXJnZU9iamVjdCkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIG1lcmdlT2JqZWN0KSB7XG4gICAgICBjb25zdCBtZXJnZVZhbHVlID0gbWVyZ2VPYmplY3Rba2V5XTtcbiAgICAgIGlmIChtZXJnZVZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYmFzZU9iamVjdFtrZXldID0gKGJhc2VPYmplY3Rba2V5XSB8fCBbXSkuY29uY2F0KG1lcmdlVmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gZXh0ZW5kVGFpbHdpbmRNZXJnZShjb25maWdFeHRlbnNpb24sIC4uLmNyZWF0ZUNvbmZpZykge1xuICByZXR1cm4gdHlwZW9mIGNvbmZpZ0V4dGVuc2lvbiA9PT0gJ2Z1bmN0aW9uJyA/IGNyZWF0ZVRhaWx3aW5kTWVyZ2UoZ2V0RGVmYXVsdENvbmZpZywgY29uZmlnRXh0ZW5zaW9uLCAuLi5jcmVhdGVDb25maWcpIDogY3JlYXRlVGFpbHdpbmRNZXJnZSgoKSA9PiBtZXJnZUNvbmZpZ3MoZ2V0RGVmYXVsdENvbmZpZygpLCBjb25maWdFeHRlbnNpb24pLCAuLi5jcmVhdGVDb25maWcpO1xufVxuY29uc3QgdHdNZXJnZSA9IC8qI19fUFVSRV9fKi9jcmVhdGVUYWlsd2luZE1lcmdlKGdldERlZmF1bHRDb25maWcpO1xuZXhwb3J0IHsgY3JlYXRlVGFpbHdpbmRNZXJnZSwgZXh0ZW5kVGFpbHdpbmRNZXJnZSwgZnJvbVRoZW1lLCBnZXREZWZhdWx0Q29uZmlnLCBtZXJnZUNvbmZpZ3MsIHR3Sm9pbiwgdHdNZXJnZSwgdmFsaWRhdG9ycyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YnVuZGxlLW1qcy5tanMubWFwXG4iLCJmdW5jdGlvbiBpc09iamVjdChpdGVtKSB7XG4gIHJldHVybiBpdGVtICE9PSBudWxsICYmIHR5cGVvZiBpdGVtID09PSBcIm9iamVjdFwiICYmIGl0ZW0uY29uc3RydWN0b3IgPT09IE9iamVjdDtcbn1cblxuZXhwb3J0IHsgaXNPYmplY3QgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLW9iamVjdC5tanMubWFwXG4iLCJpbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJy4vaXMtb2JqZWN0Lm1qcyc7XG5cbmZ1bmN0aW9uIGNsb25lRGVlcChzb3VyY2UpIHtcbiAgaWYgKCFpc09iamVjdChzb3VyY2UpKSB7XG4gICAgcmV0dXJuIHNvdXJjZTtcbiAgfVxuICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgaW4gc291cmNlKSB7XG4gICAgb3V0cHV0W2tleV0gPSBjbG9uZURlZXAoc291cmNlW2tleV0pO1xuICB9XG4gIHJldHVybiBvdXRwdXQ7XG59XG5cbmV4cG9ydCB7IGNsb25lRGVlcCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2xvbmUtZGVlcC5tanMubWFwXG4iLCJpbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICcuL2Nsb25lLWRlZXAubWpzJztcbmltcG9ydCB7IGlzT2JqZWN0IH0gZnJvbSAnLi9pcy1vYmplY3QubWpzJztcblxuZnVuY3Rpb24gbWVyZ2VEZWVwKHRhcmdldCwgc291cmNlKSB7XG4gIGlmIChpc09iamVjdChzb3VyY2UpICYmIE9iamVjdC5rZXlzKHNvdXJjZSkubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGNsb25lRGVlcCh7IC4uLnRhcmdldCwgLi4uc291cmNlIH0pO1xuICB9XG4gIGNvbnN0IG91dHB1dCA9IHsgLi4udGFyZ2V0LCAuLi5zb3VyY2UgfTtcbiAgaWYgKGlzT2JqZWN0KHNvdXJjZSkgJiYgaXNPYmplY3QodGFyZ2V0KSkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIHNvdXJjZSkge1xuICAgICAgaWYgKGlzT2JqZWN0KHNvdXJjZVtrZXldKSAmJiBrZXkgaW4gdGFyZ2V0ICYmIGlzT2JqZWN0KHRhcmdldFtrZXldKSkge1xuICAgICAgICBvdXRwdXRba2V5XSA9IG1lcmdlRGVlcCh0YXJnZXRba2V5XSwgc291cmNlW2tleV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0cHV0W2tleV0gPSBpc09iamVjdChzb3VyY2Vba2V5XSkgPyBjbG9uZURlZXAoc291cmNlW2tleV0pIDogc291cmNlW2tleV07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBvdXRwdXQ7XG59XG5cbmV4cG9ydCB7IG1lcmdlRGVlcCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWVyZ2UtZGVlcC5tanMubWFwXG4iLCJmdW5jdGlvbiBjcmVhdGVUaGVtZShpbnB1dCkge1xuICByZXR1cm4gaW5wdXQ7XG59XG5cbmV4cG9ydCB7IGNyZWF0ZVRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcmVhdGUtdGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBhY2NvcmRpb25UaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgcm9vdDoge1xuICAgIGJhc2U6IFwiZGl2aWRlLXkgZGl2aWRlLWdyYXktMjAwIGJvcmRlci1ncmF5LTIwMCBkYXJrOmRpdmlkZS1ncmF5LTcwMCBkYXJrOmJvcmRlci1ncmF5LTcwMFwiLFxuICAgIGZsdXNoOiB7XG4gICAgICBvZmY6IFwicm91bmRlZC1sZyBib3JkZXJcIixcbiAgICAgIG9uOiBcImJvcmRlci1iXCJcbiAgICB9XG4gIH0sXG4gIGNvbnRlbnQ6IHtcbiAgICBiYXNlOiBcInAtNSBmaXJzdDpyb3VuZGVkLXQtbGcgbGFzdDpyb3VuZGVkLWItbGcgZGFyazpiZy1ncmF5LTkwMFwiXG4gIH0sXG4gIHRpdGxlOiB7XG4gICAgYXJyb3c6IHtcbiAgICAgIGJhc2U6IFwiaC02IHctNiBzaHJpbmstMFwiLFxuICAgICAgb3Blbjoge1xuICAgICAgICBvZmY6IFwiXCIsXG4gICAgICAgIG9uOiBcInJvdGF0ZS0xODBcIlxuICAgICAgfVxuICAgIH0sXG4gICAgYmFzZTogXCJmbGV4IHctZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtNSB0ZXh0LWxlZnQgZm9udC1tZWRpdW0gdGV4dC1ncmF5LTUwMCBmaXJzdDpyb3VuZGVkLXQtbGcgbGFzdDpyb3VuZGVkLWItbGcgZGFyazp0ZXh0LWdyYXktNDAwXCIsXG4gICAgZmx1c2g6IHtcbiAgICAgIG9mZjogXCJob3ZlcjpiZy1ncmF5LTEwMCBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1ncmF5LTIwMCBkYXJrOmhvdmVyOmJnLWdyYXktODAwIGRhcms6Zm9jdXM6cmluZy1ncmF5LTgwMFwiLFxuICAgICAgb246IFwiYmctdHJhbnNwYXJlbnQgZGFyazpiZy10cmFuc3BhcmVudFwiXG4gICAgfSxcbiAgICBoZWFkaW5nOiBcIlwiLFxuICAgIG9wZW46IHtcbiAgICAgIG9mZjogXCJcIixcbiAgICAgIG9uOiBcImJnLWdyYXktMTAwIHRleHQtZ3JheS05MDAgZGFyazpiZy1ncmF5LTgwMCBkYXJrOnRleHQtd2hpdGVcIlxuICAgIH1cbiAgfVxufSk7XG5cbmV4cG9ydCB7IGFjY29yZGlvblRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IGFsZXJ0VGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIGJhc2U6IFwiZmxleCBmbGV4LWNvbCBnYXAtMiBwLTQgdGV4dC1zbVwiLFxuICBib3JkZXJBY2NlbnQ6IFwiYm9yZGVyLXQtNFwiLFxuICBjbG9zZUJ1dHRvbjoge1xuICAgIGJhc2U6IFwiLW0tMS41IG1sLWF1dG8gaW5saW5lLWZsZXggaC04IHctOCByb3VuZGVkLWxnIHAtMS41IGZvY3VzOnJpbmctMlwiLFxuICAgIGljb246IFwiaC01IHctNVwiLFxuICAgIGNvbG9yOiB7XG4gICAgICBpbmZvOiBcImJnLWN5YW4tMTAwIHRleHQtY3lhbi01MDAgaG92ZXI6YmctY3lhbi0yMDAgZm9jdXM6cmluZy1jeWFuLTQwMCBkYXJrOmJnLWN5YW4tMjAwIGRhcms6dGV4dC1jeWFuLTYwMCBkYXJrOmhvdmVyOmJnLWN5YW4tMzAwXCIsXG4gICAgICBncmF5OiBcImJnLWdyYXktMTAwIHRleHQtZ3JheS01MDAgaG92ZXI6YmctZ3JheS0yMDAgZm9jdXM6cmluZy1ncmF5LTQwMCBkYXJrOmJnLWdyYXktNzAwIGRhcms6dGV4dC1ncmF5LTMwMCBkYXJrOmhvdmVyOmJnLWdyYXktODAwIGRhcms6aG92ZXI6dGV4dC13aGl0ZVwiLFxuICAgICAgZmFpbHVyZTogXCJiZy1yZWQtMTAwIHRleHQtcmVkLTUwMCBob3ZlcjpiZy1yZWQtMjAwIGZvY3VzOnJpbmctcmVkLTQwMCBkYXJrOmJnLXJlZC0yMDAgZGFyazp0ZXh0LXJlZC02MDAgZGFyazpob3ZlcjpiZy1yZWQtMzAwXCIsXG4gICAgICBzdWNjZXNzOiBcImJnLWdyZWVuLTEwMCB0ZXh0LWdyZWVuLTUwMCBob3ZlcjpiZy1ncmVlbi0yMDAgZm9jdXM6cmluZy1ncmVlbi00MDAgZGFyazpiZy1ncmVlbi0yMDAgZGFyazp0ZXh0LWdyZWVuLTYwMCBkYXJrOmhvdmVyOmJnLWdyZWVuLTMwMFwiLFxuICAgICAgd2FybmluZzogXCJiZy15ZWxsb3ctMTAwIHRleHQteWVsbG93LTUwMCBob3ZlcjpiZy15ZWxsb3ctMjAwIGZvY3VzOnJpbmcteWVsbG93LTQwMCBkYXJrOmJnLXllbGxvdy0yMDAgZGFyazp0ZXh0LXllbGxvdy02MDAgZGFyazpob3ZlcjpiZy15ZWxsb3ctMzAwXCIsXG4gICAgICByZWQ6IFwiYmctcmVkLTEwMCB0ZXh0LXJlZC01MDAgaG92ZXI6YmctcmVkLTIwMCBmb2N1czpyaW5nLXJlZC00MDAgZGFyazpiZy1yZWQtMjAwIGRhcms6dGV4dC1yZWQtNjAwIGRhcms6aG92ZXI6YmctcmVkLTMwMFwiLFxuICAgICAgZ3JlZW46IFwiYmctZ3JlZW4tMTAwIHRleHQtZ3JlZW4tNTAwIGhvdmVyOmJnLWdyZWVuLTIwMCBmb2N1czpyaW5nLWdyZWVuLTQwMCBkYXJrOmJnLWdyZWVuLTIwMCBkYXJrOnRleHQtZ3JlZW4tNjAwIGRhcms6aG92ZXI6YmctZ3JlZW4tMzAwXCIsXG4gICAgICB5ZWxsb3c6IFwiYmcteWVsbG93LTEwMCB0ZXh0LXllbGxvdy01MDAgaG92ZXI6YmcteWVsbG93LTIwMCBmb2N1czpyaW5nLXllbGxvdy00MDAgZGFyazpiZy15ZWxsb3ctMjAwIGRhcms6dGV4dC15ZWxsb3ctNjAwIGRhcms6aG92ZXI6YmcteWVsbG93LTMwMFwiLFxuICAgICAgYmx1ZTogXCJiZy1ibHVlLTEwMCB0ZXh0LWJsdWUtNTAwIGhvdmVyOmJnLWJsdWUtMjAwIGZvY3VzOnJpbmctYmx1ZS00MDAgZGFyazpiZy1ibHVlLTIwMCBkYXJrOnRleHQtYmx1ZS02MDAgZGFyazpob3ZlcjpiZy1ibHVlLTMwMFwiLFxuICAgICAgY3lhbjogXCJiZy1jeWFuLTEwMCB0ZXh0LWN5YW4tNTAwIGhvdmVyOmJnLWN5YW4tMjAwIGZvY3VzOnJpbmctY3lhbi00MDAgZGFyazpiZy1jeWFuLTIwMCBkYXJrOnRleHQtY3lhbi02MDAgZGFyazpob3ZlcjpiZy1jeWFuLTMwMFwiLFxuICAgICAgcGluazogXCJiZy1waW5rLTEwMCB0ZXh0LXBpbmstNTAwIGhvdmVyOmJnLXBpbmstMjAwIGZvY3VzOnJpbmctcGluay00MDAgZGFyazpiZy1waW5rLTIwMCBkYXJrOnRleHQtcGluay02MDAgZGFyazpob3ZlcjpiZy1waW5rLTMwMFwiLFxuICAgICAgbGltZTogXCJiZy1saW1lLTEwMCB0ZXh0LWxpbWUtNTAwIGhvdmVyOmJnLWxpbWUtMjAwIGZvY3VzOnJpbmctbGltZS00MDAgZGFyazpiZy1saW1lLTIwMCBkYXJrOnRleHQtbGltZS02MDAgZGFyazpob3ZlcjpiZy1saW1lLTMwMFwiLFxuICAgICAgZGFyazogXCJiZy1ncmF5LTEwMCB0ZXh0LWdyYXktNTAwIGhvdmVyOmJnLWdyYXktMjAwIGZvY3VzOnJpbmctZ3JheS00MDAgZGFyazpiZy1ncmF5LTIwMCBkYXJrOnRleHQtZ3JheS02MDAgZGFyazpob3ZlcjpiZy1ncmF5LTMwMFwiLFxuICAgICAgaW5kaWdvOiBcImJnLWluZGlnby0xMDAgdGV4dC1pbmRpZ28tNTAwIGhvdmVyOmJnLWluZGlnby0yMDAgZm9jdXM6cmluZy1pbmRpZ28tNDAwIGRhcms6YmctaW5kaWdvLTIwMCBkYXJrOnRleHQtaW5kaWdvLTYwMCBkYXJrOmhvdmVyOmJnLWluZGlnby0zMDBcIixcbiAgICAgIHB1cnBsZTogXCJiZy1wdXJwbGUtMTAwIHRleHQtcHVycGxlLTUwMCBob3ZlcjpiZy1wdXJwbGUtMjAwIGZvY3VzOnJpbmctcHVycGxlLTQwMCBkYXJrOmJnLXB1cnBsZS0yMDAgZGFyazp0ZXh0LXB1cnBsZS02MDAgZGFyazpob3ZlcjpiZy1wdXJwbGUtMzAwXCIsXG4gICAgICB0ZWFsOiBcImJnLXRlYWwtMTAwIHRleHQtdGVhbC01MDAgaG92ZXI6YmctdGVhbC0yMDAgZm9jdXM6cmluZy10ZWFsLTQwMCBkYXJrOmJnLXRlYWwtMjAwIGRhcms6dGV4dC10ZWFsLTYwMCBkYXJrOmhvdmVyOmJnLXRlYWwtMzAwXCIsXG4gICAgICBsaWdodDogXCJiZy1ncmF5LTUwIHRleHQtZ3JheS01MDAgaG92ZXI6YmctZ3JheS0xMDAgZm9jdXM6cmluZy1ncmF5LTIwMCBkYXJrOmJnLWdyYXktNjAwIGRhcms6dGV4dC1ncmF5LTIwMCBkYXJrOmhvdmVyOmJnLWdyYXktNzAwIGRhcms6aG92ZXI6dGV4dC13aGl0ZVwiXG4gICAgfVxuICB9LFxuICBjb2xvcjoge1xuICAgIGluZm86IFwiYm9yZGVyLWN5YW4tNTAwIGJnLWN5YW4tMTAwIHRleHQtY3lhbi03MDAgZGFyazpiZy1jeWFuLTIwMCBkYXJrOnRleHQtY3lhbi04MDBcIixcbiAgICBncmF5OiBcImJvcmRlci1ncmF5LTUwMCBiZy1ncmF5LTEwMCB0ZXh0LWdyYXktNzAwIGRhcms6YmctZ3JheS03MDAgZGFyazp0ZXh0LWdyYXktMzAwXCIsXG4gICAgZmFpbHVyZTogXCJib3JkZXItcmVkLTUwMCBiZy1yZWQtMTAwIHRleHQtcmVkLTcwMCBkYXJrOmJnLXJlZC0yMDAgZGFyazp0ZXh0LXJlZC04MDBcIixcbiAgICBzdWNjZXNzOiBcImJvcmRlci1ncmVlbi01MDAgYmctZ3JlZW4tMTAwIHRleHQtZ3JlZW4tNzAwIGRhcms6YmctZ3JlZW4tMjAwIGRhcms6dGV4dC1ncmVlbi04MDBcIixcbiAgICB3YXJuaW5nOiBcImJvcmRlci15ZWxsb3ctNTAwIGJnLXllbGxvdy0xMDAgdGV4dC15ZWxsb3ctNzAwIGRhcms6YmcteWVsbG93LTIwMCBkYXJrOnRleHQteWVsbG93LTgwMFwiLFxuICAgIHJlZDogXCJib3JkZXItcmVkLTUwMCBiZy1yZWQtMTAwIHRleHQtcmVkLTcwMCBkYXJrOmJnLXJlZC0yMDAgZGFyazp0ZXh0LXJlZC04MDBcIixcbiAgICBncmVlbjogXCJib3JkZXItZ3JlZW4tNTAwIGJnLWdyZWVuLTEwMCB0ZXh0LWdyZWVuLTcwMCBkYXJrOmJnLWdyZWVuLTIwMCBkYXJrOnRleHQtZ3JlZW4tODAwXCIsXG4gICAgeWVsbG93OiBcImJvcmRlci15ZWxsb3ctNTAwIGJnLXllbGxvdy0xMDAgdGV4dC15ZWxsb3ctNzAwIGRhcms6YmcteWVsbG93LTIwMCBkYXJrOnRleHQteWVsbG93LTgwMFwiLFxuICAgIGJsdWU6IFwiYm9yZGVyLWJsdWUtNTAwIGJnLWJsdWUtMTAwIHRleHQtYmx1ZS03MDAgZGFyazpiZy1ibHVlLTIwMCBkYXJrOnRleHQtYmx1ZS04MDBcIixcbiAgICBjeWFuOiBcImJvcmRlci1jeWFuLTUwMCBiZy1jeWFuLTEwMCB0ZXh0LWN5YW4tNzAwIGRhcms6YmctY3lhbi0yMDAgZGFyazp0ZXh0LWN5YW4tODAwXCIsXG4gICAgcGluazogXCJib3JkZXItcGluay01MDAgYmctcGluay0xMDAgdGV4dC1waW5rLTcwMCBkYXJrOmJnLXBpbmstMjAwIGRhcms6dGV4dC1waW5rLTgwMFwiLFxuICAgIGxpbWU6IFwiYm9yZGVyLWxpbWUtNTAwIGJnLWxpbWUtMTAwIHRleHQtbGltZS03MDAgZGFyazpiZy1saW1lLTIwMCBkYXJrOnRleHQtbGltZS04MDBcIixcbiAgICBkYXJrOiBcImJvcmRlci1ncmF5LTYwMCBiZy1ncmF5LTgwMCB0ZXh0LWdyYXktMjAwIGRhcms6YmctZ3JheS05MDAgZGFyazp0ZXh0LWdyYXktMzAwXCIsXG4gICAgaW5kaWdvOiBcImJvcmRlci1pbmRpZ28tNTAwIGJnLWluZGlnby0xMDAgdGV4dC1pbmRpZ28tNzAwIGRhcms6YmctaW5kaWdvLTIwMCBkYXJrOnRleHQtaW5kaWdvLTgwMFwiLFxuICAgIHB1cnBsZTogXCJib3JkZXItcHVycGxlLTUwMCBiZy1wdXJwbGUtMTAwIHRleHQtcHVycGxlLTcwMCBkYXJrOmJnLXB1cnBsZS0yMDAgZGFyazp0ZXh0LXB1cnBsZS04MDBcIixcbiAgICB0ZWFsOiBcImJvcmRlci10ZWFsLTUwMCBiZy10ZWFsLTEwMCB0ZXh0LXRlYWwtNzAwIGRhcms6YmctdGVhbC0yMDAgZGFyazp0ZXh0LXRlYWwtODAwXCIsXG4gICAgbGlnaHQ6IFwiYm9yZGVyLWdyYXktNDAwIGJnLWdyYXktNTAgdGV4dC1ncmF5LTYwMCBkYXJrOmJnLWdyYXktNTAwIGRhcms6dGV4dC1ncmF5LTIwMFwiXG4gIH0sXG4gIGljb246IFwibXItMyBpbmxpbmUgaC01IHctNSBmbGV4LXNocmluay0wXCIsXG4gIHJvdW5kZWQ6IFwicm91bmRlZC1sZ1wiLFxuICB3cmFwcGVyOiBcImZsZXggaXRlbXMtY2VudGVyXCJcbn0pO1xuXG5leHBvcnQgeyBhbGVydFRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IGF2YXRhclRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICByb290OiB7XG4gICAgYmFzZTogXCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBzcGFjZS14LTQgcm91bmRlZFwiLFxuICAgIGJvcmRlcmVkOiBcInAtMSByaW5nLTJcIixcbiAgICByb3VuZGVkOiBcInJvdW5kZWQtZnVsbFwiLFxuICAgIGNvbG9yOiB7XG4gICAgICBkYXJrOiBcInJpbmctZ3JheS04MDAgZGFyazpyaW5nLWdyYXktODAwXCIsXG4gICAgICBmYWlsdXJlOiBcInJpbmctcmVkLTUwMCBkYXJrOnJpbmctcmVkLTcwMFwiLFxuICAgICAgZ3JheTogXCJyaW5nLWdyYXktNTAwIGRhcms6cmluZy1ncmF5LTQwMFwiLFxuICAgICAgaW5mbzogXCJyaW5nLWN5YW4tNDAwIGRhcms6cmluZy1jeWFuLTgwMFwiLFxuICAgICAgbGlnaHQ6IFwicmluZy1ncmF5LTMwMCBkYXJrOnJpbmctZ3JheS01MDBcIixcbiAgICAgIHB1cnBsZTogXCJyaW5nLXB1cnBsZS01MDAgZGFyazpyaW5nLXB1cnBsZS02MDBcIixcbiAgICAgIHN1Y2Nlc3M6IFwicmluZy1ncmVlbi01MDAgZGFyazpyaW5nLWdyZWVuLTUwMFwiLFxuICAgICAgd2FybmluZzogXCJyaW5nLXllbGxvdy0zMDAgZGFyazpyaW5nLXllbGxvdy01MDBcIixcbiAgICAgIHBpbms6IFwicmluZy1waW5rLTUwMCBkYXJrOnJpbmctcGluay01MDBcIlxuICAgIH0sXG4gICAgaW1nOiB7XG4gICAgICBiYXNlOiBcInJvdW5kZWRcIixcbiAgICAgIG9mZjogXCJyZWxhdGl2ZSBvdmVyZmxvdy1oaWRkZW4gYmctZ3JheS0xMDAgZGFyazpiZy1ncmF5LTYwMFwiLFxuICAgICAgb246IFwiXCIsXG4gICAgICBwbGFjZWhvbGRlcjogXCJhYnNvbHV0ZSAtYm90dG9tLTEgaC1hdXRvIHctYXV0byB0ZXh0LWdyYXktNDAwXCJcbiAgICB9LFxuICAgIHNpemU6IHtcbiAgICAgIHhzOiBcImgtNiB3LTZcIixcbiAgICAgIHNtOiBcImgtOCB3LThcIixcbiAgICAgIG1kOiBcImgtMTAgdy0xMFwiLFxuICAgICAgbGc6IFwiaC0yMCB3LTIwXCIsXG4gICAgICB4bDogXCJoLTM2IHctMzZcIlxuICAgIH0sXG4gICAgc3RhY2tlZDogXCJyaW5nLTIgcmluZy1ncmF5LTMwMCBkYXJrOnJpbmctZ3JheS01MDBcIixcbiAgICBzdGF0dXNQb3NpdGlvbjoge1xuICAgICAgXCJib3R0b20tbGVmdFwiOiBcIi1ib3R0b20tMSAtbGVmdC0xXCIsXG4gICAgICBcImJvdHRvbS1jZW50ZXJcIjogXCItYm90dG9tLTFcIixcbiAgICAgIFwiYm90dG9tLXJpZ2h0XCI6IFwiLWJvdHRvbS0xIC1yaWdodC0xXCIsXG4gICAgICBcInRvcC1sZWZ0XCI6IFwiLWxlZnQtMSAtdG9wLTFcIixcbiAgICAgIFwidG9wLWNlbnRlclwiOiBcIi10b3AtMVwiLFxuICAgICAgXCJ0b3AtcmlnaHRcIjogXCItcmlnaHQtMSAtdG9wLTFcIixcbiAgICAgIFwiY2VudGVyLXJpZ2h0XCI6IFwiLXJpZ2h0LTFcIixcbiAgICAgIGNlbnRlcjogXCJcIixcbiAgICAgIFwiY2VudGVyLWxlZnRcIjogXCItbGVmdC0xXCJcbiAgICB9LFxuICAgIHN0YXR1czoge1xuICAgICAgYXdheTogXCJiZy15ZWxsb3ctNDAwXCIsXG4gICAgICBiYXNlOiBcImFic29sdXRlIGgtMy41IHctMy41IHJvdW5kZWQtZnVsbCBib3JkZXItMiBib3JkZXItd2hpdGUgZGFyazpib3JkZXItZ3JheS04MDBcIixcbiAgICAgIGJ1c3k6IFwiYmctcmVkLTQwMFwiLFxuICAgICAgb2ZmbGluZTogXCJiZy1ncmF5LTQwMFwiLFxuICAgICAgb25saW5lOiBcImJnLWdyZWVuLTQwMFwiXG4gICAgfSxcbiAgICBpbml0aWFsczoge1xuICAgICAgdGV4dDogXCJmb250LW1lZGl1bSB0ZXh0LWdyYXktNjAwIGRhcms6dGV4dC1ncmF5LTMwMFwiLFxuICAgICAgYmFzZTogXCJyZWxhdGl2ZSBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgb3ZlcmZsb3ctaGlkZGVuIGJnLWdyYXktMTAwIGRhcms6YmctZ3JheS02MDBcIlxuICAgIH1cbiAgfSxcbiAgZ3JvdXA6IHtcbiAgICBiYXNlOiBcImZsZXggLXNwYWNlLXgtNFwiXG4gIH0sXG4gIGdyb3VwQ291bnRlcjoge1xuICAgIGJhc2U6IFwicmVsYXRpdmUgZmxleCBoLTEwIHctMTAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtZnVsbCBiZy1ncmF5LTcwMCB0ZXh0LXhzIGZvbnQtbWVkaXVtIHRleHQtd2hpdGUgcmluZy0yIHJpbmctZ3JheS0zMDAgaG92ZXI6YmctZ3JheS02MDAgZGFyazpyaW5nLWdyYXktNTAwXCJcbiAgfVxufSk7XG5cbmV4cG9ydCB7IGF2YXRhclRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IGJhZGdlVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcImZsZXggaC1maXQgaXRlbXMtY2VudGVyIGdhcC0xIGZvbnQtc2VtaWJvbGRcIixcbiAgICBjb2xvcjoge1xuICAgICAgaW5mbzogXCJiZy1jeWFuLTEwMCB0ZXh0LWN5YW4tODAwIGdyb3VwLWhvdmVyOmJnLWN5YW4tMjAwIGRhcms6YmctY3lhbi0yMDAgZGFyazp0ZXh0LWN5YW4tODAwIGRhcms6Z3JvdXAtaG92ZXI6YmctY3lhbi0zMDBcIixcbiAgICAgIGdyYXk6IFwiYmctZ3JheS0xMDAgdGV4dC1ncmF5LTgwMCBncm91cC1ob3ZlcjpiZy1ncmF5LTIwMCBkYXJrOmJnLWdyYXktNzAwIGRhcms6dGV4dC1ncmF5LTMwMCBkYXJrOmdyb3VwLWhvdmVyOmJnLWdyYXktNjAwXCIsXG4gICAgICBmYWlsdXJlOiBcImJnLXJlZC0xMDAgdGV4dC1yZWQtODAwIGdyb3VwLWhvdmVyOmJnLXJlZC0yMDAgZGFyazpiZy1yZWQtMjAwIGRhcms6dGV4dC1yZWQtOTAwIGRhcms6Z3JvdXAtaG92ZXI6YmctcmVkLTMwMFwiLFxuICAgICAgc3VjY2VzczogXCJiZy1ncmVlbi0xMDAgdGV4dC1ncmVlbi04MDAgZ3JvdXAtaG92ZXI6YmctZ3JlZW4tMjAwIGRhcms6YmctZ3JlZW4tMjAwIGRhcms6dGV4dC1ncmVlbi05MDAgZGFyazpncm91cC1ob3ZlcjpiZy1ncmVlbi0zMDBcIixcbiAgICAgIHdhcm5pbmc6IFwiYmcteWVsbG93LTEwMCB0ZXh0LXllbGxvdy04MDAgZ3JvdXAtaG92ZXI6YmcteWVsbG93LTIwMCBkYXJrOmJnLXllbGxvdy0yMDAgZGFyazp0ZXh0LXllbGxvdy05MDAgZGFyazpncm91cC1ob3ZlcjpiZy15ZWxsb3ctMzAwXCIsXG4gICAgICBpbmRpZ286IFwiYmctaW5kaWdvLTEwMCB0ZXh0LWluZGlnby04MDAgZ3JvdXAtaG92ZXI6YmctaW5kaWdvLTIwMCBkYXJrOmJnLWluZGlnby0yMDAgZGFyazp0ZXh0LWluZGlnby05MDAgZGFyazpncm91cC1ob3ZlcjpiZy1pbmRpZ28tMzAwXCIsXG4gICAgICBwdXJwbGU6IFwiYmctcHVycGxlLTEwMCB0ZXh0LXB1cnBsZS04MDAgZ3JvdXAtaG92ZXI6YmctcHVycGxlLTIwMCBkYXJrOmJnLXB1cnBsZS0yMDAgZGFyazp0ZXh0LXB1cnBsZS05MDAgZGFyazpncm91cC1ob3ZlcjpiZy1wdXJwbGUtMzAwXCIsXG4gICAgICBwaW5rOiBcImJnLXBpbmstMTAwIHRleHQtcGluay04MDAgZ3JvdXAtaG92ZXI6YmctcGluay0yMDAgZGFyazpiZy1waW5rLTIwMCBkYXJrOnRleHQtcGluay05MDAgZGFyazpncm91cC1ob3ZlcjpiZy1waW5rLTMwMFwiLFxuICAgICAgYmx1ZTogXCJiZy1ibHVlLTEwMCB0ZXh0LWJsdWUtODAwIGdyb3VwLWhvdmVyOmJnLWJsdWUtMjAwIGRhcms6YmctYmx1ZS0yMDAgZGFyazp0ZXh0LWJsdWUtOTAwIGRhcms6Z3JvdXAtaG92ZXI6YmctYmx1ZS0zMDBcIixcbiAgICAgIGN5YW46IFwiYmctY3lhbi0xMDAgdGV4dC1jeWFuLTgwMCBncm91cC1ob3ZlcjpiZy1jeWFuLTIwMCBkYXJrOmJnLWN5YW4tMjAwIGRhcms6dGV4dC1jeWFuLTkwMCBkYXJrOmdyb3VwLWhvdmVyOmJnLWN5YW4tMzAwXCIsXG4gICAgICBkYXJrOiBcImJnLWdyYXktNjAwIHRleHQtZ3JheS0xMDAgZ3JvdXAtaG92ZXI6YmctZ3JheS01MDAgZGFyazpiZy1ncmF5LTkwMCBkYXJrOnRleHQtZ3JheS0yMDAgZGFyazpncm91cC1ob3ZlcjpiZy1ncmF5LTcwMFwiLFxuICAgICAgbGlnaHQ6IFwiYmctZ3JheS0yMDAgdGV4dC1ncmF5LTgwMCBncm91cC1ob3ZlcjpiZy1ncmF5LTMwMCBkYXJrOmJnLWdyYXktNDAwIGRhcms6dGV4dC1ncmF5LTkwMCBkYXJrOmdyb3VwLWhvdmVyOmJnLWdyYXktNTAwXCIsXG4gICAgICBncmVlbjogXCJiZy1ncmVlbi0xMDAgdGV4dC1ncmVlbi04MDAgZ3JvdXAtaG92ZXI6YmctZ3JlZW4tMjAwIGRhcms6YmctZ3JlZW4tMjAwIGRhcms6dGV4dC1ncmVlbi05MDAgZGFyazpncm91cC1ob3ZlcjpiZy1ncmVlbi0zMDBcIixcbiAgICAgIGxpbWU6IFwiYmctbGltZS0xMDAgdGV4dC1saW1lLTgwMCBncm91cC1ob3ZlcjpiZy1saW1lLTIwMCBkYXJrOmJnLWxpbWUtMjAwIGRhcms6dGV4dC1saW1lLTkwMCBkYXJrOmdyb3VwLWhvdmVyOmJnLWxpbWUtMzAwXCIsXG4gICAgICByZWQ6IFwiYmctcmVkLTEwMCB0ZXh0LXJlZC04MDAgZ3JvdXAtaG92ZXI6YmctcmVkLTIwMCBkYXJrOmJnLXJlZC0yMDAgZGFyazp0ZXh0LXJlZC05MDAgZGFyazpncm91cC1ob3ZlcjpiZy1yZWQtMzAwXCIsXG4gICAgICB0ZWFsOiBcImJnLXRlYWwtMTAwIHRleHQtdGVhbC04MDAgZ3JvdXAtaG92ZXI6YmctdGVhbC0yMDAgZGFyazpiZy10ZWFsLTIwMCBkYXJrOnRleHQtdGVhbC05MDAgZGFyazpncm91cC1ob3ZlcjpiZy10ZWFsLTMwMFwiLFxuICAgICAgeWVsbG93OiBcImJnLXllbGxvdy0xMDAgdGV4dC15ZWxsb3ctODAwIGdyb3VwLWhvdmVyOmJnLXllbGxvdy0yMDAgZGFyazpiZy15ZWxsb3ctMjAwIGRhcms6dGV4dC15ZWxsb3ctOTAwIGRhcms6Z3JvdXAtaG92ZXI6YmcteWVsbG93LTMwMFwiXG4gICAgfSxcbiAgICBocmVmOiBcImdyb3VwXCIsXG4gICAgc2l6ZToge1xuICAgICAgeHM6IFwicC0xIHRleHQteHNcIixcbiAgICAgIHNtOiBcInAtMS41IHRleHQtc21cIlxuICAgIH1cbiAgfSxcbiAgaWNvbjoge1xuICAgIG9mZjogXCJyb3VuZGVkIHB4LTIgcHktMC41XCIsXG4gICAgb246IFwicm91bmRlZC1mdWxsIHAtMS41XCIsXG4gICAgc2l6ZToge1xuICAgICAgeHM6IFwiaC0zIHctM1wiLFxuICAgICAgc206IFwiaC0zLjUgdy0zLjVcIlxuICAgIH1cbiAgfVxufSk7XG5cbmV4cG9ydCB7IGJhZGdlVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgYmxvY2txdW90ZVRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICByb290OiB7XG4gICAgYmFzZTogXCJ0ZXh0LXhsIGZvbnQtc2VtaWJvbGQgaXRhbGljIHRleHQtZ3JheS05MDAgZGFyazp0ZXh0LXdoaXRlXCJcbiAgfVxufSk7XG5cbmV4cG9ydCB7IGJsb2NrcXVvdGVUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBicmVhZGNydW1iVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcIlwiLFxuICAgIGxpc3Q6IFwiZmxleCBpdGVtcy1jZW50ZXJcIlxuICB9LFxuICBpdGVtOiB7XG4gICAgYmFzZTogXCJncm91cCBmbGV4IGl0ZW1zLWNlbnRlclwiLFxuICAgIGNoZXZyb246IFwibXgtMSBoLTQgdy00IHRleHQtZ3JheS00MDAgZ3JvdXAtZmlyc3Q6aGlkZGVuIG1kOm14LTJcIixcbiAgICBocmVmOiB7XG4gICAgICBvZmY6IFwiZmxleCBpdGVtcy1jZW50ZXIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktNTAwIGRhcms6dGV4dC1ncmF5LTQwMFwiLFxuICAgICAgb246IFwiZmxleCBpdGVtcy1jZW50ZXIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktNzAwIGhvdmVyOnRleHQtZ3JheS05MDAgZGFyazp0ZXh0LWdyYXktNDAwIGRhcms6aG92ZXI6dGV4dC13aGl0ZVwiXG4gICAgfSxcbiAgICBpY29uOiBcIm1yLTIgaC00IHctNFwiXG4gIH1cbn0pO1xuXG5leHBvcnQgeyBicmVhZGNydW1iVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgYnV0dG9uVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIGJhc2U6IFwiZ3JvdXAgcmVsYXRpdmUgZmxleCBpdGVtcy1zdHJldGNoIGp1c3RpZnktY2VudGVyIHAtMC41IHRleHQtY2VudGVyIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tW2NvbG9yLGJhY2tncm91bmQtY29sb3IsYm9yZGVyLWNvbG9yLHRleHQtZGVjb3JhdGlvbi1jb2xvcixmaWxsLHN0cm9rZSxib3gtc2hhZG93XSBmb2N1czp6LTEwIGZvY3VzOm91dGxpbmUtbm9uZVwiLFxuICBmdWxsU2l6ZWQ6IFwidy1mdWxsXCIsXG4gIGNvbG9yOiB7XG4gICAgZGFyazogXCJib3JkZXIgYm9yZGVyLXRyYW5zcGFyZW50IGJnLWdyYXktODAwIHRleHQtd2hpdGUgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctZ3JheS0zMDAgZW5hYmxlZDpob3ZlcjpiZy1ncmF5LTkwMCBkYXJrOmJvcmRlci1ncmF5LTcwMCBkYXJrOmJnLWdyYXktODAwIGRhcms6Zm9jdXM6cmluZy1ncmF5LTgwMCBkYXJrOmVuYWJsZWQ6aG92ZXI6YmctZ3JheS03MDBcIixcbiAgICBmYWlsdXJlOiBcImJvcmRlciBib3JkZXItdHJhbnNwYXJlbnQgYmctcmVkLTcwMCB0ZXh0LXdoaXRlIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLXJlZC0zMDAgZW5hYmxlZDpob3ZlcjpiZy1yZWQtODAwIGRhcms6YmctcmVkLTYwMCBkYXJrOmZvY3VzOnJpbmctcmVkLTkwMCBkYXJrOmVuYWJsZWQ6aG92ZXI6YmctcmVkLTcwMFwiLFxuICAgIGdyYXk6IFwiOnJpbmctY3lhbi03MDAgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCBiZy13aGl0ZSB0ZXh0LWdyYXktOTAwIGZvY3VzOnRleHQtY3lhbi03MDAgZm9jdXM6cmluZy00IGVuYWJsZWQ6aG92ZXI6YmctZ3JheS0xMDAgZW5hYmxlZDpob3Zlcjp0ZXh0LWN5YW4tNzAwIGRhcms6Ym9yZGVyLWdyYXktNjAwIGRhcms6YmctdHJhbnNwYXJlbnQgZGFyazp0ZXh0LWdyYXktNDAwIGRhcms6ZW5hYmxlZDpob3ZlcjpiZy1ncmF5LTcwMCBkYXJrOmVuYWJsZWQ6aG92ZXI6dGV4dC13aGl0ZVwiLFxuICAgIGluZm86IFwiYm9yZGVyIGJvcmRlci10cmFuc3BhcmVudCBiZy1jeWFuLTcwMCB0ZXh0LXdoaXRlIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLWN5YW4tMzAwIGVuYWJsZWQ6aG92ZXI6YmctY3lhbi04MDAgZGFyazpiZy1jeWFuLTYwMCBkYXJrOmZvY3VzOnJpbmctY3lhbi04MDAgZGFyazplbmFibGVkOmhvdmVyOmJnLWN5YW4tNzAwXCIsXG4gICAgbGlnaHQ6IFwiYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBiZy13aGl0ZSB0ZXh0LWdyYXktOTAwIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLWN5YW4tMzAwIGVuYWJsZWQ6aG92ZXI6YmctZ3JheS0xMDAgZGFyazpib3JkZXItZ3JheS02MDAgZGFyazpiZy1ncmF5LTYwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpmb2N1czpyaW5nLWdyYXktNzAwIGRhcms6ZW5hYmxlZDpob3Zlcjpib3JkZXItZ3JheS03MDAgZGFyazplbmFibGVkOmhvdmVyOmJnLWdyYXktNzAwXCIsXG4gICAgcHVycGxlOiBcImJvcmRlciBib3JkZXItdHJhbnNwYXJlbnQgYmctcHVycGxlLTcwMCB0ZXh0LXdoaXRlIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLXB1cnBsZS0zMDAgZW5hYmxlZDpob3ZlcjpiZy1wdXJwbGUtODAwIGRhcms6YmctcHVycGxlLTYwMCBkYXJrOmZvY3VzOnJpbmctcHVycGxlLTkwMCBkYXJrOmVuYWJsZWQ6aG92ZXI6YmctcHVycGxlLTcwMFwiLFxuICAgIHN1Y2Nlc3M6IFwiYm9yZGVyIGJvcmRlci10cmFuc3BhcmVudCBiZy1ncmVlbi03MDAgdGV4dC13aGl0ZSBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1ncmVlbi0zMDAgZW5hYmxlZDpob3ZlcjpiZy1ncmVlbi04MDAgZGFyazpiZy1ncmVlbi02MDAgZGFyazpmb2N1czpyaW5nLWdyZWVuLTgwMCBkYXJrOmVuYWJsZWQ6aG92ZXI6YmctZ3JlZW4tNzAwXCIsXG4gICAgd2FybmluZzogXCJib3JkZXIgYm9yZGVyLXRyYW5zcGFyZW50IGJnLXllbGxvdy00MDAgdGV4dC13aGl0ZSBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy15ZWxsb3ctMzAwIGVuYWJsZWQ6aG92ZXI6YmcteWVsbG93LTUwMCBkYXJrOmZvY3VzOnJpbmcteWVsbG93LTkwMFwiLFxuICAgIGJsdWU6IFwiYm9yZGVyIGJvcmRlci10cmFuc3BhcmVudCBiZy1ibHVlLTcwMCB0ZXh0LXdoaXRlIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLWJsdWUtMzAwIGVuYWJsZWQ6aG92ZXI6YmctYmx1ZS04MDAgZGFyazpiZy1ibHVlLTYwMCBkYXJrOmhvdmVyOmJnLWJsdWUtNzAwIGRhcms6Zm9jdXM6cmluZy1ibHVlLTgwMFwiLFxuICAgIGN5YW46IFwiYm9yZGVyIGJvcmRlci1jeWFuLTMwMCBiZy13aGl0ZSB0ZXh0LWN5YW4tOTAwIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLWN5YW4tMzAwIGVuYWJsZWQ6aG92ZXI6YmctY3lhbi0xMDAgZGFyazpib3JkZXItY3lhbi02MDAgZGFyazpiZy1jeWFuLTYwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpmb2N1czpyaW5nLWN5YW4tNzAwIGRhcms6ZW5hYmxlZDpob3Zlcjpib3JkZXItY3lhbi03MDAgZGFyazplbmFibGVkOmhvdmVyOmJnLWN5YW4tNzAwXCIsXG4gICAgZ3JlZW46IFwiYm9yZGVyIGJvcmRlci1ncmVlbi0zMDAgYmctd2hpdGUgdGV4dC1ncmVlbi05MDAgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctZ3JlZW4tMzAwIGVuYWJsZWQ6aG92ZXI6YmctZ3JlZW4tMTAwIGRhcms6Ym9yZGVyLWdyZWVuLTYwMCBkYXJrOmJnLWdyZWVuLTYwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpmb2N1czpyaW5nLWdyZWVuLTcwMCBkYXJrOmVuYWJsZWQ6aG92ZXI6Ym9yZGVyLWdyZWVuLTcwMCBkYXJrOmVuYWJsZWQ6aG92ZXI6YmctZ3JlZW4tNzAwXCIsXG4gICAgaW5kaWdvOiBcImJvcmRlciBib3JkZXItaW5kaWdvLTMwMCBiZy13aGl0ZSB0ZXh0LWluZGlnby05MDAgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctaW5kaWdvLTMwMCBlbmFibGVkOmhvdmVyOmJnLWluZGlnby0xMDAgZGFyazpib3JkZXItaW5kaWdvLTYwMCBkYXJrOmJnLWluZGlnby02MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6Zm9jdXM6cmluZy1pbmRpZ28tNzAwIGRhcms6ZW5hYmxlZDpob3Zlcjpib3JkZXItaW5kaWdvLTcwMCBkYXJrOmVuYWJsZWQ6aG92ZXI6YmctaW5kaWdvLTcwMFwiLFxuICAgIGxpbWU6IFwiYm9yZGVyIGJvcmRlci1saW1lLTMwMCBiZy13aGl0ZSB0ZXh0LWxpbWUtOTAwIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLWxpbWUtMzAwIGVuYWJsZWQ6aG92ZXI6YmctbGltZS0xMDAgZGFyazpib3JkZXItbGltZS02MDAgZGFyazpiZy1saW1lLTYwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpmb2N1czpyaW5nLWxpbWUtNzAwIGRhcms6ZW5hYmxlZDpob3Zlcjpib3JkZXItbGltZS03MDAgZGFyazplbmFibGVkOmhvdmVyOmJnLWxpbWUtNzAwXCIsXG4gICAgcGluazogXCJib3JkZXIgYm9yZGVyLXBpbmstMzAwIGJnLXdoaXRlIHRleHQtcGluay05MDAgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctcGluay0zMDAgZW5hYmxlZDpob3ZlcjpiZy1waW5rLTEwMCBkYXJrOmJvcmRlci1waW5rLTYwMCBkYXJrOmJnLXBpbmstNjAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmZvY3VzOnJpbmctcGluay03MDAgZGFyazplbmFibGVkOmhvdmVyOmJvcmRlci1waW5rLTcwMCBkYXJrOmVuYWJsZWQ6aG92ZXI6YmctcGluay03MDBcIixcbiAgICByZWQ6IFwiYm9yZGVyIGJvcmRlci1yZWQtMzAwIGJnLXdoaXRlIHRleHQtcmVkLTkwMCBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1yZWQtMzAwIGVuYWJsZWQ6aG92ZXI6YmctcmVkLTEwMCBkYXJrOmJvcmRlci1yZWQtNjAwIGRhcms6YmctcmVkLTYwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpmb2N1czpyaW5nLXJlZC03MDAgZGFyazplbmFibGVkOmhvdmVyOmJvcmRlci1yZWQtNzAwIGRhcms6ZW5hYmxlZDpob3ZlcjpiZy1yZWQtNzAwXCIsXG4gICAgdGVhbDogXCJib3JkZXIgYm9yZGVyLXRlYWwtMzAwIGJnLXdoaXRlIHRleHQtdGVhbC05MDAgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctdGVhbC0zMDAgZW5hYmxlZDpob3ZlcjpiZy10ZWFsLTEwMCBkYXJrOmJvcmRlci10ZWFsLTYwMCBkYXJrOmJnLXRlYWwtNjAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmZvY3VzOnJpbmctdGVhbC03MDAgZGFyazplbmFibGVkOmhvdmVyOmJvcmRlci10ZWFsLTcwMCBkYXJrOmVuYWJsZWQ6aG92ZXI6YmctdGVhbC03MDBcIixcbiAgICB5ZWxsb3c6IFwiYm9yZGVyIGJvcmRlci15ZWxsb3ctMzAwIGJnLXdoaXRlIHRleHQteWVsbG93LTkwMCBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy15ZWxsb3ctMzAwIGVuYWJsZWQ6aG92ZXI6YmcteWVsbG93LTEwMCBkYXJrOmJvcmRlci15ZWxsb3ctNjAwIGRhcms6YmcteWVsbG93LTYwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpmb2N1czpyaW5nLXllbGxvdy03MDAgZGFyazplbmFibGVkOmhvdmVyOmJvcmRlci15ZWxsb3ctNzAwIGRhcms6ZW5hYmxlZDpob3ZlcjpiZy15ZWxsb3ctNzAwXCJcbiAgfSxcbiAgZGlzYWJsZWQ6IFwiY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNTBcIixcbiAgaXNQcm9jZXNzaW5nOiBcImN1cnNvci13YWl0XCIsXG4gIHNwaW5uZXJTbG90OiBcImFic29sdXRlIHRvcC0wIGZsZXggaC1mdWxsIGl0ZW1zLWNlbnRlclwiLFxuICBzcGlubmVyTGVmdFBvc2l0aW9uOiB7XG4gICAgeHM6IFwibGVmdC0yXCIsXG4gICAgc206IFwibGVmdC0zXCIsXG4gICAgbWQ6IFwibGVmdC00XCIsXG4gICAgbGc6IFwibGVmdC01XCIsXG4gICAgeGw6IFwibGVmdC02XCJcbiAgfSxcbiAgZ3JhZGllbnQ6IHtcbiAgICBjeWFuOiBcImJnLWdyYWRpZW50LXRvLXIgZnJvbS1jeWFuLTQwMCB2aWEtY3lhbi01MDAgdG8tY3lhbi02MDAgdGV4dC13aGl0ZSBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1jeWFuLTMwMCBlbmFibGVkOmhvdmVyOmJnLWdyYWRpZW50LXRvLWJyIGRhcms6Zm9jdXM6cmluZy1jeWFuLTgwMFwiLFxuICAgIGZhaWx1cmU6IFwiYmctZ3JhZGllbnQtdG8tciBmcm9tLXJlZC00MDAgdmlhLXJlZC01MDAgdG8tcmVkLTYwMCB0ZXh0LXdoaXRlIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLXJlZC0zMDAgZW5hYmxlZDpob3ZlcjpiZy1ncmFkaWVudC10by1iciBkYXJrOmZvY3VzOnJpbmctcmVkLTgwMFwiLFxuICAgIGluZm86IFwiYmctZ3JhZGllbnQtdG8tciBmcm9tLWN5YW4tNTAwIHZpYS1jeWFuLTYwMCB0by1jeWFuLTcwMCB0ZXh0LXdoaXRlIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLWN5YW4tMzAwIGVuYWJsZWQ6aG92ZXI6YmctZ3JhZGllbnQtdG8tYnIgZGFyazpmb2N1czpyaW5nLWN5YW4tODAwXCIsXG4gICAgbGltZTogXCJiZy1ncmFkaWVudC10by1yIGZyb20tbGltZS0yMDAgdmlhLWxpbWUtNDAwIHRvLWxpbWUtNTAwIHRleHQtZ3JheS05MDAgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctbGltZS0zMDAgZW5hYmxlZDpob3ZlcjpiZy1ncmFkaWVudC10by1iciBkYXJrOmZvY3VzOnJpbmctbGltZS04MDBcIixcbiAgICBwaW5rOiBcImJnLWdyYWRpZW50LXRvLXIgZnJvbS1waW5rLTQwMCB2aWEtcGluay01MDAgdG8tcGluay02MDAgdGV4dC13aGl0ZSBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1waW5rLTMwMCBlbmFibGVkOmhvdmVyOmJnLWdyYWRpZW50LXRvLWJyIGRhcms6Zm9jdXM6cmluZy1waW5rLTgwMFwiLFxuICAgIHB1cnBsZTogXCJiZy1ncmFkaWVudC10by1yIGZyb20tcHVycGxlLTUwMCB2aWEtcHVycGxlLTYwMCB0by1wdXJwbGUtNzAwIHRleHQtd2hpdGUgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctcHVycGxlLTMwMCBlbmFibGVkOmhvdmVyOmJnLWdyYWRpZW50LXRvLWJyIGRhcms6Zm9jdXM6cmluZy1wdXJwbGUtODAwXCIsXG4gICAgc3VjY2VzczogXCJiZy1ncmFkaWVudC10by1yIGZyb20tZ3JlZW4tNDAwIHZpYS1ncmVlbi01MDAgdG8tZ3JlZW4tNjAwIHRleHQtd2hpdGUgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctZ3JlZW4tMzAwIGVuYWJsZWQ6aG92ZXI6YmctZ3JhZGllbnQtdG8tYnIgZGFyazpmb2N1czpyaW5nLWdyZWVuLTgwMFwiLFxuICAgIHRlYWw6IFwiYmctZ3JhZGllbnQtdG8tciBmcm9tLXRlYWwtNDAwIHZpYS10ZWFsLTUwMCB0by10ZWFsLTYwMCB0ZXh0LXdoaXRlIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLXRlYWwtMzAwIGVuYWJsZWQ6aG92ZXI6YmctZ3JhZGllbnQtdG8tYnIgZGFyazpmb2N1czpyaW5nLXRlYWwtODAwXCJcbiAgfSxcbiAgZ3JhZGllbnREdW9Ub25lOiB7XG4gICAgY3lhblRvQmx1ZTogXCJiZy1ncmFkaWVudC10by1yIGZyb20tY3lhbi01MDAgdG8tY3lhbi01MDAgdGV4dC13aGl0ZSBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1jeWFuLTMwMCBlbmFibGVkOmhvdmVyOmJnLWdyYWRpZW50LXRvLWJsIGRhcms6Zm9jdXM6cmluZy1jeWFuLTgwMFwiLFxuICAgIGdyZWVuVG9CbHVlOiBcImJnLWdyYWRpZW50LXRvLWJyIGZyb20tZ3JlZW4tNDAwIHRvLWN5YW4tNjAwIHRleHQtd2hpdGUgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctZ3JlZW4tMjAwIGVuYWJsZWQ6aG92ZXI6YmctZ3JhZGllbnQtdG8tYmwgZGFyazpmb2N1czpyaW5nLWdyZWVuLTgwMFwiLFxuICAgIHBpbmtUb09yYW5nZTogXCJiZy1ncmFkaWVudC10by1iciBmcm9tLXBpbmstNTAwIHRvLW9yYW5nZS00MDAgdGV4dC13aGl0ZSBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1waW5rLTIwMCBlbmFibGVkOmhvdmVyOmJnLWdyYWRpZW50LXRvLWJsIGRhcms6Zm9jdXM6cmluZy1waW5rLTgwMFwiLFxuICAgIHB1cnBsZVRvQmx1ZTogXCJiZy1ncmFkaWVudC10by1iciBmcm9tLXB1cnBsZS02MDAgdG8tY3lhbi01MDAgdGV4dC13aGl0ZSBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1jeWFuLTMwMCBlbmFibGVkOmhvdmVyOmJnLWdyYWRpZW50LXRvLWJsIGRhcms6Zm9jdXM6cmluZy1jeWFuLTgwMFwiLFxuICAgIHB1cnBsZVRvUGluazogXCJiZy1ncmFkaWVudC10by1yIGZyb20tcHVycGxlLTUwMCB0by1waW5rLTUwMCB0ZXh0LXdoaXRlIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLXB1cnBsZS0yMDAgZW5hYmxlZDpob3ZlcjpiZy1ncmFkaWVudC10by1sIGRhcms6Zm9jdXM6cmluZy1wdXJwbGUtODAwXCIsXG4gICAgcmVkVG9ZZWxsb3c6IFwiYmctZ3JhZGllbnQtdG8tciBmcm9tLXJlZC0yMDAgdmlhLXJlZC0zMDAgdG8teWVsbG93LTIwMCB0ZXh0LWdyYXktOTAwIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLXJlZC0xMDAgZW5hYmxlZDpob3ZlcjpiZy1ncmFkaWVudC10by1ibCBkYXJrOmZvY3VzOnJpbmctcmVkLTQwMFwiLFxuICAgIHRlYWxUb0xpbWU6IFwiYmctZ3JhZGllbnQtdG8tciBmcm9tLXRlYWwtMjAwIHRvLWxpbWUtMjAwIHRleHQtZ3JheS05MDAgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctbGltZS0yMDAgZW5hYmxlZDpob3ZlcjpiZy1ncmFkaWVudC10by1sIGVuYWJsZWQ6aG92ZXI6ZnJvbS10ZWFsLTIwMCBlbmFibGVkOmhvdmVyOnRvLWxpbWUtMjAwIGVuYWJsZWQ6aG92ZXI6dGV4dC1ncmF5LTkwMCBkYXJrOmZvY3VzOnJpbmctdGVhbC03MDBcIlxuICB9LFxuICBpbm5lcjoge1xuICAgIGJhc2U6IFwiZmxleCBpdGVtcy1zdHJldGNoIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTIwMFwiLFxuICAgIHBvc2l0aW9uOiB7XG4gICAgICBub25lOiBcIlwiLFxuICAgICAgc3RhcnQ6IFwicm91bmRlZC1yLW5vbmVcIixcbiAgICAgIG1pZGRsZTogXCJyb3VuZGVkLW5vbmVcIixcbiAgICAgIGVuZDogXCJyb3VuZGVkLWwtbm9uZVwiXG4gICAgfSxcbiAgICBvdXRsaW5lOiBcImJvcmRlciBib3JkZXItdHJhbnNwYXJlbnRcIixcbiAgICBpc1Byb2Nlc3NpbmdQYWRkaW5nOiB7XG4gICAgICB4czogXCJwbC04XCIsXG4gICAgICBzbTogXCJwbC0xMFwiLFxuICAgICAgbWQ6IFwicGwtMTJcIixcbiAgICAgIGxnOiBcInBsLTE2XCIsXG4gICAgICB4bDogXCJwbC0yMFwiXG4gICAgfVxuICB9LFxuICBsYWJlbDogXCJtbC0yIGlubGluZS1mbGV4IGgtNCB3LTQgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtZnVsbCBiZy1jeWFuLTIwMCB0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1jeWFuLTgwMFwiLFxuICBvdXRsaW5lOiB7XG4gICAgY29sb3I6IHtcbiAgICAgIGdyYXk6IFwiYm9yZGVyIGJvcmRlci1ncmF5LTkwMCBkYXJrOmJvcmRlci13aGl0ZVwiLFxuICAgICAgZGVmYXVsdDogXCJib3JkZXItMFwiLFxuICAgICAgbGlnaHQ6IFwiXCJcbiAgICB9LFxuICAgIG9mZjogXCJcIixcbiAgICBvbjogXCJmbGV4IHctZnVsbCBqdXN0aWZ5LWNlbnRlciBiZy13aGl0ZSB0ZXh0LWdyYXktOTAwIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTc1IGVhc2UtaW4gZ3JvdXAtZW5hYmxlZDpncm91cC1ob3ZlcjpiZy1vcGFjaXR5LTAgZ3JvdXAtZW5hYmxlZDpncm91cC1ob3Zlcjp0ZXh0LWluaGVyaXQgZGFyazpiZy1ncmF5LTkwMCBkYXJrOnRleHQtd2hpdGVcIixcbiAgICBwaWxsOiB7XG4gICAgICBvZmY6IFwicm91bmRlZC1tZFwiLFxuICAgICAgb246IFwicm91bmRlZC1mdWxsXCJcbiAgICB9XG4gIH0sXG4gIHBpbGw6IHtcbiAgICBvZmY6IFwicm91bmRlZC1sZ1wiLFxuICAgIG9uOiBcInJvdW5kZWQtZnVsbFwiXG4gIH0sXG4gIHNpemU6IHtcbiAgICB4czogXCJweC0yIHB5LTEgdGV4dC14c1wiLFxuICAgIHNtOiBcInB4LTMgcHktMS41IHRleHQtc21cIixcbiAgICBtZDogXCJweC00IHB5LTIgdGV4dC1zbVwiLFxuICAgIGxnOiBcInB4LTUgcHktMi41IHRleHQtYmFzZVwiLFxuICAgIHhsOiBcInB4LTYgcHktMyB0ZXh0LWJhc2VcIlxuICB9XG59KTtcbmNvbnN0IGJ1dHRvbkdyb3VwVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIGJhc2U6IFwiaW5saW5lLWZsZXhcIixcbiAgcG9zaXRpb246IHtcbiAgICBub25lOiBcIlwiLFxuICAgIHN0YXJ0OiBcInJvdW5kZWQtci1ub25lIGZvY3VzOnJpbmctMlwiLFxuICAgIG1pZGRsZTogXCJyb3VuZGVkLW5vbmUgYm9yZGVyLWwtMCBwbC0wIGZvY3VzOnJpbmctMlwiLFxuICAgIGVuZDogXCJyb3VuZGVkLWwtbm9uZSBib3JkZXItbC0wIHBsLTAgZm9jdXM6cmluZy0yXCJcbiAgfVxufSk7XG5cbmV4cG9ydCB7IGJ1dHRvbkdyb3VwVGhlbWUsIGJ1dHRvblRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IGNhcmRUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgcm9vdDoge1xuICAgIGJhc2U6IFwiZmxleCByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItZ3JheS0yMDAgYmctd2hpdGUgc2hhZG93LW1kIGRhcms6Ym9yZGVyLWdyYXktNzAwIGRhcms6YmctZ3JheS04MDBcIixcbiAgICBjaGlsZHJlbjogXCJmbGV4IGgtZnVsbCBmbGV4LWNvbCBqdXN0aWZ5LWNlbnRlciBnYXAtNCBwLTZcIixcbiAgICBob3Jpem9udGFsOiB7XG4gICAgICBvZmY6IFwiZmxleC1jb2xcIixcbiAgICAgIG9uOiBcImZsZXgtY29sIG1kOm1heC13LXhsIG1kOmZsZXgtcm93XCJcbiAgICB9LFxuICAgIGhyZWY6IFwiaG92ZXI6YmctZ3JheS0xMDAgZGFyazpob3ZlcjpiZy1ncmF5LTcwMFwiXG4gIH0sXG4gIGltZzoge1xuICAgIGJhc2U6IFwiXCIsXG4gICAgaG9yaXpvbnRhbDoge1xuICAgICAgb2ZmOiBcInJvdW5kZWQtdC1sZ1wiLFxuICAgICAgb246IFwiaC05NiB3LWZ1bGwgcm91bmRlZC10LWxnIG9iamVjdC1jb3ZlciBtZDpoLWF1dG8gbWQ6dy00OCBtZDpyb3VuZGVkLW5vbmUgbWQ6cm91bmRlZC1sLWxnXCJcbiAgICB9XG4gIH1cbn0pO1xuXG5leHBvcnQgeyBjYXJkVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgY2Fyb3VzZWxUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgcm9vdDoge1xuICAgIGJhc2U6IFwicmVsYXRpdmUgaC1mdWxsIHctZnVsbFwiLFxuICAgIGxlZnRDb250cm9sOiBcImFic29sdXRlIGxlZnQtMCB0b3AtMCBmbGV4IGgtZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtNCBmb2N1czpvdXRsaW5lLW5vbmVcIixcbiAgICByaWdodENvbnRyb2w6IFwiYWJzb2x1dGUgcmlnaHQtMCB0b3AtMCBmbGV4IGgtZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtNCBmb2N1czpvdXRsaW5lLW5vbmVcIlxuICB9LFxuICBpbmRpY2F0b3JzOiB7XG4gICAgYWN0aXZlOiB7XG4gICAgICBvZmY6IFwiYmctd2hpdGUvNTAgaG92ZXI6Ymctd2hpdGUgZGFyazpiZy1ncmF5LTgwMC81MCBkYXJrOmhvdmVyOmJnLWdyYXktODAwXCIsXG4gICAgICBvbjogXCJiZy13aGl0ZSBkYXJrOmJnLWdyYXktODAwXCJcbiAgICB9LFxuICAgIGJhc2U6IFwiaC0zIHctMyByb3VuZGVkLWZ1bGxcIixcbiAgICB3cmFwcGVyOiBcImFic29sdXRlIGJvdHRvbS01IGxlZnQtMS8yIGZsZXggLXRyYW5zbGF0ZS14LTEvMiBzcGFjZS14LTNcIlxuICB9LFxuICBpdGVtOiB7XG4gICAgYmFzZTogXCJhYnNvbHV0ZSBsZWZ0LTEvMiB0b3AtMS8yIGJsb2NrIHctZnVsbCAtdHJhbnNsYXRlLXgtMS8yIC10cmFuc2xhdGUteS0xLzJcIixcbiAgICB3cmFwcGVyOiB7XG4gICAgICBvZmY6IFwidy1mdWxsIGZsZXgtc2hyaW5rLTAgdHJhbnNmb3JtIGN1cnNvci1kZWZhdWx0IHNuYXAtY2VudGVyXCIsXG4gICAgICBvbjogXCJ3LWZ1bGwgZmxleC1zaHJpbmstMCB0cmFuc2Zvcm0gY3Vyc29yLWdyYWIgc25hcC1jZW50ZXJcIlxuICAgIH1cbiAgfSxcbiAgY29udHJvbDoge1xuICAgIGJhc2U6IFwiaW5saW5lLWZsZXggaC04IHctOCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1mdWxsIGJnLXdoaXRlLzMwIGdyb3VwLWhvdmVyOmJnLXdoaXRlLzUwIGdyb3VwLWZvY3VzOm91dGxpbmUtbm9uZSBncm91cC1mb2N1czpyaW5nLTQgZ3JvdXAtZm9jdXM6cmluZy13aGl0ZSBkYXJrOmJnLWdyYXktODAwLzMwIGRhcms6Z3JvdXAtaG92ZXI6YmctZ3JheS04MDAvNjAgZGFyazpncm91cC1mb2N1czpyaW5nLWdyYXktODAwLzcwIHNtOmgtMTAgc206dy0xMFwiLFxuICAgIGljb246IFwiaC01IHctNSB0ZXh0LXdoaXRlIGRhcms6dGV4dC1ncmF5LTgwMCBzbTpoLTYgc206dy02XCJcbiAgfSxcbiAgc2Nyb2xsQ29udGFpbmVyOiB7XG4gICAgYmFzZTogXCJmbGV4IGgtZnVsbCBzbmFwLW1hbmRhdG9yeSBvdmVyZmxvdy15LWhpZGRlbiBvdmVyZmxvdy14LXNjcm9sbCBzY3JvbGwtc21vb3RoIHJvdW5kZWQtbGdcIixcbiAgICBzbmFwOiBcInNuYXAteFwiXG4gIH1cbn0pO1xuXG5leHBvcnQgeyBjYXJvdXNlbFRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IGNoZWNrYm94VGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcImgtNCB3LTQgcm91bmRlZCBib3JkZXIgYm9yZGVyLWdyYXktMzAwIGJnLWdyYXktMTAwIGZvY3VzOnJpbmctMiBkYXJrOmJvcmRlci1ncmF5LTYwMCBkYXJrOmJnLWdyYXktNzAwXCIsXG4gICAgY29sb3I6IHtcbiAgICAgIGRlZmF1bHQ6IFwidGV4dC1jeWFuLTYwMCBmb2N1czpyaW5nLWN5YW4tNjAwIGRhcms6cmluZy1vZmZzZXQtZ3JheS04MDAgZGFyazpmb2N1czpyaW5nLWN5YW4tNjAwXCIsXG4gICAgICBkYXJrOiBcInRleHQtZ3JheS04MDAgZm9jdXM6cmluZy1ncmF5LTgwMCBkYXJrOnJpbmctb2Zmc2V0LWdyYXktODAwIGRhcms6Zm9jdXM6cmluZy1ncmF5LTgwMFwiLFxuICAgICAgZmFpbHVyZTogXCJ0ZXh0LXJlZC05MDAgZm9jdXM6cmluZy1yZWQtOTAwIGRhcms6cmluZy1vZmZzZXQtcmVkLTkwMCBkYXJrOmZvY3VzOnJpbmctcmVkLTkwMFwiLFxuICAgICAgZ3JheTogXCJ0ZXh0LWdyYXktOTAwIGZvY3VzOnJpbmctZ3JheS05MDAgZGFyazpyaW5nLW9mZnNldC1ncmF5LTkwMCBkYXJrOmZvY3VzOnJpbmctZ3JheS05MDBcIixcbiAgICAgIGluZm86IFwidGV4dC1jeWFuLTgwMCBmb2N1czpyaW5nLWN5YW4tODAwIGRhcms6cmluZy1vZmZzZXQtZ3JheS04MDAgZGFyazpmb2N1czpyaW5nLWN5YW4tODAwXCIsXG4gICAgICBsaWdodDogXCJ0ZXh0LWdyYXktOTAwIGZvY3VzOnJpbmctZ3JheS05MDAgZGFyazpyaW5nLW9mZnNldC1ncmF5LTkwMCBkYXJrOmZvY3VzOnJpbmctZ3JheS05MDBcIixcbiAgICAgIHB1cnBsZTogXCJ0ZXh0LXB1cnBsZS02MDAgZm9jdXM6cmluZy1wdXJwbGUtNjAwIGRhcms6cmluZy1vZmZzZXQtcHVycGxlLTYwMCBkYXJrOmZvY3VzOnJpbmctcHVycGxlLTYwMFwiLFxuICAgICAgc3VjY2VzczogXCJ0ZXh0LWdyZWVuLTgwMCBmb2N1czpyaW5nLWdyZWVuLTgwMCBkYXJrOnJpbmctb2Zmc2V0LWdyZWVuLTgwMCBkYXJrOmZvY3VzOnJpbmctZ3JlZW4tODAwXCIsXG4gICAgICB3YXJuaW5nOiBcInRleHQteWVsbG93LTQwMCBmb2N1czpyaW5nLXllbGxvdy00MDAgZGFyazpyaW5nLW9mZnNldC15ZWxsb3ctNDAwIGRhcms6Zm9jdXM6cmluZy15ZWxsb3ctNDAwXCIsXG4gICAgICBibHVlOiBcInRleHQtYmx1ZS03MDAgZm9jdXM6cmluZy1ibHVlLTYwMCBkYXJrOnJpbmctb2Zmc2V0LWJsdWUtNzAwIGRhcms6Zm9jdXM6cmluZy1ibHVlLTcwMFwiLFxuICAgICAgY3lhbjogXCJ0ZXh0LWN5YW4tNjAwIGZvY3VzOnJpbmctY3lhbi02MDAgZGFyazpyaW5nLW9mZnNldC1jeWFuLTYwMCBkYXJrOmZvY3VzOnJpbmctY3lhbi02MDBcIixcbiAgICAgIGdyZWVuOiBcInRleHQtZ3JlZW4tNjAwIGZvY3VzOnJpbmctZ3JlZW4tNjAwIGRhcms6cmluZy1vZmZzZXQtZ3JlZW4tNjAwIGRhcms6Zm9jdXM6cmluZy1ncmVlbi02MDBcIixcbiAgICAgIGluZGlnbzogXCJ0ZXh0LWluZGlnby03MDAgZm9jdXM6cmluZy1pbmRpZ28tNzAwIGRhcms6cmluZy1vZmZzZXQtaW5kaWdvLTcwMCBkYXJrOmZvY3VzOnJpbmctaW5kaWdvLTcwMFwiLFxuICAgICAgbGltZTogXCJ0ZXh0LWxpbWUtNzAwIGZvY3VzOnJpbmctbGltZS03MDAgZGFyazpyaW5nLW9mZnNldC1saW1lLTcwMCBkYXJrOmZvY3VzOnJpbmctbGltZS03MDBcIixcbiAgICAgIHBpbms6IFwidGV4dC1waW5rLTYwMCBmb2N1czpyaW5nLXBpbmstNjAwIGRhcms6cmluZy1vZmZzZXQtcGluay02MDAgZGFyazpmb2N1czpyaW5nLXBpbmstNjAwXCIsXG4gICAgICByZWQ6IFwidGV4dC1yZWQtNjAwIGZvY3VzOnJpbmctcmVkLTYwMCBkYXJrOnJpbmctb2Zmc2V0LXJlZC02MDAgZGFyazpmb2N1czpyaW5nLXJlZC02MDBcIixcbiAgICAgIHRlYWw6IFwidGV4dC10ZWFsLTYwMCBmb2N1czpyaW5nLXRlYWwtNjAwIGRhcms6cmluZy1vZmZzZXQtdGVhbC02MDAgZGFyazpmb2N1czpyaW5nLXRlYWwtNjAwXCIsXG4gICAgICB5ZWxsb3c6IFwidGV4dC15ZWxsb3ctNDAwIGZvY3VzOnJpbmcteWVsbG93LTQwMCBkYXJrOnJpbmctb2Zmc2V0LXllbGxvdy00MDAgZGFyazpmb2N1czpyaW5nLXllbGxvdy00MDBcIlxuICAgIH1cbiAgfVxufSk7XG5cbmV4cG9ydCB7IGNoZWNrYm94VGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgY2xpcGJvYXJkVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIGJ1dHRvbjoge1xuICAgIGJhc2U6IFwiaW5saW5lLWZsZXggdy1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWxnIGJnLWJsdWUtNzAwIHB4LTUgcHktMyBob3ZlcjpiZy1ibHVlLTgwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctYmx1ZS0zMDAgZGFyazpiZy1ibHVlLTYwMCBkYXJrOmhvdmVyOmJnLWJsdWUtNzAwIGRhcms6Zm9jdXM6cmluZy1ibHVlLTgwMFwiLFxuICAgIGxhYmVsOiBcInRleHQtY2VudGVyIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC13aGl0ZSBzbTp3LWF1dG9cIlxuICB9LFxuICB3aXRoSWNvbjoge1xuICAgIGJhc2U6IFwiYWJzb2x1dGUgZW5kLTIgdG9wLTEvMiBpbmxpbmUtZmxleCAtdHJhbnNsYXRlLXktMS8yIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWxnIHAtMiB0ZXh0LWdyYXktNTAwIGhvdmVyOmJnLWdyYXktMTAwIGRhcms6dGV4dC1ncmF5LTQwMCBkYXJrOmhvdmVyOmJnLWdyYXktODAwXCIsXG4gICAgaWNvbjoge1xuICAgICAgZGVmYXVsdEljb246IFwiaC00IHctNFwiLFxuICAgICAgc3VjY2Vzc0ljb246IFwiaC00IHctNCB0ZXh0LWJsdWUtNzAwIGRhcms6dGV4dC1ibHVlLTUwMFwiXG4gICAgfVxuICB9LFxuICB3aXRoSWNvblRleHQ6IHtcbiAgICBiYXNlOiBcImFic29sdXRlIGVuZC0yLjUgdG9wLTEvMiBpbmxpbmUtZmxleCAtdHJhbnNsYXRlLXktMS8yIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItZ3JheS0yMDAgYmctd2hpdGUgcHgtMi41IHB5LTIgdGV4dC1ncmF5LTkwMCBob3ZlcjpiZy1ncmF5LTEwMCBkYXJrOmJvcmRlci1ncmF5LTYwMCBkYXJrOmJnLWdyYXktODAwIGRhcms6dGV4dC1ncmF5LTQwMCBkYXJrOmhvdmVyOmJnLWdyYXktNzAwXCIsXG4gICAgaWNvbjoge1xuICAgICAgZGVmYXVsdEljb246IFwibWUtMS41IGgtMyB3LTNcIixcbiAgICAgIHN1Y2Nlc3NJY29uOiBcIm1lLTEuNSBoLTMgdy0zIHRleHQtYmx1ZS03MDAgZGFyazp0ZXh0LWJsdWUtNTAwXCJcbiAgICB9LFxuICAgIGxhYmVsOiB7XG4gICAgICBiYXNlOiBcImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlclwiLFxuICAgICAgZGVmYXVsdFRleHQ6IFwidGV4dC14cyBmb250LXNlbWlib2xkXCIsXG4gICAgICBzdWNjZXNzVGV4dDogXCJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1ibHVlLTcwMCBkYXJrOnRleHQtYmx1ZS01MDBcIlxuICAgIH1cbiAgfVxufSk7XG5cbmV4cG9ydCB7IGNsaXBib2FyZFRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IGRhcmtUaGVtZVRvZ2dsZVRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICByb290OiB7XG4gICAgYmFzZTogXCJyb3VuZGVkLWxnIHAtMi41IHRleHQtc20gdGV4dC1ncmF5LTUwMCBob3ZlcjpiZy1ncmF5LTEwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctZ3JheS0yMDAgZGFyazp0ZXh0LWdyYXktNDAwIGRhcms6aG92ZXI6YmctZ3JheS03MDAgZGFyazpmb2N1czpyaW5nLWdyYXktNzAwXCIsXG4gICAgaWNvbjogXCJoLTUgdy01XCJcbiAgfVxufSk7XG5cbmV4cG9ydCB7IGRhcmtUaGVtZVRvZ2dsZVRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IGRhdGVQaWNrZXJUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgcm9vdDoge1xuICAgIGJhc2U6IFwicmVsYXRpdmVcIlxuICB9LFxuICBwb3B1cDoge1xuICAgIHJvb3Q6IHtcbiAgICAgIGJhc2U6IFwiYWJzb2x1dGUgdG9wLTEwIHotNTAgYmxvY2sgcHQtMlwiLFxuICAgICAgaW5saW5lOiBcInJlbGF0aXZlIHRvcC0wIHotYXV0b1wiLFxuICAgICAgaW5uZXI6IFwiaW5saW5lLWJsb2NrIHJvdW5kZWQtbGcgYmctd2hpdGUgcC00IHNoYWRvdy1sZyBkYXJrOmJnLWdyYXktNzAwXCJcbiAgICB9LFxuICAgIGhlYWRlcjoge1xuICAgICAgYmFzZTogXCJcIixcbiAgICAgIHRpdGxlOiBcInB4LTIgcHktMyB0ZXh0LWNlbnRlciBmb250LXNlbWlib2xkIHRleHQtZ3JheS05MDAgZGFyazp0ZXh0LXdoaXRlXCIsXG4gICAgICBzZWxlY3RvcnM6IHtcbiAgICAgICAgYmFzZTogXCJtYi0yIGZsZXgganVzdGlmeS1iZXR3ZWVuXCIsXG4gICAgICAgIGJ1dHRvbjoge1xuICAgICAgICAgIGJhc2U6IFwicm91bmRlZC1sZyBiZy13aGl0ZSBweC01IHB5LTIuNSB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMCBob3ZlcjpiZy1ncmF5LTEwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctZ3JheS0yMDAgZGFyazpiZy1ncmF5LTcwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpob3ZlcjpiZy1ncmF5LTYwMFwiLFxuICAgICAgICAgIHByZXY6IFwiXCIsXG4gICAgICAgICAgbmV4dDogXCJcIixcbiAgICAgICAgICB2aWV3OiBcIlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIHZpZXc6IHtcbiAgICAgIGJhc2U6IFwicC0xXCJcbiAgICB9LFxuICAgIGZvb3Rlcjoge1xuICAgICAgYmFzZTogXCJtdC0yIGZsZXggc3BhY2UteC0yXCIsXG4gICAgICBidXR0b246IHtcbiAgICAgICAgYmFzZTogXCJ3LWZ1bGwgcm91bmRlZC1sZyBweC01IHB5LTIgdGV4dC1jZW50ZXIgdGV4dC1zbSBmb250LW1lZGl1bSBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1jeWFuLTMwMFwiLFxuICAgICAgICB0b2RheTogXCJiZy1jeWFuLTcwMCB0ZXh0LXdoaXRlIGhvdmVyOmJnLWN5YW4tODAwIGRhcms6YmctY3lhbi02MDAgZGFyazpob3ZlcjpiZy1jeWFuLTcwMFwiLFxuICAgICAgICBjbGVhcjogXCJib3JkZXIgYm9yZGVyLWdyYXktMzAwIGJnLXdoaXRlIHRleHQtZ3JheS05MDAgaG92ZXI6YmctZ3JheS0xMDAgZGFyazpib3JkZXItZ3JheS02MDAgZGFyazpiZy1ncmF5LTcwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpob3ZlcjpiZy1ncmF5LTYwMFwiXG4gICAgICB9XG4gICAgfVxuICB9LFxuICB2aWV3czoge1xuICAgIGRheXM6IHtcbiAgICAgIGhlYWRlcjoge1xuICAgICAgICBiYXNlOiBcIm1iLTEgZ3JpZCBncmlkLWNvbHMtN1wiLFxuICAgICAgICB0aXRsZTogXCJoLTYgdGV4dC1jZW50ZXIgdGV4dC1zbSBmb250LW1lZGl1bSBsZWFkaW5nLTYgdGV4dC1ncmF5LTUwMCBkYXJrOnRleHQtZ3JheS00MDBcIlxuICAgICAgfSxcbiAgICAgIGl0ZW1zOiB7XG4gICAgICAgIGJhc2U6IFwiZ3JpZCB3LTY0IGdyaWQtY29scy03XCIsXG4gICAgICAgIGl0ZW06IHtcbiAgICAgICAgICBiYXNlOiBcImJsb2NrIGZsZXgtMSBjdXJzb3ItcG9pbnRlciByb3VuZGVkLWxnIGJvcmRlci0wIHRleHQtY2VudGVyIHRleHQtc20gZm9udC1zZW1pYm9sZCBsZWFkaW5nLTkgdGV4dC1ncmF5LTkwMCBob3ZlcjpiZy1ncmF5LTEwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpob3ZlcjpiZy1ncmF5LTYwMFwiLFxuICAgICAgICAgIHNlbGVjdGVkOiBcImJnLWN5YW4tNzAwIHRleHQtd2hpdGUgaG92ZXI6YmctY3lhbi02MDBcIixcbiAgICAgICAgICBkaXNhYmxlZDogXCJ0ZXh0LWdyYXktNTAwXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgbW9udGhzOiB7XG4gICAgICBpdGVtczoge1xuICAgICAgICBiYXNlOiBcImdyaWQgdy02NCBncmlkLWNvbHMtNFwiLFxuICAgICAgICBpdGVtOiB7XG4gICAgICAgICAgYmFzZTogXCJibG9jayBmbGV4LTEgY3Vyc29yLXBvaW50ZXIgcm91bmRlZC1sZyBib3JkZXItMCB0ZXh0LWNlbnRlciB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgbGVhZGluZy05IHRleHQtZ3JheS05MDAgaG92ZXI6YmctZ3JheS0xMDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6aG92ZXI6YmctZ3JheS02MDBcIixcbiAgICAgICAgICBzZWxlY3RlZDogXCJiZy1jeWFuLTcwMCB0ZXh0LXdoaXRlIGhvdmVyOmJnLWN5YW4tNjAwXCIsXG4gICAgICAgICAgZGlzYWJsZWQ6IFwidGV4dC1ncmF5LTUwMFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIHllYXJzOiB7XG4gICAgICBpdGVtczoge1xuICAgICAgICBiYXNlOiBcImdyaWQgdy02NCBncmlkLWNvbHMtNFwiLFxuICAgICAgICBpdGVtOiB7XG4gICAgICAgICAgYmFzZTogXCJibG9jayBmbGV4LTEgY3Vyc29yLXBvaW50ZXIgcm91bmRlZC1sZyBib3JkZXItMCB0ZXh0LWNlbnRlciB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgbGVhZGluZy05IHRleHQtZ3JheS05MDAgaG92ZXI6YmctZ3JheS0xMDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6aG92ZXI6YmctZ3JheS02MDBcIixcbiAgICAgICAgICBzZWxlY3RlZDogXCJiZy1jeWFuLTcwMCB0ZXh0LXdoaXRlIGhvdmVyOmJnLWN5YW4tNjAwXCIsXG4gICAgICAgICAgZGlzYWJsZWQ6IFwidGV4dC1ncmF5LTUwMFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIGRlY2FkZXM6IHtcbiAgICAgIGl0ZW1zOiB7XG4gICAgICAgIGJhc2U6IFwiZ3JpZCB3LTY0IGdyaWQtY29scy00XCIsXG4gICAgICAgIGl0ZW06IHtcbiAgICAgICAgICBiYXNlOiBcImJsb2NrIGZsZXgtMSBjdXJzb3ItcG9pbnRlciByb3VuZGVkLWxnIGJvcmRlci0wIHRleHQtY2VudGVyIHRleHQtc20gZm9udC1zZW1pYm9sZCBsZWFkaW5nLTkgdGV4dC1ncmF5LTkwMCBob3ZlcjpiZy1ncmF5LTEwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpob3ZlcjpiZy1ncmF5LTYwMFwiLFxuICAgICAgICAgIHNlbGVjdGVkOiBcImJnLWN5YW4tNzAwIHRleHQtd2hpdGUgaG92ZXI6YmctY3lhbi02MDBcIixcbiAgICAgICAgICBkaXNhYmxlZDogXCJ0ZXh0LWdyYXktNTAwXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSk7XG5cbmV4cG9ydCB7IGRhdGVQaWNrZXJUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBkcmF3ZXJUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgcm9vdDoge1xuICAgIGJhc2U6IFwiZml4ZWQgei00MCBvdmVyZmxvdy15LWF1dG8gYmctd2hpdGUgcC00IHRyYW5zaXRpb24tdHJhbnNmb3JtIGRhcms6YmctZ3JheS04MDBcIixcbiAgICBiYWNrZHJvcDogXCJmaXhlZCBpbnNldC0wIHotMzAgYmctZ3JheS05MDAvNTAgZGFyazpiZy1ncmF5LTkwMC84MFwiLFxuICAgIGVkZ2U6IFwiYm90dG9tLTE2XCIsXG4gICAgcG9zaXRpb246IHtcbiAgICAgIHRvcDoge1xuICAgICAgICBvbjogXCJsZWZ0LTAgcmlnaHQtMCB0b3AtMCB3LWZ1bGwgdHJhbnNmb3JtLW5vbmVcIixcbiAgICAgICAgb2ZmOiBcImxlZnQtMCByaWdodC0wIHRvcC0wIHctZnVsbCAtdHJhbnNsYXRlLXktZnVsbFwiXG4gICAgICB9LFxuICAgICAgcmlnaHQ6IHtcbiAgICAgICAgb246IFwicmlnaHQtMCB0b3AtMCBoLXNjcmVlbiB3LTgwIHRyYW5zZm9ybS1ub25lXCIsXG4gICAgICAgIG9mZjogXCJyaWdodC0wIHRvcC0wIGgtc2NyZWVuIHctODAgdHJhbnNsYXRlLXgtZnVsbFwiXG4gICAgICB9LFxuICAgICAgYm90dG9tOiB7XG4gICAgICAgIG9uOiBcImJvdHRvbS0wIGxlZnQtMCByaWdodC0wIHctZnVsbCB0cmFuc2Zvcm0tbm9uZVwiLFxuICAgICAgICBvZmY6IFwiYm90dG9tLTAgbGVmdC0wIHJpZ2h0LTAgdy1mdWxsIHRyYW5zbGF0ZS15LWZ1bGxcIlxuICAgICAgfSxcbiAgICAgIGxlZnQ6IHtcbiAgICAgICAgb246IFwibGVmdC0wIHRvcC0wIGgtc2NyZWVuIHctODAgdHJhbnNmb3JtLW5vbmVcIixcbiAgICAgICAgb2ZmOiBcImxlZnQtMCB0b3AtMCBoLXNjcmVlbiB3LTgwIC10cmFuc2xhdGUteC1mdWxsXCJcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIGhlYWRlcjoge1xuICAgIGlubmVyOiB7XG4gICAgICBjbG9zZUJ1dHRvbjogXCJhYnNvbHV0ZSBlbmQtMi41IHRvcC0yLjUgZmxleCBoLTggdy04IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWxnIGJnLXRyYW5zcGFyZW50IHRleHQtc20gdGV4dC1ncmF5LTQwMCBob3ZlcjpiZy1ncmF5LTIwMCBob3Zlcjp0ZXh0LWdyYXktOTAwIGRhcms6aG92ZXI6YmctZ3JheS02MDAgZGFyazpob3Zlcjp0ZXh0LXdoaXRlXCIsXG4gICAgICBjbG9zZUljb246IFwiaC00IHctNFwiLFxuICAgICAgdGl0bGVJY29uOiBcIm1lLTIuNSBoLTQgdy00XCIsXG4gICAgICB0aXRsZVRleHQ6IFwibWItNCBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgdGV4dC1iYXNlIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTUwMCBkYXJrOnRleHQtZ3JheS00MDBcIlxuICAgIH0sXG4gICAgY29sbGFwc2VkOiB7XG4gICAgICBvbjogXCJoaWRkZW5cIixcbiAgICAgIG9mZjogXCJibG9ja1wiXG4gICAgfVxuICB9LFxuICBpdGVtczoge1xuICAgIGJhc2U6IFwiXCJcbiAgfVxufSk7XG5cbmV4cG9ydCB7IGRyYXdlclRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IGRyb3Bkb3duVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIGFycm93SWNvbjogXCJtbC0yIGgtNCB3LTRcIixcbiAgY29udGVudDogXCJweS0xIGZvY3VzOm91dGxpbmUtbm9uZVwiLFxuICBmbG9hdGluZzoge1xuICAgIGFuaW1hdGlvbjogXCJ0cmFuc2l0aW9uLW9wYWNpdHlcIixcbiAgICBhcnJvdzoge1xuICAgICAgYmFzZTogXCJhYnNvbHV0ZSB6LTEwIGgtMiB3LTIgcm90YXRlLTQ1XCIsXG4gICAgICBzdHlsZToge1xuICAgICAgICBkYXJrOiBcImJnLWdyYXktOTAwIGRhcms6YmctZ3JheS03MDBcIixcbiAgICAgICAgbGlnaHQ6IFwiYmctd2hpdGVcIixcbiAgICAgICAgYXV0bzogXCJiZy13aGl0ZSBkYXJrOmJnLWdyYXktNzAwXCJcbiAgICAgIH0sXG4gICAgICBwbGFjZW1lbnQ6IFwiLTRweFwiXG4gICAgfSxcbiAgICBiYXNlOiBcInotMTAgdy1maXQgZGl2aWRlLXkgZGl2aWRlLWdyYXktMTAwIHJvdW5kZWQgc2hhZG93IGZvY3VzOm91dGxpbmUtbm9uZVwiLFxuICAgIGNvbnRlbnQ6IFwicHktMSB0ZXh0LXNtIHRleHQtZ3JheS03MDAgZGFyazp0ZXh0LWdyYXktMjAwXCIsXG4gICAgZGl2aWRlcjogXCJteS0xIGgtcHggYmctZ3JheS0xMDAgZGFyazpiZy1ncmF5LTYwMFwiLFxuICAgIGhlYWRlcjogXCJibG9jayBweC00IHB5LTIgdGV4dC1zbSB0ZXh0LWdyYXktNzAwIGRhcms6dGV4dC1ncmF5LTIwMFwiLFxuICAgIGhpZGRlbjogXCJpbnZpc2libGUgb3BhY2l0eS0wXCIsXG4gICAgaXRlbToge1xuICAgICAgY29udGFpbmVyOiBcIlwiLFxuICAgICAgYmFzZTogXCJmbGV4IHctZnVsbCBjdXJzb3ItcG9pbnRlciBpdGVtcy1jZW50ZXIganVzdGlmeS1zdGFydCBweC00IHB5LTIgdGV4dC1zbSB0ZXh0LWdyYXktNzAwIGhvdmVyOmJnLWdyYXktMTAwIGZvY3VzOmJnLWdyYXktMTAwIGZvY3VzOm91dGxpbmUtbm9uZSBkYXJrOnRleHQtZ3JheS0yMDAgZGFyazpob3ZlcjpiZy1ncmF5LTYwMCBkYXJrOmhvdmVyOnRleHQtd2hpdGUgZGFyazpmb2N1czpiZy1ncmF5LTYwMCBkYXJrOmZvY3VzOnRleHQtd2hpdGVcIixcbiAgICAgIGljb246IFwibXItMiBoLTQgdy00XCJcbiAgICB9LFxuICAgIHN0eWxlOiB7XG4gICAgICBkYXJrOiBcImJnLWdyYXktOTAwIHRleHQtd2hpdGUgZGFyazpiZy1ncmF5LTcwMFwiLFxuICAgICAgbGlnaHQ6IFwiYm9yZGVyIGJvcmRlci1ncmF5LTIwMCBiZy13aGl0ZSB0ZXh0LWdyYXktOTAwXCIsXG4gICAgICBhdXRvOiBcImJvcmRlciBib3JkZXItZ3JheS0yMDAgYmctd2hpdGUgdGV4dC1ncmF5LTkwMCBkYXJrOmJvcmRlci1ub25lIGRhcms6YmctZ3JheS03MDAgZGFyazp0ZXh0LXdoaXRlXCJcbiAgICB9LFxuICAgIHRhcmdldDogXCJ3LWZpdFwiXG4gIH0sXG4gIGlubGluZVdyYXBwZXI6IFwiZmxleCBpdGVtcy1jZW50ZXJcIlxufSk7XG5cbmV4cG9ydCB7IGRyb3Bkb3duVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgZmlsZUlucHV0VGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcImZsZXhcIlxuICB9LFxuICBmaWVsZDoge1xuICAgIGJhc2U6IFwicmVsYXRpdmUgdy1mdWxsXCIsXG4gICAgaW5wdXQ6IHtcbiAgICAgIGJhc2U6IFwiYmxvY2sgdy1mdWxsIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLWxnIGJvcmRlciBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgZGlzYWJsZWQ6b3BhY2l0eS01MFwiLFxuICAgICAgc2l6ZXM6IHtcbiAgICAgICAgc206IFwic206dGV4dC14c1wiLFxuICAgICAgICBtZDogXCJ0ZXh0LXNtXCIsXG4gICAgICAgIGxnOiBcInNtOnRleHQtYmFzZVwiXG4gICAgICB9LFxuICAgICAgY29sb3JzOiB7XG4gICAgICAgIGdyYXk6IFwiYm9yZGVyLWdyYXktMzAwIGJnLWdyYXktNTAgdGV4dC1ncmF5LTkwMCBmb2N1czpib3JkZXItY3lhbi01MDAgZm9jdXM6cmluZy1jeWFuLTUwMCBkYXJrOmJvcmRlci1ncmF5LTYwMCBkYXJrOmJnLWdyYXktNzAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOnBsYWNlaG9sZGVyLWdyYXktNDAwIGRhcms6Zm9jdXM6Ym9yZGVyLWN5YW4tNTAwIGRhcms6Zm9jdXM6cmluZy1jeWFuLTUwMFwiLFxuICAgICAgICBpbmZvOiBcImJvcmRlci1jeWFuLTUwMCBiZy1jeWFuLTUwIHRleHQtY3lhbi05MDAgcGxhY2Vob2xkZXItY3lhbi03MDAgZm9jdXM6Ym9yZGVyLWN5YW4tNTAwIGZvY3VzOnJpbmctY3lhbi01MDAgZGFyazpib3JkZXItY3lhbi00MDAgZGFyazpiZy1jeWFuLTEwMCBkYXJrOmZvY3VzOmJvcmRlci1jeWFuLTUwMCBkYXJrOmZvY3VzOnJpbmctY3lhbi01MDBcIixcbiAgICAgICAgZmFpbHVyZTogXCJib3JkZXItcmVkLTUwMCBiZy1yZWQtNTAgdGV4dC1yZWQtOTAwIHBsYWNlaG9sZGVyLXJlZC03MDAgZm9jdXM6Ym9yZGVyLXJlZC01MDAgZm9jdXM6cmluZy1yZWQtNTAwIGRhcms6Ym9yZGVyLXJlZC00MDAgZGFyazpiZy1yZWQtMTAwIGRhcms6Zm9jdXM6Ym9yZGVyLXJlZC01MDAgZGFyazpmb2N1czpyaW5nLXJlZC01MDBcIixcbiAgICAgICAgd2FybmluZzogXCJib3JkZXIteWVsbG93LTUwMCBiZy15ZWxsb3ctNTAgdGV4dC15ZWxsb3ctOTAwIHBsYWNlaG9sZGVyLXllbGxvdy03MDAgZm9jdXM6Ym9yZGVyLXllbGxvdy01MDAgZm9jdXM6cmluZy15ZWxsb3ctNTAwIGRhcms6Ym9yZGVyLXllbGxvdy00MDAgZGFyazpiZy15ZWxsb3ctMTAwIGRhcms6Zm9jdXM6Ym9yZGVyLXllbGxvdy01MDAgZGFyazpmb2N1czpyaW5nLXllbGxvdy01MDBcIixcbiAgICAgICAgc3VjY2VzczogXCJib3JkZXItZ3JlZW4tNTAwIGJnLWdyZWVuLTUwIHRleHQtZ3JlZW4tOTAwIHBsYWNlaG9sZGVyLWdyZWVuLTcwMCBmb2N1czpib3JkZXItZ3JlZW4tNTAwIGZvY3VzOnJpbmctZ3JlZW4tNTAwIGRhcms6Ym9yZGVyLWdyZWVuLTQwMCBkYXJrOmJnLWdyZWVuLTEwMCBkYXJrOmZvY3VzOmJvcmRlci1ncmVlbi01MDAgZGFyazpmb2N1czpyaW5nLWdyZWVuLTUwMFwiXG4gICAgICB9XG4gICAgfVxuICB9XG59KTtcblxuZXhwb3J0IHsgZmlsZUlucHV0VGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgZmxvYXRpbmdMYWJlbFRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICBpbnB1dDoge1xuICAgIGRlZmF1bHQ6IHtcbiAgICAgIGZpbGxlZDoge1xuICAgICAgICBzbTogXCJwZWVyIGJsb2NrIHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgcm91bmRlZC10LWxnIGJvcmRlci0wIGJvcmRlci1iLTIgYm9yZGVyLWdyYXktMzAwIGJnLWdyYXktNTAgcHgtMi41IHBiLTIuNSBwdC01IHRleHQteHMgdGV4dC1ncmF5LTkwMCBmb2N1czpib3JkZXItYmx1ZS02MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMCBkYXJrOmJvcmRlci1ncmF5LTYwMCBkYXJrOmJnLWdyYXktNzAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmZvY3VzOmJvcmRlci1ibHVlLTUwMFwiLFxuICAgICAgICBtZDogXCJwZWVyIGJsb2NrIHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgcm91bmRlZC10LWxnIGJvcmRlci0wIGJvcmRlci1iLTIgYm9yZGVyLWdyYXktMzAwIGJnLWdyYXktNTAgcHgtMi41IHBiLTIuNSBwdC01IHRleHQtc20gdGV4dC1ncmF5LTkwMCBmb2N1czpib3JkZXItYmx1ZS02MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMCBkYXJrOmJvcmRlci1ncmF5LTYwMCBkYXJrOmJnLWdyYXktNzAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmZvY3VzOmJvcmRlci1ibHVlLTUwMFwiXG4gICAgICB9LFxuICAgICAgb3V0bGluZWQ6IHtcbiAgICAgICAgc206IFwicGVlciBibG9jayB3LWZ1bGwgYXBwZWFyYW5jZS1ub25lIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBiZy10cmFuc3BhcmVudCBweC0yLjUgcGItMi41IHB0LTQgdGV4dC14cyB0ZXh0LWdyYXktOTAwIGZvY3VzOmJvcmRlci1ibHVlLTYwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0wIGRhcms6Ym9yZGVyLWdyYXktNjAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmZvY3VzOmJvcmRlci1ibHVlLTUwMFwiLFxuICAgICAgICBtZDogXCJwZWVyIGJsb2NrIHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLWdyYXktMzAwIGJnLXRyYW5zcGFyZW50IHB4LTIuNSBwYi0yLjUgcHQtNCB0ZXh0LXNtIHRleHQtZ3JheS05MDAgZm9jdXM6Ym9yZGVyLWJsdWUtNjAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTAgZGFyazpib3JkZXItZ3JheS02MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6Zm9jdXM6Ym9yZGVyLWJsdWUtNTAwXCJcbiAgICAgIH0sXG4gICAgICBzdGFuZGFyZDoge1xuICAgICAgICBzbTogXCJwZWVyIGJsb2NrIHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgYm9yZGVyLTAgYm9yZGVyLWItMiBib3JkZXItZ3JheS0zMDAgYmctdHJhbnNwYXJlbnQgcHgtMCBweS0yLjUgdGV4dC14cyB0ZXh0LWdyYXktOTAwIGZvY3VzOmJvcmRlci1ibHVlLTYwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0wIGRhcms6Ym9yZGVyLWdyYXktNjAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmZvY3VzOmJvcmRlci1ibHVlLTUwMFwiLFxuICAgICAgICBtZDogXCJwZWVyIGJsb2NrIHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgYm9yZGVyLTAgYm9yZGVyLWItMiBib3JkZXItZ3JheS0zMDAgYmctdHJhbnNwYXJlbnQgcHgtMCBweS0yLjUgdGV4dC1zbSB0ZXh0LWdyYXktOTAwIGZvY3VzOmJvcmRlci1ibHVlLTYwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0wIGRhcms6Ym9yZGVyLWdyYXktNjAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmZvY3VzOmJvcmRlci1ibHVlLTUwMFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBzdWNjZXNzOiB7XG4gICAgICBmaWxsZWQ6IHtcbiAgICAgICAgc206IFwicGVlciBibG9jayB3LWZ1bGwgYXBwZWFyYW5jZS1ub25lIHJvdW5kZWQtdC1sZyBib3JkZXItMCBib3JkZXItYi0yIGJvcmRlci1ncmVlbi02MDAgYmctZ3JheS01MCBweC0yLjUgcGItMi41IHB0LTUgdGV4dC14cyB0ZXh0LWdyYXktOTAwIGZvY3VzOmJvcmRlci1ncmVlbi02MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMCBkYXJrOmJvcmRlci1ncmVlbi01MDAgZGFyazpiZy1ncmF5LTcwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpmb2N1czpib3JkZXItZ3JlZW4tNTAwXCIsXG4gICAgICAgIG1kOiBcInBlZXIgYmxvY2sgdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSByb3VuZGVkLXQtbGcgYm9yZGVyLTAgYm9yZGVyLWItMiBib3JkZXItZ3JlZW4tNjAwIGJnLWdyYXktNTAgcHgtMi41IHBiLTIuNSBwdC01IHRleHQtc20gdGV4dC1ncmF5LTkwMCBmb2N1czpib3JkZXItZ3JlZW4tNjAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTAgZGFyazpib3JkZXItZ3JlZW4tNTAwIGRhcms6YmctZ3JheS03MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6Zm9jdXM6Ym9yZGVyLWdyZWVuLTUwMFwiXG4gICAgICB9LFxuICAgICAgb3V0bGluZWQ6IHtcbiAgICAgICAgc206IFwicGVlciBibG9jayB3LWZ1bGwgYXBwZWFyYW5jZS1ub25lIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1ncmVlbi02MDAgYmctdHJhbnNwYXJlbnQgcHgtMi41IHBiLTIuNSBwdC00IHRleHQteHMgdGV4dC1ncmF5LTkwMCBmb2N1czpib3JkZXItZ3JlZW4tNjAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTAgZGFyazpib3JkZXItZ3JlZW4tNTAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmZvY3VzOmJvcmRlci1ncmVlbi01MDBcIixcbiAgICAgICAgbWQ6IFwicGVlciBibG9jayB3LWZ1bGwgYXBwZWFyYW5jZS1ub25lIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1ncmVlbi02MDAgYmctdHJhbnNwYXJlbnQgcHgtMi41IHBiLTIuNSBwdC00IHRleHQtc20gdGV4dC1ncmF5LTkwMCBmb2N1czpib3JkZXItZ3JlZW4tNjAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTAgZGFyazpib3JkZXItZ3JlZW4tNTAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmZvY3VzOmJvcmRlci1ncmVlbi01MDBcIlxuICAgICAgfSxcbiAgICAgIHN0YW5kYXJkOiB7XG4gICAgICAgIHNtOiBcInBlZXIgYmxvY2sgdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSBib3JkZXItMCBib3JkZXItYi0yIGJvcmRlci1ncmVlbi02MDAgYmctdHJhbnNwYXJlbnQgcHgtMCBweS0yLjUgdGV4dC14cyB0ZXh0LWdyYXktOTAwIGZvY3VzOmJvcmRlci1ncmVlbi02MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMCBkYXJrOmJvcmRlci1ncmVlbi01MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6Zm9jdXM6Ym9yZGVyLWdyZWVuLTUwMFwiLFxuICAgICAgICBtZDogXCJwZWVyIGJsb2NrIHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgYm9yZGVyLTAgYm9yZGVyLWItMiBib3JkZXItZ3JlZW4tNjAwIGJnLXRyYW5zcGFyZW50IHB4LTAgcHktMi41IHRleHQtc20gdGV4dC1ncmF5LTkwMCBmb2N1czpib3JkZXItZ3JlZW4tNjAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTAgZGFyazpib3JkZXItZ3JlZW4tNTAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmZvY3VzOmJvcmRlci1ncmVlbi01MDBcIlxuICAgICAgfVxuICAgIH0sXG4gICAgZXJyb3I6IHtcbiAgICAgIGZpbGxlZDoge1xuICAgICAgICBzbTogXCJwZWVyIGJsb2NrIHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgcm91bmRlZC10LWxnIGJvcmRlci0wIGJvcmRlci1iLTIgYm9yZGVyLXJlZC02MDAgYmctZ3JheS01MCBweC0yLjUgcGItMi41IHB0LTUgdGV4dC14cyB0ZXh0LWdyYXktOTAwIGZvY3VzOmJvcmRlci1yZWQtNjAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTAgZGFyazpib3JkZXItcmVkLTUwMCBkYXJrOmJnLWdyYXktNzAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmZvY3VzOmJvcmRlci1yZWQtNTAwXCIsXG4gICAgICAgIG1kOiBcInBlZXIgYmxvY2sgdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSByb3VuZGVkLXQtbGcgYm9yZGVyLTAgYm9yZGVyLWItMiBib3JkZXItcmVkLTYwMCBiZy1ncmF5LTUwIHB4LTIuNSBwYi0yLjUgcHQtNSB0ZXh0LXNtIHRleHQtZ3JheS05MDAgZm9jdXM6Ym9yZGVyLXJlZC02MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMCBkYXJrOmJvcmRlci1yZWQtNTAwIGRhcms6YmctZ3JheS03MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6Zm9jdXM6Ym9yZGVyLXJlZC01MDBcIlxuICAgICAgfSxcbiAgICAgIG91dGxpbmVkOiB7XG4gICAgICAgIHNtOiBcInBlZXIgYmxvY2sgdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItcmVkLTYwMCBiZy10cmFuc3BhcmVudCBweC0yLjUgcGItMi41IHB0LTQgdGV4dC14cyB0ZXh0LWdyYXktOTAwIGZvY3VzOmJvcmRlci1yZWQtNjAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTAgZGFyazpib3JkZXItcmVkLTUwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpmb2N1czpib3JkZXItcmVkLTUwMFwiLFxuICAgICAgICBtZDogXCJwZWVyIGJsb2NrIHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXJlZC02MDAgYmctdHJhbnNwYXJlbnQgcHgtMi41IHBiLTIuNSBwdC00IHRleHQtc20gdGV4dC1ncmF5LTkwMCBmb2N1czpib3JkZXItcmVkLTYwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0wIGRhcms6Ym9yZGVyLXJlZC01MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6Zm9jdXM6Ym9yZGVyLXJlZC01MDBcIlxuICAgICAgfSxcbiAgICAgIHN0YW5kYXJkOiB7XG4gICAgICAgIHNtOiBcInBlZXIgYmxvY2sgdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSBib3JkZXItMCBib3JkZXItYi0yIGJvcmRlci1yZWQtNjAwIGJnLXRyYW5zcGFyZW50IHB4LTAgcHktMi41IHRleHQteHMgdGV4dC1ncmF5LTkwMCBmb2N1czpib3JkZXItcmVkLTYwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0wIGRhcms6Ym9yZGVyLXJlZC01MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6Zm9jdXM6Ym9yZGVyLXJlZC01MDBcIixcbiAgICAgICAgbWQ6IFwicGVlciBibG9jayB3LWZ1bGwgYXBwZWFyYW5jZS1ub25lIGJvcmRlci0wIGJvcmRlci1iLTIgYm9yZGVyLXJlZC02MDAgYmctdHJhbnNwYXJlbnQgcHgtMCBweS0yLjUgdGV4dC1zbSB0ZXh0LWdyYXktOTAwIGZvY3VzOmJvcmRlci1yZWQtNjAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTAgZGFyazpib3JkZXItcmVkLTUwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpmb2N1czpib3JkZXItcmVkLTUwMFwiXG4gICAgICB9XG4gICAgfVxuICB9LFxuICBsYWJlbDoge1xuICAgIGRlZmF1bHQ6IHtcbiAgICAgIGZpbGxlZDoge1xuICAgICAgICBzbTogXCJhYnNvbHV0ZSBsZWZ0LTIuNSB0b3AtNCB6LTEwIG9yaWdpbi1bMF0gLXRyYW5zbGF0ZS15LTQgc2NhbGUtNzUgdGV4dC14cyB0ZXh0LWdyYXktNTAwIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnRyYW5zbGF0ZS15LTAgcGVlci1wbGFjZWhvbGRlci1zaG93bjpzY2FsZS0xMDAgcGVlci1mb2N1czotdHJhbnNsYXRlLXktNCBwZWVyLWZvY3VzOnNjYWxlLTc1IHBlZXItZm9jdXM6dGV4dC1ibHVlLTYwMCBkYXJrOnRleHQtZ3JheS00MDAgcGVlci1mb2N1czpkYXJrOnRleHQtYmx1ZS01MDBcIixcbiAgICAgICAgbWQ6IFwiYWJzb2x1dGUgbGVmdC0yLjUgdG9wLTQgei0xMCBvcmlnaW4tWzBdIC10cmFuc2xhdGUteS00IHNjYWxlLTc1IHRleHQtc20gdGV4dC1ncmF5LTUwMCB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0zMDAgcGVlci1wbGFjZWhvbGRlci1zaG93bjp0cmFuc2xhdGUteS0wIHBlZXItcGxhY2Vob2xkZXItc2hvd246c2NhbGUtMTAwIHBlZXItZm9jdXM6LXRyYW5zbGF0ZS15LTQgcGVlci1mb2N1czpzY2FsZS03NSBwZWVyLWZvY3VzOnRleHQtYmx1ZS02MDAgZGFyazp0ZXh0LWdyYXktNDAwIHBlZXItZm9jdXM6ZGFyazp0ZXh0LWJsdWUtNTAwXCJcbiAgICAgIH0sXG4gICAgICBvdXRsaW5lZDoge1xuICAgICAgICBzbTogXCJhYnNvbHV0ZSBsZWZ0LTEgdG9wLTIgei0xMCBvcmlnaW4tWzBdIC10cmFuc2xhdGUteS00IHNjYWxlLTc1IGJnLXdoaXRlIHB4LTIgdGV4dC14cyB0ZXh0LWdyYXktNTAwIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnRvcC0xLzIgcGVlci1wbGFjZWhvbGRlci1zaG93bjotdHJhbnNsYXRlLXktMS8yIHBlZXItcGxhY2Vob2xkZXItc2hvd246c2NhbGUtMTAwIHBlZXItZm9jdXM6dG9wLTIgcGVlci1mb2N1czotdHJhbnNsYXRlLXktNCBwZWVyLWZvY3VzOnNjYWxlLTc1IHBlZXItZm9jdXM6cHgtMiBwZWVyLWZvY3VzOnRleHQtYmx1ZS02MDAgZGFyazpiZy1ncmF5LTkwMCBkYXJrOnRleHQtZ3JheS00MDAgcGVlci1mb2N1czpkYXJrOnRleHQtYmx1ZS01MDBcIixcbiAgICAgICAgbWQ6IFwiYWJzb2x1dGUgbGVmdC0xIHRvcC0yIHotMTAgb3JpZ2luLVswXSAtdHJhbnNsYXRlLXktNCBzY2FsZS03NSBiZy13aGl0ZSBweC0yIHRleHQtc20gdGV4dC1ncmF5LTUwMCB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0zMDAgcGVlci1wbGFjZWhvbGRlci1zaG93bjp0b3AtMS8yIHBlZXItcGxhY2Vob2xkZXItc2hvd246LXRyYW5zbGF0ZS15LTEvMiBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnNjYWxlLTEwMCBwZWVyLWZvY3VzOnRvcC0yIHBlZXItZm9jdXM6LXRyYW5zbGF0ZS15LTQgcGVlci1mb2N1czpzY2FsZS03NSBwZWVyLWZvY3VzOnB4LTIgcGVlci1mb2N1czp0ZXh0LWJsdWUtNjAwIGRhcms6YmctZ3JheS05MDAgZGFyazp0ZXh0LWdyYXktNDAwIHBlZXItZm9jdXM6ZGFyazp0ZXh0LWJsdWUtNTAwXCJcbiAgICAgIH0sXG4gICAgICBzdGFuZGFyZDoge1xuICAgICAgICBzbTogXCJhYnNvbHV0ZSB0b3AtMyAtei0xMCBvcmlnaW4tWzBdIC10cmFuc2xhdGUteS02IHNjYWxlLTc1IHRleHQteHMgdGV4dC1ncmF5LTUwMCB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0zMDAgcGVlci1wbGFjZWhvbGRlci1zaG93bjp0cmFuc2xhdGUteS0wIHBlZXItcGxhY2Vob2xkZXItc2hvd246c2NhbGUtMTAwIHBlZXItZm9jdXM6bGVmdC0wIHBlZXItZm9jdXM6LXRyYW5zbGF0ZS15LTYgcGVlci1mb2N1czpzY2FsZS03NSBwZWVyLWZvY3VzOnRleHQtYmx1ZS02MDAgZGFyazp0ZXh0LWdyYXktNDAwIHBlZXItZm9jdXM6ZGFyazp0ZXh0LWJsdWUtNTAwXCIsXG4gICAgICAgIG1kOiBcImFic29sdXRlIHRvcC0zIC16LTEwIG9yaWdpbi1bMF0gLXRyYW5zbGF0ZS15LTYgc2NhbGUtNzUgdGV4dC1zbSB0ZXh0LWdyYXktNTAwIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnRyYW5zbGF0ZS15LTAgcGVlci1wbGFjZWhvbGRlci1zaG93bjpzY2FsZS0xMDAgcGVlci1mb2N1czpsZWZ0LTAgcGVlci1mb2N1czotdHJhbnNsYXRlLXktNiBwZWVyLWZvY3VzOnNjYWxlLTc1IHBlZXItZm9jdXM6dGV4dC1ibHVlLTYwMCBkYXJrOnRleHQtZ3JheS00MDAgcGVlci1mb2N1czpkYXJrOnRleHQtYmx1ZS01MDBcIlxuICAgICAgfVxuICAgIH0sXG4gICAgc3VjY2Vzczoge1xuICAgICAgZmlsbGVkOiB7XG4gICAgICAgIHNtOiBcImFic29sdXRlIGxlZnQtMi41IHRvcC00IHotMTAgb3JpZ2luLVswXSAtdHJhbnNsYXRlLXktNCBzY2FsZS03NSB0ZXh0LXNtIHRleHQtZ3JlZW4tNjAwIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnRyYW5zbGF0ZS15LTAgcGVlci1wbGFjZWhvbGRlci1zaG93bjpzY2FsZS0xMDAgcGVlci1mb2N1czotdHJhbnNsYXRlLXktNCBwZWVyLWZvY3VzOnNjYWxlLTc1IGRhcms6dGV4dC1ncmVlbi01MDBcIixcbiAgICAgICAgbWQ6IFwiYWJzb2x1dGUgbGVmdC0yLjUgdG9wLTQgei0xMCBvcmlnaW4tWzBdIC10cmFuc2xhdGUteS00IHNjYWxlLTc1IHRleHQtc20gdGV4dC1ncmVlbi02MDAgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIHBlZXItcGxhY2Vob2xkZXItc2hvd246dHJhbnNsYXRlLXktMCBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnNjYWxlLTEwMCBwZWVyLWZvY3VzOi10cmFuc2xhdGUteS00IHBlZXItZm9jdXM6c2NhbGUtNzUgZGFyazp0ZXh0LWdyZWVuLTUwMFwiXG4gICAgICB9LFxuICAgICAgb3V0bGluZWQ6IHtcbiAgICAgICAgc206IFwiYWJzb2x1dGUgbGVmdC0xIHRvcC0yIHotMTAgb3JpZ2luLVswXSAtdHJhbnNsYXRlLXktNCBzY2FsZS03NSBiZy13aGl0ZSBweC0yIHRleHQtc20gdGV4dC1ncmVlbi02MDAgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIHBlZXItcGxhY2Vob2xkZXItc2hvd246dG9wLTEvMiBwZWVyLXBsYWNlaG9sZGVyLXNob3duOi10cmFuc2xhdGUteS0xLzIgcGVlci1wbGFjZWhvbGRlci1zaG93bjpzY2FsZS0xMDAgcGVlci1mb2N1czp0b3AtMiBwZWVyLWZvY3VzOi10cmFuc2xhdGUteS00IHBlZXItZm9jdXM6c2NhbGUtNzUgcGVlci1mb2N1czpweC0yIGRhcms6YmctZ3JheS05MDAgZGFyazp0ZXh0LWdyZWVuLTUwMFwiLFxuICAgICAgICBtZDogXCJhYnNvbHV0ZSBsZWZ0LTEgdG9wLTIgei0xMCBvcmlnaW4tWzBdIC10cmFuc2xhdGUteS00IHNjYWxlLTc1IGJnLXdoaXRlIHB4LTIgdGV4dC1zbSB0ZXh0LWdyZWVuLTYwMCB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0zMDAgcGVlci1wbGFjZWhvbGRlci1zaG93bjp0b3AtMS8yIHBlZXItcGxhY2Vob2xkZXItc2hvd246LXRyYW5zbGF0ZS15LTEvMiBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnNjYWxlLTEwMCBwZWVyLWZvY3VzOnRvcC0yIHBlZXItZm9jdXM6LXRyYW5zbGF0ZS15LTQgcGVlci1mb2N1czpzY2FsZS03NSBwZWVyLWZvY3VzOnB4LTIgZGFyazpiZy1ncmF5LTkwMCBkYXJrOnRleHQtZ3JlZW4tNTAwXCJcbiAgICAgIH0sXG4gICAgICBzdGFuZGFyZDoge1xuICAgICAgICBzbTogXCJhYnNvbHV0ZSB0b3AtMyAtei0xMCBvcmlnaW4tWzBdIC10cmFuc2xhdGUteS02IHNjYWxlLTc1IHRleHQteHMgdGV4dC1ncmVlbi02MDAgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIHBlZXItcGxhY2Vob2xkZXItc2hvd246dHJhbnNsYXRlLXktMCBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnNjYWxlLTEwMCBwZWVyLWZvY3VzOmxlZnQtMCBwZWVyLWZvY3VzOi10cmFuc2xhdGUteS02IHBlZXItZm9jdXM6c2NhbGUtNzUgZGFyazp0ZXh0LWdyZWVuLTUwMFwiLFxuICAgICAgICBtZDogXCJhYnNvbHV0ZSB0b3AtMyAtei0xMCBvcmlnaW4tWzBdIC10cmFuc2xhdGUteS02IHNjYWxlLTc1IHRleHQtc20gdGV4dC1ncmVlbi02MDAgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIHBlZXItcGxhY2Vob2xkZXItc2hvd246dHJhbnNsYXRlLXktMCBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnNjYWxlLTEwMCBwZWVyLWZvY3VzOmxlZnQtMCBwZWVyLWZvY3VzOi10cmFuc2xhdGUteS02IHBlZXItZm9jdXM6c2NhbGUtNzUgZGFyazp0ZXh0LWdyZWVuLTUwMFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBlcnJvcjoge1xuICAgICAgZmlsbGVkOiB7XG4gICAgICAgIHNtOiBcImFic29sdXRlIGxlZnQtMi41IHRvcC00IHotMTAgb3JpZ2luLVswXSAtdHJhbnNsYXRlLXktNCBzY2FsZS03NSB0ZXh0LXhzIHRleHQtcmVkLTYwMCB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0zMDAgcGVlci1wbGFjZWhvbGRlci1zaG93bjp0cmFuc2xhdGUteS0wIHBlZXItcGxhY2Vob2xkZXItc2hvd246c2NhbGUtMTAwIHBlZXItZm9jdXM6LXRyYW5zbGF0ZS15LTQgcGVlci1mb2N1czpzY2FsZS03NSBkYXJrOnRleHQtcmVkLTUwMFwiLFxuICAgICAgICBtZDogXCJhYnNvbHV0ZSBsZWZ0LTIuNSB0b3AtNCB6LTEwIG9yaWdpbi1bMF0gLXRyYW5zbGF0ZS15LTQgc2NhbGUtNzUgdGV4dC14cyB0ZXh0LXJlZC02MDAgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIHBlZXItcGxhY2Vob2xkZXItc2hvd246dHJhbnNsYXRlLXktMCBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnNjYWxlLTEwMCBwZWVyLWZvY3VzOi10cmFuc2xhdGUteS00IHBlZXItZm9jdXM6c2NhbGUtNzUgZGFyazp0ZXh0LXJlZC01MDBcIlxuICAgICAgfSxcbiAgICAgIG91dGxpbmVkOiB7XG4gICAgICAgIHNtOiBcImFic29sdXRlIGxlZnQtMSB0b3AtMiB6LTEwIG9yaWdpbi1bMF0gLXRyYW5zbGF0ZS15LTQgc2NhbGUtNzUgYmctd2hpdGUgcHgtMiB0ZXh0LXhzIHRleHQtcmVkLTYwMCB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0zMDAgcGVlci1wbGFjZWhvbGRlci1zaG93bjp0b3AtMS8yIHBlZXItcGxhY2Vob2xkZXItc2hvd246LXRyYW5zbGF0ZS15LTEvMiBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnNjYWxlLTEwMCBwZWVyLWZvY3VzOnRvcC0yIHBlZXItZm9jdXM6LXRyYW5zbGF0ZS15LTQgcGVlci1mb2N1czpzY2FsZS03NSBwZWVyLWZvY3VzOnB4LTIgZGFyazpiZy1ncmF5LTkwMCBkYXJrOnRleHQtcmVkLTUwMFwiLFxuICAgICAgICBtZDogXCJhYnNvbHV0ZSBsZWZ0LTEgdG9wLTIgei0xMCBvcmlnaW4tWzBdIC10cmFuc2xhdGUteS00IHNjYWxlLTc1IGJnLXdoaXRlIHB4LTIgdGV4dC14cyB0ZXh0LXJlZC02MDAgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIHBlZXItcGxhY2Vob2xkZXItc2hvd246dG9wLTEvMiBwZWVyLXBsYWNlaG9sZGVyLXNob3duOi10cmFuc2xhdGUteS0xLzIgcGVlci1wbGFjZWhvbGRlci1zaG93bjpzY2FsZS0xMDAgcGVlci1mb2N1czp0b3AtMiBwZWVyLWZvY3VzOi10cmFuc2xhdGUteS00IHBlZXItZm9jdXM6c2NhbGUtNzUgcGVlci1mb2N1czpweC0yIGRhcms6YmctZ3JheS05MDAgZGFyazp0ZXh0LXJlZC01MDBcIlxuICAgICAgfSxcbiAgICAgIHN0YW5kYXJkOiB7XG4gICAgICAgIHNtOiBcImFic29sdXRlIHRvcC0zIC16LTEwIG9yaWdpbi1bMF0gLXRyYW5zbGF0ZS15LTYgc2NhbGUtNzUgdGV4dC14cyB0ZXh0LXJlZC02MDAgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIHBlZXItcGxhY2Vob2xkZXItc2hvd246dHJhbnNsYXRlLXktMCBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnNjYWxlLTEwMCBwZWVyLWZvY3VzOmxlZnQtMCBwZWVyLWZvY3VzOi10cmFuc2xhdGUteS02IHBlZXItZm9jdXM6c2NhbGUtNzUgZGFyazp0ZXh0LXJlZC01MDBcIixcbiAgICAgICAgbWQ6IFwiYWJzb2x1dGUgdG9wLTMgLXotMTAgb3JpZ2luLVswXSAtdHJhbnNsYXRlLXktNiBzY2FsZS03NSB0ZXh0LXNtIHRleHQtcmVkLTYwMCB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0zMDAgcGVlci1wbGFjZWhvbGRlci1zaG93bjp0cmFuc2xhdGUteS0wIHBlZXItcGxhY2Vob2xkZXItc2hvd246c2NhbGUtMTAwIHBlZXItZm9jdXM6bGVmdC0wIHBlZXItZm9jdXM6LXRyYW5zbGF0ZS15LTYgcGVlci1mb2N1czpzY2FsZS03NSBkYXJrOnRleHQtcmVkLTUwMFwiXG4gICAgICB9XG4gICAgfVxuICB9LFxuICBoZWxwZXJUZXh0OiB7XG4gICAgZGVmYXVsdDogXCJtdC0yIHRleHQteHMgdGV4dC1ncmF5LTYwMCBkYXJrOnRleHQtZ3JheS00MDBcIixcbiAgICBzdWNjZXNzOiBcIm10LTIgdGV4dC14cyB0ZXh0LWdyZWVuLTYwMCBkYXJrOnRleHQtZ3JlZW4tNDAwXCIsXG4gICAgZXJyb3I6IFwibXQtMiB0ZXh0LXhzIHRleHQtcmVkLTYwMCBkYXJrOnRleHQtcmVkLTQwMFwiXG4gIH1cbn0pO1xuXG5leHBvcnQgeyBmbG9hdGluZ0xhYmVsVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgZm9vdGVyVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcInctZnVsbCByb3VuZGVkLWxnIGJnLXdoaXRlIHNoYWRvdyBkYXJrOmJnLWdyYXktODAwIG1kOmZsZXggbWQ6aXRlbXMtY2VudGVyIG1kOmp1c3RpZnktYmV0d2VlblwiLFxuICAgIGNvbnRhaW5lcjogXCJ3LWZ1bGwgcC02XCIsXG4gICAgYmdEYXJrOiBcImJnLWdyYXktODAwXCJcbiAgfSxcbiAgZ3JvdXBMaW5rOiB7XG4gICAgYmFzZTogXCJmbGV4IGZsZXgtd3JhcCB0ZXh0LXNtIHRleHQtZ3JheS01MDAgZGFyazp0ZXh0LXdoaXRlXCIsXG4gICAgbGluazoge1xuICAgICAgYmFzZTogXCJtZS00IGxhc3Q6bXItMCBtZDptci02XCIsXG4gICAgICBocmVmOiBcImhvdmVyOnVuZGVybGluZVwiXG4gICAgfSxcbiAgICBjb2w6IFwiZmxleC1jb2wgc3BhY2UteS00XCJcbiAgfSxcbiAgaWNvbjoge1xuICAgIGJhc2U6IFwidGV4dC1ncmF5LTUwMCBkYXJrOmhvdmVyOnRleHQtd2hpdGVcIixcbiAgICBzaXplOiBcImgtNSB3LTVcIlxuICB9LFxuICB0aXRsZToge1xuICAgIGJhc2U6IFwibWItNiB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdXBwZXJjYXNlIHRleHQtZ3JheS01MDAgZGFyazp0ZXh0LXdoaXRlXCJcbiAgfSxcbiAgZGl2aWRlcjoge1xuICAgIGJhc2U6IFwibXktNiB3LWZ1bGwgYm9yZGVyLWdyYXktMjAwIGRhcms6Ym9yZGVyLWdyYXktNzAwIHNtOm14LWF1dG8gbGc6bXktOFwiXG4gIH0sXG4gIGNvcHlyaWdodDoge1xuICAgIGJhc2U6IFwidGV4dC1zbSB0ZXh0LWdyYXktNTAwIGRhcms6dGV4dC1ncmF5LTQwMCBzbTp0ZXh0LWNlbnRlclwiLFxuICAgIGhyZWY6IFwibWwtMSBob3Zlcjp1bmRlcmxpbmVcIixcbiAgICBzcGFuOiBcIm1sLTFcIlxuICB9LFxuICBicmFuZDoge1xuICAgIGJhc2U6IFwibWItNCBmbGV4IGl0ZW1zLWNlbnRlciBzbTptYi0wXCIsXG4gICAgaW1nOiBcIm1yLTMgaC04XCIsXG4gICAgc3BhbjogXCJzZWxmLWNlbnRlciB3aGl0ZXNwYWNlLW5vd3JhcCB0ZXh0LTJ4bCBmb250LXNlbWlib2xkIHRleHQtZ3JheS04MDAgZGFyazp0ZXh0LXdoaXRlXCJcbiAgfVxufSk7XG5cbmV4cG9ydCB7IGZvb3RlclRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IGhlbHBlclRleHRUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgcm9vdDoge1xuICAgIGJhc2U6IFwibXQtMiB0ZXh0LXNtXCIsXG4gICAgY29sb3JzOiB7XG4gICAgICBncmF5OiBcInRleHQtZ3JheS01MDAgZGFyazp0ZXh0LWdyYXktNDAwXCIsXG4gICAgICBpbmZvOiBcInRleHQtY3lhbi03MDAgZGFyazp0ZXh0LWN5YW4tODAwXCIsXG4gICAgICBzdWNjZXNzOiBcInRleHQtZ3JlZW4tNjAwIGRhcms6dGV4dC1ncmVlbi01MDBcIixcbiAgICAgIGZhaWx1cmU6IFwidGV4dC1yZWQtNjAwIGRhcms6dGV4dC1yZWQtNTAwXCIsXG4gICAgICB3YXJuaW5nOiBcInRleHQteWVsbG93LTUwMCBkYXJrOnRleHQteWVsbG93LTYwMFwiXG4gICAgfVxuICB9XG59KTtcblxuZXhwb3J0IHsgaGVscGVyVGV4dFRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IGhyVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcIm15LTggaC1weCBib3JkZXItMCBiZy1ncmF5LTIwMCBkYXJrOmJnLWdyYXktNzAwXCJcbiAgfSxcbiAgdHJpbW1lZDoge1xuICAgIGJhc2U6IFwibXgtYXV0byBteS00IGgtMSB3LTQ4IHJvdW5kZWQgYm9yZGVyLTAgYmctZ3JheS0xMDAgZGFyazpiZy1ncmF5LTcwMCBtZDpteS0xMFwiXG4gIH0sXG4gIGljb246IHtcbiAgICBiYXNlOiBcImlubGluZS1mbGV4IHctZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIixcbiAgICBockxpbmU6IFwibXktOCBoLTEgdy02NCByb3VuZGVkIGJvcmRlci0wIGJnLWdyYXktMjAwIGRhcms6YmctZ3JheS03MDBcIixcbiAgICBpY29uOiB7XG4gICAgICBiYXNlOiBcImFic29sdXRlIGxlZnQtMS8yIC10cmFuc2xhdGUteC0xLzIgYmctd2hpdGUgcHgtNCBkYXJrOmJnLWdyYXktOTAwXCIsXG4gICAgICBpY29uOiBcImgtNCB3LTQgdGV4dC1ncmF5LTcwMCBkYXJrOnRleHQtZ3JheS0zMDBcIlxuICAgIH1cbiAgfSxcbiAgdGV4dDoge1xuICAgIGJhc2U6IFwiaW5saW5lLWZsZXggdy1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiLFxuICAgIGhyTGluZTogXCJteS04IGgtcHggdy02NCBib3JkZXItMCBiZy1ncmF5LTIwMCBkYXJrOmJnLWdyYXktNzAwXCIsXG4gICAgdGV4dDogXCJhYnNvbHV0ZSBsZWZ0LTEvMiAtdHJhbnNsYXRlLXgtMS8yIGJnLXdoaXRlIHB4LTMgZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBkYXJrOmJnLWdyYXktOTAwIGRhcms6dGV4dC13aGl0ZVwiXG4gIH0sXG4gIHNxdWFyZToge1xuICAgIGJhc2U6IFwibXgtYXV0byBteS04IGgtOCB3LTggcm91bmRlZCBib3JkZXItMCBiZy1ncmF5LTIwMCBkYXJrOmJnLWdyYXktNzAwIG1kOm15LTEyXCJcbiAgfVxufSk7XG5cbmV4cG9ydCB7IGhyVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3Qga2JkVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcInJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCBiZy1ncmF5LTEwMCBweC0yIHB5LTEuNSB0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTgwMCBkYXJrOmJvcmRlci1ncmF5LTUwMCBkYXJrOmJnLWdyYXktNjAwIGRhcms6dGV4dC1ncmF5LTEwMFwiLFxuICAgIGljb246IFwiaW5saW5lLWJsb2NrXCJcbiAgfVxufSk7XG5cbmV4cG9ydCB7IGtiZFRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IGxhYmVsVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcInRleHQtc20gZm9udC1tZWRpdW1cIixcbiAgICBkaXNhYmxlZDogXCJvcGFjaXR5LTUwXCIsXG4gICAgY29sb3JzOiB7XG4gICAgICBkZWZhdWx0OiBcInRleHQtZ3JheS05MDAgZGFyazp0ZXh0LXdoaXRlXCIsXG4gICAgICBpbmZvOiBcInRleHQtY3lhbi01MDAgZGFyazp0ZXh0LWN5YW4tNjAwXCIsXG4gICAgICBmYWlsdXJlOiBcInRleHQtcmVkLTcwMCBkYXJrOnRleHQtcmVkLTUwMFwiLFxuICAgICAgd2FybmluZzogXCJ0ZXh0LXllbGxvdy01MDAgZGFyazp0ZXh0LXllbGxvdy02MDBcIixcbiAgICAgIHN1Y2Nlc3M6IFwidGV4dC1ncmVlbi03MDAgZGFyazp0ZXh0LWdyZWVuLTUwMFwiXG4gICAgfVxuICB9XG59KTtcblxuZXhwb3J0IHsgbGFiZWxUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBsaXN0VGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcImxpc3QtaW5zaWRlIHNwYWNlLXktMSB0ZXh0LWdyYXktNTAwIGRhcms6dGV4dC1ncmF5LTQwMFwiLFxuICAgIG9yZGVyZWQ6IHtcbiAgICAgIG9mZjogXCJsaXN0LWRpc2NcIixcbiAgICAgIG9uOiBcImxpc3QtZGVjaW1hbFwiXG4gICAgfSxcbiAgICBob3Jpem9udGFsOiBcImZsZXggbGlzdC1ub25lIGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgc3BhY2UteC00IHNwYWNlLXktMFwiLFxuICAgIHVuc3R5bGVkOiBcImxpc3Qtbm9uZVwiLFxuICAgIG5lc3RlZDogXCJtdC0yIHBzLTVcIlxuICB9LFxuICBpdGVtOiB7XG4gICAgd2l0aEljb246IHtcbiAgICAgIG9mZjogXCJcIixcbiAgICAgIG9uOiBcImZsZXggaXRlbXMtY2VudGVyXCJcbiAgICB9LFxuICAgIGljb246IFwibWUtMiBoLTMuNSB3LTMuNSBmbGV4LXNocmluay0wXCJcbiAgfVxufSk7XG5cbmV4cG9ydCB7IGxpc3RUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBsaXN0R3JvdXBUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgcm9vdDoge1xuICAgIGJhc2U6IFwibGlzdC1ub25lIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCBiZy13aGl0ZSB0ZXh0LWxlZnQgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwIGRhcms6Ym9yZGVyLWdyYXktNjAwIGRhcms6YmctZ3JheS03MDAgZGFyazp0ZXh0LXdoaXRlXCJcbiAgfSxcbiAgaXRlbToge1xuICAgIGJhc2U6IFwiWyY+Kl06Zmlyc3Q6cm91bmRlZC10LWxnIFsmPipdOmxhc3Q6cm91bmRlZC1iLWxnIFsmPipdOmxhc3Q6Ym9yZGVyLWItMFwiLFxuICAgIGxpbms6IHtcbiAgICAgIGJhc2U6IFwiZmxleCB3LWZ1bGwgaXRlbXMtY2VudGVyIGJvcmRlci1iIGJvcmRlci1ncmF5LTIwMCBweC00IHB5LTIgZGFyazpib3JkZXItZ3JheS02MDBcIixcbiAgICAgIGFjdGl2ZToge1xuICAgICAgICBvZmY6IFwiaG92ZXI6YmctZ3JheS0xMDAgaG92ZXI6dGV4dC1jeWFuLTcwMCBmb2N1czp0ZXh0LWN5YW4tNzAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1jeWFuLTcwMCBkYXJrOmJvcmRlci1ncmF5LTYwMCBkYXJrOmhvdmVyOmJnLWdyYXktNjAwIGRhcms6aG92ZXI6dGV4dC13aGl0ZSBkYXJrOmZvY3VzOnRleHQtd2hpdGUgZGFyazpmb2N1czpyaW5nLWdyYXktNTAwXCIsXG4gICAgICAgIG9uOiBcImJnLWN5YW4tNzAwIHRleHQtd2hpdGUgZGFyazpiZy1ncmF5LTgwMFwiXG4gICAgICB9LFxuICAgICAgZGlzYWJsZWQ6IHtcbiAgICAgICAgb2ZmOiBcIlwiLFxuICAgICAgICBvbjogXCJjdXJzb3Itbm90LWFsbG93ZWQgYmctZ3JheS0xMDAgdGV4dC1ncmF5LTkwMCBob3ZlcjpiZy1ncmF5LTEwMCBob3Zlcjp0ZXh0LWdyYXktOTAwIGZvY3VzOnRleHQtZ3JheS05MDBcIlxuICAgICAgfSxcbiAgICAgIGhyZWY6IHtcbiAgICAgICAgb2ZmOiBcIlwiLFxuICAgICAgICBvbjogXCJcIlxuICAgICAgfSxcbiAgICAgIGljb246IFwibXItMiBoLTQgdy00IGZpbGwtY3VycmVudFwiXG4gICAgfVxuICB9XG59KTtcblxuZXhwb3J0IHsgbGlzdEdyb3VwVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgbmF2YmFyVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcImJnLXdoaXRlIHB4LTIgcHktMi41IGRhcms6Ym9yZGVyLWdyYXktNzAwIGRhcms6YmctZ3JheS04MDAgc206cHgtNFwiLFxuICAgIHJvdW5kZWQ6IHtcbiAgICAgIG9uOiBcInJvdW5kZWRcIixcbiAgICAgIG9mZjogXCJcIlxuICAgIH0sXG4gICAgYm9yZGVyZWQ6IHtcbiAgICAgIG9uOiBcImJvcmRlclwiLFxuICAgICAgb2ZmOiBcIlwiXG4gICAgfSxcbiAgICBpbm5lcjoge1xuICAgICAgYmFzZTogXCJteC1hdXRvIGZsZXggZmxleC13cmFwIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIixcbiAgICAgIGZsdWlkOiB7XG4gICAgICAgIG9uOiBcIlwiLFxuICAgICAgICBvZmY6IFwiY29udGFpbmVyXCJcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIGJyYW5kOiB7XG4gICAgYmFzZTogXCJmbGV4IGl0ZW1zLWNlbnRlclwiXG4gIH0sXG4gIGNvbGxhcHNlOiB7XG4gICAgYmFzZTogXCJ3LWZ1bGwgbWQ6YmxvY2sgbWQ6dy1hdXRvXCIsXG4gICAgbGlzdDogXCJtdC00IGZsZXggZmxleC1jb2wgbWQ6bXQtMCBtZDpmbGV4LXJvdyBtZDpzcGFjZS14LTggbWQ6dGV4dC1zbSBtZDpmb250LW1lZGl1bVwiLFxuICAgIGhpZGRlbjoge1xuICAgICAgb246IFwiaGlkZGVuXCIsXG4gICAgICBvZmY6IFwiXCJcbiAgICB9XG4gIH0sXG4gIGxpbms6IHtcbiAgICBiYXNlOiBcImJsb2NrIHB5LTIgcGwtMyBwci00IG1kOnAtMFwiLFxuICAgIGFjdGl2ZToge1xuICAgICAgb246IFwiYmctY3lhbi03MDAgdGV4dC13aGl0ZSBkYXJrOnRleHQtd2hpdGUgbWQ6YmctdHJhbnNwYXJlbnQgbWQ6dGV4dC1jeWFuLTcwMFwiLFxuICAgICAgb2ZmOiBcImJvcmRlci1iIGJvcmRlci1ncmF5LTEwMCB0ZXh0LWdyYXktNzAwIGhvdmVyOmJnLWdyYXktNTAgZGFyazpib3JkZXItZ3JheS03MDAgZGFyazp0ZXh0LWdyYXktNDAwIGRhcms6aG92ZXI6YmctZ3JheS03MDAgZGFyazpob3Zlcjp0ZXh0LXdoaXRlIG1kOmJvcmRlci0wIG1kOmhvdmVyOmJnLXRyYW5zcGFyZW50IG1kOmhvdmVyOnRleHQtY3lhbi03MDAgbWQ6ZGFyazpob3ZlcjpiZy10cmFuc3BhcmVudCBtZDpkYXJrOmhvdmVyOnRleHQtd2hpdGVcIlxuICAgIH0sXG4gICAgZGlzYWJsZWQ6IHtcbiAgICAgIG9uOiBcInRleHQtZ3JheS00MDAgaG92ZXI6Y3Vyc29yLW5vdC1hbGxvd2VkIGRhcms6dGV4dC1ncmF5LTYwMFwiLFxuICAgICAgb2ZmOiBcIlwiXG4gICAgfVxuICB9LFxuICB0b2dnbGU6IHtcbiAgICBiYXNlOiBcImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciByb3VuZGVkLWxnIHAtMiB0ZXh0LXNtIHRleHQtZ3JheS01MDAgaG92ZXI6YmctZ3JheS0xMDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLWdyYXktMjAwIGRhcms6dGV4dC1ncmF5LTQwMCBkYXJrOmhvdmVyOmJnLWdyYXktNzAwIGRhcms6Zm9jdXM6cmluZy1ncmF5LTYwMCBtZDpoaWRkZW5cIixcbiAgICBpY29uOiBcImgtNiB3LTYgc2hyaW5rLTBcIlxuICB9XG59KTtcblxuZXhwb3J0IHsgbmF2YmFyVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5pbXBvcnQgeyBkcm9wZG93blRoZW1lIH0gZnJvbSAnLi4vRHJvcGRvd24vdGhlbWUubWpzJztcbmltcG9ydCB7IG5hdmJhclRoZW1lIH0gZnJvbSAnLi4vTmF2YmFyL3RoZW1lLm1qcyc7XG5cbmNvbnN0IG1lZ2FNZW51VGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIC4uLm5hdmJhclRoZW1lLFxuICBkcm9wZG93bjoge1xuICAgIGJhc2U6IFwiXCIsXG4gICAgdG9nZ2xlOiB7XG4gICAgICAuLi5kcm9wZG93blRoZW1lLFxuICAgICAgZmxvYXRpbmc6IHtcbiAgICAgICAgLi4uZHJvcGRvd25UaGVtZS5mbG9hdGluZyxcbiAgICAgICAgYmFzZTogdHdNZXJnZShkcm9wZG93blRoZW1lLmZsb2F0aW5nLmJhc2UsIFwibXQtMiBibG9ja1wiKSxcbiAgICAgICAgY29udGVudDogdHdNZXJnZShkcm9wZG93blRoZW1lLmZsb2F0aW5nLmNvbnRlbnQsIFwidGV4dC1ncmF5LTUwMCBkYXJrOnRleHQtZ3JheS00MDBcIiksXG4gICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgLi4uZHJvcGRvd25UaGVtZS5mbG9hdGluZy5zdHlsZSxcbiAgICAgICAgICBhdXRvOiB0d01lcmdlKGRyb3Bkb3duVGhlbWUuZmxvYXRpbmcuc3R5bGUuYXV0bywgXCJ0ZXh0LWdyYXktNTAwIGRhcms6dGV4dC1ncmF5LTQwMFwiKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgaW5saW5lV3JhcHBlcjogdHdNZXJnZShkcm9wZG93blRoZW1lLmlubGluZVdyYXBwZXIsIFwiZmxleCB3LWZ1bGwgaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiKVxuICAgIH1cbiAgfSxcbiAgZHJvcGRvd25Ub2dnbGU6IHtcbiAgICBiYXNlOiB0d01lcmdlKG5hdmJhclRoZW1lLmxpbmsuYmFzZSwgbmF2YmFyVGhlbWUubGluay5hY3RpdmUub2ZmLCBcImZsZXggdy1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIilcbiAgfVxufSk7XG5cbmV4cG9ydCB7IG1lZ2FNZW51VGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgbW9kYWxUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgcm9vdDoge1xuICAgIGJhc2U6IFwiZml4ZWQgaW5zZXQteC0wIHRvcC0wIHotNTAgaC1zY3JlZW4gb3ZlcmZsb3cteS1hdXRvIG92ZXJmbG93LXgtaGlkZGVuIG1kOmluc2V0LTAgbWQ6aC1mdWxsXCIsXG4gICAgc2hvdzoge1xuICAgICAgb246IFwiZmxleCBiZy1ncmF5LTkwMCBiZy1vcGFjaXR5LTUwIGRhcms6Ymctb3BhY2l0eS04MFwiLFxuICAgICAgb2ZmOiBcImhpZGRlblwiXG4gICAgfSxcbiAgICBzaXplczoge1xuICAgICAgc206IFwibWF4LXctc21cIixcbiAgICAgIG1kOiBcIm1heC13LW1kXCIsXG4gICAgICBsZzogXCJtYXgtdy1sZ1wiLFxuICAgICAgeGw6IFwibWF4LXcteGxcIixcbiAgICAgIFwiMnhsXCI6IFwibWF4LXctMnhsXCIsXG4gICAgICBcIjN4bFwiOiBcIm1heC13LTN4bFwiLFxuICAgICAgXCI0eGxcIjogXCJtYXgtdy00eGxcIixcbiAgICAgIFwiNXhsXCI6IFwibWF4LXctNXhsXCIsXG4gICAgICBcIjZ4bFwiOiBcIm1heC13LTZ4bFwiLFxuICAgICAgXCI3eGxcIjogXCJtYXgtdy03eGxcIlxuICAgIH0sXG4gICAgcG9zaXRpb25zOiB7XG4gICAgICBcInRvcC1sZWZ0XCI6IFwiaXRlbXMtc3RhcnQganVzdGlmeS1zdGFydFwiLFxuICAgICAgXCJ0b3AtY2VudGVyXCI6IFwiaXRlbXMtc3RhcnQganVzdGlmeS1jZW50ZXJcIixcbiAgICAgIFwidG9wLXJpZ2h0XCI6IFwiaXRlbXMtc3RhcnQganVzdGlmeS1lbmRcIixcbiAgICAgIFwiY2VudGVyLWxlZnRcIjogXCJpdGVtcy1jZW50ZXIganVzdGlmeS1zdGFydFwiLFxuICAgICAgY2VudGVyOiBcIml0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiLFxuICAgICAgXCJjZW50ZXItcmlnaHRcIjogXCJpdGVtcy1jZW50ZXIganVzdGlmeS1lbmRcIixcbiAgICAgIFwiYm90dG9tLXJpZ2h0XCI6IFwiaXRlbXMtZW5kIGp1c3RpZnktZW5kXCIsXG4gICAgICBcImJvdHRvbS1jZW50ZXJcIjogXCJpdGVtcy1lbmQganVzdGlmeS1jZW50ZXJcIixcbiAgICAgIFwiYm90dG9tLWxlZnRcIjogXCJpdGVtcy1lbmQganVzdGlmeS1zdGFydFwiXG4gICAgfVxuICB9LFxuICBjb250ZW50OiB7XG4gICAgYmFzZTogXCJyZWxhdGl2ZSBoLWZ1bGwgdy1mdWxsIHAtNCBtZDpoLWF1dG9cIixcbiAgICBpbm5lcjogXCJyZWxhdGl2ZSBmbGV4IG1heC1oLVs5MGR2aF0gZmxleC1jb2wgcm91bmRlZC1sZyBiZy13aGl0ZSBzaGFkb3cgZGFyazpiZy1ncmF5LTcwMFwiXG4gIH0sXG4gIGJvZHk6IHtcbiAgICBiYXNlOiBcImZsZXgtMSBvdmVyZmxvdy1hdXRvIHAtNlwiLFxuICAgIHBvcHVwOiBcInB0LTBcIlxuICB9LFxuICBoZWFkZXI6IHtcbiAgICBiYXNlOiBcImZsZXggaXRlbXMtc3RhcnQganVzdGlmeS1iZXR3ZWVuIHJvdW5kZWQtdCBib3JkZXItYiBwLTUgZGFyazpib3JkZXItZ3JheS02MDBcIixcbiAgICBwb3B1cDogXCJib3JkZXItYi0wIHAtMlwiLFxuICAgIHRpdGxlOiBcInRleHQteGwgZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBkYXJrOnRleHQtd2hpdGVcIixcbiAgICBjbG9zZToge1xuICAgICAgYmFzZTogXCJtbC1hdXRvIGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciByb3VuZGVkLWxnIGJnLXRyYW5zcGFyZW50IHAtMS41IHRleHQtc20gdGV4dC1ncmF5LTQwMCBob3ZlcjpiZy1ncmF5LTIwMCBob3Zlcjp0ZXh0LWdyYXktOTAwIGRhcms6aG92ZXI6YmctZ3JheS02MDAgZGFyazpob3Zlcjp0ZXh0LXdoaXRlXCIsXG4gICAgICBpY29uOiBcImgtNSB3LTVcIlxuICAgIH1cbiAgfSxcbiAgZm9vdGVyOiB7XG4gICAgYmFzZTogXCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTIgcm91bmRlZC1iIGJvcmRlci1ncmF5LTIwMCBwLTYgZGFyazpib3JkZXItZ3JheS02MDBcIixcbiAgICBwb3B1cDogXCJib3JkZXItdFwiXG4gIH1cbn0pO1xuXG5leHBvcnQgeyBtb2RhbFRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IHBhZ2luYXRpb25UaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgYmFzZTogXCJcIixcbiAgbGF5b3V0OiB7XG4gICAgdGFibGU6IHtcbiAgICAgIGJhc2U6IFwidGV4dC1zbSB0ZXh0LWdyYXktNzAwIGRhcms6dGV4dC1ncmF5LTQwMFwiLFxuICAgICAgc3BhbjogXCJmb250LXNlbWlib2xkIHRleHQtZ3JheS05MDAgZGFyazp0ZXh0LXdoaXRlXCJcbiAgICB9XG4gIH0sXG4gIHBhZ2VzOiB7XG4gICAgYmFzZTogXCJ4czptdC0wIG10LTIgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIC1zcGFjZS14LXB4XCIsXG4gICAgc2hvd0ljb246IFwiaW5saW5lLWZsZXhcIixcbiAgICBwcmV2aW91czoge1xuICAgICAgYmFzZTogXCJtbC0wIHJvdW5kZWQtbC1sZyBib3JkZXIgYm9yZGVyLWdyYXktMzAwIGJnLXdoaXRlIHB4LTMgcHktMiBsZWFkaW5nLXRpZ2h0IHRleHQtZ3JheS01MDAgZW5hYmxlZDpob3ZlcjpiZy1ncmF5LTEwMCBlbmFibGVkOmhvdmVyOnRleHQtZ3JheS03MDAgZGFyazpib3JkZXItZ3JheS03MDAgZGFyazpiZy1ncmF5LTgwMCBkYXJrOnRleHQtZ3JheS00MDAgZW5hYmxlZDpkYXJrOmhvdmVyOmJnLWdyYXktNzAwIGVuYWJsZWQ6ZGFyazpob3Zlcjp0ZXh0LXdoaXRlXCIsXG4gICAgICBpY29uOiBcImgtNSB3LTVcIlxuICAgIH0sXG4gICAgbmV4dDoge1xuICAgICAgYmFzZTogXCJyb3VuZGVkLXItbGcgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBiZy13aGl0ZSBweC0zIHB5LTIgbGVhZGluZy10aWdodCB0ZXh0LWdyYXktNTAwIGVuYWJsZWQ6aG92ZXI6YmctZ3JheS0xMDAgZW5hYmxlZDpob3Zlcjp0ZXh0LWdyYXktNzAwIGRhcms6Ym9yZGVyLWdyYXktNzAwIGRhcms6YmctZ3JheS04MDAgZGFyazp0ZXh0LWdyYXktNDAwIGVuYWJsZWQ6ZGFyazpob3ZlcjpiZy1ncmF5LTcwMCBlbmFibGVkOmRhcms6aG92ZXI6dGV4dC13aGl0ZVwiLFxuICAgICAgaWNvbjogXCJoLTUgdy01XCJcbiAgICB9LFxuICAgIHNlbGVjdG9yOiB7XG4gICAgICBiYXNlOiBcInctMTIgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBiZy13aGl0ZSBweS0yIGxlYWRpbmctdGlnaHQgdGV4dC1ncmF5LTUwMCBlbmFibGVkOmhvdmVyOmJnLWdyYXktMTAwIGVuYWJsZWQ6aG92ZXI6dGV4dC1ncmF5LTcwMCBkYXJrOmJvcmRlci1ncmF5LTcwMCBkYXJrOmJnLWdyYXktODAwIGRhcms6dGV4dC1ncmF5LTQwMCBlbmFibGVkOmRhcms6aG92ZXI6YmctZ3JheS03MDAgZW5hYmxlZDpkYXJrOmhvdmVyOnRleHQtd2hpdGVcIixcbiAgICAgIGFjdGl2ZTogXCJiZy1jeWFuLTUwIHRleHQtY3lhbi02MDAgaG92ZXI6YmctY3lhbi0xMDAgaG92ZXI6dGV4dC1jeWFuLTcwMCBkYXJrOmJvcmRlci1ncmF5LTcwMCBkYXJrOmJnLWdyYXktNzAwIGRhcms6dGV4dC13aGl0ZVwiLFxuICAgICAgZGlzYWJsZWQ6IFwiY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNTBcIlxuICAgIH1cbiAgfVxufSk7XG5cbmV4cG9ydCB7IHBhZ2luYXRpb25UaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiY29uc3QgcG9wb3ZlclRoZW1lID0ge1xuICBiYXNlOiBcImFic29sdXRlIHotMjAgaW5saW5lLWJsb2NrIHctbWF4IG1heC13LVsxMDB2d10gYmctd2hpdGUgb3V0bGluZS1ub25lIGJvcmRlciBib3JkZXItZ3JheS0yMDAgcm91bmRlZC1sZyBzaGFkb3ctc20gZGFyazpib3JkZXItZ3JheS02MDAgZGFyazpiZy1ncmF5LTgwMFwiLFxuICBjb250ZW50OiBcInotMTAgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtWzdweF1cIixcbiAgYXJyb3c6IHtcbiAgICBiYXNlOiBcImFic29sdXRlIGgtMiB3LTIgei0wIHJvdGF0ZS00NSBtaXgtYmxlbmQtbGlnaHRlbiBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMjAwIGRhcms6Ym9yZGVyLWdyYXktNjAwIGRhcms6YmctZ3JheS04MDAgZGFyazptaXgtYmxlbmQtY29sb3JcIixcbiAgICBwbGFjZW1lbnQ6IFwiLTRweFwiXG4gIH1cbn07XG5cbmV4cG9ydCB7IHBvcG92ZXJUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBwcm9ncmVzc1RoZW1lID0gY3JlYXRlVGhlbWUoe1xuICBiYXNlOiBcInctZnVsbCBvdmVyZmxvdy1oaWRkZW4gcm91bmRlZC1mdWxsIGJnLWdyYXktMjAwIGRhcms6YmctZ3JheS03MDBcIixcbiAgbGFiZWw6IFwibWItMSBmbGV4IGp1c3RpZnktYmV0d2VlbiBmb250LW1lZGl1bSBkYXJrOnRleHQtd2hpdGVcIixcbiAgYmFyOiBcInNwYWNlLXgtMiByb3VuZGVkLWZ1bGwgdGV4dC1jZW50ZXIgZm9udC1tZWRpdW0gbGVhZGluZy1ub25lIHRleHQtY3lhbi0zMDAgZGFyazp0ZXh0LWN5YW4tMTAwXCIsXG4gIGNvbG9yOiB7XG4gICAgZGFyazogXCJiZy1ncmF5LTYwMCBkYXJrOmJnLWdyYXktMzAwXCIsXG4gICAgYmx1ZTogXCJiZy1ibHVlLTYwMFwiLFxuICAgIHJlZDogXCJiZy1yZWQtNjAwIGRhcms6YmctcmVkLTUwMFwiLFxuICAgIGdyZWVuOiBcImJnLWdyZWVuLTYwMCBkYXJrOmJnLWdyZWVuLTUwMFwiLFxuICAgIHllbGxvdzogXCJiZy15ZWxsb3ctNDAwXCIsXG4gICAgaW5kaWdvOiBcImJnLWluZGlnby02MDAgZGFyazpiZy1pbmRpZ28tNTAwXCIsXG4gICAgcHVycGxlOiBcImJnLXB1cnBsZS02MDAgZGFyazpiZy1wdXJwbGUtNTAwXCIsXG4gICAgY3lhbjogXCJiZy1jeWFuLTYwMFwiLFxuICAgIGdyYXk6IFwiYmctZ3JheS01MDBcIixcbiAgICBsaW1lOiBcImJnLWxpbWUtNjAwXCIsXG4gICAgcGluazogXCJiZy1waW5rLTUwMFwiLFxuICAgIHRlYWw6IFwiYmctdGVhbC02MDBcIlxuICB9LFxuICBzaXplOiB7XG4gICAgc206IFwiaC0xLjVcIixcbiAgICBtZDogXCJoLTIuNVwiLFxuICAgIGxnOiBcImgtNFwiLFxuICAgIHhsOiBcImgtNlwiXG4gIH1cbn0pO1xuXG5leHBvcnQgeyBwcm9ncmVzc1RoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IHJhZGlvVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcImgtNCB3LTQgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCB0ZXh0LWN5YW4tNjAwIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLWN5YW4tNTAwIGRhcms6Ym9yZGVyLWdyYXktNjAwIGRhcms6YmctZ3JheS03MDAgZGFyazpmb2N1czpiZy1jeWFuLTYwMCBkYXJrOmZvY3VzOnJpbmctY3lhbi02MDBcIlxuICB9XG59KTtcblxuZXhwb3J0IHsgcmFkaW9UaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCByYW5nZVNsaWRlclRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICByb290OiB7XG4gICAgYmFzZTogXCJmbGV4XCJcbiAgfSxcbiAgZmllbGQ6IHtcbiAgICBiYXNlOiBcInJlbGF0aXZlIHctZnVsbFwiLFxuICAgIGlucHV0OiB7XG4gICAgICBiYXNlOiBcInctZnVsbCBjdXJzb3ItcG9pbnRlciBhcHBlYXJhbmNlLW5vbmUgcm91bmRlZC1sZyBiZy1ncmF5LTIwMCBkYXJrOmJnLWdyYXktNzAwXCIsXG4gICAgICBzaXplczoge1xuICAgICAgICBzbTogXCJoLTFcIixcbiAgICAgICAgbWQ6IFwiaC0yXCIsXG4gICAgICAgIGxnOiBcImgtM1wiXG4gICAgICB9XG4gICAgfVxuICB9XG59KTtcblxuZXhwb3J0IHsgcmFuZ2VTbGlkZXJUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCByYXRpbmdUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgcm9vdDoge1xuICAgIGJhc2U6IFwiZmxleCBpdGVtcy1jZW50ZXJcIlxuICB9LFxuICBzdGFyOiB7XG4gICAgZW1wdHk6IFwidGV4dC1ncmF5LTMwMCBkYXJrOnRleHQtZ3JheS01MDBcIixcbiAgICBmaWxsZWQ6IFwidGV4dC15ZWxsb3ctNDAwXCIsXG4gICAgc2l6ZXM6IHtcbiAgICAgIHNtOiBcImgtNSB3LTVcIixcbiAgICAgIG1kOiBcImgtNyB3LTdcIixcbiAgICAgIGxnOiBcImgtMTAgdy0xMFwiXG4gICAgfVxuICB9XG59KTtcbmNvbnN0IHJhdGluZ0FkdmFuY2VkVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIGJhc2U6IFwiZmxleCBpdGVtcy1jZW50ZXJcIixcbiAgbGFiZWw6IFwidGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWN5YW4tNjAwIGRhcms6dGV4dC1jeWFuLTUwMFwiLFxuICBwcm9ncmVzczoge1xuICAgIGJhc2U6IFwibXgtNCBoLTUgdy0yLzQgcm91bmRlZCBiZy1ncmF5LTIwMCBkYXJrOmJnLWdyYXktNzAwXCIsXG4gICAgZmlsbDogXCJoLTUgcm91bmRlZCBiZy15ZWxsb3ctNDAwXCIsXG4gICAgbGFiZWw6IFwidGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWN5YW4tNjAwIGRhcms6dGV4dC1jeWFuLTUwMFwiXG4gIH1cbn0pO1xuXG5leHBvcnQgeyByYXRpbmdBZHZhbmNlZFRoZW1lLCByYXRpbmdUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBzZWxlY3RUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgYmFzZTogXCJmbGV4XCIsXG4gIGFkZG9uOiBcImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciByb3VuZGVkLWwtbWQgYm9yZGVyIGJvcmRlci1yLTAgYm9yZGVyLWdyYXktMzAwIGJnLWdyYXktMjAwIHB4LTMgdGV4dC1zbSB0ZXh0LWdyYXktOTAwIGRhcms6Ym9yZGVyLWdyYXktNjAwIGRhcms6YmctZ3JheS02MDAgZGFyazp0ZXh0LWdyYXktNDAwXCIsXG4gIGZpZWxkOiB7XG4gICAgYmFzZTogXCJyZWxhdGl2ZSB3LWZ1bGxcIixcbiAgICBpY29uOiB7XG4gICAgICBiYXNlOiBcInBvaW50ZXItZXZlbnRzLW5vbmUgYWJzb2x1dGUgaW5zZXQteS0wIGxlZnQtMCBmbGV4IGl0ZW1zLWNlbnRlciBwbC0zXCIsXG4gICAgICBzdmc6IFwiaC01IHctNSB0ZXh0LWdyYXktNTAwIGRhcms6dGV4dC1ncmF5LTQwMFwiXG4gICAgfSxcbiAgICBzZWxlY3Q6IHtcbiAgICAgIGJhc2U6IFwiYmxvY2sgdy1mdWxsIGJvcmRlciBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgZGlzYWJsZWQ6b3BhY2l0eS01MFwiLFxuICAgICAgd2l0aEljb246IHtcbiAgICAgICAgb246IFwicGwtMTBcIixcbiAgICAgICAgb2ZmOiBcIlwiXG4gICAgICB9LFxuICAgICAgd2l0aEFkZG9uOiB7XG4gICAgICAgIG9uOiBcInJvdW5kZWQtci1sZ1wiLFxuICAgICAgICBvZmY6IFwicm91bmRlZC1sZ1wiXG4gICAgICB9LFxuICAgICAgd2l0aFNoYWRvdzoge1xuICAgICAgICBvbjogXCJzaGFkb3ctc20gZGFyazpzaGFkb3ctc20tbGlnaHRcIixcbiAgICAgICAgb2ZmOiBcIlwiXG4gICAgICB9LFxuICAgICAgc2l6ZXM6IHtcbiAgICAgICAgc206IFwicC0yIHNtOnRleHQteHNcIixcbiAgICAgICAgbWQ6IFwicC0yLjUgdGV4dC1zbVwiLFxuICAgICAgICBsZzogXCJwLTQgc206dGV4dC1iYXNlXCJcbiAgICAgIH0sXG4gICAgICBjb2xvcnM6IHtcbiAgICAgICAgZ3JheTogXCJib3JkZXItZ3JheS0zMDAgYmctZ3JheS01MCB0ZXh0LWdyYXktOTAwIGZvY3VzOmJvcmRlci1jeWFuLTUwMCBmb2N1czpyaW5nLWN5YW4tNTAwIGRhcms6Ym9yZGVyLWdyYXktNjAwIGRhcms6YmctZ3JheS03MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6cGxhY2Vob2xkZXItZ3JheS00MDAgZGFyazpmb2N1czpib3JkZXItY3lhbi01MDAgZGFyazpmb2N1czpyaW5nLWN5YW4tNTAwXCIsXG4gICAgICAgIGluZm86IFwiYm9yZGVyLWN5YW4tNTAwIGJnLWN5YW4tNTAgdGV4dC1jeWFuLTkwMCBwbGFjZWhvbGRlci1jeWFuLTcwMCBmb2N1czpib3JkZXItY3lhbi01MDAgZm9jdXM6cmluZy1jeWFuLTUwMCBkYXJrOmJvcmRlci1jeWFuLTQwMCBkYXJrOmJnLWN5YW4tMTAwIGRhcms6Zm9jdXM6Ym9yZGVyLWN5YW4tNTAwIGRhcms6Zm9jdXM6cmluZy1jeWFuLTUwMFwiLFxuICAgICAgICBmYWlsdXJlOiBcImJvcmRlci1yZWQtNTAwIGJnLXJlZC01MCB0ZXh0LXJlZC05MDAgcGxhY2Vob2xkZXItcmVkLTcwMCBmb2N1czpib3JkZXItcmVkLTUwMCBmb2N1czpyaW5nLXJlZC01MDAgZGFyazpib3JkZXItcmVkLTQwMCBkYXJrOmJnLXJlZC0xMDAgZGFyazpmb2N1czpib3JkZXItcmVkLTUwMCBkYXJrOmZvY3VzOnJpbmctcmVkLTUwMFwiLFxuICAgICAgICB3YXJuaW5nOiBcImJvcmRlci15ZWxsb3ctNTAwIGJnLXllbGxvdy01MCB0ZXh0LXllbGxvdy05MDAgcGxhY2Vob2xkZXIteWVsbG93LTcwMCBmb2N1czpib3JkZXIteWVsbG93LTUwMCBmb2N1czpyaW5nLXllbGxvdy01MDAgZGFyazpib3JkZXIteWVsbG93LTQwMCBkYXJrOmJnLXllbGxvdy0xMDAgZGFyazpmb2N1czpib3JkZXIteWVsbG93LTUwMCBkYXJrOmZvY3VzOnJpbmcteWVsbG93LTUwMFwiLFxuICAgICAgICBzdWNjZXNzOiBcImJvcmRlci1ncmVlbi01MDAgYmctZ3JlZW4tNTAgdGV4dC1ncmVlbi05MDAgcGxhY2Vob2xkZXItZ3JlZW4tNzAwIGZvY3VzOmJvcmRlci1ncmVlbi01MDAgZm9jdXM6cmluZy1ncmVlbi01MDAgZGFyazpib3JkZXItZ3JlZW4tNDAwIGRhcms6YmctZ3JlZW4tMTAwIGRhcms6Zm9jdXM6Ym9yZGVyLWdyZWVuLTUwMCBkYXJrOmZvY3VzOnJpbmctZ3JlZW4tNTAwXCJcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0pO1xuXG5leHBvcnQgeyBzZWxlY3RUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBzaWRlYmFyVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcImgtZnVsbFwiLFxuICAgIGNvbGxhcHNlZDoge1xuICAgICAgb246IFwidy0xNlwiLFxuICAgICAgb2ZmOiBcInctNjRcIlxuICAgIH0sXG4gICAgaW5uZXI6IFwiaC1mdWxsIG92ZXJmbG93LXktYXV0byBvdmVyZmxvdy14LWhpZGRlbiByb3VuZGVkIGJnLWdyYXktNTAgcHgtMyBweS00IGRhcms6YmctZ3JheS04MDBcIlxuICB9LFxuICBjb2xsYXBzZToge1xuICAgIGJ1dHRvbjogXCJncm91cCBmbGV4IHctZnVsbCBpdGVtcy1jZW50ZXIgcm91bmRlZC1sZyBwLTIgdGV4dC1iYXNlIGZvbnQtbm9ybWFsIHRleHQtZ3JheS05MDAgdHJhbnNpdGlvbiBkdXJhdGlvbi03NSBob3ZlcjpiZy1ncmF5LTEwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpob3ZlcjpiZy1ncmF5LTcwMFwiLFxuICAgIGljb246IHtcbiAgICAgIGJhc2U6IFwiaC02IHctNiB0ZXh0LWdyYXktNTAwIHRyYW5zaXRpb24gZHVyYXRpb24tNzUgZ3JvdXAtaG92ZXI6dGV4dC1ncmF5LTkwMCBkYXJrOnRleHQtZ3JheS00MDAgZGFyazpncm91cC1ob3Zlcjp0ZXh0LXdoaXRlXCIsXG4gICAgICBvcGVuOiB7XG4gICAgICAgIG9mZjogXCJcIixcbiAgICAgICAgb246IFwidGV4dC1ncmF5LTkwMFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBsYWJlbDoge1xuICAgICAgYmFzZTogXCJtbC0zIGZsZXgtMSB3aGl0ZXNwYWNlLW5vd3JhcCB0ZXh0LWxlZnRcIixcbiAgICAgIGljb246IHtcbiAgICAgICAgYmFzZTogXCJoLTYgdy02IHRyYW5zaXRpb24gZGVsYXktMCBlYXNlLWluLW91dFwiLFxuICAgICAgICBvcGVuOiB7XG4gICAgICAgICAgb246IFwicm90YXRlLTE4MFwiLFxuICAgICAgICAgIG9mZjogXCJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBsaXN0OiBcInNwYWNlLXktMiBweS0yXCJcbiAgfSxcbiAgY3RhOiB7XG4gICAgYmFzZTogXCJtdC02IHJvdW5kZWQtbGcgYmctZ3JheS0xMDAgcC00IGRhcms6YmctZ3JheS03MDBcIixcbiAgICBjb2xvcjoge1xuICAgICAgYmx1ZTogXCJiZy1jeWFuLTUwIGRhcms6YmctY3lhbi05MDBcIixcbiAgICAgIGRhcms6IFwiYmctZGFyay01MCBkYXJrOmJnLWRhcmstOTAwXCIsXG4gICAgICBmYWlsdXJlOiBcImJnLXJlZC01MCBkYXJrOmJnLXJlZC05MDBcIixcbiAgICAgIGdyYXk6IFwiYmctYWx0ZXJuYXRpdmUtNTAgZGFyazpiZy1hbHRlcm5hdGl2ZS05MDBcIixcbiAgICAgIGdyZWVuOiBcImJnLWdyZWVuLTUwIGRhcms6YmctZ3JlZW4tOTAwXCIsXG4gICAgICBsaWdodDogXCJiZy1saWdodC01MCBkYXJrOmJnLWxpZ2h0LTkwMFwiLFxuICAgICAgcmVkOiBcImJnLXJlZC01MCBkYXJrOmJnLXJlZC05MDBcIixcbiAgICAgIHB1cnBsZTogXCJiZy1wdXJwbGUtNTAgZGFyazpiZy1wdXJwbGUtOTAwXCIsXG4gICAgICBzdWNjZXNzOiBcImJnLWdyZWVuLTUwIGRhcms6YmctZ3JlZW4tOTAwXCIsXG4gICAgICB5ZWxsb3c6IFwiYmcteWVsbG93LTUwIGRhcms6YmcteWVsbG93LTkwMFwiLFxuICAgICAgd2FybmluZzogXCJiZy15ZWxsb3ctNTAgZGFyazpiZy15ZWxsb3ctOTAwXCJcbiAgICB9XG4gIH0sXG4gIGl0ZW06IHtcbiAgICBiYXNlOiBcImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtbGcgcC0yIHRleHQtYmFzZSBmb250LW5vcm1hbCB0ZXh0LWdyYXktOTAwIGhvdmVyOmJnLWdyYXktMTAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmhvdmVyOmJnLWdyYXktNzAwXCIsXG4gICAgYWN0aXZlOiBcImJnLWdyYXktMTAwIGRhcms6YmctZ3JheS03MDBcIixcbiAgICBjb2xsYXBzZWQ6IHtcbiAgICAgIGluc2lkZUNvbGxhcHNlOiBcImdyb3VwIHctZnVsbCBwbC04IHRyYW5zaXRpb24gZHVyYXRpb24tNzVcIixcbiAgICAgIG5vSWNvbjogXCJmb250LWJvbGRcIlxuICAgIH0sXG4gICAgY29udGVudDoge1xuICAgICAgYmFzZTogXCJmbGV4LTEgd2hpdGVzcGFjZS1ub3dyYXAgcHgtM1wiXG4gICAgfSxcbiAgICBpY29uOiB7XG4gICAgICBiYXNlOiBcImgtNiB3LTYgZmxleC1zaHJpbmstMCB0ZXh0LWdyYXktNTAwIHRyYW5zaXRpb24gZHVyYXRpb24tNzUgZ3JvdXAtaG92ZXI6dGV4dC1ncmF5LTkwMCBkYXJrOnRleHQtZ3JheS00MDAgZGFyazpncm91cC1ob3Zlcjp0ZXh0LXdoaXRlXCIsXG4gICAgICBhY3RpdmU6IFwidGV4dC1ncmF5LTcwMCBkYXJrOnRleHQtZ3JheS0xMDBcIlxuICAgIH0sXG4gICAgbGFiZWw6IFwiXCIsXG4gICAgbGlzdEl0ZW06IFwiXCJcbiAgfSxcbiAgaXRlbXM6IHtcbiAgICBiYXNlOiBcIlwiXG4gIH0sXG4gIGl0ZW1Hcm91cDoge1xuICAgIGJhc2U6IFwibXQtNCBzcGFjZS15LTIgYm9yZGVyLXQgYm9yZGVyLWdyYXktMjAwIHB0LTQgZmlyc3Q6bXQtMCBmaXJzdDpib3JkZXItdC0wIGZpcnN0OnB0LTAgZGFyazpib3JkZXItZ3JheS03MDBcIlxuICB9LFxuICBsb2dvOiB7XG4gICAgYmFzZTogXCJtYi01IGZsZXggaXRlbXMtY2VudGVyIHBsLTIuNVwiLFxuICAgIGNvbGxhcHNlZDoge1xuICAgICAgb246IFwiaGlkZGVuXCIsXG4gICAgICBvZmY6IFwic2VsZi1jZW50ZXIgd2hpdGVzcGFjZS1ub3dyYXAgdGV4dC14bCBmb250LXNlbWlib2xkIGRhcms6dGV4dC13aGl0ZVwiXG4gICAgfSxcbiAgICBpbWc6IFwibXItMyBoLTYgc206aC03XCJcbiAgfVxufSk7XG5cbmV4cG9ydCB7IHNpZGViYXJUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBzcGlubmVyVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIGJhc2U6IFwiaW5saW5lIGFuaW1hdGUtc3BpbiB0ZXh0LWdyYXktMjAwXCIsXG4gIGNvbG9yOiB7XG4gICAgZmFpbHVyZTogXCJmaWxsLXJlZC02MDBcIixcbiAgICBncmF5OiBcImZpbGwtZ3JheS02MDBcIixcbiAgICBpbmZvOiBcImZpbGwtY3lhbi02MDBcIixcbiAgICBwaW5rOiBcImZpbGwtcGluay02MDBcIixcbiAgICBwdXJwbGU6IFwiZmlsbC1wdXJwbGUtNjAwXCIsXG4gICAgc3VjY2VzczogXCJmaWxsLWdyZWVuLTUwMFwiLFxuICAgIHdhcm5pbmc6IFwiZmlsbC15ZWxsb3ctNDAwXCJcbiAgfSxcbiAgbGlnaHQ6IHtcbiAgICBvZmY6IHtcbiAgICAgIGJhc2U6IFwiZGFyazp0ZXh0LWdyYXktNjAwXCIsXG4gICAgICBjb2xvcjoge1xuICAgICAgICBmYWlsdXJlOiBcIlwiLFxuICAgICAgICBncmF5OiBcImRhcms6ZmlsbC1ncmF5LTMwMFwiLFxuICAgICAgICBpbmZvOiBcIlwiLFxuICAgICAgICBwaW5rOiBcIlwiLFxuICAgICAgICBwdXJwbGU6IFwiXCIsXG4gICAgICAgIHN1Y2Nlc3M6IFwiXCIsXG4gICAgICAgIHdhcm5pbmc6IFwiXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIG9uOiB7XG4gICAgICBiYXNlOiBcIlwiLFxuICAgICAgY29sb3I6IHtcbiAgICAgICAgZmFpbHVyZTogXCJcIixcbiAgICAgICAgZ3JheTogXCJcIixcbiAgICAgICAgaW5mbzogXCJcIixcbiAgICAgICAgcGluazogXCJcIixcbiAgICAgICAgcHVycGxlOiBcIlwiLFxuICAgICAgICBzdWNjZXNzOiBcIlwiLFxuICAgICAgICB3YXJuaW5nOiBcIlwiXG4gICAgICB9XG4gICAgfVxuICB9LFxuICBzaXplOiB7XG4gICAgeHM6IFwiaC0zIHctM1wiLFxuICAgIHNtOiBcImgtNCB3LTRcIixcbiAgICBtZDogXCJoLTYgdy02XCIsXG4gICAgbGc6IFwiaC04IHctOFwiLFxuICAgIHhsOiBcImgtMTAgdy0xMFwiXG4gIH1cbn0pO1xuXG5leHBvcnQgeyBzcGlubmVyVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgdGFibGVUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgcm9vdDoge1xuICAgIGJhc2U6IFwidy1mdWxsIHRleHQtbGVmdCB0ZXh0LXNtIHRleHQtZ3JheS01MDAgZGFyazp0ZXh0LWdyYXktNDAwXCIsXG4gICAgc2hhZG93OiBcImFic29sdXRlIGxlZnQtMCB0b3AtMCAtei0xMCBoLWZ1bGwgdy1mdWxsIHJvdW5kZWQtbGcgYmctd2hpdGUgZHJvcC1zaGFkb3ctbWQgZGFyazpiZy1ibGFja1wiLFxuICAgIHdyYXBwZXI6IFwicmVsYXRpdmVcIlxuICB9LFxuICBib2R5OiB7XG4gICAgYmFzZTogXCJncm91cC9ib2R5XCIsXG4gICAgY2VsbDoge1xuICAgICAgYmFzZTogXCJweC02IHB5LTQgZ3JvdXAtZmlyc3QvYm9keTpncm91cC1maXJzdC9yb3c6Zmlyc3Q6cm91bmRlZC10bC1sZyBncm91cC1maXJzdC9ib2R5Omdyb3VwLWZpcnN0L3JvdzpsYXN0OnJvdW5kZWQtdHItbGcgZ3JvdXAtbGFzdC9ib2R5Omdyb3VwLWxhc3Qvcm93OmZpcnN0OnJvdW5kZWQtYmwtbGcgZ3JvdXAtbGFzdC9ib2R5Omdyb3VwLWxhc3Qvcm93Omxhc3Q6cm91bmRlZC1ici1sZ1wiXG4gICAgfVxuICB9LFxuICBoZWFkOiB7XG4gICAgYmFzZTogXCJncm91cC9oZWFkIHRleHQteHMgdXBwZXJjYXNlIHRleHQtZ3JheS03MDAgZGFyazp0ZXh0LWdyYXktNDAwXCIsXG4gICAgY2VsbDoge1xuICAgICAgYmFzZTogXCJiZy1ncmF5LTUwIHB4LTYgcHktMyBncm91cC1maXJzdC9oZWFkOmZpcnN0OnJvdW5kZWQtdGwtbGcgZ3JvdXAtZmlyc3QvaGVhZDpsYXN0OnJvdW5kZWQtdHItbGcgZGFyazpiZy1ncmF5LTcwMFwiXG4gICAgfVxuICB9LFxuICByb3c6IHtcbiAgICBiYXNlOiBcImdyb3VwL3Jvd1wiLFxuICAgIGhvdmVyZWQ6IFwiaG92ZXI6YmctZ3JheS01MCBkYXJrOmhvdmVyOmJnLWdyYXktNjAwXCIsXG4gICAgc3RyaXBlZDogXCJvZGQ6Ymctd2hpdGUgZXZlbjpiZy1ncmF5LTUwIG9kZDpkYXJrOmJnLWdyYXktODAwIGV2ZW46ZGFyazpiZy1ncmF5LTcwMFwiXG4gIH1cbn0pO1xuXG5leHBvcnQgeyB0YWJsZVRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IHRhYlRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICBiYXNlOiBcImZsZXggZmxleC1jb2wgZ2FwLTJcIixcbiAgdGFibGlzdDoge1xuICAgIGJhc2U6IFwiZmxleCB0ZXh0LWNlbnRlclwiLFxuICAgIHZhcmlhbnQ6IHtcbiAgICAgIGRlZmF1bHQ6IFwiZmxleC13cmFwIGJvcmRlci1iIGJvcmRlci1ncmF5LTIwMCBkYXJrOmJvcmRlci1ncmF5LTcwMFwiLFxuICAgICAgdW5kZXJsaW5lOiBcIi1tYi1weCBmbGV4LXdyYXAgYm9yZGVyLWIgYm9yZGVyLWdyYXktMjAwIGRhcms6Ym9yZGVyLWdyYXktNzAwXCIsXG4gICAgICBwaWxsczogXCJmbGV4LXdyYXAgc3BhY2UteC0yIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTUwMCBkYXJrOnRleHQtZ3JheS00MDBcIixcbiAgICAgIGZ1bGxXaWR0aDogXCJncmlkIHctZnVsbCBncmlkLWZsb3ctY29sIGRpdmlkZS14IGRpdmlkZS1ncmF5LTIwMCByb3VuZGVkLW5vbmUgdGV4dC1zbSBmb250LW1lZGl1bSBzaGFkb3cgZGFyazpkaXZpZGUtZ3JheS03MDAgZGFyazp0ZXh0LWdyYXktNDAwXCJcbiAgICB9LFxuICAgIHRhYml0ZW06IHtcbiAgICAgIGJhc2U6IFwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC10LWxnIHAtNCB0ZXh0LXNtIGZvbnQtbWVkaXVtIGZpcnN0Om1sLTAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLWN5YW4tMzAwIGRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCBkaXNhYmxlZDp0ZXh0LWdyYXktNDAwIGRpc2FibGVkOmRhcms6dGV4dC1ncmF5LTUwMFwiLFxuICAgICAgdmFyaWFudDoge1xuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgYmFzZTogXCJyb3VuZGVkLXQtbGdcIixcbiAgICAgICAgICBhY3RpdmU6IHtcbiAgICAgICAgICAgIG9uOiBcImJnLWdyYXktMTAwIHRleHQtY3lhbi02MDAgZGFyazpiZy1ncmF5LTgwMCBkYXJrOnRleHQtY3lhbi01MDBcIixcbiAgICAgICAgICAgIG9mZjogXCJ0ZXh0LWdyYXktNTAwIGhvdmVyOmJnLWdyYXktNTAgaG92ZXI6dGV4dC1ncmF5LTYwMCBkYXJrOnRleHQtZ3JheS00MDAgZGFyazpob3ZlcjpiZy1ncmF5LTgwMCBkYXJrOmhvdmVyOnRleHQtZ3JheS0zMDBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgdW5kZXJsaW5lOiB7XG4gICAgICAgICAgYmFzZTogXCJyb3VuZGVkLXQtbGdcIixcbiAgICAgICAgICBhY3RpdmU6IHtcbiAgICAgICAgICAgIG9uOiBcImFjdGl2ZSByb3VuZGVkLXQtbGcgYm9yZGVyLWItMiBib3JkZXItY3lhbi02MDAgdGV4dC1jeWFuLTYwMCBkYXJrOmJvcmRlci1jeWFuLTUwMCBkYXJrOnRleHQtY3lhbi01MDBcIixcbiAgICAgICAgICAgIG9mZjogXCJib3JkZXItYi0yIGJvcmRlci10cmFuc3BhcmVudCB0ZXh0LWdyYXktNTAwIGhvdmVyOmJvcmRlci1ncmF5LTMwMCBob3Zlcjp0ZXh0LWdyYXktNjAwIGRhcms6dGV4dC1ncmF5LTQwMCBkYXJrOmhvdmVyOnRleHQtZ3JheS0zMDBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcGlsbHM6IHtcbiAgICAgICAgICBiYXNlOiBcIlwiLFxuICAgICAgICAgIGFjdGl2ZToge1xuICAgICAgICAgICAgb246IFwicm91bmRlZC1sZyBiZy1jeWFuLTYwMCB0ZXh0LXdoaXRlXCIsXG4gICAgICAgICAgICBvZmY6IFwicm91bmRlZC1sZyBob3ZlcjpiZy1ncmF5LTEwMCBob3Zlcjp0ZXh0LWdyYXktOTAwIGRhcms6aG92ZXI6YmctZ3JheS04MDAgZGFyazpob3Zlcjp0ZXh0LXdoaXRlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGZ1bGxXaWR0aDoge1xuICAgICAgICAgIGJhc2U6IFwibWwtMCBmbGV4IHctZnVsbCByb3VuZGVkLW5vbmUgZmlyc3Q6bWwtMFwiLFxuICAgICAgICAgIGFjdGl2ZToge1xuICAgICAgICAgICAgb246IFwiYWN0aXZlIHJvdW5kZWQtbm9uZSBiZy1ncmF5LTEwMCBwLTQgdGV4dC1ncmF5LTkwMCBkYXJrOmJnLWdyYXktNzAwIGRhcms6dGV4dC13aGl0ZVwiLFxuICAgICAgICAgICAgb2ZmOiBcInJvdW5kZWQtbm9uZSBiZy13aGl0ZSBob3ZlcjpiZy1ncmF5LTUwIGhvdmVyOnRleHQtZ3JheS03MDAgZGFyazpiZy1ncmF5LTgwMCBkYXJrOmhvdmVyOmJnLWdyYXktNzAwIGRhcms6aG92ZXI6dGV4dC13aGl0ZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgaWNvbjogXCJtci0yIGgtNSB3LTVcIlxuICAgIH1cbiAgfSxcbiAgdGFiaXRlbWNvbnRhaW5lcjoge1xuICAgIGJhc2U6IFwiXCIsXG4gICAgdmFyaWFudDoge1xuICAgICAgZGVmYXVsdDogXCJcIixcbiAgICAgIHVuZGVybGluZTogXCJcIixcbiAgICAgIHBpbGxzOiBcIlwiLFxuICAgICAgZnVsbFdpZHRoOiBcIlwiXG4gICAgfVxuICB9LFxuICB0YWJwYW5lbDogXCJweS0zXCJcbn0pO1xuXG5leHBvcnQgeyB0YWJUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCB0ZXh0YXJlYVRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICBiYXNlOiBcImJsb2NrIHctZnVsbCByb3VuZGVkLWxnIGJvcmRlciB0ZXh0LXNtIGRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCBkaXNhYmxlZDpvcGFjaXR5LTUwXCIsXG4gIGNvbG9yczoge1xuICAgIGdyYXk6IFwiYm9yZGVyLWdyYXktMzAwIGJnLWdyYXktNTAgdGV4dC1ncmF5LTkwMCBmb2N1czpib3JkZXItY3lhbi01MDAgZm9jdXM6cmluZy1jeWFuLTUwMCBkYXJrOmJvcmRlci1ncmF5LTYwMCBkYXJrOmJnLWdyYXktNzAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOnBsYWNlaG9sZGVyLWdyYXktNDAwIGRhcms6Zm9jdXM6Ym9yZGVyLWN5YW4tNTAwIGRhcms6Zm9jdXM6cmluZy1jeWFuLTUwMFwiLFxuICAgIGluZm86IFwiYm9yZGVyLWN5YW4tNTAwIGJnLWN5YW4tNTAgdGV4dC1jeWFuLTkwMCBwbGFjZWhvbGRlci1jeWFuLTcwMCBmb2N1czpib3JkZXItY3lhbi01MDAgZm9jdXM6cmluZy1jeWFuLTUwMCBkYXJrOmJvcmRlci1jeWFuLTQwMCBkYXJrOmJnLWN5YW4tMTAwIGRhcms6Zm9jdXM6Ym9yZGVyLWN5YW4tNTAwIGRhcms6Zm9jdXM6cmluZy1jeWFuLTUwMFwiLFxuICAgIGZhaWx1cmU6IFwiYm9yZGVyLXJlZC01MDAgYmctcmVkLTUwIHRleHQtcmVkLTkwMCBwbGFjZWhvbGRlci1yZWQtNzAwIGZvY3VzOmJvcmRlci1yZWQtNTAwIGZvY3VzOnJpbmctcmVkLTUwMCBkYXJrOmJvcmRlci1yZWQtNDAwIGRhcms6YmctcmVkLTEwMCBkYXJrOmZvY3VzOmJvcmRlci1yZWQtNTAwIGRhcms6Zm9jdXM6cmluZy1yZWQtNTAwXCIsXG4gICAgd2FybmluZzogXCJib3JkZXIteWVsbG93LTUwMCBiZy15ZWxsb3ctNTAgdGV4dC15ZWxsb3ctOTAwIHBsYWNlaG9sZGVyLXllbGxvdy03MDAgZm9jdXM6Ym9yZGVyLXllbGxvdy01MDAgZm9jdXM6cmluZy15ZWxsb3ctNTAwIGRhcms6Ym9yZGVyLXllbGxvdy00MDAgZGFyazpiZy15ZWxsb3ctMTAwIGRhcms6Zm9jdXM6Ym9yZGVyLXllbGxvdy01MDAgZGFyazpmb2N1czpyaW5nLXllbGxvdy01MDBcIixcbiAgICBzdWNjZXNzOiBcImJvcmRlci1ncmVlbi01MDAgYmctZ3JlZW4tNTAgdGV4dC1ncmVlbi05MDAgcGxhY2Vob2xkZXItZ3JlZW4tNzAwIGZvY3VzOmJvcmRlci1ncmVlbi01MDAgZm9jdXM6cmluZy1ncmVlbi01MDAgZGFyazpib3JkZXItZ3JlZW4tNDAwIGRhcms6YmctZ3JlZW4tMTAwIGRhcms6Zm9jdXM6Ym9yZGVyLWdyZWVuLTUwMCBkYXJrOmZvY3VzOnJpbmctZ3JlZW4tNTAwXCJcbiAgfSxcbiAgd2l0aFNoYWRvdzoge1xuICAgIG9uOiBcInNoYWRvdy1zbSBkYXJrOnNoYWRvdy1zbS1saWdodFwiLFxuICAgIG9mZjogXCJcIlxuICB9XG59KTtcblxuZXhwb3J0IHsgdGV4dGFyZWFUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCB0ZXh0SW5wdXRUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgYmFzZTogXCJmbGV4XCIsXG4gIGFkZG9uOiBcImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciByb3VuZGVkLWwtbWQgYm9yZGVyIGJvcmRlci1yLTAgYm9yZGVyLWdyYXktMzAwIGJnLWdyYXktMjAwIHB4LTMgdGV4dC1zbSB0ZXh0LWdyYXktOTAwIGRhcms6Ym9yZGVyLWdyYXktNjAwIGRhcms6YmctZ3JheS02MDAgZGFyazp0ZXh0LWdyYXktNDAwXCIsXG4gIGZpZWxkOiB7XG4gICAgYmFzZTogXCJyZWxhdGl2ZSB3LWZ1bGxcIixcbiAgICBpY29uOiB7XG4gICAgICBiYXNlOiBcInBvaW50ZXItZXZlbnRzLW5vbmUgYWJzb2x1dGUgaW5zZXQteS0wIGxlZnQtMCBmbGV4IGl0ZW1zLWNlbnRlciBwbC0zXCIsXG4gICAgICBzdmc6IFwiaC01IHctNSB0ZXh0LWdyYXktNTAwIGRhcms6dGV4dC1ncmF5LTQwMFwiXG4gICAgfSxcbiAgICByaWdodEljb246IHtcbiAgICAgIGJhc2U6IFwicG9pbnRlci1ldmVudHMtbm9uZSBhYnNvbHV0ZSBpbnNldC15LTAgcmlnaHQtMCBmbGV4IGl0ZW1zLWNlbnRlciBwci0zXCIsXG4gICAgICBzdmc6IFwiaC01IHctNSB0ZXh0LWdyYXktNTAwIGRhcms6dGV4dC1ncmF5LTQwMFwiXG4gICAgfSxcbiAgICBpbnB1dDoge1xuICAgICAgYmFzZTogXCJibG9jayB3LWZ1bGwgYm9yZGVyIGRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCBkaXNhYmxlZDpvcGFjaXR5LTUwXCIsXG4gICAgICBzaXplczoge1xuICAgICAgICBzbTogXCJwLTIgc206dGV4dC14c1wiLFxuICAgICAgICBtZDogXCJwLTIuNSB0ZXh0LXNtXCIsXG4gICAgICAgIGxnOiBcInAtNCBzbTp0ZXh0LWJhc2VcIlxuICAgICAgfSxcbiAgICAgIGNvbG9yczoge1xuICAgICAgICBncmF5OiBcImJvcmRlci1ncmF5LTMwMCBiZy1ncmF5LTUwIHRleHQtZ3JheS05MDAgZm9jdXM6Ym9yZGVyLWN5YW4tNTAwIGZvY3VzOnJpbmctY3lhbi01MDAgZGFyazpib3JkZXItZ3JheS02MDAgZGFyazpiZy1ncmF5LTcwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpwbGFjZWhvbGRlci1ncmF5LTQwMCBkYXJrOmZvY3VzOmJvcmRlci1jeWFuLTUwMCBkYXJrOmZvY3VzOnJpbmctY3lhbi01MDBcIixcbiAgICAgICAgaW5mbzogXCJib3JkZXItY3lhbi01MDAgYmctY3lhbi01MCB0ZXh0LWN5YW4tOTAwIHBsYWNlaG9sZGVyLWN5YW4tNzAwIGZvY3VzOmJvcmRlci1jeWFuLTUwMCBmb2N1czpyaW5nLWN5YW4tNTAwIGRhcms6Ym9yZGVyLWN5YW4tNDAwIGRhcms6YmctY3lhbi0xMDAgZGFyazpmb2N1czpib3JkZXItY3lhbi01MDAgZGFyazpmb2N1czpyaW5nLWN5YW4tNTAwXCIsXG4gICAgICAgIGZhaWx1cmU6IFwiYm9yZGVyLXJlZC01MDAgYmctcmVkLTUwIHRleHQtcmVkLTkwMCBwbGFjZWhvbGRlci1yZWQtNzAwIGZvY3VzOmJvcmRlci1yZWQtNTAwIGZvY3VzOnJpbmctcmVkLTUwMCBkYXJrOmJvcmRlci1yZWQtNDAwIGRhcms6YmctcmVkLTEwMCBkYXJrOmZvY3VzOmJvcmRlci1yZWQtNTAwIGRhcms6Zm9jdXM6cmluZy1yZWQtNTAwXCIsXG4gICAgICAgIHdhcm5pbmc6IFwiYm9yZGVyLXllbGxvdy01MDAgYmcteWVsbG93LTUwIHRleHQteWVsbG93LTkwMCBwbGFjZWhvbGRlci15ZWxsb3ctNzAwIGZvY3VzOmJvcmRlci15ZWxsb3ctNTAwIGZvY3VzOnJpbmcteWVsbG93LTUwMCBkYXJrOmJvcmRlci15ZWxsb3ctNDAwIGRhcms6YmcteWVsbG93LTEwMCBkYXJrOmZvY3VzOmJvcmRlci15ZWxsb3ctNTAwIGRhcms6Zm9jdXM6cmluZy15ZWxsb3ctNTAwXCIsXG4gICAgICAgIHN1Y2Nlc3M6IFwiYm9yZGVyLWdyZWVuLTUwMCBiZy1ncmVlbi01MCB0ZXh0LWdyZWVuLTkwMCBwbGFjZWhvbGRlci1ncmVlbi03MDAgZm9jdXM6Ym9yZGVyLWdyZWVuLTUwMCBmb2N1czpyaW5nLWdyZWVuLTUwMCBkYXJrOmJvcmRlci1ncmVlbi00MDAgZGFyazpiZy1ncmVlbi0xMDAgZGFyazpmb2N1czpib3JkZXItZ3JlZW4tNTAwIGRhcms6Zm9jdXM6cmluZy1ncmVlbi01MDBcIlxuICAgICAgfSxcbiAgICAgIHdpdGhSaWdodEljb246IHtcbiAgICAgICAgb246IFwicHItMTBcIixcbiAgICAgICAgb2ZmOiBcIlwiXG4gICAgICB9LFxuICAgICAgd2l0aEljb246IHtcbiAgICAgICAgb246IFwicGwtMTBcIixcbiAgICAgICAgb2ZmOiBcIlwiXG4gICAgICB9LFxuICAgICAgd2l0aEFkZG9uOiB7XG4gICAgICAgIG9uOiBcInJvdW5kZWQtci1sZ1wiLFxuICAgICAgICBvZmY6IFwicm91bmRlZC1sZ1wiXG4gICAgICB9LFxuICAgICAgd2l0aFNoYWRvdzoge1xuICAgICAgICBvbjogXCJzaGFkb3ctc20gZGFyazpzaGFkb3ctc20tbGlnaHRcIixcbiAgICAgICAgb2ZmOiBcIlwiXG4gICAgICB9XG4gICAgfVxuICB9XG59KTtcblxuZXhwb3J0IHsgdGV4dElucHV0VGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgdGltZWxpbmVUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgcm9vdDoge1xuICAgIGRpcmVjdGlvbjoge1xuICAgICAgaG9yaXpvbnRhbDogXCJzbTpmbGV4XCIsXG4gICAgICB2ZXJ0aWNhbDogXCJyZWxhdGl2ZSBib3JkZXItbCBib3JkZXItZ3JheS0yMDAgZGFyazpib3JkZXItZ3JheS03MDBcIlxuICAgIH1cbiAgfSxcbiAgaXRlbToge1xuICAgIHJvb3Q6IHtcbiAgICAgIGhvcml6b250YWw6IFwicmVsYXRpdmUgbWItNiBzbTptYi0wXCIsXG4gICAgICB2ZXJ0aWNhbDogXCJtYi0xMCBtbC02XCJcbiAgICB9LFxuICAgIGNvbnRlbnQ6IHtcbiAgICAgIHJvb3Q6IHtcbiAgICAgICAgYmFzZTogXCJcIixcbiAgICAgICAgaG9yaXpvbnRhbDogXCJtdC0zIHNtOnByLThcIixcbiAgICAgICAgdmVydGljYWw6IFwiXCJcbiAgICAgIH0sXG4gICAgICBib2R5OiB7XG4gICAgICAgIGJhc2U6IFwibWItNCB0ZXh0LWJhc2UgZm9udC1ub3JtYWwgdGV4dC1ncmF5LTUwMCBkYXJrOnRleHQtZ3JheS00MDBcIlxuICAgICAgfSxcbiAgICAgIHRpbWU6IHtcbiAgICAgICAgYmFzZTogXCJtYi0xIHRleHQtc20gZm9udC1ub3JtYWwgbGVhZGluZy1ub25lIHRleHQtZ3JheS00MDAgZGFyazp0ZXh0LWdyYXktNTAwXCJcbiAgICAgIH0sXG4gICAgICB0aXRsZToge1xuICAgICAgICBiYXNlOiBcInRleHQtbGcgZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktOTAwIGRhcms6dGV4dC13aGl0ZVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBwb2ludDoge1xuICAgICAgaG9yaXpvbnRhbDogXCJmbGV4IGl0ZW1zLWNlbnRlclwiLFxuICAgICAgbGluZTogXCJoaWRkZW4gaC0wLjUgdy1mdWxsIGJnLWdyYXktMjAwIGRhcms6YmctZ3JheS03MDAgc206ZmxleFwiLFxuICAgICAgbWFya2VyOiB7XG4gICAgICAgIGJhc2U6IHtcbiAgICAgICAgICBob3Jpem9udGFsOiBcImFic29sdXRlIC1sZWZ0LTEuNSBoLTMgdy0zIHJvdW5kZWQtZnVsbCBib3JkZXIgYm9yZGVyLXdoaXRlIGJnLWdyYXktMjAwIGRhcms6Ym9yZGVyLWdyYXktOTAwIGRhcms6YmctZ3JheS03MDBcIixcbiAgICAgICAgICB2ZXJ0aWNhbDogXCJhYnNvbHV0ZSAtbGVmdC0xLjUgbXQtMS41IGgtMyB3LTMgcm91bmRlZC1mdWxsIGJvcmRlciBib3JkZXItd2hpdGUgYmctZ3JheS0yMDAgZGFyazpib3JkZXItZ3JheS05MDAgZGFyazpiZy1ncmF5LTcwMFwiXG4gICAgICAgIH0sXG4gICAgICAgIGljb246IHtcbiAgICAgICAgICBiYXNlOiBcImgtMyB3LTMgdGV4dC1jeWFuLTYwMCBkYXJrOnRleHQtY3lhbi0zMDBcIixcbiAgICAgICAgICB3cmFwcGVyOiBcImFic29sdXRlIC1sZWZ0LTMgZmxleCBoLTYgdy02IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWZ1bGwgYmctY3lhbi0yMDAgcmluZy04IHJpbmctd2hpdGUgZGFyazpiZy1jeWFuLTkwMCBkYXJrOnJpbmctZ3JheS05MDBcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdmVydGljYWw6IFwiXCJcbiAgICB9XG4gIH1cbn0pO1xuXG5leHBvcnQgeyB0aW1lbGluZVRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IHRvYXN0VGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcImZsZXggdy1mdWxsIG1heC13LXhzIGl0ZW1zLWNlbnRlciByb3VuZGVkLWxnIGJnLXdoaXRlIHAtNCB0ZXh0LWdyYXktNTAwIHNoYWRvdyBkYXJrOmJnLWdyYXktODAwIGRhcms6dGV4dC1ncmF5LTQwMFwiLFxuICAgIGNsb3NlZDogXCJvcGFjaXR5LTAgZWFzZS1vdXRcIlxuICB9LFxuICB0b2dnbGU6IHtcbiAgICBiYXNlOiBcIi1tLTEuNSBtbC1hdXRvIGlubGluZS1mbGV4IGgtOCB3LTggcm91bmRlZC1sZyBiZy13aGl0ZSBwLTEuNSB0ZXh0LWdyYXktNDAwIGhvdmVyOmJnLWdyYXktMTAwIGhvdmVyOnRleHQtZ3JheS05MDAgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctZ3JheS0zMDAgZGFyazpiZy1ncmF5LTgwMCBkYXJrOnRleHQtZ3JheS01MDAgZGFyazpob3ZlcjpiZy1ncmF5LTcwMCBkYXJrOmhvdmVyOnRleHQtd2hpdGVcIixcbiAgICBpY29uOiBcImgtNSB3LTUgc2hyaW5rLTBcIlxuICB9XG59KTtcblxuZXhwb3J0IHsgdG9hc3RUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCB0b2dnbGVTd2l0Y2hUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgcm9vdDoge1xuICAgIGJhc2U6IFwiZ3JvdXAgZmxleCByb3VuZGVkLWxnIGZvY3VzOm91dGxpbmUtbm9uZVwiLFxuICAgIGFjdGl2ZToge1xuICAgICAgb246IFwiY3Vyc29yLXBvaW50ZXJcIixcbiAgICAgIG9mZjogXCJjdXJzb3Itbm90LWFsbG93ZWQgb3BhY2l0eS01MFwiXG4gICAgfSxcbiAgICBsYWJlbDogXCJtcy0zIG10LTAuNSB0ZXh0LXN0YXJ0IHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBkYXJrOnRleHQtZ3JheS0zMDBcIlxuICB9LFxuICB0b2dnbGU6IHtcbiAgICBiYXNlOiBcInJlbGF0aXZlIHJvdW5kZWQtZnVsbCBib3JkZXIgYWZ0ZXI6YWJzb2x1dGUgYWZ0ZXI6cm91bmRlZC1mdWxsIGFmdGVyOmJnLXdoaXRlIGFmdGVyOnRyYW5zaXRpb24tYWxsIGdyb3VwLWZvY3VzOnJpbmctNCBncm91cC1mb2N1czpyaW5nLWN5YW4tNTAwLzI1XCIsXG4gICAgY2hlY2tlZDoge1xuICAgICAgb246IFwiYWZ0ZXI6dHJhbnNsYXRlLXgtZnVsbCBhZnRlcjpib3JkZXItd2hpdGUgcnRsOmFmdGVyOi10cmFuc2xhdGUteC1mdWxsXCIsXG4gICAgICBvZmY6IFwiYm9yZGVyLWdyYXktMjAwIGJnLWdyYXktMjAwIGRhcms6Ym9yZGVyLWdyYXktNjAwIGRhcms6YmctZ3JheS03MDBcIixcbiAgICAgIGNvbG9yOiB7XG4gICAgICAgIGJsdWU6IFwiYm9yZGVyLWN5YW4tNzAwIGJnLWN5YW4tNzAwXCIsXG4gICAgICAgIGRhcms6IFwiYmctZGFyay03MDAgYm9yZGVyLWRhcmstOTAwXCIsXG4gICAgICAgIGZhaWx1cmU6IFwiYm9yZGVyLXJlZC05MDAgYmctcmVkLTcwMFwiLFxuICAgICAgICBncmF5OiBcImJvcmRlci1ncmF5LTYwMCBiZy1ncmF5LTUwMFwiLFxuICAgICAgICBncmVlbjogXCJib3JkZXItZ3JlZW4tNzAwIGJnLWdyZWVuLTYwMFwiLFxuICAgICAgICBsaWdodDogXCJiZy1saWdodC03MDAgYm9yZGVyLWxpZ2h0LTkwMFwiLFxuICAgICAgICByZWQ6IFwiYm9yZGVyLXJlZC05MDAgYmctcmVkLTcwMFwiLFxuICAgICAgICBwdXJwbGU6IFwiYm9yZGVyLXB1cnBsZS05MDAgYmctcHVycGxlLTcwMFwiLFxuICAgICAgICBzdWNjZXNzOiBcImJvcmRlci1ncmVlbi01MDAgYmctZ3JlZW4tNTAwXCIsXG4gICAgICAgIHllbGxvdzogXCJib3JkZXIteWVsbG93LTQwMCBiZy15ZWxsb3ctNDAwXCIsXG4gICAgICAgIHdhcm5pbmc6IFwiYm9yZGVyLXllbGxvdy02MDAgYmcteWVsbG93LTYwMFwiLFxuICAgICAgICBjeWFuOiBcImJvcmRlci1jeWFuLTUwMCBiZy1jeWFuLTUwMFwiLFxuICAgICAgICBsaW1lOiBcImJvcmRlci1saW1lLTQwMCBiZy1saW1lLTQwMFwiLFxuICAgICAgICBpbmRpZ286IFwiYm9yZGVyLWluZGlnby00MDAgYmctaW5kaWdvLTQwMFwiLFxuICAgICAgICB0ZWFsOiBcImJnLWdyYWRpZW50LXRvLXIgZnJvbS10ZWFsLTQwMCB2aWEtdGVhbC01MDAgdG8tdGVhbC02MDAgaG92ZXI6YmctZ3JhZGllbnQtdG8tYnIgZm9jdXM6cmluZy00XCIsXG4gICAgICAgIGluZm86IFwiYm9yZGVyLWN5YW4tNjAwIGJnLWN5YW4tNjAwXCIsXG4gICAgICAgIHBpbms6IFwiYm9yZGVyLXBpbmstNjAwIGJnLXBpbmstNjAwXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIHNpemVzOiB7XG4gICAgICBzbTogXCJoLTUgdy05IG1pbi13LTkgYWZ0ZXI6bGVmdC1weCBhZnRlcjp0b3AtcHggYWZ0ZXI6aC00IGFmdGVyOnctNCBydGw6YWZ0ZXI6cmlnaHQtcHhcIixcbiAgICAgIG1kOiBcImgtNiB3LTExIG1pbi13LTExIGFmdGVyOmxlZnQtcHggYWZ0ZXI6dG9wLXB4IGFmdGVyOmgtNSBhZnRlcjp3LTUgcnRsOmFmdGVyOnJpZ2h0LXB4XCIsXG4gICAgICBsZzogXCJoLTcgdy0xNCBtaW4tdy0xNCBhZnRlcjpsZWZ0LTEgYWZ0ZXI6dG9wLTAuNSBhZnRlcjpoLTYgYWZ0ZXI6dy02IHJ0bDphZnRlcjpyaWdodC0xXCJcbiAgICB9XG4gIH1cbn0pO1xuXG5leHBvcnQgeyB0b2dnbGVTd2l0Y2hUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCB0b29sdGlwVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHRhcmdldDogXCJ3LWZpdFwiLFxuICBhbmltYXRpb246IFwidHJhbnNpdGlvbi1vcGFjaXR5XCIsXG4gIGFycm93OiB7XG4gICAgYmFzZTogXCJhYnNvbHV0ZSB6LTEwIGgtMiB3LTIgcm90YXRlLTQ1XCIsXG4gICAgc3R5bGU6IHtcbiAgICAgIGRhcms6IFwiYmctZ3JheS05MDAgZGFyazpiZy1ncmF5LTcwMFwiLFxuICAgICAgbGlnaHQ6IFwiYmctd2hpdGVcIixcbiAgICAgIGF1dG86IFwiYmctd2hpdGUgZGFyazpiZy1ncmF5LTcwMFwiXG4gICAgfSxcbiAgICBwbGFjZW1lbnQ6IFwiLTRweFwiXG4gIH0sXG4gIGJhc2U6IFwiYWJzb2x1dGUgei0xMCBpbmxpbmUtYmxvY2sgcm91bmRlZC1sZyBweC0zIHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSBzaGFkb3ctc21cIixcbiAgaGlkZGVuOiBcImludmlzaWJsZSBvcGFjaXR5LTBcIixcbiAgc3R5bGU6IHtcbiAgICBkYXJrOiBcImJnLWdyYXktOTAwIHRleHQtd2hpdGUgZGFyazpiZy1ncmF5LTcwMFwiLFxuICAgIGxpZ2h0OiBcImJvcmRlciBib3JkZXItZ3JheS0yMDAgYmctd2hpdGUgdGV4dC1ncmF5LTkwMFwiLFxuICAgIGF1dG86IFwiYm9yZGVyIGJvcmRlci1ncmF5LTIwMCBiZy13aGl0ZSB0ZXh0LWdyYXktOTAwIGRhcms6Ym9yZGVyLW5vbmUgZGFyazpiZy1ncmF5LTcwMCBkYXJrOnRleHQtd2hpdGVcIlxuICB9LFxuICBjb250ZW50OiBcInJlbGF0aXZlIHotMjBcIlxufSk7XG5cbmV4cG9ydCB7IHRvb2x0aXBUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgYWNjb3JkaW9uVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvQWNjb3JkaW9uL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyBhbGVydFRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL0FsZXJ0L3RoZW1lLm1qcyc7XG5pbXBvcnQgeyBhdmF0YXJUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9BdmF0YXIvdGhlbWUubWpzJztcbmltcG9ydCB7IGJhZGdlVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvQmFkZ2UvdGhlbWUubWpzJztcbmltcG9ydCB7IGJsb2NrcXVvdGVUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9CbG9ja3F1b3RlL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyBicmVhZGNydW1iVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvQnJlYWRjcnVtYi90aGVtZS5tanMnO1xuaW1wb3J0IHsgYnV0dG9uVGhlbWUsIGJ1dHRvbkdyb3VwVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvQnV0dG9uL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyBjYXJkVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvQ2FyZC90aGVtZS5tanMnO1xuaW1wb3J0IHsgY2Fyb3VzZWxUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9DYXJvdXNlbC90aGVtZS5tanMnO1xuaW1wb3J0IHsgY2hlY2tib3hUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9DaGVja2JveC90aGVtZS5tanMnO1xuaW1wb3J0IHsgY2xpcGJvYXJkVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvQ2xpcGJvYXJkL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyBkYXJrVGhlbWVUb2dnbGVUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9EYXJrVGhlbWVUb2dnbGUvdGhlbWUubWpzJztcbmltcG9ydCB7IGRhdGVQaWNrZXJUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9EYXRlcGlja2VyL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyBkcmF3ZXJUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9EcmF3ZXIvdGhlbWUubWpzJztcbmltcG9ydCB7IGRyb3Bkb3duVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvRHJvcGRvd24vdGhlbWUubWpzJztcbmltcG9ydCB7IGZpbGVJbnB1dFRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL0ZpbGVJbnB1dC90aGVtZS5tanMnO1xuaW1wb3J0IHsgZmxvYXRpbmdMYWJlbFRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL0Zsb2F0aW5nTGFiZWwvdGhlbWUubWpzJztcbmltcG9ydCB7IGZvb3RlclRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL0Zvb3Rlci90aGVtZS5tanMnO1xuaW1wb3J0IHsgaGVscGVyVGV4dFRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL0hlbHBlclRleHQvdGhlbWUubWpzJztcbmltcG9ydCB7IGhyVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvSFIvdGhlbWUubWpzJztcbmltcG9ydCB7IGtiZFRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL0tiZC90aGVtZS5tanMnO1xuaW1wb3J0IHsgbGFiZWxUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9MYWJlbC90aGVtZS5tanMnO1xuaW1wb3J0IHsgbGlzdFRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL0xpc3QvdGhlbWUubWpzJztcbmltcG9ydCB7IGxpc3RHcm91cFRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL0xpc3RHcm91cC90aGVtZS5tanMnO1xuaW1wb3J0IHsgbWVnYU1lbnVUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9NZWdhTWVudS90aGVtZS5tanMnO1xuaW1wb3J0IHsgbW9kYWxUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9Nb2RhbC90aGVtZS5tanMnO1xuaW1wb3J0IHsgbmF2YmFyVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvTmF2YmFyL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyBwYWdpbmF0aW9uVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvUGFnaW5hdGlvbi90aGVtZS5tanMnO1xuaW1wb3J0IHsgcG9wb3ZlclRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL1BvcG92ZXIvdGhlbWUubWpzJztcbmltcG9ydCB7IHByb2dyZXNzVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvUHJvZ3Jlc3MvdGhlbWUubWpzJztcbmltcG9ydCB7IHJhZGlvVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvUmFkaW8vdGhlbWUubWpzJztcbmltcG9ydCB7IHJhbmdlU2xpZGVyVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvUmFuZ2VTbGlkZXIvdGhlbWUubWpzJztcbmltcG9ydCB7IHJhdGluZ1RoZW1lLCByYXRpbmdBZHZhbmNlZFRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL1JhdGluZy90aGVtZS5tanMnO1xuaW1wb3J0IHsgc2VsZWN0VGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvU2VsZWN0L3RoZW1lLm1qcyc7XG5pbXBvcnQgeyBzaWRlYmFyVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvU2lkZWJhci90aGVtZS5tanMnO1xuaW1wb3J0IHsgc3Bpbm5lclRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL1NwaW5uZXIvdGhlbWUubWpzJztcbmltcG9ydCB7IHRhYmxlVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvVGFibGUvdGhlbWUubWpzJztcbmltcG9ydCB7IHRhYlRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL1RhYnMvdGhlbWUubWpzJztcbmltcG9ydCB7IHRleHRhcmVhVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvVGV4dGFyZWEvdGhlbWUubWpzJztcbmltcG9ydCB7IHRleHRJbnB1dFRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL1RleHRJbnB1dC90aGVtZS5tanMnO1xuaW1wb3J0IHsgdGltZWxpbmVUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9UaW1lbGluZS90aGVtZS5tanMnO1xuaW1wb3J0IHsgdG9hc3RUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9Ub2FzdC90aGVtZS5tanMnO1xuaW1wb3J0IHsgdG9nZ2xlU3dpdGNoVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvVG9nZ2xlU3dpdGNoL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyB0b29sdGlwVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvVG9vbHRpcC90aGVtZS5tanMnO1xuXG5jb25zdCB0aGVtZSA9IHtcbiAgYWNjb3JkaW9uOiBhY2NvcmRpb25UaGVtZSxcbiAgYWxlcnQ6IGFsZXJ0VGhlbWUsXG4gIGF2YXRhcjogYXZhdGFyVGhlbWUsXG4gIGJhZGdlOiBiYWRnZVRoZW1lLFxuICBibG9ja3F1b3RlOiBibG9ja3F1b3RlVGhlbWUsXG4gIGJyZWFkY3J1bWI6IGJyZWFkY3J1bWJUaGVtZSxcbiAgYnV0dG9uOiBidXR0b25UaGVtZSxcbiAgYnV0dG9uR3JvdXA6IGJ1dHRvbkdyb3VwVGhlbWUsXG4gIGNhcmQ6IGNhcmRUaGVtZSxcbiAgY2Fyb3VzZWw6IGNhcm91c2VsVGhlbWUsXG4gIGNoZWNrYm94OiBjaGVja2JveFRoZW1lLFxuICBjbGlwYm9hcmQ6IGNsaXBib2FyZFRoZW1lLFxuICBkYXRlcGlja2VyOiBkYXRlUGlja2VyVGhlbWUsXG4gIGRhcmtUaGVtZVRvZ2dsZTogZGFya1RoZW1lVG9nZ2xlVGhlbWUsXG4gIGRyYXdlcjogZHJhd2VyVGhlbWUsXG4gIGRyb3Bkb3duOiBkcm9wZG93blRoZW1lLFxuICBmaWxlSW5wdXQ6IGZpbGVJbnB1dFRoZW1lLFxuICBmbG9hdGluZ0xhYmVsOiBmbG9hdGluZ0xhYmVsVGhlbWUsXG4gIGZvb3RlcjogZm9vdGVyVGhlbWUsXG4gIGhlbHBlclRleHQ6IGhlbHBlclRleHRUaGVtZSxcbiAgaHI6IGhyVGhlbWUsXG4gIGtiZDoga2JkVGhlbWUsXG4gIGxhYmVsOiBsYWJlbFRoZW1lLFxuICBsaXN0R3JvdXA6IGxpc3RHcm91cFRoZW1lLFxuICBsaXN0OiBsaXN0VGhlbWUsXG4gIG1lZ2FNZW51OiBtZWdhTWVudVRoZW1lLFxuICBtb2RhbDogbW9kYWxUaGVtZSxcbiAgbmF2YmFyOiBuYXZiYXJUaGVtZSxcbiAgcGFnaW5hdGlvbjogcGFnaW5hdGlvblRoZW1lLFxuICBwb3BvdmVyOiBwb3BvdmVyVGhlbWUsXG4gIHByb2dyZXNzOiBwcm9ncmVzc1RoZW1lLFxuICByYWRpbzogcmFkaW9UaGVtZSxcbiAgcmFuZ2VTbGlkZXI6IHJhbmdlU2xpZGVyVGhlbWUsXG4gIHJhdGluZzogcmF0aW5nVGhlbWUsXG4gIHJhdGluZ0FkdmFuY2VkOiByYXRpbmdBZHZhbmNlZFRoZW1lLFxuICBzZWxlY3Q6IHNlbGVjdFRoZW1lLFxuICB0ZXh0SW5wdXQ6IHRleHRJbnB1dFRoZW1lLFxuICB0ZXh0YXJlYTogdGV4dGFyZWFUaGVtZSxcbiAgdG9nZ2xlU3dpdGNoOiB0b2dnbGVTd2l0Y2hUaGVtZSxcbiAgc2lkZWJhcjogc2lkZWJhclRoZW1lLFxuICBzcGlubmVyOiBzcGlubmVyVGhlbWUsXG4gIHRhYmxlOiB0YWJsZVRoZW1lLFxuICB0YWJzOiB0YWJUaGVtZSxcbiAgdGltZWxpbmU6IHRpbWVsaW5lVGhlbWUsXG4gIHRvYXN0OiB0b2FzdFRoZW1lLFxuICB0b29sdGlwOiB0b29sdGlwVGhlbWVcbn07XG5cbmV4cG9ydCB7IHRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICcuLi9oZWxwZXJzL2Nsb25lLWRlZXAubWpzJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdGhlbWUgfSBmcm9tICcuLi90aGVtZS5tanMnO1xuXG5jb25zdCBzdG9yZSA9IHtcbiAgdGhlbWU6IGNsb25lRGVlcCh0aGVtZSlcbn07XG5mdW5jdGlvbiBzZXRUaGVtZU1vZGUobW9kZSkge1xuICBzdG9yZS5tb2RlID0gbW9kZTtcbn1cbmZ1bmN0aW9uIGdldFRoZW1lTW9kZSgpIHtcbiAgcmV0dXJuIHN0b3JlLm1vZGU7XG59XG5mdW5jdGlvbiBzZXRUaGVtZSh0aGVtZSQxKSB7XG4gIGlmICh0aGVtZSQxKSBzdG9yZS50aGVtZSA9IG1lcmdlRGVlcCh0aGVtZSwgdGhlbWUkMSk7XG59XG5mdW5jdGlvbiBnZXRUaGVtZSgpIHtcbiAgcmV0dXJuIGNsb25lRGVlcChzdG9yZS50aGVtZSk7XG59XG5cbmV4cG9ydCB7IGdldFRoZW1lLCBnZXRUaGVtZU1vZGUsIHNldFRoZW1lLCBzZXRUaGVtZU1vZGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IEFjY29yZGlvblBhbmVsQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQodm9pZCAwKTtcbmZ1bmN0aW9uIHVzZUFjY29yZGlvbkNvbnRleHQoKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEFjY29yZGlvblBhbmVsQ29udGV4dCk7XG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcInVzZUFjY29yZGlvbkNvbnRleHQgc2hvdWxkIGJlIHVzZWQgd2l0aGluIHRoZSBBY2NvcmRpb25QYW5lbENvbnRleHQgcHJvdmlkZXIhXCIpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufVxuXG5leHBvcnQgeyBBY2NvcmRpb25QYW5lbENvbnRleHQsIHVzZUFjY29yZGlvbkNvbnRleHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUFjY29yZGlvblBhbmVsQ29udGV4dC5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyB1c2VBY2NvcmRpb25Db250ZXh0IH0gZnJvbSAnLi9BY2NvcmRpb25QYW5lbENvbnRleHQubWpzJztcblxuY29uc3QgQWNjb3JkaW9uQ29udGVudCA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB7IGlzT3BlbiB9ID0gdXNlQWNjb3JkaW9uQ29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmFjY29yZGlvbi5jb250ZW50LCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIFwiZGl2XCIsXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksXG4gICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtYWNjb3JkaW9uLWNvbnRlbnRcIixcbiAgICAgIGhpZGRlbjogIWlzT3BlbixcbiAgICAgIC4uLnByb3BzLFxuICAgICAgY2hpbGRyZW5cbiAgICB9XG4gICk7XG59O1xuXG5leHBvcnQgeyBBY2NvcmRpb25Db250ZW50IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BY2NvcmRpb25Db250ZW50Lm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQWNjb3JkaW9uUGFuZWxDb250ZXh0IH0gZnJvbSAnLi9BY2NvcmRpb25QYW5lbENvbnRleHQubWpzJztcblxuY29uc3QgQWNjb3JkaW9uUGFuZWwgPSAoeyBjaGlsZHJlbiwgLi4ucHJvcHMgfSkgPT4ge1xuICBjb25zdCB7IGFsd2F5c09wZW4gfSA9IHByb3BzO1xuICBjb25zdCBbaXNPcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKHByb3BzLmlzT3Blbik7XG4gIGNvbnN0IHByb3ZpZGVyID0gYWx3YXlzT3BlbiA/IHtcbiAgICAuLi5wcm9wcyxcbiAgICBpc09wZW4sXG4gICAgc2V0T3BlbjogKCkgPT4gc2V0T3BlbighaXNPcGVuKVxuICB9IDogcHJvcHM7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KEFjY29yZGlvblBhbmVsQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogcHJvdmlkZXIsIGNoaWxkcmVuIH0pO1xufTtcblxuZXhwb3J0IHsgQWNjb3JkaW9uUGFuZWwgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUFjY29yZGlvblBhbmVsLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeHMsIGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcbmltcG9ydCB7IHVzZUFjY29yZGlvbkNvbnRleHQgfSBmcm9tICcuL0FjY29yZGlvblBhbmVsQ29udGV4dC5tanMnO1xuXG5jb25zdCBBY2NvcmRpb25UaXRsZSA9ICh7XG4gIGFzOiBIZWFkaW5nID0gXCJoMlwiLFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgeyBhcnJvd0ljb246IEFycm93SWNvbiwgZmx1c2gsIGlzT3Blbiwgc2V0T3BlbiB9ID0gdXNlQWNjb3JkaW9uQ29udGV4dCgpO1xuICBjb25zdCBvbkNsaWNrID0gKCkgPT4gdHlwZW9mIHNldE9wZW4gIT09IFwidW5kZWZpbmVkXCIgJiYgc2V0T3BlbigpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmFjY29yZGlvbi50aXRsZSwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoXG4gICAgXCJidXR0b25cIixcbiAgICB7XG4gICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgdGhlbWUuZmx1c2hbZmx1c2ggPyBcIm9uXCIgOiBcIm9mZlwiXSwgdGhlbWUub3Blbltpc09wZW4gPyBcIm9uXCIgOiBcIm9mZlwiXSwgY2xhc3NOYW1lKSxcbiAgICAgIG9uQ2xpY2ssXG4gICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBjaGlsZHJlbjogW1xuICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4KEhlYWRpbmcsIHsgY2xhc3NOYW1lOiB0aGVtZS5oZWFkaW5nLCBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtYWNjb3JkaW9uLWhlYWRpbmdcIiwgY2hpbGRyZW4gfSksXG4gICAgICAgIEFycm93SWNvbiAmJiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgIEFycm93SWNvbixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcImFyaWEtaGlkZGVuXCI6IHRydWUsXG4gICAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYXJyb3cuYmFzZSwgdGhlbWUuYXJyb3cub3Blbltpc09wZW4gPyBcIm9uXCIgOiBcIm9mZlwiXSksXG4gICAgICAgICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtYWNjb3JkaW9uLWFycm93XCJcbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgIF1cbiAgICB9XG4gICk7XG59O1xuXG5leHBvcnQgeyBBY2NvcmRpb25UaXRsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QWNjb3JkaW9uVGl0bGUubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZU1lbW8sIENoaWxkcmVuLCBjbG9uZUVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBIaUNoZXZyb25Eb3duIH0gZnJvbSAncmVhY3QtaWNvbnMvaGknO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgQWNjb3JkaW9uQ29udGVudCB9IGZyb20gJy4vQWNjb3JkaW9uQ29udGVudC5tanMnO1xuaW1wb3J0IHsgQWNjb3JkaW9uUGFuZWwgfSBmcm9tICcuL0FjY29yZGlvblBhbmVsLm1qcyc7XG5pbXBvcnQgeyBBY2NvcmRpb25UaXRsZSB9IGZyb20gJy4vQWNjb3JkaW9uVGl0bGUubWpzJztcblxuY29uc3QgQWNjb3JkaW9uQ29tcG9uZW50ID0gKHtcbiAgYWx3YXlzT3BlbiA9IGZhbHNlLFxuICBhcnJvd0ljb24gPSBIaUNoZXZyb25Eb3duLFxuICBjaGlsZHJlbixcbiAgZmx1c2ggPSBmYWxzZSxcbiAgY29sbGFwc2VBbGwgPSBmYWxzZSxcbiAgY2xhc3NOYW1lLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgW2lzT3Blbiwgc2V0T3Blbl0gPSB1c2VTdGF0ZShjb2xsYXBzZUFsbCA/IC0xIDogMCk7XG4gIGNvbnN0IHBhbmVscyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gQ2hpbGRyZW4ubWFwKFxuICAgICAgY2hpbGRyZW4sXG4gICAgICAoY2hpbGQsIGkpID0+IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICBhbHdheXNPcGVuLFxuICAgICAgICBhcnJvd0ljb24sXG4gICAgICAgIGZsdXNoLFxuICAgICAgICBpc09wZW46IGlzT3BlbiA9PT0gaSxcbiAgICAgICAgc2V0T3BlbjogKCkgPT4gc2V0T3Blbihpc09wZW4gPT09IGkgPyAtMSA6IGkpXG4gICAgICB9KVxuICAgICksXG4gICAgW2Fsd2F5c09wZW4sIGFycm93SWNvbiwgY2hpbGRyZW4sIGZsdXNoLCBpc09wZW5dXG4gICk7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuYWNjb3JkaW9uLnJvb3QsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgXCJkaXZcIixcbiAgICB7XG4gICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgdGhlbWUuZmx1c2hbZmx1c2ggPyBcIm9uXCIgOiBcIm9mZlwiXSwgY2xhc3NOYW1lKSxcbiAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1hY2NvcmRpb25cIixcbiAgICAgIC4uLnByb3BzLFxuICAgICAgY2hpbGRyZW46IHBhbmVsc1xuICAgIH1cbiAgKTtcbn07XG5BY2NvcmRpb25Db21wb25lbnQuZGlzcGxheU5hbWUgPSBcIkFjY29yZGlvblwiO1xuQWNjb3JkaW9uUGFuZWwuZGlzcGxheU5hbWUgPSBcIkFjY29yZGlvbi5QYW5lbFwiO1xuQWNjb3JkaW9uVGl0bGUuZGlzcGxheU5hbWUgPSBcIkFjY29yZGlvbi5UaXRsZVwiO1xuQWNjb3JkaW9uQ29udGVudC5kaXNwbGF5TmFtZSA9IFwiQWNjb3JkaW9uLkNvbnRlbnRcIjtcbmNvbnN0IEFjY29yZGlvbiA9IE9iamVjdC5hc3NpZ24oQWNjb3JkaW9uQ29tcG9uZW50LCB7XG4gIFBhbmVsOiBBY2NvcmRpb25QYW5lbCxcbiAgVGl0bGU6IEFjY29yZGlvblRpdGxlLFxuICBDb250ZW50OiBBY2NvcmRpb25Db250ZW50XG59KTtcblxuZXhwb3J0IHsgQWNjb3JkaW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BY2NvcmRpb24ubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBBdmF0YXJHcm91cCA9ICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuYXZhdGFyLmdyb3VwLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgXCJkYXRhLXRlc3RpZFwiOiBcImF2YXRhci1ncm91cC1lbGVtZW50XCIsIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgY2hpbGRyZW4gfSk7XG59O1xuQXZhdGFyR3JvdXAuZGlzcGxheU5hbWUgPSBcIkF2YXRhci5Hcm91cFwiO1xuXG5leHBvcnQgeyBBdmF0YXJHcm91cCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QXZhdGFyR3JvdXAubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4cyB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcblxuY29uc3QgQXZhdGFyR3JvdXBDb3VudGVyID0gKHtcbiAgY2xhc3NOYW1lLFxuICBocmVmLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgdG90YWwsXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuYXZhdGFyLmdyb3VwQ291bnRlciwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoXCJhXCIsIHsgaHJlZiwgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksIC4uLnByb3BzLCBjaGlsZHJlbjogW1xuICAgIFwiK1wiLFxuICAgIHRvdGFsXG4gIF0gfSk7XG59O1xuQXZhdGFyR3JvdXBDb3VudGVyLmRpc3BsYXlOYW1lID0gXCJBdmF0YXIuR3JvdXBDb3VudGVyXCI7XG5cbmV4cG9ydCB7IEF2YXRhckdyb3VwQ291bnRlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QXZhdGFyR3JvdXBDb3VudGVyLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeHMsIGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcbmltcG9ydCB7IEF2YXRhckdyb3VwIH0gZnJvbSAnLi9BdmF0YXJHcm91cC5tanMnO1xuaW1wb3J0IHsgQXZhdGFyR3JvdXBDb3VudGVyIH0gZnJvbSAnLi9BdmF0YXJHcm91cENvdW50ZXIubWpzJztcblxuY29uc3QgQXZhdGFyQ29tcG9uZW50ID0gKHtcbiAgYWx0ID0gXCJcIixcbiAgYm9yZGVyZWQgPSBmYWxzZSxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgY29sb3IgPSBcImxpZ2h0XCIsXG4gIGltZyxcbiAgcGxhY2Vob2xkZXJJbml0aWFscyA9IFwiXCIsXG4gIHJvdW5kZWQgPSBmYWxzZSxcbiAgc2l6ZSA9IFwibWRcIixcbiAgc3RhY2tlZCA9IGZhbHNlLFxuICBzdGF0dXMsXG4gIHN0YXR1c1Bvc2l0aW9uID0gXCJ0b3AtbGVmdFwiLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5hdmF0YXIsIGN1c3RvbVRoZW1lKTtcbiAgY29uc3QgaW1nQ2xhc3NOYW1lID0gdHdNZXJnZShcbiAgICB0aGVtZS5yb290LmltZy5iYXNlLFxuICAgIGJvcmRlcmVkICYmIHRoZW1lLnJvb3QuYm9yZGVyZWQsXG4gICAgYm9yZGVyZWQgJiYgdGhlbWUucm9vdC5jb2xvcltjb2xvcl0sXG4gICAgcm91bmRlZCAmJiB0aGVtZS5yb290LnJvdW5kZWQsXG4gICAgc3RhY2tlZCAmJiB0aGVtZS5yb290LnN0YWNrZWQsXG4gICAgdGhlbWUucm9vdC5pbWcub24sXG4gICAgdGhlbWUucm9vdC5zaXplW3NpemVdXG4gICk7XG4gIGNvbnN0IGltZ1Byb3BzID0ge1xuICAgIGNsYXNzTmFtZTogdHdNZXJnZShpbWdDbGFzc05hbWUsIHRoZW1lLnJvb3QuaW1nLm9uKSxcbiAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtYXZhdGFyLWltZ1wiXG4gIH07XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5yb290LmJhc2UsIGNsYXNzTmFtZSksIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1hdmF0YXJcIiwgLi4ucHJvcHMsIGNoaWxkcmVuOiBbXG4gICAgLyogQF9fUFVSRV9fICovIGpzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwicmVsYXRpdmVcIiwgY2hpbGRyZW46IFtcbiAgICAgIGltZyA/IHR5cGVvZiBpbWcgPT09IFwic3RyaW5nXCIgPyAvKiBAX19QVVJFX18gKi8ganN4KFwiaW1nXCIsIHsgYWx0LCBzcmM6IGltZywgLi4uaW1nUHJvcHMgfSkgOiBpbWcoeyBhbHQsIC4uLmltZ1Byb3BzIH0pIDogcGxhY2Vob2xkZXJJbml0aWFscyA/IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHtcbiAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgICAgICB0aGVtZS5yb290LmltZy5vZmYsXG4gICAgICAgICAgICB0aGVtZS5yb290LmluaXRpYWxzLmJhc2UsXG4gICAgICAgICAgICBzdGFja2VkICYmIHRoZW1lLnJvb3Quc3RhY2tlZCxcbiAgICAgICAgICAgIGJvcmRlcmVkICYmIHRoZW1lLnJvb3QuYm9yZGVyZWQsXG4gICAgICAgICAgICBib3JkZXJlZCAmJiB0aGVtZS5yb290LmNvbG9yW2NvbG9yXSxcbiAgICAgICAgICAgIHRoZW1lLnJvb3Quc2l6ZVtzaXplXSxcbiAgICAgICAgICAgIHJvdW5kZWQgJiYgdGhlbWUucm9vdC5yb3VuZGVkXG4gICAgICAgICAgKSxcbiAgICAgICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtYXZhdGFyLWluaXRpYWxzLXBsYWNlaG9sZGVyXCIsXG4gICAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLnJvb3QuaW5pdGlhbHMudGV4dCksIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1hdmF0YXItaW5pdGlhbHMtcGxhY2Vob2xkZXItdGV4dFwiLCBjaGlsZHJlbjogcGxhY2Vob2xkZXJJbml0aWFscyB9KVxuICAgICAgICB9XG4gICAgICApIDogLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZShpbWdDbGFzc05hbWUsIHRoZW1lLnJvb3QuaW1nLm9mZiksIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1hdmF0YXItaW1nXCIsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICBcInN2Z1wiLFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiB0aGVtZS5yb290LmltZy5wbGFjZWhvbGRlcixcbiAgICAgICAgICBmaWxsOiBcImN1cnJlbnRDb2xvclwiLFxuICAgICAgICAgIHZpZXdCb3g6IFwiMCAwIDIwIDIwXCIsXG4gICAgICAgICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICAgICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcInBhdGhcIiwgeyBmaWxsUnVsZTogXCJldmVub2RkXCIsIGQ6IFwiTTEwIDlhMyAzIDAgMTAwLTYgMyAzIDAgMDAwIDZ6bS03IDlhNyA3IDAgMTExNCAwSDN6XCIsIGNsaXBSdWxlOiBcImV2ZW5vZGRcIiB9KVxuICAgICAgICB9XG4gICAgICApIH0pLFxuICAgICAgc3RhdHVzICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgIFwic3BhblwiLFxuICAgICAgICB7XG4gICAgICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLWF2YXRhci1zdGF0dXNcIixcbiAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgICAgICB0aGVtZS5yb290LnN0YXR1cy5iYXNlLFxuICAgICAgICAgICAgdGhlbWUucm9vdC5zdGF0dXNbc3RhdHVzXSxcbiAgICAgICAgICAgIHRoZW1lLnJvb3Quc3RhdHVzUG9zaXRpb25bc3RhdHVzUG9zaXRpb25dXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICApXG4gICAgXSB9KSxcbiAgICBjaGlsZHJlbiAmJiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2hpbGRyZW4gfSlcbiAgXSB9KTtcbn07XG5BdmF0YXJDb21wb25lbnQuZGlzcGxheU5hbWUgPSBcIkF2YXRhclwiO1xuY29uc3QgQXZhdGFyID0gT2JqZWN0LmFzc2lnbihBdmF0YXJDb21wb25lbnQsIHtcbiAgR3JvdXA6IEF2YXRhckdyb3VwLFxuICBDb3VudGVyOiBBdmF0YXJHcm91cENvdW50ZXJcbn0pO1xuXG5leHBvcnQgeyBBdmF0YXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUF2YXRhci5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3gsIGpzeHMgfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5cbmNvbnN0IEJhZGdlID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNvbG9yID0gXCJpbmZvXCIsXG4gIGhyZWYsXG4gIGljb246IEljb24sXG4gIHNpemUgPSBcInhzXCIsXG4gIGNsYXNzTmFtZSxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuYmFkZ2UsIGN1c3RvbVRoZW1lKTtcbiAgY29uc3QgQ29udGVudCA9ICgpID0+IC8qIEBfX1BVUkVfXyAqLyBqc3hzKFxuICAgIFwic3BhblwiLFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogdHdNZXJnZShcbiAgICAgICAgdGhlbWUucm9vdC5iYXNlLFxuICAgICAgICB0aGVtZS5yb290LmNvbG9yW2NvbG9yXSxcbiAgICAgICAgdGhlbWUucm9vdC5zaXplW3NpemVdLFxuICAgICAgICB0aGVtZS5pY29uW0ljb24gPyBcIm9uXCIgOiBcIm9mZlwiXSxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApLFxuICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLWJhZGdlXCIsXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgIEljb24gJiYgLyogQF9fUFVSRV9fICovIGpzeChJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgY2xhc3NOYW1lOiB0aGVtZS5pY29uLnNpemVbc2l6ZV0sIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1iYWRnZS1pY29uXCIgfSksXG4gICAgICAgIGNoaWxkcmVuICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJzcGFuXCIsIHsgY2hpbGRyZW4gfSlcbiAgICAgIF1cbiAgICB9XG4gICk7XG4gIHJldHVybiBocmVmID8gLyogQF9fUFVSRV9fICovIGpzeChcImFcIiwgeyBjbGFzc05hbWU6IHRoZW1lLnJvb3QuaHJlZiwgaHJlZiwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goQ29udGVudCwge30pIH0pIDogLyogQF9fUFVSRV9fICovIGpzeChDb250ZW50LCB7fSk7XG59O1xuQmFkZ2UuZGlzcGxheU5hbWUgPSBcIkJhZGdlXCI7XG5cbmV4cG9ydCB7IEJhZGdlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1CYWRnZS5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3gsIGpzeHMgfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5cbmNvbnN0IFNwaW5uZXIgPSAoe1xuICBjbGFzc05hbWUsXG4gIGNvbG9yID0gXCJpbmZvXCIsXG4gIGxpZ2h0LFxuICBzaXplID0gXCJtZFwiLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5zcGlubmVyLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwic3BhblwiLCB7IHJvbGU6IFwic3RhdHVzXCIsIC4uLnByb3BzLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoXG4gICAgXCJzdmdcIixcbiAgICB7XG4gICAgICBmaWxsOiBcIm5vbmVcIixcbiAgICAgIHZpZXdCb3g6IFwiMCAwIDEwMCAxMDFcIixcbiAgICAgIGNsYXNzTmFtZTogdHdNZXJnZShcbiAgICAgICAgdGhlbWUuYmFzZSxcbiAgICAgICAgdGhlbWUuY29sb3JbY29sb3JdLFxuICAgICAgICB0aGVtZS5saWdodFtsaWdodCA/IFwib25cIiA6IFwib2ZmXCJdLmJhc2UsXG4gICAgICAgIHRoZW1lLmxpZ2h0W2xpZ2h0ID8gXCJvblwiIDogXCJvZmZcIl0uY29sb3JbY29sb3JdLFxuICAgICAgICB0aGVtZS5zaXplW3NpemVdLFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICksXG4gICAgICBjaGlsZHJlbjogW1xuICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgIFwicGF0aFwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGQ6IFwiTTEwMCA1MC41OTA4QzEwMCA3OC4yMDUxIDc3LjYxNDIgMTAwLjU5MSA1MCAxMDAuNTkxQzIyLjM4NTggMTAwLjU5MSAwIDc4LjIwNTEgMCA1MC41OTA4QzAgMjIuOTc2NiAyMi4zODU4IDAuNTkwODIgNTAgMC41OTA4MkM3Ny42MTQyIDAuNTkwODIgMTAwIDIyLjk3NjYgMTAwIDUwLjU5MDhaTTkuMDgxNDQgNTAuNTkwOEM5LjA4MTQ0IDczLjE4OTUgMjcuNDAxMyA5MS41MDk0IDUwIDkxLjUwOTRDNzIuNTk4NyA5MS41MDk0IDkwLjkxODYgNzMuMTg5NSA5MC45MTg2IDUwLjU5MDhDOTAuOTE4NiAyNy45OTIxIDcyLjU5ODcgOS42NzIyNiA1MCA5LjY3MjI2QzI3LjQwMTMgOS42NzIyNiA5LjA4MTQ0IDI3Ljk5MjEgOS4wODE0NCA1MC41OTA4WlwiLFxuICAgICAgICAgICAgZmlsbDogXCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgIH1cbiAgICAgICAgKSxcbiAgICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICBcInBhdGhcIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkOiBcIk05My45Njc2IDM5LjA0MDlDOTYuMzkzIDM4LjQwMzggOTcuODYyNCAzNS45MTE2IDk3LjAwNzkgMzMuNTUzOUM5NS4yOTMyIDI4LjgyMjcgOTIuODcxIDI0LjM2OTIgODkuODE2NyAyMC4zNDhDODUuODQ1MiAxNS4xMTkyIDgwLjg4MjYgMTAuNzIzOCA3NS4yMTI0IDcuNDEyODlDNjkuNTQyMiA0LjEwMTk0IDYzLjI3NTQgMS45NDAyNSA1Ni43Njk4IDEuMDUxMjRDNTEuNzY2NiAwLjM2NzU0MSA0Ni42OTc2IDAuNDQ2ODQzIDQxLjczNDUgMS4yNzg3M0MzOS4yNjEzIDEuNjkzMjggMzcuODEzIDQuMTk3NzggMzguNDUwMSA2LjYyMzI2QzM5LjA4NzMgOS4wNDg3NCA0MS41Njk0IDEwLjQ3MTcgNDQuMDUwNSAxMC4xMDcxQzQ3Ljg1MTEgOS41NDg1NSA1MS43MTkxIDkuNTI2ODkgNTUuNTQwMiAxMC4wNDkxQzYwLjg2NDIgMTAuNzc2NiA2NS45OTI4IDEyLjU0NTcgNzAuNjMzMSAxNS4yNTUyQzc1LjI3MzUgMTcuOTY0OCA3OS4zMzQ3IDIxLjU2MTkgODIuNTg0OSAyNS44NDFDODQuOTE3NSAyOC45MTIxIDg2Ljc5OTcgMzIuMjkxMyA4OC4xODExIDM1Ljg3NThDODkuMDgzIDM4LjIxNTggOTEuNTQyMSAzOS42NzgxIDkzLjk2NzYgMzkuMDQwOVpcIixcbiAgICAgICAgICAgIGZpbGw6IFwiY3VycmVudEZpbGxcIlxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgXVxuICAgIH1cbiAgKSB9KTtcbn07XG5TcGlubmVyLmRpc3BsYXlOYW1lID0gXCJTcGlubmVyXCI7XG5cbmV4cG9ydCB7IFNwaW5uZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNwaW5uZXIubWpzLm1hcFxuIiwiaW1wb3J0IHsgZm9yd2FyZFJlZiwgY3JlYXRlRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgQnV0dG9uQmFzZSA9IGZvcndhcmRSZWYoXG4gICh7IGNoaWxkcmVuLCBhczogQ29tcG9uZW50LCBocmVmLCB0eXBlID0gXCJidXR0b25cIiwgLi4ucHJvcHMgfSwgcmVmKSA9PiB7XG4gICAgY29uc3QgQmFzZUNvbXBvbmVudCA9IENvbXBvbmVudCB8fCAoaHJlZiA/IFwiYVwiIDogXCJidXR0b25cIik7XG4gICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoQmFzZUNvbXBvbmVudCwgeyByZWYsIGhyZWYsIHR5cGUsIC4uLnByb3BzIH0sIGNoaWxkcmVuKTtcbiAgfVxuKTtcbkJ1dHRvbkJhc2UuZGlzcGxheU5hbWUgPSBcIkJ1dHRvbkJhc2VDb21wb25lbnRcIjtcblxuZXhwb3J0IHsgQnV0dG9uQmFzZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QnV0dG9uQmFzZS5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB1c2VNZW1vLCBDaGlsZHJlbiwgaXNWYWxpZEVsZW1lbnQsIGNsb25lRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4vQnV0dG9uLm1qcyc7XG5cbmNvbnN0IHByb2Nlc3NDaGlsZHJlbiA9IChjaGlsZHJlbiwgb3V0bGluZSwgcGlsbCkgPT4ge1xuICByZXR1cm4gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCAoY2hpbGQsIGluZGV4KSA9PiB7XG4gICAgaWYgKGlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgY29uc3QgcG9zaXRpb25Jbkdyb3VwUHJvcCA9IGNoaWxkLnR5cGUgPT0gQnV0dG9uID8geyBwb3NpdGlvbkluR3JvdXA6IGRldGVybWluZVBvc2l0aW9uKGluZGV4LCBDaGlsZHJlbi5jb3VudChjaGlsZHJlbikpIH0gOiB7fTtcbiAgICAgIGlmIChjaGlsZC5wcm9wcy5jaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgLi4uY2hpbGQucHJvcHMsXG4gICAgICAgICAgY2hpbGRyZW46IHByb2Nlc3NDaGlsZHJlbihjaGlsZC5wcm9wcy5jaGlsZHJlbiwgb3V0bGluZSwgcGlsbCksXG4gICAgICAgICAgLi4ucG9zaXRpb25Jbkdyb3VwUHJvcFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICBvdXRsaW5lLFxuICAgICAgICAgIHBpbGwsXG4gICAgICAgICAgLi4ucG9zaXRpb25Jbkdyb3VwUHJvcFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNoaWxkO1xuICB9KTtcbn07XG5jb25zdCBkZXRlcm1pbmVQb3NpdGlvbiA9IChpbmRleCwgdG90YWxDaGlsZHJlbikgPT4ge1xuICByZXR1cm4gaW5kZXggPT09IDAgPyBcInN0YXJ0XCIgOiBpbmRleCA9PT0gdG90YWxDaGlsZHJlbiAtIDEgPyBcImVuZFwiIDogXCJtaWRkbGVcIjtcbn07XG5jb25zdCBCdXR0b25Hcm91cCA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIG91dGxpbmUsXG4gIHBpbGwsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCBpdGVtcyA9IHVzZU1lbW8oKCkgPT4gcHJvY2Vzc0NoaWxkcmVuKGNoaWxkcmVuLCBvdXRsaW5lLCBwaWxsKSwgW2NoaWxkcmVuLCBvdXRsaW5lLCBwaWxsXSk7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuYnV0dG9uR3JvdXAsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSwgcm9sZTogXCJncm91cFwiLCAuLi5wcm9wcywgY2hpbGRyZW46IGl0ZW1zIH0pO1xufTtcbkJ1dHRvbkdyb3VwLmRpc3BsYXlOYW1lID0gXCJCdXR0b24uR3JvdXBcIjtcblxuZXhwb3J0IHsgQnV0dG9uR3JvdXAgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUJ1dHRvbkdyb3VwLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeCwganN4cywgRnJhZ21lbnQgfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJy4uL1NwaW5uZXIvU3Bpbm5lci5tanMnO1xuaW1wb3J0IHsgQnV0dG9uQmFzZSB9IGZyb20gJy4vQnV0dG9uQmFzZS5tanMnO1xuaW1wb3J0IHsgQnV0dG9uR3JvdXAgfSBmcm9tICcuL0J1dHRvbkdyb3VwLm1qcyc7XG5cbmNvbnN0IEJ1dHRvbkNvbXBvbmVudCA9IGZvcndhcmRSZWYoXG4gICh7XG4gICAgY2hpbGRyZW4sXG4gICAgY2xhc3NOYW1lLFxuICAgIGNvbG9yID0gXCJpbmZvXCIsXG4gICAgZGlzYWJsZWQsXG4gICAgZnVsbFNpemVkLFxuICAgIGlzUHJvY2Vzc2luZyA9IGZhbHNlLFxuICAgIHByb2Nlc3NpbmdMYWJlbCA9IFwiTG9hZGluZy4uLlwiLFxuICAgIHByb2Nlc3NpbmdTcGlubmVyLFxuICAgIGdyYWRpZW50RHVvVG9uZSxcbiAgICBncmFkaWVudE1vbm9jaHJvbWUsXG4gICAgbGFiZWwsXG4gICAgb3V0bGluZSA9IGZhbHNlLFxuICAgIHBpbGwgPSBmYWxzZSxcbiAgICBwb3NpdGlvbkluR3JvdXAgPSBcIm5vbmVcIixcbiAgICBzaXplID0gXCJtZFwiLFxuICAgIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAgIC4uLnByb3BzXG4gIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IHsgYnV0dG9uR3JvdXA6IGdyb3VwVGhlbWUsIGJ1dHRvbjogYnV0dG9uVGhlbWUgfSA9IGdldFRoZW1lKCk7XG4gICAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoYnV0dG9uVGhlbWUsIGN1c3RvbVRoZW1lKTtcbiAgICBjb25zdCB0aGVpclByb3BzID0gcHJvcHM7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBCdXR0b25CYXNlLFxuICAgICAge1xuICAgICAgICByZWYsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgICAgdGhlbWUuYmFzZSxcbiAgICAgICAgICBkaXNhYmxlZCAmJiB0aGVtZS5kaXNhYmxlZCxcbiAgICAgICAgICAhZ3JhZGllbnREdW9Ub25lICYmICFncmFkaWVudE1vbm9jaHJvbWUgJiYgdGhlbWUuY29sb3JbY29sb3JdLFxuICAgICAgICAgIGdyYWRpZW50RHVvVG9uZSAmJiAhZ3JhZGllbnRNb25vY2hyb21lICYmIHRoZW1lLmdyYWRpZW50RHVvVG9uZVtncmFkaWVudER1b1RvbmVdLFxuICAgICAgICAgICFncmFkaWVudER1b1RvbmUgJiYgZ3JhZGllbnRNb25vY2hyb21lICYmIHRoZW1lLmdyYWRpZW50W2dyYWRpZW50TW9ub2Nocm9tZV0sXG4gICAgICAgICAgb3V0bGluZSAmJiAodGhlbWUub3V0bGluZS5jb2xvcltjb2xvcl0gPz8gdGhlbWUub3V0bGluZS5jb2xvci5kZWZhdWx0KSxcbiAgICAgICAgICB0aGVtZS5waWxsW3BpbGwgPyBcIm9uXCIgOiBcIm9mZlwiXSxcbiAgICAgICAgICBmdWxsU2l6ZWQgJiYgdGhlbWUuZnVsbFNpemVkLFxuICAgICAgICAgIGdyb3VwVGhlbWUucG9zaXRpb25bcG9zaXRpb25Jbkdyb3VwXSxcbiAgICAgICAgICBjbGFzc05hbWVcbiAgICAgICAgKSxcbiAgICAgICAgLi4udGhlaXJQcm9wcyxcbiAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgXCJzcGFuXCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKFxuICAgICAgICAgICAgICB0aGVtZS5pbm5lci5iYXNlLFxuICAgICAgICAgICAgICB0aGVtZS5vdXRsaW5lW291dGxpbmUgPyBcIm9uXCIgOiBcIm9mZlwiXSxcbiAgICAgICAgICAgICAgdGhlbWUub3V0bGluZS5waWxsW291dGxpbmUgJiYgcGlsbCA/IFwib25cIiA6IFwib2ZmXCJdLFxuICAgICAgICAgICAgICB0aGVtZS5zaXplW3NpemVdLFxuICAgICAgICAgICAgICBvdXRsaW5lICYmICF0aGVtZS5vdXRsaW5lLmNvbG9yW2NvbG9yXSAmJiB0aGVtZS5pbm5lci5vdXRsaW5lLFxuICAgICAgICAgICAgICBpc1Byb2Nlc3NpbmcgJiYgdGhlbWUuaXNQcm9jZXNzaW5nLFxuICAgICAgICAgICAgICBpc1Byb2Nlc3NpbmcgJiYgdGhlbWUuaW5uZXIuaXNQcm9jZXNzaW5nUGFkZGluZ1tzaXplXSxcbiAgICAgICAgICAgICAgdGhlbWUuaW5uZXIucG9zaXRpb25bcG9zaXRpb25Jbkdyb3VwXVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4cyhGcmFnbWVudCwgeyBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICBpc1Byb2Nlc3NpbmcgJiYgLyogQF9fUFVSRV9fICovIGpzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuc3Bpbm5lclNsb3QsIHRoZW1lLnNwaW5uZXJMZWZ0UG9zaXRpb25bc2l6ZV0pLCBjaGlsZHJlbjogcHJvY2Vzc2luZ1NwaW5uZXIgfHwgLyogQF9fUFVSRV9fICovIGpzeChTcGlubmVyLCB7IHNpemUgfSkgfSksXG4gICAgICAgICAgICAgIHR5cGVvZiBjaGlsZHJlbiAhPT0gXCJ1bmRlZmluZWRcIiA/IGNoaWxkcmVuIDogLyogQF9fUFVSRV9fICovIGpzeChcInNwYW5cIiwgeyBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtYnV0dG9uLWxhYmVsXCIsIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5sYWJlbCksIGNoaWxkcmVuOiBpc1Byb2Nlc3NpbmcgPyBwcm9jZXNzaW5nTGFiZWwgOiBsYWJlbCB9KVxuICAgICAgICAgICAgXSB9KVxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgfVxuICAgICk7XG4gIH1cbik7XG5CdXR0b25Db21wb25lbnQuZGlzcGxheU5hbWUgPSBcIkJ1dHRvblwiO1xuY29uc3QgQnV0dG9uID0gT2JqZWN0LmFzc2lnbihCdXR0b25Db21wb25lbnQsIHtcbiAgR3JvdXA6IEJ1dHRvbkdyb3VwXG59KTtcblxuZXhwb3J0IHsgQnV0dG9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1CdXR0b24ubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uL0J1dHRvbi5tanMnO1xuaW1wb3J0ICcuLi9CdXR0b24vQnV0dG9uR3JvdXAubWpzJztcblxuY29uc3QgQmFubmVyQ29sbGFwc2VCdXR0b24gPSAoeyBjaGlsZHJlbiwgLi4ucHJvcHMgfSkgPT4ge1xuICBjb25zdCBvbkNsaWNrID0gKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgY29sbGFwc2VCdXR0b24gPSBldmVudC50YXJnZXQ7XG4gICAgY29uc3QgcGFyZW50QmFubmVyID0gY29sbGFwc2VCdXR0b24uY2xvc2VzdCgnW3JvbGU9XCJiYW5uZXJcIl0nKTtcbiAgICBwYXJlbnRCYW5uZXI/LnJlbW92ZSgpO1xuICB9O1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChCdXR0b24sIHsgb25DbGljaywgLi4ucHJvcHMsIGNoaWxkcmVuIH0pO1xufTtcbkJhbm5lckNvbGxhcHNlQnV0dG9uLmRpc3BsYXlOYW1lID0gXCJCYW5uZXIuQ29sbGFwc2VCdXR0b25cIjtcblxuZXhwb3J0IHsgQmFubmVyQ29sbGFwc2VCdXR0b24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUJhbm5lckNvbGxhcHNlQnV0dG9uLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IEJhbm5lckNvbGxhcHNlQnV0dG9uIH0gZnJvbSAnLi9CYW5uZXJDb2xsYXBzZUJ1dHRvbi5tanMnO1xuXG5jb25zdCBCYW5uZXJDb21wb25lbnQgPSAoeyBjaGlsZHJlbiwgLi4ucHJvcHMgfSkgPT4ge1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1iYW5uZXJcIiwgcm9sZTogXCJiYW5uZXJcIiwgdGFiSW5kZXg6IC0xLCAuLi5wcm9wcywgY2hpbGRyZW4gfSk7XG59O1xuQmFubmVyQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJCYW5uZXJcIjtcbmNvbnN0IEJhbm5lciA9IE9iamVjdC5hc3NpZ24oQmFubmVyQ29tcG9uZW50LCB7XG4gIENvbGxhcHNlQnV0dG9uOiBCYW5uZXJDb2xsYXBzZUJ1dHRvblxufSk7XG5cbmV4cG9ydCB7IEJhbm5lciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QmFubmVyLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeHMsIGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBIaU91dGxpbmVDaGV2cm9uUmlnaHQgfSBmcm9tICdyZWFjdC1pY29ucy9oaSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5cbmNvbnN0IEJyZWFkY3J1bWJJdGVtID0gZm9yd2FyZFJlZihcbiAgKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgaHJlZiwgaWNvbjogSWNvbiwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IGlzTGluayA9IHR5cGVvZiBocmVmICE9PSBcInVuZGVmaW5lZFwiO1xuICAgIGNvbnN0IENvbXBvbmVudCA9IGlzTGluayA/IFwiYVwiIDogXCJzcGFuXCI7XG4gICAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5icmVhZGNydW1iLml0ZW0sIGN1c3RvbVRoZW1lKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoXCJsaVwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgY2hpbGRyZW46IFtcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goSGlPdXRsaW5lQ2hldnJvblJpZ2h0LCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgY2xhc3NOYW1lOiB0aGVtZS5jaGV2cm9uLCBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtYnJlYWRjcnVtYi1zZXBhcmF0b3JcIiB9KSxcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFxuICAgICAgICBDb21wb25lbnQsXG4gICAgICAgIHtcbiAgICAgICAgICByZWYsXG4gICAgICAgICAgY2xhc3NOYW1lOiB0aGVtZS5ocmVmW2lzTGluayA/IFwib25cIiA6IFwib2ZmXCJdLFxuICAgICAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1icmVhZGNydW1iLWl0ZW1cIixcbiAgICAgICAgICBocmVmLFxuICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICBJY29uICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUsIGNsYXNzTmFtZTogdGhlbWUuaWNvbiB9KSxcbiAgICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICApXG4gICAgXSB9KTtcbiAgfVxuKTtcbkJyZWFkY3J1bWJJdGVtLmRpc3BsYXlOYW1lID0gXCJCcmVhZGNydW1iLkl0ZW1cIjtcblxuZXhwb3J0IHsgQnJlYWRjcnVtYkl0ZW0gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUJyZWFkY3J1bWJJdGVtLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcbmltcG9ydCB7IEJyZWFkY3J1bWJJdGVtIH0gZnJvbSAnLi9CcmVhZGNydW1iSXRlbS5tanMnO1xuXG5jb25zdCBCcmVhZGNydW1iQ29tcG9uZW50ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuYnJlYWRjcnVtYi5yb290LCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwibmF2XCIsIHsgXCJhcmlhLWxhYmVsXCI6IFwiQnJlYWRjcnVtYlwiLCBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSwgLi4ucHJvcHMsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFwib2xcIiwgeyBjbGFzc05hbWU6IHRoZW1lLmxpc3QsIGNoaWxkcmVuIH0pIH0pO1xufTtcbkJyZWFkY3J1bWJDb21wb25lbnQuZGlzcGxheU5hbWUgPSBcIkJyZWFkY3J1bWJcIjtcbmNvbnN0IEJyZWFkY3J1bWIgPSBPYmplY3QuYXNzaWduKEJyZWFkY3J1bWJDb21wb25lbnQsIHtcbiAgSXRlbTogQnJlYWRjcnVtYkl0ZW1cbn0pO1xuXG5leHBvcnQgeyBCcmVhZGNydW1iIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1CcmVhZGNydW1iLm1qcy5tYXBcbiIsIi8qIVxuXHRDb3B5cmlnaHQgKGMpIDIwMTggSmVkIFdhdHNvbi5cblx0TGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlIChNSVQpLCBzZWVcblx0aHR0cDovL2plZHdhdHNvbi5naXRodWIuaW8vY2xhc3NuYW1lc1xuKi9cbi8qIGdsb2JhbCBkZWZpbmUgKi9cblxuKGZ1bmN0aW9uICgpIHtcblx0J3VzZSBzdHJpY3QnO1xuXG5cdHZhciBoYXNPd24gPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblxuXHRmdW5jdGlvbiBjbGFzc05hbWVzICgpIHtcblx0XHR2YXIgY2xhc3NlcyA9ICcnO1xuXG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdHZhciBhcmcgPSBhcmd1bWVudHNbaV07XG5cdFx0XHRpZiAoYXJnKSB7XG5cdFx0XHRcdGNsYXNzZXMgPSBhcHBlbmRDbGFzcyhjbGFzc2VzLCBwYXJzZVZhbHVlKGFyZykpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBjbGFzc2VzO1xuXHR9XG5cblx0ZnVuY3Rpb24gcGFyc2VWYWx1ZSAoYXJnKSB7XG5cdFx0aWYgKHR5cGVvZiBhcmcgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBhcmcgPT09ICdudW1iZXInKSB7XG5cdFx0XHRyZXR1cm4gYXJnO1xuXHRcdH1cblxuXHRcdGlmICh0eXBlb2YgYXJnICE9PSAnb2JqZWN0Jykge1xuXHRcdFx0cmV0dXJuICcnO1xuXHRcdH1cblxuXHRcdGlmIChBcnJheS5pc0FycmF5KGFyZykpIHtcblx0XHRcdHJldHVybiBjbGFzc05hbWVzLmFwcGx5KG51bGwsIGFyZyk7XG5cdFx0fVxuXG5cdFx0aWYgKGFyZy50b1N0cmluZyAhPT0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyAmJiAhYXJnLnRvU3RyaW5nLnRvU3RyaW5nKCkuaW5jbHVkZXMoJ1tuYXRpdmUgY29kZV0nKSkge1xuXHRcdFx0cmV0dXJuIGFyZy50b1N0cmluZygpO1xuXHRcdH1cblxuXHRcdHZhciBjbGFzc2VzID0gJyc7XG5cblx0XHRmb3IgKHZhciBrZXkgaW4gYXJnKSB7XG5cdFx0XHRpZiAoaGFzT3duLmNhbGwoYXJnLCBrZXkpICYmIGFyZ1trZXldKSB7XG5cdFx0XHRcdGNsYXNzZXMgPSBhcHBlbmRDbGFzcyhjbGFzc2VzLCBrZXkpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBjbGFzc2VzO1xuXHR9XG5cblx0ZnVuY3Rpb24gYXBwZW5kQ2xhc3MgKHZhbHVlLCBuZXdDbGFzcykge1xuXHRcdGlmICghbmV3Q2xhc3MpIHtcblx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHR9XG5cdFxuXHRcdGlmICh2YWx1ZSkge1xuXHRcdFx0cmV0dXJuIHZhbHVlICsgJyAnICsgbmV3Q2xhc3M7XG5cdFx0fVxuXHRcblx0XHRyZXR1cm4gdmFsdWUgKyBuZXdDbGFzcztcblx0fVxuXG5cdGlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyAmJiBtb2R1bGUuZXhwb3J0cykge1xuXHRcdGNsYXNzTmFtZXMuZGVmYXVsdCA9IGNsYXNzTmFtZXM7XG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBjbGFzc05hbWVzO1xuXHR9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGRlZmluZS5hbWQgPT09ICdvYmplY3QnICYmIGRlZmluZS5hbWQpIHtcblx0XHQvLyByZWdpc3RlciBhcyAnY2xhc3NuYW1lcycsIGNvbnNpc3RlbnQgd2l0aCBucG0gcGFja2FnZSBuYW1lXG5cdFx0ZGVmaW5lKCdjbGFzc25hbWVzJywgW10sIGZ1bmN0aW9uICgpIHtcblx0XHRcdHJldHVybiBjbGFzc05hbWVzO1xuXHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdHdpbmRvdy5jbGFzc05hbWVzID0gY2xhc3NOYW1lcztcblx0fVxufSgpKTtcbiIsImZ1bmN0aW9uIGRlYm91bmNlKGZ1bmN0aW9uXywgd2FpdCA9IDEwMCwgb3B0aW9ucyA9IHt9KSB7XG5cdGlmICh0eXBlb2YgZnVuY3Rpb25fICE9PSAnZnVuY3Rpb24nKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgdGhlIGZpcnN0IHBhcmFtZXRlciB0byBiZSBhIGZ1bmN0aW9uLCBnb3QgXFxgJHt0eXBlb2YgZnVuY3Rpb25ffVxcYC5gKTtcblx0fVxuXG5cdGlmICh3YWl0IDwgMCkge1xuXHRcdHRocm93IG5ldyBSYW5nZUVycm9yKCdgd2FpdGAgbXVzdCBub3QgYmUgbmVnYXRpdmUuJyk7XG5cdH1cblxuXHQvLyBUT0RPOiBEZXByZWNhdGUgdGhlIGJvb2xlYW4gcGFyYW1ldGVyIGF0IHNvbWUgcG9pbnQuXG5cdGNvbnN0IHtpbW1lZGlhdGV9ID0gdHlwZW9mIG9wdGlvbnMgPT09ICdib29sZWFuJyA/IHtpbW1lZGlhdGU6IG9wdGlvbnN9IDogb3B0aW9ucztcblxuXHRsZXQgc3RvcmVkQ29udGV4dDtcblx0bGV0IHN0b3JlZEFyZ3VtZW50cztcblx0bGV0IHRpbWVvdXRJZDtcblx0bGV0IHRpbWVzdGFtcDtcblx0bGV0IHJlc3VsdDtcblxuXHRmdW5jdGlvbiBydW4oKSB7XG5cdFx0Y29uc3QgY2FsbENvbnRleHQgPSBzdG9yZWRDb250ZXh0O1xuXHRcdGNvbnN0IGNhbGxBcmd1bWVudHMgPSBzdG9yZWRBcmd1bWVudHM7XG5cdFx0c3RvcmVkQ29udGV4dCA9IHVuZGVmaW5lZDtcblx0XHRzdG9yZWRBcmd1bWVudHMgPSB1bmRlZmluZWQ7XG5cdFx0cmVzdWx0ID0gZnVuY3Rpb25fLmFwcGx5KGNhbGxDb250ZXh0LCBjYWxsQXJndW1lbnRzKTtcblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG5cblx0ZnVuY3Rpb24gbGF0ZXIoKSB7XG5cdFx0Y29uc3QgbGFzdCA9IERhdGUubm93KCkgLSB0aW1lc3RhbXA7XG5cblx0XHRpZiAobGFzdCA8IHdhaXQgJiYgbGFzdCA+PSAwKSB7XG5cdFx0XHR0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KGxhdGVyLCB3YWl0IC0gbGFzdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRpbWVvdXRJZCA9IHVuZGVmaW5lZDtcblxuXHRcdFx0aWYgKCFpbW1lZGlhdGUpIHtcblx0XHRcdFx0cmVzdWx0ID0gcnVuKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Y29uc3QgZGVib3VuY2VkID0gZnVuY3Rpb24gKC4uLmFyZ3VtZW50c18pIHtcblx0XHRpZiAoc3RvcmVkQ29udGV4dCAmJiB0aGlzICE9PSBzdG9yZWRDb250ZXh0KSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0RlYm91bmNlZCBtZXRob2QgY2FsbGVkIHdpdGggZGlmZmVyZW50IGNvbnRleHRzLicpO1xuXHRcdH1cblxuXHRcdHN0b3JlZENvbnRleHQgPSB0aGlzOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHVuaWNvcm4vbm8tdGhpcy1hc3NpZ25tZW50XG5cdFx0c3RvcmVkQXJndW1lbnRzID0gYXJndW1lbnRzXztcblx0XHR0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuXG5cdFx0Y29uc3QgY2FsbE5vdyA9IGltbWVkaWF0ZSAmJiAhdGltZW91dElkO1xuXG5cdFx0aWYgKCF0aW1lb3V0SWQpIHtcblx0XHRcdHRpbWVvdXRJZCA9IHNldFRpbWVvdXQobGF0ZXIsIHdhaXQpO1xuXHRcdH1cblxuXHRcdGlmIChjYWxsTm93KSB7XG5cdFx0XHRyZXN1bHQgPSBydW4oKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9O1xuXG5cdGRlYm91bmNlZC5jbGVhciA9ICgpID0+IHtcblx0XHRpZiAoIXRpbWVvdXRJZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuXHRcdHRpbWVvdXRJZCA9IHVuZGVmaW5lZDtcblx0fTtcblxuXHRkZWJvdW5jZWQuZmx1c2ggPSAoKSA9PiB7XG5cdFx0aWYgKCF0aW1lb3V0SWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRkZWJvdW5jZWQudHJpZ2dlcigpO1xuXHR9O1xuXG5cdGRlYm91bmNlZC50cmlnZ2VyID0gKCkgPT4ge1xuXHRcdHJlc3VsdCA9IHJ1bigpO1xuXG5cdFx0ZGVib3VuY2VkLmNsZWFyKCk7XG5cdH07XG5cblx0cmV0dXJuIGRlYm91bmNlZDtcbn1cblxuLy8gQWRkcyBjb21wYXRpYmlsaXR5IGZvciBFUyBtb2R1bGVzXG5tb2R1bGUuZXhwb3J0cy5kZWJvdW5jZSA9IGRlYm91bmNlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGRlYm91bmNlO1xuIiwiaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgZGVib3VuY2UgZnJvbSAnZGVib3VuY2UnO1xuaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5cbnZhciBfX2RlZlByb3AgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgX19kZWZOb3JtYWxQcm9wID0gKG9iaiwga2V5LCB2YWx1ZSkgPT4ga2V5IGluIG9iaiA/IF9fZGVmUHJvcChvYmosIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZSB9KSA6IG9ialtrZXldID0gdmFsdWU7XG52YXIgX19wdWJsaWNGaWVsZCA9IChvYmosIGtleSwgdmFsdWUpID0+IF9fZGVmTm9ybWFsUHJvcChvYmosIHR5cGVvZiBrZXkgIT09IFwic3ltYm9sXCIgPyBrZXkgKyBcIlwiIDoga2V5LCB2YWx1ZSk7XG5jb25zdCBTQ1JPTExfRU5EX0RFQk9VTkNFID0gMzAwO1xuY29uc3QgTEVGVF9CVVRUT04gPSAwO1xuY2xhc3MgU2Nyb2xsQ29udGFpbmVyIGV4dGVuZHMgUHVyZUNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIF9fcHVibGljRmllbGQodGhpcywgXCJjb250YWluZXJcIik7XG4gICAgX19wdWJsaWNGaWVsZCh0aGlzLCBcInNjcm9sbGluZ1wiKTtcbiAgICBfX3B1YmxpY0ZpZWxkKHRoaXMsIFwic3RhcnRlZFwiKTtcbiAgICBfX3B1YmxpY0ZpZWxkKHRoaXMsIFwicHJlc3NlZFwiKTtcbiAgICBfX3B1YmxpY0ZpZWxkKHRoaXMsIFwiaXNNb2JpbGVcIiwgZmFsc2UpO1xuICAgIF9fcHVibGljRmllbGQodGhpcywgXCJpbnRlcm5hbFwiKTtcbiAgICBfX3B1YmxpY0ZpZWxkKHRoaXMsIFwic2Nyb2xsTGVmdFwiKTtcbiAgICBfX3B1YmxpY0ZpZWxkKHRoaXMsIFwic2Nyb2xsVG9wXCIpO1xuICAgIF9fcHVibGljRmllbGQodGhpcywgXCJjbGllbnRYXCIpO1xuICAgIF9fcHVibGljRmllbGQodGhpcywgXCJjbGllbnRZXCIpO1xuICAgIC8vIFNpbXVsYXRlICdvbkVuZFNjcm9sbCcgZXZlbnQgdGhhdCBmaXJlcyB3aGVuIHNjcm9sbGluZyBpcyBzdG9wcGVkXG4gICAgX19wdWJsaWNGaWVsZCh0aGlzLCBcIm9uRW5kU2Nyb2xsXCIsICgpID0+IHtcbiAgICAgIHRoaXMuc2Nyb2xsaW5nID0gZmFsc2U7XG4gICAgICBpZiAoIXRoaXMucHJlc3NlZCAmJiB0aGlzLnN0YXJ0ZWQpIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzRW5kKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgX19wdWJsaWNGaWVsZCh0aGlzLCBcIm9uU2Nyb2xsXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLmN1cnJlbnQ7XG4gICAgICBpZiAoY29udGFpbmVyLnNjcm9sbExlZnQgIT09IHRoaXMuc2Nyb2xsTGVmdCB8fCBjb250YWluZXIuc2Nyb2xsVG9wICE9PSB0aGlzLnNjcm9sbFRvcCkge1xuICAgICAgICB0aGlzLnNjcm9sbGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMucHJvY2Vzc1Njcm9sbCgpO1xuICAgICAgICB0aGlzLm9uRW5kU2Nyb2xsKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgX19wdWJsaWNGaWVsZCh0aGlzLCBcIm9uVG91Y2hTdGFydFwiLCAoZSkgPT4ge1xuICAgICAgY29uc3QgeyBuYXRpdmVNb2JpbGVTY3JvbGwgfSA9IHRoaXMucHJvcHM7XG4gICAgICBpZiAodGhpcy5pc0RyYWdnYWJsZShlLnRhcmdldCkpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbCA9IHRydWU7XG4gICAgICAgIGlmIChuYXRpdmVNb2JpbGVTY3JvbGwgJiYgdGhpcy5zY3JvbGxpbmcpIHtcbiAgICAgICAgICB0aGlzLnByZXNzZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHRvdWNoID0gZS50b3VjaGVzWzBdO1xuICAgICAgICAgIHRoaXMucHJvY2Vzc0NsaWNrKHRvdWNoLmNsaWVudFgsIHRvdWNoLmNsaWVudFkpO1xuICAgICAgICAgIGlmICghbmF0aXZlTW9iaWxlU2Nyb2xsICYmIHRoaXMucHJvcHMuc3RvcFByb3BhZ2F0aW9uKSB7XG4gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIF9fcHVibGljRmllbGQodGhpcywgXCJvblRvdWNoRW5kXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgbmF0aXZlTW9iaWxlU2Nyb2xsIH0gPSB0aGlzLnByb3BzO1xuICAgICAgaWYgKHRoaXMucHJlc3NlZCkge1xuICAgICAgICBpZiAodGhpcy5zdGFydGVkICYmICghdGhpcy5zY3JvbGxpbmcgfHwgIW5hdGl2ZU1vYmlsZVNjcm9sbCkpIHtcbiAgICAgICAgICB0aGlzLnByb2Nlc3NFbmQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnByZXNzZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgX19wdWJsaWNGaWVsZCh0aGlzLCBcIm9uVG91Y2hNb3ZlXCIsIChlKSA9PiB7XG4gICAgICBjb25zdCB7IG5hdGl2ZU1vYmlsZVNjcm9sbCB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmICh0aGlzLnByZXNzZWQgJiYgKCFuYXRpdmVNb2JpbGVTY3JvbGwgfHwgIXRoaXMuaXNNb2JpbGUpKSB7XG4gICAgICAgIGNvbnN0IHRvdWNoID0gZS50b3VjaGVzWzBdO1xuICAgICAgICBpZiAodG91Y2gpIHtcbiAgICAgICAgICB0aGlzLnByb2Nlc3NNb3ZlKHRvdWNoLmNsaWVudFgsIHRvdWNoLmNsaWVudFkpO1xuICAgICAgICB9XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuc3RvcFByb3BhZ2F0aW9uKSB7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIF9fcHVibGljRmllbGQodGhpcywgXCJvbk1vdXNlRG93blwiLCAoZSkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNEcmFnZ2FibGUoZS50YXJnZXQpICYmIHRoaXMuaXNTY3JvbGxhYmxlKCkpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbCA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLnByb3BzPy5idXR0b25zPy5pbmRleE9mKGUuYnV0dG9uKSAhPT0gLTEpIHtcbiAgICAgICAgICB0aGlzLnByb2Nlc3NDbGljayhlLmNsaWVudFgsIGUuY2xpZW50WSk7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGlmICh0aGlzLnByb3BzLnN0b3BQcm9wYWdhdGlvbikge1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICBfX3B1YmxpY0ZpZWxkKHRoaXMsIFwib25Nb3VzZU1vdmVcIiwgKGUpID0+IHtcbiAgICAgIGlmICh0aGlzLnByZXNzZWQpIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzTW92ZShlLmNsaWVudFgsIGUuY2xpZW50WSk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuc3RvcFByb3BhZ2F0aW9uKSB7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIF9fcHVibGljRmllbGQodGhpcywgXCJvbk1vdXNlVXBcIiwgKGUpID0+IHtcbiAgICAgIGlmICh0aGlzLnByZXNzZWQpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhcnRlZCkge1xuICAgICAgICAgIHRoaXMucHJvY2Vzc0VuZCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuaW50ZXJuYWwgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnByZXNzZWQgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XG4gICAgICAgICAgaWYgKHRoaXMucHJvcHMub25DbGljaykge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNsaWNrKGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnN0b3BQcm9wYWdhdGlvbikge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmNvbnRhaW5lciA9IFJlYWN0LmNyZWF0ZVJlZigpO1xuICAgIHRoaXMub25FbmRTY3JvbGwgPSBkZWJvdW5jZSh0aGlzLm9uRW5kU2Nyb2xsLCBTQ1JPTExfRU5EX0RFQk9VTkNFKTtcbiAgICB0aGlzLnNjcm9sbGluZyA9IGZhbHNlO1xuICAgIHRoaXMuc3RhcnRlZCA9IGZhbHNlO1xuICAgIHRoaXMucHJlc3NlZCA9IGZhbHNlO1xuICAgIHRoaXMuaW50ZXJuYWwgPSBmYWxzZTtcbiAgICB0aGlzLmdldFJlZiA9IHRoaXMuZ2V0UmVmLmJpbmQodGhpcyk7XG4gIH1cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3QgeyBuYXRpdmVNb2JpbGVTY3JvbGwgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIuY3VycmVudDtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIiwgdGhpcy5vbk1vdXNlVXApO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIHRoaXMub25Nb3VzZU1vdmUpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsIHRoaXMub25Ub3VjaE1vdmUsIHsgcGFzc2l2ZTogZmFsc2UgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCB0aGlzLm9uVG91Y2hFbmQpO1xuICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLCB0aGlzLm9uVG91Y2hTdGFydCwge1xuICAgICAgcGFzc2l2ZTogZmFsc2VcbiAgICB9KTtcbiAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCB0aGlzLm9uTW91c2VEb3duLCB7XG4gICAgICBwYXNzaXZlOiBmYWxzZVxuICAgIH0pO1xuICAgIGlmIChuYXRpdmVNb2JpbGVTY3JvbGwpIHtcbiAgICAgIHRoaXMuaXNNb2JpbGUgPSB0aGlzLmlzTW9iaWxlRGV2aWNlKCk7XG4gICAgICBpZiAodGhpcy5pc01vYmlsZSkge1xuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLCB0aGlzLm9uTW91c2VVcCk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgdGhpcy5vbk1vdXNlTW92ZSk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgdGhpcy5vblRvdWNoTW92ZSk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCB0aGlzLm9uVG91Y2hFbmQpO1xuICB9XG4gIGdldEVsZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGFpbmVyLmN1cnJlbnQ7XG4gIH1cbiAgaXNNb2JpbGVEZXZpY2UoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB3aW5kb3cub3JpZW50YXRpb24gIT09IFwidW5kZWZpbmVkXCIgfHwgbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKFwiSUVNb2JpbGVcIikgIT09IC0xO1xuICB9XG4gIGlzRHJhZ2dhYmxlKHRhcmdldCkge1xuICAgIGNvbnN0IGlnbm9yZUVsZW1lbnRzID0gdGhpcy5wcm9wcy5pZ25vcmVFbGVtZW50cztcbiAgICBpZiAoaWdub3JlRWxlbWVudHMpIHtcbiAgICAgIGNvbnN0IGNsb3Nlc3QgPSB0YXJnZXQuY2xvc2VzdChpZ25vcmVFbGVtZW50cyk7XG4gICAgICByZXR1cm4gY2xvc2VzdCA9PT0gbnVsbCB8fCBjbG9zZXN0LmNvbnRhaW5zKHRoaXMuZ2V0RWxlbWVudCgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIGlzU2Nyb2xsYWJsZSgpIHtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lci5jdXJyZW50O1xuICAgIHJldHVybiBjb250YWluZXIgJiYgKGNvbnRhaW5lci5zY3JvbGxXaWR0aCA+IGNvbnRhaW5lci5jbGllbnRXaWR0aCB8fCBjb250YWluZXIuc2Nyb2xsSGVpZ2h0ID4gY29udGFpbmVyLmNsaWVudEhlaWdodCk7XG4gIH1cbiAgcHJvY2Vzc0NsaWNrKGNsaWVudFgsIGNsaWVudFkpIHtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lci5jdXJyZW50O1xuICAgIHRoaXMuc2Nyb2xsTGVmdCA9IGNvbnRhaW5lcj8uc2Nyb2xsTGVmdDtcbiAgICB0aGlzLnNjcm9sbFRvcCA9IGNvbnRhaW5lcj8uc2Nyb2xsVG9wO1xuICAgIHRoaXMuY2xpZW50WCA9IGNsaWVudFg7XG4gICAgdGhpcy5jbGllbnRZID0gY2xpZW50WTtcbiAgICB0aGlzLnByZXNzZWQgPSB0cnVlO1xuICB9XG4gIHByb2Nlc3NTdGFydChjaGFuZ2VDdXJzb3IgPSB0cnVlKSB7XG4gICAgY29uc3QgeyBvblN0YXJ0U2Nyb2xsIH0gPSB0aGlzLnByb3BzO1xuICAgIHRoaXMuc3RhcnRlZCA9IHRydWU7XG4gICAgaWYgKGNoYW5nZUN1cnNvcikge1xuICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwiY3Vyc29yLWdyYWJcIik7XG4gICAgfVxuICAgIGlmIChvblN0YXJ0U2Nyb2xsKSB7XG4gICAgICBvblN0YXJ0U2Nyb2xsKHtcbiAgICAgICAgZXh0ZXJuYWw6ICF0aGlzLmludGVybmFsXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xuICB9XG4gIC8vIFByb2Nlc3MgbmF0aXZlIHNjcm9sbCAoc2Nyb2xsYmFyLCBtb2JpbGUgc2Nyb2xsKVxuICBwcm9jZXNzU2Nyb2xsKCkge1xuICAgIGlmICh0aGlzLnN0YXJ0ZWQpIHtcbiAgICAgIGNvbnN0IHsgb25TY3JvbGwgfSA9IHRoaXMucHJvcHM7XG4gICAgICBpZiAob25TY3JvbGwpIHtcbiAgICAgICAgb25TY3JvbGwoe1xuICAgICAgICAgIGV4dGVybmFsOiAhdGhpcy5pbnRlcm5hbFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9jZXNzU3RhcnQoZmFsc2UpO1xuICAgIH1cbiAgfVxuICAvLyBQcm9jZXNzIG5vbi1uYXRpdmUgc2Nyb2xsXG4gIHByb2Nlc3NNb3ZlKG5ld0NsaWVudFgsIG5ld0NsaWVudFkpIHtcbiAgICBjb25zdCB7IGhvcml6b250YWwsIHZlcnRpY2FsLCBhY3RpdmF0aW9uRGlzdGFuY2UsIG9uU2Nyb2xsIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLmN1cnJlbnQ7XG4gICAgaWYgKCF0aGlzLnN0YXJ0ZWQpIHtcbiAgICAgIGlmIChob3Jpem9udGFsICYmIE1hdGguYWJzKG5ld0NsaWVudFggLSB0aGlzLmNsaWVudFgpID4gYWN0aXZhdGlvbkRpc3RhbmNlIHx8IHZlcnRpY2FsICYmIE1hdGguYWJzKG5ld0NsaWVudFkgLSB0aGlzLmNsaWVudFkpID4gYWN0aXZhdGlvbkRpc3RhbmNlKSB7XG4gICAgICAgIHRoaXMuY2xpZW50WCA9IG5ld0NsaWVudFg7XG4gICAgICAgIHRoaXMuY2xpZW50WSA9IG5ld0NsaWVudFk7XG4gICAgICAgIHRoaXMucHJvY2Vzc1N0YXJ0KCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChob3Jpem9udGFsKSB7XG4gICAgICAgIGNvbnRhaW5lci5zY3JvbGxMZWZ0IC09IG5ld0NsaWVudFggLSB0aGlzLmNsaWVudFg7XG4gICAgICB9XG4gICAgICBpZiAodmVydGljYWwpIHtcbiAgICAgICAgY29udGFpbmVyLnNjcm9sbFRvcCAtPSBuZXdDbGllbnRZIC0gdGhpcy5jbGllbnRZO1xuICAgICAgfVxuICAgICAgaWYgKG9uU2Nyb2xsKSB7XG4gICAgICAgIG9uU2Nyb2xsKHsgZXh0ZXJuYWw6ICF0aGlzLmludGVybmFsIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5jbGllbnRYID0gbmV3Q2xpZW50WDtcbiAgICAgIHRoaXMuY2xpZW50WSA9IG5ld0NsaWVudFk7XG4gICAgICB0aGlzLnNjcm9sbExlZnQgPSBjb250YWluZXIuc2Nyb2xsTGVmdDtcbiAgICAgIHRoaXMuc2Nyb2xsVG9wID0gY29udGFpbmVyLnNjcm9sbFRvcDtcbiAgICB9XG4gIH1cbiAgcHJvY2Vzc0VuZCgpIHtcbiAgICBjb25zdCB7IG9uRW5kU2Nyb2xsIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLmN1cnJlbnQ7XG4gICAgaWYgKGNvbnRhaW5lciAmJiBvbkVuZFNjcm9sbCkge1xuICAgICAgb25FbmRTY3JvbGwoe1xuICAgICAgICBleHRlcm5hbDogIXRoaXMuaW50ZXJuYWxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnByZXNzZWQgPSBmYWxzZTtcbiAgICB0aGlzLnN0YXJ0ZWQgPSBmYWxzZTtcbiAgICB0aGlzLnNjcm9sbGluZyA9IGZhbHNlO1xuICAgIHRoaXMuaW50ZXJuYWwgPSBmYWxzZTtcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJjdXJzb3ItZ3JhYlwiKTtcbiAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XG4gIH1cbiAgZ2V0UmVmKGVsKSB7XG4gICAgW3RoaXMuY29udGFpbmVyLCB0aGlzLnByb3BzLmlubmVyUmVmXS5mb3JFYWNoKChyZWYpID0+IHtcbiAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgaWYgKHR5cGVvZiByZWYgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIHJlZihlbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVmLmN1cnJlbnQgPSBlbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBkcmFnZ2luZ0NsYXNzTmFtZSwgY2xhc3NOYW1lLCBzdHlsZSwgaGlkZVNjcm9sbGJhcnMgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBcImRpdlwiLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzbmFtZXMoY2xhc3NOYW1lLCB0aGlzLnByZXNzZWQgJiYgZHJhZ2dpbmdDbGFzc05hbWUsIHtcbiAgICAgICAgICBcIiFzY3JvbGwtYXV0byBbJj4qXTpwb2ludGVyLWV2ZW50cy1ub25lIFsmPipdOmN1cnNvci1ncmFiXCI6IHRoaXMucHJlc3NlZCxcbiAgICAgICAgICBcIm92ZXJmbG93LWF1dG9cIjogdGhpcy5pc01vYmlsZSxcbiAgICAgICAgICBcIm92ZXJmbG93LWhpZGRlbiAhb3ZlcmZsb3cteC1oaWRkZW4gW292ZXJmbG93Oi1tb3otc2Nyb2xsYmFycy1ub25lXSBbc2Nyb2xsYmFyLXdpZHRoOm5vbmVdXCI6IGhpZGVTY3JvbGxiYXJzLFxuICAgICAgICAgIFwiWyY6Oi13ZWJraXQtc2Nyb2xsYmFyXTpbLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmUgIWltcG9ydGFudF0gWyY6Oi13ZWJraXQtc2Nyb2xsYmFyXTohaGlkZGVuIFsmOjotd2Via2l0LXNjcm9sbGJhcl06IWgtMCBbJjo6LXdlYmtpdC1zY3JvbGxiYXJdOiF3LTAgWyY6Oi13ZWJraXQtc2Nyb2xsYmFyXTohYmctdHJhbnNwYXJlbnRcIjogaGlkZVNjcm9sbGJhcnNcbiAgICAgICAgfSksXG4gICAgICAgIHN0eWxlLFxuICAgICAgICByZWY6IHRoaXMuZ2V0UmVmLFxuICAgICAgICBvblNjcm9sbDogdGhpcy5vblNjcm9sbCxcbiAgICAgICAgY2hpbGRyZW5cbiAgICAgIH1cbiAgICApO1xuICB9XG59XG5fX3B1YmxpY0ZpZWxkKFNjcm9sbENvbnRhaW5lciwgXCJkZWZhdWx0UHJvcHNcIiwge1xuICBuYXRpdmVNb2JpbGVTY3JvbGw6IHRydWUsXG4gIGhpZGVTY3JvbGxiYXJzOiB0cnVlLFxuICBhY3RpdmF0aW9uRGlzdGFuY2U6IDEwLFxuICB2ZXJ0aWNhbDogdHJ1ZSxcbiAgaG9yaXpvbnRhbDogdHJ1ZSxcbiAgc3RvcFByb3BhZ2F0aW9uOiBmYWxzZSxcbiAgc3R5bGU6IHt9LFxuICBidXR0b25zOiBbTEVGVF9CVVRUT05dXG59KTtcblxuZXhwb3J0IHsgU2Nyb2xsQ29udGFpbmVyIGFzIGRlZmF1bHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5cbmNvbnN0IENoZWNrYm94ID0gZm9yd2FyZFJlZihcbiAgKHsgY2xhc3NOYW1lLCBjb2xvciA9IFwiZGVmYXVsdFwiLCB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgLi4ucHJvcHMgfSwgcmVmKSA9PiB7XG4gICAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5jaGVja2JveCwgY3VzdG9tVGhlbWUpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgXCJpbnB1dFwiLFxuICAgICAge1xuICAgICAgICByZWYsXG4gICAgICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLnJvb3QuYmFzZSwgdGhlbWUucm9vdC5jb2xvcltjb2xvcl0sIGNsYXNzTmFtZSksXG4gICAgICAgIC4uLnByb3BzXG4gICAgICB9XG4gICAgKTtcbiAgfVxuKTtcbkNoZWNrYm94LmRpc3BsYXlOYW1lID0gXCJDaGVja2JveFwiO1xuXG5leHBvcnQgeyBDaGVja2JveCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Q2hlY2tib3gubWpzLm1hcFxuIiwiaW1wb3J0IHsgaXNTaGFkb3dSb290LCBpc0hUTUxFbGVtZW50IH0gZnJvbSAnQGZsb2F0aW5nLXVpL3V0aWxzL2RvbSc7XG5cbmZ1bmN0aW9uIGFjdGl2ZUVsZW1lbnQoZG9jKSB7XG4gIGxldCBhY3RpdmVFbGVtZW50ID0gZG9jLmFjdGl2ZUVsZW1lbnQ7XG4gIHdoaWxlICgoKF9hY3RpdmVFbGVtZW50ID0gYWN0aXZlRWxlbWVudCkgPT0gbnVsbCB8fCAoX2FjdGl2ZUVsZW1lbnQgPSBfYWN0aXZlRWxlbWVudC5zaGFkb3dSb290KSA9PSBudWxsID8gdm9pZCAwIDogX2FjdGl2ZUVsZW1lbnQuYWN0aXZlRWxlbWVudCkgIT0gbnVsbCkge1xuICAgIHZhciBfYWN0aXZlRWxlbWVudDtcbiAgICBhY3RpdmVFbGVtZW50ID0gYWN0aXZlRWxlbWVudC5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQ7XG4gIH1cbiAgcmV0dXJuIGFjdGl2ZUVsZW1lbnQ7XG59XG5mdW5jdGlvbiBjb250YWlucyhwYXJlbnQsIGNoaWxkKSB7XG4gIGlmICghcGFyZW50IHx8ICFjaGlsZCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCByb290Tm9kZSA9IGNoaWxkLmdldFJvb3ROb2RlID09IG51bGwgPyB2b2lkIDAgOiBjaGlsZC5nZXRSb290Tm9kZSgpO1xuXG4gIC8vIEZpcnN0LCBhdHRlbXB0IHdpdGggZmFzdGVyIG5hdGl2ZSBtZXRob2RcbiAgaWYgKHBhcmVudC5jb250YWlucyhjaGlsZCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIHRoZW4gZmFsbGJhY2sgdG8gY3VzdG9tIGltcGxlbWVudGF0aW9uIHdpdGggU2hhZG93IERPTSBzdXBwb3J0XG4gIGlmIChyb290Tm9kZSAmJiBpc1NoYWRvd1Jvb3Qocm9vdE5vZGUpKSB7XG4gICAgbGV0IG5leHQgPSBjaGlsZDtcbiAgICB3aGlsZSAobmV4dCkge1xuICAgICAgaWYgKHBhcmVudCA9PT0gbmV4dCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG5leHQgPSBuZXh0LnBhcmVudE5vZGUgfHwgbmV4dC5ob3N0O1xuICAgIH1cbiAgfVxuXG4gIC8vIEdpdmUgdXAsIHRoZSByZXN1bHQgaXMgZmFsc2VcbiAgcmV0dXJuIGZhbHNlO1xufVxuLy8gQXZvaWQgQ2hyb21lIERldlRvb2xzIGJsdWUgd2FybmluZy5cbmZ1bmN0aW9uIGdldFBsYXRmb3JtKCkge1xuICBjb25zdCB1YURhdGEgPSBuYXZpZ2F0b3IudXNlckFnZW50RGF0YTtcbiAgaWYgKHVhRGF0YSAhPSBudWxsICYmIHVhRGF0YS5wbGF0Zm9ybSkge1xuICAgIHJldHVybiB1YURhdGEucGxhdGZvcm07XG4gIH1cbiAgcmV0dXJuIG5hdmlnYXRvci5wbGF0Zm9ybTtcbn1cbmZ1bmN0aW9uIGdldFVzZXJBZ2VudCgpIHtcbiAgY29uc3QgdWFEYXRhID0gbmF2aWdhdG9yLnVzZXJBZ2VudERhdGE7XG4gIGlmICh1YURhdGEgJiYgQXJyYXkuaXNBcnJheSh1YURhdGEuYnJhbmRzKSkge1xuICAgIHJldHVybiB1YURhdGEuYnJhbmRzLm1hcChfcmVmID0+IHtcbiAgICAgIGxldCB7XG4gICAgICAgIGJyYW5kLFxuICAgICAgICB2ZXJzaW9uXG4gICAgICB9ID0gX3JlZjtcbiAgICAgIHJldHVybiBicmFuZCArIFwiL1wiICsgdmVyc2lvbjtcbiAgICB9KS5qb2luKCcgJyk7XG4gIH1cbiAgcmV0dXJuIG5hdmlnYXRvci51c2VyQWdlbnQ7XG59XG5cbi8vIExpY2Vuc2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9hZG9iZS9yZWFjdC1zcGVjdHJ1bS9ibG9iL2IzNWQ1YzAyZmU5MDBiYWRjY2QwY2YxYThmMjNiYjU5MzQxOWYyMzgvcGFja2FnZXMvQHJlYWN0LWFyaWEvdXRpbHMvc3JjL2lzVmlydHVhbEV2ZW50LnRzXG5mdW5jdGlvbiBpc1ZpcnR1YWxDbGljayhldmVudCkge1xuICAvLyBGSVhNRTogRmlyZWZveCBpcyBub3cgZW1pdHRpbmcgYSBkZXByZWNhdGlvbiB3YXJuaW5nIGZvciBgbW96SW5wdXRTb3VyY2VgLlxuICAvLyBUcnkgdG8gZmluZCBhIHdvcmthcm91bmQgZm9yIHRoaXMuIGByZWFjdC1hcmlhYCBzb3VyY2Ugc3RpbGwgaGFzIHRoZSBjaGVjay5cbiAgaWYgKGV2ZW50Lm1veklucHV0U291cmNlID09PSAwICYmIGV2ZW50LmlzVHJ1c3RlZCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChpc0FuZHJvaWQoKSAmJiBldmVudC5wb2ludGVyVHlwZSkge1xuICAgIHJldHVybiBldmVudC50eXBlID09PSAnY2xpY2snICYmIGV2ZW50LmJ1dHRvbnMgPT09IDE7XG4gIH1cbiAgcmV0dXJuIGV2ZW50LmRldGFpbCA9PT0gMCAmJiAhZXZlbnQucG9pbnRlclR5cGU7XG59XG5mdW5jdGlvbiBpc1ZpcnR1YWxQb2ludGVyRXZlbnQoZXZlbnQpIHtcbiAgaWYgKGlzSlNET00oKSkgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gIWlzQW5kcm9pZCgpICYmIGV2ZW50LndpZHRoID09PSAwICYmIGV2ZW50LmhlaWdodCA9PT0gMCB8fCBpc0FuZHJvaWQoKSAmJiBldmVudC53aWR0aCA9PT0gMSAmJiBldmVudC5oZWlnaHQgPT09IDEgJiYgZXZlbnQucHJlc3N1cmUgPT09IDAgJiYgZXZlbnQuZGV0YWlsID09PSAwICYmIGV2ZW50LnBvaW50ZXJUeXBlID09PSAnbW91c2UnIHx8XG4gIC8vIGlPUyBWb2ljZU92ZXIgcmV0dXJucyAwLjMzM+KAoiBmb3Igd2lkdGgvaGVpZ2h0LlxuICBldmVudC53aWR0aCA8IDEgJiYgZXZlbnQuaGVpZ2h0IDwgMSAmJiBldmVudC5wcmVzc3VyZSA9PT0gMCAmJiBldmVudC5kZXRhaWwgPT09IDAgJiYgZXZlbnQucG9pbnRlclR5cGUgPT09ICd0b3VjaCc7XG59XG5mdW5jdGlvbiBpc1NhZmFyaSgpIHtcbiAgLy8gQ2hyb21lIERldlRvb2xzIGRvZXMgbm90IGNvbXBsYWluIGFib3V0IG5hdmlnYXRvci52ZW5kb3JcbiAgcmV0dXJuIC9hcHBsZS9pLnRlc3QobmF2aWdhdG9yLnZlbmRvcik7XG59XG5mdW5jdGlvbiBpc0FuZHJvaWQoKSB7XG4gIGNvbnN0IHJlID0gL2FuZHJvaWQvaTtcbiAgcmV0dXJuIHJlLnRlc3QoZ2V0UGxhdGZvcm0oKSkgfHwgcmUudGVzdChnZXRVc2VyQWdlbnQoKSk7XG59XG5mdW5jdGlvbiBpc01hYygpIHtcbiAgcmV0dXJuIGdldFBsYXRmb3JtKCkudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCdtYWMnKSAmJiAhbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzO1xufVxuZnVuY3Rpb24gaXNKU0RPTSgpIHtcbiAgcmV0dXJuIGdldFVzZXJBZ2VudCgpLmluY2x1ZGVzKCdqc2RvbS8nKTtcbn1cbmZ1bmN0aW9uIGlzTW91c2VMaWtlUG9pbnRlclR5cGUocG9pbnRlclR5cGUsIHN0cmljdCkge1xuICAvLyBPbiBzb21lIExpbnV4IG1hY2hpbmVzIHdpdGggQ2hyb21pdW0sIG1vdXNlIGlucHV0cyByZXR1cm4gYSBgcG9pbnRlclR5cGVgXG4gIC8vIG9mIFwicGVuXCI6IGh0dHBzOi8vZ2l0aHViLmNvbS9mbG9hdGluZy11aS9mbG9hdGluZy11aS9pc3N1ZXMvMjAxNVxuICBjb25zdCB2YWx1ZXMgPSBbJ21vdXNlJywgJ3BlbiddO1xuICBpZiAoIXN0cmljdCkge1xuICAgIHZhbHVlcy5wdXNoKCcnLCB1bmRlZmluZWQpO1xuICB9XG4gIHJldHVybiB2YWx1ZXMuaW5jbHVkZXMocG9pbnRlclR5cGUpO1xufVxuZnVuY3Rpb24gaXNSZWFjdEV2ZW50KGV2ZW50KSB7XG4gIHJldHVybiAnbmF0aXZlRXZlbnQnIGluIGV2ZW50O1xufVxuZnVuY3Rpb24gaXNSb290RWxlbWVudChlbGVtZW50KSB7XG4gIHJldHVybiBlbGVtZW50Lm1hdGNoZXMoJ2h0bWwsYm9keScpO1xufVxuZnVuY3Rpb24gZ2V0RG9jdW1lbnQobm9kZSkge1xuICByZXR1cm4gKG5vZGUgPT0gbnVsbCA/IHZvaWQgMCA6IG5vZGUub3duZXJEb2N1bWVudCkgfHwgZG9jdW1lbnQ7XG59XG5mdW5jdGlvbiBpc0V2ZW50VGFyZ2V0V2l0aGluKGV2ZW50LCBub2RlKSB7XG4gIGlmIChub2RlID09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKCdjb21wb3NlZFBhdGgnIGluIGV2ZW50KSB7XG4gICAgcmV0dXJuIGV2ZW50LmNvbXBvc2VkUGF0aCgpLmluY2x1ZGVzKG5vZGUpO1xuICB9XG5cbiAgLy8gVFMgdGhpbmtzIGBldmVudGAgaXMgb2YgdHlwZSBuZXZlciBhcyBpdCBhc3N1bWVzIGFsbCBicm93c2VycyBzdXBwb3J0IGNvbXBvc2VkUGF0aCwgYnV0IGJyb3dzZXJzIHdpdGhvdXQgc2hhZG93IGRvbSBkb24ndFxuICBjb25zdCBlID0gZXZlbnQ7XG4gIHJldHVybiBlLnRhcmdldCAhPSBudWxsICYmIG5vZGUuY29udGFpbnMoZS50YXJnZXQpO1xufVxuZnVuY3Rpb24gZ2V0VGFyZ2V0KGV2ZW50KSB7XG4gIGlmICgnY29tcG9zZWRQYXRoJyBpbiBldmVudCkge1xuICAgIHJldHVybiBldmVudC5jb21wb3NlZFBhdGgoKVswXTtcbiAgfVxuXG4gIC8vIFRTIHRoaW5rcyBgZXZlbnRgIGlzIG9mIHR5cGUgbmV2ZXIgYXMgaXQgYXNzdW1lcyBhbGwgYnJvd3NlcnMgc3VwcG9ydFxuICAvLyBgY29tcG9zZWRQYXRoKClgLCBidXQgYnJvd3NlcnMgd2l0aG91dCBzaGFkb3cgRE9NIGRvbid0LlxuICByZXR1cm4gZXZlbnQudGFyZ2V0O1xufVxuY29uc3QgVFlQRUFCTEVfU0VMRUNUT1IgPSBcImlucHV0Om5vdChbdHlwZT0naGlkZGVuJ10pOm5vdChbZGlzYWJsZWRdKSxcIiArIFwiW2NvbnRlbnRlZGl0YWJsZV06bm90KFtjb250ZW50ZWRpdGFibGU9J2ZhbHNlJ10pLHRleHRhcmVhOm5vdChbZGlzYWJsZWRdKVwiO1xuZnVuY3Rpb24gaXNUeXBlYWJsZUVsZW1lbnQoZWxlbWVudCkge1xuICByZXR1cm4gaXNIVE1MRWxlbWVudChlbGVtZW50KSAmJiBlbGVtZW50Lm1hdGNoZXMoVFlQRUFCTEVfU0VMRUNUT1IpO1xufVxuZnVuY3Rpb24gc3RvcEV2ZW50KGV2ZW50KSB7XG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xufVxuZnVuY3Rpb24gaXNUeXBlYWJsZUNvbWJvYm94KGVsZW1lbnQpIHtcbiAgaWYgKCFlbGVtZW50KSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiBlbGVtZW50LmdldEF0dHJpYnV0ZSgncm9sZScpID09PSAnY29tYm9ib3gnICYmIGlzVHlwZWFibGVFbGVtZW50KGVsZW1lbnQpO1xufVxuXG5leHBvcnQgeyBUWVBFQUJMRV9TRUxFQ1RPUiwgYWN0aXZlRWxlbWVudCwgY29udGFpbnMsIGdldERvY3VtZW50LCBnZXRQbGF0Zm9ybSwgZ2V0VGFyZ2V0LCBnZXRVc2VyQWdlbnQsIGlzQW5kcm9pZCwgaXNFdmVudFRhcmdldFdpdGhpbiwgaXNKU0RPTSwgaXNNYWMsIGlzTW91c2VMaWtlUG9pbnRlclR5cGUsIGlzUmVhY3RFdmVudCwgaXNSb290RWxlbWVudCwgaXNTYWZhcmksIGlzVHlwZWFibGVDb21ib2JveCwgaXNUeXBlYWJsZUVsZW1lbnQsIGlzVmlydHVhbENsaWNrLCBpc1ZpcnR1YWxQb2ludGVyRXZlbnQsIHN0b3BFdmVudCB9O1xuIiwiLyohXG4qIHRhYmJhYmxlIDYuMi4wXG4qIEBsaWNlbnNlIE1JVCwgaHR0cHM6Ly9naXRodWIuY29tL2ZvY3VzLXRyYXAvdGFiYmFibGUvYmxvYi9tYXN0ZXIvTElDRU5TRVxuKi9cbi8vIE5PVEU6IHNlcGFyYXRlIGA6bm90KClgIHNlbGVjdG9ycyBoYXMgYnJvYWRlciBicm93c2VyIHN1cHBvcnQgdGhhbiB0aGUgbmV3ZXJcbi8vICBgOm5vdChbaW5lcnRdLCBbaW5lcnRdICopYCAoRmViIDIwMjMpXG4vLyBDQVJFRlVMOiBKU0RvbSBkb2VzIG5vdCBzdXBwb3J0IGA6bm90KFtpbmVydF0gKilgIGFzIGEgc2VsZWN0b3I7IHVzaW5nIGl0IGNhdXNlc1xuLy8gIHRoZSBlbnRpcmUgcXVlcnkgdG8gZmFpbCwgcmVzdWx0aW5nIGluIG5vIG5vZGVzIGZvdW5kLCB3aGljaCB3aWxsIGJyZWFrIGEgbG90XG4vLyAgb2YgdGhpbmdzLi4uIHNvIHdlIGhhdmUgdG8gcmVseSBvbiBKUyB0byBpZGVudGlmeSBub2RlcyBpbnNpZGUgYW4gaW5lcnQgY29udGFpbmVyXG52YXIgY2FuZGlkYXRlU2VsZWN0b3JzID0gWydpbnB1dDpub3QoW2luZXJ0XSknLCAnc2VsZWN0Om5vdChbaW5lcnRdKScsICd0ZXh0YXJlYTpub3QoW2luZXJ0XSknLCAnYVtocmVmXTpub3QoW2luZXJ0XSknLCAnYnV0dG9uOm5vdChbaW5lcnRdKScsICdbdGFiaW5kZXhdOm5vdChzbG90KTpub3QoW2luZXJ0XSknLCAnYXVkaW9bY29udHJvbHNdOm5vdChbaW5lcnRdKScsICd2aWRlb1tjb250cm9sc106bm90KFtpbmVydF0pJywgJ1tjb250ZW50ZWRpdGFibGVdOm5vdChbY29udGVudGVkaXRhYmxlPVwiZmFsc2VcIl0pOm5vdChbaW5lcnRdKScsICdkZXRhaWxzPnN1bW1hcnk6Zmlyc3Qtb2YtdHlwZTpub3QoW2luZXJ0XSknLCAnZGV0YWlsczpub3QoW2luZXJ0XSknXTtcbnZhciBjYW5kaWRhdGVTZWxlY3RvciA9IC8qICNfX1BVUkVfXyAqL2NhbmRpZGF0ZVNlbGVjdG9ycy5qb2luKCcsJyk7XG52YXIgTm9FbGVtZW50ID0gdHlwZW9mIEVsZW1lbnQgPT09ICd1bmRlZmluZWQnO1xudmFyIG1hdGNoZXMgPSBOb0VsZW1lbnQgPyBmdW5jdGlvbiAoKSB7fSA6IEVsZW1lbnQucHJvdG90eXBlLm1hdGNoZXMgfHwgRWxlbWVudC5wcm90b3R5cGUubXNNYXRjaGVzU2VsZWN0b3IgfHwgRWxlbWVudC5wcm90b3R5cGUud2Via2l0TWF0Y2hlc1NlbGVjdG9yO1xudmFyIGdldFJvb3ROb2RlID0gIU5vRWxlbWVudCAmJiBFbGVtZW50LnByb3RvdHlwZS5nZXRSb290Tm9kZSA/IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gIHZhciBfZWxlbWVudCRnZXRSb290Tm9kZTtcbiAgcmV0dXJuIGVsZW1lbnQgPT09IG51bGwgfHwgZWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogKF9lbGVtZW50JGdldFJvb3ROb2RlID0gZWxlbWVudC5nZXRSb290Tm9kZSkgPT09IG51bGwgfHwgX2VsZW1lbnQkZ2V0Um9vdE5vZGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lbGVtZW50JGdldFJvb3ROb2RlLmNhbGwoZWxlbWVudCk7XG59IDogZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGVsZW1lbnQgPT09IG51bGwgfHwgZWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZWxlbWVudC5vd25lckRvY3VtZW50O1xufTtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIGEgbm9kZSBpcyBpbmVydCBvciBpbiBhbiBpbmVydCBhbmNlc3Rvci5cbiAqIEBwYXJhbSB7RWxlbWVudH0gW25vZGVdXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtsb29rVXBdIElmIHRydWUgYW5kIGBub2RlYCBpcyBub3QgaW5lcnQsIGxvb2tzIHVwIGF0IGFuY2VzdG9ycyB0b1xuICogIHNlZSBpZiBhbnkgb2YgdGhlbSBhcmUgaW5lcnQuIElmIGZhbHNlLCBvbmx5IGBub2RlYCBpdHNlbGYgaXMgY29uc2lkZXJlZC5cbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIGluZXJ0IGl0c2VsZiBvciBieSB3YXkgb2YgYmVpbmcgaW4gYW4gaW5lcnQgYW5jZXN0b3IuXG4gKiAgRmFsc2UgaWYgYG5vZGVgIGlzIGZhbHN5LlxuICovXG52YXIgaXNJbmVydCA9IGZ1bmN0aW9uIGlzSW5lcnQobm9kZSwgbG9va1VwKSB7XG4gIHZhciBfbm9kZSRnZXRBdHRyaWJ1dGU7XG4gIGlmIChsb29rVXAgPT09IHZvaWQgMCkge1xuICAgIGxvb2tVcCA9IHRydWU7XG4gIH1cbiAgLy8gQ0FSRUZVTDogSlNEb20gZG9lcyBub3Qgc3VwcG9ydCBpbmVydCBhdCBhbGwsIHNvIHdlIGNhbid0IHVzZSB0aGUgYEhUTUxFbGVtZW50LmluZXJ0YFxuICAvLyAgSlMgQVBJIHByb3BlcnR5OyB3ZSBoYXZlIHRvIGNoZWNrIHRoZSBhdHRyaWJ1dGUsIHdoaWNoIGNhbiBlaXRoZXIgYmUgZW1wdHkgb3IgJ3RydWUnO1xuICAvLyAgaWYgaXQncyBgbnVsbGAgKG5vdCBzcGVjaWZpZWQpIG9yICdmYWxzZScsIGl0J3MgYW4gYWN0aXZlIGVsZW1lbnRcbiAgdmFyIGluZXJ0QXR0ID0gbm9kZSA9PT0gbnVsbCB8fCBub2RlID09PSB2b2lkIDAgPyB2b2lkIDAgOiAoX25vZGUkZ2V0QXR0cmlidXRlID0gbm9kZS5nZXRBdHRyaWJ1dGUpID09PSBudWxsIHx8IF9ub2RlJGdldEF0dHJpYnV0ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX25vZGUkZ2V0QXR0cmlidXRlLmNhbGwobm9kZSwgJ2luZXJ0Jyk7XG4gIHZhciBpbmVydCA9IGluZXJ0QXR0ID09PSAnJyB8fCBpbmVydEF0dCA9PT0gJ3RydWUnO1xuXG4gIC8vIE5PVEU6IHRoaXMgY291bGQgYWxzbyBiZSBoYW5kbGVkIHdpdGggYG5vZGUubWF0Y2hlcygnW2luZXJ0XSwgOmlzKFtpbmVydF0gKiknKWBcbiAgLy8gIGlmIGl0IHdlcmVuJ3QgZm9yIGBtYXRjaGVzKClgIG5vdCBiZWluZyBhIGZ1bmN0aW9uIG9uIHNoYWRvdyByb290czsgdGhlIGZvbGxvd2luZ1xuICAvLyAgY29kZSB3b3JrcyBmb3IgYW55IGtpbmQgb2Ygbm9kZVxuICAvLyBDQVJFRlVMOiBKU0RvbSBkb2VzIG5vdCBhcHBlYXIgdG8gc3VwcG9ydCBjZXJ0YWluIHNlbGVjdG9ycyBsaWtlIGA6bm90KFtpbmVydF0gKilgXG4gIC8vICBzbyBpdCBsaWtlbHkgd291bGQgbm90IHN1cHBvcnQgYDppcyhbaW5lcnRdICopYCBlaXRoZXIuLi5cbiAgdmFyIHJlc3VsdCA9IGluZXJ0IHx8IGxvb2tVcCAmJiBub2RlICYmIGlzSW5lcnQobm9kZS5wYXJlbnROb2RlKTsgLy8gcmVjdXJzaXZlXG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBhIG5vZGUncyBjb250ZW50IGlzIGVkaXRhYmxlLlxuICogQHBhcmFtIHtFbGVtZW50fSBbbm9kZV1cbiAqIEByZXR1cm5zIFRydWUgaWYgaXQncyBjb250ZW50LWVkaXRhYmxlOyBmYWxzZSBpZiBpdCdzIG5vdCBvciBgbm9kZWAgaXMgZmFsc3kuXG4gKi9cbnZhciBpc0NvbnRlbnRFZGl0YWJsZSA9IGZ1bmN0aW9uIGlzQ29udGVudEVkaXRhYmxlKG5vZGUpIHtcbiAgdmFyIF9ub2RlJGdldEF0dHJpYnV0ZTI7XG4gIC8vIENBUkVGVUw6IEpTRG9tIGRvZXMgbm90IHN1cHBvcnQgdGhlIGBIVE1MRWxlbWVudC5pc0NvbnRlbnRFZGl0YWJsZWAgQVBJIHNvIHdlIGhhdmVcbiAgLy8gIHRvIHVzZSB0aGUgYXR0cmlidXRlIGRpcmVjdGx5IHRvIGNoZWNrIGZvciB0aGlzLCB3aGljaCBjYW4gZWl0aGVyIGJlIGVtcHR5IG9yICd0cnVlJztcbiAgLy8gIGlmIGl0J3MgYG51bGxgIChub3Qgc3BlY2lmaWVkKSBvciAnZmFsc2UnLCBpdCdzIGEgbm9uLWVkaXRhYmxlIGVsZW1lbnRcbiAgdmFyIGF0dFZhbHVlID0gbm9kZSA9PT0gbnVsbCB8fCBub2RlID09PSB2b2lkIDAgPyB2b2lkIDAgOiAoX25vZGUkZ2V0QXR0cmlidXRlMiA9IG5vZGUuZ2V0QXR0cmlidXRlKSA9PT0gbnVsbCB8fCBfbm9kZSRnZXRBdHRyaWJ1dGUyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfbm9kZSRnZXRBdHRyaWJ1dGUyLmNhbGwobm9kZSwgJ2NvbnRlbnRlZGl0YWJsZScpO1xuICByZXR1cm4gYXR0VmFsdWUgPT09ICcnIHx8IGF0dFZhbHVlID09PSAndHJ1ZSc7XG59O1xuXG4vKipcbiAqIEBwYXJhbSB7RWxlbWVudH0gZWwgY29udGFpbmVyIHRvIGNoZWNrIGluXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGluY2x1ZGVDb250YWluZXIgYWRkIGNvbnRhaW5lciB0byBjaGVja1xuICogQHBhcmFtIHsobm9kZTogRWxlbWVudCkgPT4gYm9vbGVhbn0gZmlsdGVyIGZpbHRlciBjYW5kaWRhdGVzXG4gKiBAcmV0dXJucyB7RWxlbWVudFtdfVxuICovXG52YXIgZ2V0Q2FuZGlkYXRlcyA9IGZ1bmN0aW9uIGdldENhbmRpZGF0ZXMoZWwsIGluY2x1ZGVDb250YWluZXIsIGZpbHRlcikge1xuICAvLyBldmVuIGlmIGBpbmNsdWRlQ29udGFpbmVyPWZhbHNlYCwgd2Ugc3RpbGwgaGF2ZSB0byBjaGVjayBpdCBmb3IgaW5lcnRuZXNzIGJlY2F1c2VcbiAgLy8gIGlmIGl0J3MgaW5lcnQsIGFsbCBpdHMgY2hpbGRyZW4gYXJlIGluZXJ0XG4gIGlmIChpc0luZXJ0KGVsKSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICB2YXIgY2FuZGlkYXRlcyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5hcHBseShlbC5xdWVyeVNlbGVjdG9yQWxsKGNhbmRpZGF0ZVNlbGVjdG9yKSk7XG4gIGlmIChpbmNsdWRlQ29udGFpbmVyICYmIG1hdGNoZXMuY2FsbChlbCwgY2FuZGlkYXRlU2VsZWN0b3IpKSB7XG4gICAgY2FuZGlkYXRlcy51bnNoaWZ0KGVsKTtcbiAgfVxuICBjYW5kaWRhdGVzID0gY2FuZGlkYXRlcy5maWx0ZXIoZmlsdGVyKTtcbiAgcmV0dXJuIGNhbmRpZGF0ZXM7XG59O1xuXG4vKipcbiAqIEBjYWxsYmFjayBHZXRTaGFkb3dSb290XG4gKiBAcGFyYW0ge0VsZW1lbnR9IGVsZW1lbnQgdG8gY2hlY2sgZm9yIHNoYWRvdyByb290XG4gKiBAcmV0dXJucyB7U2hhZG93Um9vdHxib29sZWFufSBTaGFkb3dSb290IGlmIGF2YWlsYWJsZSBvciBib29sZWFuIGluZGljYXRpbmcgaWYgYSBzaGFkb3dSb290IGlzIGF0dGFjaGVkIGJ1dCBub3QgYXZhaWxhYmxlLlxuICovXG5cbi8qKlxuICogQGNhbGxiYWNrIFNoYWRvd1Jvb3RGaWx0ZXJcbiAqIEBwYXJhbSB7RWxlbWVudH0gc2hhZG93SG9zdE5vZGUgdGhlIGVsZW1lbnQgd2hpY2ggY29udGFpbnMgc2hhZG93IGNvbnRlbnRcbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmIGEgc2hhZG93IHJvb3QgY291bGQgcG90ZW50aWFsbHkgY29udGFpbiB2YWxpZCBjYW5kaWRhdGVzLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gQ2FuZGlkYXRlU2NvcGVcbiAqIEBwcm9wZXJ0eSB7RWxlbWVudH0gc2NvcGVQYXJlbnQgY29udGFpbnMgaW5uZXIgY2FuZGlkYXRlc1xuICogQHByb3BlcnR5IHtFbGVtZW50W119IGNhbmRpZGF0ZXMgbGlzdCBvZiBjYW5kaWRhdGVzIGZvdW5kIGluIHRoZSBzY29wZSBwYXJlbnRcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEl0ZXJhdGl2ZU9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7R2V0U2hhZG93Um9vdHxib29sZWFufSBnZXRTaGFkb3dSb290IHRydWUgaWYgc2hhZG93IHN1cHBvcnQgaXMgZW5hYmxlZDsgZmFsc3kgaWYgbm90O1xuICogIGlmIGEgZnVuY3Rpb24sIGltcGxpZXMgc2hhZG93IHN1cHBvcnQgaXMgZW5hYmxlZCBhbmQgZWl0aGVyIHJldHVybnMgdGhlIHNoYWRvdyByb290IG9mIGFuIGVsZW1lbnRcbiAqICBvciBhIGJvb2xlYW4gc3RhdGluZyBpZiBpdCBoYXMgYW4gdW5kaXNjbG9zZWQgc2hhZG93IHJvb3RcbiAqIEBwcm9wZXJ0eSB7KG5vZGU6IEVsZW1lbnQpID0+IGJvb2xlYW59IGZpbHRlciBmaWx0ZXIgY2FuZGlkYXRlc1xuICogQHByb3BlcnR5IHtib29sZWFufSBmbGF0dGVuIGlmIHRydWUgdGhlbiByZXN1bHQgd2lsbCBmbGF0dGVuIGFueSBDYW5kaWRhdGVTY29wZSBpbnRvIHRoZSByZXR1cm5lZCBsaXN0XG4gKiBAcHJvcGVydHkge1NoYWRvd1Jvb3RGaWx0ZXJ9IHNoYWRvd1Jvb3RGaWx0ZXIgZmlsdGVyIHNoYWRvdyByb290cztcbiAqL1xuXG4vKipcbiAqIEBwYXJhbSB7RWxlbWVudFtdfSBlbGVtZW50cyBsaXN0IG9mIGVsZW1lbnQgY29udGFpbmVycyB0byBtYXRjaCBjYW5kaWRhdGVzIGZyb21cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5jbHVkZUNvbnRhaW5lciBhZGQgY29udGFpbmVyIGxpc3QgdG8gY2hlY2tcbiAqIEBwYXJhbSB7SXRlcmF0aXZlT3B0aW9uc30gb3B0aW9uc1xuICogQHJldHVybnMge0FycmF5LjxFbGVtZW50fENhbmRpZGF0ZVNjb3BlPn1cbiAqL1xudmFyIGdldENhbmRpZGF0ZXNJdGVyYXRpdmVseSA9IGZ1bmN0aW9uIGdldENhbmRpZGF0ZXNJdGVyYXRpdmVseShlbGVtZW50cywgaW5jbHVkZUNvbnRhaW5lciwgb3B0aW9ucykge1xuICB2YXIgY2FuZGlkYXRlcyA9IFtdO1xuICB2YXIgZWxlbWVudHNUb0NoZWNrID0gQXJyYXkuZnJvbShlbGVtZW50cyk7XG4gIHdoaWxlIChlbGVtZW50c1RvQ2hlY2subGVuZ3RoKSB7XG4gICAgdmFyIGVsZW1lbnQgPSBlbGVtZW50c1RvQ2hlY2suc2hpZnQoKTtcbiAgICBpZiAoaXNJbmVydChlbGVtZW50LCBmYWxzZSkpIHtcbiAgICAgIC8vIG5vIG5lZWQgdG8gbG9vayB1cCBzaW5jZSB3ZSdyZSBkcmlsbGluZyBkb3duXG4gICAgICAvLyBhbnl0aGluZyBpbnNpZGUgdGhpcyBjb250YWluZXIgd2lsbCBhbHNvIGJlIGluZXJ0XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKGVsZW1lbnQudGFnTmFtZSA9PT0gJ1NMT1QnKSB7XG4gICAgICAvLyBhZGQgc2hhZG93IGRvbSBzbG90IHNjb3BlIChzbG90IGl0c2VsZiBjYW5ub3QgYmUgZm9jdXNhYmxlKVxuICAgICAgdmFyIGFzc2lnbmVkID0gZWxlbWVudC5hc3NpZ25lZEVsZW1lbnRzKCk7XG4gICAgICB2YXIgY29udGVudCA9IGFzc2lnbmVkLmxlbmd0aCA/IGFzc2lnbmVkIDogZWxlbWVudC5jaGlsZHJlbjtcbiAgICAgIHZhciBuZXN0ZWRDYW5kaWRhdGVzID0gZ2V0Q2FuZGlkYXRlc0l0ZXJhdGl2ZWx5KGNvbnRlbnQsIHRydWUsIG9wdGlvbnMpO1xuICAgICAgaWYgKG9wdGlvbnMuZmxhdHRlbikge1xuICAgICAgICBjYW5kaWRhdGVzLnB1c2guYXBwbHkoY2FuZGlkYXRlcywgbmVzdGVkQ2FuZGlkYXRlcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjYW5kaWRhdGVzLnB1c2goe1xuICAgICAgICAgIHNjb3BlUGFyZW50OiBlbGVtZW50LFxuICAgICAgICAgIGNhbmRpZGF0ZXM6IG5lc3RlZENhbmRpZGF0ZXNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGNoZWNrIGNhbmRpZGF0ZSBlbGVtZW50XG4gICAgICB2YXIgdmFsaWRDYW5kaWRhdGUgPSBtYXRjaGVzLmNhbGwoZWxlbWVudCwgY2FuZGlkYXRlU2VsZWN0b3IpO1xuICAgICAgaWYgKHZhbGlkQ2FuZGlkYXRlICYmIG9wdGlvbnMuZmlsdGVyKGVsZW1lbnQpICYmIChpbmNsdWRlQ29udGFpbmVyIHx8ICFlbGVtZW50cy5pbmNsdWRlcyhlbGVtZW50KSkpIHtcbiAgICAgICAgY2FuZGlkYXRlcy5wdXNoKGVsZW1lbnQpO1xuICAgICAgfVxuXG4gICAgICAvLyBpdGVyYXRlIG92ZXIgc2hhZG93IGNvbnRlbnQgaWYgcG9zc2libGVcbiAgICAgIHZhciBzaGFkb3dSb290ID0gZWxlbWVudC5zaGFkb3dSb290IHx8XG4gICAgICAvLyBjaGVjayBmb3IgYW4gdW5kaXNjbG9zZWQgc2hhZG93XG4gICAgICB0eXBlb2Ygb3B0aW9ucy5nZXRTaGFkb3dSb290ID09PSAnZnVuY3Rpb24nICYmIG9wdGlvbnMuZ2V0U2hhZG93Um9vdChlbGVtZW50KTtcblxuICAgICAgLy8gbm8gaW5lcnQgbG9vayB1cCBiZWNhdXNlIHdlJ3JlIGFscmVhZHkgZHJpbGxpbmcgZG93biBhbmQgY2hlY2tpbmcgZm9yIGluZXJ0bmVzc1xuICAgICAgLy8gIG9uIHRoZSB3YXkgZG93biwgc28gYWxsIGNvbnRhaW5lcnMgdG8gdGhpcyByb290IG5vZGUgc2hvdWxkIGhhdmUgYWxyZWFkeSBiZWVuXG4gICAgICAvLyAgdmV0dGVkIGFzIG5vbi1pbmVydFxuICAgICAgdmFyIHZhbGlkU2hhZG93Um9vdCA9ICFpc0luZXJ0KHNoYWRvd1Jvb3QsIGZhbHNlKSAmJiAoIW9wdGlvbnMuc2hhZG93Um9vdEZpbHRlciB8fCBvcHRpb25zLnNoYWRvd1Jvb3RGaWx0ZXIoZWxlbWVudCkpO1xuICAgICAgaWYgKHNoYWRvd1Jvb3QgJiYgdmFsaWRTaGFkb3dSb290KSB7XG4gICAgICAgIC8vIGFkZCBzaGFkb3cgZG9tIHNjb3BlIElJRiBhIHNoYWRvdyByb290IG5vZGUgd2FzIGdpdmVuOyBvdGhlcndpc2UsIGFuIHVuZGlzY2xvc2VkXG4gICAgICAgIC8vICBzaGFkb3cgZXhpc3RzLCBzbyBsb29rIGF0IGxpZ2h0IGRvbSBjaGlsZHJlbiBhcyBmYWxsYmFjayBCVVQgY3JlYXRlIGEgc2NvcGUgZm9yIGFueVxuICAgICAgICAvLyAgY2hpbGQgY2FuZGlkYXRlcyBmb3VuZCBiZWNhdXNlIHRoZXkncmUgbGlrZWx5IHNsb3R0ZWQgZWxlbWVudHMgKGVsZW1lbnRzIHRoYXQgYXJlXG4gICAgICAgIC8vICBjaGlsZHJlbiBvZiB0aGUgd2ViIGNvbXBvbmVudCBlbGVtZW50ICh3aGljaCBoYXMgdGhlIHNoYWRvdyksIGluIHRoZSBsaWdodCBkb20sIGJ1dFxuICAgICAgICAvLyAgc2xvdHRlZCBzb21ld2hlcmUgX2luc2lkZV8gdGhlIHVuZGlzY2xvc2VkIHNoYWRvdykgLS0gdGhlIHNjb3BlIGlzIGNyZWF0ZWQgYmVsb3csXG4gICAgICAgIC8vICBfYWZ0ZXJfIHdlIHJldHVybiBmcm9tIHRoaXMgcmVjdXJzaXZlIGNhbGxcbiAgICAgICAgdmFyIF9uZXN0ZWRDYW5kaWRhdGVzID0gZ2V0Q2FuZGlkYXRlc0l0ZXJhdGl2ZWx5KHNoYWRvd1Jvb3QgPT09IHRydWUgPyBlbGVtZW50LmNoaWxkcmVuIDogc2hhZG93Um9vdC5jaGlsZHJlbiwgdHJ1ZSwgb3B0aW9ucyk7XG4gICAgICAgIGlmIChvcHRpb25zLmZsYXR0ZW4pIHtcbiAgICAgICAgICBjYW5kaWRhdGVzLnB1c2guYXBwbHkoY2FuZGlkYXRlcywgX25lc3RlZENhbmRpZGF0ZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNhbmRpZGF0ZXMucHVzaCh7XG4gICAgICAgICAgICBzY29wZVBhcmVudDogZWxlbWVudCxcbiAgICAgICAgICAgIGNhbmRpZGF0ZXM6IF9uZXN0ZWRDYW5kaWRhdGVzXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHRoZXJlJ3Mgbm90IHNoYWRvdyBzbyBqdXN0IGRpZyBpbnRvIHRoZSBlbGVtZW50J3MgKGxpZ2h0IGRvbSkgY2hpbGRyZW5cbiAgICAgICAgLy8gIF9fd2l0aG91dF9fIGdpdmluZyB0aGUgZWxlbWVudCBzcGVjaWFsIHNjb3BlIHRyZWF0bWVudFxuICAgICAgICBlbGVtZW50c1RvQ2hlY2sudW5zaGlmdC5hcHBseShlbGVtZW50c1RvQ2hlY2ssIGVsZW1lbnQuY2hpbGRyZW4pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gY2FuZGlkYXRlcztcbn07XG5cbi8qKlxuICogQHByaXZhdGVcbiAqIERldGVybWluZXMgaWYgdGhlIG5vZGUgaGFzIGFuIGV4cGxpY2l0bHkgc3BlY2lmaWVkIGB0YWJpbmRleGAgYXR0cmlidXRlLlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gbm9kZVxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgc287IGZhbHNlIGlmIG5vdC5cbiAqL1xudmFyIGhhc1RhYkluZGV4ID0gZnVuY3Rpb24gaGFzVGFiSW5kZXgobm9kZSkge1xuICByZXR1cm4gIWlzTmFOKHBhcnNlSW50KG5vZGUuZ2V0QXR0cmlidXRlKCd0YWJpbmRleCcpLCAxMCkpO1xufTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgdGhlIHRhYiBpbmRleCBvZiBhIGdpdmVuIG5vZGUuXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBub2RlXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBUYWIgb3JkZXIgKG5lZ2F0aXZlLCAwLCBvciBwb3NpdGl2ZSBudW1iZXIpLlxuICogQHRocm93cyB7RXJyb3J9IElmIGBub2RlYCBpcyBmYWxzeS5cbiAqL1xudmFyIGdldFRhYkluZGV4ID0gZnVuY3Rpb24gZ2V0VGFiSW5kZXgobm9kZSkge1xuICBpZiAoIW5vZGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIG5vZGUgcHJvdmlkZWQnKTtcbiAgfVxuICBpZiAobm9kZS50YWJJbmRleCA8IDApIHtcbiAgICAvLyBpbiBDaHJvbWUsIDxkZXRhaWxzLz4sIDxhdWRpbyBjb250cm9scy8+IGFuZCA8dmlkZW8gY29udHJvbHMvPiBlbGVtZW50cyBnZXQgYSBkZWZhdWx0XG4gICAgLy8gYHRhYkluZGV4YCBvZiAtMSB3aGVuIHRoZSAndGFiaW5kZXgnIGF0dHJpYnV0ZSBpc24ndCBzcGVjaWZpZWQgaW4gdGhlIERPTSxcbiAgICAvLyB5ZXQgdGhleSBhcmUgc3RpbGwgcGFydCBvZiB0aGUgcmVndWxhciB0YWIgb3JkZXI7IGluIEZGLCB0aGV5IGdldCBhIGRlZmF1bHRcbiAgICAvLyBgdGFiSW5kZXhgIG9mIDA7IHNpbmNlIENocm9tZSBzdGlsbCBwdXRzIHRob3NlIGVsZW1lbnRzIGluIHRoZSByZWd1bGFyIHRhYlxuICAgIC8vIG9yZGVyLCBjb25zaWRlciB0aGVpciB0YWIgaW5kZXggdG8gYmUgMC5cbiAgICAvLyBBbHNvIGJyb3dzZXJzIGRvIG5vdCByZXR1cm4gYHRhYkluZGV4YCBjb3JyZWN0bHkgZm9yIGNvbnRlbnRFZGl0YWJsZSBub2RlcztcbiAgICAvLyBzbyBpZiB0aGV5IGRvbid0IGhhdmUgYSB0YWJpbmRleCBhdHRyaWJ1dGUgc3BlY2lmaWNhbGx5IHNldCwgYXNzdW1lIGl0J3MgMC5cbiAgICBpZiAoKC9eKEFVRElPfFZJREVPfERFVEFJTFMpJC8udGVzdChub2RlLnRhZ05hbWUpIHx8IGlzQ29udGVudEVkaXRhYmxlKG5vZGUpKSAmJiAhaGFzVGFiSW5kZXgobm9kZSkpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbm9kZS50YWJJbmRleDtcbn07XG5cbi8qKlxuICogRGV0ZXJtaW5lIHRoZSB0YWIgaW5kZXggb2YgYSBnaXZlbiBub2RlIF9fZm9yIHNvcnQgb3JkZXIgcHVycG9zZXNfXy5cbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IG5vZGVcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzU2NvcGVdIFRydWUgZm9yIGEgY3VzdG9tIGVsZW1lbnQgd2l0aCBzaGFkb3cgcm9vdCBvciBzbG90IHRoYXQsIGJ5IGRlZmF1bHQsXG4gKiAgaGFzIHRhYkluZGV4IC0xLCBidXQgbmVlZHMgdG8gYmUgc29ydGVkIGJ5IGRvY3VtZW50IG9yZGVyIGluIG9yZGVyIGZvciBpdHMgY29udGVudCB0byBiZVxuICogIGluc2VydGVkIGludG8gdGhlIGNvcnJlY3Qgc29ydCBwb3NpdGlvbi5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFRhYiBvcmRlciAobmVnYXRpdmUsIDAsIG9yIHBvc2l0aXZlIG51bWJlcikuXG4gKi9cbnZhciBnZXRTb3J0T3JkZXJUYWJJbmRleCA9IGZ1bmN0aW9uIGdldFNvcnRPcmRlclRhYkluZGV4KG5vZGUsIGlzU2NvcGUpIHtcbiAgdmFyIHRhYkluZGV4ID0gZ2V0VGFiSW5kZXgobm9kZSk7XG4gIGlmICh0YWJJbmRleCA8IDAgJiYgaXNTY29wZSAmJiAhaGFzVGFiSW5kZXgobm9kZSkpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuICByZXR1cm4gdGFiSW5kZXg7XG59O1xudmFyIHNvcnRPcmRlcmVkVGFiYmFibGVzID0gZnVuY3Rpb24gc29ydE9yZGVyZWRUYWJiYWJsZXMoYSwgYikge1xuICByZXR1cm4gYS50YWJJbmRleCA9PT0gYi50YWJJbmRleCA/IGEuZG9jdW1lbnRPcmRlciAtIGIuZG9jdW1lbnRPcmRlciA6IGEudGFiSW5kZXggLSBiLnRhYkluZGV4O1xufTtcbnZhciBpc0lucHV0ID0gZnVuY3Rpb24gaXNJbnB1dChub2RlKSB7XG4gIHJldHVybiBub2RlLnRhZ05hbWUgPT09ICdJTlBVVCc7XG59O1xudmFyIGlzSGlkZGVuSW5wdXQgPSBmdW5jdGlvbiBpc0hpZGRlbklucHV0KG5vZGUpIHtcbiAgcmV0dXJuIGlzSW5wdXQobm9kZSkgJiYgbm9kZS50eXBlID09PSAnaGlkZGVuJztcbn07XG52YXIgaXNEZXRhaWxzV2l0aFN1bW1hcnkgPSBmdW5jdGlvbiBpc0RldGFpbHNXaXRoU3VtbWFyeShub2RlKSB7XG4gIHZhciByID0gbm9kZS50YWdOYW1lID09PSAnREVUQUlMUycgJiYgQXJyYXkucHJvdG90eXBlLnNsaWNlLmFwcGx5KG5vZGUuY2hpbGRyZW4pLnNvbWUoZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0dXJuIGNoaWxkLnRhZ05hbWUgPT09ICdTVU1NQVJZJztcbiAgfSk7XG4gIHJldHVybiByO1xufTtcbnZhciBnZXRDaGVja2VkUmFkaW8gPSBmdW5jdGlvbiBnZXRDaGVja2VkUmFkaW8obm9kZXMsIGZvcm0pIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChub2Rlc1tpXS5jaGVja2VkICYmIG5vZGVzW2ldLmZvcm0gPT09IGZvcm0pIHtcbiAgICAgIHJldHVybiBub2Rlc1tpXTtcbiAgICB9XG4gIH1cbn07XG52YXIgaXNUYWJiYWJsZVJhZGlvID0gZnVuY3Rpb24gaXNUYWJiYWJsZVJhZGlvKG5vZGUpIHtcbiAgaWYgKCFub2RlLm5hbWUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICB2YXIgcmFkaW9TY29wZSA9IG5vZGUuZm9ybSB8fCBnZXRSb290Tm9kZShub2RlKTtcbiAgdmFyIHF1ZXJ5UmFkaW9zID0gZnVuY3Rpb24gcXVlcnlSYWRpb3MobmFtZSkge1xuICAgIHJldHVybiByYWRpb1Njb3BlLnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W3R5cGU9XCJyYWRpb1wiXVtuYW1lPVwiJyArIG5hbWUgKyAnXCJdJyk7XG4gIH07XG4gIHZhciByYWRpb1NldDtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB3aW5kb3cuQ1NTICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2Ygd2luZG93LkNTUy5lc2NhcGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByYWRpb1NldCA9IHF1ZXJ5UmFkaW9zKHdpbmRvdy5DU1MuZXNjYXBlKG5vZGUubmFtZSkpO1xuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICByYWRpb1NldCA9IHF1ZXJ5UmFkaW9zKG5vZGUubmFtZSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5lcnJvcignTG9va3MgbGlrZSB5b3UgaGF2ZSBhIHJhZGlvIGJ1dHRvbiB3aXRoIGEgbmFtZSBhdHRyaWJ1dGUgY29udGFpbmluZyBpbnZhbGlkIENTUyBzZWxlY3RvciBjaGFyYWN0ZXJzIGFuZCBuZWVkIHRoZSBDU1MuZXNjYXBlIHBvbHlmaWxsOiAlcycsIGVyci5tZXNzYWdlKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgdmFyIGNoZWNrZWQgPSBnZXRDaGVja2VkUmFkaW8ocmFkaW9TZXQsIG5vZGUuZm9ybSk7XG4gIHJldHVybiAhY2hlY2tlZCB8fCBjaGVja2VkID09PSBub2RlO1xufTtcbnZhciBpc1JhZGlvID0gZnVuY3Rpb24gaXNSYWRpbyhub2RlKSB7XG4gIHJldHVybiBpc0lucHV0KG5vZGUpICYmIG5vZGUudHlwZSA9PT0gJ3JhZGlvJztcbn07XG52YXIgaXNOb25UYWJiYWJsZVJhZGlvID0gZnVuY3Rpb24gaXNOb25UYWJiYWJsZVJhZGlvKG5vZGUpIHtcbiAgcmV0dXJuIGlzUmFkaW8obm9kZSkgJiYgIWlzVGFiYmFibGVSYWRpbyhub2RlKTtcbn07XG5cbi8vIGRldGVybWluZXMgaWYgYSBub2RlIGlzIHVsdGltYXRlbHkgYXR0YWNoZWQgdG8gdGhlIHdpbmRvdydzIGRvY3VtZW50XG52YXIgaXNOb2RlQXR0YWNoZWQgPSBmdW5jdGlvbiBpc05vZGVBdHRhY2hlZChub2RlKSB7XG4gIHZhciBfbm9kZVJvb3Q7XG4gIC8vIFRoZSByb290IG5vZGUgaXMgdGhlIHNoYWRvdyByb290IGlmIHRoZSBub2RlIGlzIGluIGEgc2hhZG93IERPTTsgc29tZSBkb2N1bWVudCBvdGhlcndpc2VcbiAgLy8gIChidXQgTk9UIF90aGVfIGRvY3VtZW50OyBzZWUgc2Vjb25kICdJZicgY29tbWVudCBiZWxvdyBmb3IgbW9yZSkuXG4gIC8vIElmIHJvb3ROb2RlIGlzIHNoYWRvdyByb290LCBpdCdsbCBoYXZlIGEgaG9zdCwgd2hpY2ggaXMgdGhlIGVsZW1lbnQgdG8gd2hpY2ggdGhlIHNoYWRvd1xuICAvLyAgaXMgYXR0YWNoZWQsIGFuZCB0aGUgb25lIHdlIG5lZWQgdG8gY2hlY2sgaWYgaXQncyBpbiB0aGUgZG9jdW1lbnQgb3Igbm90IChiZWNhdXNlIHRoZVxuICAvLyAgc2hhZG93LCBhbmQgYWxsIG5vZGVzIGl0IGNvbnRhaW5zLCBpcyBuZXZlciBjb25zaWRlcmVkIGluIHRoZSBkb2N1bWVudCBzaW5jZSBzaGFkb3dzXG4gIC8vICBiZWhhdmUgbGlrZSBzZWxmLWNvbnRhaW5lZCBET01zOyBidXQgaWYgdGhlIHNoYWRvdydzIEhPU1QsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIGRvY3VtZW50LFxuICAvLyAgaXMgaGlkZGVuLCBvciBpcyBub3QgaW4gdGhlIGRvY3VtZW50IGl0c2VsZiBidXQgaXMgZGV0YWNoZWQsIGl0IHdpbGwgYWZmZWN0IHRoZSBzaGFkb3cnc1xuICAvLyAgdmlzaWJpbGl0eSwgaW5jbHVkaW5nIGFsbCB0aGUgbm9kZXMgaXQgY29udGFpbnMpLiBUaGUgaG9zdCBjb3VsZCBiZSBhbnkgbm9ybWFsIG5vZGUsXG4gIC8vICBvciBhIGN1c3RvbSBlbGVtZW50IChpLmUuIHdlYiBjb21wb25lbnQpLiBFaXRoZXIgd2F5LCB0aGF0J3MgdGhlIG9uZSB0aGF0IGlzIGNvbnNpZGVyZWRcbiAgLy8gIHBhcnQgb2YgdGhlIGRvY3VtZW50LCBub3QgdGhlIHNoYWRvdyByb290LCBub3IgYW55IG9mIGl0cyBjaGlsZHJlbiAoaS5lLiB0aGUgbm9kZSBiZWluZ1xuICAvLyAgdGVzdGVkKS5cbiAgLy8gVG8gZnVydGhlciBjb21wbGljYXRlIHRoaW5ncywgd2UgaGF2ZSB0byBsb29rIGFsbCB0aGUgd2F5IHVwIHVudGlsIHdlIGZpbmQgYSBzaGFkb3cgSE9TVFxuICAvLyAgdGhhdCBpcyBhdHRhY2hlZCAob3IgZmluZCBub25lKSBiZWNhdXNlIHRoZSBub2RlIG1pZ2h0IGJlIGluIG5lc3RlZCBzaGFkb3dzLi4uXG4gIC8vIElmIHJvb3ROb2RlIGlzIG5vdCBhIHNoYWRvdyByb290LCBpdCB3b24ndCBoYXZlIGEgaG9zdCwgYW5kIHNvIHJvb3ROb2RlIHNob3VsZCBiZSB0aGVcbiAgLy8gIGRvY3VtZW50IChwZXIgdGhlIGRvY3MpIGFuZCB3aGlsZSBpdCdzIGEgRG9jdW1lbnQtdHlwZSBvYmplY3QsIHRoYXQgZG9jdW1lbnQgZG9lcyBub3RcbiAgLy8gIGFwcGVhciB0byBiZSB0aGUgc2FtZSBhcyB0aGUgbm9kZSdzIGBvd25lckRvY3VtZW50YCBmb3Igc29tZSByZWFzb24sIHNvIGl0J3Mgc2FmZXJcbiAgLy8gIHRvIGlnbm9yZSB0aGUgcm9vdE5vZGUgYXQgdGhpcyBwb2ludCwgYW5kIHVzZSBgbm9kZS5vd25lckRvY3VtZW50YC4gT3RoZXJ3aXNlLFxuICAvLyAgdXNpbmcgYHJvb3ROb2RlLmNvbnRhaW5zKG5vZGUpYCB3aWxsIF9hbHdheXNfIGJlIHRydWUgd2UnbGwgZ2V0IGZhbHNlLXBvc2l0aXZlcyB3aGVuXG4gIC8vICBub2RlIGlzIGFjdHVhbGx5IGRldGFjaGVkLlxuICAvLyBOT1RFOiBJZiBgbm9kZVJvb3RIb3N0YCBvciBgbm9kZWAgaGFwcGVucyB0byBiZSB0aGUgYGRvY3VtZW50YCBpdHNlbGYgKHdoaWNoIGlzIHBvc3NpYmxlXG4gIC8vICBpZiBhIHRhYmJhYmxlL2ZvY3VzYWJsZSBub2RlIHdhcyBxdWlja2x5IGFkZGVkIHRvIHRoZSBET00sIGZvY3VzZWQsIGFuZCB0aGVuIHJlbW92ZWRcbiAgLy8gIGZyb20gdGhlIERPTSBhcyBpbiBodHRwczovL2dpdGh1Yi5jb20vZm9jdXMtdHJhcC9mb2N1cy10cmFwLXJlYWN0L2lzc3Vlcy85MDUpLCB0aGVuXG4gIC8vICBgb3duZXJEb2N1bWVudGAgd2lsbCBiZSBgbnVsbGAsIGhlbmNlIHRoZSBvcHRpb25hbCBjaGFpbmluZyBvbiBpdC5cbiAgdmFyIG5vZGVSb290ID0gbm9kZSAmJiBnZXRSb290Tm9kZShub2RlKTtcbiAgdmFyIG5vZGVSb290SG9zdCA9IChfbm9kZVJvb3QgPSBub2RlUm9vdCkgPT09IG51bGwgfHwgX25vZGVSb290ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfbm9kZVJvb3QuaG9zdDtcblxuICAvLyBpbiBzb21lIGNhc2VzLCBhIGRldGFjaGVkIG5vZGUgd2lsbCByZXR1cm4gaXRzZWxmIGFzIHRoZSByb290IGluc3RlYWQgb2YgYSBkb2N1bWVudCBvclxuICAvLyAgc2hhZG93IHJvb3Qgb2JqZWN0LCBpbiB3aGljaCBjYXNlLCB3ZSBzaG91bGRuJ3QgdHJ5IHRvIGxvb2sgZnVydGhlciB1cCB0aGUgaG9zdCBjaGFpblxuICB2YXIgYXR0YWNoZWQgPSBmYWxzZTtcbiAgaWYgKG5vZGVSb290ICYmIG5vZGVSb290ICE9PSBub2RlKSB7XG4gICAgdmFyIF9ub2RlUm9vdEhvc3QsIF9ub2RlUm9vdEhvc3Qkb3duZXJEbywgX25vZGUkb3duZXJEb2N1bWVudDtcbiAgICBhdHRhY2hlZCA9ICEhKChfbm9kZVJvb3RIb3N0ID0gbm9kZVJvb3RIb3N0KSAhPT0gbnVsbCAmJiBfbm9kZVJvb3RIb3N0ICE9PSB2b2lkIDAgJiYgKF9ub2RlUm9vdEhvc3Qkb3duZXJEbyA9IF9ub2RlUm9vdEhvc3Qub3duZXJEb2N1bWVudCkgIT09IG51bGwgJiYgX25vZGVSb290SG9zdCRvd25lckRvICE9PSB2b2lkIDAgJiYgX25vZGVSb290SG9zdCRvd25lckRvLmNvbnRhaW5zKG5vZGVSb290SG9zdCkgfHwgbm9kZSAhPT0gbnVsbCAmJiBub2RlICE9PSB2b2lkIDAgJiYgKF9ub2RlJG93bmVyRG9jdW1lbnQgPSBub2RlLm93bmVyRG9jdW1lbnQpICE9PSBudWxsICYmIF9ub2RlJG93bmVyRG9jdW1lbnQgIT09IHZvaWQgMCAmJiBfbm9kZSRvd25lckRvY3VtZW50LmNvbnRhaW5zKG5vZGUpKTtcbiAgICB3aGlsZSAoIWF0dGFjaGVkICYmIG5vZGVSb290SG9zdCkge1xuICAgICAgdmFyIF9ub2RlUm9vdDIsIF9ub2RlUm9vdEhvc3QyLCBfbm9kZVJvb3RIb3N0MiRvd25lckQ7XG4gICAgICAvLyBzaW5jZSBpdCdzIG5vdCBhdHRhY2hlZCBhbmQgd2UgaGF2ZSBhIHJvb3QgaG9zdCwgdGhlIG5vZGUgTVVTVCBiZSBpbiBhIG5lc3RlZCBzaGFkb3cgRE9NLFxuICAgICAgLy8gIHdoaWNoIG1lYW5zIHdlIG5lZWQgdG8gZ2V0IHRoZSBob3N0J3MgaG9zdCBhbmQgY2hlY2sgaWYgdGhhdCBwYXJlbnQgaG9zdCBpcyBjb250YWluZWRcbiAgICAgIC8vICBpbiAoaS5lLiBhdHRhY2hlZCB0bykgdGhlIGRvY3VtZW50XG4gICAgICBub2RlUm9vdCA9IGdldFJvb3ROb2RlKG5vZGVSb290SG9zdCk7XG4gICAgICBub2RlUm9vdEhvc3QgPSAoX25vZGVSb290MiA9IG5vZGVSb290KSA9PT0gbnVsbCB8fCBfbm9kZVJvb3QyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfbm9kZVJvb3QyLmhvc3Q7XG4gICAgICBhdHRhY2hlZCA9ICEhKChfbm9kZVJvb3RIb3N0MiA9IG5vZGVSb290SG9zdCkgIT09IG51bGwgJiYgX25vZGVSb290SG9zdDIgIT09IHZvaWQgMCAmJiAoX25vZGVSb290SG9zdDIkb3duZXJEID0gX25vZGVSb290SG9zdDIub3duZXJEb2N1bWVudCkgIT09IG51bGwgJiYgX25vZGVSb290SG9zdDIkb3duZXJEICE9PSB2b2lkIDAgJiYgX25vZGVSb290SG9zdDIkb3duZXJELmNvbnRhaW5zKG5vZGVSb290SG9zdCkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYXR0YWNoZWQ7XG59O1xudmFyIGlzWmVyb0FyZWEgPSBmdW5jdGlvbiBpc1plcm9BcmVhKG5vZGUpIHtcbiAgdmFyIF9ub2RlJGdldEJvdW5kaW5nQ2xpZSA9IG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgd2lkdGggPSBfbm9kZSRnZXRCb3VuZGluZ0NsaWUud2lkdGgsXG4gICAgaGVpZ2h0ID0gX25vZGUkZ2V0Qm91bmRpbmdDbGllLmhlaWdodDtcbiAgcmV0dXJuIHdpZHRoID09PSAwICYmIGhlaWdodCA9PT0gMDtcbn07XG52YXIgaXNIaWRkZW4gPSBmdW5jdGlvbiBpc0hpZGRlbihub2RlLCBfcmVmKSB7XG4gIHZhciBkaXNwbGF5Q2hlY2sgPSBfcmVmLmRpc3BsYXlDaGVjayxcbiAgICBnZXRTaGFkb3dSb290ID0gX3JlZi5nZXRTaGFkb3dSb290O1xuICAvLyBOT1RFOiB2aXNpYmlsaXR5IHdpbGwgYmUgYHVuZGVmaW5lZGAgaWYgbm9kZSBpcyBkZXRhY2hlZCBmcm9tIHRoZSBkb2N1bWVudFxuICAvLyAgKHNlZSBub3RlcyBhYm91dCB0aGlzIGZ1cnRoZXIgZG93biksIHdoaWNoIG1lYW5zIHdlIHdpbGwgY29uc2lkZXIgaXQgdmlzaWJsZVxuICAvLyAgKHRoaXMgaXMgbGVnYWN5IGJlaGF2aW9yIGZyb20gYSB2ZXJ5IGxvbmcgd2F5IGJhY2spXG4gIC8vIE5PVEU6IHdlIGNoZWNrIHRoaXMgcmVnYXJkbGVzcyBvZiBgZGlzcGxheUNoZWNrPVwibm9uZVwiYCBiZWNhdXNlIHRoaXMgaXMgYVxuICAvLyAgX3Zpc2liaWxpdHlfIGNoZWNrLCBub3QgYSBfZGlzcGxheV8gY2hlY2tcbiAgaWYgKGdldENvbXB1dGVkU3R5bGUobm9kZSkudmlzaWJpbGl0eSA9PT0gJ2hpZGRlbicpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICB2YXIgaXNEaXJlY3RTdW1tYXJ5ID0gbWF0Y2hlcy5jYWxsKG5vZGUsICdkZXRhaWxzPnN1bW1hcnk6Zmlyc3Qtb2YtdHlwZScpO1xuICB2YXIgbm9kZVVuZGVyRGV0YWlscyA9IGlzRGlyZWN0U3VtbWFyeSA/IG5vZGUucGFyZW50RWxlbWVudCA6IG5vZGU7XG4gIGlmIChtYXRjaGVzLmNhbGwobm9kZVVuZGVyRGV0YWlscywgJ2RldGFpbHM6bm90KFtvcGVuXSkgKicpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKCFkaXNwbGF5Q2hlY2sgfHwgZGlzcGxheUNoZWNrID09PSAnZnVsbCcgfHwgZGlzcGxheUNoZWNrID09PSAnbGVnYWN5LWZ1bGwnKSB7XG4gICAgaWYgKHR5cGVvZiBnZXRTaGFkb3dSb290ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBmaWd1cmUgb3V0IGlmIHdlIHNob3VsZCBjb25zaWRlciB0aGUgbm9kZSB0byBiZSBpbiBhbiB1bmRpc2Nsb3NlZCBzaGFkb3cgYW5kIHVzZSB0aGVcbiAgICAgIC8vICAnbm9uLXplcm8tYXJlYScgZmFsbGJhY2tcbiAgICAgIHZhciBvcmlnaW5hbE5vZGUgPSBub2RlO1xuICAgICAgd2hpbGUgKG5vZGUpIHtcbiAgICAgICAgdmFyIHBhcmVudEVsZW1lbnQgPSBub2RlLnBhcmVudEVsZW1lbnQ7XG4gICAgICAgIHZhciByb290Tm9kZSA9IGdldFJvb3ROb2RlKG5vZGUpO1xuICAgICAgICBpZiAocGFyZW50RWxlbWVudCAmJiAhcGFyZW50RWxlbWVudC5zaGFkb3dSb290ICYmIGdldFNoYWRvd1Jvb3QocGFyZW50RWxlbWVudCkgPT09IHRydWUgLy8gY2hlY2sgaWYgdGhlcmUncyBhbiB1bmRpc2Nsb3NlZCBzaGFkb3dcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gbm9kZSBoYXMgYW4gdW5kaXNjbG9zZWQgc2hhZG93IHdoaWNoIG1lYW5zIHdlIGNhbiBvbmx5IHRyZWF0IGl0IGFzIGEgYmxhY2sgYm94LCBzbyB3ZVxuICAgICAgICAgIC8vICBmYWxsIGJhY2sgdG8gYSBub24temVyby1hcmVhIHRlc3RcbiAgICAgICAgICByZXR1cm4gaXNaZXJvQXJlYShub2RlKTtcbiAgICAgICAgfSBlbHNlIGlmIChub2RlLmFzc2lnbmVkU2xvdCkge1xuICAgICAgICAgIC8vIGl0ZXJhdGUgdXAgc2xvdFxuICAgICAgICAgIG5vZGUgPSBub2RlLmFzc2lnbmVkU2xvdDtcbiAgICAgICAgfSBlbHNlIGlmICghcGFyZW50RWxlbWVudCAmJiByb290Tm9kZSAhPT0gbm9kZS5vd25lckRvY3VtZW50KSB7XG4gICAgICAgICAgLy8gY3Jvc3Mgc2hhZG93IGJvdW5kYXJ5XG4gICAgICAgICAgbm9kZSA9IHJvb3ROb2RlLmhvc3Q7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gaXRlcmF0ZSB1cCBub3JtYWwgZG9tXG4gICAgICAgICAgbm9kZSA9IHBhcmVudEVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG5vZGUgPSBvcmlnaW5hbE5vZGU7XG4gICAgfVxuICAgIC8vIGVsc2UsIGBnZXRTaGFkb3dSb290YCBtaWdodCBiZSB0cnVlLCBidXQgYWxsIHRoYXQgZG9lcyBpcyBlbmFibGUgc2hhZG93IERPTSBzdXBwb3J0XG4gICAgLy8gIChpLmUuIGl0IGRvZXMgbm90IGFsc28gcHJlc3VtZSB0aGF0IGFsbCBub2RlcyBtaWdodCBoYXZlIHVuZGlzY2xvc2VkIHNoYWRvd3MpOyBvclxuICAgIC8vICBpdCBtaWdodCBiZSBhIGZhbHN5IHZhbHVlLCB3aGljaCBtZWFucyBzaGFkb3cgRE9NIHN1cHBvcnQgaXMgZGlzYWJsZWRcblxuICAgIC8vIFNpbmNlIHdlIGRpZG4ndCBmaW5kIGl0IHNpdHRpbmcgaW4gYW4gdW5kaXNjbG9zZWQgc2hhZG93IChvciBzaGFkb3dzIGFyZSBkaXNhYmxlZClcbiAgICAvLyAgbm93IHdlIGNhbiBqdXN0IHRlc3QgdG8gc2VlIGlmIGl0IHdvdWxkIG5vcm1hbGx5IGJlIHZpc2libGUgb3Igbm90LCBwcm92aWRlZCBpdCdzXG4gICAgLy8gIGF0dGFjaGVkIHRvIHRoZSBtYWluIGRvY3VtZW50LlxuICAgIC8vIE5PVEU6IFdlIG11c3QgY29uc2lkZXIgY2FzZSB3aGVyZSBub2RlIGlzIGluc2lkZSBhIHNoYWRvdyBET00gYW5kIGdpdmVuIGRpcmVjdGx5IHRvXG4gICAgLy8gIGBpc1RhYmJhYmxlKClgIG9yIGBpc0ZvY3VzYWJsZSgpYCAtLSByZWdhcmRsZXNzIG9mIGBnZXRTaGFkb3dSb290YCBvcHRpb24gc2V0dGluZy5cblxuICAgIGlmIChpc05vZGVBdHRhY2hlZChub2RlKSkge1xuICAgICAgLy8gdGhpcyB3b3JrcyB3aGVyZXZlciB0aGUgbm9kZSBpczogaWYgdGhlcmUncyBhdCBsZWFzdCBvbmUgY2xpZW50IHJlY3QsIGl0J3NcbiAgICAgIC8vICBzb21laG93IGRpc3BsYXllZDsgaXQgYWxzbyBjb3ZlcnMgdGhlIENTUyAnZGlzcGxheTogY29udGVudHMnIGNhc2Ugd2hlcmUgdGhlXG4gICAgICAvLyAgbm9kZSBpdHNlbGYgaXMgaGlkZGVuIGluIHBsYWNlIG9mIGl0cyBjb250ZW50czsgYW5kIHRoZXJlJ3Mgbm8gbmVlZCB0byBzZWFyY2hcbiAgICAgIC8vICB1cCB0aGUgaGllcmFyY2h5IGVpdGhlclxuICAgICAgcmV0dXJuICFub2RlLmdldENsaWVudFJlY3RzKCkubGVuZ3RoO1xuICAgIH1cblxuICAgIC8vIEVsc2UsIHRoZSBub2RlIGlzbid0IGF0dGFjaGVkIHRvIHRoZSBkb2N1bWVudCwgd2hpY2ggbWVhbnMgdGhlIGBnZXRDbGllbnRSZWN0cygpYFxuICAgIC8vICBBUEkgd2lsbCBfX2Fsd2F5c19fIHJldHVybiB6ZXJvIHJlY3RzICh0aGlzIGNhbiBoYXBwZW4sIGZvciBleGFtcGxlLCBpZiBSZWFjdFxuICAgIC8vICBpcyB1c2VkIHRvIHJlbmRlciBub2RlcyBvbnRvIGEgZGV0YWNoZWQgdHJlZSwgYXMgY29uZmlybWVkIGluIHRoaXMgdGhyZWFkOlxuICAgIC8vICBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzkxMTcjaXNzdWVjb21tZW50LTI4NDIyODg3MClcbiAgICAvL1xuICAgIC8vIEl0IGFsc28gbWVhbnMgdGhhdCBldmVuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG5vZGUpLmRpc3BsYXkgd2lsbCByZXR1cm4gYHVuZGVmaW5lZGBcbiAgICAvLyAgYmVjYXVzZSBzdHlsZXMgYXJlIG9ubHkgY29tcHV0ZWQgZm9yIG5vZGVzIHRoYXQgYXJlIGluIHRoZSBkb2N1bWVudC5cbiAgICAvL1xuICAgIC8vIE5PVEU6IFRISVMgSEFTIEJFRU4gVEhFIENBU0UgRk9SIFlFQVJTLiBJdCBpcyBub3QgbmV3LCBub3IgaXMgaXQgY2F1c2VkIGJ5IHRhYmJhYmxlXG4gICAgLy8gIHNvbWVob3cuIFRob3VnaCBpdCB3YXMgbmV2ZXIgc3RhdGVkIG9mZmljaWFsbHksIGFueW9uZSB3aG8gaGFzIGV2ZXIgdXNlZCB0YWJiYWJsZVxuICAgIC8vICBBUElzIG9uIG5vZGVzIGluIGRldGFjaGVkIGNvbnRhaW5lcnMgaGFzIGFjdHVhbGx5IGltcGxpY2l0bHkgdXNlZCB0YWJiYWJsZSBpbiB3aGF0XG4gICAgLy8gIHdhcyBsYXRlciAoYXMgb2YgdjUuMi4wIG9uIEFwciA5LCAyMDIxKSBjYWxsZWQgYGRpc3BsYXlDaGVjaz1cIm5vbmVcImAgbW9kZSAtLSBlc3NlbnRpYWxseVxuICAgIC8vICBjb25zaWRlcmluZyBfX2V2ZXJ5dGhpbmdfXyB0byBiZSB2aXNpYmxlIGJlY2F1c2Ugb2YgdGhlIGlubmFiaWxpdHkgdG8gZGV0ZXJtaW5lIHN0eWxlcy5cbiAgICAvL1xuICAgIC8vIHY2LjAuMDogQXMgb2YgdGhpcyBtYWpvciByZWxlYXNlLCB0aGUgZGVmYXVsdCAnZnVsbCcgb3B0aW9uIF9fbm8gbG9uZ2VyIHRyZWF0cyBkZXRhY2hlZFxuICAgIC8vICBub2RlcyBhcyB2aXNpYmxlIHdpdGggdGhlICdub25lJyBmYWxsYmFjay5fX1xuICAgIGlmIChkaXNwbGF5Q2hlY2sgIT09ICdsZWdhY3ktZnVsbCcpIHtcbiAgICAgIHJldHVybiB0cnVlOyAvLyBoaWRkZW5cbiAgICB9XG4gICAgLy8gZWxzZSwgZmFsbGJhY2sgdG8gJ25vbmUnIG1vZGUgYW5kIGNvbnNpZGVyIHRoZSBub2RlIHZpc2libGVcbiAgfSBlbHNlIGlmIChkaXNwbGF5Q2hlY2sgPT09ICdub24temVyby1hcmVhJykge1xuICAgIC8vIE5PVEU6IEV2ZW4gdGhvdWdoIHRoaXMgdGVzdHMgdGhhdCB0aGUgbm9kZSdzIGNsaWVudCByZWN0IGlzIG5vbi16ZXJvIHRvIGRldGVybWluZVxuICAgIC8vICB3aGV0aGVyIGl0J3MgZGlzcGxheWVkLCBhbmQgdGhhdCBhIGRldGFjaGVkIG5vZGUgd2lsbCBfX2Fsd2F5c19fIGhhdmUgYSB6ZXJvLWFyZWFcbiAgICAvLyAgY2xpZW50IHJlY3QsIHdlIGRvbid0IHNwZWNpYWwtY2FzZSBmb3Igd2hldGhlciB0aGUgbm9kZSBpcyBhdHRhY2hlZCBvciBub3QuIEluXG4gICAgLy8gIHRoaXMgbW9kZSwgd2UgZG8gd2FudCB0byBjb25zaWRlciBub2RlcyB0aGF0IGhhdmUgYSB6ZXJvIGFyZWEgdG8gYmUgaGlkZGVuIGF0IGFsbFxuICAgIC8vICB0aW1lcywgYW5kIHRoYXQgaW5jbHVkZXMgYXR0YWNoZWQgb3Igbm90LlxuICAgIHJldHVybiBpc1plcm9BcmVhKG5vZGUpO1xuICB9XG5cbiAgLy8gdmlzaWJsZSwgYXMgZmFyIGFzIHdlIGNhbiB0ZWxsLCBvciBwZXIgY3VycmVudCBgZGlzcGxheUNoZWNrPW5vbmVgIG1vZGUsIHdlIGFzc3VtZVxuICAvLyAgaXQncyB2aXNpYmxlXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbi8vIGZvcm0gZmllbGRzIChuZXN0ZWQpIGluc2lkZSBhIGRpc2FibGVkIGZpZWxkc2V0IGFyZSBub3QgZm9jdXNhYmxlL3RhYmJhYmxlXG4vLyAgdW5sZXNzIHRoZXkgYXJlIGluIHRoZSBfZmlyc3RfIDxsZWdlbmQ+IGVsZW1lbnQgb2YgdGhlIHRvcC1tb3N0IGRpc2FibGVkXG4vLyAgZmllbGRzZXRcbnZhciBpc0Rpc2FibGVkRnJvbUZpZWxkc2V0ID0gZnVuY3Rpb24gaXNEaXNhYmxlZEZyb21GaWVsZHNldChub2RlKSB7XG4gIGlmICgvXihJTlBVVHxCVVRUT058U0VMRUNUfFRFWFRBUkVBKSQvLnRlc3Qobm9kZS50YWdOYW1lKSkge1xuICAgIHZhciBwYXJlbnROb2RlID0gbm9kZS5wYXJlbnRFbGVtZW50O1xuICAgIC8vIGNoZWNrIGlmIGBub2RlYCBpcyBjb250YWluZWQgaW4gYSBkaXNhYmxlZCA8ZmllbGRzZXQ+XG4gICAgd2hpbGUgKHBhcmVudE5vZGUpIHtcbiAgICAgIGlmIChwYXJlbnROb2RlLnRhZ05hbWUgPT09ICdGSUVMRFNFVCcgJiYgcGFyZW50Tm9kZS5kaXNhYmxlZCkge1xuICAgICAgICAvLyBsb29rIGZvciB0aGUgZmlyc3QgPGxlZ2VuZD4gYW1vbmcgdGhlIGNoaWxkcmVuIG9mIHRoZSBkaXNhYmxlZCA8ZmllbGRzZXQ+XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyZW50Tm9kZS5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBjaGlsZCA9IHBhcmVudE5vZGUuY2hpbGRyZW4uaXRlbShpKTtcbiAgICAgICAgICAvLyB3aGVuIHRoZSBmaXJzdCA8bGVnZW5kPiAoaW4gZG9jdW1lbnQgb3JkZXIpIGlzIGZvdW5kXG4gICAgICAgICAgaWYgKGNoaWxkLnRhZ05hbWUgPT09ICdMRUdFTkQnKSB7XG4gICAgICAgICAgICAvLyBpZiBpdHMgcGFyZW50IDxmaWVsZHNldD4gaXMgbm90IG5lc3RlZCBpbiBhbm90aGVyIGRpc2FibGVkIDxmaWVsZHNldD4sXG4gICAgICAgICAgICAvLyByZXR1cm4gd2hldGhlciBgbm9kZWAgaXMgYSBkZXNjZW5kYW50IG9mIGl0cyBmaXJzdCA8bGVnZW5kPlxuICAgICAgICAgICAgcmV0dXJuIG1hdGNoZXMuY2FsbChwYXJlbnROb2RlLCAnZmllbGRzZXRbZGlzYWJsZWRdIConKSA/IHRydWUgOiAhY2hpbGQuY29udGFpbnMobm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHRoZSBkaXNhYmxlZCA8ZmllbGRzZXQ+IGNvbnRhaW5pbmcgYG5vZGVgIGhhcyBubyA8bGVnZW5kPlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHBhcmVudE5vZGUgPSBwYXJlbnROb2RlLnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gZWxzZSwgbm9kZSdzIHRhYmJhYmxlL2ZvY3VzYWJsZSBzdGF0ZSBzaG91bGQgbm90IGJlIGFmZmVjdGVkIGJ5IGEgZmllbGRzZXQnc1xuICAvLyAgZW5hYmxlZC9kaXNhYmxlZCBzdGF0ZVxuICByZXR1cm4gZmFsc2U7XG59O1xudmFyIGlzTm9kZU1hdGNoaW5nU2VsZWN0b3JGb2N1c2FibGUgPSBmdW5jdGlvbiBpc05vZGVNYXRjaGluZ1NlbGVjdG9yRm9jdXNhYmxlKG9wdGlvbnMsIG5vZGUpIHtcbiAgaWYgKG5vZGUuZGlzYWJsZWQgfHxcbiAgLy8gd2UgbXVzdCBkbyBhbiBpbmVydCBsb29rIHVwIHRvIGZpbHRlciBvdXQgYW55IGVsZW1lbnRzIGluc2lkZSBhbiBpbmVydCBhbmNlc3RvclxuICAvLyAgYmVjYXVzZSB3ZSdyZSBsaW1pdGVkIGluIHRoZSB0eXBlIG9mIHNlbGVjdG9ycyB3ZSBjYW4gdXNlIGluIEpTRG9tIChzZWUgcmVsYXRlZFxuICAvLyAgbm90ZSByZWxhdGVkIHRvIGBjYW5kaWRhdGVTZWxlY3RvcnNgKVxuICBpc0luZXJ0KG5vZGUpIHx8IGlzSGlkZGVuSW5wdXQobm9kZSkgfHwgaXNIaWRkZW4obm9kZSwgb3B0aW9ucykgfHxcbiAgLy8gRm9yIGEgZGV0YWlscyBlbGVtZW50IHdpdGggYSBzdW1tYXJ5LCB0aGUgc3VtbWFyeSBlbGVtZW50IGdldHMgdGhlIGZvY3VzXG4gIGlzRGV0YWlsc1dpdGhTdW1tYXJ5KG5vZGUpIHx8IGlzRGlzYWJsZWRGcm9tRmllbGRzZXQobm9kZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59O1xudmFyIGlzTm9kZU1hdGNoaW5nU2VsZWN0b3JUYWJiYWJsZSA9IGZ1bmN0aW9uIGlzTm9kZU1hdGNoaW5nU2VsZWN0b3JUYWJiYWJsZShvcHRpb25zLCBub2RlKSB7XG4gIGlmIChpc05vblRhYmJhYmxlUmFkaW8obm9kZSkgfHwgZ2V0VGFiSW5kZXgobm9kZSkgPCAwIHx8ICFpc05vZGVNYXRjaGluZ1NlbGVjdG9yRm9jdXNhYmxlKG9wdGlvbnMsIG5vZGUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB0cnVlO1xufTtcbnZhciBpc1ZhbGlkU2hhZG93Um9vdFRhYmJhYmxlID0gZnVuY3Rpb24gaXNWYWxpZFNoYWRvd1Jvb3RUYWJiYWJsZShzaGFkb3dIb3N0Tm9kZSkge1xuICB2YXIgdGFiSW5kZXggPSBwYXJzZUludChzaGFkb3dIb3N0Tm9kZS5nZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JyksIDEwKTtcbiAgaWYgKGlzTmFOKHRhYkluZGV4KSB8fCB0YWJJbmRleCA+PSAwKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gSWYgYSBjdXN0b20gZWxlbWVudCBoYXMgYW4gZXhwbGljaXQgbmVnYXRpdmUgdGFiaW5kZXgsXG4gIC8vIGJyb3dzZXJzIHdpbGwgbm90IGFsbG93IHRhYiB0YXJnZXRpbmcgc2FpZCBlbGVtZW50J3MgY2hpbGRyZW4uXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbi8qKlxuICogQHBhcmFtIHtBcnJheS48RWxlbWVudHxDYW5kaWRhdGVTY29wZT59IGNhbmRpZGF0ZXNcbiAqIEByZXR1cm5zIEVsZW1lbnRbXVxuICovXG52YXIgc29ydEJ5T3JkZXIgPSBmdW5jdGlvbiBzb3J0QnlPcmRlcihjYW5kaWRhdGVzKSB7XG4gIHZhciByZWd1bGFyVGFiYmFibGVzID0gW107XG4gIHZhciBvcmRlcmVkVGFiYmFibGVzID0gW107XG4gIGNhbmRpZGF0ZXMuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSwgaSkge1xuICAgIHZhciBpc1Njb3BlID0gISFpdGVtLnNjb3BlUGFyZW50O1xuICAgIHZhciBlbGVtZW50ID0gaXNTY29wZSA/IGl0ZW0uc2NvcGVQYXJlbnQgOiBpdGVtO1xuICAgIHZhciBjYW5kaWRhdGVUYWJpbmRleCA9IGdldFNvcnRPcmRlclRhYkluZGV4KGVsZW1lbnQsIGlzU2NvcGUpO1xuICAgIHZhciBlbGVtZW50cyA9IGlzU2NvcGUgPyBzb3J0QnlPcmRlcihpdGVtLmNhbmRpZGF0ZXMpIDogZWxlbWVudDtcbiAgICBpZiAoY2FuZGlkYXRlVGFiaW5kZXggPT09IDApIHtcbiAgICAgIGlzU2NvcGUgPyByZWd1bGFyVGFiYmFibGVzLnB1c2guYXBwbHkocmVndWxhclRhYmJhYmxlcywgZWxlbWVudHMpIDogcmVndWxhclRhYmJhYmxlcy5wdXNoKGVsZW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcmRlcmVkVGFiYmFibGVzLnB1c2goe1xuICAgICAgICBkb2N1bWVudE9yZGVyOiBpLFxuICAgICAgICB0YWJJbmRleDogY2FuZGlkYXRlVGFiaW5kZXgsXG4gICAgICAgIGl0ZW06IGl0ZW0sXG4gICAgICAgIGlzU2NvcGU6IGlzU2NvcGUsXG4gICAgICAgIGNvbnRlbnQ6IGVsZW1lbnRzXG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gb3JkZXJlZFRhYmJhYmxlcy5zb3J0KHNvcnRPcmRlcmVkVGFiYmFibGVzKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgc29ydGFibGUpIHtcbiAgICBzb3J0YWJsZS5pc1Njb3BlID8gYWNjLnB1c2guYXBwbHkoYWNjLCBzb3J0YWJsZS5jb250ZW50KSA6IGFjYy5wdXNoKHNvcnRhYmxlLmNvbnRlbnQpO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKS5jb25jYXQocmVndWxhclRhYmJhYmxlcyk7XG59O1xudmFyIHRhYmJhYmxlID0gZnVuY3Rpb24gdGFiYmFibGUoY29udGFpbmVyLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICB2YXIgY2FuZGlkYXRlcztcbiAgaWYgKG9wdGlvbnMuZ2V0U2hhZG93Um9vdCkge1xuICAgIGNhbmRpZGF0ZXMgPSBnZXRDYW5kaWRhdGVzSXRlcmF0aXZlbHkoW2NvbnRhaW5lcl0sIG9wdGlvbnMuaW5jbHVkZUNvbnRhaW5lciwge1xuICAgICAgZmlsdGVyOiBpc05vZGVNYXRjaGluZ1NlbGVjdG9yVGFiYmFibGUuYmluZChudWxsLCBvcHRpb25zKSxcbiAgICAgIGZsYXR0ZW46IGZhbHNlLFxuICAgICAgZ2V0U2hhZG93Um9vdDogb3B0aW9ucy5nZXRTaGFkb3dSb290LFxuICAgICAgc2hhZG93Um9vdEZpbHRlcjogaXNWYWxpZFNoYWRvd1Jvb3RUYWJiYWJsZVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGNhbmRpZGF0ZXMgPSBnZXRDYW5kaWRhdGVzKGNvbnRhaW5lciwgb3B0aW9ucy5pbmNsdWRlQ29udGFpbmVyLCBpc05vZGVNYXRjaGluZ1NlbGVjdG9yVGFiYmFibGUuYmluZChudWxsLCBvcHRpb25zKSk7XG4gIH1cbiAgcmV0dXJuIHNvcnRCeU9yZGVyKGNhbmRpZGF0ZXMpO1xufTtcbnZhciBmb2N1c2FibGUgPSBmdW5jdGlvbiBmb2N1c2FibGUoY29udGFpbmVyLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICB2YXIgY2FuZGlkYXRlcztcbiAgaWYgKG9wdGlvbnMuZ2V0U2hhZG93Um9vdCkge1xuICAgIGNhbmRpZGF0ZXMgPSBnZXRDYW5kaWRhdGVzSXRlcmF0aXZlbHkoW2NvbnRhaW5lcl0sIG9wdGlvbnMuaW5jbHVkZUNvbnRhaW5lciwge1xuICAgICAgZmlsdGVyOiBpc05vZGVNYXRjaGluZ1NlbGVjdG9yRm9jdXNhYmxlLmJpbmQobnVsbCwgb3B0aW9ucyksXG4gICAgICBmbGF0dGVuOiB0cnVlLFxuICAgICAgZ2V0U2hhZG93Um9vdDogb3B0aW9ucy5nZXRTaGFkb3dSb290XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgY2FuZGlkYXRlcyA9IGdldENhbmRpZGF0ZXMoY29udGFpbmVyLCBvcHRpb25zLmluY2x1ZGVDb250YWluZXIsIGlzTm9kZU1hdGNoaW5nU2VsZWN0b3JGb2N1c2FibGUuYmluZChudWxsLCBvcHRpb25zKSk7XG4gIH1cbiAgcmV0dXJuIGNhbmRpZGF0ZXM7XG59O1xudmFyIGlzVGFiYmFibGUgPSBmdW5jdGlvbiBpc1RhYmJhYmxlKG5vZGUsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGlmICghbm9kZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignTm8gbm9kZSBwcm92aWRlZCcpO1xuICB9XG4gIGlmIChtYXRjaGVzLmNhbGwobm9kZSwgY2FuZGlkYXRlU2VsZWN0b3IpID09PSBmYWxzZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gaXNOb2RlTWF0Y2hpbmdTZWxlY3RvclRhYmJhYmxlKG9wdGlvbnMsIG5vZGUpO1xufTtcbnZhciBmb2N1c2FibGVDYW5kaWRhdGVTZWxlY3RvciA9IC8qICNfX1BVUkVfXyAqL2NhbmRpZGF0ZVNlbGVjdG9ycy5jb25jYXQoJ2lmcmFtZScpLmpvaW4oJywnKTtcbnZhciBpc0ZvY3VzYWJsZSA9IGZ1bmN0aW9uIGlzRm9jdXNhYmxlKG5vZGUsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGlmICghbm9kZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignTm8gbm9kZSBwcm92aWRlZCcpO1xuICB9XG4gIGlmIChtYXRjaGVzLmNhbGwobm9kZSwgZm9jdXNhYmxlQ2FuZGlkYXRlU2VsZWN0b3IpID09PSBmYWxzZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gaXNOb2RlTWF0Y2hpbmdTZWxlY3RvckZvY3VzYWJsZShvcHRpb25zLCBub2RlKTtcbn07XG5cbmV4cG9ydCB7IGZvY3VzYWJsZSwgZ2V0VGFiSW5kZXgsIGlzRm9jdXNhYmxlLCBpc1RhYmJhYmxlLCB0YWJiYWJsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguZXNtLmpzLm1hcFxuIiwiaW1wb3J0IHsgY29tcHV0ZVBvc2l0aW9uLCBhcnJvdyBhcyBhcnJvdyQyLCBvZmZzZXQgYXMgb2Zmc2V0JDEsIHNoaWZ0IGFzIHNoaWZ0JDEsIGxpbWl0U2hpZnQgYXMgbGltaXRTaGlmdCQxLCBmbGlwIGFzIGZsaXAkMSwgc2l6ZSBhcyBzaXplJDEsIGF1dG9QbGFjZW1lbnQgYXMgYXV0b1BsYWNlbWVudCQxLCBoaWRlIGFzIGhpZGUkMSwgaW5saW5lIGFzIGlubGluZSQxIH0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5leHBvcnQgeyBhdXRvVXBkYXRlLCBjb21wdXRlUG9zaXRpb24sIGRldGVjdE92ZXJmbG93LCBnZXRPdmVyZmxvd0FuY2VzdG9ycywgcGxhdGZvcm0gfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUxheW91dEVmZmVjdCwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcblxudmFyIGluZGV4ID0gdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyA/IHVzZUxheW91dEVmZmVjdCA6IHVzZUVmZmVjdDtcblxuLy8gRm9yayBvZiBgZmFzdC1kZWVwLWVxdWFsYCB0aGF0IG9ubHkgZG9lcyB0aGUgY29tcGFyaXNvbnMgd2UgbmVlZCBhbmQgY29tcGFyZXNcbi8vIGZ1bmN0aW9uc1xuZnVuY3Rpb24gZGVlcEVxdWFsKGEsIGIpIHtcbiAgaWYgKGEgPT09IGIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodHlwZW9mIGEgIT09IHR5cGVvZiBiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICh0eXBlb2YgYSA9PT0gJ2Z1bmN0aW9uJyAmJiBhLnRvU3RyaW5nKCkgPT09IGIudG9TdHJpbmcoKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGxldCBsZW5ndGg7XG4gIGxldCBpO1xuICBsZXQga2V5cztcbiAgaWYgKGEgJiYgYiAmJiB0eXBlb2YgYSA9PT0gJ29iamVjdCcpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShhKSkge1xuICAgICAgbGVuZ3RoID0gYS5sZW5ndGg7XG4gICAgICBpZiAobGVuZ3RoICE9PSBiLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICAgICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7KSB7XG4gICAgICAgIGlmICghZGVlcEVxdWFsKGFbaV0sIGJbaV0pKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAga2V5cyA9IE9iamVjdC5rZXlzKGEpO1xuICAgIGxlbmd0aCA9IGtleXMubGVuZ3RoO1xuICAgIGlmIChsZW5ndGggIT09IE9iamVjdC5rZXlzKGIpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmb3IgKGkgPSBsZW5ndGg7IGktLSAhPT0gMDspIHtcbiAgICAgIGlmICghe30uaGFzT3duUHJvcGVydHkuY2FsbChiLCBrZXlzW2ldKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoaSA9IGxlbmd0aDsgaS0tICE9PSAwOykge1xuICAgICAgY29uc3Qga2V5ID0ga2V5c1tpXTtcbiAgICAgIGlmIChrZXkgPT09ICdfb3duZXInICYmIGEuJCR0eXBlb2YpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoIWRlZXBFcXVhbChhW2tleV0sIGJba2V5XSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gYSAhPT0gYSAmJiBiICE9PSBiO1xufVxuXG5mdW5jdGlvbiBnZXREUFIoZWxlbWVudCkge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gMTtcbiAgfVxuICBjb25zdCB3aW4gPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgfHwgd2luZG93O1xuICByZXR1cm4gd2luLmRldmljZVBpeGVsUmF0aW8gfHwgMTtcbn1cblxuZnVuY3Rpb24gcm91bmRCeURQUihlbGVtZW50LCB2YWx1ZSkge1xuICBjb25zdCBkcHIgPSBnZXREUFIoZWxlbWVudCk7XG4gIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlICogZHByKSAvIGRwcjtcbn1cblxuZnVuY3Rpb24gdXNlTGF0ZXN0UmVmKHZhbHVlKSB7XG4gIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZih2YWx1ZSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICByZWYuY3VycmVudCA9IHZhbHVlO1xuICB9KTtcbiAgcmV0dXJuIHJlZjtcbn1cblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIHBvc2l0aW9uIGEgZmxvYXRpbmcgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy91c2VGbG9hdGluZ1xuICovXG5mdW5jdGlvbiB1c2VGbG9hdGluZyhvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cbiAgY29uc3Qge1xuICAgIHBsYWNlbWVudCA9ICdib3R0b20nLFxuICAgIHN0cmF0ZWd5ID0gJ2Fic29sdXRlJyxcbiAgICBtaWRkbGV3YXJlID0gW10sXG4gICAgcGxhdGZvcm0sXG4gICAgZWxlbWVudHM6IHtcbiAgICAgIHJlZmVyZW5jZTogZXh0ZXJuYWxSZWZlcmVuY2UsXG4gICAgICBmbG9hdGluZzogZXh0ZXJuYWxGbG9hdGluZ1xuICAgIH0gPSB7fSxcbiAgICB0cmFuc2Zvcm0gPSB0cnVlLFxuICAgIHdoaWxlRWxlbWVudHNNb3VudGVkLFxuICAgIG9wZW5cbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IFtkYXRhLCBzZXREYXRhXSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICB4OiAwLFxuICAgIHk6IDAsXG4gICAgc3RyYXRlZ3ksXG4gICAgcGxhY2VtZW50LFxuICAgIG1pZGRsZXdhcmVEYXRhOiB7fSxcbiAgICBpc1Bvc2l0aW9uZWQ6IGZhbHNlXG4gIH0pO1xuICBjb25zdCBbbGF0ZXN0TWlkZGxld2FyZSwgc2V0TGF0ZXN0TWlkZGxld2FyZV0gPSBSZWFjdC51c2VTdGF0ZShtaWRkbGV3YXJlKTtcbiAgaWYgKCFkZWVwRXF1YWwobGF0ZXN0TWlkZGxld2FyZSwgbWlkZGxld2FyZSkpIHtcbiAgICBzZXRMYXRlc3RNaWRkbGV3YXJlKG1pZGRsZXdhcmUpO1xuICB9XG4gIGNvbnN0IFtfcmVmZXJlbmNlLCBfc2V0UmVmZXJlbmNlXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICBjb25zdCBbX2Zsb2F0aW5nLCBfc2V0RmxvYXRpbmddID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IHNldFJlZmVyZW5jZSA9IFJlYWN0LnVzZUNhbGxiYWNrKG5vZGUgPT4ge1xuICAgIGlmIChub2RlICE9PSByZWZlcmVuY2VSZWYuY3VycmVudCkge1xuICAgICAgcmVmZXJlbmNlUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgX3NldFJlZmVyZW5jZShub2RlKTtcbiAgICB9XG4gIH0sIFtdKTtcbiAgY29uc3Qgc2V0RmxvYXRpbmcgPSBSZWFjdC51c2VDYWxsYmFjayhub2RlID0+IHtcbiAgICBpZiAobm9kZSAhPT0gZmxvYXRpbmdSZWYuY3VycmVudCkge1xuICAgICAgZmxvYXRpbmdSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICBfc2V0RmxvYXRpbmcobm9kZSk7XG4gICAgfVxuICB9LCBbXSk7XG4gIGNvbnN0IHJlZmVyZW5jZUVsID0gZXh0ZXJuYWxSZWZlcmVuY2UgfHwgX3JlZmVyZW5jZTtcbiAgY29uc3QgZmxvYXRpbmdFbCA9IGV4dGVybmFsRmxvYXRpbmcgfHwgX2Zsb2F0aW5nO1xuICBjb25zdCByZWZlcmVuY2VSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGNvbnN0IGZsb2F0aW5nUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBkYXRhUmVmID0gUmVhY3QudXNlUmVmKGRhdGEpO1xuICBjb25zdCBoYXNXaGlsZUVsZW1lbnRzTW91bnRlZCA9IHdoaWxlRWxlbWVudHNNb3VudGVkICE9IG51bGw7XG4gIGNvbnN0IHdoaWxlRWxlbWVudHNNb3VudGVkUmVmID0gdXNlTGF0ZXN0UmVmKHdoaWxlRWxlbWVudHNNb3VudGVkKTtcbiAgY29uc3QgcGxhdGZvcm1SZWYgPSB1c2VMYXRlc3RSZWYocGxhdGZvcm0pO1xuICBjb25zdCBvcGVuUmVmID0gdXNlTGF0ZXN0UmVmKG9wZW4pO1xuICBjb25zdCB1cGRhdGUgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKCFyZWZlcmVuY2VSZWYuY3VycmVudCB8fCAhZmxvYXRpbmdSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBwbGFjZW1lbnQsXG4gICAgICBzdHJhdGVneSxcbiAgICAgIG1pZGRsZXdhcmU6IGxhdGVzdE1pZGRsZXdhcmVcbiAgICB9O1xuICAgIGlmIChwbGF0Zm9ybVJlZi5jdXJyZW50KSB7XG4gICAgICBjb25maWcucGxhdGZvcm0gPSBwbGF0Zm9ybVJlZi5jdXJyZW50O1xuICAgIH1cbiAgICBjb21wdXRlUG9zaXRpb24ocmVmZXJlbmNlUmVmLmN1cnJlbnQsIGZsb2F0aW5nUmVmLmN1cnJlbnQsIGNvbmZpZykudGhlbihkYXRhID0+IHtcbiAgICAgIGNvbnN0IGZ1bGxEYXRhID0ge1xuICAgICAgICAuLi5kYXRhLFxuICAgICAgICAvLyBUaGUgZmxvYXRpbmcgZWxlbWVudCdzIHBvc2l0aW9uIG1heSBiZSByZWNvbXB1dGVkIHdoaWxlIGl0J3MgY2xvc2VkXG4gICAgICAgIC8vIGJ1dCBzdGlsbCBtb3VudGVkIChzdWNoIGFzIHdoZW4gdHJhbnNpdGlvbmluZyBvdXQpLiBUbyBlbnN1cmVcbiAgICAgICAgLy8gYGlzUG9zaXRpb25lZGAgd2lsbCBiZSBgZmFsc2VgIGluaXRpYWxseSBvbiB0aGUgbmV4dCBvcGVuLCBhdm9pZFxuICAgICAgICAvLyBzZXR0aW5nIGl0IHRvIGB0cnVlYCB3aGVuIGBvcGVuID09PSBmYWxzZWAgKG11c3QgYmUgc3BlY2lmaWVkKS5cbiAgICAgICAgaXNQb3NpdGlvbmVkOiBvcGVuUmVmLmN1cnJlbnQgIT09IGZhbHNlXG4gICAgICB9O1xuICAgICAgaWYgKGlzTW91bnRlZFJlZi5jdXJyZW50ICYmICFkZWVwRXF1YWwoZGF0YVJlZi5jdXJyZW50LCBmdWxsRGF0YSkpIHtcbiAgICAgICAgZGF0YVJlZi5jdXJyZW50ID0gZnVsbERhdGE7XG4gICAgICAgIFJlYWN0RE9NLmZsdXNoU3luYygoKSA9PiB7XG4gICAgICAgICAgc2V0RGF0YShmdWxsRGF0YSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBbbGF0ZXN0TWlkZGxld2FyZSwgcGxhY2VtZW50LCBzdHJhdGVneSwgcGxhdGZvcm1SZWYsIG9wZW5SZWZdKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGlmIChvcGVuID09PSBmYWxzZSAmJiBkYXRhUmVmLmN1cnJlbnQuaXNQb3NpdGlvbmVkKSB7XG4gICAgICBkYXRhUmVmLmN1cnJlbnQuaXNQb3NpdGlvbmVkID0gZmFsc2U7XG4gICAgICBzZXREYXRhKGRhdGEgPT4gKHtcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgaXNQb3NpdGlvbmVkOiBmYWxzZVxuICAgICAgfSkpO1xuICAgIH1cbiAgfSwgW29wZW5dKTtcbiAgY29uc3QgaXNNb3VudGVkUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGlzTW91bnRlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaXNNb3VudGVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9O1xuICB9LCBbXSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBpZiAocmVmZXJlbmNlRWwpIHJlZmVyZW5jZVJlZi5jdXJyZW50ID0gcmVmZXJlbmNlRWw7XG4gICAgaWYgKGZsb2F0aW5nRWwpIGZsb2F0aW5nUmVmLmN1cnJlbnQgPSBmbG9hdGluZ0VsO1xuICAgIGlmIChyZWZlcmVuY2VFbCAmJiBmbG9hdGluZ0VsKSB7XG4gICAgICBpZiAod2hpbGVFbGVtZW50c01vdW50ZWRSZWYuY3VycmVudCkge1xuICAgICAgICByZXR1cm4gd2hpbGVFbGVtZW50c01vdW50ZWRSZWYuY3VycmVudChyZWZlcmVuY2VFbCwgZmxvYXRpbmdFbCwgdXBkYXRlKTtcbiAgICAgIH1cbiAgICAgIHVwZGF0ZSgpO1xuICAgIH1cbiAgfSwgW3JlZmVyZW5jZUVsLCBmbG9hdGluZ0VsLCB1cGRhdGUsIHdoaWxlRWxlbWVudHNNb3VudGVkUmVmLCBoYXNXaGlsZUVsZW1lbnRzTW91bnRlZF0pO1xuICBjb25zdCByZWZzID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIHJlZmVyZW5jZTogcmVmZXJlbmNlUmVmLFxuICAgIGZsb2F0aW5nOiBmbG9hdGluZ1JlZixcbiAgICBzZXRSZWZlcmVuY2UsXG4gICAgc2V0RmxvYXRpbmdcbiAgfSksIFtzZXRSZWZlcmVuY2UsIHNldEZsb2F0aW5nXSk7XG4gIGNvbnN0IGVsZW1lbnRzID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIHJlZmVyZW5jZTogcmVmZXJlbmNlRWwsXG4gICAgZmxvYXRpbmc6IGZsb2F0aW5nRWxcbiAgfSksIFtyZWZlcmVuY2VFbCwgZmxvYXRpbmdFbF0pO1xuICBjb25zdCBmbG9hdGluZ1N0eWxlcyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGluaXRpYWxTdHlsZXMgPSB7XG4gICAgICBwb3NpdGlvbjogc3RyYXRlZ3ksXG4gICAgICBsZWZ0OiAwLFxuICAgICAgdG9wOiAwXG4gICAgfTtcbiAgICBpZiAoIWVsZW1lbnRzLmZsb2F0aW5nKSB7XG4gICAgICByZXR1cm4gaW5pdGlhbFN0eWxlcztcbiAgICB9XG4gICAgY29uc3QgeCA9IHJvdW5kQnlEUFIoZWxlbWVudHMuZmxvYXRpbmcsIGRhdGEueCk7XG4gICAgY29uc3QgeSA9IHJvdW5kQnlEUFIoZWxlbWVudHMuZmxvYXRpbmcsIGRhdGEueSk7XG4gICAgaWYgKHRyYW5zZm9ybSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uaW5pdGlhbFN0eWxlcyxcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZShcIiArIHggKyBcInB4LCBcIiArIHkgKyBcInB4KVwiLFxuICAgICAgICAuLi4oZ2V0RFBSKGVsZW1lbnRzLmZsb2F0aW5nKSA+PSAxLjUgJiYge1xuICAgICAgICAgIHdpbGxDaGFuZ2U6ICd0cmFuc2Zvcm0nXG4gICAgICAgIH0pXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IHN0cmF0ZWd5LFxuICAgICAgbGVmdDogeCxcbiAgICAgIHRvcDogeVxuICAgIH07XG4gIH0sIFtzdHJhdGVneSwgdHJhbnNmb3JtLCBlbGVtZW50cy5mbG9hdGluZywgZGF0YS54LCBkYXRhLnldKTtcbiAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICAuLi5kYXRhLFxuICAgIHVwZGF0ZSxcbiAgICByZWZzLFxuICAgIGVsZW1lbnRzLFxuICAgIGZsb2F0aW5nU3R5bGVzXG4gIH0pLCBbZGF0YSwgdXBkYXRlLCByZWZzLCBlbGVtZW50cywgZmxvYXRpbmdTdHlsZXNdKTtcbn1cblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIHBvc2l0aW9uIGFuIGlubmVyIGVsZW1lbnQgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgc28gdGhhdCBpdFxuICogYXBwZWFycyBjZW50ZXJlZCB0byB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBUaGlzIHdyYXBzIHRoZSBjb3JlIGBhcnJvd2AgbWlkZGxld2FyZSB0byBhbGxvdyBSZWFjdCByZWZzIGFzIHRoZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2Fycm93XG4gKi9cbmNvbnN0IGFycm93JDEgPSBvcHRpb25zID0+IHtcbiAgZnVuY3Rpb24gaXNSZWYodmFsdWUpIHtcbiAgICByZXR1cm4ge30uaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgJ2N1cnJlbnQnKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdhcnJvdycsXG4gICAgb3B0aW9ucyxcbiAgICBmbihzdGF0ZSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBlbGVtZW50LFxuICAgICAgICBwYWRkaW5nXG4gICAgICB9ID0gdHlwZW9mIG9wdGlvbnMgPT09ICdmdW5jdGlvbicgPyBvcHRpb25zKHN0YXRlKSA6IG9wdGlvbnM7XG4gICAgICBpZiAoZWxlbWVudCAmJiBpc1JlZihlbGVtZW50KSkge1xuICAgICAgICBpZiAoZWxlbWVudC5jdXJyZW50ICE9IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gYXJyb3ckMih7XG4gICAgICAgICAgICBlbGVtZW50OiBlbGVtZW50LmN1cnJlbnQsXG4gICAgICAgICAgICBwYWRkaW5nXG4gICAgICAgICAgfSkuZm4oc3RhdGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBhcnJvdyQyKHtcbiAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgIHBhZGRpbmdcbiAgICAgICAgfSkuZm4oc3RhdGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogTW9kaWZpZXMgdGhlIHBsYWNlbWVudCBieSB0cmFuc2xhdGluZyB0aGUgZmxvYXRpbmcgZWxlbWVudCBhbG9uZyB0aGVcbiAqIHNwZWNpZmllZCBheGVzLlxuICogQSBudW1iZXIgKHNob3J0aGFuZCBmb3IgYG1haW5BeGlzYCBvciBkaXN0YW5jZSksIG9yIGFuIGF4ZXMgY29uZmlndXJhdGlvblxuICogb2JqZWN0IG1heSBiZSBwYXNzZWQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvb2Zmc2V0XG4gKi9cbmNvbnN0IG9mZnNldCA9IChvcHRpb25zLCBkZXBzKSA9PiAoe1xuICAuLi5vZmZzZXQkMShvcHRpb25zKSxcbiAgb3B0aW9uczogW29wdGlvbnMsIGRlcHNdXG59KTtcblxuLyoqXG4gKiBPcHRpbWl6ZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYnkgc2hpZnRpbmcgaXQgaW4gb3JkZXIgdG9cbiAqIGtlZXAgaXQgaW4gdmlldyB3aGVuIGl0IHdpbGwgb3ZlcmZsb3cgdGhlIGNsaXBwaW5nIGJvdW5kYXJ5LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3NoaWZ0XG4gKi9cbmNvbnN0IHNoaWZ0ID0gKG9wdGlvbnMsIGRlcHMpID0+ICh7XG4gIC4uLnNoaWZ0JDEob3B0aW9ucyksXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxufSk7XG5cbi8qKlxuICogQnVpbHQtaW4gYGxpbWl0ZXJgIHRoYXQgd2lsbCBzdG9wIGBzaGlmdCgpYCBhdCBhIGNlcnRhaW4gcG9pbnQuXG4gKi9cbmNvbnN0IGxpbWl0U2hpZnQgPSAob3B0aW9ucywgZGVwcykgPT4gKHtcbiAgLi4ubGltaXRTaGlmdCQxKG9wdGlvbnMpLFxuICBvcHRpb25zOiBbb3B0aW9ucywgZGVwc11cbn0pO1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBmbGlwcGluZyB0aGUgYHBsYWNlbWVudGBcbiAqIGluIG9yZGVyIHRvIGtlZXAgaXQgaW4gdmlldyB3aGVuIHRoZSBwcmVmZXJyZWQgcGxhY2VtZW50KHMpIHdpbGwgb3ZlcmZsb3cgdGhlXG4gKiBjbGlwcGluZyBib3VuZGFyeS4gQWx0ZXJuYXRpdmUgdG8gYGF1dG9QbGFjZW1lbnRgLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2ZsaXBcbiAqL1xuY29uc3QgZmxpcCA9IChvcHRpb25zLCBkZXBzKSA9PiAoe1xuICAuLi5mbGlwJDEob3B0aW9ucyksXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxufSk7XG5cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0aGF0IGFsbG93cyB5b3UgdG8gY2hhbmdlIHRoZSBzaXplIG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IOKAlFxuICogZm9yIGluc3RhbmNlLCBwcmV2ZW50IGl0IGZyb20gb3ZlcmZsb3dpbmcgdGhlIGNsaXBwaW5nIGJvdW5kYXJ5IG9yIG1hdGNoIHRoZVxuICogd2lkdGggb2YgdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3NpemVcbiAqL1xuY29uc3Qgc2l6ZSA9IChvcHRpb25zLCBkZXBzKSA9PiAoe1xuICAuLi5zaXplJDEob3B0aW9ucyksXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxufSk7XG5cbi8qKlxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IGNob29zaW5nIHRoZSBwbGFjZW1lbnRcbiAqIHRoYXQgaGFzIHRoZSBtb3N0IHNwYWNlIGF2YWlsYWJsZSBhdXRvbWF0aWNhbGx5LCB3aXRob3V0IG5lZWRpbmcgdG8gc3BlY2lmeSBhXG4gKiBwcmVmZXJyZWQgcGxhY2VtZW50LiBBbHRlcm5hdGl2ZSB0byBgZmxpcGAuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXV0b1BsYWNlbWVudFxuICovXG5jb25zdCBhdXRvUGxhY2VtZW50ID0gKG9wdGlvbnMsIGRlcHMpID0+ICh7XG4gIC4uLmF1dG9QbGFjZW1lbnQkMShvcHRpb25zKSxcbiAgb3B0aW9uczogW29wdGlvbnMsIGRlcHNdXG59KTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIGhpZGUgdGhlIGZsb2F0aW5nIGVsZW1lbnQgaW4gYXBwbGljYWJsZSBzaXR1YXRpb25zLCBzdWNoIGFzXG4gKiB3aGVuIGl0IGlzIG5vdCBpbiB0aGUgc2FtZSBjbGlwcGluZyBjb250ZXh0IGFzIHRoZSByZWZlcmVuY2UgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9oaWRlXG4gKi9cbmNvbnN0IGhpZGUgPSAob3B0aW9ucywgZGVwcykgPT4gKHtcbiAgLi4uaGlkZSQxKG9wdGlvbnMpLFxuICBvcHRpb25zOiBbb3B0aW9ucywgZGVwc11cbn0pO1xuXG4vKipcbiAqIFByb3ZpZGVzIGltcHJvdmVkIHBvc2l0aW9uaW5nIGZvciBpbmxpbmUgcmVmZXJlbmNlIGVsZW1lbnRzIHRoYXQgY2FuIHNwYW5cbiAqIG92ZXIgbXVsdGlwbGUgbGluZXMsIHN1Y2ggYXMgaHlwZXJsaW5rcyBvciByYW5nZSBzZWxlY3Rpb25zLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2lubGluZVxuICovXG5jb25zdCBpbmxpbmUgPSAob3B0aW9ucywgZGVwcykgPT4gKHtcbiAgLi4uaW5saW5lJDEob3B0aW9ucyksXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxufSk7XG5cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0byBwb3NpdGlvbiBhbiBpbm5lciBlbGVtZW50IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IHNvIHRoYXQgaXRcbiAqIGFwcGVhcnMgY2VudGVyZWQgdG8gdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogVGhpcyB3cmFwcyB0aGUgY29yZSBgYXJyb3dgIG1pZGRsZXdhcmUgdG8gYWxsb3cgUmVhY3QgcmVmcyBhcyB0aGUgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9hcnJvd1xuICovXG5jb25zdCBhcnJvdyA9IChvcHRpb25zLCBkZXBzKSA9PiAoe1xuICAuLi5hcnJvdyQxKG9wdGlvbnMpLFxuICBvcHRpb25zOiBbb3B0aW9ucywgZGVwc11cbn0pO1xuXG5leHBvcnQgeyBhcnJvdywgYXV0b1BsYWNlbWVudCwgZmxpcCwgaGlkZSwgaW5saW5lLCBsaW1pdFNoaWZ0LCBvZmZzZXQsIHNoaWZ0LCBzaXplLCB1c2VGbG9hdGluZyB9O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0LCB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHN0b3BFdmVudCwgZ2V0RG9jdW1lbnQsIGlzTW91c2VMaWtlUG9pbnRlclR5cGUsIGNvbnRhaW5zLCBhY3RpdmVFbGVtZW50LCBpc1NhZmFyaSwgaXNUeXBlYWJsZUNvbWJvYm94LCBpc1ZpcnR1YWxDbGljaywgaXNWaXJ0dWFsUG9pbnRlckV2ZW50LCBnZXRUYXJnZXQsIGdldFBsYXRmb3JtLCBpc1R5cGVhYmxlRWxlbWVudCwgaXNSZWFjdEV2ZW50LCBpc1Jvb3RFbGVtZW50LCBpc0V2ZW50VGFyZ2V0V2l0aGluLCBpc01hYywgZ2V0VXNlckFnZW50IH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0L3V0aWxzJztcbmltcG9ydCB7IGZsb29yLCBldmFsdWF0ZSB9IGZyb20gJ0BmbG9hdGluZy11aS91dGlscyc7XG5pbXBvcnQgeyBnZXRDb21wdXRlZFN0eWxlLCBpc0VsZW1lbnQsIGdldE5vZGVOYW1lLCBpc0hUTUxFbGVtZW50LCBnZXRXaW5kb3csIGlzTGFzdFRyYXZlcnNhYmxlTm9kZSwgZ2V0UGFyZW50Tm9kZSB9IGZyb20gJ0BmbG9hdGluZy11aS91dGlscy9kb20nO1xuaW1wb3J0IHsgdGFiYmFibGUsIGlzVGFiYmFibGUgfSBmcm9tICd0YWJiYWJsZSc7XG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgZ2V0T3ZlcmZsb3dBbmNlc3RvcnMsIHVzZUZsb2F0aW5nIGFzIHVzZUZsb2F0aW5nJDEsIG9mZnNldCwgZGV0ZWN0T3ZlcmZsb3cgfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QtZG9tJztcbmV4cG9ydCB7IGFycm93LCBhdXRvUGxhY2VtZW50LCBhdXRvVXBkYXRlLCBjb21wdXRlUG9zaXRpb24sIGRldGVjdE92ZXJmbG93LCBmbGlwLCBnZXRPdmVyZmxvd0FuY2VzdG9ycywgaGlkZSwgaW5saW5lLCBsaW1pdFNoaWZ0LCBvZmZzZXQsIHBsYXRmb3JtLCBzaGlmdCwgc2l6ZSB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdC1kb20nO1xuXG4vKipcbiAqIE1lcmdlcyBhbiBhcnJheSBvZiByZWZzIGludG8gYSBzaW5nbGUgbWVtb2l6ZWQgY2FsbGJhY2sgcmVmIG9yIGBudWxsYC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9yZWFjdC11dGlscyN1c2VtZXJnZXJlZnNcbiAqL1xuZnVuY3Rpb24gdXNlTWVyZ2VSZWZzKHJlZnMpIHtcbiAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChyZWZzLmV2ZXJ5KHJlZiA9PiByZWYgPT0gbnVsbCkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWUgPT4ge1xuICAgICAgcmVmcy5mb3JFYWNoKHJlZiA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgcmVmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcmVmKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmIChyZWYgIT0gbnVsbCkge1xuICAgICAgICAgIHJlZi5jdXJyZW50ID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCByZWZzKTtcbn1cblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL211aS9tYXRlcmlhbC11aS9pc3N1ZXMvNDExOTAjaXNzdWVjb21tZW50LTIwNDA4NzMzNzlcbmNvbnN0IFNhZmVSZWFjdCA9IHtcbiAgLi4uUmVhY3Rcbn07XG5cbmNvbnN0IHVzZUluc2VydGlvbkVmZmVjdCA9IFNhZmVSZWFjdC51c2VJbnNlcnRpb25FZmZlY3Q7XG5jb25zdCB1c2VTYWZlSW5zZXJ0aW9uRWZmZWN0ID0gdXNlSW5zZXJ0aW9uRWZmZWN0IHx8IChmbiA9PiBmbigpKTtcbmZ1bmN0aW9uIHVzZUVmZmVjdEV2ZW50KGNhbGxiYWNrKSB7XG4gIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZigoKSA9PiB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY2FsbCBhbiBldmVudCBoYW5kbGVyIHdoaWxlIHJlbmRlcmluZy4nKTtcbiAgICB9XG4gIH0pO1xuICB1c2VTYWZlSW5zZXJ0aW9uRWZmZWN0KCgpID0+IHtcbiAgICByZWYuY3VycmVudCA9IGNhbGxiYWNrO1xuICB9KTtcbiAgcmV0dXJuIFJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uICgpIHtcbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuICAgIHJldHVybiByZWYuY3VycmVudCA9PSBudWxsID8gdm9pZCAwIDogcmVmLmN1cnJlbnQoLi4uYXJncyk7XG4gIH0sIFtdKTtcbn1cblxuY29uc3QgQVJST1dfVVAgPSAnQXJyb3dVcCc7XG5jb25zdCBBUlJPV19ET1dOID0gJ0Fycm93RG93bic7XG5jb25zdCBBUlJPV19MRUZUID0gJ0Fycm93TGVmdCc7XG5jb25zdCBBUlJPV19SSUdIVCA9ICdBcnJvd1JpZ2h0JztcbmZ1bmN0aW9uIGlzRGlmZmVyZW50Um93KGluZGV4LCBjb2xzLCBwcmV2Um93KSB7XG4gIHJldHVybiBNYXRoLmZsb29yKGluZGV4IC8gY29scykgIT09IHByZXZSb3c7XG59XG5mdW5jdGlvbiBpc0luZGV4T3V0T2ZCb3VuZHMobGlzdFJlZiwgaW5kZXgpIHtcbiAgcmV0dXJuIGluZGV4IDwgMCB8fCBpbmRleCA+PSBsaXN0UmVmLmN1cnJlbnQubGVuZ3RoO1xufVxuZnVuY3Rpb24gZ2V0TWluSW5kZXgobGlzdFJlZiwgZGlzYWJsZWRJbmRpY2VzKSB7XG4gIHJldHVybiBmaW5kTm9uRGlzYWJsZWRJbmRleChsaXN0UmVmLCB7XG4gICAgZGlzYWJsZWRJbmRpY2VzXG4gIH0pO1xufVxuZnVuY3Rpb24gZ2V0TWF4SW5kZXgobGlzdFJlZiwgZGlzYWJsZWRJbmRpY2VzKSB7XG4gIHJldHVybiBmaW5kTm9uRGlzYWJsZWRJbmRleChsaXN0UmVmLCB7XG4gICAgZGVjcmVtZW50OiB0cnVlLFxuICAgIHN0YXJ0aW5nSW5kZXg6IGxpc3RSZWYuY3VycmVudC5sZW5ndGgsXG4gICAgZGlzYWJsZWRJbmRpY2VzXG4gIH0pO1xufVxuZnVuY3Rpb24gZmluZE5vbkRpc2FibGVkSW5kZXgobGlzdFJlZiwgX3RlbXApIHtcbiAgbGV0IHtcbiAgICBzdGFydGluZ0luZGV4ID0gLTEsXG4gICAgZGVjcmVtZW50ID0gZmFsc2UsXG4gICAgZGlzYWJsZWRJbmRpY2VzLFxuICAgIGFtb3VudCA9IDFcbiAgfSA9IF90ZW1wID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wO1xuICBjb25zdCBsaXN0ID0gbGlzdFJlZi5jdXJyZW50O1xuICBsZXQgaW5kZXggPSBzdGFydGluZ0luZGV4O1xuICBkbyB7XG4gICAgaW5kZXggKz0gZGVjcmVtZW50ID8gLWFtb3VudCA6IGFtb3VudDtcbiAgfSB3aGlsZSAoaW5kZXggPj0gMCAmJiBpbmRleCA8PSBsaXN0Lmxlbmd0aCAtIDEgJiYgaXNEaXNhYmxlZChsaXN0LCBpbmRleCwgZGlzYWJsZWRJbmRpY2VzKSk7XG4gIHJldHVybiBpbmRleDtcbn1cbmZ1bmN0aW9uIGdldEdyaWROYXZpZ2F0ZWRJbmRleChlbGVtZW50c1JlZiwgX3JlZikge1xuICBsZXQge1xuICAgIGV2ZW50LFxuICAgIG9yaWVudGF0aW9uLFxuICAgIGxvb3AsXG4gICAgY29scyxcbiAgICBkaXNhYmxlZEluZGljZXMsXG4gICAgbWluSW5kZXgsXG4gICAgbWF4SW5kZXgsXG4gICAgcHJldkluZGV4LFxuICAgIHN0b3BFdmVudDogc3RvcCA9IGZhbHNlXG4gIH0gPSBfcmVmO1xuICBsZXQgbmV4dEluZGV4ID0gcHJldkluZGV4O1xuICBpZiAoZXZlbnQua2V5ID09PSBBUlJPV19VUCkge1xuICAgIHN0b3AgJiYgc3RvcEV2ZW50KGV2ZW50KTtcbiAgICBpZiAocHJldkluZGV4ID09PSAtMSkge1xuICAgICAgbmV4dEluZGV4ID0gbWF4SW5kZXg7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRJbmRleCA9IGZpbmROb25EaXNhYmxlZEluZGV4KGVsZW1lbnRzUmVmLCB7XG4gICAgICAgIHN0YXJ0aW5nSW5kZXg6IG5leHRJbmRleCxcbiAgICAgICAgYW1vdW50OiBjb2xzLFxuICAgICAgICBkZWNyZW1lbnQ6IHRydWUsXG4gICAgICAgIGRpc2FibGVkSW5kaWNlc1xuICAgICAgfSk7XG4gICAgICBpZiAobG9vcCAmJiAocHJldkluZGV4IC0gY29scyA8IG1pbkluZGV4IHx8IG5leHRJbmRleCA8IDApKSB7XG4gICAgICAgIGNvbnN0IGNvbCA9IHByZXZJbmRleCAlIGNvbHM7XG4gICAgICAgIGNvbnN0IG1heENvbCA9IG1heEluZGV4ICUgY29scztcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gbWF4SW5kZXggLSAobWF4Q29sIC0gY29sKTtcbiAgICAgICAgaWYgKG1heENvbCA9PT0gY29sKSB7XG4gICAgICAgICAgbmV4dEluZGV4ID0gbWF4SW5kZXg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV4dEluZGV4ID0gbWF4Q29sID4gY29sID8gb2Zmc2V0IDogb2Zmc2V0IC0gY29scztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaXNJbmRleE91dE9mQm91bmRzKGVsZW1lbnRzUmVmLCBuZXh0SW5kZXgpKSB7XG4gICAgICBuZXh0SW5kZXggPSBwcmV2SW5kZXg7XG4gICAgfVxuICB9XG4gIGlmIChldmVudC5rZXkgPT09IEFSUk9XX0RPV04pIHtcbiAgICBzdG9wICYmIHN0b3BFdmVudChldmVudCk7XG4gICAgaWYgKHByZXZJbmRleCA9PT0gLTEpIHtcbiAgICAgIG5leHRJbmRleCA9IG1pbkluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0SW5kZXggPSBmaW5kTm9uRGlzYWJsZWRJbmRleChlbGVtZW50c1JlZiwge1xuICAgICAgICBzdGFydGluZ0luZGV4OiBwcmV2SW5kZXgsXG4gICAgICAgIGFtb3VudDogY29scyxcbiAgICAgICAgZGlzYWJsZWRJbmRpY2VzXG4gICAgICB9KTtcbiAgICAgIGlmIChsb29wICYmIHByZXZJbmRleCArIGNvbHMgPiBtYXhJbmRleCkge1xuICAgICAgICBuZXh0SW5kZXggPSBmaW5kTm9uRGlzYWJsZWRJbmRleChlbGVtZW50c1JlZiwge1xuICAgICAgICAgIHN0YXJ0aW5nSW5kZXg6IHByZXZJbmRleCAlIGNvbHMgLSBjb2xzLFxuICAgICAgICAgIGFtb3VudDogY29scyxcbiAgICAgICAgICBkaXNhYmxlZEluZGljZXNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpc0luZGV4T3V0T2ZCb3VuZHMoZWxlbWVudHNSZWYsIG5leHRJbmRleCkpIHtcbiAgICAgIG5leHRJbmRleCA9IHByZXZJbmRleDtcbiAgICB9XG4gIH1cblxuICAvLyBSZW1haW5zIG9uIHRoZSBzYW1lIHJvdy9jb2x1bW4uXG4gIGlmIChvcmllbnRhdGlvbiA9PT0gJ2JvdGgnKSB7XG4gICAgY29uc3QgcHJldlJvdyA9IGZsb29yKHByZXZJbmRleCAvIGNvbHMpO1xuICAgIGlmIChldmVudC5rZXkgPT09IEFSUk9XX1JJR0hUKSB7XG4gICAgICBzdG9wICYmIHN0b3BFdmVudChldmVudCk7XG4gICAgICBpZiAocHJldkluZGV4ICUgY29scyAhPT0gY29scyAtIDEpIHtcbiAgICAgICAgbmV4dEluZGV4ID0gZmluZE5vbkRpc2FibGVkSW5kZXgoZWxlbWVudHNSZWYsIHtcbiAgICAgICAgICBzdGFydGluZ0luZGV4OiBwcmV2SW5kZXgsXG4gICAgICAgICAgZGlzYWJsZWRJbmRpY2VzXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAobG9vcCAmJiBpc0RpZmZlcmVudFJvdyhuZXh0SW5kZXgsIGNvbHMsIHByZXZSb3cpKSB7XG4gICAgICAgICAgbmV4dEluZGV4ID0gZmluZE5vbkRpc2FibGVkSW5kZXgoZWxlbWVudHNSZWYsIHtcbiAgICAgICAgICAgIHN0YXJ0aW5nSW5kZXg6IHByZXZJbmRleCAtIHByZXZJbmRleCAlIGNvbHMgLSAxLFxuICAgICAgICAgICAgZGlzYWJsZWRJbmRpY2VzXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAobG9vcCkge1xuICAgICAgICBuZXh0SW5kZXggPSBmaW5kTm9uRGlzYWJsZWRJbmRleChlbGVtZW50c1JlZiwge1xuICAgICAgICAgIHN0YXJ0aW5nSW5kZXg6IHByZXZJbmRleCAtIHByZXZJbmRleCAlIGNvbHMgLSAxLFxuICAgICAgICAgIGRpc2FibGVkSW5kaWNlc1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChpc0RpZmZlcmVudFJvdyhuZXh0SW5kZXgsIGNvbHMsIHByZXZSb3cpKSB7XG4gICAgICAgIG5leHRJbmRleCA9IHByZXZJbmRleDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gQVJST1dfTEVGVCkge1xuICAgICAgc3RvcCAmJiBzdG9wRXZlbnQoZXZlbnQpO1xuICAgICAgaWYgKHByZXZJbmRleCAlIGNvbHMgIT09IDApIHtcbiAgICAgICAgbmV4dEluZGV4ID0gZmluZE5vbkRpc2FibGVkSW5kZXgoZWxlbWVudHNSZWYsIHtcbiAgICAgICAgICBzdGFydGluZ0luZGV4OiBwcmV2SW5kZXgsXG4gICAgICAgICAgZGVjcmVtZW50OiB0cnVlLFxuICAgICAgICAgIGRpc2FibGVkSW5kaWNlc1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGxvb3AgJiYgaXNEaWZmZXJlbnRSb3cobmV4dEluZGV4LCBjb2xzLCBwcmV2Um93KSkge1xuICAgICAgICAgIG5leHRJbmRleCA9IGZpbmROb25EaXNhYmxlZEluZGV4KGVsZW1lbnRzUmVmLCB7XG4gICAgICAgICAgICBzdGFydGluZ0luZGV4OiBwcmV2SW5kZXggKyAoY29scyAtIHByZXZJbmRleCAlIGNvbHMpLFxuICAgICAgICAgICAgZGVjcmVtZW50OiB0cnVlLFxuICAgICAgICAgICAgZGlzYWJsZWRJbmRpY2VzXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAobG9vcCkge1xuICAgICAgICBuZXh0SW5kZXggPSBmaW5kTm9uRGlzYWJsZWRJbmRleChlbGVtZW50c1JlZiwge1xuICAgICAgICAgIHN0YXJ0aW5nSW5kZXg6IHByZXZJbmRleCArIChjb2xzIC0gcHJldkluZGV4ICUgY29scyksXG4gICAgICAgICAgZGVjcmVtZW50OiB0cnVlLFxuICAgICAgICAgIGRpc2FibGVkSW5kaWNlc1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChpc0RpZmZlcmVudFJvdyhuZXh0SW5kZXgsIGNvbHMsIHByZXZSb3cpKSB7XG4gICAgICAgIG5leHRJbmRleCA9IHByZXZJbmRleDtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgbGFzdFJvdyA9IGZsb29yKG1heEluZGV4IC8gY29scykgPT09IHByZXZSb3c7XG4gICAgaWYgKGlzSW5kZXhPdXRPZkJvdW5kcyhlbGVtZW50c1JlZiwgbmV4dEluZGV4KSkge1xuICAgICAgaWYgKGxvb3AgJiYgbGFzdFJvdykge1xuICAgICAgICBuZXh0SW5kZXggPSBldmVudC5rZXkgPT09IEFSUk9XX0xFRlQgPyBtYXhJbmRleCA6IGZpbmROb25EaXNhYmxlZEluZGV4KGVsZW1lbnRzUmVmLCB7XG4gICAgICAgICAgc3RhcnRpbmdJbmRleDogcHJldkluZGV4IC0gcHJldkluZGV4ICUgY29scyAtIDEsXG4gICAgICAgICAgZGlzYWJsZWRJbmRpY2VzXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV4dEluZGV4ID0gcHJldkluZGV4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gbmV4dEluZGV4O1xufVxuXG4vKiogRm9yIGVhY2ggY2VsbCBpbmRleCwgZ2V0cyB0aGUgaXRlbSBpbmRleCB0aGF0IG9jY3VwaWVzIHRoYXQgY2VsbCAqL1xuZnVuY3Rpb24gYnVpbGRDZWxsTWFwKHNpemVzLCBjb2xzLCBkZW5zZSkge1xuICBjb25zdCBjZWxsTWFwID0gW107XG4gIGxldCBzdGFydEluZGV4ID0gMDtcbiAgc2l6ZXMuZm9yRWFjaCgoX3JlZjIsIGluZGV4KSA9PiB7XG4gICAgbGV0IHtcbiAgICAgIHdpZHRoLFxuICAgICAgaGVpZ2h0XG4gICAgfSA9IF9yZWYyO1xuICAgIGlmICh3aWR0aCA+IGNvbHMpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiW0Zsb2F0aW5nIFVJXTogSW52YWxpZCBncmlkIC0gaXRlbSB3aWR0aCBhdCBpbmRleCBcIiArIGluZGV4ICsgXCIgaXMgZ3JlYXRlciB0aGFuIGdyaWQgY29sdW1uc1wiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGV0IGl0ZW1QbGFjZWQgPSBmYWxzZTtcbiAgICBpZiAoZGVuc2UpIHtcbiAgICAgIHN0YXJ0SW5kZXggPSAwO1xuICAgIH1cbiAgICB3aGlsZSAoIWl0ZW1QbGFjZWQpIHtcbiAgICAgIGNvbnN0IHRhcmdldENlbGxzID0gW107XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHdpZHRoOyBpKyspIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBoZWlnaHQ7IGorKykge1xuICAgICAgICAgIHRhcmdldENlbGxzLnB1c2goc3RhcnRJbmRleCArIGkgKyBqICogY29scyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzdGFydEluZGV4ICUgY29scyArIHdpZHRoIDw9IGNvbHMgJiYgdGFyZ2V0Q2VsbHMuZXZlcnkoY2VsbCA9PiBjZWxsTWFwW2NlbGxdID09IG51bGwpKSB7XG4gICAgICAgIHRhcmdldENlbGxzLmZvckVhY2goY2VsbCA9PiB7XG4gICAgICAgICAgY2VsbE1hcFtjZWxsXSA9IGluZGV4O1xuICAgICAgICB9KTtcbiAgICAgICAgaXRlbVBsYWNlZCA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGFydEluZGV4Kys7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICAvLyBjb252ZXJ0IGludG8gYSBub24tc3BhcnNlIGFycmF5XG4gIHJldHVybiBbLi4uY2VsbE1hcF07XG59XG5cbi8qKiBHZXRzIGNlbGwgaW5kZXggb2YgYW4gaXRlbSdzIGNvcm5lciBvciAtMSB3aGVuIGluZGV4IGlzIC0xLiAqL1xuZnVuY3Rpb24gZ2V0Q2VsbEluZGV4T2ZDb3JuZXIoaW5kZXgsIHNpemVzLCBjZWxsTWFwLCBjb2xzLCBjb3JuZXIpIHtcbiAgaWYgKGluZGV4ID09PSAtMSkgcmV0dXJuIC0xO1xuICBjb25zdCBmaXJzdENlbGxJbmRleCA9IGNlbGxNYXAuaW5kZXhPZihpbmRleCk7XG4gIGNvbnN0IHNpemVJdGVtID0gc2l6ZXNbaW5kZXhdO1xuICBzd2l0Y2ggKGNvcm5lcikge1xuICAgIGNhc2UgJ3RsJzpcbiAgICAgIHJldHVybiBmaXJzdENlbGxJbmRleDtcbiAgICBjYXNlICd0cic6XG4gICAgICBpZiAoIXNpemVJdGVtKSB7XG4gICAgICAgIHJldHVybiBmaXJzdENlbGxJbmRleDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmaXJzdENlbGxJbmRleCArIHNpemVJdGVtLndpZHRoIC0gMTtcbiAgICBjYXNlICdibCc6XG4gICAgICBpZiAoIXNpemVJdGVtKSB7XG4gICAgICAgIHJldHVybiBmaXJzdENlbGxJbmRleDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmaXJzdENlbGxJbmRleCArIChzaXplSXRlbS5oZWlnaHQgLSAxKSAqIGNvbHM7XG4gICAgY2FzZSAnYnInOlxuICAgICAgcmV0dXJuIGNlbGxNYXAubGFzdEluZGV4T2YoaW5kZXgpO1xuICB9XG59XG5cbi8qKiBHZXRzIGFsbCBjZWxsIGluZGljZXMgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSBzcGVjaWZpZWQgaW5kaWNlcyAqL1xuZnVuY3Rpb24gZ2V0Q2VsbEluZGljZXMoaW5kaWNlcywgY2VsbE1hcCkge1xuICByZXR1cm4gY2VsbE1hcC5mbGF0TWFwKChpbmRleCwgY2VsbEluZGV4KSA9PiBpbmRpY2VzLmluY2x1ZGVzKGluZGV4KSA/IFtjZWxsSW5kZXhdIDogW10pO1xufVxuZnVuY3Rpb24gaXNEaXNhYmxlZChsaXN0LCBpbmRleCwgZGlzYWJsZWRJbmRpY2VzKSB7XG4gIGlmIChkaXNhYmxlZEluZGljZXMpIHtcbiAgICByZXR1cm4gZGlzYWJsZWRJbmRpY2VzLmluY2x1ZGVzKGluZGV4KTtcbiAgfVxuICBjb25zdCBlbGVtZW50ID0gbGlzdFtpbmRleF07XG4gIHJldHVybiBlbGVtZW50ID09IG51bGwgfHwgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgfHwgZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2FyaWEtZGlzYWJsZWQnKSA9PT0gJ3RydWUnO1xufVxuXG5sZXQgcmFmSWQgPSAwO1xuZnVuY3Rpb24gZW5xdWV1ZUZvY3VzKGVsLCBvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cbiAgY29uc3Qge1xuICAgIHByZXZlbnRTY3JvbGwgPSBmYWxzZSxcbiAgICBjYW5jZWxQcmV2aW91cyA9IHRydWUsXG4gICAgc3luYyA9IGZhbHNlXG4gIH0gPSBvcHRpb25zO1xuICBjYW5jZWxQcmV2aW91cyAmJiBjYW5jZWxBbmltYXRpb25GcmFtZShyYWZJZCk7XG4gIGNvbnN0IGV4ZWMgPSAoKSA9PiBlbCA9PSBudWxsID8gdm9pZCAwIDogZWwuZm9jdXMoe1xuICAgIHByZXZlbnRTY3JvbGxcbiAgfSk7XG4gIGlmIChzeW5jKSB7XG4gICAgZXhlYygpO1xuICB9IGVsc2Uge1xuICAgIHJhZklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGV4ZWMpO1xuICB9XG59XG5cbnZhciBpbmRleCA9IHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgPyB1c2VMYXlvdXRFZmZlY3QgOiB1c2VFZmZlY3Q7XG5cbmZ1bmN0aW9uIHNvcnRCeURvY3VtZW50UG9zaXRpb24oYSwgYikge1xuICBjb25zdCBwb3NpdGlvbiA9IGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYik7XG4gIGlmIChwb3NpdGlvbiAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HIHx8IHBvc2l0aW9uICYgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkpIHtcbiAgICByZXR1cm4gLTE7XG4gIH1cbiAgaWYgKHBvc2l0aW9uICYgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkcgfHwgcG9zaXRpb24gJiBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5TKSB7XG4gICAgcmV0dXJuIDE7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5mdW5jdGlvbiBhcmVNYXBzRXF1YWwobWFwMSwgbWFwMikge1xuICBpZiAobWFwMS5zaXplICE9PSBtYXAyLnNpemUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgbWFwMS5lbnRyaWVzKCkpIHtcbiAgICBpZiAodmFsdWUgIT09IG1hcDIuZ2V0KGtleSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5jb25zdCBGbG9hdGluZ0xpc3RDb250ZXh0ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUNvbnRleHQoe1xuICByZWdpc3RlcjogKCkgPT4ge30sXG4gIHVucmVnaXN0ZXI6ICgpID0+IHt9LFxuICBtYXA6IC8qI19fUFVSRV9fKi9uZXcgTWFwKCksXG4gIGVsZW1lbnRzUmVmOiB7XG4gICAgY3VycmVudDogW11cbiAgfVxufSk7XG4vKipcbiAqIFByb3ZpZGVzIGNvbnRleHQgZm9yIGEgbGlzdCBvZiBpdGVtcyB3aXRoaW4gdGhlIGZsb2F0aW5nIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvRmxvYXRpbmdMaXN0XG4gKi9cbmZ1bmN0aW9uIEZsb2F0aW5nTGlzdChwcm9wcykge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgZWxlbWVudHNSZWYsXG4gICAgbGFiZWxzUmVmXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW21hcCwgc2V0TWFwXSA9IFJlYWN0LnVzZVN0YXRlKCgpID0+IG5ldyBNYXAoKSk7XG4gIGNvbnN0IHJlZ2lzdGVyID0gUmVhY3QudXNlQ2FsbGJhY2sobm9kZSA9PiB7XG4gICAgc2V0TWFwKHByZXZNYXAgPT4gbmV3IE1hcChwcmV2TWFwKS5zZXQobm9kZSwgbnVsbCkpO1xuICB9LCBbXSk7XG4gIGNvbnN0IHVucmVnaXN0ZXIgPSBSZWFjdC51c2VDYWxsYmFjayhub2RlID0+IHtcbiAgICBzZXRNYXAocHJldk1hcCA9PiB7XG4gICAgICBjb25zdCBtYXAgPSBuZXcgTWFwKHByZXZNYXApO1xuICAgICAgbWFwLmRlbGV0ZShub2RlKTtcbiAgICAgIHJldHVybiBtYXA7XG4gICAgfSk7XG4gIH0sIFtdKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGNvbnN0IG5ld01hcCA9IG5ldyBNYXAobWFwKTtcbiAgICBjb25zdCBub2RlcyA9IEFycmF5LmZyb20obmV3TWFwLmtleXMoKSkuc29ydChzb3J0QnlEb2N1bWVudFBvc2l0aW9uKTtcbiAgICBub2Rlcy5mb3JFYWNoKChub2RlLCBpbmRleCkgPT4ge1xuICAgICAgbmV3TWFwLnNldChub2RlLCBpbmRleCk7XG4gICAgfSk7XG4gICAgaWYgKCFhcmVNYXBzRXF1YWwobWFwLCBuZXdNYXApKSB7XG4gICAgICBzZXRNYXAobmV3TWFwKTtcbiAgICB9XG4gIH0sIFttYXBdKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEZsb2F0aW5nTGlzdENvbnRleHQuUHJvdmlkZXIsIHtcbiAgICB2YWx1ZTogUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgICAgcmVnaXN0ZXIsXG4gICAgICB1bnJlZ2lzdGVyLFxuICAgICAgbWFwLFxuICAgICAgZWxlbWVudHNSZWYsXG4gICAgICBsYWJlbHNSZWZcbiAgICB9KSwgW3JlZ2lzdGVyLCB1bnJlZ2lzdGVyLCBtYXAsIGVsZW1lbnRzUmVmLCBsYWJlbHNSZWZdKVxuICB9LCBjaGlsZHJlbik7XG59XG4vKipcbiAqIFVzZWQgdG8gcmVnaXN0ZXIgYSBsaXN0IGl0ZW0gYW5kIGl0cyBpbmRleCAoRE9NIHBvc2l0aW9uKSBpbiB0aGVcbiAqIGBGbG9hdGluZ0xpc3RgLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL0Zsb2F0aW5nTGlzdCN1c2VsaXN0aXRlbVxuICovXG5mdW5jdGlvbiB1c2VMaXN0SXRlbShwcm9wcykge1xuICBpZiAocHJvcHMgPT09IHZvaWQgMCkge1xuICAgIHByb3BzID0ge307XG4gIH1cbiAgY29uc3Qge1xuICAgIGxhYmVsXG4gIH0gPSBwcm9wcztcbiAgY29uc3Qge1xuICAgIHJlZ2lzdGVyLFxuICAgIHVucmVnaXN0ZXIsXG4gICAgbWFwLFxuICAgIGVsZW1lbnRzUmVmLFxuICAgIGxhYmVsc1JlZlxuICB9ID0gUmVhY3QudXNlQ29udGV4dChGbG9hdGluZ0xpc3RDb250ZXh0KTtcbiAgY29uc3QgW2luZGV4JDEsIHNldEluZGV4XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICBjb25zdCBjb21wb25lbnRSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGNvbnN0IHJlZiA9IFJlYWN0LnVzZUNhbGxiYWNrKG5vZGUgPT4ge1xuICAgIGNvbXBvbmVudFJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICBpZiAoaW5kZXgkMSAhPT0gbnVsbCkge1xuICAgICAgZWxlbWVudHNSZWYuY3VycmVudFtpbmRleCQxXSA9IG5vZGU7XG4gICAgICBpZiAobGFiZWxzUmVmKSB7XG4gICAgICAgIHZhciBfbm9kZSR0ZXh0Q29udGVudDtcbiAgICAgICAgY29uc3QgaXNMYWJlbERlZmluZWQgPSBsYWJlbCAhPT0gdW5kZWZpbmVkO1xuICAgICAgICBsYWJlbHNSZWYuY3VycmVudFtpbmRleCQxXSA9IGlzTGFiZWxEZWZpbmVkID8gbGFiZWwgOiAoX25vZGUkdGV4dENvbnRlbnQgPSBub2RlID09IG51bGwgPyB2b2lkIDAgOiBub2RlLnRleHRDb250ZW50KSAhPSBudWxsID8gX25vZGUkdGV4dENvbnRlbnQgOiBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW2luZGV4JDEsIGVsZW1lbnRzUmVmLCBsYWJlbHNSZWYsIGxhYmVsXSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBjb25zdCBub2RlID0gY29tcG9uZW50UmVmLmN1cnJlbnQ7XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIHJlZ2lzdGVyKG5vZGUpO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgdW5yZWdpc3Rlcihub2RlKTtcbiAgICAgIH07XG4gICAgfVxuICB9LCBbcmVnaXN0ZXIsIHVucmVnaXN0ZXJdKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGNvbnN0IGluZGV4ID0gY29tcG9uZW50UmVmLmN1cnJlbnQgPyBtYXAuZ2V0KGNvbXBvbmVudFJlZi5jdXJyZW50KSA6IG51bGw7XG4gICAgaWYgKGluZGV4ICE9IG51bGwpIHtcbiAgICAgIHNldEluZGV4KGluZGV4KTtcbiAgICB9XG4gIH0sIFttYXBdKTtcbiAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICByZWYsXG4gICAgaW5kZXg6IGluZGV4JDEgPT0gbnVsbCA/IC0xIDogaW5kZXgkMVxuICB9KSwgW2luZGV4JDEsIHJlZl0pO1xufVxuXG5mdW5jdGlvbiByZW5kZXJKc3gocmVuZGVyLCBjb21wdXRlZFByb3BzKSB7XG4gIGlmICh0eXBlb2YgcmVuZGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHJlbmRlcihjb21wdXRlZFByb3BzKTtcbiAgfVxuICBpZiAocmVuZGVyKSB7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jbG9uZUVsZW1lbnQocmVuZGVyLCBjb21wdXRlZFByb3BzKTtcbiAgfVxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgY29tcHV0ZWRQcm9wcyk7XG59XG5jb25zdCBDb21wb3NpdGVDb250ZXh0ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUNvbnRleHQoe1xuICBhY3RpdmVJbmRleDogMCxcbiAgb25OYXZpZ2F0ZTogKCkgPT4ge31cbn0pO1xuY29uc3QgaG9yaXpvbnRhbEtleXMgPSBbQVJST1dfTEVGVCwgQVJST1dfUklHSFRdO1xuY29uc3QgdmVydGljYWxLZXlzID0gW0FSUk9XX1VQLCBBUlJPV19ET1dOXTtcbmNvbnN0IGFsbEtleXMgPSBbLi4uaG9yaXpvbnRhbEtleXMsIC4uLnZlcnRpY2FsS2V5c107XG5cbi8qKlxuICogQ3JlYXRlcyBhIHNpbmdsZSB0YWIgc3RvcCB3aG9zZSBpdGVtcyBhcmUgbmF2aWdhdGVkIGJ5IGFycm93IGtleXMsIHdoaWNoXG4gKiBwcm92aWRlcyBsaXN0IG5hdmlnYXRpb24gb3V0c2lkZSBvZiBmbG9hdGluZyBlbGVtZW50IGNvbnRleHRzLlxuICpcbiAqIFRoaXMgaXMgdXNlZnVsIHRvIGVuYWJsZSBuYXZpZ2F0aW9uIG9mIGEgbGlzdCBvZiBpdGVtcyB0aGF0IGFyZW7igJl0IHBhcnQgb2YgYVxuICogZmxvYXRpbmcgZWxlbWVudC4gQSBtZW51YmFyIGlzIGFuIGV4YW1wbGUgb2YgYSBjb21wb3NpdGUsIHdpdGggZWFjaCByZWZlcmVuY2VcbiAqIGVsZW1lbnQgYmVpbmcgYW4gaXRlbS5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9Db21wb3NpdGVcbiAqL1xuY29uc3QgQ29tcG9zaXRlID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24gQ29tcG9zaXRlKHByb3BzLCBmb3J3YXJkZWRSZWYpIHtcbiAgY29uc3Qge1xuICAgIHJlbmRlcixcbiAgICBvcmllbnRhdGlvbiA9ICdib3RoJyxcbiAgICBsb29wID0gdHJ1ZSxcbiAgICBjb2xzID0gMSxcbiAgICBkaXNhYmxlZEluZGljZXMsXG4gICAgYWN0aXZlSW5kZXg6IGV4dGVybmFsQWN0aXZlSW5kZXgsXG4gICAgb25OYXZpZ2F0ZTogZXh0ZXJuYWxTZXRBY3RpdmVJbmRleCxcbiAgICBpdGVtU2l6ZXMsXG4gICAgZGVuc2UgPSBmYWxzZSxcbiAgICAuLi5kb21Qcm9wc1xuICB9ID0gcHJvcHM7XG4gIGNvbnN0IFtpbnRlcm5hbEFjdGl2ZUluZGV4LCBpbnRlcm5hbFNldEFjdGl2ZUluZGV4XSA9IFJlYWN0LnVzZVN0YXRlKDApO1xuICBjb25zdCBhY3RpdmVJbmRleCA9IGV4dGVybmFsQWN0aXZlSW5kZXggIT0gbnVsbCA/IGV4dGVybmFsQWN0aXZlSW5kZXggOiBpbnRlcm5hbEFjdGl2ZUluZGV4O1xuICBjb25zdCBvbk5hdmlnYXRlID0gdXNlRWZmZWN0RXZlbnQoZXh0ZXJuYWxTZXRBY3RpdmVJbmRleCAhPSBudWxsID8gZXh0ZXJuYWxTZXRBY3RpdmVJbmRleCA6IGludGVybmFsU2V0QWN0aXZlSW5kZXgpO1xuICBjb25zdCBlbGVtZW50c1JlZiA9IFJlYWN0LnVzZVJlZihbXSk7XG4gIGNvbnN0IHJlbmRlckVsZW1lbnRQcm9wcyA9IHJlbmRlciAmJiB0eXBlb2YgcmVuZGVyICE9PSAnZnVuY3Rpb24nID8gcmVuZGVyLnByb3BzIDoge307XG4gIGNvbnN0IGNvbnRleHRWYWx1ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBhY3RpdmVJbmRleCxcbiAgICBvbk5hdmlnYXRlXG4gIH0pLCBbYWN0aXZlSW5kZXgsIG9uTmF2aWdhdGVdKTtcbiAgY29uc3QgaXNHcmlkID0gY29scyA+IDE7XG4gIGZ1bmN0aW9uIGhhbmRsZUtleURvd24oZXZlbnQpIHtcbiAgICBpZiAoIWFsbEtleXMuaW5jbHVkZXMoZXZlbnQua2V5KSkgcmV0dXJuO1xuICAgIGxldCBuZXh0SW5kZXggPSBhY3RpdmVJbmRleDtcbiAgICBjb25zdCBtaW5JbmRleCA9IGdldE1pbkluZGV4KGVsZW1lbnRzUmVmLCBkaXNhYmxlZEluZGljZXMpO1xuICAgIGNvbnN0IG1heEluZGV4ID0gZ2V0TWF4SW5kZXgoZWxlbWVudHNSZWYsIGRpc2FibGVkSW5kaWNlcyk7XG4gICAgaWYgKGlzR3JpZCkge1xuICAgICAgY29uc3Qgc2l6ZXMgPSBpdGVtU2l6ZXMgfHwgQXJyYXkuZnJvbSh7XG4gICAgICAgIGxlbmd0aDogZWxlbWVudHNSZWYuY3VycmVudC5sZW5ndGhcbiAgICAgIH0sICgpID0+ICh7XG4gICAgICAgIHdpZHRoOiAxLFxuICAgICAgICBoZWlnaHQ6IDFcbiAgICAgIH0pKTtcbiAgICAgIC8vIFRvIGNhbGN1bGF0ZSBtb3ZlbWVudHMgb24gdGhlIGdyaWQsIHdlIHVzZSBoeXBvdGhldGljYWwgY2VsbCBpbmRpY2VzXG4gICAgICAvLyBhcyBpZiBldmVyeSBpdGVtIHdhcyAxeDEsIHRoZW4gY29udmVydCBiYWNrIHRvIHJlYWwgaW5kaWNlcy5cbiAgICAgIGNvbnN0IGNlbGxNYXAgPSBidWlsZENlbGxNYXAoc2l6ZXMsIGNvbHMsIGRlbnNlKTtcbiAgICAgIGNvbnN0IG1pbkdyaWRJbmRleCA9IGNlbGxNYXAuZmluZEluZGV4KGluZGV4ID0+IGluZGV4ICE9IG51bGwgJiYgIWlzRGlzYWJsZWQoZWxlbWVudHNSZWYuY3VycmVudCwgaW5kZXgsIGRpc2FibGVkSW5kaWNlcykpO1xuICAgICAgLy8gbGFzdCBlbmFibGVkIGluZGV4XG4gICAgICBjb25zdCBtYXhHcmlkSW5kZXggPSBjZWxsTWFwLnJlZHVjZSgoZm91bmRJbmRleCwgaW5kZXgsIGNlbGxJbmRleCkgPT4gaW5kZXggIT0gbnVsbCAmJiAhaXNEaXNhYmxlZChlbGVtZW50c1JlZi5jdXJyZW50LCBpbmRleCwgZGlzYWJsZWRJbmRpY2VzKSA/IGNlbGxJbmRleCA6IGZvdW5kSW5kZXgsIC0xKTtcbiAgICAgIG5leHRJbmRleCA9IGNlbGxNYXBbZ2V0R3JpZE5hdmlnYXRlZEluZGV4KHtcbiAgICAgICAgY3VycmVudDogY2VsbE1hcC5tYXAoaXRlbUluZGV4ID0+IGl0ZW1JbmRleCA/IGVsZW1lbnRzUmVmLmN1cnJlbnRbaXRlbUluZGV4XSA6IG51bGwpXG4gICAgICB9LCB7XG4gICAgICAgIGV2ZW50LFxuICAgICAgICBvcmllbnRhdGlvbixcbiAgICAgICAgbG9vcCxcbiAgICAgICAgY29scyxcbiAgICAgICAgLy8gdHJlYXQgdW5kZWZpbmVkIChlbXB0eSBncmlkIHNwYWNlcykgYXMgZGlzYWJsZWQgaW5kaWNlcyBzbyB3ZVxuICAgICAgICAvLyBkb24ndCBlbmQgdXAgaW4gdGhlbVxuICAgICAgICBkaXNhYmxlZEluZGljZXM6IGdldENlbGxJbmRpY2VzKFsuLi4oZGlzYWJsZWRJbmRpY2VzIHx8IGVsZW1lbnRzUmVmLmN1cnJlbnQubWFwKChfLCBpbmRleCkgPT4gaXNEaXNhYmxlZChlbGVtZW50c1JlZi5jdXJyZW50LCBpbmRleCkgPyBpbmRleCA6IHVuZGVmaW5lZCkpLCB1bmRlZmluZWRdLCBjZWxsTWFwKSxcbiAgICAgICAgbWluSW5kZXg6IG1pbkdyaWRJbmRleCxcbiAgICAgICAgbWF4SW5kZXg6IG1heEdyaWRJbmRleCxcbiAgICAgICAgcHJldkluZGV4OiBnZXRDZWxsSW5kZXhPZkNvcm5lcihhY3RpdmVJbmRleCA+IG1heEluZGV4ID8gbWluSW5kZXggOiBhY3RpdmVJbmRleCwgc2l6ZXMsIGNlbGxNYXAsIGNvbHMsXG4gICAgICAgIC8vIHVzZSBhIGNvcm5lciBtYXRjaGluZyB0aGUgZWRnZSBjbG9zZXN0IHRvIHRoZSBkaXJlY3Rpb24gd2UncmVcbiAgICAgICAgLy8gbW92aW5nIGluIHNvIHdlIGRvbid0IGVuZCB1cCBpbiB0aGUgc2FtZSBpdGVtLiBQcmVmZXJcbiAgICAgICAgLy8gdG9wL2xlZnQgb3ZlciBib3R0b20vcmlnaHQuXG4gICAgICAgIGV2ZW50LmtleSA9PT0gQVJST1dfRE9XTiA/ICdibCcgOiBldmVudC5rZXkgPT09IEFSUk9XX1JJR0hUID8gJ3RyJyA6ICd0bCcpXG4gICAgICB9KV07IC8vIG5hdmlnYXRlZCBjZWxsIHdpbGwgbmV2ZXIgYmUgbnVsbGlzaFxuICAgIH1cbiAgICBjb25zdCB0b0VuZEtleXMgPSB7XG4gICAgICBob3Jpem9udGFsOiBbQVJST1dfUklHSFRdLFxuICAgICAgdmVydGljYWw6IFtBUlJPV19ET1dOXSxcbiAgICAgIGJvdGg6IFtBUlJPV19SSUdIVCwgQVJST1dfRE9XTl1cbiAgICB9W29yaWVudGF0aW9uXTtcbiAgICBjb25zdCB0b1N0YXJ0S2V5cyA9IHtcbiAgICAgIGhvcml6b250YWw6IFtBUlJPV19MRUZUXSxcbiAgICAgIHZlcnRpY2FsOiBbQVJST1dfVVBdLFxuICAgICAgYm90aDogW0FSUk9XX0xFRlQsIEFSUk9XX1VQXVxuICAgIH1bb3JpZW50YXRpb25dO1xuICAgIGNvbnN0IHByZXZlbnRlZEtleXMgPSBpc0dyaWQgPyBhbGxLZXlzIDoge1xuICAgICAgaG9yaXpvbnRhbDogaG9yaXpvbnRhbEtleXMsXG4gICAgICB2ZXJ0aWNhbDogdmVydGljYWxLZXlzLFxuICAgICAgYm90aDogYWxsS2V5c1xuICAgIH1bb3JpZW50YXRpb25dO1xuICAgIGlmIChuZXh0SW5kZXggPT09IGFjdGl2ZUluZGV4ICYmIFsuLi50b0VuZEtleXMsIC4uLnRvU3RhcnRLZXlzXS5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICBpZiAobG9vcCAmJiBuZXh0SW5kZXggPT09IG1heEluZGV4ICYmIHRvRW5kS2V5cy5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICAgIG5leHRJbmRleCA9IG1pbkluZGV4O1xuICAgICAgfSBlbHNlIGlmIChsb29wICYmIG5leHRJbmRleCA9PT0gbWluSW5kZXggJiYgdG9TdGFydEtleXMuaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuICAgICAgICBuZXh0SW5kZXggPSBtYXhJbmRleDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHRJbmRleCA9IGZpbmROb25EaXNhYmxlZEluZGV4KGVsZW1lbnRzUmVmLCB7XG4gICAgICAgICAgc3RhcnRpbmdJbmRleDogbmV4dEluZGV4LFxuICAgICAgICAgIGRlY3JlbWVudDogdG9TdGFydEtleXMuaW5jbHVkZXMoZXZlbnQua2V5KSxcbiAgICAgICAgICBkaXNhYmxlZEluZGljZXNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChuZXh0SW5kZXggIT09IGFjdGl2ZUluZGV4ICYmICFpc0luZGV4T3V0T2ZCb3VuZHMoZWxlbWVudHNSZWYsIG5leHRJbmRleCkpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgaWYgKHByZXZlbnRlZEtleXMuaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgICAgb25OYXZpZ2F0ZShuZXh0SW5kZXgpO1xuXG4gICAgICAvLyBXYWl0IGZvciBGb2N1c01hbmFnZXIgYHJldHVybkZvY3VzYCB0byBleGVjdXRlLlxuICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICBlbnF1ZXVlRm9jdXMoZWxlbWVudHNSZWYuY3VycmVudFtuZXh0SW5kZXhdKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBjb25zdCBjb21wdXRlZFByb3BzID0ge1xuICAgIC4uLmRvbVByb3BzLFxuICAgIC4uLnJlbmRlckVsZW1lbnRQcm9wcyxcbiAgICByZWY6IGZvcndhcmRlZFJlZixcbiAgICAnYXJpYS1vcmllbnRhdGlvbic6IG9yaWVudGF0aW9uID09PSAnYm90aCcgPyB1bmRlZmluZWQgOiBvcmllbnRhdGlvbixcbiAgICBvbktleURvd24oZSkge1xuICAgICAgZG9tUHJvcHMub25LZXlEb3duID09IG51bGwgfHwgZG9tUHJvcHMub25LZXlEb3duKGUpO1xuICAgICAgcmVuZGVyRWxlbWVudFByb3BzLm9uS2V5RG93biA9PSBudWxsIHx8IHJlbmRlckVsZW1lbnRQcm9wcy5vbktleURvd24oZSk7XG4gICAgICBoYW5kbGVLZXlEb3duKGUpO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KENvbXBvc2l0ZUNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICB2YWx1ZTogY29udGV4dFZhbHVlXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEZsb2F0aW5nTGlzdCwge1xuICAgIGVsZW1lbnRzUmVmOiBlbGVtZW50c1JlZlxuICB9LCByZW5kZXJKc3gocmVuZGVyLCBjb21wdXRlZFByb3BzKSkpO1xufSk7XG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9Db21wb3NpdGVcbiAqL1xuY29uc3QgQ29tcG9zaXRlSXRlbSA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIENvbXBvc2l0ZUl0ZW0ocHJvcHMsIGZvcndhcmRlZFJlZikge1xuICBjb25zdCB7XG4gICAgcmVuZGVyLFxuICAgIC4uLmRvbVByb3BzXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgcmVuZGVyRWxlbWVudFByb3BzID0gcmVuZGVyICYmIHR5cGVvZiByZW5kZXIgIT09ICdmdW5jdGlvbicgPyByZW5kZXIucHJvcHMgOiB7fTtcbiAgY29uc3Qge1xuICAgIGFjdGl2ZUluZGV4LFxuICAgIG9uTmF2aWdhdGVcbiAgfSA9IFJlYWN0LnVzZUNvbnRleHQoQ29tcG9zaXRlQ29udGV4dCk7XG4gIGNvbnN0IHtcbiAgICByZWYsXG4gICAgaW5kZXhcbiAgfSA9IHVzZUxpc3RJdGVtKCk7XG4gIGNvbnN0IG1lcmdlZFJlZiA9IHVzZU1lcmdlUmVmcyhbcmVmLCBmb3J3YXJkZWRSZWYsIHJlbmRlckVsZW1lbnRQcm9wcy5yZWZdKTtcbiAgY29uc3QgaXNBY3RpdmUgPSBhY3RpdmVJbmRleCA9PT0gaW5kZXg7XG4gIGNvbnN0IGNvbXB1dGVkUHJvcHMgPSB7XG4gICAgLi4uZG9tUHJvcHMsXG4gICAgLi4ucmVuZGVyRWxlbWVudFByb3BzLFxuICAgIHJlZjogbWVyZ2VkUmVmLFxuICAgIHRhYkluZGV4OiBpc0FjdGl2ZSA/IDAgOiAtMSxcbiAgICAnZGF0YS1hY3RpdmUnOiBpc0FjdGl2ZSA/ICcnIDogdW5kZWZpbmVkLFxuICAgIG9uRm9jdXMoZSkge1xuICAgICAgZG9tUHJvcHMub25Gb2N1cyA9PSBudWxsIHx8IGRvbVByb3BzLm9uRm9jdXMoZSk7XG4gICAgICByZW5kZXJFbGVtZW50UHJvcHMub25Gb2N1cyA9PSBudWxsIHx8IHJlbmRlckVsZW1lbnRQcm9wcy5vbkZvY3VzKGUpO1xuICAgICAgb25OYXZpZ2F0ZShpbmRleCk7XG4gICAgfVxuICB9O1xuICByZXR1cm4gcmVuZGVySnN4KHJlbmRlciwgY29tcHV0ZWRQcm9wcyk7XG59KTtcblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7XG4gIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiA/IE9iamVjdC5hc3NpZ24uYmluZCgpIDogZnVuY3Rpb24gKHRhcmdldCkge1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldO1xuICAgICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfTtcbiAgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5cbmxldCBzZXJ2ZXJIYW5kb2ZmQ29tcGxldGUgPSBmYWxzZTtcbmxldCBjb3VudCA9IDA7XG5jb25zdCBnZW5JZCA9ICgpID0+IC8vIEVuc3VyZSB0aGUgaWQgaXMgdW5pcXVlIHdpdGggbXVsdGlwbGUgaW5kZXBlbmRlbnQgdmVyc2lvbnMgb2YgRmxvYXRpbmcgVUlcbi8vIG9uIDxSZWFjdCAxOFxuXCJmbG9hdGluZy11aS1cIiArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsIDYpICsgY291bnQrKztcbmZ1bmN0aW9uIHVzZUZsb2F0aW5nSWQoKSB7XG4gIGNvbnN0IFtpZCwgc2V0SWRdID0gUmVhY3QudXNlU3RhdGUoKCkgPT4gc2VydmVySGFuZG9mZkNvbXBsZXRlID8gZ2VuSWQoKSA6IHVuZGVmaW5lZCk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBpZiAoaWQgPT0gbnVsbCkge1xuICAgICAgc2V0SWQoZ2VuSWQoKSk7XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW10pO1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNlcnZlckhhbmRvZmZDb21wbGV0ZSA9IHRydWU7XG4gIH0sIFtdKTtcbiAgcmV0dXJuIGlkO1xufVxuY29uc3QgdXNlUmVhY3RJZCA9IFNhZmVSZWFjdC51c2VJZDtcblxuLyoqXG4gKiBVc2VzIFJlYWN0IDE4J3MgYnVpbHQtaW4gYHVzZUlkKClgIHdoZW4gYXZhaWxhYmxlLCBvciBmYWxscyBiYWNrIHRvIGFcbiAqIHNsaWdodGx5IGxlc3MgcGVyZm9ybWFudCAocmVxdWlyaW5nIGEgZG91YmxlIHJlbmRlcikgaW1wbGVtZW50YXRpb24gZm9yXG4gKiBlYXJsaWVyIFJlYWN0IHZlcnNpb25zLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3JlYWN0LXV0aWxzI3VzZWlkXG4gKi9cbmNvbnN0IHVzZUlkID0gdXNlUmVhY3RJZCB8fCB1c2VGbG9hdGluZ0lkO1xuXG5sZXQgZGV2TWVzc2FnZVNldDtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgZGV2TWVzc2FnZVNldCA9IC8qI19fUFVSRV9fKi9uZXcgU2V0KCk7XG59XG5mdW5jdGlvbiB3YXJuKCkge1xuICB2YXIgX2Rldk1lc3NhZ2VTZXQ7XG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBtZXNzYWdlcyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICBtZXNzYWdlc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgfVxuICBjb25zdCBtZXNzYWdlID0gXCJGbG9hdGluZyBVSTogXCIgKyBtZXNzYWdlcy5qb2luKCcgJyk7XG4gIGlmICghKChfZGV2TWVzc2FnZVNldCA9IGRldk1lc3NhZ2VTZXQpICE9IG51bGwgJiYgX2Rldk1lc3NhZ2VTZXQuaGFzKG1lc3NhZ2UpKSkge1xuICAgIHZhciBfZGV2TWVzc2FnZVNldDI7XG4gICAgKF9kZXZNZXNzYWdlU2V0MiA9IGRldk1lc3NhZ2VTZXQpID09IG51bGwgfHwgX2Rldk1lc3NhZ2VTZXQyLmFkZChtZXNzYWdlKTtcbiAgICBjb25zb2xlLndhcm4obWVzc2FnZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGVycm9yKCkge1xuICB2YXIgX2Rldk1lc3NhZ2VTZXQzO1xuICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIG1lc3NhZ2VzID0gbmV3IEFycmF5KF9sZW4yKSwgX2tleTIgPSAwOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgbWVzc2FnZXNbX2tleTJdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgfVxuICBjb25zdCBtZXNzYWdlID0gXCJGbG9hdGluZyBVSTogXCIgKyBtZXNzYWdlcy5qb2luKCcgJyk7XG4gIGlmICghKChfZGV2TWVzc2FnZVNldDMgPSBkZXZNZXNzYWdlU2V0KSAhPSBudWxsICYmIF9kZXZNZXNzYWdlU2V0My5oYXMobWVzc2FnZSkpKSB7XG4gICAgdmFyIF9kZXZNZXNzYWdlU2V0NDtcbiAgICAoX2Rldk1lc3NhZ2VTZXQ0ID0gZGV2TWVzc2FnZVNldCkgPT0gbnVsbCB8fCBfZGV2TWVzc2FnZVNldDQuYWRkKG1lc3NhZ2UpO1xuICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZW5kZXJzIGEgcG9pbnRpbmcgYXJyb3cgdHJpYW5nbGUuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvRmxvYXRpbmdBcnJvd1xuICovXG5jb25zdCBGbG9hdGluZ0Fycm93ID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24gRmxvYXRpbmdBcnJvdyhwcm9wcywgcmVmKSB7XG4gIGNvbnN0IHtcbiAgICBjb250ZXh0OiB7XG4gICAgICBwbGFjZW1lbnQsXG4gICAgICBlbGVtZW50czoge1xuICAgICAgICBmbG9hdGluZ1xuICAgICAgfSxcbiAgICAgIG1pZGRsZXdhcmVEYXRhOiB7XG4gICAgICAgIGFycm93XG4gICAgICB9XG4gICAgfSxcbiAgICB3aWR0aCA9IDE0LFxuICAgIGhlaWdodCA9IDcsXG4gICAgdGlwUmFkaXVzID0gMCxcbiAgICBzdHJva2VXaWR0aCA9IDAsXG4gICAgc3RhdGljT2Zmc2V0LFxuICAgIHN0cm9rZSxcbiAgICBkLFxuICAgIHN0eWxlOiB7XG4gICAgICB0cmFuc2Zvcm0sXG4gICAgICAuLi5yZXN0U3R5bGVcbiAgICB9ID0ge30sXG4gICAgLi4ucmVzdFxuICB9ID0gcHJvcHM7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICBpZiAoIXJlZikge1xuICAgICAgd2FybignVGhlIGByZWZgIHByb3AgaXMgcmVxdWlyZWQgZm9yIGBGbG9hdGluZ0Fycm93YC4nKTtcbiAgICB9XG4gIH1cbiAgY29uc3QgY2xpcFBhdGhJZCA9IHVzZUlkKCk7XG4gIGNvbnN0IFtpc1JUTCwgc2V0SXNSVExdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mbG9hdGluZy11aS9mbG9hdGluZy11aS9pc3N1ZXMvMjkzMlxuICBpbmRleCgoKSA9PiB7XG4gICAgaWYgKCFmbG9hdGluZykgcmV0dXJuO1xuICAgIGNvbnN0IGlzUlRMID0gZ2V0Q29tcHV0ZWRTdHlsZShmbG9hdGluZykuZGlyZWN0aW9uID09PSAncnRsJztcbiAgICBpZiAoaXNSVEwpIHtcbiAgICAgIHNldElzUlRMKHRydWUpO1xuICAgIH1cbiAgfSwgW2Zsb2F0aW5nXSk7XG4gIGlmICghZmxvYXRpbmcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIFN0cm9rZXMgbXVzdCBiZSBkb3VibGUgdGhlIGJvcmRlciB3aWR0aCwgdGhpcyBlbnN1cmVzIHRoZSBzdHJva2UncyB3aWR0aFxuICAvLyB3b3JrcyBhcyB5b3UnZCBleHBlY3QuXG4gIGNvbnN0IGNvbXB1dGVkU3Ryb2tlV2lkdGggPSBzdHJva2VXaWR0aCAqIDI7XG4gIGNvbnN0IGhhbGZTdHJva2VXaWR0aCA9IGNvbXB1dGVkU3Ryb2tlV2lkdGggLyAyO1xuICBjb25zdCBzdmdYID0gd2lkdGggLyAyICogKHRpcFJhZGl1cyAvIC04ICsgMSk7XG4gIGNvbnN0IHN2Z1kgPSBoZWlnaHQgLyAyICogdGlwUmFkaXVzIC8gNDtcbiAgY29uc3QgW3NpZGUsIGFsaWdubWVudF0gPSBwbGFjZW1lbnQuc3BsaXQoJy0nKTtcbiAgY29uc3QgaXNDdXN0b21TaGFwZSA9ICEhZDtcbiAgY29uc3QgaXNWZXJ0aWNhbFNpZGUgPSBzaWRlID09PSAndG9wJyB8fCBzaWRlID09PSAnYm90dG9tJztcbiAgY29uc3QgeU9mZnNldFByb3AgPSBzdGF0aWNPZmZzZXQgJiYgYWxpZ25tZW50ID09PSAnZW5kJyA/ICdib3R0b20nIDogJ3RvcCc7XG4gIGxldCB4T2Zmc2V0UHJvcCA9IHN0YXRpY09mZnNldCAmJiBhbGlnbm1lbnQgPT09ICdlbmQnID8gJ3JpZ2h0JyA6ICdsZWZ0JztcbiAgaWYgKHN0YXRpY09mZnNldCAmJiBpc1JUTCkge1xuICAgIHhPZmZzZXRQcm9wID0gYWxpZ25tZW50ID09PSAnZW5kJyA/ICdsZWZ0JyA6ICdyaWdodCc7XG4gIH1cbiAgY29uc3QgYXJyb3dYID0gKGFycm93ID09IG51bGwgPyB2b2lkIDAgOiBhcnJvdy54KSAhPSBudWxsID8gc3RhdGljT2Zmc2V0IHx8IGFycm93LnggOiAnJztcbiAgY29uc3QgYXJyb3dZID0gKGFycm93ID09IG51bGwgPyB2b2lkIDAgOiBhcnJvdy55KSAhPSBudWxsID8gc3RhdGljT2Zmc2V0IHx8IGFycm93LnkgOiAnJztcbiAgY29uc3QgZFZhbHVlID0gZCB8fCAnTTAsMCcgKyAoXCIgSFwiICsgd2lkdGgpICsgKFwiIExcIiArICh3aWR0aCAtIHN2Z1gpICsgXCIsXCIgKyAoaGVpZ2h0IC0gc3ZnWSkpICsgKFwiIFFcIiArIHdpZHRoIC8gMiArIFwiLFwiICsgaGVpZ2h0ICsgXCIgXCIgKyBzdmdYICsgXCIsXCIgKyAoaGVpZ2h0IC0gc3ZnWSkpICsgJyBaJztcbiAgY29uc3Qgcm90YXRpb24gPSB7XG4gICAgdG9wOiBpc0N1c3RvbVNoYXBlID8gJ3JvdGF0ZSgxODBkZWcpJyA6ICcnLFxuICAgIGxlZnQ6IGlzQ3VzdG9tU2hhcGUgPyAncm90YXRlKDkwZGVnKScgOiAncm90YXRlKC05MGRlZyknLFxuICAgIGJvdHRvbTogaXNDdXN0b21TaGFwZSA/ICcnIDogJ3JvdGF0ZSgxODBkZWcpJyxcbiAgICByaWdodDogaXNDdXN0b21TaGFwZSA/ICdyb3RhdGUoLTkwZGVnKScgOiAncm90YXRlKDkwZGVnKSdcbiAgfVtzaWRlXTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIF9leHRlbmRzKHt9LCByZXN0LCB7XG4gICAgXCJhcmlhLWhpZGRlblwiOiB0cnVlLFxuICAgIHJlZjogcmVmLFxuICAgIHdpZHRoOiBpc0N1c3RvbVNoYXBlID8gd2lkdGggOiB3aWR0aCArIGNvbXB1dGVkU3Ryb2tlV2lkdGgsXG4gICAgaGVpZ2h0OiB3aWR0aCxcbiAgICB2aWV3Qm94OiBcIjAgMCBcIiArIHdpZHRoICsgXCIgXCIgKyAoaGVpZ2h0ID4gd2lkdGggPyBoZWlnaHQgOiB3aWR0aCksXG4gICAgc3R5bGU6IHtcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgW3hPZmZzZXRQcm9wXTogYXJyb3dYLFxuICAgICAgW3lPZmZzZXRQcm9wXTogYXJyb3dZLFxuICAgICAgW3NpZGVdOiBpc1ZlcnRpY2FsU2lkZSB8fCBpc0N1c3RvbVNoYXBlID8gJzEwMCUnIDogXCJjYWxjKDEwMCUgLSBcIiArIGNvbXB1dGVkU3Ryb2tlV2lkdGggLyAyICsgXCJweClcIixcbiAgICAgIHRyYW5zZm9ybTogXCJcIiArIHJvdGF0aW9uICsgKHRyYW5zZm9ybSAhPSBudWxsID8gdHJhbnNmb3JtIDogJycpLFxuICAgICAgLi4ucmVzdFN0eWxlXG4gICAgfVxuICB9KSwgY29tcHV0ZWRTdHJva2VXaWR0aCA+IDAgJiYgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBjbGlwUGF0aDogXCJ1cmwoI1wiICsgY2xpcFBhdGhJZCArIFwiKVwiLFxuICAgIGZpbGw6IFwibm9uZVwiLFxuICAgIHN0cm9rZTogc3Ryb2tlXG4gICAgLy8gQWNjb3VudCBmb3IgdGhlIHN0cm9rZSBvbiB0aGUgZmlsbCBwYXRoIHJlbmRlcmVkIGJlbG93LlxuICAgICxcbiAgICBzdHJva2VXaWR0aDogY29tcHV0ZWRTdHJva2VXaWR0aCArIChkID8gMCA6IDEpLFxuICAgIGQ6IGRWYWx1ZVxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2U6IGNvbXB1dGVkU3Ryb2tlV2lkdGggJiYgIWQgPyByZXN0LmZpbGwgOiAnbm9uZScsXG4gICAgZDogZFZhbHVlXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImNsaXBQYXRoXCIsIHtcbiAgICBpZDogY2xpcFBhdGhJZFxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInJlY3RcIiwge1xuICAgIHg6IC1oYWxmU3Ryb2tlV2lkdGgsXG4gICAgeTogaGFsZlN0cm9rZVdpZHRoICogKGlzQ3VzdG9tU2hhcGUgPyAtMSA6IDEpLFxuICAgIHdpZHRoOiB3aWR0aCArIGNvbXB1dGVkU3Ryb2tlV2lkdGgsXG4gICAgaGVpZ2h0OiB3aWR0aFxuICB9KSkpO1xufSk7XG5cbmZ1bmN0aW9uIGNyZWF0ZVB1YlN1YigpIHtcbiAgY29uc3QgbWFwID0gbmV3IE1hcCgpO1xuICByZXR1cm4ge1xuICAgIGVtaXQoZXZlbnQsIGRhdGEpIHtcbiAgICAgIHZhciBfbWFwJGdldDtcbiAgICAgIChfbWFwJGdldCA9IG1hcC5nZXQoZXZlbnQpKSA9PSBudWxsIHx8IF9tYXAkZ2V0LmZvckVhY2goaGFuZGxlciA9PiBoYW5kbGVyKGRhdGEpKTtcbiAgICB9LFxuICAgIG9uKGV2ZW50LCBsaXN0ZW5lcikge1xuICAgICAgbWFwLnNldChldmVudCwgWy4uLihtYXAuZ2V0KGV2ZW50KSB8fCBbXSksIGxpc3RlbmVyXSk7XG4gICAgfSxcbiAgICBvZmYoZXZlbnQsIGxpc3RlbmVyKSB7XG4gICAgICB2YXIgX21hcCRnZXQyO1xuICAgICAgbWFwLnNldChldmVudCwgKChfbWFwJGdldDIgPSBtYXAuZ2V0KGV2ZW50KSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9tYXAkZ2V0Mi5maWx0ZXIobCA9PiBsICE9PSBsaXN0ZW5lcikpIHx8IFtdKTtcbiAgICB9XG4gIH07XG59XG5cbmNvbnN0IEZsb2F0aW5nTm9kZUNvbnRleHQgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlQ29udGV4dChudWxsKTtcbmNvbnN0IEZsb2F0aW5nVHJlZUNvbnRleHQgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlQ29udGV4dChudWxsKTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBwYXJlbnQgbm9kZSBpZCBmb3IgbmVzdGVkIGZsb2F0aW5nIGVsZW1lbnRzLCBpZiBhdmFpbGFibGUuXG4gKiBSZXR1cm5zIGBudWxsYCBmb3IgdG9wLWxldmVsIGZsb2F0aW5nIGVsZW1lbnRzLlxuICovXG5jb25zdCB1c2VGbG9hdGluZ1BhcmVudE5vZGVJZCA9ICgpID0+IHtcbiAgdmFyIF9SZWFjdCR1c2VDb250ZXh0O1xuICByZXR1cm4gKChfUmVhY3QkdXNlQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoRmxvYXRpbmdOb2RlQ29udGV4dCkpID09IG51bGwgPyB2b2lkIDAgOiBfUmVhY3QkdXNlQ29udGV4dC5pZCkgfHwgbnVsbDtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgbmVhcmVzdCBmbG9hdGluZyB0cmVlIGNvbnRleHQsIGlmIGF2YWlsYWJsZS5cbiAqL1xuY29uc3QgdXNlRmxvYXRpbmdUcmVlID0gKCkgPT4gUmVhY3QudXNlQ29udGV4dChGbG9hdGluZ1RyZWVDb250ZXh0KTtcblxuLyoqXG4gKiBSZWdpc3RlcnMgYSBub2RlIGludG8gdGhlIGBGbG9hdGluZ1RyZWVgLCByZXR1cm5pbmcgaXRzIGlkLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL0Zsb2F0aW5nVHJlZVxuICovXG5mdW5jdGlvbiB1c2VGbG9hdGluZ05vZGVJZChjdXN0b21QYXJlbnRJZCkge1xuICBjb25zdCBpZCA9IHVzZUlkKCk7XG4gIGNvbnN0IHRyZWUgPSB1c2VGbG9hdGluZ1RyZWUoKTtcbiAgY29uc3QgcmVhY3RQYXJlbnRJZCA9IHVzZUZsb2F0aW5nUGFyZW50Tm9kZUlkKCk7XG4gIGNvbnN0IHBhcmVudElkID0gY3VzdG9tUGFyZW50SWQgfHwgcmVhY3RQYXJlbnRJZDtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGNvbnN0IG5vZGUgPSB7XG4gICAgICBpZCxcbiAgICAgIHBhcmVudElkXG4gICAgfTtcbiAgICB0cmVlID09IG51bGwgfHwgdHJlZS5hZGROb2RlKG5vZGUpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB0cmVlID09IG51bGwgfHwgdHJlZS5yZW1vdmVOb2RlKG5vZGUpO1xuICAgIH07XG4gIH0sIFt0cmVlLCBpZCwgcGFyZW50SWRdKTtcbiAgcmV0dXJuIGlkO1xufVxuLyoqXG4gKiBQcm92aWRlcyBwYXJlbnQgbm9kZSBjb250ZXh0IGZvciBuZXN0ZWQgZmxvYXRpbmcgZWxlbWVudHMuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvRmxvYXRpbmdUcmVlXG4gKi9cbmZ1bmN0aW9uIEZsb2F0aW5nTm9kZShwcm9wcykge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgaWRcbiAgfSA9IHByb3BzO1xuICBjb25zdCBwYXJlbnRJZCA9IHVzZUZsb2F0aW5nUGFyZW50Tm9kZUlkKCk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChGbG9hdGluZ05vZGVDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgdmFsdWU6IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICAgIGlkLFxuICAgICAgcGFyZW50SWRcbiAgICB9KSwgW2lkLCBwYXJlbnRJZF0pXG4gIH0sIGNoaWxkcmVuKTtcbn1cbi8qKlxuICogUHJvdmlkZXMgY29udGV4dCBmb3IgbmVzdGVkIGZsb2F0aW5nIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgbm90IGNoaWxkcmVuIG9mXG4gKiBlYWNoIG90aGVyIG9uIHRoZSBET00uXG4gKiBUaGlzIGlzIG5vdCBuZWNlc3NhcnkgaW4gYWxsIGNhc2VzLCBleGNlcHQgd2hlbiB0aGVyZSBtdXN0IGJlIGV4cGxpY2l0IGNvbW11bmljYXRpb24gYmV0d2VlbiBwYXJlbnQgYW5kIGNoaWxkIGZsb2F0aW5nIGVsZW1lbnRzLiBJdCBpcyBuZWNlc3NhcnkgZm9yOlxuICogLSBUaGUgYGJ1YmJsZXNgIG9wdGlvbiBpbiB0aGUgYHVzZURpc21pc3MoKWAgSG9va1xuICogLSBOZXN0ZWQgdmlydHVhbCBsaXN0IG5hdmlnYXRpb25cbiAqIC0gTmVzdGVkIGZsb2F0aW5nIGVsZW1lbnRzIHRoYXQgZWFjaCBvcGVuIG9uIGhvdmVyXG4gKiAtIEN1c3RvbSBjb21tdW5pY2F0aW9uIGJldHdlZW4gcGFyZW50IGFuZCBjaGlsZCBmbG9hdGluZyBlbGVtZW50c1xuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL0Zsb2F0aW5nVHJlZVxuICovXG5mdW5jdGlvbiBGbG9hdGluZ1RyZWUocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGNoaWxkcmVuXG4gIH0gPSBwcm9wcztcbiAgY29uc3Qgbm9kZXNSZWYgPSBSZWFjdC51c2VSZWYoW10pO1xuICBjb25zdCBhZGROb2RlID0gUmVhY3QudXNlQ2FsbGJhY2sobm9kZSA9PiB7XG4gICAgbm9kZXNSZWYuY3VycmVudCA9IFsuLi5ub2Rlc1JlZi5jdXJyZW50LCBub2RlXTtcbiAgfSwgW10pO1xuICBjb25zdCByZW1vdmVOb2RlID0gUmVhY3QudXNlQ2FsbGJhY2sobm9kZSA9PiB7XG4gICAgbm9kZXNSZWYuY3VycmVudCA9IG5vZGVzUmVmLmN1cnJlbnQuZmlsdGVyKG4gPT4gbiAhPT0gbm9kZSk7XG4gIH0sIFtdKTtcbiAgY29uc3QgZXZlbnRzID0gUmVhY3QudXNlU3RhdGUoKCkgPT4gY3JlYXRlUHViU3ViKCkpWzBdO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoRmxvYXRpbmdUcmVlQ29udGV4dC5Qcm92aWRlciwge1xuICAgIHZhbHVlOiBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgICBub2Rlc1JlZixcbiAgICAgIGFkZE5vZGUsXG4gICAgICByZW1vdmVOb2RlLFxuICAgICAgZXZlbnRzXG4gICAgfSksIFthZGROb2RlLCByZW1vdmVOb2RlLCBldmVudHNdKVxuICB9LCBjaGlsZHJlbik7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUF0dHJpYnV0ZShuYW1lKSB7XG4gIHJldHVybiBcImRhdGEtZmxvYXRpbmctdWktXCIgKyBuYW1lO1xufVxuXG5mdW5jdGlvbiB1c2VMYXRlc3RSZWYodmFsdWUpIHtcbiAgY29uc3QgcmVmID0gdXNlUmVmKHZhbHVlKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIHJlZi5jdXJyZW50ID0gdmFsdWU7XG4gIH0pO1xuICByZXR1cm4gcmVmO1xufVxuXG5jb25zdCBzYWZlUG9seWdvbklkZW50aWZpZXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlQXR0cmlidXRlKCdzYWZlLXBvbHlnb24nKTtcbmZ1bmN0aW9uIGdldERlbGF5KHZhbHVlLCBwcm9wLCBwb2ludGVyVHlwZSkge1xuICBpZiAocG9pbnRlclR5cGUgJiYgIWlzTW91c2VMaWtlUG9pbnRlclR5cGUocG9pbnRlclR5cGUpKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIHZhbHVlID09IG51bGwgPyB2b2lkIDAgOiB2YWx1ZVtwcm9wXTtcbn1cbi8qKlxuICogT3BlbnMgdGhlIGZsb2F0aW5nIGVsZW1lbnQgd2hpbGUgaG92ZXJpbmcgb3ZlciB0aGUgcmVmZXJlbmNlIGVsZW1lbnQsIGxpa2VcbiAqIENTUyBgOmhvdmVyYC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy91c2VIb3ZlclxuICovXG5mdW5jdGlvbiB1c2VIb3Zlcihjb250ZXh0LCBwcm9wcykge1xuICBpZiAocHJvcHMgPT09IHZvaWQgMCkge1xuICAgIHByb3BzID0ge307XG4gIH1cbiAgY29uc3Qge1xuICAgIG9wZW4sXG4gICAgb25PcGVuQ2hhbmdlLFxuICAgIGRhdGFSZWYsXG4gICAgZXZlbnRzLFxuICAgIGVsZW1lbnRzXG4gIH0gPSBjb250ZXh0O1xuICBjb25zdCB7XG4gICAgZW5hYmxlZCA9IHRydWUsXG4gICAgZGVsYXkgPSAwLFxuICAgIGhhbmRsZUNsb3NlID0gbnVsbCxcbiAgICBtb3VzZU9ubHkgPSBmYWxzZSxcbiAgICByZXN0TXMgPSAwLFxuICAgIG1vdmUgPSB0cnVlXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgdHJlZSA9IHVzZUZsb2F0aW5nVHJlZSgpO1xuICBjb25zdCBwYXJlbnRJZCA9IHVzZUZsb2F0aW5nUGFyZW50Tm9kZUlkKCk7XG4gIGNvbnN0IGhhbmRsZUNsb3NlUmVmID0gdXNlTGF0ZXN0UmVmKGhhbmRsZUNsb3NlKTtcbiAgY29uc3QgZGVsYXlSZWYgPSB1c2VMYXRlc3RSZWYoZGVsYXkpO1xuICBjb25zdCBvcGVuUmVmID0gdXNlTGF0ZXN0UmVmKG9wZW4pO1xuICBjb25zdCBwb2ludGVyVHlwZVJlZiA9IFJlYWN0LnVzZVJlZigpO1xuICBjb25zdCB0aW1lb3V0UmVmID0gUmVhY3QudXNlUmVmKC0xKTtcbiAgY29uc3QgaGFuZGxlclJlZiA9IFJlYWN0LnVzZVJlZigpO1xuICBjb25zdCByZXN0VGltZW91dFJlZiA9IFJlYWN0LnVzZVJlZigtMSk7XG4gIGNvbnN0IGJsb2NrTW91c2VNb3ZlUmVmID0gUmVhY3QudXNlUmVmKHRydWUpO1xuICBjb25zdCBwZXJmb3JtZWRQb2ludGVyRXZlbnRzTXV0YXRpb25SZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICBjb25zdCB1bmJpbmRNb3VzZU1vdmVSZWYgPSBSZWFjdC51c2VSZWYoKCkgPT4ge30pO1xuICBjb25zdCBpc0hvdmVyT3BlbiA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICB2YXIgX2RhdGFSZWYkY3VycmVudCRvcGVuO1xuICAgIGNvbnN0IHR5cGUgPSAoX2RhdGFSZWYkY3VycmVudCRvcGVuID0gZGF0YVJlZi5jdXJyZW50Lm9wZW5FdmVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9kYXRhUmVmJGN1cnJlbnQkb3Blbi50eXBlO1xuICAgIHJldHVybiAodHlwZSA9PSBudWxsID8gdm9pZCAwIDogdHlwZS5pbmNsdWRlcygnbW91c2UnKSkgJiYgdHlwZSAhPT0gJ21vdXNlZG93bic7XG4gIH0sIFtkYXRhUmVmXSk7XG5cbiAgLy8gV2hlbiBjbG9zaW5nIGJlZm9yZSBvcGVuaW5nLCBjbGVhciB0aGUgZGVsYXkgdGltZW91dHMgdG8gY2FuY2VsIGl0XG4gIC8vIGZyb20gc2hvd2luZy5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWVuYWJsZWQpIHJldHVybjtcbiAgICBmdW5jdGlvbiBvbk9wZW5DaGFuZ2UoX3JlZikge1xuICAgICAgbGV0IHtcbiAgICAgICAgb3BlblxuICAgICAgfSA9IF9yZWY7XG4gICAgICBpZiAoIW9wZW4pIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRSZWYuY3VycmVudCk7XG4gICAgICAgIGNsZWFyVGltZW91dChyZXN0VGltZW91dFJlZi5jdXJyZW50KTtcbiAgICAgICAgYmxvY2tNb3VzZU1vdmVSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGV2ZW50cy5vbignb3BlbmNoYW5nZScsIG9uT3BlbkNoYW5nZSk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGV2ZW50cy5vZmYoJ29wZW5jaGFuZ2UnLCBvbk9wZW5DaGFuZ2UpO1xuICAgIH07XG4gIH0sIFtlbmFibGVkLCBldmVudHNdKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWVuYWJsZWQpIHJldHVybjtcbiAgICBpZiAoIWhhbmRsZUNsb3NlUmVmLmN1cnJlbnQpIHJldHVybjtcbiAgICBpZiAoIW9wZW4pIHJldHVybjtcbiAgICBmdW5jdGlvbiBvbkxlYXZlKGV2ZW50KSB7XG4gICAgICBpZiAoaXNIb3Zlck9wZW4oKSkge1xuICAgICAgICBvbk9wZW5DaGFuZ2UoZmFsc2UsIGV2ZW50LCAnaG92ZXInKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgaHRtbCA9IGdldERvY3VtZW50KGVsZW1lbnRzLmZsb2F0aW5nKS5kb2N1bWVudEVsZW1lbnQ7XG4gICAgaHRtbC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgb25MZWF2ZSk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGh0bWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIG9uTGVhdmUpO1xuICAgIH07XG4gIH0sIFtlbGVtZW50cy5mbG9hdGluZywgb3Blbiwgb25PcGVuQ2hhbmdlLCBlbmFibGVkLCBoYW5kbGVDbG9zZVJlZiwgaXNIb3Zlck9wZW5dKTtcbiAgY29uc3QgY2xvc2VXaXRoRGVsYXkgPSBSZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbiAoZXZlbnQsIHJ1bkVsc2VCcmFuY2gsIHJlYXNvbikge1xuICAgIGlmIChydW5FbHNlQnJhbmNoID09PSB2b2lkIDApIHtcbiAgICAgIHJ1bkVsc2VCcmFuY2ggPSB0cnVlO1xuICAgIH1cbiAgICBpZiAocmVhc29uID09PSB2b2lkIDApIHtcbiAgICAgIHJlYXNvbiA9ICdob3Zlcic7XG4gICAgfVxuICAgIGNvbnN0IGNsb3NlRGVsYXkgPSBnZXREZWxheShkZWxheVJlZi5jdXJyZW50LCAnY2xvc2UnLCBwb2ludGVyVHlwZVJlZi5jdXJyZW50KTtcbiAgICBpZiAoY2xvc2VEZWxheSAmJiAhaGFuZGxlclJlZi5jdXJyZW50KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KTtcbiAgICAgIHRpbWVvdXRSZWYuY3VycmVudCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IG9uT3BlbkNoYW5nZShmYWxzZSwgZXZlbnQsIHJlYXNvbiksIGNsb3NlRGVsYXkpO1xuICAgIH0gZWxzZSBpZiAocnVuRWxzZUJyYW5jaCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRSZWYuY3VycmVudCk7XG4gICAgICBvbk9wZW5DaGFuZ2UoZmFsc2UsIGV2ZW50LCByZWFzb24pO1xuICAgIH1cbiAgfSwgW2RlbGF5UmVmLCBvbk9wZW5DaGFuZ2VdKTtcbiAgY29uc3QgY2xlYW51cE1vdXNlTW92ZUhhbmRsZXIgPSB1c2VFZmZlY3RFdmVudCgoKSA9PiB7XG4gICAgdW5iaW5kTW91c2VNb3ZlUmVmLmN1cnJlbnQoKTtcbiAgICBoYW5kbGVyUmVmLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gIH0pO1xuICBjb25zdCBjbGVhclBvaW50ZXJFdmVudHMgPSB1c2VFZmZlY3RFdmVudCgoKSA9PiB7XG4gICAgaWYgKHBlcmZvcm1lZFBvaW50ZXJFdmVudHNNdXRhdGlvblJlZi5jdXJyZW50KSB7XG4gICAgICBjb25zdCBib2R5ID0gZ2V0RG9jdW1lbnQoZWxlbWVudHMuZmxvYXRpbmcpLmJvZHk7XG4gICAgICBib2R5LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnJztcbiAgICAgIGJvZHkucmVtb3ZlQXR0cmlidXRlKHNhZmVQb2x5Z29uSWRlbnRpZmllcik7XG4gICAgICBwZXJmb3JtZWRQb2ludGVyRXZlbnRzTXV0YXRpb25SZWYuY3VycmVudCA9IGZhbHNlO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gUmVnaXN0ZXJpbmcgdGhlIG1vdXNlIGV2ZW50cyBvbiB0aGUgcmVmZXJlbmNlIGRpcmVjdGx5IHRvIGJ5cGFzcyBSZWFjdCdzXG4gIC8vIGRlbGVnYXRpb24gc3lzdGVtLiBJZiB0aGUgY3Vyc29yIHdhcyBvbiBhIGRpc2FibGVkIGVsZW1lbnQgYW5kIHRoZW4gZW50ZXJlZFxuICAvLyB0aGUgcmVmZXJlbmNlIChubyBnYXApLCBgbW91c2VlbnRlcmAgZG9lc24ndCBmaXJlIGluIHRoZSBkZWxlZ2F0aW9uIHN5c3RlbS5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWVuYWJsZWQpIHJldHVybjtcbiAgICBmdW5jdGlvbiBpc0NsaWNrTGlrZU9wZW5FdmVudCgpIHtcbiAgICAgIHJldHVybiBkYXRhUmVmLmN1cnJlbnQub3BlbkV2ZW50ID8gWydjbGljaycsICdtb3VzZWRvd24nXS5pbmNsdWRlcyhkYXRhUmVmLmN1cnJlbnQub3BlbkV2ZW50LnR5cGUpIDogZmFsc2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG9uTW91c2VFbnRlcihldmVudCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRSZWYuY3VycmVudCk7XG4gICAgICBibG9ja01vdXNlTW92ZVJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICBpZiAobW91c2VPbmx5ICYmICFpc01vdXNlTGlrZVBvaW50ZXJUeXBlKHBvaW50ZXJUeXBlUmVmLmN1cnJlbnQpIHx8IHJlc3RNcyA+IDAgJiYgIWdldERlbGF5KGRlbGF5UmVmLmN1cnJlbnQsICdvcGVuJykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3Qgb3BlbkRlbGF5ID0gZ2V0RGVsYXkoZGVsYXlSZWYuY3VycmVudCwgJ29wZW4nLCBwb2ludGVyVHlwZVJlZi5jdXJyZW50KTtcbiAgICAgIGlmIChvcGVuRGVsYXkpIHtcbiAgICAgICAgdGltZW91dFJlZi5jdXJyZW50ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICghb3BlblJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBvbk9wZW5DaGFuZ2UodHJ1ZSwgZXZlbnQsICdob3ZlcicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgb3BlbkRlbGF5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9uT3BlbkNoYW5nZSh0cnVlLCBldmVudCwgJ2hvdmVyJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIG9uTW91c2VMZWF2ZShldmVudCkge1xuICAgICAgaWYgKGlzQ2xpY2tMaWtlT3BlbkV2ZW50KCkpIHJldHVybjtcbiAgICAgIHVuYmluZE1vdXNlTW92ZVJlZi5jdXJyZW50KCk7XG4gICAgICBjb25zdCBkb2MgPSBnZXREb2N1bWVudChlbGVtZW50cy5mbG9hdGluZyk7XG4gICAgICBjbGVhclRpbWVvdXQocmVzdFRpbWVvdXRSZWYuY3VycmVudCk7XG4gICAgICBpZiAoaGFuZGxlQ2xvc2VSZWYuY3VycmVudCAmJiBkYXRhUmVmLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0KSB7XG4gICAgICAgIC8vIFByZXZlbnQgY2xlYXJpbmcgYG9uU2Nyb2xsTW91c2VMZWF2ZWAgdGltZW91dC5cbiAgICAgICAgaWYgKCFvcGVuKSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRSZWYuY3VycmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgaGFuZGxlclJlZi5jdXJyZW50ID0gaGFuZGxlQ2xvc2VSZWYuY3VycmVudCh7XG4gICAgICAgICAgLi4uZGF0YVJlZi5jdXJyZW50LmZsb2F0aW5nQ29udGV4dCxcbiAgICAgICAgICB0cmVlLFxuICAgICAgICAgIHg6IGV2ZW50LmNsaWVudFgsXG4gICAgICAgICAgeTogZXZlbnQuY2xpZW50WSxcbiAgICAgICAgICBvbkNsb3NlKCkge1xuICAgICAgICAgICAgY2xlYXJQb2ludGVyRXZlbnRzKCk7XG4gICAgICAgICAgICBjbGVhbnVwTW91c2VNb3ZlSGFuZGxlcigpO1xuICAgICAgICAgICAgY2xvc2VXaXRoRGVsYXkoZXZlbnQsIHRydWUsICdzYWZlLXBvbHlnb24nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBoYW5kbGVyID0gaGFuZGxlclJlZi5jdXJyZW50O1xuICAgICAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgaGFuZGxlcik7XG4gICAgICAgIHVuYmluZE1vdXNlTW92ZVJlZi5jdXJyZW50ID0gKCkgPT4ge1xuICAgICAgICAgIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBoYW5kbGVyKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBBbGxvdyBpbnRlcmFjdGl2aXR5IHdpdGhvdXQgYHNhZmVQb2x5Z29uYCBvbiB0b3VjaCBkZXZpY2VzLiBXaXRoIGFcbiAgICAgIC8vIHBvaW50ZXIsIGEgc2hvcnQgY2xvc2UgZGVsYXkgaXMgYW4gYWx0ZXJuYXRpdmUsIHNvIGl0IHNob3VsZCB3b3JrXG4gICAgICAvLyBjb25zaXN0ZW50bHkuXG4gICAgICBjb25zdCBzaG91bGRDbG9zZSA9IHBvaW50ZXJUeXBlUmVmLmN1cnJlbnQgPT09ICd0b3VjaCcgPyAhY29udGFpbnMoZWxlbWVudHMuZmxvYXRpbmcsIGV2ZW50LnJlbGF0ZWRUYXJnZXQpIDogdHJ1ZTtcbiAgICAgIGlmIChzaG91bGRDbG9zZSkge1xuICAgICAgICBjbG9zZVdpdGhEZWxheShldmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRW5zdXJlIHRoZSBmbG9hdGluZyBlbGVtZW50IGNsb3NlcyBhZnRlciBzY3JvbGxpbmcgZXZlbiBpZiB0aGUgcG9pbnRlclxuICAgIC8vIGRpZCBub3QgbW92ZS5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmxvYXRpbmctdWkvZmxvYXRpbmctdWkvZGlzY3Vzc2lvbnMvMTY5MlxuICAgIGZ1bmN0aW9uIG9uU2Nyb2xsTW91c2VMZWF2ZShldmVudCkge1xuICAgICAgaWYgKGlzQ2xpY2tMaWtlT3BlbkV2ZW50KCkpIHJldHVybjtcbiAgICAgIGlmICghZGF0YVJlZi5jdXJyZW50LmZsb2F0aW5nQ29udGV4dCkgcmV0dXJuO1xuICAgICAgaGFuZGxlQ2xvc2VSZWYuY3VycmVudCA9PSBudWxsIHx8IGhhbmRsZUNsb3NlUmVmLmN1cnJlbnQoe1xuICAgICAgICAuLi5kYXRhUmVmLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0LFxuICAgICAgICB0cmVlLFxuICAgICAgICB4OiBldmVudC5jbGllbnRYLFxuICAgICAgICB5OiBldmVudC5jbGllbnRZLFxuICAgICAgICBvbkNsb3NlKCkge1xuICAgICAgICAgIGNsZWFyUG9pbnRlckV2ZW50cygpO1xuICAgICAgICAgIGNsZWFudXBNb3VzZU1vdmVIYW5kbGVyKCk7XG4gICAgICAgICAgY2xvc2VXaXRoRGVsYXkoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9KShldmVudCk7XG4gICAgfVxuICAgIGlmIChpc0VsZW1lbnQoZWxlbWVudHMuZG9tUmVmZXJlbmNlKSkge1xuICAgICAgdmFyIF9lbGVtZW50cyRmbG9hdGluZztcbiAgICAgIGNvbnN0IHJlZiA9IGVsZW1lbnRzLmRvbVJlZmVyZW5jZTtcbiAgICAgIG9wZW4gJiYgcmVmLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBvblNjcm9sbE1vdXNlTGVhdmUpO1xuICAgICAgKF9lbGVtZW50cyRmbG9hdGluZyA9IGVsZW1lbnRzLmZsb2F0aW5nKSA9PSBudWxsIHx8IF9lbGVtZW50cyRmbG9hdGluZy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgb25TY3JvbGxNb3VzZUxlYXZlKTtcbiAgICAgIG1vdmUgJiYgcmVmLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG9uTW91c2VFbnRlciwge1xuICAgICAgICBvbmNlOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIHJlZi5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgb25Nb3VzZUVudGVyKTtcbiAgICAgIHJlZi5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgb25Nb3VzZUxlYXZlKTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHZhciBfZWxlbWVudHMkZmxvYXRpbmcyO1xuICAgICAgICBvcGVuICYmIHJlZi5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgb25TY3JvbGxNb3VzZUxlYXZlKTtcbiAgICAgICAgKF9lbGVtZW50cyRmbG9hdGluZzIgPSBlbGVtZW50cy5mbG9hdGluZykgPT0gbnVsbCB8fCBfZWxlbWVudHMkZmxvYXRpbmcyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBvblNjcm9sbE1vdXNlTGVhdmUpO1xuICAgICAgICBtb3ZlICYmIHJlZi5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBvbk1vdXNlRW50ZXIpO1xuICAgICAgICByZWYucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIG9uTW91c2VFbnRlcik7XG4gICAgICAgIHJlZi5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgb25Nb3VzZUxlYXZlKTtcbiAgICAgIH07XG4gICAgfVxuICB9LCBbZWxlbWVudHMsIGVuYWJsZWQsIGNvbnRleHQsIG1vdXNlT25seSwgcmVzdE1zLCBtb3ZlLCBjbG9zZVdpdGhEZWxheSwgY2xlYW51cE1vdXNlTW92ZUhhbmRsZXIsIGNsZWFyUG9pbnRlckV2ZW50cywgb25PcGVuQ2hhbmdlLCBvcGVuLCBvcGVuUmVmLCB0cmVlLCBkZWxheVJlZiwgaGFuZGxlQ2xvc2VSZWYsIGRhdGFSZWZdKTtcblxuICAvLyBCbG9jayBwb2ludGVyLWV2ZW50cyBvZiBldmVyeSBlbGVtZW50IG90aGVyIHRoYW4gdGhlIHJlZmVyZW5jZSBhbmQgZmxvYXRpbmdcbiAgLy8gd2hpbGUgdGhlIGZsb2F0aW5nIGVsZW1lbnQgaXMgb3BlbiBhbmQgaGFzIGEgYGhhbmRsZUNsb3NlYCBoYW5kbGVyLiBBbHNvXG4gIC8vIGhhbmRsZXMgbmVzdGVkIGZsb2F0aW5nIGVsZW1lbnRzLlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmxvYXRpbmctdWkvZmxvYXRpbmctdWkvaXNzdWVzLzE3MjJcbiAgaW5kZXgoKCkgPT4ge1xuICAgIHZhciBfaGFuZGxlQ2xvc2VSZWYkY3VycmU7XG4gICAgaWYgKCFlbmFibGVkKSByZXR1cm47XG4gICAgaWYgKG9wZW4gJiYgKF9oYW5kbGVDbG9zZVJlZiRjdXJyZSA9IGhhbmRsZUNsb3NlUmVmLmN1cnJlbnQpICE9IG51bGwgJiYgX2hhbmRsZUNsb3NlUmVmJGN1cnJlLl9fb3B0aW9ucy5ibG9ja1BvaW50ZXJFdmVudHMgJiYgaXNIb3Zlck9wZW4oKSkge1xuICAgICAgY29uc3QgYm9keSA9IGdldERvY3VtZW50KGVsZW1lbnRzLmZsb2F0aW5nKS5ib2R5O1xuICAgICAgYm9keS5zZXRBdHRyaWJ1dGUoc2FmZVBvbHlnb25JZGVudGlmaWVyLCAnJyk7XG4gICAgICBib2R5LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSc7XG4gICAgICBwZXJmb3JtZWRQb2ludGVyRXZlbnRzTXV0YXRpb25SZWYuY3VycmVudCA9IHRydWU7XG4gICAgICBjb25zdCBmbG9hdGluZ0VsID0gZWxlbWVudHMuZmxvYXRpbmc7XG4gICAgICBpZiAoaXNFbGVtZW50KGVsZW1lbnRzLmRvbVJlZmVyZW5jZSkgJiYgZmxvYXRpbmdFbCkge1xuICAgICAgICB2YXIgX3RyZWUkbm9kZXNSZWYkY3VycmVuO1xuICAgICAgICBjb25zdCByZWYgPSBlbGVtZW50cy5kb21SZWZlcmVuY2U7XG4gICAgICAgIGNvbnN0IHBhcmVudEZsb2F0aW5nID0gdHJlZSA9PSBudWxsIHx8IChfdHJlZSRub2Rlc1JlZiRjdXJyZW4gPSB0cmVlLm5vZGVzUmVmLmN1cnJlbnQuZmluZChub2RlID0+IG5vZGUuaWQgPT09IHBhcmVudElkKSkgPT0gbnVsbCB8fCAoX3RyZWUkbm9kZXNSZWYkY3VycmVuID0gX3RyZWUkbm9kZXNSZWYkY3VycmVuLmNvbnRleHQpID09IG51bGwgPyB2b2lkIDAgOiBfdHJlZSRub2Rlc1JlZiRjdXJyZW4uZWxlbWVudHMuZmxvYXRpbmc7XG4gICAgICAgIGlmIChwYXJlbnRGbG9hdGluZykge1xuICAgICAgICAgIHBhcmVudEZsb2F0aW5nLnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnJztcbiAgICAgICAgfVxuICAgICAgICByZWYuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdhdXRvJztcbiAgICAgICAgZmxvYXRpbmdFbC5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ2F1dG8nO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgIHJlZi5zdHlsZS5wb2ludGVyRXZlbnRzID0gJyc7XG4gICAgICAgICAgZmxvYXRpbmdFbC5zdHlsZS5wb2ludGVyRXZlbnRzID0gJyc7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICB9LCBbZW5hYmxlZCwgb3BlbiwgcGFyZW50SWQsIGVsZW1lbnRzLCB0cmVlLCBoYW5kbGVDbG9zZVJlZiwgaXNIb3Zlck9wZW5dKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGlmICghb3Blbikge1xuICAgICAgcG9pbnRlclR5cGVSZWYuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICAgIGNsZWFudXBNb3VzZU1vdmVIYW5kbGVyKCk7XG4gICAgICBjbGVhclBvaW50ZXJFdmVudHMoKTtcbiAgICB9XG4gIH0sIFtvcGVuLCBjbGVhbnVwTW91c2VNb3ZlSGFuZGxlciwgY2xlYXJQb2ludGVyRXZlbnRzXSk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNsZWFudXBNb3VzZU1vdmVIYW5kbGVyKCk7XG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KTtcbiAgICAgIGNsZWFyVGltZW91dChyZXN0VGltZW91dFJlZi5jdXJyZW50KTtcbiAgICAgIGNsZWFyUG9pbnRlckV2ZW50cygpO1xuICAgIH07XG4gIH0sIFtlbmFibGVkLCBlbGVtZW50cy5kb21SZWZlcmVuY2UsIGNsZWFudXBNb3VzZU1vdmVIYW5kbGVyLCBjbGVhclBvaW50ZXJFdmVudHNdKTtcbiAgY29uc3QgcmVmZXJlbmNlID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgZnVuY3Rpb24gc2V0UG9pbnRlclJlZihldmVudCkge1xuICAgICAgcG9pbnRlclR5cGVSZWYuY3VycmVudCA9IGV2ZW50LnBvaW50ZXJUeXBlO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgb25Qb2ludGVyRG93bjogc2V0UG9pbnRlclJlZixcbiAgICAgIG9uUG9pbnRlckVudGVyOiBzZXRQb2ludGVyUmVmLFxuICAgICAgb25Nb3VzZU1vdmUoZXZlbnQpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIG5hdGl2ZUV2ZW50XG4gICAgICAgIH0gPSBldmVudDtcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlTW91c2VNb3ZlKCkge1xuICAgICAgICAgIGlmICghYmxvY2tNb3VzZU1vdmVSZWYuY3VycmVudCAmJiAhb3BlblJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBvbk9wZW5DaGFuZ2UodHJ1ZSwgbmF0aXZlRXZlbnQsICdob3ZlcicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobW91c2VPbmx5ICYmICFpc01vdXNlTGlrZVBvaW50ZXJUeXBlKHBvaW50ZXJUeXBlUmVmLmN1cnJlbnQpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcGVuIHx8IHJlc3RNcyA9PT0gMCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjbGVhclRpbWVvdXQocmVzdFRpbWVvdXRSZWYuY3VycmVudCk7XG4gICAgICAgIGlmIChwb2ludGVyVHlwZVJlZi5jdXJyZW50ID09PSAndG91Y2gnKSB7XG4gICAgICAgICAgaGFuZGxlTW91c2VNb3ZlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdFRpbWVvdXRSZWYuY3VycmVudCA9IHdpbmRvdy5zZXRUaW1lb3V0KGhhbmRsZU1vdXNlTW92ZSwgcmVzdE1zKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0sIFttb3VzZU9ubHksIG9uT3BlbkNoYW5nZSwgb3Blbiwgb3BlblJlZiwgcmVzdE1zXSk7XG4gIGNvbnN0IGZsb2F0aW5nID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIG9uTW91c2VFbnRlcigpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpO1xuICAgIH0sXG4gICAgb25Nb3VzZUxlYXZlKGV2ZW50KSB7XG4gICAgICBjbG9zZVdpdGhEZWxheShldmVudC5uYXRpdmVFdmVudCwgZmFsc2UpO1xuICAgIH1cbiAgfSksIFtjbG9zZVdpdGhEZWxheV0pO1xuICByZXR1cm4gUmVhY3QudXNlTWVtbygoKSA9PiBlbmFibGVkID8ge1xuICAgIHJlZmVyZW5jZSxcbiAgICBmbG9hdGluZ1xuICB9IDoge30sIFtlbmFibGVkLCByZWZlcmVuY2UsIGZsb2F0aW5nXSk7XG59XG5cbmNvbnN0IE5PT1AgPSAoKSA9PiB7fTtcbmNvbnN0IEZsb2F0aW5nRGVsYXlHcm91cENvbnRleHQgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlQ29udGV4dCh7XG4gIGRlbGF5OiAwLFxuICBpbml0aWFsRGVsYXk6IDAsXG4gIHRpbWVvdXRNczogMCxcbiAgY3VycmVudElkOiBudWxsLFxuICBzZXRDdXJyZW50SWQ6IE5PT1AsXG4gIHNldFN0YXRlOiBOT09QLFxuICBpc0luc3RhbnRQaGFzZTogZmFsc2Vcbn0pO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBVc2UgdGhlIHJldHVybiB2YWx1ZSBvZiBgdXNlRGVsYXlHcm91cCgpYCBpbnN0ZWFkLlxuICovXG5jb25zdCB1c2VEZWxheUdyb3VwQ29udGV4dCA9ICgpID0+IFJlYWN0LnVzZUNvbnRleHQoRmxvYXRpbmdEZWxheUdyb3VwQ29udGV4dCk7XG4vKipcbiAqIFByb3ZpZGVzIGNvbnRleHQgZm9yIGEgZ3JvdXAgb2YgZmxvYXRpbmcgZWxlbWVudHMgdGhhdCBzaG91bGQgc2hhcmUgYVxuICogYGRlbGF5YC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9GbG9hdGluZ0RlbGF5R3JvdXBcbiAqL1xuZnVuY3Rpb24gRmxvYXRpbmdEZWxheUdyb3VwKHByb3BzKSB7XG4gIGNvbnN0IHtcbiAgICBjaGlsZHJlbixcbiAgICBkZWxheSxcbiAgICB0aW1lb3V0TXMgPSAwXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV0gPSBSZWFjdC51c2VSZWR1Y2VyKChwcmV2LCBuZXh0KSA9PiAoe1xuICAgIC4uLnByZXYsXG4gICAgLi4ubmV4dFxuICB9KSwge1xuICAgIGRlbGF5LFxuICAgIHRpbWVvdXRNcyxcbiAgICBpbml0aWFsRGVsYXk6IGRlbGF5LFxuICAgIGN1cnJlbnRJZDogbnVsbCxcbiAgICBpc0luc3RhbnRQaGFzZTogZmFsc2VcbiAgfSk7XG4gIGNvbnN0IGluaXRpYWxDdXJyZW50SWRSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGNvbnN0IHNldEN1cnJlbnRJZCA9IFJlYWN0LnVzZUNhbGxiYWNrKGN1cnJlbnRJZCA9PiB7XG4gICAgc2V0U3RhdGUoe1xuICAgICAgY3VycmVudElkXG4gICAgfSk7XG4gIH0sIFtdKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGlmIChzdGF0ZS5jdXJyZW50SWQpIHtcbiAgICAgIGlmIChpbml0aWFsQ3VycmVudElkUmVmLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgaW5pdGlhbEN1cnJlbnRJZFJlZi5jdXJyZW50ID0gc3RhdGUuY3VycmVudElkO1xuICAgICAgfSBlbHNlIGlmICghc3RhdGUuaXNJbnN0YW50UGhhc2UpIHtcbiAgICAgICAgc2V0U3RhdGUoe1xuICAgICAgICAgIGlzSW5zdGFudFBoYXNlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc3RhdGUuaXNJbnN0YW50UGhhc2UpIHtcbiAgICAgICAgc2V0U3RhdGUoe1xuICAgICAgICAgIGlzSW5zdGFudFBoYXNlOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGluaXRpYWxDdXJyZW50SWRSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfVxuICB9LCBbc3RhdGUuY3VycmVudElkLCBzdGF0ZS5pc0luc3RhbnRQaGFzZV0pO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoRmxvYXRpbmdEZWxheUdyb3VwQ29udGV4dC5Qcm92aWRlciwge1xuICAgIHZhbHVlOiBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHNldFN0YXRlLFxuICAgICAgc2V0Q3VycmVudElkXG4gICAgfSksIFtzdGF0ZSwgc2V0Q3VycmVudElkXSlcbiAgfSwgY2hpbGRyZW4pO1xufVxuLyoqXG4gKiBFbmFibGVzIGdyb3VwaW5nIHdoZW4gY2FsbGVkIGluc2lkZSBhIGNvbXBvbmVudCB0aGF0J3MgYSBjaGlsZCBvZiBhXG4gKiBgRmxvYXRpbmdEZWxheUdyb3VwYC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9GbG9hdGluZ0RlbGF5R3JvdXBcbiAqL1xuZnVuY3Rpb24gdXNlRGVsYXlHcm91cChjb250ZXh0LCBvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cbiAgY29uc3Qge1xuICAgIG9wZW4sXG4gICAgb25PcGVuQ2hhbmdlLFxuICAgIGZsb2F0aW5nSWRcbiAgfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtcbiAgICBpZDogb3B0aW9uSWRcbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGlkID0gb3B0aW9uSWQgIT0gbnVsbCA/IG9wdGlvbklkIDogZmxvYXRpbmdJZDtcbiAgY29uc3QgZ3JvdXBDb250ZXh0ID0gdXNlRGVsYXlHcm91cENvbnRleHQoKTtcbiAgY29uc3Qge1xuICAgIGN1cnJlbnRJZCxcbiAgICBzZXRDdXJyZW50SWQsXG4gICAgaW5pdGlhbERlbGF5LFxuICAgIHNldFN0YXRlLFxuICAgIHRpbWVvdXRNc1xuICB9ID0gZ3JvdXBDb250ZXh0O1xuICBpbmRleCgoKSA9PiB7XG4gICAgaWYgKCFjdXJyZW50SWQpIHJldHVybjtcbiAgICBzZXRTdGF0ZSh7XG4gICAgICBkZWxheToge1xuICAgICAgICBvcGVuOiAxLFxuICAgICAgICBjbG9zZTogZ2V0RGVsYXkoaW5pdGlhbERlbGF5LCAnY2xvc2UnKVxuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChjdXJyZW50SWQgIT09IGlkKSB7XG4gICAgICBvbk9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgIH1cbiAgfSwgW2lkLCBvbk9wZW5DaGFuZ2UsIHNldFN0YXRlLCBjdXJyZW50SWQsIGluaXRpYWxEZWxheV0pO1xuICBpbmRleCgoKSA9PiB7XG4gICAgZnVuY3Rpb24gdW5zZXQoKSB7XG4gICAgICBvbk9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgc2V0U3RhdGUoe1xuICAgICAgICBkZWxheTogaW5pdGlhbERlbGF5LFxuICAgICAgICBjdXJyZW50SWQ6IG51bGxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoIWN1cnJlbnRJZCkgcmV0dXJuO1xuICAgIGlmICghb3BlbiAmJiBjdXJyZW50SWQgPT09IGlkKSB7XG4gICAgICBpZiAodGltZW91dE1zKSB7XG4gICAgICAgIGNvbnN0IHRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCh1bnNldCwgdGltZW91dE1zKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICB1bnNldCgpO1xuICAgIH1cbiAgfSwgW29wZW4sIHNldFN0YXRlLCBjdXJyZW50SWQsIGlkLCBvbk9wZW5DaGFuZ2UsIGluaXRpYWxEZWxheSwgdGltZW91dE1zXSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBpZiAoc2V0Q3VycmVudElkID09PSBOT09QIHx8ICFvcGVuKSByZXR1cm47XG4gICAgc2V0Q3VycmVudElkKGlkKTtcbiAgfSwgW29wZW4sIHNldEN1cnJlbnRJZCwgaWRdKTtcbiAgcmV0dXJuIGdyb3VwQ29udGV4dDtcbn1cblxuZnVuY3Rpb24gZ2V0QW5jZXN0b3JzKG5vZGVzLCBpZCkge1xuICB2YXIgX25vZGVzJGZpbmQ7XG4gIGxldCBhbGxBbmNlc3RvcnMgPSBbXTtcbiAgbGV0IGN1cnJlbnRQYXJlbnRJZCA9IChfbm9kZXMkZmluZCA9IG5vZGVzLmZpbmQobm9kZSA9PiBub2RlLmlkID09PSBpZCkpID09IG51bGwgPyB2b2lkIDAgOiBfbm9kZXMkZmluZC5wYXJlbnRJZDtcbiAgd2hpbGUgKGN1cnJlbnRQYXJlbnRJZCkge1xuICAgIGNvbnN0IGN1cnJlbnROb2RlID0gbm9kZXMuZmluZChub2RlID0+IG5vZGUuaWQgPT09IGN1cnJlbnRQYXJlbnRJZCk7XG4gICAgY3VycmVudFBhcmVudElkID0gY3VycmVudE5vZGUgPT0gbnVsbCA/IHZvaWQgMCA6IGN1cnJlbnROb2RlLnBhcmVudElkO1xuICAgIGlmIChjdXJyZW50Tm9kZSkge1xuICAgICAgYWxsQW5jZXN0b3JzID0gYWxsQW5jZXN0b3JzLmNvbmNhdChjdXJyZW50Tm9kZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBhbGxBbmNlc3RvcnM7XG59XG5cbmZ1bmN0aW9uIGdldENoaWxkcmVuKG5vZGVzLCBpZCkge1xuICBsZXQgYWxsQ2hpbGRyZW4gPSBub2Rlcy5maWx0ZXIobm9kZSA9PiB7XG4gICAgdmFyIF9ub2RlJGNvbnRleHQ7XG4gICAgcmV0dXJuIG5vZGUucGFyZW50SWQgPT09IGlkICYmICgoX25vZGUkY29udGV4dCA9IG5vZGUuY29udGV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9ub2RlJGNvbnRleHQub3Blbik7XG4gIH0pO1xuICBsZXQgY3VycmVudENoaWxkcmVuID0gYWxsQ2hpbGRyZW47XG4gIHdoaWxlIChjdXJyZW50Q2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgY3VycmVudENoaWxkcmVuID0gbm9kZXMuZmlsdGVyKG5vZGUgPT4ge1xuICAgICAgdmFyIF9jdXJyZW50Q2hpbGRyZW47XG4gICAgICByZXR1cm4gKF9jdXJyZW50Q2hpbGRyZW4gPSBjdXJyZW50Q2hpbGRyZW4pID09IG51bGwgPyB2b2lkIDAgOiBfY3VycmVudENoaWxkcmVuLnNvbWUobiA9PiB7XG4gICAgICAgIHZhciBfbm9kZSRjb250ZXh0MjtcbiAgICAgICAgcmV0dXJuIG5vZGUucGFyZW50SWQgPT09IG4uaWQgJiYgKChfbm9kZSRjb250ZXh0MiA9IG5vZGUuY29udGV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9ub2RlJGNvbnRleHQyLm9wZW4pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgYWxsQ2hpbGRyZW4gPSBhbGxDaGlsZHJlbi5jb25jYXQoY3VycmVudENoaWxkcmVuKTtcbiAgfVxuICByZXR1cm4gYWxsQ2hpbGRyZW47XG59XG5mdW5jdGlvbiBnZXREZWVwZXN0Tm9kZShub2RlcywgaWQpIHtcbiAgbGV0IGRlZXBlc3ROb2RlSWQ7XG4gIGxldCBtYXhEZXB0aCA9IC0xO1xuICBmdW5jdGlvbiBmaW5kRGVlcGVzdChub2RlSWQsIGRlcHRoKSB7XG4gICAgaWYgKGRlcHRoID4gbWF4RGVwdGgpIHtcbiAgICAgIGRlZXBlc3ROb2RlSWQgPSBub2RlSWQ7XG4gICAgICBtYXhEZXB0aCA9IGRlcHRoO1xuICAgIH1cbiAgICBjb25zdCBjaGlsZHJlbiA9IGdldENoaWxkcmVuKG5vZGVzLCBub2RlSWQpO1xuICAgIGNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4ge1xuICAgICAgZmluZERlZXBlc3QoY2hpbGQuaWQsIGRlcHRoICsgMSk7XG4gICAgfSk7XG4gIH1cbiAgZmluZERlZXBlc3QoaWQsIDApO1xuICByZXR1cm4gbm9kZXMuZmluZChub2RlID0+IG5vZGUuaWQgPT09IGRlZXBlc3ROb2RlSWQpO1xufVxuXG4vLyBNb2RpZmllZCB0byBhZGQgY29uZGl0aW9uYWwgYGFyaWEtaGlkZGVuYCBzdXBwb3J0OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RoZUthc2hleS9hcmlhLWhpZGRlbi9ibG9iLzkyMjBjOGY0YTRmZDM1ZjYzYmVlNTUxMGE5ZjQxYTM3MjY0MzgyZDQvc3JjL2luZGV4LnRzXG5sZXQgY291bnRlck1hcCA9IC8qI19fUFVSRV9fKi9uZXcgV2Vha01hcCgpO1xubGV0IHVuY29udHJvbGxlZEVsZW1lbnRzU2V0ID0gLyojX19QVVJFX18qL25ldyBXZWFrU2V0KCk7XG5sZXQgbWFya2VyTWFwID0ge307XG5sZXQgbG9ja0NvdW50ID0gMDtcbmNvbnN0IHN1cHBvcnRzSW5lcnQgPSAoKSA9PiB0eXBlb2YgSFRNTEVsZW1lbnQgIT09ICd1bmRlZmluZWQnICYmICdpbmVydCcgaW4gSFRNTEVsZW1lbnQucHJvdG90eXBlO1xuY29uc3QgdW53cmFwSG9zdCA9IG5vZGUgPT4gbm9kZSAmJiAobm9kZS5ob3N0IHx8IHVud3JhcEhvc3Qobm9kZS5wYXJlbnROb2RlKSk7XG5jb25zdCBjb3JyZWN0RWxlbWVudHMgPSAocGFyZW50LCB0YXJnZXRzKSA9PiB0YXJnZXRzLm1hcCh0YXJnZXQgPT4ge1xuICBpZiAocGFyZW50LmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG4gIGNvbnN0IGNvcnJlY3RlZFRhcmdldCA9IHVud3JhcEhvc3QodGFyZ2V0KTtcbiAgaWYgKHBhcmVudC5jb250YWlucyhjb3JyZWN0ZWRUYXJnZXQpKSB7XG4gICAgcmV0dXJuIGNvcnJlY3RlZFRhcmdldDtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn0pLmZpbHRlcih4ID0+IHggIT0gbnVsbCk7XG5mdW5jdGlvbiBhcHBseUF0dHJpYnV0ZVRvT3RoZXJzKHVuY29ycmVjdGVkQXZvaWRFbGVtZW50cywgYm9keSwgYXJpYUhpZGRlbiwgaW5lcnQpIHtcbiAgY29uc3QgbWFya2VyTmFtZSA9ICdkYXRhLWZsb2F0aW5nLXVpLWluZXJ0JztcbiAgY29uc3QgY29udHJvbEF0dHJpYnV0ZSA9IGluZXJ0ID8gJ2luZXJ0JyA6IGFyaWFIaWRkZW4gPyAnYXJpYS1oaWRkZW4nIDogbnVsbDtcbiAgY29uc3QgYXZvaWRFbGVtZW50cyA9IGNvcnJlY3RFbGVtZW50cyhib2R5LCB1bmNvcnJlY3RlZEF2b2lkRWxlbWVudHMpO1xuICBjb25zdCBlbGVtZW50c1RvS2VlcCA9IG5ldyBTZXQoKTtcbiAgY29uc3QgZWxlbWVudHNUb1N0b3AgPSBuZXcgU2V0KGF2b2lkRWxlbWVudHMpO1xuICBjb25zdCBoaWRkZW5FbGVtZW50cyA9IFtdO1xuICBpZiAoIW1hcmtlck1hcFttYXJrZXJOYW1lXSkge1xuICAgIG1hcmtlck1hcFttYXJrZXJOYW1lXSA9IG5ldyBXZWFrTWFwKCk7XG4gIH1cbiAgY29uc3QgbWFya2VyQ291bnRlciA9IG1hcmtlck1hcFttYXJrZXJOYW1lXTtcbiAgYXZvaWRFbGVtZW50cy5mb3JFYWNoKGtlZXApO1xuICBkZWVwKGJvZHkpO1xuICBlbGVtZW50c1RvS2VlcC5jbGVhcigpO1xuICBmdW5jdGlvbiBrZWVwKGVsKSB7XG4gICAgaWYgKCFlbCB8fCBlbGVtZW50c1RvS2VlcC5oYXMoZWwpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGVsZW1lbnRzVG9LZWVwLmFkZChlbCk7XG4gICAgZWwucGFyZW50Tm9kZSAmJiBrZWVwKGVsLnBhcmVudE5vZGUpO1xuICB9XG4gIGZ1bmN0aW9uIGRlZXAocGFyZW50KSB7XG4gICAgaWYgKCFwYXJlbnQgfHwgZWxlbWVudHNUb1N0b3AuaGFzKHBhcmVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgW10uZm9yRWFjaC5jYWxsKHBhcmVudC5jaGlsZHJlbiwgbm9kZSA9PiB7XG4gICAgICBpZiAoZ2V0Tm9kZU5hbWUobm9kZSkgPT09ICdzY3JpcHQnKSByZXR1cm47XG4gICAgICBpZiAoZWxlbWVudHNUb0tlZXAuaGFzKG5vZGUpKSB7XG4gICAgICAgIGRlZXAobm9kZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBhdHRyID0gY29udHJvbEF0dHJpYnV0ZSA/IG5vZGUuZ2V0QXR0cmlidXRlKGNvbnRyb2xBdHRyaWJ1dGUpIDogbnVsbDtcbiAgICAgICAgY29uc3QgYWxyZWFkeUhpZGRlbiA9IGF0dHIgIT09IG51bGwgJiYgYXR0ciAhPT0gJ2ZhbHNlJztcbiAgICAgICAgY29uc3QgY291bnRlclZhbHVlID0gKGNvdW50ZXJNYXAuZ2V0KG5vZGUpIHx8IDApICsgMTtcbiAgICAgICAgY29uc3QgbWFya2VyVmFsdWUgPSAobWFya2VyQ291bnRlci5nZXQobm9kZSkgfHwgMCkgKyAxO1xuICAgICAgICBjb3VudGVyTWFwLnNldChub2RlLCBjb3VudGVyVmFsdWUpO1xuICAgICAgICBtYXJrZXJDb3VudGVyLnNldChub2RlLCBtYXJrZXJWYWx1ZSk7XG4gICAgICAgIGhpZGRlbkVsZW1lbnRzLnB1c2gobm9kZSk7XG4gICAgICAgIGlmIChjb3VudGVyVmFsdWUgPT09IDEgJiYgYWxyZWFkeUhpZGRlbikge1xuICAgICAgICAgIHVuY29udHJvbGxlZEVsZW1lbnRzU2V0LmFkZChub2RlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWFya2VyVmFsdWUgPT09IDEpIHtcbiAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShtYXJrZXJOYW1lLCAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFhbHJlYWR5SGlkZGVuICYmIGNvbnRyb2xBdHRyaWJ1dGUpIHtcbiAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShjb250cm9sQXR0cmlidXRlLCAndHJ1ZScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgbG9ja0NvdW50Kys7XG4gIHJldHVybiAoKSA9PiB7XG4gICAgaGlkZGVuRWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgIGNvbnN0IGNvdW50ZXJWYWx1ZSA9IChjb3VudGVyTWFwLmdldChlbGVtZW50KSB8fCAwKSAtIDE7XG4gICAgICBjb25zdCBtYXJrZXJWYWx1ZSA9IChtYXJrZXJDb3VudGVyLmdldChlbGVtZW50KSB8fCAwKSAtIDE7XG4gICAgICBjb3VudGVyTWFwLnNldChlbGVtZW50LCBjb3VudGVyVmFsdWUpO1xuICAgICAgbWFya2VyQ291bnRlci5zZXQoZWxlbWVudCwgbWFya2VyVmFsdWUpO1xuICAgICAgaWYgKCFjb3VudGVyVmFsdWUpIHtcbiAgICAgICAgaWYgKCF1bmNvbnRyb2xsZWRFbGVtZW50c1NldC5oYXMoZWxlbWVudCkgJiYgY29udHJvbEF0dHJpYnV0ZSkge1xuICAgICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGNvbnRyb2xBdHRyaWJ1dGUpO1xuICAgICAgICB9XG4gICAgICAgIHVuY29udHJvbGxlZEVsZW1lbnRzU2V0LmRlbGV0ZShlbGVtZW50KTtcbiAgICAgIH1cbiAgICAgIGlmICghbWFya2VyVmFsdWUpIHtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUobWFya2VyTmFtZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgbG9ja0NvdW50LS07XG4gICAgaWYgKCFsb2NrQ291bnQpIHtcbiAgICAgIGNvdW50ZXJNYXAgPSBuZXcgV2Vha01hcCgpO1xuICAgICAgY291bnRlck1hcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgICB1bmNvbnRyb2xsZWRFbGVtZW50c1NldCA9IG5ldyBXZWFrU2V0KCk7XG4gICAgICBtYXJrZXJNYXAgPSB7fTtcbiAgICB9XG4gIH07XG59XG5mdW5jdGlvbiBtYXJrT3RoZXJzKGF2b2lkRWxlbWVudHMsIGFyaWFIaWRkZW4sIGluZXJ0KSB7XG4gIGlmIChhcmlhSGlkZGVuID09PSB2b2lkIDApIHtcbiAgICBhcmlhSGlkZGVuID0gZmFsc2U7XG4gIH1cbiAgaWYgKGluZXJ0ID09PSB2b2lkIDApIHtcbiAgICBpbmVydCA9IGZhbHNlO1xuICB9XG4gIGNvbnN0IGJvZHkgPSBnZXREb2N1bWVudChhdm9pZEVsZW1lbnRzWzBdKS5ib2R5O1xuICByZXR1cm4gYXBwbHlBdHRyaWJ1dGVUb090aGVycyhhdm9pZEVsZW1lbnRzLmNvbmNhdChBcnJheS5mcm9tKGJvZHkucXVlcnlTZWxlY3RvckFsbCgnW2FyaWEtbGl2ZV0nKSkpLCBib2R5LCBhcmlhSGlkZGVuLCBpbmVydCk7XG59XG5cbmNvbnN0IGdldFRhYmJhYmxlT3B0aW9ucyA9ICgpID0+ICh7XG4gIGdldFNoYWRvd1Jvb3Q6IHRydWUsXG4gIGRpc3BsYXlDaGVjazpcbiAgLy8gSlNET00gZG9lcyBub3Qgc3VwcG9ydCB0aGUgYHRhYmJhYmxlYCBsaWJyYXJ5LiBUbyBzb2x2ZSB0aGlzIHdlIGNhblxuICAvLyBjaGVjayBpZiBgUmVzaXplT2JzZXJ2ZXJgIGlzIGEgcmVhbCBmdW5jdGlvbiAobm90IHBvbHlmaWxsZWQpLCB3aGljaFxuICAvLyBkZXRlcm1pbmVzIGlmIHRoZSBjdXJyZW50IGVudmlyb25tZW50IGlzIEpTRE9NLWxpa2UuXG4gIHR5cGVvZiBSZXNpemVPYnNlcnZlciA9PT0gJ2Z1bmN0aW9uJyAmJiBSZXNpemVPYnNlcnZlci50b1N0cmluZygpLmluY2x1ZGVzKCdbbmF0aXZlIGNvZGVdJykgPyAnZnVsbCcgOiAnbm9uZSdcbn0pO1xuZnVuY3Rpb24gZ2V0VGFiYmFibGVJbihjb250YWluZXIsIGRpcmVjdGlvbikge1xuICBjb25zdCBhbGxUYWJiYWJsZSA9IHRhYmJhYmxlKGNvbnRhaW5lciwgZ2V0VGFiYmFibGVPcHRpb25zKCkpO1xuICBpZiAoZGlyZWN0aW9uID09PSAncHJldicpIHtcbiAgICBhbGxUYWJiYWJsZS5yZXZlcnNlKCk7XG4gIH1cbiAgY29uc3QgYWN0aXZlSW5kZXggPSBhbGxUYWJiYWJsZS5pbmRleE9mKGFjdGl2ZUVsZW1lbnQoZ2V0RG9jdW1lbnQoY29udGFpbmVyKSkpO1xuICBjb25zdCBuZXh0VGFiYmFibGVFbGVtZW50cyA9IGFsbFRhYmJhYmxlLnNsaWNlKGFjdGl2ZUluZGV4ICsgMSk7XG4gIHJldHVybiBuZXh0VGFiYmFibGVFbGVtZW50c1swXTtcbn1cbmZ1bmN0aW9uIGdldE5leHRUYWJiYWJsZSgpIHtcbiAgcmV0dXJuIGdldFRhYmJhYmxlSW4oZG9jdW1lbnQuYm9keSwgJ25leHQnKTtcbn1cbmZ1bmN0aW9uIGdldFByZXZpb3VzVGFiYmFibGUoKSB7XG4gIHJldHVybiBnZXRUYWJiYWJsZUluKGRvY3VtZW50LmJvZHksICdwcmV2Jyk7XG59XG5mdW5jdGlvbiBpc091dHNpZGVFdmVudChldmVudCwgY29udGFpbmVyKSB7XG4gIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSBjb250YWluZXIgfHwgZXZlbnQuY3VycmVudFRhcmdldDtcbiAgY29uc3QgcmVsYXRlZFRhcmdldCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQ7XG4gIHJldHVybiAhcmVsYXRlZFRhcmdldCB8fCAhY29udGFpbnMoY29udGFpbmVyRWxlbWVudCwgcmVsYXRlZFRhcmdldCk7XG59XG5mdW5jdGlvbiBkaXNhYmxlRm9jdXNJbnNpZGUoY29udGFpbmVyKSB7XG4gIGNvbnN0IHRhYmJhYmxlRWxlbWVudHMgPSB0YWJiYWJsZShjb250YWluZXIsIGdldFRhYmJhYmxlT3B0aW9ucygpKTtcbiAgdGFiYmFibGVFbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgIGVsZW1lbnQuZGF0YXNldC50YWJpbmRleCA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCd0YWJpbmRleCcpIHx8ICcnO1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICctMScpO1xuICB9KTtcbn1cbmZ1bmN0aW9uIGVuYWJsZUZvY3VzSW5zaWRlKGNvbnRhaW5lcikge1xuICBjb25zdCBlbGVtZW50cyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS10YWJpbmRleF0nKTtcbiAgZWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICBjb25zdCB0YWJpbmRleCA9IGVsZW1lbnQuZGF0YXNldC50YWJpbmRleDtcbiAgICBkZWxldGUgZWxlbWVudC5kYXRhc2V0LnRhYmluZGV4O1xuICAgIGlmICh0YWJpbmRleCkge1xuICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgdGFiaW5kZXgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgndGFiaW5kZXgnKTtcbiAgICB9XG4gIH0pO1xufVxuZnVuY3Rpb24gZ2V0Q2xvc2VzdFRhYmJhYmxlRWxlbWVudCh0YWJiYWJsZUVsZW1lbnRzLCBlbGVtZW50LCBmbG9hdGluZykge1xuICBjb25zdCBlbGVtZW50SW5kZXggPSB0YWJiYWJsZUVsZW1lbnRzLmluZGV4T2YoZWxlbWVudCk7XG4gIGZ1bmN0aW9uIHRyYXZlcnNlVGFiYmFibGVFbGVtZW50cyhuZXh0KSB7XG4gICAgY29uc3QgYXR0ciA9IGNyZWF0ZUF0dHJpYnV0ZSgnZm9jdXMtZ3VhcmQnKTtcbiAgICBsZXQgaW5kZXggPSBlbGVtZW50SW5kZXggKyAobmV4dCA/IDEgOiAwKTtcbiAgICBsZXQgY3VycmVudEVsZW1lbnQgPSB0YWJiYWJsZUVsZW1lbnRzW2luZGV4XTtcbiAgICB3aGlsZSAoY3VycmVudEVsZW1lbnQgJiYgKCFjdXJyZW50RWxlbWVudC5pc0Nvbm5lY3RlZCB8fCBjdXJyZW50RWxlbWVudC5oYXNBdHRyaWJ1dGUoYXR0cikgfHwgY29udGFpbnMoZmxvYXRpbmcsIGN1cnJlbnRFbGVtZW50KSkpIHtcbiAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgIGluZGV4Kys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbmRleC0tO1xuICAgICAgfVxuICAgICAgY3VycmVudEVsZW1lbnQgPSB0YWJiYWJsZUVsZW1lbnRzW2luZGV4XTtcbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnRFbGVtZW50O1xuICB9XG5cbiAgLy8gRmlyc3QsIHRyeSB0byBmaW5kIHRoZSBuZXh0IHRhYmJhYmxlIGVsZW1lbnRcbiAgY29uc3QgbmV4dCA9IHRyYXZlcnNlVGFiYmFibGVFbGVtZW50cyh0cnVlKTtcbiAgaWYgKG5leHQpIHtcbiAgICByZXR1cm4gbmV4dDtcbiAgfVxuXG4gIC8vIElmIHdlIGNhbid0IGZpbmQgYSBuZXh0IHRhYmJhYmxlIGVsZW1lbnQsIHRyeSB0byBmaW5kIHRoZSBwcmV2aW91cyBvbmVcbiAgcmV0dXJuIHRyYXZlcnNlVGFiYmFibGVFbGVtZW50cyhmYWxzZSk7XG59XG5cbi8vIFNlZSBEaWVnbyBIYXoncyBTYW5kYm94IGZvciBtYWtpbmcgdGhpcyBsb2dpYyB3b3JrIHdlbGwgb24gU2FmYXJpL2lPUzpcbi8vIGh0dHBzOi8vY29kZXNhbmRib3guaW8vcy90YWJiYWJsZS1wb3J0YWwtZjR0bmc/ZmlsZT0vc3JjL0ZvY3VzVHJhcC50c3hcblxuY29uc3QgSElEREVOX1NUWUxFUyA9IHtcbiAgYm9yZGVyOiAwLFxuICBjbGlwOiAncmVjdCgwIDAgMCAwKScsXG4gIGhlaWdodDogJzFweCcsXG4gIG1hcmdpbjogJy0xcHgnLFxuICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gIHBhZGRpbmc6IDAsXG4gIHBvc2l0aW9uOiAnZml4ZWQnLFxuICB3aGl0ZVNwYWNlOiAnbm93cmFwJyxcbiAgd2lkdGg6ICcxcHgnLFxuICB0b3A6IDAsXG4gIGxlZnQ6IDBcbn07XG5sZXQgdGltZW91dElkO1xuZnVuY3Rpb24gc2V0QWN0aXZlRWxlbWVudE9uVGFiKGV2ZW50KSB7XG4gIGlmIChldmVudC5rZXkgPT09ICdUYWInKSB7XG4gICAgZXZlbnQudGFyZ2V0O1xuICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICB9XG59XG5jb25zdCBGb2N1c0d1YXJkID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24gRm9jdXNHdWFyZChwcm9wcywgcmVmKSB7XG4gIGNvbnN0IFtyb2xlLCBzZXRSb2xlXSA9IFJlYWN0LnVzZVN0YXRlKCk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBpZiAoaXNTYWZhcmkoKSkge1xuICAgICAgLy8gVW5saWtlIG90aGVyIHNjcmVlbiByZWFkZXJzIHN1Y2ggYXMgTlZEQSBhbmQgSkFXUywgdGhlIHZpcnR1YWwgY3Vyc29yXG4gICAgICAvLyBvbiBWb2ljZU92ZXIgZG9lcyB0cmlnZ2VyIHRoZSBvbkZvY3VzIGV2ZW50LCBzbyB3ZSBjYW4gdXNlIHRoZSBmb2N1c1xuICAgICAgLy8gdHJhcCBlbGVtZW50LiBPbiBTYWZhcmksIG9ubHkgYnV0dG9ucyB0cmlnZ2VyIHRoZSBvbkZvY3VzIGV2ZW50LlxuICAgICAgLy8gTkI6IFwiZ3JvdXBcIiByb2xlIGluIHRoZSBTYW5kYm94IG5vIGxvbmdlciBhcHBlYXJzIHRvIHdvcmssIG11c3QgYmUgYVxuICAgICAgLy8gYnV0dG9uIHJvbGUuXG4gICAgICBzZXRSb2xlKCdidXR0b24nKTtcbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHNldEFjdGl2ZUVsZW1lbnRPblRhYik7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBzZXRBY3RpdmVFbGVtZW50T25UYWIpO1xuICAgIH07XG4gIH0sIFtdKTtcbiAgY29uc3QgcmVzdFByb3BzID0ge1xuICAgIHJlZixcbiAgICB0YWJJbmRleDogMCxcbiAgICAvLyBSb2xlIGlzIG9ubHkgZm9yIFZvaWNlT3ZlclxuICAgIHJvbGUsXG4gICAgJ2FyaWEtaGlkZGVuJzogcm9sZSA/IHVuZGVmaW5lZCA6IHRydWUsXG4gICAgW2NyZWF0ZUF0dHJpYnV0ZSgnZm9jdXMtZ3VhcmQnKV06ICcnLFxuICAgIHN0eWxlOiBISURERU5fU1RZTEVTXG4gIH07XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwgX2V4dGVuZHMoe30sIHByb3BzLCByZXN0UHJvcHMpKTtcbn0pO1xuXG5jb25zdCBQb3J0YWxDb250ZXh0ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCk7XG5jb25zdCBhdHRyID0gLyojX19QVVJFX18qL2NyZWF0ZUF0dHJpYnV0ZSgncG9ydGFsJyk7XG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9GbG9hdGluZ1BvcnRhbCN1c2VmbG9hdGluZ3BvcnRhbG5vZGVcbiAqL1xuZnVuY3Rpb24gdXNlRmxvYXRpbmdQb3J0YWxOb2RlKHByb3BzKSB7XG4gIGlmIChwcm9wcyA9PT0gdm9pZCAwKSB7XG4gICAgcHJvcHMgPSB7fTtcbiAgfVxuICBjb25zdCB7XG4gICAgaWQsXG4gICAgcm9vdFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHVuaXF1ZUlkID0gdXNlSWQoKTtcbiAgY29uc3QgcG9ydGFsQ29udGV4dCA9IHVzZVBvcnRhbENvbnRleHQoKTtcbiAgY29uc3QgW3BvcnRhbE5vZGUsIHNldFBvcnRhbE5vZGVdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IHBvcnRhbE5vZGVSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGluZGV4KCgpID0+IHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcG9ydGFsTm9kZSA9PSBudWxsIHx8IHBvcnRhbE5vZGUucmVtb3ZlKCk7XG4gICAgICAvLyBBbGxvdyB0aGUgc3Vic2VxdWVudCBsYXlvdXQgZWZmZWN0cyB0byBjcmVhdGUgYSBuZXcgbm9kZSBvbiB1cGRhdGVzLlxuICAgICAgLy8gVGhlIHBvcnRhbCBub2RlIHdpbGwgc3RpbGwgYmUgY2xlYW5lZCB1cCBvbiB1bm1vdW50LlxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2Zsb2F0aW5nLXVpL2Zsb2F0aW5nLXVpL2lzc3Vlcy8yNDU0XG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgIHBvcnRhbE5vZGVSZWYuY3VycmVudCA9IG51bGw7XG4gICAgICB9KTtcbiAgICB9O1xuICB9LCBbcG9ydGFsTm9kZV0pO1xuICBpbmRleCgoKSA9PiB7XG4gICAgLy8gV2FpdCBmb3IgdGhlIHVuaXF1ZUlkIHRvIGJlIGdlbmVyYXRlZCBiZWZvcmUgY3JlYXRpbmcgdGhlIHBvcnRhbCBub2RlIGluXG4gICAgLy8gUmVhY3QgPDE4ICh1c2luZyBgdXNlRmxvYXRpbmdJZGAgaW5zdGVhZCBvZiB0aGUgbmF0aXZlIGB1c2VJZGApLlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mbG9hdGluZy11aS9mbG9hdGluZy11aS9pc3N1ZXMvMjc3OFxuICAgIGlmICghdW5pcXVlSWQpIHJldHVybjtcbiAgICBpZiAocG9ydGFsTm9kZVJlZi5jdXJyZW50KSByZXR1cm47XG4gICAgY29uc3QgZXhpc3RpbmdJZFJvb3QgPSBpZCA/IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSA6IG51bGw7XG4gICAgaWYgKCFleGlzdGluZ0lkUm9vdCkgcmV0dXJuO1xuICAgIGNvbnN0IHN1YlJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBzdWJSb290LmlkID0gdW5pcXVlSWQ7XG4gICAgc3ViUm9vdC5zZXRBdHRyaWJ1dGUoYXR0ciwgJycpO1xuICAgIGV4aXN0aW5nSWRSb290LmFwcGVuZENoaWxkKHN1YlJvb3QpO1xuICAgIHBvcnRhbE5vZGVSZWYuY3VycmVudCA9IHN1YlJvb3Q7XG4gICAgc2V0UG9ydGFsTm9kZShzdWJSb290KTtcbiAgfSwgW2lkLCB1bmlxdWVJZF0pO1xuICBpbmRleCgoKSA9PiB7XG4gICAgaWYgKCF1bmlxdWVJZCkgcmV0dXJuO1xuICAgIGlmIChwb3J0YWxOb2RlUmVmLmN1cnJlbnQpIHJldHVybjtcbiAgICBsZXQgY29udGFpbmVyID0gcm9vdCB8fCAocG9ydGFsQ29udGV4dCA9PSBudWxsID8gdm9pZCAwIDogcG9ydGFsQ29udGV4dC5wb3J0YWxOb2RlKTtcbiAgICBpZiAoY29udGFpbmVyICYmICFpc0VsZW1lbnQoY29udGFpbmVyKSkgY29udGFpbmVyID0gY29udGFpbmVyLmN1cnJlbnQ7XG4gICAgY29udGFpbmVyID0gY29udGFpbmVyIHx8IGRvY3VtZW50LmJvZHk7XG4gICAgbGV0IGlkV3JhcHBlciA9IG51bGw7XG4gICAgaWYgKGlkKSB7XG4gICAgICBpZFdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIGlkV3JhcHBlci5pZCA9IGlkO1xuICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGlkV3JhcHBlcik7XG4gICAgfVxuICAgIGNvbnN0IHN1YlJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBzdWJSb290LmlkID0gdW5pcXVlSWQ7XG4gICAgc3ViUm9vdC5zZXRBdHRyaWJ1dGUoYXR0ciwgJycpO1xuICAgIGNvbnRhaW5lciA9IGlkV3JhcHBlciB8fCBjb250YWluZXI7XG4gICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHN1YlJvb3QpO1xuICAgIHBvcnRhbE5vZGVSZWYuY3VycmVudCA9IHN1YlJvb3Q7XG4gICAgc2V0UG9ydGFsTm9kZShzdWJSb290KTtcbiAgfSwgW2lkLCByb290LCB1bmlxdWVJZCwgcG9ydGFsQ29udGV4dF0pO1xuICByZXR1cm4gcG9ydGFsTm9kZTtcbn1cbi8qKlxuICogUG9ydGFscyB0aGUgZmxvYXRpbmcgZWxlbWVudCBpbnRvIGEgZ2l2ZW4gY29udGFpbmVyIGVsZW1lbnQg4oCUIGJ5IGRlZmF1bHQsXG4gKiBvdXRzaWRlIG9mIHRoZSBhcHAgcm9vdCBhbmQgaW50byB0aGUgYm9keS5cbiAqIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSB0aGUgZmxvYXRpbmcgZWxlbWVudCBjYW4gYXBwZWFyIG91dHNpZGUgYW55XG4gKiBwb3RlbnRpYWwgcGFyZW50IGNvbnRhaW5lcnMgdGhhdCBjYXVzZSBjbGlwcGluZyAoc3VjaCBhcyBgb3ZlcmZsb3c6IGhpZGRlbmApLFxuICogd2hpbGUgcmV0YWluaW5nIGl0cyBsb2NhdGlvbiBpbiB0aGUgUmVhY3QgdHJlZS5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9GbG9hdGluZ1BvcnRhbFxuICovXG5mdW5jdGlvbiBGbG9hdGluZ1BvcnRhbChwcm9wcykge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgaWQsXG4gICAgcm9vdCA9IG51bGwsXG4gICAgcHJlc2VydmVUYWJPcmRlciA9IHRydWVcbiAgfSA9IHByb3BzO1xuICBjb25zdCBwb3J0YWxOb2RlID0gdXNlRmxvYXRpbmdQb3J0YWxOb2RlKHtcbiAgICBpZCxcbiAgICByb290XG4gIH0pO1xuICBjb25zdCBbZm9jdXNNYW5hZ2VyU3RhdGUsIHNldEZvY3VzTWFuYWdlclN0YXRlXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICBjb25zdCBiZWZvcmVPdXRzaWRlUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBhZnRlck91dHNpZGVSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGNvbnN0IGJlZm9yZUluc2lkZVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgY29uc3QgYWZ0ZXJJbnNpZGVSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGNvbnN0IHNob3VsZFJlbmRlckd1YXJkcyA9XG4gIC8vIFRoZSBGb2N1c01hbmFnZXIgYW5kIHRoZXJlZm9yZSBmbG9hdGluZyBlbGVtZW50IGFyZSBjdXJyZW50bHkgb3Blbi9cbiAgLy8gcmVuZGVyZWQuXG4gICEhZm9jdXNNYW5hZ2VyU3RhdGUgJiZcbiAgLy8gR3VhcmRzIGFyZSBvbmx5IGZvciBub24tbW9kYWwgZm9jdXMgbWFuYWdlbWVudC5cbiAgIWZvY3VzTWFuYWdlclN0YXRlLm1vZGFsICYmXG4gIC8vIERvbid0IHJlbmRlciBpZiB1bm1vdW50IGlzIHRyYW5zaXRpb25pbmcuXG4gIGZvY3VzTWFuYWdlclN0YXRlLm9wZW4gJiYgcHJlc2VydmVUYWJPcmRlciAmJiAhIShyb290IHx8IHBvcnRhbE5vZGUpO1xuXG4gIC8vIGh0dHBzOi8vY29kZXNhbmRib3guaW8vcy90YWJiYWJsZS1wb3J0YWwtZjR0bmc/ZmlsZT0vc3JjL1RhYmJhYmxlUG9ydGFsLnRzeFxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcG9ydGFsTm9kZSB8fCAhcHJlc2VydmVUYWJPcmRlciB8fCBmb2N1c01hbmFnZXJTdGF0ZSAhPSBudWxsICYmIGZvY3VzTWFuYWdlclN0YXRlLm1vZGFsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gTWFrZSBzdXJlIGVsZW1lbnRzIGluc2lkZSB0aGUgcG9ydGFsIGVsZW1lbnQgYXJlIHRhYmJhYmxlIG9ubHkgd2hlbiB0aGVcbiAgICAvLyBwb3J0YWwgaGFzIGFscmVhZHkgYmVlbiBmb2N1c2VkLCBlaXRoZXIgYnkgdGFiYmluZyBpbnRvIGEgZm9jdXMgdHJhcFxuICAgIC8vIGVsZW1lbnQgb3V0c2lkZSBvciB1c2luZyB0aGUgbW91c2UuXG4gICAgZnVuY3Rpb24gb25Gb2N1cyhldmVudCkge1xuICAgICAgaWYgKHBvcnRhbE5vZGUgJiYgaXNPdXRzaWRlRXZlbnQoZXZlbnQpKSB7XG4gICAgICAgIGNvbnN0IGZvY3VzaW5nID0gZXZlbnQudHlwZSA9PT0gJ2ZvY3VzaW4nO1xuICAgICAgICBjb25zdCBtYW5hZ2VGb2N1cyA9IGZvY3VzaW5nID8gZW5hYmxlRm9jdXNJbnNpZGUgOiBkaXNhYmxlRm9jdXNJbnNpZGU7XG4gICAgICAgIG1hbmFnZUZvY3VzKHBvcnRhbE5vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBMaXN0ZW4gdG8gdGhlIGV2ZW50IG9uIHRoZSBjYXB0dXJlIHBoYXNlIHNvIHRoZXkgcnVuIGJlZm9yZSB0aGUgZm9jdXNcbiAgICAvLyB0cmFwIGVsZW1lbnRzIG9uRm9jdXMgcHJvcCBpcyBjYWxsZWQuXG4gICAgcG9ydGFsTm9kZS5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgb25Gb2N1cywgdHJ1ZSk7XG4gICAgcG9ydGFsTm9kZS5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIG9uRm9jdXMsIHRydWUpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBwb3J0YWxOb2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCBvbkZvY3VzLCB0cnVlKTtcbiAgICAgIHBvcnRhbE5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXNvdXQnLCBvbkZvY3VzLCB0cnVlKTtcbiAgICB9O1xuICB9LCBbcG9ydGFsTm9kZSwgcHJlc2VydmVUYWJPcmRlciwgZm9jdXNNYW5hZ2VyU3RhdGUgPT0gbnVsbCA/IHZvaWQgMCA6IGZvY3VzTWFuYWdlclN0YXRlLm1vZGFsXSk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChQb3J0YWxDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgdmFsdWU6IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICAgIHByZXNlcnZlVGFiT3JkZXIsXG4gICAgICBiZWZvcmVPdXRzaWRlUmVmLFxuICAgICAgYWZ0ZXJPdXRzaWRlUmVmLFxuICAgICAgYmVmb3JlSW5zaWRlUmVmLFxuICAgICAgYWZ0ZXJJbnNpZGVSZWYsXG4gICAgICBwb3J0YWxOb2RlLFxuICAgICAgc2V0Rm9jdXNNYW5hZ2VyU3RhdGVcbiAgICB9KSwgW3ByZXNlcnZlVGFiT3JkZXIsIHBvcnRhbE5vZGVdKVxuICB9LCBzaG91bGRSZW5kZXJHdWFyZHMgJiYgcG9ydGFsTm9kZSAmJiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChGb2N1c0d1YXJkLCB7XG4gICAgXCJkYXRhLXR5cGVcIjogXCJvdXRzaWRlXCIsXG4gICAgcmVmOiBiZWZvcmVPdXRzaWRlUmVmLFxuICAgIG9uRm9jdXM6IGV2ZW50ID0+IHtcbiAgICAgIGlmIChpc091dHNpZGVFdmVudChldmVudCwgcG9ydGFsTm9kZSkpIHtcbiAgICAgICAgdmFyIF9iZWZvcmVJbnNpZGVSZWYkY3VycjtcbiAgICAgICAgKF9iZWZvcmVJbnNpZGVSZWYkY3VyciA9IGJlZm9yZUluc2lkZVJlZi5jdXJyZW50KSA9PSBudWxsIHx8IF9iZWZvcmVJbnNpZGVSZWYkY3Vyci5mb2N1cygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcHJldlRhYmJhYmxlID0gZ2V0UHJldmlvdXNUYWJiYWJsZSgpIHx8IChmb2N1c01hbmFnZXJTdGF0ZSA9PSBudWxsID8gdm9pZCAwIDogZm9jdXNNYW5hZ2VyU3RhdGUucmVmcy5kb21SZWZlcmVuY2UuY3VycmVudCk7XG4gICAgICAgIHByZXZUYWJiYWJsZSA9PSBudWxsIHx8IHByZXZUYWJiYWJsZS5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfSksIHNob3VsZFJlbmRlckd1YXJkcyAmJiBwb3J0YWxOb2RlICYmIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgXCJhcmlhLW93bnNcIjogcG9ydGFsTm9kZS5pZCxcbiAgICBzdHlsZTogSElEREVOX1NUWUxFU1xuICB9KSwgcG9ydGFsTm9kZSAmJiAvKiNfX1BVUkVfXyovUmVhY3RET00uY3JlYXRlUG9ydGFsKGNoaWxkcmVuLCBwb3J0YWxOb2RlKSwgc2hvdWxkUmVuZGVyR3VhcmRzICYmIHBvcnRhbE5vZGUgJiYgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoRm9jdXNHdWFyZCwge1xuICAgIFwiZGF0YS10eXBlXCI6IFwib3V0c2lkZVwiLFxuICAgIHJlZjogYWZ0ZXJPdXRzaWRlUmVmLFxuICAgIG9uRm9jdXM6IGV2ZW50ID0+IHtcbiAgICAgIGlmIChpc091dHNpZGVFdmVudChldmVudCwgcG9ydGFsTm9kZSkpIHtcbiAgICAgICAgdmFyIF9hZnRlckluc2lkZVJlZiRjdXJyZTtcbiAgICAgICAgKF9hZnRlckluc2lkZVJlZiRjdXJyZSA9IGFmdGVySW5zaWRlUmVmLmN1cnJlbnQpID09IG51bGwgfHwgX2FmdGVySW5zaWRlUmVmJGN1cnJlLmZvY3VzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBuZXh0VGFiYmFibGUgPSBnZXROZXh0VGFiYmFibGUoKSB8fCAoZm9jdXNNYW5hZ2VyU3RhdGUgPT0gbnVsbCA/IHZvaWQgMCA6IGZvY3VzTWFuYWdlclN0YXRlLnJlZnMuZG9tUmVmZXJlbmNlLmN1cnJlbnQpO1xuICAgICAgICBuZXh0VGFiYmFibGUgPT0gbnVsbCB8fCBuZXh0VGFiYmFibGUuZm9jdXMoKTtcbiAgICAgICAgKGZvY3VzTWFuYWdlclN0YXRlID09IG51bGwgPyB2b2lkIDAgOiBmb2N1c01hbmFnZXJTdGF0ZS5jbG9zZU9uRm9jdXNPdXQpICYmIChmb2N1c01hbmFnZXJTdGF0ZSA9PSBudWxsID8gdm9pZCAwIDogZm9jdXNNYW5hZ2VyU3RhdGUub25PcGVuQ2hhbmdlKGZhbHNlLCBldmVudC5uYXRpdmVFdmVudCkpO1xuICAgICAgfVxuICAgIH1cbiAgfSkpO1xufVxuY29uc3QgdXNlUG9ydGFsQ29udGV4dCA9ICgpID0+IFJlYWN0LnVzZUNvbnRleHQoUG9ydGFsQ29udGV4dCk7XG5cbmNvbnN0IExJU1RfTElNSVQgPSAyMDtcbmxldCBwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnRzID0gW107XG5mdW5jdGlvbiBhZGRQcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQoZWxlbWVudCkge1xuICBwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnRzID0gcHJldmlvdXNseUZvY3VzZWRFbGVtZW50cy5maWx0ZXIoZWwgPT4gZWwuaXNDb25uZWN0ZWQpO1xuICBsZXQgdGFiYmFibGVFbCA9IGVsZW1lbnQ7XG4gIGlmICghdGFiYmFibGVFbCB8fCBnZXROb2RlTmFtZSh0YWJiYWJsZUVsKSA9PT0gJ2JvZHknKSByZXR1cm47XG4gIGlmICghaXNUYWJiYWJsZSh0YWJiYWJsZUVsLCBnZXRUYWJiYWJsZU9wdGlvbnMoKSkpIHtcbiAgICBjb25zdCB0YWJiYWJsZUNoaWxkID0gdGFiYmFibGUodGFiYmFibGVFbCwgZ2V0VGFiYmFibGVPcHRpb25zKCkpWzBdO1xuICAgIGlmICh0YWJiYWJsZUNoaWxkKSB7XG4gICAgICB0YWJiYWJsZUVsID0gdGFiYmFibGVDaGlsZDtcbiAgICB9XG4gIH1cbiAgcHJldmlvdXNseUZvY3VzZWRFbGVtZW50cy5wdXNoKHRhYmJhYmxlRWwpO1xuICBpZiAocHJldmlvdXNseUZvY3VzZWRFbGVtZW50cy5sZW5ndGggPiBMSVNUX0xJTUlUKSB7XG4gICAgcHJldmlvdXNseUZvY3VzZWRFbGVtZW50cyA9IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudHMuc2xpY2UoLUxJU1RfTElNSVQpO1xuICB9XG59XG5mdW5jdGlvbiBnZXRQcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQoKSB7XG4gIHJldHVybiBwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnRzLnNsaWNlKCkucmV2ZXJzZSgpLmZpbmQoZWwgPT4gZWwuaXNDb25uZWN0ZWQpO1xufVxuY29uc3QgVmlzdWFsbHlIaWRkZW5EaXNtaXNzID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24gVmlzdWFsbHlIaWRkZW5EaXNtaXNzKHByb3BzLCByZWYpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIF9leHRlbmRzKHt9LCBwcm9wcywge1xuICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgcmVmOiByZWYsXG4gICAgdGFiSW5kZXg6IC0xLFxuICAgIHN0eWxlOiBISURERU5fU1RZTEVTXG4gIH0pKTtcbn0pO1xuLyoqXG4gKiBQcm92aWRlcyBmb2N1cyBtYW5hZ2VtZW50IGZvciB0aGUgZmxvYXRpbmcgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9GbG9hdGluZ0ZvY3VzTWFuYWdlclxuICovXG5mdW5jdGlvbiBGbG9hdGluZ0ZvY3VzTWFuYWdlcihwcm9wcykge1xuICBjb25zdCB7XG4gICAgY29udGV4dCxcbiAgICBjaGlsZHJlbixcbiAgICBkaXNhYmxlZCA9IGZhbHNlLFxuICAgIG9yZGVyID0gWydjb250ZW50J10sXG4gICAgZ3VhcmRzOiBfZ3VhcmRzID0gdHJ1ZSxcbiAgICBpbml0aWFsRm9jdXMgPSAwLFxuICAgIHJldHVybkZvY3VzID0gdHJ1ZSxcbiAgICByZXN0b3JlRm9jdXMgPSBmYWxzZSxcbiAgICBtb2RhbCA9IHRydWUsXG4gICAgdmlzdWFsbHlIaWRkZW5EaXNtaXNzID0gZmFsc2UsXG4gICAgY2xvc2VPbkZvY3VzT3V0ID0gdHJ1ZVxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHtcbiAgICBvcGVuLFxuICAgIHJlZnMsXG4gICAgbm9kZUlkLFxuICAgIG9uT3BlbkNoYW5nZSxcbiAgICBldmVudHMsXG4gICAgZGF0YVJlZixcbiAgICBmbG9hdGluZ0lkLFxuICAgIGVsZW1lbnRzOiB7XG4gICAgICBkb21SZWZlcmVuY2UsXG4gICAgICBmbG9hdGluZ1xuICAgIH1cbiAgfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGlnbm9yZUluaXRpYWxGb2N1cyA9IHR5cGVvZiBpbml0aWFsRm9jdXMgPT09ICdudW1iZXInICYmIGluaXRpYWxGb2N1cyA8IDA7XG4gIC8vIElmIHRoZSByZWZlcmVuY2UgaXMgYSBjb21ib2JveCBhbmQgaXMgdHlwZWFibGUgKGUuZy4gaW5wdXQvdGV4dGFyZWEpLFxuICAvLyB0aGVyZSBhcmUgZGlmZmVyZW50IGZvY3VzIHNlbWFudGljcy4gVGhlIGd1YXJkcyBzaG91bGQgbm90IGJlIHJlbmRlcmVkLCBidXRcbiAgLy8gYXJpYS1oaWRkZW4gc2hvdWxkIGJlIGFwcGxpZWQgdG8gYWxsIG5vZGVzIHN0aWxsLiBGdXJ0aGVyLCB0aGUgdmlzdWFsbHlcbiAgLy8gaGlkZGVuIGRpc21pc3MgYnV0dG9uIHNob3VsZCBvbmx5IGFwcGVhciBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LCBub3QgdGhlXG4gIC8vIHN0YXJ0LlxuICBjb25zdCBpc1VudHJhcHBlZFR5cGVhYmxlQ29tYm9ib3ggPSBpc1R5cGVhYmxlQ29tYm9ib3goZG9tUmVmZXJlbmNlKSAmJiBpZ25vcmVJbml0aWFsRm9jdXM7XG5cbiAgLy8gRm9yY2UgdGhlIGd1YXJkcyB0byBiZSByZW5kZXJlZCBpZiB0aGUgYGluZXJ0YCBhdHRyaWJ1dGUgaXMgbm90IHN1cHBvcnRlZC5cbiAgY29uc3QgZ3VhcmRzID0gc3VwcG9ydHNJbmVydCgpID8gX2d1YXJkcyA6IHRydWU7XG4gIGNvbnN0IG9yZGVyUmVmID0gdXNlTGF0ZXN0UmVmKG9yZGVyKTtcbiAgY29uc3QgaW5pdGlhbEZvY3VzUmVmID0gdXNlTGF0ZXN0UmVmKGluaXRpYWxGb2N1cyk7XG4gIGNvbnN0IHJldHVybkZvY3VzUmVmID0gdXNlTGF0ZXN0UmVmKHJldHVybkZvY3VzKTtcbiAgY29uc3QgdHJlZSA9IHVzZUZsb2F0aW5nVHJlZSgpO1xuICBjb25zdCBwb3J0YWxDb250ZXh0ID0gdXNlUG9ydGFsQ29udGV4dCgpO1xuICBjb25zdCBzdGFydERpc21pc3NCdXR0b25SZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGNvbnN0IGVuZERpc21pc3NCdXR0b25SZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGNvbnN0IHByZXZlbnRSZXR1cm5Gb2N1c1JlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IGlzUG9pbnRlckRvd25SZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICBjb25zdCB0YWJiYWJsZUluZGV4UmVmID0gUmVhY3QudXNlUmVmKC0xKTtcbiAgY29uc3QgaXNJbnNpZGVQb3J0YWwgPSBwb3J0YWxDb250ZXh0ICE9IG51bGw7XG4gIGNvbnN0IGZpcnN0RWxlbWVudENoaWxkID0gZmxvYXRpbmcgPT0gbnVsbCA/IHZvaWQgMCA6IGZsb2F0aW5nLmZpcnN0RWxlbWVudENoaWxkO1xuICAvLyBJZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBpcyBhY3RpbmcgYXMgYSBwb3NpdGlvbmluZyB3cmFwcGVyIHJhdGhlciB0aGFuIHRoZVxuICAvLyBlbGVtZW50IHRoYXQgcmVjZWl2ZXMgYXJpYSBwcm9wcywgdXNlIGl0IGFzIHRoZSBmb2N1cyByb290IGluc3RlYWQuXG4gIGNvbnN0IGZsb2F0aW5nRm9jdXNOb2RlID0gKGZpcnN0RWxlbWVudENoaWxkID09IG51bGwgPyB2b2lkIDAgOiBmaXJzdEVsZW1lbnRDaGlsZC5pZCkgPT09IGZsb2F0aW5nSWQgPyBmaXJzdEVsZW1lbnRDaGlsZCA6IGZsb2F0aW5nO1xuICBjb25zdCBnZXRUYWJiYWJsZUNvbnRlbnQgPSB1c2VFZmZlY3RFdmVudChmdW5jdGlvbiAoY29udGFpbmVyKSB7XG4gICAgaWYgKGNvbnRhaW5lciA9PT0gdm9pZCAwKSB7XG4gICAgICBjb250YWluZXIgPSBmbG9hdGluZ0ZvY3VzTm9kZTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRhaW5lciA/IHRhYmJhYmxlKGNvbnRhaW5lciwgZ2V0VGFiYmFibGVPcHRpb25zKCkpIDogW107XG4gIH0pO1xuICBjb25zdCBnZXRUYWJiYWJsZUVsZW1lbnRzID0gdXNlRWZmZWN0RXZlbnQoY29udGFpbmVyID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gZ2V0VGFiYmFibGVDb250ZW50KGNvbnRhaW5lcik7XG4gICAgcmV0dXJuIG9yZGVyUmVmLmN1cnJlbnQubWFwKHR5cGUgPT4ge1xuICAgICAgaWYgKGRvbVJlZmVyZW5jZSAmJiB0eXBlID09PSAncmVmZXJlbmNlJykge1xuICAgICAgICByZXR1cm4gZG9tUmVmZXJlbmNlO1xuICAgICAgfVxuICAgICAgaWYgKGZsb2F0aW5nRm9jdXNOb2RlICYmIHR5cGUgPT09ICdmbG9hdGluZycpIHtcbiAgICAgICAgcmV0dXJuIGZsb2F0aW5nRm9jdXNOb2RlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfSkuZmlsdGVyKEJvb2xlYW4pLmZsYXQoKTtcbiAgfSk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGRpc2FibGVkKSByZXR1cm47XG4gICAgaWYgKCFtb2RhbCkgcmV0dXJuO1xuICAgIGZ1bmN0aW9uIG9uS2V5RG93bihldmVudCkge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgICAgLy8gVGhlIGZvY3VzIGd1YXJkcyBoYXZlIG5vdGhpbmcgdG8gZm9jdXMsIHNvIHdlIG5lZWQgdG8gc3RvcCB0aGUgZXZlbnQuXG4gICAgICAgIGlmIChjb250YWlucyhmbG9hdGluZ0ZvY3VzTm9kZSwgYWN0aXZlRWxlbWVudChnZXREb2N1bWVudChmbG9hdGluZ0ZvY3VzTm9kZSkpKSAmJiBnZXRUYWJiYWJsZUNvbnRlbnQoKS5sZW5ndGggPT09IDAgJiYgIWlzVW50cmFwcGVkVHlwZWFibGVDb21ib2JveCkge1xuICAgICAgICAgIHN0b3BFdmVudChldmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZWxzID0gZ2V0VGFiYmFibGVFbGVtZW50cygpO1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBnZXRUYXJnZXQoZXZlbnQpO1xuICAgICAgICBpZiAob3JkZXJSZWYuY3VycmVudFswXSA9PT0gJ3JlZmVyZW5jZScgJiYgdGFyZ2V0ID09PSBkb21SZWZlcmVuY2UpIHtcbiAgICAgICAgICBzdG9wRXZlbnQoZXZlbnQpO1xuICAgICAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgZW5xdWV1ZUZvY3VzKGVsc1tlbHMubGVuZ3RoIC0gMV0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlbnF1ZXVlRm9jdXMoZWxzWzFdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9yZGVyUmVmLmN1cnJlbnRbMV0gPT09ICdmbG9hdGluZycgJiYgdGFyZ2V0ID09PSBmbG9hdGluZ0ZvY3VzTm9kZSAmJiBldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgIHN0b3BFdmVudChldmVudCk7XG4gICAgICAgICAgZW5xdWV1ZUZvY3VzKGVsc1swXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgZG9jID0gZ2V0RG9jdW1lbnQoZmxvYXRpbmdGb2N1c05vZGUpO1xuICAgIGRvYy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgb25LZXlEb3duKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBvbktleURvd24pO1xuICAgIH07XG4gIH0sIFtkaXNhYmxlZCwgZG9tUmVmZXJlbmNlLCBmbG9hdGluZ0ZvY3VzTm9kZSwgbW9kYWwsIG9yZGVyUmVmLCBpc1VudHJhcHBlZFR5cGVhYmxlQ29tYm9ib3gsIGdldFRhYmJhYmxlQ29udGVudCwgZ2V0VGFiYmFibGVFbGVtZW50c10pO1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChkaXNhYmxlZCkgcmV0dXJuO1xuICAgIGlmICghZmxvYXRpbmcpIHJldHVybjtcbiAgICBmdW5jdGlvbiBoYW5kbGVGb2N1c0luKGV2ZW50KSB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBnZXRUYXJnZXQoZXZlbnQpO1xuICAgICAgY29uc3QgdGFiYmFibGVDb250ZW50ID0gZ2V0VGFiYmFibGVDb250ZW50KCk7XG4gICAgICBjb25zdCB0YWJiYWJsZUluZGV4ID0gdGFiYmFibGVDb250ZW50LmluZGV4T2YodGFyZ2V0KTtcbiAgICAgIGlmICh0YWJiYWJsZUluZGV4ICE9PSAtMSkge1xuICAgICAgICB0YWJiYWJsZUluZGV4UmVmLmN1cnJlbnQgPSB0YWJiYWJsZUluZGV4O1xuICAgICAgfVxuICAgIH1cbiAgICBmbG9hdGluZy5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgaGFuZGxlRm9jdXNJbik7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGZsb2F0aW5nLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCBoYW5kbGVGb2N1c0luKTtcbiAgICB9O1xuICB9LCBbZGlzYWJsZWQsIGZsb2F0aW5nLCBnZXRUYWJiYWJsZUNvbnRlbnRdKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZGlzYWJsZWQpIHJldHVybjtcbiAgICBpZiAoIWNsb3NlT25Gb2N1c091dCkgcmV0dXJuO1xuXG4gICAgLy8gSW4gU2FmYXJpLCBidXR0b25zIGxvc2UgZm9jdXMgd2hlbiBwcmVzc2luZyB0aGVtLlxuICAgIGZ1bmN0aW9uIGhhbmRsZVBvaW50ZXJEb3duKCkge1xuICAgICAgaXNQb2ludGVyRG93blJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpc1BvaW50ZXJEb3duUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoYW5kbGVGb2N1c091dHNpZGUoZXZlbnQpIHtcbiAgICAgIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSBldmVudC5yZWxhdGVkVGFyZ2V0O1xuICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICBjb25zdCBtb3ZlZFRvVW5yZWxhdGVkTm9kZSA9ICEoY29udGFpbnMoZG9tUmVmZXJlbmNlLCByZWxhdGVkVGFyZ2V0KSB8fCBjb250YWlucyhmbG9hdGluZywgcmVsYXRlZFRhcmdldCkgfHwgY29udGFpbnMocmVsYXRlZFRhcmdldCwgZmxvYXRpbmcpIHx8IGNvbnRhaW5zKHBvcnRhbENvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IHBvcnRhbENvbnRleHQucG9ydGFsTm9kZSwgcmVsYXRlZFRhcmdldCkgfHwgcmVsYXRlZFRhcmdldCAhPSBudWxsICYmIHJlbGF0ZWRUYXJnZXQuaGFzQXR0cmlidXRlKGNyZWF0ZUF0dHJpYnV0ZSgnZm9jdXMtZ3VhcmQnKSkgfHwgdHJlZSAmJiAoZ2V0Q2hpbGRyZW4odHJlZS5ub2Rlc1JlZi5jdXJyZW50LCBub2RlSWQpLmZpbmQobm9kZSA9PiB7XG4gICAgICAgICAgdmFyIF9ub2RlJGNvbnRleHQsIF9ub2RlJGNvbnRleHQyO1xuICAgICAgICAgIHJldHVybiBjb250YWlucygoX25vZGUkY29udGV4dCA9IG5vZGUuY29udGV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9ub2RlJGNvbnRleHQuZWxlbWVudHMuZmxvYXRpbmcsIHJlbGF0ZWRUYXJnZXQpIHx8IGNvbnRhaW5zKChfbm9kZSRjb250ZXh0MiA9IG5vZGUuY29udGV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9ub2RlJGNvbnRleHQyLmVsZW1lbnRzLmRvbVJlZmVyZW5jZSwgcmVsYXRlZFRhcmdldCk7XG4gICAgICAgIH0pIHx8IGdldEFuY2VzdG9ycyh0cmVlLm5vZGVzUmVmLmN1cnJlbnQsIG5vZGVJZCkuZmluZChub2RlID0+IHtcbiAgICAgICAgICB2YXIgX25vZGUkY29udGV4dDMsIF9ub2RlJGNvbnRleHQ0O1xuICAgICAgICAgIHJldHVybiAoKF9ub2RlJGNvbnRleHQzID0gbm9kZS5jb250ZXh0KSA9PSBudWxsID8gdm9pZCAwIDogX25vZGUkY29udGV4dDMuZWxlbWVudHMuZmxvYXRpbmcpID09PSByZWxhdGVkVGFyZ2V0IHx8ICgoX25vZGUkY29udGV4dDQgPSBub2RlLmNvbnRleHQpID09IG51bGwgPyB2b2lkIDAgOiBfbm9kZSRjb250ZXh0NC5lbGVtZW50cy5kb21SZWZlcmVuY2UpID09PSByZWxhdGVkVGFyZ2V0O1xuICAgICAgICB9KSkpO1xuXG4gICAgICAgIC8vIFJlc3RvcmUgZm9jdXMgdG8gdGhlIHByZXZpb3VzIHRhYmJhYmxlIGVsZW1lbnQgaW5kZXggdG8gcHJldmVudFxuICAgICAgICAvLyBmb2N1cyBmcm9tIGJlaW5nIGxvc3Qgb3V0c2lkZSB0aGUgZmxvYXRpbmcgdHJlZS5cbiAgICAgICAgaWYgKHJlc3RvcmVGb2N1cyAmJiBtb3ZlZFRvVW5yZWxhdGVkTm9kZSAmJiBhY3RpdmVFbGVtZW50KGdldERvY3VtZW50KGZsb2F0aW5nRm9jdXNOb2RlKSkgPT09IGdldERvY3VtZW50KGZsb2F0aW5nRm9jdXNOb2RlKS5ib2R5KSB7XG4gICAgICAgICAgLy8gTGV0IGBGbG9hdGluZ1BvcnRhbGAgZWZmZWN0IGtub3dzIHRoYXQgZm9jdXMgaXMgc3RpbGwgaW5zaWRlIHRoZVxuICAgICAgICAgIC8vIGZsb2F0aW5nIHRyZWUuXG4gICAgICAgICAgaWYgKGlzSFRNTEVsZW1lbnQoZmxvYXRpbmdGb2N1c05vZGUpKSB7XG4gICAgICAgICAgICBmbG9hdGluZ0ZvY3VzTm9kZSA9PSBudWxsIHx8IGZsb2F0aW5nRm9jdXNOb2RlLmZvY3VzKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHByZXZUYWJiYWJsZUluZGV4ID0gdGFiYmFibGVJbmRleFJlZi5jdXJyZW50O1xuICAgICAgICAgIGNvbnN0IHRhYmJhYmxlQ29udGVudCA9IGdldFRhYmJhYmxlQ29udGVudCgpO1xuICAgICAgICAgIGNvbnN0IG5vZGVUb0ZvY3VzID0gdGFiYmFibGVDb250ZW50W3ByZXZUYWJiYWJsZUluZGV4XSB8fCB0YWJiYWJsZUNvbnRlbnRbdGFiYmFibGVDb250ZW50Lmxlbmd0aCAtIDFdIHx8IGZsb2F0aW5nRm9jdXNOb2RlO1xuICAgICAgICAgIGlmIChpc0hUTUxFbGVtZW50KG5vZGVUb0ZvY3VzKSkge1xuICAgICAgICAgICAgbm9kZVRvRm9jdXMuZm9jdXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGb2N1cyBkaWQgbm90IG1vdmUgaW5zaWRlIHRoZSBmbG9hdGluZyB0cmVlLCBhbmQgdGhlcmUgYXJlIG5vIHRhYmJhYmxlXG4gICAgICAgIC8vIHBvcnRhbCBndWFyZHMgdG8gaGFuZGxlIGNsb3NpbmcuXG4gICAgICAgIGlmICgoaXNVbnRyYXBwZWRUeXBlYWJsZUNvbWJvYm94ID8gdHJ1ZSA6ICFtb2RhbCkgJiYgcmVsYXRlZFRhcmdldCAmJiBtb3ZlZFRvVW5yZWxhdGVkTm9kZSAmJiAhaXNQb2ludGVyRG93blJlZi5jdXJyZW50ICYmXG4gICAgICAgIC8vIEZpeCBSZWFjdCAxOCBTdHJpY3QgTW9kZSByZXR1cm5Gb2N1cyBkdWUgdG8gZG91YmxlIHJlbmRlcmluZy5cbiAgICAgICAgcmVsYXRlZFRhcmdldCAhPT0gZ2V0UHJldmlvdXNseUZvY3VzZWRFbGVtZW50KCkpIHtcbiAgICAgICAgICBwcmV2ZW50UmV0dXJuRm9jdXNSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgICAgb25PcGVuQ2hhbmdlKGZhbHNlLCBldmVudCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoZmxvYXRpbmcgJiYgaXNIVE1MRWxlbWVudChkb21SZWZlcmVuY2UpKSB7XG4gICAgICBkb21SZWZlcmVuY2UuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNvdXQnLCBoYW5kbGVGb2N1c091dHNpZGUpO1xuICAgICAgZG9tUmVmZXJlbmNlLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgaGFuZGxlUG9pbnRlckRvd24pO1xuICAgICAgZmxvYXRpbmcuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNvdXQnLCBoYW5kbGVGb2N1c091dHNpZGUpO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZG9tUmVmZXJlbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgaGFuZGxlRm9jdXNPdXRzaWRlKTtcbiAgICAgICAgZG9tUmVmZXJlbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgaGFuZGxlUG9pbnRlckRvd24pO1xuICAgICAgICBmbG9hdGluZy5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIGhhbmRsZUZvY3VzT3V0c2lkZSk7XG4gICAgICB9O1xuICAgIH1cbiAgfSwgW2Rpc2FibGVkLCBkb21SZWZlcmVuY2UsIGZsb2F0aW5nLCBmbG9hdGluZ0ZvY3VzTm9kZSwgbW9kYWwsIG5vZGVJZCwgdHJlZSwgcG9ydGFsQ29udGV4dCwgb25PcGVuQ2hhbmdlLCBjbG9zZU9uRm9jdXNPdXQsIHJlc3RvcmVGb2N1cywgZ2V0VGFiYmFibGVDb250ZW50LCBpc1VudHJhcHBlZFR5cGVhYmxlQ29tYm9ib3hdKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICB2YXIgX3BvcnRhbENvbnRleHQkcG9ydGFsO1xuICAgIGlmIChkaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgLy8gRG9uJ3QgaGlkZSBwb3J0YWxzIG5lc3RlZCB3aXRoaW4gdGhlIHBhcmVudCBwb3J0YWwuXG4gICAgY29uc3QgcG9ydGFsTm9kZXMgPSBBcnJheS5mcm9tKChwb3J0YWxDb250ZXh0ID09IG51bGwgfHwgKF9wb3J0YWxDb250ZXh0JHBvcnRhbCA9IHBvcnRhbENvbnRleHQucG9ydGFsTm9kZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9wb3J0YWxDb250ZXh0JHBvcnRhbC5xdWVyeVNlbGVjdG9yQWxsKFwiW1wiICsgY3JlYXRlQXR0cmlidXRlKCdwb3J0YWwnKSArIFwiXVwiKSkgfHwgW10pO1xuICAgIGlmIChmbG9hdGluZykge1xuICAgICAgY29uc3QgaW5zaWRlRWxlbWVudHMgPSBbZmxvYXRpbmcsIC4uLnBvcnRhbE5vZGVzLCBzdGFydERpc21pc3NCdXR0b25SZWYuY3VycmVudCwgZW5kRGlzbWlzc0J1dHRvblJlZi5jdXJyZW50LCBvcmRlclJlZi5jdXJyZW50LmluY2x1ZGVzKCdyZWZlcmVuY2UnKSB8fCBpc1VudHJhcHBlZFR5cGVhYmxlQ29tYm9ib3ggPyBkb21SZWZlcmVuY2UgOiBudWxsXS5maWx0ZXIoeCA9PiB4ICE9IG51bGwpO1xuICAgICAgY29uc3QgY2xlYW51cCA9IG1vZGFsIHx8IGlzVW50cmFwcGVkVHlwZWFibGVDb21ib2JveCA/IG1hcmtPdGhlcnMoaW5zaWRlRWxlbWVudHMsIGd1YXJkcywgIWd1YXJkcykgOiBtYXJrT3RoZXJzKGluc2lkZUVsZW1lbnRzKTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGNsZWFudXAoKTtcbiAgICAgIH07XG4gICAgfVxuICB9LCBbZGlzYWJsZWQsIGRvbVJlZmVyZW5jZSwgZmxvYXRpbmcsIG1vZGFsLCBvcmRlclJlZiwgcG9ydGFsQ29udGV4dCwgaXNVbnRyYXBwZWRUeXBlYWJsZUNvbWJvYm94LCBndWFyZHNdKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGlmIChkaXNhYmxlZCB8fCAhaXNIVE1MRWxlbWVudChmbG9hdGluZ0ZvY3VzTm9kZSkpIHJldHVybjtcbiAgICBjb25zdCBkb2MgPSBnZXREb2N1bWVudChmbG9hdGluZ0ZvY3VzTm9kZSk7XG4gICAgY29uc3QgcHJldmlvdXNseUZvY3VzZWRFbGVtZW50ID0gYWN0aXZlRWxlbWVudChkb2MpO1xuXG4gICAgLy8gV2FpdCBmb3IgYW55IGxheW91dCBlZmZlY3Qgc3RhdGUgc2V0dGVycyB0byBleGVjdXRlIHRvIHNldCBgdGFiSW5kZXhgLlxuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGZvY3VzYWJsZUVsZW1lbnRzID0gZ2V0VGFiYmFibGVFbGVtZW50cyhmbG9hdGluZ0ZvY3VzTm9kZSk7XG4gICAgICBjb25zdCBpbml0aWFsRm9jdXNWYWx1ZSA9IGluaXRpYWxGb2N1c1JlZi5jdXJyZW50O1xuICAgICAgY29uc3QgZWxUb0ZvY3VzID0gKHR5cGVvZiBpbml0aWFsRm9jdXNWYWx1ZSA9PT0gJ251bWJlcicgPyBmb2N1c2FibGVFbGVtZW50c1tpbml0aWFsRm9jdXNWYWx1ZV0gOiBpbml0aWFsRm9jdXNWYWx1ZS5jdXJyZW50KSB8fCBmbG9hdGluZ0ZvY3VzTm9kZTtcbiAgICAgIGNvbnN0IGZvY3VzQWxyZWFkeUluc2lkZUZsb2F0aW5nRWwgPSBjb250YWlucyhmbG9hdGluZ0ZvY3VzTm9kZSwgcHJldmlvdXNseUZvY3VzZWRFbGVtZW50KTtcbiAgICAgIGlmICghaWdub3JlSW5pdGlhbEZvY3VzICYmICFmb2N1c0FscmVhZHlJbnNpZGVGbG9hdGluZ0VsICYmIG9wZW4pIHtcbiAgICAgICAgZW5xdWV1ZUZvY3VzKGVsVG9Gb2N1cywge1xuICAgICAgICAgIHByZXZlbnRTY3JvbGw6IGVsVG9Gb2N1cyA9PT0gZmxvYXRpbmdGb2N1c05vZGVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sIFtkaXNhYmxlZCwgb3BlbiwgZmxvYXRpbmdGb2N1c05vZGUsIGlnbm9yZUluaXRpYWxGb2N1cywgZ2V0VGFiYmFibGVFbGVtZW50cywgaW5pdGlhbEZvY3VzUmVmXSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBpZiAoZGlzYWJsZWQgfHwgIWZsb2F0aW5nRm9jdXNOb2RlKSByZXR1cm47XG4gICAgbGV0IHByZXZlbnRSZXR1cm5Gb2N1c1Njcm9sbCA9IGZhbHNlO1xuICAgIGNvbnN0IGRvYyA9IGdldERvY3VtZW50KGZsb2F0aW5nRm9jdXNOb2RlKTtcbiAgICBjb25zdCBwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQgPSBhY3RpdmVFbGVtZW50KGRvYyk7XG4gICAgY29uc3QgY29udGV4dERhdGEgPSBkYXRhUmVmLmN1cnJlbnQ7XG4gICAgbGV0IG9wZW5FdmVudCA9IGNvbnRleHREYXRhLm9wZW5FdmVudDtcbiAgICBjb25zdCBkb21SZWZlcmVuY2UgPSByZWZzLmRvbVJlZmVyZW5jZS5jdXJyZW50O1xuICAgIGFkZFByZXZpb3VzbHlGb2N1c2VkRWxlbWVudChwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQpO1xuXG4gICAgLy8gRGlzbWlzc2luZyB2aWEgb3V0c2lkZSBwcmVzcyBzaG91bGQgYWx3YXlzIGlnbm9yZSBgcmV0dXJuRm9jdXNgIHRvXG4gICAgLy8gcHJldmVudCB1bndhbnRlZCBzY3JvbGxpbmcuXG4gICAgZnVuY3Rpb24gb25PcGVuQ2hhbmdlKF9yZWYpIHtcbiAgICAgIGxldCB7XG4gICAgICAgIG9wZW4sXG4gICAgICAgIHJlYXNvbixcbiAgICAgICAgZXZlbnQsXG4gICAgICAgIG5lc3RlZFxuICAgICAgfSA9IF9yZWY7XG4gICAgICBpZiAob3Blbikge1xuICAgICAgICBvcGVuRXZlbnQgPSBldmVudDtcbiAgICAgIH1cbiAgICAgIGlmIChyZWFzb24gPT09ICdlc2NhcGUta2V5JyAmJiByZWZzLmRvbVJlZmVyZW5jZS5jdXJyZW50KSB7XG4gICAgICAgIGFkZFByZXZpb3VzbHlGb2N1c2VkRWxlbWVudChyZWZzLmRvbVJlZmVyZW5jZS5jdXJyZW50KTtcbiAgICAgIH1cbiAgICAgIGlmIChyZWFzb24gPT09ICdob3ZlcicgJiYgZXZlbnQudHlwZSA9PT0gJ21vdXNlbGVhdmUnKSB7XG4gICAgICAgIHByZXZlbnRSZXR1cm5Gb2N1c1JlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChyZWFzb24gIT09ICdvdXRzaWRlLXByZXNzJykgcmV0dXJuO1xuICAgICAgaWYgKG5lc3RlZCkge1xuICAgICAgICBwcmV2ZW50UmV0dXJuRm9jdXNSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICBwcmV2ZW50UmV0dXJuRm9jdXNTY3JvbGwgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJldmVudFJldHVybkZvY3VzUmVmLmN1cnJlbnQgPSAhKGlzVmlydHVhbENsaWNrKGV2ZW50KSB8fCBpc1ZpcnR1YWxQb2ludGVyRXZlbnQoZXZlbnQpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZXZlbnRzLm9uKCdvcGVuY2hhbmdlJywgb25PcGVuQ2hhbmdlKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZXZlbnRzLm9mZignb3BlbmNoYW5nZScsIG9uT3BlbkNoYW5nZSk7XG4gICAgICBjb25zdCBhY3RpdmVFbCA9IGFjdGl2ZUVsZW1lbnQoZG9jKTtcbiAgICAgIGNvbnN0IGlzRm9jdXNJbnNpZGVGbG9hdGluZ1RyZWUgPSBjb250YWlucyhmbG9hdGluZywgYWN0aXZlRWwpIHx8IHRyZWUgJiYgZ2V0Q2hpbGRyZW4odHJlZS5ub2Rlc1JlZi5jdXJyZW50LCBub2RlSWQpLnNvbWUobm9kZSA9PiB7XG4gICAgICAgIHZhciBfbm9kZSRjb250ZXh0NTtcbiAgICAgICAgcmV0dXJuIGNvbnRhaW5zKChfbm9kZSRjb250ZXh0NSA9IG5vZGUuY29udGV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9ub2RlJGNvbnRleHQ1LmVsZW1lbnRzLmZsb2F0aW5nLCBhY3RpdmVFbCk7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHNob3VsZEZvY3VzUmVmZXJlbmNlID0gaXNGb2N1c0luc2lkZUZsb2F0aW5nVHJlZSB8fCBvcGVuRXZlbnQgJiYgWydjbGljaycsICdtb3VzZWRvd24nXS5pbmNsdWRlcyhvcGVuRXZlbnQudHlwZSk7XG4gICAgICBpZiAoc2hvdWxkRm9jdXNSZWZlcmVuY2UgJiYgcmVmcy5kb21SZWZlcmVuY2UuY3VycmVudCkge1xuICAgICAgICBhZGRQcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQocmVmcy5kb21SZWZlcmVuY2UuY3VycmVudCk7XG4gICAgICB9XG4gICAgICBjb25zdCByZXR1cm5Db250ZXh0RWxlbWVudCA9IGRvbVJlZmVyZW5jZSB8fCBwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQ7XG4gICAgICBjb25zdCB0YWJiYWJsZUVsZW1lbnRzID0gdGFiYmFibGUoZ2V0RG9jdW1lbnQocmV0dXJuQ29udGV4dEVsZW1lbnQpLmJvZHksIGdldFRhYmJhYmxlT3B0aW9ucygpKTtcblxuICAgICAgLy8gV2FpdCBmb3IgdGhlIHJldHVybiBlbGVtZW50IHRvIGdldCBwb3RlbnRpYWxseSBkaXNjb25uZWN0ZWQgYmVmb3JlXG4gICAgICAvLyBjaGVja2luZy5cbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgbGV0IHJldHVybkVsZW1lbnQgPSBnZXRQcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQoKTtcbiAgICAgICAgaWYgKCFyZXR1cm5FbGVtZW50ICYmIGlzSFRNTEVsZW1lbnQocmV0dXJuQ29udGV4dEVsZW1lbnQpICYmIGZsb2F0aW5nKSB7XG4gICAgICAgICAgcmV0dXJuRWxlbWVudCA9IGdldENsb3Nlc3RUYWJiYWJsZUVsZW1lbnQodGFiYmFibGVFbGVtZW50cywgcmV0dXJuQ29udGV4dEVsZW1lbnQsIGZsb2F0aW5nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICAgICAgcmV0dXJuRm9jdXNSZWYuY3VycmVudCAmJiAhcHJldmVudFJldHVybkZvY3VzUmVmLmN1cnJlbnQgJiYgaXNIVE1MRWxlbWVudChyZXR1cm5FbGVtZW50KSAmJiAoXG4gICAgICAgIC8vIElmIHRoZSBmb2N1cyBtb3ZlZCBzb21ld2hlcmUgZWxzZSBhZnRlciBtb3VudCwgYXZvaWQgcmV0dXJuaW5nIGZvY3VzXG4gICAgICAgIC8vIHNpbmNlIGl0IGxpa2VseSBlbnRlcmVkIGEgZGlmZmVyZW50IGVsZW1lbnQgd2hpY2ggc2hvdWxkIGJlXG4gICAgICAgIC8vIHJlc3BlY3RlZDogaHR0cHM6Ly9naXRodWIuY29tL2Zsb2F0aW5nLXVpL2Zsb2F0aW5nLXVpL2lzc3Vlcy8yNjA3XG4gICAgICAgIHJldHVybkVsZW1lbnQgIT09IGFjdGl2ZUVsICYmIGFjdGl2ZUVsICE9PSBkb2MuYm9keSA/IGlzRm9jdXNJbnNpZGVGbG9hdGluZ1RyZWUgOiB0cnVlKSkge1xuICAgICAgICAgIHJldHVybkVsZW1lbnQuZm9jdXMoe1xuICAgICAgICAgICAgcHJldmVudFNjcm9sbDogcHJldmVudFJldHVybkZvY3VzU2Nyb2xsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG4gIH0sIFtkaXNhYmxlZCwgZmxvYXRpbmcsIGZsb2F0aW5nRm9jdXNOb2RlLCByZXR1cm5Gb2N1c1JlZiwgZGF0YVJlZiwgcmVmcywgZXZlbnRzLCB0cmVlLCBub2RlSWRdKTtcblxuICAvLyBTeW5jaHJvbml6ZSB0aGUgYGNvbnRleHRgICYgYG1vZGFsYCB2YWx1ZSB0byB0aGUgRmxvYXRpbmdQb3J0YWwgY29udGV4dC5cbiAgLy8gSXQgd2lsbCBkZWNpZGUgd2hldGhlciBvciBub3QgaXQgbmVlZHMgdG8gcmVuZGVyIGl0cyBvd24gZ3VhcmRzLlxuICBpbmRleCgoKSA9PiB7XG4gICAgaWYgKGRpc2FibGVkKSByZXR1cm47XG4gICAgaWYgKCFwb3J0YWxDb250ZXh0KSByZXR1cm47XG4gICAgcG9ydGFsQ29udGV4dC5zZXRGb2N1c01hbmFnZXJTdGF0ZSh7XG4gICAgICBtb2RhbCxcbiAgICAgIGNsb3NlT25Gb2N1c091dCxcbiAgICAgIG9wZW4sXG4gICAgICBvbk9wZW5DaGFuZ2UsXG4gICAgICByZWZzXG4gICAgfSk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHBvcnRhbENvbnRleHQuc2V0Rm9jdXNNYW5hZ2VyU3RhdGUobnVsbCk7XG4gICAgfTtcbiAgfSwgW2Rpc2FibGVkLCBwb3J0YWxDb250ZXh0LCBtb2RhbCwgb3Blbiwgb25PcGVuQ2hhbmdlLCByZWZzLCBjbG9zZU9uRm9jdXNPdXRdKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGlmIChkaXNhYmxlZCkgcmV0dXJuO1xuICAgIGlmICghZmxvYXRpbmdGb2N1c05vZGUpIHJldHVybjtcbiAgICBpZiAodHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXIgIT09ICdmdW5jdGlvbicpIHJldHVybjtcbiAgICBpZiAoaWdub3JlSW5pdGlhbEZvY3VzKSByZXR1cm47XG4gICAgY29uc3QgaGFuZGxlTXV0YXRpb24gPSAoKSA9PiB7XG4gICAgICBjb25zdCB0YWJJbmRleCA9IGZsb2F0aW5nRm9jdXNOb2RlLmdldEF0dHJpYnV0ZSgndGFiaW5kZXgnKTtcbiAgICAgIGNvbnN0IHRhYmJhYmxlQ29udGVudCA9IGdldFRhYmJhYmxlQ29udGVudCgpO1xuICAgICAgY29uc3QgYWN0aXZlRWwgPSBhY3RpdmVFbGVtZW50KGdldERvY3VtZW50KGZsb2F0aW5nKSk7XG4gICAgICBjb25zdCB0YWJiYWJsZUluZGV4ID0gdGFiYmFibGVDb250ZW50LmluZGV4T2YoYWN0aXZlRWwpO1xuICAgICAgaWYgKHRhYmJhYmxlSW5kZXggIT09IC0xKSB7XG4gICAgICAgIHRhYmJhYmxlSW5kZXhSZWYuY3VycmVudCA9IHRhYmJhYmxlSW5kZXg7XG4gICAgICB9XG4gICAgICBpZiAob3JkZXJSZWYuY3VycmVudC5pbmNsdWRlcygnZmxvYXRpbmcnKSB8fCBhY3RpdmVFbCAhPT0gcmVmcy5kb21SZWZlcmVuY2UuY3VycmVudCAmJiB0YWJiYWJsZUNvbnRlbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGlmICh0YWJJbmRleCAhPT0gJzAnKSB7XG4gICAgICAgICAgZmxvYXRpbmdGb2N1c05vZGUuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGFiSW5kZXggIT09ICctMScpIHtcbiAgICAgICAgZmxvYXRpbmdGb2N1c05vZGUuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICctMScpO1xuICAgICAgfVxuICAgIH07XG4gICAgaGFuZGxlTXV0YXRpb24oKTtcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGhhbmRsZU11dGF0aW9uKTtcbiAgICBvYnNlcnZlci5vYnNlcnZlKGZsb2F0aW5nRm9jdXNOb2RlLCB7XG4gICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgICAgYXR0cmlidXRlczogdHJ1ZVxuICAgIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfTtcbiAgfSwgW2Rpc2FibGVkLCBmbG9hdGluZywgZmxvYXRpbmdGb2N1c05vZGUsIHJlZnMsIG9yZGVyUmVmLCBnZXRUYWJiYWJsZUNvbnRlbnQsIGlnbm9yZUluaXRpYWxGb2N1c10pO1xuICBmdW5jdGlvbiByZW5kZXJEaXNtaXNzQnV0dG9uKGxvY2F0aW9uKSB7XG4gICAgaWYgKGRpc2FibGVkIHx8ICF2aXN1YWxseUhpZGRlbkRpc21pc3MgfHwgIW1vZGFsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFZpc3VhbGx5SGlkZGVuRGlzbWlzcywge1xuICAgICAgcmVmOiBsb2NhdGlvbiA9PT0gJ3N0YXJ0JyA/IHN0YXJ0RGlzbWlzc0J1dHRvblJlZiA6IGVuZERpc21pc3NCdXR0b25SZWYsXG4gICAgICBvbkNsaWNrOiBldmVudCA9PiBvbk9wZW5DaGFuZ2UoZmFsc2UsIGV2ZW50Lm5hdGl2ZUV2ZW50KVxuICAgIH0sIHR5cGVvZiB2aXN1YWxseUhpZGRlbkRpc21pc3MgPT09ICdzdHJpbmcnID8gdmlzdWFsbHlIaWRkZW5EaXNtaXNzIDogJ0Rpc21pc3MnKTtcbiAgfVxuICBjb25zdCBzaG91bGRSZW5kZXJHdWFyZHMgPSAhZGlzYWJsZWQgJiYgZ3VhcmRzICYmIChtb2RhbCA/ICFpc1VudHJhcHBlZFR5cGVhYmxlQ29tYm9ib3ggOiB0cnVlKSAmJiAoaXNJbnNpZGVQb3J0YWwgfHwgbW9kYWwpO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsIHNob3VsZFJlbmRlckd1YXJkcyAmJiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChGb2N1c0d1YXJkLCB7XG4gICAgXCJkYXRhLXR5cGVcIjogXCJpbnNpZGVcIixcbiAgICByZWY6IHBvcnRhbENvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IHBvcnRhbENvbnRleHQuYmVmb3JlSW5zaWRlUmVmLFxuICAgIG9uRm9jdXM6IGV2ZW50ID0+IHtcbiAgICAgIGlmIChtb2RhbCkge1xuICAgICAgICBjb25zdCBlbHMgPSBnZXRUYWJiYWJsZUVsZW1lbnRzKCk7XG4gICAgICAgIGVucXVldWVGb2N1cyhvcmRlclswXSA9PT0gJ3JlZmVyZW5jZScgPyBlbHNbMF0gOiBlbHNbZWxzLmxlbmd0aCAtIDFdKTtcbiAgICAgIH0gZWxzZSBpZiAocG9ydGFsQ29udGV4dCAhPSBudWxsICYmIHBvcnRhbENvbnRleHQucHJlc2VydmVUYWJPcmRlciAmJiBwb3J0YWxDb250ZXh0LnBvcnRhbE5vZGUpIHtcbiAgICAgICAgcHJldmVudFJldHVybkZvY3VzUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgaWYgKGlzT3V0c2lkZUV2ZW50KGV2ZW50LCBwb3J0YWxDb250ZXh0LnBvcnRhbE5vZGUpKSB7XG4gICAgICAgICAgY29uc3QgbmV4dFRhYmJhYmxlID0gZ2V0TmV4dFRhYmJhYmxlKCkgfHwgZG9tUmVmZXJlbmNlO1xuICAgICAgICAgIG5leHRUYWJiYWJsZSA9PSBudWxsIHx8IG5leHRUYWJiYWJsZS5mb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBfcG9ydGFsQ29udGV4dCRiZWZvcmU7XG4gICAgICAgICAgKF9wb3J0YWxDb250ZXh0JGJlZm9yZSA9IHBvcnRhbENvbnRleHQuYmVmb3JlT3V0c2lkZVJlZi5jdXJyZW50KSA9PSBudWxsIHx8IF9wb3J0YWxDb250ZXh0JGJlZm9yZS5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KSwgIWlzVW50cmFwcGVkVHlwZWFibGVDb21ib2JveCAmJiByZW5kZXJEaXNtaXNzQnV0dG9uKCdzdGFydCcpLCBjaGlsZHJlbiwgcmVuZGVyRGlzbWlzc0J1dHRvbignZW5kJyksIHNob3VsZFJlbmRlckd1YXJkcyAmJiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChGb2N1c0d1YXJkLCB7XG4gICAgXCJkYXRhLXR5cGVcIjogXCJpbnNpZGVcIixcbiAgICByZWY6IHBvcnRhbENvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IHBvcnRhbENvbnRleHQuYWZ0ZXJJbnNpZGVSZWYsXG4gICAgb25Gb2N1czogZXZlbnQgPT4ge1xuICAgICAgaWYgKG1vZGFsKSB7XG4gICAgICAgIGVucXVldWVGb2N1cyhnZXRUYWJiYWJsZUVsZW1lbnRzKClbMF0pO1xuICAgICAgfSBlbHNlIGlmIChwb3J0YWxDb250ZXh0ICE9IG51bGwgJiYgcG9ydGFsQ29udGV4dC5wcmVzZXJ2ZVRhYk9yZGVyICYmIHBvcnRhbENvbnRleHQucG9ydGFsTm9kZSkge1xuICAgICAgICBpZiAoY2xvc2VPbkZvY3VzT3V0KSB7XG4gICAgICAgICAgcHJldmVudFJldHVybkZvY3VzUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc091dHNpZGVFdmVudChldmVudCwgcG9ydGFsQ29udGV4dC5wb3J0YWxOb2RlKSkge1xuICAgICAgICAgIGNvbnN0IHByZXZUYWJiYWJsZSA9IGdldFByZXZpb3VzVGFiYmFibGUoKSB8fCBkb21SZWZlcmVuY2U7XG4gICAgICAgICAgcHJldlRhYmJhYmxlID09IG51bGwgfHwgcHJldlRhYmJhYmxlLmZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIF9wb3J0YWxDb250ZXh0JGFmdGVyTztcbiAgICAgICAgICAoX3BvcnRhbENvbnRleHQkYWZ0ZXJPID0gcG9ydGFsQ29udGV4dC5hZnRlck91dHNpZGVSZWYuY3VycmVudCkgPT0gbnVsbCB8fCBfcG9ydGFsQ29udGV4dCRhZnRlck8uZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSkpO1xufVxuXG5jb25zdCBhY3RpdmVMb2NrcyA9IC8qI19fUFVSRV9fKi9uZXcgU2V0KCk7XG4vKipcbiAqIFByb3ZpZGVzIGJhc2Ugc3R5bGluZyBmb3IgYSBmaXhlZCBvdmVybGF5IGVsZW1lbnQgdG8gZGltIGNvbnRlbnQgb3IgYmxvY2tcbiAqIHBvaW50ZXIgZXZlbnRzIGJlaGluZCBhIGZsb2F0aW5nIGVsZW1lbnQuXG4gKiBJdCdzIGEgcmVndWxhciBgPGRpdj5gLCBzbyBpdCBjYW4gYmUgc3R5bGVkIHZpYSBhbnkgQ1NTIHNvbHV0aW9uIHlvdSBwcmVmZXIuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvRmxvYXRpbmdPdmVybGF5XG4gKi9cbmNvbnN0IEZsb2F0aW5nT3ZlcmxheSA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIEZsb2F0aW5nT3ZlcmxheShwcm9wcywgcmVmKSB7XG4gIGNvbnN0IHtcbiAgICBsb2NrU2Nyb2xsID0gZmFsc2UsXG4gICAgLi4ucmVzdFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IGxvY2tJZCA9IHVzZUlkKCk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBpZiAoIWxvY2tTY3JvbGwpIHJldHVybjtcbiAgICBhY3RpdmVMb2Nrcy5hZGQobG9ja0lkKTtcbiAgICBjb25zdCBpc0lPUyA9IC9pUChob25lfGFkfG9kKXxpT1MvLnRlc3QoZ2V0UGxhdGZvcm0oKSk7XG4gICAgY29uc3QgYm9keVN0eWxlID0gZG9jdW1lbnQuYm9keS5zdHlsZTtcbiAgICAvLyBSVEwgPGJvZHk+IHNjcm9sbGJhclxuICAgIGNvbnN0IHNjcm9sbGJhclggPSBNYXRoLnJvdW5kKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0KSArIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0O1xuICAgIGNvbnN0IHBhZGRpbmdQcm9wID0gc2Nyb2xsYmFyWCA/ICdwYWRkaW5nTGVmdCcgOiAncGFkZGluZ1JpZ2h0JztcbiAgICBjb25zdCBzY3JvbGxiYXJXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIGNvbnN0IHNjcm9sbFggPSBib2R5U3R5bGUubGVmdCA/IHBhcnNlRmxvYXQoYm9keVN0eWxlLmxlZnQpIDogd2luZG93LnNjcm9sbFg7XG4gICAgY29uc3Qgc2Nyb2xsWSA9IGJvZHlTdHlsZS50b3AgPyBwYXJzZUZsb2F0KGJvZHlTdHlsZS50b3ApIDogd2luZG93LnNjcm9sbFk7XG4gICAgYm9keVN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgaWYgKHNjcm9sbGJhcldpZHRoKSB7XG4gICAgICBib2R5U3R5bGVbcGFkZGluZ1Byb3BdID0gc2Nyb2xsYmFyV2lkdGggKyBcInB4XCI7XG4gICAgfVxuXG4gICAgLy8gT25seSBpT1MgZG9lc24ndCByZXNwZWN0IGBvdmVyZmxvdzogaGlkZGVuYCBvbiBkb2N1bWVudC5ib2R5LCBhbmQgdGhpc1xuICAgIC8vIHRlY2huaXF1ZSBoYXMgZmV3ZXIgc2lkZSBlZmZlY3RzLlxuICAgIGlmIChpc0lPUykge1xuICAgICAgdmFyIF93aW5kb3ckdmlzdWFsVmlld3BvciwgX3dpbmRvdyR2aXN1YWxWaWV3cG9yMjtcbiAgICAgIC8vIGlPUyAxMiBkb2VzIG5vdCBzdXBwb3J0IGB2aXN1YWxWaWV3cG9ydGAuXG4gICAgICBjb25zdCBvZmZzZXRMZWZ0ID0gKChfd2luZG93JHZpc3VhbFZpZXdwb3IgPSB3aW5kb3cudmlzdWFsVmlld3BvcnQpID09IG51bGwgPyB2b2lkIDAgOiBfd2luZG93JHZpc3VhbFZpZXdwb3Iub2Zmc2V0TGVmdCkgfHwgMDtcbiAgICAgIGNvbnN0IG9mZnNldFRvcCA9ICgoX3dpbmRvdyR2aXN1YWxWaWV3cG9yMiA9IHdpbmRvdy52aXN1YWxWaWV3cG9ydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF93aW5kb3ckdmlzdWFsVmlld3BvcjIub2Zmc2V0VG9wKSB8fCAwO1xuICAgICAgT2JqZWN0LmFzc2lnbihib2R5U3R5bGUsIHtcbiAgICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICAgIHRvcDogLShzY3JvbGxZIC0gTWF0aC5mbG9vcihvZmZzZXRUb3ApKSArIFwicHhcIixcbiAgICAgICAgbGVmdDogLShzY3JvbGxYIC0gTWF0aC5mbG9vcihvZmZzZXRMZWZ0KSkgKyBcInB4XCIsXG4gICAgICAgIHJpZ2h0OiAnMCdcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgYWN0aXZlTG9ja3MuZGVsZXRlKGxvY2tJZCk7XG4gICAgICBpZiAoYWN0aXZlTG9ja3Muc2l6ZSA9PT0gMCkge1xuICAgICAgICBPYmplY3QuYXNzaWduKGJvZHlTdHlsZSwge1xuICAgICAgICAgIG92ZXJmbG93OiAnJyxcbiAgICAgICAgICBbcGFkZGluZ1Byb3BdOiAnJ1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGlzSU9TKSB7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihib2R5U3R5bGUsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnJyxcbiAgICAgICAgICAgIHRvcDogJycsXG4gICAgICAgICAgICBsZWZ0OiAnJyxcbiAgICAgICAgICAgIHJpZ2h0OiAnJ1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyhzY3JvbGxYLCBzY3JvbGxZKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0sIFtsb2NrSWQsIGxvY2tTY3JvbGxdKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIF9leHRlbmRzKHtcbiAgICByZWY6IHJlZlxuICB9LCByZXN0LCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgICAgb3ZlcmZsb3c6ICdhdXRvJyxcbiAgICAgIHRvcDogMCxcbiAgICAgIHJpZ2h0OiAwLFxuICAgICAgYm90dG9tOiAwLFxuICAgICAgbGVmdDogMCxcbiAgICAgIC4uLnJlc3Quc3R5bGVcbiAgICB9XG4gIH0pKTtcbn0pO1xuXG5mdW5jdGlvbiBpc0J1dHRvblRhcmdldChldmVudCkge1xuICByZXR1cm4gaXNIVE1MRWxlbWVudChldmVudC50YXJnZXQpICYmIGV2ZW50LnRhcmdldC50YWdOYW1lID09PSAnQlVUVE9OJztcbn1cbmZ1bmN0aW9uIGlzU3BhY2VJZ25vcmVkKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGlzVHlwZWFibGVFbGVtZW50KGVsZW1lbnQpO1xufVxuLyoqXG4gKiBPcGVucyBvciBjbG9zZXMgdGhlIGZsb2F0aW5nIGVsZW1lbnQgd2hlbiBjbGlja2luZyB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvdXNlQ2xpY2tcbiAqL1xuZnVuY3Rpb24gdXNlQ2xpY2soY29udGV4dCwgcHJvcHMpIHtcbiAgaWYgKHByb3BzID09PSB2b2lkIDApIHtcbiAgICBwcm9wcyA9IHt9O1xuICB9XG4gIGNvbnN0IHtcbiAgICBvcGVuLFxuICAgIG9uT3BlbkNoYW5nZSxcbiAgICBkYXRhUmVmLFxuICAgIGVsZW1lbnRzOiB7XG4gICAgICBkb21SZWZlcmVuY2VcbiAgICB9XG4gIH0gPSBjb250ZXh0O1xuICBjb25zdCB7XG4gICAgZW5hYmxlZCA9IHRydWUsXG4gICAgZXZlbnQ6IGV2ZW50T3B0aW9uID0gJ2NsaWNrJyxcbiAgICB0b2dnbGUgPSB0cnVlLFxuICAgIGlnbm9yZU1vdXNlID0gZmFsc2UsXG4gICAga2V5Ym9hcmRIYW5kbGVycyA9IHRydWVcbiAgfSA9IHByb3BzO1xuICBjb25zdCBwb2ludGVyVHlwZVJlZiA9IFJlYWN0LnVzZVJlZigpO1xuICBjb25zdCBkaWRLZXlEb3duUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgcmVmZXJlbmNlID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIG9uUG9pbnRlckRvd24oZXZlbnQpIHtcbiAgICAgIHBvaW50ZXJUeXBlUmVmLmN1cnJlbnQgPSBldmVudC5wb2ludGVyVHlwZTtcbiAgICB9LFxuICAgIG9uTW91c2VEb3duKGV2ZW50KSB7XG4gICAgICBjb25zdCBwb2ludGVyVHlwZSA9IHBvaW50ZXJUeXBlUmVmLmN1cnJlbnQ7XG5cbiAgICAgIC8vIElnbm9yZSBhbGwgYnV0dG9ucyBleGNlcHQgZm9yIHRoZSBcIm1haW5cIiBidXR0b24uXG4gICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvTW91c2VFdmVudC9idXR0b25cbiAgICAgIGlmIChldmVudC5idXR0b24gIT09IDApIHJldHVybjtcbiAgICAgIGlmIChldmVudE9wdGlvbiA9PT0gJ2NsaWNrJykgcmV0dXJuO1xuICAgICAgaWYgKGlzTW91c2VMaWtlUG9pbnRlclR5cGUocG9pbnRlclR5cGUsIHRydWUpICYmIGlnbm9yZU1vdXNlKSByZXR1cm47XG4gICAgICBpZiAob3BlbiAmJiB0b2dnbGUgJiYgKGRhdGFSZWYuY3VycmVudC5vcGVuRXZlbnQgPyBkYXRhUmVmLmN1cnJlbnQub3BlbkV2ZW50LnR5cGUgPT09ICdtb3VzZWRvd24nIDogdHJ1ZSkpIHtcbiAgICAgICAgb25PcGVuQ2hhbmdlKGZhbHNlLCBldmVudC5uYXRpdmVFdmVudCwgJ2NsaWNrJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBQcmV2ZW50IHN0ZWFsaW5nIGZvY3VzIGZyb20gdGhlIGZsb2F0aW5nIGVsZW1lbnRcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgb25PcGVuQ2hhbmdlKHRydWUsIGV2ZW50Lm5hdGl2ZUV2ZW50LCAnY2xpY2snKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIG9uQ2xpY2soZXZlbnQpIHtcbiAgICAgIGNvbnN0IHBvaW50ZXJUeXBlID0gcG9pbnRlclR5cGVSZWYuY3VycmVudDtcbiAgICAgIGlmIChldmVudE9wdGlvbiA9PT0gJ21vdXNlZG93bicgJiYgcG9pbnRlclR5cGVSZWYuY3VycmVudCkge1xuICAgICAgICBwb2ludGVyVHlwZVJlZi5jdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoaXNNb3VzZUxpa2VQb2ludGVyVHlwZShwb2ludGVyVHlwZSwgdHJ1ZSkgJiYgaWdub3JlTW91c2UpIHJldHVybjtcbiAgICAgIGlmIChvcGVuICYmIHRvZ2dsZSAmJiAoZGF0YVJlZi5jdXJyZW50Lm9wZW5FdmVudCA/IGRhdGFSZWYuY3VycmVudC5vcGVuRXZlbnQudHlwZSA9PT0gJ2NsaWNrJyA6IHRydWUpKSB7XG4gICAgICAgIG9uT3BlbkNoYW5nZShmYWxzZSwgZXZlbnQubmF0aXZlRXZlbnQsICdjbGljaycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb25PcGVuQ2hhbmdlKHRydWUsIGV2ZW50Lm5hdGl2ZUV2ZW50LCAnY2xpY2snKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIG9uS2V5RG93bihldmVudCkge1xuICAgICAgcG9pbnRlclR5cGVSZWYuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkIHx8ICFrZXlib2FyZEhhbmRsZXJzIHx8IGlzQnV0dG9uVGFyZ2V0KGV2ZW50KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnICcgJiYgIWlzU3BhY2VJZ25vcmVkKGRvbVJlZmVyZW5jZSkpIHtcbiAgICAgICAgLy8gUHJldmVudCBzY3JvbGxpbmdcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZGlkS2V5RG93blJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgaWYgKG9wZW4gJiYgdG9nZ2xlKSB7XG4gICAgICAgICAgb25PcGVuQ2hhbmdlKGZhbHNlLCBldmVudC5uYXRpdmVFdmVudCwgJ2NsaWNrJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb25PcGVuQ2hhbmdlKHRydWUsIGV2ZW50Lm5hdGl2ZUV2ZW50LCAnY2xpY2snKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgb25LZXlVcChldmVudCkge1xuICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgfHwgIWtleWJvYXJkSGFuZGxlcnMgfHwgaXNCdXR0b25UYXJnZXQoZXZlbnQpIHx8IGlzU3BhY2VJZ25vcmVkKGRvbVJlZmVyZW5jZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJyAnICYmIGRpZEtleURvd25SZWYuY3VycmVudCkge1xuICAgICAgICBkaWRLZXlEb3duUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgaWYgKG9wZW4gJiYgdG9nZ2xlKSB7XG4gICAgICAgICAgb25PcGVuQ2hhbmdlKGZhbHNlLCBldmVudC5uYXRpdmVFdmVudCwgJ2NsaWNrJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb25PcGVuQ2hhbmdlKHRydWUsIGV2ZW50Lm5hdGl2ZUV2ZW50LCAnY2xpY2snKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSksIFtkYXRhUmVmLCBkb21SZWZlcmVuY2UsIGV2ZW50T3B0aW9uLCBpZ25vcmVNb3VzZSwga2V5Ym9hcmRIYW5kbGVycywgb25PcGVuQ2hhbmdlLCBvcGVuLCB0b2dnbGVdKTtcbiAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4gZW5hYmxlZCA/IHtcbiAgICByZWZlcmVuY2VcbiAgfSA6IHt9LCBbZW5hYmxlZCwgcmVmZXJlbmNlXSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVZpcnR1YWxFbGVtZW50KGRvbUVsZW1lbnQsIGRhdGEpIHtcbiAgbGV0IG9mZnNldFggPSBudWxsO1xuICBsZXQgb2Zmc2V0WSA9IG51bGw7XG4gIGxldCBpc0F1dG9VcGRhdGVFdmVudCA9IGZhbHNlO1xuICByZXR1cm4ge1xuICAgIGNvbnRleHRFbGVtZW50OiBkb21FbGVtZW50IHx8IHVuZGVmaW5lZCxcbiAgICBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSB7XG4gICAgICB2YXIgX2RhdGEkZGF0YVJlZiRjdXJyZW50O1xuICAgICAgY29uc3QgZG9tUmVjdCA9IChkb21FbGVtZW50ID09IG51bGwgPyB2b2lkIDAgOiBkb21FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSB8fCB7XG4gICAgICAgIHdpZHRoOiAwLFxuICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgIHg6IDAsXG4gICAgICAgIHk6IDBcbiAgICAgIH07XG4gICAgICBjb25zdCBpc1hBeGlzID0gZGF0YS5heGlzID09PSAneCcgfHwgZGF0YS5heGlzID09PSAnYm90aCc7XG4gICAgICBjb25zdCBpc1lBeGlzID0gZGF0YS5heGlzID09PSAneScgfHwgZGF0YS5heGlzID09PSAnYm90aCc7XG4gICAgICBjb25zdCBjYW5UcmFja0N1cnNvck9uQXV0b1VwZGF0ZSA9IFsnbW91c2VlbnRlcicsICdtb3VzZW1vdmUnXS5pbmNsdWRlcygoKF9kYXRhJGRhdGFSZWYkY3VycmVudCA9IGRhdGEuZGF0YVJlZi5jdXJyZW50Lm9wZW5FdmVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9kYXRhJGRhdGFSZWYkY3VycmVudC50eXBlKSB8fCAnJykgJiYgZGF0YS5wb2ludGVyVHlwZSAhPT0gJ3RvdWNoJztcbiAgICAgIGxldCB3aWR0aCA9IGRvbVJlY3Qud2lkdGg7XG4gICAgICBsZXQgaGVpZ2h0ID0gZG9tUmVjdC5oZWlnaHQ7XG4gICAgICBsZXQgeCA9IGRvbVJlY3QueDtcbiAgICAgIGxldCB5ID0gZG9tUmVjdC55O1xuICAgICAgaWYgKG9mZnNldFggPT0gbnVsbCAmJiBkYXRhLnggJiYgaXNYQXhpcykge1xuICAgICAgICBvZmZzZXRYID0gZG9tUmVjdC54IC0gZGF0YS54O1xuICAgICAgfVxuICAgICAgaWYgKG9mZnNldFkgPT0gbnVsbCAmJiBkYXRhLnkgJiYgaXNZQXhpcykge1xuICAgICAgICBvZmZzZXRZID0gZG9tUmVjdC55IC0gZGF0YS55O1xuICAgICAgfVxuICAgICAgeCAtPSBvZmZzZXRYIHx8IDA7XG4gICAgICB5IC09IG9mZnNldFkgfHwgMDtcbiAgICAgIHdpZHRoID0gMDtcbiAgICAgIGhlaWdodCA9IDA7XG4gICAgICBpZiAoIWlzQXV0b1VwZGF0ZUV2ZW50IHx8IGNhblRyYWNrQ3Vyc29yT25BdXRvVXBkYXRlKSB7XG4gICAgICAgIHdpZHRoID0gZGF0YS5heGlzID09PSAneScgPyBkb21SZWN0LndpZHRoIDogMDtcbiAgICAgICAgaGVpZ2h0ID0gZGF0YS5heGlzID09PSAneCcgPyBkb21SZWN0LmhlaWdodCA6IDA7XG4gICAgICAgIHggPSBpc1hBeGlzICYmIGRhdGEueCAhPSBudWxsID8gZGF0YS54IDogeDtcbiAgICAgICAgeSA9IGlzWUF4aXMgJiYgZGF0YS55ICE9IG51bGwgPyBkYXRhLnkgOiB5O1xuICAgICAgfSBlbHNlIGlmIChpc0F1dG9VcGRhdGVFdmVudCAmJiAhY2FuVHJhY2tDdXJzb3JPbkF1dG9VcGRhdGUpIHtcbiAgICAgICAgaGVpZ2h0ID0gZGF0YS5heGlzID09PSAneCcgPyBkb21SZWN0LmhlaWdodCA6IGhlaWdodDtcbiAgICAgICAgd2lkdGggPSBkYXRhLmF4aXMgPT09ICd5JyA/IGRvbVJlY3Qud2lkdGggOiB3aWR0aDtcbiAgICAgIH1cbiAgICAgIGlzQXV0b1VwZGF0ZUV2ZW50ID0gdHJ1ZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIHgsXG4gICAgICAgIHksXG4gICAgICAgIHRvcDogeSxcbiAgICAgICAgcmlnaHQ6IHggKyB3aWR0aCxcbiAgICAgICAgYm90dG9tOiB5ICsgaGVpZ2h0LFxuICAgICAgICBsZWZ0OiB4XG4gICAgICB9O1xuICAgIH1cbiAgfTtcbn1cbmZ1bmN0aW9uIGlzTW91c2VCYXNlZEV2ZW50KGV2ZW50KSB7XG4gIHJldHVybiBldmVudCAhPSBudWxsICYmIGV2ZW50LmNsaWVudFggIT0gbnVsbDtcbn1cbi8qKlxuICogUG9zaXRpb25zIHRoZSBmbG9hdGluZyBlbGVtZW50IHJlbGF0aXZlIHRvIGEgY2xpZW50IHBvaW50IChpbiB0aGUgdmlld3BvcnQpLFxuICogc3VjaCBhcyB0aGUgbW91c2UgcG9zaXRpb24uIEJ5IGRlZmF1bHQsIGl0IGZvbGxvd3MgdGhlIG1vdXNlIGN1cnNvci5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy91c2VDbGllbnRQb2ludFxuICovXG5mdW5jdGlvbiB1c2VDbGllbnRQb2ludChjb250ZXh0LCBwcm9wcykge1xuICBpZiAocHJvcHMgPT09IHZvaWQgMCkge1xuICAgIHByb3BzID0ge307XG4gIH1cbiAgY29uc3Qge1xuICAgIG9wZW4sXG4gICAgZGF0YVJlZixcbiAgICBlbGVtZW50czoge1xuICAgICAgZmxvYXRpbmcsXG4gICAgICBkb21SZWZlcmVuY2VcbiAgICB9LFxuICAgIHJlZnNcbiAgfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtcbiAgICBlbmFibGVkID0gdHJ1ZSxcbiAgICBheGlzID0gJ2JvdGgnLFxuICAgIHggPSBudWxsLFxuICAgIHkgPSBudWxsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgaW5pdGlhbFJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IGNsZWFudXBMaXN0ZW5lclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgY29uc3QgW3BvaW50ZXJUeXBlLCBzZXRQb2ludGVyVHlwZV0gPSBSZWFjdC51c2VTdGF0ZSgpO1xuICBjb25zdCBbcmVhY3RpdmUsIHNldFJlYWN0aXZlXSA9IFJlYWN0LnVzZVN0YXRlKFtdKTtcbiAgY29uc3Qgc2V0UmVmZXJlbmNlID0gdXNlRWZmZWN0RXZlbnQoKHgsIHkpID0+IHtcbiAgICBpZiAoaW5pdGlhbFJlZi5jdXJyZW50KSByZXR1cm47XG5cbiAgICAvLyBQcmV2ZW50IHNldHRpbmcgaWYgdGhlIG9wZW4gZXZlbnQgd2FzIG5vdCBhIG1vdXNlLWxpa2Ugb25lXG4gICAgLy8gKGUuZy4gZm9jdXMgdG8gb3BlbiwgdGhlbiBob3ZlciBvdmVyIHRoZSByZWZlcmVuY2UgZWxlbWVudCkuXG4gICAgLy8gT25seSBhcHBseSBpZiB0aGUgZXZlbnQgZXhpc3RzLlxuICAgIGlmIChkYXRhUmVmLmN1cnJlbnQub3BlbkV2ZW50ICYmICFpc01vdXNlQmFzZWRFdmVudChkYXRhUmVmLmN1cnJlbnQub3BlbkV2ZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZWZzLnNldFBvc2l0aW9uUmVmZXJlbmNlKGNyZWF0ZVZpcnR1YWxFbGVtZW50KGRvbVJlZmVyZW5jZSwge1xuICAgICAgeCxcbiAgICAgIHksXG4gICAgICBheGlzLFxuICAgICAgZGF0YVJlZixcbiAgICAgIHBvaW50ZXJUeXBlXG4gICAgfSkpO1xuICB9KTtcbiAgY29uc3QgaGFuZGxlUmVmZXJlbmNlRW50ZXJPck1vdmUgPSB1c2VFZmZlY3RFdmVudChldmVudCA9PiB7XG4gICAgaWYgKHggIT0gbnVsbCB8fCB5ICE9IG51bGwpIHJldHVybjtcbiAgICBpZiAoIW9wZW4pIHtcbiAgICAgIHNldFJlZmVyZW5jZShldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKTtcbiAgICB9IGVsc2UgaWYgKCFjbGVhbnVwTGlzdGVuZXJSZWYuY3VycmVudCkge1xuICAgICAgLy8gSWYgdGhlcmUncyBubyBjbGVhbnVwLCB0aGVyZSdzIG5vIGxpc3RlbmVyLCBidXQgd2Ugd2FudCB0byBlbnN1cmVcbiAgICAgIC8vIHdlIGFkZCB0aGUgbGlzdGVuZXIgaWYgdGhlIGN1cnNvciBsYW5kZWQgb24gdGhlIGZsb2F0aW5nIGVsZW1lbnQgYW5kXG4gICAgICAvLyB0aGVuIGJhY2sgb24gdGhlIHJlZmVyZW5jZSAoaS5lLiBpdCdzIGludGVyYWN0aXZlKS5cbiAgICAgIHNldFJlYWN0aXZlKFtdKTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vIElmIHRoZSBwb2ludGVyIGlzIGEgbW91c2UtbGlrZSBwb2ludGVyLCB3ZSB3YW50IHRvIGNvbnRpbnVlIGZvbGxvd2luZyB0aGVcbiAgLy8gbW91c2UgZXZlbiBpZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBpcyB0cmFuc2l0aW9uaW5nIG91dC4gT24gdG91Y2hcbiAgLy8gZGV2aWNlcywgdGhpcyBpcyB1bmRlc2lyYWJsZSBiZWNhdXNlIHRoZSBmbG9hdGluZyBlbGVtZW50IHdpbGwgbW92ZSB0b1xuICAvLyB0aGUgZGlzbWlzc2FsIHRvdWNoIHBvaW50LlxuICBjb25zdCBvcGVuQ2hlY2sgPSBpc01vdXNlTGlrZVBvaW50ZXJUeXBlKHBvaW50ZXJUeXBlKSA/IGZsb2F0aW5nIDogb3BlbjtcbiAgY29uc3QgYWRkTGlzdGVuZXIgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgLy8gRXhwbGljaXRseSBzcGVjaWZpZWQgYHhgL2B5YCBjb29yZGluYXRlcyBzaG91bGRuJ3QgYWRkIGEgbGlzdGVuZXIuXG4gICAgaWYgKCFvcGVuQ2hlY2sgfHwgIWVuYWJsZWQgfHwgeCAhPSBudWxsIHx8IHkgIT0gbnVsbCkgcmV0dXJuO1xuICAgIGNvbnN0IHdpbiA9IGdldFdpbmRvdyhmbG9hdGluZyk7XG4gICAgZnVuY3Rpb24gaGFuZGxlTW91c2VNb3ZlKGV2ZW50KSB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBnZXRUYXJnZXQoZXZlbnQpO1xuICAgICAgaWYgKCFjb250YWlucyhmbG9hdGluZywgdGFyZ2V0KSkge1xuICAgICAgICBzZXRSZWZlcmVuY2UoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aW4ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgaGFuZGxlTW91c2VNb3ZlKTtcbiAgICAgICAgY2xlYW51cExpc3RlbmVyUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWRhdGFSZWYuY3VycmVudC5vcGVuRXZlbnQgfHwgaXNNb3VzZUJhc2VkRXZlbnQoZGF0YVJlZi5jdXJyZW50Lm9wZW5FdmVudCkpIHtcbiAgICAgIHdpbi5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBoYW5kbGVNb3VzZU1vdmUpO1xuICAgICAgY29uc3QgY2xlYW51cCA9ICgpID0+IHtcbiAgICAgICAgd2luLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGhhbmRsZU1vdXNlTW92ZSk7XG4gICAgICAgIGNsZWFudXBMaXN0ZW5lclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgIH07XG4gICAgICBjbGVhbnVwTGlzdGVuZXJSZWYuY3VycmVudCA9IGNsZWFudXA7XG4gICAgICByZXR1cm4gY2xlYW51cDtcbiAgICB9XG4gICAgcmVmcy5zZXRQb3NpdGlvblJlZmVyZW5jZShkb21SZWZlcmVuY2UpO1xuICB9LCBbb3BlbkNoZWNrLCBlbmFibGVkLCB4LCB5LCBmbG9hdGluZywgZGF0YVJlZiwgcmVmcywgZG9tUmVmZXJlbmNlLCBzZXRSZWZlcmVuY2VdKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gYWRkTGlzdGVuZXIoKTtcbiAgfSwgW2FkZExpc3RlbmVyLCByZWFjdGl2ZV0pO1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChlbmFibGVkICYmICFmbG9hdGluZykge1xuICAgICAgaW5pdGlhbFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgfVxuICB9LCBbZW5hYmxlZCwgZmxvYXRpbmddKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWVuYWJsZWQgJiYgb3Blbikge1xuICAgICAgaW5pdGlhbFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9XG4gIH0sIFtlbmFibGVkLCBvcGVuXSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBpZiAoZW5hYmxlZCAmJiAoeCAhPSBudWxsIHx8IHkgIT0gbnVsbCkpIHtcbiAgICAgIGluaXRpYWxSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgc2V0UmVmZXJlbmNlKHgsIHkpO1xuICAgIH1cbiAgfSwgW2VuYWJsZWQsIHgsIHksIHNldFJlZmVyZW5jZV0pO1xuICBjb25zdCByZWZlcmVuY2UgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICBmdW5jdGlvbiBzZXRQb2ludGVyVHlwZVJlZihfcmVmKSB7XG4gICAgICBsZXQge1xuICAgICAgICBwb2ludGVyVHlwZVxuICAgICAgfSA9IF9yZWY7XG4gICAgICBzZXRQb2ludGVyVHlwZShwb2ludGVyVHlwZSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBvblBvaW50ZXJEb3duOiBzZXRQb2ludGVyVHlwZVJlZixcbiAgICAgIG9uUG9pbnRlckVudGVyOiBzZXRQb2ludGVyVHlwZVJlZixcbiAgICAgIG9uTW91c2VNb3ZlOiBoYW5kbGVSZWZlcmVuY2VFbnRlck9yTW92ZSxcbiAgICAgIG9uTW91c2VFbnRlcjogaGFuZGxlUmVmZXJlbmNlRW50ZXJPck1vdmVcbiAgICB9O1xuICB9LCBbaGFuZGxlUmVmZXJlbmNlRW50ZXJPck1vdmVdKTtcbiAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4gZW5hYmxlZCA/IHtcbiAgICByZWZlcmVuY2VcbiAgfSA6IHt9LCBbZW5hYmxlZCwgcmVmZXJlbmNlXSk7XG59XG5cbmNvbnN0IGJ1YmJsZUhhbmRsZXJLZXlzID0ge1xuICBwb2ludGVyZG93bjogJ29uUG9pbnRlckRvd24nLFxuICBtb3VzZWRvd246ICdvbk1vdXNlRG93bicsXG4gIGNsaWNrOiAnb25DbGljaydcbn07XG5jb25zdCBjYXB0dXJlSGFuZGxlcktleXMgPSB7XG4gIHBvaW50ZXJkb3duOiAnb25Qb2ludGVyRG93bkNhcHR1cmUnLFxuICBtb3VzZWRvd246ICdvbk1vdXNlRG93bkNhcHR1cmUnLFxuICBjbGljazogJ29uQ2xpY2tDYXB0dXJlJ1xufTtcbmNvbnN0IG5vcm1hbGl6ZVByb3AgPSBub3JtYWxpemFibGUgPT4ge1xuICB2YXIgX25vcm1hbGl6YWJsZSRlc2NhcGVLLCBfbm9ybWFsaXphYmxlJG91dHNpZGU7XG4gIHJldHVybiB7XG4gICAgZXNjYXBlS2V5OiB0eXBlb2Ygbm9ybWFsaXphYmxlID09PSAnYm9vbGVhbicgPyBub3JtYWxpemFibGUgOiAoX25vcm1hbGl6YWJsZSRlc2NhcGVLID0gbm9ybWFsaXphYmxlID09IG51bGwgPyB2b2lkIDAgOiBub3JtYWxpemFibGUuZXNjYXBlS2V5KSAhPSBudWxsID8gX25vcm1hbGl6YWJsZSRlc2NhcGVLIDogZmFsc2UsXG4gICAgb3V0c2lkZVByZXNzOiB0eXBlb2Ygbm9ybWFsaXphYmxlID09PSAnYm9vbGVhbicgPyBub3JtYWxpemFibGUgOiAoX25vcm1hbGl6YWJsZSRvdXRzaWRlID0gbm9ybWFsaXphYmxlID09IG51bGwgPyB2b2lkIDAgOiBub3JtYWxpemFibGUub3V0c2lkZVByZXNzKSAhPSBudWxsID8gX25vcm1hbGl6YWJsZSRvdXRzaWRlIDogdHJ1ZVxuICB9O1xufTtcbi8qKlxuICogQ2xvc2VzIHRoZSBmbG9hdGluZyBlbGVtZW50IHdoZW4gYSBkaXNtaXNzYWwgaXMgcmVxdWVzdGVkIOKAlCBieSBkZWZhdWx0LCB3aGVuXG4gKiB0aGUgdXNlciBwcmVzc2VzIHRoZSBgZXNjYXBlYCBrZXkgb3Igb3V0c2lkZSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy91c2VEaXNtaXNzXG4gKi9cbmZ1bmN0aW9uIHVzZURpc21pc3MoY29udGV4dCwgcHJvcHMpIHtcbiAgaWYgKHByb3BzID09PSB2b2lkIDApIHtcbiAgICBwcm9wcyA9IHt9O1xuICB9XG4gIGNvbnN0IHtcbiAgICBvcGVuLFxuICAgIG9uT3BlbkNoYW5nZSxcbiAgICBlbGVtZW50cyxcbiAgICBkYXRhUmVmXG4gIH0gPSBjb250ZXh0O1xuICBjb25zdCB7XG4gICAgZW5hYmxlZCA9IHRydWUsXG4gICAgZXNjYXBlS2V5ID0gdHJ1ZSxcbiAgICBvdXRzaWRlUHJlc3M6IHVuc3RhYmxlX291dHNpZGVQcmVzcyA9IHRydWUsXG4gICAgb3V0c2lkZVByZXNzRXZlbnQgPSAncG9pbnRlcmRvd24nLFxuICAgIHJlZmVyZW5jZVByZXNzID0gZmFsc2UsXG4gICAgcmVmZXJlbmNlUHJlc3NFdmVudCA9ICdwb2ludGVyZG93bicsXG4gICAgYW5jZXN0b3JTY3JvbGwgPSBmYWxzZSxcbiAgICBidWJibGVzLFxuICAgIGNhcHR1cmVcbiAgfSA9IHByb3BzO1xuICBjb25zdCB0cmVlID0gdXNlRmxvYXRpbmdUcmVlKCk7XG4gIGNvbnN0IG91dHNpZGVQcmVzc0ZuID0gdXNlRWZmZWN0RXZlbnQodHlwZW9mIHVuc3RhYmxlX291dHNpZGVQcmVzcyA9PT0gJ2Z1bmN0aW9uJyA/IHVuc3RhYmxlX291dHNpZGVQcmVzcyA6ICgpID0+IGZhbHNlKTtcbiAgY29uc3Qgb3V0c2lkZVByZXNzID0gdHlwZW9mIHVuc3RhYmxlX291dHNpZGVQcmVzcyA9PT0gJ2Z1bmN0aW9uJyA/IG91dHNpZGVQcmVzc0ZuIDogdW5zdGFibGVfb3V0c2lkZVByZXNzO1xuICBjb25zdCBpbnNpZGVSZWFjdFRyZWVSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICBjb25zdCBlbmRlZE9yU3RhcnRlZEluc2lkZVJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IHtcbiAgICBlc2NhcGVLZXk6IGVzY2FwZUtleUJ1YmJsZXMsXG4gICAgb3V0c2lkZVByZXNzOiBvdXRzaWRlUHJlc3NCdWJibGVzXG4gIH0gPSBub3JtYWxpemVQcm9wKGJ1YmJsZXMpO1xuICBjb25zdCB7XG4gICAgZXNjYXBlS2V5OiBlc2NhcGVLZXlDYXB0dXJlLFxuICAgIG91dHNpZGVQcmVzczogb3V0c2lkZVByZXNzQ2FwdHVyZVxuICB9ID0gbm9ybWFsaXplUHJvcChjYXB0dXJlKTtcbiAgY29uc3QgY2xvc2VPbkVzY2FwZUtleURvd24gPSB1c2VFZmZlY3RFdmVudChldmVudCA9PiB7XG4gICAgdmFyIF9kYXRhUmVmJGN1cnJlbnQkZmxvYTtcbiAgICBpZiAoIW9wZW4gfHwgIWVuYWJsZWQgfHwgIWVzY2FwZUtleSB8fCBldmVudC5rZXkgIT09ICdFc2NhcGUnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5vZGVJZCA9IChfZGF0YVJlZiRjdXJyZW50JGZsb2EgPSBkYXRhUmVmLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0KSA9PSBudWxsID8gdm9pZCAwIDogX2RhdGFSZWYkY3VycmVudCRmbG9hLm5vZGVJZDtcbiAgICBjb25zdCBjaGlsZHJlbiA9IHRyZWUgPyBnZXRDaGlsZHJlbih0cmVlLm5vZGVzUmVmLmN1cnJlbnQsIG5vZGVJZCkgOiBbXTtcbiAgICBpZiAoIWVzY2FwZUtleUJ1YmJsZXMpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbGV0IHNob3VsZERpc21pc3MgPSB0cnVlO1xuICAgICAgICBjaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IHtcbiAgICAgICAgICB2YXIgX2NoaWxkJGNvbnRleHQ7XG4gICAgICAgICAgaWYgKChfY2hpbGQkY29udGV4dCA9IGNoaWxkLmNvbnRleHQpICE9IG51bGwgJiYgX2NoaWxkJGNvbnRleHQub3BlbiAmJiAhY2hpbGQuY29udGV4dC5kYXRhUmVmLmN1cnJlbnQuX19lc2NhcGVLZXlCdWJibGVzKSB7XG4gICAgICAgICAgICBzaG91bGREaXNtaXNzID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFzaG91bGREaXNtaXNzKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIG9uT3BlbkNoYW5nZShmYWxzZSwgaXNSZWFjdEV2ZW50KGV2ZW50KSA/IGV2ZW50Lm5hdGl2ZUV2ZW50IDogZXZlbnQsICdlc2NhcGUta2V5Jyk7XG4gIH0pO1xuICBjb25zdCBjbG9zZU9uRXNjYXBlS2V5RG93bkNhcHR1cmUgPSB1c2VFZmZlY3RFdmVudChldmVudCA9PiB7XG4gICAgdmFyIF9nZXRUYXJnZXQyO1xuICAgIGNvbnN0IGNhbGxiYWNrID0gKCkgPT4ge1xuICAgICAgdmFyIF9nZXRUYXJnZXQ7XG4gICAgICBjbG9zZU9uRXNjYXBlS2V5RG93bihldmVudCk7XG4gICAgICAoX2dldFRhcmdldCA9IGdldFRhcmdldChldmVudCkpID09IG51bGwgfHwgX2dldFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgY2FsbGJhY2spO1xuICAgIH07XG4gICAgKF9nZXRUYXJnZXQyID0gZ2V0VGFyZ2V0KGV2ZW50KSkgPT0gbnVsbCB8fCBfZ2V0VGFyZ2V0Mi5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgY2FsbGJhY2spO1xuICB9KTtcbiAgY29uc3QgY2xvc2VPblByZXNzT3V0c2lkZSA9IHVzZUVmZmVjdEV2ZW50KGV2ZW50ID0+IHtcbiAgICB2YXIgX2RhdGFSZWYkY3VycmVudCRmbG9hMjtcbiAgICAvLyBHaXZlbiBkZXZlbG9wZXJzIGNhbiBzdG9wIHRoZSBwcm9wYWdhdGlvbiBvZiB0aGUgc3ludGhldGljIGV2ZW50LFxuICAgIC8vIHdlIGNhbiBvbmx5IGJlIGNvbmZpZGVudCB3aXRoIGEgcG9zaXRpdmUgdmFsdWUuXG4gICAgY29uc3QgaW5zaWRlUmVhY3RUcmVlID0gaW5zaWRlUmVhY3RUcmVlUmVmLmN1cnJlbnQ7XG4gICAgaW5zaWRlUmVhY3RUcmVlUmVmLmN1cnJlbnQgPSBmYWxzZTtcblxuICAgIC8vIFdoZW4gY2xpY2sgb3V0c2lkZSBpcyBsYXp5IChgY2xpY2tgIGV2ZW50KSwgaGFuZGxlIGRyYWdnaW5nLlxuICAgIC8vIERvbid0IGNsb3NlIGlmOlxuICAgIC8vIC0gVGhlIGNsaWNrIHN0YXJ0ZWQgaW5zaWRlIHRoZSBmbG9hdGluZyBlbGVtZW50LlxuICAgIC8vIC0gVGhlIGNsaWNrIGVuZGVkIGluc2lkZSB0aGUgZmxvYXRpbmcgZWxlbWVudC5cbiAgICBjb25zdCBlbmRlZE9yU3RhcnRlZEluc2lkZSA9IGVuZGVkT3JTdGFydGVkSW5zaWRlUmVmLmN1cnJlbnQ7XG4gICAgZW5kZWRPclN0YXJ0ZWRJbnNpZGVSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgIGlmIChvdXRzaWRlUHJlc3NFdmVudCA9PT0gJ2NsaWNrJyAmJiBlbmRlZE9yU3RhcnRlZEluc2lkZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoaW5zaWRlUmVhY3RUcmVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygb3V0c2lkZVByZXNzID09PSAnZnVuY3Rpb24nICYmICFvdXRzaWRlUHJlc3MoZXZlbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldCA9IGdldFRhcmdldChldmVudCk7XG4gICAgY29uc3QgaW5lcnRTZWxlY3RvciA9IFwiW1wiICsgY3JlYXRlQXR0cmlidXRlKCdpbmVydCcpICsgXCJdXCI7XG4gICAgY29uc3QgbWFya2VycyA9IGdldERvY3VtZW50KGVsZW1lbnRzLmZsb2F0aW5nKS5xdWVyeVNlbGVjdG9yQWxsKGluZXJ0U2VsZWN0b3IpO1xuICAgIGxldCB0YXJnZXRSb290QW5jZXN0b3IgPSBpc0VsZW1lbnQodGFyZ2V0KSA/IHRhcmdldCA6IG51bGw7XG4gICAgd2hpbGUgKHRhcmdldFJvb3RBbmNlc3RvciAmJiAhaXNMYXN0VHJhdmVyc2FibGVOb2RlKHRhcmdldFJvb3RBbmNlc3RvcikpIHtcbiAgICAgIGNvbnN0IG5leHRQYXJlbnQgPSBnZXRQYXJlbnROb2RlKHRhcmdldFJvb3RBbmNlc3Rvcik7XG4gICAgICBpZiAoaXNMYXN0VHJhdmVyc2FibGVOb2RlKG5leHRQYXJlbnQpIHx8ICFpc0VsZW1lbnQobmV4dFBhcmVudCkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICB0YXJnZXRSb290QW5jZXN0b3IgPSBuZXh0UGFyZW50O1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHRoZSBjbGljayBvY2N1cnJlZCBvbiBhIHRoaXJkLXBhcnR5IGVsZW1lbnQgaW5qZWN0ZWQgYWZ0ZXIgdGhlXG4gICAgLy8gZmxvYXRpbmcgZWxlbWVudCByZW5kZXJlZC5cbiAgICBpZiAobWFya2Vycy5sZW5ndGggJiYgaXNFbGVtZW50KHRhcmdldCkgJiYgIWlzUm9vdEVsZW1lbnQodGFyZ2V0KSAmJlxuICAgIC8vIENsaWNrZWQgb24gYSBkaXJlY3QgYW5jZXN0b3IgKGUuZy4gRmxvYXRpbmdPdmVybGF5KS5cbiAgICAhY29udGFpbnModGFyZ2V0LCBlbGVtZW50cy5mbG9hdGluZykgJiZcbiAgICAvLyBJZiB0aGUgdGFyZ2V0IHJvb3QgZWxlbWVudCBjb250YWlucyBub25lIG9mIHRoZSBtYXJrZXJzLCB0aGVuIHRoZVxuICAgIC8vIGVsZW1lbnQgd2FzIGluamVjdGVkIGFmdGVyIHRoZSBmbG9hdGluZyBlbGVtZW50IHJlbmRlcmVkLlxuICAgIEFycmF5LmZyb20obWFya2VycykuZXZlcnkobWFya2VyID0+ICFjb250YWlucyh0YXJnZXRSb290QW5jZXN0b3IsIG1hcmtlcikpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIGNsaWNrIG9jY3VycmVkIG9uIHRoZSBzY3JvbGxiYXJcbiAgICBpZiAoaXNIVE1MRWxlbWVudCh0YXJnZXQpICYmIGZsb2F0aW5nKSB7XG4gICAgICAvLyBJbiBGaXJlZm94LCBgdGFyZ2V0LnNjcm9sbFdpZHRoID4gdGFyZ2V0LmNsaWVudFdpZHRoYCBmb3IgaW5saW5lXG4gICAgICAvLyBlbGVtZW50cy5cbiAgICAgIGNvbnN0IGNhblNjcm9sbFggPSB0YXJnZXQuY2xpZW50V2lkdGggPiAwICYmIHRhcmdldC5zY3JvbGxXaWR0aCA+IHRhcmdldC5jbGllbnRXaWR0aDtcbiAgICAgIGNvbnN0IGNhblNjcm9sbFkgPSB0YXJnZXQuY2xpZW50SGVpZ2h0ID4gMCAmJiB0YXJnZXQuc2Nyb2xsSGVpZ2h0ID4gdGFyZ2V0LmNsaWVudEhlaWdodDtcbiAgICAgIGxldCB4Q29uZCA9IGNhblNjcm9sbFkgJiYgZXZlbnQub2Zmc2V0WCA+IHRhcmdldC5jbGllbnRXaWR0aDtcblxuICAgICAgLy8gSW4gc29tZSBicm93c2VycyBpdCBpcyBwb3NzaWJsZSB0byBjaGFuZ2UgdGhlIDxib2R5PiAob3Igd2luZG93KVxuICAgICAgLy8gc2Nyb2xsYmFyIHRvIHRoZSBsZWZ0IHNpZGUsIGJ1dCBpcyB2ZXJ5IHJhcmUgYW5kIGlzIGRpZmZpY3VsdCB0b1xuICAgICAgLy8gY2hlY2sgZm9yLiBQbHVzLCBmb3IgbW9kYWwgZGlhbG9ncyB3aXRoIGJhY2tkcm9wcywgaXQgaXMgbW9yZVxuICAgICAgLy8gaW1wb3J0YW50IHRoYXQgdGhlIGJhY2tkcm9wIGlzIGNoZWNrZWQgYnV0IG5vdCBzbyBtdWNoIHRoZSB3aW5kb3cuXG4gICAgICBpZiAoY2FuU2Nyb2xsWSkge1xuICAgICAgICBjb25zdCBpc1JUTCA9IGdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5kaXJlY3Rpb24gPT09ICdydGwnO1xuICAgICAgICBpZiAoaXNSVEwpIHtcbiAgICAgICAgICB4Q29uZCA9IGV2ZW50Lm9mZnNldFggPD0gdGFyZ2V0Lm9mZnNldFdpZHRoIC0gdGFyZ2V0LmNsaWVudFdpZHRoO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoeENvbmQgfHwgY2FuU2Nyb2xsWCAmJiBldmVudC5vZmZzZXRZID4gdGFyZ2V0LmNsaWVudEhlaWdodCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IG5vZGVJZCA9IChfZGF0YVJlZiRjdXJyZW50JGZsb2EyID0gZGF0YVJlZi5jdXJyZW50LmZsb2F0aW5nQ29udGV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9kYXRhUmVmJGN1cnJlbnQkZmxvYTIubm9kZUlkO1xuICAgIGNvbnN0IHRhcmdldElzSW5zaWRlQ2hpbGRyZW4gPSB0cmVlICYmIGdldENoaWxkcmVuKHRyZWUubm9kZXNSZWYuY3VycmVudCwgbm9kZUlkKS5zb21lKG5vZGUgPT4ge1xuICAgICAgdmFyIF9ub2RlJGNvbnRleHQ7XG4gICAgICByZXR1cm4gaXNFdmVudFRhcmdldFdpdGhpbihldmVudCwgKF9ub2RlJGNvbnRleHQgPSBub2RlLmNvbnRleHQpID09IG51bGwgPyB2b2lkIDAgOiBfbm9kZSRjb250ZXh0LmVsZW1lbnRzLmZsb2F0aW5nKTtcbiAgICB9KTtcbiAgICBpZiAoaXNFdmVudFRhcmdldFdpdGhpbihldmVudCwgZWxlbWVudHMuZmxvYXRpbmcpIHx8IGlzRXZlbnRUYXJnZXRXaXRoaW4oZXZlbnQsIGVsZW1lbnRzLmRvbVJlZmVyZW5jZSkgfHwgdGFyZ2V0SXNJbnNpZGVDaGlsZHJlbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjaGlsZHJlbiA9IHRyZWUgPyBnZXRDaGlsZHJlbih0cmVlLm5vZGVzUmVmLmN1cnJlbnQsIG5vZGVJZCkgOiBbXTtcbiAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgbGV0IHNob3VsZERpc21pc3MgPSB0cnVlO1xuICAgICAgY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiB7XG4gICAgICAgIHZhciBfY2hpbGQkY29udGV4dDI7XG4gICAgICAgIGlmICgoX2NoaWxkJGNvbnRleHQyID0gY2hpbGQuY29udGV4dCkgIT0gbnVsbCAmJiBfY2hpbGQkY29udGV4dDIub3BlbiAmJiAhY2hpbGQuY29udGV4dC5kYXRhUmVmLmN1cnJlbnQuX19vdXRzaWRlUHJlc3NCdWJibGVzKSB7XG4gICAgICAgICAgc2hvdWxkRGlzbWlzcyA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAoIXNob3VsZERpc21pc3MpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICBvbk9wZW5DaGFuZ2UoZmFsc2UsIGV2ZW50LCAnb3V0c2lkZS1wcmVzcycpO1xuICB9KTtcbiAgY29uc3QgY2xvc2VPblByZXNzT3V0c2lkZUNhcHR1cmUgPSB1c2VFZmZlY3RFdmVudChldmVudCA9PiB7XG4gICAgdmFyIF9nZXRUYXJnZXQ0O1xuICAgIGNvbnN0IGNhbGxiYWNrID0gKCkgPT4ge1xuICAgICAgdmFyIF9nZXRUYXJnZXQzO1xuICAgICAgY2xvc2VPblByZXNzT3V0c2lkZShldmVudCk7XG4gICAgICAoX2dldFRhcmdldDMgPSBnZXRUYXJnZXQoZXZlbnQpKSA9PSBudWxsIHx8IF9nZXRUYXJnZXQzLnJlbW92ZUV2ZW50TGlzdGVuZXIob3V0c2lkZVByZXNzRXZlbnQsIGNhbGxiYWNrKTtcbiAgICB9O1xuICAgIChfZ2V0VGFyZ2V0NCA9IGdldFRhcmdldChldmVudCkpID09IG51bGwgfHwgX2dldFRhcmdldDQuYWRkRXZlbnRMaXN0ZW5lcihvdXRzaWRlUHJlc3NFdmVudCwgY2FsbGJhY2spO1xuICB9KTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW9wZW4gfHwgIWVuYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZGF0YVJlZi5jdXJyZW50Ll9fZXNjYXBlS2V5QnViYmxlcyA9IGVzY2FwZUtleUJ1YmJsZXM7XG4gICAgZGF0YVJlZi5jdXJyZW50Ll9fb3V0c2lkZVByZXNzQnViYmxlcyA9IG91dHNpZGVQcmVzc0J1YmJsZXM7XG4gICAgZnVuY3Rpb24gb25TY3JvbGwoZXZlbnQpIHtcbiAgICAgIG9uT3BlbkNoYW5nZShmYWxzZSwgZXZlbnQsICdhbmNlc3Rvci1zY3JvbGwnKTtcbiAgICB9XG4gICAgY29uc3QgZG9jID0gZ2V0RG9jdW1lbnQoZWxlbWVudHMuZmxvYXRpbmcpO1xuICAgIGVzY2FwZUtleSAmJiBkb2MuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGVzY2FwZUtleUNhcHR1cmUgPyBjbG9zZU9uRXNjYXBlS2V5RG93bkNhcHR1cmUgOiBjbG9zZU9uRXNjYXBlS2V5RG93biwgZXNjYXBlS2V5Q2FwdHVyZSk7XG4gICAgb3V0c2lkZVByZXNzICYmIGRvYy5hZGRFdmVudExpc3RlbmVyKG91dHNpZGVQcmVzc0V2ZW50LCBvdXRzaWRlUHJlc3NDYXB0dXJlID8gY2xvc2VPblByZXNzT3V0c2lkZUNhcHR1cmUgOiBjbG9zZU9uUHJlc3NPdXRzaWRlLCBvdXRzaWRlUHJlc3NDYXB0dXJlKTtcbiAgICBsZXQgYW5jZXN0b3JzID0gW107XG4gICAgaWYgKGFuY2VzdG9yU2Nyb2xsKSB7XG4gICAgICBpZiAoaXNFbGVtZW50KGVsZW1lbnRzLmRvbVJlZmVyZW5jZSkpIHtcbiAgICAgICAgYW5jZXN0b3JzID0gZ2V0T3ZlcmZsb3dBbmNlc3RvcnMoZWxlbWVudHMuZG9tUmVmZXJlbmNlKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc0VsZW1lbnQoZWxlbWVudHMuZmxvYXRpbmcpKSB7XG4gICAgICAgIGFuY2VzdG9ycyA9IGFuY2VzdG9ycy5jb25jYXQoZ2V0T3ZlcmZsb3dBbmNlc3RvcnMoZWxlbWVudHMuZmxvYXRpbmcpKTtcbiAgICAgIH1cbiAgICAgIGlmICghaXNFbGVtZW50KGVsZW1lbnRzLnJlZmVyZW5jZSkgJiYgZWxlbWVudHMucmVmZXJlbmNlICYmIGVsZW1lbnRzLnJlZmVyZW5jZS5jb250ZXh0RWxlbWVudCkge1xuICAgICAgICBhbmNlc3RvcnMgPSBhbmNlc3RvcnMuY29uY2F0KGdldE92ZXJmbG93QW5jZXN0b3JzKGVsZW1lbnRzLnJlZmVyZW5jZS5jb250ZXh0RWxlbWVudCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElnbm9yZSB0aGUgdmlzdWFsIHZpZXdwb3J0IGZvciBzY3JvbGxpbmcgZGlzbWlzc2FsIChhbGxvdyBwaW5jaC16b29tKVxuICAgIGFuY2VzdG9ycyA9IGFuY2VzdG9ycy5maWx0ZXIoYW5jZXN0b3IgPT4ge1xuICAgICAgdmFyIF9kb2MkZGVmYXVsdFZpZXc7XG4gICAgICByZXR1cm4gYW5jZXN0b3IgIT09ICgoX2RvYyRkZWZhdWx0VmlldyA9IGRvYy5kZWZhdWx0VmlldykgPT0gbnVsbCA/IHZvaWQgMCA6IF9kb2MkZGVmYXVsdFZpZXcudmlzdWFsVmlld3BvcnQpO1xuICAgIH0pO1xuICAgIGFuY2VzdG9ycy5mb3JFYWNoKGFuY2VzdG9yID0+IHtcbiAgICAgIGFuY2VzdG9yLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsLCB7XG4gICAgICAgIHBhc3NpdmU6IHRydWVcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBlc2NhcGVLZXkgJiYgZG9jLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBlc2NhcGVLZXlDYXB0dXJlID8gY2xvc2VPbkVzY2FwZUtleURvd25DYXB0dXJlIDogY2xvc2VPbkVzY2FwZUtleURvd24sIGVzY2FwZUtleUNhcHR1cmUpO1xuICAgICAgb3V0c2lkZVByZXNzICYmIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKG91dHNpZGVQcmVzc0V2ZW50LCBvdXRzaWRlUHJlc3NDYXB0dXJlID8gY2xvc2VPblByZXNzT3V0c2lkZUNhcHR1cmUgOiBjbG9zZU9uUHJlc3NPdXRzaWRlLCBvdXRzaWRlUHJlc3NDYXB0dXJlKTtcbiAgICAgIGFuY2VzdG9ycy5mb3JFYWNoKGFuY2VzdG9yID0+IHtcbiAgICAgICAgYW5jZXN0b3IucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25TY3JvbGwpO1xuICAgICAgfSk7XG4gICAgfTtcbiAgfSwgW2RhdGFSZWYsIGVsZW1lbnRzLCBlc2NhcGVLZXksIG91dHNpZGVQcmVzcywgb3V0c2lkZVByZXNzRXZlbnQsIG9wZW4sIG9uT3BlbkNoYW5nZSwgYW5jZXN0b3JTY3JvbGwsIGVuYWJsZWQsIGVzY2FwZUtleUJ1YmJsZXMsIG91dHNpZGVQcmVzc0J1YmJsZXMsIGNsb3NlT25Fc2NhcGVLZXlEb3duLCBlc2NhcGVLZXlDYXB0dXJlLCBjbG9zZU9uRXNjYXBlS2V5RG93bkNhcHR1cmUsIGNsb3NlT25QcmVzc091dHNpZGUsIG91dHNpZGVQcmVzc0NhcHR1cmUsIGNsb3NlT25QcmVzc091dHNpZGVDYXB0dXJlXSk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW5zaWRlUmVhY3RUcmVlUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgfSwgW291dHNpZGVQcmVzcywgb3V0c2lkZVByZXNzRXZlbnRdKTtcbiAgY29uc3QgcmVmZXJlbmNlID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIG9uS2V5RG93bjogY2xvc2VPbkVzY2FwZUtleURvd24sXG4gICAgW2J1YmJsZUhhbmRsZXJLZXlzW3JlZmVyZW5jZVByZXNzRXZlbnRdXTogZXZlbnQgPT4ge1xuICAgICAgaWYgKHJlZmVyZW5jZVByZXNzKSB7XG4gICAgICAgIG9uT3BlbkNoYW5nZShmYWxzZSwgZXZlbnQubmF0aXZlRXZlbnQsICdyZWZlcmVuY2UtcHJlc3MnKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pLCBbY2xvc2VPbkVzY2FwZUtleURvd24sIG9uT3BlbkNoYW5nZSwgcmVmZXJlbmNlUHJlc3MsIHJlZmVyZW5jZVByZXNzRXZlbnRdKTtcbiAgY29uc3QgZmxvYXRpbmcgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgb25LZXlEb3duOiBjbG9zZU9uRXNjYXBlS2V5RG93bixcbiAgICBvbk1vdXNlRG93bigpIHtcbiAgICAgIGVuZGVkT3JTdGFydGVkSW5zaWRlUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgIH0sXG4gICAgb25Nb3VzZVVwKCkge1xuICAgICAgZW5kZWRPclN0YXJ0ZWRJbnNpZGVSZWYuY3VycmVudCA9IHRydWU7XG4gICAgfSxcbiAgICBbY2FwdHVyZUhhbmRsZXJLZXlzW291dHNpZGVQcmVzc0V2ZW50XV06ICgpID0+IHtcbiAgICAgIGluc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9XG4gIH0pLCBbY2xvc2VPbkVzY2FwZUtleURvd24sIG91dHNpZGVQcmVzc0V2ZW50XSk7XG4gIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+IGVuYWJsZWQgPyB7XG4gICAgcmVmZXJlbmNlLFxuICAgIGZsb2F0aW5nXG4gIH0gOiB7fSwgW2VuYWJsZWQsIHJlZmVyZW5jZSwgZmxvYXRpbmddKTtcbn1cblxuZnVuY3Rpb24gdXNlRmxvYXRpbmdSb290Q29udGV4dChvcHRpb25zKSB7XG4gIGNvbnN0IHtcbiAgICBvcGVuID0gZmFsc2UsXG4gICAgb25PcGVuQ2hhbmdlOiBvbk9wZW5DaGFuZ2VQcm9wLFxuICAgIGVsZW1lbnRzOiBlbGVtZW50c1Byb3BcbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGZsb2F0aW5nSWQgPSB1c2VJZCgpO1xuICBjb25zdCBkYXRhUmVmID0gUmVhY3QudXNlUmVmKHt9KTtcbiAgY29uc3QgW2V2ZW50c10gPSBSZWFjdC51c2VTdGF0ZSgoKSA9PiBjcmVhdGVQdWJTdWIoKSk7XG4gIGNvbnN0IG5lc3RlZCA9IHVzZUZsb2F0aW5nUGFyZW50Tm9kZUlkKCkgIT0gbnVsbDtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIGNvbnN0IG9wdGlvbkRvbVJlZmVyZW5jZSA9IGVsZW1lbnRzUHJvcC5yZWZlcmVuY2U7XG4gICAgaWYgKG9wdGlvbkRvbVJlZmVyZW5jZSAmJiAhaXNFbGVtZW50KG9wdGlvbkRvbVJlZmVyZW5jZSkpIHtcbiAgICAgIGVycm9yKCdDYW5ub3QgcGFzcyBhIHZpcnR1YWwgZWxlbWVudCB0byB0aGUgYGVsZW1lbnRzLnJlZmVyZW5jZWAgb3B0aW9uLCcsICdhcyBpdCBtdXN0IGJlIGEgcmVhbCBET00gZWxlbWVudC4gVXNlIGByZWZzLnNldFBvc2l0aW9uUmVmZXJlbmNlKClgJywgJ2luc3RlYWQuJyk7XG4gICAgfVxuICB9XG4gIGNvbnN0IFtwb3NpdGlvblJlZmVyZW5jZSwgc2V0UG9zaXRpb25SZWZlcmVuY2VdID0gUmVhY3QudXNlU3RhdGUoZWxlbWVudHNQcm9wLnJlZmVyZW5jZSk7XG4gIGNvbnN0IG9uT3BlbkNoYW5nZSA9IHVzZUVmZmVjdEV2ZW50KChvcGVuLCBldmVudCwgcmVhc29uKSA9PiB7XG4gICAgZGF0YVJlZi5jdXJyZW50Lm9wZW5FdmVudCA9IG9wZW4gPyBldmVudCA6IHVuZGVmaW5lZDtcbiAgICBldmVudHMuZW1pdCgnb3BlbmNoYW5nZScsIHtcbiAgICAgIG9wZW4sXG4gICAgICBldmVudCxcbiAgICAgIHJlYXNvbixcbiAgICAgIG5lc3RlZFxuICAgIH0pO1xuICAgIG9uT3BlbkNoYW5nZVByb3AgPT0gbnVsbCB8fCBvbk9wZW5DaGFuZ2VQcm9wKG9wZW4sIGV2ZW50LCByZWFzb24pO1xuICB9KTtcbiAgY29uc3QgcmVmcyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBzZXRQb3NpdGlvblJlZmVyZW5jZVxuICB9KSwgW10pO1xuICBjb25zdCBlbGVtZW50cyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICByZWZlcmVuY2U6IHBvc2l0aW9uUmVmZXJlbmNlIHx8IGVsZW1lbnRzUHJvcC5yZWZlcmVuY2UgfHwgbnVsbCxcbiAgICBmbG9hdGluZzogZWxlbWVudHNQcm9wLmZsb2F0aW5nIHx8IG51bGwsXG4gICAgZG9tUmVmZXJlbmNlOiBlbGVtZW50c1Byb3AucmVmZXJlbmNlXG4gIH0pLCBbcG9zaXRpb25SZWZlcmVuY2UsIGVsZW1lbnRzUHJvcC5yZWZlcmVuY2UsIGVsZW1lbnRzUHJvcC5mbG9hdGluZ10pO1xuICByZXR1cm4gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIGRhdGFSZWYsXG4gICAgb3BlbixcbiAgICBvbk9wZW5DaGFuZ2UsXG4gICAgZWxlbWVudHMsXG4gICAgZXZlbnRzLFxuICAgIGZsb2F0aW5nSWQsXG4gICAgcmVmc1xuICB9KSwgW29wZW4sIG9uT3BlbkNoYW5nZSwgZWxlbWVudHMsIGV2ZW50cywgZmxvYXRpbmdJZCwgcmVmc10pO1xufVxuXG4vKipcbiAqIFByb3ZpZGVzIGRhdGEgdG8gcG9zaXRpb24gYSBmbG9hdGluZyBlbGVtZW50IGFuZCBjb250ZXh0IHRvIGFkZCBpbnRlcmFjdGlvbnMuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvdXNlRmxvYXRpbmdcbiAqL1xuZnVuY3Rpb24gdXNlRmxvYXRpbmcob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGNvbnN0IHtcbiAgICBub2RlSWRcbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGludGVybmFsUm9vdENvbnRleHQgPSB1c2VGbG9hdGluZ1Jvb3RDb250ZXh0KHtcbiAgICAuLi5vcHRpb25zLFxuICAgIGVsZW1lbnRzOiB7XG4gICAgICByZWZlcmVuY2U6IG51bGwsXG4gICAgICBmbG9hdGluZzogbnVsbCxcbiAgICAgIC4uLm9wdGlvbnMuZWxlbWVudHNcbiAgICB9XG4gIH0pO1xuICBjb25zdCByb290Q29udGV4dCA9IG9wdGlvbnMucm9vdENvbnRleHQgfHwgaW50ZXJuYWxSb290Q29udGV4dDtcbiAgY29uc3QgY29tcHV0ZWRFbGVtZW50cyA9IHJvb3RDb250ZXh0LmVsZW1lbnRzO1xuICBjb25zdCBbX2RvbVJlZmVyZW5jZSwgc2V0RG9tUmVmZXJlbmNlXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICBjb25zdCBbcG9zaXRpb25SZWZlcmVuY2UsIF9zZXRQb3NpdGlvblJlZmVyZW5jZV0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgY29uc3Qgb3B0aW9uRG9tUmVmZXJlbmNlID0gY29tcHV0ZWRFbGVtZW50cyA9PSBudWxsID8gdm9pZCAwIDogY29tcHV0ZWRFbGVtZW50cy5yZWZlcmVuY2U7XG4gIGNvbnN0IGRvbVJlZmVyZW5jZSA9IG9wdGlvbkRvbVJlZmVyZW5jZSB8fCBfZG9tUmVmZXJlbmNlO1xuICBjb25zdCBkb21SZWZlcmVuY2VSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGNvbnN0IHRyZWUgPSB1c2VGbG9hdGluZ1RyZWUoKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGlmIChkb21SZWZlcmVuY2UpIHtcbiAgICAgIGRvbVJlZmVyZW5jZVJlZi5jdXJyZW50ID0gZG9tUmVmZXJlbmNlO1xuICAgIH1cbiAgfSwgW2RvbVJlZmVyZW5jZV0pO1xuICBjb25zdCBwb3NpdGlvbiA9IHVzZUZsb2F0aW5nJDEoe1xuICAgIC4uLm9wdGlvbnMsXG4gICAgZWxlbWVudHM6IHtcbiAgICAgIC4uLmNvbXB1dGVkRWxlbWVudHMsXG4gICAgICAuLi4ocG9zaXRpb25SZWZlcmVuY2UgJiYge1xuICAgICAgICByZWZlcmVuY2U6IHBvc2l0aW9uUmVmZXJlbmNlXG4gICAgICB9KVxuICAgIH1cbiAgfSk7XG4gIGNvbnN0IHNldFBvc2l0aW9uUmVmZXJlbmNlID0gUmVhY3QudXNlQ2FsbGJhY2sobm9kZSA9PiB7XG4gICAgY29uc3QgY29tcHV0ZWRQb3NpdGlvblJlZmVyZW5jZSA9IGlzRWxlbWVudChub2RlKSA/IHtcbiAgICAgIGdldEJvdW5kaW5nQ2xpZW50UmVjdDogKCkgPT4gbm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgIGNvbnRleHRFbGVtZW50OiBub2RlXG4gICAgfSA6IG5vZGU7XG4gICAgLy8gU3RvcmUgdGhlIHBvc2l0aW9uUmVmZXJlbmNlIGluIHN0YXRlIGlmIHRoZSBET00gcmVmZXJlbmNlIGlzIHNwZWNpZmllZCBleHRlcm5hbGx5IHZpYSB0aGVcbiAgICAvLyBgZWxlbWVudHMucmVmZXJlbmNlYCBvcHRpb24uIFRoaXMgZW5zdXJlcyB0aGF0IGl0IHdvbid0IGJlIG92ZXJyaWRkZW4gb24gZnV0dXJlIHJlbmRlcnMuXG4gICAgX3NldFBvc2l0aW9uUmVmZXJlbmNlKGNvbXB1dGVkUG9zaXRpb25SZWZlcmVuY2UpO1xuICAgIHBvc2l0aW9uLnJlZnMuc2V0UmVmZXJlbmNlKGNvbXB1dGVkUG9zaXRpb25SZWZlcmVuY2UpO1xuICB9LCBbcG9zaXRpb24ucmVmc10pO1xuICBjb25zdCBzZXRSZWZlcmVuY2UgPSBSZWFjdC51c2VDYWxsYmFjayhub2RlID0+IHtcbiAgICBpZiAoaXNFbGVtZW50KG5vZGUpIHx8IG5vZGUgPT09IG51bGwpIHtcbiAgICAgIGRvbVJlZmVyZW5jZVJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgIHNldERvbVJlZmVyZW5jZShub2RlKTtcbiAgICB9XG5cbiAgICAvLyBCYWNrd2FyZHMtY29tcGF0aWJpbGl0eSBmb3IgcGFzc2luZyBhIHZpcnR1YWwgZWxlbWVudCB0byBgcmVmZXJlbmNlYFxuICAgIC8vIGFmdGVyIGl0IGhhcyBzZXQgdGhlIERPTSByZWZlcmVuY2UuXG4gICAgaWYgKGlzRWxlbWVudChwb3NpdGlvbi5yZWZzLnJlZmVyZW5jZS5jdXJyZW50KSB8fCBwb3NpdGlvbi5yZWZzLnJlZmVyZW5jZS5jdXJyZW50ID09PSBudWxsIHx8XG4gICAgLy8gRG9uJ3QgYWxsb3cgc2V0dGluZyB2aXJ0dWFsIGVsZW1lbnRzIHVzaW5nIHRoZSBvbGQgdGVjaG5pcXVlIGJhY2sgdG9cbiAgICAvLyBgbnVsbGAgdG8gc3VwcG9ydCBgcG9zaXRpb25SZWZlcmVuY2VgICsgYW4gdW5zdGFibGUgYHJlZmVyZW5jZWBcbiAgICAvLyBjYWxsYmFjayByZWYuXG4gICAgbm9kZSAhPT0gbnVsbCAmJiAhaXNFbGVtZW50KG5vZGUpKSB7XG4gICAgICBwb3NpdGlvbi5yZWZzLnNldFJlZmVyZW5jZShub2RlKTtcbiAgICB9XG4gIH0sIFtwb3NpdGlvbi5yZWZzXSk7XG4gIGNvbnN0IHJlZnMgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgLi4ucG9zaXRpb24ucmVmcyxcbiAgICBzZXRSZWZlcmVuY2UsXG4gICAgc2V0UG9zaXRpb25SZWZlcmVuY2UsXG4gICAgZG9tUmVmZXJlbmNlOiBkb21SZWZlcmVuY2VSZWZcbiAgfSksIFtwb3NpdGlvbi5yZWZzLCBzZXRSZWZlcmVuY2UsIHNldFBvc2l0aW9uUmVmZXJlbmNlXSk7XG4gIGNvbnN0IGVsZW1lbnRzID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIC4uLnBvc2l0aW9uLmVsZW1lbnRzLFxuICAgIGRvbVJlZmVyZW5jZTogZG9tUmVmZXJlbmNlXG4gIH0pLCBbcG9zaXRpb24uZWxlbWVudHMsIGRvbVJlZmVyZW5jZV0pO1xuICBjb25zdCBjb250ZXh0ID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIC4uLnBvc2l0aW9uLFxuICAgIC4uLnJvb3RDb250ZXh0LFxuICAgIHJlZnMsXG4gICAgZWxlbWVudHMsXG4gICAgbm9kZUlkXG4gIH0pLCBbcG9zaXRpb24sIHJlZnMsIGVsZW1lbnRzLCBub2RlSWQsIHJvb3RDb250ZXh0XSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICByb290Q29udGV4dC5kYXRhUmVmLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0ID0gY29udGV4dDtcbiAgICBjb25zdCBub2RlID0gdHJlZSA9PSBudWxsID8gdm9pZCAwIDogdHJlZS5ub2Rlc1JlZi5jdXJyZW50LmZpbmQobm9kZSA9PiBub2RlLmlkID09PSBub2RlSWQpO1xuICAgIGlmIChub2RlKSB7XG4gICAgICBub2RlLmNvbnRleHQgPSBjb250ZXh0O1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgLi4ucG9zaXRpb24sXG4gICAgY29udGV4dCxcbiAgICByZWZzLFxuICAgIGVsZW1lbnRzXG4gIH0pLCBbcG9zaXRpb24sIHJlZnMsIGVsZW1lbnRzLCBjb250ZXh0XSk7XG59XG5cbi8qKlxuICogT3BlbnMgdGhlIGZsb2F0aW5nIGVsZW1lbnQgd2hpbGUgdGhlIHJlZmVyZW5jZSBlbGVtZW50IGhhcyBmb2N1cywgbGlrZSBDU1NcbiAqIGA6Zm9jdXNgLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3VzZUZvY3VzXG4gKi9cbmZ1bmN0aW9uIHVzZUZvY3VzKGNvbnRleHQsIHByb3BzKSB7XG4gIGlmIChwcm9wcyA9PT0gdm9pZCAwKSB7XG4gICAgcHJvcHMgPSB7fTtcbiAgfVxuICBjb25zdCB7XG4gICAgb3BlbixcbiAgICBvbk9wZW5DaGFuZ2UsXG4gICAgZXZlbnRzLFxuICAgIGRhdGFSZWYsXG4gICAgZWxlbWVudHNcbiAgfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtcbiAgICBlbmFibGVkID0gdHJ1ZSxcbiAgICB2aXNpYmxlT25seSA9IHRydWVcbiAgfSA9IHByb3BzO1xuICBjb25zdCBibG9ja0ZvY3VzUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgdGltZW91dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xuICBjb25zdCBrZXlib2FyZE1vZGFsaXR5UmVmID0gUmVhY3QudXNlUmVmKHRydWUpO1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZW5hYmxlZCkgcmV0dXJuO1xuICAgIGNvbnN0IHdpbiA9IGdldFdpbmRvdyhlbGVtZW50cy5kb21SZWZlcmVuY2UpO1xuXG4gICAgLy8gSWYgdGhlIHJlZmVyZW5jZSB3YXMgZm9jdXNlZCBhbmQgdGhlIHVzZXIgbGVmdCB0aGUgdGFiL3dpbmRvdywgYW5kIHRoZVxuICAgIC8vIGZsb2F0aW5nIGVsZW1lbnQgd2FzIG5vdCBvcGVuLCB0aGUgZm9jdXMgc2hvdWxkIGJlIGJsb2NrZWQgd2hlbiB0aGV5XG4gICAgLy8gcmV0dXJuIHRvIHRoZSB0YWIvd2luZG93LlxuICAgIGZ1bmN0aW9uIG9uQmx1cigpIHtcbiAgICAgIGlmICghb3BlbiAmJiBpc0hUTUxFbGVtZW50KGVsZW1lbnRzLmRvbVJlZmVyZW5jZSkgJiYgZWxlbWVudHMuZG9tUmVmZXJlbmNlID09PSBhY3RpdmVFbGVtZW50KGdldERvY3VtZW50KGVsZW1lbnRzLmRvbVJlZmVyZW5jZSkpKSB7XG4gICAgICAgIGJsb2NrRm9jdXNSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIG9uS2V5RG93bigpIHtcbiAgICAgIGtleWJvYXJkTW9kYWxpdHlSZWYuY3VycmVudCA9IHRydWU7XG4gICAgfVxuICAgIHdpbi5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgb25CbHVyKTtcbiAgICB3aW4uYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIG9uS2V5RG93biwgdHJ1ZSk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbi5yZW1vdmVFdmVudExpc3RlbmVyKCdibHVyJywgb25CbHVyKTtcbiAgICAgIHdpbi5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgb25LZXlEb3duLCB0cnVlKTtcbiAgICB9O1xuICB9LCBbZWxlbWVudHMuZG9tUmVmZXJlbmNlLCBvcGVuLCBlbmFibGVkXSk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFlbmFibGVkKSByZXR1cm47XG4gICAgZnVuY3Rpb24gb25PcGVuQ2hhbmdlKF9yZWYpIHtcbiAgICAgIGxldCB7XG4gICAgICAgIHJlYXNvblxuICAgICAgfSA9IF9yZWY7XG4gICAgICBpZiAocmVhc29uID09PSAncmVmZXJlbmNlLXByZXNzJyB8fCByZWFzb24gPT09ICdlc2NhcGUta2V5Jykge1xuICAgICAgICBibG9ja0ZvY3VzUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBldmVudHMub24oJ29wZW5jaGFuZ2UnLCBvbk9wZW5DaGFuZ2UpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBldmVudHMub2ZmKCdvcGVuY2hhbmdlJywgb25PcGVuQ2hhbmdlKTtcbiAgICB9O1xuICB9LCBbZXZlbnRzLCBlbmFibGVkXSk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpO1xuICAgIH07XG4gIH0sIFtdKTtcbiAgY29uc3QgcmVmZXJlbmNlID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIG9uUG9pbnRlckRvd24oZXZlbnQpIHtcbiAgICAgIGlmIChpc1ZpcnR1YWxQb2ludGVyRXZlbnQoZXZlbnQubmF0aXZlRXZlbnQpKSByZXR1cm47XG4gICAgICBrZXlib2FyZE1vZGFsaXR5UmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9LFxuICAgIG9uTW91c2VMZWF2ZSgpIHtcbiAgICAgIGJsb2NrRm9jdXNSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgIH0sXG4gICAgb25Gb2N1cyhldmVudCkge1xuICAgICAgaWYgKGJsb2NrRm9jdXNSZWYuY3VycmVudCkgcmV0dXJuO1xuICAgICAgY29uc3QgdGFyZ2V0ID0gZ2V0VGFyZ2V0KGV2ZW50Lm5hdGl2ZUV2ZW50KTtcbiAgICAgIGlmICh2aXNpYmxlT25seSAmJiBpc0VsZW1lbnQodGFyZ2V0KSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIE1hYyBTYWZhcmkgdW5yZWxpYWJseSBtYXRjaGVzIGA6Zm9jdXMtdmlzaWJsZWAgb24gdGhlIHJlZmVyZW5jZVxuICAgICAgICAgIC8vIGlmIGZvY3VzIHdhcyBvdXRzaWRlIHRoZSBwYWdlIGluaXRpYWxseSAtIHVzZSB0aGUgZmFsbGJhY2tcbiAgICAgICAgICAvLyBpbnN0ZWFkLlxuICAgICAgICAgIGlmIChpc1NhZmFyaSgpICYmIGlzTWFjKCkpIHRocm93IEVycm9yKCk7XG4gICAgICAgICAgaWYgKCF0YXJnZXQubWF0Y2hlcygnOmZvY3VzLXZpc2libGUnKSkgcmV0dXJuO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gT2xkIGJyb3dzZXJzIHdpbGwgdGhyb3cgYW4gZXJyb3Igd2hlbiB1c2luZyBgOmZvY3VzLXZpc2libGVgLlxuICAgICAgICAgIGlmICgha2V5Ym9hcmRNb2RhbGl0eVJlZi5jdXJyZW50ICYmICFpc1R5cGVhYmxlRWxlbWVudCh0YXJnZXQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBvbk9wZW5DaGFuZ2UodHJ1ZSwgZXZlbnQubmF0aXZlRXZlbnQsICdmb2N1cycpO1xuICAgIH0sXG4gICAgb25CbHVyKGV2ZW50KSB7XG4gICAgICBibG9ja0ZvY3VzUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSBldmVudC5yZWxhdGVkVGFyZ2V0O1xuICAgICAgY29uc3QgbmF0aXZlRXZlbnQgPSBldmVudC5uYXRpdmVFdmVudDtcblxuICAgICAgLy8gSGl0IHRoZSBub24tbW9kYWwgZm9jdXMgbWFuYWdlbWVudCBwb3J0YWwgZ3VhcmQuIEZvY3VzIHdpbGwgYmVcbiAgICAgIC8vIG1vdmVkIGludG8gdGhlIGZsb2F0aW5nIGVsZW1lbnQgaW1tZWRpYXRlbHkgYWZ0ZXIuXG4gICAgICBjb25zdCBtb3ZlZFRvRm9jdXNHdWFyZCA9IGlzRWxlbWVudChyZWxhdGVkVGFyZ2V0KSAmJiByZWxhdGVkVGFyZ2V0Lmhhc0F0dHJpYnV0ZShjcmVhdGVBdHRyaWJ1dGUoJ2ZvY3VzLWd1YXJkJykpICYmIHJlbGF0ZWRUYXJnZXQuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cGUnKSA9PT0gJ291dHNpZGUnO1xuXG4gICAgICAvLyBXYWl0IGZvciB0aGUgd2luZG93IGJsdXIgbGlzdGVuZXIgdG8gZmlyZS5cbiAgICAgIHRpbWVvdXRSZWYuY3VycmVudCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdmFyIF9kYXRhUmVmJGN1cnJlbnQkZmxvYTtcbiAgICAgICAgY29uc3QgYWN0aXZlRWwgPSBhY3RpdmVFbGVtZW50KGVsZW1lbnRzLmRvbVJlZmVyZW5jZSA/IGVsZW1lbnRzLmRvbVJlZmVyZW5jZS5vd25lckRvY3VtZW50IDogZG9jdW1lbnQpO1xuXG4gICAgICAgIC8vIEZvY3VzIGxlZnQgdGhlIHBhZ2UsIGtlZXAgaXQgb3Blbi5cbiAgICAgICAgaWYgKCFyZWxhdGVkVGFyZ2V0ICYmIGFjdGl2ZUVsID09PSBlbGVtZW50cy5kb21SZWZlcmVuY2UpIHJldHVybjtcblxuICAgICAgICAvLyBXaGVuIGZvY3VzaW5nIHRoZSByZWZlcmVuY2UgZWxlbWVudCAoZS5nLiByZWd1bGFyIGNsaWNrKSwgdGhlblxuICAgICAgICAvLyBjbGlja2luZyBpbnRvIHRoZSBmbG9hdGluZyBlbGVtZW50LCBwcmV2ZW50IGl0IGZyb20gaGlkaW5nLlxuICAgICAgICAvLyBOb3RlOiBpdCBtdXN0IGJlIGZvY3VzYWJsZSwgZS5nLiBgdGFiaW5kZXg9XCItMVwiYC5cbiAgICAgICAgLy8gV2UgY2FuIG5vdCByZWx5IG9uIHJlbGF0ZWRUYXJnZXQgdG8gcG9pbnQgdG8gdGhlIGNvcnJlY3QgZWxlbWVudFxuICAgICAgICAvLyBhcyBpdCB3aWxsIG9ubHkgcG9pbnQgdG8gdGhlIHNoYWRvdyBob3N0IG9mIHRoZSBuZXdseSBmb2N1c2VkIGVsZW1lbnRcbiAgICAgICAgLy8gYW5kIG5vdCB0aGUgZWxlbWVudCB0aGF0IGFjdHVhbGx5IGhhcyByZWNlaXZlZCBmb2N1cyBpZiBpdCBpcyBsb2NhdGVkXG4gICAgICAgIC8vIGluc2lkZSBhIHNoYWRvdyByb290LlxuICAgICAgICBpZiAoY29udGFpbnMoKF9kYXRhUmVmJGN1cnJlbnQkZmxvYSA9IGRhdGFSZWYuY3VycmVudC5mbG9hdGluZ0NvbnRleHQpID09IG51bGwgPyB2b2lkIDAgOiBfZGF0YVJlZiRjdXJyZW50JGZsb2EucmVmcy5mbG9hdGluZy5jdXJyZW50LCBhY3RpdmVFbCkgfHwgY29udGFpbnMoZWxlbWVudHMuZG9tUmVmZXJlbmNlLCBhY3RpdmVFbCkgfHwgbW92ZWRUb0ZvY3VzR3VhcmQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgb25PcGVuQ2hhbmdlKGZhbHNlLCBuYXRpdmVFdmVudCwgJ2ZvY3VzJyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0pLCBbZGF0YVJlZiwgZWxlbWVudHMuZG9tUmVmZXJlbmNlLCBvbk9wZW5DaGFuZ2UsIHZpc2libGVPbmx5XSk7XG4gIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+IGVuYWJsZWQgPyB7XG4gICAgcmVmZXJlbmNlXG4gIH0gOiB7fSwgW2VuYWJsZWQsIHJlZmVyZW5jZV0pO1xufVxuXG5jb25zdCBBQ1RJVkVfS0VZID0gJ2FjdGl2ZSc7XG5jb25zdCBTRUxFQ1RFRF9LRVkgPSAnc2VsZWN0ZWQnO1xuZnVuY3Rpb24gbWVyZ2VQcm9wcyh1c2VyUHJvcHMsIHByb3BzTGlzdCwgZWxlbWVudEtleSkge1xuICBjb25zdCBtYXAgPSBuZXcgTWFwKCk7XG4gIGNvbnN0IGlzSXRlbSA9IGVsZW1lbnRLZXkgPT09ICdpdGVtJztcbiAgbGV0IGRvbVVzZXJQcm9wcyA9IHVzZXJQcm9wcztcbiAgaWYgKGlzSXRlbSAmJiB1c2VyUHJvcHMpIHtcbiAgICBjb25zdCB7XG4gICAgICBbQUNUSVZFX0tFWV06IF8sXG4gICAgICBbU0VMRUNURURfS0VZXTogX18sXG4gICAgICAuLi52YWxpZFByb3BzXG4gICAgfSA9IHVzZXJQcm9wcztcbiAgICBkb21Vc2VyUHJvcHMgPSB2YWxpZFByb3BzO1xuICB9XG4gIHJldHVybiB7XG4gICAgLi4uKGVsZW1lbnRLZXkgPT09ICdmbG9hdGluZycgJiYge1xuICAgICAgdGFiSW5kZXg6IC0xXG4gICAgfSksXG4gICAgLi4uZG9tVXNlclByb3BzLFxuICAgIC4uLnByb3BzTGlzdC5tYXAodmFsdWUgPT4ge1xuICAgICAgY29uc3QgcHJvcHNPckdldFByb3BzID0gdmFsdWUgPyB2YWx1ZVtlbGVtZW50S2V5XSA6IG51bGw7XG4gICAgICBpZiAodHlwZW9mIHByb3BzT3JHZXRQcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gdXNlclByb3BzID8gcHJvcHNPckdldFByb3BzKHVzZXJQcm9wcykgOiBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHByb3BzT3JHZXRQcm9wcztcbiAgICB9KS5jb25jYXQodXNlclByb3BzKS5yZWR1Y2UoKGFjYywgcHJvcHMpID0+IHtcbiAgICAgIGlmICghcHJvcHMpIHtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH1cbiAgICAgIE9iamVjdC5lbnRyaWVzKHByb3BzKS5mb3JFYWNoKF9yZWYgPT4ge1xuICAgICAgICBsZXQgW2tleSwgdmFsdWVdID0gX3JlZjtcbiAgICAgICAgaWYgKGlzSXRlbSAmJiBbQUNUSVZFX0tFWSwgU0VMRUNURURfS0VZXS5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkuaW5kZXhPZignb24nKSA9PT0gMCkge1xuICAgICAgICAgIGlmICghbWFwLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICBtYXAuc2V0KGtleSwgW10pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB2YXIgX21hcCRnZXQ7XG4gICAgICAgICAgICAoX21hcCRnZXQgPSBtYXAuZ2V0KGtleSkpID09IG51bGwgfHwgX21hcCRnZXQucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICBhY2Nba2V5XSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgdmFyIF9tYXAkZ2V0MjtcbiAgICAgICAgICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICAgICAgICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gKF9tYXAkZ2V0MiA9IG1hcC5nZXQoa2V5KSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9tYXAkZ2V0Mi5tYXAoZm4gPT4gZm4oLi4uYXJncykpLmZpbmQodmFsID0+IHZhbCAhPT0gdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFjY1trZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSlcbiAgfTtcbn1cbi8qKlxuICogTWVyZ2VzIGFuIGFycmF5IG9mIGludGVyYWN0aW9uIGhvb2tzJyBwcm9wcyBpbnRvIHByb3AgZ2V0dGVycywgYWxsb3dpbmdcbiAqIGV2ZW50IGhhbmRsZXIgZnVuY3Rpb25zIHRvIGJlIGNvbXBvc2VkIHRvZ2V0aGVyIHdpdGhvdXQgb3ZlcndyaXRpbmcgb25lXG4gKiBhbm90aGVyLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3VzZUludGVyYWN0aW9uc1xuICovXG5mdW5jdGlvbiB1c2VJbnRlcmFjdGlvbnMocHJvcHNMaXN0KSB7XG4gIGlmIChwcm9wc0xpc3QgPT09IHZvaWQgMCkge1xuICAgIHByb3BzTGlzdCA9IFtdO1xuICB9XG4gIGNvbnN0IHJlZmVyZW5jZURlcHMgPSBwcm9wc0xpc3QubWFwKGtleSA9PiBrZXkgPT0gbnVsbCA/IHZvaWQgMCA6IGtleS5yZWZlcmVuY2UpO1xuICBjb25zdCBmbG9hdGluZ0RlcHMgPSBwcm9wc0xpc3QubWFwKGtleSA9PiBrZXkgPT0gbnVsbCA/IHZvaWQgMCA6IGtleS5mbG9hdGluZyk7XG4gIGNvbnN0IGl0ZW1EZXBzID0gcHJvcHNMaXN0Lm1hcChrZXkgPT4ga2V5ID09IG51bGwgPyB2b2lkIDAgOiBrZXkuaXRlbSk7XG4gIGNvbnN0IGdldFJlZmVyZW5jZVByb3BzID0gUmVhY3QudXNlQ2FsbGJhY2sodXNlclByb3BzID0+IG1lcmdlUHJvcHModXNlclByb3BzLCBwcm9wc0xpc3QsICdyZWZlcmVuY2UnKSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICByZWZlcmVuY2VEZXBzKTtcbiAgY29uc3QgZ2V0RmxvYXRpbmdQcm9wcyA9IFJlYWN0LnVzZUNhbGxiYWNrKHVzZXJQcm9wcyA9PiBtZXJnZVByb3BzKHVzZXJQcm9wcywgcHJvcHNMaXN0LCAnZmxvYXRpbmcnKSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICBmbG9hdGluZ0RlcHMpO1xuICBjb25zdCBnZXRJdGVtUHJvcHMgPSBSZWFjdC51c2VDYWxsYmFjayh1c2VyUHJvcHMgPT4gbWVyZ2VQcm9wcyh1c2VyUHJvcHMsIHByb3BzTGlzdCwgJ2l0ZW0nKSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICBpdGVtRGVwcyk7XG4gIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgZ2V0UmVmZXJlbmNlUHJvcHMsXG4gICAgZ2V0RmxvYXRpbmdQcm9wcyxcbiAgICBnZXRJdGVtUHJvcHNcbiAgfSksIFtnZXRSZWZlcmVuY2VQcm9wcywgZ2V0RmxvYXRpbmdQcm9wcywgZ2V0SXRlbVByb3BzXSk7XG59XG5cbmxldCBpc1ByZXZlbnRTY3JvbGxTdXBwb3J0ZWQgPSBmYWxzZTtcbmZ1bmN0aW9uIGRvU3dpdGNoKG9yaWVudGF0aW9uLCB2ZXJ0aWNhbCwgaG9yaXpvbnRhbCkge1xuICBzd2l0Y2ggKG9yaWVudGF0aW9uKSB7XG4gICAgY2FzZSAndmVydGljYWwnOlxuICAgICAgcmV0dXJuIHZlcnRpY2FsO1xuICAgIGNhc2UgJ2hvcml6b250YWwnOlxuICAgICAgcmV0dXJuIGhvcml6b250YWw7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB2ZXJ0aWNhbCB8fCBob3Jpem9udGFsO1xuICB9XG59XG5mdW5jdGlvbiBpc01haW5PcmllbnRhdGlvbktleShrZXksIG9yaWVudGF0aW9uKSB7XG4gIGNvbnN0IHZlcnRpY2FsID0ga2V5ID09PSBBUlJPV19VUCB8fCBrZXkgPT09IEFSUk9XX0RPV047XG4gIGNvbnN0IGhvcml6b250YWwgPSBrZXkgPT09IEFSUk9XX0xFRlQgfHwga2V5ID09PSBBUlJPV19SSUdIVDtcbiAgcmV0dXJuIGRvU3dpdGNoKG9yaWVudGF0aW9uLCB2ZXJ0aWNhbCwgaG9yaXpvbnRhbCk7XG59XG5mdW5jdGlvbiBpc01haW5PcmllbnRhdGlvblRvRW5kS2V5KGtleSwgb3JpZW50YXRpb24sIHJ0bCkge1xuICBjb25zdCB2ZXJ0aWNhbCA9IGtleSA9PT0gQVJST1dfRE9XTjtcbiAgY29uc3QgaG9yaXpvbnRhbCA9IHJ0bCA/IGtleSA9PT0gQVJST1dfTEVGVCA6IGtleSA9PT0gQVJST1dfUklHSFQ7XG4gIHJldHVybiBkb1N3aXRjaChvcmllbnRhdGlvbiwgdmVydGljYWwsIGhvcml6b250YWwpIHx8IGtleSA9PT0gJ0VudGVyJyB8fCBrZXkgPT09ICcgJyB8fCBrZXkgPT09ICcnO1xufVxuZnVuY3Rpb24gaXNDcm9zc09yaWVudGF0aW9uT3BlbktleShrZXksIG9yaWVudGF0aW9uLCBydGwpIHtcbiAgY29uc3QgdmVydGljYWwgPSBydGwgPyBrZXkgPT09IEFSUk9XX0xFRlQgOiBrZXkgPT09IEFSUk9XX1JJR0hUO1xuICBjb25zdCBob3Jpem9udGFsID0ga2V5ID09PSBBUlJPV19ET1dOO1xuICByZXR1cm4gZG9Td2l0Y2gob3JpZW50YXRpb24sIHZlcnRpY2FsLCBob3Jpem9udGFsKTtcbn1cbmZ1bmN0aW9uIGlzQ3Jvc3NPcmllbnRhdGlvbkNsb3NlS2V5KGtleSwgb3JpZW50YXRpb24sIHJ0bCkge1xuICBjb25zdCB2ZXJ0aWNhbCA9IHJ0bCA/IGtleSA9PT0gQVJST1dfUklHSFQgOiBrZXkgPT09IEFSUk9XX0xFRlQ7XG4gIGNvbnN0IGhvcml6b250YWwgPSBrZXkgPT09IEFSUk9XX1VQO1xuICByZXR1cm4gZG9Td2l0Y2gob3JpZW50YXRpb24sIHZlcnRpY2FsLCBob3Jpem9udGFsKTtcbn1cbi8qKlxuICogQWRkcyBhcnJvdyBrZXktYmFzZWQgbmF2aWdhdGlvbiBvZiBhIGxpc3Qgb2YgaXRlbXMsIGVpdGhlciB1c2luZyByZWFsIERPTVxuICogZm9jdXMgb3IgdmlydHVhbCBmb2N1cy5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy91c2VMaXN0TmF2aWdhdGlvblxuICovXG5mdW5jdGlvbiB1c2VMaXN0TmF2aWdhdGlvbihjb250ZXh0LCBwcm9wcykge1xuICBjb25zdCB7XG4gICAgb3BlbixcbiAgICBvbk9wZW5DaGFuZ2UsXG4gICAgZWxlbWVudHNcbiAgfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtcbiAgICBsaXN0UmVmLFxuICAgIGFjdGl2ZUluZGV4LFxuICAgIG9uTmF2aWdhdGU6IHVuc3RhYmxlX29uTmF2aWdhdGUgPSAoKSA9PiB7fSxcbiAgICBlbmFibGVkID0gdHJ1ZSxcbiAgICBzZWxlY3RlZEluZGV4ID0gbnVsbCxcbiAgICBhbGxvd0VzY2FwZSA9IGZhbHNlLFxuICAgIGxvb3AgPSBmYWxzZSxcbiAgICBuZXN0ZWQgPSBmYWxzZSxcbiAgICBydGwgPSBmYWxzZSxcbiAgICB2aXJ0dWFsID0gZmFsc2UsXG4gICAgZm9jdXNJdGVtT25PcGVuID0gJ2F1dG8nLFxuICAgIGZvY3VzSXRlbU9uSG92ZXIgPSB0cnVlLFxuICAgIG9wZW5PbkFycm93S2V5RG93biA9IHRydWUsXG4gICAgZGlzYWJsZWRJbmRpY2VzID0gdW5kZWZpbmVkLFxuICAgIG9yaWVudGF0aW9uID0gJ3ZlcnRpY2FsJyxcbiAgICBjb2xzID0gMSxcbiAgICBzY3JvbGxJdGVtSW50b1ZpZXcgPSB0cnVlLFxuICAgIHZpcnR1YWxJdGVtUmVmLFxuICAgIGl0ZW1TaXplcyxcbiAgICBkZW5zZSA9IGZhbHNlXG4gIH0gPSBwcm9wcztcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIGlmIChhbGxvd0VzY2FwZSkge1xuICAgICAgaWYgKCFsb29wKSB7XG4gICAgICAgIHdhcm4oJ2B1c2VMaXN0TmF2aWdhdGlvbmAgbG9vcGluZyBtdXN0IGJlIGVuYWJsZWQgdG8gYWxsb3cgZXNjYXBpbmcuJyk7XG4gICAgICB9XG4gICAgICBpZiAoIXZpcnR1YWwpIHtcbiAgICAgICAgd2FybignYHVzZUxpc3ROYXZpZ2F0aW9uYCBtdXN0IGJlIHZpcnR1YWwgdG8gYWxsb3cgZXNjYXBpbmcuJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChvcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyAmJiBjb2xzID4gMSkge1xuICAgICAgd2FybignSW4gZ3JpZCBsaXN0IG5hdmlnYXRpb24gbW9kZSAoYGNvbHNgID4gMSksIHRoZSBgb3JpZW50YXRpb25gIHNob3VsZCcsICdiZSBlaXRoZXIgXCJob3Jpem9udGFsXCIgb3IgXCJib3RoXCIuJyk7XG4gICAgfVxuICB9XG4gIGNvbnN0IHBhcmVudElkID0gdXNlRmxvYXRpbmdQYXJlbnROb2RlSWQoKTtcbiAgY29uc3QgdHJlZSA9IHVzZUZsb2F0aW5nVHJlZSgpO1xuICBjb25zdCBvbk5hdmlnYXRlID0gdXNlRWZmZWN0RXZlbnQodW5zdGFibGVfb25OYXZpZ2F0ZSk7XG4gIGNvbnN0IGZvY3VzSXRlbU9uT3BlblJlZiA9IFJlYWN0LnVzZVJlZihmb2N1c0l0ZW1Pbk9wZW4pO1xuICBjb25zdCBpbmRleFJlZiA9IFJlYWN0LnVzZVJlZihzZWxlY3RlZEluZGV4ICE9IG51bGwgPyBzZWxlY3RlZEluZGV4IDogLTEpO1xuICBjb25zdCBrZXlSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGNvbnN0IGlzUG9pbnRlck1vZGFsaXR5UmVmID0gUmVhY3QudXNlUmVmKHRydWUpO1xuICBjb25zdCBwcmV2aW91c09uTmF2aWdhdGVSZWYgPSBSZWFjdC51c2VSZWYob25OYXZpZ2F0ZSk7XG4gIGNvbnN0IHByZXZpb3VzTW91bnRlZFJlZiA9IFJlYWN0LnVzZVJlZighIWVsZW1lbnRzLmZsb2F0aW5nKTtcbiAgY29uc3QgcHJldmlvdXNPcGVuUmVmID0gUmVhY3QudXNlUmVmKG9wZW4pO1xuICBjb25zdCBmb3JjZVN5bmNGb2N1cyA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IGZvcmNlU2Nyb2xsSW50b1ZpZXdSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICBjb25zdCBkaXNhYmxlZEluZGljZXNSZWYgPSB1c2VMYXRlc3RSZWYoZGlzYWJsZWRJbmRpY2VzKTtcbiAgY29uc3QgbGF0ZXN0T3BlblJlZiA9IHVzZUxhdGVzdFJlZihvcGVuKTtcbiAgY29uc3Qgc2Nyb2xsSXRlbUludG9WaWV3UmVmID0gdXNlTGF0ZXN0UmVmKHNjcm9sbEl0ZW1JbnRvVmlldyk7XG4gIGNvbnN0IGZsb2F0aW5nUmVmID0gdXNlTGF0ZXN0UmVmKGVsZW1lbnRzLmZsb2F0aW5nKTtcbiAgY29uc3Qgc2VsZWN0ZWRJbmRleFJlZiA9IHVzZUxhdGVzdFJlZihzZWxlY3RlZEluZGV4KTtcbiAgY29uc3QgW2FjdGl2ZUlkLCBzZXRBY3RpdmVJZF0gPSBSZWFjdC51c2VTdGF0ZSgpO1xuICBjb25zdCBbdmlydHVhbElkLCBzZXRWaXJ0dWFsSWRdID0gUmVhY3QudXNlU3RhdGUoKTtcbiAgY29uc3QgZm9jdXNJdGVtID0gdXNlRWZmZWN0RXZlbnQoZnVuY3Rpb24gKGxpc3RSZWYsIGluZGV4UmVmLCBmb3JjZVNjcm9sbEludG9WaWV3KSB7XG4gICAgaWYgKGZvcmNlU2Nyb2xsSW50b1ZpZXcgPT09IHZvaWQgMCkge1xuICAgICAgZm9yY2VTY3JvbGxJbnRvVmlldyA9IGZhbHNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBydW5Gb2N1cyhpdGVtKSB7XG4gICAgICBpZiAodmlydHVhbCkge1xuICAgICAgICBzZXRBY3RpdmVJZChpdGVtLmlkKTtcbiAgICAgICAgdHJlZSA9PSBudWxsIHx8IHRyZWUuZXZlbnRzLmVtaXQoJ3ZpcnR1YWxmb2N1cycsIGl0ZW0pO1xuICAgICAgICBpZiAodmlydHVhbEl0ZW1SZWYpIHtcbiAgICAgICAgICB2aXJ0dWFsSXRlbVJlZi5jdXJyZW50ID0gaXRlbTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW5xdWV1ZUZvY3VzKGl0ZW0sIHtcbiAgICAgICAgICBwcmV2ZW50U2Nyb2xsOiB0cnVlLFxuICAgICAgICAgIC8vIE1hYyBTYWZhcmkgZG9lcyBub3QgbW92ZSB0aGUgdmlydHVhbCBjdXJzb3IgdW5sZXNzIHRoZSBmb2N1cyBjYWxsXG4gICAgICAgICAgLy8gaXMgc3luYy4gSG93ZXZlciwgZm9yIHRoZSB2ZXJ5IGZpcnN0IGZvY3VzIGNhbGwsIHdlIG5lZWQgdG8gd2FpdFxuICAgICAgICAgIC8vIGZvciB0aGUgcG9zaXRpb24gdG8gYmUgcmVhZHkgaW4gb3JkZXIgdG8gcHJldmVudCB1bndhbnRlZFxuICAgICAgICAgIC8vIHNjcm9sbGluZy4gVGhpcyBtZWFucyB0aGUgdmlydHVhbCBjdXJzb3Igd2lsbCBub3QgbW92ZSB0byB0aGUgZmlyc3RcbiAgICAgICAgICAvLyBpdGVtIHdoZW4gZmlyc3Qgb3BlbmluZyB0aGUgZmxvYXRpbmcgZWxlbWVudCwgYnV0IHdpbGwgb25cbiAgICAgICAgICAvLyBzdWJzZXF1ZW50IGNhbGxzLiBgcHJldmVudFNjcm9sbGAgaXMgc3VwcG9ydGVkIGluIG1vZGVybiBTYWZhcmksXG4gICAgICAgICAgLy8gc28gd2UgY2FuIHVzZSB0aGF0IGluc3RlYWQuXG4gICAgICAgICAgLy8gaU9TIFNhZmFyaSBtdXN0IGJlIGFzeW5jIG9yIHRoZSBmaXJzdCBpdGVtIHdpbGwgbm90IGJlIGZvY3VzZWQuXG4gICAgICAgICAgc3luYzogaXNNYWMoKSAmJiBpc1NhZmFyaSgpID8gaXNQcmV2ZW50U2Nyb2xsU3VwcG9ydGVkIHx8IGZvcmNlU3luY0ZvY3VzLmN1cnJlbnQgOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgaW5pdGlhbEl0ZW0gPSBsaXN0UmVmLmN1cnJlbnRbaW5kZXhSZWYuY3VycmVudF07XG4gICAgaWYgKGluaXRpYWxJdGVtKSB7XG4gICAgICBydW5Gb2N1cyhpbml0aWFsSXRlbSk7XG4gICAgfVxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICBjb25zdCB3YWl0ZWRJdGVtID0gbGlzdFJlZi5jdXJyZW50W2luZGV4UmVmLmN1cnJlbnRdIHx8IGluaXRpYWxJdGVtO1xuICAgICAgaWYgKCF3YWl0ZWRJdGVtKSByZXR1cm47XG4gICAgICBpZiAoIWluaXRpYWxJdGVtKSB7XG4gICAgICAgIHJ1bkZvY3VzKHdhaXRlZEl0ZW0pO1xuICAgICAgfVxuICAgICAgY29uc3Qgc2Nyb2xsSW50b1ZpZXdPcHRpb25zID0gc2Nyb2xsSXRlbUludG9WaWV3UmVmLmN1cnJlbnQ7XG4gICAgICBjb25zdCBzaG91bGRTY3JvbGxJbnRvVmlldyA9IHNjcm9sbEludG9WaWV3T3B0aW9ucyAmJiBpdGVtICYmIChmb3JjZVNjcm9sbEludG9WaWV3IHx8ICFpc1BvaW50ZXJNb2RhbGl0eVJlZi5jdXJyZW50KTtcbiAgICAgIGlmIChzaG91bGRTY3JvbGxJbnRvVmlldykge1xuICAgICAgICAvLyBKU0RPTSBkb2Vzbid0IHN1cHBvcnQgYC5zY3JvbGxJbnRvVmlldygpYCBidXQgaXQncyB3aWRlbHkgc3VwcG9ydGVkXG4gICAgICAgIC8vIGJ5IGFsbCBicm93c2Vycy5cbiAgICAgICAgd2FpdGVkSXRlbS5zY3JvbGxJbnRvVmlldyA9PSBudWxsIHx8IHdhaXRlZEl0ZW0uc2Nyb2xsSW50b1ZpZXcodHlwZW9mIHNjcm9sbEludG9WaWV3T3B0aW9ucyA9PT0gJ2Jvb2xlYW4nID8ge1xuICAgICAgICAgIGJsb2NrOiAnbmVhcmVzdCcsXG4gICAgICAgICAgaW5saW5lOiAnbmVhcmVzdCdcbiAgICAgICAgfSA6IHNjcm9sbEludG9WaWV3T3B0aW9ucyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuICBpbmRleCgoKSA9PiB7XG4gICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykuZm9jdXMoe1xuICAgICAgZ2V0IHByZXZlbnRTY3JvbGwoKSB7XG4gICAgICAgIGlzUHJldmVudFNjcm9sbFN1cHBvcnRlZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgW10pO1xuXG4gIC8vIFN5bmMgYHNlbGVjdGVkSW5kZXhgIHRvIGJlIHRoZSBgYWN0aXZlSW5kZXhgIHVwb24gb3BlbmluZyB0aGUgZmxvYXRpbmdcbiAgLy8gZWxlbWVudC4gQWxzbywgcmVzZXQgYGFjdGl2ZUluZGV4YCB1cG9uIGNsb3NpbmcgdGhlIGZsb2F0aW5nIGVsZW1lbnQuXG4gIGluZGV4KCgpID0+IHtcbiAgICBpZiAoIWVuYWJsZWQpIHJldHVybjtcbiAgICBpZiAob3BlbiAmJiBlbGVtZW50cy5mbG9hdGluZykge1xuICAgICAgaWYgKGZvY3VzSXRlbU9uT3BlblJlZi5jdXJyZW50ICYmIHNlbGVjdGVkSW5kZXggIT0gbnVsbCkge1xuICAgICAgICAvLyBSZWdhcmRsZXNzIG9mIHRoZSBwb2ludGVyIG1vZGFsaXR5LCB3ZSB3YW50IHRvIGVuc3VyZSB0aGUgc2VsZWN0ZWRcbiAgICAgICAgLy8gaXRlbSBjb21lcyBpbnRvIHZpZXcgd2hlbiB0aGUgZmxvYXRpbmcgZWxlbWVudCBpcyBvcGVuZWQuXG4gICAgICAgIGZvcmNlU2Nyb2xsSW50b1ZpZXdSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIGluZGV4UmVmLmN1cnJlbnQgPSBzZWxlY3RlZEluZGV4O1xuICAgICAgICBvbk5hdmlnYXRlKHNlbGVjdGVkSW5kZXgpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocHJldmlvdXNNb3VudGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgIC8vIFNpbmNlIHRoZSB1c2VyIGNhbiBzcGVjaWZ5IGBvbk5hdmlnYXRlYCBjb25kaXRpb25hbGx5XG4gICAgICAvLyAob25OYXZpZ2F0ZTogb3BlbiA/IHNldEFjdGl2ZUluZGV4IDogc2V0U2VsZWN0ZWRJbmRleCksXG4gICAgICAvLyB3ZSBzdG9yZSBhbmQgY2FsbCB0aGUgcHJldmlvdXMgZnVuY3Rpb24uXG4gICAgICBpbmRleFJlZi5jdXJyZW50ID0gLTE7XG4gICAgICBwcmV2aW91c09uTmF2aWdhdGVSZWYuY3VycmVudChudWxsKTtcbiAgICB9XG4gIH0sIFtlbmFibGVkLCBvcGVuLCBlbGVtZW50cy5mbG9hdGluZywgc2VsZWN0ZWRJbmRleCwgb25OYXZpZ2F0ZV0pO1xuXG4gIC8vIFN5bmMgYGFjdGl2ZUluZGV4YCB0byBiZSB0aGUgZm9jdXNlZCBpdGVtIHdoaWxlIHRoZSBmbG9hdGluZyBlbGVtZW50IGlzXG4gIC8vIG9wZW4uXG4gIGluZGV4KCgpID0+IHtcbiAgICBpZiAoIWVuYWJsZWQpIHJldHVybjtcbiAgICBpZiAob3BlbiAmJiBlbGVtZW50cy5mbG9hdGluZykge1xuICAgICAgaWYgKGFjdGl2ZUluZGV4ID09IG51bGwpIHtcbiAgICAgICAgZm9yY2VTeW5jRm9jdXMuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleFJlZi5jdXJyZW50ICE9IG51bGwpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXNldCB3aGlsZSB0aGUgZmxvYXRpbmcgZWxlbWVudCB3YXMgb3BlbiAoZS5nLiB0aGUgbGlzdCBjaGFuZ2VkKS5cbiAgICAgICAgaWYgKHByZXZpb3VzTW91bnRlZFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgaW5kZXhSZWYuY3VycmVudCA9IC0xO1xuICAgICAgICAgIGZvY3VzSXRlbShsaXN0UmVmLCBpbmRleFJlZik7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbml0aWFsIHN5bmMuXG4gICAgICAgIGlmICgoIXByZXZpb3VzT3BlblJlZi5jdXJyZW50IHx8ICFwcmV2aW91c01vdW50ZWRSZWYuY3VycmVudCkgJiYgZm9jdXNJdGVtT25PcGVuUmVmLmN1cnJlbnQgJiYgKGtleVJlZi5jdXJyZW50ICE9IG51bGwgfHwgZm9jdXNJdGVtT25PcGVuUmVmLmN1cnJlbnQgPT09IHRydWUgJiYga2V5UmVmLmN1cnJlbnQgPT0gbnVsbCkpIHtcbiAgICAgICAgICBsZXQgcnVucyA9IDA7XG4gICAgICAgICAgY29uc3Qgd2FpdEZvckxpc3RQb3B1bGF0ZWQgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAobGlzdFJlZi5jdXJyZW50WzBdID09IG51bGwpIHtcbiAgICAgICAgICAgICAgLy8gQXZvaWQgbGV0dGluZyB0aGUgYnJvd3NlciBwYWludCBpZiBwb3NzaWJsZSBvbiB0aGUgZmlyc3QgdHJ5LFxuICAgICAgICAgICAgICAvLyBvdGhlcndpc2UgdXNlIHJBRi4gRG9uJ3QgdHJ5IG1vcmUgdGhhbiB0d2ljZSwgc2luY2Ugc29tZXRoaW5nXG4gICAgICAgICAgICAgIC8vIGlzIHdyb25nIG90aGVyd2lzZS5cbiAgICAgICAgICAgICAgaWYgKHJ1bnMgPCAyKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2NoZWR1bGVyID0gcnVucyA/IHJlcXVlc3RBbmltYXRpb25GcmFtZSA6IHF1ZXVlTWljcm90YXNrO1xuICAgICAgICAgICAgICAgIHNjaGVkdWxlcih3YWl0Rm9yTGlzdFBvcHVsYXRlZCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcnVucysrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaW5kZXhSZWYuY3VycmVudCA9IGtleVJlZi5jdXJyZW50ID09IG51bGwgfHwgaXNNYWluT3JpZW50YXRpb25Ub0VuZEtleShrZXlSZWYuY3VycmVudCwgb3JpZW50YXRpb24sIHJ0bCkgfHwgbmVzdGVkID8gZ2V0TWluSW5kZXgobGlzdFJlZiwgZGlzYWJsZWRJbmRpY2VzUmVmLmN1cnJlbnQpIDogZ2V0TWF4SW5kZXgobGlzdFJlZiwgZGlzYWJsZWRJbmRpY2VzUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgICBrZXlSZWYuY3VycmVudCA9IG51bGw7XG4gICAgICAgICAgICAgIG9uTmF2aWdhdGUoaW5kZXhSZWYuY3VycmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICB3YWl0Rm9yTGlzdFBvcHVsYXRlZCgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKCFpc0luZGV4T3V0T2ZCb3VuZHMobGlzdFJlZiwgYWN0aXZlSW5kZXgpKSB7XG4gICAgICAgIGluZGV4UmVmLmN1cnJlbnQgPSBhY3RpdmVJbmRleDtcbiAgICAgICAgZm9jdXNJdGVtKGxpc3RSZWYsIGluZGV4UmVmLCBmb3JjZVNjcm9sbEludG9WaWV3UmVmLmN1cnJlbnQpO1xuICAgICAgICBmb3JjZVNjcm9sbEludG9WaWV3UmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtlbmFibGVkLCBvcGVuLCBlbGVtZW50cy5mbG9hdGluZywgYWN0aXZlSW5kZXgsIHNlbGVjdGVkSW5kZXhSZWYsIG5lc3RlZCwgbGlzdFJlZiwgb3JpZW50YXRpb24sIHJ0bCwgb25OYXZpZ2F0ZSwgZm9jdXNJdGVtLCBkaXNhYmxlZEluZGljZXNSZWZdKTtcblxuICAvLyBFbnN1cmUgdGhlIHBhcmVudCBmbG9hdGluZyBlbGVtZW50IGhhcyBmb2N1cyB3aGVuIGEgbmVzdGVkIGNoaWxkIGNsb3Nlc1xuICAvLyB0byBhbGxvdyBhcnJvdyBrZXkgbmF2aWdhdGlvbiB0byB3b3JrIGFmdGVyIHRoZSBwb2ludGVyIGxlYXZlcyB0aGUgY2hpbGQuXG4gIGluZGV4KCgpID0+IHtcbiAgICB2YXIgX25vZGVzJGZpbmQ7XG4gICAgaWYgKCFlbmFibGVkIHx8IGVsZW1lbnRzLmZsb2F0aW5nIHx8ICF0cmVlIHx8IHZpcnR1YWwgfHwgIXByZXZpb3VzTW91bnRlZFJlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5vZGVzID0gdHJlZS5ub2Rlc1JlZi5jdXJyZW50O1xuICAgIGNvbnN0IHBhcmVudCA9IChfbm9kZXMkZmluZCA9IG5vZGVzLmZpbmQobm9kZSA9PiBub2RlLmlkID09PSBwYXJlbnRJZCkpID09IG51bGwgfHwgKF9ub2RlcyRmaW5kID0gX25vZGVzJGZpbmQuY29udGV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9ub2RlcyRmaW5kLmVsZW1lbnRzLmZsb2F0aW5nO1xuICAgIGNvbnN0IGFjdGl2ZUVsID0gYWN0aXZlRWxlbWVudChnZXREb2N1bWVudChlbGVtZW50cy5mbG9hdGluZykpO1xuICAgIGNvbnN0IHRyZWVDb250YWluc0FjdGl2ZUVsID0gbm9kZXMuc29tZShub2RlID0+IG5vZGUuY29udGV4dCAmJiBjb250YWlucyhub2RlLmNvbnRleHQuZWxlbWVudHMuZmxvYXRpbmcsIGFjdGl2ZUVsKSk7XG4gICAgaWYgKHBhcmVudCAmJiAhdHJlZUNvbnRhaW5zQWN0aXZlRWwgJiYgaXNQb2ludGVyTW9kYWxpdHlSZWYuY3VycmVudCkge1xuICAgICAgcGFyZW50LmZvY3VzKHtcbiAgICAgICAgcHJldmVudFNjcm9sbDogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbZW5hYmxlZCwgZWxlbWVudHMuZmxvYXRpbmcsIHRyZWUsIHBhcmVudElkLCB2aXJ0dWFsXSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBpZiAoIWVuYWJsZWQpIHJldHVybjtcbiAgICBpZiAoIXRyZWUpIHJldHVybjtcbiAgICBpZiAoIXZpcnR1YWwpIHJldHVybjtcbiAgICBpZiAocGFyZW50SWQpIHJldHVybjtcbiAgICBmdW5jdGlvbiBoYW5kbGVWaXJ0dWFsRm9jdXMoaXRlbSkge1xuICAgICAgc2V0VmlydHVhbElkKGl0ZW0uaWQpO1xuICAgICAgaWYgKHZpcnR1YWxJdGVtUmVmKSB7XG4gICAgICAgIHZpcnR1YWxJdGVtUmVmLmN1cnJlbnQgPSBpdGVtO1xuICAgICAgfVxuICAgIH1cbiAgICB0cmVlLmV2ZW50cy5vbigndmlydHVhbGZvY3VzJywgaGFuZGxlVmlydHVhbEZvY3VzKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgdHJlZS5ldmVudHMub2ZmKCd2aXJ0dWFsZm9jdXMnLCBoYW5kbGVWaXJ0dWFsRm9jdXMpO1xuICAgIH07XG4gIH0sIFtlbmFibGVkLCB0cmVlLCB2aXJ0dWFsLCBwYXJlbnRJZCwgdmlydHVhbEl0ZW1SZWZdKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIHByZXZpb3VzT25OYXZpZ2F0ZVJlZi5jdXJyZW50ID0gb25OYXZpZ2F0ZTtcbiAgICBwcmV2aW91c01vdW50ZWRSZWYuY3VycmVudCA9ICEhZWxlbWVudHMuZmxvYXRpbmc7XG4gIH0pO1xuICBpbmRleCgoKSA9PiB7XG4gICAgaWYgKCFvcGVuKSB7XG4gICAgICBrZXlSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfVxuICB9LCBbb3Blbl0pO1xuICBpbmRleCgoKSA9PiB7XG4gICAgcHJldmlvdXNPcGVuUmVmLmN1cnJlbnQgPSBvcGVuO1xuICB9LCBbb3Blbl0pO1xuICBjb25zdCBoYXNBY3RpdmVJbmRleCA9IGFjdGl2ZUluZGV4ICE9IG51bGw7XG4gIGNvbnN0IGl0ZW0gPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICBmdW5jdGlvbiBzeW5jQ3VycmVudFRhcmdldChjdXJyZW50VGFyZ2V0KSB7XG4gICAgICBpZiAoIW9wZW4pIHJldHVybjtcbiAgICAgIGNvbnN0IGluZGV4ID0gbGlzdFJlZi5jdXJyZW50LmluZGV4T2YoY3VycmVudFRhcmdldCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIG9uTmF2aWdhdGUoaW5kZXgpO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgIG9uRm9jdXMoX3JlZikge1xuICAgICAgICBsZXQge1xuICAgICAgICAgIGN1cnJlbnRUYXJnZXRcbiAgICAgICAgfSA9IF9yZWY7XG4gICAgICAgIHN5bmNDdXJyZW50VGFyZ2V0KGN1cnJlbnRUYXJnZXQpO1xuICAgICAgfSxcbiAgICAgIG9uQ2xpY2s6IF9yZWYyID0+IHtcbiAgICAgICAgbGV0IHtcbiAgICAgICAgICBjdXJyZW50VGFyZ2V0XG4gICAgICAgIH0gPSBfcmVmMjtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRUYXJnZXQuZm9jdXMoe1xuICAgICAgICAgIHByZXZlbnRTY3JvbGw6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgLy8gU2FmYXJpXG4gICAgICAuLi4oZm9jdXNJdGVtT25Ib3ZlciAmJiB7XG4gICAgICAgIG9uTW91c2VNb3ZlKF9yZWYzKSB7XG4gICAgICAgICAgbGV0IHtcbiAgICAgICAgICAgIGN1cnJlbnRUYXJnZXRcbiAgICAgICAgICB9ID0gX3JlZjM7XG4gICAgICAgICAgc3luY0N1cnJlbnRUYXJnZXQoY3VycmVudFRhcmdldCk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uUG9pbnRlckxlYXZlKF9yZWY0KSB7XG4gICAgICAgICAgbGV0IHtcbiAgICAgICAgICAgIHBvaW50ZXJUeXBlXG4gICAgICAgICAgfSA9IF9yZWY0O1xuICAgICAgICAgIGlmICghaXNQb2ludGVyTW9kYWxpdHlSZWYuY3VycmVudCB8fCBwb2ludGVyVHlwZSA9PT0gJ3RvdWNoJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpbmRleFJlZi5jdXJyZW50ID0gLTE7XG4gICAgICAgICAgZm9jdXNJdGVtKGxpc3RSZWYsIGluZGV4UmVmKTtcbiAgICAgICAgICBvbk5hdmlnYXRlKG51bGwpO1xuICAgICAgICAgIGlmICghdmlydHVhbCkge1xuICAgICAgICAgICAgZW5xdWV1ZUZvY3VzKGZsb2F0aW5nUmVmLmN1cnJlbnQsIHtcbiAgICAgICAgICAgICAgcHJldmVudFNjcm9sbDogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH07XG4gICAgcmV0dXJuIHByb3BzO1xuICB9LCBbb3BlbiwgZmxvYXRpbmdSZWYsIGZvY3VzSXRlbSwgZm9jdXNJdGVtT25Ib3ZlciwgbGlzdFJlZiwgb25OYXZpZ2F0ZSwgdmlydHVhbF0pO1xuICBjb25zdCBjb21tb25PbktleURvd24gPSB1c2VFZmZlY3RFdmVudChldmVudCA9PiB7XG4gICAgaXNQb2ludGVyTW9kYWxpdHlSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgIGZvcmNlU3luY0ZvY3VzLmN1cnJlbnQgPSB0cnVlO1xuXG4gICAgLy8gSWYgdGhlIGZsb2F0aW5nIGVsZW1lbnQgaXMgYW5pbWF0aW5nIG91dCwgaWdub3JlIG5hdmlnYXRpb24uIE90aGVyd2lzZSxcbiAgICAvLyB0aGUgYGFjdGl2ZUluZGV4YCBnZXRzIHNldCB0byAwIGRlc3BpdGUgbm90IGJlaW5nIG9wZW4gc28gdGhlIG5leHQgdGltZVxuICAgIC8vIHRoZSB1c2VyIEFycm93RG93bnMsIHRoZSBmaXJzdCBpdGVtIHdvbid0IGJlIGZvY3VzZWQuXG4gICAgaWYgKCFsYXRlc3RPcGVuUmVmLmN1cnJlbnQgJiYgZXZlbnQuY3VycmVudFRhcmdldCA9PT0gZmxvYXRpbmdSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAobmVzdGVkICYmIGlzQ3Jvc3NPcmllbnRhdGlvbkNsb3NlS2V5KGV2ZW50LmtleSwgb3JpZW50YXRpb24sIHJ0bCkpIHtcbiAgICAgIHN0b3BFdmVudChldmVudCk7XG4gICAgICBvbk9wZW5DaGFuZ2UoZmFsc2UsIGV2ZW50Lm5hdGl2ZUV2ZW50LCAnbGlzdC1uYXZpZ2F0aW9uJyk7XG4gICAgICBpZiAoaXNIVE1MRWxlbWVudChlbGVtZW50cy5kb21SZWZlcmVuY2UpICYmICF2aXJ0dWFsKSB7XG4gICAgICAgIGVsZW1lbnRzLmRvbVJlZmVyZW5jZS5mb2N1cygpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSBpbmRleFJlZi5jdXJyZW50O1xuICAgIGNvbnN0IG1pbkluZGV4ID0gZ2V0TWluSW5kZXgobGlzdFJlZiwgZGlzYWJsZWRJbmRpY2VzKTtcbiAgICBjb25zdCBtYXhJbmRleCA9IGdldE1heEluZGV4KGxpc3RSZWYsIGRpc2FibGVkSW5kaWNlcyk7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0hvbWUnKSB7XG4gICAgICBzdG9wRXZlbnQoZXZlbnQpO1xuICAgICAgaW5kZXhSZWYuY3VycmVudCA9IG1pbkluZGV4O1xuICAgICAgb25OYXZpZ2F0ZShpbmRleFJlZi5jdXJyZW50KTtcbiAgICB9XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VuZCcpIHtcbiAgICAgIHN0b3BFdmVudChldmVudCk7XG4gICAgICBpbmRleFJlZi5jdXJyZW50ID0gbWF4SW5kZXg7XG4gICAgICBvbk5hdmlnYXRlKGluZGV4UmVmLmN1cnJlbnQpO1xuICAgIH1cblxuICAgIC8vIEdyaWQgbmF2aWdhdGlvbi5cbiAgICBpZiAoY29scyA+IDEpIHtcbiAgICAgIGNvbnN0IHNpemVzID0gaXRlbVNpemVzIHx8IEFycmF5LmZyb20oe1xuICAgICAgICBsZW5ndGg6IGxpc3RSZWYuY3VycmVudC5sZW5ndGhcbiAgICAgIH0sICgpID0+ICh7XG4gICAgICAgIHdpZHRoOiAxLFxuICAgICAgICBoZWlnaHQ6IDFcbiAgICAgIH0pKTtcbiAgICAgIC8vIFRvIGNhbGN1bGF0ZSBtb3ZlbWVudHMgb24gdGhlIGdyaWQsIHdlIHVzZSBoeXBvdGhldGljYWwgY2VsbCBpbmRpY2VzXG4gICAgICAvLyBhcyBpZiBldmVyeSBpdGVtIHdhcyAxeDEsIHRoZW4gY29udmVydCBiYWNrIHRvIHJlYWwgaW5kaWNlcy5cbiAgICAgIGNvbnN0IGNlbGxNYXAgPSBidWlsZENlbGxNYXAoc2l6ZXMsIGNvbHMsIGRlbnNlKTtcbiAgICAgIGNvbnN0IG1pbkdyaWRJbmRleCA9IGNlbGxNYXAuZmluZEluZGV4KGluZGV4ID0+IGluZGV4ICE9IG51bGwgJiYgIWlzRGlzYWJsZWQobGlzdFJlZi5jdXJyZW50LCBpbmRleCwgZGlzYWJsZWRJbmRpY2VzKSk7XG4gICAgICAvLyBsYXN0IGVuYWJsZWQgaW5kZXhcbiAgICAgIGNvbnN0IG1heEdyaWRJbmRleCA9IGNlbGxNYXAucmVkdWNlKChmb3VuZEluZGV4LCBpbmRleCwgY2VsbEluZGV4KSA9PiBpbmRleCAhPSBudWxsICYmICFpc0Rpc2FibGVkKGxpc3RSZWYuY3VycmVudCwgaW5kZXgsIGRpc2FibGVkSW5kaWNlcykgPyBjZWxsSW5kZXggOiBmb3VuZEluZGV4LCAtMSk7XG4gICAgICBpbmRleFJlZi5jdXJyZW50ID0gY2VsbE1hcFtnZXRHcmlkTmF2aWdhdGVkSW5kZXgoe1xuICAgICAgICBjdXJyZW50OiBjZWxsTWFwLm1hcChpdGVtSW5kZXggPT4gaXRlbUluZGV4ICE9IG51bGwgPyBsaXN0UmVmLmN1cnJlbnRbaXRlbUluZGV4XSA6IG51bGwpXG4gICAgICB9LCB7XG4gICAgICAgIGV2ZW50LFxuICAgICAgICBvcmllbnRhdGlvbixcbiAgICAgICAgbG9vcCxcbiAgICAgICAgY29scyxcbiAgICAgICAgLy8gdHJlYXQgdW5kZWZpbmVkIChlbXB0eSBncmlkIHNwYWNlcykgYXMgZGlzYWJsZWQgaW5kaWNlcyBzbyB3ZVxuICAgICAgICAvLyBkb24ndCBlbmQgdXAgaW4gdGhlbVxuICAgICAgICBkaXNhYmxlZEluZGljZXM6IGdldENlbGxJbmRpY2VzKFsuLi4oZGlzYWJsZWRJbmRpY2VzIHx8IGxpc3RSZWYuY3VycmVudC5tYXAoKF8sIGluZGV4KSA9PiBpc0Rpc2FibGVkKGxpc3RSZWYuY3VycmVudCwgaW5kZXgpID8gaW5kZXggOiB1bmRlZmluZWQpKSwgdW5kZWZpbmVkXSwgY2VsbE1hcCksXG4gICAgICAgIG1pbkluZGV4OiBtaW5HcmlkSW5kZXgsXG4gICAgICAgIG1heEluZGV4OiBtYXhHcmlkSW5kZXgsXG4gICAgICAgIHByZXZJbmRleDogZ2V0Q2VsbEluZGV4T2ZDb3JuZXIoaW5kZXhSZWYuY3VycmVudCA+IG1heEluZGV4ID8gbWluSW5kZXggOiBpbmRleFJlZi5jdXJyZW50LCBzaXplcywgY2VsbE1hcCwgY29scyxcbiAgICAgICAgLy8gdXNlIGEgY29ybmVyIG1hdGNoaW5nIHRoZSBlZGdlIGNsb3Nlc3QgdG8gdGhlIGRpcmVjdGlvblxuICAgICAgICAvLyB3ZSdyZSBtb3ZpbmcgaW4gc28gd2UgZG9uJ3QgZW5kIHVwIGluIHRoZSBzYW1lIGl0ZW0uIFByZWZlclxuICAgICAgICAvLyB0b3AvbGVmdCBvdmVyIGJvdHRvbS9yaWdodC5cbiAgICAgICAgZXZlbnQua2V5ID09PSBBUlJPV19ET1dOID8gJ2JsJyA6IGV2ZW50LmtleSA9PT0gQVJST1dfUklHSFQgPyAndHInIDogJ3RsJyksXG4gICAgICAgIHN0b3BFdmVudDogdHJ1ZVxuICAgICAgfSldOyAvLyBuYXZpZ2F0ZWQgY2VsbCB3aWxsIG5ldmVyIGJlIG51bGxpc2hcblxuICAgICAgb25OYXZpZ2F0ZShpbmRleFJlZi5jdXJyZW50KTtcbiAgICAgIGlmIChvcmllbnRhdGlvbiA9PT0gJ2JvdGgnKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGlzTWFpbk9yaWVudGF0aW9uS2V5KGV2ZW50LmtleSwgb3JpZW50YXRpb24pKSB7XG4gICAgICBzdG9wRXZlbnQoZXZlbnQpO1xuXG4gICAgICAvLyBSZXNldCB0aGUgaW5kZXggaWYgbm8gaXRlbSBpcyBmb2N1c2VkLlxuICAgICAgaWYgKG9wZW4gJiYgIXZpcnR1YWwgJiYgYWN0aXZlRWxlbWVudChldmVudC5jdXJyZW50VGFyZ2V0Lm93bmVyRG9jdW1lbnQpID09PSBldmVudC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIGluZGV4UmVmLmN1cnJlbnQgPSBpc01haW5PcmllbnRhdGlvblRvRW5kS2V5KGV2ZW50LmtleSwgb3JpZW50YXRpb24sIHJ0bCkgPyBtaW5JbmRleCA6IG1heEluZGV4O1xuICAgICAgICBvbk5hdmlnYXRlKGluZGV4UmVmLmN1cnJlbnQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoaXNNYWluT3JpZW50YXRpb25Ub0VuZEtleShldmVudC5rZXksIG9yaWVudGF0aW9uLCBydGwpKSB7XG4gICAgICAgIGlmIChsb29wKSB7XG4gICAgICAgICAgaW5kZXhSZWYuY3VycmVudCA9IGN1cnJlbnRJbmRleCA+PSBtYXhJbmRleCA/IGFsbG93RXNjYXBlICYmIGN1cnJlbnRJbmRleCAhPT0gbGlzdFJlZi5jdXJyZW50Lmxlbmd0aCA/IC0xIDogbWluSW5kZXggOiBmaW5kTm9uRGlzYWJsZWRJbmRleChsaXN0UmVmLCB7XG4gICAgICAgICAgICBzdGFydGluZ0luZGV4OiBjdXJyZW50SW5kZXgsXG4gICAgICAgICAgICBkaXNhYmxlZEluZGljZXNcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpbmRleFJlZi5jdXJyZW50ID0gTWF0aC5taW4obWF4SW5kZXgsIGZpbmROb25EaXNhYmxlZEluZGV4KGxpc3RSZWYsIHtcbiAgICAgICAgICAgIHN0YXJ0aW5nSW5kZXg6IGN1cnJlbnRJbmRleCxcbiAgICAgICAgICAgIGRpc2FibGVkSW5kaWNlc1xuICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGxvb3ApIHtcbiAgICAgICAgICBpbmRleFJlZi5jdXJyZW50ID0gY3VycmVudEluZGV4IDw9IG1pbkluZGV4ID8gYWxsb3dFc2NhcGUgJiYgY3VycmVudEluZGV4ICE9PSAtMSA/IGxpc3RSZWYuY3VycmVudC5sZW5ndGggOiBtYXhJbmRleCA6IGZpbmROb25EaXNhYmxlZEluZGV4KGxpc3RSZWYsIHtcbiAgICAgICAgICAgIHN0YXJ0aW5nSW5kZXg6IGN1cnJlbnRJbmRleCxcbiAgICAgICAgICAgIGRlY3JlbWVudDogdHJ1ZSxcbiAgICAgICAgICAgIGRpc2FibGVkSW5kaWNlc1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGluZGV4UmVmLmN1cnJlbnQgPSBNYXRoLm1heChtaW5JbmRleCwgZmluZE5vbkRpc2FibGVkSW5kZXgobGlzdFJlZiwge1xuICAgICAgICAgICAgc3RhcnRpbmdJbmRleDogY3VycmVudEluZGV4LFxuICAgICAgICAgICAgZGVjcmVtZW50OiB0cnVlLFxuICAgICAgICAgICAgZGlzYWJsZWRJbmRpY2VzXG4gICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaXNJbmRleE91dE9mQm91bmRzKGxpc3RSZWYsIGluZGV4UmVmLmN1cnJlbnQpKSB7XG4gICAgICAgIG9uTmF2aWdhdGUobnVsbCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvbk5hdmlnYXRlKGluZGV4UmVmLmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIGNvbnN0IGFyaWFBY3RpdmVEZXNjZW5kYW50UHJvcCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiB2aXJ0dWFsICYmIG9wZW4gJiYgaGFzQWN0aXZlSW5kZXggJiYge1xuICAgICAgJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCc6IHZpcnR1YWxJZCB8fCBhY3RpdmVJZFxuICAgIH07XG4gIH0sIFt2aXJ0dWFsLCBvcGVuLCBoYXNBY3RpdmVJbmRleCwgdmlydHVhbElkLCBhY3RpdmVJZF0pO1xuICBjb25zdCBmbG9hdGluZyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAnYXJpYS1vcmllbnRhdGlvbic6IG9yaWVudGF0aW9uID09PSAnYm90aCcgPyB1bmRlZmluZWQgOiBvcmllbnRhdGlvbixcbiAgICAgIC4uLighaXNUeXBlYWJsZUNvbWJvYm94KGVsZW1lbnRzLmRvbVJlZmVyZW5jZSkgJiYgYXJpYUFjdGl2ZURlc2NlbmRhbnRQcm9wKSxcbiAgICAgIG9uS2V5RG93bjogY29tbW9uT25LZXlEb3duLFxuICAgICAgb25Qb2ludGVyTW92ZSgpIHtcbiAgICAgICAgaXNQb2ludGVyTW9kYWxpdHlSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW2FyaWFBY3RpdmVEZXNjZW5kYW50UHJvcCwgY29tbW9uT25LZXlEb3duLCBlbGVtZW50cy5kb21SZWZlcmVuY2UsIG9yaWVudGF0aW9uXSk7XG4gIGNvbnN0IHJlZmVyZW5jZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIGZ1bmN0aW9uIGNoZWNrVmlydHVhbE1vdXNlKGV2ZW50KSB7XG4gICAgICBpZiAoZm9jdXNJdGVtT25PcGVuID09PSAnYXV0bycgJiYgaXNWaXJ0dWFsQ2xpY2soZXZlbnQubmF0aXZlRXZlbnQpKSB7XG4gICAgICAgIGZvY3VzSXRlbU9uT3BlblJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tWaXJ0dWFsUG9pbnRlcihldmVudCkge1xuICAgICAgLy8gYHBvaW50ZXJkb3duYCBmaXJlcyBmaXJzdCwgcmVzZXQgdGhlIHN0YXRlIHRoZW4gcGVyZm9ybSB0aGUgY2hlY2tzLlxuICAgICAgZm9jdXNJdGVtT25PcGVuUmVmLmN1cnJlbnQgPSBmb2N1c0l0ZW1Pbk9wZW47XG4gICAgICBpZiAoZm9jdXNJdGVtT25PcGVuID09PSAnYXV0bycgJiYgaXNWaXJ0dWFsUG9pbnRlckV2ZW50KGV2ZW50Lm5hdGl2ZUV2ZW50KSkge1xuICAgICAgICBmb2N1c0l0ZW1Pbk9wZW5SZWYuY3VycmVudCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAuLi5hcmlhQWN0aXZlRGVzY2VuZGFudFByb3AsXG4gICAgICBvbktleURvd24oZXZlbnQpIHtcbiAgICAgICAgaXNQb2ludGVyTW9kYWxpdHlSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBpc0Fycm93S2V5ID0gZXZlbnQua2V5LmluZGV4T2YoJ0Fycm93JykgPT09IDA7XG4gICAgICAgIGNvbnN0IGlzQ3Jvc3NPcGVuS2V5ID0gaXNDcm9zc09yaWVudGF0aW9uT3BlbktleShldmVudC5rZXksIG9yaWVudGF0aW9uLCBydGwpO1xuICAgICAgICBjb25zdCBpc0Nyb3NzQ2xvc2VLZXkgPSBpc0Nyb3NzT3JpZW50YXRpb25DbG9zZUtleShldmVudC5rZXksIG9yaWVudGF0aW9uLCBydGwpO1xuICAgICAgICBjb25zdCBpc01haW5LZXkgPSBpc01haW5PcmllbnRhdGlvbktleShldmVudC5rZXksIG9yaWVudGF0aW9uKTtcbiAgICAgICAgY29uc3QgaXNOYXZpZ2F0aW9uS2V5ID0gKG5lc3RlZCA/IGlzQ3Jvc3NPcGVuS2V5IDogaXNNYWluS2V5KSB8fCBldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5LnRyaW0oKSA9PT0gJyc7XG4gICAgICAgIGlmICh2aXJ0dWFsICYmIG9wZW4pIHtcbiAgICAgICAgICBjb25zdCByb290Tm9kZSA9IHRyZWUgPT0gbnVsbCA/IHZvaWQgMCA6IHRyZWUubm9kZXNSZWYuY3VycmVudC5maW5kKG5vZGUgPT4gbm9kZS5wYXJlbnRJZCA9PSBudWxsKTtcbiAgICAgICAgICBjb25zdCBkZWVwZXN0Tm9kZSA9IHRyZWUgJiYgcm9vdE5vZGUgPyBnZXREZWVwZXN0Tm9kZSh0cmVlLm5vZGVzUmVmLmN1cnJlbnQsIHJvb3ROb2RlLmlkKSA6IG51bGw7XG4gICAgICAgICAgaWYgKGlzQXJyb3dLZXkgJiYgZGVlcGVzdE5vZGUgJiYgdmlydHVhbEl0ZW1SZWYpIHtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50T2JqZWN0ID0gbmV3IEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLCB7XG4gICAgICAgICAgICAgIGtleTogZXZlbnQua2V5LFxuICAgICAgICAgICAgICBidWJibGVzOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChpc0Nyb3NzT3BlbktleSB8fCBpc0Nyb3NzQ2xvc2VLZXkpIHtcbiAgICAgICAgICAgICAgdmFyIF9kZWVwZXN0Tm9kZSRjb250ZXh0LCBfZGVlcGVzdE5vZGUkY29udGV4dDI7XG4gICAgICAgICAgICAgIGNvbnN0IGlzQ3VycmVudFRhcmdldCA9ICgoX2RlZXBlc3ROb2RlJGNvbnRleHQgPSBkZWVwZXN0Tm9kZS5jb250ZXh0KSA9PSBudWxsID8gdm9pZCAwIDogX2RlZXBlc3ROb2RlJGNvbnRleHQuZWxlbWVudHMuZG9tUmVmZXJlbmNlKSA9PT0gZXZlbnQuY3VycmVudFRhcmdldDtcbiAgICAgICAgICAgICAgY29uc3QgZGlzcGF0Y2hJdGVtID0gaXNDcm9zc0Nsb3NlS2V5ICYmICFpc0N1cnJlbnRUYXJnZXQgPyAoX2RlZXBlc3ROb2RlJGNvbnRleHQyID0gZGVlcGVzdE5vZGUuY29udGV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9kZWVwZXN0Tm9kZSRjb250ZXh0Mi5lbGVtZW50cy5kb21SZWZlcmVuY2UgOiBpc0Nyb3NzT3BlbktleSA/IGxpc3RSZWYuY3VycmVudC5maW5kKGl0ZW0gPT4gKGl0ZW0gPT0gbnVsbCA/IHZvaWQgMCA6IGl0ZW0uaWQpID09PSBhY3RpdmVJZCkgOiBudWxsO1xuICAgICAgICAgICAgICBpZiAoZGlzcGF0Y2hJdGVtKSB7XG4gICAgICAgICAgICAgICAgc3RvcEV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBkaXNwYXRjaEl0ZW0uZGlzcGF0Y2hFdmVudChldmVudE9iamVjdCk7XG4gICAgICAgICAgICAgICAgc2V0VmlydHVhbElkKHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc01haW5LZXkgJiYgZGVlcGVzdE5vZGUuY29udGV4dCkge1xuICAgICAgICAgICAgICBpZiAoZGVlcGVzdE5vZGUuY29udGV4dC5vcGVuICYmIGRlZXBlc3ROb2RlLnBhcmVudElkICYmIGV2ZW50LmN1cnJlbnRUYXJnZXQgIT09IGRlZXBlc3ROb2RlLmNvbnRleHQuZWxlbWVudHMuZG9tUmVmZXJlbmNlKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9kZWVwZXN0Tm9kZSRjb250ZXh0JDtcbiAgICAgICAgICAgICAgICBzdG9wRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIChfZGVlcGVzdE5vZGUkY29udGV4dCQgPSBkZWVwZXN0Tm9kZS5jb250ZXh0LmVsZW1lbnRzLmRvbVJlZmVyZW5jZSkgPT0gbnVsbCB8fCBfZGVlcGVzdE5vZGUkY29udGV4dCQuZGlzcGF0Y2hFdmVudChldmVudE9iamVjdCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBjb21tb25PbktleURvd24oZXZlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgYSBmbG9hdGluZyBlbGVtZW50IHNob3VsZCBub3Qgb3BlbiBvbiBhcnJvdyBrZXkgZG93biwgYXZvaWRcbiAgICAgICAgLy8gc2V0dGluZyBgYWN0aXZlSW5kZXhgIHdoaWxlIGl0J3MgY2xvc2VkLlxuICAgICAgICBpZiAoIW9wZW4gJiYgIW9wZW5PbkFycm93S2V5RG93biAmJiBpc0Fycm93S2V5KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc05hdmlnYXRpb25LZXkpIHtcbiAgICAgICAgICBrZXlSZWYuY3VycmVudCA9IG5lc3RlZCAmJiBpc01haW5LZXkgPyBudWxsIDogZXZlbnQua2V5O1xuICAgICAgICB9XG4gICAgICAgIGlmIChuZXN0ZWQpIHtcbiAgICAgICAgICBpZiAoaXNDcm9zc09wZW5LZXkpIHtcbiAgICAgICAgICAgIHN0b3BFdmVudChldmVudCk7XG4gICAgICAgICAgICBpZiAob3Blbikge1xuICAgICAgICAgICAgICBpbmRleFJlZi5jdXJyZW50ID0gZ2V0TWluSW5kZXgobGlzdFJlZiwgZGlzYWJsZWRJbmRpY2VzUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgICBvbk5hdmlnYXRlKGluZGV4UmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgb25PcGVuQ2hhbmdlKHRydWUsIGV2ZW50Lm5hdGl2ZUV2ZW50LCAnbGlzdC1uYXZpZ2F0aW9uJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNNYWluS2V5KSB7XG4gICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgICAgaW5kZXhSZWYuY3VycmVudCA9IHNlbGVjdGVkSW5kZXg7XG4gICAgICAgICAgfVxuICAgICAgICAgIHN0b3BFdmVudChldmVudCk7XG4gICAgICAgICAgaWYgKCFvcGVuICYmIG9wZW5PbkFycm93S2V5RG93bikge1xuICAgICAgICAgICAgb25PcGVuQ2hhbmdlKHRydWUsIGV2ZW50Lm5hdGl2ZUV2ZW50LCAnbGlzdC1uYXZpZ2F0aW9uJyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbW1vbk9uS2V5RG93bihldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChvcGVuKSB7XG4gICAgICAgICAgICBvbk5hdmlnYXRlKGluZGV4UmVmLmN1cnJlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG9uRm9jdXMoKSB7XG4gICAgICAgIGlmIChvcGVuICYmICF2aXJ0dWFsKSB7XG4gICAgICAgICAgb25OYXZpZ2F0ZShudWxsKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG9uUG9pbnRlckRvd246IGNoZWNrVmlydHVhbFBvaW50ZXIsXG4gICAgICBvbk1vdXNlRG93bjogY2hlY2tWaXJ0dWFsTW91c2UsXG4gICAgICBvbkNsaWNrOiBjaGVja1ZpcnR1YWxNb3VzZVxuICAgIH07XG4gIH0sIFthY3RpdmVJZCwgYXJpYUFjdGl2ZURlc2NlbmRhbnRQcm9wLCBjb21tb25PbktleURvd24sIGRpc2FibGVkSW5kaWNlc1JlZiwgZm9jdXNJdGVtT25PcGVuLCBsaXN0UmVmLCBuZXN0ZWQsIG9uTmF2aWdhdGUsIG9uT3BlbkNoYW5nZSwgb3Blbiwgb3Blbk9uQXJyb3dLZXlEb3duLCBvcmllbnRhdGlvbiwgcnRsLCBzZWxlY3RlZEluZGV4LCB0cmVlLCB2aXJ0dWFsLCB2aXJ0dWFsSXRlbVJlZl0pO1xuICByZXR1cm4gUmVhY3QudXNlTWVtbygoKSA9PiBlbmFibGVkID8ge1xuICAgIHJlZmVyZW5jZSxcbiAgICBmbG9hdGluZyxcbiAgICBpdGVtXG4gIH0gOiB7fSwgW2VuYWJsZWQsIHJlZmVyZW5jZSwgZmxvYXRpbmcsIGl0ZW1dKTtcbn1cblxuY29uc3QgY29tcG9uZW50Um9sZVRvQXJpYVJvbGVNYXAgPSAvKiNfX1BVUkVfXyovbmV3IE1hcChbWydzZWxlY3QnLCAnbGlzdGJveCddLCBbJ2NvbWJvYm94JywgJ2xpc3Rib3gnXSwgWydsYWJlbCcsIGZhbHNlXV0pO1xuXG4vKipcbiAqIEFkZHMgYmFzZSBzY3JlZW4gcmVhZGVyIHByb3BzIHRvIHRoZSByZWZlcmVuY2UgYW5kIGZsb2F0aW5nIGVsZW1lbnRzIGZvciBhXG4gKiBnaXZlbiBmbG9hdGluZyBlbGVtZW50IGByb2xlYC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy91c2VSb2xlXG4gKi9cbmZ1bmN0aW9uIHVzZVJvbGUoY29udGV4dCwgcHJvcHMpIHtcbiAgdmFyIF9jb21wb25lbnRSb2xlVG9BcmlhUjtcbiAgaWYgKHByb3BzID09PSB2b2lkIDApIHtcbiAgICBwcm9wcyA9IHt9O1xuICB9XG4gIGNvbnN0IHtcbiAgICBvcGVuLFxuICAgIGZsb2F0aW5nSWRcbiAgfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtcbiAgICBlbmFibGVkID0gdHJ1ZSxcbiAgICByb2xlID0gJ2RpYWxvZydcbiAgfSA9IHByb3BzO1xuICBjb25zdCBhcmlhUm9sZSA9IChfY29tcG9uZW50Um9sZVRvQXJpYVIgPSBjb21wb25lbnRSb2xlVG9BcmlhUm9sZU1hcC5nZXQocm9sZSkpICE9IG51bGwgPyBfY29tcG9uZW50Um9sZVRvQXJpYVIgOiByb2xlO1xuICBjb25zdCByZWZlcmVuY2VJZCA9IHVzZUlkKCk7XG4gIGNvbnN0IHBhcmVudElkID0gdXNlRmxvYXRpbmdQYXJlbnROb2RlSWQoKTtcbiAgY29uc3QgaXNOZXN0ZWQgPSBwYXJlbnRJZCAhPSBudWxsO1xuICBjb25zdCByZWZlcmVuY2UgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoYXJpYVJvbGUgPT09ICd0b29sdGlwJyB8fCByb2xlID09PSAnbGFiZWwnKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBbXCJhcmlhLVwiICsgKHJvbGUgPT09ICdsYWJlbCcgPyAnbGFiZWxsZWRieScgOiAnZGVzY3JpYmVkYnknKV06IG9wZW4gPyBmbG9hdGluZ0lkIDogdW5kZWZpbmVkXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgJ2FyaWEtZXhwYW5kZWQnOiBvcGVuID8gJ3RydWUnIDogJ2ZhbHNlJyxcbiAgICAgICdhcmlhLWhhc3BvcHVwJzogYXJpYVJvbGUgPT09ICdhbGVydGRpYWxvZycgPyAnZGlhbG9nJyA6IGFyaWFSb2xlLFxuICAgICAgJ2FyaWEtY29udHJvbHMnOiBvcGVuID8gZmxvYXRpbmdJZCA6IHVuZGVmaW5lZCxcbiAgICAgIC4uLihhcmlhUm9sZSA9PT0gJ2xpc3Rib3gnICYmIHtcbiAgICAgICAgcm9sZTogJ2NvbWJvYm94J1xuICAgICAgfSksXG4gICAgICAuLi4oYXJpYVJvbGUgPT09ICdtZW51JyAmJiB7XG4gICAgICAgIGlkOiByZWZlcmVuY2VJZFxuICAgICAgfSksXG4gICAgICAuLi4oYXJpYVJvbGUgPT09ICdtZW51JyAmJiBpc05lc3RlZCAmJiB7XG4gICAgICAgIHJvbGU6ICdtZW51aXRlbSdcbiAgICAgIH0pLFxuICAgICAgLi4uKHJvbGUgPT09ICdzZWxlY3QnICYmIHtcbiAgICAgICAgJ2FyaWEtYXV0b2NvbXBsZXRlJzogJ25vbmUnXG4gICAgICB9KSxcbiAgICAgIC4uLihyb2xlID09PSAnY29tYm9ib3gnICYmIHtcbiAgICAgICAgJ2FyaWEtYXV0b2NvbXBsZXRlJzogJ2xpc3QnXG4gICAgICB9KVxuICAgIH07XG4gIH0sIFthcmlhUm9sZSwgZmxvYXRpbmdJZCwgaXNOZXN0ZWQsIG9wZW4sIHJlZmVyZW5jZUlkLCByb2xlXSk7XG4gIGNvbnN0IGZsb2F0aW5nID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgZmxvYXRpbmdQcm9wcyA9IHtcbiAgICAgIGlkOiBmbG9hdGluZ0lkLFxuICAgICAgLi4uKGFyaWFSb2xlICYmIHtcbiAgICAgICAgcm9sZTogYXJpYVJvbGVcbiAgICAgIH0pXG4gICAgfTtcbiAgICBpZiAoYXJpYVJvbGUgPT09ICd0b29sdGlwJyB8fCByb2xlID09PSAnbGFiZWwnKSB7XG4gICAgICByZXR1cm4gZmxvYXRpbmdQcm9wcztcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmZsb2F0aW5nUHJvcHMsXG4gICAgICAuLi4oYXJpYVJvbGUgPT09ICdtZW51JyAmJiB7XG4gICAgICAgICdhcmlhLWxhYmVsbGVkYnknOiByZWZlcmVuY2VJZFxuICAgICAgfSlcbiAgICB9O1xuICB9LCBbYXJpYVJvbGUsIGZsb2F0aW5nSWQsIHJlZmVyZW5jZUlkLCByb2xlXSk7XG4gIGNvbnN0IGl0ZW0gPSBSZWFjdC51c2VDYWxsYmFjayhfcmVmID0+IHtcbiAgICBsZXQge1xuICAgICAgYWN0aXZlLFxuICAgICAgc2VsZWN0ZWRcbiAgICB9ID0gX3JlZjtcbiAgICBjb25zdCBjb21tb25Qcm9wcyA9IHtcbiAgICAgIHJvbGU6ICdvcHRpb24nLFxuICAgICAgLi4uKGFjdGl2ZSAmJiB7XG4gICAgICAgIGlkOiBmbG9hdGluZ0lkICsgXCItb3B0aW9uXCJcbiAgICAgIH0pXG4gICAgfTtcblxuICAgIC8vIEZvciBgbWVudWAsIHdlIGFyZSB1bmFibGUgdG8gdGVsbCBpZiB0aGUgaXRlbSBpcyBhIGBtZW51aXRlbXJhZGlvYFxuICAgIC8vIG9yIGBtZW51aXRlbWNoZWNrYm94YC4gRm9yIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5IHJlYXNvbnMsIGFsc29cbiAgICAvLyBhdm9pZCBkZWZhdWx0aW5nIHRvIGBtZW51aXRlbWAgYXMgaXQgbWF5IG92ZXJ3cml0ZSBjdXN0b20gcm9sZSBwcm9wcy5cbiAgICBzd2l0Y2ggKHJvbGUpIHtcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uY29tbW9uUHJvcHMsXG4gICAgICAgICAgJ2FyaWEtc2VsZWN0ZWQnOiBhY3RpdmUgJiYgc2VsZWN0ZWRcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgJ2NvbWJvYm94JzpcbiAgICAgICAge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5jb21tb25Qcm9wcyxcbiAgICAgICAgICAgIC4uLihhY3RpdmUgJiYge1xuICAgICAgICAgICAgICAnYXJpYS1zZWxlY3RlZCc6IHRydWVcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge307XG4gIH0sIFtmbG9hdGluZ0lkLCByb2xlXSk7XG4gIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+IGVuYWJsZWQgPyB7XG4gICAgcmVmZXJlbmNlLFxuICAgIGZsb2F0aW5nLFxuICAgIGl0ZW1cbiAgfSA6IHt9LCBbZW5hYmxlZCwgcmVmZXJlbmNlLCBmbG9hdGluZywgaXRlbV0pO1xufVxuXG4vLyBDb252ZXJ0cyBhIEpTIHN0eWxlIGtleSBsaWtlIGBiYWNrZ3JvdW5kQ29sb3JgIHRvIGEgQ1NTIHRyYW5zaXRpb24tcHJvcGVydHlcbi8vIGxpa2UgYGJhY2tncm91bmQtY29sb3JgLlxuY29uc3QgY2FtZWxDYXNlVG9LZWJhYkNhc2UgPSBzdHIgPT4gc3RyLnJlcGxhY2UoL1tBLVpdKyg/IVthLXpdKXxbQS1aXS9nLCAoJCwgb2ZzKSA9PiAob2ZzID8gJy0nIDogJycpICsgJC50b0xvd2VyQ2FzZSgpKTtcbmZ1bmN0aW9uIGV4ZWNXaXRoQXJnc09yUmV0dXJuKHZhbHVlT3JGbiwgYXJncykge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlT3JGbiA9PT0gJ2Z1bmN0aW9uJyA/IHZhbHVlT3JGbihhcmdzKSA6IHZhbHVlT3JGbjtcbn1cbmZ1bmN0aW9uIHVzZURlbGF5VW5tb3VudChvcGVuLCBkdXJhdGlvbk1zKSB7XG4gIGNvbnN0IFtpc01vdW50ZWQsIHNldElzTW91bnRlZF0gPSBSZWFjdC51c2VTdGF0ZShvcGVuKTtcbiAgaWYgKG9wZW4gJiYgIWlzTW91bnRlZCkge1xuICAgIHNldElzTW91bnRlZCh0cnVlKTtcbiAgfVxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghb3BlbiAmJiBpc01vdW50ZWQpIHtcbiAgICAgIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHNldElzTW91bnRlZChmYWxzZSksIGR1cmF0aW9uTXMpO1xuICAgICAgcmV0dXJuICgpID0+IGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICB9XG4gIH0sIFtvcGVuLCBpc01vdW50ZWQsIGR1cmF0aW9uTXNdKTtcbiAgcmV0dXJuIGlzTW91bnRlZDtcbn1cbi8qKlxuICogUHJvdmlkZXMgYSBzdGF0dXMgc3RyaW5nIHRvIGFwcGx5IENTUyB0cmFuc2l0aW9ucyB0byBhIGZsb2F0aW5nIGVsZW1lbnQsXG4gKiBjb3JyZWN0bHkgaGFuZGxpbmcgcGxhY2VtZW50LWF3YXJlIHRyYW5zaXRpb25zLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3VzZVRyYW5zaXRpb24jdXNldHJhbnNpdGlvbnN0YXR1c1xuICovXG5mdW5jdGlvbiB1c2VUcmFuc2l0aW9uU3RhdHVzKGNvbnRleHQsIHByb3BzKSB7XG4gIGlmIChwcm9wcyA9PT0gdm9pZCAwKSB7XG4gICAgcHJvcHMgPSB7fTtcbiAgfVxuICBjb25zdCB7XG4gICAgb3BlbixcbiAgICBlbGVtZW50czoge1xuICAgICAgZmxvYXRpbmdcbiAgICB9XG4gIH0gPSBjb250ZXh0O1xuICBjb25zdCB7XG4gICAgZHVyYXRpb24gPSAyNTBcbiAgfSA9IHByb3BzO1xuICBjb25zdCBpc051bWJlckR1cmF0aW9uID0gdHlwZW9mIGR1cmF0aW9uID09PSAnbnVtYmVyJztcbiAgY29uc3QgY2xvc2VEdXJhdGlvbiA9IChpc051bWJlckR1cmF0aW9uID8gZHVyYXRpb24gOiBkdXJhdGlvbi5jbG9zZSkgfHwgMDtcbiAgY29uc3QgW3N0YXR1cywgc2V0U3RhdHVzXSA9IFJlYWN0LnVzZVN0YXRlKCd1bm1vdW50ZWQnKTtcbiAgY29uc3QgaXNNb3VudGVkID0gdXNlRGVsYXlVbm1vdW50KG9wZW4sIGNsb3NlRHVyYXRpb24pO1xuICBpZiAoIWlzTW91bnRlZCAmJiBzdGF0dXMgPT09ICdjbG9zZScpIHtcbiAgICBzZXRTdGF0dXMoJ3VubW91bnRlZCcpO1xuICB9XG4gIGluZGV4KCgpID0+IHtcbiAgICBpZiAoIWZsb2F0aW5nKSByZXR1cm47XG4gICAgaWYgKG9wZW4pIHtcbiAgICAgIHNldFN0YXR1cygnaW5pdGlhbCcpO1xuICAgICAgY29uc3QgZnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBzZXRTdGF0dXMoJ29wZW4nKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUoZnJhbWUpO1xuICAgICAgfTtcbiAgICB9XG4gICAgc2V0U3RhdHVzKCdjbG9zZScpO1xuICB9LCBbb3BlbiwgZmxvYXRpbmddKTtcbiAgcmV0dXJuIHtcbiAgICBpc01vdW50ZWQsXG4gICAgc3RhdHVzXG4gIH07XG59XG4vKipcbiAqIFByb3ZpZGVzIHN0eWxlcyB0byBhcHBseSBDU1MgdHJhbnNpdGlvbnMgdG8gYSBmbG9hdGluZyBlbGVtZW50LCBjb3JyZWN0bHlcbiAqIGhhbmRsaW5nIHBsYWNlbWVudC1hd2FyZSB0cmFuc2l0aW9ucy4gV3JhcHBlciBhcm91bmQgYHVzZVRyYW5zaXRpb25TdGF0dXNgLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3VzZVRyYW5zaXRpb24jdXNldHJhbnNpdGlvbnN0eWxlc1xuICovXG5mdW5jdGlvbiB1c2VUcmFuc2l0aW9uU3R5bGVzKGNvbnRleHQsIHByb3BzKSB7XG4gIGlmIChwcm9wcyA9PT0gdm9pZCAwKSB7XG4gICAgcHJvcHMgPSB7fTtcbiAgfVxuICBjb25zdCB7XG4gICAgaW5pdGlhbDogdW5zdGFibGVfaW5pdGlhbCA9IHtcbiAgICAgIG9wYWNpdHk6IDBcbiAgICB9LFxuICAgIG9wZW46IHVuc3RhYmxlX29wZW4sXG4gICAgY2xvc2U6IHVuc3RhYmxlX2Nsb3NlLFxuICAgIGNvbW1vbjogdW5zdGFibGVfY29tbW9uLFxuICAgIGR1cmF0aW9uID0gMjUwXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgcGxhY2VtZW50ID0gY29udGV4dC5wbGFjZW1lbnQ7XG4gIGNvbnN0IHNpZGUgPSBwbGFjZW1lbnQuc3BsaXQoJy0nKVswXTtcbiAgY29uc3QgZm5BcmdzID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIHNpZGUsXG4gICAgcGxhY2VtZW50XG4gIH0pLCBbc2lkZSwgcGxhY2VtZW50XSk7XG4gIGNvbnN0IGlzTnVtYmVyRHVyYXRpb24gPSB0eXBlb2YgZHVyYXRpb24gPT09ICdudW1iZXInO1xuICBjb25zdCBvcGVuRHVyYXRpb24gPSAoaXNOdW1iZXJEdXJhdGlvbiA/IGR1cmF0aW9uIDogZHVyYXRpb24ub3BlbikgfHwgMDtcbiAgY29uc3QgY2xvc2VEdXJhdGlvbiA9IChpc051bWJlckR1cmF0aW9uID8gZHVyYXRpb24gOiBkdXJhdGlvbi5jbG9zZSkgfHwgMDtcbiAgY29uc3QgW3N0eWxlcywgc2V0U3R5bGVzXSA9IFJlYWN0LnVzZVN0YXRlKCgpID0+ICh7XG4gICAgLi4uZXhlY1dpdGhBcmdzT3JSZXR1cm4odW5zdGFibGVfY29tbW9uLCBmbkFyZ3MpLFxuICAgIC4uLmV4ZWNXaXRoQXJnc09yUmV0dXJuKHVuc3RhYmxlX2luaXRpYWwsIGZuQXJncylcbiAgfSkpO1xuICBjb25zdCB7XG4gICAgaXNNb3VudGVkLFxuICAgIHN0YXR1c1xuICB9ID0gdXNlVHJhbnNpdGlvblN0YXR1cyhjb250ZXh0LCB7XG4gICAgZHVyYXRpb25cbiAgfSk7XG4gIGNvbnN0IGluaXRpYWxSZWYgPSB1c2VMYXRlc3RSZWYodW5zdGFibGVfaW5pdGlhbCk7XG4gIGNvbnN0IG9wZW5SZWYgPSB1c2VMYXRlc3RSZWYodW5zdGFibGVfb3Blbik7XG4gIGNvbnN0IGNsb3NlUmVmID0gdXNlTGF0ZXN0UmVmKHVuc3RhYmxlX2Nsb3NlKTtcbiAgY29uc3QgY29tbW9uUmVmID0gdXNlTGF0ZXN0UmVmKHVuc3RhYmxlX2NvbW1vbik7XG4gIGluZGV4KCgpID0+IHtcbiAgICBjb25zdCBpbml0aWFsU3R5bGVzID0gZXhlY1dpdGhBcmdzT3JSZXR1cm4oaW5pdGlhbFJlZi5jdXJyZW50LCBmbkFyZ3MpO1xuICAgIGNvbnN0IGNsb3NlU3R5bGVzID0gZXhlY1dpdGhBcmdzT3JSZXR1cm4oY2xvc2VSZWYuY3VycmVudCwgZm5BcmdzKTtcbiAgICBjb25zdCBjb21tb25TdHlsZXMgPSBleGVjV2l0aEFyZ3NPclJldHVybihjb21tb25SZWYuY3VycmVudCwgZm5BcmdzKTtcbiAgICBjb25zdCBvcGVuU3R5bGVzID0gZXhlY1dpdGhBcmdzT3JSZXR1cm4ob3BlblJlZi5jdXJyZW50LCBmbkFyZ3MpIHx8IE9iamVjdC5rZXlzKGluaXRpYWxTdHlsZXMpLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgIGFjY1trZXldID0gJyc7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcbiAgICBpZiAoc3RhdHVzID09PSAnaW5pdGlhbCcpIHtcbiAgICAgIHNldFN0eWxlcyhzdHlsZXMgPT4gKHtcbiAgICAgICAgdHJhbnNpdGlvblByb3BlcnR5OiBzdHlsZXMudHJhbnNpdGlvblByb3BlcnR5LFxuICAgICAgICAuLi5jb21tb25TdHlsZXMsXG4gICAgICAgIC4uLmluaXRpYWxTdHlsZXNcbiAgICAgIH0pKTtcbiAgICB9XG4gICAgaWYgKHN0YXR1cyA9PT0gJ29wZW4nKSB7XG4gICAgICBzZXRTdHlsZXMoe1xuICAgICAgICB0cmFuc2l0aW9uUHJvcGVydHk6IE9iamVjdC5rZXlzKG9wZW5TdHlsZXMpLm1hcChjYW1lbENhc2VUb0tlYmFiQ2FzZSkuam9pbignLCcpLFxuICAgICAgICB0cmFuc2l0aW9uRHVyYXRpb246IG9wZW5EdXJhdGlvbiArIFwibXNcIixcbiAgICAgICAgLi4uY29tbW9uU3R5bGVzLFxuICAgICAgICAuLi5vcGVuU3R5bGVzXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHN0YXR1cyA9PT0gJ2Nsb3NlJykge1xuICAgICAgY29uc3Qgc3R5bGVzID0gY2xvc2VTdHlsZXMgfHwgaW5pdGlhbFN0eWxlcztcbiAgICAgIHNldFN0eWxlcyh7XG4gICAgICAgIHRyYW5zaXRpb25Qcm9wZXJ0eTogT2JqZWN0LmtleXMoc3R5bGVzKS5tYXAoY2FtZWxDYXNlVG9LZWJhYkNhc2UpLmpvaW4oJywnKSxcbiAgICAgICAgdHJhbnNpdGlvbkR1cmF0aW9uOiBjbG9zZUR1cmF0aW9uICsgXCJtc1wiLFxuICAgICAgICAuLi5jb21tb25TdHlsZXMsXG4gICAgICAgIC4uLnN0eWxlc1xuICAgICAgfSk7XG4gICAgfVxuICB9LCBbY2xvc2VEdXJhdGlvbiwgY2xvc2VSZWYsIGluaXRpYWxSZWYsIG9wZW5SZWYsIGNvbW1vblJlZiwgb3BlbkR1cmF0aW9uLCBzdGF0dXMsIGZuQXJnc10pO1xuICByZXR1cm4ge1xuICAgIGlzTW91bnRlZCxcbiAgICBzdHlsZXNcbiAgfTtcbn1cblxuLyoqXG4gKiBQcm92aWRlcyBhIG1hdGNoaW5nIGNhbGxiYWNrIHRoYXQgY2FuIGJlIHVzZWQgdG8gZm9jdXMgYW4gaXRlbSBhcyB0aGUgdXNlclxuICogdHlwZXMsIG9mdGVuIHVzZWQgaW4gdGFuZGVtIHdpdGggYHVzZUxpc3ROYXZpZ2F0aW9uKClgLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3VzZVR5cGVhaGVhZFxuICovXG5mdW5jdGlvbiB1c2VUeXBlYWhlYWQoY29udGV4dCwgcHJvcHMpIHtcbiAgdmFyIF9yZWY7XG4gIGNvbnN0IHtcbiAgICBvcGVuLFxuICAgIGRhdGFSZWZcbiAgfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtcbiAgICBsaXN0UmVmLFxuICAgIGFjdGl2ZUluZGV4LFxuICAgIG9uTWF0Y2g6IHVuc3RhYmxlX29uTWF0Y2gsXG4gICAgb25UeXBpbmdDaGFuZ2U6IHVuc3RhYmxlX29uVHlwaW5nQ2hhbmdlLFxuICAgIGVuYWJsZWQgPSB0cnVlLFxuICAgIGZpbmRNYXRjaCA9IG51bGwsXG4gICAgcmVzZXRNcyA9IDc1MCxcbiAgICBpZ25vcmVLZXlzID0gW10sXG4gICAgc2VsZWN0ZWRJbmRleCA9IG51bGxcbiAgfSA9IHByb3BzO1xuICBjb25zdCB0aW1lb3V0SWRSZWYgPSBSZWFjdC51c2VSZWYoKTtcbiAgY29uc3Qgc3RyaW5nUmVmID0gUmVhY3QudXNlUmVmKCcnKTtcbiAgY29uc3QgcHJldkluZGV4UmVmID0gUmVhY3QudXNlUmVmKChfcmVmID0gc2VsZWN0ZWRJbmRleCAhPSBudWxsID8gc2VsZWN0ZWRJbmRleCA6IGFjdGl2ZUluZGV4KSAhPSBudWxsID8gX3JlZiA6IC0xKTtcbiAgY29uc3QgbWF0Y2hJbmRleFJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgY29uc3Qgb25NYXRjaCA9IHVzZUVmZmVjdEV2ZW50KHVuc3RhYmxlX29uTWF0Y2gpO1xuICBjb25zdCBvblR5cGluZ0NoYW5nZSA9IHVzZUVmZmVjdEV2ZW50KHVuc3RhYmxlX29uVHlwaW5nQ2hhbmdlKTtcbiAgY29uc3QgZmluZE1hdGNoUmVmID0gdXNlTGF0ZXN0UmVmKGZpbmRNYXRjaCk7XG4gIGNvbnN0IGlnbm9yZUtleXNSZWYgPSB1c2VMYXRlc3RSZWYoaWdub3JlS2V5cyk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBpZiAob3Blbikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZFJlZi5jdXJyZW50KTtcbiAgICAgIG1hdGNoSW5kZXhSZWYuY3VycmVudCA9IG51bGw7XG4gICAgICBzdHJpbmdSZWYuY3VycmVudCA9ICcnO1xuICAgIH1cbiAgfSwgW29wZW5dKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIC8vIFN5bmMgYXJyb3cga2V5IG5hdmlnYXRpb24gYnV0IG5vdCB0eXBlYWhlYWQgbmF2aWdhdGlvbi5cbiAgICBpZiAob3BlbiAmJiBzdHJpbmdSZWYuY3VycmVudCA9PT0gJycpIHtcbiAgICAgIHZhciBfcmVmMjtcbiAgICAgIHByZXZJbmRleFJlZi5jdXJyZW50ID0gKF9yZWYyID0gc2VsZWN0ZWRJbmRleCAhPSBudWxsID8gc2VsZWN0ZWRJbmRleCA6IGFjdGl2ZUluZGV4KSAhPSBudWxsID8gX3JlZjIgOiAtMTtcbiAgICB9XG4gIH0sIFtvcGVuLCBzZWxlY3RlZEluZGV4LCBhY3RpdmVJbmRleF0pO1xuICBjb25zdCBzZXRUeXBpbmdDaGFuZ2UgPSB1c2VFZmZlY3RFdmVudCh2YWx1ZSA9PiB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpZiAoIWRhdGFSZWYuY3VycmVudC50eXBpbmcpIHtcbiAgICAgICAgZGF0YVJlZi5jdXJyZW50LnR5cGluZyA9IHZhbHVlO1xuICAgICAgICBvblR5cGluZ0NoYW5nZSh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChkYXRhUmVmLmN1cnJlbnQudHlwaW5nKSB7XG4gICAgICAgIGRhdGFSZWYuY3VycmVudC50eXBpbmcgPSB2YWx1ZTtcbiAgICAgICAgb25UeXBpbmdDaGFuZ2UodmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZUVmZmVjdEV2ZW50KGV2ZW50ID0+IHtcbiAgICBmdW5jdGlvbiBnZXRNYXRjaGluZ0luZGV4KGxpc3QsIG9yZGVyZWRMaXN0LCBzdHJpbmcpIHtcbiAgICAgIGNvbnN0IHN0ciA9IGZpbmRNYXRjaFJlZi5jdXJyZW50ID8gZmluZE1hdGNoUmVmLmN1cnJlbnQob3JkZXJlZExpc3QsIHN0cmluZykgOiBvcmRlcmVkTGlzdC5maW5kKHRleHQgPT4gKHRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IHRleHQudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmRleE9mKHN0cmluZy50b0xvY2FsZUxvd2VyQ2FzZSgpKSkgPT09IDApO1xuICAgICAgcmV0dXJuIHN0ciA/IGxpc3QuaW5kZXhPZihzdHIpIDogLTE7XG4gICAgfVxuICAgIGNvbnN0IGxpc3RDb250ZW50ID0gbGlzdFJlZi5jdXJyZW50O1xuICAgIGlmIChzdHJpbmdSZWYuY3VycmVudC5sZW5ndGggPiAwICYmIHN0cmluZ1JlZi5jdXJyZW50WzBdICE9PSAnICcpIHtcbiAgICAgIGlmIChnZXRNYXRjaGluZ0luZGV4KGxpc3RDb250ZW50LCBsaXN0Q29udGVudCwgc3RyaW5nUmVmLmN1cnJlbnQpID09PSAtMSkge1xuICAgICAgICBzZXRUeXBpbmdDaGFuZ2UoZmFsc2UpO1xuICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgICBzdG9wRXZlbnQoZXZlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAobGlzdENvbnRlbnQgPT0gbnVsbCB8fCBpZ25vcmVLZXlzUmVmLmN1cnJlbnQuaW5jbHVkZXMoZXZlbnQua2V5KSB8fFxuICAgIC8vIENoYXJhY3RlciBrZXkuXG4gICAgZXZlbnQua2V5Lmxlbmd0aCAhPT0gMSB8fFxuICAgIC8vIE1vZGlmaWVyIGtleS5cbiAgICBldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQuYWx0S2V5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChvcGVuICYmIGV2ZW50LmtleSAhPT0gJyAnKSB7XG4gICAgICBzdG9wRXZlbnQoZXZlbnQpO1xuICAgICAgc2V0VHlwaW5nQ2hhbmdlKHRydWUpO1xuICAgIH1cblxuICAgIC8vIEJhaWwgb3V0IGlmIHRoZSBsaXN0IGNvbnRhaW5zIGEgd29yZCBsaWtlIFwibGxhbWFcIiBvciBcImFhcm9uXCIuIFRPRE86XG4gICAgLy8gYWxsb3cgaXQgaW4gdGhpcyBjYXNlLCB0b28uXG4gICAgY29uc3QgYWxsb3dSYXBpZFN1Y2Nlc3Npb25PZkZpcnN0TGV0dGVyID0gbGlzdENvbnRlbnQuZXZlcnkodGV4dCA9PiB7XG4gICAgICB2YXIgX3RleHQkLCBfdGV4dCQyO1xuICAgICAgcmV0dXJuIHRleHQgPyAoKF90ZXh0JCA9IHRleHRbMF0pID09IG51bGwgPyB2b2lkIDAgOiBfdGV4dCQudG9Mb2NhbGVMb3dlckNhc2UoKSkgIT09ICgoX3RleHQkMiA9IHRleHRbMV0pID09IG51bGwgPyB2b2lkIDAgOiBfdGV4dCQyLnRvTG9jYWxlTG93ZXJDYXNlKCkpIDogdHJ1ZTtcbiAgICB9KTtcblxuICAgIC8vIEFsbG93cyB0aGUgdXNlciB0byBjeWNsZSB0aHJvdWdoIGl0ZW1zIHRoYXQgc3RhcnQgd2l0aCB0aGUgc2FtZSBsZXR0ZXJcbiAgICAvLyBpbiByYXBpZCBzdWNjZXNzaW9uLlxuICAgIGlmIChhbGxvd1JhcGlkU3VjY2Vzc2lvbk9mRmlyc3RMZXR0ZXIgJiYgc3RyaW5nUmVmLmN1cnJlbnQgPT09IGV2ZW50LmtleSkge1xuICAgICAgc3RyaW5nUmVmLmN1cnJlbnQgPSAnJztcbiAgICAgIHByZXZJbmRleFJlZi5jdXJyZW50ID0gbWF0Y2hJbmRleFJlZi5jdXJyZW50O1xuICAgIH1cbiAgICBzdHJpbmdSZWYuY3VycmVudCArPSBldmVudC5rZXk7XG4gICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZFJlZi5jdXJyZW50KTtcbiAgICB0aW1lb3V0SWRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc3RyaW5nUmVmLmN1cnJlbnQgPSAnJztcbiAgICAgIHByZXZJbmRleFJlZi5jdXJyZW50ID0gbWF0Y2hJbmRleFJlZi5jdXJyZW50O1xuICAgICAgc2V0VHlwaW5nQ2hhbmdlKGZhbHNlKTtcbiAgICB9LCByZXNldE1zKTtcbiAgICBjb25zdCBwcmV2SW5kZXggPSBwcmV2SW5kZXhSZWYuY3VycmVudDtcbiAgICBjb25zdCBpbmRleCA9IGdldE1hdGNoaW5nSW5kZXgobGlzdENvbnRlbnQsIFsuLi5saXN0Q29udGVudC5zbGljZSgocHJldkluZGV4IHx8IDApICsgMSksIC4uLmxpc3RDb250ZW50LnNsaWNlKDAsIChwcmV2SW5kZXggfHwgMCkgKyAxKV0sIHN0cmluZ1JlZi5jdXJyZW50KTtcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICBvbk1hdGNoKGluZGV4KTtcbiAgICAgIG1hdGNoSW5kZXhSZWYuY3VycmVudCA9IGluZGV4O1xuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ICE9PSAnICcpIHtcbiAgICAgIHN0cmluZ1JlZi5jdXJyZW50ID0gJyc7XG4gICAgICBzZXRUeXBpbmdDaGFuZ2UoZmFsc2UpO1xuICAgIH1cbiAgfSk7XG4gIGNvbnN0IHJlZmVyZW5jZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBvbktleURvd25cbiAgfSksIFtvbktleURvd25dKTtcbiAgY29uc3QgZmxvYXRpbmcgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgb25LZXlEb3duLFxuICAgICAgb25LZXlVcChldmVudCkge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgICAgICBzZXRUeXBpbmdDaGFuZ2UoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW29uS2V5RG93biwgc2V0VHlwaW5nQ2hhbmdlXSk7XG4gIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+IGVuYWJsZWQgPyB7XG4gICAgcmVmZXJlbmNlLFxuICAgIGZsb2F0aW5nXG4gIH0gOiB7fSwgW2VuYWJsZWQsIHJlZmVyZW5jZSwgZmxvYXRpbmddKTtcbn1cblxuZnVuY3Rpb24gZ2V0QXJnc1dpdGhDdXN0b21GbG9hdGluZ0hlaWdodChzdGF0ZSwgaGVpZ2h0KSB7XG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgcmVjdHM6IHtcbiAgICAgIC4uLnN0YXRlLnJlY3RzLFxuICAgICAgZmxvYXRpbmc6IHtcbiAgICAgICAgLi4uc3RhdGUucmVjdHMuZmxvYXRpbmcsXG4gICAgICAgIGhlaWdodFxuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cbi8qKlxuICogUG9zaXRpb25zIHRoZSBmbG9hdGluZyBlbGVtZW50IHN1Y2ggdGhhdCBhbiBpbm5lciBlbGVtZW50IGluc2lkZSBvZiBpdCBpc1xuICogYW5jaG9yZWQgdG8gdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2lubmVyXG4gKi9cbmNvbnN0IGlubmVyID0gcHJvcHMgPT4gKHtcbiAgbmFtZTogJ2lubmVyJyxcbiAgb3B0aW9uczogcHJvcHMsXG4gIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgY29uc3Qge1xuICAgICAgbGlzdFJlZixcbiAgICAgIG92ZXJmbG93UmVmLFxuICAgICAgb25GYWxsYmFja0NoYW5nZSxcbiAgICAgIG9mZnNldDogaW5uZXJPZmZzZXQgPSAwLFxuICAgICAgaW5kZXggPSAwLFxuICAgICAgbWluSXRlbXNWaXNpYmxlID0gNCxcbiAgICAgIHJlZmVyZW5jZU92ZXJmbG93VGhyZXNob2xkID0gMCxcbiAgICAgIHNjcm9sbFJlZixcbiAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xuICAgIH0gPSBldmFsdWF0ZShwcm9wcywgc3RhdGUpO1xuICAgIGNvbnN0IHtcbiAgICAgIHJlY3RzLFxuICAgICAgZWxlbWVudHM6IHtcbiAgICAgICAgZmxvYXRpbmdcbiAgICAgIH1cbiAgICB9ID0gc3RhdGU7XG4gICAgY29uc3QgaXRlbSA9IGxpc3RSZWYuY3VycmVudFtpbmRleF07XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgaWYgKCFzdGF0ZS5wbGFjZW1lbnQuc3RhcnRzV2l0aCgnYm90dG9tJykpIHtcbiAgICAgICAgd2FybignYHBsYWNlbWVudGAgc2lkZSBtdXN0IGJlIFwiYm90dG9tXCIgd2hlbiB1c2luZyB0aGUgYGlubmVyYCcsICdtaWRkbGV3YXJlLicpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWl0ZW0pIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgY29uc3QgbmV4dEFyZ3MgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIC4uLihhd2FpdCBvZmZzZXQoLWl0ZW0ub2Zmc2V0VG9wIC0gZmxvYXRpbmcuY2xpZW50VG9wIC0gcmVjdHMucmVmZXJlbmNlLmhlaWdodCAvIDIgLSBpdGVtLm9mZnNldEhlaWdodCAvIDIgLSBpbm5lck9mZnNldCkuZm4oc3RhdGUpKVxuICAgIH07XG4gICAgY29uc3QgZWwgPSAoc2Nyb2xsUmVmID09IG51bGwgPyB2b2lkIDAgOiBzY3JvbGxSZWYuY3VycmVudCkgfHwgZmxvYXRpbmc7XG4gICAgY29uc3Qgb3ZlcmZsb3cgPSBhd2FpdCBkZXRlY3RPdmVyZmxvdyhnZXRBcmdzV2l0aEN1c3RvbUZsb2F0aW5nSGVpZ2h0KG5leHRBcmdzLCBlbC5zY3JvbGxIZWlnaHQpLCBkZXRlY3RPdmVyZmxvd09wdGlvbnMpO1xuICAgIGNvbnN0IHJlZk92ZXJmbG93ID0gYXdhaXQgZGV0ZWN0T3ZlcmZsb3cobmV4dEFyZ3MsIHtcbiAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyxcbiAgICAgIGVsZW1lbnRDb250ZXh0OiAncmVmZXJlbmNlJ1xuICAgIH0pO1xuICAgIGNvbnN0IGRpZmZZID0gTWF0aC5tYXgoMCwgb3ZlcmZsb3cudG9wKTtcbiAgICBjb25zdCBuZXh0WSA9IG5leHRBcmdzLnkgKyBkaWZmWTtcbiAgICBjb25zdCBtYXhIZWlnaHQgPSBNYXRoLm1heCgwLCBlbC5zY3JvbGxIZWlnaHQgLSBkaWZmWSAtIE1hdGgubWF4KDAsIG92ZXJmbG93LmJvdHRvbSkpO1xuICAgIGVsLnN0eWxlLm1heEhlaWdodCA9IG1heEhlaWdodCArIFwicHhcIjtcbiAgICBlbC5zY3JvbGxUb3AgPSBkaWZmWTtcblxuICAgIC8vIFRoZXJlIGlzIG5vdCBlbm91Z2ggc3BhY2UsIGZhbGxiYWNrIHRvIHN0YW5kYXJkIGFuY2hvcmVkIHBvc2l0aW9uaW5nXG4gICAgaWYgKG9uRmFsbGJhY2tDaGFuZ2UpIHtcbiAgICAgIGlmIChlbC5vZmZzZXRIZWlnaHQgPCBpdGVtLm9mZnNldEhlaWdodCAqIE1hdGgubWluKG1pbkl0ZW1zVmlzaWJsZSwgbGlzdFJlZi5jdXJyZW50Lmxlbmd0aCAtIDEpIC0gMSB8fCByZWZPdmVyZmxvdy50b3AgPj0gLXJlZmVyZW5jZU92ZXJmbG93VGhyZXNob2xkIHx8IHJlZk92ZXJmbG93LmJvdHRvbSA+PSAtcmVmZXJlbmNlT3ZlcmZsb3dUaHJlc2hvbGQpIHtcbiAgICAgICAgUmVhY3RET00uZmx1c2hTeW5jKCgpID0+IG9uRmFsbGJhY2tDaGFuZ2UodHJ1ZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgUmVhY3RET00uZmx1c2hTeW5jKCgpID0+IG9uRmFsbGJhY2tDaGFuZ2UoZmFsc2UpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG92ZXJmbG93UmVmKSB7XG4gICAgICBvdmVyZmxvd1JlZi5jdXJyZW50ID0gYXdhaXQgZGV0ZWN0T3ZlcmZsb3coZ2V0QXJnc1dpdGhDdXN0b21GbG9hdGluZ0hlaWdodCh7XG4gICAgICAgIC4uLm5leHRBcmdzLFxuICAgICAgICB5OiBuZXh0WVxuICAgICAgfSwgZWwub2Zmc2V0SGVpZ2h0KSwgZGV0ZWN0T3ZlcmZsb3dPcHRpb25zKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHk6IG5leHRZXG4gICAgfTtcbiAgfVxufSk7XG4vKipcbiAqIENoYW5nZXMgdGhlIGBpbm5lcmAgbWlkZGxld2FyZSdzIGBvZmZzZXRgIHVwb24gYSBgd2hlZWxgIGV2ZW50IHRvXG4gKiBleHBhbmQgdGhlIGZsb2F0aW5nIGVsZW1lbnQncyBoZWlnaHQsIHJldmVhbGluZyBtb3JlIGxpc3QgaXRlbXMuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvaW5uZXJcbiAqL1xuZnVuY3Rpb24gdXNlSW5uZXJPZmZzZXQoY29udGV4dCwgcHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIG9wZW4sXG4gICAgZWxlbWVudHNcbiAgfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtcbiAgICBlbmFibGVkID0gdHJ1ZSxcbiAgICBvdmVyZmxvd1JlZixcbiAgICBzY3JvbGxSZWYsXG4gICAgb25DaGFuZ2U6IHVuc3RhYmxlX29uQ2hhbmdlXG4gIH0gPSBwcm9wcztcbiAgY29uc3Qgb25DaGFuZ2UgPSB1c2VFZmZlY3RFdmVudCh1bnN0YWJsZV9vbkNoYW5nZSk7XG4gIGNvbnN0IGNvbnRyb2xsZWRTY3JvbGxpbmdSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICBjb25zdCBwcmV2U2Nyb2xsVG9wUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBpbml0aWFsT3ZlcmZsb3dSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFlbmFibGVkKSByZXR1cm47XG4gICAgZnVuY3Rpb24gb25XaGVlbChlKSB7XG4gICAgICBpZiAoZS5jdHJsS2V5IHx8ICFlbCB8fCBvdmVyZmxvd1JlZi5jdXJyZW50ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgZFkgPSBlLmRlbHRhWTtcbiAgICAgIGNvbnN0IGlzQXRUb3AgPSBvdmVyZmxvd1JlZi5jdXJyZW50LnRvcCA+PSAtMC41O1xuICAgICAgY29uc3QgaXNBdEJvdHRvbSA9IG92ZXJmbG93UmVmLmN1cnJlbnQuYm90dG9tID49IC0wLjU7XG4gICAgICBjb25zdCByZW1haW5pbmdTY3JvbGwgPSBlbC5zY3JvbGxIZWlnaHQgLSBlbC5jbGllbnRIZWlnaHQ7XG4gICAgICBjb25zdCBzaWduID0gZFkgPCAwID8gLTEgOiAxO1xuICAgICAgY29uc3QgbWV0aG9kID0gZFkgPCAwID8gJ21heCcgOiAnbWluJztcbiAgICAgIGlmIChlbC5zY3JvbGxIZWlnaHQgPD0gZWwuY2xpZW50SGVpZ2h0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICghaXNBdFRvcCAmJiBkWSA+IDAgfHwgIWlzQXRCb3R0b20gJiYgZFkgPCAwKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgUmVhY3RET00uZmx1c2hTeW5jKCgpID0+IHtcbiAgICAgICAgICBvbkNoYW5nZShkID0+IGQgKyBNYXRoW21ldGhvZF0oZFksIHJlbWFpbmluZ1Njcm9sbCAqIHNpZ24pKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKC9maXJlZm94L2kudGVzdChnZXRVc2VyQWdlbnQoKSkpIHtcbiAgICAgICAgLy8gTmVlZGVkIHRvIHByb3BhZ2F0ZSBzY3JvbGxpbmcgZHVyaW5nIG1vbWVudHVtIHNjcm9sbGluZyBwaGFzZSBvbmNlXG4gICAgICAgIC8vIGl0IGdldHMgbGltaXRlZCBieSB0aGUgYm91bmRhcnkuIFVYIGltcHJvdmVtZW50LCBub3QgY3JpdGljYWwuXG4gICAgICAgIGVsLnNjcm9sbFRvcCArPSBkWTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgZWwgPSAoc2Nyb2xsUmVmID09IG51bGwgPyB2b2lkIDAgOiBzY3JvbGxSZWYuY3VycmVudCkgfHwgZWxlbWVudHMuZmxvYXRpbmc7XG4gICAgaWYgKG9wZW4gJiYgZWwpIHtcbiAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ3doZWVsJywgb25XaGVlbCk7XG5cbiAgICAgIC8vIFdhaXQgZm9yIHRoZSBwb3NpdGlvbiB0byBiZSByZWFkeS5cbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHByZXZTY3JvbGxUb3BSZWYuY3VycmVudCA9IGVsLnNjcm9sbFRvcDtcbiAgICAgICAgaWYgKG92ZXJmbG93UmVmLmN1cnJlbnQgIT0gbnVsbCkge1xuICAgICAgICAgIGluaXRpYWxPdmVyZmxvd1JlZi5jdXJyZW50ID0ge1xuICAgICAgICAgICAgLi4ub3ZlcmZsb3dSZWYuY3VycmVudFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgcHJldlNjcm9sbFRvcFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgaW5pdGlhbE92ZXJmbG93UmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICBlbC5yZW1vdmVFdmVudExpc3RlbmVyKCd3aGVlbCcsIG9uV2hlZWwpO1xuICAgICAgfTtcbiAgICB9XG4gIH0sIFtlbmFibGVkLCBvcGVuLCBlbGVtZW50cy5mbG9hdGluZywgb3ZlcmZsb3dSZWYsIHNjcm9sbFJlZiwgb25DaGFuZ2VdKTtcbiAgY29uc3QgZmxvYXRpbmcgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgb25LZXlEb3duKCkge1xuICAgICAgY29udHJvbGxlZFNjcm9sbGluZ1JlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9LFxuICAgIG9uV2hlZWwoKSB7XG4gICAgICBjb250cm9sbGVkU2Nyb2xsaW5nUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9LFxuICAgIG9uUG9pbnRlck1vdmUoKSB7XG4gICAgICBjb250cm9sbGVkU2Nyb2xsaW5nUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9LFxuICAgIG9uU2Nyb2xsKCkge1xuICAgICAgY29uc3QgZWwgPSAoc2Nyb2xsUmVmID09IG51bGwgPyB2b2lkIDAgOiBzY3JvbGxSZWYuY3VycmVudCkgfHwgZWxlbWVudHMuZmxvYXRpbmc7XG4gICAgICBpZiAoIW92ZXJmbG93UmVmLmN1cnJlbnQgfHwgIWVsIHx8ICFjb250cm9sbGVkU2Nyb2xsaW5nUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHByZXZTY3JvbGxUb3BSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBzY3JvbGxEaWZmID0gZWwuc2Nyb2xsVG9wIC0gcHJldlNjcm9sbFRvcFJlZi5jdXJyZW50O1xuICAgICAgICBpZiAob3ZlcmZsb3dSZWYuY3VycmVudC5ib3R0b20gPCAtMC41ICYmIHNjcm9sbERpZmYgPCAtMSB8fCBvdmVyZmxvd1JlZi5jdXJyZW50LnRvcCA8IC0wLjUgJiYgc2Nyb2xsRGlmZiA+IDEpIHtcbiAgICAgICAgICBSZWFjdERPTS5mbHVzaFN5bmMoKCkgPT4gb25DaGFuZ2UoZCA9PiBkICsgc2Nyb2xsRGlmZikpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFtGaXJlZm94XSBXYWl0IGZvciB0aGUgaGVpZ2h0IGNoYW5nZSB0byBoYXZlIGJlZW4gYXBwbGllZC5cbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHByZXZTY3JvbGxUb3BSZWYuY3VycmVudCA9IGVsLnNjcm9sbFRvcDtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSksIFtlbGVtZW50cy5mbG9hdGluZywgb25DaGFuZ2UsIG92ZXJmbG93UmVmLCBzY3JvbGxSZWZdKTtcbiAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4gZW5hYmxlZCA/IHtcbiAgICBmbG9hdGluZ1xuICB9IDoge30sIFtlbmFibGVkLCBmbG9hdGluZ10pO1xufVxuXG5mdW5jdGlvbiBpc1BvaW50SW5Qb2x5Z29uKHBvaW50LCBwb2x5Z29uKSB7XG4gIGNvbnN0IFt4LCB5XSA9IHBvaW50O1xuICBsZXQgaXNJbnNpZGUgPSBmYWxzZTtcbiAgY29uc3QgbGVuZ3RoID0gcG9seWdvbi5sZW5ndGg7XG4gIGZvciAobGV0IGkgPSAwLCBqID0gbGVuZ3RoIC0gMTsgaSA8IGxlbmd0aDsgaiA9IGkrKykge1xuICAgIGNvbnN0IFt4aSwgeWldID0gcG9seWdvbltpXSB8fCBbMCwgMF07XG4gICAgY29uc3QgW3hqLCB5al0gPSBwb2x5Z29uW2pdIHx8IFswLCAwXTtcbiAgICBjb25zdCBpbnRlcnNlY3QgPSB5aSA+PSB5ICE9PSB5aiA+PSB5ICYmIHggPD0gKHhqIC0geGkpICogKHkgLSB5aSkgLyAoeWogLSB5aSkgKyB4aTtcbiAgICBpZiAoaW50ZXJzZWN0KSB7XG4gICAgICBpc0luc2lkZSA9ICFpc0luc2lkZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGlzSW5zaWRlO1xufVxuZnVuY3Rpb24gaXNJbnNpZGUocG9pbnQsIHJlY3QpIHtcbiAgcmV0dXJuIHBvaW50WzBdID49IHJlY3QueCAmJiBwb2ludFswXSA8PSByZWN0LnggKyByZWN0LndpZHRoICYmIHBvaW50WzFdID49IHJlY3QueSAmJiBwb2ludFsxXSA8PSByZWN0LnkgKyByZWN0LmhlaWdodDtcbn1cbi8qKlxuICogR2VuZXJhdGVzIGEgc2FmZSBwb2x5Z29uIGFyZWEgdGhhdCB0aGUgdXNlciBjYW4gdHJhdmVyc2Ugd2l0aG91dCBjbG9zaW5nIHRoZVxuICogZmxvYXRpbmcgZWxlbWVudCBvbmNlIGxlYXZpbmcgdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3VzZUhvdmVyI3NhZmVwb2x5Z29uXG4gKi9cbmZ1bmN0aW9uIHNhZmVQb2x5Z29uKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICBjb25zdCB7XG4gICAgYnVmZmVyID0gMC41LFxuICAgIGJsb2NrUG9pbnRlckV2ZW50cyA9IGZhbHNlLFxuICAgIHJlcXVpcmVJbnRlbnQgPSB0cnVlXG4gIH0gPSBvcHRpb25zO1xuICBsZXQgdGltZW91dElkO1xuICBsZXQgaGFzTGFuZGVkID0gZmFsc2U7XG4gIGxldCBsYXN0WCA9IG51bGw7XG4gIGxldCBsYXN0WSA9IG51bGw7XG4gIGxldCBsYXN0Q3Vyc29yVGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICBmdW5jdGlvbiBnZXRDdXJzb3JTcGVlZCh4LCB5KSB7XG4gICAgY29uc3QgY3VycmVudFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICBjb25zdCBlbGFwc2VkVGltZSA9IGN1cnJlbnRUaW1lIC0gbGFzdEN1cnNvclRpbWU7XG4gICAgaWYgKGxhc3RYID09PSBudWxsIHx8IGxhc3RZID09PSBudWxsIHx8IGVsYXBzZWRUaW1lID09PSAwKSB7XG4gICAgICBsYXN0WCA9IHg7XG4gICAgICBsYXN0WSA9IHk7XG4gICAgICBsYXN0Q3Vyc29yVGltZSA9IGN1cnJlbnRUaW1lO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGRlbHRhWCA9IHggLSBsYXN0WDtcbiAgICBjb25zdCBkZWx0YVkgPSB5IC0gbGFzdFk7XG4gICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLnNxcnQoZGVsdGFYICogZGVsdGFYICsgZGVsdGFZICogZGVsdGFZKTtcbiAgICBjb25zdCBzcGVlZCA9IGRpc3RhbmNlIC8gZWxhcHNlZFRpbWU7IC8vIHB4IC8gbXNcblxuICAgIGxhc3RYID0geDtcbiAgICBsYXN0WSA9IHk7XG4gICAgbGFzdEN1cnNvclRpbWUgPSBjdXJyZW50VGltZTtcbiAgICByZXR1cm4gc3BlZWQ7XG4gIH1cbiAgY29uc3QgZm4gPSBfcmVmID0+IHtcbiAgICBsZXQge1xuICAgICAgeCxcbiAgICAgIHksXG4gICAgICBwbGFjZW1lbnQsXG4gICAgICBlbGVtZW50cyxcbiAgICAgIG9uQ2xvc2UsXG4gICAgICBub2RlSWQsXG4gICAgICB0cmVlXG4gICAgfSA9IF9yZWY7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIG9uTW91c2VNb3ZlKGV2ZW50KSB7XG4gICAgICBmdW5jdGlvbiBjbG9zZSgpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgICAgIG9uQ2xvc2UoKTtcbiAgICAgIH1cbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgICAgaWYgKCFlbGVtZW50cy5kb21SZWZlcmVuY2UgfHwgIWVsZW1lbnRzLmZsb2F0aW5nIHx8IHBsYWNlbWVudCA9PSBudWxsIHx8IHggPT0gbnVsbCB8fCB5ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3Qge1xuICAgICAgICBjbGllbnRYLFxuICAgICAgICBjbGllbnRZXG4gICAgICB9ID0gZXZlbnQ7XG4gICAgICBjb25zdCBjbGllbnRQb2ludCA9IFtjbGllbnRYLCBjbGllbnRZXTtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGdldFRhcmdldChldmVudCk7XG4gICAgICBjb25zdCBpc0xlYXZlID0gZXZlbnQudHlwZSA9PT0gJ21vdXNlbGVhdmUnO1xuICAgICAgY29uc3QgaXNPdmVyRmxvYXRpbmdFbCA9IGNvbnRhaW5zKGVsZW1lbnRzLmZsb2F0aW5nLCB0YXJnZXQpO1xuICAgICAgY29uc3QgaXNPdmVyUmVmZXJlbmNlRWwgPSBjb250YWlucyhlbGVtZW50cy5kb21SZWZlcmVuY2UsIHRhcmdldCk7XG4gICAgICBjb25zdCByZWZSZWN0ID0gZWxlbWVudHMuZG9tUmVmZXJlbmNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgcmVjdCA9IGVsZW1lbnRzLmZsb2F0aW5nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3Qgc2lkZSA9IHBsYWNlbWVudC5zcGxpdCgnLScpWzBdO1xuICAgICAgY29uc3QgY3Vyc29yTGVhdmVGcm9tUmlnaHQgPSB4ID4gcmVjdC5yaWdodCAtIHJlY3Qud2lkdGggLyAyO1xuICAgICAgY29uc3QgY3Vyc29yTGVhdmVGcm9tQm90dG9tID0geSA+IHJlY3QuYm90dG9tIC0gcmVjdC5oZWlnaHQgLyAyO1xuICAgICAgY29uc3QgaXNPdmVyUmVmZXJlbmNlUmVjdCA9IGlzSW5zaWRlKGNsaWVudFBvaW50LCByZWZSZWN0KTtcbiAgICAgIGNvbnN0IGlzRmxvYXRpbmdXaWRlciA9IHJlY3Qud2lkdGggPiByZWZSZWN0LndpZHRoO1xuICAgICAgY29uc3QgaXNGbG9hdGluZ1RhbGxlciA9IHJlY3QuaGVpZ2h0ID4gcmVmUmVjdC5oZWlnaHQ7XG4gICAgICBjb25zdCBsZWZ0ID0gKGlzRmxvYXRpbmdXaWRlciA/IHJlZlJlY3QgOiByZWN0KS5sZWZ0O1xuICAgICAgY29uc3QgcmlnaHQgPSAoaXNGbG9hdGluZ1dpZGVyID8gcmVmUmVjdCA6IHJlY3QpLnJpZ2h0O1xuICAgICAgY29uc3QgdG9wID0gKGlzRmxvYXRpbmdUYWxsZXIgPyByZWZSZWN0IDogcmVjdCkudG9wO1xuICAgICAgY29uc3QgYm90dG9tID0gKGlzRmxvYXRpbmdUYWxsZXIgPyByZWZSZWN0IDogcmVjdCkuYm90dG9tO1xuICAgICAgaWYgKGlzT3ZlckZsb2F0aW5nRWwpIHtcbiAgICAgICAgaGFzTGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgaWYgKCFpc0xlYXZlKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaXNPdmVyUmVmZXJlbmNlRWwpIHtcbiAgICAgICAgaGFzTGFuZGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoaXNPdmVyUmVmZXJlbmNlRWwgJiYgIWlzTGVhdmUpIHtcbiAgICAgICAgaGFzTGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBQcmV2ZW50IG92ZXJsYXBwaW5nIGZsb2F0aW5nIGVsZW1lbnQgZnJvbSBiZWluZyBzdHVjayBpbiBhbiBvcGVuLWNsb3NlXG4gICAgICAvLyBsb29wOiBodHRwczovL2dpdGh1Yi5jb20vZmxvYXRpbmctdWkvZmxvYXRpbmctdWkvaXNzdWVzLzE5MTBcbiAgICAgIGlmIChpc0xlYXZlICYmIGlzRWxlbWVudChldmVudC5yZWxhdGVkVGFyZ2V0KSAmJiBjb250YWlucyhlbGVtZW50cy5mbG9hdGluZywgZXZlbnQucmVsYXRlZFRhcmdldCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiBhbnkgbmVzdGVkIGNoaWxkIGlzIG9wZW4sIGFib3J0LlxuICAgICAgaWYgKHRyZWUgJiYgZ2V0Q2hpbGRyZW4odHJlZS5ub2Rlc1JlZi5jdXJyZW50LCBub2RlSWQpLnNvbWUoX3JlZjIgPT4ge1xuICAgICAgICBsZXQge1xuICAgICAgICAgIGNvbnRleHRcbiAgICAgICAgfSA9IF9yZWYyO1xuICAgICAgICByZXR1cm4gY29udGV4dCA9PSBudWxsID8gdm9pZCAwIDogY29udGV4dC5vcGVuO1xuICAgICAgfSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGUgcG9pbnRlciBpcyBsZWF2aW5nIGZyb20gdGhlIG9wcG9zaXRlIHNpZGUsIHRoZSBcImJ1ZmZlclwiIGxvZ2ljXG4gICAgICAvLyBjcmVhdGVzIGEgcG9pbnQgd2hlcmUgdGhlIGZsb2F0aW5nIGVsZW1lbnQgcmVtYWlucyBvcGVuLCBidXQgc2hvdWxkIGJlXG4gICAgICAvLyBpZ25vcmVkLlxuICAgICAgLy8gQSBjb25zdGFudCBvZiAxIGhhbmRsZXMgZmxvYXRpbmcgcG9pbnQgcm91bmRpbmcgZXJyb3JzLlxuICAgICAgaWYgKHNpZGUgPT09ICd0b3AnICYmIHkgPj0gcmVmUmVjdC5ib3R0b20gLSAxIHx8IHNpZGUgPT09ICdib3R0b20nICYmIHkgPD0gcmVmUmVjdC50b3AgKyAxIHx8IHNpZGUgPT09ICdsZWZ0JyAmJiB4ID49IHJlZlJlY3QucmlnaHQgLSAxIHx8IHNpZGUgPT09ICdyaWdodCcgJiYgeCA8PSByZWZSZWN0LmxlZnQgKyAxKSB7XG4gICAgICAgIHJldHVybiBjbG9zZSgpO1xuICAgICAgfVxuXG4gICAgICAvLyBJZ25vcmUgd2hlbiB0aGUgY3Vyc29yIGlzIHdpdGhpbiB0aGUgcmVjdGFuZ3VsYXIgdHJvdWdoIGJldHdlZW4gdGhlXG4gICAgICAvLyB0d28gZWxlbWVudHMuIFNpbmNlIHRoZSB0cmlhbmdsZSBpcyBjcmVhdGVkIGZyb20gdGhlIGN1cnNvciBwb2ludCxcbiAgICAgIC8vIHdoaWNoIGNhbiBzdGFydCBiZXlvbmQgdGhlIHJlZiBlbGVtZW50J3MgZWRnZSwgdHJhdmVyc2luZyBiYWNrIGFuZFxuICAgICAgLy8gZm9ydGggZnJvbSB0aGUgcmVmIHRvIHRoZSBmbG9hdGluZyBlbGVtZW50IGNhbiBjYXVzZSBpdCB0byBjbG9zZS4gVGhpc1xuICAgICAgLy8gZW5zdXJlcyBpdCBhbHdheXMgcmVtYWlucyBvcGVuIGluIHRoYXQgY2FzZS5cbiAgICAgIGxldCByZWN0UG9seSA9IFtdO1xuICAgICAgc3dpdGNoIChzaWRlKSB7XG4gICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgcmVjdFBvbHkgPSBbW2xlZnQsIHJlZlJlY3QudG9wICsgMV0sIFtsZWZ0LCByZWN0LmJvdHRvbSAtIDFdLCBbcmlnaHQsIHJlY3QuYm90dG9tIC0gMV0sIFtyaWdodCwgcmVmUmVjdC50b3AgKyAxXV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgcmVjdFBvbHkgPSBbW2xlZnQsIHJlY3QudG9wICsgMV0sIFtsZWZ0LCByZWZSZWN0LmJvdHRvbSAtIDFdLCBbcmlnaHQsIHJlZlJlY3QuYm90dG9tIC0gMV0sIFtyaWdodCwgcmVjdC50b3AgKyAxXV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgIHJlY3RQb2x5ID0gW1tyZWN0LnJpZ2h0IC0gMSwgYm90dG9tXSwgW3JlY3QucmlnaHQgLSAxLCB0b3BdLCBbcmVmUmVjdC5sZWZ0ICsgMSwgdG9wXSwgW3JlZlJlY3QubGVmdCArIDEsIGJvdHRvbV1dO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgcmVjdFBvbHkgPSBbW3JlZlJlY3QucmlnaHQgLSAxLCBib3R0b21dLCBbcmVmUmVjdC5yaWdodCAtIDEsIHRvcF0sIFtyZWN0LmxlZnQgKyAxLCB0b3BdLCBbcmVjdC5sZWZ0ICsgMSwgYm90dG9tXV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBnZXRQb2x5Z29uKF9yZWYzKSB7XG4gICAgICAgIGxldCBbeCwgeV0gPSBfcmVmMztcbiAgICAgICAgc3dpdGNoIChzaWRlKSB7XG4gICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY29uc3QgY3Vyc29yUG9pbnRPbmUgPSBbaXNGbG9hdGluZ1dpZGVyID8geCArIGJ1ZmZlciAvIDIgOiBjdXJzb3JMZWF2ZUZyb21SaWdodCA/IHggKyBidWZmZXIgKiA0IDogeCAtIGJ1ZmZlciAqIDQsIHkgKyBidWZmZXIgKyAxXTtcbiAgICAgICAgICAgICAgY29uc3QgY3Vyc29yUG9pbnRUd28gPSBbaXNGbG9hdGluZ1dpZGVyID8geCAtIGJ1ZmZlciAvIDIgOiBjdXJzb3JMZWF2ZUZyb21SaWdodCA/IHggKyBidWZmZXIgKiA0IDogeCAtIGJ1ZmZlciAqIDQsIHkgKyBidWZmZXIgKyAxXTtcbiAgICAgICAgICAgICAgY29uc3QgY29tbW9uUG9pbnRzID0gW1tyZWN0LmxlZnQsIGN1cnNvckxlYXZlRnJvbVJpZ2h0ID8gcmVjdC5ib3R0b20gLSBidWZmZXIgOiBpc0Zsb2F0aW5nV2lkZXIgPyByZWN0LmJvdHRvbSAtIGJ1ZmZlciA6IHJlY3QudG9wXSwgW3JlY3QucmlnaHQsIGN1cnNvckxlYXZlRnJvbVJpZ2h0ID8gaXNGbG9hdGluZ1dpZGVyID8gcmVjdC5ib3R0b20gLSBidWZmZXIgOiByZWN0LnRvcCA6IHJlY3QuYm90dG9tIC0gYnVmZmVyXV07XG4gICAgICAgICAgICAgIHJldHVybiBbY3Vyc29yUG9pbnRPbmUsIGN1cnNvclBvaW50VHdvLCAuLi5jb21tb25Qb2ludHNdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnNvclBvaW50T25lID0gW2lzRmxvYXRpbmdXaWRlciA/IHggKyBidWZmZXIgLyAyIDogY3Vyc29yTGVhdmVGcm9tUmlnaHQgPyB4ICsgYnVmZmVyICogNCA6IHggLSBidWZmZXIgKiA0LCB5IC0gYnVmZmVyXTtcbiAgICAgICAgICAgICAgY29uc3QgY3Vyc29yUG9pbnRUd28gPSBbaXNGbG9hdGluZ1dpZGVyID8geCAtIGJ1ZmZlciAvIDIgOiBjdXJzb3JMZWF2ZUZyb21SaWdodCA/IHggKyBidWZmZXIgKiA0IDogeCAtIGJ1ZmZlciAqIDQsIHkgLSBidWZmZXJdO1xuICAgICAgICAgICAgICBjb25zdCBjb21tb25Qb2ludHMgPSBbW3JlY3QubGVmdCwgY3Vyc29yTGVhdmVGcm9tUmlnaHQgPyByZWN0LnRvcCArIGJ1ZmZlciA6IGlzRmxvYXRpbmdXaWRlciA/IHJlY3QudG9wICsgYnVmZmVyIDogcmVjdC5ib3R0b21dLCBbcmVjdC5yaWdodCwgY3Vyc29yTGVhdmVGcm9tUmlnaHQgPyBpc0Zsb2F0aW5nV2lkZXIgPyByZWN0LnRvcCArIGJ1ZmZlciA6IHJlY3QuYm90dG9tIDogcmVjdC50b3AgKyBidWZmZXJdXTtcbiAgICAgICAgICAgICAgcmV0dXJuIFtjdXJzb3JQb2ludE9uZSwgY3Vyc29yUG9pbnRUd28sIC4uLmNvbW1vblBvaW50c107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnNvclBvaW50T25lID0gW3ggKyBidWZmZXIgKyAxLCBpc0Zsb2F0aW5nVGFsbGVyID8geSArIGJ1ZmZlciAvIDIgOiBjdXJzb3JMZWF2ZUZyb21Cb3R0b20gPyB5ICsgYnVmZmVyICogNCA6IHkgLSBidWZmZXIgKiA0XTtcbiAgICAgICAgICAgICAgY29uc3QgY3Vyc29yUG9pbnRUd28gPSBbeCArIGJ1ZmZlciArIDEsIGlzRmxvYXRpbmdUYWxsZXIgPyB5IC0gYnVmZmVyIC8gMiA6IGN1cnNvckxlYXZlRnJvbUJvdHRvbSA/IHkgKyBidWZmZXIgKiA0IDogeSAtIGJ1ZmZlciAqIDRdO1xuICAgICAgICAgICAgICBjb25zdCBjb21tb25Qb2ludHMgPSBbW2N1cnNvckxlYXZlRnJvbUJvdHRvbSA/IHJlY3QucmlnaHQgLSBidWZmZXIgOiBpc0Zsb2F0aW5nVGFsbGVyID8gcmVjdC5yaWdodCAtIGJ1ZmZlciA6IHJlY3QubGVmdCwgcmVjdC50b3BdLCBbY3Vyc29yTGVhdmVGcm9tQm90dG9tID8gaXNGbG9hdGluZ1RhbGxlciA/IHJlY3QucmlnaHQgLSBidWZmZXIgOiByZWN0LmxlZnQgOiByZWN0LnJpZ2h0IC0gYnVmZmVyLCByZWN0LmJvdHRvbV1dO1xuICAgICAgICAgICAgICByZXR1cm4gWy4uLmNvbW1vblBvaW50cywgY3Vyc29yUG9pbnRPbmUsIGN1cnNvclBvaW50VHdvXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnNvclBvaW50T25lID0gW3ggLSBidWZmZXIsIGlzRmxvYXRpbmdUYWxsZXIgPyB5ICsgYnVmZmVyIC8gMiA6IGN1cnNvckxlYXZlRnJvbUJvdHRvbSA/IHkgKyBidWZmZXIgKiA0IDogeSAtIGJ1ZmZlciAqIDRdO1xuICAgICAgICAgICAgICBjb25zdCBjdXJzb3JQb2ludFR3byA9IFt4IC0gYnVmZmVyLCBpc0Zsb2F0aW5nVGFsbGVyID8geSAtIGJ1ZmZlciAvIDIgOiBjdXJzb3JMZWF2ZUZyb21Cb3R0b20gPyB5ICsgYnVmZmVyICogNCA6IHkgLSBidWZmZXIgKiA0XTtcbiAgICAgICAgICAgICAgY29uc3QgY29tbW9uUG9pbnRzID0gW1tjdXJzb3JMZWF2ZUZyb21Cb3R0b20gPyByZWN0LmxlZnQgKyBidWZmZXIgOiBpc0Zsb2F0aW5nVGFsbGVyID8gcmVjdC5sZWZ0ICsgYnVmZmVyIDogcmVjdC5yaWdodCwgcmVjdC50b3BdLCBbY3Vyc29yTGVhdmVGcm9tQm90dG9tID8gaXNGbG9hdGluZ1RhbGxlciA/IHJlY3QubGVmdCArIGJ1ZmZlciA6IHJlY3QucmlnaHQgOiByZWN0LmxlZnQgKyBidWZmZXIsIHJlY3QuYm90dG9tXV07XG4gICAgICAgICAgICAgIHJldHVybiBbY3Vyc29yUG9pbnRPbmUsIGN1cnNvclBvaW50VHdvLCAuLi5jb21tb25Qb2ludHNdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaXNQb2ludEluUG9seWdvbihbY2xpZW50WCwgY2xpZW50WV0sIHJlY3RQb2x5KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoaGFzTGFuZGVkICYmICFpc092ZXJSZWZlcmVuY2VSZWN0KSB7XG4gICAgICAgIHJldHVybiBjbG9zZSgpO1xuICAgICAgfVxuICAgICAgaWYgKCFpc0xlYXZlICYmIHJlcXVpcmVJbnRlbnQpIHtcbiAgICAgICAgY29uc3QgY3Vyc29yU3BlZWQgPSBnZXRDdXJzb3JTcGVlZChldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKTtcbiAgICAgICAgY29uc3QgY3Vyc29yU3BlZWRUaHJlc2hvbGQgPSAwLjE7XG4gICAgICAgIGlmIChjdXJzb3JTcGVlZCAhPT0gbnVsbCAmJiBjdXJzb3JTcGVlZCA8IGN1cnNvclNwZWVkVGhyZXNob2xkKSB7XG4gICAgICAgICAgcmV0dXJuIGNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghaXNQb2ludEluUG9seWdvbihbY2xpZW50WCwgY2xpZW50WV0sIGdldFBvbHlnb24oW3gsIHldKSkpIHtcbiAgICAgICAgY2xvc2UoKTtcbiAgICAgIH0gZWxzZSBpZiAoIWhhc0xhbmRlZCAmJiByZXF1aXJlSW50ZW50KSB7XG4gICAgICAgIHRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KGNsb3NlLCA0MCk7XG4gICAgICB9XG4gICAgfTtcbiAgfTtcbiAgZm4uX19vcHRpb25zID0ge1xuICAgIGJsb2NrUG9pbnRlckV2ZW50c1xuICB9O1xuICByZXR1cm4gZm47XG59XG5cbmV4cG9ydCB7IENvbXBvc2l0ZSwgQ29tcG9zaXRlSXRlbSwgRmxvYXRpbmdBcnJvdywgRmxvYXRpbmdEZWxheUdyb3VwLCBGbG9hdGluZ0ZvY3VzTWFuYWdlciwgRmxvYXRpbmdMaXN0LCBGbG9hdGluZ05vZGUsIEZsb2F0aW5nT3ZlcmxheSwgRmxvYXRpbmdQb3J0YWwsIEZsb2F0aW5nVHJlZSwgaW5uZXIsIHNhZmVQb2x5Z29uLCB1c2VDbGljaywgdXNlQ2xpZW50UG9pbnQsIHVzZURlbGF5R3JvdXAsIHVzZURlbGF5R3JvdXBDb250ZXh0LCB1c2VEaXNtaXNzLCB1c2VGbG9hdGluZywgdXNlRmxvYXRpbmdOb2RlSWQsIHVzZUZsb2F0aW5nUGFyZW50Tm9kZUlkLCB1c2VGbG9hdGluZ1BvcnRhbE5vZGUsIHVzZUZsb2F0aW5nUm9vdENvbnRleHQsIHVzZUZsb2F0aW5nVHJlZSwgdXNlRm9jdXMsIHVzZUhvdmVyLCB1c2VJZCwgdXNlSW5uZXJPZmZzZXQsIHVzZUludGVyYWN0aW9ucywgdXNlTGlzdEl0ZW0sIHVzZUxpc3ROYXZpZ2F0aW9uLCB1c2VNZXJnZVJlZnMsIHVzZVJvbGUsIHVzZVRyYW5zaXRpb25TdGF0dXMsIHVzZVRyYW5zaXRpb25TdHlsZXMsIHVzZVR5cGVhaGVhZCB9O1xuIiwiaW1wb3J0IHsgb2Zmc2V0LCBhdXRvUGxhY2VtZW50LCBmbGlwLCBzaGlmdCwgYXJyb3cgfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QnO1xuXG5jb25zdCBnZXRNaWRkbGV3YXJlID0gKHtcbiAgYXJyb3dSZWYsXG4gIHBsYWNlbWVudFxufSkgPT4ge1xuICBjb25zdCBtaWRkbGV3YXJlID0gW107XG4gIG1pZGRsZXdhcmUucHVzaChvZmZzZXQoOCkpO1xuICBtaWRkbGV3YXJlLnB1c2gocGxhY2VtZW50ID09PSBcImF1dG9cIiA/IGF1dG9QbGFjZW1lbnQoKSA6IGZsaXAoKSk7XG4gIG1pZGRsZXdhcmUucHVzaChzaGlmdCh7IHBhZGRpbmc6IDggfSkpO1xuICBpZiAoYXJyb3dSZWY/LmN1cnJlbnQpIHtcbiAgICBtaWRkbGV3YXJlLnB1c2goYXJyb3coeyBlbGVtZW50OiBhcnJvd1JlZi5jdXJyZW50IH0pKTtcbiAgfVxuICByZXR1cm4gbWlkZGxld2FyZTtcbn07XG5jb25zdCBnZXRQbGFjZW1lbnQgPSAoeyBwbGFjZW1lbnQgfSkgPT4ge1xuICByZXR1cm4gcGxhY2VtZW50ID09PSBcImF1dG9cIiA/IHZvaWQgMCA6IHBsYWNlbWVudDtcbn07XG5jb25zdCBnZXRBcnJvd1BsYWNlbWVudCA9ICh7IHBsYWNlbWVudCB9KSA9PiB7XG4gIHJldHVybiB7XG4gICAgdG9wOiBcImJvdHRvbVwiLFxuICAgIHJpZ2h0OiBcImxlZnRcIixcbiAgICBib3R0b206IFwidG9wXCIsXG4gICAgbGVmdDogXCJyaWdodFwiXG4gIH1bcGxhY2VtZW50LnNwbGl0KFwiLVwiKVswXV07XG59O1xuXG5leHBvcnQgeyBnZXRBcnJvd1BsYWNlbWVudCwgZ2V0TWlkZGxld2FyZSwgZ2V0UGxhY2VtZW50IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1oZWxwZXJzLm1qcy5tYXBcbiIsImltcG9ydCB7IHVzZUZsb2F0aW5nLCBhdXRvVXBkYXRlLCB1c2VJbnRlcmFjdGlvbnMsIHVzZUNsaWNrLCB1c2VIb3Zlciwgc2FmZVBvbHlnb24sIHVzZURpc21pc3MsIHVzZVJvbGUgfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QnO1xuaW1wb3J0IHsgZ2V0UGxhY2VtZW50LCBnZXRNaWRkbGV3YXJlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9GbG9hdGluZy9oZWxwZXJzLm1qcyc7XG5cbmNvbnN0IHVzZUJhc2VGTG9hdGluZyA9ICh7XG4gIG9wZW4sXG4gIGFycm93UmVmLFxuICBwbGFjZW1lbnQgPSBcInRvcFwiLFxuICBzZXRPcGVuXG59KSA9PiB7XG4gIHJldHVybiB1c2VGbG9hdGluZyh7XG4gICAgcGxhY2VtZW50OiBnZXRQbGFjZW1lbnQoeyBwbGFjZW1lbnQgfSksXG4gICAgb3BlbixcbiAgICBvbk9wZW5DaGFuZ2U6IHNldE9wZW4sXG4gICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgbWlkZGxld2FyZTogZ2V0TWlkZGxld2FyZSh7IHBsYWNlbWVudCwgYXJyb3dSZWYgfSlcbiAgfSk7XG59O1xuY29uc3QgdXNlRmxvYXRpbmdJbnRlcmFjdGlvbnMgPSAoe1xuICBjb250ZXh0LFxuICB0cmlnZ2VyLFxuICByb2xlID0gXCJ0b29sdGlwXCIsXG4gIGludGVyYWN0aW9ucyA9IFtdXG59KSA9PiB7XG4gIHJldHVybiB1c2VJbnRlcmFjdGlvbnMoW1xuICAgIHVzZUNsaWNrKGNvbnRleHQsIHsgZW5hYmxlZDogdHJpZ2dlciA9PT0gXCJjbGlja1wiIH0pLFxuICAgIHVzZUhvdmVyKGNvbnRleHQsIHtcbiAgICAgIGVuYWJsZWQ6IHRyaWdnZXIgPT09IFwiaG92ZXJcIixcbiAgICAgIGhhbmRsZUNsb3NlOiBzYWZlUG9seWdvbigpXG4gICAgfSksXG4gICAgdXNlRGlzbWlzcyhjb250ZXh0KSxcbiAgICB1c2VSb2xlKGNvbnRleHQsIHsgcm9sZSB9KSxcbiAgICAuLi5pbnRlcmFjdGlvbnNcbiAgXSk7XG59O1xuXG5leHBvcnQgeyB1c2VCYXNlRkxvYXRpbmcsIHVzZUZsb2F0aW5nSW50ZXJhY3Rpb25zIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2UtZmxvYXRpbmcubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4cywgRnJhZ21lbnQsIGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHVzZUZvY3VzLCBhdXRvVXBkYXRlIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcbmltcG9ydCB7IHVzZVJlZiwgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyB1c2VCYXNlRkxvYXRpbmcsIHVzZUZsb2F0aW5nSW50ZXJhY3Rpb25zIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlLWZsb2F0aW5nLm1qcyc7XG5pbXBvcnQgeyBnZXRBcnJvd1BsYWNlbWVudCB9IGZyb20gJy4vaGVscGVycy5tanMnO1xuXG5jb25zdCBGbG9hdGluZyA9ICh7XG4gIGFuaW1hdGlvbiA9IFwiZHVyYXRpb24tMzAwXCIsXG4gIGFycm93ID0gdHJ1ZSxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgY29udGVudCxcbiAgcGxhY2VtZW50ID0gXCJ0b3BcIixcbiAgc3R5bGUgPSBcImRhcmtcIixcbiAgdGhlbWUsXG4gIHRyaWdnZXIgPSBcImhvdmVyXCIsXG4gIG1pbldpZHRoLFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCBhcnJvd1JlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBmbG9hdGluZ1Byb3BlcnRpZXMgPSB1c2VCYXNlRkxvYXRpbmcoe1xuICAgIG9wZW4sXG4gICAgcGxhY2VtZW50LFxuICAgIGFycm93UmVmLFxuICAgIHNldE9wZW5cbiAgfSk7XG4gIGNvbnN0IHtcbiAgICBjb250ZXh0LFxuICAgIG1pZGRsZXdhcmVEYXRhOiB7IGFycm93OiB7IHg6IGFycm93WCwgeTogYXJyb3dZIH0gPSB7fSB9LFxuICAgIHJlZnMsXG4gICAgc3RyYXRlZ3ksXG4gICAgdXBkYXRlLFxuICAgIHgsXG4gICAgeVxuICB9ID0gZmxvYXRpbmdQcm9wZXJ0aWVzO1xuICBjb25zdCBmb2N1cyA9IHVzZUZvY3VzKGNvbnRleHQpO1xuICBjb25zdCB7IGdldEZsb2F0aW5nUHJvcHMsIGdldFJlZmVyZW5jZVByb3BzIH0gPSB1c2VGbG9hdGluZ0ludGVyYWN0aW9ucyh7XG4gICAgY29udGV4dCxcbiAgICByb2xlOiBcInRvb2x0aXBcIixcbiAgICB0cmlnZ2VyLFxuICAgIGludGVyYWN0aW9uczogW2ZvY3VzXVxuICB9KTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocmVmcy5yZWZlcmVuY2UuY3VycmVudCAmJiByZWZzLmZsb2F0aW5nLmN1cnJlbnQgJiYgb3Blbikge1xuICAgICAgcmV0dXJuIGF1dG9VcGRhdGUocmVmcy5yZWZlcmVuY2UuY3VycmVudCwgcmVmcy5mbG9hdGluZy5jdXJyZW50LCB1cGRhdGUpO1xuICAgIH1cbiAgfSwgW29wZW4sIHJlZnMuZmxvYXRpbmcsIHJlZnMucmVmZXJlbmNlLCB1cGRhdGVdKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKEZyYWdtZW50LCB7IGNoaWxkcmVuOiBbXG4gICAgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFwiZGl2XCIsXG4gICAgICB7XG4gICAgICAgIHJlZjogcmVmcy5zZXRSZWZlcmVuY2UsXG4gICAgICAgIGNsYXNzTmFtZTogdGhlbWUudGFyZ2V0LFxuICAgICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtdG9vbHRpcC10YXJnZXRcIixcbiAgICAgICAgLi4uZ2V0UmVmZXJlbmNlUHJvcHMoKSxcbiAgICAgICAgY2hpbGRyZW5cbiAgICAgIH1cbiAgICApLFxuICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFxuICAgICAgXCJkaXZcIixcbiAgICAgIHtcbiAgICAgICAgcmVmOiByZWZzLnNldEZsb2F0aW5nLFxuICAgICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtdG9vbHRpcFwiLFxuICAgICAgICAuLi5nZXRGbG9hdGluZ1Byb3BzKHtcbiAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgICAgICB0aGVtZS5iYXNlLFxuICAgICAgICAgICAgYW5pbWF0aW9uICYmIGAke3RoZW1lLmFuaW1hdGlvbn0gJHthbmltYXRpb259YCxcbiAgICAgICAgICAgICFvcGVuICYmIHRoZW1lLmhpZGRlbixcbiAgICAgICAgICAgIHRoZW1lLnN0eWxlW3N0eWxlXSxcbiAgICAgICAgICAgIGNsYXNzTmFtZVxuICAgICAgICAgICksXG4gICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdHJhdGVneSxcbiAgICAgICAgICAgIHRvcDogeSA/PyBcIiBcIixcbiAgICAgICAgICAgIGxlZnQ6IHggPz8gXCIgXCIsXG4gICAgICAgICAgICBtaW5XaWR0aFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgfSksXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogdGhlbWUuY29udGVudCwgY2hpbGRyZW46IGNvbnRlbnQgfSksXG4gICAgICAgICAgYXJyb3cgJiYgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZShcbiAgICAgICAgICAgICAgICB0aGVtZS5hcnJvdy5iYXNlLFxuICAgICAgICAgICAgICAgIHN0eWxlID09PSBcImRhcmtcIiAmJiB0aGVtZS5hcnJvdy5zdHlsZS5kYXJrLFxuICAgICAgICAgICAgICAgIHN0eWxlID09PSBcImxpZ2h0XCIgJiYgdGhlbWUuYXJyb3cuc3R5bGUubGlnaHQsXG4gICAgICAgICAgICAgICAgc3R5bGUgPT09IFwiYXV0b1wiICYmIHRoZW1lLmFycm93LnN0eWxlLmF1dG9cbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLXRvb2x0aXAtYXJyb3dcIixcbiAgICAgICAgICAgICAgcmVmOiBhcnJvd1JlZixcbiAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICB0b3A6IGFycm93WSA/PyBcIiBcIixcbiAgICAgICAgICAgICAgICBsZWZ0OiBhcnJvd1ggPz8gXCIgXCIsXG4gICAgICAgICAgICAgICAgcmlnaHQ6IFwiIFwiLFxuICAgICAgICAgICAgICAgIGJvdHRvbTogXCIgXCIsXG4gICAgICAgICAgICAgICAgW2dldEFycm93UGxhY2VtZW50KHsgcGxhY2VtZW50OiBmbG9hdGluZ1Byb3BlcnRpZXMucGxhY2VtZW50IH0pXTogdGhlbWUuYXJyb3cucGxhY2VtZW50XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGNoaWxkcmVuOiBcIlxceEEwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICApXG4gIF0gfSk7XG59O1xuXG5leHBvcnQgeyBGbG9hdGluZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RmxvYXRpbmcubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBGbG9hdGluZyB9IGZyb20gJy4uL0Zsb2F0aW5nL0Zsb2F0aW5nLm1qcyc7XG5cbmNvbnN0IFRvb2x0aXAgPSAoe1xuICBhbmltYXRpb24gPSBcImR1cmF0aW9uLTMwMFwiLFxuICBhcnJvdyA9IHRydWUsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGNvbnRlbnQsXG4gIHBsYWNlbWVudCA9IFwidG9wXCIsXG4gIHN0eWxlID0gXCJkYXJrXCIsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICB0cmlnZ2VyID0gXCJob3ZlclwiLFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLnRvb2x0aXAsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgRmxvYXRpbmcsXG4gICAge1xuICAgICAgYW5pbWF0aW9uLFxuICAgICAgYXJyb3csXG4gICAgICBjb250ZW50LFxuICAgICAgcGxhY2VtZW50LFxuICAgICAgc3R5bGUsXG4gICAgICB0aGVtZSxcbiAgICAgIHRyaWdnZXIsXG4gICAgICBjbGFzc05hbWUsXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuXG4gICAgfVxuICApO1xufTtcblRvb2x0aXAuZGlzcGxheU5hbWUgPSBcIlRvb2x0aXBcIjtcblxuZXhwb3J0IHsgVG9vbHRpcCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VG9vbHRpcC5tanMubWFwXG4iLCIvLyBUSElTIEZJTEUgSVMgQVVUTyBHRU5FUkFURURcbmltcG9ydCB7IEdlbkljb24gfSBmcm9tICcuLi9saWIvaW5kZXgubWpzJztcbmV4cG9ydCBmdW5jdGlvbiBGYTQyR3JvdXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDk2VjQxNkMzNDEuMDExIDQxNiAzNjEuODE4IDQxMS44NjEgMzgxLjIzIDQwMy44MjFDNDAwLjY0MSAzOTUuNzggNDE4LjI4IDM4My45OTUgNDMzLjEzOCAzNjkuMTM4QzQ0Ny45OTUgMzU0LjI4IDQ1OS43OCAzMzYuNjQxIDQ2Ny44MjEgMzE3LjIzQzQ3NS44NjEgMjk3LjgxOCA0ODAgMjc3LjAxMSA0ODAgMjU2QzQ4MCAyMzQuOTg5IDQ3NS44NjEgMjE0LjE4MiA0NjcuODIxIDE5NC43NzFDNDU5Ljc4IDE3NS4zNTkgNDQ3Ljk5NSAxNTcuNzIgNDMzLjEzOCAxNDIuODYzQzQxOC4yOCAxMjguMDA1IDQwMC42NDEgMTE2LjIyIDM4MS4yMyAxMDguMTc5QzM2MS44MTggMTAwLjEzOSAzNDEuMDExIDk2IDMyMCA5NlpNMCAyNTZMMTYwLjAwMiA0MTZMMzIwLjAwMyAyNTZMMTYwLjAwMiA5NkwwIDI1NlpNNDgwIDI1NkM0ODAgMjc3LjAxMSA0ODQuMTM4IDI5Ny44MTggNDkyLjE3OSAzMTcuMjNDNTAwLjIxOSAzMzYuNjQzIDUxMi4wMDUgMzU0LjI4IDUyNi44NjIgMzY5LjEzOEM1NDEuNzIgMzgzLjk5NSA1NTkuMzU3IDM5NS43ODEgNTc4Ljc3IDQwMy44MjFDNTk4LjE4MiA0MTEuODYyIDYxOC45ODkgNDE2IDY0MCA0MTZWOTZDNTk3LjU2NSA5NiA1NTYuODY5IDExMi44NTggNTI2Ljg2MiAxNDIuODYzQzQ5Ni44NTcgMTcyLjg2OSA0ODAgMjEzLjU2NSA0ODAgMjU2WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmE1MDBQeCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDMuMyAzNDQuM2MtNi41LTE0LjItNi45LTE4LjMgNy40LTIzLjEgMjUuNi04IDggOS4yIDQzLjIgNDkuMmguM3YtOTMuOWMxLjItNTAuMiA0NC05Mi4yIDk3LjctOTIuMiA1My45IDAgOTcuNyA0My41IDk3LjcgOTYuOCAwIDYzLjQtNjAuOCAxMTMuMi0xMjguNSA5My4zLTEwLjUtNC4yLTIuMS0zMS43IDguNS0yOC42IDUzIDAgODkuNC0xMC4xIDg5LjQtNjQuNCAwLTYxLTc3LjEtODkuNi0xMTYuOS00NC42LTIzLjUgMjYuNC0xNy42IDQyLjEtMTcuNiAxNTcuNiA1MC43IDMxIDExOC4zIDIyIDE2MC40LTIwLjEgMjQuOC0yNC44IDM4LjUtNTggMzguNS05MyAwLTM1LjItMTMuOC02OC4yLTM4LjgtOTMuMy0yNC44LTI0LjgtNTcuOC0zOC41LTkzLjMtMzguNXMtNjguOCAxMy44LTkzLjUgMzguNWMtLjMuMy0xNiAxNi41LTIxLjIgMjMuOWwtLjUuNmMtMy4zIDQuNy02LjMgOS4xLTIwLjEgNi4xLTYuOS0xLjctMTQuMy01LjgtMTQuMy0xMS44VjIwYzAtNSAzLjktMTAuNSAxMC41LTEwLjVoMjQxLjNjOC4zIDAgOC4zIDExLjYgOC4zIDE1LjEgMCAzLjkgMCAxNS4xLTguMyAxNS4xSDEzMC4zdjEzMi45aC4zYzEwNC4yLTEwOS44IDI4Mi44LTM2IDI4Mi44IDEwOC45IDAgMTc4LjEtMjQ0LjggMjIwLjMtMzEwLjEgNjIuOHptNjMuMy0yNjAuOGMtLjUgNC4yIDQuNiAyNC41IDE0LjYgMjAuNkMzMDYgNTYuNiAzODQgMTQ0LjUgMzkwLjYgMTQ0LjVjNC44IDAgMjIuOC0xNS4zIDE0LjMtMjIuOC05My4yLTg5LTIzNC41LTU3LTIzOC4zLTM4LjJ6TTM5MyA0MTQuN0MyODMgNTI0LjYgOTQgNDc1LjUgNjEgMzEwLjVjMC0xMi4yLTMwLjQtNy40LTI4LjkgMy4zIDI0IDE3My40IDI0NiAyNTYuOSAzODEuNiAxMjEuMyA2LjktNy44LTEyLjYtMjguNC0yMC43LTIwLjR6TTIxMy42IDMwNi42YzAgNCA0LjMgNy4zIDUuNSA4LjUgMyAzIDYuMSA0LjQgOC41IDQuNCAzLjggMCAyLjYuMiAyMi4zLTE5LjUgMTkuNiAxOS4zIDE5LjEgMTkuNSAyMi4zIDE5LjUgNS40IDAgMTguNS0xMC40IDEwLjctMTguMkwyNjUuNiAyODRsMTguMi0xOC4yYzYuMy02LjgtMTAuMS0yMS44LTE2LjItMTUuN0wyNDkuNyAyNjhjLTE4LjYtMTguOC0xOC40LTE5LjUtMjEuNS0xOS41LTUgMC0xOCAxMS43LTEyLjQgMTcuM0wyMzQgMjg0Yy0xOC4xIDE3LjktMjAuNCAxOS4yLTIwLjQgMjIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWNjZXNzaWJsZUljb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDIzLjkgMjU1LjhMNDExIDQxMy4xYy0zLjMgNDAuNy02My45IDM1LjEtNjAuNi00LjlsMTAtMTIyLjUtNDEuMSAyLjNjMTAuMSAyMC43IDE1LjggNDMuOSAxNS44IDY4LjUgMCA0MS4yLTE2LjEgNzguNy00Mi4zIDEwNi41bC0zOS4zLTM5LjNjNTcuOS02My43IDEzLjEtMTY3LjItNzQtMTY3LjItMjUuOSAwLTQ5LjUgOS45LTY3LjIgMjZMNzMgMjQzLjJjMjItMjAuNyA1MC4xLTM1LjEgODEuNC00MC4ybDc1LjMtODUuNy00Mi42LTI0LjgtNTEuNiA0NmMtMzAgMjYuOC03MC42LTE4LjUtNDAuNS00NS40bDY4LTYwLjdjOS44LTguOCAyNC4xLTEwLjIgMzUuNS0zLjYgMCAwIDEzOS4zIDgwLjkgMTM5LjUgODEuMSAxNi4yIDEwLjEgMjAuNyAzNiA2LjEgNTIuNkwyODUuNyAyMjlsMTA2LjEtNS45YzE4LjUtMS4xIDMzLjYgMTQuNCAzMi4xIDMyLjd6bS02NC45LTE1NGMyOC4xIDAgNTAuOS0yMi44IDUwLjktNTAuOUM0MDkuOSAyMi44IDM4Ny4xIDAgMzU5IDBjLTI4LjEgMC01MC45IDIyLjgtNTAuOSA1MC45IDAgMjguMSAyMi44IDUwLjkgNTAuOSA1MC45ek0xNzkuNiA0NTYuNWMtODAuNiAwLTEyNy40LTkwLjYtODIuNy0xNTYuMWwtMzkuNy0zOS43QzM2LjQgMjg3IDI0IDMyMC4zIDI0IDM1Ni40YzAgMTMwLjcgMTUwLjcgMjAxLjQgMjUxLjQgMTIyLjVsLTM5LjctMzkuN2MtMTYgMTAuOS0zNS4zIDE3LjMtNTYuMSAxNy4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBY2N1c29mdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjIuMSAyNTJ2LTFsLTUxLjItNjUuOHMtMTIgMS42LTI1IDE1LjFjLTkgOS4zLTI0Mi4xIDIzOS4xLTI0My40IDI0MC45LTcgMTAgMS42IDYuOCAxNS43IDEuNy44IDAgMTE0LjUtMzYuNiAxMTQuNS0zNi42LjUtLjYtLjEtLjEuNi0uNi0uNC01LjEtLjgtMjYuMi0xLTI3LjctLjYtNS4yIDIuMi02LjkgNy04LjlsOTIuNi0zMy44Yy42LS44IDg4LjUtODEuNyA5MC4yLTgzLjN6bTE2MC4xIDEyMC4xYzEzLjMgMTYuMSAyMC43IDEzLjMgMzAuOCA5LjMgMy4yLTEuMiAxMTUuNC00Ny42IDExNy44LTQ4LjkgOC00LjMtMS43LTE2LjctNy4yLTIzLjQtMi4xLTIuNS0yMDUuMS0yNDUuNi0yMDcuMi0yNDguMy05LjctMTIuMi0xNC4zLTEyLjktMzguNC0xMi44LTEwLjIgMC0xMDYuOC41LTExNi41LjYtMTkuMi4xLTMyLjktLjMtMTkuMiAxNi45QzI1MCA3NSA0NzYuNSAzNjUuMiA0ODIuMiAzNzIuMXptMTUyLjcgMS42Yy0yLjMtLjMtMjQuNi00LjctMzgtNy4yIDAgMC0xMTUgNTAuNC0xMTcuNSA1MS42LTE2IDcuMy0yNi45LTMuMi0zNi43LTE0LjZsLTU3LjEtNzRjLTUuNC0uOS02MC40LTkuNi02NS4zLTkuMy0zLjEuMi05LjYuOC0xNC40IDIuOS00LjkgMi4xLTE0NS4yIDUyLjgtMTUwLjIgNTQuNy01LjEgMi0xMS40IDMuNi0xMS4xIDcuNi4yIDIuNSAyIDIuNiA0LjYgMy41IDIuNy44IDMwMC45IDY3LjYgMzA4IDY5LjEgMTUuNiAzLjMgMzguNSAxMC41IDUzLjYgMS43IDIuMS0xLjIgMTIzLjgtNzYuNCAxMjUuOC03Ny44IDUuNC00IDQuMy02LjgtMS43LTguMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWRuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCAxNjcuNWw2NC45IDk4LjhIMTgzLjFsNjQuOS05OC44ek00OTYgMjU2YzAgMTM2LjktMTExLjEgMjQ4LTI0OCAyNDhTMCAzOTIuOSAwIDI1NiAxMTEuMSA4IDI0OCA4czI0OCAxMTEuMSAyNDggMjQ4em0tOTkuOCA4Mi43TDI0OCAxMTUuNSA5OS44IDMzOC43aDMwLjRsMzMuNi01MS43aDE2OC42bDMzLjYgNTEuN2gzMC4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBZHZlcnNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODIuMSAzMkgyOC43QzUuOCAzMiAwIDM3LjkgMCA2MC45djM5MC4yQzAgNDc0LjQgNS44IDQ4MCAyOC43IDQ4MGg0NTMuNGMyNC40IDAgMjkuOS01LjIgMjkuOS0yOS43VjYyLjJjMC0yNC42LTUuNC0zMC4yLTI5LjktMzAuMnpNMTc4LjQgMjIwLjNjLTI3LjUtMjAuMi03Mi4xLTguNy04NC4yIDIzLjQtNC4zIDExLjEtOS4zIDkuNS0xNy41IDguMy05LjctMS41LTE3LjItMy4yLTIyLjUtNS41LTI4LjgtMTEuNCA4LjYtNTUuMyAyNC45LTY0LjMgNDEuMS0yMS40IDgzLjQtMjIuMiAxMjUuMy00LjggNDAuOSAxNi44IDM0LjUgNTkuMiAzNC41IDEyOC41IDIuNyAyNS44LTQuMyA1OC4zIDkuMyA4OC44IDEuOSA0LjQuNCA3LjktMi43IDEwLjctOC40IDYuNy0zOS4zIDIuMi00Ni42LTcuNC0xLjktMi4yLTEuOC0zLjYtMy45LTYuMi0zLjYtMy45LTcuMy0yLjItMTEuOSAxLTU3LjQgMzYuNC0xNDAuMyAyMS40LTE0Ny00My4zLTMuMS0yOS4zIDEyLjQtNTcuMSAzOS42LTcxIDM4LjItMTkuNSAxMTIuMi0xMS44IDExNC0zMC45IDEuMS0xMC4yLTEuOS0yMC4xLTExLjMtMjcuM3ptMjg2LjcgMjIyYzAgMTUuMS0xMS4xIDkuOS0xNy44IDkuOUg1Mi40Yy03LjQgMC0xOC4yIDQuOC0xNy44LTEwLjcuNC0xMy45IDEwLjUtOS4xIDE3LjEtOS4xIDEzMi4zLS40IDI2NC41LS40IDM5Ni44IDAgNi44IDAgMTYuNi00LjQgMTYuNiA5Ljl6bTMuOC0zNDAuNXYyOTFjMCA1LjctLjcgMTMuOS04LjEgMTMuOS0xMi40LS40LTI3LjUgNy4xLTM2LjEtNS42LTUuOC04LjctNy44LTQtMTIuNC0xLjItNTMuNCAyOS43LTEyOC4xIDcuMS0xNDQuNC04NS4yLTYuMS0zMy40LS43LTY3LjEgMTUuNy0xMDAgMTEuOC0yMy45IDU2LjktNzYuMSAxMzYuMS0zMC41di03MWMwLTI2LjItLjEtMjYuMiAyNi0yNi4yIDMuMSAwIDYuNi40IDkuNyAwIDEwLjEtLjggMTMuNiA0LjQgMTMuNiAxNC4zLS4xLjItLjEuMy0uMS41em0tNTEuNSAyMzIuM2MtMTkuNSA0Ny42LTcyLjkgNDMuMy05MCA1LjItMTUuMS0zMy4zLTE1LjUtNjguMi40LTEwMS41IDE2LjMtMzQuMSA1OS43LTM1LjcgODEuNS00LjggMjAuNiAyOC44IDE0LjkgODQuNiA4LjEgMTAxLjF6bS0yOTQuOCAzNS4zYy03LjUtMS4zLTMzLTMuMy0zMy43LTI3LjgtLjQtMTMuOSA3LjgtMjMgMTkuOC0yNS44IDI0LjQtNS45IDQ5LjMtOS45IDczLjctMTQuNyA4LjktMiA3LjQgNC40IDcuOCA5LjUgMS40IDMzLTI2LjEgNTkuMi02Ny42IDU4Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFmZmlsaWF0ZXRoZW1lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1OS43IDIzNy40QzEwOC40IDMwOC4zIDQzLjEgMzQ4LjIgMTQgMzI2LjYtMTUuMiAzMDQuOSAyLjggMjMwIDU0LjIgMTU5LjFjNTEuMy03MC45IDExNi42LTExMC44IDE0NS43LTg5LjIgMjkuMSAyMS42IDExLjEgOTYuNi00MC4yIDE2Ny41em0zNTEuMi01Ny4zQzQzNy4xIDMwMy41IDMxOSAzNjcuOCAyNDYuNCAzMjMuN2MtMjUtMTUuMi00MS4zLTQxLjItNDktNzMuOC0zMy42IDY0LjgtOTIuOCAxMTMuOC0xNjQuMSAxMzMuMiA0OS44IDU5LjMgMTI0LjEgOTYuOSAyMDcgOTYuOSAxNTAgMCAyNzEuNi0xMjMuMSAyNzEuNi0yNzQuOS4xLTguNS0uMy0xNi44LTEtMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFpcmJuYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMzczLjEyYy0yNS4yNC0zMS42Ny00MC4wOC01OS40My00NS04My4xOC0yMi41NS04OCAxMTIuNjEtODggOTAuMDYgMC01LjQ1IDI0LjI1LTIwLjI5IDUyLTQ1IDgzLjE4em0xMzguMTUgNzMuMjNjLTQyLjA2IDE4LjMxLTgzLjY3LTEwLjg4LTExOS4zLTUwLjQ3IDEwMy45LTEzMC4wNyA0Ni4xMS0yMDAtMTguODUtMjAwLTU0LjkyIDAtODUuMTYgNDYuNTEtNzMuMjggMTAwLjUgNi45MyAyOS4xOSAyNS4yMyA2Mi4zOSA1NC40MyA5OS41LTMyLjUzIDM2LjA1LTYwLjU1IDUyLjY5LTg1LjE1IDU0LjkyLTUwIDcuNDMtODkuMTEtNDEuMDYtNzEuMy05MS4wOSAxNS4xLTM5LjE2IDExMS43Mi0yMzEuMTggMTE1Ljg3LTI0MS41NiAxNS43NS0zMC4wNyAyNS41Ni01Ny40IDU5LjM4LTU3LjQgMzIuMzQgMCA0My40IDI1Ljk0IDYwLjM3IDU5Ljg3IDM2IDcwLjYyIDg5LjM1IDE3Ny40OCAxMTQuODQgMjM5LjA5IDEzLjE3IDMzLjA3LTEuMzcgNzEuMjktMzcuMDEgODYuNjR6bTQ3LTEzNi4xMkMyODAuMjcgMzUuOTMgMjczLjEzIDMyIDIyNCAzMmMtNDUuNTIgMC02NC44NyAzMS42Ny04NC42NiA3Mi43OUMzMy4xOCAzMTcuMSAyMi44OSAzNDcuMTkgMjIgMzQ5LjgxLTMuMjIgNDE5LjE0IDQ4Ljc0IDQ4MCAxMTEuNjMgNDgwYzIxLjcxIDAgNjAuNjEtNi4wNiAxMTIuMzctNjIuNCA1OC42OCA2My43OCAxMDEuMjYgNjIuNCAxMTIuMzcgNjIuNCA2Mi44OS4wNSAxMTQuODUtNjAuODYgODkuNjEtMTMwLjE5LjAyLTMuODktMTYuODItMzguOS0xNi44Mi0zOS41OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWxnb2xpYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMEMxMTYuMSAwIDIgMTEyLjcgMCAyNTIuMUMtMiAzOTMuNiAxMTIuOSA1MTAuOCAyNTQuNSA1MTEuNmM0My43IC4zIDg1LjktMTAuNCAxMjMuMy0zMC43YzMuNi0yIDQuMi03IDEuMS05LjdsLTI0LTIxLjJjLTQuOS00LjMtMTEuOC01LjUtMTcuOC0zYy0yNi4xIDExLjEtNTQuNSAxNi44LTgzLjcgMTYuNEMxMzkgNDYxLjkgNDYuNSAzNjYuOCA0OC4zIDI1Mi40QzUwLjEgMTM5LjUgMTQyLjYgNDguMiAyNTYgNDguMkg0NjMuN1Y0MTcuMkwzNDUuOSAzMTIuNWMtMy44LTMuNC05LjctMi43LTEyLjcgMS4zYy0xOC45IDI1LTQ5LjcgNDAuNi04My45IDM4LjJjLTQ3LjUtMy4zLTg1LjktNDEuNS04OS41LTg4LjljLTQuMi01Ni42IDQwLjYtMTAzLjkgOTYuMy0xMDMuOWM1MC40IDAgOTEuOSAzOC44IDk2LjIgODhjLjQgNC40IDIuNCA4LjUgNS43IDExLjRsMzAuNyAyNy4yYzMuNSAzLjEgOSAxLjIgOS45LTMuNGMyLjItMTEuOCAzLTI0LjIgMi4xLTM2LjhjLTQuOS03Mi02My4zLTEzMC0xMzUuNC0xMzQuNGMtODIuNy01LjEtMTUxLjggNTkuNS0xNTQgMTQwLjZjLTIuMSA3OC45IDYyLjYgMTQ3IDE0MS42IDE0OC43YzMzIC43IDYzLjYtOS42IDg4LjMtMjcuNkw0OTUgNTA5LjRjNi42IDUuOCAxNyAxLjIgMTctNy43VjkuN2MwLTUuNC00LjQtOS43LTkuNy05LjdIMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbGlwYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzc3Ljc0IDMySDcwLjI2QzMxLjQxIDMyIDAgNjMuNDEgMCAxMDIuMjZ2MzA3LjQ4QzAgNDQ4LjU5IDMxLjQxIDQ4MCA3MC4yNiA0ODBoMzA3LjQ4YzM4LjUyIDAgNjkuNzYtMzEuMDggNzAuMjYtNjkuNi00NS45Ni0yNS42Mi0xMTAuNTktNjAuMzQtMTcxLjYtODguNDQtMzIuMDcgNDMuOTctODQuMTQgODEtMTQ4LjYyIDgxLTcwLjU5IDAtOTMuNzMtNDUuMy05Ny4wNC03Ni4zNy0zLjk3LTM5LjAxIDE0Ljg4LTgxLjUgOTkuNTItODEuNSAzNS4zOCAwIDc5LjM1IDEwLjI1IDEyNy4xMyAyNC45NiAxNi41My0zMC4wOSAyNi40NS02MC4zNCAyNi40NS02MC4zNGgtMTc4LjJ2LTE2LjdoOTIuMDh2LTMxLjI0SDg4LjI4di0xOS4wMWgxMDkuNDRWOTIuMzRoNTAuOTJ2NTAuNDJoMTA5LjQ0djE5LjAxSDI0OC42M3YzMS4yNGg4OC43N3MtMTUuMjEgNDYuNjItMzguMzUgOTAuOTJjNDguOTMgMTYuNyAxMDAuMDEgMzYuMDQgMTQ4LjYyIDUyLjc0VjEwMi4yNkM0NDcuODMgNjMuNTcgNDE2LjQzIDMyIDM3Ny43NCAzMnpNNDcuMjggMzIyLjk1Yy45OSAyMC4xNyAxMC4yNSA1My43MyA2OS45MyA1My43MyA1Mi4wNyAwIDkyLjU4LTM5LjY4IDExNy44Ny03Mi45LTQ0LjYzLTE4LjY4LTg0LjQ4LTMxLjQxLTEwOS40NC0zMS40MS02Ny40NSAwLTc5LjM1IDMzLjA2LTc4LjM2IDUwLjU4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbWF6b25QYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMzI1LjNjMi4zLTQuMiA1LjItNC45IDkuNy0yLjUgMTAuNCA1LjYgMjAuNiAxMS40IDMxLjIgMTYuN2E1OTUuODggNTk1Ljg4IDAgMCAwIDEyNy40IDQ2LjMgNjE2LjYxIDYxNi42MSAwIDAgMCA2My4yIDExLjggNjAzLjMzIDYwMy4zMyAwIDAgMCA5NSA1LjJjMTcuNC0uNCAzNC44LTEuOCA1Mi4xLTMuOGE2MDMuNjYgNjAzLjY2IDAgMCAwIDE2My4zLTQyLjhjMi45LTEuMiA1LjktMiA5LjEtMS4yIDYuNyAxLjggOSA5IDQuMSAxMy45YTcwIDcwIDAgMCAxLTkuNiA3LjRjLTMwLjcgMjEuMS02NC4yIDM2LjQtOTkuNiA0Ny45YTQ3My4zMSA0NzMuMzEgMCAwIDEtNzUuMSAxNy42IDQzMSA0MzEgMCAwIDEtNTMuMiA0LjggMjEuMyAyMS4zIDAgMCAwLTIuNS4zSDMwOGEyMS4zIDIxLjMgMCAwIDAtMi41LS4zYy0zLjYtLjItNy4yLS4zLTEwLjctLjRhNDI2LjMgNDI2LjMgMCAwIDEtNTAuNC01LjNBNDQ4LjQgNDQ4LjQgMCAwIDEgMTY0IDQyMGE0NDMuMzMgNDQzLjMzIDAgMCAxLTE0NS42LTg3Yy0xLjgtMS42LTMtMy44LTQuNC01Ljd6TTE3MiA2NS4xbC00LjMuNmE4MC45MiA4MC45MiAwIDAgMC0zOCAxNS4xYy0yLjQgMS43LTQuNiAzLjUtNy4xIDUuNGE0LjI5IDQuMjkgMCAwIDEtLjQtMS40Yy0uNC0yLjctLjgtNS41LTEuMy04LjItLjctNC42LTMtNi42LTcuNi02LjZoLTExLjVjLTYuOSAwLTguMiAxLjMtOC4yIDguMnYyMDkuM2MwIDEgMCAyIC4xIDMgLjIgMyAyIDQuOSA0LjkgNSA3IC4xIDE0LjEuMSAyMS4xIDAgMi45IDAgNC43LTIgNS01IC4xLTEgLjEtMiAuMS0zdi03Mi40YzEuMS45IDEuNyAxLjQgMi4yIDEuOSAxNy45IDE0LjkgMzguNSAxOS44IDYxIDE1LjQgMjAuNC00IDM0LjYtMTYuNSA0My44LTM0LjkgNy0xMy45IDkuOS0yOC43IDEwLjMtNDQuMS41LTE3LjEtMS4yLTMzLjktOC4xLTQ5LjgtOC41LTE5LjYtMjIuNi0zMi41LTQzLjktMzYuOS0zLjItLjctNi41LTEtOS44LTEuNS0yLjgtLjEtNS41LS4xLTguMy0uMXpNMTI0LjYgMTA3YTMuNDggMy40OCAwIDAgMSAxLjctMy4zYzEzLjctOS41IDI4LjgtMTQuNSA0NS42LTEzLjIgMTQuOSAxLjEgMjcuMSA4LjQgMzMuNSAyNS45IDMuOSAxMC43IDQuOSAyMS44IDQuOSAzMyAwIDEwLjQtLjggMjAuNi00IDMwLjYtNi44IDIxLjMtMjIuNCAyOS40LTQyLjYgMjguNS0xNC0uNi0yNi4yLTYtMzcuNC0xMy45YTMuNTcgMy41NyAwIDAgMS0xLjctMy4zYy4xLTE0LjEgMC0yOC4xIDAtNDIuMnMuMS0yOCAwLTQyLjF6bTIwNS43LTQxLjljLTEgLjEtMiAuMy0yLjkuNGExNDggMTQ4IDAgMCAwLTI4LjkgNC4xYy02LjEgMS42LTEyIDMuOC0xNy45IDUuOC0zLjYgMS4yLTUuNCAzLjgtNS4zIDcuNy4xIDMuMy0uMSA2LjYgMCA5LjkuMSA0LjggMi4xIDYuMSA2LjggNC45IDcuOC0yIDE1LjYtNC4yIDIzLjUtNS43IDEyLjMtMi4zIDI0LjctMy4zIDM3LjItMS40IDYuNSAxIDEyLjYgMi45IDE2LjggOC40IDMuNyA0LjggNS4xIDEwLjUgNS4zIDE2LjQuMyA4LjMuMiAxNi42LjMgMjQuOWE3Ljg0IDcuODQgMCAwIDEtLjIgMS40Yy0uNS0uMS0uOSAwLTEuMy0uMWExODAuNTYgMTgwLjU2IDAgMCAwLTMyLTQuOWMtMTEuMy0uNi0yMi41LjEtMzMuMyAzLjktMTIuOSA0LjUtMjMuMyAxMi4zLTI5LjQgMjQuOS00LjcgOS44LTUuNCAyMC4yLTMuOSAzMC43IDIgMTQgOSAyNC44IDIxLjQgMzEuNyAxMS45IDYuNiAyNC44IDcuNCAzNy45IDUuNCAxNS4xLTIuMyAyOC41LTguNyA0MC4zLTE4LjRhNy4zNiA3LjM2IDAgMCAxIDEuNi0xLjFjLjYgMy44IDEuMSA3LjQgMS44IDExIC42IDMuMSAyLjUgNS4xIDUuNCA1LjIgNS40LjEgMTAuOS4xIDE2LjMgMGE0Ljg0IDQuODQgMCAwIDAgNC44LTQuNyAyNi4yIDI2LjIgMCAwIDAgLjEtMi44di0xMDZhODAgODAgMCAwIDAtLjktMTIuOWMtMS45LTEyLjktNy40LTIzLjUtMTktMzAuNC02LjctNC0xNC4xLTYtMjEuOC03LjEtMy42LS41LTcuMi0uOC0xMC44LTEuMy0zLjkuMS03LjkuMS0xMS45LjF6bTM1IDEyNy43YTMuMzMgMy4zMyAwIDAgMS0xLjUgM2MtMTEuMiA4LjEtMjMuNSAxMy41LTM3LjQgMTQuOS01LjcuNi0xMS40LjQtMTYuOC0xLjhhMjAuMDggMjAuMDggMCAwIDEtMTIuNC0xMy4zIDMyLjkgMzIuOSAwIDAgMS0uMS0xOS40YzIuNS04LjMgOC40LTEzIDE2LjQtMTUuNmE2MS4zMyA2MS4zMyAwIDAgMSAyNC44LTIuMmM4LjQuNyAxNi42IDIuMyAyNSAzLjQgMS42LjIgMi4xIDEgMi4xIDIuNi0uMSA0LjggMCA5LjUgMCAxNC4zcy0uMiA5LjQtLjEgMTQuMXptMjU5LjkgMTI5LjRjLTEtNS00LjgtNi45LTkuMS04LjNhODguNDIgODguNDIgMCAwIDAtMjEtMy45IDE0Ny4zMiAxNDcuMzIgMCAwIDAtMzkuMiAxLjljLTE0LjMgMi43LTI3LjkgNy4zLTQwIDE1LjZhMTMuNzUgMTMuNzUgMCAwIDAtMy43IDMuNSA1LjExIDUuMTEgMCAwIDAtLjUgNGMuNCAxLjUgMi4xIDEuOSAzLjYgMS44YTE2LjIgMTYuMiAwIDAgMCAyLjItLjFjNy44LS44IDE1LjUtMS43IDIzLjMtMi41IDExLjQtMS4xIDIyLjktMS44IDM0LjMtLjlhNzEuNjQgNzEuNjQgMCAwIDEgMTQuNCAyLjdjNS4xIDEuNCA3LjQgNS4yIDcuNiAxMC40LjQgOC0xLjQgMTUuNy0zLjUgMjMuMy00LjEgMTUuNC0xMCAzMC4zLTE1LjggNDUuMWExNy42IDE3LjYgMCAwIDAtMSAzYy0uNSAyLjkgMS4yIDQuOCA0LjEgNC4xYTEwLjU2IDEwLjU2IDAgMCAwIDQuOC0yLjUgMTQ1LjkxIDE0NS45MSAwIDAgMCAxMi43LTEzLjRjMTIuOC0xNi40IDIwLjMtMzUuMyAyNC43LTU1LjYuOC0zLjYgMS40LTcuMyAyLjEtMTAuOXYtMTcuM3pNNDkzLjEgMTk5cS0xOS4zNS01My41NS0zOC43LTEwNy4yYy0yLTUuNy00LjItMTEuMy02LjMtMTYuOS0xLjEtMi45LTMuMi00LjgtNi40LTQuOC03LjYtLjEtMTUuMi0uMi0yMi45LS4xLTIuNSAwLTMuNyAyLTMuMiA0LjVhNDMuMSA0My4xIDAgMCAwIDEuOSA2LjFxMjkuNCA3Mi43NSA1OS4xIDE0NS41YzEuNyA0LjEgMi4xIDcuNi4yIDExLjgtMy4zIDcuMy01LjkgMTUtOS4zIDIyLjMtMyA2LjUtOCAxMS40LTE1LjIgMTMuM2E0Mi4xMyA0Mi4xMyAwIDAgMS0xNS40IDEuMWMtMi41LS4yLTUtLjgtNy41LTEtMy40LS4yLTUuMSAxLjMtNS4yIDQuOHEtLjE1IDUgMCA5LjljLjEgNS41IDIgOCA3LjQgOC45YTEwOC4xOCAxMDguMTggMCAwIDAgMTYuOSAyYzE3LjEuNCAzMC43LTYuNSAzOS41LTIxLjRhMTMxLjYzIDEzMS42MyAwIDAgMCA5LjItMTguNHEzNS41NS04OS43IDcwLjYtMTc5LjZhMjYuNjIgMjYuNjIgMCAwIDAgMS42LTUuNWMuNC0yLjgtLjktNC40LTMuNy00LjQtNi42LS4xLTEzLjMgMC0xOS45IDBhNy41NCA3LjU0IDAgMCAwLTcuNyA1LjJjLS41IDEuNC0xLjEgMi43LTEuNiA0LjFsLTM0LjggMTAwYy0yLjUgNy4yLTUuMSAxNC41LTcuNyAyMi4yLS40LTEuMS0uNi0xLjctLjktMi40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbWF6b24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU3LjIgMTYyLjdjLTQ4LjcgMS44LTE2OS41IDE1LjUtMTY5LjUgMTE3LjUgMCAxMDkuNSAxMzguMyAxMTQgMTgzLjUgNDMuMiA2LjUgMTAuMiAzNS40IDM3LjUgNDUuMyA0Ni44bDU2LjgtNTZTMzQxIDI4OC45IDM0MSAyNjEuNFYxMTQuM0MzNDEgODkgMzE2LjUgMzIgMjI4LjcgMzIgMTQwLjcgMzIgOTQgODcgOTQgMTM2LjNsNzMuNSA2LjhjMTYuMy00OS41IDU0LjItNDkuNSA1NC4yLTQ5LjUgNDAuNy0uMSAzNS41IDI5LjggMzUuNSA2OS4xem0wIDg2LjhjMCA4MC04NC4yIDY4LTg0LjIgMTcuMiAwLTQ3LjIgNTAuNS01Ni43IDg0LjItNTcuOHY0MC42em0xMzYgMTYzLjVjLTcuNyAxMC03MCA2Ny0xNzQuNSA2N1MzNC4yIDQwOC41IDkuNyAzNzljLTYuOC03LjcgMS0xMS4zIDUuNS04LjNDODguNSA0MTUuMiAyMDMgNDg4LjUgMzg3LjcgNDAxYzcuNS0zLjcgMTMuMyAyIDUuNSAxMnptMzkuOCAyLjJjLTYuNSAxNS44LTE2IDI2LjgtMjEuMiAzMS01LjUgNC41LTkuNSAyLjctNi41LTMuOHMxOS4zLTQ2LjUgMTIuNy01NWMtNi41LTguMy0zNy00LjMtNDgtMy4yLTEwLjggMS0xMyAyLTE0LS4zLTIuMy01LjcgMjEuNy0xNS41IDM3LjUtMTcuNSAxNS43LTEuOCA0MS0uOCA0NiA1LjcgMy43IDUuMSAwIDI3LjEtNi41IDQzLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFtaWxpYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDAuMSAzMmMtNjEuOSAwLTEzMS41IDE2LjktMTg0LjIgNTUuNC01LjEgMy4xLTkuMSA5LjItNy4yIDE5LjQgMS4xIDUuMSA1LjEgMjcuNCAxMC4yIDM5LjYgNC4xIDEwLjIgMTQuMiAxMC4yIDIwLjMgNi4xIDMyLjUtMjIuMyA5Ni41LTQ3LjcgMTUyLjMtNDcuNyA1Ny45IDAgNTguOSAyOC40IDU4LjkgNzMuMXYzOC41QzIwMyAyMjcuNyA3OC4yIDI1MSA0Ni43IDI2NC4yIDExLjIgMjgwLjUgMTYuMyAzNTcuNyAxNi4zIDM3NnMxNS4yIDEwNCAxMjQuOSAxMDRjNDcuOCAwIDExMy43LTIwLjcgMTUzLjMtNDIuMXYyNS40YzAgMyAyLjEgOC4yIDYuMSA5LjEgMy4xIDEgNTAuNyAyIDU5LjkgMnM2Mi41LjMgNjYuNS0uN2M0LjEtMSA1LjEtNi4xIDUuMS05LjFWMTY4Yy0uMS04MC4zLTU3LjktMTM2LTE5Mi0xMzZ6bTUwLjIgMzQ4Yy0yMS40IDEzLjItNDguNyAyNC40LTc5LjEgMjQuNC01Mi44IDAtNTguOS0zMy41LTU5LTQ0LjcgMC0xMi4yLTMtNDIuNyAxOC4zLTUyLjkgMjQuMy0xMy4yIDc1LjEtMjkuNCAxMTkuOC0zMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmRyb2lkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyMC41NSwzMDEuOTNhMjQsMjQsMCwxLDEsMjQtMjQsMjQsMjQsMCwwLDEtMjQsMjRtLTI2NS4xLDBhMjQsMjQsMCwxLDEsMjQtMjQsMjQsMjQsMCwwLDEtMjQsMjRtMjczLjctMTQ0LjQ4LDQ3Ljk0LTgzYTEwLDEwLDAsMSwwLTE3LjI3LTEwaDBsLTQ4LjU0LDg0LjA3YTMwMS4yNSwzMDEuMjUsMCwwLDAtMjQ2LjU2LDBMMTE2LjE4LDY0LjQ1YTEwLDEwLDAsMSwwLTE3LjI3LDEwaDBsNDcuOTQsODNDNjQuNTMsMjAyLjIyLDguMjQsMjg1LjU1LDAsMzg0SDU3NmMtOC4yNC05OC40NS02NC41NC0xODEuNzgtMTQ2Ljg1LTIyNi41NVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmdlbGxpc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ3LjEgMjE1LjRjMTEuNy0zMi42IDQ1LjQtMTI2LjkgNDUuNC0xNTcuMSAwLTI2LjYtMTUuNy00OC45LTQzLjctNDguOS00NC42IDAtODQuNiAxMzEuNy05Ny4xIDE2My4xQzI0MiAxNDQgMTk2LjYgMCAxNTYuNiAwYy0zMS4xIDAtNDUuNyAyMi45LTQ1LjcgNTEuNyAwIDM1LjMgMzQuMiAxMjYuOCA0Ni42IDE2Mi02LjMtMi4zLTEzLjEtNC4zLTIwLTQuMy0yMy40IDAtNDguMyAyOS4xLTQ4LjMgNTIuNiAwIDguOSA0LjkgMjEuNCA4IDI5LjctMzYuOSAxMC01MS4xIDM0LjYtNTEuMSA3MS43QzQ2IDQzNS42IDExNC40IDUxMiAyMTAuNiA1MTJjMTE4IDAgMTkxLjQtODguNiAxOTEuNC0yMDIuOSAwLTQzLjEtNi45LTgyLTU0LjktOTMuN3pNMzExLjcgMTA4YzQtMTIuMyAyMS4xLTY0LjMgMzcuMS02NC4zIDguNiAwIDEwLjkgOC45IDEwLjkgMTYgMCAxOS4xLTM4LjYgMTI0LjYtNDcuMSAxNDhsLTM0LTYgMzMuMS05My43ek0xNDIuMyA0OC4zYzAtMTEuOSAxNC41LTQ1LjcgNDYuMyA0Ny4xbDM0LjYgMTAwLjNjLTE1LjYtMS4zLTI3LjctMy0zNS40IDEuNC0xMC45LTI4LjgtNDUuNS0xMTkuNy00NS41LTE0OC44ek0xNDAgMjQ0YzI5LjMgMCA2Ny4xIDk0LjYgNjcuMSAxMDcuNCAwIDUuMS00LjkgMTEuNC0xMC42IDExLjQtMjAuOSAwLTc2LjktNzYuOS03Ni45LTk3LjcuMS03LjcgMTIuNy0yMS4xIDIwLjQtMjEuMXptMTg0LjMgMTg2LjNjLTI5LjEgMzItNjYuMyA0OC42LTEwOS43IDQ4LjYtNTkuNCAwLTEwNi4zLTMyLjYtMTI4LjktODguMy0xNy4xLTQzLjQgMy44LTY4LjMgMjAuNi02OC4zIDExLjQgMCA1NC4zIDYwLjMgNTQuMyA3My4xIDAgNC45LTcuNyA4LjMtMTEuNyA4LjMtMTYuMSAwLTIyLjQtMTUuNS01MS4xLTUxLjQtMjkuNyAyOS43IDIwLjUgODYuOSA1OC4zIDg2LjkgMjYuMSAwIDQzLjEtMjQuMiAzOC00MiAzLjcgMCA4LjMuMyAxMS43LS42IDEuMSAyNy4xIDkuMSA1OS40IDQxLjcgNjEuNyAwLS45IDItNy4xIDItNy40IDAtMTcuNC0xMC42LTMyLjYtMTAuNi01MC4zIDAtMjguMyAyMS43LTU1LjcgNDMuNy03MS43IDgtNiAxNy43LTkuNyAyNy4xLTEzLjEgOS43LTMuNyAyMC04IDI3LjQtMTUuNC0xLjEtMTEuMi01LjctMjEuMS0xNi45LTIxLjEtMjcuNyAwLTEyMC42IDQtMTIwLjYtMzkuNyAwLTYuNy4xLTEzLjEgMTcuNC0xMy4xIDMyLjMgMCAxMTQuMyA4IDEzOC4zIDI5LjEgMTguMSAxNi4xIDI0LjMgMTEzLjItMzEgMTc0Ljd6bS05OC42LTEyNmM5LjcgMy4xIDE5LjcgNCAyOS43IDYtNy40IDUuNC0xNCAxMi0yMC4zIDE5LjEtMi44LTguNS02LjItMTYuOC05LjQtMjUuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5ncnljcmVhdGl2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NDAgMjM4LjJsLTMuMiAyOC4yLTM0LjUgMi4zLTIgMTguMSAzNC41LTIuMy0zLjIgMjguMi0zNC40IDIuMi0yLjMgMjAuMSAzNC40LTIuMi0zIDI2LjEtNjQuNyA0LjEgMTIuNy0xMTMuMkw1MjcgMzY1LjJsLTMxLjkgMi0yMy44LTExNy44IDMwLjMtMiAxMy42IDc5LjQgMzEuNy04Mi40IDkzLjEtNi4yek00MjYuOCAzNzEuNWwyOC4zLTEuOEw0NjggMjQ5LjZsLTI4LjQgMS45LTEyLjggMTIwek0xNjIgMzg4LjFsLTE5LjQtMzYtMy41IDM3LjQtMjguMiAxLjcgMi43LTI5LjFjLTExIDE4LTMyIDM0LjMtNTYuOSAzNS44QzIzLjkgMzk5LjktMyAzNzcgLjMgMzM5LjdjMi42LTI5LjMgMjYuNy02Mi44IDY3LjUtNjUuNCAzNy43LTIuNCA0Ny42IDIzLjIgNTEuMyAyOC44bDIuOC0zMC44IDM4LjktMi41YzIwLjEtMS4zIDM4LjcgMy43IDQyLjUgMjMuN2wyLjYtMjYuNiA2NC44LTQuMi0yLjcgMjcuOS0zNi40IDIuNC0xLjcgMTcuOSAzNi40LTIuMy0yLjcgMjcuOS0zNi40IDIuMy0xLjkgMTkuOSAzNi4zLTIuMy0yLjEgMjAuOCA1NS0xMTcuMiAyMy44LTEuNkwzNzAuNCAzNjlsOC45LTg1LjYtMjIuMyAxLjQgMi45LTI3LjkgNzUtNC45LTMgMjgtMjQuMyAxLjYtOS43IDkxLjktNTggMy43LTQuMy0xNS42LTM5LjQgMi41LTggMTYuMy0xMjYuMiA3Ljd6bS00NC4zLTcwLjJsLTI2LjQgMS43Qzg0LjYgMzA3LjIgNzYuOSAzMDMgNjUgMzAzLjhjLTE5IDEuMi0zMy4zIDE3LjUtMzQuNiAzMy4zLTEuNCAxNiA3LjMgMzIuNSAyOC43IDMxLjIgMTIuOC0uOCAyMS4zLTguNiAyOC45LTE4LjlsMjctMS43IDIuNy0yOS44em01Ni4xLTcuN2MxLjItMTIuOS03LjYtMTMuNi0yNi4xLTEyLjRsLTIuNyAyOC41YzE0LjItLjkgMjcuNS0yLjEgMjguOC0xNi4xem0yMS4xIDcwLjhsNS44LTYwYy01IDEzLjUtMTQuNyAyMS4xLTI3LjkgMjYuNmwyMi4xIDMzLjR6bTEzNS40LTQ1bC03LjktMzcuOC0xNS44IDM5LjMgMjMuNy0xLjV6bS0xNzAuMS03NC42bC00LjMtMTcuNS0zOS42IDIuNi04LjEgMTguMi0zMS45IDIuMSA1Ny0xMjEuOSAyMy45LTEuNiAzMC43IDEwMiA5LjktMTA0LjcgMjctMS44IDM3LjggNjMuNiA2LjUtNjYuNiAyOC41LTEuOS00IDQxLjJjNy40LTEzLjUgMjIuOS00NC43IDYzLjYtNDcuNSA0MC41LTIuOCA1Mi40IDI5LjMgNTMuNCAzMC4zbDMuMy0zMiAzOS4zLTIuN2MxMi43LS45IDI3LjguMyAzNi4zIDkuN2wtNC40LTExLjkgMzIuMi0yLjIgMTIuOSA0My4yIDIzLTQ1LjcgMzEtMi4yLTQzLjYgNzguNC00LjggNDQuMy0yOC40IDEuOSA0LjgtNDQuMy0xNS44LTQzYzEgMjIuMy05LjIgNDAuMS0zMiA0OS42bDI1LjIgMzguOC0zNi40IDIuNC0xOS4yLTM2LjgtNCAzOC4zLTI4LjQgMS45IDMuMy0zMS41Yy02LjcgOS4zLTE5LjcgMzUuNC01OS42IDM4LTI2LjIgMS43LTQ1LjYtMTAuMy01NS40LTM5LjJsLTQgNDAuMy0yNSAxLjYtMzcuNi02My4zLTYuMyA2Ni4yLTU2LjggMy43em0yNzYuNi04Mi4xYzEwLjItLjcgMTcuNS0yLjEgMjEuNi00LjMgNC41LTIuNCA3LTYuNCA3LjYtMTIuMS42LTUuMy0uNi04LjgtMy40LTEwLjQtMy42LTIuMS0xMC42LTIuOC0yMi45LTJsLTIuOSAyOC44ek0zMjcuNyAyMTRjNS42IDUuOSAxMi43IDguNSAyMS4zIDcuOSA0LjctLjMgOS4xLTEuOCAxMy4zLTQuMSA1LjUtMyAxMC42LTggMTUuMS0xNC4zbC0zNC4yIDIuMyAyLjQtMjMuOSA2My4xLTQuMyAxLjItMTItMzEuMiAyLjFjLTQuMS0zLjctNy44LTYuNi0xMS4xLTguMS00LTEuNy04LjEtMi44LTEyLjItMi41LTggLjUtMTUuMyAzLjYtMjIgOS4yLTcuNyA2LjQtMTIgMTQuNS0xMi45IDI0LjQtMS4xIDkuNiAxLjQgMTcuMyA3LjIgMjMuM3ptLTIwMS4zIDguMmwyMy44LTEuNi04LjMtMzcuNi0xNS41IDM5LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuZ3VsYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg1LjcgMjY4LjFoNzYuMmwtMzguMS05MS42LTM4LjEgOTEuNnpNMjIzLjggMzJMMTYgMTA2LjRsMzEuOCAyNzUuNyAxNzYgOTcuOSAxNzYtOTcuOSAzMS44LTI3NS43ek0zNTQgMzczLjhoLTQ4LjZsLTI2LjItNjUuNEgxNjguNmwtMjYuMiA2NS40SDkzLjdMMjIzLjggODEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXBwU3RvcmVJb3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNMTI3IDM4NC41Yy01LjUgOS42LTE3LjggMTIuOC0yNy4zIDcuMy05LjYtNS41LTEyLjgtMTcuOC03LjMtMjcuM2wxNC4zLTI0LjdjMTYuMS00LjkgMjkuMy0xLjEgMzkuNiAxMS40TDEyNyAzODQuNXptMTM4LjktNTMuOUg4NGMtMTEgMC0yMC05LTIwLTIwczktMjAgMjAtMjBoNTFsNjUuNC0xMTMuMi0yMC41LTM1LjRjLTUuNS05LjYtMi4yLTIxLjggNy4zLTI3LjMgOS42LTUuNSAyMS44LTIuMiAyNy4zIDcuM2w4LjkgMTUuNCA4LjktMTUuNGM1LjUtOS42IDE3LjgtMTIuOCAyNy4zLTcuMyA5LjYgNS41IDEyLjggMTcuOCA3LjMgMjcuM2wtODUuOCAxNDguNmg2Mi4xYzIwLjIgMCAzMS41IDIzLjcgMjIuNyA0MHptOTguMSAwaC0yOWwxOS42IDMzLjljNS41IDkuNiAyLjIgMjEuOC03LjMgMjcuMy05LjYgNS41LTIxLjggMi4yLTI3LjMtNy4zLTMyLjktNTYuOS01Ny41LTk5LjctNzQtMTI4LjEtMTYuNy0yOS00LjgtNTggNy4xLTY3LjggMTMuMSAyMi43IDMyLjcgNTYuNyA1OC45IDEwMmg1MmMxMSAwIDIwIDkgMjAgMjAgMCAxMS4xLTkgMjAtMjAgMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFwcFN0b3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NS45IDEyMC45bDkuMS0xNS43YzUuNi05LjggMTguMS0xMy4xIDI3LjktNy41IDkuOCA1LjYgMTMuMSAxOC4xIDcuNSAyNy45bC04Ny41IDE1MS41aDYzLjNjMjAuNSAwIDMyIDI0LjEgMjMuMSA0MC44SDExMy44Yy0xMS4zIDAtMjAuNC05LjEtMjAuNC0yMC40IDAtMTEuMyA5LjEtMjAuNCAyMC40LTIwLjRoNTJsNjYuNi0xMTUuNC0yMC44LTM2LjFjLTUuNi05LjgtMi4zLTIyLjIgNy41LTI3LjkgOS44LTUuNiAyMi4yLTIuMyAyNy45IDcuNWw4LjkgMTUuN3ptLTc4LjcgMjE4bC0xOS42IDM0Yy01LjYgOS44LTE4LjEgMTMuMS0yNy45IDcuNS05LjgtNS42LTEzLjEtMTguMS03LjUtMjcuOWwxNC42LTI1LjJjMTYuNC01LjEgMjkuOC0xLjIgNDAuNCAxMS42em0xNjguOS02MS43aDUzLjFjMTEuMyAwIDIwLjQgOS4xIDIwLjQgMjAuNCAwIDExLjMtOS4xIDIwLjQtMjAuNCAyMC40aC0yOS41bDE5LjkgMzQuNWM1LjYgOS44IDIuMyAyMi4yLTcuNSAyNy45LTkuOCA1LjYtMjIuMiAyLjMtMjcuOS03LjUtMzMuNS01OC4xLTU4LjctMTAxLjYtNzUuNC0xMzAuNi0xNy4xLTI5LjUtNC45LTU5LjEgNy4yLTY5LjEgMTMuNCAyMyAzMy40IDU3LjcgNjAuMSAxMDR6TTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTIxNiAyNDhjMCAxMTguNy05Ni4xIDIxNi0yMTYgMjE2LTExOC43IDAtMjE2LTk2LjEtMjE2LTIxNiAwLTExOC43IDk2LjEtMjE2IDIxNi0yMTYgMTE4LjcgMCAyMTYgOTYuMSAyMTYgMjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcHBlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00Mi4xIDIzOS4xYzIyLjIgMCAyOSAyLjggMzMuNSAxNC42aC44di0yMi45YzAtMTEuMy00LjgtMTUuNC0xNy45LTE1LjQtMTEuMyAwLTE0LjQgMi41LTE1LjEgMTIuOEg0LjhjLjMtMTMuOSAxLjUtMTkuMSA1LjgtMjQuNEMxNy45IDE5NSAyOS41IDE5MiA1Ni43IDE5MmMzMyAwIDQ3LjEgNSA1My45IDE4LjkgMiA0LjMgNCAxNS42IDQgMjMuN3Y3Ni4zSDc2LjNsMS4zLTE5LjFoLTFjLTUuMyAxNS42LTEzLjYgMjAuNC0zNS41IDIwLjQtMzAuMyAwLTQxLjEtMTAuMS00MS4xLTM3LjMgMC0yNS4yIDEyLjMtMzUuOCA0Mi4xLTM1Ljh6bTE3LjEgNDguMWMxMy4xIDAgMTYuOS0zIDE2LjktMTMuNCAwLTkuMS00LjMtMTEuNi0xOS42LTExLjYtMTMuMSAwLTE3LjkgMy0xNy45IDEyLjEtLjEgMTAuNCAzLjcgMTIuOSAyMC42IDEyLjl6bTc3LjgtOTQuOWgzOC4zbC0xLjUgMjAuNmguOGM5LjEtMTcuMSAxNS45LTIwLjkgMzcuNS0yMC45IDE0LjQgMCAyNC43IDMgMzEuNSA5LjEgOS44IDguNiAxMi44IDIwLjQgMTIuOCA0OC4xIDAgMzAtMyA0My4xLTEyLjEgNTIuOS02LjggNy4zLTE2LjQgMTAuMS0zMy4yIDEwLjEtMjAuNCAwLTI5LjItNS41LTMzLjgtMjEuMmgtLjh2NzAuM0gxMzd2LTE2OXptODAuOSA2MC43YzAtMjcuNS0zLjMtMzIuNS0yMC43LTMyLjUtMTYuOSAwLTIwLjcgNS0yMC43IDI4LjcgMCAyOCAzLjUgMzMuNSAyMS4yIDMzLjUgMTYuNCAwIDIwLjItNS42IDIwLjItMjkuN3ptNTcuOS02MC43aDM4LjNsLTEuNSAyMC42aC44YzkuMS0xNy4xIDE1LjktMjAuOSAzNy41LTIwLjkgMTQuNCAwIDI0LjcgMyAzMS41IDkuMSA5LjggOC42IDEyLjggMjAuNCAxMi44IDQ4LjEgMCAzMC0zIDQzLjEtMTIuMSA1Mi45LTYuOCA3LjMtMTYuNCAxMC4xLTMzLjMgMTAuMS0yMC40IDAtMjkuMi01LjUtMzMuOC0yMS4yaC0uOHY3MC4zaC0zOS41di0xNjl6bTgwLjkgNjAuN2MwLTI3LjUtMy4zLTMyLjUtMjAuNy0zMi41LTE2LjkgMC0yMC43IDUtMjAuNyAyOC43IDAgMjggMy41IDMzLjUgMjEuMiAzMy41IDE2LjQgMCAyMC4yLTUuNiAyMC4yLTI5Ljd6bTUzLjgtMy44YzAtMjUuNCAzLjMtMzcuOCAxMi4zLTQ1LjggOC44LTguMSAyMi4yLTExLjMgNDUuMS0xMS4zIDQyLjggMCA1NS43IDEyLjggNTUuNyA1NS43djExLjFoLTc1LjNjLS4zIDItLjMgNC0uMyA0LjggMCAxNi45IDQuNSAyMS45IDIwLjEgMjEuOSAxMy45IDAgMTcuOS0zIDE3LjktMTMuOWgzNy41djIuM2MwIDkuOC0yLjUgMTguOS02LjggMjQuNy03LjMgOS44LTE5LjYgMTMuNi00NC4zIDEzLjYtMjcuNSAwLTQxLjYtMy4zLTUwLjYtMTIuMy04LjUtOC41LTExLjMtMjEuMy0xMS4zLTUwLjh6bTc2LjQtMTEuNmMtLjMtMS44LS4zLTMuMy0uMy0zLjggMC0xMi4zLTMuMy0xNC42LTE5LjYtMTQuNi0xNC40IDAtMTcuMSAzLTE4LjEgMTUuMWwtLjMgMy4zaDM4LjN6bTU1LjYtNDUuM2gzOC4zbC0xLjggMTkuOWguN2M2LjgtMTQuOSAxNC40LTIwLjIgMjkuNy0yMC4yIDEwLjggMCAxOS4xIDMuMyAyMy40IDkuMyA1LjMgNy4zIDYuOCAxNC40IDYuOCAzNCAwIDEuNSAwIDUgLjIgOS4zaC0zNWMuMy0xLjguMy0zLjMuMy00IDAtMTUuNC0yLTE5LjQtMTAuMy0xOS40LTYuMyAwLTEwLjggMy4zLTEzLjEgOS4zLTEgMy0xIDQuMy0xIDEyLjN2NjhoLTM4LjNWMTkyLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFwcGxlUGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExNi45IDE1OC41Yy03LjUgOC45LTE5LjUgMTUuOS0zMS41IDE0LjktMS41LTEyIDQuNC0yNC44IDExLjMtMzIuNiA3LjUtOS4xIDIwLjYtMTUuNiAzMS4zLTE2LjEgMS4yIDEyLjQtMy43IDI0LjctMTEuMSAzMy44bTEwLjkgMTcuMmMtMTcuNC0xLTMyLjMgOS45LTQwLjUgOS45LTguNCAwLTIxLTkuNC0zNC44LTkuMS0xNy45LjMtMzQuNSAxMC40LTQzLjYgMjYuNS0xOC44IDMyLjMtNC45IDgwIDEzLjMgMTA2LjMgOC45IDEzIDE5LjUgMjcuMyAzMy41IDI2LjggMTMuMy0uNSAxOC41LTguNiAzNC41LTguNiAxNi4xIDAgMjAuOCA4LjYgMzQuOCA4LjQgMTQuNS0uMyAyMy42LTEzIDMyLjUtMjYgMTAuMS0xNC44IDE0LjMtMjkuMSAxNC41LTI5LjktLjMtLjMtMjgtMTAuOS0yOC4zLTQyLjktLjMtMjYuOCAyMS45LTM5LjUgMjIuOS00MC4zLTEyLjUtMTguNi0zMi0yMC42LTM4LjgtMjEuMW0xMDAuNC0zNi4ydjE5NC45aDMwLjN2LTY2LjZoNDEuOWMzOC4zIDAgNjUuMS0yNi4zIDY1LjEtNjQuM3MtMjYuNC02NC02NC4xLTY0aC03My4yem0zMC4zIDI1LjVoMzQuOWMyNi4zIDAgNDEuMyAxNCA0MS4zIDM4LjZzLTE1IDM4LjgtNDEuNCAzOC44aC0zNC44VjE2NXptMTYyLjIgMTcwLjljMTkgMCAzNi42LTkuNiA0NC42LTI0LjloLjZ2MjMuNGgyOHYtOTdjMC0yOC4xLTIyLjUtNDYuMy01Ny4xLTQ2LjMtMzIuMSAwLTU1LjkgMTguNC01Ni44IDQzLjZoMjcuM2MyLjMtMTIgMTMuNC0xOS45IDI4LjYtMTkuOSAxOC41IDAgMjguOSA4LjYgMjguOSAyNC41djEwLjhsLTM3LjggMi4zYy0zNS4xIDIuMS01NC4xIDE2LjUtNTQuMSA0MS41LjEgMjUuMiAxOS43IDQyIDQ3LjggNDJ6bTguMi0yMy4xYy0xNi4xIDAtMjYuNC03LjgtMjYuNC0xOS42IDAtMTIuMyA5LjktMTkuNCAyOC44LTIwLjVsMzMuNi0yLjF2MTFjMCAxOC4yLTE1LjUgMzEuMi0zNiAzMS4yem0xMDIuNSA3NC42YzI5LjUgMCA0My40LTExLjMgNTUuNS00NS40TDY0MCAxOTNoLTMwLjhsLTM1LjYgMTE1LjFoLS42TDUzNy40IDE5M2gtMzEuNkw1NTcgMzM0LjlsLTIuOCA4LjZjLTQuNiAxNC42LTEyLjEgMjAuMy0yNS41IDIwLjMtMi40IDAtNy0uMy04LjktLjV2MjMuNGMxLjguNCA5LjMuNyAxMS42Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFwcGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxOC43IDI2OC43Yy0uMi0zNi43IDE2LjQtNjQuNCA1MC04NC44LTE4LjgtMjYuOS00Ny4yLTQxLjctODQuNy00NC42LTM1LjUtMi44LTc0LjMgMjAuNy04OC41IDIwLjctMTUgMC00OS40LTE5LjctNzYuNC0xOS43QzYzLjMgMTQxLjIgNCAxODQuOCA0IDI3My41cTAgMzkuMyAxNC40IDgxLjJjMTIuOCAzNi43IDU5IDEyNi43IDEwNy4yIDEyNS4yIDI1LjItLjYgNDMtMTcuOSA3NS44LTE3LjkgMzEuOCAwIDQ4LjMgMTcuOSA3Ni40IDE3LjkgNDguNi0uNyA5MC40LTgyLjUgMTAyLjYtMTE5LjMtNjUuMi0zMC43LTYxLjctOTAtNjEuNy05MS45em0tNTYuNi0xNjQuMmMyNy4zLTMyLjQgMjQuOC02MS45IDI0LTcyLjUtMjQuMSAxLjQtNTIgMTYuNC02Ny45IDM0LjktMTcuNSAxOS44LTI3LjggNDQuMy0yNS42IDcxLjkgMjYuMSAyIDQ5LjktMTEuNCA2OS41LTM0LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFydHN0YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAzNzcuNGw0MyA3NC4zQTUxLjM1IDUxLjM1IDAgMCAwIDkwLjkgNDgwaDI4NS40bC01OS4yLTEwMi42ek01MDEuOCAzNTBMMzM1LjYgNTkuM0E1MS4zOCA1MS4zOCAwIDAgMCAyOTAuMiAzMmgtODguNGwyNTcuMyA0NDcuNiA0MC43LTcwLjVjMS45LTMuMiAyMS0yOS43IDItNTkuMXpNMjc1IDMwNC41bC0xMTUuNS0yMDBMNDQgMzA0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFzeW1tZXRyaWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTE3LjUgMzA5LjJjMzguOC00MCA1OC4xLTgwIDU4LjUtMTE2LjEuOC02NS41LTU5LjQtMTE4LjItMTY5LjQtMTM1QzI3Ny45IDM4LjQgMTE4LjEgNzMuNiAwIDE0MC41IDUyIDExNCAxMTAuNiA5Mi4zIDE3MC43IDgyLjNjNzQuNS0yMC41IDE1My0yNS40IDIyMS4zLTE0LjhDNTQ0LjUgOTEuMyA1ODguOCAxOTUgNDkwLjggMjk5LjJjLTEwLjIgMTAuOC0yMiAyMS4xLTM1IDMwLjZMMzA0LjkgMTAzLjQgMTE0LjcgMzg4LjljLTY1LjYtMjkuNC03Ni41LTkwLjItMTkuMS0xNTEuMiAyMC44LTIyLjIgNDguMy00MS45IDc5LjUtNTguMSAyMC0xMi4yIDM5LjctMjIuNiA2Mi0zMC43LTY1LjEgMjAuMy0xMjIuNyA1Mi45LTE2MS42IDkyLjktMjcuNyAyOC42LTQxLjQgNTcuMS00MS43IDgyLjktLjUgMzUuMSAyMy40IDY1LjEgNjguNCA4M2wtMzQuNSA1MS43aDEwMS42bDIyLTM0LjRjMjIuMiAxIDQ1LjMgMCA2OC42LTIuN2wtMjIuOCAzNy4xaDEzNS41TDM0MCA0MDYuM2MxOC42LTUuMyAzNi45LTExLjUgNTQuNS0xOC43bDQ1LjkgNzEuOEg1NDJMNDY4LjYgMzQ5YzE4LjUtMTIuMSAzNS0yNS41IDQ4LjktMzkuOHptLTE4Ny42IDgwLjVsLTI1LTQwLjYtMzIuNyA1My4zYy0yMy40IDMuNS00Ni43IDUuMS02OS4yIDQuNGwxMDEuOS0xNTkuMyA3OC43IDEyM2MtMTcuMiA3LjQtMzUuMyAxMy45LTUzLjcgMTkuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXRsYXNzaWFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1Mi4yIDIzNi40Yy03LjctOC4yLTE5LjctNy43LTI0LjggMi44TDEuNiA0OTAuMmMtNSAxMCAyLjQgMjEuNyAxMy40IDIxLjdoMTc1YzUuOC4xIDExLTMuMiAxMy40LTguNCAzNy45LTc3LjggMTUuMS0xOTYuMy01MS4yLTI2Ny4xek0yNDQuNCA4LjFjLTEyMi4zIDE5My40LTguNSAzNDguNiA2NSA0OTUuNSAyLjUgNS4xIDcuNyA4LjQgMTMuNCA4LjRINDk3YzExLjIgMCAxOC40LTExLjggMTMuNC0yMS43IDAgMC0yMzQuNS00NzAuNi0yNDAuNC00ODIuMy01LjMtMTAuNi0xOC44LTEwLjgtMjUuNi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBdWRpYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MCAxOTkuOXY1NGwtMzIwIDIwMEwwIDI1NHYtNTRsMzIwIDIwMCAzMjAtMjAwLjF6bS0xOTQuNSA3Mmw0Ny4xLTI5LjRjLTM3LjItNTUuOC0xMDAuNy05Mi42LTE3Mi43LTkyLjYtNzIgMC0xMzUuNSAzNi43LTE3Mi42IDkyLjRoLjNjMi41LTIuMyA1LjEtNC41IDcuNy02LjcgODkuNy03NC40IDIxOS40LTU4LjEgMjkwLjIgMzYuM3ptLTIyMC4xIDE4LjhjMTYuOS0xMS45IDM2LjUtMTguNyA1Ny40LTE4LjcgMzQuNCAwIDY1LjIgMTguNCA4Ni40IDQ3LjZsNDUuNC0yOC40Yy0yMC45LTI5LjktNTUuNi00OS41LTk0LjgtNDkuNS0zOC45IDAtNzMuNCAxOS40LTk0LjQgNDl6TTEwMy42IDE2MS4xYzEzMS44LTEwNC4zIDMxOC4yLTc2LjQgNDE3LjUgNjIuMWwuNyAxIDQ4LjgtMzAuNEM1MTcuMSAxMTIuMSA0MjQuOCA1OC4xIDMxOS45IDU4LjFjLTEwMy41IDAtMTk2LjYgNTMuNS0yNTAuNSAxMzUuNiA5LjktMTAuNSAyMi43LTIzLjUgMzQuMi0zMi42em00NjcgMzIuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXV0b3ByZWZpeGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxOC40IDE2bC0xNjEgNDgwaDc3LjVsMjUuNC04MS40aDExOS41TDQwNSA0OTZoNzcuNUwzMTguNCAxNnptLTQwLjMgMzQxLjlsNDEuMi0xMzAuNGgxLjVsNDAuOSAxMzAuNGgtODMuNnpNNjQwIDQwNWwtMTAtMzEuNEw0NjIuMSAzNThsMTkuNCA1Ni41TDY0MCA0MDV6bS00NjIuMS00N0wxMCAzNzMuNyAwIDQwNWwxNTguNSA5LjQgMTkuNC01Ni40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBdmlhbmV4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1My4xIDMyaC0zMTJjLTM4LjkgMC03Ni4yIDMxLjItODMuMyA2OS43TDEuMiA0MTAuM0MtNS45IDQ0OC44IDE5LjkgNDgwIDU4LjkgNDgwaDMxMmMzOC45IDAgNzYuMi0zMS4yIDgzLjMtNjkuN2w1Ni43LTMwOC41YzctMzguNi0xOC44LTY5LjgtNTcuOC02OS44em0tNTguMiAzNDcuM2wtMzIgMTMuNS0xMTUuNC0xMTBjLTE0LjcgMTAtMjkuMiAxOS41LTQxLjcgMjcuMWwyMi4xIDY0LjItMTcuOSAxMi43LTQwLjYtNjEtNTIuNC00OC4xIDE1LjctMTUuNCA1OCAzMS4xYzkuMy0xMC41IDIwLjgtMjIuNiAzMi44LTM0LjlMMjAzIDIyOC45bC02OC44LTk5LjggMTguOC0yOC45IDguOS00LjhMMjY1IDIwNy44bDQuOSA0LjVjMTkuNC0xOC44IDMzLjgtMzIuNCAzMy44LTMyLjQgNy43LTYuNSAyMS41LTIuOSAzMC43IDcuOSA5IDEwLjUgMTAuNiAyNC43IDIuNyAzMS4zLTEuOCAxLjMtMTUuNSAxMS40LTM1LjMgMjUuNmw0LjUgNy4zIDk0LjkgMTE5LjQtNi4zIDcuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXZpYXRvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwNy4yIDI4My41bC0xOS00MS44SDM2LjFsLTE5IDQxLjhIMGw2Mi4yLTEzMS40IDYyLjIgMTMxLjRoLTE3LjJ6bS00NS05OC4xbC0xOS42IDQyLjVoMzkuMmwtMTkuNi00Mi41em0xMTIuNyAxMDIuNGwtNjIuMi0xMzEuNGgxNy4xbDQ1LjEgOTYgNDUuMS05NmgxN2wtNjIuMSAxMzEuNHptODAuNi00LjNWMTU2LjRIMjcxdjEyNy4xaC0xNS41em0yMDkuMS0xMTUuNnYxMTUuNmgtMTcuM1YxNjcuOWgtNDEuMnYtMTEuNWg5OS42djExLjVoLTQxLjF6TTY0MCAyMTguOGMwIDkuMi0xLjcgMTcuOC01LjEgMjUuOC0zLjQgOC04LjIgMTUuMS0xNC4yIDIxLjEtNiA2LTEzLjEgMTAuOC0yMS4xIDE0LjItOCAzLjQtMTYuNiA1LjEtMjUuOCA1LjFzLTE3LjgtMS43LTI1LjgtNS4xYy04LTMuNC0xNS4xLTguMi0yMS4xLTE0LjItNi02LTEwLjgtMTMtMTQuMi0yMS4xLTMuNC04LTUuMS0xNi42LTUuMS0yNS44czEuNy0xNy44IDUuMS0yNS44YzMuNC04IDguMi0xNS4xIDE0LjItMjEuMSA2LTYgMTMtOC40IDIxLjEtMTEuOSA4LTMuNCAxNi42LTUuMSAyNS44LTUuMXMxNy44IDEuNyAyNS44IDUuMWM4IDMuNCAxNS4xIDUuOCAyMS4xIDExLjkgNiA2IDEwLjcgMTMuMSAxNC4yIDIxLjEgMy40IDggNS4xIDE2LjYgNS4xIDI1Ljh6bS0xNS41IDBjMC03LjMtMS4zLTE0LTMuOS0yMC4zLTIuNi02LjMtNi4yLTExLjctMTAuOC0xNi4zLTQuNi00LjYtMTAtOC4yLTE2LjItMTAuOS02LjItMi43LTEyLjgtNC0xOS44LTRzLTEzLjYgMS4zLTE5LjggNGMtNi4yIDIuNy0xMS42IDYuMy0xNi4yIDEwLjktNC42IDQuNi04LjIgMTAtMTAuOCAxNi4zLTIuNiA2LjMtMy45IDEzLjEtMy45IDIwLjMgMCA3LjMgMS4zIDE0IDMuOSAyMC4zIDIuNiA2LjMgNi4yIDExLjcgMTAuOCAxNi4zIDQuNiA0LjYgMTAgOC4yIDE2LjIgMTAuOSA2LjIgMi43IDEyLjggNCAxOS44IDRzMTMuNi0xLjMgMTkuOC00YzYuMi0yLjcgMTEuNi02LjMgMTYuMi0xMC45IDQuNi00LjYgOC4yLTEwIDEwLjgtMTYuMyAyLjYtNi4zIDMuOS0xMy4xIDMuOS0yMC4zem0tOTQuOCA5Ni43di02LjNsODguOS0xMC0yNDIuOSAxMy40Yy42LTIuMiAxLjEtNC42IDEuNC03LjIuMy0yIC41LTQuMi42LTYuNWw2NC44LTguMS02NC45IDEuOWMwLS40LS4xLS43LS4xLTEuMS0yLjgtMTcuMi0yNS41LTIzLjctMjUuNS0yMy43bC0xLjEtMjYuM2gyMy44bDE5IDQxLjhoMTcuMUwzNDguNiAxNTJsLTYyLjIgMTMxLjRoMTcuMWwxOS00MS44aDIzLjZMMzQ1IDI2OHMtMjIuNyA2LjUtMjUuNSAyMy43Yy0uMS4zLS4xLjctLjEgMS4xbC02NC45LTEuOSA2NC44IDguMWMuMSAyLjMuMyA0LjQuNiA2LjUuMyAyLjYuOCA1IDEuNCA3LjJMNzguNCAyOTkuMmw4OC45IDEwdjYuM2MtNS45LjktMTAuNSA2LTEwLjUgMTIuMiAwIDYuOCA1LjYgMTIuNCAxMi40IDEyLjQgNi44IDAgMTIuNC01LjYgMTIuNC0xMi40IDAtNi4yLTQuNi0xMS4zLTEwLjUtMTIuMnYtNS44bDgwLjMgOXY1LjRjLTUuNyAxLjEtOS45IDYuMi05LjkgMTIuMSAwIDYuOCA1LjYgMTAuMiAxMi40IDEwLjIgNi44IDAgMTIuNC0zLjQgMTIuNC0xMC4yIDAtNi00LjMtMTEtOS45LTEyLjF2LTQuOWwyOC40IDMuMnYyMy43aC01LjlWMzYwaDUuOXYtNi42aDV2Ni42aDUuOXYtMTMuOGgtNS45VjMyM2wzOC4zIDQuM2M4LjEgMTEuNCAxOSAxMy42IDE5IDEzLjZsLS4xIDYuNy01LjEuMi0uMSAxMi4xaDQuMWwuMS01aDUuMmwuMSA1aDQuMWwtLjEtMTIuMS01LjEtLjItLjEtNi43czEwLjktMi4xIDE5LTEzLjZsMzguMy00LjN2MjMuMmgtNS45VjM2MGg1Ljl2LTYuNmg1djYuNmg1Ljl2LTEzLjhoLTUuOXYtMjMuN2wyOC40LTMuMnY0LjljLTUuNyAxLjEtOS45IDYuMi05LjkgMTIuMSAwIDYuOCA1LjYgMTAuMiAxMi40IDEwLjIgNi44IDAgMTIuNC0zLjQgMTIuNC0xMC4yIDAtNi00LjMtMTEtOS45LTEyLjF2LTUuNGw4MC4zLTl2NS44Yy01LjkuOS0xMC41IDYtMTAuNSAxMi4yIDAgNi44IDUuNiAxMi40IDEyLjQgMTIuNCA2LjggMCAxMi40LTUuNiAxMi40LTEyLjQtLjItNi4zLTQuNy0xMS40LTEwLjctMTIuM3ptLTIwMC44LTg3LjZsMTkuNi00Mi41IDE5LjYgNDIuNWgtMTcuOWwtMS43LTQwLjMtMS43IDQwLjNoLTE3Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUF3cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODAuNDEgMjAzLjAxYy0uNzIgMjIuNjUgMTAuNiAzMi42OCAxMC44OCAzOS4wNWE4LjE2NCA4LjE2NCAwIDAgMS00LjEgNi4yN2wtMTIuOCA4Ljk2YTEwLjY2IDEwLjY2IDAgMCAxLTUuNjMgMS45MmMtLjQzLS4wMi04LjE5IDEuODMtMjAuNDgtMjUuNjFhNzguNjA4IDc4LjYwOCAwIDAgMS02Mi42MSAyOS40NWMtMTYuMjguODktNjAuNC05LjI0LTU4LjEzLTU2LjIxLTEuNTktMzguMjggMzQuMDYtNjIuMDYgNzAuOTMtNjAuMDUgNy4xLjAyIDIxLjYuMzcgNDYuOTkgNi4yN3YtMTUuNjJjMi42OS0yNi40Ni0xNC43LTQ2Ljk5LTQ0LjgxLTQzLjkxLTIuNC4wMS0xOS40LS41LTQ1Ljg0IDEwLjExLTcuMzYgMy4zOC04LjMgMi44Mi0xMC43NSAyLjgyLTcuNDEgMC00LjM2LTIxLjQ4LTIuOTQtMjQuMiA1LjIxLTYuNCAzNS44Ni0xOC4zNSA2NS45NC0xOC4xOGE3Ni44NTcgNzYuODU3IDAgMCAxIDU1LjY5IDE3LjI4IDcwLjI4NSA3MC4yODUgMCAwIDEgMTcuNjcgNTIuMzZsLS4wMSA2OS4yOXpNOTMuOTkgMjM1LjRjMzIuNDMtLjQ3IDQ2LjE2LTE5Ljk3IDQ5LjI5LTMwLjQ3IDIuNDYtMTAuMDUgMi4wNS0xNi40MSAyLjA1LTI3LjQtOS42Ny0yLjMyLTIzLjU5LTQuODUtMzkuNTYtNC44Ny0xNS4xNS0xLjE0LTQyLjgyIDUuNjMtNDEuNzQgMzIuMjYtMS4yNCAxNi43OSAxMS4xMiAzMS40IDI5Ljk2IDMwLjQ4em0xNzAuOTIgMjMuMDVjLTcuODYuNzItMTEuNTItNC44Ni0xMi42OC0xMC4zN2wtNDkuOC0xNjQuNjVjLS45Ny0yLjc4LTEuNjEtNS42NS0xLjkyLTguNThhNC42MSA0LjYxIDAgMCAxIDMuODYtNS4yNWMuMjQtLjA0LTIuMTMgMCAyMi4yNSAwIDguNzgtLjg4IDExLjY0IDYuMDMgMTIuNTUgMTAuMzdsMzUuNzIgMTQwLjgzIDMzLjE2LTE0MC44M2MuNTMtMy4yMiAyLjk0LTExLjA3IDEyLjgtMTAuMjRoMTcuMTZjMi4xNy0uMTggMTEuMTEtLjUgMTIuNjggMTAuMzdsMzMuNDIgMTQyLjYzTDQyMC45OCA4MC4xYy40OC0yLjE4IDIuNzItMTEuMzcgMTIuNjgtMTAuMzdoMTkuNzJjLjg1LS4xMyA2LjE1LS44MSA1LjI1IDguNTgtLjQzIDEuODUgMy40MS0xMC42Ni01Mi43NSAxNjkuOS0xLjE1IDUuNTEtNC44MiAxMS4wOS0xMi42OCAxMC4zN2gtMTguNjljLTEwLjk0IDEuMTUtMTIuNTEtOS42Ni0xMi42OC0xMC43NUwzMjguNjcgMTEwLjdsLTMyLjc4IDEzNi45OWMtLjE2IDEuMDktMS43MyAxMS45LTEyLjY4IDEwLjc1aC0xOC4zem0yNzMuNDggNS42M2MtNS44OC4wMS0zMy45Mi0uMy01Ny4zNi0xMi4yOWExMi44MDIgMTIuODAyIDAgMCAxLTcuODEtMTEuOTF2LTEwLjc1YzAtOC40NSA2LjItNi45IDguODMtNS44OSAxMC4wNCA0LjA2IDE2LjQ4IDcuMTQgMjguODEgOS42IDM2LjY1IDcuNTMgNTIuNzctMi4zIDU2LjcyLTQuNDggMTMuMTUtNy44MSAxNC4xOS0yNS42OCA1LjI1LTM0Ljk1LTEwLjQ4LTguNzktMTUuNDgtOS4xMi01My4xMy0yMS00LjY0LTEuMjktNDMuNy0xMy42MS00My43OS01Mi4zNi0uNjEtMjguMjQgMjUuMDUtNTYuMTggNjkuNTItNTUuOTUgMTIuNjctLjAxIDQ2LjQzIDQuMTMgNTUuNTcgMTUuNjIgMS4zNSAyLjA5IDIuMDIgNC41NSAxLjkyIDcuMDR2MTAuMTFjMCA0LjQ0LTEuNjIgNi42Ni00Ljg3IDYuNjYtNy43MS0uODYtMjEuMzktMTEuMTctNDkuMTYtMTAuNzUtNi44OS0uMzYtMzkuODkuOTEtMzguNDEgMjQuOTctLjQzIDE4Ljk2IDI2LjYxIDI2LjA3IDI5LjcgMjYuODkgMzYuNDYgMTAuOTcgNDguNjUgMTIuNzkgNjMuMTIgMjkuNTggMTcuMTQgMjIuMjUgNy45IDQ4LjMgNC4zNSA1NS40NC0xOS4wOCAzNy40OS02OC40MiAzNC40NC02OS4yNiAzNC40MnptNDAuMiAxMDQuODZjLTcwLjAzIDUxLjcyLTE3MS42OSA3OS4yNS0yNTguNDkgNzkuMjVBNDY5LjEyNyA0NjkuMTI3IDAgMCAxIDIuODMgMzI3LjQ2Yy02LjUzLTUuODktLjc3LTEzLjk2IDcuMTctOS40N2E2MzcuMzcgNjM3LjM3IDAgMCAwIDMxNi44OCA4NC4xMiA2MzAuMjIgNjMwLjIyIDAgMCAwIDI0MS41OS00OS41NWMxMS43OC01IDIxLjc3IDcuOCAxMC4xMiAxNi4zOHptMjkuMTktMzMuMjljLTguOTYtMTEuNTItNTkuMjgtNS4zOC04MS44MS0yLjY5LTYuNzkuNzctNy45NC01LjEyLTEuNzktOS40NyA0MC4wNy0yOC4xNyAxMDUuODgtMjAuMSAxMTMuNDQtMTAuNjMgNy41NSA5LjQ3LTIuMDUgNzUuNDEtMzkuNTYgMTA2LjkxLTUuNzYgNC44Ny0xMS4yNyAyLjMtOC43MS00LjEgOC40NC0yMS4yNSAyNy4zOS02OC40OSAxOC40My04MC4wMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFuZGNhbXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2LDhDMTE5LDgsOCwxMTksOCwyNTZTMTE5LDUwNCwyNTYsNTA0LDUwNCwzOTMsNTA0LDI1NiwzOTMsOCwyNTYsOFptNDguMiwzMjYuMWgtMTgxTDIwNy45LDE3OGgxODFaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhdHRsZU5ldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDguNjEgMjI1LjYyYzI2Ljg3LjE4IDM1LjU3LTcuNDMgMzguOTItMTIuMzcgMTIuNDctMTYuMzItNy4wNi00Ny42LTUyLjg1LTcxLjMzIDE3Ljc2LTMzLjU4IDMwLjExLTYzLjY4IDM2LjM0LTg1LjMgMy4zOC0xMS44MyAxLjA5LTE5IC40NS0yMC4yNS0xLjcyIDEwLjUyLTE1Ljg1IDQ4LjQ2LTQ4LjIgMTAwLjA1LTI1LTExLjIyLTU2LjUyLTIwLjEtOTMuNzctMjMuOC04Ljk0LTE2Ljk0LTM0Ljg4LTYzLjg2LTYwLjQ4LTg4LjkzQzI1Mi4xOCA3LjE0IDIzOC43IDEuMDcgMjI4LjE4LjIyaC0uMDVjLTEzLjgzLTEuNTUtMjIuNjcgNS44NS0yNy40IDExLTE3LjIgMTguNTMtMjQuMzMgNDguODctMjUgODQuMDctNy4yNC0xMi4zNS0xNy4xNy0yNC42My0yOC41LTI1LjkzaC0uMThjLTIwLjY2LTMuNDgtMzguMzkgMjkuMjItMzYgODEuMjktMzguMzYgMS4zOC03MSA1Ljc1LTkzIDExLjIzLTkuOSAyLjQ1LTE2LjIyIDcuMjctMTcuNzYgOS43MiAxLS4zOCAyMi40LTkuMjIgMTExLjU2LTkuMjIgNS4yMiA1MyAyOS43NSAxMDEuODIgMjYgOTMuMTktOS43MyAxNS40LTM4LjI0IDYyLjM2LTQ3LjMxIDk3LjctNS44NyAyMi44OC00LjM3IDM3LjYxLjE1IDQ3LjE0IDUuNTcgMTIuNzUgMTYuNDEgMTYuNzIgMjMuMiAxOC4yNiAyNSA1LjcxIDU1LjM4LTMuNjMgODYuNy0yMS4xNC03LjUzIDEyLjg0LTEzLjkgMjguNTEtOS4wNiAzOS4zNCA3LjMxIDE5LjY1IDQ0LjQ5IDE4LjY2IDg4LjQ0LTkuNDUgMjAuMTggMzIuMTggNDAuMDcgNTcuOTQgNTUuNyA3NC4xMmEzOS43OSAzOS43OSAwIDAgMCA4Ljc1IDcuMDljNS4xNCAzLjIxIDguNTggMy4zNyA4LjU4IDMuMzctOC4yNC02Ljc1LTM0LTM4LTYyLjU0LTkxLjc4IDIyLjIyLTE2IDQ1LjY1LTM4Ljg3IDY3LjQ3LTY5LjI3IDEyMi44MiA0LjYgMTQzLjI5LTI0Ljc2IDE0OC0zMS42NCAxNC42Ny0xOS44OCAzLjQzLTU3LjQ0LTU3LjMyLTkzLjY5em0tNzcuODUgMTA2LjIyYzIzLjgxLTM3LjcxIDMwLjM0LTY3Ljc3IDI5LjQ1LTkyLjMzIDI3Ljg2IDE3LjU3IDQ3LjE4IDM3LjU4IDQ5LjA2IDU4LjgzIDEuMTQgMTIuOTMtOC4xIDI5LjEyLTc4LjUxIDMzLjV6TTIxNi45IDM4Ny42OWM5Ljc2LTYuMjMgMTkuNTMtMTMuMTIgMjkuMi0yMC40OSA2LjY4IDEzLjMzIDEzLjYgMjYuMSAyMC42IDM4LjE5LTQwLjYgMjEuODYtNjguODQgMTIuNzYtNDkuOC0xNy43em0yMTUtMTcxLjM1Yy0xMC4yOS01LjM0LTIxLjE2LTEwLjM0LTMyLjM4LTE1LjA1YTcyMi40NTkgNzIyLjQ1OSAwIDAgMCAyMi43NC0zNi45YzM5LjA2IDI0LjEgNDUuOSA1My4xOCA5LjY0IDUxLjk1ek0yNzkuMTggMzk4Yy01LjUxLTExLjM1LTExLTIzLjUtMTYuNS0zNi40NCA0My4yNSAxLjI3IDYyLjQyLTE4LjczIDYzLjI4LTIwLjQxIDAgLjA3LTI1IDE1LjY0LTYyLjUzIDEyLjI1YTcxOC43OCA3MTguNzggMCAwIDAgODUuMDYtODRxMTMuMDYtMTUuMzEgMjQuOTMtMzEuMTFjLS4zNi0uMjktMS41NC0zLTE2LjUxLTEyLTUxLjcgNjAuMjctMTAyLjM0IDk4LTEzMi43NSAxMTUuOTItMjAuNTktMTEuMTgtNDAuODQtMzEuNzgtNTUuNzEtNjEuNDktMjAtMzkuOTItMzAtODIuMzktMzEuNTctMTE2LjA3IDEyLjMuOTEgMjUuMjcgMi4xNyAzOC44NSAzLjg4LTIyLjI5IDM2LjgtMTQuMzkgNjMtMTMuNDcgNjQuMjMgMC0uMDctLjk1LTI5LjE3IDIwLjE0LTU5LjU3YTY5NS4yMyA2OTUuMjMgMCAwIDAgNDQuNjcgMTUyLjg0Yy45My0uMzggMS44NC44OCAxOC42Ny04LjI1LTI2LjMzLTc0LjQ3LTMzLjc2LTEzOC4xNy0zNC0xNzMuNDMgMjAtMTIuNDIgNDguMTgtMTkuOCA4MS42My0xNy44MSA0NC41NyAyLjY3IDg2LjM2IDE1LjI1IDExNi4zMiAzMC43MXEtMTAuNjkgMTUuNjYtMjMuMzMgMzIuNDdDMzY1LjYzIDE1MiAzMzkuMSAxNDUuODQgMzM3LjUgMTQ2Yy4xMSAwIDI1LjkgMTQuMDcgNDEuNTIgNDcuMjJhNzE3LjYzIDcxNy42MyAwIDAgMC0xMTUuMzQtMzEuNzEgNjQ2LjYwOCA2NDYuNjA4IDAgMCAwLTM5LjM5LTYuMDVjLS4wNy40NS0xLjgxIDEuODUtMi4xNiAyMC4zM0MzMDAgMTkwLjI4IDM1OC43OCAyMTUuNjggMzg5LjM2IDIzM2MuNzQgMjMuNTUtNi45NSA1MS42MS0yNS40MSA3OS41Ny0yNC42IDM3LjMxLTU2LjM5IDY3LjIzLTg0Ljc3IDg1LjQzem0yNy40LTI4N2MtNDQuNTYtMS42Ni03My41OCA3LjQzLTk0LjY5IDIwLjY3IDItNTIuMyAyMS4zMS03Ni4zOCAzOC4yMS03NS4yOEMyNjcgNTIuMTUgMzA1IDEwOC41NSAzMDYuNTggMTExem0tMTMwLjY1IDMuMWMuNDggMTIuMTEgMS41OSAyNC42MiAzLjIxIDM3LjI4LTE0LjU1LS44NS0yOC43NC0xLjI1LTQyLjQtMS4yNi0uMDggMy4yNC0uMTItNTEgMjQuNjctNDkuNTloLjA5YzUuNzYgMS4wOSAxMC42MyA2Ljg4IDE0LjQzIDEzLjU3em0tMjguMDYgMTYyYzIwLjc2IDM5LjcgNDMuMyA2MC41NyA2NS4yNSA3Mi4zMS00Ni43OSAyNC43Ni03Ny41MyAyMC04NC45MiA0LjUxLS4yLS4yMS0xMS4xMy0xNS4zIDE5LjY3LTc2Ljgxem0yMTAuMDYgNzQuOFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCZWhhbmNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzMiAyMzcuMmMzMS44LTE1LjIgNDguNC0zOC4yIDQ4LjQtNzQgMC03MC42LTUyLjYtODcuOC0xMTMuMy04Ny44SDB2MzU0LjRoMTcxLjhjNjQuNCAwIDEyNC45LTMwLjkgMTI0LjktMTAyLjkgMC00NC41LTIxLjEtNzcuNC02NC43LTg5Ljd6TTc3LjkgMTM1LjlIMTUxYzI4LjEgMCA1My40IDcuOSA1My40IDQwLjUgMCAzMC4xLTE5LjcgNDIuMi00Ny41IDQyLjJoLTc5di04Mi43em04My4zIDIzMy43SDc3LjlWMjcyaDg0LjljMzQuMyAwIDU2IDE0LjMgNTYgNTAuNiAwIDM1LjgtMjUuOSA0Ny01Ny42IDQ3em0zNTguNS0yNDAuN0gzNzZWOTRoMTQzLjd2MzQuOXpNNTc2IDMwNS4yYzAtNzUuOS00NC40LTEzOS4yLTEyNC45LTEzOS4yLTc4LjIgMC0xMzEuMyA1OC44LTEzMS4zIDEzNS44IDAgNzkuOSA1MC4zIDEzNC43IDEzMS4zIDEzNC43IDYxLjMgMCAxMDEtMjcuNiAxMjAuMS04Ni4zSDUwOWMtNi43IDIxLjktMzQuMyAzMy41LTU1LjcgMzMuNS00MS4zIDAtNjMtMjQuMi02My02NS4zaDE4NS4xYy4zLTQuMi42LTguNy42LTEzLjJ6TTM5MC40IDI3NGMyLjMtMzMuNyAyNC43LTU0LjggNTguNS01NC44IDM1LjQgMCA1My4yIDIwLjggNTYuMiA1NC44SDM5MC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCaWxpYmlsaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODguNiAxMDQuMUM1MDUuMyAxMjIuMiA1MTMgMTQzLjggNTExLjkgMTY5LjhWMzcyLjJDNTExLjUgMzk4LjYgNTAyLjcgNDIwLjMgNDg1LjQgNDM3LjNDNDY4LjIgNDU0LjMgNDQ2LjMgNDYzLjIgNDE5LjkgNDY0SDkyLjAyQzY1LjU3IDQ2My4yIDQzLjgxIDQ1NC4yIDI2Ljc0IDQzNi44QzkuNjgyIDQxOS40IC43NjY3IDM5Ni41IDAgMzY4LjJWMTY5LjhDLjc2NjcgMTQzLjggOS42ODIgMTIyLjIgMjYuNzQgMTA0LjFDNDMuODEgODcuNzUgNjUuNTcgNzguNzcgOTIuMDIgNzhIMTIxLjRMOTYuMDUgNTIuMTlDOTAuMyA0Ni40NiA4Ny40MiAzOS4xOSA4Ny40MiAzMC40Qzg3LjQyIDIxLjYgOTAuMyAxNC4zNCA5Ni4wNSA4LjYwM0MxMDEuOCAyLjg2OCAxMDkuMSAwIDExNy45IDBDMTI2LjcgMCAxMzQgMi44NjggMTM5LjggOC42MDNMMjEzLjEgNzhIMzAxLjFMMzc1LjYgOC42MDNDMzgxLjcgMi44NjggMzg5LjIgMCAzOTggMEM0MDYuOCAwIDQxNC4xIDIuODY4IDQxOS45IDguNjAzQzQyNS42IDE0LjM0IDQyOC41IDIxLjYgNDI4LjUgMzAuNEM0MjguNSAzOS4xOSA0MjUuNiA0Ni40NiA0MTkuOSA1Mi4xOUwzOTQuNiA3OEw0MjMuOSA3OEM0NTAuMyA3OC43NyA0NzEuOSA4Ny43NSA0ODguNiAxMDQuMUg0ODguNnpNNDQ5LjggMTczLjhDNDQ5LjQgMTY0LjIgNDQ2LjEgMTU2LjQgNDM5LjEgMTUwLjNDNDMzLjkgMTQ0LjIgNDI1LjEgMTQwLjkgNDE2LjQgMTQwLjVIOTYuMDVDODYuNDYgMTQwLjkgNzguNiAxNDQuMiA3Mi40NyAxNTAuM0M2Ni4zMyAxNTYuNCA2My4wNyAxNjQuMiA2Mi42OSAxNzMuOFYzNjguMkM2Mi42OSAzNzcuNCA2NS45NSAzODUuMiA3Mi40NyAzOTEuN0M3OC45OSAzOTguMiA4Ni44NSA0MDEuNSA5Ni4wNSA0MDEuNUg0MTYuNEM0MjUuNiA0MDEuNSA0MzMuNCAzOTguMiA0MzkuNyAzOTEuN0M0NDYgMzg1LjIgNDQ5LjQgMzc3LjQgNDQ5LjggMzY4LjJMNDQ5LjggMTczLjh6TTE4NS41IDIxNi41QzE5MS44IDIyMi44IDE5NS4yIDIzMC42IDE5NS42IDIzOS43VjI3M0MxOTUuMiAyODIuMiAxOTEuOSAyODkuOSAxODUuOCAyOTYuMkMxNzkuNiAzMDIuNSAxNzEuOCAzMDUuNyAxNjIuMiAzMDUuN0MxNTIuNiAzMDUuNyAxNDQuNyAzMDIuNSAxMzguNiAyOTYuMkMxMzIuNSAyODkuOSAxMjkuMiAyODIuMiAxMjguOCAyNzNWMjM5LjdDMTI5LjIgMjMwLjYgMTMyLjYgMjIyLjggMTM4LjkgMjE2LjVDMTQ1LjIgMjEwLjIgMTUyLjEgMjA2LjkgMTYyLjIgMjA2LjVDMTcxLjQgMjA2LjkgMTc5LjIgMjEwLjIgMTg1LjUgMjE2LjVIMTg1LjV6TTM3NyAyMTYuNUMzODMuMyAyMjIuOCAzODYuNyAyMzAuNiAzODcuMSAyMzkuN1YyNzNDMzg2LjcgMjgyLjIgMzgzLjQgMjg5LjkgMzc3LjMgMjk2LjJDMzcxLjIgMzAyLjUgMzYzLjMgMzA1LjcgMzUzLjcgMzA1LjdDMzQ0LjEgMzA1LjcgMzM2LjMgMzAyLjUgMzMwLjEgMjk2LjJDMzIzLjEgMjg5LjkgMzIwLjcgMjgyLjIgMzIwLjQgMjczVjIzOS43QzMyMC43IDIzMC42IDMyNC4xIDIyMi44IDMzMC40IDIxNi41QzMzNi43IDIxMC4yIDM0NC41IDIwNi45IDM1My43IDIwNi41QzM2Mi45IDIwNi45IDM3MC43IDIxMC4yIDM3NyAyMTYuNUgzNzd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJpbW9iamVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMzJIMzJDMTQuNCAzMiAwIDQ2LjQgMCA2NHYzODRjMCAxNy42IDE0LjQgMzIgMzIgMzJoMzg0YzE3LjYgMCAzMi0xNC40IDMyLTMyVjY0YzAtMTcuNi0xNC40LTMyLTMyLTMyem0tNjQgMjU3LjRjMCA0OS40LTExLjQgODIuNi0xMDMuOCA4Mi42aC0xNi45Yy00NC4xIDAtNjIuNC0xNC45LTcwLjQtMzguOGgtLjlWMzY4SDk2VjEzNmg2NHY3NC43aDEuMWM0LjYtMzAuNSAzOS43LTM4LjggNjkuNy0zOC44aDE3LjNjOTIuNCAwIDEwMy44IDMzLjEgMTAzLjggODIuNXYzNXptLTY0LTI4Ljl2MjIuOWMwIDIxLjctMy40IDMzLjgtMzguNCAzMy44aC00NS4zYy0yOC45IDAtNDQuMS02LjUtNDQuMS0zNS43di0xOWMwLTI5LjMgMTUuMi0zNS43IDQ0LjEtMzUuN2g0NS4zYzM1LS4yIDM4LjQgMTIgMzguNCAzMy43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCaXRidWNrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIuMiAzMkExNiAxNiAwIDAgMCA2IDQ3LjhhMjYuMzUgMjYuMzUgMCAwIDAgLjIgMi44bDY3LjkgNDEyLjFhMjEuNzcgMjEuNzcgMCAwIDAgMjEuMyAxOC4yaDMyNS43YTE2IDE2IDAgMCAwIDE2LTEzLjRMNTA1IDUwLjdhMTYgMTYgMCAwIDAtMTMuMi0xOC4zIDI0LjU4IDI0LjU4IDAgMCAwLTIuOC0uMkwyMi4yIDMyem0yODUuOSAyOTcuOGgtMTA0bC0yOC4xLTE0N2gxNTcuM2wtMjUuMiAxNDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJpdGNvaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA0IDI1NmMwIDEzNi45NjctMTExLjAzMyAyNDgtMjQ4IDI0OFM4IDM5Mi45NjcgOCAyNTYgMTE5LjAzMyA4IDI1NiA4czI0OCAxMTEuMDMzIDI0OCAyNDh6bS0xNDEuNjUxLTM1LjMzYzQuOTM3LTMyLjk5OS0yMC4xOTEtNTAuNzM5LTU0LjU1LTYyLjU3M2wxMS4xNDYtNDQuNzAyLTI3LjIxMy02Ljc4MS0xMC44NTEgNDMuNTI0Yy03LjE1NC0xLjc4My0xNC41MDItMy40NjQtMjEuODAzLTUuMTNsMTAuOTI5LTQzLjgxLTI3LjE5OC02Ljc4MS0xMS4xNTMgNDQuNjg2Yy01LjkyMi0xLjM0OS0xMS43MzUtMi42ODItMTcuMzc3LTQuMDg0bC4wMzEtLjE0LTM3LjUzLTkuMzctNy4yMzkgMjkuMDYyczIwLjE5MSA0LjYyNyAxOS43NjUgNC45MTNjMTEuMDIyIDIuNzUxIDEzLjAxNCAxMC4wNDQgMTIuNjggMTUuODI1bC0xMi42OTYgNTAuOTI1Yy43Ni4xOTQgMS43NDQuNDczIDIuODI5LjkwNy0uOTA3LS4yMjUtMS44NzYtLjQ3My0yLjg3Ni0uNzEzbC0xNy43OTYgNzEuMzM4Yy0xLjM0OSAzLjM0OC00Ljc2NyA4LjM3LTEyLjQ3MSA2LjQ2NC4yNzEuMzk1LTE5Ljc4LTQuOTM3LTE5Ljc4LTQuOTM3bC0xMy41MSAzMS4xNDcgMzUuNDE0IDguODI3YzYuNTg4IDEuNjUxIDEzLjA0NSAzLjM3OSAxOS40IDUuMDA2bC0xMS4yNjIgNDUuMjEzIDI3LjE4MiA2Ljc4MSAxMS4xNTMtNDQuNzMzYTEwMzguMjA5IDEwMzguMjA5IDAgMCAwIDIxLjY4NyA1LjYyN2wtMTEuMTE1IDQ0LjUyMyAyNy4yMTMgNi43ODEgMTEuMjYyLTQ1LjEyOGM0Ni40MDQgOC43ODEgODEuMjk5IDUuMjM5IDk1Ljk4Ni0zNi43MjcgMTEuODM2LTMzLjc5LS41ODktNTMuMjgxLTI1LjAwNC02NS45OTEgMTcuNzgtNC4wOTggMzEuMTc0LTE1Ljc5MiAzNC43NDctMzkuOTQ5em0tNjIuMTc3IDg3LjE3OWMtOC40MSAzMy43OS02NS4zMDggMTUuNTIzLTgzLjc1NSAxMC45NDNsMTQuOTQ0LTU5Ljg5OWMxOC40NDYgNC42MDMgNzcuNiAxMy43MTcgNjguODExIDQ4Ljk1NnptOC40MTctODcuNjY3Yy03LjY3MyAzMC43MzYtNTUuMDMxIDE1LjEyLTcwLjM5MyAxMS4yOTJsMTMuNTQ4LTU0LjMyN2MxNS4zNjMgMy44MjggNjQuODM2IDEwLjk3MyA1Ni44NDUgNDMuMDM1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCaXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTc4LjQgNjcuMkMxNzMuOC0yMiAzMjQuNS0yNCA0MjEuNSA3MWMxNC4zIDE0LjEtNi40IDM3LjEtMjIuNCAyMS41LTg0LjgtODIuNC0yMTUuOC04MC4zLTI5OC45LTMuMi0xNi4zIDE1LjEtMzYuNS04LjMtMjEuOC0yMi4xem05OC45IDQxOC42YzE5LjMgNS43IDI5LjMtMjMuNiA3LjktMzBDNzMgNDIxLjkgOS40IDMwNi4xIDM3LjcgMTk0LjhjNS0xOS42LTI0LjktMjguMS0zMC4yLTcuMS0zMi4xIDEyNy40IDQxLjEgMjU5LjggMTY5LjggMjk4LjF6bTE0OC4xLTJjMTIxLjktNDAuMiAxOTIuOS0xNjYuOSAxNjQuNC0yOTEtNC41LTE5LjctMzQuOS0xMy44LTMwIDcuOSAyNC4yIDEwNy43LTM3LjEgMjE3LjktMTQzLjIgMjUzLjQtMjEuMiA3LTEwLjQgMzYgOC44IDI5Ljd6bS02Mi45LTc5bC4yLTcxLjhjMC04LjItNi42LTE0LjgtMTQuOC0xNC44LTguMiAwLTE0LjggNi43LTE0LjggMTQuOGwtLjIgNzEuOGMwIDguMiA2LjYgMTQuOCAxNC44IDE0LjhzMTQuOC02LjYgMTQuOC0xNC44em03MS0yNjljMi4xIDkwLjkgNC43IDEzMS45LTg1LjUgMTMyLjUtOTIuNS0uNy04Ni45LTQ0LjMtODUuNS0xMzIuNSAwLTIxLjgtMzIuNS0xOS42LTMyLjUgMHY3MS42YzAgNjkuMyA2MC43IDkwLjkgMTE4IDkwLjEgNTcuMy44IDExOC0yMC44IDExOC05MC4xdi03MS42YzAtMTkuNi0zMi41LTIxLjgtMzIuNSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCbGFja1RpZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMydjQ0OGg0NDhWMzJIMHptMzE2LjUgMzI1LjJMMjI0IDQ0NS45bC05Mi41LTg4LjcgNjQuNS0xODQtNjQuNS04Ni42aDE4NC45TDI1MiAxNzMuMmw2NC41IDE4NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmxhY2tiZXJyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjYgMTE2LjljMCAyMy40LTE2LjQgNDkuMS03Mi41IDQ5LjFIMjMuNGwyMS04OC44aDY3LjhjNDIuMSAwIDUzLjggMjMuMyA1My44IDM5Ljd6bTEyNi4yLTM5LjdoLTY3LjhMMjA1LjcgMTY2aDcwLjFjNTMuOCAwIDcwLjEtMjUuNyA3MC4xLTQ5LjEuMS0xNi40LTExLjYtMzkuNy01My43LTM5Ljd6TTg4LjggMjA4LjFIMjFMMCAyOTYuOWg3MC4xYzU2LjEgMCA3Mi41LTIzLjQgNzIuNS00OS4xIDAtMTYuMy0xMS43LTM5LjctNTMuOC0zOS43em0xODAuMSAwaC02Ny44bC0xOC43IDg4LjhoNzAuMWM1My44IDAgNzAuMS0yMy40IDcwLjEtNDkuMSAwLTE2LjMtMTEuNy0zOS43LTUzLjctMzkuN3ptMTg5LjMtNTMuOGgtNjcuOGwtMTguNyA4OC44aDcwLjFjNTMuOCAwIDcwLjEtMjMuNCA3MC4xLTQ5LjEuMS0xNi4zLTExLjYtMzkuNy01My43LTM5Ljd6bS0yOCAxMzcuOWgtNjcuOEwzNDMuNyAzODFoNzAuMWM1Ni4xIDAgNzAuMS0yMy40IDcwLjEtNDkuMSAwLTE2LjMtMTEuNi0zOS43LTUzLjctMzkuN3pNMjQwLjggMzQ2SDE3M2wtMTguNyA4OC44aDcwLjFjNTYuMSAwIDcwLjEtMjUuNyA3MC4xLTQ5LjEuMS0xNi4zLTExLjYtMzkuNy01My43LTM5Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJsb2dnZXJCIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0Ni42IDIyMi43Yy0xLjgtOC02LjgtMTUuNC0xMi41LTE4LjUtMS44LTEtMTMtMi4yLTI1LTIuNy0yMC4xLS45LTIyLjMtMS4zLTI4LjctNS0xMC4xLTUuOS0xMi44LTEyLjMtMTIuOS0yOS41LS4xLTMzLTEzLjgtNjMuNy00MC45LTkxLjMtMTkuMy0xOS43LTQwLjktMzMtNjUuNS00MC41LTUuOS0xLjgtMTkuMS0yLjQtNjMuMy0yLjktNjkuNC0uOC04NC44LjYtMTA4LjQgMTBDNDUuOSA1OS41IDE0LjcgOTYuMSAzLjMgMTQyLjkgMS4yIDE1MS43LjcgMTY1LjguMiAyNDYuOGMtLjYgMTAxLjUuMSAxMTYuNCA2LjQgMTM2LjUgMTUuNiA0OS42IDU5LjkgODYuMyAxMDQuNCA5NC4zIDE0LjggMi43IDE5Ny4zIDMuMyAyMTYgLjggMzIuNS00LjQgNTgtMTcuNSA4MS45LTQxLjkgMTcuMy0xNy43IDI4LjEtMzYuOCAzNS4yLTYyLjEgNC45LTE3LjYgNC41LTE0Mi44IDIuNS0xNTEuN3ptLTMyMi4xLTYzLjZjNy44LTcuOSAxMC04LjIgNTguOC04LjIgNDMuOSAwIDQ1LjQuMSA1MS44IDMuNCA5LjMgNC43IDEzLjQgMTEuMyAxMy40IDIxLjkgMCA5LjUtMy44IDE2LjItMTIuMyAyMS42LTQuNiAyLjktNy4zIDMuMS01MC4zIDMuMy0yNi41LjItNDcuNy0uNC01MC44LTEuMi0xNi42LTQuNy0yMi44LTI4LjUtMTAuNi00MC44em0xOTEuOCAxOTkuOGwtMTQuOSAyLjQtNzcuNS45Yy02OC4xLjgtODcuMy0uNC05MC45LTItNy4xLTMuMS0xMy44LTExLjctMTQuOS0xOS40LTEuMS03LjMgMi42LTE3LjMgOC4yLTIyLjQgNy4xLTYuNCAxMC4yLTYuNiA5Ny4zLTYuNyA4OS42LS4xIDg5LjEtLjEgOTcuNiA3LjggMTIuMSAxMS4zIDkuNSAzMS4yLTQuOSAzOS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCbG9nZ2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2Mi40IDE5NmM0LjgtNC45IDYuMi01LjEgMzYuNC01LjEgMjcuMiAwIDI4LjEuMSAzMi4xIDIuMSA1LjggMi45IDguMyA3IDguMyAxMy42IDAgNS45LTIuNCAxMC03LjYgMTMuNC0yLjggMS44LTQuNSAxLjktMzEuMSAyLjEtMTYuNC4xLTI5LjUtLjItMzEuNS0uOC0xMC4zLTIuOS0xNC4xLTE3LjctNi42LTI1LjN6bTYxLjQgOTQuNWMtNTMuOSAwLTU1LjguMi02MC4yIDQuMS0zLjUgMy4xLTUuNyA5LjQtNS4xIDEzLjkuNyA0LjcgNC44IDEwLjEgOS4yIDEyIDIuMiAxIDE0LjEgMS43IDU2LjMgMS4ybDQ3LjktLjYgOS4yLTEuNWM5LTUuMSAxMC41LTE3LjQgMy4xLTI0LjQtNS4zLTQuNy01LTQuNy02MC40LTQuN3ptMjIzLjQgMTMwLjFjLTMuNSAyOC40LTIzIDUwLjQtNTEuMSA1Ny41LTcuMiAxLjgtOS43IDEuOS0xNzIuOSAxLjgtMTU3LjggMC0xNjUuOS0uMS0xNzItMS44LTguNC0yLjItMTUuNi01LjUtMjIuMy0xMC01LjYtMy44LTEzLjktMTEuOC0xNy0xNi40LTMuOC01LjYtOC4yLTE1LjMtMTAtMjJDLjEgNDIzIDAgNDIwLjMgMCAyNTYuMyAwIDkzLjIgMCA4OS43IDEuOCA4Mi42IDguMSA1Ny45IDI3LjcgMzkgNTMgMzMuNGM3LjMtMS42IDMzMi4xLTEuOSAzNDAtLjMgMjEuMiA0LjMgMzcuOSAxNy4xIDQ3LjYgMzYuNCA3LjcgMTUuMyA3LTEuNSA3LjMgMTgwLjYuMiAxMTUuOCAwIDE2NC41LS43IDE3MC41em0tODUuNC0xODUuMmMtMS4xLTUtNC4yLTkuNi03LjctMTEuNS0xLjEtLjYtOC0xLjMtMTUuNS0xLjctMTIuNC0uNi0xMy44LS44LTE3LjgtMy4xLTYuMi0zLjYtNy45LTcuNi04LTE4LjMgMC0yMC40LTguNS0zOS40LTI1LjMtNTYuNS0xMi0xMi4yLTI1LjMtMjAuNS00MC42LTI1LjEtMy42LTEuMS0xMS44LTEuNS0zOS4yLTEuOC00Mi45LS41LTUyLjUuNC02Ny4xIDYuMi0yNyAxMC43LTQ2LjMgMzMuNC01My40IDYyLjQtMS4zIDUuNC0xLjYgMTQuMi0xLjkgNjQuMy0uNCA2Mi44IDAgNzIuMSA0IDg0LjUgOS43IDMwLjcgMzcuMSA1My40IDY0LjYgNTguNCA5LjIgMS43IDEyMi4yIDIuMSAxMzMuNy41IDIwLjEtMi43IDM1LjktMTAuOCA1MC43LTI1LjkgMTAuNy0xMC45IDE3LjQtMjIuOCAyMS44LTM4LjUgMy4yLTEwLjkgMi45LTg4LjQgMS43LTkzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJsdWVza3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDA3LjggMjk0LjdjLTMuMy0uNC02LjctLjgtMTAtMS4zYzMuNCAuNCA2LjcgLjkgMTAgMS4zek0yODggMjI3LjFDMjYxLjkgMTc2LjQgMTkwLjkgODEuOSAxMjQuOSAzNS4zQzYxLjYtOS40IDM3LjUtMS43IDIxLjYgNS41QzMuMyAxMy44IDAgNDEuOSAwIDU4LjRTOS4xIDE5NCAxNSAyMTMuOWMxOS41IDY1LjcgODkuMSA4Ny45IDE1My4yIDgwLjdjMy4zLS41IDYuNi0uOSAxMC0xLjRjLTMuMyAuNS02LjYgMS0xMCAxLjRDNzQuMyAzMDguNi05LjEgMzQyLjggMTAwLjMgNDY0LjVDMjIwLjYgNTg5LjEgMjY1LjEgNDM3LjggMjg4IDM2MS4xYzIyLjkgNzYuNyA0OS4yIDIyMi41IDE4NS42IDEwMy40YzEwMi40LTEwMy40IDI4LjEtMTU2LTY1LjgtMTY5LjljLTMuMy0uNC02LjctLjgtMTAtMS4zYzMuNCAuNCA2LjcgLjkgMTAgMS4zYzY0LjEgNy4xIDEzMy42LTE1LjEgMTUzLjItODAuN0M1NjYuOSAxOTQgNTc2IDc1IDU3NiA1OC40cy0zLjMtNDQuNy0yMS42LTUyLjljLTE1LjgtNy4xLTQwLTE0LjktMTAzLjIgMjkuOEMzODUuMSA4MS45IDMxNC4xIDE3Ni40IDI4OCAyMjcuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmx1ZXRvb3RoQiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTYuNDggMjYwLjAyM2w5Mi42MjYtMTAzLjMzM0wxNDMuMTI1IDB2MjA2LjMzbC04Ni4xMTEtODYuMTExLTMxLjQwNiAzMS40MDUgMTA4LjA2MSAxMDguMzk5TDI1LjYwOCAzNjguNDIybDMxLjQwNiAzMS40MDUgODYuMTExLTg2LjExMUwxNDUuODQgNTEybDE0OC41NTItMTQ4LjY0NC05Ny45MTItMTAzLjMzM3ptNDAuODYtMTAyLjk5NmwtNDkuOTc3IDQ5Ljk3OC0uMzM4LTEwMC4yOTUgNTAuMzE1IDUwLjMxN3pNMTg3LjM2MyAzMTMuMDRsNDkuOTc3IDQ5Ljk3OC01MC4zMTUgNTAuMzE2LjMzOC0xMDAuMjk0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCbHVldG9vdGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjkyLjYgMTcxLjFMMjQ5LjcgMjE0bC0uMy04NiA0My4yIDQzLjFtLTQzLjIgMjE5LjhsNDMuMS00My4xLTQyLjktNDIuOS0uMiA4NnpNNDE2IDI1OS40QzQxNiA0NjUgMzQ0LjEgNTEyIDIzMC45IDUxMlMzMiA0NjUgMzIgMjU5LjQgMTE1LjQgMCAyMjguNiAwIDQxNiA1My45IDQxNiAyNTkuNHptLTE1OC41IDBsNzkuNC04OC42TDIxMS44IDM2LjV2MTc2LjlMMTM4IDEzOS42bC0yNyAyNi45IDkyLjcgOTMtOTIuNyA5MyAyNi45IDI2LjkgNzMuOC03My44IDIuMyAxNzAgMTI3LjQtMTI3LjUtODMuOS04OC43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb290c3RyYXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzMzLjUsMjAxLjRjMC0yMi4xLTE1LjYtMzQuMy00My0zNC4zaC01MC40djcxLjJoNDIuNUMzMTUuNCwyMzguMiwzMzMuNSwyMjUsMzMzLjUsMjAxLjR6IE01MTcsMTg4LjYgYy05LjUtMzAuOS0xMC45LTY4LjgtOS44LTk4LjFjMS4xLTMwLjUtMjIuNy01OC41LTU0LjctNTguNUgxMjMuN2MtMzIuMSwwLTU1LjgsMjguMS01NC43LDU4LjVjMSwyOS4zLTAuMyw2Ny4yLTkuOCw5OC4xIGMtOS42LDMxLTI1LjcsNTAuNi01Mi4yLDUzLjF2MjguNWMyNi40LDIuNSw0Mi42LDIyLjEsNTIuMiw1My4xYzkuNSwzMC45LDEwLjksNjguOCw5LjgsOTguMWMtMS4xLDMwLjUsMjIuNyw1OC41LDU0LjcsNTguNWgzMjguNyBjMzIuMSwwLDU1LjgtMjguMSw1NC43LTU4LjVjLTEtMjkuMywwLjMtNjcuMiw5LjgtOTguMWM5LjYtMzEsMjUuNy01MC42LDUyLjEtNTMuMXYtMjguNUM1NDIuNywyMzkuMiw1MjYuNSwyMTkuNiw1MTcsMTg4LjZ6IE0zMDAuMiwzNzUuMWgtOTcuOVYxMzYuOGg5Ny40YzQzLjMsMCw3MS43LDIzLjQsNzEuNyw1OS40YzAsMjUuMy0xOS4xLDQ3LjktNDMuNSw1MS44djEuM2MzMy4yLDMuNiw1NS41LDI2LjYsNTUuNSw1OC4zIEMzODMuNCwzNDkuNywzNTIuMSwzNzUuMSwzMDAuMiwzNzUuMXogTTI5MC4yLDI2Ni40aC01MC4xdjc4LjRoNTIuM2MzNC4yLDAsNTIuMy0xMy43LDUyLjMtMzkuNSBDMzQ0LjcsMjc5LjYsMzI2LjEsMjY2LjQsMjkwLjIsMjY2LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODYuMzQ0LDE5Ny44MzRhNTEuNzY3LDUxLjc2NywwLDAsMC00MS41NywyMC4wNThWMTU2LjAxOGE4LjE5LDguMTksMCwwLDAtOC4xOS04LjE5SDguMTlBOC4xOSw4LjE5LDAsMCwwLDAsMTU2LjAxOFYzMzMuNTUxYTguMTg5LDguMTg5LDAsMCwwLDguMTksOC4xODlIMzYuNTg0YTguMTg5LDguMTg5LDAsMCwwLDguMTktOC4xODl2LTguMDg4YzExLjYyOCwxMy4zNzMsMjUuODc0LDE5Ljc2OSw0MS41NzMsMTkuNzY5LDM0LjYsMCw2MS45MjItMjYuMTY0LDYxLjkyMi03My44NDNDMTQ4LjI2NiwyMjUuNDUyLDEyMS4yMjksMTk3LjgzNCw4Ni4zNDQsMTk3LjgzNFpNNzEuNTE2LDMwNS42OTFjLTkuNTkzLDAtMjEuMjIxLTQuOTQyLTI2Ljc0NS0xMi41VjI1MC4xNjRjNS41MjgtNy41NTgsMTcuMTUyLTEyLjc5MSwyNi43NDUtMTIuNzkxLDE3LjczNCwwLDMxLjEwNywxMy4wODIsMzEuMTA3LDM0LjAxM0MxMDIuNjIzLDI5Mi42MDksODkuMjUsMzA1LjY5MSw3MS41MTYsMzA1LjY5MVptMTU2LjM3Mi01OS4wMzJhMTcuNCwxNy40LDAsMSwwLDE3LjQsMTcuNEExNy40LDE3LjQsMCwwLDAsMjI3Ljg4OCwyNDYuNjU5Wk0yNzMuOTU2LDE1Ni43VjExMi4wMzlhMTMuMzA4LDEzLjMwOCwwLDEsMC0xMC4yMzcsMFYxNTYuN2ExMDcuNDksMTA3LjQ5LDAsMSwwLDEwLjIzNywwWm04NS45OTMsMTA3LjM2N2MwLDMwLjUzMS00MC43OTIsNTUuMjgxLTkxLjExMiw1NS4yODFzLTkxLjExMS0yNC43NS05MS4xMTEtNTUuMjgxLDQwLjc5Mi01NS4yODEsOTEuMTExLTU1LjI4MVMzNTkuOTQ5LDIzMy41MzIsMzU5Ljk0OSwyNjQuMDYyWm0tNTAuMTYzLDE3LjRhMTcuNCwxNy40LDAsMSwwLTE3LjQtMTcuNGgwQTE3LjQsMTcuNCwwLDAsMCwzMDkuNzg2LDI4MS40NjZaTTU4MC43LDI1MC40NTVjLTE0LjgyOC0yLjYxNy0yMi4zODctMy43OC0yMi4zODctOS44ODUsMC01LjUyMyw3LjI2OC05Ljg4NCwxNy43MzUtOS44ODRhNjUuNTYsNjUuNTYsMCwwLDEsMzQuNDg0LDEwLjEsOC4xNzEsOC4xNzEsMCwwLDAsMTEuMjg4LTIuNDY4Yy4wNy0uMTEuMTM4LS4yMjEuMi0uMzMzbDguNjExLTE0Ljg4NmE4LjIsOC4yLDAsMCwwLTIuODY3LTExLjEyMyw5OS44NjMsOTkuODYzLDAsMCwwLTUyLjAxNC0xNC4xMzhjLTM4Ljk1NiwwLTYwLjE3OSwyMS41MTQtNjAuMTc5LDQ2LjIyNSwwLDM2LjM0MiwzMy43MjUsNDEuODY0LDU3LjU2Myw0NS42NDIsMTMuMzczLDIuMzI2LDI0LjEzLDQuMzYxLDI0LjEzLDExLjA0OCwwLDYuNC01LjUyMywxMC43NTctMTguOSwxMC43NTctMTMuNTUyLDAtMzAuOTk0LTYuMjIyLTQyLjYyMy0xMy41NzlhOC4yMDYsOC4yMDYsMCwwLDAtMTEuMzM1LDIuNDkxYy0uMDM1LjA1NC0uMDY5LjEwOC0uMS4xNjRsLTEwLjIsMTYuODkxYTguMjIyLDguMjIyLDAsMCwwLDIuNDkxLDExLjA2NmMxNS4yMjQsMTAuMywzNy42NjMsMTYuNjkyLDU5LjQ0MSwxNi42OTIsNDAuNDA5LDAsNjMuOTU3LTE5Ljc2OSw2My45NTctNDYuNTE1QzY0MCwyNjAuNjMsNjA0LjUzNywyNTQuODE2LDU4MC43LDI1MC40NTVabS05NS45MjgsNjAuNzg3YTguMjExLDguMjExLDAsMCwwLTkuNTIxLTUuOTM4LDIzLjE2OCwyMy4xNjgsMCwwLDEtNC4xNTUuMzg3Yy03Ljg0OSwwLTEyLjUtNi4xMDYtMTIuNS0xNC4yNDVWMjQwLjI4aDIwLjM0OWE4LjE0Myw4LjE0MywwLDAsMCw4LjE0MS04LjE0M1YyMDkuNDY2YTguMTQzLDguMTQzLDAsMCwwLTguMTQxLTguMTQzSDQ1OC41OTRWMTcxLjA5MWE4LjE0Myw4LjE0MywwLDAsMC04LjE0My04LjE0M0g0MjIuMjU3YTguMTQzLDguMTQzLDAsMCwwLTguMTQzLDguMTQzaDB2MzAuMjMySDM5OWE4LjE0Myw4LjE0MywwLDAsMC04LjE0Myw4LjE0M2gwdjIyLjY3MUE4LjE0Myw4LjE0MywwLDAsMCwzOTksMjQwLjI4aDE1LjExNXY2My42NjdjMCwyNy4wMzcsMTUuNDA4LDQxLjI4Miw0My45LDQxLjI4MiwxMi4xODMsMCwyMS4zODMtMi4yLDI3LjYtNS40NDZhOC4xNjEsOC4xNjEsMCwwLDAsNC4xNDUtOS4yNzhaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJyYXZlUmV2ZXJzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTggMGMzIDAgNS44IDEuMyA3LjggMy42bDM4LjEgNDRjLjUtLjEgMS0uMiAxLjUtLjNjOS4yLTEuNiAxOC42LTIuMiAyNy43LTEuMmMxMS42IDEuNCAyMS41IDUuNCAyOC45IDEyLjljNy43IDcuOCAxNS40IDE1LjggMjIuNiAyMy42YzIuNSAyLjcgNC45IDUuMiA2LjkgNy40Yy43IC44IDEuNCAxLjUgMS45IDJjMy40IDMuNyA0LjIgOC4xIDIuNyAxMS45bC05LjggMjQuNiAxMy4xIDM4LjFjLjcgMiAuOCA0LjEgLjIgNi4yYy0uMSAuNC0uMSAuNC0uNSAyLjFjLS42IDIuMy0uNiAyLjMtMS41IDUuOGMtMS42IDYuMy0zLjUgMTMuMy01LjQgMjAuOWMtNS42IDIxLjYtMTEuMiA0My4yLTE2LjQgNjMuNGMtMTIuOSA0OS45LTIxLjQgODIuNy0yMy40IDkwLjljLTExLjEgNDQuNS0xOS45IDYwLTQ4LjMgODAuM2MtMjQuOSAxNy44LTc2LjggNTMuNi04Ni44IDYwYy0xIC42LTIgMS4zLTMuNCAyLjNjLS41IC40LTMuMiAyLjItMy45IDIuN2MtNC45IDMuMy04LjMgNS41LTEyLjEgNy4zYy00LjcgMi4yLTkuMyAzLjUtMTMuOSAzLjVzLTkuMS0xLjItMTMuOS0zLjVjLTMuNy0xLjgtNy4yLTMuOS0xMi4xLTcuM2MtLjgtLjUtMy40LTIuNC0zLjktMi43Yy0xLjQtMS0yLjUtMS43LTMuNC0yLjNjLTEwLTYuNC02MS45LTQyLjEtODYuOC02MGMtMjguNC0yMC40LTM3LjItMzUuOC00OC4zLTgwLjNjLTItOC4yLTEwLjUtNDEtMjMuMy05MC41Yy01LjMtMjAuNi0xMC45LTQyLjItMTYuNS02My44Yy0yLTcuNi0zLjgtMTQuNi01LjQtMjAuOWMtLjktMy41LS45LTMuNS0xLjUtNS44Yy0uNC0xLjctLjQtMS43LS41LTIuMWMtLjUtMi0uNC00LjIgLjItNi4ybDEzLjEtMzguMUwxMS44IDEwNGMtMS41LTMuOC0uNy04LjIgMi0xMS4yYzEuMi0xLjMgMS44LTIgMi42LTIuOGMyLTIuMiA0LjQtNC43IDYuOS03LjRDMzAuNiA3NC45IDM4LjMgNjYuOSA0NiA1OS4xYzcuNC03LjUgMTcuMy0xMS42IDI4LjktMTIuOWM5LjEtMS4xIDE4LjUtLjUgMjcuNyAxLjJjLjUgLjEgMSAuMiAxLjUgLjNsMzguMS00NEMxNDQuMiAxLjMgMTQ3IDAgMTUwIDBIMjk4em0tNC43IDIxLjFIMTU0LjdMMTE1LjYgNjYuMmMtMi42IDMtNi43IDQuMy0xMC42IDMuMmMtLjItLjEtLjctLjItMS41LS40Yy0xLjMtLjMtMi45LS42LTQuNS0uOWMtNy40LTEuMy0xNC45LTEuOC0yMS43LTFDNzAgNjggNjQuMyA3MC4zIDYwLjcgNzRjLTcuNiA3LjctMTUuMiAxNS42LTIyLjMgMjMuM2MtMS43IDEuOC0zLjMgMy41LTQuOCA1LjFsOC44IDIyYzEgMi40IDEgNSAuMiA3LjVMMjkuMiAxNzAuNmMuNCAxLjQgLjUgMS45IDEuMiA0LjhjMS42IDYuMyAzLjUgMTMuMyA1LjQgMjAuOWM1LjYgMjEuNiAxMS4yIDQzLjIgMTYuNCA2My40YzEyLjkgNTAgMjEuNCA4Mi44IDIzLjQgOTFDODUuNyAzOTAuOCA5MiA0MDIgMTE1LjggNDE5YzI0LjYgMTcuNiA3Ni4zIDUzLjIgODUuOSA1OS4zYzEuMiAuOCAyLjUgMS42IDQgMi43Yy42IC40IDMuMiAyLjIgMy45IDIuN2M0IDIuOCA2LjcgNC40IDkuMiA1LjZjMi4yIDEgMy45IDEuNSA1LjEgMS41czIuOS0uNSA1LjEtMS41YzIuNS0xLjIgNS4yLTIuOCA5LjItNS42Yy43LS41IDMuMy0yLjMgMy45LTIuN2MxLjYtMS4xIDIuOC0xLjkgNC0yLjdjOS42LTYuMSA2MS4zLTQxLjcgODUuOS01OS4zYzIzLjgtMTcuMSAzMC4yLTI4LjIgNDAuMS02OC4zYzIuMS04LjMgMTAuNS00MS4xIDIzLjMtOTAuN2M1LjMtMjAuNiAxMC45LTQyLjIgMTYuNS02My44YzItNy42IDMuOC0xNC42IDUuNC0yMC45Yy43LTIuOSAuOS0zLjQgMS4yLTQuOGwtMTMuMy0zOC44Yy0uOC0yLjQtLjgtNS4xIC4yLTcuNWw4LjgtMjJjLTEuNS0xLjYtMy4xLTMuMy00LjgtNS4xYy03LjItNy42LTE0LjctMTUuNS0yMi4zLTIzLjNjLTMuNy0zLjctOS4zLTYtMTYuNi02LjljLTYuOC0uOC0xNC40LS4zLTIxLjcgMWMtMS43IC4zLTMuMiAuNi00LjUgLjljLS44IC4yLTEuMyAuMy0xLjUgLjRjLTMuOCAxLjEtNy45LS4yLTEwLjYtMy4yTDI5My4zIDIxLjF6TTIyNCAzMTZjMi44IDAgMjAuOSA2LjUgMzUuNCAxNC4xczI1IDEzIDI4LjMgMTUuMnMxLjMgNi4yLTEuNyA4LjRzLTQ0LjEgMzQuNi00OC4xIDM4LjJzLTkuOCA5LjUtMTMuOCA5LjVzLTkuOC01LjktMTMuOC05LjVzLTQ1LjEtMzYtNDguMS0zOC4ycy01LjEtNi4yLTEuNy04LjRzMTMuOS03LjUgMjguMy0xNS4yczMyLjUtMTQuMSAzNS40LTE0LjF6bS4xLTIzMC43Yy43IDAgOC44IC4yIDIwLjUgNC4yYzEyLjMgNC4yIDI1LjcgOS40IDMxLjkgOS40czUxLjktOC45IDUxLjktOC45czU0LjIgNjYuNyA1NC4yIDgxcy02LjggMTgtMTMuNyAyNS40cy0zNi44IDM5LjgtNDAuNyA0My45cy0xMS45IDEwLjUtNy4xIDIxLjhzMTEuNyAyNS44IDMuOSA0MC40cy0yMSAyNC40LTI5LjQgMjIuOHMtMjguNC0xMi4yLTM1LjctMTcuMXMtMzAuNS0yNC4zLTMwLjUtMzEuOHMyNC0yMC44IDI4LjQtMjMuOXMyNC43LTE0LjggMjUuMS0xOS40cy4zLTYtNS43LTE3LjRzLTE2LjctMjYuNy0xNC45LTM2LjhzMTkuMS0xNS40IDMxLjUtMjAuMnMzNi4yLTEzLjcgMzkuMi0xNS4xczIuMi0yLjctNi44LTMuNnMtMzQuNi00LjMtNDYuMS0xLjFzLTMxLjIgOC4yLTMyLjggMTAuOXMtMyAyLjctMS40IDExLjhzMTAuMSA1Mi44IDEwLjkgNjAuNnMyLjQgMTIuOS01LjggMTQuOHMtMjIuMSA1LjItMjYuOCA1LjJzLTE4LjYtMy4zLTI2LjgtNS4ycy02LjYtNy01LjgtMTQuOHM5LjMtNTEuNSAxMC45LTYwLjZzLjItOS4yLTEuNC0xMS44cy0yMS4zLTcuNi0zMi44LTEwLjlzLTM3LjEgLjItNDYuMSAxLjFzLTkuOCAyLjItNi44IDMuNnMyNi44IDEwLjQgMzkuMiAxNS4xczI5LjcgMTAgMzEuNSAyMC4ycy05IDI1LjQtMTQuOSAzNi44cy02LjEgMTIuOC01LjcgMTcuNHMyMC42IDE2LjQgMjUuMSAxOS40czI4LjQgMTYuNCAyOC40IDIzLjlzLTIzLjIgMjctMzAuNSAzMS44cy0yNy4yIDE1LjQtMzUuNyAxNy4xcy0yMS43LTguMi0yOS40LTIyLjhzLS44LTI5LjEgMy45LTQwLjRzLTMuMy0xNy43LTcuMS0yMS44cy0zMy44LTM2LjUtNDAuNy00My45cy0xMy43LTExLjItMTMuNy0yNS40czU0LjItODEgNTQuMi04MXM0NS44IDguOSA1MS45IDguOXMxOS41LTUuMiAzMS45LTkuNHMyMC42LTQuMiAyMC42LTQuMmwuMSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcmF2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDUuNSAwSDIyNGg3OC41bDQ0LjcgNTAuOHMzOS4zLTEwLjkgNTcuOCA3LjZzMzMuOCAzNC45IDMzLjggMzQuOWwtMTIgMjkuNSAxNS4zIDQzLjdzLTQ0LjkgMTcwLjItNTAuMSAxOTFjLTEwLjQgNDAuOS0xNy40IDU2LjgtNDYuOSA3Ny41cy04Mi45IDU2LjgtOTEuNiA2Mi4yYy0xLjkgMS4yLTMuOSAyLjUtNS45IDMuOWMtNy41IDUuMS0xNS44IDEwLjgtMjMuNSAxMC44bDAgMCAwIDBjLTcuNyAwLTE2LjEtNS43LTIzLjUtMTAuOGMtMi0xLjQtNC0yLjgtNS45LTMuOWMtOC43LTUuNS02Mi4xLTQxLjUtOTEuNi02Mi4ycy0zNi41LTM2LjYtNDYuOS03Ny41Yy01LjMtMjAuOC01MC4xLTE5MS01MC4xLTE5MWwxNS4zLTQzLjdMOS4yIDkzLjNzMTUuMy0xNi40IDMzLjgtMzQuOXM1Ny44LTcuNiA1Ny44LTcuNkwxNDUuNSAwek0yMjQgNDA3LjZsMCAwYzMuNyAwIDguOS00LjcgMTMtOC40Yy42LS41IDEuMi0xLjEgMS43LTEuNWM0LjItMy43IDQ3LjgtMzcuNSA1MS0zOS44czUuNC02LjUgMS45LTguN2MtMi44LTEuNy0xMC01LjUtMjAuMy0xMC44Yy0zLTEuNi02LjMtMy4yLTkuNy01Yy0xNS40LTgtMzQuNS0xNC43LTM3LjUtMTQuN2wwIDAgMCAwYy0zIDAtMjIuMSA2LjgtMzcuNSAxNC43Yy0zLjUgMS44LTYuNyAzLjUtOS43IDVjLTEwLjMgNS4zLTE3LjYgOS4xLTIwLjMgMTAuOGMtMy42IDIuMi0xLjQgNi40IDEuOSA4LjdzNDYuOCAzNi4xIDUxIDM5LjhjLjUgLjUgMS4xIDEgMS43IDEuNWM0LjEgMy43IDkuMyA4LjQgMTMgOC40bDAgMHptMC0xNjUuN2wwIDBjNC43IDAgMTcuNi0zIDI2LjQtNWwwIDAgMi0uNWM3LjgtMS44IDcuMy02LjMgNi40LTEzYy0uMS0uOC0uMi0xLjYtLjMtMi40Yy0uNi02LjEtNS44LTMzLjEtOS4xLTUwLjNjLTEuMS01LjgtMi0xMC41LTIuNC0xMi45Yy0xLjUtOC4xLS42LTkuNCAuNy0xMS4zYy4yLS4zIC41LS43IC43LTEuMWMxLjQtMi4zIDE2LTYuMiAyNy45LTkuNWwwIDBjMi41LS43IDQuOC0xLjMgNi45LTEuOWMxMC42LTMgMzIuNC0uNiA0NC4yIC42YzEuOCAuMiAzLjQgLjQgNC43IC41YzkuNiAuOSAxMC40IDIuMyA3LjIgMy44Yy0yLjMgMS4xLTE2LjIgNi4zLTI4LjcgMTAuOWwwIDAgMCAwYy00LjcgMS44LTkuMiAzLjUtMTIuOCA0LjhjLTEuNSAuNS0zIDEuMS00LjUgMS43Yy0xMi41IDQuNi0yNy4yIDEwLTI4LjkgMTkuNGMtMS41IDguMyA1LjIgMTkuOSAxMS4zIDMwLjNsMCAwYzEuNiAyLjggMy4yIDUuNSA0LjYgOC4xYzYuMyAxMS45IDYuNSAxMy4zIDYuMSAxOC4xYy0uNCAzLjktMTQuNSAxMi43LTIyLjQgMTcuNmwwIDBjLTEuOCAxLjEtMy4zIDIuMS00LjIgMi43Yy0uOCAuNS0yLjEgMS40LTMuOCAyLjRjLTguNiA1LjItMjYuMyAxNi0yNi4zIDIyLjVjMCA3LjggMjQuNiAyOC4xIDMyLjQgMzMuMnMyOC45IDE2LjEgMzcuOSAxNy44czIzLTguNSAzMS4yLTIzLjhjNy43LTE0LjQgMS43LTI4LjUtMy4yLTQwbC0uOS0yLjJjLTQuNS0xMC42IDEuOS0xNyA2LjItMjEuM2wwIDBjLjUtLjUgMS0xIDEuNC0xLjRMMzc3LjcgMTk0YzEuMy0xLjMgMi41LTIuNiAzLjctMy44bDAgMGM1LjgtNS43IDEwLjgtMTAuNSAxMC44LTIyLjhjMC0xNC45LTU3LjUtODQuNS01Ny41LTg0LjVzLTQ4LjUgOS4zLTU1LjEgOS4zYy01LjIgMC0xNS4zLTMuNS0yNS44LTcuMWwwIDBjLTIuNy0uOS01LjQtMS45LTgtMi43QzIzMi44IDc4LjEgMjI0IDc4IDIyNCA3OGwwIDAgMCAwcy04LjcgMC0yMS44IDQuNGMtMi43IC45LTUuNCAxLjgtOCAyLjdsMCAwYy0xMC41IDMuNi0yMC42IDcuMS0yNS44IDcuMWMtNi41IDAtNTUuMS05LjMtNTUuMS05LjNzLTU3LjUgNjkuNi01Ny41IDg0LjVjMCAxMi4zIDQuOSAxNy4xIDEwLjggMjIuOGwwIDBjMS4yIDEuMiAyLjUgMi40IDMuNyAzLjhsNDMuMSA0NS44Yy40IC41IC45IC45IDEuNCAxLjRsMCAwYzQuMyA0LjMgMTAuNiAxMC43IDYuMiAyMS4zbC0uOSAyLjJjLTQuOSAxMS41LTExIDI1LjYtMy4yIDQwYzguMiAxNS4zIDIyLjIgMjUuNSAzMS4yIDIzLjhzMzAuMS0xMi43IDM3LjktMTcuOHMzMi40LTI1LjQgMzIuNC0zMy4yYzAtNi41LTE3LjctMTcuMy0yNi4zLTIyLjVjLTEuNy0xLTMuMS0xLjktMy44LTIuNGMtLjktLjYtMi40LTEuNS00LjItMi43Yy03LjktNC45LTIyLTEzLjctMjIuNC0xNy42Yy0uNC00LjgtLjMtNi4yIDYuMS0xOC4xYzEuMy0yLjUgMi45LTUuMyA0LjYtOC4xYzYtMTAuNCAxMi44LTIyIDExLjMtMzAuM2MtMS43LTkuNC0xNi40LTE0LjgtMjguOS0xOS40Yy0xLjYtLjYtMy4xLTEuMS00LjUtMS43Yy0zLjYtMS40LTguMS0zLjEtMTIuOC00LjhsLS4xIDBjLTEyLjUtNC43LTI2LjQtOS45LTI4LjctMTAuOWMtMy4yLTEuNS0yLjMtMi44IDcuMi0zLjhjMS4zLS4xIDIuOS0uMyA0LjctLjVjMTEuOC0xLjMgMzMuNi0zLjYgNDQuMi0uNmMyLjEgLjYgNC40IDEuMiA2LjkgMS45YzExLjkgMy4yIDI2LjUgNy4yIDI3LjkgOS41Yy4yIC40IC41IC43IC43IDEuMWMxLjMgMS45IDIuMiAzLjIgLjcgMTEuM2MtLjQgMi40LTEuMyA3LjEtMi40IDEyLjljLTMuMyAxNy4yLTguNSA0NC4yLTkuMSA1MC4zYy0uMSAuOC0uMiAxLjctLjMgMi40Yy0uOCA2LjctMS40IDExLjIgNi40IDEzbDIgLjUgMCAwYzguOCAyIDIxLjggNSAyNi40IDVsMCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdGMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzEwLjIwNCAyNDIuNjM4YzI3LjczLTE0LjE4IDQ1LjM3Ny0zOS4zOSA0MS4yOC04MS4zLTUuMzU4LTU3LjM1MS01Mi40NTgtNzYuNTczLTExNC44NS04MS45MjlWMGgtNDguNTI4djc3LjIwM2MtMTIuNjA1IDAtMjUuNTI1LjMxNS0zOC40NDQuNjNWMGgtNDguNTI4djc5LjQwOWMtMTcuODQyLjUzOS0zOC42MjIuMjc2LTk3LjM3IDB2NTEuNjc4YzM4LjMxNC0uNjc4IDU4LjQxNy0zLjE0IDYzLjAyMyAyMS40Mjd2MjE3LjQyOWMtMi45MjUgMTkuNDkyLTE4LjUyNCAxNi42ODUtNTMuMjU1IDE2LjA3MUwzLjc2NSA0NDMuNjhjODguNDgxIDAgOTcuMzcuMzE1IDk3LjM3LjMxNVY1MTJoNDguNTI4di02Ny4wNmMxMy4yMzQuMzE1IDI2LjE1NC4zMTUgMzguNDQ0LjMxNVY1MTJoNDguNTI4di02OC4wMDVjODEuMjk5LTQuNDEyIDEzNS42NDctMjQuODk0IDE0Mi44OTUtMTAxLjQ2NyA1LjY3MS02MS40NDYtMjMuMzItODguODYyLTY5LjMyNi05OS44OXpNMTUwLjYwOCAxMzQuNTUzYzI3LjQxNSAwIDExMy4xMjYtOC41MDcgMTEzLjEyNiA0OC41MjggMCA1NC41MTUtODUuNzEgNDguMjEyLTExMy4xMjYgNDguMjEydi05Ni43NHptMCAyNTEuNzc2VjI3OS44MjFjMzIuNzcyIDAgMTMzLjEyNy05LjEzOCAxMzMuMTI3IDUzLjI1NS0uMDAxIDYwLjE4Ni0xMDAuMzU1IDUzLjI1My0xMzMuMTI3IDUzLjI1M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVmZmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyNy44NCAzODAuNjdsLTE5Ni41IDk3LjgyYTE4LjYgMTguNiAwIDAgMS0xNC42NyAwTDIwLjE2IDM4MC42N2MtNC0yLTQtNS4yOCAwLTcuMjlMNjcuMjIgMzUwYTE4LjY1IDE4LjY1IDAgMCAxIDE0LjY5IDBsMTM0Ljc2IDY3YTE4LjUxIDE4LjUxIDAgMCAwIDE0LjY3IDBsMTM0Ljc2LTY3YTE4LjYyIDE4LjYyIDAgMCAxIDE0LjY4IDBsNDcuMDYgMjMuNDNjNC4wNSAxLjk2IDQuMDUgNS4yNCAwIDcuMjR6bTAtMTM2LjUzbC00Ny4wNi0yMy40M2ExOC42MiAxOC42MiAwIDAgMC0xNC42OCAwbC0xMzQuNzYgNjcuMDhhMTguNjggMTguNjggMCAwIDEtMTQuNjcgMEw4MS45MSAyMjAuNzFhMTguNjUgMTguNjUgMCAwIDAtMTQuNjkgMGwtNDcuMDYgMjMuNDNjLTQgMi00IDUuMjkgMCA3LjMxbDE5Ni41MSA5Ny44YTE4LjYgMTguNiAwIDAgMCAxNC42NyAwbDE5Ni41LTk3LjhjNC4wNS0yLjAyIDQuMDUtNS4zIDAtNy4zMXpNMjAuMTYgMTMwLjQybDE5Ni41IDkwLjI5YTIwLjA4IDIwLjA4IDAgMCAwIDE0LjY3IDBsMTk2LjUxLTkwLjI5YzQtMS44NiA0LTQuODkgMC02Ljc0TDIzMS4zMyAzMy40YTE5Ljg4IDE5Ljg4IDAgMCAwLTE0LjY3IDBsLTE5Ni41IDkwLjI4Yy00LjA1IDEuODUtNC4wNSA0Ljg4IDAgNi43NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVyb21vYmVsZXhwZXJ0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMydjEyOGgxMjhWMzJIMHptMTIwIDEyMEg4VjQwaDExMnYxMTJ6bTQwLTEyMHYxMjhoMTI4VjMySDE2MHptMTIwIDEyMEgxNjhWNDBoMTEydjExMnptNDAtMTIwdjEyOGgxMjhWMzJIMzIwem0xMjAgMTIwSDMyOFY0MGgxMTJ2MTEyek0wIDE5MnYxMjhoMTI4VjE5Mkgwem0xMjAgMTIwSDhWMjAwaDExMnYxMTJ6bTQwLTEyMHYxMjhoMTI4VjE5MkgxNjB6bTEyMCAxMjBIMTY4VjIwMGgxMTJ2MTEyem00MC0xMjB2MTI4aDEyOFYxOTJIMzIwem0xMjAgMTIwSDMyOFYyMDBoMTEydjExMnpNMCAzNTJ2MTI4aDEyOFYzNTJIMHptMTIwIDEyMEg4VjM2MGgxMTJ2MTEyem00MC0xMjB2MTI4aDEyOFYzNTJIMTYwem0xMjAgMTIwSDE2OFYzNjBoMTEydjExMnptNDAtMTIwdjEyOGgxMjhWMzUySDMyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnV5TkxhcmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAzMkMxMzMuMjcgMzIgNy43OSAxMzIuMzIgNy43OSAyNTZTMTMzLjI3IDQ4MCAyODggNDgwczI4MC4yMS0xMDAuMzIgMjgwLjIxLTIyNFM0NDIuNzMgMzIgMjg4IDMyem0tODUuMzkgMzU3LjE5TDY0LjEgMzkwLjU1bDc3LjI1LTI5MC43NGgxMzMuNDRjNjMuMTUgMCA4NC45MyAyOC42NSA3OCA3Mi44NGE2MC4yNCA2MC4yNCAwIDAgMS0xLjUgNi44NSA3Ny4zOSA3Ny4zOSAwIDAgMC0xNy4yMS0xLjkzYy00Mi4zNSAwLTc2LjY5IDMzLjg4LTc2LjY5IDc1LjY1IDAgMzcuMTQgMjcuMTQgNjggNjIuOTMgNzQuNDUtMTguMjQgMzcuMTYtNTYuMTYgNjAuOTItMTE3LjcxIDYxLjUyek0zNTggMjA3LjExaDMybC0yMi4xNiA5MC4zMWgtMzUuNDFsLTExLjE5LTM1LjYzLTcuODMgMzUuNjNoLTM3LjgzbDI2LjYzLTkwLjMxaDMxLjM0bDE1IDM2Ljc1em0xNDUuODYgMTgyLjA4SDMwNi43OUwzMjIuNjMgMzI4YTc4LjggNzguOCAwIDAgMCAxMS40Ny44M2M0Mi4zNCAwIDc2LjY5LTMzLjg3IDc2LjY5LTc1LjY1IDAtMzIuNjUtMjEtNjAuNDYtNTAuMzgtNzEuMDZsMjEuMzMtODIuMzVoOTIuNWwtNTMuMDUgMjA1LjM2aDEwMy44N3pNMjExLjcgMjY5LjM5SDE4N2wtMTMuOCA1Ni40N2gyNC43YzE2LjE0IDAgMzIuMTEtMy4xOCAzNy45NC0yNi42NSA1LjU2LTIyLjMxLTcuOTktMjkuODItMjQuMTQtMjkuODJ6TTIzMyAxNzBoLTIxLjM0TDIwMCAyMTcuNzFoMjEuMzdjMTggMCAzNS4zOC0xNC42NCAzOS4yMS0zMC4xNEMyNjUuMjMgMTY4LjcxIDI1MS4wNyAxNzAgMjMzIDE3MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnV5c2VsbGFkcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMTUwLjdsNDIuOSAxNjAuN2gtODUuOEwyMjQgMTUwLjd6TTQ0OCA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDM1MmMyNi41IDAgNDggMjEuNSA0OCA0OHptLTY1LjMgMzI1LjNsLTk0LjUtMjk4LjdIMTU5LjhMNjUuMyA0MDUuM0gxNTZsMTExLjctOTEuNiAyNC4yIDkxLjZoOTAuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FuYWRpYW5NYXBsZUxlYWYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzgzLjggMzUxLjdjMi41LTIuNSAxMDUuMi05Mi40IDEwNS4yLTkyLjRsLTE3LjUtNy41Yy0xMC00LjktNy40LTExLjUtNS0xNy40IDIuNC03LjYgMjAuMS02Ny4zIDIwLjEtNjcuM3MtNDcuNyAxMC01Ny43IDEyLjVjLTcuNSAyLjQtMTAtMi41LTEyLjUtNy41cy0xNS0zMi40LTE1LTMyLjQtNTIuNiA1OS45LTU1LjEgNjIuM2MtMTAgNy41LTIwLjEgMC0xNy42LTEwIDAtMTAgMjcuNi0xMjkuNiAyNy42LTEyOS42cy0zMC4xIDE3LjQtNDAuMSAyMi40Yy03LjUgNS0xMi42IDUtMTcuNi01QzI5My41IDcyLjMgMjU1LjkgMCAyNTUuOSAwcy0zNy41IDcyLjMtNDIuNSA3OS44Yy01IDEwLTEwIDEwLTE3LjYgNS0xMC01LTQwLjEtMjIuNC00MC4xLTIyLjRTMTgzLjMgMTgyIDE4My4zIDE5MmMyLjUgMTAtNy41IDE3LjUtMTcuNiAxMC0yLjUtMi41LTU1LjEtNjIuMy01NS4xLTYyLjNTOTguMSAxNjcgOTUuNiAxNzJzLTUgOS45LTEyLjUgNy41QzczIDE3NyAyNS40IDE2NyAyNS40IDE2N3MxNy42IDU5LjcgMjAuMSA2Ny4zYzIuNCA2IDUgMTIuNS01IDE3LjRMMjMgMjU5LjNzMTAyLjYgODkuOSAxMDUuMiA5Mi40YzUuMSA1IDEwIDcuNSA1LjEgMjIuNS01LjEgMTUtMTAuMSAzNS4xLTEwLjEgMzUuMXM5NS4yLTIwLjEgMTA1LjMtMjIuNmM4LjctLjkgMTguMyAyLjUgMTguMyAxMi41UzI0MSA1MTIgMjQxIDUxMmgzMHMtNS44LTEwMi43LTUuOC0xMTIuOCA5LjUtMTMuNCAxOC40LTEyLjVjMTAgMi41IDEwNS4yIDIyLjYgMTA1LjIgMjIuNnMtNS0yMC4xLTEwLTM1LjEgMC0xNy41IDUtMjIuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2NBbWF6b25QYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI0LjcgMjAxLjhjLjEtMTEuOCAwLTIzLjUgMC0zNS4zdi0zNS4zYzAtMS4zLjQtMiAxLjQtMi43IDExLjUtOCAyNC4xLTEyLjEgMzguMi0xMS4xIDEyLjUuOSAyMi43IDcgMjguMSAyMS43IDMuMyA4LjkgNC4xIDE4LjIgNC4xIDI3LjcgMCA4LjctLjcgMTcuMy0zLjQgMjUuNi01LjcgMTcuOC0xOC43IDI0LjctMzUuNyAyMy45LTExLjctLjUtMjEuOS01LTMxLjQtMTEuNy0uOS0uOC0xLjQtMS42LTEuMy0yLjh6bTE1NC45IDE0LjZjNC42IDEuOCA5LjMgMiAxNC4xIDEuNSAxMS42LTEuMiAyMS45LTUuNyAzMS4zLTEyLjUuOS0uNiAxLjMtMS4zIDEuMy0yLjUtLjEtMy45IDAtNy45IDAtMTEuOCAwLTQtLjEtOCAwLTEyIDAtMS40LS40LTItMS44LTIuMi03LS45LTEzLjktMi4yLTIwLjktMi45LTctLjYtMTQtLjMtMjAuOCAxLjktNi43IDIuMi0xMS43IDYuMi0xMy43IDEzLjEtMS42IDUuNC0xLjYgMTAuOC4xIDE2LjIgMS42IDUuNSA1LjIgOS4yIDEwLjQgMTEuMnpNNTc2IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoNDgwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4em0tMjA3LjUgMjMuOWMuNCAxLjcuOSAzLjQgMS42IDUuMSAxNi41IDQwLjYgMzIuOSA4MS4zIDQ5LjUgMTIxLjkgMS40IDMuNSAxLjcgNi40LjIgOS45LTIuOCA2LjItNC45IDEyLjYtNy44IDE4LjctMi42IDUuNS02LjcgOS41LTEyLjcgMTEuMi00LjIgMS4xLTguNSAxLjMtMTIuOS45LTIuMS0uMi00LjItLjctNi4zLS44LTIuOC0uMi00LjIgMS4xLTQuMyA0LS4xIDIuOC0uMSA1LjYgMCA4LjMuMSA0LjYgMS42IDYuNyA2LjIgNy41IDQuNy44IDkuNCAxLjYgMTQuMiAxLjcgMTQuMy4zIDI1LjctNS40IDMzLjEtMTcuOSAyLjktNC45IDUuNi0xMC4xIDcuNy0xNS40IDE5LjgtNTAuMSAzOS41LTEwMC4zIDU5LjItMTUwLjUuNi0xLjUgMS4xLTMgMS4zLTQuNi40LTIuNC0uNy0zLjYtMy4xLTMuNy01LjYtLjEtMTEuMSAwLTE2LjcgMC0zLjEgMC01LjMgMS40LTYuNCA0LjMtLjQgMS4xLS45IDIuMy0xLjMgMy40bC0yOS4xIDgzLjdjLTIuMSA2LjEtNC4yIDEyLjEtNi41IDE4LjYtLjQtLjktLjYtMS40LS44LTEuOS0xMC44LTI5LjktMjEuNi01OS45LTMyLjQtODkuOC0xLjctNC43LTMuNS05LjUtNS4zLTE0LjItLjktMi41LTIuNy00LTUuNC00LTYuNC0uMS0xMi44LS4yLTE5LjItLjEtMi4yIDAtMy4zIDEuNi0yLjggMy43ek0yNDIuNCAyMDZjMS43IDExLjcgNy42IDIwLjggMTggMjYuNiA5LjkgNS41IDIwLjcgNi4yIDMxLjcgNC42IDEyLjctMS45IDIzLjktNy4zIDMzLjgtMTUuNS40LS4zLjgtLjYgMS40LTEgLjUgMy4yLjkgNi4yIDEuNSA5LjIuNSAyLjYgMi4xIDQuMyA0LjUgNC40IDQuNi4xIDkuMS4xIDEzLjcgMCAyLjMtLjEgMy44LTEuNiA0LTMuOS4xLS44LjEtMS42LjEtMi4zdi04OC44YzAtMy42LS4yLTcuMi0uNy0xMC44LTEuNi0xMC44LTYuMi0xOS43LTE1LjktMjUuNC01LjYtMy4zLTExLjgtNS0xOC4yLTUuOS0zLS40LTYtLjctOS4xLTEuMWgtMTBjLS44LjEtMS42LjMtMi41LjMtOC4yLjQtMTYuMyAxLjQtMjQuMiAzLjUtNS4xIDEuMy0xMCAzLjItMTUgNC45LTMgMS00LjUgMy4yLTQuNCA2LjUuMSAyLjgtLjEgNS42IDAgOC4zLjEgNC4xIDEuOCA1LjIgNS43IDQuMSA2LjUtMS43IDEzLjEtMy41IDE5LjctNC44IDEwLjMtMS45IDIwLjctMi43IDMxLjEtMS4yIDUuNC44IDEwLjUgMi40IDE0LjEgNyAzLjEgNCA0LjIgOC44IDQuNCAxMy43LjMgNi45LjIgMTMuOS4zIDIwLjggMCAuNC0uMS43LS4yIDEuMi0uNCAwLS44IDAtMS4xLS4xLTguOC0yLjEtMTcuNy0zLjYtMjYuOC00LjEtOS41LS41LTE4LjkuMS0yNy45IDMuMi0xMC44IDMuOC0xOS41IDEwLjMtMjQuNiAyMC44LTQuMSA4LjMtNC42IDE3LTMuNCAyNS44ek05OC43IDEwNi45djE3NS4zYzAgLjggMCAxLjcuMSAyLjUuMiAyLjUgMS43IDQuMSA0LjEgNC4yIDUuOS4xIDExLjguMSAxNy43IDAgMi41IDAgNC0xLjcgNC4xLTQuMS4xLS44LjEtMS43LjEtMi41di02MC43Yy45LjcgMS40IDEuMiAxLjkgMS42IDE1IDEyLjUgMzIuMiAxNi42IDUxLjEgMTIuOSAxNy4xLTMuNCAyOC45LTEzLjkgMzYuNy0yOS4yIDUuOC0xMS42IDguMy0yNC4xIDguNy0zNyAuNS0xNC4zLTEtMjguNC02LjgtNDEuNy03LjEtMTYuNC0xOC45LTI3LjMtMzYuNy0zMC45LTIuNy0uNi01LjUtLjgtOC4yLTEuMmgtN2MtMS4yLjItMi40LjMtMy42LjUtMTEuNyAxLjQtMjIuMyA1LjgtMzEuOCAxMi43LTIgMS40LTMuOSAzLTUuOSA0LjUtLjEtLjUtLjMtLjgtLjQtMS4yLS40LTIuMy0uNy00LjYtMS4xLTYuOS0uNi0zLjktMi41LTUuNS02LjQtNS42aC05LjdjLTUuOS0uMS02LjkgMS02LjkgNi44ek00OTMuNiAzMzljLTIuNy0uNy01LjEgMC03LjYgMS00My45IDE4LjQtODkuNSAzMC4yLTEzNi44IDM1LjgtMTQuNSAxLjctMjkuMSAyLjgtNDMuNyAzLjItMjYuNi43LTUzLjItLjgtNzkuNi00LjMtMTcuOC0yLjQtMzUuNS01LjctNTMtOS45LTM3LTguOS03Mi43LTIxLjctMTA2LjctMzguOC04LjgtNC40LTE3LjQtOS4zLTI2LjEtMTQtMy44LTIuMS02LjItMS41LTguMiAyLjF2MS43YzEuMiAxLjYgMi4yIDMuNCAzLjcgNC44IDM2IDMyLjIgNzYuNiA1Ni41IDEyMiA3Mi45IDIxLjkgNy45IDQ0LjQgMTMuNyA2Ny4zIDE3LjUgMTQgMi4zIDI4IDMuOCA0Mi4yIDQuNSAzIC4xIDYgLjIgOSAuNC43IDAgMS40LjIgMi4xLjNoMTcuN2MuNy0uMSAxLjQtLjMgMi4xLS4zIDE0LjktLjQgMjkuOC0xLjggNDQuNi00IDIxLjQtMy4yIDQyLjQtOC4xIDYyLjktMTQuNyAyOS42LTkuNiA1Ny43LTIyLjQgODMuNC00MC4xIDIuOC0xLjkgNS43LTMuOCA4LTYuMiA0LjMtNC40IDIuMy0xMC40LTMuMy0xMS45em01MC40LTI3LjdjLS44LTQuMi00LTUuOC03LjYtNy01LjctMS45LTExLjYtMi44LTE3LjYtMy4zLTExLS45LTIyLS40LTMyLjggMS42LTEyIDIuMi0yMy40IDYuMS0zMy41IDEzLjEtMS4yLjgtMi40IDEuOC0zLjEgMy0uNi45LS43IDIuMy0uNSAzLjQuMyAxLjMgMS43IDEuNiAzIDEuNS42IDAgMS4yIDAgMS44LS4xbDE5LjUtMi4xYzkuNi0uOSAxOS4yLTEuNSAyOC44LS44IDQuMS4zIDguMSAxLjIgMTIgMi4yIDQuMyAxLjEgNi4yIDQuNCA2LjQgOC43LjMgNi43LTEuMiAxMy4xLTIuOSAxOS41LTMuNSAxMi45LTguMyAyNS40LTEzLjMgMzcuOC0uMy44LS43IDEuNy0uOCAyLjUtLjQgMi41IDEgNCAzLjQgMy41IDEuNC0uMyAzLTEuMSA0LTIuMSAzLjctMy42IDcuNS03LjIgMTAuNi0xMS4yIDEwLjctMTMuOCAxNy0yOS42IDIwLjctNDYuNi43LTMgMS4yLTYuMSAxLjctOS4xLjItNC43LjItOS42LjItMTQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2NBbWV4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDUyOGMyNi41IDAgNDgtMjEuNSA0OC00OHYtMS4xSDUxNC4zbC0zMS45LTM1LjEtMzEuOSAzNS4xSDI0Ni44VjI2Ny4xSDE4MUwyNjIuNyA4Mi40aDc4LjZsMjguMSA2My4yVjgyLjRoOTcuMkw0ODMuNSAxMzBsMTctNDcuNkg1NzZWODBjMC0yNi41LTIxLjUtNDgtNDgtNDhINDhDMjEuNSAzMiAwIDUzLjUgMCA4MFY0MzJ6bTQ0MC40LTIxLjdMNDgyLjYgMzY0bDQyIDQ2LjNINTc2bC02OC03Mi4xIDY4LTcyLjFINTI1LjRsLTQyIDQ2LjctNDEuNS00Ni43SDM5MC41TDQ1OCAzMzguNmwtNjcuNCA3MS42VjM3Ny4xaC04M1YzNTQuOWg4MC45VjMyMi42SDMwNy42VjMwMC4yaDgzVjI2Ny4xaC0xMjJWNDEwLjNINDQwLjR6bTk2LjMtNzJMNTc2IDM4MC4yVjI5Ni45bC0zOS4zIDQxLjR6bS0zNi4zLTkybDM2LjktMTAwLjZWMjQ2LjNINTc2VjEwM0g1MTUuOGwtMzIuMiA4OS4zTDQ1MS43IDEwM0gzOTAuNVYyNDYuMUwzMjcuMyAxMDNIMjc2LjFMMjEzLjcgMjQ2LjNoNDNsMTEuOS0yOC43aDY1LjlsMTIgMjguN2g4Mi43VjE0Nkw0NjYgMjQ2LjNoMzQuNHpNMjgyIDE4NS40bDE5LjUtNDYuOSAxOS40IDQ2LjlIMjgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDY0FwcGxlUGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwMi4yIDIxOC40YzAgMTcuMi0xMC41IDI3LjEtMjkgMjcuMWgtMjQuM3YtNTQuMmgyNC40YzE4LjQgMCAyOC45IDkuOCAyOC45IDI3LjF6bTQ3LjUgNjIuNmMwIDguMyA3LjIgMTMuNyAxOC41IDEzLjcgMTQuNCAwIDI1LjItOS4xIDI1LjItMjEuOXYtNy43bC0yMy41IDEuNWMtMTMuMy45LTIwLjIgNS44LTIwLjIgMTQuNHpNNTc2IDc5djM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWNzljMC0yNi41IDIxLjUtNDggNDgtNDhoNDgwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xMjcuOCAxOTcuMmM4LjQuNyAxNi44LTQuMiAyMi4xLTEwLjQgNS4yLTYuNCA4LjYtMTUgNy43LTIzLjctNy40LjMtMTYuNiA0LjktMjEuOSAxMS4zLTQuOCA1LjUtOC45IDE0LjQtNy45IDIyLjh6bTYwLjYgNzQuNWMtLjItLjItMTkuNi03LjYtMTkuOC0zMC0uMi0xOC43IDE1LjMtMjcuNyAxNi0yOC4yLTguOC0xMy0yMi40LTE0LjQtMjcuMS0xNC43LTEyLjItLjctMjIuNiA2LjktMjguNCA2LjktNS45IDAtMTQuNy02LjYtMjQuMy02LjQtMTIuNS4yLTI0LjIgNy4zLTMwLjUgMTguNi0xMy4xIDIyLjYtMy40IDU2IDkuMyA3NC40IDYuMiA5LjEgMTMuNyAxOS4xIDIzLjUgMTguNyA5LjMtLjQgMTMtNiAyNC4yLTYgMTEuMyAwIDE0LjUgNiAyNC4zIDUuOSAxMC4yLS4yIDE2LjUtOS4xIDIyLjgtMTguMiA2LjktMTAuNCA5LjgtMjAuNCAxMC0yMXptMTM1LjQtNTMuNGMwLTI2LjYtMTguNS00NC44LTQ0LjktNDQuOGgtNTEuMnYxMzYuNGgyMS4ydi00Ni42aDI5LjNjMjYuOCAwIDQ1LjYtMTguNCA0NS42LTQ1em05MCAyMy43YzAtMTkuNy0xNS44LTMyLjQtNDAtMzIuNC0yMi41IDAtMzkuMSAxMi45LTM5LjcgMzAuNWgxOS4xYzEuNi04LjQgOS40LTEzLjkgMjAtMTMuOSAxMyAwIDIwLjIgNiAyMC4yIDE3LjJ2Ny41bC0yNi40IDEuNmMtMjQuNiAxLjUtMzcuOSAxMS42LTM3LjkgMjkuMSAwIDE3LjcgMTMuNyAyOS40IDMzLjQgMjkuNCAxMy4zIDAgMjUuNi02LjcgMzEuMi0xNy40aC40VjMxMGgxOS42di02OHpNNTE2IDIxMC45aC0yMS41bC0yNC45IDgwLjZoLS40bC0yNC45LTgwLjZINDIybDM1LjkgOTkuMy0xLjkgNmMtMy4yIDEwLjItOC41IDE0LjItMTcuOSAxNC4yLTEuNyAwLTQuOS0uMi02LjItLjN2MTYuNGMxLjIuNCA2LjUuNSA4LjEuNSAyMC43IDAgMzAuNC03LjkgMzguOS0zMS44TDUxNiAyMTAuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2NEaW5lcnNDbHViIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzOS43IDc5LjljLTk2LjkgMC0xNzUuOCA3OC42LTE3NS44IDE3NS44IDAgOTYuOSA3OC45IDE3NS44IDE3NS44IDE3NS44IDk3LjIgMCAxNzUuOC03OC45IDE3NS44LTE3NS44IDAtOTcuMi03OC42LTE3NS44LTE3NS44LTE3NS44em0tMzkuOSAyNzkuNmMtNDEuNy0xNS45LTcxLjQtNTYuNC03MS40LTEwMy44czI5LjctODcuOSA3MS40LTEwNC4xdjIwNy45em03OS44LjNWMTUxLjZjNDEuNyAxNi4yIDcxLjQgNTYuNyA3MS40IDEwNC4xcy0yOS43IDg3LjktNzEuNCAxMDQuMXpNNTI4IDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQ4MGMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNMzI5LjcgNDQ4aC05MC4zYy0xMDYuMiAwLTE5My44LTg1LjUtMTkzLjgtMTkwLjJDNDUuNiAxNDMuMiAxMzMuMiA2NCAyMzkuNCA2NGg5MC4zYzEwNSAwIDIwMC43IDc5LjIgMjAwLjcgMTkzLjggMCAxMDQuNy05NS43IDE5MC4yLTIwMC43IDE5MC4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDY0Rpc2NvdmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyMC40IDE5Ni4xYzAtNy45LTUuNS0xMi4xLTE1LjYtMTIuMWgtNC45djI0LjloNC43YzEwLjMgMCAxNS44LTQuNCAxNS44LTEyLjh6TTUyOCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0ODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS00NC4xIDEzOC45YzIyLjYgMCA1Mi45LTQuMSA1Mi45IDI0LjQgMCAxMi42LTYuNiAyMC43LTE4LjcgMjMuMmwyNS44IDM0LjRoLTE5LjZsLTIyLjItMzIuOGgtMi4ydjMyLjhoLTE2em0tNTUuOS4xaDQ1LjN2MTRINDQ0djE4LjJoMjguM1YyMTdINDQ0djIyLjJoMjkuM1YyNTNINDI4em0tNjguNyAwbDIxLjkgNTUuMiAyMi4yLTU1LjJoMTcuNWwtMzUuNSA4NC4yaC04LjZsLTM1LTg0LjJ6bS01NS45LTNjMjQuNyAwIDQ0LjYgMjAgNDQuNiA0NC42IDAgMjQuNy0yMCA0NC42LTQ0LjYgNDQuNi0yNC43IDAtNDQuNi0yMC00NC42LTQ0LjYgMC0yNC43IDIwLTQ0LjYgNDQuNi00NC42em0tNDkuMyA2LjF2MTljLTIwLjEtMjAuMS00Ni44LTQuNy00Ni44IDE5IDAgMjUgMjcuNSAzOC41IDQ2LjggMTkuMnYxOWMtMjkuNyAxNC4zLTYzLjMtNS43LTYzLjMtMzguMiAwLTMxLjIgMzMuMS01MyA2My4zLTM4em0tOTcuMiA2Ni4zYzExLjQgMCAyMi40LTE1LjMtMy4zLTI0LjQtMTUtNS41LTIwLjItMTEuNC0yMC4yLTIyLjcgMC0yMy4yIDMwLjYtMzEuNCA0OS43LTE0LjNsLTguNCAxMC44Yy0xMC40LTExLjYtMjQuOS02LjItMjQuOSAyLjUgMCA0LjQgMi43IDYuOSAxMi4zIDEwLjMgMTguMiA2LjYgMjMuNiAxMi41IDIzLjYgMjUuNiAwIDI5LjUtMzguOCAzNy40LTU2LjYgMTEuM2wxMC4zLTkuOWMzLjcgNy4xIDkuOSAxMC44IDE3LjUgMTAuOHpNNTUuNCAyNTNIMzJ2LTgyaDIzLjRjMjYuMSAwIDQ0LjEgMTcgNDQuMSA0MS4xIDAgMTguNS0xMy4yIDQwLjktNDQuMSA0MC45em02Ny41IDBoLTE2di04MmgxNnpNNTQ0IDQzM2MwIDguMi02LjggMTUtMTUgMTVIMTI4YzE4OS42LTM1LjYgMzgyLjctMTM5LjIgNDE2LTE2MHpNNzQuMSAxOTEuNmMtNS4yLTQuOS0xMS42LTYuNi0yMS45LTYuNkg0OHY1NC4yaDQuMmMxMC4zIDAgMTctMiAyMS45LTYuNCA1LjctNS4yIDguOS0xMi44IDguOS0yMC43cy0zLjItMTUuNS04LjktMjAuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2NKY2IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMxLjUgMjQ0LjNWMjEyYzQxLjIgMCAzOC41LjIgMzguNS4yIDcuMyAxLjMgMTMuMyA3LjMgMTMuMyAxNiAwIDguOC02IDE0LjUtMTMuMyAxNS44LTEuMi40LTMuMy4zLTM4LjUuM3ptNDIuOCAyMC4yYy0yLjgtLjctMy4zLS41LTQyLjgtLjV2MzVjMzkuNiAwIDQwIC4yIDQyLjgtLjUgNy41LTEuNSAxMy41LTggMTMuNS0xNyAwLTguNy02LTE1LjUtMTMuNS0xN3pNNTc2IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoNDgwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xODIgMTkyLjNoLTU3YzAgNjcuMSAxMC43IDEwOS43LTM1LjggMTA5LjctMTkuNSAwLTM4LjgtNS43LTU3LjItMTQuOHYyOGMzMCA4LjMgNjggOC4zIDY4IDguMyA5Ny45IDAgODItNDcuNyA4Mi0xMzEuMnptMTc4LjUgNC41Yy02My40LTE2LTE2NS0xNC45LTE2NSA1OS4zIDAgNzcuMSAxMDguMiA3My42IDE2NSA1OS4yVjI4N0MzMTIuOSAzMTEuNyAyNTMgMzA5IDI1MyAyNTZzNTkuOC01NS42IDEwNy41LTMxLjJ2LTI4ek01NDQgMjg2LjVjMC0xOC41LTE2LjUtMzAuNS0zOC0zMnYtLjhjMTkuNS0yLjcgMzAuMy0xNS41IDMwLjMtMzAuMiAwLTE5LTE1LjctMzAtMzctMzEgMCAwIDYuMy0uMy0xMjAuMy0uM3YxMjcuNWgxMjIuN2MyNC4zLjEgNDIuMy0xMi45IDQyLjMtMzMuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2NNYXN0ZXJjYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4Mi45IDQxMC4zYzAgNi44LTQuNiAxMS43LTExLjIgMTEuNy02LjggMC0xMS4yLTUuMi0xMS4yLTExLjcgMC02LjUgNC40LTExLjcgMTEuMi0xMS43IDYuNiAwIDExLjIgNS4yIDExLjIgMTEuN3ptLTMxMC44LTExLjdjLTcuMSAwLTExLjIgNS4yLTExLjIgMTEuNyAwIDYuNSA0LjEgMTEuNyAxMS4yIDExLjcgNi41IDAgMTAuOS00LjkgMTAuOS0xMS43LS4xLTYuNS00LjQtMTEuNy0xMC45LTExLjd6bTExNy41LS4zYy01LjQgMC04LjcgMy41LTkuNSA4LjdoMTkuMWMtLjktNS43LTQuNC04LjctOS42LTguN3ptMTA3LjguM2MtNi44IDAtMTAuOSA1LjItMTAuOSAxMS43IDAgNi41IDQuMSAxMS43IDEwLjkgMTEuNyA2LjggMCAxMS4yLTQuOSAxMS4yLTExLjcgMC02LjUtNC40LTExLjctMTEuMi0xMS43em0xMDUuOSAyNi4xYzAgLjMuMy41LjMgMS4xIDAgLjMtLjMuNS0uMyAxLjEtLjMuMy0uMy41LS41LjgtLjMuMy0uNS41LTEuMS41LS4zLjMtLjUuMy0xLjEuMy0uMyAwLS41IDAtMS4xLS4zLS4zIDAtLjUtLjMtLjgtLjUtLjMtLjMtLjUtLjUtLjUtLjgtLjMtLjUtLjMtLjgtLjMtMS4xIDAtLjUgMC0uOC4zLTEuMSAwLS41LjMtLjguNS0xLjEuMy0uMy41LS4zLjgtLjUuNS0uMy44LS4zIDEuMS0uMy41IDAgLjggMCAxLjEuMy41LjMuOC4zIDEuMS41cy4yLjYuNSAxLjF6bS0yLjIgMS40Yy41IDAgLjUtLjMuOC0uMy4zLS4zLjMtLjUuMy0uOCAwLS4zIDAtLjUtLjMtLjgtLjMgMC0uNS0uMy0xLjEtLjNoLTEuNnYzLjVoLjhWNDI2aC4zbDEuMSAxLjRoLjhsLTEuMS0xLjN6TTU3NiA4MXYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgxYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4MGMyNi41IDAgNDggMjEuNSA0OCA0OHpNNjQgMjIwLjZjMCA3Ni41IDYyLjEgMTM4LjUgMTM4LjUgMTM4LjUgMjcuMiAwIDUzLjktOC4yIDc2LjUtMjMuMS03Mi45LTU5LjMtNzIuNC0xNzEuMiAwLTIzMC41LTIyLjYtMTUtNDkuMy0yMy4xLTc2LjUtMjMuMS03Ni40LS4xLTEzOC41IDYyLTEzOC41IDEzOC4yem0yMjQgMTA4LjhjNzAuNS01NSA3MC4yLTE2Mi4yIDAtMjE3LjUtNzAuMiA1NS4zLTcwLjUgMTYyLjYgMCAyMTcuNXptLTE0Mi4zIDc2LjNjMC04LjctNS43LTE0LjQtMTQuNy0xNC43LTQuNiAwLTkuNSAxLjQtMTIuOCA2LjUtMi40LTQuMS02LjUtNi41LTEyLjItNi41LTMuOCAwLTcuNiAxLjQtMTAuNiA1LjRWMzkyaC04LjJ2MzYuN2g4LjJjMC0xOC45LTIuNS0zMC4yIDktMzAuMiAxMC4yIDAgOC4yIDEwLjIgOC4yIDMwLjJoNy45YzAtMTguMy0yLjUtMzAuMiA5LTMwLjIgMTAuMiAwIDguMiAxMCA4LjIgMzAuMmg4LjJ2LTIzem00NC45LTEzLjdoLTcuOXY0LjRjLTIuNy0zLjMtNi41LTUuNC0xMS43LTUuNC0xMC4zIDAtMTguMiA4LjItMTguMiAxOS4zIDAgMTEuMiA3LjkgMTkuMyAxOC4yIDE5LjMgNS4yIDAgOS0xLjkgMTEuNy01LjR2NC42aDcuOVYzOTJ6bTQwLjUgMjUuNmMwLTE1LTIyLjktOC4yLTIyLjktMTUuMiAwLTUuNyAxMS45LTQuOCAxOC41LTEuMWwzLjMtNi41Yy05LjQtNi4xLTMwLjItNi0zMC4yIDguMiAwIDE0LjMgMjIuOSA4LjMgMjIuOSAxNSAwIDYuMy0xMy41IDUuOC0yMC43LjhsLTMuNSA2LjNjMTEuMiA3LjYgMzIuNiA2IDMyLjYtNy41em0zNS40IDkuM2wtMi4yLTYuOGMtMy44IDIuMS0xMi4yIDQuNC0xMi4yLTQuMXYtMTYuNmgxMy4xVjM5MmgtMTMuMXYtMTEuMmgtOC4yVjM5MmgtNy42djcuM2g3LjZWNDE2YzAgMTcuNiAxNy4zIDE0LjQgMjIuNiAxMC45em0xMy4zLTEzLjRoMjcuNWMwLTE2LjItNy40LTIyLjYtMTcuNC0yMi42LTEwLjYgMC0xOC4yIDcuOS0xOC4yIDE5LjMgMCAyMC41IDIyLjYgMjMuOSAzMy44IDE0LjJsLTMuOC02Yy03LjggNi40LTE5LjYgNS44LTIxLjktNC45em01OS4xLTIxLjVjLTQuNi0yLTExLjYtMS44LTE1LjIgNC40VjM5MmgtOC4ydjM2LjdoOC4yVjQwOGMwLTExLjYgOS41LTEwLjEgMTIuOC04LjRsMi40LTcuNnptMTAuNiAxOC4zYzAtMTEuNCAxMS42LTE1LjEgMjAuNy04LjRsMy44LTYuNWMtMTEuNi05LjEtMzIuNy00LjEtMzIuNyAxNSAwIDE5LjggMjIuNCAyMy44IDMyLjcgMTVsLTMuOC02LjVjLTkuMiA2LjUtMjAuNyAyLjYtMjAuNy04LjZ6bTY2LjctMTguM0g0MDh2NC40Yy04LjMtMTEtMjkuOS00LjgtMjkuOSAxMy45IDAgMTkuMiAyMi40IDI0LjcgMjkuOSAxMy45djQuNmg4LjJWMzkyem0zMy43IDBjLTIuNC0xLjItMTEtMi45LTE1LjIgNC40VjM5MmgtNy45djM2LjdoNy45VjQwOGMwLTExIDktMTAuMyAxMi44LTguNGwyLjQtNy42em00MC4zLTE0LjloLTcuOXYxOS4zYy04LjItMTAuOS0yOS45LTUuMS0yOS45IDEzLjkgMCAxOS40IDIyLjUgMjQuNiAyOS45IDEzLjl2NC42aDcuOXYtNTEuN3ptNy42LTc1LjF2NC42aC44VjMwMmgxLjl2LS44aC00LjZ2LjhoMS45em02LjYgMTIzLjhjMC0uNSAwLTEuMS0uMy0xLjYtLjMtLjMtLjUtLjgtLjgtMS4xLS4zLS4zLS44LS41LTEuMS0uOC0uNSAwLTEuMS0uMy0xLjYtLjMtLjMgMC0uOC4zLTEuNC4zLS41LjMtLjguNS0xLjEuOC0uNS4zLS44LjgtLjggMS4xLS4zLjUtLjMgMS4xLS4zIDEuNiAwIC4zIDAgLjguMyAxLjQgMCAuMy4zLjguOCAxLjEuMy4zLjUuNSAxLjEuOC41LjMgMS4xLjMgMS40LjMuNSAwIDEuMSAwIDEuNi0uMy4zLS4zLjgtLjUgMS4xLS44LjMtLjMuNS0uOC44LTEuMS4zLS42LjMtMS4xLjMtMS40em0zLjItMTI0LjdoLTEuNGwtMS42IDMuNS0xLjYtMy41aC0xLjR2NS40aC44di00LjFsMS42IDMuNWgxLjFsMS40LTMuNXY0LjFoMS4xdi01LjR6bTQuNC04MC41YzAtNzYuMi02Mi4xLTEzOC4zLTEzOC41LTEzOC4zLTI3LjIgMC01My45IDguMi03Ni41IDIzLjEgNzIuMSA1OS4zIDczLjIgMTcxLjUgMCAyMzAuNSAyMi42IDE1IDQ5LjUgMjMuMSA3Ni41IDIzLjEgNzYuNC4xIDEzOC41LTYxLjkgMTM4LjUtMTM4LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNjUGF5cGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ni4zIDI1OC4yYzAgMTIuMi05LjcgMjEuNS0yMiAyMS41LTkuMiAwLTE2LTUuMi0xNi0xNSAwLTEyLjIgOS41LTIyIDIxLjctMjIgOS4zIDAgMTYuMyA1LjcgMTYuMyAxNS41ek04MC41IDIwOS43aC00LjdjLTEuNSAwLTMgMS0zLjIgMi43bC00LjMgMjYuNyA4LjItLjNjMTEgMCAxOS41LTEuNSAyMS41LTE0LjIgMi4zLTEzLjQtNi4yLTE0LjktMTcuNS0xNC45em0yODQgMEgzNjBjLTEuOCAwLTMgMS0zLjIgMi43bC00LjIgMjYuNyA4LS4zYzEzIDAgMjItMyAyMi0xOC0uMS0xMC42LTkuNi0xMS4xLTE4LjEtMTEuMXpNNTc2IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoNDgwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xMjguMyAyMTUuNGMwLTIxLTE2LjItMjgtMzQuNy0yOGgtNDBjLTIuNSAwLTUgMi01LjIgNC43TDMyIDI5NC4yYy0uMyAyIDEuMiA0IDMuMiA0aDE5YzIuNyAwIDUuMi0yLjkgNS41LTUuN2w0LjUtMjYuNmMxLTcuMiAxMy4yLTQuNyAxOC00LjcgMjguNiAwIDQ2LjEtMTcgNDYuMS00NS44em04NC4yIDguOGgtMTljLTMuOCAwLTQgNS41LTQuMiA4LjItNS44LTguNS0xNC4yLTEwLTIzLjctMTAtMjQuNSAwLTQzLjIgMjEuNS00My4yIDQ1LjIgMCAxOS41IDEyLjIgMzIuMiAzMS43IDMyLjIgOSAwIDIwLjItNC45IDI2LjUtMTEuOS0uNSAxLjUtMSA0LjctMSA2LjIgMCAyLjMgMSA0IDMuMiA0SDIwMGMyLjcgMCA1LTIuOSA1LjUtNS43bDEwLjItNjQuM2MuMy0xLjktMS4yLTMuOS0zLjItMy45em00MC41IDk3LjlsNjMuNy05Mi42Yy41LS41LjUtMSAuNS0xLjcgMC0xLjctMS41LTMuNS0zLjItMy41aC0xOS4yYy0xLjcgMC0zLjUgMS00LjUgMi41bC0yNi41IDM5LTExLTM3LjVjLS44LTIuMi0zLTQtNS41LTRoLTE4LjdjLTEuNyAwLTMuMiAxLjgtMy4yIDMuNSAwIDEuMiAxOS41IDU2LjggMjEuMiA2Mi4xLTIuNyAzLjgtMjAuNSAyOC42LTIwLjUgMzEuNiAwIDEuOCAxLjUgMy4yIDMuMiAzLjJoMTkuMmMxLjgtLjEgMy41LTEuMSA0LjUtMi42em0xNTkuMy0xMDYuN2MwLTIxLTE2LjItMjgtMzQuNy0yOGgtMzkuN2MtMi43IDAtNS4yIDItNS41IDQuN2wtMTYuMiAxMDJjLS4yIDIgMS4zIDQgMy4yIDRoMjAuNWMyIDAgMy41LTEuNSA0LTMuMmw0LjUtMjljMS03LjIgMTMuMi00LjcgMTgtNC43IDI4LjQgMCA0NS45LTE3IDQ1LjktNDUuOHptODQuMiA4LjhoLTE5Yy0zLjggMC00IDUuNS00LjMgOC4yLTUuNS04LjUtMTQtMTAtMjMuNy0xMC0yNC41IDAtNDMuMiAyMS41LTQzLjIgNDUuMiAwIDE5LjUgMTIuMiAzMi4yIDMxLjcgMzIuMiA5LjMgMCAyMC41LTQuOSAyNi41LTExLjktLjMgMS41LTEgNC43LTEgNi4yIDAgMi4zIDEgNCAzLjIgNEg0ODRjMi43IDAgNS0yLjkgNS41LTUuN2wxMC4yLTY0LjNjLjMtMS45LTEuMi0zLjktMy4yLTMuOXptNDcuNS0zMy4zYzAtMi0xLjUtMy41LTMuMi0zLjVoLTE4LjVjLTEuNSAwLTMgMS4yLTMuMiAyLjdsLTE2LjIgMTA0LS4zLjVjMCAxLjggMS41IDMuNSAzLjUgMy41aDE2LjVjMi41IDAgNS0yLjkgNS4yLTUuN0w1NDQgMTkxLjJ2LS4zem0tOTAgNTEuOGMtMTIuMiAwLTIxLjcgOS43LTIxLjcgMjIgMCA5LjcgNyAxNSAxNi4yIDE1IDEyIDAgMjEuNy05LjIgMjEuNy0yMS41LjEtOS44LTYuOS0xNS41LTE2LjItMTUuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2NTdHJpcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDkyLjQgMjIwLjhjLTguOSAwLTE4LjcgNi43LTE4LjcgMjIuN2gzNi43YzAtMTYtOS4zLTIyLjctMTgtMjIuN3pNMzc1IDIyMy40Yy04LjIgMC0xMy4zIDIuOS0xNyA3bC4yIDUyLjhjMy41IDMuNyA4LjUgNi43IDE2LjggNi43IDEzLjEgMCAyMS45LTE0LjMgMjEuOS0zMy40IDAtMTguNi05LTMzLjItMjEuOS0zMy4xek01MjggMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoNDgwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xMjIuMiAyODEuMWMwIDI1LjYtMjAuMyA0MC4xLTQ5LjkgNDAuMy0xMi4yIDAtMjUuNi0yLjQtMzguOC04LjF2LTMzLjljMTIgNi40IDI3LjEgMTEuMyAzOC45IDExLjMgNy45IDAgMTMuNi0yLjEgMTMuNi04LjcgMC0xNy01NC0xMC42LTU0LTQ5LjkgMC0yNS4yIDE5LjItNDAuMiA0OC00MC4yIDExLjggMCAyMy41IDEuOCAzNS4zIDYuNXYzMy40Yy0xMC44LTUuOC0yNC41LTkuMS0zNS4zLTkuMS03LjUgMC0xMi4xIDIuMi0xMi4xIDcuNyAwIDE2IDU0LjMgOC40IDU0LjMgNTAuN3ptNjguOC01Ni42aC0yN1YyNzVjMCAyMC45IDIyLjUgMTQuNCAyNyAxMi42djI4LjljLTQuNyAyLjYtMTMuMyA0LjctMjQuOSA0LjctMjEuMSAwLTM2LjktMTUuNS0zNi45LTM2LjVsLjItMTEzLjkgMzQuNy03LjR2MzAuOEgxOTF6bTc0IDIuNGMtNC41LTEuNS0xOC43LTMuNi0yNy4xIDcuNHY4NC40aC0zNS41VjE5NC4yaDMwLjdsMi4yIDEwLjVjOC4zLTE1LjMgMjQuOS0xMi4yIDI5LjYtMTAuNWguMXptNDQuMSA5MS44aC0zNS43VjE5NC4yaDM1Ljd6bTAtMTQyLjlsLTM1LjcgNy42di0yOC45bDM1LjctNy42em03NC4xIDE0NS41Yy0xMi40IDAtMjAtNS4zLTI1LjEtOWwtLjEgNDAuMi0zNS41IDcuNVYxOTQuMmgzMS4zbDEuOCA4LjhjNC45LTQuNSAxMy45LTExLjEgMjcuOC0xMS4xIDI0LjkgMCA0OC40IDIyLjUgNDguNCA2My44IDAgNDUuMS0yMy4yIDY1LjUtNDguNiA2NS42em0xNjAuNC01MS41aC02OS41YzEuNiAxNi42IDEzLjggMjEuNSAyNy42IDIxLjUgMTQuMSAwIDI1LjItMyAzNC45LTcuOVYzMTJjLTkuNyA1LjMtMjIuNCA5LjItMzkuNCA5LjItMzQuNiAwLTU4LjgtMjEuNy01OC44LTY0LjUgMC0zNi4yIDIwLjUtNjQuOSA1NC4zLTY0LjkgMzMuNyAwIDUxLjMgMjguNyA1MS4zIDY1LjEgMCAzLjUtLjMgMTAuOS0uNCAxMi45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDY1Zpc2EgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDcwLjEgMjMxLjNzNy42IDM3LjIgOS4zIDQ1SDQ0NmMzLjMtOC45IDE2LTQzLjUgMTYtNDMuNS0uMi4zIDMuMy05LjEgNS4zLTE0LjlsMi44IDEzLjR6TTU3NiA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4MGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTUyLjUgMzMxLjJMMjE1LjcgMTc2aC00Mi41bC0zOS4zIDEwNi00LjMtMjEuNS0xNC03MS40Yy0yLjMtOS45LTkuNC0xMi43LTE4LjItMTMuMUgzMi43bC0uNyAzLjFjMTUuOCA0IDI5LjkgOS44IDQyLjIgMTcuMWwzNS44IDEzNWg0Mi41em05NC40LjJMMjcyLjEgMTc2aC00MC4ybC0yNS4xIDE1NS40aDQwLjF6bTEzOS45LTUwLjhjLjItMTcuNy0xMC42LTMxLjItMzMuNy00Mi4zLTE0LjEtNy4xLTIyLjctMTEuOS0yMi43LTE5LjIuMi02LjYgNy4zLTEzLjQgMjMuMS0xMy40IDEzLjEtLjMgMjIuNyAyLjggMjkuOSA1LjlsMy42IDEuNyA1LjUtMzMuNmMtNy45LTMuMS0yMC41LTYuNi0zNi02LjYtMzkuNyAwLTY3LjYgMjEuMi02Ny44IDUxLjQtLjMgMjIuMyAyMCAzNC43IDM1LjIgNDIuMiAxNS41IDcuNiAyMC44IDEyLjYgMjAuOCAxOS4zLS4yIDEwLjQtMTIuNiAxNS4yLTI0LjEgMTUuMi0xNiAwLTI0LjYtMi41LTM3LjctOC4zbC01LjMtMi41LTUuNiAzNC45YzkuNCA0LjMgMjYuOCA4LjEgNDQuOCA4LjMgNDIuMi4xIDY5LjctMjAuOCA3MC01M3pNNTI4IDMzMS40TDQ5NS42IDE3NmgtMzEuMWMtOS42IDAtMTYuOSAyLjgtMjEgMTIuOWwtNTkuNyAxNDIuNUg0MjZzNi45LTE5LjIgOC40LTIzLjNINDg2YzEuMiA1LjUgNC44IDIzLjMgNC44IDIzLjNINTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDZW50ZXJjb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyOS4yIDI2OC42Yy0zLjggMzUuMi0zNS40IDYwLjYtNzAuNiA1Ni44LTM1LjItMy44LTYwLjYtMzUuNC01Ni44LTcwLjYgMy44LTM1LjIgMzUuNC02MC42IDcwLjYtNTYuOCAzNS4xIDMuOCA2MC42IDM1LjQgNTYuOCA3MC42em0tODUuOCAyMzUuMUM5Ni43IDQ5Ni04LjIgMzY1LjUgMTAuMSAyMjQuM2MxMS4yLTg2LjYgNjUuOC0xNTYuOSAxMzkuMS0xOTIgMTYxLTc3LjEgMzQ5LjcgMzcuNCAzNTQuNyAyMTYuNiA0LjEgMTQ3LTExOC40IDI2Mi4yLTI2MC41IDI1NC44em0xNzkuOS0xODBjMjcuOS0xMTgtMTYwLjUtMjA1LjktMjM3LjItMjM0LjItNTcuNSA1Ni4zLTY5LjEgMTg4LjYtMzMuOCAzNDQuNCA2OC44IDE1LjggMTY5LjEtMjYuNCAyNzEtMTEwLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNlbnRvcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODkuNiA5Ny41bDMxLjYgMzEuNy03Ni4zIDc2LjVWOTcuNXptLTE2Mi40IDMxLjdsNzYuMyA3Ni41Vjk3LjVoLTQ0Ljd6bTQxLjUtNDEuNmg0NC43djEyNy45bDEwLjggMTAuOCAxMC44LTEwLjhWODcuNmg0NC43TDIyNC4yIDMyem0yNi4yIDE2OC4xbC0xMC44LTEwLjhINTUuNXYtNDQuOEwwIDI1NS43bDU1LjUgNTUuNnYtNDQuOGgxMjguNmwxMC44LTEwLjh6bTc5LjMtMjAuN2gxMDcuOXYtNDQuOGwtMzEuNi0zMS43em0xNzMuMyAyMC43TDM5MiAyMDAuMXY0NC44SDI2NC4zbC0xMC44IDEwLjggMTAuOCAxMC44SDM5MnY0NC44bDU1LjUtNTUuNnpNNjUuNCAxNzYuMmwzMi41LTMxLjcgOTAuMyA5MC41aDE1LjN2LTE1LjNsLTkwLjMtOTAuNSAzMS42LTMxLjdINjUuNHptMzE2LjctNzguN2gtNzguNWwzMS42IDMxLjctOTAuMyA5MC41VjIzNWgxNS4zbDkwLjMtOTAuNSAzMS42IDMxLjd6TTIwMy41IDQxMy45VjMwNS44bC03Ni4zIDc2LjUgMzEuNiAzMS43aDQ0Ljd6TTY1LjQgMjM1aDEwOC44bC03Ni4zLTc2LjUtMzIuNSAzMS43em0zMTYuNyAxMDAuMmwtMzEuNiAzMS43LTkwLjMtOTAuNWgtMTUuM3YxNS4zbDkwLjMgOTAuNS0zMS42IDMxLjdoNzguNXptMC01OC44SDI3NC4ybDc2LjMgNzYuNSAzMS42LTMxLjd6bS02MC45IDEwNS44bC03Ni4zLTc2LjV2MTA4LjFoNDQuN3pNOTcuOSAzNTIuOWw3Ni4zLTc2LjVINjUuNHY0NC44em0xODEuOCA3MC45SDIzNVYyOTUuOWwtMTAuOC0xMC44LTEwLjggMTAuOHYxMjcuOWgtNDQuN2w1NS41IDU1LjZ6bS0xNjYuNS00MS42bDkwLjMtOTAuNXYtMTUuM2gtMTUuM2wtOTAuMyA5MC41LTMyLjUtMzEuN3Y3OC43aDc5LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNocm9tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI1NkMwIDIwOS40IDEyLjQ3IDE2NS42IDM0LjI3IDEyNy4xTDE0NC4xIDMxOC4zQzE2NiAzNTcuNSAyMDcuOSAzODQgMjU2IDM4NEMyNzAuMyAzODQgMjgzLjEgMzgxLjcgMjk2LjggMzc3LjRMMjIwLjUgNTA5LjZDOTUuOSA0OTIuMyAwIDM4NS4zIDAgMjU2ek0zNjUuMSAzMjEuNkMzNzcuNCAzMDIuNCAzODQgMjc5LjEgMzg0IDI1NkMzODQgMjE3LjggMzY3LjIgMTgzLjUgMzQwLjcgMTYwSDQ5My40QzUwNS40IDE4OS42IDUxMiAyMjIuMSA1MTIgMjU2QzUxMiAzOTcuNCAzOTcuNCA1MTEuMSAyNTYgNTEyTDM2NS4xIDMyMS42ek00NzcuOCAxMjhIMjU2QzE5My4xIDEyOCAxNDIuMyAxNzIuMSAxMzAuNSAyMzAuN0w1NC4xOSA5OC40N0MxMDEgMzguNTMgMTc0IDAgMjU2IDBDMzUwLjggMCA0MzMuNSA1MS40OCA0NzcuOCAxMjhWMTI4ek0xNjggMjU2QzE2OCAyMDcuNCAyMDcuNCAxNjggMjU2IDE2OEMzMDQuNiAxNjggMzQ0IDIwNy40IDM0NCAyNTZDMzQ0IDMwNC42IDMwNC42IDM0NCAyNTYgMzQ0QzIwNy40IDM0NCAxNjggMzA0LjYgMTY4IDI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hyb21lY2FzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDcuOCw2NEg2NGMtMjMuNiwwLTQyLjcsMTkuMS00Mi43LDQyLjd2NjMuOUg2NHYtNjMuOWgzODMuOHYyOTguNkgyOTguNlY0NDhINDQ4YzIzLjYsMCw0Mi43LTE5LjEsNDIuNy00Mi43VjEwNi43IEM0OTAuNyw4My4xLDQ3MS40LDY0LDQ0Ny44LDY0eiBNMjEuMywzODMuNkwyMS4zLDM4My42bDAsNjMuOWg2My45Qzg1LjIsNDEyLjIsNTYuNiwzODMuNiwyMS4zLDM4My42TDIxLjMsMzgzLjZ6IE0yMS4zLDI5OC42VjM0MSBjNTguOSwwLDEwNi42LDQ4LjEsMTA2LjYsMTA3aDQyLjdDMTcwLjcsMzY1LjYsMTAzLjcsMjk4LjcsMjEuMywyOTguNnogTTIxMy40LDQ0OGg0Mi43Yy0wLjUtMTI5LjUtMTA1LjMtMjM0LjMtMjM0LjgtMjM0LjZsMCw0Mi40IEMxMjcuMywyNTUuNiwyMTMuMywzNDIsMjEzLjQsNDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZGZsYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwNy45MDYsMzE5LjkxM2wtMjMwLjgtMi45MjhhNC41OCw0LjU4LDAsMCwxLTMuNjMyLTEuOTI2LDQuNjQ4LDQuNjQ4LDAsMCwxLS40OTQtNC4xNDcsNi4xNDMsNi4xNDMsMCwwLDEsNS4zNjEtNC4wNzZMNDExLjI4MSwzMDMuOWMyNy42MzEtMS4yNiw1Ny41NDYtMjMuNTc0LDY4LjAyMi01MC43ODRsMTMuMjg2LTM0LjU0MmE3Ljk0NCw3Ljk0NCwwLDAsMCwuNTI0LTIuOTM2LDcuNzM1LDcuNzM1LDAsMCwwLS4xNjQtMS42MzFBMTUxLjkxLDE1MS45MSwwLDAsMCwyMDEuMjU3LDE5OC40LDY4LjEyLDY4LjEyLDAsMCwwLDk0LjIsMjY5LjU5QzQxLjkyNCwyNzEuMTA2LDAsMzEzLjcyOCwwLDM2Ni4xMmE5Ni4wNTQsOTYuMDU0LDAsMCwwLDEuMDI5LDEzLjk1OCw0LjUwOCw0LjUwOCwwLDAsMCw0LjQ0NSwzLjg3MWw0MjYuMS4wNTFjLjA0MywwLC4wOC0uMDE5LjEyMi0uMDJhNS42MDYsNS42MDYsMCwwLDAsNS4yNzEtNGwzLjI3My0xMS4yNjVjMy45LTEzLjQsMi40NDgtMjUuOC00LjEtMzQuOUM0MzAuMTI0LDMyNS40MjMsNDIwLjA5LDMyMC40ODcsNDA3LjkwNiwzMTkuOTEzWk01MTMuODU2LDIyMS4xYy0yLjE0MSwwLTQuMjcxLjA2Mi02LjM5MS4xNjRhMy43NzEsMy43NzEsMCwwLDAtMy4zMjQsMi42NTNsLTkuMDc3LDMxLjE5M2MtMy45LDEzLjQtMi40NDksMjUuNzg2LDQuMSwzNC44OSw2LjAyLDguNCwxNi4wNTQsMTMuMzIzLDI4LjIzOCwxMy45bDQ5LjIsMi45MzlhNC40OTEsNC40OTEsMCwwLDEsMy41MSwxLjg5NCw0LjY0LDQuNjQsMCwwLDEsLjUxNCw0LjE2OSw2LjE1Myw2LjE1MywwLDAsMS01LjM1MSw0LjA3NWwtNTEuMTI1LDIuOTM5Yy0yNy43NTQsMS4yNy01Ny42NjksMjMuNTc0LTY4LjE0NSw1MC43ODRsLTMuNjk1LDkuNjA2YTIuNzE2LDIuNzE2LDAsMCwwLDIuNDI3LDMuNjhjLjA0NiwwLC4wODguMDE3LjEzNi4wMTdoMTc1LjkxYTQuNjksNC42OSwwLDAsMCw0LjUzOS0zLjM3LDEyNC44MDcsMTI0LjgwNywwLDAsMCw0LjY4Mi0zNEM2NDAsMjc3LjMsNTgzLjUyNCwyMjEuMSw1MTMuODU2LDIyMS4xWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZHNjYWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxOC4xIDE1NGwtOS40IDcuNmMtMjIuNS0xOS4zLTUxLjUtMzMuNi04My4zLTMzLjZDMTUzLjggMTI4IDk2IDE4OC44IDk2IDI2MC4zYzAgNi42LjQgMTMuMSAxLjQgMTkuNC0yLTU2IDQxLjgtOTcuNCA5Mi42LTk3LjQgMjQuMiAwIDQ2LjIgOS40IDYyLjYgMjQuN2wtMjUuMiAyMC40Yy04LjMtLjktMTYuOCAxLjgtMjMuMSA4LjEtMTEuMSAxMS0xMS4xIDI4LjkgMCA0MCAxMS4xIDExIDI4LjkgMTEgNDAgMCA2LjMtNi4zIDktMTQuOSA4LjEtMjMuMWw3NS4yLTg4LjhjNi4zLTYuNS0zLjMtMTUuOS05LjUtOS42em0tODMuOCAxMTEuNWMtNS42IDUuNS0xNC42IDUuNS0yMC4yIDAtNS42LTUuNi01LjYtMTQuNiAwLTIwLjJzMTQuNi01LjYgMjAuMiAwIDUuNiAxNC43IDAgMjAuMnpNMjI0IDMyQzEwMC41IDMyIDAgMTMyLjUgMCAyNTZzMTAwLjUgMjI0IDIyNCAyMjQgMjI0LTEwMC41IDIyNC0yMjRTMzQ3LjUgMzIgMjI0IDMyem0wIDM4NGMtODguMiAwLTE2MC03MS44LTE2MC0xNjBTMTM1LjggOTYgMjI0IDk2czE2MCA3MS44IDE2MCAxNjAtNzEuOCAxNjAtMTYwIDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRzbWl0aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgMjI3LjZ2NTYuOUwyODQuNCA1MTJIMjI3LjZMMCAyODQuNFYyMjcuNkwyMjcuNiAwaDU2LjlMNTEyIDIyNy42em0tMjU2IDE2MmExMzMuNiAxMzMuNiAwIDEgMCAwLTI2Ny4xIDEzMy42IDEzMy42IDAgMSAwIDAgMjY3LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkdmVyc2lmeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjE2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDguNiAzMDRjOC4yIDY4LjUgNjcuNCAxMTUuNSAxNDYgMTExLjMgNTEuMiA0My4zIDEzNi44IDQ1LjggMTg2LjQtNS42IDY5LjIgMS4xIDExOC41LTQ0LjYgMTMxLjUtOTkuNSAxNC44LTYyLjUtMTguMi0xMzIuNS05Mi4xLTE1NS4xLTMzLTg4LjEtMTMxLjQtMTAxLjUtMTg2LjUtODUtNTcuMyAxNy4zLTg0LjMgNTMuMi05OS4zIDEwOS43LTcuOCAyLjctMjYuNSA4LjktNDUgMjQuMSAxMS43IDAgMTUuMiA4LjkgMTUuMiAxOS41djIwLjRjMCAxMC43LTguNyAxOS41LTE5LjUgMTkuNWgtMjAuMmMtMTAuNyAwLTE5LjUtNi0xOS41LTE2LjdWMjQwSDk4LjhDOTUgMjQwIDg4IDI0NC4zIDg4IDI1MS45djQwLjRjMCA2LjQgNS4zIDExLjggMTEuNyAxMS44aDQ4Ljl6bTIyNy40IDhjLTEwLjcgNDYuMyAyMS43IDcyLjQgNTUuMyA4Ni44QzMyNC4xIDQzMi42IDI1OS43IDM0OCAyOTYgMjg4Yy0zMy4yIDIxLjYtMzMuNyA3MS4yLTI5LjIgOTIuOS0xNy45LTEyLjQtNTMuOC0zMi40LTU3LjQtNzkuOC0zLTM5LjkgMjEuNS03NS43IDU3LTkzLjlDMjk3IDE5MS40IDM2OS45IDE5OC43IDQwMCAyNDhjLTE0LjEtNDgtNTMuOC03MC4xLTEwMS44LTc0LjggMzAuOS0zMC43IDY0LjQtNTAuMyAxMTQuMi00My43IDY5LjggOS4zIDEzMy4yIDgyLjggNjcuNyAxNTAuNSAzNS0xNi4zIDQ4LjctNTQuNCA0Ny41LTc2LjlsMTAuNSAxOS42YzExLjggMjIgMTUuMiA0Ny42IDkuNCA3Mi05LjIgMzktNDAuNiA2OC44LTc5LjcgNzYuNS0zMi4xIDYuMy04My4xLTUuMS05MS44LTU5LjJ6TTEyOCAyMDhIODguMmMtOC45IDAtMTYuMi03LjMtMTYuMi0xNi4ydi0zOS42YzAtOC45IDcuMy0xNi4yIDE2LjItMTYuMkgxMjhjOC45IDAgMTYuMiA3LjMgMTYuMiAxNi4ydjM5LjZjMCA4LjktNy4zIDE2LjItMTYuMiAxNi4yek0xMC4xIDE2OEM0LjUgMTY4IDAgMTYzLjUgMCAxNTcuOXYtMjcuOGMwLTUuNiA0LjUtMTAuMSAxMC4xLTEwLjFoMjcuN2M1LjUgMCAxMC4xIDQuNSAxMC4xIDEwLjF2MjcuOGMwIDUuNi00LjUgMTAuMS0xMC4xIDEwLjFIMTAuMXpNMTY4IDE0Mi43di0yMS40YzAtNS4xIDQuMi05LjMgOS4zLTkuM2gyMS40YzUuMSAwIDkuMyA0LjIgOS4zIDkuM3YyMS40YzAgNS4xLTQuMiA5LjMtOS4zIDkuM2gtMjEuNGMtNS4xIDAtOS4zLTQuMi05LjMtOS4zek01NiAyMzUuNXYyNWMwIDYuMy01LjEgMTEuNS0xMS40IDExLjVIMTkuNEMxMy4xIDI3MiA4IDI2Ni44IDggMjYwLjV2LTI1YzAtNi4zIDUuMS0xMS41IDExLjQtMTEuNWgyNS4xYzYuNCAwIDExLjUgNS4yIDExLjUgMTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ21wbGlkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNi4xMTksMzg4LjE2NWEzLjgxNiwzLjgxNiwwLDAsMC0yLjI5NC0zLjUsMy45NDYsMy45NDYsMCwwLDAtMS42MjktLjM4NUw3Mi42LDM4NC4zYTE5LjI0MywxOS4yNDMsMCwwLDEtMTcuOTI0LTI2LjAyNUw4MS41ODUsMjU1LjY5MmEzNS43MiwzNS43MiwwLDAsMSwzMi4zNzMtMjZIMjYyLjUyNWE3LjA3LDcuMDcsMCwwLDAsNi4zOTItNS4xOTRsMTAuNzY5LTQxLjEzMWEzLjg0OSwzLjg0OSwwLDAsMC0yLjIzNy00LjkzNywzLjc1NSwzLjc1NSwwLDAsMC0xLjM3Ny0uMjYxYy0uMDYzLDAtLjEyNiwwLS4xODkuMDA1SDEyNy4zOGExMDYuOCwxMDYuOCwwLDAsMC05Ni45OSw3Ny4xTDMuNDgzLDM1OC44MjRBNTcuNDY5LDU3LjQ2OSwwLDAsMCw1Ny4zMTQsNDM2cTEuNDMsMCwyLjg2LS4wNzJIMjA4Ljc0MmE3LjEzMSw3LjEzMSwwLDAsMCw2LjM5MS01LjE5M0wyMjUuODM5LDM4OS42QTMuODIsMy44MiwwLDAsMCwyMjYuMTE5LDM4OC4xNjVaTTMwNi42NTgsODEuMmEzLjg2MSwzLjg2MSwwLDAsMCwuMjUxLTEuMzY3QTMuODEzLDMuODEzLDAsMCwwLDMwMy4wNzksNzZjLS4wNjQsMC0uMTI4LDAtLjE5MiwwaC00MUE3LjAzNCw3LjAzNCwwLDAsMCwyNTUuNSw4MS4ybC0yMS4zNDcsODAuOTE1aDUxLjEzMVpNMTgwLjM2NCwzNjguMjQ5SDIzMS41TDI2My40NTIsMjQ1LjY5SDIxMi4zMjFaTTUxMS44NTMsNzkuNzIzYTMuODA5LDMuODA5LDAsMCwwLTMuOC0zLjY2MWMtLjA1OCwwLS4xMzcsMC0uMjMuMDA3aC00MWE3LjEsNy4xLDAsMCwwLTYuNTg0LDUuMTI5TDM2OC45MSw0MzAuNjM0YTMuNTQsMy41NCwwLDAsMC0uMjYyLDEuMzM1LDMuODczLDMuODczLDAsMCwwLDMuODY0LDMuODYzYy4wNTYsMCwuMTEyLDAsLjE2OSwwaDQxYTcuMDY4LDcuMDY4LDAsMCwwLDYuMzkyLTUuMTkzTDUxMS41MzMsODEuMkEzLjYyNCwzLjYyNCwwLDAsMCw1MTEuODUzLDc5LjcyM1pNMzI0LjY0OSwzODQuNDdoLTQxYTcuMiw3LjIsMCwwLDAtNi4zOTIsNS4xOTRMMjY2LjUyLDQzMC44YTMuNjYyLDMuNjYyLDAsMCwwLS4yNjgsMS4zNzRBMy43ODMsMy43ODMsMCwwLDAsMjcwLjAyMyw0MzZjLjA2LDAsLjE2NiwwLC4zLS4wMTJoNDAuOTA1YTcuMDM2LDcuMDM2LDAsMCwwLDYuMzkxLTUuMTkzbDEwLjc2OS00MS4xMzFhMy43NSwzLjc1LDAsMCwwLTMuNDQ1LTUuMjA4Yy0uMTA4LDAtLjIxNywwLS4zMjYuMDE0Wm0zMTEuMzI0LTMwOC40aC00MWE3LjA2Niw3LjA2NiwwLDAsMC02LjM5Miw1LjEyOWwtOTEuNDYsMzQ5LjQzNmE0LjA3Myw0LjA3MywwLDAsMC0uMjI5LDEuMzQ3LDMuODcyLDMuODcyLDAsMCwwLDMuODYzLDMuODUxYy4wNTYsMCwuMTEyLDAsLjE2OSwwaDQwLjk2OGE3LjEsNy4xLDAsMCwwLDYuMzkyLTUuMTkzTDYzOS42OCw4MS4yYTMuNjI0LDMuNjI0LDAsMCwwLC4zMi0xLjQ3NSwzLjg0MSwzLjg0MSwwLDAsMC0zLjgyMS0zLjU2NGMtLjA2OCwwLS4xMzcsMC0uMjA2LjAwNlpNMzcxLjU2MiwyMjUuMjM2bDEwLjgtNDEuMWE0LjM2OSw0LjM2OSwwLDAsMCwuMjI3LTEuMzg4LDMuODY5LDMuODY5LDAsMCwwLTMuODYxLTMuODQyYy0uMDU3LDAtLjExMywwLS4xNjksMGgtNDEuMWE3LjI5Miw3LjI5MiwwLDAsMC02LjM5MSw1LjIyNmwtMTAuODM0LDQxLjFhNC40MTcsNC40MTcsMCwwLDAtLjI2LDEuNDkzYzAsLjA2OSwwLC4xMzgsMCwuMjA2YTMuNzc2LDMuNzc2LDAsMCwwLDMuNzU3LDMuNTA3Yy4wNzYsMCwuMTgsMCwuMy0uMDEyaDQxLjEyOUE3LjAzNCw3LjAzNCwwLDAsMCwzNzEuNTYyLDIyNS4yMzZaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvZGVwZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAyLjI4NSAxNTkuNzA0bC0yMzQtMTU2Yy03Ljk4Ny00LjkxNS0xNi41MTEtNC45Ni0yNC41NzEgMGwtMjM0IDE1NkMzLjcxNCAxNjMuNzAzIDAgMTcwLjg0NyAwIDE3Ny45ODl2MTU1Ljk5OWMwIDcuMTQzIDMuNzE0IDE0LjI4NiA5LjcxNSAxOC4yODZsMjM0IDE1Ni4wMjJjNy45ODcgNC45MTUgMTYuNTExIDQuOTYgMjQuNTcxIDBsMjM0LTE1Ni4wMjJjNi0zLjk5OSA5LjcxNS0xMS4xNDMgOS43MTUtMTguMjg2VjE3Ny45ODljLS4wMDEtNy4xNDItMy43MTUtMTQuMjg2LTkuNzE2LTE4LjI4NXpNMjc4IDYzLjEzMWwxNzIuMjg2IDExNC44NTgtNzYuODU3IDUxLjQyOUwyNzggMTY1LjcwM1Y2My4xMzF6bS00NCAwdjEwMi41NzJsLTk1LjQyOSA2My43MTUtNzYuODU3LTUxLjQyOUwyMzQgNjMuMTMxek00NCAyMTkuMTMybDU1LjE0MyAzNi44NTdMNDQgMjkyLjg0NnYtNzMuNzE0em0xOTAgMjI5LjcxNUw2MS43MTQgMzMzLjk4OWw3Ni44NTctNTEuNDI5TDIzNCAzNDYuMjc1djEwMi41NzJ6bTIyLTE0MC44NThsLTc3LjcxNS01MiA3Ny43MTUtNTIgNzcuNzE1IDUyLTc3LjcxNSA1MnptMjIgMTQwLjg1OFYzNDYuMjc1bDk1LjQyOS02My43MTUgNzYuODU3IDUxLjQyOUwyNzggNDQ4Ljg0N3ptMTkwLTE1Ni4wMDFsLTU1LjE0My0zNi44NTdMNDY4IDIxOS4xMzJ2NzMuNzE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb2RpZXBpZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDcyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjIuNSAyMDIuOWMzMC43IDAgMzMuNSA1My4xLS4zIDUzLjFoLTEwLjh2NDQuM2gtMjYuNnYtOTcuNGgzNy43ek00NzIgMzUyLjZDNDI5LjkgNDQ0LjUgMzUwLjQgNTA0IDI0OCA1MDQgMTExIDUwNCAwIDM5MyAwIDI1NlMxMTEgOCAyNDggOGM5Ny40IDAgMTcyLjggNTMuNyAyMTguMiAxMzguNGwtMTg2IDEwOC44TDQ3MiAzNTIuNnptLTM4LjUgMTIuNWwtNjAuMy0zMC43Yy0yNy4xIDQ0LjMtNzAuNCA3MS40LTEyMi40IDcxLjQtODIuNSAwLTE0OS4yLTY2LjctMTQ5LjItMTQ4LjkgMC04Mi41IDY2LjctMTQ5LjIgMTQ5LjItMTQ5LjIgNDguNCAwIDg4LjkgMjMuNSAxMTYuOSA2My40bDU5LjUtMzQuNmMtNDAuNy02Mi42LTEwNC43LTEwMC0xNzkuMi0xMDAtMTIxLjIgMC0yMTkuNSA5OC4zLTIxOS41IDIxOS41UzEyNi44IDQ3NS41IDI0OCA0NzUuNWM3OC42IDAgMTQ2LjUtNDIuMSAxODUuNS0xMTAuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29uZmx1ZW5jZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjMgNDEyLjJjLTQuNSA3LjYtMi4xIDE3LjUgNS41IDIyLjJsMTA1LjkgNjUuMmM3LjcgNC43IDE3LjcgMi40IDIyLjQtNS4zIDAtLjEuMS0uMi4xLS4yIDY3LjEtMTEyLjIgODAuNS05NS45IDI4MC45LS43IDguMSAzLjkgMTcuOC40IDIxLjctNy43LjEtLjEuMS0uMy4yLS40bDUwLjQtMTE0LjFjMy42LTguMS0uMS0xNy42LTguMS0yMS4zLTIyLjItMTAuNC02Ni4yLTMxLjItMTA1LjktNTAuM0MxMjcuNSAxNzkgNDQuNiAzNDUuMyAyLjMgNDEyLjJ6bTUwNy40LTMxMi4xYzQuNS03LjYgMi4xLTE3LjUtNS41LTIyLjJMMzk4LjQgMTIuOGMtNy41LTUtMTcuNi0zLjEtMjIuNiA0LjQtLjIuMy0uNC42LS42IDEtNjcuMyAxMTIuNi04MS4xIDk1LjYtMjgwLjYuOS04LjEtMy45LTE3LjgtLjQtMjEuNyA3LjctLjEuMS0uMS4zLS4yLjRMMjIuMiAxNDEuM2MtMy42IDguMS4xIDE3LjYgOC4xIDIxLjMgMjIuMiAxMC40IDY2LjMgMzEuMiAxMDYgNTAuNCAyNDggMTIwIDMzMC44LTQ1LjQgMzczLjQtMTEyLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbm5lY3RkZXZlbG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU1MC41IDI0MWwtNTAuMDg5LTg2Ljc4NmMxLjA3MS0yLjE0MiAxLjg3NS00LjU1MyAxLjg3NS03LjIzMiAwLTguMDM2LTYuNjk2LTE0LjczMy0xNC43MzItMTUuMDAxbC01NS40NDctOTUuODkzYy41MzYtMS42MDcgMS4wNzEtMy4yMTQgMS4wNzEtNC44MjEgMC04LjU3MS02Ljk2NC0xNS4yNjgtMTUuMjY4LTE1LjI2OC00LjgyMSAwLTguODM5IDIuMTQzLTExLjc4NiA1LjYyNUgyOTkuNTE4QzI5Ni44MzkgMTguMTQzIDI5Mi44MjEgMTYgMjg4IDE2cy04LjgzOSAyLjE0My0xMS41MTggNS42MjVIMTcwLjQxMUMxNjcuNDY0IDE4LjE0MyAxNjMuNDQ3IDE2IDE1OC42MjUgMTZjLTguMzAzIDAtMTUuMjY4IDYuNjk2LTE1LjI2OCAxNS4yNjggMCAxLjYwNy41MzYgMy40ODIgMS4wNzIgNC44MjFsLTU1Ljk4MyA5Ny4yMzNjLTUuMzU2IDIuNDEtOS4xMDcgNy41LTkuMTA3IDEzLjY2MSAwIC41MzUuMjY4IDEuMDcxLjI2OCAxLjYwN2wtNTMuMzA0IDkyLjE0M2MtNy4yMzIgMS4zMzktMTIuNTkgNy41LTEyLjU5IDE1IDAgNy4yMzIgNS4wODkgMTMuMzkzIDEyLjA1NCAxNWw1NS4xNzkgOTUuMzU4Yy0uNTM2IDEuNjA3LS44MDQgMi45NDYtLjgwNCA0LjgyMSAwIDcuMjMyIDUuMDg5IDEzLjM5MyAxMi4wNTQgMTQuNzMybDUxLjY5NyA4OS43MzJjLS41MzYgMS42MDctMS4wNzEgMy40ODItMS4wNzEgNS4zNTcgMCA4LjU3MSA2Ljk2NCAxNS4yNjggMTUuMjY4IDE1LjI2OCA0LjgyMSAwIDguODM5LTIuMTQzIDExLjUxOC01LjM1N2gxMDYuODc1QzI3OS4xNjEgNDkzLjg1NyAyODMuNDQ3IDQ5NiAyODggNDk2czguODM5LTIuMTQzIDExLjUxOC01LjM1N2gxMDcuMTQzYzIuNjc4IDIuOTQ2IDYuNjk2IDQuODIxIDEwLjk4MiA0LjgyMSA4LjU3MSAwIDE1LjI2OC02Ljk2NCAxNS4yNjgtMTUuMjY4IDAtMS42MDctLjI2Ny0yLjk0Ni0uODAzLTQuMjg1bDUxLjY5Ny05MC4yNjhjNi45NjQtMS4zMzkgMTIuMDU0LTcuNSAxMi4wNTQtMTQuNzMyIDAtMS42MDctLjI2OC0zLjIxNC0uODA0LTQuODIxbDU0LjkxMS05NS4zNThjNi45NjQtMS4zMzkgMTIuMzIyLTcuNSAxMi4zMjItMTUtLjAwMi03LjIzMi01LjA5Mi0xMy4zOTMtMTEuNzg4LTE0LjczMnpNMTUzLjUzNSA0NTAuNzMybC00My42Ni03NS44MDNoNDMuNjZ2NzUuODAzem0wLTgzLjgzOWgtNDMuNjZjLS4yNjgtMS4wNzEtLjgwNC0yLjE0Mi0xLjMzOS0zLjIxNGw0NC45OTktNDcuNDF2NTAuNjI0em0wLTYyLjQxMWwtNTAuMzU3IDUzLjMwNGMtMS4zMzktLjUzNi0yLjY3OS0xLjM0LTQuMDE4LTEuNjA3TDQzLjQ0NyAyNTkuNzVjLjUzNS0xLjMzOS41MzUtMi42NzkuNTM1LTQuMDE4czAtMi40MS0uMjY4LTMuNDgybDUxLjk2NS05MGMyLjY3OS0uMjY4IDUuMzU3LTEuMDcyIDcuNzY4LTIuNjc5bDUwLjA4OSA1MS45NjV2OTIuOTQ2em0wLTEwMi4zMjJsLTQ1LjgwMy00Ny40MWMxLjMzOS0yLjE0MyAyLjE0My00LjgyMSAyLjE0My03Ljc2NyAwLS4yNjgtLjI2OC0uODA0LS4yNjgtMS4wNzJsNDMuOTI4LTE1LjgwNHY3Mi4wNTN6bTAtODAuNjI1bC00My42NiAxNS44MDQgNDMuNjYtNzUuNTM2djU5LjczMnptMzI2LjUxOSAzOS4xMDhsLjgwNCAxLjMzOUw0NDUuNSAzMjkuMTI1bC02My43NS02Ny4yMzIgOTguMDM2LTEwMS41MTguMjY4LjI2OHpNMjkxLjc1IDM1NS4xMDdsMTEuNTE4IDExLjc4NkgyODAuNWwxMS4yNS0xMS43ODZ6bS0uMjY4LTExLjI1bC04My4zMDMtODUuNDQ2IDc5LjU1My04NC4zNzUgODMuMDM2IDg3LjU4OS03OS4yODYgODIuMjMyem01LjM1NyA1Ljg5M2w3OS4yODYtODIuMjMyIDY3LjUgNzEuMjUtNS44OTIgMjguMTI1SDMxMy43MTRsLTE2Ljg3NS0xNy4xNDN6TTQxMC40MTEgNDQuMzkzYzEuMDcxLjUzNiAyLjE0MiAxLjA3MiAzLjQ4MiAxLjM0bDU3Ljg1NyAxMDAuNzE0di41MzZjMCAyLjk0Ni44MDMgNS42MjQgMi4xNDMgNy43NjdMMzc2LjM5MyAyNTZsLTgzLjAzNS04Ny41ODlMNDEwLjQxMSA0NC4zOTN6bS05LjEwNy0yLjE0M0wyODcuNzMyIDE2Mi41MThsLTU3LjA1NC02MC4yNjggMTY2LjMzOS02MGg0LjI4N3ptLTEyMy40ODMgMGMyLjY3OCAyLjY3OCA2LjE2IDQuMjg1IDEwLjE3OSA0LjI4NXM3LjUtMS42MDcgMTAuMTc5LTQuMjg1aDc1TDIyNC43ODYgOTUuODIxIDE3My44OTMgNDIuMjVoMTAzLjkyOHptLTExNi4yNDkgNS42MjVsMS4wNzEtMi4xNDJhMzMuODM0IDMzLjgzNCAwIDAgMCAyLjY3OS0uODA0bDUxLjE2MSA1My44NC01NC45MTEgMTkuODIxVjQ3Ljg3NXptMCA3OS4yODZsNjAuODAzLTIxLjk2NCA1OS43MzIgNjMuMjE0LTc5LjU1MyA4NC4xMDctNDAuOTgyLTQyLjA1M3YtODMuMzA0em0wIDkyLjY3OEwxOTggMjU3LjYwN2wtMzYuNDI4IDM4LjMwNHYtNzYuMDcyem0wIDg3Ljg1OGw0Mi4wNTMtNDQuNDY0IDgyLjc2OCA4NS45ODItMTcuMTQzIDE3LjY3OEgxNjEuNTcydi01OS4xOTZ6bTYuOTY0IDE2Mi4wNTNjLTEuNjA3LTEuNjA3LTMuNDgyLTIuNjc4LTUuODkzLTMuNDgybC0xLjA3MS0xLjYwN3YtODkuNzMyaDk5LjkxbC05MS42MDcgOTQuODIxaC0xLjMzOXptMTI5LjkxMSAwYy0yLjY3OS0yLjQxLTYuNDI4LTQuMjg1LTEwLjQ0Ny00LjI4NXMtNy43NjcgMS44NzUtMTAuNDQ3IDQuMjg1aC05Ni40MjlsOTEuNjA3LTk0LjgyMWgzOC4zMDRsOTEuNjA3IDk0LjgyMUgyOTguNDQ3em0xMjAtMTEuNzg2bC00LjI4NiA3LjVjLTEuMzM5LjI2OC0yLjQxLjgwMy0zLjQ4MiAxLjMzOWwtODkuMTk2LTkxLjg3NWgxMTQuMzc2bC0xNy40MTIgODMuMDM2em0xMi44NTYtMjIuMjMybDEyLjg1OC02MC44MDNoMjEuOTY0bC0zNC44MjIgNjAuODAzem0zNC44MjItNjguODM5aC0yMC4zNTdsNC41NTMtMjEuMTYgMTcuMTQzIDE4LjIxNGMtLjUzNS44MDMtMS4wNzEgMS44NzQtMS4zMzkgMi45NDZ6bTY2LjE2MS0xMDcuNDExbC01NS40NDcgOTYuNjk3Yy0xLjMzOS41MzUtMi42NzkgMS4wNzEtNC4wMTggMS44NzRsLTIwLjYyNS0yMS45NjQgMzQuNTU0LTE2My45MjggNDUuODAzIDc5LjI4NmMtLjI2NyAxLjMzOS0uODAzIDIuNjc4LS44MDMgNC4yODUgMCAxLjMzOS4yNjggMi40MTEuNTM2IDMuNzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbnRhbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NS40IDMwNWMxNC40IDY3LjEgMjYuNCAxMjkgNjguMiAxNzVIMzRjLTE4LjcgMC0zNC0xNS4yLTM0LTM0VjY2YzAtMTguNyAxNS4yLTM0IDM0LTM0aDU3LjdDNzcuOSA0NC42IDY1LjYgNTkuMiA1NC44IDc1LjZjLTQ1LjQgNzAtMjcgMTQ2LjgtOS40IDIyOS40ek00NzggMzJoLTkwLjJjMjEuNCAyMS40IDM5LjIgNDkuNSA1Mi43IDg0LjFsLTEzNy4xIDI5LjNjLTE0LjktMjktMzcuOC01My4zLTgyLjYtNDMuOS0yNC42IDUuMy00MSAxOS4zLTQ4LjMgMzQuNi04LjggMTguNy0xMy4yIDM5LjggOC4yIDE0MC4zIDIxLjEgMTAwLjIgMzMuNyAxMTcuNyA0OS41IDEzMS4yIDEyLjkgMTEuMSAzMy40IDE3IDU4LjMgMTEuNyA0NC41LTkuNCA1NS43LTQwLjcgNTcuNC03My4ybDEzNy40LTI5LjZjMy4yIDcxLjUtMTguNyAxMjUuMi01Ny40IDE2My42SDQ3OGMxOC43IDAgMzQtMTUuMiAzNC0zNFY2NmMwLTE4LjgtMTUuMi0zNC0zNC0zNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ290dG9uQnVyZWF1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3NC4zMSAzMzAuNDFjLTIzLjY2IDkxLjg1LTk0LjIzIDE0NC41OS0yMDEuOSAxNDguMzVWNDI5LjZjMC00OCAyNi40MS03NC4zOSA3NC4zOS03NC4zOSA2MiAwIDk5LjItMzcuMiA5OS4yLTk5LjIxIDAtNjEuMzctMzYuNTMtOTguMjgtOTcuMzgtOTkuMDYtMzMtNjkuMzItMTQ2LjUtNjQuNjUtMTc3LjI0IDBDMTEwLjUyIDE1Ny43MiA3NCAxOTQuNjMgNzQgMjU2YzAgNjIuMTMgMzcuMjcgOTkuNDEgOTkuNCA5OS40MSA0OCAwIDc0LjU1IDI2LjIzIDc0LjU1IDc0LjM5VjQ3OWMtMTM0LjQzLTUtMjExLjEtODUuMDctMjExLjEtMjIzIDAtMTQxLjgyIDgxLjM1LTIyMy4yIDIyMy4yLTIyMy4yIDExNC43NyAwIDE4OS44NCA1My4yIDIxNC42OSAxNDguODFINTAwQzQ3My44OCA3MS41MSAzODguMjIgOCAyNTkuODIgOCAxMDUgOCAxMiAxMDEuMTkgMTIgMjU1LjgyIDEyIDQxMS4xNCAxMDUuMTkgNTA0LjM0IDI1OS44MiA1MDRjMTI4LjI3IDAgMjEzLjg3LTYzLjgxIDIzOS42Ny0xNzMuNTl6TTM1NyAxODIuMzNjNDEuMzcgMy40NSA2NC4yIDI5IDY0LjIgNzMuNjcgMCA0OC0yNi40MyA3NC40MS03NC40IDc0LjQxLTI4LjYxIDAtNDkuMzMtOS41OS02MS41OS0yNy4zMyA4My4wNi0xNi41NSA3NS41OS05OS42NyA3MS43OS0xMjAuNzV6bS04MS42OCA5Ny4zNmMtMi40Ni0xMC4zNC0xNi4zMy04NyA1Ni4yMy05NyAyLjI3IDEwLjA5IDE2LjUyIDg3LjExLTU2LjI2IDk3ek0yNjAgMTMyYzI4LjYxIDAgNDkgOS42NyA2MS40NCAyNy42MS0yOC4zNiA1LjQ4LTQ5LjM2IDIwLjU5LTYxLjU5IDQzLjQ1LTEyLjIzLTIyLjg2LTMzLjIzLTM4LTYxLjYtNDMuNDUgMTIuNDEtMTcuNjkgMzMuMjctMjcuMzUgNjEuNTctMjcuMzV6bS03MS41MiA1MC43MmM3My4xNyAxMC41NyA1OC45MSA4Ni44MSA1Ni40OSA5Ny03Mi40MS05Ljg0LTU5LTg2Ljk1LTU2LjI1LTk3ek0xNzMuMiAzMzAuNDFjLTQ4IDAtNzQuNC0yNi40LTc0LjQtNzQuNDEgMC00NC4zNiAyMi44Ni03MCA2NC4yMi03My42Ny02Ljc1IDM3LjItMS4zOCAxMDYuNTMgNzEuNjUgMTIwLjc1LTEyLjE0IDE3LjYzLTMyLjg0IDI3LjMtNjEuMTQgMjcuM3ptNTMuMjEgMTIuMzlBODAuOCA4MC44IDAgMCAwIDI2MCAzMDkuMjVjNy43NyAxNC40OSAxOS4zMyAyNS41NCAzMy44MiAzMy41NWE4MC4yOCA4MC4yOCAwIDAgMC0zMy41OCAzMy44M2MtOC0xNC41LTE5LjA3LTI2LjIzLTMzLjU2LTMzLjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcGFuZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEwLjMgMjIwLjJjLTUuNi0yNC44LTI2LjktNDEuMi01MS00MS4yaC0zN2MtNy4xIDAtMTIuNSA0LjUtMTQuMyAxMC45TDczLjEgMzIwbDI0LjctLjFjNi44IDAgMTIuMy00LjUgMTQuMi0xMC43bDI1LjgtOTUuN2gxOS44YzguNCAwIDE2LjIgNS42IDE4LjMgMTQuOCAyLjUgMTAuOS01LjkgMjIuNi0xOC4zIDIyLjZoLTEwLjNjLTcgMC0xMi41IDQuNi0xNC4zIDEwLjhsLTYuNCAyMy44aDMyYzM3LjIgMCA1OC4zLTM2LjIgNTEuNy02NS4zem0tMTU2LjUgMjhoMTguNmM2LjkgMCAxMi40LTQuNCAxNC4zLTEwLjlsNi4yLTIzLjZoLTQwQzMwIDIxMy43IDkgMjI3LjggMS43IDI1NC44LTcgMjg4LjYgMTguNSAzMjAgNTIgMzIwaDEyLjRsNy4xLTI2LjFjMS4yLTQuNC0yLjItOC4zLTYuNC04LjNINTMuOGMtMjQuNyAwLTI0LjktMzcuNCAwLTM3LjR6bTI0Ny41LTM0LjhoLTc3LjlsLTMuNSAxMy40Yy0yLjQgOS42IDQuNSAxOC41IDE0LjIgMTguNWg1Ny41YzQgMCAyLjQgNC4zIDIuMSA1LjNsLTguNiAzMS44Yy0uNCAxLjQtLjkgNS4zLTUuNSA1LjNoLTM0LjljLTUuMyAwLTUuMy03LjkgMC03LjloMjEuNmM2LjggMCAxMi4zLTQuNiAxNC4yLTEwLjhsMy41LTEzLjJoLTQ4LjRjLTM5LjIgMC00My42IDYzLjgtLjcgNjMuOGw1Ny41LjJjMTEuMiAwIDIwLjYtNy4yIDIzLjQtMTcuOGwxNC01MS44YzQuOC0xOS4yLTkuNy0zNi44LTI4LjUtMzYuOHpNNjMzLjEgMTc5aC0xOC45Yy00LjkgMC05LjIgMy4yLTEwLjQgNy45TDU2OC4yIDMyMGMyMC43IDAgMzkuOC0xMy44IDQ0LjktMzQuNWwyNi41LTk4LjJjMS4yLTQuMy0yLTguMy02LjUtOC4zem0tMjM2LjMgMzQuN3YuMWgtNDguM2wtMjYuMiA5OGMtMS4yIDQuNCAyLjIgOC4zIDYuNCA4LjNoMTguOWM0LjggMCA5LjItMyAxMC40LTcuOGwxNy4yLTY0SDM5NWMxMi41IDAgMjEuNCAxMS44IDE4LjEgMjMuNGwtMTAuNiA0MGMtMS4yIDQuMyAxLjkgOC4zIDYuNCA4LjNINDI4YzQuNiAwIDkuMS0yLjkgMTAuMy03LjhsOC44LTMzLjFjOS0zMy4xLTE1LjktNjUuNC01MC4zLTY1LjR6bTk4LjMgNzQuNmMtMy42IDAtNi0zLjQtNS4xLTYuN2w4LTMwYy45LTMuOSAzLjctNiA3LjgtNmgzMi45YzIuNiAwIDQuNiAyLjQgMy45IDUuMWwtLjcgMi42Yy0uNiAyLTEuOSAzLTMuOSAzaC0yMS42Yy03IDAtMTIuNiA0LjYtMTQuMiAxMC44bC0zLjUgMTNoNTMuNGMxMC41IDAgMjAuMy02LjYgMjMuMi0xNy42bDMuMi0xMmM0LjktMTkuMS05LjMtMzYuOC0yOC4zLTM2LjhoLTQ3LjNjLTE3LjkgMC0zMy44IDEyLTM4LjYgMjkuNmwtMTAuOCA0MGMtNSAxNy43IDguMyAzNi43IDI4LjMgMzYuN2g2Ni43YzYuOCAwIDEyLjMtNC41IDE0LjItMTAuN2w1LjctMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc0J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxNC45IDE5NC40djEwMS40aC0yOC4zdjEyMC41aC03Ny4xVjI5NS45aC0yOC4zVjE5NC40YzAtNC40IDEuNi04LjIgNC42LTExLjMgMy4xLTMuMSA2LjktNC43IDExLjMtNC43SDI5OWM0LjEgMCA3LjggMS42IDExLjEgNC43IDMuMSAzLjIgNC44IDYuOSA0LjggMTEuM3ptLTEwMS41LTYzLjdjMC0yMy4zIDExLjUtMzUgMzQuNS0zNXMzNC41IDExLjcgMzQuNSAzNWMwIDIzLTExLjUgMzQuNS0zNC41IDM0LjVzLTM0LjUtMTEuNS0zNC41LTM0LjV6TTI0Ny42IDhDMzg5LjQgOCA0OTYgMTE4LjEgNDk2IDI1NmMwIDE0Ny4xLTExOC41IDI0OC0yNDguNCAyNDhDMTEzLjYgNTA0IDAgMzk0LjUgMCAyNTYgMCAxMjMuMSAxMDQuNyA4IDI0Ny42IDh6bS44IDQ0LjdDMTMwLjIgNTIuNyA0NC43IDE1MC42IDQ0LjcgMjU2YzAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjguMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcmVhdGl2ZUNvbW1vbnNOY0V1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny43IDhDMTAzLjYgOCAwIDEyNC44IDAgMjU2YzAgMTM2LjMgMTExLjcgMjQ4IDI0Ny43IDI0OEMzNzcuOSA1MDQgNDk2IDQwMy4xIDQ5NiAyNTYgNDk2IDExNyAzODguNCA4IDI0Ny43IDh6bS42IDQ1MC43Yy0xMTIgMC0yMDMuNi05Mi41LTIwMy42LTIwMi43IDAtMjMuMiAzLjctNDUuMiAxMC45LTY2bDY1LjcgMjkuMWgtNC43djI5LjVoMjMuM2MwIDYuMi0uNCAzLjItLjQgMTkuNWgtMjIuOHYyOS41aDI3YzExLjQgNjcgNjcuMiAxMDEuMyAxMjQuNiAxMDEuMyAyNi42IDAgNTAuNi03LjkgNjQuOC0xNS44bC0xMC00Ni4xYy04LjcgNC42LTI4LjIgMTAuOC00Ny4zIDEwLjgtMjguMiAwLTU4LjEtMTAuOS02Ny4zLTUwLjJoOTAuM2wxMjguMyA1Ni44Yy0xLjUgMi4xLTU2LjIgMTA0LjMtMTc4LjggMTA0LjN6bS0xNi43LTE5MC42bC0uNS0uNC45LjRoLS40em03Ny4yLTE5LjVoMy43di0yOS41aC03MC4zbC0yOC42LTEyLjZjMi41LTUuNSA1LjQtMTAuNSA4LjgtMTQuMyAxMi45LTE1LjggMzEuMS0yMi40IDUxLjEtMjIuNCAxOC4zIDAgMzUuMyA1LjQgNDYuMSAxMGwxMS42LTQ3LjNjLTE1LTYuNi0zNy0xMi40LTYyLjMtMTIuNC0zOSAwLTcyLjIgMTUuOC05NS45IDQyLjMtNS4zIDYuMS05LjggMTIuOS0xMy45IDIwLjFsLTgxLjYtMzYuMWM2NC42LTk2LjggMTU3LjctOTMuNiAxNzAuNy05My42IDExMyAwIDIwMyA5MC4yIDIwMyAyMDMuNCAwIDE4LjctMi4xIDM2LjMtNi4zIDUyLjlsLTEzNi4xLTYwLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc05jSnAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjcgOEMxMDMuNiA4IDAgMTI0LjggMCAyNTZjMCAxMzYuNCAxMTEuOCAyNDggMjQ3LjcgMjQ4QzM3Ny45IDUwNCA0OTYgNDAzLjIgNDk2IDI1NiA0OTYgMTE3LjIgMzg4LjUgOCAyNDcuNyA4em0uNiA0NTAuN2MtMTEyIDAtMjAzLjYtOTIuNS0yMDMuNi0yMDIuNyAwLTIxLjEgMy00MS4yIDktNjAuM2wxMjcgNTYuNWgtMjcuOXYzOC42aDU4LjFsNS43IDExLjh2MTguN2gtNjMuOFYzNjBoNjMuOHY1Nmg2MS43di01Nmg2NC4ydi0zNS43bDgxIDM2LjFjLTEuNSAyLjItNTcuMSA5OC4zLTE3NS4yIDk4LjN6bTg3LjYtMTM3LjNoLTU3LjZ2LTE4LjdsMi45LTUuNiA1NC43IDI0LjN6bTYuNS01MS40di0xNy44aC0zOC42bDYzLTExNkgzMDFsLTQzLjQgOTYtMjMtMTAuMi0zOS42LTg1LjdoLTY1LjhsMjcuMyA1MS04MS45LTM2LjVjMjcuOC00NC4xIDgyLjYtOTguMSAxNzMuNy05OC4xIDExMi44IDAgMjAzIDkwIDIwMyAyMDMuNCAwIDIxLTIuNyA0MC42LTcuOSA1OWwtMTAxLTQ1LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc05jIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny42IDhDMzg3LjQgOCA0OTYgMTE1LjkgNDk2IDI1NmMwIDE0Ny4yLTExOC41IDI0OC0yNDguNCAyNDhDMTEzLjEgNTA0IDAgMzkzLjIgMCAyNTYgMCAxMjMuMSAxMDQuNyA4IDI0Ny42IDh6TTU1LjggMTg5LjFjLTcuNCAyMC40LTExLjEgNDIuNy0xMS4xIDY2LjkgMCAxMTAuOSA5Mi4xIDIwMi40IDIwMy43IDIwMi40IDEyMi40IDAgMTc3LjItMTAxLjggMTc4LjUtMTA0LjFsLTkzLjQtNDEuNmMtNy43IDM3LjEtNDEuMiA1My02OC4yIDU1LjR2MzguMWgtMjguOFYzNjhjLTI3LjUtLjMtNTIuNi0xMC4yLTc1LjMtMjkuN2wzNC4xLTM0LjVjMzEuNyAyOS40IDg2LjQgMzEuOCA4Ni40LTIuMiAwLTYuMi0yLjItMTEuMi02LjYtMTUuMS0xNC4yLTYtMS44LS4xLTIxOS4zLTk3LjR6TTI0OC40IDUyLjNjLTM4LjQgMC0xMTIuNCA4LjctMTcwLjUgOTNsOTQuOCA0Mi41YzEwLTMxLjMgNDAuNC00Mi45IDYzLjgtNDQuM3YtMzguMWgyOC44djM4LjFjMjIuNyAxLjIgNDMuNCA4LjkgNjIgMjNMMjk1IDE5OS43Yy00Mi43LTI5LjktODMuNS04LTcwIDExLjEgNTMuNCAyNC4xIDQzLjggMTkuOCA5MyA0MS42bDEyNy4xIDU2LjdjNC4xLTE3LjQgNi4yLTM1LjEgNi4yLTUzLjEgMC01Ny0xOS44LTEwNS01OS4zLTE0My45LTM5LjMtMzkuOS04Ny4yLTU5LjgtMTQzLjYtNTkuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zTmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjYgOEMzODkuNCA4IDQ5NiAxMTguMSA0OTYgMjU2YzAgMTQ3LjEtMTE4LjUgMjQ4LTI0OC40IDI0OEMxMTMuNiA1MDQgMCAzOTQuNSAwIDI1NiAwIDEyMy4xIDEwNC43IDggMjQ3LjYgOHptLjggNDQuN0MxMzAuMiA1Mi43IDQ0LjcgMTUwLjYgNDQuNyAyNTZjMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTk0IDE0NC4zdjQyLjVIMTYyLjFWMTk3aDE4MC4zem0wIDc5Ljh2NDIuNUgxNjIuMXYtNDIuNWgxODAuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zUGRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjYgOEMxMDQuNyA4IDAgMTIzLjEgMCAyNTZjMCAxMzguNSAxMTMuNiAyNDggMjQ3LjYgMjQ4QzM3Ny41IDUwNCA0OTYgNDAzLjEgNDk2IDI1NiA0OTYgMTE4LjEgMzg5LjQgOCAyNDcuNiA4em0uOCA0NTAuOGMtMTEyLjUgMC0yMDMuNy05My0yMDMuNy0yMDIuOCAwLTEwNS40IDg1LjUtMjAzLjMgMjAzLjctMjAzLjMgMTEyLjYgMCAyMDIuOSA4OS41IDIwMi44IDIwMy4zIDAgMTIxLjctOTkuNiAyMDIuOC0yMDIuOCAyMDIuOHpNMzE2LjcgMTg2aC01My4ydjEzNy4yaDUzLjJjMjEuNCAwIDcwLTUuMSA3MC02OC42IDAtNjMuNC00OC42LTY4LjYtNzAtNjguNnptLjggMTA4LjVoLTE5Ljl2LTc5LjdsMTkuNC0uMWMzLjggMCAzNS0yLjEgMzUgMzkuOSAwIDI0LjYtMTAuNSAzOS45LTM0LjUgMzkuOXpNMjAzLjcgMTg2aC02OC4ydjEzNy4zaDM0LjZWMjc5aDI3YzU0LjEgMCA1Ny4xLTM3LjUgNTcuMS00Ni41IDAtMzEtMTYuOC00Ni41LTUwLjUtNDYuNXptLTQuOSA2Ny4zaC0yOS4ydi00MS42aDI4LjNjMzAuOSAwIDI4LjggNDEuNi45IDQxLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc1BkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5LjEgMCAyNTZjMCAxMzcgMTExIDI0OCAyNDggMjQ4czI0OC0xMTEgMjQ4LTI0OEM0OTYgMTE5LjEgMzg1IDggMjQ4IDh6bTAgNDQ5LjVjLTEzOS4yIDAtMjM1LjgtMTM4LTE5MC4yLTI2Ny45bDc4LjggMzUuMWMtMi4xIDEwLjUtMy4zIDIxLjUtMy4zIDMyLjkgMCA5OSA3My45IDEyNi45IDEyMC40IDEyNi45IDIyLjkgMCA1My41LTYuNyA3OS40LTI5LjVMMjk3IDMxMS4xYy01LjUgNi4zLTE3LjYgMTYuNy0zNi4zIDE2LjctMzcuOCAwLTUzLjctMzkuOS01My45LTcxLjkgMjMwLjQgMTAyLjYgMjE2LjUgOTYuNSAyMTcuOSA5Ni44LTM0LjMgNjIuNC0xMDAuNiAxMDQuOC0xNzYuNyAxMDQuOHptMTk0LjItMTUwbC0yMjQtMTAwYzE4LjgtMzQgNTQuOS0zMC43IDc0LjctMTFsNDAuNC00MS42Yy0yNy4xLTIzLjMtNTgtMjcuNS03OC4xLTI3LjUtNDcuNCAwLTgwLjkgMjAuNS0xMDAuNyA1MS42bC03NC45LTMzLjRjMzYuMS01NC45IDk4LjEtOTEuMiAxNjguNS05MS4yIDExMS4xIDAgMjAxLjUgOTAuNCAyMDEuNSAyMDEuNSAwIDE4LTIuNCAzNS40LTYuOCA1Mi0uMy0uMS0uNC0uMi0uNi0uNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zUmVtaXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjYgOEMzODkuNCA4IDQ5NiAxMTguMSA0OTYgMjU2YzAgMTQ3LjEtMTE4LjUgMjQ4LTI0OC40IDI0OEMxMTMuNiA1MDQgMCAzOTQuNSAwIDI1NiAwIDEyMy4xIDEwNC43IDggMjQ3LjYgOHptLjggNDQuN0MxMzAuMiA1Mi43IDQ0LjcgMTUwLjYgNDQuNyAyNTZjMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTE2MS43IDIwNy43bDQuOSAyLjJ2NzBjLTcuMiAzLjYtNjMuNCAyNy41LTY3LjMgMjguOC02LjUtMS44LTExMy43LTQ2LjgtMTM3LjMtNTYuMmwtNjQuMiAyNi42LTYzLjMtMjcuNXYtNjMuOGw1OS4zLTI0LjhjLS43LS43LS40IDUtLjQtNzAuNGw2Ny4zLTI5LjdMMzYxIDE3OC41djYxLjZsNDkuMSAyMC4zem0tNzAuNCA4MS41di00My44aC0uNHYtMS44bC0xMTMuOC00Ni41VjI5NWwxMTMuOCA0Ni45di0uNGwuNC40em03LjUtNTcuNmwzOS45LTE2LjQtMzYuOC0xNS41LTM5IDE2LjQgMzUuOSAxNS41em01Mi4zIDM4LjF2LTQzTDM1NS4yIDI5OHY0My40bDQ0LjMtMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc1NhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny42IDhDMzg5LjQgOCA0OTYgMTE4LjEgNDk2IDI1NmMwIDE0Ny4xLTExOC41IDI0OC0yNDguNCAyNDhDMTEzLjYgNTA0IDAgMzk0LjUgMCAyNTYgMCAxMjMuMSAxMDQuNyA4IDI0Ny42IDh6bS44IDQ0LjdDMTMwLjIgNTIuNyA0NC43IDE1MC42IDQ0LjcgMjU2YzAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjguMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zek0xMzcuNyAyMjFjMTMtODMuOSA4MC41LTk1LjcgMTA4LjktOTUuNyA5OS44IDAgMTI3LjUgODIuNSAxMjcuNSAxMzQuMiAwIDYzLjYtNDEgMTMyLjktMTI4LjkgMTMyLjktMzguOSAwLTk5LjEtMjAtMTA5LjQtOTdoNjIuNWMxLjUgMzAuMSAxOS42IDQ1LjIgNTQuNSA0NS4yIDIzLjMgMCA1OC0xOC4yIDU4LTgyLjggMC04Mi41LTQ5LjEtODAuNi01Ni43LTgwLjYtMzMuMSAwLTUxLjcgMTQuNi01NS44IDQzLjhoMTguMmwtNDkuMiA0OS4yLTQ5LTQ5LjJoMTkuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zU2FtcGxpbmdQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny42IDhDMzg5LjQgOCA0OTYgMTE4LjEgNDk2IDI1NmMwIDE0Ny4xLTExOC41IDI0OC0yNDguNCAyNDhDMTEzLjYgNTA0IDAgMzk0LjUgMCAyNTYgMCAxMjMuMSAxMDQuNyA4IDI0Ny42IDh6bS44IDQ0LjdDMTMwLjIgNTIuNyA0NC43IDE1MC42IDQ0LjcgMjU2YzAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjguMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0xMDcgMjA1LjZjLTQuNyAwLTkgMi44LTEwLjcgNy4ybC00IDkuNS0xMS05Mi44Yy0xLjctMTMuOS0yMi0xMy40LTIzLjEuNGwtNC4zIDUxLjQtNS4yLTY4LjhjLTEuMS0xNC4zLTIyLjEtMTQuMi0yMy4yIDBsLTMuNSA0NC45LTUuOS05NC4zYy0uOS0xNC41LTIyLjMtMTQuNC0yMy4yIDBsLTUuMSA4My43LTQuMy02Ni4zYy0uOS0xNC40LTIyLjItMTQuNC0yMy4yIDBsLTUuMyA4MC4yLTQuMS01N2MtMS4xLTE0LjMtMjItMTQuMy0yMy4yLS4ybC03LjcgODkuOC0xLjgtMTIuMmMtMS43LTExLjQtMTcuMS0xMy42LTIyLTMuM2wtMTMuMiAyNy43SDg3LjV2MjMuMmg1MS4zYzQuNCAwIDguNC0yLjUgMTAuNC02LjRsMTAuNyA3My4xYzIgMTMuNSAyMS45IDEzIDIzLjEtLjdsMy44LTQzLjYgNS43IDc4LjNjMS4xIDE0LjQgMjIuMyAxNC4yIDIzLjItLjFsNC42LTcwLjQgNC44IDczLjNjLjkgMTQuNCAyMi4zIDE0LjQgMjMuMi0uMWw0LjktODAuNSA0LjUgNzEuOGMuOSAxNC4zIDIyLjEgMTQuNSAyMy4yLjJsNC42LTU4LjYgNC45IDY0LjRjMS4xIDE0LjMgMjIgMTQuMiAyMy4xLjFsNi44LTgzIDIuNyAyMi4zYzEuNCAxMS44IDE3LjcgMTQuMSAyMi4zIDMuMWwxOC00My40aDUwLjVWMjU4bC01OC40LjN6bS03OCA1LjJoLTIxLjl2MjEuOWMwIDQuMS0zLjMgNy41LTcuNSA3LjUtNC4xIDAtNy41LTMuMy03LjUtNy41di0yMS45aC0yMS45Yy00LjEgMC03LjUtMy4zLTcuNS03LjUgMC00LjEgMy40LTcuNSA3LjUtNy41aDIxLjl2LTIxLjljMC00LjEgMy40LTcuNSA3LjUtNy41czcuNSAzLjMgNy41IDcuNXYyMS45aDIxLjljNC4xIDAgNy41IDMuMyA3LjUgNy41IDAgNC4xLTMuNCA3LjUtNy41IDcuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zU2FtcGxpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjYgOEMzODkuNCA4IDQ5NiAxMTguMSA0OTYgMjU2YzAgMTQ3LjEtMTE4LjUgMjQ4LTI0OC40IDI0OEMxMTMuNiA1MDQgMCAzOTQuNSAwIDI1NiAwIDEyMy4xIDEwNC43IDggMjQ3LjYgOHptLjggNDQuN0MxMzAuMiA1Mi43IDQ0LjcgMTUwLjYgNDQuNyAyNTZjMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTMuNiA1My4yYzIuOC0uMyAxMS41IDEgMTEuNSAxMS41bDYuNiAxMDcuMiA0LjktNTkuM2MwLTYgNC43LTEwLjYgMTAuNi0xMC42IDUuOSAwIDEwLjYgNC43IDEwLjYgMTAuNiAwIDIuNS0uNS01LjcgNS43IDgxLjVsNS44LTY0LjJjLjMtMi45IDIuOS05LjMgMTAuMi05LjMgMy44IDAgOS45IDIuMyAxMC42IDguOWwxMS41IDk2LjUgNS4zLTEyLjhjMS44LTQuNCA1LjItNi42IDEwLjItNi42aDU4djIxLjNoLTUwLjlsLTE4LjIgNDQuM2MtMy45IDkuOS0xOS41IDkuMS0yMC44LTMuMWwtNC0zMS45LTcuNSA5Mi42Yy0uMyAzLTMgOS4zLTEwLjIgOS4zLTMgMC05LjgtMi4xLTEwLjYtOS4zIDAtMS45LjYgNS44LTYuMi03Ny45bC01LjMgNzIuMmMtMS4xIDQuOC00LjggOS4zLTEwLjYgOS4zLTIuOSAwLTkuOC0yLTEwLjYtOS4zIDAtMS45LjUgNi43LTUuOC04Ny43bC01LjggOTQuOGMwIDYuMy0zLjYgMTIuNC0xMC42IDEyLjQtNS4yIDAtMTAuNi00LjEtMTAuNi0xMmwtNS44LTg3LjdjLTUuOCA5Mi41LTUuMyA4NC01LjMgODUuOS0xLjEgNC44LTQuOCA5LjMtMTAuNiA5LjMtMyAwLTkuOC0yLjEtMTAuNi05LjMgMC0uNy0uNC0xLjEtLjQtMi42bC02LjItODguNkwxODIgMzQ4Yy0uNyA2LjUtNi43IDkuMy0xMC42IDkuMy01LjggMC05LjYtNC4xLTEwLjYtOC45TDE0OS43IDI3MmMtMiA0LTMuNSA4LjQtMTEuMSA4LjRIODcuMnYtMjEuM0gxMzJsMTMuNy0yNy45YzQuNC05LjkgMTguMi03LjIgMTkuOSAyLjdsMy4xIDIwLjQgOC40LTk3LjljMC02IDQuOC0xMC42IDEwLjYtMTAuNi41IDAgMTAuNi0uMiAxMC42IDEyLjRsNC45IDY5LjEgNi42LTkyLjZjMC0xMC4xIDkuNS0xMC42IDEwLjItMTAuNi42IDAgMTAuNi43IDEwLjYgMTAuNmw1LjMgODAuNiA2LjItOTcuOWMuMS0xLjEtLjYtMTAuMyA5LjktMTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zU2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjYgOEMzODkuNCA4IDQ5NiAxMTguMSA0OTYgMjU2YzAgMTQ3LjEtMTE4LjUgMjQ4LTI0OC40IDI0OEMxMTMuNiA1MDQgMCAzOTQuNSAwIDI1NiAwIDEyMy4xIDEwNC43IDggMjQ3LjYgOHptLjggNDQuN0MxMzAuMiA1Mi43IDQ0LjcgMTUwLjYgNDQuNyAyNTZjMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTEwMSAxMzIuNGM3LjggMCAxMy43IDYuMSAxMy43IDEzLjd2MTgyLjVjMCA3LjctNi4xIDEzLjctMTMuNyAxMy43SDIxNC4zYy03LjcgMC0xMy43LTYtMTMuNy0xMy43di01NGgtNTRjLTcuOCAwLTEzLjctNi0xMy43LTEzLjdWMTMxLjFjMC04LjIgNi42LTEyLjcgMTIuNC0xMy43aDEzNi40YzcuNyAwIDEzLjcgNiAxMy43IDEzLjd2NTRoNTR6TTE1OS45IDMwMC4zaDQwLjdWMTk4LjljMC03LjQgNS44LTEyLjYgMTItMTMuN2g1NS44di00MC4zSDE1OS45djE1NS40em0xNzYuMi04OC4xSDIyNy42djE1NS40aDEwOC41VjIxMi4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcmVhdGl2ZUNvbW1vbnNaZXJvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny42IDhDMzg5LjQgOCA0OTYgMTE4LjEgNDk2IDI1NmMwIDE0Ny4xLTExOC41IDI0OC0yNDguNCAyNDhDMTEzLjYgNTA0IDAgMzk0LjUgMCAyNTYgMCAxMjMuMSAxMDQuNyA4IDI0Ny42IDh6bS44IDQ0LjdDMTMwLjIgNTIuNyA0NC43IDE1MC42IDQ0LjcgMjU2YzAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjguMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0tLjQgNjAuNWMtODEuOSAwLTEwMi41IDc3LjMtMTAyLjUgMTQyLjggMCA2NS41IDIwLjYgMTQyLjggMTAyLjUgMTQyLjhTMzUwLjUgMzIxLjUgMzUwLjUgMjU2YzAtNjUuNS0yMC42LTE0Mi44LTEwMi41LTE0Mi44em0wIDUzLjljMy4zIDAgNi40LjUgOS4yIDEuMiA1LjkgNS4xIDguOCAxMi4xIDMuMSAyMS45bC01NC41IDEwMC4yYy0xLjctMTIuNy0xLjktMjUuMS0xLjktMzQuNCAwLTI4LjggMi04OC45IDQ0LjEtODguOXptNDAuOCA0Ni4yYzIuOSAxNS40IDMuMyAzMS40IDMuMyA0Mi43IDAgMjguOS0yIDg4LjktNDQuMSA4OC45LTEzLjUgMC0zMi42LTcuNy0yMC4xLTI2LjRsNjAuOS0xMDUuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0NS44MyAyMTQuODdsLTMzLjIyIDE3LjI4Yy05LjQzLTE5LjU4LTI1LjI0LTE5LjkzLTI3LjQ2LTE5LjkzLTIyLjEzIDAtMzMuMjIgMTQuNjEtMzMuMjIgNDMuODQgMCAyMy41NyA5LjIxIDQzLjg0IDMzLjIyIDQzLjg0IDE0LjQ3IDAgMjQuNjUtNy4wOSAzMC41Ny0yMS4yNmwzMC41NSAxNS41Yy02LjE3IDExLjUxLTI1LjY5IDM4Ljk4LTY1LjEgMzguOTgtMjIuNiAwLTczLjk2LTEwLjMyLTczLjk2LTc3LjA1IDAtNTguNjkgNDMtNzcuMDYgNzIuNjMtNzcuMDYgMzAuNzItLjAxIDUyLjcgMTEuOTUgNjUuOTkgMzUuODZ6bTE0My4wNSAwbC0zMi43OCAxNy4yOGMtOS41LTE5Ljc3LTI1LjcyLTE5LjkzLTI3LjktMTkuOTMtMjIuMTQgMC0zMy4yMiAxNC42MS0zMy4yMiA0My44NCAwIDIzLjU1IDkuMjMgNDMuODQgMzMuMjIgNDMuODQgMTQuNDUgMCAyNC42NS03LjA5IDMwLjU0LTIxLjI2bDMxIDE1LjVjLTIuMSAzLjc1LTIxLjM5IDM4Ljk4LTY1LjA5IDM4Ljk4LTIyLjY5IDAtNzMuOTYtOS44Ny03My45Ni03Ny4wNSAwLTU4LjY3IDQyLjk3LTc3LjA2IDcyLjYzLTc3LjA2IDMwLjcxLS4wMSA1Mi41OCAxMS45NSA2NS41NiAzNS44NnpNMjQ3LjU2IDguMDVDMTA0Ljc0IDguMDUgMCAxMjMuMTEgMCAyNTYuMDVjMCAxMzguNDkgMTEzLjYgMjQ4IDI0Ny41NiAyNDggMTI5LjkzIDAgMjQ4LjQ0LTEwMC44NyAyNDguNDQtMjQ4IDAtMTM3Ljg3LTEwNi42Mi0yNDgtMjQ4LjQ0LTI0OHptLjg3IDQ1MC44MWMtMTEyLjU0IDAtMjAzLjctOTMuMDQtMjAzLjctMjAyLjgxIDAtMTA1LjQyIDg1LjQzLTIwMy4yNyAyMDMuNzItMjAzLjI3IDExMi41MyAwIDIwMi44MiA4OS40NiAyMDIuODIgMjAzLjI2LS4wMSAxMjEuNjktOTkuNjggMjAyLjgyLTIwMi44NCAyMDIuODJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyaXRpY2FsUm9sZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjUuODIgMGMuMjYuMTUgMjE2LjU3IDEyNC41MSAyMTcuMTIgMTI0LjcyIDMgMS4xOCAzLjcgMy40NiAzLjcgNi41NnEtLjExIDEyNS4xNyAwIDI1MC4zNmE1Ljg4IDUuODggMCAwIDEtMy4zOCA1Ljc4Yy0yMS4zNyAxMi0yMDcuODYgMTE4LjI5LTIxOC45MyAxMjQuNThoLTNDMTQyIDQ2Ni4zNCAzLjA4IDM4Ni41NiAyLjkzIDM4Ni40OGEzLjI5IDMuMjkgMCAwIDEtMS44OC0zLjI0YzAtLjg3IDAtMjI1Ljk0LS4wNS0yNTMuMWE1IDUgMCAwIDEgMi45My00LjkzQzI3LjE5IDExMi4xMSAyMTMuMiA2IDIyNC4wNyAwek0yMTUuNCAyMC40MmwtLjIyLS4xNlExMTguMDYgNzUuNTUgMjEgMTMwLjg3YzAgLjEyLjA4LjIzLjEzLjM1bDMwLjg2IDExLjY0Yy03LjcxIDYtOC4zMiA2LTEwLjY1IDUuMTMtLjEgMC0yNC4xNy05LjI4LTI2LjgtMTB2MjMwLjQzYy44OC0xLjQxIDY0LjA3LTExMC45MSA2NC4xMy0xMTEgMS42Mi0yLjgyIDMtMS45MiA5LjEyLTEuNTIgMS40LjA5IDEuNDguMjIuNzggMS40Mi00MS4xOSA3MS4zMy0zNi40IDYzLTY3LjQ4IDExNi45NC0uODEgMS40LS42MSAxLjEzIDEuMjUgMS4xM2gxODYuNWMxLjQ0IDAgMS42OS0uMjMgMS43LTEuNjR2LTguODhjMC0xLjM0IDIuMzYtLjgxLTE4LjM3LTEtNy40Ni0uMDctMTQuMTQtMy4yMi0yMS4zOC0xMi43LTcuMzgtOS42Ni0xNC42Mi0xOS40My0yMS44NS0yOS4yMS0yLjI4LTMuMDgtMy40NS0yLjM4LTE2Ljc2LTIuMzgtMS43NSAwLTEuNzggMC0xLjc2IDEuODIuMjkgMjYuMjEuMTUgMjUuMjcgMSAzMi42Ni41MiA0LjM3IDIuMTYgNC4yIDkuNjkgNC44MSAzLjE0LjI2IDMuODggNC4wOC41MiA0LjkyLTEuNTcuMzktMzEuNi41MS0zMy42Ny0uMWEyLjQyIDIuNDIgMCAwIDEgLjMtNC43M2MzLjI5LS43NiA2LjE2LjgxIDYuNjYtNC40NCAxLjMtMTMuNjYgMS4xNy05IDEuMS03OS40MiAwLTEwLjgyLS4zNS0xMi41OC01LjM2LTEzLjU1LTEuMjItLjI0LTMuNTQtLjE2LTQuNjktLjU1LTIuODgtMS0yLTQuODQgMS43Ny00Ljg1IDMzLjY3IDAgNDYuMDgtMS4wNyA1Ni4wNiA0Ljg2IDcuNzQgNC42MSAxMiAxMS40OCAxMi41MSAyMC40Ljg4IDE0LjU5LTYuNTEgMjIuMzUtMTUgMzIuNTlhMS40NiAxLjQ2IDAgMCAwIDAgMi4yMmMyLjYgMy4yNSA1IDYuNjMgNy43MSA5LjgzIDI3LjU2IDMzLjIzIDI0LjExIDMwLjU0IDQxLjI4IDMzLjA2Ljg5LjEzIDEtLjQyIDEtMS4xNXYtMTFjMC0xIC4zMi0xLjQzIDEuNDEtMS4yNmE3Mi4zNyA3Mi4zNyAwIDAgMCAyMy41OC0uM2MxLjA4LS4xNSAxLjUuMiAxLjQ4IDEuMzMgMCAuMTEuODggMjYuNjkuODcgMjYuOC0uMDUgMS41Mi42NyAxLjYyIDEuODkgMS42MmgxODYuNzFRMzg2LjUxIDMwNC42IDM0NiAyMzQuMzNjMi4yNi0uNjYtLjQgMCA2LjY5LTEuMzkgMi0uMzkgMi4wNS0uNDEgMy4xMSAxLjQ0IDcuMzEgMTIuNjQgNzcuMzEgMTM0IDc3LjM3IDEzNC4wNlYxMzhjLTEuNzIuNS0xMDMuMyAzOC43Mi0xMDUuNzYgMzkuNjgtMS4wOC40Mi0xLjU1LjItMS45MS0uODgtLjYzLTEuOS0xLjM0LTMuNzYtMi4wOS01LjYyLS4zMi0uNzktLjA5LTEuMTMuNjUtMS4zOS4xIDAgOTUuNTMtMzUuODUgMTAzLTM4Ljc3LTY1LjQyLTM3LjU3LTEzMC41Ni03NS0xOTYtMTEyLjZsODYuODIgMTUwLjM5LS4yOC4zM2MtOS41Ny0uOS0xMC40Ni0xLjYtMTEuOC0zLjk0LTEtMS42OS03My41LTEyNy43MS04Mi0xNDIuMTYtOS4xIDE0LjY3LTgzLjU2IDE0Ni4yMS04NS4zNyAxNDYuMzItMi45My4xNy01Ljg4LjA4LTkuMjUuMDhxNDMuMjUtNzQuNzQgODYuMTgtMTQ5em01MS45MyAxMjkuOTJhMzcuNjggMzcuNjggMCAwIDAgNS41NC0uODVjMS42OS0uMyAyLjUzLjIgMi42IDEuOTIgMCAuMTEuMDcgMTkuMDYtLjg2IDIwLjQ1cy0xLjg4IDEuMjItMi42LS4xOWMtNS05LjY5IDYuMjItOS42Ni0zOS4xMi0xMi0uNyAwLTEgLjIzLTEgLjkzIDAgLjEzIDMuNzIgMTIyIDMuNzMgMTIyLjExIDAgLjg5LjUyIDEuMiAxLjIxIDEuNTFhODMuOTIgODMuOTIgMCAwIDEgOC43IDQuMDVjNy4zMSA0LjMzIDExLjM4IDEwLjg0IDEyLjQxIDE5LjMxIDEuNDQgMTEuOC0yLjc3IDM1Ljc3LTMyLjIxIDM3LjE0LTIuNzUuMTMtMjguMjYgMS4wOC0zNC4xNC0yMy4yNS00LjY2LTE5LjI2IDguMjYtMzIuNyAxOS44OS0zNi40YTIuNDUgMi40NSAwIDAgMCAyLTIuNjZjLjEtNS42MyAzLTEwNy4xIDMuNzEtMTIxLjM1LjA1LTEuMDgtLjYyLTEuMTYtMS4zNS0xLjE1LTMyLjM1LjUyLTM2Ljc1LS4zNC00MC4yMiA4LjUyLTIuNDIgNi4xOC00LjE0IDEuMzItMy45NS4yM3ExLjU5LTkgMy4zMS0xOGMuNC0yLjExIDEuNDMtMi42MSAzLjQzLTEuODYgNS41OSAyLjExIDYuNzIgMS43IDM3LjI1IDEuOTIgMS43MyAwIDEuNzgtLjA4IDEuODItMS44NS42OC0yNy40OS41OC0yMi41OSAxLTI5LjU1YTIuNjkgMi42OSAwIDAgMC0xLjYzLTIuOGMtNS42LTIuOTEtOC43NS03LjU1LTguOS0xMy44Ny0uMzUtMTQuODEgMTcuNzItMjEuNjcgMjcuMzgtMTEuNTEgNi44NCA3LjE5IDUuOCAxOC45MS0yLjQ1IDI0LjE1YTQuMzUgNC4zNSAwIDAgMC0yLjIyIDQuMzRjMCAuNTktLjExLTQuMzEgMSAzMC4wNSAwIC45LjQzIDEuMTIgMS4yNCAxLjExLjEgMCAyMy0uMDkgMzQuNDctLjM3ek02OC4yNyAxNDEuN2MxOS44NC00LjUxIDMyLjY4LS41NiA1Mi40OSAxLjY5IDIuNzYuMzEgMy43NCAxLjIyIDMuNjIgNC0uMjEgNS0xLjE2IDIyLjMzLTEuMjQgMjMuMTVhMi42NSAyLjY1IDAgMCAxLTEuNjMgMi4zNGMtNC4wNiAxLjctMy42MS00LjQ1LTQtNy4yOS0zLjEzLTIyLjQzLTczLjg3LTMyLjctNzQuNjMgMjUuNC0uMzEgMjMuOTIgMTcgNTMuNjMgNTQuMDggNTAuODggMjcuMjQtMiAxOS0yMC4xOSAyNC44NC0yMC40N2EyLjcyIDIuNzIgMCAwIDEgMyAzLjM2Yy0xLjgzIDEwLjg1LTMuNDIgMTguOTUtMy40NSAxOS4xNS0xLjU0IDkuMTctODYuNyAyMi4wOS05My4zNS00Mi4wNi0yLjcxLTI1Ljg1IDEwLjQ0LTUzLjM3IDQwLjI3LTYwLjE1em04MCA4Ny42N2gtMTkuNDlhMi41NyAyLjU3IDAgMCAxLTIuNjYtMS43OWMyLjM4LTMuNzUgNS44OS45MiA1Ljg2LTYuMTQtLjA4LTI1Ljc1LjIxLTM4IC4yMy00MC4xIDAtMy40Mi0uNTMtNC42NS0zLjMyLTQuOTQtNy0uNzItMy4xMS0zLjM3LTEuMTEtMy4zOCAxMS44NC0uMSAyMi42Mi0uMTggMzAuMDUuNzIgOC43NyAxLjA3IDE2LjcxIDEyLjYzIDcuOTMgMjIuNjItMiAyLjI1LTQgNC40Mi02LjE0IDYuNzMuOTUgMS4xNSA2LjkgOC44MiAxNy4yOCAxOS42OCAyLjY2IDIuNzggNi4xNSAzLjUxIDkuODggMy4xM2EyLjIxIDIuMjEgMCAwIDAgMi4yMy0yLjEyYy4zLTMuNDIuMjYgNC43My40NS00MC41OCAwLTUuNjUtLjM0LTYuNTgtMy4yMy02LjgzLTMuOTUtLjM1LTQtMi4yNi0uNjktMy4zN2wxOS4wOS0uMDljLjMyIDAgNC40OS41MyAxIDMuMzggMCAuMDUtLjE2IDAtLjI0IDAtMy42MS4yNi0zLjk0IDEtNCA0LjYyLS4yNyA0My45My4wNyA0MC4yMy40MSA0Mi44Mi4xMS44NC4yNyAyLjIzIDUuMSAyLjE0IDIuNDkgMCAzLjg2IDMuMzcgMCAzLjQtMTAuMzcuMDgtMjAuNzQgMC0zMS4xMS4wNy0xMC42NyAwLTEzLjQ3LTYuMi0yNC4yMS0yMC44Mi0xLjYtMi4xOC04LjMxLTIuMzYtOC4yLS4zNy44OCAxNi40NyAwIDE3Ljc4IDQgMTcuNjcgNC43NS0uMSA0LjczIDMuNTcuODMgMy41NXptMjc1LTEwLjE1Yy0xLjIxIDcuMTMuMTcgMTAuMzgtNS4zIDEwLjM0LTYxLjU1LS40Mi00Ny44Mi0uMjItNTAuNzItLjMxYTE4LjQgMTguNCAwIDAgMS0zLjYzLS43M2MtMi41My0uNiAxLjQ4LTEuMjMtLjM4LTUuNi0xLjQzLTMuMzctMi43OC02Ljc4LTQuMTEtMTAuMTlhMS45NCAxLjk0IDAgMCAwLTItMS40NCAxMzggMTM4IDAgMCAwLTE0LjU4LjA3IDIuMjMgMi4yMyAwIDAgMC0xLjYyIDEuMDZjLTEuNTggMy42Mi0zLjA3IDcuMjktNC41MSAxMS0xLjI3IDMuMjMgNy44NiAxLjMyIDEyLjE5IDIuMTYgMyAuNTcgNC41MyAzLjcyLjY2IDMuNzNIMzIyLjljLTIuOTIgMC0zLjA5LTMuMTUtLjc0LTMuMjFhNi4zIDYuMyAwIDAgMCA1LjkyLTMuNDdjMS41LTMgMi44LTYgNC4xMS05LjA5IDE4LjE4LTQyLjE0IDE3LjA2LTQwLjE3IDE4LjQyLTQxLjYxYTEuODMgMS44MyAwIDAgMSAzIDBjMi45MyAzLjM0IDE4LjQgNDQuNzEgMjMuNjIgNTEuOTIgMiAyLjcgNS43NCAyIDYuMzYgMiAzLjYxLjEzIDQtMS4xMSA0LjEzLTQuMjkuMDktMS44Ny4wOCAxLjE3LjA3LTQxLjI0IDAtNC40Ni0yLjM2LTMuNzQtNS41NS00LjI3LS4yNiAwLTIuNTYtLjYzLS4wOC0zLjA2LjIxLS4yLS44OS0uMjQgMjEuNy0uMTUgMi4zMiAwIDUuMzIgMi43NS0xLjIxIDMuNDVhMi41NiAyLjU2IDAgMCAwLTIuNjYgMi44M2MtLjA3IDEuNjMtLjE5IDM4Ljg5LjI5IDQxLjIxYTMuMDYgMy4wNiAwIDAgMCAzLjIzIDIuNDNjMTMuMjUuNDMgMTQuOTIuNDQgMTYtMy40MSAxLjY3LTUuNzggNC4xMy0yLjUyIDMuNzMtLjE5em0tMTA0LjcyIDY0LjM3Yy00LjI0IDAtNC40Mi0zLjM5LS42MS0zLjQxIDM1LjkxLS4xNiAyOC4xMS4zOCAzNy4xOS0uNjUgMS42OC0uMTkgMi4zOC4yNCAyLjI1IDEuODktLjI2IDMuMzktLjY0IDYuNzgtMSAxMC4xNi0uMjUgMi4xNi0zLjIgMi42MS0zLjQtLjE1LS4zOC01LjMxLTIuMTUtNC40NS0xNS42My01LjA4LTEuNTgtLjA3LTEuNjQgMC0xLjY0IDEuNTJWMzA0YzAgMS42NSAwIDEuNiAxLjYyIDEuNDcgMy4xMi0uMjUgMTAuMzEuMzQgMTUuNjktMS41Mi40Ny0uMTYgMy4zLTEuNzkgMy4wNyAxLjc2IDAgLjIxLS43NiAxMC4zNS0xLjE4IDExLjM5LS41MyAxLjI5LTEuODggMS41MS0yLjU4LjMyLTEuMTctMiAwLTUuMDgtMy43MS01LjMtMTUuNDItLjktMTIuOTEtMi41NS0xMi45MSA2IDAgMTIuMjUtLjc2IDE2LjExIDMuODkgMTYuMjQgMTYuNjQuNDggMTQuNCAwIDE2LjQzLTUuNzEuODQtMi4zNyAzLjUtMS43NyAzLjE4LjU4LS40NCAzLjIxLS44NSA2LjQzLTEuMjMgOS42NCAwIC4zNi0uMTYgMi40LTQuNjYgMi4zOS0zNy4xNi0uMDgtMzQuNTQtLjE5LTM1LjIxLS4zMS0yLjcyLS41MS0yLjItMyAuMjItMy40NSAxLjEtLjE5IDQgLjU0IDQuMTYtMi41NiAyLjQ0LTU2LjIyLS4wNy01MS4zNC0zLjkxLTUxLjMzem0tLjQxLTEwOS41MmMyLjQ2LjYxIDMuMTMgMS43NiAyLjk1IDQuNjUtLjMzIDUuMy0uMzQgOS0uNTUgOS42OS0uNjYgMi4yMy0zLjE1IDIuMTItMy4zNC0uMjctLjM4LTQuODEtMy4wNS03LjgyLTcuNTctOS4xNS0yNi4yOC03LjczLTMyLjgxIDE1LjQ2LTI3LjE3IDMwLjIyIDUuODggMTUuNDEgMjIgMTUuOTIgMjguODYgMTMuNzggNS45Mi0xLjg1IDUuODgtNi41IDYuOTEtNy41OCAxLjIzLTEuMyAyLjI1LTEuODQgMy4xMiAxLjEgMCAuMS41NyAxMS44OS02IDEyLjc1LTEuNi4yMS0xOS4zOCAzLjY5LTMyLjY4LTMuMzktMjEtMTEuMTktMTYuNzQtMzUuNDctNi44OC00NS4zMyAxNC0xNC4wNiAzOS45MS03LjA2IDQyLjMyLTYuNDd6TTI4OS44IDI4MC4xNGMzLjI4IDAgMy42NiAzIC4xNiAzLjQzLTIuNjEuMzItNS0uNDItNSA1LjQ2IDAgMi0uMTkgMjkuMDUuNCA0MS40NS4xMSAyLjI5IDEuMTUgMy41MiAzLjQ0IDMuNjUgMjIgMS4yMSAxNC45NS0xLjY1IDE4Ljc5LTYuMzQgMS44My0yLjI0IDIuNzYuODQgMi43NiAxLjA4LjM1IDEzLjYyLTQgMTIuMzktNS4xOSAxMi40bC0zOC4xNi0uMTljLTEuOTMtLjIzLTIuMDYtMy0uNDItMy4zOCAyLS40OCA0Ljk0LjQgNS4xMy0yLjggMS0xNS44Ny41Ny00NC42NS4zNC00Ny44MS0uMjctMy43Ny0yLjgtMy4yNy01LjY4LTMuNzEtMi40Ny0uMzgtMi0zLjIyLjM0LTMuMjIgMS40NS0uMDIgMTcuOTctLjAzIDIzLjA5LS4wMnptLTMxLjYzLTU3Ljc5Yy4wNyA0LjA4IDIuODYgMy40NiA2IDMuNTggMi42MS4xIDIuNTMgMy40MS0uMDcgMy40My02LjQ4IDAtMTMuNyAwLTIxLjYxLS4wNi0zLjg0IDAtMy4zOC0zLjM1IDAtMy4zNyA0LjQ5IDAgMy4yNCAxLjYxIDMuNDEtNDUuNTQgMC01LjA4LTMuMjctMy41NC00LjcyLTQuMjMtMi41OC0xLjIzLTEuMzYtMy4wOS40MS0zLjE1IDEuMjkgMCAyMC4xOS0uNDEgMjEuMTcuMjFzMS44NyAxLjY1LS40MiAyLjg2Yy0xIC41Mi0zLjg2LS4yOC00LjE1IDIuNDcgMCAuMjEtLjgyIDEuNjMtLjA3IDQzLjh6bS0zNi45MSAyNzQuMjdhMi45MyAyLjkzIDAgMCAwIDMuMjYgMGMxNy05Ljc5IDE4Mi0xMDMuNTcgMTk3LjQyLTExMi41MS0uMTQtLjQzIDExLjI2LS4xOC0xODEuNTItLjI3LTEuMjIgMC0xLjU3LjM3LTEuNTMgMS41NiAwIC4xIDEuMjUgNDQuNTEgMS4yMiA1MC4zOGEyOC4zMyAyOC4zMyAwIDAgMS0xLjM2IDcuNzFjLS41NSAxLjgzLjM4LS41LTEzLjUgMzIuMjMtLjczIDEuNzItMSAyLjIxLTItLjA4LTQuMTktMTAuMzQtOC4yOC0yMC43Mi0xMi41Ny0zMWEyMy42IDIzLjYgMCAwIDEtMi0xMC43OWMuMTYtMi40Ni44LTE2LjEyIDEuNTEtNDggMC0xLjk1IDAtMi0yLTJoLTE4M2MyLjU4IDEuNjMgMTc4LjMyIDEwMi41NyAxOTYgMTEyLjc2em0tOTAuOS0xODguNzVjMCAyLjQuMzYgMi43OSAyLjc2IDMgMTEuNTQgMS4xNyAyMSAzLjc0IDI1LjY0LTcuMzIgNi0xNC40NiAyLjY2LTM0LjQxLTEyLjQ4LTM4Ljg0LTItLjU5LTE2LTIuNzYtMTUuOTQgMS41MS4wNSA4LjA0LjAxIDExLjYxLjAyIDQxLjY1em0xMDUuNzUtMTUuMDVjMCAyLjEzIDEuMDcgMzguNjggMS4wOSAzOS4xMy4zNCA5Ljk0LTI1LjU4IDUuNzctMjUuMjMtMi41OS4wOC0yIDEuMzctMzcuNDIgMS4xLTM5LjQzLTE0LjEgNy40NC0xNC40MiA0MC4yMSA2LjQ0IDQ4LjhhMTcuOSAxNy45IDAgMCAwIDIyLjM5LTcuMDdjNC45MS03Ljc2IDYuODQtMjkuNDctNS40My0zOWEyLjUzIDIuNTMgMCAwIDEtLjM2LjEyem0tMTIuMjgtMTk4Yy05LjgzIDAtOS43MyAxNC43NS0uMDcgMTQuODdzMTAuMS0xNC44OC4wNy0xNC45MXptLTgwLjE1IDEwMy44M2MwIDEuOC40MSAyLjQgMi4xNyAyLjU4IDEzLjYyIDEuMzkgMTIuNTEtMTEgMTIuMTYtMTMuMzYtMS42OS0xMS4yMi0xNC4zOC0xMC4yLTE0LjM1LTcuODEuMDUgNC41LS4wMyAxMy42OC4wMiAxOC41OXptMjEyLjMyIDYuNGwtNi4xLTE1Ljg0Yy0yLjE2IDUuNDgtNC4xNiAxMC41Ny02LjIzIDE1Ljg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDc3MzQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJsMzQuOSAzOTUuOEwxOTIgNDgwbDE1Ny4xLTUyLjJMMzg0IDMySDB6bTMxMy4xIDgwbC00LjggNDcuM0wxOTMgMjA4LjZsLS4zLjFoMTExLjVsLTEyLjggMTQ2LjYtOTguMiAyOC43LTk4LjgtMjkuMi02LjQtNzMuOWg0OC45bDMuMiAzOC4zIDUyLjYgMTMuMyA1NC43LTE1LjQgMy43LTYxLjYtMTY2LjMtLjV2LS4xbC0uMi4xLTMuNi00Ni4zTDE5My4xIDE2Mmw2LjUtMi43SDc2LjdMNzAuOSAxMTJoMjQyLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNzczMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDMybC02NCAzNjgtMjIzLjMgODBMMCA0MDBsMTkuNi05NC44aDgybC04IDQwLjZMMjEwIDM5MC4ybDEzNC4xLTQ0LjQgMTguOC05Ny4xSDI5LjVsMTYtODJoMzMzLjdsMTAuNS01Mi43SDU2LjNsMTYuMy04Mkg0ODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUN1dHRsZWZpc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ0IDMwNS41Yy0xNy41IDMxLjYtNTcuNCA1NC41LTk2IDU0LjUtNTYuNiAwLTEwNC00Ny40LTEwNC0xMDRzNDcuNC0xMDQgMTA0LTEwNGMzOC42IDAgNzguNSAyMi45IDk2IDU0LjUgMTMuNy01MC45IDQxLjctOTMuMyA4Ny0xMTcuOEMzODUuNyAzOS4xIDMyMC41IDggMjQ4IDggMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4YzcyLjUgMCAxMzcuNy0zMS4xIDE4My04MC43LTQ1LjMtMjQuNS03My4zLTY2LjktODctMTE3Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURBbmREQmV5b25kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMy44IDI0MS41YzEzLjggMCAyMS0xMC4xIDI0LjgtMTcuOS0xLTEuMS01LTQuMi03LjQtNi42LTIuNCA0LjMtOC4yIDEwLjctMTMuOSAxMC43LTEwLjIgMC0xNS40LTE0LjctMy4yLTI2LjYtLjUtLjItNC4zLTEuOC04IDIuNCAwLTMgMS01LjEgMi4xLTYuNi0zLjUgMS4zLTkuOCA1LjYtMTEuNCA3LjkuMi01LjggMS42LTcuNS42LTlsLS4yLS4ycy04LjUgNS42LTkuMyAxNC43YzAgMCAxLjEtMS42IDIuMS0xLjkuNi0uMyAxLjMgMCAuNiAxLjktLjIuNi01LjggMTUuNyA1LjEgMjYtLjYtMS42LTEuOS03LjYgMi40LTEuOS0uMy4xIDUuOCA3LjEgMTUuNyA3LjF6bTUyLjQtMjEuMWMwLTQtNC45LTQuNC01LjYtNC41IDIgMy45LjkgNy41LjIgOSAyLjUtLjQgNS40LTEuNiA1LjQtNC41em0xMC4zIDUuMmMwLTYuNC02LjItMTEuNC0xMy41LTEwLjcgOCAxLjMgNS42IDEzLjgtNSAxMS40IDMuNy0yLjYgMy4yLTkuOS0xLjMtMTIuNSAxLjQgNC4yLTMgOC4yLTcuNCA0LjYtMi40LTEuOS04LTYuNi0xMC42LTguNi0yLjQtMi4xLTUuNS0xLTYuNi0xLjgtMS4zLTEuMS0uNS0zLjgtMi4yLTUtMS42LS44LTMtLjMtNC44LTEtMS42LS42LTIuNy0xLjktMi42LTMuNS0yLjUgNC40IDMuNCA2LjMgNC41IDguNSAxIDEuOS0uOCA0LjggNCA4LjUgMTQuOCAxMS42IDkuMSA4IDEwLjQgMTguMS42IDQuMyA0LjIgNi43IDYuNCA3LjQtMi4xLTEuOS0yLjktNi40IDAtOS4zIDAgMTMuOSAxOS4yIDEzLjMgMjMuMSA2LjQtMi40IDEuMS03LS4yLTktMS45IDcuNyAxIDE0LjItNC4xIDE0LjYtMTAuNnptLTM5LjQtMTguNGMyIC44IDEuNi43IDYuNCA0LjUgMTAuMi0yNC41IDIxLjctMTUuNyAyMi0xNS41IDIuMi0xLjkgOS44LTMuOCAxMy44LTIuNy0yLjQtMi43LTcuNS02LjItMTMuMy02LjItNC43IDAtNy40IDIuMi04IDEuMy0uOC0xLjQgMy4yLTMuNCAzLjItMy40LTUuNC4yLTkuNiA2LjctMTEuMiA1LjktMS4xLS41IDEuNC0zLjcgMS40LTMuNy01LjEgMi45LTkuMyA5LjEtMTAuMiAxMyA0LjYtNS44IDEzLjgtOS44IDE5LjctOS0xMC41LjUtMTkuNSA5LjctMjMuOCAxNS44em0yNDIuNSA1MS45Yy0yMC43IDAtNDAgMS4zLTUwLjMgMi4xbDcuNCA4LjJ2NzcuMmwtNy40IDguMmMxMC40LjggMzAuOSAyLjEgNTEuNiAyLjEgNDIuMSAwIDU5LjEtMjAuNyA1OS4xLTQ4LjkgMC0yOS4zLTIzLjItNDguOS02MC40LTQ4Ljl6bS0xNS4xIDc1LjZ2LTUzLjNjMzAuMS0zLjMgNDYuOCAzLjggNDYuOCAyNi4zIDAgMjUuNi0yMS40IDMwLjItNDYuOCAyN3pNMzAxLjYgMTgxYy0xLTMuNC0uMi02LjkgMS4xLTkuNCAxIDMgMi42IDYuNCA3LjUgOS0uNS0yLjQtLjItNS42LjUtOC0xLjQtNS40IDIuMS05LjkgNi40LTkuOSA2LjkgMCA4LjUgOC44IDQuNyAxNC40IDIuMSAzLjIgNS41IDUuNiA3LjcgNy44IDMuMi0zLjcgNS41LTkuNSA1LjUtMTMuOCAwLTguMi01LjUtMTUuOS0xNi43LTE2LjUtMjAtLjktMjAuMiAxNi42LTIwIDE4LjkuNSA1LjIgMy40IDcuOCAzLjMgNy41em0tLjQgNmMtLjUgMS44LTcgMy43LTEwLjIgNi45IDQuOC0xIDctLjIgNy44IDEuOC41IDEuNC0uMiAzLjQtLjUgNS42IDEuNi0xLjggNy01LjUgMTEtNi4yLTEtLjMtMy40LS44LTQuMy0uOCAyLjktMy40IDkuMy00LjUgMTIuOC0zLjctMi4yLS4yLTYuNyAxLjEtOC41IDIuNiAxLjYuMyAzIC42IDQuMyAxLjEtMi4xLjgtNC44IDMuNC01LjggNi4xIDctNSAxMy4xIDUuMiA3IDguMi44LjIgMi43IDAgMy41LS41LS4zIDEuMS0xLjkgMy0zIDMuNCAyLjkgMCA3LTEuOSA4LjItNC42IDAgMC0xLjguNi0yLjYtLjJzLjMtNC4zLjMtNC4zYy0yLjMgMi45LTMuNC0xLjMtMS4zLTQuMi0xLS4zLTMuNS0uNi00LjYtLjUgMy4yLTEuMSAxMC40LTEuOCAxMS4yLS4zLjYgMS4xLTEgMy40LTEgMy40IDQtLjUgOC4zIDEuMSA2LjcgNS4xIDIuOS0xLjQgNS41LTUuOSA0LjgtMTAuNC0uMyAxLTEuNiAyLjQtMi45IDIuNy4yLTEuNC0xLTIuMi0xLjktMi42IDEuNy05LjYtMTQuNi0xNC4yLTE0LjEtMjMuOS0xIDEuMy0xLjggNS0uOCA3LjEgMi43IDMuMiA4LjcgNi43IDEwLjEgMTIuMi0yLjYtNi40LTE1LjEtMTEuNC0xNC42LTIwLjItMS42IDEuNi0yLjYgNy44LTEuMyAxMSAyLjQgMS40IDQuNSAzLjggNC44IDYuMS0yLjItNS4xLTExLjQtNi4xLTEzLjktMTIuMi0uNiAyLjItLjMgNSAxIDYuNyAwIDAtMi4yLS44LTctLjYgMS43LjYgNS4xIDMuNSA0LjggNS4yem0yNS45IDcuNGMtMi43IDAtMy41LTIuMS00LjItNC4zIDMuMyAxLjMgNC4yIDQuMyA0LjIgNC4zem0zOC45IDMuN2wtMS0uNmMtMS4xLTEtMi45LTEuNC00LjctMS40LTIuOSAwLTUuOCAxLjMtNy41IDMuNC0uOC44LTEuNCAxLjgtMi4xIDIuNnYxNS43YzMuNSAyLjYgNy4xLTIuOSAzLTcuMiAxLjUuMyA0LjYgMi43IDUuMSAzLjIgMCAwIDIuNi0uNSA1LS41IDIuMSAwIDMuOS4zIDUuNiAxLjFWMTk2Yy0xLjEuNS0yLjIgMS0yLjcgMS40ek03OS45IDMwNS45YzE3LjItNC42IDE2LjItMTggMTYuMi0xOS45IDAtMjAuNi0yNC4xLTI1LTM3LTI1SDNsOC4zIDguNnYyOS41SDBsMTEuNCAxNC42VjM0NkwzIDM1NC42YzYxLjcgMCA3My44IDEuNSA4Ni40LTUuOSA2LjctNCA5LjktOS44IDkuOS0xNy42IDAtNS4xIDIuNi0xOC44LTE5LjQtMjUuMnptLTQxLjMtMjcuNWMyMCAwIDI5LjYtLjggMjkuNiA5LjF2M2MwIDEyLjEtMTkgOC44LTI5LjYgOC44em0wIDU5LjJWMzE1YzEyLjIgMCAzMi43LTIuMyAzMi43IDguOHY0LjVoLjJjMCAxMS4yLTEyLjUgOS4zLTMyLjkgOS4zem0xMDEuMi0xOS4zbDIzLjEuMnYtLjJsMTQuMS0yMS4yaC0zNy4ydi0xNC45aDUyLjRsLTE0LjEtMjF2LS4ybC03My41LjIgNy40IDguMnY3Ny4xbC03LjQgOC4yaDgxLjJsMTQuMS0yMS4yLTYwLjEuMnptMjE0LjctNjAuMWMtNzMuOSAwLTc3LjUgOTkuMy0uMyA5OS4zIDc3LjkgMCA3NC4xLTk5LjMuMy05OS4zem0tLjMgNzcuNWMtMzcuNCAwLTM2LjktNTUuMy4yLTU1LjMgMzYuOC4xIDM4LjggNTUuMy0uMiA1NS4zem0tOTEuMy04LjNsNDQuMS02Ni4yaC00MS43bDYuMSA3LjItMjAuNSAzNy4yaC0uM2wtMjEtMzcuMiA2LjQtNy4yaC00NC45bDQ0LjEgNjUuOC4yIDE5LjQtNy43IDguMmg0Mi42bC03LjItOC4yem0tMjguNC0xNTEuM2MxLjYgMS4zIDIuOSAyLjQgMi45IDYuNnYzOC44YzAgNC4yLS44IDUuMy0yLjcgNi40LS4xLjEtNy41IDQuNS03LjkgNC42aDM1LjFjMTAgMCAxNy40LTEuNSAyNi04LjYtLjYtNSAuMi05LjUuOC0xMiAwLS4yLTEuOCAxLjQtMi43IDMuNSAwLTUuNyAxLjYtMTUuNCA5LjYtMjAuNS0uMSAwLTMuNy0uOC05IDEuMSAyLTMuMSAxMC03LjkgMTAuNC03LjktOC4yLTI2LTM4LTIyLjktMzIuMi0yMi45LTMwLjkgMC0zMi42LjMtMzkuOS00IC4xLjguNSA4LjIgOS42IDE0Ljl6bTIxLjUgNS41YzQuNiAwIDIzLjEtMy4zIDIzLjEgMTcuMyAwIDIwLjctMTguNCAxNy4zLTIzLjEgMTcuM3ptMjI4LjkgNzkuNmw3IDguM1YzMTJoLS4zYy01LjQtMTQuNC00Mi4zLTQxLjUtNDUuMi01MC45aC0zMS42bDcuNCA4LjV2NzYuOWwtNy4yIDguM2gzOWwtNy40LTguMnYtNDcuNGguM2MzLjcgMTAuNiA0NC41IDQyLjkgNDguNSA1NS42aDIxLjN2LTg1LjJsNy40LTguM3ptLTEwNi43LTk2LjFjLTMyLjIgMC0zMi44LjItMzkuOS00IC4xLjcuNSA4LjMgOS42IDE0LjkgMy4xIDIgMi45IDQuMyAyLjkgOS41IDEuOC0xLjEgMy44LTIuMiA2LjEtMy0xLjEgMS4xLTIuNyAyLjctMy41IDQuNSAxLTEuMSA3LjUtNS4xIDE0LjYtMy41LTEuNi4zLTQgMS4xLTYuMSAyLjkuMSAwIDIuMS0xLjEgNy41LS4zdi00LjNjNC43IDAgMjMuMS0zLjQgMjMuMSAxNy4zIDAgMjAuNS0xOC41IDE3LjMtMTkuNyAxNy4zIDUuNyA0LjQgNS44IDEyIDIuMiAxNi4zaC4zYzMzLjQgMCAzNi43LTI3LjMgMzYuNy0zNCAwLTMuOC0xLjEtMzItMzMuOC0zMy42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEQW5kRCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04Mi41IDk4LjljLS42LTE3LjIgMi0zMy44IDEyLjctNDguMi4zIDcuNCAxLjIgMTQuNSA0LjIgMjEuNiA1LjktMjcuNSAxOS43LTQ5LjMgNDIuMy02NS41LTEuOSA1LjktMy41IDExLjgtMyAxNy43IDguNy03LjQgMTguOC0xNy44IDQ0LjQtMjIuNyAxNC43LTIuOCAyOS43LTIgNDIuMSAxIDM4LjUgOS4zIDYxIDM0LjMgNjkuNyA3Mi4zIDUuMyAyMy4xLjcgNDUtOC4zIDY2LjQtNS4yIDEyLjQtMTIgMjQuNC0yMC43IDM1LjEtMi0xLjktMy45LTMuOC01LjgtNS42LTQyLjgtNDAuOC0yNi44LTI1LjItMzcuNC0zNy40LTEuMS0xLjItMS0yLjItLjEtMy42IDguMy0xMy41IDExLjgtMjguMiAxMC00NC0xLjEtOS44LTQuMy0xOC45LTExLjMtMjYuMi0xNC41LTE1LjMtMzkuMi0xNS01My41LjYtMTEuNCAxMi41LTE0LjEgMjcuNC0xMC45IDQzLjYuMiAxLjMuNCAyLjcgMCAzLjktMy40IDEzLjctNC42IDI3LjYtMi41IDQxLjYuMS41LjEgMS4xLjEgMS42IDAgLjMtLjEuNS0uMiAxLjEtMjEuOC0xMS0zNi0yOC4zLTQzLjItNTIuMi04LjMgMTcuOC0xMS4xIDM1LjUtNi42IDU0LjEtMTUuNi0xNS4yLTIxLjMtMzQuMy0yMi01NS4yem00NjkuNiAxMjMuMmMtMTEuNi0xMS42LTI1LTIwLjQtNDAuMS0yNi42LTEyLjgtNS4yLTI2LTcuOS0zOS45LTcuMS0xMCAuNi0xOS42IDMuMS0yOSA2LjQtMi41LjktNS4xIDEuNi03LjcgMi4yLTQuOSAxLjItNy4zLTMuMS00LjctNi44IDMuMi00LjYgMy40LTQuMiAxNS0xMiAuNi0uNCAxLjItLjggMi4yLTEuNWgtMi41Yy0uNiAwLTEuMi4yLTEuOS4zLTE5LjMgMy4zLTMwLjcgMTUuNS00OC45IDI5LjYtMTAuNCA4LjEtMTMuOCAzLjgtMTItLjUgMS40LTMuNSAzLjMtNi43IDUuMS0xMCAxLTEuOCAyLjMtMy40IDMuNS01LjEtLjItLjItLjUtLjMtLjctLjUtMjcgMTguMy00Ni43IDQyLjQtNTcuNyA3My4zLjMuMy43LjYgMSAuOS4zLS42LjUtMS4yLjktMS43IDEwLjQtMTIuMSAyMi44LTIxLjggMzYuNi0yOS44IDE4LjItMTAuNiAzNy41LTE4LjMgNTguNy0yMC4yIDQuMy0uNCA4LjctLjEgMTMuMS0uMS0xLjguNy0zLjUuOS01LjMgMS4xLTE4LjUgMi40LTM1LjUgOS01MS41IDE4LjUtMzAuMiAxNy45LTU0LjUgNDIuMi03NS4xIDcwLjQtLjMuNC0uNC45LS43IDEuMyAxNC41IDUuMyAyNCAxNy4zIDM2LjEgMjUuNi4yLS4xLjMtLjIuNC0uNGwxLjItMi43YzEyLjItMjYuOSAyNy01Mi4zIDQ2LjctNzQuNSAxNi43LTE4LjggMzgtMjUuMyA2Mi41LTIwIDUuOSAxLjMgMTEuNCA0LjQgMTcuMiA2LjggMi4zLTEuNCA1LjEtMy4yIDgtNC43IDguNC00LjMgMTcuNC03IDI2LjctOSAxNC43LTMuMSAyOS41LTQuOSA0NC41LTEuM3YtLjVjLS41LS40LTEuMi0uOC0xLjctMS40ek0zMTYuNyAzOTcuNmMtMzkuNC0zMy0yMi44LTE5LjUtNDIuNy0zNS42LS44LjkgMC0uMi0xLjkgMy0xMS4yIDE5LjEtMjUuNSAzNS4zLTQ0IDQ3LjYtMTAuMyA2LjgtMjEuNSAxMS44LTM0LjEgMTEuOC0yMS42IDAtMzguMi05LjUtNDkuNC0yNy44LTEyLTE5LjUtMTMuMy00MC43LTguMi02Mi42IDcuOC0zMy44IDMwLjEtNTUuMiAzOC42LTY0LjMtMTguNy02LjItMzMgMS43LTQ2LjQgMTMuOS44LTEzLjkgNC4zLTI2LjIgMTEuOC0zNy4zLTI0LjMgMTAuNi00NS45IDI1LTY0LjggNDMuOS0uMy01LjggNS40LTQzLjcgNS42LTQ0LjcuMy0yLjctLjYtNS4zLTMtNy40LTI0LjIgMjQuNy00NC41IDUxLjgtNTYuMSA4NC42IDcuNC01LjkgMTQuOS0xMS40IDIzLjYtMTYuMi04LjMgMjIuMy0xOS42IDUyLjgtNy44IDEwMS4xIDQuNiAxOSAxMS45IDM2LjggMjQuMSA1Mi4zIDIuOSAzLjcgNi4zIDYuOSA5LjUgMTAuMy4yLS4yLjQtLjMuNi0uNS0xLjQtNy0yLjItMTQuMS0xLjUtMjEuOSAyLjIgMy4yIDMuOSA2IDUuOSA4LjYgMTIuNiAxNiAyOC43IDI3LjQgNDcuMiAzNS42IDI1IDExLjMgNTEuMSAxMy4zIDc3LjkgOC42IDU0LjktOS43IDkwLjctNDguNiAxMTYtOTguOCAxLTEuOC42LTIuOS0uOS00LjJ6bTE3Mi00Ni40Yy05LjUtMy4xLTIyLjItNC4yLTI4LjctMi45IDkuOSA0IDE0LjEgNi42IDE4LjggMTIgMTIuNiAxNC40IDEwLjQgMzQuNy01LjQgNDUuNi0xMS43IDguMS0yNC45IDEwLjUtMzguOSA5LjEtMS4yLS4xLTIuMy0uNC0zLS42IDIuOC0zLjcgNi03IDguMS0xMC44IDkuNC0xNi44IDUuNC00Mi4xLTguNy01Ni4xLTIuMS0yLjEtNC42LTMuOS03LTUuOS0uMyAxLjMtLjEgMi4xLjEgMi44IDQuMiAxNi42LTguMSAzMi40LTI0LjggMzEuOC03LjYtLjMtMTMuOS0zLjgtMTkuNi04LjUtMTkuNS0xNi4xLTM5LjEtMzIuMS01OC41LTQ4LjMtNS45LTQuOS0xMi41LTguMS0yMC4xLTguNy00LjYtLjQtOS4zLS42LTEzLjktLjktNS45LS40LTguOC0yLjgtMTAuNC04LjQtLjktMy40LTEuNS02LjgtMi4yLTEwLjItMS41LTguMS02LjItMTMtMTQuMy0xNC4yLTQuNC0uNy04LjktMS0xMy4zLTEuNS0xMy0xLjQtMTkuOC03LjQtMjIuNi0yMC4zLTUgMTEtMS42IDIyLjQgNy4zIDI5LjkgNC41IDMuOCA5LjMgNy4zIDEzLjggMTEuMiA0LjYgMy44IDcuNCA4LjcgNy45IDE0LjguNCA0LjcuOCA5LjUgMS44IDE0LjEgMi4yIDEwLjYgOC45IDE4LjQgMTcgMjUuMSAxNi41IDEzLjcgMzMgMjcuMyA0OS41IDQxLjEgMTcuOSAxNSAxMy45IDMyLjggMTMgNTYtLjkgMjIuOSAxMi4yIDQyLjkgMzMuNSA1MS4yIDEgLjQgMiAuNiAzLjYgMS4xLTE1LjctMTguMi0xMC4xLTQ0LjEuNy01Mi4zLjMgMi4yLjQgNC4zLjkgNi40IDkuNCA0NC4xIDQ1LjQgNjQuMiA4NSA1Ni45IDE2LTIuOSAzMC42LTguOSA0Mi45LTE5LjggMi0xLjggMy43LTQuMSA1LjktNi41LTE5LjMgNC42LTM1LjguMS01MC45LTEwLjYuNy0uMyAxLjMtLjMgMS45LS4zIDIxLjMgMS44IDQwLjYtMy40IDU3LTE3LjQgMTkuNS0xNi42IDI2LjYtNDIuOSAxNy40LTY2LTguMy0yMC4xLTIzLjYtMzIuMy00My44LTM4Ljl6TTk5LjQgMTc5LjNjLTUuMy05LjItMTMuMi0xNS42LTIyLjEtMjEuMyAxMy43LS41IDI2LjYuMiAzOS42IDMuNy03LTEyLjItOC41LTI0LjctNS0zOC43IDUuMyAxMS45IDEzLjcgMjAuMSAyMy42IDI2LjggMTkuNyAxMy4yIDM1LjcgMTkuNiA0Ni43IDMwLjIgMy40IDMuMyA2LjMgNy4xIDkuNiAxMC45LS44LTIuMS0xLjQtNC4xLTIuMi02LTUtMTAuNi0xMy0xOC42LTIyLjYtMjUtMS44LTEuMi0yLjgtMi41LTMuNC00LjUtMy4zLTEyLjUtMy0yNS4xLS43LTM3LjYgMS01LjUgMi44LTEwLjkgNC41LTE2LjMuOC0yLjQgMi4zLTQuNiA0LTYuNi42IDYuOSAwIDI1LjUgMTkuNiA0NiAxMC44IDExLjMgMjIuNCAyMS45IDMzLjkgMzIuNyA5IDguNSAxOC4zIDE2LjcgMjUuNSAyNi44IDEuMSAxLjYgMi4yIDMuMyAzLjggNC43LTUtMTMtMTQuMi0yNC4xLTI0LjItMzMuOC05LjYtOS4zLTE5LjQtMTguNC0yOS4yLTI3LjQtMy4zLTMtNC42LTYuNy01LjEtMTAuOS0xLjItMTAuNCAwLTIwLjYgNC4zLTMwLjIuNS0xIDEuMS0yIDEuOS0zLjMuNSA0LjIuNiA3LjkgMS40IDExLjYgNC44IDIzLjEgMjAuNCAzNi4zIDQ5LjMgNjMuNSAxMCA5LjQgMTkuMyAxOS4yIDI1LjYgMzEuNiA0LjggOS4zIDcuMyAxOSA1LjcgMjkuNi0uMS42LjUgMS43IDEuMSAyIDYuMiAyLjYgMTAgNi45IDkuNyAxNC4zIDcuNy0yLjYgMTIuNS04IDE2LjQtMTQuNSA0LjIgMjAuMi05LjEgNTAuMy0yNy4yIDU4LjcuNC00LjUgNS0yMy40LTE2LjUtMjcuNy02LjgtMS4zLTEyLjgtMS4zLTIyLjktMi4xIDQuNy05IDEwLjQtMjAuNi41LTIyLjQtMjQuOS00LjYtNTIuOCAxLjktNTcuOCA0LjYgOC4yLjQgMTYuMyAxIDIzLjUgMy4zLTIgNi41LTQgMTIuNy01LjggMTguOS0xLjkgNi41IDIuMSAxNC42IDkuMyA5LjYgMS4yLS45IDIuMy0xLjkgMy4zLTIuNy0zLjEgMTcuOS0yLjkgMTUuOS0yLjggMTguMy4zIDEwLjIgOS41IDcuOCAxNS43IDcuMy0yLjUgMTEuOC0yOS41IDI3LjMtNDUuNCAyNS44IDctNC43IDEyLjctMTAuMyAxNS45LTE3LjktNi41LjgtMTIuOSAxLjYtMTkuMiAyLjRsLS4zLS45YzQuNy0zLjQgOC03LjggMTAuMi0xMy4xIDguNy0yMS4xLTMuNi0zOC0yNS0zOS45LTkuMS0uOC0xNy44LjgtMjUuOSA1LjUgNi4yLTE1LjYgMTcuMi0yNi42IDMyLjYtMzQuNS0xNS4yLTQuMy04LjktMi43LTI0LjYtNi4zIDE0LjYtOS4zIDMwLjItMTMuMiA0Ni41LTE0LjYtNS4yLTMuMi00OC4xLTMuNi03MC4yIDIwLjkgNy45IDEuNCAxNS41IDIuOCAyMy4yIDQuMi0yMy44IDctNDQgMTkuNy02Mi40IDM1LjYgMS4xLTQuOCAyLjctOS41IDMuMy0xNC4zLjYtNC41LjgtOS4yLjEtMTMuNi0xLjUtOS40LTguOS0xNS4xLTE5LjctMTYuMy03LjktLjktMTUuNi4xLTIzLjMgMS4zLS45LjEtMS43LjMtMi45IDAgMTUuOC0xNC44IDM2LTIxLjcgNTMuMS0zMy41IDYtNC41IDYuOC04LjIgMy0xNC45em0xMjguNCAyNi44YzMuMyAxNiAxMi42IDI1LjUgMjMuOCAyNC4zLTQuNi0xMS4zLTEyLjEtMTkuNS0yMy44LTI0LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURhaWx5bW90aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5OC45MywyNjdhNDguNCw0OC40LDAsMCwwLTI0LjM2LTYuMjFxLTE5LjgzLDAtMzMuNDQsMTMuMjd0LTEzLjYxLDMzLjQycTAsMjEuMTYsMTMuMjgsMzQuNnQzMy40MywxMy40NHEyMC41LDAsMzQuMTEtMTMuNzhUMzIyLDMwNy40N0E0Ny4xMyw0Ny4xMywwLDAsMCwzMTUuOSwyODQsNDQuMTMsNDQuMTMsMCwwLDAsMjk4LjkzLDI2N1pNMCwzMlY0ODBINDQ4VjMyWk0zNzQuNzEsNDA1LjI2aC01My4xVjM4MS4zN2gtLjY3cS0xNS43OSwyNi4yLTU1Ljc4LDI2LjItMjcuNTYsMC00OC44OS0xMy4xYTg4LjI5LDg4LjI5LDAsMCwxLTMyLjk0LTM1Ljc3cS0xMS42LTIyLjY4LTExLjU5LTUwLjg5LDAtMjcuNTYsMTEuNzYtNTAuMjJhODkuOSw4OS45LDAsMCwxLDMyLjkzLTM1Ljc4cTIxLjE4LTEzLjA5LDQ3LjcyLTEzLjFhODAuODcsODAuODcsMCwwLDEsMjkuNzQsNS4yMXExMy4yOCw1LjIxLDI1LDE3VjE1M2w1NS43OS0xMi4wOVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGFzaGN1YmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzI2LjYgMTA0SDExMC40Yy01MS4xIDAtOTEuMiA0My4zLTkxLjIgOTMuNVY0MjdjMCA1MC41IDQwLjEgODUgOTEuMiA4NWgyMjcuMmM1MS4xIDAgOTEuMi0zNC41IDkxLjItODVWMEwzMjYuNiAxMDR6TTE1My45IDQxNi41Yy0xNy43IDAtMzIuNC0xNS4xLTMyLjQtMzIuOFYyNDAuOGMwLTE3LjcgMTQuNy0zMi41IDMyLjQtMzIuNWgxNDAuN2MxNy43IDAgMzIgMTQuOCAzMiAzMi41djEyMy41bDUxLjEgNTIuM0gxNTMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGViaWFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4MC4yIDI0NS42YzMtNy42IDUuNS0xNCA1LjItMjQuNGwtNC4zIDljNC40LTEzLjIgNC0yNy4xIDMuNi00MC40Yy0uMi02LS4zLTExLjggMC0xNy40bC0xLjgtLjVjLTEuNS00NS4yLTQwLjYtOTMuMS03NS4zLTEwOS40Yy0zMC0xMy44LTc2LjEtMTYuMi05Ny4zLTUuOGMxLjMtMS4xIDQuMi0yIDYuOC0yLjdsLjMtLjFjMy4zLTEgNi0xLjcgNC0yLjljLTE5LjIgMS45LTI0LjkgNS41LTMxLjEgOS40bC0uMSAwYy00LjYgMi45LTkuNSA2LTIwLjMgOC43Yy0zLjUgMy40IDEuNyAyIDUuOCAuOWwwIDBjNC4xLTEuMSA3LjItMS45LS4xIDIuNGMtMy41IDEtNi42IDEuMy05LjYgMS42bC0uMSAwYy04LjMgLjgtMTUuOCAxLjYtMzAuNyAxN2MuOCAxLjMgMy40LS4yIDUuMy0xLjNsLjEtLjFjMi4zLTEuNCAzLjQtMi0xLjcgNC40Yy0xOS4xLTIuNC02MC4zIDQzLjctNjkuMSA1OWw0LjYgLjhjLTMuMiA4LTYuOCAxNC44LTEwIDIwLjhjLTQuMyA4LjEtNy45IDE0LjktOC43IDIxLjNjLS4zIDUuMS0xIDExLTEuNyAxNy4zbDAgMGMtLjEgMS0uMiAyLS4zIDNsLS4xIC42Yy0zIDI3LjMtNi43IDYwLjggMy45IDczbC0xLjMgMTNjLjYgMS4yIDEuMSAyLjMgMS42IDMuNWMuMiAuNCAuNCAuOCAuNSAxLjFsMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwYzEgMi4xIDIgNC4yIDMuMyA2LjJsLTMgLjJjNyAyMi4xIDEwLjggMjIuNSAxNS4xIDIyLjlsMCAwYzQuNCAuNCA5LjMgLjkgMTguNyAyNC4yYy0yLjctLjktNS41LTEuOS05LjQtNy4yYy0uNSA0LjEgNS44IDE2LjMgMTMuMSAyNS44bC0zLjEgMy42YzIuMSAzLjcgNC44IDYuMiA3LjYgOC44bDAgMCAwIDBjMSAuOSAyLjEgMS45IDMuMSAyLjljLTExLjktNi41IDMuMiAxMy43IDExLjkgMjUuMmMuOCAxLjEgMS41IDIgMi4yIDIuOWwwIDAgMCAwIDAgMCAwIDAgMCAwYzEuNCAxLjkgMi41IDMuNCAyLjkgNC4xbDIuNC00LjJjLS4zIDYuMSA0LjMgMTMuOSAxMy4xIDI0LjdsNy4zLS4zYzMgNiAxNCAxNi43IDIwLjcgMTcuMmwtNC40IDUuOGM4LjEgMi42IDEwLjMgNC4zIDEyLjcgNi4yYzIuNiAyLjEgNS40IDQuMyAxNi4xIDguMWwtNC4yLTcuNGMzLjUgMyA2LjIgNS45IDguOCA4LjdsLjEgLjFjNS4yIDUuNiA5LjkgMTAuNiAxOS43IDE1LjNjMTAuNyAzLjcgMTYuNiA0LjcgMjIuNyA1LjhjLjMgMCAuNiAuMSAuOSAuMWM1LjQgLjggMTEuMiAxLjggMjAuOCA0LjVjLTEuMS0uMS0yLjItLjEtMy4zLS4xaDBjLTIuMy0uMS00LjctLjEtNy0uMWwwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDBjLTE0LjQtLjItMjkuMi0uNC00Mi43LTUuMkMxMDcuOCA0ODAuNSAxOS41IDM2Ny4yIDI2IDI1MC42Yy0uNi05LjktLjMtMjAuOSAwLTMwLjdjLjQtMTMuNSAuNy0yNC44LTEuNi0yOC4zbDEtMy4xYzUuMy0xNy40IDExLjctMzguMiAyMy44LTYyLjhsLS4xLS4ydi0uMWMuNCAuNCAzLjQgMy40IDguOC01LjhjLjgtMS44IDEuNi0zLjcgMi40LTUuNmMuNS0xLjEgLjktMi4yIDEuNC0zLjJjMi41LTYuMSA1LjEtMTIuMyA4LjQtMTcuOWwyLjYtLjZjMS43LTEwLjEgMTctMjMuOCAyOS44LTM1LjJsMS4xLTFjNS43LTUuMSAxMC43LTkuNyAxMy42LTEzLjFsLjcgNC40YzE3LTE1LjkgNDQuNi0yNy41IDY1LjYtMzYuNGwuNS0uMmM0LjgtMiA5LjMtMy45IDEzLjMtNS43Yy0zLjQgMy44IDIuMiAyLjcgMTAgMWM0LjgtMSAxMC40LTIuMSAxNS4zLTIuNGwtMy45IDIuMWMtMi43IDEuNC01LjQgMi44LTggNC42YzguMS0yIDExLjctMS40IDE1LjctLjhsLjMgMGMzLjUgLjYgNy4zIDEuMiAxNC42IC4yYy01LjYgLjgtMTIuMyAzLTExLjIgMy44YzcuOSAuOSAxMi44LS4xIDE3LjItMWwuMiAwYzUuNS0xLjEgMTAuMy0yIDE5LjMgLjlsLTEtNC44YzcuMyAyLjYgMTIuNyA0LjMgMTcuNSA1LjhsLjUgLjFjMTAgMyAxNy42IDUuMyAzNC4yIDE0LjFjMy4yIC4yIDUuMy0uNSA3LjQtMS4ybC4xIDBjMy42LTEuMSA3LTIuMSAxNS4yIDEuMmMuMyAuNSAuNSAxIC43IDEuNGMuMSAuMiAuMiAuNSAuMyAuN2wwIC4xYzEgMi42IDEuOCA0LjYgMTQuNiAxMi4xYzEuNy0uNy0yLjctNC43LTYuNC04LjJjMCAwIDAgMC0uMS0uMWMtLjItLjEtLjMtLjMtLjUtLjRjMzIuMiAxNy4zIDY3LjMgNTQuMSA3OCA5My41Yy02LTExLjEtNS4yLTUuNS00LjMgLjVjLjYgNCAxLjIgOC4xLS4yIDcuNWM0LjUgMTIuMSA4LjEgMjQuNSAxMC40IDM3LjRsLS44LTIuOS0uMS0uM2MtMy4zLTExLjktOS42LTM0LjMtMTkuOS00OS4zYy0uNCA0LjMtMi44IDMuOS01LjIgMy41bC0uMSAwIDAgMGMtMy4zLS42LTYuMi0xLjEtMS45IDEyLjZjMi42IDMuOCAzLjEgMi40IDMuNSAxLjFsMCAwYy41LTEuNSAuOS0yLjcgNC43IDUuMmMuMSA0LjEgMSA4LjIgMi4xIDEyLjdsMCAwIDAgMCAuMSAuNmMuMSAuMyAuMSAuNSAuMiAuOGwuMSAuNmMuNiAyLjYgMS4zIDUuNCAxLjggOC40Yy0xLjEtLjItMi4zLTIuMi0zLjQtNC4yYy0xLjQtMi40LTIuOC00LjctMy43LTMuMmMyLjQgMTEuNSA2LjUgMTcuNCA4IDE4LjNjLS4zIC42LS42IC43LTEuMSAuN2MtLjggMC0xLjggLjEtMS45IDUuM2MuNyAxMy43IDMuMyAxMi41IDUuMyAxMS42bDAgMGMuNi0uMyAxLjItLjYgMS43LS40Yy0uNiAyLjUtMS42IDUuMS0yLjcgNy45Yy0yLjggNy4xLTYgMTUuNC0zLjQgMjYuMWMtLjgtMy0yLTYtMy4xLTguOWwtLjEtLjRjLS4yLS41LS40LTEtLjYtMS41bDAgMGMtLjMtLjgtLjYtMS42LS45LTIuM2MtLjYgNC40LS4zIDcuNy0uMSAxMC42YzAgLjIgMCAuNSAwIC43Yy40IDUuMyAuNyAxMC0zIDE5LjljNC4zLTE0LjIgMy44LTI2LjktLjItMjAuOGMxIDEwLjktMy43IDIwLjQtOCAyOC45bC0uMSAuMmMtMy42IDcuMS02LjggMTMuNS01LjkgMTkuM2wtNS4yLTcuMWMtNy41IDEwLjktNyAxMy4zLTYuNSAxNS41bDAgLjFjLjUgMS45IDEgMy44LTMuNCAxMC44YzEuNy0yLjkgMS4zLTMuNiAxLTQuMmwwIDBjLS40LS44LS43LTEuNSAxLjctNS4xYy0xLjYgLjEtNS41IDMuOS0xMC4xIDguNWMtMy45IDMuOS04LjUgOC40LTEyLjggMTEuOGMtMzcuNSAzMC4xLTgyLjMgMzQtMTI1LjYgMTcuOGMuMi0xLS4yLTIuMS0zLjEtNC4xYy0zNi44LTI4LjItNTguNS01Mi4xLTUwLjktMTA3LjVjMi4xLTEuNiAzLjYtNS44IDUuMy0xMC44bDAgMCAwIDAgLjItLjQgLjEtLjMgMC0uMWMyLjktOC40IDYuNS0xOC44IDE0LjMtMjMuOGM3LjgtMTcuMyAzMS4zLTMzLjMgNTYuNC0zMy43YzI1LjYtMS40IDQ3LjIgMTMuNyA1OC4xIDI3LjljLTE5LjgtMTguNC01Mi4xLTI0LTc5LjctMTAuNGMtMjguMiAxMi43LTQ1IDQzLjgtNDIuNSA3NC43Yy4zLS40IC42LS42IC45LS44bDAgMHMwIDAgMCAwYzAgMCAuMS0uMSAuMS0uMWwuMS0uMWMuNi0uNSAxLjEtLjkgMS40LTMuM2MtLjkgNjAuMiA2NC44IDEwNC4zIDExMi4xIDgybC42IDEuM2MxMi43LTMuNSAxNS45LTYuNSAyMC4zLTEwLjdsLjEtLjEgMCAwYzIuMi0yLjEgNC43LTQuNSA4LjktNy4zYy0uMyAuNy0xLjMgMS43LTIuNCAyLjdjLTIuMiAyLjEtNC42IDQuNS0xLjYgNC42YzUtMS4zIDE4LjUtMTMuNCAyOC41LTIyLjNsMCAwIDAgMGMuNi0uNSAxLjItMSAxLjctMS41YzEuNS0xLjMgMi44LTIuNSA0LTMuNmwwIDAgLjMtLjNjMS45LTQuMiAxLjYtNS42IDEuMy03bDAtLjFjLS40LTEuNi0uOC0zLjMgMi40LTkuNmw3LjMtMy43Yy44LTIuMSAxLjUtNC4xIDIuMi02Yy4yLS42IC41LTEuMiAuNy0xLjhsLS40LS4yek0zNDkuMyAzNC4zbC0uMi0uMSAuMiAuMSAwIDB6TTI0Ny44IDMzNC4xYy02LTMtMTMuNy04LjktMTQuOC0xMS40bC0uNCAuM2MtLjMgLjYtLjUgMS4zLS4yIDIuMmMtMTIuMi01LjctMjMuNC0xNC4zLTMyLjYtMjQuOWM0LjkgNy4xIDEwLjEgMTQuMSAxNyAxOS41Yy02LjktMi4zLTE1LjEtMTEuOC0yMS42LTE5LjNsLS4xLS4xYy00LjMtNS03LjktOS4xLTkuNy05LjVjMTkuOCAzNS41IDgwLjUgNjIuMyAxMTIuMyA0OWMtMTQuNyAuNS0zMy40IC4zLTQ5LjktNS44em03OS4zLTExOS43bC0uMS0uMmMtLjUtMS41LTEuMS0zLjEtMS43LTMuNGMxLjQtNS44IDUuNC0xMC43IDQuNCA0LjZjLTEgMy44LTEuOCAxLjUtMi42LTF6bS00LjIgMjIuMmMtMS4zIDcuOS01IDE1LjUtMTAuMSAyMi41Yy4yLTItMS4yLTIuNC0yLjYtMi44bDAgMGMtMi45LS44LTUuOS0xLjYgNS42LTE2LjFjLS41IDEuOS0yLjEgNC42LTMuNyA3LjNsMCAwIDAgMC0uMyAuNGMtMy42IDUuOS02LjcgMTEgNCA0LjNsMS0xLjhjMi42LTQuNSA1LTguOCA2LTEzLjhoLjF6bS01NS42IDMzLjljNy4xIC42IDE0LjEgLjYgMjEtMS4xYy0yLjUgMi40LTUuMiA0LjgtOC4zIDcuMmMtMTEuMS0xLjctMjEuMi02LTEyLjctNi4xem0tOTIuNiAxMS42YzMuNiA3LjEgNi40IDExLjUgOSAxNS43bC4xIC4yYzIuMyAzLjcgNC40IDcuMSA2LjggMTEuN2MtNS4xLTQuMi04LjctOS41LTEyLjUtMTVsLS4zLS41Yy0xLjQtMi4xLTIuOC00LjItNC40LTYuMmwxLjItNS45aC4xem03LjUtOS42YzEuNiAzLjMgMy4yIDYuNCA1LjcgOS4xbDIuNiA3LjctMS4zLTIuMWMtMy4yLTUuMy02LjMtMTAuNi04LTE2LjdsLjggMS42IC4yIC40em0yMzguOS00MS42Yy0yLjMgMTcuNC03LjcgMzQuNi0xNiA1MC4zYzcuNi0xNC45IDEyLjUtMzAuOSAxNC44LTQ3LjJsMS4yLTMuMXpNMzUuNiAxMTAuNmMuNCAuOCAxLjQgLjUgMi4zIC4zYzEuOS0uNSAzLjYtLjktLjEgNy42Yy0uNSAuMy0xIC43LTEuNSAxbDAgMCAwIDBjLTEuNCAuOS0yLjggMS45LTMuOSAzYzEuOS0zLjggMy41LTcuNCAzLjItMTEuOXpNMjUuMyAxNTIuM2MtLjcgMy43LTEuNSA3LjktMy40IDEzLjljLjItMS45IDAtMy41LS4yLTQuOWwwLS4xYy0uNC0zLjQtLjctNi4zIDQuMy0xMi44Yy0uMyAxLjItLjUgMi41LS43IDMuOHYuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGVlemVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1MS40NiwyNDQuNzFINTc2VjE3Mkg0NTEuNDZabTAtMTczLjg5djcyLjY3SDU3NlY3MC44MlptMCwyNzUuMDZINTc2VjI3My4ySDQ1MS40NlpNMCw0NDcuMDlIMTI0LjU0VjM3NC40MkgwWm0xNTAuNDcsMEgyNzVWMzc0LjQySDE1MC40N1ptMTUwLjUyLDBINDI1LjUzVjM3NC40MkgzMDFabTE1MC40NywwSDU3NlYzNzQuNDJINDUxLjQ2Wk0zMDEsMzQ1Ljg4SDQyNS41M1YyNzMuMkgzMDFabS0xNTAuNTIsMEgyNzVWMjczLjJIMTUwLjQ3Wm0wLTEwMS4xN0gyNzVWMTcySDE1MC40N1pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGVsaWNpb3VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0Ni41IDY4Yy0uNC0xLjUtLjktMy0xLjQtNC41LS45LTIuNS0yLTQuOC0zLjMtNy4xLTEuNC0yLjQtMy00LjgtNC43LTYuOS0yLjEtMi41LTQuNC00LjgtNi45LTYuOC0xLjEtLjktMi4yLTEuNy0zLjMtMi41LTEuMy0uOS0yLjYtMS43LTQtMi40LTEuOC0xLTMuNi0xLjgtNS41LTIuNS0xLjctLjctMy41LTEuMy01LjQtMS43LTMuOC0xLTcuOS0xLjUtMTItMS41SDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgNC4xLjUgOC4yIDEuNSAxMiAyIDcuNyA1LjggMTQuNiAxMSAyMC4zIDEgMS4xIDIuMSAyLjIgMy4zIDMuMyA1LjcgNS4yIDEyLjYgOSAyMC4zIDExIDMuOCAxIDcuOSAxLjUgMTIgMS41aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMtLjEtNC4xLS42LTguMi0xLjYtMTJ6TTQxNiA0MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDIyNFYyNTZIMzJWODBjMC04LjggNy4yLTE2IDE2LTE2aDE3NnYxOTJoMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEZXBsb3lkb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzgyLjIgMTM2aDUxLjd2MjM5LjZoLTUxLjd2LTIwLjdjLTE5LjggMjQuOC01Mi44IDI0LjEtNzMuOCAxNC43LTI2LjItMTEuNy00NC4zLTM4LjEtNDQuMy03MS44IDAtMjkuOCAxNC44LTU3LjkgNDMuMy03MC44IDIwLjItOS4xIDUyLjctMTAuNiA3NC44IDEyLjlWMTM2em0tNjQuNyAxNjEuOGMwIDE4LjIgMTMuNiAzMy41IDMzLjIgMzMuNSAxOS44IDAgMzMuMi0xNi40IDMzLjItMzIuOSAwLTE3LjEtMTMuNy0zMy4yLTMzLjItMzMuMi0xOS42IDAtMzMuMiAxNi40LTMzLjIgMzIuNnpNMTg4LjUgMTM2aDUxLjd2MjM5LjZoLTUxLjd2LTIwLjdjLTE5LjggMjQuOC01Mi44IDI0LjEtNzMuOCAxNC43LTI2LjItMTEuNy00NC4zLTM4LjEtNDQuMy03MS44IDAtMjkuOCAxNC44LTU3LjkgNDMuMy03MC44IDIwLjItOS4xIDUyLjctMTAuNiA3NC44IDEyLjlWMTM2em0tNjQuNyAxNjEuOGMwIDE4LjIgMTMuNiAzMy41IDMzLjIgMzMuNSAxOS44IDAgMzMuMi0xNi40IDMzLjItMzIuOSAwLTE3LjEtMTMuNy0zMy4yLTMzLjItMzMuMi0xOS43IDAtMzMuMiAxNi40LTMzLjIgMzIuNnpNNDQ4IDk2YzE3LjUgMCAzMiAxNC40IDMyIDMydjI1NmMwIDE3LjUtMTQuNCAzMi0zMiAzMkg2NGMtMTcuNSAwLTMyLTE0LjQtMzItMzJWMTI4YzAtMTcuNSAxNC40LTMyIDMyLTMyaDM4NG0wLTMySDY0QzI4LjggNjQgMCA5Mi44IDAgMTI4djI1NmMwIDM1LjIgMjguOCA2NCA2NCA2NGgzODRjMzUuMiAwIDY0LTI4LjggNjQtNjRWMTI4YzAtMzUuMi0yOC44LTY0LTY0LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEZXNrcHJvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0ODAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwNS45IDUxMmwzMS4xLTM4LjRjMTIuMy0uMiAyNS42LTEuNCAzNi41LTYuNiAzOC45LTE4LjYgMzguNC02MS45IDM4LjMtNjMuOC0uMS01LS44LTQuNC0yOC45LTM3LjRIMzYyYy0uMiA1MC4xLTcuMyA2OC41LTEwLjIgNzUuNy05LjQgMjMuNy00My45IDYyLjgtOTUuMiA2OS40LTguNyAxLjEtMzIuOCAxLjItNTAuNyAxLjF6bTIwMC40LTE2Ny43YzM4LjYgMCA1OC41LTEzLjYgNzMuNy0zMC45bC0xNzUuNS0uMy0xNy40IDMxLjMgMTE5LjItLjF6bS00My42LTIyMy45djE2OC4zaC03My41bC0zMi43IDU1LjVIMjUwYy01Mi4zIDAtNTguMS01Ni41LTU4LjMtNTguOS0xLjItMTMuMi0yMS4zLTExLjYtMjAuMSAxLjggMS40IDE1LjggOC44IDQwIDI2LjQgNTcuMWgtOTFjLTI1LjUgMC0xMTAuOC0yNi44LTEwNy0xMTRWMTYuOUMwIC45IDkuNy4zIDE1IC4xaDgyYy4yIDAgLjMuMS41LjEgNC4zLS40IDUwLjEtMi4xIDUwLjEgNDMuNyAwIDEzLjMgMjAuMiAxMy40IDIwLjIgMCAwLTE4LjItNS41LTMyLjgtMTUuOC00My43aDg0LjJjMTA4LjctLjQgMTI2LjUgNzkuNCAxMjYuNSAxMjAuMnptLTEzMi41IDU2bDY0IDI5LjNjMTMuMy00NS41LTQyLjItNzEuNy02NC0yOS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEZXYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIwLjEyIDIwOC4yOWMtMy44OC0yLjktNy43Ny00LjM1LTExLjY1LTQuMzVIOTEuMDN2MTA0LjQ3aDE3LjQ1YzMuODggMCA3Ljc3LTEuNDUgMTEuNjUtNC4zNSAzLjg4LTIuOSA1LjgyLTcuMjUgNS44Mi0xMy4wNnYtNjkuNjVjLS4wMS01LjgtMS45Ni0xMC4xNi01LjgzLTEzLjA2ek00MDQuMSAzMkg0My45QzE5LjcgMzIgLjA2IDUxLjU5IDAgNzUuOHYzNjAuNEMuMDYgNDYwLjQxIDE5LjcgNDgwIDQzLjkgNDgwaDM2MC4yYzI0LjIxIDAgNDMuODQtMTkuNTkgNDMuOS00My44Vjc1LjhjLS4wNi0yNC4yMS0xOS43LTQzLjgtNDMuOS00My44ek0xNTQuMiAyOTEuMTljMCAxOC44MS0xMS42MSA0Ny4zMS00OC4zNiA0Ny4yNWgtNDYuNFYxNzIuOThoNDcuMzhjMzUuNDQgMCA0Ny4zNiAyOC40NiA0Ny4zNyA0Ny4yOGwuMDEgNzAuOTN6bTEwMC42OC04OC42NkgyMDEuNnYzOC40MmgzMi41N3YyOS41N0gyMDEuNnYzOC40MWg1My4yOXYyOS41N2gtNjIuMThjLTExLjE2LjI5LTIwLjQ0LTguNTMtMjAuNzItMTkuNjlWMTkzLjdjLS4yNy0xMS4xNSA4LjU2LTIwLjQxIDE5LjcxLTIwLjY5aDYzLjE5bC0uMDEgMjkuNTJ6bTEwMy42NCAxMTUuMjljLTEzLjIgMzAuNzUtMzYuODUgMjQuNjMtNDcuNDQgMGwtMzguNTMtMTQ0LjhoMzIuNTdsMjkuNzEgMTEzLjcyIDI5LjU3LTExMy43MmgzMi41OGwtMzguNDYgMTQ0Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURldmlhbnRhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDkzLjJsLTk4LjIgMTc5LjEgNy40IDkuNUgzMjB2MTI3LjdIMTU5LjFsLTEzLjUgOS4yLTQzLjcgODRjLS4zIDAtOC42IDguNi05LjIgOS4ySDB2LTkzLjJsOTMuMi0xNzkuNC03LjQtOS4ySDBWMTAyLjVoMTU2bDEzLjUtOS4yIDQzLjctODRjLjMgMCA4LjYtOC42IDkuMi05LjJIMzIwdjkzLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURobCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzggMzAxLjJoNTguN0wzMTkgMjcxaC01OC43TDIzOCAzMDEuMnpNMCAyODIuOXY2LjRoODEuOGw0LjctNi40SDB6TTE3Mi45IDI3MWMtOC43IDAtNi0zLjYtNC42LTUuNSAyLjgtMy44IDcuNi0xMC40IDEwLjQtMTQuMSAyLjgtMy43IDIuOC01LjktMi44LTUuOWgtNTFsLTQxLjEgNTUuOGgxMDAuMWMzMy4xIDAgNTEuNS0yMi41IDU3LjItMzAuM2gtNjguMnptMzE3LjUtNi45bDM5LjMtNTMuNGgtNjIuMmwtMzkuMyA1My40aDYyLjJ6TTk1LjMgMjcxSDB2Ni40aDkwLjZsNC43LTYuNHptMTExLTI2LjZjLTIuOCAzLjgtNy41IDEwLjQtMTAuMyAxNC4yLTEuNCAyLTQuMSA1LjUgNC42IDUuNWg0NS42czcuMy0xMCAxMy41LTE4LjRjOC40LTExLjQuNy0zNS0yOS4yLTM1SDExMi42bC0yMC40IDI3LjhoMTExLjRjNS42IDAgNS41IDIuMiAyLjcgNS45ek0wIDMwMS4yaDczLjFsNC43LTYuNEgwdjYuNHptMzIzIDBoNTguN0w0MDQgMjcxaC01OC43Yy0uMSAwLTIyLjMgMzAuMi0yMi4zIDMwLjJ6bTIyMiAuMWg5NXYtNi40aC05MC4zbC00LjcgNi40em0yMi4zLTMwLjNsLTQuNyA2LjRINjQwVjI3MWgtNzIuN3ptLTEzLjUgMTguM0g2NDB2LTYuNGgtODEuNWwtNC43IDYuNHptLTE2NC4yLTc4LjZsLTIyLjUgMzAuNmgtMjYuMmwyMi41LTMwLjZoLTU4LjdsLTM5LjMgNTMuNEg0MDlsMzkuMy01My40aC01OC43em0zMy41IDYwLjNzLTQuMyA1LjktNi40IDguN2MtNy40IDEwLS45IDIxLjYgMjMuMiAyMS42aDk0LjNsMjIuMy0zMC4zSDQyMy4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWFzcG9yYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTEuNjQgMzU0LjU1Yy0xLjQgMC04OCAxMTkuOS04OC43IDExOS45Uzc2LjM0IDQxNCA3NiA0MTMuMjVzODYuNi0xMjUuNyA4Ni42LTEyNy40YzAtMi4yLTEyOS42LTQ0LTEzNy42LTQ3LjEtMS4zLS41IDMxLjQtMTAxLjggMzEuNy0xMDIuMS42LS43IDE0NC40IDQ3IDE0NS41IDQ3IC40IDAgLjktLjYgMS0xLjMuNC0yIDEtMTQ4LjYgMS43LTE0OS42LjgtMS4yIDEwNC41LS43IDEwNS4xLS4zIDEuNSAxIDMuNSAxNTYuMSA2LjEgMTU2LjEgMS40IDAgMTM4LjctNDcgMTM5LjMtNDYuMy44LjkgMzEuOSAxMDIuMiAzMS41IDEwMi42LS45LjktMTQwLjIgNDcuMS0xNDAuNiA0OC44LS4zIDEuNCA4Mi44IDEyMi4xIDgyLjUgMTIyLjlzLTg1LjUgNjMuNS04Ni4zIDYzLjVjLTEtLjItODktMTI1LjUtOTAuOS0xMjUuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGlnZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04MS43IDE3Mi4zSDB2MTc0LjRoMTMyLjdWOTZoLTUxdjc2LjN6bTAgMTMzLjRINTAuOXYtOTIuM2gzMC44djkyLjN6bTI5Ny4yLTEzMy40djE3NC40aDgxLjh2MjguNWgtODEuOFY0MTZINTEyVjE3Mi4zSDM3OC45em04MS44IDEzMy40aC0zMC44di05Mi4zaDMwLjh2OTIuM3ptLTIzNS42IDQxaDgyLjF2MjguNWgtODIuMVY0MTZoMTMzLjNWMTcyLjNIMjI1LjF2MTc0LjR6bTUxLjItMTMzLjNoMzAuOHY5Mi4zaC0zMC44di05Mi4zek0xNTMuMyA5Nmg1MS4zdjUxaC01MS4zVjk2em0wIDc2LjNoNTEuM3YxNzQuNGgtNTEuM1YxNzIuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGlnaXRhbE9jZWFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTg3IDQ4MS44aDczLjd2LTczLjZIODd6TTI1LjQgMzQ2LjZ2NjEuNkg4N3YtNjEuNnptNDY2LjItMTY5LjdjLTIzLTc0LjItODIuNC0xMzMuMy0xNTYuNi0xNTYuNkMxNjQuOS0zMi44IDggOTMuNyA4IDI1NS45aDk1LjhjMC0xMDEuOCAxMDEtMTgwLjUgMjA4LjEtMTQxLjcgMzkuNyAxNC4zIDcxLjUgNDYuMSA4NS44IDg1LjcgMzkuMSAxMDctMzkuNyAyMDcuOC0xNDEuNCAyMDh2LjNoLS4zVjUwNGMxNjIuNiAwIDI4OC44LTE1Ni44IDIzNS42LTMyNy4xem0tMjM1LjMgMjMxdi05NS4zaC05NS42djk1LjZIMjU2di0uM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGlzY29yZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjQuNTMxLDY5LjgzNmExLjUsMS41LDAsMCwwLS43NjQtLjdBNDg1LjA2NSw0ODUuMDY1LDAsMCwwLDQwNC4wODEsMzIuMDNhMS44MTYsMS44MTYsMCwwLDAtMS45MjMuOTEsMzM3LjQ2MSwzMzcuNDYxLDAsMCwwLTE0LjksMzAuNiw0NDcuODQ4LDQ0Ny44NDgsMCwwLDAtMTM0LjQyNiwwLDMwOS41NDEsMzA5LjU0MSwwLDAsMC0xNS4xMzUtMzAuNiwxLjg5LDEuODksMCwwLDAtMS45MjQtLjkxQTQ4My42ODksNDgzLjY4OSwwLDAsMCwxMTYuMDg1LDY5LjEzN2ExLjcxMiwxLjcxMiwwLDAsMC0uNzg4LjY3NkMzOS4wNjgsMTgzLjY1MSwxOC4xODYsMjk0LjY5LDI4LjQzLDQwNC4zNTRhMi4wMTYsMi4wMTYsMCwwLDAsLjc2NSwxLjM3NUE0ODcuNjY2LDQ4Ny42NjYsMCwwLDAsMTc2LjAyLDQ3OS45MThhMS45LDEuOSwwLDAsMCwyLjA2My0uNjc2QTM0OC4yLDM0OC4yLDAsMCwwLDIwOC4xMiw0MzAuNGExLjg2LDEuODYsMCwwLDAtMS4wMTktMi41ODgsMzIxLjE3MywzMjEuMTczLDAsMCwxLTQ1Ljg2OC0yMS44NTMsMS44ODUsMS44ODUsMCwwLDEtLjE4NS0zLjEyNmMzLjA4Mi0yLjMwOSw2LjE2Ni00LjcxMSw5LjEwOS03LjEzN2ExLjgxOSwxLjgxOSwwLDAsMSwxLjktLjI1NmM5Ni4yMjksNDMuOTE3LDIwMC40MSw0My45MTcsMjk1LjUsMGExLjgxMiwxLjgxMiwwLDAsMSwxLjkyNC4yMzNjMi45NDQsMi40MjYsNi4wMjcsNC44NTEsOS4xMzIsNy4xNmExLjg4NCwxLjg4NCwwLDAsMS0uMTYyLDMuMTI2LDMwMS40MDcsMzAxLjQwNywwLDAsMS00NS44OSwyMS44MywxLjg3NSwxLjg3NSwwLDAsMC0xLDIuNjExLDM5MS4wNTUsMzkxLjA1NSwwLDAsMCwzMC4wMTQsNDguODE1LDEuODY0LDEuODY0LDAsMCwwLDIuMDYzLjdBNDg2LjA0OCw0ODYuMDQ4LDAsMCwwLDYxMC43LDQwNS43MjlhMS44ODIsMS44ODIsMCwwLDAsLjc2NS0xLjM1MkM2MjMuNzI5LDI3Ny41OTQsNTkwLjkzMywxNjcuNDY1LDUyNC41MzEsNjkuODM2Wk0yMjIuNDkxLDMzNy41OGMtMjguOTcyLDAtNTIuODQ0LTI2LjU4Ny01Mi44NDQtNTkuMjM5UzE5My4wNTYsMjE5LjEsMjIyLjQ5MSwyMTkuMWMyOS42NjUsMCw1My4zMDYsMjYuODIsNTIuODQzLDU5LjIzOUMyNzUuMzM0LDMxMC45OTMsMjUxLjkyNCwzMzcuNTgsMjIyLjQ5MSwzMzcuNThabTE5NS4zOCwwYy0yOC45NzEsMC01Mi44NDMtMjYuNTg3LTUyLjg0My01OS4yMzlTMzg4LjQzNywyMTkuMSw0MTcuODcxLDIxOS4xYzI5LjY2NywwLDUzLjMwNywyNi44Miw1Mi44NDQsNTkuMjM5QzQ3MC43MTUsMzEwLjk5Myw0NDcuNTM4LDMzNy41OCw0MTcuODcxLDMzNy41OFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGlzY291cnNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNS45IDMyQzEwMy4zIDMyIDAgMTMwLjUgMCAyNTIuMSAwIDI1NiAuMSA0ODAgLjEgNDgwbDIyNS44LS4yYzEyMi43IDAgMjIyLjEtMTAyLjMgMjIyLjEtMjIzLjlDNDQ4IDEzNC4zIDM0OC42IDMyIDIyNS45IDMyek0yMjQgMzg0Yy0xOS40IDAtMzcuOS00LjMtNTQuNC0xMi4xTDg4LjUgMzkybDIyLjktNzVjLTkuOC0xOC4xLTE1LjQtMzguOS0xNS40LTYxIDAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4czEyOCA1Ny4zIDEyOCAxMjgtNTcuMyAxMjgtMTI4IDEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG9jaHViIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0MTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM5Ny45IDE2MEgyNTZWMTkuNkwzOTcuOSAxNjB6TTMwNCAxOTJ2MTMwYzAgNjYuOC0zNi41IDEwMC4xLTExMy4zIDEwMC4xSDk2Vjg0LjhoOTQuN2MxMiAwIDIzLjEuOCAzMy4xIDIuNXYtODRDMjEyLjkgMS4xIDIwMS40IDAgMTg5LjIgMEgwdjUxMmgxODkuMkMzMjkuNyA1MTIgNDAwIDQ0Ny40IDQwMCAzMTguMVYxOTJoLTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb2NrZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ5LjkgMjM2LjNoLTY2LjF2LTU5LjRoNjYuMXY1OS40em0wLTIwNC4zaC02Ni4xdjYwLjdoNjYuMVYzMnptNzguMiAxNDQuOEgzNjJ2NTkuNGg2Ni4xdi01OS40em0tMTU2LjMtNzIuMWgtNjYuMXY2MC4xaDY2LjF2LTYwLjF6bTc4LjEgMGgtNjYuMXY2MC4xaDY2LjF2LTYwLjF6bTI3Ni44IDEwMGMtMTQuNC05LjctNDcuNi0xMy4yLTczLjEtOC40LTMuMy0yNC0xNi43LTQ0LjktNDEuMS02My43bC0xNC05LjMtOS4zIDE0Yy0xOC40IDI3LjgtMjMuNCA3My42LTMuNyAxMDMuOC04LjcgNC43LTI1LjggMTEuMS00OC40IDEwLjdIMi40Yy04LjcgNTAuOCA1LjggMTE2LjggNDQgMTYyLjEgMzcuMSA0My45IDkyLjcgNjYuMiAxNjUuNCA2Ni4yIDE1Ny40IDAgMjczLjktNzIuNSAzMjguNC0yMDQuMiAyMS40LjQgNjcuNi4xIDkxLjMtNDUuMiAxLjUtMi41IDYuNi0xMy4yIDguNS0xNy4xbC0xMy4zLTguOXptLTUxMS4xLTI3LjloLTY2djU5LjRoNjYuMXYtNTkuNHptNzguMSAwaC02Ni4xdjU5LjRoNjYuMXYtNTkuNHptNzguMSAwaC02Ni4xdjU5LjRoNjYuMXYtNTkuNHptLTc4LjEtNzIuMWgtNjYuMXY2MC4xaDY2LjF2LTYwLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURyYWZ0MkRpZ2l0YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ4MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDM5OC4xbC0xNDQtODIuMnY2NC43aC05MS4zYzMwLjgtMzUgODEuOC05NS45IDExMS44LTE0OS4zIDM1LjItNjIuNiAxNi4xLTEyMy40LTEyLjgtMTUzLjMtNC40LTQuNi02Mi4yLTYyLjktMTY2LTQxLjItNTkuMSAxMi40LTg5LjQgNDMuNC0xMDQuMyA2Ny4zLTEzLjEgMjAuOS0xNyAzOS44LTE4LjIgNDcuNy01LjUgMzMgMTkuNCA2Ny4xIDU2LjcgNjcuMSAzMS43IDAgNTcuMy0yNS43IDU3LjMtNTcuNCAwLTI3LjEtMTkuNy01Mi4xLTQ4LTU2LjggMS44LTcuMyAxNy43LTIxLjEgMjYuMy0yNC43IDQxLjEtMTcuMyA3OCA1LjIgODMuMyAzMy41IDguMyA0NC4zLTM3LjEgOTAuNC02OS43IDEyNy42Qzg0LjUgMzI4LjEgMTguMyAzOTYuOCAwIDQxNS45bDMzNi0uMVY0ODB6TTM2OS45IDM3MWw0Ny4xIDI3LjItNDcuMSAyNy4yek0xMzQuMiAxNjEuNGMwIDEyLjQtMTAgMjIuNC0yMi40IDIyLjRzLTIyLjQtMTAtMjIuNC0yMi40IDEwLTIyLjQgMjIuNC0yMi40IDIyLjQgMTAuMSAyMi40IDIyLjR6TTgyLjUgMzgwLjVjMjUuNi0yNy40IDk3LjctMTA0LjcgMTUwLjgtMTY5LjkgMzUuMS00My4xIDQwLjMtODIuNCAyOC40LTExMi43LTcuNC0xOC44LTE3LjUtMzAuMi0yNC4zLTM1LjcgNDUuMyAyLjEgNjggMjMuNCA4Mi4yIDM4LjMgMCAwIDQyLjQgNDguMiA1LjggMTEzLjMtMzcgNjUuOS0xMTAuOSAxNDcuNS0xMjguNSAxNjYuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHJpYmJibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5LjI1MiA4IDggMTE5LjI1MiA4IDI1NnMxMTEuMjUyIDI0OCAyNDggMjQ4IDI0OC0xMTEuMjUyIDI0OC0yNDhTMzkyLjc0OCA4IDI1NiA4em0xNjMuOTcgMTE0LjM2NmMyOS41MDMgMzYuMDQ2IDQ3LjM2OSA4MS45NTcgNDcuODM1IDEzMS45NTUtNi45ODQtMS40NzctNzcuMDE4LTE1LjY4Mi0xNDcuNTAyLTYuODE4LTUuNzUyLTE0LjA0MS0xMS4xODEtMjYuMzkzLTE4LjYxNy00MS42MTQgNzguMzIxLTMxLjk3NyAxMTMuODE4LTc3LjQ4MiAxMTguMjg0LTgzLjUyM3pNMzk2LjQyMSA5Ny44N2MtMy44MSA1LjQyNy0zNS42OTcgNDguMjg2LTExMS4wMjEgNzYuNTE5LTM0LjcxMi02My43NzYtNzMuMTg1LTExNi4xNjgtNzkuMDQtMTI0LjAwOCA2Ny4xNzYtMTYuMTkzIDEzNy45NjYgMS4yNyAxOTAuMDYxIDQ3LjQ4OXptLTIzMC40OC0zMy4yNWM1LjU4NSA3LjY1OSA0My40MzggNjAuMTE2IDc4LjUzNyAxMjIuNTA5LTk5LjA4NyAyNi4zMTMtMTg2LjM2IDI1LjkzNC0xOTUuODM0IDI1LjgwOUM2Mi4zOCAxNDcuMjA1IDEwNi42NzggOTIuNTczIDE2NS45NDEgNjQuNjJ6TTQ0LjE3IDI1Ni4zMjNjMC0yLjE2Ni4wNDMtNC4zMjIuMTA4LTYuNDczIDkuMjY4LjE5IDExMS45MiAxLjUxMyAyMTcuNzA2LTMwLjE0NiA2LjA2NCAxMS44NjggMTEuODU3IDIzLjkxNSAxNy4xNzQgMzUuOTQ5LTc2LjU5OSAyMS41NzUtMTQ2LjE5NCA4My41MjctMTgwLjUzMSAxNDIuMzA2QzY0Ljc5NCAzNjAuNDA1IDQ0LjE3IDMxMC43MyA0NC4xNyAyNTYuMzIzem04MS44MDcgMTY3LjExM2MyMi4xMjctNDUuMjMzIDgyLjE3OC0xMDMuNjIyIDE2Ny41NzktMTMyLjc1NiAyOS43NCA3Ny4yODMgNDIuMDM5IDE0Mi4wNTMgNDUuMTg5IDE2MC42MzgtNjguMTEyIDI5LjAxMy0xNTAuMDE1IDIxLjA1My0yMTIuNzY4LTI3Ljg4MnptMjQ4LjM4IDguNDg5Yy0yLjE3MS0xMi44ODYtMTMuNDQ2LTc0Ljg5Ny00MS4xNTItMTUxLjAzMyA2Ni4zOC0xMC42MjYgMTI0LjcgNi43NjggMTMxLjk0NyA5LjA1NS05LjQ0MiA1OC45NDEtNDMuMjczIDEwOS44NDQtOTAuNzk1IDE0MS45Nzh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURyb3Bib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUyOCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjY0LjQgMTE2LjNsLTEzMiA4NC4zIDEzMiA4NC4zLTEzMiA4NC4zTDAgMjg0LjFsMTMyLjMtODQuM0wwIDExNi4zIDEzMi4zIDMybDEzMi4xIDg0LjN6TTEzMS42IDM5NS43bDEzMi04NC4zIDEzMiA4NC4zLTEzMiA4NC4zLTEzMi04NC4zem0xMzIuOC0xMTEuNmwxMzItODQuMy0xMzItODMuNkwzOTUuNyAzMiA1MjggMTE2LjNsLTEzMi4zIDg0LjNMNTI4IDI4NC44bC0xMzIuMyA4NC4zLTEzMS4zLTg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEcnVwYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzAzLjk3MywxMDguMTM2QzI2OC4yLDcyLjQ1OSwyMzQuMTg3LDM4LjM1LDIyNC4wNDcsMGMtOS45NTcsMzguMzUtNDQuMjUsNzIuNDU5LTgwLjAxOSwxMDguMTM2QzkwLjQ2NywxNjEuNywyOS43MTYsMjIyLjM1NiwyOS43MTYsMzEzLjQzNmMtMi4zMzcsMTA3LjMsODIuNzUyLDE5Ni4xOCwxOTAuMDUzLDE5OC41MTdTNDE1Ljk0OCw0MjkuMiw0MTguMjg1LDMyMS45cS4wOTEtNC4yMzEsMC04LjQ2NEM0MTguMjg1LDIyMi4zNTYsMzU3LjUzNCwxNjEuNywzMDMuOTczLDEwOC4xMzZabS0xNzQuMzI2LDIyM2ExMzAuMjgyLDEzMC4yODIsMCwwLDAtMTUuMjExLDI0LjE1Myw0Ljk3OCw0Ljk3OCwwLDAsMS0zLjMxOSwyLjc2NmgtMS42NTljLTQuMzMzLDAtOS4yMTktOC40ODEtOS4yMTktOC40ODFoMGMtMS4yOS0yLjAyOC0yLjQ4OS00LjE0OS0zLjY4Ny02LjM2MWwtLjgzLTEuNzUyYy0xMS4yNDctMjUuNzItMS40NzUtNjIuMzE4LTEuNDc1LTYyLjMxOGgwYTE2MC41ODUsMTYwLjU4NSwwLDAsMSwyMy4yMzEtNDkuODczQTI5MC44LDI5MC44LDAsMCwxLDEzOC41LDIwMS42MTNsOS4yMTksOS4yMTksNDMuNTEyLDQ0LjQzNGE0Ljk3OSw0Ljk3OSwwLDAsMSwwLDYuNjM4TDE0NS43OCwzMTIuMzNoMFptOTYuNjEyLDEyNy4zMTFhNjcuMiw2Ny4yLDAsMCwxLTQ5Ljc4MS0xMTEuOTE1YzE0LjItMTYuODcxLDMxLjUyOC0zMy40NjQsNTAuMzM0LTU1LjMxMywyMi4zMDksMjMuNzg1LDM2Ljg3NSw0MC4xLDUxLjE2NCw1Ny45ODZhMjguNDEzLDI4LjQxMywwLDAsMSwyLjk1LDQuNDI1LDY1LjkwNSw2NS45MDUsMCwwLDEsMTEuOTg0LDM3Ljk4MSw2Ni42NTEsNjYuNjUxLDAsMCwxLTY2LjQ2Niw2Ni44MzZaTTM1Mi4zNzEsMzUxLjZoMGE3Ljc0Myw3Ljc0MywwLDAsMS02LjE3Niw1LjM0N0gzNDQuOWExMS4yNDksMTEuMjQ5LDAsMCwxLTYuMjY5LTUuMDdoMGEzNDguMjEsMzQ4LjIxLDAsMCwwLTM5LjQ1Ni00OC45NTJMMjgxLjM4NywyODQuNDksMjIyLjMsMjIzLjE4NWE0OTcuODg4LDQ5Ny44ODgsMCwwLDEtMzUuNC0zNi4zMjIsMTIuMDMzLDEyLjAzMywwLDAsMC0uOTIyLTEuMzgyLDM1LjQsMzUuNCwwLDAsMS00LjctOS4yMTlWMTc0LjUxYTMxLjM0NiwzMS4zNDYsMCwwLDEsOS4yMTgtMjcuNjU2YzExLjQzMi0xMS40MzEsMjIuOTU1LTIyLjk1NCwzMy44MzMtMzQuOTM5LDExLjk4NCwxMy4yNzUsMjQuOCwyNiwzNy40MjgsMzguNjI3aDBhNTMwLjk5MSw1MzAuOTkxLDAsMCwxLDY5LjYsNzkuMSwxNDcuNDk0LDE0Ny40OTQsMCwwLDEsMjcuMDExLDgzLjhBMTM0LjEwOSwxMzQuMTA5LDAsMCwxLDM1Mi4zNzEsMzUxLjZaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUR5YWxvZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDE2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMydjExOS4yaDY0Vjk2aDEwNy4yQzI4NC42IDk2IDM1MiAxNzYuMiAzNTIgMjU1LjkgMzUyIDMzMiAyOTMuNCA0MTYgMTcxLjIgNDE2SDB2NjRoMTcxLjJDMzMxLjkgNDgwIDQxNiAzNjcuMyA0MTYgMjU1LjljMC01OC43LTIyLjEtMTEzLjQtNjIuMy0xNTQuM0MzMDguOSA1NiAyNDUuNyAzMiAxNzEuMiAzMkgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFYXJseWJpcmRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0ODAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMy4yIDQ3LjVjMS4yLTEzIDIxLjMtMTQgMzYuNi04LjcuOS4zIDI2LjIgOS43IDE5IDE1LjItMjcuOS03LjQtNTYuNCAxOC4yLTU1LjYtNi41em0tMjAxIDYuOWMzMC43LTguMSA2MiAyMCA2MS4xLTcuMS0xLjMtMTQuMi0yMy40LTE1LjMtNDAuMi05LjYtMSAuMy0yOC43IDEwLjUtMjAuOSAxNi43ek0zMTkuNCAxNjBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTYgMTYtNy4yIDE2LTE2LTcuMi0xNi0xNi0xNnptLTE1OS43IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTYgMTYtNy4yIDE2LTE2LTcuMi0xNi0xNi0xNnptMzE4LjUgMTYzLjJjLTkuOSAyNC00MC43IDExLTYzLjktMS4yLTEzLjUgNjkuMS01OC4xIDExMS40LTEyNi4zIDEyNC4yLjMuOS0yLS4xIDI0IDEgMzMuNiAxLjQgNjMuOC0zLjEgOTcuNC04LTE5LjgtMTMuOC0xMS40LTM3LjEtOS44LTM4LjEgMS40LS45IDE0LjcgMS43IDIxLjYgMTEuNSA4LjYtMTIuNSAyOC40LTE0LjggMzAuMi0xMy42IDEuNiAxLjEgNi42IDIwLjktNi45IDM0LjYgNC43LS45IDguMi0xLjYgOS44LTIuMSAyLjYtLjggMTcuNyAxMS4zIDMuMSAxMy4zLTE0LjMgMi4zLTIyLjYgNS4xLTQ3LjEgMTAuOC00NS45IDEwLjctODUuOSAxMS44LTExNy43IDEyLjhsMSAxMS42YzMuOCAxOC4xLTIzLjQgMjQuMy0yNy42IDYuMi44IDE3LjktMjcuMSAyMS44LTI4LjQtMWwtLjUgNS4zYy0uNyAxOC40LTI4LjQgMTcuOS0yOC4zLS42LTcuNSAxMy41LTI4LjEgNi44LTI2LjQtOC41bDEuMi0xMi40Yy0zNi43LjktNTkuNyAzLjEtNjEuOCAzLjEtMjAuOSAwLTIwLjktMzEuNiAwLTMxLjYgMi40IDAgMjcuNyAxLjMgNjMuMiAyLjgtNjEuMS0xNS41LTEwMy43LTU1LTExNC45LTExOC4yLTI1IDEyLjgtNTcuNSAyNi44LTY4LjIuOC0xMC41LTI1LjQgMjEuNS00Mi42IDY2LjgtNzMuNC43LTYuNiAxLjYtMTMuMyAyLjctMTkuOC0xNC40LTE5LjYtMTEuNi0zNi4zLTE2LjEtNjAuNC0xNi44IDIuNC0yMy4yLTkuMS0yMy42LTIzLjEuMy03LjMgMi4xLTE0LjkgMi40LTE1LjQgMS4xLTEuOCAxMC4xLTIgMTIuNy0yLjYgNi0zMS43IDUwLjYtMzMuMiA5MC45LTM0LjUgMTkuNy0yMS44IDQ1LjItNDEuNSA4MC45LTQ4LjNDMjAzLjMgMjkgMjE1LjIgOC41IDIxNi4yIDhjMS43LS44IDIxLjIgNC4zIDI2LjMgMjMuMiA1LjItOC44IDE4LjMtMTEuNCAxOS42LTEwLjcgMS4xLjYgNi40IDE1LTQuOSAyNS45IDQwLjMgMy41IDcyLjIgMjQuNyA5NiA1MC43IDM2LjEgMS41IDcxLjggNS45IDc3LjEgMzQgMi43LjYgMTEuNi44IDEyLjcgMi42LjMuNSAyLjEgOC4xIDIuNCAxNS40LS41IDEzLjktNi44IDI1LjQtMjMuNiAyMy4xLTMuMiAxNy4zLTIuNyAzMi45LTguNyA0Ny43IDIuNCAxMS43IDQgMjMuOCA0LjggMzYuNCAzNyAyNS40IDcwLjMgNDIuNSA2MC4zIDY2Ljl6TTIwNy40IDE1OS45Yy45LTQ0LTM3LjktNDIuMi03OC42LTQwLjMtMjEuNyAxLTM4LjkgMS45LTQ1LjUgMTMuOS0xMS40IDIwLjkgNS45IDkyLjkgMjMuMiAxMDEuMiA5LjggNC43IDczLjQgNy45IDg2LjMtNy4xIDguMi05LjQgMTUtNDkuNCAxNC42LTY3Ljd6bTUyIDU4LjNjLTQuMy0xMi40LTYtMzAuMS0xNS4zLTMyLjctMi0uNS05LS41LTExIDAtMTAgMi44LTEwLjggMjIuMS0xNyAzNy4yIDE1LjQgMCAxOS4zIDkuNyAyMy43IDkuNyA0LjMgMCA2LjMtMTEuMyAxOS42LTE0LjJ6bTEzNS43LTg0LjdjLTYuNi0xMi4xLTI0LjgtMTIuOS00Ni41LTEzLjktNDAuMi0xLjktNzguMi0zLjgtNzcuMyA0MC4zLS41IDE4LjMgNSA1OC4zIDEzLjIgNjcuOCAxMyAxNC45IDc2LjYgMTEuOCA4Ni4zIDcuMSAxNS44LTcuNiAzNi41LTc4LjkgMjQuMy0xMDEuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWJheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MDYgMTg5LjVsLTU0LjggMTA5LjktNTQuOS0xMDkuOWgtMzcuNWwxMC45IDIwLjZjLTExLjUtMTktMzUuOS0yNi02My4zLTI2LTMxLjggMC02Ny45IDguNy03MS41IDQzLjFoMzMuN2MxLjQtMTMuOCAxNS43LTIxLjggMzUtMjEuOCAyNiAwIDQxIDkuNiA0MSAzM3YzLjRjLTEyLjcgMC0yOCAuMS00MS43LjQtNDIuNC45LTY5LjYgMTAtNzYuNyAzNC40IDEtNS4yIDEuNS0xMC42IDEuNS0xNi4yIDAtNTIuMS0zOS43LTc2LjItNzUuNC03Ni4yLTIxLjMgMC00MyA1LjUtNTguNyAyNC4ydi04MC42aC0zMi4xdjE2OS41YzAgMTAuMy0uNiAyMi45LTEuMSAzMy4xaDMxLjVjLjctNi4zIDEuMS0xMi45IDEuMS0xOS41IDEzLjYgMTYuNiAzNS40IDI0LjkgNTguNyAyNC45IDM2LjkgMCA2NC45LTIxLjkgNzMuMy01NC4yLS41IDIuOC0uNyA1LjgtLjcgOSAwIDI0LjEgMjEuMSA0NSA2MC42IDQ1IDI2LjYgMCA0NS44LTUuNyA2MS45LTI1LjUgMCA2LjYuMyAxMy4zIDEuMSAyMC4yaDI5LjhjLS43LTguMi0xLTE3LjUtMS0yNi44di02NS42YzAtOS4zLTEuNy0xNy4yLTQuOC0yMy44bDYxLjUgMTE2LjEtMjguNSA1NC4xaDM1LjlMNjQwIDE4OS41ek0yNDMuNyAzMTMuOGMtMjkuNiAwLTUwLjItMjEuNS01MC4yLTUzLjggMC0zMi40IDIwLjYtNTMuOCA1MC4yLTUzLjggMjkuOCAwIDUwLjIgMjEuNCA1MC4yIDUzLjggMCAzMi4zLTIwLjQgNTMuOC01MC4yIDUzLjh6bTIwMC45LTQ3LjNjMCAzMC0xNy45IDQ4LjQtNTEuNiA0OC40LTI1LjEgMC0zNS0xMy40LTM1LTI1LjggMC0xOS4xIDE4LjEtMjQuNCA0Ny4yLTI1LjMgMTMuMS0uNSAyNy42LS42IDM5LjQtLjZ6bS00MTEuOSAxLjZoMTI4Ljh2LTguNWMwLTUxLjctMzMuMS03NS40LTc4LjQtNzUuNC01Ni44IDAtODMgMzAuOC04MyA3Ny42IDAgNDIuNSAyNS4zIDc0IDgyLjUgNzQgMzEuNCAwIDY4LTExLjcgNzQuNC00Ni4xaC0zMy4xYy0xMiAzNS44LTg3LjcgMzYuNy05MS4yLTIxLjZ6bTk1LTIxLjRIMzMuM2M2LjktNTYuNiA5Mi4xLTU0LjcgOTQuNCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFZGdlTGVnYWN5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1LjcxLDIyOC4xNmwuMzUtLjQ4YzAsLjE2LDAsLjMyLS4wNy40OFptNDYwLjU4LDE1LjUxYzAtNDQtNy43Ni04NC40Ni0yOC44MS0xMjIuNEM0MTYuNSw0Ny44OCwzNDMuOTEsOCwyNTguODksOCwxMTksNy43Miw0MC42MiwxMTMuMjEsMjYuMDYsMjI3LjY4YzQyLjQyLTYxLjMxLDExNy4wNy0xMjEuMzgsMjIwLjM3LTEyNSwwLDAsMTA5LjY3LDAsOTkuNDIsMTA1SDE3MGM2LjM3LTM3LjM5LDE4LjU1LTU5LDM0LjM0LTc4LjkzLTc1LjA1LDM0LjktMTIxLjg1LDk2LjEtMTIwLjc1LDE4OC4zMi44Myw3MS40NSw1MC4xMywxNDQuODQsMTIwLjc1LDE3Miw4My4zNSwzMS44NCwxOTIuNzcsNy4yLDI0MC4xMy0yMS4zM1YzNjMuMzFDMzYzLjYsNDE5LjgsMTczLjYsNDI0LjIzLDE3Mi4yMSwyOTUuNzRINDg2LjI5VjI0My42N1pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWRnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjAuMSAzNy40NEMxNjEuMSAxMi4yMyAyMDcuNy0uNzc1MyAyNTUgLjAwMTZDNDIzIC4wMDE2IDUxMiAxMjMuOCA1MTIgMjE5LjVDNTExLjkgMjUyLjIgNDk5IDI4My40IDQ3Ni4xIDMwNi43QzQ1My4yIDMyOS45IDQyMi4xIDM0My4yIDM4OS40IDM0My43QzMxNC4yIDM0My43IDI5Ny45IDMyMC42IDI5Ny45IDMxMS43QzI5Ny45IDMwNy45IDI5OS4xIDMwNS41IDMwMi43IDMwMi4zTDMwMy43IDMwMS4xTDMwNC4xIDI5OS41QzMxNC42IDI4OCAzMjAgMjczLjMgMzIwIDI1Ny45QzMyMCAxNzkuMiAyMzcuOCAxMTUuMiAxMzYgMTE1LjJDOTguNDYgMTE0LjkgNjEuNDYgMTI0LjEgMjguNDggMTQyLjFDNTUuNDggODQuNTggMTExLjIgNDQuNSAxMTkuOCAzOC4yOEMxMjAuNiAzNy43MyAxMjAuMSAzNy40NCAxMjAuMSAzNy40NFYzNy40NHpNMTM1LjcgMzU1LjVDMTM0LjMgMzg1LjUgMTQwLjMgNDE1LjUgMTUyLjEgNDQyLjdDMTY1LjcgNDY5LjEgMTg0LjggNDkzLjcgMjA4LjYgNTEyQzE0OS4xIDUwMC41IDk3LjExIDQ2OC4xIDU5LjIgNDIyLjdDMjEuMTIgMzc2LjMgMCAzMTguNCAwIDI1Ny45QzAgMjA2LjcgNjIuNCAxNjMuNSAxMzYgMTYzLjVDMTcyLjYgMTYyLjkgMjA4LjQgMTc0LjQgMjM3LjggMTk2LjJMMjM0LjIgMTk3LjRDMTgyLjcgMjE1IDEzNS43IDI4OC4xIDEzNS43IDM1NS41VjM1NS41ek00NjkuOCA0MDBMNDY5LjEgNDAwLjFDNDU3LjMgNDE4LjkgNDQzLjIgNDM1LjIgNDI2LjkgNDQ5LjZDMzk2LjEgNDc3LjYgMzU4LjggNDk1LjEgMzE4LjEgNDk5LjVDMjk5LjUgNDk5LjggMjgxLjMgNDk2LjMgMjY0LjMgNDg4LjFDMjM4LjcgNDc3LjggMjE3LjIgNDU4LjEgMjAyLjcgNDM1LjFDMTg4LjMgNDExLjIgMTgxLjYgMzgzLjQgMTgzLjcgMzU1LjVDMTgzLjEgMzM1LjQgMTg5LjEgMzE1LjIgMTk4LjcgMjk3LjNDMjEyLjYgMzMwLjQgMjM2LjIgMzU4LjYgMjY2LjMgMzc4LjFDMjk2LjQgMzk3LjYgMzMxLjggNDA3LjYgMzY3LjcgNDA2LjdDMzk4LjcgNDA3IDQyOS44IDQwMCA0NTcuOSAzODYuMkw0NTkuOCAzODUuM0M0NjMuNyAzODMgNDY3LjUgMzgxLjQgNDcxLjQgMzg1LjNDNDc1LjkgMzkwLjIgNDczLjIgMzk0LjUgNDcwLjIgMzk5LjNDNDcwIDM5OS41IDQ2OS45IDM5OS44IDQ2OS44IDQwMFY0MDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVsZW1lbnRvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0uMzYxIDI1NkMuMzYxIDM5NyAxMTQgNTExIDI1NSA1MTFDMzk3IDUxMSA1MTEgMzk3IDUxMSAyNTZDNTExIDExNiAzOTcgMi4wNSAyNTUgMi4wNUMxMTQgMi4wNSAuMzYxIDExNiAuMzYxIDI1NnpNMTkyIDE1MFYzNjNIMTQ5VjE1MEgxOTJ6TTIzNCAxNTBIMzYyVjE5M0gyMzRWMTUwek0zNjIgMjM1VjI3OEgyMzRWMjM1SDM2MnpNMjM0IDMyMEgzNjJWMzYzSDIzNFYzMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVsbG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExLjAzIDggMCAxMTkuMDMgMCAyNTZzMTExLjAzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMgMjQ4LTI0OFMzODQuOTcgOCAyNDggOHptMTQzLjg0IDI4NS4yQzM3NS4zMSAzNTguNTEgMzE1Ljc5IDQwNC44IDI0OCA0MDQuOHMtMTI3LjMxLTQ2LjI5LTE0My44NC0xMTEuNmMtMS42NS03LjQ0IDIuNDgtMTUuNzEgOS45Mi0xNy4zNiA3LjQ0LTEuNjUgMTUuNzEgMi40OCAxNy4zNiA5LjkyIDE0LjA1IDUyLjkxIDYyIDkwLjExIDExNi41NiA5MC4xMXMxMDIuNTEtMzcuMiAxMTYuNTYtOTAuMTFjMS42NS03LjQ0IDkuOTItMTIuNCAxNy4zNi05LjkyIDcuNDQgMS42NSAxMi40IDkuOTIgOS45MiAxNy4zNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRW1iZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjM5LjkgMjU0LjZjLTEuMS0xMC43LTEwLjctNi44LTEwLjctNi44cy0xNS42IDEyLjEtMjkuMyAxMC43Yy0xMy43LTEuMy05LjQtMzItOS40LTMyczMtMjguMS01LjEtMzAuNGMtOC4xLTIuNC0xOCA3LjMtMTggNy4zcy0xMi40IDEzLjctMTguMyAzMS4ybC0xLjYuNXMxLjktMzAuNi0uMy0zNy42Yy0xLjYtMy41LTE2LjQtMy4yLTE4LjggM3MtMTQuMiA0OS4yLTE1IDY3LjJjMCAwLTIzLjEgMTkuNi00My4zIDIyLjhzLTI1LTkuNC0yNS05LjQgNTQuOC0xNS4zIDUyLjktNTkuMS00NC4yLTI3LjYtNDktMjRjLTQuNiAzLjUtMjkuNCAxOC40LTM2LjYgNTkuNy0uMiAxLjQtLjcgNy41LS43IDcuNXMtMjEuMiAxNC4yLTMzIDE4YzAgMCAzMy01NS42LTcuMy04MC45LTExLjQtNi44LTIxLjMtLjUtMjcuMiA1LjMgMTMuNi0xNy4zIDQ2LjQtNjQuMiAzNi45LTEwNS4yLTUuOC0yNC40LTE4LTI3LjEtMjkuMi0yMy4xLTE3IDYuNy0yMy41IDE2LjctMjMuNSAxNi43cy0yMiAzMi0yNy4xIDc5LjUtMTIuNiAxMDUuMS0xMi42IDEwNS4xLTEwLjUgMTAuMi0yMC4yIDEwLjctNS40LTI4LjctNS40LTI4LjcgNy41LTQ0LjYgNy01Mi4xLTEuMS0xMS42LTkuOS0xNC4yYy04LjktMi43LTE4LjUgOC42LTE4LjUgOC42cy0yNS41IDM4LjctMjcuNyA0NC42bC0xLjMgMi40LTEuMy0xLjZzMTgtNTIuNy44LTUzLjUtMjguNSAxOC44LTI4LjUgMTguOC0xOS42IDMyLjgtMjAuNCAzNi41bC0xLjMtMS42czguMS0zOC4yIDYuNC00Ny42Yy0xLjYtOS40LTEwLjUtNy41LTEwLjUtNy41cy0xMS4zLTEuMy0xNC4yIDUuOS0xMy43IDU1LjMtMTUgNzAuN2MwIDAtMjguMiAyMC4yLTQ2LjggMjAuNC0xOC41LjMtMTYuNy0xMS44LTE2LjctMTEuOHM2OC0yMy4zIDQ5LjQtNjkuMmMtOC4zLTExLjgtMTgtMTUuNS0zMS43LTE1LjMtMTMuNy4zLTMwLjMgOC42LTQxLjMgMzMuMy01LjMgMTEuOC02LjggMjMtNy44IDMxLjUgMCAwLTEyLjMgMi40LTE4LjgtMi45cy0xMCAwLTEwIDAtMTEuMiAxNC0uMSAxOC4zIDI4LjEgNi4xIDI4LjEgNi4xYzEuNiA3LjUgNi4yIDE5LjUgMTkuNiAyOS43IDIwLjIgMTUuMyA1OC44LTEuMyA1OC44LTEuM2wxNS45LTguOHMuNSAxNC42IDEyLjEgMTYuNyAxNi40IDEgMzYuNS00Ny45YzExLjgtMjUgMTIuNi0yMy42IDEyLjYtMjMuNmwxLjMtLjNzLTkuMSA0Ni44LTUuNiA1OS43QzE4Ny43IDMxOS40IDIwMyAzMTggMjAzIDMxOHM4LjMgMi40IDE1LTIxLjIgMTkuNi00OS45IDE5LjYtNDkuOWgxLjZzLTUuNiA0OC4xIDMgNjMuNyAzMC45IDUuMyAzMC45IDUuMyAxNS42LTcuOCAxOC0xMC4yYzAgMCAxOC41IDE1LjggNDQuNiAxMi45IDU4LjMtMTEuNSA3OS4xLTI1LjkgNzkuMS0yNS45czEwIDI0LjQgNDEuMSAyNi43YzM1LjUgMi43IDU0LjgtMTguNiA1NC44LTE4LjZzLS4zIDEzLjUgMTIuMSAxOC42IDIwLjctMjIuOCAyMC43LTIyLjhsMjAuNy01Ny4yaDEuOXMxLjEgMzcuMyAyMS41IDQzLjIgNDctMTMuNyA0Ny0xMy43IDYuNC0zLjUgNS4zLTE0LjN6bS01NzggNS4zYy44LTMyIDIxLjgtNDUuOSAyOS0zOSA3LjMgNyA0LjYgMjItOS4xIDMxLjQtMTMuNyA5LjUtMTkuOSA3LjYtMTkuOSA3LjZ6bTI3Mi44LTEyMy44czE5LjEtNDkuNyAyMy42LTI1LjUtNDAgOTYuMi00MCA5Ni4yYy41LTE2LjIgMTYuNC03MC43IDE2LjQtNzAuN3ptMjIuOCAxMzguNGMtMTIuNiAzMy00My4zIDE5LjYtNDMuMyAxOS42cy0zLjUtMTEuOCA2LjQtNDQuOSAzMy4zLTIwLjIgMzMuMy0yMC4yIDE2LjIgMTIuNCAzLjYgNDUuNXptODQuNi0xNC42cy0zLTEwLjUgOC4xLTMwLjZjMTEtMjAuMiAxOS42LTkuMSAxOS42LTkuMXM5LjQgMTAuMi0xLjMgMjUuNS0yNi40IDE0LjItMjYuNCAxNC4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFbXBpcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg3LjYgNTQuMmMtMTAuOC0yLjItMjIuMS0zLjMtMzMuNS0zLjZWMzIuNGM3OC4xIDIuMiAxNDYuMSA0NCAxODQuNiAxMDYuNmwtMTUuOCA5LjFjLTYuMS05LjctMTIuNy0xOC44LTIwLjItMjcuMWwtMTggMTUuNWMtMjYtMjkuNi02MS40LTUwLjctMTAxLjktNTguNGw0LjgtMjMuOXpNNTMuNCAzMjIuNGwyMy03LjdjLTYuNC0xOC4zLTEwLTM4LjItMTAtNTguN3MzLjMtNDAuNCA5LjctNTguN2wtMjIuNy03LjdjMy42LTEwLjggOC4zLTIxLjMgMTMuNi0zMWwtMTUuOC05LjFDMzQgMTgxIDI0LjEgMjE3LjUgMjQuMSAyNTZzMTAgNzUgMjcuMSAxMDYuNmwxNS44LTkuMWMtNS4zLTEwLTkuNy0yMC4zLTEzLjYtMzEuMXpNMjEzLjEgNDM0Yy00MC40LTgtNzUuOC0yOS4xLTEwMS45LTU4LjdsLTE4IDE1LjhjLTcuNS04LjYtMTQuNC0xNy43LTIwLjItMjcuNGwtMTYgOS40YzM4LjUgNjIuMyAxMDYuOCAxMDQuMyAxODQuOSAxMDYuNnYtMTguM2MtMTEuMy0uMy0yMi43LTEuNy0zMy41LTMuNmw0LjctMjMuOHpNOTMuMyAxMjAuOWwxOCAxNS41YzI2LTI5LjYgNjEuNC01MC43IDEwMS45LTU4LjRsLTQuNy0yMy44YzEwLjgtMi4yIDIyLjEtMy4zIDMzLjUtMy42VjMyLjRDMTYzLjkgMzQuNiA5NS45IDc2LjQgNTcuNCAxMzlsMTUuOCA5LjFjNi05LjcgMTIuNi0xOC45IDIwLjEtMjcuMnptMzA5LjQgMjcwLjJsLTE4LTE1LjhjLTI2IDI5LjYtNjEuNCA1MC43LTEwMS45IDU4LjdsNC43IDIzLjhjLTEwLjggMS45LTIyLjEgMy4zLTMzLjUgMy42djE4LjNjNzguMS0yLjIgMTQ2LjQtNDQuMyAxODQuOS0xMDYuNmwtMTYuMS05LjRjLTUuNyA5LjctMTIuNiAxOC44LTIwLjEgMjcuNHpNNDk2IDI1NmMwIDEzNy0xMTEgMjQ4LTI0OCAyNDhTMCAzOTMgMCAyNTYgMTExIDggMjQ4IDhzMjQ4IDExMSAyNDggMjQ4em0tMTIuMiAwYzAtMTMwLjEtMTA1LjctMjM1LjgtMjM1LjgtMjM1LjhTMTIuMiAxMjUuOSAxMi4yIDI1NiAxMTcuOSA0OTEuOCAyNDggNDkxLjggNDgzLjggMzg2LjEgNDgzLjggMjU2em0tMzktMTA2LjZsLTE1LjggOS4xYzUuMyA5LjcgMTAgMjAuMiAxMy42IDMxbC0yMi43IDcuN2M2LjQgMTguMyA5LjcgMzguMiA5LjcgNTguN3MtMy42IDQwLjQtMTAgNTguN2wyMyA3LjdjLTMuOSAxMC44LTguMyAyMS0xMy42IDMxbDE1LjggOS4xQzQ2MiAzMzEgNDcxLjkgMjk0LjUgNDcxLjkgMjU2cy05LjktNzUtMjcuMS0xMDYuNnptLTE4MyAxNzcuN2MxNi4zLTMuMyAzMC40LTExLjYgNDAuNy0yMy41bDUxLjIgNDQuOGMxMS45LTEzLjYgMjEuMy0yOS4zIDI3LjEtNDYuOGwtNjQuMi0yMi4xYzIuNS03LjUgMy45LTE1LjIgMy45LTIzLjVzLTEuNC0xNi4xLTMuOS0yMy41bDY0LjUtMjIuMWMtNi4xLTE3LjQtMTUuNS0zMy4yLTI3LjQtNDYuOGwtNTEuMiA0NC44Yy0xMC4yLTExLjktMjQuNC0yMC41LTQwLjctMjMuOGwxMy4zLTY2LjRjLTguNi0xLjktMTcuNy0yLjgtMjcuMS0yLjgtOS40IDAtMTguNS44LTI3LjEgMi44bDEzLjMgNjYuNGMtMTYuMyAzLjMtMzAuNCAxMS45LTQwLjcgMjMuOGwtNTEuMi00NC44Yy0xMS45IDEzLjYtMjEuMyAyOS4zLTI3LjQgNDYuOGw2NC41IDIyLjFjLTIuNSA3LjUtMy45IDE1LjItMy45IDIzLjVzMS40IDE2LjEgMy45IDIzLjVsLTY0LjIgMjIuMWM1LjggMTcuNCAxNS4yIDMzLjIgMjcuMSA0Ni44bDUxLjItNDQuOGMxMC4yIDExLjkgMjQuNCAyMC4yIDQwLjcgMjMuNWwtMTMuMyA2Ni43YzguNiAxLjcgMTcuNyAyLjggMjcuMSAyLjggOS40IDAgMTguNS0xLjEgMjcuMS0yLjhsLTEzLjMtNjYuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRW52aXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJjNDc3LjYgMCAzNjYuNiAzMTcuMyAzNjcuMSAzNjYuM0w0NDggNDgwaC0yNmwtNzAuNC03MS4yYy0zOSA0LjItMTI0LjQgMzQuNS0yMTQuNC0zN0M0NyAzMDAuMyA1MiAyMTQuNyAwIDMyem03OS43IDQ2Yy00OS43LTIzLjUtNS4yIDkuMi01LjIgOS4yIDQ1LjIgMzEuMiA2NiA3My43IDkwLjIgMTE5LjkgMzEuNSA2MC4yIDc5IDEzOS43IDE0NC4yIDE2Ny43IDY1IDI4IDM0LjIgMTIuNSA2LTguNS0yOC4yLTIxLjItNjguMi04Ny05MS0xMzAuMi0zMS43LTYwLTYxLTExOC42LTE0NC4yLTE1OC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFcmxhbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODcuMiA1My41SDB2NDA1aDEwMC40Yy00OS43LTUyLjYtNzguOC0xMjUuMy03OC43LTIxMi4xLS4xLTc2LjcgMjQtMTQyLjcgNjUuNS0xOTIuOXptMjM4LjIgOS43Yy00NS45LjEtODUuMSAzMy41LTg5LjIgODMuMmgxNjkuOWMtMS4xLTQ5LjctMzQuNS04My4xLTgwLjctODMuMnptMjMwLjctOS42aC4zbC0uMS0uMXptLjMgMGMzMS40IDQyLjcgNDguNyA5Ny41IDQ2LjIgMTYyLjcuNSA2IC41IDExLjcgMCAyNC4xSDIzMC4yYy0uMiAxMDkuNyAzOC45IDE5NC45IDEzOC42IDE5NS4zIDY4LjUtLjMgMTE4LTUxIDE1MS45LTEwNi4xbDk2LjQgNDguMmMtMTcuNCAzMC45LTM2LjUgNTcuOC01Ny45IDgwLjhINjQwdi00MDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV0aGVyZXVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMS45IDI2MC44TDE2MCAzNTMuNiA4IDI2MC44IDE2MCAwbDE1MS45IDI2MC44ek0xNjAgMzgzLjRMOCAyOTAuNiAxNjAgNTEybDE1Mi0yMjEuNC0xNTIgOTIuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXRzeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMzQ4Yy0xLjc1IDEwLjc1LTEzLjc1IDExMC0xNS41IDEzMi0xMTcuODc5LTQuMjk5LTIxOS44OTUtNC43NDMtMzY4LjUgMHYtMjUuNWM0NS40NTctOC45NDggNjAuNjI3LTguMDE5IDYxLTM1LjI1IDEuNzkzLTcyLjMyMiAzLjUyNC0yNDQuMTQzIDAtMzIyLTEuMDI5LTI4LjQ2LTEyLjEzLTI2Ljc2NS02MS0zNnYtMjUuNWM3My44ODYgMi4zNTggMjU1LjkzMyA4LjU1MSAzNjIuOTk5LTMuNzUtMy41IDM4LjI1LTcuNzUgMTI2LjUtNy43NSAxMjYuNUgzMzJDMzIwLjk0NyAxMTUuNjY1IDMxMy4yNDEgNjggMjc3LjI1IDY4aC0xMzdjLTEwLjI1IDAtMTAuNzUgMy41LTEwLjc1IDkuNzVWMjQxLjVjNTggLjUgODguNS0yLjUgODguNS0yLjUgMjkuNzctLjk1MSAyNy41Ni04LjUwMiA0MC43NS02NS4yNTFoMjUuNzVjLTQuNDA3IDEwMS4zNTEtMy45MSA2MS44MjktMS43NSAxNjAuMjVIMjU3Yy05LjE1NS00MC4wODYtOS4wNjUtNjEuMDQ1LTM5LjUwMS02MS41IDAgMC0yMS41LTItODgtMnYxMzljMCAyNiAxNC4yNSAzOC4yNSA0NC4yNSAzOC4yNUgyNjNjNjMuNjM2IDAgNjYuNTY0LTI0Ljk5NiA5OC43NTEtOTkuNzVIMzg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFdmVybm90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjAuODIgMTMyLjIxYzEuNiAyMi4zMS0xNy41NSAyMS41OS0yMS42MSAyMS41OS02OC45MyAwLTczLjY0LTEtODMuNTggMy4zNC0uNTYuMjItLjc0IDAtLjM3LS4zN0wxMjMuNzkgNDYuNDVjLjM4LS4zNy42LS4yMi4zOC4zNy00LjM1IDkuOTktMy4zNSAxNS4wOS0zLjM1IDg1LjM5em03OSAzMDhjLTE0LjY4LTM3LjA4IDEzLTc2LjkzIDUyLjUyLTc2LjYyIDE3LjQ5IDAgMjIuNiAyMy4yMSA3Ljk1IDMxLjQyLTYuMTkgMy4zLTI0Ljk1IDEuNzQtMjUuMTQgMTkuMi0uMDUgMTcuMDkgMTkuNjcgMjUgMzEuMiAyNC44OUE0NS42NCA0NS42NCAwIDAgMCAzMTIgMzkzLjQ1di0uMDhjMC0xMS42My03Ljc5LTQ3LjIyLTQ3LjU0LTU1LjM0LTcuNzItMS41NC02NS02LjM1LTY4LjM1LTUwLjUyLTMuNzQgMTYuOTMtMTcuNCA2My40OS00My4xMSA2OS4wOS04Ljc0IDEuOTQtNjkuNjggNy42NC0xMTIuOTItMzYuNzcgMCAwLTE4LjU3LTE1LjIzLTI4LjIzLTU3Ljk1LTMuMzgtMTUuNzUtOS4yOC0zOS43LTExLjE0LTYyIDAtMTggMTEuMTQtMzAuNDUgMjUuMDctMzIuMiA4MSAwIDkwIDIuMzIgMTAxLTcuOCA5LjgyLTkuMjQgNy44LTE1LjUgNy44LTEwMi43OCAxLTguMyA3Ljc5LTMwLjgxIDUzLjQxLTI0LjE0IDYgLjg2IDMxLjkxIDQuMTggMzcuNDggMzAuNjRsNjQuMjYgMTEuMTVjMjAuNDMgMy43MSA3MC45NCA3IDgwLjYgNTcuOTQgMjIuNjYgMTIxLjA5IDguOTEgMjM4LjQ2IDcuOCAyMzguNDZDMzYyLjE1IDQ4NS41MyAyNjcuMDYgNDgwIDI2Ny4wNiA0ODBjLTE4Ljk1LS4yMy01NC4yNS05LjQtNjcuMjctMzkuODN6bTgwLjk0LTIwNC44NGMtMSAxLjkyLTIuMiA2IC44NSA3IDE0LjA5IDQuOTMgMzkuNzUgNi44NCA0NS44OCA1LjUzIDMuMTEtLjI1IDMuMDUtNC40MyAyLjQ4LTYuNjUtMy41My0yMS44NS00MC44My0yNi41LTQ5LjI0LTUuOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV4cGVkaXRlZHNzbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggNDMuNEMxMzAuNiA0My40IDM1LjQgMTM4LjYgMzUuNCAyNTZTMTMwLjYgNDY4LjYgMjQ4IDQ2OC42IDQ2MC42IDM3My40IDQ2MC42IDI1NiAzNjUuNCA0My40IDI0OCA0My40em0tOTcuNCAxMzIuOWMwLTUzLjcgNDMuNy05Ny40IDk3LjQtOTcuNHM5Ny40IDQzLjcgOTcuNCA5Ny40djI2LjZjMCA1LTMuOSA4LjktOC45IDguOWgtMTcuN2MtNSAwLTguOS0zLjktOC45LTguOXYtMjYuNmMwLTgyLjEtMTI0LTgyLjEtMTI0IDB2MjYuNmMwIDUtMy45IDguOS04LjkgOC45aC0xNy43Yy01IDAtOC45LTMuOS04LjktOC45di0yNi42ek0zODkuNyAzODBjMCA5LjctOCAxNy43LTE3LjcgMTcuN0gxMjRjLTkuNyAwLTE3LjctOC0xNy43LTE3LjdWMjM4LjNjMC05LjcgOC0xNy43IDE3LjctMTcuN2gyNDhjOS43IDAgMTcuNyA4IDE3LjcgMTcuN1YzODB6bS0yNDgtMTM3LjN2MTMyLjljMCAyLjUtMS45IDQuNC00LjQgNC40aC04LjljLTIuNSAwLTQuNC0xLjktNC40LTQuNFYyNDIuN2MwLTIuNSAxLjktNC40IDQuNC00LjRoOC45YzIuNSAwIDQuNCAxLjkgNC40IDQuNHptMTQxLjcgNDguN2MwIDEzLTcuMiAyNC40LTE3LjcgMzAuNHYzMS42YzAgNS0zLjkgOC45LTguOSA4LjloLTE3LjdjLTUgMC04LjktMy45LTguOS04Ljl2LTMxLjZjLTEwLjUtNi4xLTE3LjctMTcuNC0xNy43LTMwLjQgMC0xOS43IDE1LjgtMzUuNCAzNS40LTM1LjRzMzUuNSAxNS44IDM1LjUgMzUuNHpNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NzguM0MxMjEgNDg2LjMgMTcuNyAzODMgMTcuNyAyNTZTMTIxIDI1LjcgMjQ4IDI1LjcgNDc4LjMgMTI5IDQ3OC4zIDI1NiAzNzUgNDg2LjMgMjQ4IDQ4Ni4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlYm9va0YgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODAgMjk5LjNWNTEySDE5NlYyOTkuM2g4Ni41bDE4LTk3LjhIMTk2VjE2Ni45YzAtNTEuNyAyMC4zLTcxLjUgNzIuNy03MS41YzE2LjMgMCAyOS40IC40IDM3IDEuMlY3LjlDMjkxLjQgNCAyNTYuNCAwIDIzNi4yIDBDMTI5LjMgMCA4MCA1MC41IDgwIDE1OS40djQyLjFIMTR2OTcuOEg4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZWJvb2tNZXNzZW5nZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2LjU1IDhDMTE2LjUyIDggOCAxMTAuMzQgOCAyNDguNTdjMCA3Mi4zIDI5LjcxIDEzNC43OCA3OC4wNyAxNzcuOTQgOC4zNSA3LjUxIDYuNjMgMTEuODYgOC4wNSA1OC4yM0ExOS45MiAxOS45MiAwIDAgMCAxMjIgNTAyLjMxYzUyLjkxLTIzLjMgNTMuNTktMjUuMTQgNjIuNTYtMjIuN0MzMzcuODUgNTIxLjggNTA0IDQyMy43IDUwNCAyNDguNTcgNTA0IDExMC4zNCAzOTYuNTkgOCAyNTYuNTUgOHptMTQ5LjI0IDE4NS4xM2wtNzMgMTE1LjU3YTM3LjM3IDM3LjM3IDAgMCAxLTUzLjkxIDkuOTNsLTU4LjA4LTQzLjQ3YTE1IDE1IDAgMCAwLTE4IDBsLTc4LjM3IDU5LjQ0Yy0xMC40NiA3LjkzLTI0LjE2LTQuNi0xNy4xMS0xNS42N2w3My0xMTUuNTdhMzcuMzYgMzcuMzYgMCAwIDEgNTMuOTEtOS45M2w1OC4wNiA0My40NmExNSAxNSAwIDAgMCAxOCAwbDc4LjQxLTU5LjM4YzEwLjQ0LTcuOTggMjQuMTQgNC41NCAxNy4wOSAxNS42MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZWJvb2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDI1NkM1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMFMwIDExNC42IDAgMjU2QzAgMzc2IDgyLjcgNDc2LjggMTk0LjIgNTA0LjVWMzM0LjJIMTQxLjRWMjU2aDUyLjhWMjIyLjNjMC04Ny4xIDM5LjQtMTI3LjUgMTI1LTEyNy41YzE2LjIgMCA0NC4yIDMuMiA1NS43IDYuNFYxNzJjLTYtLjYtMTYuNS0xLTI5LjYtMWMtNDIgMC01OC4yIDE1LjktNTguMiA1Ny4yVjI1Nmg4My42bC0xNC40IDc4LjJIMjg3VjUxMC4xQzQxMy44IDQ5NC44IDUxMiAzODYuOSA1MTIgMjU2aDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhbnRhc3lGbGlnaHRHYW1lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMzIuODZMMzIuODYgMjU2IDI1NiA0NzkuMTQgNDc5LjE0IDI1NiAyNTYgMzIuODZ6TTg4LjM0IDI1NS44M2MxLjk2LTIgMTEuOTItMTIuMyA5Ni40OS05Ny40OCA0MS40NS00MS43NSA4Ni4xOS00My43NyAxMTkuNzctMTguNjkgMjQuNjMgMTguNCA2Mi4wNiA1OC45IDYyLjE1IDU5IC42OC43NCAxLjA3IDIuODYuNTggMy4zOC0xMS4yNyAxMS44NC0yMi42OCAyMy41NC0zMy41IDM0LjY5LTM0LjIxLTMyLjMxLTQwLjUyLTM4LjI0LTQ4LjUxLTQzLjk1LTE3Ljc3LTEyLjY5LTQxLjQtMTAuMTMtNTYuOTggNS4xLTIuMTcgMi4xMy0xLjc5IDMuNDMuMTIgNS4zNSAyLjk0IDIuOTUgMjguMSAyOC4zMyAzNS4wOSAzNS43OC0xMS45NSAxMS42LTIzLjY2IDIyLjk3LTM1LjY5IDM0LjY2LTEyLjAyLTEyLjU0LTI0LjQ4LTI1LjUzLTM2LjU0LTM4LjExLTIxLjM5IDIxLjA5LTQxLjY5IDQxLjExLTYxLjg1IDYwLjk5em0yMzQuODIgMTAxLjZjLTM1LjQ5IDM1LjQzLTc4LjA5IDM4LjE0LTEwNi45OSAyMC40Ny0yMi4wOC0xMy41LTM5LjM4LTMyLjA4LTcyLjkzLTY2Ljg0IDEyLjA1LTEyLjM3IDIzLjc5LTI0LjQyIDM1LjM3LTM2LjMxIDMzLjAyIDMxLjkxIDM3LjA2IDM2LjAxIDQ0LjY4IDQyLjA5IDE4LjQ4IDE0Ljc0IDQyLjUyIDEzLjY3IDU5LjMyLTEuOCAzLjY4LTMuMzkgMy42OS0zLjY0LjE0LTcuMjQtMTAuNTktMTAuNzMtMjEuMTktMjEuNDQtMzEuNzctMzIuMTgtMS4zMi0xLjM0LTMuMDMtMi40OC0uOC00LjY5IDEwLjc5LTEwLjcxIDIxLjQ4LTIxLjUyIDMyLjIxLTMyLjI5LjI2LS4yNi42NS0uMzggMS45MS0xLjA3IDEyLjM3IDEyLjg3IDI0LjkyIDI1LjkyIDM3LjI1IDM4Ljc1IDIxLjAxLTIwLjczIDQxLjI0LTQwLjY4IDYxLjI1LTYwLjQyIDEzLjY4IDEzLjQgMjcuMTMgMjYuNTggNDAuODYgNDAuMDMtMjAuMTcgMjAuODYtODEuNjggODIuNzEtMTAwLjUgMTAxLjV6TTI1NiAwTDAgMjU2bDI1NiAyNTYgMjU2LTI1NkwyNTYgMHpNMTYgMjU2TDI1NiAxNmwyNDAgMjQwLTI0MCAyNDBMMTYgMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGZWRleCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01ODYgMjg0LjVsNTMuMy01OS45aC02Mi40bC0yMS43IDI0LjgtMjIuNS0yNC44SDQxNHYtMTZoNTYuMXYtNDguMUgzMTguOVYyMzZoLS41Yy05LjYtMTEtMjEuNS0xNC44LTM1LjQtMTQuOC0yOC40IDAtNDkuOCAxOS40LTU3LjMgNDQuOS0xOC01OS40LTk3LjQtNTcuNi0xMjEuOS0xNHYtMjQuMkg0OXYtMjYuMmg2MHYtNDEuMUgwVjM0NWg0OXYtNzcuNWg0OC45Yy0xLjUgNS43LTIuMyAxMS44LTIuMyAxOC4yIDAgNzMuMSAxMDIuNiA5MS40IDEzMC4yIDIzLjdoLTQyYy0xNC43IDIwLjktNDUuOCA4LjktNDUuOC0xNC42aDg1LjVjMy43IDMwLjUgMjcuNCA1Ni45IDYwLjEgNTYuOSAxNC4xIDAgMjctNi45IDM0LjktMTguNmguNVYzNDVoMjEyLjJsMjIuMS0yNSAyMi4zIDI1SDY0MGwtNTQtNjAuNXptLTQ0Ni43LTE2LjZjNi4xLTI2LjMgNDEuNy0yNS42IDQ2LjUgMGgtNDYuNXptMTUzLjQgNDguOWMtMzQuNiAwLTM0LTYyLjggMC02Mi44IDMyLjYgMCAzNC41IDYyLjggMCA2Mi44em0xNjcuOCAxOS4xaC05NC40VjE2OS40aDk1djMwLjJINDA1djMzLjloNTUuNXYyOC4xaC01Ni4xdjQ0LjdoNTYuMXYyOS42em0tNDUuOS0zOS44di0yNC40aDU2LjF2LTQ0bDUwLjcgNTctNTAuNyA1N3YtNDUuNmgtNTYuMXptMTM4LjYgMTAuM2wtMjYuMSAyOS41SDQ4OWw0NS42LTUxLjItNDUuNi01MS4yaDM5LjdsMjYuNiAyOS4zIDI1LjYtMjkuM2gzOC41bC00NS40IDUxIDQ2IDUxLjRoLTQwLjVsLTI2LjMtMjkuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmVkb3JhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTS4wNDEzIDI1NS44Qy4xMjE5IDEzMi4yIDEwMC4zIDMyIDIyNCAzMkMzNDcuNyAzMiA0NDggMTMyLjMgNDQ4IDI1NkM0NDggMzc5LjcgMzQ3LjggNDc5LjkgMjI0LjEgNDgwSDUwLjkzQzIyLjg0IDQ4MCAuMDgzMiA0NTcuMyAuMDQxNiA0MjkuMkgwVjI1NS44SC4wNDEzek0zNDIuNiAxOTIuN0MzNDIuNiAxNTMgMzA3IDEyNC4yIDI2OS40IDEyNC4yQzIzNC41IDEyNC4yIDIwMy42IDE1MC41IDE5OS4zIDE4NC4xQzE5OS4xIDE4Ny45IDE5OC45IDE4OS4xIDE5OC45IDE5Mi42QzE5OC44IDIxMy43IDE5OC45IDIzNS40IDE5OC4xIDI1N0MxOTkgMjgzLjEgMTk5LjEgMzA5LjEgMTk4LjEgMzMzLjZDMTk4LjEgMzYwLjcgMTc4LjcgMzc5LjEgMTUzLjQgMzc5LjFDMTI4LjEgMzc5LjEgMTA3LjYgMzU4LjkgMTA3LjYgMzMzLjZDMTA4LjEgMzA1LjkgMTMwLjIgMjg4LjMgMTU2LjEgMjg3LjVIMTU2LjNMMTgyLjYgMjg3LjNWMjUwTDE1Ni4zIDI1MC4yQzEwOS4yIDI0OS44IDcxLjcyIDI4Ni43IDcwLjM2IDMzMy42QzcwLjM2IDM3OS4yIDEwNy45IDQxNi41IDE1My40IDQxNi41QzE5Ni40IDQxNi41IDIzMi4xIDM4Mi45IDIzNiAzNDAuOUwyMzYuMiAyODcuNEwyNjguOCAyODcuMUMyOTQuMSAyODcuMyAyOTMuOCAyNDkuMyAyNjguNiAyNDkuOEwyMzYuMiAyNTAuMUMyMzYuMiAyNDMuNyAyMzYuMyAyMzcuMyAyMzYuMyAyMzAuOUMyMzYuNCAyMTguMiAyMzYuNCAyMDUuNSAyMzYuMiAxOTIuN0MyMzYuMyAxNzYuMiAyNTIgMTYxLjUgMjY5LjQgMTYxLjVDMjg2LjkgMTYxLjUgMzA1LjMgMTcwLjIgMzA1LjMgMTkyLjdDMzA1LjMgMTk1LjkgMzA1LjIgMTk3LjggMzA1IDE5OUMzMDMuMSAyMDkuNSAzMTAuMiAyMTkuNCAzMjAuNyAyMjAuOUMzMzEuMyAyMjIuNCAzNDAuOSAyMTQuOCAzNDEuOSAyMDQuM0MzNDIuNSAyMDAuMSAzNDIuNiAxOTYuNCAzNDIuNiAxOTIuN0gzNDIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlnbWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgOTUuNzkyNEMxNCA0Mi44ODc3IDU2Ljg4NzggMCAxMDkuNzkzIDBIMjc0LjE2MUMzMjcuMDY2IDAgMzY5Ljk1NCA0Mi44ODc3IDM2OS45NTQgOTUuNzkyNEMzNjkuOTU0IDEyOS4yOTIgMzUyLjc1OCAxNTguNzc2IDMyNi43MTEgMTc1Ljg5N0MzNTIuNzU4IDE5My4wMTkgMzY5Ljk1NCAyMjIuNTAyIDM2OS45NTQgMjU2LjAwMkMzNjkuOTU0IDMwOC45MDcgMzI3LjA2NiAzNTEuNzk1IDI3NC4xNjEgMzUxLjc5NUgyNzIuMDgxQzI0Ny4yNzkgMzUxLjc5NSAyMjQuNjc4IDM0Mi4zNjkgMjA3LjY2NiAzMjYuOTA0VjQxNS4xNjdDMjA3LjY2NiA0NjguNzc3IDE2My42NTcgNTEyIDExMC4zMDkgNTEyQzU3LjUzNjEgNTEyIDE0IDQ2OS4yNDMgMTQgNDE2LjIwN0MxNCAzODIuNzA5IDMxLjE5NDUgMzUzLjIyNyA1Ny4yMzkyIDMzNi4xMDVDMzEuMTk0NSAzMTguOTgzIDE0IDI4OS41IDE0IDI1Ni4wMDJDMTQgMjIyLjUwMiAzMS4xOTYgMTkzLjAxOSA1Ny4yNDI1IDE3NS44OTdDMzEuMTk2IDE1OC43NzYgMTQgMTI5LjI5MiAxNCA5NS43OTI0Wk0xNzYuMjg4IDE5MS41ODdIMTA5Ljc5M0M3NC4yMTcyIDE5MS41ODcgNDUuMzc3OCAyMjAuNDI3IDQ1LjM3NzggMjU2LjAwMkM0NS4zNzc4IDI5MS40NCA3My45OTQ4IDMyMC4xOTQgMTA5LjM4MSAzMjAuNDE2QzEwOS41MTggMzIwLjQxNSAxMDkuNjU1IDMyMC40MTUgMTA5Ljc5MyAzMjAuNDE1SDE3Ni4yODhWMTkxLjU4N1pNMjA3LjY2NiAyNTYuMDAyQzIwNy42NjYgMjkxLjU3NyAyMzYuNTA1IDMyMC40MTcgMjcyLjA4MSAzMjAuNDE3SDI3NC4xNjFDMzA5LjczNyAzMjAuNDE3IDMzOC41NzYgMjkxLjU3NyAzMzguNTc2IDI1Ni4wMDJDMzM4LjU3NiAyMjAuNDI3IDMwOS43MzcgMTkxLjU4NyAyNzQuMTYxIDE5MS41ODdIMjcyLjA4MUMyMzYuNTA1IDE5MS41ODcgMjA3LjY2NiAyMjAuNDI3IDIwNy42NjYgMjU2LjAwMlpNMTA5Ljc5MyAzNTEuNzk1QzEwOS42NTUgMzUxLjc5NSAxMDkuNTE4IDM1MS43OTQgMTA5LjM4MSAzNTEuNzk0QzczLjk5NDggMzUyLjAxNSA0NS4zNzc4IDM4MC43NjkgNDUuMzc3OCA0MTYuMjA3QzQ1LjM3NzggNDUxLjY1MiA3NC42MDI1IDQ4MC42MjIgMTEwLjMwOSA0ODAuNjIyQzE0Ni41OTEgNDgwLjYyMiAxNzYuMjg4IDQ1MS4xODYgMTc2LjI4OCA0MTUuMTY3VjM1MS43OTVIMTA5Ljc5M1pNMTA5Ljc5MyAzMS4zNzc4Qzc0LjIxNzIgMzEuMzc3OCA0NS4zNzc4IDYwLjIxNzMgNDUuMzc3OCA5NS43OTI0QzQ1LjM3NzggMTMxLjM2OCA3NC4yMTcyIDE2MC4yMDcgMTA5Ljc5MyAxNjAuMjA3SDE3Ni4yODhWMzEuMzc3OEgxMDkuNzkzWk0yMDcuNjY2IDE2MC4yMDdIMjc0LjE2MUMzMDkuNzM3IDE2MC4yMDcgMzM4LjU3NiAxMzEuMzY4IDMzOC41NzYgOTUuNzkyNEMzMzguNTc2IDYwLjIxNzMgMzA5LjczNyAzMS4zNzc4IDI3NC4xNjEgMzEuMzc3OEgyMDcuNjY2VjE2MC4yMDdaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcmVmb3hCcm93c2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzMC4yMiAxMjcuNTQ4QzEzMC4zOCAxMjcuNTU4IDEzMC4zIDEyNy41NTggMTMwLjIyIDEyNy41NDhWMTI3LjU0OFpNNDgxLjY0IDE3Mi44OThDNDcxLjAzIDE0Ny4zOTggNDQ5LjU2IDExOS44OTggNDMyLjcgMTExLjE2OEM0NDYuNDIgMTM4LjA1OCA0NTQuMzcgMTY1LjA0OCA0NTcuNCAxODUuMTY4QzQ1Ny40MDUgMTg1LjMwNiA0NTcuNDIyIDE4NS40NDMgNDU3LjQ1IDE4NS41NzhDNDI5Ljg3IDExNi44MjggMzgzLjA5OCA4OS4xMDg5IDM0NC45IDI4Ljc0NzlDMzI5LjkwOCA1LjA1NzkyIDMzMy45NzYgMy41MTc5MiAzMzEuODIgNC4wODc5MkwzMzEuNyA0LjE1NzkyQzI4NC45OSAzMC4xMTA5IDI1Ni4zNjUgODIuNTI4OSAyNDkuMTIgMTI2Ljg5OEMyMzIuNTAzIDEyNy43NzEgMjE2LjIxOSAxMzEuODk1IDIwMS4xOSAxMzkuMDM1QzE5OS44MzggMTM5LjY0OSAxOTguNzM2IDE0MC43MDYgMTk4LjA2NiAxNDIuMDMxQzE5Ny4zOTYgMTQzLjM1NiAxOTcuMTk5IDE0NC44NyAxOTcuNTA2IDE0Ni4zMjNDMTk3LjcgMTQ3LjE2MiAxOTguMDY4IDE0Ny45NTEgMTk4LjU4NiAxNDguNjM5QzE5OS4xMDMgMTQ5LjMyNyAxOTkuNzYgMTQ5Ljg5OSAyMDAuNTEyIDE1MC4zMThDMjAxLjI2NCAxNTAuNzM3IDIwMi4wOTYgMTUwLjk5MyAyMDIuOTU0IDE1MS4wNzFDMjAzLjgxMSAxNTEuMTQ4IDIwNC42NzYgMTUxLjA0NSAyMDUuNDkxIDE1MC43NjhMMjA2LjAxMSAxNTAuNTU4QzIyMS41MTEgMTQzLjI1NSAyMzguNDA4IDEzOS4zOTMgMjU1LjU0MSAxMzkuMjM4QzMxOC4zNjkgMTM4LjY2OSAzNTIuNjk4IDE4My4yNjIgMzYzLjE2MSAyMDEuNTI4QzM1MC4xNjEgMTkyLjM3OCAzMjYuODExIDE4My4zMzggMzA0LjM0MSAxODcuMjQ4QzM5Mi4wODEgMjMxLjEwOCAzNjguNTQxIDM4MS43ODQgMjQ2Ljk1MSAzNzYuNDQ4QzE4Ny40ODcgMzczLjgzOCAxNDkuODgxIDMyNS40NjcgMTQ2LjQyMSAyODUuNjQ4QzE0Ni40MjEgMjg1LjY0OCAxNTcuNjcxIDI0My42OTggMjI3LjA0MSAyNDMuNjk4QzIzNC41NDEgMjQzLjY5OCAyNTUuOTcxIDIyMi43NzggMjU2LjM3MSAyMTYuNjk4QzI1Ni4yODEgMjE0LjY5OCAyMTMuODM2IDE5Ny44MjIgMTk3LjI4MSAxODEuNTE4QzE4OC40MzQgMTcyLjgwNSAxODQuMjI5IDE2OC42MTEgMTgwLjUxMSAxNjUuNDU4QzE3OC40OTkgMTYzLjc1IDE3Ni4zOTIgMTYyLjE1OCAxNzQuMjAxIDE2MC42ODhDMTY4LjYzOCAxNDEuMjMxIDE2OC4zOTkgMTIwLjYzOCAxNzMuNTEgMTAxLjA1OEMxNDguNDUgMTEyLjQ2OCAxMjguOTYgMTMwLjUwOCAxMTQuOCAxNDYuNDI4SDExNC42OEMxMDUuMDEgMTM0LjE3OCAxMDUuNjggOTMuNzc3OSAxMDYuMjUgODUuMzQ3OUMxMDYuMTMgODQuODE3OSA5OS4wMjIgODkuMDE1OSA5OC4xIDg5LjY1NzlDODkuNTM0MiA5NS43MTAzIDgxLjU1MjggMTAyLjU1IDc0LjI2IDExMC4wODhDNTcuOTY5IDEyNi42ODggMzAuMTI4IDE2MC4yNDIgMTguNzYgMjExLjMxOEMxNC4yMjQgMjMxLjcwMSAxMiAyNTUuNzM5IDEyIDI2My42MThDMTIgMzk4LjMxOCAxMjEuMjEgNTA3LjUwOCAyNTUuOTIgNTA3LjUwOEMzNzYuNTYgNTA3LjUwOCA0NzguOTM5IDQyMC4yODEgNDk2LjM1IDMwNC44ODhDNTA3LjkyMiAyMjguMTkyIDQ4MS42NCAxNzMuODIgNDgxLjY0IDE3Mi44OThaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcmVmb3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAzLjUyLDI0MS40OGMtLjEyLTEuNTYtLjI0LTMuMTItLjI0LTQuNjh2LS4xMmwtLjM2LTQuNjh2LS4xMmEyNDUuODYsMjQ1Ljg2LDAsMCwwLTcuMzItNDEuMTVjMC0uMTIsMC0uMTItLjEyLS4yNGwtMS4wOC00Yy0uMTItLjI0LS4xMi0uNDgtLjI0LS42LS4zNi0xLjItLjcyLTIuNTItMS4wOC0zLjcyLS4xMi0uMjQtLjEyLS42LS4yNC0uODQtLjM2LTEuMi0uNzItMi40LTEuMDgtMy40OC0uMTItLjM2LS4yNC0uNi0uMzYtMS0uMzYtMS4yLS43Mi0yLjI4LTEuMi0zLjQ4bC0uMzYtMS4wOGMtLjM2LTEuMDgtLjg0LTIuMjgtMS4yLTMuMzZhOC4yNyw4LjI3LDAsMCwwLS4zNi0xYy0uNDgtMS4wOC0uODQtMi4yOC0xLjMyLTMuMzYtLjEyLS4yNC0uMjQtLjYtLjM2LS44NC0uNDgtMS4yLTEtMi4yOC0xLjQ0LTMuNDgsMC0uMTItLjEyLS4yNC0uMTItLjM2LTEuNTYtMy44NC0zLjI0LTcuNjgtNS0xMS40bC0uMzYtLjcyYy0uNDgtMS0uODQtMS44LTEuMzItMi42NC0uMjQtLjQ4LS40OC0xLjA4LS43Mi0xLjU2LS4zNi0uODQtLjg0LTEuNTYtMS4yLTIuNC0uMzYtLjYtLjYtMS4yLTEtMS44cy0uODQtMS40NC0xLjItMi4yOGMtLjM2LS42LS43Mi0xLjMyLTEuMDgtMS45MnMtLjg0LTEuNDQtMS4yLTIuMTZhMTguMDcsMTguMDcsMCwwLDAtMS4yLTJjLS4zNi0uNzItLjg0LTEuMzItMS4yLTJzLS44NC0xLjMyLTEuMi0yLS44NC0xLjMyLTEuMi0xLjkyLS44NC0xLjQ0LTEuMzItMi4xNmExNS42MywxNS42MywwLDAsMC0xLjItMS44TDQ2My4yLDExOWExNS42MywxNS42MywwLDAsMC0xLjItMS44Yy0uNDgtLjcyLTEuMDgtMS41Ni0xLjU2LTIuMjgtLjM2LS40OC0uNzItMS4wOC0xLjA4LTEuNTZsLTEuOC0yLjUyYy0uMzYtLjQ4LS42LS44NC0xLTEuMzItMS0xLjMyLTEuOC0yLjUyLTIuNzYtMy43MmEyNDguNzYsMjQ4Ljc2LDAsMCwwLTIzLjUxLTI2LjY0QTE4Ni44MiwxODYuODIsMCwwLDAsNDEyLDYyLjQ2Yy00LTMuNDgtOC4xNi02LjcyLTEyLjQ4LTkuODRhMTYyLjQ5LDE2Mi40OSwwLDAsMC0yNC42LTE1LjEyYy0yLjQtMS4zMi00LjgtMi41Mi03LjItMy43MmEyNTQsMjU0LDAsMCwwLTU1LjQzLTE5LjU2Yy0xLjkyLS4zNi0zLjg0LS44NC01LjY0LTEuMmgtLjEyYy0xLS4xMi0xLjgtLjM2LTIuNzYtLjQ4YTIzNi4zNSwyMzYuMzUsMCwwLDAtMzgtNEgyNTUuMTRhMjM0LjYyLDIzNC42MiwwLDAsMC00NS40OCw1Yy0zMy41OSw3LjA4LTYzLjIzLDIxLjI0LTgyLjkxLDM5LTEuMDgsMS0xLjkyLDEuNjgtMi40LDIuMTZsLS40OC40OEgxMjRsLS4xMi4xMi4xMi0uMTJhLjEyLjEyLDAsMCwwLC4xMi0uMTJsLS4xMi4xMmEuNDIuNDIsMCwwLDEsLjI0LS4xMmMxNC42NC04Ljc2LDM0LjkyLTE2LDQ5LjQ0LTE5LjU2bDUuODgtMS40NGMuMzYtLjEyLjg0LS4xMiwxLjItLjI0LDEuNjgtLjM2LDMuMzYtLjcyLDUuMTYtMS4wOC4yNCwwLC42LS4xMi44NC0uMTJDMjUwLjk0LDIwLjk0LDMxOS4zNCw0MC4xNCwzNjcsODUuNjFhMTcxLjQ5LDE3MS40OSwwLDAsMSwyNi44OCwzMi43NmMzMC4zNiw0OS4yLDI3LjQ4LDExMS4xMSwzLjg0LDE0Ny41OS0zNC40NCw1My0xMTEuMzUsNzEuMjctMTU5LDI0Ljg0YTg0LjE5LDg0LjE5LDAsMCwxLTI1LjU2LTU5LDc0LjA1LDc0LjA1LDAsMCwxLDYuMjQtMzFjMS42OC0zLjg0LDEzLjA4LTI1LjY3LDE4LjI0LTI0LjU5LTEzLjA4LTIuNzYtMzcuNTUsMi42NC01NC43MSwyOC4xOS0xNS4zNiwyMi45Mi0xNC41Miw1OC4yLTUsODMuMjhhMTMyLjg1LDEzMi44NSwwLDAsMS0xMi4xMi0zOS4yNGMtMTIuMjQtODIuNTUsNDMuMzEtMTUzLDk0LjMxLTE3MC41MS0yNy40OC0yNC05Ni40Ny0yMi4zMS0xNDcuNzEsMTUuMzYtMjkuODgsMjItNTEuMjMsNTMuMTYtNjIuNTEsOTAuMzYsMS42OC0yMC44OCw5LjYtNTIuMDgsMjUuOC04My44OC0xNy4xNiw4Ljg4LTM5LDM3LTQ5LjgsNjIuODgtMTUuNiwzNy40My0yMSw4Mi4xOS0xNi4wOCwxMjQuNzkuMzYsMy4yNC43Miw2LjM2LDEuMDgsOS42LDE5LjkyLDExNy4xMSwxMjIsMjA2LjM4LDI0NC43OCwyMDYuMzhDMzkyLjc3LDUwMy40Miw1MDQsMzkyLjE5LDUwNCwyNTUsNTAzLjg4LDI1MC40OCw1MDMuNzYsMjQ1LjkyLDUwMy41MiwyNDEuNDhaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcnN0T3JkZXJBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExLjAzIDggMCAxMTkuMDMgMCAyNTZzMTExLjAzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMgMjQ4LTI0OFMzODQuOTcgOCAyNDggOHptMCA0ODguMjFDMTE1LjM0IDQ5Ni4yMSA3Ljc5IDM4OC42NiA3Ljc5IDI1NlMxMTUuMzQgMTUuNzkgMjQ4IDE1Ljc5IDQ4OC4yMSAxMjMuMzQgNDg4LjIxIDI1NiAzODAuNjYgNDk2LjIxIDI0OCA0OTYuMjF6bTAtNDU5LjkyQzEyNi42NiAzNi4yOSAyOC4yOSAxMzQuNjYgMjguMjkgMjU2UzEyNi42NiA0NzUuNzEgMjQ4IDQ3NS43MSA0NjcuNzEgMzc3LjM0IDQ2Ny43MSAyNTYgMzY5LjM0IDM2LjI5IDI0OCAzNi4yOXptMCA0MzEuMjJjLTExNi44MSAwLTIxMS41MS05NC42OS0yMTEuNTEtMjExLjUxUzEzMS4xOSA0NC40OSAyNDggNDQuNDkgNDU5LjUxIDEzOS4xOSA0NTkuNTEgMjU2IDM2NC44MSA0NjcuNTEgMjQ4IDQ2Ny41MXptMTg2LjIzLTE2Mi45OGExOTEuNjEzIDE5MS42MTMgMCAwIDEtMjAuMTMgNDguNjlsLTc0LjEzLTM1Ljg4IDYxLjQ4IDU0LjgyYTE5My41MTUgMTkzLjUxNSAwIDAgMS0zNy4yIDM3LjI5bC01NC44LTYxLjU3IDM1Ljg4IDc0LjI3YTE5MC45NDQgMTkwLjk0NCAwIDAgMS00OC42MyAyMC4yM2wtMjcuMjktNzguNDcgNC43OSA4Mi45M2MtOC42MSAxLjE4LTE3LjQgMS44LTI2LjMzIDEuOHMtMTcuNzItLjYyLTI2LjMzLTEuOGw0Ljc2LTgyLjQ2LTI3LjE1IDc4LjAzYTE5MS4zNjUgMTkxLjM2NSAwIDAgMS00OC42NS0yMC4ybDM1LjkzLTc0LjM0LTU0Ljg3IDYxLjY0YTE5My44NSAxOTMuODUgMCAwIDEtMzcuMjItMzcuMjhsNjEuNTktNTQuOS03NC4yNiAzNS45M2ExOTEuNjM4IDE5MS42MzggMCAwIDEtMjAuMTQtNDguNjlsNzcuODQtMjcuMTEtODIuMjMgNC43NmMtMS4xNi04LjU3LTEuNzgtMTcuMzItMS43OC0yNi4yMSAwLTkgLjYzLTE3Ljg0IDEuODItMjYuNTFsODIuMzggNC43Ny03Ny45NC0yNy4xNmExOTEuNzI2IDE5MS43MjYgMCAwIDEgMjAuMjMtNDguNjdsNzQuMjIgMzUuOTItNjEuNTItNTQuODZhMTkzLjg1IDE5My44NSAwIDAgMSAzNy4yOC0zNy4yMmw1NC43NiA2MS41My0zNS44My03NC4xN2ExOTEuNDkgMTkxLjQ5IDAgMCAxIDQ4LjY1LTIwLjEzbDI2Ljg3IDc3LjI1LTQuNzEtODEuNjFjOC42MS0xLjE4IDE3LjM5LTEuOCAyNi4zMi0xLjhzMTcuNzEuNjIgMjYuMzIgMS44bC00Ljc0IDgyLjE2IDI3LjA1LTc3Ljc2YzE3LjI3IDQuNSAzMy42IDExLjM1IDQ4LjYzIDIwLjE3bC0zNS44MiA3NC4xMiA1NC43Mi02MS40N2ExOTMuMTMgMTkzLjEzIDAgMCAxIDM3LjI0IDM3LjIzbC02MS40NSA1NC43NyA3NC4xMi0zNS44NmExOTEuNTE1IDE5MS41MTUgMCAwIDEgMjAuMiA0OC42NWwtNzcuODEgMjcuMSA4Mi4yNC00Ljc1YzEuMTkgOC42NiAxLjgyIDE3LjUgMS44MiAyNi40OSAwIDguODgtLjYxIDE3LjYzLTEuNzggMjYuMTlsLTgyLjEyLTQuNzUgNzcuNzIgMjcuMDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcnN0T3JkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuOSAyMjkuMmMuMS0uMS4yLS4zLjMtLjQgMCAuMSAwIC4zLS4xLjRoLS4yek0yMjQgOTYuNmMtNy4xIDAtMTQuNi42LTIxLjQgMS43bDMuNyA2Ny40LTIyLTY0Yy0xNC4zIDMuNy0yNy43IDkuNC00MCAxNi42bDI5LjQgNjEuNC00NS4xLTUwLjljLTExLjQgOC45LTIxLjcgMTkuMS0zMC42IDMwLjlsNTAuNiA0NS40LTYxLjEtMjkuN2MtNy4xIDEyLjMtMTIuOSAyNS43LTE2LjYgNDBsNjQuMyAyMi42LTY4LTRjLS45IDcuMS0xLjQgMTQuNi0xLjQgMjJzLjYgMTQuNiAxLjQgMjEuN2w2Ny43LTQtNjQgMjIuNmMzLjcgMTQuMyA5LjQgMjcuNyAxNi42IDQwLjNsNjEuMS0yOS43TDk3LjcgMzUyYzguOSAxMS43IDE5LjEgMjIuMyAzMC45IDMwLjlsNDQuOS01MC45LTI5LjUgNjEuNGMxMi4zIDcuNCAyNS43IDEzLjEgNDAgMTYuOWwyMi4zLTY0LjYtNCA2OGM3LjEgMS4xIDE0LjYgMS43IDIxLjcgMS43IDcuNCAwIDE0LjYtLjYgMjEuNy0xLjdsLTQtNjguNiAyMi42IDY1LjFjMTQuMy00IDI3LjctOS40IDQwLTE2LjlMMjc0LjkgMzMybDQ0LjkgNTAuOWMxMS43LTguOSAyMi0xOS4xIDMwLjYtMzAuOWwtNTAuNi00NS4xIDYxLjEgMjkuNGM3LjEtMTIuMyAxMi45LTI1LjcgMTYuNi00MC4zbC02NC0yMi4zIDY3LjQgNGMxLjEtNy4xIDEuNC0xNC4zIDEuNC0yMS43cy0uMy0xNC45LTEuNC0yMmwtNjcuNyA0IDY0LTIyLjNjLTMuNy0xNC4zLTkuMS0yOC0xNi42LTQwLjNsLTYwLjkgMjkuNyA1MC42LTQ1LjRjLTguOS0xMS43LTE5LjEtMjItMzAuNi0zMC45bC00NS4xIDUwLjkgMjkuNC02MS4xYy0xMi4zLTcuNC0yNS43LTEzLjEtNDAtMTYuOUwyNDEuNyAxNjZsNC02Ny43Yy03LjEtMS4yLTE0LjMtMS43LTIxLjctMS43ek00NDMuNCAxMjh2MjU2TDIyNCA1MTIgNC42IDM4NFYxMjhMMjI0IDBsMjE5LjQgMTI4em0tMTcuMSAxMC4zTDIyNCAyMC45IDIxLjcgMTM4LjN2MjM1LjFMMjI0IDQ5MS4xbDIwMi4zLTExNy43VjEzOC4zek0yMjQgMzcuMWwxODcuNyAxMDkuNHYyMTguOUwyMjQgNDc0LjkgMzYuMyAzNjUuNFYxNDYuNkwyMjQgMzcuMXptMCA1MC45Yy05Mi4zIDAtMTY2LjkgNzUuMS0xNjYuOSAxNjggMCA5Mi42IDc0LjYgMTY3LjcgMTY2LjkgMTY3LjcgOTIgMCAxNjYuOS03NS4xIDE2Ni45LTE2Ny43IDAtOTIuOS03NC45LTE2OC0xNjYuOS0xNjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcnN0ZHJhZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDE5MmgtNjR2MTI4SDE5MnYxMjhIMHYtMjUuNmgxNjYuNHYtMTI4aDEyOHYtMTI4SDM4NFYxOTJ6bS0yNS42IDM4LjR2MTI4aC0xMjh2MTI4SDY0VjUxMmgxOTJWMzg0aDEyOFYyMzAuNGgtMjUuNnptMjUuNiAxOTJoLTg5LjZWNTEySDMyMHYtNjRoNjR2LTI1LjZ6TTAgMHYzODRoMTI4VjI1NmgxMjhWMTI4aDEyOFYwSDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZsaWNrciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xNDQuNSAzMTljLTM1LjEgMC02My41LTI4LjQtNjMuNS02My41czI4LjQtNjMuNSA2My41LTYzLjUgNjMuNSAyOC40IDYzLjUgNjMuNS0yOC40IDYzLjUtNjMuNSA2My41em0xNTkgMGMtMzUuMSAwLTYzLjUtMjguNC02My41LTYzLjVzMjguNC02My41IDYzLjUtNjMuNSA2My41IDI4LjQgNjMuNSA2My41LTI4LjQgNjMuNS02My41IDYzLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZsaXBib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMydjQ0OGg0NDhWMzJIMHptMzU4LjQgMTc5LjJoLTg5LjZ2ODkuNmgtODkuNnY4OS42SDg5LjZWMTIxLjZoMjY4Ljh2ODkuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmx5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5Ny44IDQyNy44YzEyLjkgMTEuNyAzMy43IDMzLjMgMzMuMiA1MC43IDAgLjgtLjEgMS42LS4xIDIuNS0xLjggMTkuOC0xOC44IDMxLjEtMzkuMSAzMS0yNS0uMS0zOS45LTE2LjgtMzguNy0zNS44IDEtMTYuMiAyMC41LTM2LjcgMzIuNC00Ny42IDIuMy0yLjEgMi43LTIuNyA1LjYtMy42IDMuNCAwIDMuOS4zIDYuNyAyLjh6TTMzMS45IDY3LjNjLTE2LjMtMjUuNy0zOC42LTQwLjYtNjMuMy01Mi4xQzI0My4xIDQuNSAyMTQtLjIgMTkyIDBjLTQ0LjEgMC03MS4yIDEzLjItODEuMSAxNy4zQzU3LjMgNDUuMiAyNi41IDg3LjIgMjggMTU4LjZjNy4xIDgyLjIgOTcgMTc2IDE1NS44IDIzMy44IDEuNyAxLjYgNC41IDQuNSA2LjIgNS4xbDMuMy4xYzIuMS0uNyAxLjgtLjUgMy41LTIuMSA1Mi4zLTQ5LjIgMTQwLjctMTQ1LjggMTU1LjktMjE1LjcgNy0zOS4yIDMuMS03Mi41LTIwLjgtMTEyLjV6TTE4Ni44IDM1MS45Yy0yOC01MS4xLTY1LjItMTMwLjctNjkuMy0xODktMy40LTQ3LjUgMTEuNC0xMzEuMiA2OS4zLTEzNi43djMyNS43ek0zMjguNyAxODBjLTE2LjQgNTYuOC03Ny4zIDEyOC0xMTguOSAxNzAuM0MyMzcuNiAyOTguNCAyNzUgMjE3IDI3NyAxNTguNGMxLjYtNDUuOS05LjgtMTA1LjgtNDgtMTMxLjQgODguOCAxOC4zIDExNS41IDk4LjEgOTkuNyAxNTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvbnRBd2Vzb21lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkxLjcgOTZDMTA2LjMgODYuOCAxMTYgNzAuNSAxMTYgNTJDMTE2IDIzLjMgOTIuNyAwIDY0IDBTMTIgMjMuMyAxMiA1MmMwIDE2LjcgNy44IDMxLjUgMjAgNDFsMCAzIDAgMzUyIDAgNjQgNjQgMCAwLTY0IDM3My42IDBjMTQuNiAwIDI2LjQtMTEuOCAyNi40LTI2LjRjMC0zLjctLjgtNy4zLTIuMy0xMC43TDQzMiAyNzJsNjEuNy0xMzguOWMxLjUtMy40IDIuMy03IDIuMy0xMC43YzAtMTQuNi0xMS44LTI2LjQtMjYuNC0yNi40TDkxLjcgOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvbnRpY29uc0ZpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExNC40IDIyNGg5Mi40bC0xNS4yIDUxLjJoLTc2LjRWNDMzYzAgOC0yLjggOS4yIDQuNCAxMGw1OS42IDUuNlY0ODNIMHYtMzUuMmwyOS4yLTIuOGM3LjItLjggOS4yLTMuMiA5LjItMTAuOFYyNzguNGMwLTMuMi00LTMuMi04LTMuMkgwVjIyNGgzOC40di0yOC44YzAtNjggMzYuNC05NiAxMDYtOTYgNDYuOCAwIDg4LjggMTEuMiA4OC44IDcyLjRsLTY5LjYgOC40Yy40LTI1LjYtNi0zMS42LTIyLjQtMzEuNi0yNS4yIDAtMjYgMTMuNi0yNiAzNy42djMyYzAgMy4yLTQuOCA2LS44IDZ6TTM4NCA0ODNIMjQzLjJ2LTM0LjRsMjgtMy42YzcuMi0uOCAxMC40LTIuNCAxMC40LTEwVjI4N2MwLTUuNi00LTkuMi05LjItMTAuOGwtMzMuMi04LjggOS4yLTQwLjRoMTEwdjIwOGMwIDgtMy42IDguOCA0IDEwbDIxLjYgMy42VjQ4M3ptLTMwLTM0Ny4ybDEyLjQgNDUuNi0xMCAxMC00Mi44LTIyLjgtNDIuOCAyMi44LTEwLTEwIDEyLjQtNDUuNi0zMC0zNi40IDQuOC0xMGgzOEwzMDcuMiA1MUgzMjBsMjEuMiAzOC40aDM4bDQuOCAxMy4yLTMwIDMzLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvbnRpY29ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMydjQ0OGg0NDhWMzJ6bTE4NyAxNDAuOWMtMTguNCAwLTE5IDkuOS0xOSAyNy40djIzLjNjMCAyLjQtMy41IDQuNC0uNiA0LjRoNjcuNGwtMTEuMSAzNy4zSDE2OHYxMTIuOWMwIDUuOC0yIDYuNyAzLjIgNy4zbDQzLjUgNC4xdjI1LjFIODRWMzg5bDIxLjMtMmM1LjItLjYgNi43LTIuMyA2LjctNy45VjI2Ny43YzAtMi4zLTIuOS0yLjMtNS44LTIuM0g4NFYyMjhoMjh2LTIxYzAtNDkuNiAyNi41LTcwIDc3LjMtNzAgMzQuMSAwIDY0LjcgOC4yIDY0LjcgNTIuOGwtNTAuNyA2LjFjLjMtMTguNy00LjQtMjMtMTYuMy0yM3ptNzQuMyAyNDEuOHYtMjUuMWwyMC40LTIuNmM1LjItLjYgNy42LTEuNyA3LjYtNy4zVjI3MS44YzAtNC4xLTIuOS02LjctNi43LTcuOWwtMjQuMi02LjQgNi43LTI5LjVoODAuMnYxNTEuN2MwIDUuOC0yLjYgNi40IDIuOSA3LjNsMTUuNyAyLjZ2MjUuMXptODAuOC0yNTUuNWw5IDMzLjItNy4zIDcuMy0zMS4yLTE2LjYtMzEuMiAxNi42LTcuMy03LjMgOS0zMy4yLTIxLjgtMjQuMiAzLjUtOS42aDI3LjdsMTUuNS0yOGg5LjNsMTUuNSAyOGgyNy43bDMuNSA5LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvcnRBd2Vzb21lQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOCAyMzcuNGgtMjIuMmMtMi4xIDAtMy43IDEuNi0zLjcgMy43djUxLjdjMCAyLjEgMS42IDMuNyAzLjcgMy43SDIwOGMyLjEgMCAzLjctMS42IDMuNy0zLjd2LTUxLjdjMC0yLjEtMS42LTMuNy0zLjctMy43em0xMTguMiAwSDMwNGMtMi4xIDAtMy43IDEuNi0zLjcgMy43djUxLjdjMCAyLjEgMS42IDMuNyAzLjcgMy43aDIyLjJjMi4xIDAgMy43LTEuNiAzLjctMy43di01MS43Yy0uMS0yLjEtMS43LTMuNy0zLjctMy43em0xMzItMTI1LjFjLTIuMy0zLjItNC42LTYuNC03LjEtOS41LTkuOC0xMi41LTIwLjgtMjQtMzIuOC0zNC40LTQuNS0zLjktOS4xLTcuNi0xMy45LTExLjItMS42LTEuMi0zLjItMi4zLTQuOC0zLjVDMzcyIDM0LjEgMzQwLjMgMjAgMzA2IDEzYy0xNi4yLTMuMy0zMi45LTUtNTAtNXMtMzMuOSAxLjctNTAgNWMtMzQuMyA3LjEtNjYgMjEuMi05My4zIDQwLjgtMS42IDEuMS0zLjIgMi4zLTQuOCAzLjUtNC44IDMuNi05LjQgNy4zLTEzLjkgMTEuMi0zIDIuNi01LjkgNS4zLTguOCA4cy01LjcgNS41LTguNCA4LjRjLTUuNSA1LjctMTAuNyAxMS44LTE1LjYgMTgtMi40IDMuMS00LjggNi4zLTcuMSA5LjVDMjUuMiAxNTMgOC4zIDIwMi41IDguMyAyNTZjMCAyIC4xIDQgLjEgNiAuMS43LjEgMS4zLjEgMiAuMSAxLjMuMSAyLjcuMiA0IDAgLjguMSAxLjUuMSAyLjMgMCAxLjMuMSAyLjUuMiAzLjcuMS44LjEgMS42LjIgMi40LjEgMS4xLjIgMi4zLjMgMy41IDAgLjguMSAxLjYuMiAyLjQuMSAxLjIuMyAyLjQuNCAzLjYuMS44LjIgMS41LjMgMi4zLjEgMS4zLjMgMi42LjUgMy45LjEuNi4yIDEuMy4zIDEuOWwuOSA1LjdjLjEuNi4yIDEuMS4zIDEuNy4zIDEuMy41IDIuNy44IDQgLjIuOC4zIDEuNi41IDIuNC4yIDEgLjUgMi4xLjcgMy4yLjIuOS40IDEuNy42IDIuNi4yIDEgLjQgMiAuNyAzIC4yLjkuNSAxLjguNyAyLjcuMyAxIC41IDEuOS44IDIuOS4zLjkuNSAxLjguOCAyLjcuMi45LjUgMS45LjggMi44cy41IDEuOC44IDIuN2MuMyAxIC42IDEuOS45IDIuOC42IDEuNiAxLjEgMy4zIDEuNyA0LjkuNCAxIC43IDEuOSAxIDIuOC4zIDEgLjcgMiAxLjEgMyAuMy44LjYgMS41LjkgMi4zbDEuMiAzYy4zLjcuNiAxLjUuOSAyLjIuNCAxIC45IDIgMS4zIDNsLjkgMi4xYy41IDEgLjkgMiAxLjQgMyAuMy43LjYgMS4zLjkgMiAuNSAxIDEgMi4xIDEuNSAzLjEuMi42LjUgMS4xLjggMS43LjYgMS4xIDEuMSAyLjIgMS43IDMuMy4xLjIuMi4zLjMuNSAyLjIgNC4xIDQuNCA4LjIgNi44IDEyLjIuMi40LjUuOC43IDEuMi43IDEuMSAxLjMgMi4yIDIgMy4zLjMuNS42LjkuOSAxLjQuNiAxLjEgMS4zIDIuMSAyIDMuMi4zLjUuNi45LjkgMS40LjcgMS4xIDEuNCAyLjEgMi4xIDMuMi4yLjQuNS44LjggMS4yLjcgMS4xIDEuNSAyLjIgMi4zIDMuMy4yLjIuMy41LjUuNyAzNy41IDUxLjcgOTQuNCA4OC41IDE2MCA5OS40LjkuMSAxLjcuMyAyLjYuNCAxIC4yIDIuMS40IDMuMS41czEuOS4zIDIuOC40YzEgLjIgMiAuMyAzIC40LjkuMSAxLjkuMiAyLjkuM3MxLjkuMiAyLjkuMyAyLjEuMiAzLjEuM2MuOS4xIDEuOC4xIDIuNy4yIDEuMS4xIDIuMy4xIDMuNC4yLjggMCAxLjcuMSAyLjUuMSAxLjMgMCAyLjYuMSAzLjkuMS43LjEgMS40LjEgMi4xLjEgMiAuMSA0IC4xIDYgLjFzNC0uMSA2LS4xYy43IDAgMS40LS4xIDIuMS0uMSAxLjMgMCAyLjYgMCAzLjktLjEuOCAwIDEuNy0uMSAyLjUtLjEgMS4xLS4xIDIuMy0uMSAzLjQtLjIuOSAwIDEuOC0uMSAyLjctLjIgMS0uMSAyLjEtLjIgMy4xLS4zczEuOS0uMiAyLjktLjNjLjktLjEgMS45LS4yIDIuOS0uM3MyLS4zIDMtLjQgMS45LS4zIDIuOC0uNGMxLS4yIDIuMS0uMyAzLjEtLjUuOS0uMSAxLjctLjMgMi42LS40IDY1LjYtMTEgMTIyLjUtNDcuNyAxNjAuMS0xMDIuNC4yLS4yLjMtLjUuNS0uNy44LTEuMSAxLjUtMi4yIDIuMy0zLjMuMi0uNC41LS44LjgtMS4yLjctMS4xIDEuNC0yLjEgMi4xLTMuMi4zLS41LjYtLjkuOS0xLjQuNi0xLjEgMS4zLTIuMSAyLTMuMi4zLS41LjYtLjkuOS0xLjQuNy0xLjEgMS4zLTIuMiAyLTMuMy4yLS40LjUtLjguNy0xLjIgMi40LTQgNC42LTguMSA2LjgtMTIuMi4xLS4yLjItLjMuMy0uNS42LTEuMSAxLjEtMi4yIDEuNy0zLjMuMi0uNi41LTEuMS44LTEuNy41LTEgMS0yLjEgMS41LTMuMS4zLS43LjYtMS4zLjktMiAuNS0xIDEtMiAxLjQtM2wuOS0yLjFjLjUtMSAuOS0yIDEuMy0zIC4zLS43LjYtMS41LjktMi4ybDEuMi0zYy4zLS44LjYtMS41LjktMi4zLjQtMSAuNy0yIDEuMS0zcy43LTEuOSAxLTIuOGMuNi0xLjYgMS4yLTMuMyAxLjctNC45LjMtMSAuNi0xLjkuOS0yLjhzLjUtMS44LjgtMi43Yy4yLS45LjUtMS45LjgtMi44cy42LTEuOC44LTIuN2MuMy0xIC41LTEuOS44LTIuOS4yLS45LjUtMS44LjctMi43LjItMSAuNS0yIC43LTMgLjItLjkuNC0xLjcuNi0yLjYuMi0xIC41LTIuMS43LTMuMi4yLS44LjMtMS42LjUtMi40LjMtMS4zLjYtMi43LjgtNCAuMS0uNi4yLTEuMS4zLTEuN2wuOS01LjdjLjEtLjYuMi0xLjMuMy0xLjkuMS0xLjMuMy0yLjYuNS0zLjkuMS0uOC4yLTEuNS4zLTIuMy4xLTEuMi4zLTIuNC40LTMuNiAwLS44LjEtMS42LjItMi40LjEtMS4xLjItMi4zLjMtMy41LjEtLjguMS0xLjYuMi0yLjQuMSAxLjcuMS41LjItLjcgMC0uOC4xLTEuNS4xLTIuMy4xLTEuMy4yLTIuNy4yLTQgLjEtLjcuMS0xLjMuMS0yIC4xLTIgLjEtNCAuMS02IDAtNTMuNS0xNi45LTEwMy00NS44LTE0My43ek00NDggMzcxLjVjLTkuNCAxNS41LTIwLjYgMjkuOS0zMy42IDQyLjktMjAuNiAyMC42LTQ0LjUgMzYuNy03MS4yIDQ4LTEzLjkgNS44LTI4LjIgMTAuMy00Mi45IDEzLjJ2LTc1LjhjMC01OC42LTg4LjYtNTguNi04OC42IDB2NzUuOGMtMTQuNy0yLjktMjktNy4zLTQyLjktMTMuMi0yNi43LTExLjMtNTAuNi0yNy40LTcxLjItNDgtMTMtMTMtMjQuMi0yNy40LTMzLjYtNDIuOXYtNzEuM2MwLTIuMSAxLjYtMy43IDMuNy0zLjdoMjIuMWMyLjEgMCAzLjcgMS42IDMuNyAzLjdWMzI2aDI5LjZWMTgyYzAtMi4xIDEuNi0zLjcgMy43LTMuN2gyMi4xYzIuMSAwIDMuNyAxLjYgMy43IDMuN3YyNS45aDI5LjVWMTgyYzAtMi4xIDEuNi0zLjcgMy43LTMuN0gyMDhjMi4xIDAgMy43IDEuNiAzLjcgMy43djI1LjloMjkuNVYxODJjMC00LjggNi41LTMuNyA5LjUtMy43Vjg4LjFjLTQuNC0yLTcuNC02LjctNy40LTExLjUgMC0xNi44IDI1LjQtMTYuOCAyNS40IDAgMCA0LjgtMyA5LjQtNy40IDExLjVWOTJjNi4zLTEuNCAxMi43LTIuMyAxOS4yLTIuMyA5LjQgMCAxOC40IDMuNSAyNi4zIDMuNSA3LjIgMCAxNS4yLTMuNSAxOS40LTMuNSAyLjEgMCAzLjcgMS42IDMuNyAzLjd2NDguNGMwIDUuNi0xOC43IDYuNS0yMi40IDYuNS04LjYgMC0xNi42LTMuNS0yNS40LTMuNS03IDAtMTQuMSAxLjItMjAuOCAyLjh2MzAuN2MzIDAgOS41LTEuMSA5LjUgMy43djI1LjloMjkuNVYxODJjMC0yLjEgMS42LTMuNyAzLjctMy43aDIyLjJjMi4xIDAgMy43IDEuNiAzLjcgMy43djI1LjloMjkuNVYxODJjMC0yLjEgMS42LTMuNyAzLjctMy43aDIyLjFjMi4xIDAgMy43IDEuNiAzLjcgMy43djE0NGgyOS41di0yNS44YzAtMi4xIDEuNi0zLjcgMy43LTMuN2gyMi4yYzIuMSAwIDMuNyAxLjYgMy43IDMuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9ydEF3ZXNvbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg5LjIgMjg3LjloLTI3LjRjLTIuNiAwLTQuNiAyLTQuNiA0LjZ2MzJoLTM2LjZWMTQ2LjJjMC0yLjYtMi00LjYtNC42LTQuNmgtMjcuNGMtMi42IDAtNC42IDItNC42IDQuNnYzMmgtMzYuNnYtMzJjMC0yLjYtMi00LjYtNC42LTQuNmgtMjcuNGMtMi42IDAtNC42IDItNC42IDQuNnYzMmgtMzYuNnYtMzJjMC02LTgtNC42LTExLjctNC42di0zOGM4LjMtMiAxNy4xLTMuNCAyNS43LTMuNCAxMC45IDAgMjAuOSA0LjMgMzEuNCA0LjMgNC42IDAgMjcuNy0xLjEgMjcuNy04di02MGMwLTIuNi0yLTQuNi00LjYtNC42LTUuMSAwLTE1LjEgNC4zLTI0IDQuMy05LjcgMC0yMC45LTQuMy0zMi42LTQuMy04IDAtMTYgMS4xLTIzLjcgMi45di00LjljNS40LTIuNiA5LjEtOC4zIDkuMS0xNC4zIDAtMjAuNy0zMS40LTIwLjgtMzEuNCAwIDAgNiAzLjcgMTEuNyA5LjEgMTQuM3YxMTEuN2MtMy43IDAtMTEuNy0xLjQtMTEuNyA0LjZ2MzJoLTM2LjZ2LTMyYzAtMi42LTItNC42LTQuNi00LjZoLTI3LjRjLTIuNiAwLTQuNiAyLTQuNiA0LjZ2MzJIMTI4di0zMmMwLTIuNi0yLTQuNi00LjYtNC42SDk2Yy0yLjYgMC00LjYgMi00LjYgNC42djE3OC4zSDU0Ljh2LTMyYzAtMi42LTItNC42LTQuNi00LjZIMjIuOGMtMi42IDAtNC42IDItNC42IDQuNlY1MTJoMTgyLjl2LTk2YzAtNzIuNiAxMDkuNy03Mi42IDEwOS43IDB2OTZoMTgyLjlWMjkyLjVjLjEtMi42LTEuOS00LjYtNC41LTQuNnptLTI4OC4xLTQuNWMwIDIuNi0yIDQuNi00LjYgNC42aC0yNy40Yy0yLjYgMC00LjYtMi00LjYtNC42di02NGMwLTIuNiAyLTQuNiA0LjYtNC42aDI3LjRjMi42IDAgNC42IDIgNC42IDQuNnY2NHptMTQ2LjQgMGMwIDIuNi0yIDQuNi00LjYgNC42aC0yNy40Yy0yLjYgMC00LjYtMi00LjYtNC42di02NGMwLTIuNiAyLTQuNiA0LjYtNC42aDI3LjRjMi42IDAgNC42IDIgNC42IDQuNnY2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9ydW1iZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS44IDMwOS43QzIgMjkyLjcgMCAyNzUuNSAwIDI1OC4zIDAgMTM1IDk5LjggMzUgMjIzLjEgMzVjMTYuNiAwIDMzLjMgMiA0OS4zIDUuNUMxNDkgODcuNSA1MS45IDE4NiA1LjggMzA5Ljd6bTM5Mi45LTE4OS4yQzM4NSAxMDMgMzY5IDg3LjggMzUwLjkgNzUuMmMtMTQ5LjYgNDQuMy0yNjYuMyAxNjIuMS0zMDkuNyAzMTIgMTIuNSAxOC4xIDI4IDM1LjYgNDUuMiA0OSA0My4xLTE1MS4zIDE2MS4yLTI3MS43IDMxMi4zLTMxNS43em0xNS44IDI1Mi43YzE1LjItMjUuMSAyNS40LTUzLjcgMjkuNS04Mi44LTc5LjQgNDIuOS0xNDUgMTEwLjYtMTg3LjYgMTkwLjMgMzAtNC40IDU4LjktMTUuMyA4NC42LTMxLjMgMzUgMTMuMSA3MC45IDI0LjMgMTA3IDMzLjYtOS4zLTM2LjUtMjAuNC03NC41LTMzLjUtMTA5Ljh6bTI5LjctMTQ1LjVjLTIuNi0xOS41LTcuOS0zOC43LTE1LjgtNTYuOEMyOTAuNSAyMTYuNyAxODIgMzI3LjUgMTM3LjEgNDY2YzE4LjEgNy42IDM3IDEyLjUgNTYuNiAxNS4yQzI0MCAzNjcuMSAzMzAuNSAyNzQuNCA0NDQuMiAyMjcuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm91cnNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzY4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjMuMSAzSDQ5LjlDMTIuNCAzIDAgMzEuMyAwIDQ5LjF2NDMzLjhjMCAyMC4zIDEyLjEgMjcuNyAxOC4yIDMwLjEgNi4yIDIuNSAyMi44IDQuNiAzMi45LTcuMUMxODAgMzU2LjUgMTgyLjIgMzU0IDE4Mi4yIDM1NGMzLjEtMy40IDMuNC0zLjEgNi44LTMuMWg4My40YzM1LjEgMCA0MC42LTI1LjIgNDQuMy0zOS43bDQ4LjYtMjQzQzM3My44IDI1LjggMzYzLjEgMyAzMjMuMSAzem0tMTYuMyA3My44bC0xMS40IDU5LjdjLTEuMiA2LjUtOS41IDEzLjItMTYuOSAxMy4ySDE3Mi4xYy0xMiAwLTIwLjYgOC4zLTIwLjYgMjAuM3YxM2MwIDEyIDguNiAyMC42IDIwLjYgMjAuNmg5MC40YzguMyAwIDE2LjYgOS4yIDE0LjggMTguMi0xLjggOC45LTEwLjUgNTMuOC0xMS40IDU4LjgtLjkgNC45LTYuOCAxMy41LTE2LjkgMTMuNWgtNzMuNWMtMTMuNSAwLTE3LjIgMS44LTI2LjUgMTIuNiAwIDAtOC45IDExLjQtODkuNSAxMDguMy0uOS45LTEuOC42LTEuOC0uM1Y3NS45YzAtNy43IDYuOC0xNi42IDE2LjYtMTYuNmgyMTljOC4yIDAgMTUuNiA3LjcgMTMuNSAxNy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGcmVlQ29kZUNhbXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTcuMjIsOTYuMjFjMTAuMzYtMTAuNjUsMTYtMTcuMTIsMTYtMjEuOSwwLTIuNzYtMS45Mi01LjUxLTMuODMtNy40MkExNC44MSwxNC44MSwwLDAsMCwxMDEsNjQuMDVjLTguNDgsMC0yMC45Miw4Ljc5LTM1Ljg0LDI1LjY5QzIzLjY4LDEzNywyLjUxLDE4Mi44MSwzLjM3LDI1MC4zNHMxNy40NywxMTcsNTQuMDYsMTYxLjg3Qzc2LjIyLDQzNS44Niw5MC42Miw0NDgsMTAwLjksNDQ4YTEzLjU1LDEzLjU1LDAsMCwwLDguMzctMy44NGMxLjkxLTIuNzYsMy44MS01LjYzLDMuODEtOC4zOCwwLTUuNjMtMy44Ni0xMi4yLTEzLjItMjAuNTUtNDQuNDUtNDIuMzMtNjcuMzItOTctNjcuNDgtMTY1QzMyLjI1LDE4OC44LDU0LDEzNy44Myw5Ny4yMiw5Ni4yMVpNMjM5LjQ3LDQyMC4wN2MuNTguMzcuOTEuNTUuOTEuNTVabTkzLjc5LjU1LjE3LS4xM0MzMzMuMjQsNDIwLjYyLDMzMy4xNyw0MjAuNjcsMzMzLjI2LDQyMC42MlptMy4xMy0xNTguMThjLTE2LjI0LTQuMTUsNTAuNDEtODIuODktNjguMDUtMTc3LjE3LDAsMCwxNS41NCw0OS4zOC02Mi44MywxNTkuNTctNzQuMjcsMTA0LjM1LDIzLjQ2LDE2OC43MywzNCwxNzUuMjMtNi43My00LjM1LTQ3LjQtMzUuNyw5LjU1LTEyOC42NCwxMS0xOC4zLDI1LjUzLTM0Ljg3LDQzLjUtNzIuMTYsMCwwLDE1LjkxLDIyLjQ1LDcuNiw3MS4xM0MyODcuNywzNjQsMzU0LDM0Mi45MSwzNTUsMzQzLjk0YzIyLjc1LDI2Ljc4LTE3LjcyLDczLjUxLTIxLjU4LDc2LjU1LDUuNDktMy42NSwxMTcuNzEtNzgsMzMtMTg4LjFDMzYwLjQzLDIzOC40LDM1Mi42MiwyNjYuNTksMzM2LjM5LDI2Mi40NFpNNTEwLjg4LDg5LjY5QzQ5Niw3Mi43OSw0ODMuNTIsNjQsNDc1LDY0YTE0LjgxLDE0LjgxLDAsMCwwLTguMzksMi44NGMtMS45MSwxLjkxLTMuODMsNC42Ni0zLjgzLDcuNDIsMCw0Ljc4LDUuNiwxMS4yNiwxNiwyMS45LDQzLjIzLDQxLjYxLDY1LDkyLjU5LDY0LjgyLDE1NC4wNi0uMTYsNjgtMjMsMTIyLjYzLTY3LjQ4LDE2NS05LjM0LDguMzUtMTMuMTgsMTQuOTItMTMuMiwyMC41NSwwLDIuNzUsMS45LDUuNjIsMy44MSw4LjM4QTEzLjYxLDEzLjYxLDAsMCwwLDQ3NS4xLDQ0OGMxMC4yOCwwLDI0LjY4LTEyLjEzLDQzLjQ3LTM1Ljc5LDM2LjU5LTQ0Ljg1LDUzLjE0LTk0LjM4LDU0LjA2LTE2MS44N1M1NTIuMzIsMTM3LDUxMC44OCw4OS42OVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRnJlZWJzZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDMuNyA5Ni4yYzExLjEtMTEuMSAxMTUuNS03NyAxMzkuMi01My4yIDIzLjcgMjMuNy00Mi4xIDEyOC4xLTUzLjIgMTM5LjItMTEuMSAxMS4xLTM5LjQuOS02My4xLTIyLjktMjMuOC0yMy43LTM0LjEtNTItMjIuOS02My4xek0xMDkuOSA2OC4xQzczLjYgNDcuNSAyMiAyNC42IDUuNiA0MS4xYy0xNi42IDE2LjYgNy4xIDY5LjQgMjcuOSAxMDUuNyAxOC41LTMyLjIgNDQuOC01OS4zIDc2LjQtNzguN3pNNDA2LjcgMTc0YzMuMyAxMS4zIDIuNyAyMC43LTIuNyAyNi4xLTIwLjMgMjAuMy04Ny41LTI3LTEwOS4zLTcwLjEtMTgtMzIuMy0xMS4xLTUzLjQgMTQuOS00OC43IDUuNy0zLjYgMTIuMy03LjYgMTkuNi0xMS42LTI5LjgtMTUuNS02My42LTI0LjMtOTkuNS0yNC4zLTExOS4xIDAtMjE1LjYgOTYuNS0yMTUuNiAyMTUuNiAwIDExOSA5Ni41IDIxNS42IDIxNS42IDIxNS42UzQ0NS4zIDM4MC4xIDQ0NS4zIDI2MWMwLTM4LjQtMTAuMS03NC41LTI3LjctMTA1LjgtMy45IDctNy42IDEzLjMtMTAuOSAxOC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGdWxjcnVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk1Ljc1IDE2NC4xNGwtMzUuMzggNDMuNTVMMjUgMTY0LjE0bDM1LjM4LTQzLjU1ek0xNDQuMjMgMGwtMjAuNTQgMTk4LjE4TDcyLjcyIDI1Nmw1MSA1Ny44MkwxNDQuMjMgNTEyVjMwMC44OUwxMDMuMTUgMjU2bDQxLjA4LTQ0Ljg5em03OS42NyAxNjQuMTRsMzUuMzggNDMuNTUgMzUuMzgtNDMuNTUtMzUuMzgtNDMuNTV6bS00OC40OCA0N0wyMTYuNSAyNTZsLTQxLjA4IDQ0Ljg5VjUxMkwxOTYgMzEzLjgyIDI0NyAyNTZsLTUxLTU3LjgyTDE3NS40MiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHYWxhY3RpY1JlcHVibGljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA1MDRDMTExLjI1IDUwNCAwIDM5Mi43NSAwIDI1NlMxMTEuMjUgOCAyNDggOHMyNDggMTExLjI1IDI0OCAyNDgtMTExLjI1IDI0OC0yNDggMjQ4em0wLTQ3OS40N0MxMjAuMzcgMjQuNTMgMTYuNTMgMTI4LjM3IDE2LjUzIDI1NlMxMjAuMzcgNDg3LjQ3IDI0OCA0ODcuNDcgNDc5LjQ3IDM4My42MyA0NzkuNDcgMjU2IDM3NS42MyAyNC41MyAyNDggMjQuNTN6bTI3LjYyIDIxLjgxdjI0LjYyYTE4NS45MzMgMTg1LjkzMyAwIDAgMSA4My41NyAzNC41NGwxNy4zOS0xNy4zNmMtMjguNzUtMjIuMDYtNjMuMy0zNi44OS0xMDAuOTYtNDEuOHptLTU1LjM3LjA3Yy0zNy42NCA0Ljk0LTcyLjE2IDE5LjgtMTAwLjg4IDQxLjg1bDE3LjI4IDE3LjM2aC4wOGMyNC4wNy0xNy44NCA1Mi41NS0zMC4wNiA4My41Mi0zNC42N1Y0Ni40MXptMTIuMjUgNTAuMTd2ODIuODdjLTEwLjA0IDIuMDMtMTkuNDIgNS45NC0yNy42NyAxMS40MmwtNTguNjItNTguNTktMjEuOTMgMjEuOTMgNTguNjcgNTguNjdjLTUuNDcgOC4yMy05LjQ1IDE3LjU5LTExLjQ3IDI3LjYyaC04Mi45djMxaDgyLjljMi4wMiAxMC4wMiA2LjAxIDE5LjMxIDExLjQ3IDI3LjU0bC01OC42NyA1OC42OSAyMS45MyAyMS45MyA1OC42Mi01OC42MmE3Ny44NzMgNzcuODczIDAgMCAwIDI3LjY3IDExLjQ3djgyLjloMzF2LTgyLjljMTAuMDUtMi4wMyAxOS4zNy02LjA2IDI3LjYyLTExLjU1bDU4LjY3IDU4LjY5IDIxLjkzLTIxLjkzLTU4LjY3LTU4LjY5YzUuNDYtOC4yMyA5LjQ3LTE3LjUyIDExLjUtMjcuNTRoODIuODd2LTMxaC04Mi44N2MtMi4wMi0xMC4wMi02LjAzLTE5LjM4LTExLjUtMjcuNjJsNTguNjctNTguNjctMjEuOTMtMjEuOTMtNTguNjcgNTguNjdjLTguMjUtNS40OS0xNy41Ny05LjQ3LTI3LjYyLTExLjVWOTYuNThoLTMxem0xODMuMjQgMzAuNzJsLTE3LjM2IDE3LjM2YTE4Ni4zMzcgMTg2LjMzNyAwIDAgMSAzNC42NyA4My42N2gyNC42MmMtNC45NS0zNy42OS0xOS44My03Mi4yOS00MS45My0xMDEuMDN6bS0zMzUuNTUuMTNjLTIyLjA2IDI4LjcyLTM2LjkxIDYzLjI2LTQxLjg1IDEwMC45MWgyNC42NWM0LjYtMzAuOTYgMTYuNzYtNTkuNDUgMzQuNTktODMuNTJsLTE3LjM5LTE3LjM5ek0zOC4zNCAyODMuNjdjNC45MiAzNy42NCAxOS43NSA3Mi4xOCA0MS44IDEwMC45bDE3LjM2LTE3LjM5Yy0xNy44MS0yNC4wNy0yOS45Mi01Mi41Ny0zNC41MS04My41MkgzOC4zNHptMzk0LjcgMGMtNC42MSAzMC45OS0xNi44IDU5LjUtMzQuNjcgODMuNmwxNy4zNiAxNy4zNmMyMi4wOC0yOC43NCAzNi45OC02My4yOSA0MS45My0xMDAuOTZoLTI0LjYyek0xMzYuNjYgNDA2LjM4bC0xNy4zNiAxNy4zNmMyOC43MyAyMi4wOSA2My4zIDM2Ljk4IDEwMC45NiA0MS45M3YtMjQuNjRjLTMwLjk5LTQuNjMtNTkuNTMtMTYuNzktODMuNi0zNC42NXptMjIyLjUzLjA1Yy0yNC4wOSAxNy44NC01Mi41OCAzMC4wOC04My41NyAzNC42N3YyNC41N2MzNy42Ny00LjkyIDcyLjIxLTE5Ljc5IDEwMC45Ni00MS44NWwtMTcuMzEtMTcuMzloLS4wOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2FsYWN0aWNTZW5hdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ5Ljg2IDMzLjQ4djI2LjA3QzIzNi4yOCA4MC4xNyAyMjYgMTY4LjE0IDIyNS4zOSAyNzQuOWMxMS43NC0xNS42MiAxOS4xMy0zMy4zMyAxOS4xMy00OC4yNHYtMTYuODhjLS4wMy01LjMyLjc1LTEwLjUzIDIuMTktMTUuNjUuNjUtMi4xNCAxLjM5LTQuMDggMi42Mi01LjgyIDEuMjMtMS43NSAzLjQzLTMuNzkgNi42OC0zLjc5IDMuMjQgMCA1LjQ1IDIuMDUgNi42OCAzLjc5IDEuMjMgMS43NSAxLjk3IDMuNjggMi42MiA1LjgyIDEuNDQgNS4xMiAyLjIyIDEwLjMzIDIuMTkgMTUuNjV2MTYuODhjMCAxNC45MSA3LjM5IDMyLjYyIDE5LjEzIDQ4LjI0LS42My0xMDYuNzYtMTAuOTEtMTk0LjczLTI0LjQ5LTIxNS4zNVYzMy40OGgtMTIuMjh6bS0yNi4zNCAxNDcuNzdjLTkuNTIgMi4xNS0xOC43IDUuMTktMjcuNDYgOS4wOCA4LjkgMTYuMTIgOS43NiAzMi42NCAxLjcxIDM3LjI5LTggNC42Mi0yMS44NS00LjIzLTMxLjM2LTE5LjgyLTExLjU4IDguNzktMjEuODggMTkuMzItMzAuNTYgMzEuMDkgMTQuNzMgOS42MiAyMi44OSAyMi45MiAxOC4zMiAzMC42Ni00LjU0IDcuNy0yMC4wMyA3LjE0LTM1LjQ3LS45Ni01Ljc4IDEzLjI1LTkuNzUgMjcuNTEtMTEuNjUgNDIuNDIgOS42OC4xOCAxOC42NyAyLjM4IDI2LjE4IDYuMDQgMTcuNzgtLjMgMzIuNzctMS45NiA0MC40OS00LjIyIDUuNTUtMjYuMzUgMjMuMDItNDguMjMgNDYuMzItNTkuNTEuNzMtMjUuNTUgMS44OC00OS42NyAzLjQ4LTcyLjA3em02NC45NiAwYzEuNTkgMjIuNCAyLjc1IDQ2LjUyIDMuNDcgNzIuMDcgMjMuMjkgMTEuMjggNDAuNzcgMzMuMTYgNDYuMzIgNTkuNTEgNy43MiAyLjI2IDIyLjcxIDMuOTIgNDAuNDkgNC4yMiA3LjUxLTMuNjYgMTYuNS01Ljg1IDI2LjE4LTYuMDQtMS45LTE0LjkxLTUuODYtMjkuMTctMTEuNjUtNDIuNDItMTUuNDQgOC4xLTMwLjkzIDguNjYtMzUuNDcuOTYtNC41Ny03Ljc0IDMuNi0yMS4wNSAxOC4zMi0zMC42Ni04LjY4LTExLjc3LTE4Ljk4LTIyLjMtMzAuNTYtMzEuMDktOS41MSAxNS41OS0yMy4zNiAyNC40NC0zMS4zNiAxOS44Mi04LjA1LTQuNjUtNy4xOS0yMS4xNiAxLjcxLTM3LjI5YTE0Ny40OSAxNDcuNDkgMCAwIDAtMjcuNDUtOS4wOHptLTMyLjQ4IDguNmMtMy4yMyAwLTUuODYgOC44MS02LjA5IDE5LjkzaC0uMDV2MTYuODhjMCA0MS40Mi00OS4wMSA5NS4wNC05My40OSA5NS4wNC01MiAwLTEyMi43NS0xLjQ1LTE1Ni4zNyAyOS4xN3YyLjUxYzkuNDIgMTcuMTIgMjAuNTggMzMuMTcgMzMuMTggNDcuOTdDNDUuNyAzODAuMjYgODQuNzcgMzYwLjQgMTQxLjIgMzYwYzQ1LjY4IDEuMDIgNzkuMDMgMjAuMzMgOTAuNzYgNDAuODcuMDEuMDEtLjAxLjA0IDAgLjA1IDcuNjcgMi4xNCAxNS44NSAzLjIzIDI0LjA0IDMuMjEgOC4xOS4wMiAxNi4zNy0xLjA3IDI0LjA0LTMuMjEuMDEtLjAxLS4wMS0uMDQgMC0uMDUgMTEuNzQtMjAuNTQgNDUuMDgtMzkuODUgOTAuNzYtNDAuODcgNTYuNDMuMzkgOTUuNDkgMjAuMjYgMTA4LjAyIDQxLjM1IDEyLjYtMTQuOCAyMy43Ni0zMC44NiAzMy4xOC00Ny45N3YtMi41MWMtMzMuNjEtMzAuNjItMTA0LjM3LTI5LjE3LTE1Ni4zNy0yOS4xNy00NC40OCAwLTkzLjQ5LTUzLjYyLTkzLjQ5LTk1LjA0di0xNi44OGgtLjA1Yy0uMjMtMTEuMTItMi44Ni0xOS45My02LjA5LTE5Ljkzem0wIDk2LjU5YzIyLjQyIDAgNDAuNiAxOC4xOCA0MC42IDQwLjZzLTE4LjE4IDQwLjY1LTQwLjYgNDAuNjUtNDAuNi0xOC4yMy00MC42LTQwLjY1YzAtMjIuNDIgMTguMTgtNDAuNiA0MC42LTQwLjZ6bTAgNy42NGMtMTguMTkgMC0zMi45NiAxNC43Ny0zMi45NiAzMi45NlMyMzcuODEgMzYwIDI1NiAzNjBzMzIuOTYtMTQuNzcgMzIuOTYtMzIuOTYtMTQuNzctMzIuOTYtMzIuOTYtMzIuOTZ6bTAgNi4xNGMxNC44MSAwIDI2LjgyIDEyLjAxIDI2LjgyIDI2Ljgycy0xMi4wMSAyNi44Mi0yNi44MiAyNi44Mi0yNi44Mi0xMi4wMS0yNi44Mi0yNi44MiAxMi4wMS0yNi44MiAyNi44Mi0yNi44MnptLTExNC44IDY2LjY3Yy0xMC4xOS4wNy0yMS42LjM2LTMwLjUgMS42Ni40MyA0LjQyIDEuNTEgMTguNjMgNy4xMSAyOS43NiA5LjExLTIuNTYgMTguMzYtMy45IDI3LjYyLTMuOSA0MS4yOC45NCA3MS40OCAzNC4zNSA3OC4yNiA3NC40N2wuMTEgNC43YzEwLjQgMS45MSAyMS4xOSAyLjk0IDMyLjIxIDIuOTQgMTEuMDMgMCAyMS44MS0xLjAyIDMyLjIxLTIuOTRsLjExLTQuN2M2Ljc4LTQwLjEyIDM2Ljk4LTczLjUzIDc4LjI2LTc0LjQ3IDkuMjYgMCAxOC41MSAxLjM0IDI3LjYyIDMuOSA1LjYtMTEuMTMgNi42OC0yNS4zNCA3LjExLTI5Ljc2LTguOS0xLjMtMjAuMzItMS41OC0zMC41LTEuNjYtMTguNzYuNDItMzUuMTkgNC4xNy00OC42MSA5LjY3LTEyLjU0IDE2LjAzLTI5LjE2IDMwLjAzLTQ5LjU4IDMzLjA3LS4wOS4wMi0uMTcuMDQtLjI3LjA1LS4wNS4wMS0uMTEuMDQtLjE2LjA1LTUuMjQgMS4wNy0xMC42MyAxLjYtMTYuMTkgMS42LTUuNTUgMC0xMC45NS0uNTMtMTYuMTktMS42LS4wNS0uMDEtLjExLS4wNC0uMTYtLjA1LS4xLS4wMi0uMTctLjA0LS4yNy0uMDUtMjAuNDItMy4wMy0zNy4wMy0xNy4wNC00OS41OC0zMy4wNy0xMy40Mi01LjQ5LTI5Ljg2LTkuMjUtNDguNjEtOS42N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2V0UG9ja2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwNy42IDY0aC0zNjdDMTguNSA2NCAwIDgyLjUgMCAxMDQuNnYxMzUuMkMwIDM2NC41IDk5LjcgNDY0IDIyNC4yIDQ2NGMxMjQgMCAyMjMuOC05OS41IDIyMy44LTIyNC4yVjEwNC42YzAtMjIuNC0xNy43LTQwLjYtNDAuNC00MC42em0tMTYyIDI2OC41Yy0xMi40IDExLjgtMzEuNCAxMS4xLTQyLjQgMEM4OS41IDIyMy42IDg4LjMgMjI3LjQgODguMyAyMDkuM2MwLTE2LjkgMTMuOC0zMC43IDMwLjctMzAuNyAxNyAwIDE2LjEgMy44IDEwNS4yIDg5LjMgOTAuNi04Ni45IDg4LjYtODkuMyAxMDUuNS04OS4zIDE2LjkgMCAzMC43IDEzLjggMzAuNyAzMC43IDAgMTcuOC0yLjkgMTUuNy0xMTQuOCAxMjMuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2dDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU3IDhDMTIwIDggOSAxMTkgOSAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTQgOCAyNTcgOHptLTQ5LjUgMzc0LjhMODEuOCAyNTcuMWwxMjUuNy0xMjUuNyAzNS4yIDM1LjQtMjQuMiAyNC4yLTExLjEtMTEuMS03Ny4yIDc3LjIgNzcuMiA3Ny4yIDI2LjYtMjYuNi01My4xLTUyLjkgMjQuNC0yNC40IDc3LjIgNzcuMi03NSA3NS4yem05OS0yLjJsLTM1LjItMzUuMiAyNC4xLTI0LjQgMTEuMSAxMS4xIDc3LjItNzcuMi03Ny4yLTc3LjItMjYuNSAyNi41IDUzLjEgNTIuOS0yNC40IDI0LjQtNzcuMi03Ny4yIDc1LTc1TDQzMi4yIDI1NSAzMDYuNSAzODAuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc5LjIgMjMwLjRsMTAyLjQgMTAyLjQtMTAyLjQgMTAyLjRMMCAyNTYgMTc5LjIgNzYuOGw0NC44IDQ0LjgtMjUuNiAyNS42LTE5LjItMTkuMi0xMjggMTI4IDEyOCAxMjggNTEuNS01MS41LTc3LjEtNzYuNSAyNS42LTI1LjZ6TTMzMi44IDc2LjhMMjMwLjQgMTc5LjJsMTAyLjQgMTAyLjQgMjUuNi0yNS42LTc3LjEtNzYuNSA1MS41LTUxLjUgMTI4IDEyOC0xMjggMTI4LTE5LjItMTkuMi0yNS42IDI1LjYgNDQuOCA0NC44TDUxMiAyNTYgMzMyLjggNzYuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2l0QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzOS41NSAyMzYuMDVMMjQ0IDQwLjQ1YTI4Ljg3IDI4Ljg3IDAgMCAwLTQwLjgxIDBsLTQwLjY2IDQwLjYzIDUxLjUyIDUxLjUyYzI3LjA2LTkuMTQgNTIuNjggMTYuNzcgNDMuMzkgNDMuNjhsNDkuNjYgNDkuNjZjMzQuMjMtMTEuOCA2MS4xOCAzMSAzNS40NyA1Ni42OS0yNi40OSAyNi40OS03MC4yMS0yLjg3LTU2LTM3LjM0TDI0MC4yMiAxOTl2MTIxLjg1YzI1LjMgMTIuNTQgMjIuMjYgNDEuODUgOS4wOCA1NWEzNC4zNCAzNC4zNCAwIDAgMS00OC41NSAwYy0xNy41Ny0xNy42LTExLjA3LTQ2LjkxIDExLjI1LTU2di0xMjNjLTIwLjgtOC41MS0yNC42LTMwLjc0LTE4LjY0LTQ1TDE0Mi41NyAxMDEgOC40NSAyMzUuMTRhMjguODYgMjguODYgMCAwIDAgMCA0MC44MWwxOTUuNjEgMTk1LjZhMjguODYgMjguODYgMCAwIDAgNDAuOCAwbDE5NC42OS0xOTQuNjlhMjguODYgMjguODYgMCAwIDAgMC00MC44MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2l0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNi4yOSAxNTguMzlIMTM3Qzk3IDE0Ny45IDYuNTEgMTUwLjYzIDYuNTEgMjMzLjE4YzAgMzAuMDkgMTUgNTEuMjMgMzUgNjEtMjUuMSAyMy0zNyAzMy44NS0zNyA0OS4yMSAwIDExIDQuNDcgMjEuMTQgMTcuODkgMjYuODFDOC4xMyAzODMuNjEgMCAzOTMuMzUgMCA0MTEuNjVjMCAzMi4xMSAyOC4wNSA1MC44MiAxMDEuNjMgNTAuODIgNzAuNzUgMCAxMTEuNzktMjYuNDIgMTExLjc5LTczLjE4IDAtNTguNjYtNDUuMTYtNTYuNS0xNTEuNjMtNjNsMTMuNDMtMjEuNTVjMjcuMjcgNy41OCAxMTguNyAxMCAxMTguNy02Ny44OSAwLTE4LjctNy43My0zMS43MS0xNS00MS4wN2wzNy40MS0yLjg0em0tNjMuNDIgMjQxLjljMCAzMi4wNi0xMDQuODkgMzIuMS0xMDQuODkgMi40MyAwLTguMTQgNS4yNy0xNSAxMC41Ny0yMS41NCA3Ny43MSA1LjMgOTQuMzIgMy4zNyA5NC4zMiAxOS4xMXptLTUwLjgxLTEzNC41OGMtNTIuOCAwLTUwLjQ2LTcxLjE2IDEuMi03MS4xNiA0OS41NCAwIDUwLjgyIDcxLjE2LTEuMiA3MS4xNnptMTMzLjMgMTAwLjUxdi0zMi4xYzI2Ljc1LTMuNjYgMjcuMjQtMiAyNy4yNC0xMVYyMDMuNjFjMC04LjUtMi4wNS03LjM4LTI3LjI0LTE2LjI2bDQuNDctMzIuOTJIMzI0djE2OC43MWMwIDYuNTEuNCA3LjMyIDYuNTEgOC4xNGwyMC43MyAyLjg0djMyLjF6bTUyLjQ1LTI0NC4zMWMtMjMuMTcgMC0zNi41OS0xMy40My0zNi41OS0zNi42MXMxMy40Mi0zNS43NyAzNi41OS0zNS43N2MyMy41OCAwIDM3IDEyLjYyIDM3IDM1Ljc3cy0xMy40MiAzNi42MS0zNyAzNi42MXpNNTEyIDM1MC40NmMtMTcuNDkgOC41My00My4xIDE2LjI2LTY2LjI4IDE2LjI2LTQ4LjM4IDAtNjYuNjctMTkuNS02Ni42Ny02NS40NlYxOTQuNzVjMC01LjQyIDEuMDUtNC4wNi0zMS43MS00LjA2VjE1NC41YzM1Ljc4LTQuMDcgNTAtMjIgNTQuNDctNjYuMjdoMzguNjNjMCA2NS44My0xLjM0IDYxLjgxIDMuMjYgNjEuODFINTAxdjQwLjY1aC02MC41NnY5Ny4xNWMwIDYuOTItNC45MiA1MS40MSA2MC41NyAyNi44NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2l0aHViQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0ODAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ni4xIDMyOC43YzAgMjAuOS0xMC45IDU1LjEtMzYuNyA1NS4xcy0zNi43LTM0LjItMzYuNy01NS4xIDEwLjktNTUuMSAzNi43LTU1LjEgMzYuNyAzNC4yIDM2LjcgNTUuMXpNNDgwIDI3OC4yYzAgMzEuOS0zLjIgNjUuNy0xNy41IDk1LTM3LjkgNzYuNi0xNDIuMSA3NC44LTIxNi43IDc0LjgtNzUuOCAwLTE4Ni4yIDIuNy0yMjUuNi03NC44LTE0LjYtMjktMjAuMi02My4xLTIwLjItOTUgMC00MS45IDEzLjktODEuNSA0MS41LTExMy42LTUuMi0xNS44LTcuNy0zMi40LTcuNy00OC44IDAtMjEuNSA0LjktMzIuMyAxNC42LTUxLjggNDUuMyAwIDc0LjMgOSAxMDguOCAzNiAyOS02LjkgNTguOC0xMCA4OC43LTEwIDI3IDAgNTQuMiAyLjkgODAuNCA5LjIgMzQtMjYuNyA2My0zNS4yIDEwNy44LTM1LjIgOS44IDE5LjUgMTQuNiAzMC4zIDE0LjYgNTEuOCAwIDE2LjQtMi42IDMyLjctNy43IDQ4LjIgMjcuNSAzMi40IDM5IDcyLjMgMzkgMTE0LjJ6bS02NC4zIDUwLjVjMC00My45LTI2LjctODIuNi03My41LTgyLjYtMTguOSAwLTM3IDMuNC01NiA2LTE0LjkgMi4zLTI5LjggMy4yLTQ1LjEgMy4yLTE1LjIgMC0zMC4xLS45LTQ1LjEtMy4yLTE4LjctMi42LTM3LTYtNTYtNi00Ni44IDAtNzMuNSAzOC43LTczLjUgODIuNiAwIDg3LjggODAuNCAxMDEuMyAxNTAuNCAxMDEuM2g0OC4yYzcwLjMgMCAxNTAuNi0xMy40IDE1MC42LTEwMS4zem0tODIuNi01NS4xYy0yNS44IDAtMzYuNyAzNC4yLTM2LjcgNTUuMXMxMC45IDU1LjEgMzYuNyA1NS4xIDM2LjctMzQuMiAzNi43LTU1LjEtMTAuOS01NS4xLTM2LjctNTUuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2l0aHViIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2NS45IDM5Ny40YzAgMi0yLjMgMy42LTUuMiAzLjYtMy4zLjMtNS42LTEuMy01LjYtMy42IDAtMiAyLjMtMy42IDUuMi0zLjYgMy0uMyA1LjYgMS4zIDUuNiAzLjZ6bS0zMS4xLTQuNWMtLjcgMiAxLjMgNC4zIDQuMyA0LjkgMi42IDEgNS42IDAgNi4yLTJzLTEuMy00LjMtNC4zLTUuMmMtMi42LS43LTUuNS4zLTYuMiAyLjN6bTQ0LjItMS43Yy0yLjkuNy00LjkgMi42LTQuNiA0LjkuMyAyIDIuOSAzLjMgNS45IDIuNiAyLjktLjcgNC45LTIuNiA0LjYtNC42LS4zLTEuOS0zLTMuMi01LjktMi45ek0yNDQuOCA4QzEwNi4xIDggMCAxMTMuMyAwIDI1MmMwIDExMC45IDY5LjggMjA1LjggMTY5LjUgMjM5LjIgMTIuOCAyLjMgMTcuMy01LjYgMTcuMy0xMi4xIDAtNi4yLS4zLTQwLjQtLjMtNjEuNCAwIDAtNzAgMTUtODQuNy0yOS44IDAgMC0xMS40LTI5LjEtMjcuOC0zNi42IDAgMC0yMi45LTE1LjcgMS42LTE1LjQgMCAwIDI0LjkgMiAzOC42IDI1LjggMjEuOSAzOC42IDU4LjYgMjcuNSA3Mi45IDIwLjkgMi4zLTE2IDguOC0yNy4xIDE2LTMzLjctNTUuOS02LjItMTEyLjMtMTQuMy0xMTIuMy0xMTAuNSAwLTI3LjUgNy42LTQxLjMgMjMuNi01OC45LTIuNi02LjUtMTEuMS0zMy4zIDIuNi02Ny45IDIwLjktNi41IDY5IDI3IDY5IDI3IDIwLTUuNiA0MS41LTguNSA2Mi44LTguNXM0Mi44IDIuOSA2Mi44IDguNWMwIDAgNDguMS0zMy42IDY5LTI3IDEzLjcgMzQuNyA1LjIgNjEuNCAyLjYgNjcuOSAxNiAxNy43IDI1LjggMzEuNSAyNS44IDU4LjkgMCA5Ni41LTU4LjkgMTA0LjItMTE0LjggMTEwLjUgOS4yIDcuOSAxNyAyMi45IDE3IDQ2LjQgMCAzMy43LS4zIDc1LjQtLjMgODMuNiAwIDYuNSA0LjYgMTQuNCAxNy4zIDEyLjFDNDI4LjIgNDU3LjggNDk2IDM2Mi45IDQ5NiAyNTIgNDk2IDExMy4zIDM4My41IDggMjQ0LjggOHpNOTcuMiAzNTIuOWMtMS4zIDEtMSAzLjMuNyA1LjIgMS42IDEuNiAzLjkgMi4zIDUuMiAxIDEuMy0xIDEtMy4zLS43LTUuMi0xLjYtMS42LTMuOS0yLjMtNS4yLTF6bS0xMC44LTguMWMtLjcgMS4zLjMgMi45IDIuMyAzLjkgMS42IDEgMy42LjcgNC4zLS43LjctMS4zLS4zLTIuOS0yLjMtMy45LTItLjYtMy42LS4zLTQuMy43em0zMi40IDM1LjZjLTEuNiAxLjMtMSA0LjMgMS4zIDYuMiAyLjMgMi4zIDUuMiAyLjYgNi41IDEgMS4zLTEuMy43LTQuMy0xLjMtNi4yLTIuMi0yLjMtNS4yLTIuNi02LjUtMXptLTExLjQtMTQuN2MtMS42IDEtMS42IDMuNiAwIDUuOSAxLjYgMi4zIDQuMyAzLjMgNS42IDIuMyAxLjYtMS4zIDEuNi0zLjkgMC02LjItMS40LTIuMy00LTMuMy01LjYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2l0a3Jha2VuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1OTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2NS43IDExOC4xYy0yLjMtNi4xLTkuMy05LjItMTUuMy02LjYtNS43IDIuNC04LjUgOC45LTYuMyAxNC42IDEwLjkgMjkgMTYuOSA2MC41IDE2LjkgOTMuMyAwIDEzNC42LTEwMC4zIDI0NS43LTIzMC4yIDI2Mi43VjM1OC40YzcuOS0xLjUgMTUuNS0zLjYgMjMtNi4ydjEwNGMxMDYuNy0yNS45IDE4NS45LTEyMi4xIDE4NS45LTIzNi44IDAtOTEuOC01MC44LTE3MS44LTEyNS44LTIxMy4zLTUuNy0zLjItMTMtLjktMTUuOSA1LTIuNyA1LjUtLjYgMTIuMiA0LjcgMTUuMSA2Ny45IDM3LjYgMTEzLjkgMTEwIDExMy45IDE5My4yIDAgOTMuMy01Ny45IDE3My4xLTEzOS44IDIwNS40di05Mi4yYzE0LjItNC41IDI0LjktMTcuNyAyNC45LTMzLjUgMC0xMy4xLTYuOC0yNC40LTE3LjMtMzAuNSA4LjMtNzkuNSA0NC41LTU4LjYgNDQuNS04My45VjE3MGMwLTM4LTg3LjktMTYxLjgtMTI5LTE2NC43LTIuNS0uMi01LS4yLTcuNiAwQzI1MS4xIDguMyAxNjMuMiAxMzIgMTYzLjIgMTcwdjE0LjhjMCAyNS4zIDM2LjMgNC4zIDQ0LjUgODMuOS0xMC42IDYuMS0xNy4zIDE3LjQtMTcuMyAzMC41IDAgMTUuOCAxMC42IDI5IDI0LjggMzMuNXY5Mi4yYy04MS45LTMyLjItMTM5LjgtMTEyLTEzOS44LTIwNS40IDAtODMuMSA0Ni0xNTUuNSAxMTMuOS0xOTMuMiA1LjQtMyA3LjQtOS42IDQuNy0xNS4xLTIuOS01LjktMTAuMS04LjItMTUuOS01LTc1IDQxLjUtMTI1LjggMTIxLjUtMTI1LjggMjEzLjMgMCAxMTQuNyA3OS4yIDIxMC44IDE4NS45IDIzNi44di0xMDRjNy42IDIuNSAxNS4xIDQuNiAyMyA2LjJ2MTIzLjdDMTMxLjQgNDY1LjIgMzEgMzU0LjEgMzEgMjE5LjVjMC0zMi44IDYtNjQuMyAxNi45LTkzLjMgMi4yLTUuOC0uNi0xMi4yLTYuMy0xNC42LTYtMi42LTEzIC40LTE1LjMgNi42QzE0LjUgMTQ5LjcgOCAxODMuOCA4IDIxOS41YzAgMTU1LjEgMTIyLjYgMjgxLjYgMjc2LjMgMjg3LjhWMzYxLjRjNi44LjQgMTUgLjUgMjMuNCAwdjE0NS44QzQ2MS40IDUwMS4xIDU4NCAzNzQuNiA1ODQgMjE5LjVjMC0zNS43LTYuNS02OS44LTE4LjMtMTAxLjR6TTM2NS45IDI3NS41YzEzIDAgMjMuNyAxMC41IDIzLjcgMjMuNyAwIDEzLjEtMTAuNiAyMy43LTIzLjcgMjMuNy0xMyAwLTIzLjctMTAuNS0yMy43LTIzLjcgMC0xMy4xIDEwLjYtMjMuNyAyMy43LTIzLjd6bS0xMzkuOCA0Ny4zYy0xMy4yIDAtMjMuNy0xMC43LTIzLjctMjMuN3MxMC41LTIzLjcgMjMuNy0yMy43YzEzLjEgMCAyMy43IDEwLjYgMjMuNyAyMy43IDAgMTMtMTAuNSAyMy43LTIzLjcgMjMuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2l0bGFiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMy41IDIwNC42TDUwMi44IDIwMi44TDQzMy4xIDIxLjAyQzQzMS43IDE3LjQ1IDQyOS4yIDE0LjQzIDQyNS45IDEyLjM4QzQyMy41IDEwLjgzIDQyMC44IDkuODY1IDQxNy45IDkuNTdDNDE1IDkuMjc1IDQxMi4yIDkuNjUzIDQwOS41IDEwLjY4QzQwNi44IDExLjcgNDA0LjQgMTMuMzQgNDAyLjQgMTUuNDZDNDAwLjUgMTcuNTggMzk5LjEgMjAuMTMgMzk4LjMgMjIuOUwzNTEuMyAxNjYuOUgxNjAuOEwxMTMuNyAyMi45QzExMi45IDIwLjEzIDExMS41IDE3LjU5IDEwOS42IDE1LjQ3QzEwNy42IDEzLjM1IDEwNS4yIDExLjcyIDEwMi41IDEwLjdDOTkuODYgOS42NzUgOTYuOTggOS4yOTUgOTQuMTIgOS41ODdDOTEuMjYgOS44NzggODguNTEgMTAuODMgODYuMDggMTIuMzhDODIuODQgMTQuNDMgODAuMzMgMTcuNDUgNzguOTIgMjEuMDJMOS4yNjcgMjAyLjhMOC41NDMgMjA0LjZDLTEuNDg0IDIzMC44LTIuNzIgMjU5LjYgNS4wMjMgMjg2LjZDMTIuNzcgMzEzLjUgMjkuMDcgMzM3LjMgNTEuNDcgMzU0LjJMNTEuNzQgMzU0LjRMNTIuMzMgMzU0LjhMMTU4LjMgNDM0LjNMMjEwLjkgNDc0TDI0Mi45IDQ5OC4yQzI0Ni42IDUwMC4xIDI1MS4yIDUwMi41IDI1NS45IDUwMi41QzI2MC42IDUwMi41IDI2NS4yIDUwMC4xIDI2OC45IDQ5OC4yTDMwMC45IDQ3NEwzNTMuNSA0MzQuM0w0NjAuMiAzNTQuNEw0NjAuNSAzNTQuMUM0ODIuOSAzMzcuMiA0OTkuMiAzMTMuNSA1MDYuMSAyODYuNkM1MTQuNyAyNTkuNiA1MTMuNSAyMzAuOCA1MDMuNSAyMDQuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2l0dGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY2LjQgMzIyLjVIMTZWMGg1MC40djMyMi41ek0xNjYuOSA3Ni4xaC01MC40VjUxMmg1MC40Vjc2LjF6bTEwMC42IDBoLTUwLjRWNTEyaDUwLjRWNzYuMXpNMzY4IDc2aC01MC40djI0N0gzNjhWNzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdsaWRlRyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDcuMSAyMTEuMmMtMy41LTEuNC0xMS42LTMuOC0xNS40LTMuOC0zNy4xIDAtNjIuMiAxNi44LTkzLjUgMzQuNWwtLjktLjljNy00Ny4zIDIzLjUtOTEuOSAyMy41LTE0MC40QzMyMC44IDI5LjEgMjgyLjYgMCAyMTIuNCAwIDk3LjMgMCAzOSAxMTMuNyAzOSAxOTguNCAzOSAyODYuMyA5MC4zIDMzNSAxNzcuNiAzMzVjMTIgMCAxMS0xIDExIDMuOC0xNi45IDEyOC45LTkwLjggMTMzLjEtOTAuOCA5NC42IDAtMzkuMiA0NS01OC42IDQ1LjUtNjEtLjMtMTIuMi00Ny0yNy42LTU4LjktMjcuNi0zMy45LjEtNTIuNCA1MS4yLTUyLjQgNzkuM0MzMiA0NzYgNjQuOCA1MTIgMTE3LjUgNTEyYzc3LjQgMCAxMzQtNzcuOCAxNTEuNC0xNDUuNCAxNS4xLTYwLjUgMTEuMi02My4zIDE5LjctNjcuNiAzMi4yLTE2LjIgNTcuNS0yNyA5My44LTI3IDE3LjggMCAzMC41IDMuNyA1OC45IDguNCAyLjkgMCA2LjctMi45IDYuNy01LjggMC04LTMzLjQtNjAuNS00MC45LTYzLjR6bS0xNzUuMy04NC40Yy05LjMgNDQuNy0xOC42IDg5LjYtMjcuOCAxMzQuMy0yLjMgMTAuMi0xMy4zIDcuOC0yMiA3LjgtMzguMyAwLTQ5LTQxLjgtNDktNzMuMSAwLTQ3IDE4LTEwOS4zIDYxLjgtMTMzLjQgNy00LjEgMTQuOC02LjcgMjIuNi02LjcgMTguNiAwIDIwIDEzLjMgMjAgMjguNy0uMSAxNC4zLTIuNyAyOC41LTUuNiA0Mi40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHbGlkZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTIuOCAxNDguNmMwIDguOC0xLjYgMTcuNy0zLjQgMjYuNC01LjggMjcuOC0xMS42IDU1LjgtMTcuMyA4My42LTEuNCA2LjMtOC4zIDQuOS0xMy43IDQuOS0yMy44IDAtMzAuNS0yNi0zMC41LTQ1LjUgMC0yOS4zIDExLjItNjguMSAzOC41LTgzLjEgNC4zLTIuNSA5LjItNC4yIDE0LjEtNC4yIDExLjQgMCAxMi4zIDguMyAxMi4zIDE3Ljl6TTQ0OCA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDM1MmMyNi41IDAgNDggMjEuNSA0OCA0OHptLTY0IDE4N2MwLTUuMS0yMC44LTM3LjctMjUuNS0zOS41LTIuMi0uOS03LjItMi4zLTkuNi0yLjMtMjMuMSAwLTM4LjcgMTAuNS01OC4yIDIxLjVsLS41LS41YzQuMy0yOS40IDE0LjYtNTcuMiAxNC42LTg3LjQgMC00NC42LTIzLjgtNjIuNy02Ny41LTYyLjctNzEuNyAwLTEwOCA3MC44LTEwOCAxMjMuNSAwIDU0LjcgMzIgODUgODYuMyA4NSA3LjUgMCA2LjktLjYgNi45IDIuMy0xMC41IDgwLjMtNTYuNSA4Mi45LTU2LjUgNTguOSAwLTI0LjQgMjgtMzYuNSAyOC4zLTM4LS4yLTcuNi0yOS4zLTE3LjItMzYuNy0xNy4yLTIxLjEgMC0zMi43IDMzLTMyLjcgNTAuNiAwIDMyLjMgMjAuNCA1NC43IDUzLjMgNTQuNyA0OC4yIDAgODMuNC00OS43IDk0LjMtOTEuNyA5LjQtMzcuNyA3LTM5LjQgMTIuMy00Mi4xIDIwLTEwLjEgMzUuOC0xNi44IDU4LjQtMTYuOCAxMS4xIDAgMTkgMi4zIDM2LjcgNS4yIDEuOC4xIDQuMS0xLjcgNC4xLTMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR29mb3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0MDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyNCAzMTkuOGgtMTMuMnYzNC43Yy0yNC41IDIzLjEtNTYuMyAzNS44LTg5LjkgMzUuOC03My4yIDAtMTMyLjQtNjAuMi0xMzIuNC0xMzQuNCAwLTc0LjEgNTkuMi0xMzQuNCAxMzIuNC0xMzQuNCAzNS4zIDAgNjguNiAxNCA5My42IDM5LjRsNjIuMy02My4zQzMzNSA1NS4zIDI3OS43IDMyIDIyMC43IDMyIDk4IDMyIDAgMTMyLjYgMCAyNTZjMCAxMjIuNSA5NyAyMjQgMjIwLjcgMjI0IDYzLjIgMCAxMjQuNS0yNi4yIDE3MS04Mi41LTItMjcuNi0xMy40LTc3LjctNjcuNy03Ny43em0tMTIuMS0xMTIuNUgyMDUuNnY4OUgzMjRjMzMuNSAwIDYwLjUgMTUuMSA3NiA0MS44di0zMC42YzAtNjUuMi00MC40LTEwMC4yLTg4LjEtMTAwLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvbGFuZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAuMSAxOTQuOEMzODkuMiAxOTcuNiAzODAuMiAxOTkuMSAzNzEgMjAyLjRDMzYzLjcgMjA0LjMgMzU2LjMgMjA2LjMgMzQ3LjggMjA4LjVMMzQ3LjIgMjA4LjZDMzQzIDIwOS44IDM0Mi42IDIwOS45IDMzOC43IDIwNS40QzMzNCAyMDAuMSAzMzAuNiAxOTYuNyAzMjQuMSAxOTMuNUMzMDQuNCAxODMuOSAyODUuNCAxODYuNyAyNjcuNyAxOTguMkMyNDYuNSAyMTEuOSAyMzUuNiAyMzIuMiAyMzUuOSAyNTcuNEMyMzYuMiAyODIuNCAyNTMuMyAzMDIuOSAyNzcuMSAzMDYuM0MyOTkuMSAzMDkuMSAzMTYuOSAzMDEuNyAzMzAuOSAyODUuOEMzMzMgMjgzLjIgMzM0LjkgMjgwLjUgMzM3IDI3Ny41VjI3Ny41TDMzNyAyNzcuNUMzMzcuOCAyNzYuNSAzMzguNSAyNzUuNCAzMzkuMyAyNzQuMkgyNzkuMkMyNzIuNyAyNzQuMiAyNzEuMSAyNzAuMiAyNzMuMyAyNjQuOUMyNzcuMyAyNTUuMiAyODQuOCAyMzkgMjg5LjIgMjMwLjlDMjkwLjEgMjI5LjEgMjkyLjMgMjI1LjEgMjk2LjEgMjI1LjFIMzk3LjJDNDAxLjcgMjExLjcgNDA5IDE5OC4yIDQxOC44IDE4NS40QzQ0MS41IDE1NS41IDQ2OC4xIDEzOS45IDUwNiAxMzMuNEM1MzcuOCAxMjcuOCA1NjcuNyAxMzAuOSA1OTQuOSAxNDkuM0M2MTkuNSAxNjYuMSA2MzQuNyAxODguOSA2MzguOCAyMTguOEM2NDQuMSAyNjAuOSA2MzEuOSAyOTUuMSA2MDIuMSAzMjQuNEM1ODIuNCAzNDUuMyA1NTcuMiAzNTguNCA1MjguMiAzNjQuM0M1MjIuNiAzNjUuMyA1MTcuMSAzNjUuOCA1MTEuNyAzNjYuM0M1MDguOCAzNjYuNSA1MDYgMzY2LjggNTAzLjIgMzY3LjFDNDc0LjkgMzY2LjUgNDQ5IDM1OC40IDQyNy4yIDMzOS43QzQxMS45IDMyNi40IDQwMS4zIDMxMC4xIDM5Ni4xIDI5MS4yQzM5Mi40IDI5OC41IDM4OC4xIDMwNS42IDM4Mi4xIDMxMi4zQzM2MC41IDM0MS45IDMzMS4yIDM2MC4zIDI5NC4yIDM2NS4yQzI2My42IDM2OS4zIDIzNS4zIDM2My40IDIxMC4zIDM0NC43QzE4Ny4zIDMyNy4yIDE3NC4yIDMwNC4yIDE3MC44IDI3NS41QzE2Ni43IDI0MS41IDE3Ni43IDIxMC4xIDE5Ny4yIDE4NC4yQzIxOS40IDE1NS4yIDI0OC43IDEzNi44IDI4NC41IDEzMC4zQzMxMy44IDEyNC4xIDM0MS44IDEyOC40IDM2Ny4xIDE0NS42QzM4My42IDE1Ni41IDM5NS40IDE3MS40IDQwMy4yIDE4OS41QzQwNS4xIDE5Mi4zIDQwMy44IDE5My45IDQwMC4xIDE5NC44ek00OC4zIDIwMC40QzQ3LjA1IDIwMC40IDQ2Ljc0IDE5OS44IDQ3LjM2IDE5OC44TDUzLjkxIDE5MC40QzU0LjUzIDE4OS41IDU2LjA5IDE4OC45IDU3LjM0IDE4OC45SDE2OC42QzE2OS44IDE4OC45IDE3MC4xIDE4OS44IDE2OS41IDE5MC43TDE2NC4yIDE5OC44QzE2My42IDE5OS44IDE2MiAyMDAuNyAxNjEuMSAyMDAuN0w0OC4zIDIwMC40ek0xLjI0NiAyMjkuMUMwIDIyOS4xLS4zMTE2IDIyOC40IC4zMTE2IDIyNy41TDYuODU1IDIxOS4xQzcuNDc5IDIxOC4yIDkuMDM3IDIxNy41IDEwLjI4IDIxNy41SDE1Mi40QzE1My42IDIxNy41IDE1NC4yIDIxOC41IDE1My45IDIxOS40TDE1MS40IDIyNi45QzE1MS4xIDIyOC4xIDE0OS45IDIyOC44IDE0OC42IDIyOC44TDEuMjQ2IDIyOS4xek03NS43MiAyNTUuOUM3NS4xIDI1Ni44IDc1LjQxIDI1Ny43IDc2LjY1IDI1Ny43TDE0NC42IDI1OEMxNDUuNSAyNTggMTQ2LjggMjU3LjEgMTQ2LjggMjU1LjlMMTQ3LjQgMjQ4LjRDMTQ3LjQgMjQ3LjEgMTQ2LjggMjQ2LjIgMTQ1LjUgMjQ2LjJIODMuMkM4MS45NSAyNDYuMiA4MC43MSAyNDcuMSA4MC4wOCAyNDguMUw3NS43MiAyNTUuOXpNNTc3LjIgMjM3LjlDNTc3IDIzNS4zIDU3Ni45IDIzMy4xIDU3Ni41IDIzMC45QzU3MC45IDIwMC4xIDU0Mi41IDE4Mi42IDUxMi45IDE4OS41QzQ4My45IDE5NiA0NjUuMiAyMTQuNCA0NTguNCAyNDMuN0M0NTIuOCAyNjggNDY0LjYgMjkyLjYgNDg3IDMwMi42QzUwNC4yIDMxMC4xIDUyMS4zIDMwOS4yIDUzNy44IDMwMC43QzU2Mi40IDI4Ny4xIDU3NS44IDI2OCA1NzcuNCAyNDEuMkM1NzcuMyAyNDAgNTc3LjMgMjM4LjkgNTc3LjIgMjM3Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2RyZWFkc0cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDIuNiA0MDMuM2gyLjhjMTIuNyAwIDI1LjUgMCAzOC4yLjEgMS42IDAgMy4xLS40IDMuNiAyLjEgNy4xIDM0LjkgMzAgNTQuNiA2Mi45IDYzLjkgMjYuOSA3LjYgNTQuMSA3LjggODEuMyAxLjggMzMuOC03LjQgNTYtMjguMyA2OC02MC40IDgtMjEuNSAxMC43LTQzLjggMTEtNjYuNS4xLTUuOC4zLTQ3LS4yLTUyLjhsLS45LS4zYy0uOCAxLjUtMS43IDIuOS0yLjUgNC40LTIyLjEgNDMuMS02MS4zIDY3LjQtMTA1LjQgNjkuMS0xMDMgNC0xNjkuNC01Ny0xNzItMTc2LjItLjUtMjMuNyAxLjgtNDYuOSA4LjMtNjkuN0M1OC4zIDQ3LjcgMTEyLjMuNiAxOTEuNiAwYzYxLjMtLjQgMTAxLjUgMzguNyAxMTYuMiA3MC4zLjUgMS4xIDEuMyAyLjMgMi40IDEuOVYxMC42aDQ0LjNjMCAyODAuMy4xIDMzMi4yLjEgMzMyLjItLjEgNzguNS0yNi43IDE0My43LTEwMyAxNjIuMi02OS41IDE2LjktMTU5IDQuOC0xOTYtNTcuMi04LTEzLjUtMTEuOC0yOC4zLTEzLTQ0LjV6TTE4OC45IDM2LjVjLTUyLjUtLjUtMTA4LjUgNDAuNy0xMTUgMTMzLjgtNC4xIDU5IDE0LjggMTIyLjIgNzEuNSAxNDguNiAyNy42IDEyLjkgNzQuMyAxNSAxMDguMy04LjcgNDcuNi0zMy4yIDYyLjctOTcgNTQuOC0xNTQtOS43LTcxLjEtNDcuOC0xMjAtMTE5LjYtMTE5Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2RyZWFkcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTkuOSAxOTEuMmM1LjEgMzcuMy00LjcgNzktMzUuOSAxMDAuNy0yMi4zIDE1LjUtNTIuOCAxNC4xLTcwLjggNS43LTM3LjEtMTcuMy00OS41LTU4LjYtNDYuOC05Ny4yIDQuMy02MC45IDQwLjktODcuOSA3NS4zLTg3LjUgNDYuOS0uMiA3MS44IDMxLjggNzguMiA3OC4zek00NDggODh2MzM2YzAgMzAuOS0yNS4xIDU2LTU2IDU2SDU2Yy0zMC45IDAtNTYtMjUuMS01Ni01NlY4OGMwLTMwLjkgMjUuMS01NiA1Ni01NmgzMzZjMzAuOSAwIDU2IDI1LjEgNTYgNTZ6TTMzMCAzMTMuMnMtLjEtMzQtLjEtMjE3LjNoLTI5djQwLjNjLS44LjMtMS4yLS41LTEuNi0xLjItOS42LTIwLjctMzUuOS00Ni4zLTc2LTQ2LTUxLjkuNC04Ny4yIDMxLjItMTAwLjYgNzcuOC00LjMgMTQuOS01LjggMzAuMS01LjUgNDUuNiAxLjcgNzcuOSA0NS4xIDExNy44IDExMi40IDExNS4yIDI4LjktMS4xIDU0LjUtMTcgNjktNDUuMi41LTEgMS4xLTEuOSAxLjctMi45LjIuMS40LjEuNi4yLjMgMy44LjIgMzAuNy4xIDM0LjUtLjIgMTQuOC0yIDI5LjUtNy4yIDQzLjUtNy44IDIxLTIyLjMgMzQuNy00NC41IDM5LjUtMTcuOCAzLjktMzUuNiAzLjgtNTMuMi0xLjItMjEuNS02LjEtMzYuNS0xOS00MS4xLTQxLjgtLjMtMS42LTEuMy0xLjMtMi4zLTEuM2gtMjYuOGMuOCAxMC42IDMuMiAyMC4zIDguNSAyOS4yIDI0LjIgNDAuNSA4Mi43IDQ4LjUgMTI4LjIgMzcuNCA0OS45LTEyLjMgNjcuMy01NC45IDY3LjQtMTA2LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2dsZURyaXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzOSAzMTQuOUwxNzUuNCAzMmgxNjEuMmwxNjMuNiAyODIuOUgzMzl6bS0xMzcuNSAyMy42TDEyMC45IDQ4MGgzMTAuNUw1MTIgMzM4LjVIMjAxLjV6TTE1NC4xIDY3LjRMMCAzMzguNSA4MC42IDQ4MCAyMzcgMjA4LjggMTU0LjEgNjcuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR29vZ2xlUGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwNS43MiwyMTV2NDEuMjVoNTcuMWE0OS42Niw0OS42NiwwLDAsMS0yMS4xNCwzMi42Yy05LjU0LDYuNTUtMjEuNzIsMTAuMjgtMzYsMTAuMjgtMjcuNiwwLTUwLjkzLTE4LjkxLTU5LjMtNDQuMjJhNjUuNjEsNjUuNjEsMCwwLDEsMC00MWwwLDBjOC4zNy0yNS40NiwzMS43LTQ0LjM3LDU5LjMtNDQuMzdhNTYuNDMsNTYuNDMsMCwwLDEsNDAuNTEsMTYuMDhMMTc2LjQ3LDE1NWExMDEuMjQsMTAxLjI0LDAsMCwwLTcwLjc1LTI3Ljg0LDEwNS41NSwxMDUuNTUsMCwwLDAtOTQuMzgsNTkuMTEsMTA3LjY0LDEwNy42NCwwLDAsMCwwLDk2LjE4di4xNWExMDUuNDEsMTA1LjQxLDAsMCwwLDk0LjM4LDU5YzI4LjQ3LDAsNTIuNTUtOS41Myw3MC0yNS45MSwyMC0xOC42MSwzMS40MS00Ni4xNSwzMS40MS03OC45MUExMzMuNzYsMTMzLjc2LDAsMCwwLDIwNS4zOCwyMTVabTM4OS40MS00Yy0xMC4xMy05LjM4LTIzLjkzLTE0LjE0LTQxLjM5LTE0LjE0LTIyLjQ2LDAtMzkuMzQsOC4zNC01MC41LDI0Ljg2bDIwLjg1LDEzLjI2cTExLjQ1LTE3LDMxLjI2LTE3YTM0LjA1LDM0LjA1LDAsMCwxLDIyLjc1LDguNzlBMjguMTQsMjguMTQsMCwwLDEsNDg3Ljc5LDI0OHY1LjUxYy05LjEtNS4wNy0yMC41NS03Ljc1LTM0LjY0LTcuNzUtMTYuNDQsMC0yOS42NSwzLjg4LTM5LjQ5LDExLjc3cy0xNC44MiwxOC4zMS0xNC44MiwzMS41NmEzOS43NCwzOS43NCwwLDAsMCwxMy45NCwzMS4yN2M5LjI1LDguMzQsMjEsMTIuNTEsMzQuNzksMTIuNTEsMTYuMjksMCwyOS4yMS03LjMsMzktMjEuODloMXYxNy43MmgyMi42MVYyNTBDNTEwLjI1LDIzMy40NSw1MDUuMjYsMjIwLjM0LDQ5NS4xMywyMTFaTTQ3NS45LDMwMC4zYTM3LjMyLDM3LjMyLDAsMCwxLTI2LjU3LDExLjE2QTI4LjYxLDI4LjYxLDAsMCwxLDQzMSwzMDUuMjFhMTkuNDEsMTkuNDEsMCwwLDEtNy43Ny0xNS42M2MwLTcsMy4yMi0xMi44MSw5LjU0LTE3LjQyczE0LjUzLTcsMjQuMDctN0M0NzAsMjY1LDQ4MC4zLDI2OCw0ODcuNjQsMjczLjk0LDQ4Ny42NCwyODQuMDcsNDgzLjY4LDI5Mi44NSw0NzUuOSwzMDAuM1ptLTkzLjY1LTE0MkE1NS43MSw1NS43MSwwLDAsMCwzNDEuNzQsMTQySDI3OS4wN1YzMjguNzRIMzAyLjdWMjUzLjFoMzljMTYsMCwyOS41LTUuMzYsNDAuNTEtMTUuOTMuODgtLjg5LDEuNzYtMS43OSwyLjY1LTIuNjhBNTQuNDUsNTQuNDUsMCwwLDAsMzgyLjI1LDE1OC4yNlptLTE2LjU4LDYyLjIzYTMwLjY1LDMwLjY1LDAsMCwxLTIzLjM0LDkuNjhIMzAyLjdWMTY1aDM5LjYzYTMyLDMyLDAsMCwxLDIyLjYsOS4yM0EzMy4xOCwzMy4xOCwwLDAsMSwzNjUuNjcsMjIwLjQ5Wk02MTQuMzEsMjAxLDU3Ny43NywyOTIuN2gtLjQ1TDUzOS45LDIwMUg1MTQuMjFMNTY2LDMyMC41NWwtMjkuMzUsNjQuMzJINTYxTDY0MCwyMDFaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2dsZVBsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzI1LjMgMjM0LjNMMTA0LjYgMTNsMjgwLjggMTYxLjItNjAuMSA2MC4xek00NyAwQzM0IDYuOCAyNS4zIDE5LjIgMjUuMyAzNS4zdjQ0MS4zYzAgMTYuMSA4LjcgMjguNSAyMS43IDM1LjNsMjU2LjYtMjU2TDQ3IDB6bTQyNS4yIDIyNS42bC01OC45LTM0LjEtNjUuNyA2NC41IDY1LjcgNjQuNSA2MC4xLTM0LjFjMTgtMTQuMyAxOC00Ni41LTEuMi02MC44ek0xMDQuNiA0OTlsMjgwLjgtMTYxLjItNjAuMS02MC4xTDEwNC42IDQ5OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR29vZ2xlUGx1c0cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg2LjA2MSAyMjguNDk2YzEuODM0IDkuNjkyIDMuMTQzIDE5LjM4NCAzLjE0MyAzMS45NTZDMzg5LjIwNCAzNzAuMjA1IDMxNS41OTkgNDQ4IDIwNC44IDQ0OGMtMTA2LjA4NCAwLTE5Mi04NS45MTUtMTkyLTE5MnM4NS45MTYtMTkyIDE5Mi0xOTJjNTEuODY0IDAgOTUuMDgzIDE4Ljg1OSAxMjguNjExIDUwLjI5MmwtNTIuMTI2IDUwLjAzYy0xNC4xNDUtMTMuNjIxLTM5LjAyOC0yOS41OTktNzYuNDg1LTI5LjU5OS02NS40ODQgMC0xMTguOTIgNTQuMjIxLTExOC45MiAxMjEuMjc3IDAgNjcuMDU2IDUzLjQzNiAxMjEuMjc3IDExOC45MiAxMjEuMjc3IDc1Ljk2MSAwIDEwNC41MTMtNTQuNzQ1IDEwOC45NjUtODIuNzczSDIwNC44di02Ni4wMDloMTgxLjI2MXptMTg1LjQwNiA2LjQzN1YxNzkuMmgtNTYuMDAxdjU1LjczM2gtNTUuNzMzdjU2LjAwMWg1NS43MzN2NTUuNzMzaDU2LjAwMXYtNTUuNzMzSDYyNy4ydi01Ni4wMDFoLTU1LjczM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR29vZ2xlUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYsOEMxMTkuMSw4LDgsMTE5LjEsOCwyNTZTMTE5LjEsNTA0LDI1Niw1MDQsNTA0LDM5Mi45LDUwNCwyNTYsMzkyLjksOCwyNTYsOFpNMTg1LjMsMzgwYTEyNCwxMjQsMCwwLDEsMC0yNDhjMzEuMywwLDYwLjEsMTEsODMsMzIuM2wtMzMuNiwzMi42Yy0xMy4yLTEyLjktMzEuMy0xOS4xLTQ5LjQtMTkuMS00Mi45LDAtNzcuMiwzNS41LTc3LjIsNzguMVMxNDIuMywzMzQsMTg1LjMsMzM0YzMyLjYsMCw2NC45LTE5LjEsNzAuMS01My4zSDE4NS4zVjIzOC4xSDMwMi4yYTEwOS4yLDEwOS4yLDAsMCwxLDEuOSwyMC43YzAsNzAuOC00Ny41LDEyMS4yLTExOC44LDEyMS4yWk00MTUuNSwyNzMuOHYzNS41SDM4MFYyNzMuOEgzNDQuNVYyMzguM0gzODBWMjAyLjhoMzUuNXYzNS41aDM1LjJ2MzUuNVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR29vZ2xlU2Nob2xhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTAuOSAyOTguNWMwIDAgMCAuMSAuMSAuMWM5LjIgMTkuNCAxNC40IDQxLjEgMTQuNCA2NEM0MDUuMyA0NDUuMSAzMzguNSA1MTIgMjU2IDUxMnMtMTQ5LjMtNjYuOS0xNDkuMy0xNDkuM2MwLTIyLjkgNS4yLTQ0LjYgMTQuNC02NGgwYzEuNy0zLjYgMy42LTcuMiA1LjYtMTAuN2M0LjQtNy42IDkuNC0xNC43IDE1LTIxLjNjMjcuNC0zMi42IDY4LjUtNTMuMyAxMTQuNC01My4zYzMzLjYgMCA2NC42IDExLjEgODkuNiAyOS45YzkuMSA2LjkgMTcuNCAxNC43IDI0LjggMjMuNWM1LjYgNi42IDEwLjYgMTMuOCAxNSAyMS4zYzIgMy40IDMuOCA3IDUuNSAxMC41em0yNi40LTE4LjhjLTMwLjEtNTguNC05MS05OC40LTE2MS4zLTk4LjRzLTEzMS4yIDQwLTE2MS4zIDk4LjRMMCAyMDIuNyAyNTYgMCA1MTIgMjAyLjdsLTk0LjcgNzcuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR29vZ2xlV2FsbGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1Ni44IDEyNi44YzM3LjYgNjAuNiA2NC4yIDExMy4xIDg0LjMgMTYyLjUtOC4zIDMzLjgtMTguOCA2Ni41LTMxLjMgOTguMy0xMy4yLTUyLjMtMjYuNS0xMDEuMy01Ni0xNDguNSA2LjUtMzYuNCAyLjMtNzMuNiAzLTExMi4zek0xMDkuMyAyMDBIMTYuMWMtNi41IDAtMTAuNSA3LjUtNi41IDEyLjdDNTEuOCAyNjcgODEuMyAzMzAuNSAxMDEuMyA0MDBoMTAzLjVjLTE2LjItNjkuNy0zOC43LTEzMy43LTgyLjUtMTkzLjUtMy00LTgtNi41LTEzLTYuNXptNDcuOC04OGM2OC41IDEwOCAxMzAgMjM0LjUgMTM4LjIgMzY4SDQwOWMtMTItMTM4LTY4LjQtMjY1LTE0My4yLTM2OEgxNTcuMXptMjUxLjgtNjguNWMtMS44LTYuOC04LjItMTEuNS0xNS4yLTExLjVoLTg4LjNjLTUuMyAwLTkgNS03LjggMTAuMyAxMy4yIDQ2LjUgMjIuMyA5NS41IDI2LjUgMTQ2IDQ4LjIgODYuMiA3OS43IDE3OC4zIDkwLjYgMjcwLjggMTUuOC02MC41IDI1LjMtMTMzLjUgMjUuMy0yMDMgMC03My42LTEyLjEtMTQ1LjEtMzEuMS0yMTIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR29vZ2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0ODggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4OCAyNjEuOEM0ODggNDAzLjMgMzkxLjEgNTA0IDI0OCA1MDQgMTEwLjggNTA0IDAgMzkzLjIgMCAyNTZTMTEwLjggOCAyNDggOGM2Ni44IDAgMTIzIDI0LjUgMTY2LjMgNjQuOWwtNjcuNSA2NC45QzI1OC41IDUyLjYgOTQuMyAxMTYuNiA5NC4zIDI1NmMwIDg2LjUgNjkuMSAxNTYuNiAxNTMuNyAxNTYuNiA5OC4yIDAgMTM1LTcwLjQgMTQwLjgtMTA2LjlIMjQ4di04NS4zaDIzNi4xYzIuMyAxMi43IDMuOSAyNC45IDMuOSA0MS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmF0aXBheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEuMSA4IDAgMTE5LjEgMCAyNTZzMTExLjEgMjQ4IDI0OCAyNDggMjQ4LTExMS4xIDI0OC0yNDhTMzg0LjkgOCAyNDggOHptMTE0LjYgMjI2LjRsLTExMyAxNTIuNy0xMTIuNy0xNTIuN2MtOC43LTExLjktMTkuMS01MC40IDEzLjYtNzIgMjguMS0xOC4xIDU0LjYtNC4yIDY4LjUgMTEuOSAxNS45IDE3LjkgNDYuNiAxNi45IDYxLjcgMCAxMy45LTE2LjEgNDAuNC0zMCA2OC4xLTExLjkgMzIuOSAyMS42IDIyLjYgNjAgMTMuOCA3MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JhdiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDEuMSAyMTJjNC40IDQuNCA0LjQgMTEuOSAwIDE2LjNsLTkuNyA5LjdjLTQuNCA0LjctMTEuOSA0LjctMTYuNiAwbC0xMC41LTEwLjVjLTQuNC00LjctNC40LTExLjkgMC0xNi42bDkuNy05LjdjNC40LTQuNCAxMS45LTQuNCAxNi42IDBsMTAuNSAxMC44em0tMzAuMi0xOS43YzMtMyAzLTcuOCAwLTEwLjUtMi44LTMtNy41LTMtMTAuNSAwLTIuOCAyLjgtMi44IDcuNSAwIDEwLjUgMy4xIDIuOCA3LjggMi44IDEwLjUgMHptLTI2IDUuM2MtMyAyLjgtMyA3LjUgMCAxMC4yIDIuOCAzIDcuNSAzIDEwLjUgMCAyLjgtMi44IDIuOC03LjUgMC0xMC4yLTMtMy03LjctMy0xMC41IDB6bTcyLjUtMTMuM2MtMTkuOS0xNC40LTMzLjgtNDMuMi0xMS45LTY4LjEgMjEuNi0yNC45IDQwLjctMTcuMiA1OS44LjggMTEuOSAxMS4zIDI5LjMgMjQuOSAxNy4yIDQ4LjItMTIuNSAyMy41LTQ1LjEgMzMuMi02NS4xIDE5LjF6bTQ3LjctNDQuNWMtOC45LTEwLTIzLjMgNi45LTE1LjUgMTYuMSA3LjQgOSAzMi4xIDIuNCAxNS41LTE2LjF6TTUwNCAyNTZjMCAxMzctMTExIDI0OC0yNDggMjQ4UzggMzkzIDggMjU2IDExOSA4IDI1NiA4czI0OCAxMTEgMjQ4IDI0OHptLTY2LjIgNDIuNmMyLjUtMTYuMS0yMC4yLTE2LjYtMjUuMi0yNS43LTEzLjYtMjQuMS0yNy43LTM2LjgtNTQuNS0zMC40IDExLjYtOCAyMy41LTYuMSAyMy41LTYuMS4zLTYuNCAwLTEzLTkuNC0yNC45IDMuOS0xMi41LjMtMjIuNC4zLTIyLjQgMTUuNS04LjYgMjYuOC0yNC40IDI5LjEtNDMuMiAzLjYtMzEtMTguOC01OS4yLTQ5LjgtNjIuOC0yMi4xLTIuNS00My43IDcuNy01NC4zIDI1LjctMjMuMiA0MC4xIDEuNCA3MC45IDIyLjQgODEuNC0xNC40LTEuNC0zNC4zLTExLjktNDAuMS0zNC4zLTYuNi0yNS43IDIuOC00OS44IDguOS02MS40IDAgMC00LjQtNS44LTgtOC45IDAgMC0xMy44IDAtMjQuNiA1LjMgMTEuOS0xNS4yIDI1LjItMTQuNCAyNS4yLTE0LjQgMC02LjQtLjYtMTQuOS0zLjYtMjEuNi01LjQtMTEtMjMuOC0xMi45LTMxLjcgMi44LjEtLjIuMy0uNC40LS41LTUgMTEuOS0xLjEgNTUuOSAxNi45IDg3LjItMi41IDEuNC05LjEgNi4xLTEzIDEwLTIxLjYgOS43LTU2LjIgNjAuMy01Ni4yIDYwLjMtMjguMiAxMC44LTc3LjIgNTAuOS03MC42IDc5LjcuMyAzIDEuNCA1LjUgMyA3LjUtMi44IDIuMi01LjUgNS04LjMgOC4zLTExLjkgMTMuOC01LjMgMzUuMiAxNy43IDI0LjQgMTUuOC03LjIgMjkuNi0yMC4yIDM2LjMtMzAuNCAwIDAtNS41LTUtMTYuMy00LjQgMjcuNy02LjYgMzQuMy05LjQgNDYuMi05LjEgOCAzLjkgOC0zNC4zIDgtMzQuMyAwLTE0LjctMi4yLTMxLTExLjEtNDEuNSAxMi41IDEyLjIgMjkuMSAzMi43IDI4IDYwLjYtLjggMTguMy0xNS4yIDIzLTE1LjIgMjMtOS4xIDE2LjYtNDMuMiA2NS45LTMwLjQgMTA2IDAgMC05LjctMTQuOS0xMC4yLTIyLjEtMTcuNCAxOS40LTQ2LjUgNTIuMy0yNC42IDY0LjUgMjYuNiAxNC43IDEwOC44LTg4LjYgMTI2LjItMTQyLjMgMzQuNi0yMC44IDU1LjQtNDcuMyA2My45LTY1IDIyIDQzLjUgOTUuMyA5NC41IDEwMS4xIDU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmlwZmlyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTIuNSAzMDEuNGMwLTczLjggMTA1LjEtMTIyLjUgMTA1LjEtMjAzIDAtNDcuMS0zNC04OC0zOS4xLTkwLjQuNCAzLjMuNiA2LjcuNiAxMEMxNzkuMSAxMTAuMSAzMiAxNzEuOSAzMiAyODYuNmMwIDQ5LjggMzIuMiA3OS4yIDY2LjUgMTA4LjMgNjUuMSA0Ni43IDc4LjEgNzEuNCA3OC4xIDg2LjYgMCAxMC4xLTQuOCAxNy00LjggMjIuMyAxMy4xLTE2LjcgMTcuNC0zMS45IDE3LjUtNDYuNCAwLTI5LjYtMjEuNy01Ni4zLTQ0LjItODYuNS0xNi0yMi4zLTMyLjYtNDIuNi0zMi42LTY5LjV6bTIwNS4zLTM5Yy0xMi4xLTY2LjgtNzgtMTI0LjQtOTQuNy0xMzAuOWw0IDcuMmMyLjQgNS4xIDMuNCAxMC45IDMuNCAxNy4xIDAgNDQuNy01NC4yIDExMS4yLTU2LjYgMTE2LjctMi4yIDUuMS0zLjIgMTAuNS0zLjIgMTUuOCAwIDIwLjEgMTUuMiA0Mi4xIDE3LjkgNDIuMSAyLjQgMCA1Ni42LTU1LjQgNTguMS04Ny43IDYuNCAxMS43IDkuMSAyMi42IDkuMSAzMy40IDAgNDEuMi00MS44IDk2LjktNDEuOCA5Ni45IDAgMTEuNiAzMS45IDUzLjIgMzUuNSA1My4yIDEgMCAyLjItMS40IDMuMi0yLjQgMzcuOS0zOS4zIDY3LjMtODUgNjcuMy0xMzYuOCAwLTgtLjctMTYuMi0yLjItMjQuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3J1bnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjEuMyAxODkuM2MtMS4xIDEwIDUuMiAxOS4xIDUuMiAxOS4xLjctNy41IDIuMi0xMi44IDQtMTYuNi40IDEwLjMgMy4yIDIzLjUgMTIuOCAzNC4xIDYuOSA3LjYgMzUuNiAyMy4zIDU0LjkgNi4xIDEgMi40IDIuMSA1LjMgMyA4LjUgMi45IDEwLjMtMi43IDI1LjMtMi43IDI1LjNzMTUuMS0xNy4xIDEzLjktMzIuNWMxMC44LS41IDIxLjQtOC40IDIxLjEtMTkuNSAwIDAtMTguOSAxMC40LTM1LjUtOC44LTkuNy0xMS4yLTQwLjktNDItODMuMS0zMS44IDQuMyAxIDguOSAyLjQgMTMuNSA0LjFoLS4xYy00LjIgMi02LjUgNy4xLTcgMTJ6bTI4LjMtMS44YzE5LjUgMTEgMzcuNCAyNS43IDQ0LjkgMzctNS43IDMuMy0yMS43IDEwLjQtMzgtMS43LTEwLjMtNy42LTkuOC0yNi4yLTYuOS0zNS4zem0xNDIuMSA0NS44Yy0xLjIgMTUuNSAxMy45IDMyLjUgMTMuOSAzMi41cy01LjYtMTUtMi43LTI1LjNjLjktMy4yIDItNiAzLTguNSAxOS4zIDE3LjMgNDggMS41IDU0LjgtNi4xIDkuNi0xMC42IDEyLjMtMjMuOCAxMi44LTM0LjEgMS44IDMuOCAzLjQgOS4xIDQgMTYuNiAwIDAgNi40LTkuMSA1LjItMTkuMS0uNi01LTIuOS0xMC03LTExLjhoLS4xYzQuNi0xLjggOS4yLTMuMiAxMy41LTQuMS00Mi4zLTEwLjItNzMuNCAyMC42LTgzLjEgMzEuOC0xNi43IDE5LjItMzUuNSA4LjgtMzUuNSA4LjgtLjIgMTAuOSAxMC40IDE4LjkgMjEuMiAxOS4zem02Mi43LTQ1LjhjMyA5LjEgMy40IDI3LjctNyAzNS40LTE2LjMgMTIuMS0zMi4yIDUtMzcuOSAxLjYgNy41LTExLjQgMjUuNC0yNiA0NC45LTM3ek0xNjAgNDE4LjVoLTI5LjRjLTUuNSAwLTguMiAxLjYtOS41IDIuOS0xLjkgMi0yLjIgNC43LS45IDguMSAzLjUgOS4xIDExLjQgMTYuNSAxMy43IDE4LjYgMy4xIDIuNyA3LjUgNC4zIDExLjggNC4zIDQuNCAwIDguMy0xLjcgMTEtNC42IDcuNS04LjIgMTEuOS0xNy4xIDEzLTE5LjguNi0xLjUgMS4zLTQuNS0uOS02LjgtMS44LTEuOC00LjctMi43LTguOC0yLjd6bTE4OS4yLTEwMS4yYy0yLjQgMTcuOS0xMyAzMy44LTI0LjYgNDMuNy0zLjEtMjIuNy0zLjctNTUuNS0zLjctNjIuNCAwLTE0LjcgOS41LTI0LjUgMTIuMi0yNi4xIDIuNS0xLjUgNS40LTMgOC4zLTQuNiAxOC05LjYgNDAuNC0yMS42IDQwLjQtNDMuNyAwLTE2LjItOS4zLTIzLjItMTUuNC0yNy44LS44LS42LTEuNS0xLjEtMi4yLTEuNy0yLjEtMS43LTMuNy0zLTQuMy00LjQtNC40LTkuOC0zLjYtMzQuMi0xLjctMzcuNi42LS42IDE2LjctMjAuOSAxMS44LTM5LjItMi03LjQtNi45LTEzLjMtMTQuMS0xNy01LjMtMi43LTExLjktNC4yLTE5LjUtNC41LS4xLTItLjUtMy45LS45LTUuOS0uNi0yLjYtMS4xLTUuMy0uOS04LjEuNC00LjcuOC05IDIuMi0xMS4zIDguNC0xMy4zIDI4LjgtMTcuNiAyOS0xNy42bDEyLjMtMi40LTguMS05LjVjLS4xLS4yLTE3LjMtMTcuNS00Ni4zLTE3LjUtNy45IDAtMTYgMS4zLTI0LjEgMy45LTI0LjIgNy44LTQyLjkgMzAuNS00OS40IDM5LjMtMy4xLTEtNi4zLTEuOS05LjYtMi43LTQuMi0xNS44IDktMzguNSA5LTM4LjVzLTEzLjYtMy0zMy43IDE1LjJjLTIuNi02LjUtOC4xLTIwLjUtMS44LTM3LjJDMTg0LjYgMTAuMSAxNzcuMiAyNiAxNzUgNDAuNGMtNy42LTUuNC02LjctMjMuMS03LjItMjcuNi03LjUuOS0yOS4yIDIxLjktMjguMiA0OC4zLTIgLjUtMy45IDEuMS01LjkgMS43LTYuNS04LjgtMjUuMS0zMS41LTQ5LjQtMzkuMy03LjktMi4yLTE2LTMuNS0yMy45LTMuNS0yOSAwLTQ2LjEgMTcuMy00Ni4zIDE3LjVMNiA0Ni45bDEyLjMgMi40Yy4yIDAgMjAuNiA0LjMgMjkgMTcuNiAxLjQgMi4yIDEuOCA2LjYgMi4yIDExLjMuMiAyLjgtLjQgNS41LS45IDguMS0uNCAxLjktLjggMy45LS45IDUuOS03LjcuMy0xNC4yIDEuOC0xOS41IDQuNS03LjIgMy43LTEyLjEgOS42LTE0LjEgMTctNSAxOC4yIDExLjIgMzguNSAxMS44IDM5LjIgMS45IDMuNCAyLjcgMjcuOC0xLjcgMzcuNi0uNiAxLjQtMi4yIDIuNy00LjMgNC40LS43LjUtMS40IDEuMS0yLjIgMS43LTYuMSA0LjYtMTUuNCAxMS43LTE1LjQgMjcuOCAwIDIyLjEgMjIuNCAzNC4xIDQwLjQgNDMuNyAzIDEuNiA1LjggMy4xIDguMyA0LjYgMi43IDEuNiAxMi4yIDExLjQgMTIuMiAyNi4xIDAgNi45LS42IDM5LjctMy43IDYyLjQtMTEuNi05LjktMjIuMi0yNS45LTI0LjYtNDMuOCAwIDAtMjkuMiAyMi42LTIwLjYgNzAuOCA1LjIgMjkuNSAyMy4yIDQ2LjEgNDcgNTQuNyA4LjggMTkuMSAyOS40IDQ1LjcgNjcuMyA0OS42QzE0MyA1MDQuMyAxNjMgNTEyIDE5Mi4yIDUxMmguMmMyOS4xIDAgNDkuMS03LjcgNjMuNi0xOS41IDM3LjktMy45IDU4LjUtMzAuNSA2Ny4zLTQ5LjYgMjMuOC04LjcgNDEuNy0yNS4yIDQ3LTU0LjcgOC4yLTQ4LjQtMjEuMS03MC45LTIxLjEtNzAuOXpNMzA1LjcgMzcuN2M1LjYtMS44IDExLjYtMi43IDE3LjctMi43IDExIDAgMTkuOSAzIDI0LjcgNS0zLjEgMS40LTYuNCAzLjItOS43IDUuMy0yLjQtLjQtNS42LS44LTkuMi0uOC0xMC41IDAtMjAuNSAzLjEtMjguNyA4LjktMTIuMyA4LjctMTggMTYuOS0yMC43IDIyLjQtMi4yLTEuMy00LjUtMi41LTcuMS0zLjctMS42LS44LTMuMS0xLjUtNC43LTIuMiA2LjEtOS4xIDE5LjktMjYuNSAzNy43LTMyLjJ6bTIxIDE4LjJjLS44IDEtMS42IDIuMS0yLjMgMy4yLTMuMyA1LjItMy45IDExLjYtNC40IDE3LjgtLjUgNi40LTEuMSAxMi41LTQuNCAxNy00LjIuOC04LjEgMS43LTExLjUgMi43LTIuMy0zLjEtNS42LTctMTAuNS0xMS4yIDEuNC00LjggNS41LTE2LjEgMTMuNS0yMi41IDUuNi00LjMgMTIuMi02LjcgMTkuNi03ek00NS42IDQ1LjNjLTMuMy0yLjItNi42LTQtOS43LTUuMyA0LjgtMiAxMy43LTUgMjQuNy01IDYuMSAwIDEyIC45IDE3LjcgMi43IDE3LjggNS44IDMxLjYgMjMuMiAzNy43IDMyLjEtMS42LjctMy4yIDEuNC00LjggMi4yLTIuNSAxLjItNC45IDIuNS03LjEgMy43LTIuNi01LjQtOC4zLTEzLjctMjAuNy0yMi40LTguMy01LjgtMTguMi04LjktMjguOC04LjktMy40LjEtNi42LjUtOSAuOXptNDQuNyA0MC4xYy00LjkgNC4yLTguMyA4LTEwLjUgMTEuMi0zLjQtLjktNy4zLTEuOS0xMS41LTIuN0M2NSA4OS41IDY0LjUgODMuNCA2NCA3N2MtLjUtNi4yLTEuMS0xMi42LTQuNC0xNy44LS43LTEuMS0xLjUtMi4yLTIuMy0zLjIgNy40LjMgMTQgMi42IDE5LjUgNyA4IDYuMyAxMi4xIDE3LjYgMTMuNSAyMi40ek01OC4xIDI1OS45Yy0yLjctMS42LTUuNi0zLjEtOC40LTQuNi0xNC45LTgtMzAuMi0xNi4zLTMwLjItMzAuNSAwLTExLjEgNC4zLTE0LjYgOC45LTE4LjJsLjUtLjRjLjctLjYgMS40LTEuMiAyLjItMS44LS45IDcuMi0xLjkgMTMuMy0yLjcgMTQuOSAwIDAgMTIuMS0xNSAxNS43LTQ0LjMgMS40LTExLjUtMS4xLTM0LjMtNS4xLTQzIC4yIDQuOSAwIDkuOC0uMyAxNC40LS40LS44LS44LTEuNi0xLjMtMi4yLTMuMi00LTExLjgtMTcuNS05LjQtMjYuNi45LTMuNSAzLjEtNiA2LjctNy44IDMuOC0xLjkgOC44LTIuOSAxNS4xLTIuOSAxMi4zIDAgMjUuOSAzLjcgMzIuOSA2IDI1LjEgOCA1NS40IDMwLjkgNjQuMSAzNy43LjIuMi40LjMuNC4zbDUuNiAzLjktMy41LTUuOGMtLjItLjMtMTkuMS0zMS40LTUzLjItNDYuNSAyLTIuOSA3LjQtOC4xIDIxLjYtMTUuMSAyMS40LTEwLjUgNDYuNS0xNS44IDc0LjMtMTUuOCAyNy45IDAgNTIuOSA1LjMgNzQuMyAxNS44IDE0LjIgNi45IDE5LjYgMTIuMiAyMS42IDE1LjEtMzQgMTUuMS01Mi45IDQ2LjItNTMuMSA0Ni41bC0zLjUgNS44IDUuNi0zLjlzLjItLjEuNC0uM2M4LjctNi44IDM5LTI5LjggNjQuMS0zNy43IDctMi4yIDIwLjYtNiAzMi45LTYgNi4zIDAgMTEuMyAxIDE1LjEgMi45IDMuNSAxLjggNS43IDQuNCA2LjcgNy44IDIuNSA5LjEtNi4xIDIyLjYtOS40IDI2LjYtLjUuNi0uOSAxLjMtMS4zIDIuMi0uMy00LjYtLjUtOS41LS4zLTE0LjQtNCA4LjgtNi41IDMxLjUtNS4xIDQzIDMuNiAyOS4zIDE1LjcgNDQuMyAxNS43IDQ0LjMtLjgtMS42LTEuOC03LjctMi43LTE0LjkuNy42IDEuNSAxLjIgMi4yIDEuOGwuNS40YzQuNiAzLjcgOC45IDcuMSA4LjkgMTguMiAwIDE0LjItMTUuNCAyMi41LTMwLjIgMzAuNS0yLjkgMS41LTUuNyAzLjEtOC40IDQuNi04LjcgNS0xOCAxNi43LTE5LjEgMzQuMi0uOSAxNC42LjkgNDkuOSAzLjQgNzUuOS0xMi40IDQuOC0yNi43IDYuNC0zOS43IDYuOC0yLTQuMS0zLjktOC41LTUuNS0xMy4xLS43LTItMTkuNi01MS4xLTI2LjQtNjIuMiA1LjUgMzkgMTcuNSA3My43IDIzLjUgODkuNi0zLjUtLjUtNy4zLS43LTExLjctLjdoLTExN2MtNC40IDAtOC4zLjMtMTEuNy43IDYtMTUuOSAxOC4xLTUwLjYgMjMuNS04OS42LTYuOCAxMS4yLTI1LjcgNjAuMy0yNi40IDYyLjItMS42IDQuNi0zLjUgOS01LjUgMTMuMS0xMy0uNC0yNy4yLTItMzkuNy02LjggMi41LTI2IDQuMy02MS4yIDMuNC03NS45LS45LTE3LjQtMTAuMy0yOS4yLTE5LTM0LjJ6TTM0LjggNDA0LjZjLTEyLjEtMjAtOC43LTU0LjEtMy43LTU5LjEgMTAuOSAzNC40IDQ3LjIgNDQuMyA3NC40IDQ1LjQtMi43IDQuMi01LjIgNy42LTcgMTBsLTEuNCAxLjRjLTcuMiA3LjgtOC42IDE4LjUtNC4xIDMxLjgtMjIuNy0uMS00Ni4zLTkuOC01OC4yLTI5LjV6bTQ1LjcgNDMuNWM2IDEuMSAxMi4yIDEuOSAxOC42IDIuNCAzLjUgOCA3LjQgMTUuOSAxMi4zIDIzLjEtMTQuNC01LjktMjQuNC0xNi0zMC45LTI1LjV6TTE5MiA0OTguMmMtNjAuNi0uMS03OC4zLTQ1LjgtODQuOS02NC43LTMuNy0xMC41LTMuNC0xOC4yLjktMjMuMSAyLjktMy4zIDkuNS03LjIgMjQuNi03LjJoMTE4LjhjMTUuMSAwIDIxLjggMy45IDI0LjYgNy4yIDQuMiA0LjggNC41IDEyLjYuOSAyMy4xLTYuNiAxOC44LTI0LjMgNjQuNi04NC45IDY0Ljd6bTgwLjYtMjQuNmM0LjktNy4yIDguOC0xNS4xIDEyLjMtMjMuMSA2LjQtLjUgMTIuNi0xLjMgMTguNi0yLjQtNi41IDkuNS0xNi41IDE5LjYtMzAuOSAyNS41em03Ni42LTY5Yy0xMiAxOS43LTM1LjYgMjkuMy01OC4xIDI5LjcgNC41LTEzLjMgMy4xLTI0LjEtNC4xLTMxLjgtLjQtLjUtLjktMS0xLjQtMS41LTEuOC0yLjQtNC4zLTUuOC03LTEwIDI3LjItMS4yIDYzLjUtMTEgNzQuNC00NS40IDUgNSA4LjQgMzkuMS0zLjggNTl6TTE5MS45IDE4Ny43aC4yYzEyLjctLjEgMjcuMi0xNy44IDI3LjItMTcuOC05LjkgNi0xOC44IDguMS0yNy4zIDguMy04LjUtLjItMTcuNC0yLjMtMjcuMy04LjMgMCAwIDE0LjUgMTcuNiAyNy4yIDE3Ljh6bTYxLjcgMjMwLjdoLTI5LjRjLTQuMiAwLTcuMi45LTguOSAyLjctMi4yIDIuMy0xLjUgNS4yLS45IDYuNyAxIDIuNiA1LjUgMTEuMyAxMyAxOS4zIDIuNyAyLjkgNi42IDQuNSAxMSA0LjVzOC43LTEuNiAxMS44LTQuMmMyLjMtMiAxMC4yLTkuMiAxMy43LTE4LjEgMS4zLTMuMyAxLTYtLjktNy45LTEuMy0xLjMtNC0yLjktOS40LTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUd1aWxkZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQzLjQyNyw2NEg0LjU3MWMwLDEwMy4yNiwyMi4xOTIsMTgwLjA2LDQzLjQxOCwyMjIuMzU4QzExMi4wNDYsNDE0LjEzNSwyMjQsNDQ4LDIyNS4yNTYsNDQ4YTMxMi44MjQsMzEyLjgyNCwwLDAsMCwxNDAuNTUtMTAzLjQ3N2MyNS45MDctMzMuOTIzLDUzLjEtODcuMTksNjUuOTE2LTE0NS43NjFIMTcxLjgzM2M0LjE0LDM2LjQyOSwyMi4xNzcsNjcuOTQ2LDQ1LjEsODYuOTQ0aDg4LjU4OWMtMTcuMDEyLDI4LjIxMy00OC4xODYsNTQuNC04MC40NTYsNjkuNDgyLTMxLjIzMi0xMy4yNTktNjkuMDktNDYuNTQ0LTk2LjU0OC05OC4zNjItMjYuNzI2LTUzLjgzMy0yNy4wOTItMTA1Ljg4My0yNy4wOTItMTA1Ljg4M0g0MzcuNTczQTYyNS45MSw2MjUuOTEsMCwwLDAsNDQzLjQyNyw2NFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3VscCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDkuOCAzOTEuMWwtMTQuMSAyNC42LTQuNiA4MC4yYzAgOC45LTI4LjMgMTYuMS02My4xIDE2LjFzLTYzLjEtNy4yLTYzLjEtMTYuMWwtNS44LTc5LjQtMTQuOS0yNS40YzQxLjIgMTcuMyAxMjYgMTYuNyAxNjUuNiAwem0tMTk2LTI1My4zbDEzLjYgMTI1LjVjNS45LTIwIDIwLjgtNDcgNDAtNTUuMiA2LjMtMi43IDEyLjctMi43IDE4LjcuOSA1LjIgMyA5LjYgOS4zIDEwLjEgMTEuOCAxLjIgNi41LTIgOS4xLTQuNSA5LjEtMyAwLTUuMy00LjYtNi44LTcuMy00LjEtNy4zLTEwLjMtNy42LTE2LjktMi44LTYuOSA1LTEyLjkgMTMuNC0xNy4xIDIwLjctNS4xIDguOC05LjQgMTguNS0xMiAyOC4yLTEuNSA1LjYtMi45IDE0LjYtLjYgMTkuOSAxIDIuMiAyLjUgMy42IDQuOSAzLjYgNSAwIDEyLjMtNi42IDE1LjgtMTAuMSA0LjUtNC41IDEwLjMtMTEuNSAxMi41LTE2bDUuMi0xNS41YzIuNi02LjggOS45LTUuNiA5LjkgMCAwIDEwLjItMy43IDEzLjYtMTAgMzQuNy01LjggMTkuNS03LjYgMjUuOC03LjYgMjUuOC0uNyAyLjgtMy40IDcuNS02LjMgNy41LTEuMiAwLTIuMS0uNC0yLjYtMS4yLTEtMS40LS45LTUuMy0uOC02LjMuMi0zLjIgNi4zLTIyLjIgNy4zLTI1LjItMiAyLjItNC4xIDQuNC02LjQgNi42LTUuNCA1LjEtMTQuMSAxMS44LTIxLjUgMTEuOC0zLjQgMC01LjYtLjktNy43LTIuNGw3LjYgNzkuNmMyIDUgMzkuMiAxNy4xIDg4LjIgMTcuMSA0OS4xIDAgODYuMy0xMi4yIDg4LjItMTcuMWwxMC45LTk0LjZjLTUuNyA1LjItMTIuMyAxMS42LTE5LjYgMTQuOC01LjQgMi4zLTE3LjQgMy44LTE3LjQtNS43IDAtNS4yIDkuMS0xNC44IDE0LjQtMjEuNSAxLjQtMS43IDQuNy01LjkgNC43LTguMSAwLTIuOS02LTIuMi0xMS43IDIuNS0zLjIgMi43LTYuMiA2LjMtOC43IDkuNy00LjMgNi02LjYgMTEuMi04LjUgMTUuNS02LjIgMTQuMi00LjEgOC42LTkuMSAyMi01IDEzLjMtNC4yIDExLjgtNS4yIDE0LS45IDEuOS0yLjIgMy41LTQgNC41LTEuOSAxLTQuNS45LTYuMS0uMy0uOS0uNi0xLjMtMS45LTEuMy0zLjcgMC0uOS4xLTEuOC4zLTIuNyAxLjUtNi4xIDcuOC0xOC4xIDE1LTM0LjMgMS42LTMuNyAxLTIuNi44LTIuMy02LjIgNi0xMC45IDguOS0xNC40IDEwLjUtNS44IDIuNi0xMyAyLjYtMTQuNS00LjEtLjEtLjQtLjEtLjgtLjItMS4yLTExLjggOS4yLTI0LjMgMTEuNy0yMC04LjEtNC42IDguMi0xMi42IDE0LjktMjIuNCAxNC45LTQuMSAwLTcuMS0xLjQtOC42LTUuMS0yLjMtNS41IDEuMy0xNC45IDQuNi0yMy44IDEuNy00LjUgNC05LjkgNy4xLTE2LjIgMS42LTMuNCA0LjItNS40IDcuNi00LjUuNi4yIDEuMS40IDEuNi43IDIuNiAxLjggMS42IDQuNS4zIDcuMi0zLjggNy41LTcuMSAxMy05LjMgMjAuOC0uOSAzLjMtMiA5IDEuNSA5IDIuNCAwIDQuNy0uOCA2LjktMi40IDQuNi0zLjQgOC4zLTguNSAxMS4xLTEzLjUgMi0zLjYgNC40LTguMyA1LjYtMTIuMy41LTEuNyAxLjEtMy4zIDEuOC00LjggMS4xLTIuNSAyLjYtNS4xIDUuMi01LjEgMS4zIDAgMi40LjUgMy4yIDEuNSAxLjcgMi4yIDEuMyA0LjUuNCA2LjktMiA1LjYtNC43IDEwLjYtNi45IDE2LjctMS4zIDMuNS0yLjcgOC0yLjcgMTEuNyAwIDMuNCAzLjcgMi42IDYuOCAxLjIgMi40LTEuMSA0LjgtMi44IDYuOC00LjUgMS4yLTQuOS45LTMuOCAyNi40LTY4LjIgMS4zLTMuMyAzLjctNC43IDYuMS00LjcgMS4yIDAgMi4yLjQgMy4yIDEuMSAxLjcgMS4zIDEuNyA0LjEgMSA2LjItLjcgMS45LS42IDEuMy00LjUgMTAuNS01LjIgMTIuMS04LjYgMjAuOC0xMy4yIDMxLjktMS45IDQuNi03LjcgMTguOS04LjcgMjIuMy0uNiAyLjItMS4zIDUuOCAxIDUuOCA1LjQgMCAxOS4zLTEzLjEgMjMuMS0xNyAuMi0uMy41LS40LjktLjYuNi0xLjkgMS4yLTMuNyAxLjctNS41IDEuNC0zLjggMi43LTguMiA1LjMtMTEuMy44LTEgMS43LTEuNiAyLjctMS42IDIuOCAwIDQuMiAxLjIgNC4yIDQgMCAxLjEtLjcgNS4xLTEuMSA2LjIgMS40LTEuNSAyLjktMyA0LjUtNC41IDE1LTEzLjkgMjUuNy02LjggMjUuNy4yIDAgNy40LTguOSAxNy43LTEzLjggMjMuNC0xLjYgMS45LTQuOSA1LjQtNSA2LjQgMCAxLjMuOSAxLjggMi4yIDEuOCAyIDAgNi40LTMuNSA4LTQuNyA1LTMuOSAxMS44LTkuOSAxNi42LTE0LjFsMTQuOC0xMzYuOGMtMzAuNSAxNy4xLTE5Ny42IDE3LjItMjI4LjMuMnptMjI5LjctOC41YzAgMjEtMjMxLjIgMjEtMjMxLjIgMCAwLTguOCA1MS44LTE1LjkgMTE1LjYtMTUuOSA5IDAgMTcuOC4xIDI2LjMuNGwxMi42LTQ4LjdMMjI4LjEuNmMxLjQtMS40IDUuOC0uMiA5LjkgMy41czYuNiA3LjkgNS4zIDkuM2wtLjEuMUwxODUuOSA3NGwtMTAgNDAuN2MzOS45IDIuNiA2Ny42IDguMSA2Ny42IDE0LjZ6bS02OS40IDQuNmMwLS44LS45LTEuNS0yLjUtMi4xbC0uMi44YzAgMS4zLTUgMi40LTExLjEgMi40cy0xMS4xLTEuMS0xMS4xLTIuNGMwLS4xIDAtLjIuMS0uM2wuMi0uN2MtMS44LjYtMyAxLjQtMyAyLjMgMCAyLjEgNi4yIDMuNyAxMy43IDMuNyA3LjcuMSAxMy45LTEuNiAxMy45LTMuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFja2VyTmV3cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMydjQ0OGg0NDhWMzJIMHptMjEuMiAxOTcuMkgyMWMuMS0uMS4yLS4zLjMtLjQgMCAuMSAwIC4zLS4xLjR6bTIxOCA1My45VjM4NGgtMzEuNFYyODEuM0wxMjggMTI4aDM3LjNjNTIuNSA5OC4zIDQ5LjIgMTAxLjIgNTkuMyAxMjUuNiAxMi4zLTI3IDUuOC0yNC40IDYwLjYtMTI1LjZIMzIwbC04MC44IDE1NS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYWNrZXJyYW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3Ny41IDEyOEM0NjMgMTAzLjA1IDI4NS4xMyAwIDI1Ni4xNiAwUzQ5LjI1IDEwMi43OSAzNC44NCAxMjhzLTE0LjQ5IDIzMC44IDAgMjU2IDE5Mi4zOCAxMjggMjIxLjMyIDEyOFM0NjMgNDA5LjA4IDQ3Ny40OSAzODRzMTQuNTEtMjMxIC4wMS0yNTZ6TTMxNi4xMyA0MTQuMjJjLTQgMC00MC45MS0zNS43Ny0zOC0zOC42OS44Ny0uODcgNi4yNi0xLjQ4IDE3LjU1LTEuODMgMC0yNi4yMy41OS02OC41OS45NC04Ni4zMiAwLTItLjQ0LTMuNDMtLjQ0LTUuODVoLTc5LjkzYzAgNy4xLS40NiAzNi4yIDEuMzcgNzIuODguMjMgNC41NC0xLjU4IDYtNS43NCA1Ljk0LTEwLjEzIDAtMjAuMjctLjExLTMwLjQxLS4wOC00LjEgMC01Ljg3LTEuNTMtNS43NC02LjExLjkyLTMzLjQ0IDMtODQtLjE1LTIxMi42N3YtMy4xN2MtOS42Ny0uMzUtMTYuMzgtMS0xNy4yNi0xLjg0LTIuOTItMi45MiAzNC41NC0zOC42OSAzOC40OS0zOC42OXM0MS4xNyAzNS43OCAzOC4yNyAzOC42OWMtLjg3Ljg3LTcuOSAxLjQ5LTE2Ljc3IDEuODR2My4xNmMtMi40MiAyNS43NS0yIDc5LjU5LTIuNjMgMTA1LjM5aDgwLjI2YzAtNC41NS4zOS0zNC43NC0xLjItODMuNjQtLjEtMy4zOS45NS01LjE3IDQuMjEtNS4yIDExLjA3LS4wOCAyMi4xNS0uMTMgMzMuMjMtLjA2IDMuNDYgMCA0LjU3IDEuNzIgNC41IDUuMzhDMzMzIDM1NC42NCAzMzYgMzQxLjI5IDMzNiAzNzMuNjljOC44Ny4zNSAxNi44MiAxIDE3LjY5IDEuODQgMi44OCAyLjkxLTMzLjYyIDM4LjY5LTM3LjU4IDM4LjY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYXNobm9kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNS4xOSAxNzEuMUMtMTEuNzIgMjE3LjEtMTEuNzIgMjk0IDM1LjE5IDM0MC45TDE3MS4xIDQ3Ni44QzIxNy4xIDUyMy43IDI5NCA1MjMuNyAzNDAuOSA0NzYuOEw0NzYuOCAzNDAuOUM1MjMuNyAyOTQgNTIzLjcgMjE3LjEgNDc2LjggMTcxLjFMMzQwLjkgMzUuMTlDMjk0LTExLjcyIDIxNy4xLTExLjcyIDE3MS4xIDM1LjE5TDM1LjE5IDE3MS4xek0zMTUuNSAzMTUuNUMyODIuNiAzNDguMyAyMjkuNCAzNDguMyAxOTYuNiAzMTUuNUMxNjMuNyAyODIuNiAxNjMuNyAyMjkuNCAxOTYuNiAxOTYuNkMyMjkuNCAxNjMuNyAyODIuNiAxNjMuNyAzMTUuNSAxOTYuNkMzNDguMyAyMjkuNCAzNDguMyAyODIuNiAzMTUuNSAzMTUuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGlwcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTEuNiAxNTcuNmMwLTEuOS0uOS0yLjgtMi44LTIuOGgtNDAuOWMtMS42IDAtMi43IDEuNC0yLjcgMi44djIwMS44YzAgMS40IDEuMSAyLjggMi43IDIuOGg0MC45YzEuOSAwIDIuOC0uOSAyLjgtMi44ek0xNTYuNSAxNjhjLTE2LjEtMTEuOC0zNi4zLTE3LjktNjAuMy0xOC0xOC4xLS4xLTM0LjYgMy43LTQ5LjggMTEuNFY4MC4yYzAtMS44LS45LTIuNy0yLjgtMi43SDIuN2MtMS44IDAtMi43LjktMi43IDIuN3YyNzkuMmMwIDEuOS45IDIuOCAyLjcgMi44aDQxYzEuOSAwIDIuOC0uOSAyLjgtMi44VjIyMy4zYzAtLjgtMi44LTI3IDQ1LjgtMjcgNDguNSAwIDQ1LjggMjYuMSA0NS44IDI3djEyMi42YzAgOSA3LjMgMTYuMyAxNi40IDE2LjNoMjcuM2MxLjggMCAyLjctLjkgMi43LTIuOFYyMjMuM2MwLTIzLjQtOS4zLTQxLjgtMjgtNTUuM3ptNDc4LjQgMTEwLjFjLTYuOC0xNS43LTE4LjQtMjctMzQuOS0zNC4xbC01Ny42LTI1LjNjLTguNi0zLjYtOS4yLTExLjItMi42LTE2LjEgNy40LTUuNSA0NC4zLTEzLjkgODQgNi44IDEuNyAxIDQtLjMgNC0yLjR2LTQ0LjdjMC0xLjMtLjYtMi4xLTEuOS0yLjYtMTcuNy02LjYtMzYuMS05LjktNTUuMS05LjktMjYuNSAwLTQ1LjMgNS44LTU4LjUgMTUuNC0uNS40LTI4LjQgMjAtMjIuNyA1My43IDMuNCAxOS42IDE1LjggMzQuMiAzNy4yIDQzLjZsNTMuNiAyMy41YzExLjYgNS4xIDE1LjIgMTMuMyAxMi4yIDIxLjItMy43IDkuMS0xMy4yIDEzLjYtMzYuNSAxMy42LTI0LjMgMC00NC43LTguOS01OC40LTE5LjEtMi4xLTEuNC00LjQuMi00LjQgMi4zdjM0LjRjMCAxMC40IDQuOSAxNy4zIDE0LjYgMjAuNyAxNS42IDUuNSAzMS42IDguMiA0OC4yIDguMiAxMi43IDAgMjUuOC0xLjIgMzYuMy00LjMuNy0uMyAzNi04LjkgNDUuNi00NS44IDMuNS0xMy41IDIuNC0yNi41LTMuMS0zOS4xek0zNzYuMiAxNDkuOGMtMzEuNyAwLTEwNC4yIDIwLjEtMTA0LjIgMTAzLjV2MTgzLjVjMCAuOC42IDIuNyAyLjcgMi43aDQwLjljMS45IDAgMi44LS45IDIuOC0yLjdWMzQ4YzE2LjUgMTIuNyAzNS44IDE5LjEgNTcuNyAxOS4xIDYwLjUgMCAxMDguNy00OC41IDEwOC43LTEwOC43LjEtNjAuMy00OC4yLTEwOC42LTEwOC42LTEwOC42em0wIDE3MC45Yy0xNy4yIDAtMzEuOS02LjEtNDQtMTguMi0xMi4yLTEyLjItMTguMi0yNi44LTE4LjItNDQgMC0zNC41IDI3LjYtNjIuMiA2Mi4yLTYyLjIgMzQuNSAwIDYyLjIgMjcuNiA2Mi4yIDYyLjIuMSAzNC4zLTI3LjMgNjIuMi02Mi4yIDYyLjJ6TTIyOC4zIDcyLjVjLTE1LjkgMC0yOC44IDEyLjktMjguOSAyOC45IDAgMTUuNiAxMi43IDI4LjkgMjguOSAyOC45czI4LjktMTMuMSAyOC45LTI4LjljMC0xNi4yLTEzLTI4LjktMjguOS0yOC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIaXJlQUhlbHBlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDMuMSAwSDcxLjlDNjcuOSAzNy4zIDM3LjQgNjcuOCAwIDcxLjd2MzcxLjVjMzcuNCA0LjkgNjYgMzIuNCA3MS45IDY4LjhoMzcyLjJjMy0zNi40IDMyLjUtNjUuOCA2Ny45LTY5LjhWNzEuN2MtMzYuNC01LjktNjUtMzUuMy02OC45LTcxLjd6bS0zNyA0MDQuOWMtMzYuMyAwLTE4LjgtMi01NS4xLTItMzUuOCAwLTIxIDItNTYuMSAyLTUuOSAwLTQuOS04LjIgMC05LjggMjIuOC03LjYgMjIuOS0xMC4yIDI0LjYtMTIuOCAxMC40LTE1LjYgNS45LTgzIDUuOS0xMTMgMC01LjMtNi40LTEyLjgtMTMuOC0xMi44SDIwMC40Yy03LjQgMC0xMy44IDcuNS0xMy44IDEyLjggMCAzMC00LjUgOTcuNCA1LjkgMTEzIDEuNyAyLjUgMS44IDUuMiAyNC42IDEyLjggNC45IDEuNiA2IDkuOCAwIDkuOC0zNS4xIDAtMjAuMy0yLTU2LjEtMi0zNi4zIDAtMTguOCAyLTU1LjEgMi03LjkgMC01LjgtMTAuOCAwLTEwLjggMTAuMi0zLjQgMTMuNS0zLjUgMjEuNy0xMy44IDcuNy0xMi45IDcuOS00NC40IDcuOS0xMjcuOFYxNTEuM2MwLTIyLjItMTIuMi0yOC4zLTI4LjYtMzIuNC04LjgtMi4yLTQtMTEuOCAxLTExLjggMzYuNSAwIDIwLjYgMiA1Ny4xIDIgMzIuNyAwIDE2LjUtMiA0OS4yLTIgMy4zIDAgOC41IDguMyAxIDEwLjgtNC45IDEuNi0yNy42IDMuNy0yNy42IDM5LjMgMCA0NS42LS4yIDU1LjggMSA2OC44IDAgMS4zIDIuMyAxMi44IDEyLjggMTIuOGgxMDkuMmMxMC41IDAgMTIuOC0xMS41IDEyLjgtMTIuOCAxLjItMTMgMS0yMy4yIDEtNjguOCAwLTM1LjYtMjIuNy0zNy43LTI3LjYtMzkuMy03LjUtMi41LTIuMy0xMC44IDEtMTAuOCAzMi43IDAgMTYuNSAyIDQ5LjIgMiAzNi41IDAgMjAuNi0yIDU3LjEtMiA0LjkgMCA5LjkgOS42IDEgMTEuOC0xNi40IDQuMS0yOC42IDEwLjMtMjguNiAzMi40djEwMS4yYzAgODMuNC4xIDExNC45IDcuOSAxMjcuOCA4LjIgMTAuMiAxMS40IDEwLjQgMjEuNyAxMy44IDUuOCAwIDcuOCAxMC44IDAgMTAuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGl2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNjAuMzUzLDI1NC44NzgsMTMxLjUzOCwzMy4xYTIuMjA4LDIuMjA4LDAsMCwwLTMuODI5LjAwOUwuMywyNTQuODg3QTIuMjM0LDIuMjM0LDAsMCwwLC4zLDI1Ny4xMjJMMTI5LjExNiw0NzguOWEyLjIwOCwyLjIwOCwwLDAsMCwzLjgzLS4wMDlMMjYwLjM1OCwyNTcuMTEzQTIuMjM5LDIuMjM5LDAsMCwwLDI2MC4zNTMsMjU0Ljg3OFptMzkuMDc4LTI1LjcxM2EyLjE5LDIuMTksMCwwLDAsMS45LDEuMTExaDY2LjUwOWEyLjIyNiwyLjIyNiwwLDAsMCwxLjktMy4zNDFMMjU5LjExNSwzMy4xMTFhMi4xODcsMi4xODcsMCwwLDAtMS45LTEuMTExSDE5MC43MDdhMi4yMjYsMi4yMjYsMCwwLDAtMS45LDMuMzQxWk01MTEuNywyNTQuODg2LDM4NC45LDMzLjExMkEyLjIsMi4yLDAsMCwwLDM4Mi45OSwzMmgtNjYuNmEyLjIyNiwyLjIyNiwwLDAsMC0xLjkwNiwzLjM0TDQ0MC42NTIsMjU2LDMxNC40ODEsNDc2LjY2YTIuMjI2LDIuMjI2LDAsMCwwLDEuOTA2LDMuMzRoNjYuNmEyLjIsMi4yLDAsMCwwLDEuOTA2LTEuMTEyTDUxMS43LDI1Ny4xMTRBMi4yNDMsMi4yNDMsMCwwLDAsNTExLjcsMjU0Ljg4NlpNMzY2LjAxNiwyODQuOTE3SDI5OS41MDhhMi4xODcsMi4xODcsMCwwLDAtMS45LDEuMTExbC0xMDguOCwxOTAuNjMxYTIuMjI2LDIuMjI2LDAsMCwwLDEuOSwzLjM0MWg2Ni41MDlhMi4xODcsMi4xODcsMCwwLDAsMS45LTEuMTExbDEwOC44LTE5MC42MzFBMi4yMjYsMi4yMjYsMCwwLDAsMzY2LjAxNiwyODQuOTE3WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb29saSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQuNSAzNTJsMzguMy44Yy0xMy4yLTQuNi0yNi0xMC4yLTM4LjMtMTYuOHptNTcuNy01LjN2NS4zbC0xOS40LjhjMzYuNSAxMi41IDY5LjkgMTQuMiA5NC43IDcuMi0xOS45LjItNDUuOC0yLjYtNzUuMy0xMy4zem00MDguOS0xMTUuMmMxNS45IDAgMjguOS0xMi45IDI4LjktMjguOXMtMTIuOS0yNC41LTI4LjktMjQuNWMtMTUuOSAwLTI4LjkgOC42LTI4LjkgMjQuNXMxMi45IDI4LjkgMjguOSAyOC45em0tMjkgMTIwLjVINjQwVjI0MS41aC01Ny45em0tNzMuNyAwaDU3LjlWMTU2LjdMNTA4LjQgMTg0em0tMzEtMTE5LjRjLTE4LjItMTguMi01MC40LTE3LjEtNTAuNC0xNy4xcy0zMi4zLTEuMS01MC40IDE3LjFjLTE4LjIgMTguMi0xNi44IDMzLjktMTYuOCA1Mi42cy0xLjQgMzQuMyAxNi44IDUyLjUgNTAuNCAxNy4xIDUwLjQgMTcuMSAzMi4zIDEuMSA1MC40LTE3LjFjMTguMi0xOC4yIDE2LjgtMzMuOCAxNi44LTUyLjUtLjEtMTguOCAxLjMtMzQuNS0xNi44LTUyLjZ6bS0zOS44IDcxLjljMCAzLjYtMS44IDEyLjUtMTAuNyAxMi41cy0xMC43LTguOS0xMC43LTEyLjV2LTQwLjRjMC04LjcgNy4zLTEwLjkgMTAuNy0xMC45czEwLjcgMi4xIDEwLjcgMTAuOXptLTEwNi4yLTcxLjljLTE4LjItMTguMi01MC40LTE3LjEtNTAuNC0xNy4xcy0zMi4yLTEuMS01MC40IDE3LjFjLTEuOSAxLjktMy43IDMuOS01LjMgNi0zOC4yLTI5LjYtNzIuNS00Ni41LTEwMi4xLTYxLjF2LTIwLjdsLTIyLjUgMTAuNmMtNTQuNC0yMi4xLTg5LTE4LjItOTcuMy4xIDAgMC0yNC45IDMyLjggNjEuOCAxMTAuOFYzNTJoNTcuOXYtMjguNmMtNi41LTQuMi0xMy04LjctMTkuNC0xMy42LTE0LjgtMTEuMi0yNy40LTIxLjYtMzguNC0zMS40di0zMWMxMy4xIDE0LjcgMzAuNSAzMS40IDUzLjQgNTAuM2w0LjUgMy42di0yOS44YzAtNi45IDEuNy0xOC4yIDEwLjgtMTguMnMxMC42IDYuOSAxMC42IDE1VjMxN2MxOCAxMi4yIDM3LjMgMjIuMSA1Ny43IDI5LjZ2LTkzLjljMC0xOC43LTEzLjQtMzcuNC00MC42LTM3LjQtMTUuOC0uMS0zMC41IDguMi0zOC41IDIxLjl2LTU0LjNjNDEuOSAyMC45IDgzLjkgNDYuNSA5OS45IDU4LjMtMTAuMiAxNC42LTkuMyAyOC4xLTkuMyA0My43IDAgMTguNy0xLjQgMzQuMyAxNi44IDUyLjVzNTAuNCAxNy4xIDUwLjQgMTcuMSAzMi4zIDEuMSA1MC40LTE3LjFjMTguMi0xOC4yIDE2LjctMzMuOCAxNi43LTUyLjUgMC0xOC41IDEuNS0zNC4yLTE2LjctNTIuM3pNNjUuMiAxODR2NjMuM2MtNDguNy01NC41LTM4LjktNzYtMzUuMi03OS4xIDEzLjUtMTEuNCAzNy41LTggNjQuNCAyLjF6bTIyNi41IDEyMC41YzAgMy42LTEuOCAxMi41LTEwLjcgMTIuNXMtMTAuNy04LjktMTAuNy0xMi41di00MC40YzAtOC43IDcuMy0xMC45IDEwLjctMTAuOXMxMC43IDIuMSAxMC43IDEwLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvcm5iaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTc2LjM4IDM3MC4zYTM3LjggMzcuOCAwIDEgMS0zMi4wNy0zMi40MmMtNzguMjgtMTExLjM1IDUyLTE5MC41MyA1Mi0xOTAuNTMtNS44NiA0My04LjI0IDkxLjE2LTguMjQgOTEuMTYtNjcuMzEgNDEuNDkuOTMgNjQuMDYgMzkuODEgNzIuODdhMTQwLjM4IDE0MC4zOCAwIDAgMCAxMzEuNjYgOTEuOTRjMS45MiAwIDMuNzctLjIxIDUuNjctLjI4bC4xMSAxOC44NmMtOTkuMjIgMS4zOS0xNTguNy0yOS4xNC0xODguOTQtNTEuNnptMTA4LTMyNy43QTM3LjU3IDM3LjU3IDAgMCAwIDE4MSAyMS40NWEzNy45NSAzNy45NSAwIDEgMC0zMS4xNyA1NC4yMmMtMjIuNTUgMjkuOTEtNTMuODMgODkuNTctNTIuNDIgMTkwbDIxLjg0LS4xNWMwLS45LS4xNC0xLjc3LS4xNC0yLjY4QTE0MC40MiAxNDAuNDIgMCAwIDEgMjA3IDEzMi43MWM4LTM3LjcxIDMwLjctMTE0LjMgNzMuOC00NC4yOSAwIDAgNDguMTQgMi4zOCA5MS4xOCA4LjI0IDAgMC03Ny44NC0xMjgtMTg3LjU5LTU0LjA2em0zMDQuMTkgMTM0LjE3YTM3Ljk0IDM3Ljk0IDAgMSAwLTUzLjg0LTI4LjdDNDAzIDEyNi4xMyAzNDQuODkgOTkgMjUxLjI4IDEwMC4zM2wuMTQgMjIuNWMyLjctLjE1IDUuMzktLjQxIDguMTQtLjQxYTE0MC4zNyAxNDAuMzcgMCAwIDEgMTMwLjQ5IDg4Ljc2YzM5LjEgOSAxMDUuMDYgMzEuNTggMzguNDYgNzIuNTQgMCAwLTIuMzQgNDguMTMtOC4yMSA5MS4xNiAwIDAgMTMzLjQ1LTgxLjE2IDQ5LTE5NC42MWEzNy40NSAzNy40NSAwIDAgMCAxOS4zMS0zLjV6TTM3NC4wNiA0MzYuMjRjMjEuNDMtMzIuNDYgNDYuNDItODkuNjkgNDUuMTQtMTc5LjY2bC0xOS41Mi4xNGMuMDggMi4wNi4zIDQuMDcuMyA2LjE1YTE0MC4zNCAxNDAuMzQgMCAwIDEtOTEuMzkgMTMxLjQ1Yy04Ljg1IDM4Ljk1LTMxLjQ0IDEwNi42Ni03Mi43NyAzOS40OSAwIDAtNDguMTItMi4zNC05MS4xOS04LjIyIDAgMCA3OS45MiAxMzEuMzQgMTkxLjkgNTFhMzcuNSAzNy41IDAgMCAwIDMuNjQgMTQgMzcuOTMgMzcuOTMgMCAxIDAgMzMuODktNTQuMjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdGphciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjEuNSAwYzAgMTMxLjYtODAuNyAxNzYuOC0xNDAuMiAyMDkuNGMtLjYgLjMtMS4xIC42LTEuNiAuOWMtNTMuOCAzMC4yLTg4LjcgNDkuOC04OS42IDEyMkgzMkMzMiAyMDAuOCAxMTIuNyAxNTUuNiAxNzIuMiAxMjNDMjI3IDkzLjIgMjYyLjUgNzMgMjYyLjUgMGg5OC45ek0zMDEgMzAyLjZjNTQuOC0yOS44IDkwLjMtNTAgOTAuMy0xMjNoOThjMCAxMzEuNi04MC43IDE3Ni43LTE0MC4yIDIwOS40Yy01NC44IDI5LjgtOTAuMyA1MC05MC4zIDEyM2gtOThjMC0xMzEuNiA4MC43LTE3Ni44IDE0MC4yLTIwOS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3V6eiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzUuOSAzMzAuN0gxNzEuM1Y0ODBIMTdWMzJoMTA5LjV2MTA0LjVsMzA1LjEgODUuNlY0ODBIMjc1Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUh0bWw1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJsMzQuOSAzOTUuOEwxOTEuNSA0ODBsMTU3LjYtNTIuMkwzODQgMzJIMHptMzA4LjIgMTI3LjlIMTI0LjRsNC4xIDQ5LjRoMTc1LjZsLTEzLjYgMTQ4LjQtOTcuOSAyN3YuM2gtMS4xbC05OC43LTI3LjMtNi03NS44aDQ3LjdMMTM4IDMyMGw1My41IDE0LjUgNTMuNy0xNC41IDYtNjIuMkg4NC4zTDcxLjUgMTEyLjJoMjQxLjFsLTQuNCA0Ny43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIdWJzcG90IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI2Ny40IDIxMS42Yy0yNS4xIDIzLjctNDAuOCA1Ny4zLTQwLjggOTQuNiAwIDI5LjMgOS43IDU2LjMgMjYgNzhMMjAzLjEgNDM0Yy00LjQtMS42LTkuMS0yLjUtMTQtMi41LTEwLjggMC0yMC45IDQuMi0yOC41IDExLjgtNy42IDcuNi0xMS44IDE3LjgtMTEuOCAyOC42czQuMiAyMC45IDExLjggMjguNWM3LjYgNy42IDE3LjggMTEuNiAyOC41IDExLjYgMTAuOCAwIDIwLjktMy45IDI4LjYtMTEuNiA3LjYtNy42IDExLjgtMTcuOCAxMS44LTI4LjUgMC00LjItLjYtOC4yLTEuOS0xMi4xbDUwLTUwLjJjMjIgMTYuOSA0OS40IDI2LjkgNzkuMyAyNi45IDcxLjkgMCAxMzAtNTguMyAxMzAtMTMwLjIgMC02NS4yLTQ3LjctMTE5LjItMTEwLjItMTI4LjdWMTE2YzE3LjUtNy40IDI4LjItMjMuOCAyOC4yLTQyLjkgMC0yNi4xLTIwLjktNDcuOS00Ny00Ny45UzMxMS4yIDQ3IDMxMS4yIDczLjFjMCAxOS4xIDEwLjcgMzUuNSAyOC4yIDQyLjl2NjEuMmMtMTUuMiAyLjEtMjkuNiA2LjctNDIuNyAxMy42LTI3LjYtMjAuOS0xMTcuNS04NS43LTE2OC45LTEyNC44IDEuMi00LjQgMi05IDItMTMuOEMxMjkuOCAyMy40IDEwNi4zIDAgNzcuNCAwIDQ4LjYgMCAyNS4yIDIzLjQgMjUuMiA1Mi4yYzAgMjguOSAyMy40IDUyLjMgNTIuMiA1Mi4zIDkuOCAwIDE4LjktMi45IDI2LjgtNy42bDE2My4yIDExNC43em04OS41IDE2My42Yy0zOC4xIDAtNjktMzAuOS02OS02OXMzMC45LTY5IDY5LTY5IDY5IDMwLjkgNjkgNjktMzAuOSA2OS02OSA2OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSWRlYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI1LjYxLDE2NS40OGE0OS4wNyw0OS4wNywwLDEsMCw0OS4wNiw0OS4wNkE0OS4wOCw0OS4wOCwwLDAsMCwxMjUuNjEsMTY1LjQ4Wk04Ni4xNSw0MjUuODRoNzguOTRWMjg1LjMySDg2LjE1Wm0xNTEuNDYtMjExLjZjMC0yMC0xMC0yMi41My0xOC43NC0yMi41M0gyMDQuODJWMjM3LjVoMTQuMDVDMjI4LjYyLDIzNy41LDIzNy42MSwyMzQuNjksMjM3LjYxLDIxNC4yNFptMjAxLjY5LDQ2VjE2OC45M2gyMi43NVYyMzcuNWgzMy42OUM0ODYuNSwxMTMuMDgsMzg4LjYxLDg2LjE5LDI5OS42Nyw4Ni4xOUgyMDQuODRWMTY5aDE0YzI1LjYsMCw0MS41LDE3LjM1LDQxLjUsNDUuMjYsMCwyOC44MS0xNS41Miw0Ni00MS41LDQ2aC0xNFY0MjUuODhoOTQuODNjMTQ0LjYxLDAsMTk0Ljk0LTY3LjE2LDE5Ni43Mi0xNjUuNjRabS0xMDkuNzUsMEgyNzMuM1YxNjloNTQuNDN2MjIuNzNIMjk2djEwLjU4aDMwVjIyNUgyOTZWMjM3LjVoMzMuNTFabTc0LjY2LDAtNS4xNi0xNy42N0gzNjkuMzFsLTUuMTgsMTcuNjdIMzQwLjQ3TDM2OCwxNjguOTJoMzIuMzVsMjcuNTMsOTEuMzRaTTI5OS42NSwzMkgzMlY0ODBIMjk5LjY1YzE2MS44NSwwLDI1MS03OS43MywyNTEtMjI0LjUyQzU1MC42MiwxNzIsNTE4LDMyLDI5OS42NSwzMlptMCw0MjYuOTJINTMuMDdWNTMuMDdIMjk5LjY1YzE0Mi4xLDAsMjI5LjksNjQuNjEsMjI5LjksMjAyLjQxQzUyOS41NSwzODkuNTcsNDQ4LjU1LDQ1OC45MiwyOTkuNjUsNDU4LjkyWm04My44Ni0yNjQuODVMMzc2LDIxOS44OEgzOTIuNGwtNy41Mi0yNS44MVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW1kYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04OS41IDMyMy42SDUzLjkzVjE4Ni4ySDg5LjVWMzIzLjZ6TTE1Ni4xIDI1MC41TDE2NS4yIDE4Ni4ySDIxMS41VjMyMy42SDE4MC41VjIzMC45TDE2Ny4xIDMyMy42SDE0NS44TDEzMi44IDIzMi45TDEzMi43IDMyMy42SDEwMS41VjE4Ni4ySDE0Ny42QzE0OC4xIDE5NC41IDE1MC40IDIwNC4zIDE1MS45IDIxNS42TDE1Ni4xIDI1MC41ek0yMjMuNyAzMjMuNlYxODYuMkgyNTAuM0MyNjcuMyAxODYuMiAyNzcuMyAxODcuMSAyODMuMyAxODguNkMyODkuNCAxOTAuMyAyOTQgMTkyLjggMjk3LjIgMTk2LjVDMzAwLjMgMTk5LjggMzAyLjMgMjAzLjEgMzAzIDIwOC41QzMwMy45IDIxMi45IDMwNC40IDIyMS42IDMwNC40IDIzNC43VjI4Mi45QzMwNC40IDI5NS4yIDMwMy43IDMwMy40IDMwMi41IDMwNy42QzMwMS40IDMxMS43IDI5OS40IDMxNSAyOTYuNSAzMTcuM0MyOTMuNyAzMTkuNyAyOTAuMSAzMjEuNCAyODUuOCAzMjIuM0MyODEuNiAzMjMuMSAyNzUuMiAzMjMuNiAyNjYuNyAzMjMuNkgyMjMuN3pNMjU5LjIgMjA5LjdWMjk5LjFDMjY0LjMgMjk5LjEgMjY3LjUgMjk4LjEgMjY4LjYgMjk2LjhDMjY5LjcgMjk0LjggMjcwLjQgMjg5LjIgMjcwLjQgMjgwLjFWMjI2LjhDMjcwLjQgMjIwLjYgMjcwLjMgMjE2LjYgMjY5LjcgMjE0LjhDMjY5LjQgMjEzIDI2OC41IDIxMS44IDI2Ny4xIDIxMC4xQzI2NS43IDIxMC4xIDI2MyAyMDkuNyAyNTkuMiAyMDkuN1YyMDkuN3pNMzE2LjUgMzIzLjZWMTg2LjJIMzUwLjZWMjMwLjFDMzUzLjUgMjI3LjcgMzU2LjcgMjI1LjIgMzYwLjEgMjIzLjVDMzYzLjcgMjIyIDM2OC45IDIyMS4xIDM3Mi45IDIyMS4xQzM3Ny43IDIyMS4xIDM4MS44IDIyMS45IDM4NS4yIDIyMy4zQzM4OC42IDIyNC44IDM5MS4yIDIyNi44IDM5My4yIDIyOS41QzM5NC45IDIzMi4xIDM5NS45IDIzNC44IDM5Ni4zIDIzNy4zQzM5Ni43IDIzOS45IDM5Ni4xIDI0NS4zIDM5Ni4xIDI1My41VjI5Mi4xQzM5Ni4xIDMwMC4zIDM5Ni4zIDMwNi40IDM5NS4zIDMxMC41QzM5NC4yIDMxNC41IDM5MS41IDMxOC4xIDM4Ny41IDMyMC4xQzM4My40IDMyNCAzNzguNiAzMjUuNCAzNzIuOSAzMjUuNEMzNjguOSAzMjUuNCAzNjMuNyAzMjQuNSAzNjAuMiAzMjIuOUMzNTYuNyAzMjEuMSAzNTMuNSAzMTguNCAzNTAuNiAzMTQuOUwzNDguNSAzMjMuNkwzMTYuNSAzMjMuNnpNMzYxLjYgMzAyLjlDMzYyLjMgMzAxLjEgMzYyLjYgMjk2LjkgMzYyLjYgMjkwLjRWMjU1QzM2Mi42IDI0OS40IDM2Mi4zIDI0NS41IDM2MS41IDI0My44QzM2MC44IDI0MS45IDM1Ny44IDI0MS4xIDM1NS43IDI0MS4xQzM1My43IDI0MS4xIDM1Mi4zIDI0MS45IDM1MS42IDI0My40QzM1MSAyNDQuOSAzNTAuNiAyNDguOCAzNTAuNiAyNTVWMjkxLjRDMzUwLjYgMjk3LjUgMzUxIDMwMS40IDM1MS44IDMwM0MzNTIuNCAzMDQuNyAzNTMuOSAzMDUuNSAzNTUuOSAzMDUuNUMzNTguMSAzMDUuNSAzNjAuMSAzMDQuNyAzNjEuNiAzMDIuOUwzNjEuNiAzMDIuOXpNNDE4LjQgMzIuMDRDNDM0LjEgMzMuMjcgNDQ3LjEgNDcuMjggNDQ3LjEgNjMuOTJWNDQ4LjFDNDQ3LjEgNDY0LjUgNDM1LjIgNDc4LjUgNDE4LjkgNDc5LjFDNDE4LjYgNDc5LjEgNDE4LjQgNDgwIDQxOC4xIDQ4MEgyOS44OEMyOS42IDQ4MCAyOS4zMiA0NzkuMSAyOS4wNCA0NzkuOUMxMy4zMSA0NzguNSAxLjA5MyA0NjYuMSAwIDQ0OS43TC4wMTg2IDYxLjc4QzEuMDgxIDQ1Ljg4IDEzLjgyIDMzLjA5IDMwLjI2IDMxLjFINDE3LjdDNDE3LjkgMzEuMSA0MTguMiAzMi4wMSA0MTguNCAzMi4wNEw0MTguNCAzMi4wNHpNMzAuMjcgNDEuMjZDMTkgNDIuMDEgMTAuMDIgNTEuMDEgOS4yNTcgNjIuNFY0NDkuN0M5LjYzIDQ1NS4xIDExLjkxIDQ2MC4yIDE1LjcgNDY0QzE5LjQ4IDQ2Ny45IDI0LjUxIDQ3MC4zIDI5Ljg5IDQ3MC43SDQxOC4xQzQyOS42IDQ2OS43IDQzOC43IDQ1OS4xIDQzOC43IDQ0OC4xVjYzLjkxQzQzOC43IDU4LjE3IDQzNi42IDUyLjY1IDQzMi43IDQ4LjQ1QzQyOC44IDQ0LjI0IDQyMy40IDQxLjY3IDQxNy43IDQxLjI2TDMwLjI3IDQxLjI2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbnN0YWdyYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0LjEgMTQxYy02My42IDAtMTE0LjkgNTEuMy0xMTQuOSAxMTQuOXM1MS4zIDExNC45IDExNC45IDExNC45UzMzOSAzMTkuNSAzMzkgMjU1LjkgMjg3LjcgMTQxIDIyNC4xIDE0MXptMCAxODkuNmMtNDEuMSAwLTc0LjctMzMuNS03NC43LTc0LjdzMzMuNS03NC43IDc0LjctNzQuNyA3NC43IDMzLjUgNzQuNyA3NC43LTMzLjYgNzQuNy03NC43IDc0Ljd6bTE0Ni40LTE5NC4zYzAgMTQuOS0xMiAyNi44LTI2LjggMjYuOC0xNC45IDAtMjYuOC0xMi0yNi44LTI2LjhzMTItMjYuOCAyNi44LTI2LjggMjYuOCAxMiAyNi44IDI2Ljh6bTc2LjEgMjcuMmMtMS43LTM1LjktOS45LTY3LjctMzYuMi05My45LTI2LjItMjYuMi01OC0zNC40LTkzLjktMzYuMi0zNy0yLjEtMTQ3LjktMi4xLTE4NC45IDAtMzUuOCAxLjctNjcuNiA5LjktOTMuOSAzNi4xcy0zNC40IDU4LTM2LjIgOTMuOWMtMi4xIDM3LTIuMSAxNDcuOSAwIDE4NC45IDEuNyAzNS45IDkuOSA2Ny43IDM2LjIgOTMuOXM1OCAzNC40IDkzLjkgMzYuMmMzNyAyLjEgMTQ3LjkgMi4xIDE4NC45IDAgMzUuOS0xLjcgNjcuNy05LjkgOTMuOS0zNi4yIDI2LjItMjYuMiAzNC40LTU4IDM2LjItOTMuOSAyLjEtMzcgMi4xLTE0Ny44IDAtMTg0Ljh6TTM5OC44IDM4OGMtNy44IDE5LjYtMjIuOSAzNC43LTQyLjYgNDIuNi0yOS41IDExLjctOTkuNSA5LTEzMi4xIDlzLTEwMi43IDIuNi0xMzIuMS05Yy0xOS42LTcuOC0zNC43LTIyLjktNDIuNi00Mi42LTExLjctMjkuNS05LTk5LjUtOS0xMzIuMXMtMi42LTEwMi43IDktMTMyLjFjNy44LTE5LjYgMjIuOS0zNC43IDQyLjYtNDIuNiAyOS41LTExLjcgOTkuNS05IDEzMi4xLTlzMTAyLjctMi42IDEzMi4xIDljMTkuNiA3LjggMzQuNyAyMi45IDQyLjYgNDIuNiAxMS43IDI5LjUgOSA5OS41IDkgMTMyLjFzMi43IDEwMi43LTkgMTMyLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUluc3RhbG9kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1My4zODQsNDgwSDM4Ny4xMTNMNTAyLjU1NCwyNzUuNzY1LDIwNC4yMjksMzMzLjIxMVpNNTA0LjcyNiwyNDAuMDc4LDM4Ny4xMTMsMzJIMTU1LjY2OUwzNjAuMjMsMjY3LjlaTTEyNC4zODYsNDguODA5LDcuMjc0LDI1NiwxMjMuMjM2LDQ2MS4xNTQsMjI1LjYyNywxNjUuNTYxWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbnRlcmNvbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTIgMzJINTZDMjUuMSAzMiAwIDU3LjEgMCA4OHYzMzZjMCAzMC45IDI1LjEgNTYgNTYgNTZoMzM2YzMwLjkgMCA1Ni0yNS4xIDU2LTU2Vjg4YzAtMzAuOS0yNS4xLTU2LTU2LTU2em0tMTA4LjMgODIuMWMwLTE5LjggMjkuOS0xOS44IDI5LjkgMHYxOTkuNWMwIDE5LjgtMjkuOSAxOS44LTI5LjkgMFYxMTQuMXptLTc0LjYtNy41YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwdjIxNi41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwVjEwNi42em0tNzQuNyA3LjVjMC0xOS44IDI5LjktMTkuOCAyOS45IDB2MTk5LjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBWMTE0LjF6TTU5LjcgMTQ0YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwdjEzNC4zYzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwVjE0NHptMzIzLjQgMjI3LjhjLTcyLjggNjMtMjQxLjcgNjUuNC0zMTguMSAwLTE1LTEyLjggNC40LTM1LjUgMTkuNC0yMi43IDY1LjkgNTUuMyAyMTYuMSA1My45IDI3OS4zIDAgMTQuOS0xMi45IDM0LjMgOS44IDE5LjQgMjIuN3ptNS4yLTkzLjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBWMTQ0YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwdjEzNC4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbnRlcm5ldEV4cGxvcmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4My4wNDkgMTU5LjcwNmMxMC44NTUtMjQuNTc1IDIxLjQyNC02MC40MzggMjEuNDI0LTg3Ljg3MSAwLTcyLjcyMi03OS42NDEtOTguMzcxLTIwOS42NzMtMzguNTc3LTEwNy42MzItNy4xODEtMjExLjIyMSA3My42Ny0yMzcuMDk4IDE4Ni40NTcgMzAuODUyLTM0Ljg2MiA3OC4yNzEtODIuMjk4IDEyMS45NzctMTAxLjE1OEMxMjUuNDA0IDE2Ni44NSA3OS4xMjggMjI4LjAwMiA0My45OTIgMjkxLjcyNSAyMy4yNDYgMzI5LjY1MSAwIDM5MC45NCAwIDQzNi43NDdjMCA5OC41NzUgOTIuODU0IDg2LjUgMTgwLjI1MSA0Mi4wMDYgMzEuNDIzIDE1LjQzIDY2LjU1OSAxNS41NzMgMTAxLjY5NSAxNS41NzMgOTcuMTI0IDAgMTg0LjI0OS01NC4yOTQgMjE2LjgxNC0xNDYuMDIySDM3Ny45MjdjLTUyLjUwOSA4OC41OTMtMTk2LjgxOSA1Mi45OTYtMTk2LjgxOS00Ny40MzZINTA5LjljNi40MDctNDMuNTgxLTEuNjU1LTk1LjcxNS0yNi44NTEtMTQxLjE2MnpNNjQuNTU5IDM0Ni44NzdjMTcuNzExIDUxLjE1IDUzLjcwMyA5NS44NzEgMTAwLjI2NiAxMjMuMzA0LTg4Ljc0MSA0OC45NC0xNzMuMjY3IDI5LjA5Ni0xMDAuMjY2LTEyMy4zMDR6bTExNS45NzctMTA4Ljg3M2MyLTU1LjE1MSA1MC4yNzYtOTQuODcxIDEwMy45OC05NC44NzEgNTMuNDE4IDAgMTAxLjk4MSAzOS43MiAxMDMuOTgxIDk0Ljg3MUgxODAuNTM2em0xODQuNTM2LTE4Ny42YzIxLjQyNS0xMC4yODcgNDguNTYzLTIyLjAwMyA3Mi41NTgtMjIuMDAzIDMxLjQyMiAwIDU0LjI3NCAyMS43MTcgNTQuMjc0IDUzLjcyMiAwIDIwLjAwMy03LjQyNyA0OS4wMDctMTQuNTY5IDY3Ljg2Ny0yNi4yOC00Mi4yOTItNjUuOTg2LTgxLjU4NC0xMTIuMjYzLTk5LjU4NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW52aXNpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDA3LjQgMzJINDAuNkMxOC4yIDMyIDAgNTAuMiAwIDcyLjZ2MzY2LjhDMCA0NjEuOCAxOC4yIDQ4MCA0MC42IDQ4MGgzNjYuOGMyMi40IDAgNDAuNi0xOC4yIDQwLjYtNDAuNlY3Mi42YzAtMjIuNC0xOC4yLTQwLjYtNDAuNi00MC42ek0xNzYuMSAxNDUuNmMuNCAyMy40LTIyLjQgMjcuMy0yNi42IDI3LjQtMTQuOSAwLTI3LjEtMTItMjcuMS0yNyAuMS0zNS4yIDUzLjEtMzUuNSA1My43LS40ek0zMzIuOCAzNzdjLTY1LjYgMC0zNC4xLTc0LTI1LTEwNi42IDE0LjEtNDYuNC00NS4yLTU5LTU5LjkuN2wtMjUuOCAxMDMuM0gxNzdsOC4xLTMyLjVjLTMxLjUgNTEuOC05NC42IDQ0LjQtOTQuNi00LjMuMS0xNC4zLjktMTQgMjMtMTA0LjFIODEuN2w5LjctMzUuNmg3Ni40Yy0zMy42IDEzMy43LTMyLjYgMTI2LjktMzIuOSAxMzguMiAwIDIwLjkgNDAuOSAxMy41IDU3LjQtMjMuMmwxOS44LTc5LjRoLTMyLjNsOS43LTM1LjZoNjguOGwtOC45IDQwLjVjNDAuNS03NS41IDEyNy45LTQ3LjggMTAxLjggMzgtMTQuMiA1MS4xLTE0LjYgNTAuNy0xNC45IDU4LjggMCAxNS41IDE3LjUgMjIuNiAzMS44LTE2LjlMMzg2IDMyNWMtMTAuNSAzNi43LTI5LjQgNTItNTMuMiA1MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW94aG9zdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MTYgMTYwaC02Ny4zQzUxMS4yIDcwLjcgNDIyLjkgOCAzMjAgOCAxODMgOCA3MiAxMTkgNzIgMjU2YzAgMTYuNCAxLjYgMzIuNSA0LjcgNDhIMjRjLTEzLjMgMC0yNCAxMC44LTI0IDI0IDAgMTMuMyAxMC43IDI0IDI0IDI0aDY3LjNjMzcuNSA4OS4zIDEyNS44IDE1MiAyMjguNyAxNTIgMTM3IDAgMjQ4LTExMSAyNDgtMjQ4IDAtMTYuNC0xLjYtMzIuNS00LjctNDhINjE2YzEzLjMgMCAyNC0xMC44IDI0LTI0IDAtMTMuMy0xMC43LTI0LTI0LTI0em0tOTYgOTZjMCAxMTAuNS04OS41IDIwMC0yMDAgMjAwLTc1LjcgMC0xNDEuNi00Mi0xNzUuNS0xMDRINDI0YzEzLjMgMCAyNC0xMC44IDI0LTI0IDAtMTMuMy0xMC43LTI0LTI0LTI0SDEyNS44Yy0zLjgtMTUuNC01LjgtMzEuNC01LjgtNDggMC0xMTAuNSA4OS41LTIwMCAyMDAtMjAwIDc1LjcgMCAxNDEuNiA0MiAxNzUuNSAxMDRIMjE2Yy0xMy4zIDAtMjQgMTAuOC0yNCAyNCAwIDEzLjMgMTAuNyAyNCAyNCAyNGgyOTguMmMzLjggMTUuNCA1LjggMzEuNCA1LjggNDh6bS0zMDQtMjRoMjA4YzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMTMuMi0xMC43IDI0LTI0IDI0SDIxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMy4yIDEwLjctMjQgMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUl0Y2hJbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03MS45MiAzNC43N0M1MC4yIDQ3LjY3IDcuNCA5Ni44NCA3IDEwOS43M3YyMS4zNGMwIDI3LjA2IDI1LjI5IDUwLjg0IDQ4LjI1IDUwLjg0IDI3LjU3IDAgNTAuNTQtMjIuODUgNTAuNTQtNTAgMCAyNy4xMiAyMi4xOCA1MCA0OS43NiA1MHM0OS0yMi44NSA0OS01MGMwIDI3LjEyIDIzLjU5IDUwIDUxLjE2IDUwaC41YzI3LjU3IDAgNTEuMTYtMjIuODUgNTEuMTYtNTAgMCAyNy4xMiAyMS40NyA1MCA0OSA1MHM0OS43Ni0yMi44NSA0OS43Ni01MGMwIDI3LjEyIDIzIDUwIDUwLjU0IDUwIDIzIDAgNDguMjUtMjMuNzggNDguMjUtNTAuODR2LTIxLjM0Yy0uNC0xMi45LTQzLjItNjIuMDctNjQuOTItNzVDMzcyLjU2IDMyLjQgMzI1Ljc2IDMyIDI1NiAzMlM5MS4xNCAzMy4xIDcxLjkyIDM0Ljc3em0xMzIuMzIgMTM0LjM5Yy0yMiAzOC40LTc3LjkgMzguNzEtOTkuODUuMjUtMTMuMTcgMjMuMTQtNDMuMTcgMzIuMDctNTYgMjcuNjYtMy44NyA0MC4xNS0xMy42NyAyMzcuMTMgMTcuNzMgMjY5LjE1IDgwIDE4LjY3IDMwMi4wOCAxOC4xMiAzNzkuNzYgMCAzMS42NS0zMi4yNyAyMS4zMi0yMzIgMTcuNzUtMjY5LjE1LTEyLjkyIDQuNDQtNDIuODgtNC42LTU2LTI3LjY2LTIyIDM4LjUyLTc3Ljg1IDM4LjEtOTkuODUtLjI0LTcuMSAxMi40OS0yMy4wNSAyOC45NC01MS43NiAyOC45NGE1Ny41NCA1Ny41NCAwIDAgMS01MS43NS0yOC45NHptLTQxLjU4IDUzLjc3YzE2LjQ3IDAgMzEuMDkgMCA0OS4yMiAxOS43OGE0MzYuOTEgNDM2LjkxIDAgMCAxIDg4LjE4IDBDMzE4LjIyIDIyMyAzMzIuODUgMjIzIDM0OS4zMSAyMjNjNTIuMzMgMCA2NS4yMiA3Ny41MyA4My44NyAxNDQuNDUgMTcuMjYgNjIuMTUtNS41MiA2My42Ny0zMy45NSA2My43My00Mi4xNS0xLjU3LTY1LjQ5LTMyLjE4LTY1LjQ5LTYyLjc5LTM5LjI1IDYuNDMtMTAxLjkzIDguNzktMTU1LjU1IDAgMCAzMC42MS0yMy4zNCA2MS4yMi02NS40OSA2Mi43OS0yOC40Mi0uMDYtNTEuMi0xLjU4LTMzLjk0LTYzLjczIDE4LjY3LTY3IDMxLjU2LTE0NC40NSA4My44OC0xNDQuNDV6TTI1NiAyNzAuNzlzLTQ0LjM4IDQwLjc3LTUyLjM1IDU1LjIxbDI5LTEuMTd2MjUuMzJjMCAxLjU1IDIxLjM0LjE2IDIzLjMzLjE2IDExLjY1LjU0IDIzLjMxIDEgMjMuMzEtLjE2di0yNS4yOGwyOSAxLjE3Yy04LTE0LjQ4LTUyLjM1LTU1LjI0LTUyLjM1LTU1LjI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJdHVuZXNOb3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4MS45IDM4OC4yYy02LjQgMjcuNC0yNy4yIDQyLjgtNTUuMSA0OC0yNC41IDQuNS00NC45IDUuNi02NC41LTEwLjItMjMuOS0yMC4xLTI0LjItNTMuNC0yLjctNzQuNCAxNy0xNi4yIDQwLjktMTkuNSA3Ni44LTI1LjggNi0xLjEgMTEuMi0yLjUgMTUuNi03LjQgNi40LTcuMiA0LjQtNC4xIDQuNC0xNjMuMiAwLTExLjItNS41LTE0LjMtMTctMTIuMy04LjIgMS40LTE4NS43IDM0LjYtMTg1LjcgMzQuNi0xMC4yIDIuMi0xMy40IDUuMi0xMy40IDE2LjcgMCAyMzQuNyAxLjEgMjIzLjktMi41IDIzOS41LTQuMiAxOC4yLTE1LjQgMzEuOS0zMC4yIDM5LjUtMTYuOCA5LjMtNDcuMiAxMy40LTYzLjQgMTAuNC00My4yLTguMS01OC40LTU4LTI5LjEtODYuNiAxNy0xNi4yIDQwLjktMTkuNSA3Ni44LTI1LjggNi0xLjEgMTEuMi0yLjUgMTUuNi03LjQgMTAuMS0xMS41IDEuOC0yNTYuNiA1LjItMjcwLjIuOC01LjIgMy05LjYgNy4xLTEyLjkgNC4yLTMuNSAxMS44LTUuNSAxMy40LTUuNSAyMDQtMzguMiAyMjguOS00My4xIDIzMi40LTQzLjEgMTEuNS0uOCAxOC4xIDYgMTguMSAxNy42LjIgMzQ0LjUgMS4xIDMyNi0xLjggMzM4LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUl0dW5lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjMuNiA4MC4zQzEyOSA4MC4zIDUyLjUgMTU3IDUyLjUgMjUxLjVTMTI5IDQyMi44IDIyMy42IDQyMi44czE3MS4yLTc2LjcgMTcxLjItMTcxLjJjMC05NC42LTc2LjctMTcxLjMtMTcxLjItMTcxLjN6bTc5LjQgMjQwYy0zLjIgMTMuNi0xMy41IDIxLjItMjcuMyAyMy44LTEyLjEgMi4yLTIyLjIgMi44LTMxLjktNS0xMS44LTEwLTEyLTI2LjQtMS40LTM2LjggOC40LTggMjAuMy05LjYgMzgtMTIuOCAzLS41IDUuNi0xLjIgNy43LTMuNyAzLjItMy42IDIuMi0yIDIuMi04MC44IDAtNS42LTIuNy03LjEtOC40LTYuMS00IC43LTkxLjkgMTcuMS05MS45IDE3LjEtNSAxLjEtNi43IDIuNi02LjcgOC4zIDAgMTE2LjEuNSAxMTAuOC0xLjIgMTE4LjUtMi4xIDktNy42IDE1LjgtMTQuOSAxOS42LTguMyA0LjYtMjMuNCA2LjYtMzEuNCA1LjItMjEuNC00LTI4LjktMjguNy0xNC40LTQyLjkgOC40LTggMjAuMy05LjYgMzgtMTIuOCAzLS41IDUuNi0xLjIgNy43LTMuNyA1LTUuNy45LTEyNyAyLjYtMTMzLjcuNC0yLjYgMS41LTQuOCAzLjUtNi40IDIuMS0xLjcgNS44LTIuNyA2LjctMi43IDEwMS0xOSAxMTMuMy0yMS40IDExNS4xLTIxLjQgNS43LS40IDkgMyA5IDguNy0uMSAxNzAuNi40IDE2MS40LTEgMTY3LjZ6TTM0NS4yIDMySDEwMi44QzQ1LjkgMzIgMCA3Ny45IDAgMTM0Ljh2MjQyLjRDMCA0MzQuMSA0NS45IDQ4MCAxMDIuOCA0ODBoMjQyLjRjNTcgMCAxMDIuOC00NS45IDEwMi44LTEwMi44VjEzNC44QzQ0OCA3Ny45IDQwMi4xIDMyIDM0NS4yIDMyek0yMjMuNiA0NDRjLTEwNi4zIDAtMTkyLjUtODYuMi0xOTIuNS0xOTIuNVMxMTcuMyA1OSAyMjMuNiA1OXMxOTIuNSA4Ni4yIDE5Mi41IDE5Mi41UzMyOS45IDQ0NCAyMjMuNiA0NDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUphdmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc3Ljc0IDMxMi45YzkuOC02LjcgMjMuNC0xMi41IDIzLjQtMTIuNXMtMzguNyA3LTc3LjIgMTAuMmMtNDcuMSAzLjktOTcuNyA0LjctMTIzLjEgMS4zLTYwLjEtOCAzMy0zMC4xIDMzLTMwLjFzLTM2LjEtMi40LTgwLjYgMTljLTUyLjUgMjUuNCAxMzAgMzcgMjI0LjUgMTIuMXptLTg1LjQtMzIuMWMtMTktNDIuNy04My4xLTgwLjIgMC0xNDUuOEMyOTYgNTMuMiAyNDIuODQgMCAyNDIuODQgMGMyMS41IDg0LjUtNzUuNiAxMTAuMS0xMTAuNyAxNjIuNi0yMy45IDM1LjkgMTEuNyA3NC40IDYwLjIgMTE4LjJ6bTExNC42LTE3Ni4yYy4xIDAtMTc1LjIgNDMuOC05MS41IDE0MC4yIDI0LjcgMjguNC02LjUgNTQtNi41IDU0czYyLjctMzIuNCAzMy45LTcyLjljLTI2LjktMzcuOC00Ny41LTU2LjYgNjQuMS0xMjEuM3ptLTYuMSAyNzAuNWExMi4xOSAxMi4xOSAwIDAgMS0yIDIuNmMxMjguMy0zMy43IDgxLjEtMTE4LjkgMTkuOC05Ny4zYTE3LjMzIDE3LjMzIDAgMCAwLTguMiA2LjMgNzAuNDUgNzAuNDUgMCAwIDEgMTEtM2MzMS02LjUgNzUuNSA0MS41LTIwLjYgOTEuNHpNMzQ4IDQzNy40czE0LjUgMTEuOS0xNS45IDIxLjJjLTU3LjkgMTcuNS0yNDAuOCAyMi44LTI5MS42LjctMTguMy03LjkgMTYtMTkgMjYuOC0yMS4zIDExLjItMi40IDE3LjctMiAxNy43LTItMjAuMy0xNC4zLTEzMS4zIDI4LjEtNTYuNCA0MC4yQzIzMi44NCA1MDkuNCA0MDEgNDYxLjMgMzQ4IDQzNy40ek0xMjQuNDQgMzk2Yy03OC43IDIyIDQ3LjkgNjcuNCAxNDguMSAyNC41YTE4NS44OSAxODUuODkgMCAwIDEtMjguMi0xMy44Yy00NC43IDguNS02NS40IDkuMS0xMDYgNC41LTMzLjUtMy44LTEzLjktMTUuMi0xMy45LTE1LjJ6bTE3OS44IDk3LjJjLTc4LjcgMTQuOC0xNzUuOCAxMy4xLTIzMy4zIDMuNiAwLS4xIDExLjggOS43IDcyLjQgMTMuNiA5Mi4yIDUuOSAyMzMuOC0zLjMgMjM3LjEtNDYuOSAwIDAtNi40IDE2LjUtNzYuMiAyOS43ek0yNjAuNjQgMzUzYy01OS4yIDExLjQtOTMuNSAxMS4xLTEzNi44IDYuNi0zMy41LTMuNS0xMS42LTE5LjctMTEuNi0xOS43LTg2LjggMjguOCA0OC4yIDYxLjQgMTY5LjUgMjUuOWE2MC4zNyA2MC4zNyAwIDAgMS0yMS4xLTEyLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUplZGlPcmRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTguNSAzNzMuNmM5NS45LTEyMi4xIDE3LjItMjMzLjEgMTcuMi0yMzMuMSA0NS40IDg1LjgtNDEuNCAxNzAuNS00MS40IDE3MC41IDEwNS0xNzEuNS02MC41LTI3MS41LTYwLjUtMjcxLjUgOTYuOSA3Mi43LTEwLjEgMTkwLjctMTAuMSAxOTAuNyA4NS44IDE1OC40LTY4LjYgMjMwLjEtNjguNiAyMzAuMXMtLjQtMTYuOS0yLjItODUuN2M0LjMgNC41IDM0LjUgMzYuMiAzNC41IDM2LjJsLTI0LjItNDcuNCA2Mi42LTkuMS02Mi42LTkuMSAyMC4yLTU1LjUtMzEuNCA0NS45Yy0yLjItODcuNy03LjgtMzA1LjEtNy45LTMwNi45di0yLjQgMS0xIDIuNGMwIDEtNS42IDIxOS03LjkgMzA2LjlsLTMxLjQtNDUuOSAyMC4yIDU1LjUtNjIuNiA5LjEgNjIuNiA5LjEtMjQuMiA0Ny40IDM0LjUtMzYuMmMtMS44IDY4LjgtMi4yIDg1LjctMi4yIDg1LjdzLTE1NC40LTcxLjctNjguNi0yMzAuMWMwIDAtMTA3LTExOC4xLTEwLjEtMTkwLjcgMCAwLTE2NS41IDk5LjktNjAuNSAyNzEuNSAwIDAtODYuOC04NC44LTQxLjQtMTcwLjUgMCAwLTc4LjcgMTExIDE3LjIgMjMzLjEgMCAwLTI2LjItMTYuMS00OS40LTc3LjcgMCAwIDE2LjkgMTgzLjMgMjIyIDE4NS43aDQuMWMyMDUtMi40IDIyMi0xODUuNyAyMjItMTg1LjctMjMuNiA2MS41LTQ5LjkgNzcuNy00OS45IDc3Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUplbmtpbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg3LjEgNDI1Yy0xLjQtMTEuMi0xOS0yMy4xLTI4LjItMzEuOS01LjEtNS0yOS0yMy4xLTMwLjQtMjkuOS0xLjQtNi42IDkuNy0yMS41IDEzLjMtMjguOSA1LjEtMTAuNyA4LjgtMjMuNyAxMS4zLTMyLjYgMTguOC02Ni4xIDIwLjctMTU2LjktNi4yLTIxMS4yLTEwLjItMjAuNi0zOC42LTQ5LTU2LjQtNjIuNS00Mi0zMS43LTExOS42LTM1LjMtMTcwLjEtMTYuNi0xNC4xIDUuMi0yNy44IDkuOC00MC4xIDE3LjEtMzMuMSAxOS40LTY4LjMgMzIuNS03OC4xIDcxLjYtMjQuMiAxMC44LTMxLjUgNDEuOC0zMC4zIDc3LjguMiA3IDQuMSAxNS44IDIuNyAyMi40LS43IDMuMy01LjIgNy42LTYuMSA5LjgtMTEuNiAyNy43LTIuMyA2NCAxMS4xIDgzLjcgOC4xIDExLjkgMjEuNSAyMi40IDM5LjIgMjUuMi43IDEwLjYgMy4zIDE5LjcgOC4yIDMwLjQgMy4xIDYuOCAxNC43IDE5IDEwLjQgMjcuNy0yLjIgNC40LTIxIDEzLjgtMjcuMyAxNy42Qzg5IDQwNy4yIDczLjcgNDE1IDU0LjIgNDI5Yy0xMi42IDktMzIuMyAxMC4yLTI5LjIgMzEuMSAyLjEgMTQuMSAxMC4xIDMxLjYgMTQuNyA0NS44LjcgMiAxLjQgNC4xIDIuMSA2aDQyMmM0LjktMTUuMyA5LjctMzAuOSAxNC42LTQ3LjIgMy40LTExLjQgMTAuMi0yNy44IDguNy0zOS43ek0yMDUuOSAzMy43YzEuOC0uNSAzLjQuNyA0LjkgMi40LS4yIDUuMi01LjQgNS4xLTguOSA2LjgtNS40IDYuNy0xMy40IDkuOC0yMCAxNy4yLTYuOCA3LjUtMTQuNCAyNy43LTIzLjQgMzAtNC41IDEuMS05LjctLjgtMTMuNi0uNS0xMC40LjctMTcuNyA2LTI4LjMgNy41IDEzLjYtMjkuOSA1Ni4xLTU0IDg5LjMtNjMuNHptLTEwNC44IDkzLjZjMTMuNS0xNC45IDMyLjEtMjQuMSA1NC44LTI1LjkgMTEuNyAyOS43LTguNCA2NS0uOSA5Ny42IDIuMyA5LjkgMTAuMiAyNS40LTIuNCAyNS43LjMtMjguMy0zNC44LTQ2LjMtNjEuMy0yOS42LTEuOC0yMS41LTQuOS01MS43IDkuOC02Ny44em0zNi43IDIwMC4yYy0xLTQuMS0yLjctMTIuOS0yLjMtMTUuMSAxLjYtOC43IDE3LjEtMTIuNSAxMS0yNC43LTExLjMtLjEtMTMuOCAxMC4yLTI0LjEgMTEuMy0yNi43IDIuNi00NS42LTM1LjQtNDQuNC01OC40IDEtMTkuNSAxNy42LTM4LjIgNDAuMS0zNS44IDE2IDEuOCAyMS40IDE5LjIgMjQuNSAzNC43IDkuMi41IDIyLjUtLjQgMjYuOS03LjYtLjYtMTcuNS04LjgtMzEuNi04LjItNDcuNyAxLTMwLjMgMTcuNS01Ny42IDQuOC04Ny40IDEzLjYtMzAuOSA1My41LTU1LjMgODMuMS03MCAzNi42LTE4LjMgOTQuOS0zLjcgMTI5LjMgMTUuOCAxOS43IDExLjEgMzQuNCAzMi43IDQ4LjMgNTAuNy0xOS41LTUuOC0zNi4xIDQuMi0zMy4xIDIwLjMgMTYuMy0xNC45IDQ0LjItLjIgNTIuNSAxNi40IDcuOSAxNS44IDcuOCAzOS4zIDkgNjIuOCAyLjkgNTctMTAuNCAxMTUuOS0zOS4xIDE1Ny4xLTcuNyAxMS0xNC4xIDIzLTI0LjkgMzAuNi0yNiAxOC4yLTY1LjQgMzQuNy05OS4yIDIzLjQtNDQuNy0xNS02NS00NC44LTg5LjUtNzguOC43IDE4LjcgMTMuOCAzNC4xIDI2LjggNDguNCAxMS4zIDEyLjUgMjUgMjYuNiAzOS43IDMyLjQtMTIuMy0yLjktMzEuMS0zLjgtMzYuMiA3LjItMjguNi0xLjktNTUuMS00LjgtNjguNy0yNC4yLTEwLjYtMTUuNC0yMS40LTQxLjQtMjYuMy02MS40em0yMjIgMTI0LjFjNC4xLTMgMTEuMS0yLjkgMTcuNC0zLjYtNS40LTIuNy0xMy0zLjctMTkuMy0yLjItLjEtNC4yLTItNi44LTMuMi0xMC4yIDEwLjYtMy44IDM1LjUtMjguNSA0OS42LTIwLjMgNi43IDMuOSA5LjUgMjYuMiAxMC4xIDM3IC40IDktLjggMTgtNC41IDIyLjgtMTguOC0uNi0zNS44LTIuOC01MC43LTcgLjktNi4xLTEtMTIuMS42LTE2LjV6bS0xNy4yLTIwYy0xNi44LjgtMjYtMS4yLTM4LjMtMTAuOC4yLS44IDEuNC0uNSAxLjUtMS40IDE4IDggNDAuOC0zLjMgNTktNC45LTcuOSA1LjEtMTQuNiAxMS42LTIyLjIgMTcuMXptLTEyLjEgMzMuMmMtMS42LTkuNC0zLjUtMTItMi44LTIwLjIgMjUtMTYuNiAyOS43IDI4LjYgMi44IDIwLjJ6TTIyNiA0MzguNmMtMTEuNi0uNy00OC4xLTE0LTM4LjUtMjMuNyA5LjQgNi41IDI3LjUgNC45IDQxLjMgNy4zLjggNC40LTIuOCAxMC4yLTIuOCAxNi40ek01Ny43IDQ5Ny4xYy00LjMtMTIuNy05LjItMjUuMS0xNC44LTM2LjkgMzAuOC0yMy44IDY1LjMtNDguOSAxMDIuMi02My41IDIuOC0xLjEgMjMuMiAyNS40IDI2LjIgMjcuNiAxNi41IDExLjcgMzcgMjEgNTYuMiAzMC4yIDEuMiA4LjggMy45IDIwLjIgOC43IDM1LjUuNyAyLjMgMS40IDQuNyAyLjIgNy4ySDU3Ljd6bTI0MC42IDUuN2gtLjhjLjMtLjIuNS0uNC44LS41di41em03LjUtNS43YzIuMS0xLjQgNC4zLTIuOCA2LjQtNC4zIDEuMSAxLjQgMi4yIDIuOCAzLjIgNC4zaC05LjZ6bTE1LjEtMjQuN2MtMTAuOCA3LjMtMjAuNiAxOC4zLTMzLjMgMjUuMi02IDMuMy0yNyAxMS43LTMzLjQgMTAuMi0zLjYtLjgtMy45LTUuMy01LjQtOS41LTMuMS05LTEwLjEtMjMuNC0xMC44LTM3LS44LTE3LjItMi41LTQ2IDE2LTQyLjQgMTQuOSAyLjkgMzIuMyA5LjcgNDMuOSAxNi4xIDcuMSAzLjkgMTEuMSA4LjYgMjEuOSA5LjUtLjEgMS40LS4xIDIuOC0uMiA0LjMtNS45IDMuOS0xNS4zIDMuOC0yMS44IDcuMSA5LjUuNCAxNyAyLjcgMjMuNSA1LjktLjEgMy40LS4zIDctLjQgMTAuNnptNTMuNCAyNC43aC0xNGMtLjEtMy4yLTIuOC01LjgtNi4xLTUuOHMtNS45IDIuNi02LjEgNS44aC0xNy40Yy0yLjgtNC40LTUuNy04LjYtOC45LTEyLjUgMi4xLTIuMiA0LTQuNyA2LTYuOSA5IDMuNyAxNC44LTQuOSAyMS43LTQuMiA3LjkuOCAxNC4yIDExLjcgMjUuNCAxMWwtLjYgMTIuNnptOC43IDBjLjItNCAuNC03LjguNi0xMS41IDE1LjYtNy4zIDI5IDEuMyAzNS43IDExLjVIMzgzem04My40LTM3Yy0yLjMgMTEuMi01LjggMjQtOS45IDM3LjEtLjItLjEtLjQtLjEtLjYtLjFINDI4Yy42LTEuMSAxLjItMi4yIDEuOS0zLjMtMi42LTYuMS05LTguNy0xMC45LTE1LjUgMTIuMS0yMi43IDYuNS05My40LTI0LjItNzguNSA0LjMtNi4zIDE1LjYtMTEuNSAyMC44LTE5LjMgMTMgMTAuNCAyMC44IDIwLjMgMzMuMiAzMS40IDYuOCA2IDIwIDEzLjMgMjEuNCAyMy4xLjggNS41LTIuNiAxOC45LTMuOCAyNS4xek0yMjIuMiAxMzAuNWM1LjQtMTQuOSAyNy4yLTM0LjcgNDUtMzIgNy43IDEuMiAxOCA4LjIgMTIuMiAxNy43LTMwLjItNy00NS4yIDEyLjYtNTQuNCAzMy4xLTguMS0yLTQuOS0xMy4xLTIuOC0xOC44em0xODQuMSA2My4xYzguMi0zLjYgMjIuNC0uNyAyOS42LTUuMy00LjItMTEuNS0xMC4zLTIxLjQtOS4zLTM3LjcuNSAwIDEgMCAxLjQuMSA2LjggMTQuMiAxMi43IDI5LjIgMjEuNCA0MS43LTUuNyAxMy41LTQzLjYgMjUuNC00My4xIDEuMnptMjAuNC00M3ptLTExNy4yIDQ1LjdjLTYuOC0xMC45LTE5LTMyLjUtMTQuNS00NS4zIDYuNSAxMS45IDguNiAyNC40IDE3LjggMzMuMyA0LjEgNCAxMi4yIDkgOC4yIDIwLjItLjkgMi43LTcuOCA4LjYtMTEuNyA5LjctMTQuNCA0LjMtNDcuOS45LTM2LjYtMTcuMSAxMS45LjcgMjcuOSA3LjggMzYuOC0uOHptMjcuMyA3MGMzLjggNi42IDEuNCAxOC43IDEyLjEgMjAuNiAyMC4yIDMuNCA0My42LTEyLjMgNTguMS0xNy44IDktMTUuMi0uOC0yMC43LTguOS0zMC41LTE2LjYtMjAtMzguOC00NC44LTM4LTc0LjcgNi43LTQuOSA3LjMgNy40IDguMiA5LjcgOC43IDIwLjMgMzAuNCA0Ni4yIDQ2LjMgNjMuNSAzLjkgNC4zIDEwLjMgOC40IDExIDExLjIgMi4xIDguMi01LjQgMTgtNC41IDIzLjUtMjEuNyAxMy45LTQ1LjggMjkuMS04MS40IDI1LjYtNy40LTYuNy0xMC4zLTIxLjQtMi45LTMxLjF6bS0yMDEuMy05LjJjLTYuOC0zLjktOC40LTIxLTE2LjQtMjEuNC0xMS40LS43LTkuMyAyMi4yLTkuMyAzNS41LTcuOC03LjEtOS4yLTI5LjEtMy41LTQwLjMtNi42LTMuMi05LjUgMy42LTEzLjEgNS45IDQuNy0zNC4xIDQ5LjgtMTUuOCA0Mi4zIDIwLjN6bTI5OS42IDI4LjhjLTEwLjEgMTkuMi0yNC40IDQwLjQtNTQgNDEtLjYtNi4yLTEuMS0xNS42IDAtMTkuNCAyMi43LTIuMiAzNi42LTEzLjcgNTQtMjEuNnptLTE0MS45IDEyLjRjMTguOSA5LjkgNTMuNiAxMSA3OS4zIDEwLjIgMS40IDUuNiAxLjMgMTIuNiAxLjQgMTkuNC0zMyAxLjgtNzItNi40LTgwLjctMjkuNnptOTIuMiA0Ni43Yy0xLjcgNC4zLTUuMyA5LjMtOS44IDExLjEtMTIuMSA0LjktNDUuNiA4LjctNjIuNC0uMy0xMC43LTUuNy0xNy41LTE4LjUtMjMuNC0yNi0yLjgtMy42LTE2LjktMTIuOS0uMi0xMi45IDEzLjEgMzIuNyA1OCAyOSA5NS44IDI4LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUppcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDkwIDI0MS43QzQxNy4xIDE2OSAzMjAuNiA3MS44IDI0OC41IDAgODMgMTY0LjkgNiAyNDEuNyA2IDI0MS43Yy03LjkgNy45LTcuOSAyMC43IDAgMjguN0MxMzguOCA0MDIuNyA2Ny44IDMzMS45IDI0OC41IDUxMmMzNzkuNC0zNzggMTUuNy0xNi43IDI0MS41LTI0MS43IDgtNy45IDgtMjAuNyAwLTI4LjZ6bS0yNDEuNSA5MGwtNzYtNzUuNyA3Ni03NS43IDc2IDc1LjctNzYgNzUuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSm9nZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzc4LjEgNDVDMzM3LjYgMTkuOSAyOTIuNiA4IDI0OC4yIDggMTY1IDggODMuOCA0OS45IDM2LjkgMTI1LjljLTcxLjkgMTE2LjYtMzUuNiAyNjkuMyA4MSAzNDEuMnMyNjkuMyAzNS42IDM0MS4yLTgwLjljNzEuOS0xMTYuNiAzNS42LTI2OS40LTgxLTM0MS4yem01MS44IDMyMy4yYy00MC40IDY1LjUtMTEwLjQgMTAxLjUtMTgyIDEwMS41LTYuOCAwLTEzLjYtLjQtMjAuNC0xLTktMTMuNi0xOS45LTMzLjMtMjMuNy00Mi40LTUuNy0xMy43LTI3LjItNDUuNiAzMS4yLTY3LjEgNTEuNy0xOS4xIDE3Ni43LTE2LjUgMjA4LjgtMTcuNi00IDktOC42IDE3LjktMTMuOSAyNi42em0tMjAwLjgtODYuM2MtNTUuNS0xLjQtODEuNy0yMC44LTU4LjUtNDguMnM1MS4xLTQwLjcgNjguOS01MS4yYzE3LjktMTAuNSAyNy4zLTMzLjctMjMuNi0yOS43Qzg3LjMgMTYxLjUgNDguNiAyNTIuMSAzNy42IDI5M2MtOC44LTQ5LjctLjEtMTAyLjcgMjguNS0xNDkuMUMxMjggNDMuNCAyNTkuNiAxMi4yIDM2MC4xIDc0LjFjNzQuOCA0Ni4xIDExMS4yIDEzMC45IDk5LjMgMjEyLjctMjQuOS0uNS0xNzkuMy0zLjYtMjMwLjMtNC45em0xODMuOC01NC44Yy0yMi43LTYtNTcgMTEuMy04Ni43IDI3LjItMjkuNyAxNS44LTMxLjEgOC4yLTMxLjEgOC4yczQwLjItMjguMSA1MC43LTM0LjUgMzEuOS0xNCAxMy40LTI0LjZjLTMuMi0xLjgtNi43LTIuNy0xMC40LTIuNy0xNy44IDAtNDEuNSAxOC43LTY3LjUgMzUuNi0zMS41IDIwLjUtNjUuMyAzMS4zLTY1LjMgMzEuM2wxNjkuNS0xLjYgNDYuNS0yMy40czMuNi05LjUtMTkuMS0xNS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKb29tbGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjYgOTIuMUMuNiA1OC44IDI3LjQgMzIgNjAuNCAzMmMzMCAwIDU0LjUgMjEuOSA1OS4yIDUwLjIgMzIuNi03LjYgNjcuMS42IDk2LjUgMzBsLTQ0LjMgNDQuM2MtMjAuNS0yMC41LTQyLjYtMTYuMy01NS40LTMuNS0xNC4zIDE0LjMtMTQuMyAzNy45IDAgNTIuMmw5OS41IDk5LjUtNDQgNDQuM2MtODcuNy04Ny4yLTQ5LjctNDkuNy05OS44LTk5LjctMjYuOC0yNi41LTM1LTY0LjgtMjQuOC05OC45QzIwLjQgMTQ0LjYuNiAxMjAuNy42IDkyLjF6bTEyOS41IDExNi40bDQ0LjMgNDQuM2MxMC0xMCA4OS43LTg5LjcgOTkuNy05OS44IDE0LjMtMTQuMyAzNy42LTE0LjMgNTEuOSAwIDEyLjggMTIuOCAxNyAzNS0zLjUgNTUuNGw0NCA0NC4zYzMxLjItMzEuMiAzOC41LTY3LjYgMjguOS0xMDEuMiAyOS4yLTQuMSA1MS45LTI5LjIgNTEuOS01OS41IDAtMzMuMi0yNi44LTYwLjEtNTkuOC02MC4xLTMwLjMgMC01NS40IDIyLjUtNTkuNSA1MS42LTMzLjgtOS45LTcxLjctMS41LTk4LjMgMjUuMS0xOC4zIDE5LjEtNzEuMSA3MS41LTk5LjYgOTkuOXptMjY2LjMgMTUyLjJjOC4yLTMyLjctLjktNjguNS0yNi4zLTkzLjktMTEuOC0xMi4yIDUgNC43LTk5LjUtOTkuN2wtNDQuMyA0NC4zIDk5LjcgOTkuN2MxNC4zIDE0LjMgMTQuMyAzNy42IDAgNTEuOS0xMi44IDEyLjgtMzUgMTctNTUuNC0zLjVsLTQ0IDQ0LjNjMjcuNiAzMC4yIDY4IDM4LjggMTAyLjcgMjggNS41IDI3LjQgMjkuNyA0OC4xIDU4LjkgNDguMSAzMyAwIDU5LjgtMjYuOCA1OS44LTYwLjEgMC0zMC4yLTIyLjUtNTUtNTEuNi01OS4xem0tODQuMy01My4xbC00NC00NC4zYy04NyA4Ni40LTUwLjQgNTAuNC05OS43IDk5LjgtMTQuMyAxNC4zLTM3LjYgMTQuMy01MS45IDAtMTMuMS0xMy40LTE2LjktMzUuMyAzLjItNTUuNGwtNDQtNDQuM2MtMzAuMiAzMC4yLTM4IDY1LjItMjkuNSA5OC4zLTI2LjcgNi00Ni4yIDI5LjktNDYuMiA1OC4yQzAgNDUzLjIgMjYuOCA0ODAgNTkuOCA0ODBjMjguNiAwIDUyLjUtMTkuOCA1OC42LTQ2LjcgMzIuNyA4LjIgNjguNS0uNiA5NC4yLTI2IDMyLjEtMzIgMTIuMi0xMi40IDk5LjUtOTkuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnY0NDhoNDQ4VjMySDB6bTI0My44IDM0OS40YzAgNDMuNi0yNS42IDYzLjUtNjIuOSA2My41LTMzLjcgMC01My4yLTE3LjQtNjMuMi0zOC41bDM0LjMtMjAuN2M2LjYgMTEuNyAxMi42IDIxLjYgMjcuMSAyMS42IDEzLjggMCAyMi42LTUuNCAyMi42LTI2LjVWMjM3LjdoNDIuMXYxNDMuN3ptOTkuNiA2My41Yy0zOS4xIDAtNjQuNC0xOC42LTc2LjctNDNsMzQuMy0xOS44YzkgMTQuNyAyMC44IDI1LjYgNDEuNSAyNS42IDE3LjQgMCAyOC42LTguNyAyOC42LTIwLjggMC0xNC40LTExLjQtMTkuNS0zMC43LTI4bC0xMC41LTQuNWMtMzAuNC0xMi45LTUwLjUtMjkuMi01MC41LTYzLjUgMC0zMS42IDI0LjEtNTUuNiA2MS42LTU1LjYgMjYuOCAwIDQ2IDkuMyA1OS44IDMzLjdMMzY4IDI5MGMtNy4yLTEyLjktMTUtMTgtMjcuMS0xOC0xMi4zIDAtMjAuMSA3LjgtMjAuMSAxOCAwIDEyLjYgNy44IDE3LjcgMjUuOSAyNS42bDEwLjUgNC41YzM1LjggMTUuMyA1NS45IDMxIDU1LjkgNjYuMiAwIDM3LjgtMjkuOCA1OC42LTY5LjcgNTguNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSnNmaWRkbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEwLjYzNCAyMzcuNDYyYy00LjcyNy0yLjYyMS01LjY2NC01Ljc0OC02LjM4MS0xMC43NzYtMi4zNTItMTYuNDg4LTMuNTM5LTMzLjYxOS05LjA5Ny00OS4wOTUtMzUuODk1LTk5Ljk1Ny0xNTMuOTktMTQzLjM4Ni0yNDYuODQ5LTkxLjY0Ni0yNy4zNyAxNS4yNS00OC45NzEgMzYuMzY5LTY1LjQ5MyA2My45MDMtMy4xODQtMS41MDgtNS40NTgtMi43MS03LjgyNC0zLjY4Ni0zMC4xMDItMTIuNDIxLTU5LjA0OS0xMC4xMjEtODUuMzMxIDkuMTY3LTI1LjUzMSAxOC43MzctMzYuNDIyIDQ0LjU0OC0zMi42NzYgNzYuNDA4LjM1NSAzLjAyNS0xLjk2NyA3LjYyMS00LjUxNCA5LjU0NS0zOS43MTIgMjkuOTkyLTU2LjAzMSA3OC4wNjUtNDEuOTAyIDEyNC42MTUgMTMuODMxIDQ1LjU2OSA1Ny41MTQgNzkuNzk2IDEwNS42MDggODEuNDMzIDMwLjI5MSAxLjAzMSA2MC42MzcuNTQ2IDkwLjk1OS41MzkgODQuMDQxLS4wMjEgMTY4LjA5LjUzMSAyNTIuMTItLjQ4IDUyLjY2NC0uNjM0IDk2LjEwOC0zNi44NzMgMTA4LjIxMi04Ny4yOTMgMTEuNTQtNDguMDc0LTExLjE0NC05Ny4zLTU2LjgzMi0xMjIuNjM0em0yMS4xMDcgMTU2Ljg4Yy0xOC4yMyAyMi40MzItNDIuMzQzIDM1LjI1My03MS4yOCAzNS42NS01Ni44NzQuNzgxLTExMy43NjcuMjMtMTcwLjY1Mi4yMyAwIC43LTE2My4wMjguMTU5LTE2My43MjguMTU0LTQzLjg2MS0uMzMyLTc2LjczOS0xOS43NjYtOTUuMTc1LTU5Ljk5NS0xOC45MDItNDEuMjQ1LTQuMDA0LTkwLjg0OCAzNC4xODYtMTE2LjEwNiA5LjE4Mi02LjA3MyAxMi41MDUtMTEuNTY2IDEwLjA5Ni0yMy4xMzYtNS40OS0yNi4zNjEgNC40NTMtNDcuOTU2IDI2LjQyLTYyLjk4MSAyMi45ODctMTUuNzIzIDQ3LjQyMi0xNi4xNDYgNzIuMDM0LTMuMDgzIDEwLjI2OSA1LjQ1IDE0LjYwNyAxMS41NjQgMjIuMTk4LTIuNTI3IDE0LjIyMi0yNi4zOTkgMzQuNTU3LTQ2LjcyNyA2MC42NzEtNjEuMjk0IDk3LjQ2LTU0LjM2NiAyMjguMzcgNy41NjggMjMwLjI0IDEzMi42OTcuMTIyIDguMTUgMi40MTIgMTIuNDI4IDkuODQ4IDE1Ljg5NCA1Ny41NiAyNi44MjkgNzQuNDU2IDk2LjEyMiAzNS4xNDIgMTQ0LjQ5N3ptLTg3Ljc4OS04MC40OTljLTUuODQ4IDMxLjE1Ny0zNC42MjIgNTUuMDk2LTY2LjY2NiA1NS4wOTUtMTYuOTUzLS4wMDEtMzIuMDU4LTYuNTQ1LTQ0LjA3OS0xNy43MDUtMjcuNjk3LTI1LjcxMy03MS4xNDEtNzQuOTgtOTUuOTM3LTkzLjM4Ny0yMC4wNTYtMTQuODg4LTQxLjk5LTEyLjMzMy02MC4yNzIgMy43ODItNDkuOTk2IDQ0LjA3MSAxNS44NTkgMTIxLjc3NSA2Ny4wNjMgNzcuMTg4IDQuNTQ4LTMuOTYgNy44NC05LjU0MyAxMi43NDQtMTIuODQ0IDguMTg0LTUuNTA5IDIwLjc2Ni0uODg0IDEzLjE2OCAxMC42MjItMTcuMzU4IDI2LjI4NC00OS4zMyAzOC4xOTctNzguODYzIDI5LjMwMS0yOC44OTctOC43MDQtNDguODQtMzUuOTY4LTQ4LjYyNi03MC4xNzkgMS4yMjUtMjIuNDg1IDEyLjM2NC00My4wNiAzNS40MTQtNTUuOTY1IDIyLjU3NS0xMi42MzggNDYuMzY5LTEzLjE0NiA2Ni45OTEgMi40NzRDMjk1LjY4IDI4MC43IDMyMC40NjcgMzIzLjk3IDM1Mi4xODUgMzQzLjQ3YzI0LjU1OCAxNS4wOTkgNTQuMjU0IDcuMzYzIDY4LjgyMy0xNy41MDYgMjguODMtNDkuMjA5LTM0LjU5Mi0xMDUuMDE2LTc4Ljg2OC02My40Ni0zLjk4OSAzLjc0NC02LjkxNyA4LjkzMi0xMS40MSAxMS43Mi0xMC45NzUgNi44MTEtMTcuMzMzLTQuMTEzLTEyLjgwOS0xMC4zNTMgMjAuNzAzLTI4LjU1NCA1MC40NjQtNDAuNDQgODMuMjcxLTI4LjIxNCAzMS40MjkgMTEuNzE0IDQ5LjEwOCA0NC4zNjYgNDIuNzYgNzguMTg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKeGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDEyLjIgMzJIMzUuOEMxNiAzMiAwIDQ4IDAgNjcuOFY0NDQuMkMwIDQ2NCAxNiA0ODAgMzUuOCA0ODBINDEyLjJjMTkuOCAwIDM1LjgtMTYgMzUuOC0zNS44VjY3LjhDNDQ4IDQ4IDQzMiAzMiA0MTIuMiAzMnpNMzc4LjYgMzMzLjdjMCA0MC4yLTMyLjYgNzIuOC03Mi44IDcyLjhINzAuMmMwLTQwLjIgMzIuNi03Mi44IDcyLjgtNzIuOEgzNzguNnptMC0xMTMuOWMwIDQwLjItMzIuNiA3Mi44LTcyLjggNzIuOEg3MC4yYzAtNDAuMiAzMi42LTcyLjggNzIuOC03Mi44SDM3OC42em0wLTExMy45YzAgNDAuMi0zMi42IDcyLjgtNzIuOCA3Mi44SDcwLjJjMC00MC4yIDMyLjYtNzIuOCA3Mi44LTcyLjhIMzc4LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUthZ2dsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDQuMiA1MDEuNUwxNTguNCAzMjAuMyAyOTguMiAxODVjMi42LTIuNyAxLjctMTAuNS01LjMtMTAuNWgtNjkuMmMtMy41IDAtNyAxLjgtMTAuNSA1LjNMODAuOSAzMTMuNVY3LjVxMC03LjUtNy41LTcuNUgyMS41UTE0IDAgMTQgNy41djQ5N3EwIDcuNSA3LjUgNy41aDUxLjlxNy41IDAgNy41LTcuNXYtMTA5bDMwLjgtMjkuMyAxMTAuNSAxNDAuNmMzIDMuNSA2LjUgNS4zIDEwLjUgNS4zaDY2LjlxNS4yNSAwIDYtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS2V5YmFzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODYuMTcgNDE5YTE4IDE4IDAgMSAwIDE4IDE4IDE4IDE4IDAgMCAwLTE4LTE4em0xMTEuOTItMTQ3LjZjLTkuNS0xNC42Mi0zOS4zNy01Mi40NS04Ny4yNi03My43MXEtOS4xLTQuMDYtMTguMzgtNy4yN2E3OC40MyA3OC40MyAwIDAgMC00Ny44OC0xMDQuMTNjLTEyLjQxLTQuMS0yMy4zMy02LTMyLjQxLTUuNzctLjYtMi0xLjg5LTExIDkuNC0zNUwxOTguNjYgMzJsLTUuNDggNy41NmMtOC42OSAxMi4wNi0xNi45MiAyMy41NS0yNC4zNCAzNC44OWE1MSA1MSAwIDAgMC04LjI5LTEuMjVjLTQxLjUzLTIuNDUtMzktMi4zMy00MS4wNi0yLjMzLTUwLjYxIDAtNTAuNzUgNTIuMTItNTAuNzUgNDUuODhsLTIuMzYgMzYuNjhjLTEuNjEgMjcgMTkuNzUgNTAuMjEgNDcuNjMgNTEuODVsOC45My41NGEyMTQgMjE0IDAgMCAwLTQ2LjI5IDM1LjU0QzE0IDMwNC42NiAxNCAzNzQgMTQgNDI5Ljc3djMzLjY0bDIzLjMyLTI5LjhhMTQ4LjYgMTQ4LjYgMCAwIDAgMTQuNTYgMzcuNTZjNS43OCAxMC4xMyAxNC44NyA5LjQ1IDE5LjY0IDcuMzMgNC4yMS0xLjg3IDEwLTYuOTIgMy43NS0yMC4xMWExNzguMjkgMTc4LjI5IDAgMCAxLTE1Ljc2LTUzLjEzbDQ2LjgyLTU5LjgzLTI0LjY2IDc0LjExYzU4LjIzLTQyLjQgMTU3LjM4LTYxLjc2IDIzNi4yNS0zOC41OSAzNC4yIDEwLjA1IDY3LjQ1LjY5IDg0Ljc0LTIzLjg0LjcyLTEgMS4yLTIuMTYgMS44NS0zLjIyYTE1Ni4wOSAxNTYuMDkgMCAwIDEgMi44IDI4LjQzYzAgMjMuMy0zLjY5IDUyLjkzLTE0Ljg4IDgxLjY0LTIuNTIgNi40NiAxLjc2IDE0LjUgOC42IDE1Ljc0IDcuNDIgMS41NyAxNS4zMy0zLjEgMTguMzctMTEuMTVDNDI5IDQ0MyA0MzQgNDE0IDQzNCAzODIuMzJjMC0zOC41OC0xMy03Ny40Ni0zNS45MS0xMTAuOTJ6TTE0Mi4zNyAxMjguNThsLTE1LjctLjkzLTEuMzkgMjEuNzkgMTMuMTMuNzhhOTMgOTMgMCAwIDAgLjMyIDE5LjU3bC0yMi4zOC0xLjM0YTEyLjI4IDEyLjI4IDAgMCAxLTExLjc2LTEyLjc5TDEwNyAxMTljMS0xMi4xNyAxMy44Ny0xMS4yNyAxMy4yNi0xMS4zMmwyOS4xMSAxLjczYTE0NC4zNSAxNDQuMzUgMCAwIDAtNyAxOS4xN3ptMTQ4LjQyIDE3Mi4xOGExMC41MSAxMC41MSAwIDAgMS0xNC4zNS0xLjM5bC05LjY4LTExLjQ5LTM0LjQyIDI3YTguMDkgOC4wOSAwIDAgMS0xMS4xMy0xLjA4bC0xNS43OC0xOC42NGE3LjM4IDcuMzggMCAwIDEgMS4zNC0xMC4zNGwzNC41Ny0yNy4xOC0xNC4xNC0xNi43NC0xNy4wOSAxMy40NWE3Ljc1IDcuNzUgMCAwIDEtMTAuNTktMXMtMy43Mi00LjQyLTMuOC00LjUzYTcuMzggNy4zOCAwIDAgMSAxLjM3LTEwLjM0TDIxNCAyMjUuMTlzLTE4LjUxLTIyLTE4LjYtMjIuMTRhOS41NiA5LjU2IDAgMCAxIDEuNzQtMTMuNDIgMTAuMzggMTAuMzggMCAwIDEgMTQuMyAxLjM3bDgxLjA5IDk2LjMyYTkuNTggOS41OCAwIDAgMS0xLjc0IDEzLjQ0ek0xODcuNDQgNDE5YTE4IDE4IDAgMSAwIDE4IDE4IDE4IDE4IDAgMCAwLTE4LTE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLZXljZG4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjMuOCA0MDkuM2w2MC41LTU5YzMyLjEgNDIuOCA3MS4xIDY2IDEyNi42IDY3LjQgMzAuNS43IDYwLjMtNyA4Ni40LTIyLjQgNS4xIDUuMyAxOC41IDE5LjUgMjAuOSAyMi0zMi4yIDIwLjctNjkuNiAzMS4xLTEwOC4xIDMwLjItNDMuMy0xLjEtODQuNi0xNi43LTExNy43LTQ0LjQuMy0uNi0zOC4yIDM3LjUtMzguNiAzNy45IDkuNSAyOS44LTEzLjEgNjIuNC00Ni4zIDYyLjRDMjAuNyA1MDMuMyAwIDQ4MS43IDAgNDU0LjljMC0zNC4zIDMzLjEtNTYuNiA2My44LTQ1LjZ6bTM1NC45LTI1Mi40YzE5LjEgMzEuMyAyOS42IDY3LjQgMjguNyAxMDQtMS4xIDQ0LjgtMTkgODcuNS00OC42IDEyMSAuMy4zIDIzLjggMjUuMiAyNC4xIDI1LjUgOS42LTEuMyAxOS4yIDIgMjUuOSA5LjEgMTEuMyAxMiAxMC45IDMwLjktMS4xIDQyLjQtMTIgMTEuMy0zMC45IDEwLjktNDIuNC0xLjEtNi43LTctOS40LTE2LjgtNy42LTI2LjMtMjQuOS0yNi42LTQ0LjQtNDcuMi00NC40LTQ3LjIgNDIuNy0zNC4xIDYzLjMtNzkuNiA2NC40LTEyNC4yLjctMjguOS03LjItNTcuMi0yMS4xLTgyLjJsMjIuMS0yMXpNMTA0IDUzLjFjNi43IDcgOS40IDE2LjggNy42IDI2LjNsNDUuOSA0OC4xYy00LjcgMy44LTEzLjMgMTAuNC0yMi44IDIxLjMtMjUuNCAyOC41LTM5LjYgNjQuOC00MC43IDEwMi45LS43IDI4LjkgNi4xIDU3LjIgMjAgODIuNGwtMjIgMjEuNUM3Mi43IDMyNCA2My4xIDI4Ny45IDY0LjIgMjUwLjljMS00NC42IDE4LjMtODcuNiA0Ny41LTEyMS4xbC0yNS4zLTI2LjRjLTkuNiAxLjMtMTkuMi0yLTI1LjktOS4xLTExLjMtMTItMTAuOS0zMC45IDEuMS00Mi40QzczLjUgNDAuNyA5Mi4yIDQxIDEwNCA1My4xek00NjQuOSA4YzI2IDAgNDcuMSAyMi40IDQ3LjEgNDguM1M0OTAuOSAxMDQgNDY0LjkgMTA0Yy02LjMuMS0xNC0xLjEtMTUuOS0xLjhsLTYyLjkgNTkuN2MtMzIuNy00My42LTc2LjctNjUuOS0xMjYuOS02Ny4yLTMwLjUtLjctNjAuMyA2LjgtODYuMiAyMi40bC0yMS4xLTIyQzE4NC4xIDc0LjMgMjIxLjUgNjQgMjYwIDY0LjljNDMuMyAxLjEgODQuNiAxNi43IDExNy43IDQ0LjZsNDEuMS0zOC42Yy0xLjUtNC43LTIuMi05LjYtMi4yLTE0LjVDNDE2LjUgMjkuNyA0MzguOSA4IDQ2NC45IDh6TTI1Ni43IDExMy40YzUuNSAwIDEwLjkuNCAxNi40IDEuMSA3OC4xIDkuOCAxMzMuNCA4MS4xIDEyMy44IDE1OS4xLTkuOCA3OC4xLTgxLjEgMTMzLjQtMTU5LjEgMTIzLjgtNzguMS05LjgtMTMzLjQtODEuMS0xMjMuOC0xNTkuMiA5LjMtNzIuNCA3MC4xLTEyNC42IDE0Mi43LTEyNC44em0tNTkgMTE5LjRjLjYgMjIuNyAxMi4yIDQxLjggMzIuNCA1Mi4ybC0xMSA1MS43aDczLjdsLTExLTUxLjdjMjAuMS0xMC45IDMyLjEtMjkgMzIuNC01Mi4yLS40LTMyLjgtMjUuOC01Ny41LTU4LjMtNTguMy0zMi4xLjgtNTcuMyAyNC44LTU4LjIgNTguM3pNMjU2IDE2MFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLaWNrc3RhcnRlcksgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzU2LjYgMjU2LjJsNDAuOC00MC41YzQyLjItNDEuOSA0Mi4yLTExMC4zIDAtMTUyLjFzLTExMS00MS45LTE1My4yIDBMMjI5LjMgNzguNEMyMDkuNiA1MC4zIDE3Ny4xIDMyIDE0MC4yIDMyQzgwLjUgMzIgMzIgODAuMiAzMiAxMzkuNVYzNzIuNUMzMiA0MzEuOSA4MC41IDQ4MCAxNDAuMiA0ODBjMzcuMSAwIDY5LjMtMTguMyA4OS00Ni40bDE0LjkgMTQuN2M0Mi4yIDQxLjkgMTExIDQxLjkgMTUzLjIgMHM0Mi4yLTExMC4zIDAtMTUyLjFsLTQwLjgtNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUtpY2tzdGFydGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTMyMC44IDIzM2wtMjMuMyAyMy4xTDMyMC44IDI3OWMyNC4xIDIzLjkgMjQuMSA2MyAwIDg2LjlzLTYzLjQgMjMuOS04Ny42IDBsLTguNS04LjRjLTExLjMgMTYtMjkuNyAyNi41LTUwLjkgMjYuNWMtMzQuMSAwLTYxLjktMjcuNS02MS45LTYxLjRsMC0xMzMuMmMwLTMzLjggMjcuNy02MS40IDYxLjktNjEuNGMyMS4xIDAgMzkuNiAxMC41IDUwLjkgMjYuNWw4LjUtOC40YzI0LjEtMjMuOSA2My40LTIzLjkgODcuNiAwczI0LjEgNjMgMCA4Ni45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLb3J2dWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg2LjUgMzRoLTMyN0MyNi44IDM0IDAgNjAuOCAwIDkzLjV2MzI3LjFDMCA0NTMuMiAyNi44IDQ4MCA1OS41IDQ4MGgzMjcuMWMzMyAwIDU5LjUtMjYuOCA1OS41LTU5LjV2LTMyN0M0NDYgNjAuOCA0MTkuMiAzNCAzODYuNSAzNHpNODcuMSAxMjAuOGg5NnYxMTZsNjEuOC0xMTZoMTEwLjlsLTgxLjIgMTMySDg3LjF2LTEzMnptMTYxLjggMjcyLjFsLTY1LjctMTEzLjZ2MTEzLjZoLTk2VjI2Mi4xaDE5MS41bDg4LjYgMTMwLjhIMjQ4Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhcmF2ZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA0LjQsMTE1LjgzYTUuNzIsNS43MiwwLDAsMC0uMjgtLjY4LDguNTIsOC41MiwwLDAsMC0uNTMtMS4yNSw2LDYsMCwwLDAtLjU0LS43MSw5LjM2LDkuMzYsMCwwLDAtLjcyLS45NGMtLjIzLS4yMi0uNTItLjQtLjc3LS42YTguODQsOC44NCwwLDAsMC0uOS0uNjhMNDA0LjQsNTUuNTVhOCw4LDAsMCwwLTgsMEwzMDAuMTIsMTExaDBhOC4wNyw4LjA3LDAsMCwwLS44OC42OSw3LjY4LDcuNjgsMCwwLDAtLjc4LjYsOC4yMyw4LjIzLDAsMCwwLS43Mi45M2MtLjE3LjI0LS4zOS40NS0uNTQuNzFhOS43LDkuNywwLDAsMC0uNTIsMS4yNWMtLjA4LjIzLS4yMS40NC0uMjguNjhhOC4wOCw4LjA4LDAsMCwwLS4yOCwyLjA4VjIyMy4xOGwtODAuMjIsNDYuMTlWNjMuNDRhNy44LDcuOCwwLDAsMC0uMjgtMi4wOWMtLjA2LS4yNC0uMi0uNDUtLjI4LS42OGE4LjM1LDguMzUsMCwwLDAtLjUyLTEuMjRjLS4xNC0uMjYtLjM3LS40Ny0uNTQtLjcyYTkuMzYsOS4zNiwwLDAsMC0uNzItLjk0LDkuNDYsOS40NiwwLDAsMC0uNzgtLjYsOS44LDkuOCwwLDAsMC0uODgtLjY4aDBMMTE1LjYxLDEuMDdhOCw4LDAsMCwwLTgsMEwxMS4zNCw1Ni40OWgwYTYuNTIsNi41MiwwLDAsMC0uODguNjksNy44MSw3LjgxLDAsMCwwLS43OS42LDguMTUsOC4xNSwwLDAsMC0uNzEuOTNjLS4xOC4yNS0uNC40Ni0uNTUuNzJhNy44OCw3Ljg4LDAsMCwwLS41MSwxLjI0LDYuNDYsNi40NiwwLDAsMC0uMjkuNjcsOC4xOCw4LjE4LDAsMCwwLS4yOCwyLjF2MzI5LjdhOCw4LDAsMCwwLDQsNi45NWwxOTIuNSwxMTAuODRhOC44Myw4LjgzLDAsMCwwLDEuMzMuNTRjLjIxLjA4LjQxLjIuNjMuMjZhNy45Miw3LjkyLDAsMCwwLDQuMSwwYy4yLS4wNS4zNy0uMTYuNTUtLjIyYTguNiw4LjYsMCwwLDAsMS40LS41OEw0MDQuNCw0MDAuMDlhOCw4LDAsMCwwLDQtNi45NVYyODcuODhsOTIuMjQtNTMuMTFhOCw4LDAsMCwwLDQtN1YxMTcuOTJBOC42Myw4LjYzLDAsMCwwLDUwNC40LDExNS44M1pNMTExLjYsMTcuMjhoMGw4MC4xOSw0Ni4xNS04MC4yLDQ2LjE4TDMxLjQxLDYzLjQ0Wm04OC4yNSw2MFYyNzguNmwtNDYuNTMsMjYuNzktMzMuNjksMTkuNFYxMjMuNWw0Ni41My0yNi43OVptMCw0MTIuNzhMMjMuMzcsMzg4LjVWNzcuMzJMNTcuMDYsOTYuN2w0Ni41MiwyNi44VjMzOC42OGE2Ljk0LDYuOTQsMCwwLDAsLjEyLjksOCw4LDAsMCwwLC4xNiwxLjE4aDBhNS45Miw1LjkyLDAsMCwwLC4zOC45LDYuMzgsNi4zOCwwLDAsMCwuNDIsMXYwYTguNTQsOC41NCwwLDAsMCwuNi43OCw3LjYyLDcuNjIsMCwwLDAsLjY2Ljg0bDAsMGMuMjMuMjIuNTIuMzguNzcuNThhOC45Myw4LjkzLDAsMCwwLC44Ni42NmwwLDAsMCwwLDkyLjE5LDUyLjE4Wm04LTEwNi4xNy04MC4wNi00NS4zMiw4NC4wOS00OC40MSw5Mi4yNi01My4xMSw4MC4xMyw0Ni4xMy01OC44LDMzLjU2Wm0xODQuNTIsNC41N0wyMTUuODgsNDkwLjExVjM5Ny44TDM0Ni42LDMyMy4ybDQ1Ljc3LTI2LjE1Wm0wLTExOS4xM0wzNTguNjgsMjUwbC00Ni41My0yNi43OVYxMzEuNzlsMzMuNjksMTkuNEwzOTIuMzcsMTc4Wm04LTEwNS4yOC04MC4yLTQ2LjE3LDgwLjItNDYuMTYsODAuMTgsNDYuMTVabTgsMTA1LjI4VjE3OEw0NTUsMTUxLjE5bDMzLjY4LTE5LjR2OTEuMzloMFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGFzdGZtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNS44IDM2Ny4xbC0xOC44LTUxcy0zMC41IDM0LTc2LjIgMzRjLTQwLjUgMC02OS4yLTM1LjItNjkuMi05MS41IDAtNzIuMSAzNi40LTk3LjkgNzIuMS05Ny45IDY2LjUgMCA3NC44IDUzLjMgMTAwLjkgMTM0LjkgMTguOCA1Ni45IDU0IDEwMi42IDE1NS40IDEwMi42IDcyLjcgMCAxMjItMjIuMyAxMjItODAuOSAwLTcyLjktNjIuNy04MC42LTExNS05Mi4xLTI1LjgtNS45LTMzLjQtMTYuNC0zMy40LTM0IDAtMTkuOSAxNS44LTMxLjcgNDEuNi0zMS43IDI4LjIgMCA0My40IDEwLjYgNDUuNyAzNS44bDU4LjYtN2MtNC43LTUyLjgtNDEuMS03NC41LTEwMC45LTc0LjUtNTIuOCAwLTEwNC40IDE5LjktMTA0LjQgODMuOSAwIDM5LjkgMTkuNCA2NS4xIDY4IDc2LjggNDQuOSAxMC42IDc5LjggMTMuOCA3OS44IDQ1LjcgMCAyMS43LTIxLjEgMzAuNS02MSAzMC41LTU5LjIgMC04My45LTMxLjEtOTcuOS03My45LTMyLTk2LjgtNDMuNi0xNjMtMTYxLjMtMTYzQzQ1LjcgMTEzLjggMCAxNjguMyAwIDI2MWMwIDg5LjEgNDUuNyAxMzcuMiAxMjcuOSAxMzcuMiA2Ni4yIDAgOTcuOS0zMS4xIDk3LjktMzEuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGVhbnB1YiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODYuNTM5IDExMS40ODVsMTUuMDk2IDI0OC45NTUtMTAuOTc5LS4yNzVjLTM2LjIzMi0uODI0LTcxLjY0IDguNzgzLTEwMi42NTcgMjcuOTk3LTMxLjAxNi0xOS4yMTQtNjYuNDI0LTI3Ljk5Ny0xMDIuNjU3LTI3Ljk5Ny00NS41NjQgMC04Mi4wNyAxMC43MDUtMTIzLjUxNiAyNy43MjNMOTMuMTE3IDEyOS42YzI4LjU0Ni0xMS44MDMgNjEuNDg0LTE4LjExNSA5Mi4yMjYtMTguMTE1IDQxLjE3MyAwIDczLjgzNiAxMy4xNzUgMTAyLjY1NyA0Mi41NDQgMjcuNzIzLTI4LjI3MSA1OS4wMTMtNDEuNzIxIDk4LjUzOS00Mi41NDR6TTU2OS4wNyA0NDhjLTI1LjUyNiAwLTQ3LjQ4NS01LjIxNS03MC41NDItMTUuNjQ1LTM0LjMxLTE1LjY0NS02OS45OTMtMjQuOTc4LTEwNy44NzEtMjQuOTc4LTM4Ljk3NyAwLTc0LjkzNCAxMi45MDEtMTAyLjY1NyA0MC42MjMtMjcuNzIzLTI3LjcyMy02My42OC00MC42MjMtMTAyLjY1Ny00MC42MjMtMzcuODc4IDAtNzMuNTYxIDkuMzMzLTEwNy44NzEgMjQuOTc4QzU1LjIzOSA0NDIuMjM2IDMyLjczMSA0NDggOC4zMDMgNDQ4SDYuOTNMNDkuNDc1IDk4Ljg1OUM4OC43MjYgNzYuNjI2IDEzNi40ODYgNjQgMTgxLjc3NSA2NCAyMTguODMgNjQgMjU2Ljk4NCA3MS42ODUgMjg4IDkzLjA5NSAzMTkuMDE2IDcxLjY4NSAzNTcuMTcgNjQgMzk0LjIyNSA2NGM0NS4yODkgMCA5My4wNDkgMTIuNjI2IDEzMi4zIDM0Ljg1OUw1NjkuMDcgNDQ4em0tNDMuMzY4LTQ0Ljc0MWwtMzQuMDM2LTI4MC4yNDZjLTMwLjc0Mi0xMy45OTktNjcuMjQ4LTIxLjQxLTEwMS4wMDktMjEuNDEtMzguNDI4IDAtNzQuMzg1IDEyLjA3Ny0xMDIuNjU3IDM4LjcwMi0yOC4yNzItMjYuNjI1LTY0LjIyOC0zOC43MDItMTAyLjY1Ny0zOC43MDItMzMuNzYxIDAtNzAuMjY3IDcuNDExLTEwMS4wMDkgMjEuNDFMNTAuMjk4IDQwMy4yNTljNDcuMjExLTE5LjQ4NyA4Mi44OTQtMzMuNDg2IDEzNS4wNDUtMzMuNDg2IDM3LjYwNCAwIDcwLjgxNyA5LjYwNiAxMDIuNjU3IDI5LjY0NCAzMS44NC0yMC4wMzggNjUuMDUyLTI5LjY0NCAxMDIuNjU3LTI5LjY0NCA1Mi4xNTEgMCA4Ny44MzQgMTMuOTk5IDEzNS4wNDUgMzMuNDg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYxMi43IDIxOWMwLTIwLjUgMy4yLTMyLjYgMy4yLTU0LjYgMC0zNC4yLTEyLjYtNDUuMi00MC41LTQ1LjJoLTIwLjV2MjQuMmg2LjNjMTQuMiAwIDE3LjMgNC43IDE3LjMgMjIuMSAwIDE2LjMtMS42IDMyLjYtMS42IDUxLjUgMCAyNC4yIDcuOSAzMy42IDIzLjYgMzcuM3YxLjZjLTE1LjggMy43LTIzLjYgMTMuMS0yMy42IDM3LjMgMCAxOC45IDEuNiAzNC4yIDEuNiA1MS41IDAgMTcuOS0zLjcgMjIuNi0xNy4zIDIyLjZ2LjVoLTYuM1YzOTNoMjAuNWMyNy44IDAgNDAuNS0xMSA0MC41LTQ1LjIgMC0yMi42LTMuMi0zNC4yLTMuMi01NC42IDAtMTEgNi44LTIyLjYgMjcuMy0yMy42di0yNy4zYy0yMC41LS43LTI3LjMtMTIuMy0yNy4zLTIzLjN6bS0xMDUuNiAzMmMtMTUuOC02LjMtMzAuNS0xMC0zMC41LTIwLjUgMC03LjkgNi4zLTEyLjYgMTcuOS0xMi42czIyLjEgNC43IDMzLjYgMTMuMWwyMS0yNy44Yy0xMy4xLTEwLTMxLTIwLjUtNTUuMi0yMC41LTM1LjcgMC01OS45IDIwLjUtNTkuOSA0OS40IDAgMjUuNyAyMi42IDM4LjkgNDEuNSA0Ni4yIDE2LjMgNi4zIDMyLjEgMTEuNiAzMi4xIDIyLjEgMCA3LjktNi4zIDEzLjEtMjAuNSAxMy4xLTEzLjEgMC0yNi4zLTUuMy00MC41LTE2LjNsLTIxIDMwLjVjMTUuOCAxMy4xIDM5LjkgMjIuMSA1OS45IDIyLjEgNDIgMCA2NC42LTIyLjEgNjQuNi01MXMtMjIuNS00MS00My00Ny44em0tMzU4LjkgNTkuNGMtMy43IDAtOC40LTMuMi04LjQtMTMuMVYxMTkuMUg2NS4yYy0yOC40IDAtNDEgMTEtNDEgNDUuMiAwIDIyLjYgMy4yIDM1LjIgMy4yIDU0LjYgMCAxMS02LjggMjIuNi0yNy4zIDIzLjZ2MjcuM2MyMC41LjUgMjcuMyAxMi4xIDI3LjMgMjMuMSAwIDE5LjQtMy4yIDMxLTMuMiA1My42IDAgMzQuMiAxMi42IDQ1LjIgNDAuNSA0NS4yaDIwLjV2LTI0LjJoLTYuM2MtMTMuMSAwLTE3LjMtNS4zLTE3LjMtMjIuNnMxLjYtMzIuMSAxLjYtNTEuNWMwLTI0LjItNy45LTMzLjYtMjMuNi0zNy4zdi0xLjZjMTUuOC0zLjcgMjMuNi0xMy4xIDIzLjYtMzcuMyAwLTE4LjktMS42LTM0LjItMS42LTUxLjVzMy43LTIyLjEgMTcuMy0yMi4xSDkzdjE1MC44YzAgMzIuMSAxMSA1My4xIDQzLjEgNTMuMSAxMCAwIDE3LjktMS42IDIzLjYtMy43bC01LjMtMzQuMmMtMy4xLjgtNC42LjgtNi4yLjh6TTM3OS45IDI1MWMtMTYuMy02LjMtMzEtMTAtMzEtMjAuNSAwLTcuOSA2LjMtMTIuNiAxNy45LTEyLjYgMTEuNiAwIDIyLjEgNC43IDMzLjYgMTMuMWwyMS0yNy44Yy0xMy4xLTEwLTMxLTIwLjUtNTUuMi0yMC41LTM1LjcgMC01OS45IDIwLjUtNTkuOSA0OS40IDAgMjUuNyAyMi42IDM4LjkgNDEuNSA0Ni4yIDE2LjMgNi4zIDMyLjEgMTEuNiAzMi4xIDIyLjEgMCA3LjktNi4zIDEzLjEtMjAuNSAxMy4xLTEzLjEgMC0yNi4zLTUuMy00MC41LTE2LjNsLTIwLjUgMzAuNWMxNS44IDEzLjEgMzkuOSAyMi4xIDU5LjkgMjIuMSA0MiAwIDY0LjYtMjIuMSA2NC42LTUxIC4xLTI4LjktMjIuNS00MS00My00Ny44em0tMTU1LTY4LjhjLTM4LjQgMC03NS4xIDMyLjEtNzQuMSA4Mi41IDAgNTIgMzQuMiA4Mi41IDc5LjMgODIuNSAxOC45IDAgMzkuOS02LjggNTYuMi0xNy45bC0xNS44LTI3LjhjLTExLjYgNi44LTIyLjYgMTAtMzQuMiAxMC0yMSAwLTM3LjMtMTAtNDEuNS0zNC4ySDI5MGMuNS0zLjcgMS42LTExIDEuNi0xOS40LjYtNDIuNi0yMi42LTc1LjctNjYuNy03NS43em0tMzAgNjYuMmMzLjItMjEgMTUuOC0zMSAzMC41LTMxIDE4LjkgMCAyNi4zIDEzLjEgMjYuMyAzMWgtNTYuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGV0dGVyYm94ZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjEuMyAxMjhDNTg2LjkgMTI4IDY0MCAxODEuMSA2NDAgMjQ2LjZzLTUzLjEgMTE4LjYtMTE4LjcgMTE4LjZjLTQyLjUgMC03OS43LTIyLjMtMTAwLjctNTUuOGMxMS40LTE4LjIgMTgtMzkuNyAxOC02Mi44cy02LjYtNDQuNi0xOC02Mi44bDAgMCAuOC0xLjJjMjAuOC0zMi4zIDU2LjgtNTMuOSA5Ny45LTU0LjZsMiAwek0zMjAgMTI4YzQyLjUgMCA3OS43IDIyLjMgMTAwLjcgNTUuOGMtMTEuNCAxOC4yLTE4IDM5LjctMTggNjIuOHM2LjYgNDQuNiAxOCA2Mi44bDAgMC0uOCAxLjJjLTIwLjggMzIuMy01Ni44IDUzLjktOTcuOSA1NC42bC0yIDBjLTQyLjUgMC03OS43LTIyLjMtMTAwLjctNTUuOGMxMS40LTE4LjIgMTgtMzkuNyAxOC02Mi44cy02LjYtNDQuNi0xOC02Mi44bDAgMCAuOC0xLjJjMjAuOC0zMi4zIDU2LjgtNTMuOSA5Ny45LTU0LjZsMiAwem0tMjAxLjMgMGM0Mi41IDAgNzkuNyAyMi4zIDEwMC43IDU1LjhjLTExLjQgMTguMi0xOCAzOS43LTE4IDYyLjhzNi42IDQ0LjYgMTggNjIuOGwwIDAtLjggMS4yYy0yMC44IDMyLjMtNTYuOCA1My45LTk3LjkgNTQuNmwtMiAwQzUzLjEgMzY1LjEgMCAzMTIuMSAwIDI0Ni42UzUzLjEgMTI4IDExOC43IDEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTEgMTk2Ljh2ODEuM2MwIDIuMS0xLjYgMy43LTMuNyAzLjdoLTEzYy0xLjMgMC0yLjQtLjctMy0xLjVsLTM3LjMtNTAuM3Y0OC4yYzAgMi4xLTEuNiAzLjctMy43IDMuN2gtMTNjLTIuMSAwLTMuNy0xLjYtMy43LTMuN1YxOTYuOWMwLTIuMSAxLjYtMy43IDMuNy0zLjdoMTIuOWMxLjEgMCAyLjQgLjYgMyAxLjZsMzcuMyA1MC4zVjE5Ni45YzAtMi4xIDEuNi0zLjcgMy43LTMuN2gxM2MyLjEtLjEgMy44IDEuNiAzLjggMy41em0tOTMuNy0zLjdoLTEzYy0yLjEgMC0zLjcgMS42LTMuNyAzLjd2ODEuM2MwIDIuMSAxLjYgMy43IDMuNyAzLjdoMTNjMi4xIDAgMy43LTEuNiAzLjctMy43VjE5Ni44YzAtMS45LTEuNi0zLjctMy43LTMuN3ptLTMxLjQgNjguMUgxNTAuM1YxOTYuOGMwLTIuMS0xLjYtMy43LTMuNy0zLjdoLTEzYy0yLjEgMC0zLjcgMS42LTMuNyAzLjd2ODEuM2MwIDEgLjMgMS44IDEgMi41Yy43IC42IDEuNSAxIDIuNSAxaDUyLjJjMi4xIDAgMy43LTEuNiAzLjctMy43di0xM2MwLTEuOS0xLjYtMy43LTMuNS0zLjd6bTE5My43LTY4LjFIMzI3LjNjLTEuOSAwLTMuNyAxLjYtMy43IDMuN3Y4MS4zYzAgMS45IDEuNiAzLjcgMy43IDMuN2g1Mi4yYzIuMSAwIDMuNy0xLjYgMy43LTMuN1YyNjVjMC0yLjEtMS42LTMuNy0zLjctMy43SDM0NFYyNDcuN2gzNS41YzIuMSAwIDMuNy0xLjYgMy43LTMuN1YyMzAuOWMwLTIuMS0xLjYtMy43LTMuNy0zLjdIMzQ0VjIxMy41aDM1LjVjMi4xIDAgMy43LTEuNiAzLjctMy43di0xM2MtLjEtMS45LTEuNy0zLjctMy43LTMuN3pNNTEyIDkzLjRWNDE5LjRjLS4xIDUxLjItNDIuMSA5Mi43LTkzLjQgOTIuNkg5Mi42QzQxLjQgNTExLjktLjEgNDY5LjggMCA0MTguNlY5Mi42Qy4xIDQxLjQgNDIuMi0uMSA5My40IDBINDE5LjRjNTEuMiAuMSA5Mi43IDQyLjEgOTIuNiA5My40ek00NDEuNiAyMzMuNWMwLTgzLjQtODMuNy0xNTEuMy0xODYuNC0xNTEuM3MtMTg2LjQgNjcuOS0xODYuNCAxNTEuM2MwIDc0LjcgNjYuMyAxMzcuNCAxNTUuOSAxNDkuM2MyMS44IDQuNyAxOS4zIDEyLjcgMTQuNCA0Mi4xYy0uOCA0LjctMy44IDE4LjQgMTYuMSAxMC4xczEwNy4zLTYzLjIgMTQ2LjUtMTA4LjJjMjctMjkuNyAzOS45LTU5LjggMzkuOS05My4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaW5rZWRpbkluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwMC4yOCA0NDhINy40VjE0OC45aDkyLjg4ek01My43OSAxMDguMUMyNC4wOSAxMDguMSAwIDgzLjUgMCA1My44YTUzLjc5IDUzLjc5IDAgMCAxIDEwNy41OCAwYzAgMjkuNy0yNC4xIDU0LjMtNTMuNzkgNTQuM3pNNDQ3LjkgNDQ4aC05Mi42OFYzMDIuNGMwLTM0LjctLjctNzkuMi00OC4yOS03OS4yLTQ4LjI5IDAtNTUuNjkgMzcuNy01NS42OSA3Ni43VjQ0OGgtOTIuNzhWMTQ4LjloODkuMDh2NDAuOGgxLjNjMTIuNC0yMy41IDQyLjY5LTQ4LjMgODcuODgtNDguMyA5NCAwIDExMS4yOCA2MS45IDExMS4yOCAxNDIuM1Y0NDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpbmtlZGluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAzMkgzMS45QzE0LjMgMzIgMCA0Ni41IDAgNjQuM3YzODMuNEMwIDQ2NS41IDE0LjMgNDgwIDMxLjkgNDgwSDQxNmMxNy42IDAgMzItMTQuNSAzMi0zMi4zVjY0LjNjMC0xNy44LTE0LjQtMzIuMy0zMi0zMi4zek0xMzUuNCA0MTZINjlWMjAyLjJoNjYuNVY0MTZ6bS0zMy4yLTI0M2MtMjEuMyAwLTM4LjUtMTcuMy0zOC41LTM4LjVTODAuOSA5NiAxMDIuMiA5NmMyMS4yIDAgMzguNSAxNy4zIDM4LjUgMzguNSAwIDIxLjMtMTcuMiAzOC41LTM4LjUgMzguNXptMjgyLjEgMjQzaC02Ni40VjMxMmMwLTI0LjgtLjUtNTYuNy0zNC41LTU2LjctMzQuNiAwLTM5LjkgMjctMzkuOSA1NC45VjQxNmgtNjYuNFYyMDIuMmg2My43djI5LjJoLjljOC45LTE2LjggMzAuNi0zNC41IDYyLjktMzQuNSA2Ny4yIDAgNzkuNyA0NC4zIDc5LjcgMTAxLjlWNDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaW5vZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY2LjAzNiwxODYuODY3bC01OS41LDM2Ljg3MS0uODM4LDM2Ljg3MS0yOS4zMjktMTkuMjczLTM5LjM4NCwyNC4zYzIuMjM4LDU1LjIxMSwyLjQ4Myw1OS4yNzEsMi41MSw1OS41bC05Ny4yLDY1LjM1OUwxMjcuMjE0LDI4NS43NDhsMTA4LjEtNjIuMDFMMTk1LjA5LDE5Ny43NjFsLTc1LjQxNywzOC41NDdMOTguNzIzLDkzLjAxNSwyMjcuNzcxLDQzLjU3NCwxMzYuNDMyLDAsMTAuNzM3LDM5LjM4NSwzOC4zOSwxNzQuM2w0MS45LDMyLjY4MUw0OC40NDUsMjIyLjA2Miw2OS4zOTQsMzIzLjQ1Nyw5OC43MjMsMzUxLjExLDc3Ljc3NCwzNjMuNjc5bDE2Ljc2LDc4Ljc2OUwxNjAuNzMzLDUxMmMtMTAuOC03NC44NDItMTEuNjU4LTc4LjY0MS0xMS43MjUtNzguNzczbDc3LjkyNS01NS4zYzE2Ljc1OS0xMi41NywxNS4wODMtMTAuODk0LDE1LjA4My0xMC44OTRsLjgzOCwyNC4zLDMzLjUxOSwyOC40OTEtLjgzOC03Ny4wOTMsNDYuOTI3LTMzLjUxOSwyNi44MTUtMTguNDM1LTIuNTE0LDM2LjAzMywyNS4xMzksMTcuNiw2LjctNzQuNTc5LDU4LjY1Ny00My41NzVaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpbnV4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyMC44IDEyMy4zYzEgLjUgMS44IDEuNyAzIDEuNyAxLjEgMCAyLjgtLjQgMi45LTEuNS4yLTEuNC0xLjktMi4zLTMuMi0yLjktMS43LS43LTMuOS0xLTUuNS0uMS0uNC4yLS44LjctLjYgMS4xLjMgMS4zIDIuMyAxLjEgMy40IDEuN3ptLTIxLjkgMS43YzEuMiAwIDItMS4yIDMtMS43IDEuMS0uNiAzLjEtLjQgMy41LTEuNi4yLS40LS4yLS45LS42LTEuMS0xLjYtLjktMy44LS42LTUuNS4xLTEuMy42LTMuNCAxLjUtMy4yIDIuOS4xIDEgMS44IDEuNSAyLjggMS40ek00MjAgNDAzLjhjLTMuNi00LTUuMy0xMS42LTcuMi0xOS43LTEuOC04LjEtMy45LTE2LjgtMTAuNS0yMi40LTEuMy0xLjEtMi42LTIuMS00LTIuOS0xLjMtLjgtMi43LTEuNS00LjEtMiA5LjItMjcuMyA1LjYtNTQuNS0zLjctNzkuMS0xMS40LTMwLjEtMzEuMy01Ni40LTQ2LjUtNzQuNC0xNy4xLTIxLjUtMzMuNy00MS45LTMzLjQtNzJDMzExLjEgODUuNCAzMTUuNy4xIDIzNC44IDAgMTMyLjQtLjIgMTU4IDEwMy40IDE1Ni45IDEzNS4yYy0xLjcgMjMuNC02LjQgNDEuOC0yMi41IDY0LjctMTguOSAyMi41LTQ1LjUgNTguOC01OC4xIDk2LjctNiAxNy45LTguOCAzNi4xLTYuMiA1My4zLTYuNSA1LjgtMTEuNCAxNC43LTE2LjYgMjAuMi00LjIgNC4zLTEwLjMgNS45LTE3IDguM3MtMTQgNi0xOC41IDE0LjVjLTIuMSAzLjktMi44IDguMS0yLjggMTIuNCAwIDMuOS42IDcuOSAxLjIgMTEuOCAxLjIgOC4xIDIuNSAxNS43LjggMjAuOC01LjIgMTQuNC01LjkgMjQuNC0yLjIgMzEuNyAzLjggNy4zIDExLjQgMTAuNSAyMC4xIDEyLjMgMTcuMyAzLjYgNDAuOCAyLjcgNTkuMyAxMi41IDE5LjggMTAuNCAzOS45IDE0LjEgNTUuOSAxMC40IDExLjYtMi42IDIxLjEtOS42IDI1LjktMjAuMiAxMi41LS4xIDI2LjMtNS40IDQ4LjMtNi42IDE0LjktMS4yIDMzLjYgNS4zIDU1LjEgNC4xLjYgMi4zIDEuNCA0LjYgMi41IDYuN3YuMWM4LjMgMTYuNyAyMy44IDI0LjMgNDAuMyAyMyAxNi42LTEuMyAzNC4xLTExIDQ4LjMtMjcuOSAxMy42LTE2LjQgMzYtMjMuMiA1MC45LTMyLjIgNy40LTQuNSAxMy40LTEwLjEgMTMuOS0xOC4zLjQtOC4yLTQuNC0xNy4zLTE1LjUtMjkuN3pNMjIzLjcgODcuM2M5LjgtMjIuMiAzNC4yLTIxLjggNDQtLjQgNi41IDE0LjIgMy42IDMwLjktNC4zIDQwLjQtMS42LS44LTUuOS0yLjYtMTIuNi00LjkgMS4xLTEuMiAzLjEtMi43IDMuOS00LjYgNC44LTExLjgtLjItMjctOS4xLTI3LjMtNy4zLS41LTEzLjkgMTAuOC0xMS44IDIzLTQuMS0yLTkuNC0zLjUtMTMtNC40LTEtNi45LS4zLTE0LjYgMi45LTIxLjh6TTE4MyA3NS44YzEwLjEgMCAyMC44IDE0LjIgMTkuMSAzMy41LTMuNSAxLTcuMSAyLjUtMTAuMiA0LjYgMS4yLTguOS0zLjMtMjAuMS05LjYtMTkuNi04LjQuNy05LjggMjEuMi0xLjggMjguMSAxIC44IDEuOS0uMi01LjkgNS41LTE1LjYtMTQuNi0xMC41LTUyLjEgOC40LTUyLjF6bS0xMy42IDYwLjdjNi4yLTQuNiAxMy42LTEwIDE0LjEtMTAuNSA0LjctNC40IDEzLjUtMTQuMiAyNy45LTE0LjIgNy4xIDAgMTUuNiAyLjMgMjUuOSA4LjkgNi4zIDQuMSAxMS4zIDQuNCAyMi42IDkuMyA4LjQgMy41IDEzLjcgOS43IDEwLjUgMTguMi0yLjYgNy4xLTExIDE0LjQtMjIuNyAxOC4xLTExLjEgMy42LTE5LjggMTYtMzguMiAxNC45LTMuOS0uMi03LTEtOS42LTIuMS04LTMuNS0xMi4yLTEwLjQtMjAtMTUtOC42LTQuOC0xMy4yLTEwLjQtMTQuNy0xNS4zLTEuNC00LjkgMC05IDQuMi0xMi4zem0zLjMgMzM0Yy0yLjcgMzUuMS00My45IDM0LjQtNzUuMyAxOC0yOS45LTE1LjgtNjguNi02LjUtNzYuNS0yMS45LTIuNC00LjctMi40LTEyLjcgMi42LTI2LjR2LS4yYzIuNC03LjYuNi0xNi0uNi0yMy45LTEuMi03LjgtMS44LTE1IC45LTIwIDMuNS02LjcgOC41LTkuMSAxNC44LTExLjMgMTAuMy0zLjcgMTEuOC0zLjQgMTkuNi05LjkgNS41LTUuNyA5LjUtMTIuOSAxNC4zLTE4IDUuMS01LjUgMTAtOC4xIDE3LjctNi45IDguMSAxLjIgMTUuMSA2LjggMjEuOSAxNmwxOS42IDM1LjZjOS41IDE5LjkgNDMuMSA0OC40IDQxIDY4Ljl6bS0xLjQtMjUuOWMtNC4xLTYuNi05LjYtMTMuNi0xNC40LTE5LjYgNy4xIDAgMTQuMi0yLjIgMTYuNy04LjkgMi4zLTYuMiAwLTE0LjktNy40LTI0LjktMTMuNS0xOC4yLTM4LjMtMzIuNS0zOC4zLTMyLjUtMTMuNS04LjQtMjEuMS0xOC43LTI0LjYtMjkuOXMtMy0yMy4zLS4zLTM1LjJjNS4yLTIyLjkgMTguNi00NS4yIDI3LjItNTkuMiAyLjMtMS43LjggMy4yLTguNyAyMC44LTguNSAxNi4xLTI0LjQgNTMuMy0yLjYgODIuNC42LTIwLjcgNS41LTQxLjggMTMuOC02MS41IDEyLTI3LjQgMzcuMy03NC45IDM5LjMtMTEyLjcgMS4xLjggNC42IDMuMiA2LjIgNC4xIDQuNiAyLjcgOC4xIDYuNyAxMi42IDEwLjMgMTIuNCAxMCAyOC41IDkuMiA0Mi40IDEuMiA2LjItMy41IDExLjItNy41IDE1LjktOSA5LjktMy4xIDE3LjgtOC42IDIyLjMtMTUgNy43IDMwLjQgMjUuNyA3NC4zIDM3LjIgOTUuNyA2LjEgMTEuNCAxOC4zIDM1LjUgMjMuNiA2NC42IDMuMy0uMSA3IC40IDEwLjkgMS40IDEzLjgtMzUuNy0xMS43LTc0LjItMjMuMy04NC45LTQuNy00LjYtNC45LTYuNi0yLjYtNi41IDEyLjYgMTEuMiAyOS4yIDMzLjcgMzUuMiA1OSAyLjggMTEuNiAzLjMgMjMuNy40IDM1LjcgMTYuNCA2LjggMzUuOSAxNy45IDMwLjcgMzQuOC0yLjItLjEtMy4yIDAtNC4yIDAgMy4yLTEwLjEtMy45LTE3LjYtMjIuOC0yNi4xLTE5LjYtOC42LTM2LTguNi0zOC4zIDEyLjUtMTIuMSA0LjItMTguMyAxNC43LTIxLjQgMjcuMy0yLjggMTEuMi0zLjYgMjQuNy00LjQgMzkuOS0uNSA3LjctMy42IDE4LTYuOCAyOS0zMi4xIDIyLjktNzYuNyAzMi45LTExNC4zIDcuMnptMjU3LjQtMTEuNWMtLjkgMTYuOC00MS4yIDE5LjktNjMuMiA0Ni41LTEzLjIgMTUuNy0yOS40IDI0LjQtNDMuNiAyNS41cy0yNi41LTQuOC0zMy43LTE5LjNjLTQuNy0xMS4xLTIuNC0yMy4xIDEuMS0zNi4zIDMuNy0xNC4yIDkuMi0yOC44IDkuOS00MC42LjgtMTUuMiAxLjctMjguNSA0LjItMzguNyAyLjYtMTAuMyA2LjYtMTcuMiAxMy43LTIxLjEuMy0uMi43LS4zIDEtLjUuOCAxMy4yIDcuMyAyNi42IDE4LjggMjkuNSAxMi42IDMuMyAzMC43LTcuNSAzOC40LTE2LjMgOS0uMyAxNS43LS45IDIyLjYgNS4xIDkuOSA4LjUgNy4xIDMwLjMgMTcuMSA0MS42IDEwLjYgMTEuNiAxNCAxOS41IDEzLjcgMjQuNnpNMTczLjMgMTQ4LjdjMiAxLjkgNC43IDQuNSA4IDcuMSA2LjYgNS4yIDE1LjggMTAuNiAyNy4zIDEwLjYgMTEuNiAwIDIyLjUtNS45IDMxLjgtMTAuOCA0LjktMi42IDEwLjktNyAxNC44LTEwLjRzNS45LTYuMyAzLjEtNi42LTIuNiAyLjYtNiA1LjFjLTQuNCAzLjItOS43IDcuNC0xMy45IDkuOC03LjQgNC4yLTE5LjUgMTAuMi0yOS45IDEwLjJzLTE4LjctNC44LTI0LjktOS43Yy0zLjEtMi41LTUuNy01LTcuNy02LjktMS41LTEuNC0xLjktNC42LTQuMy00LjktMS40LS4xLTEuOCAzLjcgMS43IDYuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTHlmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDgxLjFoNzcuOHYyMDguN2MwIDMzLjEgMTUgNTIuOCAyNy4yIDYxLTEyLjcgMTEuMS01MS4yIDIwLjktODAuMi0yLjhDNy44IDMzNCAwIDMxMC43IDAgMjg5VjgxLjF6bTQ4NS45IDE3My41di0yMmgyMy44di03Ni44aC0yNi4xYy0xMC4xLTQ2LjMtNTEuMi04MC43LTEwMC4zLTgwLjctNTYuNiAwLTEwMi43IDQ2LTEwMi43IDEwMi43VjM1N2MxNiAyLjMgMzUuNC0uMyA1MS43LTE0IDE3LjEtMTQgMjQuOC0zNy4yIDI0LjgtNTl2LTYuN2gzOC44di03Ni44aC0zOC44di0yMy4zYzAtMzQuNiA1Mi4yLTM0LjYgNTIuMiAwdjc3LjFjMCA1Ni42IDQ2IDEwMi43IDEwMi43IDEwMi43di03Ni41Yy0xNC41IDAtMjYuMS0xMS43LTI2LjEtMjUuOXptLTI5NC4zLTk5djExM2MwIDE1LjQtMjMuOCAxNS40LTIzLjggMHYtMTEzSDkxdjEzMi43YzAgMjMuOCA4IDU0IDQ1IDYzLjkgMzcgOS44IDU4LjItMTAuNiA1OC4yLTEwLjYtMi4xIDEzLjQtMTQuNSAyMy4zLTM0LjkgMjUuMy0xNS41IDEuNi0zNS4yLTMuNi00NS03Ljh2NzAuM2MyNS4xIDcuNSA1MS41IDkuOCA3Ny42IDQuNyA0Ny4xLTkuMSA3Ni44LTQ4LjQgNzYuOC0xMDAuOFYxNTUuMWgtNzcuMXYuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFnZW50byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDUuNyAxMjcuOVYzODRsLTYzLjQgMzYuNVYxNjQuN0wyMjMuOCA3My4xIDY1LjIgMTY0LjdsLjQgMjU1LjlMMi4zIDM4NFYxMjguMUwyMjQuMiAwbDIyMS41IDEyNy45ek0yNTUuNiA0MjAuNUwyMjQgNDM4LjlsLTMxLjgtMTguMnYtMjU2bC02My4zIDM2LjYuMSAyNTUuOSA5NC45IDU0LjkgOTUuMS01NC45di0yNTZsLTYzLjQtMzYuNnYyNTUuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFpbGNoaW1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzMC42MSAyNDMuNTJhMzYuMTUgMzYuMTUgMCAwIDEgOS4zIDBjMS42Ni0zLjgzIDEuOTUtMTAuNDMuNDUtMTcuNjEtMi4yMy0xMC42Ny01LjI1LTE3LjE0LTExLjQ4LTE2LjEzcy02LjQ3IDguNzQtNC4yNCAxOS40MmMxLjI2IDYgMy40OSAxMS4xNCA2IDE0LjMyek0yNzcuMDUgMjUyYzQuNDcgMiA3LjIgMy4yNiA4LjI4IDIuMTMgMS44OS0xLjk0LTMuNDgtOS4zOS0xMi4xMi0xMy4wOWEzMS40NCAzMS40NCAwIDAgMC0zMC42MSAzLjY4Yy0zIDIuMTgtNS44MSA1LjIyLTUuNDEgNy4wNi44NSAzLjc0IDEwLTIuNzEgMjIuNi0zLjQ4IDctLjQ0IDEyLjggMS43NSAxNy4yNiAzLjcxem0tOSA1LjEzYy05LjA3IDEuNDItMTUgNi41My0xMy40NyAxMC4xLjkuMzQgMS4xNy44MSA1LjIxLS44MWEzNyAzNyAwIDAgMSAxOC43Mi0xLjk1YzIuOTIuMzQgNC4zMS41MiA0Ljk0LS40OSAxLjQ2LTIuMjItNS43MS04LTE1LjM5LTYuODV6bTU0LjE3IDE3LjFjMy4zOC02Ljg3LTEwLjktMTMuOTMtMTQuMy03czEwLjkyIDEzLjg4IDE0LjMyIDYuOTd6bTE1LjY2LTIwLjQ3Yy03LjY2LS4xMy03Ljk1IDE1LjgtLjI2IDE1LjkzczcuOTgtMTUuODEuMjgtMTUuOTZ6bS0yMTguNzkgNzguOWMtMS4zMi4zMS02IDEuNDUtOC40Ny0yLjM1LTUuMi04IDExLjExLTIwLjM4IDMtMzUuNzctOS4xLTE3LjQ3LTI3LjgyLTEzLjU0LTM1LjA1LTUuNTQtOC43MSA5LjYtOC43MiAyMy41NC01IDI0LjA4IDQuMjcuNTcgNC4wOC02LjQ3IDcuMzgtMTEuNjNhMTIuODMgMTIuODMgMCAwIDEgMTcuODUtMy43MmMxMS41OSA3LjU5IDEuMzcgMTcuNzYgMi4yOCAyOC42MiAxLjM5IDE2LjY4IDE4LjQyIDE2LjM3IDIxLjU4IDlhMi4wOCAyLjA4IDAgMCAwLS4yLTIuMzNjLjAzLjg5LjY4LTEuMy0zLjM1LS4zOXptMjk5LjcyLTE3LjA3Yy0zLjM1LTExLjczLTIuNTctOS4yMi02Ljc4LTIwLjUyIDIuNDUtMy42NyAxNS4yOS0yNC0zLjA3LTQzLjI1LTEwLjQtMTAuOTItMzMuOS0xNi41NC00MS4xLTE4LjU0LTEuNS0xMS4zOSA0LjY1LTU4LjctMjEuNTItODMgMjAuNzktMjEuNTUgMzMuNzYtNDUuMjkgMzMuNzMtNjUuNjUtLjA2LTM5LjE2LTQ4LjE1LTUxLTEwNy40Mi0yNi40N2wtMTIuNTUgNS4zM2MtLjA2LS4wNS0yMi43MS0yMi4yNy0yMy4wNS0yMi41N0MxNjkuNS0xOC00MS43NyAyMTYuODEgMjUuNzggMjczLjg1bDE0Ljc2IDEyLjUxYTcyLjQ5IDcyLjQ5IDAgMCAwLTQuMSAzMy41YzMuMzYgMzMuNCAzNiA2MC40MiA2Ny41MyA2MC4zOCA1Ny43MyAxMzMuMDYgMjY3LjkgMTMzLjI4IDMyMi4yOSAzIDEuNzQtNC40NyA5LjExLTI0LjYxIDkuMTEtNDIuMzhzLTEwLjA5LTI1LjI3LTE2LjUzLTI1LjI3em0tMzE2IDQ4LjE2Yy0yMi44Mi0uNjEtNDcuNDYtMjEuMTUtNDkuOTEtNDUuNTEtNi4xNy02MS4zMSA3NC4yNi03NS4yNyA4NC0xMi4zMyA0LjU0IDI5LjY0LTQuNjcgNTguNDktMzQuMTIgNTcuODF6TTg0LjMgMjQ5LjU1QzY5LjE0IDI1Mi41IDU1Ljc4IDI2MS4wOSA0Ny42IDI3M2MtNC44OC00LjA3LTE0LTEyLTE1LjU5LTE1LTEzLjAxLTI0Ljg1IDE0LjI0LTczIDMzLjMtMTAwLjIxQzExMi40MiA5MC41NiAxODYuMTkgMzkuNjggMjIwLjM2IDQ4LjkxYzUuNTUgMS41NyAyMy45NCAyMi44OSAyMy45NCAyMi44OXMtMzQuMTUgMTguOTQtNjUuOCA0NS4zNWMtNDIuNjYgMzIuODUtNzQuODkgODAuNTktOTQuMiAxMzIuNHpNMzIzLjE4IDM1MC43cy0zNS43NCA1LjMtNjkuNTEtNy4wN2M2LjIxLTIwLjE2IDI3IDYuMSA5Ni40LTEzLjgxIDE1LjI5LTQuMzggMzUuMzctMTMgNTEtMjUuMzVhMTAyLjg1IDEwMi44NSAwIDAgMSA3LjEyIDI0LjI4YzMuNjYtLjY2IDE0LjI1LS41MiAxMS40NCAxOC4xLTMuMjkgMTkuODctMTEuNzMgMzYtMjUuOTMgNTAuODRBMTA2Ljg2IDEwNi44NiAwIDAgMSAzNjIuNTUgNDIxYTEzMi40NSAxMzIuNDUgMCAwIDEtMjAuMzQgOC41OGMtNTMuNTEgMTcuNDgtMTA4LjMtMS43NC0xMjYtNDNhNjYuMzMgNjYuMzMgMCAwIDEtMy41NS05Ljc0Yy03LjUzLTI3LjItMS4xNC01OS44MyAxOC44NC04MC4zNyAxLjIzLTEuMzEgMi40OC0yLjg1IDIuNDgtNC43OWE4LjQ1IDguNDUgMCAwIDAtMS45Mi00LjU0Yy03LTEwLjEzLTMxLjE5LTI3LjQtMjYuMzMtNjAuODMgMy41LTI0IDI0LjQ5LTQwLjkxIDQ0LjA3LTM5LjkxbDUgLjI5YzguNDguNSAxNS44OSAxLjU5IDIyLjg4IDEuODggMTEuNjkuNSAyMi4yLTEuMTkgMzQuNjQtMTEuNTYgNC4yLTMuNSA3LjU3LTYuNTQgMTMuMjYtNy41MWExNy40NSAxNy40NSAwIDAgMSAxMy42IDIuMjRjMTAgNi42NCAxMS40IDIyLjczIDExLjkyIDM0LjQ5LjI5IDYuNzIgMS4xIDIzIDEuMzggMjcuNjMuNjMgMTAuNjcgMy40MyAxMi4xNyA5LjExIDE0IDMuMTkgMS4wNSA2LjE1IDEuODMgMTAuNTEgMy4wNiAxMy4yMSAzLjcxIDIxIDcuNDggMjYgMTIuMzFhMTYuMzggMTYuMzggMCAwIDEgNC43NCA5LjI5YzEuNTYgMTEuMzctOC44MiAyNS40LTM2LjMxIDM4LjE2LTQ2LjcxIDIxLjY4LTkzLjY4IDE0LjQ1LTEwMC40OCAxMy42OC0yMC4xNS0yLjcxLTMxLjYzIDIzLjMyLTE5LjU1IDQxLjE1IDIyLjY0IDMzLjQxIDEyMi40IDIwIDE1MS4zNy0yMS4zNS42OS0xIC4xMi0xLjU5LS43My0xLTQxLjc3IDI4LjU4LTk3LjA2IDM4LjIxLTEyOC40NiAyNi00Ljc3LTEuODUtMTQuNzMtNi40NC0xNS45NC0xNi42NyA0My42IDEzLjQ5IDcxIC43NCA3MSAuNzRzMi4wMy0yLjc5LS41Ni0yLjUzem0tNjguNDctNS43em0tODMuNC0xODcuNWMxNi43NC0xOS4zNSAzNy4zNi0zNi4xOCA1NS44My00NS42M2EuNzMuNzMgMCAwIDEgMSAxYy0xLjQ2IDIuNjYtNC4yOSA4LjM0LTUuMTkgMTIuNjVhLjc1Ljc1IDAgMCAwIDEuMTYuNzljMTEuNDktNy44MyAzMS40OC0xNi4yMiA0OS0xNy4zYS43Ny43NyAwIDAgMSAuNTIgMS4zOCA0MS44NiA0MS44NiAwIDAgMC03LjcxIDcuNzQuNzUuNzUgMCAwIDAgLjU5IDEuMTljMTIuMzEuMDkgMjkuNjYgNC40IDQxIDEwLjc0Ljc2LjQzLjIyIDEuOTEtLjY0IDEuNzItNjkuNTUtMTUuOTQtMTIzLjA4IDE4LjUzLTEzNC41IDI2LjgzYS43Ni43NiAwIDAgMS0xLTEuMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hbmRhbG9yaWFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzMi4yNyA1MTEuODljLTEtMy4yNi0xLjY5LTE1LjgzLTEuMzktMjQuNTguNTUtMTUuODkgMS0yNC43MiAxLjQtMjguNzYuNjQtNi4yIDIuODctMjAuNzIgMy4yOC0yMS4zOC42LTEgLjQtMjcuODctLjI0LTMzLjEzLS4zMS0yLjU4LS42My0xMS45LS42OS0yMC43My0uMTMtMTYuNDctLjUzLTIwLjEyLTIuNzMtMjQuNzYtMS4xLTIuMzItMS4yMy0zLjg0LTEtMTEuNDNhOTIuMzggOTIuMzggMCAwIDAtLjM0LTEyLjcxYy0yLTEzLTMuNDYtMjcuNy0zLjI1LTMzLjlzLjQzLTcuMTUgMi4wNi05LjY3YzMuMDUtNC43MSA2LjUxLTE0IDguNjItMjMuMjcgMi4yNi05Ljg2IDMuODgtMTcuMTggNC41OS0yMC43NGExMDkuNTQgMTA5LjU0IDAgMCAxIDQuNDItMTUuMDVjMi4yNy02LjI1IDIuNDktMTUuMzkuMzctMTUuMzktLjMgMC0xLjM4IDEuMjItMi40MSAyLjcxcy00Ljc2IDQuOC04LjI5IDcuMzZjLTguMzcgNi4wOC0xMS43IDkuMzktMTIuNjYgMTIuNThzLTEgNy4yMy0uMTYgNy43NmMuMzQuMjEgMS4yOSAyLjQgMi4xMSA0Ljg4YTI4LjgzIDI4LjgzIDAgMCAxIC43MiAxNS4zNmMtLjM5IDEuNzctMSA1LjQ3LTEuNDYgOC4yM3MtMSA2LjQ2LTEuMjUgOC4yMmE5Ljg1IDkuODUgMCAwIDEtMS41NSA0LjI2Yy0xIDEtMS4xNC45MS0yLjA1LS41M2ExNC44NyAxNC44NyAwIDAgMS0xLjQ0LTQuNzVjLS4yNS0xLjc0LTEuNjMtNy4xMS0zLjA4LTExLjkzLTMuMjgtMTAuOS0zLjUyLTE2LjE1LTEtMjFhMTQuMjQgMTQuMjQgMCAwIDAgMS42Ny00LjYxYzAtMi4zOS0yLjItNS4zMi03LjQxLTkuODktNy02LjE4LTguNjMtNy45Mi0xMC4yMy0xMS4zLTEuNzEtMy42LTMuMDYtNC4wNi00LjU0LTEuNTQtMS43OCAzLTIuNiA5LjExLTMgMjJsLS4zNCAxMi4xOSAyIDIuMjVjMy4yMSAzLjcgMTIuMDcgMTYuNDUgMTMuNzggMTkuODMgMy40MSA2Ljc0IDQuMzQgMTEuNjkgNC40MSAyMy41NnMuOTUgMjIuNzUgMiAyNC43MWMuMzYuNjYuNTEgMS4zNS4zNCAxLjUycy40MSAyLjA5IDEuMjkgNC4yN2EzOC4xNCAzOC4xNCAwIDAgMSAyLjA2IDkgOTEgOTEgMCAwIDAgMS43MSAxMC4zN2MyLjIzIDkuNTYgMi43NyAxNC4wOCAyLjM5IDIwLjE0LS4yIDMuMjctLjUzIDExLjA3LS43MyAxNy4zMi0xLjMxIDQxLjc2LTEuODUgNTgtMiA2MS4yMS0uMTIgMi0uMzkgMTEuNTEtLjYgMjEuMDctLjM2IDE2LjMtMS4zIDI3LjM3LTIuNDIgMjguNjUtLjY0LjczLTguMDctNC45MS0xMi41Mi05LjQ5LTMuNzUtMy44Ny00LTQuNzktMi44My05Ljk1LjctMyAyLjI2LTE4LjI5IDMuMzMtMzIuNjIuMzYtNC43OC44MS0xMC41IDEtMTIuNzEuODMtOS4zNyAxLjY2LTIwLjM1IDIuNjEtMzQuNzguNTYtOC40NiAxLjMzLTE2LjQ0IDEuNzItMTcuNzNzLjg5LTkuODkgMS4xMy0xOS4xMWwuNDMtMTYuNzctMi4yNi00LjNjLTEuNzItMy4yOC00Ljg3LTYuOTQtMTMuMjItMTUuMzQtNi02LjA3LTExLjg0LTEyLjMtMTIuOTEtMTMuODVsLTEuOTUtMi44MS43NS0xMC45YzEuMDktMTUuNzEgMS4xLTQ4LjU3IDAtNTkuMDZsLS44OS04LjctMy4yOC00LjUyYy01Ljg2LTguMDgtNS44LTcuNzUtNi4yMi0zMy4yNy0uMS02LjA3LS4zOC0xMS41LS42My0xMi4wNi0uODMtMS44Ny0zLjA1LTIuNjYtOC41NC0zLjA1LTguODYtLjYyLTExLTEuOS0yMy44NS0xNC41NS02LjE1LTYtMTIuMzQtMTItMTMuNzUtMTMuMTktMi44MS0yLjQyLTIuNzktMi0uNTYtOS42M2wxLjM1LTQuNjUtMS42OS0zYTMyLjIyIDMyLjIyIDAgMCAwLTIuNTktNC4wN2MtMS4zMy0xLjUxLTUuNS0xMC44OS02LTEzLjQ5YTQuMjQgNC4yNCAwIDAgMSAuODctMy45YzIuMjMtMi44NiAzLjQtNS42OCA0LjQ1LTEwLjczIDIuMzMtMTEuMTkgNy43NC0yNi4wOSAxMC42LTI5LjIyIDMuMTgtMy40NyA3LjctMSA5LjQxIDUgMS4zNCA0Ljc5IDEuMzcgOS43OS4xIDE4LjU1YTEwMS4yIDEwMS4yIDAgMCAwLTEgMTEuMTFjMCA0IC4xOSA0LjY5IDIuMjUgNy4zOSAzLjMzIDQuMzcgNy43MyA3LjQxIDE1LjIgMTAuNTJhMTguNjcgMTguNjcgMCAwIDEgNC43MiAyLjg1YzExLjE3IDEwLjcyIDE4LjYyIDE2LjE4IDIyLjk1IDE2Ljg1IDUuMTguOCA4IDQuNTQgMTAgMTMuMzkgMS4zMSA1LjY1IDQgMTEuMTQgNS40NiAxMS4xNGE5LjM4IDkuMzggMCAwIDAgMy4zMy0xLjM5YzItMS4yMiAyLjI1LTEuNzMgMi4yNS00LjE4YTEzMi44OCAxMzIuODggMCAwIDAtMi0xNy44NGMtLjM3LTEuNjYtLjc4LTQuMDYtLjkzLTUuMzVzLS42MS0zLjg1LTEtNS42OWMtMi41NS0xMS4xNi0zLjY1LTE1LjQ2LTQuMS0xNi0xLjU1LTItNC4wOC0xMC4yLTQuOTMtMTUuOTItMS42NC0xMS4xMS00LTE0LjIzLTEyLjkxLTE3LjM5QTQzLjE1IDQzLjE1IDAgMCAxIDE2NS4yNCA3OGMtMS4xNS0xLTQtMy4yMi02LjM1LTUuMDZzLTQuNDEtMy41My00LjYtMy43NmEyMi43IDIyLjcgMCAwIDAtMi42OS0yYy02LjI0LTQuMjItOC44NC03LTExLjI2LTEybC0yLjQ0LTUtLjIyLTEzLS4yMi0xMyA2LjkxLTYuNTVjMy45NS0zLjc1IDguNDgtNy4zNSAxMC41OS04LjQzIDMuMzEtMS42OSA0LjQ1LTEuODkgMTEuMzctMiA4LjUzLS4xOSAxMC4xMiAwIDExLjY2IDEuNTZzMS4zNiA2LjQtLjI5IDguNWE2LjY2IDYuNjYgMCAwIDAtMS4zNCAyLjMyYzAgLjU4LTIuNjEgNC45MS01LjQyIDlhMzAuMzkgMzAuMzkgMCAwIDAtMi4zNyA2LjgyYzIwLjQ0IDEzLjM5IDIxLjU1IDMuNzcgMTQuMDcgMjlMMTk0IDY2LjkyYzMuMTEtOC42NiA2LjQ3LTE3LjI2IDguNjEtMjYuMjIuMjktNy42My0xMi00LjE5LTE1LjQtOC42OC0yLjMzLTUuOTMgMy4xMy0xNC4xOCA2LjA2LTE5LjIgMS42LTIuMzQgNi42Mi00LjcgOC44Mi00LjE1Ljg4LjIyIDQuMTYtLjM1IDcuMzctMS4yOGE0NS4zIDQ1LjMgMCAwIDEgNy41NS0xLjY4IDI5LjU3IDI5LjU3IDAgMCAwIDYtMS4yOWMzLjY1LTEuMTEgNC41LTEuMTcgNi4zNS0uNGEyOS41NCAyOS41NCAwIDAgMCA1LjgyIDEuMzYgMTguMTggMTguMTggMCAwIDEgNiAxLjkxIDIyLjY3IDIyLjY3IDAgMCAwIDUgMi4xN2MyLjUxLjY4IDMgLjU3IDcuMDUtMS42N2w0LjM1LTIuNEwyNjguMzIgNWMxMC40NC0uNCAxMC44MS0uNDcgMTUuMjYtMi42OEwyODguMTYgMGwyLjQ2IDEuNDNjMS43NiAxIDMuMTQgMi43MyA0Ljg1IDYgMi4zNiA0LjUxIDIuMzggNC41OCAxLjM3IDcuMzctLjg4IDIuNDQtLjg5IDMuMy0uMSA2LjM5YTM1Ljc2IDM1Ljc2IDAgMCAwIDIuMSA1LjkxIDEzLjU1IDEzLjU1IDAgMCAxIDEuMzEgNGMuMzEgNC4zMyAwIDUuMy0yLjQxIDYuOTItMi4xNyAxLjQ3LTcgNy45MS03IDkuMzRhMTQuNzcgMTQuNzcgMCAwIDEtMS4wNyAzYy01IDExLjUxLTYuNzYgMTMuNTYtMTQuMjYgMTctOS4yIDQuMi0xMi4zIDUuMTktMTYuMjEgNS4xOS0zLjEgMC00IC4yNS00LjU0IDEuMjZhMTguMzMgMTguMzMgMCAwIDEtNC4wOSAzLjcxIDEzLjYyIDEzLjYyIDAgMCAwLTQuMzggNC43OCA1Ljg5IDUuODkgMCAwIDEtMi40OSAyLjkxIDYuODggNi44OCAwIDAgMC0yLjQ1IDEuNzEgNjcuNjIgNjcuNjIgMCAwIDEtNyA1LjM4Yy0zLjMzIDIuMzQtNi44NyA1LTcuODcgNkE3LjI3IDcuMjcgMCAwIDEgMjI0IDEwMGE1Ljc2IDUuNzYgMCAwIDAtMi4xMyAxLjY1Yy0xLjMxIDEuMzktMS40OSAyLjExLTEuMTQgNC42YTM2LjQ1IDM2LjQ1IDAgMCAwIDEuNDIgNS44OGMxLjMyIDMuOCAxLjMxIDcuODYgMCAxMC41N3MtLjg5IDYuNjUgMS4zNSA5LjU5YzIgMi42MyAyLjE2IDQuNTYuNzEgOC44NGEzMy40NSAzMy40NSAwIDAgMC0xLjA2IDguOTFjMCA0Ljg4LjIyIDYuMjggMS40NiA4LjM4czEuODIgMi40OCAzLjI0IDIuMzJjMi0uMjMgMi4zLTEuMDUgNC43MS0xMi4xMiAyLjE4LTEwIDMuNzEtMTEuOTIgMTMuNzYtMTcuMDggMi45NC0xLjUxIDcuNDYtNCAxMC01LjQ0czYuNzktMy42OSA5LjM3LTQuOTFhNDAuMDkgNDAuMDkgMCAwIDAgMTUuMjItMTEuNjdjNy4xMS04Ljc5IDEwLTE2LjIyIDEyLjg1LTMzLjNhMTguMzcgMTguMzcgMCAwIDEgMi44Ni03LjczIDIwLjM5IDIwLjM5IDAgMCAwIDIuODktNy4zMWMxLTUuMyAyLjg1LTkuMDggNS41OC0xMS41MSA0LjctNC4xOCA2LTEuMDkgNC41OSAxMC44Ny0uNDYgMy44Ni0xLjEgMTAuMzMtMS40NCAxNC4zOGwtLjYxIDcuMzYgNC40NSA0LjA5IDQuNDUgNC4wOS4xMSA4LjQyYy4wNiA0LjYzLjQ3IDkuNTMuOTIgMTAuODlsLjgyIDIuNDctNi40MyA2LjI4Yy04LjU0IDguMzMtMTIuODggMTMuOTMtMTYuNzYgMjEuNjEtMS43NyAzLjQ5LTMuNzQgNy4xMS00LjM4IDgtMi4xOCAzLjExLTYuNDYgMTMtOC43NiAyMC4yNmwtMi4yOSA3LjIyLTcgNi40OWMtMy44MyAzLjU3LTggNy4yNS05LjE3IDguMTctMy4wNSAyLjMyLTQuMjYgNS4xNS00LjI2IDEwYTE0LjYyIDE0LjYyIDAgMCAwIDEuNTkgNy4yNiA0MiA0MiAwIDAgMSAyLjA5IDQuODMgOS4yOCA5LjI4IDAgMCAwIDEuNTcgMi44OWMxLjQgMS41OSAxLjkyIDE2LjEyLjgzIDIzLjIyLS42OCA0LjQ4LTMuNjMgMTItNC43IDEyLTEuNzkgMC00LjA2IDkuMjctNS4wNyAyMC43NC0uMTggMi0uNjIgNS45NC0xIDguN3MtMSAxMC0xLjM1IDE2LjA1Yy0uNzcgMTIuMjItLjE5IDE4Ljc3IDIgMjMuMTUgMy40MSA2LjY5LjUyIDEyLjY5LTExIDIyLjg0bC00IDMuNDkuMDcgNS4xOWE0MC44MSA0MC44MSAwIDAgMCAxLjE0IDguODdjNC42MSAxNiA0LjczIDE2LjkyIDQuMzggMzcuMTMtLjQ2IDI2LjQtLjI2IDQwLjI3LjYzIDQ0LjE1YTYxLjMxIDYxLjMxIDAgMCAxIDEuMDggN2MuMTcgMiAuNjYgNS4zMyAxLjA4IDcuMzYuNDcgMi4yNi43OCAxMSAuNzkgMjIuNzR2MTkuMDZsLTEuODEgMi42M2MtMi43MSAzLjkxLTE1LjExIDEzLjU0LTE1LjQ5IDEyLjI5em0yOS41My00NS4xMWMtLjE4LS4zLS4zMy02Ljg3LS4zMy0xNC41OSAwLTE0LjA2LS44OS0yNy41NC0yLjI2LTM0LjQ1LS40LTItLjgxLTkuNy0uOS0xNy4wNi0uMTUtMTEuOTMtMS40LTI0LjM3LTIuNjQtMjYuMzgtLjY2LTEuMDctMy0xNy42Ni0zLTIxLjMgMC00LjIzIDEtNiA1LjI4LTkuMTNzNC44Ni0zLjE0IDUuNDgtLjcyYy4yOCAxLjEgMS40NSA1LjYyIDIuNiAxMCAzLjkzIDE1LjEyIDQuMTQgMTYuMjcgNC4wNSAyMS43NC0uMSA1Ljc4LS4xMyA2LjEzLTEuNzQgMTcuNzMtMSA3LjA3LTEuMTcgMTIuMzktMSAyOC40My4xNyAxOS40LS42NCAzNS43My0yIDQxLjI3LS43MSAyLjc4LTIuOCA1LjQ4LTMuNDMgNC40M3ptLTcxLTM3LjU4YTEwMSAxMDEgMCAwIDEtMS43My0xMC43OSAxMDAuNSAxMDAuNSAwIDAgMC0xLjczLTEwLjc5IDM3LjUzIDM3LjUzIDAgMCAxLTEtNi40OWMtLjMxLTMuMTktLjkxLTcuNDYtMS4zMy05LjQ4LTEtNC43OS0zLjM1LTE5LjM1LTMuNDItMjEuMDcgMC0uNzQtLjM0LTQuMDUtLjctNy4zNi0uNjctNi4yMS0uODQtMjcuNjctLjIyLTI4LjI5IDEtMSA2LjYzIDIuNzYgMTEuMzMgNy40M2w1LjI4IDUuMjUtLjQ1IDYuNDdjLS4yNSAzLjU2LS42IDEwLjIzLS43OCAxNC44M3MtLjQ5IDkuODctLjY3IDExLjcxLS42MSA5LjM2LS45NCAxNi43MmMtLjc5IDE3LjQxLTEuOTQgMzEuMjktMi42NSAzMmEuNjIuNjIgMCAwIDEtMS0uMTR6bS04Ny4xOC0yNjYuNTljMjEuMDcgMTIuNzkgMTcuODQgMTQuMTUgMjguNDkgMTcuNjYgMTMgNC4yOSAxOC44NyA3LjEzIDIzLjE1IDE2Ljg3QzExMS42IDIzMy4yOCA4Ni4yNSAyNTUgNzguNTUgMjY4Yy0zMSA1Mi02IDEwMS41OSA2Mi43NSA4Ny4yMS0xNC4xOCAyOS4yMy03OCAyOC42My05OC42OC00LjktMjQuNjgtMzkuOTUtMjIuMDktMTE4LjMgNjEtMTg3LjY2em0yMTAuNzkgMTc5YzU2LjY2IDYuODggODIuMzItMzcuNzQgNDYuNTQtODkuMjMgMCAwLTI2Ljg3LTI5LjM0LTY0LjI4LTY4IDMtMTUuNDUgOS40OS0zMi4xMiAzMC41Ny01My44MiA4OS4yIDYzLjUxIDkyIDE0MS42MSA5Mi40NiAxNDkuMzYgNC4zIDcwLjY0LTc4LjcgOTEuMTgtMTA1LjI5IDYxLjcxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXJrZG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01OTMuOCA1OS4xSDQ2LjJDMjAuNyA1OS4xIDAgNzkuOCAwIDEwNS4ydjMwMS41YzAgMjUuNSAyMC43IDQ2LjIgNDYuMiA0Ni4yaDU0Ny43YzI1LjUgMCA0Ni4yLTIwLjcgNDYuMS00Ni4xVjEwNS4yYzAtMjUuNC0yMC43LTQ2LjEtNDYuMi00Ni4xek0zMzguNSAzNjAuNkgyNzd2LTEyMGwtNjEuNSA3Ni45LTYxLjUtNzYuOXYxMjBIOTIuM1YxNTEuNGg2MS41bDYxLjUgNzYuOSA2MS41LTc2LjloNjEuNXYyMDkuMnptMTM1LjMgMy4xTDM4MS41IDI1Nkg0NDNWMTUxLjRoNjEuNVYyNTZINTY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXN0b2RvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzMgMTc5LjExYzAtOTcuMi02My43MS0xMjUuNy02My43MS0xMjUuNy02Mi41Mi0yOC43LTIyOC41Ni0yOC40LTI5MC40OCAwIDAgMC02My43MiAyOC41LTYzLjcyIDEyNS43IDAgMTE1LjctNi42IDI1OS40IDEwNS42MyAyODkuMSA0MC41MSAxMC43IDc1LjMyIDEzIDEwMy4zMyAxMS40IDUwLjgxLTIuOCA3OS4zMi0xOC4xIDc5LjMyLTE4LjFsLTEuNy0zNi45cy0zNi4zMSAxMS40LTc3LjEyIDEwLjFjLTQwLjQxLTEuNC04My00LjQtODkuNjMtNTRhMTAyLjU0IDEwMi41NCAwIDAgMS0uOS0xMy45Yzg1LjYzIDIwLjkgMTU4LjY1IDkuMSAxNzguNzUgNi43IDU2LjEyLTYuNyAxMDUtNDEuMyAxMTEuMjMtNzIuOSA5LjgtNDkuOCA5LTEyMS41IDktMTIxLjV6bS03NS4xMiAxMjUuMmgtNDYuNjN2LTExNC4yYzAtNDkuNy02NC01MS42LTY0IDYuOXY2Mi41aC00Ni4zM1YxOTdjMC01OC41LTY0LTU2LjYtNjQtNi45djExNC4ySDkwLjE5YzAtMTIyLjEtNS4yLTE0Ny45IDE4LjQxLTE3NSAyNS45LTI4LjkgNzkuODItMzAuOCAxMDMuODMgNi4xbDExLjYgMTkuNSAxMS42LTE5LjVjMjQuMTEtMzcuMSA3OC4xMi0zNC44IDEwMy44My02LjEgMjMuNzEgMjcuMyAxOC40IDUzIDE4LjQgMTc1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXhjZG4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDYxLjEgNDQyLjdoLTk3LjRMNDE1LjYgMjAwYzIuMy0xMC4yLjktMTkuNS00LjQtMjUuNy01LTYuMS0xMy43LTkuNi0yNC4yLTkuNmgtNDkuM2wtNTkuNSAyNzhoLTk3LjRsNTkuNS0yNzhoLTgzLjRsLTU5LjUgMjc4SDBsNTkuNS0yNzgtNDQuNi05NS40SDM4N2MzOS40IDAgNzUuMyAxNi4zIDk4LjMgNDQuOSAyMy4zIDI4LjYgMzEuOCA2Ny40IDIzLjYgMTA1LjlsLTQ3LjggMjIyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1kYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy4zNyAxNjAuNDFMNyAzNTJoNDMuOTFsNS41OS03OS44M0w4NC40MyAzNTJoNDQuNzFsMjUuNTQtNzcuNDMgNC43OSA3Ny40M0gyMDVsLTEyLjc5LTE5MS41OUgxNDYuN0wxMDYgMjc3Ljc0IDYzLjY3IDE2MC40MXptMjgxIDBoLTQ3LjlWMzUyaDQ3LjlzOTUgLjggOTQuMi05NS43OWMtLjc4LTk0LjIxLTk0LjE4LTk1Ljc4LTk0LjE4LTk1Ljc4em0tMS4yIDE0Ni40NlYyMDQuNzhzNDYgNC4yNyA0Ni44IDUwLjU3LTQ2Ljc4IDUxLjU0LTQ2Ljc4IDUxLjU0em0yMzguMjktNzQuMjRhNTYuMTYgNTYuMTYgMCAwIDAgOC0zOC4zMWMtNS4zNC0zNS43Ni01NS4wOC0zNC4zMi01NS4wOC0zNC4zMmgtNTEuOXYxOTEuNThINDgyczg3IDQuNzkgODctNjMuODVjMC00My4xNC0zMy41Mi01NS4wOC0zMy41Mi01NS4wOHptLTUxLjktMzEuOTRzMTMuNTctMS41OSAxNiA5LjU5YzEuNDMgNi42Ni00IDEyLTQgMTJoLTEydi0yMS41N3ptLS4xIDEwOS40NmwuMS0yNC45MlYyNjdoLjA4czQxLjU4LTQuNzMgNDEuMTkgMjIuNDNjLS4zMyAyNS42NS00MS4zNSAyMC43NC00MS4zNSAyMC43NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVkYXBwcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTguMyAyMzguNGMzLjUtMTIuNSA2LjktMzMuNiAxMy4yLTMzLjYgOC4zIDEuOCA5LjYgMjMuNCAxOC42IDM2LjYgNC42LTIzLjUgNS4zLTg1LjEgMTQuMS04Ni43IDktLjcgMTkuNyA2Ni41IDIyIDc3LjUgOS45IDQuMSA0OC45IDYuNiA0OC45IDYuNiAxLjkgNy4zLTI0IDcuNi00MCA3LjgtNC42IDE0LjgtNS40IDI3LjctMTEuNCAyOC00LjcuMi04LjItMjguOC0xNy41LTQ5LjZsLTkuNCA2NS41Yy00LjQgMTMtMTUuNS0yMi41LTIxLjktMzkuMy0zLjMtLjEtNjIuNC0xLjYtNDcuNi03LjhsMzEtNXpNMjI4IDQ0OGMyMS4yIDAgMjEuMi0zMiAwLTMySDkyYy0yMS4yIDAtMjEuMiAzMiAwIDMyaDEzNnptLTI0IDY0YzIxLjIgMCAyMS4yLTMyIDAtMzJoLTg4Yy0yMS4yIDAtMjEuMiAzMiAwIDMyaDg4em0zNC4yLTE0MS41YzMuMi0xOC45IDUuMi0zNi40IDExLjktNDguOCA3LjktMTQuNyAxNi4xLTI4LjEgMjQtNDEgMjQuNi00MC40IDQ1LjktNzUuMiA0NS45LTEyNS41QzMyMCA2OS42IDI0OC4yIDAgMTYwIDBTMCA2OS42IDAgMTU1LjJjMCA1MC4yIDIxLjMgODUuMSA0NS45IDEyNS41IDcuOSAxMi45IDE2IDI2LjMgMjQgNDEgNi43IDEyLjUgOC43IDI5LjggMTEuOSA0OC45IDMuNSAyMSAzNi4xIDE1LjcgMzIuNi01LjEtMy42LTIxLjctNS42LTQwLjctMTUuMy01OC42QzY2LjUgMjQ2LjUgMzMgMjExLjMgMzMgMTU1LjIgMzMgODcuMyA5MCAzMiAxNjAgMzJzMTI3IDU1LjMgMTI3IDEyMy4yYzAgNTYuMS0zMy41IDkxLjMtNjYuMSAxNTEuNi05LjcgMTgtMTEuNyAzNy40LTE1LjMgNTguNi0zLjQgMjAuNiAyOSAyNi40IDMyLjYgNS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZWRpdW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTgwLjUsNzQuMjYyQzgwLjgxMyw3NC4yNjIsMCwxNTUuNjMzLDAsMjU2UzgwLjgxOSw0MzcuNzM4LDE4MC41LDQzNy43MzgsMzYxLDM1Ni4zNzMsMzYxLDI1NiwyODAuMTkxLDc0LjI2MiwxODAuNSw3NC4yNjJabTI4OC4yNSwxMC42NDZjLTQ5Ljg0NSwwLTkwLjI0NSw3Ni42MTktOTAuMjQ1LDE3MS4wOTVzNDAuNDA2LDE3MS4xLDkwLjI1MSwxNzEuMSw5MC4yNTEtNzYuNjE5LDkwLjI1MS0xNzEuMUg1NTlDNTU5LDE2MS41LDUxOC42LDg0LjkwOCw0NjguNzUyLDg0LjkwOFptMTM5LjUwNiwxNy44MjFjLTE3LjUyNiwwLTMxLjczNSw2OC42MjgtMzEuNzM1LDE1My4yNzRzMTQuMiwxNTMuMjc0LDMxLjczNSwxNTMuMjc0UzY0MCwzNDAuNjMxLDY0MCwyNTZDNjQwLDE3MS4zNTEsNjI1Ljc4NSwxMDIuNzI5LDYwOC4yNTgsMTAyLjcyOVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVkcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU0NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEzLjcgMjU2YzAgMTIxLjggODMuOSAyMjIuOCAxOTMuNSAyNDEuMS0xOC43IDQuNS0zOC4yIDYuOS01OC4yIDYuOUMxMTEuNCA1MDQgMCAzOTMgMCAyNTZTMTExLjQgOCAyNDguOSA4YzIwLjEgMCAzOS42IDIuNCA1OC4yIDYuOUMxOTcuNSAzMy4yIDExMy43IDEzNC4yIDExMy43IDI1Nm0yOTcuNCAxMDAuM2MtNzcuNyA1NS40LTE3OS42IDQ3LjUtMjQwLjQtMTQuNiA1LjUgMTQuMSAxMi43IDI3LjcgMjEuNyA0MC41IDYxLjYgODguMiAxODIuNCAxMDkuMyAyNjkuNyA0NyA4Ny4zLTYyLjMgMTA4LjEtMTg0LjMgNDYuNS0yNzIuNi05LTEyLjktMTkuMy0yNC4zLTMwLjUtMzQuMiAzNy40IDc4LjggMTAuNyAxNzguNS02NyAyMzMuOW0tMjE4LjgtMjQ0Yy0xLjQgMS0yLjcgMi4xLTQgMy4xIDY0LjMtMTcuOCAxMzUuOSA0IDE3OC45IDYwLjUgMzUuNyA0NyA0Mi45IDEwNi42IDI0LjQgMTU4IDU2LjctNTYuMiA2Ny42LTE0Mi4xIDIyLjMtMjAxLjgtNTAtNjUuNS0xNDkuMS03NC40LTIyMS42LTE5LjhNMjk2IDIyNGMtNC40IDAtOC0zLjYtOC04di00MGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDBjMCA0LjQtMy42IDgtOCA4aC00MGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGg0MGM0LjQgMCA4IDMuNiA4IDh2NDBjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNDBjMC00LjQgMy42LTggOC04aDQwYzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04aC00MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVldHVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk5IDQxNC4zYzEuMSA1LjctMi4zIDExLjEtOCAxMi4zLTUuNCAxLjEtMTAuOS0yLjMtMTItOC0xLjEtNS40IDIuMy0xMS4xIDcuNy0xMi4zIDUuNC0xLjIgMTEuMSAyLjMgMTIuMyA4em0xNDMuMSA3MS40Yy02LjMgNC42LTggMTMuNC0zLjcgMjAgNC42IDYuNiAxMy40IDguMyAyMCAzLjcgNi4zLTQuNiA4LTEzLjQgMy40LTIwLTQuMi02LjUtMTMuMS04LjMtMTkuNy0zLjd6bS04Ni00NjIuM2M2LjMtMS40IDEwLjMtNy43IDguOS0xNC0xLjEtNi42LTcuNC0xMC42LTEzLjctOS4xLTYuMyAxLjQtMTAuMyA3LjctOS4xIDE0IDEuNCA2LjYgNy42IDEwLjYgMTMuOSA5LjF6TTM0LjQgMjI2LjNjLTEwLTYuOS0yMy43LTQuMy0zMC42IDYtNi45IDEwLTQuMyAyNCA1LjcgMzAuOSAxMCA3LjEgMjMuNyA0LjYgMzAuNi01LjcgNi45LTEwLjQgNC4zLTI0LjEtNS43LTMxLjJ6bTI3Mi0xNzAuOWMxMC42LTYuMyAxMy43LTIwIDcuNy0zMC4zLTYuMy0xMC42LTE5LjctMTQtMzAtNy43cy0xMy43IDIwLTcuNCAzMC42YzYgMTAuMyAxOS40IDEzLjcgMjkuNyA3LjR6bS0xOTEuMSA1OGM3LjctNS40IDkuNC0xNiA0LjMtMjMuN3MtMTUuNy05LjQtMjMuMS00LjNjLTcuNyA1LjQtOS40IDE2LTQuMyAyMy43IDUuMSA3LjggMTUuNiA5LjUgMjMuMSA0LjN6bTM3Mi4zIDE1NmMtNy40IDEuNy0xMi4zIDkuMS0xMC42IDE2LjkgMS40IDcuNCA4LjkgMTIuMyAxNi4zIDEwLjYgNy40LTEuNCAxMi4zLTguOSAxMC42LTE2LjYtMS41LTcuNC04LjktMTIuMy0xNi4zLTEwLjl6bTM5LjctNTYuOGMtMS4xLTUuNy02LjYtOS4xLTEyLTgtNS43IDEuMS05LjEgNi45LTggMTIuNiAxLjEgNS40IDYuNiA5LjEgMTIuMyA4IDUuNC0xLjUgOS4xLTYuOSA3LjctMTIuNnpNNDQ3IDEzOC45Yy04LjYgNi0xMC42IDE3LjctNC45IDI2LjMgNS43IDguNiAxNy40IDEwLjYgMjYgNC45IDguMy02IDEwLjMtMTcuNyA0LjYtMjYuMy01LjctOC43LTE3LjQtMTAuOS0yNS43LTQuOXptLTYuMyAxMzkuNGMyNi4zIDQzLjEgMTUuMSAxMDAtMjYuMyAxMjkuMS0xNy40IDEyLjMtMzcuMSAxNy43LTU2LjkgMTcuMS0xMiA0Ny4xLTY5LjQgNjQuNi0xMDUuMSAzMi42LTEuMS45LTIuNiAxLjctMy43IDIuOS0zOS4xIDI3LjEtOTIuMyAxNy40LTExOS40LTIyLjMtOS43LTE0LjMtMTQuNi0zMC42LTE1LjEtNDYuOS02NS40LTEwLjktOTAtOTQtNDEuMS0xMzkuNy0yOC4zLTQ2LjkuNi0xMDcuNCA1My40LTExNC45QzE1MS42IDcwIDIzNC4xIDM4LjYgMjkwLjEgODJjNjcuNC0yMi4zIDEzNi4zIDI5LjQgMTMwLjkgMTAxLjEgNDEuMSAxMi42IDUyLjggNjYuOSAxOS43IDk1LjJ6bS03MCA3NC4zYy0zLjEtMjAuNi00MC45LTQuNi00My4xLTI3LjEtMy4xLTMyIDQzLjctMTAxLjEgNDAtMTI4LTMuNC0yNC0xOS40LTI5LjEtMzMuNC0yOS40LTEzLjQtLjMtMTYuOSAyLTIxLjQgNC42LTIuOSAxLjctNi42IDQuOS0xMS43LS4zLTYuMy02LTExLjEtMTEuNy0xOS40LTEyLjktMTIuMy0yLTE3LjcgMi0yNi42IDkuNy0zLjQgMi45LTEyIDEyLjktMjAgOS4xLTMuNC0xLjctMTUuNC03LjctMjQtMTEuNC0xNi4zLTcuMS00MCA0LjYtNDguNiAyMC0xMi45IDIyLjktMzggMTEzLjEtNDEuNyAxMjUuMS04LjYgMjYuNiAxMC45IDQ4LjYgMzYuOSA0Ny4xIDExLjEtLjYgMTguMy00LjYgMjUuNC0xNy40IDQtNy40IDQxLjctMTA3LjcgNDQuNi0xMTIuNiAyLTMuNCA4LjktOCAxNC42LTUuMSA1LjcgMy4xIDYuOSA5LjQgNiAxNS4xLTEuMSA5LjctMjggNzAuOS0yOC45IDc3LjctMy40IDIyLjkgMjYuOSAyNi42IDM4LjYgNCAzLjctNy4xIDQ1LjctOTIuNiA0OS40LTk4LjMgNC4zLTYuMyA3LjQtOC4zIDExLjctOCAzLjEgMCA4LjMuOSA3LjEgMTAuOS0xLjQgOS40LTM1LjEgNzIuMy0zOC45IDg3LjctNC42IDIwLjYgNi42IDQxLjQgMjQuOSA1MC42IDExLjQgNS43IDYyLjUgMTUuNyA1OC41LTExLjF6bTUuNyA5Mi4zYy0xMC4zIDcuNC0xMi45IDIyLTUuNyAzMi42IDcuMSAxMC42IDIxLjQgMTMuMSAzMiA2IDEwLjYtNy40IDEzLjEtMjIgNi0zMi42LTcuNC0xMC42LTIxLjctMTMuNS0zMi4zLTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1lZ2Fwb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNC41IDIwOS42djY2LjJsMzMuNSAzMy41IDMzLjMtMzMuM3YtNjYuNGwtMzMuNC0zMy40ek0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0xNDUuMSA0MTQuNEwzNjcgNDQxLjZsLTI2LTE5LjJ2LTY1LjVsLTMzLjQtMzMuNC0zMy40IDMzLjR2NjUuNUwyNDggNDQxLjZsLTI2LjEtMTkuMnYtNjUuNWwtMzMuNC0zMy40LTMzLjUgMzMuNHY2NS41bC0yNi4xIDE5LjItMjYuMS0xOS4ydi04N2w1OS41LTU5LjVWMTg4bDU5LjUtNTkuNVY1Mi45bDI2LjEtMTkuMkwyNzQgNTIuOXY3NS42bDU5LjUgNTkuNXY4Ny42bDU5LjcgNTkuN3Y4Ny4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZW5kZWxleSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjQuNiAzMjUuMmMtMTIuMy0xMi40LTI5LjctMTkuMi00OC40LTE3LjItNDMuMy0xLTQ5LjctMzQuOS0zNy41LTk4LjggMjIuOC01Ny41LTE0LjktMTMxLjUtODcuNC0xMzAuOC03Ny40LjctODEuNyA4Mi0xMzAuOSA4Mi00OC4xIDAtNTQtODEuMy0xMzAuOS04Mi03Mi45LS44LTExMC4xIDczLjMtODcuNCAxMzAuOCAxMi4yIDYzLjkgNS44IDk3LjgtMzcuNSA5OC44LTIxLjItMi4zLTM3IDYuNS01MyAyMi41LTE5LjkgMTkuNy0xOS4zIDk0LjggNDIuNiAxMDIuNiA0Ny4xIDUuOSA4MS42LTQyLjkgNjEuMi04Ny44LTQ3LjMtMTAzLjcgMTg1LjktMTA2LjEgMTQ2LjUtOC4yLS4xLjEtLjIuMi0uMy40LTI2LjggNDIuOCA2LjggOTcuNCA1OC44IDk1LjIgNTIuMSAyLjEgODUuNC01Mi42IDU4LjgtOTUuMi0uMS0uMi0uMi0uMy0uMy0uNC0zOS40LTk3LjkgMTkzLjgtOTUuNSAxNDYuNSA4LjItNC42IDEwLTYuNyAyMS4zLTUuNyAzMyA0LjkgNTMuNCA2OC43IDc0LjEgMTA0LjkgMzUuMiAxNy44LTE0LjggMjMuMS02NS42IDAtODguM3ptLTMwMy45LTE5LjFoLS42Yy00My40IDAtNjIuOC0zNy41LTYyLjgtNjIuOCAwLTM0LjcgMjguMi02Mi44IDYyLjgtNjIuOGguNmMzNC43IDAgNjIuOCAyOC4xIDYyLjggNjIuOCAwIDI1LTE5LjIgNjIuOC02Mi44IDYyLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1ldGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQwIDMxNy45QzY0MCA0MDkuMiA2MDAuNiA0NjYuNCA1MjkuNyA0NjYuNEM0NjcuMSA0NjYuNCA0MzMuOSA0MzEuOCAzNzIuOCAzMjkuOEwzNDEuNCAyNzcuMkMzMzMuMSAyNjQuNyAzMjYuOSAyNTMgMzIwLjIgMjQyLjJDMzAwLjEgMjc2IDI3My4xIDMyNS4yIDI3My4xIDMyNS4yQzIwNi4xIDQ0MS44IDE2OC41IDQ2Ni40IDExNi4yIDQ2Ni40QzQzLjQyIDQ2Ni40IDAgNDA5LjEgMCAzMjAuNUMwIDE3Ny41IDc5Ljc4IDQyLjQgMTgzLjkgNDIuNEMyMzQuMSA0Mi40IDI3Ny43IDY3LjA4IDMyOC43IDEzMS45QzM2NS44IDgxLjggNDA2LjggNDIuNCA0NTkuMyA0Mi40QzU1OC40IDQyLjQgNjQwIDE2OC4xIDY0MCAzMTcuOUg2NDB6TTI4Ny40IDE5Mi4yQzI0NC41IDEzMC4xIDIxNi41IDExMS43IDE4MyAxMTEuN0MxMjEuMSAxMTEuNyA2OS4yMiAyMTcuOCA2OS4yMiAzMjEuN0M2OS4yMiAzNzAuMiA4Ny43IDM5Ny40IDExOC44IDM5Ny40QzE0OSAzOTcuNCAxNjcuOCAzNzguNCAyMjIgMjkzLjZDMjIyIDI5My42IDI0Ni43IDI1NC41IDI4Ny40IDE5Mi4yVjE5Mi4yek01MzEuMiAzOTcuNEM1NjMuNCAzOTcuNCA1NzguMSAzNjkuOSA1NzguMSAzMjIuNUM1NzguMSAxOTguMyA1MjMuOCA5Ny4wOCA0NTQuOSA5Ny4wOEM0MjEuNyA5Ny4wOCAzOTMuOCAxMjMgMzYwIDE3NS4xQzM2OS40IDE4OC45IDM3OS4xIDIwNC4xIDM4OS4zIDIyMC41TDQyNi44IDI4Mi45QzQ4NS41IDM3NyA1MDAuMyAzOTcuNCA1MzEuMiAzOTcuNEw1MzEuMiAzOTcuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWljcm9ibG9nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM5OS4zNiwzNjIuMjNjMjkuNDktMzQuNjksNDcuMS03OC4zNCw0Ny4xLTEyNS43OUM0NDYuNDYsMTIzLjQ5LDM0Ni44NiwzMiwyMjQsMzJTMS41NCwxMjMuNDksMS41NCwyMzYuNDQsMTAxLjE0LDQ0MC44NywyMjQsNDQwLjg3YTIzOS4yOCwyMzkuMjgsMCwwLDAsNzkuNDQtMTMuNDQsNy4xOCw3LjE4LDAsMCwxLDguMTIsMi41NmMxOC41OCwyNS4wOSw0Ny42MSw0Mi43NCw3OS44OSw0OS45MmE0LjQyLDQuNDIsMCwwLDAsNS4yMi0zLjQzLDQuMzcsNC4zNywwLDAsMC0uODUtMy42Miw4Nyw4NywwLDAsMSwzLjY5LTExMC42OVpNMzI5LjUyLDIxMi40bC01Ny4zLDQzLjQ5TDI5MywzMjQuNzVhNi41LDYuNSwwLDAsMS05Ljk0LDcuMjJMMjI0LDI5MC45MiwxNjQuOTQsMzMyYTYuNTEsNi41MSwwLDAsMS05Ljk1LTcuMjJsMjAuNzktNjguODYtNTcuMy00My40OWE2LjUsNi41LDAsMCwxLDMuOC0xMS42OGw3MS44OC0xLjUxLDIzLjY2LTY3LjkyYTYuNSw2LjUsMCwwLDEsMTIuMjgsMGwyMy42Niw2Ny45Miw3MS44OCwxLjUxYTYuNSw2LjUsMCwwLDEsMy44OCwxMS42OFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWljcm9zb2Z0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJoMjE0LjZ2MjE0LjZIMFYzMnptMjMzLjQgMEg0NDh2MjE0LjZIMjMzLjRWMzJ6TTAgMjY1LjRoMjE0LjZWNDgwSDBWMjY1LjR6bTIzMy40IDBINDQ4VjQ4MEgyMzMuNFYyNjUuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWludGJpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03My4yIDUxMlY0MzguOUgzNjUuN1YzNjUuN2g3My4yVjIxOS40SDUxMlYwSDI5Mi42VjczLjFIMTQ2LjN2NzMuMkg3My4yVjQzOC45SDBWNTEySDczLjJ6bTczLjEtMjE5LjRoNzMuMnY3My4xSDE0Ni4zVjI5Mi42em03My4yLTczLjFoNzMuMXY3My4xSDIxOS40VjIxOS40em03My4xIDBWMTQ2LjNoNzMuMnY3My4xSDI5Mi42ek0zNjUuNyA3My4xaDczLjJ2NzMuMkgzNjUuN1Y3My4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NHYzNDguOWMwIDU2LjIgODggNTguMSA4OCAwVjE3NC4zYzcuOS01Mi45IDg4LTUwLjQgODggNi41djE3NS4zYzAgNTcuOSA5NiA1OCA5NiAwVjI0MGM1LjMtNTQuNyA4OC01Mi41IDg4IDQuM3YyMy44YzAgNTkuOSA4OCA1Ni42IDg4IDBWNjRIMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWl4Y2xvdWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEyLjk4IDM0Ni41NjZIMTc5Ljc4OVYxOTUuMTE0TDE4NS45NzMgMTczLjQ3SDE3NS4yNjJMMTM3LjEyNyAzNDYuNTY2SDc2LjEwNjlMMzcuNzMyMyAxNzMuNDdIMjcuMjc2TDMzLjE5MTMgMTk1LjExNFYzNDYuNTY2SDBWMTY1SDY1LjY1MDZMMTAyLjI0OCAzMzguMDk2SDExMC43NDdMMTQ3LjMyOSAxNjVIMjEyLjk4TDIxMi45OCAzNDYuNTY2Wk01NDQuNDU5IDI4My41ODlMNDU4LjQzNCAzNDUuNjU1VjMwNy41MzRMNTMxLjMyOSAyNTUuNzc2TDQ1OC40MzQgMjA0LjAxN1YxNjUuODk2TDU0NC40NTkgMjI4LjIzMUg1NTMuNzIxTDY0MCAxNjUuODk2VjIwNC4wMTdMNTY2Ljg2NiAyNTUuNzc2TDY0MCAzMDcuNTQ5VjM0NS42NTVMNTUzLjcyMSAyODMuNTg5SDU0NC40NTlaTTQzMC4xNTcgMjcyLjMxMUgyNDguMTEzVjIzOS4yNTVINDMwLjE1N1YyNzIuMzExWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaXhlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTQuNTcsNzYuMDdhNDUuNzEsNDUuNzEsMCwwLDAtNjcuNTEtNi40MWMtMTcuNTgsMTYuMTgtMTksNDMuNTItNC43NSw2Mi43N2w5MS43OCwxMjNMNDEuNzYsMzc5LjU4Yy0xNC4yMywxOS4yNS0xMy4xMSw0Ni41OSw0Ljc0LDYyLjc3QTQ1LjcxLDQ1LjcxLDAsMCwwLDExNCw0MzUuOTRMMjQyLjg5LDI2Mi43YTEyLjE0LDEyLjE0LDAsMCwwLDAtMTQuMjNaTTQ3MC4yNCwzNzkuNTgsMzc3LjkxLDI1NS40NWw5MS43OC0xMjNjMTQuMjItMTkuMjUsMTIuODMtNDYuNTktNC43NS02Mi43N2E0NS43MSw0NS43MSwwLDAsMC02Ny41MSw2LjQxbC0xMjgsMTcyLjEyYTEyLjE0LDEyLjE0LDAsMCwwLDAsMTQuMjNMMzk4LDQzNS45NGE0NS43MSw0NS43MSwwLDAsMCw2Ny41MSw2LjQxQzQ4My4zNSw0MjYuMTcsNDg0LjQ3LDM5OC44Myw0NzAuMjQsMzc5LjU4WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaXp1bmkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkuMSAwIDI1NmMwIDEzNyAxMTEgMjQ4IDI0OCAyNDhzMjQ4LTExMSAyNDgtMjQ4QzQ5NiAxMTkuMSAzODUgOCAyNDggOHptLTgwIDM1MS45Yy0zMS40IDEwLjYtNTguOCAyNy4zLTgwIDQ4LjJWMTM2YzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDB2MjIzLjl6bTEyMC05LjljLTEyLjktMi0yNi4yLTMuMS0zOS44LTMuMS0xMy44IDAtMjcuMiAxLjEtNDAuMiAzLjFWMTM2YzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDB2MjE0em0xMjAgNTcuN2MtMjEuMi0yMC44LTQ4LjYtMzcuNC04MC00OFYxMzZjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MHYyNzEuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9keCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTYgMjQxLjhsMzYuNyAyMy43VjQ4MGwtMTMzLTgzLjhMMzU2IDI0MS44ek00NDAgNzVIMjI2LjNsLTIzIDM3LjggMTUzLjUgOTYuNUw0NDAgNzV6bS04OSAxNDIuOEw1NS4yIDMydjIxNC41bDQ2IDI5TDM1MSAyMTcuOHpNOTcgMjk0LjJMOCA0MzdoMjEzLjdsMTI1LTIwMC41TDk3IDI5NC4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb25lcm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyIDM4NGgxMDguNEM0MTcgNDU1LjkgMzM4LjEgNTA0IDI0OCA1MDRTNzkgNDU1LjkgMzUuNiAzODRIMTQ0VjI1Ni4yTDI0OCAzNjFsMTA0LTEwNXYxMjh6TTg4IDMzNlYxMjhsMTU5LjQgMTU5LjRMNDA4IDEyOHYyMDhoNzQuOGM4LjUtMjUuMSAxMy4yLTUyIDEzLjItODBDNDk2IDExOSAzODUgOCAyNDggOFMwIDExOSAwIDI1NmMwIDI4IDQuNiA1NC45IDEzLjIgODBIODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5hcHN0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk4LjMgMzczLjZjLTE0LjIgMTMuNi0zMS4zIDI0LjEtNTAuNCAzMC41LTE5LTYuNC0zNi4yLTE2LjktNTAuMy0zMC41aDEwMC43em00NC0xOTkuNmMyMC0xNi45IDQzLjYtMjkuMiA2OS42LTM2LjJWMjk5YzAgMjE5LjQtMzI4IDIxNy42LTMyOCAuM1YxMzcuN2MyNS45IDYuOSA0OS42IDE5LjYgNjkuNSAzNi40IDU2LjgtNDAgMTMyLjUtMzkuOSAxODguOS0uMXptLTIwOC44LTU4LjVjNjQuNC02MCAxNjQuMy02MC4xIDIyOC45LS4yLTcuMSAzLjUtMTMuOSA3LjMtMjAuNiAxMS41LTU4LjctMzAuNS0xMjkuMi0zMC40LTE4Ny45LjEtNi4zLTQtMTMuOS04LjItMjAuNC0xMS40ek00My44IDkzLjJ2NjkuM2MtNTguNCAzNi41LTU4LjQgMTIxLjEuMSAxNTguMyAyNi40IDI0NS4xIDM4MS43IDI0MC4zIDQwNy42IDEuNWwuMy0xLjdjNTguNy0zNi4zIDU4LjktMTIxLjcuMi0xNTguMlY5My4yYy0xNy4zLjUtMzQgMy01MC4xIDcuNC04Mi05MS41LTIyNS41LTkxLjUtMzA3LjUuMS0xNi4zLTQuNC0zMy4xLTctNTAuNi03LjV6TTI1OS4yIDM1MnMzNi0uMyA2MS4zLTEuNWMxMC4yLS41IDIxLjEtNCAyNS41LTYuNSAyNi4zLTE1LjEgMjUuNC0zOS4yIDI2LjItNDcuNC03OS41LS42LTk5LjktMy45LTExMyA1NS40em0tMTM1LjUtNTUuM2MuOCA4LjItLjEgMzIuMyAyNi4yIDQ3LjQgNC40IDIuNSAxNS4yIDYgMjUuNSA2LjUgMjUuMyAxLjEgNjEuMyAxLjUgNjEuMyAxLjUtMTMuMi01OS40LTMzLjctNTYuMS0xMTMtNTUuNHptMTY5LjEgMTIzLjRjLTMuMi01LjMtNi45LTcuMy02LjktNy4zLTI0LjggNy4zLTUyLjIgNi45LTc1LjkgMCAwIDAtMi45IDEuNS02LjQgNi42LTIuOCA0LjEtMy43IDkuNi0zLjcgOS42IDI5LjEgMTcuNiA2Ny4xIDE3LjYgOTYuMiAwLS4xLS4xLS4zLTQtMy4zLTguOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTmVvcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTUuNDQgNTEyaC05NS4xMUwyMTIuMTIgMzU3LjQ2djkxLjFMMTI1LjY5IDUxMkgyOFYyOS44Mkw2OC40NyAwaDEwOC4wNWwxMjMuNzQgMTc2LjEzVjYzLjQ1TDM4Ni42OSAwaDk3LjY5djQ2MS41ek0zOC43NyAzNS4yN1Y0OTZsNzItNTIuODhWMTk0bDIxNS41IDMwNy42NGg4NC43OWw1Mi4zNS0zOC4xN2gtNzguMjdMNjkgMTN6bTgyLjU0IDQ2Ni42MWw4MC01OC43OHYtMTAxbC03OS43Ni0xMTQuNHYyMjAuOTRMNDkgNTAxLjg5aDcyLjM0ek04MC42MyAxMC43N2wzMTAuNiA0NDIuNTdoODIuMzdWMTAuNzdoLTc5Ljc1djMxNy41NkwxNzAuOTEgMTAuNzd6TTMxMSAxOTEuNjVsNzIgMTAyLjgxVjE1LjkzbC03MiA1M3YxMjIuNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5mY0RpcmVjdGlvbmFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxMS44IDQ4OC42QzIxMy40IDQ5MS4xIDIxMy45IDQ5NC4yIDIxMy4yIDQ5Ny4xQzIxMi42IDUwMCAyMTAuOCA1MDIuNiAyMDguMyA1MDQuMkMyMDUuNyA1MDUuOCAyMDIuNyA1MDYuMyAxOTkuNyA1MDUuN0MxMzguMyA0OTEuOCA4NC4xIDQ1NS44IDQ3LjUzIDQwNC41QzEwLjk3IDM1My4yLTUuMzk1IDI5MC4zIDEuNTcgMjI3LjdDOC41MzYgMTY1IDM4LjM0IDEwNy4yIDg1LjI5IDY1LjIxQzEzMi4yIDIzLjIgMTkzLS4wMTMxIDI1NiAwQzI1Ny41IDAgMjU4LjEgLjI5MzEgMjYwLjMgLjg2MjdDMjYxLjcgMS40MzIgMjYyLjEgMi4yNjcgMjY0IDMuMzE5QzI2NS4xIDQuMzcxIDI2NS45IDUuNjE5IDI2Ni41IDYuOTkzQzI2NyA4LjM2NyAyNjcuMyA5LjgzOSAyNjcuMyAxMS4zMlYxMTIuM0wyOTEuOCA4Ni4zOUMyOTIuOCA4NS4zMSAyOTQgODQuNDQgMjk1LjQgODMuODRDMjk2LjcgODMuMjMgMjk4LjIgODIuOSAyOTkuNyA4Mi44NkMzMDEuMiA4Mi44MSAzMDIuNiA4My4wNiAzMDQgODMuNTlDMzA1LjQgODQuMTIgMzA2LjcgODQuOTIgMzA3LjggODUuOTRDMzA4LjggODYuOTYgMzA5LjcgODguMTggMzEwLjMgODkuNTRDMzEwLjkgOTAuODkgMzExLjMgOTIuMzUgMzExLjMgOTMuODRDMzExLjMgOTUuMzIgMzExLjEgOTYuOCAzMTAuNiA5OC4xOEMzMTAgOTkuNTcgMzA5LjIgMTAwLjggMzA4LjIgMTAxLjlMMjY0LjIgMTQ4LjVDMjYzLjEgMTQ5LjYgMjYxLjkgMTUwLjUgMjYwLjUgMTUxLjFDMjU5IDE1MS43IDI1Ny41IDE1MiAyNTUuMSAxNTJDMjU0LjUgMTUyIDI1Mi45IDE1MS43IDI1MS41IDE1MS4xQzI1MC4xIDE1MC41IDI0OC44IDE0OS42IDI0Ny44IDE0OC41TDIwMy43IDEwMS45QzIwMS43IDk5Ljc0IDIwMC42IDk2LjgzIDIwMC43IDkzLjg0QzIwMC43IDkwLjg0IDIwMiA4Ny4xIDIwNC4yIDg1Ljk0QzIwNi40IDgzLjg4IDIwOS4zIDgyLjc3IDIxMi4zIDgyLjg2QzIxNS4zIDgyLjk0IDIxOC4xIDg0LjIxIDIyMC4yIDg2LjM5TDI0NC43IDExMi40VjIyLjg5QzE4OC4zIDI1LjY0IDEzNC45IDQ4LjczIDk0LjIzIDg3Ljg3QzUzLjU4IDEyNyAyOC40OSAxNzkuNiAyMy42MSAyMzUuOEMxOC43MyAyOTIgMzQuMzggMzQ4LjEgNjcuNjggMzkzLjdDMTAwLjEgNDM5LjIgMTQ5LjcgNDcxLjIgMjA0LjcgNDgzLjZDMjA3LjYgNDg0LjMgMjEwLjIgNDg2LjEgMjExLjggNDg4LjZMMjExLjggNDg4LjZ6TTE3MS40IDEyNi4xQzE3MC42IDEyNy40IDE2OS41IDEyOC41IDE2OC4zIDEyOS4zQzE0Ny44IDE0My4yIDEzMS4xIDE2MS45IDExOS41IDE4My44QzEwNy45IDIwNS43IDEwMS44IDIzMC4xIDEwMS44IDI1NC45QzEwMS44IDI3OS43IDEwNy45IDMwNC4xIDExOS41IDMyNS4xQzEzMS4xIDM0Ny45IDE0Ny44IDM2Ni42IDE2OC4zIDM4MC41QzE3MC44IDM4Mi4yIDE3Mi41IDM4NC44IDE3MyAzODcuOEMxNzMuNiAzOTAuNyAxNzIuMSAzOTMuOCAxNzEuMyAzOTYuMkMxNjkuNiAzOTguNyAxNjYuMSA0MDAuNCAxNjQgNDAwLjFDMTYxLjEgNDAxLjUgMTU4IDQwMC45IDE1NS42IDM5OS4yQzEzMiAzODMuMiAxMTIuOCAzNjEuNyA5OS40NiAzMzYuNUM4Ni4xNSAzMTEuNCA3OS4xOSAyODMuNCA3OS4xOSAyNTQuOUM3OS4xOSAyMjYuNSA4Ni4xNSAxOTguNCA5OS40NiAxNzMuM0MxMTIuOCAxNDguMSAxMzIgMTI2LjYgMTU1LjYgMTEwLjZDMTU2LjggMTA5LjggMTU4LjIgMTA5LjIgMTU5LjYgMTA4LjhDMTYxLjEgMTA4LjUgMTYyLjYgMTA4LjUgMTY0LjEgMTA4LjhDMTY1LjUgMTA5IDE2Ni45IDEwOS42IDE2OC4yIDExMC40QzE2OS41IDExMS4yIDE3MC41IDExMi4zIDE3MS40IDExMy41QzE3Mi4yIDExNC43IDE3Mi44IDExNi4xIDE3My4xIDExNy42QzE3My40IDExOS4xIDE3My40IDEyMC42IDE3My4xIDEyMkMxNzIuOCAxMjMuNSAxNzIuMyAxMjQuOSAxNzEuNCAxMjYuMUgxNzEuNHpNMzQwLjkgMzgzLjVDMzQxLjcgMzgyLjMgMzQyLjggMzgxLjIgMzQzLjEgMzgwLjRWMzgwLjNDMzY0LjQgMzY2LjMgMzgxLjEgMzQ3LjYgMzkyLjcgMzI1LjdDNDA0LjIgMzAzLjkgNDEwLjIgMjc5LjUgNDEwLjIgMjU0LjhDNDEwLjIgMjMwLjEgNDA0LjIgMjA1LjcgMzkyLjcgMTgzLjhDMzgxLjEgMTYxLjEgMzY0LjQgMTQzLjMgMzQzLjEgMTI5LjNDMzQyLjggMTI4LjUgMzQxLjcgMTI3LjQgMzQwLjkgMTI2LjJDMzQwLjEgMTI0LjkgMzM5LjUgMTIzLjUgMzM5LjMgMTIyLjFDMzM4LjEgMTIwLjYgMzM5IDExOS4xIDMzOS4zIDExNy43QzMzOS42IDExNi4yIDM0MC4yIDExNC44IDM0MSAxMTMuNkMzNDEuOSAxMTIuNCAzNDIuMSAxMTEuMyAzNDQuMiAxMTAuNUMzNDUuNCAxMDkuNyAzNDYuOCAxMDkuMiAzNDguMyAxMDguOUMzNDkuOCAxMDguNiAzNTEuMiAxMDguNiAzNTIuNyAxMDguOUMzNTQuMiAxMDkuMiAzNTUuNSAxMDkuOCAzNTYuOCAxMTAuN0MzODAuMiAxMjYuNyAzOTkuNSAxNDguMiA0MTIuNyAxNzMuM0M0MjYgMTk4LjQgNDMyLjEgMjI2LjQgNDMyLjEgMjU0LjhDNDMyLjEgMjgzLjMgNDI2IDMxMS4zIDQxMi43IDMzNi40QzM5OS41IDM2MS41IDM4MC4yIDM4MyAzNTYuOCAzOTlDMzU1LjUgMzk5LjkgMzU0LjIgNDAwLjUgMzUyLjcgNDAwLjhDMzUxLjIgNDAxLjEgMzQ5LjggNDAxLjEgMzQ4LjMgNDAwLjhDMzQ2LjggNDAwLjUgMzQ1LjQgMzk5LjEgMzQ0LjIgMzk5LjJDMzQyLjEgMzk4LjQgMzQxLjkgMzk3LjMgMzQxIDM5Ni4xQzM0MC4yIDM5NC45IDMzOS42IDM5My41IDMzOS4zIDM5MkMzMzkgMzkwLjYgMzM4LjEgMzg5LjEgMzM5LjMgMzg3LjZDMzM5LjUgMzg2LjIgMzQwLjEgMzg0LjggMzQwLjkgMzgzLjVWMzgzLjV6TTMxMi4zIDYuMzA3QzM2OC41IDE5LjA0IDQxOC43IDUwLjI4IDQ1NSA5NS4wMUM0ODUuNCAxMzIuNiA1MDQuNiAxNzggNTEwLjMgMjI2QzUxNS45IDI3NCA1MDcuOSAzMjIuNyA0ODcuMSAzNjYuM0M0NjYuMiA0MDkuOSA0MzMuNSA0NDYuOCAzOTIuNiA0NzIuNkMzNTEuNyA0OTguMyAzMDQuNCA1MTIgMjU2IDUxMkMyNTQuNSA1MTIgMjUzLjEgNTExLjcgMjUxLjcgNTExLjFDMjUwLjMgNTEwLjYgMjQ5LjEgNTA5LjcgMjQ4IDUwOC43QzI0Ni4xIDUwNy42IDI0Ni4xIDUwNi40IDI0NS42IDUwNUMyNDUgNTAzLjYgMjQ0LjcgNTAyLjIgMjQ0LjcgNTAwLjdWNDAxLjVMMjIwLjIgNDI3LjVDMjE4LjEgNDI5LjcgMjE1LjMgNDMwLjEgMjEyLjMgNDMxLjFDMjA5LjMgNDMxLjIgMjA2LjQgNDMwIDIwNC4yIDQyNy4xQzIwMiA0MjUuOSAyMDAuNyA0MjMuMSAyMDAuNyA0MjAuMUMyMDAuNiA0MTcuMSAyMDEuNyA0MTQuMiAyMDMuNyA0MTJMMjQ3LjggMzY1LjRDMjQ5LjEgMzYzLjIgMjUyLjkgMzYyIDI1NS4xIDM2MkMyNTkuMSAzNjIgMjYyIDM2My4yIDI2NC4yIDM2NS40TDMwOC4yIDQxMkMzMTAuMyA0MTQuMiAzMTEuNCA0MTcuMSAzMTEuMyA0MjAuMUMzMTEuMiA0MjMuMSAzMDkuOSA0MjUuOSAzMDcuOCA0MjcuMUMzMDUuNiA0MzAgMzAyLjcgNDMxLjIgMjk5LjcgNDMxLjFDMjk2LjcgNDMwLjEgMjkzLjggNDI5LjcgMjkxLjggNDI3LjVMMjY3LjMgNDAxLjZWNDg5LjFDMzIzLjcgNDg2LjMgMzc3LjEgNDYzLjMgNDE3LjggNDI0LjFDNDU4LjUgMzg0LjEgNDgzLjYgMzMyLjQgNDg4LjUgMjc2LjJDNDkzLjMgMjE5LjEgNDc3LjcgMTYzLjkgNDQ0LjQgMTE4LjNDNDExLjEgNzIuNzUgMzYyLjQgNDAuNzkgMzA3LjQgMjguMzZDMzA1LjkgMjguMDMgMzA0LjYgMjcuNDIgMzAzLjMgMjYuNTdDMzAyLjEgMjUuNzEgMzAxLjEgMjQuNjMgMzAwLjMgMjMuMzdDMjk5LjUgMjIuMTIgMjk4LjEgMjAuNzIgMjk4LjcgMTkuMjZDMjk4LjUgMTcuOCAyOTguNSAxNi4zIDI5OC44IDE0Ljg1QzI5OS4yIDEzLjQxIDI5OS44IDEyLjA0IDMwMC42IDEwLjgyQzMwMS41IDkuNjEgMzAyLjYgOC41NzcgMzAzLjggNy43ODRDMzA1LjEgNi45OSAzMDYuNSA2LjQ1MSAzMDcuOSA2LjE5OEMzMDkuNCA1Ljk0NSAzMTAuOSA1Ljk4MiAzMTIuMyA2LjMwN0wzMTIuMyA2LjMwN3pNMzUzLjEgMjU2LjFDMzUzLjEgMjg3LjUgMzM1LjYgMzE3LjIgMzAzLjggMzM5LjZDMzAxLjcgMzQxLjEgMjk5IDM0MS45IDI5Ni40IDM0MS42QzI5My43IDM0MS40IDI5MS4yIDM0MC4zIDI4OS40IDMzOC40TDIxOS4zIDI2OC42QzIxNy4xIDI2Ni41IDIxNS4xIDI2My42IDIxNS45IDI2MC42QzIxNS45IDI1Ny42IDIxNy4xIDI1NC43IDIxOS4yIDI1Mi42QzIyMS40IDI1MC41IDIyNC4yIDI0OS4zIDIyNy4yIDI0OS4zQzIzMC4yIDI0OS4zIDIzMy4xIDI1MC41IDIzNS4yIDI1Mi42TDI5OC4zIDMxNS40QzMxOS4xIDI5OC4zIDMzMC41IDI3Ny41IDMzMC41IDI1Ni4xQzMzMC41IDIzMi4yIDMxNi40IDIwOS4xIDI5MC44IDE5MUMyODguMyAxODkuMyAyODYuNyAxODYuNyAyODYuMiAxODMuN0MyODUuNyAxODAuOCAyODYuMyAxNzcuNyAyODguMSAxNzUuM0MyODkuOCAxNzIuOCAyOTIuNCAxNzEuMiAyOTUuNCAxNzAuN0MyOTguMyAxNzAuMiAzMDEuNCAxNzAuOCAzMDMuOCAxNzIuNkMzMzUuNiAxOTUgMzUzLjEgMjI0LjcgMzUzLjEgMjU2LjFWMjU2LjF6TTIxNi43IDM0MS41QzIxMy43IDM0MiAyMTAuNyAzNDEuMyAyMDguMiAzMzkuNkMxNzYuNSAzMTcuMiAxNTguMSAyODcuNSAxNTguMSAyNTYuMUMxNTguMSAyMjQuNyAxNzYuNSAxOTUgMjA4LjIgMTcyLjZDMjEwLjQgMTcxIDIxMy4xIDE3MC4zIDIxNS43IDE3MC41QzIxOC40IDE3MC44IDIyMC44IDE3MS45IDIyMi43IDE3My44TDI5Mi44IDI0My42QzI5NC45IDI0NS43IDI5Ni4xIDI0OC42IDI5Ni4xIDI1MS42QzI5Ni4xIDI1NC42IDI5NC4xIDI1Ny40IDI5Mi44IDI1OS42QzI5MC43IDI2MS43IDI4Ny44IDI2Mi45IDI4NC45IDI2Mi45QzI4MS45IDI2Mi45IDI3OC4xIDI2MS43IDI3Ni45IDI1OS42TDIxMy44IDE5Ni43QzE5Mi45IDIxNCAxODEuNiAyMzQuNyAxODEuNiAyNTYuMUMxODEuNiAyNzkuMSAxOTUuNyAzMDMuMSAyMjEuMyAzMjEuMUMyMjMuNyAzMjIuOSAyMjUuNCAzMjUuNSAyMjUuOSAzMjguNUMyMjYuNCAzMzEuNCAyMjUuNyAzMzQuNCAyMjQgMzM2LjlDMjIyLjMgMzM5LjMgMjE5LjYgMzQxIDIxNi43IDM0MS41TDIxNi43IDM0MS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOZmNTeW1ib2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzkyLjkgMzIuNDNDNDAwLjYgMzEuMSA0MDguNiAzMi44OSA0MTQuMSAzNy40MUM0OTguMiA5Ni4xNCA1NDQgMTczLjcgNTQ0IDI1NS4xQzU0NCAzMzguMiA0OTguMiA0MTUuOSA0MTQuMSA0NzQuNkM0MDkuMyA0NzguNiA0MDIuNCA0ODAuNSAzOTUuNSA0NzkuOUMzODguNSA0NzkuMyAzODIgNDc2LjMgMzc3LjEgNDcxLjRMMTkzLjcgMjg4LjdDMTg4LjEgMjgzLjIgMTg1IDI3NS43IDE4NC4xIDI2Ny44QzE4NC4xIDI2MCAxODguMSAyNTIuNSAxOTMuNiAyNDYuOUMxOTkuMiAyNDEuNCAyMDYuNyAyMzguMiAyMTQuNSAyMzguMkMyMjIuNCAyMzguMiAyMjkuOSAyNDEuMyAyMzUuNCAyNDYuOEw0MDAuNSA0MTEuMkM0NTUuMSAzNjYuNSA0ODQuOCAzMTIgNDg0LjggMjU1LjFDNDg0LjggMTkzLjUgNDQ3LjkgMTMyLjkgMzgwLjkgODUuNzZDMzc0LjUgODEuMjQgMzcwLjEgNzQuMzUgMzY4LjggNjYuNjJDMzY3LjQgNTguODkgMzY5LjIgNTAuOTQgMzczLjggNDQuNTNDMzc4LjMgMzguMTIgMzg1LjIgMzMuNzcgMzkyLjkgMzIuNDNWMzIuNDN6TTE4Ni45IDQ3OS42QzE3OS4yIDQ4MC45IDE3MS4zIDQ3OS4xIDE2NC44IDQ3NC42QzgxLjY3IDQxNS45IDM1Ljg0IDMzOC4yIDM1Ljg0IDI1NS4xQzM1Ljg0IDE3My43IDgxLjY3IDk2LjE0IDE2NC44IDM3LjQxQzE3MC41IDMzLjQgMTc3LjQgMzEuNTMgMTg0LjQgMzIuMTJDMTkxLjMgMzIuNzEgMTk3LjggMzUuNzIgMjAyLjcgNDAuNjNMMzg2LjEgMjIzLjNDMzkxLjcgMjI4LjggMzk0LjggMjM2LjMgMzk0LjggMjQ0LjJDMzk0LjkgMjUxLjEgMzkxLjggMjU5LjUgMzg2LjIgMjY1LjFDMzgwLjcgMjcwLjYgMzczLjIgMjczLjggMzY1LjMgMjczLjhDMzU3LjUgMjczLjggMzQ5LjEgMjcwLjcgMzQ0LjQgMjY1LjJMMTc5LjMgMTAwLjdDMTI0LjcgMTQ1LjkgOTUuMDMgMTk5LjkgOTUuMDMgMjU1LjFDOTUuMDMgMzE4LjUgMTMxLjkgMzc5LjEgMTk4LjEgNDI2LjJDMjA1LjQgNDMwLjggMjA5LjcgNDM3LjYgMjExLjEgNDQ1LjRDMjEyLjQgNDUzLjEgMjEwLjYgNDYxLjEgMjA2LjEgNDY3LjVDMjAxLjYgNDczLjkgMTk0LjcgNDc4LjIgMTg2LjkgNDc5LjZWNDc5LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5pbWJsciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDYuNiAyOTkuMjljMTUuNTcgMCAyNy4xNSAxMS40NiAyNy4xNSAyN3MtMTEuNjIgMjctMjcuMTUgMjdjLTE1LjcgMC0yNy4xNS0xMS41Ny0yNy4xNS0yN3MxMS41NS0yNyAyNy4xNS0yN3pNMTEzIDMyNi4yNWMwLTE1LjYxIDExLjY4LTI3IDI3LjE1LTI3czI3LjE1IDExLjQ2IDI3LjE1IDI3LTExLjQ3IDI3LTI3LjE1IDI3Yy0xNS40NCAwLTI3LjE1LTExLjMxLTI3LjE1LTI3TTE5MS43NiAxNTlDMTU3IDE1OSA4OS40NSAxNzguNzcgNTkuMjUgMjI3TDE0IDB2MzM1LjQ4QzE0IDQzMy4xMyA5My42MSA1MTIgMTkxLjc2IDUxMnMxNzcuNzYtNzguOTUgMTc3Ljc2LTE3Ni41MlMyOTAuMTMgMTU5IDE5MS43NiAxNTl6bTAgMzA4LjEyYy03My4yNyAwLTEzMi41MS01OC45LTEzMi41MS0xMzEuNTlzNTkuMjQtMTMxLjU5IDEzMi41MS0xMzEuNTkgMTMyLjUxIDU4Ljg2IDEzMi41MSAxMzEuNTRTMjY1IDQ2Ny4wNyAxOTEuNzYgNDY3LjA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOb2RlSnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDUwOGMtNi43IDAtMTMuNS0xLjgtMTkuNC01LjJsLTYxLjctMzYuNWMtOS4yLTUuMi00LjctNy0xLjctOCAxMi4zLTQuMyAxNC44LTUuMiAyNy45LTEyLjcgMS40LS44IDMuMi0uNSA0LjYuNGw0Ny40IDI4LjFjMS43IDEgNC4xIDEgNS43IDBsMTg0LjctMTA2LjZjMS43LTEgMi44LTMgMi44LTVWMTQ5LjNjMC0yLjEtMS4xLTQtMi45LTUuMUwyMjYuOCAzNy43Yy0xLjctMS00LTEtNS43IDBMMzYuNiAxNDQuM2MtMS44IDEtMi45IDMtMi45IDUuMXYyMTMuMWMwIDIgMS4xIDQgMi45IDQuOWw1MC42IDI5LjJjMjcuNSAxMy43IDQ0LjMtMi40IDQ0LjMtMTguN1YxNjcuNWMwLTMgMi40LTUuMyA1LjQtNS4zaDIzLjRjMi45IDAgNS40IDIuMyA1LjQgNS4zVjM3OGMwIDM2LjYtMjAgNTcuNi01NC43IDU3LjYtMTAuNyAwLTE5LjEgMC00Mi41LTExLjZsLTQ4LjQtMjcuOUM4LjEgMzg5LjIuNyAzNzYuMy43IDM2Mi40VjE0OS4zYzAtMTMuOCA3LjQtMjYuOCAxOS40LTMzLjdMMjA0LjYgOWMxMS43LTYuNiAyNy4yLTYuNiAzOC44IDBsMTg0LjcgMTA2LjdjMTIgNi45IDE5LjQgMTkuOCAxOS40IDMzLjd2MjEzLjFjMCAxMy44LTcuNCAyNi43LTE5LjQgMzMuN0wyNDMuNCA1MDIuOGMtNS45IDMuNC0xMi42IDUuMi0xOS40IDUuMnptMTQ5LjEtMjEwLjFjMC0zOS45LTI3LTUwLjUtODMuNy01OC01Ny40LTcuNi02My4yLTExLjUtNjMuMi0yNC45IDAtMTEuMSA0LjktMjUuOSA0Ny40LTI1LjkgMzcuOSAwIDUxLjkgOC4yIDU3LjcgMzMuOC41IDIuNCAyLjcgNC4yIDUuMiA0LjJoMjRjMS41IDAgMi45LS42IDMuOS0xLjdzMS41LTIuNiAxLjQtNC4xYy0zLjctNDQuMS0zMy02NC42LTkyLjItNjQuNi01Mi43IDAtODQuMSAyMi4yLTg0LjEgNTkuNSAwIDQwLjQgMzEuMyA1MS42IDgxLjggNTYuNiA2MC41IDUuOSA2NS4yIDE0LjggNjUuMiAyNi43IDAgMjAuNi0xNi42IDI5LjQtNTUuNSAyOS40LTQ4LjkgMC01OS42LTEyLjMtNjMuMi0zNi42LS40LTIuNi0yLjYtNC41LTUuMy00LjVoLTIzLjljLTMgMC01LjMgMi40LTUuMyA1LjMgMCAzMS4xIDE2LjkgNjguMiA5Ny44IDY4LjIgNTguNC0uMSA5Mi0yMy4yIDkyLTYzLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5vZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzE2LjMgNDUyYy0yLjEgMC00LjItLjYtNi4xLTEuNkwyOTEgNDM5Yy0yLjktMS42LTEuNS0yLjItLjUtMi41IDMuOC0xLjMgNC42LTEuNiA4LjctNCAuNC0uMiAxLS4xIDEuNC4xbDE0LjggOC44Yy41LjMgMS4zLjMgMS44IDBMMzc1IDQwOGMuNS0uMy45LS45LjktMS42di02Ni43YzAtLjctLjMtMS4zLS45LTEuNmwtNTcuOC0zMy4zYy0uNS0uMy0xLjItLjMtMS44IDBsLTU3LjggMzMuM2MtLjYuMy0uOSAxLS45IDEuNnY2Ni43YzAgLjYuNCAxLjIuOSAxLjVsMTUuOCA5LjFjOC42IDQuMyAxMy45LS44IDEzLjktNS44di02NS45YzAtLjkuNy0xLjcgMS43LTEuN2g3LjNjLjkgMCAxLjcuNyAxLjcgMS43djY1LjljMCAxMS41LTYuMiAxOC0xNy4xIDE4LTMuMyAwLTYgMC0xMy4zLTMuNmwtMTUuMi04LjdjLTMuNy0yLjItNi4xLTYuMi02LjEtMTAuNXYtNjYuN2MwLTQuMyAyLjMtOC40IDYuMS0xMC41bDU3LjgtMzMuNGMzLjctMi4xIDguNS0yLjEgMTIuMSAwbDU3LjggMzMuNGMzLjcgMi4yIDYuMSA2LjIgNi4xIDEwLjV2NjYuN2MwIDQuMy0yLjMgOC40LTYuMSAxMC41bC01Ny44IDMzLjRjLTEuNyAxLjEtMy44IDEuNy02IDEuN3ptNDYuNy02NS44YzAtMTIuNS04LjQtMTUuOC0yNi4yLTE4LjItMTgtMi40LTE5LjgtMy42LTE5LjgtNy44IDAtMy41IDEuNS04LjEgMTQuOC04LjEgMTEuOSAwIDE2LjMgMi42IDE4LjEgMTAuNi4yLjguOCAxLjMgMS42IDEuM2g3LjVjLjUgMCAuOS0uMiAxLjItLjUuMy0uNC41LS44LjQtMS4zLTEuMi0xMy44LTEwLjMtMjAuMi0yOC44LTIwLjItMTYuNSAwLTI2LjMgNy0yNi4zIDE4LjYgMCAxMi43IDkuOCAxNi4xIDI1LjYgMTcuNyAxOC45IDEuOSAyMC40IDQuNiAyMC40IDguMyAwIDYuNS01LjIgOS4yLTE3LjQgOS4yLTE1LjMgMC0xOC43LTMuOC0xOS44LTExLjQtLjEtLjgtLjgtMS40LTEuNy0xLjRoLTcuNWMtLjkgMC0xLjcuNy0xLjcgMS43IDAgOS43IDUuMyAyMS4zIDMwLjYgMjEuMyAxOC41IDAgMjktNy4yIDI5LTE5Ljh6bTU0LjUtNTAuMWMwIDYuMS01IDExLjEtMTEuMSAxMS4xcy0xMS4xLTUtMTEuMS0xMS4xYzAtNi4zIDUuMi0xMS4xIDExLjEtMTEuMSA2LS4xIDExLjEgNC44IDExLjEgMTEuMXptLTEuOCAwYzAtNS4yLTQuMi05LjMtOS40LTkuMy01LjEgMC05LjMgNC4xLTkuMyA5LjMgMCA1LjIgNC4yIDkuNCA5LjMgOS40IDUuMi0uMSA5LjQtNC4zIDkuNC05LjR6bS00LjUgNi4yaC0yLjZjLS4xLS42LS41LTMuOC0uNS0zLjktLjItLjctLjQtMS4xLTEuMy0xLjFoLTIuMnY1aC0yLjR2LTEyLjVoNC4zYzEuNSAwIDQuNCAwIDQuNCAzLjMgMCAyLjMtMS41IDIuOC0yLjQgMy4xIDEuNy4xIDEuOCAxLjIgMi4xIDIuOC4xIDEgLjMgMi43LjYgMy4zem0tMi44LTguOGMwLTEuNy0xLjItMS43LTEuOC0xLjdoLTJ2My41aDEuOWMxLjYgMCAxLjktMS4xIDEuOS0xLjh6TTEzNy4zIDE5MWMwLTIuNy0xLjQtNS4xLTMuNy02LjRsLTYxLjMtMzUuM2MtMS0uNi0yLjItLjktMy40LTFoLS42Yy0xLjIgMC0yLjMuNC0zLjQgMUwzLjcgMTg0LjZDMS40IDE4NS45IDAgMTg4LjQgMCAxOTFsLjEgOTVjMCAxLjMuNyAyLjUgMS44IDMuMiAxLjEuNyAyLjUuNyAzLjcgMEw0MiAyNjguM2MyLjMtMS40IDMuNy0zLjggMy43LTYuNHYtNDQuNGMwLTIuNiAxLjQtNS4xIDMuNy02LjRsMTUuNS04LjljMS4yLS43IDIuNC0xIDMuNy0xIDEuMyAwIDIuNi4zIDMuNyAxbDE1LjUgOC45YzIuMyAxLjMgMy43IDMuOCAzLjcgNi40djQ0LjRjMCAyLjYgMS40IDUuMSAzLjcgNi40bDM2LjQgMjAuOWMxLjEuNyAyLjYuNyAzLjcgMCAxLjEtLjYgMS44LTEuOSAxLjgtMy4ybC4yLTk1ek00NzIuNSA4Ny4zdjE3Ni40YzAgMi42LTEuNCA1LjEtMy43IDYuNGwtNjEuMyAzNS40Yy0yLjMgMS4zLTUuMSAxLjMtNy40IDBsLTYxLjMtMzUuNGMtMi4zLTEuMy0zLjctMy44LTMuNy02LjR2LTcwLjhjMC0yLjYgMS40LTUuMSAzLjctNi40bDYxLjMtMzUuNGMyLjMtMS4zIDUuMS0xLjMgNy40IDBsMTUuMyA4LjhjMS43IDEgMy45LS4zIDMuOS0yLjJ2LTk0YzAtMi44IDMtNC42IDUuNS0zLjJsMzYuNSAyMC40YzIuMyAxLjIgMy44IDMuNyAzLjggNi40em0tNDYgMTI4LjljMC0uNy0uNC0xLjMtLjktMS42bC0yMS0xMi4yYy0uNi0uMy0xLjMtLjMtMS45IDBsLTIxIDEyLjJjLS42LjMtLjkuOS0uOSAxLjZ2MjQuM2MwIC43LjQgMS4zLjkgMS42bDIxIDEyLjFjLjYuMyAxLjMuMyAxLjggMGwyMS0xMi4xYy42LS4zLjktLjkuOS0xLjZ2LTI0LjN6bTIwOS44LS43YzIuMy0xLjMgMy43LTMuOCAzLjctNi40VjE5MmMwLTIuNi0xLjQtNS4xLTMuNy02LjRsLTYwLjktMzUuNGMtMi4zLTEuMy01LjEtMS4zLTcuNCAwbC02MS4zIDM1LjRjLTIuMyAxLjMtMy43IDMuOC0zLjcgNi40djcwLjhjMCAyLjcgMS40IDUuMSAzLjcgNi40bDYwLjkgMzQuN2MyLjIgMS4zIDUgMS4zIDcuMyAwbDM2LjgtMjAuNWMyLjUtMS40IDIuNS01IDAtNi40TDU1MCAyNDEuNmMtMS4yLS43LTEuOS0xLjktMS45LTMuMnYtMjIuMmMwLTEuMy43LTIuNSAxLjktMy4ybDE5LjItMTEuMWMxLjEtLjcgMi42LS43IDMuNyAwbDE5LjIgMTEuMWMxLjEuNyAxLjkgMS45IDEuOSAzLjJ2MTcuNGMwIDIuOCAzLjEgNC42IDUuNiAzLjJsMzYuNy0yMS4zek01NTkgMjE5Yy0uNC4zLS43LjctLjcgMS4ydjEzLjZjMCAuNS4zIDEgLjcgMS4ybDExLjggNi44Yy40LjMgMSAuMyAxLjQgMEw1ODQgMjM1Yy40LS4zLjctLjcuNy0xLjJ2LTEzLjZjMC0uNS0uMy0xLS43LTEuMmwtMTEuOC02LjhjLS40LS4zLTEtLjMtMS40IDBMNTU5IDIxOXptLTI1NC4yIDQzLjV2LTcwLjRjMC0yLjYtMS42LTUuMS0zLjktNi40bC02MS4xLTM1LjJjLTIuMS0xLjItNS0xLjQtNy40IDBsLTYxLjEgMzUuMmMtMi4zIDEuMy0zLjkgMy43LTMuOSA2LjR2NzAuNGMwIDIuOCAxLjkgNS4yIDQgNi40bDYxLjIgMzUuMmMyLjQgMS40IDUuMiAxLjMgNy40IDBsNjEtMzUuMmMxLjgtMSAzLjEtMi43IDMuNi00LjcuMS0uNS4yLTEuMS4yLTEuN3ptLTc0LjMtMTI0LjlsLS44LjVoMS4xbC0uMy0uNXptNzYuMiAxMzAuMmwtLjQtLjd2LjlsLjQtLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5wbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMjg4aC0zMnYtNjRoMzJ2NjR6bTI4OC0xMjh2MTkySDI4OHYzMkgxNjB2LTMySDBWMTYwaDU3NnptLTQxNiAzMkgzMnYxMjhoNjR2LTk2aDMydjk2aDMyVjE5MnptMTYwIDBIMTkydjE2MGg2NHYtMzJoNjRWMTkyem0yMjQgMEgzNTJ2MTI4aDY0di05NmgzMnY5NmgzMnYtOTZoMzJ2OTZoMzJWMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOczggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTA0LjMyNCwyNjkuMTcyaDI2LjA2N1YyNDIuOTk0SDEwNC4zMjRabTUyLjQ2Ni0yNi4xNzgtLjA1NS0yNi4xNzh2LS45NDFhMzkuMzI1LDM5LjMyNSwwLDAsMC03OC42NDQuOTQxdi4xNjZoMjYuNHYtLjE2NmExMi45OCwxMi45OCwwLDAsMSwyNS45NTYsMHYyNi4xNzhabTUyLjM1NiwyNS44NDZhOTEuMSw5MS4xLDAsMCwxLTkxLjEsOTEuMWgtLjYwOWE5MS4xLDkxLjEsMCwwLDEtOTEuMS05MS4xSDB2LjE2NkExMTcuMzMsMTE3LjMzLDAsMCwwLDExNy40NCwzODYuMjhoLjc3NUExMTcuMzMxLDExNy4zMzEsMCwwLDAsMjM1LjQ5LDI2OC44NFYyNDIuODI4SDIwOS4xNDZabS0xNTcuMjMzLDBhNjUuMzYyLDY1LjM2MiwwLDAsMCwxMzAuNzIzLDBIMTU2LjI5MmEzOS4wMjMsMzkuMDIzLDAsMCwxLTc4LjAzNSwwVjI0Mi44ODNINTEuOTY4di0yNi42MkE2NS40Miw2NS40MiwwLDAsMSwxODIuOCwyMTcuNDh2MjUuMjkzaDI2LjM0NFYyMTcuNDhhOTEuNzYxLDkxLjc2MSwwLDAsMC0xODMuNTIyLDB2MjUuNEg1MS45MTNabTQxOC40LTcxLjE3M2MxMy42NywwLDI0LjU3Myw2LjY0MiwzMC4wNTIsMTguMjY0bC43MTksMS41NDksMjMuMjQ1LTExLjUxMS0uNjA5LTEuNDM5Yy04LjAyNS0xOS4yNi0yOC41LTMxLjI3LTUzLjQwNy0zMS4yNy0yMy4xMzQsMC00My42MTEsMTEuNC01MC45NzIsMjguNDQ3LS4xMjMsMjYuODc2LS4xNTgsMjMuOSwwLDI0Ljg1LDQuNywxMS4wMTMsMTQuNTU1LDE5LjM3LDI4LjY2OCwyNC4yNDFhMTAyLjAzMywxMDIuMDMzLDAsMCwwLDE5LjgxMywzLjk4NGM1LjQ3OS43MiwxMC42MjYsMS4zODQsMTUuODI5LDMuMSw2LjM2NCwyLjEsMTAuNDYsNS4yNTcsMTIuODQsOS44NTF2OS44NTFjLTMuNzA4LDcuNTI3LTEzLjc4MSwxMi4zNDItMjUuNzkxLDEyLjM0Mi0xNC4zMzQsMC0yNS45NTYtNi45MTgtMzEuOTMzLTE5LjAzOWwtLjcyLTEuNDk0TDQxNS4wMjYsMjgwLjlsLjU1MywxLjQzOWM3LjkxNSwxOS40MjYsMjkuNjA5LDMyLjA0NCw1NS4yODksMzIuMDQ0LDIzLjYzMiwwLDQ0LjYwOC0xMS40LDUyLjMtMjguNDQ3bC4xNjYtMjUuOS0uMTY2LS42NjRjLTQuODctMTEuMDE0LTE1LjIxOS0xOS42NDctMjguOTQ0LTI0LjI0MS03LjY5My0yLjcxMi0xNC4zMzUtMy42LTIwLjctNC40MjdhODMuNzc3LDgzLjc3NywwLDAsMS0xNC44MzItMi44NzhjLTYuMzEtMS45MzctMTAuNC01LjA5Mi0xMi42MTktOS42M3YtOC40MTJDNDQ5LjQ1LDIwMi40MjcsNDU4Ljk2OSwxOTcuNjY3LDQ3MC4zMTUsMTk3LjY2N1pNMjg3LjU2OCwzMTEuMzQ0aDI2LjA2N3YtNjguNEgyODcuNTY4Wm0zNTIuMjY2LTUzLjNjLTIuOTMzLTYuMjU0LTguMy0xMi4wMS0xNS40NDEtMTYuNzE0QTM3Ljk5LDM3Ljk5LDAsMCwwLDYzNy40LDIyNmwuMTY2LTI1LjM0Ny0uMTY2LS42NjRDNjMwLjAzOCwxODQsNjEwLjY2NywxNzMuMjYsNTg5LjI1LDE3My4yNlM1NDguNDYxLDE4NCw1NDEuMSwxOTkuOTkybC0uMTY2LDI1LjM0Ny4xNjYuNjY0YTM5LjY0MywzOS42NDMsMCwwLDAsMTMuMDA2LDE1LjMzMWMtNy4yLDQuNy0xMi41MDgsMTAuNDYtMTUuNDQxLDE2LjcxNGwtLjE2NiwyOC44ODkuMTY2LjcyYzcuNTgyLDE1Ljk5NCwyNy44OTMsMjYuNzMxLDUwLjU4NSwyNi43MzFzNDMuMDU3LTEwLjczNyw1MC41ODQtMjYuNzMxbC4xNjYtMjguODlabS03My4yMi01MC44MDZjMy42LTYuMzEsMTIuNTYzLTEwLjUxNiwyMi41OC0xMC41MTZzMTkuMDM4LDQuMjA2LDIyLjYzNiwxMC41MTZ2MTMuNzI1Yy0zLjU0Miw2LjItMTIuNTYzLDEwLjM0OS0yMi42MzYsMTAuMzQ5cy0xOS4wOTQtNC4xNS0yMi41OC0xMC4zNDlabTQ3LjMxOSw3Mi4xNjljLTMuNzY0LDYuNjQxLTEzLjMzOCwxMC45LTI0LjY4MywxMC45LTExLjEyNSwwLTIwLjk3Ni00LjM3Mi0yNC42ODQtMTAuOVYyNjMuMjVjMy43MDgtNi4zMDksMTMuNS0xMC41MTUsMjQuNjg0LTEwLjUxNSwxMS4zNDUsMCwyMC45MTksNC4xNSwyNC42ODMsMTAuNTE1Wk0zNzYuNCwyNjUuOTYybC01OS44MjctODkuNzEzaC0yOXY0MC42MjNoMjYuNTF2LjM4N2w2Mi41MzksOTQuMDg1SDQwMi4zVjE3Ni4yNDlIMzc2LjRaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU51dHJpdGlvbml4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0MDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTg4IDguMVMyMjEuNC0uMSAyMDkgMTEyLjVjMCAwIDE5LjEtNzQuOSAxMDMtNDAuNiAwIDAtMTcuNyA3NC04OCA1NiAwIDAgMTQuNi01NC42IDY2LjEtNTYuNiAwIDAtMzkuOS0xMC4zLTgyLjEgNDguOCAwIDAtMTkuOC05NC41LTkzLjYtOTkuNyAwIDAgNzUuMiAxOS40IDc3LjYgMTA3LjUgMCAuMS0xMDYuNCA3LTEwNC0xMTkuOHptMzEyIDMxNS42YzAgNDguNS05LjcgOTUuMy0zMiAxMzIuMy00Mi4yIDMwLjktMTA1IDQ4LTE2OCA0OC02Mi45IDAtMTI1LjgtMTcuMS0xNjgtNDhDOS43IDQxOSAwIDM3Mi4yIDAgMzIzLjcgMCAyNzUuMyAxNy43IDIyOSA0MCAxOTJjNDIuMi0zMC45IDk3LjEtNDguNiAxNjAtNDguNiA2MyAwIDExNy44IDE3LjYgMTYwIDQ4LjYgMjIuMyAzNyA0MCA4My4zIDQwIDEzMS43ek0xMjAgNDI4YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHptMC02Ni4yYzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHptMC02Ni4yYzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHpNMTkyIDQyOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6bTAtNjYuMmMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6bTAtNjYuMmMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6TTI2NCA0MjhjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4em0wLTY2LjJjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4em0wLTY2LjJjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4ek0zMzYgNDI4YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHptMC02Ni4yYzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHptMC02Ni4yYzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHptMjQtMzkuNmMtNC44LTIyLjMtNy40LTM2LjktMTYtNTYtMzguOC0xOS45LTkwLjUtMzItMTQ0LTMyUzk0LjggMTgwLjEgNTYgMjAwYy04LjggMTkuNS0xMS4yIDMzLjktMTYgNTYgNDIuMi03LjkgOTguNy0xNC44IDE2MC0xNC44czExNy44IDYuOSAxNjAgMTQuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT2N0b3B1c0RlcGxveSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTUuNiwzNDkuMmMtNDUuODkxLTM5LjA5LTM2LjY3LTc3Ljg3Ny0xNi4wOTUtMTI4LjExQzQ3NS4xNiwxMzQuMDQsNDE1Ljk2NywzNC4xNCwzMjkuOTMsOC4zLDIzNy4wNC0xOS42LDEzNC4yNTIsMjQuMzQxLDk5LjY3NywxMTcuMTQ3YTE4MC44NjIsMTgwLjg2MiwwLDAsMC0xMC45ODgsNzMuNTQ0YzEuNzMzLDI5LjU0MywxNC43MTcsNTIuOTcsMjQuMDksODAuMywxNy4yLDUwLjE2MS0yOC4xLDkyLjc0My02Ni42NjIsMTE3LjU4Mi00Ni44MDYsMzAuMi0zNi4zMTksMzkuODU3LTguNDI4LDQxLjg1OCwyMy4zNzgsMS42OCw0NC40NzgtNC41NDgsNjUuMjY1LTE1LjA0NSw5LjItNC42NDcsNDAuNjg3LTE4LjkzMSw0NS4xMy0yOC41ODhDMTM1LjksNDEzLjM4OCwxMTEuMTIyLDQ1OS41LDEyNi42MjEsNDg4LjljMTkuMSwzNi4yMjksNjcuMTEyLTMxLjc3LDc2LjcwOS00NS44MTIsOC41OTEtMTIuNTcyLDQyLjk2My04MS4yNzksNjMuNjI3LTQ2LjkyNiwxOC44NjUsMzEuMzYxLDguNiw3Ni4zOTEsMzUuNzM4LDEwNC42MjIsMzIuODU0LDM0LjIsNTEuMTU1LTE4LjMxMiw1MS40MTItNDQuMjIxLjE2My0xNi40MTEtNi4xLTk1Ljg1MiwyOS45LTU5Ljk0NEM0MDUuNDI4LDQxOCw0MzYuOTEyLDQ2Ny44LDQ3Mi41NjgsNDYzLjY0MmMzOC43MzYtNC41MTYtMjIuMTIzLTY3Ljk2Ny0yOC4yNjItNzguNjk1LDUuMzkzLDQuMjc5LDUzLjY2NSwzNC4xMjgsNTMuODE4LDkuNTJDNDk4LjIzNCwzNzUuNjc4LDQ2OC4wMzksMzU5LjgsNDU1LjYsMzQ5LjJaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9kbm9rbGFzc25pa2kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc1LjEgMzM0Yy0yNy40IDE3LjQtNjUuMSAyNC4zLTkwIDI2LjlsMjAuOSAyMC42IDc2LjMgNzYuM2MyNy45IDI4LjYtMTcuNSA3My4zLTQ1LjcgNDUuNy0xOS4xLTE5LjQtNDcuMS00Ny40LTc2LjMtNzYuNkw4NCA1MDMuNGMtMjguMiAyNy41LTczLjYtMTcuNi00NS40LTQ1LjcgMTkuNC0xOS40IDQ3LjEtNDcuNCA3Ni4zLTc2LjNsMjAuNi0yMC42Yy0yNC42LTIuNi02Mi45LTkuMS05MC42LTI2LjktMzIuNi0yMS00Ni45LTMzLjMtMzQuMy01OSA3LjQtMTQuNiAyNy43LTI2LjkgNTQuNi01LjcgMCAwIDM2LjMgMjguOSA5NC45IDI4LjlzOTQuOS0yOC45IDk0LjktMjguOWMyNi45LTIxLjEgNDcuMS04LjkgNTQuNiA1LjcgMTIuNCAyNS43LTEuOSAzOC0zNC41IDU5LjF6TTMwLjMgMTI5LjdDMzAuMyA1OCA4OC42IDAgMTYwIDBzMTI5LjcgNTggMTI5LjcgMTI5LjdjMCA3MS40LTU4LjMgMTI5LjQtMTI5LjcgMTI5LjRzLTEyOS43LTU4LTEyOS43LTEyOS40em02NiAwYzAgMzUuMSAyOC42IDYzLjcgNjMuNyA2My43czYzLjctMjguNiA2My43LTYzLjdjMC0zNS40LTI4LjYtNjQtNjMuNy02NHMtNjMuNyAyOC42LTYzLjcgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9keXNlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDYuNyA0NjNjLTQyLjMgMzAuOC05NC40IDQ5LTE1MC43IDQ5QzE0NC45IDUxMiA1MC4zIDQ0MS4yIDE0LjkgMzQyLjJjMi40IDEuNyA1LjkgMy42IDcuOSA0LjRjMTYuMyA3LjQgNDAuMS01LjQgNjIuOS0yOC43YzYuOS02LjkgMTQuNC0xMi40IDIyLjgtMTcuM2MxOC4zLTExLjkgMzcuNi0yMC44IDU4LjQtMjcuMmMwIDAgMjIuMyAzNC4yIDQzLjEgNzQuOHMtMjIuMyA1NC0yNy4yIDU0Yy0uMyAwLS44IDAtMS41LS4xYy0xMS0uNS03MC0zLTU2IDUxLjFjMTQuOSA1Ny40IDk3LjUgMzYuNiAxMzkuNiA4LjlzMzEuNy0xMTguMyAzMS43LTExOC4zYzQxLjEtNi40IDU0IDM3LjEgNTcuOSA1OS40Yy44IDQuNiAxLjEgOS45IDEuNCAxNS41YzEuMSAyMS4yIDIuMyA0NS42IDM1LjMgNDYuNGM1LjMgMCAxMC42LS44IDE1LjUtMnptLTk1LjMtMjMuN2MtMi0uNS0zLjUtMi41LTMtNWMxLTIuNSAzLTMuNSA1LTNzMy41IDMgMyA1cy0yLjUgMy41LTUgM3ptLTIwNy05NS42YzEuNS0uNSAzLjUgMSA0IDNjMCAyLTEgNC0zIDRjLTEuNSAuNS0zLjUtMS00LTNjLS41LTEuNSAxLTMuNSAzLTR6TTQ1MS44IDQyMUM0ODkuMyAzNzYuNCA1MTIgMzE4LjggNTEyIDI1NmMwLTY3LjUtMjYuMS0xMjguOS02OC44LTE3NC43Yy0uMSAyMy41LTYuMSA0OC4yLTE2LjggNjkuMmMtMTEuOSAyMC4zLTQ5IDU4LjktNjkuOCA3OC43Yy0uNyAuMy0xLjEgLjktMS41IDEuNGMtLjIgLjItLjMgLjQtLjUgLjZjLTUgNi45LTQgMTYuOCAzIDIxLjhjMjEuMyAxNS44IDU2LjQgNDUuNiA1OS40IDcyLjhjMy41IDM0LjkgMjcuOSA3NS42IDM0LjIgODYuMmwwIDBjLjggMS4zIDEuMyAyLjEgMS40IDIuNGMwIDIuMi0uNCA0LjMtLjggNi41ek0zOTAuNyAyNTFjLS41IDMgMSA1LjkgNCA2LjRzNS45LTEgNi40LTRzLTEtNS45LTQtNi40Yy0zLTEtNS45IDEtNi40IDR6bTYxLjQtNjAuOWwtMTEuNCA1LjQtMyAxMi45LTUuNC0xMS40LTEyLjktMyAxMS40LTUuNCAzLTEyLjkgNS40IDExLjQgMTIuOSAzek0zOTUuNSA0MS4zYy0xNi4yIDguMi0yMi4xIDMyLjgtMjkgNjEuNGwwIDBjLS4zIDEuNC0uNyAyLjgtMSA0LjJjLTkuNSAzOC41LTMwLjYgMzcuNi00MS43IDM3LjJjLTEuMSAwLTItLjEtMi45LS4xYy01LjEgMC02LTQtOC45LTE3LjFjLTIuNi0xMi4xLTYuOS0zMi0xNy45LTYzLjZDMjcxLjQtMi41IDIxMS40IDEzLjkgMTY1LjkgNDEuMUMxMTAuNiA3NC4yIDEzMS41IDE0MyAxNDYuMSAxOTAuNWMuNyAyLjIgMS40IDQuNCAyIDYuNmMtNCA0LTEzLjggNy41LTI2IDExLjljLTEyLjEgNC4zLTI2LjYgOS41LTQwLjMgMTYuOUM0Ny45IDI0My45IDExLjUgMjc0LjkgMiAyODguNUMuNyAyNzcuOCAwIDI2NyAwIDI1NkMwIDExNC42IDExNC42IDAgMjU2IDBjNTEuNCAwIDk5LjQgMTUuMiAxMzkuNSA0MS4zek01OC45IDE4OS42Yy0xLjUtMi00LjUtMy02LjQtMS41cy0zIDQuNS0xLjUgNi40czQuNSAzIDYuNCAxLjVjMi41LTEuNSAzLTQuNSAxLjUtNi40ek0zMjcuMyA2NC45YzItMS41IDUtLjUgNi40IDEuNWMxLjUgMi41IDEgNS40LTEuNSA2LjRjLTIgMS41LTUgLjUtNi40LTEuNXMtLjUtNSAxLjUtNi40ek05NS4xIDEwNWMtLjUgMS41IC41IDMgMiAzYzEuNSAuNSAzLS41IDMtMmMuNS0xLjUtLjUtMy0yLTNzLTMgLjUtMyAyem04NC43LS41Yy0zLjUtNDMuMSAzNy4xLTU0IDM3LjEtNTRjNDQuMS0xNS40IDU2IDUuOSA2Ni40IDM3LjZzMyA0Mi42LTM4LjYgNTguOXMtNjEuOS00LjUtNjQuOS00Mi42em04OS42IDE0LjloMWMyLjUgMCA1LTIgNS01YzItNi45IDEtMTQuNC0yLTIwLjhjLTEuNS0yLTQtMy41LTYuNC0yLjVjLTMgMS00LjUgNC0zLjUgNi45YzIgNC41IDMgOS45IDEuNSAxNC45Yy0uNSAzIDEuNSA1LjkgNC41IDYuNHptLTkuOS00MS42Yy0yIDAtNC0xLTUtM3MtMi0zLjUtMy01Yy0yLTItMi01LjQgMC03LjRzNS40LTIgNy40IDBjMiAyLjUgMy41IDUgNSA3LjRzLjUgNS45LTIuNSA3LjRjLS42IDAtMSAuMi0xLjMgLjNjLS4yIC4xLS40IC4yLS42IC4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPbGRSZXB1YmxpYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzUuNzYgMTAuMjNjNy41LS4zMSAxNS0uMjggMjIuNS0uMDkgMy42MS4xNCA3LjIuNCAxMC43OS43MyA0LjkyLjI3IDkuNzkgMS4wMyAxNC42NyAxLjYyIDIuOTMuNDMgNS44My45OCA4Ljc1IDEuNDYgNy45IDEuMzMgMTUuNjcgMy4yOCAyMy4zOSA1LjQgMTIuMjQgMy40NyAyNC4xOSA3LjkyIDM1Ljc2IDEzLjIxIDI2LjU2IDEyLjI0IDUwLjk0IDI5LjIxIDcxLjYzIDQ5Ljg4IDIwLjAzIDIwLjA5IDM2LjcyIDQzLjU1IDQ4Ljg5IDY5LjE5IDEuMTMgMi41OSAyLjQ0IDUuMSAzLjQ3IDcuNzQgMi44MSA2LjQzIDUuMzkgMTIuOTcgNy41OCAxOS42MyA0LjE0IDEyLjMzIDcuMzQgMjQuOTkgOS40MiAzNy44My41NyAzLjE0IDEuMDQgNi4zIDEuNCA5LjQ3LjU1IDMuODMuOTQgNy42OSAxLjE4IDExLjU2LjgzIDguMzQuODQgMTYuNzMuNzcgMjUuMS0uMDcgNC45Ny0uMjYgOS45NC0uNzUgMTQuODktLjI0IDMuMzgtLjUxIDYuNzYtLjk4IDEwLjEyLS4zOSAyLjcyLS42MyA1LjQ2LTEuMTEgOC4xNy0uOSA1LjE1LTEuNyAxMC4zMS0yLjg3IDE1LjQxLTQuMSAxOC41LTEwLjMgMzYuNTUtMTguNTEgNTMuNjMtMTUuNzcgMzIuODMtMzguODMgNjIuMTctNjcuMTIgODUuMTJhMjQ2LjUwMyAyNDYuNTAzIDAgMCAxLTU2LjkxIDM0Ljg2Yy02LjIxIDIuNjgtMTIuNDYgNS4yNS0xOC44NyA3LjQxLTMuNTEgMS4xNi03LjAxIDIuMzgtMTAuNTcgMy4zOS02LjYyIDEuODgtMTMuMjkgMy42NC0yMC4wNCA1LTQuNjYuOTEtOS4zNCAxLjczLTE0LjAzIDIuNDgtNS4yNS42Ni0xMC41IDEuNDQtMTUuNzkgMS43NC02LjY5LjY2LTEzLjQxLjg0LTIwLjEyLjgxLTYuODIuMDMtMTMuNjUtLjEyLTIwLjQ1LS43OS0zLjI5LS4yMy02LjU3LS41LTkuODMtLjk1LTIuNzItLjM5LTUuNDYtLjYzLTguMTctMS4xMS00LjEyLS43Mi04LjI1LTEuMzctMTIuMzUtMi4yMi00LjI1LS45NC04LjQ5LTEuODktMTIuNjktMy4wMi04LjYzLTIuMTctMTcuMDgtNS4wMS0yNS40MS04LjEzLTEwLjQ5LTQuMTItMjAuNzktOC43NS0zMC42NC0xNC4yNS0yLjE0LTEuMTUtNC4yOC0yLjI5LTYuMzUtMy41Ny0xMS4yMi02LjU4LTIxLjg2LTE0LjEtMzEuOTItMjIuMzQtMzQuNjgtMjguNDEtNjEuNDEtNjYuNDMtNzYuMzUtMTA4LjctMy4wOS04Ljc0LTUuNzEtMTcuNjUtNy44LTI2LjY4LTEuNDgtNi4xNi0yLjUyLTEyLjQyLTMuNTgtMTguNjYtLjQtMi4zNS0uNjEtNC43My0uOTUtNy4wOS0uNi0zLjk2LS43NS03Ljk2LTEuMTctMTEuOTQtLjgtOS40Ny0uNzEtMTguOTktLjUxLTI4LjQ5LjE0LTMuNTEuMzQtNy4wMS43LTEwLjUxLjMxLTMuMTcuNDYtNi4zNy45Mi05LjUyLjQxLTIuODEuNjUtNS42NSAxLjE2LTguNDQuNy0zLjk0IDEuMy03LjkgMi4xMi0xMS44MiAzLjQzLTE2LjUyIDguNDctMzIuNzMgMTUuMjYtNDguMTggMS4xNS0yLjkyIDIuNTktNS43MiAzLjg2LTguNTkgOC4wNS0xNi43MSAxNy45LTMyLjU2IDI5LjQ5LTQ3LjA2IDIwLTI1LjM4IDQ1LjEtNDYuNjggNzMuMjctNjIuNDcgNy41LTQuMTUgMTUuMTYtOC4wNSAyMy4wNy0xMS4zNyAxNS44Mi02Ljg4IDMyLjQxLTExLjk1IDQ5LjMxLTE1LjM4IDMuNTEtLjY3IDcuMDQtMS4yNCAxMC41Ni0xLjg1IDIuNjItLjQ3IDUuMjgtLjcgNy45MS0xLjA4IDMuNTMtLjUzIDcuMS0uNjggMTAuNjUtMS4wNCAyLjQ2LS4yNCA0LjkxLS4zNiA3LjM2LS41MW04LjY0IDI0LjQxYy05LjIzLjEtMTguNDMuOTktMjcuNTcgMi4yMy03LjMgMS4wOC0xNC41MyAyLjYtMjEuNzEgNC4zLTEzLjkxIDMuNS0yNy40OCA4LjM0LTQwLjQ2IDE0LjQyLTEwLjQ2IDQuOTktMjAuNTkgMTAuNy0zMC4xOCAxNy4yMi00LjE4IDIuOTItOC40IDUuOC0xMi4zNCA5LjAzLTUuMDggMy45Ny05Ljk4IDguMTctMTQuNjggMTIuNTktMi41MSAyLjI0LTQuODEgNC43LTcuMjIgNy4wNi0yOC4yMiAyOC43OS00OC40NCA2NS4zOS01Ny41IDEwNC42OS0yLjA0IDguNDQtMy41NCAxNy4wMi00LjQ0IDI1LjY1LTEuMSA4Ljg5LTEuNDQgMTcuODUtMS40MSAyNi44LjExIDcuMTQuMzggMTQuMjggMS4yMiAyMS4zNy42MiA3LjEyIDEuODcgMTQuMTYgMy4yIDIxLjE4IDEuMDcgNC42NSAyLjAzIDkuMzIgMy4zMyAxMy45MSA2LjI5IDIzLjM4IDE2LjUgNDUuNyAzMC4wNyA2NS43NSA4LjY0IDEyLjk4IDE4Ljc4IDI0LjkzIDI5Ljk4IDM1Ljc3IDE2LjI4IDE1LjgyIDM1LjA1IDI5LjA0IDU1LjM0IDM5LjIyIDcuMjggMy41MiAxNC42NiA2Ljg3IDIyLjI3IDkuNjMgNS4wNCAxLjc2IDEwLjA2IDMuNTcgMTUuMjIgNC45OCAxMS4yNiAzLjIzIDIyLjc3IDUuNiAzNC4zOSA3LjA2IDIuOTEuMjkgNS44MS42MSA4LjcyLjkgMTMuODIgMS4wOCAyNy43NCAxIDQxLjU0LS40MyA0LjQ1LS42IDguOTItLjk5IDEzLjM1LTEuNzggMy42My0uNjcgNy4yOC0xLjI1IDEwLjg3LTIuMSA0LjEzLS45OCA4LjI4LTEuOTEgMTIuMzYtMy4wNyAyNi41LTcuMzQgNTEuNTgtMTkuNzEgNzMuNTgtMzYuMiAxNS43OC0xMS44MiAyOS45Ni0yNS43NiA0Mi4xMi00MS4yOCAzLjI2LTQuMDIgNi4xNy04LjMxIDkuMTMtMTIuNTUgMy4zOS01LjA2IDYuNTgtMTAuMjUgOS42LTE1LjU0IDIuNC00LjQ0IDQuNzQtOC45MSA2Ljk1LTEzLjQ1IDUuNjktMTIuMDUgMTAuMjgtMjQuNjIgMTMuNzUtMzcuNDkgMi41OS0xMC4wMSA0Ljc1LTIwLjE2IDUuOS0zMC40NSAxLjc3LTEzLjQ3IDEuOTQtMjcuMSAxLjI5LTQwLjY1LS4yOS0zLjg5LS42Ny03Ljc3LTEtMTEuNjYtMi4yMy0xOS4wOC02Ljc5LTM3LjkxLTEzLjgyLTU1LjgtNS45NS0xNS4xMy0xMy41My0yOS42My0yMi42MS00My4xMy0xMi42OS0xOC44LTI4LjI0LTM1LjY4LTQ1Ljk3LTQ5LjgzLTI1LjA1LTIwLTU0LjQ3LTM0LjU1LTg1LjY1LTQyLjA4LTcuNzgtMS45My0xNS42OS0zLjM0LTIzLjYzLTQuNDUtMy45MS0uNTktNy44NS0uODItMTEuNzctMS4yNC03LjM5LS41Ny0xNC44MS0uNzItMjIuMjItLjU4ek0xMzkuMjYgODMuNTNjMTMuMy04Ljg5IDI4LjA4LTE1LjM4IDQzLjMtMjAuMTgtMy4xNyAxLjc3LTYuNDQgMy4zOC05LjUzIDUuMjktMTEuMjEgNi42OC0yMS41MiAxNC45LTMwLjM4IDI0LjQ5LTYuOCA3LjQzLTEyLjc2IDE1LjczLTE3LjAxIDI0Ljg5LTMuMjkgNi44Ni01LjY0IDE0LjE5LTYuODYgMjEuNzEtLjkzIDQuODUtMS4zIDkuODEtMS4xNyAxNC43NS4xMyAxMy42NiA0LjQ0IDI3LjA4IDExLjI5IDM4LjgyIDUuOTIgMTAuMjIgMTMuNjMgMTkuMzMgMjIuMzYgMjcuMjYgNC44NSA0LjM2IDEwLjI0IDguMDkgMTQuOTUgMTIuNiAyLjI2IDIuMTkgNC40OSA0LjQyIDYuNDMgNi45MSAyLjYyIDMuMzEgNC44OSA2Ljk5IDUuOTkgMTEuMS45IDMuMDIuNjYgNi4yLjY5IDkuMzEuMDIgNC4xLS4wNCA4LjIuMDMgMTIuMy4xNCAzLjU0LS4wMiA3LjA5LjExIDEwLjYzLjA4IDIuMzguMDIgNC43Ni4wNSA3LjE0LjE2IDUuNzcuMDYgMTEuNTMuMTUgMTcuMy4xMSAyLjkxLjAyIDUuODIuMTMgOC43NC4wMyAxLjYzLjEzIDMuMjgtLjAzIDQuOTEtLjkxLjEyLTEuODIuMTgtMi43My4xNi0xMC45OSAwLTIxLjg4LTIuNjMtMzEuOTUtNi45My02LTIuNy0xMS44MS01Ljg5LTE3LjA5LTkuODMtNS43NS00LjE5LTExLjA5LTguOTYtMTUuNzktMTQuMzEtNi41My03LjI0LTExLjk4LTE1LjM5LTE2LjYyLTIzLjk1LTEuMDctMi4wMy0yLjI0LTQuMDItMy4xOC02LjEyLTEuMTYtMi42NC0yLjYyLTUuMTQtMy42Ny03LjgyLTQuMDUtOS42OC02LjU3LTE5Ljk0LTguMDgtMzAuMzEtLjQ5LTQuNDQtMS4wOS04Ljg4LTEuMi0xMy4zNS0uNy0xNS43My44NC0zMS41NSA0LjY3LTQ2LjgyIDIuMTItOC4xNSA0Ljc3LTE2LjE4IDguMzEtMjMuODMgNi4zMi0xNC4yIDE1LjM0LTI3LjE4IDI2LjMtMzguMTkgNi4yOC02LjIgMTMuMTMtMTEuODQgMjAuNTMtMTYuNjd6bTE3NS4zNy0yMC4xMmMyLjc0Ljc0IDUuNDEgMS43NCA4LjA5IDIuNjggNi4zNiAyLjMzIDEyLjY4IDQuODQgMTguNzEgNy45NiAxMy4xMSA2LjQ0IDI1LjMxIDE0LjgxIDM1LjgyIDI0Ljk3IDEwLjIgOS45NSAxOC43NCAyMS42IDI1LjE0IDM0LjM0IDEuMjggMi43NSAyLjY0IDUuNDYgMy44MSA4LjI2IDYuMzEgMTUuMSAxMCAzMS4yNiAxMS4yMyA0Ny41Ny40MSA0LjU0LjQ0IDkuMDkuNDUgMTMuNjQuMDcgMTEuNjQtMS40OSAyMy4yNS00LjMgMzQuNTMtMS45NyA3LjI3LTQuMzUgMTQuNDktNy44NiAyMS4xOC0zLjE4IDYuNjQtNi42OCAxMy4xNi0xMC44NCAxOS4yNC02Ljk0IDEwLjQ3LTE1LjYgMTkuODctMjUuODIgMjcuMjItMTAuNDggNy42NC0yMi42NCAxMy4wMi0zNS40IDE1LjM4LTMuNTEuNjktNy4wOCAxLjA4LTEwLjY2IDEuMjEtMS44NS4wNi0zLjcyLjE2LTUuNTYtLjEtLjI4LTIuMTUgMC00LjMxLS4wMS02LjQ2LS4wMy0zLjczLjE0LTcuNDUuMS0xMS4xNy4xOS03LjAyLjAyLTE0LjA1LjIxLTIxLjA3LjAzLTIuMzgtLjAzLTQuNzYuMDMtNy4xNC4xNy01LjA3LS4wNC0xMC4xNC4xNC0xNS4yMS4xLTIuOTktLjI0LTYuMDQuNTEtOC45Ni42Ni0yLjUgMS43OC00Ljg2IDMuMDktNy4wOCA0LjQ2LTcuMzEgMTEuMDYtMTIuOTYgMTcuNjgtMTguMjYgNS4zOC00LjE4IDEwLjQ3LTguNzcgMTUuMDItMTMuODQgNy42OC04LjM3IDE0LjE3LTE3Ljg4IDE4Ljc4LTI4LjI3IDIuNS01LjkzIDQuNTItMTIuMSA1LjU1LTE4LjQ2Ljg2LTQuMzcgMS4wNi04LjgzIDEuMDEtMTMuMjctLjAyLTcuODUtMS40LTE1LjY1LTMuNjQtMjMuMTctMS43NS01LjczLTQuMjctMTEuMTgtNy4wOS0xNi40NS0zLjg3LTYuOTMtOC42NS0xMy4zMS0xMy45Ni0xOS4yLTkuOTQtMTAuODUtMjEuNzUtMTkuOTQtMzQuNi0yNy4xLTEuODUtMS4wMi0zLjg0LTEuODItNS42My0yLjk3em0tMTAwLjggNTguNDVjLjk4LTEuMTggMS45OS0yLjMzIDMuMTItMy4zOC0uNjEuOTMtMS4yNyAxLjgxLTEuOTUgMi42OC0zLjEgMy44OC01LjU0IDguMzEtNy4wMyAxMy4wNi0uODcgMy4yNy0xLjY4IDYuNi0xLjczIDEwLS4wNyAyLjUyLS4wOCA1LjA3LjMyIDcuNTcgMS4xMyA3LjYzIDQuMzMgMTQuODUgOC43NyAyMS4xMiAyIDIuNyA0LjI1IDUuMjcgNi45MiA3LjMzIDEuNjIgMS4yNyAzLjUzIDIuMDkgNS4zNCAzLjA1IDMuMTEgMS42OCA2LjMyIDMuMjMgOS4wNyA1LjQ4IDIuNjcgMi4wOSA0LjU1IDUuMzMgNC40IDguNzktLjAxIDczLjY3IDAgMTQ3LjM0LS4wMSAyMjEuMDIgMCAxLjM1LS4wOCAyLjcuMDQgNC4wNC4xMyAxLjQ4LjgyIDIuODMgMS40NyA0LjE1Ljg2IDEuNjYgMS43OCAzLjM0IDMuMTggNC42Mi44NS43NyAxLjk3IDEuNCAzLjE1IDEuMjQgMS41LS4yIDIuNjYtMS4zNSAzLjQ1LTIuNTcuOTYtMS41MSAxLjY4LTMuMTYgMi4yOC00Ljg1Ljc2LTIuMTMuNDQtNC40Mi41NC02LjYzLjE0LTQuMDMtLjAyLTguMDYuMTQtMTIuMDkuMDMtNS44OS4wMy0xMS43Ny4wNi0xNy42Ni4xNC0zLjYyLjAzLTcuMjQuMTEtMTAuODYuMTUtNC4wMy0uMDItOC4wNi4xNC0xMi4wOS4wMy01Ljk5LjAzLTExLjk4LjA3LTE3Ljk3LjE0LTMuNjIuMDItNy4yNC4xMS0xMC44Ni4xNC0zLjkzLS4wMi03Ljg2LjE0LTExLjc4LjAzLTUuOTkuMDMtMTEuOTguMDYtMTcuOTcuMTYtMy45NC0uMDEtNy44OC4xOS0xMS44Mi4yOSAxLjQ0LjEzIDIuOTIuMjIgNC4zOC4xOSAzLjYxLjQyIDcuMjMuNzYgMTAuODQuMzIgMy40NC40NCA2Ljg5Ljg2IDEwLjMyLjM3IDMuMS41MSA2LjIyLjk1IDkuMzEuNTcgNC4wOS44NyA4LjIxIDEuNTQgMTIuMjkgMS40NiA5LjA0IDIuODMgMTguMTEgNS4wOSAyNi45OSAxLjEzIDQuODIgMi40IDkuNjEgNCAxNC4zIDIuNTQgNy45IDUuNzIgMTUuNjcgMTAuMzEgMjIuNjIgMS43MyAyLjY0IDMuODcgNC45OCA2LjEgNy4yMS4yNy4yNS41NS41MS44OC43MS42LjI1IDEuMzEtLjA3IDEuNy0uNTcuNzEtLjg4IDEuMTctMS45NCAxLjctMi45MyA0LjA1LTcuOCA4LjE4LTE1LjU2IDEyLjM0LTIzLjMxLjctMS4zMSAxLjQ0LTIuNjIgMi41Ni0zLjYxIDEuNzUtMS41NyAzLjg0LTIuNjkgNS45OC0zLjYzIDIuODgtMS4yMiA1LjktMi4xOSA5LjAzLTIuNDIgNi41OC0uNjIgMTMuMTEuNzUgMTkuNTYgMS44NSAzLjY5LjU4IDcuNCAxLjE3IDExLjEzIDEuNDEgMy43NC4xIDcuNDguMDUgMTEuMjEtLjI4IDguNTUtLjkyIDE2Ljk5LTIuOTYgMjQuOTQtNi4yNSA1LjMtMi4yNCAxMC40Ni00LjgzIDE1LjMxLTcuOTMgMTEuNDYtNy4yMSAyMS40Ni0xNi41NyAzMC4wNC0yNy4wMSAxLjE3LTEuNDIgMi4yNS0yLjkgMy40Ni00LjI4LTEuMiAzLjI0LTIuNjcgNi4zNy00LjE2IDkuNDgtMS4yNSAyLjktMi44NCA1LjYxLTQuMjcgOC40Mi01LjE2IDkuNjMtMTEuMDIgMTguOTEtMTcuNzUgMjcuNTItNC4wMyA1LjIxLTguNTMgMTAuMDUtMTMuMzMgMTQuNTctNi42NCA2LjA1LTE0LjA3IDExLjM3LTIyLjQzIDE0Ljc2LTguMjEgMy4zNy0xNy4zMSA0LjYzLTI2LjA5IDMuMjktMy41Ni0uNTgtNy4wMS0xLjY5LTEwLjQxLTIuODgtMi43OS0uOTctNS4zOS0yLjM4LTguMDMtMy42OS0zLjQzLTEuNzEtNi42NC0zLjgxLTkuNzEtNi4wOCAyLjcxIDMuMDYgNS42OSA1Ljg2IDguNyA4LjYxIDQuMjcgMy43NiA4Ljc0IDcuMzEgMTMuNjMgMTAuMjMgMy45OCAyLjQ1IDguMjkgNC40IDEyLjg0IDUuNTEgMS40Ni4zNyAyLjk2LjQ2IDQuNDUuNi0xLjI1IDEuMS0yLjYzIDIuMDQtMy45OSAyLjk4LTkuNjEgNi41NC0yMC4wMSAxMS44Ni0zMC42OSAxNi40My0yMC44NiA4LjctNDMuMTcgMTMuOTctNjUuNzQgMTUuMzQtNC42Ni4yNC05LjMyLjM2LTEzLjk4LjM2LTQuOTgtLjExLTkuOTctLjEzLTE0LjkyLS42NS0xMS4yLS43Ni0yMi4yOS0yLjczLTMzLjE3LTUuNDMtMTAuMzUtMi43MS0yMC41NS02LjEyLTMwLjMtMTAuNTUtOC43MS0zLjg2LTE3LjEyLTguNDItMjQuOTktMTMuNzktMS44My0xLjMxLTMuNzQtMi41My01LjM3LTQuMDggNi42LTEuMTkgMTMuMDMtMy4zOSAxOC45OS02LjQ4IDUuNzQtMi44NiAxMC45OS02LjY2IDE1LjYzLTExLjA3IDIuMjQtMi4xOSA0LjI5LTQuNTkgNi4xOS03LjA5LTMuNDMgMi4xMy02LjkzIDQuMTUtMTAuNjIgNS43OC00LjQxIDIuMTYtOS4wNyAzLjc3LTEzLjgxIDUuMDItNS43MyAxLjUyLTExLjc0IDEuNzMtMTcuNjEgMS4xNC04LjEzLS45NS0xNS44Ni00LjI3LTIyLjUxLTguOTgtNC4zMi0yLjk0LTguMjItNi40My0xMS45Ni0xMC4wNi05LjkzLTEwLjE2LTE4LjItMjEuODEtMjUuNjYtMzMuODYtMy45NC02LjI3LTcuNTMtMTIuNzUtMTEuMTItMTkuMjItMS4wNS0yLjA0LTIuMTUtNC4wNS0zLjE4LTYuMSAyLjg1IDIuOTIgNS41NyA1Ljk3IDguNDMgOC44OCA4Ljk5IDguOTcgMTguNTYgMTcuNDQgMjkuMTYgMjQuNDggNy41NSA0LjkgMTUuNjcgOS4yMyAyNC41NiAxMS4wMyAzLjExLjczIDYuMzIuNDcgOS40Ny44MSAyLjc3LjI4IDUuNTYuMiA4LjM0LjMgNS4wNS4wNiAxMC4xMS4wNCAxNS4xNi0uMTYgMy42NS0uMTYgNy4yNy0uNjYgMTAuODktMS4wOSAyLjA3LS4yNSA0LjExLS43MSA2LjE0LTEuMiAzLjg4LS45NSA4LjExLS45NiAxMS44My42MSA0Ljc2IDEuODUgOC40NCA1LjY0IDExLjM4IDkuNzEgMi4xNiAzLjAyIDQuMDYgNi4yMiA1LjY2IDkuNTggMS4xNiAyLjQzIDIuNDYgNC43OSAzLjU1IDcuMjYgMSAyLjI0IDIuMTUgNC40MiAzLjQyIDYuNTIuNjcgMS4wMiAxLjQgMi4xNSAyLjYyIDIuNTUgMS4wNi0uNzUgMS43MS0xLjkxIDIuMjgtMy4wMyAyLjEtNC4xNiAzLjQyLTguNjUgNC44OS0xMy4wNSAyLjAyLTYuNTkgMy43OC0xMy4yNyA1LjE5LTIwLjAyIDIuMjEtOS4yNSAzLjI1LTE4LjcyIDQuNTQtMjguMTMuNTYtMy45OC44My03Ljk5IDEuMzEtMTEuOTcuODctMTAuNjQgMS45LTIxLjI3IDIuMjQtMzEuOTQuMDgtMS44Ni4yNC0zLjcxLjI1LTUuNTcuMDEtNC4zNS4yNS04LjY5LjIyLTEzLjAzLS4wMS0yLjM4LS4wMS00Ljc2IDAtNy4xMy4wNS01LjA3LS4yLTEwLjE0LS4yMi0xNS4yMS0uMi02LjYxLS43MS0xMy4yLTEuMjktMTkuNzgtLjczLTUuODgtMS41NS0xMS43OC0zLjEyLTE3LjUxLTIuMDUtNy43NS01LjU5LTE1LjAzLTkuOC0yMS44Mi0zLjE2LTUuMDctNi43OS05Ljg4LTExLjA5LTE0LjAzLTMuODgtMy44Ni04LjU4LTcuMDgtMTMuOTQtOC40NS0xLjUtLjQxLTMuMDYtLjQ1LTQuNTktLjY0LjA3LTIuOTkuNy01LjkzIDEuMjYtOC44NSAxLjU5LTcuNzEgMy44LTE1LjMgNi43Ni0yMi42IDEuNTItNC4wMyAzLjQxLTcuOSA1LjM5LTExLjcyIDMuNDUtNi41NiA3LjYyLTEyLjc5IDEyLjQ2LTE4LjQ2em0zMS4yNyAxLjdjLjM1LS4wNi43MS0uMTIgMS4wNy0uMTkuMTkgMS43OS4wOSAzLjU4LjEgNS4zN3YzOC4xM2MtLjAxIDEuNzQuMTMgMy40OS0uMTUgNS4yMi0uMzYtLjAzLS43MS0uMDUtMS4wNi0uMDUtLjk1LTMuNzUtMS43Mi03LjU1LTIuNjItMTEuMzEtLjM4LTEuNTMtLjU4LTMuMDktMS4wNy00LjU5LTEuNy0uMjQtMy40My0uMTctNS4xNS0uMi01LjA2LS4wMS0xMC4xMyAwLTE1LjE5LS4wMS0xLjY2LS4wMS0zLjMyLjA5LTQuOTgtLjAzLS4wMy0uMzktLjI2LS45MS4xNi0xLjE4IDEuMjgtLjY1IDIuNzItLjg4IDQuMDYtMS4zNSAzLjQzLTEuMTQgNi44OC0yLjE2IDEwLjMxLTMuMzEgMS4zOS0uNDggMi45LS43MiA0LjE2LTEuNTQuMDQtLjU2LjAyLTEuMTMtLjA1LTEuNjgtMS4yMy0uNTUtMi41My0uODctMy44MS0xLjI4LTMuMTMtMS4wMy02LjI5LTEuOTYtOS40MS0zLjAyLTEuNzktLjYyLTMuNjctMS01LjQxLTEuNzktLjAzLS4zNy0uMDctLjczLS4xMS0xLjA5IDUuMDktLjE5IDEwLjIuMDYgMTUuMy0uMTIgMy4zNi0uMTMgNi43My4wOCAxMC4wOS0uMDcuMTItLjM5LjI2LS43Ny4zNy0xLjE2IDEuMDgtNC45NCAyLjMzLTkuODMgMy4zOS0xNC43NXptNS45Ny0uMmMuMzYuMDUuNzIuMTIgMS4wOC4yLjk4IDMuODUgMS43MyA3Ljc2IDIuNzEgMTEuNjEuMzYgMS40Mi41NiAyLjg4IDEuMDMgNC4yNyAyLjUzLjE4IDUuMDctLjAxIDcuNjEuMDUgNS4xNi4xMiAxMC4zMy4xMiAxNS40OS4wNy43Ni0uMDEgMS41Mi4wMyAyLjI4LjA4LS4wNC4zNi0uMDcuNzItLjEgMS4wOC0xLjgyLjgzLTMuNzggMS4yNS01LjY3IDEuODktMy43MyAxLjIzLTcuNDggMi4zOS0xMS4yMiAzLjU3LS41Ny4xNy0xLjEyLjQyLTEuNjcuNjQtLjE1LjU1LS4xOCAxLjEyLS4xMiAxLjY5Ljg3LjQ4IDEuODIuODEgMi43NyAxLjA5IDQuODggMS41MiA5LjczIDMuMTQgMTQuNjMgNC42LjM4LjEzLjc4LjI3IDEuMTMuNDkuNC4yNy4yMy43OS4xNSAxLjE4LTEuNjYuMTMtMy4zMS4wMy00Ljk3LjA0LTUuMTcuMDEtMTAuMzMtLjAxLTE1LjUuMDEtMS42MS4wMy0zLjIyLS4wMi00LjgyLjIxLS41MiAxLjY3LS43MiAzLjQyLTEuMTcgNS4xMS0uOTQgMy41Ny0xLjUyIDcuMjQtMi41NCAxMC43OC0uMzYuMDEtLjcxLjAyLTEuMDYuMDYtLjI5LTEuNzMtLjE1LTMuNDgtLjE1LTUuMjJ2LTM4LjEzYy4wMi0xLjc4LS4wOC0zLjU4LjExLTUuMzd6TTY1LjA1IDE2OC4zM2MxLjEyLTIuMTUgMi4wOC00LjQgMy4zNy02LjQ2LTEuODIgNy41Ni0yLjkxIDE1LjI3LTMuNjIgMjMtLjggNy43MS0uODUgMTUuNDktLjU0IDIzLjIzIDEuMDUgMTkuOTQgNS41NCAzOS44MyAxNC4yMyA1Ny44OCAyLjk5IDUuOTkgNi4zNSAxMS44MyAxMC41IDE3LjExIDYuMTIgNy40NyAxMi41MyAxNC43NiAxOS44NCAyMS4wOSA0LjggNC4xIDkuOTkgNy43OCAxNS41NCAxMC44IDMuMjcgMS42NSA2LjUxIDMuMzkgOS45NCA0LjY4IDUuMDEgMi4wMyAxMC4xOSAzLjYxIDE1LjQyIDQuOTQgMy44My45NiA3Ljc4IDEuNDEgMTEuNTIgMi43MSA1IDEuNTcgOS40NyA0LjYxIDEzLjAzIDguNDMgNC45MyA1LjIzIDguMDkgMTEuODcgMTAuMiAxOC42Ny45OSAyLjkgMS41OSA1LjkxIDIuMTcgOC45Mi4xNS43NS4yMiAxLjUyLjE2IDIuMjktNi41IDIuNzgtMTMuMjYgNS4wNi0yMC4yNiA2LjE4LTQuMTEuNzgtOC4yOS45OS0xMi40NiAxLjA4LTEwLjI1LjI0LTIwLjQ3LTEuNzYtMzAuMTItNS4xMi0zLjc0LTEuNDItNy40OS0yLjg1LTExLjAzLTQuNzItOC4wNi0zLjg0LTE1LjY0LTguNy0yMi40Ni0xNC40Ni0yLjkyLTIuNTUtNS44My01LjEzLTguNC04LjAzLTkuMTYtOS44My0xNi4zLTIxLjQxLTIxLjc5LTMzLjY1LTIuMzktNS41NS00LjYxLTExLjE4LTYuMzctMTYuOTYtMS4xNy0zLjk0LTIuMzYtNy44OS0zLjI2LTExLjkxLS43NS0yLjk0LTEuMjItNS45NS0xLjg3LTguOTItLjQ2LTIuMTQtLjY5LTQuMzItMS4wMy02LjQ4LS44NS01LjQzLTEuMjgtMTAuOTMtMS4zMy0xNi40My4xMS02LjE4LjI1LTEyLjM3IDEuMDctMTguNS40LTIuODYuNjctNS43NCAxLjE1LTguNi45OC01LjcgMi4xNC0xMS4zNyAzLjcxLTE2LjkzIDMuMDktMTEuNjUgNy40OC0yMi45NSAxMi42OS0zMy44NHptMzYzLjczLTYuNDRjMS4xIDEuNjYgMS45MSAzLjQ4IDIuNzggNS4yNiAyLjEgNC40NSA0LjI0IDguOSA2LjAyIDEzLjQ5IDcuNjEgMTguNzYgMTIuMyAzOC43OSAxMy4wNCA1OS4wNS4wMiAxLjc2LjA3IDMuNTIuMTEgNS4yOS4xMyA5LjU3LTEuMjcgMTkuMDktMy4xOCAyOC40NS0uNzMgMy41OS0xLjU0IDcuMTctMi41OCAxMC42OS00LjA0IDE0LjcyLTEwIDI5LTE4LjQxIDQxLjc4LTguMjEgMTIuNTctMTkuMDEgMjMuNTUtMzEuODQgMzEuNDEtNS43MyAzLjU5LTExLjc5IDYuNjQtMTguMDUgOS4xOS01Ljc4IDIuMTktMTEuNzEgNC4wMy0xNy44IDUuMTEtNi40IDEuMDUtMTIuOTEgMS41Mi0xOS40IDEuMjMtNy45Mi0uNDgtMTUuNzgtMi4wNy0yMy4yMS00Ljg1LTEuOTQtLjgtMy45NC0xLjQ2LTUuODQtMi4zMy0uMjEtMS41MS4yNS0yLjk5LjUzLTQuNDYgMS4xNi01Ljc0IDMuMDMtMTEuMzYgNS43LTE2LjU4IDIuMzctNC41MSA1LjUyLTguNjUgOS40Ni0xMS45IDIuNDMtMi4wNSA1LjI0LTMuNjEgOC4xNi00LjgzIDMuNTgtMS41IDcuNDctMS45NyAxMS4yNC0yLjgzIDcuMjMtMS43MSAxNC4zNy0zLjkzIDIxLjE1LTcgMTAuMzUtNC42NSAxOS43MS0xMS4zOCAyNy42NS0xOS40NiAxLjU5LTEuNjEgMy4yMy0zLjE4IDQuNzQtNC44NyAzLjM3LTMuNzYgNi43MS03LjU3IDkuODUtMTEuNTMgNy40OC0xMC4wNyAxMi44Mi0yMS41OSAxNi43MS0zMy40OCAxLjU4LTUuMyAzLjIxLTEwLjYgNC4yMS0xNi4wNS42My0yLjg3IDEuMDQtNS43OCAxLjUyLTguNjguODctNi4wOSAxLjU5LTEyLjIyIDEuNjgtMTguMzguMTItNi42NS4xNC0xMy4zMi0uNTMtMTkuOTQtLjczLTcuOTktMS44Ny0xNS45Ni0zLjcxLTIzLjc4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPcGVuY2FydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjMuMyA0NDAuN2MwIDI1LjMtMjAuMyA0NS42LTQ1LjYgNDUuNnMtNDUuOC0yMC4zLTQ1LjgtNDUuNiAyMC42LTQ1LjggNDUuOC00NS44YzI1LjQgMCA0NS42IDIwLjUgNDUuNiA0NS44em0tMjUzLjktNDUuOGMtMjUuMyAwLTQ1LjYgMjAuNi00NS42IDQ1LjhzMjAuMyA0NS42IDQ1LjYgNDUuNiA0NS44LTIwLjMgNDUuOC00NS42LTIwLjUtNDUuOC00NS44LTQ1Ljh6bTI5MS43LTI3MEMxNTguOSAxMjQuOSA4MS45IDExMi4xIDAgMjUuN2MzNC40IDUxLjcgNTMuMyAxNDguOSAzNzMuMSAxNDQuMiAzMzMuMy01IDEzMCA4Ni4xIDcwLjggMTg4LjkgMTg2LjctMTY2LjcgMzE5LjQtMjMzLjkgMTcuMi0yMzMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT3BlbmlkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3MS41IDQzMmwtNjggMzJDODguNSA0NTMuNyAwIDM5Mi41IDAgMzE4LjJjMC03MS41IDgyLjUtMTMxIDE5MS43LTE0NC4zdjQzYy03MS41IDEyLjUtMTI0IDUzLTEyNCAxMDEuMyAwIDUxIDU4LjUgOTMuMyAxMzUuNyAxMDN2LTM0MGw2OC0zMy4ydjM4NHpNNDQ4IDI5MWwtMTMxLjMtMjguNSAzNi44LTIwLjdjLTE5LjUtMTEuNS00My41LTIwLTcwLTI0Ljh2LTQzYzQ2LjIgNS41IDg3LjcgMTkuNSAxMjAuMyAzOS4zbDM1LTE5LjhMNDQ4IDI5MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT3BlbnN1c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDcxLjEgMTAyLjdzLS4zIDE4LjMtLjMgMjAuM2MtOS4xLTMtNzQuNC0yNC4xLTEzNS43LTI2LjNjLTUxLjktMS44LTEyMi44LTQuMy0yMjMgNTcuM2MtMTkuNCAxMi40LTczLjkgNDYuMS05OS42IDEwOS43QzcgMjc3LS4xIDMwNyA3IDMzNS4xYzMuMyAxMi44IDguOSAyNC45IDE2LjUgMzUuN2MxNy40IDI1IDQ2LjYgNDEuNiA3OC4xIDQ0LjRjNDQuNCAzLjkgNzguMS0xNiA5MC01My4zYzguMi0yNS44IDAtNjMuNi0zMS41LTgyLjljLTI1LjYtMTUuNy01My4zLTEyLjEtNjkuMi0xLjZjLTEzLjkgOS4yLTIxLjggMjMuNS0yMS42IDM5LjJjLjMgMjcuOCAyNC4zIDQyLjYgNDEuNSA0Mi42YzUuNCAwIDEwLjctLjkgMTUuOC0yLjdjNi41LTEuOCAxMy4zLTYuNSAxMy4zLTE0LjljMC0xMi4xLTExLjYtMTQuOC0xNi44LTEzLjljLTIuOSAuNS00LjUgMi0xMS44IDIuNGMtMi0uMi0xMi0zLjEtMTItMTRWMzE2Yy4yLTEyLjMgMTMuMi0xOCAyNS41LTE2LjljMzIuMyAyLjggNDcuNyA0MC43IDI4LjUgNjUuN0MxMzUgMzg4LjUgNzYuNyAzODggNTMuNiAzNDQuNGMtMjYtNDkuMiAxMi43LTExMS4yIDg3LTk4LjRjMzMuMiA1LjcgODMuNiAzNS41IDEwMi40IDEwNC4zaDQ1LjljLTUuNy0xNy42LTguOS02OC4zIDQyLjctNjguM2M1Ni43IDAgNjMuOSAzOS45IDc5LjggNjguM0g0NjBjLTEyLjgtMTguMy0yMS43LTM4LjctMTguOS01NS44YzUuNi0zMy44IDM5LjctMTguNCA4Mi40LTE3LjRjNjYuNSAuNCAxMDIuMS0yNyAxMDMuMS0yOGMzLjctMy4xIDYuNS0xNS44IDctMTcuN2MxLjMtNS4xLTMuMi0yLjQtMy4yLTIuNGMtOC43IDUuMi0zMC41IDE1LjItNTAuOSAxNS42Yy0yNS4zIC41LTc2LjItMjUuNC04MS42LTI4LjJjLS4zLS40IC4xIDEuMi0xMS0yNS41Yzg4LjQgNTguMyAxMTguMyA0MC41IDE0NS4yIDIxLjdjLjgtLjYgNC4zLTIuOSAzLjYtNS43Yy0xMy44LTQ4LjEtMjIuNC02Mi43LTM0LjUtNjkuNmMtMzctMjEuNi0xMjUtMzQuNy0xMjkuMi0zNS4zYy4xLS4xLS45LS4zLS45IC43bDAgMHptMTM1LjYgNzUuNGEzNy42IDM3LjYgMCAxIDEgLTc1LjItMi42IDM3LjYgMzcuNiAwIDEgMSA3NS4yIDIuNnptLTM2LjYtMjcuOWEyNi4zIDI2LjMgMCAxIDAgLTEuNyA1Mi41IDI2LjMgMjYuMyAwIDEgMCAxLjctNTIuNXptNC4zIDI4LjhjLTE1LjQgMC0xNS40LTE1LjYgMC0xNS42czE1LjQgMTUuNiAwIDE1LjZ2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT3BlcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzEzLjkgMzIuN2MtMTcwLjIgMC0yNTIuNiAyMjMuOC0xNDcuNSAzNTUuMSAzNi41IDQ1LjQgODguNiA3NS42IDE0Ny41IDc1LjYgMzYuMyAwIDcwLjMtMTEuMSA5OS40LTMwLjQtNDMuOCAzOS4yLTEwMS45IDYzLTE2NS4zIDYzLTMuOSAwLTggMC0xMS45LS4zQzEwNC42IDQ4OS42IDAgMzgxLjEgMCAyNDggMCAxMTEgMTExIDAgMjQ4IDBoLjhjNjMuMS4zIDEyMC43IDI0LjEgMTY0LjQgNjMuMS0yOS0xOS40LTYzLjEtMzAuNC05OS4zLTMwLjR6bTEwMS44IDM5Ny43Yy00MC45IDI0LjctOTAuNyAyMy42LTEzMi01LjggNTYuMi0yMC41IDk3LjctOTEuNiA5Ny43LTE3Ni42IDAtODQuNy00MS4yLTE1NS44LTk3LjQtMTc2LjYgNDEuOC0yOS4yIDkxLjItMzAuMyAxMzIuOS01IDEwNS45IDk4LjcgMTA1LjUgMjY1LjctMS4yIDM2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT3B0aW5Nb25zdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3Mi42IDQyMS40YzUuNi05LjUgNC43LTE1LjItNS40LTExLjYtMy00LjktNy05LjUtMTEuMS0xMy44IDIuOS05LjctLjctMTQuMi0xMC44LTkuMi00LjYtMy4yLTEwLjMtNi41LTE1LjktOS4yIDAtMTUuMS0xMS42LTExLjYtMTcuNi01LjctMTAuNC0xLjUtMTguNy0uMy0yNi44IDUuNy4zLTYuNS4zLTEzIC4zLTE5LjcgMTIuNiAwIDQwLjItMTEgNDUuOS0zNi4yIDEuNC02LjggMS42LTEzLjgtLjMtMjEuOS0zLTEzLjUtMTQuMy0yMS4zLTI1LjEtMjUuNy0uOC01LjktNy42LTE0LjMtMTQuOS0xNS45cy0xMi40IDQuOS0xNC4xIDEwLjNjLTguNSAwLTE5LjIgMi44LTIxLjEgOC40LTUuNC0uNS0xMS4xLTEuNC0xNi44LTEuOSAyLjctMS45IDUuNC0zLjUgOC40LTQuNiA1LjQtOS4yIDE0LjYtMTEuNCAyNS43LTExLjZWMjU2YzE5LjUtLjUgNDMtNS45IDUzLjgtMTguMSAxMi43LTEzLjggMTQuNi0zNy4zIDEyLjQtNTUuMS0yLjQtMTcuMy05LjctMzcuNi0yNC42LTQ4LjEtOC40LTUuOS0yMS42LS44LTIyLjcgOS41LTIuMiAxOS42IDEuMiAzMC0zOC42IDI1LjEtMTAuMy0yMy44LTI0LjYtNDQuNi00Mi43LTYwQzM0MSA0OS42IDI0Mi45IDU1LjUgMTY2LjQgNzEuN2MxOS43IDQuNiA0MS4xIDguNiA1OS43IDE2LjUtMjYuMiAyLjQtNTIuNyAxMS4zLTc2LjIgMjMuMi0zMi44IDE3LTQ0IDI5LjktNTYuNyA0Mi40IDE0LjktMi4yIDI4LjktNS4xIDQzLjgtMy44LTkuNyA1LjQtMTguNCAxMi4yLTI2LjUgMjAtMjUuOC45LTIzLjgtNS4zLTI2LjItMjUuOS0xLjEtMTAuNS0xNC4zLTE1LjQtMjIuNy05LjctMjguMSAxOS45LTMzLjUgNzkuOS0xMi4yIDEwMy41IDEwLjggMTIuMiAzNS4xIDE3LjMgNTQuOSAxNy44LS4zIDEuMS0uMyAxLjktLjMgMi43IDEwLjguNSAxOS41IDIuNyAyNC42IDExLjYgMyAxLjEgNS43IDIuNyA4LjEgNC42LTUuNC41LTExLjEgMS40LTE2LjUgMS45LTMuMy02LjYtMTMuNy04LjEtMjEuMS04LjEtMS42LTUuNy02LjUtMTIuMi0xNC4xLTEwLjMtNi44IDEuOS0xNC4xIDEwLTE0LjkgMTUuOS0yMi41IDkuNS0zMC4xIDI2LjgtMjUuMSA0Ny42IDUuMyAyNC44IDMzIDM2LjIgNDUuOSAzNi4ydjE5LjdjLTYuNi01LTE0LjMtNy41LTI2LjgtNS43LTUuNS01LjUtMTcuMy0xMC4xLTE3LjMgNS43LTUuOSAyLjctMTEuNCA1LjktMTUuOSA5LjItOS44LTQuOS0xMy42LTEuNy0xMS4xIDkuMi00LjEgNC4zLTcuOCA4LjYtMTEuMSAxMy44LTEwLjItMy43LTExIDIuMi01LjQgMTEuNi0xLjEgMy41LTEuNiA3LTEuOSAxMC44LS41IDMxLjYgNDQuNiA2NCA3My41IDY1LjEgMTcuMy41IDM0LjYtOC40IDQzLTIzLjUgMTEzLjIgNC45IDIyNi43IDQuMSAzNDAuMiAwIDguMSAxNS4xIDI1LjQgMjQuMyA0Mi43IDIzLjUgMjkuMi0xLjEgNzQuMy0zMy41IDczLjUtNjUuMS4yLTMuNy0uNy03LjItMS43LTEwLjd6bS03My44LTI1NGMxLjEtMyAyLjQtOC40IDIuNC0xNC42IDAtNS45IDYuOC04LjEgMTQuMS0uOCAxMS4xIDExLjYgMTQuOSA0MC41IDEzLjggNTEuMS00LjEtMTMuNi0xMy0yOS0zMC4zLTM1Ljd6bS00LjYgNi43YzE5LjUgNi4yIDI4LjYgMjcuNiAyOS43IDQ4LjktMS4xIDIuNy0zIDUuNC00LjkgNy42LTUuNyA1LjktMTUuNCAxMC0yNi4yIDEyLjIgNC4zLTIxLjMuMy00Ny4zLTEyLjctNjMgNC45LS44IDEwLjktMi40IDE0LjEtNS43em0tMjQuMSA2LjhjMTMuOCAxMS45IDIwIDM5LjIgMTQuMSA2My41LTQuMS41LTguMS44LTExLjYuOC0xLjktMjEuOS02LjgtNDQtMTQuMy02NC42IDMuNy4zIDguMS4zIDExLjguM3pNNDcuNSAyMDNjLTEuMS0xMC41IDIuNC0zOS41IDEzLjgtNTEuMSA3LTcuMyAxNC4xLTUuMSAxNC4xLjggMCA2LjIgMS40IDExLjYgMi40IDE0LjYtMTcuMyA2LjgtMjYuMiAyMi4yLTMwLjMgMzUuN3ptOS43IDI3LjZjLTEuOS0yLjItMy41LTQuOS00LjktNy42IDEuNC0yMS4zIDEwLjMtNDIuNyAyOS43LTQ4LjkgMy4yIDMuMiA5LjIgNC45IDE0LjEgNS43LTEzIDE1LjctMTcgNDEuNi0xMi43IDYzLTEwLjgtMi4yLTIwLjUtNi0yNi4yLTEyLjJ6bTQ3LjkgMTQuNmMtNC4xIDAtOC4xLS4zLTEyLjctLjgtNC42LTE4LjYtMS45LTM4LjkgNS40LTUzdi4zbDEyLjItNS4xYzQuOS0xLjkgOS43LTMuOCAxNC45LTQuOS0xMC43IDE5LjctMTcuNCA0MS4zLTE5LjggNjMuNXptMTg0LTE2Mi43YzQxLjkgMCA3Ni4yIDM0IDc2LjIgNzUuOSAwIDQyLjItMzQuMyA3Ni4yLTc2LjIgNzYuMnMtNzYuMi0zNC03Ni4yLTc2LjJjMC00MS44IDM0LjMtNzUuOSA3Ni4yLTc1Ljl6bTExNS42IDE3NC4zYy0uMyAxNy44LTcgNDguOS0yMyA1Ny0xMy4yIDYuNi02LjUtNy41LTE2LjUtNTguMSAxMy4zLjMgMjYuNi4zIDM5LjUgMS4xem0tNTQtMS42Yy44IDQuOSAzLjggNDAuMy0xLjYgNDEuOS0xMS42IDMuNS00MCA0LjMtNTEuMS0xLjEtNC4xLTMtNC42LTM1LjktNC4zLTQxLjF2LjNjMTguOS0uMyAzOC4xLS4zIDU3IDB6TTI3OC4zIDMwOWMtMTMgMy41LTQxLjYgNC4xLTU0LjYtMS42LTYuNS0yLjctMy44LTQyLjQtMS45LTUxLjYgMTkuMi0uNSAzOC40LS41IDU3LjgtLjh2LjNjMS4xIDguMyAzLjMgNTEuMi0xLjMgNTMuN3ptLTEwNi41LTUxLjFjMTIuMi0uOCAyNC42LTEuNCAzNi44LTEuNi0yLjQgMTUuNC0zIDQzLjUtNC45IDUyLjItMS4xIDYuOC00LjMgNi44LTkuNyA0LjMtMjEuOS05LjgtMjcuNi0zNS4yLTIyLjItNTQuOXptLTM1LjQgMzEuM2M3LjgtMS4xIDE1LjctMS45IDIzLjUtMi43IDEuNiA2LjIgMy44IDExLjkgNyAxNy42IDEwIDE3IDQ0IDM1LjcgNDUuMSA3IDYuMiAxNC45IDQwLjggMTIuMiA1NC45IDEwLjggMTUuNy0xLjQgMjMuOC0xLjQgMjYuOC0xNC4zIDEyLjQgNC4zIDMwLjggNC4xIDQ0IDMgMTEuMy0uOCAyMC44LS41IDI0LjYtOC45IDEuMSA1LjEgMS45IDExLjYgNC42IDE2LjggMTAuOCAyMS4zIDM3LjMgMS40IDQ2LjgtMzEuNiA4LjYuOCAxNy42IDEuOSAyNi41IDIuNy0uNCAxLjMtMy44IDcuMyA3LjMgMTEuNi00Ny42IDQ3LTk1LjcgODcuOC0xNjMuMiAxMDctNjMuMi0yMC44LTExMi4xLTU5LjUtMTU1LjktMTA2LjUgOS42LTMuNCAxMC40LTguOCA4LTEyLjV6bS0yMS42IDE3Mi41Yy0zLjggMTcuOC0yMS45IDI5LjctMzkuNyAyOC45LTE5LjItLjgtNDYuNS0xNy01OS4yLTM2LjUtMi43LTMxLjEgNDMuOC02MS4zIDY2LjItNTQuNiAxNC45IDQuMyAyNy44IDMwLjggMzMuNSA1NCAwIDMtLjMgNS43LS44IDguMnptLTguNy02NmMtLjUtMTMuNS0uNS0yNy0uMy00MC41aC4zYzIuNy0xLjYgNS43LTMuOCA3LjgtNi41IDYuNS0xLjYgMTMtNS4xIDE1LjEtOS4yIDMuMy03LjEtNy03LjUtNS40LTEyLjQgMi43LTEuMSA1LjctMi4yIDcuOC0zLjUgMjkuMiAyOS4yIDU4LjYgNTYuNSA5Ny4zIDc3LTM2LjggMTEuMy03Mi40IDI3LjYtMTA1LjkgNDctMS4yLTE4LjYtNy43LTM1LjktMTYuNy01MS45em0zMzcuNiA2NC42Yy0xMDMgMy41LTIwNi4yIDQuMS0zMDkuNCAwIDAgLjMgMCAuMy0uMy4zdi0uM2guM2MzNS4xLTIxLjYgNzIuMi0zOS4yIDExMi40LTUwLjggMTEuNiA1LjEgMjMgOS41IDM0LjkgMTMuMiAyLjIuOCAyLjIuOCA0LjMgMCAxNC4zLTQuMSAyOC40LTkuMiA0Mi4yLTE1LjQgNDEuNSAxMS43IDc4LjggMzEuNyAxMTUuNiA1M3ptMTAuNS0xMi40Yy0zNS45LTE5LjUtNzMtMzUuOS0xMTEuOS00Ny42IDM4LjEtMjAgNzEuOS00Ny4zIDEwMy41LTc2LjcgMi4yIDEuNCA0LjYgMi40IDcuNiAzLjIgMCAuOC4zIDEuOS41IDIuNC00LjYgMi43LTcuOCA2LjItNS45IDEwLjMgMi4yIDMuOCA4LjYgNy42IDE1LjEgOC45IDIuNCAyLjcgNS4xIDUuMSA4LjEgNi44IDAgMTMuOC0uMyAyNy42LS44IDQxLjNsLjMtLjNjLTkuMyAxNS45LTE1LjUgMzctMTYuNSA1MS43em0xMDUuOSA2LjJjLTEyLjcgMTkuNS00MCAzNS43LTU5LjIgMzYuNS0xOS4zLjktNDAuNS0xMy4yLTQwLjUtMzcgNS43LTIzLjIgMTguOS00OS43IDMzLjUtNTQgMjIuNy02LjkgNjkuMiAyMy40IDY2LjIgNTQuNXpNMzcyLjkgNzUuMmMtMy44LTcyLjEtMTAwLjgtNzkuNy0xMjYtMjMuNSA0NC42LTI0LjMgOTAuMy0xNS43IDEyNiAyMy41ek03NC44IDQwNy4xYy0xNS43IDEuNi00OS41IDI1LjQtNDkuNSA0My4yIDAgMTEuNiAxNS43IDE5LjUgMzIuMiAxNC45IDEyLjItMy4yIDMxLjEtMTcuNiAzNS45LTI3LjMgNi0xMS42LTMuNy0zMi43LTE4LjYtMzAuOHptMjE1LjktMTc2LjJjMjguNiAwIDUxLjktMjEuNiA1MS45LTQ4LjQgMC0zNi4xLTQwLjUtNTguMS03Mi4yLTQ0LjMgOS41IDMgMTYuNSAxMS42IDE2LjUgMjEuNiAwIDIzLjMtMzMuMyAzMi00Ni41IDExLjMtNy4zIDM0LjEgMTkuNCA1OS44IDUwLjMgNTkuOHpNNjggNDc0LjFjLjUgNi41IDEyLjIgMTIuNyAyMS42IDkuNSA2LjgtMi43IDE0LjYtMTAuNSAxNy4zLTE2LjIgMy03LTEuMS0yMC05LjctMTguNC04LjkgMS42LTI5LjcgMTYuNy0yOS4yIDI1LjF6bTQzMy4yLTY3Yy0xNC45LTEuOS0yNC42IDE5LjItMTguOSAzMC44IDQuOSA5LjcgMjQuMSAyNC4xIDM2LjIgMjcuMyAxNi41IDQuNiAzMi4yLTMuMiAzMi4yLTE0LjkgMC0xNy44LTMzLjgtNDEuNi00OS41LTQzLjJ6TTQ3OC44IDQ0OWMtOC40LTEuNi0xMi40IDExLjMtOS41IDE4LjQgMi40IDUuNyAxMC4zIDEzLjUgMTcuMyAxNi4yIDkuMiAzLjIgMjEuMS0zIDIxLjMtOS41LjktOC40LTIwLjItMjMuNS0yOS4xLTI1LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9yY2lkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5NC43NSAxODguMTloLTQ1LjkyVjM0Mmg0Ny40N2M2Ny42MiAwIDgzLjEyLTUxLjM0IDgzLjEyLTc2LjkxIDAtNDEuNjQtMjYuNTQtNzYuOS04NC42Ny03Ni45ek0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4em0tODAuNzkgMzYwLjc2aC0yOS44NHYtMjA3LjVoMjkuODR6bS0xNC45Mi0yMzEuMTRhMTkuNTcgMTkuNTcgMCAxIDEgMTkuNTctMTkuNTcgMTkuNjQgMTkuNjQgMCAwIDEtMTkuNTcgMTkuNTd6TTMwMCAzNjloLTgxVjE2MS4yNmg4MC42Yzc2LjczIDAgMTEwLjQ0IDU0LjgzIDExMC40NCAxMDMuODVDNDEwIDMxOC4zOSAzNjguMzggMzY5IDMwMCAzNjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9zaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDI2Ni40NEMxMC4zIDEzMC42NCAxMDUuNCAzNCAyMjEuOCAxOC4zNGMxMzguOC0xOC42IDI1NS42IDc1LjggMjc4IDIwMS4xIDIxLjMgMTE4LjgtNDQgMjMwLTE1MS42IDI3NC05LjMgMy44LTE0LjQgMS43LTE4LTcuN3EtMjYuNy02OS40NS01My40LTEzOWMtMy4xLTguMS0xLTEzLjIgNy0xNi44IDI0LjItMTEgMzkuMy0yOS40IDQzLjMtNTUuOGE3MS40NyA3MS40NyAwIDAgMC02NC41LTgyLjJjLTM5LTMuNC03MS44IDIzLjctNzcuNSA1OS43LTUuMiAzMyAxMS4xIDYzLjcgNDEuOSA3Ny43IDkuNiA0LjQgMTEuNSA4LjYgNy44IDE4LjRxLTI2Ljg1IDY5LjktNTMuNyAxMzkuOWMtMi42IDYuOS04LjMgOS4zLTE1LjUgNi41LTUyLjYtMjAuMy0xMDEuNC02MS0xMzAuOC0xMTktMjQuOS00OS4yLTI1LjItODcuNy0yNi44LTEwOC43em0yMC45LTEuOWMuNCA2LjYuNiAxNC4zIDEuMyAyMi4xIDYuMyA3MS45IDQ5LjYgMTQzLjUgMTMxIDE4My4xIDMuMiAxLjUgNC40LjggNS42LTIuM3EyMi4zNS01OC42NSA0NS0xMTcuM2MxLjMtMy4zLjYtNC44LTIuNC02LjctMzEuNi0xOS45LTQ3LjMtNDguNS00NS42LTg2IDEtMjEuNiA5LjMtNDAuNSAyMy44LTU2LjMgMzAtMzIuNyA3Ny0zOS44IDExNS41LTE3LjZhOTEuNjQgOTEuNjQgMCAwIDEgNDUuMiA5MC40Yy0zLjYgMzAuNi0xOS4zIDUzLjktNDUuNyA2OS44LTIuNyAxLjYtMy41IDIuOS0yLjMgNnEyMi44IDU4LjggNDUuMiAxMTcuN2MxLjIgMy4xIDIuNCAzLjggNS42IDIuMyAzNS41LTE2LjYgNjUuMi00MC4zIDg4LjEtNzIgMzQuOC00OC4yIDQ5LjEtMTAxLjkgNDIuMy0xNjEtMTMuNy0xMTcuNS0xMTkuNC0yMTQuOC0yNTUuNS0xOTgtMTA2LjEgMTMtMTk1LjMgMTAyLjUtMTk3LjEgMjI1Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhZGxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTcuOSAwTDI5OCAuMDAxQzMwNS42IC4xMDc4IDMxMi40IDQuNzIgMzE1LjUgMTEuNzhMNDQ3LjUgMzIwLjNMNDQ3LjggMzIwLjJMNDQ4IDMyMC42TDQ0NS4yIDMzMC42TDQwMi4zIDQ4OC42QzM5OC42IDUwNC44IDM4Mi42IDUxNC45IDM2Ni41IDUxMS4yTDI5OC4xIDQ5NS42TDIyOS42IDUxMS4yQzIxMy41IDUxNC45IDE5Ny41IDUwNC44IDE5My44IDQ4OC42TDE1MC45IDMzMC42TDE0OC4yIDMyMC42TDE0OC4zIDMyMC4yTDI4MC40IDExLjc4QzI4My40IDQuNzk3IDI5MC4zIC4xODM3IDI5Ny45IC4wMDA2TDI5Ny45IDB6TTE2MC4xIDMyMi4xTDI5MS4xIDM2MS4yTDI5OCA0ODMuN0wzMDUuOSAzNjIuMkw0MzYuNSAzMjIuOUw0MzYuNyAzMjIuOEwzMDUuNyAzNDcuOUwyOTcuMSAyNy43MkwyOTEuOSAzNDcuOUwxNjAuMSAzMjIuMXpNNDI2IDIyMi42TDUyMC40IDE4MS42SDU5NC4yTDQzNy4yIDQyOS4yTDQ2OC44IDMyMC4yTDQyNiAyMjIuNnpNNTk3LjUgMTgxLjRMNjM4LjkgMjU3LjZDNjQyLjkgMjY1LjEgNjM1IDI3My41IDYyNy4zIDI2OS44TDU3OS43IDI0Ny4xTDU5Ny41IDE4MS40ek0xMjcuMyAzMTguNUwxNTguNyA0MzBMMS42MSAxNTQuNUMtNC4yOTIgMTQ0LjEgNy4xMjggMTMyLjUgMTcuNTUgMTM4LjNMMTY5LjQgMjIyLjVMMTI3LjMgMzE4LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhZ2U0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA1MDRDMTExIDUwNCAwIDM5MyAwIDI1NlMxMTEgOCAyNDggOGMyMC45IDAgNDEuMyAyLjYgNjAuNyA3LjVMNDIuMyAzOTJIMjQ4djExMnptMC0xNDMuNlYxNDYuOEw5OC42IDM2MC40SDI0OHptOTYgMzEuNnY5Mi43YzQ1LjctMTkuMiA4NC41LTUxLjcgMTExLjQtOTIuN0gzNDR6bTU3LjQtMTM4LjJsLTIxLjIgOC40IDIxLjIgOC4zdi0xNi43em0tMjAuMyA1NC41Yy02LjcgMC04IDYuMy04IDEyLjl2Ny43aDE2LjJ2LTEwYzAtNS45LTIuMy0xMC42LTguMi0xMC42ek00OTYgMjU2YzAgMzcuMy04LjIgNzIuNy0yMyAxMDQuNEgzNDRWMjcuM0M0MzMuMyA2NC44IDQ5NiAxNTMuMSA0OTYgMjU2ek0zNjAuNCAxNDMuNmg2OC4yVjk2aC0xMy45djMyLjZoLTEzLjlWOTloLTEzLjl2MjkuNmgtMTIuN1Y5NmgtMTMuOXY0Ny42em02OC4xIDE4NS4zSDQwMnYtMTFjMC0xNS40LTUuNi0yNS4yLTIwLjktMjUuMi0xNS40IDAtMjAuNyAxMC42LTIwLjcgMjUuOXYyNS4zaDY4LjJ2LTE1em0wLTEwM2wtNjguMiAyOS43VjI2OGw2OC4yIDI5LjV2LTE2LjZsLTE0LjQtNS43di0yNi41bDE0LjQtNS45di0xNi45em0tNC44LTY4LjVoLTM1LjZWMTg0SDQwMnYtMTIuMmgxMWM4LjYgMTUuOCAxLjMgMzUuMy0xOC42IDM1LjMtMjIuNSAwLTI4LjMtMjUuMy0xNS41LTM3LjdsLTExLjYtMTAuNmMtMTYuMiAxNy41LTEyLjIgNjMuOSAyNy4xIDYzLjkgMzQgMCA0NC43LTM1LjkgMjkuMy02NS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYWdlbGluZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDMxMi43Yy01NS4xIDEzNi43LTE4Ny4xIDU0LTE4Ny4xIDU0LTQwLjUgODEuOC0xMDcuNCAxMzQuNC0xODQuNiAxMzQuNy0xNi4xIDAtMTYuNi0yNC40IDAtMjQuNCA2NC40LS4zIDEyMC41LTQyLjcgMTU3LjItMTEwLjEtNDEuMSAxNS45LTExOC42IDI3LjktMTYxLjYtODIuMiAxMDktNDQuOSAxNTkuMSAxMS4yIDE3OC4zIDQ1LjUgOS45LTI0LjQgMTctNTAuOSAyMS42LTc5LjcgMCAwLTEzOS43IDIxLjktMTQ5LjUtOTguMSAxMTkuMS00Ny45IDE1Mi42IDc2LjcgMTUyLjYgNzYuNyAxLjYtMTYuNyAzLjMtNTIuNiAzLjMtNTMuNCAwIDAtMTA2LjMtNzMuNy0zOC4xLTE2NS4yIDEyNC42IDQzIDYxLjQgMTYyLjQgNjEuNCAxNjIuNC41IDEuNi41IDIzLjggMCAzMy40IDAgMCA0NS4yLTg5IDEzNi40LTU3LjUtNC4yIDEzNC0xNDEuOSAxMDYuNC0xNDEuOSAxMDYuNC00LjQgMjcuNC0xMS4yIDUzLjQtMjAgNzcuNSAwIDAgODMtOTEuOCAxNzItMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhbGZlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQuOSAxOTMuOWMwLTQ3LjQtNTUuMi00NC4yLTk1LjQtMjkuOC0xLjMgMzkuNC0yLjUgODAuNy0zIDExOS44LjcgMi44IDIuNiA2LjIgMTUuMSA2LjIgMzYuOCAwIDgzLjQtNDIuOCA4My4zLTk2LjJ6bS0xOTQuNSA3Mi4yYy4yIDAgNi41LTIuNyAxMS4yLTIuNyAyNi42IDAgMjAuNyA0NC4xLTE0LjQgNDQuMS0yMS41IDAtMzcuMS0xOC4xLTM3LjEtNDMgMC00MiA0Mi45LTk1LjYgMTAwLjctMTI2LjUgMS0xMi40IDMtMjIgMTAuNS0yOC4yIDExLjItOSAyNi42LTMuNSAyOS41IDExLjEgNzIuMi0yMi4yIDEzNS4yIDEgMTM1LjIgNzIgMCA3Ny45LTc5LjMgMTUyLjYtMTQwLjEgMTM4LjItLjEgMzkuNC45IDc0LjQgMi43IDEwMHYuMmMuMiAzLjQuNiAxMi41LTUuMyAxOS4xLTkuNiAxMC42LTMzLjQgMTAtMzYuNC0yMi4zLTQuMS00NC40LjItMjA2LjEgMS40LTI0Mi41LTIxLjUgMTUtNTguNSA1MC4zLTU4LjUgNzUuOS4yIDIuNS40IDQgLjYgNC42ek04IDE4MS4xcy0uMSAzNy40IDM4LjQgMzcuNGgzMGwyMi40IDIxNy4yczAgNDQuMyA0NC43IDQ0LjNoMjg4LjlzNDQuNy0uNCA0NC43LTQ0LjNsMjIuNC0yMTcuMmgzMHMzOC40IDEuMiAzOC40LTM3LjRjMCAwIC4xLTM3LjQtMzguNC0zNy40aC0zMC4xYy03LjMtMjUuNi0zMC4yLTc0LjMtMTE5LjQtNzQuM2gtMjhWNTAuM3MtMi43LTE4LjQtMjEuMS0xOC40aC04NS44cy0yMS4xIDAtMjEuMSAxOC40djE5LjFoLTI4LjFzLTEwNSA0LjItMTIwLjUgNzQuM2gtMjlTOCAxNDIuNSA4IDE4MS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXRyZW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4OS43IDE1My44Yy0uMS02NS40LTUxLTExOS0xMTAuNy0xMzguM0MzMDQuOC04LjUgMjA3LTUgMTM2LjEgMjguNEM1MC4zIDY4LjkgMjMuMyAxNTcuNyAyMi4zIDI0Ni4yQzIxLjUgMzE5IDI4LjcgNTEwLjYgMTM2LjkgNTEyYzgwLjMgMSA5Mi4zLTEwMi41IDEyOS41LTE1Mi4zYzI2LjQtMzUuNSA2MC41LTQ1LjUgMTAyLjQtNTUuOWM3Mi0xNy44IDEyMS4xLTc0LjcgMTIxLTE1MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGF5cGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMS40IDI5NS45Yy0zLjUgMTkuMi0xNy40IDEwOC43LTIxLjUgMTM0LS4zIDEuOC0xIDIuNS0zIDIuNUgxMi4zYy03LjYgMC0xMy4xLTYuNi0xMi4xLTEzLjlMNTguOCA0Ni42YzEuNS05LjYgMTAuMS0xNi45IDIwLTE2LjkgMTUyLjMgMCAxNjUuMS0zLjcgMjA0IDExLjQgNjAuMSAyMy4zIDY1LjYgNzkuNSA0NCAxNDAuMy0yMS41IDYyLjYtNzIuNSA4OS41LTE0MC4xIDkwLjMtNDMuNC43LTY5LjUtNy03NS4zIDI0LjJ6TTM1Ny4xIDE1MmMtMS44LTEuMy0yLjUtMS44LTMgMS4zLTIgMTEuNC01LjEgMjIuNS04LjggMzMuNi0zOS45IDExMy44LTE1MC41IDEwMy45LTIwNC41IDEwMy45LTYuMSAwLTEwLjEgMy4zLTEwLjkgOS40LTIyLjYgMTQwLjQtMjcuMSAxNjkuNy0yNy4xIDE2OS43LTEgNy4xIDMuNSAxMi45IDEwLjYgMTIuOWg2My41YzguNiAwIDE1LjctNi4zIDE3LjQtMTQuOS43LTUuNC0xLjEgNi4xIDE0LjQtOTEuMyA0LjYtMjIgMTQuMy0xOS43IDI5LjMtMTkuNyA3MSAwIDEyNi40LTI4LjggMTQyLjktMTEyLjMgNi41LTM0LjggNC42LTcxLjQtMjMuOC05Mi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJieXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwNS4zMTQsMjg0LjU3OEgyNDYuNlYzODMuM2g1OC43MTFxMjQuNDIzLDAsMzguMTkzLTEzLjc3dDEzLjc3LTM2LjExcTAtMjEuODI2LTE0LjAzMi0zNS4zMzVUMzA1LjMxNCwyODQuNTc4Wk0xNDkuNDM1LDEyOC43SDkwLjcyNHY5OC43MjNoNTguNzExcTI0LjQyLDAsMzguMTktMTMuNzczdDEzLjc3LTM2LjEwN3EwLTIxLjgyNi0xNC4wMjktMzUuMzM4VDE0OS40MzUsMTI4LjdaTTM2Ni42NDcsMzJIODEuMzUzQTgxLjQ0NSw4MS40NDUsMCwwLDAsMCwxMTMuMzUyVjM5OC42NDdBODEuNDQ1LDgxLjQ0NSwwLDAsMCw4MS4zNTMsNDgwSDM2Ni42NDdBODEuNDQ1LDgxLjQ0NSwwLDAsMCw0NDgsMzk4LjY0N1YxMTMuMzUyQTgxLjQ0NSw4MS40NDUsMCwwLDAsMzY2LjY0NywzMlptNjMuNjM1LDM2Ni42NDdhNjMuNzA2LDYzLjcwNiwwLDAsMS02My42MzUsNjMuNjM1SDgxLjM1M2E2My43MDYsNjMuNzA2LDAsMCwxLTYzLjYzNS02My42MzVWMTEzLjM1MkE2My43MDYsNjMuNzA2LDAsMCwxLDgxLjM1Myw0OS43MThIMzY2LjY0N2E2My43MDYsNjMuNzA2LDAsMCwxLDYzLjYzNSw2My42MzRaTTMwNS4zMTQsMTI4LjdIMjQ2LjZ2OTguNzIzaDU4LjcxMXEyNC40MjMsMCwzOC4xOTMtMTMuNzczdDEzLjc3LTM2LjEwN3EwLTIxLjgyNi0xNC4wMzItMzUuMzM4VDMwNS4zMTQsMTI4LjdaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcmlzY29wZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzAgNjMuNkMzMzEuNCAyMi42IDI4MC41IDAgMjI2LjYgMCAxMTEuOSAwIDE4LjUgOTYuMiAxOC41IDIxNC40YzAgNzUuMSA1Ny44IDE1OS44IDgyLjcgMTkyLjdDMTM3LjggNDU1LjUgMTkyLjYgNTEyIDIyNi42IDUxMmM0MS42IDAgMTEyLjktOTQuMiAxMjAuOS0xMDUgMjQuNi0zMy4xIDgyLTExOC4zIDgyLTE5Mi42IDAtNTYuNS0yMS4xLTExMC4xLTU5LjUtMTUwLjh6TTIyNi42IDQ5My45Yy00Mi41IDAtMTkwLTE2Ny4zLTE5MC0yNzkuNCAwLTEwNy40IDgzLjktMTk2LjMgMTkwLTE5Ni4zIDEwMC44IDAgMTg0LjcgODkgMTg0LjcgMTk2LjMuMSAxMTIuMS0xNDcuNCAyNzkuNC0xODQuNyAyNzkuNHpNMzM4IDIwNi44YzAgNTkuMS01MS4xIDEwOS43LTExMC44IDEwOS43LTEwMC42IDAtMTUwLjctMTA4LjItOTIuOS0xODEuOHYuNGMwIDI0LjUgMjAuMSA0NC40IDQ0LjggNDQuNCAyNC43IDAgNDQuOC0xOS45IDQ0LjgtNDQuNCAwLTE4LjItMTEuMS0zMy44LTI2LjktNDAuNyA3Ni42LTE5LjIgMTQxIDM5LjMgMTQxIDExMi40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaGFicmljYXRvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjMgMjYyLjFsLS4xLTEzczIxLjctMTkuOCAyMS4xLTIxLjJsLTkuNS0yMGMtLjYtMS40LTI5LjUtLjUtMjkuNS0uNWwtOS40LTkuM3MuMi0yOC41LTEuMi0yOS4xbC0yMC4xLTkuMmMtMS40LS42LTIwLjcgMjEtMjAuNyAyMWwtMTMuMS0uMnMtMjAuNS0yMS40LTIxLjktMjAuOGwtMjAgOC4zYy0xLjQuNS4yIDI4LjkuMiAyOC45bC05LjEgOS4xcy0yOS4yLS45LTI5LjcuNGwtOC4xIDE5LjhjLS42IDEuNCAyMSAyMSAyMSAyMWwuMSAxMi45cy0yMS43IDE5LjgtMjEuMSAyMS4ybDkuNSAyMGMuNiAxLjQgMjkuNS41IDI5LjUuNWw5LjQgOS4zcy0uMiAzMS44IDEuMiAzMi4zbDIwLjEgOC4zYzEuNC42IDIwLjctMjMuNSAyMC43LTIzLjVsMTMuMS4yczIwLjUgMjMuOCAyMS44IDIzLjNsMjAtNy41YzEuNC0uNi0uMi0zMi4xLS4yLTMyLjFsOS4xLTkuMXMyOS4yLjkgMjkuNy0uNWw4LjEtMTkuOGMuNy0xLjEtMjAuOS0yMC43LTIwLjktMjAuN3ptLTQ0LjktOC43Yy43IDE3LjEtMTIuOCAzMS42LTMwLjEgMzIuNC0xNy4zLjgtMzIuMS0xMi41LTMyLjgtMjkuNi0uNy0xNy4xIDEyLjgtMzEuNiAzMC4xLTMyLjMgMTcuMy0uOCAzMi4xIDEyLjUgMzIuOCAyOS41em0yMDEuMi0zNy45bC05Ny05Ny0uMS4xYy03NS4xLTczLjMtMTk1LjQtNzIuOC0yNjkuOCAxLjYtNTAuOSA1MS0yNy44IDI3LjktOTUuNyA5NS4zLTIyLjMgMjIuMy0yMi4zIDU4LjcgMCA4MSA2OS45IDY5LjQgNDYuNCA0NiA5Ny40IDk3bC4xLS4xYzc1LjEgNzMuMyAxOTUuNCA3Mi45IDI2OS44LTEuNiA1MS01MC45IDI3LjktMjcuOSA5NS4zLTk1LjMgMjIuMy0yMi4zIDIyLjMtNTguNyAwLTgxek0xNDAuNCAzNjMuOGMtNTkuNi01OS41LTU5LjYtMTU2IDAtMjE1LjUgNTkuNS01OS42IDE1Ni01OS41IDIxNS42IDAgNTkuNSA1OS41IDU5LjYgMTU2IDAgMjE1LjYtNTkuNiA1OS41LTE1NiA1OS40LTIxNS42LS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaG9lbml4RnJhbWV3b3JrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxMi45IDM0NC4zYzMuOC0uMSAyMi44LTEuNCAyNS42LTIuMi0yLjQtMi42LTQzLjYtMS02OC00OS42LTQuMy04LjYtNy41LTE3LjYtNi40LTI3LjYgMi45LTI1LjUgMzIuOS0zMCA1Mi0xOC41IDM2IDIxLjYgNjMuMyA5MS4zIDExMy43IDk3LjUgMzcgNC41IDg0LjYtMTcgMTA4LjItNDUuNC0uNi0uMS0uOC0uMi0xLS4xLS40LjEtLjguMi0xLjEuMy0zMy4zIDEyLjEtOTQuMyA5LjctMTM0LjctMTQuOC0zNy42LTIyLjgtNTMuMS01OC43LTUxLjgtNzQuNiAxLjgtMjEuMyAyMi45LTIzLjIgMzUuOS0xOS42IDE0LjQgMy45IDI0LjQgMTcuNiAzOC45IDI3LjQgMTUuNiAxMC40IDMyLjkgMTMuNyA1MS4zIDEwLjMgMTQuOS0yLjcgMzQuNC0xMi4zIDM2LjUtMTQuNS0xLjEtLjEtMS44LS4xLTIuNS0uMi02LjItLjYtMTIuNC0uOC0xOC41LTEuN0MyNzkuOCAxOTQuNSAyNjIuMSA0Ny40IDEzOC41IDM3LjkgOTQuMiAzNC41IDM5LjEgNDYgMi4yIDcyLjljLS44LjYtMS41IDEuMi0yLjIgMS44LjEuMi4xLjMuMi41LjggMCAxLjYtLjEgMi40LS4yIDYuMy0xIDEyLjUtLjggMTguNy4zIDIzLjggNC4zIDQ3LjcgMjMuMSA1NS45IDc2LjUgNS4zIDM0LjMtLjcgNTAuOCA4IDg2LjEgMTkgNzcuMSA5MSAxMDcuNiAxMjcuNyAxMDYuNHpNNzUuMyA2NC45Yy0uOS0xLS45LTEuMi0xLjMtMiAxMi4xLTIuNiAyNC4yLTQuMSAzNi42LTQuOC0xLjEgMTQuNy0yMi4yIDIxLjMtMzUuMyA2Ljh6bTE5Ni45IDM1MC41Yy00Mi44IDEuMi05Mi0yNi43LTEyMy41LTYxLjQtNC42LTUtMTYuOC0yMC4yLTE4LjYtMjMuNGwuNC0uNGM2LjYgNC4xIDI1LjcgMTguNiA1NC44IDI3IDI0LjIgNyA0OC4xIDYuMyA3MS42LTMuMyAyMi43LTkuMyA0MS0uNSA0My4xIDIuOS0xOC41IDMuOC0yMC4xIDQuNC0yNCA3LjktNS4xIDQuNC00LjYgMTEuNyA3IDE3LjIgMjYuMiAxMi40IDYzLTIuOCA5Ny4yIDI1LjQgMi40IDIgOC4xIDcuOCAxMC4xIDEwLjctLjEuMi0uMy4zLS40LjUtNC44LTEuNS0xNi40LTcuNS00MC4yLTkuMy0yNC43LTItNDYuMyA1LjMtNzcuNSA2LjJ6bTE3NC44LTI1MmMxNi40LTUuMiA0MS4zLTEzLjQgNjYuNS0zLjMgMTYuMSA2LjUgMjYuMiAxOC43IDMyLjEgMzQuNiAzLjUgOS40IDUuMSAxOS43IDUuMSAyOC43LS4yIDAtLjQgMC0uNi4xLS4yLS40LS40LS45LS41LTEuMy01LTIyLTI5LjktNDMuOC02Ny42LTI5LjktNTAuMiAxOC42LTEzMC40IDkuNy0xNzYuOS00OC0uNy0uOS0yLjQtMS43LTEuMy0zLjIuMS0uMiAyLjEuNiAzIDEuMyAxOC4xIDEzLjQgMzguMyAyMS45IDYwLjMgMjYuMiAzMC41IDYuMSA1NC42IDIuOSA3OS45LTUuMnptMTAyLjcgMTE3LjVjLTMyLjQuMi0zMy44IDUwLjEtMTAzLjYgNjQuNC0xOC4yIDMuNy0zOC43IDQuNi00NC45IDQuMnYtLjRjMi44LTEuNSAxNC43LTIuNiAyOS43LTE2LjYgNy45LTcuMyAxNS4zLTE1LjEgMjIuOC0yMi45IDE5LjUtMjAuMiA0MS40LTQyLjIgODEuOS0zOSAyMy4xIDEuOCAyOS4zIDguMiAzNi4xIDEyLjcuMy4yLjQuNS43LjktLjUgMC0uNy4xLS45IDAtNy0yLjctMTQuMy0zLjMtMjEuOC0zLjN6bS0xMi4zLTI0LjFjLS4xLjItLjEuNC0uMi42LTI4LjktNC40LTQ4LTcuOS02OC41IDQtMTcgOS45LTMxLjQgMjAuNS02MiAyNC40LTI3LjEgMy40LTQ1LjEgMi40LTY2LjEtOC0uMy0uMi0uNi0uNC0xLS42IDAtLjIuMS0uMy4xLS41IDI0LjkgMy44IDM2LjQgNS4xIDU1LjUtNS44IDIyLjMtMTIuOSA0MC4xLTI2LjYgNzEuMy0zMSAyOS42LTQuMSA1MS4zIDIuNSA3MC45IDE2Ljl6TTI2OC42IDk3LjNjLS42LS42LTEuMS0xLjItMi4xLTIuMyA3LjYgMCAyOS43LTEuMiA1My40IDguNCAxOS43IDggMzIuMiAyMSA1MC4yIDMyLjkgMTEuMSA3LjMgMjMuNCA5LjMgMzYuNCA4LjEgNC4zLS40IDguNS0xLjIgMTIuOC0xLjcuNC0uMS45IDAgMS41LjMtLjYuNC0xLjIuOS0xLjggMS4yLTguMSA0LTE2LjcgNi4zLTI1LjYgNy4xLTI2LjEgMi42LTUwLjMtMy43LTczLjQtMTUuNC0xOS4zLTkuOS0zNi40LTIyLjktNTEuNC0zOC42ek02NDAgMzM1LjdjLTMuNSAzLjEtMjIuNyAxMS42LTQyLjcgNS4zLTEyLjMtMy45LTE5LjUtMTQuOS0zMS42LTI0LjEtMTAtNy42LTIwLjktNy45LTI4LjEtOC40LjYtLjguOS0xLjIgMS4yLTEuNCAxNC44LTkuMiAzMC41LTEyLjIgNDcuMy02LjUgMTIuNSA0LjIgMTkuMiAxMy41IDMwLjQgMjQuMiAxMC44IDEwLjQgMjEgOS45IDIzLjEgMTAuNS4xLS4xLjIgMCAuNC40em0tMjEyLjUgMTM3YzIuMiAxLjIgMS42IDEuNSAxLjUgMi0xOC41LTEuNC0zMy45LTcuNi00Ni44LTIyLjItMjEuOC0yNC43LTQxLjctMjcuOS00OC42LTI5LjcuNS0uMi44LS40IDEuMS0uNCAxMy4xLjEgMjYuMS43IDM4LjkgMy45IDI1LjMgNi40IDM1IDI1LjQgNDEuNiAzNS4zIDMuMiA0LjggNy4zIDguMyAxMi4zIDExLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBob2VuaXhTcXVhZHJvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiA2My4zOEMxNDIuNDkgMjcuMjUgMjAxLjU1IDcuMzEgMjYwLjUxIDguODFjMjkuNTgtLjM4IDU5LjExIDUuMzcgODYuOTEgMTUuMzMtMjQuMTMtNC42My00OS02LjM0LTczLjM4LTIuNDVDMjMxLjE3IDI3IDE5MSA0OC44NCAxNjIuMjEgODAuODdjNS42Ny0xIDEwLjc4LTMuNjcgMTYtNS44NiAxOC4xNC03Ljg3IDM3LjQ5LTEzLjI2IDU3LjIzLTE0LjgzIDE5Ljc0LTIuMTMgMzkuNjQtLjQzIDU5LjI4IDEuOTItMTQuNDIgMi43OS0yOS4xMiA0LjU3LTQzIDkuNTktMzQuNDMgMTEuMDctNjUuMjcgMzMuMTYtODYuMyA2Mi42My0xMy44IDE5LjcxLTIzLjYzIDQyLjg2LTI0LjY3IDY3LjEzLS4zNSAxNi40OSA1LjIyIDM0LjgxIDE5LjgzIDQ0YTUzLjI3IDUzLjI3IDAgMCAwIDM3LjUyIDYuNzRjMTUuNDUtMi40NiAzMC4wNy04LjY0IDQzLjYtMTYuMzMgMTEuNTItNi44MiAyMi42Ny0xNC41NSAzMi0yNC4yNSAzLjc5LTMuMjIgMi41My04LjQ1IDIuNjItMTIuNzktMi4xMi0uMzQtNC4zOC0xLjExLTYuMy4zYTIwMyAyMDMgMCAwIDEtMzUuODIgMTUuMzdjLTIwIDYuMTctNDIuMTYgOC40Ni02Mi4xLjc4IDEyLjc5IDEuNzMgMjYuMDYuMzEgMzcuNzQtNS40NCAyMC4yMy05LjcyIDM2LjgxLTI1LjIgNTQuNDQtMzguNzdhNTI2LjU3IDUyNi41NyAwIDAgMSA4OC45LTU1LjMxYzI1LjcxLTEyIDUyLjk0LTIyLjc4IDgxLjU3LTI0LjEyLTE1LjYzIDEzLjcyLTMyLjE1IDI2LjUyLTQ2Ljc4IDQxLjM4LTE0LjUxIDE0LTI3LjQ2IDI5LjUtNDAuMTEgNDUuMTgtMy41MiA0LjYtOC45NSA2Ljk0LTEzLjU4IDEwLjE2YTE1MC43IDE1MC43IDAgMCAwLTUxLjg5IDYwLjFjLTkuMzMgMTkuNjgtMTQuNSA0MS44NS0xMS43NyA2My42NSAxLjk0IDEzLjY5IDguNzEgMjcuNTkgMjAuOSAzNC45MSAxMi45IDggMjkuMDUgOC4wNyA0My40OCA1LjEgMzIuOC03LjQ1IDYxLjQzLTI4Ljg5IDgxLTU1Ljg0IDIwLjQ0LTI3LjUyIDMwLjUyLTYyLjIgMjkuMTYtOTYuMzUtLjUyLTcuNS0xLjU3LTE1LTEuNjYtMjIuNDkgOCAxOS40OCAxNC44MiAzOS43MSAxNi42NSA2MC44MyAyIDE0LjI4Ljc1IDI4Ljc2LTEuNjIgNDIuOS0xLjkxIDExLTUuNjcgMjEuNTEtNy43OCAzMi40M2ExNjUgMTY1IDAgMCAwIDM5LjM0LTgxLjA3IDE4My42NCAxODMuNjQgMCAwIDAtMTQuMjEtMTA0LjY0YzIwLjc4IDMyIDMyLjM0IDY5LjU4IDM1LjcxIDEwNy40OC40OSAxMi43My40OSAyNS41MSAwIDM4LjIzQTI0My4yMSAyNDMuMjEgMCAwIDEgNDgyIDM3MS4zNGMtMjYuMTIgNDcuMzQtNjggODUuNjMtMTE3LjE5IDEwOC03OC4yOSAzNi4yMy0xNzQuNjggMzEuMzItMjQ4LTE0LjY4QTI0OC4zNCAyNDguMzQgMCAwIDEgMjUuMzYgMzY2IDIzOC4zNCAyMzguMzQgMCAwIDEgMCAyNzMuMDh2LTMxLjM0QzMuOTMgMTcyIDQwLjg3IDEwNS44MiA5NiA2My4zOG0yMjIgODAuMzNhNzkuMTMgNzkuMTMgMCAwIDAgMTYtNC40OGM1LTEuNzcgOS4yNC01Ljk0IDEwLjMyLTExLjIyLTguOTYgNC45OS0xNy45OCA5LjkyLTI2LjMyIDE1Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBocCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMTA0LjVjMTcxLjQgMCAzMDMuMiA3Mi4yIDMwMy4yIDE1MS41UzQ5MS4zIDQwNy41IDMyMCA0MDcuNWMtMTcxLjQgMC0zMDMuMi03Mi4yLTMwMy4yLTE1MS41UzE0OC43IDEwNC41IDMyMCAxMDQuNW0wLTE2LjhDMTQzLjMgODcuNyAwIDE2MyAwIDI1NnMxNDMuMyAxNjguMyAzMjAgMTY4LjNTNjQwIDM0OSA2NDAgMjU2IDQ5Ni43IDg3LjcgMzIwIDg3Ljd6TTIxOC4yIDI0Mi41Yy03LjkgNDAuNS0zNS44IDM2LjMtNzAuMSAzNi4zbDEzLjctNzAuNmMzOCAwIDYzLjgtNC4xIDU2LjQgMzQuM3pNOTcuNCAzNTAuM2gzNi43bDguNy00NC44YzQxLjEgMCA2Ni42IDMgOTAuMi0xOS4xIDI2LjEtMjQgMzIuOS02Ni43IDE0LjMtODguMS05LjctMTEuMi0yNS4zLTE2LjctNDYuNS0xNi43aC03MC43TDk3LjQgMzUwLjN6bTE4NS43LTIxMy42aDM2LjVsLTguNyA0NC44YzMxLjUgMCA2MC43LTIuMyA3NC44IDEwLjcgMTQuOCAxMy42IDcuNyAzMS04LjMgMTEzLjFoLTM3YzE1LjQtNzkuNCAxOC4zLTg2IDEyLjctOTItNS40LTUuOC0xNy43LTQuNi00Ny40LTQuNmwtMTguOCA5Ni42aC0zNi41bDMyLjctMTY4LjZ6TTUwNSAyNDIuNWMtOCA0MS4xLTM2LjcgMzYuMy03MC4xIDM2LjNsMTMuNy03MC42YzM4LjIgMCA2My44LTQuMSA1Ni40IDM0LjN6TTM4NC4yIDM1MC4zSDQyMWw4LjctNDQuOGM0My4yIDAgNjcuMSAyLjUgOTAuMi0xOS4xIDI2LjEtMjQgMzIuOS02Ni43IDE0LjMtODguMS05LjctMTEuMi0yNS4zLTE2LjctNDYuNS0xNi43SDQxN2wtMzIuOCAxNjguN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGllZFBpcGVyQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0NCAyNDZjLTMuMi0yLTYuMy0yLjktMTAuMS0yLjktNi42IDAtMTIuNiAzLjItMTkuMyAzLjdsMS43IDQuOXptMTM1LjkgMTk3LjljLTE5IDAtNjQuMSA5LjUtNzkuOSAxOS44bDYuOSA0NS4xYzM1LjcgNi4xIDcwLjEgMy42IDEwNi05LjgtNC44LTEwLTIzLjUtNTUuMS0zMy01NS4xek0zNDAuOCAxNzdjNi42IDIuOCAxMS41IDkuMiAyMi43IDIyLjEgMi0xLjQgNy41LTUuMiA3LjUtOC42IDAtNC45LTExLjgtMTMuMi0xMy4yLTIzIDExLjItNS43IDI1LjItNiAzNy42LTguOSA2OC4xLTE2LjQgMTE2LjMtNTIuOSAxNDYuOC0xMTYuN0M1NDguMyAyOS4zIDU1NCAxNi4xIDU1NC42IDJsLTIgMi42Yy0yOC40IDUwLTMzIDYzLjItODEuMyAxMDAtMzEuOSAyNC40LTY5LjIgNDAuMi0xMDYuNiA1NC42bC02LjMtLjN2LTIxLjhjLTE5LjYgMS42LTE5LjctMTQuNi0zMS42LTIzLTE4LjcgMjAuNi0zMS42IDQwLjgtNTguOSA1MS4xLTEyLjcgNC44LTE5LjYgMTAtMjUuOSAyMS44IDM0LjktMTYuNCA5MS4yLTEzLjUgOTguOC0xMHpNNTU1LjUgMGwtLjYgMS4xLS4zLjkuNi0uNnptLTU5LjIgMzgyLjFjLTMzLjktNTYuOS03NS4zLTExOC40LTE1MC0xMTUuNWwtLjMtNmMtMS4xLTEzLjUgMzIuOCAzLjIgMzUuMS0zMWwtMTQuNCA3LjJjLTE5LjgtNDUuNy04LjYtNTQuMy02NS41LTU0LjMtMTQuNyAwLTI2LjcgMS43LTQxLjQgNC42IDIuOSAxOC42IDIuMiAzNi43LTEwLjkgNTAuM2wxOS41IDUuNWMtMS43IDMuMi0yLjkgNi4zLTIuOSA5LjggMCAyMSA0Mi44IDIuOSA0Mi44IDMzLjYgMCAxOC40LTM2LjggNjAuMS01NC45IDYwLjEtOCAwLTUzLjctNTAtNTMuNC02MC4xbC4zLTQuNiA1Mi4zLTExLjVjMTMtMi42IDEyLjMtMjIuNy0yLjktMjIuNy0zLjcgMC00My4xIDkuMi00OS40IDEwLjYtMi01LjItNy41LTE0LjEtMTMuOC0xNC4xLTMuMiAwLTYuMyAzLjItOS41IDQtOS4yIDIuNi0zMSAyLjktMjEuNSAyMC4xTDE1LjkgMjk4LjVjLTUuNSAxLjEtOC45IDYuMy04LjkgMTEuOCAwIDYgNS41IDEwLjkgMTEuNSAxMC45IDggMCAxMzEuMy0yOC40IDE0Ny40LTMyLjIgMi42IDMuMiA0LjYgNi4zIDcuOCA4LjYgMjAuMSAxNC40IDU5LjggODUuOSA3Ni40IDg1LjkgMjQuMSAwIDU4LTIyLjQgNzEuMy00MS45IDMuMi00LjMgNi45LTcuNSAxMi40LTYuOS42IDEzLjgtMzEuNiAzNC4yLTMzIDQzLjctMS40IDEwLjItMSAzNS4yLS4zIDQxLjEgMjYuNyA4LjEgNTItMy42IDc3LjktMi45IDQuMy0yMSAxMC42LTQxLjkgOS44LTYzLjVsLS4zLTkuNWMtMS40LTM0LjItMTAuOS0zOC41LTM0LjgtNTguNi0xLjEtMS4xLTIuNi0yLjYtMy43LTQgMi4yLTEuNCAxLjEtMSA0LjYtMS43IDg4LjUgMCA1Ni4zIDE4My42IDExMS41IDIyOS45IDMzLjEtMTUgNzIuNS0yNy45IDEwMy41LTQ3LjItMjktMjUuNi01Mi42LTQ1LjctNzIuNy03OS45em0tMTk2LjIgNDYuMXYyNy4ybDExLjgtMy40LTIuOS0yMy44em0tNjguNy0xNTAuNGwyNC4xIDYxLjIgMjEtMTMuOC0zMS4zLTUwLjl6bTg0LjQgMTU0LjlsMiAxMi40YzktMS41IDU4LjQtNi42IDU4LjQtMTQuMSAwLTEuNC0uNi0zLjItLjktNC42LTI2LjggMC0zNi45IDMuOC01OS41IDYuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGllZFBpcGVySGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MCAyNC45Yy04MC44IDUzLjYtODkuNCA5Mi41LTk2LjQgMTA0LjQtNi43IDEyLjItMTEuNyA2MC4zLTIzLjMgODMuNi0xMS43IDIzLjYtNTQuMiA0Mi4yLTY2LjEgNTAtMTEuNyA3LjgtMjguMyAzOC4xLTQxLjkgNjQuMi0xMDguMS00LjQtMTY3LjQgMzguOC0yNTkuMiA5My42IDI5LjQtOS43IDQzLjMtMTYuNyA0My4zLTE2LjcgOTQuMi0zNiAxMzkuMy02OC4zIDI4MS4xLTQ5LjIgMS4xIDAgMS45LjYgMi44LjggMy45IDIuMiA1LjMgNi45IDMuMSAxMC44bC01My45IDk1LjhjLTIuNSA0LjctNy44IDcuMi0xMy4xIDYuMS0xMjYuOC0yMy44LTIyNi45IDE3LjMtMzE4LjkgMTguNkMyNC4xIDQ4OCAwIDQ1My40IDAgNDUxLjhjMC0xLjEuNi0xLjcgMS43LTEuNyAwIDAgMzguMyAwIDEwMy4xLTE1LjNDMTc4LjQgMjk0LjUgMjQ0IDI0NS40IDMxNS40IDI0NS40YzAgMCA3MS43IDAgOTAuNiA2MS45IDIyLjgtMzkuNyAyOC4zLTQ5LjIgMjguMy00OS4yIDUuMy05LjQgMzUtNzcuMiA4Ni40LTE0MS40IDUxLjUtNjQgOTAuNC03OS45IDExOS4zLTkxLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpZWRQaXBlclBwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwNS4zIDE3NC42YzAgMjEuMS0xNC4yIDM4LjEtMzEuNyAzOC4xLTcuMSAwLTEyLjgtMS4yLTE3LjItMy43di02OGM0LjQtMi43IDEwLjEtNC4yIDE3LjItNC4yIDE3LjUgMCAzMS43IDE2LjkgMzEuNyAzNy44em01Mi42IDY3Yy03LjEgMC0xMi44IDEuNS0xNy4yIDQuMnY2OGM0LjQgMi41IDEwLjEgMy43IDE3LjIgMy43IDE3LjQgMCAzMS43LTE2LjkgMzEuNy0zNy44IDAtMjEuMS0xNC4zLTM4LjEtMzEuNy0zOC4xek00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTE4NSAyNTUuMWM0MSAwIDc0LjItMzUuNiA3NC4yLTc5LjYgMC00NC0zMy4yLTc5LjYtNzQuMi03OS42LTEyIDAtMjQuMSAzLjItMzQuNiA4LjhoLTQ1LjdWMzExbDUxLjgtMTAuMXYtNTAuNmM4LjYgMy4xIDE4LjEgNC44IDI4LjUgNC44em0xNTguNCAyNS4zYzAtNDQtMzMuMi03OS42LTczLjktNzkuNi0zLjIgMC02LjQuMi05LjYuNy0zLjcgMTIuNS0xMC4xIDIzLjgtMTkuMiAzMy40LTEzLjggMTUtMzIuMiAyMy44LTUxLjggMjQuOFY0MTZsNTEuOC0xMC4xdi01MC42YzguNiAzLjIgMTguMiA0LjcgMjguNyA0LjcgNDAuOCAwIDc0LTM1LjYgNzQtNzkuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGllZFBpcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0ODAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1NS45MywyMy4yQzQyOS4yMywzMCwzODcuNzksNTEuNjksMzQxLjM1LDkwLjY2QTIwNiwyMDYsMCwwLDAsMjQwLDY0QzEyNS4xMyw2NCwzMiwxNTcuMTIsMzIsMjcyczkzLjEzLDIwOCwyMDgsMjA4LDIwOC05My4xMywyMDgtMjA4YTIwNy4yNSwyMDcuMjUsMCwwLDAtNTguNzUtMTQ0LjgxLDE1NS4zNSwxNTUuMzUsMCwwLDAtMTcsMjcuNEExNzYuMTYsMTc2LjE2LDAsMCwxLDQxNy4xLDI3MmMwLDk3LjY2LTc5LjQ0LDE3Ny4xMS0xNzcuMDksMTc3LjExYTE3NS44MSwxNzUuODEsMCwwLDEtODcuNjMtMjMuNGM4Mi45NC0xMDcuMzMsMTUwLjc5LTM3Ljc3LDE4NC4zMS0yMjYuNjUsNS43OS0zMi42MiwyOC05NC4yNiwxMjYuMjMtMTYwLjE4QzQ3MSwzMy40NSw0NjUuMzUsMjAuOCw0NTUuOTMsMjMuMlpNMTI1LDQwNi40QTE3Ni42NiwxNzYuNjYsMCwwLDEsNjIuOSwyNzJDNjIuOSwxNzQuMzQsMTQyLjM1LDk0LjksMjQwLDk0LjlhMTc0LDE3NCwwLDAsMSw3Ni42MywxNy43NUMyNTAuNjQsMTc0Ljc2LDE4OS43NywyNjUuNTIsMTI1LDQwNi40WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaW50ZXJlc3RQIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwNCA2LjVDMTAxLjQgNi41IDAgNzQuOSAwIDE4NS42IDAgMjU2IDM5LjYgMjk2IDYzLjYgMjk2YzkuOSAwIDE1LjYtMjcuNiAxNS42LTM1LjQgMC05LjMtMjMuNy0yOS4xLTIzLjctNjcuOCAwLTgwLjQgNjEuMi0xMzcuNCAxNDAuNC0xMzcuNCA2OC4xIDAgMTE4LjUgMzguNyAxMTguNSAxMDkuOCAwIDUzLjEtMjEuMyAxNTIuNy05MC4zIDE1Mi43LTI0LjkgMC00Ni4yLTE4LTQ2LjItNDMuOCAwLTM3LjggMjYuNC03NC40IDI2LjQtMTEzLjQgMC02Ni4yLTkzLjktNTQuMi05My45IDI1LjggMCAxNi44IDIuMSAzNS40IDkuNiA1MC43LTEzLjggNTkuNC00MiAxNDcuOS00MiAyMDkuMSAwIDE4LjkgMi43IDM3LjUgNC41IDU2LjQgMy40IDMuOCAxLjcgMy40IDYuOSAxLjUgNTAuNC02OSA0OC42LTgyLjUgNzEuNC0xNzIuOCAxMi4zIDIzLjQgNDQuMSAzNiA2OS4zIDM2IDEwNi4yIDAgMTUzLjktMTAzLjUgMTUzLjktMTk2LjhDMzg0IDcxLjMgMjk4LjIgNi41IDIwNCA2LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpbnRlcmVzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYgMjU2YzAgMTM3LTExMSAyNDgtMjQ4IDI0OC0yNS42IDAtNTAuMi0zLjktNzMuNC0xMS4xIDEwLjEtMTYuNSAyNS4yLTQzLjUgMzAuOC02NSAzLTExLjYgMTUuNC01OSAxNS40LTU5IDguMSAxNS40IDMxLjcgMjguNSA1Ni44IDI4LjUgNzQuOCAwIDEyOC43LTY4LjggMTI4LjctMTU0LjMgMC04MS45LTY2LjktMTQzLjItMTUyLjktMTQzLjItMTA3IDAtMTYzLjkgNzEuOC0xNjMuOSAxNTAuMSAwIDM2LjQgMTkuNCA4MS43IDUwLjMgOTYuMSA0LjcgMi4yIDcuMiAxLjIgOC4zLTMuMy44LTMuNCA1LTIwLjMgNi45LTI4LjEuNi0yLjUuMy00LjctMS43LTcuMS0xMC4xLTEyLjUtMTguMy0zNS4zLTE4LjMtNTYuNiAwLTU0LjcgNDEuNC0xMDcuNiAxMTItMTA3LjYgNjAuOSAwIDEwMy42IDQxLjUgMTAzLjYgMTAwLjkgMCA2Ny4xLTMzLjkgMTEzLjYtNzggMTEzLjYtMjQuMyAwLTQyLjYtMjAuMS0zNi43LTQ0LjggNy0yOS41IDIwLjUtNjEuMyAyMC41LTgyLjYgMC0xOS0xMC4yLTM0LjktMzEuNC0zNC45LTI0LjkgMC00NC45IDI1LjctNDQuOSA2MC4yIDAgMjIgNy40IDM2LjggNy40IDM2LjhzLTI0LjUgMTAzLjgtMjkgMTIzLjJjLTUgMjEuNC0zIDUxLjYtLjkgNzEuMkM2NS40IDQ1MC45IDAgMzYxLjEgMCAyNTYgMCAxMTkgMTExIDggMjQ4IDhzMjQ4IDExMSAyNDggMjQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQyLjQgMjkyLjVDMjQ3LjggMjg3LjEgMjU3LjEgMjg3LjEgMjYyLjUgMjkyLjVMMzM5LjUgMzY5LjVDMzUzLjcgMzgzLjcgMzcyLjYgMzkxLjUgMzkyLjYgMzkxLjVINDA3LjdMMzEwLjYgNDg4LjZDMjgwLjMgNTE4LjEgMjMxLjEgNTE4LjEgMjAwLjggNDg4LjZMMTAzLjMgMzkxLjJIMTEyLjZDMTMyLjYgMzkxLjIgMTUxLjUgMzgzLjQgMTY1LjcgMzY5LjJMMjQyLjQgMjkyLjV6TTI2Mi41IDIxOC45QzI1Ni4xIDIyNC40IDI0Ny45IDIyNC41IDI0Mi40IDIxOC45TDE2NS43IDE0Mi4yQzE1MS41IDEyNy4xIDEzMi42IDEyMC4yIDExMi42IDEyMC4ySDEwMy4zTDIwMC43IDIyLjc2QzIzMS4xLTcuNTg2IDI4MC4zLTcuNTg2IDMxMC42IDIyLjc2TDQwNy44IDExOS45SDM5Mi42QzM3Mi42IDExOS45IDM1My43IDEyNy43IDMzOS41IDE0MS45TDI2Mi41IDIxOC45ek0xMTIuNiAxNDIuN0MxMjYuNCAxNDIuNyAxMzkuMSAxNDguMyAxNDkuNyAxNTguMUwyMjYuNCAyMzQuOEMyMzMuNiAyNDEuMSAyNDMgMjQ1LjYgMjUyLjUgMjQ1LjZDMjYxLjkgMjQ1LjYgMjcxLjMgMjQxLjEgMjc4LjUgMjM0LjhMMzU1LjUgMTU3LjhDMzY1LjMgMTQ4LjEgMzc4LjggMTQyLjUgMzkyLjYgMTQyLjVINDMwLjNMNDg4LjYgMjAwLjhDNTE4LjkgMjMxLjEgNTE4LjkgMjgwLjMgNDg4LjYgMzEwLjZMNDMwLjMgMzY4LjlIMzkyLjZDMzc4LjggMzY4LjkgMzY1LjMgMzYzLjMgMzU1LjUgMzUzLjVMMjc4LjUgMjc2LjVDMjY0LjYgMjYyLjYgMjQwLjMgMjYyLjYgMjI2LjQgMjc2LjZMMTQ5LjcgMzUzLjJDMTM5LjEgMzYzIDEyNi40IDM2OC42IDExMi42IDM2OC42SDgwLjc4TDIyLjc2IDMxMC42Qy03LjU4NiAyODAuMy03LjU4NiAyMzEuMSAyMi43NiAyMDAuOEw4MC43OCAxNDIuN0gxMTIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGl4aXYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0em0xNzEuNSA4NGM0MSAwIDc2LjMgMTIuOSAxMDEuNCAzNS4ybDAgMGMyNS4yIDIyLjIgMzkuOCA1NC4xIDM5LjggODguOGMuMSAzNS4zLTE2LjYgNjYuMy00Mi40IDg3Yy0yNS45IDIwLjgtNjAuNiAzMi40LTk4LjggMzIuNGMtNDMuNSAwLTgzLjgtMTYuMS04My44LTE2LjF2NTEuOGM3LjQgMi4yIDE5LjcgNyAxMS45IDE0LjhIMTA0LjhjLTcuNy03LjggMy42LTEyLjQgMTIuMS0xNC44VjE3NS41Qzk3LjEgMTkwLjkgODcgMjA0LjMgODEuOCAyMTQuMmM2IDE5LjQtNS4zIDE4LjUtNS4zIDE4LjVMNTYgMTk5LjdzNzIuNy04My43IDE3OS41LTgzLjd6bS0zLjYgMjIyLjljMzAgMCA1Ni0xMS4zIDczLjktMjkuMmMxNy45LTE4LjEgMjcuOS00MS42IDI4LTcwLjJjLS4xLTI5LjMtOS41LTU0LjYtMjYuNy03My42Yy0xNy4yLTE4LjktNDIuNy0zMS4zLTc1LjItMzEuNGMtMjYuNy0uMS01OS44IDktODAuMiAyMy43VjMyMy4xYzE4LjYgOS4zIDQ2LjggMTUuOSA4MC4yIDE1Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYXlzdGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3MC45IDM3Mi4zYy0xMS4zIDE0LjItMzguOCAyNC4zLTM4LjggMjQuM0wzMjcgNDcwLjJ2LTU0LjNsMTUwLjktNTMuOGMxNy4xLTYuMSAxOS44LTE0LjggNS44LTE5LjQtMTMuOS00LjYtMzkuMS0zLjMtNTYuMiAyLjlMMzI3IDM4MS4xdi01Ni40YzIzLjItNy44IDQ3LjEtMTMuNiA3NS43LTE2LjggNDAuOS00LjUgOTAuOS42IDEzMC4yIDE1LjUgNDQuMiAxNCA0OS4yIDM0LjcgMzggNDguOXptLTIyNC40LTkyLjV2LTEzOWMwLTE2LjMtMy0zMS4zLTE4LjMtMzUuNi0xMS43LTMuOC0xOSA3LjEtMTkgMjMuNHYzNDcuOWwtOTMuOC0yOS44VjMyYzM5LjkgNy40IDk4IDI0LjkgMTI5LjIgMzUuNEM0MjQuMSA5NC43IDQ1MSAxMjguNyA0NTEgMjA1LjJjMCA3NC41LTQ2IDEwMi44LTEwNC41IDc0LjZ6TTQzLjIgNDEwLjJjLTQ1LjQtMTIuOC01My0zOS41LTMyLjMtNTQuOCAxOS4xLTE0LjIgNTEuNy0yNC45IDUxLjctMjQuOWwxMzQuNS00Ny44djU0LjVsLTk2LjggMzQuNmMtMTcuMSA2LjEtMTkuNyAxNC44LTUuOCAxOS40IDEzLjkgNC42IDM5LjEgMy4zIDU2LjItMi45bDQ2LjQtMTYuOXY0OC44Yy01MS42IDkuMy0xMDEuNCA3LjMtMTUzLjktMTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVByb2R1Y3RIdW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyNi4zIDIxOC44YzAgMjAuNS0xNi43IDM3LjItMzcuMiAzNy4yaC03MC4zdi03NC40aDcwLjNjMjAuNSAwIDM3LjIgMTYuNyAzNy4yIDM3LjJ6TTUwNCAyNTZjMCAxMzctMTExIDI0OC0yNDggMjQ4UzggMzkzIDggMjU2IDExOSA4IDI1NiA4czI0OCAxMTEgMjQ4IDI0OHptLTEyOC4xLTM3LjJjMC00Ny45LTM4LjktODYuOC04Ni44LTg2LjhIMTY5LjJ2MjQ4aDQ5LjZ2LTc0LjRoNzAuM2M0Ny45IDAgODYuOC0zOC45IDg2LjgtODYuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHVzaGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0MzIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwNyAxMTEuOWwtOTguNS05IDE0LTMzLjRjMTAuNC0yMy41LTEwLjgtNDAuNC0yOC43LTM3TDIyLjUgNzYuOWMtMTUuMSAyLjctMjYgMTguMy0yMS40IDM2LjZsMTA1LjEgMzQ4LjNjNi41IDIxLjMgMzYuNyAyNC4yIDQ3LjcgN2wzNS4zLTgwLjggMjM1LjItMjMxLjNjMTYuNC0xNi44IDQuMy00Mi45LTE3LjQtNDQuOHpNMjk3LjYgNTMuNmM1LjEtLjcgNy41IDIuNSA1LjIgNy40TDI4NiAxMDAuOSAxMDguNiA4NC42bDE4OS0zMXpNMjIuNyAxMDcuOWMtMy4xLTUuMSAxLTEwIDYuMS05LjFsMjQ4LjcgMjIuNy05Ni45IDIzMC43TDIyLjcgMTA3Ljl6TTEzNiA0NTYuNGMtMi42IDQtNy45IDMuMS05LjQtMS4yTDQzLjUgMTc5LjdsMTI3LjcgMTk3LjZjLTcgMTUtMzUuMiA3OS4xLTM1LjIgNzkuMXptMjcyLjgtMzE0LjVMMjEwLjEgMzM3LjNsODkuNy0yMTMuNyAxMDYuNCA5LjdjNCAxLjEgNS43IDUuMyAyLjYgOC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQeXRob24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM5LjggMjAwLjVjLTcuNy0zMC45LTIyLjMtNTQuMi01My40LTU0LjJoLTQwLjF2NDcuNGMwIDM2LjgtMzEuMiA2Ny44LTY2LjggNjcuOEgxNzIuN2MtMjkuMiAwLTUzLjQgMjUtNTMuNCA1NC4zdjEwMS44YzAgMjkgMjUuMiA0NiA1My40IDU0LjMgMzMuOCA5LjkgNjYuMyAxMS43IDEwNi44IDAgMjYuOS03LjggNTMuNC0yMy41IDUzLjQtNTQuM3YtNDAuN0gyMjYuMnYtMTMuNmgxNjAuMmMzMS4xIDAgNDIuNi0yMS43IDUzLjQtNTQuMiAxMS4yLTMzLjUgMTAuNy02NS43IDAtMTA4LjZ6TTI4Ni4yIDQwNGMxMS4xIDAgMjAuMSA5LjEgMjAuMSAyMC4zIDAgMTEuMy05IDIwLjQtMjAuMSAyMC40LTExIDAtMjAuMS05LjItMjAuMS0yMC40LjEtMTEuMyA5LjEtMjAuMyAyMC4xLTIwLjN6TTE2Ny44IDI0OC4xaDEwNi44YzI5LjcgMCA1My40LTI0LjUgNTMuNC01NC4zVjkxLjljMC0yOS0yNC40LTUwLjctNTMuNC01NS42LTM1LjgtNS45LTc0LjctNS42LTEwNi44LjEtNDUuMiA4LTUzLjQgMjQuNy01My40IDU1LjZ2NDAuN2gxMDYuOXYxMy42aC0xNDdjLTMxLjEgMC01OC4zIDE4LjctNjYuOCA1NC4yLTkuOCA0MC43LTEwLjIgNjYuMSAwIDEwOC42IDcuNiAzMS42IDI1LjcgNTQuMiA1Ni44IDU0LjJIMTAxdi00OC44YzAtMzUuMyAzMC41LTY2LjQgNjYuOC02Ni40em0tNi43LTE0Mi42Yy0xMS4xIDAtMjAuMS05LjEtMjAuMS0yMC4zLjEtMTEuMyA5LTIwLjQgMjAuMS0yMC40IDExIDAgMjAuMSA5LjIgMjAuMSAyMC40cy05IDIwLjMtMjAuMSAyMC4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFRcSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzMuNzU0IDQyMC40NDVjLTExLjUyNiAxLjM5My00NC44Ni01Mi43NDEtNDQuODYtNTIuNzQxIDAgMzEuMzQ1LTE2LjEzNiA3Mi4yNDctNTEuMDUxIDEwMS43ODYgMTYuODQyIDUuMTkyIDU0Ljg0MyAxOS4xNjcgNDUuODAzIDM0LjQyMS03LjMxNiAxMi4zNDMtMTI1LjUxIDcuODgxLTE1OS42MzIgNC4wMzctMzQuMTIyIDMuODQ0LTE1Mi4zMTYgOC4zMDYtMTU5LjYzMi00LjAzNy05LjA0NS0xNS4yNSAyOC45MTgtMjkuMjE0IDQ1Ljc4My0zNC40MTUtMzQuOTItMjkuNTM5LTUxLjA1OS03MC40NDUtNTEuMDU5LTEwMS43OTIgMCAwLTMzLjMzNCA1NC4xMzQtNDQuODU5IDUyLjc0MS01LjM3LS42NS0xMi40MjQtMjkuNjQ0IDkuMzQ3LTk5LjcwNCAxMC4yNjEtMzMuMDI0IDIxLjk5NS02MC40NzggNDAuMTQ0LTEwNS43NzlDNjAuNjgzIDk4LjA2MyAxMDguOTgyLjAwNiAyMjQgMGMxMTMuNzM3LjAwNiAxNjMuMTU2IDk2LjEzMyAxNjAuMjY0IDIxNC45NjMgMTguMTE4IDQ1LjIyMyAyOS45MTIgNzIuODUgNDAuMTQ0IDEwNS43NzggMjEuNzY4IDcwLjA2IDE0LjcxNiA5OS4wNTMgOS4zNDYgOTkuNzA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFRdWluc2NhcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzEzLjYgNDc0LjZoLTFhMTU4LjEgMTU4LjEgMCAwIDEgMC0zMTYuMmM5NC45IDAgMTY4LjIgODMuMSAxNTcgMTc2LjYgNCA1LjEgOC4yIDkuNiAxMS4yIDE1LjMgMTMuNC0zMC4zIDIwLjMtNjIuNCAyMC4zLTk3LjdDNTAxLjEgMTE3LjUgMzkxLjYgOCAyNTYuNSA4UzEyIDExNy41IDEyIDI1Mi42czEwOS41IDI0NC42IDI0NC41IDI0NC42YTIzNy4zNiAyMzcuMzYgMCAwIDAgNzAuNC0xMC4xYy01LjItMy41LTguOS04LjEtMTMuMy0xMi41em0tLjEtLjFsLjQuMXptNzguNC0xNjguOWE5OS4yIDk5LjIgMCAxIDAgOTkuMiA5OS4yIDk5LjE4IDk5LjE4IDAgMCAwLTk5LjItOTkuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUXVvcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQwLjUgMzg2LjdoLTI5LjNjLTEuNSAxMy41LTEwLjUgMzAuOC0zMyAzMC44LTIwLjUgMC0zNS4zLTE0LjItNDkuNS0zNS44IDQ0LjItMzQuMiA3NC43LTg3LjUgNzQuNy0xNTNDNDAzLjUgMTExLjIgMzA2LjggMzIgMjA1IDMyIDEwNS4zIDMyIDcuMyAxMTEuNyA3LjMgMjI4LjdjMCAxMzQuMSAxMzEuMyAyMjEuNiAyNDkgMTg5QzI3NiA0NTEuMyAzMDIgNDgwIDM1MS41IDQ4MGM4MS44IDAgOTAuOC03NS4zIDg5LTkzLjN6TTI5NyAzMjkuMkMyNzcuNSAzMDAgMjUzLjMgMjc3IDIwNS41IDI3N2MtMzAuNSAwLTU0LjMgMTAtNjkgMjIuOGwxMi4yIDI0LjNjNi4yLTMgMTMtNCAxOS44LTQgMzUuNSAwIDUzLjcgMzAuOCA2OS4yIDYxLjMtMTAgMy0yMC43IDQuMi0zMi43IDQuMi03NSAwLTEwNy41LTUzLTEwNy41LTE1Ni43Qzk3LjUgMTI0LjUgMTMwIDcxIDIwNSA3MWM3Ni4yIDAgMTA4LjcgNTMuNSAxMDguNyAxNTcuNy4xIDQxLjgtNS40IDc1LjYtMTYuNyAxMDAuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUlByb2plY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU4MSA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTgxIDIyNi42QzU4MSAxMTkuMSA0NTAuOSAzMiAyOTAuNSAzMlMwIDExOS4xIDAgMjI2LjZDMCAzMjIuNCAxMDMuMyA0MDIgMjM5LjQgNDE4LjFWNDgwaDk5LjF2LTYxLjVjMjQuMy0yLjcgNDcuNi03LjQgNjkuNC0xMy45TDQ0OCA0ODBoMTEybC02Ny40LTExMy43YzU0LjUtMzUuNCA4OC40LTg0LjkgODguNC0xMzkuN3ptLTQ2Ni44IDE0LjVjMC03My41IDk4LjktMTMzIDIyMC44LTEzM3MyMTEuOSA0MC43IDIxMS45IDEzM2MwIDUwLjEtMjYuNSA4NS03MC4zIDEwNi40LTIuNC0xLjYtNC43LTIuOS02LjQtMy43LTEwLjItNS4yLTI3LjgtMTAuNS0yNy44LTEwLjVzODYuNi02LjQgODYuNi05Mi43LTkwLjYtODcuOS05MC42LTg3LjloLTE5OVYzNjFjLTc0LjEtMjEuNS0xMjUuMi02Ny4xLTEyNS4yLTExOS45em0yMjUuMSAzOC4zdi01NS42YzU3LjggMCA4Ny44LTYuOCA4Ny44IDI3LjMgMCAzNi41LTM4LjIgMjguMy04Ny44IDI4LjN6bS0uOSA3Mi41SDM2NWMxMC44IDAgMTguOSAxMS43IDI0IDE5LjItMTYuMSAxLjktMzMgMi44LTUwLjYgMi45di0yMi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSYXNwYmVycnlQaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDA3IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzIgMjMyLjVsLTMuNy02LjVjLjEtNDYuNC0yMS40LTY1LjMtNDYuNS03OS43IDcuNi0yIDE1LjQtMy42IDE3LjYtMTMuMiAxMy4xLTMuMyAxNS44LTkuNCAxNy4xLTE1LjggMy40LTIuMyAxNC44LTguNyAxMy42LTE5LjcgNi40LTQuNCAxMC0xMC4xIDguMS0xOC4xIDYuOS03LjUgOC43LTEzLjcgNS44LTE5LjQgOC4zLTEwLjMgNC42LTE1LjYgMS4xLTIwLjkgNi4yLTExLjIuNy0yMy4yLTE2LjYtMjEuMi02LjktMTAuMS0yMS45LTcuOC0yNC4yLTcuOC0yLjYtMy4yLTYtNi0xNi41LTQuNy02LjgtNi4xLTE0LjQtNS0yMi4zLTIuMS05LjMtNy4zLTE1LjUtMS40LTIyLjYuOEMyNzEuNi42IDI2OSA1LjUgMjYzLjUgNy42Yy0xMi4zLTIuNi0xNi4xIDMtMjIgOC45bC02LjktLjFjLTE4LjYgMTAuOC0yNy44IDMyLjgtMzEuMSA0NC4xLTMuMy0xMS4zLTEyLjUtMzMuMy0zMS4xLTQ0LjFsLTYuOS4xYy01LjktNS45LTkuNy0xMS41LTIyLTguOS01LjYtMi04LjEtNy0xOS40LTMuNC00LjYtMS40LTguOS00LjQtMTMuOS00LjMtMi42LjEtNS41IDEtOC43IDMuNS03LjktMy0xNS41LTQtMjIuMyAyLjEtMTAuNS0xLjMtMTQgMS40LTE2LjUgNC43LTIuMyAwLTE3LjMtMi4zLTI0LjIgNy44QzIxLjIgMTYgMTUuOCAyOCAyMiAzOS4yYy0zLjUgNS40LTcuMiAxMC43IDEuMSAyMC45LTIuOSA1LjctMS4xIDExLjkgNS44IDE5LjQtMS44IDggMS44IDEzLjcgOC4xIDE4LjEtMS4yIDExIDEwLjIgMTcuNCAxMy42IDE5LjcgMS4zIDYuNCA0IDEyLjQgMTcuMSAxNS44IDIuMiA5LjUgMTAgMTEuMiAxNy42IDEzLjItMjUuMSAxNC40LTQ2LjYgMzMuMy00Ni41IDc5LjdsLTMuNyA2LjVjLTI4LjggMTcuMi01NC43IDcyLjctMTQuMiAxMTcuNyAyLjYgMTQuMSA3LjEgMjQuMiAxMSAzNS40IDUuOSA0NS4yIDQ0LjUgNjYuMyA1NC42IDY4LjggMTQuOSAxMS4yIDMwLjggMjEuOCA1Mi4yIDI5LjJDMTU5IDUwNC4yIDE4MSA1MTIgMjAzIDUxMmgxYzIyLjEgMCA0NC03LjggNjQuMi0yOC40IDIxLjUtNy40IDM3LjMtMTggNTIuMi0yOS4yIDEwLjItMi41IDQ4LjctMjMuNiA1NC42LTY4LjggMy45LTExLjIgOC40LTIxLjMgMTEtMzUuNCA0MC42LTQ1LjEgMTQuNy0xMDAuNS0xNC0xMTcuN3ptLTIyLjItOGMtMS41IDE4LjctOTguOS02NS4xLTgyLjEtNjcuOSA0NS43LTcuNSA4My42IDE5LjIgODIuMSA2Ny45em0tNDMgOTMuMWMtMjQuNSAxNS44LTU5LjggNS42LTc4LjgtMjIuOHMtMTQuNi02NC4yIDkuOS04MGMyNC41LTE1LjggNTkuOC01LjYgNzguOCAyMi44czE0LjYgNjQuMi05LjkgODB6TTIzOC45IDI5LjNjLjggNC4yIDEuOCA2LjggMi45IDcuNiA1LjQtNS44IDkuOC0xMS43IDE2LjgtMTcuMyAwIDMuMy0xLjcgNi44IDIuNSA5LjQgMy43LTUgOC44LTkuNSAxNS41LTEzLjMtMy4yIDUuNi0uNiA3LjMgMS4yIDkuNiA1LjEtNC40IDEwLTguOCAxOS40LTEyLjMtMi42IDMuMS02LjIgNi4yLTIuNCA5LjggNS4zLTMuMyAxMC42LTYuNiAyMy4xLTguOS0yLjggMy4xLTguNyA2LjMtNS4xIDkuNCA2LjYtMi41IDE0LTQuNCAyMi4xLTUuNC0zLjkgMy4yLTcuMSA2LjMtMy45IDguOCA3LjEtMi4yIDE2LjktNS4xIDI2LjQtMi42bC02IDYuMWMtLjcuOCAxNC4xLjYgMjMuOS44LTMuNiA1LTcuMiA5LjctOS4zIDE4LjIgMSAxIDUuOC40IDEwLjQgMC00LjcgOS45LTEyLjggMTIuMy0xNC43IDE2LjYgMi45IDIuMiA2LjggMS42IDExLjIuMS0zLjQgNi45LTEwLjQgMTEuNy0xNiAxNy4zIDEuNCAxIDMuOSAxLjYgOS43LjktNS4yIDUuNS0xMS40IDEwLjUtMTguOCAxNSAxLjMgMS41IDUuOCAxLjUgMTAgMS42LTYuNyA2LjUtMTUuMyA5LjktMjMuNCAxNC4yIDQgMi43IDYuOSAyLjEgMTAgMi4xLTUuNyA0LjctMTUuNCA3LjEtMjQuNCAxMCAxLjcgMi43IDMuNCAzLjQgNy4xIDQuMS05LjUgNS4zLTIzLjIgMi45LTI3IDUuNi45IDIuNyAzLjYgNC40IDYuNyA1LjgtMTUuNC45LTU3LjMtLjYtNjUuNC0zMi4zIDE1LjctMTcuMyA0NC40LTM3LjUgOTMuNy02Mi42LTM4LjQgMTIuOC03MyAzMC0xMDIgNTMuNS0zNC4zLTE1LjktMTAuOC01NS45IDUuOC03MS44em0tMzQuNCAxMTQuNmMyNC4yLS4zIDU0LjEgMTcuOCA1NCAzNC43LS4xIDE1LTIxIDI3LjEtNTMuOCAyNi45LTMyLjEtLjQtNTMuNy0xNS4yLTUzLjYtMjkuOCAwLTExLjkgMjYuMi0zMi41IDUzLjQtMzEuOHptLTEyMy0xMi44YzMuNy0uNyA1LjQtMS41IDcuMS00LjEtOS0yLjgtMTguNy01LjMtMjQuNC0xMCAzLjEgMCA2IC43IDEwLTIuMS04LjEtNC4zLTE2LjctNy43LTIzLjQtMTQuMiA0LjItLjEgOC43IDAgMTAtMS42LTcuNC00LjUtMTMuNi05LjUtMTguOC0xNSA1LjguNyA4LjMuMSA5LjctLjktNS42LTUuNi0xMi43LTEwLjQtMTYtMTcuMyA0LjMgMS41IDguMyAyIDExLjItLjEtMS45LTQuMi0xMC02LjctMTQuNy0xNi42IDQuNi40IDkuNCAxIDEwLjQgMC0yLjEtOC41LTUuOC0xMy4zLTkuMy0xOC4yIDkuOC0uMSAyNC42IDAgMjMuOS0uOGwtNi02LjFjOS41LTIuNSAxOS4zLjQgMjYuNCAyLjYgMy4yLTIuNS0uMS01LjYtMy45LTguOCA4LjEgMS4xIDE1LjQgMi45IDIyLjEgNS40IDMuNS0zLjEtMi4zLTYuMy01LjEtOS40IDEyLjUgMi4zIDE3LjggNS42IDIzLjEgOC45IDMuOC0zLjYuMi02LjctMi40LTkuOCA5LjQgMy40IDE0LjMgNy45IDE5LjQgMTIuMyAxLjctMi4zIDQuNC00IDEuMi05LjYgNi43IDMuOCAxMS44IDguMyAxNS41IDEzLjMgNC4xLTIuNiAyLjUtNi4yIDIuNS05LjQgNyA1LjYgMTEuNCAxMS41IDE2LjggMTcuMyAxLjEtLjggMi0zLjQgMi45LTcuNiAxNi42IDE1LjkgNDAuMSA1NS45IDYgNzEuOC0yOS0yMy41LTYzLjYtNDAuNy0xMDItNTMuNSA0OS4zIDI1IDc4IDQ1LjMgOTMuNyA2Mi42LTggMzEuOC01MCAzMy4yLTY1LjQgMzIuMyAzLjEtMS40IDUuOC0zLjIgNi43LTUuOC00LTIuOC0xNy42LS40LTI3LjItNS42em02MC4xIDI0LjFjMTYuOCAyLjgtODAuNiA4Ni41LTgyLjEgNjcuOS0xLjUtNDguNyAzNi41LTc1LjUgODIuMS02Ny45ek0zOC4yIDM0MmMtMjMuNy0xOC44LTMxLjMtNzMuNyAxMi42LTk4LjMgMjYuNS03IDkgMTA3LjgtMTIuNiA5OC4zem05MSA5OC4yYy0xMy4zIDcuOS00NS44IDQuNy02OC44LTI3LjktMTUuNS0yNy40LTEzLjUtNTUuMi0yLjYtNjMuNCAxNi4zLTkuOCA0MS41IDMuNCA2MC45IDI1LjYgMTYuOSAyMCAyNC42IDU1LjMgMTAuNSA2NS43em0tMjYuNC0xMTkuN2MtMjQuNS0xNS44LTI4LjktNTEuNi05LjktODBzNTQuMy0zOC42IDc4LjgtMjIuOCAyOC45IDUxLjYgOS45IDgwYy0xOS4xIDI4LjQtNTQuNCAzOC42LTc4LjggMjIuOHpNMjA1IDQ5NmMtMjkuNCAxLjItNTguMi0yMy43LTU3LjgtMzIuMy0uNC0xMi43IDM1LjgtMjIuNiA1OS4zLTIyIDIzLjctMSA1NS42IDcuNSA1NS43IDE4LjkuNSAxMS0yOC44IDM1LjktNTcuMiAzNS40em01OC45LTEyNC45Yy4yIDI5LjctMjYuMiA1My44LTU4LjggNTQtMzIuNi4yLTU5LjItMjMuOC01OS40LTUzLjR2LS42Yy0uMi0yOS43IDI2LjItNTMuOCA1OC44LTU0IDMyLjYtLjIgNTkuMiAyMy44IDU5LjQgNTMuNHYuNnptODIuMiA0Mi43Yy0yNS4zIDM0LjYtNTkuNiAzNS45LTcyLjMgMjYuMy0xMy4zLTEyLjQtMy4yLTUwLjkgMTUuMS03MiAyMC45LTIzLjMgNDMuMy0zOC41IDU4LjktMjYuNiAxMC41IDEwLjMgMTYuNyA0OS4xLTEuNyA3Mi4zem0yMi45LTczLjJjLTIxLjUgOS40LTM5LTEwNS4zLTEyLjYtOTguMyA0My45IDI0LjcgMzYuMyA3OS42IDEyLjYgOTguM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmF2ZWxyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTguMjUyLDIzNC4yMjNjLTEuMjA4LTEwLjM0LTEuNy0yMC44MjYtMy43NDYtMzFhMzEwLjMwNiwzMTAuMzA2LDAsMCwwLTkuNjIyLTM2LjYsMTg0LjA2OCwxODQuMDY4LDAsMCwwLTMwLjg3NC01Ny41LDI1MS4xNTQsMjUxLjE1NCwwLDAsMC0xOC44MTgtMjEuNjg5LDIzNy4zNjIsMjM3LjM2MiwwLDAsMC00Ny4xMTMtMzYuMTE2QTI0MC44LDI0MC44LDAsMCwwLDMzMS4zNTYsMjYuNjVjLTExLjAxOC0zLjEtMjIuMjcyLTUuNDMxLTMzLjUxNS03LjYxNS02Ljc4LTEuMzE0LTEzLjc0OS0xLjY2Ny0yMC42MjctMi40ODItLjMxNi0uMDM2LS42LS4zNTgtLjktLjU1M3EtMTYuMTQzLjAwOS0zMi4yODguMDA2Yy0yLjQxLjM4OS00LjgwOC45MjUtNy4yMzYsMS4xNWExNzkuMzMxLDE3OS4zMzEsMCwwLDAtMzQuMjU2LDcuMSwyMjEuNSwyMjEuNSwwLDAsMC0zOS43NjgsMTYuMzU1LDI4MS4zODUsMjgxLjM4NSwwLDAsMC0zOC4wOCwyNC4xNThjLTYuMTY3LDQuNjEtMTIuMjY4LDkuMzYtMTcuOTc0LDE0LjUxOEM5Ni41MzksODguNDk0LDg2LjM0LDk3LjcyLDc2Ljc4NSwxMDcuNTU1YTI0My44NzgsMjQzLjg3OCwwLDAsMC0zMy42NDgsNDMuOTUsMjA2LjQ4OCwyMDYuNDg4LDAsMCwwLTIwLjQ5NCw0NC42LDE5OC4yLDE5OC4yLDAsMCwwLTcuNjkxLDM0Ljc1OUEyMDEuMTMsMjAxLjEzLDAsMCwwLDEzLjQsMjY2LjM4NWEyOTkuNzE2LDI5OS43MTYsMCwwLDAsNC40MjUsNDAuMjQsMjI2Ljg2NSwyMjYuODY1LDAsMCwwLDE2LjczLDUzLjMsMjEwLjU0MywyMTAuNTQzLDAsMCwwLDI0LDM5LjUyOCwyMTMuNTg5LDIxMy41ODksMCwwLDAsMjYuMzU4LDI4LjQxNkEyNTEuMzEzLDI1MS4zMTMsMCwwLDAsMTI2LjcsNDU4LjQ1NWEyODcuODMxLDI4Ny44MzEsMCwwLDAsNTUuOSwyNS4yNzcsMjY5LjUsMjY5LjUsMCwwLDAsNDAuNjQxLDkuODM1YzYuMDcxLDEuMDEsMTIuMjc1LDEuMjUzLDE4LjQxMiwxLjg3M2E0LjE0OSw0LjE0OSwwLDAsMSwxLjE5LjU2aDMyLjI4OWMyLjUwNy0uMzg5LDUtLjkzNyw3LjUyNy0xLjE0MywxNi4zMzYtMS4zMzIsMzIuMTA3LTUuMzM1LDQ3LjQ4OS0xMC43MTdBMjE5Ljk5MiwyMTkuOTkyLDAsMCwwLDM3OS4xLDQ2MC4zMjJjOS43NDktNi40NDcsMTkuMzk1LTEzLjA3NywyOC43MzctMjAuMSw1Ljc4NS00LjM0OCwxMC45ODgtOS41LDE2LjMtMTQuNDU3LDMuOTY0LTMuNyw3Ljc2NC03LjU3OCwxMS41MS0xMS41YTIzMi4xNjIsMjMyLjE2MiwwLDAsMCwzMS40MjctNDEuNjM5YzkuNTQyLTE2LjA0NSwxNy4zNTUtMzIuOTA1LDIyLjMtNTAuOTI2LDIuODU5LTEwLjQxMyw0Ljk0Ny0yMS4wNDUsNy4wMTctMzEuNjUyLDEuMDMyLTUuMjc5LDEuMjUxLTEwLjcyMywxLjg3LTE2LjA4Ny4wMzYtLjMxNy4zNTgtLjYuNTUyLS45VjIzNi4wMDVBOS43NTcsOS43NTcsMCwwLDEsNDk4LjI1MiwyMzQuMjIzWm0tMTYxLjExNy0xLjE1cy0xNi41NzItMi45OC0yOC40Ny0yLjk4Yy0yNy4yLDAtMzMuNTcsMTQuOS0zMy41NywzNy4wNFYzNjAuOEgyMDEuNTgyVjE3MC4wNjJIMjc1LjF2MzEuOTMxYzguOTI0LTI2LjgyMiwyNi43NzEtMzYuMTg5LDYyLjA0LTM2LjE4OVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVhY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE4LjIgMTc3LjJjLTUuNC0xLjgtMTAuOC0zLjUtMTYuMi01LjEuOS0zLjcgMS43LTcuNCAyLjUtMTEuMSAxMi4zLTU5LjYgNC4yLTEwNy41LTIzLjEtMTIzLjMtMjYuMy0xNS4xLTY5LjIuNi0xMTIuNiAzOC40LTQuMyAzLjctOC41IDcuNi0xMi41IDExLjUtMi43LTIuNi01LjUtNS4yLTguMy03LjctNDUuNS00MC40LTkxLjEtNTcuNC0xMTguNC00MS41LTI2LjIgMTUuMi0zNCA2MC4zLTIzIDExNi43IDEuMSA1LjYgMi4zIDExLjEgMy43IDE2LjctNi40IDEuOC0xMi43IDMuOC0xOC42IDUuOUMzOC4zIDE5Ni4yIDAgMjI1LjQgMCAyNTUuNmMwIDMxLjIgNDAuOCA2Mi41IDk2LjMgODEuNSA0LjUgMS41IDkgMyAxMy42IDQuMy0xLjUgNi0yLjggMTEuOS00IDE4LTEwLjUgNTUuNS0yLjMgOTkuNSAyMy45IDExNC42IDI3IDE1LjYgNzIuNC0uNCAxMTYuNi0zOS4xIDMuNS0zLjEgNy02LjMgMTAuNS05LjcgNC40IDQuMyA5IDguNCAxMy42IDEyLjQgNDIuOCAzNi44IDg1LjEgNTEuNyAxMTEuMiAzNi42IDI3LTE1LjYgMzUuOC02Mi45IDI0LjQtMTIwLjUtLjktNC40LTEuOS04LjktMy0xMy41IDMuMi0uOSA2LjMtMS45IDkuNC0yLjkgNTcuNy0xOS4xIDk5LjUtNTAgOTkuNS04MS43IDAtMzAuMy0zOS40LTU5LjctOTMuOC03OC40ek0yODIuOSA5Mi4zYzM3LjItMzIuNCA3MS45LTQ1LjEgODcuNy0zNiAxNi45IDkuNyAyMy40IDQ4LjkgMTIuOCAxMDAuNC0uNyAzLjQtMS40IDYuNy0yLjMgMTAtMjIuMi01LTQ0LjctOC42LTY3LjMtMTAuNi0xMy0xOC42LTI3LjItMzYuNC00Mi42LTUzLjEgMy45LTMuNyA3LjctNy4yIDExLjctMTAuN3pNMTY3LjIgMzA3LjVjNS4xIDguNyAxMC4zIDE3LjQgMTUuOCAyNS45LTE1LjYtMS43LTMxLjEtNC4yLTQ2LjQtNy41IDQuNC0xNC40IDkuOS0yOS4zIDE2LjMtNDQuNSA0LjYgOC44IDkuMyAxNy41IDE0LjMgMjYuMXptLTMwLjMtMTIwLjNjMTQuNC0zLjIgMjkuNy01LjggNDUuNi03LjgtNS4zIDguMy0xMC41IDE2LjgtMTUuNCAyNS40LTQuOSA4LjUtOS43IDE3LjItMTQuMiAyNi02LjMtMTQuOS0xMS42LTI5LjUtMTYtNDMuNnptMjcuNCA2OC45YzYuNi0xMy44IDEzLjgtMjcuMyAyMS40LTQwLjZzMTUuOC0yNi4yIDI0LjQtMzguOWMxNS0xLjEgMzAuMy0xLjcgNDUuOS0xLjdzMzEgLjYgNDUuOSAxLjdjOC41IDEyLjYgMTYuNiAyNS41IDI0LjMgMzguN3MxNC45IDI2LjcgMjEuNyA0MC40Yy02LjcgMTMuOC0xMy45IDI3LjQtMjEuNiA0MC44LTcuNiAxMy4zLTE1LjcgMjYuMi0yNC4yIDM5LTE0LjkgMS4xLTMwLjQgMS42LTQ2LjEgMS42cy0zMC45LS41LTQ1LjYtMS40Yy04LjctMTIuNy0xNi45LTI1LjctMjQuNi0zOXMtMTQuOC0yNi44LTIxLjUtNDAuNnptMTgwLjYgNTEuMmM1LjEtOC44IDkuOS0xNy43IDE0LjYtMjYuNyA2LjQgMTQuNSAxMiAyOS4yIDE2LjkgNDQuMy0xNS41IDMuNS0zMS4yIDYuMi00NyA4IDUuNC04LjQgMTAuNS0xNyAxNS41LTI1LjZ6bTE0LjQtNzYuNWMtNC43LTguOC05LjUtMTcuNi0xNC41LTI2LjItNC45LTguNS0xMC0xNi45LTE1LjMtMjUuMiAxNi4xIDIgMzEuNSA0LjcgNDUuOSA4LTQuNiAxNC44LTEwIDI5LjItMTYuMSA0My40ek0yNTYuMiAxMTguM2MxMC41IDExLjQgMjAuNCAyMy40IDI5LjYgMzUuOC0xOS44LS45LTM5LjctLjktNTkuNSAwIDkuOC0xMi45IDE5LjktMjQuOSAyOS45LTM1Ljh6TTE0MC4yIDU3YzE2LjgtOS44IDU0LjEgNC4yIDkzLjQgMzkgMi41IDIuMiA1IDQuNiA3LjYgNy0xNS41IDE2LjctMjkuOCAzNC41LTQyLjkgNTMuMS0yMi42IDItNDUgNS41LTY3LjIgMTAuNC0xLjMtNS4xLTIuNC0xMC4zLTMuNS0xNS41LTkuNC00OC40LTMuMi04NC45IDEyLjYtOTR6bS0yNC41IDI2My42Yy00LjItMS4yLTguMy0yLjUtMTIuNC0zLjktMjEuMy02LjctNDUuNS0xNy4zLTYzLTMxLjItMTAuMS03LTE2LjktMTcuOC0xOC44LTI5LjkgMC0xOC4zIDMxLjYtNDEuNyA3Ny4yLTU3LjYgNS43LTIgMTEuNS0zLjggMTcuMy01LjUgNi44IDIxLjcgMTUgNDMgMjQuNSA2My42LTkuNiAyMC45LTE3LjkgNDIuNS0yNC44IDY0LjV6bTExNi42IDk4Yy0xNi41IDE1LjEtMzUuNiAyNy4xLTU2LjQgMzUuMy0xMS4xIDUuMy0yMy45IDUuOC0zNS4zIDEuMy0xNS45LTkuMi0yMi41LTQ0LjUtMTMuNS05MiAxLjEtNS42IDIuMy0xMS4yIDMuNy0xNi43IDIyLjQgNC44IDQ1IDguMSA2Ny45IDkuOCAxMy4yIDE4LjcgMjcuNyAzNi42IDQzLjIgNTMuNC0zLjIgMy4xLTYuNCA2LjEtOS42IDguOXptMjQuNS0yNC4zYy0xMC4yLTExLTIwLjQtMjMuMi0zMC4zLTM2LjMgOS42LjQgMTkuNS42IDI5LjUuNiAxMC4zIDAgMjAuNC0uMiAzMC40LS43LTkuMiAxMi43LTE5LjEgMjQuOC0yOS42IDM2LjR6bTEzMC43IDMwYy0uOSAxMi4yLTYuOSAyMy42LTE2LjUgMzEuMy0xNS45IDkuMi00OS44LTIuOC04Ni40LTM0LjItNC4yLTMuNi04LjQtNy41LTEyLjctMTEuNSAxNS4zLTE2LjkgMjkuNC0zNC44IDQyLjItNTMuNiAyMi45LTEuOSA0NS43LTUuNCA2OC4yLTEwLjUgMSA0LjEgMS45IDguMiAyLjcgMTIuMiA0LjkgMjEuNiA1LjcgNDQuMSAyLjUgNjYuM3ptMTguMi0xMDcuNWMtMi44LjktNS42IDEuOC04LjUgMi42LTctMjEuOC0xNS42LTQzLjEtMjUuNS02My44IDkuNi0yMC40IDE3LjctNDEuNCAyNC41LTYyLjkgNS4yIDEuNSAxMC4yIDMuMSAxNSA0LjcgNDYuNiAxNiA3OS4zIDM5LjggNzkuMyA1OCAwIDE5LjYtMzQuOSA0NC45LTg0LjggNjEuNHptLTE0OS43LTE1YzI1LjMgMCA0NS44LTIwLjUgNDUuOC00NS44cy0yMC41LTQ1LjgtNDUuOC00NS44Yy0yNS4zIDAtNDUuOCAyMC41LTQ1LjggNDUuOHMyMC41IDQ1LjggNDUuOCA0NS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWFjdGV1cm9wZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTAuNiAyMTEuNzRsNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjEtMi4zLTYuOC0yLjMgNi44LTcuMi4xIDUuNyA0LjN6bTYzLjcgMGw1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMi0uMS0yLjMtNi44LTIuMyA2LjgtNy4yLjEgNS43IDQuM3ptLTkxLjMgNTAuNWgtMy40Yy00LjggMC0zLjggNC0zLjggMTIuMSAwIDQuNy0yLjMgNi4xLTUuOCA2LjFzLTUuOC0xLjQtNS44LTYuMXYtMzYuNmMwLTQuNyAyLjMtNi4xIDUuOC02LjFzNS44IDEuNCA1LjggNi4xYzAgNy4yLS43IDEwLjUgMy44IDEwLjVoMy40YzQuNy0uMSAzLjgtMy45IDMuOC0xMi4zIDAtOS45LTYuNy0xNC4xLTE2LjgtMTQuMWgtLjJjLTEwLjEgMC0xNi44IDQuMi0xNi44IDE0LjFWMjc2YzAgMTAuNCA2LjcgMTQuMSAxNi44IDE0LjFoLjJjMTAuMSAwIDE2LjgtMy44IDE2LjgtMTQuMSAwLTkuODYgMS4xLTEzLjc2LTMuOC0xMy43NnptLTgwLjcgMTcuNGgtMTQuN3YtMTkuM0gxMzljMi41IDAgMy44LTEuMyAzLjgtMy44di0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44aC0xMS40di0xOC4zSDE0MmMyLjUgMCAzLjgtMS4zIDMuOC0zLjh2LTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjhoLTIxLjdjLTIuNC0uMS0zLjcgMS4zLTMuNyAzLjh2NTkuMWMwIDIuNSAxLjMgMy44IDMuOCAzLjhoMjEuOWMyLjUgMCAzLjgtMS4zIDMuOC0zLjh2LTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjh6bS00Mi0xOC41YzQuNi0yIDcuMy02IDcuMy0xMi40di0xMS45YzAtMTAuMS02LjctMTQuMS0xNi44LTE0LjFINzcuNGMtMi41IDAtMy44IDEuMy0zLjggMy44djU5LjFjMCAyLjUgMS4zIDMuOCAzLjggMy44aDMuNGMyLjUgMCAzLjgtMS4zIDMuOC0zLjh2LTIyLjloNS42bDcuNCAyMy41YTQuMSA0LjEgMCAwIDAgNC4zIDMuMmgzLjNjMi44IDAgNC0xLjggMy4yLTQuNHptLTMuOC0xNGMwIDQuOC0yLjUgNi4xLTYuMSA2LjFoLTUuOHYtMjAuOWg1LjhjMy42IDAgNi4xIDEuMyA2LjEgNi4xek0xNzYgMjI2YTMuODIgMy44MiAwIDAgMC00LjItMy40aC02LjlhMy42OCAzLjY4IDAgMCAwLTQgMy40bC0xMSA1OS4yYy0uNSAyLjcuOSA0LjEgMy40IDQuMWgzYTMuNzQgMy43NCAwIDAgMCA0LjEtMy41bDEuOC0xMS4zaDEyLjJsMS44IDExLjNhMy43NCAzLjc0IDAgMCAwIDQuMSAzLjVoMy41YzIuNiAwIDMuOS0xLjQgMy40LTQuMXptLTEyLjMgMzkuM2w0LjctMjkuNyA0LjcgMjkuN3ptODkuMyAyMC4ydi01My4yaDcuNWMyLjUgMCAzLjgtMS4zIDMuOC0zLjh2LTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjhoLTI1LjhjLTIuNSAwLTMuOCAxLjMtMy44IDMuOHYyLjFjMCAyLjUgMS4zIDMuOCAzLjggMy44aDcuM3Y1My4yYzAgMi41IDEuMyAzLjggMy44IDMuOGgzLjRjMi41LjA0IDMuOC0xLjMgMy44LTMuNzZ6bTI0OC0uOGgtMTkuNFYyNThoMTYuMWExLjg5IDEuODkgMCAwIDAgMi0ydi0uOGExLjg5IDEuODkgMCAwIDAtMi0yaC0xNi4xdi0yNS44aDE5LjFhMS44OSAxLjg5IDAgMCAwIDItMnYtLjhhMS43NyAxLjc3IDAgMCAwLTItMS45aC0yMi4yYTEuNjIgMS42MiAwIDAgMC0yIDEuOHY2M2ExLjgxIDEuODEgMCAwIDAgMiAxLjlINTAxYTEuODEgMS44MSAwIDAgMCAyLTEuOXYtLjhhMS44NCAxLjg0IDAgMCAwLTItMS45NnptLTkzLjEtNjIuOWgtLjhjLTEwLjEgMC0xNS4zIDQuNy0xNS4zIDE0LjFWMjc2YzAgOS4zIDUuMiAxNC4xIDE1LjMgMTQuMWguOGMxMC4xIDAgMTUuMy00LjggMTUuMy0xNC4xdi00MC4xYzAtOS4zNi01LjItMTQuMDYtMTUuMy0xNC4wNnptMTAuMiA1Mi40Yy0uMSA4LTMgMTEuMS0xMC41IDExLjFzLTEwLjUtMy4xLTEwLjUtMTEuMXYtMzYuNmMwLTcuOSAzLTExLjEgMTAuNS0xMS4xczEwLjUgMy4yIDEwLjUgMTEuMXptLTQ2LjUtMTQuNWM2LjEtMS42IDkuMi02LjEgOS4yLTEzLjN2LTkuN2MwLTkuNC01LjItMTQuMS0xNS4zLTE0LjFoLTEzLjdhMS44MSAxLjgxIDAgMCAwLTIgMS45djYzYTEuODEgMS44MSAwIDAgMCAyIDEuOWgxLjJhMS43NCAxLjc0IDAgMCAwIDEuOS0xLjl2LTI2LjloMTEuNmwxMC40IDI3LjJhMi4zMiAyLjMyIDAgMCAwIDIuMyAxLjVoMS41YzEuNCAwIDItMSAxLjUtMi4zem0tNi40LTMuOUgzNTV2LTI4LjVoMTAuMmM3LjUgMCAxMC41IDMuMSAxMC41IDExLjF2Ni40YzAgNy44NC0zIDExLjA0LTEwLjUgMTEuMDR6bTg1LjktMzMuMWgtMTMuN2ExLjYyIDEuNjIgMCAwIDAtMiAxLjh2NjNhMS44MSAxLjgxIDAgMCAwIDIgMS45aDEuMmExLjc0IDEuNzQgMCAwIDAgMS45LTEuOXYtMjYuMWgxMC42YzEwLjEgMCAxNS4zLTQuOCAxNS4zLTE0LjF2LTEwLjVjMC05LjQtNS4yLTE0LjEtMTUuMy0xNC4xem0xMC4yIDIyLjhjMCA3LjktMyAxMS4xLTEwLjUgMTEuMWgtMTAuMnYtMjkuMmgxMC4yYzcuNS0uMSAxMC41IDMuMSAxMC41IDExek0yNTkuNSAzMDhsLTIuMy02LjgtMi4zIDYuOC03LjEuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuM3ptMjI3LjYtMTM2LjFhMzY0LjQyIDM2NC40MiAwIDAgMC0zNS42LTExLjNjMTkuNi03OCAxMS42LTEzNC43LTIyLjMtMTUzLjlDMzk0LjctMTIuNjYgMzQzLjMgMTEgMjkxIDYxLjk0cTUuMSA0Ljk1IDEwLjIgMTAuMmM4Mi41LTgwIDExOS42LTUzLjUgMTIwLjktNTIuOCAyMi40IDEyLjcgMzYgNTUuOCAxNS41IDEzNy44YTU4Ny44MyA1ODcuODMgMCAwIDAtODQuNi0xM0MyODEuMSA0My42NCAyMTIuNCAyIDE3MC44IDIgMTQwIDIgMTI3IDIzIDEyMy4yIDI5Ljc0Yy0xOC4xIDMyLTEzLjMgODQuMi4xIDEzMy44LTcwLjUgMjAuMy0xMjAuNyA1NC4xLTEyMC4zIDk1IC41IDU5LjYgMTAzLjIgODcuOCAxMjIuMSA5Mi44LTIwLjUgODEuOS0xMC4xIDEzNS42IDIyLjMgMTUzLjkgMjggMTUuOCA3NS4xIDYgMTM4LjItNTUuMnEtNS4xLTQuOTUtMTAuMi0xMC4yYy04Mi41IDgwLTExOS43IDUzLjUtMTIwLjkgNTIuOC0yMi4zLTEyLjYtMzYtNTUuNi0xNS41LTEzNy45IDEyLjQgMi45IDQxLjggOS41IDg0LjYgMTMgNzEuOSAxMDAuNCAxNDAuNiAxNDIgMTgyLjEgMTQyIDMwLjggMCA0My44LTIxIDQ3LjYtMjcuNyAxOC0zMS45IDEzLjMtODQuMS0uMS0xMzMuOCAxNTIuMy00My44IDE1Ni4yLTEzMC4yIDMzLjktMTc2LjN6TTEzNS45IDM2Ljg0YzIuOS01LjEgMTEuOS0yMC4zIDM0LjktMjAuMyAzNi44IDAgOTguOCAzOS42IDE2My4zIDEyNi4yYTcxNCA3MTQgMCAwIDAtOTMuOS45IDU0Ny43NiA1NDcuNzYgMCAwIDEgNDIuMi01Mi40UTI3Ny4zIDg2IDI3Mi4yIDgxYTU5OC4yNSA1OTguMjUgMCAwIDAtNTAuNyA2NC4yIDU2OS42OSA1NjkuNjkgMCAwIDAtODQuNCAxNC42Yy0uMi0xLjQtMjQuMy04Mi4yLTEuMi0xMjN6bTMwNC44IDQzOC4zYy0yLjkgNS4xLTExLjggMjAuMy0zNC45IDIwLjMtMzYuNyAwLTk4LjctMzkuNC0xNjMuMy0xMjYuMmE2OTUuMzggNjk1LjM4IDAgMCAwIDkzLjktLjkgNTQ3Ljc2IDU0Ny43NiAwIDAgMS00Mi4yIDUyLjRxNS4xIDUuMjUgMTAuMiAxMC4yYTU4OC40NyA1ODguNDcgMCAwIDAgNTAuNy02NC4yYzQ3LjMtNC43IDgwLjMtMTMuNSA4NC40LTE0LjYgMjIuNyA4NC40IDQuNSAxMTcgMS4yIDEyM3ptOS4xLTEzOC42Yy0zLjYtMTEuOS03LjctMjQuMS0xMi40LTM2LjRhMTIuNjcgMTIuNjcgMCAwIDEtMTAuNy01LjdsLS4xLjFhMTkuNjEgMTkuNjEgMCAwIDEtNS40IDMuNmM1LjcgMTQuMyAxMC42IDI4LjQgMTQuNyA0Mi4yYTUzNS4zIDUzNS4zIDAgMCAxLTcyIDEzYzMuNS01LjMgMTcuMi0yNi4yIDMyLjItNTQuMmEyNC42IDI0LjYgMCAwIDEtNi0zLjJjLTEuMSAxLjItMy42IDQuMi0xMC45IDQuMi02LjIgMTEuMi0xNy40IDMwLjktMzMuOSA1NS4yYTcxMS45MSA3MTEuOTEgMCAwIDEtMTEyLjQgMWMtNy45LTExLjItMjEuNS0zMS4xLTM2LjgtNTcuOGEyMSAyMSAwIDAgMS0zLTEuNWMtMS45IDEuNi0zLjkgMy4yLTEyLjYgMy4yIDYuMyAxMS4yIDE3LjUgMzAuNyAzMy44IDU0LjZhNTQ4LjgxIDU0OC44MSAwIDAgMS03Mi4yLTExLjdxNS44NS0yMSAxNC4xLTQyLjljLTMuMiAwLTUuNC4yLTguNC0xYTE3LjU4IDE3LjU4IDAgMCAxLTYuOSAxYy00LjkgMTMuNC05LjEgMjYuNS0xMi43IDM5LjRDLTMxLjcgMjk3LTEyLjEgMjE2IDEyNi43IDE3NS42NGMzLjYgMTEuOSA3LjcgMjQuMSAxMi40IDM2LjQgMTAuNCAwIDEyLjkgMy40IDE0LjQgNS4zYTEyIDEyIDAgMCAxIDIuMy0yLjJjLTUuOC0xNC43LTEwLjktMjkuMi0xNS4yLTQzLjMgNy0xLjggMzIuNC04LjQgNzItMTMtMTUuOSAyNC4zLTI2LjcgNDMuOS0zMi44IDU1LjNhMTQuMjIgMTQuMjIgMCAwIDEgNi40IDggMjMuNDIgMjMuNDIgMCAwIDEgMTAuMi04LjRjNi41LTExLjcgMTcuOS0zMS45IDM0LjgtNTYuOWE3MTEuNzIgNzExLjcyIDAgMCAxIDExMi40LTFjMzEuNSA0NC42IDI4LjkgNDguMSA0Mi41IDY0LjVhMjEuNDIgMjEuNDIgMCAwIDEgMTAuNC03LjRjLTYuNC0xMS40LTE3LjYtMzEtMzQuMy01NS41IDQwLjQgNC4xIDY1IDEwIDcyLjIgMTEuNy00IDE0LjQtOC45IDI5LjItMTQuNiA0NC4yYTIwLjc0IDIwLjc0IDAgMCAxIDYuOCA0LjNsLjEuMWExMi43MiAxMi43MiAwIDAgMSA4LjktNS42YzQuOS0xMy40IDkuMi0yNi42IDEyLjgtMzkuNWEzNTkuNzEgMzU5LjcxIDAgMCAxIDM0LjUgMTFjMTA2LjEgMzkuOSA3NCA4Ny45IDcyLjYgOTAuNC0xOS44IDM1LjEtODAuMSA1NS4yLTEwNS43IDYyLjV6bS0xMTQuNC0xMTRoLTEuMmExLjc0IDEuNzQgMCAwIDAtMS45IDEuOXY0OS44YzAgNy45LTIuNiAxMS4xLTEwLjEgMTEuMXMtMTAuMS0zLjEtMTAuMS0xMS4xdi00OS44YTEuNjkgMS42OSAwIDAgMC0xLjktMS45SDMwOWExLjgxIDEuODEgMCAwIDAtMiAxLjl2NTEuNWMwIDkuNiA1IDE0LjEgMTUuMSAxNC4xaC40YzEwLjEgMCAxNS4xLTQuNiAxNS4xLTE0LjF2LTUxLjVhMiAyIDAgMCAwLTIuMi0xLjl6TTMyMS43IDMwOGwtMi4zLTYuOC0yLjMgNi44LTcuMS4xIDUuNyA0LjMtMi4xIDYuOCA1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zem0tMzEuMSA3LjRsLTIuMy02LjgtMi4zIDYuOC03LjEuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuM3ptNS4xLTMwLjhoLTE5LjR2LTI2LjdoMTYuMWExLjg5IDEuODkgMCAwIDAgMi0ydi0uOGExLjg5IDEuODkgMCAwIDAtMi0yaC0xNi4xdi0yNS44aDE5LjFhMS44OSAxLjg5IDAgMCAwIDItMnYtLjhhMS43NyAxLjc3IDAgMCAwLTItMS45aC0yMi4yYTEuODEgMS44MSAwIDAgMC0yIDEuOXY2M2ExLjgxIDEuODEgMCAwIDAgMiAxLjloMjIuNWExLjc3IDEuNzcgMCAwIDAgMi0xLjl2LS44YTEuODMgMS44MyAwIDAgMC0yLTIuMDZ6bS03LjQtOTkuNEwyODYgMTkybC03LjEuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlYWRtZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjguMyA0Ni41SDM4OC41Yy00OC4xIDAtODkuOSAzMy4zLTEwMC40IDgwLjMtMTAuNi00Ny01Mi4zLTgwLjMtMTAwLjQtODAuM0g0OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2MjQ1LjhjMCAyNi41IDIxLjUgNDggNDggNDhoODkuN2MxMDIuMiAwIDEzMi43IDI0LjQgMTQ3LjMgNzUgLjcgMi44IDUuMiAyLjggNiAwIDE0LjctNTAuNiA0NS4yLTc1IDE0Ny4zLTc1SDUyOGMyNi41IDAgNDgtMjEuNSA0OC00OFY5NC42YzAtMjYuNC0yMS4zLTQ3LjktNDcuNy00OC4xek0yNDIgMzExLjljMCAxLjktMS41IDMuNS0zLjUgMy41SDc4LjJjLTEuOSAwLTMuNS0xLjUtMy41LTMuNVYyODljMC0xLjkgMS41LTMuNSAzLjUtMy41aDE2MC40YzEuOSAwIDMuNSAxLjUgMy41IDMuNXYyMi45em0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41SDc4LjJjLTEuOSAwLTMuNS0xLjUtMy41LTMuNXYtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVoMTYwLjRjMS45IDAgMy41IDEuNSAzLjUgMy41VjI1MXptMC02MC45YzAgMS45LTEuNSAzLjUtMy41IDMuNUg3OC4yYy0xLjkgMC0zLjUtMS41LTMuNS0zLjV2LTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41aDE2MC40YzEuOSAwIDMuNSAxLjUgMy41IDMuNXYyMi45em0yNTkuMyAxMjEuN2MwIDEuOS0xLjUgMy41LTMuNSAzLjVIMzM3LjVjLTEuOSAwLTMuNS0xLjUtMy41LTMuNXYtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVoMTYwLjRjMS45IDAgMy41IDEuNSAzLjUgMy41djIyLjl6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVIMzM3LjVjLTEuOSAwLTMuNS0xLjUtMy41LTMuNVYyMjhjMC0xLjkgMS41LTMuNSAzLjUtMy41aDE2MC40YzEuOSAwIDMuNSAxLjUgMy41IDMuNXYyMi45em0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41SDMzNy41Yy0xLjkgMC0zLjUtMS41LTMuNS0zLjV2LTIyLjhjMC0xLjkgMS41LTMuNSAzLjUtMy41aDE2MC40YzEuOSAwIDMuNSAxLjUgMy41IDMuNVYxOTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlYmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1Ni41IDUwNEMxMTcuMiA1MDQgOSAzODcuOCAxMy4yIDI0OS45IDE2IDE3MC43IDU2LjQgOTcuNyAxMjkuNyA0OS41Yy4zIDAgMS45LS42IDEuMS44LTUuOCA1LjUtMTExLjMgMTI5LjgtMTQuMSAyMjYuNCA0OS44IDQ5LjUgOTAgMi41IDkwIDIuNSAzOC41LTUwLjEtLjYtMTI1LjktLjYtMTI1LjktMTAtMjQuOS00NS43LTQwLjEtNDUuNy00MC4xbDI4LjgtMzEuOGMyNC40IDEwLjUgNDMuMiAzOC43IDQzLjIgMzguNy44LTI5LjYtMjEuOS02MS40LTIxLjktNjEuNEwyNTUuMSA4bDQ0LjMgNTAuMWMtMjAuNSAyOC44LTIxLjkgNjIuNi0yMS45IDYyLjYgMTMuOC0yMyA0My41LTM5LjMgNDMuNS0zOS4zbDI4LjUgMzEuOGMtMjcuNCA4LjktNDUuNCAzOS45LTQ1LjQgMzkuOS0xNS44IDI4LjUtMjcuMSA4OS40LjYgMTI3LjMgMzIuNCA0NC42IDg3LjctMi44IDg3LjctMi44IDEwMi43LTkxLjktMTAuNS0yMjUtMTAuNS0yMjUtNi4xLTUuNS44LTIuOC44LTIuOCA1MC4xIDM2LjUgMTE0LjYgODQuNCAxMTYuMiAyMDQuOEM1MDAuOSA0MDAuMiAzOTkgNTA0IDI1Ni41IDUwNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVkUml2ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUzLjIgMzJIOTQuOEM0Mi40IDMyIDAgNzQuNCAwIDEyNi44djI1OC40QzAgNDM3LjYgNDIuNCA0ODAgOTQuOCA0ODBoMjU4LjRjNTIuNCAwIDk0LjgtNDIuNCA5NC44LTk0LjhWMTI2LjhjMC01Mi40LTQyLjQtOTQuOC05NC44LTk0Ljh6TTE0NC45IDIwMC45djU2LjNjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45VjE1MS45YzAtMTMuMiAxMC43LTIzLjkgMjMuOS0yMy45aDE1NC4yYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOWgtNTYuM2MtMTIuMy0uNi0yNC42IDExLjYtMjQgMjR6bTE3Ni4zIDcyaC01Ni4zYy0xMi4zLS42LTI0LjYgMTEuNi0yNCAyNHY1Ni4zYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOVYyNDcuOWMwLTEzLjIgMTAuNy0yMy45IDIzLjktMjMuOWgxNTQuMmMwIDI3LTIxLjkgNDguOS00OC45IDQ4Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZGRpdEFsaWVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3MyAxMzguNmMtMjUuMiAwLTQ2LjMtMTcuNS01MS45LTQxbDAgMGMtMzAuNiA0LjMtNTQuMiAzMC43LTU0LjIgNjIuNGwwIC4yYzQ3LjQgMS44IDkwLjYgMTUuMSAxMjQuOSAzNi4zYzEyLjYtOS43IDI4LjQtMTUuNSA0NS41LTE1LjVjNDEuMyAwIDc0LjcgMzMuNCA3NC43IDc0LjdjMCAyOS44LTE3LjQgNTUuNS00Mi43IDY3LjVjLTIuNCA4Ni44LTk3IDE1Ni42LTIxMy4yIDE1Ni42UzQ1LjUgNDEwLjEgNDMgMzIzLjRDMTcuNiAzMTEuNSAwIDI4NS43IDAgMjU1LjdjMC00MS4zIDMzLjQtNzQuNyA3NC43LTc0LjdjMTcuMiAwIDMzIDUuOCA0NS43IDE1LjZjMzQtMjEuMSA3Ni44LTM0LjQgMTIzLjctMzYuNGwwLS4zYzAtNDQuMyAzMy43LTgwLjkgNzYuOC04NS41QzMyNS44IDUwLjIgMzQ3LjIgMzIgMzczIDMyYzI5LjQgMCA1My4zIDIzLjkgNTMuMyA1My4zcy0yMy45IDUzLjMtNTMuMyA1My4zek0xNTcuNSAyNTUuM2MtMjAuOSAwLTM4LjkgMjAuOC00MC4yIDQ3LjlzMTcuMSAzOC4xIDM4IDM4LjFzMzYuNi05LjggMzcuOC0zNi45cy0xNC43LTQ5LjEtMzUuNy00OS4xek0zOTUgMzAzLjFjLTEuMi0yNy4xLTE5LjItNDcuOS00MC4yLTQ3LjlzLTM2LjkgMjItMzUuNyA0OS4xYzEuMiAyNy4xIDE2LjkgMzYuOSAzNy44IDM2LjlzMzkuMy0xMSAzOC0zOC4xem0tNjAuMSA3MC44YzEuNS0zLjYtMS03LjctNC45LTguMWMtMjMtMi4zLTQ3LjktMy42LTczLjgtMy42cy01MC44IDEuMy03My44IDMuNmMtMy45IC40LTYuNCA0LjUtNC45IDguMWMxMi45IDMwLjggNDMuMyA1Mi40IDc4LjcgNTIuNHM2NS44LTIxLjYgNzguNy01Mi40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWRkaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyNTZDMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2cy0xMTQuNiAyNTYtMjU2IDI1NkwzNy4xIDUxMmMtMTMuNyAwLTIwLjUtMTYuNS0xMC45LTI2LjJMNzUgNDM3QzI4LjcgMzkwLjcgMCAzMjYuNyAwIDI1NnpNMzQ5LjYgMTUzLjZjMjMuNiAwIDQyLjctMTkuMSA0Mi43LTQyLjdzLTE5LjEtNDIuNy00Mi43LTQyLjdjLTIwLjYgMC0zNy44IDE0LjYtNDEuOCAzNGMtMzQuNSAzLjctNjEuNCAzMy02MS40IDY4LjRsMCAuMmMtMzcuNSAxLjYtNzEuOCAxMi4zLTk5IDI5LjFjLTEwLjEtNy44LTIyLjgtMTIuNS0zNi41LTEyLjVjLTMzIDAtNTkuOCAyNi44LTU5LjggNTkuOGMwIDI0IDE0LjEgNDQuNiAzNC40IDU0LjFjMiA2OS40IDc3LjYgMTI1LjIgMTcwLjYgMTI1LjJzMTY4LjctNTUuOSAxNzAuNi0xMjUuM2MyMC4yLTkuNiAzNC4xLTMwLjIgMzQuMS01NGMwLTMzLTI2LjgtNTkuOC01OS44LTU5LjhjLTEzLjcgMC0yNi4zIDQuNi0zNi40IDEyLjRjLTI3LjQtMTctNjIuMS0yNy43LTEwMC0yOS4xbDAtLjJjMC0yNS40IDE4LjktNDYuNSA0My40LTQ5LjlsMCAwYzQuNCAxOC44IDIxLjMgMzIuOCA0MS41IDMyLjh6TTE3Ny4xIDI0Ni45YzE2LjcgMCAyOS41IDE3LjYgMjguNSAzOS4zcy0xMy41IDI5LjYtMzAuMyAyOS42cy0zMS40LTguOC0zMC40LTMwLjVzMTUuNC0zOC4zIDMyLjEtMzguM3ptMTkwLjEgMzguM2MxIDIxLjctMTMuNyAzMC41LTMwLjQgMzAuNXMtMjkuMy03LjktMzAuMy0yOS42Yy0xLTIxLjcgMTEuOC0zOS4zIDI4LjUtMzkuM3MzMS4yIDE2LjYgMzIuMSAzOC4zem0tNDguMSA1Ni43Yy0xMC4zIDI0LjYtMzQuNiA0MS45LTYzIDQxLjlzLTUyLjctMTcuMy02My00MS45Yy0xLjItMi45IC44LTYuMiAzLjktNi41YzE4LjQtMS45IDM4LjMtMi45IDU5LjEtMi45czQwLjcgMSA1OS4xIDIuOWMzLjEgLjMgNS4xIDMuNiAzLjkgNi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWRoYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQxLjUyIDI4NS41NmMzMy42NSAwIDgyLjM0LTYuOTQgODIuMzQtNDcgLjIyLTYuNzQuODYtMS44Mi0yMC44OC05Ni4yNC00LjYyLTE5LjE1LTguNjgtMjcuODQtNDIuMzEtNDQuNjUtMjYuMDktMTMuMzQtODIuOTItMzUuMzctOTkuNzMtMzUuMzctMTUuNjYgMC0yMC4yIDIwLjE3LTM4Ljg3IDIwLjE3LTE4IDAtMzEuMzEtMTUuMDYtNDguMTItMTUuMDYtMTYuMTQgMC0yNi42NiAxMS0zNC43OCAzMy42Mi0yNy41IDc3LjU1LTI2LjI4IDc0LjI3LTI2LjEyIDc4LjI3IDAgMjQuOCA5Ny42NCAxMDYuMTEgMjI4LjQ3IDEwNi4xMU00MjkgMjU0Ljg0YzQuNjUgMjIgNC42NSAyNC4zNSA0LjY1IDI3LjI1IDAgMzcuNjYtNDIuMzMgNTguNTYtOTggNTguNTYtMTI1Ljc0LjA4LTIzNS45MS03My42NS0yMzUuOTEtMTIyLjMzYTQ5LjU1IDQ5LjU1IDAgMCAxIDQuMDYtMTkuNzJDNTguNTYgMjAwLjg2IDAgMjA4LjkzIDAgMjYwLjYzYzAgODQuNjcgMjAwLjYzIDE4OSAzNTkuNDkgMTg5IDEyMS43OSAwIDE1Mi41MS01NS4wOCAxNTIuNTEtOTguNTggMC0zNC4yMS0yOS41OS03My4wNS04Mi45My05Ni4yNFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZW5yZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE0IDE2OS4xYzAgMTEwLjQtNjEgMjA1LjQtMTQ3LjYgMjQ3LjRDMzAgMzczLjIgOCAzMTcuNyA4IDI1Ni42IDggMTMzLjkgOTcuMSAzMi4yIDIxNCAxMi41djE1Ni42ek0yNTUgNTA0Yy00Mi45IDAtODMuMy0xMS0xMTguNS0zMC40QzE5My43IDQzNy41IDIzOS45IDM4Mi45IDI1NSAzMTljMTUuNSA2My45IDYxLjcgMTE4LjUgMTE4LjggMTU0LjdDMzM4LjcgNDkzIDI5OC4zIDUwNCAyNTUgNTA0em0xOTAuNi04Ny41QzM1OSAzNzQuNSAyOTggMjc5LjYgMjk4IDE2OS4xVjEyLjVjMTE2LjkgMTkuNyAyMDYgMTIxLjQgMjA2IDI0NC4xIDAgNjEuMS0yMiAxMTYuNi01OC40IDE1OS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZXBseWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDQ4MEgxMjhDNTcuNiA0ODAgMCA0MjIuNCAwIDM1MlYxNjBDMCA4OS42IDU3LjYgMzIgMTI4IDMyaDE5MmM3MC40IDAgMTI4IDU3LjYgMTI4IDEyOHYxOTJjMCA3MC40LTU3LjYgMTI4LTEyOCAxMjh6TTE5My40IDI3My4yYy02LjEtMi0xMS42LTMuMS0xNi40LTMuMS03LjIgMC0xMy41IDEuOS0xOC45IDUuNi01LjQgMy43LTkuNiA5LTEyLjggMTUuOGgtMS4xbC00LjItMTguM2gtMjh2MTM4LjloMzYuMXYtODkuN2MxLjUtNS40IDQuNC05LjggOC43LTEzLjIgNC4zLTMuNCA5LjgtNS4xIDE2LjItNS4xIDQuNiAwIDkuOCAxIDE1LjYgMy4xbDQuOC0zNHptMTE1LjIgMTAzLjRjLTMuMiAyLjQtNy43IDQuOC0xMy43IDcuMS02IDIuMy0xMi44IDMuNS0yMC40IDMuNS0xMi4yIDAtMjEuMS0zLTI2LjUtOC45LTUuNS01LjktOC41LTE0LjctOS0yNi40aDgzLjNjLjktNC44IDEuNi05LjQgMi4xLTEzLjkuNS00LjQuNy04LjYuNy0xMi41IDAtMTAuNy0xLjYtMTkuNy00LjctMjYuOS0zLjItNy4yLTcuMy0xMy0xMi41LTE3LjItNS4yLTQuMy0xMS4xLTcuMy0xNy44LTkuMi02LjctMS44LTEzLjUtMi44LTIwLjYtMi44LTIxLjEgMC0zNy41IDYuMS00OS4yIDE4LjNzLTE3LjUgMzAuNS0xNy41IDU1YzAgMjIuOCA1LjIgNDAuNyAxNS42IDUzLjcgMTAuNCAxMy4xIDI2LjggMTkuNiA0OS4yIDE5LjYgMTAuNyAwIDIwLjktMS41IDMwLjQtNC42IDkuNS0zLjEgMTcuMS02LjggMjIuNi0xMS4ybC0xMi0yMy42em0tMjEuOC03MC4zYzMuOCA1LjQgNS4zIDEzLjEgNC42IDIzLjFoLTUxLjdjLjktOS40IDMuNy0xNyA4LjItMjIuNiA0LjUtNS42IDExLjUtOC41IDIxLTguNSA4LjItLjEgMTQuMSAyLjYgMTcuOSA4em03OS45IDIuNWM0LjEgMy45IDkuNCA1LjggMTYuMSA1LjggNyAwIDEyLjYtMS45IDE2LjctNS44czYuMS05LjEgNi4xLTE1LjYtMi0xMS42LTYuMS0xNS40Yy00LjEtMy44LTkuNi01LjctMTYuNy01LjctNi43IDAtMTIgMS45LTE2LjEgNS43LTQuMSAzLjgtNi4xIDguOS02LjEgMTUuNHMyIDExLjcgNi4xIDE1LjZ6bTAgMTAwLjVjNC4xIDMuOSA5LjQgNS44IDE2LjEgNS44IDcgMCAxMi42LTEuOSAxNi43LTUuOHM2LjEtOS4xIDYuMS0xNS42LTItMTEuNi02LjEtMTUuNGMtNC4xLTMuOC05LjYtNS43LTE2LjctNS43LTYuNyAwLTEyIDEuOS0xNi4xIDUuNy00LjEgMy44LTYuMSA4LjktNi4xIDE1LjQgMCA2LjYgMiAxMS43IDYuMSAxNS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZXNlYXJjaGdhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnY0NDhoNDQ4VjMySDB6bTI2Mi4yIDMzNC40Yy02LjYgMy0zMy4yIDYtNTAtMTQuMi05LjItMTAuNi0yNS4zLTMzLjMtNDIuMi02My42LTguOSAwLTE0LjcgMC0yMS40LS42djQ2LjRjMCAyMy41IDYgMjEuMiAyNS44IDIzLjl2OC4xYy02LjktLjMtMjMuMS0uOC0zNS42LS44LTEzLjEgMC0yNi4xLjYtMzMuNi44di04LjFjMTUuNS0yLjkgMjItMS4zIDIyLTIzLjlWMjI1YzAtMjIuNi02LjQtMjEtMjItMjMuOVYxOTNjMjUuOCAxIDUzLjEtLjYgNzAuOS0uNiAzMS43IDAgNTUuOSAxNC40IDU1LjkgNDUuNiAwIDIxLjEtMTYuNyA0Mi4yLTM5LjIgNDcuNSAxMy42IDI0LjIgMzAgNDUuNiA0Mi4yIDU4LjkgNy4yIDcuOCAxNy4yIDE0LjcgMjcuMiAxNC43djcuM3ptMjIuOS0xMzVjLTIzLjMgMC0zMi4yLTE1LjctMzIuMi0zMi4yVjE2N2MwLTEyLjIgOC44LTMwLjQgMzQtMzAuNHMzMC40IDE3LjkgMzAuNCAxNy45bC0xMC43IDcuMnMtNS41LTEyLjUtMTkuNy0xMi41Yy03LjkgMC0xOS43IDcuMy0xOS43IDE5Ljd2MjYuOGMwIDEzLjQgNi42IDIzLjMgMTcuOSAyMy4zIDE0LjEgMCAyMS41LTEwLjkgMjEuNS0yNi44aC0xNy45di0xMC43aDMwLjRjMCAyMC41IDQuNyA0OS45LTM0IDQ5Ljl6bS0xMTYuNSA0NC43Yy05LjQgMC0xMy42LS4zLTIwLS44di02OS43YzYuNC0uNiAxNS0uNiAyMi41LS42IDIzLjMgMCAzNy4yIDEyLjIgMzcuMiAzNC41IDAgMjEuOS0xNSAzNi42LTM5LjcgMzYuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVzb2x2aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4MS4yIDI3OC4yYzQ2LTEzLjMgNDkuNi0yMy41IDQ0LTQzLjRMMzE0IDE5NS41Yy02LjEtMjAuOS0xOC40LTI4LjEtNzEuMS0xMi44TDU0LjcgMjM2LjhsMjguNiA5OC42IDE5Ny45LTU3LjJ6TTI0OC41IDhDMTMxLjQgOCAzMy4yIDg4LjcgNy4yIDE5Ny41bDIyMS45LTYzLjljMzQuOC0xMC4yIDU0LjItMTEuNyA3OS4zLTguMiAzNi4zIDYuMSA1Mi43IDI1IDYxLjQgNTUuMmwxMC43IDM3LjhjOC4yIDI4LjEgMSA1MC42LTIzLjUgNzMuNi0xOS40IDE3LjQtMzEuMiAyNC41LTYxLjQgMzMuMkwyMDMgMzUxLjhsMjIwLjQgMjcuMSA5LjcgMzQuMi00OC4xIDEzLjMtMjg2LjgtMzcuMyAyMyA4MC4yYzM2LjggMjIgODAuMyAzNC43IDEyNi4zIDM0LjcgMTM3IDAgMjQ4LjUtMTExLjQgMjQ4LjUtMjQ4LjNDNDk3IDExOS40IDM4NS41IDggMjQ4LjUgOHpNMzguMyAzODguNkwwIDI1Ni44YzAgNDguNSAxNC4zIDkzLjQgMzguMyAxMzEuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmV2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OS42NyAyNzQuODlhNjUuNTcgNjUuNTcgMCAxIDEtNjUuNTYtNjUuNTYgNjUuNjQgNjUuNjQgMCAwIDEgNjUuNTYgNjUuNTZ6bTEzOS41NS01LjA1aC0uMTNhMjA0LjY5IDIwNC42OSAwIDAgMC03NC4zMi0xNTNsLTQ1LjM4IDI2LjJhMTU3LjA3IDE1Ny4wNyAwIDAgMSA3MS44MSAxMzEuODRDMzgxLjIgMzYxLjUgMzEwLjczIDQzMiAyMjQuMTEgNDMyUzY3IDM2MS41IDY3IDI3NC44OGMwLTgxLjg4IDYzLTE0OS4yNyAxNDMtMTU2LjQzdjM5LjEybDEwOC43Ny02Mi43OUwyMTAgMzJ2MzguMzJjLTEwNi43IDcuMjUtMTkxIDk2LTE5MSAyMDQuNTcgMCAxMTEuNTkgODkuMTIgMjAyLjI5IDIwMC4wNiAyMDV2LjExaDIxMC4xNlYyNjkuODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJvY2tldGNoYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg0LjA0NiwyMjQuOGEzNC4xMTQsMzQuMTE0LDAsMSwwLDM0LjMxNywzNC4xMTNBMzQuMjE3LDM0LjIxNywwLDAsMCwyODQuMDQ2LDIyNC44Wm0tMTEwLjQ1LDBhMzQuMTE0LDM0LjExNCwwLDEsMCwzNC4zMTcsMzQuMTEzQTM0LjIxNywzNC4yMTcsMCwwLDAsMTczLjYsMjI0LjhabTIyMC45MjMsMGEzNC4xMTQsMzQuMTE0LDAsMSwwLDM0LjMxNywzNC4xMTNBMzQuMjE1LDM0LjIxNSwwLDAsMCwzOTQuNTE5LDIyNC44Wm0xNTMuODA3LTU1LjMxOWMtMTUuNTM1LTI0LjE3Mi0zNy4zMS00NS41Ny02NC42ODEtNjMuNjE4LTUyLjg4Ni0zNC44MTctMTIyLjM3NC01NC0xOTUuNjY2LTU0YTQwNS45NzUsNDA1Ljk3NSwwLDAsMC03Mi4wMzIsNi4zNTcsMjM4LjUyNCwyMzguNTI0LDAsMCwwLTQ5LjUxLTM2LjU4OEM5OS42ODQtMTEuNyw0MC44NTkuNzExLDExLjEzNSwxMS40MjFBMTQuMjkxLDE0LjI5MSwwLDAsMCw1LjU4LDM0Ljc4MkMyNi41NDIsNTYuNDU4LDYxLjIyMiw5OS4zLDUyLjcsMTM4LjI1MmMtMzMuMTQyLDMzLjktNTEuMTEyLDc0Ljc3Ni01MS4xMTIsMTE3LjMzNywwLDQzLjM3MiwxNy45Nyw4NC4yNDgsNTEuMTEyLDExOC4xNDgsOC41MjYsMzguOTU2LTI2LjE1NCw4MS44MTYtNDcuMTE2LDEwMy40OTFhMTQuMjg0LDE0LjI4NCwwLDAsMCw1LjU1NSwyMy4zNGMyOS43MjQsMTAuNzA5LDg4LjU0OSwyMy4xNDcsMTU1LjMyNC0xMC4yYTIzOC42NzksMjM4LjY3OSwwLDAsMCw0OS41MS0zNi41ODlBNDA1Ljk3Miw0MDUuOTcyLDAsMCwwLDI4OCw0NjAuMTRjNzMuMzEzLDAsMTQyLjgtMTkuMTU5LDE5NS42NjctNTMuOTc1LDI3LjM3MS0xOC4wNDksNDkuMTQ1LTM5LjQyNiw2NC42NzktNjMuNjE5LDE3LjMwOS0yNi45MjMsMjYuMDctNTUuOTE2LDI2LjA3LTg2LjEyNUM1NzQuMzk0LDIyNS40LDU2NS42MzQsMTk2LjQzLDU0OC4zMjYsMTY5LjQ4NVpNMjg0Ljk4Nyw0MDkuOWEzNDUuNjUsMzQ1LjY1LDAsMCwxLTg5LjQ0Ni0xMS41bC0yMC4xMjksMTkuMzkzYTE4NC4zNjYsMTg0LjM2NiwwLDAsMS0zNy4xMzgsMjcuNTg1LDE0NS43NjcsMTQ1Ljc2NywwLDAsMS01Mi41MjIsMTQuODdjLjk4My0xLjc3MSwxLjg4MS0zLjU2MywyLjg0Mi01LjM1NnEzMC4yNTgtNTUuNjgsMTYuMzI1LTEwMC4wNzhjLTMyLjk5Mi0yNS45NjItNTIuNzc4LTU5LjItNTIuNzc4LTk1LjQsMC04My4xLDEwNC4yNTQtMTUwLjQ2OSwyMzIuODQ2LTE1MC40NjlzMjMyLjg2Nyw2Ny4zNzMsMjMyLjg2NywxNTAuNDY5QzUxNy44NTQsMzQyLjUyNSw0MTMuNiw0MDkuOSwyODQuOTg3LDQwOS45WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSb2Nrcm1zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTE1Ny40IDQxOS41aC05MGwtMTEyLTEzMS4zYy0xNy45LTIwLjQtMy45LTU2LjEgMjYuNi01Ni4xaDc1LjNsLTg0LjYtOTkuMy04NC4zIDk4LjloLTkwTDE5My41IDY3LjJjMTQuNC0xOC40IDQxLjMtMTcuMyA1NC41IDBsMTU3LjcgMTg1LjFjMTkgMjIuOCAyIDU3LjItMjcuNiA1Ni4xLS42IDAtNzQuMi4yLTc0LjIuMmwxMDEuNSAxMTguOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUnVzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDguNTIsMjQ5Ljc1LDQ4Ni43LDIzNi4yNGMtLjE3LTItLjM0LTMuOTMtLjU1LTUuODhsMTguNzItMTcuNWE3LjM1LDcuMzUsMCwwLDAtMi40NC0xMi4yNWwtMjQtOWMtLjU0LTEuODgtMS4wOC0zLjc4LTEuNjctNS42NGwxNS0yMC44M2E3LjM1LDcuMzUsMCwwLDAtNC43OS0xMS41NGwtMjUuNDItNC4xNWMtLjktMS43My0xLjc5LTMuNDUtMi43My01LjE1bDEwLjY4LTIzLjQyYTcuMzUsNy4zNSwwLDAsMC02Ljk1LTEwLjM5bC0yNS44Mi45MXEtMS43OS0yLjIyLTMuNjEtNC40TDQzOSw4MS44NEE3LjM2LDcuMzYsMCwwLDAsNDMwLjE2LDczTDQwNSw3OC45M3EtMi4xNy0xLjgzLTQuNC0zLjYxbC45MS0yNS44MmE3LjM1LDcuMzUsMCwwLDAtMTAuMzktN0wzNjcuNyw1My4yM2MtMS43LS45NC0zLjQzLTEuODQtNS4xNS0yLjczTDM1OC40LDI1LjA4YTcuMzUsNy4zNSwwLDAsMC0xMS41NC00Ljc5TDMyNiwzNS4yNmMtMS44Ni0uNTktMy43NS0xLjEzLTUuNjQtMS42N2wtOS0yNGE3LjM1LDcuMzUsMCwwLDAtMTIuMjUtMi40NGwtMTcuNSwxOC43MmMtMS45NS0uMjEtMy45MS0uMzgtNS44OC0uNTVMMjYyLjI1LDMuNDhhNy4zNSw3LjM1LDAsMCwwLTEyLjUsMEwyMzYuMjQsMjUuM2MtMiwuMTctMy45My4zNC01Ljg4LjU1TDIxMi44Niw3LjEzYTcuMzUsNy4zNSwwLDAsMC0xMi4yNSwyLjQ0bC05LDI0Yy0xLjg5LjU1LTMuNzksMS4wOC01LjY2LDEuNjhsLTIwLjgyLTE1YTcuMzUsNy4zNSwwLDAsMC0xMS41NCw0Ljc5bC00LjE1LDI1LjQxYy0xLjczLjktMy40NSwxLjc5LTUuMTYsMi43M0wxMjAuODgsNDIuNTVhNy4zNSw3LjM1LDAsMCwwLTEwLjM5LDdsLjkyLDI1LjgxYy0xLjQ5LDEuMTktMywyLjM5LTQuNDIsMy42MUw4MS44NCw3M0E3LjM2LDcuMzYsMCwwLDAsNzMsODEuODRMNzguOTMsMTA3Yy0xLjIzLDEuNDUtMi40MywyLjkzLTMuNjIsNC40MWwtMjUuODEtLjkxYTcuNDIsNy40MiwwLDAsMC02LjM3LDMuMjYsNy4zNSw3LjM1LDAsMCwwLS41Nyw3LjEzbDEwLjY2LDIzLjQxYy0uOTQsMS43LTEuODMsMy40My0yLjczLDUuMTZMMjUuMDgsMTUzLjZhNy4zNSw3LjM1LDAsMCwwLTQuNzksMTEuNTRsMTUsMjAuODJjLS41OSwxLjg3LTEuMTMsMy43Ny0xLjY4LDUuNjZsLTI0LDlhNy4zNSw3LjM1LDAsMCwwLTIuNDQsMTIuMjVsMTguNzIsMTcuNWMtLjIxLDEuOTUtLjM4LDMuOTEtLjU1LDUuODhMMy40OCwyNDkuNzVhNy4zNSw3LjM1LDAsMCwwLDAsMTIuNUwyNS4zLDI3NS43NmMuMTcsMiwuMzQsMy45Mi41NSw1Ljg3TDcuMTMsMjk5LjEzYTcuMzUsNy4zNSwwLDAsMCwyLjQ0LDEyLjI1bDI0LDljLjU1LDEuODksMS4wOCwzLjc4LDEuNjgsNS42NWwtMTUsMjAuODNhNy4zNSw3LjM1LDAsMCwwLDQuNzksMTEuNTRsMjUuNDIsNC4xNWMuOSwxLjcyLDEuNzksMy40NSwyLjczLDUuMTRMNDIuNTYsMzkxLjEyYTcuMzUsNy4zNSwwLDAsMCwuNTcsNy4xMyw3LjEzLDcuMTMsMCwwLDAsNi4zNywzLjI2bDI1LjgzLS45MXExLjc3LDIuMjIsMy42LDQuNEw3Myw0MzAuMTZBNy4zNiw3LjM2LDAsMCwwLDgxLjg0LDQzOUwxMDcsNDMzLjA3cTIuMTgsMS44Myw0LjQxLDMuNjFsLS45MiwyNS44MmE3LjM1LDcuMzUsMCwwLDAsMTAuMzksNi45NWwyMy40My0xMC42OGMxLjY5Ljk0LDMuNDIsMS44Myw1LjE0LDIuNzNsNC4xNSwyNS40MmE3LjM0LDcuMzQsMCwwLDAsMTEuNTQsNC43OGwyMC44My0xNWMxLjg2LjYsMy43NiwxLjEzLDUuNjUsMS42OGw5LDI0YTcuMzYsNy4zNiwwLDAsMCwxMi4yNSwyLjQ0bDE3LjUtMTguNzJjMS45NS4yMSwzLjkyLjM4LDUuODguNTVsMTMuNTEsMjEuODJhNy4zNSw3LjM1LDAsMCwwLDEyLjUsMGwxMy41MS0yMS44MmMyLS4xNywzLjkzLS4zNCw1Ljg4LS41NmwxNy41LDE4LjczYTcuMzYsNy4zNiwwLDAsMCwxMi4yNS0yLjQ0bDktMjRjMS44OS0uNTUsMy43OC0xLjA4LDUuNjUtMS42OGwyMC44MiwxNWE3LjM0LDcuMzQsMCwwLDAsMTEuNTQtNC43OGw0LjE1LTI1LjQyYzEuNzItLjksMy40NS0xLjc5LDUuMTUtMi43M2wyMy40MiwxMC42OGE3LjM1LDcuMzUsMCwwLDAsMTAuMzktNi45NWwtLjkxLTI1LjgycTIuMjItMS43OSw0LjQtMy42MUw0MzAuMTYsNDM5YTcuMzYsNy4zNiwwLDAsMCw4Ljg0LTguODRMNDMzLjA3LDQwNXExLjgzLTIuMTcsMy42MS00LjRsMjUuODIuOTFhNy4yMyw3LjIzLDAsMCwwLDYuMzctMy4yNiw3LjM1LDcuMzUsMCwwLDAsLjU4LTcuMTNMNDU4Ljc3LDM2Ny43Yy45NC0xLjcsMS44My0zLjQzLDIuNzMtNS4xNWwyNS40Mi00LjE1YTcuMzUsNy4zNSwwLDAsMCw0Ljc5LTExLjU0bC0xNS0yMC44M2MuNTktMS44NywxLjEzLTMuNzYsMS42Ny01LjY1bDI0LTlhNy4zNSw3LjM1LDAsMCwwLDIuNDQtMTIuMjVsLTE4LjcyLTE3LjVjLjIxLTEuOTUuMzgtMy45MS41NS01Ljg3bDIxLjgyLTEzLjUxYTcuMzUsNy4zNSwwLDAsMCwwLTEyLjVabS0xNTEsMTI5LjA4QTEzLjkxLDEzLjkxLDAsMCwwLDM0MSwzODkuNTFsLTcuNjQsMzUuNjdBMTg3LjUxLDE4Ny41MSwwLDAsMSwxNzcsNDI0LjQ0bC03LjY0LTM1LjY2YTEzLjg3LDEzLjg3LDAsMCwwLTE2LjQ2LTEwLjY4bC0zMS41MSw2Ljc2YTE4Ny4zOCwxODcuMzgsMCwwLDEtMTYuMjYtMTkuMjFIMjU4LjNjMS43MiwwLDIuODktLjI5LDIuODktMS45MVYzMDkuNTVjMC0xLjU3LTEuMTctMS45MS0yLjg5LTEuOTFIMjEzLjQ3bC4wNS0zNC4zNUgyNjJjNC40MSwwLDIzLjY2LDEuMjgsMjkuNzksMjUuODcsMS45MSw3LjU1LDYuMTcsMzIuMTQsOS4wNiw0MCwyLjg5LDguODIsMTQuNiwyNi40NiwyNy4xLDI2LjQ2SDQwN2ExODcuMywxODcuMywwLDAsMS0xNy4zNCwyMC4wOVptMjUuNzcsMzQuNDlBMTUuMjQsMTUuMjQsMCwxLDEsMzY4LDM5OC4wOGguNDRBMTUuMjMsMTUuMjMsMCwwLDEsMzgzLjI0LDQxMy4zMlptLTIyNS42Mi0uNjhhMTUuMjQsMTUuMjQsMCwxLDEtMTUuMjUtMTUuMjVoLjQ1QTE1LjI1LDE1LjI1LDAsMCwxLDE1Ny42Miw0MTIuNjRaTTY5LjU3LDIzNC4xNWwzMi44My0xNC42YTEzLjg4LDEzLjg4LDAsMCwwLDcuMDYtMTguMzNMMTAyLjY5LDE4NmgyNi41NlYzMDUuNzNINzUuNjVBMTg3LjY1LDE4Ny42NSwwLDAsMSw2OS41NywyMzQuMTVaTTU4LjMxLDE5OC4wOWExNS4yNCwxNS4yNCwwLDAsMSwxNS4yMy0xNS4yNUg3NGExNS4yNCwxNS4yNCwwLDEsMS0xNS42NywxNS4yNFptMTU1LjE2LDI0LjQ5LjA1LTM1LjMyaDYzLjI2YzMuMjgsMCwyMy4wNywzLjc3LDIzLjA3LDE4LjYyLDAsMTIuMjktMTUuMTksMTYuNy0yNy42OCwxNi43Wk0zOTksMzA2LjcxYy05LjgsMS4xMy0yMC42My00LjEyLTIyLTEwLjA5LTUuNzgtMzIuNDktMTUuMzktMzkuNC0zMC41Ny01MS40LDE4Ljg2LTExLjk1LDM4LjQ2LTI5LjY0LDM4LjQ2LTUzLjI2LDAtMjUuNTItMTcuNDktNDEuNTktMjkuNC00OS40OC0xNi43Ni0xMS0zNS4yOC0xMy4yMy00MC4yNy0xMy4yM0gxMTYuMzJBMTg3LjQ5LDE4Ny40OSwwLDAsMSwyMjEuMjEsNzAuMDZsMjMuNDcsMjQuNmExMy44MiwxMy44MiwwLDAsMCwxOS42LjQ0bDI2LjI2LTI1YTE4Ny41MSwxODcuNTEsMCwwLDEsMTI4LjM3LDkxLjQzbC0xOCw0MC41N0ExNCwxNCwwLDAsMCw0MDgsMjIwLjQzbDM0LjU5LDE1LjMzYTE4Ny4xMiwxODcuMTIsMCwwLDEsLjQsMzIuNTRINDIzLjcxYy0xLjkxLDAtMi42OSwxLjI3LTIuNjksMy4xM3Y4LjgyQzQyMSwzMDEsNDA5LjMxLDMwNS41OCwzOTksMzA2LjcxWk0yNDAsNjAuMjFBMTUuMjQsMTUuMjQsMCwwLDEsMjU1LjIxLDQ1aC40NUExNS4yNCwxNS4yNCwwLDEsMSwyNDAsNjAuMjFaTTQzNi44NCwyMTRhMTUuMjQsMTUuMjQsMCwxLDEsMC0zMC40OGguNDRhMTUuMjQsMTUuMjQsMCwwLDEtLjQ0LDMwLjQ4WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTYWZhcmkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc0LjY5LDI3NC42OWwtMzcuMzgtMzcuMzhMMTY2LDM0NlpNMjU2LDhDMTE5LDgsOCwxMTksOCwyNTZTMTE5LDUwNCwyNTYsNTA0LDUwNCwzOTMsNTA0LDI1NiwzOTMsOCwyNTYsOFpNNDExLjg1LDE4Mi43OWwxNC43OC02LjEzQTgsOCwwLDAsMSw0MzcuMDgsMTgxaDBhOCw4LDAsMCwxLTQuMzMsMTAuNDZMNDE4LDE5Ny41N2E4LDgsMCwwLDEtMTAuNDUtNC4zM2gwQTgsOCwwLDAsMSw0MTEuODUsMTgyLjc5Wk0zMTQuNDMsOTRsNi4xMi0xNC43OEE4LDgsMCwwLDEsMzMxLDc0LjkyaDBhOCw4LDAsMCwxLDQuMzMsMTAuNDVsLTYuMTMsMTQuNzhhOCw4LDAsMCwxLTEwLjQ1LDQuMzNoMEE4LDgsMCwwLDEsMzE0LjQzLDk0Wk0yNTYsNjBoMGE4LDgsMCwwLDEsOCw4Vjg0YTgsOCwwLDAsMS04LDhoMGE4LDgsMCwwLDEtOC04VjY4QTgsOCwwLDAsMSwyNTYsNjBaTTE4MSw3NC45MmE4LDgsMCwwLDEsMTAuNDYsNC4zM0wxOTcuNTcsOTRhOCw4LDAsMSwxLTE0Ljc4LDYuMTJsLTYuMTMtMTQuNzhBOCw4LDAsMCwxLDE4MSw3NC45MlptLTYzLjU4LDQyLjQ5aDBhOCw4LDAsMCwxLDExLjMxLDBMMTQwLDEyOC43MkE4LDgsMCwwLDEsMTQwLDE0MGgwYTgsOCwwLDAsMS0xMS4zMSwwbC0xMS4zMS0xMS4zMUE4LDgsMCwwLDEsMTE3LjQxLDExNy40MVpNNjAsMjU2aDBhOCw4LDAsMCwxLDgtOEg4NGE4LDgsMCwwLDEsOCw4aDBhOCw4LDAsMCwxLTgsOEg2OEE4LDgsMCwwLDEsNjAsMjU2Wm00MC4xNSw3My4yMS0xNC43OCw2LjEzQTgsOCwwLDAsMSw3NC45MiwzMzFoMGE4LDgsMCwwLDEsNC4zMy0xMC40Nkw5NCwzMTQuNDNhOCw4LDAsMCwxLDEwLjQ1LDQuMzNoMEE4LDgsMCwwLDEsMTAwLjE1LDMyOS4yMVptNC4zMy0xMzZoMEE4LDgsMCwwLDEsOTQsMTk3LjU3bC0xNC43OC02LjEyQTgsOCwwLDAsMSw3NC45MiwxODFoMGE4LDgsMCwwLDEsMTAuNDUtNC4zM2wxNC43OCw2LjEzQTgsOCwwLDAsMSwxMDQuNDgsMTkzLjI0Wk0xOTcuNTcsNDE4bC02LjEyLDE0Ljc4YTgsOCwwLDAsMS0xNC43OS02LjEybDYuMTMtMTQuNzhBOCw4LDAsMSwxLDE5Ny41Nyw0MThaTTI2NCw0NDRhOCw4LDAsMCwxLTgsOGgwYTgsOCwwLDAsMS04LThWNDI4YTgsOCwwLDAsMSw4LThoMGE4LDgsMCwwLDEsOCw4Wm02Ny02LjkyaDBhOCw4LDAsMCwxLTEwLjQ2LTQuMzNMMzE0LjQzLDQxOGE4LDgsMCwwLDEsNC4zMy0xMC40NWgwYTgsOCwwLDAsMSwxMC40NSw0LjMzbDYuMTMsMTQuNzhBOCw4LDAsMCwxLDMzMSw0MzcuMDhabTYzLjU4LTQyLjQ5aDBhOCw4LDAsMCwxLTExLjMxLDBMMzcyLDM4My4yOEE4LDgsMCwwLDEsMzcyLDM3MmgwYTgsOCwwLDAsMSwxMS4zMSwwbDExLjMxLDExLjMxQTgsOCwwLDAsMSwzOTQuNTksMzk0LjU5Wk0yODYuMjUsMjg2LjI1LDExMC4zNCw0MDEuNjYsMjI1Ljc1LDIyNS43NSw0MDEuNjYsMTEwLjM0Wk00MzcuMDgsMzMxaDBhOCw4LDAsMCwxLTEwLjQ1LDQuMzNsLTE0Ljc4LTYuMTNhOCw4LDAsMCwxLTQuMzMtMTAuNDVoMEE4LDgsMCwwLDEsNDE4LDMxNC40M2wxNC43OCw2LjEyQTgsOCwwLDAsMSw0MzcuMDgsMzMxWk00NDQsMjY0SDQyOGE4LDgsMCwwLDEtOC04aDBhOCw4LDAsMCwxLDgtOGgxNmE4LDgsMCwwLDEsOCw4aDBBOCw4LDAsMCwxLDQ0NCwyNjRaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNhbGVzZm9yY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4Ljg5IDI0NS42NGgtMjYuMzVjLjY5LTUuMTYgMy4zMi0xNC4xMiAxMy42NC0xNC4xMiA2Ljc1IDAgMTEuOTcgMy44MiAxMi43MSAxNC4xMnptMTM2LjY2LTEzLjg4Yy0uNDcgMC0xNC4xMS0xLjc3LTE0LjExIDIwczEzLjYzIDIwIDE0LjExIDIwYzEzIDAgMTQuMTEtMTMuNTQgMTQuMTEtMjAgMC0yMS43Ni0xMy42Ni0yMC0xNC4xMS0yMHptLTI0My4yMiAyMy43NmE4LjYzIDguNjMgMCAwIDAtMy4yOSA3LjI5YzAgNC43OCAyLjA4IDYuMDUgMy4yOSA3LjA1IDQuNyAzLjcgMTUuMDcgMi4xMiAyMC45My45NXYtMTYuOTRjLTUuMzItMS4wNy0xNi43My0xLjk2LTIwLjkzIDEuNjV6TTY0MCAyMzJjMCA4Ny41OC04MCAxNTQuMzktMTY1LjM2IDEzNi40My0xOC4zNyAzMy03MC43MyA3MC43NS0xMzIuMiA0MS42My00MS4xNiA5Ni4wNS0xNzcuODkgOTIuMTgtMjEzLjgxLTUuMTdDOC45MSA0MjguNzgtNTAuMTkgMjY2LjUyIDUzLjM2IDIwNS42MSAxOC42MSAxMjYuMTggNzYgMzIgMTY3LjY3IDMyYTEyNC4yNCAxMjQuMjQgMCAwIDEgOTguNTYgNDguN2MyMC43LTIxLjQgNDkuNC0zNC44MSA4MS4xNS0zNC44MSA0Mi4zNCAwIDc5IDIzLjUyIDk4LjggNTguNTdDNTM5IDYzLjc4IDY0MCAxMzIuNjkgNjQwIDIzMnptLTUxOS41NSAzMS44YzAtMTEuNzYtMTEuNjktMTUuMTctMTcuODctMTcuMTctNS4yNy0yLjExLTEzLjQxLTMuNTEtMTMuNDEtOC45NCAwLTkuNDYgMTctNi42NiAyNS4xNy0yLjEyIDAgMCAxLjE3LjcxIDEuNjQtLjQ3LjI0LS43IDIuMzYtNi41OCAyLjU5LTcuMjlhMS4xMyAxLjEzIDAgMCAwLS43LTEuNDFjLTEyLjMzLTcuNjMtNDAuNy04LjUxLTQwLjcgMTIuNyAwIDEyLjQ2IDExLjQ5IDE1LjQ0IDE3Ljg4IDE3LjE3IDQuNzIgMS41OCAxMy4xNyAzIDEzLjE3IDguNyAwIDQtMy41MyA3LjA2LTkuMTcgNy4wNmEzMS43NiAzMS43NiAwIDAgMS0xOS02LjM1Yy0uNDctLjIzLTEuNDItLjcxLTEuNjUuNzFsLTIuNCA3LjQ3Yy0uNDcuOTQuMjMgMS4xOC4yMyAxLjQxIDEuNzUgMS40IDEwLjMgNi41OSAyMi44MiA2LjU5IDEzLjE3IDAgMjEuNC03LjA2IDIxLjQtMTguMTF6bTMyLTQyLjU4Yy0xMC4xMyAwLTE4LjY2IDMuMTctMjEuNCA1LjE4YTEgMSAwIDAgMC0uMjQgMS40MWwyLjU5IDcuMDZhMSAxIDAgMCAwIDEuMTguN2MuNjUgMCA2LjgtNCAxNi45My00IDQgMCA3LjA2LjcxIDkuMTggMi4zNiAzLjYgMi44IDMuMDYgOC4yOSAzLjA2IDEwLjU4LTQuNzktLjMtMTkuMTEtMy40NC0yOS40MSAzLjc2YTE2LjkyIDE2LjkyIDAgMCAwLTcuMzQgMTQuNTRjMCA1LjkgMS41MSAxMC40IDYuNTkgMTQuMzUgMTIuMjQgOC4xNiAzNi4yOCAyIDM4LjEgMS40MSAxLjU4LS4zMiAzLjUzLS42NiAzLjUzLTEuODh2LTMzLjg4Yy4wNC00LjYxLjMyLTIxLjY0LTIyLjc4LTIxLjY0ek0xOTkgMjAwLjI0YTEuMTEgMS4xMSAwIDAgMC0xLjE4LTEuMThIMTg4YTEuMTEgMS4xMSAwIDAgMC0xLjE3IDEuMTh2NzlhMS4xMSAxLjExIDAgMCAwIDEuMTcgMS4xOGg5Ljg4YTEuMTEgMS4xMSAwIDAgMCAxLjE4LTEuMTh6bTU1Ljc1IDI4LjkzYy0yLjEtMi4zMS02Ljc5LTcuNTMtMTcuNjUtNy41My0zLjUxIDAtMTQuMTYuMjMtMjAuNyA4Ljk0LTYuMzUgNy42My02LjU4IDE4LjExLTYuNTggMjEuNDEgMCAzLjEyLjE1IDE0LjI2IDcuMDYgMjEuMTcgMi42NCAyLjkxIDkuMDYgOC4yMyAyMi44MSA4LjIzIDEwLjgyIDAgMTYuNDctMi4zNSAxOC41OC0zLjc2LjQ3LS4yNC43MS0uNzEuMjQtMS44OGwtMi4zNS02LjgzYTEuMjYgMS4yNiAwIDAgMC0xLjQxLS43Yy0yLjU5Ljk0LTYuMzUgMi44Mi0xNS4yOSAyLjgyLTE3LjQyIDAtMTYuODUtMTQuNzQtMTYuOTQtMTYuN2gzNy4xN2ExLjIzIDEuMjMgMCAwIDAgMS4xNy0uOTRjLS4yOSAwIDIuMDctMTQuNy02LjA5LTI0LjIzem0zNi42OSA1Mi42OWMxMy4xNyAwIDIxLjQxLTcuMDYgMjEuNDEtMTguMTEgMC0xMS43Ni0xMS43LTE1LjE3LTE3Ljg4LTE3LjE3LTQuMTQtMS42Ni0xMy40MS0zLjM4LTEzLjQxLTguOTQgMC0zLjc2IDMuMjktNi4zNSA4LjQ3LTYuMzVhMzguMTEgMzguMTEgMCAwIDEgMTYuNyA0LjIzczEuMTguNzEgMS42NS0uNDdjLjIzLS43IDIuMzUtNi41OCAyLjU4LTcuMjlhMS4xMyAxLjEzIDAgMCAwLS43LTEuNDFjLTcuOTEtNC45LTE2Ljc0LTQuOTQtMjAuMjMtNC45NC0xMiAwLTIwLjQ2IDcuMjktMjAuNDYgMTcuNjQgMCAxMi40NiAxMS40OCAxNS40NCAxNy44NyAxNy4xNyA2LjExIDIgMTMuMTcgMy4yNiAxMy4xNyA4LjcgMCA0LTMuNTIgNy4wNi05LjE3IDcuMDZhMzEuOCAzMS44IDAgMCAxLTE5LTYuMzUgMSAxIDAgMCAwLTEuNjUuNzFsLTIuMzUgNy41MmMtLjQ3Ljk0LjIzIDEuMTguMjMgMS40MSAxLjcyIDEuNCAxMC4zMyA2LjU5IDIyLjc5IDYuNTl6TTM1Ny4wOSAyMjRjMC0uNzEtLjI0LTEuMTgtMS4xOC0xLjE4aC0xMS43NmMwLS4xNC45NC04Ljk0IDQuNDctMTIuNDcgNC4xNi00LjE1IDExLjc2LTEuNjQgMTItMS42NCAxLjE3LjQ3IDEuNDEgMCAxLjY0LS40N2wyLjgzLTcuNzdjLjctLjk0IDAtMS4xNy0uMjQtMS40MS01LjA5LTItMTcuMzUtMi44Ny0yNC40NiA0LjI0LTUuNDggNS40OC03IDEzLjkyLTggMTkuNTJoLTguNDdhMS4yOCAxLjI4IDAgMCAwLTEuMTcgMS4xOGwtMS40MiA3Ljc2YzAgLjcuMjQgMS4xNyAxLjE4IDEuMTdoOC4yM2MtOC41MSA0Ny45LTguNzUgNTAuMjEtMTAuMzUgNTUuNTItMS4wOCAzLjYyLTMuMjkgNi45LTUuODggNy43Ni0uMDkgMC0zLjg4IDEuNjgtOS42NC0uMjQgMCAwLS45NC0uNDctMS40MS43MS0uMjQuNzEtMi41OSA2LjgyLTIuODMgNy41M3MwIDEuNDEuNDcgMS40MWM1LjExIDIgMTMgMS43NyAxNy44OCAwIDYuMjgtMi4yOCA5LjcyLTcuODkgMTEuNTMtMTIuOTQgMi43NS03LjcxIDIuODEtOS43OSAxMS43Ni01OS43NGgxMi4yM2ExLjI5IDEuMjkgMCAwIDAgMS4xOC0xLjE4em01My4zOSAxNmMtLjU2LTEuNjgtNS4xLTE4LjExLTI1LjE3LTE4LjExLTE1LjI1IDAtMjMgMTAtMjUuMTYgMTguMTEtMSAzLTMuMTggMTQgMCAyMy41Mi4wOS4zIDQuNDEgMTguMTIgMjUuMTYgMTguMTIgMTQuOTUgMCAyMi45LTkuNjEgMjUuMTctMTguMTIgMy4yMS05LjYxIDEuMDEtMjAuNTIgMC0yMy41MnptNDUuNC0xNi43Yy01LTEuNjUtMTYuNjItMS45LTIyLjExIDUuNDF2LTQuNDdhMS4xMSAxLjExIDAgMCAwLTEuMTgtMS4xN2gtOS40YTEuMTEgMS4xMSAwIDAgMC0xLjE4IDEuMTd2NTUuMjhhMS4xMiAxLjEyIDAgMCAwIDEuMTggMS4xOGg5LjY0YTEuMTIgMS4xMiAwIDAgMCAxLjE4LTEuMTh2LTI3Ljc3YzAtMi45MS4wNS0xMS4zNyA0LjQ2LTE1LjA1IDQuOS00LjkgMTItMy4zNiAxMy40MS0zLjA2YTEuNTcgMS41NyAwIDAgMCAxLjQxLS45NCA3NCA3NCAwIDAgMCAzLjA2LTggMS4xNiAxLjE2IDAgMCAwLS40Ny0xLjQxem00Ni44MSA1NC4xbC0yLjEyLTcuMjljLS40Ny0xLjE4LTEuNDEtLjcxLTEuNDEtLjcxLTQuMjMgMS44Mi0xMC4xNSAxLjg5LTExLjI5IDEuODktNC42NCAwLTE3LjE3LTEuMTMtMTcuMTctMTkuNzYgMC02LjIzIDEuODUtMTkuNzYgMTYuNDctMTkuNzZhMzQuODUgMzQuODUgMCAwIDEgMTEuNTIgMS42NXMuOTQuNDcgMS4xOC0uNzFjLjk0LTIuNTkgMS42NC00LjQ3IDIuNTktNy41My4yMy0uOTQtLjQ3LTEuMTctLjcxLTEuMTctMTEuNTktMy44Ny0yMi4zNC0yLjUzLTI3Ljc2IDAtMS41OS43NC0xNi4yMyA2LjQ5LTE2LjIzIDI3LjUyIDAgMi45LS41OCAzMC4xMSAyOC45NCAzMC4xMWE0NC40NSA0NC40NSAwIDAgMCAxNS41Mi0yLjgzIDEuMyAxLjMgMCAwIDAgLjQ3LTEuNDJ6bTUzLjg3LTM5LjUyYy0uOC0zLTUuMzctMTYuMjMtMjIuMzUtMTYuMjMtMTYgMC0yMy41MiAxMC4xMS0yNS42NCAxOC41OWEzOC41OCAzOC41OCAwIDAgMC0xLjY1IDExLjc2YzAgMjUuODcgMTguODQgMjkuNCAyOS44OCAyOS40IDEwLjgyIDAgMTYuNDYtMi4zNSAxOC41OC0zLjc2LjQ3LS4yNC43MS0uNzEuMjQtMS44OGwtMi4zNi02LjgzYTEuMjYgMS4yNiAwIDAgMC0xLjQxLS43Yy0yLjU5Ljk0LTYuMzUgMi44Mi0xNS4yOSAyLjgyLTE3LjQyIDAtMTYuODUtMTQuNzQtMTYuOTMtMTYuN2gzNy4xNmExLjI1IDEuMjUgMCAwIDAgMS4xOC0uOTRjLS4yNC0uMDEuOTQtNy4wNy0xLjQxLTE1LjU0em0tMjMuMjktNi4zNWMtMTAuMzMgMC0xMyA5LTEzLjY0IDE0LjEySDU0NmMtLjg4LTExLjkyLTcuNjItMTQuMTMtMTIuNzMtMTQuMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNhc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzAxLjg0IDM3OC45MmMtLjMuNi0uNiAxLjA4IDAgMHptMjQ5LjEzLTg3YTEzMS4xNiAxMzEuMTYgMCAwIDAtNTggMTMuNWMtNS45LTExLjktMTItMjIuMy0xMy0zMC4xLTEuMi05LjEtMi41LTE0LjUtMS4xLTI1LjNzNy43LTI2LjEgNy42LTI3LjItMS40LTYuNi0xNC4zLTYuNy0yNCAyLjUtMjUuMjkgNS45YTEyMi44MyAxMjIuODMgMCAwIDAtNS4zIDE5LjFjLTIuMyAxMS43LTI1Ljc5IDUzLjUtMzkuMDkgNzUuMy00LjQtOC41LTguMS0xNi04LjktMjItMS4yLTkuMS0yLjUtMTQuNS0xLjEtMjUuM3M3LjctMjYuMSA3LjYtMjcuMi0xLjQtNi42LTE0LjI5LTYuNy0yNCAyLjUtMjUuMyA1LjktMi43IDExLjQtNS4zIDE5LjEtMzMuODkgNzcuMy00Mi4wOCA5NS40Yy00LjIgOS4yLTcuOCAxNi42LTEwLjQgMjEuNi0uNC44LS43IDEuMy0uOSAxLjcuMy0uNS41LTEgLjUtLjgtMi4yIDQuMy0zLjUgNi43LTMuNSA2Ljd2LjFjLTEuNyAzLjItMy42IDYuMS00LjUgNi4xLS42IDAtMS45LTguNC4zLTE5LjkgNC43LTI0LjIgMTUuOC02MS44IDE1LjctNjMuMS0uMS0uNyAyLjEtNy4yLTcuMy0xMC43LTkuMS0zLjMtMTIuNCAyLjItMTMuMiAyLjJzLTEuNCAyLTEuNCAyIDEwLjEtNDIuNC0xOS4zOS00Mi40Yy0xOC40IDAtNDQgMjAuMi01Ni41OCAzOC41LTcuOSA0LjMtMjUgMTMuNi00MyAyMy41LTYuOSAzLjgtMTQgNy43LTIwLjcgMTEuNC0uNS0uNS0uOS0xLTEuNC0xLjUtMzUuNzktMzguMi0xMDEuODctNjUuMi05OS4wNy0xMTYuNSAxLTE4LjcgNy41LTY3LjggMTI3LjA3LTEyNy40IDk4LTQ4LjggMTc2LjM1LTM1LjQgMTg5Ljg0LTUuNiAxOS40IDQyLjUtNDEuODkgMTIxLjYtMTQzLjY2IDEzMy0zOC43OSA0LjMtNTkuMTgtMTAuNy02NC4yOC0xNi4zLTUuMy01LjktNi4xLTYuMi04LjEtNS4xLTMuMyAxLjgtMS4yIDcgMCAxMC4xIDMgNy45IDE1LjUgMjEuOSAzNi43OSAyOC45IDE4LjcgNi4xIDY0LjE4IDkuNSAxMTkuMTctMTEuOCA2MS43OC0yMy44IDEwOS44Ny05MC4xIDk1Ljc3LTE0NS42QzM4Ni41MiAxOC4zMiAyOTMtLjE4IDIwNC41NyAzMS4yMmMtNTIuNjkgMTguNy0xMDkuNjcgNDguMS0xNTAuNjYgODYuNC00OC42OSA0NS42LTU2LjQ4IDg1LjMtNTMuMjggMTAxLjkgMTEuMzkgNTguOSA5Mi41NyA5Ny4zIDEyNS4wNiAxMjUuNy0xLjYuOS0zLjEgMS43LTQuNSAyLjUtMTYuMjkgOC4xLTc4LjE4IDQwLjUtOTMuNjcgNzQuNy0xNy41IDM4LjggMi45IDY2LjYgMTYuMjkgNzAuNCA0MS43OSAxMS42IDg0LjU4LTkuMyAxMDcuNTctNDMuNnMyMC4yLTc5LjEgOS42LTk5LjVjLS4xLS4zLS4zLS41LS40LS44IDQuMi0yLjUgOC41LTUgMTIuOC03LjUgOC4yOS00LjkgMTYuMzktOS40IDIzLjQ5LTEzLjMtNCAxMC44LTYuOSAyMy44LTguNCA0Mi42LTEuOCAyMiA3LjMgNTAuNSAxOS4xIDYxLjcgNS4yIDQuOSAxMS40OSA1IDE1LjM5IDUgMTMuOCAwIDIwLTExLjQgMjYuODktMjUgOC41LTE2LjYgMTYtMzUuOSAxNi0zNS45cy05LjQgNTIuMiAxNi4zIDUyLjJjOS4zOSAwIDE4Ljc5LTEyLjEgMjMtMTguM3YuMXMuMi0uNC43LTEuMmMxLTEuNSAxLjUtMi40IDEuNS0yLjR2LS4zYzMuOC02LjUgMTIuMS0yMS40IDI0LjU5LTQ2IDE2LjItMzEuOCAzMS42OS03MS41IDMxLjY5LTcxLjVhMjAxLjI0IDIwMS4yNCAwIDAgMCA2LjIgMjUuOGMyLjggOS41IDguNyAxOS45IDEzLjQgMzAtMy44IDUuMi02LjEgOC4yLTYuMSA4LjJhLjMxLjMxIDAgMCAwIC4xLjJjLTMgNC02LjQgOC4zLTkuOSAxMi41LTEyLjc5IDE1LjItMjggMzIuNi0zMCAzNy42LTIuNCA1LjktMS44IDEwLjMgMi44IDEzLjcgMy40IDIuNiA5LjQgMyAxNS42OSAyLjUgMTEuNS0uOCAxOS42LTMuNiAyMy41LTUuNGE4Mi4yIDgyLjIgMCAwIDAgMjAuMTktMTAuNmMxMi41LTkuMiAyMC4xLTIyLjQgMTkuNC0zOS44LS40LTkuNi0zLjUtMTkuMi03LjMtMjguMiAxLjEtMS42IDIuMy0zLjMgMy40LTVDNDM0LjggMzAxLjcyIDQ1MC4xIDI3MCA0NTAuMSAyNzBhMjAxLjI0IDIwMS4yNCAwIDAgMCA2LjIgMjUuOGMyLjQgOC4xIDcuMDkgMTcgMTEuMzkgMjUuNy0xOC41OSAxNS4xLTMwLjA5IDMyLjYtMzQuMDkgNDQuMS03LjQgMjEuMy0xLjYgMzAuOSA5LjMgMzMuMSA0LjkgMSAxMS45LTEuMyAxNy4xLTMuNWE3OS40NiA3OS40NiAwIDAgMCAyMS41OS0xMS4xYzEyLjUtOS4yIDI0LjU5LTIyLjEgMjMuNzktMzkuNi0uMy03LjktMi41LTE1LjgtNS40LTIzLjQgMTUuNy02LjYgMzYuMDktMTAuMiA2Mi4wOS03LjIgNTUuNjggNi41IDY2LjU4IDQxLjMgNjQuNDggNTUuOHMtMTMuOCAyMi42LTE3LjcgMjUtNS4xIDMuMy00LjggNS4xYy41IDIuNiAyLjMgMi41IDUuNiAxLjkgNC42LS44IDI5LjE5LTExLjggMzAuMjktMzguNyAxLjYtMzQtMzEuMDktNzEuNC04OS03MS4xem0tNDI5LjE4IDE0NC43Yy0xOC4zOSAyMC4xLTQ0LjE5IDI3LjctNTUuMjggMjEuM0M1NC42MSA0NTEgNTkuMzEgNDIxLjQyIDgyIDQwMGMxMy44LTEzIDMxLjU5LTI1IDQzLjM5LTMyLjQgMi43LTEuNiA2LjYtNCAxMS40LTYuOS44LS41IDEuMi0uNyAxLjItLjcuOS0uNiAxLjktMS4xIDIuOS0xLjcgOC4yOSAzMC40LjMgNTcuMi0xOS4xIDc4LjN6bTEzNC4zNi05MS40Yy02LjQgMTUuNy0xOS44OSA1NS43LTI4LjA5IDUzLjYtNy0xLjgtMTEuMy0zMi4zLTEuNC02Mi4zIDUtMTUuMSAxNS42LTMzLjEgMjEuOS00MC4xIDEwLjA5LTExLjMgMjEuMTktMTQuOSAyMy43OS0xMC40IDMuNSA1LjktMTIuMiA0OS40LTE2LjIgNTkuMnptMTExIDUzYy0yLjcgMS40LTUuMiAyLjMtNi40IDEuNi0uOS0uNSAxLjEtMi40IDEuMS0yLjRzMTMuOS0xNC45IDE5LjQtMjEuN2MzLjItNCA2LjktOC43IDEwLjg5LTEzLjkgMCAuNS4xIDEgLjEgMS42LS4xMyAxNy45LTE3LjMyIDMwLTI1LjEyIDM0Ljh6bTg1LjU4LTE5LjVjLTItMS40LTEuNy02LjEgNS0yMC43IDIuNi01LjcgOC41OS0xNS4zIDE5LTI0LjVhMzYuMTggMzYuMTggMCAwIDEgMS45IDEwLjhjLS4xIDIyLjUtMTYuMiAzMC45LTI1Ljg5IDM0LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNjaGxpeCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTAuNSAxNTcuN2wtNTQuMi00Ni4xIDczLjQtMzkgNzguMyA0NC4yLTk3LjUgNDAuOXpNMTkyIDEyMi4xbDQ1LjctMjguMiAzNC43IDM0LjYtNTUuNCAyOS0yNS0zNS40em0tNjUuMSA2LjZsMzEuOS0yMi4xTDE3NiAxMzVsLTM2LjcgMjIuNS0xMi40LTI4Ljh6bS0yMy4zIDg4LjJsLTguOC0zNC44IDI5LjYtMTguMyAxMy4xIDM1LjMtMzMuOSAxNy44em0tMjEuMi04My43bDIzLjktMTguMSA4LjkgMjQtMjYuNyAxOC4zLTYuMS0yNC4yek01OSAyMDYuNWwtMy42LTI4LjQgMjIuMy0xNS41IDYuMSAyOC43TDU5IDIwNi41em0tMzAuNiAxNi42bDIwLjgtMTIuOCAzLjMgMzMuNC0yMi45IDEyLTEuMi0zMi42ek0xLjQgMjY4bDE5LjItMTAuMi40IDM4LjItMjEgOC44TDEuNCAyNjh6bTU5LjEgNTkuM2wtMjguMyA4LjMtMS42LTQ2LjggMjUuMS0xMC43IDQuOCA0OS4yek05OSAyNjMuMmwtMzEuMSAxMy01LjItNDAuOEw5MC4xIDIyMWw4LjkgNDIuMnpNMTIzLjIgMzc3bC00MS42IDUuOS04LjEtNjMuNSAzNS4yLTEwLjggMTQuNSA2OC40em0yOC41LTEzOS45bDIxLjIgNTcuMS00Ni4yIDEzLjYtMTMuNy01NC4xIDM4LjctMTYuNnptODUuNyAyMzAuNWwtNzAuOS0zLjMtMjQuMy05NS44IDU1LjItOC42IDQwIDEwNy43em0tODQuOS0yNzkuN2w0Mi4yLTIyLjQgMjggNDUuOS01MC44IDIxLjMtMTkuNC00NC44em00MSA5NC45bDYxLjMtMTguNyA1Mi44IDg2LjYtNzkuOCAxMS4zLTM0LjMtNzkuMnptNTEuNC04NS42bDY3LjMtMjguOCA2NS41IDY1LjQtODguNiAyNi4yLTQ0LjItNjIuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2NyZWVucGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzMy41IDIyLjQ5QzIzMy41IDEwLjA3IDI0My42IDAgMjU2IDBDMjY4LjQgMCAyNzguNSAxMC4wNyAyNzguNSAyMi40OUMyNzguNSAzNC45MSAyNjguNCA0NC45OCAyNTYgNDQuOThDMjQzLjYgNDQuOTggMjMzLjUgMzQuOTEgMjMzLjUgMjIuNDl6TTMxMy40IDI1OUMzMTMuNCAyOTAuNyAyODcuNyAzMTYuNCAyNTYgMzE2LjRDMjI0LjMgMzE2LjQgMTk4LjYgMjkwLjcgMTk4LjYgMjU5QzE5OC42IDIyNy4zIDIyNC4zIDIwMS42IDI1NiAyMDEuNkMyODcuNyAyMDEuNiAzMTMuNCAyMjcuMyAzMTMuNCAyNTl6TTMzNy4yIDM1MEMzNTkuNSAzMzAuMSAzNzMuNyAzMDIuNyAzNzcuMSAyNzNINDk2LjZDNDkzLjEgMzM0LjQgNDY2LjIgMzkyLjIgNDIxLjQgNDM0LjRDMzc2LjcgNDc2LjYgMzE3LjUgNTAwLjIgMjU2IDUwMC4yQzE5NC41IDUwMC4yIDEzNS4zIDQ3Ni42IDkwLjU2IDQzNC40QzQ1LjgzIDM5Mi4yIDE4Ljk0IDMzNC40IDE1LjM5IDI3M0gxMzUuMUMxMzguNSAzMDIuNyAxNTIuNyAzMzAuMSAxNzUgMzUwQzE5Ny4zIDM2OS45IDIyNi4yIDM4MC45IDI1Ni4xIDM4MC45QzI4NS4xIDM4MC45IDMxNC44IDM2OS45IDMzNy4yIDM1MHpNNzMuMTQgMTQwLjNDNzMuNTQgMTUyLjcgNjMuODEgMTYzLjEgNTEuMzkgMTYzLjVDMzguOTcgMTYzLjkgMjguNTkgMTU0LjIgMjguMTggMTQxLjhDMjcuNzggMTI5LjMgMzcuNTIgMTE4LjkgNDkuOTQgMTE4LjVDNjIuMzUgMTE4LjEgNzIuNzQgMTI3LjkgNzMuMTQgMTQwLjN6TTQzOC45IDE0MUM0MzguOSAxMjguNiA0NDguOSAxMTguNSA0NjEuNCAxMTguNUM0NzMuOCAxMTguNSA0ODMuOCAxMjguNiA0ODMuOCAxNDFDNDgzLjggMTUzLjUgNDczLjggMTYzLjUgNDYxLjQgMTYzLjVDNDQ4LjkgMTYzLjUgNDM4LjkgMTUzLjUgNDM4LjkgMTQxek0zMTcuOSA5NS4yN0MzMDAuNiAxMDkuMSAyNzguNyAxMTguMSAyNTYgMTE4LjFDMjMzLjMgMTE4LjEgMjExLjQgMTA5LjEgMTk0LjEgOTUuMjdDMTc2LjggODAuNTUgMTY1LjMgNjAuMTggMTYxLjcgMzcuNzhDMTc2LjggMzEuMzcgMTkyLjUgMjYuNTIgMjA4LjYgMjMuMzFDMjA4LjYgMzUuODggMjEzLjYgNDcuOTMgMjIyLjUgNTYuODJDMjMxLjQgNjUuNyAyNDMuNCA3MC43IDI1NiA3MC43QzI2OC42IDcwLjcgMjgwLjYgNjUuNyAyODkuNSA1Ni44MkMyOTguNCA0Ny45MyAzMDMuNCAzNS44OCAzMDMuNCAyMy4zMUMzMTkuNSAyNi41MiAzMzUuMiAzMS4zNyAzNTAuMyAzNy43OEMzNDYuNyA2MC4xOCAzMzUuMiA4MC41NSAzMTcuOSA5NS4yN0gzMTcuOXpNODIuNzggMjMxQzYxLjQyIDIzOC42IDM4LjA2IDIzOC40IDE2Ljg2IDIzMC40QzE4LjgyIDIxNC4xIDIyLjQ2IDE5OC4xIDI3LjcxIDE4Mi41QzMzLjEgMTg1LjYgMzkuMDUgMTg3LjYgNDUuMjIgMTg4LjVDNTEuMzkgMTg5LjMgNTcuNjcgMTg4LjkgNjMuNjggMTg3LjNDNjkuNjkgMTg1LjYgNzUuMzMgMTgyLjkgODAuMjcgMTc5LjFDODUuMjEgMTc1LjMgODkuMzYgMTcwLjYgOTIuNDcgMTY1LjJDOTUuNTggMTU5LjggOTcuNjEgMTUzLjggOTguNDIgMTQ3LjdDOTkuMjMgMTQxLjUgOTguODMgMTM1LjIgOTcuMjIgMTI5LjJDOTUuNjEgMTIzLjIgOTIuODMgMTE3LjYgODkuMDQgMTEyLjZDODUuMjUgMTA3LjcgODAuNTMgMTAzLjUgNzUuMTQgMTAwLjRDODUuOTYgODguMTEgOTguMDEgNzYuOTQgMTExLjEgNjcuMDdDMTI4LjcgODEuNDIgMTQwLjYgMTAxLjYgMTQ0LjcgMTIzLjlDMTQ4LjggMTQ2LjIgMTQ0LjggMTY5LjMgMTMzLjUgMTg4LjlDMTIyLjEgMjA4LjUgMTA0LjEgMjIzLjQgODIuNzggMjMxVjIzMXpNNDI5LjIgMjMxLjFDNDA3LjkgMjIzLjUgMzg5LjkgMjA4LjUgMzc4LjUgMTg4LjlDMzY3LjIgMTY5LjMgMzYzLjMgMTQ2LjIgMzY3LjQgMTIzLjlDMzcxLjUgMTAxLjcgMzgzLjQgODEuNTQgNDAwLjkgNjcuMTlDNDE0IDc3LjA0IDQyNi4xIDg4LjIxIDQzNi45IDEwMC41QzQyNi4yIDEwNi45IDQxOC41IDExNy4yIDQxNS40IDEyOS4zQzQxMi4yIDE0MS4zIDQxMy4xIDE1NC4xIDQyMC4yIDE2NC45QzQyNi40IDE3NS43IDQzNi42IDE4My42IDQ0OC42IDE4Ni45QzQ2MC42IDE5MC4yIDQ3My41IDE4OC42IDQ4NC4zIDE4Mi42QzQ4OS42IDE5OC4xIDQ5My4yIDIxNC4yIDQ5NS4yIDIzMC40QzQ3My4xIDIzOC41IDQ1MC42IDIzOC43IDQyOS4yIDIzMS4xTDQyOS4yIDIzMS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTY3JpYmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDIuMyAyNTIuN2MtMTYuMS0xOS0yNC43LTQ1LjktMjQuOC03OS45IDAtMTAwLjQgNzUuMi0xNTMuMSAxNjcuMi0xNTMuMSA5OC42LTEuNiAxNTYuOCA0OSAxODQuMyA3MC42bC01MC41IDcyLjEtMzcuMy0yNC42IDI2LjktMzguNmMtMzYuNS0yNC03OS40LTM2LjUtMTIzLTM1LjgtNTAuNy0uOC0xMTEuNyAyNy4yLTExMS43IDc2LjIgMCAxOC43IDExLjIgMjAuNyAyOC42IDE1LjYgMjMuMy01LjMgNDEuOS42IDU1LjggMTQgMjYuNCAyNC4zIDIzLjIgNjcuNi0uNyA5MS45LTI5LjIgMjkuNS04NS4yIDI3LjMtMTE0LjgtOC40em0zMTcuNyA1LjljLTE1LjUtMTguOC0zOC45LTI5LjQtNjMuMi0yOC42LTM4LjEtMi03MS4xIDI4LTcwLjUgNjcuMi0uNyAxNi44IDYgMzMgMTguNCA0NC4zIDE0LjEgMTMuOSAzMyAxOS43IDU2LjMgMTQuNCAxNy40LTUuMSAyOC42LTMuMSAyOC42IDE1LjYgMCA0LjMtLjUgOC41LTEuNCAxMi43LTE2LjcgNDAuOS01OS41IDY0LjQtMTIxLjQgNjQuNC01MS45LjItMTAyLjQtMTYuNC0xNDQuMS00Ny4zbDMzLjctMzkuNC0zNS42LTI3LjRMMCA0MDYuM2wxNS40IDEzLjhjNTIuNSA0Ni44IDEyMC40IDcyLjUgMTkwLjcgNzIuMiA1MS40IDAgOTQuNC0xMC41IDEzMy42LTQ0LjEgNTcuMS01MS40IDU0LjItMTQ5LjIgMjAuMy0xODkuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2VhcmNoZW5naW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ2MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIwLjYgMTMwLjNsLTY3LjIgMjguMlY0My4yTDk4LjcgMjMzLjVsNTQuNy0yNC4ydjEzMC4zbDY3LjItMjA5LjN6bS04My4yLTk2LjdsLTEuMyA0LjctMTUuMiA1Mi45QzgwLjYgMTA2LjcgNTIgMTQ1LjggNTIgMTkxLjVjMCA1Mi4zIDM0LjMgOTUuOSA4My40IDEwNS41djUzLjZDNTcuNSAzNDAuMSAwIDI3Mi40IDAgMTkxLjZjMC04MC41IDU5LjgtMTQ3LjIgMTM3LjQtMTU4em0zMTEuNCA0NDcuMmMtMTEuMiAxMS4yLTIzLjEgMTIuMy0yOC42IDEwLjUtNS40LTEuOC0yNy4xLTE5LjktNjAuNC00NC40LTMzLjMtMjQuNi0zMy42LTM1LjctNDMtNTYuNy05LjQtMjAuOS0zMC40LTQyLjYtNTcuNS01Mi40bC05LjctMTQuN2MtMjQuNyAxNi45LTUzIDI2LjktODEuMyAyOC43bDIuMS02LjYgMTUuOS00OS41YzQ2LjUtMTEuOSA4MC45LTU0IDgwLjktMTA0LjIgMC01NC41LTM4LjQtMTAyLjEtOTYtMTA3LjFWMzIuM0MyNTQuNCAzNy40IDMyMCAxMDYuOCAzMjAgMTkxLjZjMCAzMy42LTExLjIgNjQuNy0yOSA5MC40bDE0LjYgOS42YzkuOCAyNy4xIDMxLjUgNDggNTIuNCA1Ny40czMyLjIgOS43IDU2LjggNDNjMjQuNiAzMy4yIDQyLjcgNTQuOSA0NC41IDYwLjNzLjcgMTcuMy0xMC41IDI4LjV6bS05LjktMTcuOWMwLTQuNC0zLjYtOC04LThzLTggMy42LTggOCAzLjYgOCA4IDggOC0zLjYgOC04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTZWxsY2FzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTMuNCAzMkg5NC43QzQyLjYgMzIgMCA3NC42IDAgMTI2LjZ2MjU4LjdDMCA0MzcuNCA0Mi42IDQ4MCA5NC43IDQ4MGgyNTguN2M1Mi4xIDAgOTQuNy00Mi42IDk0LjctOTQuNlYxMjYuNmMwLTUyLTQyLjYtOTQuNi05NC43LTk0LjZ6bS01MCAzMTYuNGMtMjcuOSA0OC4yLTg5LjkgNjQuOS0xMzguMiAzNy4yLTIyLjkgMzkuOC01NC45IDguNi00Mi4zLTEzLjJsMTUuNy0yNy4yYzUuOS0xMC4zIDE5LjItMTMuOSAyOS41LTcuOSAxOC42IDEwLjgtLjEtLjEgMTguNSAxMC43IDI3LjYgMTUuOSA2My40IDYuMyA3OS40LTIxLjMgMTUuOS0yNy42IDYuMy02My40LTIxLjMtNzkuNC0xNy44LTEwLjItLjYtLjQtMTguNi0xMC42LTI0LjYtMTQuMi0zLjQtNTEuOSAyMS42LTM3LjUgMTguNiAxMC44LS4xLS4xIDE4LjUgMTAuNyA0OC40IDI4IDY1LjEgOTAuMyAzNy4yIDEzOC41em0yMS44LTIwOC44Yy0xNyAyOS41LTE2LjMgMjguOC0xOSAzMS41LTYuNSA2LjUtMTYuMyA4LjctMjYuNSAzLjYtMTguNi0xMC44LjEuMS0xOC41LTEwLjctMjcuNi0xNS45LTYzLjQtNi4zLTc5LjQgMjEuM3MtNi4zIDYzLjQgMjEuMyA3OS40YzAgMCAxOC41IDEwLjYgMTguNiAxMC42IDI0LjYgMTQuMiAzLjQgNTEuOS0yMS42IDM3LjUtMTguNi0xMC44LjEuMS0xOC41LTEwLjctNDguMi0yNy44LTY0LjktOTAuMS0zNy4xLTEzOC40IDI3LjktNDguMiA4OS45LTY0LjkgMTM4LjItMzcuMmw0LjgtOC40YzE0LjMtMjQuOSA1Mi0zLjMgMzcuNyAyMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTZWxsc3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTM5LjcxIDIzNy4zMDhjMy4wNjQtMTIuMjU3IDQuMjktMjQuODIxIDQuMjktMzcuMzg0QzU0NCAxMDcuMzgyIDQ2OC42MTggMzIgMzc2LjA3NiAzMmMtNzcuMjIgMC0xNDQuNjM0IDUzLjAxMi0xNjMuMDIgMTI3Ljc4MS0xNS4zMjItMTMuMTc2LTM0LjkzNC0yMC41My01NS4xNTctMjAuNTMtNDYuMjcxIDAtODMuOTYyIDM3LjY5LTgzLjk2MiA4My45NjEgMCA3LjM1NC45MiAxNS4wMTUgMy4wNjUgMjIuMzY5LTQyLjkgMjAuMjI1LTcwLjc4NSA2My43MzgtNzAuNzg1IDExMS4yMzRDNi4yMTYgNDI0Ljg0MyA2MS42OCA0ODAgMTI5LjQwMSA0ODBoMzgxLjE5OGM2Ny43MiAwIDEyMy4xODQtNTUuMTU3IDEyMy4xODQtMTIzLjE4NC4wMDEtNTYuMzg0LTM4LjkxNi0xMDYuMDI1LTk0LjA3My0xMTkuNTA4ek0xOTkuODggNDAxLjU1NGMwIDguMjc0LTcuMDQ4IDE1LjMyMS0xNS4zMjEgMTUuMzIxSDE1My42MWMtOC4yNzQgMC0xNS4zMjEtNy4wNDgtMTUuMzIxLTE1LjMyMVYyOTAuNjI2YzAtOC4yNzMgNy4wNDgtMTUuMzIxIDE1LjMyMS0xNS4zMjFoMzAuOTQ5YzguMjc0IDAgMTUuMzIxIDcuMDQ4IDE1LjMyMSAxNS4zMjF2MTEwLjkyOHptODkuNDc3IDBjMCA4LjI3NC03LjA0OCAxNS4zMjEtMTUuMzIyIDE1LjMyMWgtMzAuOTQ5Yy04LjI3NCAwLTE1LjMyMS03LjA0OC0xNS4zMjEtMTUuMzIxVjI3MC4wOTZjMC04LjI3NCA3LjA0OC0xNS4zMjEgMTUuMzIxLTE1LjMyMWgzMC45NDljOC4yNzQgMCAxNS4zMjIgNy4wNDggMTUuMzIyIDE1LjMyMXYxMzEuNDU4em04OS40NzcgMGMwIDguMjc0LTcuMDQ3IDE1LjMyMS0xNS4zMjEgMTUuMzIxaC0zMC45NDljLTguMjc0IDAtMTUuMzIyLTcuMDQ4LTE1LjMyMi0xNS4zMjFWMjM4Ljg0YzAtOC4yNzQgNy4wNDgtMTUuMzIxIDE1LjMyMi0xNS4zMjFoMzAuOTQ5YzguMjc0IDAgMTUuMzIxIDcuMDQ4IDE1LjMyMSAxNS4zMjF2MTYyLjcxNHptODcuMDI3IDBjMCA4LjI3NC03LjA0OCAxNS4zMjEtMTUuMzIyIDE1LjMyMWgtMjguNDk3Yy04LjI3NCAwLTE1LjMyMS03LjA0OC0xNS4zMjEtMTUuMzIxVjE3Ni45NDFjMC04LjU3OSA3LjA0Ny0xNS42MjggMTUuMzIxLTE1LjYyOGgyOC40OTdjOC4yNzQgMCAxNS4zMjIgNy4wNDggMTUuMzIyIDE1LjYyOHYyMjQuNjEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTZXJ2aWNlc3RhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODggMjE2YzgxLjcgMTAuMiAyNzMuNyAxMDIuMyAzMDQgMjMySDBjOTkuNS04LjEgMTg0LjUtMTM3IDg4LTIzMnptMzItMTUyYzMyLjMgMzUuNiA0Ny43IDgzLjkgNDYuNCAxMzMuNkMyNDkuMyAyMzEuMyAzNzMuNyAzMjEuMyA0MDAgNDQ4aDk2QzQ1NS4zIDIzMS45IDIyMi44IDc5LjUgMTIwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGlydHNpbmJ1bGsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAwIDQxMC4zbDMwLjYgMTMuNCA0LjQtOS45LTMwLjYtMTMuNHptMzkuNCAxNy41bDMwLjYgMTMuNCA0LjQtOS45LTMwLjYtMTMuNHptMTcyLjEtMTRsNC40IDkuOSAzMC42LTEzLjQtNC40LTkuOXpNMTc5LjEgNDQ1bDMwLjMgMTMuNyA0LjQtOS45LTMwLjMtMTMuNHpNNjAuNCAzOTIuOEw5MSA0MDYuMmw0LjQtOS42LTMwLjYtMTMuN3ptMjExLjQgMzguNWw0LjQgOS45IDMwLjYtMTMuNC00LjQtOS45em0tMzkuMyAxNy41bDQuNCA5LjkgMzAuNi0xMy43LTQuNC05LjZ6bTExOC40LTUyLjJsNC40IDkuNiAzMC42LTEzLjQtNC40LTkuOXpNMTcwIDQ2LjZoLTMzLjV2MTAuNUgxNzB6bS00Ny4yIDBIODkuMnYxMC41aDMzLjV6bS00Ny4zIDBINDIuM3YxMC41aDMzLjN6bTE0MS41IDBoLTMzLjJ2MTAuNUgyMTd6bTk0LjUgMEgyNzh2MTAuNWgzMy41em00Ny4zIDBoLTMzLjV2MTAuNWgzMy41em0tOTQuNiAwSDIzMXYxMC41aDMzLjJ6bTE0MS41IDBoLTMzLjN2MTAuNWgzMy4zek01Mi44IDM1MS4xSDQydjMzLjVoMTAuOHptNzAtMjE1LjlIODkuMnYxMC41aDMzLjV6bS03MCAxMC42aDIyLjh2LTEwLjVINDJ2MzMuNWgxMC44em0xNjguOSAyMjguNmM1MC41IDAgOTEuMy00MC44IDkxLjMtOTEuMyAwLTUwLjItNDAuOC05MS4zLTkxLjMtOTEuMy01MC4yIDAtOTEuMyA0MS4xLTkxLjMgOTEuMyAwIDUwLjUgNDEuMSA5MS4zIDkxLjMgOTEuM3ptLTQ4LjItMTExLjFjMC0yNS40IDI5LjUtMzEuOCA0OS42LTMxLjggMTYuOSAwIDI5LjIgNS44IDQ0LjMgMTJsLTguOCAxNi45aC0uOWMtNi40LTkuOS0yNC44LTEzLjEtMzUuNi0xMy4xLTkgMC0yOS44IDEuOC0yOS44IDE0LjkgMCAyMS42IDc4LjUtMTAuMiA3OC41IDM3LjkgMCAyNS40LTMxLjUgMzEuMi01MSAzMS4yLTE4LjEgMC0zMi40LTIuOS00Ny4yLTEyLjJsOS0xOC40aC45YzYuMSAxMi4yIDIzLjYgMTQuOSAzNS45IDE0LjkgOC43IDAgMzIuNy0xLjIgMzIuNy0xNC4zIDAtMjYuMS03Ny42IDYuMy03Ny42LTM4ek01Mi44IDE3OC40SDQyVjIxMmgxMC44em0zNDIuNCAyMDYuMkg0MDZ2LTMzLjVoLTEwLjh6TTUyLjggMzA3LjlINDJ2MzMuNWgxMC44ek0wIDMuN3Y0MDZsMjIxLjcgOTguNkw0NDggNDA5LjdWMy43em00MTguOCAzODcuMUwyMjIgNDc2LjUgMjkuMiAzOTAuOFYxMjAuN2gzODkuN3YyNzAuMXptMC0yOTkuM0gyOS4yVjMyLjloMzg5Ljd2NTguNnptLTM2NiAxMzAuMUg0MnYzMy41aDEwLjh6bTAgNDMuMkg0MnYzMy41aDEwLjh6TTE3MCAxMzUuMmgtMzMuNXYxMC41SDE3MHptMjI1LjIgMTYzLjFINDA2di0zMy41aC0xMC44em0wLTQzLjJINDA2di0zMy41aC0xMC44ek0yMTcgMTM1LjJoLTMzLjJ2MTAuNUgyMTd6TTM5NS4yIDIxMkg0MDZ2LTMzLjVoLTEwLjh6bTAgMTI5LjVINDA2VjMwOGgtMTAuOHptLTEzMS0yMDYuM0gyMzF2MTAuNWgzMy4yem00Ny4zIDBIMjc4djEwLjVoMzMuNXptODMuNyAzMy42SDQwNnYtMzMuNWgtMzMuNXYxMC41aDIyLjh6bS0zNi40LTMzLjZoLTMzLjV2MTAuNWgzMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaG9lbGFjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDQuOSAzMzFjMi4yLTEuMSA0LjQtMi4zIDYuNS0zLjdsOC4zLTQuOGMxLjUtMS4xIDQuNC0zLjQgOC43LTYuN2wuNS0uNWMzLjQtMy40IDcuMi01IDExLjMtNC45YzEuOCAwIDMuOSAuNSA2LjQgMS41bDMxLTI3LjVjLjktLjcgMS43LTEuMyAyLjYtMS44aC4yYzMuMy0xLjkgNi0xLjggOC4yIC40YzMuOSAyLjEgNC4yIDUuNiAuOSAxMC42TDQ1Ni45IDMyMmMuMiAuNSAuNCAxIC40IDEuNWMuNSAyLjIgLjMgNC40LS41IDYuNmMtLjcgMS41LTEuOCAyLjktMy4xIDQuMmMtMS40IDEuNC0yLjcgMi44LTQuMiA0LjJsLTE4LjggMTMuN2MtMS43IDEuMi0zLjQgMi4zLTUuMSAzLjNjLTIuMSAxLjMtNC4zIDIuNS02LjYgMy42Yy0xIC40LTEuOSAuOS0yLjkgMS4zYy01LjkgMi41LTExLjkgNC4yLTE4LjIgNWMtMi45IDI0LjUtMTEuMyA0Ny4xLTI1LjEgNjcuOGMtMTcuNSAyNS43LTQxLjQgNDUuNC03MS44IDU4LjhjLTMwLjIgMTMuNS02MyAyMC4yLTk4LjIgMjAuMmMtNDguNi0uNS04OC0xMS40LTExOC4yLTMyLjhDNDkuNSA0NTQuNCAzMiA0MjEuNSAzMiAzODAuM3YtNS42YzEuMi0yOC4xIDkuNS01NC42IDI0LjgtNzkuOGMxNS4xLTI0LjkgMzcuMS00MS43IDY2LjEtNTAuNWMxNC45LTQuNCAyOS45LTYuNiA0NS02LjZjMTUuNSAwIDMxLjYgMi45IDQ4LjEgOC42czM1LjIgMTUuNSA1NS45IDI5LjVMMzI2IDMxMi4yYzE1LjEgOS44IDI4LjggMTYuNSA0MS4yIDIwYy0yLjYtMjUuMS0xMS43LTQ2LjYtMjcuMy02NC41Yy0xNS43LTE4LjEtMzUuNi0zMS4zLTU5LjktMzkuN2wtMjMuMy04Yy0yMS40LTcuNS0zNy4zLTE0LjktNDcuNy0yMi4yYy0yOC4yLTE5LjEtNDMuOC00NS4yLTQ3LTc4LjVsLS41LTkuOGMwLTMyLjEgMTMtNTguOSAzOS04MC41QzIyMy41IDkuNyAyNTEuMSAwIDI4MyAwYzI0IDAgNDUuNiA2LjkgNjQuNyAyMC44YzE5LjIgMTQgMzAuMSAzMy44IDMyLjYgNTkuNGwuNSAxMGMwIDE4LjYtNC44IDM0LjUtMTQuNCA0Ny43Yy05LjggMTMuMi0xOC41IDE5LjktMjYgMTkuOWMtMS42LS4xLTMuMS0uMy00LjUtLjZsLTM0IDMyYy01LjUgMy05LjIgMi41LTExLjEtMS42Yy0xLjktMi4yLTEuOC00LjkgLjUtOC4ybC4yLS4yYy41LS43IDEuMi0xLjUgMi0yLjRsMzEuNi0zMGMtLjQtMS41LS42LTMuMS0uNi00LjhjMC00LjEgMS42LTcuNiA0LjktMTAuNGMxMy44LTEyLjQgMjAuOC0yNi43IDIwLjgtNDIuOGMwLTE2LTYuMS0yOS41LTE4LjItNDAuNHMtMjguNy0xNi41LTQ5LjctMTYuOGMtMjYuMiAwLTQ3LjggNy45LTY0LjcgMjMuN1MxOTIuMyA4OS45IDE5Mi4zIDExMmMwIDE3LjggNi45IDMzLjkgMjAuNiA0OC4zYzEzLjYgMTQuMiAzNC42IDI1LjQgNjMgMzMuNWMzOS44IDExLjUgNzAuMiAzMSA5MS4zIDU4LjNjMTguNyAyNC4yIDI5LjEgNTEuMyAzMS4zIDgxLjRjMi4yLS43IDQuMy0xLjUgNi41LTIuNnpNMjk0LjEgMTc4LjdjMCAxLjEgLjYgMS42IDEuOCAxLjZjLjEgMCA5LjctOC45IDI4LjgtMjYuNmMwLTIuNC01LjEgLjktMTUuMyAxMGMtMTAuMiA5LjItMTUuMyAxNC4yLTE1LjMgMTQuOXptOCA2LjRjMC0xLS41LTEuNS0xLjUtMS41Yy0xLjEgMC0yLjEgLjUtMi45IDEuNmMtMS45LS4xLTMuMyAuMS00LjIgLjdjLS40IC4yLS41IC41LS41IC43YzAgLjcgLjUgMS4zIDEuNSAxLjZoMy4zYzIuOS0xLjEgNC40LTIuMiA0LjQtMy4zem0yMi42LTE5LjljMC0yLjgtMS42LTIuOC00LjkgMGMtMS42IDEuNS0zLjYgMy41LTYgNi4yYy0uOCAuNi0yLjYgMi4yLTUuMyA0LjljLTIuOCAyLjktNC4yIDQuNy00LjIgNS4zbC4yIDEuM2MuNyAuMiAxLjIgLjQgMS41IC40Yy4xIDAgMy4zLTIuOSA5LjUtOC43czkuMy04LjkgOS4zLTkuM3ptMTU5LjcgMTIwbC0zMC42IDI3YzEuOCAxIDMuMiAyLjQgNCA0LjJsMzAuMi0yN2MuMi0xLjIgLjEtMi4yLS41LTIuOWMtLjYtLjUtMS42LS45LTMuMS0xLjN6bS0xLjYtLjlsLS43LS43LTI3IDIxLjkgMS42IDIgMjYtMjMuMXpNMzY2LjYgMzYzLjljLTgtMi4xLTE1LjQtNC42LTIyLjItNy41Yy0xNS4zLTYuMi0zNC4zLTE3LTU3LTMyLjRMMjUwIDI5OC43Yy0xNS44LTEwLjEtMzAuMi0xNy42LTQzLjItMjIuNmMtMTMuMS00LjktMjYtNy4zLTM4LjYtNy4zaC01LjVjLTMyLjIgMS43LTU3LjIgMTMuOC03NSAzNi4yYy0xNi42IDIwLjgtMjUgNDUuMy0yNSA3My42YzAgMzEuOCAxMi44IDU2LjcgMzguMiA3NC43YzI1LjQgMTguMSA2MC4yIDI3LjEgMTA0LjQgMjcuMWMzNC43IDAgNjQtNi4yIDg3LjgtMTguNmMyMy43LTEyLjQgNDIuMS0yOC44IDU1LjItNDkuMmM5LjgtMTUuNSAxNS45LTMxLjggMTguMi00OC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaG9waWZ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4OC4zMiwxMDQuMWE0LjY2LDQuNjYsMCwwLDAtNC40LTRjLTIsMC0zNy4yMy0uOC0zNy4yMy0uOHMtMjEuNjEtMjAuODItMjkuNjItMjguODNWNTAzLjJMNDQyLjc2LDQ3MlMzODguNzIsMTA2LjUsMzg4LjMyLDEwNC4xWk0yODguNjUsNzAuNDdhMTE2LjY3LDExNi42NywwLDAsMC03LjIxLTE3LjYxQzI3MSwzMi44NSwyNTUuNDIsMjIsMjM3LDIyYTE1LDE1LDAsMCwwLTQsLjRjLS40LS44LTEuMi0xLjItMS42LTJDMjIzLjQsMTEuNjMsMjEzLDcuNjMsMjAwLjU4LDhjLTI0LC44LTQ4LDE4LTY3LjI1LDQ4LjgzLTEzLjYxLDIxLjYyLTI0LDQ4Ljg0LTI2LjgyLDcwLjA2LTI3LjYyLDguNC00Ni44MywxNC40MS00Ny4yMywxNC44MS0xNCw0LjQtMTQuNDEsNC44LTE2LDE4LTEuMiwxMC0zOCwyOTEuODItMzgsMjkxLjgyTDMwNy44Niw1MDRWNjUuNjdhNDEuNjYsNDEuNjYsMCwwLDAtNC40LjRTMjk3Ljg2LDY3LjY3LDI4OC42NSw3MC40N1pNMjMzLjQxLDg3LjY5Yy0xNiw0LjgtMzMuNjMsMTAuNC01MC44NCwxNS42MSw0LjgtMTguODIsMTQuNDEtMzcuNjMsMjUuNjItNTAsNC40LTQuNCwxMC40MS05LjYxLDE3LjIxLTEyLjgxQzIzMi4yMSw1NC44NiwyMzMuODEsNzQuNDgsMjMzLjQxLDg3LjY5Wk0yMDAuNTgsMjQuNDRBMjcuNDksMjcuNDksMCwwLDEsMjE1LDI4Yy02LjQsMy4yLTEyLjgxLDguNDEtMTguODEsMTQuNDEtMTUuMjEsMTYuNDItMjYuODIsNDItMzEuNjIsNjYuNDUtMTQuNDIsNC40MS0yOC44Myw4LjgxLTQyLDEyLjgxQzEzMS4zMyw4My4yOCwxNjMuNzUsMjUuMjQsMjAwLjU4LDI0LjQ0Wk0xNTQuMTUsMjQ0LjYxYzEuNiwyNS42MSw2OS4yNSwzMS4yMiw3My4yNSw5MS42NiwyLjgsNDcuNjQtMjUuMjIsODAuMDYtNjUuNjUsODIuNDctNDguODMsMy4yLTc1LjY1LTI1LjYyLTc1LjY1LTI1LjYybDEwLjQtNDRzMjYuODIsMjAuNDIsNDguNDQsMTguODJjMTQtLjgsMTkuMjItMTIuNDEsMTguODEtMjAuNDItMi0zMy42Mi01Ny4yNC0zMS42Mi02MC44NC04Ni44Ni0zLjItNDYuNDQsMjcuMjItOTMuMjcsOTQuNDctOTcuNjgsMjYtMS42LDM5LjIzLDQuODEsMzkuMjMsNC44MUwyMjEuNCwyMjUuMzlzLTE3LjIxLTgtMzcuNjMtNi40QzE1NC4xNSwyMjEsMTUzLjc1LDIzOS44LDE1NC4xNSwyNDQuNjFaTTI0OS40Miw4Mi44OGMwLTEyLTEuNi0yOS4yMi03LjIxLTQzLjYzLDE4LjQyLDMuNiwyNy4yMiwyNCwzMS4yMywzNi40M1EyNjIuNjMsNzguNjgsMjQ5LjQyLDgyLjg4WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaG9wd2FyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDMuNSA0NTUuNDFBMjQ2LjE3IDI0Ni4xNyAwIDAgMSAyNTYgNTA0QzExOC44MSA1MDQgOCAzOTMgOCAyNTYgOCAxMTguODEgMTE5IDggMjU2IDhhMjQ3LjM5IDI0Ny4zOSAwIDAgMSAxNjUuNyA2My41IDMuNTcgMy41NyAwIDAgMS0yLjg2IDYuMThBNDE4LjYyIDQxOC42MiAwIDAgMCAzNjIuMTMgNzRjLTEyOS4zNiAwLTIyMi40IDUzLjQ3LTIyMi40IDE1NS4zNSAwIDEwOSA5Mi4xMyAxNDUuODggMTc2LjgzIDE3OC43MyAzMy42NCAxMyA2NS40IDI1LjM2IDg3IDQxLjU5YTMuNTggMy41OCAwIDAgMSAwIDUuNzJ6TTUwMyAyMzMuMDlhMy42NCAzLjY0IDAgMCAwLTEuMjctMi40NGMtNTEuNzYtNDMtOTMuNjItNjAuNDgtMTQ0LjQ4LTYwLjQ4LTg0LjEzIDAtODAuMjUgNTIuMTctODAuMjUgNTMuNjMgMCA0Mi42IDUyLjA2IDYyIDExMi4zNCA4NC40OSAzMS4wNyAxMS41OSA2My4xOSAyMy41NyA5Mi42OCAzOS45M2EzLjU3IDMuNTcgMCAwIDAgNS0xLjgyQTI0OSAyNDkgMCAwIDAgNTAzIDIzMy4wOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2lnbmFsTWVzc2VuZ2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5NC42IDcuNWw1LjggMjMuM0MxNzcuNyAzNi4zIDE1NiA0NS4zIDEzNiA1Ny40TDEyMy43IDM2LjhjMjItMTMuMyA0NS45LTIzLjIgNzAuOS0yOS4zem0xMjIuOSAwbC01LjggMjMuM0MzMzQuMyAzNi4zIDM1NiA0NS4zIDM3NiA1Ny40bDEyLjQtMjAuNmMtMjItMTMuMy00Ni0yMy4yLTcxLTI5LjN6TTM2LjggMTIzLjdjLTEzLjMgMjItMjMuMiA0NS45LTI5LjMgNzAuOWwyMy4zIDUuOEMzNi4zIDE3Ny43IDQ1LjMgMTU2IDU3LjQgMTM2TDM2LjggMTIzLjd6TTI0IDI1NmMwLTExLjYgLjktMjMuMyAyLjYtMzQuOEwyLjkgMjE3LjZjLTMuOCAyNS40LTMuOCA1MS4zIDAgNzYuN2wyMy43LTMuNkMyNC45IDI3OS4zIDI0IDI2Ny42IDI0IDI1NnpNMzg4LjMgNDc1LjJMMzc2IDQ1NC42Yy0yMCAxMi4xLTQxLjYgMjEtNjQuMiAyNi42bDUuOCAyMy4zYzI0LjktNi4yIDQ4LjgtMTYgNzAuOC0yOS4zek00ODggMjU2YzAgMTEuNi0uOSAyMy4zLTIuNiAzNC44bDIzLjcgMy42YzMuOC0yNS40IDMuOC01MS4zIDAtNzYuN2wtMjMuNyAzLjZjMS43IDExLjUgMi42IDIzLjEgMi42IDM0Ljh6bTE2LjUgNjEuNGwtMjMuMy01LjhjLTUuNiAyMi43LTE0LjUgNDQuMy0yNi42IDY0LjNsMjAuNiAxMi40YzEzLjMtMjIgMjMuMi00NiAyOS4zLTcxem0tMjEzLjggMTY4Yy0yMyAzLjUtNDYuNSAzLjUtNjkuNSAwbC0zLjYgMjMuN2MyNS40IDMuOCA1MS4zIDMuOCA3Ni43IDBsLTMuNi0yMy43em0xNTItOTEuOGMtMTMuOCAxOC43LTMwLjQgMzUuMy00OS4yIDQ5LjFsMTQuMiAxOS4zYzIwLjctMTUuMiAzOS0zMy40IDU0LjItNTQuMWwtMTkuMy0xNC40ek0zOTMuNiA2OS4yYzE4LjggMTMuOCAzNS4zIDMwLjQgNDkuMiA0OS4yTDQ2Mi4xIDEwNEM0NDYuOSA4My40IDQyOC42IDY1LjEgNDA4IDQ5LjlMMzkzLjYgNjkuMnpNNjkuMiAxMTguNGMxMy44LTE4LjggMzAuNC0zNS4zIDQ5LjItNDkuMkwxMDQgNDkuOUM4My40IDY1LjEgNjUuMSA4My40IDQ5LjkgMTA0bDE5LjMgMTQuNHptNDA2IDUuM0w0NTQuNiAxMzZjMTIuMSAyMCAyMSA0MS42IDI2LjYgNjQuMmwyMy4zLTUuOGMtNi4yLTI0LjktMTYtNDguOC0yOS4zLTcwLjh6bS0yNTQtOTcuMWMyMy0zLjUgNDYuNS0zLjUgNjkuNSAwbDMuNi0yMy43QzI2OC45LTEgMjQzLjEtMSAyMTcuNiAyLjlsMy42IDIzLjd6TTgxLjYgNDY4LjRMMzIgNDgwbDExLjYtNDkuNkwyMC4yIDQyNSA4LjYgNDc0LjVjLS45IDQtLjggOC4xIC4zIDEyLjFzMy4yIDcuNSA2LjEgMTAuNHM2LjUgNSAxMC40IDYuMXM4LjEgMS4yIDEyLjEgLjNMODcgNDkybC01LjQtMjMuNnpNMjUuMiA0MDMuNkw0OC42IDQwOWw4LTM0LjRjLTExLjctMTkuNi0yMC40LTQwLjgtMjUuOC02M0w3LjUgMzE3LjRjNS4yIDIxLjIgMTMuMiA0MS43IDIzLjYgNjAuOGwtNS45IDI1LjN6bTExMiA1MmwtMzQuNCA4IDUuNCAyMy40IDI1LjMtNS45YzE5LjIgMTAuNCAzOS42IDE4LjQgNjAuOCAyMy42bDUuOC0yMy4zYy0yMi4xLTUuNS00My4zLTE0LjMtNjIuOC0yNmwtLjIgLjJ6TTI1NiA0OGMtMzcuMiAwLTczLjYgMTAtMTA1LjYgMjguOXMtNTguNCA0Ni03Ni4zIDc4LjZzLTI2LjkgNjkuMy0yNS44IDEwNi40czEyIDczLjMgMzEuOCAxMDQuOEw2MCA0NTJsODUuMy0yMGMyNy4zIDE3LjIgNTguMiAyNy44IDkwLjMgMzFzNjQuNS0xLjEgOTQuNi0xMi42czU3LjItMjkuOCA3OS01My42czM3LjgtNTIuMiA0Ni44LTgzLjJzMTAuNS02My42IDQuNy05NS4zcy0xOS02MS42LTM4LjQtODcuNHMtNDQuNS00Ni43LTczLjQtNjFTMjg4LjMgNDggMjU2IDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaW1wbHlidWlsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODEuMiA2NGgtMTA2Yy0xNC41IDAtMjYuNiAxMS44LTI2LjYgMjYuM3YzOS42SDE2My4zVjkwLjNjMC0xNC41LTEyLTI2LjMtMjYuNi0yNi4zaC0xMDZDMTYuMSA2NCA0LjMgNzUuOCA0LjMgOTAuM3YzMzEuNGMwIDE0LjUgMTEuOCAyNi4zIDI2LjYgMjYuM2g0NTAuNGMxNC44IDAgMjYuNi0xMS44IDI2LjYtMjYuM1Y5MC4zYy0uMi0xNC41LTEyLTI2LjMtMjYuNy0yNi4zek0xNDkuOCAzNTUuOGMtMzYuNiAwLTY2LjQtMjkuNy02Ni40LTY2LjQgMC0zNi45IDI5LjctNjYuNiA2Ni40LTY2LjYgMzYuOSAwIDY2LjYgMjkuNyA2Ni42IDY2LjYgMCAzNi43LTI5LjcgNjYuNC02Ni42IDY2LjR6bTIxMi40IDBjLTM2LjkgMC02Ni42LTI5LjctNjYuNi02Ni42IDAtMzYuNiAyOS43LTY2LjQgNjYuNi02Ni40IDM2LjYgMCA2Ni40IDI5LjcgNjYuNCA2Ni40IDAgMzYuOS0yOS44IDY2LjYtNjYuNCA2Ni42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaXN0cml4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA0NDlMMzAxLjIgMzAwLjJjMjAtMjcuOSAzMS45LTYyLjIgMzEuOS05OS4yIDAtOTMuMS03NC43LTE2OC45LTE2Ni41LTE2OC45Qzc0LjcgMzIgMCAxMDcuOCAwIDIwMC45czc0LjcgMTY4LjkgMTY2LjUgMTY4LjljMzkuOCAwIDc2LjMtMTQuMiAxMDUtMzcuOWwxNDYgMTQ4LjEgMzAuNS0zMXpNMTY2LjUgMzMwLjhjLTcwLjYgMC0xMjguMS01OC4zLTEyOC4xLTEyOS45Uzk1LjkgNzEgMTY2LjUgNzFzMTI4LjEgNTguMyAxMjguMSAxMjkuOS01Ny40IDEyOS45LTEyOC4xIDEyOS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaXRoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJsNjkuNzEgMTE4Ljc1LTU4Ljg2LTExLjUyIDY5Ljg0IDkxLjAzYTE0Ni43NDEgMTQ2Ljc0MSAwIDAgMCAwIDUxLjQ1bC02OS44NCA5MS4wMyA1OC44Ni0xMS41MkwwIDQ4MGwxMTguNzUtNjkuNzEtMTEuNTIgNTguODYgOTEuMDMtNjkuODRjMTcuMDIgMy4wNCAzNC40NyAzLjA0IDUxLjQ4IDBsOTEuMDMgNjkuODQtMTEuNTItNTguODZMNDQ4IDQ4MGwtNjkuNzEtMTE4Ljc4IDU4Ljg2IDExLjUyLTY5Ljg0LTkxLjAzYzMuMDMtMTcuMDEgMy4wNC0zNC40NCAwLTUxLjQ1bDY5Ljg0LTkxLjAzLTU4Ljg2IDExLjUyTDQ0OCAzMmwtMTE4Ljc1IDY5LjcxIDExLjUyLTU4LjktOTEuMDYgNjkuODdjLTguNS0xLjUyLTE3LjEtMi4yOS0yNS43MS0yLjI5cy0xNy4yMS43OC0yNS43MSAyLjI5bC05MS4wNi02OS44NyAxMS41MiA1OC45TDAgMzJ6bTIyNCA5OS43OGMzMS44IDAgNjMuNiAxMi4xMiA4Ny44NSAzNi4zNyA0OC41IDQ4LjUgNDguNDkgMTI3LjIxIDAgMTc1LjdzLTEyNy4yIDQ4LjQ2LTE3NS43LS4wM2MtNDguNS00OC41LTQ4LjQ5LTEyNy4yMSAwLTE3NS43IDI0LjI0LTI0LjI1IDU2LjA1LTM2LjM0IDg3Ljg1LTM2LjM0em0wIDM2LjY2Yy0yMi40MiAwLTQ0LjgzIDguNTItNjEuOTIgMjUuNjEtMzQuMTggMzQuMTgtMzQuMTkgODkuNjggMCAxMjMuODdzODkuNjUgMzQuMTggMTIzLjg0IDBjMzQuMTgtMzQuMTggMzQuMTktODkuNjggMC0xMjMuODctMTcuMDktMTcuMDktMzkuNS0yNS42MS02MS45Mi0yNS42MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2l0cm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxMi40MzkgMC4wMDg0NjEyOFYwSDQ0OFYxMjhINjRDNjQgNTcuNjAwOCAxNDEuNzU1IDAuNDc1MzM4IDIxMi40MzkgMC4wMDg0NjEyOFpNMjM3LjI1NiAxOTJWMTkyLjAwN0MzMDcuMTM1IDE5Mi40NzUgMzg0IDI0OS42IDM4NCAzMjBIMjEwLjgwOVYzMTkuOTk1QzE0MC45MTUgMzE5LjU2MyA2NCAyNjIuNDI0IDY0IDE5MkgyMzcuMjU2Wk0yMzUuNTY1IDUxMS45OTNDMzA2LjI1MSA1MTEuNTIxIDM4NCA0NTQuMzk5IDM4NCAzODRIMFY1MTJIMjM1LjU2NVY1MTEuOTkzWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTa2V0Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcuNSAxNjIuMkw5IDE4Ny4xaDkwLjVsNi45LTEzMC43LTc4LjkgMTA1Ljh6TTM5Ni4zIDQ1LjdMMjY3LjcgMzJsMTM1LjcgMTQ3LjItNy4xLTEzMy41ek0xMTIuMiAyMTguM2wtMTEuMi0yMkg5LjlMMjM0LjggNDU4em0yLTMxLjJoMjg0bC04MS41LTg4LjVMMjU2LjMgMzN6bTI5Ny4zIDkuMUwyNzcuNiA0NThsMjI0LjgtMjYxLjdoLTkwLjl6TTQxNS40IDY5TDQwNiA1Ni40bC45IDE3LjMgNi4xIDExMy40aDkwLjN6TTExMy41IDkzLjVsLTQuNiA4NS42TDI0NC43IDMyIDExNi4xIDQ1Ljd6bTI4Ny43IDEwMi43aC0yOTBsNDIuNCA4Mi45TDI1Ni4zIDQ4MGwxNDQuOS0yODMuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2t5YXRsYXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQwIDMyOS4zYzAgNjUuOS01Mi41IDExNC40LTExNy41IDExNC40LTE2NS45IDAtMTk2LjYtMjQ5LjctMzU5LjctMjQ5LjctMTQ2LjkgMC0xNDcuMSAyMTIuMiA1LjYgMjEyLjIgNDIuNSAwIDkwLjktMTcuOCAxMjUuMy00Mi41IDUuNi00LjEgMTYuOS0xNi4zIDIyLjgtMTYuM3MxMC45IDUgMTAuOSAxMC45YzAgNy44LTEzLjEgMTkuMS0xOC43IDI0LjEtNDAuOSAzNS42LTEwMC4zIDYxLjItMTU0LjcgNjEuMi04My40LjEtMTU0LTU5LTE1NC0xNDQuOXM2Ny41LTE0OS4xIDE1Mi44LTE0OS4xYzE4NS4zIDAgMjIyLjUgMjQ1LjkgMzYxLjkgMjQ1LjkgOTkuOSAwIDk0LjgtMTM5LjcgMy40LTEzOS43LTE3LjUgMC0zNSAxMS42LTQ2LjkgMTEuNi04LjQgMC0xNS45LTcuMi0xNS45LTE1LjYgMC0xMS42IDUuMy0yMy43IDUuMy0zNi4zIDAtNjYuNi01MC45LTExNC43LTExNi45LTExNC43LTUzLjEgMC04MCAzNi45LTg4LjggMzYuOS02LjIgMC0xMS4yLTUtMTEuMi0xMS4yIDAtNS42IDQuMS0xMC4zIDcuOC0xNC40IDI1LjMtMjguOCA2NC43LTQzLjcgMTAyLjgtNDMuNyA3OS40IDAgMTM5LjEgNTguNCAxMzkuMSAxMzcuOCAwIDYuOS0uMyAxMy43LTEuMiAyMC42IDExLjktMy4xIDI0LjEtNC43IDM1LjktNC43IDYwLjcgMCAxMTEuOSA0NS4zIDExMS45IDEwNy4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTa3lwZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjQuNyAyOTkuOGMyLjktMTQgNC43LTI4LjkgNC43LTQzLjggMC0xMTMuNS05MS45LTIwNS4zLTIwNS4zLTIwNS4zLTE0LjkgMC0yOS43IDEuNy00My44IDQuN0MxNjEuMyA0MC43IDEzNy43IDMyIDExMiAzMiA1MC4yIDMyIDAgODIuMiAwIDE0NGMwIDI1LjcgOC43IDQ5LjMgMjMuMyA2OC4yLTIuOSAxNC00LjcgMjguOS00LjcgNDMuOCAwIDExMy41IDkxLjkgMjA1LjMgMjA1LjMgMjA1LjMgMTQuOSAwIDI5LjctMS43IDQzLjgtNC43IDE5IDE0LjYgNDIuNiAyMy4zIDY4LjIgMjMuMyA2MS44IDAgMTEyLTUwLjIgMTEyLTExMiAuMS0yNS42LTguNi00OS4yLTIzLjItNjguMXptLTE5NC42IDkxLjVjLTY1LjYgMC0xMjAuNS0yOS4yLTEyMC41LTY1IDAtMTYgOS0zMC42IDI5LjUtMzAuNiAzMS4yIDAgMzQuMSA0NC45IDg4LjEgNDQuOSAyNS43IDAgNDIuMy0xMS40IDQyLjMtMjYuMyAwLTE4LjctMTYtMjEuNi00Mi0yOC02Mi41LTE1LjQtMTE3LjgtMjItMTE3LjgtODcuMiAwLTU5LjIgNTguNi04MS4xIDEwOS4xLTgxLjEgNTUuMSAwIDExMC44IDIxLjkgMTEwLjggNTUuNCAwIDE2LjktMTEuNCAzMS44LTMwLjMgMzEuOC0yOC4zIDAtMjkuMi0zMy41LTc1LTMzLjUtMjUuNyAwLTQyIDctNDIgMjIuNSAwIDE5LjggMjAuOCAyMS44IDY5LjEgMzMgNDEuNCA5LjMgOTAuNyAyNi44IDkwLjcgNzcuNiAwIDU5LjEtNTcuMSA4Ni41LTExMiA4Ni41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbGFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NC4xMiAzMTUuMWMwIDI1LjktMjEuMTYgNDcuMDYtNDcuMDYgNDcuMDZTMCAzNDEgMCAzMTUuMWMwLTI1LjkgMjEuMTYtNDcuMDYgNDcuMDYtNDcuMDZoNDcuMDZ2NDcuMDZ6bTIzLjcyIDBjMC0yNS45IDIxLjE2LTQ3LjA2IDQ3LjA2LTQ3LjA2czQ3LjA2IDIxLjE2IDQ3LjA2IDQ3LjA2djExNy44NGMwIDI1LjktMjEuMTYgNDcuMDYtNDcuMDYgNDcuMDZzLTQ3LjA2LTIxLjE2LTQ3LjA2LTQ3LjA2VjMxNS4xem00Ny4wNi0xODguOThjLTI1LjkgMC00Ny4wNi0yMS4xNi00Ny4wNi00Ny4wNlMxMzkgMzIgMTY0LjkgMzJzNDcuMDYgMjEuMTYgNDcuMDYgNDcuMDZ2NDcuMDZIMTY0Ljl6bTAgMjMuNzJjMjUuOSAwIDQ3LjA2IDIxLjE2IDQ3LjA2IDQ3LjA2cy0yMS4xNiA0Ny4wNi00Ny4wNiA0Ny4wNkg0Ny4wNkMyMS4xNiAyNDMuOTYgMCAyMjIuOCAwIDE5Ni45czIxLjE2LTQ3LjA2IDQ3LjA2LTQ3LjA2SDE2NC45em0xODguOTggNDcuMDZjMC0yNS45IDIxLjE2LTQ3LjA2IDQ3LjA2LTQ3LjA2IDI1LjkgMCA0Ny4wNiAyMS4xNiA0Ny4wNiA0Ny4wNnMtMjEuMTYgNDcuMDYtNDcuMDYgNDcuMDZoLTQ3LjA2VjE5Ni45em0tMjMuNzIgMGMwIDI1LjktMjEuMTYgNDcuMDYtNDcuMDYgNDcuMDYtMjUuOSAwLTQ3LjA2LTIxLjE2LTQ3LjA2LTQ3LjA2Vjc5LjA2YzAtMjUuOSAyMS4xNi00Ny4wNiA0Ny4wNi00Ny4wNiAyNS45IDAgNDcuMDYgMjEuMTYgNDcuMDYgNDcuMDZWMTk2Ljl6TTI4My4xIDM4NS44OGMyNS45IDAgNDcuMDYgMjEuMTYgNDcuMDYgNDcuMDYgMCAyNS45LTIxLjE2IDQ3LjA2LTQ3LjA2IDQ3LjA2LTI1LjkgMC00Ny4wNi0yMS4xNi00Ny4wNi00Ny4wNnYtNDcuMDZoNDcuMDZ6bTAtMjMuNzJjLTI1LjkgMC00Ny4wNi0yMS4xNi00Ny4wNi00Ny4wNiAwLTI1LjkgMjEuMTYtNDcuMDYgNDcuMDYtNDcuMDZoMTE3Ljg0YzI1LjkgMCA0Ny4wNiAyMS4xNiA0Ny4wNiA0Ny4wNiAwIDI1LjktMjEuMTYgNDcuMDYtNDcuMDYgNDcuMDZIMjgzLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNsaWRlc2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg3LjcgMTUzLjdjLTM0IDAtNjEuNyAyNS43LTYxLjcgNTcuNyAwIDMxLjcgMjcuNyA1Ny43IDYxLjcgNTcuN3M2MS43LTI2IDYxLjctNTcuN2MwLTMyLTI3LjctNTcuNy02MS43LTU3Ljd6bTE0My40IDBjLTM0IDAtNjEuNyAyNS43LTYxLjcgNTcuNyAwIDMxLjcgMjcuNyA1Ny43IDYxLjcgNTcuNyAzNC4zIDAgNjEuNy0yNiA2MS43LTU3LjcuMS0zMi0yNy40LTU3LjctNjEuNy01Ny43em0xNTYuNiA5MGwtNiA0LjNWNDkuN2MwLTI3LjQtMjAuNi00OS43LTQ2LTQ5LjdINzYuNmMtMjUuNCAwLTQ2IDIyLjMtNDYgNDkuN1YyNDhjLTItMS40LTQuMy0yLjktNi4zLTQuMy0xNS4xLTEwLjYtMjUuMSA0LTE2IDE3LjcgMTguMyAyMi42IDUzLjEgNTAuMyAxMDYuMyA3MkM1OC4zIDUyNS4xIDI1MiA1NTUuNyAyNDguOSA0NTcuNWMwLS43LjMtNTYuNi4zLTk2LjYgNS4xIDEuMSA5LjQgMi4zIDEzLjcgMy4xIDAgMzkuNy4zIDkyLjguMyA5My41LTMuMSA5OC4zIDE5MC42IDY3LjcgMTM0LjMtMTI0IDUzLjEtMjEuNyA4OC00OS40IDEwNi4zLTcyIDkuMS0xMy44LS45LTI4LjMtMTYuMS0xNy44em0tMzAuNSAxOS4yYy02OC45IDM3LjQtMTI4LjMgMzEuMS0xNjAuNiAyOS43LTIzLjctLjktMzIuNiA5LjEtMzMuNyAyNC45LTEwLjMtNy43LTE4LjYtMTUuNS0yMC4zLTE3LjEtNS4xLTUuNC0xMy43LTgtMjcuMS03LjctMzEuNyAxLjEtODkuNyA3LjQtMTU3LjQtMjhWNzIuM2MwLTM0LjkgOC45LTQ1LjcgNDAuNi00NS43aDMxNy43YzMwLjMgMCA0MC45IDEyLjkgNDAuOSA0NS43djE5MC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbmFwY2hhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYuOTI2LDM2Ni42Yy0zLjM3My05LjE3Ni05LjgtMTQuMDg2LTE3LjExMi0xOC4xNTMtMS4zNzYtLjgwNi0yLjY0MS0xLjQ1MS0zLjcyLTEuOTQ3LTIuMTgyLTEuMTI4LTQuNDE0LTIuMjItNi42MzQtMy4zNzMtMjIuOC0xMi4wOS00MC42MDktMjcuMzQxLTUyLjk1OS00NS40MmExMDIuODg5LDEwMi44ODksMCwwLDEtOS4wODktMTYuMTJjLTEuMDU0LTMuMDEzLTEtNC43MjQtLjI0OC02LjI4N2ExMC4yMjEsMTAuMjIxLDAsMCwxLDIuOTE0LTMuMDM4YzMuOTE4LTIuNTkxLDcuOTYtNS4yMiwxMC43LTYuOTkzLDQuODg1LTMuMTYyLDguNzU0LTUuNjY3LDExLjI0Ni03LjQ0LDkuMzYyLTYuNTQ3LDE1LjkwOS0xMy41LDIwLTIxLjI3OGE0Mi4zNzEsNDIuMzcxLDAsMCwwLDIuMS0zNS4xOTFjLTYuMi0xNi4zMTgtMjEuNjEzLTI2LjQ0OS00MC4yODctMjYuNDQ5YTU1LjU0Myw1NS41NDMsMCwwLDAtMTEuNzE4LDEuMjRjLTEuMDI5LjIyNC0yLjA1OS40NTktMy4wNjMuNzIuMTc0LTExLjE2LS4wNzQtMjIuOTQtMS4wNjYtMzQuNTM0LTMuNTIyLTQwLjc1OC0xNy43OTQtNjIuMTIzLTMyLjY3NC03OS4xNkExMzAuMTY3LDEzMC4xNjcsMCwwLDAsMzMyLjEsMzYuNDQzQzMwOS41MTUsMjMuNTQ3LDI4My45MSwxNywyNTYsMTdTMjAyLjYsMjMuNTQ3LDE4MCwzNi40NDNhMTI5LjczNSwxMjkuNzM1LDAsMCwwLTMzLjI4MSwyNi43ODNjLTE0Ljg4LDE3LjAzOC0yOS4xNTIsMzguNDQtMzIuNjczLDc5LjE2MS0uOTkyLDExLjU5NC0xLjI0LDIzLjQzNS0xLjA3OSwzNC41MzMtMS0uMjYtMi4wMjEtLjUtMy4wNTEtLjcxOWE1NS40NjEsNTUuNDYxLDAsMCwwLTExLjcxNy0xLjI0Yy0xOC42ODcsMC0zNC4xMjUsMTAuMTMxLTQwLjMsMjYuNDQ5YTQyLjQyMyw0Mi40MjMsMCwwLDAsMi4wNDYsMzUuMjI4YzQuMTA1LDcuNzc0LDEwLjY1MiwxNC43MzEsMjAuMDE0LDIxLjI3OCwyLjQ4LDEuNzM2LDYuMzYxLDQuMjQsMTEuMjQ2LDcuNDQsMi42NDEsMS43MTEsNi41LDQuMjE2LDEwLjI4LDYuNzJhMTEuMDU0LDExLjA1NCwwLDAsMSwzLjMsMy4zMTFjLjc5NCwxLjYyNC44MTgsMy4zNzMtLjM2LDYuNmExMDIuMDIsMTAyLjAyLDAsMCwxLTguOTQsMTUuNzg1Yy0xMi4wNzcsMTcuNjY5LTI5LjM2MywzMi42NDgtNTEuNDM0LDQ0LjYzOUMzMi4zNTUsMzQ4LjYwOCwyMC4yLDM1Mi43NSwxNS4wNjksMzY2LjdjLTMuODY4LDEwLjUyOC0xLjMzOSwyMi41MDYsOC40OTQsMzIuNmE0OS4xMzcsNDkuMTM3LDAsMCwwLDEyLjQsOS4zODcsMTM0LjMzNywxMzQuMzM3LDAsMCwwLDMwLjM0MiwxMi4xMzksMjAuMDI0LDIwLjAyNCwwLDAsMSw2LjEyNiwyLjc0MWMzLjU4MywzLjEzNywzLjA3NSw3Ljg2MSw3Ljg0OSwxNC43OGEzNC40NjgsMzQuNDY4LDAsMCwwLDguOTc3LDkuMTI3YzEwLjAxOSw2LjkxOSwyMS4yNzgsNy4zNTMsMzMuMjA3LDcuODExLDEwLjc3Ni40MSwyMi45ODkuODgxLDM2LjkzOSw1LjQ4MSw1Ljc3OCwxLjkxLDExLjc4LDUuNjA1LDE4LjczNiw5LjkyQzE5NC44NDIsNDgwLjk1MSwyMTcuNzA3LDQ5NSwyNTUuOTczLDQ5NXM2MS4yOTItMTQuMTIzLDc4LjExOC0yNC40MjhjNi45MDctNC4yNCwxMi44NzItNy45LDE4LjQ4OS05Ljc1OCwxMy45NDktNC42MTMsMjYuMTYzLTUuMDcyLDM2LjkzOS01LjQ4MSwxMS45MjgtLjQ1OSwyMy4xODctLjg5MywzMy4yMDYtNy44MTJhMzQuNTg0LDM0LjU4NCwwLDAsMCwxMC4yMTgtMTEuMTZjMy40MzQtNS44NCwzLjM0OC05LjkxOSw2LjU3Mi0xMi43NzFhMTguOTcxLDE4Ljk3MSwwLDAsMSw1Ljc1My0yLjYyOUExMzQuODkzLDEzNC44OTMsMCwwLDAsNDc2LjAyLDQwOC43MWE0OC4zNDQsNDguMzQ0LDAsMCwwLDEzLjAxOS0xMC4xOTNsLjEyNC0uMTQ5QzQ5OC4zODksMzg4LjUsNTAwLjcwOCwzNzYuODY3LDQ5Ni45MjYsMzY2LjZabS0zNC4wMTMsMTguMjc3Yy0yMC43NDUsMTEuNDU4LTM0LjUzMywxMC4yMy00NS4yNTksMTcuMTM3LTkuMTE0LDUuODY1LTMuNzIsMTguNTEzLTEwLjM0MiwyMy4wNzYtOC4xMzQsNS42MTctMzIuMTc3LS40LTYzLjIzOSw5Ljg1OC0yNS42MTgsOC40NjktNDEuOTYxLDMyLjgyMi04OC4wMzgsMzIuODIycy02Mi4wMzYtMjQuMy04OC4wNzYtMzIuODg0Yy0zMS0xMC4yNTUtNTUuMDkyLTQuMjQxLTYzLjIzOS05Ljg1OC02LjYwOS00LjU2My0xLjI0LTE3LjIxMS0xMC4zNDEtMjMuMDc2LTEwLjczOS02LjkwNy0yNC41MjctNS42NzktNDUuMjYtMTcuMDc1LTEzLjIwNi03LjI5MS01LjcxNi0xMS44LTEuMzE0LTEzLjkzNyw3NS4xNDMtMzYuMzgxLDg3LjEzMy05Mi41NTIsODcuNjY2LTk2LjcxOS42NDUtNS4wNDYsMS4zNjQtOS4wMTQtNC4xOTEtMTQuMTQ4LTUuMzY5LTQuOTYtMjkuMTg5LTE5LjctMzUuOC0yNC4zMTYtMTAuOTM3LTcuNjM4LTE1Ljc0OC0xNS4yNjQtMTIuMi0yNC42MzgsMi40OC02LjQ4NSw4LjUzMS04LjkyOCwxNC44NzktOC45MjhhMjcuNjQzLDI3LjY0MywwLDAsMSw1Ljk2NS42N2MxMiwyLjYsMjMuNjU5LDguNjE3LDMwLjM5MiwxMC4yNDJhMTAuNzQ5LDEwLjc0OSwwLDAsMCwyLjQ4LjMzNWMzLjYsMCw0Ljg2LTEuODExLDQuNjEyLTUuOTI3LS43NjgtMTMuMTMyLTIuNjI4LTM4LjcyNS0uNTU4LTYyLjY0NCwyLjg0LTMyLjkwOSwxMy40NDItNDkuMjE1LDI2LjA0LTYzLjYzNiw2LjA1MS02LjkzMiwzNC40ODQtMzYuOTc2LDg4Ljg1Ny0zNi45NzZzODIuODgsMjkuOTIsODguOTMxLDM2LjgyN2MxMi42MTEsMTQuNDIxLDIzLjIyNSwzMC43MjcsMjYuMDQsNjMuNjM2LDIuMDcxLDIzLjkxOS4yODUsNDkuNTI1LS41NTgsNjIuNjQ0LS4yODUsNC4zMjcsMS4wMTcsNS45MjcsNC42MTMsNS45MjdhMTAuNjQ4LDEwLjY0OCwwLDAsMCwyLjQ4LS4zMzVjNi43NDUtMS42MjQsMTguNC03LjYzOCwzMC40LTEwLjI0MmEyNy42NDEsMjcuNjQxLDAsMCwxLDUuOTY0LS42N2M2LjM4NiwwLDEyLjQsMi40OCwxNC44OCw4LjkyOCwzLjU0Niw5LjM3NC0xLjI0LDE3LTEyLjE4OSwyNC42MzktNi42MDksNC42MTItMzAuNDI5LDE5LjM0My0zNS44LDI0LjMxNS01LjU2OCw1LjEzNC00LjgzNiw5LjEtNC4xOTEsMTQuMTQ5LjUzMyw0LjIyOCwxMi41MTEsNjAuNCw4Ny42NjYsOTYuNzE4QzQ2OC42MjksMzczLjAxMSw0NzYuMTE5LDM3Ny41MjQsNDYyLjkxMywzODQuODc3WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb3VuZGNsb3VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMS40IDI1Ni4zbDUuOCA2NS01LjggNjguM2MtLjMgMi41LTIuMiA0LjQtNC40IDQuNHMtNC4yLTEuOS00LjItNC40bC01LjYtNjguMyA1LjYtNjVjMC0yLjIgMS45LTQuMiA0LjItNC4yIDIuMiAwIDQuMSAyIDQuNCA0LjJ6bTIxLjQtNDUuNmMtMi44IDAtNC43IDIuMi01IDVsLTUgMTA1LjYgNSA2OC4zYy4zIDIuOCAyLjIgNSA1IDUgMi41IDAgNC43LTIuMiA0LjctNWw1LjgtNjguMy01LjgtMTA1LjZjMC0yLjgtMi4yLTUtNC43LTV6bTI1LjUtMjQuMWMtMy4xIDAtNS4zIDIuMi01LjYgNS4zbC00LjQgMTMwIDQuNCA2Ny44Yy4zIDMuMSAyLjUgNS4zIDUuNiA1LjMgMi44IDAgNS4zLTIuMiA1LjMtNS4zbDUuMy02Ny44LTUuMy0xMzBjMC0zLjEtMi41LTUuMy01LjMtNS4zek03LjIgMjgzLjJjLTEuNCAwLTIuMiAxLjEtMi41IDIuNUwwIDMyMS4zbDQuNyAzNWMuMyAxLjQgMS4xIDIuNSAyLjUgMi41czIuMi0xLjEgMi41LTIuNWw1LjYtMzUtNS42LTM1LjZjLS4zLTEuNC0xLjEtMi41LTIuNS0yLjV6bTIzLjYtMjEuOWMtMS40IDAtMi41IDEuMS0yLjUgMi41bC02LjQgNTcuNSA2LjQgNTYuMWMwIDEuNyAxLjEgMi44IDIuNSAyLjhzMi41LTEuMSAyLjgtMi41bDcuMi01Ni40LTcuMi01Ny41Yy0uMy0xLjQtMS40LTIuNS0yLjgtMi41em0yNS4zLTExLjRjLTEuNyAwLTMuMSAxLjQtMy4zIDMuM0w0NyAzMjEuM2w1LjggNjUuOGMuMyAxLjcgMS43IDMuMSAzLjMgMy4xIDEuNyAwIDMuMS0xLjQgMy4xLTMuMWw2LjktNjUuOC02LjktNjguMWMwLTEuOS0xLjQtMy4zLTMuMS0zLjN6bTI1LjMtMi4yYy0xLjkgMC0zLjYgMS40LTMuNiAzLjZsLTUuOCA3MCA1LjggNjcuOGMwIDIuMiAxLjcgMy42IDMuNiAzLjZzMy42LTEuNCAzLjktMy42bDYuNC02Ny44LTYuNC03MGMtLjMtMi4yLTItMy42LTMuOS0zLjZ6bTI0MS40LTExMC45Yy0xLjEtLjgtMi44LTEuNC00LjItMS40LTIuMiAwLTQuMi44LTUuNiAxLjktMS45IDEuNy0zLjEgNC4yLTMuMyA2Ljd2LjhsLTMuMyAxNzYuNyAxLjcgMzIuNSAxLjcgMzEuN2MuMyA0LjcgNC4yIDguNiA4LjkgOC42czguNi0zLjkgOC42LTguNmwzLjktNjQuMi0zLjktMTc3LjVjLS40LTMtMi01LjgtNC41LTcuMnptLTI2LjcgMTUuM2MtMS40LS44LTIuOC0xLjQtNC40LTEuNHMtMy4xLjYtNC40IDEuNGMtMi4yIDEuNC0zLjYgMy45LTMuNiA2LjdsLS4zIDEuNy0yLjggMTYwLjhzMCAuMyAzLjEgNjUuNnYuM2MwIDEuNy42IDMuMyAxLjcgNC43IDEuNyAxLjkgMy45IDMuMSA2LjQgMy4xIDIuMiAwIDQuMi0xLjEgNS42LTIuNSAxLjctMS40IDIuNS0zLjMgMi41LTUuNmwuMy02LjcgMy4xLTU4LjYtMy4zLTE2Mi44Yy0uMy0yLjgtMS43LTUuMy0zLjktNi43em0tMTExLjQgMjIuNWMtMy4xIDAtNS44IDIuOC01LjggNi4xbC00LjQgMTQwLjYgNC40IDY3LjJjLjMgMy4zIDIuOCA1LjggNS44IDUuOCAzLjMgMCA1LjgtMi41IDYuMS01LjhsNS02Ny4yLTUtMTQwLjZjLS4yLTMuMy0yLjctNi4xLTYuMS02LjF6bTM3Ni43IDYyLjhjLTEwLjggMC0yMS4xIDIuMi0zMC42IDYuMS02LjQtNzAuOC02NS44LTEyNi40LTEzOC4zLTEyNi40LTE3LjggMC0zNSAzLjMtNTAuMyA5LjQtNi4xIDIuMi03LjggNC40LTcuOCA5LjJ2MjQ5LjdjMCA1IDMuOSA4LjYgOC42IDkuMmgyMTguM2M0My4zIDAgNzguNi0zNSA3OC42LTc4LjMuMS00My42LTM1LjItNzguOS03OC41LTc4Ljl6bS0yOTYuNy02MC4zYy00LjIgMC03LjUgMy4zLTcuOCA3LjhsLTMuMyAxMzYuNyAzLjMgNjUuNmMuMyA0LjIgMy42IDcuNSA3LjggNy41IDQuMiAwIDcuNS0zLjMgNy41LTcuNWwzLjktNjUuNi0zLjktMTM2LjdjLS4zLTQuNS0zLjMtNy44LTcuNS03Ljh6bS01My42LTcuOGMtMy4zIDAtNi40IDMuMS02LjQgNi43bC0zLjkgMTQ1LjMgMy45IDY2LjljLjMgMy42IDMuMSA2LjQgNi40IDYuNCAzLjYgMCA2LjQtMi44IDYuNy02LjRsNC40LTY2LjktNC40LTE0NS4zYy0uMy0zLjYtMy4xLTYuNy02LjctNi43em0yNi43IDMuNGMtMy45IDAtNi45IDMuMS02LjkgNi45TDIyNyAzMjEuM2wzLjkgNjYuNGMuMyAzLjkgMy4xIDYuOSA2LjkgNi45czYuOS0zLjEgNi45LTYuOWw0LjItNjYuNC00LjItMTQxLjdjMC0zLjktMy02LjktNi45LTYuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU291cmNldHJlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjcuMiAyMDNjMC0xMTIuMS05MC45LTIwMy0yMDMtMjAzQzExMi4xLS4yIDIxLjIgOTAuNiAyMSAyMDIuNkEyMDIuODYgMjAyLjg2IDAgMCAwIDE2MS41IDM5NnYxMDEuN2ExNC4zIDE0LjMgMCAwIDAgMTQuMyAxNC4zaDk2LjRhMTQuMyAxNC4zIDAgMCAwIDE0LjMtMTQuM1YzOTYuMUEyMDMuMTggMjAzLjE4IDAgMCAwIDQyNy4yIDIwM3ptLTI3MS42IDBjMC05MC44IDEzNy4zLTkwLjggMTM3LjMgMC0uMSA4OS45LTEzNy4zIDkxLTEzNy4zIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNwYWNlQXdlc29tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAyNTZIMTI4VjUxMkgwVjM1MkgzMlYzMjBINjRWMjg4SDk2VjI1NnpNNTEyIDM1MlY1MTJIMzg0VjI1Nkg0MTZWMjg4SDQ0OFYzMjBINDgwVjM1Mkg1MTJ6TTMyMCA2NEgzNTJWNDQ4SDMyMFY0MTZIMTkyVjQ0OEgxNjBWNjRIMTkyVjMySDIyNFYwSDI4OFYzMkgzMjBWNjR6TTI4OCAxMjhIMjI0VjE5MkgyODhWMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcGVha2FwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDM5MS43OEMtMTUuNDEgMzAzLjU5LTggMTY3LjQyIDgwLjY0IDg3LjY0czIyNC44LTczIDMwNC4yMSAxNS4yNCA3MiAyMjQuMzYtMTYuNjQgMzA0LjE0Yy0xOC43NCAxNi44NyA2NCA0My4wOSA0MiA1Mi4yNi04Mi4wNiAzNC4yMS0yNTMuOTEgMzUtMzQ2LjIzLTY3LjV6bTIxMy4zMS0yMTEuNmwzOC41LTQwLjg2Yy05LjYxLTguODktMzItMjYuODMtNzYuMTctMjcuNi01Mi4zMy0uOTEtOTUuODYgMjguMy05Ni43NyA4MC0uMiAxMS4zMy4yOSAzNi43MiAyOS40MiA1NC44MyAzNC40NiAyMS40MiA4Ni41MiAyMS41MSA4NiA1Mi4yNi0uMzcgMjEuMjgtMjYuNDIgMjUuODEtMzguNTkgMjUuNi0zLS4wNS0zMC4yMy0uNDYtNDcuNjEtMjQuNjJsLTQwIDQyLjYxYzI4LjE2IDI3IDU5IDMyLjYyIDgzLjQ5IDMzLjA1IDEwLjIzLjE4IDk2LjQyLjMzIDk3Ljg0LTgxIC4yOC0xNS44MS0yLjA3LTM5LjcyLTI4Ljg2LTU2LjU5LTM0LjM2LTIxLjY0LTg1LTE5LjQ1LTg0LjQzLTQ5Ljc1LjQxLTIzLjI1IDMxLTI1LjM3IDM3LjUzLTI1LjI2LjQzIDAgMjYuNjIuMjYgMzkuNjIgMTcuMzd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNwZWFrZXJEZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxMy44NiAyOTZIMTAwYTEwMCAxMDAgMCAwIDEgMC0yMDBoMTMyLjg0YTQwIDQwIDAgMCAxIDAgODBIOThjLTI2LjQ3IDAtMjYuNDUgNDAgMCA0MGgxMTMuODJhMTAwIDEwMCAwIDAgMSAwIDIwMEg0MGE0MCA0MCAwIDAgMSAwLTgwaDE3My44NmMyNi40OCAwIDI2LjQ2LTQwIDAtNDB6TTI5OCA0MTZhMTIwLjIxIDEyMC4yMSAwIDAgMCA1MS4xMS04MGg2NC41NWExOS44MyAxOS44MyAwIDAgMCAxOS42Ni0yMFYxOTZhMTkuODMgMTkuODMgMCAwIDAtMTkuNjYtMjBIMjk2LjQyYTYwLjc3IDYwLjc3IDAgMCAwIDAtODBoMTM2LjkzYzQzLjQ0IDAgNzguNjUgMzUuODIgNzguNjUgODB2MTYwYzAgNDQuMTgtMzUuMjEgODAtNzguNjUgODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNwb3RpZnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExLjEgOCAwIDExOS4xIDAgMjU2czExMS4xIDI0OCAyNDggMjQ4IDI0OC0xMTEuMSAyNDgtMjQ4UzM4NC45IDggMjQ4IDh6bTEwMC43IDM2NC45Yy00LjIgMC02LjgtMS4zLTEwLjctMy42LTYyLjQtMzcuNi0xMzUtMzkuMi0yMDYuNy0yNC41LTMuOSAxLTkgMi42LTExLjkgMi42LTkuNyAwLTE1LjgtNy43LTE1LjgtMTUuOCAwLTEwLjMgNi4xLTE1LjIgMTMuNi0xNi44IDgxLjktMTguMSAxNjUuNi0xNi41IDIzNyAyNi4yIDYuMSAzLjkgOS43IDcuNCA5LjcgMTYuNXMtNy4xIDE1LjQtMTUuMiAxNS40em0yNi45LTY1LjZjLTUuMiAwLTguNy0yLjMtMTIuMy00LjItNjIuNS0zNy0xNTUuNy01MS45LTIzOC42LTI5LjQtNC44IDEuMy03LjQgMi42LTExLjkgMi42LTEwLjcgMC0xOS40LTguNy0xOS40LTE5LjRzNS4yLTE3LjggMTUuNS0yMC43YzI3LjgtNy44IDU2LjItMTMuNiA5Ny44LTEzLjYgNjQuOSAwIDEyNy42IDE2LjEgMTc3IDQ1LjUgOC4xIDQuOCAxMS4zIDExIDExLjMgMTkuNy0uMSAxMC44LTguNSAxOS41LTE5LjQgMTkuNXptMzEtNzYuMmMtNS4yIDAtOC40LTEuMy0xMi45LTMuOS03MS4yLTQyLjUtMTk4LjUtNTIuNy0yODAuOS0yOS43LTMuNiAxLTguMSAyLjYtMTIuOSAyLjYtMTMuMiAwLTIzLjMtMTAuMy0yMy4zLTIzLjYgMC0xMy42IDguNC0yMS4zIDE3LjQtMjMuOSAzNS4yLTEwLjMgNzQuNi0xNS4yIDExNy41LTE1LjIgNzMgMCAxNDkuNSAxNS4yIDIwNS40IDQ3LjggNy44IDQuNSAxMi45IDEwLjcgMTIuOSAyMi42IDAgMTMuNi0xMSAyMy4zLTIzLjIgMjMuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlQmVoYW5jZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTUuMyAzMTguNGMxNy4yIDAgMzEuMi02LjEgMzEuMi0yNS40YzAtMTkuNy0xMS43LTI3LjQtMzAuMy0yNy41aC00NnY1Mi45aDQ1LjF6bS01LjQtMTI5LjZIMTEwLjN2NDQuOEgxNTNjMTUuMSAwIDI1LjgtNi42IDI1LjgtMjIuOWMwLTE3LjctMTMuNy0yMS45LTI4LjktMjEuOXptMTI5LjUgNzQuOGg2Mi4yYy0xLjctMTguNS0xMS4zLTI5LjctMzAuNS0yOS43Yy0xOC4zIDAtMzAuNSAxMS40LTMxLjcgMjkuN3pNMzg0IDMySDY0QzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NHpNMzQ5LjUgMTg1SDI3MS43VjE2Ni4xaDc3LjhWMTg1ek0xOTMuNyAyNDMuN2MyMy42IDYuNyAzNSAyNy41IDM1IDUxLjZjMCAzOS0zMi43IDU1LjctNjcuNiA1NS45SDY4di0xOTJoOTAuNWMzMi45IDAgNjEuNCA5LjMgNjEuNCA0Ny41YzAgMTkuMy05IDI4LjgtMjYuMiAzN3ptMTE4LjctMzguNmM0My41IDAgNjcuNiAzNC4zIDY3LjYgNzUuNGMwIDEuNi0uMSAzLjMtLjIgNWMwIC44LS4xIDEuNS0uMSAyLjJIMjc5LjVjMCAyMi4yIDExLjcgMzUuMyAzNC4xIDM1LjNjMTEuNiAwIDI2LjUtNi4yIDMwLjItMTguMWgzMy43Yy0xMC40IDMxLjktMzEuOSA0Ni44LTY1LjEgNDYuOGMtNDMuOCAwLTcxLjEtMjkuNy03MS4xLTczYzAtNDEuOCAyOC43LTczLjYgNzEuMS03My42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVEcmliYmJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjUuOSAxMzIuNWMtMzguMyAxOC02Ni44IDUzLjMtNzUuNyA5NS43YzYuMSAuMSA2Mi40IC4zIDEyNi40LTE2LjdjLTIyLjctNDAuMi00Ny4xLTc0LjEtNTAuNy03OXptMjYuMS05LjFjMy44IDUuMSAyOC42IDM4LjkgNTEgODBjNDguNi0xOC4zIDY5LjEtNDUuOSA3MS42LTQ5LjRDMjgxIDEyNC4yIDIzNS4zIDExMi45IDE5MiAxMjMuNHpNMjc3LjQgMzgyYy0yLTEyLTEwLTUzLjgtMjkuMi0xMDMuNmMtNTUuMSAxOC44LTkzLjggNTYuNC0xMDguMSA4NS42YzQwLjUgMzEuNiA5My4zIDM2LjcgMTM3LjMgMTh6TTIyNy44IDIzMi42QzE1OS42IDI1MyA5My40IDI1Mi4yIDg3LjQgMjUyYzAgLjcgMCAxLjQgMCAyLjFzMCAxLjQgMCAyLjFjMCAzNS4xIDEzLjMgNjcuMSAzNS4xIDkxLjRjMjIuMi0zNy45IDY3LjEtNzcuOSAxMTYuNS05MS44Yy0zLjQtNy44LTcuMi0xNS41LTExLjEtMjMuMnptNzIuNSAxMzYuOWMzMC43LTIwLjcgNTIuNS01My42IDU4LjYtOTEuNmMtNC42LTEuNS00Mi4zLTEyLjctODUuMS01LjhjMTcuOSA0OS4xIDI1LjEgODkuMSAyNi41IDk3LjR6bS0zNC44LTExOWM0NS41LTUuNyA5MC43IDMuNCA5NS4yIDQuNGMtLjMtMzIuMy0xMS44LTYxLjktMzAuOS04NS4xYy0yLjkgMy45LTI1LjggMzMuMi03Ni4zIDUzLjljNC44IDkuOCA4LjMgMTcuOCAxMiAyNi44ek0zODQgMzJINjRDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0ek0yMjQgNDE2YTE2MCAxNjAgMCAxIDEgMC0zMjAgMTYwIDE2MCAwIDEgMSAwIDMyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlRmFjZWJvb2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRoOTguMlYzMzQuMkgxMDkuNFYyNTZoNTIuOFYyMjIuM2MwLTg3LjEgMzkuNC0xMjcuNSAxMjUtMTI3LjVjMTYuMiAwIDQ0LjIgMy4yIDU1LjcgNi40VjE3MmMtNi0uNi0xNi41LTEtMjkuNi0xYy00MiAwLTU4LjIgMTUuOS01OC4yIDU3LjJWMjU2aDgzLjZsLTE0LjQgNzguMkgyNTVWNDgwSDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlRm9udEF3ZXNvbWVTdHJva2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgNjRDNDYuMyA2NCAzMiA3OC4zIDMyIDk2bDAgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDY0IDY0ek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTU0IDU4YzAgOS4zLTQuOCAxNy40LTEyLjEgMjJsMTg4LjkgMGM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjJjMCAxLjgtLjQgMy43LTEuMSA1LjRMMzEyIDI2NGwzMC45IDY5LjRjLjggMS43IDEuMSAzLjUgMS4xIDUuNGMwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjJMMTQ0IDM1MmwwIDMyLTMyIDAgMC0zMiAwLTE3NiAwLTEuNWMtNi4xLTQuOC0xMC0xMi4yLTEwLTIwLjVjMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlRm9udEF3ZXNvbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptOTAgMTIyYzAgOS4zLTQuOCAxNy40LTEyLjEgMjJsMTg4LjkgMGM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjJjMCAxLjgtLjQgMy43LTEuMSA1LjRMMzEyIDI2NGwzMC45IDY5LjRjLjcgMS43IDEuMSAzLjUgMS4xIDUuNGMwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjJMMTQ0IDM1MmwwIDMyLTMyIDAgMC0zMiAwLTE3NiAwLTEuNWMtNi4xLTQuOC0xMC0xMi4yLTEwLTIwLjVjMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlR2l0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyMC44IDMzNS41Yy01LjktLjQtMTIuNi0uOC0yMC4yLTEuM2MtMy4zIDQuMS02LjYgOC40LTYuNiAxMy41YzAgMTguNSA2NS41IDE4LjUgNjUuNS0xLjVjMC04LjMtNy40LTguNy0zOC44LTEwLjd6bTcuOC0xMTcuOWMtMzIuMyAwLTMzLjcgNDQuNS0uNyA0NC41YzMyLjUgMCAzMS43LTQ0LjUgLjctNDQuNXpNMzg0IDMySDY0QzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NHpNMjQzLjkgMTcyLjJjLTE0LjUgMC0yMi45LTguNC0yMi45LTIyLjljMC0xNC41IDguNC0yMi4zIDIyLjktMjIuM2MxNC43IDAgMjMuMSA3LjggMjMuMSAyMi4zcy04LjQgMjIuOS0yMy4xIDIyLjl6TTE0OS42IDE5NWg0OS41bDAgMjEuNi0yMy40IDEuOGM0LjYgNS44IDkuNCAxNCA5LjQgMjUuN2MwIDQ4LjctNTcuMiA0Ny4yLTc0LjIgNDIuNGwtOC40IDEzLjRjNSAuMyA5LjggLjYgMTQuMyAuOGM1Ni4zIDMuMiA4MC41IDQuNiA4MC41IDM4LjVjMCAyOS4yLTI1LjcgNDUuNy02OS45IDQ1LjdjLTQ2IDAtNjMuNS0xMS42LTYzLjUtMzEuN2MwLTExLjQgNS4xLTE3LjUgMTQtMjUuOWMtOC40LTMuNS0xMS4yLTkuOS0xMS4yLTE2LjhjMC05LjYgNy40LTE2LjMgMjMtMzAuNmwuMi0uMmMtMTIuNC02LjEtMjEuOC0xOS4zLTIxLjgtMzguMWMwLTUxLjYgNTYuNi01My4zIDgxLjYtNDYuOHpNMjcwLjUgMzAzLjFsMTMgMS44IDAgMjAuMUgyMTEuMVYzMDQuOWMyLjctLjQgNS0uNyA2LjktLjljOS45LTEuMiAxMC4xLTEuMyAxMC4xLTZWMjIzLjNjMC00LjQtLjktNC43LTEwLjEtNy44Yy0xLjktLjctNC4yLTEuNC02LjktMi40bDIuOC0yMC42aDUyLjZWMjk4YzAgNC4xIC4yIDQuNiA0LjEgNS4xem0xMDYuNi0xMC40TDM4NCAzMTVjLTEwLjkgNS40LTI2LjkgMTAuMi00MS40IDEwLjJjLTMwLjIgMC00MS43LTEyLjItNDEuNy00MC45VjIxNy43YzAtLjggMC0xLjQtLjItMS44Yy0uOC0xLjItNC4yLS43LTE5LjYtLjdWMTkyLjZjMjIuMy0yLjUgMzEuMi0xMy43IDM0LTQxLjRoMjQuMmMwIDMzLjMtLjYgMzggLjcgMzguNmMuMyAuMSAuNyAwIDEuMyAwaDM1Ljh2MjUuNEgzMzkuM3Y2MC43YzAgLjIgMCAuNSAwIC45Yy0uMiA2LjMtLjkgMzAuNCAzNy45IDE1Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZUdpdGh1YiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjRDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2ek0yNjUuOCA0MDcuN2MwLTEuOCAwLTYgLjEtMTEuNmMuMS0xMS40IC4xLTI4LjggLjEtNDMuN2MwLTE1LjYtNS4yLTI1LjUtMTEuMy0zMC43YzM3LTQuMSA3Ni05LjIgNzYtNzMuMWMwLTE4LjItNi41LTI3LjMtMTcuMS0zOWMxLjctNC4zIDcuNC0yMi0xLjctNDVjLTEzLjktNC4zLTQ1LjcgMTcuOS00NS43IDE3LjljLTEzLjItMy43LTI3LjUtNS42LTQxLjYtNS42cy0yOC40IDEuOS00MS42IDUuNmMwIDAtMzEuOC0yMi4yLTQ1LjctMTcuOWMtOS4xIDIyLjktMy41IDQwLjYtMS43IDQ1Yy0xMC42IDExLjctMTUuNiAyMC44LTE1LjYgMzljMCA2My42IDM3LjMgNjkgNzQuMyA3My4xYy00LjggNC4zLTkuMSAxMS43LTEwLjYgMjIuM2MtOS41IDQuMy0zMy44IDExLjctNDguMy0xMy45Yy05LjEtMTUuOC0yNS41LTE3LjEtMjUuNS0xNy4xYy0xNi4yLS4yLTEuMSAxMC4yLTEuMSAxMC4yYzEwLjggNSAxOC40IDI0LjIgMTguNCAyNC4yYzkuNyAyOS43IDU2LjEgMTkuNyA1Ni4xIDE5LjdjMCA5IC4xIDIxLjcgLjEgMzAuNmMwIDQuOCAuMSA4LjYgLjEgMTBjMCA0LjMtMyA5LjUtMTEuNSA4QzEwNiAzOTMuNiA1OS44IDMzMC44IDU5LjggMjU3LjRjMC05MS44IDcwLjItMTYxLjUgMTYyLTE2MS41czE2Ni4yIDY5LjcgMTY2LjIgMTYxLjVjLjEgNzMuNC00NC43IDEzNi4zLTExMC43IDE1OC4zYy04LjQgMS41LTExLjUtMy43LTExLjUtOHptLTkwLjUtNTQuOGMtLjItMS41IDEuMS0yLjggMy0zLjJjMS45LS4yIDMuNyAuNiAzLjkgMS45Yy4zIDEuMy0xIDIuNi0zIDNjLTEuOSAuNC0zLjctLjQtMy45LTEuN3ptLTkuMSAzLjJjLTIuMiAuMi0zLjctLjktMy43LTIuNGMwLTEuMyAxLjUtMi40IDMuNS0yLjRjMS45LS4yIDMuNyAuOSAzLjcgMi40YzAgMS4zLTEuNSAyLjQtMy41IDIuNHptLTE0LjMtMi4yYy0xLjktLjQtMy4yLTEuOS0yLjgtMy4yczIuNC0xLjkgNC4xLTEuNWMyIC42IDMuMyAyLjEgMi44IDMuNGMtLjQgMS4zLTIuNCAxLjktNC4xIDEuM3ptLTEyLjUtNy4zYy0xLjUtMS4zLTEuOS0zLjItLjktNC4xYy45LTEuMSAyLjgtLjkgNC4zIC42YzEuMyAxLjMgMS44IDMuMyAuOSA0LjFjLS45IDEuMS0yLjggLjktNC4zLS42em0tOC41LTEwYy0xLjEtMS41LTEuMS0zLjIgMC0zLjljMS4xLS45IDIuOC0uMiAzLjcgMS4zYzEuMSAxLjUgMS4xIDMuMyAwIDQuMWMtLjkgLjYtMi42IDAtMy43LTEuNXptLTYuMy04LjhjLTEuMS0xLjMtMS4zLTIuOC0uNC0zLjVjLjktLjkgMi40LS40IDMuNSAuNmMxLjEgMS4zIDEuMyAyLjggLjQgMy41Yy0uOSAuOS0yLjQgLjQtMy41LS42em0tNi02LjRjLTEuMy0uNi0xLjktMS43LTEuNS0yLjZjLjQtLjYgMS41LS45IDIuOC0uNGMxLjMgLjcgMS45IDEuOCAxLjUgMi42Yy0uNCAuOS0xLjcgMS4xLTIuOCAuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlR2l0bGFiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NEMyOC43IDMyIDAgNjAuNyAwIDk2em0zMzcuNSAxMi41bDQ0LjYgMTE2LjQgLjQgMS4yYzUuNiAxNi44IDcuMiAzNS4yIDIuMyA1Mi41Yy01IDE3LjItMTUuNCAzMi40LTI5LjggNDMuM2wtLjIgLjEtNjguNCA1MS4yLTU0LjEgNDAuOWMtLjUgLjItMS4xIC41LTEuNyAuOGMtMiAxLTQuNCAyLTYuNyAyYy0zIDAtNi44LTEuOC04LjMtMi44bC01NC4yLTQwLjlMOTMuNSAzMjIuM2wtLjQtLjMtLjItLjFjLTE0LjMtMTAuOC0yNC44LTI2LTI5LjctNDMuM3MtNC4yLTM1LjcgMi4yLTUyLjVsLjUtMS4yIDQ0LjctMTE2LjRjLjktMi4zIDIuNS00LjMgNC41LTUuNmMxLjYtMSAzLjQtMS42IDUuMi0xLjhjMS4zLS43IDIuMS0uNCAzLjQgLjFjLjYgLjIgMS4yIC41IDIgLjdjMSAuNCAxLjYgLjkgMi40IDEuNWMuNiAuNCAxLjIgMSAyLjEgMS41YzEuMiAxLjQgMi4yIDMgMi43IDQuOGwyOS4yIDkyLjJIMjg1bDMwLjItOTIuMmMuNS0xLjggMS40LTMuNCAyLjYtNC44czIuOC0yLjQgNC41LTMuMWMxLjctLjYgMy42LS45IDUuNC0uN3MzLjYgLjggNS4yIDEuOGMyIDEuMyAzLjcgMy4zIDQuNiA1LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZUdvb2dsZVBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0QzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NnpNNjQgMjU2YzAtNTUuMyA0NC43LTEwMCAxMDAtMTAwYzI3IDAgNDkuNSA5LjggNjcgMjYuMmwtMjcuMSAyNi4xYy03LjQtNy4xLTIwLjMtMTUuNC0zOS44LTE1LjRjLTM0LjEgMC02MS45IDI4LjItNjEuOSA2My4yYzAgMzQuOSAyNy44IDYzLjIgNjEuOSA2My4yYzM5LjYgMCA1NC40LTI4LjUgNTYuOC00My4xSDE2NFYyNDEuOGg5NC40YzEgNSAxLjYgMTAuMSAxLjYgMTYuNmMwIDU3LjEtMzguMyA5Ny42LTk2IDk3LjZjLTU1LjMgMC0xMDAtNDQuNy0xMDAtMTAwem0yOTEgMTguMnYyOUgzMjUuOHYtMjloLTI5VjI0NWgyOVYyMTZIMzU1djI5aDI5djI5LjJIMzU1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVIYWNrZXJOZXdzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NEMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZ6TTIxIDIyOS4yYzAgMCAuMS0uMSAuMS0uMnMuMS0uMiAuMi0uMmMwIC4xIDAgLjMtLjEgLjRIMjF6TTIzOS4yIDM4NEgyMDcuOFYyODEuM0wxMjggMTI4aDM3LjNjNDEuNSA3Ny43IDQ4LjEgOTUuOCA1NC4xIDExMmMxLjYgNC4zIDMuMSA4LjUgNS4yIDEzLjZjMy4yLTcgNS4xLTExLjkgNy4xLTE3LjNjNS45LTE1LjMgMTIuOC0zMy4yIDUzLjUtMTA4LjNIMzIwTDIzOS4yIDI4My4xVjM4NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlSW5zdGFncmFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5NC40IDIxMS43YTUzLjMgNTMuMyAwIDEgMCA1OS4zIDg4LjcgNTMuMyA1My4zIDAgMSAwIC01OS4zLTg4Ljd6bTE0Mi4zLTY4LjRjLTUuMi01LjItMTEuNS05LjMtMTguNC0xMmMtMTguMS03LjEtNTcuNi02LjgtODMuMS02LjVjLTQuMSAwLTcuOSAuMS0xMS4yIC4xYy0zLjMgMC03LjIgMC0xMS40LS4xYy0yNS41LS4zLTY0LjgtLjctODIuOSA2LjVjLTYuOSAyLjctMTMuMSA2LjgtMTguNCAxMnMtOS4zIDExLjUtMTIgMTguNGMtNy4xIDE4LjEtNi43IDU3LjctNi41IDgzLjJjMCA0LjEgLjEgNy45IC4xIDExLjFzMCA3LS4xIDExLjFjLS4yIDI1LjUtLjYgNjUuMSA2LjUgODMuMmMyLjcgNi45IDYuOCAxMy4xIDEyIDE4LjRzMTEuNSA5LjMgMTguNCAxMmMxOC4xIDcuMSA1Ny42IDYuOCA4My4xIDYuNWM0LjEgMCA3LjktLjEgMTEuMi0uMWMzLjMgMCA3LjIgMCAxMS40IC4xYzI1LjUgLjMgNjQuOCAuNyA4Mi45LTYuNWM2LjktMi43IDEzLjEtNi44IDE4LjQtMTJzOS4zLTExLjUgMTItMTguNGM3LjItMTggNi44LTU3LjQgNi41LTgzYzAtNC4yLS4xLTguMS0uMS0xMS40czAtNy4xIC4xLTExLjRjLjMtMjUuNSAuNy02NC45LTYuNS04M2wwIDBjLTIuNy02LjktNi44LTEzLjEtMTItMTguNHptLTY3LjEgNDQuNUE4MiA4MiAwIDEgMSAxNzguNCAzMjQuMmE4MiA4MiAwIDEgMSA5MS4xLTEzNi40em0yOS4yLTEuM2MtMy4xLTIuMS01LjYtNS4xLTcuMS04LjZzLTEuOC03LjMtMS4xLTExLjFzMi42LTcuMSA1LjItOS44czYuMS00LjUgOS44LTUuMnM3LjYtLjQgMTEuMSAxLjFzNi41IDMuOSA4LjYgN3MzLjIgNi44IDMuMiAxMC42YzAgMi41LS41IDUtMS40IDcuM3MtMi40IDQuNC00LjEgNi4ycy0zLjkgMy4yLTYuMiA0LjJzLTQuOCAxLjUtNy4zIDEuNWwwIDBjLTMuOCAwLTcuNS0xLjEtMTAuNi0zLjJ6TTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NEMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZ6TTM1NyAzODljLTE4LjcgMTguNy00MS40IDI0LjYtNjcgMjUuOWMtMjYuNCAxLjUtMTA1LjYgMS41LTEzMiAwYy0yNS42LTEuMy00OC4zLTcuMi02Ny0yNS45cy0yNC42LTQxLjQtMjUuOC02N2MtMS41LTI2LjQtMS41LTEwNS42IDAtMTMyYzEuMy0yNS42IDcuMS00OC4zIDI1LjgtNjdzNDEuNS0yNC42IDY3LTI1LjhjMjYuNC0xLjUgMTA1LjYtMS41IDEzMiAwYzI1LjYgMS4zIDQ4LjMgNy4xIDY3IDI1LjhzMjQuNiA0MS40IDI1LjggNjdjMS41IDI2LjMgMS41IDEwNS40IDAgMTMxLjljLTEuMyAyNS42LTcuMSA0OC4zLTI1LjggNjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZUpzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NEMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZ6TTE4MC45IDQ0NC45Yy0zMy43IDAtNTMuMi0xNy40LTYzLjItMzguNUwxNTIgMzg1LjdjNi42IDExLjcgMTIuNiAyMS42IDI3LjEgMjEuNmMxMy44IDAgMjIuNi01LjQgMjIuNi0yNi41VjIzNy43aDQyLjFWMzgxLjRjMCA0My42LTI1LjYgNjMuNS02Mi45IDYzLjV6bTg1LjgtNDNMMzAxIDM4Mi4xYzkgMTQuNyAyMC44IDI1LjYgNDEuNSAyNS42YzE3LjQgMCAyOC42LTguNyAyOC42LTIwLjhjMC0xNC40LTExLjQtMTkuNS0zMC43LTI4bC0xMC41LTQuNWMtMzAuNC0xMi45LTUwLjUtMjkuMi01MC41LTYzLjVjMC0zMS42IDI0LjEtNTUuNiA2MS42LTU1LjZjMjYuOCAwIDQ2IDkuMyA1OS44IDMzLjdMMzY4IDI5MGMtNy4yLTEyLjktMTUtMTgtMjcuMS0xOGMtMTIuMyAwLTIwLjEgNy44LTIwLjEgMThjMCAxMi42IDcuOCAxNy43IDI1LjkgMjUuNmwxMC41IDQuNWMzNS44IDE1LjMgNTUuOSAzMSA1NS45IDY2LjJjMCAzNy44LTI5LjggNTguNi02OS43IDU4LjZjLTM5LjEgMC02NC40LTE4LjYtNzYuNy00M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlTGFzdGZtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NEMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZ6TTIxMC43IDI4MC44Yy0xLjgtNS41LTMuNC0xMC44LTUtMTUuOWMtMTIuOS00MS45LTIxLTY4LjQtNTgtNjguNGMtMjIuNCAwLTQ1LjEgMTYuMS00NS4xIDYxLjJjMCAzNS4yIDE4IDU3LjIgNDMuMyA1Ny4yYzI4LjYgMCA0Ny42LTIxLjMgNDcuNi0yMS4zbDExLjcgMzEuOXMtMTkuOCAxOS40LTYxLjIgMTkuNGMtNTEuMyAwLTc5LjktMzAuMS03OS45LTg1LjhjMC01Ny45IDI4LjYtOTIgODIuNS05MmM2Ny45IDAgNzkuMyAzNS4zIDk2LjQgODguNGMxLjQgNC40IDIuOSA4LjkgNC40IDEzLjVjOC44IDI2LjggMjQuMiA0Ni4yIDYxLjIgNDYuMmMyNC45IDAgMzguMS01LjUgMzguMS0xOS4xYzAtMTcuNS0xNi45LTIxLjItNDAtMjYuNGMtMy4yLS43LTYuNS0xLjQtOS45LTIuMmMtMzAuNC03LjMtNDIuNS0yMy4xLTQyLjUtNDhjMC00MCAzMi4zLTUyLjQgNjUuMi01Mi40YzM3LjQgMCA2MC4xIDEzLjYgNjMgNDYuNmwtMzYuNyA0LjRjLTEuNS0xNS44LTExLTIyLjQtMjguNi0yMi40Yy0xNi4xIDAtMjYgNy4zLTI2IDE5LjhjMCAxMSA0LjggMTcuNiAyMC45IDIxLjNjMi4yIC41IDQuNSAxIDYuNyAxLjRjMzEuMSA2LjUgNjUuMSAxMy43IDY1LjEgNTYuMWMuMSAzNi43LTMwLjcgNTAuNi03Ni4xIDUwLjZjLTYzLjQgMC04NS40LTI4LjYtOTcuMS02NC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVMZXR0ZXJib3hkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDM4NHpNMTA1LjEgMTg3QzY2LjQgMTg3IDM1IDIxOC4zIDM1IDI1N3MzMS40IDcwIDcwLjEgNzBjMjQuOCAwIDQ2LjUtMTIuOCA1OS0zMi4ybC41LS43LS40LS42Yy02LjUtMTAuNi0xMC4yLTIzLjEtMTAuMi0zNi41YzAtMTMuNiAzLjktMjYuMyAxMC42LTM3LjFjLTEyLjQtMTkuOC0zNC40LTMyLjktNTkuNS0zMi45ek0yMjQgMTg3Yy0yNC44IDAtNDYuNSAxMi44LTU5IDMyLjJsLS41IC43IC40IC42YzYuNSAxMC42IDEwLjIgMjMuMSAxMC4yIDM2LjVjMCAxMy42LTMuOSAyNi4zLTEwLjYgMzcuMUMxNzYuOSAzMTMuOCAxOTguOSAzMjcgMjI0IDMyN2MyNC44IDAgNDYuNS0xMi44IDU5LTMyLjJsLjUtLjctLjQtLjZjLTYuNS0xMC42LTEwLjItMjMuMS0xMC4yLTM2LjVjMC0xMy42IDMuOS0yNi4zIDEwLjYtMzcuMUMyNzEuMSAyMDAuMiAyNDkuMSAxODcgMjI0IDE4N3ptMTE4LjkgMGMtMjQuOCAwLTQ2LjUgMTIuOC01OSAzMi4ybC0uNSAuNyAuNCAuNmM2LjUgMTAuNiAxMC4yIDIzLjEgMTAuMiAzNi41YzAgMTMuNi0zLjkgMjYuMy0xMC42IDM3LjFjMTIuNCAxOS44IDM0LjQgMzIuOSA1OS41IDMyLjljMzguNyAwIDcwLjEtMzEuMyA3MC4xLTcwcy0zMS40LTcwLTcwLjEtNzB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZU9kbm9rbGFzc25pa2kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDEzNy4xYTM5LjkgMzkuOSAwIDEgMCAwIDc5LjcgMzkuOSAzOS45IDAgMSAwIDAtNzkuN3pNMzg0IDMySDY0QzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NHpNMjI0IDk1LjlBODEgODEgMCAxIDEgMjI0IDI1OGE4MSA4MSAwIDEgMSAwLTE2Mi4xem01OS4zIDE2OC4zYzE2LjgtMTMuMiAyOS41LTUuNSAzNC4xIDMuNmM3LjggMTYtMS4xIDIzLjctMjEuNSAzN2MtMTcuMSAxMC45LTQwLjcgMTUuMi01Ni4yIDE2LjhsMTMgMTIuOSA0Ny43IDQ3LjdjMTcuNCAxNy45LTExIDQ1LjgtMjguNiAyOC42Yy0xMi0xMi4yLTI5LjUtMjkuNy00Ny43LTQ3LjlsMCAwLTQ3LjcgNDcuOWMtMTcuNyAxNy4yLTQ2LTExLTI4LjQtMjguNmMzLjctMy43IDcuOS03LjkgMTIuNS0xMi41YzEwLjQtMTAuNCAyMi42LTIyLjcgMzUuMi0zNS4ybDEyLjktMTIuOWMtMTUuNC0xLjYtMzkuMy01LjctNTYuNi0xNi44Yy0yMC4zLTEzLjMtMjkuMy0yMC45LTIxLjQtMzdjNC42LTkuMSAxNy4zLTE2LjggMzQuMS0zLjZjMCAwIDIyLjcgMTggNTkuMyAxOHM1OS4zLTE4IDU5LjMtMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZVBpZWRQaXBlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiA0MTlMMCA0NzkuMmwuOC0zMjhDLjggODUuMyA1NCAzMiAxMjAgMzJoMzI3LjJjLTkzIDI4LjktMTg5LjkgOTQuMi0yNTMuOSAxNjguNkMxMjIuNyAyODIgODIuNiAzMzggMzIgNDE5TTQ0OCAzMlMzMDUuMiA5OC44IDI2MS42IDE5OS4xYy0yMy4yIDUzLjYtMjguOSAxMTguMS03MSAxNTguNi0yOC45IDI3LjgtNjkuOCAzOC4yLTEwNS4zIDU2LjMtMjMuMiAxMi02Ni40IDQwLjUtODQuOSA2NmgzMjguNGM2NiAwIDExOS4zLTUzLjMgMTE5LjMtMTE5LjItLjEgMC0uMS0zMjguOC0uMS0zMjguOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlUGludGVyZXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAzMkg2NEMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGg3Mi42bC0yLjItLjhjLTUuNC00OC4xLTMuMS01Ny41IDE1LjctMTM0LjdjMy45LTE2IDguNS0zNSAxMy45LTU3LjljMCAwLTcuMy0xNC44LTcuMy0zNi41YzAtNzAuNyA3NS41LTc4IDc1LjUtMjVjMCAxMy41LTUuNCAzMS4xLTExLjIgNDkuOGMtMy4zIDEwLjYtNi42IDIxLjUtOS4xIDMyYy01LjcgMjQuNSAxMi4zIDQ0LjQgMzYuNCA0NC40YzQzLjcgMCA3Ny4yLTQ2IDc3LjItMTEyLjRjMC01OC44LTQyLjMtOTkuOS0xMDIuNi05OS45QzE1MyAxMzkgMTEyIDE5MS40IDExMiAyNDUuNmMwIDIxLjEgOC4yIDQzLjcgMTguMyA1NmMyIDIuNCAyLjMgNC41IDEuNyA3Yy0xLjEgNC43LTMuMSAxMi45LTQuNyAxOS4yYy0xIDQtMS44IDcuMy0yLjEgOC42Yy0xLjEgNC41LTMuNSA1LjUtOC4yIDMuM2MtMzAuNi0xNC4zLTQ5LjgtNTkuMS00OS44LTk1LjFDNjcuMiAxNjcuMSAxMjMuNCA5NiAyMjkuNCA5NmM4NS4yIDAgMTUxLjQgNjAuNyAxNTEuNCAxNDEuOGMwIDg0LjYtNTMuMyAxNTIuNy0xMjcuNCAxNTIuN2MtMjQuOSAwLTQ4LjMtMTIuOS01Ni4zLTI4LjJjMCAwLTEyLjMgNDYuOS0xNS4zIDU4LjRjLTUgMTkuMy0xNy42IDQyLjktMjcuNCA1OS4zSDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlUmVkZGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMnpNMzA1LjkgMTY2LjRjMjAuNiAwIDM3LjMtMTYuNyAzNy4zLTM3LjNzLTE2LjctMzcuMy0zNy4zLTM3LjNjLTE4IDAtMzMuMSAxMi44LTM2LjYgMjkuOGMtMzAuMiAzLjItNTMuOCAyOC44LTUzLjggNTkuOWwwIC4yYy0zMi44IDEuNC02Mi44IDEwLjctODYuNiAyNS41Yy04LjgtNi44LTE5LjktMTAuOS0zMi0xMC45Yy0yOC45IDAtNTIuMyAyMy40LTUyLjMgNTIuM2MwIDIxIDEyLjMgMzkgMzAuMSA0Ny40YzEuNyA2MC43IDY3LjkgMTA5LjYgMTQ5LjMgMTA5LjZzMTQ3LjYtNDguOSAxNDkuMy0xMDkuN2MxNy43LTguNCAyOS45LTI2LjQgMjkuOS00Ny4zYzAtMjguOS0yMy40LTUyLjMtNTIuMy01Mi4zYy0xMiAwLTIzIDQtMzEuOSAxMC44Yy0yNC0xNC45LTU0LjMtMjQuMi04Ny41LTI1LjRsMC0uMWMwLTIyLjIgMTYuNS00MC43IDM3LjktNDMuN2wwIDBjMy45IDE2LjUgMTguNyAyOC43IDM2LjMgMjguN3pNMTU1IDI0OC4xYzE0LjYgMCAyNS44IDE1LjQgMjUgMzQuNHMtMTEuOCAyNS45LTI2LjUgMjUuOXMtMjcuNS03LjctMjYuNi0yNi43czEzLjUtMzMuNSAyOC4xLTMzLjV6bTE2Ni40IDMzLjVjLjkgMTktMTIgMjYuNy0yNi42IDI2LjdzLTI1LjYtNi45LTI2LjUtMjUuOWMtLjktMTkgMTAuMy0zNC40IDI1LTM0LjRzMjcuMyAxNC42IDI4LjEgMzMuNXptLTQyLjEgNDkuNmMtOSAyMS41LTMwLjMgMzYuNy01NS4xIDM2LjdzLTQ2LjEtMTUuMS01NS4xLTM2LjdjLTEuMS0yLjYgLjctNS40IDMuNC01LjdjMTYuMS0xLjYgMzMuNS0yLjUgNTEuNy0yLjVzMzUuNiAuOSA1MS43IDIuNWMyLjcgLjMgNC41IDMuMSAzLjQgNS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVTbmFwY2hhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQsMzJINjRBNjQsNjQsMCwwLDAsMCw5NlY0MTZhNjQsNjQsMCwwLDAsNjQsNjRIMzg0YTY0LDY0LDAsMCwwLDY0LTY0Vjk2QTY0LDY0LDAsMCwwLDM4NCwzMlptLTMuOTA3LDMxOS4zMDktLjA4My4xYTMyLjM2NCwzMi4zNjQsMCwwLDEtOC43MTcsNi44MjMsOTAuMjYsOTAuMjYsMCwwLDEtMjAuNTg2LDguMiwxMi42OTQsMTIuNjk0LDAsMCwwLTMuODUyLDEuNzZjLTIuMTU4LDEuOTA5LTIuMSw0LjY0LTQuNCw4LjU1YTIzLjEzNywyMy4xMzcsMCwwLDEtNi44NCw3LjQ3MWMtNi43MDcsNC42MzItMTQuMjQ0LDQuOTIzLTIyLjIzLDUuMjMtNy4yMTQuMjc0LTE1LjM5LjU4MS0yNC43MjksMy42NjktMy43NjEsMS4yNDUtNy43NTMsMy42OTQtMTIuMzc3LDYuNTMzLTExLjI2NSw2LjktMjYuNjgsMTYuMzUzLTUyLjMsMTYuMzUzcy00MC45MjUtOS40LTUyLjEwNi0xNi4yNzljLTQuNjU3LTIuODg4LTguNjc1LTUuMzYyLTEyLjU0My02LjY0LTkuMzM5LTMuMDgtMTcuNTE2LTMuNC0yNC43MjktMy42Ny03Ljk4Ni0uMzA3LTE1LjUyMy0uNi0yMi4yMzEtNS4yMjlhMjMuMDg1LDIzLjA4NSwwLDAsMS02LjAxLTYuMTFjLTMuMi00LjYzMi0yLjg1NS03LjgtNS4yNTQtOS44OTVhMTMuNDI4LDEzLjQyOCwwLDAsMC00LjEtMS44MzQsODkuOTg2LDg5Ljk4NiwwLDAsMS0yMC4zMTMtOC4xMjcsMzIuOTA1LDMyLjkwNSwwLDAsMS04LjMtNi4yODRjLTYuNTgzLTYuNzU3LTguMjc2LTE0Ljc3Ni01LjY4Ni0yMS44MjQsMy40MzYtOS4zMzgsMTEuNTcxLTEyLjExMSwxOS40LTE2LjI2MiwxNC43NzYtOC4wMjcsMjYuMzQ4LTE4LjA1NSwzNC40MzMtMjkuODg0YTY4LjIzNiw2OC4yMzYsMCwwLDAsNS45ODUtMTAuNTY3Yy43ODktMi4xNTguNzcyLTMuMzI5LjI0MS00LjQxNmE3LjM4Niw3LjM4NiwwLDAsMC0yLjIwOC0yLjIxN2MtMi41MzItMS42NzYtNS4xMTMtMy4zNTMtNi44ODItNC41LTMuMjctMi4xNDEtNS44NjgtMy44MTgtNy41MjktNC45OC02LjI2Ny00LjM4My0xMC42NS05LjA0LTEzLjQtMTQuMjQ1YTI4LjQsMjguNCwwLDAsMS0xLjM2OS0yMy41ODRjNC4xMzQtMTAuOTI0LDE0LjQ2OS0xNy43MDYsMjYuOTc4LTE3LjcwNmEzNy4xNDEsMzcuMTQxLDAsMCwxLDcuODQ1LjgzYy42ODkuMTUsMS4zNy4zMDcsMi4wNDIuNDgyLS4xMDgtNy40My4wNTgtMTUuMzU3LjcyMi0yMy4xMTksMi4zNTgtMjcuMjYxLDExLjkxMi00MS41ODksMjEuODc0LTUyLjk5NGE4Ni44MzYsODYuODM2LDAsMCwxLDIyLjI4LTE3LjkzMUMxODguMjU0LDEwMC4zODMsMjA1LjMxMiw5NiwyMjQsOTZzMzUuODI4LDQuMzgzLDUwLjk0NCwxMy4wMTZhODcuMTY5LDg3LjE2OSwwLDAsMSwyMi4yMzksMTcuOWM5Ljk2MSwxMS40MDYsMTkuNTE2LDI1LjcwOSwyMS44NzQsNTIuOTk1YTIzMS4xOTQsMjMxLjE5NCwwLDAsMSwuNzEzLDIzLjExOGMuNjczLS4xNzQsMS4zNjItLjMzMiwyLjA1MS0uNDgxYTM3LjEzMSwzNy4xMzEsMCwwLDEsNy44NDQtLjgzYzEyLjUsMCwyMi44Miw2Ljc4MiwyNi45NzEsMTcuNzA2YTI4LjM3LDI4LjM3LDAsMCwxLTEuNCwyMy41NTljLTIuNzQsNS4yLTcuMTIzLDkuODYxLTEzLjM5LDE0LjI0NC0xLjY2OCwxLjE4Ny00LjI1OCwyLjg2NC03LjUyOSw0Ljk4MS0xLjgzNSwxLjE4Ny00LjU0MSwyLjk0Ny03LjE2NCw0LjY4MmE2Ljg1Niw2Ljg1NiwwLDAsMC0xLjk1MSwyLjAzNGMtLjUwNiwxLjA0Ni0uNTM5LDIuMTkxLjE2Niw0LjIwOGE2OS4wMTUsNjkuMDE1LDAsMCwwLDYuMDg1LDEwLjc5MmM4LjI2OCwxMi4xLDIwLjE4OCwyMi4zMTMsMzUuNDU0LDMwLjQwNywxLjQ4Ni43NzIsMi45OCwxLjUsNC40NDEsMi4yNTguNzIyLjMzMiwxLjU2OS43NjMsMi40OTEsMS4zLDQuOSwyLjcyMyw5LjIsNi4wMSwxMS40NTUsMTIuMTUzQzM4Ny44MjEsMzM2LjkxNSwzODYuMjY5LDM0NC43LDM4MC4wOTMsMzUxLjMwOVptLTE2LjcxOS0xOC40NjFjLTUwLjMxMy0yNC4zMTQtNTguMzMyLTYxLjkxOC01OC42ODktNjQuNzQ5LS40MzEtMy4zNzktLjkyMS02LjAzNSwyLjgwNi05LjQ3MiwzLjU5NC0zLjMyOCwxOS41NDEtMTMuMTksMjMuOTY1LTE2LjI3OCw3LjMzLTUuMTE0LDEwLjUzNC0xMC4yMTksOC4xNi0xNi40OTUtMS42Ni00LjMxNi01LjY4Ni01Ljk3Ni05Ljk2MS01Ljk3NmExOC41LDE4LjUsMCwwLDAtMy45OTMuNDQ4Yy04LjAzNSwxLjc0My0xNS44MzgsNS43NjktMjAuMzU0LDYuODU3YTcuMSw3LjEsMCwwLDEtMS42Ni4yMjRjLTIuNDA4LDAtMy4yNzktMS4wNzEtMy4wODgtMy45NjguNTY0LTguNzgzLDEuNzU5LTI1LjkyNS4zNzMtNDEuOTM3LTEuODg0LTIyLjAzMi04Ljk5LTMyLjk0OC0xNy40MzItNDIuNi00LjA1MS00LjYyNC0yMy4xMzUtMjQuNjU0LTU5LjUzNi0yNC42NTRTMTY4LjUzLDEzNC4zNTksMTY0LjQ3OSwxMzljLTguNDM0LDkuNjU0LTE1LjUzMSwyMC41Ny0xNy40MzIsNDIuNi0xLjM4NiwxNi4wMTMtLjE0MSwzMy4xNDcuMzczLDQxLjkzNy4xNjYsMi43NTYtLjY4LDMuOTY4LTMuMDg4LDMuOTY4YTcuMSw3LjEsMCwwLDEtMS42Ni0uMjI0Yy00LjUwNy0xLjA4Ny0xMi4zMS01LjExMy0yMC4zNDYtNi44NTZhMTguNDk0LDE4LjQ5NCwwLDAsMC0zLjk5My0uNDQ5Yy00LjI1LDAtOC4zLDEuNjM2LTkuOTYxLDUuOTc3LTIuMzc0LDYuMjc2Ljg0NywxMS4zODEsOC4xNjgsMTYuNDk0LDQuNDI1LDMuMDg4LDIwLjM3MSwxMi45NTgsMjMuOTY2LDE2LjI3OSwzLjcxOSwzLjQzNywzLjIzNyw2LjA5MywyLjgwNSw5LjQ3MS0uMzU2LDIuNzktOC4zODQsNDAuMzk0LTU4LjY4OSw2NC43NDktMi45NDYsMS40MjgtNy45Niw0LjQ1Ljg4LDkuMzMxLDEzLjg4LDcuNjI4LDIzLjExMSw2LjgwNywzMC4zLDExLjQzLDYuMDkzLDMuOTI3LDIuNSwxMi4zOTQsNi45MjMsMTUuNDQ5LDUuNDU0LDMuNzYsMjEuNTgzLS4yNjYsNDIuMzM1LDYuNiwxNy40MzMsNS43NDQsMjguMTE2LDIyLjAxNSw1OC45NjMsMjIuMDE1czQxLjc4OC0xNi4zLDU4LjkzOC0yMS45NzNjMjAuNzk1LTYuODY1LDM2Ljg5LTIuODM5LDQyLjMzNi02LjYsNC40MzMtMy4wNTUuODIyLTExLjUyMiw2LjkyMy0xNS40NDgsNy4xODEtNC42MjQsMTYuNDExLTMuOCwzMC4zLTExLjQ3MkMzNzEuMzYsMzM3LjM1NSwzNjYuMzQ2LDMzNC4zMzMsMzYzLjM3NCwzMzIuODQ4WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVTdGVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjUuNiAzMDkuMWMxOC42IDcuNyAyNy4zIDI4LjkgMTkuNiA0Ny40cy0yOSAyNy4yLTQ3LjYgMTkuNGwtMjguNS0xMS44YzUgMTAuNiAxMy44IDE5LjQgMjUuNCAyNC4yYzI1LjIgMTAuNSA1NC4xLTEuNCA2NC42LTI2LjVjNS4xLTEyLjEgNS4xLTI1LjUgLjEtMzcuN2MtNS4xLTEyLjEtMTQuNS0yMS42LTI2LjctMjYuN2MtMTIuMS01LTI1LTQuOC0zNi40LS41bDI5LjUgMTIuMnpNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0QzI4LjcgMzIgMCA2MC43IDAgOTZWMjQwLjdsMTE2LjYgNDguMWMxMi04LjIgMjYuMi0xMi4xIDQwLjctMTEuM2w1NS40LTgwLjJ2LTEuMWMwLTQ4LjIgMzkuMy04Ny41IDg3LjYtODcuNXM4Ny42IDM5LjMgODcuNiA4Ny41YzAgNDkuMi00MC45IDg4LjctODkuNiA4Ny41bC03OSA1Ni4zYzEuNiAzOC41LTI5LjEgNjguOC02NS43IDY4LjhjLTMxLjggMC01OC41LTIyLjctNjQuNS01Mi43TDAgMzE5LjJWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NnpNMjQxLjkgMTk2LjJhNTguNCA1OC40IDAgMSAwIDExNi44IDAgNTguNCA1OC40IDAgMSAwIC0xMTYuOCAwem0xNC42LS4xYTQzLjkgNDMuOSAwIDEgMSA4Ny44IDAgNDMuOSA0My45IDAgMSAxIC04Ny44IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZVRocmVhZHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek0yOTQuMiAyNDQuM2MxOS41IDkuMyAzMy43IDIzLjUgNDEuMiA0MC45YzEwLjQgMjQuMyAxMS40IDYzLjktMjAuMiA5NS40Yy0yNC4yIDI0LjEtNTMuNSAzNS05NS4xIDM1LjNoLS4yYy00Ni44LS4zLTgyLjgtMTYuMS0xMDYuOS00Ni44QzkxLjUgMzQxLjggODAuNCAzMDMuNyA4MCAyNTZ2LS4xLS4xYy40LTQ3LjcgMTEuNS04NS43IDMzLTExMy4xYzI0LjItMzAuNyA2MC4yLTQ2LjUgMTA2LjktNDYuOGguMmM0Ni45IC4zIDgzLjMgMTYgMTA4LjIgNDYuNmMxMi4zIDE1LjEgMjEuMyAzMy4zIDI3IDU0LjRsLTI2LjkgNy4yYy00LjctMTcuMi0xMS45LTMxLjktMjEuNC00My42Yy0xOS40LTIzLjktNDguNy0zNi4xLTg3LTM2LjRjLTM4IC4zLTY2LjggMTIuNS04NS41IDM2LjJjLTE3LjUgMjIuMy0yNi42IDU0LjQtMjYuOSA5NS41Yy4zIDQxLjEgOS40IDczLjMgMjYuOSA5NS41YzE4LjcgMjMuOCA0Ny40IDM2IDg1LjUgMzYuMmMzNC4zLS4zIDU2LjktOC40IDc1LjgtMjcuM2MyMS41LTIxLjUgMjEuMS00Ny45IDE0LjItNjRjLTQtOS40LTExLjQtMTcuMy0yMS4zLTIzLjNjLTIuNCAxOC03LjkgMzIuMi0xNi41IDQzLjJjLTExLjQgMTQuNS0yNy43IDIyLjQtNDguNCAyMy41Yy0xNS43IC45LTMwLjgtMi45LTQyLjYtMTAuN2MtMTMuOS05LjItMjItMjMuMi0yMi45LTM5LjVjLTEuNy0zMi4yIDIzLjgtNTUuMyA2My41LTU3LjZjMTQuMS0uOCAyNy4zLS4yIDM5LjUgMS45Yy0xLjYtOS45LTQuOS0xNy43LTkuOC0yMy40Yy02LjctNy44LTE3LjEtMTEuOC0zMC44LTExLjloLS40Yy0xMSAwLTI2IDMuMS0zNS42IDE3LjZsLTIzLTE1LjhjMTIuOC0xOS40IDMzLjYtMzAuMSA1OC41LTMwLjFoLjZjNDEuOCAuMyA2Ni42IDI2LjMgNjkuMSA3MS44YzEuNCAuNiAyLjggMS4yIDQuMiAxLjlsLjEgLjV6bS03MS44IDY3LjVjMTctLjkgMzYuNC03LjYgMzkuNy00OC44Yy04LjgtMS45LTE4LjYtMi45LTI5LTIuOWMtMy4yIDAtNi40IC4xLTkuNiAuM2MtMjguNiAxLjYtMzguMSAxNS41LTM3LjQgMjcuOWMuOSAxNi43IDE5IDI0LjUgMzYuNCAyMy42bC0uMS0uMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlVHVtYmxyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NEMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZ6TTI1Ni44IDQxNmMtNzUuNSAwLTkxLjktNTUuNS05MS45LTg3Ljl2LTkwSDEzNS4yYy0zLjQgMC02LjItMi44LTYuMi02LjJWMTg5LjRjMC00LjUgMi44LTguNSA3LjEtMTBjMzguOC0xMy43IDUwLjktNDcuNSA1Mi43LTczLjJjLjUtNi45IDQuMS0xMC4yIDEwLTEwLjJoNDQuM2MzLjQgMCA2LjIgMi44IDYuMiA2LjJ2NzJoNTEuOWMzLjQgMCA2LjIgMi44IDYuMiA2LjJ2NTEuMWMwIDMuNC0yLjggNi4yLTYuMiA2LjJIMjQ5LjFWMzIxYzAgMjEuNCAxNC44IDMzLjUgNDIuNSAyMi40YzMtMS4yIDUuNi0yIDgtMS40YzIuMiAuNSAzLjYgMi4xIDQuNiA0LjlMMzE4IDM4Ny4xYzEgMy4yIDIgNi43LS4zIDkuMWMtOC41IDkuMS0zMS4yIDE5LjgtNjAuOSAxOS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVUd2l0dGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNMzUxLjMgMTk5LjN2MGMwIDg2LjctNjYgMTg2LjYtMTg2LjYgMTg2LjZjLTM3LjIgMC03MS43LTEwLjgtMTAwLjctMjkuNGM1LjMgLjYgMTAuNCAuOCAxNS44IC44YzMwLjcgMCA1OC45LTEwLjQgODEuNC0yOGMtMjguOC0uNi01My0xOS41LTYxLjMtNDUuNWMxMC4xIDEuNSAxOS4yIDEuNSAyOS42LTEuMmMtMzAtNi4xLTUyLjUtMzIuNS01Mi41LTY0LjR2LS44YzguNyA0LjkgMTguOSA3LjkgMjkuNiA4LjNjLTktNi0xNi40LTE0LjEtMjEuNS0yMy42cy03LjgtMjAuMi03LjctMzFjMC0xMi4yIDMuMi0yMy40IDguOS0zMy4xYzMyLjMgMzkuOCA4MC44IDY1LjggMTM1LjIgNjguNmMtOS4zLTQ0LjUgMjQtODAuNiA2NC04MC42YzE4LjkgMCAzNS45IDcuOSA0Ny45IDIwLjdjMTQuOC0yLjggMjktOC4zIDQxLjYtMTUuOGMtNC45IDE1LjItMTUuMiAyOC0yOC44IDM2LjFjMTMuMi0xLjQgMjYtNS4xIDM3LjgtMTAuMmMtOC45IDEzLjEtMjAuMSAyNC43LTMyLjkgMzRjLjIgMi44IC4yIDUuNyAuMiA4LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZVVwd29yayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NiAzMmwzMzYgMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDMzNmMwIDMwLjktMjUuMSA1Ni01NiA1Nkw1NiA0ODBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgODhDMCA1Ny4xIDI1LjEgMzIgNTYgMzJ6TTI3MC45IDI3NC4yYzYuNi01Mi45IDI1LjktNjkuNSA1MS40LTY5LjVjMjUuMyAwIDQ0LjkgMjAuMiA0NC45IDQ5LjdzLTE5LjcgNDkuNy00NC45IDQ5LjdjLTI3LjkgMC00Ni4zLTIxLjUtNTEuNC0yOS45em0tMjYuNy00MS44Yy04LjItMTUuNS0xNC4zLTM2LjMtMTkuMi01NS42bC0yOS43IDAtMzMuMiAwIDAgNzguMWMwIDI4LjQtMTIuOSA0OS40LTM4LjIgNDkuNHMtMzkuOC0yMC45LTM5LjgtNDkuM2wuMy03OC4xLTM2LjIgMCAwIDc4LjFjMCAyMi44IDcuNCA0My41IDIwLjkgNTguMmMxMy45IDE1LjIgMzIuOCAyMy4yIDU0LjggMjMuMmM0My43IDAgNzQuMi0zMy41IDc0LjItODEuNWwwLTUyLjVjNC42IDE3LjMgMTUuNCA1MC41IDM2LjIgNzkuN0wyMTUgMzkyLjZsMzYuOCAwIDEyLjgtNzguNGM0LjIgMy41IDguNyA2LjYgMTMuNCA5LjRjMTIuMyA3LjggMjYuNCAxMi4yIDQwLjkgMTIuNmwuMSAwYy41IDAgMS4xIDAgMS42IDBjLjYgMCAxLjEgMCAxLjcgMGM0NS4xIDAgODAuOS0zNC45IDgwLjktODEuOXMtMzUuOS04Mi4yLTgwLjktODIuMmMtNDUuNCAwLTcwLjkgMjkuNy03OC4xIDYwLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZVZpYWRlbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjRDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2ek0xMTguMyAzODEuMmMtNjgtNzMuNi0xOS44LTE5Ni4xIDgxLjItMTk2LjFjMTMuMyAwIDI2LjYgMi4xIDM5LjEgNi43Yy00LjMgOC40LTcuMyAxNy42LTguNCAyNy4xYy05LjctNC4xLTIwLjItNi0zMC43LTZjLTQ4LjggMC04NC42IDQxLjctODQuNiA4OC45YzAgNDMgMjguNSA3OC43IDY5LjUgODUuOWM2MS41LTI0IDcyLjktMTE3LjYgNzIuOS0xNzV2MGMwLTcuMyAwLTE0LjgtLjYtMjIuMWMtMTEuMi0zMi45LTI2LjYtNjQuNi00NC4yLTk0LjVjMjcuMSAxOC4zIDQxLjkgNjIuNSA0NC4yIDk0LjF2LjRjNy43IDIyLjUgMTEuOCA0Ni4yIDExLjggNzBjMCA1NC4xLTIxLjkgOTktNjguMyAxMjguMmwtMi40IC4yYzUwIDEgODYuMi0zOC42IDg2LjItODcuMmMwLTEyLjItMi4xLTI0LjMtNi45LTM1LjdjOS41LTEuOSAxOC41LTUuNiAyNi40LTEwLjVjMTUuMyAzNi42IDEyLjYgODcuMy0yMi44IDEyNS42Yy00Mi40IDQ2LjItMTIwIDQ2LjYtMTYyLjQgMHpNMjc0LjYgMjE3LjZjMjEuOS0xMiA0OS42LTMwLjcgNjIuMy01M2MxLjUtMyA0LjEtOC42IDQuNS0xMmMtMTIuNSAyNy45LTQ0LjIgNDkuOC03My45IDU2LjdjLTQuNy03LjMtNy41LTE1LjUtNy41LTI0LjNjMC0xMC4zIDUuMi0yNC4xIDEyLjktMzEuNmM4LjMtNy45IDE4LTEwLjkgMjcuOS0xNC4xYzE2LTUuMSAzMi41LTEwLjMgNDQuNS0zNS45YzMyLjUgNDYuMiAxMy4xIDEzMC4zLTM2LjMgMTMwLjNjLTEzLjMgMC0yNS4xLTcuMS0zNC40LTE2LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZVZpbWVvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NEMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZ6TTMxOC41IDMwOS41QzI3NSAzNjYgMjM4LjIgMzk0LjMgMjA4LjEgMzk0LjNjLTE4LjcgMC0zNC40LTE3LjItNDcuMy01MS42Yy0zLjgtMTMuOS03LjMtMjYuOS0xMC41LTM5Yy0xOC4yLTY4LjMtMjguNi0xMDcuNC00Ni4yLTEwNy40Yy0yLjQgMC0xMC44IDUtMjUuMSAxNS4xTDY0IDE5MmM3LTYuMSAxMy45LTEyLjQgMjAuNi0xOC41YzI5LjEtMjYuMyA1NS42LTUwLjMgNzMuNS01MS45YzI0LjktMi40IDQwLjIgMTQuNiA0NiA1MS4xYzIwLjUgMTI5LjYgMjkuNiAxNDkuMiA2Ni44IDkwLjVjMTMuNC0yMS4yIDIwLjYtMzcuMiAyMS41LTQ4LjNjMy40LTMyLjgtMjUuNi0zMC42LTQ1LjItMjIuMmMxNS43LTUxLjUgNDUuOC03Ni41IDkwLjEtNzUuMWMzMi45IDEgNDguNCAyMi40IDQ2LjUgNjRjLTEuNCAzMS4xLTIzLjIgNzMuOC02NS4zIDEyNy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVXZWJBd2Vzb21lU3Ryb2tlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDY0QzQ2LjMgNjQgMzIgNzguMyAzMiA5NmwwIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyMGMwLTE3LjctMTQuMy0zMi0zMi0zMkw2NCA2NHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTIzNSA4MS42TDI4OCAyMjRsNTIuMi0xMC40Yy0yLjYtMy45LTQuMi04LjUtNC4yLTEzLjZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDEzLTEwLjMgMjMuNi0yMy4yIDI0TDMwNC41IDM0OS4xYy01LjIgMTEuNS0xNi42IDE4LjktMjkuMiAxOC45bC0xMDIuNiAwYy0xMi42IDAtMjQtNy40LTI5LjItMTguOUw4Ny4yIDIyNEM3NC4zIDIyMy42IDY0IDIxMyA2NCAyMDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDUtMS41IDkuNy00LjIgMTMuNkwxNjAgMjI0bDUzLjEtNDYuNGMtOC45LTQuMS0xNS0xMy4xLTE1LTIzLjZjMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNmMwIDEwLjUtNi4yIDE5LjUtMTUuMSAyMy42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVXZWJBd2Vzb21lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIzNSAxNzcuNkwyODggMjI0bDUyLjItMTAuNGMtMi42LTMuOS00LjItOC41LTQuMi0xMy42YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCAxMy0xMC4zIDIzLjYtMjMuMiAyNEwzMDQuNSAzNDkuMWMtNS4yIDExLjUtMTYuNiAxOC45LTI5LjIgMTguOWwtMTAyLjYgMGMtMTIuNiAwLTI0LTcuNC0yOS4yLTE4LjlMODcuMiAyMjRDNzQuMyAyMjMuNiA2NCAyMTMgNjQgMjAwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCA1LTEuNSA5LjctNC4yIDEzLjZMMTYwIDIyNGw1My4xLTQ2LjRjLTguOS00LjEtMTUtMTMuMS0xNS0yMy42YzAtMTQuNCAxMS42LTI2IDI2LTI2czI2IDExLjYgMjYgMjZjMCAxMC41LTYuMiAxOS41LTE1LjEgMjMuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlV2hhdHNhcHAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTIuMSAyNTQuNmMwIDI0LjkgNyA0OS4yIDIwLjIgNzAuMWwzLjEgNS0xMy4zIDQ4LjZMMTUyIDM2NS4ybDQuOCAyLjljMjAuMiAxMiA0My40IDE4LjQgNjcuMSAxOC40aC4xYzcyLjYgMCAxMzMuMy01OS4xIDEzMy4zLTEzMS44YzAtMzUuMi0xNS4yLTY4LjMtNDAuMS05My4yYy0yNS0yNS01OC0zOC43LTkzLjItMzguN2MtNzIuNyAwLTEzMS44IDU5LjEtMTMxLjkgMTMxLjh6TTI3NC44IDMzMGMtMTIuNiAxLjktMjIuNCAuOS00Ny41LTkuOWMtMzYuOC0xNS45LTYxLjgtNTEuNS02Ni45LTU4LjdjLS40LS42LS43LS45LS44LTEuMWMtMi0yLjYtMTYuMi0yMS41LTE2LjItNDFjMC0xOC40IDktMjcuOSAxMy4yLTMyLjNjLjMtLjMgLjUtLjUgLjctLjhjMy42LTQgNy45LTUgMTAuNi01YzIuNiAwIDUuMyAwIDcuNiAuMWMuMyAwIC41IDAgLjggMGMyLjMgMCA1LjIgMCA4LjEgNi44YzEuMiAyLjkgMyA3LjMgNC45IDExLjhjMy4zIDggNi43IDE2LjMgNy4zIDE3LjZjMSAyIDEuNyA0LjMgLjMgNi45Yy0zLjQgNi44LTYuOSAxMC40LTkuMyAxM2MtMy4xIDMuMi00LjUgNC43LTIuMyA4LjZjMTUuMyAyNi4zIDMwLjYgMzUuNCA1My45IDQ3LjFjNCAyIDYuMyAxLjcgOC42LTFjMi4zLTIuNiA5LjktMTEuNiAxMi41LTE1LjVjMi42LTQgNS4zLTMuMyA4LjktMnMyMy4xIDEwLjkgMjcuMSAxMi45Yy44IC40IDEuNSAuNyAyLjEgMWMyLjggMS40IDQuNyAyLjMgNS41IDMuNmMuOSAxLjkgLjkgOS45LTIuNCAxOS4xYy0zLjMgOS4zLTE5LjEgMTcuNy0yNi43IDE4Ljh6TTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NEMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZ6TTE0OC4xIDM5My45TDY0IDQxNmwyMi41LTgyLjJjLTEzLjktMjQtMjEuMi01MS4zLTIxLjItNzkuM0M2NS40IDE2Ny4xIDEzNi41IDk2IDIyMy45IDk2YzQyLjQgMCA4Mi4yIDE2LjUgMTEyLjIgNDYuNWMyOS45IDMwIDQ3LjkgNjkuOCA0Ny45IDExMi4yYzAgODcuNC03Mi43IDE1OC41LTE2MC4xIDE1OC41Yy0yNi42IDAtNTIuNy02LjctNzUuOC0xOS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVYVHdpdHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6bTI5Ny4xIDg0TDI1Ny4zIDIzNC42IDM3OS40IDM5NkgyODMuOEwyMDkgMjk4LjEgMTIzLjMgMzk2SDc1LjhsMTExLTEyNi45TDY5LjcgMTE2aDk4bDY3LjcgODkuNUwzMTMuNiAxMTZoNDcuNXpNMzIzLjMgMzY3LjZMMTUzLjQgMTQyLjlIMTI1LjFMMjk2LjkgMzY3LjZoMjYuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlWGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjRDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2ek05My44IDMyMC4yYy01LjUgMC04LjctNS4zLTYtMTAuM2w0OS4zLTg2LjdjLjEgMCAuMS0uMSAwLS4ybC0zMS40LTU0Yy0zLTUuNiAuMi0xMC4xIDYtMTAuMWg0Ni42YzUuMiAwIDkuNSAyLjkgMTIuOSA4LjdsMzEuOSA1NS4zYy0xLjMgMi4zLTE4IDMxLjctNTAuMSA4OC4yYy0zLjUgNi4yLTcuNyA5LjEtMTIuNiA5LjFIOTMuOHptMTYzLjUtMzMuNHYuMmw2NS41IDExOWMyLjggNS4xIC4xIDEwLjEtNiAxMC4xSDI3MC4yYy01LjUgMC05LjctMi45LTEyLjktOC43bC02Ni0xMjAuM2MxLjgtMy4yIDIyLjktNDAuNCA2My4zLTExMS42YzExLjctMjAuNyAyNS4xLTQ0LjMgNDAuMS03MC44YzMuMy01LjggNy40LTguNyAxMi41LTguN2g0Ni45YzUuNy0uMSA4LjggNC43IDYgMTBMMjU3LjMgMjg2Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZVlvdXR1YmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjgyIDI1Ni4ybC05NS4yLTU0LjFWMzEwLjNMMjgyIDI1Ni4yek0zODQgMzJINjRDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0em0xNC40IDEzNi4xYzcuNiAyOC42IDcuNiA4OC4yIDcuNiA4OC4yczAgNTkuNi03LjYgODguMWMtNC4yIDE1LjgtMTYuNSAyNy43LTMyLjIgMzEuOUMzMzcuOSAzODQgMjI0IDM4NCAyMjQgMzg0cy0xMTMuOSAwLTE0Mi4yLTcuNmMtMTUuNy00LjItMjgtMTYuMS0zMi4yLTMxLjlDNDIgMzE1LjkgNDIgMjU2LjMgNDIgMjU2LjNzMC01OS43IDcuNi04OC4yYzQuMi0xNS44IDE2LjUtMjguMiAzMi4yLTMyLjRDMTEwLjEgMTI4IDIyNCAxMjggMjI0IDEyOHMxMTMuOSAwIDE0Mi4yIDcuN2MxNS43IDQuMiAyOCAxNi42IDMyLjIgMzIuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlc3BhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg2LjEyIDM0My4zNGMtOS42NSA5LjY1LTkuNjUgMjUuMjkgMCAzNC45NCA5LjY1IDkuNjUgMjUuMjkgOS42NSAzNC45NCAwTDM3OC4yNCAyMjEuMWMxOS4yOS0xOS4yOSA1MC41Ny0xOS4yOSA2OS44NiAwczE5LjI5IDUwLjU3IDAgNjkuODZMMjkzLjk1IDQ0NS4xYzE5LjI3IDE5LjI5IDUwLjUzIDE5LjMxIDY5LjgyLjA0bC4wNC0uMDQgMTE5LjI1LTExOS4yNGMzOC41OS0zOC41OSAzOC41OS0xMDEuMTQgMC0xMzkuNzItMzguNTktMzguNTktMTAxLjE1LTM4LjU5LTEzOS43MiAwbC0xNTcuMjIgMTU3LjJ6bTI0NC41My0xMDQuOGMtOS42NS05LjY1LTI1LjI5LTkuNjUtMzQuOTMgMGwtMTU3LjIgMTU3LjE4Yy0xOS4yNyAxOS4yOS01MC41MyAxOS4zMS02OS44Mi4wNWwtLjA1LS4wNWMtOS42NC05LjY0LTI1LjI3LTkuNjUtMzQuOTItLjAxbC0uMDEuMDFjLTkuNjUgOS42NC05LjY2IDI1LjI4LS4wMiAzNC45M2wuMDIuMDJjMzguNTggMzguNTcgMTAxLjE0IDM4LjU3IDEzOS43MiAwbDE1Ny4yLTE1Ny4yYzkuNjUtOS42NSA5LjY1LTI1LjI5LjAxLTM0Ljkzem0tMjYxLjk5IDg3LjMzbDE1Ny4xOC0xNTcuMThjOS42NC05LjY1IDkuNjQtMjUuMjkgMC0zNC45NC05LjY0LTkuNjQtMjUuMjctOS42NC0zNC45MSAwTDEzMy43MiAyOTAuOTNjLTE5LjI4IDE5LjI5LTUwLjU2IDE5LjMtNjkuODUuMDFsLS4wMS0uMDFjLTE5LjI5LTE5LjI4LTE5LjMxLTUwLjU0LS4wMy02OS44NGwuMDMtLjAzTDIxOC4wMyA2Ni44OWMtMTkuMjgtMTkuMjktNTAuNTUtMTkuMy02OS44NS0uMDJsLS4wMi4wMkwyOC45MyAxODYuMTRjLTM4LjU4IDM4LjU5LTM4LjU4IDEwMS4xNCAwIDEzOS43MiAzOC42IDM4LjU5IDEwMS4xMyAzOC41OSAxMzkuNzMuMDF6bS04Ny4zMy01Mi40YzkuNjQgOS42NCAyNS4yNyA5LjY0IDM0LjkxIDBsMTU3LjIxLTE1Ny4xOWMxOS4yOC0xOS4yOSA1MC41NS0xOS4zIDY5Ljg0LS4wMmwuMDIuMDJjOS42NSA5LjY1IDI1LjI5IDkuNjUgMzQuOTMgMCA5LjY1LTkuNjUgOS42NS0yNS4yOSAwLTM0LjkzLTM4LjU5LTM4LjU5LTEwMS4xMy0zOC41OS0xMzkuNzIgMEw4MS4zMyAyMzguNTRjLTkuNjUgOS42NC05LjY1IDI1LjI4LS4wMSAzNC45M2guMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0YWNrRXhjaGFuZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNyAzMzIuM2g0MTIuN3YyMmMwIDM3LjctMjkuMyA2OC02NS4zIDY4aC0xOUwyNTkuMyA1MTJ2LTg5LjdIODNjLTM2IDAtNjUuMy0zMC4zLTY1LjMtNjh2LTIyem0wLTIzLjZoNDEyLjd2LTg1SDE3Ljd2ODV6bTAtMTA5LjRoNDEyLjd2LTg1SDE3Ljd2ODV6TTM2NSAwSDgzQzQ3IDAgMTcuNyAzMC4zIDE3LjcgNjcuN1Y5MGg0MTIuN1Y2Ny43QzQzMC4zIDMwLjMgNDAxIDAgMzY1IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0YWNrT3ZlcmZsb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjkwLjcgMzExTDk1IDI2OS43IDg2LjggMzA5bDE5NS43IDQxem01MS04N0wxODguMiA5NS43bC0yNS41IDMwLjggMTUzLjUgMTI4LjN6bS0zMS4yIDM5LjdMMTI5LjIgMTc5bC0xNi43IDM2LjVMMjkzLjcgMzAwek0yNjIgMzJsLTMyIDI0IDExOS4zIDE2MC4zIDMyLTI0em0yMC41IDMyOGgtMjAwdjM5LjdoMjAwem0zOS43IDgwSDQyLjdWMzIwaC00MHYxNjBoMzU5LjVWMzIwaC00MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RhY2twYXRoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0NC42IDIzMi40YzAgOC41LTQuMjYgMjAuNDktMjEuMzQgMjAuNDloLTE5LjYxdi00MS40N2gxOS42MWMxNy4xMyAwIDIxLjM0IDEyLjM2IDIxLjM0IDIwLjk4ek00NDggMzJ2NDQ4SDBWMzJ6TTE1MS4zIDI4Ny44NGMwLTIxLjI0LTEyLjEyLTM0LjU0LTQ2LjcyLTQ0Ljg1LTIwLjU3LTcuNDEtMjYtMTAuOTEtMjYtMTguNjNzNy0xNC42MSAyMC40MS0xNC42MWMxNC4wOSAwIDIwLjc5IDguNDUgMjAuNzkgMTguMzVoMzAuN2wuMTktLjU3Yy41LTE5LjU3LTE1LjA2LTQxLjY1LTUxLjEyLTQxLjY1LTIzLjM3IDAtNTIuNTUgMTAuNzUtNTIuNTUgMzguMjkgMCAxOS40IDkuMjUgMzEuMjkgNTAuNzQgNDQuMzcgMTcuMjYgNi4xNSAyMS45MSAxMC40IDIxLjkxIDE5LjQ4IDAgMTUuMi0xOS4xMyAxNC4yMy0xOS40NyAxNC4yMy0yMC40IDAtMjUuNjUtOS4xLTI1LjY1LTIxLjloLTMwLjhsLS4xOC41NmMtLjY4IDMxLjMyIDI4LjM4IDQ1LjIyIDU2LjYzIDQ1LjIyIDI5Ljk4IDAgNTEuMTItMTMuNTUgNTEuMTItMzguMjl6bTEyNS4zOC01NS42M2MwLTI1LjMtMTguNDMtNDUuNDYtNTMuNDItNDUuNDZoLTUxLjc4djEzOC4xOGgzMi4xN3YtNDcuMzZoMTkuNjFjMzAuMjUgMCA1My40Mi0xNS45NSA1My40Mi00NS4zNnpNMjk3Ljk0IDMyNUwzNDcgMTg2Ljc4aC0zMS4wOUwyNjggMzI1em0xMDYuNTItMTM4LjIyaC0zMS4wOUwzMjUuNDYgMzI1aDI5Ljk0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGF5bGlua2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4Mi43IDI5Mi41bDIuNyAyLjctMTcwLTE2Ny4zYy0zLjUtMy41LTkuNy0zLjctMTMuOC0uNUwxNDQuMyAxNzFjLTQuMiAzLjItNC42IDguNy0xLjEgMTIuMmw2OC4xIDY0LjNjMy42IDMuNSA5LjkgMy43IDE0IC41bC4xLS4xYzQuMS0zLjIgMTAuNC0zIDE0IC41bDg0IDgxLjNjMy42IDMuNSAzLjIgOS0uOSAxMi4ybC05My4yIDc0Yy00LjIgMy4zLTEwLjUgMy4xLTE0LjItLjRMNjMuMiAyNjhjLTMuNS0zLjUtOS43LTMuNy0xMy45LS41TDMuNSAzMDIuNGMtNC4yIDMuMi00LjcgOC43LTEuMiAxMi4yTDIxMSA1MTAuN3M3LjQgNi44IDE3LjMtLjhsMTk4LTE2My45YzQtMy4yIDQuNC04LjcuNy0xMi4yem01NC41LTgzLjRMMjI2LjcgMi41Yy0xLjUtMS4yLTgtNS41LTE2LjMgMS4xTDMuNiAxNjUuN2MtNC4yIDMuMi00LjggOC43LTEuMiAxMi4ybDQyLjMgNDEuNyAxNzEuNyAxNjUuMWMzLjcgMy41IDEwLjEgMy43IDE0LjMuNGw1MC4yLTM4LjgtLjMtLjMgNy43LTZjNC4yLTMuMiA0LjYtOC43LjktMTIuMmwtNTcuMS01NC40Yy0zLjYtMy41LTEwLTMuNy0xNC4yLS41bC0uMS4xYy00LjIgMy4yLTEwLjUgMy4xLTE0LjItLjRMMTA5IDE4MC44Yy0zLjYtMy41LTMuMS04LjkgMS4xLTEyLjJsOTIuMi03MS41YzQuMS0zLjIgMTAuMy0zIDEzLjkuNWwxNjAuNCAxNTljMy43IDMuNSAxMCAzLjcgMTQuMS41bDQ1LjgtMzUuOGM0LjEtMy4yIDQuNC04LjcuNy0xMi4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGVhbVN5bWJvbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTUuNSAxNzcuNWMwIDMzLjgtMjcuNSA2MS02MSA2MS0zMy44IDAtNjEtMjcuMy02MS02MXMyNy4zLTYxIDYxLTYxYzMzLjUgMCA2MSAyNy4yIDYxIDYxem01Mi41LjJjMCA2My01MSAxMTMuOC0xMTMuNyAxMTMuOEwyMjUgMzcxLjNjLTQgNDMtNDAuNSA3Ni44LTg0LjUgNzYuOC00MC41IDAtNzQuNy0yOC44LTgzLTY3TDAgMzU4VjI1MC43TDk3LjIgMjkwYzE1LjEtOS4yIDMyLjItMTMuMyA1Mi0xMS41bDcxLTEwMS43Yy41LTYyLjMgNTEuNS0xMTIuOCAxMTQtMTEyLjhDMzk3IDY0IDQ0OCAxMTUgNDQ4IDE3Ny43ek0yMDMgMzYzYzAtMzQuNy0yNy44LTYyLjUtNjIuNS02Mi41LTQuNSAwLTkgLjUtMTMuNSAxLjVsMjYgMTAuNWMyNS41IDEwLjIgMzggMzkgMjcuNyA2NC41LTEwLjIgMjUuNS0zOS4yIDM4LTY0LjcgMjcuNS0xMC4yLTQtMjAuNS04LjMtMzAuNy0xMi4yIDEwLjUgMTkuNyAzMS4yIDMzLjIgNTUuMiAzMy4yIDM0LjcgMCA2Mi41LTI3LjggNjIuNS02Mi41em0yMDcuNS0xODUuM2MwLTQyLTM0LjMtNzYuMi03Ni4yLTc2LjItNDIuMyAwLTc2LjUgMzQuMi03Ni41IDc2LjIgMCA0Mi4yIDM0LjMgNzYuMiA3Ni41IDc2LjIgNDEuOS4xIDc2LjItMzMuOSA3Ni4yLTc2LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0ZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiAyNTZjMCAxMzctMTExLjIgMjQ4LTI0OC40IDI0OC0xMTMuOCAwLTIwOS42LTc2LjMtMjM5LTE4MC40bDk1LjIgMzkuM2M2LjQgMzIuMSAzNC45IDU2LjQgNjguOSA1Ni40IDM5LjIgMCA3MS45LTMyLjQgNzAuMi03My41bDg0LjUtNjAuMmM1Mi4xIDEuMyA5NS44LTQwLjkgOTUuOC05My41IDAtNTEuNi00Mi05My41LTkzLjctOTMuNXMtOTMuNyA0Mi05My43IDkzLjV2MS4yTDE3Ni42IDI3OWMtMTUuNS0uOS0zMC43IDMuNC00My41IDEyLjFMMCAyMzYuMUMxMC4yIDEwOC40IDExNy4xIDggMjQ3LjYgOCAzODQuOCA4IDQ5NiAxMTkgNDk2IDI1NnpNMTU1LjcgMzg0LjNsLTMwLjUtMTIuNmE1Mi43OSA1Mi43OSAwIDAgMCAyNy4yIDI1LjhjMjYuOSAxMS4yIDU3LjgtMS42IDY5LTI4LjQgNS40LTEzIDUuNS0yNy4zLjEtNDAuMy01LjQtMTMtMTUuNS0yMy4yLTI4LjUtMjguNi0xMi45LTUuNC0yNi43LTUuMi0zOC45LS42bDMxLjUgMTNjMTkuOCA4LjIgMjkuMiAzMC45IDIwLjkgNTAuNy04LjMgMTkuOS0zMSAyOS4yLTUwLjggMjF6bTE3My44LTEyOS45Yy0zNC40IDAtNjIuNC0yOC02Mi40LTYyLjNzMjgtNjIuMyA2Mi40LTYyLjMgNjIuNCAyOCA2Mi40IDYyLjMtMjcuOSA2Mi4zLTYyLjQgNjIuM3ptLjEtMTUuNmMyNS45IDAgNDYuOS0yMSA0Ni45LTQ2LjggMC0yNS45LTIxLTQ2LjgtNDYuOS00Ni44cy00Ni45IDIxLTQ2LjkgNDYuOGMuMSAyNS44IDIxLjEgNDYuOCA0Ni45IDQ2Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0aWNrZXJNdWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2MS43IDE5OS42Yy0xLjMuMy4zIDAgMCAwem0tNi4yLTc3LjRjLTcuNy0yMi4zLTUuMS03LjItMTMuNC0zNi45LTEuNi02LjUtMy42LTE0LjUtNi4yLTIwLTQuNC04LjctNC42LTcuNS00LjYtOS41IDAtNS4zIDMwLjctNDUuMyAxOS00Ni45LTUuNy0uNi0xMi4yIDExLjYtMjAuNiAxNy04LjYgNC4yLTggNS0xMC4zIDUtMi42IDAtNS43LTMtNi4yLTUtMi01LjcgMS45LTI1LjktMy42LTI1LjktMy42IDAtMTIuMyAyNC44LTE3IDI1LjgtNS4yIDEuMy0yNy45LTExLjQtNzUuMSAxOC0yNS4zIDEzLjItODYuOSA2NS4yLTg3IDY1LjMtNi43IDQuNy0yMCA0LjctMzUuNSAxNi00NC40IDMwLjEtMTA5LjYgOS40LTExMC43IDktMTEwLjYtMjYuOC0xMjgtMTUuMi0xNTkgMTEuNS0yMC44IDE3LjktMjMuNyAzNi41LTI0LjIgMzguOS00LjIgMjAuNCA1LjIgNDguMyA2LjcgNjQuMyAxLjggMTkuMy0yLjcgMTcuNyA3LjcgOTguMy41IDEgNC4xIDAgNS4xIDEuNSAwIDguNC0zLjggMTIuMS00LjEgMTMtMS41IDQuNS0xLjUgMTAuNSAwIDE2IDIuMyA4LjIgOC4yIDM3LjIgOC4yIDQ2LjkgMCA0MS44LjQgNDQgMi42IDQ5LjQgMy45IDEwIDEyLjUgOS4xIDE3IDEyIDMuMSAzLjUtLjUgOC41IDEgMTIuNS41IDIgMy42IDQgNi4yIDUgOS4yIDMuNiAyNyAuMyAyOS45LTIuNSAxLjYtMS41LjUtNC41IDMuMS01IDUuMSAwIDEwLjgtLjUgMTQuNC0yLjUgNS4xLTIuNSA0LjEtNiAxLjUtMTAuNS0uNC0uOC03LTEzLjMtOS44LTE2LTIuMS0yLTUuMS0zLTcuMi00LjUtNS44LTQuOS0xMC4zLTE5LjQtMTAuMy0xOS41LTQuNi0xOS40LTEwLjMtNDYuMy00LjEtNjYuOCA0LjYtMTcuMiAzOS41LTg3LjcgMzkuNi04Ny44IDQuMS02LjUgMTctMTEuNSAyNy4zLTcgNiAxLjkgMTkuMyAyMiA2NS40IDMwLjkgNDcuOSA4LjcgOTcuNC0yIDExMi4yLTIgMi44IDItMS45IDEzLS41IDM4LjkgMCAyNi40LS40IDEzLjctNC4xIDI5LjktMi4yIDkuNyAzLjQgMjMuMi0xLjUgNDYuOS0xLjQgOS44LTkuOSAzMi43LTguMiA0My40LjUgMSAxIDIgMS41IDMuNS41IDQuNSAxLjUgOC41IDQuNiAxMCA3LjMgMy42IDEyLTMuNSA5LjggMTEuNS0uNyAzLjEtMi42IDEyIDEuNSAxNSA0LjQgMy43IDMwLjYgMy40IDM2LjUuNSAyLjYtMS41IDEuNi00LjUgNi40LTcuNCAxLjktLjkgMTEuMy0uNCAxMS4zLTYuNS4zLTEuOC05LjItMTkuOS05LjMtMjAtMi42LTMuNS05LjItNC41LTExLjMtOC02LjktMTAuMS0xLjctNTIuNi41LTU5LjQgMy0xMSA1LjYtMjIuNCA4LjctMzIuNCAxMS00Mi41IDEwLjMtNTAuNiAxNi41LTY4LjMuOC0xLjggNi40LTIzLjEgMTAuMy0yOS45IDkuMy0xNyAyMS43LTMyLjQgMzMuNS00Ny40IDE4LTIyLjkgMzQtNDYuOSA1Mi02OS44IDYuMS03IDguMi0xMy43IDE4LTggMTAuOCA1LjcgMjEuNiA3IDMxLjkgMTcgMTQuNiAxMi44IDEwLjIgMTguMiAxMS44IDIyLjkgMS41IDUgNy43IDEwLjUgMTQuOSA5LjUgMTAuNC0yIDEzLTIuNSAxMy40LTIuNSAyLjYtLjUgNS43LTUgNy4yLTggMy4xLTUuNSA3LjItOSA3LjItMTYuNSAwLTcuNy0uNC0yLjgtMjAuNi01Mi45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdHJhdmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTU4LjQgMEw3IDI5Mmg4OS4ybDYyLjItMTE2LjFMMjIwLjEgMjkyaDg4LjV6bTE1MC4yIDI5MmwtNDMuOSA4OC4yLTQ0LjYtODguMmgtNjcuNmwxMTIuMiAyMjAgMTExLjUtMjIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdHJpcGVTIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1NS4zIDE1NC42YzAtMjIuMyAxOC42LTMwLjkgNDguNC0zMC45IDQzLjQgMCA5OC41IDEzLjMgMTQxLjkgMzYuN1YyNi4xQzI5OC4zIDcuMiAyNTEuMSAwIDIwMy44IDAgODguMSAwIDExIDYwLjQgMTEgMTYxLjRjMCAxNTcuOSAyMTYuOCAxMzIuMyAyMTYuOCAyMDAuNCAwIDI2LjQtMjIuOSAzNC45LTU0LjcgMzQuOS00Ny4yIDAtMTA4LjItMTkuNS0xNTYuMS00NS41djEyOC41YTM5Ni4wOSAzOTYuMDkgMCAwIDAgMTU2IDMyLjRjMTE4LjYgMCAyMDAuMy01MSAyMDAuMy0xNTMuNiAwLTE3MC4yLTIxOC0xMzkuNy0yMTgtMjAzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0cmlwZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjUgMTQ0LjdsLTQzLjMgOS4yLS4yIDE0Mi40YzAgMjYuMyAxOS44IDQzLjMgNDYuMSA0My4zIDE0LjYgMCAyNS4zLTIuNyAzMS4yLTUuOXYtMzMuOGMtNS43IDIuMy0zMy43IDEwLjUtMzMuNy0xNS43VjIyMWgzMy43di0zNy44aC0zMy43em04OS4xIDUxLjZsLTIuNy0xMy4xSDIxM3YxNTMuMmg0NC4zVjIzMy4zYzEwLjUtMTMuOCAyOC4yLTExLjEgMzMuOS05LjN2LTQwLjhjLTYtMi4xLTI2LjctNi0zNy4xIDEzLjF6bTkyLjMtNzIuM2wtNDQuNiA5LjV2MzYuMmw0NC42LTkuNXpNNDQuOSAyMjguM2MwLTYuOSA1LjgtOS42IDE1LjEtOS43IDEzLjUgMCAzMC43IDQuMSA0NC4yIDExLjR2LTQxLjhjLTE0LjctNS44LTI5LjQtOC4xLTQ0LjEtOC4xLTM2IDAtNjAgMTguOC02MCA1MC4yIDAgNDkuMiA2Ny41IDQxLjIgNjcuNSA2Mi40IDAgOC4yLTcuMSAxMC45LTE3IDEwLjktMTQuNyAwLTMzLjctNi4xLTQ4LjYtMTQuMnY0MGMxNi41IDcuMSAzMy4yIDEwLjEgNDguNSAxMC4xIDM2LjkgMCA2Mi4zLTE1LjggNjIuMy00Ny44IDAtNTIuOS02Ny45LTQzLjQtNjcuOS02My40ek02NDAgMjYxLjZjMC00NS41LTIyLTgxLjQtNjQuMi04MS40cy02Ny45IDM1LjktNjcuOSA4MS4xYzAgNTMuNSAzMC4zIDc4LjIgNzMuNSA3OC4yIDIxLjIgMCAzNy4xLTQuOCA0OS4yLTExLjV2LTMzLjRjLTEyLjEgNi4xLTI2IDkuOC00My42IDkuOC0xNy4zIDAtMzIuNS02LjEtMzQuNS0yNi45aDg2LjljLjItMi4zLjYtMTEuNi42LTE1Ljl6bS04Ny45LTE2LjhjMC0yMCAxMi4zLTI4LjQgMjMuNC0yOC40IDEwLjkgMCAyMi41IDguNCAyMi41IDI4LjR6bS0xMTIuOS02NC42Yy0xNy40IDAtMjguNiA4LjItMzQuOCAxMy45bC0yLjMtMTFIMzYzdjIwNC44bDQ0LjQtOS40LjEtNTAuMmM2LjQgNC43IDE1LjkgMTEuMiAzMS40IDExLjIgMzEuOCAwIDYwLjgtMjMuMiA2MC44LTc5LjYuMS01MS42LTI5LjMtNzkuNy02MC41LTc5Ljd6bS0xMC42IDEyMi41Yy0xMC40IDAtMTYuNi0zLjgtMjAuOS04LjRsLS4zLTY2YzQuNi01LjEgMTEtOC44IDIxLjItOC44IDE2LjIgMCAyNy40IDE4LjIgMjcuNCA0MS40LjEgMjMuOS0xMC45IDQxLjgtMjcuNCA0MS44em0tMTI2LjcgMzMuN2g0NC42VjE4My4yaC00NC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdHViYmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzNi41IDI5NC4ybDU4LjggMjIuOWM5LjEtMzYuOCAyNS40LTYxLjEgNTUtNjEuMWM0OS40IDAgNzEuNCA2My42IDE0Mi40IDYzLjZjMTUuNiAwIDM1LjktMi44IDU1LjMtMTMuM1YzNjhjMCA2MS44LTUwLjQgMTEyLTExMi4zIDExMkgwbDQxLjgtNTZMMCAzNjhsNDEuNy01NkwwIDI1Ni4xbDQxLjgtNTZMMCAxNDQuMSA0MS44IDg4IDAgMzJIMzM1LjdDMzk3LjYgMzIgNDQ4IDgyLjMgNDQ4IDE0NC4xdjUxLjNjLTkuMiAzNi4zLTI1LjkgNjAuNi01NSA2MC42Yy00OS42IDAtNzEuNi02My41LTE0Mi40LTYzLjVjLTM1LjkgMC05NS4yIDE0LjYtMTE0LjEgMTAxLjZoMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3R1ZGlvdmluYXJpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MC4zIDE4Ny43bDQuMiAyOHYyOGwtMjUuMSA0NC4xLTM5LjggNzguNC01Ni4xIDY3LjUtNzkuMSAzNy44LTE3LjcgMjQuNS03LjcgMTItOS42IDRzMTcuMy02My42IDE5LjQtNjMuNmMyLjEgMCAyMC4zLjcgMjAuMy43bDY2LjctMzguNi05Mi41IDI2LjEtNTUuOSAzNi44LTIyLjggMjgtNi42IDEuNCAyMC44LTczLjYgNi45LTUuNSAyMC43IDEyLjkgODguMy00NS4yIDU2LjgtNTEuNSAxNC44LTY4LjQtMTI1LjQgMjMuMyAxNS4yLTE4LjItMTczLjQtNTMuMyA4MS45LTEwLjUtMTY2LTEyMi45TDEzMy41IDEwOCAzMi4yIDBsMjUyLjkgMTI2LjYtMzEuNS0zOEwzNzggMTYzIDIzNC43IDY0bDE4LjcgMzguNC00OS42LTE4LjFMMTU4LjMgMGwxOTQuNiAxMjJMMzEwIDY2LjJsMTA4IDk2LjQgMTItOC45LTIxLTE2LjQgNC4yLTM3LjhMNDUxIDg5LjFsMjkuMiAyNC43IDExLjUgNC4yLTcgNi4yIDguNSAxMi0xMy4xIDcuNC0xMC4zIDIwLjIgMTAuNSAyMy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdHVtYmxldXBvbkNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4em0wIDE3Ny41Yy05LjggMC0xNy44IDgtMTcuOCAxNy44djEwNi45YzAgNDAuOS0zMy45IDczLjktNzQuOSA3My45LTQxLjQgMC03NC45LTMzLjUtNzQuOS03NC45di00Ni41aDU3LjN2NDUuOGMwIDEwIDggMTcuOCAxNy44IDE3LjhzMTcuOC03LjkgMTcuOC0xNy44VjIwMC4xYzAtNDAgMzQuMi03Mi4xIDc0LjctNzIuMSA0MC43IDAgNzQuNyAzMi4zIDc0LjcgNzIuNnYyMy43bC0zNC4xIDEwLjEtMjIuOS0xMC43di0yMC42Yy4xLTkuNi03LjktMTcuNi0xNy43LTE3LjZ6bTE2Ny42IDEyMy42YzAgNDEuNC0zMy41IDc0LjktNzQuOSA3NC45LTQxLjIgMC03NC45LTMzLjItNzQuOS03NC4yVjI2M2wyMi45IDEwLjcgMzQuMS0xMC4xdjQ3LjFjMCA5LjggOCAxNy42IDE3LjggMTcuNnMxNy44LTcuOSAxNy44LTE3LjZ2LTQ4aDU3LjNjLS4xIDQ1LjktLjEgNDYuNC0uMSA0Ni40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdHVtYmxldXBvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDIuOSAyNjZ2NjkuN2MwIDYyLjEtNTAuMyAxMTIuNC0xMTIuNCAxMTIuNC02MS44IDAtMTEyLjQtNDkuOC0xMTIuNC0xMTEuM3YtNzAuMmwzNC4zIDE2IDUxLjEtMTUuMlYzMzhjMCAxNC43IDEyIDI2LjUgMjYuNyAyNi41UzQxNyAzNTIuNyA0MTcgMzM4di03Mmg4NS45em0tMjI0LjctNTguMmwzNC4zIDE2IDUxLjEtMTUuMlYxNzNjMC02MC41LTUxLjEtMTA5LTExMi4xLTEwOS02MC44IDAtMTEyLjEgNDguMi0xMTIuMSAxMDguMnYxNjIuNGMwIDE0LjktMTIgMjYuNy0yNi43IDI2LjdTODYgMzQ5LjUgODYgMzM0LjZWMjY2SDB2NjkuN0MwIDM5Ny43IDUwLjMgNDQ4IDExMi40IDQ0OGM2MS42IDAgMTEyLjQtNDkuNSAxMTIuNC0xMTAuOFYxNzYuOWMwLTE0LjcgMTItMjYuNyAyNi43LTI2LjdzMjYuNyAxMiAyNi43IDI2Ljd2MzAuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3VwZXJwb3dlcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDMyYy04My4zIDExLTE2Ni44IDIyLTI1MCAzMy05MiAxMi41LTE2My4zIDg2LjctMTY5IDE4MC0zLjMgNTUuNSAxOCAxMDkuNSA1Ny44IDE0OC4yTDAgNDgwYzgzLjMtMTEgMTY2LjUtMjIgMjQ5LjgtMzMgOTEuOC0xMi41IDE2My4zLTg2LjggMTY4LjctMTc5LjggMy41LTU1LjUtMTgtMTA5LjUtNTcuNy0xNDguMkw0NDggMzJ6bS03OS43IDIzMi4zYy00LjIgNzkuNS03NCAxMzkuMi0xNTIuOCAxMzQuNS03OS41LTQuNy0xNDAuNy03MS0xMzYuMy0xNTEgNC41LTc5LjIgNzQuMy0xMzkuMyAxNTMtMTM0LjUgNzkuMyA0LjcgMTQwLjUgNzEgMTM2LjEgMTUxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdXBwbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQwIDI2Mi41YzAgNjQuMS0xMDkgMTE2LjEtMjQzLjUgMTE2LjEtMjQuOCAwLTQ4LjYtMS44LTcxLjEtNSA3LjcuNCAxNS41LjYgMjMuNC42IDEzNC41IDAgMjQzLjUtNTYuOSAyNDMuNS0xMjcuMSAwLTI5LjQtMTkuMS01Ni40LTUxLjItNzggNjAgMjEuMSA5OC45IDU1LjEgOTguOSA5My40ek00Ny43IDIyNy45Yy0uMS03MC4yIDEwOC44LTEyNy4zIDI0My4zLTEyNy42IDcuOSAwIDE1LjYuMiAyMy4zLjUtMjIuNS0zLjItNDYuMy00LjktNzEtNC45QzEwOC44IDk2LjMtLjEgMTQ4LjUgMCAyMTIuNmMuMSAzOC4zIDM5LjEgNzIuMyA5OS4zIDkzLjMtMzIuMy0yMS41LTUxLjUtNDguNi01MS42LTc4em02MC4yIDM5LjlzMTAuNSAxMy4yIDI5LjMgMTMuMmMxNy45IDAgMjguNC0xMS41IDI4LjQtMjUuMSAwLTI4LTQwLjItMjUuMS00MC4yLTM5LjcgMC01LjQgNS4zLTkuMSAxMi41LTkuMSA1LjcgMCAxMS4zIDIuNiAxMS4zIDYuNnYzLjloMTQuMnYtNy45YzAtMTIuMS0xNS40LTE2LjgtMjUuNC0xNi44LTE2LjUgMC0yOC41IDEwLjItMjguNSAyNC4xIDAgMjYuNiA0MC4yIDI1LjQgNDAuMiAzOS45IDAgNi42LTUuOCAxMC4xLTEyLjMgMTAuMS0xMS45IDAtMjAuNy0xMC4xLTIwLjctMTAuMWwtOC44IDEwLjl6bTEyMC44LTczLjZ2NTQuNGMwIDExLjMtNy4xIDE3LjgtMTcuOCAxNy44LTEwLjcgMC0xNy44LTYuNS0xNy44LTE3Ljd2LTU0LjVoLTE1Ljh2NTVjMCAxOC45IDEzLjQgMzEuOSAzMy43IDMxLjkgMjAuMSAwIDMzLjQtMTMgMzMuNC0zMS45di01NWgtMTUuN3ptMzQuNCA4NS40aDE1Ljh2LTI5LjVoMTUuNWMxNiAwIDI3LjItMTEuNSAyNy4yLTI4LjFzLTExLjItMjcuOC0yNy4yLTI3LjhoLTM5LjF2MTMuNGg3Ljh2NzJ6bTE1LjgtNDN2LTI5LjFoMTIuOWM4LjcgMCAxMy43IDUuNyAxMy43IDE0LjQgMCA4LjktNS4xIDE0LjctMTQgMTQuN2gtMTIuNnptNTcgNDNoMTUuOHYtMjkuNWgxNS41YzE2IDAgMjcuMi0xMS41IDI3LjItMjguMXMtMTEuMi0yNy44LTI3LjItMjcuOGgtMzkuMXYxMy40aDcuOHY3MnptMTUuNy00M3YtMjkuMWgxMi45YzguNyAwIDEzLjcgNS43IDEzLjcgMTQuNCAwIDguOS01IDE0LjctMTQgMTQuN2gtMTIuNnptNTcuMSAzNC44YzAgNS44IDIuNCA4LjIgOC4yIDguMmgzNy42YzUuOCAwIDguMi0yLjQgOC4yLTguMnYtMTNoLTE0LjN2NS4yYzAgMS43LTEgMi42LTIuNiAyLjZoLTE4LjZjLTEuNyAwLTIuNi0xLTIuNi0yLjZ2LTYxLjJjMC01LjctMi40LTguMi04LjItOC4ySDQwMXYxMy40aDUuMmMxLjcgMCAyLjYgMSAyLjYgMi42djYxLjJ6bTYzLjQgMGMwIDUuOCAyLjQgOC4yIDguMiA4LjJINTE5YzUuNyAwIDguMi0yLjQgOC4yLTguMnYtMTNoLTE0LjN2NS4yYzAgMS43LTEgMi42LTIuNiAyLjZoLTE5LjdjLTEuNyAwLTIuNi0xLTIuNi0yLjZ2LTIwLjNoMjcuN3YtMTMuNEg0ODh2LTIyLjRoMTkuMmMxLjcgMCAyLjYgMSAyLjYgMi42djUuMkg1MjR2LTEzYzAtNS43LTIuNS04LjItOC4yLTguMmgtNTEuNnYxMy40aDcuOHY2My45em01OC45LTc2djUuOWgxLjZ2LTUuOWgyLjd2LTEuMmgtN3YxLjJoMi43em01LjctMS4ydjcuMWgxLjV2LTUuN2wyLjMgNS43aDEuM2wyLjMtNS43djUuN2gxLjV2LTcuMWgtMi4zbC0yLjEgNS4xLTIuMS01LjFoLTIuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3VzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01OTMuMSAxOTIuNkExMC40IDEwLjQgMCAxIDEgNjA0LjUgMjEwYTEwLjQgMTAuNCAwIDEgMSAtMTEuNC0xNy40em0tNDcuMSAxMi4yYTM4LjUgMzguNSAwIDEgMSA3NS0xNy42IDM4LjUgMzguNSAwIDEgMSAtNzUgMTcuNnpNNDMzLjcgMzM2LjdjMy4yIDQuNiA1LjggOSA3LjMgMTMuNGMxIDMuMSAyLjQgNy4zIDUuNSA4LjljLjIgLjEgLjMgLjIgLjUgLjJjNS43IDIuMSAyMC4zIDEuNyAyMC4zIDEuN2gyNi44YzIuMyAwIDIyLjQgMCAyMS45LTIuM2MtMi40LTEwLjgtMTQuOS0xMi43LTI0LjQtMTguM2MtOC43LTUuMi0xNy0xMS4xLTIwLjgtMjEuM2MtMi01LjItLjgtMTcuNCAyLjYtMjEuOGMyLjUtMy4yIDYuMS01LjMgMTAtNi4yYzQuMy0uOSA4LjgtLjEgMTMuMSAuM2M1LjMgLjUgMTAuNiAxLjUgMTUuOSAyLjJjMTAuMyAxLjMgMjAuNiAxLjkgMzEgMS42YzE3LjEtLjUgMzQuMi0zLjIgNTAuNC04LjdjMTEuMy0zLjggMjIuNC04LjkgMzItMTYuMWMxMC45LTguMSA4LjEtNy40LTMtNi4yYy0xMy4zIDEuNC0yNi42IDEuNi0zOS45IC44Yy0xMi40LS43LTI0LjctMi4yLTM1LjktNy45Yy04LjgtNC42LTE2LjQtOS4xLTIzLjQtMTYuMmMtMS0xLjEtMS43LTQuMiAuMi02LjJjMS45LTEuOSA1LjgtLjggNyAuMmMxMi4yIDEwLjIgMzAuNSAxOC42IDQ5LjMgMTkuNWMxMC4yIC41IDIwLjEgLjcgMzAuNCAuM2M1LjEtLjIgMTIuOC0uMiAxNy45LS4zYzIuNiAwIDkuOCAuNyAxMS4yLTIuMWMuNC0uOCAuNC0xLjggLjMtMi43Yy0xLjUtNDAuOS00LjUtODYuOS00Ny4zLTEwNi41Yy0zMS45LTE0LjYtNzkuNy0zNy4yLTk5LjktNDYuNmMtNC43LTIuMi0xMC4yIDEuMy0xMC4yIDYuNWMwIDEzLjYgLjcgMzMuMyAuNyA1MS4xYy05LjctOS45LTI2LTE2LjEtMzguNC0yMS44Yy0xNC4xLTYuNS0yOC43LTEyLTQzLjUtMTYuNmMtMjkuOC05LjItNjAuNy0xNC45LTkxLjctMThjLTM1LjItMy41LTcxLTEuOC0xMDUuNyA1LjNDMTQ3IDExNS4xIDkwLjggMTQyLjYgNDguMiAxODIuN0MyMi4xIDIwNy4zIDEuNiAyNDIuNCAuMiAyNzcuOWMtMiA1MC4zIDEyLjEgNzcuMyAzOCAxMDUuMmM0MS4zIDQ0LjQgMTMwLjIgNTAuNiAxNjYuMi0yYzE2LjItMjMuNyAxOS43LTU1LjggOC04MmMtMTEuOC0yNi4yLTM4LjgtNDUuMS02Ny40LTQ2Yy0yMi4yLS43LTQ1LjkgMTAuNi01NC41IDMxLjFjLTYuNSAxNS43LTIuOCAzNS4xIDkgNDcuM2M0LjYgNC44IDEwLjkgOC43IDE3LjcgNy4xYzQtLjkgNy40LTMuOSA4LThjLjktNi00LjQtOS45LTcuNi0xNC41Yy01LjgtOC4zLTQuNy0yMC45IDIuNy0yNy45YzYuMi02IDE1LjMtNy44IDIzLjktNy43YzggMCAxNi4yIDEuNCAyMy4xIDUuNWM5LjcgNS43IDE2LjIgMTYuMiAxOC40IDI3LjJjNi43IDMzLTIwLjIgNTkuOS01Ni42IDYyYy0xOC42IDEuMS0zNy42LTMuOC01Mi4xLTE1LjVDNDAuMSAzMjkuOSAzMS4xIDI2OS40IDczLjIgMjM3YzQwLTMwLjcgOTAuNC0yMi44IDEyMC4yLTYuOGMyMy44IDEyLjggNDEuNSAzMy42IDU1IDU2LjdjNi43IDExLjYgMTIuNSAyMy43IDE3LjggMzYuMWM1LjEgMTEuOCA5LjkgMjMuOCAyMC4yIDMyLjVjNi44IDUuOCAxNS4yIDUuNiAyNC4xIDUuNmg1MC44YzYuOSAwIDUuMi00LjYgMi4yLTcuN2MtNi43LTYuOS0xNi40LTguNC0yNS40LTEwLjljLTIwLjUtNS42LTE4LjQtMzIuOC0xMi43LTMyLjhjMTguMyAwIDE4LjkgLjYgMzQuOSAuM2MyMy4yLS4zIDMwLjItMS43IDQ4LjMgNWM5LjcgMy42IDE5IDEzLjEgMjUuMSAyMS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTd2lmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMTU2LjA5YzAtNC41MS0uMDgtOS0uMi0xMy41MmExOTYuMzEgMTk2LjMxIDAgMCAwLTIuNTgtMjkuNDIgOTkuNjIgOTkuNjIgMCAwIDAtOS4yMi0yOEE5NC4wOCA5NC4wOCAwIDAgMCAzOTQuODQgNDRhOTkuMTcgOTkuMTcgMCAwIDAtMjgtOS4yMiAxOTUgMTk1IDAgMCAwLTI5LjQzLTIuNTljLTQuNTEtLjEyLTktLjE3LTEzLjUyLS4ySDEyNC4xNGMtNC41MSAwLTkgLjA4LTEzLjUyLjItMi40NS4wNy00LjkxLjE1LTcuMzcuMjdhMTcxLjY4IDE3MS42OCAwIDAgMC0yMi4wNiAyLjMyIDEwMy4wNiAxMDMuMDYgMCAwIDAtMjEuMjEgNi4xcS0zLjQ2IDEuNDUtNi44MSAzLjEyYTk0LjY2IDk0LjY2IDAgMCAwLTE4LjM5IDEyLjMyYy0xLjg4IDEuNjEtMy42OSAzLjI4LTUuNDMgNUE5My44NiA5My44NiAwIDAgMCAxMiA4NS4xN2E5OS40NSA5OS40NSAwIDAgMC05LjIyIDI4IDE5Ni4zMSAxOTYuMzEgMCAwIDAtMi41NCAyOS40Yy0uMTMgNC41MS0uMTggOS0uMjEgMTMuNTJ2MTk5LjgzYzAgNC41MS4wOCA5IC4yMSAxMy41MWExOTYuMDggMTk2LjA4IDAgMCAwIDIuNTggMjkuNDIgOTkuMyA5OS4zIDAgMCAwIDkuMjIgMjhBOTQuMzEgOTQuMzEgMCAwIDAgNTMuMTcgNDY4YTk5LjQ3IDk5LjQ3IDAgMCAwIDI4IDkuMjEgMTk1IDE5NSAwIDAgMCAyOS40MyAyLjU5YzQuNS4xMiA5IC4xNyAxMy41Mi4ySDMyMy45MWM0LjUxIDAgOS0uMDggMTMuNTItLjJhMTk2LjU5IDE5Ni41OSAwIDAgMCAyOS40NC0yLjU5IDk5LjU3IDk5LjU3IDAgMCAwIDI4LTkuMjFBOTQuMjIgOTQuMjIgMCAwIDAgNDM2IDQyNi44NGE5OS4zIDk5LjMgMCAwIDAgOS4yMi0yOCAxOTQuNzkgMTk0Ljc5IDAgMCAwIDIuNTktMjkuNDJjLjEyLTQuNS4xNy05IC4yLTEzLjUxVjE3Mi4xNGMtLjAxLTUuMzUtLjAxLTEwLjctLjAxLTE2LjA1em0tNjkuODggMjQxYy0yMC0zOC45My01Ny4yMy0yOS4yNy03Ni4zMS0xOS40Ny0xLjcyIDEtMy40OCAyLTUuMjUgM2wtLjQyLjI1Yy0zOS41IDIxLTkyLjUzIDIyLjU0LTE0NS44NS0uMzhBMjM0LjY0IDIzNC42NCAwIDAgMSA0NSAyOTAuMTJhMjMwLjYzIDIzMC42MyAwIDAgMCAzOS4xNyAyMy4zN2M1Ni4zNiAyNi40IDExMyAyNC40OSAxNTMgMC01Ny00My44NS0xMDQuNi0xMDEtMTQxLjA5LTE0Ny4yMmExOTcuMDkgMTk3LjA5IDAgMCAxLTE4Ljc4LTI1LjljNDMuNyA0MCAxMTIuNyA5MC4yMiAxMzcuNDggMTA0LjEyLTUyLjU3LTU1LjQ5LTk4Ljg5LTEyMy45NC05Ni43Mi0xMjEuNzQgODIuNzkgODMuNDIgMTU5LjE4IDEzMC41OSAxNTkuMTggMTMwLjU5IDIuODggMS41OCA1IDIuODUgNi43MyA0YTEyNy40NCAxMjcuNDQgMCAwIDAgNC4xNi0xMi40N2MxMy4yMi00OC4zMy0xLjY2LTEwMy41OC0zNS4zMS0xNDkuMkMzMjkuNjEgMTQxLjc1IDM3NSAyMjkuMzQgMzU2LjQgMzAzLjQyYy0uNDQgMS43My0uOTUgMy40LTEuNDQgNS4wOSAzOC41MiA0Ny40IDI4LjA0IDk4LjE3IDIzLjEzIDg4LjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTeW1mb255IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTEzMy43NCAxNDMuNTRjLTExLjQ3LjQxLTE5LjQtNi40NS0xOS43Ny0xNi44Ny0uMjctOS4xOCA2LjY4LTEzLjQ0IDYuNTMtMTguODUtLjIzLTYuNTUtMTAuMTYtNi44Mi0xMi44Ny02LjY3LTM5Ljc4IDEuMjktNDguNTkgNTctNTguODkgMTEzLjg1IDIxLjQzIDMuMTUgMzYuNjUtLjcyIDQ1LjE0LTYuMjIgMTItNy43NS0zLjM0LTE1LjcyLTEuNDItMjQuNTYgNC0xOC4xNiAzMi41NS0xOSAzMiA1LjMtLjM2IDE3Ljg2LTI1LjkyIDQxLjgxLTc3LjYgMzUuNy0xMC43NiA1OS41Mi0xOC4zNSAxMTUtNTguMiAxNjEuNzItMjkgMzQuNDYtNTguNCAzOS44Mi03MS41OCA0MC4yNi0yNC42NS44NS00MS0xMi4zMS00MS41OC0yOS44NC0uNTYtMTcgMTQuNDUtMjYuMjYgMjQuMzEtMjYuNTkgMjEuODktLjc1IDMwLjEyIDI1LjY3IDE0Ljg4IDM0LTEyLjA5IDkuNzEuMTEgMTIuNjEgMi4wNSAxMi41NSAxMC40Mi0uMzYgMTcuMzQtNS41MSAyMi4xOC05IDI0LTIwIDMzLjI0LTU0Ljg2IDQ1LjM1LTExOC4zNSA4LjE5LTQ5LjY2IDE3LTc4IDE4LjIzLTgyLTE2LjkzLTEyLjc1LTI3LjA4LTI4LjU1LTQ5Ljg1LTM0LjcyLTE1LjYxLTQuMjMtMjUuMTItLjYzLTMxLjgxIDcuODMtNy45MiAxMC01LjI5IDIzIDIuMzcgMzAuN2wxMi42MyAxNGMxNS41MSAxNy45MyAyNCAzMS44NyAyMC44IDUwLjYyLTUuMDYgMjkuOTMtNDAuNzIgNTIuOS04Mi44OCAzOS45NC0zNi0xMS4xMS00Mi43LTM2LjU2LTM4LjM4LTUwLjYyIDcuNTEtMjQuMTUgNDIuMzYtMTEuNzIgMzQuNjIgMTMuNi0yLjc5IDguNi00LjkyIDguNjgtNi4yOCAxMy4wNy00LjU2IDE0Ljc3IDQxLjg1IDI4LjQgNTEtMS4zOSA0LjQ3LTE0LjUyLTUuMy0yMS43MS0yMi4yNS0zOS44NS0yOC40Ny0zMS43NS0xNi02NS40OSAyLjk1LTc5LjY3QzIwNC4yMyAxNDAuMTMgMjUxLjk0IDE5NyAyNjIgMjA1LjI5YzM3LjE3LTEwOSAxMDAuNTMtMTA1LjQ2IDEwMi40My0xMDUuNTMgMjUuMTYtLjgxIDQ0LjE5IDEwLjU5IDQ0LjgzIDI4LjY1LjI1IDcuNjktNC4xNyAyMi41OS0xOS41MiAyMy4xM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVhbXNwZWFrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1Mi44IDM3LjJjLTMyLjIgMzguMS01Ni4xIDgyLjYtNjkuOSAxMzAuNWMwIC4yLS4xIC4zLS4xIC41QzQzLjUgMTg0LjQgMTYgMjIzIDE2IDI2OGMwIDU5LjYgNDguNCAxMDggMTA4IDEwOHMxMDgtNDguNCAxMDgtMTA4YzAtNTMuNS0zOC45LTk3LjktOTAtMTA2LjVjMTUuNy00MS44IDQwLjQtNzkuNiA3Mi4zLTExMC43YzEuOC0xLjYgNC0yLjYgNi4zLTMuMWMzNy4yLTExLjUgNzYuNy0xMy4zIDExNC44LTUuMkM0NTQuNyA2Ny42IDUzNCAxODAuNyA1MTcuMSAzMDEuM2MtOC40IDYyLjYtMzguNiAxMTIuNy04Ny43IDE1MS40Yy01MC4xIDM5LjctMTA3LjUgNTQuMy0xNzAuMiA1Mi4ybC0yNC0xYzEyLjQgMi44IDI1IDQuOSAzNy42IDYuM2M0MC43IDQuMiA4MS40IDIuMSAxMjAuMS0xMi41Yzk0LTM1LjUgMTQ5LjMtMTAyLjMgMTYyLjktMjAyLjVjNC44LTUyLjYtNS44LTEwNS40LTMwLjgtMTUyQzQ1NC42IDExLjMgMjkwLjgtMzguNCAxNTkgMzJjLTIuNCAxLjQtNC41IDMuMS02LjMgNS4yek0zMDkuNCA0MzMuOWMtMi4xIDExLjUtNC4yIDIxLjktMTQuNiAzMS4zYzUzLjItMSAxMjMuMi0yOS4yIDE2MS44LTk3LjFjMzkuNy02OS45IDM3LjYtMTM5LjktNi4zLTIwNy44QzQxMy44IDEwNSAzNjAuNSA3Ny45IDI5My43IDczLjdjMS41IDIuMyAzLjIgNC40IDUuMiA2LjNsNS4yIDYuM2MyNS4xIDMxLjMgMzcuNiA2Ny45IDQyLjggMTA3LjVjMi4xIDE1LjctMSAzMC4zLTEzLjYgNDEuOGMtNC4yIDMuMS01LjIgNi4zLTQuMiAxMC40bDcuMyAxNy43TDM2NS43IDMxOGM1LjIgMTEuNSA0LjIgMTkuOC02LjMgMjguMmMtMy4yIDIuNS02LjcgNC42LTEwLjQgNi4zbC0xOC44IDguNCAzLjEgMTMuNmMzLjEgNi4zIDEgMTIuNS0zLjEgMTcuN2MtMi41IDIuNC0zLjggNS45LTMuMSA5LjRjMi4xIDExLjUtMi4xIDE5LjgtMTIuNSAyNS4xYy0yLjEgMS00LjIgNS4yLTUuMiA3LjN6bS0xMzMuNi0zLjFjMTYuNyAxMS41IDM0LjUgMjAuOSA1My4yIDI2LjFjMjQgNS4yIDQxLjgtNi4zIDQ0LjktMzAuM2MxLTguNCA1LjItMTQuNiAxMi41LTE3LjdjNy4zLTQuMiA4LjQtNy4zIDIuMS0xMy42bC05LjQtOC40IDEzLjYtNC4yYzYuMy0yLjEgNy4zLTUuMiA1LjItMTEuNWMtMS40LTMtMi40LTYuMi0zLjEtOS40Yy0zLjEtMTQuNi0yLjEtMTUuNyAxMS41LTE4LjhjOC40LTMuMSAxNS43LTYuMyAyMS45LTEyLjVjMy4xLTIuMSAzLjEtNC4yIDEtOC40bC0xNi43LTMwLjNjLTEtMS45LTIuMS0zLjgtMy4xLTUuN2MtNi40LTExLjctMTMtMjMuNi0xNS43LTM3LjFjLTIuMS05LjQtMS0xNy43IDguNC0yNGM1LjItNC4yIDguNC05LjQgOC40LTE2LjdjLS40LTEwLjEtMS41LTIwLjMtMy4xLTMwLjNjLTYuMy0zNy42LTIzLTY4LjktNTEuMi05NWMtNS4yLTQuMi05LjQtNi4zLTE2LjctNC4yTDIwMy45IDkxLjVjMiAxLjIgNCAyLjQgNiAzLjZsMCAwYzYuMyAzLjcgMTIuMiA3LjMgMTcgMTIuMWMzMC4zIDI2LjEgNDEuOCA2MS42IDQ1LjkgMTAwLjJjMSA4LjQgMCAxNi43LTcuMyAyMS45Yy04LjQgNS4yLTEwLjQgMTIuNS03LjMgMjAuOWM0LjkgMTMuMiAxMC40IDI2IDE2LjcgMzguNkwyOTEuNiAzMThjLTYuMyA4LjQtMTMuNiAxMS41LTIxLjkgMTQuNmMtMTIuNSAzLjEtMTQuNiA3LjMtMTAuNCAyMC45Yy42IDEuNSAxLjQgMi44IDIuMSA0LjJjMi4xIDUuMiAxIDguNC00LjIgMTAuNGwtMTIuNSAzLjEgNS4yIDQuMiA0LjIgNC4yYzQuMiA1LjIgNC4yIDguNC0yLjEgMTAuNGMtNy4zIDQuMi0xMS41IDkuNC0xMS41IDE3LjdjMCAxMi41LTcuMyAxOS44LTE4LjggMjRjLTMuOCAxLTcuNiAxLjUtMTEuNSAxbC0zNC41LTIuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVsZWdyYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4LDhDMTExLjAzMyw4LDAsMTE5LjAzMywwLDI1NlMxMTEuMDMzLDUwNCwyNDgsNTA0LDQ5NiwzOTIuOTY3LDQ5NiwyNTYsMzg0Ljk2Nyw4LDI0OCw4Wk0zNjIuOTUyLDE3Ni42NmMtMy43MzIsMzkuMjE1LTE5Ljg4MSwxMzQuMzc4LTI4LjEsMTc4LjMtMy40NzYsMTguNTg0LTEwLjMyMiwyNC44MTYtMTYuOTQ4LDI1LjQyNS0xNC40LDEuMzI2LTI1LjMzOC05LjUxNy0zOS4yODctMTguNjYxLTIxLjgyNy0xNC4zMDgtMzQuMTU4LTIzLjIxNS01NS4zNDYtMzcuMTc3LTI0LjQ4NS0xNi4xMzUtOC42MTItMjUsNS4zNDItMzkuNSwzLjY1Mi0zLjc5Myw2Ny4xMDctNjEuNTEsNjguMzM1LTY2Ljc0Ni4xNTMtLjY1NS4zLTMuMS0xLjE1NC00LjM4NHMtMy41OS0uODQ5LTUuMTM1LS41cS0zLjI4My43NDYtMTA0LjYwOCw2OS4xNDItMTQuODQ1LDEwLjE5NC0yNi44OTQsOS45MzRjLTguODU1LS4xOTEtMjUuODg4LTUuMDA2LTM4LjU1MS05LjEyMy0xNS41MzEtNS4wNDgtMjcuODc1LTcuNzE3LTI2LjgtMTYuMjkxcS44NC02LjcsMTguNDUtMTMuNywxMDguNDQ2LTQ3LjI0OCwxNDQuNjI4LTYyLjNjNjguODcyLTI4LjY0Nyw4My4xODMtMzMuNjIzLDkyLjUxMS0zMy43ODksMi4wNTItLjAzNCw2LjYzOS40NzQsOS42MSwyLjg4NWExMC40NTIsMTAuNDUyLDAsMCwxLDMuNTMsNi43MTZBNDMuNzY1LDQzLjc2NSwwLDAsMSwzNjIuOTUyLDE3Ni42NlpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVuY2VudFdlaWJvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcyLjMgNDk1LjhjMS40IDE5LjktMjcuNiAyMi4yLTI5LjcgMi45QzMxIDM2OC44IDczLjcgMjU5LjIgMTQ0IDE4NS41Yy0xNS42LTM0IDkuMi03Ny4xIDUwLjYtNzcuMSAzMC4zIDAgNTUuMSAyNC42IDU1LjEgNTUuMSAwIDQ0LTQ5LjUgNzAuOC04Ni45IDQ1LjEtNjUuNyA3MS4zLTEwMS40IDE2OS44LTkwLjUgMjg3LjJ6TTE5MiAuMUM2Ni4xLjEtMTIuMyAxMzQuMyA0My43IDI0Mi40IDUyLjQgMjU5LjggNzkgMjQ2LjkgNzAgMjI5IDIzLjcgMTM2LjQgOTEgMjkuOCAxOTIgMjkuOGM3NS40IDAgMTM2LjkgNjEuNCAxMzYuOSAxMzYuOSAwIDkwLjgtODYuOSAxNTMuOS0xNjcuNyAxMzMuMS0xOS4xLTQuMS0yNS42IDI0LjQtNi42IDI5LjEgMTEwLjcgMjMuMiAyMDQtNjAgMjA0LTE2Mi4zQzM1OC42IDc0LjcgMjg0IC4xIDE5MiAuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGhlUmVkWWV0aSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODguMjMgMjQxLjdsMjAuNyA3LjFjLTkuNi0yMy45LTIzLjktMzctMzEuNy00NC44bDcuMS0xOC4yYy4yIDAgMTIuMy0yNy44LTIuNS0zMC43LS42LTExLjMtNi42LTI3LTE4LjQtMjctNy42LTEwLjYtMTcuNy0xMi4zLTMwLjctNS45YTEyMi4yIDEyMi4yIDAgMCAwLTI1LjMgMTYuNWMtNS4zLTYuNC0zIC40LTMtMjkuOC0zNy4xLTI0LjMtNDUuNC0xMS43LTc0LjggM2wuNS41YTIzOS4zNiAyMzkuMzYgMCAwIDAtNjguNC0xMy4zYy01LjUtOC43LTE4LjYtMTkuMS0yNS4xLTI1LjFsMjQuOCA3LjFjLTUuNS01LjUtMjYuOC0xMi45LTM0LjItMTUuMiAxOC4yLTQuMSAyOS44LTIwLjggNDIuNS0zMy0zNC45LTEwLjEtNjcuOS01LjktOTcuOSAxMS44bDEyLTQ0LjJMMTgyIDBjLTMxLjYgMjQuMi0zMyA0MS45LTMzLjcgNDUuNS0uOS0yLjQtNi4zLTE5LjYtMTUuMi0yN2EzNS4xMiAzNS4xMiAwIDAgMC0uNSAyNS4zYzMgOC40IDUuOSAxNC44IDguNCAxOC45LTE2LTMuMy0yOC4zLTQuOS00OS4yIDBoLTMuN2wzMyAxNC4zYTE5NC4yNiAxOTQuMjYgMCAwIDAtNDYuNyA2Ny40bC0xLjcgOC40IDEuNyAxLjcgNy42LTQuN2MtMy4zIDExLjYtNS4zIDE5LjQtNi42IDI1LjhhMjAwLjE4IDIwMC4xOCAwIDAgMC0yNy44IDQwLjNjLTE1IDEtMzEuOCAxMC44LTQwLjMgMTQuM2wzIDMuNCAyOC44IDFjLS41IDEtLjcgMi4yLTEuMiAzLjItNy4zIDYuNC0zOS44IDM3LjctMzMgODAuN2wyMC4yLTIyLjRjLjUgMS43LjcgMy40IDEuMiA1LjIgMCAyNS41LjQgODkuNiA2NC45IDE1MC41IDQzLjYgNDAgOTYgNjAuMiAxNTcuNSA2MC4yIDEyMS43IDAgMjIzLTg3LjMgMjIzLTIxMS41IDYuOC05LjctMS4yIDMgMTYuNy0yNS4xbDEzIDE0LjMgMi41LS41QTE4MS44NCAxODEuODQgMCAwIDAgNDk1IDI1NWE0NC43NCA0NC43NCAwIDAgMC02LjgtMTMuM3pNMzk4IDExMS4ybC0uNSAyMS45YzUuNSAxOC4xIDE2LjkgMTcuMiAyMi40IDE3LjJsLTMuNC00LjcgMjIuNC01LjRhMjQyLjQ0IDI0Mi40NCAwIDAgMS0yNyAwYzEyLjgtMi4xIDMzLjMtMjkgNDMtMTEuMyAzLjQgNy42IDYuNCAxNy4yIDkuMyAyNy44bDEuNy01LjlhNTYuMzggNTYuMzggMCAwIDEtMS43LTE1LjJjNS40LjUgOC44IDMuNCA5LjMgMTAuMS41IDYuNCAxLjcgMTQuOCAzLjQgMjUuM2w0LjctMTEuM2M0LjYgMCA0LjUtMy42LTIuNSAyMC43LTIwLjktOC43LTM1LjEtOC40LTQ2LjUtOC40bDE4LjItMTZjLTI1LjMgOC4yLTMzIDEwLjgtNTQuOCAyMC45LTEuMS01LjQtNS0xMy41LTE2LTE5LjktMy4yIDMuOC0yLjguOS0uNyAxNC44aC0yLjVhNjIuMzIgNjIuMzIgMCAwIDAtOC40LTIzLjFsNC4yLTMuNGM4LjQtNy4xIDExLjgtMTQuMyAxMC42LTIxLjktLjUtNi40LTUuNC0xMy41LTEzLjUtMjAuNyA1LjYtMy40IDE1LjItLjQgMjguMyA4LjV6bS0zOS42LTEwLjFjMi43IDEuOSAxMS40IDUuNCAxOC45IDE3LjIgNC4yIDguNCA0IDkuOCAzLjQgMTEuMS0uNSAyLjQtLjUgNC4zLTMgNy4xLTEuNyAyLjUtNS40IDQuNy0xMS44IDcuNi03LjYtMTMtMTYuNS0yMy42LTI3LjgtMzEuMnpNOTEgMTQzLjFsMS4yLTEuN2MxLjItMi45IDQuMi03LjYgOS4zLTE1LjJsMi41LTMuNC0xMyAxMi4zIDUuNC00LjctMTAuMSA5LjMtNC4yIDEuMmMxMi4zLTI0LjEgMjMuMS00MS4zIDMyLjUtNTAuMiA5LjMtOS4zIDE2LTE2IDIwLjItMTkuNGwtNi40IDEuMmMtMTEuMy00LjItMTkuNC03LjEtMjQuOC04LjQgMi41LS41IDMuNy0uNSAzLjItLjUgMTAuMyAwIDE3LjUuNSAyMC45IDEuMmE1Mi4zNSA1Mi4zNSAwIDAgMCAxNiAyLjVsLjUtMS43LTguNC0zNS44IDEzLjUgMjlhNDIuODkgNDIuODkgMCAwIDAgNS45LTE0LjNjMS43LTYuNCA1LjQtMTMgMTAuMS0xOS40czcuNi0xMC42IDkuMy0xMS4zYTIzNC42OCAyMzQuNjggMCAwIDAtNi40IDI1LjNsLTEuNyA3LjEtLjUgNC43IDIuNSAyLjVDMTkwLjQgMzkuOSAyMTQgMzQgMjM5LjggMzQuNWwyMS4xLjVjLTExLjggMTMuNS0yNy44IDIxLjktNDguNSAyNC44YTIwMS4yNiAyMDEuMjYgMCAwIDEtMjMuNCAyLjlsLS4yLS41LTIuNS0xLjJhMjAuNzUgMjAuNzUgMCAwIDAtMTQgMmMtMi41LS4yLTQuOS0uNS03LjEtLjdsLTIuNSAxLjcuNSAxLjJjMiAuMiAzLjkuNSA2LjIuN2wtMiAzLjQgMy40LS41LTEwLjYgMTEuM2MtNC4yIDMtNS40IDYuNC00LjIgOS4zbDUuNC0zLjRoMS4yYTM5LjQgMzkuNCAwIDAgMSAyNS4zLTE1LjJ2LTNjNi40LjUgMTMgMSAxOS40IDEuMiA2LjQgMCA4LjQuNSA1LjQgMS4yYTE4OS42IDE4OS42IDAgMCAxIDIwLjcgMTMuNWMxMy41IDEwLjEgMjMuNiAyMS45IDMwIDM1LjQgOC44IDE4LjIgMTMuNSAzNy4xIDEzLjUgNTYuNmExNDEuMTMgMTQxLjEzIDAgMCAxLTMgMjguMyAyMDkuOTEgMjA5LjkxIDAgMCAxLTE2IDQ2bDIuNS41YzE4LjItMTkuNyA0MS45LTE2IDQ5LjItMTZsLTYuNCA1LjkgMjIuNCAxNy43LTEuNyAzMC43Yy01LjQtMTIuMy0xNi41LTIxLjEtMzMtMjcuOCAxNi41IDE0LjggMjMuNiAyMS4xIDIxLjkgMjAuMi00LjgtMi44LTMuNS0xLjktMTAuOC0zLjcgNC4xIDQuMSAxNy41IDE4LjggMTguMiAyMC43bC4yLjItLjIuMmMwIDEuOCAxLjYtMS4yLTE0IDIyLjktNzUuMi0xNS4zLTEwNi4yNy00Mi43LTE0MS4yLTYzLjJsMTEuOCAxLjJjLTExLjgtMTguNS0xNS42LTE3LjctMzguNC0yNi4xTDE0OSAyMjVjLTguOC0zLTE4LjItMy0yOC4zLjVsNy42LTEwLjYtMS4yLTEuN2MtMTQuOSA0LjMtMTkuOCA5LjItMjIuNiAxMS4zLTEuMS01LjUtMi44LTEyLjQtMTIuMy0yOC44bC0xLjIgMjctMTMuMi01YzEuNS0yNS4yIDUuNC01MC41IDEzLjItNzQuNnptMjc2LjUgMzMwYy00OS45IDI1LTU2LjEgMjIuNC01OSAyMy45LTI5LjgtMTEuOC01MC45LTMxLjctNjMuNS01OC44bDMwIDE2LjVjLTkuOC05LjMtMTguMy0xNi41LTM4LjQtNDQuM2wxMS44IDIzLjEtMTcuNy03LjZjMTQuMiAyMS4xIDIzLjUgNTEuNyA2Ni42IDczLjUtMTIwLjggMjQuMi0xOTktNzIuMS0yMDAuOS03NC4zYTI2Mi41NyAyNjIuNTcgMCAwIDAgMzUuNCAyNC44YzMuNCAxLjcgNy4xIDIuNSAxMC4xIDEuMmwtMTYtMjAuN2M5LjIgNC4yIDkuNSA0LjUgNjkuMSAyOS00Mi41LTIwLjctNzMuOC00MC44LTkzLjItNjAuMi0uNSA2LjQtMS4yIDEwLjEtMS4yIDEwLjFhODAuMjUgODAuMjUgMCAwIDEgMjAuNyAyNi42Yy0zOS0xOC45LTU3LjYtNDcuNi03MS4zLTgyLjYgNDkuOSA1NS4xIDExOC45IDM3LjUgMTIwLjUgMzcuMSAzNC44IDE2LjQgNjkuOSAyMy42IDExMy45IDEwLjYgMy4zIDAgMjAuMyAxNyAyNS4zIDM5LjFsNC4yLTMtMi41LTIzLjZjOSA5IDI0LjkgMjIuNiAzNC40IDEzLTE1LjYtNS4zLTIzLjUtOS41LTI5LjUtMzEuNyA0LjYgNC4yIDcuNiA5IDI3LjggMTVsMS4yLTEuMi0xMC41LTE0LjJjMTEuNy00LjgtMy41IDEgMzItMTAuOCA0LjMgMzQuMyA5IDQ5LjIuNyA4OS41em0xMTUuMy0yMTQuNGwtMi41LjUgMyA5LjNjLTMuNSA1LjktMjMuNyA0NC4zLTcxLjYgNzkuNy0zOS41IDI5LjgtNzYuNiAzOS4xLTgwLjkgNDAuM2wtNy42LTcuMS0xLjIgMyAxNC4zIDE2LTcuMS00LjcgMy40IDQuMmgtMS4ybC0yMS45LTEzLjUgOS4zIDI2LjYtMTktMjcuOS0xLjIgMi41IDcuNiAyOWMtNi4xLTguMi0yMS0zMi42LTU2LjgtMzkuNmwzMi41IDIxLjJhMjE0LjgyIDIxNC44MiAwIDAgMS05My4yLTYuNGMtNC4yLTEuMi04LjktMi41LTEzLjUtNC4ybDEuMi0zLTQ0LjgtMjIuNCAyNi4xIDIyLjRjLTU3LjcgOS4xLTExMy0yNS40LTEyNi40LTgzLjRsLTIuNS0xNi40LTIyLjI3IDIyLjNjMTkuNS01Ny41IDI1LjYtNTcuOSA1MS40LTcwLjEtOS4xLTUuMy0xLjYtMy4zLTM4LjQtOS4zIDE1LjgtNS44IDMzLTE1LjQgNzMgNS4yYTE4LjUgMTguNSAwIDAgMSAzLjctMS43Yy42LTMuMi40LS44IDEtMTEuOCAzLjkgMTAgMy42IDguNyAzIDkuM2wxLjcuNWMxMi43LTYuNSA4LjktNC41IDE3LTguOWwtNS40IDEzLjUgMjIuMy01LjgtOC40IDguNCAyLjUgMi41YzQuNS0xLjggMzAuMyAzLjQgNDAuOCAxNmwtMjMuNi0yLjVjMzkuNCAyMyA1MS41IDU0IDU1LjggNjkuNmwxLjctMS4yYy0yLjgtMjIuMy0xMi40LTMzLjktMTYtNDAuMSA0LjIgNSAzOS4yIDM0LjYgMTEwLjQgNDYtMTEuMy0uNS0yMy4xIDUuNC0zNC45IDE4LjlsNDYuNy0yMC4yLTkuMyAyMS45YzcuNi0xMC4xIDE0LjgtMjMuNiAyMS4yLTM5LjZ2LS41bDEuMi0zLTEuMiAxNmMxMy41LTQxLjggMjUuMy03OC41IDM1LjQtMTA5LjdsMTMuNS0yNy44di0ybC01LjQtNC4yaDEwLjFsNS45IDQuMiAyLjUtMS4yLTMuNC0xNiAxMi4zIDE4LjkgNDEuOC0yMC4yLTE0LjggMTMgLjUgMi45IDE3LjctLjVhMTg0IDE4NCAwIDAgMSAzMyA0LjJsLTIzLjYgMi41LTEuMiAzIDI2LjYgMjMuMWEyNTQuMjEgMjU0LjIxIDAgMCAxIDI3IDMyYy0xMS4yLTMuMy0xMC4zLTMuNC0yMS4yLTMuNGwxMi4zIDMyLjV6bS02LjEtNzEuM2wtMy45IDEzLTE0LjMtMTEuOHptLTI1NC44IDcuMWMxLjcgMTAuNiA0LjcgMTcuNyA4LjggMjEuOS05LjMgNi42LTI3LjUgMTMuOS00Ni41IDE2bC41IDEuMmE1MC4yMiA1MC4yMiAwIDAgMCAyNC44LTIuNWwtNy4xIDEzYzQuMi0xLjcgMTAuMS03LjEgMTcuNy0xNC44IDExLjktNS41IDEyLjctNS4xIDIwLjItMTYtMTIuNy02LjQtMTUuNy0xMy43LTE4LjQtMTguOHptMy43LTEwMi4zYy02LjQtMy40LTEwLjYgMy0xMi4zIDE4LjlzMi41IDI5LjUgMTEuOCAzOS42IDE4LjIgMTAuNiAyNi4xIDMgMy40LTIzLjYtMTEuMy00Ny43YTM5LjU3IDM5LjU3IDAgMCAwLTE0LjI3LTEzLjh6bS00LjcgNDYuM2M1LjQgMi4yIDEwLjUgMS45IDEyLjMtMTAuNnYtNC43bC0xLjIuNWMtNC4zLTMuMS0yLjUtNC41LTEuNy02LjJsLjUtLjVjLS45LTEuMi01LTguMS0xMi41IDQuNy0uNS0xMy41LjUtMjEuOSAzLTI0LjggMS4yLTIuNSA0LjctMS4yIDExLjMgNC4yIDYuNCA1LjQgMTEuMyAxNiAxNS4yIDMyLjUgNi41IDI4LTE5LjggMjYuMi0yNi45IDQuOXptLTQ1LTUuNWMxLjYuMyA5LjMtMS4xIDkuMy0xNC44aC0uNWMtNS40LTEuMS0yLjItNS41LS43LTUuOS0xLjctMy0zLjQtNC4yLTUuNC00LjctOC4xIDAtMTEuNiAxMi43LTguMSAyMS4yYTcuNTEgNy41MSAwIDAgMCA1LjQzIDQuMnpNMjE2IDgyLjlsLTIuNS41LjUgM2E0OC45NCA0OC45NCAwIDAgMSAyNi4xIDUuOWMtMi41LTUuNS0xMC0xNC4zLTI4LjMtMTQuM2wuNSAyLjV6bS03MS44IDQ5LjRjMjEuNyAxNi44IDE2LjUgMjEuNCA0Ni41IDIzLjZsLTIuOS00LjdhNDIuNjcgNDIuNjcgMCAwIDAgMTQuOC0yOC4zYzEuNy0xNi0xLjItMjkuNS04LjgtNDEuM2wxMy03LjZhMi4yNiAyLjI2IDAgMCAwLS41LTEuNyAxNC4yMSAxNC4yMSAwIDAgMC0xMy41IDEuN2MtMTIuNyA2LjctMjggMjAuOS0yOSAyMi40LTEuNyAxLjctMy40IDUuOS01LjQgMTMuNWE5OS42MSA5OS42MSAwIDAgMC0yLjkgMjMuNmMtNC43LTgtMTAuNS02LjQtMTkuOS01LjlsNy4xIDcuNmMtMTYuNSAwLTIzLjMgMTUuNC0yMy42IDE2IDYuOCAwIDQuNi03LjYgMzAtMTIuMy00LjMtNi4zLTMuMy01LTQuOS02LjZ6bTE4LjctMTguN2MxLjItNy42IDMuNC0xMyA2LjQtMTcuMiA1LjQtNi40IDEwLjYtMTAuMSAxNi0xMS44IDQuMi0xLjcgNy4xIDEuMiAxMC4xIDkuM2E3Mi4xNCA3Mi4xNCAwIDAgMSAzIDI1LjNjLS41IDkuMy0zLjQgMTcuMi04LjQgMjMuMS0yLjkgMy40LTUuNCA1LjktNi40IDcuNmEzOS4yMSAzOS4yMSAwIDAgMS0xMS4zLS41bC03LjEtMy40LTUuNC02LjRjLjgtMTAgMS4zLTE4LjggMy4xLTI2em00MiA1Ni4xYy0zNC44IDE0LjQtMzQuNyAxNC0zNi4xIDE0LjMtMjAuOCA0LjctMTktMjQuNC0xOC45LTI0LjhsNS45LTEuMi0uNS0yLjVjLTIwLjItMi42LTMxIDQuMi0zMi41IDQuOS41LjUgMyAzLjQgNS45IDkuMyA0LjItNi40IDguOC0xMC4xIDE1LjItMTAuNmE4My40NyA4My40NyAwIDAgMCAxLjcgMzMuN2MuMS41IDIuNiAxNy40IDI3LjUgMjQuMSAxMS4zIDMgMjcgMS4yIDQ4LjktNS40bC05LjIuNWMtNC4yLTE0LjgtNi40LTI0LjgtNS45LTI5LjUgMTEuMy04LjggMjEuOS0xMS4zIDMwLjctNy42aDIuNWwtMTEuOC03LjYtNy4xLjVjLTUuOSAxLjItMTIuMyA0LjItMTkuNCA4LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRoZW1lY28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAyLjkgOC40M2M5LjktNS43MyAyNi01LjgyIDM1Ljk1LS4yMUw0MzAgMTE1Ljg1YzEwIDUuNiAxOCAxOS40NCAxOCAzMC44NlYzNjRjMCAxMS40NC04LjA2IDI1LjI5LTE4IDMxTDIzOC44MSA1MDMuNzRjLTkuOTMgNS42Ni0yNiA1LjU3LTM1Ljg1LS4yMUwxNy44NiAzOTUuMTJDOCAzODkuMzQgMCAzNzUuMzggMCAzNjRWMTQ2LjcxYzAtMTEuNDQgOC0yNS4zNiAxNy45MS0zMS4wOHptLTc3LjQgMTk5LjgzYy0xNS45NCAwLTMxLjg5LjE0LTQ3LjgzLjE0djEwMS40NUg5Ni44VjI4MGgyOC43YzQ5LjcxIDAgNDkuNTYtNzEuNzQgMC03MS43NHptMTQwLjE0IDEwMC4yOWwtMzAuNzMtMzQuNjRjMzctNy41MSAzNC44LTY1LjIzLTEwLjg3LTY1LjUxLTE2LjA5IDAtMzIuMTctLjE0LTQ4LjI2LS4xNHYxMDEuNTloMTkuMTN2LTMzLjkxaDE4LjQxbDI5LjU2IDMzLjkxaDIyLjc2em0tNDEuNTktODIuMzJjMjMuMzQgMCAyMy4yNiAzMi40NiAwIDMyLjQ2aC0yOS4xM3YtMzIuNDZ6bS05NS41Ni0xLjZjMjEuMTggMCAyMS4xMSAzOC44NSAwIDM4Ljg1SDk2LjE4di0zOC44NHptMTkyLjY1LTE4LjI1Yy02OC40NiAwLTcxIDEwNS44IDAgMTA1LjggNjkuNDgtLjAxIDY5LjQxLTEwNS44IDAtMTA1Ljh6bTAgMTcuMzljNDQuMTIgMCA0NC44IDcwLjg2IDAgNzAuODZzLTQ0LjQzLTcwLjg2IDAtNzAuODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRoZW1laXNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDggODguMjg2YzAtMTAgNi4yODYtMjEuNzE0IDE3LjcxNS0yMS43MTQgMTEuMTQyIDAgMTcuNzE0IDExLjcxNCAxNy43MTQgMjEuNzE0IDAgMTAuMjg1LTYuNTcyIDIxLjcxNC0xNy43MTQgMjEuNzE0QzIxNC4yODYgMTEwIDIwOCA5OC41NzEgMjA4IDg4LjI4NnptMzA0IDE2MGMwIDM2LjAwMS0xMS40MjkgMTAyLjI4Ni0zNi4yODYgMTI5LjcxNC0yMi44NTggMjQuODU4LTg3LjQyOCA2MS4xNDMtMTIwLjg1NyA3MC41NzJsLTEuMTQzLjI4NnYzMi41NzFjMCAxNi4yODYtMTIuNTcyIDMwLjU3MS0yOS4xNDMgMzAuNTcxLTEwIDAtMTkuNDI5LTUuNzE0LTI0LjU3Mi0xNC4yODYtNS40MjcgOC41NzItMTQuODU2IDE0LjI4Ni0yNC44NTYgMTQuMjg2LTEwIDAtMTkuNDI5LTUuNzE0LTI0Ljg1OC0xNC4yODYtNS4xNDIgOC41NzItMTQuNTcxIDE0LjI4Ni0yNC41NyAxNC4yODYtMTAuMjg2IDAtMTkuNDI5LTUuNzE0LTI0Ljg1OC0xNC4yODYtNS4xNDMgOC41NzItMTQuNTcxIDE0LjI4Ni0yNC41NzEgMTQuMjg2LTE4Ljg1NyAwLTI5LjQyOS0xNS43MTQtMjkuNDI5LTMyLjg1Ny0xNi4yODYgMTIuMjg1LTM1LjcxNSAxOS40MjgtNTYuNTcxIDE5LjQyOC0yMiAwLTQzLjQyOS04LjI4NS02MC4yODYtMjIuODU3IDEwLjI4NS0uMjg2IDIwLjU3MS0yLjI4NiAzMC4yODUtNS43MTQtMjAuODU3LTUuNzE0LTM5LjQyOC0xOC44NTctNTItMzYuMjg2IDIxLjM3IDQuNjQ1IDQ2LjIwOSAxLjY3MyA2Ny4xNDMtMTEuMTQzLTIyLTIyLTU2LjU3MS01OC44NTctNjguNTcyLTg3LjQyOEMxLjE0MyAzMjEuNzE0IDAgMzAzLjcxNCAwIDI4OS40MjljMC00OS43MTQgMjAuMjg2LTE2MCA4Ni4yODYtMTYwIDEwLjU3MSAwIDE4Ljg1NyA0Ljg1OCAyMy4xNDMgMTQuODU3YTE1OC43OTIgMTU4Ljc5MiAwIDAgMSAxMi0xNS40MjhjMi0yLjU3MiA1LjcxNC01LjQyOSA3LjE0My04LjI4NiA3Ljk5OS0xMi41NzEgMTEuNzE0LTIxLjE0MiAyMS43MTQtMzRDMTgyLjU3MSA0NS40MjggMjMyIDE3LjE0MyAyODUuMTQzIDE3LjE0M2M2IDAgMTIgLjI4NSAxNy43MTQgMS4xNDNDMzEzLjcxNCA2LjU3MSAzMjguODU3IDAgMzQ0LjU3MiAwYzE0LjU3MSAwIDI5LjcxNCA2IDQwIDE2LjI4Ni44NTcuODU4IDEuNDI4IDIuMjg2IDEuNDI4IDMuNDI4IDAgMy43MTQtMTAuMjg1IDEzLjQyOS0xMi44NTcgMTYuMjg2IDQuMjg2IDEuNDI5IDE1LjcxNCA2Ljg1OCAxNS43MTQgMTIgMCAyLjg1Ny0yLjg1NyA1LjE0My00LjU3MSA3LjE0MyAzMS40MjkgMjcuNzE0IDQ5LjQyOSA2Ny4xNDMgNTYuMjg2IDEwOCA0LjI4Ni01LjE0MyAxMC4yODUtOC41NzIgMTcuMTQzLTguNTcyIDEwLjU3MSAwIDIwLjg1NyA3LjE0NCAyOC41NzEgMTQuMDAxQzUwNy4xNDMgMTg3LjE0MyA1MTIgMjIxLjcxNCA1MTIgMjQ4LjI4NnpNMTg4IDg5LjQyOGMwIDE4LjI4NiAxMi41NzEgMzcuMTQzIDMyLjI4NiAzNy4xNDMgMTkuNzE0IDAgMzIuMjg1LTE4Ljg1NyAzMi4yODUtMzcuMTQzIDAtMTgtMTIuNTcxLTM2Ljg1Ny0zMi4yODUtMzYuODU3LTE5LjcxNSAwLTMyLjI4NiAxOC44NTgtMzIuMjg2IDM2Ljg1N3pNMjM3LjcxNCAxOTRjMC0xOS43MTQgMy43MTQtMzkuMTQzIDguNTcxLTU4LjI4Ni01Mi4wMzkgNzkuNTM0LTEzLjUzMSAxODQuNTcxIDY4Ljg1OCAxODQuNTcxIDIxLjQyOCAwIDQyLjU3MS03LjcxNCA2MC0yMCAyLTcuNDI5IDMuNzE0LTE0Ljg1NyAzLjcxNC0yMi41NzIgMC0xNC4yODYtNi4yODYtMjEuNDI4LTIwLjU3Mi0yMS40MjgtNC41NzEgMC05LjE0My44NTctMTMuNDI5IDEuNzE0LTYzLjM0MyAxMi42NjgtMTA3LjE0MiAzLjY2OS0xMDcuMTQyLTYzLjk5OXptLTQxLjE0MiAyNTQuODU4YzAtMTEuMTQzLTguODU4LTIwLjg1Ny0yMC4yODYtMjAuODU3LTExLjQyOSAwLTIwIDkuNzE1LTIwIDIwLjg1N3YzMi41NzFjMCAxMS4xNDMgOC41NzEgMjEuMTQyIDIwIDIxLjE0MiAxMS40MjggMCAyMC4yODYtOS43MTUgMjAuMjg2LTIxLjE0MnYtMzIuNTcxem00OS4xNDMgMGMwLTExLjE0My04LjU3Mi0yMC44NTctMjAtMjAuODU3LTExLjQyOSAwLTIwLjI4NiA5LjcxNS0yMC4yODYgMjAuODU3djMyLjU3MWMwIDExLjE0MyA4Ljg1NyAyMS4xNDIgMjAuMjg2IDIxLjE0MiAxMS40MjggMCAyMC0xMCAyMC0yMS4xNDJ2LTMyLjU3MXptNDkuNzEzIDBjMC0xMS4xNDMtOC44NTctMjAuODU3LTIwLjI4NS0yMC44NTctMTEuNDI5IDAtMjAuMjg2IDkuNzE1LTIwLjI4NiAyMC44NTd2MzIuNTcxYzAgMTEuMTQzIDguODU3IDIxLjE0MiAyMC4yODYgMjEuMTQyIDExLjQyOCAwIDIwLjI4NS05LjcxNSAyMC4yODUtMjEuMTQydi0zMi41NzF6bTQ5LjcxNSAwYzAtMTEuMTQzLTguODU3LTIwLjg1Ny0yMC4yODYtMjAuODU3LTExLjQyOCAwLTIwLjI4NiA5LjcxNS0yMC4yODYgMjAuODU3djMyLjU3MWMwIDExLjE0MyA4Ljg1OCAyMS4xNDIgMjAuMjg2IDIxLjE0MiAxMS40MjkgMCAyMC4yODYtMTAgMjAuMjg2LTIxLjE0MnYtMzIuNTcxek00MjEuNzE0IDI4NmMtMzAuODU3IDU5LjE0Mi05MC4yODUgMTAyLjU3Mi0xNTguNTcxIDEwMi41NzItOTYuNTcxIDAtMTYwLjU3MS04NC41NzItMTYwLjU3MS0xNzYuNTcyIDAtMTYuODU3IDItMzMuNDI5IDYtNDkuNzE0LTIwIDMzLjcxNS0yOS43MTQgNzIuNTcyLTI5LjcxNCAxMTEuNDI5IDAgNjAuMjg2IDI0Ljg1NyAxMjEuNzE1IDcxLjQyOSAxNjAuODU3IDUuMTQzLTkuNzE0IDE0Ljg1Ny0xNi4yODYgMjYtMTYuMjg2IDEwIDAgMTkuNDI4IDUuNzE0IDI0LjU3MSAxNC4yODYgNS40MjktOC41NzEgMTQuNTcxLTE0LjI4NiAyNC44NTgtMTQuMjg2IDEwIDAgMTkuNDI4IDUuNzE0IDI0LjU3MSAxNC4yODYgNS40MjktOC41NzEgMTQuODU3LTE0LjI4NiAyNC44NTgtMTQuMjg2IDEwIDAgMTkuNDI4IDUuNzE0IDI0Ljg1NyAxNC4yODYgNS4xNDMtOC41NzEgMTQuNTcxLTE0LjI4NiAyNC41NzItMTQuMjg2IDEwLjg1NyAwIDIwLjg1NyA2LjU3MiAyNS43MTQgMTYgNDMuNDI3LTM2LjI4NiA2OC41NjktOTIgNzEuNDI2LTE0OC4yODZ6bTEwLjU3Mi05OS43MTRjMC01My43MTQtMzQuNTcxLTEwNS43MTQtOTIuNTcyLTEwNS43MTQtMzAuMjg1IDAtNTguNTcxIDE1LjE0My03OC44NTcgMzYuODU3QzI0MC44NjIgMTgzLjgxMiAyMzMuNDEgMjU0IDMwMi4yODYgMjU0YzI4LjgwNSAwIDk3LjM1Ny0yOC41MzggODQuMjg2IDM2Ljg1NyAyOC44NTctMjYgNDUuNzE0LTY1LjcxNCA0NS43MTQtMTA0LjU3MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGhpbmtQZWFrcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjUuNCA0MDkuNGw4Ny4xLTE1MC4yLTMyLS4zLTU1LjEgOTVMMjU5LjIgMCAyMyA0MDcuNGwzMiAuM0wyNTkuMiA1NS42em0tMzU1LjMtNDQuMWgzMi4xbDExNy40LTIwMi41TDQ2MyA1MTEuOWwzMi41LjEtMjM1LjgtNDA0LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRocmVhZHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzMxLjUgMjM1LjdjMi4yIC45IDQuMiAxLjkgNi4zIDIuOGMyOS4yIDE0LjEgNTAuNiAzNS4yIDYxLjggNjEuNGMxNS43IDM2LjUgMTcuMiA5NS44LTMwLjMgMTQzLjJjLTM2LjIgMzYuMi04MC4zIDUyLjUtMTQyLjYgNTNoLS4zYy03MC4yLS41LTEyNC4xLTI0LjEtMTYwLjQtNzAuMmMtMzIuMy00MS00OC45LTk4LjEtNDkuNS0xNjkuNlYyNTZ2LS4yQzE3IDE4NC4zIDMzLjYgMTI3LjIgNjUuOSA4Ni4yQzEwMi4yIDQwLjEgMTU2LjIgMTYuNSAyMjYuNCAxNmguM2M3MC4zIC41IDEyNC45IDI0IDE2Mi4zIDY5LjljMTguNCAyMi43IDMyIDUwIDQwLjYgODEuN2wtNDAuNCAxMC44Yy03LjEtMjUuOC0xNy44LTQ3LjgtMzIuMi02NS40Yy0yOS4yLTM1LjgtNzMtNTQuMi0xMzAuNS01NC42Yy01NyAuNS0xMDAuMSAxOC44LTEyOC4yIDU0LjRDNzIuMSAxNDYuMSA1OC41IDE5NC4zIDU4IDI1NmMuNSA2MS43IDE0LjEgMTA5LjkgNDAuMyAxNDMuM2MyOCAzNS42IDcxLjIgNTMuOSAxMjguMiA1NC40YzUxLjQtLjQgODUuNC0xMi42IDExMy43LTQwLjljMzIuMy0zMi4yIDMxLjctNzEuOCAyMS40LTk1LjljLTYuMS0xNC4yLTE3LjEtMjYtMzEuOS0zNC45Yy0zLjcgMjYuOS0xMS44IDQ4LjMtMjQuNyA2NC44Yy0xNy4xIDIxLjgtNDEuNCAzMy42LTcyLjcgMzUuM2MtMjMuNiAxLjMtNDYuMy00LjQtNjMuOS0xNmMtMjAuOC0xMy44LTMzLTM0LjgtMzQuMy01OS4zYy0yLjUtNDguMyAzNS43LTgzIDk1LjItODYuNGMyMS4xLTEuMiA0MC45LS4zIDU5LjIgMi44Yy0yLjQtMTQuOC03LjMtMjYuNi0xNC42LTM1LjJjLTEwLTExLjctMjUuNi0xNy43LTQ2LjItMTcuOEgyMjdjLTE2LjYgMC0zOSA0LjYtNTMuMyAyNi4zbC0zNC40LTIzLjZjMTkuMi0yOS4xIDUwLjMtNDUuMSA4Ny44LTQ1LjFoLjhjNjIuNiAuNCA5OS45IDM5LjUgMTAzLjcgMTA3LjdsLS4yIC4yem0tMTU2IDY4LjhjMS4zIDI1LjEgMjguNCAzNi44IDU0LjYgMzUuM2MyNS42LTEuNCA1NC42LTExLjQgNTkuNS03My4yYy0xMy4yLTIuOS0yNy44LTQuNC00My40LTQuNGMtNC44IDAtOS42IC4xLTE0LjQgLjRjLTQyLjkgMi40LTU3LjIgMjMuMi01Ni4yIDQxLjhsLS4xIC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaWt0b2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4LDIwOS45MWEyMTAuMDYsMjEwLjA2LDAsMCwxLTEyMi43Ny0zOS4yNVYzNDkuMzhBMTYyLjU1LDE2Mi41NSwwLDEsMSwxODUsMTg4LjMxVjI3OC4yYTc0LjYyLDc0LjYyLDAsMSwwLDUyLjIzLDcxLjE4VjBsODgsMGExMjEuMTgsMTIxLjE4LDAsMCwwLDEuODYsMjIuMTdoMEExMjIuMTgsMTIyLjE4LDAsMCwwLDM4MSwxMDIuMzlhMTIxLjQzLDEyMS40MywwLDAsMCw2NywyMC4xNFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJhZGVGZWRlcmF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4LjhjLTEzNyAwLTI0OCAxMTEtMjQ4IDI0OHMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4LTExMS0yNDgtMjQ4LTI0OHptMCA0ODIuOGMtMTI5LjcgMC0yMzQuOC0xMDUuMS0yMzQuOC0yMzQuOFMxMTguMyAyMiAyNDggMjJzMjM0LjggMTA1LjEgMjM0LjggMjM0LjhTMzc3LjcgNDkxLjYgMjQ4IDQ5MS42em0xNTUuMS0zMjguNXYtNDYuOEgyMDkuM1YxOThINTQuMmwzNi43IDQ2aDExNy43djE5Ni44aDQ4LjhWMjQ1aDgzLjN2LTQ3aC04My4zdi0zNC44aDE0NS43em0tNzMuMyA0NS4xdjIzLjloLTgyLjl2MTk3LjRoLTI2LjhWMjMyLjFIOTYuM2wtMjAuMS0yMy45aDE0My45di04MC42aDE3MS44VjE1MmgtMTQ1djU2LjJ6bS0xNjEuMy02OWwtMTIuNC0yMC43IDIuMSAyMy44LTIzLjUgNS40IDIzLjMgNS40LTIuMSAyNCAxMi4zLTIwLjUgMjIuMiA5LjUtMTUuNy0xOC4xIDE1LjgtMTguMXptLTI5LjYtMTkuN2w5LjMtMTEuNS0xMi43IDUuOS04LTEyLjQgMS43IDEzLjktMTQuMyAzLjggMTMuNyAyLjctLjggMTQuNyA2LjgtMTIuMiAxMy44IDUuM3ptMTY1LjQgMTQ1LjJsLTEzLjEgNS42LTcuMy0xMi4yIDEuMyAxNC4yLTEzLjkgMy4yIDEzLjkgMy4yLTEuMiAxNC4yIDcuMy0xMi4yIDEzLjEgNS41LTkuNC0xMC43em0xMDYuOS03Ny4ybC0yMC45IDkuMS0xMi0xOS42IDIuMiAyMi43LTIyLjMgNS40IDIyLjIgNC45LTEuOCAyMi45IDExLjUtMTkuNiAyMS4yIDguOC0xNS4xLTE3ek0yNDggMjkuOWMtMTI1LjMgMC0yMjYuOSAxMDEuNi0yMjYuOSAyMjYuOVMxMjIuNyA0ODMuNyAyNDggNDgzLjdzMjI2LjktMTAxLjYgMjI2LjktMjI2LjlTMzczLjMgMjkuOSAyNDggMjkuOXpNMzQyLjYgMTk2djUxaC04My4zdjE5NS43aC01Mi43VjI0NS45SDg5LjlsLTQwLTQ5LjloMTU3LjR2LTgxLjZoMTk3Ljh2NTAuN0gyNTkuNFYxOTZ6TTI0OCA0My4yYzYwLjMgMCAxMTQuOCAyNSAxNTMuNiA2NS4ySDIwMi41VjE5MEg0NS4xQzczLjEgMTA0LjggMTUzLjQgNDMuMiAyNDggNDMuMnptMCA0MjcuMWMtMTE3LjkgMC0yMTMuNi05NS42LTIxMy42LTIxMy41IDAtMjEuMiAzLjEtNDEuOCA4LjktNjEuMUw4Ny4xIDI1MmgxMTQuN3YxOTYuOGg2NC42VjI1M2g4My4zdi02Mi43aC04My4ydi0xOS4yaDE0NS42di01MC44YzMwLjggMzcgNDkuMyA4NC42IDQ5LjMgMTM2LjUuMSAxMTcuOS05NS41IDIxMy41LTIxMy40IDIxMy41ek0xNzguOCAyNzVsLTExLTIxLjQgMS43IDI0LjUtMjMuNyAzLjkgMjMuOCA1LjktMy43IDIzLjggMTMtMjAuOSAyMS41IDEwLjgtMTUuOC0xOC44IDE2LjktMTcuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJlbGxvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM5Mi4zIDMySDU2LjFDMjUuMSAzMiAwIDU3LjEgMCA4OGMtLjEgMCAwLTQgMCAzMzYgMCAzMC45IDI1LjEgNTYgNTYgNTZoMzM2LjJjMzAuOC0uMiA1NS43LTI1LjIgNTUuNy01NlY4OGMuMS0zMC44LTI0LjgtNTUuOC01NS42LTU2ek0xOTcgMzcxLjNjLS4yIDE0LjctMTIuMSAyNi42LTI2LjkgMjYuNkg4Ny40Yy0xNC44LjEtMjYuOS0xMS44LTI3LTI2LjZWMTE3LjFjMC0xNC44IDEyLTI2LjkgMjYuOS0yNi45aDgyLjljMTQuOCAwIDI2LjkgMTIgMjYuOSAyNi45djI1NC4yem0xOTMuMS0xMTJjMCAxNC44LTEyIDI2LjktMjYuOSAyNi45aC04MWMtMTQuOCAwLTI2LjktMTItMjYuOS0yNi45VjExNy4yYzAtMTQuOCAxMi0yNi45IDI2LjgtMjYuOWg4MS4xYzE0LjggMCAyNi45IDEyIDI2LjkgMjYuOXYxNDIuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHVtYmxyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwOS44IDQ4MC4zYy0xMy42IDE0LjUtNTAgMzEuNy05Ny40IDMxLjctMTIwLjggMC0xNDctODguOC0xNDctMTQwLjZ2LTE0NEgxNy45Yy01LjUgMC0xMC00LjUtMTAtMTB2LTY4YzAtNy4yIDQuNS0xMy42IDExLjMtMTYgNjItMjEuOCA4MS41LTc2IDg0LjMtMTE3LjEuOC0xMSA2LjUtMTYuMyAxNi4xLTE2LjNoNzAuOWM1LjUgMCAxMCA0LjUgMTAgMTB2MTE1LjJoODNjNS41IDAgMTAgNC40IDEwIDkuOXY4MS43YzAgNS41LTQuNSAxMC0xMCAxMGgtODMuNFYzNjBjMCAzNC4yIDIzLjcgNTMuNiA2OCAzNS44IDQuOC0xLjkgOS0zLjIgMTIuNy0yLjIgMy41LjkgNS44IDMuNCA3LjQgNy45bDIyIDY0LjNjMS44IDUgMy4zIDEwLjYtLjQgMTQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHdpdGNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM5MS4xNywxMDMuNDdIMzUyLjU0djEwOS43aDM4LjYzWk0yODUsMTAzSDI0Ni4zN1YyMTIuNzVIMjg1Wk0xMjAuODMsMCwyNC4zMSw5MS40MlY0MjAuNThIMTQwLjE0VjUxMmw5Ni41My05MS40Mmg3Ny4yNUw0ODcuNjksMjU2VjBaTTQ0OS4wNywyMzcuNzVsLTc3LjIyLDczLjEySDI5NC42MWwtNjcuNiw2NHYtNjRIMTQwLjE0VjM2LjU4SDQ0OS4wN1pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHdpdHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTkuMzcgMTUxLjcxNmMuMzI1IDQuNTQ4LjMyNSA5LjA5Ny4zMjUgMTMuNjQ1IDAgMTM4LjcyLTEwNS41ODMgMjk4LjU1OC0yOTguNTU4IDI5OC41NTgtNTkuNDUyIDAtMTE0LjY4LTE3LjIxOS0xNjEuMTM3LTQ3LjEwNiA4LjQ0Ny45NzQgMTYuNTY4IDEuMjk5IDI1LjM0IDEuMjk5IDQ5LjA1NSAwIDk0LjIxMy0xNi41NjggMTMwLjI3NC00NC44MzItNDYuMTMyLS45NzUtODQuNzkyLTMxLjE4OC05OC4xMTItNzIuNzcyIDYuNDk4Ljk3NCAxMi45OTUgMS42MjQgMTkuODE4IDEuNjI0IDkuNDIxIDAgMTguODQzLTEuMyAyNy42MTQtMy41NzMtNDguMDgxLTkuNzQ3LTg0LjE0My01MS45OC04NC4xNDMtMTAyLjk4NXYtMS4yOTljMTMuOTY5IDcuNzk3IDMwLjIxNCAxMi42NyA0Ny40MzEgMTMuMzE5LTI4LjI2NC0xOC44NDMtNDYuNzgxLTUxLjAwNS00Ni43ODEtODcuMzkxIDAtMTkuNDkyIDUuMTk3LTM3LjM2IDE0LjI5NC01Mi45NTQgNTEuNjU1IDYzLjY3NSAxMjkuMyAxMDUuMjU4IDIxNi4zNjUgMTA5LjgwNy0xLjYyNC03Ljc5Ny0yLjU5OS0xNS45MTgtMi41OTktMjQuMDQgMC01Ny44MjggNDYuNzgyLTEwNC45MzQgMTA0LjkzNC0xMDQuOTM0IDMwLjIxMyAwIDU3LjUwMiAxMi42NyA3Ni42NyAzMy4xMzcgMjMuNzE1LTQuNTQ4IDQ2LjQ1Ni0xMy4zMiA2Ni41OTktMjUuMzQtNy43OTggMjQuMzY2LTI0LjM2NiA0NC44MzMtNDYuMTMyIDU3LjgyNyAyMS4xMTctMi4yNzMgNDEuNTg0LTguMTIyIDYwLjQyNi0xNi4yNDMtMTQuMjkyIDIwLjc5MS0zMi4xNjEgMzkuMzA4LTUyLjYyOCA1NC4yNTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVR5cG8zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3OC43IDc4LjRjMC0yNC43IDUuNC0zMi40IDEzLjktMzkuNC02OS41IDguNS0xNDkuMyAzNC0xNzYuMyA2Ni40LTUuNCA3LjctOS4zIDIwLjgtOS4zIDM3LjFDNyAyNDYgMTEzLjggNDgwIDE5MS4xIDQ4MGMzNi4zIDAgOTcuMy01OS41IDE0Ni43LTEzOS03IDIuMy0xMS42IDIuMy0xOC41IDIuMy01Ny4yIDAtMTQwLjYtMTk4LjUtMTQwLjYtMjY0Ljl6TTMwMS41IDMyYy0zMC4xIDAtNDEuNyA1LjQtNDEuNyAzNi4zIDAgNjYuNCA1My44IDE5OC41IDEwMS43IDE5OC41IDI2LjMgMCA3OC44LTk5LjcgNzguOC0xODIuMyAwLTQwLjktNjctNTIuNS0xMzguOC01Mi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVYmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNC4xIDMySDMzLjlDMTUuMiAzMiAwIDQ3LjIgMCA2NS45VjQ0NmMwIDE4LjggMTUuMiAzNCAzMy45IDM0SDQxNGMxOC43IDAgMzMuOS0xNS4yIDMzLjktMzMuOVY2NS45QzQ0OCA0Ny4yIDQzMi44IDMyIDQxNC4xIDMyek0yMzcuNiAzOTEuMUMxNjMgMzk4LjYgOTYuNCAzNDQuMiA4OC45IDI2OS42aDk0LjRWMjkwYzAgMy43IDMgNi44IDYuOCA2LjhIMjU4YzMuNyAwIDYuOC0zIDYuOC02Ljh2LTY3LjljMC0zLjctMy02LjgtNi44LTYuOGgtNjcuOWMtMy43IDAtNi44IDMtNi44IDYuOHYyMC40SDg4LjljNy02OS40IDY1LjQtMTIyLjIgMTM1LjEtMTIyLjIgNjkuNyAwIDEyOC4xIDUyLjggMTM1LjEgMTIyLjIgNy41IDc0LjUtNDYuOSAxNDEuMS0xMjEuNSAxNDguNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVWJ1bnR1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2OS4yIDc1QTc1LjYgNzUuNiAwIDEgMCAzMTcuOSA3NWE3NS42IDc1LjYgMCAxIDAgMTUxLjIgMHpNMTU0LjIgMjQwLjdBNzUuNiA3NS42IDAgMSAwIDMgMjQwLjdhNzUuNiA3NS42IDAgMSAwIDE1MS4yIDB6TTU3IDM0NkM3NS42IDM5Mi45IDEwOCA0MzMgMTUwIDQ2MS4xczkxLjUgNDIuNiAxNDIgNDEuN2MtMTQuNy0xOC42LTIyLjktNDEuNS0yMy4yLTY1LjJjLTYuOC0uOS0xMy4zLTIuMS0xOS41LTMuNGMtMjYuOC01LjctNTEuOS0xNy4zLTczLjYtMzRzLTM5LjMtMzguMS01MS43LTYyLjVjLTIwLjkgOS45LTQ0LjUgMTIuOC02Ny4xIDguMnptMzk1LjEgODkuOGE3NS42IDc1LjYgMCAxIDAgLTE1MS4yIDAgNzUuNiA3NS42IDAgMSAwIDE1MS4yIDB6TTQ0NCAzNTEuNmMxOC41IDE0LjggMzEuNiAzNS4yIDM3LjIgNTguMmMzMy4zLTQxLjMgNTIuNi05Mi4yIDU0LjgtMTQ1LjJzLTEyLjUtMTA1LjQtNDIuMi0xNDkuNGMtOC42IDIxLjUtMjQgMzkuNi00My44IDUxLjZjMTUuNCAyOC42IDIyLjkgNjAuOCAyMS45IDkzLjJzLTEwLjcgNjQtMjggOTEuNnpNMTAxLjEgMTM1LjRjMTIuNCAyLjcgMjQuMyA3LjUgMzUuMSAxNC4zYzE2LjYtMjQuMiAzOC45LTQ0LjEgNjQuOC01OFMyNTUuOCA3MC40IDI4NS4yIDcwYy4yLTUuOSAuOS0xMS45IDItMTcuN2MzLjYtMTYuNyAxMS4xLTMyLjMgMjEuOC00NS41Yy00Ny43LTMuOC05NS40IDYtMTM3LjYgMjguNVM5NC4zIDkxLjcgNzAuOCAxMzMuNGMyLjctLjIgNS4zLS4zIDgtLjNjNy41IDAgMTUgLjggMjIuNCAyLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVpa2l0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0My45IDEyOHYyNTZMMjE4IDUxMiAwIDM4NFYxNjkuN2w4Ny42IDQ1LjF2MTE3bDEzMy41IDc1LjUgMTM1LjgtNzUuNXYtMTUxbC0xMDEuMS01Ny42IDg3LjYtNTMuMUw0NDMuOSAxMjh6TTMwOC42IDQ5LjFMMjIzLjggMGwtODguNiA1NC44IDg2IDQ3LjMgODcuNC01M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW1icmFjbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTUuMzUgOEMxMTguMzYgNy44MyA3LjE0IDExOC43MiA3IDI1NS42OGMtLjA3IDEzNyAxMTEgMjQ4LjIgMjQ4IDI0OC4yNyAxMzYuODUgMCAyNDcuODItMTEwLjcgMjQ4LTI0Ny42N1MzOTIuMzQgOC4xNyAyNTUuMzUgOHptMTQ1IDI2NnEtMS4xNCA0MC42OC0xNCA2NXQtNDMuNTEgMzVxLTMwLjYxIDEwLjctODUuNDUgMTAuNDdoLTQuNnEtNTQuNzguMjItODUuNDQtMTAuNDd0LTQzLjUyLTM1cS0xMi44NS0yNC4zNi0xNC02NWEyMjQuODEgMjI0LjgxIDAgMCAxIDAtMzAuNzEgNDE4LjM3IDQxOC4zNyAwIDAgMSAzLjYtNDMuODhjMS44OC0xMy4zOSAzLjU3LTIyLjU4IDUuNC0zMiAxLTQuODggMS4yOC02LjQyIDEuODItOC40NWE1LjA5IDUuMDkgMCAwIDEgNC45LTMuODloLjY5bDMyIDVhNS4wNyA1LjA3IDAgMCAxIDQuMTYgNSA1IDUgMCAwIDEgMCAuNzdsLTEuNyA4Ljc4cS0yLjQxIDEzLjI1LTQuODQgMzMuNjhhMzgwLjYyIDM4MC42MiAwIDAgMC0yLjY0IDQyLjE1cS0uMjggNDAuNDMgOC4xMyA1OS44M2E0My44NyA0My44NyAwIDAgMCAzMS4zMSAyNS4xOEEyNDMgMjQzIDAgMCAwIDI1MCAzNDAuNmgxMC4yNWEyNDIuNjQgMjQyLjY0IDAgMCAwIDU3LjI3LTUuMTYgNDMuODYgNDMuODYgMCAwIDAgMzEuMTUtMjUuMjNxOC41My0xOS40MiA4LjEzLTU5Ljc4YTM4OCAzODggMCAwIDAtMi42LTQyLjE1cS0yLjQ4LTIwLjM4LTQuODktMzMuNjhsLTEuNjktOC43OGE1IDUgMCAwIDEgMC0uNzcgNSA1IDAgMCAxIDQuMi01bDMyLTVoLjgyYTUgNSAwIDAgMSA0LjkgMy44OWMuNTUgMi4wNS44MSAzLjU3IDEuODMgOC40NSAxLjgyIDkuNjIgMy41MiAxOC43OCA1LjM5IDMyYTQxNS43MSA0MTUuNzEgMCAwIDEgMy42MSA0My44OCAyMjguMDYgMjI4LjA2IDAgMCAxLS4wNCAzMC43M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW5jaGFydGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3MS43MywyMzIuODEzQTUuMzgxLDUuMzgxLDAsMCwwLDE3Ni43LDIyOS41LDQ4LjA4MSw0OC4wODEsMCwwLDEsMTkxLjYsMjA0LjI0NGMxLjI0My0uODI4LDEuNjU3LTIuNDg0LDEuNjU3LTQuMTQxYTQuMjIsNC4yMiwwLDAsMC0yLjA3MS0zLjMxMkw3NC40MjksMTI4LjQ3MywxNDguOTU4LDg1YTkuOTQxLDkuOTQxLDAsMCwwLDQuOTY4LTguMjgxLDkuMTA4LDkuMTA4LDAsMCwwLTQuOTY4LTguMjgxTDEyNi42LDU1LjZhOS43NDgsOS43NDgsMCwwLDAtOS41MjMsMGwtMTAwLjIsNTcuOTY2YTkuOTQzLDkuOTQzLDAsMCwwLTQuOTY5LDguMjgxVjIzNi45NTRhOS4xMDksOS4xMDksMCwwLDAsNC45NjksOC4yODFMMzkuMjM1LDI1OC4wN2E4LjgyOSw4LjgyOSwwLDAsMCw0Ljk2OCwxLjI0Miw5LjQsOS40LDAsMCwwLDYuNjI1LTIuNDg0LDEwLjgsMTAuOCwwLDAsMCwyLjktNy4wMzlWMTY0LjVMMTY5LjY2LDIzMi40QTQuNSw0LjUsMCwwLDAsMTcxLjczLDIzMi44MTNaTTMyMy4yNzIsMzc3LjczYTEyLjQ3OCwxMi40NzgsMCwwLDAtNC45NjksMS4yNDJsLTc0LjUyOCw0My4wNjJWMjg3Ljg4MmMwLTIuOS0yLjktNS44LTYuMjExLTQuNTU1YTUzLjAzNiw1My4wMzYsMCwwLDEtMjguOTg0LjQxNCw0Ljg2LDQuODYsMCwwLDAtNi4yMSw0LjU1NVY0MjEuNjE5bC03NC41MjktNDMuMDYxYTguODMsOC44MywwLDAsMC00Ljk2OS0xLjI0Miw5LjYzMSw5LjYzMSwwLDAsMC05LjUyMyw5LjUyM3YyNi4wODVhOS4xMDcsOS4xMDcsMCwwLDAsNC45NjksOC4yODFsMTAwLjIsNTcuNTUzQTguODI5LDguODI5LDAsMCwwLDIyMy40ODYsNDgwYTExLjAyNywxMS4wMjcsMCwwLDAsNC45NjktMS4yNDJsMTAwLjItNTcuNTUzYTkuOTQxLDkuOTQxLDAsMCwwLDQuOTY4LTguMjgxVjM4Ni44MzlDMzMyLjgsMzgyLjI4NSwzMjguMjQsMzc3LjczLDMyMy4yNzIsMzc3LjczWk0yODYuMDA3LDc4YTIzLDIzLDAsMSwwLTIzLTIzQTIzLDIzLDAsMCwwLDI4Ni4wMDcsNzhabTYzLjYyNy0xMC4wODZhMjMsMjMsMCwxLDAsMjMsMjNBMjMsMjMsMCwwLDAsMzQ5LjYzNCw2Ny45MTRaTTQxMi44MTYsMTUxLjZhMjMsMjMsMCwxLDAtMjMtMjNBMjMsMjMsMCwwLDAsNDEyLjgxNiwxNTEuNlptLTYzLjE4Mi05LjJhMjMsMjMsMCwxLDAsMjMsMjNBMjMsMjMsMCwwLDAsMzQ5LjYzNCwxNDIuNFptLTYzLjYyNyw4My4yNDRhMjMsMjMsMCwxLDAtMjMtMjNBMjMsMjMsMCwwLDAsMjg2LjAwNywyMjUuNjQ4Wm0tNjIuMDc0LDM2LjM1OGEyMywyMywwLDEsMC0yMy0yM0EyMywyMywwLDAsMCwyMjMuOTMzLDI2Mi4wMDZabTE4OC44ODMtODIuMzU4YTIzLDIzLDAsMSwwLDIzLDIzQTIzLDIzLDAsMCwwLDQxMi44MTYsMTc5LjY0OFptMCw3Mi4yNzJhMjMsMjMsMCwxLDAsMjMsMjNBMjMsMjMsMCwwLDAsNDEyLjgxNiwyNTEuOTJaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVuaXJlZ2lzdHJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiA0ODBjMzkuNSAwIDc2LjItMTEuOCAxMDYuOC0zMi4ySDg1LjNDMTE1LjggNDY4LjIgMTUyLjUgNDgwIDE5MiA0ODB6bS04OS4xLTE5My4xdi0xMi40SDB2MTIuNGMwIDIuNSAwIDUgLjEgNy40aDEwMy4xYy0uMi0yLjQtLjMtNC45LS4zLTcuNHptMjAuNSA1N0g4LjVjMi42IDguNSA1LjggMTYuOCA5LjYgMjQuOGgxMzguM2MtMTIuOS01LjctMjQuMS0xNC4yLTMzLTI0Ljh6bS0xNy43LTM0LjdIMS4zYy45IDcuNiAyLjIgMTUgMy45IDIyLjNoMTA5LjdjLTQtNi45LTcuMi0xNC40LTkuMi0yMi4zem0tMi44LTY5LjNIMHYxNy4zaDEwMi45em0wLTE3My4ySDB2NC45aDEwMi45em0wLTM0LjdIMHYyLjVoMTAyLjl6bTAgNjkuM0gwdjcuNGgxMDIuOXptMCAxMDRIMHYxNC44aDEwMi45em0wLTY5LjNIMHY5LjloMTAyLjl6bTAgMzQuNkgwVjE4M2gxMDIuOXptMTY2LjIgMTYwLjloMTA5LjdjMS44LTcuMyAzLjEtMTQuNyAzLjktMjIuM0gyNzguM2MtMi4xIDcuOS01LjIgMTUuNC05LjIgMjIuM3ptMTItMTg1LjdIMzg0VjEzNkgyODEuMXptMCAzNy4ySDM4NHYtMTIuNEgyODEuMXptMC03NC4zSDM4NHYtNy40SDI4MS4xem0wLTc2Ljd2Mi41SDM4NFYzMnptLTIwMyA0MTAuOWgyMjcuN2MxMS44LTguNyAyMi43LTE4LjYgMzIuMi0yOS43SDQ0LjljOS42IDExIDIxLjQgMjEgMzMuMiAyOS43em0yMDMtMzcxLjNIMzg0di00LjlIMjgxLjF6bTAgMTQ4LjVIMzg0di0xNC44SDI4MS4xek0zOC44IDQwNS43aDMwNS4zYzYuNy04LjUgMTIuNi0xNy42IDE3LjgtMjcuMkgyM2M1LjIgOS42IDkuMiAxOC43IDE1LjggMjcuMnptMTg4LjgtMzcuMUgzNjdjMy43LTggNS44LTE2LjIgOC41LTI0LjhoLTExNWMtOC44IDEwLjctMjAuMSAxOS4yLTMyLjkgMjQuOHptNTMuNS04MS43YzAgMi41LS4xIDUtLjQgNy40aDEwMy4xYy4xLTIuNS4yLTQuOS4yLTcuNHYtMTIuNEgyODEuMXptMC0yOS43SDM4NHYtMTcuM0gyODEuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW5pdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQzLjU4MyA5MS42MDI3TDMyMy42OTUgMTM4LjM4NEMzMjYuNTc1IDE0MC4wMjYgMzI2LjY4IDE0NC41ODMgMzIzLjY5NSAxNDYuMjI1TDIyOC41MDMgMjAxLjg1NEMyMjUuNjIzIDIwMy41NSAyMjIuMjIgMjAzLjQ0NCAyMTkuNTQ5IDIwMS44NTRMMTI0LjM1NyAxNDYuMjI1QzEyMS40MjUgMTQ0LjYzNiAxMjEuMzczIDEzOS45NzMgMTI0LjM1NyAxMzguMzg0TDIwNC40MTcgOTEuNjAyN1YwTDAgMTE5LjQxN1YzNTguMjUyTDc4LjM4NDMgMzEyLjQ3N1YyMTguOTE0Qzc4LjMzMTkgMjE1LjU3NiA4Mi4yMDY2IDIxMy4xOTIgODUuMDg2NSAyMTQuOTkzTDE4MC4yNzkgMjcwLjYyMkMxODMuMTU5IDI3Mi4zMTggMTg0Ljc4MiAyNzUuMzM4IDE4NC43ODIgMjc4LjQ2NFYzODkuNjY5QzE4NC44MzQgMzkzLjAwNyAxODAuOTU5IDM5NS4zOTEgMTc4LjA3OSAzOTMuNTg5TDk3Ljk2NzMgMzQ2LjgwOEwxOS41ODMgMzkyLjU4M0wyMjQgNTEyTDQyOC40MTcgMzkyLjU4M0wzNTAuMDMzIDM0Ni44MDhMMjY5LjkyMSAzOTMuNTg5QzI2Ny4wOTMgMzk1LjMzOCAyNjMuMTE0IDM5My4wNiAyNjMuMjE4IDM4OS42NjlWMjc4LjQ2NEMyNjMuMjE4IDI3NS4xMjYgMjY1LjA1MSAyNzIuMTU5IDI2Ny43MjEgMjcwLjYyMkwzNjIuOTE0IDIxNC45OTNDMzY1Ljc0MSAyMTMuMjQ1IDM2OS43MiAyMTUuNDcgMzY5LjYxNiAyMTguOTE0VjMxMi40NzdMNDQ4IDM1OC4yNTJWMTE5LjQxN0wyNDMuNTgzIDBWOTEuNjAyN1pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW5zcGxhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4LDIzMC4xN1Y0ODBIMFYyMzAuMTdIMTQxLjEzVjM1NS4wOUgzMDYuODdWMjMwLjE3Wk0zMDYuODcsMzJIMTQxLjEzVjE1Ni45MUgzMDYuODdaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVudGFwcGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAxLjMgNDkuOWMtNzkuOCAxNjAuMS04NC42IDE1Mi41LTg3LjkgMTczLjJsLTUuMiAzMi44Yy0xLjkgMTItNi42IDIzLjUtMTMuNyAzMy40TDE0NS42IDQ5Ny4xYy03LjYgMTAuNi0yMC40IDE2LjItMzMuNCAxNC42LTQwLjMtNS03Ny44LTMyLjItOTUuMy02OC41LTUuNy0xMS44LTQuNS0yNS44IDMuMS0zNi40bDE0OC45LTIwNy45YzcuMS05LjkgMTYuNC0xOCAyNy4yLTIzLjdsMjkuMy0xNS41YzE4LjUtOS44IDkuNy0xMS45IDEzNS42LTEzOC45IDEtNC44IDEtNy4zIDMuNi04IDMtLjcgNi42LTEgNi4zLTQuNmwtLjQtNC42Yy0uMi0xLjkgMS4zLTMuNiAzLjItMy42IDQuNS0uMSAxMy4yIDEuMiAyNS42IDEwIDEyLjMgOC45IDE2LjQgMTYuOCAxNy43IDIxLjEuNiAxLjgtLjYgMy43LTIuNCA0LjJsLTQuNSAxLjFjLTMuNC45LTIuNSA0LjQtMi4zIDcuNC4xIDIuOC0yLjMgMy42LTYuNSA2LjF6TTIzMC4xIDM2LjRjMy40LjkgMi41IDQuNCAyLjMgNy40LS4yIDIuNyAyLjEgMy41IDYuNCA2IDcuOSAxNS45IDE1LjMgMzAuNSAyMi4yIDQ0IC43IDEuMyAyLjMgMS41IDMuMy41IDExLjItMTIgMjQuNi0yNi4yIDQwLjUtNDIuNiAxLjMtMS40IDEuNC0zLjUuMS00LjktOC04LjItMTYuNS0xNi45LTI1LjYtMjYuMS0xLTQuNy0xLTcuMy0zLjYtOC0zLS44LTYuNi0xLTYuMy00LjYuMy0zLjMgMS40LTguMS0yLjgtOC4yLTQuNS0uMS0xMy4yIDEuMS0yNS42IDEwLTEyLjMgOC45LTE2LjQgMTYuOC0xNy43IDIxLjEtMS40IDQuMiAzLjYgNC42IDYuOCA1LjR6TTYyMCA0MDYuN0w0NzEuMiAxOTguOGMtMTMuMi0xOC41LTI2LjYtMjMuNC01Ni40LTM5LjEtMTEuMi01LjktMTQuMi0xMC45LTMwLjUtMjguOS0xLTEuMS0yLjktLjktMy42LjUtNDYuMyA4OC44LTQ3LjEgODIuOC00OSA5NC44LTEuNyAxMC43LTEuMyAyMCAuMyAyOS44IDEuOSAxMiA2LjYgMjMuNSAxMy43IDMzLjRsMTQ4LjkgMjA3LjljNy42IDEwLjYgMjAuMiAxNi4yIDMzLjEgMTQuNyA0MC4zLTQuOSA3OC0zMiA5NS43LTY4LjYgNS40LTExLjkgNC4zLTI1LjktMy40LTM2LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVwcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDMuMiAzMDNjLTUuMiAzLjYtMzIuNiAxMy4xLTMyLjYtMTlWMTgwSDM3Ljl2MTAyLjZjMCA3NC45IDgwLjIgNTEuMSA5Ny45IDM5VjE4MGgtMzIuNnpNNCA3NC44MnYyMjAuOWMwIDEwMy43IDc0LjkgMTM1LjIgMTg3LjcgMTg0LjEgMTEyLjQtNDguOSAxODcuNy04MC4yIDE4Ny43LTE4NC4xVjc0LjgyYy0xMTYuMy02MS42LTI4MS44LTQ5LjYtMzc1LjQgMHptMzU4LjEgMjIwLjljMCA4Ni42LTUzLjIgMTEzLjYtMTcwLjQgMTY1LjMtMTE3LjUtNTEuOC0xNzAuNS03OC43LTE3MC41LTE2NS4zdi0xMjYuNGMxMDIuMy05My44IDIzMS42LTEwMCAzNDAuOS04OS44em0tMjA5LjYtMTA3LjR2MjEyLjhoMzIuN3YtNjguN2MyNC40IDcuMyA3MS43LTIuNiA3MS43LTc4LjUgMC05Ny40LTgwLjctODAuOTItMTA0LjQtNjUuNnptMzIuNyAxMTcuM3YtMTAwLjNjOC40LTQuMiAzOC40LTEyLjcgMzguNCA0OS4zIDAgNjcuOS0zNi40IDUxLjgtMzguNCA1MXptNzkuMS04Ni40Yy4xIDQ3LjMgNTEuNiA0Mi41IDUyLjIgNzAuNC42IDIzLjUtMzAuNCAyMy01MC44IDQuOXYzMC4xYzM2LjIgMjEuNSA4MS45IDguMSA4My4yLTMzLjUgMS43LTUxLjUtNTQuMS00Ni42LTUzLjQtNzMuMi42LTIwLjMgMzAuNi0yMC41IDQ4LjUtMi4ydi0yOC40Yy0yOC41LTIyLTc5LjktOS4yLTc5LjcgMzEuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXB3b3JrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDEgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NC43IDI5NS42Yy01MC4zIDAtODMuNS0zOC45LTkyLjgtNTMuOWMxMS45LTk1LjMgNDYuOC0xMjUuNCA5Mi44LTEyNS40YzQ1LjUgMCA4MC45IDM2LjQgODAuOSA4OS43cy0zNS40IDg5LjctODAuOSA4OS43em0wLTIzNy44Yy04MS45IDAtMTI3LjggNTMuNC0xNDEgMTA4LjRjLTE0LjktMjgtMjUuOS02NS41LTM0LjUtMTAwLjNIMjA2djE0MWMwIDUxLjEtMjMuMyA4OS02OC44IDg5cy03MS42LTM3LjgtNzEuNi04OWwuNS0xNDFILjh2MTQxYzAgNDEuMSAxMy4zIDc4LjQgMzcuNiAxMDUuMWMyNSAyNy41IDU5LjIgNDEuOCA5OC44IDQxLjhjNzguOCAwIDEzMy44LTYwLjQgMTMzLjgtMTQ2LjlWMTEyLjFjOC4yIDMxLjIgMjcuOCA5MS4xIDY1LjMgMTQzLjZsLTM1IDE5OS40aDY2LjRsMjMuMS0xNDEuM2M3LjYgNi4zIDE1LjcgMTIgMjQuMiAxN2MyMi4yIDE0IDQ3LjcgMjEuOSA3My45IDIyLjhjMCAwIDQgLjIgNi4xIC4yYzgxLjIgMCAxNDUuOS02Mi45IDE0NS45LTE0Ny44cy02NC44LTE0OC4xLTE0Ni0xNDguMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MS41IDI1NmMwIDMuMS0xLjcgNi4xLTQuNSA3LjVMNTQ3LjkgMzE3Yy0xLjQuOC0yLjggMS40LTQuNSAxLjQtMS40IDAtMy4xLS4zLTQuNS0xLjEtMi44LTEuNy00LjUtNC41LTQuNS03Ljh2LTM1LjZIMjk1LjdjMjUuMyAzOS42IDQwLjUgMTA2LjkgNjkuNiAxMDYuOUgzOTJWMzU0YzAtNSAzLjktOC45IDguOS04LjlINDkwYzUgMCA4LjkgMy45IDguOSA4Ljl2ODkuMWMwIDUtMy45IDguOS04LjkgOC45aC04OS4xYy01IDAtOC45LTMuOS04LjktOC45di0yNi43aC0yNi43Yy03NS40IDAtODEuMS0xNDIuNS0xMjQuNy0xNDIuNUgxNDAuM2MtOC4xIDMwLjYtMzUuOSA1My41LTY5IDUzLjVDMzIgMzI3LjMgMCAyOTUuMyAwIDI1NnMzMi03MS4zIDcxLjMtNzEuM2MzMy4xIDAgNjEgMjIuOCA2OSA1My41IDM5LjEgMCA0My45IDkuNSA3NC42LTYwLjRDMjU1IDg4LjcgMjczIDk1LjcgMzIzLjggOTUuN2M3LjUtMjAuOSAyNy0zNS42IDUwLjQtMzUuNiAyOS41IDAgNTMuNSAyMy45IDUzLjUgNTMuNXMtMjMuOSA1My41LTUzLjUgNTMuNWMtMjMuNCAwLTQyLjktMTQuOC01MC40LTM1LjZIMjk0Yy0yOS4xIDAtNDQuMyA2Ny40LTY5LjYgMTA2LjloMzEwLjF2LTM1LjZjMC0zLjMgMS43LTYuMSA0LjUtNy44IDIuOC0xLjcgNi40LTEuNCA4LjkuM2w4OS4xIDUzLjVjMi44IDEuMSA0LjUgNC4xIDQuNSA3LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzcHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDYwLjMgMjQxLjdjMjUuOC00MS4zIDE1LjItNDguOC0xMS43LTQ4LjhoLTI3Yy0uMSAwLTEuNS0xLjQtMTAuOSA4LTExLjIgNS42LTM3LjkgNi4zLTM3LjkgOC43IDAgNC41IDcwLjMtMy4xIDg4LjEgMCA5LjUgMS41LTEuNSAyMC40LTQuNCAzMi0uNSA0LjUgMi40IDIuMyAzLjguMXptLTExMi4xIDIyLjZjNjQtMjEuMyA5Ny4zLTIzLjkgMTAyLTI2LjIgNC40LTIuOS00LjQtNi42LTI2LjItNS44LTUxLjcgMi4yLTEzNy42IDM3LjEtMTcyLjYgNTMuOWwtMzAuNy05My4zaDE5Ni42Yy0yLjctMjguMi0xNTIuOS0yMi42LTMzNy45LTIyLjZMMjcgNDE1LjhjMTk2LjQtOTcuMyAyNTguOS0xMzAuMyAzMjEuMi0xNTEuNXpNOTQuNyA5NmMyNTMuMyA1My43IDMzMCA2NS43IDMzMi4xIDg1LjIgMzYuNCAwIDQ1LjkgMCA1Mi40IDYuNiAyMS4xIDE5LjctMTQuNiA2Ny43LTE0LjYgNjcuNy00LjQgMi45LTQwNi40IDE2MC4yLTQwNi40IDE2MC4yaDQyMy4xTDU0OSA5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNzdW5uYWggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ4MiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgxLjkgMjY4LjFBMjQwLjkgMjQwLjkgMCAxIDEgLjEgMjY4YTI0MC45IDI0MC45IDAgMSAxIDQ4MS45IDB6TTI0LjUgMjY4YTIxNi41IDIxNi41IDAgMSAwIDQzMi45IDBBMjE2LjUgMjE2LjUgMCAxIDAgMjQuNSAyNjh6bTM4NS45IDYzLjNjLTEyLjcgMC0yMS42LTEuOS0yNi43LTUuOWMtNS41LTQuMy04LjItMTIuMy04LjItMjMuOFYyMDUuMWMwLTYuNS01LjItMjAuMi0xNS43LTQxLjJjNyAwIDE3LTkuMSAzMC0yNy4yVjI4NC41YzAgMTEgMi40IDE5LjQgNyAyNS4zYzMuNyA0LjcgMTAuMSA4LjkgMTkgMTIuNmMxLjIgLjQgMi42IC45IDQuMSAxLjRjMi45IC45IDYuMyAyLjEgMTAuMyAzLjVjLTEuOCAyLjctOC4zIDQtMTkuOSA0em0tMjE5IDBjLTEuMyAyLjQtMy42IDUuNS02LjggOS40bC0xOC41IDIyLjVjLTEtNi4xLTQtMTMtOS4zLTIwLjZzLTkuNy0xMS40LTEzLjQtMTEuNGgtOC4zSDUzLjZjMy4zLTUuMyA0LjktOC44IDQuOS0xMC44YzAtMi0uOC01LjMtMi40LTkuN2MtMS41LTQuNC0yLjQtOC41LTIuNC0xMi40YzAtNy40IDIuMS0xMy45IDYuMy0xOS4zTDgwIDI1My40bC03LjEtMTcuN0w4OSAyMTUuOWw2LjcgMTYuOCA4LTEwLjNjLTEuOCA2LjQtMi42IDEyLjMtMi42IDE3LjdjMCA0LjIgMi44IDEzLjMgOC4zIDI3LjNsMTYuMiA0MC43SDEzNWg4IC4zYzIuOCAuNCA3LjcgNSAxNC42IDEzLjljMS44IDIuNCA0LjMgNS44IDcuNyAxMC4yYzEuNCAxLjkgMi45IDMuOSA0LjYgNi4xYzEuMy0yLjMgMi00LjYgMi03LjFjMC0yLTEuMy02LjYtNC0xMy40TDE2MyAzMDQuMWMtNC0xMC42LTYuMS0xNy43LTYuMS0yMS4zYzAtNi4zIDEuOS0xMi4zIDUuOC0xNy45Yy41LS42IDEtMS4zIDEuNS0xLjljNC40LTUuNiA4LjgtMTEuMSAxMy4zLTE2LjVjLTEuMSA0LjYtMS43IDguNy0xLjcgMTJjMCAzLjcgMS43IDkuOSA1LjEgMTguOGw3LjkgMjAuNGMxLjkgNC43IDMgOC4yIDMuNyAxMC4zaDE3LjYgOC4zbC0uOS0yLjZjLTEuNC0zLjktNC03LTcuNy05LjNsMTUuNi0yMC4xIDEyLjMgMzJoMTMuNEwyNDUgMjkyLjJjLTEuNS0zLjktNC03LTcuNy05LjNMMjUzIDI2Mi44IDI3MC4zIDMwOGgxMy40bC0xMS40LTI5LjRjLTEuNS0zLjktNC03LTcuNy05LjNsMTUuNi0yMEwzMDIuNiAzMDhoMTAuMyA4LjMgNy42YzEuNSAwIDMtMS4xIDQuNS0zLjFzMi4yLTQuMSAyLjItNi4zVjIwNS4xYzAtNi41LTQuNS0yMC4zLTEzLjctNDEuMmM1LjQgMCAxNC4xLTkuMSAyNi4yLTI3LjJWMzAwLjJjMCA3LjIgLjYgMTIgMS43IDE0LjZjMS42IDMuNCA1LjMgNi4yIDExLjEgOC4yYy0zLjkgNS42LTguNyA4LjUtMTQuNSA4LjVIMzIxLjFoLTguM0gyMTAuNWgtMTl6TTkzLjQgMjg3LjNjLTIuNy02LjctNC0xMS43LTQtMTVjLS42IDEuMi0yLjQgMy43LTUuNCA3LjZjLTEuNCAxLjktMi4yIDMuNy0yLjIgNS4zYzAgMi42IC44IDUuNyAyLjIgOS4zbDUuNiAxMy45aDBjNSAwIDkgMCAxMS45LS4xbC04LjItMjAuOXptMTMuNS03Mi40Yy0zLTUuMi03LTkuMy0xMS45LTExLjljLTMuNS0xLjktNS4zLTQuMy01LjMtNy40YzAtMi40IDQuNi04LjYgMTQtMTguM2MuMiAzLjggMS45IDcuNiA0LjkgMTEuMmMzLjEgMy42IDQuNiA3IDQuNiAxMC4xYzAgMi42LTIuMSA4LTYuMiAxNi4zem0tMjcuNiAwYy0zLTUuMi03LTkuMy0xMS45LTExLjljLTMuNS0xLjktNS4zLTQuMy01LjMtNy40YzAtMi40IDQuNi04LjYgMTQtMTguM2MuMiAzLjggMS45IDcuNiA0LjkgMTEuMmMzLjEgMy42IDQuNiA3IDQuNiAxMC4xYzAgMi42LTIuMSA4LTYuMiAxNi4zem04NyAyNy41Yy0zLTUuMi03LTkuMy0xMS45LTExLjljLTMuNS0xLjktNS4zLTQuMy01LjMtNy40YzAtMi40IDQuNi04LjYgMTQtMTguM2MuMiAzLjggMS45IDcuNiA0LjkgMTEuMmMzLjEgMy42IDQuNiA3IDQuNiAxMC4xYzAgMi42LTIuMSA4LTYuMiAxNi4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWYWFkaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0LjUgMTQwLjdjMS41LTE3LjYgNC45LTUyLjcgNDkuOC01Mi43aDk4LjZjMjAuNyAwIDMyLjEtNy44IDMyLjEtMjEuNlY1NC4xYzAtMTIuMiA5LjMtMjIuMSAyMS41LTIyLjFTNDQ4IDQxLjkgNDQ4IDU0LjF2MzYuNWMwIDQyLjktMjEuNSA2Mi02Ni44IDYySDI4MC43Yy0zMC4xIDAtMzMgMTQuNy0zMyAyNy4xIDAgMS4zLS4xIDIuNS0uMiAzLjctLjcgMTIuMy0xMC45IDIyLjItMjMuNCAyMi4ycy0yMi43LTkuOC0yMy40LTIyLjJjLS4xLTEuMi0uMi0yLjQtLjItMy43IDAtMTIuMy0zLTI3LjEtMzMtMjcuMUg2Ni44Yy00NS4zIDAtNjYuOC0xOS4xLTY2LjgtNjJWNTQuMUMwIDQxLjkgOS40IDMyIDIxLjYgMzJzMjEuNSA5LjkgMjEuNSAyMi4xdjEyLjNDNDMuMSA4MC4yIDU0LjUgODggNzUuMiA4OGg5OC42YzQ0LjggMCA0OC4zIDM1LjEgNDkuOCA1Mi43aC45ek0yMjQgNDU2YzExLjUgMCAyMS40LTcgMjUuNy0xNi4zIDEuMS0xLjggOTcuMS0xNjkuNiA5OC4yLTE3MS40IDExLjktMTkuNi0zLjItNDQuMy0yNy4yLTQ0LjMtMTMuOSAwLTIzLjMgNi40LTI5LjggMjAuM0wyMjQgMzYybC02Ni45LTExNy43Yy02LjQtMTMuOS0xNS45LTIwLjMtMjkuOC0yMC4zLTI0IDAtMzkuMSAyNC42LTI3LjIgNDQuMyAxLjEgMS45IDk3LjEgMTY5LjYgOTguMiAxNzEuNCA0LjMgOS4zIDE0LjIgMTYuMyAyNS43IDE2LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpYWNvaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDMyaC02NGwtODAuNyAxOTJoLTk0LjVMNjQgMzJIMGw0OCAxMTJIMHY0OGg2OC41bDEzLjggMzJIMHY0OGgxMDIuOEwxOTIgNDgwbDg5LjItMjA4SDM4NHYtNDhoLTgyLjNsMTMuOC0zMkgzODR2LTQ4aC00OGw0OC0xMTJ6TTE5MiAzMzZsLTI3LTY0aDU0bC0yNyA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmlhZGVvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3Ni4yIDE1MC41di43QzI1OC4zIDk4LjYgMjMzLjYgNDcuOCAyMDUuNCAwYzQzLjMgMjkuMiA2NyAxMDAgNzAuOCAxNTAuNXptMzIuNyAxMjEuN2M3LjYgMTguMiAxMSAzNy41IDExIDU3IDAgNzcuNy01Ny44IDE0MS0xMzcuOCAxMzkuNGwzLjgtLjNjNzQuMi00Ni43IDEwOS4zLTExOC42IDEwOS4zLTIwNS4xIDAtMzguMS02LjUtNzUuOS0xOC45LTExMiAxIDExLjcgMSAyMy43IDEgMzUuNCAwIDkxLjgtMTguMSAyNDEuNi0xMTYuNiAyODBDOTUgNDU1LjIgNDkuNCAzOTggNDkuNCAzMjkuMmMwLTc1LjYgNTcuNC0xNDIuMyAxMzUuNC0xNDIuMyAxNi44IDAgMzMuNyAzLjEgNDkuMSA5LjYgMS43LTE1LjEgNi41LTI5LjkgMTMuNC00My4zLTE5LjktNy4yLTQxLjItMTAuNy02Mi41LTEwLjctMTYxLjUgMC0yMzguNyAxOTUuOS0xMjkuOSAzMTMuNyA2Ny45IDc0LjYgMTkyIDczLjkgMjU5LjggMCA1Ni42LTYxLjMgNjAuOS0xNDIuNCAzNi40LTIwMS0xMi43IDgtMjcuMSAxMy45LTQyLjIgMTd6TTQxOC4xIDExLjdjLTMxIDY2LjUtODEuMyA0Ny4yLTExNS44IDgwLjEtMTIuNCAxMi0yMC42IDM0LTIwLjYgNTAuNSAwIDE0LjEgNC41IDI3LjEgMTIgMzguOCA0Ny40LTExIDk4LjMtNDYgMTE4LjItOTAuNy0uNyA1LjUtNC44IDE0LjQtNy4yIDE5LjItMjAuMyAzNS43LTY0LjYgNjUuNi05OS43IDg0LjkgMTQuOCAxNC40IDMzLjcgMjUuOCA1NSAyNS44IDc5IDAgMTEwLjEtMTM0LjYgNTguMS0yMDguNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmliZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ0IDQ5LjlDNDMxLjMgMzguMiAzNzkuOS45IDI2NS4zLjRjMCAwLTEzNS4xLTguMS0yMDAuOSA1Mi4zQzI3LjggODkuMyAxNC45IDE0MyAxMy41IDIwOS41Yy0xLjQgNjYuNS0zLjEgMTkxLjEgMTE3IDIyNC45aC4xbC0uMSA1MS42cy0uOCAyMC45IDEzIDI1LjFjMTYuNiA1LjIgMjYuNC0xMC43IDQyLjMtMjcuOCA4LjctOS40IDIwLjctMjMuMiAyOS44LTMzLjcgODIuMiA2LjkgMTQ1LjMtOC45IDE1Mi41LTExLjIgMTYuNi01LjQgMTEwLjUtMTcuNCAxMjUuNy0xNDIgMTUuOC0xMjguNi03LjYtMjA5LjgtNDkuOC0yNDYuNXpNNDU3LjkgMjg3Yy0xMi45IDEwNC04OSAxMTAuNi0xMDMgMTE1LjEtNiAxLjktNjEuNSAxNS43LTEzMS4yIDExLjIgMCAwLTUyIDYyLjctNjguMiA3OS01LjMgNS4zLTExLjEgNC44LTExLTUuNyAwLTYuOS40LTg1LjcuNC04NS43LS4xIDAtLjEgMCAwIDAtMTAxLjgtMjguMi05NS44LTEzNC4zLTk0LjctMTg5LjggMS4xLTU1LjUgMTEuNi0xMDEgNDIuNi0xMzEuNiA1NS43LTUwLjUgMTcwLjQtNDMgMTcwLjQtNDMgOTYuOS40IDE0My4zIDI5LjYgMTU0LjEgMzkuNCAzNS43IDMwLjYgNTMuOSAxMDMuOCA0MC42IDIxMS4xem0tMTM5LTgwLjhjLjQgOC42LTEyLjUgOS4yLTEyLjkuNi0xLjEtMjItMTEuNC0zMi43LTMyLjYtMzMuOS04LjYtLjUtNy44LTEzLjQuNy0xMi45IDI3LjkgMS41IDQzLjQgMTcuNSA0NC44IDQ2LjJ6bTIwLjMgMTEuM2MxLTQyLjQtMjUuNS03NS42LTc1LjgtNzkuMy04LjUtLjYtNy42LTEzLjUuOS0xMi45IDU4IDQuMiA4OC45IDQ0LjEgODcuOCA5Mi41LS4xIDguNi0xMy4xIDguMi0xMi45LS4zem00NyAxMy40Yy4xIDguNi0xMi45IDguNy0xMi45LjEtLjYtODEuNS01NC45LTEyNS45LTEyMC44LTEyNi40LTguNS0uMS04LjUtMTIuOSAwLTEyLjkgNzMuNy41IDEzMyA1MS40IDEzMy43IDEzOS4yek0zNzQuOSAzMjl2LjJjLTEwLjggMTktMzEgNDAtNTEuOCAzMy4zbC0uMi0uM2MtMjEuMS01LjktNzAuOC0zMS41LTEwMi4yLTU2LjUtMTYuMi0xMi44LTMxLTI3LjktNDIuNC00Mi40LTEwLjMtMTIuOS0yMC43LTI4LjItMzAuOC00Ni42LTIxLjMtMzguNS0yNi01NS43LTI2LTU1LjctNi43LTIwLjggMTQuMi00MSAzMy4zLTUxLjhoLjJjOS4yLTQuOCAxOC0zLjIgMjMuOSAzLjkgMCAwIDEyLjQgMTQuOCAxNy43IDIyLjEgNSA2LjggMTEuNyAxNy43IDE1LjIgMjMuOCA2LjEgMTAuOSAyLjMgMjItMy43IDI2LjZsLTEyIDkuNmMtNi4xIDQuOS01LjMgMTQtNS4zIDE0czE3LjggNjcuMyA4NC4zIDg0LjNjMCAwIDkuMS44IDE0LTUuM2w5LjYtMTJjNC42LTYgMTUuNy05LjggMjYuNi0zLjcgMTQuNyA4LjMgMzMuNCAyMS4yIDQ1LjggMzIuOSA3IDUuNyA4LjYgMTQuNCAzLjggMjMuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmltZW9WIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0Ny44IDE1My42Yy0yIDQzLjYtMzIuNCAxMDMuMy05MS40IDE3OS4xLTYwLjkgNzkuMi0xMTIuNCAxMTguOC0xNTQuNiAxMTguOC0yNi4xIDAtNDguMi0yNC4xLTY2LjMtNzIuM0MxMDAuMyAyNTAgODUuMyAxNzQuMyA1Ni4yIDE3NC4zYy0zLjQgMC0xNS4xIDcuMS0zNS4yIDIxLjFMMCAxNjguMmM1MS42LTQ1LjMgMTAwLjktOTUuNyAxMzEuOC05OC41IDM0LjktMy40IDU2LjMgMjAuNSA2NC40IDcxLjUgMjguNyAxODEuNSA0MS40IDIwOC45IDkzLjYgMTI2LjcgMTguNy0yOS42IDI4LjgtNTIuMSAzMC4yLTY3LjYgNC44LTQ1LjktMzUuOC00Mi44LTYzLjMtMzEgMjItNzIuMSA2NC4xLTEwNy4xIDEyNi4yLTEwNS4xIDQ1LjggMS4yIDY3LjUgMzEuMSA2NC45IDg5LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpbWVvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMy4yIDMySDQ0LjhDMjAuMSAzMiAwIDUyLjEgMCA3Ni44djM1OC40QzAgNDU5LjkgMjAuMSA0ODAgNDQuOCA0ODBoMzU4LjRjMjQuNyAwIDQ0LjgtMjAuMSA0NC44LTQ0LjhWNzYuOGMwLTI0LjctMjAuMS00NC44LTQ0LjgtNDQuOHpNMzc3IDE4MC44Yy0xLjQgMzEuNS0yMy40IDc0LjctNjYgMTI5LjQtNDQgNTcuMi04MS4zIDg1LjgtMTExLjcgODUuOC0xOC45IDAtMzQuOC0xNy40LTQ3LjktNTIuMy0yNS41LTkzLjMtMzYuNC0xNDgtNTcuNC0xNDgtMi40IDAtMTAuOSA1LjEtMjUuNCAxNS4ybC0xNS4yLTE5LjZjMzcuMy0zMi44IDcyLjktNjkuMiA5NS4yLTcxLjIgMjUuMi0yLjQgNDAuNyAxNC44IDQ2LjUgNTEuNyAyMC43IDEzMS4yIDI5LjkgMTUxIDY3LjYgOTEuNiAxMy41LTIxLjQgMjAuOC0zNy43IDIxLjgtNDguOSAzLjUtMzMuMi0yNS45LTMwLjktNDUuOC0yMi40IDE1LjktNTIuMSA0Ni4zLTc3LjQgOTEuMi03NiAzMy4zLjkgNDkgMjIuNSA0Ny4xIDY0Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDI1NC43djUyLjFjLTE4LjQgNC4yLTM2LjkgNi4xLTUyLjEgNi4xLTM2LjkgNzcuNC0xMDMgMTQzLjgtMTI1LjEgMTU2LjItMTQgNy45LTI3LjEgOC40LTQyLjctLjhDMTM3IDQ1MiAzNC4yIDM2Ny43IDAgMTAyLjdoNzQuNUM5My4yIDI2MS44IDEzOSAzNDMuNCAxODkuMyA0MDQuNWMyNy45LTI3LjkgNTQuOC02NS4xIDc1LjYtMTA2LjktNDkuOC0yNS4zLTgwLjEtODAuOS04MC4xLTE0NS42IDAtNjUuNiAzNy43LTExNS4xIDEwMi4yLTExNS4xIDExNC45IDAgMTA2LjIgMTI3LjkgODEuNiAxODEuNSAwIDAtNDYuNCA5LjItNjMuNS0yMC41IDMuNC0xMS4zIDguMi0zMC44IDguMi00OC41IDAtMzEuMy0xMS4zLTQ2LjYtMjguNC00Ni42LTE4LjIgMC0zMC44IDE3LjEtMzAuOCA1MCAuMSA3OS4yIDU5LjQgMTE4LjcgMTI5LjkgMTAxLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxLjQ5MDcgNjMuNDkwN0MwIDk0Ljk4MTMgMCAxNDUuNjcxIDAgMjQ3LjA0VjI2NC45NkMwIDM2Ni4zMjkgMCA0MTcuMDE5IDMxLjQ5MDcgNDQ4LjUwOUM2Mi45ODEzIDQ4MCAxMTMuNjcxIDQ4MCAyMTUuMDQgNDgwSDIzMi45NkMzMzQuMzI5IDQ4MCAzODUuMDE5IDQ4MCA0MTYuNTA5IDQ0OC41MDlDNDQ4IDQxNy4wMTkgNDQ4IDM2Ni4zMjkgNDQ4IDI2NC45NlYyNDcuMDRDNDQ4IDE0NS42NzEgNDQ4IDk0Ljk4MTMgNDE2LjUwOSA2My40OTA3QzM4NS4wMTkgMzIgMzM0LjMyOSAzMiAyMzIuOTYgMzJIMjE1LjA0QzExMy42NzEgMzIgNjIuOTgxMyAzMiAzMS40OTA3IDYzLjQ5MDdaTTc1LjYgMTY4LjI2N0gxMjYuNzQ3QzEyOC40MjcgMjUzLjc2IDE2Ni4xMzMgMjg5Ljk3MyAxOTYgMjk3LjQ0VjE2OC4yNjdIMjQ0LjE2VjI0MkMyNzMuNjUzIDIzOC44MjcgMzA0LjY0IDIwNS4yMjcgMzE1LjA5MyAxNjguMjY3SDM2My4yNTNDMzU5LjMxMyAxODcuNDM1IDM1MS40NiAyMDUuNTgzIDM0MC4xODYgMjIxLjU3OUMzMjguOTEzIDIzNy41NzQgMzE0LjQ2MSAyNTEuMDcxIDI5Ny43MzMgMjYxLjIyN0MzMTYuNDEgMjcwLjQ5OSAzMzIuOTA3IDI4My42MyAzNDYuMTMyIDI5OS43NTFDMzU5LjM1NyAzMTUuODczIDM2OS4wMSAzMzQuNjE4IDM3NC40NTMgMzU0Ljc0N0gzMjEuNDRDMzE2LjU1NSAzMzcuMjYyIDMwNi42MTQgMzIxLjYxIDI5Mi44NjUgMzA5Ljc1NEMyNzkuMTE3IDI5Ny44OTkgMjYyLjE3MyAyOTAuMzY4IDI0NC4xNiAyODguMTA3VjM1NC43NDdIMjM4LjM3M0MxMzYuMjY3IDM1NC43NDcgNzguMDI2NyAyODQuNzQ3IDc1LjYgMTY4LjI2N1pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVm52IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwNC45IDM1MmMtMzQuMSAwLTQ2LjQtMzAuNC00Ni40LTMwLjRMMi42IDIxMC4xUy03LjggMTkyIDEzIDE5MmgzMi44YzEwLjQgMCAxMy4yIDguNyAxOC44IDE4LjFsMzYuNyA3NC41czUuMiAxMy4xIDIxLjEgMTMuMSAyMS4xLTEzLjEgMjEuMS0xMy4xbDM2LjctNzQuNWM1LjYtOS41IDguNC0xOC4xIDE4LjgtMTguMWgzMi44YzIwLjggMCAxMC40IDE4LjEgMTAuNCAxOC4xbC01NS44IDExMS41UzE3NC4yIDM1MiAxNDAgMzUyaC0zNS4xem0zOTUgMGMtMzQuMSAwLTQ2LjQtMzAuNC00Ni40LTMwLjRsLTU1LjktMTExLjVTMzg3LjIgMTkyIDQwOCAxOTJoMzIuOGMxMC40IDAgMTMuMiA4LjcgMTguOCAxOC4xbDM2LjcgNzQuNXM1LjIgMTMuMSAyMS4xIDEzLjEgMjEuMS0xMy4xIDIxLjEtMTMuMWwzNi44LTc0LjVjNS42LTkuNSA4LjQtMTguMSAxOC44LTE4LjFINjI3YzIwLjggMCAxMC40IDE4LjEgMTAuNCAxOC4xbC01NS45IDExMS41UzU2OS4zIDM1MiA1MzUuMSAzNTJoLTM1LjJ6TTMzNy42IDE5MmMzNC4xIDAgNDYuNCAzMC40IDQ2LjQgMzAuNGw1NS45IDExMS41czEwLjQgMTguMS0xMC40IDE4LjFoLTMyLjhjLTEwLjQgMC0xMy4yLTguNy0xOC44LTE4LjFsLTM2LjctNzQuNXMtNS4yLTEzLjEtMjEuMS0xMy4xYy0xNS45IDAtMjEuMSAxMy4xLTIxLjEgMTMuMWwtMzYuNyA3NC41Yy01LjYgOS40LTguNCAxOC4xLTE4LjggMTguMWgtMzIuOWMtMjAuOCAwLTEwLjQtMTguMS0xMC40LTE4LjFsNTUuOS0xMTEuNXMxMi4yLTMwLjQgNDYuNC0zMC40aDM1LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZ1ZWpzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1Ni45IDY0LjNIMjgwbC01NiA4OC42LTQ4LTg4LjZIMEwyMjQgNDQ4IDQ0OCA2NC4zaC05MS4xem0tMzAxLjIgMzJoNTMuOEwyMjQgMjk0LjUgMzM4LjQgOTYuM2g1My44TDIyNCAzODQuNSA1NS43IDk2LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdhdGNobWFuTW9uaXRvcmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYsMTZDMTIzLjQ1MiwxNiwxNiwxMjMuNDUyLDE2LDI1NlMxMjMuNDUyLDQ5NiwyNTYsNDk2LDQ5NiwzODguNTQ4LDQ5NiwyNTYsMzg4LjU0OCwxNiwyNTYsMTZaTTEyMS42OSw0MjkuMTIyQzcwLjA1NiwzODguOTcyLDM2Ljc0MSwzMjYuMzIyLDM2Ljc0MSwyNTZhMjE4LjUxOSwyMTguNTE5LDAsMCwxLDkuNTg3LTY0LjEyMmwxMDIuOS0xNy44OTUtLjEyMSwxMC45NjctMTMuOTQzLDIuMDEzcy0uMTQ0LDEyLjUtLjE0NCwxOS41NDlhMTIuNzc4LDEyLjc3OCwwLDAsMCw0Ljg4NywxMC4zNDlsOS40NjgsNy40Wm0xMDUuNjkyLTI4My4yNyw4LjQ4LTcuNjE4czYuOTM0LTUuMzgtLjE0My05LjM0NGMtNy4xODgtNC4wMjQtMzkuNTMtMzQuNS0zOS41My0zNC41LTUuMzQ4LTUuNDc3LTguMjU3LTcuMzQ3LTE1LjQ2LDAsMCwwLTMyLjM0MiwzMC40NzQtMzkuNTI5LDM0LjUtNy4wNzgsMy45NjQtLjE0NCw5LjM0NC0uMTQ0LDkuMzQ0bDguNDgxLDcuNjE4LS4wNDgsNC4zNjlMNzUuOTgyLDEzMS4wNDVjMzkuNjQ0LTU2LjkzOCwxMDUuNTMyLTk0LjMsMTgwLjAxOC05NC4zQTIxOC43NTQsMjE4Ljc1NCwwLDAsMSw0MjAuOTM0LDExMS43N2wtMTkzLjUxMiwzNy43Wm0zNC4wNjMsMzI5LjI2OS0zMy45LTI1MC44NTcsOS40NjctNy40YTEyLjc3OCwxMi43NzgsMCwwLDAsNC44ODgtMTAuMzQ5YzAtNy4wNDQtLjE0NC0xOS41NDktLjE0NC0xOS41NDlsLTEzLjk0My0yLjAxMy0uMTE2LTEwLjQ3NCwyNDEuNzExLDMxLjM5MUEyMTguODcyLDIxOC44NzIsMCwwLDEsNDc1LjI1OSwyNTZDNDc1LjI1OSwzNzUuMDc0LDM3OS44MzEsNDcyLjIxMiwyNjEuNDQ1LDQ3NS4xMjFaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdhemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAyLjE3IDIwMS42N0M1MTYuNjkgMjg3LjUzIDQ3MS4yMyAzNjkuNTkgMzg5IDQwOS44YzEzIDM0LjEtMTIuNCA3MC4yLTQ4LjMyIDcwLjJhNTEuNjggNTEuNjggMCAwIDEtNTEuNTctNDljLTYuNDQuMTktNjQuMiAwLTc2LjMzLS42NEE1MS42OSA1MS42OSAwIDAgMSAxNTkgNDc5LjkyYy0zMy44Ni0xLjM2LTU3Ljk1LTM0Ljg0LTQ3LTY3LjkyLTM3LjIxLTEzLjExLTcyLjU0LTM0Ljg3LTk5LjYyLTcwLjgtMTMtMTcuMjgtLjQ4LTQxLjggMjAuODQtNDEuOCA0Ni4zMSAwIDMyLjIyLTU0LjE3IDQzLjE1LTExMC4yNkM5NC44IDk1LjIgMTkzLjEyIDMyIDI4OC4wOSAzMmMxMDIuNDggMCAxOTcuMTUgNzAuNjcgMjE0LjA4IDE2OS42N3pNMzczLjUxIDM4OC4yOGM0Mi0xOS4xOCA4MS4zMy01Ni43MSA5Ni4yOS0xMDIuMTQgNDAuNDgtMTIzLjA5LTY0LjE1LTIyOC0xODEuNzEtMjI4LTgzLjQ1IDAtMTcwLjMyIDU1LjQyLTE4Ni4wNyAxMzYtOS41MyA0OC45MSA1IDEzMS4zNS02OC43NSAxMzEuMzVDNTguMjEgMzU4LjYgOTEuNiAzNzguMTEgMTI3IDM4OS41NGMyNC42Ni0yMS44IDYzLjg3LTE1LjQ3IDc5LjgzIDE0LjM0IDE0LjIyIDEgNzkuMTkgMS4xOCA4Ny45LjgyYTUxLjY5IDUxLjY5IDAgMCAxIDc4Ljc4LTE2LjQyek0yMDUuMTIgMTg3LjEzYzAtMzQuNzQgNTAuODQtMzQuNzUgNTAuODQgMHMtNTAuODQgMzQuNzQtNTAuODQgMHptMTE2LjU3IDBjMC0zNC43NCA1MC44Ni0zNC43NSA1MC44NiAwcy01MC44NiAzNC43NS01MC44NiAwem0tMTIyLjYxIDcwLjY5Yy0zLjQ0LTE2Ljk0IDIyLjE4LTIyLjE4IDI1LjYyLTUuMjFsLjA2LjI4YzQuMTQgMjEuNDIgMjkuODUgNDQgNjQuMTIgNDMuMDcgMzUuNjgtLjk0IDU5LjI1LTIyLjIxIDY0LjExLTQyLjc3IDQuNDYtMTYuMDUgMjguNi0xMC4zNiAyNS40NyA2LTUuMjMgMjIuMTgtMzEuMjEgNjItOTEuNDYgNjIuOS00Mi41NSAwLTgwLjg4LTI3Ljg0LTg3LjktNjQuMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdlYkF3ZXNvbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzcyLjIgNTJjMCAyMC45LTEyLjQgMzktMzAuMiA0Ny4yTDQ0OCAxOTJsMTA0LjQtMjAuOWMtNS4zLTcuNy04LjQtMTcuMS04LjQtMjcuMWMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4YzAgMjYtMjAuNiA0Ny4xLTQ2LjQgNDhMNDgxIDQ0Mi4zYy0xMC4zIDIzLTMzLjIgMzcuNy01OC40IDM3LjdsLTIwNS4yIDBjLTI1LjIgMC00OC0xNC44LTU4LjQtMzcuN0w0Ni40IDE5MkMyMC42IDE5MS4xIDAgMTcwIDAgMTQ0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhjMCAxMC4xLTMuMSAxOS40LTguNCAyNy4xTDE5MiAxOTIgMjk4LjEgOTkuMWMtMTcuNy04LjMtMzAtMjYuMy0zMC00Ny4xYzAtMjguNyAyMy4zLTUyIDUyLTUyczUyIDIzLjMgNTIgNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdlYmZsb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQwIDY0TDQzNS44IDQ2My4ySDI0NGw4NS41LTE2NS41aC0zLjhDMjU1LjEgMzg5LjMgMTQ5LjkgNDQ5LjUgMCA0NjMuMlYzMDAuMXM5NS45LTUuNyAxNTIuMy02NC45SDBWNjRIMTcxLjFWMjA0LjhsMy44IDBMMjQ0LjkgNjRIMzc0LjNWMjAzLjlsMy44IDBMNDUwLjcgNjRINjQwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXZWVibHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDI1LjA5IDY1LjgzYy0zOS44OCAwLTczLjI4IDI1LjczLTgzLjY2IDY0LjMzLTE4LjE2LTU4LjA2LTY1LjUtNjQuMzMtODQuOTUtNjQuMzMtMTkuNzggMC02Ni44IDYuMjgtODUuMjggNjQuMzMtMTAuMzgtMzguNi00My40NS02NC4zMy04My42Ni02NC4zM0MzOC41OSA2NS44MyAwIDk5LjcyIDAgMTQzLjAzYzAgMjguOTYgNC4xOCAzMy4yNyA3Ny4xNyAyMzMuNDggMjIuMzcgNjAuNTcgNjcuNzcgNjkuMzUgOTIuNzQgNjkuMzUgMzkuMjMgMCA3MC4wNC0xOS40NiA4NS45My01My45OCAxNS44OSAzNC44MyA0Ni42OSA1NC4yOSA4NS45MyA1NC4yOSAyNC45NyAwIDcwLjM2LTkuMSA5Mi43NC02OS42NyA3Ni41NS0yMDguNjUgNzcuNS0yMDUuNTggNzcuNS0yMjcuMi42My00OC4zMi0zNi4wMS04My40Ny04Ni45Mi04My40N3ptMjYuMzQgMTE0LjgxbC02NS41NyAxNzYuNDRjLTcuOTIgMjEuNDktMjEuMjIgMzcuMjItNDYuMjQgMzcuMjItMjMuNDQgMC0zNy4zOC0xMi40MS00NC4wMy0zMy45bC0zOS4yOC0xMTcuNDJoLS45NUwyMTYuMDggMzYwLjRjLTYuOTYgMjEuNS0yMC45IDMzLjYtNDQuMDIgMzMuNi0yNS4wMiAwLTM4LjMzLTE1Ljc0LTQ2LjI0LTM3LjIyTDYwLjg4IDE4MS41NWMtNS4zOC0xNC44My03LjkyLTIzLjkxLTcuOTItMzQuNSAwLTE2LjM0IDE1Ljg0LTI5LjM2IDM4LjMzLTI5LjM2IDE4LjY5IDAgMzEuOTkgMTEuOCAzNi4xMSAyOS4wNWw0NC4wMyAxMzkuODJoLjk1bDQ0LjY2LTEzNi43OWM2LjAyLTE5LjY3IDE2LjQ3LTMyLjA4IDM4Ljk2LTMyLjA4czMyLjk0IDEyLjExIDM4Ljk2IDMyLjA4bDQ0LjY2IDEzNi43OWguOTVsNDQuMDMtMTM5LjgyYzQuMTItMTcuMjUgMTcuNDItMjkuMDUgMzYuMTEtMjkuMDUgMjIuMTcgMCAzOC4zMyAxMy4zMiAzOC4zMyAzNS43MS0uMzIgNy44Ny00LjEyIDE2LjA0LTcuNjEgMjcuMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdlaWJvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwNyAxNzcuNmM3LjYtMjQtMTMuNC00Ni44LTM3LjQtNDEuNy0yMiA0LjgtMjguOC0yOC4xLTcuMS0zMi44IDUwLjEtMTAuOSA5Mi4zIDM3LjEgNzYuNSA4NC44LTYuOCAyMS4yLTM4LjggMTAuOC0zMi0xMC4zek0yMTQuOCA0NDYuN0MxMDguNSA0NDYuNyAwIDM5NS4zIDAgMzEwLjRjMC00NC4zIDI4LTk1LjQgNzYuMy0xNDMuN0MxNzYgNjcgMjc5LjUgNjUuOCAyNDkuOSAxNjFjLTQgMTMuMSAxMi4zIDUuNyAxMi4zIDYgNzkuNS0zMy42IDE0MC41LTE2LjggMTE0IDUxLjQtMy43IDkuNCAxLjEgMTAuOSA4LjMgMTMuMSAxMzUuNyA0Mi4zIDM0LjggMjE1LjItMTY5LjcgMjE1LjJ6bTE0My43LTE0Ni4zYy01LjQtNTUuNy03OC41LTk0LTE2My40LTg1LjctODQuOCA4LjYtMTQ4LjggNjAuMy0xNDMuNCAxMTZzNzguNSA5NCAxNjMuNCA4NS43Yzg0LjgtOC42IDE0OC44LTYwLjMgMTQzLjQtMTE2ek0zNDcuOSAzNS4xYy0yNS45IDUuNi0xNi44IDQzLjcgOC4zIDM4LjMgNzIuMy0xNS4yIDEzNC44IDUyLjggMTExLjcgMTI0LTcuNCAyNC4yIDI5LjEgMzcgMzcuNCAxMiAzMS45LTk5LjgtNTUuMS0xOTUuOS0xNTcuNC0xNzQuM3ptLTc4LjUgMzExYy0xNy4xIDM4LjgtNjYuOCA2MC0xMDkuMSA0Ni4zLTQwLjgtMTMuMS01OC01My40LTQwLjMtODkuNyAxNy43LTM1LjQgNjMuMS01NS40IDEwMy40LTQ1LjEgNDIgMTAuOCA2My4xIDUwLjIgNDYgODguNXptLTg2LjMtMzBjLTEyLjktNS40LTMwIC4zLTM4IDEyLjktOC4zIDEyLjktNC4zIDI4IDguNiAzNCAxMy4xIDYgMzAuOC4zIDM5LjEtMTIuOSA4LTEzLjEgMy43LTI4LjMtOS43LTM0em0zMi42LTEzLjRjLTUuMS0xLjctMTEuNC42LTE0LjMgNS40LTIuOSA1LjEtMS40IDEwLjYgMy43IDEyLjkgNS4xIDIgMTEuNy0uMyAxNC42LTUuNCAyLjgtNS4yIDEuMS0xMC45LTQtMTIuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2VpeGluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NS4yIDE2Ny42YzYuNCAwIDEyLjYuMyAxOC44IDEuMUMzODcuNCA5MC4zIDMwMy4zIDMyIDIwNy43IDMyIDEwMC41IDMyIDEzIDEwNC44IDEzIDE5Ny40YzAgNTMuNCAyOS4zIDk3LjUgNzcuOSAxMzEuNmwtMTkuMyA1OC42IDY4LTM0LjFjMjQuNCA0LjggNDMuOCA5LjcgNjguMiA5LjcgNi4yIDAgMTIuMS0uMyAxOC4zLS44LTQtMTIuOS02LjItMjYuNi02LjItNDAuOC0uMS04NC45IDcyLjktMTU0IDE2NS4zLTE1NHptLTEwNC41LTUyLjljMTQuNSAwIDI0LjIgOS43IDI0LjIgMjQuNCAwIDE0LjUtOS43IDI0LjItMjQuMiAyNC4yLTE0LjggMC0yOS4zLTkuNy0yOS4zLTI0LjIuMS0xNC43IDE0LjYtMjQuNCAyOS4zLTI0LjR6bS0xMzYuNCA0OC42Yy0xNC41IDAtMjkuMy05LjctMjkuMy0yNC4yIDAtMTQuOCAxNC44LTI0LjQgMjkuMy0yNC40IDE0LjggMCAyNC40IDkuNyAyNC40IDI0LjQgMCAxNC42LTkuNiAyNC4yLTI0LjQgMjQuMnpNNTYzIDMxOS40YzAtNzcuOS03Ny45LTE0MS4zLTE2NS40LTE0MS4zLTkyLjcgMC0xNjUuNCA2My40LTE2NS40IDE0MS4zUzMwNSA0NjAuNyAzOTcuNiA0NjAuN2MxOS4zIDAgMzguOS01LjEgNTguNi05LjlsNTMuNCAyOS4zLTE0LjgtNDguNkM1MzQgNDAyLjEgNTYzIDM2My4yIDU2MyAzMTkuNHptLTIxOS4xLTI0LjVjLTkuNyAwLTE5LjMtOS43LTE5LjMtMTkuNiAwLTkuNyA5LjctMTkuMyAxOS4zLTE5LjMgMTQuOCAwIDI0LjQgOS43IDI0LjQgMTkuMyAwIDEwLTkuNyAxOS42LTI0LjQgMTkuNnptMTA3LjEgMGMtOS43IDAtMTkuMy05LjctMTkuMy0xOS42IDAtOS43IDkuNy0xOS4zIDE5LjMtMTkuMyAxNC41IDAgMjQuNCA5LjcgMjQuNCAxOS4zLjEgMTAtOS45IDE5LjYtMjQuNCAxOS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaGF0c2FwcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODAuOSA5Ny4xQzMzOSA1NS4xIDI4My4yIDMyIDIyMy45IDMyYy0xMjIuNCAwLTIyMiA5OS42LTIyMiAyMjIgMCAzOS4xIDEwLjIgNzcuMyAyOS42IDExMUwwIDQ4MGwxMTcuNy0zMC45YzMyLjQgMTcuNyA2OC45IDI3IDEwNi4xIDI3aC4xYzEyMi4zIDAgMjI0LjEtOTkuNiAyMjQuMS0yMjIgMC01OS4zLTI1LjItMTE1LTY3LjEtMTU3em0tMTU3IDM0MS42Yy0zMy4yIDAtNjUuNy04LjktOTQtMjUuN2wtNi43LTQtNjkuOCAxOC4zTDcyIDM1OS4ybC00LjQtN2MtMTguNS0yOS40LTI4LjItNjMuMy0yOC4yLTk4LjIgMC0xMDEuNyA4Mi44LTE4NC41IDE4NC42LTE4NC41IDQ5LjMgMCA5NS42IDE5LjIgMTMwLjQgNTQuMSAzNC44IDM0LjkgNTYuMiA4MS4yIDU2LjEgMTMwLjUgMCAxMDEuOC04NC45IDE4NC42LTE4Ni42IDE4NC42em0xMDEuMi0xMzguMmMtNS41LTIuOC0zMi44LTE2LjItMzcuOS0xOC01LjEtMS45LTguOC0yLjgtMTIuNSAyLjgtMy43IDUuNi0xNC4zIDE4LTE3LjYgMjEuOC0zLjIgMy43LTYuNSA0LjItMTIgMS40LTMyLjYtMTYuMy01NC0yOS4xLTc1LjUtNjYtNS43LTkuOCA1LjctOS4xIDE2LjMtMzAuMyAxLjgtMy43LjktNi45LS41LTkuNy0xLjQtMi44LTEyLjUtMzAuMS0xNy4xLTQxLjItNC41LTEwLjgtOS4xLTkuMy0xMi41LTkuNS0zLjItLjItNi45LS4yLTEwLjYtLjItMy43IDAtOS43IDEuNC0xNC44IDYuOS01LjEgNS42LTE5LjQgMTktMTkuNCA0Ni4zIDAgMjcuMyAxOS45IDUzLjcgMjIuNiA1Ny40IDIuOCAzLjcgMzkuMSA1OS43IDk0LjggODMuOCAzNS4yIDE1LjIgNDkgMTYuNSA2Ni42IDEzLjkgMTAuNy0xLjYgMzIuOC0xMy40IDM3LjQtMjYuNCA0LjYtMTMgNC42LTI0LjEgMy4yLTI2LjQtMS4zLTIuNS01LTMuOS0xMC41LTYuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2htY3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDE2MXYtMjEuM2wtMjguNS04LjgtMi4yLTEwLjQgMjAuMS0yMC43TDQyNyA4MC40bC0yOSA3LjUtNy4yLTcuNSA3LjUtMjguMi0xOS4xLTExLjYtMjEuMyAyMS0xMC43LTMuMi03LTI2LjRoLTIyLjZsLTYuMiAyNi40LTEyLjEgMy4yLTE5LjctMjEtMTkuNCAxMSA4LjEgMjcuNy04LjEgOC40LTI4LjUtNy41LTExIDE5LjEgMjAuNyAyMS0yLjkgMTAuNC0yOC41IDcuOC0uMyAyMS43IDI4LjggNy41IDIuNCAxMi4xLTIwLjEgMTkuOSAxMC40IDE4LjUgMjkuNi03LjUgNy4yIDguNi04LjEgMjYuOSAxOS45IDExLjYgMTkuNC0yMC40IDExLjYgMi45IDYuNyAyOC41IDIyLjYuMyA2LjctMjguOCAxMS42LTMuNSAyMC43IDIxLjYgMjAuNC0xMi4xLTguOC0yOCA3LjgtOC4xIDI4LjggOC44IDEwLjMtMjAuMS0yMC45LTE4LjggMi4yLTEyLjEgMjkuMS03em0tMTE5LjIgNDUuMmMtMzEuMyAwLTU2LjgtMjUuNC01Ni44LTU2LjhzMjUuNC01Ni44IDU2LjgtNTYuOCA1Ni44IDI1LjQgNTYuOCA1Ni44YzAgMzEuNS0yNS40IDU2LjgtNTYuOCA1Ni44em03Mi4zIDE2LjRsNDYuOSAxNC41VjI3N2wtNTUuMSAxMy40LTQuMSAyMi43IDM4LjkgMzUuMy0xOS4yIDM3LjktNTQtMTYuNy0xNC42IDE1LjIgMTYuNyA1Mi41LTM4LjMgMjIuNy0zOC45LTQwLjUtMjEuNyA2LjYtMTIuNiA1NC00Mi40LS41LTEyLjYtNTMuNi0yMS43LTUuNi0zNi40IDM4LjQtMzcuNC0yMS43IDE1LjItNTAuNS0xMy43LTE2LjEtNTUuNSAxNC4xLTE5LjctMzQuOCAzNy45LTM3LjQtNC44LTIyLjgtNTQtMTQuMS41LTQwLjlMNTQgMjE5LjlsNS43LTE5LjctMzguOS0zOS40TDQxLjUgMTI1bDUzLjYgMTQuMSAxNS4yLTE1LjctMTUuMi01MiAzNi40LTIwLjcgMzYuOCAzOS40TDE5MSA4NGwxMS42LTUySDI0NWwxMS42IDQ1LjlMMjM0IDcybC02LjMtMS43LTMuMyA1LjctMTEgMTkuMS0zLjMgNS42IDQuNiA0LjYgMTcuMiAxNy40LS4zIDEtMjMuOCA2LjUtNi4yIDEuNy0uMSA2LjQtLjIgMTIuOUMxNTMuOCAxNjEuNiAxMTggMjA0IDExOCAyNTQuN2MwIDU4LjMgNDcuMyAxMDUuNyAxMDUuNyAxMDUuNyA1MC41IDAgOTIuNy0zNS40IDEwMy4yLTgyLjhsMTMuMi4yIDYuOS4xIDEuNi02LjcgNS42LTI0IDEuOS0uNiAxNy4xIDE3LjggNC43IDQuOSA1LjgtMy40IDIwLjQtMTIuMSA1LjgtMy41LTItNi41LTYuOC0yMS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaWtpcGVkaWFXIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MCA1MS4ybC0uMyAxMi4yYy0yOC4xLjgtNDUgMTUuOC01NS44IDQwLjMtMjUgNTcuOC0xMDMuMyAyNDAtMTU1LjMgMzU4LjZINDE1bC04MS45LTE5My4xYy0zMi41IDYzLjYtNjguMyAxMzAtOTkuMiAxOTMuMS0uMy4zLTE1IDAtMTUtLjNDMTcyIDM1Mi4zIDEyMi44IDI0My40IDc1LjggMTMzLjQgNjQuNCAxMDYuNyAyNi40IDYzLjQuMiA2My43YzAtMy4xLS4zLTEwLS4zLTE0LjJoMTYxLjl2MTMuOWMtMTkuMiAxLjEtNTIuOCAxMy4zLTQzLjMgMzQuMiAyMS45IDQ5LjcgMTAzLjYgMjQwLjMgMTI1LjYgMjg4LjYgMTUtMjkuNyA1Ny44LTEwOS4yIDc1LjMtMTQyLjgtMTMuOS0yOC4zLTU4LjYtMTMzLjktNzIuOC0xNjAtOS43LTE3LjgtMzYuMS0xOS40LTU1LjgtMTkuN1Y0OS44bDE0Mi41LjN2MTMuMWMtMTkuNC42LTM4LjEgNy44LTI5LjQgMjYuMSAxOC45IDQwIDMwLjYgNjguMSA0OC4xIDEwNC43IDUuNi0xMC44IDM0LjctNjkuNCA0OC4xLTEwMC44IDguOS0yMC42LTMuOS0yOC42LTM4LjYtMjkuNC4zLTMuNiAwLTEwLjMuMy0xMy42IDQ0LjQtLjMgMTExLjEtLjMgMTIzLjEtLjZ2MTMuNmMtMjIuNS44LTQ1LjggMTIuOC01OC4xIDMxLjdsLTU5LjIgMTIyLjhjNi40IDE2LjEgNjMuMyAxNDIuOCA2OS4yIDE1Ni43TDU1OS4yIDkxLjhjLTguNi0yMy4xLTM2LjQtMjguMS00Ny4yLTI4LjNWNDkuNmwxMjcuOCAxLjEuMi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaW5kb3dzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTMuN2wxODMuNi0yNS4zdjE3Ny40SDBWOTMuN3ptMCAzMjQuNmwxODMuNiAyNS4zVjI2OC40SDB2MTQ5Ljl6bTIwMy44IDI4TDQ0OCA0ODBWMjY4LjRIMjAzLjh2MTc3Ljl6bTAtMzgwLjZ2MTgwLjFINDQ4VjMyTDIwMy44IDY1Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdpcnNpbmRoYW5kd2VyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MC43NzE2MSw0NzkuODEyMTNoODMuMzYwNzFWMzY3Ljg0NzQxbC04My4zNjA3MSw0Ny4wMDlabTMyOS4wNDY3NSwwaDgyLjM1MDIyVjQxNC44NTY0NWwtODIuMzUwMjItNDcuMDA5Wm0uMDA1NjgtNDQ4VjI1MS41NjhMMjU2LjE3NTksMTc5LjE4NjEsMTM0LjUwMzc4LDI1MS41NjhWMzEuODEyMTNINTAuNzcxNjFWMzkyLjYwNTY1TDI1Ni4xNzU5LDI3MC4zMTkwOSw0NjIuMTY4NTgsMzkyLjYwNTY1VjMxLjgxMjEzWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzkzLjM4IDEzMS42OWMwIDEzLjAzIDIuMDggMzIuNjktMjguNjggNDMuODMtOS41MiAzLjQ1LTE1Ljk1IDkuNjYtMTUuOTUgOS42NiAwLTMxIDQuNzItNDIuMjIgMTcuNC00OC44NiA5Ljc1LTUuMTEgMjcuMjMtNC42MyAyNy4yMy00LjYzem0tMTE1LjggMzUuNTRsLTM0LjI0IDEzMi42Ni0yOC40OC0xMDguNTdjLTcuNjktMzEuOTktMjAuODEtNDguNTMtNDguNDMtNDguNTMtMjcuMzcgMC00MC42NiAxNi4xOC00OC40MyA0OC41M0w4OS41MiAyOTkuODkgNTUuMjggMTY3LjIzQzQ5LjczIDE0MC41MSAyMy44NiAxMjguOTYgMCAxMzEuOTZsNjUuNTcgMjQ3LjkzczIxLjYzIDEuNTYgMzIuNDYtMy45NmMxNC4yMi03LjI1IDIwLjk4LTEyLjg0IDI5LjU5LTQ2LjU3IDcuNjctMzAuMDcgMjkuMTEtMTE4LjQxIDMxLjEyLTEyNC43IDQuNzYtMTQuOTQgMTEuMDktMTMuODEgMTUuNCAwIDEuOTcgNi4zIDIzLjQ1IDk0LjYzIDMxLjEyIDEyNC43IDguNiAzMy43MyAxNS4zNyAzOS4zMiAyOS41OSA0Ni41NyAxMC44MiA1LjUyIDMyLjQ2IDMuOTYgMzIuNDYgMy45Nmw2NS41Ny0yNDcuOTNjLTI0LjQyLTMuMDctNDkuODIgOC45My01NS4zIDM1LjI3em0xMTUuNzggNS4yMXMtNC4xIDYuMzQtMTMuNDYgMTEuNTdjLTYuMDEgMy4zNi0xMS43OCA1LjY0LTE3Ljk3IDguNjEtMTUuMTQgNy4yNi0xMy4xOCAxMy45NS0xMy4xOCAzNS4ydjE1Mi4wN3MxNi41NSAyLjA5IDI3LjM3LTMuNDNjMTMuOTMtNy4xIDE3LjEzLTEzLjk1IDE3LjI2LTQ0Ljc4VjE4MS40MWwtLjAyLjAxdi04Ljk4em0xNjMuNDQgODQuMDhMNjQwIDEzMi43OHMtMzUuMTEtNS45OC01Mi41IDkuODVjLTEzLjMgMTIuMS0yNC40MSAyOS41NS01NC4xOCA3Mi40Ny0uNDcuNzMtNi4yNSAxMC41NC0xMy4wNyAwLTI5LjI5LTQyLjIzLTQwLjgtNjAuMjktNTQuMTgtNzIuNDctMTcuMzktMTUuODMtNTIuNS05Ljg1LTUyLjUtOS44NWw4My4yIDEyMy43NC04Mi45NyAxMjMuMzZzMzYuNTcgNC42MiA1My45NS0xMS4yMWMxMS40OS0xMC40NiAxNy41OC0yMC4zNyA1Mi41MS03MC43MiA2LjgxLTEwLjUyIDEyLjU3LS43NyAxMy4wNyAwIDI5LjQgNDIuMzggMzkuMjMgNTguMDYgNTMuMTQgNzAuNzIgMTcuMzkgMTUuODMgNTMuMzIgMTEuMjEgNTMuMzIgMTEuMjFMNTU2LjggMjU2LjUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaXphcmRzT2ZUaGVDb2FzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTkuMTkgMzQ1LjY5Yy0xLjkgMS4zOC0xMS4wNyA4LjQ0LS4yNiAyMy41NyA0LjY0IDYuNDIgMTQuMTEgMTIuNzkgMjEuNzMgNi41NSA2LjUtNC44OCA3LjM1LTEyLjkyLjI2LTIzLjA0LTUuNDctNy43Ni0xNC4yOC0xMi44OC0yMS43My03LjA4em0zMzYuNzUgNzUuOTRjLS4zNCAxLjctLjU1IDEuNjcuNzkgMCAyLjA5LTQuMTkgNC4xOS0xMC4yMSA0Ljk4LTE5LjkgMy4xNC0zOC40OS00MC4zMy03MS40OS0xMDEuMzQtNzguMDMtNTQuNzMtNi4wMi0xMjQuMzggOS4xNy0xODguOCA2MC40OWwtLjI2IDEuNTdjMi42MiA0Ljk4IDQuOTggMTAuNzQgMy40IDIxLjIxbC43OS4yNmM2My44OS01OC40IDEzMS4xOS03Ny4yNSAxODQuMzUtNzMuODUgNTguNCAzLjY3IDEwMC4wMyAzNC4wNCAxMDAuMDMgNjguMDgtLjAxIDkuOTYtMi42MyAxNS43Mi0zLjk0IDIwLjE3ek0zOTIuMjggMjQwLjQyYy43OSA3LjA3IDQuMTkgMTAuMjEgOS4xNyAxMC40NyA1LjUuMjYgOS40My0yLjYyIDEwLjQ3LTYuNTUuNzktMy40IDIuMDktMjkuODUgMi4wOS0yOS44NXMtMTEuMjYgNi41NS0xNC45MyAxMC40N2MtMy42NiAzLjY4LTcuMzMgOC4zOS02LjggMTUuNDZ6bS01MC4wMi0xNTEuMUMxMzcuNzUgODkuMzIgMTMuMSAyMjYuOC43OSAyNDEuMmMtMS4wNS41Mi0xLjMxLjc5Ljc5IDEuMzEgNjAuNDkgMTYuNSAxNTUuODEgODEuMTggMTk2LjEzIDIwMi4xNmwxLjA1LjI2YzU1LjI1LTY5LjkyIDE0MC44OC0xMjguMDUgMjM2Ljk5LTEyOC4wNSA4MC45MiAwIDEzMC4xNSA0Mi4xNiAxMzAuMTUgODAuMzkgMCAxOC4zMy02LjU1IDMzLjUyLTIyLjI2IDQ2LjM1IDAgLjk2LS4yLjc5Ljc5Ljc5IDE0LjY2LTEwLjc0IDI3LjUtMjguOCAyNy41LTQ4LjE4IDAtMjIuNzgtMTIuMDUtMzguMjMtMTIuMDUtMzguMjMgNy4wNyA3LjA3IDEwLjc0IDE2LjI0IDEwLjc0IDE2LjI0IDUuNzYtNDAuODUgMjYuOTctNjIuMzIgMjYuOTctNjIuMzItMi4zNi05LjY5LTYuODEtMTcuODEtNi44MS0xNy44MSA3LjU5IDguMTIgMTQuNCAyNy41IDE0LjQgNDEuMzcgMCAxMC40Ny0zLjQgMjIuNzgtMTIuNTcgMzEuOTVsLjI2LjUyYzguMTItNC45OCAxNi41LTE2Ljc2IDE2LjUtMzcuOTcgMC0xNS43MS00LjcxLTI1LjkyLTQuNzEtMjUuOTIgNS43Ni01LjI0IDExLjI2LTkuMTcgMTUuOTctMTEuNzguNzkgMy40IDIuMDkgOS42OSAyLjM2IDE0LjkzIDAgMS4wNS43OSAxLjgzIDEuMDUgMCAuNzktNS43Ni0uMjYtMTYuMjQtLjI2LTE2LjUgNi4wMi0zLjE0IDkuNjktNC40NSA5LjY5LTQuNDVDNjE3Ljc0IDE3NiA0ODkuNDMgODkuMzIgMzQyLjI2IDg5LjMyem0tOTkuMjQgMjg5LjYyYy0xMS4wNiA4Ljk5LTI0LjIgNC4wOC0zMC42NC00LjE5LTcuNDUtOS41OC02Ljc2LTI0LjA5IDQuMTktMzIuNDcgMTQuODUtMTEuMzUgMjcuMDgtLjQ5IDMxLjE2IDUuNS4yOC4zOSAxMi4xMyAxNi41Ny00LjcxIDMxLjE2em0yLjA5LTEzNi40M2w5LjQzLTE3LjgxIDExLjc4IDcwLjk2LTEyLjU3IDYuMDItMjQuNjItMjguOCAxNC4xNC0yNi43MSAzLjY3IDQuNDUtMS44My04LjExem0xOC41OSAxMTcuNThsLS4yNi0uMjZjMi4wNS00LjEtMi41LTYuNjEtMTcuNTQtMzEuNjktMS4zMS0yLjM2LTMuMTQtMi44OC00LjQ1LTIuNjJsLS4yNi0uNTJjNy44Ni01Ljc2IDE1LjQ1LTEwLjIxIDI1LjQtMTUuNzFsLjUyLjI2YzEuMzEgMS44MyAyLjA5IDIuODggMy40IDQuNzFsLS4yNi41MmMtMS4wNS0uMjYtMi4zNi0uNzktNS4yNC4yNi0yLjA5Ljc5LTcuODYgMy42Ny0xMi4zMSA3LjU5djEuMzFjMS41NyAyLjM2IDMuOTMgNi41NSA1Ljc2IDkuNjloLjI2YzEwLjA1LTYuMjggNy41Ni00LjU1IDExLjUyLTcuODZoLjI2Yy41MiAxLjgzLjUyIDEuODMgMS44MyA1LjVsLS4yNi4yNmMtMy4wNi42MS00LjY1LjM0LTExLjUyIDUuNXYuMjZjOS40NiAxNy4wMiAxMS4wMSAxNi43NSAxMi41NyAxNS45N2wuMjYuMjZjLTIuMzQgMS41OS02LjI3IDQuMjEtOS42OCA2LjU3em01NS4yNi0zMi40N2MtMy4xNCAxLjU3LTYuMDIgMi44OC05Ljk1IDQuOThsLS4yNi0uMjZjMS4yOS0yLjU5IDEuMTYtMi43MS0xMS43OC0zMi40N2wtLjI2LS4yNmMtLjE1IDAtOC45IDMuNjUtOS45NSA3LjMzaC0uNTJsLTEuMDUtNS43Ni4yNi0uNTJjNy4yOS00LjU2IDI1LjUzLTExLjY0IDI3Ljc2LTEyLjU3bC41Mi4yNiAzLjE0IDQuOTgtLjI2LjUyYy0zLjUzLTEuNzYtNy4zNS43Ni0xMi4zMSAyLjYydi4yNmMxMi4zMSAzMi4wMSAxMi42NyAzMC42NCAxNC42NiAzMC42NHYuMjV6bTQ0Ljc3LTE2LjVjLTQuMTkgMS4wNS01LjI0IDEuMzEtOS42OSAyLjg4bC0uMjYtLjI2LjUyLTQuNDVjLTEuMDUtMy40LTMuMTQtMTEuNTItMy42Ny0xMy42MmwtLjI2LS4yNmMtMy40Ljc5LTguOSAyLjYyLTEyLjgzIDMuOTNsLS4yNi4yNmMuNzkgMi42MiAzLjE0IDkuOTUgNC4xOSAxMy44OC43OSAyLjM2IDEuODMgMi44OCAyLjg4IDMuMTR2LjUyYy0zLjY3IDEuMDUtNy4wNyAyLjYyLTEwLjIxIDMuOTNsLS4yNi0uMjZjMS4wNS0xLjMxIDEuMDUtMi44OC4yNi00Ljk4LTEuMDUtMy4xNC04LjEyLTIzLjgzLTkuMTctMjcuMjMtLjUyLTEuODMtMS41Ny0zLjE0LTIuNjItMy4xNHYtLjUyYzMuMTQtMS4wNSA2LjAyLTIuMDkgMTAuNzQtMy40bC4yNi4yNi0uMjYgNC43MWMxLjMxIDMuOTMgMi4zNiA3LjU5IDMuMTQgOS42OWguMjZjMy45My0xLjMxIDkuNDMtMi44OCAxMi44My0zLjkzbC4yNi0uMjYtMi42Mi05LjQzYy0uNTItMS44My0xLjA1LTMuNC0yLjYyLTMuOTN2LS4yNmM0LjQ1LTEuMDUgNy4zMy0xLjgzIDEwLjc0LTIuMzZsLjI2LjI2Yy0xLjA1IDEuMzEtMS4wNSAyLjg4LS41MiA0LjQ1IDEuNTcgNi4yOCA0LjcxIDIwLjQzIDYuMjggMjYuNDUuNTQgMi42MiAxLjg1IDMuNDEgMi42MyAzLjkzem0zMi4yMS02LjgxbC0uMjYuMjZjLTQuNzEuNTItMTQuMTQgMi4zNi0yMi41MiA0LjE5bC0uMjYtLjI2Ljc5LTQuMTljLTEuNTctNy44Ni0zLjQtMTguNTktNC45OC0yNi4xOS0uMjYtMS44My0uNzktMi44OC0yLjYyLTMuNjdsLjc5LS41MmM5LjE3LTEuNTcgMjAuMTYtMi4zNiAyNC44OC0yLjYybC4yNi4yNmMuNTIgMi4zNi43OSAzLjE0IDEuNTcgNS41bC0uMjYuMjZjLTEuMTQtMS4xNC0zLjM0LTMuMi0xNi4yNC0uNzlsLS4yNi4yNmMuMjYgMS41NyAxLjA1IDYuNTUgMS41NyA5Ljk1bC4yNi4yNmM5LjUyLTEuNjggNC43Ni0uMDYgMTAuNzQtMi4zNmguMjZjMCAxLjU3LS4yNiAxLjgzLS4yNiA1LjI0aC0uMjZjLTQuODEtMS4wMy0yLjE1LS45LTEwLjIxIDBsLS4yNi4yNmMuMjYgMi4wOSAxLjU3IDkuNDMgMi4wOSAxMi41N2wuMjYuMjZjMS4xNS4zOCAxNC4yMS0uNjUgMTYuMjQtNC43MWguMjZjLS41MyAyLjM4LTEuMDUgNC4yMS0xLjU4IDYuMDR6bTEwLjc0LTQ0LjUxYy00LjQ1IDIuMzYtOC4xMiAyLjg4LTExIDIuODgtLjI1LjAyLTExLjQxIDEuMDktMTcuNTQtOS45NS02Ljc0LTEwLjc5LS45OC0yNS4yIDUuNS0zMS42OSA4LjgtOC4xMiAyMy4zNS0xMC4xIDI4LjU0LTE3LjAyIDguMDMtMTAuMzMtMTMuMDQtMjIuMzEtMjkuNTktNS43NmwtMi42Mi0yLjg4IDUuMjQtMTYuMjRjMjUuNTktMS41NyA0NS4yLTMuMDQgNTAuMDIgMTYuMjQuNzkgMy4xNCAwIDkuNDMtLjI2IDEyLjA1IDAgMi42Mi0xLjgzIDE4Ljg1LTIuMDkgMjMuMDQtLjUyIDQuMTktLjc5IDE4LjMzLS43OSAyMC42OS4yNiAyLjM2LjUyIDQuMTkgMS41NyA1LjUgMS41NyAxLjgzIDUuNzYgMS44MyA1Ljc2IDEuODNsLS43OSA0LjcxYy0xMS44Mi0xLjA3LTEwLjI4LS41OS0yMC40My0xLjA1LTMuMjItNS4xNS0yLjIzLTMuMjgtNC4xOS03Ljg2IDAgLjAxLTQuMTkgMy45NC03LjMzIDUuNTF6bTM3LjE4IDIxLjIxYy02LjM1LTEwLjU4LTE5LjgyLTcuMTYtMjEuNzMgNS41LTIuNjMgMTcuMDggMTQuMyAxOS43OSAyMC42OSAxMC4yMWwuMjYuMjZjLS41MiAxLjgzLTEuODMgNi4wMi0xLjgzIDYuMjhsLS41Mi41MmMtMTAuMyA2Ljg3LTI4LjUtMi41LTI1LjY2LTE4LjU5IDEuOTQtMTAuODcgMTQuNDQtMTguOTMgMjguOC05Ljk1bC4yNi41MmMwIDEuMDYtLjI3IDMuNDEtLjI3IDUuMjV6bTUuNzctODcuNzN2LTYuNTVjLjY5IDAgMTkuNjUgMy4yOCAyNy43NiA3LjMzbC0xLjU3IDE3LjU0czEwLjIxLTkuNDMgMTUuNDUtMTAuNzRjNS4yNC0xLjU3IDE0LjkzIDcuMzMgMTQuOTMgNy4zM2wtMTEuMjYgMTEuMjZjLTEyLjA3LTYuMzUtMTkuNTktLjA4LTIwLjY5Ljc5LTUuMjkgMzguNzItOC42IDQyLjE3IDQuNDUgNDYuMDlsLS41MiA0LjcxYy0xNy41NS00LjI5LTE4LjUzLTQuNS0zNi45Mi03LjMzbC43OS00LjcxYzcuMjUgMCA3LjQ4LTUuMzIgNy41OS02LjgxIDAgMCA0Ljk4LTUzLjE2IDQuOTgtNTUuMjUtLjAyLTIuODctNC45OS0zLjY2LTQuOTktMy42NnptMTAuOTkgMTE0LjQ0Yy04LjEyLTIuMDktMTQuMTQtMTEtMTAuNzQtMjAuNjkgMy4xNC05LjQzIDEyLjMxLTEyLjMxIDE4Ljg1LTEwLjIxIDkuMTcgMi42MiAxMi44MyAxMS43OCAxMC43NCAxOS4zOC0yLjYxIDguOS05LjQyIDEzLjg3LTE4Ljg1IDExLjUyem00Mi4xNiA5LjY5Yy0yLjM2LS41Mi03LjA3LTIuMzYtOC42NC0yLjg4di0uMjZsMS41Ny0xLjgzYy41OS04LjI0LjU5LTcuMjcuMjYtNy41OS00LjgyLTEuODEtNi42Ni0yLjM2LTcuMDctMi4zNi0xLjMxIDEuODMtMi44OCA0LjQ1LTMuNjcgNS41bC0uNzkgMy40di4yNmMtMS4zMS0uMjYtMy45My0xLjMxLTYuMDItMS41N3YtLjI2bDIuNjItMS44M2MzLjQtNC43MSA5Ljk1LTE0LjE0IDEzLjg4LTIwLjE2di0yLjA5bC41Mi0uMjZjMi4wOS43OSA1LjUgMi4wOSA3LjU5IDIuODguNDguNDguMTgtMS44Ny0xLjA1IDI1LjE0LS4yNCAxLjgxLjAyIDIuNi44IDMuOTF6bS00LjcxLTg5LjgyYzExLjI1LTE4LjI3IDMwLjc2LTE2LjE5IDM0LjA0LTMuNEw1MzkuNyAxOThjMi4zNC02LjI1LTIuODItOS45LTQuNDUtMTEuMjZsMS44My0zLjY3YzEyLjIyIDEwLjM3IDE2LjM4IDEzLjk3IDIyLjUyIDIwLjQzLTI1LjkxIDczLjA3LTMwLjc2IDgwLjgxLTI0LjYyIDg0LjMybC0xLjgzIDQuNDVjLTYuMzctMy4zNS04LjktNC40Mi0xNy44MS04LjY0bDIuMDktNi44MWMtLjI2LS4yNi0zLjkzIDMuOTMtOS42OSAzLjY3LTE5LjA2LTEuMy0yMi44OS0zMS43NS05LjY3LTUyLjl6bTI5LjMzIDc5LjM0YzAtNS43MS02LjM0LTcuODktNy44Ni01LjI0LTEuMzEgMi4wOSAxLjA1IDQuOTggMi44OCA4LjM4IDEuNTcgMi42MiAyLjYyIDYuMjggMS4wNSA5LjQzLTIuNjQgNi4zNC0xMi40IDUuMzEtMTUuNDUtLjc5IDAtLjctLjI3LjA5IDEuODMtNC43MWwuNzktLjI2Yy0uNTcgNS42NiA2LjA2IDkuNjEgOC4zOCA0Ljk4IDEuMDUtMi4wOS0uNTItNS41LTIuMDktOC4zOC0xLjU3LTIuNjItMy42Ny02LjI4LTEuODMtOS42OSAyLjcyLTUuMDYgMTEuMjUtNC40NyAxNC42NiAyLjM2di41MmwtMi4zNiAzLjR6bTIxLjIxIDEzLjM2Yy0xLjk2LTMuMjctLjkxLTIuMTQtNC40NS00LjcxaC0uMjZjLTIuMzYgNC4xOS01Ljc2IDEwLjQ3LTguNjQgMTYuMjQtMS4zMSAyLjM2LTEuMDUgMy40LS43OSAzLjkzbC0uMjYuMjYtNS43Ni00LjQ1LjI2LS4yNiAyLjA5LTEuMzFjMy4xNC01Ljc2IDYuNTUtMTIuMDUgOS4xNy0xNy4wMnYtLjI2Yy0yLjY0LTEuOTgtMS4yMi0xLjUxLTYuMDItMS44M3YtLjI2bDMuMTQtMy40aC4yNmMzLjY3IDIuMzYgOS45NSA2LjgxIDEyLjMxIDguOWwuMjYuMjYtMS4zMSAzLjkxem0yNy4yMy00NC4yNmwtMi44OC0yLjg4Yy43OS0yLjM2IDEuODMtNC45OCAyLjA5LTcuNTkuNzUtOS43NC0xMS41Mi0xMS44NC0xMS41Mi00Ljk4IDAgNC45OCA3Ljg2IDE5LjM4IDcuODYgMjcuNzYgMCAxMC4yMS01Ljc2IDE1LjcxLTEzLjg4IDE2LjUtOC4zOC43OS0yMC4xNi0xMC40Ny0yMC4xNi0xMC40N2w0Ljk4LTE0LjQgMi44OCAyLjA5Yy0yLjk3IDE3LjggMTcuNjggMjAuMzcgMTMuMzUgNS4yNC0xLjA2LTQuMDItMTguNzUtMzQuMiAyLjA5LTM4LjIzIDEzLjYyLTIuMzYgMjMuMDQgMTYuNSAyMy4wNCAxNi41bC03Ljg1IDEwLjQ2em0zNS42Mi0xMC4yMWMtMTEtMzAuMzgtNjAuNDktMTI3LjUzLTE5MS45NS0xMjkuNjItNTMuNDItMS4wNS05NC4yNyAxNS40NS0xMzIuNzYgMzcuOTdsODUuNjMtOS4xNy05MS4zOSAyMC42OSAyNS4xNCAxOS42NC0zLjkzLTE2LjVjNy41LTEuNzEgMzkuMTUtOC40NSA2Ni43Ny04LjlsLTIyLjI2IDgwLjM5YzEzLjYxLS43IDE4Ljk3LTguOTggMTkuNjQtMjIuNzhsNC45OC0xLjA1LjI2IDI2LjcxYy0yMi40NiAzLjIxLTM3LjMgNi42OS00OS40OSA5Ljk1bDEzLjA5LTQzLjIxLTYxLjU0LTM2LjY2IDIuMzYgOC4xMiAxMC4yMSA0Ljk4YzYuMjggMTguNTkgMTkuMzggNTYuNTYgMjAuNDMgNTguNjYgMS45NSA0LjI4IDMuMTYgNS43OCAxMi4wNSA0LjQ1bDEuMDUgNC45OGMtMTYuMDggNC44Ni0yMy42NiA3LjYxLTM5LjAyIDE0LjRsLTIuMzYtNC43MWM0LjQtMi45NCA4LjczLTMuOTQgNS41LTEyLjgzLTIzLjctNjIuNS0yMS40OC01OC4xNC0yMi43OC01OS40NGwyLjM2LTQuNDUgMzMuNTIgNjcuM2MtMy44NC0xMS44NyAxLjY4IDEuNjktMzIuOTktNzguODJsLTQxLjkgODguNTEgNC43MS0xMy44OC0zNS44OC00Mi4xNiAyNy43NiA5My40OC0xMS43OCA4LjM4Qzk1IDIyOC41OCAxMDEuMDUgMjMxLjg3IDkzLjIzIDIzMS41MmMtNS41LS4yNi0xMy42MiA1LjUtMTMuNjIgNS41TDc0LjYzIDIzMWMzMC41Ni0yMy41MyAzMS42Mi0yNC4zMyA1OC40LTQyLjY4bDQuMTkgNy4wN3MtNS43NiA0LjE5LTcuODYgNy4wN2MtNS45IDkuMjggMS42NyAxMy4yOCA2MS44IDc1LjY4bC0xOC44NS01OC45MiAzOS44LTEwLjIxIDI1LjY2IDMwLjY0IDQuNDUtMTIuMzEtNC45OC0yNC42MiAxMy4wOS0zLjQuNTIgMy4xNCAzLjY3LTEwLjQ3LTk0LjI3IDI5LjMzIDExLjI2LTQuOTgtMTMuNjItNDIuNDIgMTcuMjgtOS4xNyAzMC4xMSAzNi4xNCAyOC41NC0xMy4wOWMtMS40MS03LjQ3LTIuNDctMTQuNS00LjcxLTE5LjY0bDE3LjI4IDEzLjg4IDQuNzEtMi4wOS01OS4xOC00Mi42OCAyMy4wOCAxMS41YzE4Ljk4LTYuMDcgMjUuMjMtNy40NyAzMi4yMS05LjY5bDIuNjIgMTFjLTEyLjU1IDEyLjU1IDEuNDMgMTYuODIgNi41NSAxOS4zOGwtMTMuNjItNjEuMDEgMTIuMDUgMjguMjhjNC4xOS0xLjMxIDcuMzMtMi4wOSA3LjMzLTIuMDlsMi42MiA4LjY0cy0zLjE0IDEuMDUtNi4yOCAyLjA5bDguOSAyMC45NSAzMy43OC02NS43My0yMC42OSA2MS4wMWM0Mi40Mi0yNC4wOSA4MS40NC0zNi42NiAxMzEuOTgtMzUuODggNjcuMDQgMS4wNSAxNjcuMzMgNDAuODUgMTk5LjggMTM5LjgzLjc4IDIuMS0uMDEgMi42My0uNzkuMjd6TTIwMy40OCAxNTIuNDNzMS44My0uNTIgNC4xOS0xLjMxbDkuNDMgNy41OWMtLjQgMC0zLjQ0LS4yNS0xMS4yNiAyLjM2bC0yLjM2LTguNjR6bTE0My43NiAzOC41Yy0xLjU3LS42LTI2LjQ2LTQuODEtMzMuMjYgMjAuNjlsMjEuNzMgMTcuMDIgMTEuNTMtMzcuNzF6TTMxOC40MyA2Ny4wN2MtNTguNCAwLTEwNi4wNSAxMi4wNS0xMTQuOTYgMTQuNHYuNzljOC4zOCAyLjA5IDE0LjQgNC4xOSAyMS4yMSAxMS43OGwxLjU3LjI2YzYuNTUtMS44MyA0OC45Ny0xMy44OCAxMTAuMjQtMTMuODggMTgwLjE2IDAgMzAxLjY3IDExNi43OSAzMDEuNjcgMjIzLjM3djkuOTVjMCAxLjMxLjc5IDIuNjIgMS4wNS41Mi41Mi0yLjA5Ljc5LTguNjQuNzktMTkuNjQuMjYtODMuNzktOTYuNjMtMjI3LjU1LTMyMS41Ny0yMjcuNTV6bTIxMS4wNiAxNjkuNjhjMS4zMS01Ljc2IDAtMTIuMzEtNy4zMy0xMy4wOS05LjYyLTEuMTMtMTYuMTQgMjMuNzktMTcuMDIgMzMuNTItLjc5IDUuNS0xLjMxIDE0LjkzIDYuMDIgMTQuOTMgNC42OC0uMDEgOS43Mi0uOTEgMTguMzMtMzUuMzZ6bS02MS41MyA0Mi45NWMtMi42Mi0uNzktOS40My0uNzktMTIuNTcgMTAuNDctMS44MyA2LjgxLjUyIDEzLjM1IDYuMDIgMTQuNjYgMy42NyAxLjA1IDguOS41MiAxMS43OC0xMC43NCAyLjYyLTkuOTQtMS44My0xMy42MS01LjIzLTE0LjM5ek00OTEgMzAwLjY1YzEuODMuNTIgMy4xNCAxLjA1IDUuNzYgMS44MyAwLTEuODMuNTItOC4zOC43OS0xMi4wNS0xLjA1IDEuMzEtNS41IDguMTItNi41NSA5Ljk1di4yN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV29kdSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzguNDE0IDMzOS43MDZIMTQxLjFMMTEyLjE2NiAyMjMuNDc1aC0uNDc4TDgzLjIyOCAzMzkuNzA2SDQ1LjJMMCAxNjguOTQ2SDM3LjU0OEw2NC41NzQgMjg1LjE3N2guNDc4TDk0LjcwNyAxNjguOTQ2aDM1LjE1N2wyOS4xNzggMTE3LjY2N2guNDc5TDE4Ny41IDE2OC45NDZoMzYuODMxek0yNzEuNCAyMTIuNzEzYzM4Ljk4NCAwIDY0LjEgMjUuODI4IDY0LjEgNjUuMjkxIDAgMzkuMjIyLTI1LjExMSA2NS4wNS02NC4xIDY1LjA1LTM4Ljc0MyAwLTYzLjg1NS0yNS44MjgtNjMuODU1LTY1LjA1QzIwNy41NDcgMjM4LjU0MSAyMzIuNjU5IDIxMi43MTMgMjcxLjQgMjEyLjcxM3ptMCAxMDQuNzUzYzIzLjIgMCAzMC4xMzMtMTkuODUyIDMwLjEzMy0zOS40NjIgMC0xOS44NTItNi45MzQtMzkuNy0zMC4xMzMtMzkuNy0yNy43IDAtMjkuODk0IDE5Ljg1LTI5Ljg5NCAzOS43QzI0MS41MDggMjk3LjYxNCAyNDguNDQzIDMxNy40NjYgMjcxLjQgMzE3LjQ2NnpNNDM1LjA4NCAzMjMuOTIyaC0uNDc4Yy03Ljg5MyAxMy4zOTItMjEuNzY1IDE5LjEzMi0zNy41NDggMTkuMTMyLTM3LjMxIDAtNTUuNDg1LTMyLjA0NS01NS40ODUtNjYuMjQ2IDAtMzMuMjQzIDE4LjQxNS02NC4wOTUgNTQuNzY3LTY0LjA5NSAxNC41ODkgMCAyOC45MzggNi4yMTggMzYuODMxIDE4LjQxNmguMjRWMTY4Ljk0NmgzMy45NnYxNzAuNzZINDM1LjA4NHpNNDA1LjQyOCAyMzguM2MtMjIuMjQgMC0yOS44OTQgMTkuMTM0LTI5Ljg5NCAzOS40NjMgMCAxOS4zNzEgOC44NDggMzkuNyAyOS44OTQgMzkuNyAyMi40ODIgMCAyOS4xNzgtMTkuNjEzIDI5LjE3OC0zOS45NEM0MzQuNjA2IDI1Ny40MzYgNDI3LjQzMiAyMzguMyA0MDUuNDI4IDIzOC4zek01OTIuOTYgMzM5LjcwNkg1NjAuNjczVjMyMi40ODdoLS43MThjLTguNjA5IDEzLjg3LTIzLjQzNiAyMC41NjctMzcuNzg2IDIwLjU2Ny0zNi4xMTMgMC00NS4yLTIwLjMyOC00NS4yLTUwLjk0MVYyMTYuMDYxaDMzLjk1OVYyODUuOWMwIDIwLjMyOSA1Ljk3OSAzMC4zNzIgMjEuNzY1IDMwLjM3MiAxOC40MTUgMCAyNi4zMDYtMTAuMjgzIDI2LjMwNi0zNS4zOTNWMjE2LjA2MUg1OTIuOTZ6TTYwMi40NTMgMzAyLjg3Nkg2NDB2MzYuODNINjAyLjQ1M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV29sZlBhY2tCYXR0YWxpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjY3LjczIDQ3MS41M2wxMC41NiAxNS44NCA1LjI4LTEyLjMyIDUuMjggN1Y1MTJjMjEuMDYtNy45MiAyMS4xMS02Ni44NiAyNS41MS05Ny4yMSA0LjYyLTMxLjg5LS44OC05Mi44MSA4MS4zNy0xNDkuMTEtOC44OC0yMy42MS0xMi00OS40My0yLjY0LTgwLjA1QzQyMSAxODkgNDQ3IDE5Ni4yMSA0NTYuNDMgMjM5LjczbC0zMC4zNSA4LjM2YzExLjE1IDIzIDE3IDQ2Ljc2IDEzLjIgNzIuMTRMNDEyIDMxMy4xOGwtNi4xNiAzMy40My0xOC40Ny03LTguOCAzMy4zOS0xOS4zNS03IDI2LjM5IDIxLjExIDguOC0yOC4xNUw0MTkgMzY0LjJsNy0zNS42MyAyNi4zOSAxNC41MmMuMjUtMjAgNy01OC4wNi04LjgtODQuNDVsMjYuMzkgNS4yOGM0LTIyLjA3LTIuMzgtMzkuMjEtNy45Mi01Ni43NGwyMi40MyA5LjY4Yy0uNDQtMjUuMDctMjkuOTQtNTYuNzktNjEuNTgtNTguNS0yMC4yMi0xLjA5LTU2Ljc0LTI1LjE3LTU0LjEtNTEuOSAyLTE5Ljg3IDE3LjQ1LTQyLjYyIDQzLjExLTQ5LjctNDQgMzYuNTEtOS42OCA2Ny4zIDUuMjggNzMuNDYgNC40LTExLjQ0IDE3LjU0LTY5LjA4IDAtMTMwLjItNDAuMzkgMjIuODctODkuNjUgNjUuMS05My4yIDE0Ny43OWwtNTggMzguNzEtMy41MiA5My4yNUwzNjkuNzggMjIwbDcgNy0xNy41OSAzLjUyLTQ0IDM4LjcxLTE1Ljg0LTUuMjgtMjguMSA0OS4yNS0zLjUyIDExOS42NCAyMS4xMSAxNS44NC0zMi41NSAxNS44NC0zMi41NS0xNS44NCAyMS4xMS0xNS44NC0zLjUyLTExOS42NC0yOC4xNS00OS4yNi0xNS44NCA1LjI4LTQ0LTM4LjcxLTE3LjU4LTMuNTEgNy03IDEwNy4zMyA1OS44Mi0zLjUyLTkzLjI1LTU4LjA2LTM4LjcxQzE4NSA2NS4xIDEzNS43NyAyMi44NyA5NS4zIDBjLTE3LjU0IDYxLjEyLTQuNCAxMTguNzYgMCAxMzAuMiAxNS02LjE2IDQ5LjI2LTM2Ljk1IDUuMjgtNzMuNDYgMjUuNjYgNy4wOCA0MS4xNSAyOS44MyA0My4xMSA0OS43IDIuNjMgMjYuNzQtMzMuODggNTAuODEtNTQuMSA1MS45LTMxLjY1IDEuNzItNjEuMTUgMzMuNDQtNjEuNTkgNTguNTFsMjIuNDMtOS42OGMtNS41NCAxNy41My0xMS45MSAzNC42Ny03LjkyIDU2Ljc0bDI2LjM5LTUuMjhjLTE1Ljc2IDI2LjM5LTkuMDUgNjQuNDMtOC44IDg0LjQ1bDI2LjM5LTE0LjUyIDcgMzUuNjMgMjQuNjMtNS4yOCA4LjggMjguMTVMMTUzLjM1IDM2NiAxMzQgMzczbC04LjgtMzMuNDMtMTguNDcgNy02LjE2LTMzLjQzLTI3LjI3IDdjLTMuODItMjUuMzggMi00OS4xIDEzLjItNzIuMTRsLTMwLjM1LTguMzZjOS40LTQzLjUyIDM1LjQ3LTUwLjc3IDYzLjM0LTU0LjEgOS4zNiAzMC42MiA2LjI0IDU2LjQ1LTIuNjQgODAuMDUgODIuMjUgNTYuMyA3Ni43NSAxMTcuMjMgODEuMzcgMTQ5LjExIDQuNCAzMC4zNSA0LjQ1IDg5LjI5IDI1LjUxIDk3LjIxdi0yOS44M2w1LjI4LTcgNS4yOCAxMi4zMiAxMC41Ni0xNS44NCAxMS40NCAyMS4xMSAxMS40My0yMS4xem03OS4xNy05NUwzMzEuMDYgMzY2YzcuNDctNC4zNiAxMy43Ni04LjQyIDE5LjM1LTEyLjMyLS42IDcuMjItLjI3IDEzLjg0LTMuNTEgMjIuODR6bTI4LjE1LTQ5LjI2Yy0uNCAxMC45NC0uOSAyMS42Ni0xLjc2IDMxLjY3LTcuODUtMS44Ni0xNS41Ny0zLjgtMjEuMTEtNyA4LjI0LTcuOTQgMTUuNTUtMTYuMzIgMjIuODctMjQuNjh6bTI0LjYzIDUuMjhjMC0xMy40My0yLjA1LTI0LjIxLTUuMjgtMzMuNDNhMjM1IDIzNSAwIDAgMS0xOC40NyAyNy4yN3ptMy41Mi04MC45NGMxOS40NCAxMi44MSAyNy44IDMzLjY2IDI5LjkxIDU2LjMtMTIuMzItNC41My0yNC42My05LjMxLTM2Ljk1LTEwLjU2IDUuMDYtMTIgNi42NS0yOC4xNCA3LTQ1Ljc0em0tMS43Ni00NS43NGMuODEgMTQuMyAxLjg0IDI4LjgyIDEuNzYgNDIuMjMgMTkuMjItOC4xMSAyOS43OC05LjcyIDQ0LTE0LjA4LTEwLjYxLTE4Ljk2LTI3LjItMjUuNTMtNDUuNzYtMjguMTZ6TTE2NS42OCAzNzYuNTJMMTgxLjUyIDM2NmMtNy40Ny00LjM2LTEzLjc2LTguNDItMTkuMzUtMTIuMzIuNiA3LjI2LjI3IDEzLjg4IDMuNTEgMjIuODh6bS0yOC4xNS00OS4yNmMuNCAxMC45NC45IDIxLjY2IDEuNzYgMzEuNjcgNy44NS0xLjg2IDE1LjU3LTMuOCAyMS4xMS03LTguMjQtNy45My0xNS41NS0xNi4zMS0yMi44Ny0yNC42N3ptLTI0LjY0IDUuMjhjMC0xMy40MyAyLTI0LjIxIDUuMjgtMzMuNDNhMjM1IDIzNSAwIDAgMCAxOC40NyAyNy4yN3ptLTMuNTItODAuOTRjLTE5LjQ0IDEyLjgxLTI3LjggMzMuNjYtMjkuOTEgNTYuMyAxMi4zMi00LjUzIDI0LjYzLTkuMzEgMzctMTAuNTYtNS0xMi02LjY1LTI4LjE0LTctNDUuNzR6bTEuNzYtNDUuNzRjLS44MSAxNC4zLTEuODQgMjguODItMS43NiA0Mi4yMy0xOS4yMi04LjExLTI5Ljc4LTkuNzItNDQtMTQuMDggMTAuNjMtMTguOTUgMjcuMjMtMjUuNTIgNDUuNzYtMjguMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdvcmRwcmVzc1NpbXBsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkuMyA4IDggMTE5LjIgOCAyNTZjMCAxMzYuNyAxMTEuMyAyNDggMjQ4IDI0OHMyNDgtMTExLjMgMjQ4LTI0OEM1MDQgMTE5LjIgMzkyLjcgOCAyNTYgOHpNMzMgMjU2YzAtMzIuMyA2LjktNjMgMTkuMy05MC43bDEwNi40IDI5MS40Qzg0LjMgNDIwLjUgMzMgMzQ0LjIgMzMgMjU2em0yMjMgMjIzYy0yMS45IDAtNDMtMy4yLTYzLTkuMWw2Ni45LTE5NC40IDY4LjUgMTg3LjhjLjUgMS4xIDEgMi4xIDEuNiAzLjEtMjMuMSA4LjEtNDggMTIuNi03NCAxMi42em0zMC43LTMyNy41YzEzLjQtLjcgMjUuNS0yLjEgMjUuNS0yLjEgMTItMS40IDEwLjYtMTkuMS0xLjQtMTguNCAwIDAtMzYuMSAyLjgtNTkuNCAyLjgtMjEuOSAwLTU4LjctMi44LTU4LjctMi44LTEyLS43LTEzLjQgMTcuNy0xLjQgMTguNCAwIDAgMTEuNCAxLjQgMjMuNCAyLjFsMzQuNyA5NS4yTDIwMC42IDM5M2wtODEuMi0yNDEuNWMxMy40LS43IDI1LjUtMi4xIDI1LjUtMi4xIDEyLTEuNCAxMC42LTE5LjEtMS40LTE4LjQgMCAwLTM2LjEgMi44LTU5LjQgMi44LTQuMiAwLTkuMS0uMS0xNC40LS4zQzEwOS42IDczIDE3OC4xIDMzIDI1NiAzM2M1OCAwIDExMC45IDIyLjIgMTUwLjYgNTguNS0xLS4xLTEuOS0uMi0yLjktLjItMjEuOSAwLTM3LjQgMTkuMS0zNy40IDM5LjYgMCAxOC40IDEwLjYgMzMuOSAyMS45IDUyLjMgOC41IDE0LjggMTguNCAzMy45IDE4LjQgNjEuNSAwIDE5LjEtNy4zIDQxLjItMTcgNzIuMWwtMjIuMiA3NC4zLTgwLjctMjM5LjZ6bTgxLjQgMjk3LjJsNjguMS0xOTYuOWMxMi43LTMxLjggMTctNTcuMiAxNy03OS45IDAtOC4yLS41LTE1LjgtMS41LTIyLjkgMTcuNCAzMS44IDI3LjMgNjguMiAyNy4zIDEwNyAwIDgyLjMtNDQuNiAxNTQuMS0xMTAuOSAxOTIuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV29yZHByZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYxLjcgMTY5LjRsMTAxLjUgMjc4QzkyLjIgNDEzIDQzLjMgMzQwLjIgNDMuMyAyNTZjMC0zMC45IDYuNi02MC4xIDE4LjQtODYuNnptMzM3LjkgNzUuOWMwLTI2LjMtOS40LTQ0LjUtMTcuNS01OC43LTEwLjgtMTcuNS0yMC45LTMyLjQtMjAuOS00OS45IDAtMTkuNiAxNC44LTM3LjggMzUuNy0zNy44LjkgMCAxLjguMSAyLjguMi0zNy45LTM0LjctODguMy01NS45LTE0My43LTU1LjktNzQuMyAwLTEzOS43IDM4LjEtMTc3LjggOTUuOSA1IC4yIDkuNy4zIDEzLjcuMyAyMi4yIDAgNTYuNy0yLjcgNTYuNy0yLjcgMTEuNS0uNyAxMi44IDE2LjIgMS40IDE3LjUgMCAwLTExLjUgMS4zLTI0LjMgMmw3Ny41IDIzMC40TDI0OS44IDI0N2wtMzMuMS05MC44Yy0xMS41LS43LTIyLjMtMi0yMi4zLTItMTEuNS0uNy0xMC4xLTE4LjIgMS4zLTE3LjUgMCAwIDM1LjEgMi43IDU2IDIuNyAyMi4yIDAgNTYuNy0yLjcgNTYuNy0yLjcgMTEuNS0uNyAxMi44IDE2LjIgMS40IDE3LjUgMCAwLTExLjUgMS4zLTI0LjMgMmw3Ni45IDIyOC43IDIxLjItNzAuOWM5LTI5LjQgMTYtNTAuNSAxNi02OC43em0tMTM5LjkgMjkuM2wtNjMuOCAxODUuNWMxOS4xIDUuNiAzOS4yIDguNyA2MC4xIDguNyAyNC44IDAgNDguNS00LjMgNzAuNi0xMi4xLS42LS45LTEuMS0xLjktMS41LTIuOWwtNjUuNC0xNzkuMnptMTgzLTEyMC43Yy45IDYuOCAxLjQgMTQgMS40IDIxLjkgMCAyMS42LTQgNDUuOC0xNi4yIDc2LjJsLTY1IDE4Ny45QzQyNi4yIDQwMyA0NjguNyAzMzQuNSA0NjguNyAyNTZjMC0zNy05LjQtNzEuOC0yNi0xMDIuMXpNNTA0IDI1NmMwIDEzNi44LTExMS4zIDI0OC0yNDggMjQ4QzExOS4yIDUwNCA4IDM5Mi43IDggMjU2IDggMTE5LjIgMTE5LjIgOCAyNTYgOGMxMzYuNyAwIDI0OCAxMTEuMiAyNDggMjQ4em0tMTEuNCAwYzAtMTMwLjUtMTA2LjItMjM2LjYtMjM2LjYtMjM2LjZDMTI1LjUgMTkuNCAxOS40IDEyNS41IDE5LjQgMjU2UzEyNS42IDQ5Mi42IDI1NiA0OTIuNmMxMzAuNSAwIDIzNi42LTEwNi4xIDIzNi42LTIzNi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXcGJlZ2lubmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2Mi43OTkgMzIyLjM3NEM1MTkuMDEgMzg2LjY4MiA0NjYuOTYxIDQ4MCAzNzAuOTQ0IDQ4MGMtMzkuNjAyIDAtNzguODI0LTE3LjY4Ny0xMDAuMTQyLTUwLjA0LTYuODg3LjM1Ni0yMi43MDIuMzU2LTI5LjU5IDBDMjE5Ljg0OCA0NjIuMzgxIDE4MC41ODggNDgwIDE0MS4wNjkgNDgwYy05NS40OSAwLTE0OC4zNDgtOTIuOTk2LTkxLjg1NS0xNTcuNjI2Qy0yOS45MjUgMTkwLjUyMyA4MC40NzkgMzIgMjU2LjAwNiAzMmMxNzUuNjMyIDAgMjg1Ljg3IDE1OC42MjYgMjA2Ljc5MyAyOTAuMzc0em0tMzM5LjY0Ny04Mi45NzJoNDEuNTI5di01OC4wNzVoLTQxLjUyOXY1OC4wNzV6bTIxNy4xOCA4Ni4wNzJ2LTIzLjgzOWMtNjAuNTA2IDIwLjkxNS0xMzIuMzU1IDkuMTk4LTE4Ny41ODktMzMuOTcxbC4yNDYgMjQuODk3YzUxLjEwMSA0Ni4zNjcgMTMxLjc0NiA1Ny44NzUgMTg3LjM0MyAzMi45MTN6bS0xNTAuNzUzLTg2LjA3MmgxNjYuMDU4di01OC4wNzVIMTg5LjU3OXY1OC4wNzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdwZXhwbG9yZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDI1NmMwIDE0MS4yLTExNC43IDI1Ni0yNTYgMjU2QzExNC44IDUxMiAwIDM5Ny4zIDAgMjU2UzExNC43IDAgMjU2IDBzMjU2IDExNC43IDI1NiAyNTZ6bS0zMiAwYzAtMTIzLjItMTAwLjMtMjI0LTIyNC0yMjRDMTMyLjUgMzIgMzIgMTMyLjUgMzIgMjU2czEwMC41IDIyNCAyMjQgMjI0IDIyNC0xMDAuNSAyMjQtMjI0ek0xNjAuOSAxMjQuNmw4Ni45IDM3LjEtMzcuMSA4Ni45LTg2LjktMzcuMSAzNy4xLTg2Ljl6bTExMCAxNjkuMWw0Ni42IDk0aC0xNC42bC01MC0xMDAtNDguOSAxMDBoLTE0bDUxLjEtMTA2LjktMjIuMy05LjQgNi0xNCA2OC42IDI5LjEtNiAxNC4zLTE2LjUtNy4xem0tMTEuOC0xMTYuM2w2OC42IDI5LjQtMjkuNCA2OC4zTDIzMCAyNDZsMjkuMS02OC42em04MC4zIDQyLjlsNTQuNiAyMy4xLTIzLjQgNTQuMy01NC4zLTIzLjEgMjMuMS01NC4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXcGZvcm1zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA3NS4ydjM2MS43YzAgMjQuMy0xOSA0My4yLTQzLjIgNDMuMkg0My4yQzE5LjMgNDgwIDAgNDYxLjQgMCA0MzYuOFY3NS4yQzAgNTEuMSAxOC44IDMyIDQzLjIgMzJoMzYxLjdjMjQgMCA0My4xIDE4LjggNDMuMSA0My4yem0tMzcuMyAzNjEuNlY3NS4yYzAtMy0yLjYtNS44LTUuOC01LjhoLTkuM0wyODUuMyAxNDQgMjI0IDk0LjEgMTYyLjggMTQ0IDUyLjUgNjkuM2gtOS4zYy0zLjIgMC01LjggMi44LTUuOCA1Ljh2MzYxLjdjMCAzIDIuNiA1LjggNS44IDUuOGgzNjEuN2MzLjIuMSA1LjgtMi43IDUuOC01Ljh6TTE1MC4yIDE4NnYzN0g3Ni43di0zN2g3My41em0wIDc0LjR2MzcuM0g3Ni43di0zNy4zaDczLjV6bTExLjEtMTQ3LjNsNTQtNDMuN0g5Ni44bDY0LjUgNDMuN3ptMjEwIDcyLjl2MzdoLTE5NnYtMzdoMTk2em0wIDc0LjR2MzcuM2gtMTk2di0zNy4zaDE5NnptLTg0LjYtMTQ3LjNsNjQuNS00My43SDIzMi44bDUzLjkgNDMuN3pNMzcxLjMgMzM1djM3LjNoLTk5LjRWMzM1aDk5LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdwcmVzc3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExLjAzIDggMCAxMTkuMDMgMCAyNTZzMTExLjAzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMgMjQ4LTI0OFMzODQuOTcgOCAyNDggOHptMTcxLjMzIDE1OC42Yy0xNS4xOCAzNC41MS0zMC4zNyA2OS4wMi00NS42MyAxMDMuNS0yLjQ0IDUuNTEtNi44OSA4LjI0LTEyLjk3IDguMjQtMjMuMDItLjAxLTQ2LjAzLjA2LTY5LjA1LS4wNS01LjEyLS4wMy04LjI1IDEuODktMTAuMzQgNi43Mi0xMC4xOSAyMy41Ni0yMC42MyA0Ny0zMC45NSA3MC41LTEuNTQgMy41MS00LjA2IDUuMjktNy45MiA1LjI5LTQ1Ljk0LS4wMS05MS44Ny0uMDItMTM3LjgxIDAtMy4xMyAwLTUuNjMtMS4xNS03LjcyLTMuNDUtMTEuMjEtMTIuMzMtMjIuNDYtMjQuNjMtMzMuNjgtMzYuOTQtMi42OS0yLjk1LTIuNzktNi4xOC0xLjIxLTkuNzMgOC42Ni0xOS41NCAxNy4yNy0zOS4xIDI1Ljg5LTU4LjY2IDEyLjkzLTI5LjM1IDI1Ljg5LTU4LjY5IDM4Ljc1LTg4LjA4IDEuNy0zLjg4IDQuMjgtNS42OCA4LjU0LTUuNjUgMTQuMjQuMSAyOC40OC4wMiA0Mi43Mi4wNSA2LjI0LjAxIDkuMiA0Ljg0IDYuNjYgMTAuNTktMTMuNiAzMC43Ny0yNy4xNyA2MS41NS00MC43NCA5Mi4zMy01LjcyIDEyLjk5LTExLjQyIDI1Ljk5LTE3LjA5IDM5LTMuOTEgOC45NSA3LjA4IDExLjk3IDEwLjk1IDUuNi4yMy0uMzctMS40MiA0LjE4IDMwLjAxLTY3LjY5IDEuMzYtMy4xIDMuNDEtNC40IDYuNzctNC4zOSAxNS4yMS4wOCAzMC40My4wMiA0NS42NC4wNCA1LjU2LjAxIDcuOTEgMy42NCA1LjY2IDguNzUtOC4zMyAxOC45Ni0xNi43MSAzNy45LTI0Ljk4IDU2Ljg5LTQuOTggMTEuNDMgOC4wOCAxMi40OSAxMS4yOCA1LjMzLjA0LS4wOCAyNy44OS02My4zMyAzMi4xOS03My4xNiAyLjAyLTQuNjEgNS40NC02LjUxIDEwLjM1LTYuNSAyNi40My4wNSA1Mi44NiAwIDc5LjI5LjA1IDEyLjQ0LjAyIDEzLjkzLTEzLjY1IDMuOS0xMy42NC0yNS4yNi4wMy01MC41Mi4wMi03NS43OC4wMi02LjI3IDAtNy44NC0yLjQ3LTUuMjctOC4yNyA1Ljc4LTEzLjA2IDExLjU5LTI2LjExIDE3LjMtMzkuMjEgMS43My0zLjk2IDQuNTItNS43OSA4Ljg0LTUuNzggMjMuMDkuMDYgMjUuOTguMDIgMTMwLjc4LjAzIDYuMDgtLjAxIDguMDMgMi43OSA1LjYyIDguMjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVhUd2l0dGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4OS4yIDQ4aDcwLjZMMzA1LjYgMjI0LjIgNDg3IDQ2NEgzNDVMMjMzLjcgMzE4LjYgMTA2LjUgNDY0SDM1LjhMMjAwLjcgMjc1LjUgMjYuOCA0OEgxNzIuNEwyNzIuOSAxODAuOSAzODkuMiA0OHpNMzY0LjQgNDIxLjhoMzkuMUwxNTEuMSA4OGgtNDJMMzY0LjQgNDIxLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVhib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY5LjkgMzE4LjJjNDQuMyA1NC4zIDY0LjcgOTguOCA1NC40IDExOC43LTcuOSAxNS4xLTU2LjcgNDQuNi05Mi42IDU1LjktMjkuNiA5LjMtNjguNCAxMy4zLTEwMC40IDEwLjItMzguMi0zLjctNzYuOS0xNy40LTExMC4xLTM5QzkzLjMgNDQ1LjggODcgNDM4LjMgODcgNDIzLjRjMC0yOS45IDMyLjktODIuMyA4OS4yLTE0Mi4xIDMyLTMzLjkgNzYuNS03My43IDgxLjQtNzIuNiA5LjQgMi4xIDg0LjMgNzUuMSAxMTIuMyAxMDkuNXpNMTg4LjYgMTQzLjhjLTI5LjctMjYuOS01OC4xLTUzLjktODYuNC02My40LTE1LjItNS4xLTE2LjMtNC44LTI4LjcgOC4xLTI5LjIgMzAuNC01My41IDc5LjctNjAuMyAxMjIuNC01LjQgMzQuMi02LjEgNDMuOC00LjIgNjAuNSA1LjYgNTAuNSAxNy4zIDg1LjQgNDAuNSAxMjAuOSA5LjUgMTQuNiAxMi4xIDE3LjMgOS4zIDkuOS00LjItMTEtLjMtMzcuNSA5LjUtNjQgMTQuMy0zOSA1My45LTExMi45IDEyMC4zLTE5NC40em0zMTEuNiA2My41QzQ4My4zIDEyNy4zIDQzMi43IDc3IDQyNS42IDc3Yy03LjMgMC0yNC4yIDYuNS0zNiAxMy45LTIzLjMgMTQuNS00MSAzMS40LTY0LjMgNTIuOEMzNjcuNyAxOTcgNDI3LjUgMjgzLjEgNDQ4LjIgMzQ2YzYuOCAyMC43IDkuNyA0MS4xIDcuNCA1Mi4zLTEuNyA4LjUtMS43IDguNSAxLjQgNC42IDYuMS03LjcgMTkuOS0zMS4zIDI1LjQtNDMuNSA3LjQtMTYuMiAxNS00MC4yIDE4LjYtNTguNyA0LjMtMjIuNSAzLjktNzAuOC0uOC05My40ek0xNDEuMyA0M0MxODkgNDAuNSAyNTEgNzcuNSAyNTUuNiA3OC40Yy43LjEgMTAuNC00LjIgMjEuNi05LjcgNjMuOS0zMS4xIDk0LTI1LjggMTA3LjQtMjUuMi02My45LTM5LjMtMTUyLjctNTAtMjMzLjktMTEuNy0yMy40IDExLjEtMjQgMTEuOS05LjQgMTEuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjIuNyAyMTBjLTEuOCAzLjMtMjUuMiA0NC40LTcwLjEgMTIzLjUtNC45IDguMy0xMC44IDEyLjUtMTcuNyAxMi41SDkuOGMtNy43IDAtMTIuMS03LjUtOC41LTE0LjRsNjktMTIxLjNjLjIgMCAuMi0uMSAwLS4zbC00My45LTc1LjZjLTQuMy03LjguMy0xNC4xIDguNS0xNC4xSDEwMGM3LjMgMCAxMy4zIDQuMSAxOCAxMi4ybDQ0LjcgNzcuNXpNMzgyLjYgNDYuMWwtMTQ0IDI1M3YuM0wzMzAuMiA0NjZjMy45IDcuMS4yIDE0LjEtOC41IDE0LjFoLTY1LjJjLTcuNiAwLTEzLjYtNC0xOC0xMi4ybC05Mi40LTE2OC41YzMuMy01LjggNTEuNS05MC44IDE0NC44LTI1NS4yIDQuNi04LjEgMTAuNC0xMi4yIDE3LjUtMTIuMmg2NS43YzggMCAxMi4zIDYuNyA4LjUgMTQuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWUNvbWJpbmF0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDMydjQ0OEgwVjMyaDQ0OHpNMjM2IDI4Ny41TDMxMy41IDE0MmgtMzIuN0wyMzUgMjMzYy00LjcgOS4zLTkgMTguMy0xMi44IDI2LjhMMjEwIDIzM2wtNDUuMi05MWgtMzVsNzYuNyAxNDMuOHY5NC41SDIzNnYtOTIuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWWFob28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIzLjY5LDE0MS4wNiwxNjcsMjg0LjIzLDExMSwxNDEuMDZIMTQuOTNMMTIwLjc2LDM5MC4xOSw4Mi4xOSw0ODBoOTQuMTdMMzE3LjI3LDE0MS4wNlptMTA1LjQsMTM1Ljc5YTU4LjIyLDU4LjIyLDAsMSwwLDU4LjIyLDU4LjIyQTU4LjIyLDU4LjIyLDAsMCwwLDMyOS4wOSwyNzYuODVaTTM5NC42NSwzMmwtOTMsMjIzLjQ3SDQwNi40NEw0OTkuMDcsMzJaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVlhbW1lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDAuNjc2LDE1OS40ODZhMTIuNzc5LDEyLjc3OSwwLDAsMC02LjQtOC4yODIsMTMuOTU0LDEzLjk1NCwwLDAsMC0xMC4wNzgtMS4xMjVMNDU3LjgsMTU2LjdsLS4wNDMtLjItMjIuMyw1Ljc4NS0xLjI0My4zMzMtLjYwOC0yLjE3QTM2OS4wMzcsMzY5LjAzNywwLDAsMCwzNDcuNTM4LDQuMjg5YTE0LjEsMTQuMSwwLDAsMC0xOS43ODQtLjQ2M2wtMTAyLjksMTAyLjc0N0gyNC45NDdBMjQuOSwyNC45LDAsMCwwLDAsMTMxLjQxN1YzODAuMzhhMjQuOTYzLDI0Ljk2MywwLDAsMCwyNC45MTgsMjQuOUgyMjQuOTg2TDMyOC4wNzIsNTA4YTEzLjY2NywxMy42NjcsMCwwLDAsMTkuMzI3LDBjLjEyNi0uMTI2LjI0OS0uMjU1LjM3LS4zODVhMzY4LjAyNSwzNjguMDI1LDAsMCwwLDY5LjU3Ny0xMDcuMzc0LDQwMy40NSw0MDMuNDUsMCwwLDAsMTcuMy01MC44di0uMDI4bDIwLjQwNiw1LjMzNi4wMjktLjA3M0w0ODMuMzQ1LDM2MmEyMC4yNTMsMjAuMjUzLDAsMCwwLDIuNjE5LjUsMTMuMzU5LDEzLjM1OSwwLDAsMCw0LjEzOS0uMDcyLDEzLjUsMTMuNSwwLDAsMCwxMC41MTUtOS45MjQsNDE1Ljg1NSw0MTUuODU1LDAsMCwwLC4wNTgtMTkzLjAxM1pNMzM3LjEyNSwyNC42NWwuMDEzLjAxNGgtLjAxM1ptLTExMC4yLDE2NS4xNjFMMTc0LjMxMSwyODEuMWExMS4zMzgsMTEuMzM4LDAsMCwwLTEuNDg5LDUuNjU1djQ2LjE4OWEyMi4wNCwyMi4wNCwwLDAsMS0yMi4wNDEsMjJoLTMuNEEyMi4wNjgsMjIuMDY4LDAsMCwxLDEyNS4zLDMzMi45NjJWMjg3LjI5NGExMS41MzIsMTEuNTMyLDAsMCwwLTEuMzg4LTUuNTFsLTUxLjYtOTIuMmEyMS45ODgsMjEuOTg4LDAsMCwxLDE5LjI2NC0zMi43MjZoMy4yNjhhMjIuMDU5LDIyLjA1OSwwLDAsMSwxOS42MTEsMTEuOTE2bDM2LjM1Nyw3MC4yODEsMzcuNTE1LTcwLjUxMmEyMi4wNjYsMjIuMDY2LDAsMCwxLDM4LjU1Ni0uNjk1LDIxLjcsMjEuNywwLDAsMSwwLDIxLjk2N1pNMzM3LjE0NSwyNC42NzNhMzQ4LjE0NywzNDguMTQ3LDAsMCwxLDc1LjgsMTQxLjMzNWwuNTY0LDEuOTUyLTExNC4xMzQsMjkuNlYxMzEuNDE3YTI1LjAwNiwyNS4wMDYsMCwwLDAtMjQuOTQ3LTI0LjlIMjU1LjA2N1ptNjAuNSwzNjcuMzA1di0uMDQzbC0uMDE0LjAxNGEzNDcuMTksMzQ3LjE5LDAsMCwxLTYwLjE3Nyw5NS4yMjdsLTgyLjItODEuODkzaDE5LjE3N2EyNC45NzgsMjQuOTc4LDAsMCwwLDI0Ljk0Ny0yNC45di02Ni4ybDExNC42LDI5Ljg2MkEzODUuMTkxLDM4NS4xOTEsMCwwLDEsMzk3LjY0OCwzOTEuOTc4Wm04NC01Mi40NS4wMTUuMDE0LTUwLjYxOC0xMy4xMzFMMjk5LjM3OSwyOTIuMVYyMTkuNTcybDExOS43NDYtMzAuOTksNC40NjgtMS4xNTcsMzkuNTQtMTAuMjUzLDE4LjUxMS00LjgxNkEzOTMsMzkzLDAsMCwxLDQ4MS42NDQsMzM5LjUyOFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWWFuZGV4SW50ZXJuYXRpb25hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjkuNSA1MTJWMzQ1LjlMMTguNSA0OGg1NS44bDgxLjggMjI5LjdMMjUwLjIgMGg1MS4zTDE4MC44IDM0Ny44VjUxMmgtNTEuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWWFuZGV4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1My4xIDMxNS44TDY1LjcgNTEySDJsOTYtMjA5LjhjLTQ1LjEtMjIuOS03NS4yLTY0LjQtNzUuMi0xNDEuMUMyMi43IDUzLjcgOTAuOCAwIDE3MS43IDBIMjU0djUxMmgtNTUuMVYzMTUuOGgtNDUuOHptNDUuOC0yNjkuM2gtMjkuNGMtNDQuNCAwLTg3LjQgMjkuNC04Ny40IDExNC42IDAgODIuMyAzOS40IDEwOC44IDg3LjQgMTA4LjhoMjkuNFY0Ni41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFZYXJuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM5My45IDM0NS4yYy0zOSA5LjMtNDguNCAzMi4xLTEwNCA0Ny40IDAgMC0yLjcgNC0xMC40IDUuOC0xMy40IDMuMy02My45IDYtNjguNSA2LjEtMTIuNC4xLTE5LjktMy4yLTIyLTguMi02LjQtMTUuMyA5LjItMjIgOS4yLTIyLTguMS01LTktOS45LTkuOC04LjEtMi40IDUuOC0zLjYgMjAuMS0xMC4xIDI2LjUtOC44IDguOS0yNS41IDUuOS0zNS4zLjgtMTAuOC01LjcuOC0xOS4yLjgtMTkuMnMtNS44IDMuNC0xMC41LTMuNmMtNi05LjMtMTcuMS0zNy4zIDExLjUtNjItMS4zLTEwLjEtNC42LTUzLjcgNDAuNi04NS42IDAgMC0yMC42LTIyLjgtMTIuOS00My4zIDUtMTMuNCA3LTEzLjMgOC42LTEzLjkgNS43LTIuMiAxMS4zLTQuNiAxNS40LTkuMSAyMC42LTIyLjIgNDYuOC0xOCA0Ni44LTE4czEyLjQtMzcuOCAyMy45LTMwLjRjMy41IDIuMyAxNi4zIDMwLjYgMTYuMyAzMC42czEzLjYtNy45IDE1LjEtNWM4LjIgMTYgOS4yIDQ2LjUgNS42IDY1LjEtNi4xIDMwLjYtMjEuNCA0Ny4xLTI3LjYgNTcuNS0xLjQgMi40IDE2LjUgMTAgMjcuOCA0MS4zIDEwLjQgMjguNiAxLjEgNTIuNyAyLjggNTUuMy44IDEuNCAxMy43LjggMzYuNC0xMy4yIDEyLjgtNy45IDI4LjEtMTYuOSA0NS40LTE3IDE2LjctLjUgMTcuNiAxOS4yIDQuOSAyMi4yek00OTYgMjU2YzAgMTM2LjktMTExLjEgMjQ4LTI0OCAyNDhTMCAzOTIuOSAwIDI1NiAxMTEuMSA4IDI0OCA4czI0OCAxMTEuMSAyNDggMjQ4em0tNzkuMyA3NS4yYy0xLjctMTMuNi0xMy4yLTIzLTI4LTIyLjgtMjIgLjMtNDAuNSAxMS43LTUyLjggMTkuMi00LjggMy04LjkgNS4yLTEyLjQgNi44IDMuMS00NC41LTIyLjUtNzMuMS0yOC43LTc5LjQgNy44LTExLjMgMTguNC0yNy44IDIzLjQtNTMuMiA0LjMtMjEuNyAzLTU1LjUtNi45LTc0LjUtMS42LTMuMS03LjQtMTEuMi0yMS03LjQtOS43LTIwLTEzLTIyLjEtMTUuNi0yMy44LTEuMS0uNy0yMy42LTE2LjQtNDEuNCAyOC0xMi4yLjktMzEuMyA1LjMtNDcuNSAyMi44LTIgMi4yLTUuOSAzLjgtMTAuMSA1LjRoLjFjLTguNCAzLTEyLjMgOS45LTE2LjkgMjIuMy02LjUgMTcuNC4yIDM0LjYgNi44IDQ1LjctMTcuOCAxNS45LTM3IDM5LjgtMzUuNyA4Mi41LTM0IDM2LTExLjggNzMtNS42IDc5LjYtMS42IDExLjEgMy43IDE5LjQgMTIgMjMuOCAxMi42IDYuNyAzMC4zIDkuNiA0My45IDIuOCA0LjkgNS4yIDEzLjggMTAuMSAzMCAxMC4xIDYuOCAwIDU4LTIuOSA3Mi42LTYuNSA2LjgtMS42IDExLjUtNC41IDE0LjYtNy4xIDkuOC0zLjEgMzYuOC0xMi4zIDYyLjItMjguNyAxOC0xMS43IDI0LjItMTQuMiAzNy42LTE3LjQgMTIuOS0zLjIgMjEtMTUuMSAxOS40LTI4LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVllbHAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDIuOSAyNDAuMzJsOTkuNjIgNDguNjFjMTkuMiA5LjQgMTYuMiAzNy41MS00LjUgNDIuNzFMMzAuNSAzNTguNDVhMjIuNzkgMjIuNzkgMCAwIDEtMjguMjEtMTkuNiAxOTcuMTYgMTk3LjE2IDAgMCAxIDktODUuMzIgMjIuOCAyMi44IDAgMCAxIDMxLjYxLTEzLjIxem00NCAyMzkuMjVhMTk5LjQ1IDE5OS40NSAwIDAgMCA3OS40MiAzMi4xMUEyMi43OCAyMi43OCAwIDAgMCAxOTIuOTQgNDkwbDMuOS0xMTAuODJjLjctMjEuMy0yNS41LTMxLjkxLTM5LjgxLTE2LjFsLTc0LjIxIDgyLjRhMjIuODIgMjIuODIgMCAwIDAgNC4wOSAzNC4wOXptMTQ1LjM0LTEwOS45Mmw1OC44MSA5NGEyMi45MyAyMi45MyAwIDAgMCAzNCA1LjUgMTk4LjM2IDE5OC4zNiAwIDAgMCA1Mi43MS02Ny42MUEyMyAyMyAwIDAgMCAzNjQuMTcgMzcwbC0xMDUuNDItMzQuMjZjLTIwLjMxLTYuNS0zNy44MSAxNS44LTI2LjUxIDMzLjkxem0xNDguMzMtMTMyLjIzYTE5Ny40NCAxOTcuNDQgMCAwIDAtNTAuNDEtNjkuMzEgMjIuODUgMjIuODUgMCAwIDAtMzQgNC40bC02MiA5MS45MmMtMTEuOSAxNy43IDQuNyA0MC42MSAyNS4yIDM0LjcxTDM2NiAyNjguNjNhMjMgMjMgMCAwIDAgMTQuNjEtMzEuMjF6TTYyLjExIDMwLjE4YTIyLjg2IDIyLjg2IDAgMCAwLTkuOSAzMmwxMDQuMTIgMTgwLjQ0YzExLjcgMjAuMiA0Mi42MSAxMS45IDQyLjYxLTExLjRWMjIuODhhMjIuNjcgMjIuNjcgMCAwIDAtMjQuNS0yMi44IDMyMC4zNyAzMjAuMzcgMCAwIDAtMTEyLjMzIDMwLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVlvYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkxLjMgNzZoMTg2bC03IDE4LjloLTE3OWMtMzkuNyAwLTcxLjkgMzEuNi03MS45IDcwLjN2MjA1LjRjMCAzNS40IDI0LjkgNzAuMyA4NCA3MC4zVjQ2MEg5MS4zQzQxLjIgNDYwIDAgNDE5LjggMCAzNzAuNVYxNjUuMkMwIDExNS45IDQwLjcgNzYgOTEuMyA3NnptMjI5LjEtNTZoNjYuNUMyNDMuMSAzOTguMSAyNDEuMiA0MTguOSAyMDIuMiA0NTkuM2MtMjAuOCAyMS42LTQ5LjMgMzEuNy03OC4zIDMyLjd2LTUxLjFjNDkuMi03LjcgNjQuNi00OS45IDY0LjYtNzUuMyAwLTIwLjEuNi0xMi42LTgyLjEtMjIzLjJoNjEuNEwyMTguMiAyOTkgMzIwLjQgMjB6TTQ0OCAxNjEuNVY0NjBIMjM0YzYuNi05LjYgMTAuNy0xNi4zIDEyLjEtMTkuNGgxODIuNVYxNjEuNWMwLTMyLjUtMTcuMS01MS45LTQ4LjItNjIuOWw2LjctMTcuNmM0MS43IDEzLjYgNjAuOSA0My4xIDYwLjkgODAuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWW91dHViZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDkuNjU1IDEyNC4wODNjLTYuMjgxLTIzLjY1LTI0Ljc4Ny00Mi4yNzYtNDguMjg0LTQ4LjU5N0M0NTguNzgxIDY0IDI4OCA2NCAyODggNjRTMTE3LjIyIDY0IDc0LjYyOSA3NS40ODZjLTIzLjQ5NyA2LjMyMi00Mi4wMDMgMjQuOTQ3LTQ4LjI4NCA0OC41OTctMTEuNDEyIDQyLjg2Ny0xMS40MTIgMTMyLjMwNS0xMS40MTIgMTMyLjMwNXMwIDg5LjQzOCAxMS40MTIgMTMyLjMwNWM2LjI4MSAyMy42NSAyNC43ODcgNDEuNSA0OC4yODQgNDcuODIxQzExNy4yMiA0NDggMjg4IDQ0OCAyODggNDQ4czE3MC43OCAwIDIxMy4zNzEtMTEuNDg2YzIzLjQ5Ny02LjMyMSA0Mi4wMDMtMjQuMTcxIDQ4LjI4NC00Ny44MjEgMTEuNDEyLTQyLjg2NyAxMS40MTItMTMyLjMwNSAxMS40MTItMTMyLjMwNXMwLTg5LjQzOC0xMS40MTItMTMyLjMwNXptLTMxNy41MSAyMTMuNTA4VjE3NS4xODVsMTQyLjczOSA4MS4yMDUtMTQyLjczOSA4MS4yMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVpoaWh1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3MC41NCAxNDguMTN2MjE3LjU0bDIzLjQzLjAxIDcuNzEgMjYuMzcgNDIuMDEtMjYuMzdoNDkuNTNWMTQ4LjEzSDE3MC41NHptOTcuNzUgMTkzLjkzaC0yNy45NGwtMjcuOSAxNy41MS01LjA4LTE3LjQ3LTExLjktLjA0VjE3MS43NWg3Mi44MnYxNzAuMzF6bS0xMTguNDYtOTQuMzlIOTcuNWMxLjc0LTI3LjEgMi4yLTUxLjU5IDIuMi03My40Nmg1MS4xNnMxLjk3LTIyLjU2LTguNTgtMjIuMzFoLTg4LjVjMy40OS0xMy4xMiA3Ljg3LTI2LjY2IDEzLjEyLTQwLjY3IDAgMC0yNC4wNyAwLTMyLjI3IDIxLjU3LTMuMzkgOC45LTEzLjIxIDQzLjE0LTMwLjcgNzguMTIgNS44OS0uNjQgMjUuMzctMS4xOCAzNi44NC0yMi4yMSAyLjExLTUuODkgMi41MS02LjY2IDUuMTQtMTQuNTNoMjguODdjMCAxMC41LTEuMiA2Ni44OC0xLjY4IDczLjQ0SDIwLjgzYy0xMS43NCAwLTE1LjU2IDIzLjYyLTE1LjU2IDIzLjYyaDY1LjU4QzY2LjQ1IDMyMS4xIDQyLjgzIDM2My4xMiAwIDM5Ni4zNGMyMC40OSA1Ljg1IDQwLjkxLS45MyA1MS05LjkgMCAwIDIyLjk4LTIwLjkgMzUuNTktNjkuMjVsNTMuOTYgNjQuOTRzNy45MS0yNi44OS0xLjI0LTM5Ljk5Yy03LjU4LTguOTItMjguMDYtMzMuMDYtMzYuNzktNDEuODFMODcuOSAzMTEuOTVjNC4zNi0xMy45OCA2Ljk5LTI3LjU1IDcuODctNDAuNjdoNjEuNjVzLS4wOS0yMy42Mi03LjU5LTIzLjYydi4wMXptNDEyLjAyLTEuNmMyMC44My0yNS42NCA0NC45OC01OC41NyA0NC45OC01OC41N3MtMTguNjUtMTQuOC0yNy4zOC00LjA2Yy02IDguMTUtMzYuODMgNDguMi0zNi44MyA0OC4ybDE5LjIzIDE0LjQzem0tMTUwLjA5LTU5LjA5Yy05LjAxLTguMjUtMjUuOTEgMi4xMy0yNS45MSAyLjEzczM5LjUyIDU1LjA0IDQxLjEyIDU3LjQ1bDE5LjQ2LTEzLjczcy0yNS42Ny0zNy42MS0zNC42Ni00NS44NmgtLjAxek02NDAgMjU4LjM1Yy0xOS43OCAwLTEzMC45MS45My0xMzEuMDYuOTN2LTEwMWM0LjgxIDAgMTIuNDItLjQgMjIuODUtMS4yIDQwLjg4LTIuNDEgNzAuMTMtNCA4Ny43Ny00LjgxIDAgMCAxMi4yMi0yNy4xOS0uNTktMzMuNDQtMy4wNy0xLjE4LTIzLjE3IDQuNTgtMjMuMTcgNC41OHMtMTY1LjIyIDE2LjQ5LTIzMi4zNiAxOC4wNWMxLjYgOC44MiA3LjYyIDE3LjA4IDE1Ljc4IDE5LjU1IDEzLjMxIDMuNDggMjIuNjkgMS43IDQ5LjE1Ljg5IDI0LjgzLTEuNiA0My42OC0yLjQzIDU2LjUxLTIuNDN2OTkuODFIMzUxLjQxczIuODIgMjIuMzEgMjUuNTEgMjIuODVoMTA3Ljk0djcwLjkyYzAgMTMuOTctMTEuMTkgMjEuOTktMjQuNDggMjEuMTItMTQuMDguMTEtMjYuMDgtMS4xNS00MS42OS0xLjgxIDEuOTkgMy45NyA2LjMzIDE0LjM5IDE5LjMxIDIxLjg0IDkuODggNC44MSAxNi4xNyA2LjU3IDI2LjAyIDYuNTcgMjkuNTYgMCA0NS42Ny0xNy4yOCA0NC44OS00NS4zMXYtNzMuMzJoMTIyLjM2YzkuNjggMCA4LjctMjMuNzggOC43LTIzLjc4bC4wMy0uMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYTAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxOTJDMCAxMDMuNiA3MS42IDMyIDE2MCAzMnMxNjAgNzEuNiAxNjAgMTYwVjMyMGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQwOC40IDAgMzIwVjE5MnpNMTYwIDk2Yy01MyAwLTk2IDQzLTk2IDk2VjMyMGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2VjE5MmMwLTUzLTQzLTk2LTk2LTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmExIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCA2NGMwLTExLjgtNi41LTIyLjYtMTYuOS0yOC4ycy0yMy01LTMyLjggMS42bC05NiA2NEMtLjUgMTExLjItNC40IDEzMSA1LjQgMTQ1LjhzMjkuNyAxOC43IDQ0LjQgOC45TDk2IDEyMy44VjQxNkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmg5NiA5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxNjBWNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQyLjkgOTZjLTIxLjUgMC00Mi4yIDguNS01Ny40IDIzLjhMNTQuNiAxNTAuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMNDAuMiA3NC41QzY3LjUgNDcuMyAxMDQuNCAzMiAxNDIuOSAzMkMyMjMgMzIgMjg4IDk3IDI4OCAxNzcuMWMwIDM4LjUtMTUuMyA3NS40LTQyLjUgMTAyLjZMMTA5LjMgNDE2SDI4OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMmMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOHMtMi4yLTI1LjcgNi45LTM0LjlMMjAwLjIgMjM0LjVjMTUuMi0xNS4yIDIzLjgtMzUuOSAyMy44LTU3LjRjMC00NC44LTM2LjMtODEuMS04MS4xLTgxLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYTMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMkgyNzJjMTMuMiAwIDI1IDguMSAyOS44IDIwLjRzMS41IDI2LjMtOC4yIDM1LjJMMTYyLjMgMjA4SDE4NGM3NS4xIDAgMTM2IDYwLjkgMTM2IDEzNnMtNjAuOSAxMzYtMTM2IDEzNkgxMDUuNEM2MyA0ODAgMjQuMiA0NTYgNS4zIDQxOC4xbC0xLjktMy44Yy03LjktMTUuOC0xLjUtMzUgMTQuMy00Mi45czM1LTEuNSA0Mi45IDE0LjNsMS45IDMuOGM4LjEgMTYuMyAyNC44IDI2LjUgNDIuOSAyNi41SDE4NGMzOS44IDAgNzItMzIuMiA3Mi03MnMtMzIuMi03Mi03Mi03Mkg4MGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjRzLTEuNS0yNi4zIDguMi0zNS4yTDE4OS43IDk2SDMyQzE0LjMgOTYgMCA4MS43IDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYTQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg5IDc3LjZjNy41LTE2IC43LTM1LjEtMTUuMy00Mi42cy0zNS4xLS43LTQyLjYgMTUuM0wzIDMyMi40Yy00LjcgOS45LTMuOSAyMS41IDEuOSAzMC44UzIxIDM2OCAzMiAzNjhIMjU2djgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzY4aDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyMFYxNjBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMzA0SDgyLjRMMTg5IDc3LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYTUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIuNSA1OC4zQzM1LjMgNDMuMSA0OC41IDMyIDY0IDMySDI1NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg5MC43TDcwLjMgMjA4SDE4NGM3NS4xIDAgMTM2IDYwLjkgMTM2IDEzNnMtNjAuOSAxMzYtMTM2IDEzNkgxMDAuNWMtMzkuNCAwLTc1LjQtMjIuMy05My01Ny41bC00LjEtOC4yYy03LjktMTUuOC0xLjUtMzUgMTQuMy00Mi45czM1LTEuNSA0Mi45IDE0LjNsNC4xIDguMmM2LjggMTMuNiAyMC42IDIyLjEgMzUuOCAyMi4xSDE4NGMzOS44IDAgNzItMzIuMiA3Mi03MnMtMzIuMi03Mi03Mi03MkgzMmMtOS41IDAtMTguNS00LjItMjQuNi0xMS41cy04LjYtMTYuOS02LjktMjYuMmwzMi0xNzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYTYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMyLjQgODQuN2MxMS40LTEzLjUgOS43LTMzLjctMy44LTQ1LjFzLTMzLjctOS43LTQ1LjEgMy44TDM4LjYgMjE0LjdDMTQuNyAyNDIuOSAxLjEgMjc4LjQgLjEgMzE1LjJjMCAxLjQtLjEgMi45LS4xIDQuM2MwIC4yIDAgLjMgMCAuNWMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MHMxNjAtNzEuNiAxNjAtMTYwYzAtODUuNS02Ny4xLTE1NS40LTE1MS41LTE1OS44bDYzLjktNzUuNnpNMjU2IDMyMEE5NiA5NiAwIDEgMSA2NCAzMjBhOTYgOTYgMCAxIDEgMTkyIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYTcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMkgyODhjMTEuNSAwIDIyIDYuMSAyNy43IDE2LjFzNS43IDIyLjItLjEgMzIuMWwtMjI0IDM4NGMtOC45IDE1LjMtMjguNSAyMC40LTQzLjggMTEuNXMtMjAuNC0yOC41LTExLjUtNDMuOEwyMzIuMyA5NkgzMkMxNC4zIDk2IDAgODEuNyAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmE4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwNCAxNjBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhIMTQ0QzczLjMgMzIgMTYgODkuMyAxNiAxNjBjMCAzNC42IDEzLjcgNjYgMzYgODlDMjAuNSAyNzIuMyAwIDMwOS44IDAgMzUyYzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4aDY0YzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4YzAtNDIuMi0yMC41LTc5LjctNTItMTAzYzIyLjMtMjMgMzYtNTQuNCAzNi04OXpNMTc2LjEgMjg4SDE5MmMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NEgxMjhjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRoMTUuOWMwIDAgLjEgMCAuMSAwaDMyYzAgMCAuMSAwIC4xIDB6bTAtNjRjMCAwIDAgMCAwIDBIMTQ0YzAgMCAwIDAgMCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGMwLTM1LjMgMjguNy02NCA2NC02NGgzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGMwIDM1LjMtMjguNiA2NC02NCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhOSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAxOTJhOTYgOTYgMCAxIDAgMTkyIDBBOTYgOTYgMCAxIDAgNjQgMTkyem04Ny41IDE1OS44QzY3LjEgMzQ3LjQgMCAyNzcuNSAwIDE5MkMwIDEwMy42IDcxLjYgMzIgMTYwIDMyczE2MCA3MS42IDE2MCAxNjBjMCAyLjYtLjEgNS4zLS4yIDcuOWMtMS43IDM1LjctMTUuMiA3MC0zOC40IDk3LjRsLTE0NSAxNzEuNGMtMTEuNCAxMy41LTMxLjYgMTUuMi00NS4xIDMuOHMtMTUuMi0zMS42LTMuOC00NS4xbDYzLjktNzUuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjEuNSA1MS43QzIxNi42IDM5LjggMjA0LjkgMzIgMTkyIDMycy0yNC42IDcuOC0yOS41IDE5LjdsLTEyMCAyODgtNDAgOTZjLTYuOCAxNi4zIC45IDM1IDE3LjIgNDEuOHMzNS0uOSA0MS44LTE3LjJMOTMuMyAzODRIMjkwLjdsMzEuOCA3Ni4zYzYuOCAxNi4zIDI1LjUgMjQgNDEuOCAxNy4yczI0LTI1LjUgMTcuMi00MS44bC00MC05Ni0xMjAtMjg4ek0yNjQgMzIwSDEyMGw3Mi0xNzIuOEwyNjQgMzIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBZGRyZXNzQm9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIOTZ6TTIwOCAyODhoNjRjNDQuMiAwIDgwIDM1LjggODAgODBjMCA4LjgtNy4yIDE2LTE2IDE2SDE0NGMtOC44IDAtMTYtNy4yLTE2LTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwem0tMzItOTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek01MTIgODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2NjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlY4MHpNNDk2IDE5MmMtOC44IDAtMTYgNy4yLTE2IDE2djY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMjA4YzAtOC44LTcuMi0xNi0xNi0xNnptMTYgMTQ0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2djY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMzM2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBZGRyZXNzQ2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6bTgwIDI1Nmg2NGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MHptLTMyLTk2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHptMjU2LTMySDQ5NmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgzNjhjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTAgNjRINDk2YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDM2OGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMCA2NEg0OTZjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMzY4Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbGlnbkNlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIgNjRjMC0xNy43LTE0LjMtMzItMzItMzJIMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDMyMGMxNy43IDAgMzItMTQuMyAzMi0zMnptOTYgMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQxNmMxNy43IDAgMzItMTQuMyAzMi0zMnpNMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJINDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMzUyIDMyMGMwLTE3LjctMTQuMy0zMi0zMi0zMkgxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJIMzIwYzE3LjcgMCAzMi0xNC4zIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbGlnbkp1c3RpZnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nkg0MTZjMTcuNyAwIDMyLTE0LjMgMzItMzJ6bTAgMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQxNmMxNy43IDAgMzItMTQuMyAzMi0zMnpNMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJINDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNNDQ4IDQ0OGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0MTZjMTcuNyAwIDMyLTE0LjMgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFsaWduTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggNjRjMCAxNy43LTE0LjMgMzItMzIgMzJIMzJDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMySDI1NmMxNy43IDAgMzIgMTQuMyAzMiAzMnptMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJIMjU2YzE3LjcgMCAzMiAxNC4zIDMyIDMyek0wIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMkg0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00NDggNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWxpZ25SaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggNjRjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnptMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnpNMCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJINDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNDQ4IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuY2hvckNpcmNsZUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0yMS4xIDgwQzM2NyAxNTguOCAzODQgMTI5LjQgMzg0IDk2YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMzMuNCAxNyA2Mi44IDQyLjkgODBIMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDMyVjQ0OEgyMDhjLTUzIDAtOTYtNDMtOTYtOTZ2LTYuMWw3IDdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDk3IDI2M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMNyAzMTljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw3LTdWMzUyYzAgODguNCA3MS42IDE2MCAxNjAgMTYwaDgwIDgwYzguMiAwIDE2LjMtLjYgMjQuMi0xLjhjLTIyLjItMTYuMi00MC40LTM3LjUtNTMtNjIuMkgzMjBWMzY4IDI0MGgzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzNDEuMXpNNjQwIDM2OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNzYuNy00My4zYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03MiA3MmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDgwIDM4NS40bDYwLjctNjAuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5jaG9yQ2lyY2xlRXhjbGFtYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDk2YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bTIxLjEgODBDMzY3IDE1OC44IDM4NCAxMjkuNCAzODQgOTZjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZjMCAzMy40IDE3IDYyLjggNDIuOSA4MEgyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoMzJWNDQ4SDIwOGMtNTMgMC05Ni00My05Ni05NnYtNi4xbDcgN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMOTcgMjYzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw3IDMxOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDctN1YzNTJjMCA4OC40IDcxLjYgMTYwIDE2MCAxNjBoODAgODBjOC4yIDAgMTYuMy0uNiAyNC4yLTEuOGMtMjIuMi0xNi4yLTQwLjQtMzcuNS01My02Mi4ySDMyMFYzNjggMjQwaDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDM0MS4xek00OTYgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC05NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTAtMTQ0YzguOCAwIDE2IDcuMiAxNiAxNnY4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYyODhjMC04LjggNy4yLTE2IDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmNob3JDaXJjbGVYbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgOTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptMjEuMSA4MEMzNjcgMTU4LjggMzg0IDEyOS40IDM4NCA5NmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDMzLjQgMTcgNjIuOCA0Mi45IDgwSDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmgzMlY0NDhIMjA4Yy01MyAwLTk2LTQzLTk2LTk2di02LjFsNyA3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw5NyAyNjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDcgMzE5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNy03VjM1MmMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MGg4MCA4MGM4LjIgMCAxNi4zLS42IDI0LjItMS44Yy0yMi4yLTE2LjItNDAuNC0zNy41LTUzLTYyLjJIMzIwVjM2OCAyNDBoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzQxLjF6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43TDUxOC42IDM2OGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEw0OTYgMzkwLjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkw0NzMuNCAzNjhsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ5NiAzNDUuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmNob3JMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0yMS4xIDgwQzM2NyAxNTguOCAzODQgMTI5LjQgMzg0IDk2YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMzMuNCAxNyA2Mi44IDQyLjkgODBIMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDMyVjQ0OEgyMDhjLTUzIDAtOTYtNDMtOTYtOTZ2LTYuMWw3IDdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDk3IDI2M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMNyAzMTljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw3LTdWMzUyYzAgODguNCA3MS42IDE2MCAxNjAgMTYwaDgwIDgwYzggMCAxNS45LS42IDIzLjYtMS43Yy00LjgtOS03LjYtMTkuMy03LjYtMzAuM1Y0NDYuN2MtNS4yIC45LTEwLjUgMS4zLTE2IDEuM0gzMjBWMjQwaDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDM0MS4xek01MjggMjQwYzE3LjcgMCAzMiAxNC4zIDMyIDMydjQ4SDQ5NlYyNzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS04MCAzMnY0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMySDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMlYzNTJjMC0xNy43LTE0LjMtMzItMzItMzJWMjcyYzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmNob3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDk2YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bTIxLjEgODBDMzY3IDE1OC44IDM4NCAxMjkuNCAzODQgOTZjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZjMCAzMy40IDE3IDYyLjggNDIuOSA4MEgyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoMzJWNDQ4SDIwOGMtNTMgMC05Ni00My05Ni05NnYtNi4xbDcgN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMOTcgMjYzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw3IDMxOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDctN1YzNTJjMCA4OC40IDcxLjYgMTYwIDE2MCAxNjBoODAgODBjODguNCAwIDE2MC03MS42IDE2MC0xNjB2LTYuMWw3IDdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01Ni01NmMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTU2IDU2Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNy03VjM1MmMwIDUzLTQzIDk2LTk2IDk2SDMyMFYyNDBoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzQxLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuZ2xlRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmdsZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDEuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDEwOS4zIDI1NiAyNDYuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5nbGVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzguNiAyMzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMjEwLjcgMjU2IDczLjQgMTE4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTYwIDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5nbGVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDEuNCAxMzcuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDIyNCAyMDUuMyA4Ni42IDM0Mi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxNjAtMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmdsZXNEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ni42IDQ3MC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTYwLTE2MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwyMjQgNDAyLjcgMzYxLjQgMjY1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MHptMTYwLTM1MmwtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTE2MC0xNjBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMMjI0IDIxMC43IDM2MS40IDczLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5nbGVzTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMTA5LjMgMjU2IDI0Ni42IDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwem0zNTItMTYwbC0xNjAgMTYwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMzAxLjMgMjU2IDQzOC42IDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmdsZXNSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzAuNiAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMNDAyLjcgMjU2IDI2NS40IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjB6bS0zNTIgMTYwbDE2MC0xNjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDIxMC43IDI1NiA3My40IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmdsZXNVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDYuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwyMjQgMTA5LjMgMzYxLjQgMjQ2LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MHptMTYwIDM1MmwtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMjI0IDMwMS4zIDM2MS40IDQzOC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFua2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMTI4YzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRjMCA0MS42LTIwLjcgNzYuNi00Ni42IDEwNC4xYy01LjkgNi4yLTExLjggMTEuOC0xNy40IDE2LjdjLTUuNi00LjktMTEuNS0xMC41LTE3LjQtMTYuN0MxMTYuNyAyMDQuNiA5NiAxNjkuNiA5NiAxMjh6TTE2MCAwQzg5LjMgMCAzMiA1Ny4zIDMyIDEyOGMwIDUyLjQgMjEuNSA5NS41IDQ2LjggMTI4SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDk2VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjMyMGg5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgyNDEuMmMyNS40LTMyLjUgNDYuOC03NS42IDQ2LjgtMTI4QzI4OCA1Ny4zIDIzMC43IDAgMTYwIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFwcGxlV2hvbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDExMmMtOC44IDAtMTYtNy4yLTE2LTE2VjgwYzAtNDQuMiAzNS44LTgwIDgwLTgwaDE2YzguOCAwIDE2IDcuMiAxNiAxNlYzMmMwIDQ0LjItMzUuOCA4MC04MCA4MEgyMjR6TTAgMjg4YzAtNzYuMyAzNS43LTE2MCAxMTItMTYwYzI3LjMgMCA1OS43IDEwLjMgODIuNyAxOS4zYzE4LjggNy4zIDM5LjkgNy4zIDU4LjcgMGMyMi45LTguOSA1NS40LTE5LjMgODIuNy0xOS4zYzc2LjMgMCAxMTIgODMuNyAxMTIgMTYwYzAgMTI4LTgwIDIyNC0xNjAgMjI0Yy0xNi41IDAtMzguMS02LjYtNTEuNS0xMS4zYy04LjEtMi44LTE2LjktMi44LTI1IDBjLTEzLjQgNC43LTM1IDExLjMtNTEuNSAxMS4zQzgwIDUxMiAwIDQxNiAwIDI4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJjaHdheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZINDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyem0wIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg5Nmg2NFYzNTJjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NlY0ODBoNjQgNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJWMTI4SDMyVjQxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dEb3duMTkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDUwLjcgMzhjLTguMy02LTE5LjEtNy43LTI4LjgtNC40bC00OCAxNmMtMTYuOCA1LjYtMjUuOCAyMy43LTIwLjIgNDAuNXMyMy43IDI1LjggNDAuNSAyMC4ybDUuOS0yVjE2MEgzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoNDggNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINDY0VjY0YzAtMTAuMy00LjktMTkuOS0xMy4zLTI2ek0xNjAgNDgwYzkgMCAxNy41LTMuOCAyMy42LTEwLjRsODgtOTZjMTEuOS0xMyAxMS4xLTMzLjMtMi00NS4ycy0zMy4zLTExLjEtNDUuMiAyTDE5MiAzNjUuN1Y2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlYzNjUuN0w5NS42IDMzMC40Yy0xMS45LTEzLTMyLjItMTMuOS00NS4yLTJzLTEzLjkgMzIuMi0yIDQ1LjJsODggOTZDMTQyLjUgNDc2LjIgMTUxIDQ4MCAxNjAgNDgwek00MTguMyAzMDdhMzIgMzIgMCAxIDEgMjcuNCA1Ny45QTMyIDMyIDAgMSAxIDQxOC4zIDMwN3pNNDA1LjEgNDE5LjhsLTYuOCA5LjJjLTEwLjUgMTQuMi03LjUgMzQuMiA2LjcgNDQuOHMzNC4yIDcuNSA0NC44LTYuN2w0OC44LTY1LjhjMTQtMTguOSAyMS41LTQxLjcgMjEuNS02NS4yYzAtNDguNi0zOS40LTg4LTg4LTg4cy04OCAzOS40LTg4IDg4YzAgMzkuMiAyNS42IDcyLjQgNjEuMSA4My44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd0Rvd245MSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgNDgwYzkgMCAxNy41LTMuOCAyMy42LTEwLjRsODgtOTZjMTEuOS0xMyAxMS4xLTMzLjMtMi00NS4ycy0zMy4zLTExLjEtNDUuMiAyTDE5MiAzNjUuN1Y2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlYzNjUuN0w5NS42IDMzMC40Yy0xMS45LTEzLTMyLjItMTMuOS00NS4yLTJzLTEzLjkgMzIuMi0yIDQ1LjJsODggOTZDMTQyLjUgNDc2LjIgMTUxIDQ4MCAxNjAgNDgwek00NTAuNyAyOTRjLTguMy02LTE5LjEtNy43LTI4LjgtNC40bC00OCAxNmMtMTYuOCA1LjYtMjUuOCAyMy43LTIwLjIgNDAuNXMyMy43IDI1LjggNDAuNSAyMC4ybDUuOS0yVjQxNkgzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoNDggNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINDY0VjMyMGMwLTEwLjMtNC45LTE5LjktMTMuMy0yNnpNNDE4LjMgOTFhMzIgMzIgMCAxIDEgMjcuNCA1Ny45QTMyIDMyIDAgMSAxIDQxOC4zIDkxek00MDUuMSAyMDMuOGwtNi44IDkuMmMtMTAuNSAxNC4yLTcuNSAzNC4yIDYuNyA0NC44czM0LjIgNy41IDQ0LjgtNi43bDQ4LjgtNjUuOGMxNC0xOC45IDIxLjUtNDEuNyAyMS41LTY1LjJjMC00OC42LTM5LjQtODgtODgtODhzLTg4IDM5LjQtODggODhjMCAzOS4yIDI1LjYgNzIuNCA2MS4xIDgzLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93RG93bkFaIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4My42IDQ2OS42QzE3Ny41IDQ3Ni4yIDE2OSA0ODAgMTYwIDQ4MHMtMTcuNS0zLjgtMjMuNi0xMC40bC04OC05NmMtMTEuOS0xMy0xMS4xLTMzLjMgMi00NS4yczMzLjMtMTEuMSA0NS4yIDJMMTI4IDM2NS43VjY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWMzY1LjdsMzIuNC0zNS40YzExLjktMTMgMzIuMi0xMy45IDQ1LjItMnMxMy45IDMyLjIgMiA0NS4ybC04OCA5NnpNMzIwIDMyMGMwLTE3LjcgMTQuMy0zMiAzMi0zMkg0ODBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOUw0MjkuMyA0MTZINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDM1MmMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOHMtMi4yLTI1LjcgNi45LTM0LjlMNDAyLjcgMzUySDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQxNiAzMmMxMi4xIDAgMjMuMiA2LjggMjguNiAxNy43bDY0IDEyOCAxNiAzMmM3LjkgMTUuOCAxLjUgMzUtMTQuMyA0Mi45cy0zNSAxLjUtNDIuOS0xNC4zTDQ2MC4yIDIyNEgzNzEuOGwtNy4yIDE0LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjlsMTYtMzIgNjQtMTI4QzM5Mi44IDM4LjggNDAzLjkgMzIgNDE2IDMyek0zOTUuOCAxNzZoNDAuNEw0MTYgMTM1LjYgMzk1LjggMTc2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd0Rvd25Mb25nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2OS40IDUwMi42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjhjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMjI0IDQwMi43IDIyNCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDM3MC43TDg2LjYgMzI5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDEyOCAxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93RG93blNob3J0V2lkZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTEuNiA0NjkuNkMxNDUuNSA0NzYuMiAxMzcgNDgwIDEyOCA0ODBzLTE3LjUtMy44LTIzLjYtMTAuNGwtODgtOTZjLTExLjktMTMtMTEuMS0zMy4zIDItNDUuMnMzMy4zLTExLjEgNDUuMiAyTDk2IDM2NS43VjY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWMzY1LjdsMzIuNC0zNS40YzExLjktMTMgMzIuMi0xMy45IDQ1LjItMnMxMy45IDMyLjIgMiA0NS4ybC04OCA5NnpNMzIwIDMyaDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxMjhoOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzIwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDEyOEg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzIwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDEyOEg1NDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzIwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd0Rvd25VcEFjcm9zc0xpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTM3LjQgNTAyLjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsOTYtOTZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMTkyIDQwMi43VjI4OEg1NDRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINDQ4VjEwOS4zbDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDM4NCAxMDkuM1YyMjRIMTkyIDEyOCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmg5NlY0MDIuN0w4Ni42IDM2MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5NiA5NnpNMTI4IDE5Mmg2NFY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlYxOTJ6TTQ0OCAzMjBIMzg0VjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjMyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dEb3duVXBMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1MC42IDUwMi42bDk2LTk2YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDE2MCA0MDIuN1YyODhINDE2VjI3MmMwLTE3LjIgMy45LTMzLjUgMTAuOC00OEgzNTJWMTA5LjNsNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2Yy02LTYtMTQuMS05LjQtMjIuNi05LjRzLTE2LjYgMy40LTIyLjYgOS40bC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwyODggMTA5LjNWMjI0bC0xMjggMEg5NmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg5NlY0MDIuN0w1NC42IDM2MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHpNMTYwIDE5MlY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlYxOTJoNjR6TTI4OCAzMjBWNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzIwSDI4OHptMjQwLTgwYzE3LjcgMCAzMiAxNC4zIDMyIDMydjQ4SDQ5NlYyNzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS04MCAzMnY0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMySDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMlYzNTJjMC0xNy43LTE0LjMtMzItMzItMzJWMjcyYzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd0Rvd25XaWRlU2hvcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUxLjYgNDY5LjZDMTQ1LjUgNDc2LjIgMTM3IDQ4MCAxMjggNDgwcy0xNy41LTMuOC0yMy42LTEwLjRsLTg4LTk2Yy0xMS45LTEzLTExLjEtMzMuMyAyLTQ1LjJzMzMuMy0xMS4xIDQ1LjIgMkw5NiAzNjUuN1Y2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyVjM2NS43bDMyLjQtMzUuNGMxMS45LTEzIDMyLjItMTMuOSA0NS4yLTJzMTMuOSAzMi4yIDIgNDUuMmwtODggOTZ6TTMyMCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJoMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzIwem0wLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmg5NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMjB6bTAtMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDQ4MGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMjB6bTAtMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDU0NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93RG93blpBIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4My42IDQ2OS42QzE3Ny41IDQ3Ni4yIDE2OSA0ODAgMTYwIDQ4MHMtMTcuNS0zLjgtMjMuNi0xMC40bC04OC05NmMtMTEuOS0xMy0xMS4xLTMzLjMgMi00NS4yczMzLjMtMTEuMSA0NS4yIDJMMTI4IDM2NS43VjY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWMzY1LjdsMzIuNC0zNS40YzExLjktMTMgMzIuMi0xMy45IDQ1LjItMnMxMy45IDMyLjIgMiA0NS4ybC04OCA5NnpNMzIwIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMySDQ4MGMxMi45IDAgMjQuNiA3LjggMjkuNiAxOS44czIuMiAyNS43LTYuOSAzNC45TDQyOS4zIDE2MEg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzUyYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOUw0MDIuNyA5NkgzNTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem05NiAxOTJjMTIuMSAwIDIzLjIgNi44IDI4LjYgMTcuN2w2NCAxMjggMTYgMzJjNy45IDE1LjggMS41IDM1LTE0LjMgNDIuOXMtMzUgMS41LTQyLjktMTQuM0w0NjAuMiA0NDhIMzcxLjhsLTcuMiAxNC4zYy03LjkgMTUuOC0yNy4xIDIyLjItNDIuOSAxNC4zcy0yMi4yLTI3LjEtMTQuMy00Mi45bDE2LTMyIDY0LTEyOGM1LjQtMTAuOCAxNi41LTE3LjcgMjguNi0xNy43ek0zOTUuOCA0MDBoNDAuNEw0MTYgMzU5LjYgMzk1LjggNDAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTY5LjQgNDcwLjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyMjQgMzcwLjggMjI0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzA2LjdMNTQuNiAyNjUuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dMZWZ0TG9uZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDEyOCAxMjhjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wxMDkuMyAyODggNDgwIDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzcwLjcgMCA3My40LTczLjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTEyOCAxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wxMDkuMiAyODggNDE2IDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzA2LjcgMEwyMTQuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dQb2ludGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNTUuMlY0MjZjMCAxMi4yIDkuOSAyMiAyMiAyMmM2LjMgMCAxMi40LTIuNyAxNi42LTcuNUwxMjEuMiAzNDZsNTguMSAxMTYuM2M3LjkgMTUuOCAyNy4xIDIyLjIgNDIuOSAxNC4zczIyLjItMjcuMSAxNC4zLTQyLjlMMTc5LjggMzIwSDI5Ny45YzEyLjIgMCAyMi4xLTkuOSAyMi4xLTIyLjFjMC02LjMtMi43LTEyLjMtNy40LTE2LjVMMzguNiAzNy45QzM0LjMgMzQuMSAyOC45IDMyIDIzLjIgMzJDMTAuNCAzMiAwIDQyLjQgMCA1NS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd1JpZ2h0QXJyb3dMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzOC42IDE1MC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC05Ni05NmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMzM4LjcgOTYgMzIgOTZDMTQuMyA5NiAwIDExMC4zIDAgMTI4czE0LjMgMzIgMzIgMzJsMzA2LjcgMC00MS40IDQxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsOTYtOTZ6bS0zMzMuMyAzNTJjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wxMDkuMyA0MTYgNDE2IDQxNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzA2LjcgMCA0MS40LTQxLjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w5NiA5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dSaWdodEZyb21CcmFja2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMi42IDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0w0MDIuNyAyMjQgMTkyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMTAuNyAwLTczLjQgNzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4ek0xNjAgOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMOTYgMzJDNDMgMzIgMCA3NSAwIDEyOEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93UmlnaHRMb25nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMi42IDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0w0MDIuNyAyMjQgMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM3MC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93UmlnaHRUb0JyYWNrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyIDk2bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMjU2YzAtNTMtNDMtOTYtOTYtOTZsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bS05LjQgMTgyLjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDI0Mi43IDIyNCAzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjEwLjcgMC03My40IDczLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dSaWdodFRvQ2l0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggNDhjMC0yNi41IDIxLjUtNDggNDgtNDhoOTZjMjYuNSAwIDQ4IDIxLjUgNDggNDhWMTkyaDQwVjEyMGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0djcyaDI0YzI2LjUgMCA0OCAyMS41IDQ4IDQ4VjQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0MzIgMzM2Yy0yNi41IDAtNDgtMjEuNS00OC00OFY0OHptNjQgMzJ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlY4MGMwLTguOC03LjItMTYtMTYtMTZIMzY4Yy04LjggMC0xNiA3LjItMTYgMTZ6bTE2IDgwYy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYxNzZjMC04LjgtNy4yLTE2LTE2LTE2SDM2OHpNMzUyIDI3MnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjI3MmMwLTguOC03LjItMTYtMTYtMTZIMzY4Yy04LjggMC0xNiA3LjItMTYgMTZ6bTE3Ni0xNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMjcyYzAtOC44LTcuMi0xNi0xNi0xNkg1Mjh6TTUxMiAzNjh2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzNjhjMC04LjgtNy4yLTE2LTE2LTE2SDUyOGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNjYuNiAxNTMuNGw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDE0Ni43IDI4OEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkgxNDYuN2wtMjUuNC0yNS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd1JpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzOC42IDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wzMzguOCAyMjQgMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMwNi43IDBMMjMzLjQgMzkzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dSb3RhdGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyNS43IDE2MEgxNzZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ2NTEuMkw5Ny42IDk3LjZjODcuNS04Ny41IDIyOS4zLTg3LjUgMzE2LjggMHM4Ny41IDIyOS4zIDAgMzE2LjhzLTIyOS4zIDg3LjUtMzE2LjggMGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGM2Mi41IDYyLjUgMTYzLjggNjIuNSAyMjYuMyAwczYyLjUtMTYzLjggMC0yMjYuM3MtMTYzLjgtNjIuNS0yMjYuMyAwTDEyNS43IDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dSb3RhdGVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODYuMyAxNjBIMzM2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQ2NGMxNy43IDAgMzItMTQuMyAzMi0zMlY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnY1MS4yTDQxNC40IDk3LjZjLTg3LjUtODcuNS0yMjkuMy04Ny41LTMxNi44IDBzLTg3LjUgMjI5LjMgMCAzMTYuOHMyMjkuMyA4Ny41IDMxNi44IDBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBjLTYyLjUgNjIuNS0xNjMuOCA2Mi41LTIyNi4zIDBzLTYyLjUtMTYzLjggMC0yMjYuM3MxNjMuOC02Mi41IDIyNi4zIDBMMzg2LjMgMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd1RyZW5kRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMzUyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDU0NGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2ODIuN0wzNDIuNiAxMzcuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBMMTkyIDI0Mi43IDU0LjYgMTA1LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBMMzIwIDIwNS4zIDQ2Ni43IDM1MkgzODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93VHJlbmRVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDU0NGMxNy43IDAgMzIgMTQuMyAzMiAzMlYyODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMjA1LjNMMzQyLjYgMzc0LjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwTDE5MiAyNjkuMyA1NC42IDQwNi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxNjAtMTYwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwTDMyMCAzMDYuNyA0NjYuNyAxNjBIMzg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd1R1cm5Eb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDY0QzE0LjMgNjQgMCA0OS43IDAgMzJTMTQuMyAwIDMyIDBsOTYgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMzA2LjcgNzMuNC03My40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTEyOCAxMjhjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC0xMjgtMTI4Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDE2MCA0MDIuNyAxNjAgOTZjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93VHVyblVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0zMDYuNyA3My40IDczLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTEyOCAxMjhjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTYwIDEwOS4zIDE2MCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93VXAxOSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTAuNyAzOGM4LjMgNiAxMy4zIDE1LjcgMTMuMyAyNnY5NmgxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg0MzIgMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDE2VjEwOC40bC01LjkgMmMtMTYuOCA1LjYtMzQuOS0zLjUtNDAuNS0yMC4yczMuNS0zNC45IDIwLjItNDAuNWw0OC0xNmM5LjgtMy4zIDIwLjUtMS42IDI4LjggNC40ek0xNjAgMzJjOSAwIDE3LjUgMy44IDIzLjYgMTAuNGw4OCA5NmMxMS45IDEzIDExLjEgMzMuMy0yIDQ1LjJzLTMzLjMgMTEuMS00NS4yLTJMMTkyIDE0Ni4zVjQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxNDYuM0w5NS42IDE4MS42Yy0xMS45IDEzLTMyLjIgMTMuOS00NS4yIDJzLTEzLjktMzIuMi0yLTQ1LjJsODgtOTZDMTQyLjUgMzUuOCAxNTEgMzIgMTYwIDMyek00NDUuNyAzNjQuOUEzMiAzMiAwIDEgMCA0MTguMyAzMDdhMzIgMzIgMCAxIDAgMjcuNCA1Ny45em0tNDAuNyA1NC45QzM2OS42IDQwOC40IDM0NCAzNzUuMiAzNDQgMzM2YzAtNDguNiAzOS40LTg4IDg4LTg4czg4IDM5LjQgODggODhjMCAyMy41LTcuNSA0Ni4zLTIxLjUgNjUuMkw0NDkuNyA0NjdjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjdzLTE3LjItMzAuNi02LjctNDQuOGw2LjgtOS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd1VwOTEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDMyYzkgMCAxNy41IDMuOCAyMy42IDEwLjRsODggOTZjMTEuOSAxMyAxMS4xIDMzLjMtMiA0NS4ycy0zMy4zIDExLjEtNDUuMi0yTDE5MiAxNDYuM1Y0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMTQ2LjNMOTUuNiAxODEuNmMtMTEuOSAxMy0zMi4yIDEzLjktNDUuMiAycy0xMy45LTMyLjItMi00NS4ybDg4LTk2QzE0Mi41IDM1LjggMTUxIDMyIDE2MCAzMnpNNDUwLjcgMjk0YzguMyA2IDEzLjMgMTUuNyAxMy4zIDI2djk2aDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDQzMiAzODRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJoMTZWMzY0LjRsLTUuOSAyYy0xNi44IDUuNi0zNC45LTMuNS00MC41LTIwLjJzMy41LTM0LjkgMjAuMi00MC41bDQ4LTE2YzkuOC0zLjMgMjAuNS0xLjYgMjguOCA0LjR6bS01LTE0NS4xQTMyIDMyIDAgMSAwIDQxOC4zIDkxYTMyIDMyIDAgMSAwIDI3LjQgNTcuOXptLTQwLjcgNTQuOUMzNjkuNiAxOTIuNCAzNDQgMTU5LjIgMzQ0IDEyMGMwLTQ4LjYgMzkuNC04OCA4OC04OHM4OCAzOS40IDg4IDg4YzAgMjMuNS03LjUgNDYuMy0yMS41IDY1LjJMNDQ5LjcgMjUxYy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi43cy0xNy4yLTMwLjYtNi43LTQ0LjhsNi44LTkuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dVcEFaIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4My42IDQyLjRDMTc3LjUgMzUuOCAxNjkgMzIgMTYwIDMycy0xNy41IDMuOC0yMy42IDEwLjRsLTg4IDk2Yy0xMS45IDEzLTExLjEgMzMuMyAyIDQ1LjJzMzMuMyAxMS4xIDQ1LjItMkwxMjggMTQ2LjNWNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMTQ2LjNsMzIuNCAzNS40YzExLjkgMTMgMzIuMiAxMy45IDQ1LjIgMnMxMy45LTMyLjIgMi00NS4ybC04OC05NnpNMzIwIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1MC43bC03My40IDczLjRjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45czE2LjYgMTkuOCAyOS42IDE5LjhINDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDQyOS4zbDczLjQtNzMuNGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOXMtMTYuNi0xOS44LTI5LjYtMTkuOEgzNTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek00MTYgMzJjLTEyLjEgMC0yMy4yIDYuOC0yOC42IDE3LjdsLTY0IDEyOC0xNiAzMmMtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDcuMi0xNC4zaDg4LjRsNy4yIDE0LjNjNy45IDE1LjggMjcuMSAyMi4yIDQyLjkgMTQuM3MyMi4yLTI3LjEgMTQuMy00Mi45bC0xNi0zMi02NC0xMjhDNDM5LjIgMzguOCA0MjguMSAzMiA0MTYgMzJ6TTM5NS44IDE3Nkw0MTYgMTM1LjYgNDM2LjIgMTc2SDM5NS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd1VwRnJvbUJyYWNrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ2LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxOTIgMTA5LjMgMTkyIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjEwLjcgNzMuNCA3My40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjh6TTY0IDM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd1VwRnJvbUdyb3VuZFdhdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAzNTJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTA5LjNsMjUuNCAyNS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTgwLTgwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtODAgODBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMjU2IDEwOS4zVjMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnptLTE4LjUgNjkuOUMyNDcgNDM3LjQgMjE5LjUgNDQ4IDE5MiA0NDhjLTI2LjkgMC01NS4zLTEwLjgtNzcuNC0yNi4xbDAgMGMtMTEuOS04LjUtMjguMS03LjgtMzkuMiAxLjdjLTE0LjQgMTEuOS0zMi41IDIxLTUwLjYgMjUuMmMtMTcuMiA0LTI3LjkgMjEuMi0yMy45IDM4LjRzMjEuMiAyNy45IDM4LjQgMjMuOWMyNC41LTUuNyA0NC45LTE2LjUgNTguMi0yNUMxMjYuNSA1MDEuNyAxNTkgNTEyIDE5MiA1MTJjMzEuOSAwIDYwLjYtOS45IDgwLjQtMTguOWM1LjgtMi43IDExLjEtNS4zIDE1LjYtNy43YzQuNSAyLjQgOS43IDUuMSAxNS42IDcuN2MxOS44IDkgNDguNSAxOC45IDgwLjQgMTguOWMzMyAwIDY1LjUtMTAuMyA5NC41LTI1LjhjMTMuNCA4LjQgMzMuNyAxOS4zIDU4LjIgMjVjMTcuMiA0IDM0LjQtNi43IDM4LjQtMjMuOXMtNi43LTM0LjQtMjMuOS0zOC40Yy0xOC4xLTQuMi0zNi4yLTEzLjMtNTAuNi0yNS4yYy0xMS4xLTkuNC0yNy4zLTEwLjEtMzkuMi0xLjdsMCAwQzQzOS40IDQzNy4yIDQxMC45IDQ0OCAzODQgNDQ4Yy0yNy41IDAtNTUtMTAuNi03Ny41LTI2LjFjLTExLjEtNy45LTI1LjktNy45LTM3IDB6TTE5MiAxOTJINDhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4VjQyNWM1LjMtMy4xIDExLjItNS40IDE3LjUtNi45YzEzLjEtMy4xIDI2LjctOS44IDM3LjMtMTguNmMyMi4yLTE4LjcgNTQuMy0yMC4xIDc4LjEtMy40YzE4IDEyLjQgNDAuMSAyMC4zIDU5LjEgMjAuM1YxOTJ6bTM4NCA0OGMwLTI2LjUtMjEuNS00OC00OC00OEgzODRWNDE2LjVoMGMxOSAwIDQxLjItNy45IDU5LjItMjAuM2MyMy44LTE2LjcgNTUuOC0xNS4zIDc4LjEgMy40YzEwLjYgOC44IDI0LjIgMTUuNiAzNy4zIDE4LjZjNi4zIDEuNSAxMi4xIDMuOCAxNy41IDYuOVYyNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93VXBGcm9tV2F0ZXJQdW1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMiAwQzg1LjUgMCA2NCAyMS41IDY0IDQ4VjI1Nkg0OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2OTZjMCA4IDIgMTUuNiA1LjQgMjIuMmMzLjgtMS43IDcuOC0zLjEgMTItNC4xYzEzLjEtMy4xIDI2LjctOS44IDM3LjMtMTguNmMyMi4yLTE4LjcgNTQuMy0yMC4xIDc4LjEtMy40YzE4IDEyLjQgNDAuMSAyMC4zIDU5LjIgMjAuM2MyMS4xIDAgNDItOC41IDU5LjItMjAuM2MyMi4xLTE1LjUgNTEuNi0xNS41IDczLjcgMGMxOC40IDEyLjcgMzkuNiAyMC4zIDU5LjIgMjAuM2MxOSAwIDQxLjItNy45IDU5LjItMjAuM2MyMy44LTE2LjcgNTUuOC0xNS4zIDc4LjEgMy40YzEwLjYgOC44IDI0LjIgMTUuNiAzNy4zIDE4LjZjNC4yIDEgOC4yIDIuNCAxMiA0LjFDNTc0IDQxNS42IDU3NiA0MDggNTc2IDQwMFYzMDRjMC0yNi41LTIxLjUtNDgtNDgtNDhINDgwbDAtMTQ2LjcgMjUuNCAyNS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTgwLTgwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtODAgODBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMNDE2IDEwOS4zIDQxNiAyNTZIMjg4VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDExMnpNMzA2LjUgNDIxLjljLTExLjEtNy45LTI1LjktNy45LTM3IDBDMjQ3IDQzNy40IDIxOS41IDQ0OCAxOTIgNDQ4Yy0yNi45IDAtNTUuMy0xMC44LTc3LjQtMjYuMWwwIDBjLTExLjktOC41LTI4LjEtNy44LTM5LjIgMS43Yy0xNC40IDExLjktMzIuNSAyMS01MC42IDI1LjJjLTE3LjIgNC0yNy45IDIxLjItMjMuOSAzOC40czIxLjIgMjcuOSAzOC40IDIzLjljMjQuNS01LjcgNDQuOS0xNi41IDU4LjItMjVDMTI2LjUgNTAxLjcgMTU5IDUxMiAxOTIgNTEyYzMxLjkgMCA2MC42LTkuOSA4MC40LTE4LjljNS44LTIuNyAxMS4xLTUuMyAxNS42LTcuN2M0LjUgMi40IDkuNyA1LjEgMTUuNiA3LjdjMTkuOCA5IDQ4LjUgMTguOSA4MC40IDE4LjljMzMgMCA2NS41LTEwLjMgOTQuNS0yNS44YzEzLjQgOC40IDMzLjcgMTkuMyA1OC4yIDI1YzE3LjIgNCAzNC40LTYuNyAzOC40LTIzLjlzLTYuNy0zNC40LTIzLjktMzguNGMtMTguMS00LjItMzYuMi0xMy4zLTUwLjYtMjUuMmMtMTEuMS05LjQtMjcuMy0xMC4xLTM5LjItMS43bDAgMEM0MzkuNCA0MzcuMiA0MTAuOSA0NDggMzg0IDQ0OGMtMjcuNSAwLTU1LTEwLjYtNzcuNS0yNi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd1VwTG9uZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTQuNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE2MCAxMDkuM1Y0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYxMDkuM2w3My40IDczLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dVcFJpZ2h0RG90cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmg1MC43TDkuNCAyNjUuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwyNTYgMTA5LjNWMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzJjMC0xNy43LTE0LjMtMzItMzItMzJIMTYwek01NzYgODBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNNDQ4IDIwOGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek00MDAgMzg0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptNDggODBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHptMTI4IDBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMjcyIDM4NGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTQ4IDgwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTE0NCA1MTJhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek01NzYgMzM2YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bS00OC04MGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93VXBSaWdodEZyb21TcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoODIuN0wyMDEuNCAyNjUuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw0NDggMTA5LjNWMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzJjMC0xNy43LTE0LjMtMzItMzItMzJIMzIwek04MCAzMkMzNS44IDMyIDAgNjcuOCAwIDExMlY0MzJjMCA0NC4yIDM1LjggODAgODAgODBINDAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwVjMyMGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlY0MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZWMTEyYzAtOC44IDcuMi0xNiAxNi0xNkgxOTJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93VXBTaG9ydFdpZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUxLjYgNDIuNEMxNDUuNSAzNS44IDEzNyAzMiAxMjggMzJzLTE3LjUgMy44LTIzLjYgMTAuNGwtODggOTZjLTExLjkgMTMtMTEuMSAzMy4zIDIgNDUuMnMzMy4zIDExLjEgNDUuMi0yTDk2IDE0Ni4zVjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjE0Ni4zbDMyLjQgMzUuNGMxMS45IDEzIDMyLjIgMTMuOSA0NS4yIDJzMTMuOS0zMi4yIDItNDUuMmwtODgtOTZ6TTMyMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmgzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMjB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyMHptMCAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyMHptMCAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINTQ0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dVcFdpZGVTaG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTEuNiA0Mi40QzE0NS41IDM1LjggMTM3IDMyIDEyOCAzMnMtMTcuNSAzLjgtMjMuNiAxMC40bC04OCA5NmMtMTEuOSAxMy0xMS4xIDMzLjMgMiA0NS4yczMzLjMgMTEuMSA0NS4yLTJMOTYgMTQ2LjNWNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMTQ2LjNsMzIuNCAzNS40YzExLjkgMTMgMzIuMiAxMy45IDQ1LjIgMnMxMy45LTMyLjIgMi00NS4ybC04OC05NnpNMzIwIDQ4MGgzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bTAtMTI4aDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptMC0xMjhINDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptMC0xMjhINTQ0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dVcFpBIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4My42IDQyLjRDMTc3LjUgMzUuOCAxNjkgMzIgMTYwIDMycy0xNy41IDMuOC0yMy42IDEwLjRsLTg4IDk2Yy0xMS45IDEzLTExLjEgMzMuMyAyIDQ1LjJzMzMuMyAxMS4xIDQ1LjItMkwxMjggMTQ2LjNWNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMTQ2LjNsMzIuNCAzNS40YzExLjkgMTMgMzIuMiAxMy45IDQ1LjIgMnMxMy45LTMyLjIgMi00NS4ybC04OC05NnpNMzIwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDUwLjdsLTczLjQgNzMuNGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlzMTYuNiAxOS44IDI5LjYgMTkuOEg0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINDI5LjNsNzMuNC03My40YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45cy0xNi42LTE5LjgtMjkuNi0xOS44SDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTk2IDE5MmMtMTIuMSAwLTIzLjIgNi44LTI4LjYgMTcuN2wtNjQgMTI4LTE2IDMyYy03LjkgMTUuOC0xLjUgMzUgMTQuMyA0Mi45czM1IDEuNSA0Mi45LTE0LjNsNy4yLTE0LjNoODguNGw3LjIgMTQuM2M3LjkgMTUuOCAyNy4xIDIyLjIgNDIuOSAxNC4zczIyLjItMjcuMSAxNC4zLTQyLjlsLTE2LTMyLTY0LTEyOEM0MzkuMiAyNjIuOCA0MjguMSAyNTYgNDE2IDI1NnpNMzk1LjggNDAwTDQxNiAzNTkuNiA0MzYuMiA0MDBIMzk1Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE0LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTYwIDE0MS4yVjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjE0MS4yTDMyOS40IDI0Ni42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93c0Rvd25Ub0xpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQ0IDQxNkwzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJ6bTIyLjYtMTM3LjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMNDgwIDI3NC43IDQ4MCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDIxMC43LTQxLjQtNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsOTYtOTZ6bS0zMjAtNDUuM2MtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBMMTYwIDI3NC43IDE2MCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDIxMC43TDU0LjYgMjMzLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDk2LTk2YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd3NEb3duVG9QZW9wbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0VjE0Mi4xTDk3IDExOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw2NCA2NGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw2NC02NGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0yMyAyM1YyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMzYwIDIwMGE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwek0xODQgMjk2YTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6bTMxMiA0MGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6TTIwMCA0NDEuNWwyNi45IDQ5LjljNi4zIDExLjcgMjAuOCAxNiAzMi41IDkuOHMxNi0yMC44IDkuOC0zMi41bC0zNi4zLTY3LjVjMS43LTEuNyAzLjItMy42IDQuMy01LjhMMjY0IDM0NS41VjQwMGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg0OGMxNy43IDAgMzItMTQuMyAzMi0zMlYzNDUuNWwyNi45IDQ5LjljMS4yIDIuMiAyLjYgNC4xIDQuMyA1LjhsLTM2LjMgNjcuNWMtNi4zIDExLjctMS45IDI2LjIgOS44IDMyLjVzMjYuMiAxLjkgMzIuNS05LjhMNDQwIDQ0MS41VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg0OGMxNy43IDAgMzItMTQuMyAzMi0zMlY0NDEuNWwyNi45IDQ5LjljNi4zIDExLjcgMjAuOCAxNiAzMi41IDkuOHMxNi0yMC44IDkuOC0zMi41bC0zNy45LTcwLjNjLTE1LjMtMjguNS00NS4xLTQ2LjMtNzcuNS00Ni4zSDQ4Ni4yYy0xNi4zIDAtMzEuOSA0LjUtNDUuNCAxMi42bC0zMy42LTYyLjNjLTE1LjMtMjguNS00NS4xLTQ2LjMtNzcuNS00Ni4zSDMxMC4yYy0zMi40IDAtNjIuMSAxNy44LTc3LjUgNDYuM2wtMzMuNiA2Mi4zYy0xMy41LTguMS0yOS4xLTEyLjYtNDUuNC0xMi42SDEzNC4yYy0zMi40IDAtNjIuMSAxNy44LTc3LjUgNDYuM0wxOC45IDQ2OC42Yy02LjMgMTEuNy0xLjkgMjYuMiA5LjggMzIuNXMyNi4yIDEuOSAzMi41LTkuOEw4OCA0NDEuNVY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDQxLjV6TTQxNSAxNTNsNjQgNjRjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNjQtNjRjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMjMgMjNWMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRWMTQyLjFsLTIzLTIzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd3NMZWZ0UmlnaHRUb0xpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjR6bTIxNC42IDczLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNMMjA1LjMgMjI0bDIyOS41IDAtNDEuNC00MS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDk2IDk2YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMNDM0LjcgMjg4bC0yMjkuNSAwIDQxLjQgNDEuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDk2LTk2YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwek02NDAgOTZWNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93c0xlZnRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDYuNiAzNzQuNmw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDQwMi43IDIyNGwtMjkzLjUgMCA0MS40LTQxLjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDEwOS4zIDI4OGwyOTMuNSAwLTQxLjQgNDEuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dzUm90YXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwNS4xIDIwMi42YzcuNy0yMS44IDIwLjItNDIuMyAzNy44LTU5LjhjNjIuNS02Mi41IDE2My44LTYyLjUgMjI2LjMgMEwzODYuMyAxNjBIMzUyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQ2My41YzAgMCAwIDAgMCAwaC40YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjgwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjM1LjJMNDE0LjQgOTcuNmMtODcuNS04Ny41LTIyOS4zLTg3LjUtMzE2LjggMEM3My4yIDEyMiA1NS42IDE1MC43IDQ0LjggMTgxLjRjLTUuOSAxNi43IDIuOSAzNC45IDE5LjUgNDAuOHMzNC45LTIuOSA0MC44LTE5LjV6TTM5IDI4OS4zYy01IDEuNS05LjggNC4yLTEzLjcgOC4yYy00IDQtNi43IDguOC04LjEgMTRjLS4zIDEuMi0uNiAyLjUtLjggMy44Yy0uMyAxLjctLjQgMy40LS40IDUuMVY0MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzOTYuOWwxNy42IDE3LjUgMCAwYzg3LjUgODcuNCAyMjkuMyA4Ny40IDMxNi43IDBjMjQuNC0yNC40IDQyLjEtNTMuMSA1Mi45LTgzLjdjNS45LTE2LjctMi45LTM0LjktMTkuNS00MC44cy0zNC45IDIuOS00MC44IDE5LjVjLTcuNyAyMS44LTIwLjIgNDIuMy0zNy44IDU5LjhjLTYyLjUgNjIuNS0xNjMuOCA2Mi41LTIyNi4zIDBsLS4xLS4xTDEyNS42IDM1MkgxNjBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINDguNGMtMS42IDAtMy4yIC4xLTQuOCAuM3MtMy4xIC41LTQuNiAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd3NTcGluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA5NmMzOC40IDAgNzMuNyAxMy41IDEwMS4zIDM2LjFsLTMyLjYgMzIuNmMtNC42IDQuNi01LjkgMTEuNS0zLjUgMTcuNHM4LjMgOS45IDE0LjggOS45SDQ0OGM4LjggMCAxNi03LjIgMTYtMTZWNjRjMC02LjUtMy45LTEyLjMtOS45LTE0LjhzLTEyLjktMS4xLTE3LjQgMy41bC0zNCAzNEMzNjMuNCA1Mi42IDMxMi4xIDMyIDI1NiAzMmMtMTAuOSAwLTIxLjUgLjgtMzIgMi4zVjk5LjJjMTAuMy0yLjEgMjEtMy4yIDMyLTMuMnpNMTMyLjEgMTU0LjdsMzIuNiAzMi42YzQuNiA0LjYgMTEuNSA1LjkgMTcuNCAzLjVzOS45LTguMyA5LjktMTQuOFY2NGMwLTguOC03LjItMTYtMTYtMTZINjRjLTYuNSAwLTEyLjMgMy45LTE0LjggOS45cy0xLjEgMTIuOSAzLjUgMTcuNGwzNCAzNEM1Mi42IDE0OC42IDMyIDE5OS45IDMyIDI1NmMwIDEwLjkgLjggMjEuNSAyLjMgMzJIOTkuMmMtMi4xLTEwLjMtMy4yLTIxLTMuMi0zMmMwLTM4LjQgMTMuNS03My43IDM2LjEtMTAxLjN6TTQ3Ny43IDIyNEg0MTIuOGMyLjEgMTAuMyAzLjIgMjEgMy4yIDMyYzAgMzguNC0xMy41IDczLjctMzYuMSAxMDEuM2wtMzIuNi0zMi42Yy00LjYtNC42LTExLjUtNS45LTE3LjQtMy41cy05LjkgOC4zLTkuOSAxNC44VjQ0OGMwIDguOCA3LjIgMTYgMTYgMTZINDQ4YzYuNSAwIDEyLjMtMy45IDE0LjgtOS45czEuMS0xMi45LTMuNS0xNy40bC0zNC0zNEM0NTkuNCAzNjMuNCA0ODAgMzEyLjEgNDgwIDI1NmMwLTEwLjktLjgtMjEuNS0yLjMtMzJ6TTI1NiA0MTZjLTM4LjQgMC03My43LTEzLjUtMTAxLjMtMzYuMWwzMi42LTMyLjZjNC42LTQuNiA1LjktMTEuNSAzLjUtMTcuNHMtOC4zLTkuOS0xNC44LTkuOUg2NGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyYzAgNi41IDMuOSAxMi4zIDkuOSAxNC44czEyLjkgMS4xIDE3LjQtMy41bDM0LTM0QzE0OC42IDQ1OS40IDE5OS45IDQ4MCAyNTYgNDgwYzEwLjkgMCAyMS41LS44IDMyLTIuM1Y0MTIuOGMtMTAuMyAyLjEtMjEgMy4yLTMyIDMuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dzU3BsaXRVcEFuZExlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ2LjYgMTUwLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDk2LTk2YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDk2IDk2YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDM1MiAxMDkuM1YzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINDE2Yy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOGMwLTM1LjMtMjguNy02NC02NC02NEgxMDkuM2w0MS40IDQxLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w5Ni05NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zTDEwOS4zIDI1NkgyMjRjMjMuMyAwIDQ1LjIgNi4yIDY0IDE3LjFWMTA5LjNsLTQxLjQgNDEuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dzVG9DaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS40IDkuNEMyMS45LTMuMSA0Mi4xLTMuMSA1NC42IDkuNEwxNjAgMTE0LjdWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnY5NmMwIDQuMy0uOSA4LjUtMi40IDEyLjJjLTEuNiAzLjctMy44IDcuMy02LjkgMTAuM2wtLjEgLjFjLTMuMSAzLTYuNiA1LjMtMTAuMyA2LjljLTMuOCAxLjYtNy45IDIuNC0xMi4yIDIuNEg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmgxOC43TDkuNCA1NC42Qy0zLjEgNDIuMS0zLjEgMjEuOSA5LjQgOS40ek0yNTYgMjU2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNMTE0LjcgMzUySDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDk2IDBsLjEgMGM4LjggMCAxNi43IDMuNiAyMi41IDkuM2wuMSAuMWMzIDMuMSA1LjMgNi42IDYuOSAxMC4zYzEuNiAzLjggMi40IDcuOSAyLjQgMTIuMnY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzOTcuM0w1NC42IDUwMi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxMTQuNyAzNTJ6TTQxNiA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMydjE4LjdMNTg1LjQgOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMNTI1LjMgMTYwSDU0NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg0NDhjLTguOCAwLTE2LjgtMy42LTIyLjYtOS4zbC0uMS0uMWMtMy0zLjEtNS4zLTYuNi02LjktMTAuM3MtMi40LTcuOC0yLjQtMTIuMmwwLS4xdjBWOTZ6TTUyNS4zIDM1Mkw2MzAuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEw0ODAgMzk3LjNWNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjMyMHYwYzAgMCAwLS4xIDAtLjFjMC00LjMgLjktOC40IDIuNC0xMi4yYzEuNi0zLjggMy45LTcuMyA2LjktMTAuNGM1LjgtNS44IDEzLjctOS4zIDIyLjUtOS40YzAgMCAuMSAwIC4xIDBoMCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg1MjUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dzVG9Eb3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNjRoMzJjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOWwtNjQgNjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC02NC02NGMtOS4yLTkuMi0xMS45LTIyLjktNi45LTM0LjlzMTYuNi0xOS44IDI5LjYtMTkuOGgzMlYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTY5LjQgMzkzLjRsNjQtNjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNjQgNjRjOS4yIDkuMiAxMS45IDIyLjkgNi45IDM0LjlzLTE2LjYgMTkuOC0yOS42IDE5LjhIMjg4djMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjQ0OEgxOTJjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45ek0zMiAyMjRINjRWMTkyYzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTY0IDY0Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOXMtMTkuOC0xNi42LTE5LjgtMjkuNlYyODhIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTI5Ny40IDU0LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDY0LTY0YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45czE5LjggMTYuNiAxOS44IDI5LjZ2MzJoMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINDQ4djMyYzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC02NC02NHpNMjU2IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93c1RvRXllIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDE1QzI0LjQgNS43IDM5LjYgNS43IDQ5IDE1bDYzIDYzVjQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR2OTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRINDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRINzguMUwxNSA0OUM1LjcgMzkuNiA1LjcgMjQuNCAxNSAxNXpNMTMzLjUgMjQzLjlDMTU4LjYgMTkzLjYgMjIyLjcgMTEyIDMyMCAxMTJzMTYxLjQgODEuNiAxODYuNSAxMzEuOWMzLjggNy42IDMuOCAxNi41IDAgMjQuMkM0ODEuNCAzMTguNCA0MTcuMyA0MDAgMzIwIDQwMHMtMTYxLjQtODEuNi0xODYuNS0xMzEuOWMtMy44LTcuNi0zLjgtMTYuNSAwLTI0LjJ6TTMyMCAzMjBhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6TTU5MSAxNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTYzIDYzSDYwMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEg1MDRjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRWNzguMWw2My02M3pNMTUgNDk3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw2My02M0g0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGg5NmMxMy4zIDAgMjQgMTAuNyAyNCAyNHY5NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFY0MzMuOUw0OSA0OTdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwem01NzYgMGwtNjMtNjNWNDcyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjM3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGg5NmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEg1NjEuOWw2MyA2M2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd3NUdXJuUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk3LjQgOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDk2IDk2YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMzM4LjcgMTYwSDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMjI0QzAgMTUzLjMgNTcuMyA5NiAxMjggOTZIMzM4LjdMMjk3LjQgNTQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6bS05NiAyNTZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsOTYgOTZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTk2IDk2Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDIuNyA0MTZIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjQ0OGMwLTUzIDQzLTk2IDk2LTk2SDI0Mi43bC00MS40LTQxLjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd3NUdXJuVG9Eb3RzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OS40IDI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM0wyNjkuMyA5NiA0MTYgOTZjNTMgMCA5NiA0MyA5NiA5NnYzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJsLTE0Ni43IDAgMjUuNCAyNS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC04MC04MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsODAtODB6bTEzLjMgMjU2bDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMjQyLjcgNDE2IDk2IDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNDQ4YzAtNTMgNDMtOTYgOTYtOTZsMTQ2LjcgMC0yNS40LTI1LjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDB6TTM4NCAzODRhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek02NCAxOTJBNjQgNjQgMCAxIDEgNjQgNjRhNjQgNjQgMCAxIDEgMCAxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93c1VwRG93bkxlZnRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzguNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw5LjQtOS40VjIyNEgxMDkuM2w5LjQtOS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOS40LTkuNEgyMjRWNDAyLjdsLTkuNC05LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC05LjQgOS40VjI4OEg0MDIuN2wtOS40IDkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDkuNCA5LjRIMjg4VjEwOS4zbDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93c1VwRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODIuNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxMjggMTA5LjNWNDAyLjdMODYuNiAzNjEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsOTYtOTZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMTkyIDQwMi43VjEwOS4zbDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dzVXBUb0xpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgOTZsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2ek05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMjM3LjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMTAuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NnptMzIwIDQ1LjNjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBMNDE2IDIzNy4zIDQxNiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIxMC43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXN0ZXJpc2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjE5OS41bDExMS41LTY2LjljMTUuMi05LjEgMzQuOC00LjIgNDMuOSAxMXM0LjIgMzQuOC0xMSA0My45TDI1NC4yIDI1NmwxMTQuMyA2OC42YzE1LjIgOS4xIDIwLjEgMjguNyAxMSA0My45cy0yOC43IDIwLjEtNDMuOSAxMUwyMjQgMzEyLjVWNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjMxMi41TDQ4LjUgMzc5LjRjLTE1LjIgOS4xLTM0LjggNC4yLTQzLjktMTFzLTQuMi0zNC44IDExLTQzLjlMMTI5LjggMjU2IDE1LjUgMTg3LjRjLTE1LjItOS4xLTIwLjEtMjguNy0xMS00My45czI4LjctMjAuMSA0My45LTExTDE2MCAxOTkuNVY2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDY0QzE1MCA2NCA2NCAxNTAgNjQgMjU2czg2IDE5MiAxOTIgMTkyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyQzExNC42IDUxMiAwIDM5Ny40IDAgMjU2UzExNC42IDAgMjU2IDBTNTEyIDExNC42IDUxMiAyNTZ2MzJjMCA1My00MyA5Ni05NiA5NmMtMjkuMyAwLTU1LjYtMTMuMi03My4yLTMzLjlDMzIwIDM3MS4xIDI4OS41IDM4NCAyNTYgMzg0Yy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOHM1Ny4zLTEyOCAxMjgtMTI4YzI3LjkgMCA1My43IDguOSA3NC43IDI0LjFjNS43LTUgMTMuMS04LjEgMjEuMy04LjFjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2ODAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyNTZjMC0xMDYtODYtMTkyLTE5Mi0xOTJ6bTY0IDE5MmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUF0b20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDM5OC44Yy0xMS44IDUuMS0yMy40IDkuNy0zNC45IDEzLjVjMTYuNyAzMy44IDMxIDM1LjcgMzQuOSAzNS43czE4LjEtMS45IDM0LjktMzUuN2MtMTEuNC0zLjktMjMuMS04LjQtMzQuOS0xMy41ek00NDYgMjU2YzMzIDQ1LjIgNDQuMyA5MC45IDIzLjYgMTI4Yy0yMC4yIDM2LjMtNjIuNSA0OS4zLTExNS4yIDQzLjJjLTIyIDUyLjEtNTUuNiA4NC44LTk4LjQgODQuOHMtNzYuNC0zMi43LTk4LjQtODQuOGMtNTIuNyA2LjEtOTUtNi44LTExNS4yLTQzLjJDMjEuNyAzNDYuOSAzMyAzMDEuMiA2NiAyNTZjLTMzLTQ1LjItNDQuMy05MC45LTIzLjYtMTI4YzIwLjItMzYuMyA2Mi41LTQ5LjMgMTE1LjItNDMuMkMxNzkuNiAzMi43IDIxMy4yIDAgMjU2IDBzNzYuNCAzMi43IDk4LjQgODQuOGM1Mi43LTYuMSA5NSA2LjggMTE1LjIgNDMuMmMyMC43IDM3LjEgOS40IDgyLjgtMjMuNiAxMjh6bS02NS44IDY3LjRjLTEuNyAxNC4yLTMuOSAyOC02LjcgNDEuMmMzMS44IDEuNCAzOC42LTguNyA0MC4yLTExLjdjMi4zLTQuMiA3LTE3LjktMTEuOS00OC4xYy02LjggNi4zLTE0IDEyLjUtMjEuNiAxOC42em0tNi43LTE3NS45YzIuOCAxMy4xIDUgMjYuOSA2LjcgNDEuMmM3LjYgNi4xIDE0LjggMTIuMyAyMS42IDE4LjZjMTguOS0zMC4yIDE0LjItNDQgMTEuOS00OC4xYy0xLjYtMi45LTguNC0xMy00MC4yLTExLjd6TTI5MC45IDk5LjdDMjc0LjEgNjUuOSAyNTkuOSA2NCAyNTYgNjRzLTE4LjEgMS45LTM0LjkgMzUuN2MxMS40IDMuOSAyMy4xIDguNCAzNC45IDEzLjVjMTEuOC01LjEgMjMuNC05LjcgMzQuOS0xMy41em0tMTU5IDg4LjljMS43LTE0LjMgMy45LTI4IDYuNy00MS4yYy0zMS44LTEuNC0zOC42IDguNy00MC4yIDExLjdjLTIuMyA0LjItNyAxNy45IDExLjkgNDguMWM2LjgtNi4zIDE0LTEyLjUgMjEuNi0xOC42ek0xMTAuMiAzMDQuOEM5MS40IDMzNSA5NiAzNDguNyA5OC4zIDM1Mi45YzEuNiAyLjkgOC40IDEzIDQwLjIgMTEuN2MtMi44LTEzLjEtNS0yNi45LTYuNy00MS4yYy03LjYtNi4xLTE0LjgtMTIuMy0yMS42LTE4LjZ6TTMzNiAyNTZhODAgODAgMCAxIDAgLTE2MCAwIDgwIDgwIDAgMSAwIDE2MCAwem0tODAtMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBdWRpb0Rlc2NyaXB0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNMjEzLjUgMTczLjNsNzIgMTQ0YzUuOSAxMS45IDEuMSAyNi4zLTEwLjcgMzIuMnMtMjYuMyAxLjEtMzIuMi0xMC43bC05LjQtMTguOUgxNTAuOWwtOS40IDE4LjljLTUuOSAxMS45LTIwLjMgMTYuNy0zMi4yIDEwLjdzLTE2LjctMjAuMy0xMC43LTMyLjJsNzItMTQ0YzQuMS04LjEgMTIuNC0xMy4zIDIxLjUtMTMuM3MxNy40IDUuMSAyMS41IDEzLjN6bS0uNCAxMDYuNkwxOTIgMjM3LjdsLTIxLjEgNDIuMmg0Mi4yek0zMDQgMTg0YzAtMTMuMyAxMC43LTI0IDI0LTI0aDU2YzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2SDMyOGMtMTMuMyAwLTI0LTEwLjctMjQtMjRWMTg0em00OCAyNHY5NmgzMmMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OEgzNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUF1c3RyYWxTaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1My41IDUxLjdDMjQ4LjYgMzkuOCAyMzYuOSAzMiAyMjQgMzJzLTI0LjYgNy44LTI5LjUgMTkuN0wxMjIuNyAyMjRIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJIOTZMODIuNyAzMjBIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINTZMMzQuNSA0MzUuN2MtNi44IDE2LjMgLjkgMzUgMTcuMiA0MS44czM1LS45IDQxLjgtMTcuMkwxMjUuMyAzODRIMzIyLjdsMzEuOCA3Ni4zYzYuOCAxNi4zIDI1LjUgMjQgNDEuOCAxNy4yczI0LTI1LjUgMTcuMi00MS44TDM5MiAzODRoMjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzY1LjNMMzUyIDI4OGg2NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMjUuM0wyNTMuNSA1MS43ek0yNTYgMjI0SDE5MmwzMi03Ni44TDI1NiAyMjR6bS05MC43IDY0SDI4Mi43TDI5NiAzMjBIMTUybDEzLjMtMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUF3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3My44IDUuNWMxMS03LjMgMjUuNC03LjMgMzYuNCAwTDIyOCAxNy4yYzYgMy45IDEzIDUuOCAyMC4xIDUuNGwyMS4zLTEuM2MxMy4yLS44IDI1LjYgNi40IDMxLjUgMTguMmw5LjYgMTkuMWMzLjIgNi40IDguNCAxMS41IDE0LjcgMTQuN0wzNDQuNSA4M2MxMS44IDUuOSAxOSAxOC4zIDE4LjIgMzEuNWwtMS4zIDIxLjNjLS40IDcuMSAxLjUgMTQuMiA1LjQgMjAuMWwxMS44IDE3LjhjNy4zIDExIDcuMyAyNS40IDAgMzYuNEwzNjYuOCAyMjhjLTMuOSA2LTUuOCAxMy01LjQgMjAuMWwxLjMgMjEuM2MuOCAxMy4yLTYuNCAyNS42LTE4LjIgMzEuNWwtMTkuMSA5LjZjLTYuNCAzLjItMTEuNSA4LjQtMTQuNyAxNC43TDMwMSAzNDQuNWMtNS45IDExLjgtMTguMyAxOS0zMS41IDE4LjJsLTIxLjMtMS4zYy03LjEtLjQtMTQuMiAxLjUtMjAuMSA1LjRsLTE3LjggMTEuOGMtMTEgNy4zLTI1LjQgNy4zLTM2LjQgMEwxNTYgMzY2LjhjLTYtMy45LTEzLTUuOC0yMC4xLTUuNGwtMjEuMyAxLjNjLTEzLjIgLjgtMjUuNi02LjQtMzEuNS0xOC4ybC05LjYtMTkuMWMtMy4yLTYuNC04LjQtMTEuNS0xNC43LTE0LjdMMzkuNSAzMDFjLTExLjgtNS45LTE5LTE4LjMtMTguMi0zMS41bDEuMy0yMS4zYy40LTcuMS0xLjUtMTQuMi01LjQtMjAuMUw1LjUgMjEwLjJjLTcuMy0xMS03LjMtMjUuNCAwLTM2LjRMMTcuMiAxNTZjMy45LTYgNS44LTEzIDUuNC0yMC4xbC0xLjMtMjEuM2MtLjgtMTMuMiA2LjQtMjUuNiAxOC4yLTMxLjVsMTkuMS05LjZDNjUgNzAuMiA3MC4yIDY1IDczLjQgNTguNkw4MyAzOS41YzUuOS0xMS44IDE4LjMtMTkgMzEuNS0xOC4ybDIxLjMgMS4zYzcuMSAuNCAxNC4yLTEuNSAyMC4xLTUuNEwxNzMuOCA1LjV6TTI3MiAxOTJhODAgODAgMCAxIDAgLTE2MCAwIDgwIDgwIDAgMSAwIDE2MCAwek0xLjMgNDQxLjhMNDQuNCAzMzkuM2MuMiAuMSAuMyAuMiAuNCAuNGw5LjYgMTkuMWMxMS43IDIzLjIgMzYgMzcuMyA2MiAzNS44bDIxLjMtMS4zYy4yIDAgLjUgMCAuNyAuMmwxNy44IDExLjhjNS4xIDMuMyAxMC41IDUuOSAxNi4xIDcuN2wtMzcuNiA4OS4zYy0yLjMgNS41LTcuNCA5LjItMTMuMyA5LjdzLTExLjYtMi4yLTE0LjgtNy4yTDc0LjQgNDU1LjVsLTU2LjEgOC4zYy01LjcgLjgtMTEuNC0xLjUtMTUtNnMtNC4zLTEwLjctMi4xLTE2em0yNDggNjAuNEwyMTEuNyA0MTNjNS42LTEuOCAxMS00LjMgMTYuMS03LjdsMTcuOC0xMS44Yy4yLS4xIC40LS4yIC43LS4ybDIxLjMgMS4zYzI2IDEuNSA1MC4zLTEyLjYgNjItMzUuOGw5LjYtMTkuMWMuMS0uMiAuMi0uMyAuNC0uNGw0My4yIDEwMi41YzIuMiA1LjMgMS40IDExLjQtMi4xIDE2cy05LjMgNi45LTE1IDZsLTU2LjEtOC4zLTMyLjIgNDkuMmMtMy4yIDUtOC45IDcuNy0xNC44IDcuMnMtMTEtNC4zLTEzLjMtOS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWMjU2IDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgxOTJjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhjMC00Ni41LTI0LjgtODcuMy02Mi0xMDkuN2MxOC43LTIyLjMgMzAtNTEgMzAtODIuM2MwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEg2NHptOTYgMTkySDY0Vjk2aDk2YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0ek02NCAyODhoOTYgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRINjRWMjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYWJ5Q2FycmlhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDE5MkguMUMyLjcgMTE3LjkgNDEuMyA1Mi45IDk5IDE0LjFjMTMuMy04LjkgMzAuOC00LjMgMzkuOSA4LjhMMjU2IDE5MnptMTI4LTMyYzAtMzUuMyAyOC43LTY0IDY0LTY0aDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwdjY0YzAgMjUuMi01LjggNTAuMi0xNyA3My41cy0yNy44IDQ0LjUtNDguNiA2Mi4zcy00NS41IDMyLTcyLjcgNDEuNlMyNTMuNCA0MTYgMjI0IDQxNnMtNTguNS01LTg1LjctMTQuNnMtNTEuOS0yMy44LTcyLjctNDEuNnMtMzcuMy0zOS00OC42LTYyLjNTMCAyNDkuMiAwIDIyNGwyMjQgMCAxNjAgMFYxNjB6TTgwIDQxNmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6bTI0MCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYWJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1MiA4OGE3MiA3MiAwIDEgMSAxNDQgMEE3MiA3MiAwIDEgMSAxNTIgODh6TTM5LjcgMTQ0LjVjMTMtMTcuOSAzOC0yMS44IDU1LjktOC44TDEzMS44IDE2MmMyNi44IDE5LjUgNTkuMSAzMCA5Mi4yIDMwczY1LjQtMTAuNSA5Mi4yLTMwbDM2LjItMjYuNGMxNy45LTEzIDQyLjktOSA1NS45IDguOHM5IDQyLjktOC44IDU1LjlsLTM2LjIgMjYuNGMtMTMuNiA5LjktMjguMSAxOC4yLTQzLjMgMjVWMjg4SDEyOFYyNTEuN2MtMTUuMi02LjctMjkuNy0xNS4xLTQzLjMtMjVMNDguNSAyMDAuM2MtMTcuOS0xMy0yMS44LTM4LTguOC01NS45em04OS44IDE4NC44bDYwLjYgNTMtMjYgMzcuMiAyNC4zIDI0LjNjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZzLTQwLjkgMTUuNi01Ni42IDBsLTQ4LTQ4QzcwIDQzOC42IDY4LjEgNDE3IDc5LjIgNDAxLjFsNTAuMi03MS44em0xMjguNSA1M2w2MC42LTUzIDUwLjIgNzEuOGMxMS4xIDE1LjkgOS4yIDM3LjUtNC41IDUxLjJsLTQ4IDQ4Yy0xNS42IDE1LjYtNDAuOSAxNS42LTU2LjYgMHMtMTUuNi00MC45IDAtNTYuNkwyODQgNDE5LjRsLTI2LTM3LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhY2t3YXJkRmFzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTMuNiA0NDVjLTExLjIgNS4zLTI0LjUgMy42LTM0LjEtNC40TDI4OCAyOTcuN1Y0MTZjMCAxMi40LTcuMiAyMy43LTE4LjQgMjlzLTI0LjUgMy42LTM0LjEtNC40TDY0IDI5Ny43VjQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY5NkMwIDc4LjMgMTQuMyA2NCAzMiA2NHMzMiAxNC4zIDMyIDMyVjIxNC4zTDIzNS41IDcxLjRjOS41LTcuOSAyMi44LTkuNyAzNC4xLTQuNFMyODggODMuNiAyODggOTZWMjE0LjNMNDU5LjUgNzEuNGM5LjUtNy45IDIyLjgtOS43IDM0LjEtNC40UzUxMiA4My42IDUxMiA5NlY0MTZjMCAxMi40LTcuMiAyMy43LTE4LjQgMjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhY2t3YXJkU3RlcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNjcuNSA0NDAuNmM5LjUgNy45IDIyLjggOS43IDM0LjEgNC40czE4LjQtMTYuNiAxOC40LTI5Vjk2YzAtMTIuNC03LjItMjMuNy0xOC40LTI5cy0yNC41LTMuNi0zNC4xIDQuNGwtMTkyIDE2MEw2NCAyNDFWOTZjMC0xNy43LTE0LjMtMzItMzItMzJTMCA3OC4zIDAgOTZWNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMjcxbDExLjUgOS42IDE5MiAxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhY2t3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1OS41IDQ0MC42YzkuNSA3LjkgMjIuOCA5LjcgMzQuMSA0LjRzMTguNC0xNi42IDE4LjQtMjlWOTZjMC0xMi40LTcuMi0yMy43LTE4LjQtMjlzLTI0LjUtMy42LTM0LjEgNC40TDI4OCAyMTQuM1YyNTZ2NDEuN0w0NTkuNSA0NDAuNnpNMjU2IDM1MlYyNTYgMTI4IDk2YzAtMTIuNC03LjItMjMuNy0xOC40LTI5cy0yNC41LTMuNi0zNC4xIDQuNGwtMTkyIDE2MEM0LjIgMjM3LjUgMCAyNDYuNSAwIDI1NnM0LjIgMTguNSAxMS41IDI0LjZsMTkyIDE2MGM5LjUgNy45IDIyLjggOS43IDM0LjEgNC40czE4LjQtMTYuNiAxOC40LTI5VjM1MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFjb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM5LjIgMS4yYzExLjItMy4yIDIzLjItLjEgMzEuNCA4LjFMNTE4IDU2LjdsLTI2LjUgNy45Yy01OCAxNi42LTk4LjEgMzkuNi0xMjkuNiA2Ny40Yy0zMS4yIDI3LjUtNTMuMiA1OS4xLTc1LjEgOTAuOWwtMi4zIDMuM0MyNDEuNiAyODguNyAxOTUgMzU2LjYgNzIuOCA0MTcuN0wzNy45IDQzNS4yIDkuNCA0MDYuNmMtNy4zLTcuMy0xMC42LTE3LjYtOS0yNy44czguMS0xOC45IDE3LjMtMjMuNUMxMzYuMSAyOTYuMiAxODAuOSAyMzEgMjIzLjMgMTY5LjNsMi4zLTMuNGMyMS44LTMxLjggNDQuOS02NC45IDc3LjctOTMuOWMzMy40LTI5LjUgNzUuOC01My42IDEzNS45LTcwLjh6TTYxLjggNDU5bDI1LjQtMTIuN2MxMjkuNS02NC43IDE3OS45LTEzOC4xIDIyMy44LTIwMmwyLjItMy4zYzIyLjEtMzIuMSA0Mi4xLTYwLjUgNjkuOS04NS4xYzI3LjUtMjQuMyA2My40LTQ1LjIgMTE3LjMtNjAuNmwwIDAgLjItLjEgNDMuMS0xMi45IDIzIDIzYzggOCAxMS4yIDE5LjcgOC4zIDMwLjdzLTExLjMgMTkuNi0yMi4yIDIyLjdjLTUxLjkgMTQuOC04NS42IDM0LjctMTExLjEgNTcuMmMtMjYuMSAyMy00NS4xIDQ5LjktNjcuMyA4Mi4xbC0yLjIgMy4yQzMyNy44IDM2NS45IDI3NS41IDQ0MiAxNDIuMyA1MDguNmMtMTIuMyA2LjItMjcuMiAzLjctMzYuOS02TDYxLjggNDU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYWN0ZXJpYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDQuOSAuN2MtOS42LTIuNy0xOS41IDIuOC0yMi4zIDEyLjRsLTQuMyAxNS4yYy04LjMtLjYtMTYuOCAwLTI1LjIgMS45Yy03LjMgMS43LTE0LjMgMy41LTIxLjEgNS41bC01LjUtMTIuN2MtMy45LTkuMS0xNC41LTEzLjQtMjMuNi05LjVzLTEzLjQgMTQuNS05LjUgMjMuNmw0LjQgMTAuNGMtMTYuNiA2LjctMzEuNyAxNC40LTQ1LjQgMjIuOEwxNDcgNjJjLTUuNS04LjMtMTYuNy0xMC41LTI1LTVzLTEwLjUgMTYuNy01IDI1bDYgOWMtMTMuNyAxMS0yNS41IDIyLjgtMzUuOCAzNC45bC0xMC04Yy03LjgtNi4yLTE5LjEtNS0yNS4zIDIuOHMtNSAxOS4xIDIuOCAyNS4zTDY1LjkgMTU1Yy0xLjggMi44LTMuNSA1LjctNS4xIDguNWMtNi42IDExLjQtMTEuOCAyMi42LTE2IDMzbC04LTMuMmMtOS4yLTMuNy0xOS43IC44LTIzLjQgMTBzLjggMTkuNyAxMCAyMy40bDEwLjQgNC4yYy0uMiAuOC0uNCAxLjUtLjUgMi4zYy0yLjIgOS4zLTMuNCAxNy4zLTQuMSAyMy40Yy0uNCAzLjEtLjYgNS43LS44IDcuOGMtLjEgMS4xLS4xIDItLjIgMi44bC0uMSAxLjEgMCAuNSAwIC4yIDAgLjFjMCAwIDAgLjEgMjkuMSAxbC0uMSAwTDI4IDI2OS4zYy0uMSAzLjEgMCA2LjEgLjIgOS4xbC0xNS4yIDQuM0MzLjUgMjg1LjQtMiAyOTUuNCAuNyAzMDQuOXMxMi43IDE1LjEgMjIuMyAxMi40bDE1LjYtNC41YzcuNiAxMy42IDE4LjkgMjUgMzIuNiAzMi42TDY2LjcgMzYxYy0yLjcgOS42IDIuOCAxOS41IDEyLjQgMjIuM3MxOS41LTIuOCAyMi4zLTEyLjRsNC4zLTE1LjJjMS4yIC4xIDIuNCAuMiAzLjYgLjJjMTUuNiAuNSAzMC4zLTMuMyA0My0xMC4ybDkgOWM3IDcgMTguNCA3IDI1LjUgMHM3LTE4LjQgMC0yNS41bC03LjItNy4yYzkuMy0xMi42IDE1LjItMjcuOCAxNi4zLTQ0LjVsNy4xIDNjOS4xIDMuOSAxOS43LS4zIDIzLjYtOS41cy0uMy0xOS43LTkuNS0yMy42bC04LjYtMy43YzYuNC05LjkgMTcuMy0yMi40IDM2LjktMzMuM2wxLjMgNC40YzIuNyA5LjYgMTIuNyAxNS4xIDIyLjMgMTIuNHMxNS4xLTEyLjcgMTIuNC0yMi4zbC0yLjMtOC4xYzMuOC0xLjEgNy43LTIuMSAxMS45LTMuMWMxMS42LTIuNyAyMi4xLTcuNyAzMS4xLTE0LjRsNy4yIDcuMmM3IDcgMTguNCA3IDI1LjUgMHM3LTE4LjQgMC0yNS41bC05LTljNy42LTEzLjkgMTEuMy0zMC4xIDEwLjEtNDYuNmwxNS4yLTQuM2M5LjYtMi43IDE1LjEtMTIuNyAxMi40LTIyLjNTMzcwLjYgNjQgMzYxIDY2LjdsLTE1LjYgNC41Yy03LjctMTMuOS0xOS4xLTI1LjEtMzIuNi0zMi42bDQuNS0xNS42YzIuNy05LjYtMi44LTE5LjUtMTIuNC0yMi4zek0xMTIgMjcybC00OC0xLjUgMCAwYzExLjcgLjQgMjcuMyAuOSA0OCAxLjZ6bTE2LTgwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptNjQtNDhhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHpNMzIyLjcgNDg5Yy0yLjcgOS42IDIuOCAxOS41IDEyLjQgMjIuM3MxOS41LTIuOCAyMi4yLTEyLjRsNC4zLTE1LjJjOC4zIC42IDE2LjggMCAyNS4yLTEuOWM3LjMtMS43IDE0LjMtMy41IDIxLjEtNS41bDUuNSAxMi43YzMuOSA5LjEgMTQuNSAxMy40IDIzLjYgOS41czEzLjQtMTQuNSA5LjUtMjMuNmwtNC40LTEwLjRjMTYuNi02LjcgMzEuNy0xNC40IDQ1LjQtMjIuOEw0OTMgNDUwYzUuNSA4LjMgMTYuNyAxMC41IDI1IDVzMTAuNS0xNi43IDUtMjVsLTYtOWMxMy43LTExIDI1LjUtMjIuOCAzNS44LTM0LjlsMTAgOGM3LjggNi4yIDE5LjEgNSAyNS4zLTIuOHM1LTE5LjEtMi44LTI1LjNMNTc0LjEgMzU3YzEuOC0yLjggMy41LTUuNyA1LjEtOC41YzYuNi0xMS40IDExLjgtMjIuNiAxNi0zM2w4IDMuMmM5LjIgMy43IDE5LjctLjggMjMuNC0xMHMtLjgtMTkuNy0xMC0yMy40bC0xMC40LTQuMmMuMi0uOCAuNC0xLjUgLjUtMi4zYzIuMi05LjMgMy40LTE3LjMgNC4xLTIzLjRjLjQtMy4xIC42LTUuNyAuOC03LjhjLjEtMS4xIC4xLTIgLjItMi44bC4xLTEuMSAwLS41IDAtLjIgMC0uMWMwIDAgMC0uMS0yOS4xLTFsLjEgMCAyOS4xIC45Yy4xLTMuMSAwLTYuMS0uMi05LjFsMTUuMi00LjNjOS42LTIuNyAxNS4xLTEyLjcgMTIuNC0yMi4zcy0xMi43LTE1LjEtMjIuMy0xMi40bC0xNS42IDQuNWMtNy42LTEzLjYtMTguOS0yNS0zMi42LTMyLjZsNC41LTE1LjZjMi43LTkuNi0yLjgtMTkuNS0xMi40LTIyLjNzLTE5LjUgMi44LTIyLjMgMTIuNGwtNC4zIDE1LjJjLTEuMi0uMS0yLjQtLjItMy42LS4yYy0xNS42LS41LTMwLjMgMy4zLTQzIDEwLjJsLTktOWMtNy03LTE4LjQtNy0yNS41IDBzLTcgMTguNCAwIDI1LjVsNy4yIDcuMmMtOS4zIDEyLjYtMTUuMiAyNy44LTE2LjMgNDQuNWwtNy4xLTNjLTkuMS0zLjktMTkuNyAuMy0yMy42IDkuNXMuMyAxOS43IDkuNSAyMy42bDguNiAzLjdjLTYuNCA5LjktMTcuMyAyMi40LTM2LjkgMzMuM2wtMS4zLTQuNGMtMi43LTkuNi0xMi43LTE1LjEtMjIuMy0xMi40cy0xNS4xIDEyLjctMTIuNCAyMi4zbDIuMyA4LjFjLTMuOCAxLjEtNy43IDIuMS0xMS45IDMuMWMtMTEuNiAyLjctMjIuMSA3LjctMzEuMSAxNC40bC03LjItNy4yYy03LTctMTguNC03LTI1LjUgMHMtNyAxOC40IDAgMjUuNWw5IDljLTcuNiAxMy45LTExLjMgMzAuMS0xMC4xIDQ2LjZsLTE1LjIgNC4zYy05LjYgMi43LTE1LjEgMTIuNy0xMi40IDIyLjJzMTIuNyAxNS4xIDIyLjMgMTIuNGwxNS42LTQuNWM3LjcgMTMuOSAxOS4xIDI1LjEgMzIuNiAzMi42TDMyMi43IDQ4OXpNNTc2IDI0MS41bDAgMGMtMTEuNy0uNC0yNy4zLS45LTQ4LTEuNmw0OCAxLjV6TTQ0OCAzODRhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFjdGVyaXVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyMy4xIDMwLjZjMy42LTEyLjctMy43LTI2LTE2LjUtMjkuN3MtMjYgMy43LTI5LjcgMTYuNWwtNC4yIDE0LjdjLTkuOC0uNC0xOS45IC41LTI5LjkgMi44Yy0xMi4xIDIuOC0yMy43IDUuOS0zNC45IDkuNGwtNS45LTEzLjdjLTUuMi0xMi4yLTE5LjMtMTcuOC0zMS41LTEyLjZzLTE3LjggMTkuMy0xMi42IDMxLjVsNC45IDExLjNjLTIyIDkuNC00MiAyMC4xLTYwLjIgMzEuOEwxOTYgODIuN2MtNy40LTExLTIyLjMtMTQtMzMuMy02LjdzLTE0IDIyLjMtNi43IDMzLjNsNy44IDExLjZjLTE4IDE1LTMzLjcgMzAuOC00Ny4zIDQ3LjFMMTAzIDE1Ny4zYy0xMC40LTguMy0yNS41LTYuNi0zMy43IDMuN3MtNi42IDI1LjUgMy43IDMzLjdsMTUgMTJjLTIuMSAzLjItNC4xIDYuNS02IDkuN2MtOS40IDE1LjctMTcgMzEtMjMuMiA0NS4zbC05LjktMy45Yy0xMi4zLTQuOS0yNi4zIDEuMS0zMS4yIDEzLjRzMS4xIDI2LjMgMTMuNCAzMS4ybDExLjYgNC42Yy0uMyAxLjEtLjYgMi4xLS45IDMuMWMtMy41IDEyLjUtNS43IDIzLjItNy4xIDMxLjNjLS43IDQuMS0xLjIgNy41LTEuNiAxMC4zYy0uMiAxLjQtLjMgMi42LS40IDMuNmwtLjEgMS40LS4xIC42IDAgLjMgMCAuMWMwIDAgMCAuMSAzOS4yIDMuN2wwIDAtMzkuMi0zLjZjLS41IDUtLjYgMTAtLjQgMTQuOWwtMTQuNyA0LjJDNC43IDM4MC42LTIuNyAzOTMuOCAuOSA0MDYuNnMxNi45IDIwLjEgMjkuNyAxNi41bDEzLjgtMy45YzEwLjYgMjAuNyAyNy42IDM3LjggNDguNSA0OC41bC0zLjkgMTMuN2MtMy42IDEyLjcgMy43IDI2IDE2LjUgMjkuN3MyNi0zLjcgMjkuNy0xNi41bDQuMi0xNC43YzIzLjggMSA0Ni4zLTUuNSA2NS4xLTE3LjZMMjE1IDQ3M2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTEwLjYtMTAuNmM5LjEtMTQuMSAxNS4xLTMwLjUgMTctNDguM2wuMS0uOGMuMy0xLjcgMS01LjEgMi4zLTkuOGwuMi0uOCAxMi42IDUuNGMxMi4yIDUuMiAyNi4zLS40IDMxLjUtMTIuNnMtLjQtMjYuMy0xMi42LTMxLjVsLTExLjMtNC44YzkuOS0xNC45IDI0LjktMzEuNiA0OC42LTQ2bDIuMSA3LjVjMy42IDEyLjcgMTYuOSAyMC4xIDI5LjcgMTYuNXMyMC4xLTE2LjkgMTYuNS0yOS43TDM3MSAyNTkuMmM2LjktMi4yIDE0LjMtNC4zIDIyLjItNi4xYzEyLjktMyAyNC43LTggMzUuMi0xNC44TDQzOSAyNDljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xMC42LTEwLjZjMTIuMi0xOSAxOC42LTQxLjYgMTcuNi02NS4xbDE0LjctNC4yYzEyLjctMy42IDIwLjEtMTYuOSAxNi41LTI5LjdzLTE2LjktMjAuMS0yOS43LTE2LjVsLTEzLjcgMy45Yy0xMC44LTIxLjItMjgtMzgtNDguNS00OC41bDMuOS0xMy44ek05Mi4xIDM2My4zbDAgMEwxNDQgMzY4bC01MS45LTQuN3pNMTEyIDMyMGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0yNDAgMTg0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFnU2hvcHBpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDExMmMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0djQ4SDE2MFYxMTJ6bS00OCA0OEg0OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhWNDE2YzAgNTMgNDMgOTYgOTYgOTZIMzUyYzUzIDAgOTYtNDMgOTYtOTZWMjA4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDMzNlYxMTJDMzM2IDUwLjEgMjg1LjkgMCAyMjQgMFMxMTIgNTAuMSAxMTIgMTEydjQ4em0yNCA0OGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTE1MiAyNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYWhhaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMGMxNC41IDAgMjcuMiA5LjcgMzAuOSAyMy44bDIzLjkgODkuNiA3NS45LTUzLjNjMTEuOS04LjMgMjcuOC03LjYgMzkgMS43czE0LjYgMjQuOSA4LjQgMzguMWwtMzkuMyA4NCA5Mi40IDhjMTQuNCAxLjIgMjYuMiAxMiAyOC44IDI2LjNzLTQuOSAyOC41LTE4IDM0LjZsLTg0LjEgMzkuMSA2NS43IDY1LjVjMTAuMyAxMC4yIDEyLjQgMjYuMSA1LjEgMzguN3MtMjIgMTguNy0zNiAxNC45TDM5MSAzODYuOGw4LjIgOTIuNGMxLjMgMTQuNC03LjMgMjcuOS0yMC45IDMyLjlzLTI4LjkgLjEtMzcuMi0xMS43bC01My4xLTc2LTUzLjEgNzZjLTguMyAxMS45LTIzLjYgMTYuNy0zNy4yIDExLjdzLTIyLjItMTguNS0yMC45LTMyLjlsOC4yLTkyLjRMOTUuNCA0MTAuOWMtMTQgMy44LTI4LjgtMi4zLTM2LTE0LjlzLTUuMi0yOC40IDUuMS0zOC43bDY1LjctNjUuNUw0NiAyNTIuN2MtMTMuMS02LjEtMjAuNS0yMC4zLTE4LTM0LjZzMTQuMy0yNS4xIDI4LjgtMjYuM2w5Mi40LTgtMzkuMy04NGMtNi4xLTEzLjEtMi43LTI4LjggOC40LTM4LjFzMjcuMS0xMCAzOS0xLjdsNzUuOSA1My4zIDIzLjktODkuNkMyNjAuOCA5LjcgMjczLjUgMCAyODggMHptMCAxNTYuMmwtNC44IDE4Yy0yLjcgMTAuMS0xMC4yIDE4LjItMjAgMjEuOHMtMjAuOCAyLjEtMjkuMy0zLjlsLTE1LjItMTAuNyA3LjkgMTYuOGM0LjQgOS41IDQgMjAuNS0xLjMgMjkuNnMtMTQuNSAxNS0yNSAxNS45bC0xOC41IDEuNiAxNi44IDcuOGM5LjUgNC40IDE2LjIgMTMuMiAxOCAyMy41cy0xLjUgMjAuOC04LjkgMjguMmwtMTMuMiAxMy4xIDE3LjktNC44YzEwLjEtMi43IDIwLjktLjMgMjguOSA2LjRzMTIuMiAxNi45IDExLjMgMjcuM2wtMS42IDE4LjUgMTAuNi0xNS4yYzYtOC42IDE1LjgtMTMuNyAyNi4yLTEzLjdzMjAuMiA1LjEgMjYuMiAxMy43bDEwLjYgMTUuMi0xLjYtMTguNWMtLjktMTAuNCAzLjMtMjAuNiAxMS4zLTI3LjNzMTguOC05LjEgMjguOS02LjRsMTcuOSA0LjgtMTMuMi0xMy4xYy03LjQtNy40LTEwLjctMTcuOS04LjktMjguMnM4LjUtMTkuMSAxOC0yMy41bDE2LjgtNy44LTE4LjUtMS42Yy0xMC40LS45LTE5LjctNi44LTI1LTE1LjlzLTUuNy0yMC4xLTEuMy0yOS42bDcuOS0xNi44LTE1LjIgMTAuN2MtOC42IDYtMTkuNSA3LjUtMjkuMyAzLjlzLTE3LjMtMTEuNy0yMC0yMS44bC00LjgtMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhaHRTaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMlY2NEgzNy42QzE2LjggNjQgMCA4MC44IDAgMTAxLjZWMjI0djQxLjdWMjg4IDQwNi4zYzAgMjMgMTguNyA0MS43IDQxLjcgNDEuN0gxMTJ2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY0NDhoMzJjNjEuOSAwIDExMi01MC4xIDExMi0xMTJjMC00MC4xLTIxLjEtNzUuMy01Mi43LTk1LjFDMjgwLjMgMjIyLjYgMjg4IDIwMC4yIDI4OCAxNzZjMC02MS45LTUwLjEtMTEyLTExMi0xMTJWMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTExMiAxMjh2OTZINjRWMTI4aDQ4em02NCA5NlYxMjhjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDh6bS02NCA2NHY5Nkg2NFYyODhoNDh6bTY0IDk2VjI4OGgzMmMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OEgxNzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhblNtb2tpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTkuNSAxNDQuOEwxNzguNyAyMjRsOTYgOTYgOTIuNSA5Mi41QzMzNS45IDQzNC45IDI5Ny41IDQ0OCAyNTYgNDQ4QzE1MCA0NDggNjQgMzYyIDY0IDI1NmMwLTQxLjUgMTMuMS03OS45IDM1LjUtMTExLjJ6TTMzMy4zIDI4OGwtMzItMzJIMzg0djMySDMzMy4zem0zMiAzMkg0MDBjOC44IDAgMTYtNy4yIDE2LTE2VjI0MGMwLTguOC03LjItMTYtMTYtMTZIMjY5LjNMMTQ0LjggOTkuNUMxNzYuMSA3Ny4xIDIxNC41IDY0IDI1NiA2NGMxMDYgMCAxOTIgODYgMTkyIDE5MmMwIDQxLjUtMTMuMSA3OS45LTM1LjUgMTExLjJMMzY1LjMgMzIwek0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjcyIDk2Yy04LjggMC0xNiA3LjItMTYgMTZjMCAyNi41IDIxLjUgNDggNDggNDhoMzJjOC44IDAgMTYgNy4yIDE2IDE2czcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZjMC0yNi41LTIxLjUtNDgtNDgtNDhIMzA0Yy04LjggMC0xNi03LjItMTYtMTZzLTcuMi0xNi0xNi0xNnpNMjI5LjUgMzIwbC05Ni05NkgxMTJjLTguOCAwLTE2IDcuMi0xNiAxNnY2NGMwIDguOCA3LjIgMTYgMTYgMTZIMjI5LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjcuMiA0MTIuNUw5OS41IDE0NC44Qzc3LjEgMTc2LjEgNjQgMjE0LjUgNjQgMjU2YzAgMTA2IDg2IDE5MiAxOTIgMTkyYzQxLjUgMCA3OS45LTEzLjEgMTExLjItMzUuNXptNDUuMy00NS4zQzQzNC45IDMzNS45IDQ0OCAyOTcuNSA0NDggMjU2YzAtMTA2LTg2LTE5Mi0xOTItMTkyYy00MS41IDAtNzkuOSAxMy4xLTExMS4yIDM1LjVMNDEyLjUgMzY3LjJ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFuZGFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAgNDE2aDk2YzM1LjMgMCA2NC0yOC43IDY0LTY0VjE2MGMwLTM1LjMtMjguNy02NC02NC02NEg0ODBWNDE2ek00NDggOTZIMTkyVjQxNkg0NDhWOTZ6TTY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MFYzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRoOTZWOTZINjR6TTI0OCAyMDhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjQ4IDMwNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYW5nbGFkZXNoaVRha2FTaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2IDMyLjJDMTguNCAzMC4xIDIuNCA0Mi41IC4yIDYwUzEwLjUgOTMuNiAyOCA5NS44bDcuOSAxYzE2IDIgMjggMTUuNiAyOCAzMS44VjE2MEgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg2NFYzODRjMCA1MyA0MyA5NiA5NiA5NmgzMmMxMDYgMCAxOTItODYgMTkyLTE5MlYyNTZjMC01My00My05Ni05Ni05NkgyNzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2MzJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhIMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMlYyMjRoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTI4VjEyOC41YzAtNDguNC0zNi4xLTg5LjMtODQuMS05NS4zbC03LjktMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFyY29kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNCAzMkMxMC43IDMyIDAgNDIuNyAwIDU2VjQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNEg0MGMxMy4zIDAgMjQtMTAuNyAyNC0yNFY1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNEgyNHptODggMGMtOC44IDAtMTYgNy4yLTE2IDE2VjQ2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjQ4YzAtOC44LTcuMi0xNi0xNi0xNnptNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRWNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0aDE2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjU2YzAtMTMuMy0xMC43LTI0LTI0LTI0SDE4NHptOTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRWNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0aDE2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjU2YzAtMTMuMy0xMC43LTI0LTI0LTI0SDI4MHpNNDQ4IDU2VjQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFY1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNEg0NzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0tNjQtOFY0NjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlY0OGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFyc1Byb2dyZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAxNjBIMzIwVjEyOEg0NDh2MzJ6TTQ4IDY0QzIxLjUgNjQgMCA4NS41IDAgMTEydjY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDQ2NGMyNi41IDAgNDgtMjEuNSA0OC00OFYxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDhINDh6TTQ0OCAzNTJ2MzJIMTkyVjM1Mkg0NDh6TTQ4IDI4OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2NjRjMCAyNi41IDIxLjUgNDggNDggNDhINDY0YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjMzNmMwLTI2LjUtMjEuNS00OC00OC00OEg0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFyc1N0YWdnZXJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0SDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMkMxNC4zIDEyOCAwIDExMy43IDAgOTZ6TTY0IDI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMkg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00NDggNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0SDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMkMxNC4zIDEyOCAwIDExMy43IDAgOTZ6TTAgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMySDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJINDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYXNlYmFsbEJhdEJhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDI0IDBjLTEyLjQgMC0yNC4yIDQuOS0zMyAxMy43TDIzMy41IDE3MS4yYy0xMC41IDEwLjUtMTkuOCAyMi4xLTI3LjcgMzQuNkwxMzIuNyAzMjEuNmMtNy4zIDExLjUtMTUuOCAyMi4yLTI1LjUgMzEuOUw2OS45IDM5MC43bDUxLjMgNTEuMyAzNy4zLTM3LjNjOS42LTkuNiAyMC4zLTE4LjIgMzEuOS0yNS41bDExNS44LTczLjFjMTIuNS03LjkgMjQuMS0xNy4yIDM0LjYtMjcuN0w0OTguMyAxMjFjOC43LTguNyAxMy43LTIwLjYgMTMuNy0zM3MtNC45LTI0LjItMTMuNy0zM0w0NTcgMTMuN0M0NDguMiA0LjkgNDM2LjQgMCA0MjQgMHptODggNDMyYTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHpNMTUgMzk5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw2NCA2NGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDkgMzk5Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFzZWJhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjIuNyAyMjMuNGMtNC44IC40LTkuNyAuNi0xNC43IC42Yy0xNS42IDAtMzAuOC0yLTQ1LjItNS45QzE5LjIgMTA3LjEgMTA3LjEgMTkuMiAyMTguMSAyLjhDMjIyIDE3LjIgMjI0IDMyLjQgMjI0IDQ4YzAgNC45LS4yIDkuOC0uNiAxNC43Yy0uNyA4LjggNS44IDE2LjUgMTQuNiAxNy4zczE2LjUtNS44IDE3LjMtMTQuNmMuNS01LjcgLjctMTEuNSAuNy0xNy4zYzAtMTYuNS0xLjktMzIuNi01LjYtNDcuOWMxLjggMCAzLjctLjEgNS42LS4xQzM5Ny40IDAgNTEyIDExNC42IDUxMiAyNTZjMCAxLjkgMCAzLjctLjEgNS42Yy0xNS40LTMuNi0zMS40LTUuNi00Ny45LTUuNmMtNS44IDAtMTEuNiAuMi0xNy4zIC43Yy04LjggLjctMTUuNCA4LjUtMTQuNiAxNy4zczguNSAxNS40IDE3LjMgMTQuNmM0LjgtLjQgOS43LS42IDE0LjctLjZjMTUuNiAwIDMwLjggMiA0NS4yIDUuOUM0OTIuOCA0MDQuOSA0MDQuOSA0OTIuOCAyOTMuOSA1MDkuMkMyOTAgNDk0LjggMjg4IDQ3OS42IDI4OCA0NjRjMC00LjkgLjItOS44IC42LTE0LjdjLjctOC44LTUuOC0xNi41LTE0LjYtMTcuM3MtMTYuNSA1LjgtMTcuMyAxNC42Yy0uNSA1LjctLjcgMTEuNS0uNyAxNy4zYzAgMTYuNSAxLjkgMzIuNiA1LjYgNDcuOWMtMS44IDAtMy43IC4xLTUuNiAuMUMxMTQuNiA1MTIgMCAzOTcuNCAwIDI1NmMwLTEuOSAwLTMuNyAuMS01LjZDMTUuNCAyNTQuMSAzMS41IDI1NiA0OCAyNTZjNS44IDAgMTEuNi0uMiAxNy4zLS43YzguOC0uNyAxNS40LTguNSAxNC42LTE3LjNzLTguNS0xNS40LTE3LjMtMTQuNnpNMTIxLjMgMjA4Yy04IDMuNy0xMS42IDEzLjItNy45IDIxLjJzMTMuMiAxMS42IDIxLjIgNy45YzQ1LjItMjAuOCA4MS43LTU3LjIgMTAyLjUtMTAyLjVjMy43LTggLjItMTcuNS03LjktMjEuMnMtMTcuNS0uMi0yMS4yIDcuOWMtMTcuNiAzOC4zLTQ4LjUgNjkuMi04Ni43IDg2Ljd6bTI3Ny4yIDc0LjdjLTMuNy04LTEzLjItMTEuNi0yMS4yLTcuOWMtNDUuMiAyMC44LTgxLjcgNTcuMi0xMDIuNSAxMDIuNWMtMy43IDgtLjIgMTcuNSA3LjkgMjEuMnMxNy41IC4yIDIxLjItNy45YzE3LjYtMzguMyA0OC41LTY5LjIgODYuNy04Ni43YzgtMy43IDExLjYtMTMuMiA3LjktMjEuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFza2V0U2hvcHBpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjUzLjMgMzUuMWM2LjEtMTEuOCAxLjUtMjYuMy0xMC4yLTMyLjRzLTI2LjMtMS41LTMyLjQgMTAuMkwxMTcuNiAxOTJIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJMODMuOSA0NjMuNUM5MSA0OTIgMTE2LjYgNTEyIDE0NiA1MTJINDMwYzI5LjQgMCA1NS0yMCA2Mi4xLTQ4LjVMNTQ0IDI1NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg0NTguNEwzNjUuMyAxMi45QzM1OS4yIDEuMiAzNDQuNy0zLjQgMzMyLjkgMi43cy0xNi4zIDIwLjYtMTAuMiAzMi40TDQwNC4zIDE5MkgxNzEuN0wyNTMuMyAzNS4xek0xOTIgMzA0djk2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjMwNGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2em05Ni0xNmM4LjggMCAxNiA3LjIgMTYgMTZ2OTZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMzA0YzAtOC44IDcuMi0xNiAxNi0xNnptMTI4IDE2djk2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjMwNGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYXNrZXRiYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTg2LjYgNjRsODUuMiA4NS4yQzE5NC41IDEyMS43IDIwOCA4Ni40IDIwOCA0OGMwLTE0LjctMi0yOC45LTUuNy00Mi40QzE1OC42IDE1IDExOSAzNS41IDg2LjYgNjR6TTY0IDg2LjZDMzUuNSAxMTkgMTUgMTU4LjYgNS42IDIwMi4zQzE5LjEgMjA2IDMzLjMgMjA4IDQ4IDIwOGMzOC40IDAgNzMuNy0xMy41IDEwMS4zLTM2LjFMNjQgODYuNnpNMjU2IDBjLTcuMyAwLTE0LjYgLjMtMjEuOCAuOUMyMzggMTYgMjQwIDMxLjggMjQwIDQ4YzAgNDcuMy0xNy4xIDkwLjUtNDUuNCAxMjRMMjU2IDIzMy40IDQyNS40IDY0QzM4MC4yIDI0LjIgMzIwLjkgMCAyNTYgMHpNNDggMjQwYy0xNi4yIDAtMzItMi00Ny4xLTUuOEMuMyAyNDEuNCAwIDI0OC43IDAgMjU2YzAgNjQuOSAyNC4yIDEyNC4yIDY0IDE2OS40TDIzMy40IDI1NiAxNzIgMTk0LjZDMTM4LjUgMjIyLjkgOTUuMyAyNDAgNDggMjQwem00NjMuMSAzNy44Yy42LTcuMiAuOS0xNC41IC45LTIxLjhjMC02NC45LTI0LjItMTI0LjItNjQtMTY5LjRMMjc4LjYgMjU2IDM0MCAzMTcuNGMzMy40LTI4LjMgNzYuNy00NS40IDEyNC00NS40YzE2LjIgMCAzMiAyIDQ3LjEgNS44em0tNC43IDMxLjlDNDkyLjkgMzA2IDQ3OC43IDMwNCA0NjQgMzA0Yy0zOC40IDAtNzMuNyAxMy41LTEwMS4zIDM2LjFMNDQ4IDQyNS40YzI4LjUtMzIuMyA0OS4xLTcxLjkgNTguNC0xMTUuN3pNMzQwLjEgMzYyLjdDMzE3LjUgMzkwLjMgMzA0IDQyNS42IDMwNCA0NjRjMCAxNC43IDIgMjguOSA1LjcgNDIuNEMzNTMuNCA0OTcgMzkzIDQ3Ni41IDQyNS40IDQ0OGwtODUuMi04NS4yek0zMTcuNCAzNDBMMjU2IDI3OC42IDg2LjYgNDQ4YzQ1LjEgMzkuOCAxMDQuNCA2NCAxNjkuNCA2NGM3LjMgMCAxNC42LS4zIDIxLjgtLjlDMjc0IDQ5NiAyNzIgNDgwLjIgMjcyIDQ2NGMwLTQ3LjMgMTcuMS05MC41IDQ1LjQtMTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYXRoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDc3LjNjMC03LjMgNS45LTEzLjMgMTMuMy0xMy4zYzMuNSAwIDYuOSAxLjQgOS40IDMuOWwxNC45IDE0LjlDMTMwIDkxLjggMTI4IDEwMS43IDEyOCAxMTJjMCAxOS45IDcuMiAzOCAxOS4yIDUyYy01LjMgOS4yLTQgMjEuMSAzLjggMjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBMMjg5IDg5YzkuNC05LjQgOS40LTI0LjYgMC0zMy45Yy03LjktNy45LTE5LjgtOS4xLTI5LTMuOEMyNDYgMzkuMiAyMjcuOSAzMiAyMDggMzJjLTEwLjMgMC0yMC4yIDItMjkuMiA1LjVMMTYzLjkgMjIuNkMxNDkuNCA4LjEgMTI5LjcgMCAxMDkuMyAwQzY2LjYgMCAzMiAzNC42IDMyIDc3LjNWMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg5NlY3Ny4zek0zMiAzNTJ2MTZjMCAyOC40IDEyLjQgNTQgMzIgNzEuNlY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY0NjRIMzg0djE2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWNDM5LjZjMTkuNi0xNy42IDMyLTQzLjEgMzItNzEuNlYzNTJIMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhdHRlcnlFbXB0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04MCAxNjBjLTguOCAwLTE2IDcuMi0xNiAxNlYzMzZjMCA4LjggNy4yIDE2IDE2IDE2SDQ2NGM4LjggMCAxNi03LjIgMTYtMTZWMTc2YzAtOC44LTcuMi0xNi0xNi0xNkg4MHpNMCAxNzZjMC00NC4yIDM1LjgtODAgODAtODBINDY0YzQ0LjIgMCA4MCAzNS44IDgwIDgwdjE2YzE3LjcgMCAzMiAxNC4zIDMyIDMydjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMydjE2YzAgNDQuMi0zNS44IDgwLTgwIDgwSDgwYy00NC4yIDAtODAtMzUuOC04MC04MFYxNzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhdHRlcnlGdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAxNjBjOC44IDAgMTYgNy4yIDE2IDE2VjMzNmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYxNzZjMC04LjggNy4yLTE2IDE2LTE2SDQ2NHpNODAgOTZDMzUuOCA5NiAwIDEzMS44IDAgMTc2VjMzNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MEg0NjRjNDQuMiAwIDgwLTM1LjggODAtODBWMzIwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMlYxNzZjMC00NC4yLTM1LjgtODAtODAtODBIODB6bTM2OCA5Nkg5NlYzMjBINDQ4VjE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmF0dGVyeUhhbGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDE2MGM4LjggMCAxNiA3LjIgMTYgMTZWMzM2YzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjE3NmMwLTguOCA3LjItMTYgMTYtMTZINDY0ek04MCA5NkMzNS44IDk2IDAgMTMxLjggMCAxNzZWMzM2YzAgNDQuMiAzNS44IDgwIDgwIDgwSDQ2NGM0NC4yIDAgODAtMzUuOCA4MC04MFYzMjBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyVjE3NmMwLTQ0LjItMzUuOC04MC04MC04MEg4MHptMjA4IDk2SDk2VjMyMEgyODhWMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYXR0ZXJ5UXVhcnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMTYwYzguOCAwIDE2IDcuMiAxNiAxNlYzMzZjMCA4LjgtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZWMTc2YzAtOC44IDcuMi0xNiAxNi0xNkg0NjR6TTgwIDk2QzM1LjggOTYgMCAxMzEuOCAwIDE3NlYzMzZjMCA0NC4yIDM1LjggODAgODAgODBINDY0YzQ0LjIgMCA4MC0zNS44IDgwLTgwVjMyMGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJWMTc2YzAtNDQuMi0zNS44LTgwLTgwLTgwSDgwem0xMTIgOTZIOTZWMzIwaDk2VjE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmF0dGVyeVRocmVlUXVhcnRlcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDE2MGM4LjggMCAxNiA3LjIgMTYgMTZWMzM2YzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjE3NmMwLTguOCA3LjItMTYgMTYtMTZINDY0ek04MCA5NkMzNS44IDk2IDAgMTMxLjggMCAxNzZWMzM2YzAgNDQuMiAzNS44IDgwIDgwIDgwSDQ2NGM0NC4yIDAgODAtMzUuOCA4MC04MFYzMjBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyVjE3NmMwLTQ0LjItMzUuOC04MC04MC04MEg4MHptMjcyIDk2SDk2VjMyMEgzNTJWMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCZWRQdWxzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODMuMiA5LjZMNTI0IDY0aDkyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDUxMmMtNy42IDAtMTQuNy0zLjYtMTkuMi05LjZMNDY4LjcgNzAuM2wtNDcgOTkuOWMtMy43IDcuOC0xMS4zIDEzLjEtMTkuOSAxMy43cy0xNi45LTMuNC0yMS43LTEwLjZMMzM5LjIgMTEySDIxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNEgzNTJjOCAwIDE1LjUgNCAyMCAxMC43bDI0LjQgMzYuNiA0NS45LTk3LjVDNDQ1LjkgNi4yIDQ1My4yIDEgNDYxLjYgLjFzMTYuNiAyLjcgMjEuNiA5LjV6TTMyMCAxNjBoMTIuN2wyMC43IDMxLjFjMTEuMiAxNi44IDMwLjYgMjYuMyA1MC43IDI0LjhzMzcuOS0xMy43IDQ2LjUtMzJMNDYxLjkgMTYwSDU0NGM1MyAwIDk2IDQzIDk2IDk2VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY0NDhIMzUyIDMyMCA2NHYzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY5NkMwIDc4LjMgMTQuMyA2NCAzMiA2NHMzMiAxNC4zIDMyIDMyVjM1MkgyODhWMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0tMTQ0IDBhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMlYzMjBIMjg4VjE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMkg1NDRjNTMgMCA5NiA0MyA5NiA5NlY0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNDE2SDM1MiAzMjAgNjR2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJ6bTE0NCA5NmE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmVlck11Z0VtcHR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMySDM1MmMxNy43IDAgMzIgMTQuMyAzMiAzMlY5Nmg1MS4yYzQyLjQgMCA3Ni44IDM0LjQgNzYuOCA3Ni44VjI3NC45YzAgMzAuNC0xNy45IDU3LjktNDUuNiA3MC4yTDM4NCAzODEuN1Y0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRIOTZjLTM1LjMgMC02NC0yOC43LTY0LTY0VjY0ek0zODQgMzExLjZsNTYuNC0yNS4xYzQuNi0yLjEgNy42LTYuNiA3LjYtMTEuN1YxNzIuOGMwLTcuMS01LjctMTIuOC0xMi44LTEyLjhIMzg0VjMxMS42ek0xNjAgMTQ0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2VjM2OGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjE0NHptNjQgMGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNlYzNjhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYxNDR6bTY0IDBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZWMzY4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMTQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCZWxsQ29uY2llcmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGgxNnYzMy4zQzExOS42IDE1Ny4yIDMyIDI1Mi40IDMyIDM2OEg0ODBjMC0xMTUuNi04Ny42LTIxMC44LTIwMC0yMjIuN1YxMTJoMTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMjU2IDIxNnpNMjQgNDAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0SDQ4OGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmVsbFNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdsLTkwLjItNzAuN2MuMi0uNCAuNC0uOSAuNi0xLjNjNS4yLTExLjUgMy4xLTI1LTUuMy0zNC40bC03LjQtOC4zQzQ5Ny4zIDMxOS4yIDQ4MCAyNzMuOSA0ODAgMjI2LjhWMjA4YzAtNzcuNC01NS0xNDItMTI4LTE1Ni44VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjUxLjJjLTQyLjYgOC42LTc5IDM0LjItMTAyIDY5LjNMMzguOCA1LjF6TTQwNi4yIDQxNkwxNjAgMjIyLjF2NC44YzAgNDctMTcuMyA5Mi40LTQ4LjUgMTI3LjZsLTcuNCA4LjNjLTguNCA5LjQtMTAuNCAyMi45LTUuMyAzNC40UzExNS40IDQxNiAxMjggNDE2SDQwNi4yem0tNDAuOSA3Ny4zYzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNIMzIwIDI1NmMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM3MyOC4zIDE4LjcgNDUuMyAxOC43czMzLjMtNi43IDQ1LjMtMTguN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWNTEuMkMxMTkgNjYgNjQgMTMwLjYgNjQgMjA4djE4LjhjMCA0Ny0xNy4zIDkyLjQtNDguNSAxMjcuNmwtNy40IDguM2MtOC40IDkuNC0xMC40IDIyLjktNS4zIDM0LjRTMTkuNCA0MTYgMzIgNDE2SDQxNmMxMi42IDAgMjQtNy40IDI5LjItMTguOXMzLjEtMjUtNS4zLTM0LjRsLTcuNC04LjNDNDAxLjMgMzE5LjIgMzg0IDI3My45IDM4NCAyMjYuOFYyMDhjMC03Ny40LTU1LTE0Mi0xMjgtMTU2LjhWMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6bTQ1LjMgNDkzLjNjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0gyMjQgMTYwYzAgMTcgNi43IDMzLjMgMTguNyA0NS4zczI4LjMgMTguNyA0NS4zIDE4LjdzMzMuMy02LjcgNDUuMy0xOC43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCZXppZXJDdXJ2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTYgMTM2Vjg4aDQ4djQ4SDI5NnpNMjg4IDMyYy0yNi41IDAtNDggMjEuNS00OCA0OHY0SDEyMS42QzExMS4yIDYyLjcgODkuMyA0OCA2NCA0OEMyOC43IDQ4IDAgNzYuNyAwIDExMnMyOC43IDY0IDY0IDY0YzI1LjMgMCA0Ny4yLTE0LjcgNTcuNi0zNmg2Ni45Yy01OC45IDM5LjYtOTguOSAxMDUtMTA0IDE4MEg4MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2NjRjMCAyNi41IDIxLjUgNDggNDggNDhoNjRjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzY4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4aC0zLjNjNS45LTY3IDQ4LjUtMTIzLjQgMTA3LjUtMTQ5LjFjOC42IDEyLjcgMjMuMiAyMS4xIDM5LjggMjEuMWg2NGMxNi42IDAgMzEuMS04LjQgMzkuOC0yMS4xYzU5IDI1LjcgMTAxLjYgODIuMSAxMDcuNSAxNDkuMUg0OTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDY0YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjM2OGMwLTI2LjUtMjEuNS00OC00OC00OGgtNC41Yy01LTc1LTQ1LjEtMTQwLjQtMTA0LTE4MGg2Ni45YzEwLjQgMjEuMyAzMi4zIDM2IDU3LjYgMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjRjLTI1LjMgMC00Ny4yIDE0LjctNTcuNiAzNkg0MDBWODBjMC0yNi41LTIxLjUtNDgtNDgtNDhIMjg4ek04OCAzNzZoNDh2NDhIODhWMzc2em00MTYgNDhWMzc2aDQ4djQ4SDUwNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmljeWNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTIgMzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoMjUuN2wzNC42IDY0SDIyMi45bC0yNy40LTM4QzE5MSA5OS43IDE4My43IDk2IDE3NiA5NkgxMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoNDMuN2wyMi4xIDMwLjctMjYuNiA1My4xYy0xMC0yLjUtMjAuNS0zLjgtMzEuMi0zLjhDNTcuMyAyMjQgMCAyODEuMyAwIDM1MnM1Ny4zIDEyOCAxMjggMTI4YzY1LjMgMCAxMTkuMS00OC45IDEyNy0xMTJoNDljOC41IDAgMTYuMy00LjUgMjAuNy0xMS44bDg0LjgtMTQzLjUgMjEuNyA0MC4xQzQwMi40IDI3Ni4zIDM4NCAzMTIgMzg0IDM1MmMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4cy01Ny4zLTEyOC0xMjgtMTI4Yy0xMy41IDAtMjYuNSAyLjEtMzguNyA2TDM3NS40IDQ4LjhDMzY5LjggMzguNCAzNTkgMzIgMzQ3LjIgMzJIMzEyek00NTguNiAzMDMuN2wzMi4zIDU5LjdjNi4zIDExLjcgMjAuOSAxNiAzMi41IDkuN3MxNi0yMC45IDkuNy0zMi41bC0zMi4zLTU5LjdjMy42LS42IDcuNC0uOSAxMS4yLS45YzM5LjggMCA3MiAzMi4yIDcyIDcycy0zMi4yIDcyLTcyIDcycy03Mi0zMi4yLTcyLTcyYzAtMTguNiA3LTM1LjUgMTguNi00OC4zek0xMzMuMiAzNjhoNjVjLTcuMyAzMi4xLTM2IDU2LTcwLjIgNTZjLTM5LjggMC03Mi0zMi4yLTcyLTcyczMyLjItNzIgNzItNzJjMS43IDAgMy40IC4xIDUuMSAuMmwtMjQuMiA0OC41Yy05IDE4LjEgNC4xIDM5LjQgMjQuMyAzOS40em0zMy43LTQ4bDUwLjctMTAxLjMgNzIuOSAxMDEuMi0uMSAuMUgxNjYuOHptOTAuNi0xMjhIMzY1LjlMMzE3IDI3NC44IDI1Ny40IDE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmlub2N1bGFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMzJoMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWOTZIOTZWNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTY0IDk2VjQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzg4LjljMC0zNC42IDkuNC02OC42IDI3LjItOTguM0M0MC45IDI2Ny44IDQ5LjcgMjQyLjQgNTMgMjE2TDYwLjUgMTU2YzItMTYgMTUuNi0yOCAzMS44LTI4SDE5MnptMjI3LjggMGMxNi4xIDAgMjkuOCAxMiAzMS44IDI4TDQ1OSAyMTZjMy4zIDI2LjQgMTIuMSA1MS44IDI1LjggNzQuNmMxNy44IDI5LjcgMjcuMiA2My43IDI3LjIgOTguM1Y0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJIMzUyYy0xNy43IDAtMzItMTQuMy0zMi0zMlYxMjhoOTkuOHpNMzIwIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjk2SDMyMFY2NHptLTMyIDY0VjI4OEgyMjRWMTI4aDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCaW9oYXphcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTczLjIgMGMtMS44IDAtMy41IC43LTQuOCAyQzEzOC41IDMyLjMgMTIwIDc0IDEyMCAxMjBjMCAyNi4yIDYgNTAuOSAxNi42IDczYy0yMiAyLjQtNDMuOCA5LjEtNjQuMiAyMC41QzM3LjkgMjMyLjggMTMuMyAyNjIuNCAuNCAyOTZjLS43IDEuNy0uNSAzLjcgLjUgNS4yYzIuMiAzLjcgNy40IDQuMyAxMC42IDEuM0M2NC4yIDI1NC4zIDE1OCAyNDUuMSAyMDUgMzI0cy04LjEgMTUzLjEtNzcuNiAxNzMuMmMtNC4yIDEuMi02LjMgNS45LTQuMSA5LjZjMSAxLjYgMi42IDIuNyA0LjUgM2MzNi41IDUuOSA3NS4yIC4xIDEwOS43LTE5LjJjMjAuNC0xMS40IDM3LjQtMjYuNSA1MC41LTQzLjhjMTMuMSAxNy4zIDMwLjEgMzIuNCA1MC41IDQzLjhjMzQuNSAxOS4zIDczLjMgMjUuMiAxMDkuNyAxOS4yYzEuOS0uMyAzLjUtMS40IDQuNS0zYzIuMi0zLjcgLjEtOC40LTQuMS05LjZDMzc5LjEgNDc3LjEgMzI0IDQwMyAzNzEgMzI0czE0MC43LTY5LjggMTkzLjUtMjEuNGMzLjIgMi45IDguNCAyLjMgMTAuNi0xLjNjMS0xLjYgMS4xLTMuNSAuNS01LjJjLTEyLjktMzMuNi0zNy41LTYzLjItNzIuMS04Mi41Yy0yMC40LTExLjQtNDIuMi0xOC4xLTY0LjItMjAuNUM0NTAgMTcwLjkgNDU2IDE0Ni4yIDQ1NiAxMjBjMC00Ni0xOC41LTg3LjctNDguNC0xMThjLTEuMy0xLjMtMy0yLTQuOC0yYy01IDAtOC40IDUuMi02LjcgOS45QzQyMS43IDgwLjUgMzg1LjYgMTc2IDI4OCAxNzZTMTU0LjMgODAuNSAxNzkuOSA5LjljMS43LTQuNy0xLjYtOS45LTYuNy05Ljl6TTI0MCAyNzJhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMTgxLjcgNDE3LjZjNi4zLTExLjggOS44LTI1LjEgOC42LTM5LjhjLTE5LjUtMTgtMzQtNDEuNC00MS4yLTY3LjhjLTEyLjUtOC4xLTI2LjItMTEuOC00MC0xMi40Yy05LS40LTE4LjEgLjYtMjcuMSAyLjdjNy44IDU3LjEgMzguNyAxMDYuOCA4Mi45IDEzOS40YzYuOC02LjcgMTIuNi0xNC4xIDE2LjgtMjIuMXpNMjg4IDY0Yy0yOC44IDAtNTYuMyA1LjktODEuMiAxNi41YzIgOC4zIDUgMTYuMiA5IDIzLjVjNi44IDEyLjQgMTYuNyAyMy4xIDMwLjEgMzAuM2MxMy4zLTQuMSAyNy41LTYuMyA0Mi4yLTYuM3MyOC44IDIuMiA0Mi4yIDYuM2MxMy40LTcuMiAyMy4zLTE3LjkgMzAuMS0zMC4zYzQtNy4zIDctMTUuMiA5LTIzLjVDMzQ0LjMgNjkuOSAzMTYuOCA2NCAyODggNjR6TTQyNi45IDMxMGMtNy4yIDI2LjQtMjEuNyA0OS43LTQxLjIgNjcuOGMtMS4yIDE0LjcgMi4yIDI4LjEgOC42IDM5LjhjNC4zIDggMTAgMTUuNCAxNi44IDIyLjFjNDQuMy0zMi42IDc1LjItODIuMyA4Mi45LTEzOS40Yy05LTIuMi0xOC4xLTMuMS0yNy4xLTIuN2MtMTMuOCAuNi0yNy41IDQuNC00MCAxMi40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCaXRjb2luU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCAzMkM0OCAxNC4zIDYyLjMgMCA4MCAwczMyIDE0LjMgMzIgMzJWNjRoMzJWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMlY2NGMwIDEuNS0uMSAzLjEtLjMgNC41QzI1NC4xIDgyLjIgMjg4IDEyNS4xIDI4OCAxNzZjMCAyNC4yLTcuNyA0Ni42LTIwLjcgNjQuOWMzMS43IDE5LjggNTIuNyA1NSA1Mi43IDk1LjFjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJ2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNDQ4SDExMnYzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY0NDhINDEuN0MxOC43IDQ0OCAwIDQyOS4zIDAgNDA2LjNWMjg4IDI2NS43IDIyNCAxMDEuNkMwIDgwLjggMTYuOCA2NCAzNy42IDY0SDQ4VjMyek02NCAyMjRIMTc2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4SDY0djk2em0xMTIgNjRINjR2OTZIMjA4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4SDE3NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmxlbmRlclBob25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAzNTJMMTk2LjggNTIuM0MxOTQuMiAyNC4yIDIxNi4zIDAgMjQ0LjYgMEg1MzQuMWMyMS4xIDAgMzYuNCAyMC4xIDMwLjkgNDAuNEw1NTguNSA2NEg0MDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZINTQ5LjhsLTE3LjUgNjRINDAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2SDUyMy42bC0xNy41IDY0SDQwMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmg5Ny41TDQ4MCAzNTJIMjI0em0tMTYgMzJINDk2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djMyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDIwOGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWNDMyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em0xNDQgOTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0xNDcuNSAzMC43YzEwLjggNi43IDE1LjMgMjEgMTAuNiAzMy40bC0yMiA1Ny44Yy00LjIgMTAuOS0xNC41IDE3LjYtMjUuMyAxNi40bC0zMy4zLTMuNmMtMTMuNiA0Mi4yLTEzLjYgODguNCAwIDEzMC43bDMzLjMtMy42YzEwLjktMS4yIDIxLjIgNS41IDI1LjMgMTYuNGwyMiA1Ny44YzQuNyAxMi40IC4yIDI2LjctMTAuNiAzMy40bC00NCAyNy4yYy05LjcgNi0yMS45IDQuMi0yOS44LTQuM0MtMjQuNiAyODYtMjQuNiAxMTQgNzMuNyA3LjhDODEuNi0uNyA5My44LTIuNSAxMDMuNSAzLjVsNDQgMjcuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmxlbmRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMGg2NCAzMkg0NzAuMWMyMS4xIDAgMzYuNCAyMC4xIDMwLjkgNDAuNEw0OTQuNSA2NEgzMzZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZINDg1LjhsLTE3LjUgNjRIMzM2Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2SDQ1OS42bC0xNy41IDY0SDMzNmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmg5Ny41TDQxNiAzNTJIMTYwbC04LjctOTZINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjY0ek0xNDUuNSAxOTJMMTMzLjggNjRINjRWMTkyaDgxLjV6TTE0NCAzODRINDMyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4djMyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDE0NGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWNDMyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em0xNDQgOTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCbG9nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmMxMjMuNyAwIDIyNCAxMDAuMyAyMjQgMjI0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJDNTEyIDEyOC45IDM4My4xIDAgMjI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem0wIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC0xMDYtODYtMTkyLTE5Mi0xOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek05NiAxNDRjMC0yNi41LTIxLjUtNDgtNDgtNDhTMCAxMTcuNSAwIDE0NFYzNjhjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRzMTQ0LTY0LjUgMTQ0LTE0NHMtNjQuNS0xNDQtMTQ0LTE0NEgxMjh2OTZoMTZjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhWMTQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb2xkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJIODAgOTYgMjI0YzcwLjcgMCAxMjggNTcuMyAxMjggMTI4YzAgMzEuMy0xMS4zIDYwLjEtMzAgODIuM2MzNy4xIDIyLjQgNjIgNjMuMSA2MiAxMDkuN2MwIDcwLjctNTcuMyAxMjgtMTI4IDEyOEg5NiA4MCAzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg0OFYyNTYgOTZIMzJDMTQuMyA5NiAwIDgxLjcgMCA2NHpNMjI0IDIyNGMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NEgxMTJWMjI0SDIyNHpNMTEyIDI4OFY0MTZIMjU2YzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0SDIyNCAxMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvbHRMaWdodG5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyNTZMMjguNSAyOGMyLTE2IDE1LjYtMjggMzEuOC0yOEgyMjguOWMxNSAwIDI3LjEgMTIuMSAyNy4xIDI3LjFjMCAzLjItLjYgNi41LTEuNyA5LjVMMjA4IDE2MEgzNDcuM2MyMC4yIDAgMzYuNyAxNi40IDM2LjcgMzYuN2MwIDcuNC0yLjIgMTQuNi02LjQgMjAuN2wtMTkyLjIgMjgxYy01LjkgOC42LTE1LjYgMTMuNy0yNS45IDEzLjdoLTIuOWMtMTUuNyAwLTI4LjUtMTIuOC0yOC41LTI4LjVjMC0yLjMgLjMtNC42IC45LTYuOUwxNzYgMjg4SDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9sdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDkuNCA0NC42YzUuOS0xMy43IDEuNS0yOS43LTEwLjYtMzguNXMtMjguNi04LTM5LjkgMS44bC0yNTYgMjI0Yy0xMCA4LjgtMTMuNiAyMi45LTguOSAzNS4zUzUwLjcgMjg4IDY0IDI4OEgxNzUuNUw5OC42IDQ2Ny40Yy01LjkgMTMuNy0xLjUgMjkuNyAxMC42IDM4LjVzMjguNiA4IDM5LjktMS44bDI1Ni0yMjRjMTAtOC44IDEzLjYtMjIuOSA4LjktMzUuM3MtMTYuNi0yMC43LTMwLTIwLjdIMjcyLjVMMzQ5LjQgNDQuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9tYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTkuMSA1Mi40TDQ0Mi42IDYuNUM0NDAuNyAyLjYgNDM2LjUgMCA0MzIuMSAwcy04LjUgMi42LTEwLjQgNi41TDQwNS4yIDUyLjRsLTQ2IDE2LjhjLTQuMyAxLjYtNy4zIDUuOS03LjIgMTAuNGMwIDQuNSAzIDguNyA3LjIgMTAuMmw0NS43IDE2LjggMTYuOCA0NS44YzEuNSA0LjQgNS44IDcuNSAxMC40IDcuNXM4LjktMy4xIDEwLjQtNy41bDE2LjUtNDUuOCA0NS43LTE2LjhjNC4yLTEuNSA3LjItNS43IDcuMi0xMC4yYzAtNC42LTMtOC45LTcuMi0xMC40TDQ1OS4xIDUyLjR6bS0xMzIuNCA1M2MtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTIuOSAyLjlDMjU2LjUgMTAwLjMgMjMyLjcgOTYgMjA4IDk2QzkzLjEgOTYgMCAxODkuMSAwIDMwNFM5My4xIDUxMiAyMDggNTEyczIwOC05My4xIDIwOC0yMDhjMC0yNC43LTQuMy00OC41LTEyLjItNzAuNWwyLjktMi45YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC04MC04MHpNMjAwIDE5MmMtNTcuNCAwLTEwNCA0Ni42LTEwNCAxMDR2OGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNnYtOGMwLTc1LjEgNjAuOS0xMzYgMTM2LTEzNmg4YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2aC04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1My43IDE0NC44YzYuOSAxNi4zIDIwLjYgMzEuMiAzOC4zIDMxLjJIMzg0YzE3LjcgMCAzMS40LTE0LjkgMzguMy0zMS4yQzQzNC40IDExNi4xIDQ2Mi45IDk2IDQ5NiA5NmM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDMwLjQtMTcgNTYuOS00MiA3MC40Yy0zLjYgMS45LTYgNS41LTYgOS42czIuNCA3LjcgNiA5LjZjMjUgMTMuNSA0MiA0MCA0MiA3MC40YzAgNDQuMi0zNS44IDgwLTgwIDgwYy0zMy4xIDAtNjEuNi0yMC4xLTczLjctNDguOEM0MTUuNCAzNTAuOSA0MDEuNyAzMzYgMzg0IDMzNkgxOTJjLTE3LjcgMC0zMS40IDE0LjktMzguMyAzMS4yQzE0MS42IDM5NS45IDExMy4xIDQxNiA4MCA0MTZjLTQ0LjIgMC04MC0zNS44LTgwLTgwYzAtMzAuNCAxNy01Ni45IDQyLTcwLjRjMy42LTEuOSA2LTUuNSA2LTkuNnMtMi40LTcuNy02LTkuNkMxNyAyMzIuOSAwIDIwNi40IDAgMTc2YzAtNDQuMiAzNS44LTgwIDgwLTgwYzMzLjEgMCA2MS42IDIwLjEgNzMuNyA0OC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb25nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCAyMDguNWMwIDI5LjEtMTUuNiA1My45LTM3LjIgNjcuOGMtMTcuMiAxMS4xLTMxLjUgMjYuMS00MS43IDQzLjdIMzAyLjljLTEwLjItMTcuNi0yNC41LTMyLjYtNDEuNy00My43Yy0yMS42LTEzLjktMzcuMi0zOC43LTM3LjItNjcuOFY2NEgxNjBWMjA4LjV6TTI4OCA2NFYyMDguNWMwIDUuNyAzLjEgMTAuOSA3LjkgMTRjMTEuMiA3LjIgMjEuNSAxNS41IDMwLjkgMjQuOEwzNjYuMSAyMDhsLTctN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDI0IDI0IDI0IDI0YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTctNy00My4zIDQzLjNDMzc0IDMxNC4xIDM4NCAzNDcuOSAzODQgMzg0YzAgMzkuNC0xMS45IDc2LjEtMzIuMiAxMDYuNWMtOS42IDE0LjQtMjYuNSAyMS41LTQzLjggMjEuNUg3Ni4xYy0xNy4zIDAtMzQuMi03LjEtNDMuOC0yMS41QzExLjkgNDYwLjEgMCA0MjMuNCAwIDM4NGMwLTY3LjggMzUuMS0xMjcuMyA4OC4xLTE2MS41YzQuOC0zLjEgNy45LTguMyA3LjktMTRWNjRDNzguMyA2NCA2NCA0OS43IDY0IDMyUzc4LjMgMCA5NiAwaDE2SDI3MmgxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9va0F0bGFzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZDMCA0MyA0MyAwIDk2IDBIMzg0aDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjM1MmMwIDE3LjctMTQuMyAzMi0zMiAzMnY2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzODQgOTZjLTUzIDAtOTYtNDMtOTYtOTZWOTZ6TTY0IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMkgzNTJWMzg0SDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMjQ3LjQgMjgzLjhjLTMuNyAzLjctNi4yIDQuMi03LjQgNC4ycy0zLjctLjUtNy40LTQuMmMtMy44LTMuNy04LTEwLTExLjgtMTguOWMtNi4yLTE0LjUtMTAuOC0zNC4zLTEyLjItNTYuOWg2M2MtMS41IDIyLjYtNiA0Mi40LTEyLjIgNTYuOWMtMy44IDguOS04IDE1LjItMTEuOCAxOC45em00Mi43LTkuOWM3LjMtMTguMyAxMi00MS4xIDEzLjQtNjUuOWgzMS4xYy00LjcgMjcuOS0yMS40IDUxLjctNDQuNSA2NS45em0wLTE2My44YzIzLjIgMTQuMiAzOS45IDM4IDQ0LjUgNjUuOUgzMDMuNWMtMS40LTI0LjctNi4xLTQ3LjUtMTMuNC02NS45ek0zNjggMTkyYTEyOCAxMjggMCAxIDAgLTI1NiAwIDEyOCAxMjggMCAxIDAgMjU2IDB6TTE0NS4zIDIwOGgzMS4xYzEuNCAyNC43IDYuMSA0Ny41IDEzLjQgNjUuOWMtMjMuMi0xNC4yLTM5LjktMzgtNDQuNS02NS45em0zMS4xLTMySDE0NS4zYzQuNy0yNy45IDIxLjQtNTEuNyA0NC41LTY1LjljLTcuMyAxOC4zLTEyIDQxLjEtMTMuNCA2NS45em01Ni4xLTc1LjhjMy43LTMuNyA2LjItNC4yIDcuNC00LjJzMy43IC41IDcuNCA0LjJjMy44IDMuNyA4IDEwIDExLjggMTguOWM2LjIgMTQuNSAxMC44IDM0LjMgMTIuMiA1Ni45aC02M2MxLjUtMjIuNiA2LTQyLjQgMTIuMi01Ni45YzMuOC04LjkgOC0xNS4yIDExLjgtMTguOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9va0JpYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDBDNDMgMCAwIDQzIDAgOTZWNDE2YzAgNTMgNDMgOTYgOTYgOTZIMzg0aDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyVjM4NGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkgzODQgOTZ6bTAgMzg0SDM1MnY2NEg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpNMjA4IDgwYzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2NDhoNDhjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgyNzJWMzA0YzAgOC44LTcuMiAxNi0xNiAxNkgyMjRjLTguOCAwLTE2LTcuMi0xNi0xNlYxOTJIMTYwYy04LjggMC0xNi03LjItMTYtMTZWMTQ0YzAtOC44IDcuMi0xNiAxNi0xNmg0OFY4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9va0Jvb2ttYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZDMCA0MyA0MyAwIDk2IDBoOTZWMTkwLjdjMCAxMy40IDE1LjUgMjAuOSAyNiAxMi41TDI3MiAxNjBsNTQgNDMuMmMxMC41IDguNCAyNiAuOSAyNi0xMi41VjBoMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMzUyYzAgMTcuNy0xNC4zIDMyLTMyIDMydjY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDM4NCA5NmMtNTMgMC05Ni00My05Ni05NlY5NnpNNjQgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMySDM1MlYzODRIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb29rSm91cm5hbFdoaWxscyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2QzAgNDMgNDMgMCA5NiAwSDM4NGgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMlYzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJ2NjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzg0IDk2Yy01MyAwLTk2LTQzLTk2LTk2Vjk2ek02NCA0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzUyVjM4NEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTkwLjQtMjM0LjRsLTIxLjItMjEuMmMtMyAxMC4xLTUuMSAyMC42LTUuMSAzMS42YzAgLjIgMCAuNSAuMSAuOHMuMSAuNSAuMSAuOEwxNjUuMiAyMjZjMi41IDIuMSAzLjQgNS44IDIuMyA4LjljLTEuMyAzLTQuMSA1LjEtNy41IDUuMWMtMS45LS4xLTMuOC0uOC01LjItMmwtMjMuNi0yMC42QzE0Mi44IDI2NyAxODYuOSAzMDQgMjQwIDMwNHM5Ny4zLTM3IDEwOC45LTg2LjZMMzI1LjMgMjM4Yy0xLjQgMS4yLTMuMyAyLTUuMyAyYy0yLjItLjEtNC40LTEuMS02LTIuOGMtMS4yLTEuNS0xLjktMy40LTItNS4yYy4xLTIuMiAxLjEtNC40IDIuOC02bDM3LjEtMzIuNWMwLS4zIDAtLjUgLjEtLjhzLjEtLjUgLjEtLjhjMC0xMS0yLjEtMjEuNS01LjEtMzEuNmwtMjEuMiAyMS4yYy0zLjEgMy4xLTguMSAzLjEtMTEuMyAwcy0zLjEtOC4xIDAtMTEuMmwyNi40LTI2LjVjLTguMi0xNy0yMC41LTMxLjctMzUuOS00Mi42Yy0yLjctMS45LTYuMiAxLjQtNSA0LjVjOC41IDIyLjQgMy42IDQ4LTEzIDY1LjZjLTMuMiAzLjQtMy42IDguOS0uOSAxMi43YzkuOCAxNCAxMi43IDMxLjkgNy41IDQ4LjVjLTUuOSAxOS40LTIyIDM0LjEtNDEuOSAzOC4zbC0xLjQtMzQuMyAxMi42IDguNmMuNiAuNCAxLjUgLjYgMi4zIC42YzEuNSAwIDIuNy0uOCAzLjUtMnMuNi0yLjgtLjEtNEwyNjAgMjI1LjRsMTgtMy42YzEuOC0uNCAzLjEtMi4xIDMuMS00cy0xLjQtMy41LTMuMS0zLjlsLTE4LTMuNyA4LjUtMTQuM2MuOC0xLjIgLjktMi45IC4xLTQuMXMtMi0yLTMuNS0ybC0uMSAwYy0uNyAuMS0xLjUgLjMtMi4xIC43bC0xNC4xIDkuNkwyNDQgODcuOWMtLjEtMi4yLTEuOS0zLjktNC0zLjlzLTMuOSAxLjYtNCAzLjlsLTQuNiAxMTAuOC0xMi04LjFjLTEuNS0xLjEtMy42LS45LTUgLjRzLTEuNiAzLjQtLjggNWw4LjYgMTQuMy0xOCAzLjdjLTEuOCAuNC0zLjEgMi0zLjEgMy45czEuNCAzLjYgMy4xIDRsMTggMy44LTguNiAxNC4yYy0uMiAuNi0uNSAxLjQtLjUgMmMwIDEuMSAuNSAyLjEgMS4yIDNjLjggLjYgMS44IDEgMi44IDFjLjcgMCAxLjYtLjIgMi4yLS42bDEwLjQtNy4xLTEuNCAzMi44Yy0xOS45LTQuMS0zNi0xOC45LTQxLjktMzguM2MtNS4xLTE2LjYtMi4yLTM0LjQgNy42LTQ4LjVjMi43LTMuOSAyLjMtOS4zLS45LTEyLjdjLTE2LjYtMTcuNS0yMS42LTQzLjEtMTMuMS02NS41YzEuMi0zLjEtMi4zLTYuNC01LTQuNWMtMTUuMyAxMC45LTI3LjYgMjUuNi0zNS44IDQyLjZsMjYuNCAyNi41YzMuMSAzLjEgMy4xIDguMSAwIDExLjJzLTguMSAzLjEtMTEuMiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb29rTWVkaWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2QzAgNDMgNDMgMCA5NiAwSDM4NGgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMlYzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJ2NjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzg0IDk2Yy01MyAwLTk2LTQzLTk2LTk2Vjk2ek02NCA0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzUyVjM4NEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTIwOCAxMTJ2NDhIMTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDQ4djQ4YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMjI0aDQ4YzguOCAwIDE2LTcuMiAxNi0xNlYxNzZjMC04LjgtNy4yLTE2LTE2LTE2SDI3MlYxMTJjMC04LjgtNy4yLTE2LTE2LTE2SDIyNGMtOC44IDAtMTYgNy4yLTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb29rT3BlblJlYWRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgOTZhOTYgOTYgMCAxIDEgMTkyIDBBOTYgOTYgMCAxIDEgMTYwIDk2em04MCAxNTJWNTEybC00OC40LTI0LjJjLTIwLjktMTAuNC00My41LTE3LTY2LjgtMTkuM2wtOTYtOS42QzEyLjUgNDU3LjIgMCA0NDMuNSAwIDQyN1YyMjRjMC0xNy43IDE0LjMtMzIgMzItMzJINjIuM2M2My42IDAgMTI1LjYgMTkuNiAxNzcuNyA1NnptMzIgMjY0VjI0OGM1Mi4xLTM2LjQgMTE0LjEtNTYgMTc3LjctNTZINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjQyN2MwIDE2LjQtMTIuNSAzMC4yLTI4LjggMzEuOGwtOTYgOS42Yy0yMy4yIDIuMy00NS45IDguOS02Ni44IDE5LjNMMjcyIDUxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9va09wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ5LjYgNDcxLjVjMTAuOCAzLjggMjIuNC00LjEgMjIuNC0xNS41Vjc4LjZjMC00LjItMS42LTguNC01LTExQzI0Ny40IDUyIDIwMi40IDMyIDE0NCAzMkM5My41IDMyIDQ2LjMgNDUuMyAxOC4xIDU2LjFDNi44IDYwLjUgMCA3MS43IDAgODMuOFY0NTQuMWMwIDExLjkgMTIuOCAyMC4yIDI0LjEgMTYuNUM1NS42IDQ2MC4xIDEwNS41IDQ0OCAxNDQgNDQ4YzMzLjkgMCA3OSAxNCAxMDUuNiAyMy41em03Ni44IDBDMzUzIDQ2MiAzOTguMSA0NDggNDMyIDQ0OGMzOC41IDAgODguNCAxMi4xIDExOS45IDIyLjZjMTEuMyAzLjggMjQuMS00LjYgMjQuMS0xNi41VjgzLjhjMC0xMi4xLTYuOC0yMy4zLTE4LjEtMjcuNkM1MjkuNyA0NS4zIDQ4Mi41IDMyIDQzMiAzMmMtNTguNCAwLTEwMy40IDIwLTEyMyAzNS42Yy0zLjMgMi42LTUgNi44LTUgMTFWNDU2YzAgMTEuNCAxMS43IDE5LjMgMjIuNCAxNS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb29rUXVyYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyIDBjNTMgMCA5NiA0MyA5NiA5NlY0MTZjMCA1My00MyA5Ni05NiA5Nkg2NCAzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMlYzODRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjMyQzAgMTQuMyAxNC4zIDAgMzIgMEg2NCAzNTJ6bTAgMzg0SDk2djY0SDM1MmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMnpNMjc0LjEgMTUwLjJsLTguOSAyMS40LTIzLjEgMS45Yy01LjcgLjUtOCA3LjUtMy43IDExLjJMMjU2IDE5OS44bC01LjQgMjIuNmMtMS4zIDUuNSA0LjcgOS45IDkuNiA2LjlMMjgwIDIxNy4ybDE5LjggMTIuMWM0LjkgMyAxMC45LTEuNCA5LjYtNi45TDMwNCAxOTkuOGwxNy42LTE1LjFjNC4zLTMuNyAyLTEwLjgtMy43LTExLjJsLTIzLjEtMS45LTguOS0yMS40Yy0yLjItNS4zLTkuNi01LjMtMTEuOCAwek05NiAxOTJjMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhjMjUuNiAwIDQ5LjUtNy41IDY5LjUtMjAuNWMzLjItMi4xIDQuNS02LjIgMy4xLTkuN3MtNS4yLTUuNi05LTQuOGMtNi4xIDEuMi0xMi41IDEuOS0xOSAxLjljLTUyLjQgMC05NC45LTQyLjUtOTQuOS05NC45czQyLjUtOTQuOSA5NC45LTk0LjljNi41IDAgMTIuOCAuNyAxOSAxLjljMy44IC44IDcuNS0xLjMgOS00LjhzLjItNy42LTMuMS05LjdDMjczLjUgNzEuNSAyNDkuNiA2NCAyMjQgNjRDMTUzLjMgNjQgOTYgMTIxLjMgOTYgMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb29rU2t1bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA5NkMwIDQzIDQzIDAgOTYgMEgzODRoMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMzUyYzAgMTcuNy0xNC4zIDMyLTMyIDMydjY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDM4NCA5NmMtNTMgMC05Ni00My05Ni05NlY5NnpNNjQgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMySDM1MlYzODRIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0zMjAgMTEyYzAtMzUuMy0zNS44LTY0LTgwLTY0cy04MCAyOC43LTgwIDY0YzAgMjAuOSAxMi42IDM5LjUgMzIgNTEuMlYxNzZjMCA4LjggNy4yIDE2IDE2IDE2aDY0YzguOCAwIDE2LTcuMiAxNi0xNlYxNjMuMmMxOS40LTExLjcgMzItMzAuMyAzMi01MS4yek0yMDggOTZhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyem00OCAxNmExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwek0xMzQuMyAyMDkuM2MtOC4xLTMuNS0xNy41IC4zLTIxIDguNHMuMyAxNy41IDguNCAyMUwxOTkuNCAyNzJsLTc3LjcgMzMuM2MtOC4xIDMuNS0xMS45IDEyLjktOC40IDIxczEyLjkgMTEuOSAyMSA4LjRMMjQwIDI4OS40bDEwNS43IDQ1LjNjOC4xIDMuNSAxNy41LS4zIDIxLTguNHMtLjMtMTcuNS04LjQtMjFMMjgwLjYgMjcybDc3LjctMzMuM2M4LjEtMy41IDExLjktMTIuOSA4LjQtMjFzLTEyLjktMTEuOS0yMS04LjRMMjQwIDI1NC42IDEzNC4zIDIwOS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb29rVGFuYWtoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiAwYzUzIDAgOTYgNDMgOTYgOTZWNDE2YzAgNTMtNDMgOTYtOTYgOTZINjQgMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJWMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYzMkMwIDE0LjMgMTQuMyAwIDMyIDBINjQgMzUyem0wIDM4NEg5NnY2NEgzNTJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJ6TTEzOC43IDIwOGwxMy45IDI0SDEyNC45bDEzLjktMjR6bS0xMy45LTI0TDk3LjEgMjMyYy02LjIgMTAuNyAxLjUgMjQgMTMuOSAyNGg1NS40bDI3LjcgNDhjNi4yIDEwLjcgMjEuNiAxMC43IDI3LjcgMGwyNy43LTQ4SDMwNWMxMi4zIDAgMjAtMTMuMyAxMy45LTI0bC0yNy43LTQ4IDI3LjctNDhjNi4yLTEwLjctMS41LTI0LTEzLjktMjRIMjQ5LjZMMjIxLjkgNjRjLTYuMi0xMC43LTIxLjYtMTAuNy0yNy43IDBsLTI3LjcgNDhIMTExYy0xMi4zIDAtMjAgMTMuMy0xMy45IDI0bDI3LjcgNDh6bTI3LjcgMGwyNy43LTQ4aDU1LjRsMjcuNyA0OC0yNy43IDQ4SDE4MC4zbC0yNy43LTQ4em0wLTQ4bC0xMy45IDI0LTEzLjktMjRoMjcuN3ptNDEuNi0yNEwyMDggODhsMTMuOSAyNEgxOTQuMXptNjkuMyAyNGgyNy43bC0xMy45IDI0LTEzLjktMjR6bTEzLjkgNzJsMTMuOSAyNEgyNjMuNGwxMy45LTI0em0tNTUuNCA0OEwyMDggMjgwbC0xMy45LTI0aDI3Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvb2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMEM0MyAwIDAgNDMgMCA5NlY0MTZjMCA1MyA0MyA5NiA5NiA5NkgzODRoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJWMzg0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMySDM4NCA5NnptMCAzODRIMzUydjY0SDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0zMi0yNDBjMC04LjggNy4yLTE2IDE2LTE2SDMzNmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxNDRjLTguOCAwLTE2LTcuMi0xNi0xNnptMTYgNDhIMzM2YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDE0NGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9va21hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0OFY0ODcuN0MwIDUwMS4xIDEwLjkgNTEyIDI0LjMgNTEyYzUgMCA5LjktMS41IDE0LTQuNEwxOTIgNDAwIDM0NS43IDUwNy42YzQuMSAyLjkgOSA0LjQgMTQgNC40YzEzLjQgMCAyNC4zLTEwLjkgMjQuMy0yNC4zVjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9yZGVyQWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCA5NlYyMjRIMjU2Vjk2SDM4NHptMCAxOTJWNDE2SDI1NlYyODhIMzg0ek0xOTIgMjI0SDY0Vjk2SDE5MlYyMjR6TTY0IDI4OEgxOTJWNDE2SDY0VjI4OHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3JkZXJOb25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDQ4MGEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTk2LTY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMC0zODRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0wIDI1NmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6TTMyMCA0MTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0wLTMyMGEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTAgMTI4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMjI0IDQ4MGEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTAtNDQ4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMCAyNTZhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0ek00MTYgNDE2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMC0zODRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0zMiA5NmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6TTQxNiAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0zMiAyODhhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0xOTIgMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xOTIgNjRhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0ek0zMiAzMjBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek00MTYgMTkyYTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHpNMzIgMTI4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTkyIDY0YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9yZGVyVG9wTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzM2YzAtOC44IDcuMi0xNiAxNi0xNmwzMzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw4MCAzMkMzNS44IDMyIDAgNjcuOCAwIDExMkwwIDQ0OHptMTYwIDBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTkyIDBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptLTk2IDBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTkyIDBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNNDE2IDI4OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTAgMzJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em0wLTEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvcmVIb2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMlYyOTYuNmMtMTkuMSAxMS4xLTMyIDMxLjctMzIgNTUuNGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0YzAtMjMuNy0xMi45LTQ0LjQtMzItNTUuNFYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDggMTI4Yy0yNi41IDAtNDggMjEuNS00OCA0OFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhINDY0YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjE3NmMwLTI2LjUtMjEuNS00OC00OC00OEgzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjM1MmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NlYxNjBjMC0xNy43LTE0LjMtMzItMzItMzJINDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvdHRsZURyb3BsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMEM4Mi43IDAgNzIgMTAuNyA3MiAyNHMxMC43IDI0IDI0IDI0YzQuNCAwIDggMy42IDggOHY2NC45YzAgMTIuMi03LjIgMjMuMS0xNy4yIDMwLjFDNTMuNyAxNzQuMSAzMiAyMTIuNSAzMiAyNTZWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDIyNGMzNS4zIDAgNjQtMjguNyA2NC02NFYyNTZjMC00My41LTIxLjctODEuOS01NC44LTEwNWMtMTAtNy0xNy4yLTE3LjktMTcuMi0zMC4xVjU2YzAtNC40IDMuNi04IDgtOGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOCAwIDAgMCAwIDBIMTA0bDAgMCAwIDBMOTYgMHptNjQgMzgyYy0yNi41IDAtNDgtMjAuMS00OC00NWMwLTE2LjggMjIuMS00OC4xIDM2LjMtNjYuNGM2LTcuOCAxNy41LTcuOCAyMy41IDBDMTg1LjkgMjg4LjkgMjA4IDMyMC4yIDIwOCAzMzdjMCAyNC45LTIxLjUgNDUtNDggNDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvdHRsZVdhdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyMCAwbDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MEw5NiA2NGwwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0zMiAxNjcuNWMwLTE5LjUgMTAtMzcuNiAyNi42LTQ3LjlsMTUuOC05LjlDODguNyAxMDAuNyAxMDUuMiA5NiAxMjIuMSA5Nmw3NS44IDBjMTYuOSAwIDMzLjQgNC43IDQ3LjcgMTMuN2wxNS44IDkuOUMyNzggMTI5LjkgMjg4IDE0OCAyODggMTY3LjVjMCAxNy03LjUgMzIuMy0xOS40IDQyLjZDMjgwLjYgMjIxLjcgMjg4IDIzOCAyODggMjU2YzAgMTkuMS04LjQgMzYuMy0yMS43IDQ4YzEzLjMgMTEuNyAyMS43IDI4LjkgMjEuNyA0OHMtOC40IDM2LjMtMjEuNyA0OGMxMy4zIDExLjcgMjEuNyAyOC45IDIxLjcgNDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGMwLTE5LjEgOC40LTM2LjMgMjEuNy00OEM0MC40IDM4OC4zIDMyIDM3MS4xIDMyIDM1MnM4LjQtMzYuMyAyMS43LTQ4QzQwLjQgMjkyLjMgMzIgMjc1LjEgMzIgMjU2YzAtMTggNy40LTM0LjMgMTkuNC00NS45QzM5LjUgMTk5LjcgMzIgMTg0LjUgMzIgMTY3LjV6TTk2IDI0MGMwIDguOCA3LjIgMTYgMTYgMTZsOTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtOTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNiAxMTJjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsOTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtOTYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm93bEZvb2QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxOTJjMC0zNS4zIDI4LjctNjQgNjQtNjRjLjUgMCAxLjEgMCAxLjYgMEM3MyA5MS41IDEwNS4zIDY0IDE0NCA2NGMxNSAwIDI5IDQuMSA0MC45IDExLjJDMTk4LjIgNDkuNiAyMjUuMSAzMiAyNTYgMzJzNTcuOCAxNy42IDcxLjEgNDMuMkMzMzkgNjguMSAzNTMgNjQgMzY4IDY0YzM4LjcgMCA3MSAyNy41IDc4LjQgNjRjLjUgMCAxLjEgMCAxLjYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGMwIDExLjctMy4xIDIyLjYtOC42IDMySDguNkMzLjEgMjE0LjYgMCAyMDMuNyAwIDE5MnptMCA5MS40QzAgMjY4LjMgMTIuMyAyNTYgMjcuNCAyNTZINDg0LjZjMTUuMSAwIDI3LjQgMTIuMyAyNy40IDI3LjRjMCA3MC41LTQ0LjQgMTMwLjctMTA2LjcgMTU0LjFMNDAzLjUgNDUyYy0yIDE2LTE1LjYgMjgtMzEuOCAyOEgxNDAuMmMtMTYuMSAwLTI5LjgtMTItMzEuOC0yOGwtMS44LTE0LjRDNDQuNCA0MTQuMSAwIDM1My45IDAgMjgzLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvd2xSaWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiA1NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGgxNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyMDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0yNCA0OGgxNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyMDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6TTU2IDE3Nkg3MmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEg1NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMCAyODMuNEMwIDI2OC4zIDEyLjMgMjU2IDI3LjQgMjU2SDQ4NC42YzE1LjEgMCAyNy40IDEyLjMgMjcuNCAyNy40YzAgNzAuNS00NC40IDEzMC43LTEwNi43IDE1NC4xTDQwMy41IDQ1MmMtMiAxNi0xNS42IDI4LTMxLjggMjhIMTQwLjJjLTE2LjEgMC0yOS44LTEyLTMxLjgtMjhsLTEuOC0xNC40QzQ0LjQgNDE0LjEgMCAzNTMuOSAwIDI4My40ek0yMjQgMjAwYzAtMTMuMyAxMC43LTI0IDI0LTI0aDE2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDI0OGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bS05NiAwYzAtMTMuMyAxMC43LTI0IDI0LTI0aDE2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDE1MmMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bS0yNC05NmgxNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgxMDRjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTIxNiA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGgxNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgzNDRjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0tMjQtOTZoMTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMjk2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0xMjAgOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRoMTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRINDQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptLTI0LTk2aDE2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDM5MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMjk2IDMyaDE2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDI5NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm93bGluZ0JhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI0MCA4MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTIwOCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTY0LTY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm94QXJjaGl2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAzMkg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWOTZjMCAxNy43LTE0LjMgMzItMzIgMzJIMzJDMTQuMyAxMjggMCAxMTMuNyAwIDk2VjY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyem0wIDEyOEg0ODBWNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0SDk2Yy0zNS4zIDAtNjQtMjguNy02NC02NFYxNjB6bTEyOCA4MGMwIDguOCA3LjIgMTYgMTYgMTZIMzM2YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDE3NmMtOC44IDAtMTYgNy4yLTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3hPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU4LjkgNDIuMWMzLTYuMSA5LjYtOS42IDE2LjMtOC43TDMyMCA2NCA1NjQuOCAzMy40YzYuNy0uOCAxMy4zIDIuNyAxNi4zIDguN2w0MS43IDgzLjRjOSAxNy45LS42IDM5LjYtMTkuOCA0NS4xTDQzOS42IDIxNy4zYy0xMy45IDQtMjguOC0xLjktMzYuMi0xNC4zTDMyMCA2NCAyMzYuNiAyMDNjLTcuNCAxMi40LTIyLjMgMTguMy0zNi4yIDE0LjNMMzcuMSAxNzAuNmMtMTkuMy01LjUtMjguOC0yNy4yLTE5LjgtNDUuMUw1OC45IDQyLjF6TTMyMS4xIDEyOGw1NC45IDkxLjRjMTQuOSAyNC44IDQ0LjYgMzYuNiA3Mi41IDI4LjZMNTc2IDIxMS42djE2N2MwIDIyLTE1IDQxLjItMzYuNCA0Ni42bC0yMDQuMSA1MWMtMTAuMiAyLjYtMjAuOSAyLjYtMzEgMGwtMjA0LjEtNTFDNzkgNDE5LjcgNjQgNDAwLjUgNjQgMzc4LjV2LTE2N0wxOTEuNiAyNDhjMjcuOCA4IDU3LjYtMy44IDcyLjUtMjguNkwzMTguOSAxMjhoMi4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3hUaXNzdWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTIuNSAwSDIwOGM0MCAwIDUyIDI0IDY0IDQ4czI0IDQ4IDY0IDQ4aDg1LjJDNDM2IDk2IDQ0OCAxMDggNDQ4IDEyMi44YzAgMy40LS43IDYuOC0xLjkgMTBMNDA5LjYgMjI0IDM4NCAyODhIMTI4bC0xNi02NEw2NC45IDM1LjRjLS42LTIuMy0uOS00LjYtLjktNi45QzY0IDEyLjggNzYuOCAwIDkyLjUgMHpNNzkgMjI0bDE2IDY0SDgwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2aDQ4SDM4NGg0OGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkg0MTguNWwyNS42LTY0SDQ2NGMyNi41IDAgNDggMjEuNSA0OCA0OFYzODRIMFYyNzJjMC0yNi41IDIxLjUtNDggNDgtNDhINzl6TTAgNDE2SDUxMnY0OGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWNDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAuNyA1OC41TDAgMTYwSDIwOFYzMkg5My43Qzc1LjUgMzIgNTguOSA0Mi4zIDUwLjcgNTguNXpNMjQwIDE2MEg0NDhMMzk3LjMgNTguNUMzODkuMSA0Mi4zIDM3Mi41IDMyIDM1NC4zIDMySDI0MFYxNjB6bTIwOCAzMkgwVjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3hlc1BhY2tpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4SDU5MmMyNi41IDAgNDggMjEuNSA0OCA0OFY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhIMzgxLjNjMS44LTUgMi43LTEwLjQgMi43LTE2VjI1My4zYzE4LjYtNi42IDMyLTI0LjQgMzItNDUuM1YxNzZjMC0yNi41LTIxLjUtNDgtNDgtNDhIMjU2VjQ4ek01NzEuMyAzNDcuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtNjQtNjRjLTYuMi02LjItMTYuNC02LjItMjIuNiAwbC02NCA2NGMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwTDQ4MCAzMTAuNlY0MzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYzMTAuNmwzNi43IDM2LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDB6TTAgMTc2YzAtOC44IDcuMi0xNiAxNi0xNkgzNjhjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgxNmMtOC44IDAtMTYtNy4yLTE2LTE2VjE3NnptMzUyIDgwVjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMkg2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMjU2SDM1MnpNMTQ0IDMyMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmg5NmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgxNDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJveGVzU3RhY2tlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggMEgyMDhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4VjE2MGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzNTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhIMzI4VjgwYzAgOC44LTcuMiAxNi0xNiAxNkgyNjRjLTguOCAwLTE2LTcuMi0xNi0xNlYwek02NCAyNTZjLTM1LjMgMC02NCAyOC43LTY0IDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgyMjRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0SDE4NHY4MGMwIDguOC03LjIgMTYtMTYgMTZIMTIwYy04LjggMC0xNi03LjItMTYtMTZWMjU2SDY0ek0zNTIgNTEySDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NFYzMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRINDcydjgwYzAgOC44LTcuMiAxNi0xNiAxNkg0MDhjLTguOCAwLTE2LTcuMi0xNi0xNlYyNTZIMzUyYy0xNSAwLTI4LjggNS4xLTM5LjcgMTMuOGM0LjkgMTAuNCA3LjcgMjIgNy43IDM0LjJWNDY0YzAgMTIuMi0yLjggMjMuOC03LjcgMzQuMkMzMjMuMiA1MDYuOSAzMzcgNTEyIDM1MiA1MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJyYWlsbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA5NmE2NCA2NCAwIDEgMSAxMjggMEE2NCA2NCAwIDEgMSAwIDk2ek0yMjQgMjcyYTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptMC04MGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNODAgNDE2YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6TTAgNDE2YTY0IDY0IDAgMSAxIDEyOCAwQTY0IDY0IDAgMSAxIDAgNDE2em0yNDAgMGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem0tODAgMGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTY0IDE5MmE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNMjI0IDMyYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek0zNTIgOTZhNjQgNjQgMCAxIDEgMTI4IDBBNjQgNjQgMCAxIDEgMzUyIDk2em0yNDAgMGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem0tODAgMGE2NCA2NCAwIDEgMSAxMjggMEE2NCA2NCAwIDEgMSA1MTIgOTZ6bTY0IDE3NmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bTAtODBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6bTE2IDIyNGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem0tODAgMGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTQxNiAyNzJhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyem0wLTgwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em0xNiAyMjRhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptLTgwIDBhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcmFpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODQgMGMzMC45IDAgNTYgMjUuMSA1NiA1NlY0NTZjMCAzMC45LTI1LjEgNTYtNTYgNTZjLTI4LjkgMC01Mi43LTIxLjktNTUuNy01MC4xYy01LjIgMS40LTEwLjcgMi4xLTE2LjMgMi4xYy0zNS4zIDAtNjQtMjguNy02NC02NGMwLTcuNCAxLjMtMTQuNiAzLjYtMjEuMkMyMS40IDM2Ny40IDAgMzM4LjIgMCAzMDRjMC0zMS45IDE4LjctNTkuNSA0NS44LTcyLjNDMzcuMSAyMjAuOCAzMiAyMDcgMzIgMTkyYzAtMzAuNyAyMS42LTU2LjMgNTAuNC02Mi42QzgwLjggMTIzLjkgODAgMTE4IDgwIDExMmMwLTI5LjkgMjAuNi01NS4xIDQ4LjMtNjIuMUMxMzEuMyAyMS45IDE1NS4xIDAgMTg0IDB6TTMyOCAwYzI4LjkgMCA1Mi42IDIxLjkgNTUuNyA0OS45YzI3LjggNyA0OC4zIDMyLjEgNDguMyA2Mi4xYzAgNi0uOCAxMS45LTIuNCAxNy40YzI4LjggNi4yIDUwLjQgMzEuOSA1MC40IDYyLjZjMCAxNS01LjEgMjguOC0xMy44IDM5LjdDNDkzLjMgMjQ0LjUgNTEyIDI3Mi4xIDUxMiAzMDRjMCAzNC4yLTIxLjQgNjMuNC01MS42IDc0LjhjMi4zIDYuNiAzLjYgMTMuOCAzLjYgMjEuMmMwIDM1LjMtMjguNyA2NC02NCA2NGMtNS42IDAtMTEuMS0uNy0xNi4zLTIuMWMtMyAyOC4yLTI2LjggNTAuMS01NS43IDUwLjFjLTMwLjkgMC01Ni0yNS4xLTU2LTU2VjU2YzAtMzAuOSAyNS4xLTU2IDU2LTU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcmF6aWxpYW5SZWFsU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMlY1MC4yYzEyLjUgMi4zIDI0LjcgNi40IDM2LjIgMTIuMWwxMC4xIDUuMWMxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45cy0yNy4xIDIyLjItNDIuOSAxNC4zbC0xMC4yLTUuMWMtOS45LTUtMjAuOS03LjUtMzItNy41aC0xLjdjLTI5LjggMC01My45IDI0LjEtNTMuOSA1My45YzAgMjIgMTMuNCA0MS44IDMzLjkgNTBsNTIgMjAuOGM0NC43IDE3LjkgNzQuMSA2MS4yIDc0LjEgMTA5LjR2My40YzAgNTEuMi0zMy42IDk0LjYtODAgMTA5LjJWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjQ2MC42Yy0xNS0zLjUtMjkuNC05LjctNDIuMy0xOC4zbC0yMy40LTE1LjZjLTE0LjctOS44LTE4LjctMjkuNy04LjktNDQuNHMyOS43LTE4LjcgNDQuNC04LjlMMzYxLjIgMzg5YzEwLjggNy4yIDIzLjQgMTEgMzYuMyAxMWMyNy45IDAgNTAuNS0yMi42IDUwLjUtNTAuNXYtMy40YzAtMjItMTMuNC00MS44LTMzLjktNTBsLTUyLTIwLjhDMzE3LjMgMjU3LjQgMjg4IDIxNC4xIDI4OCAxNjUuOUMyODggMTE0IDMyMS41IDcwIDM2OCA1NC4yVjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyaDgwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0YzAgNTguOC0zNS4yIDEwOS4zLTg1LjcgMTMxLjdsNTEuNCAxMjguNGM2LjYgMTYuNC0xLjQgMzUtMTcuOCA0MS42cy0zNS0xLjQtNDEuNi0xNy44TDEwNi4zIDMyMEg2NFY0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMjg4IDY0ek02NCAyNTZoNDhjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBINjRWMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcmVhZFNsaWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAzMkMxOTIgMzIgMCA2NCAwIDE5MmMwIDM1LjMgMjguNyA2NCA2NCA2NFY0MzJjMCAyNi41IDIxLjUgNDggNDggNDhINDAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjI1NmMzNS4zIDAgNjQtMjguNyA2NC02NEM1MTIgNjQgMzIwIDMyIDI1NiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnJpZGdlQ2lyY2xlQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDNDYuMyAzMiAzMiA0Ni4zIDMyIDY0czE0LjMgMzIgMzIgMzJoNDB2NjRIMzJWMjg4YzUzIDAgOTYgNDMgOTYgOTZ2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzg0YzAtNTMgNDMtOTYgOTYtOTZjNi4zIDAgMTIuNCAuNiAxOC4zIDEuN0MzNjcuMSAyMzEuOCA0MjYuOSAxOTIgNDk2IDE5MmM0Mi41IDAgODEuNiAxNS4xIDExMiA0MC4yVjE2MEg1MzZWOTZoNDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINjR6TTQ4OCA5NnY2NEg0MDhWOTZoODB6TTM2MCA5NnY2NEgyODBWOTZoODB6TTIzMiA5NnY2NEgxNTJWOTZoODB6TTY0MCAzNjhhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTc2LjctNDMuM2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNzIgNzJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ4MCAzODUuNGw2MC43LTYwLjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJyaWRnZUNpcmNsZUV4Y2xhbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzQ2LjMgMzIgMzIgNDYuMyAzMiA2NHMxNC4zIDMyIDMyIDMyaDQwdjY0SDMyVjI4OGM1MyAwIDk2IDQzIDk2IDk2djY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM4NGMwLTUzIDQzLTk2IDk2LTk2YzYuMyAwIDEyLjQgLjYgMTguMyAxLjdDMzY3LjEgMjMxLjggNDI2LjkgMTkyIDQ5NiAxOTJjNDIuNSAwIDgxLjYgMTUuMSAxMTIgNDAuMlYxNjBINTM2Vjk2aDQwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDY0ek00ODggOTZ2NjRINDA4Vjk2aDgwek0zNjAgOTZ2NjRIMjgwVjk2aDgwek0yMzIgOTZ2NjRIMTUyVjk2aDgwek00OTYgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC05NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTAtMTQ0YzguOCAwIDE2IDcuMiAxNiAxNnY4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYyODhjMC04LjggNy4yLTE2IDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcmlkZ2VDaXJjbGVYbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkM0Ni4zIDMyIDMyIDQ2LjMgMzIgNjRzMTQuMyAzMiAzMiAzMmg0MHY2NEgzMlYyODhjNTMgMCA5NiA0MyA5NiA5NnY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYzODRjMC01MyA0My05NiA5Ni05NmM2LjMgMCAxMi40IC42IDE4LjMgMS43QzM2Ny4xIDIzMS44IDQyNi45IDE5MiA0OTYgMTkyYzQyLjUgMCA4MS42IDE1LjEgMTEyIDQwLjJWMTYwSDUzNlY5Nmg0MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg2NHpNNDg4IDk2djY0SDQwOFY5Nmg4MHpNMzYwIDk2djY0SDI4MFY5Nmg4MHpNMjMyIDk2djY0SDE1MlY5Nmg4MHpNNDk2IDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdMNTE4LjYgMzY4bDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwTDQ5NiAzOTAuNmwtMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42TDQ3My40IDM2OGwtMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDk2IDM0NS40bDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJyaWRnZUxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJINTc2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDUzNnY2NGgtOGMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTJ2MjQuNmMtOS45IDUuOC0xOC4yIDE0LjEtMjMuOCAyNC4xYy0xNy42LTIwLTQzLjQtMzIuNy03Mi4yLTMyLjdjLTUzIDAtOTYgNDMtOTYgOTZ2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJIMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMlYzODRjMC01My00My05Ni05Ni05NlYxNjBoNzJWOTZINjRDNDYuMyA5NiAzMiA4MS43IDMyIDY0ek00MDggOTZ2NjRoODBWOTZINDA4em0tNDggNjRWOTZIMjgwdjY0aDgwek0xNTIgOTZ2NjRoODBWOTZIMTUyek01MjggMjQwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY0OGg2NFYyNzJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS04MCAzMmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwdjQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMyVjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMkg0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjM1MmMwLTE3LjcgMTQuMy0zMiAzMi0zMlYyNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJyaWRnZVdhdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRINTQ0YzE3LjcgMCAzMiAxNC4zIDMyIDMydjM1LjZjMCAxNS43LTEyLjcgMjguNC0yOC40IDI4LjRjLTM3LjMgMC02Ny42IDMwLjItNjcuNiA2Ny42VjM1Mi41Yy0xMi45IDAtMjUuOCAzLjktMzYuOCAxMS43Yy0xOCAxMi40LTQwLjEgMjAuMy01OS4yIDIwLjNoMGwwLS41VjI1NmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NlYzODRsMCAuNWMtMTkgMC00MS4yLTcuOS01OS4xLTIwLjNjLTExLjEtNy44LTI0LTExLjctMzYuOS0xMS43VjIyNy42Qzk2IDE5MC4yIDY1LjggMTYwIDI4LjQgMTYwQzEyLjcgMTYwIDAgMTQ3LjMgMCAxMzEuNlY5NnpNMzA2LjUgMzg5LjlDMzI5IDQwNS40IDM1Ni41IDQxNiAzODQgNDE2YzI2LjkgMCA1NS40LTEwLjggNzcuNC0yNi4xbDAgMGMxMS45LTguNSAyOC4xLTcuOCAzOS4yIDEuN2MxNC40IDExLjkgMzIuNSAyMSA1MC42IDI1LjJjMTcuMiA0IDI3LjkgMjEuMiAyMy45IDM4LjRzLTIxLjIgMjcuOS0zOC40IDIzLjljLTI0LjUtNS43LTQ0LjktMTYuNS01OC4yLTI1QzQ0OS41IDQ2OS43IDQxNyA0ODAgMzg0IDQ4MGMtMzEuOSAwLTYwLjYtOS45LTgwLjQtMTguOWMtNS44LTIuNy0xMS4xLTUuMy0xNS42LTcuN2MtNC41IDIuNC05LjcgNS4xLTE1LjYgNy43Yy0xOS44IDktNDguNSAxOC45LTgwLjQgMTguOWMtMzMgMC02NS41LTEwLjMtOTQuNS0yNS44Yy0xMy40IDguNC0zMy43IDE5LjMtNTguMiAyNWMtMTcuMiA0LTM0LjQtNi43LTM4LjQtMjMuOXM2LjctMzQuNCAyMy45LTM4LjRjMTguMS00LjIgMzYuMi0xMy4zIDUwLjYtMjUuMmMxMS4xLTkuNCAyNy4zLTEwLjEgMzkuMi0xLjdsMCAwQzEzNi43IDQwNS4yIDE2NS4xIDQxNiAxOTIgNDE2YzI3LjUgMCA1NS0xMC42IDc3LjUtMjYuMWMxMS4xLTcuOSAyNS45LTcuOSAzNyAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcmlkZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2SDcydjY0SDBWMjg4YzUzIDAgOTYgNDMgOTYgOTZ2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzg0YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZ2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzg0YzAtNTMgNDMtOTYgOTYtOTZWMTYwSDUwNFY5Nmg0MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMnpNNDU2IDk2djY0SDM3NlY5Nmg4MHpNMzI4IDk2djY0SDI0OFY5Nmg4MHpNMjAwIDk2djY0SDEyMFY5Nmg4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnJpZWZjYXNlTWVkaWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODQgNDhIMzI4YzQuNCAwIDggMy42IDggOFY5NkgxNzZWNTZjMC00LjQgMy42LTggOC04em0tNTYgOFY5Nkg2NEMyOC43IDk2IDAgMTI0LjcgMCAxNjBWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNjBjMC0zNS4zLTI4LjctNjQtNjQtNjRIMzg0VjU2YzAtMzAuOS0yNS4xLTU2LTU2LTU2SDE4NGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6bTk2IDE1MmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djQ4aDQ4YzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMjg4djQ4YzAgOC44LTcuMiAxNi0xNiAxNkgyNDBjLTguOCAwLTE2LTcuMi0xNi0xNlYzMjBIMTc2Yy04LjggMC0xNi03LjItMTYtMTZWMjcyYzAtOC44IDcuMi0xNiAxNi0xNmg0OFYyMDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJyaWVmY2FzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODQgNDhIMzI4YzQuNCAwIDggMy42IDggOFY5NkgxNzZWNTZjMC00LjQgMy42LTggOC04em0tNTYgOFY5Nkg2NEMyOC43IDk2IDAgMTI0LjcgMCAxNjB2OTZIMTkyIDMyMCA1MTJWMTYwYzAtMzUuMy0yOC43LTY0LTY0LTY0SDM4NFY1NmMwLTMwLjktMjUuMS01Ni01Ni01NkgxODRjLTMwLjkgMC01NiAyNS4xLTU2IDU2ek01MTIgMjg4SDMyMHYzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkgyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjI4OEgwVjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcm9vbUJhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTY2LjYgOS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xOTIgMTkyIDM0LjcgMzQuN2M0LjIgNC4yIDYuNiAxMCA2LjYgMTZjMCAxMi41LTEwLjEgMjIuNi0yMi42IDIyLjZIMzY0LjNMMjU2IDIxMS43VjE4Mi42YzAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42YzYgMCAxMS44IDIuNCAxNiA2LjZsMzQuNyAzNC43IDE5Mi0xOTJjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDB6bS0zNDQgMjI1LjVMMzQxLjEgMzUzLjRjMy43IDQyLjctMTEuNyA4NS4yLTQyLjMgMTE1LjhDMjcxLjQgNDk2LjYgMjM0LjIgNTEyIDE5NS41IDUxMkwyMi4xIDUxMkM5LjkgNTEyIDAgNTAyLjEgMCA0ODkuOWMwLTYuMyAyLjctMTIuMyA3LjMtMTYuNUwxMzMuNyAzNTkuN2M0LjItMy43LS40LTEwLjQtNS40LTcuOUw3Ny4yIDM3Ny40Yy02LjEgMy0xMy4yLTEuNC0xMy4yLTguMmMwLTMxLjUgMTIuNS02MS43IDM0LjgtODRsOC04YzMwLjYtMzAuNiA3My4xLTQ1LjkgMTE1LjgtNDIuM3pNNDY0IDM1MmE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnJvb20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTY2LjYgNTQuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTkyIDE5Mi0zNC43LTM0LjdjLTQuMi00LjItMTAtNi42LTE2LTYuNmMtMTIuNSAwLTIyLjYgMTAuMS0yMi42IDIyLjZ2MjkuMUwzNjQuMyAzMjBoMjkuMWMxMi41IDAgMjIuNi0xMC4xIDIyLjYtMjIuNmMwLTYtMi40LTExLjgtNi42LTE2bC0zNC43LTM0LjcgMTkyLTE5MnpNMzQxLjEgMzUzLjRMMjIyLjYgMjM0LjljLTQyLjctMy43LTg1LjIgMTEuNy0xMTUuOCA0Mi4zbC04IDhDNzYuNSAzMDcuNSA2NCAzMzcuNyA2NCAzNjkuMmMwIDYuOCA3LjEgMTEuMiAxMy4yIDguMmw1MS4xLTI1LjVjNS0yLjUgOS41IDQuMSA1LjQgNy45TDcuMyA0NzMuNEMyLjcgNDc3LjYgMCA0ODMuNiAwIDQ4OS45QzAgNTAyLjEgOS45IDUxMiAyMi4xIDUxMmwxNzMuMyAwYzM4LjggMCA3NS45LTE1LjQgMTAzLjQtNDIuOGMzMC42LTMwLjYgNDUuOS03My4xIDQyLjMtMTE1Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJydXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2Mi40IDZjLTEuNS0zLjYtNS02LTguOS02aC0xOWMtMy45IDAtNy41IDIuNC04LjkgNkwxMDQuOSA1Ny43Yy0zLjIgOC0xNC42IDgtMTcuOCAwTDY2LjQgNmMtMS41LTMuNi01LTYtOC45LTZINDhDMjEuNSAwIDAgMjEuNSAwIDQ4VjIyNHYyMi40VjI1Nkg5LjYgMzc0LjQgMzg0di05LjZWMjI0IDQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDIzMC41Yy0zLjkgMC03LjUgMi40LTguOSA2TDIwMC45IDU3LjdjLTMuMiA4LTE0LjYgOC0xNy44IDBMMTYyLjQgNnpNMCAyODh2MzJjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNjR2NjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NFYzODRoNjRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMjg4SDB6TTE5MiA0MzJhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdWNrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMTUydjhINDh2LThDNDggNjguMSAxMTYuMSAwIDIwMCAwaDQ4YzgzLjkgMCAxNTIgNjguMSAxNTIgMTUydjhIMzUydi04YzAtNTcuNC00Ni42LTEwNC0xMDQtMTA0SDIwMEMxNDIuNiA0OCA5NiA5NC42IDk2IDE1MnpNMCAyMjRjMC0xNy43IDE0LjMtMzIgMzItMzJINDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyaC01LjFMMzg4LjUgNDY5Yy0yLjYgMjQuNC0yMy4yIDQzLTQ3LjcgNDNIMTA3LjJjLTI0LjYgMC00NS4yLTE4LjUtNDcuNy00M0wzNy4xIDI1NkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1Z1NsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMNDc3LjQgMzQ4LjljMS43LTkuNCAyLjYtMTkgMi42LTI4LjloNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINDc5LjdjLTEuMS0xNC4xLTUtMjcuNS0xMS4xLTM5LjVjLjctLjYgMS40LTEuMiAyLjEtMS45bDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtLjcgLjctMS4zIDEuNC0xLjkgMi4xQzQwOS4yIDE2NC4xIDM5My4xIDE2MCAzNzYgMTYwSDI2NGMtOC4zIDAtMTYuMyAxLTI0IDIuOEwzOC44IDUuMXptMzkyIDQzMC4zTDMzNiAzNjAuN1Y0NzkuMmMzNi42LTMuNiA2OS43LTE5LjYgOTQuOC00My44ek0xNjYuNyAyMjcuM2MtMy40IDktNS42IDE4LjctNi40IDI4LjdIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoNjRjMCAyNC42IDUuNSA0Ny44IDE1LjQgNjguNmMtMi4yIDEuMy00LjIgMi45LTYgNC44bC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2My4xLTYzLjFjMjQuNSAyMS44IDU1LjggMzYuMiA5MC4zIDM5LjZWMzM1LjVMMTY2LjcgMjI3LjN6TTMyMCAwYy01MyAwLTk2IDQzLTk2IDk2djMuNmMwIDE1LjcgMTIuNyAyOC40IDI4LjQgMjguNEgzODcuNmMxNS43IDAgMjguNC0xMi43IDI4LjQtMjguNFY5NmMwLTUzLTQzLTk2LTk2LTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDBjNTMgMCA5NiA0MyA5NiA5NnYzLjZjMCAxNS43LTEyLjcgMjguNC0yOC40IDI4LjRIMTg4LjRjLTE1LjcgMC0yOC40LTEyLjctMjguNC0yOC40Vjk2YzAtNTMgNDMtOTYgOTYtOTZ6TTQxLjQgMTA1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNjQgNjRjLjcgLjcgMS4zIDEuNCAxLjkgMi4xYzE0LjItNy4zIDMwLjQtMTEuNCA0Ny41LTExLjRIMzEyYzE3LjEgMCAzMy4yIDQuMSA0Ny41IDExLjRjLjYtLjcgMS4yLTEuNCAxLjktMi4xbDY0LTY0YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTY0IDY0Yy0uNyAuNy0xLjQgMS4zLTIuMSAxLjljNi4yIDEyIDEwLjEgMjUuMyAxMS4xIDM5LjVINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDQxNmMwIDI0LjYtNS41IDQ3LjgtMTUuNCA2OC42YzIuMiAxLjMgNC4yIDIuOSA2IDQuOGw2NCA2NGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtNjMuMS02My4xYy0yNC41IDIxLjgtNTUuOCAzNi4yLTkwLjMgMzkuNlYyNDBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZWNDc5LjJjLTM0LjUtMy40LTY1LjgtMTcuOC05MC4zLTM5LjZMODYuNiA1MDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNjQtNjRjMS45LTEuOSAzLjktMy40IDYtNC44QzEwMS41IDM2Ny44IDk2IDM0NC42IDk2IDMyMEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg5Ni4zYzEuMS0xNC4xIDUtMjcuNSAxMS4xLTM5LjVjLS43LS42LTEuNC0xLjItMi4xLTEuOWwtNjQtNjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdWdzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2NC41IDEwNy40bDMzLjQtNzMuNWM1LjUtMTIuMSAuMS0yNi4zLTExLjktMzEuOHMtMjYuMy0uMS0zMS44IDExLjlMMTI4IDcxLjcgMTAxLjkgMTQuMUM5Ni40IDIgODIuMS0zLjMgNzAuMSAyLjFTNTIuNyAyMS45IDU4LjEgMzMuOWwzMy40IDczLjVjLTEwLjIgNy4xLTE4LjIgMTctMjIuOSAyOC42aC0xN2wtNC4xLTIwLjdjLTIuNi0xMy0xNS4yLTIxLjQtMjguMi0xOC44Uy0yLjEgMTExLjcgLjUgMTI0LjdsOCA0MEMxMC43IDE3NS45IDIwLjYgMTg0IDMyIDE4NEg2NHYyMy4zbC0zNy44IDkuNWMtOS41IDIuNC0xNi42IDEwLjItMTcuOSAxOS45bC04IDU2Yy0xLjkgMTMuMSA3LjIgMjUuMyAyMC40IDI3LjJzMjUuMy03LjIgMjcuMi0yMC40bDUuNy00MCAxOC40LTQuNkM4Mi43IDI3NC42IDEwMy44IDI4OCAxMjggMjg4czQ1LjMtMTMuNCA1Ni4xLTMzLjJsMTguNCA0LjYgNS43IDQwYzEuOSAxMy4xIDE0IDIyLjIgMjcuMiAyMC40czIyLjItMTQgMjAuNC0yNy4ybC04LTU2Yy0xLjQtOS43LTguNS0xNy41LTE3LjktMTkuOUwxOTIgMjA3LjNWMTg0aDMyYzExLjQgMCAyMS4zLTguMSAyMy41LTE5LjNsOC00MGMyLjYtMTMtNS44LTI1LjYtMTguOC0yOC4ycy0yNS42IDUuOC0yOC4yIDE4LjhMMjA0LjMgMTM2aC0xN2MtNC43LTExLjYtMTIuNy0yMS41LTIyLjktMjguNnpNNDk2IDI4Ni41bDY1LjYtNDdjMTAuOC03LjcgMTMuMy0yMi43IDUuNi0zMy41cy0yMi43LTEzLjMtMzMuNS01LjZsLTUxLjQgMzYuOCA2LjEtNjIuOWMxLjMtMTMuMi04LjQtMjQuOS0yMS42LTI2LjJzLTI0LjkgOC40LTI2LjIgMjEuNkw0MzIuOCAyNTBjLTEyLjMgMS0yNC4yIDUuNi0zNC4xIDEzLjNMMzg0IDI1NC44bDYuOC0yMGM0LjItMTIuNi0yLjUtMjYuMi0xNS0zMC40cy0yNi4yIDIuNS0zMC40IDE1bC0xMy4xIDM4LjZjLTMuNyAxMC44IC44IDIyLjggMTAuNyAyOC41bDI3LjcgMTZMMzU5IDMyMi43IDMyMS41IDMxMmMtOS40LTIuNy0xOS41IC42LTI1LjUgOC4zbC0zNC45IDQ0LjVjLTguMiAxMC40LTYuNCAyNS41IDQuMSAzMy43czI1LjUgNi40IDMzLjctNC4xbDI1LTMxLjggMTguMiA1LjJjLS41IDIyLjYgMTEgNDQuNyAzMiA1Ni44czQ1LjkgMTEgNjUuMi0uN2wxMy42IDEzLjItMTUuMSAzNy41Yy00LjkgMTIuMyAxIDI2LjMgMTMuMyAzMS4yczI2LjMtMSAzMS4yLTEzLjNMNTAzLjUgNDQwYzMuNi05LjEgMS40LTE5LjQtNS42LTI2LjJsLTI4LTI3LjEgMTEuNi0yMC4xIDI3LjcgMTZjOS45IDUuNyAyMi41IDMuNyAzMC00LjlMNTY2LjIgMzQ3YzguNy0xMCA3LjgtMjUuMS0yLjItMzMuOXMtMjUuMS03LjgtMzMuOSAyLjJsLTEzLjkgMTUuOS0xNC43LTguNWMxLjctMTIuNC0uMi0yNS01LjUtMzYuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVpbGRpbmdDaXJjbGVBcnJvd1JpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwSDMzNmMyNi41IDAgNDggMjEuNSA0OCA0OFYyMzIuMmMtMzkuMSAzMi4zLTY0IDgxLjEtNjQgMTM1LjhjMCA0OS41IDIwLjQgOTQuMiA1My4zIDEyNi4yQzM2NC41IDUwNS4xIDM1MS4xIDUxMiAzMzYgNTEySDI0MFY0MzJjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDh2ODBINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjQ4ek04MCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjI0MGMwLTguOC03LjItMTYtMTYtMTZIODB6bTgwIDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMjQwYzAtOC44LTcuMi0xNi0xNi0xNkgxNzZjLTguOCAwLTE2IDcuMi0xNiAxNnptMTEyLTE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyNDBjMC04LjgtNy4yLTE2LTE2LTE2SDI3MnpNNjQgMTEydjMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMTEyYzAtOC44LTcuMi0xNi0xNi0xNkg4MGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNzYgOTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjExMmMwLTguOC03LjItMTYtMTYtMTZIMTc2em04MCAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjExMmMwLTguOC03LjItMTYtMTYtMTZIMjcyYy04LjggMC0xNiA3LjItMTYgMTZ6bTk2IDI1NmExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNDAuNy02Ny4zYy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNkw1MjEuNCAzNTJINDMyYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2aDg5LjRsLTI4LjcgMjguN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDU2LTU2YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC01Ni01NmMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1aWxkaW5nQ2lyY2xlQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggMEMyMS41IDAgMCAyMS41IDAgNDhWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDk2VjQzMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4djgwaDk2YzE1LjEgMCAyOC41LTYuOSAzNy4zLTE3LjhDMzQwLjQgNDYyLjIgMzIwIDQxNy41IDMyMCAzNjhjMC01NC43IDI0LjktMTAzLjUgNjQtMTM1LjhWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhINDh6TTY0IDI0MGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MHptMTEyLTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMTc2Yy04LjggMC0xNi03LjItMTYtMTZWMjQwYzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTZjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMjcyYy04LjggMC0xNi03LjItMTYtMTZWMjQwek04MCA5NmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZWMTEyYzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTZjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMTc2Yy04LjggMC0xNi03LjItMTYtMTZWMTEyek0yNzIgOTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNlYxMTJjMC04LjggNy4yLTE2IDE2LTE2ek02NDAgMzY4YTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS03Ni43LTQzLjNjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTcyIDcyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEw0ODAgMzg1LjRsNjAuNy02MC43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdWlsZGluZ0NpcmNsZUV4Y2xhbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGg5NlY0MzJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHY4MGg5NmMxNS4xIDAgMjguNS02LjkgMzcuMy0xNy44QzM0MC40IDQ2Mi4yIDMyMCA0MTcuNSAzMjAgMzY4YzAtNTQuNyAyNC45LTEwMy41IDY0LTEzNS44VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4ek02NCAyNDBjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDB6bTExMi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MGMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MHpNODAgOTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjExMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2VjExMnpNMjcyIDk2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMjcyYy04LjggMC0xNi03LjItMTYtMTZWMTEyYzAtOC44IDcuMi0xNiAxNi0xNnpNNDk2IDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtOTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0wLTE0NGM4LjggMCAxNiA3LjIgMTYgMTZ2ODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMjg4YzAtOC44IDcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVpbGRpbmdDaXJjbGVYbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCAwQzIxLjUgMCAwIDIxLjUgMCA0OFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoOTZWNDMyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDh2ODBoOTZjMTUuMSAwIDI4LjUtNi45IDM3LjMtMTcuOEMzNDAuNCA0NjIuMiAzMjAgNDE3LjUgMzIwIDM2OGMwLTU0LjcgMjQuOS0xMDMuNSA2NC0xMzUuOFY0OGMwLTI2LjUtMjEuNS00OC00OC00OEg0OHpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZWMjQwem0xMTItMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDBjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDB6TTgwIDk2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYxMTJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYxMTJ6TTI3MiA5NmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2VjExMmMwLTguOCA3LjItMTYgMTYtMTZ6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43TDUxOC42IDM2OGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEw0OTYgMzkwLjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkw0NzMuNCAzNjhsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ5NiAzNDUuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdWlsZGluZ0NvbHVtbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQzLjQgMi42bC0yMjQgOTZjLTE0IDYtMjEuOCAyMS0xOC43IDM1LjhTMTYuOCAxNjAgMzIgMTYwdjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRINDU2YzEzLjMgMCAyNC0xMC43IDI0LTI0di04YzE1LjIgMCAyOC4zLTEwLjcgMzEuMy0yNS42cy00LjgtMjkuOS0xOC43LTM1LjhsLTIyNC05NmMtOC0zLjQtMTcuMi0zLjQtMjUuMiAwek0xMjggMjI0SDY0VjQyMC4zYy0uNiAuMy0xLjIgLjctMS44IDEuMWwtNDggMzJjLTExLjcgNy44LTE3IDIyLjQtMTIuOSAzNS45UzE3LjkgNTEyIDMyIDUxMkg0ODBjMTQuMSAwIDI2LjUtOS4yIDMwLjYtMjIuN3MtMS4xLTI4LjEtMTIuOS0zNS45bC00OC0zMmMtLjYtLjQtMS4yLS43LTEuOC0xLjFWMjI0SDM4NFY0MTZIMzQ0VjIyNEgyODBWNDE2SDIzMlYyMjRIMTY4VjQxNkgxMjhWMjI0ek0yNTYgNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdWlsZGluZ0ZsYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggMEMyMS41IDAgMCAyMS41IDAgNDhWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDk2VjQzMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4djgwaDk2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4ek02NCAyNDBjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDB6bTExMi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MGMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MHpNODAgOTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjExMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2VjExMnpNMjcyIDk2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMjcyYy04LjggMC0xNi03LjItMTYtMTZWMTEyYzAtOC44IDcuMi0xNiAxNi0xNnpNNDQ4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjUxMmg2NFYxOTJINjI0YzguOCAwIDE2LTcuMiAxNi0xNlY0OGMwLTguOC03LjItMTYtMTYtMTZINDgwYzAtMTcuNy0xNC4zLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdWlsZGluZ0xvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggMEMyMS41IDAgMCAyMS41IDAgNDhWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDk2VjQzMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4djgwaDg4LjZjLTUuNC05LjQtOC42LTIwLjMtOC42LTMyVjM1MmMwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRWMjcyYzAtMzAuNSAxMi4yLTU4LjIgMzItNzguNFY0OGMwLTI2LjUtMjEuNS00OC00OC00OEg0OHpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZWMjQwem0xMTItMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDBjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDB6TTgwIDk2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYxMTJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYxMTJ6TTI3MiA5NmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2VjExMmMwLTguOCA3LjItMTYgMTYtMTZ6TTQ2NCAyNDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2NDhINDMyVjI3MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptLTgwIDMydjQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMlY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJINTQ0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMlYyNzJjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1aWxkaW5nTmdvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGg5NlY0MzJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHY4MGg5NmMyNi41IDAgNDgtMjEuNSA0OC00OFY0OGMwLTI2LjUtMjEuNS00OC00OC00OEg0OHpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZWMjQwem0xMTItMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDBjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDB6TTE2OCA2NGg0OGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxODR2NjRoMTZWMTQ0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ2MjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRIMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFY4MGMwLTguOCA3LjItMTYgMTYtMTZ6TTMwNCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMTEyYzAtOC44LTcuMi0xNi0xNi0xNnptLTQ4IDE2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDh2MzJjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhWMTEyek02MS4zIDcxLjFsMzQuNyA1MlY4MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djk2YzAgNy4xLTQuNiAxMy4zLTExLjQgMTUuM3MtMTQtLjYtMTcuOS02LjRMNjQgMTMyLjhWMTc2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjgwYzAtNy4xIDQuNi0xMy4zIDExLjQtMTUuM3MxNCAuNiAxNy45IDYuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVpbGRpbmdTaGllbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBIMzM2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4VjIwN2wtNDIuNCAxN0gzMDQgMjcyYy04LjggMC0xNiA3LjItMTYgMTZ2MzIgMjQuMlYzMDRjMCAuOSAuMSAxLjcgLjIgMi42YzIuMyA1OC4xIDI0LjEgMTQ0LjggOTguNyAyMDEuNWMtNS44IDIuNS0xMi4yIDMuOS0xOC45IDMuOUgyNDBWNDMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4djgwSDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY0OHpNODAgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyNDBjMC04LjgtNy4yLTE2LTE2LTE2SDgwem04MCAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjI0MGMwLTguOC03LjItMTYtMTYtMTZIMTc2Yy04LjggMC0xNiA3LjItMTYgMTZ6TTY0IDExMnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjExMmMwLTguOC03LjItMTYtMTYtMTZIODBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTc2IDk2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYxMTJjMC04LjgtNy4yLTE2LTE2LTE2SDE3NnptODAgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYxMTJjMC04LjgtNy4yLTE2LTE2LTE2SDI3MmMtOC44IDAtMTYgNy4yLTE2IDE2ek00MjMuMSAyMjUuN2M1LjctMi4zIDEyLjEtMi4zIDE3LjggMGwxMjAgNDhDNTcwIDI3Ny40IDU3NiAyODYuMiA1NzYgMjk2YzAgNjMuMy0yNS45IDE2OC44LTEzNC44IDIxNC4yYy01LjkgMi41LTEyLjYgMi41LTE4LjUgMEMzMTMuOSA0NjQuOCAyODggMzU5LjMgMjg4IDI5NmMwLTkuOCA2LTE4LjYgMTUuMS0yMi4zbDEyMC00OHpNNTI3LjQgMzEyTDQzMiAyNzMuOFY0NjEuN2M2OC4yLTMzIDkxLjUtOTkgOTUuNC0xNDkuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVpbGRpbmdVbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCAwQzIxLjUgMCAwIDIxLjUgMCA0OFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoOTZWNDMyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDh2ODBoOTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhINDh6TTY0IDI0MGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MHptMTEyLTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMTc2Yy04LjggMC0xNi03LjItMTYtMTZWMjQwYzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTZjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMjcyYy04LjggMC0xNi03LjItMTYtMTZWMjQwek0yMzcuMyA3MS4xbDM0LjcgNTJWODBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnY5NmMwIDcuMS00LjYgMTMuMy0xMS40IDE1LjNzLTE0LS42LTE3LjktNi40bC0zNC43LTUyVjE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlY4MGMwLTcuMSA0LjYtMTMuMyAxMS40LTE1LjNzMTQgLjYgMTcuOSA2LjR6TTExMiA4MHY2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjgwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ2NjRjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhWODBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVpbGRpbmdVc2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGg5NlY0MzJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHY4MGg4OS45Yy02LjMtMTAuMi05LjktMjIuMi05LjktMzUuMWMwLTQ2LjkgMjUuOC04Ny44IDY0LTEwOS4yVjI3MS44IDQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4ek02NCAyNDBjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDB6bTExMi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MGMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MHpNODAgOTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjExMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2VjExMnpNMjcyIDk2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMjcyYy04LjggMC0xNi03LjItMTYtMTZWMTEyYzAtOC44IDcuMi0xNiAxNi0xNnpNNTc2IDI3MmE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6TTM1MiA0NzcuMWMwIDE5LjMgMTUuNiAzNC45IDM0LjkgMzQuOUg2MDUuMWMxOS4zIDAgMzQuOS0xNS42IDM0LjktMzQuOWMwLTUxLjQtNDEuNy05My4xLTkzLjEtOTMuMUg0NDUuMWMtNTEuNCAwLTkzLjEgNDEuNy05My4xIDkzLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1aWxkaW5nV2hlYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBIMzM2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4VjQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEgyNDBWNDMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4djgwSDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY0OHpNODAgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyNDBjMC04LjgtNy4yLTE2LTE2LTE2SDgwem04MCAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjI0MGMwLTguOC03LjItMTYtMTYtMTZIMTc2Yy04LjggMC0xNiA3LjItMTYgMTZ6bTExMi0xNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMjQwYzAtOC44LTcuMi0xNi0xNi0xNkgyNzJ6TTY0IDExMnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjExMmMwLTguOC03LjItMTYtMTYtMTZIODBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTc2IDk2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYxMTJjMC04LjgtNy4yLTE2LTE2LTE2SDE3NnptODAgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYxMTJjMC04LjgtNy4yLTE2LTE2LTE2SDI3MmMtOC44IDAtMTYgNy4yLTE2IDE2em0zODQgODB2MTZjMCA0NC4yLTM1LjggODAtODAgODBINTQ0VjI3MmMwLTQ0LjIgMzUuOC04MCA4MC04MGgxNnptMCAxMjhjMCA0NC4yLTM1LjggODAtODAgODBINTQ0VjM4NGMwLTQ0LjIgMzUuOC04MCA4MC04MGgxNnYxNnptMCAxMTJjMCA0NC4yLTM1LjggODAtODAgODBINTQ0VjQ5NmMwLTQ0LjIgMzUuOC04MCA4MC04MGgxNnYxNnpNNTEyIDQ5NnYxNkg0OTZjLTQ0LjIgMC04MC0zNS44LTgwLTgwVjQxNmgxNmM0NC4yIDAgODAgMzUuOCA4MCA4MHptMC05Nkg0OTZjLTQ0LjIgMC04MC0zNS44LTgwLTgwVjMwNGgxNmM0NC4yIDAgODAgMzUuOCA4MCA4MHYxNnptMC0xMjh2MTZINDk2Yy00NC4yIDAtODAtMzUuOC04MC04MFYxOTJoMTZjNDQuMiAwIDgwIDM1LjggODAgODB6TTUyOCAzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNFYxNjBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWNTZjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTk2IDY0djMyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0Vjk2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6TTQ1NiA3MmMxMy4zIDAgMjQgMTAuNyAyNCAyNHYzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFY5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVpbGRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggMEMyMS41IDAgMCAyMS41IDAgNDhWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDk2VjQzMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4djgwaDk2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4ek02NCAyNDBjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDB6bTExMi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MGMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MHpNODAgOTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjExMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2VjExMnpNMjcyIDk2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMjcyYy04LjggMC0xNi03LjItMTYtMTZWMTEyYzAtOC44IDcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVsbGhvcm4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDMyYzAtMTIuOS03LjgtMjQuNi0xOS44LTI5LjZzLTI1LjctMi4yLTM0LjkgNi45TDM4MS43IDUzYy00OCA0OC0xMTMuMSA3NS0xODEgNzVIMTkyIDE2MCA2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2OTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzUybDguNyAwYzY3LjkgMCAxMzMgMjcgMTgxIDc1bDQzLjYgNDMuNmM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOXMxOS44LTE2LjYgMTkuOC0yOS42VjMwMC40YzE4LjYtOC44IDMyLTMyLjUgMzItNjAuNHMtMTMuNC01MS42LTMyLTYwLjRWMzJ6bS02NCA3Ni43VjI0MCAzNzEuM0MzNTcuMiAzMTcuOCAyODAuNSAyODggMjAwLjcgMjg4SDE5MlYxOTJoOC43Yzc5LjggMCAxNTYuNS0yOS44IDIxNS4zLTgzLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1bGxzZXllIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAyNTZBMTkyIDE5MiAwIDEgMCA2NCAyNTZhMTkyIDE5MiAwIDEgMCAzODQgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0yNTYgODBhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAtMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHpNMjI0IDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdXJnZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjEuMSAyMjRDNDUgMjI0IDMyIDIxMSAzMiAxOTQuOWMwLTEuOSAuMi0zLjcgLjYtNS42QzM3LjkgMTY4LjMgNzguOCAzMiAyNTYgMzJzMjE4LjEgMTM2LjMgMjIzLjQgMTU3LjNjLjUgMS45IC42IDMuNyAuNiA1LjZjMCAxNi4xLTEzIDI5LjEtMjkuMSAyOS4xSDYxLjF6TTE0NCAxMjhhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptMjQwIDE2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnpNMjcyIDk2YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6TTE2IDMwNGMwLTI2LjUgMjEuNS00OCA0OC00OEg0NDhjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhINjRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4em0xNiA5NmMwLTguOCA3LjItMTYgMTYtMTZINDY0YzguOCAwIDE2IDcuMiAxNiAxNnYxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg5NmMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNDAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdXJzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNy42IDQuMkMyOC0yLjMgMTUuMi0xLjEgNyA3cy05LjQgMjEtMi44IDMwLjVsMTEyIDE2My4zTDE2LjYgMjMzLjJDNi43IDIzNi40IDAgMjQ1LjYgMCAyNTZzNi43IDE5LjYgMTYuNiAyMi44bDEwMy4xIDMzLjRMNjYuOCA0MTIuOGMtNC45IDkuMy0zLjIgMjAuNyA0LjMgMjguMXMxOC44IDkuMiAyOC4xIDQuM2wxMDAuNi01Mi45IDMzLjQgMTAzLjFjMy4yIDkuOSAxMi40IDE2LjYgMjIuOCAxNi42czE5LjYtNi43IDIyLjgtMTYuNmwzMy40LTEwMy4xIDEwMC42IDUyLjljOS4zIDQuOSAyMC43IDMuMiAyOC4xLTQuM3M5LjItMTguOCA0LjMtMjguMUwzOTIuMyAzMTIuMmwxMDMuMS0zMy40YzkuOS0zLjIgMTYuNi0xMi40IDE2LjYtMjIuOHMtNi43LTE5LjYtMTYuNi0yMi44TDM4OC45IDE5OC43bDI1LjctNzAuNGMzLjItOC44IDEtMTguNi01LjYtMjUuMnMtMTYuNC04LjgtMjUuMi01LjZsLTcwLjQgMjUuN0wyNzguOCAxNi42QzI3NS42IDYuNyAyNjYuNCAwIDI1NiAwcy0xOS42IDYuNy0yMi44IDE2LjZsLTMyLjMgOTkuNkwzNy42IDQuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVzU2ltcGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAwQzM0OC44IDAgNDQ4IDM1LjIgNDQ4IDgwVjk2IDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnYzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkgzNTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQ0OEgxMjh2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJINjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjk2IDgwQzAgMzUuMiA5OS4yIDAgMjI0IDB6TTY0IDEyOFYyNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTgwIDQwMGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTI4OCAwYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAwQzQyMi40IDAgNTEyIDM1LjIgNTEyIDgwVjk2bDAgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJ2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJINDE2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlY0NDhIMTkydjMyYzAgMTcuNy0xNC4zIDMyLTMyIDMySDEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmgwVjk2aDBWODBDNjQgMzUuMiAxNTMuNiAwIDI4OCAwek0xMjggMTYwdjk2YzAgMTcuNyAxNC4zIDMyIDMyIDMySDI3MlYxMjhIMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMzA0IDI4OEg0MTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMySDMwNFYyODh6TTE0NCA0MDBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0yODggMGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTM4NCA4MGMwLTguOC03LjItMTYtMTYtMTZIMjA4Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2SDM2OGM4LjggMCAxNi03LjIgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1c2luZXNzVGltZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODQgNDhIMzI4YzQuNCAwIDggMy42IDggOFY5NkgxNzZWNTZjMC00LjQgMy42LTggOC04em0tNTYgOFY5Nkg2NEMyOC43IDk2IDAgMTI0LjcgMCAxNjB2OTZIMTkyIDM1Mmg4LjJjMzIuMy0zOS4xIDgxLjEtNjQgMTM1LjgtNjRjNS40IDAgMTAuNyAuMiAxNiAuN1YxNjBjMC0zNS4zLTI4LjctNjQtNjQtNjRIMzg0VjU2YzAtMzAuOS0yNS4xLTU2LTU2LTU2SDE4NGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6TTMyMCAzNTJIMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYyODhIMFY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzYwLjJDMzM1LjEgNDQ5LjYgMzIwIDQxMC41IDMyMCAzNjhjMC01LjQgLjItMTAuNyAuNy0xNmwtLjcgMHptMzIwIDE2YTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6TTQ5NiAyODhjOC44IDAgMTYgNy4yIDE2IDE2djQ4aDMyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDQ5NmMtOC44IDAtMTYtNy4yLTE2LTE2VjMwNGMwLTguOCA3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzI5LjEgMTQyLjljLTYyLjUtNjIuNS0xNTUuOC02Mi41LTIxOC4zIDBzLTYyLjUgMTYzLjggMCAyMjYuM3MxNTUuOCA2Mi41IDIxOC4zIDBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2MtODcuNSA4Ny41LTIyMS4zIDg3LjUtMzA4LjggMHMtODcuNS0yMjkuMyAwLTMxNi44czIyMS4zLTg3LjUgMzA4LjggMGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FibGVDYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNjAgNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMzIgMjg4YzAtMzUuMyAyOC43LTY0IDY0LTY0SDIzMlYxNTcuNWwtMjAzLjEgNDJjLTEzIDIuNy0yNS43LTUuNy0yOC40LTE4LjZzNS43LTI1LjcgMTguNi0yOC40bDIzMi00OCAyMzItNDhjMTMtMi43IDI1LjcgNS43IDI4LjQgMTguNnMtNS43IDI1LjctMTguNiAyOC40TDI4MCAxNDcuNVYyMjRINDE2YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg5NmMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMjg4em02NCAwYy04LjggMC0xNiA3LjItMTYgMTZ2NjRjMCA4LjggNy4yIDE2IDE2IDE2aDY0YzguOCAwIDE2LTcuMiAxNi0xNlYzMDRjMC04LjgtNy4yLTE2LTE2LTE2SDk2em0xMTIgMTZ2NjRjMCA4LjggNy4yIDE2IDE2IDE2aDY0YzguOCAwIDE2LTcuMiAxNi0xNlYzMDRjMC04LjgtNy4yLTE2LTE2LTE2SDIyNGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNnY2NGMwIDguOCA3LjIgMTYgMTYgMTZoNjRjOC44IDAgMTYtNy4yIDE2LTE2VjMwNGMwLTguOC03LjItMTYtMTYtMTZIMzUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYWtlQ2FuZGxlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04Ni40IDUuNUw2MS44IDQ3LjZDNTggNTQuMSA1NiA2MS42IDU2IDY5LjJWNzJjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MFY2OS4yYzAtNy42LTItMTUtNS44LTIxLjZMMTA1LjYgNS41QzEwMy42IDIuMSAxMDAgMCA5NiAwcy03LjYgMi4xLTkuNiA1LjV6bTEyOCAwTDE4OS44IDQ3LjZjLTMuOCA2LjUtNS44IDE0LTUuOCAyMS42VjcyYzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBWNjkuMmMwLTcuNi0yLTE1LTUuOC0yMS42TDIzMy42IDUuNUMyMzEuNiAyLjEgMjI4IDAgMjI0IDBzLTcuNiAyLjEtOS42IDUuNXpNMzE3LjggNDcuNmMtMy44IDYuNS01LjggMTQtNS44IDIxLjZWNzJjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MFY2OS4yYzAtNy42LTItMTUtNS44LTIxLjZMMzYxLjYgNS41QzM1OS42IDIuMSAzNTYgMCAzNTIgMHMtNy42IDIuMS05LjYgNS41TDMxNy44IDQ3LjZ6TTEyOCAxNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2NDhjLTM1LjMgMC02NCAyOC43LTY0IDY0djcxYzguMyA1LjIgMTguMSA5IDI4LjggOWMxMy41IDAgMjcuMi02LjEgMzguNC0xMy40YzUuNC0zLjUgOS45LTcuMSAxMy05LjdjMS41LTEuMyAyLjctMi40IDMuNS0zLjFjLjQtLjQgLjctLjYgLjgtLjhsLjEtLjEgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBjMy4xLTMuMiA3LjQtNC45IDExLjktNC44czguNiAyLjEgMTEuNiA1LjRsMCAwIDAgMCAuMSAuMWMuMSAuMSAuNCAuNCAuNyAuN2MuNyAuNyAxLjcgMS43IDMuMSAzYzIuOCAyLjYgNi44IDYuMSAxMS44IDkuNWMxMC4yIDcuMSAyMyAxMy4xIDM2LjMgMTMuMXMyNi4xLTYgMzYuMy0xMy4xYzUtMy41IDktNi45IDExLjgtOS41YzEuNC0xLjMgMi40LTIuMyAzLjEtM2MuMy0uMyAuNi0uNiAuNy0uN2wuMS0uMWMzLTMuNSA3LjQtNS40IDEyLTUuNHM5IDIgMTIgNS40bC4xIC4xYy4xIC4xIC40IC40IC43IC43Yy43IC43IDEuNyAxLjcgMy4xIDNjMi44IDIuNiA2LjggNi4xIDExLjggOS41YzEwLjIgNy4xIDIzIDEzLjEgMzYuMyAxMy4xczI2LjEtNiAzNi4zLTEzLjFjNS0zLjUgOS02LjkgMTEuOC05LjVjMS40LTEuMyAyLjQtMi4zIDMuMS0zYy4zLS4zIC42LS42IC43LS43bC4xLS4xYzIuOS0zLjQgNy4xLTUuMyAxMS42LTUuNHM4LjcgMS42IDExLjkgNC44bDAgMCAwIDAgMCAwIC4xIC4xYy4yIC4yIC40IC40IC44IC44Yy44IC43IDEuOSAxLjggMy41IDMuMWMzLjEgMi42IDcuNSA2LjIgMTMgOS43YzExLjIgNy4zIDI0LjkgMTMuNCAzOC40IDEzLjRjMTAuNyAwIDIwLjUtMy45IDI4LjgtOVYyODhjMC0zNS4zLTI4LjctNjQtNjQtNjRWMTc2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjQ4SDI1NlYxNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2NDhIMTI4VjE3NnpNNDQ4IDM5NC42Yy04LjUgMy4zLTE4LjIgNS40LTI4LjggNS40Yy0yMi41IDAtNDIuNC05LjktNTUuOC0xOC42Yy00LjEtMi43LTcuOC01LjQtMTAuOS03LjhjLTIuOCAyLjQtNi4xIDUtOS44IDcuNUMzMjkuOCAzOTAgMzEwLjYgNDAwIDI4OCA0MDBzLTQxLjgtMTAtNTQuNi0xOC45Yy0zLjUtMi40LTYuNy00LjktOS40LTcuMmMtMi43IDIuMy01LjkgNC43LTkuNCA3LjJDMjAxLjggMzkwIDE4Mi42IDQwMCAxNjAgNDAwcy00MS44LTEwLTU0LjYtMTguOWMtMy43LTIuNi03LTUuMi05LjgtNy41Yy0zLjEgMi40LTYuOCA1LjEtMTAuOSA3LjhDNzEuMiAzOTAuMSA1MS4zIDQwMCAyOC44IDQwMGMtMTAuNiAwLTIwLjMtMi4yLTI4LjgtNS40VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg0MTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzk0LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbGN1bGF0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFY2NGMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNOTYgNjRIMjg4YzE3LjcgMCAzMiAxNC4zIDMyIDMydjMyYzAgMTcuNy0xNC4zIDMyLTMyIDMySDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMzIgMTYwYTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6TTk2IDM1MmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6TTY0IDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg5NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTE5MiAyNTZhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0zMiA2NGEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem02NC02NGEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTMyIDY0YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6TTI4OCA0NDhhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYWxlbmRhckNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjY0SDI4OFYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyVjY0aDQ4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djQ4SDBWMTEyQzAgODUuNSAyMS41IDY0IDQ4IDY0SDk2VjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0wIDE5Mkg0NDhWNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYxOTJ6TTMyOSAzMDVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtOTUgOTUtNDctNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNjQgNjRjOS40IDkuNCAyNC42IDkuNCAzMy45IDBMMzI5IDMwNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FsZW5kYXJEYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNjRIMjg4VjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWNjRoNDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh2NDhIMFYxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRIOTZWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTAgMTkySDQ0OFY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjE5MnptODAgNjRjLTguOCAwLTE2IDcuMi0xNiAxNnY5NmMwIDguOCA3LjIgMTYgMTYgMTZoOTZjOC44IDAgMTYtNy4yIDE2LTE2VjI3MmMwLTguOC03LjItMTYtMTYtMTZIODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbGVuZGFyRGF5cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMlY2NEgyODhWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMlY2NGg0OGMyNi41IDAgNDggMjEuNSA0OCA0OHY0OEgwVjExMkMwIDg1LjUgMjEuNSA2NCA0OCA2NEg5NlYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCAxOTJINDQ4VjQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTkyem02NCA4MHYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjI3MmMwLTguOC03LjItMTYtMTYtMTZIODBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTI4IDB2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyNzJjMC04LjgtNy4yLTE2LTE2LTE2SDIwOGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjI3MmMwLTguOC03LjItMTYtMTYtMTZIMzM2ek02NCA0MDB2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlY0MDBjMC04LjgtNy4yLTE2LTE2LTE2SDgwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE0NC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWNDAwYzAtOC44LTcuMi0xNi0xNi0xNkgyMDh6bTExMiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjQwMGMwLTguOC03LjItMTYtMTYtMTZIMzM2Yy04LjggMC0xNiA3LjItMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbGVuZGFyTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNjRIMjg4VjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWNjRoNDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh2NDhIMFYxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRIOTZWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTAgMTkySDQ0OFY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjE5MnpNMzEyIDM3NmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgxMzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRIMzEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYWxlbmRhclBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMzJWNjRINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2NDhINDQ4VjExMmMwLTI2LjUtMjEuNS00OC00OC00OEgzNTJWMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWNjRIMTYwVjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzk2IDE0LjMgOTYgMzJ6TTQ0OCAxOTJIMFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhINDAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjE5MnpNMjI0IDI0OGMxMy4zIDAgMjQgMTAuNyAyNCAyNHY1Nmg1NmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyNDh2NTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMzc2SDE0NGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGg1NlYyNzJjMC0xMy4zIDEwLjctMjQgMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbGVuZGFyV2VlayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMlY2NEgyODhWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMlY2NGg0OGMyNi41IDAgNDggMjEuNSA0OCA0OHY0OEgwVjExMkMwIDg1LjUgMjEuNSA2NCA0OCA2NEg5NlYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCAxOTJINDQ4VjQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTkyem04MCA2NGMtOC44IDAtMTYgNy4yLTE2IDE2djY0YzAgOC44IDcuMiAxNiAxNiAxNkgzNjhjOC44IDAgMTYtNy4yIDE2LTE2VjI3MmMwLTguOC03LjItMTYtMTYtMTZIODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbGVuZGFyWG1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNjRIMjg4VjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWNjRoNDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh2NDhIMFYxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRIOTZWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTAgMTkySDQ0OFY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjE5MnpNMzA1IDMwNWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC00NyA0Ny00Ny00N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw0NyA0Ny00NyA0N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDQ3LTQ3IDQ3IDQ3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNDctNDcgNDctNDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbGVuZGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDMyVjY0SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjQ4SDQ0OFYxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDhIMzUyVjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjY0SDE2MFYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMlM5NiAxNC4zIDk2IDMyek00NDggMTkySDBWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDQwMGMyNi41IDAgNDgtMjEuNSA0OC00OFYxOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbWVyYVJldHJvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyMC42IDEyMS4yTDI3MS4xIDk2IDQ0OCA5NnY5NkgzMzMuMmMtMjEuOS0xNS4xLTQ4LjUtMjQtNzcuMi0yNHMtNTUuMiA4LjktNzcuMiAyNEg2NFYxMjhIMTkyYzkuOSAwIDE5LjctMi4zIDI4LjYtNi44ek0wIDEyOFY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRINDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDI3MS4xYy05LjkgMC0xOS43IDIuMy0yOC42IDYuOEwxOTIgNjRIMTYwVjQ4YzAtOC44LTcuMi0xNi0xNi0xNkg4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZDMjguNyA2NCAwIDkyLjcgMCAxMjh6TTE2OCAzMDRhODggODggMCAxIDEgMTc2IDAgODggODggMCAxIDEgLTE3NiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYW1lcmFSb3RhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEzLjEgNjQuOEwyMDIuNyA5NkgxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTYwYzAtMzUuMy0yOC43LTY0LTY0LTY0SDQzNy4zTDQyNi45IDY0LjhDNDIwLjQgNDUuMiA0MDIuMSAzMiAzODEuNCAzMkgyNTguNmMtMjAuNyAwLTM5IDEzLjItNDUuNSAzMi44ek00NDggMjU2YzAgOC44LTcuMiAxNi0xNiAxNkgzNTUuM2MtNi4yIDAtMTEuMy01LjEtMTEuMy0xMS4zYzAtMyAxLjItNS45IDMuMy04TDM3MSAyMjljLTEzLjYtMTMuNC0zMS45LTIxLTUxLTIxYy0xOS4yIDAtMzcuNyA3LjYtNTEuMyAyMS4zTDI0OSAyNDljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMTkuNy0xOS43QzI1Ny40IDE3Mi43IDI4OCAxNjAgMzIwIDE2MGMzMS44IDAgNjIuNCAxMi42IDg1IDM1bDIzLjctMjMuN2MyLjEtMi4xIDUtMy4zIDgtMy4zYzYuMiAwIDExLjMgNS4xIDExLjMgMTEuM1YyNTZ6TTE5MiAzMjBjMC04LjggNy4yLTE2IDE2LTE2aDc2LjdjNi4yIDAgMTEuMyA1LjEgMTEuMyAxMS4zYzAgMy0xLjIgNS45LTMuMyA4TDI2OSAzNDdjMTMuNiAxMy40IDMxLjkgMjEgNTEgMjFjMTkuMiAwIDM3LjctNy42IDUxLjMtMjEuM0wzOTEgMzI3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtMTkuNyAxOS43QzM4Mi42IDQwMy4zIDM1MiA0MTYgMzIwIDQxNmMtMzEuOCAwLTYyLjQtMTIuNi04NS0zNWwtMjMuNyAyMy43Yy0yLjEgMi4xLTUgMy4zLTggMy4zYy02LjIgMC0xMS4zLTUuMS0xMS4zLTExLjNWMzIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYW1lcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ5LjEgNjQuOEwxMzguNyA5Nkg2NEMyOC43IDk2IDAgMTI0LjcgMCAxNjBWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNjBjMC0zNS4zLTI4LjctNjQtNjQtNjRIMzczLjNMMzYyLjkgNjQuOEMzNTYuNCA0NS4yIDMzOC4xIDMyIDMxNy40IDMySDE5NC42Yy0yMC43IDAtMzkgMTMuMi00NS41IDMyLjh6TTI1NiAxOTJhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbXBncm91bmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzc3IDUyYzExLTEzLjggOC44LTMzLjktNS00NXMtMzMuOS04LjgtNDUgNUwyODggNjAuOCAyNDkgMTJjLTExLTEzLjgtMzEuMi0xNi00NS01cy0xNiAzMS4yLTUgNDVsNDggNjBMMTIuMyA0MDUuNEM0LjMgNDE1LjQgMCA0MjcuNyAwIDQ0MC40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OEgyODggNTI4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjQ0MC40YzAtMTIuNy00LjMtMjUuMS0xMi4zLTM1TDMyOSAxMTJsNDgtNjB6TTI4OCA0NDhIMTY4LjVMMjg4IDI5MS43IDQwNy41IDQ0OEgyODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbmR5Q2FuZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDguOCAxMzEuNWMzLjctMi4zIDcuOS0zLjUgMTIuMi0zLjVjMTIuNyAwIDIzIDEwLjMgMjMgMjN2NS42YzAgOS45LTUuMSAxOS4xLTEzLjUgMjQuM0wzMC4xIDM5My43Qy4xIDQxMi41LTkgNDUxLjkgOS43IDQ4MS45czU4LjIgMzkuMSA4OC4yIDIwLjRMNDM4LjQgMjg5LjVjNDUuOC0yOC42IDczLjYtNzguOCA3My42LTEzMi44VjE1MUM1MTIgNjcuNiA0NDQuNCAwIDM2MSAwYy0yOC4zIDAtNTYgOC04MC4xIDIzTDI1NC4xIDM5LjdjLTMwIDE4LjctMzkuMSA1OC4yLTIwLjQgODguMnM1OC4yIDM5LjEgODguMiAyMC40bDI2LjgtMTYuOHpNMjk4LjQgNDkuOGM5LjItNS43IDE5LjEtMTAuMSAyOS40LTEzLjFMMzQ4IDk3LjVjLTUuNyAxLjQtMTEuMiAzLjctMTYuMyA2LjhsLTEyLjYgNy45TDI5OC40IDQ5Ljh6bTg4LjUgNTIuN2w0Ni4yLTQ2LjJjOC41IDYuNSAxNi4xIDE0LjEgMjIuNiAyMi42bC00Ni4yIDQ2LjJjLTUuMS05LjYtMTMtMTcuNS0yMi42LTIyLjZ6bTI4LjkgNTkuM2w2MS42IDIwLjVjLTIuMiAxMC41LTUuOCAyMC43LTEwLjUgMzAuMmwtNjItMjAuN2M2LjItOC44IDEwLjEtMTkuMSAxMS0zMC4xem0tODYuMSA4Mi41bDYwLjQgMzcuNy0zMC4yIDE4LjktNjAuNC0zNy43IDMwLjItMTguOXptLTEwNy4yIDY3bDYwLjQgMzcuNy0zMC4yIDE4LjktNjAuNC0zNy43IDMwLjItMTguOXpNMTE5LjMgMzc1LjdsNjAuNCAzNy43LTMwLjIgMTguOUw4OS4xIDM5NC42bDMwLjItMTguOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FubmFiaXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDBjNS4zIDAgMTAuMyAyLjcgMTMuMyA3LjFjMTUuOCAyMy41IDM2LjcgNjMuNyA0OS4yIDEwOWM3LjIgMjYuNCAxMS44IDU1LjIgMTAuNCA4NGMxMS41LTguOCAyMy43LTE2LjcgMzUuOC0yMy42YzQxLTIzLjMgODQuNC0zNi45IDExMi4yLTQyLjVjNS4yLTEgMTAuNyAuNiAxNC40IDQuNHM1LjQgOS4yIDQuNCAxNC41Yy01LjYgMjcuNy0xOS4zIDcwLjktNDIuNyAxMTEuN2MtOS4xIDE1LjktMTkuOSAzMS43LTMyLjQgNDYuM2MyNy44IDYuNiA1Mi40IDE3LjMgNjcuMiAyNS41YzUuMSAyLjggOC4yIDguMiA4LjIgMTRzLTMuMiAxMS4yLTguMiAxNGMtMTUuMiA4LjQtNDAuOSAxOS41LTY5LjggMjYuMWMtMjAuMiA0LjYtNDIuOSA3LjItNjUuMiA0LjZsOC4zIDMzLjFjMS41IDYuMS0uNiAxMi40LTUuNSAxNi40cy0xMS42IDQuNi0xNy4yIDEuOUwyODAgNDE3LjJWNDg4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjQxNy4ybC01OC41IDI5LjFjLTUuNiAyLjgtMTIuMyAyLjEtMTcuMi0xLjlzLTctMTAuMy01LjUtMTYuNGw4LjMtMzMuMWMtMjIuMiAyLjYtNDUgMC02NS4yLTQuNmMtMjguOS02LjYtNTQuNi0xNy42LTY5LjgtMjYuMWMtNS4xLTIuOC04LjItOC4yLTguMi0xNHMzLjItMTEuMiA4LjItMTRjMTQuOC04LjIgMzkuNC0xOC44IDY3LjItMjUuNUM3OC45IDI5Ni4zIDY4LjEgMjgwLjUgNTkgMjY0LjZjLTIzLjQtNDAuOC0zNy4xLTg0LTQyLjctMTExLjdjLTEuMS01LjIgLjYtMTAuNyA0LjQtMTQuNXM5LjItNS40IDE0LjQtNC40YzI3LjkgNS41IDcxLjIgMTkuMiAxMTIuMiA0Mi41YzEyLjEgNi45IDI0LjMgMTQuNyAzNS44IDIzLjZjLTEuNC0yOC43IDMuMS01Ny42IDEwLjQtODRjMTIuNS00NS4zIDMzLjQtODUuNSA0OS4yLTEwOWMzLTQuNCA4LTcuMSAxMy4zLTcuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2Fwc3VsZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMTQ0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhWMjU2SDY0VjE0NHpNMCAxNDRWMzY4YzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyczExMi01MC4xIDExMi0xMTJWMTg5LjZjMS44IDE5LjEgOC4yIDM4IDE5LjggNTQuOEwzNzIuMyA0MzEuN2MzNS41IDUxLjcgMTA1LjMgNjQuMyAxNTYgMjguMXM2My0xMDcuNSAyNy41LTE1OS4yTDQyNy4zIDExMy4zQzM5MS44IDYxLjUgMzIxLjkgNDkgMjcxLjMgODUuMmMtMjggMjAtNDQuMyA1MC44LTQ3LjMgODNWMTQ0YzAtNjEuOS01MC4xLTExMi0xMTItMTEyUzAgODIuMSAwIDE0NHptMjk2LjYgNjQuMmMtMTYtMjMuMy0xMC01NS4zIDExLjktNzFjMjEuMi0xNS4xIDUwLjUtMTAuMyA2NiAxMi4ybDY3IDk3LjZMMzYxLjYgMzAzbC02NS05NC44ek00OTEgNDA3LjdjLS44IC42LTEuNiAxLjEtMi40IDEuNmw0LTIuOGMtLjUgLjQtMSAuOC0xLjYgMS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJCYXR0ZXJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTgwIDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMybDk2IDBjMC0xNy43IDE0LjMtMzIgMzItMzJoNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJoMTZjMzUuMyAwIDY0IDI4LjcgNjQgNjRWMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTYgMHptMzA0IDk2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2djMySDMyMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmgzMnYzMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjI1NmgzMmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgzODRWMTkyek04MCAyNDBjMCA4LjggNy4yIDE2IDE2IDE2aDk2YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDk2Yy04LjggMC0xNiA3LjItMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhckJ1cnN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiA4Yy02LjYgMC0xMi40IDQtMTQuOSAxMC4xbC0yOS40IDc0TDU1LjYgNjguOWMtNi4zLTEuOS0xMy4xIC4yLTE3LjIgNS4zcy00LjYgMTIuMi0xLjQgMTcuOWwzOS41IDY5LjFMMTAuOSAyMDYuNGMtNS40IDMuNy04IDEwLjMtNi41IDE2LjdzNi43IDExLjIgMTMuMSAxMi4ybDc4LjcgMTIuMkw5MC42IDMyN2MtLjUgNi41IDMuMSAxMi43IDkgMTUuNXMxMi45IDEuOCAxNy44LTIuNmwzNS4zLTMyLjUgOS41LTM1LjQgMTAuNC0zOC42YzgtMjkuOSAzMC41LTUyLjEgNTcuOS02MC45bDQxLTU5LjJjMTEuMy0xNi4zIDI2LjQtMjguOSA0My41LTM3LjJjLS40LS42LS44LTEuMi0xLjMtMS44Yy00LjEtNS4xLTEwLjktNy4yLTE3LjItNS4zTDIyMC4zIDkyLjFsLTI5LjQtNzRDMTg4LjQgMTIgMTgyLjYgOCAxNzYgOHpNMzY3LjcgMTYxLjVsMTM1LjYgMzYuM2M2LjUgMS44IDExLjMgNy40IDExLjggMTQuMmw0LjYgNTYuNS0yMDEuNS01NCAzMi4yLTQ2LjZjMy44LTUuNiAxMC44LTguMSAxNy4zLTYuNHptLTY5LjktMzBsLTQ3LjkgNjkuM2MtMjEuNiAzLTQwLjMgMTguNi00Ni4zIDQxbC0xMC40IDM4LjYtMTYuNiA2MS44LTguMyAzMC45Yy00LjYgMTcuMSA1LjYgMzQuNiAyMi42IDM5LjJsMTUuNSA0LjFjMTcuMSA0LjYgMzQuNi01LjYgMzkuMi0yMi42bDguMy0zMC45IDI0Ny4zIDY2LjMtOC4zIDMwLjljLTQuNiAxNy4xIDUuNiAzNC42IDIyLjYgMzkuMmwxNS41IDQuMWMxNy4xIDQuNiAzNC42LTUuNiAzOS4yLTIyLjZsOC4zLTMwLjlMNTk1IDM4OGwxMC40LTM4LjZjNi0yMi40LTIuNS00NS4yLTE5LjYtNTguN2wtNi44LTg0Yy0yLjctMzMuNy0yNi40LTYyLTU5LTcwLjhMMzg0LjIgOTkuN2MtMzIuNy04LjgtNjcuMyA0LTg2LjUgMzEuOHptLTE3IDEzMWEyNCAyNCAwIDEgMSAtMTIuNCA0Ni40IDI0IDI0IDAgMSAxIDEyLjQtNDYuNHptMjE3LjkgODMuMkEyNCAyNCAwIDEgMSA1NDUgMzU4LjFhMjQgMjQgMCAxIDEgLTQ2LjQtMTIuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjgwIDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0djgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMjR6TTE4NS44IDIyNEgzMjYuMmM2LjggMCAxMi44IDQuMyAxNS4xIDEwLjZMMzYwLjMgMjg4SDE1MS43bDE5LjEtNTMuNGMyLjMtNi40IDguMy0xMC42IDE1LjEtMTAuNnptLTc1LjMtMTAuOUw4Mi4yIDI5Mi40QzYyLjEgMzAwLjkgNDggMzIwLjggNDggMzQ0djQwIDY0IDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMySDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQ0OEgzODR2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDQ4IDM4NCAzNDRjMC0yMy4yLTE0LjEtNDMuMS0zNC4yLTUxLjZsLTI4LjMtNzkuM0MzOTAuMSAxODEuMyAzNjAgMTYwIDMyNi4yIDE2MEgxODUuOGMtMzMuOCAwLTY0IDIxLjMtNzUuMyA1My4xek0xMjggMzQ0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMjMyIDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTM5IDM5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw0OCA0OGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNzMgMzljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwem00MDAgMEwzOTEgODdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw0OC00OGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJSZWFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2NS40IDk2SDM0Ni42YzEzLjYgMCAyNS43IDguNiAzMC4yIDIxLjRMNDAyLjkgMTkySDEwOS4xbDI2LjEtNzQuNmM0LjUtMTIuOCAxNi42LTIxLjQgMzAuMi0yMS40em0tOTAuNiAuM0wzOS42IDE5Ni44QzE2LjQgMjA2LjQgMCAyMjkuMyAwIDI1NnY4MGMwIDIzLjcgMTIuOSA0NC40IDMyIDU1LjRWNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMySDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQwMEgzODR2NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzkxLjRjMTkuMS0xMS4xIDMyLTMxLjcgMzItNTUuNFYyNTZjMC0yNi43LTE2LjQtNDkuNi0zOS42LTU5LjJMNDM3LjIgOTYuM0M0MjMuNyA1Ny44IDM4Ny40IDMyIDM0Ni42IDMySDE2NS40Yy00MC44IDAtNzcuMSAyNS44LTkwLjYgNjQuM3pNMjA4IDI3Mmg5NmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDIwOGMtOC44IDAtMTYtNy4yLTE2LTE2VjI4OGMwLTguOCA3LjItMTYgMTYtMTZ6TTQ4IDI4MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGgzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEg3MmMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTM2MC0yNGgzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEg0MDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhclNpZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcxLjMgOTZIMjI0djk2SDExMS4zbDMwLjQtNzUuOUMxNDYuNSAxMDQgMTU4LjIgOTYgMTcxLjMgOTZ6TTI3MiAxOTJWOTZoODEuMmM5LjcgMCAxOC45IDQuNCAyNSAxMmw2Ny4yIDg0SDI3MnptMjU2LjIgMUw0MjguMiA2OGMtMTguMi0yMi44LTQ1LjgtMzYtNzUtMzZIMTcxLjNjLTM5LjMgMC03NC42IDIzLjktODkuMSA2MC4zTDQwLjYgMTk2LjRDMTYuOCAyMDUuOCAwIDIyOC45IDAgMjU2VjM2OGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg2NS4zYzcuNiA0NS40IDQ3LjEgODAgOTQuNyA4MHM4Ny4xLTM0LjYgOTQuNy04MEgzODUuM2M3LjYgNDUuNCA0Ny4xIDgwIDk0LjcgODBzODcuMS0zNC42IDk0LjctODBINjA4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMyMGMwLTY1LjItNDguOC0xMTktMTExLjgtMTI3ek00MzQuNyAzNjhhNDggNDggMCAxIDEgOTAuNSAzMiA0OCA0OCAwIDEgMSAtOTAuNS0zMnpNMTYwIDMzNmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhclR1bm5lbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMEMxMTQuNiAwIDAgMTE0LjYgMCAyNTZWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDQyLjhjLTYuNi01LjktMTAuOC0xNC40LTEwLjgtMjRWMzc2YzAtMjAuOCAxMS4zLTM4LjkgMjguMS00OC42bDIxLTY0LjdjNy41LTIzLjEgMjktMzguNyA1My4zLTM4LjdIMzEzLjZjMjQuMyAwIDQ1LjggMTUuNiA1My4zIDM4LjdsMjEgNjQuN2MxNi44IDkuNyAyOC4yIDI3LjggMjguMiA0OC42VjQ4OGMwIDkuNi00LjIgMTguMS0xMC44IDI0SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFYyNTZDNTEyIDExNC42IDM5Ny40IDAgMjU2IDB6TTM2Mi44IDUxMmMtNi42LTUuOS0xMC44LTE0LjQtMTAuOC0yNFY0NDhIMTYwdjQwYzAgOS42LTQuMiAxOC4xLTEwLjggMjRIMzYyLjh6TTE5MC44IDI3Ny41TDE3NyAzMjBIMzM1bC0xMy44LTQyLjVjLTEuMS0zLjMtNC4xLTUuNS03LjYtNS41SDE5OC40Yy0zLjUgMC02LjUgMi4yLTcuNiA1LjV6TTE2OCA0MDhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yMDAtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzNS4yIDExNy40TDEwOS4xIDE5Mkg0MDIuOWwtMjYuMS03NC42QzM3Mi4zIDEwNC42IDM2MC4yIDk2IDM0Ni42IDk2SDE2NS40Yy0xMy42IDAtMjUuNyA4LjYtMzAuMiAyMS40ek0zOS42IDE5Ni44TDc0LjggOTYuM0M4OC4zIDU3LjggMTI0LjYgMzIgMTY1LjQgMzJIMzQ2LjZjNDAuOCAwIDc3LjEgMjUuOCA5MC42IDY0LjNsMzUuMiAxMDAuNWMyMy4yIDkuNiAzOS42IDMyLjUgMzkuNiA1OS4yVjQwMHY0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkg0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQwMEg5NnY0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDAwIDI1NmMwLTI2LjcgMTYuNC00OS42IDM5LjYtNTkuMnpNMTI4IDI4OGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yODggMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJhdmFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTEyQzAgNjcuOCAzNS44IDMyIDgwIDMySDQxNmM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MFYzNTJoMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDBIMjg4YzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2SDgwYy00NC4yIDAtODAtMzUuOC04MC04MFYxMTJ6TTMyMCAzNTJINDQ4VjI1Nkg0MTZjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoMzJWMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMySDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWMzUyek05NiAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMySDIyNGMxNy43IDAgMzItMTQuMyAzMi0zMlYxNjBjMC0xNy43LTE0LjMtMzItMzItMzJIOTZ6bTk2IDMzNmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcmV0RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMzcuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45cy0xNi42LTE5LjgtMjkuNi0xOS44TDMyIDE5MmMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlsMTI4IDEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyZXRMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNCAyNzguNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsMTI4LTEyOGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOXMxOS44IDE2LjYgMTkuOCAyOS42bDAgMjU2YzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC0xMjgtMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJldFJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ni42IDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOXMtMTkuOCAxNi42LTE5LjggMjkuNmwwIDI1NmMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42czI1LjcgMi4yIDM0LjktNi45bDEyOC0xMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcmV0VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTgyLjYgMTM3LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOXMxNi42IDE5LjggMjkuNiAxOS44SDI4OGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC0xMjgtMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJyb3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ2LjcgNkMzMzcuNiAxNyAzMjAgNDIuMyAzMjAgNzJjMCA0MCAxNS4zIDU1LjMgNDAgODBzNDAgNDAgODAgNDBjMjkuNyAwIDU1LTE3LjYgNjYtMjYuN2M0LTMuMyA2LTguMiA2LTEzLjNzLTItMTAtNi0xMy4yYy0xMS40LTkuMS0zOC4zLTI2LjgtNzQtMjYuOGMtMzIgMC00MCA4LTQwIDhzOC04IDgtNDBjMC0zNS43LTE3LjctNjIuNi0yNi44LTc0QzM3MCAyIDM2NS4xIDAgMzYwIDBzLTEwIDItMTMuMyA2ek0yNDQuNiAxMzZjLTQwIDAtNzcuMSAxOC4xLTEwMS43IDQ4LjJsNjAuNSA2MC41YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTU1LjMtNTUuMyAwIC4xTDIuMiA0NzcuOUMtMiA0ODctLjEgNDk3LjggNyA1MDVzMTcuOSA5IDI3LjEgNC44bDEzNC43LTYyLjQtNTIuMS01Mi4xYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMMTk5LjcgNDMzbDEwMC4yLTQ2LjRjNDYuNC0yMS41IDc2LjItNjggNzYuMi0xMTkuMkMzNzYgMTk0LjggMzE3LjIgMTM2IDI0NC42IDEzNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FydEFycm93RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNCAwQzEwLjcgMCAwIDEwLjcgMCAyNFMxMC43IDQ4IDI0IDQ4SDY5LjVjMy44IDAgNy4xIDIuNyA3LjkgNi41bDUxLjYgMjcxYzYuNSAzNCAzNi4yIDU4LjUgNzAuNyA1OC41SDQ4OGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgxOTkuN2MtMTEuNSAwLTIxLjQtOC4yLTIzLjYtMTkuNUwxNzAuNyAyODhINDU5LjJjMzIuNiAwIDYxLjEtMjEuOCA2OS41LTUzLjNsNDEtMTUyLjNDNTc2LjYgNTcgNTU3LjQgMzIgNTMxLjEgMzJIMzYwVjEzNC4xbDIzLTIzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNjQgNjRjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC02NC02NGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDIzIDIzVjMySDEyMC4xQzExMSAxMi44IDkxLjYgMCA2OS41IDBIMjR6TTE3NiA1MTJhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0zMzYtNDhhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FydEZsYXRiZWRTdWl0Y2FzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEg0OGM0NC4yIDAgODAgMzUuOCA4MCA4MFYzNjhjMCA4LjggNy4yIDE2IDE2IDE2SDYwOGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg1NDEuM2MxLjggNSAyLjcgMTAuNCAyLjcgMTZjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhjMC01LjYgMS0xMSAyLjctMTZIMjUzLjNjMS44IDUgMi43IDEwLjQgMi43IDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtNS42IDEtMTEgMi43LTE2SDE0NGMtNDQuMiAwLTgwLTM1LjgtODAtODBWODBjMC04LjgtNy4yLTE2LTE2LTE2SDMyQzE0LjMgNjQgMCA0OS43IDAgMzJ6TTQzMiA5NlY1NmMwLTQuNC0zLjYtOC04LThIMzQ0Yy00LjQgMC04IDMuNi04IDhWOTZoOTZ6TTI4OCA5NlY1NmMwLTMwLjkgMjUuMS01NiA1Ni01Nmg4MGMzMC45IDAgNTYgMjUuMSA1NiA1NlY5NiAzMjBIMjg4Vjk2ek01MTIgMzIwVjk2aDE2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4VjI3MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg1MTJ6TTI0MCA5NmgxNlYzMjBIMjQwYy0yNi41IDAtNDgtMjEuNS00OC00OFYxNDRjMC0yNi41IDIxLjUtNDggNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcnRGbGF0YmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRINDhjOC44IDAgMTYgNy4yIDE2IDE2VjM2OGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGgxOC43Yy0xLjggNS0yLjcgMTAuNC0yLjcgMTZjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGMwLTUuNi0xLTExLTIuNy0xNkg0NTAuN2MtMS44IDUtMi43IDEwLjQtMi43IDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhjMC01LjYtMS0xMS0yLjctMTZINjA4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDE0NGMtOC44IDAtMTYtNy4yLTE2LTE2VjgwQzEyOCAzNS44IDkyLjIgMCA0OCAwSDMyek0xOTIgODBWMjcyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDU2MGMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OEg0NjRWMTc2YzAgNS45LTMuMiAxMS4zLTguNSAxNC4xcy0xMS41IDIuNS0xNi40LS44TDQwMCAxNjMuMmwtMzkuMSAyNi4xYy00LjkgMy4zLTExLjIgMy42LTE2LjQgLjhzLTguNS04LjItOC41LTE0LjFWMzJIMjQwYy0yNi41IDAtNDggMjEuNS00OCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FydFBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyNEMwIDEwLjcgMTAuNyAwIDI0IDBINjkuNWMyMiAwIDQxLjUgMTIuOCA1MC42IDMyaDQxMWMyNi4zIDAgNDUuNSAyNSAzOC42IDUwLjRsLTQxIDE1Mi4zYy04LjUgMzEuNC0zNyA1My4zLTY5LjUgNTMuM0gxNzAuN2w1LjQgMjguNWMyLjIgMTEuMyAxMi4xIDE5LjUgMjMuNiAxOS41SDQ4OGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgxOTkuN2MtMzQuNiAwLTY0LjMtMjQuNi03MC43LTU4LjVMNzcuNCA1NC41Yy0uNy0zLjgtNC02LjUtNy45LTYuNUgyNEMxMC43IDQ4IDAgMzcuMyAwIDI0ek0xMjggNDY0YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTMzNi00OGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTI1MiAxNjBjMCAxMSA5IDIwIDIwIDIwaDQ0djQ0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwVjE4MGg0NGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBIMzU2Vjk2YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMHY0NEgyNzJjLTExIDAtMjAgOS0yMCAyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FydFNob3BwaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjRDMCAxMC43IDEwLjcgMCAyNCAwSDY5LjVjMjIgMCA0MS41IDEyLjggNTAuNiAzMmg0MTFjMjYuMyAwIDQ1LjUgMjUgMzguNiA1MC40bC00MSAxNTIuM2MtOC41IDMxLjQtMzcgNTMuMy02OS41IDUzLjNIMTcwLjdsNS40IDI4LjVjMi4yIDExLjMgMTIuMSAxOS41IDIzLjYgMTkuNUg0ODhjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMTk5LjdjLTM0LjYgMC02NC4zLTI0LjYtNzAuNy01OC41TDc3LjQgNTQuNWMtLjctMy44LTQtNi41LTcuOS02LjVIMjRDMTAuNyA0OCAwIDM3LjMgMCAyNHpNMTI4IDQ2NGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0zMzYtNDhhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXNoUmVnaXN0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEM0Ni4zIDAgMzIgMTQuMyAzMiAzMlY5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MHYzMkg4N2MtMzEuNiAwLTU4LjUgMjMuMS02My4zIDU0LjRMMS4xIDM2NC4xQy40IDM2OC44IDAgMzczLjYgMCAzNzguNFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRINDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0VjM3OC40YzAtNC44LS40LTkuNi0xLjEtMTQuNEw0ODguMiAyMTQuNEM0ODMuNSAxODMuMSA0NTYuNiAxNjAgNDI1IDE2MEgyMDhWMTI4aDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMySDY0ek05NiA0OEgyNTZjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIOTZjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6TTY0IDQzMmMwLTguOCA3LjItMTYgMTYtMTZINDMyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZ6bTQ4LTE2OGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6bTEyMC0yNGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwek0xNjAgMzQ0YTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHpNMzI4IDI0MGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwek0yNTYgMzQ0YTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHpNNDI0IDI0MGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwek0zNTIgMzQ0YTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2F0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCAxOTJoMTcuMWMyMi4xIDM4LjMgNjMuNSA2NCAxMTAuOSA2NGMxMSAwIDIxLjgtMS40IDMyLTR2NCAzMlY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzM5LjJMMjgwIDQ0OGg1NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgxOTJjLTUzIDAtOTYtNDMtOTYtOTZWMTkyLjVjMC0xNi4xLTEyLTI5LjgtMjgtMzEuOGwtNy45LTFjLTE3LjUtMi4yLTMwLTE4LjItMjcuOC0zNS43czE4LjItMzAgMzUuNy0yNy44bDcuOSAxYzQ4IDYgODQuMSA0Ni44IDg0LjEgOTUuM3Y4NS4zYzM0LjQtNTEuNyA5My4yLTg1LjggMTYwLTg1Ljh6bTE2MCAyNi41djBjLTEwIDMuNS0yMC44IDUuNS0zMiA1LjVjLTI4LjQgMC01NC0xMi40LTcxLjYtMzJoMGMtMy43LTQuMS03LTguNS05LjktMTMuMkMzNTcuMyAxNjQgMzUyIDE0Ni42IDM1MiAxMjh2MFYzMiAxMiAxMC43QzM1MiA0LjggMzU2LjcgLjEgMzYyLjYgMGguMmMzLjMgMCA2LjQgMS42IDguNCA0LjJsMCAuMUwzODQgMjEuM2wyNy4yIDM2LjNMNDE2IDY0aDY0bDQuOC02LjRMNTEyIDIxLjMgNTI0LjggNC4zbDAtLjFjMi0yLjYgNS4xLTQuMiA4LjQtNC4yaC4yQzUzOS4zIC4xIDU0NCA0LjggNTQ0IDEwLjdWMTIgMzJ2OTZjMCAxNy4zLTQuNiAzMy42LTEyLjYgNDcuNmMtMTEuMyAxOS44LTI5LjYgMzUuMi01MS40IDQyLjl6TTQzMiAxMjhhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptNDggMTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDZWRpU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWNjYuN0MxMDEuMiA4MS45IDMyIDE2MC45IDMyIDI1NnM2OS4yIDE3NC4xIDE2MCAxODkuM1Y0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY0NDUuM2MzMC45LTUuMiA1OS4yLTE3LjcgODMuMi0zNS44YzE0LjEtMTAuNiAxNy0zMC43IDYuNC00NC44cy0zMC43LTE3LTQ0LjgtNi40Yy0xMy4yIDkuOS0yOC4zIDE3LjMtNDQuOCAyMS42VjEzMmMxNi40IDQuMiAzMS42IDExLjYgNDQuOCAyMS42YzE0LjEgMTAuNiAzNC4yIDcuOCA0NC44LTYuNHM3LjgtMzQuMi02LjQtNDQuOGMtMjQtMTgtNTIuNC0zMC42LTgzLjItMzUuOFYzMnpNMTkyIDEzMlYzODBjLTU1LjItMTQuMi05Ni02NC4zLTk2LTEyNHM0MC44LTEwOS44IDk2LTEyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2VudFNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNjYuN2MzMC45IDUuMiA1OS4yIDE3LjcgODMuMiAzNS44YzE0LjEgMTAuNiAxNyAzMC43IDYuNCA0NC44cy0zMC43IDE3LTQ0LjggNi40QzI3OS40IDEzNy41IDI1Mi45IDEyOCAyMjQgMTI4Yy03MC43IDAtMTI4IDU3LjMtMTI4IDEyOHM1Ny4zIDEyOCAxMjggMTI4YzI4LjkgMCA1NS40LTkuNSA3Ni44LTI1LjZjMTQuMS0xMC42IDM0LjItNy44IDQ0LjggNi40czcuOCAzNC4yLTYuNCA0NC44Yy0yNCAxOC01Mi40IDMwLjYtODMuMiAzNS44VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY0NDUuM0MxMDEuMiA0MzAuMSAzMiAzNTEuMSAzMiAyNTZzNjkuMi0xNzQuMSAxNjAtMTg5LjNWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNlcnRpZmljYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxMSA3LjNDMjA1IDEgMTk2LTEuNCAxODcuNiAuOHMtMTQuOSA4LjktMTcuMSAxNy4zTDE1NC43IDgwLjZsLTYyLTE3LjVjLTguNC0yLjQtMTcuNCAwLTIzLjUgNi4xcy04LjUgMTUuMS02LjEgMjMuNWwxNy41IDYyTDE4LjEgMTcwLjZjLTguNCAyLjEtMTUgOC43LTE3LjMgMTcuMVMxIDIwNSA3LjMgMjExbDQ2LjIgNDVMNy4zIDMwMUMxIDMwNy0xLjQgMzE2IC44IDMyNC40czguOSAxNC45IDE3LjMgMTcuMWw2Mi41IDE1LjgtMTcuNSA2MmMtMi40IDguNCAwIDE3LjQgNi4xIDIzLjVzMTUuMSA4LjUgMjMuNSA2LjFsNjItMTcuNSAxNS44IDYyLjVjMi4xIDguNCA4LjcgMTUgMTcuMSAxNy4zczE3LjMtLjIgMjMuNC02LjRsNDUtNDYuMiA0NSA0Ni4yYzYuMSA2LjIgMTUgOC43IDIzLjQgNi40czE0LjktOC45IDE3LjEtMTcuM2wxNS44LTYyLjUgNjIgMTcuNWM4LjQgMi40IDE3LjQgMCAyMy41LTYuMXM4LjUtMTUuMSA2LjEtMjMuNWwtMTcuNS02MiA2Mi41LTE1LjhjOC40LTIuMSAxNS04LjcgMTcuMy0xNy4xcy0uMi0xNy40LTYuNC0yMy40bC00Ni4yLTQ1IDQ2LjItNDVjNi4yLTYuMSA4LjctMTUgNi40LTIzLjRzLTguOS0xNC45LTE3LjMtMTcuMWwtNjIuNS0xNS44IDE3LjUtNjJjMi40LTguNCAwLTE3LjQtNi4xLTIzLjVzLTE1LjEtOC41LTIzLjUtNi4xbC02MiAxNy41TDM0MS40IDE4LjFjLTIuMS04LjQtOC43LTE1LTE3LjEtMTcuM1MzMDcgMSAzMDEgNy4zTDI1NiA1My41IDIxMSA3LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYWlyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA0OFYyNTZoNDhWNTguN2MyMy45IDEzLjggNDAgMzkuNyA0MCA2OS4zVjI1Nmg0OFYxMjhDMzg0IDU3LjMgMzI2LjcgMCAyNTYgMEgxOTJDMTIxLjMgMCA2NCA1Ny4zIDY0IDEyOFYyNTZoNDhWMTI4YzAtMjkuNiAxNi4xLTU1LjUgNDAtNjkuM1YyNTZoNDhWNDhoNDh6TTQ4IDI4OGMtMTIuMSAwLTIzLjIgNi44LTI4LjYgMTcuN2wtMTYgMzJjLTUgOS45LTQuNCAyMS43IDEuNCAzMS4xUzIwLjkgMzg0IDMyIDM4NGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzg0SDM1MnY5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjM4NGMxMS4xIDAgMjEuNC01LjcgMjcuMi0xNS4yczYuNC0yMS4yIDEuNC0zMS4xbC0xNi0zMkM0MjMuMiAyOTQuOCA0MTIuMSAyODggNDAwIDI4OEg0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hhbGtib2FyZFVzZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDY0YzAtMzUuMyAyOC43LTY0IDY0LTY0SDU3NmMzNS4zIDAgNjQgMjguNyA2NCA2NFYzNTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRIMzM2LjhjLTExLjgtMjUuNS0yOS45LTQ3LjUtNTIuNC02NEgzODRWMzIwYzAtMTcuNyAxNC4zLTMyIDMyLTMyaDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMydjMyaDY0VjY0TDIyNCA2NHY0OS4xQzIwNS4yIDEwMi4yIDE4My4zIDk2IDE2MCA5NlY2NHptMCA2NGE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnpNMTMzLjMgMzUyaDUzLjNDMjYwLjMgMzUyIDMyMCA0MTEuNyAzMjAgNDg1LjNjMCAxNC43LTExLjkgMjYuNy0yNi43IDI2LjdIMjYuN0MxMS45IDUxMiAwIDUwMC4xIDAgNDg1LjNDMCA0MTEuNyA1OS43IDM1MiAxMzMuMyAzNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYWxrYm9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMzJDNjAuNyAzMiAzMiA2MC43IDMyIDk2VjM4NEg5NlY5NmwzODQgMFYzODRoNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRIOTZ6TTIyNCAzODR2MzJIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINTQ0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDQxNlYzODRjMC0xNy43LTE0LjMtMzItMzItMzJIMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hhbXBhZ25lR2xhc3NlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTUuNiAxNy4zQzE2MyAzIDE3OS45LTMuNiAxOTUgMS45TDMyMCA0Ny41bDEyNS00NS42YzE1LjEtNS41IDMyIDEuMSAzOS40IDE1LjRsNzguOCAxNTIuOWMyOC44IDU1LjggMTAuMyAxMjIuMy0zOC41IDE1Ni42TDU1Ni4xIDQxM2w0MS0xNWMxNi42LTYgMzUgMi41IDQxIDE5LjFzLTIuNSAzNS0xOS4xIDQxbC03MS4xIDI1LjlMNDc2LjggNTEwYy0xNi42IDYuMS0zNS0yLjUtNDEtMTkuMXMyLjUtMzUgMTkuMS00MWw0MS0xNS0zMS4zLTg2LjJjLTU5LjQgNS4yLTExNi4yLTM0LTEzMC05NS4yTDMyMCAxODguOGwtMTQuNiA2NC43Yy0xMy44IDYxLjMtNzAuNiAxMDAuNC0xMzAgOTUuMmwtMzEuMyA4Ni4yIDQxIDE1YzE2LjYgNiAyNS4yIDI0LjQgMTkuMSA0MXMtMjQuNCAyNS4yLTQxIDE5LjFMOTIuMiA0ODQuMSAyMS4xIDQ1OC4yYy0xNi42LTYuMS0yNS4yLTI0LjQtMTkuMS00MXMyNC40LTI1LjIgNDEtMTkuMWw0MSAxNSAzMS4zLTg2LjJDNjYuNSAyOTIuNSA0OC4xIDIyNiA3Ni45IDE3MC4yTDE1NS42IDE3LjN6bTQ0IDU0LjRsLTI3LjIgNTIuOEwyNjEuNiAxNTdsMTMuMS01Ny45TDE5OS42IDcxLjd6bTI0MC45IDBMMzY1LjQgOTkuMSAzNzguNSAxNTdsODkuMi0zMi41TDQ0MC41IDcxLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYXJnaW5nU3RhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0VjQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkgzMjBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJWMzA0aDE2YzIyLjEgMCA0MCAxNy45IDQwIDQwdjMyYzAgMzkuOCAzMi4yIDcyIDcyIDcyczcyLTMyLjIgNzItNzJWMjUyLjNjMzIuNS0xMC4yIDU2LTQwLjUgNTYtNzYuM1YxNDRjMC04LjgtNy4yLTE2LTE2LTE2SDU0NFY4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnY0OEg0ODBWODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2NDhINDMyYy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCAzNS44IDIzLjUgNjYuMSA1NiA3Ni4zVjM3NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYzNDRjMC00OC42LTM5LjQtODgtODgtODhIMzIwVjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDk2ek0yMTYuOSA4Mi43YzYgNCA4LjUgMTEuNSA2LjMgMTguM2wtMjUgNzQuOUgyNTZjNi43IDAgMTIuNyA0LjIgMTUgMTAuNHMuNSAxMy4zLTQuNiAxNy43bC0xMTIgOTZjLTUuNSA0LjctMTMuNCA1LjEtMTkuMyAxLjFzLTguNS0xMS41LTYuMy0xOC4zbDI1LTc0LjlIOTZjLTYuNyAwLTEyLjctNC4yLTE1LTEwLjRzLS41LTEzLjMgNC42LTE3LjdsMTEyLTk2YzUuNS00LjcgMTMuNC01LjEgMTkuMy0xLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYXJ0QXJlYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NFY0MDBjMCA0NC4yIDM1LjggODAgODAgODBINDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDgwYy04LjggMC0xNi03LjItMTYtMTZWNjR6bTk2IDI4OEg0NDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjUxLjhjMC03LjYtMi43LTE1LTcuNy0yMC44bC02NS44LTc2LjhjLTEyLjEtMTQuMi0zMy43LTE1LTQ2LjktMS44bC0yMSAyMWMtMTAgMTAtMjYuNCA5LjItMzUuNC0xLjZsLTM5LjItNDdjLTEyLjYtMTUuMS0zNS43LTE1LjQtNDguNy0uNkwxMzUuOSAyMTVjLTUuMSA1LjgtNy45IDEzLjMtNy45IDIxLjF2ODRjMCAxNy43IDE0LjMgMzIgMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYXJ0QmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjQwMGMwIDguOCA3LjIgMTYgMTYgMTZINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDgwYy00NC4yIDAtODAtMzUuOC04MC04MFY2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnptOTYgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnptMzIgNjRIMjg4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCA5Nkg0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGFydENvbHVtbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMlY0MDBjMCA4LjggNy4yIDE2IDE2IDE2SDQ4MGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBWNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJ6TTE2MCAyMjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xMjgtNjRWMzIwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem02NCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYyMjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ4MCA5NlYzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hhcnRHYW50dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMlY0MDBjMCA4LjggNy4yIDE2IDE2IDE2SDQ4MGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBWNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJ6bTk2IDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMnptOTYgNjRIMzUyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMTYwIDk2aDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDM4NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hhcnRMaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0VjQwMGMwIDQ0LjIgMzUuOCA4MCA4MCA4MEg0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIODBjLTguOCAwLTE2LTcuMi0xNi0xNlY2NHptNDA2LjYgODYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwzMjAgMjEwLjdsLTU3LjQtNTcuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTExMiAxMTJjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMjQwIDIyMS4zbDU3LjQgNTcuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGFydFBpZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDQgMjQwVjE2LjZjMC05IDctMTYuNiAxNi0xNi42QzQ0My43IDAgNTQ0IDEwMC4zIDU0NCAyMjRjMCA5LTcuNiAxNi0xNi42IDE2SDMwNHpNMzIgMjcyQzMyIDE1MC43IDEyMi4xIDUwLjMgMjM5IDM0LjNjOS4yLTEuMyAxNyA2LjEgMTcgMTUuNFYyODhMNDEyLjUgNDQ0LjVjNi43IDYuNyA2LjIgMTcuNy0xLjUgMjMuMUMzNzEuOCA0OTUuNiAzMjMuOCA1MTIgMjcyIDUxMkMxMzkuNSA1MTIgMzIgNDA0LjYgMzIgMjcyem01MjYuNCAxNmM5LjMgMCAxNi42IDcuOCAxNS40IDE3Yy03LjcgNTUuOS0zNC42IDEwNS42LTczLjkgMTQyLjNjLTYgNS42LTE1LjQgNS4yLTIxLjItLjdMMzIwIDI4OEg1NTguNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hhcnRTaW1wbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDMyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4VjQzMmMwIDI2LjUtMjEuNSA0OC00OCA0OEgyMDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4Vjgwek0wIDI3MmMwLTI2LjUgMjEuNS00OCA0OC00OEg4MGMyNi41IDAgNDggMjEuNSA0OCA0OFY0MzJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjI3MnpNMzY4IDk2aDMyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4VjQzMmMwIDI2LjUtMjEuNSA0OC00OCA0OEgzNjhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjE0NGMwLTI2LjUgMjEuNS00OCA0OC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlY2tEb3VibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQyLjYgODYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwxNjAgMTc4LjdsLTU3LjQtNTcuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsODAgODBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MHptOTYgMTI4YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDE2MCA0MDIuNyA1NC42IDI5Ny40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxMjggMTI4YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDI1Ni0yNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZWNrVG9TbG90IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4SDQzMmMyNi41IDAgNDggMjEuNSA0OCA0OFYzODRIOTZWODB6bTMxMyA0N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTExMSAxMTEtNDctNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNjQgNjRjOS40IDkuNCAyNC42IDkuNCAzMy45IDBMNDA5IDE2MWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXpNMCAzMzZjMC0yNi41IDIxLjUtNDggNDgtNDhINjRWNDE2SDUxMlYyODhoMTZjMjYuNSAwIDQ4IDIxLjUgNDggNDh2OTZjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjMzNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM4LjYgMTA1LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTI1NiAyNTZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC0xMjgtMTI4Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDE2MCAzMzguNyAzOTMuNCAxMDUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlZXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiAyNDAuMlYyNTZIMGMwLTIwIDEwLTM4LjcgMjYuNi00OS44TDI3NC45IDQwLjdjOC42LTUuNyAxOC42LTguNyAyOC45LTguN0M0MTguOCAzMiA1MTIgMTI1LjIgNTEyIDI0MC4yem0wIDQ3LjhWNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYyODhINTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGVzc0Jpc2hvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMEMxMTAuMyAwIDk2IDE0LjMgOTYgMzJjMCAxNi4xIDExLjkgMjkuNCAyNy40IDMxLjdDNzguNCAxMDYuOCA4IDE5MCA4IDI4OGMwIDQ3LjQgMzAuOCA3Mi4zIDU2IDg0LjdWNDAwSDI1NlYzNzIuN2MyNS4yLTEyLjUgNTYtMzcuNCA1Ni04NC43YzAtMzcuMy0xMC4yLTcyLjQtMjUuMy0xMDQuMWwtOTkuNCA5OS40Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42TDI3MC44IDE1NC42Yy0yMy4yLTM4LjEtNTEuOC02OS41LTc0LjItOTAuOUMyMTIuMSA2MS40IDIyNCA0OC4xIDIyNCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkgxMjh6TTQ4IDQzMkw2LjYgNDczLjRjLTQuMiA0LjItNi42IDEwLTYuNiAxNkMwIDUwMS45IDEwLjEgNTEyIDIyLjYgNTEySDI5Ny40YzEyLjUgMCAyMi42LTEwLjEgMjIuNi0yMi42YzAtNi0yLjQtMTEuOC02LjYtMTZMMjcyIDQzMkg0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlc3NCb2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6bTY0IDY0djY0aDY0Vjk2aDY0djY0aDY0Vjk2aDY0djY0SDMyMHY2NGg2NHY2NEgzMjB2NjRoNjR2NjRIMzIwVjM1MkgyNTZ2NjRIMTkyVjM1MkgxMjh2NjRINjRWMzUyaDY0VjI4OEg2NFYyMjRoNjRWMTYwSDY0Vjk2aDY0em02NCAxMjhoNjRWMTYwSDE5MnY2NHptMCA2NFYyMjRIMTI4djY0aDY0em02NCAwSDE5MnY2NGg2NFYyODh6bTAgMGg2NFYyMjRIMjU2djY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGVzc0tpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNDhoMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMjU2djQ4SDQwOGMyMi4xIDAgNDAgMTcuOSA0MCA0MGMwIDUuMy0xIDEwLjUtMy4xIDE1LjRMMzY4IDQwMEg4MEwzLjEgMjE1LjRDMSAyMTAuNSAwIDIwNS4zIDAgMjAwYzAtMjIuMSAxNy45LTQwIDQwLTQwSDE5MlYxMTJIMTc2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDE2VjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zOC42IDQ3My40TDgwIDQzMkgzNjhsNDEuNCA0MS40YzQuMiA0LjIgNi42IDEwIDYuNiAxNmMwIDEyLjUtMTAuMSAyMi42LTIyLjYgMjIuNkg1NC42QzQyLjEgNTEyIDMyIDUwMS45IDMyIDQ4OS40YzAtNiAyLjQtMTEuOCA2LjYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZXNzS25pZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDQ4TDgyLjcgNjEuM0M3MC43IDczLjMgNjQgODkuNSA2NCAxMDYuNVYyMzguOWMwIDEwLjcgNS4zIDIwLjcgMTQuMiAyNi42bDEwLjYgN2MxNC4zIDkuNiAzMi43IDEwLjcgNDguMSAzbDMuMi0xLjZjMi42LTEuMyA1LTIuOCA3LjMtNC41bDQ5LjQtMzdjNi42LTUgMTUuNy01IDIyLjMgMGMxMC4yIDcuNyA5LjkgMjMuMS0uNyAzMC4zTDkwLjQgMzUwQzczLjkgMzYxLjMgNjQgMzgwIDY0IDQwMEgzODRsMjguOS0xNTljMi4xLTExLjMgMy4xLTIyLjggMy4xLTM0LjNWMTkyQzQxNiA4NiAzMzAgMCAyMjQgMEg4My44QzcyLjkgMCA2NCA4LjkgNjQgMTkuOGMwIDcuNSA0LjIgMTQuMyAxMC45IDE3LjdMOTYgNDh6bTI0IDY4YTIwIDIwIDAgMSAxIDQwIDAgMjAgMjAgMCAxIDEgLTQwIDB6TTIyLjYgNDczLjRjLTQuMiA0LjItNi42IDEwLTYuNiAxNkMxNiA1MDEuOSAyNi4xIDUxMiAzOC42IDUxMkg0MDkuNGMxMi41IDAgMjIuNi0xMC4xIDIyLjYtMjIuNmMwLTYtMi40LTExLjgtNi42LTE2TDM4NCA0MzJINjRMMjIuNiA0NzMuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlc3NQYXduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNS41IDIyNGMyOS4yLTE4LjQgNDguNS01MC45IDQ4LjUtODhjMC01Ny40LTQ2LjYtMTA0LTEwNC0xMDRTNTYgNzguNiA1NiAxMzZjMCAzNy4xIDE5LjQgNjkuNiA0OC41IDg4SDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmMwIDE2LjUgMTIuNSAzMCAyOC41IDMxLjhMODAgNDAwSDI0MEwyMjcuNSAyODcuOGMxNi0xLjggMjguNS0xNS4zIDI4LjUtMzEuOGMwLTE3LjctMTQuMy0zMi0zMi0zMmgtOC41ek0yMi42IDQ3My40Yy00LjIgNC4yLTYuNiAxMC02LjYgMTZDMTYgNTAxLjkgMjYuMSA1MTIgMzguNiA1MTJIMjgxLjRjMTIuNSAwIDIyLjYtMTAuMSAyMi42LTIyLjZjMC02LTIuNC0xMS44LTYuNi0xNkwyNTYgNDMySDY0TDIyLjYgNDczLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZXNzUXVlZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDBhNTYgNTYgMCAxIDEgMCAxMTJBNTYgNTYgMCAxIDEgMjU2IDB6TTEzNC4xIDE0My44YzMuMy0xMyAxNS0yMy44IDMwLjItMjMuOGMxMi4zIDAgMjIuNiA3LjIgMjcuNyAxN2MxMiAyMy4yIDM2LjIgMzkgNjQgMzlzNTItMTUuOCA2NC0zOWM1LjEtOS44IDE1LjQtMTcgMjcuNy0xN2MxNS4zIDAgMjcgMTAuOCAzMC4yIDIzLjhjNyAyNy44IDMyLjIgNDguMyA2Mi4xIDQ4LjNjMTAuOCAwIDIxLTIuNyAyOS44LTcuNGM4LjQtNC40IDE4LjktNC41IDI3LjYgLjljMTMgOCAxNy4xIDI1IDkuMiAzOEwzOTkuNyA0MDBIMzg0IDM0My42IDE2OC40IDEyOCAxMTIuM0w1LjQgMjIzLjZjLTcuOS0xMy0zLjgtMzAgOS4yLTM4YzguNy01LjMgMTkuMi01LjMgMjcuNi0uOWM4LjkgNC43IDE5IDcuNCAyOS44IDcuNGMyOS45IDAgNTUuMS0yMC41IDYyLjEtNDguM3pNMjU2IDIyNGwwIDAgMCAwaDB6TTExMiA0MzJINDAwbDQxLjQgNDEuNGM0LjIgNC4yIDYuNiAxMCA2LjYgMTZjMCAxMi41LTEwLjEgMjIuNi0yMi42IDIyLjZIODYuNkM3NC4xIDUxMiA2NCA1MDEuOSA2NCA0ODkuNGMwLTYgMi40LTExLjggNi42LTE2TDExMiA0MzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZXNzUm9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAxOTJWNDhjMC04LjggNy4yLTE2IDE2LTE2aDY0YzguOCAwIDE2IDcuMiAxNiAxNlY4OGMwIDQuNCAzLjYgOCA4IDhoMzJjNC40IDAgOC0zLjYgOC04VjQ4YzAtOC44IDcuMi0xNiAxNi0xNmg2NGM4LjggMCAxNiA3LjIgMTYgMTZWODhjMCA0LjQgMy42IDggOCA4aDMyYzQuNCAwIDgtMy42IDgtOFY0OGMwLTguOCA3LjItMTYgMTYtMTZoNjRjOC44IDAgMTYgNy4yIDE2IDE2VjE5MmMwIDEwLjEtNC43IDE5LjYtMTIuOCAyNS42TDM1MiAyNTZsMTYgMTQ0SDgwTDk2IDI1NiA0NC44IDIxNy42QzM2LjcgMjExLjYgMzIgMjAyLjEgMzIgMTkyem0xNzYgOTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnY0OGMwIDguOCA3LjIgMTYgMTYgMTZ6TTIyLjYgNDczLjRMNjQgNDMySDM4NGw0MS40IDQxLjRjNC4yIDQuMiA2LjYgMTAgNi42IDE2YzAgMTIuNS0xMC4xIDIyLjYtMjIuNiAyMi42SDM4LjZDMjYuMSA1MTIgMTYgNTAxLjkgMTYgNDg5LjRjMC02IDIuNC0xMS44IDYuNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ0IDE2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2VjMySDk2Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2aDE2Vjk2SDYwLjJDNDkuMSA5NiA0MCAxMDUuMSA0MCAxMTYuMmMwIDIuNSAuNSA0LjkgMS4zIDcuM0w3My44IDIwOEg3MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGg0TDYwIDM4NEgxOTZMMTgwIDI1Nmg0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0aC0xLjhsMzIuNS04NC41Yy45LTIuMyAxLjMtNC44IDEuMy03LjNjMC0xMS4yLTkuMS0yMC4yLTIwLjItMjAuMkgxNDRWNjRoMTZjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMTQ0VjE2ek00OCA0MTZMNC44IDQ3My42QzEuNyA0NzcuOCAwIDQ4Mi44IDAgNDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0SDIzMmMxMy4zIDAgMjQtMTAuNyAyNC0yNGMwLTUuMi0xLjctMTAuMi00LjgtMTQuNEwyMDggNDE2SDQ4em0yODggMGwtNDMuMiA1Ny42Yy0zLjEgNC4yLTQuOCA5LjItNC44IDE0LjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRINDg4YzEzLjMgMCAyNC0xMC43IDI0LTI0YzAtNS4yLTEuNy0xMC4yLTQuOC0xNC40TDQ2NCA0MTZIMzM2ek0zMDQgMjA4djUxLjljMCA3LjggMi44IDE1LjMgOCAyMS4xTDMzOS4yIDMxMiAzMzcgMzg0SDQ2Mi41bC0zLjMtNzIgMjguMy0zMC44YzUuNC01LjkgOC41LTEzLjYgOC41LTIxLjdWMjA4YzAtOC44LTcuMi0xNi0xNi0xNkg0NjRjLTguOCAwLTE2IDcuMi0xNiAxNnYxNkg0MjRWMjA4YzAtOC44LTcuMi0xNi0xNi0xNkgzOTJjLTguOCAwLTE2IDcuMi0xNiAxNnYxNkgzNTJWMjA4YzAtOC44LTcuMi0xNi0xNi0xNkgzMjBjLTguOCAwLTE2IDcuMi0xNiAxNnptODAgOTZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnYzMkgzODRWMzA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGV2cm9uRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzMuNCA0MDYuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxOTItMTkyYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDI1NiAzMzguNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxOTIgMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGV2cm9uTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE5MiAxOTJjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1NiAyNDYuNiA4Ni42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xOTIgMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGV2cm9uUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzEwLjYgMjMzLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTE5MiAxOTJjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDI0Mi43IDI1NiA3My40IDg2LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTkyIDE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hldnJvblVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzMy40IDEwNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE5MiAxOTJjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMjU2IDE3My4zIDg2LjYgMzQyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDE5Mi0xOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoaWxkQ29tYmF0YW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiAxMjhBNjQgNjQgMCAxIDAgMTc2IDBhNjQgNjQgMCAxIDAgMCAxMjh6bS04IDM1MlYzNTJoMTZWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzAwLjVMMjYwLjkgMzIxYzkuNCAxNSAyOS4yIDE5LjQgNDQuMSAxMHMxOS40LTI5LjIgMTAtNDQuMWwtNTEuNy04Mi4xYy0xNy42LTI3LjktNDguMy00NC45LTgxLjItNDQuOUgxNjkuOGMtMzMgMC02My43IDE2LjktODEuMiA0NC45TDM2LjkgMjg3Yy05LjQgMTUtNC45IDM0LjcgMTAgNDQuMXMzNC43IDQuOSA0NC4xLTEwTDEwNCAzMDAuNVY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnpNNDQ4IDBINDMyIDQxNmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNlYxMzIuM2MtOS42IDUuNS0xNiAxNS45LTE2IDI3Ljd2MzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjM2OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgxNnY5NmMwIDguOCA3LjIgMTYgMTYgMTZoNTkuNWMxMC40IDAgMTgtOS44IDE1LjUtMTkuOUw0ODQgNDAwaDQ0YzguOCAwIDE2LTcuMiAxNi0xNlYzNjhjMC04LjgtNy4yLTE2LTE2LTE2SDQ4MFYzMjUuM2w1My4xLTE3LjdjNi41LTIuMiAxMC45LTguMyAxMC45LTE1LjJWMjA4YzAtOC44LTcuMi0xNi0xNi0xNkg1MTJjLTguOCAwLTE2IDcuMi0xNiAxNnY1NmwtMTYgNS4zVjE2MGMwLTExLjgtNi40LTIyLjItMTYtMjcuN1YxNmMwLTguOC03LjItMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoaWxkRHJlc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDY0QTY0IDY0IDAgMSAwIDk2IDY0YTY0IDY0IDAgMSAwIDEyOCAwek04OCA0MDB2ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY0MDBoMTZ2ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY0MDBoMTcuOGMxMC45IDAgMTguNi0xMC43IDE1LjItMjEuMWwtMzEuMS05My40IDI4LjYgMzcuOGMxMC43IDE0LjEgMzAuOCAxNi44IDQ0LjggNi4yczE2LjgtMzAuNyA2LjItNDQuOEwyNTQuNiAyMDdjLTIyLjQtMjkuNi01Ny41LTQ3LTk0LjYtNDdzLTcyLjIgMTcuNC05NC42IDQ3TDYuNSAyODQuN2MtMTAuNyAxNC4xLTcuOSAzNC4yIDYuMiA0NC44czM0LjIgNy45IDQ0LjgtNi4ybDI4LjctMzcuOEw1NSAzNzguOUM1MS42IDM4OS4zIDU5LjMgNDAwIDcwLjIgNDAwSDg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGlsZFJlYWNoaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA2NEE2NCA2NCAwIDEgMCAxMjggNjRhNjQgNjQgMCAxIDAgMTI4IDB6TTE1Mi45IDE2OS4zYy0yMy43LTguNC00NC41LTI0LjMtNTguOC00NS44TDc0LjYgOTQuMkM2NC44IDc5LjUgNDUgNzUuNiAzMC4yIDg1LjRzLTE4LjcgMjkuNy04LjkgNDQuNEw0MC45IDE1OWMxOC4xIDI3LjEgNDIuOCA0OC40IDcxLjEgNjIuNFY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzODRoMzJ2OTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyMjEuNmMyOS4xLTE0LjIgNTQuNC0zNi4yIDcyLjctNjQuMmwxOC4yLTI3LjljOS42LTE0LjggNS40LTM0LjYtOS40LTQ0LjNzLTM0LjYtNS41LTQ0LjMgOS40TDI5MSAxMjIuNGMtMjEuOCAzMy40LTU4LjkgNTMuNi05OC44IDUzLjZjLTEyLjYgMC0yNC45LTItMzYuNi01LjhjLS45LS4zLTEuOC0uNy0yLjctLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoaWxkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDY0YTY0IDY0IDAgMSAxIDEyOCAwQTY0IDY0IDAgMSAxIDk2IDY0em00OCAzMjB2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMjg3LjhMNTkuMSAzMjFjLTkuNCAxNS0yOS4yIDE5LjQtNDQuMSAxMFMtNC41IDMwMS45IDQuOSAyODdsMzkuOS02My4zQzY5LjcgMTg0IDExMy4yIDE2MCAxNjAgMTYwczkwLjMgMjQgMTE1LjIgNjMuNkwzMTUuMSAyODdjOS40IDE1IDQuOSAzNC43LTEwIDQ0LjFzLTM0LjcgNC45LTQ0LjEtMTBMMjQwIDI4Ny44VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzODRIMTQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGlsZHJlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMGE2NCA2NCAwIDEgMSAwIDEyOEE2NCA2NCAwIDEgMSAxNjAgMHpNODggNDgwVjQwMEg3MC4yYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMWwzMS4xLTkzLjRMNTcuNSAzMjMuM2MtMTAuNyAxNC4xLTMwLjggMTYuOC00NC44IDYuMnMtMTYuOC0zMC43LTYuMi00NC44TDY1LjQgMjA3YzIyLjQtMjkuNiA1Ny41LTQ3IDk0LjYtNDdzNzIuMiAxNy40IDk0LjYgNDdsNTguOSA3Ny43YzEwLjcgMTQuMSA3LjkgMzQuMi02LjIgNDQuOHMtMzQuMiA3LjktNDQuOC02LjJsLTI4LjYtMzcuOEwyNjUgMzc4LjljMy41IDEwLjQtNC4zIDIxLjEtMTUuMiAyMS4xSDIzMnY4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY0MDBIMTUydjgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyek00ODAgMGE2NCA2NCAwIDEgMSAwIDEyOEE2NCA2NCAwIDEgMSA0ODAgMHptLTggMzg0djk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjMwMC41TDM5NS4xIDMyMWMtOS40IDE1LTI5LjIgMTkuNC00NC4xIDEwcy0xOS40LTI5LjItMTAtNDQuMWw1MS43LTgyLjFjMTcuNi0yNy45IDQ4LjMtNDQuOSA4MS4yLTQ0LjloMTIuM2MzMyAwIDYzLjcgMTYuOSA4MS4yIDQ0LjlMNjE5LjEgMjg3YzkuNCAxNSA0LjkgMzQuNy0xMCA0NC4xcy0zNC43IDQuOS00NC4xLTEwTDU1MiAzMDAuNVY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzg0SDQ3MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2h1cmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0NCAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNFY0OEgyNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoMzJ2NDYuNEwxODMuMyAyMTBjLTE0LjUgOC43LTIzLjMgMjQuMy0yMy4zIDQxLjJWNTEyaDk2VjQxNmMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0djk2aDk2VjI1MS4yYzAtMTYuOS04LjgtMzIuNS0yMy4zLTQxLjJMMzQ0IDE0Mi40Vjk2aDMyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDM0NFYyNHpNMjQuOSAzMzAuM0M5LjUgMzM4LjggMCAzNTQuOSAwIDM3Mi40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGg4MFYyNzMuNkwyNC45IDMzMC4zek01OTIgNTEyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjM3Mi40YzAtMTcuNS05LjUtMzMuNi0yNC45LTQyLjFMNTEyIDI3My42VjUxMmg4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlQXJyb3dEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMHpNMTI3IDI4MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcxIDcxTDIzMiAxMzZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE4Mi4xIDcxLTcxYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUwyNzMgMzkzYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwxMjcgMjgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVBcnJvd0xlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDI1NkEyNTYgMjU2IDAgMSAwIDAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDB6TTIzMSAxMjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC03MSA3MUwzNzYgMjMyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xODIuMSAwIDcxIDcxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMMTE5IDI3M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMMjMxIDEyN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlQXJyb3dSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwQTI1NiAyNTYgMCAxIDAgMCAyNTZ6TTI4MSAzODVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNzEtNzFMMTM2IDI4MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxODIuMSAwLTcxLTcxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBMMzkzIDIzOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUwyODEgMzg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVBcnJvd1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0zODUgMjMxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTcxLTcxVjM3NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYxOTMuOWwtNzEgNzFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMjM5IDExOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwzODUgMjMxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzY5IDIwOUwyNDEgMzM3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0NyA0N0wzMzUgMTc1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlQ2hldnJvbkRvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwek0xMzUgMjQxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsODcgODcgODctODdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDI3MyAzNDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDEzNSAyNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpcmNsZUNoZXZyb25MZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiAyNTZBMjU2IDI1NiAwIDEgMCAwIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwek0yNzEgMTM1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtODcgODcgODcgODdjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEwxNjcgMjczYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwyNzEgMTM1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVDaGV2cm9uUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMEEyNTYgMjU2IDAgMSAwIDAgMjU2ek0yNDEgMzc3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDg3LTg3LTg3LTg3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBMMzQ1IDIzOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUwyNDEgMzc3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVDaGV2cm9uVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM3NyAyNzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtODctODctODcgODdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMjM5IDE2N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwzNzcgMjcxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVEb2xsYXJUb1Nsb3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzI2LjcgNDAzLjdjLTIyLjEgOC00NS45IDEyLjMtNzAuNyAxMi4zcy00OC43LTQuNC03MC43LTEyLjNjLS4zLS4xLS41LS4yLS44LS4zYy0zMC0xMS01Ni44LTI4LjctNzguNi01MS40QzcwIDMxNC42IDQ4IDI2My45IDQ4IDIwOEM0OCA5My4xIDE0MS4xIDAgMjU2IDBTNDY0IDkzLjEgNDY0IDIwOGMwIDU1LjktMjIgMTA2LjYtNTcuOSAxNDRjLTEgMS0yIDIuMS0zIDMuMWMtMjEuNCAyMS40LTQ3LjQgMzguMS03Ni4zIDQ4LjZ6TTI1NiA4NGMtMTEgMC0yMCA5LTIwIDIwdjE0Yy03LjYgMS43LTE1LjIgNC40LTIyLjIgOC41Yy0xMy45IDguMy0yNS45IDIyLjgtMjUuOCA0My45Yy4xIDIwLjMgMTIgMzMuMSAyNC43IDQwLjdjMTEgNi42IDI0LjcgMTAuOCAzNS42IDE0bDEuNyAuNWMxMi42IDMuOCAyMS44IDYuOCAyOCAxMC43YzUuMSAzLjIgNS44IDUuNCA1LjkgOC4yYy4xIDUtMS44IDgtNS45IDEwLjVjLTUgMy4xLTEyLjkgNS0yMS40IDQuN2MtMTEuMS0uNC0yMS41LTMuOS0zNS4xLTguNWMtMi4zLS44LTQuNy0xLjYtNy4yLTIuNGMtMTAuNS0zLjUtMjEuOCAyLjItMjUuMyAxMi42czIuMiAyMS44IDEyLjYgMjUuM2MxLjkgLjYgNCAxLjMgNi4xIDIuMWwwIDAgMCAwYzguMyAyLjkgMTcuOSA2LjIgMjguMiA4LjRWMzEyYzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwVjI5OC4yYzgtMS43IDE2LTQuNSAyMy4yLTljMTQuMy04LjkgMjUuMS0yNC4xIDI0LjgtNDVjLS4zLTIwLjMtMTEuNy0zMy40LTI0LjYtNDEuNmMtMTEuNS03LjItMjUuOS0xMS42LTM3LjEtMTVsLS43LS4yYy0xMi44LTMuOS0yMS45LTYuNy0yOC4zLTEwLjVjLTUuMi0zLjEtNS4zLTQuOS01LjMtNi43YzAtMy43IDEuNC02LjUgNi4yLTkuM2M1LjQtMy4yIDEzLjYtNS4xIDIxLjUtNWM5LjYgLjEgMjAuMiAyLjIgMzEuMiA1LjJjMTAuNyAyLjggMjEuNi0zLjUgMjQuNS0xNC4ycy0zLjUtMjEuNi0xNC4yLTI0LjVjLTYuNS0xLjctMTMuNy0zLjQtMjEuMS00LjdWMTA0YzAtMTEtOS0yMC0yMC0yMHpNNDggMzUySDY0YzE5LjUgMjUuOSA0NCA0Ny43IDcyLjIgNjRINjR2MzJIMjU2IDQ0OFY0MTZIMzc1LjhjMjguMi0xNi4zIDUyLjgtMzguMSA3Mi4yLTY0aDE2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY0MDBjMC0yNi41IDIxLjUtNDggNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpcmNsZURvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptMC0zNTJhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpcmNsZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwek0zNzYuOSAyOTQuNkwyNjkuOCAzOTQuNWMtMy44IDMuNS04LjcgNS41LTEzLjggNS41cy0xMC4xLTItMTMuOC01LjVMMTM1LjEgMjk0LjZjLTQuNS00LjItNy4xLTEwLjEtNy4xLTE2LjNjMC0xMi4zIDEwLTIyLjMgMjIuMy0yMi4zbDU3LjcgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiA1Ny43IDBjMTIuMyAwIDIyLjMgMTAgMjIuMyAyMi4zYzAgNi4yLTIuNiAxMi4xLTcuMSAxNi4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVFeGNsYW1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptMC0zODRjMTMuMyAwIDI0IDEwLjcgMjQgMjRWMjY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjE1MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMjI0IDM1MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVIIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0zNjggMTUyVjI1NiAzNjBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMjgwSDE5MmwwIDgwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjA4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR2ODBIMzIwVjE1MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVIYWxmU3Ryb2tlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAyNTZjMC0xMDYtODYtMTkyLTE5Mi0xOTJWNDQ4YzEwNiAwIDE5Mi04NiAxOTItMTkyek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpcmNsZUluZm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIxNiAzMzZoMjRWMjcySDIxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGg0OGMxMy4zIDAgMjQgMTAuNyAyNCAyNHY4OGg4YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDIxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptNDAtMjA4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgMjU2QTI1NiAyNTYgMCAxIDAgMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMHpNMjE3LjQgMzc2LjlMMTE3LjUgMjY5LjhjLTMuNS0zLjgtNS41LTguNy01LjUtMTMuOHMyLTEwLjEgNS41LTEzLjhsOTkuOS0xMDcuMWM0LjItNC41IDEwLjEtNy4xIDE2LjMtNy4xYzEyLjMgMCAyMi4zIDEwIDIyLjMgMjIuM2wwIDU3LjcgOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwIDAgNTcuN2MwIDEyLjMtMTAgMjIuMy0yMi4zIDIyLjNjLTYuMiAwLTEyLjEtMi42LTE2LjMtNy4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTg0IDIzMkgzMjhjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMTg0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVOb2RlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTguNCAxNTcuOWMzNS4zLTguMyA2MS42LTQwIDYxLjYtNzcuOWMwLTQ0LjItMzUuOC04MC04MC04MGMtNDMuNCAwLTc4LjcgMzQuNS04MCA3Ny41TDEzNi4yIDE1MS4xQzEyMS43IDEzNi44IDEwMS45IDEyOCA4MCAxMjhjLTQ0LjIgMC04MCAzNS44LTgwIDgwczM1LjggODAgODAgODBjMTIuMiAwIDIzLjgtMi43IDM0LjEtNy42TDI1OS43IDQwNy44Yy0yLjQgNy42LTMuNyAxNS44LTMuNyAyNC4yYzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0yNy43LTE0LTUyLjEtMzUuNC02Ni40bDM3LjgtMjA3Ljd6TTE1Ni4zIDIzMi4yYzIuMi02LjkgMy41LTE0LjIgMy43LTIxLjdsMTgzLjgtNzMuNWMzLjYgMy41IDcuNCA2LjcgMTEuNiA5LjVMMzE3LjYgMzU0LjFjLTUuNSAxLjMtMTAuOCAzLjEtMTUuOCA1LjVMMTU2LjMgMjMyLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpcmNsZU5vdGNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyMi43IDMyLjFjNSAxNi45LTQuNiAzNC44LTIxLjUgMzkuOEMxMjEuOCA5NS42IDY0IDE2OS4xIDY0IDI1NmMwIDEwNiA4NiAxOTIgMTkyIDE5MnMxOTItODYgMTkyLTE5MmMwLTg2LjktNTcuOC0xNjAuNC0xMzcuMS0xODQuMWMtMTYuOS01LTI2LjYtMjIuOS0yMS41LTM5LjhzMjIuOS0yNi42IDM5LjgtMjEuNUM0MzQuOSA0Mi4xIDUxMiAxNDAgNTEyIDI1NmMwIDE0MS40LTExNC42IDI1Ni0yNTYgMjU2UzAgMzk3LjQgMCAyNTZDMCAxNDAgNzcuMSA0Mi4xIDE4Mi45IDEwLjZjMTYuOS01IDM0LjggNC42IDM5LjggMjEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlUGF1c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIyNCAxOTJWMzIwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem0xMjggMFYzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpcmNsZVBsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2ek0xODguMyAxNDcuMWMtNy42IDQuMi0xMi4zIDEyLjMtMTIuMyAyMC45VjM0NGMwIDguNyA0LjcgMTYuNyAxMi4zIDIwLjlzMTYuOCA0LjEgMjQuMy0uNWwxNDQtODhjNy4xLTQuNCAxMS41LTEyLjEgMTEuNS0yMC41cy00LjQtMTYuMS0xMS41LTIwLjVsLTE0NC04OGMtNy40LTQuNS0xNi43LTQuNy0yNC4zLS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0yMzIgMzQ0VjI4MEgxNjhjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRoNjRWMTY4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR2NjRoNjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMjgwdjY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVRdWVzdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY5LjggMTY1LjNjNy45LTIyLjMgMjkuMS0zNy4zIDUyLjgtMzcuM2g1OC4zYzM0LjkgMCA2My4xIDI4LjMgNjMuMSA2My4xYzAgMjIuNi0xMi4xIDQzLjUtMzEuNyA1NC44TDI4MCAyNjQuNGMtLjIgMTMtMTAuOSAyMy42LTI0IDIzLjZjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjI1MC41YzAtOC42IDQuNi0xNi41IDEyLjEtMjAuOGw0NC4zLTI1LjRjNC43LTIuNyA3LjYtNy43IDcuNi0xMy4xYzAtOC40LTYuOC0xNS4xLTE1LjEtMTUuMUgyMjIuNmMtMy40IDAtNi40IDIuMS03LjUgNS4zbC0uNCAxLjJjLTQuNCAxMi41LTE4LjIgMTktMzAuNiAxNC42cy0xOS0xOC4yLTE0LjYtMzAuNmwuNC0xLjJ6TTIyNCAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlUmFkaWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA2NGExOTIgMTkyIDAgMSAxIDAgMzg0IDE5MiAxOTIgMCAxIDEgMC0zODR6bTAgNDQ4QTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjAwIDI1NmMwLTIwLjcgMTEuMy0zOC44IDI4LTQ4LjVsLTM2LTYyLjNjLTguOC0xNS4zLTI4LjctMjAuOC00Mi05Yy0yNS42IDIyLjYtNDMuOSA1My4zLTUwLjkgODguMUM5NS43IDI0MS41IDExMC4zIDI1NiAxMjggMjU2bDcyIDB6bTI4IDQ4LjVsLTM2IDYyLjRjLTguOCAxNS4zLTMuNiAzNS4yIDEzLjEgNDAuOGMxNiA1LjQgMzMuMSA4LjMgNTAuOSA4LjNzMzQuOS0yLjkgNTAuOS04LjNjMTYuNy01LjYgMjEuOS0yNS41IDEzLjEtNDAuOGwtMzYtNjIuNGMtOC4yIDQuOC0xNy44IDcuNS0yOCA3LjVzLTE5LjgtMi43LTI4LTcuNXpNMzEyIDI1Nmw3MiAwYzE3LjcgMCAzMi4zLTE0LjUgMjguOC0zMS44Yy03LTM0LjgtMjUuMy02NS41LTUwLjktODguMWMtMTMuMi0xMS43LTMzLjEtNi4zLTQyIDlsLTM2IDYyLjNjMTYuNyA5LjcgMjggMjcuOCAyOCA0OC41em0tNTYgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwQTI1NiAyNTYgMCAxIDAgMCAyNTZ6TTI5NC42IDEzNS4xbDk5LjkgMTA3LjFjMy41IDMuOCA1LjUgOC43IDUuNSAxMy44cy0yIDEwLjEtNS41IDEzLjhMMjk0LjYgMzc2LjljLTQuMiA0LjUtMTAuMSA3LjEtMTYuMyA3LjFDMjY2IDM4NCAyNTYgMzc0IDI1NiAzNjEuN2wwLTU3LjctOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDAtNTcuN2MwLTEyLjMgMTAtMjIuMyAyMi4zLTIyLjNjNi4yIDAgMTIuMSAyLjYgMTYuMyA3LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpcmNsZVN0b3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE5MiAxNjBIMzIwYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjMyMGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEzNS4xIDIxNy40bDEwNy4xLTk5LjljMy44LTMuNSA4LjctNS41IDEzLjgtNS41czEwLjEgMiAxMy44IDUuNWwxMDcuMSA5OS45YzQuNSA0LjIgNy4xIDEwLjEgNy4xIDE2LjNjMCAxMi4zLTEwIDIyLjMtMjIuMyAyMi4zSDMwNHY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkgyNDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjI1NkgxNTAuM0MxMzggMjU2IDEyOCAyNDYgMTI4IDIzMy43YzAtNi4yIDIuNi0xMi4xIDcuMS0xNi4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVVc2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM5OSAzODQuMkMzNzYuOSAzNDUuOCAzMzUuNCAzMjAgMjg4IDMyMEgyMjRjLTQ3LjQgMC04OC45IDI1LjgtMTExIDY0LjJjMzUuMiAzOS4yIDg2LjIgNjMuOCAxNDMgNjMuOHMxMDcuOC0yNC43IDE0My02My44ek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTI1NiAxNmE3MiA3MiAwIDEgMCAwLTE0NCA3MiA3MiAwIDEgMCAwIDE0NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlWG1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NSAxNzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNDcgNDcgNDctNDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC00NyA0NyA0NyA0N2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Ny00Ny00NyA0N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0Ny00Ny00Ny00N2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2l0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAgNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhIMzM2Yy0yNi41IDAtNDggMjEuNS00OCA0OFY5NkgyMjRWMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRWOTZIMTEyVjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0UzY0IDEwLjcgNjQgMjRWOTZINDhDMjEuNSA5NiAwIDExNy41IDAgMTQ0djk2VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OEgzMDRoMzIgOTZINTkyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjI0MGMwLTI2LjUtMjEuNS00OC00OC00OEg0ODBWNDh6bTk2IDMyMHYzMmMwIDguOC03LjIgMTYtMTYgMTZINTI4Yy04LjggMC0xNi03LjItMTYtMTZWMzY4YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ6TTI0MCA0MTZIMjA4Yy04LjggMC0xNi03LjItMTYtMTZWMzY4YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2ek0xMjggNDAwYzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjM2OGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyek01NjAgMjU2YzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZINTI4Yy04LjggMC0xNi03LjItMTYtMTZWMjcyYzAtOC44IDcuMi0xNiAxNi0xNmgzMnpNMjU2IDE3NnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMjA4Yy04LjggMC0xNi03LjItMTYtMTZWMTc2YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ6TTExMiAxNjBjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjE3NmMwLTguOCA3LjItMTYgMTYtMTZoMzJ6TTI1NiAzMDRjMCA4LjgtNy4yIDE2LTE2IDE2SDIwOGMtOC44IDAtMTYtNy4yLTE2LTE2VjI3MmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyek0xMTIgMzIwSDgwYy04LjggMC0xNi03LjItMTYtMTZWMjcyYzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2em0zMDQtNDh2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDM2OGMtOC44IDAtMTYtNy4yLTE2LTE2VjI3MmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2ek00MDAgNjRjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgzNjhjLTguOCAwLTE2LTcuMi0xNi0xNlY4MGMwLTguOCA3LjItMTYgMTYtMTZoMzJ6bTE2IDExMnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMzY4Yy04LjggMC0xNi03LjItMTYtMTZWMTc2YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsYXBwZXJib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMzJIMzYxLjlsLTEgMS0xMjcgMTI3aDkyLjFsMS0xTDQ1My44IDMyLjNjLTEuOS0uMi0zLjgtLjMtNS44LS4zem02NCAxMjhWOTZjMC0xNS4xLTUuMy0yOS4xLTE0LTQwbC0xMDQgMTA0SDUxMnpNMjk0LjEgMzJIMjAxLjlsLTEgMUw3My45IDE2MGg5Mi4xbDEtMSAxMjctMTI3ek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2djY0SDYuMWwxLTEgMTI3LTEyN0g2NHpNNTEyIDE5MkgwVjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbGlwYm9hcmRDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMGMtNDEuOCAwLTc3LjQgMjYuNy05MC41IDY0SDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0SDI4Mi41QzI2OS40IDI2LjcgMjMzLjggMCAxOTIgMHptMCA2NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTMwNSAyNzNMMTc3IDQwMWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMNzkgMzM3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNDcgNDdMMjcxIDIzOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsaXBib2FyZExpc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDBjLTQxLjggMC03Ny40IDI2LjctOTAuNSA2NEg2NEMyOC43IDY0IDAgOTIuNyAwIDEyOFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOGMwLTM1LjMtMjguNy02NC02NC02NEgyODIuNUMyNjkuNCAyNi43IDIzMy44IDAgMTkyIDB6bTAgNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek03MiAyNzJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTA0LTE2SDMwNGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6TTcyIDM2OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem04OCAwYzAtOC44IDcuMi0xNiAxNi0xNkgzMDRjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMTc2Yy04LjggMC0xNi03LjItMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsaXBib2FyZFF1ZXN0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiAwYy00MS44IDAtNzcuNCAyNi43LTkwLjUgNjRINjRDMjguNyA2NCAwIDkyLjcgMCAxMjhWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRIMjgyLjVDMjY5LjQgMjYuNyAyMzMuOCAwIDE5MiAwem0wIDY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMTA1LjggMjI5LjNjNy45LTIyLjMgMjkuMS0zNy4zIDUyLjgtMzcuM2g1OC4zYzM0LjkgMCA2My4xIDI4LjMgNjMuMSA2My4xYzAgMjIuNi0xMi4xIDQzLjUtMzEuNyA1NC44TDIxNiAzMjguNGMtLjIgMTMtMTAuOSAyMy42LTI0IDIzLjZjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjMxNC41YzAtOC42IDQuNi0xNi41IDEyLjEtMjAuOGw0NC4zLTI1LjRjNC43LTIuNyA3LjYtNy43IDcuNi0xMy4xYzAtOC40LTYuOC0xNS4xLTE1LjEtMTUuMUgxNTguNmMtMy40IDAtNi40IDIuMS03LjUgNS4zbC0uNCAxLjJjLTQuNCAxMi41LTE4LjIgMTktMzAuNiAxNC42cy0xOS0xOC4yLTE0LjYtMzAuNmwuNC0xLjJ6TTE2MCA0MTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xpcGJvYXJkVXNlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMGMtNDEuOCAwLTc3LjQgMjYuNy05MC41IDY0SDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0SDI4Mi41QzI2OS40IDI2LjcgMjMzLjggMCAxOTIgMHptMCA2NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTEyOCAyNTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek04MCA0MzJjMC00NC4yIDM1LjgtODAgODAtODBoNjRjNDQuMiAwIDgwIDM1LjggODAgODBjMCA4LjgtNy4yIDE2LTE2IDE2SDk2Yy04LjggMC0xNi03LjItMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsaXBib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMGMtNDEuOCAwLTc3LjQgMjYuNy05MC41IDY0SDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0SDI4Mi41QzI2OS40IDI2LjcgMjMzLjggMCAxOTIgMHptMCA2NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTExMiAxOTJIMjcyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDExMmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvY2tSb3RhdGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTc1IDc1TDQxIDQxQzI1LjkgMjUuOSAwIDM2LjYgMCA1Ny45VjE2OGMwIDEzLjMgMTAuNyAyNCAyNCAyNEgxMzQuMWMyMS40IDAgMzIuMS0yNS45IDE3LTQxbC0zMC44LTMwLjhDMTU1IDg1LjUgMjAzIDY0IDI1NiA2NGMxMDYgMCAxOTIgODYgMTkyIDE5MnMtODYgMTkyLTE5MiAxOTJjLTQwLjggMC03OC42LTEyLjctMTA5LjctMzQuNGMtMTQuNS0xMC4xLTM0LjQtNi42LTQ0LjYgNy45cy02LjYgMzQuNCA3LjkgNDQuNkMxNTEuMiA0OTUgMjAxLjcgNTEyIDI1NiA1MTJjMTQxLjQgMCAyNTYtMTE0LjYgMjU2LTI1NlMzOTcuNCAwIDI1NiAwQzE4NS4zIDAgMTIxLjMgMjguNyA3NSA3NXptMTgxIDUzYy0xMy4zIDAtMjQgMTAuNy0yNCAyNFYyNTZjMCA2LjQgMi41IDEyLjUgNyAxN2w3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTY1LTY1VjE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDBhMjU2IDI1NiAwIDEgMSAwIDUxMkEyNTYgMjU2IDAgMSAxIDI1NiAwek0yMzIgMTIwVjI1NmMwIDggNCAxNS41IDEwLjcgMjBsOTYgNjRjMTEgNy40IDI1LjkgNC40IDMzLjMtNi43czQuNC0yNS45LTYuNy0zMy4zTDI4MCAyNDMuMlYxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCA0NDhINjRWMjI0aDY0VjE2MEg2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDI4OGMzNS4zIDAgNjQtMjguNyA2NC02NFYzODRIMjg4djY0em0tNjQtOTZINDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDIyNGMtMzUuMyAwLTY0IDI4LjctNjQgNjRWMjg4YzAgMzUuMyAyOC43IDY0IDY0IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG9zZWRDYXB0aW9uaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJINTEyYzM1LjMgMCA2NCAyOC43IDY0IDY0VjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWOTZ6TTIwMCAyMDhjMTQuMiAwIDI3IDYuMSAzNS44IDE2YzguOCA5LjkgMjQgMTAuNyAzMy45IDEuOXMxMC43LTI0IDEuOS0zMy45Yy0xNy41LTE5LjYtNDMuMS0zMi03MS41LTMyYy01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2YzI4LjQgMCA1NC0xMi40IDcxLjUtMzJjOC44LTkuOSA4LTI1LTEuOS0zMy45cy0yNS04LTMzLjkgMS45Yy04LjggOS45LTIxLjYgMTYtMzUuOCAxNmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OHptMTQ0IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4YzE0LjIgMCAyNyA2LjEgMzUuOCAxNmM4LjggOS45IDI0IDEwLjcgMzMuOSAxLjlzMTAuNy0yNCAxLjktMzMuOWMtMTcuNS0xOS42LTQzLjEtMzItNzEuNS0zMmMtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmMyOC40IDAgNTQtMTIuNCA3MS41LTMyYzguOC05LjkgOC0yNS0xLjktMzMuOXMtMjUtOC0zMy45IDEuOWMtOC44IDkuOS0yMS42IDE2LTM1LjggMTZjLTI2LjUgMC00OC0yMS41LTQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZEFycm93RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQgNDgwQzY0LjUgNDgwIDAgNDE1LjUgMCAzMzZjMC02Mi44IDQwLjItMTE2LjIgOTYuMi0xMzUuOWMtLjEtMi43LS4yLTUuNC0uMi04LjFjMC04OC40IDcxLjYtMTYwIDE2MC0xNjBjNTkuMyAwIDExMSAzMi4yIDEzOC43IDgwLjJDNDA5LjkgMTAyIDQyOC4zIDk2IDQ0OCA5NmM1MyAwIDk2IDQzIDk2IDk2YzAgMTIuMi0yLjMgMjMuOC02LjQgMzQuNkM1OTYgMjM4LjQgNjQwIDI5MC4xIDY0MCAzNTJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhIMTQ0em03OS0xNjdsODAgODBjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsODAtODBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMzkgMzlWMTg0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0VjMxOC4xbC0zOS0zOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRBcnJvd1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NCA0ODBDNjQuNSA0ODAgMCA0MTUuNSAwIDMzNmMwLTYyLjggNDAuMi0xMTYuMiA5Ni4yLTEzNS45Yy0uMS0yLjctLjItNS40LS4yLTguMWMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MGM1OS4zIDAgMTExIDMyLjIgMTM4LjcgODAuMkM0MDkuOSAxMDIgNDI4LjMgOTYgNDQ4IDk2YzUzIDAgOTYgNDMgOTYgOTZjMCAxMi4yLTIuMyAyMy44LTYuNCAzNC42QzU5NiAyMzguNCA2NDAgMjkwLjEgNjQwIDM1MmMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOEgxNDR6bTc5LTIxN2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDM5LTM5VjM5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjI1Ny45bDM5IDM5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtODAtODBjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC04MCA4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRCb2x0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjI0YzAgNTMgNDMgOTYgOTYgOTZoNDcuMkwyOTAgMjAyLjVjMTcuNi0xNC4xIDQyLjYtMTQgNjAuMiAuMnMyMi44IDM4LjYgMTIuOCA1OC44TDMzMy43IDMyMEgzNTJoNjRjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZjLS41IDAtMS4xIDAtMS42IDBjMS4xLTUuMiAxLjYtMTAuNSAxLjYtMTZjMC00NC4yLTM1LjgtODAtODAtODBjLTI0LjMgMC00Ni4xIDEwLjktNjAuOCAyOEMyNTYuNSAyNC4zIDIxOS4xIDAgMTc2IDBDMTE0LjEgMCA2NCA1MC4xIDY0IDExMmMwIDcuMSAuNyAxNC4xIDEuOSAyMC44QzI3LjYgMTQ1LjQgMCAxODEuNSAwIDIyNHptMzMwLjEgMy42Yy01LjgtNC43LTE0LjItNC43LTIwLjEtLjFsLTE2MCAxMjhjLTUuMyA0LjItNy40IDExLjQtNS4xIDE3LjhzOC4zIDEwLjcgMTUuMSAxMC43aDcwLjFMMTc3LjcgNDg4LjhjLTMuNCA2LjctMS42IDE0LjkgNC4zIDE5LjZzMTQuMiA0LjcgMjAuMSAuMWwxNjAtMTI4YzUuMy00LjIgNy40LTExLjQgNS4xLTE3LjhzLTguMy0xMC43LTE1LjEtMTAuN0gyODEuOWw1Mi40LTEwNC44YzMuNC02LjcgMS42LTE0LjktNC4yLTE5LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkTWVhdGJhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyMjRjMCA1MyA0MyA5NiA5NiA5Nmg0NC43YzkuNS0yMy41IDMyLjUtNDAgNTkuMy00MGMyIDAgMy45IC4xIDUuOCAuM0MyMTcuNiAyNjUuNSAyMzUuNyAyNTYgMjU2IDI1NnMzOC40IDkuNSA1MC4yIDI0LjNjMS45LS4yIDMuOS0uMyA1LjgtLjNjMjYuOSAwIDQ5LjkgMTYuNSA1OS4zIDQwSDQxNmM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmMtLjUgMC0xLjEgMC0xLjYgMGMxLjEtNS4yIDEuNi0xMC41IDEuNi0xNmMwLTQ0LjItMzUuOC04MC04MC04MGMtMjQuMyAwLTQ2LjEgMTAuOS02MC44IDI4QzI1Ni41IDI0LjMgMjE5LjEgMCAxNzYgMEMxMTQuMSAwIDY0IDUwLjEgNjQgMTEyYzAgNy4xIC43IDE0LjEgMS45IDIwLjhDMjcuNiAxNDUuNCAwIDE4MS41IDAgMjI0em0yODggOTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJjMCAxIC4xIDIuMSAuMSAzLjFjLS43LS44LTEuNC0xLjYtMi4xLTIuM2MtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNjLjcgLjcgMS41IDEuNCAyLjMgMi4xYy0xLS4xLTIuMS0uMS0zLjEtLjFjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJjMSAwIDIuMS0uMSAzLjEtLjFjLS44IC43LTEuNiAxLjMtMi4zIDIuMWMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGMuNy0uNyAxLjQtMS41IDIuMS0yLjNjLS4xIDEtLjEgMi4xLS4xIDMuMWMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtMS0uMS0yLjEtLjEtMy4xYy43IC44IDEuMyAxLjYgMi4xIDIuM2MxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zYy0uNy0uNy0xLjUtMS40LTIuMy0yLjFjMSAuMSAyLjEgLjEgMy4xIC4xYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyYy0xIDAtMi4xIC4xLTMuMSAuMWMuOC0uNyAxLjYtMS4zIDIuMy0yLjFjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBjLS43IC43LTEuNCAxLjUtMi4xIDIuM2MuMS0xIC4xLTIuMSAuMS0zLjF6TTQ4IDQ0OGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTQxNiAwYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRNb29uUmFpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODEuMiAwQzQxNyAwIDM2My41IDQ2LjUgMzUzLjcgMTA3LjZjMzUuNCAxNy42IDYwLjIgNTMuMyA2Mi4xIDk1LjFjMjMuMiAxMSA0MiAyOS43IDUzLjEgNTIuN2M0IC40IDguMSAuNiAxMi4zIC42YzM0LjkgMCA2Ni43LTEzLjggODkuOS0zNi4xYzUuMS00LjkgNi40LTEyLjUgMy4yLTE4LjdzLTEwLjEtOS43LTE3LTguNmMtNC45IC44LTEwIDEuMy0xNS4yIDEuM2MtNDkgMC04OC40LTM5LjMtODguNC04Ny40YzAtMzIuNiAxOC02MS4xIDQ0LjktNzYuMWM2LjEtMy40IDkuMy0xMC41IDcuOC0xNy40cy03LjMtMTItMTQuMy0xMi42Yy0zLjYtLjMtNy4zLS41LTEwLjktLjV6TTM2Ny45IDM4My45YzQ0LjIgMCA4MC0zNS44IDgwLTgwYzAtMzkuMy0yOC40LTcyLjEtNjUuOC03OC43YzEuMi01LjYgMS45LTExLjMgMS45LTE3LjJjMC00NC4yLTM1LjgtODAtODAtODBjLTE3IDAtMzIuOCA1LjMtNDUuOCAxNC40QzI0MS4zIDExNC42IDIxMC44IDk2IDE3NiA5NmMtNTMgMC05NiA0My05NiA5NmwwIDEuM2MtNDUuNCA3LjYtODAgNDcuMS04MCA5NC42YzAgNTMgNDMgOTYgOTYgOTZIMzY3Ljl6TTg1LjQgNDIwLjFjLTExLTcuNC0yNS45LTQuNC0zMy4zIDYuN2wtMzIgNDhjLTcuNCAxMS00LjQgMjUuOSA2LjcgMzMuM3MyNS45IDQuNCAzMy4zLTYuN2wzMi00OGM3LjQtMTEgNC40LTI1LjktNi43LTMzLjN6bTk2IDBjLTExLTcuNC0yNS45LTQuNC0zMy4zIDYuN2wtMzIgNDhjLTcuNCAxMS00LjQgMjUuOSA2LjcgMzMuM3MyNS45IDQuNCAzMy4zLTYuN2wzMi00OGM3LjQtMTEgNC40LTI1LjktNi43LTMzLjN6bTk2IDBjLTExLTcuNC0yNS45LTQuNC0zMy4zIDYuN2wtMzIgNDhjLTcuNCAxMS00LjQgMjUuOSA2LjcgMzMuM3MyNS45IDQuNCAzMy4zLTYuN2wzMi00OGM3LjQtMTEgNC40LTI1LjktNi43LTMzLjN6bTk2IDBjLTExLTcuNC0yNS45LTQuNC0zMy4zIDYuN2wtMzIgNDhjLTcuNCAxMS00LjQgMjUuOSA2LjcgMzMuM3MyNS45IDQuNCAzMy4zLTYuN2wzMi00OGM3LjQtMTEgNC40LTI1LjktNi43LTMzLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkTW9vbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTUuOCAwYzUuNSAwIDEwLjkgLjIgMTYuMyAuN2M3IC42IDEyLjggNS43IDE0LjMgMTIuNXMtMS42IDEzLjktNy43IDE3LjNjLTQ0LjQgMjUuMi03NC40IDczLTc0LjQgMTI3LjhjMCA4MSA2NS41IDE0Ni42IDE0Ni4yIDE0Ni42YzguNiAwIDE3LS43IDI1LjEtMi4xYzYuOS0xLjIgMTMuOCAyLjIgMTcgOC41czEuOSAxMy44LTMuMSAxOC43Yy0zNC41IDMzLjYtODEuNyA1NC40LTEzMy42IDU0LjRjLTkuMyAwLTE4LjQtLjctMjcuNC0xLjljLTExLjItMjIuNi0yOS44LTQwLjktNTIuNi01MS43Yy0yLjctNTguNS01MC4zLTEwNS4zLTEwOS4yLTEwNi43Yy0xLjctMTAuNC0yLjYtMjEtMi42LTMxLjhDMzA0IDg2LjEgMzg5LjggMCA0OTUuOCAwek00NDcuOSA0MzEuOWMwIDQ0LjItMzUuOCA4MC04MCA4MEg5NmMtNTMgMC05Ni00My05Ni05NmMwLTQ3LjYgMzQuNi04NyA4MC05NC42bDAtMS4zYzAtNTMgNDMtOTYgOTYtOTZjMzQuOSAwIDY1LjQgMTguNiA4Mi4yIDQ2LjRjMTMtOS4xIDI4LjgtMTQuNCA0NS44LTE0LjRjNDQuMiAwIDgwIDM1LjggODAgODBjMCA1LjktLjYgMTEuNy0xLjkgMTcuMmMzNy40IDYuNyA2NS44IDM5LjQgNjUuOCA3OC43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZFJhaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMzIwYy01MyAwLTk2LTQzLTk2LTk2YzAtNDIuNSAyNy42LTc4LjYgNjUuOS05MS4yQzY0LjcgMTI2LjEgNjQgMTE5LjEgNjQgMTEyQzY0IDUwLjEgMTE0LjEgMCAxNzYgMGM0My4xIDAgODAuNSAyNC4zIDk5LjIgNjBjMTQuNy0xNy4xIDM2LjUtMjggNjAuOC0yOGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDUuNS0uNiAxMC44LTEuNiAxNmMuNSAwIDEuMSAwIDEuNiAwYzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2SDk2em0tNi44IDUyYzEuMy0yLjUgMy45LTQgNi44LTRzNS40IDEuNSA2LjggNGwzNS4xIDY0LjZjNC4xIDcuNSA2LjIgMTUuOCA2LjIgMjQuM3YzYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4di0zYzAtOC41IDIuMS0xNi45IDYuMi0yNC4zTDg5LjIgMzcyem0xNjAgMGMxLjMtMi41IDMuOS00IDYuOC00czUuNCAxLjUgNi44IDRsMzUuMSA2NC42YzQuMSA3LjUgNi4yIDE1LjggNi4yIDI0LjN2M2MwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OHYtM2MwLTguNSAyLjEtMTYuOSA2LjItMjQuM0wyNDkuMiAzNzJ6bTEyNC45IDY0LjZMNDA5LjIgMzcyYzEuMy0yLjUgMy45LTQgNi44LTRzNS40IDEuNSA2LjggNGwzNS4xIDY0LjZjNC4xIDcuNSA2LjIgMTUuOCA2LjIgMjQuM3YzYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4di0zYzAtOC41IDIuMS0xNi45IDYuMi0yNC4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZFNob3dlcnNIZWF2eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAzMjBjLTUzIDAtOTYtNDMtOTYtOTZjMC00Mi41IDI3LjYtNzguNiA2NS45LTkxLjJDNjQuNyAxMjYuMSA2NCAxMTkuMSA2NCAxMTJDNjQgNTAuMSAxMTQuMSAwIDE3NiAwYzQzLjEgMCA4MC41IDI0LjMgOTkuMiA2MGMxNC43LTE3LjEgMzYuNS0yOCA2MC44LTI4YzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgNS41LS42IDEwLjgtMS42IDE2Yy41IDAgMS4xIDAgMS42IDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZIOTZ6TTgxLjUgMzUzLjljMTIuMiA1LjIgMTcuOCAxOS4zIDEyLjYgMzEuNWwtNDggMTEyYy01LjIgMTIuMi0xOS4zIDE3LjgtMzEuNSAxMi42Uy0zLjMgNDkwLjcgMS45IDQ3OC41bDQ4LTExMmM1LjItMTIuMiAxOS4zLTE3LjggMzEuNS0xMi42em0xMjAgMGMxMi4yIDUuMiAxNy44IDE5LjMgMTIuNiAzMS41bC00OCAxMTJjLTUuMiAxMi4yLTE5LjMgMTcuOC0zMS41IDEyLjZzLTE3LjgtMTkuMy0xMi42LTMxLjVsNDgtMTEyYzUuMi0xMi4yIDE5LjMtMTcuOCAzMS41LTEyLjZ6bTI0NC42IDMxLjVsLTQ4IDExMmMtNS4yIDEyLjItMTkuMyAxNy44LTMxLjUgMTIuNnMtMTcuOC0xOS4zLTEyLjYtMzEuNWw0OC0xMTJjNS4yLTEyLjIgMTkuMy0xNy44IDMxLjUtMTIuNnMxNy44IDE5LjMgMTIuNiAzMS41ek0zMTMuNSAzNTMuOWMxMi4yIDUuMiAxNy44IDE5LjMgMTIuNiAzMS41bC00OCAxMTJjLTUuMiAxMi4yLTE5LjMgMTcuOC0zMS41IDEyLjZzLTE3LjgtMTkuMy0xMi42LTMxLjVsNDgtMTEyYzUuMi0xMi4yIDE5LjMtMTcuOCAzMS41LTEyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkU2hvd2Vyc1dhdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAwYzM4LjYgMCA3MS45IDIyLjggODcuMiA1NS43QzMyNS43IDQxLjEgMzQ1LjggMzIgMzY4IDMyYzM4LjcgMCA3MSAyNy41IDc4LjQgNjRINDQ4YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0SDEyOGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGMwLTUzIDQzLTk2IDk2LTk2ek0xNDAuNiAyOTIuM2wtNDggODBjLTYuOCAxMS40LTIxLjYgMTUtMzIuOSA4LjJzLTE1LjEtMjEuNi04LjItMzIuOWw0OC04MGM2LjgtMTEuNCAyMS42LTE1LjEgMzIuOS04LjJzMTUuMSAyMS42IDguMiAzMi45em0zMjcuOC0zMi45YzExLjQgNi44IDE1IDIxLjYgOC4yIDMyLjlsLTQ4IDgwYy02LjggMTEuNC0yMS42IDE1LTMyLjkgOC4ycy0xNS0yMS42LTguMi0zMi45bDQ4LTgwYzYuOC0xMS40IDIxLjYtMTUuMSAzMi45LTguMnpNMjUyLjYgMjkyLjNsLTQ4IDgwYy02LjggMTEuNC0yMS42IDE1LTMyLjkgOC4ycy0xNS4xLTIxLjYtOC4yLTMyLjlsNDgtODBjNi44LTExLjQgMjEuNi0xNS4xIDMyLjktOC4yczE1LjEgMjEuNiA4LjIgMzIuOXptMTAzLjgtMzIuOWMxMS40IDYuOCAxNSAyMS42IDguMiAzMi45bC00OCA4MGMtNi44IDExLjQtMjEuNiAxNS0zMi45IDguMnMtMTUuMS0yMS42LTguMi0zMi45bDQ4LTgwYzYuOC0xMS40IDIxLjYtMTUuMSAzMi45LTguMnpNMzA2LjUgNDIxLjlDMzI5IDQzNy40IDM1Ni41IDQ0OCAzODQgNDQ4YzI2LjkgMCA1NS40LTEwLjggNzcuNC0yNi4xbDAgMGMxMS45LTguNSAyOC4xLTcuOCAzOS4yIDEuN2MxNC40IDExLjkgMzIuNSAyMSA1MC42IDI1LjJjMTcuMiA0IDI3LjkgMjEuMiAyMy45IDM4LjRzLTIxLjIgMjcuOS0zOC40IDIzLjljLTI0LjUtNS43LTQ0LjktMTYuNS01OC4yLTI1QzQ0OS41IDUwMS43IDQxNyA1MTIgMzg0IDUxMmMtMzEuOSAwLTYwLjYtOS45LTgwLjQtMTguOWMtNS44LTIuNy0xMS4xLTUuMy0xNS42LTcuN2MtNC41IDIuNC05LjcgNS4xLTE1LjYgNy43Yy0xOS44IDktNDguNSAxOC45LTgwLjQgMTguOWMtMzMgMC02NS41LTEwLjMtOTQuNS0yNS44Yy0xMy40IDguNC0zMy43IDE5LjMtNTguMiAyNWMtMTcuMiA0LTM0LjQtNi43LTM4LjQtMjMuOXM2LjctMzQuNCAyMy45LTM4LjRjMTguMS00LjIgMzYuMi0xMy4zIDUwLjYtMjUuMmMxMS4xLTkuNCAyNy4zLTEwLjEgMzkuMi0xLjdsMCAwQzEzNi43IDQzNy4yIDE2NS4xIDQ0OCAxOTIgNDQ4YzI3LjUgMCA1NS0xMC42IDc3LjUtMjYuMWMxMS4xLTcuOSAyNS45LTcuOSAzNyAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZFN1blJhaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk0LjIgMS4yYzUuMSAyLjEgOC43IDYuNyA5LjYgMTIuMWwxMC40IDYyLjRjLTIzLjMgMTAuOC00Mi45IDI4LjQtNTYgNTAuM2MtMTQuNi05LTMxLjgtMTQuMS01MC4yLTE0LjFjLTUzIDAtOTYgNDMtOTYgOTZjMCAzNS41IDE5LjMgNjYuNiA0OCA4My4yYy44IDMxLjggMTMuMiA2MC43IDMzLjEgODIuN2wtNTYgMzkuMmMtNC41IDMuMi0xMC4zIDMuOC0xNS40IDEuNnMtOC43LTYuNy05LjYtMTIuMUw5OC4xIDMxNy45IDEzLjQgMzAzLjhjLTUuNC0uOS0xMC00LjUtMTIuMS05LjZzLTEuNS0xMC45IDEuNi0xNS40TDUyLjUgMjA4IDIuOSAxMzcuMmMtMy4yLTQuNS0zLjgtMTAuMy0xLjYtMTUuNHM2LjctOC43IDEyLjEtOS42TDk4LjEgOTguMWwxNC4xLTg0LjdjLjktNS40IDQuNS0xMCA5LjYtMTIuMXMxMC45LTEuNSAxNS40IDEuNkwyMDggNTIuNSAyNzguOCAyLjljNC41LTMuMiAxMC4zLTMuOCAxNS40LTEuNnpNMjA4IDE0NGMxMy44IDAgMjYuNyA0LjQgMzcuMSAxMS45Yy0xLjIgNC4xLTIuMiA4LjMtMyAxMi42Yy0zNy45IDE0LjYtNjcuMiA0Ni42LTc3LjggODYuNEMxNTEuOCAyNDMuMSAxNDQgMjI2LjUgMTQ0IDIwOGMwLTM1LjMgMjguNy02NCA2NC02NHptNjkuNCAyNzZjMTEgNy40IDE0IDIyLjMgNi43IDMzLjNsLTMyIDQ4Yy03LjQgMTEtMjIuMyAxNC0zMy4zIDYuN3MtMTQtMjIuMy02LjctMzMuM2wzMi00OGM3LjQtMTEgMjIuMy0xNCAzMy4zLTYuN3ptOTYgMGMxMSA3LjQgMTQgMjIuMyA2LjcgMzMuM2wtMzIgNDhjLTcuNCAxMS0yMi4zIDE0LTMzLjMgNi43cy0xNC0yMi4zLTYuNy0zMy4zbDMyLTQ4YzcuNC0xMSAyMi4zLTE0IDMzLjMtNi43em05NiAwYzExIDcuNCAxNCAyMi4zIDYuNyAzMy4zbC0zMiA0OGMtNy40IDExLTIyLjMgMTQtMzMuMyA2LjdzLTE0LTIyLjMtNi43LTMzLjNsMzItNDhjNy40LTExIDIyLjMtMTQgMzMuMy02Ljd6bTk2IDBjMTEgNy40IDE0IDIyLjMgNi43IDMzLjNsLTMyIDQ4Yy03LjQgMTEtMjIuMyAxNC0zMy4zIDYuN3MtMTQtMjIuMy02LjctMzMuM2wzMi00OGM3LjQtMTEgMjIuMy0xNCAzMy4zLTYuN3ptNzQuNS0xMTYuMWMwIDQ0LjItMzUuOCA4MC04MCA4MEgyODhjLTUzIDAtOTYtNDMtOTYtOTZjMC00Ny42IDM0LjYtODcgODAtOTQuNmwwLTEuM2MwLTUzIDQzLTk2IDk2LTk2YzM0LjkgMCA2NS40IDE4LjYgODIuMiA0Ni40YzEzLTkuMSAyOC44LTE0LjQgNDUuOC0xNC40YzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgNS45LS42IDExLjctMS45IDE3LjJjMzcuNCA2LjcgNjUuOCAzOS40IDY1LjggNzguN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRTdW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk0LjIgMS4yYzUuMSAyLjEgOC43IDYuNyA5LjYgMTIuMWwxNC4xIDg0LjcgODQuNyAxNC4xYzUuNCAuOSAxMCA0LjUgMTIuMSA5LjZzMS41IDEwLjktMS42IDE1LjRsLTM4LjUgNTVjLTIuMi0uMS00LjQtLjItNi43LS4yYy0yMy4zIDAtNDUuMSA2LjItNjQgMTcuMWwwLTEuMWMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NnM0MyA5NiA5NiA5NmM4LjEgMCAxNS45LTEgMjMuNC0yLjljLTM2LjYgMTguMS02My4zIDUzLjEtNjkuOCA5NC45bC0yNC40IDE3Yy00LjUgMy4xLTEwLjMgMy44LTE1LjQgMS42cy04LjctNi43LTkuNi0xMi4xTDk4LjEgMzE3LjkgMTMuNCAzMDMuOGMtNS40LS45LTEwLTQuNS0xMi4xLTkuNnMtMS41LTEwLjkgMS42LTE1LjRMNTIuNSAyMDggMi45IDEzNy4yYy0zLjItNC41LTMuOC0xMC4zLTEuNi0xNS40czYuNy04LjcgMTIuMS05LjZMOTguMSA5OC4xbDE0LjEtODQuN2MuOS01LjQgNC41LTEwIDkuNi0xMi4xczEwLjktMS41IDE1LjQgMS42TDIwOCA1Mi41IDI3OC44IDIuOWM0LjUtMy4yIDEwLjMtMy44IDE1LjQtMS42ek0xNDQgMjA4YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNNjM5LjkgNDMxLjljMCA0NC4yLTM1LjggODAtODAgODBIMjg4Yy01MyAwLTk2LTQzLTk2LTk2YzAtNDcuNiAzNC42LTg3IDgwLTk0LjZsMC0xLjNjMC01MyA0My05NiA5Ni05NmMzNC45IDAgNjUuNCAxOC42IDgyLjIgNDYuNGMxMy05LjEgMjguOC0xNC40IDQ1LjgtMTQuNGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDUuOS0uNiAxMS43LTEuOSAxNy4yYzM3LjQgNi43IDY1LjggMzkuNCA2NS44IDc4Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzM2YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0SDUxMmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGMwLTYxLjktNDQtMTEzLjYtMTAyLjQtMTI1LjRjNC4xLTEwLjcgNi40LTIyLjQgNi40LTM0LjZjMC01My00My05Ni05Ni05NmMtMTkuNyAwLTM4LjEgNi01My4zIDE2LjJDMzY3IDY0LjIgMzE1LjMgMzIgMjU2IDMyQzE2Ny42IDMyIDk2IDEwMy42IDk2IDE5MmMwIDIuNyAuMSA1LjQgLjIgOC4xQzQwLjIgMjE5LjggMCAyNzMuMiAwIDMzNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNi42IDQ5LjlDMjA1LjEgMzguNSAxODkuNSAzMiAxNzMuMyAzMkMxMzkuNCAzMiAxMTIgNTkuNCAxMTIgOTMuM3Y0LjljMCAxMiAzLjMgMjMuNyA5LjQgMzRsMTguOCAzMS4zYzEuMSAxLjggMS4yIDMuMSAxIDQuMmMtLjIgMS4yLS44IDIuNS0yIDMuNnMtMi40IDEuOC0zLjYgMmMtMSAuMi0yLjQgLjEtNC4yLTFsLTMxLjMtMTguOGMtMTAuMy02LjItMjItOS40LTM0LTkuNEg2MS4zQzI3LjQgMTQ0IDAgMTcxLjQgMCAyMDUuM2MwIDE2LjIgNi41IDMxLjggMTcuOSA0My4zbDEuMiAxLjJjMy40IDMuNCAzLjQgOSAwIDEyLjRsLTEuMiAxLjJDNi41IDI3NC45IDAgMjkwLjUgMCAzMDYuN0MwIDM0MC42IDI3LjQgMzY4IDYxLjMgMzY4aDQuOWMxMiAwIDIzLjctMy4zIDM0LTkuNGwzMS4zLTE4LjhjMS44LTEuMSAzLjEtMS4yIDQuMi0xYzEuMiAuMiAyLjUgLjggMy42IDJzMS44IDIuNCAyIDMuNmMuMiAxIC4xIDIuNC0xIDQuMmwtMTguOCAzMS4zYy02LjIgMTAuMy05LjQgMjItOS40IDM0djQuOWMwIDMzLjggMjcuNCA2MS4zIDYxLjMgNjEuM2MxNi4yIDAgMzEuOC02LjUgNDMuMy0xNy45bDEuMi0xLjJjMy40LTMuNCA5LTMuNCAxMi40IDBsMS4yIDEuMmMxMS41IDExLjUgMjcuMSAxNy45IDQzLjMgMTcuOWMzMy44IDAgNjEuMy0yNy40IDYxLjMtNjEuM3YtNC45YzAtMTItMy4zLTIzLjctOS40LTM0bC0xOC44LTMxLjNjLTEuMS0xLjgtMS4yLTMuMS0xLTQuMmMuMi0xLjIgLjgtMi41IDItMy42czIuNC0xLjggMy42LTJjMS0uMiAyLjQtLjEgNC4yIDFsMzEuMyAxOC44YzEwLjMgNi4yIDIyIDkuNCAzNCA5LjRoNC45YzMzLjggMCA2MS4zLTI3LjQgNjEuMy02MS4zYzAtMTYuMi02LjUtMzEuOC0xNy45LTQzLjNsLTEuMi0xLjJjLTMuNC0zLjQtMy40LTkgMC0xMi40bDEuMi0xLjJjMTEuNS0xMS41IDE3LjktMjcuMSAxNy45LTQzLjNjMC0zMy44LTI3LjQtNjEuMy02MS4zLTYxLjNoLTQuOWMtMTIgMC0yMy43IDMuMy0zNCA5LjRsLTMxLjMgMTguOGMtMS44IDEuMS0zLjEgMS4yLTQuMiAxYy0xLjItLjItMi41LS44LTMuNi0ycy0xLjgtMi40LTItMy42Yy0uMi0xLS4xLTIuNCAxLTQuMmwxOC44LTMxLjNjNi4yLTEwLjMgOS40LTIyIDkuNC0zNFY5My4zQzMzNiA1OS40IDMwOC42IDMyIDI3NC43IDMyYy0xNi4yIDAtMzEuOCA2LjUtNDMuMyAxNy45bC0xLjIgMS4yYy0zLjQgMy40LTkgMy40LTEyLjQgMGwtMS4yLTEuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29kZUJyYW5jaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04MCAxMDRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04MC0yNGMwIDMyLjgtMTkuNyA2MS00OCA3My4zdjg3LjhjMTguOC0xMC45IDQwLjctMTcuMSA2NC0xNy4xaDk2YzM1LjMgMCA2NC0yOC43IDY0LTY0di02LjdDMzA3LjcgMTQxIDI4OCAxMTIuOCAyODggODBjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDMyLjgtMTkuNyA2MS00OCA3My4zVjE2MGMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOEgxNzZjLTM1LjMgMC02NCAyOC43LTY0IDY0djYuN2MyOC4zIDEyLjMgNDggNDAuNSA0OCA3My4zYzAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtMzIuOCAxOS43LTYxIDQ4LTczLjNWMzUyIDE1My4zQzE5LjcgMTQxIDAgMTEyLjggMCA4MEMwIDM1LjggMzUuOCAwIDgwIDBzODAgMzUuOCA4MCA4MHptMjMyIDBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNODAgNDU2YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29kZUNvbW1pdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMzM2YTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0xNTYuOC00OEM0NjIgMzYxIDM5Ny40IDQxNiAzMjAgNDE2cy0xNDItNTUtMTU2LjgtMTI4SDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDE2My4yQzE3OCAxNTEgMjQyLjYgOTYgMzIwIDk2czE0MiA1NSAxNTYuOCAxMjhINjA4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDQ3Ni44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb2RlQ29tcGFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgNDg4YzAgOS41LTUuNiAxOC4xLTE0LjIgMjEuOXMtMTguOCAyLjMtMjUuOC00LjFsLTgwLTcyYy01LjEtNC42LTcuOS0xMS03LjktMTcuOHMyLjktMTMuMyA3LjktMTcuOGw4MC03MmM3LTYuMyAxNy4yLTcuOSAyNS44LTQuMXMxNC4yIDEyLjQgMTQuMiAyMS45djQwaDE2YzM1LjMgMCA2NC0yOC43IDY0LTY0VjE1My4zQzM3MS43IDE0MSAzNTIgMTEyLjggMzUyIDgwYzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAzMi44LTE5LjcgNjEtNDggNzMuM1YzMjBjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhIMzIwdjQwek00NTYgODBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMTkyIDI0YzAtOS41IDUuNi0xOC4xIDE0LjItMjEuOXMxOC44LTIuMyAyNS44IDQuMWw4MCA3MmM1LjEgNC42IDcuOSAxMSA3LjkgMTcuOHMtMi45IDEzLjMtNy45IDE3LjhsLTgwIDcyYy03IDYuMy0xNy4yIDcuOS0yNS44IDQuMXMtMTQuMi0xMi40LTE0LjItMjEuOVYxMjhIMTc2Yy0zNS4zIDAtNjQgMjguNy02NCA2NFYzNTguN2MyOC4zIDEyLjMgNDggNDAuNSA0OCA3My4zYzAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtMzIuOCAxOS43LTYxIDQ4LTczLjNWMTkyYzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4aDE2VjI0ek01NiA0MzJhMjQgMjQgMCAxIDAgNDggMCAyNCAyNCAwIDEgMCAtNDggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29kZUZvcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODAgMTA0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODAtMjRjMCAzMi44LTE5LjcgNjEtNDggNzMuM1YxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzA0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE1My4zQzMwNy43IDE0MSAyODggMTEyLjggMjg4IDgwYzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAzMi44LTE5LjcgNjEtNDggNzMuM1YxOTJjMCA1My00MyA5Ni05NiA5NkgyNTZ2NzAuN2MyOC4zIDEyLjMgNDggNDAuNSA0OCA3My4zYzAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtMzIuOCAxOS43LTYxIDQ4LTczLjNWMjg4SDE0NGMtNTMgMC05Ni00My05Ni05NlYxNTMuM0MxOS43IDE0MSAwIDExMi44IDAgODBDMCAzNS44IDM1LjggMCA4MCAwczgwIDM1LjggODAgODB6bTIwOCAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTI0OCA0MzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29kZU1lcmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTgwIDU2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMzIuNCA5Ny4yYzI4LTEyLjQgNDcuNi00MC41IDQ3LjYtNzMuMmMwLTQ0LjItMzUuOC04MC04MC04MFMwIDM1LjggMCA4MGMwIDMyLjggMTkuNyA2MSA0OCA3My4zVjM1OC43QzE5LjcgMzcxIDAgMzk5LjIgMCA0MzJjMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zVjI3MmMyNi43IDIwLjEgNjAgMzIgOTYgMzJoODYuN2MxMi4zIDI4LjMgNDAuNSA0OCA3My4zIDQ4YzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwYy0zMi44IDAtNjEgMTkuNy03My4zIDQ4SDIwOGMtNDkuOSAwLTkxLTM4LjEtOTUuNi04Ni44ek04MCA0MDhhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0zNDQgMjcyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvZGVQdWxsUmVxdWVzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDUuOCAyLjFDMzE0LjQgNS45IDMyMCAxNC41IDMyMCAyNFY2NGgxNmM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOFYzNTguN2MyOC4zIDEyLjMgNDggNDAuNSA0OCA3My4zYzAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtMzIuOCAxOS43LTYxIDQ4LTczLjNWMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0SDMyMHY0MGMwIDkuNS01LjYgMTguMS0xNC4yIDIxLjlzLTE4LjggMi4zLTI1LjgtNC4xbC04MC03MmMtNS4xLTQuNi03LjktMTEtNy45LTE3LjhzMi45LTEzLjMgNy45LTE3LjhsODAtNzJjNy02LjMgMTcuMi03LjkgMjUuOC00LjF6TTEwNCA4MEEyNCAyNCAwIDEgMCA1NiA4MGEyNCAyNCAwIDEgMCA0OCAwem04IDczLjNWMzU4LjdjMjguMyAxMi4zIDQ4IDQwLjUgNDggNzMuM2MwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTMyLjggMTkuNy02MSA0OC03My4zVjE1My4zQzE5LjcgMTQxIDAgMTEyLjggMCA4MEMwIDM1LjggMzUuOCAwIDgwIDBzODAgMzUuOCA4MCA4MGMwIDMyLjgtMTkuNyA2MS00OCA3My4zek0xMDQgNDMyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTMyOCAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzkyLjggMS4yYy0xNy00LjktMzQuNyA1LTM5LjYgMjJsLTEyOCA0NDhjLTQuOSAxNyA1IDM0LjcgMjIgMzkuNnMzNC43LTUgMzkuNi0yMmwxMjgtNDQ4YzQuOS0xNy01LTM0LjctMjItMzkuNnptODAuNiAxMjAuMWMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNMNTYyLjcgMjU2bC04OS40IDg5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTEyLTExMmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTEyLTExMmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDB6bS0zMDYuNyAwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTEyIDExMmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTEyIDExMmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDc3LjMgMjU2bDg5LjQtODkuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29pbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDgwYzAgMTgtMTQuMyAzNC42LTM4LjQgNDhjLTI5LjEgMTYuMS03Mi41IDI3LjUtMTIyLjMgMzAuOWMtMy43LTEuOC03LjQtMy41LTExLjMtNUMzMDAuNiAxMzcuNCAyNDguMiAxMjggMTkyIDEyOGMtOC4zIDAtMTYuNCAuMi0yNC41IC42bC0xLjEtLjZDMTQyLjMgMTE0LjYgMTI4IDk4IDEyOCA4MGMwLTQ0LjIgODYtODAgMTkyLTgwUzUxMiAzNS44IDUxMiA4MHpNMTYwLjcgMTYxLjFjMTAuMi0uNyAyMC43LTEuMSAzMS4zLTEuMWM2Mi4yIDAgMTE3LjQgMTIuMyAxNTIuNSAzMS40QzM2OS4zIDIwNC45IDM4NCAyMjEuNyAzODQgMjQwYzAgNC0uNyA3LjktMi4xIDExLjdjLTQuNiAxMy4yLTE3IDI1LjMtMzUgMzUuNWMwIDAgMCAwIDAgMGMtLjEgLjEtLjMgLjEtLjQgLjJsMCAwIDAgMGMtLjMgLjItLjYgLjMtLjkgLjVjLTM1IDE5LjQtOTAuOCAzMi0xNTMuNiAzMmMtNTkuNiAwLTExMi45LTExLjMtMTQ4LjItMjkuMWMtMS45LS45LTMuNy0xLjktNS41LTIuOUMxNC4zIDI3NC42IDAgMjU4IDAgMjQwYzAtMzQuOCA1My40LTY0LjUgMTI4LTc1LjRjMTAuNS0xLjUgMjEuNC0yLjcgMzIuNy0zLjV6TTQxNiAyNDBjMC0yMS45LTEwLjYtMzkuOS0yNC4xLTUzLjRjMjguMy00LjQgNTQuMi0xMS40IDc2LjItMjAuNWMxNi4zLTYuOCAzMS41LTE1LjIgNDMuOS0yNS41VjE3NmMwIDE5LjMtMTYuNSAzNy4xLTQzLjggNTAuOWMtMTQuNiA3LjQtMzIuNCAxMy43LTUyLjQgMTguNWMuMS0xLjggLjItMy41IC4yLTUuM3ptLTMyIDk2YzAgMTgtMTQuMyAzNC42LTM4LjQgNDhjLTEuOCAxLTMuNiAxLjktNS41IDIuOUMzMDQuOSA0MDQuNyAyNTEuNiA0MTYgMTkyIDQxNmMtNjIuOCAwLTExOC42LTEyLjYtMTUzLjYtMzJDMTQuMyAzNzAuNiAwIDM1NCAwIDMzNlYzMDAuNmMxMi41IDEwLjMgMjcuNiAxOC43IDQzLjkgMjUuNUM4My40IDM0Mi42IDEzNS44IDM1MiAxOTIgMzUyczEwOC42LTkuNCAxNDguMS0yNS45YzcuOC0zLjIgMTUuMy02LjkgMjIuNC0xMC45YzYuMS0zLjQgMTEuOC03LjIgMTcuMi0xMS4yYzEuNS0xLjEgMi45LTIuMyA0LjMtMy40VjMwNHY1LjdWMzM2em0zMiAwVjMwNCAyNzguMWMxOS00LjIgMzYuNS05LjUgNTIuMS0xNmMxNi4zLTYuOCAzMS41LTE1LjIgNDMuOS0yNS41VjI3MmMwIDEwLjUtNSAyMS0xNC45IDMwLjljLTE2LjMgMTYuMy00NSAyOS43LTgxLjMgMzguNGMuMS0xLjcgLjItMy41IC4yLTUuM3pNMTkyIDQ0OGM1Ni4yIDAgMTA4LjYtOS40IDE0OC4xLTI1LjljMTYuMy02LjggMzEuNS0xNS4yIDQzLjktMjUuNVY0MzJjMCA0NC4yLTg2IDgwLTE5MiA4MFMwIDQ3Ni4yIDAgNDMyVjM5Ni42YzEyLjUgMTAuMyAyNy42IDE4LjcgNDMuOSAyNS41QzgzLjQgNDM4LjYgMTM1LjggNDQ4IDE5MiA0NDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbG9uU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTUgMzkuOGM0LjMtMTcuMS02LjEtMzQuNS0yMy4zLTM4LjhTMTk3LjIgNy4xIDE5MyAyNC4yTDE4MS45IDY4LjZDOTYuMSA4Ny44IDMyIDE2NC40IDMyIDI1NmMwIDU4LjEgMjUuOCAxMTAuMiA2Ni43IDE0NS40TDgxIDQ3Mi4yYy00LjMgMTcuMSA2LjEgMzQuNSAyMy4zIDM4LjhzMzQuNS02LjEgMzguOC0yMy4zbDEzLTUyLjFjOSAzLjQgMTguNCA2LjIgMjggOC4yTDE3NyA0NzIuMmMtNC4zIDE3LjEgNi4xIDM0LjUgMjMuMyAzOC44czM0LjUtNi4xIDM4LjgtMjMuM2wxMC40LTQxLjRjMzMuNC00LjQgNjQuMS0xNy40IDg5LjgtMzYuN2MxNC4xLTEwLjYgMTctMzAuNyA2LjQtNDQuOHMtMzAuNy0xNy00NC44LTYuNGMtMTAuMiA3LjctMjEuNyAxMy45LTM0IDE4LjNMMzIxIDE2MGM5LjQtLjMgMTguNS00LjcgMjQuNi0xMi44YzEwLjYtMTQuMSA3LjgtMzQuMi02LjQtNDQuOGMtMS4xLS44LTIuMi0xLjYtMy4zLTIuNEwzNTEgMzkuOGM0LjMtMTcuMS02LjEtMzQuNS0yMy4zLTM4LjhTMjkzLjIgNy4xIDI4OSAyNC4yTDI3Ny4yIDcxLjVjLTkuMy0yLjctMTguOC00LjYtMjguNi01LjlMMjU1IDM5Ljh6TTE2My4yIDE0My4zTDExNy4zIDMyNi44QzEwMy45IDMwNi41IDk2IDI4Mi4yIDk2IDI1NmMwLTQ4LjcgMjcuMi05MSA2Ny4yLTExMi43em04LjYgMjI5LjVsNjEuMS0yNDQuNmM5LjkgLjcgMTkuNSAyLjUgMjguNyA1LjNsLTYyIDI0OC4xYy05LjctMS45LTE5LTQuOC0yNy44LTguOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tbWVudERvbGxhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNDQ4YzE0MS40IDAgMjU2LTkzLjEgMjU2LTIwOFMzOTcuNCAzMiAyNTYgMzJTMCAxMjUuMSAwIDI0MGMwIDQ1LjEgMTcuNyA4Ni44IDQ3LjcgMTIwLjljLTEuOSAyNC41LTExLjQgNDYuMy0yMS40IDYyLjljLTUuNSA5LjItMTEuMSAxNi42LTE1LjIgMjEuNmMtMi4xIDIuNS0zLjcgNC40LTQuOSA1LjdjLS42IC42LTEgMS4xLTEuMyAxLjRsLS4zIC4zIDAgMCAwIDAgMCAwIDAgMGMtNC42IDQuNi01LjkgMTEuNC0zLjQgMTcuNGMyLjUgNiA4LjMgOS45IDE0LjggOS45YzI4LjcgMCA1Ny42LTguOSA4MS42LTE5LjNjMjIuOS0xMCA0Mi40LTIxLjkgNTQuMy0zMC42YzMxLjggMTEuNSA2NyAxNy45IDEwNC4xIDE3Ljl6bTIwLTMxMnYxMy45YzcuNSAxLjIgMTQuNiAyLjkgMjEuMSA0LjdjMTAuNyAyLjggMTcgMTMuOCAxNC4yIDI0LjVzLTEzLjggMTctMjQuNSAxNC4yYy0xMS0yLjktMjEuNi01LTMxLjItNS4yYy03LjktLjEtMTYgMS44LTIxLjUgNWMtNC44IDIuOC02LjIgNS42LTYuMiA5LjNjMCAxLjggLjEgMy41IDUuMyA2LjdjNi4zIDMuOCAxNS41IDYuNyAyOC4zIDEwLjVsLjcgLjJjMTEuMiAzLjQgMjUuNiA3LjcgMzcuMSAxNWMxMi45IDguMSAyNC4zIDIxLjMgMjQuNiA0MS42Yy4zIDIwLjktMTAuNSAzNi4xLTI0LjggNDVjLTcuMiA0LjUtMTUuMiA3LjMtMjMuMiA5VjM0NGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBWMzI5LjRjLTEwLjMtMi4yLTIwLTUuNS0yOC4yLTguNGwwIDAgMCAwYy0yLjEtLjctNC4xLTEuNC02LjEtMi4xYy0xMC41LTMuNS0xNi4xLTE0LjgtMTIuNi0yNS4zczE0LjgtMTYuMSAyNS4zLTEyLjZjMi41IC44IDQuOSAxLjcgNy4yIDIuNGMxMy42IDQuNiAyNCA4LjEgMzUuMSA4LjVjOC42IC4zIDE2LjUtMS42IDIxLjQtNC43YzQuMS0yLjUgNi01LjUgNS45LTEwLjVjMC0yLjktLjgtNS01LjktOC4yYy02LjMtNC0xNS40LTYuOS0yOC0xMC43bC0xLjctLjVjLTEwLjktMy4zLTI0LjYtNy40LTM1LjYtMTRjLTEyLjctNy43LTI0LjYtMjAuNS0yNC43LTQwLjdjLS4xLTIxLjEgMTEuOC0zNS43IDI1LjgtNDMuOWM2LjktNC4xIDE0LjUtNi44IDIyLjItOC41VjEzNmMwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tbWVudERvdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDQ0OGMxNDEuNCAwIDI1Ni05My4xIDI1Ni0yMDhTMzk3LjQgMzIgMjU2IDMyUzAgMTI1LjEgMCAyNDBjMCA0NS4xIDE3LjcgODYuOCA0Ny43IDEyMC45Yy0xLjkgMjQuNS0xMS40IDQ2LjMtMjEuNCA2Mi45Yy01LjUgOS4yLTExLjEgMTYuNi0xNS4yIDIxLjZjLTIuMSAyLjUtMy43IDQuNC00LjkgNS43Yy0uNiAuNi0xIDEuMS0xLjMgMS40bC0uMyAuMyAwIDAgMCAwIDAgMCAwIDBjLTQuNiA0LjYtNS45IDExLjQtMy40IDE3LjRjMi41IDYgOC4zIDkuOSAxNC44IDkuOWMyOC43IDAgNTcuNi04LjkgODEuNi0xOS4zYzIyLjktMTAgNDIuNC0yMS45IDU0LjMtMzAuNmMzMS44IDExLjUgNjcgMTcuOSAxMDQuMSAxNy45ek0xMjggMjA4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em05NiAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21tZW50TWVkaWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNDQ4YzE0MS40IDAgMjU2LTkzLjEgMjU2LTIwOFMzOTcuNCAzMiAyNTYgMzJTMCAxMjUuMSAwIDI0MGMwIDQ1LjEgMTcuNyA4Ni44IDQ3LjcgMTIwLjljLTEuOSAyNC41LTExLjQgNDYuMy0yMS40IDYyLjljLTUuNSA5LjItMTEuMSAxNi42LTE1LjIgMjEuNmMtMi4xIDIuNS0zLjcgNC40LTQuOSA1LjdjLS42IC42LTEgMS4xLTEuMyAxLjRsLS4zIC4zIDAgMCAwIDAgMCAwIDAgMGMtNC42IDQuNi01LjkgMTEuNC0zLjQgMTcuNGMyLjUgNiA4LjMgOS45IDE0LjggOS45YzI4LjcgMCA1Ny42LTguOSA4MS42LTE5LjNjMjIuOS0xMCA0Mi40LTIxLjkgNTQuMy0zMC42YzMxLjggMTEuNSA2NyAxNy45IDEwNC4xIDE3Ljl6TTIyNCAxNjBjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnY0OGg0OGM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDI4OHY0OGMwIDguOC03LjIgMTYtMTYgMTZIMjQwYy04LjggMC0xNi03LjItMTYtMTZWMjcySDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2VjIyNGMwLTguOCA3LjItMTYgMTYtMTZoNDhWMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21tZW50U2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzguOCA1LjFDMjguNC0zLjEgMTMuMy0xLjIgNS4xIDkuMlMtMS4yIDM0LjcgOS4yIDQyLjlsNTkyIDQ2NGMxMC40IDguMiAyNS41IDYuMyAzMy43LTQuMXM2LjMtMjUuNS00LjEtMzMuN0w1MTIuOSAzNzYuN0M1NTIuMiAzNDAuMiA1NzYgMjkyLjMgNTc2IDI0MEM1NzYgMTI1LjEgNDYxLjQgMzIgMzIwIDMyYy02Ny43IDAtMTI5LjMgMjEuNC0xNzUuMSA1Ni4zTDM4LjggNS4xem0zODUuMiA0MjVMODIuOSAxNjEuM0M3MC43IDE4NS42IDY0IDIxMi4yIDY0IDI0MGMwIDQ1LjEgMTcuNyA4Ni44IDQ3LjcgMTIwLjljLTEuOSAyNC41LTExLjQgNDYuMy0yMS40IDYyLjljLTUuNSA5LjItMTEuMSAxNi42LTE1LjIgMjEuNmMtMi4xIDIuNS0zLjcgNC40LTQuOSA1LjdjLS42IC42LTEgMS4xLTEuMyAxLjRsLS4zIC4zIDAgMCAwIDAgMCAwIDAgMGMtNC42IDQuNi01LjkgMTEuNC0zLjQgMTcuNGMyLjUgNiA4LjMgOS45IDE0LjggOS45YzI4LjcgMCA1Ny42LTguOSA4MS42LTE5LjNjMjIuOS0xMCA0Mi40LTIxLjkgNTQuMy0zMC42YzMxLjggMTEuNSA2NyAxNy45IDEwNC4xIDE3LjljMzcgMCA3Mi4zLTYuNCAxMDQuMS0xNy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21tZW50U21zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA0NDhjMTQxLjQgMCAyNTYtOTMuMSAyNTYtMjA4UzM5Ny40IDMyIDI1NiAzMlMwIDEyNS4xIDAgMjQwYzAgNDUuMSAxNy43IDg2LjggNDcuNyAxMjAuOWMtMS45IDI0LjUtMTEuNCA0Ni4zLTIxLjQgNjIuOWMtNS41IDkuMi0xMS4xIDE2LjYtMTUuMiAyMS42Yy0yLjEgMi41LTMuNyA0LjQtNC45IDUuN2MtLjYgLjYtMSAxLjEtMS4zIDEuNGwtLjMgLjMgMCAwIDAgMCAwIDAgMCAwYy00LjYgNC42LTUuOSAxMS40LTMuNCAxNy40YzIuNSA2IDguMyA5LjkgMTQuOCA5LjljMjguNyAwIDU3LjYtOC45IDgxLjYtMTkuM2MyMi45LTEwIDQyLjQtMjEuOSA1NC4zLTMwLjZjMzEuOCAxMS41IDY3IDE3LjkgMTA0LjEgMTcuOXpNOTYgMjEyLjhjMC0yMC4zIDE2LjUtMzYuOCAzNi44LTM2LjhIMTUyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDEzMi44Yy0yLjcgMC00LjggMi4yLTQuOCA0LjhjMCAxLjYgLjggMy4xIDIuMiA0bDI5LjQgMTkuNmMxMC4zIDYuOCAxNi40IDE4LjMgMTYuNCAzMC43YzAgMjAuMy0xNi41IDM2LjgtMzYuOCAzNi44SDExMmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmgyNy4yYzIuNyAwIDQuOC0yLjIgNC44LTQuOGMwLTEuNi0uOC0zLjEtMi4yLTRsLTI5LjQtMTkuNkMxMDIuMiAyMzYuNyA5NiAyMjUuMiA5NiAyMTIuOHpNMzcyLjggMTc2SDM5MmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgzNzIuOGMtMi43IDAtNC44IDIuMi00LjggNC44YzAgMS42IC44IDMuMSAyLjIgNGwyOS40IDE5LjZjMTAuMiA2LjggMTYuNCAxOC4zIDE2LjQgMzAuN2MwIDIwLjMtMTYuNSAzNi44LTM2LjggMzYuOEgzNTJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoMjcuMmMyLjcgMCA0LjgtMi4yIDQuOC00LjhjMC0xLjYtLjgtMy4xLTIuMi00bC0yOS40LTE5LjZjLTEwLjItNi44LTE2LjQtMTguMy0xNi40LTMwLjdjMC0yMC4zIDE2LjUtMzYuOCAzNi44LTM2Ljh6bS0xNTIgNi40TDI1NiAyMjkuM2wzNS4yLTQ2LjljNC4xLTUuNSAxMS4zLTcuOCAxNy45LTUuNnMxMC45IDguMyAxMC45IDE1LjJ2OTZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMjQwbC0xOS4yIDI1LjZjLTMgNC03LjggNi40LTEyLjggNi40cy05LjgtMi40LTEyLjgtNi40TDIyNCAyNDB2NDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMTkyYzAtNi45IDQuNC0xMyAxMC45LTE1LjJzMTMuNyAuMSAxNy45IDUuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tbWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgMjQwYzAgMTE0LjktMTE0LjYgMjA4LTI1NiAyMDhjLTM3LjEgMC03Mi4zLTYuNC0xMDQuMS0xNy45Yy0xMS45IDguNy0zMS4zIDIwLjYtNTQuMyAzMC42QzczLjYgNDcxLjEgNDQuNyA0ODAgMTYgNDgwYy02LjUgMC0xMi4zLTMuOS0xNC44LTkuOWMtMi41LTYtMS4xLTEyLjggMy40LTE3LjRsMCAwIDAgMCAwIDAgMCAwIC4zLS4zYy4zLS4zIC43LS43IDEuMy0xLjRjMS4xLTEuMiAyLjgtMy4xIDQuOS01LjdjNC4xLTUgOS42LTEyLjQgMTUuMi0yMS42YzEwLTE2LjYgMTkuNS0zOC40IDIxLjQtNjIuOUMxNy43IDMyNi44IDAgMjg1LjEgMCAyNDBDMCAxMjUuMSAxMTQuNiAzMiAyNTYgMzJzMjU2IDkzLjEgMjU2IDIwOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tbWVudHNEb2xsYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDE3NmMwIDk3LjItOTMuMSAxNzYtMjA4IDE3NmMtMzguMiAwLTczLjktOC43LTEwNC43LTIzLjljLTcuNSA0LTE2IDcuOS0yNS4yIDExLjRDNTkuOCAzNDYuNCAzNy44IDM1MiAxNiAzNTJjLTYuOSAwLTEzLjEtNC41LTE1LjItMTEuMXMuMi0xMy44IDUuOC0xNy45bDAgMCAwIDAgLjItLjJjLjItLjIgLjYtLjQgMS4xLS44YzEtLjggMi41LTIgNC4zLTMuN2MzLjYtMy4zIDguNS04LjEgMTMuMy0xNC4zYzUuNS03IDEwLjctMTUuNCAxNC4yLTI0LjdDMTQuNyAyNTAuMyAwIDIxNC42IDAgMTc2QzAgNzguOCA5My4xIDAgMjA4IDBTNDE2IDc4LjggNDE2IDE3NnpNMjMxLjUgMzgzQzM0OC45IDM3Mi45IDQ0OCAyODguMyA0NDggMTc2YzAtNS4yLS4yLTEwLjQtLjYtMTUuNUM1NTUuMSAxNjcuMSA2NDAgMjQzLjIgNjQwIDMzNmMwIDM4LjYtMTQuNyA3NC4zLTM5LjYgMTAzLjRjMy41IDkuNCA4LjcgMTcuNyAxNC4yIDI0LjdjNC44IDYuMiA5LjcgMTEgMTMuMyAxNC4zYzEuOCAxLjYgMy4zIDIuOSA0LjMgMy43Yy41IC40IC45IC43IDEuMSAuOGwuMiAuMiAwIDAgMCAwYzUuNiA0LjEgNy45IDExLjMgNS44IDE3LjljLTIuMSA2LjYtOC4zIDExLjEtMTUuMiAxMS4xYy0yMS44IDAtNDMuOC01LjYtNjIuMS0xMi41Yy05LjItMy41LTE3LjgtNy40LTI1LjItMTEuNEM1MDUuOSA1MDMuMyA0NzAuMiA1MTIgNDMyIDUxMmMtOTUuNiAwLTE3Ni4yLTU0LjYtMjAwLjUtMTI5ek0yMjggNzJjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwVjg2Yy03LjYgMS43LTE1LjIgNC40LTIyLjIgOC41Yy0xMy45IDguMy0yNS45IDIyLjgtMjUuOCA0My45Yy4xIDIwLjMgMTIgMzMuMSAyNC43IDQwLjdjMTEgNi42IDI0LjcgMTAuOCAzNS42IDE0bDEuNyAuNWMxMi42IDMuOCAyMS44IDYuOCAyOCAxMC43YzUuMSAzLjIgNS44IDUuNCA1LjkgOC4yYy4xIDUtMS44IDgtNS45IDEwLjVjLTUgMy4xLTEyLjkgNS0yMS40IDQuN2MtMTEuMS0uNC0yMS41LTMuOS0zNS4xLTguNWMtMi4zLS44LTQuNy0xLjYtNy4yLTIuNGMtMTAuNS0zLjUtMjEuOCAyLjItMjUuMyAxMi42czIuMiAyMS44IDEyLjYgMjUuM2MxLjkgLjYgNCAxLjMgNi4xIDIuMWwwIDAgMCAwYzguMyAyLjkgMTcuOSA2LjIgMjguMiA4LjRWMjgwYzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwVjI2Ni4yYzgtMS43IDE2LTQuNSAyMy4yLTljMTQuMy04LjkgMjUuMS0yNC4xIDI0LjgtNDVjLS4zLTIwLjMtMTEuNy0zMy40LTI0LjYtNDEuNmMtMTEuNS03LjItMjUuOS0xMS42LTM3LjEtMTVsLS43LS4yYy0xMi44LTMuOS0yMS45LTYuNy0yOC4zLTEwLjVjLTUuMi0zLjEtNS4zLTQuOS01LjMtNi43YzAtMy43IDEuNC02LjUgNi4yLTkuM2M1LjQtMy4yIDEzLjYtNS4xIDIxLjUtNWM5LjYgLjEgMjAuMiAyLjIgMzEuMiA1LjJjMTAuNyAyLjggMjEuNi0zLjUgMjQuNS0xNC4ycy0zLjUtMjEuNi0xNC4yLTI0LjVjLTYuNS0xLjctMTMuNy0zLjQtMjEuMS00LjdWNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbW1lbnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOCAzNTJjMTE0LjkgMCAyMDgtNzguOCAyMDgtMTc2UzMyMi45IDAgMjA4IDBTMCA3OC44IDAgMTc2YzAgMzguNiAxNC43IDc0LjMgMzkuNiAxMDMuNGMtMy41IDkuNC04LjcgMTcuNy0xNC4yIDI0LjdjLTQuOCA2LjItOS43IDExLTEzLjMgMTQuM2MtMS44IDEuNi0zLjMgMi45LTQuMyAzLjdjLS41IC40LS45IC43LTEuMSAuOGwtLjIgLjIgMCAwIDAgMEMxIDMyNy4yLTEuNCAzMzQuNCAuOCAzNDAuOVM5LjEgMzUyIDE2IDM1MmMyMS44IDAgNDMuOC01LjYgNjIuMS0xMi41YzkuMi0zLjUgMTcuOC03LjQgMjUuMy0xMS40QzEzNC4xIDM0My4zIDE2OS44IDM1MiAyMDggMzUyek00NDggMTc2YzAgMTEyLjMtOTkuMSAxOTYuOS0yMTYuNSAyMDdDMjU1LjggNDU3LjQgMzM2LjQgNTEyIDQzMiA1MTJjMzguMiAwIDczLjktOC43IDEwNC43LTIzLjljNy41IDQgMTYgNy45IDI1LjIgMTEuNGMxOC4zIDYuOSA0MC4zIDEyLjUgNjIuMSAxMi41YzYuOSAwIDEzLjEtNC41IDE1LjItMTEuMWMyLjEtNi42LS4yLTEzLjgtNS44LTE3LjlsMCAwIDAgMC0uMi0uMmMtLjItLjItLjYtLjQtMS4xLS44Yy0xLS44LTIuNS0yLTQuMy0zLjdjLTMuNi0zLjMtOC41LTguMS0xMy4zLTE0LjNjLTUuNS03LTEwLjctMTUuNC0xNC4yLTI0LjdjMjQuOS0yOSAzOS42LTY0LjcgMzkuNi0xMDMuNGMwLTkyLjgtODQuOS0xNjguOS0xOTIuNi0xNzUuNWMuNCA1LjEgLjYgMTAuMyAuNiAxNS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21wYWN0RGlzYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTI1NiAzMmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bS05Ni0zMmE5NiA5NiAwIDEgMCAxOTIgMCA5NiA5NiAwIDEgMCAtMTkyIDB6TTk2IDI0MGMwLTM1IDE3LjUtNzEuMSA0NS4yLTk4LjhTMjA1IDk2IDI0MCA5NmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmMtNDUuNCAwLTg5LjIgMjIuMy0xMjEuNSA1NC41UzY0IDE5NC42IDY0IDI0MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21wYXNzRHJhZnRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyIDk2YzAgMTQuMy0zLjEgMjcuOS04LjggNDAuMkwzOTYgMjI3LjRjLTIzLjcgMjUuMy01NC4yIDQ0LjEtODguNSA1My42TDI1NiAxOTJoMCAwbC02OCAxMTcuNWMyMS41IDYuOCA0NC4zIDEwLjUgNjguMSAxMC41YzcwLjcgMCAxMzMuOC0zMi43IDE3NC45LTg0YzExLjEtMTMuOCAzMS4yLTE2IDQ1LTVzMTYgMzEuMiA1IDQ1QzQyOC4xIDM0MS44IDM0NyAzODQgMjU2IDM4NGMtMzUuNCAwLTY5LjQtNi40LTEwMC43LTE4LjFMOTguNyA0NjMuN0M5NCA0NzEuOCA4NyA0NzguNCA3OC42IDQ4Mi42TDIzLjIgNTEwLjNjLTUgMi41LTEwLjkgMi4yLTE1LjYtLjdTMCA1MDEuNSAwIDQ5NlY0NDAuNmMwLTguNCAyLjItMTYuNyA2LjUtMjQuMWw2MC0xMDMuN0M1My43IDMwMS42IDQxLjggMjg5LjMgMzEuMiAyNzZjLTExLjEtMTMuOC04LjgtMzMuOSA1LTQ1czMzLjktOC44IDQ1IDVjNS43IDcuMSAxMS44IDEzLjggMTguMiAyMC4xbDY5LjQtMTE5LjljLTUuNi0xMi4yLTguOC0yNS44LTguOC00MC4yYzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZ6bTIxIDI5Ny45YzMyLjYtMTIuOCA2Mi41LTMwLjggODguOS01Mi45bDQzLjcgNzUuNWM0LjIgNy4zIDYuNSAxNS42IDYuNSAyNC4xVjQ5NmMwIDUuNS0yLjkgMTAuNy03LjYgMTMuNnMtMTAuNiAzLjItMTUuNiAuN2wtNTUuNC0yNy43Yy04LjQtNC4yLTE1LjQtMTAuOC0yMC4xLTE4LjlMMzczIDM5My45ek0yNTYgMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tcGFzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptNTAuNy0xODYuOUwxNjIuNCAzODAuNmMtMTkuNCA3LjUtMzguNS0xMS42LTMxLTMxbDU1LjUtMTQ0LjNjMy4zLTguNSA5LjktMTUuMSAxOC40LTE4LjRsMTQ0LjMtNTUuNWMxOS40LTcuNSAzOC41IDExLjYgMzEgMzFMMzI1LjEgMzA2LjdjLTMuMiA4LjUtOS45IDE1LjEtMTguNCAxOC40ek0yODggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbXByZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnY2NEgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmg5NmMxNy43IDAgMzItMTQuMyAzMi0zMlY2NHpNMzIgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDk2djY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzUyYzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyek0zNTIgNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2OTZjMCAxNy43IDE0LjMgMzIgMzIgMzJoOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzUyVjY0ek0zMjAgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjM4NGg2NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbXB1dGVyTW91c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxOTJIMTc2VjBIMTYwQzcxLjYgMCAwIDcxLjYgMCAxNjB2MzJ6bTAgMzJWMzUyYzAgODguNCA3MS42IDE2MCAxNjAgMTYwaDY0Yzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwVjIyNEgxOTIgMHptMzg0LTMyVjE2MEMzODQgNzEuNiAzMTIuNCAwIDIyNCAwSDIwOFYxOTJIMzg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21wdXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgOTZWMzIwSDY0TDY0IDk2SDM4NHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlYzMjBjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMTgxLjNsLTEwLjcgMzJIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJIMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDI3Ny4zbC0xMC43LTMySDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHptNDY0IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4VjQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg2NGMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OEg1Mjh6bTE2IDY0aDMyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDU0NGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptLTE2IDgwYzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkg1NDRjLTguOCAwLTE2LTcuMi0xNi0xNnptMzIgMTYwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29va2llQml0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTcuNSAyNy42Yy0uOC01LjQtNC45LTkuOC0xMC4zLTEwLjZ2MGMtMjIuMS0zLjEtNDQuNiAuOS02NC40IDExLjRsLTc0IDM5LjVDODkuMSA3OC40IDczLjIgOTQuOSA2My40IDExNUwyNi43IDE5MC42Yy05LjggMjAuMS0xMyA0Mi45LTkuMSA2NC45bDE0LjUgODIuOGMzLjkgMjIuMSAxNC42IDQyLjMgMzAuNyA1Ny45bDYwLjMgNTguNGMxNi4xIDE1LjYgMzYuNiAyNS42IDU4LjcgMjguN2w4MyAxMS43YzIyLjEgMy4xIDQ0LjYtLjkgNjQuNC0xMS40bDc0LTM5LjVjMTkuNy0xMC41IDM1LjYtMjcgNDUuNC00Ny4ybDM2LjctNzUuNWM5LjgtMjAuMSAxMy00Mi45IDkuMS02NC45djBjLS45LTUuMy01LjMtOS4zLTEwLjYtMTAuMWMtNTEuNS04LjItOTIuOC00Ny4xLTEwNC41LTk3LjRjLTEuOC03LjYtOC0xMy40LTE1LjctMTQuNmMtNTQuNi04LjctOTcuNy01Mi0xMDYuMi0xMDYuOHpNMjA4IDE0NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE0NCAzMzZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMjI0LTY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29va2llIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny4yIDE3Yy0yMi4xLTMuMS00NC42IC45LTY0LjQgMTEuNGwtNzQgMzkuNUM4OS4xIDc4LjQgNzMuMiA5NC45IDYzLjQgMTE1TDI2LjcgMTkwLjZjLTkuOCAyMC4xLTEzIDQyLjktOS4xIDY0LjlsMTQuNSA4Mi44YzMuOSAyMi4xIDE0LjYgNDIuMyAzMC43IDU3LjlsNjAuMyA1OC40YzE2LjEgMTUuNiAzNi42IDI1LjYgNTguNyAyOC43bDgzIDExLjdjMjIuMSAzLjEgNDQuNi0uOSA2NC40LTExLjRsNzQtMzkuNWMxOS43LTEwLjUgMzUuNi0yNyA0NS40LTQ3LjJsMzYuNy03NS41YzkuOC0yMC4xIDEzLTQyLjkgOS4xLTY0LjlsLTE0LjYtODIuOGMtMy45LTIyLjEtMTQuNi00Mi4zLTMwLjctNTcuOUwzODguOSA1Ny41Yy0xNi4xLTE1LjYtMzYuNi0yNS42LTU4LjctMjguN0wyNDcuMiAxN3pNMjA4IDE0NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE0NCAzMzZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMjI0LTY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29weSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDggMEgzMzIuMWMxMi43IDAgMjQuOSA1LjEgMzMuOSAxNC4xbDY3LjkgNjcuOWM5IDkgMTQuMSAyMS4yIDE0LjEgMzMuOVYzMzZjMCAyNi41LTIxLjUgNDgtNDggNDhIMjA4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY0OGMwLTI2LjUgMjEuNS00OCA0OC00OHpNNDggMTI4aDgwdjY0SDY0VjQ0OEgyNTZWNDE2aDY0djQ4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYxNzZjMC0yNi41IDIxLjUtNDggNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvcHlyaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTk5LjQgMzEyLjZjMzEuMiAzMS4yIDgxLjkgMzEuMiAxMTMuMSAwYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtNTAgNTAtMTMxIDUwLTE4MSAwcy01MC0xMzEgMC0xODFzMTMxLTUwIDE4MSAwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTMxLjItMzEuMi04MS45LTMxLjItMTEzLjEgMHMtMzEuMiA4MS45IDAgMTEzLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvdWNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDE2MEM2NCA4OS4zIDEyMS4zIDMyIDE5MiAzMkg0NDhjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjh2MzMuNmMtMzYuNSA3LjQtNjQgMzkuNy02NCA3OC40djQ4SDEyOFYyNzJjMC0zOC43LTI3LjUtNzEtNjQtNzguNFYxNjB6TTU0NCAyNzJjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zYzUtMS44IDEwLjQtMi43IDE2LTIuN2MyNi41IDAgNDggMjEuNSA0OCA0OFY0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJINTc2Yy0xNy43IDAtMzItMTQuMy0zMi0zMkg5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMjcyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4YzUuNiAwIDExIDEgMTYgMi43YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM3Y0OCAzMmgzMkg1MTJoMzJWMzIwIDI3MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ293IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDIyNHYzMlY0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzI3LjhjOS45IDYuNiAyMC42IDEyIDMyIDE2LjFWMzY4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMzUxLjFjNS4zIC42IDEwLjYgLjkgMTYgLjlzMTAuNy0uMyAxNi0uOVYzNjhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYzNDMuOGMxMS40LTQgMjIuMS05LjQgMzItMTYuMVY0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2bDMyIDMydjQ5LjVjMCA5LjUgMi44IDE4LjcgOC4xIDI2LjZMNTMwIDQyN2M4LjggMTMuMSAyMy41IDIxIDM5LjMgMjFjMjIuNSAwIDQxLjktMTUuOSA0Ni4zLTM4bDIwLjMtMTAxLjZjMi42LTEzLS4zLTI2LjUtOC0zNy4zbC0zLjktNS41VjE4NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHYxNC40bC01Mi45LTc0LjFDNDk2IDg2LjUgNDUyLjQgNjQgNDA1LjkgNjRIMjcyIDI1NiAxOTIgMTQ0Qzc3LjcgNjQgMjQgMTE3LjcgMjQgMTg0djU0QzkuNCAyNDkuOCAwIDI2Ny44IDAgMjg4djE3LjZjMCA4IDYuNCAxNC40IDE0LjQgMTQuNEM0Ni4yIDMyMCA3MiAyOTQuMiA3MiAyNjIuNFYyNTYgMjI0IDE4NGMwLTI0LjMgMTIuMS00NS44IDMwLjUtNTguOUM5OC4zIDEzNS45IDk2IDE0Ny43IDk2IDE2MHY2NHpNNTYwIDMzNmExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwek0xNjYuNiAxNjYuNmMtNC4yLTQuMi02LjYtMTAtNi42LTE2YzAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42SDM2MS40YzEyLjUgMCAyMi42IDEwLjEgMjIuNiAyMi42YzAgNi0yLjQgMTEuOC02LjYgMTZsLTIzLjQgMjMuNEMzMzIuMiAyMTEuOCAzMDIuNyAyMjQgMjcyIDIyNHMtNjAuMi0xMi4yLTgxLjktMzMuOWwtMjMuNC0yMy40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcmVkaXRDYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZ2MzJINTc2Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek01NzYgMjI0SDBWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NFYyMjR6TTExMiAzNTJoNjRjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMTEyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0xMTIgMTZjMC04LjggNy4yLTE2IDE2LTE2SDM2OGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgyNDBjLTguOCAwLTE2LTcuMi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JvcFNpbXBsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMzJjMC0xNy43LTE0LjMtMzItMzItMzJTNjQgMTQuMyA2NCAzMlY2NEgzMkMxNC4zIDY0IDAgNzguMyAwIDk2czE0LjMgMzIgMzIgMzJINjRWMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM1MlYzODRIMTI4VjMyek0zODQgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWNDQ4aDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDQ0OGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEwxNjAgNjR2NjRsMjI0IDAgMCAzNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyb3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDEwOS4zbDU0LjYtNTQuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEw0MDIuNyA2NCAxNjAgNjR2NjRsMTc4LjcgMEwxMjggMzM4LjdWMzJjMC0xNy43LTE0LjMtMzItMzItMzJTNjQgMTQuMyA2NCAzMlY2NEgzMkMxNC4zIDY0IDAgNzguMyAwIDk2czE0LjMgMzIgMzIgMzJINjRWMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM1MlYzODRIMTczLjNMMzg0IDE3My4zIDM4NCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY0NDhoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINDQ4bDAtMjc0Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyb3NzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OHY4MEg0OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2MzJjMCAyNi41IDIxLjUgNDggNDggNDhoODBWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDMyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjI1Nmg4MGMyNi41IDAgNDgtMjEuNSA0OC00OFYxNzZjMC0yNi41LTIxLjUtNDgtNDgtNDhIMjU2VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDE3NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3Jvc3NoYWlycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMlY0Mi40YzkzLjcgMTMuOSAxNjcuNyA4OCAxODEuNiAxODEuNkg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINDY5LjZjLTEzLjkgOTMuNy04OCAxNjcuNy0xODEuNiAxODEuNlY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNDY5LjZDMTMwLjMgNDU1LjcgNTYuMyAzODEuNyA0Mi40IDI4OEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg0Mi40QzU2LjMgMTMwLjMgMTMwLjMgNTYuMyAyMjQgNDIuNFYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTA3LjQgMjg4YzEyLjUgNTguMyA1OC40IDEwNC4xIDExNi42IDExNi42VjM4NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMydjIwLjZjNTguMy0xMi41IDEwNC4xLTU4LjQgMTE2LjYtMTE2LjZIMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDIwLjZDMzkyLjEgMTY1LjcgMzQ2LjMgMTE5LjkgMjg4IDEwNy40VjEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxMDcuNEMxNjUuNyAxMTkuOSAxMTkuOSAxNjUuNyAxMDcuNCAyMjRIMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDEwNy40ek0yNTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTYgMGMtNDguNiAwLTg4IDM5LjQtODggODh2MjkuMkwxMi41IDM5MC42Yy0xNCAxMC44LTE2LjYgMzAuOS01LjkgNDQuOXMzMC45IDE2LjYgNDQuOSA1LjlMMTI2LjEgMzg0SDI1OS4ybDQ2LjYgMTEzLjFjNSAxMi4zIDE5LjEgMTguMSAzMS4zIDEzLjFzMTguMS0xOS4xIDEzLjEtMzEuM0wzMTEuMSAzODRIMzUyYzEuMSAwIDIuMSAwIDMuMiAwbDQ2LjYgMTEzLjJjNSAxMi4zIDE5LjEgMTguMSAzMS4zIDEzLjFzMTguMS0xOS4xIDEzLjEtMzEuM2wtNDItMTAyQzQ4NC45IDM1NC4xIDU0NCAyODAgNTQ0IDE5MlYxMjh2LThsODAuNS0yMC4xYzguNi0yLjEgMTMuOC0xMC44IDExLjYtMTkuNEM2MjkgNTIgNjAzLjQgMzIgNTc0IDMySDUyMy45QzUwNy43IDEyLjUgNDgzLjMgMCA0NTYgMHptMCA2NGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwOSAxMDZjMTEuNC03IDE5LTE5LjcgMTktMzRjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDBjMCAxNC40IDcuNiAyNyAxOSAzNEwyMDkuNyAyMjAuNmMtOS4xIDE4LjItMzIuNyAyMy40LTQ4LjYgMTAuN0w3MiAxNjBjNS02LjcgOC0xNSA4LTI0YzAtMjIuMS0xNy45LTQwLTQwLTQwUzAgMTEzLjkgMCAxMzZzMTcuOSA0MCA0MCA0MGMuMiAwIC41IDAgLjcgMEw4Ni40IDQyNy40YzUuNSAzMC40IDMyIDUyLjYgNjMgNTIuNkg0MjYuNmMzMC45IDAgNTcuNC0yMi4xIDYzLTUyLjZMNTM1LjMgMTc2Yy4yIDAgLjUgMCAuNyAwYzIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgOSAzIDE3LjMgOCAyNGwtODkuMSA3MS4zYy0xNS45IDEyLjctMzkuNSA3LjUtNDguNi0xMC43TDMwOSAxMDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNydXRjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTcuNCA5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDB6bS05NiAxNDRsLTM0LjggMzQuOGMtMTIuOSAxMi45LTIxLjkgMjkuMi0yNS44IDQ3LjFMMTE2LjggMzQyLjljLTEuMyA1LjktNC4zIDExLjQtOC42IDE1LjdMOS40IDQ1Ny40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDk4LjgtOTguOGM0LjMtNC4zIDkuNy03LjMgMTUuNy04LjZsMTA3LjYtMjMuOWMxNy44LTQgMzQuMS0xMi45IDQ3LjEtMjUuOGwzNC43LTM0LjdjMCAwIC4xLS4xIC4xLS4xcy4xLS4xIC4xLS4xbDc0LjYtNzQuNi00NS4zLTQ1LjNMMzM2IDI0Mi43IDI2OS4zIDE3Nmw1Mi4xLTUyLjFMMjc2LjEgNzguNmwtNzQuNyA3NC43ek0yMjQgMjIxLjNMMjkwLjcgMjg4bC0xMi4yIDEyLjJjLTQuMyA0LjMtOS43IDcuMy0xNS43IDguNmwtNzYuNyAxNyAxNy03Ni43YzEuMy01LjkgNC4zLTExLjQgOC42LTE1LjdMMjI0IDIyMS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcnV6ZWlyb1NpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMjU2YzAtODguNCA3MS42LTE2MCAxNjAtMTYwYzQxIDAgNzguMyAxNS40IDEwNi43IDQwLjdjMTMuMiAxMS44IDMzLjQgMTAuNyA0NS4yLTIuNXMxMC43LTMzLjQtMi41LTQ1LjJjLTM5LjYtMzUuNS05Mi01Ny0xNDkuMy01N0MxMzIuMyAzMiAzMiAxMzIuMyAzMiAyNTZzMTAwLjMgMjI0IDIyNCAyMjRjNTcuNCAwIDEwOS43LTIxLjYgMTQ5LjMtNTdjMTMuMi0xMS44IDE0LjMtMzIgMi41LTQ1LjJzLTMyLTE0LjMtNDUuMi0yLjVDMzM0LjMgNDAwLjYgMjk3IDQxNiAyNTYgNDE2VjMyMHYtOC43YzAtMTIuOCAxMC40LTIzLjMgMjMuMy0yMy4zYzQuNiAwIDkuMSAxLjQgMTIuOSAzLjlsMTAuMSA2LjdjMTQuNyA5LjggMzQuNiA1LjggNDQuNC04LjlzNS44LTM0LjYtOC45LTQ0LjRsLTEwLjEtNi43Yy0xNC4zLTkuNi0zMS4yLTE0LjctNDguNC0xNC43Yy0xMi40IDAtMjQuMiAyLjYtMzQuOSA3LjNjLTUuNS00LjUtMTIuNi03LjMtMjAuMy03LjNjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU1LjNWMzIwdjgyLjdDMTM1LjUgMzc4IDk2IDMyMS42IDk2IDI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3ViZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzQuNSA1LjdjMTMuOS01IDI5LjEtNSA0My4xIDBsMTkyIDY4LjZDNDk1IDgzLjQgNTEyIDEwNy41IDUxMiAxMzQuNlYzNzcuNGMwIDI3LTE3IDUxLjItNDIuNSA2MC4zbC0xOTIgNjguNmMtMTMuOSA1LTI5LjEgNS00My4xIDBsLTE5Mi02OC42QzE3IDQyOC42IDAgNDA0LjUgMCAzNzcuNFYxMzQuNmMwLTI3IDE3LTUxLjIgNDIuNS02MC4zbDE5Mi02OC42ek0yNTYgNjZMODIuMyAxMjggMjU2IDE5MGwxNzMuNy02MkwyNTYgNjZ6bTMyIDM2OC42bDE2MC01Ny4xdi0xODhMMjg4IDI0Ni42djE4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3ViZXNTdGFja2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiA2NHY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NGMxNy43IDAgMzItMTQuMyAzMi0zMlY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek04Mi43IDIwN2MtMTUuMyA4LjgtMjAuNSAyOC40LTExLjcgNDMuN2wzMiA1NS40YzguOCAxNS4zIDI4LjQgMjAuNSA0My43IDExLjdsNTUuNC0zMmMxNS4zLTguOCAyMC41LTI4LjQgMTEuNy00My43bC0zMi01NS40Yy04LjgtMTUuMy0yOC40LTIwLjUtNDMuNy0xMS43TDgyLjcgMjA3ek0yODggMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJIMjg4em02NCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzNTJ6TTE2MCAzODR2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTMyIDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJIOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDdWJlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTAuOCA0OC42bDc4LjQgMjkuN0wyODggMTA5LjUgMjA2LjggNzguM2w3OC40LTI5LjdjMS44LS43IDMuOC0uNyA1LjcgMHpNMTM2IDkyLjVWMjA0LjdjLTEuMyAuNC0yLjYgLjgtMy45IDEuM2wtOTYgMzYuNEMxNC40IDI1MC42IDAgMjcxLjUgMCAyOTQuN1Y0MTMuOWMwIDIyLjIgMTMuMSA0Mi4zIDMzLjUgNTEuM2w5NiA0Mi4yYzE0LjQgNi4zIDMwLjcgNi4zIDQ1LjEgMEwyODggNDU3LjVsMTEzLjUgNDkuOWMxNC40IDYuMyAzMC43IDYuMyA0NS4xIDBsOTYtNDIuMmMyMC4zLTguOSAzMy41LTI5LjEgMzMuNS01MS4zVjI5NC43YzAtMjMuMy0xNC40LTQ0LjEtMzYuMS01Mi40bC05Ni0zNi40Yy0xLjMtLjUtMi42LS45LTMuOS0xLjNWOTIuNWMwLTIzLjMtMTQuNC00NC4xLTM2LjEtNTIuNGwtOTYtMzYuNGMtMTIuOC00LjgtMjYuOS00LjgtMzkuNyAwbC05NiAzNi40QzE1MC40IDQ4LjQgMTM2IDY5LjMgMTM2IDkyLjV6TTM5MiAyMTAuNmwtODIuNCAzMS4yVjE1Mi42TDM5MiAxMjF2ODkuNnpNMTU0LjggMjUwLjlsNzguNCAyOS43TDE1MiAzMTEuNyA3MC44IDI4MC42bDc4LjQtMjkuN2MxLjgtLjcgMy44LS43IDUuNyAwem0xOC44IDIwNC40VjM1NC44TDI1NiAzMjMuMnY5NS45bC04Mi40IDM2LjJ6TTQyMS4yIDI1MC45YzEuOC0uNyAzLjgtLjcgNS43IDBsNzguNCAyOS43TDQyNCAzMTEuN2wtODEuMi0zMS4xIDc4LjQtMjkuN3pNNTIzLjIgNDIxLjJsLTc3LjYgMzQuMVYzNTQuOEw1MjggMzIzLjJ2OTAuN2MwIDMuMi0xLjkgNi00LjggNy4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJoOTZjMTIzLjcgMCAyMjQgMTAwLjMgMjI0IDIyNHMtMTAwLjMgMjI0LTIyNCAyMjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2em0xNjAgMEg2NFY0MTZoOTZjODguNCAwIDE2MC03MS42IDE2MC0xNjBzLTcxLjYtMTYwLTE2MC0xNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURhdGFiYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA4MHY0OGMwIDQ0LjItMTAwLjMgODAtMjI0IDgwUzAgMTcyLjIgMCAxMjhWODBDMCAzNS44IDEwMC4zIDAgMjI0IDBTNDQ4IDM1LjggNDQ4IDgwek0zOTMuMiAyMTQuN2MyMC44LTcuNCAzOS45LTE2LjkgNTQuOC0yOC42VjI4OGMwIDQ0LjItMTAwLjMgODAtMjI0IDgwUzAgMzMyLjIgMCAyODhWMTg2LjFjMTQuOSAxMS44IDM0IDIxLjIgNTQuOCAyOC42Qzk5LjcgMjMwLjcgMTU5LjUgMjQwIDIyNCAyNDBzMTI0LjMtOS4zIDE2OS4yLTI1LjN6TTAgMzQ2LjFjMTQuOSAxMS44IDM0IDIxLjIgNTQuOCAyOC42Qzk5LjcgMzkwLjcgMTU5LjUgNDAwIDIyNCA0MDBzMTI0LjMtOS4zIDE2OS4yLTI1LjNjMjAuOC03LjQgMzkuOS0xNi45IDU0LjgtMjguNlY0MzJjMCA0NC4yLTEwMC4zIDgwLTIyNCA4MFMwIDQ3Ni4yIDAgNDMyVjM0Ni4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEZWxldGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3NiAxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRIMjA1LjNjLTE3IDAtMzMuMyA2LjctNDUuMyAxOC43TDkuNCAyMzMuNGMtNiA2LTkuNCAxNC4xLTkuNCAyMi42czMuNCAxNi42IDkuNCAyMi42TDE2MCA0MjkuM2MxMiAxMiAyOC4zIDE4LjcgNDUuMyAxOC43SDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjh6TTI3MSAxNzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNDcgNDcgNDctNDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC00NyA0NyA0NyA0N2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Ny00Ny00NyA0N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0Ny00Ny00Ny00N2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURlbW9jcmF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyYzAtOC45IDMuOC0yMC45IDYuMi0yNy4zQzcxLjIgMS44IDc0IDAgNzcgMGMxLjkgMCAzLjggLjcgNS4yIDIuMUwxMjggNDUuNyAxNzMuOCAyLjFDMTc1LjIgLjcgMTc3LjEgMCAxNzkgMGMzIDAgNS44IDEuOCA2LjggNC43YzIuNCA2LjUgNi4yIDE4LjQgNi4yIDI3LjNjMCAyNi41LTIxLjkgNDItMjkuNSA0Ni42bDc2LjIgNzIuNmM2IDUuNyAxMy45IDguOCAyMi4xIDguOEg0ODBsMzIgMGM0MC4zIDAgNzguMiAxOSAxMDIuNCA1MS4ybDE5LjIgMjUuNmMxMC42IDE0LjEgNy43IDM0LjItNi40IDQ0LjhzLTM0LjIgNy43LTQ0LjgtNi40bC0xOS4yLTI1LjZjLTUuMy03LTExLjgtMTIuOC0xOS4yLTE3VjMyMEgxOTJsLTQwLjQtOTQuM2MtMy45LTkuMi0xNS4zLTEyLjYtMjMuNi03bC00Mi4xIDI4Yy05LjEgNi4xLTE5LjcgOS4zLTMwLjcgOS4zaC0yQzIzLjkgMjU2IDAgMjMyLjEgMCAyMDIuN2MwLTEyLjEgNC4xLTIzLjggMTEuNy0zMy4zTDg3LjYgNzQuNkM3OC4xIDY3LjQgNjQgNTMuMiA2NCAzMnpNNDQ4IDM1Mmg5NnY2NCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkg0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQxNkgyODh2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJIMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlY0MTYgMzUyaDk2SDQ0OHpNMjYwLjkgMjEwLjljLS45LTEuOC0yLjgtMi45LTQuOC0yLjlzLTMuOSAxLjEtNC44IDIuOWwtMTAuNSAyMC41LTIzLjUgMy4zYy0yIC4zLTMuNyAxLjYtNC4zIDMuNXMtLjEgMy45IDEuMyA1LjNsMTcgMTYtNCAyMi42Yy0uMyAxLjkgLjUgMy45IDIuMSA1czMuOCAxLjMgNS42IC40bDIxLTEwLjcgMjEgMTAuN2MxLjggLjkgNCAuOCA1LjYtLjRzMi41LTMuMSAyLjEtNWwtNC0yMi42IDE3LTE2YzEuNS0xLjQgMi0zLjQgMS4zLTUuM3MtMi4zLTMuMi00LjMtMy41bC0yMy41LTMuMy0xMC41LTIwLjV6TTM2OC4xIDIwOGMtMiAwLTMuOSAxLjEtNC44IDIuOWwtMTAuNSAyMC41LTIzLjUgMy4zYy0yIC4zLTMuNyAxLjYtNC4zIDMuNXMtLjEgMy45IDEuMyA1LjNsMTcgMTYtNCAyMi42Yy0uMyAxLjkgLjUgMy45IDIuMSA1czMuOCAxLjMgNS42IC40bDIxLTEwLjcgMjEgMTAuN2MxLjggLjkgNCAuOCA1LjYtLjRzMi41LTMuMSAyLjEtNWwtNC0yMi42IDE3LTE2YzEuNS0xLjQgMi0zLjQgMS40LTUuM3MtMi4zLTMuMi00LjMtMy41bC0yMy41LTMuMy0xMC41LTIwLjVjLS45LTEuOC0yLjgtMi45LTQuOC0yLjl6bTExNi44IDIuOWMtLjktMS44LTIuOC0yLjktNC44LTIuOXMtMy45IDEuMS00LjggMi45bC0xMC41IDIwLjUtMjMuNSAzLjNjLTIgLjMtMy43IDEuNi00LjMgMy41cy0uMSAzLjkgMS4zIDUuM2wxNyAxNi00IDIyLjZjLS4zIDEuOSAuNSAzLjkgMi4xIDVzMy44IDEuMyA1LjYgLjRsMjEtMTAuNyAyMSAxMC43YzEuOCAuOSA0IC44IDUuNi0uNHMyLjUtMy4xIDIuMS01bC00LTIyLjYgMTctMTZjMS41LTEuNCAyLTMuNCAxLjQtNS4zcy0yLjMtMy4yLTQuMy0zLjVsLTIzLjUtMy4zLTEwLjUtMjAuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGVza3RvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFYzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMjQwbC0xMC43IDMySDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0MTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzQ2LjdMMzM2IDQxNkg1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6TTUxMiA2NFYyODhINjRWNjRINTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaGFybWFjaGFrcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM3LjggMjA1LjdsNDguNi00Mi41YzEzLjggMTkuMyAyMy40IDQxLjkgMjcuNCA2Ni4ybC02NC40IDQuM2MtMi40LTEwLjEtNi40LTE5LjUtMTEuNi0yOHptMTQwLjEgMTkuNWMtNS4zLTM4LjgtMjAuNi03NC41LTQzLjItMTA0LjNsLjgtLjdDNDQ5IDEwOC40IDQ0OS43IDg3LjYgNDM3IDc1cy0zMy40LTEyLTQ1LjIgMS41bC0uNyAuOGMtMjkuOC0yMi42LTY1LjUtMzcuOS0xMDQuMy00My4ybC4xLTEuMWMxLjItMTcuOS0xMy0zMy0zMC45LTMzcy0zMi4xIDE1LjItMzAuOSAzM2wuMSAxLjFjLTM4LjggNS4zLTc0LjUgMjAuNi0xMDQuMyA0My4ybC0uNy0uOEMxMDguNCA2MyA4Ny42IDYyLjMgNzUgNzVzLTEyIDMzLjQgMS41IDQ1LjJsLjggLjdjLTIyLjYgMjkuOC0zNy45IDY1LjUtNDMuMiAxMDQuM2wtMS4xLS4xYy0xNy45LTEuMi0zMyAxMy0zMyAzMC45czE1LjIgMzIuMSAzMyAzMC45bDEuMS0uMWM1LjMgMzguOCAyMC42IDc0LjUgNDMuMiAxMDQuM2wtLjggLjdDNjMgNDAzLjYgNjIuMyA0MjQuNCA3NSA0MzdzMzMuNCAxMiA0NS4yLTEuNWwuNy0uOGMyOS44IDIyLjYgNjUuNSAzNy45IDEwNC4zIDQzLjJsLS4xIDEuMWMtMS4yIDE3LjkgMTMgMzMgMzAuOSAzM3MzMi4xLTE1LjIgMzAuOS0zM2wtLjEtMS4xYzM4LjgtNS4zIDc0LjUtMjAuNiAxMDQuMy00My4ybC43IC44YzExLjggMTMuNSAzMi41IDE0LjIgNDUuMiAxLjVzMTItMzMuNC0xLjUtNDUuMmwtLjgtLjdjMjIuNi0yOS44IDM3LjktNjUuNSA0My4yLTEwNC4zbDEuMSAuMWMxNy45IDEuMiAzMy0xMyAzMy0zMC45cy0xNS4yLTMyLjEtMzMtMzAuOWwtMS4xIC4xek0xNjMuMiAxMjUuNmMxOS4zLTEzLjggNDEuOS0yMy40IDY2LjItMjcuNWw0LjMgNjQuNGMtMTAgMi40LTE5LjUgNi40LTI4IDExLjZsLTQyLjUtNDguNnptLTY1IDEwMy44YzQuMS0yNC40IDEzLjctNDYuOSAyNy41LTY2LjJsNDguNiA0Mi41Yy01LjMgOC41LTkuMiAxOC0xMS42IDI4bC02NC40LTQuM3ptMjcuNSAxMTkuNGMtMTMuOC0xOS4zLTIzLjQtNDEuOS0yNy41LTY2LjJsNjQuNC00LjNjMi40IDEwIDYuNCAxOS41IDExLjYgMjhsLTQ4LjYgNDIuNXptMTAzLjggNjVjLTI0LjQtNC4xLTQ2LjktMTMuNy02Ni4yLTI3LjRsNDIuNS00OC42YzguNSA1LjMgMTggOS4yIDI4IDExLjZsLTQuMyA2NC40em0xMTkuNC0yNy40Yy0xOS4zIDEzLjgtNDEuOSAyMy40LTY2LjIgMjcuNGwtNC4zLTY0LjRjMTAtMi40IDE5LjUtNi40IDI4LTExLjZsNDIuNSA0OC42em02NS0xMDMuOGMtNC4xIDI0LjQtMTMuNyA0Ni45LTI3LjQgNjYuMmwtNDguNi00Mi41YzUuMy04LjUgOS4yLTE4IDExLjYtMjhsNjQuNCA0LjN6bS02NS0xNTYuOWwtNDIuNSA0OC42Yy04LjUtNS4zLTE4LTkuMi0yOC0xMS42bDQuMy02NC40YzI0LjQgNC4xIDQ2LjkgMTMuNyA2Ni4yIDI3LjV6TTI1NiAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWFncmFtTmV4dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgMTYwYzAgMzUuMy0yOC43IDY0LTY0IDY0SDI4MHY2NGg0Ni4xYzIxLjQgMCAzMi4xIDI1LjkgMTcgNDFMMjczIDM5OWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMTY5IDMyOWMtMTUuMS0xNS4xLTQuNC00MSAxNy00MUgyMzJWMjI0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY5NkMwIDYwLjcgMjguNyAzMiA2NCAzMkg0NDhjMzUuMyAwIDY0IDI4LjcgNjQgNjR2NjR6TTQ0OCA0MTZWMzUySDM2NS4zbC40LS40YzE4LjQtMTguNCAyMC40LTQzLjcgMTEtNjMuNmw3MS4zIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjR2NjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NFYzNTJjMC0zNS4zIDI4LjctNjQgNjQtNjRsNzEuMyAwYy05LjQgMTkuOS03LjQgNDUuMiAxMSA2My42bC40IC40SDY0djY0SDIxMC43bDUuNyA1LjdjMjEuOSAyMS45IDU3LjMgMjEuOSA3OS4yIDBsNS43LTUuN0g0NDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpYWdyYW1QcmVkZWNlc3NvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggNDE2bDAtNjRMNjQgMzUybDAgNjQgMzg0IDB6bTAgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjR6TTI4OCAxNjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgMjI0Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDE0NCAwIDE2IDAgMTQ0IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCAxNiAzOC4xIDBjMjEuNCAwIDMyLjEgMjUuOSAxNyA0MUw0MzMgMjM5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwzMjkgMTY5Yy0xNS4xLTE1LjEtNC40LTQxIDE3LTQxbDM4LjEgMCAwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtODAgMCAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWFncmFtUHJvamVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMyaDk2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4Vjk2SDM4NFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGg5NmMyNi41IDAgNDggMjEuNSA0OCA0OHY5NmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0MzJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjE2MEgxOTJ2MTZjMCAxLjctLjEgMy40LS4zIDVMMjcyIDI4OGg5NmMyNi41IDAgNDggMjEuNSA0OCA0OHY5NmMwIDI2LjUtMjEuNSA0OC00OCA0OEgyNzJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjMzNmMwLTEuNyAuMS0zLjQgLjMtNUwxNDQgMjI0SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGlhZ3JhbVN1Y2Nlc3NvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgNDE2bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMjg4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0ek02NCAxNjBsMC02NCAxNDQgMCAxNiAwIDAgNjRMNjQgMTYwem0yMjQgMGwwLTY0IDgwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTYtMzguMSAwYy0yMS40IDAtMzIuMSAyNS45LTE3IDQxTDM5OSAyMzljOS40IDkuNCAyNC42IDkuNCAzMy45IDBMNTAzIDE2OWMxNS4xLTE1LjEgNC40LTQxLTE3LTQxTDQ0OCAxMjhsMC0xNmMwLTQ0LjItMzUuOC04MC04MC04MEwyMjQgMzJsLTE2IDBMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NmwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE2MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWFtb25kVHVyblJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNy43IDExLjdjMTUuNi0xNS42IDQwLjktMTUuNiA1Ni42IDBsMjE2IDIxNmMxNS42IDE1LjYgMTUuNiA0MC45IDAgNTYuNmwtMjE2IDIxNmMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBsLTIxNi0yMTZjLTE1LjYtMTUuNi0xNS42LTQwLjkgMC01Ni42bDIxNi0yMTZ6bTg3LjYgMTM3Yy00LjYtNC42LTExLjUtNS45LTE3LjQtMy41cy05LjkgOC4zLTkuOSAxNC44djU2SDIyNGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2NDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYyODBjMC04LjggNy4yLTE2IDE2LTE2aDY0djU2YzAgNi41IDMuOSAxMi4zIDkuOSAxNC44czEyLjkgMS4xIDE3LjQtMy41bDgwLTgwYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC04MC04MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGlhbW9uZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODQuMyAxMS43Yy0xNS42LTE1LjYtNDAuOS0xNS42LTU2LjYgMGwtMjE2IDIxNmMtMTUuNiAxNS42LTE1LjYgNDAuOSAwIDU2LjZsMjE2IDIxNmMxNS42IDE1LjYgNDAuOSAxNS42IDU2LjYgMGwyMTYtMjE2YzE1LjYtMTUuNiAxNS42LTQwLjkgMC01Ni42bC0yMTYtMjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWNlRDIwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4LjcgMTI1LjhsNTMuMiAzMS45YzcuOCA0LjcgMTcuOCAyIDIyLjItNS45TDIwMS42IDEyLjFjMy01LjQtLjktMTIuMS03LjEtMTIuMWMtMS42IDAtMy4yIC41LTQuNiAxLjRMNDcuOSA5OC44Yy05LjYgNi42LTkuMiAyMC45IC44IDI2Ljl6TTE2IDE3MS43VjI5NS4zYzAgOCAxMC40IDExIDE0LjcgNC40bDYwLTkyYzUtNy42IDIuNi0xNy44LTUuMi0yMi41TDQwLjIgMTU4QzI5LjYgMTUxLjYgMTYgMTU5LjMgMTYgMTcxLjd6TTMxMC40IDEyLjFsNzcuNiAxMzkuNmM0LjQgNy45IDE0LjUgMTAuNiAyMi4yIDUuOWw1My4yLTMxLjljMTAtNiAxMC40LTIwLjMgLjgtMjYuOUwzMjIuMSAxLjRjLTEuNC0uOS0zLTEuNC00LjYtMS40Yy02LjIgMC0xMC4xIDYuNy03LjEgMTIuMXpNNDk2IDE3MS43YzAtMTIuNC0xMy42LTIwLjEtMjQuMi0xMy43bC00NS4zIDI3LjJjLTcuOCA0LjctMTAuMSAxNC45LTUuMiAyMi41bDYwIDkyYzQuMyA2LjcgMTQuNyAzLjYgMTQuNy00LjRWMTcxLjd6bS00OS4zIDI0NkwyODYuMSA0MzYuNmMtOC4xIC45LTE0LjEgNy44LTE0LjEgMTUuOXY1Mi44YzAgMy43IDMgNi44IDYuOCA2LjhjLjggMCAxLjYtLjEgMi40LS40bDE3Mi43LTY0YzYuMS0yLjIgMTAuMS04IDEwLjEtMTQuNWMwLTkuMy04LjEtMTYuNS0xNy4zLTE1LjR6TTIzMy4yIDUxMmMzLjcgMCA2LjgtMyA2LjgtNi44VjQ1Mi42YzAtOC4xLTYuMS0xNC45LTE0LjEtMTUuOWwtMTYwLjYtMTljLTkuMi0xLjEtMTcuMyA2LjEtMTcuMyAxNS40YzAgNi41IDQgMTIuMyAxMC4xIDE0LjVsMTcyLjcgNjRjLjggLjMgMS42IC40IDIuNCAuNHpNNDEuNyAzODIuOWwxNzAuOSAyMC4yYzcuOCAuOSAxMy40LTcuNSA5LjUtMTQuM2wtODUuNy0xNTBjLTUuOS0xMC40LTIwLjctMTAuOC0yNy4zLS44TDMwLjIgMzU4LjJjLTYuNSA5LjktLjMgMjMuMyAxMS41IDI0Ljd6bTQzOS42LTI0LjhMNDAyLjkgMjM4LjFjLTYuNS0xMC0yMS40LTkuNi0yNy4zIC44TDI5MC4yIDM4OC41Yy0zLjkgNi44IDEuNiAxNS4yIDkuNSAxNC4zbDE3MC4xLTIwYzExLjgtMS40IDE4LTE0LjcgMTEuNS0yNC42em0tMjE2LjkgMTFsNzguNC0xMzcuMmM2LjEtMTAuNy0xLjYtMjMuOS0xMy45LTIzLjlIMTgzLjFjLTEyLjMgMC0yMCAxMy4zLTEzLjkgMjMuOWw3OC40IDEzNy4yYzMuNyA2LjQgMTMgNi40IDE2LjcgMHpNMTc0LjQgMTc2SDMzNy42YzEyLjIgMCAxOS45LTEzLjEgMTQtMjMuOGwtODAtMTQ0Yy0yLjgtNS4xLTguMi04LjItMTQtOC4yaC0zLjJjLTUuOCAwLTExLjIgMy4yLTE0IDguMmwtODAgMTQ0Yy01LjkgMTAuNyAxLjggMjMuOCAxNCAyMy44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWNlRDYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAxIDEwLjNjMTQuMy03LjggMzEuNi03LjggNDYgMEw0MjIuMyAxMDZjNS4xIDIuOCA4LjMgOC4yIDguMyAxNHMtMy4yIDExLjItOC4zIDE0TDIzMS43IDIzOGMtNC44IDIuNi0xMC41IDIuNi0xNS4zIDBMMjUuNyAxMzRjLTUuMS0yLjgtOC4zLTguMi04LjMtMTRzMy4yLTExLjIgOC4zLTE0TDIwMSAxMC4zek0yMy43IDE3MGwxNzYgOTZjNS4xIDIuOCA4LjMgOC4yIDguMyAxNFY0OTZjMCA1LjYtMyAxMC45LTcuOCAxMy44cy0xMC45IDMtMTUuOCAuM0wyNSA0MjMuMUM5LjYgNDE0LjcgMCAzOTguNiAwIDM4MVYxODRjMC01LjYgMy0xMC45IDcuOC0xMy44czEwLjktMyAxNS44LS4zem00MDAuNyAwYzUtMi43IDExLTIuNiAxNS44IC4zczcuOCA4LjEgNy44IDEzLjhWMzgxYzAgMTcuNi05LjYgMzMuNy0yNSA0Mi4xTDI2My43IDUxMGMtNSAyLjctMTEgMi42LTE1LjgtLjNzLTcuOC04LjEtNy44LTEzLjhWMjgwYzAtNS45IDMuMi0xMS4yIDguMy0xNGwxNzYtOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpY2VGaXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHptNjQgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek05NiAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMjI0IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0LTY0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTMyIDE2MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpY2VGb3VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJIMzg0YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWOTZ6bTE2MCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0xMjggMzg0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMzUyIDE2MGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zMjAgMzg0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGljZU9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6TTIyNCAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWNlU2l4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJIMzg0YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWOTZ6bTE2MCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0xMjggMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTMyIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTMyMCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWNlVGhyZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0em02NCA5NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0IDEyOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xMjggNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWNlVHdvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJIMzg0YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWOTZ6TTM1MiAzNTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTI4IDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc0LjkgMzQuM2MtMjguMS0yOC4xLTczLjctMjguMS0xMDEuOCAwTDM0LjMgMTczLjFjLTI4LjEgMjguMS0yOC4xIDczLjcgMCAxMDEuOEwxNzMuMSA0MTMuN2MyOC4xIDI4LjEgNzMuNyAyOC4xIDEwMS44IDBMNDEzLjcgMjc0LjljMjguMS0yOC4xIDI4LjEtNzMuNyAwLTEwMS44TDI3NC45IDM0LjN6TTIwMCAyMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNOTYgMjAwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjI0IDM3NmEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6TTM1MiAyMDBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0yMjQgMTIwYTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHptOTYgMzI4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDU3NmMzNS4zIDAgNjQtMjguNyA2NC02NFYyNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINDYxLjdjMTEuNiAzNiAzLjEgNzctMjUuNCAxMDUuNUwzMjAgNDEzLjhWNDQ4ek00ODAgMzI4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGlzZWFzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzYuNCA2MS40TDIyNyA3NS41Yy0yMS4zIDMyLTU5LjQgNDguNS05Ny4zIDQyLjFsLTU5LjYtOS45QzMzLjQgMTAxLjYgMCAxMjkuOSAuMSAxNjcuMWMwIDE1LjkgNi40IDMxLjIgMTcuNiA0Mi41bDI5LjIgMjkuMmMxMSAxMSAxNy4yIDI1LjkgMTcuMiA0MS41YzAgMTUuOC02LjQgMzAuOS0xNy43IDQyTDMzLjMgMzM1LjFDMjIuMiAzNDUuOSAxNiAzNjAuNyAxNiAzNzYuMmMwIDM2LjggMzQuMSA2NC4yIDcwLjEgNTYuMmw2Mi4zLTEzLjhjNy43LTEuNyAxNS43LTIuNiAyMy42LTIuNmgxMGMyNy4yIDAgNTMuNyA5LjMgNzUgMjYuM0wyODcuOCA0NjdjMTAuNSA4LjQgMjMuNiAxMyAzNyAxM2MzMi43IDAgNTkuMy0yNi41IDU5LjMtNTkuM2wwLTI1LjJjMC0zNC45IDIxLjQtNjYuMiA1My45LTc4LjhsMzYuOS0xNC4zYzIyLjQtOC43IDM3LjItMzAuMyAzNy4yLTU0LjNjMC0yOC4xLTIwLjEtNTIuMy00Ny44LTU3LjNsLTI4LTUuMWMtMzYuNS02LjctNjUuNC0zNC41LTczLjYtNzAuN2wtNy4xLTMxLjVDMzQ4LjkgNTMuNCAzMjIuMSAzMiAyOTEuMyAzMmMtMjIgMC00Mi42IDExLTU0LjkgMjkuNHpNMTYwIDE5MmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAxNmExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwem0wIDgwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGlzcGxheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFYzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMjQwbC0xMC43IDMySDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0MTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzQ2LjdMMzM2IDQxNkg1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6TTUxMiA2NFYzNTJINjRWNjRINTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaXZpZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyIDk2YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bTAgMzIwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTQwMCAyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINDAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEbmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJjMCA1OS44LTMwLjMgMTA3LjUtNjkuNCAxNDYuNmMtMjggMjgtNjIuNSA1My41LTk3LjMgNzcuNGwtMi41IDEuN2MtMTEuOSA4LjEtMjMuOCAxNi4xLTM1LjUgMjMuOWwwIDAgMCAwIDAgMC0xLjYgMWMtNiA0LTExLjkgNy45LTE3LjggMTEuOWMtMjAuOSAxNC00MC44IDI3LjctNTkuMyA0MS41SDI4My4zYy05LjgtNy40LTIwLjEtMTQuNy0zMC43LTIyLjFsNy00LjcgMy0yYzE1LjEtMTAuMSAzMC45LTIwLjYgNDYuNy0zMS42YzI1IDE4LjEgNDguOSAzNy4zIDY5LjQgNTcuN0M0MTcuNyAzNzIuNSA0NDggNDIwLjIgNDQ4IDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkg2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmMwLTU5LjggMzAuMy0xMDcuNSA2OS40LTE0Ni42YzI4LTI4IDYyLjUtNTMuNSA5Ny4zLTc3LjRjLTM0LjgtMjMuOS02OS4zLTQ5LjMtOTcuMy03Ny40QzMwLjMgMTM5LjUgMCA5MS44IDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwUzY0IDE0LjMgNjQgMzJIMzg0YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zMzguNiAzODRIMTA5LjRjLTEwLjEgMTAuNi0xOC42IDIxLjMtMjUuNSAzMkgzNjQuMWMtNi44LTEwLjctMTUuMy0yMS40LTI1LjUtMzJ6TTEwOS40IDEyOEgzMzguNmMxMC4xLTEwLjcgMTguNi0yMS4zIDI1LjUtMzJIODMuOWM2LjggMTAuNyAxNS4zIDIxLjMgMjUuNSAzMnptNTUuNCA0OGMxOC40IDEzLjggMzguNCAyNy41IDU5LjMgNDEuNWMyMC45LTE0IDQwLjgtMjcuNyA1OS4zLTQxLjVIMTY0Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURvZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDkuNiAxNTguNUwzMzIuNyAxOS44QzMzNC42IDguNCAzNDQuNSAwIDM1Ni4xIDBjNy41IDAgMTQuNSAzLjUgMTkgOS41TDM5MiAzMmg1Mi4xYzEyLjcgMCAyNC45IDUuMSAzMy45IDE0LjFMNDk2IDY0aDU2YzEzLjMgMCAyNCAxMC43IDI0IDI0djI0YzAgNDQuMi0zNS44IDgwLTgwIDgwSDQ2NCA0NDggNDI2LjdsLTUuMSAzMC41LTExMi02NHpNNDE2IDI1Ni4xTDQxNiA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJIMzUyYy0xNy43IDAtMzItMTQuMy0zMi0zMlYzNjQuOGMtMjQgMTIuMy01MS4yIDE5LjItODAgMTkuMnMtNTYtNi45LTgwLTE5LjJWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMySDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYyNDkuOGMtMjguOC0xMC45LTUxLjQtMzUuMy01OS4yLTY2LjVMMSAxNjcuOGMtNC4zLTE3LjEgNi4xLTM0LjUgMjMuMy0zOC44czM0LjUgNi4xIDM4LjggMjMuM2wzLjkgMTUuNUM3MC41IDE4MiA4My4zIDE5MiA5OCAxOTJoMzAgMTZIMzAzLjhMNDE2IDI1Ni4xek00NjQgODBhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG9sbGFyU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMlY2Ny43YzEuNiAuMiAzLjEgLjQgNC43IC43Yy40IC4xIC43IC4xIDEuMSAuMmw0OCA4LjhjMTcuNCAzLjIgMjguOSAxOS45IDI1LjcgMzcuMnMtMTkuOSAyOC45LTM3LjIgMjUuN2wtNDcuNS04LjdjLTMxLjMtNC42LTU4LjktMS41LTc4LjMgNi4ycy0yNy4yIDE4LjMtMjkgMjguMWMtMiAxMC43LS41IDE2LjcgMS4yIDIwLjRjMS44IDMuOSA1LjUgOC4zIDEyLjggMTMuMmMxNi4zIDEwLjcgNDEuMyAxNy43IDczLjcgMjYuM2wyLjkgLjhjMjguNiA3LjYgNjMuNiAxNi44IDg5LjYgMzMuOGMxNC4yIDkuMyAyNy42IDIxLjkgMzUuOSAzOS41YzguNSAxNy45IDEwLjMgMzcuOSA2LjQgNTkuMmMtNi45IDM4LTMzLjEgNjMuNC02NS42IDc2LjdjLTEzLjcgNS42LTI4LjYgOS4yLTQ0LjQgMTFWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjQ0NS4xYy0uNC0uMS0uOS0uMS0xLjMtLjJsLS4yIDAgMCAwYy0yNC40LTMuOC02NC41LTE0LjMtOTEuNS0yNi4zYy0xNi4xLTcuMi0yMy40LTI2LjEtMTYuMi00Mi4yczI2LjEtMjMuNCA0Mi4yLTE2LjJjMjAuOSA5LjMgNTUuMyAxOC41IDc1LjIgMjEuNmMzMS45IDQuNyA1OC4yIDIgNzYtNS4zYzE2LjktNi45IDI0LjYtMTYuOSAyNi44LTI4LjljMS45LTEwLjYgLjQtMTYuNy0xLjMtMjAuNGMtMS45LTQtNS42LTguNC0xMy0xMy4zYy0xNi40LTEwLjctNDEuNS0xNy43LTc0LTI2LjNsLTIuOC0uNyAwIDBDMTE5LjQgMjc5LjMgODQuNCAyNzAgNTguNCAyNTNjLTE0LjItOS4zLTI3LjUtMjItMzUuOC0zOS42Yy04LjQtMTcuOS0xMC4xLTM3LjktNi4xLTU5LjJDMjMuNyAxMTYgNTIuMyA5MS4yIDg0LjggNzguM2MxMy4zLTUuMyAyNy45LTguOSA0My4yLTExVjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb2xseSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMGg3Mi45YzI3LjUgMCA1MiAxNy42IDYwLjcgNDMuOEwyNTcuNyAzMjBjMzAuMSAuNSA1Ni44IDE0LjkgNzQgMzdsMjAyLjEtNjcuNGMxNi44LTUuNiAzNC45IDMuNSA0MC41IDIwLjJzLTMuNSAzNC45LTIwLjIgNDAuNUwzNTIgNDE3LjdjLS45IDUyLjItNDMuNSA5NC4zLTk2IDk0LjNjLTUzIDAtOTYtNDMtOTYtOTZjMC0zMC44IDE0LjUtNTguMiAzNy03NS44TDEwNC45IDY0SDMyQzE0LjMgNjQgMCA0OS43IDAgMzJ6TTI0NC44IDEzNC41Yy01LjUtMTYuOCAzLjctMzQuOSAyMC41LTQwLjNMMzExIDc5LjRsMTkuOCA2MC45IDYwLjktMTkuOEwzNzEuOCA1OS42bDQ1LjctMTQuOGMxNi44LTUuNSAzNC45IDMuNyA0MC4zIDIwLjVsNDkuNCAxNTIuMmM1LjUgMTYuOC0zLjcgMzQuOS0yMC41IDQwLjNMMzM0LjUgMzA3LjJjLTE2LjggNS41LTM0LjktMy43LTQwLjMtMjAuNUwyNDQuOCAxMzQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG9uZ1NpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmgzMnY0OS4xYy0xOC44LTEwLjktNDAuNy0xNy4xLTY0LTE3LjFjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4czU3LjMgMTI4IDEyOCAxMjhjMjQuNSAwIDQ3LjQtNi45IDY2LjgtMTguOGM1IDExLjEgMTYuMiAxOC44IDI5LjIgMTguOGMxNy43IDAgMzItMTQuMyAzMi0zMlYyODggMTI4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0xMjggMjg4YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDM1MmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG9vckNsb3NlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiA2NGMwLTM1LjMgMjguNy02NCA2NC02NEg0MTZjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDQ4aDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDQzMiAxNDQgMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJIOTZWNjR6TTM4NCAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb29yT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMzJjMC05LjktNC41LTE5LjItMTIuMy0yNS4yUzI4OS44LTEuNCAyODAuMiAxbC0xNzkuOSA0NUM3OSA1MS4zIDY0IDcwLjUgNjQgOTIuNVY0NDhIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJIOTYgMjg4aDMyVjQ4MCAzMnpNMjU2IDI1NmMwIDE3LjctMTAuNyAzMi0yNCAzMnMtMjQtMTQuMy0yNC0zMnMxMC43LTMyIDI0LTMyczI0IDE0LjMgMjQgMzJ6bTk2LTEyOGg5NlY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINTEyVjEyOGMwLTM1LjMtMjguNy02NC02NC02NEgzNTJ2NjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURvdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwLjggOTYuNWMxNCAxNyAzMSAzMC45IDQ5LjUgNDIuMmMyNS45IDE1LjggNTMuNyAyNS45IDc3LjcgMzEuNlYxMzguOEMyNjUuOCAxMDguNSAyNTAgNzEuNSAyNDguNiAyOGMtLjQtMTEuMy03LjUtMjEuNS0xOC40LTI0LjRjLTcuNi0yLTE1LjgtLjItMjEgNS44Yy0xMy4zIDE1LjQtMzIuNyA0NC42LTQ4LjQgODcuMnpNMzIwIDE0NHYzMC42bDAgMHYxLjNsMCAwIDAgMzIuMWMtNjAuOC01LjEtMTg1LTQzLjgtMjE5LjMtMTU3LjJDOTcuNCA0MCA4Ny45IDMyIDc2LjYgMzJjLTcuOSAwLTE1LjMgMy45LTE4LjggMTFDNDYuOCA2NS45IDMyIDExMi4xIDMyIDE3NmMwIDExNi45IDgwLjEgMTgwLjUgMTE4LjQgMjAyLjhMMTEuOCA0MTYuNkM2LjcgNDE4IDIuNiA0MjEuOCAuOSA0MjYuOHMtLjggMTAuNiAyLjMgMTQuOEMyMS43IDQ2Ni4yIDc3LjMgNTEyIDE2MCA1MTJjMy42IDAgNy4yLTEuMiAxMC0zLjVMMjQ1LjYgNDQ4SDMyMGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MFYxMjhsMjkuOS00NC45YzEuMy0yIDIuMS00LjQgMi4xLTYuOGMwLTYuOC01LjUtMTIuMy0xMi4zLTEyLjNINDAwYy00NC4yIDAtODAgMzUuOC04MCA4MHptODAtMTZhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb3duTGVmdEFuZFVwUmlnaHRUb0NlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzkgN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwzMiAzMmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtODcgODcgMzkgMzljNi45IDYuOSA4LjkgMTcuMiA1LjIgMjYuMnMtMTIuNSAxNC44LTIyLjIgMTQuOEgyOTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjcyYzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMnMxOS4zLTEuNyAyNi4yIDUuMmwzOSAzOUw0MzkgN3pNNzIgMjcySDIxNmMxMy4zIDAgMjQgMTAuNyAyNCAyNFY0NDBjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtMzktMzlMNzMgNTA1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEw3IDQ3M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsODctODdMNTUgMzEzYy02LjktNi45LTguOS0xNy4yLTUuMi0yNi4yczEyLjUtMTQuOCAyMi4yLTE0Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURvd25Mb25nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMzM0LjVjLTMuOCA4LjgtMiAxOSA0LjYgMjZsMTM2IDE0NGM0LjUgNC44IDEwLjggNy41IDE3LjQgNy41czEyLjktMi43IDE3LjQtNy41bDEzNi0xNDRjNi42LTcgOC40LTE3LjIgNC42LTI2cy0xMi41LTE0LjUtMjItMTQuNWwtNzIgMCAwLTI4OGMwLTE3LjctMTQuMy0zMi0zMi0zMkwxMjggMEMxMTAuMyAwIDk2IDE0LjMgOTYgMzJsMCAyODgtNzIgMGMtOS42IDAtMTguMiA1LjctMjIgMTQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG93bmxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjI3NC43bC03My40LTczLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDEyOCAxMjhjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyODggMjc0LjdWMzJ6TTY0IDM1MmMtMzUuMyAwLTY0IDI4LjctNjQgNjR2MzJjMCAzNS4zIDI4LjcgNjQgNjQgNjRINDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0VjQxNmMwLTM1LjMtMjguNy02NC02NC02NEgzNDYuNWwtNDUuMyA0NS4zYy0yNSAyNS02NS41IDI1LTkwLjUgMEwxNjUuNSAzNTJINjR6bTM2OCA1NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURyYWdvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIgMTI0LjVsLTUxLjktMTNjLTYuNS0xLjYtMTEuMy03LjEtMTItMTMuOHMyLjgtMTMuMSA4LjctMTYuMWw0MC44LTIwLjRMMjk0LjQgMjguOGMtNS41LTQuMS03LjgtMTEuMy01LjYtMTcuOVMyOTcuMSAwIDMwNCAwSDQxNmgzMiAxNmMzMC4yIDAgNTguNyAxNC4yIDc2LjggMzguNGw1Ny42IDc2LjhjNi4yIDguMyA5LjYgMTguNCA5LjYgMjguOGMwIDI2LjUtMjEuNSA0OC00OCA0OEg1MzguNWMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdMNDgwIDE2MEg0NDh2MjEuNWMwIDI0LjggMTIuOCA0Ny45IDMzLjggNjEuMWwxMDYuNiA2Ni42YzMyLjEgMjAuMSA1MS42IDU1LjIgNTEuNiA5My4xQzY0MCA0NjIuOSA1OTAuOSA1MTIgNTMwLjIgNTEySDQ5NiA0MzIgMzIuM2MtMy4zIDAtNi42LS40LTkuNi0xLjRDMTMuNSA1MDcuOCA2IDUwMSAyLjQgNDkyLjFDMSA0ODguNyAuMiA0ODUuMiAwIDQ4MS40Yy0uMi0zLjcgLjMtNy4zIDEuMy0xMC43YzIuOC05LjIgOS42LTE2LjcgMTguNi0yMC40YzMtMS4yIDYuMi0yIDkuNS0yLjJMNDMzLjMgNDEyYzguMy0uNyAxNC43LTcuNyAxNC43LTE2LjFjMC00LjMtMS43LTguNC00LjctMTEuNGwtNDQuNC00NC40Yy0zMC0zMC00Ni45LTcwLjctNDYuOS0xMTMuMVYxODEuNXYtNTd6TTUxMiA3Mi4zYzAtLjEgMC0uMiAwLS4zczAtLjIgMC0uM3YuNnptLTEuMyA3LjRMNDY0LjMgNjguMWMtLjIgMS4zLS4zIDIuNi0uMyAzLjljMCAxMy4zIDEwLjcgMjQgMjQgMjRjMTAuNiAwIDE5LjUtNi44IDIyLjctMTYuM3pNMTMwLjkgMTE2LjVjMTYuMy0xNC41IDQwLjQtMTYuMiA1OC41LTQuMWwxMzAuNiA4N1YyMjdjMCAzMi44IDguNCA2NC44IDI0IDkzSDExMmMtNi43IDAtMTIuNy00LjItMTUtMTAuNHMtLjUtMTMuMyA0LjYtMTcuN0wxNzEgMjMyLjMgMTguNCAyNTUuOGMtNyAxLjEtMTMuOS0yLjYtMTYuOS05cy0xLjUtMTQuMSAzLjgtMTguOEwxMzAuOSAxMTYuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHJhd1BvbHlnb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMTUxLjRWMzYwLjZjOS43IDUuNiAxNy44IDEzLjcgMjMuNCAyMy40SDMyOC42YzAtLjEgLjEtLjIgLjEtLjNsLTQuNS03LjktMzItNTYgMCAwYy0xLjQgLjEtMi44IC4xLTQuMiAuMWMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGMxLjQgMCAyLjggMCA0LjIgLjFsMCAwIDMyLTU2IDQuNS03LjktLjEtLjNIMTE5LjRjLTUuNiA5LjctMTMuNyAxNy44LTIzLjQgMjMuNHpNMzg0LjMgMzUyYzM1LjIgLjIgNjMuNyAyOC43IDYzLjcgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRjLTIzLjcgMC00NC40LTEyLjktNTUuNC0zMkgxMTkuNGMtMTEuMSAxOS4xLTMxLjcgMzItNTUuNCAzMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRjMC0yMy43IDEyLjktNDQuNCAzMi01NS40VjE1MS40QzEyLjkgMTQwLjQgMCAxMTkuNyAwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMyYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMkgzMjguNmMxMS4xLTE5LjEgMzEuNy0zMiA1NS40LTMyYzM1LjMgMCA2NCAyOC43IDY0IDY0YzAgMzUuMy0yOC41IDYzLjgtNjMuNyA2NGwtNC41IDcuOS0zMiA1Ni0yLjMgNGM0LjIgOC41IDYuNSAxOCA2LjUgMjguMXMtMi4zIDE5LjYtNi41IDI4LjFsMi4zIDQgMzIgNTYgNC41IDcuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHJvcGxldFNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCA1MTJjNTMuMiAwIDEwMS40LTIxLjYgMTM2LjEtNTYuNmwtMjk4LjMtMjM1QzE0MCAyNTcuMSAxMjggMjkyLjMgMTI4IDMyMGMwIDEwNiA4NiAxOTIgMTkyIDE5MnpNNTA1LjIgMzcwLjdjNC40LTE2LjEgNi44LTMzLjEgNi44LTUwLjdjMC05MS4yLTEzMC4yLTI2Mi4zLTE2Ni42LTMwOC4zQzMzOS40IDQuMiAzMzAuNSAwIDMyMC45IDBoLTEuOGMtOS42IDAtMTguNSA0LjItMjQuNSAxMS43QzI3Ny44IDMzIDI0MC43IDgxLjMgMjA1LjggMTM2TDM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMNTA1LjIgMzcwLjd6TTIyNCAzMzZjMCA0NC4yIDM1LjggODAgODAgODBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZjLTYxLjkgMC0xMTItNTAuMS0xMTItMTEyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURyb3BsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDUxMkM4NiA1MTIgMCA0MjYgMCAzMjBDMCAyMjguOCAxMzAuMiA1Ny43IDE2Ni42IDExLjdDMTcyLjYgNC4yIDE4MS41IDAgMTkxLjEgMGgxLjhjOS42IDAgMTguNSA0LjIgMjQuNSAxMS43QzI1My44IDU3LjcgMzg0IDIyOC44IDM4NCAzMjBjMCAxMDYtODYgMTkyLTE5MiAxOTJ6TTk2IDMzNmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmMtNDQuMiAwLTgwLTM1LjgtODAtODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURydW1TdGVlbHBhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMzJjMTU5LjEgMCAyODggNDggMjg4IDEyOFYzNTJjMCA4MC0xMjguOSAxMjgtMjg4IDEyOFMwIDQzMiAwIDM1MlYxNjBDMCA4MCAxMjguOSAzMiAyODggMzJ6TTUyOCAxNjBjMC05LjktOC0yOS45LTU1LTQ5LjhjLTE4LjYtNy45LTQwLjktMTQuNC02Ni0xOS40bC0yNy44IDQzLjZjLTcuMyAxMS41LTExLjIgMjQuOC0xMS4yIDM4LjRjMCAxNy41IDYuNCAzNC40IDE4LjEgNDcuNWw5LjggMTFjMjkuOC01LjIgNTUuOS0xMi41IDc3LjItMjEuNWM0Ny4xLTE5LjkgNTUtMzkuOSA1NS00OS44ek0zNDkuMiAyMzcuM2MtOC0yNi4yLTMyLjQtNDUuMy02MS4yLTQ1LjNzLTUzLjMgMTkuMS02MS4yIDQ1LjNjMTkuNCAxLjcgMzkuOSAyLjcgNjEuMiAyLjdzNDEuOC0uOSA2MS4yLTIuN3pNMTY5IDkwLjhjLTI1LjIgNS00Ny40IDExLjYtNjYgMTkuNEM1NiAxMzAuMSA0OCAxNTAuMSA0OCAxNjBzOCAyOS45IDU1IDQ5LjhjMjEuMyA5IDQ3LjQgMTYuMyA3Ny4yIDIxLjVsOS44LTExYzExLjYtMTMuMSAxOC4xLTMwIDE4LjEtNDcuNWMwLTEzLjYtMy45LTI2LjktMTEuMi0zOC40TDE2OSA5MC44em01Ni4zLThDMjI0LjUgODcgMjI0IDkxLjUgMjI0IDk2YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRjMC00LjUtLjUtOS0xLjQtMTMuMkMzMzAuOCA4MSAzMDkuOCA4MCAyODggODBzLTQyLjggMS02Mi42IDIuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHJ1bSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDEuMiA3Ni4xYzExLjEtNy4zIDE0LjItMjIuMSA2LjktMzMuMnMtMjIuMS0xNC4yLTMzLjItNi45TDM3MC4yIDEwNC41QzMzNS44IDk4LjcgMjk3IDk2IDI1NiA5NkMxMTQuNiA5NiAwIDEyOCAwIDIwOFYzNjhjMCAzMS4zIDI3LjQgNTguOCA3MiA3OC43VjM0NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0VjQ2My40YzMzIDguOSA3MS4xIDE0LjUgMTEyIDE2LjFWMzc2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRWNDc5LjVjNDAuOS0xLjYgNzktNy4yIDExMi0xNi4xVjM0NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0VjQ0Ni43YzQ0LjYtMTkuOSA3Mi00Ny40IDcyLTc4LjdWMjA4YzAtNDEuMS0zMC4yLTY5LjUtNzguOC04Ny40bDY3LjktNDQuNXpNMzA3LjQgMTQ1LjZsLTY0LjYgNDIuM2MtMTEuMSA3LjMtMTQuMiAyMi4xLTYuOSAzMy4yczIyLjEgMTQuMiAzMy4yIDYuOWwxMTEuMS03Mi44YzE0LjcgMy4yIDI3LjkgNyAzOS40IDExLjVDNDU4LjQgMTgxLjggNDY0IDE5Ny40IDQ2NCAyMDhjMCAuOC0yLjcgMTcuMi00NiAzNS45QzM3OS4xIDI2MC43IDMyMiAyNzIgMjU2IDI3MnMtMTIzLjEtMTEuMy0xNjItMjguMUM1MC43IDIyNS4yIDQ4IDIwOC44IDQ4IDIwOGMwLTEwLjYgNS42LTI2LjIgNDQuNC00MS4zQzEzMC42IDE1MS45IDE4Ny44IDE0NCAyNTYgMTQ0YzE4IDAgMzUuMSAuNSA1MS40IDEuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHJ1bXN0aWNrQml0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMjY1LjJjMCA4LjUtMy40IDE2LjYtOS40IDIyLjZsLTI2LjggMjYuOGMtMTIuMyAxMi4zLTMyLjUgMTEuNC00OS40IDcuMkM2OS44IDMyMC42IDY1IDMyMCA2MCAzMjBjLTMzLjEgMC02MCAyNi45LTYwIDYwczI2LjkgNjAgNjAgNjBjNi4zIDAgMTIgNS43IDEyIDEyYzAgMzMuMSAyNi45IDYwIDYwIDYwczYwLTI2LjkgNjAtNjBjMC01LS42LTkuOC0xLjgtMTQuNWMtNC4yLTE2LjktNS4yLTM3LjEgNy4yLTQ5LjRsMjYuOC0yNi44YzYtNiAxNC4xLTkuNCAyMi42LTkuNEgzMzZjNi4zIDAgMTIuNC0uMyAxOC41LTFjMTEuOS0xLjIgMTYuNC0xNS41IDEwLjgtMjZjLTguNS0xNS44LTEzLjMtMzMuOC0xMy4zLTUzYzAtNjEuOSA1MC4xLTExMiAxMTItMTEyYzggMCAxNS43IC44IDIzLjIgMi40YzExLjcgMi41IDI0LjEtNS45IDIyLTE3LjZDNDk0LjUgNjIuNSA0MjIuNSAwIDMzNiAwQzIzOC44IDAgMTYwIDc4LjggMTYwIDE3NnY4OS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEdW1iYmVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMlYyMjR2NjRWNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzg0SDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJWMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMySDk2VjY0em00NDggMHY2NGgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnY2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMnY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkg1NDR2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJINDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMlYyODggMjI0IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMyek00MTYgMjI0djY0SDIyNFYyMjRINDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEdW1wc3RlckZpcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDkuNyAzMmw5MC44IDBMMTE0LjkgMTYwbC05NCAwQzkuMyAxNjAgMCAxNTAuNyAwIDEzOS4xYzAtMi4xIC4zLTQuMSAuOS02LjFMMjYuOCA0OC45QzI5LjkgMzguOSAzOS4yIDMyIDQ5LjcgMzJ6TTI3MiAxNjBsLTEyNC41IDBMMTczLjEgMzIgMjcyIDMybDAgMTI4em0zMiAwbDAtMTI4IDk4LjkgMCAxNC40IDcyLjFjLTEuNyAxLjEtMy4zIDIuNC00LjggMy44Yy0xOC40IDE2LjQtMzUuNCAzNC01MC41IDUyLjFsLTU4IDB6bTIwOS45LTIzLjdjLTEuNyAxLjYtMy40IDMuMi01IDQuOEM0OTggMTI5LjYgNDg2LjcgMTE4LjYgNDc1IDEwOGMtNy42LTYuOS0xNy0xMC44LTI2LjYtMTEuOEw0MzUuNSAzMmw5MC44IDBjMTAuNSAwIDE5LjggNi45IDIyLjkgMTYuOUw1NzUuMSAxMzNjLjIgLjcgLjQgMS40IC41IDIuMWMtMTcuOC0xNS00NC4zLTE0LjYtNjEuNyAxLjJ6TTMyNS4yIDIxMC43QzMwNC4zIDI0NC41IDI4OCAyODIuOSAyODggMzE4LjFjMCA0OS4zIDE4LjYgOTUuMiA0OS42IDEyOS45TDEyOCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMNDQgMjg4bC0xMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQgMC00LTMyIDMwNS41IDBjLTQuNCA2LjItOC41IDEyLjUtMTIuMyAxOC43em0xODAuNi0zNC41TDUxOCAxNjIuNWM1LjQtNi4xIDEzLjMtOC44IDIwLjktOC45YzcuMiAwIDE0LjMgMi42IDE5LjkgNy44YzE5LjcgMTguMyAzOS44IDQzLjIgNTUgNzAuNkM2MjkgMjU5LjIgNjQwIDI5MC4yIDY0MCAzMjAuMkM2NDAgNDA4LjggNTY4LjcgNDgwIDQ4MCA0ODBjLTg5LjYgMC0xNjAtNzEuMy0xNjAtMTU5LjhjMC0zNy4zIDE2LTczLjQgMzYuOC0xMDQuNWMyMC45LTMxLjMgNDcuNS01OSA3MC45LTgwLjJjNS43LTUuMiAxMy4xLTcuNyAyMC4zLTcuNWMxNC4xIC4zIDIzLjggMTEuNCAzMi43IDIxLjZjMCAwIDAgMCAwIDBjMiAyLjMgNCA0LjYgNiA2LjdsMTkgMTkuOXpNNTQ0IDM2OC4yYzAtMzYuNS0zNy03My01NC44LTg4LjRjLTUuNC00LjctMTMuMS00LjctMTguNSAwQzQ1MyAyOTUuMSA0MTYgMzMxLjYgNDE2IDM2OC4yYzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUR1bXBzdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5LjcgMzJjLTEwLjUgMC0xOS44IDYuOS0yMi45IDE2LjlMLjkgMTMzYy0uNiAyLS45IDQuMS0uOSA2LjFDMCAxNTAuNyA5LjMgMTYwIDIwLjkgMTYwaDk0TDE0MC41IDMySDQ5Ljd6TTI3MiAxNjBWMzJIMTczLjFMMTQ3LjUgMTYwSDI3MnptMzIgMEg0MjguNUw0MDIuOSAzMkgzMDRWMTYwem0xNTcuMSAwaDk0YzExLjUgMCAyMC45LTkuMyAyMC45LTIwLjljMC0yLjEtLjMtNC4xLS45LTYuMUw1NDkuMiA0OC45QzU0Ni4xIDM4LjkgNTM2LjggMzIgNTI2LjMgMzJINDM1LjVsMjUuNiAxMjh6TTMyIDE5Mmw0IDMySDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQ0TDY0IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMySDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDIwLTE2MGgxMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmgtNGw0LTMySDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEdW5nZW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNi42IDE1Ni41YzEuMyAxLjEgMi43IDIuMiAzLjkgMy4zYzkuMyA4LjIgMjMgMTAuNSAzMy40IDMuNmw2Ny42LTQ1LjFjMTEuNC03LjYgMTQuMi0yMy4yIDUuMS0zMy40QzQzMCA2Ni42IDQxMC45IDUwLjYgMzg5LjcgMzcuNmMtMTEuOS03LjMtMjYuOS0xLjQtMzIuMSAxMS42bC0zMC41IDc2LjJjLTQuNSAxMS4xIC4yIDIzLjYgOS41IDMxLjJ6TTMyOCAzNi44YzUuMS0xMi44LTEuNi0yNy40LTE1LTMwLjVDMjk0LjcgMi4yIDI3NS42IDAgMjU2IDBzLTM4LjcgMi4yLTU3IDYuNEMxODUuNSA5LjQgMTc4LjggMjQgMTg0IDM2LjhsMzAuMyA3NS44YzQuNSAxMS4zIDE2LjggMTcuMiAyOSAxNmM0LjItLjQgOC40LS42IDEyLjctLjZzOC42IC4yIDEyLjcgLjZjMTIuMSAxLjIgMjQuNC00LjcgMjktMTZMMzI4IDM2Ljh6TTY1LjUgODVjLTkuMSAxMC4yLTYuMyAyNS44IDUuMSAzMy40bDY3LjYgNDUuMWMxMC4zIDYuOSAyNC4xIDQuNiAzMy40LTMuNmMxLjMtMS4xIDIuNi0yLjMgNC0zLjNjOS4zLTcuNSAxMy45LTIwLjEgOS41LTMxLjJMMTU0LjQgNDkuMmMtNS4yLTEyLjktMjAuMy0xOC44LTMyLjEtMTEuNkMxMDEuMSA1MC42IDgyIDY2LjYgNjUuNSA4NXptMzE0IDEzNy4xYy45IDMuMyAxLjcgNi42IDIuMyAxMGMyLjUgMTMgMTMgMjMuOSAyNi4yIDIzLjloODBjMTMuMyAwIDI0LjEtMTAuOCAyMi45LTI0Yy0yLjUtMjcuMi05LjMtNTMuMi0xOS43LTc3LjNjLTUuNS0xMi45LTIxLjQtMTYuNi0zMy4xLTguOWwtNjguNiA0NS43Yy05LjggNi41LTEzLjIgMTkuMi0xMCAzMC41ek01My45IDE0NS44Yy0xMS42LTcuOC0yNy42LTQtMzMuMSA4LjlDMTAuNCAxNzguOCAzLjYgMjA0LjggMS4xIDIzMmMtMS4yIDEzLjIgOS42IDI0IDIyLjkgMjRoODBjMTMuMyAwIDIzLjgtMTAuOCAyNi4yLTIzLjljLjYtMy40IDEuNC02LjcgMi4zLTEwYzMuMS0xMS40LS4yLTI0LTEwLTMwLjVMNTMuOSAxNDUuOHpNMTA0IDI4OEgyNGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2NDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRoODBjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMzEyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0zMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2NDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRoODBjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMzEyYzAtMTMuMy0xMC43LTI0LTI0LTI0SDQwOHpNMjQgNDE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHY0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGg4MGMxMy4zIDAgMjQtMTAuNyAyNC0yNFY0NDBjMC0xMy4zLTEwLjctMjQtMjQtMjRIMjR6bTM4NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHY0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGg4MGMxMy4zIDAgMjQtMTAuNyAyNC0yNFY0NDBjMC0xMy4zLTEwLjctMjQtMjQtMjRINDA4ek0yNzIgMTkyYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2VjQ2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjE5MnptLTY0IDMyYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2VjQ2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjIyNHptMTI4IDBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZWNDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMjI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWMjU2IDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINjRWMjg4SDIyNGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg2NFY5NkgyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVhckRlYWYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAyLjYgNTQuNmwtNDAgNDBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDQwLTQwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bS0zMjAgMzIwbC0xMjggMTI4Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxMjgtMTI4YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6TTI0MCAxMjhjLTU3LjYgMC0xMDUuMSA0My42LTExMS4zIDk5LjVjLTEuOSAxNy42LTE3LjggMzAuMi0zNS4zIDI4LjNzLTMwLjItMTcuOC0yOC4zLTM1LjNDNzQuOCAxMzIuNSAxNDkuNCA2NCAyNDAgNjRjOTcuMiAwIDE3NiA3OC44IDE3NiAxNzZjMCA0Ni0xNy43IDg3LjktNDYuNiAxMTkuM2MtMTIgMTMtMTcuNCAyNC44LTE3LjQgMzQuN1Y0MDBjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTYuMWMwLTMyLjkgMTcuNC01OS42IDM0LjQtNzhjMTguNC0yMCAyOS42LTQ2LjYgMjkuNi03NS45YzAtNjEuOS01MC4xLTExMi0xMTItMTEyem0wIDgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFYXJMaXN0ZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzk4LjMgMy40Yy0xNS44LTcuOS0zNS0xLjUtNDIuOSAxNC4zYy03LjkgMTUuOC0xLjUgMzQuOSAxNC4yIDQyLjlsLjQgLjJjLjQgLjIgMS4xIC42IDIuMSAxLjJjMiAxLjIgNSAzIDguNyA1LjZjNy41IDUuMiAxNy42IDEzLjIgMjcuNyAyNC4yQzQyOC41IDExMy40IDQ0OCAxNDYgNDQ4IDE5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtNjYtMjguNS0xMTMuNC01Ni41LTE0My43QzQ0MS42IDMzLjIgNDI3LjcgMjIuMiA0MTcuMyAxNWMtNS4zLTMuNy05LjctNi40LTEzLTguM2MtMS42LTEtMy0xLjctNC0yLjJjLS41LS4zLS45LS41LTEuMi0uN2wtLjQtLjItLjItLjEtLjEgMCAwIDBjMCAwIDAgMC0xNC4zIDI4LjZMMzk4LjMgMy40ek0xMjguNyAyMjcuNWM2LjItNTYgNTMuNy05OS41IDExMS4zLTk5LjVjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJjMCAyOS4zLTExLjIgNTUuOS0yOS42IDc1LjljLTE3IDE4LjQtMzQuNCA0NS4xLTM0LjQgNzhWNDAwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyYzYxLjkgMCAxMTItNTAuMSAxMTItMTEydi02LjFjMC05LjggNS40LTIxLjcgMTcuNC0zNC43QzM5OC4zIDMyNy45IDQxNiAyODYgNDE2IDI0MGMwLTk3LjItNzguOC0xNzYtMTc2LTE3NkMxNDkuNCA2NCA3NC44IDEzMi41IDY1LjEgMjIwLjVjLTEuOSAxNy42IDEwLjcgMzMuNCAyOC4zIDM1LjNzMzMuNC0xMC43IDM1LjMtMjguM3pNMzIgNTEyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMTkyIDM1MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek00MS40IDM2MS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDB6TTIwOCAyNDBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVhcnRoQWZyaWNhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3Ny44IDYzLjJsMTAgMTcuNGMyLjggNC44IDQuMiAxMC4zIDQuMiAxNS45djQxLjRjMCAzLjkgMS42IDcuNyA0LjMgMTAuNGM2LjIgNi4yIDE2LjUgNS43IDIyLTEuMmwxMy42LTE3YzQuNy01LjkgMTIuOS03LjcgMTkuNi00LjNsMTUuMiA3LjZjMy40IDEuNyA3LjIgMi42IDExIDIuNmM2LjUgMCAxMi44LTIuNiAxNy40LTcuMmwzLjktMy45YzIuOS0yLjkgNy4zLTMuNiAxMS0xLjhsMjkuMiAxNC42YzcuOCAzLjkgMTIuNiAxMS44IDEyLjYgMjAuNWMwIDEwLjUtNy4xIDE5LjYtMTcuMyAyMi4ybC0zNS40IDguOGMtNy40IDEuOC0xNS4xIDEuNS0yMi40LS45bC0zMi0xMC43Yy0zLjMtMS4xLTYuNy0xLjctMTAuMi0xLjdjLTcgMC0xMy44IDIuMy0xOS40IDYuNUwxNzYgMjEyYy0xMC4xIDcuNi0xNiAxOS40LTE2IDMydjI4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDMyYzguOCAwIDE2IDcuMiAxNiAxNnY0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmMxMC4xIDAgMTkuNi00LjcgMjUuNi0xMi44bDI1LjYtMzQuMWM4LjMtMTEuMSAxMi44LTI0LjYgMTIuOC0zOC40VjMxOC42YzAtMy45IDIuNi03LjMgNi40LTguMmw1LjMtMS4zYzExLjktMyAyMC4zLTEzLjcgMjAuMy0yNmMwLTcuMS0yLjgtMTMuOS03LjgtMTguOWwtMzMuNS0zMy41Yy0zLjctMy43LTMuNy05LjcgMC0xMy40YzUuNy01LjcgMTQuMS03LjcgMjEuOC01LjFsMTQuMSA0LjdjMTIuMyA0LjEgMjUuNy0xLjUgMzEuNS0xM2MzLjUtNyAxMS4yLTEwLjggMTguOS05LjJsMjcuNCA1LjVDNDMyIDExMi40IDM1MS41IDQ4IDI1NiA0OGMtMjcuNyAwLTU0IDUuNC03OC4yIDE1LjJ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWFydGhBbWVyaWNhcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01Ny43IDE5M2w5LjQgMTYuNGM4LjMgMTQuNSAyMS45IDI1LjIgMzggMjkuOEwxNjMgMjU1LjdjMTcuMiA0LjkgMjkgMjAuNiAyOSAzOC41djM5LjljMCAxMSA2LjIgMjEgMTYgMjUuOXMxNiAxNC45IDE2IDI1Ljl2MzljMCAxNS42IDE0LjkgMjYuOSAyOS45IDIyLjZjMTYuMS00LjYgMjguNi0xNy41IDMyLjctMzMuOGwyLjgtMTEuMmM0LjItMTYuOSAxNS4yLTMxLjQgMzAuMy00MGw4LjEtNC42YzE1LTguNSAyNC4yLTI0LjUgMjQuMi00MS43di04LjNjMC0xMi43LTUuMS0yNC45LTE0LjEtMzMuOWwtMy45LTMuOWMtOS05LTIxLjItMTQuMS0zMy45LTE0LjFIMjU3Yy0xMS4xIDAtMjIuMS0yLjktMzEuOC04LjRsLTM0LjUtMTkuN2MtNC4zLTIuNS03LjYtNi41LTkuMi0xMS4yYy0zLjItOS42IDEuMS0yMCAxMC4yLTI0LjVsNS45LTNjNi42LTMuMyAxNC4zLTMuOSAyMS4zLTEuNWwyMy4yIDcuN2M4LjIgMi43IDE3LjItLjQgMjEuOS03LjVjNC43LTcgNC4yLTE2LjMtMS4yLTIyLjhsLTEzLjYtMTYuM2MtMTAtMTItOS45LTI5LjUgLjMtNDEuM2wxNS43LTE4LjNjOC44LTEwLjMgMTAuMi0yNSAzLjUtMzYuN2wtMi40LTQuMmMtMy41LS4yLTYuOS0uMy0xMC40LS4zQzE2My4xIDQ4IDg0LjQgMTA4LjkgNTcuNyAxOTN6TTQ2NCAyNTZjMC0zNi44LTkuNi03MS40LTI2LjQtMTAxLjVMNDEyIDE2NC44Yy0xNS43IDYuMy0yMy44IDIzLjgtMTguNSAzOS44bDE2LjkgNTAuN2MzLjUgMTAuNCAxMiAxOC4zIDIyLjYgMjAuOWwyOS4xIDcuM2MxLjItOSAxLjgtMTguMiAxLjgtMjcuNXpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFYXJ0aEFzaWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEuNyAyOTUuMWwzMS43IDYuM2M3LjkgMS42IDE2LS45IDIxLjctNi42bDE1LjQtMTUuNGMxMS42LTExLjYgMzEuMS04LjQgMzguNCA2LjJsOS4zIDE4LjVjNC44IDkuNiAxNC42IDE1LjcgMjUuNCAxNS43YzE1LjIgMCAyNi4xLTE0LjYgMjEuNy0yOS4ybC02LTE5LjljLTQuNi0xNS40IDYuOS0zMC45IDIzLTMwLjloMi4zYzEzLjQgMCAyNS45LTYuNyAzMy4zLTE3LjhsMTAuNy0xNi4xYzUuNi04LjUgNS4zLTE5LjYtLjgtMjcuN2wtMTYuMS0yMS41Yy0xMC4zLTEzLjctMy4zLTMzLjUgMTMuNC0zNy43bDE3LTQuM2M3LjUtMS45IDEzLjYtNy4yIDE2LjUtMTQuNGwxNi40LTQwLjlDMzAzLjQgNTIuMSAyODAuMiA0OCAyNTYgNDhDMTQxLjEgNDggNDggMTQxLjEgNDggMjU2YzAgMTMuNCAxLjMgMjYuNSAzLjcgMzkuMXptNDA3LjcgNC42Yy0zLS4zLTYtLjEtOSAuOGwtMTUuOCA0LjRjLTYuNyAxLjktMTMuOC0uOS0xNy41LTYuN2wtMi0zLjFjLTYtOS40LTE2LjQtMTUuMS0yNy42LTE1LjFzLTIxLjYgNS43LTI3LjYgMTUuMWwtNi4xIDkuNWMtMS40IDIuMi0zLjQgNC4xLTUuNyA1LjNMMzEyIDMzMC4xYy0xOC4xIDEwLjEtMjUuNSAzMi40LTE3IDUxLjNsNS41IDEyLjRjOC42IDE5LjIgMzAuNyAyOC41IDUwLjUgMjEuMWwyLjYtMWMxMC0zLjcgMjEuMy0yLjIgMjkuOSA0LjFsMS41IDEuMWMzNy4yLTI5LjUgNjQuMS03MS40IDc0LjQtMTE5LjV6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMTQ0LjUgOTIuMWMtMi4xIDguNiAzLjEgMTcuMyAxMS42IDE5LjRsMzIgOGM4LjYgMi4xIDE3LjMtMy4xIDE5LjQtMTEuNnMtMy4xLTE3LjMtMTEuNi0xOS40bC0zMi04Yy04LjYtMi4xLTE3LjMgMy4xLTE5LjQgMTEuNnptOTItMjBjLTIuMSA4LjYgMy4xIDE3LjMgMTEuNiAxOS40czE3LjMtMy4xIDE5LjQtMTEuNmw4LTMyYzIuMS04LjYtMy4xLTE3LjMtMTEuNi0xOS40cy0xNy4zIDMuMS0xOS40IDExLjZsLTggMzJ6TTM0My4yIDExMy43Yy03LjktNC0xNy41LS43LTIxLjUgNy4ybC0xNiAzMmMtNCA3LjktLjcgMTcuNSA3LjIgMjEuNXMxNy41IC43IDIxLjUtNy4ybDE2LTMyYzQtNy45IC43LTE3LjUtNy4yLTIxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVhcnRoRXVyb3BlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI2Ni4zIDQ4LjNMMjMyLjUgNzMuNmMtNS40IDQtOC41IDEwLjQtOC41IDE3LjF2OS4xYzAgNi44IDUuNSAxMi4zIDEyLjMgMTIuM2MyLjQgMCA0LjgtLjcgNi44LTIuMWw0MS44LTI3LjljMi0xLjMgNC40LTIuMSA2LjgtMi4xaDFjNi4yIDAgMTEuMyA1LjEgMTEuMyAxMS4zYzAgMy0xLjIgNS45LTMuMyA4bC0xOS45IDE5LjljLTUuOCA1LjgtMTIuOSAxMC4yLTIwLjcgMTIuOGwtMjYuNSA4LjhjLTUuOCAxLjktOS42IDcuMy05LjYgMTMuNGMwIDMuNy0xLjUgNy4zLTQuMSAxMGwtMTcuOSAxNy45Yy02LjQgNi40LTkuOSAxNS05LjkgMjR2NC4zYzAgMTYuNCAxMy42IDI5LjcgMjkuOSAyOS43YzExIDAgMjEuMi02LjIgMjYuMS0xNmw0LTguMWMyLjQtNC44IDcuNC03LjkgMTIuOC03LjljNC41IDAgOC43IDIuMSAxMS40IDUuN2wxNi4zIDIxLjdjMi4xIDIuOSA1LjUgNC41IDkuMSA0LjVjOC40IDAgMTMuOS04LjkgMTAuMS0xNi40bC0xLjEtMi4zYy0zLjUtNyAwLTE1LjUgNy41LTE4bDIxLjItNy4xYzcuNi0yLjUgMTIuNy05LjYgMTIuNy0xNy42YzAtMTAuMyA4LjMtMTguNiAxOC42LTE4LjZINDAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDM3OS4zYy03LjIgMC0xNC4yIDIuOS0xOS4zIDhsLTQuNyA0LjdjLTIuMSAyLjEtMy4zIDUtMy4zIDhjMCA2LjIgNS4xIDExLjMgMTEuMyAxMS4zaDExLjNjNiAwIDExLjggMi40IDE2IDYuNmw2LjUgNi41YzEuOCAxLjggMi44IDQuMyAyLjggNi44cy0xIDUtMi44IDYuOGwtNy41IDcuNUMzODYgMjYyIDM4NCAyNjYuOSAzODQgMjcyczIgMTAgNS43IDEzLjdMNDA4IDMwNGMxMC4yIDEwLjIgMjQuMSAxNiAzOC42IDE2SDQ1NGM2LjUtMjAuMiAxMC00MS43IDEwLTY0YzAtMTExLjQtODcuNi0yMDIuNC0xOTcuNy0yMDcuN3ptMTcyIDMwNy45Yy0zLjctMi42LTguMi00LjEtMTMtNC4xYy02IDAtMTEuOC0yLjQtMTYtNi42TDM5NiAzMzJjLTcuNy03LjctMTgtMTItMjguOS0xMmMtOS43IDAtMTkuMi0zLjUtMjYuNi05LjhMMzE0IDI4Ny40Yy0xMS42LTkuOS0yNi40LTE1LjQtNDEuNy0xNS40SDI1MS40Yy0xMi42IDAtMjUgMy43LTM1LjUgMTAuN0wxODguNSAzMDFjLTE3LjggMTEuOS0yOC41IDMxLjktMjguNSA1My4zdjMuMmMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM2wxNiAxNmM4LjUgOC41IDIwIDEzLjMgMzIgMTMuM0gyNDhjMTMuMyAwIDI0IDEwLjcgMjQgMjRjMCAyLjUgLjQgNSAxLjEgNy4zYzcxLjMtNS44IDEzMi41LTQ3LjYgMTY1LjItMTA3LjJ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpNMTg3LjMgMTAwLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwbC0zMiAzMmMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDMyLTMyYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFYXJ0aE9jZWFuaWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIwOC42IDM1Ny4zbC0zOS0xMy41Yy02LjUtMi4yLTEzLjYtMi4zLTIwLjEtLjNsLTE1LjMgNC45Yy0xOC41IDUuOS0zOC41LTIuNC00Ny41LTE5LjVsLTMuMy02LjJjLTEwLjYtMjAuMS0yLjMtNDUgMTguMi01NC43bDM1LjMtMTYuOGMyLjMtMS4xIDQuNC0yLjggNS45LTQuOGw1LjMtN2M3LjItOS42IDE4LjYtMTUuMyAzMC42LTE1LjNzMjMuNCA1LjcgMzAuNiAxNS4zbDQuNiA2LjFjMiAyLjYgNC45IDQuNSA4LjEgNS4xYzcuOCAxLjYgMTUuNy0xLjUgMjAuNC03LjlsMTAuNC0xNC4yYzItMi44IDUuMy00LjQgOC43LTQuNGM0LjQgMCA4LjQgMi43IDEwIDYuOGwxMC4xIDI1LjljMi44IDcuMiA2LjcgMTQgMTEuNSAyMC4yTDMxMSAyOTkuOGM1LjggNy40IDkgMTYuNiA5IDI2cy0zLjIgMTguNi05IDI2TDI5OSAzNjcuMmMtOC4zIDEwLjYtMjEgMTYuOC0zNC40IDE2LjhjLTguNCAwLTE2LjYtMi40LTIzLjctN2wtMjUuNC0xNi40Yy0yLjItMS40LTQuNS0yLjUtNi45LTMuNHptNjUuMi0yMTQuOEwyOTYgMTY0LjdjMTAuMSAxMC4xIDIuOSAyNy4zLTExLjMgMjcuM0gyNTQuOGMtNS42IDAtMTEuMS0xLjItMTYuMi0zLjRsLTQyLjgtMTljLTE0LjMtNi4zLTExLjktMjcuMyAzLjQtMzAuM2wzOC41LTcuN2MxMy4xLTIuNiAyNi43IDEuNSAzNi4xIDEwLjl6TTI0OCA0MzJjMC04LjggNy4yLTE2IDE2LTE2aDE2YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDI2NGMtOC44IDAtMTYtNy4yLTE2LTE2ek00MzEuMiAyOTguOWw4IDI0YzIuOCA4LjQtMS43IDE3LjQtMTAuMSAyMC4ycy0xNy40LTEuNy0yMC4yLTEwLjFsLTgtMjRjLTIuOC04LjQgMS43LTE3LjQgMTAuMS0yMC4yczE3LjQgMS43IDIwLjIgMTAuMXptLTE5LjkgODAuNGwtMzIgMzJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzItMzJjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFZ2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDQ5NkM4NiA0OTYgMCAzOTQgMCAyODhDMCAxNzYgNjQgMTYgMTkyIDE2czE5MiAxNjAgMTkyIDI3MmMwIDEwNi04NiAyMDgtMTkyIDIwOHpNMTU0LjggMTM0YzYuNS02IDctMTYuMSAxLTIyLjZzLTE2LjEtNy0yMi42LTFjLTIzLjkgMjEuOC00MS4xIDUyLjctNTIuMyA4NC4yQzY5LjcgMjI2LjEgNjQgMjU5LjcgNjQgMjg4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZjMC0yNC41IDUtNTQuNCAxNS4xLTgyLjhjMTAuMS0yOC41IDI1LTU0LjEgNDMuNy03MS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFamVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMzJjMTMuNSAwIDI2LjMgNS42IDM1LjQgMTUuNmwxNzYgMTkyYzEyLjkgMTQgMTYuMiAzNC4zIDguNiA1MS44UzQxOSAzMjAgNDAwIDMyMEg0OGMtMTkgMC0zNi4zLTExLjItNDMuOS0yOC43cy00LjMtMzcuNyA4LjYtNTEuOGwxNzYtMTkyQzE5Ny43IDM3LjYgMjEwLjUgMzIgMjI0IDMyek0wIDQzMmMwLTI2LjUgMjEuNS00OCA0OC00OEg0MDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFbGV2YXRvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMzIuNyA0LjdsLTY0IDY0Yy00LjYgNC42LTUuOSAxMS41LTMuNSAxNy40czguMyA5LjkgMTQuOCA5LjlIMjA4YzYuNSAwIDEyLjMtMy45IDE0LjgtOS45czEuMS0xMi45LTMuNS0xNy40bC02NC02NGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDB6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFYxOTJjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6bTk2IDk2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNODAgNDAwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDY0YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djE2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDExMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDAwem0xOTIgMGMwLTI2LjUgMjEuNS00OCA0OC00OGg2NGMyNi41IDAgNDggMjEuNSA0OCA0OHYxNmMwIDE3LjctMTQuMyAzMi0zMiAzMkgzMDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQwMHptMzItMTI4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTM1Ni43IDkxLjNjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNjQtNjRjNC42LTQuNiA1LjktMTEuNSAzLjUtMTcuNFM0MzguNSAwIDQzMiAwSDMwNGMtNi41IDAtMTIuMyAzLjktMTQuOCA5LjlzLTEuMSAxMi45IDMuNSAxNy40bDY0IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFbGxpcHNpc1ZlcnRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAxMjggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDM2MGE1NiA1NiAwIDEgMCAwIDExMiA1NiA1NiAwIDEgMCAwLTExMnptMC0xNjBhNTYgNTYgMCAxIDAgMCAxMTIgNTYgNTYgMCAxIDAgMC0xMTJ6TTEyMCA5NkE1NiA1NiAwIDEgMCA4IDk2YTU2IDU2IDAgMSAwIDExMiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFbGxpcHNpcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDI1NmE1NiA1NiAwIDEgMSAxMTIgMEE1NiA1NiAwIDEgMSA4IDI1NnptMTYwIDBhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0yMTYtNTZhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVudmVsb3BlQ2lyY2xlQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggNjRDMjEuNSA2NCAwIDg1LjUgMCAxMTJjMCAxNS4xIDcuMSAyOS4zIDE5LjIgMzguNEwyMzYuOCAzMTMuNmMxMS40IDguNSAyNyA4LjUgMzguNCAwbDU3LjQtNDNjMjMuOS01OS44IDc5LjctMTAzLjMgMTQ2LjMtMTA5LjhsMTMuOS0xMC40YzEyLjEtOS4xIDE5LjItMjMuMyAxOS4yLTM4LjRjMC0yNi41LTIxLjUtNDgtNDgtNDhINDh6TTI5NC40IDMzOS4yYy0yMi44IDE3LjEtNTQgMTcuMS03Ni44IDBMMCAxNzZWMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM2MC4yQzMzNS4xIDQxNy42IDMyMCAzNzguNSAzMjAgMzM2YzAtNS42IC4zLTExLjEgLjgtMTYuNmwtMjYuNCAxOS44ek02NDAgMzM2YTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS03Ni43LTQzLjNjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTcyIDcyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEw0ODAgMzUzLjRsNjAuNy02MC43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFbnZlbG9wZU9wZW5UZXh0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNS40IDk2SDE0NCAxMDcuOCA5NnY4LjhWMTQ0djQwLjQgODlMLjIgMjAyLjVjMS42LTE4LjEgMTAuOS0zNC45IDI1LjctNDUuOEw0OCAxNDAuM1Y5NmMwLTI2LjUgMjEuNS00OCA0OC00OGg3Ni42bDQ5LjktMzYuOUMyMzIuMiAzLjkgMjQzLjkgMCAyNTYgMHMyMy44IDMuOSAzMy41IDExTDMzOS40IDQ4SDQxNmMyNi41IDAgNDggMjEuNSA0OCA0OHY0NC4zbDIyLjEgMTYuNGMxNC44IDEwLjkgMjQuMSAyNy43IDI1LjcgNDUuOEw0MTYgMjczLjR2LTg5VjE0NCAxMDQuOCA5Nkg0MDQuMiAzNjggMjk2LjYgMjE1LjR6TTAgNDQ4VjI0Mi4xTDIxNy42IDQwMy4zYzExLjEgOC4yIDI0LjYgMTIuNyAzOC40IDEyLjdzMjcuMy00LjQgMzguNC0xMi43TDUxMiAyNDIuMVY0NDh2MGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjR2MHpNMTc2IDE2MEgzMzZjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMTc2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0wIDY0SDMzNmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVudmVsb3BlT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAyMDguMUwyNTYgNjUuOSA0NDggMjA4LjF2NDcuNEwyODkuNSAzNzNjLTkuNyA3LjItMjEuNCAxMS0zMy41IDExcy0yMy44LTMuOS0zMy41LTExTDY0IDI1NS41VjIwOC4xek0yNTYgMGMtMTIuMSAwLTIzLjggMy45LTMzLjUgMTFMMjUuOSAxNTYuN0M5LjYgMTY4LjggMCAxODcuOCAwIDIwOC4xVjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMjA4LjFjMC0yMC4zLTkuNi0zOS40LTI1LjktNTEuNEwyODkuNSAxMUMyNzkuOCAzLjkgMjY4LjEgMCAyNTYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRW52ZWxvcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggNjRDMjEuNSA2NCAwIDg1LjUgMCAxMTJjMCAxNS4xIDcuMSAyOS4zIDE5LjIgMzguNEwyMzYuOCAzMTMuNmMxMS40IDguNSAyNyA4LjUgMzguNCAwTDQ5Mi44IDE1MC40YzEyLjEtOS4xIDE5LjItMjMuMyAxOS4yLTM4LjRjMC0yNi41LTIxLjUtNDgtNDgtNDhINDh6TTAgMTc2VjM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTc2TDI5NC40IDMzOS4yYy0yMi44IDE3LjEtNTQgMTcuMS03Ni44IDBMMCAxNzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVudmVsb3Blc0J1bGsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDBDMTEwLjMgMCA5NiAxNC4zIDk2IDMyVjIyNGg5NlYxOTJjMC0zNS4zIDI4LjctNjQgNjQtNjRINDgwVjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMySDEyOHpNMjU2IDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzJoOTZjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDE2SDU3NmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJIMjU2em0yNDAgNjRoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkg0OTZjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDBjMC04LjggNy4yLTE2IDE2LTE2ek02NCAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjEzTDE4Ny4xIDQxNS45YzEuNCAxIDMuMSAxLjYgNC45IDEuNnMzLjUtLjYgNC45LTEuNkwzNTIgMzAxVjI4OGMwLTE3LjctMTQuMy0zMi0zMi0zMkg2NHptMjg4IDg0LjhMMjE2IDQ0MS42Yy02LjkgNS4xLTE1LjMgNy45LTI0IDcuOXMtMTctMi44LTI0LTcuOUwzMiAzNDAuOFY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzIwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM0MC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFcXVhbHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQwMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg0OHptMCAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINDAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFcmFzZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjkwLjcgNTcuNEw1Ny40IDI5MC43Yy0yNSAyNS0yNSA2NS41IDAgOTAuNWw4MCA4MGMxMiAxMiAyOC4zIDE4LjcgNDUuMyAxOC43SDI4OGg5LjRINTEyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDM4Ny45TDUxOC42IDI4NS4zYzI1LTI1IDI1LTY1LjUgMC05MC41TDM4MS4zIDU3LjRjLTI1LTI1LTY1LjUtMjUtOTAuNSAwek0yOTcuNCA0MTZIMjg4bC0xMDUuNCAwLTgwLTgwTDIyNy4zIDIxMS4zIDM2NC43IDM0OC43IDI5Ny40IDQxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXRoZXJuZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyMjRWNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMySDk2VjMzNmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2VjQ0OGg2NFYzMzZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNlY0NDhoNjRWMzM2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZWNDQ4aDY0VjMzNmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2VjQ0OGg2NGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJINDQ4VjE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzODRWOTZjMC0xNy43LTE0LjMtMzItMzItMzJIMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzMkg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzJIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFdXJvU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OC4xIDI0MGMtLjEgMi43LS4xIDUuMy0uMSA4djE2YzAgMi43IDAgNS4zIC4xIDhIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINjAuM0M4OS45IDQxOS45IDE3MCA0ODAgMjY0IDQ4MGgyNGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgyNjRjLTU3LjkgMC0xMDguMi0zMi40LTEzMy45LTgwSDI1NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxMTIuMmMtLjEtMi42LS4yLTUuMy0uMi04VjI0OGMwLTIuNyAuMS01LjQgLjItOEgyNTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTMwLjFjMjUuNy00Ny42IDc2LTgwIDEzMy45LTgwaDI0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDI2NEMxNzAgMzIgODkuOSA5Mi4xIDYwLjMgMTc2SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQ4LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV4Y2xhbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRWMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWNjR6TTMyIDQ4MGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV4cGFuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0djk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWOTZoNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzJ6TTY0IDM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnY5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg2NFYzNTJ6TTMyMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmg2NHY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjY0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyMHpNNDQ4IDM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnY2NEgzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeHBsb3Npb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk5LjYgMTEuM2M2LjctMTAuNyAyMC41LTE0LjUgMzEuNy04LjVzMTUuOCAxOS41IDEwLjYgMzFMNDA0LjggMzM4LjZjMi4yIDIuMyA0LjMgNC43IDYuMyA3LjFsOTcuMi01NC43YzEwLjUtNS45IDIzLjYtMy4xIDMwLjkgNi40czYuMyAyMy0yLjIgMzEuNWwtODcgODdIMzc4LjVjLTEzLjItMzcuMy00OC43LTY0LTkwLjUtNjRzLTc3LjQgMjYuNy05MC41IDY0SDExNy44TDQyLjMgMzYzLjdjLTkuNy02LjctMTMuMS0xOS42LTcuOS0zMC4zczE3LjQtMTUuOSAyOC43LTEyLjRsOTcuMiAzMC40YzMtMy45IDYuMS03LjcgOS40LTExLjNMMTA3LjQgMjM2LjNjLTYuMS0xMC4xLTMuOS0yMy4xIDUuMS0zMC43czIyLjItNy41IDMxLjEgLjFMMjQ2IDI5My42YzEuNS0uNCAzLS44IDQuNS0xLjFsMTMuNi0xNDIuN2MxLjItMTIuMyAxMS41LTIxLjcgMjMuOS0yMS43czIyLjcgOS40IDIzLjkgMjEuN2wxMy41IDE0MS45TDQ5OS42IDExLjN6TTY0IDQ0OHYwSDUxMnYwaDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDY0ek0yODggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNFY3MmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXllRHJvcHBlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDEuNiAyOS4yTDI0MC4xIDEzMC44bC05LjQtOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjRMNDgyLjggMTcwLjRjMzktMzkgMzktMTAyLjIgMC0xNDEuMXMtMTAyLjItMzktMTQxLjEgMHpNNTUuNCAzMjMuM2MtMTUgMTUtMjMuNCAzNS40LTIzLjQgNTYuNnY0Mi40TDUuNCA0NjIuMmMtOC41IDEyLjctNi44IDI5LjYgNCA0MC40czI3LjcgMTIuNSA0MC40IDRMODkuNyA0ODBoNDIuNGMyMS4yIDAgNDEuNi04LjQgNTYuNi0yMy40TDMwOS40IDMzNS45bC00NS4zLTQ1LjNMMTQzLjQgNDExLjNjLTMgMy03LjEgNC43LTExLjMgNC43SDk2VjM3OS45YzAtNC4yIDEuNy04LjMgNC43LTExLjNMMjIxLjQgMjQ3LjlsLTQ1LjMtNDUuM0w1NS40IDMyMy4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeWVMb3dWaXNpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzguOCA1LjFDMjguNC0zLjEgMTMuMy0xLjIgNS4xIDkuMlMtMS4yIDM0LjcgOS4yIDQyLjlsNTkyIDQ2NGMxMC40IDguMiAyNS41IDYuMyAzMy43LTQuMXM2LjMtMjUuNS00LjEtMzMuN0w1MjUuNiAzODYuN2MzOS42LTQwLjYgNjYuNC04Ni4xIDc5LjktMTE4LjRjMy4zLTcuOSAzLjMtMTYuNyAwLTI0LjZjLTE0LjktMzUuNy00Ni4yLTg3LjctOTMtMTMxLjFDNDY1LjUgNjguOCA0MDAuOCAzMiAzMjAgMzJjLTY4LjIgMC0xMjUgMjYuMy0xNjkuMyA2MC44TDM4LjggNS4xek0yMjMgMTQ5LjVjNDguNi00NC4zIDEyMy01MC44IDE3OS4zLTExLjdjNjAuOCA0Mi40IDc4LjkgMTIzLjIgNDQuMiAxODYuOUw0MDggMjk0LjVjOC40LTE5LjMgMTAuNi00MS40IDQuOC02My4zYy0xMS4xLTQxLjUtNDcuOC02OS40LTg4LjYtNzEuMWMtNS44LS4yLTkuMiA2LjEtNy40IDExLjdjMi4xIDYuNCAzLjMgMTMuMiAzLjMgMjAuM2MwIDEwLjItMi40IDE5LjgtNi42IDI4LjNMMjIzIDE0OS41em0tMTM5LjkgMTJjLTExIDE0LjQtMjAuNSAyOC43LTI4LjQgNDIuMmwzMzkgMjY1LjdjMTguNy01LjUgMzYuMi0xMyA1Mi42LTIxLjhMODMuMSAxNjEuNXptLTUwIDg2LjNjLTEuOCA2LjgtMS4zIDE0IDEuNCAyMC41YzE0LjkgMzUuNyA0Ni4yIDg3LjcgOTMgMTMxLjFDMTc0LjUgNDQzLjIgMjM5LjIgNDgwIDMyMCA0ODBjMy4xIDAgNi4xLS4xIDkuMi0uMkwzMy4xIDI0Ny44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeWVTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDUyNS42IDM4Ni43YzM5LjYtNDAuNiA2Ni40LTg2LjEgNzkuOS0xMTguNGMzLjMtNy45IDMuMy0xNi43IDAtMjQuNmMtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMUM0NjUuNSA2OC44IDQwMC44IDMyIDMyMCAzMmMtNjguMiAwLTEyNSAyNi4zLTE2OS4zIDYwLjhMMzguOCA1LjF6TTIyMy4xIDE0OS41QzI0OC42IDEyNi4yIDI4Mi43IDExMiAzMjAgMTEyYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0YzAgMjQuOS02LjMgNDguMy0xNy40IDY4LjdMNDA4IDI5NC41YzguNC0xOS4zIDEwLjYtNDEuNCA0LjgtNjMuM2MtMTEuMS00MS41LTQ3LjgtNjkuNC04OC42LTcxLjFjLTUuOC0uMi05LjIgNi4xLTcuNCAxMS43YzIuMSA2LjQgMy4zIDEzLjIgMy4zIDIwLjNjMCAxMC4yLTIuNCAxOS44LTYuNiAyOC4zbC05MC4zLTcwLjh6TTM3MyAzODkuOWMtMTYuNCA2LjUtMzQuMyAxMC4xLTUzIDEwLjFjLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0YzAtNi45IC41LTEzLjYgMS40LTIwLjJMODMuMSAxNjEuNUM2MC4zIDE5MS4yIDQ0IDIyMC44IDM0LjUgMjQzLjdjLTMuMyA3LjktMy4zIDE2LjcgMCAyNC42YzE0LjkgMzUuNyA0Ni4yIDg3LjcgOTMgMTMxLjFDMTc0LjUgNDQzLjIgMjM5LjIgNDgwIDMyMCA0ODBjNDcuOCAwIDg5LjktMTIuOSAxMjYuMi0zMi41TDM3MyAzODkuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXllIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAzMmMtODAuOCAwLTE0NS41IDM2LjgtMTkyLjYgODAuNkM0OC42IDE1NiAxNy4zIDIwOCAyLjUgMjQzLjdjLTMuMyA3LjktMy4zIDE2LjcgMCAyNC42QzE3LjMgMzA0IDQ4LjYgMzU2IDk1LjQgMzk5LjRDMTQyLjUgNDQzLjIgMjA3LjIgNDgwIDI4OCA0ODBzMTQ1LjUtMzYuOCAxOTIuNi04MC42YzQ2LjgtNDMuNSA3OC4xLTk1LjQgOTMtMTMxLjFjMy4zLTcuOSAzLjMtMTYuNyAwLTI0LjZjLTE0LjktMzUuNy00Ni4yLTg3LjctOTMtMTMxLjFDNDMzLjUgNjguOCAzNjguOCAzMiAyODggMzJ6TTE0NCAyNTZhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMTQ0LTY0YzAgMzUuMy0yOC43IDY0LTY0IDY0Yy03LjEgMC0xMy45LTEuMi0yMC4zLTMuM2MtNS41LTEuOC0xMS45IDEuNi0xMS43IDcuNGMuMyA2LjkgMS4zIDEzLjggMy4yIDIwLjdjMTMuNyA1MS4yIDY2LjQgODEuNiAxMTcuNiA2Ny45czgxLjYtNjYuNCA2Ny45LTExNy42Yy0xMS4xLTQxLjUtNDcuOC02OS40LTg4LjYtNzEuMWMtNS44LS4yLTkuMiA2LjEtNy40IDExLjdjMi4xIDYuNCAzLjMgMTMuMiAzLjMgMjAuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjI1NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyODhIMjI0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDY0Vjk2SDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZUFuZ3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpNMzM4LjcgMzk1LjljNi42LTUuOSA3LjEtMTYgMS4yLTIyLjZDMzIzLjggMzU1LjQgMjk1LjcgMzM2IDI1NiAzMzZzLTY3LjggMTkuNC04My45IDM3LjNjLTUuOSA2LjYtNS40IDE2LjcgMS4yIDIyLjZzMTYuNyA1LjQgMjIuNi0xLjJjMTEuNy0xMyAzMS42LTI2LjcgNjAuMS0yNi43czQ4LjQgMTMuNyA2MC4xIDI2LjdjNS45IDYuNiAxNiA3LjEgMjIuNiAxLjJ6TTE3Ni40IDI3MmMxNy43IDAgMzItMTQuMyAzMi0zMmMwLTEuNS0uMS0zLS4zLTQuNGwxMC45IDMuNmM4LjQgMi44IDE3LjQtMS43IDIwLjItMTAuMXMtMS43LTE3LjQtMTAuMS0yMC4ybC05Ni0zMmMtOC40LTIuOC0xNy40IDEuNy0yMC4yIDEwLjFzMS43IDE3LjQgMTAuMSAyMC4ybDMwLjcgMTAuMmMtNS44IDUuOC05LjMgMTMuOC05LjMgMjIuNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnptMTkyLTMyYzAtOC45LTMuNi0xNy05LjUtMjIuOGwzMC4yLTEwLjFjOC40LTIuOCAxMi45LTExLjkgMTAuMS0yMC4ycy0xMS45LTEyLjktMjAuMi0xMC4xbC05NiAzMmMtOC40IDIuOC0xMi45IDExLjktMTAuMSAyMC4yczExLjkgMTIuOSAyMC4yIDEwLjFsMTEuNy0zLjljLS4yIDEuNS0uMyAzLjEtLjMgNC43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VEaXp6eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptMC0yMjRhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTEwMC43IDEzMi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwTDE2MCAxNjkuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42TDE4Mi42IDE5MmwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEwxNjAgMjE0LjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkwxMzcuNCAxOTJsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZ6bTE5MiAwYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwTDM1MiAxNjkuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42TDM3NC42IDE5MmwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEwzNTIgMjE0LjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkwzMjkuNCAxOTJsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VGbHVzaGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpNMTc2IDM4NGMwIDguOCA3LjIgMTYgMTYgMTZIMzIwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDE5MmMtOC44IDAtMTYgNy4yLTE2IDE2em0tMTYtODhhNzIgNzIgMCAxIDAgMC0xNDQgNzIgNzIgMCAxIDAgMCAxNDR6bTI2NC03MmE3MiA3MiAwIDEgMCAtMTQ0IDAgNzIgNzIgMCAxIDAgMTQ0IDB6bS0yODggMGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xOTIgMGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlRnJvd25PcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNzYuNCAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTEyMiAxNzQuNWMtMTIuNCA1LjItMjYuNS00LjEtMjEuMS0xNi40YzE2LTM2LjYgNTIuNC02Mi4xIDk0LjgtNjIuMXM3OC44IDI1LjYgOTQuOCA2Mi4xYzUuNCAxMi4zLTguNyAyMS42LTIxLjEgMTYuNGMtMjIuNC05LjUtNDcuNC0xNC44LTczLjctMTQuOHMtNTEuMyA1LjMtNzMuNyAxNC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlRnJvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE1OS4zIDM4OC43Yy0yLjYgOC40LTExLjYgMTMuMi0yMCAxMC41cy0xMy4yLTExLjYtMTAuNS0yMEMxNDUuMiAzMjYuMSAxOTYuMyAyODggMjU2IDI4OHMxMTAuOCAzOC4xIDEyNy4zIDkxLjNjMi42IDguNC0yLjEgMTcuNC0xMC41IDIwcy0xNy40LTIuMS0yMC0xMC41QzM0MC41IDM0OS40IDMwMi4xIDMyMCAyNTYgMzIwcy04NC41IDI5LjQtOTYuNyA2OC43ek0xNDQuNCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZUdyaW1hY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6bTk2LTExMmgtOFYzNjBsNTUuMyAwYy0zLjggMjIuNy0yMy42IDQwLTQ3LjMgNDB6bTQ3LjMtNTZMMzQ0IDM0NFYzMDRoOGMyMy44IDAgNDMuNSAxNy4zIDQ3LjMgNDB6TTMyOCAzNDRIMjY0VjMwNGg2NHY0MHptMCA1NkgyNjRWMzYwaDY0djQwem0tODAtOTZ2NDBsLTY0IDBWMzA0aDY0em0wIDU2djQwSDE4NFYzNjBsNjQgMHptLTgwLTE2SDExMi43YzMuOC0yMi43IDIzLjYtNDAgNDcuMy00MGg4djQwem0wIDU2aC04Yy0yMy44IDAtNDMuNS0xNy4zLTQ3LjMtNDBIMTY4djQwek0xNDQuNCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZUdyaW5CZWFtU3dlYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDc2LjggMTI2LjNjLTQuMSAxLjEtOC40IDEuNy0xMi44IDEuN2MtMjYuNSAwLTQ4LTIxLTQ4LTQ3YzAtNSAxLjgtMTEuMyA0LjYtMTguMWMuMy0uNyAuNi0xLjQgLjktMi4xYzktMjAuMiAyNi41LTQ0LjkgMzYtNTcuNWMzLjItNC40IDkuNi00LjQgMTIuOCAwQzQ4My40IDIwLjYgNTEyIDYxIDUxMiA4MWMwIDIxLjctMTQuOSAzOS44LTM1LjIgNDUuM3pNMjU2IDBjNTEuNCAwIDk5LjMgMTUuMiAxMzkuNCA0MS4yYy0xLjUgMy4xLTMgNi4yLTQuMyA5LjNjLTMuNCA4LTcuMSAxOS03LjEgMzAuNWMwIDQ0LjMgMzYuNiA3OSA4MCA3OWM5LjYgMCAxOC44LTEuNyAyNy40LTQuOGMxMy4zIDMwLjkgMjAuNiA2NSAyMC42IDEwMC44YzAgMTQxLjQtMTE0LjYgMjU2LTI1NiAyNTZTMCAzOTcuNCAwIDI1NlMxMTQuNiAwIDI1NiAwek0zODguMSAzMTIuOGMtMzkuNyAxMi4yLTg0LjUgMTktMTMxLjggMTlzLTkyLjEtNi44LTEzMS44LTE5Yy0xMi4zLTMuOC0yNC4zIDYuOS0xOS4zIDE4LjdjMjUgNTkuMSA4My4yIDEwMC41IDE1MS4xIDEwMC41czEyNi4yLTQxLjQgMTUxLjEtMTAwLjVjNS0xMS44LTctMjIuNS0xOS4zLTE4Ljd6bS0xNzAuNS04NGwwIDAgMCAwYzIuMSAyLjggNS43IDMuOSA4LjkgMi44czUuNS00LjEgNS41LTcuNmMwLTE3LjktNi43LTM1LjYtMTYuNi00OC44Yy05LjgtMTMtMjMuOS0yMy4yLTM5LjQtMjMuMnMtMjkuNiAxMC4yLTM5LjQgMjMuMkMxMjYuNyAxODguNCAxMjAgMjA2LjEgMTIwIDIyNGMwIDMuNCAyLjIgNi41IDUuNSA3LjZzNi45IDAgOC45LTIuOGwwIDAgMCAwIDAgMCAuMi0uMmMuMi0uMiAuNC0uNSAuNy0uOWMuNi0uOCAxLjYtMiAyLjgtMy40YzIuNS0yLjggNi02LjYgMTAuMi0xMC4zYzguOC03LjggMTguOC0xNCAyNy43LTE0czE4LjkgNi4yIDI3LjcgMTRjNC4yIDMuNyA3LjcgNy41IDEwLjIgMTAuM2MxLjIgMS40IDIuMiAyLjYgMi44IDMuNGMuMyAuNCAuNiAuNyAuNyAuOWwuMiAuMiAwIDAgMCAwem0xNjAgMGwwIDAgMCAwIDAgMGMyLjEgMi44IDUuNyAzLjkgOC45IDIuOHM1LjUtNC4xIDUuNS03LjZjMC0xNy45LTYuNy0zNS42LTE2LjYtNDguOGMtOS44LTEzLTIzLjktMjMuMi0zOS40LTIzLjJzLTI5LjYgMTAuMi0zOS40IDIzLjJDMjg2LjcgMTg4LjQgMjgwIDIwNi4xIDI4MCAyMjRjMCAzLjQgMi4yIDYuNSA1LjUgNy42czYuOSAwIDguOS0yLjhsMCAwIDAgMCAwIDAgLjItLjJjLjItLjIgLjQtLjUgLjctLjljLjYtLjggMS42LTIgMi44LTMuNGMyLjUtMi44IDYtNi42IDEwLjItMTAuM2M4LjgtNy44IDE4LjgtMTQgMjcuNy0xNHMxOC45IDYuMiAyNy43IDE0YzQuMiAzLjcgNy43IDcuNSAxMC4yIDEwLjNjMS4yIDEuNCAyLjIgMi42IDIuOCAzLjRjLjMgLjQgLjYgLjcgLjcgLjlsLjIgLjIgMCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlR3JpbkJlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4OC4xIDMxMi44YzEyLjMtMy44IDI0LjMgNi45IDE5LjMgMTguN0MzODIuNCAzOTAuNiAzMjQuMiA0MzIgMjU2LjMgNDMycy0xMjYuMi00MS40LTE1MS4xLTEwMC41Yy01LTExLjggNy0yMi41IDE5LjMtMTguN2MzOS43IDEyLjIgODQuNSAxOSAxMzEuOCAxOXM5Mi4xLTYuOCAxMzEuOC0xOXptLTE3MC41LTg0bDAgMCAwIDAtLjItLjJjLS4yLS4yLS40LS41LS43LS45Yy0uNi0uOC0xLjYtMi0yLjgtMy40Yy0yLjUtMi44LTYtNi42LTEwLjItMTAuM2MtOC44LTcuOC0xOC44LTE0LTI3LjctMTRzLTE4LjkgNi4yLTI3LjcgMTRjLTQuMiAzLjctNy43IDcuNS0xMC4yIDEwLjNjLTEuMiAxLjQtMi4yIDIuNi0yLjggMy40Yy0uMyAuNC0uNiAuNy0uNyAuOWwtLjIgLjIgMCAwIDAgMCAwIDBjLTIuMSAyLjgtNS43IDMuOS04LjkgMi44cy01LjUtNC4xLTUuNS03LjZjMC0xNy45IDYuNy0zNS42IDE2LjYtNDguOGM5LjgtMTMgMjMuOS0yMy4yIDM5LjQtMjMuMnMyOS42IDEwLjIgMzkuNCAyMy4yYzkuOSAxMy4yIDE2LjYgMzAuOSAxNi42IDQ4LjhjMCAzLjQtMi4yIDYuNS01LjUgNy42cy02LjkgMC04LjktMi44bDAgMCAwIDB6bTE2MCAwbDAgMC0uMi0uMmMtLjItLjItLjQtLjUtLjctLjljLS42LS44LTEuNi0yLTIuOC0zLjRjLTIuNS0yLjgtNi02LjYtMTAuMi0xMC4zYy04LjgtNy44LTE4LjgtMTQtMjcuNy0xNHMtMTguOSA2LjItMjcuNyAxNGMtNC4yIDMuNy03LjcgNy41LTEwLjIgMTAuM2MtMS4yIDEuNC0yLjIgMi42LTIuOCAzLjRjLS4zIC40LS42IC43LS43IC45bC0uMiAuMiAwIDAgMCAwIDAgMGMtMi4xIDIuOC01LjcgMy45LTguOSAyLjhzLTUuNS00LjEtNS41LTcuNmMwLTE3LjkgNi43LTM1LjYgMTYuNi00OC44YzkuOC0xMyAyMy45LTIzLjIgMzkuNC0yMy4yczI5LjYgMTAuMiAzOS40IDIzLjJjOS45IDEzLjIgMTYuNiAzMC45IDE2LjYgNDguOGMwIDMuNC0yLjIgNi41LTUuNSA3LjZzLTYuOSAwLTguOS0yLjhsMCAwIDAgMCAwIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VHcmluSGVhcnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0zODguMSAzMTIuOGMxMi4zLTMuOCAyNC4zIDYuOSAxOS4zIDE4LjdDMzgyLjQgMzkwLjYgMzI0LjIgNDMyIDI1Ni4zIDQzMnMtMTI2LjItNDEuNC0xNTEuMS0xMDAuNWMtNS0xMS44IDctMjIuNSAxOS4zLTE4LjdjMzkuNyAxMi4yIDg0LjUgMTkgMTMxLjggMTlzOTIuMS02LjggMTMxLjgtMTl6TTE5OS4zIDEyOS4xYzE3LjggNC44IDI4LjQgMjMuMSAyMy42IDQwLjhsLTE3LjQgNjVjLTIuMyA4LjUtMTEuMSAxMy42LTE5LjYgMTEuM2wtNjUuMS0xNy40Yy0xNy44LTQuOC0yOC40LTIzLjEtMjMuNi00MC44czIzLjEtMjguNCA0MC44LTIzLjZsMTYuMSA0LjMgNC4zLTE2LjFjNC44LTE3LjggMjMuMS0yOC40IDQwLjgtMjMuNnptMTU0LjMgMjMuNmw0LjMgMTYuMSAxNi4xLTQuM2MxNy44LTQuOCAzNi4xIDUuOCA0MC44IDIzLjZzLTUuOCAzNi4xLTIzLjYgNDAuOGwtNjUuMSAxNy40Yy04LjUgMi4zLTE3LjMtMi44LTE5LjYtMTEuM2wtMTcuNC02NWMtNC44LTE3LjggNS44LTM2LjEgMjMuNi00MC44czM2LjEgNS44IDQwLjkgMjMuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZUdyaW5TcXVpbnRUZWFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjYuOCAxNC4yQzQ0Ni01IDQ3Ny41LTQuNiA0OTcuMSAxNC45czIwIDUxIC43IDcwLjNjLTYuOCA2LjgtMjEuNCAxMi40LTM3LjQgMTYuN2MtMTYuMyA0LjQtMzQuMSA3LjUtNDYuMyA5LjNjLTEuNiAuMi0zLjEgLjUtNC42IC42Yy01LjYgLjktMTAuMy0zLjktOS41LTkuNWMxLjYtMTEuMiA0LjYtMjkuNiA5LTQ3Yy4zLTEuMyAuNy0yLjYgMS0zLjljNC4zLTE1LjkgOS44LTMwLjUgMTYuNy0zNy40em0tNDQuNyAxOWMtMS41IDQuOC0yLjkgOS42LTQuMSAxNC4zYy00LjggMTguOS04IDM4LjUtOS43IDUwLjNjLTQgMjYuOCAxOC45IDQ5LjcgNDUuNyA0NS44YzExLjktMS42IDMxLjUtNC44IDUwLjQtOS43YzQuNy0xLjIgOS41LTIuNSAxNC4zLTQuMUM1MzQuMiAyMjcuNSA1MjAuMiAzNTMuOCA0MzcgNDM3Yy04My4yIDgzLjItMjA5LjUgOTcuMi0zMDcuMiA0MS44YzEuNS00LjggMi44LTkuNiA0LTE0LjNjNC44LTE4LjkgOC0zOC41IDkuNy01MC4zYzQtMjYuOC0xOC45LTQ5LjctNDUuNy00NS44Yy0xMS45IDEuNi0zMS41IDQuOC01MC40IDkuN2MtNC43IDEuMi05LjUgMi41LTE0LjMgNC4xQy0yMi4yIDI4NC41LTguMiAxNTguMiA3NSA3NUMxNTguMi04LjMgMjg0LjUtMjIuMiAzODIuMiAzMy4yek01MS41IDQxMC4xYzE4LjUtNSAzOC44LTguMyA1MC45LTEwYzUuNi0uOSAxMC4zIDMuOSA5LjUgOS41Yy0xLjcgMTIuMS01IDMyLjQtMTAgNTAuOUM5Ny42IDQ3Ni40IDkyIDQ5MSA4NS4yIDQ5Ny44QzY2IDUxNyAzNC41IDUxNi42IDE0LjkgNDk3LjFzLTIwLTUxLS43LTcwLjNjNi44LTYuOCAyMS40LTEyLjQgMzcuNC0xNi43ek00MTYuNCAyMDIuM2MtNC44LTExLjktMjAuOS0xMC45LTI2LjkgLjRjLTE5LjQgMzYuNy00Ni4zIDczLjItNzkuOCAxMDYuN3MtNzAgNjAuMy0xMDYuNyA3OS44Yy0xMS4zIDYtMTIuMyAyMi4xLS40IDI2LjljNTkuNCAyNC4xIDEyOS45IDEyLjIgMTc3LjktMzUuOHM1OS45LTExOC41IDM1LjgtMTc3Ljl6TTg3LjEgMjg1LjFjMiAyIDQuNiAzLjIgNy4zIDMuNGw1Ni4xIDUuMSA1LjEgNTYuMWMuMyAyLjggMS41IDUuNCAzLjQgNy4zYzYuMyA2LjMgMTcuMiAzLjYgMTkuOC00LjlsMjkuNy05Ny40YzMuNS0xMS42LTcuMy0yMi41LTE5LTE5TDkyIDI2NS4zYy04LjYgMi42LTExLjMgMTMuNC00LjkgMTkuOHpNMjY1LjMgOTJsLTI5LjcgOTcuNGMtMy41IDExLjYgNy4zIDIyLjUgMTkgMTlsOTcuNC0yOS43YzguNi0yLjYgMTEuMy0xMy40IDQuOS0xOS44Yy0yLTItNC42LTMuMi03LjMtMy40bC01Ni4xLTUuMS01LjEtNTYuMWMtLjMtMi44LTEuNS01LjQtMy40LTcuM2MtNi4zLTYuMy0xNy4yLTMuNi0xOS44IDQuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZUdyaW5TcXVpbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4OC4xIDMxMi44YzEyLjMtMy44IDI0LjMgNi45IDE5LjMgMTguN0MzODIuNCAzOTAuNiAzMjQuMiA0MzIgMjU2LjMgNDMycy0xMjYuMi00MS40LTE1MS4xLTEwMC41Yy01LTExLjggNy0yMi41IDE5LjMtMTguN2MzOS43IDEyLjIgODQuNSAxOSAxMzEuOCAxOXM5Mi4xLTYuOCAxMzEuOC0xOXpNMTMzLjUgMTQ2LjdsODkuOSA0Ny45YzEwLjcgNS43IDEwLjcgMjEuMSAwIDI2LjhsLTg5LjkgNDcuOWMtNy45IDQuMi0xNy41LTEuNS0xNy41LTEwLjVjMC0yLjggMS01LjUgMi44LTcuNmwzNi00My4yLTM2LTQzLjJjLTEuOC0yLjEtMi44LTQuOC0yLjgtNy42YzAtOSA5LjYtMTQuNyAxNy41LTEwLjV6TTM5NiAxNTcuMWMwIDIuOC0xIDUuNS0yLjggNy42bC0zNiA0My4yIDM2IDQzLjJjMS44IDIuMSAyLjggNC44IDIuOCA3LjZjMCA5LTkuNiAxNC43LTE3LjUgMTAuNWwtODkuOS00Ny45Yy0xMC43LTUuNy0xMC43LTIxLjEgMC0yNi44bDg5LjktNDcuOWM3LjktNC4yIDE3LjUgMS41IDE3LjUgMTAuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZUdyaW5TdGFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTQwNy40IDc1LjVjNS0xMS44LTctMjIuNS0xOS4zLTE4LjdjLTM5LjcgMTIuMi04NC41IDE5LTEzMS44IDE5cy05Mi4xLTYuOC0xMzEuOC0xOWMtMTIuMy0zLjgtMjQuMyA2LjktMTkuMyAxOC43YzI1IDU5LjEgODMuMiAxMDAuNSAxNTEuMSAxMDAuNXMxMjYuMi00MS40IDE1MS4xLTEwMC41ek0xNjAgMTIwYy0zLjEgMC01LjkgMS44LTcuMiA0LjZsLTE2LjYgMzQuNy0zOC4xIDVjLTMuMSAuNC01LjYgMi41LTYuNiA1LjVzLS4xIDYuMiAyLjEgOC4zbDI3LjkgMjYuNS03IDM3LjhjLS42IDMgLjcgNi4xIDMuMiA3LjlzNS44IDIgOC41IC42TDE2MCAyMzIuNWwzMy44IDE4LjNjMi43IDEuNSA2IDEuMyA4LjUtLjZzMy43LTQuOSAzLjItNy45bC03LTM3LjhMMjI2LjQgMTc4YzIuMi0yLjEgMy4xLTUuMyAyLjEtOC4zcy0zLjUtNS4xLTYuNi01LjVsLTM4LjEtNS0xNi42LTM0LjdjLTEuMy0yLjgtNC4xLTQuNi03LjItNC42em0xOTIgMGMtMy4xIDAtNS45IDEuOC03LjIgNC42bC0xNi42IDM0LjctMzguMSA1Yy0zLjEgLjQtNS42IDIuNS02LjYgNS41cy0uMSA2LjIgMi4xIDguM2wyNy45IDI2LjUtNyAzNy44Yy0uNiAzIC43IDYuMSAzLjIgNy45czUuOCAyIDguNSAuNkwzNTIgMjMyLjVsMzMuOCAxOC4zYzIuNyAxLjUgNiAxLjMgOC41LS42czMuNy00LjkgMy4yLTcuOWwtNy0zNy44TDQxOC40IDE3OGMyLjItMi4xIDMuMS01LjMgMi4xLTguM3MtMy41LTUuMS02LjYtNS41bC0zOC4xLTUtMTYuNi0zNC43Yy0xLjMtMi44LTQuMS00LjYtNy4yLTQuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZUdyaW5UZWFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDguNiAzNzEuNEM1MDYuNCA0NTQuOCA0MTkuOSA1MTIgMzIwIDUxMnMtMTg2LjQtNTcuMi0yMjguNi0xNDAuNmM0LjUtMi45IDguNy02LjMgMTIuNy0xMC4zYzguMS04LjEgMTMuMi0xOC42IDE2LjUtMjYuNmMzLjYtOC44IDYuNS0xOC40IDguOC0yNy41YzQuNi0xOC4yIDcuNy0zNyA5LjMtNDguMmMzLjktMjYuNS0xOC44LTQ5LjItNDUuMi00NS40Yy02LjggLjktMTYuMiAyLjQtMjYuNiA0LjRDODUuMyA5NC41IDE5MS42IDAgMzIwIDBTNTU0LjcgOTQuNSA1NzMuMiAyMTcuN2MtMTAuMy0yLTE5LjgtMy41LTI2LjYtNC40Yy0yNi41LTMuOS00OS4yIDE4LjgtNDUuMiA0NS40YzEuNiAxMS4zIDQuNiAzMCA5LjMgNDguMmMyLjMgOS4xIDUuMiAxOC44IDguOCAyNy41YzMuMyA4LjEgOC40IDE4LjUgMTYuNSAyNi42YzMuOSAzLjkgOC4yIDcuNCAxMi43IDEwLjN6TTEwNyAyNTQuMWMtMy4xIDIxLjUtMTEuNCA3MC4yLTI1LjUgODQuNGMtLjkgMS0xLjkgMS44LTIuOSAyLjdDNjAgMzU2LjcgMzIgMzU1LjUgMTQuMyAzMzcuN2MtMTguNy0xOC43LTE5LjEtNDguOC0uNy02Ny4yYzguNi04LjYgMzAuMS0xNS4xIDUwLjUtMTkuNmMxMy0yLjggMjUuNS00LjggMzMuOS02YzUuNC0uOCA5LjkgMy43IDkgOXptNDU0LjUgODcuMWMtLjgtLjYtMS41LTEuMy0yLjMtMmMtLjItLjItLjUtLjQtLjctLjdjLTE0LjEtMTQuMS0yMi41LTYyLjktMjUuNS04NC40Yy0uOC01LjQgMy43LTkuOSA5LTljMSAuMSAyLjIgLjMgMy4zIC41YzguMiAxLjIgMTkuMiAzIDMwLjYgNS41YzIwLjQgNC40IDQxLjkgMTAuOSA1MC41IDE5LjZjMTguNCAxOC40IDE4IDQ4LjUtLjcgNjcuMmMtMTcuNyAxNy43LTQ1LjcgMTktNjQuMiAzLjR6bS05MC4xLTkuN2M1LTExLjgtNy0yMi41LTE5LjMtMTguN2MtMzkuNyAxMi4yLTg0LjUgMTktMTMxLjggMTlzLTkyLjEtNi44LTEzMS44LTE5Yy0xMi4zLTMuOC0yNC4zIDYuOS0xOS4zIDE4LjdjMjUgNTkuMSA4My4yIDEwMC41IDE1MS4xIDEwMC41czEyNi4yLTQxLjQgMTUxLjEtMTAwLjV6TTI4MS42IDIyOC44bDAgMCAwIDAgMCAwYzIuMSAyLjggNS43IDMuOSA4LjkgMi44czUuNS00LjEgNS41LTcuNmMwLTE3LjktNi43LTM1LjYtMTYuNi00OC44Yy05LjgtMTMtMjMuOS0yMy4yLTM5LjQtMjMuMnMtMjkuNiAxMC4yLTM5LjQgMjMuMkMxOTAuNyAxODguNCAxODQgMjA2LjEgMTg0IDIyNGMwIDMuNCAyLjIgNi41IDUuNSA3LjZzNi45IDAgOC45LTIuOGwwIDAgMCAwIDAgMCAuMi0uMmMuMi0uMiAuNC0uNSAuNy0uOWMuNi0uOCAxLjYtMiAyLjgtMy40YzIuNS0yLjggNi02LjYgMTAuMi0xMC4zYzguOC03LjggMTguOC0xNCAyNy43LTE0czE4LjkgNi4yIDI3LjcgMTRjNC4yIDMuNyA3LjcgNy41IDEwLjIgMTAuM2MxLjIgMS40IDIuMiAyLjYgMi44IDMuNGMuMyAuNCAuNiAuNyAuNyAuOWwuMiAuMiAwIDB6bTE2MCAwbDAgMCAwIDBjMi4xIDIuOCA1LjcgMy45IDguOSAyLjhzNS41LTQuMSA1LjUtNy42YzAtMTcuOS02LjctMzUuNi0xNi42LTQ4LjhjLTkuOC0xMy0yMy45LTIzLjItMzkuNC0yMy4ycy0yOS42IDEwLjItMzkuNCAyMy4yQzM1MC43IDE4OC40IDM0NCAyMDYuMSAzNDQgMjI0YzAgMy40IDIuMiA2LjUgNS41IDcuNnM2LjkgMCA4LjktMi44bDAgMCAwIDAgMCAwIC4yLS4yYy4yLS4yIC40LS41IC43LS45Yy42LS44IDEuNi0yIDIuOC0zLjRjMi41LTIuOCA2LTYuNiAxMC4yLTEwLjNjOC44LTcuOCAxOC44LTE0IDI3LjctMTRzMTguOSA2LjIgMjcuNyAxNGM0LjIgMy43IDcuNyA3LjUgMTAuMiAxMC4zYzEuMiAxLjQgMi4yIDIuNiAyLjggMy40Yy4zIC40IC42IC43IC43IC45bC4yIC4yIDAgMCAwIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VHcmluVG9uZ3VlU3F1aW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjU2QzAgMzY4LjkgNzMuMSA0NjQuNyAxNzQuNSA0OTguOEMxNjUuMyA0ODQgMTYwIDQ2Ni42IDE2MCA0NDhWNDAwLjdjLTI0LTE3LjUtNDMuMS00MS40LTU0LjgtNjkuMmMtNS0xMS44IDctMjIuNSAxOS4zLTE4LjdjMzkuNyAxMi4yIDg0LjUgMTkgMTMxLjggMTlzOTIuMS02LjggMTMxLjgtMTljMTIuMy0zLjggMjQuMyA2LjkgMTkuMyAxOC43Yy0xMS44IDI4LTMxLjEgNTItNTUuNCA2OS42VjQ0OGMwIDE4LjYtNS4zIDM2LTE0LjUgNTAuOEM0MzguOSA0NjQuNyA1MTIgMzY4LjkgNTEyIDI1NkM1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMFMwIDExNC42IDAgMjU2ek0xMTYgMTQxLjFjMC05IDkuNi0xNC43IDE3LjUtMTAuNWw4OS45IDQ3LjljMTAuNyA1LjcgMTAuNyAyMS4xIDAgMjYuOGwtODkuOSA0Ny45Yy03LjkgNC4yLTE3LjUtMS41LTE3LjUtMTAuNWMwLTIuOCAxLTUuNSAyLjgtNy42bDM2LTQzLjItMzYtNDMuMmMtMS44LTIuMS0yLjgtNC44LTIuOC03LjZ6bTI2Mi41LTEwLjVjNy45LTQuMiAxNy41IDEuNSAxNy41IDEwLjVjMCAyLjgtMSA1LjUtMi44IDcuNmwtMzYgNDMuMiAzNiA0My4yYzEuOCAyLjEgMi44IDQuOCAyLjggNy42YzAgOS05LjYgMTQuNy0xNy41IDEwLjVsLTg5LjktNDcuOWMtMTAuNy01LjctMTAuNy0yMS4xIDAtMjYuOGw4OS45LTQ3Ljl6TTMyMCA0NDhWNDAyLjZjMC0xNC43LTExLjktMjYuNi0yNi42LTI2LjZoLTJjLTExLjMgMC0yMS4xIDcuOS0yMy42IDE4LjljLTIuOCAxMi42LTIwLjggMTIuNi0yMy42IDBjLTIuNS0xMS4xLTEyLjMtMTguOS0yMy42LTE4LjloLTJjLTE0LjcgMC0yNi42IDExLjktMjYuNiAyNi42VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlR3JpblRvbmd1ZVdpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc0LjUgNDk4LjhDNzMuMSA0NjQuNyAwIDM2OC45IDAgMjU2QzAgMTE0LjYgMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NmMwIDExMi45LTczLjEgMjA4LjctMTc0LjUgMjQyLjhDMzQ2LjcgNDg0IDM1MiA0NjYuNiAzNTIgNDQ4VjQwMS4xYzI0LjMtMTcuNSA0My42LTQxLjYgNTUuNC02OS42YzUtMTEuOC03LTIyLjUtMTkuMy0xOC43Yy0zOS43IDEyLjItODQuNSAxOS0xMzEuOCAxOXMtOTIuMS02LjgtMTMxLjgtMTljLTEyLjMtMy44LTI0LjMgNi45LTE5LjMgMTguN2MxMS43IDI3LjggMzAuOCA1MS43IDU0LjggNjkuMlY0NDhjMCAxOC42IDUuMyAzNiAxNC41IDUwLjh6bTIwLjctMjY1LjJjNS4zIDcuMSAxNS4zIDguNSAyMi40IDMuMnM4LjUtMTUuMyAzLjItMjIuNGMtMzAuNC00MC41LTkxLjItNDAuNS0xMjEuNiAwYy01LjMgNy4xLTMuOSAxNy4xIDMuMiAyMi40czE3LjEgMy45IDIyLjQtMy4yYzE3LjYtMjMuNSA1Mi44LTIzLjUgNzAuNCAwek0zMzYgMjcyYTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4ek0zMjAgNDAyLjZWNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0VjQwMi42YzAtMTQuNyAxMS45LTI2LjYgMjYuNi0yNi42aDJjMTEuMyAwIDIxLjEgNy45IDIzLjYgMTguOWMyLjggMTIuNiAyMC44IDEyLjYgMjMuNiAwYzIuNS0xMS4xIDEyLjMtMTguOSAyMy42LTE4LjloMmMxNC43IDAgMjYuNiAxMS45IDI2LjYgMjYuNnpNMzM2IDE4NGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VHcmluVG9uZ3VlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjU2QzAgMzY4LjkgNzMuMSA0NjQuNyAxNzQuNSA0OTguOEMxNjUuMyA0ODQgMTYwIDQ2Ni42IDE2MCA0NDhWNDAwLjdjLTI0LTE3LjUtNDMuMS00MS40LTU0LjgtNjkuMmMtNS0xMS44IDctMjIuNSAxOS4zLTE4LjdjMzkuNyAxMi4yIDg0LjUgMTkgMTMxLjggMTlzOTIuMS02LjggMTMxLjgtMTljMTIuMy0zLjggMjQuMyA2LjkgMTkuMyAxOC43Yy0xMS44IDI4LTMxLjEgNTItNTUuNCA2OS42VjQ0OGMwIDE4LjYtNS4zIDM2LTE0LjUgNTAuOEM0MzguOSA0NjQuNyA1MTIgMzY4LjkgNTEyIDI1NkM1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMFMwIDExNC42IDAgMjU2em0xNzYuNC04MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0zMjAgNDQ4VjQwMi42YzAtMTQuNy0xMS45LTI2LjYtMjYuNi0yNi42aC0yYy0xMS4zIDAtMjEuMSA3LjktMjMuNiAxOC45Yy0yLjggMTIuNi0yMC44IDEyLjYtMjMuNiAwYy0yLjUtMTEuMS0xMi4zLTE4LjktMjMuNi0xOC45aC0yYy0xNC43IDAtMjYuNiAxMS45LTI2LjYgMjYuNlY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZUdyaW5XaWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0zODguMSAzMTIuOGMxMi4zLTMuOCAyNC4zIDYuOSAxOS4zIDE4LjdDMzgyLjQgMzkwLjYgMzI0LjIgNDMyIDI1Ni4zIDQzMnMtMTI2LjItNDEuNC0xNTEuMS0xMDAuNWMtNS0xMS44IDctMjIuNSAxOS4zLTE4LjdjMzkuNyAxMi4yIDg0LjUgMTkgMTMxLjggMTlzOTIuMS02LjggMTMxLjgtMTl6TTIwOCAxOTJjMCAzNS4zLTE0LjMgNjQtMzIgNjRzLTMyLTI4LjctMzItNjRzMTQuMy02NCAzMi02NHMzMiAyOC43IDMyIDY0em0xMjggNjRjLTE3LjcgMC0zMi0yOC43LTMyLTY0czE0LjMtNjQgMzItNjRzMzIgMjguNyAzMiA2NHMtMTQuMyA2NC0zMiA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZUdyaW5XaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0zODguMSAzMTIuOGMxMi4zLTMuOCAyNC4zIDYuOSAxOS4zIDE4LjdDMzgyLjQgMzkwLjYgMzI0LjIgNDMyIDI1Ni4zIDQzMnMtMTI2LjItNDEuNC0xNTEuMS0xMDAuNWMtNS0xMS44IDctMjIuNSAxOS4zLTE4LjdjMzkuNyAxMi4yIDg0LjUgMTkgMTMxLjggMTlzOTIuMS02LjggMTMxLjgtMTl6bS0xNi45LTc5LjJjLTE3LjYtMjMuNS01Mi44LTIzLjUtNzAuNCAwYy01LjMgNy4xLTE1LjMgOC41LTIyLjQgMy4ycy04LjUtMTUuMy0zLjItMjIuNGMzMC40LTQwLjUgOTEuMi00MC41IDEyMS42IDBjNS4zIDcuMSAzLjkgMTcuMS0zLjIgMjIuNHMtMTcuMSAzLjktMjIuNC0zLjJ6TTE3Ni40IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VHcmluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0zODguMSAzMTIuOGMxMi4zLTMuOCAyNC4zIDYuOSAxOS4zIDE4LjdDMzgyLjQgMzkwLjYgMzI0LjIgNDMyIDI1Ni4zIDQzMnMtMTI2LjItNDEuNC0xNTEuMS0xMDAuNWMtNS0xMS44IDctMjIuNSAxOS4zLTE4LjdjMzkuNyAxMi4yIDg0LjUgMTkgMTMxLjggMTlzOTIuMS02LjggMTMxLjgtMTl6TTE0NC40IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlS2lzc0JlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6bTQ4LjctMTk4LjNjNC4zIDUuMSA3LjMgMTEuNCA3LjMgMTguM3MtMy4xIDEzLjItNy4zIDE4LjNjLTQuMyA1LjItMTAuMSA5LjctMTYuNyAxMy40Yy0yLjcgMS41LTUuNyAzLTguNyA0LjNjMy4xIDEuMyA2IDIuNyA4LjcgNC4zYzYuNiAzLjcgMTIuNSA4LjIgMTYuNyAxMy40YzQuMyA1LjEgNy4zIDExLjQgNy4zIDE4LjNzLTMuMSAxMy4yLTcuMyAxOC4zYy00LjMgNS4yLTEwLjEgOS43LTE2LjcgMTMuNEMyNzQuNyA0NDMuMSAyNTcuNCA0NDggMjQwIDQ0OGMtMy42IDAtNi44LTIuNS03LjctNnMuNi03LjIgMy44LTlsMCAwIDAgMCAwIDAgMCAwIC4yLS4xYy4yLS4xIC41LS4zIC45LS41Yy44LS41IDItMS4yIDMuNC0yLjFjMi44LTEuOSA2LjUtNC41IDEwLjItNy42YzMuNy0zLjEgNy4yLTYuNiA5LjYtMTAuMWMyLjUtMy41IDMuNS02LjQgMy41LTguNnMtMS01LTMuNS04LjZjLTIuNS0zLjUtNS45LTYuOS05LjYtMTAuMWMtMy43LTMuMS03LjQtNS43LTEwLjItNy42Yy0xLjQtLjktMi42LTEuNi0zLjQtMi4xYy0uNC0uMi0uNy0uNC0uOS0uNWwtLjItLjEgMCAwIDAgMCAwIDBjLTIuNS0xLjQtNC4xLTQuMS00LjEtN3MxLjYtNS42IDQuMS03bDAgMCAwIDAgMCAwIDAgMCAwIDAgLjItLjEgLjMtLjIgLjYtLjRjLjgtLjUgMi0xLjIgMy40LTIuMWMyLjgtMS45IDYuNS00LjUgMTAuMi03LjZjMy43LTMuMSA3LjItNi42IDkuNi0xMC4xYzIuNS0zLjUgMy41LTYuNCAzLjUtOC42cy0xLTUtMy41LTguNmMtMi41LTMuNS01LjktNi45LTkuNi0xMC4xYy0zLjctMy4xLTcuNC01LjctMTAuMi03LjZjLTEuNC0uOS0yLjYtMS42LTMuNC0yLjFsLS40LS4zLS41LS4zLS4yLS4xIDAgMCAwIDAgMCAwYy0zLjItMS44LTQuNy01LjUtMy44LTlzNC4xLTYgNy43LTZjMTcuNCAwIDM0LjcgNC45IDQ3LjkgMTIuM2M2LjYgMy43IDEyLjUgOC4yIDE2LjcgMTMuNHptLTg3LjEtODQuOWwwIDAgMCAwLS4yLS4yYy0uMi0uMi0uNC0uNS0uNy0uOWMtLjYtLjgtMS42LTItMi44LTMuNGMtMi41LTIuOC02LTYuNi0xMC4yLTEwLjNjLTguOC03LjgtMTguOC0xNC0yNy43LTE0cy0xOC45IDYuMi0yNy43IDE0Yy00LjIgMy43LTcuNyA3LjUtMTAuMiAxMC4zYy0xLjIgMS40LTIuMiAyLjYtMi44IDMuNGMtLjMgLjQtLjYgLjctLjcgLjlsLS4yIC4yIDAgMCAwIDAgMCAwYy0yLjEgMi44LTUuNyAzLjktOC45IDIuOHMtNS41LTQuMS01LjUtNy42YzAtMTcuOSA2LjctMzUuNiAxNi42LTQ4LjhjOS44LTEzIDIzLjktMjMuMiAzOS40LTIzLjJzMjkuNiAxMC4yIDM5LjQgMjMuMmM5LjkgMTMuMiAxNi42IDMwLjkgMTYuNiA0OC44YzAgMy40LTIuMiA2LjUtNS41IDcuNnMtNi45IDAtOC45LTIuOGwwIDAgMCAwem0xNjAgMGwwIDAtLjItLjJjLS4yLS4yLS40LS41LS43LS45Yy0uNi0uOC0xLjYtMi0yLjgtMy40Yy0yLjUtMi44LTYtNi42LTEwLjItMTAuM2MtOC44LTcuOC0xOC44LTE0LTI3LjctMTRzLTE4LjkgNi4yLTI3LjcgMTRjLTQuMiAzLjctNy43IDcuNS0xMC4yIDEwLjNjLTEuMiAxLjQtMi4yIDIuNi0yLjggMy40Yy0uMyAuNC0uNiAuNy0uNyAuOWwtLjIgLjIgMCAwIDAgMCAwIDBjLTIuMSAyLjgtNS43IDMuOS04LjkgMi44cy01LjUtNC4xLTUuNS03LjZjMC0xNy45IDYuNy0zNS42IDE2LjYtNDguOGM5LjgtMTMgMjMuOS0yMy4yIDM5LjQtMjMuMnMyOS42IDEwLjIgMzkuNCAyMy4yYzkuOSAxMy4yIDE2LjYgMzAuOSAxNi42IDQ4LjhjMCAzLjQtMi4yIDYuNS01LjUgNy42cy02LjkgMC04LjktMi44bDAgMCAwIDAgMCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlS2lzc1dpbmtIZWFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTggMzM5LjdjOS4xLTI2LjIgMTQtNTQuNCAxNC04My43QzUxMiAxMTQuNiAzOTcuNCAwIDI1NiAwUzAgMTE0LjYgMCAyNTZTMTE0LjYgNTEyIDI1NiA1MTJjMzUuNCAwIDY5LjEtNy4yIDk5LjctMjAuMmMtNC44LTUuNS04LjUtMTIuMi0xMC40LTE5LjdsLTIyLjktODkuM2MtMTAtMzkgMTEuOC04MC45IDUxLjgtOTIuMWMzNy4yLTEwLjQgNzMuOCAxMC4xIDg3LjUgNDRjMTIuNy0xLjYgMjUuMSAuNCAzNi4yIDV6TTI5NiAzMzJjMCA2LjktMy4xIDEzLjItNy4zIDE4LjNjLTQuMyA1LjItMTAuMSA5LjctMTYuNyAxMy40Yy0yLjcgMS41LTUuNyAzLTguNyA0LjNjMy4xIDEuMyA2IDIuNyA4LjcgNC4zYzYuNiAzLjcgMTIuNSA4LjIgMTYuNyAxMy40YzQuMyA1LjEgNy4zIDExLjQgNy4zIDE4LjNzLTMuMSAxMy4yLTcuMyAxOC4zYy00LjMgNS4yLTEwLjEgOS43LTE2LjcgMTMuNEMyNTguNyA0NDMuMSAyNDEuNCA0NDggMjI0IDQ0OGMtMy42IDAtNi44LTIuNS03LjctNnMuNi03LjIgMy44LTlsMCAwIDAgMCAwIDAgMCAwIC4yLS4xYy4yLS4xIC41LS4zIC45LS41Yy44LS41IDItMS4yIDMuNC0yLjFjMi44LTEuOSA2LjUtNC41IDEwLjItNy42YzMuNy0zLjEgNy4yLTYuNiA5LjYtMTAuMWMyLjUtMy41IDMuNS02LjQgMy41LTguNnMtMS01LTMuNS04LjZjLTIuNS0zLjUtNS45LTYuOS05LjYtMTAuMWMtMy43LTMuMS03LjQtNS43LTEwLjItNy42Yy0xLjQtLjktMi42LTEuNi0zLjQtMi4xbC0uNi0uNC0uMy0uMi0uMi0uMSAwIDAgMCAwIDAgMGMtMi41LTEuNC00LjEtNC4xLTQuMS03czEuNi01LjYgNC4xLTdsMCAwIDAgMCAwIDAgMCAwIDAgMCAuMi0uMWMuMi0uMSAuNS0uMyAuOS0uNWMuOC0uNSAyLTEuMiAzLjQtMi4xYzIuOC0xLjkgNi41LTQuNSAxMC4yLTcuNmMzLjctMy4xIDcuMi02LjYgOS42LTEwLjFjMi41LTMuNSAzLjUtNi40IDMuNS04LjZzLTEtNS0zLjUtOC42Yy0yLjUtMy41LTUuOS02LjktOS42LTEwLjFjLTMuNy0zLjEtNy40LTUuNy0xMC4yLTcuNmMtMS40LS45LTIuNi0xLjYtMy40LTIuMWMtLjQtLjItLjctLjQtLjktLjVsLS4yLS4xIDAgMCAwIDAgMCAwYy0zLjItMS44LTQuNy01LjUtMy44LTlzNC4xLTYgNy43LTZjMTcuNCAwIDM0LjcgNC45IDQ3LjkgMTIuM2M2LjYgMy43IDEyLjUgOC4yIDE2LjcgMTMuNGM0LjMgNS4xIDcuMyAxMS40IDcuMyAxOC4zek0xNzYuNCAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xOTQuOCA1Ny42Yy0xNy42LTIzLjUtNTIuOC0yMy41LTcwLjQgMGMtNS4zIDcuMS0xNS4zIDguNS0yMi40IDMuMnMtOC41LTE1LjMtMy4yLTIyLjRjMzAuNC00MC41IDkxLjItNDAuNSAxMjEuNiAwYzUuMyA3LjEgMy45IDE3LjEtMy4yIDIyLjRzLTE3LjEgMy45LTIyLjQtMy4yek00MzQgMzUyLjNjLTYtMjMuMi0yOC44LTM3LTUxLjEtMzAuOHMtMzUuNCAzMC4xLTI5LjUgNTMuNGwyMi45IDg5LjNjMi4yIDguNyAxMS4yIDEzLjkgMTkuOCAxMS40bDg0LjktMjMuOGMyMi4yLTYuMiAzNS40LTMwLjEgMjkuNS01My40cy0yOC44LTM3LTUxLjEtMzAuOGwtMjAuMiA1LjYtNS40LTIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlS2lzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptNDguNy0xOTguM2M0LjMgNS4xIDcuMyAxMS40IDcuMyAxOC4zcy0zLjEgMTMuMi03LjMgMTguM2MtNC4zIDUuMi0xMC4xIDkuNy0xNi43IDEzLjRjLTIuNyAxLjUtNS43IDMtOC43IDQuM2MzLjEgMS4zIDYgMi43IDguNyA0LjNjNi42IDMuNyAxMi41IDguMiAxNi43IDEzLjRjNC4zIDUuMSA3LjMgMTEuNCA3LjMgMTguM3MtMy4xIDEzLjItNy4zIDE4LjNjLTQuMyA1LjItMTAuMSA5LjctMTYuNyAxMy40QzI3NC43IDQ0My4xIDI1Ny40IDQ0OCAyNDAgNDQ4Yy0zLjYgMC02LjgtMi41LTcuNy02cy42LTcuMiAzLjgtOWwwIDAgMCAwIDAgMCAwIDAgLjItLjFjLjItLjEgLjUtLjMgLjktLjVjLjgtLjUgMi0xLjIgMy40LTIuMWMyLjgtMS45IDYuNS00LjUgMTAuMi03LjZjMy43LTMuMSA3LjItNi42IDkuNi0xMC4xYzIuNS0zLjUgMy41LTYuNCAzLjUtOC42cy0xLTUtMy41LTguNmMtMi41LTMuNS01LjktNi45LTkuNi0xMC4xYy0zLjctMy4xLTcuNC01LjctMTAuMi03LjZjLTEuNC0uOS0yLjYtMS42LTMuNC0yLjFjLS40LS4yLS43LS40LS45LS41bC0uMi0uMSAwIDAgMCAwIDAgMGMtMi41LTEuNC00LjEtNC4xLTQuMS03czEuNi01LjYgNC4xLTdsMCAwIDAgMCAwIDAgMCAwIDAgMCAuMi0uMSAuMy0uMiAuNi0uNGMuOC0uNSAyLTEuMiAzLjQtMi4xYzIuOC0xLjkgNi41LTQuNSAxMC4yLTcuNmMzLjctMy4xIDcuMi02LjYgOS42LTEwLjFjMi41LTMuNSAzLjUtNi40IDMuNS04LjZzLTEtNS0zLjUtOC42Yy0yLjUtMy41LTUuOS02LjktOS42LTEwLjFjLTMuNy0zLjEtNy40LTUuNy0xMC4yLTcuNmMtMS40LS45LTIuNi0xLjYtMy40LTIuMWwtLjQtLjMtLjUtLjMtLjItLjEgMCAwIDAgMCAwIDBjLTMuMi0xLjgtNC43LTUuNS0zLjgtOXM0LjEtNiA3LjctNmMxNy40IDAgMzQuNyA0LjkgNDcuOSAxMi4zYzYuNiAzLjcgMTIuNSA4LjIgMTYuNyAxMy40ek0xNDQuNCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZUxhdWdoQmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNOTYuOCAzMTQuMWMtMy44LTEzLjcgNy40LTI2LjEgMjEuNi0yNi4xSDM5My42YzE0LjIgMCAyNS41IDEyLjQgMjEuNiAyNi4xQzM5Ni4yIDM4MiAzMzIuMSA0MzIgMjU2IDQzMnMtMTQwLjItNTAtMTU5LjItMTE3Ljl6TTIxNy42IDIxMi44bDAgMCAwIDAtLjItLjJjLS4yLS4yLS40LS41LS43LS45Yy0uNi0uOC0xLjYtMi0yLjgtMy40Yy0yLjUtMi44LTYtNi42LTEwLjItMTAuM2MtOC44LTcuOC0xOC44LTE0LTI3LjctMTRzLTE4LjkgNi4yLTI3LjcgMTRjLTQuMiAzLjctNy43IDcuNS0xMC4yIDEwLjNjLTEuMiAxLjQtMi4yIDIuNi0yLjggMy40Yy0uMyAuNC0uNiAuNy0uNyAuOWwtLjIgLjIgMCAwIDAgMCAwIDBjLTIuMSAyLjgtNS43IDMuOS04LjkgMi44cy01LjUtNC4xLTUuNS03LjZjMC0xNy45IDYuNy0zNS42IDE2LjYtNDguOGM5LjgtMTMgMjMuOS0yMy4yIDM5LjQtMjMuMnMyOS42IDEwLjIgMzkuNCAyMy4yYzkuOSAxMy4yIDE2LjYgMzAuOSAxNi42IDQ4LjhjMCAzLjQtMi4yIDYuNS01LjUgNy42cy02LjkgMC04LjktMi44bDAgMCAwIDB6bTE2MCAwbDAgMC0uMi0uMmMtLjItLjItLjQtLjUtLjctLjljLS42LS44LTEuNi0yLTIuOC0zLjRjLTIuNS0yLjgtNi02LjYtMTAuMi0xMC4zYy04LjgtNy44LTE4LjgtMTQtMjcuNy0xNHMtMTguOSA2LjItMjcuNyAxNGMtNC4yIDMuNy03LjcgNy41LTEwLjIgMTAuM2MtMS4yIDEuNC0yLjIgMi42LTIuOCAzLjRjLS4zIC40LS42IC43LS43IC45bC0uMiAuMiAwIDAgMCAwIDAgMGMtMi4xIDIuOC01LjcgMy45LTguOSAyLjhzLTUuNS00LjEtNS41LTcuNmMwLTE3LjkgNi43LTM1LjYgMTYuNi00OC44YzkuOC0xMyAyMy45LTIzLjIgMzkuNC0yMy4yczI5LjYgMTAuMiAzOS40IDIzLjJjOS45IDEzLjIgMTYuNiAzMC45IDE2LjYgNDguOGMwIDMuNC0yLjIgNi41LTUuNSA3LjZzLTYuOSAwLTguOS0yLjhsMCAwIDAgMCAwIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VMYXVnaFNxdWludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNOTYuOCAzMTQuMWMtMy44LTEzLjcgNy40LTI2LjEgMjEuNi0yNi4xSDM5My42YzE0LjIgMCAyNS41IDEyLjQgMjEuNiAyNi4xQzM5Ni4yIDM4MiAzMzIuMSA0MzIgMjU2IDQzMnMtMTQwLjItNTAtMTU5LjItMTE3Ljl6bTM2LjctMTk5LjRsODkuOSA0Ny45YzEwLjcgNS43IDEwLjcgMjEuMSAwIDI2LjhsLTg5LjkgNDcuOWMtNy45IDQuMi0xNy41LTEuNS0xNy41LTEwLjVjMC0yLjggMS01LjUgMi44LTcuNmwzNi00My4yLTM2LTQzLjJjLTEuOC0yLjEtMi44LTQuOC0yLjgtNy42YzAtOSA5LjYtMTQuNyAxNy41LTEwLjV6TTM5NiAxMjUuMWMwIDIuOC0xIDUuNS0yLjggNy42bC0zNiA0My4yIDM2IDQzLjJjMS44IDIuMSAyLjggNC44IDIuOCA3LjZjMCA5LTkuNiAxNC43LTE3LjUgMTAuNWwtODkuOS00Ny45Yy0xMC43LTUuNy0xMC43LTIxLjEgMC0yNi44bDg5LjktNDcuOWM3LjktNC4yIDE3LjUgMS41IDE3LjUgMTAuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZUxhdWdoV2luayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNOTYuOCAzMTQuMWMtMy44LTEzLjcgNy40LTI2LjEgMjEuNi0yNi4xSDM5My42YzE0LjIgMCAyNS41IDEyLjQgMjEuNiAyNi4xQzM5Ni4yIDM4MiAzMzIuMSA0MzIgMjU2IDQzMnMtMTQwLjItNTAtMTU5LjItMTE3Ljl6TTE0NC40IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNTYuNCAyNS42Yy01LjMgNy4xLTE1LjMgOC41LTIyLjQgMy4ycy04LjUtMTUuMy0zLjItMjIuNGMzMC40LTQwLjUgOTEuMi00MC41IDEyMS42IDBjNS4zIDcuMSAzLjkgMTcuMS0zLjIgMjIuNHMtMTcuMSAzLjktMjIuNC0zLjJjLTE3LjYtMjMuNS01Mi44LTIzLjUtNzAuNCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlTGF1Z2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTk2LjggMzE0LjFjLTMuOC0xMy43IDcuNC0yNi4xIDIxLjYtMjYuMUgzOTMuNmMxNC4yIDAgMjUuNSAxMi40IDIxLjYgMjYuMUMzOTYuMiAzODIgMzMyLjEgNDMyIDI1NiA0MzJzLTE0MC4yLTUwLTE1OS4yLTExNy45ek0xNDQuNCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZU1laEJsYW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMjA4LjQtNDhhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTI4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZU1laCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTc2LjQgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTE2MCAzMzZIMzUyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDE2MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZVJvbGxpbmdFeWVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xOTIgMzY4SDMyMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxOTJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTMyLTE0NGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGMwLTI2IDE1LjUtNDguNCAzNy44LTU4LjRjLTMuNyA1LjItNS44IDExLjYtNS44IDE4LjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTYuOS0yLjItMTMuMi01LjgtMTguNEMyMDguNSAxNzUuNiAyMjQgMTk4IDIyNCAyMjR6bTEyOCA2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRjMC0yNiAxNS41LTQ4LjQgMzcuOC01OC40Yy0zLjcgNS4yLTUuOCAxMS42LTUuOCAxOC40YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02LjktMi4yLTEzLjItNS44LTE4LjRDNDAwLjUgMTc1LjYgNDE2IDE5OCA0MTYgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlU2FkQ3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiA0OTMuNGMtMjkuNiAxMi02Mi4xIDE4LjYtOTYgMTguNnMtNjYuNC02LjYtOTYtMTguNlYyODhjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZWNDc3LjhDNTEuNSA0MzMuNSAwIDM1MC44IDAgMjU2QzAgMTE0LjYgMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NmMwIDk0LjgtNTEuNSAxNzcuNS0xMjggMjIxLjhWMjg4YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2VjQ5My40ek0xOTUuMiAyMzMuNmM1LjMgNy4xIDE1LjMgOC41IDIyLjQgMy4yczguNS0xNS4zIDMuMi0yMi40Yy0zMC40LTQwLjUtOTEuMi00MC41LTEyMS42IDBjLTUuMyA3LjEtMy45IDE3LjEgMy4yIDIyLjRzMTcuMSAzLjkgMjIuNC0zLjJjMTcuNi0yMy41IDUyLjgtMjMuNSA3MC40IDB6bTEyMS42IDBjMTcuNi0yMy41IDUyLjgtMjMuNSA3MC40IDBjNS4zIDcuMSAxNS4zIDguNSAyMi40IDMuMnM4LjUtMTUuMyAzLjItMjIuNGMtMzAuNC00MC41LTkxLjItNDAuNS0xMjEuNiAwYy01LjMgNy4xLTMuOSAxNy4xIDMuMiAyMi40czE3LjEgMy45IDIyLjQtMy4yek0yMDggMzM2djMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhWMzM2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlU2FkVGVhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwQTI1NiAyNTYgMCAxIDAgMCAyNTZ6bTI0MCA4MGMwLTguOCA3LjItMTYgMTYtMTZjNDUgMCA4NS42IDIwLjUgMTE1LjcgNTMuMWM2IDYuNSA1LjYgMTYuNi0uOSAyMi42cy0xNi42IDUuNi0yMi42LS45Yy0yNS0yNy4xLTU3LjQtNDIuOS05Mi4zLTQyLjljLTguOCAwLTE2LTcuMi0xNi0xNnptLTgwIDgwYy0yNi41IDAtNDgtMjEtNDgtNDdjMC0yMCAyOC42LTYwLjQgNDEuNi03Ny43YzMuMi00LjQgOS42LTQuNCAxMi44IDBDMTc5LjYgMzA4LjYgMjA4IDM0OSAyMDggMzY5YzAgMjYtMjEuNSA0Ny00OCA0N3pNMzY3LjYgMjA4YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bS0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlU21pbGVCZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjQuMSAzMjUuNUMxODIgMzQ2LjIgMjEyLjYgMzY4IDI1NiAzNjhzNzQtMjEuOCA5MS45LTQyLjVjNS44LTYuNyAxNS45LTcuNCAyMi42LTEuNnM3LjQgMTUuOSAxLjYgMjIuNkMzNDkuOCAzNzIuMSAzMTEuMSA0MDAgMjU2IDQwMHMtOTMuOC0yNy45LTExNi4xLTUzLjVjLTUuOC02LjctNS4xLTE2LjggMS42LTIyLjZzMTYuOC01LjEgMjIuNiAxLjZ6bTUzLjUtOTYuN2wwIDAgMCAwLS4yLS4yYy0uMi0uMi0uNC0uNS0uNy0uOWMtLjYtLjgtMS42LTItMi44LTMuNGMtMi41LTIuOC02LTYuNi0xMC4yLTEwLjNjLTguOC03LjgtMTguOC0xNC0yNy43LTE0cy0xOC45IDYuMi0yNy43IDE0Yy00LjIgMy43LTcuNyA3LjUtMTAuMiAxMC4zYy0xLjIgMS40LTIuMiAyLjYtMi44IDMuNGMtLjMgLjQtLjYgLjctLjcgLjlsLS4yIC4yIDAgMCAwIDAgMCAwYy0yLjEgMi44LTUuNyAzLjktOC45IDIuOHMtNS41LTQuMS01LjUtNy42YzAtMTcuOSA2LjctMzUuNiAxNi42LTQ4LjhjOS44LTEzIDIzLjktMjMuMiAzOS40LTIzLjJzMjkuNiAxMC4yIDM5LjQgMjMuMmM5LjkgMTMuMiAxNi42IDMwLjkgMTYuNiA0OC44YzAgMy40LTIuMiA2LjUtNS41IDcuNnMtNi45IDAtOC45LTIuOGwwIDAgMCAwem0xNjAgMGwwIDAtLjItLjJjLS4yLS4yLS40LS41LS43LS45Yy0uNi0uOC0xLjYtMi0yLjgtMy40Yy0yLjUtMi44LTYtNi42LTEwLjItMTAuM2MtOC44LTcuOC0xOC44LTE0LTI3LjctMTRzLTE4LjkgNi4yLTI3LjcgMTRjLTQuMiAzLjctNy43IDcuNS0xMC4yIDEwLjNjLTEuMiAxLjQtMi4yIDIuNi0yLjggMy40Yy0uMyAuNC0uNiAuNy0uNyAuOWwtLjIgLjIgMCAwIDAgMCAwIDBjLTIuMSAyLjgtNS43IDMuOS04LjkgMi44cy01LjUtNC4xLTUuNS03LjZjMC0xNy45IDYuNy0zNS42IDE2LjYtNDguOGM5LjgtMTMgMjMuOS0yMy4yIDM5LjQtMjMuMnMyOS42IDEwLjIgMzkuNCAyMy4yYzkuOSAxMy4yIDE2LjYgMzAuOSAxNi42IDQ4LjhjMCAzLjQtMi4yIDYuNS01LjUgNy42cy02LjkgMC04LjktMi44bDAgMCAwIDAgMCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlU21pbGVXaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjQuMSAzMjUuNUMxODIgMzQ2LjIgMjEyLjYgMzY4IDI1NiAzNjhzNzQtMjEuOCA5MS45LTQyLjVjNS44LTYuNyAxNS45LTcuNCAyMi42LTEuNnM3LjQgMTUuOSAxLjYgMjIuNkMzNDkuOCAzNzIuMSAzMTEuMSA0MDAgMjU2IDQwMHMtOTMuOC0yNy45LTExNi4xLTUzLjVjLTUuOC02LjctNS4xLTE2LjggMS42LTIyLjZzMTYuOC01LjEgMjIuNiAxLjZ6TTE0NC40IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNTYuNCAyNS42Yy01LjMgNy4xLTE1LjMgOC41LTIyLjQgMy4ycy04LjUtMTUuMy0zLjItMjIuNGMzMC40LTQwLjUgOTEuMi00MC41IDEyMS42IDBjNS4zIDcuMSAzLjkgMTcuMS0zLjIgMjIuNHMtMTcuMSAzLjktMjIuNC0zLjJjLTE3LjYtMjMuNS01Mi44LTIzLjUtNzAuNCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlU21pbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NC4xIDMyNS41QzE4MiAzNDYuMiAyMTIuNiAzNjggMjU2IDM2OHM3NC0yMS44IDkxLjktNDIuNWM1LjgtNi43IDE1LjktNy40IDIyLjYtMS42czcuNCAxNS45IDEuNiAyMi42QzM0OS44IDM3Mi4xIDMxMS4xIDQwMCAyNTYgNDAwcy05My44LTI3LjktMTE2LjEtNTMuNWMtNS44LTYuNy01LjEtMTYuOCAxLjYtMjIuNnMxNi44LTUuMSAyMi42IDEuNnpNMTQ0LjQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VTdXJwcmlzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTc2LjQgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTI1NiAyODhhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VUaXJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY0LjcgMzI4LjdjMjItMjIgNTMuOS00MC43IDkxLjMtNDAuN3M2OS4zIDE4LjcgOTEuMyA0MC43YzExLjEgMTEuMSAyMC4xIDIzLjQgMjYuNCAzNS40YzYuMiAxMS43IDEwLjMgMjQuNCAxMC4zIDM1LjljMCA1LjItMi42IDEwLjItNi45IDEzLjJzLTkuOCAzLjctMTQuNyAxLjhsLTIwLjUtNy43Yy0yNi45LTEwLjEtNTUuNS0xNS4zLTg0LjMtMTUuM2gtMy4yYy0yOC44IDAtNTcuMyA1LjItODQuMyAxNS4zTDE0OS42IDQxNWMtNC45IDEuOC0xMC40IDEuMi0xNC43LTEuOHMtNi45LTcuOS02LjktMTMuMmMwLTExLjYgNC4yLTI0LjIgMTAuMy0zNS45YzYuMy0xMiAxNS4zLTI0LjMgMjYuNC0zNS40em0tMzEuMi0xODJsODkuOSA0Ny45YzEwLjcgNS43IDEwLjcgMjEuMSAwIDI2LjhsLTg5LjkgNDcuOWMtNy45IDQuMi0xNy41LTEuNS0xNy41LTEwLjVjMC0yLjggMS01LjUgMi44LTcuNmwzNi00My4yLTM2LTQzLjJjLTEuOC0yLjEtMi44LTQuOC0yLjgtNy42YzAtOSA5LjYtMTQuNyAxNy41LTEwLjV6TTM5NiAxNTcuMWMwIDIuOC0xIDUuNS0yLjggNy42bC0zNiA0My4yIDM2IDQzLjJjMS44IDIuMSAyLjggNC44IDIuOCA3LjZjMCA5LTkuNiAxNC43LTE3LjUgMTAuNWwtODkuOS00Ny45Yy0xMC43LTUuNy0xMC43LTIxLjEgMC0yNi44bDg5LjktNDcuOWM3LjktNC4yIDE3LjUgMS41IDE3LjUgMTAuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1OC42IDBjLTEuNyAwLTMuNCAuMS01LjEgLjVDMTY4IDE3IDExNS42IDEwMi4zIDEzMC41IDE4OS4zYzIuOSAxNyA4LjQgMzIuOSAxNS45IDQ3LjRMMzIgMjI0SDI5LjRDMTMuMiAyMjQgMCAyMzcuMiAwIDI1My40YzAgMS43IC4xIDMuNCAuNSA1LjFDMTcgMzQ0IDEwMi4zIDM5Ni40IDE4OS4zIDM4MS41YzE3LTIuOSAzMi45LTguNCA0Ny40LTE1LjlMMjI0IDQ4MHYyLjZjMCAxNi4yIDEzLjIgMjkuNCAyOS40IDI5LjRjMS43IDAgMy40LS4xIDUuMS0uNUMzNDQgNDk1IDM5Ni40IDQwOS43IDM4MS41IDMyMi43Yy0yLjktMTctOC40LTMyLjktMTUuOS00Ny40TDQ4MCAyODhoMi42YzE2LjIgMCAyOS40LTEzLjIgMjkuNC0yOS40YzAtMS43LS4xLTMuNC0uNS01LjFDNDk1IDE2OCA0MDkuNyAxMTUuNiAzMjIuNyAxMzAuNWMtMTcgMi45LTMyLjkgOC40LTQ3LjQgMTUuOUwyODggMzJWMjkuNEMyODggMTMuMiAyNzQuOCAwIDI1OC42IDB6TTI1NiAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYXVjZXREcmlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjQ0bDk2LTEyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDI1NiA4NGwtMzEtMy45LTEtLjEtMSAuMUwxOTIgODQgOTYgOTZDNzguMyA5NiA2NCA4MS43IDY0IDY0czE0LjMtMzIgMzItMzJsOTYgMTJWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTAgMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDk2bDIyLjYtMjIuNmM2LTYgMTQuMS05LjQgMjIuNi05LjRIMTkyVjExNi4ybDMyLTQgMzIgNFYxNjBoMTguN2M4LjUgMCAxNi42IDMuNCAyMi42IDkuNEwzMjAgMTkyaDMyYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMySDQxNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzLTE0LjMtMzItMzItMzJIMzE1LjljLTIwLjIgMjktNTMuOSA0OC05MS45IDQ4cy03MS43LTE5LTkxLjktNDhIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjIyNHpNNDM2LjggNDIzLjRjMS45LTQuNSA2LjMtNy40IDExLjItNy40czkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMVY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ2LTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjFsMTguMi00Mi40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYXVjZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDk2djEyTDk2IDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2LTEyIDMxLTMuOSAxLS4xIDEgLjEgMzEgMy45IDk2IDEyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAxMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnpNMzIgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMkgxMzIuMWMyMC4yIDI5IDUzLjkgNDggOTEuOSA0OHM3MS43LTE5IDkxLjktNDhIMzUyYzE3LjcgMCAzMiAxNC4zIDMyIDMyczE0LjMgMzIgMzIgMzJoNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJjMC04OC40LTcxLjYtMTYwLTE2MC0xNjBIMzIwbC0yMi42LTIyLjZjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgyNTZWMTgwLjJsLTMyLTQtMzIgNFYyMjRIMTczLjNjLTguNSAwLTE2LjYgMy40LTIyLjYgOS40TDEyOCAyNTZIMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZheCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggNjR2OTZoNjRWNjRIMzg2LjdMNDE2IDkzLjNWMTYwaDY0VjkzLjNjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMNDMyIDE4LjdDNDIwIDYuNyA0MDMuNyAwIDM4Ni43IDBIMTkyYy0zNS4zIDAtNjQgMjguNy02NCA2NHpNMCAxNjBWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMySDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTQ4MCAzMkgxMjhWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMySDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTI1NiAyNTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em05NiAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMiA5NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTIyNCA0MTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmVhdGhlclBvaW50ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc4LjUgMjE1LjZMMjMgNDcxYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNzQuOC03NC44YzcuNCA0LjYgMTUuMyA4LjIgMjMuOCAxMC41QzIwMC4zIDQ1Mi44IDI3MCA0NTQuNSAzMzggNDA5LjRjMTIuMi04LjEgNS44LTI1LjQtOC44LTI1LjRsLTE2LjEgMGMtNS4xIDAtOS4yLTQuMS05LjItOS4yYzAtNC4xIDIuNy03LjYgNi41LTguOGw5Ny43LTI5LjNjMy40LTEgNi40LTMuMSA4LjQtNi4xYzQuNC02LjQgOC42LTEyLjkgMTIuNi0xOS42YzYuMi0xMC4zLTEuNS0yMy0xMy41LTIzbC0zOC42IDBjLTUuMSAwLTkuMi00LjEtOS4yLTkuMmMwLTQuMSAyLjctNy42IDYuNS04LjhsODAuOS0yNC4zYzQuNi0xLjQgOC40LTQuOCAxMC4yLTkuM0M0OTQuNSAxNjMgNTA3LjggODYuMSA1MTEuOSAzNi44Yy44LTkuOS0zLTE5LjYtMTAtMjYuNnMtMTYuNy0xMC44LTI2LjYtMTBDMzkxLjUgNyAyMjguNSA0MC41IDEzNy40IDEzMS42QzU3LjMgMjExLjcgNTYuNyAzMDIuMyA3MS4zIDM1Ni40YzIuMSA3LjkgMTIgOS42IDE3LjggMy44TDI1My42IDE5NS44YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwYzUuNCA1LjQgNi4xIDEzLjYgMi4yIDE5Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZlYXRoZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc4LjUgMjE1LjZMMjMgNDcxYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNTctNTdoNjhjNDkuNyAwIDk3LjktMTQuNCAxMzktNDFjMTEuMS03LjIgNS41LTIzLTcuOC0yM2MtNS4xIDAtOS4yLTQuMS05LjItOS4yYzAtNC4xIDIuNy03LjYgNi41LTguOGw4MS0yNC4zYzIuNS0uOCA0LjgtMi4xIDYuNy00bDIyLjQtMjIuNGMxMC4xLTEwLjEgMi45LTI3LjMtMTEuMy0yNy4zbC0zMi4yIDBjLTUuMSAwLTkuMi00LjEtOS4yLTkuMmMwLTQuMSAyLjctNy42IDYuNS04LjhsMTEyLTMzLjZjNC0xLjIgNy40LTMuOSA5LjMtNy43QzUwNi40IDIwNy42IDUxMiAxODQuMSA1MTIgMTYwYzAtNDEtMTYuMy04MC4zLTQ1LjMtMTA5LjNsLTUuNS01LjVDNDMyLjMgMTYuMyAzOTMgMCAzNTIgMHMtODAuMyAxNi4zLTEwOS4zIDQ1LjNMMTM5IDE0OUM5MSAxOTcgNjQgMjYyLjEgNjQgMzMwdjU1LjNMMjUzLjYgMTk1LjhjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBjNS40IDUuNCA2LjEgMTMuNiAyLjIgMTkuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmVycnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDBIMzUyYzE3LjcgMCAzMiAxNC4zIDMyIDMyaDc1LjFjMjAuNiAwIDMxLjYgMjQuMyAxOC4xIDM5LjhMNDU2IDk2SDEyMEw5OC44IDcxLjhDODUuMyA1Ni4zIDk2LjMgMzIgMTE2LjkgMzJIMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek05NiAxMjhINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjI4My41YzAgMTMuMy00LjIgMjYuMy0xMS45IDM3LjJsLTUxLjQgNzEuOWMtMS45IDEuMS0zLjcgMi4yLTUuNSAzLjVjLTE1LjUgMTAuNy0zNCAxOC01MSAxOS45SDM3NS42Yy0xNy4xLTEuOC0zNS05LTUwLjgtMTkuOWMtMjIuMS0xNS41LTUxLjYtMTUuNS03My43IDBjLTE0LjggMTAuMi0zMi41IDE4LTUwLjYgMTkuOUgxODMuOWMtMTctMS44LTM1LjYtOS4yLTUxLTE5LjljLTEuOC0xLjMtMy43LTIuNC01LjYtMy41TDc1LjkgMzIwLjdDNjguMiAzMDkuOCA2NCAyOTYuOCA2NCAyODMuNVYxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTMyIDY0djk2SDQ0OFYxOTJIMTI4ek0zMDYuNSA0MjEuOUMzMjkgNDM3LjQgMzU2LjUgNDQ4IDM4NCA0NDhjMjYuOSAwIDU1LjMtMTAuOCA3Ny40LTI2LjFsMCAwYzExLjktOC41IDI4LjEtNy44IDM5LjIgMS43YzE0LjQgMTEuOSAzMi41IDIxIDUwLjYgMjUuMmMxNy4yIDQgMjcuOSAyMS4yIDIzLjkgMzguNHMtMjEuMiAyNy45LTM4LjQgMjMuOWMtMjQuNS01LjctNDQuOS0xNi41LTU4LjItMjVDNDQ5LjUgNTAxLjcgNDE3IDUxMiAzODQgNTEyYy0zMS45IDAtNjAuNi05LjktODAuNC0xOC45Yy01LjgtMi43LTExLjEtNS4zLTE1LjYtNy43Yy00LjUgMi40LTkuNyA1LjEtMTUuNiA3LjdjLTE5LjggOS00OC41IDE4LjktODAuNCAxOC45Yy0zMyAwLTY1LjUtMTAuMy05NC41LTI1LjhjLTEzLjQgOC40LTMzLjcgMTkuMy01OC4yIDI1Yy0xNy4yIDQtMzQuNC02LjctMzguNC0yMy45czYuNy0zNC40IDIzLjktMzguNGMxOC4xLTQuMiAzNi4yLTEzLjMgNTAuNi0yNS4yYzExLjEtOS40IDI3LjMtMTAuMSAzOS4yLTEuN2wwIDBDMTM2LjcgNDM3LjIgMTY1LjEgNDQ4IDE5MiA0NDhjMjcuNSAwIDU1LTEwLjYgNzcuNS0yNi4xYzExLjEtNy45IDI1LjktNy45IDM3IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVBcnJvd0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNjBIMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYwSDY0ek0yNTYgMFYxMjhIMzg0TDI1NiAwek0yMTYgMjMyVjMzNC4xbDMxLTMxYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC03Mi03MmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDMxIDMxVjIzMmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlQXJyb3dVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjE2MEgyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjBINjR6TTI1NiAwVjEyOEgzODRMMjU2IDB6TTIxNiA0MDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMzA1LjlsLTMxIDMxYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDcyLTcyYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTMxLTMxVjQwOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUF1ZGlvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTYwSDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMEg2NHpNMjU2IDBWMTI4SDM4NEwyNTYgMHptMiAyMjYuM2MzNy4xIDIyLjQgNjIgNjMuMSA2MiAxMDkuN3MtMjQuOSA4Ny4zLTYyIDEwOS43Yy03LjYgNC42LTE3LjQgMi4xLTIyLTUuNHMtMi4xLTE3LjQgNS40LTIyQzI2OS40IDQwMS41IDI4OCAzNzAuOSAyODggMzM2cy0xOC42LTY1LjUtNDYuNS04Mi4zYy03LjYtNC42LTEwLTE0LjQtNS40LTIyczE0LjQtMTAgMjItNS40em0tOTEuOSAzMC45YzYgMi41IDkuOSA4LjMgOS45IDE0LjhWNDAwYzAgNi41LTMuOSAxMi4zLTkuOSAxNC44cy0xMi45IDEuMS0xNy40LTMuNUwxMTMuNCAzNzZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYzMTJjMC04LjggNy4yLTE2IDE2LTE2aDMzLjRsMzUuMy0zNS4zYzQuNi00LjYgMTEuNS01LjkgMTcuNC0zLjV6bTUxIDM0LjljNi42LTUuOSAxNi43LTUuMyAyMi42IDEuM0MyNDkuOCAzMDQuNiAyNTYgMzE5LjYgMjU2IDMzNnMtNi4yIDMxLjQtMTYuMyA0Mi43Yy01LjkgNi42LTE2IDcuMS0yMi42IDEuM3MtNy4xLTE2LTEuMy0yMi42YzUuMS01LjcgOC4xLTEzLjEgOC4xLTIxLjNzLTMuMS0xNS43LTguMS0yMS4zYy01LjktNi42LTUuMy0xNi43IDEuMy0yMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlQ2lyY2xlQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBIMjI0VjEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMkgzODR2MzguNkMzMTAuMSAyMTkuNSAyNTYgMjg3LjQgMjU2IDM2OGMwIDU5LjEgMjkuMSAxMTEuMyA3My43IDE0My4zYy0zLjIgLjUtNi40IC43LTkuNyAuN0g2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNjR6bTM4NCA2NEgyNTZWMEwzODQgMTI4ek0yODggMzY4YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIxMS4zLTQzLjNjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDQxNiAzODUuNGwtMjguNy0yOC43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDcyLTcyYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlQ2lyY2xlRXhjbGFtYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBIMjI0VjEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMkgzODR2MzguNkMzMTAuMSAyMTkuNSAyNTYgMjg3LjQgMjU2IDM2OGMwIDU5LjEgMjkuMSAxMTEuMyA3My43IDE0My4zYy0zLjIgLjUtNi40IC43LTkuNyAuN0g2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNjR6bTM4NCA2NEgyNTZWMEwzODQgMTI4em00OCA5NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTAgMjQwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMC0xOTJjLTguOCAwLTE2IDcuMi0xNiAxNnY4MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjI4OGMwLTguOC03LjItMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVDaXJjbGVNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEgyMjRWMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMySDM4NHYzOC42QzMxMC4xIDIxOS41IDI1NiAyODcuNCAyNTYgMzY4YzAgNTkuMSAyOS4xIDExMS4zIDczLjcgMTQzLjNjLTMuMiAuNS02LjQgLjctOS43IC43SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY2NHptMzg0IDY0SDI1NlYwTDM4NCAxMjh6TTI4OCAzNjhhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjI0IDBjMC04LjgtNy4yLTE2LTE2LTE2SDM2OGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNkg0OTZjOC44IDAgMTYtNy4yIDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlQ2lyY2xlUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEgyMjRWMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMySDM4NHYzOC42QzMxMC4xIDIxOS41IDI1NiAyODcuNCAyNTYgMzY4YzAgNTkuMSAyOS4xIDExMS4zIDczLjcgMTQzLjNjLTMuMiAuNS02LjQgLjctOS43IC43SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY2NHptMzg0IDY0SDI1NlYwTDM4NCAxMjh6bTQ4IDk2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMTYgODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2NDhIMzY4Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2aDQ4djQ4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMzg0aDQ4YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDQ0OFYzMDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVDaXJjbGVRdWVzdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEgyMjRWMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMySDM4NHYzOC42QzMxMC4xIDIxOS41IDI1NiAyODcuNCAyNTYgMzY4YzAgNTkuMSAyOS4xIDExMS4zIDczLjcgMTQzLjNjLTMuMiAuNS02LjQgLjctOS43IC43SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY2NHptMzg0IDY0SDI1NlYwTDM4NCAxMjh6bTQ4IDk2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMCAyNDBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4ek0zNjggMzIxLjZWMzI4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZ2LTYuNGMwLTUuMyA0LjMtOS42IDkuNi05LjZoNDAuNWM3LjcgMCAxMy45IDYuMiAxMy45IDEzLjljMCA1LjItMi45IDkuOS03LjQgMTIuM2wtMzIgMTYuOGMtNS4zIDIuOC04LjYgOC4yLTguNiAxNC4yVjM4NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2di01LjFsMjMuNS0xMi4zYzE1LjEtNy45IDI0LjUtMjMuNiAyNC41LTQwLjZjMC0yNS40LTIwLjYtNDUuOS00NS45LTQ1LjlINDA5LjZjLTIzIDAtNDEuNiAxOC42LTQxLjYgNDEuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUNpcmNsZVhtYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwSDIyNFYxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzg0djM4LjZDMzEwLjEgMjE5LjUgMjU2IDI4Ny40IDI1NiAzNjhjMCA1OS4xIDI5LjEgMTExLjMgNzMuNyAxNDMuM2MtMy4yIC41LTYuNCAuNy05LjcgLjdINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjY0em0zODQgNjRIMjU2VjBMMzg0IDEyOHptNDggOTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em01OS4zIDEwNy4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBMNDMyIDM0NS40bC0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZMNDA5LjQgMzY4bC0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMEw0MzIgMzkwLjZsMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNkw0NTQuNiAzNjhsMzYuNy0zNi43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlQ29kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjE2MEgyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjBINjR6TTI1NiAwVjEyOEgzODRMMjU2IDB6TTE1MyAyODlsLTMxIDMxIDMxIDMxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNzEgMzM3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw0OC00OGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6TTI2NSAyNTVsNDggNDhjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTQ4IDQ4Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVDb250cmFjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjE2MEgyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjBINjR6TTI1NiAwVjEyOEgzODRMMjU2IDB6TTgwIDY0aDY0YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0wIDY0aDY0YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em01NC4yIDI1My44Yy02LjEgMjAuMy0yNC44IDM0LjItNDYgMzQuMkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmg4LjJjNy4xIDAgMTMuMy00LjYgMTUuMy0xMS40bDE0LjktNDkuNWMzLjQtMTEuMyAxMy44LTE5LjEgMjUuNi0xOS4xczIyLjIgNy43IDI1LjYgMTkuMWwxMS42IDM4LjZjNy40LTYuMiAxNi44LTkuNyAyNi44LTkuN2MxNS45IDAgMzAuNCA5IDM3LjUgMjMuMmw0LjQgOC44SDMwNGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgyNDBjLTYuMSAwLTExLjYtMy40LTE0LjMtOC44bC04LjgtMTcuN2MtMS43LTMuNC01LjEtNS41LTguOC01LjVzLTcuMiAyLjEtOC44IDUuNWwtOC44IDE3LjdjLTIuOSA1LjktOS4yIDkuNC0xNS43IDguOHMtMTIuMS01LjEtMTMuOS0xMS4zTDE0NCAzNDlsLTkuOCAzMi44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlQ3N2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwSDIyNFYxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzg0VjMwNEgxNzZjLTM1LjMgMC02NCAyOC43LTY0IDY0VjUxMkg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNjR6bTM4NCA2NEgyNTZWMEwzODQgMTI4ek0yMDAgMzUyaDE2YzIyLjEgMCA0MCAxNy45IDQwIDQwdjhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZ2LThjMC00LjQtMy42LTgtOC04SDIwMGMtNC40IDAtOCAzLjYtOCA4djgwYzAgNC40IDMuNiA4IDggOGgxNmM0LjQgMCA4LTMuNiA4LTh2LThjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnY4YzAgMjIuMS0xNy45IDQwLTQwIDQwSDIwMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBWMzkyYzAtMjIuMSAxNy45LTQwIDQwLTQwem0xMzMuMSAwSDM2OGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgzMzMuMWMtNy4yIDAtMTMuMSA1LjktMTMuMSAxMy4xYzAgNS4yIDMgOS45IDcuOCAxMmwzNy40IDE2LjZjMTYuMyA3LjIgMjYuOCAyMy40IDI2LjggNDEuMmMwIDI0LjktMjAuMiA0NS4xLTQ1LjEgNDUuMUgzMDRjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoNDIuOWM3LjIgMCAxMy4xLTUuOSAxMy4xLTEzLjFjMC01LjItMy05LjktNy44LTEybC0zNy40LTE2LjZjLTE2LjMtNy4yLTI2LjgtMjMuNC0yNi44LTQxLjJjMC0yNC45IDIwLjItNDUuMSA0NS4xLTQ1LjF6bTk4LjkgMGM4LjggMCAxNiA3LjIgMTYgMTZ2MzEuNmMwIDIzIDUuNSA0NS42IDE2IDY2YzEwLjUtMjAuMyAxNi00Mi45IDE2LTY2VjM2OGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djMxLjZjMCAzNC43LTEwLjMgNjguNy0yOS42IDk3LjZsLTUuMSA3LjdjLTMgNC41LTggNy4xLTEzLjMgNy4xcy0xMC4zLTIuNy0xMy4zLTcuMWwtNS4xLTcuN2MtMTkuMy0yOC45LTI5LjYtNjIuOS0yOS42LTk3LjZWMzY4YzAtOC44IDcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUV4Y2VsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTYwSDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMEg2NHpNMjU2IDBWMTI4SDM4NEwyNTYgMHpNMTU1LjcgMjUwLjJMMTkyIDMwMi4xbDM2LjMtNTEuOWM3LjYtMTAuOSAyMi42LTEzLjUgMzMuNC01LjlzMTMuNSAyMi42IDUuOSAzMy40TDIyMS4zIDM0NGw0Ni40IDY2LjJjNy42IDEwLjkgNSAyNS44LTUuOSAzMy40cy0yNS44IDUtMzMuNC01LjlMMTkyIDM4NS44bC0zNi4zIDUxLjljLTcuNiAxMC45LTIyLjYgMTMuNS0zMy40IDUuOXMtMTMuNS0yMi42LTUuOS0zMy40TDE2Mi43IDM0NGwtNDYuNC02Ni4yYy03LjYtMTAuOS01LTI1LjggNS45LTMzLjRzMjUuOC01IDMzLjQgNS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlRXhwb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwSDIyNFYxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzg0VjI4OEgyMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRIMzg0VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNjR6TTM4NCAzMzZWMjg4SDQ5NC4xbC0zOS0zOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDgwIDgwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC04MCA4MGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzOS0zOUgzODR6bTAtMjA4SDI1NlYwTDM4NCAxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVJbWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjE2MEgyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjBINjR6TTI1NiAwVjEyOEgzODRMMjU2IDB6TTY0IDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNTIgMzJjNS4zIDAgMTAuMiAyLjYgMTMuMiA2LjlsODggMTI4YzMuNCA0LjkgMy43IDExLjMgMSAxNi41cy04LjIgOC42LTE0LjIgOC42SDIxNiAxNzYgMTI4IDgwYy01LjggMC0xMS4xLTMuMS0xMy45LTguMXMtMi44LTExLjIgLjItMTYuMWw0OC04MGMyLjktNC44IDguMS03LjggMTMuNy03LjhzMTAuOCAyLjkgMTMuNyA3LjhsMTIuOCAyMS40IDQ4LjMtNzAuMmMzLTQuMyA3LjktNi45IDEzLjItNi45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlSW1wb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCA2NGMwLTM1LjMgMjguNy02NCA2NC02NEgzNTJWMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMySDUxMlY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRIMTkyYy0zNS4zIDAtNjQtMjguNy02NC02NFYzMzZIMzAyLjFsLTM5IDM5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsODAtODBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTgwLTgwYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDM5IDM5SDEyOFY2NHptMCAyMjR2NDhIMjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRIMTI4ek01MTIgMTI4SDM4NFYwTDUxMiAxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVJbnZvaWNlRG9sbGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTYwSDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMEg2NHpNMjU2IDBWMTI4SDM4NEwyNTYgMHpNNjQgODBjMC04LjggNy4yLTE2IDE2LTE2aDY0YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZ6bTAgNjRjMC04LjggNy4yLTE2IDE2LTE2aDY0YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZ6bTEyOCA3MmM4LjggMCAxNiA3LjIgMTYgMTZ2MTcuM2M4LjUgMS4yIDE2LjcgMy4xIDI0LjEgNS4xYzguNSAyLjMgMTMuNiAxMSAxMS4zIDE5LjZzLTExIDEzLjYtMTkuNiAxMS4zYy0xMS4xLTMtMjItNS4yLTMyLjEtNS4zYy04LjQtLjEtMTcuNCAxLjgtMjMuNiA1LjVjLTUuNyAzLjQtOC4xIDcuMy04LjEgMTIuOGMwIDMuNyAxLjMgNi41IDcuMyAxMC4xYzYuOSA0LjEgMTYuNiA3LjEgMjkuMiAxMC45bC41IC4xIDAgMCAwIDBjMTEuMyAzLjQgMjUuMyA3LjYgMzYuMyAxNC42YzEyLjEgNy42IDIyLjQgMTkuNyAyMi43IDM4LjJjLjMgMTkuMy05LjYgMzMuMy0yMi45IDQxLjZjLTcuNyA0LjgtMTYuNCA3LjYtMjUuMSA5LjFWNDQwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjQyMi4yYy0xMS4yLTIuMS0yMS43LTUuNy0zMC45LTguOWwwIDAgMCAwYy0yLjEtLjctNC4yLTEuNC02LjItMi4xYy04LjQtMi44LTEyLjktMTEuOS0xMC4xLTIwLjJzMTEuOS0xMi45IDIwLjItMTAuMWMyLjUgLjggNC44IDEuNiA3LjEgMi40bDAgMCAwIDAgMCAwYzEzLjYgNC42IDI0LjYgOC40IDM2LjMgOC43YzkuMSAuMyAxNy45LTEuNyAyMy43LTUuM2M1LjEtMy4yIDcuOS03LjMgNy44LTE0Yy0uMS00LjYtMS44LTcuOC03LjctMTEuNmMtNi44LTQuMy0xNi41LTcuNC0yOS0xMS4ybC0xLjYtLjUgMCAwYy0xMS0zLjMtMjQuMy03LjMtMzQuOC0xMy43Yy0xMi03LjItMjIuNi0xOC45LTIyLjctMzcuM2MtLjEtMTkuNCAxMC44LTMyLjggMjMuOC00MC41YzcuNS00LjQgMTUuOC03LjIgMjQuMS04LjdWMjMyYzAtOC44IDcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUludm9pY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNjBIMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYwSDY0ek0yNTYgMFYxMjhIMzg0TDI1NiAwek04MCA2NGg2NGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMCA2NGg2NGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMTYgOTZIMjg4YzE3LjcgMCAzMiAxNC4zIDMyIDMydjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMySDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYyNTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTAgMzJ2NjRIMjg4VjI1Nkg5NnpNMjQwIDQxNmg2NGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgyNDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVMaW5lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjE2MEgyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjBINjR6TTI1NiAwVjEyOEgzODRMMjU2IDB6TTExMiAyNTZIMjcyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDExMmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMCA2NEgyNzJjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMTEyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0wIDY0SDI3MmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxMTJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVNZWRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTYwSDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMEg2NHpNMjU2IDBWMTI4SDM4NEwyNTYgMHpNMTYwIDI0MGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djQ4aDQ4YzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMjI0djQ4YzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYzNTJIMTEyYy04LjggMC0xNi03LjItMTYtMTZWMzA0YzAtOC44IDcuMi0xNiAxNi0xNmg0OFYyNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVQZGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjI0IDBsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDAgMCAxNDQtMjA4IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMTQ0LTQ4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTM4NCA2NGwtMTI4IDBMMjU2IDAgMzg0IDEyOHpNMTc2IDM1MmwzMiAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2cy0yNS4xIDU2LTU2IDU2bC0xNiAwIDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00OCAwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnptMzIgODBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE2IDAgMCA0OCAxNiAwem05Ni04MGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTEyOGMwLTguOCA3LjItMTYgMTYtMTZ6bTMyIDEyOGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZsLTE2IDAgMCA5NiAxNiAwem04MC0xMTJjMC04LjggNy4yLTE2IDE2LTE2bDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTMyIDAgMCAzMiAzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0zMiAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC02NCAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlUGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwSDIyNFYxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzg0VjI5OS42bC05NC43IDk0LjdjLTguMiA4LjItMTQgMTguNS0xNi44IDI5LjdsLTE1IDYwLjFjLTIuMyA5LjQtMS44IDE5IDEuNCAyNy44SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY2NHptMzg0IDY0SDI1NlYwTDM4NCAxMjh6TTU0OS44IDIzNS43bDE0LjQgMTQuNGMxNS42IDE1LjYgMTUuNiA0MC45IDAgNTYuNmwtMjkuNCAyOS40LTcxLTcxIDI5LjQtMjkuNGMxNS42LTE1LjYgNDAuOS0xNS42IDU2LjYgMHpNMzExLjkgNDE3TDQ0MS4xIDI4Ny44bDcxIDcxTDM4Mi45IDQ4Ny45Yy00LjEgNC4xLTkuMiA3LTE0LjkgOC40bC02MC4xIDE1Yy01LjUgMS40LTExLjItLjItMTUuMi00LjJzLTUuNi05LjctNC4yLTE1LjJsMTUtNjAuMWMxLjQtNS42IDQuMy0xMC44IDguNC0xNC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlUG93ZXJwb2ludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjE2MEgyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjBINjR6TTI1NiAwVjEyOEgzODRMMjU2IDB6TTEzNiAyNDBoNjhjNDIgMCA3NiAzNCA3NiA3NnMtMzQgNzYtNzYgNzZIMTYwdjMyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjM2OCAyNjRjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTY4IDEwNGMxNS41IDAgMjgtMTIuNSAyOC0yOHMtMTIuNS0yOC0yOC0yOEgxNjB2NTZoNDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVQcmVzY3JpcHRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNjBIMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYwSDY0ek0yNTYgMFYxMjhIMzg0TDI1NiAwek0xMDQgMTk2aDcyYzMzLjEgMCA2MCAyNi45IDYwIDYwYzAgMjUuNS0xNS45IDQ3LjItMzguMyA1NS45bDQzIDQwLjMgMzMuOC0zMWM4LjEtNy41IDIwLjgtNi45IDI4LjMgMS4yczYuOSAyMC44LTEuMiAyOC4zTDI3MCAzNzkuN2wzMS43IDI5LjdjOC4xIDcuNiA4LjUgMjAuMiAuOSAyOC4zcy0yMC4yIDguNS0yOC4zIC45bC0zMy45LTMxLjgtMzQuOSAzMmMtOC4xIDcuNS0yMC44IDYuOS0yOC4zLTEuMnMtNi45LTIwLjggMS4yLTI4LjNsMzIuNi0yOS45LTY0LjgtNjAuOGMtLjktLjgtMS42LTEuNy0yLjMtMi42SDEyNHY0NGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBWMjk2IDIxNmMwLTExIDktMjAgMjAtMjB6bTcyIDgwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMEgxMjR2NDBoNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVTaGllbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBIMjI0VjEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMkgzODR2NDdsLTkyLjggMzcuMWMtMjEuMyA4LjUtMzUuMiAyOS4xLTM1LjIgNTJjMCA1Ni42IDE4LjkgMTQ4IDk0LjIgMjA4LjNjLTkgNC44LTE5LjMgNy42LTMwLjIgNy42SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY2NHptMzg0IDY0SDI1NlYwTDM4NCAxMjh6bTM5LjEgOTcuN2M1LjctMi4zIDEyLjEtMi4zIDE3LjggMGwxMjAgNDhDNTcwIDI3Ny40IDU3NiAyODYuMiA1NzYgMjk2YzAgNjMuMy0yNS45IDE2OC44LTEzNC44IDIxNC4yYy01LjkgMi41LTEyLjYgMi41LTE4LjUgMEMzMTMuOSA0NjQuOCAyODggMzU5LjMgMjg4IDI5NmMwLTkuOCA2LTE4LjYgMTUuMS0yMi4zbDEyMC00OHpNNTI3LjQgMzEyTDQzMiAyNzMuOFY0NjEuN2M2OC4yLTMzIDkxLjUtOTkgOTUuNC0xNDkuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZVNpZ25hdHVyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjQyOC43Yy0yLjcgMS4xLTUuNCAyLTguMiAyLjdsLTYwLjEgMTVjLTMgLjctNiAxLjItOSAxLjRjLS45IC4xLTEuOCAuMi0yLjcgLjJIMjQwYy02LjEgMC0xMS42LTMuNC0xNC4zLTguOGwtOC44LTE3LjdjLTEuNy0zLjQtNS4xLTUuNS04LjgtNS41cy03LjIgMi4xLTguOCA1LjVsLTguOCAxNy43Yy0yLjkgNS45LTkuMiA5LjQtMTUuNyA4LjhzLTEyLjEtNS4xLTEzLjktMTEuM0wxNDQgMzgxbC05LjggMzIuOGMtNi4xIDIwLjMtMjQuOCAzNC4yLTQ2IDM0LjJIODBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoOC4yYzcuMSAwIDEzLjMtNC42IDE1LjMtMTEuNGwxNC45LTQ5LjVjMy40LTExLjMgMTMuOC0xOS4xIDI1LjYtMTkuMXMyMi4yIDcuOCAyNS42IDE5LjFsMTEuNiAzOC42YzcuNC02LjIgMTYuOC05LjcgMjYuOC05LjdjMTUuOSAwIDMwLjQgOSAzNy41IDIzLjJsNC40IDguOGg4LjljLTMuMS04LjgtMy43LTE4LjQtMS40LTI3LjhsMTUtNjAuMWMyLjgtMTEuMyA4LjYtMjEuNSAxNi44LTI5LjdMMzg0IDIwMy42VjE2MEgyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjBINjR6TTI1NiAwVjEyOEgzODRMMjU2IDB6TTU0OS44IDEzOS43Yy0xNS42LTE1LjYtNDAuOS0xNS42LTU2LjYgMGwtMjkuNCAyOS40IDcxIDcxIDI5LjQtMjkuNGMxNS42LTE1LjYgMTUuNi00MC45IDAtNTYuNmwtMTQuNC0xNC40ek0zMTEuOSAzMjFjLTQuMSA0LjEtNyA5LjItOC40IDE0LjlsLTE1IDYwLjFjLTEuNCA1LjUgLjIgMTEuMiA0LjIgMTUuMnM5LjcgNS42IDE1LjIgNC4ybDYwLjEtMTVjNS42LTEuNCAxMC44LTQuMyAxNC45LTguNEw1MTIuMSAyNjIuN2wtNzEtNzFMMzExLjkgMzIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlVmlkZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNjBIMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYwSDY0ek0yNTYgMFYxMjhIMzg0TDI1NiAwek02NCAyODhjMC0xNy43IDE0LjMtMzIgMzItMzJoOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjI4OHpNMzAwLjkgMzk3LjlMMjU2IDM2OFYzMDRsNDQuOS0yOS45YzItMS4zIDQuNC0yLjEgNi44LTIuMWM2LjggMCAxMi4zIDUuNSAxMi4zIDEyLjNWMzg3LjdjMCA2LjgtNS41IDEyLjMtMTIuMyAxMi4zYy0yLjQgMC00LjgtLjctNi44LTIuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZVdhdmVmb3JtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRWMjg4SDE0NGM2LjEgMCAxMS42IDMuNCAxNC4zIDguOEwxNzYgMzMyLjJsNDkuNy05OS40YzIuNy01LjQgOC4zLTguOCAxNC4zLTguOHMxMS42IDMuNCAxNC4zIDguOEwyODEuOSAyODhIMzUyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDI3MmMtNi4xIDAtMTEuNi0zLjQtMTQuMy04LjhMMjQwIDI3NS44bC00OS43IDk5LjRjLTIuNyA1LjQtOC4zIDguOC0xNC4zIDguOHMtMTEuNi0zLjQtMTQuMy04LjhMMTM0LjEgMzIwSDMyVjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzNTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTYwSDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMEg5NnpNMjg4IDBWMTI4SDQxNkwyODggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZVdvcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNjBIMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYwSDY0ek0yNTYgMFYxMjhIMzg0TDI1NiAwek0xMTEgMjU3LjFsMjYuOCA4OS4yIDMxLjYtOTAuM2MzLjQtOS42IDEyLjUtMTYuMSAyMi43LTE2LjFzMTkuMyA2LjQgMjIuNyAxNi4xbDMxLjYgOTAuM0wyNzMgMjU3LjFjMy44LTEyLjcgMTcuMi0xOS45IDI5LjktMTYuMXMxOS45IDE3LjIgMTYuMSAyOS45bC00OCAxNjBjLTMgMTAtMTIgMTYuOS0yMi40IDE3LjFzLTE5LjgtNi4yLTIzLjItMTYuMUwxOTIgMzM2LjZsLTMzLjMgOTUuM2MtMy40IDkuOC0xMi44IDE2LjMtMjMuMiAxNi4xcy0xOS41LTcuMS0yMi40LTE3LjFsLTQ4LTE2MGMtMy44LTEyLjcgMy40LTI2LjEgMTYuMS0yOS45czI2LjEgMy40IDI5LjkgMTYuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZVppcHBlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjE2MEgyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjBINjR6TTI1NiAwVjEyOEgzODRMMjU2IDB6TTk2IDQ4YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxMTJjLTguOCAwLTE2LTcuMi0xNi0xNnptMCA2NGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMTEyYy04LjggMC0xNi03LjItMTYtMTZ6bTAgNjRjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDExMmMtOC44IDAtMTYtNy4yLTE2LTE2em0tNi4zIDcxLjhjMy43LTE0IDE2LjQtMjMuOCAzMC45LTIzLjhoMTQuOGMxNC41IDAgMjcuMiA5LjcgMzAuOSAyMy44bDIzLjUgODguMmMxLjQgNS40IDIuMSAxMC45IDIuMSAxNi40YzAgMzUuMi0yOC44IDYzLjctNjQgNjMuN3MtNjQtMjguNS02NC02My43YzAtNS41IC43LTExLjEgMi4xLTE2LjRsMjMuNS04OC4yek0xMTIgMzM2Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDExMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEgyMjRWMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMySDM4NFY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjY0em0zODQgNjRIMjU2VjBMMzg0IDEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsbERyaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDEuNCA5LjRDNTMuOS0zLjEgNzQuMS0zLjEgODYuNiA5LjRMMTY4IDkwLjdsNTMuMS01My4xYzI4LjEtMjguMSA3My43LTI4LjEgMTAxLjggMEw0NzQuMyAxODkuMWMyOC4xIDI4LjEgMjguMSA3My43IDAgMTAxLjhMMjgzLjkgNDgxLjRjLTM3LjUgMzcuNS05OC4zIDM3LjUtMTM1LjggMEwzMC42IDM2My45Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjhMMTIyLjcgMTM2IDQxLjQgNTQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6bTE3NiAyMjEuM0wxNjggMTgxLjMgNzUuOSAyNzMuNGMtNC4yIDQuMi03IDkuMy04LjQgMTQuNkgzODYuN2w0Mi4zLTQyLjNjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM0wyNzcuNyA4Mi45Yy0zLjEtMy4xLTguMi0zLjEtMTEuMyAwTDIxMy4zIDEzNmw0OS40IDQ5LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDB6TTUxMiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0YzAtMjUuMiAzMi42LTc5LjYgNTEuMi0xMDguN2M2LTkuNCAxOS41LTkuNCAyNS41IDBDNTQzLjQgMzY4LjQgNTc2IDQyMi44IDU3NiA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODYuNiA5LjRDNzQuMS0zLjEgNTMuOS0zLjEgNDEuNCA5LjRzLTEyLjUgMzIuOCAwIDQ1LjNMMTIyLjcgMTM2IDMwLjYgMjI4LjFjLTM3LjUgMzcuNS0zNy41IDk4LjMgMCAxMzUuOEwxNDguMSA0ODEuNGMzNy41IDM3LjUgOTguMyAzNy41IDEzNS44IDBMNDc0LjMgMjkwLjljMjguMS0yOC4xIDI4LjEtNzMuNyAwLTEwMS44TDMyMi45IDM3LjdjLTI4LjEtMjguMS03My43LTI4LjEtMTAxLjggMEwxNjggOTAuNyA4Ni42IDkuNHpNMTY4IDE4MS4zbDQ5LjQgNDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDIxMy4zIDEzNmw1My4xLTUzLjFjMy4xLTMuMSA4LjItMy4xIDExLjMgMEw0MjkuMSAyMzQuM2MzLjEgMy4xIDMuMSA4LjIgMCAxMS4zTDM4Ni43IDI4OEg2Ny41YzEuNC01LjQgNC4yLTEwLjQgOC40LTE0LjZMMTY4IDE4MS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJINDQ4YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWOTZ6TTQ4IDM2OHYzMmMwIDguOCA3LjIgMTYgMTYgMTZIOTZjOC44IDAgMTYtNy4yIDE2LTE2VjM2OGMwLTguOC03LjItMTYtMTYtMTZINjRjLTguOCAwLTE2IDcuMi0xNiAxNnptMzY4LTE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzNjhjMC04LjgtNy4yLTE2LTE2LTE2SDQxNnpNNDggMjQwdjMyYzAgOC44IDcuMiAxNiAxNiAxNkg5NmM4LjggMCAxNi03LjIgMTYtMTZWMjQwYzAtOC44LTcuMi0xNi0xNi0xNkg2NGMtOC44IDAtMTYgNy4yLTE2IDE2em0zNjgtMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjI0MGMwLTguOC03LjItMTYtMTYtMTZINDE2ek00OCAxMTJ2MzJjMCA4LjggNy4yIDE2IDE2IDE2SDk2YzguOCAwIDE2LTcuMiAxNi0xNlYxMTJjMC04LjgtNy4yLTE2LTE2LTE2SDY0Yy04LjggMC0xNiA3LjItMTYgMTZ6TTQxNiA5NmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMTEyYzAtOC44LTcuMi0xNi0xNi0xNkg0MTZ6TTE2MCAxMjh2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzIwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem0zMiAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMySDMyMGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMjBjMC0xNy43LTE0LjMtMzItMzItMzJIMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWx0ZXJDaXJjbGVEb2xsYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy45IDIyLjlDMTAuNSA4LjkgMjQuNSAwIDQwIDBINDcyYzE1LjUgMCAyOS41IDguOSAzNi4xIDIyLjlzNC42IDMwLjUtNS4yIDQyLjVMMzk2LjQgMTk1LjZDMzE2LjIgMjEyLjEgMjU2IDI4MyAyNTYgMzY4YzAgMjcuNCA2LjMgNTMuNCAxNy41IDc2LjVjLTEuNi0uOC0zLjItMS44LTQuNy0yLjlsLTY0LTQ4Yy04LjEtNi0xMi44LTE1LjUtMTIuOC0yNS42VjI4OC45TDkgNjUuM0MtLjcgNTMuNC0yLjggMzYuOCAzLjkgMjIuOXpNMjg4IDM2OGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xMjAuOC0zMi42Yy42LS45IDEuOC0yLjEgNC4yLTMuNGM1LjEtMi43IDEyLjUtNC4xIDE4LjctNGM4LjIgLjEgMTcuMSAxLjggMjYuNCA0LjFjOC42IDIuMSAxNy4zLTMuMSAxOS40LTExLjdzLTMuMS0xNy4zLTExLjctMTkuNGMtNS42LTEuNC0xMS42LTIuNy0xNy45LTMuN1YyODhjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2OS41Yy02LjEgMS4yLTEyLjMgMy4yLTE4IDYuM2MtMTEuOCA2LjMtMjMgMTguNC0yMS44IDM3LjJjMSAxNiAxMS43IDI1LjMgMjEuNiAzMC43YzguOCA0LjcgMTkuNyA3LjggMjguNiAxMC4zbDEuOCAuNWMxMC4zIDIuOSAxNy45IDUuMiAyMy4yIDguM2M0LjUgMi43IDQuNyA0LjIgNC43IDUuNmMuMSAyLjQtLjUgMy43LTEgNC41Yy0uNiAxLTEuOCAyLjItNCAzLjNjLTQuNyAyLjUtMTEuOCAzLjgtMTguNSAzLjZjLTkuNS0uMy0xOC41LTMuMS0yOS45LTYuOGMtMS45LS42LTMuOC0xLjItNS44LTEuOGMtOC40LTIuNi0xNy40IDIuMS0yMCAxMC41czIuMSAxNy40IDEwLjUgMjBjMS42IC41IDMuMyAxIDUgMS42bDAgMCAwIDBjNyAyLjMgMTUuMSA0LjggMjMuNyA2LjZ2MTEuNGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjQzOC43YzYuMi0xLjEgMTIuNS0zLjEgMTguMy02LjJjMTIuMS02LjUgMjIuMy0xOC43IDIxLjctMzYuOWMtLjUtMTYuMi0xMC4zLTI2LjMtMjAuNS0zMi4zYy05LjQtNS42LTIxLjItOC45LTMwLjUtMTEuNWwtLjIgMGMtMTAuNC0yLjktMTguMy01LjItMjMuOS04LjJjLTQuOC0yLjYtNC44LTQtNC44LTQuNWwwLS4xYy0uMS0xLjkgLjMtMi45IC44LTMuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsdGVyQ2lyY2xlWG1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy45IDIyLjlDMTAuNSA4LjkgMjQuNSAwIDQwIDBINDcyYzE1LjUgMCAyOS41IDguOSAzNi4xIDIyLjlzNC42IDMwLjUtNS4yIDQyLjVMMzk2LjQgMTk1LjZDMzE2LjIgMjEyLjEgMjU2IDI4MyAyNTYgMzY4YzAgMjcuNCA2LjMgNTMuNCAxNy41IDc2LjVjLTEuNi0uOC0zLjItMS44LTQuNy0yLjlsLTY0LTQ4Yy04LjEtNi0xMi44LTE1LjUtMTIuOC0yNS42VjI4OC45TDkgNjUuM0MtLjcgNTMuNC0yLjggMzYuOCAzLjkgMjIuOXpNNDMyIDIyNGExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTU5LjMgMTA3LjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMEw0MzIgMzQ1LjRsLTM2LjctMzYuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNkw0MDkuNCAzNjhsLTM2LjcgMzYuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwTDQzMiAzOTAuNmwzNi43IDM2LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42TDQ1NC42IDM2OGwzNi43LTM2Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjkgNTQuOUMxMC41IDQwLjkgMjQuNSAzMiA0MCAzMkg0NzJjMTUuNSAwIDI5LjUgOC45IDM2LjEgMjIuOXM0LjYgMzAuNS01LjIgNDIuNUwzMjAgMzIwLjlWNDQ4YzAgMTIuMS02LjggMjMuMi0xNy43IDI4LjZzLTIzLjggNC4zLTMzLjUtM2wtNjQtNDhjLTguMS02LTEyLjgtMTUuNS0xMi44LTI1LjZWMzIwLjlMOSA5Ny4zQy0uNyA4NS40LTIuOCA2OC44IDMuOSA1NC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaW5nZXJwcmludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCAyNTZDNDggMTQxLjEgMTQxLjEgNDggMjU2IDQ4YzYzLjEgMCAxMTkuNiAyOC4xIDE1Ny44IDcyLjVjOC42IDEwLjEgMjMuOCAxMS4yIDMzLjggMi42czExLjItMjMuOCAyLjYtMzMuOEM0MDMuMyAzNC42IDMzMy43IDAgMjU2IDBDMTE0LjYgMCAwIDExNC42IDAgMjU2djQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMjU2em00NTguNS01Mi45Yy0yLjctMTMtMTUuNS0yMS4zLTI4LjQtMTguNXMtMjEuMyAxNS41LTE4LjUgMjguNGMyLjkgMTMuOSA0LjUgMjguMyA0LjUgNDMuMXY0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjI1NmMwLTE4LjEtMS45LTM1LjgtNS41LTUyLjl6TTI1NiA4MGMtMTkgMC0zNy40IDMtNTQuNSA4LjZjLTE1LjIgNS0xOC43IDIzLjctOC4zIDM1LjljNy4xIDguMyAxOC44IDEwLjggMjkuNCA3LjljMTAuNi0yLjkgMjEuOC00LjQgMzMuNC00LjRjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjh2MjQuOWMwIDI1LjItMS41IDUwLjMtNC40IDc1LjNjLTEuNyAxNC42IDkuNCAyNy44IDI0LjIgMjcuOGMxMS44IDAgMjEuOS04LjYgMjMuMy0yMC4zYzMuMy0yNy40IDUtNTUgNS04Mi43VjI1NmMwLTk3LjItNzguOC0xNzYtMTc2LTE3NnpNMTUwLjcgMTQ4LjdjLTkuMS0xMC42LTI1LjMtMTEuNC0zMy45LS40QzkzLjcgMTc4IDgwIDIxNS40IDgwIDI1NnYyNC45YzAgMjQuMi0yLjYgNDguNC03LjggNzEuOUM2OC44IDM2OC40IDgwLjEgMzg0IDk2LjEgMzg0YzEwLjUgMCAxOS45LTcgMjIuMi0xNy4zYzYuNC0yOC4xIDkuNy01Ni44IDkuNy04NS44VjI1NmMwLTI3LjIgOC41LTUyLjQgMjIuOS03My4xYzcuMi0xMC40IDgtMjQuNi0uMi0zNC4yek0yNTYgMTYwYy01MyAwLTk2IDQzLTk2IDk2djI0LjljMCAzNS45LTQuNiA3MS41LTEzLjggMTA2LjFjLTMuOCAxNC4zIDYuNyAyOSAyMS41IDI5YzkuNSAwIDE3LjktNi4yIDIwLjQtMTUuNGMxMC41LTM5IDE1LjktNzkuMiAxNS45LTExOS43VjI1NmMwLTI4LjcgMjMuMy01MiA1Mi01MnM1MiAyMy4zIDUyIDUydjI0LjljMCAzNi4zLTMuNSA3Mi40LTEwLjQgMTA3LjljLTIuNyAxMy45IDcuNyAyNy4yIDIxLjggMjcuMmMxMC4yIDAgMTktNyAyMS0xN2M3LjctMzguOCAxMS42LTc4LjMgMTEuNi0xMTguMVYyNTZjMC01My00My05Ni05Ni05NnptMjQgOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR2MjQuOWMwIDU5LjktMTEgMTE5LjMtMzIuNSAxNzUuMmwtNS45IDE1LjNjLTQuOCAxMi40IDEuNCAyNi4zIDEzLjggMzFzMjYuMy0xLjQgMzEtMTMuOGw1LjktMTUuM0MyNjcuOSA0MTEuOSAyODAgMzQ2LjcgMjgwIDI4MC45VjI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlyZUJ1cm5lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDUuNyA0OC4zTDM1OCAzNC41YzUuNC02LjEgMTMuMy04LjggMjAuOS04LjljNy4yIDAgMTQuMyAyLjYgMTkuOSA3LjhjMTkuNyAxOC4zIDM5LjggNDMuMiA1NSA3MC42QzQ2OSAxMzEuMiA0ODAgMTYyLjIgNDgwIDE5Mi4yQzQ4MCAyODAuOCA0MDguNyAzNTIgMzIwIDM1MmMtODkuNiAwLTE2MC03MS4zLTE2MC0xNTkuOGMwLTM3LjMgMTYtNzMuNCAzNi44LTEwNC41YzIwLjktMzEuMyA0Ny41LTU5IDcwLjktODAuMkMyNzMuNCAyLjMgMjgwLjctLjIgMjg4IDBjMTQuMSAuMyAyMy44IDExLjQgMzIuNyAyMS42YzAgMCAwIDAgMCAwYzIgMi4zIDQgNC42IDYgNi43bDE5IDE5Ljl6TTM4NCAyNDAuMmMwLTM2LjUtMzctNzMtNTQuOC04OC40Yy01LjQtNC43LTEzLjEtNC43LTE4LjUgMEMyOTMgMTY3LjEgMjU2IDIwMy42IDI1NiAyNDAuMmMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0ek0zMiAyODhjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDY0IDQ0OCAwIDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDAtOTZ6TTMyMCA0ODBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xNjAtMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTkyIDQ4MGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcmVFeHRpbmd1aXNoZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAwLjMgNy4zQzUwNy43IDEzLjMgNTEyIDIyLjQgNTEyIDMydjk2YzAgOS42LTQuMyAxOC43LTExLjcgMjQuN3MtMTcuMiA4LjUtMjYuNiA2LjZsLTE2MC0zMkMzMDEuNSAxMjQuOSAyOTIgMTE1LjcgMjg5IDEwNEgyMjR2MzQuOGMzNy44IDE4IDY0IDU2LjUgNjQgMTAxLjJWMzg0SDY0VjI0MGMwLTQ0LjcgMjYuMi04My4yIDY0LTEwMS4yVjExMGMtMzYuMiAxMS4xLTY2IDM2LjktODIuMyA3MC41Yy01LjggMTEuOS0yMC4yIDE2LjktMzIuMSAxMS4xUy0zLjMgMTcxLjQgMi41IDE1OS41QzI2LjcgMTA5LjggNzIuNyA3Mi42IDEyOCA2MC40VjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyaDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjU2aDY1YzMtMTEuNyAxMi41LTIwLjkgMjQuNy0yMy40bDE2MC0zMmM5LjQtMS45IDE5LjEgLjYgMjYuNiA2LjZ6TTI4OCA0MTZ2MzJjMCAzNS4zLTI4LjcgNjQtNjQgNjRIMTI4Yy0zNS4zIDAtNjQtMjguNy02NC02NFY0MTZIMjg4ek0xNzYgOTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaXJlRmxhbWVDdXJ2ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUzLjYgMjkuOWwxNi0yMS4zQzE3My42IDMuMiAxODAgMCAxODYuNyAwQzE5OC40IDAgMjA4IDkuNiAyMDggMjEuM1Y0My41YzAgMTMuMSA1LjQgMjUuNyAxNC45IDM0LjdMMzA3LjYgMTU5QzM1Ni40IDIwNS42IDM4NCAyNzAuMiAzODQgMzM3LjdDMzg0IDQzNCAzMDYgNTEyIDIwOS43IDUxMkgxOTJDODYgNTEyIDAgNDI2IDAgMzIwdi0zLjhjMC00OC44IDE5LjQtOTUuNiA1My45LTEzMC4xbDMuNS0zLjVjNC4yLTQuMiAxMC02LjYgMTYtNi42Qzg1LjkgMTc2IDk2IDE4Ni4xIDk2IDE5OC42VjI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0di0zLjljMC0xOC03LjItMzUuMy0xOS45LTQ4bC0zOC42LTM4LjZjLTI0LTI0LTM3LjUtNTYuNy0zNy41LTkwLjdjMC0yNy43IDktNTQuOCAyNS42LTc2Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcmVGbGFtZVNpbXBsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzIuNSAyNTYuNWwtLjctMS45QzMzNy44IDE2MC44IDI4MiA3Ni41IDIwOS4xIDguNWwtMy4zLTNDMjAyLjEgMiAxOTcuMSAwIDE5MiAwcy0xMC4xIDItMTMuOCA1LjVsLTMuMyAzQzEwMiA3Ni41IDQ2LjIgMTYwLjggMTIuMiAyNTQuNmwtLjcgMS45QzMuOSAyNzcuMyAwIDI5OS40IDAgMzIxLjZDMCA0MjYuNyA4Ni44IDUxMiAxOTIgNTEyczE5Mi04NS4zIDE5Mi0xOTAuNGMwLTIyLjItMy45LTQ0LjItMTEuNS02NS4xem0tOTAuOCA0OS41YzQuMSA5LjMgNi4yIDE5LjQgNi4yIDI5LjVjMCA1My00MyA5Ni41LTk2IDk2LjVzLTk2LTQzLjUtOTYtOTYuNWMwLTEwLjEgMi4xLTIwLjMgNi4yLTI5LjVsMS45LTQuM2MxNS44LTM1LjQgMzcuOS02Ny43IDY1LjMtOTUuMWw4LjktOC45YzMuNi0zLjYgOC41LTUuNiAxMy42LTUuNnMxMCAyIDEzLjYgNS42bDguOSA4LjljMjcuNCAyNy40IDQ5LjYgNTkuNyA2NS4zIDk1LjFsMS45IDQuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTkuMyA1LjRjNy44LTcuMyAxOS45LTcuMiAyNy43IC4xYzI3LjYgMjUuOSA1My41IDUzLjggNzcuNyA4NGMxMS0xNC40IDIzLjUtMzAuMSAzNy00Mi45YzcuOS03LjQgMjAuMS03LjQgMjggLjFjMzQuNiAzMyA2My45IDc2LjYgODQuNSAxMThjMjAuMyA0MC44IDMzLjggODIuNSAzMy44IDExMS45QzQ0OCA0MDQuMiAzNDguMiA1MTIgMjI0IDUxMkM5OC40IDUxMiAwIDQwNC4xIDAgMjc2LjVjMC0zOC40IDE3LjgtODUuMyA0NS40LTEzMS43QzczLjMgOTcuNyAxMTIuNyA0OC42IDE1OS4zIDUuNHpNMjI1LjcgNDE2YzI1LjMgMCA0Ny43LTcgNjguOC0yMWM0Mi4xLTI5LjQgNTMuNC04OC4yIDI4LjEtMTM0LjRjLTQuNS05LTE2LTkuNi0yMi41LTJsLTI1LjIgMjkuM2MtNi42IDcuNi0xOC41IDcuNC0yNC43LS41Yy0xNi41LTIxLTQ2LTU4LjUtNjIuOC03OS44Yy02LjMtOC0xOC4zLTguMS0yNC43LS4xYy0zMy44IDQyLjUtNTAuOCA2OS4zLTUwLjggOTkuNEMxMTIgMzc1LjQgMTYyLjYgNDE2IDIyNS43IDQxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlzaEZpbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc1LjIgMzguNGMtMTAuNi04LTI1LTguNS0zNi4zLTEuNVMyMjIgNTcuMyAyMjQuNiA3MC4zbDkuNyA0OC42Yy0xOS40IDktMzYuOSAxOS45LTUyLjQgMzEuNWMtMTUuMyAxMS41LTI5IDIzLjktNDAuNyAzNi4zTDQ4LjEgMTMyLjRjLTEyLjUtNy4zLTI4LjQtNS4zLTM4LjYgNC45Uy0zIDE2My4zIDQuMiAxNzUuOUw1MCAyNTYgNC4yIDMzNi4xYy03LjIgMTIuNi01IDI4LjQgNS4zIDM4LjZzMjYuMSAxMi4yIDM4LjYgNC45bDkzLjEtNTQuM2MxMS44IDEyLjMgMjUuNCAyNC44IDQwLjcgMzYuM2MxNS41IDExLjYgMzMgMjIuNSA1Mi40IDMxLjVsLTkuNyA0OC42Yy0yLjYgMTMgMy4xIDI2LjMgMTQuMyAzMy4zczI1LjYgNi41IDM2LjMtMS41bDc3LjYtNTguMmM1NC45LTQgMTAxLjUtMjcgMTM3LjItNTMuOGMzOS4yLTI5LjQgNjcuMi02NC43IDgxLjYtODkuNWM1LjgtOS45IDUuOC0yMi4yIDAtMzIuMWMtMTQuNC0yNC44LTQyLjUtNjAuMS04MS42LTg5LjVjLTM1LjgtMjYuOC04Mi4zLTQ5LjgtMTM3LjItNTMuOEwyNzUuMiAzOC40ek0zODQgMjU2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTgwLjUgMTQxLjVDMjE5LjcgMTA4LjUgMjcyLjYgODAgMzM2IDgwczExNi4zIDI4LjUgMTU1LjUgNjEuNWMzOS4xIDMzIDY2LjkgNzIuNCA4MSA5OS44YzQuNyA5LjIgNC43IDIwLjEgMCAyOS4zYy0xNC4xIDI3LjQtNDEuOSA2Ni44LTgxIDk5LjhDNDUyLjMgNDAzLjUgMzk5LjQgNDMyIDMzNiA0MzJzLTExNi4zLTI4LjUtMTU1LjUtNjEuNWMtMTYuMi0xMy43LTMwLjUtMjguNS00Mi43LTQzLjFMNDguMSAzNzkuNmMtMTIuNSA3LjMtMjguNCA1LjMtMzguNy00LjlTLTMgMzQ4LjcgNC4yIDMzNi4xTDUwIDI1NiA0LjIgMTc1LjljLTcuMi0xMi42LTUtMjguNCA1LjMtMzguNnMyNi4xLTEyLjIgMzguNy00LjlsODkuNyA1Mi4zYzEyLjItMTQuNiAyNi41LTI5LjQgNDIuNy00My4xek00NDggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZsYWdDaGVja2VyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMEM0OS43IDAgNjQgMTQuMyA2NCAzMlY0OGw2OS0xNy4yYzM4LjEtOS41IDc4LjMtNS4xIDExMy41IDEyLjVjNDYuMyAyMy4yIDEwMC44IDIzLjIgMTQ3LjEgMGw5LjYtNC44QzQyMy44IDI4LjEgNDQ4IDQzLjEgNDQ4IDY2LjFWMzQ1LjhjMCAxMy4zLTguMyAyNS4zLTIwLjggMzBsLTM0LjcgMTNjLTQ2LjIgMTcuMy05Ny42IDE0LjYtMTQxLjctNy40Yy0zNy45LTE5LTgxLjMtMjMuNy0xMjIuNS0xMy40TDY0IDM4NHY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY0MDAgMzM0IDY0IDMyQzAgMTQuMyAxNC4zIDAgMzIgMHpNNjQgMTg3LjFsNjQtMTMuOXY2NS41TDY0IDI1Mi42VjMxOGw0OC44LTEyLjJjNS4xLTEuMyAxMC4xLTIuNCAxNS4yLTMuM1YyMzguN2wzOC45LTguNGM4LjMtMS44IDE2LjctMi41IDI1LjEtMi4xbDAtNjRjMTMuNiAuNCAyNy4yIDIuNiA0MC40IDYuNGwyMy42IDYuOXY2Ni43bC00MS43LTEyLjNjLTcuMy0yLjEtMTQuOC0zLjQtMjIuMy0zLjh2NzEuNGMyMS44IDEuOSA0My4zIDYuNyA2NCAxNC40VjI0NC4ybDIyLjcgNi43YzEzLjUgNCAyNy4zIDYuNCA0MS4zIDcuNFYxOTRjLTcuOC0uOC0xNS42LTIuMy0yMy4yLTQuNWwtNDAuOC0xMnYtNjJjLTEzLTMuOC0yNS44LTguOC0zOC4yLTE1Yy04LjItNC4xLTE2LjktNy0yNS44LTguOHY3Mi40Yy0xMy0uNC0yNiAuOC0zOC43IDMuNkwxMjggMTczLjJWOThMNjQgMTE0djczLjF6TTMyMCAzMzUuN2MxNi44IDEuNSAzMy45LS43IDUwLTYuOGwxNC01LjJWMjUxLjlsLTcuOSAxLjhjLTE4LjQgNC4zLTM3LjMgNS43LTU2LjEgNC41djc3LjR6bTY0LTE0OS40VjExNS40Yy0yMC45IDYuMS00Mi40IDkuMS02NCA5LjFWMTk0YzEzLjkgMS40IDI4IC41IDQxLjctMi42bDIyLjMtNS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGbGFnVXNhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDBDNDkuNyAwIDY0IDE0LjMgNjQgMzJWNDhsNjktMTcuMmMzOC4xLTkuNSA3OC4zLTUuMSAxMTMuNSAxMi41YzQ2LjMgMjMuMiAxMDAuOCAyMy4yIDE0Ny4xIDBsOS42LTQuOEM0MjMuOCAyOC4xIDQ0OCA0My4xIDQ0OCA2Ni4xdjM2LjFsLTQ0LjcgMTYuMmMtNDIuOCAxNS42LTkwIDEzLjktMTMxLjYtNC42bC0xNi4xLTcuMmMtMjAuMy05LTQxLjgtMTQuNy02My42LTE2Ljl2MzIuMmMxNy40IDIuMSAzNC40IDYuNyA1MC42IDEzLjlsMTYuMSA3LjJjNDkuMiAyMS45IDEwNSAyMy44IDE1NS42IDUuNEw0NDggMTM2LjN2NjJsLTQ0LjcgMTYuMmMtNDIuOCAxNS42LTkwIDEzLjktMTMxLjYtNC42bC0xNi4xLTcuMmMtNDAuMi0xNy45LTg1LTIyLjUtMTI4LjEtMTMuM0w2NCAyMDMuMXYzMi43bDcwLjItMTUuMWMzNi40LTcuOCA3NC4zLTMuOSAxMDguNCAxMS4zbDE2LjEgNy4yYzQ5LjIgMjEuOSAxMDUgMjMuOCAxNTUuNiA1LjRMNDQ4IDIzMi4zdjYybC00NC43IDE2LjJjLTQyLjggMTUuNi05MCAxMy45LTEzMS42LTQuNmwtMTYuMS03LjJjLTQwLjItMTcuOS04NS0yMi41LTEyOC4xLTEzLjNMNjQgMjk5LjF2MzIuN2w3MC4yLTE1LjFjMzYuNC03LjggNzQuMy0zLjkgMTA4LjQgMTEuM2wxNi4xIDcuMmM0OS4yIDIxLjkgMTA1IDIzLjggMTU1LjYgNS40TDQ0OCAzMjguM3YzMy41YzAgMTMuMy04LjMgMjUuMy0yMC44IDMwbC0zNC43IDEzYy00Ni4yIDE3LjMtOTcuNiAxNC42LTE0MS43LTcuNGMtMzcuOS0xOS04MS4zLTIzLjctMTIyLjUtMTMuNEw2NCA0MDB2ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNDE2IDM0NS41IDMxMi44IDI0OS41IDIxNi44IDE1My41IDEyMC44IDY0IDMyQzAgMTQuMyAxNC4zIDAgMzIgMHptODAgOTZBMTYgMTYgMCAxIDAgODAgOTZhMTYgMTYgMCAxIDAgMzIgMHptMzIgMGExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bS0zMiA0OGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem0zMiAwYTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmxhZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkM2NCAxNC4zIDQ5LjcgMCAzMiAwUzAgMTQuMyAwIDMyVjY0IDM2OCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzNTJsNjQuMy0xNi4xYzQxLjEtMTAuMyA4NC42LTUuNSAxMjIuNSAxMy40YzQ0LjIgMjIuMSA5NS41IDI0LjggMTQxLjcgNy40bDM0LjctMTNjMTIuNS00LjcgMjAuOC0xNi42IDIwLjgtMzBWNjYuMWMwLTIzLTI0LjItMzgtNDQuOC0yNy43bC05LjYgNC44Yy00Ni4zIDIzLjItMTAwLjggMjMuMi0xNDcuMSAwYy0zNS4xLTE3LjYtNzUuNC0yMi0xMTMuNS0xMi41TDY0IDQ4VjMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGbGFza1ZpYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc1IDM4OS40Yy05LjggMTYtMTUgMzQuMy0xNSA1My4xYy0xMCAzLjUtMjAuOCA1LjUtMzIgNS41Yy01MyAwLTk2LTQzLTk2LTk2VjY0QzE0LjMgNjQgMCA0OS43IDAgMzJTMTQuMyAwIDMyIDBIOTZoNjQgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJWMzA5LjlsLTQ5IDc5LjZ6TTk2IDY0djk2aDY0VjY0SDk2ek0zNTIgMEg0ODBoMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJWMjE0LjlMNjI5LjcgNDA2LjJjNi43IDEwLjkgMTAuMyAyMy41IDEwLjMgMzYuNGMwIDM4LjMtMzEuMSA2OS40LTY5LjQgNjkuNEgyNjEuNGMtMzguMyAwLTY5LjQtMzEuMS02OS40LTY5LjRjMC0xMi44IDMuNi0yNS40IDEwLjMtMzYuNEwzMjAgMjE0LjlWNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJoMzJ6bTMyIDY0VjIyNGMwIDUuOS0xLjYgMTEuNy00LjcgMTYuOEwzMzAuNSAzMjBoMTcxbC00OC44LTc5LjJjLTMuMS01LTQuNy0xMC44LTQuNy0xNi44VjY0SDM4NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmxhc2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDBIMTYwIDEyOEMxMTAuMyAwIDk2IDE0LjMgOTYgMzJzMTQuMyAzMiAzMiAzMlYxOTYuOGMwIDExLjgtMy4zIDIzLjUtOS41IDMzLjVMMTAuMyA0MDYuMkMzLjYgNDE3LjIgMCA0MjkuNyAwIDQ0Mi42QzAgNDgwLjkgMzEuMSA1MTIgNjkuNCA1MTJIMzc4LjZjMzguMyAwIDY5LjQtMzEuMSA2OS40LTY5LjRjMC0xMi44LTMuNi0yNS40LTEwLjMtMzYuNEwzMjkuNSAyMzAuNGMtNi4yLTEwLjEtOS41LTIxLjctOS41LTMzLjVWNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMjg4ek0xOTIgMTk2LjhWNjRoNjRWMTk2LjhjMCAyMy43IDYuNiA0Ni45IDE5IDY3LjFMMzA5LjUgMzIwaC0xNzFMMTczIDI2My45YzEyLjQtMjAuMiAxOS00My40IDE5LTY3LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZsb3BweURpc2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjE3My4zYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDM1MiA1MC43QzM0MCAzOC43IDMyMy43IDMyIDMwNi43IDMySDY0em0wIDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMySDI4OGMxNy43IDAgMzIgMTQuMyAzMiAzMnY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMTI4ek0yMjQgMjg4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGbG9yaW5TaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxNC43IDMyYy0zOC44IDAtNzMuNyAyMy4zLTg4LjYgNTkuMUwxNzAuNyAyMjRINjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoODBMOTguOSAzOTYuM2MtNSAxMS45LTE2LjYgMTkuNy0yOS41IDE5LjdIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINjkuM2MzOC44IDAgNzMuNy0yMy4zIDg4LjYtNTkuMUwyMTMuMyAyODhIMzIwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDI0MGw0NS4xLTEwOC4zYzUtMTEuOSAxNi42LTE5LjcgMjkuNS0xOS43SDM1MmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMTQuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9sZGVyQ2xvc2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA0ODBINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjE5Mkg1MTJWNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0em02NC0zMjBIMFY5NkMwIDYwLjcgMjguNyAzMiA2NCAzMkgxOTJjMjAuMSAwIDM5LjEgOS41IDUxLjIgMjUuNmwxOS4yIDI1LjZjNiA4LjEgMTUuNSAxMi44IDI1LjYgMTIuOEg0NDhjMzUuMyAwIDY0IDI4LjcgNjQgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvbGRlck1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA0ODBINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDE5MmMyMC4xIDAgMzkuMSA5LjUgNTEuMiAyNS42bDE5LjIgMjUuNmM2IDguMSAxNS41IDEyLjggMjUuNiAxMi44SDQ0OGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjR6TTE4NCAyNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRIMzI4YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDE4NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9sZGVyT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04OC43IDIyMy44TDAgMzc1LjhWOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJIMTgxLjVjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdsMjYuNSAyNi41YzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdINDE2YzM1LjMgMCA2NCAyOC43IDY0IDY0djMySDE0NGMtMjIuOCAwLTQzLjggMTIuMS01NS4zIDMxLjh6bTI3LjYgMTYuMUMxMjIuMSAyMzAgMTMyLjYgMjI0IDE0NCAyMjRINTQ0YzExLjUgMCAyMiA2LjEgMjcuNyAxNi4xczUuNyAyMi4yLS4xIDMyLjFsLTExMiAxOTJDNDUzLjkgNDc0IDQ0My40IDQ4MCA0MzIgNDgwSDMyYy0xMS41IDAtMjItNi4xLTI3LjctMTYuMXMtNS43LTIyLjIgLjEtMzIuMWwxMTItMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb2xkZXJQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiA0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDE5MmMyMC4xIDAgMzkuMSA5LjUgNTEuMiAyNS42bDE5LjIgMjUuNmM2IDguMSAxNS41IDEyLjggMjUuNiAxMi44SDQ0OGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZ6TTIzMiAzNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYzMTJoNjRjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMjgwVjIwMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHY2NEgxNjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoNjR2NjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvbGRlclRyZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDNjQgMTQuMyA0OS43IDAgMzIgMFMwIDE0LjMgMCAzMnY5NlYzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMjU2VjM4NEg2NFYxNjBIMjU2Vjk2SDY0VjMyek0yODggMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMySDU0NGMxNy43IDAgMzItMTQuMyAzMi0zMlY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkg0NDUuM2MtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRMNDA5LjQgOS40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMlYxOTJ6bTAgMjg4YzAgMTcuNyAxNC4zIDMyIDMyIDMySDU0NGMxNy43IDAgMzItMTQuMyAzMi0zMlYzNTJjMC0xNy43LTE0LjMtMzItMzItMzJINDQ1LjNjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0xMy4zLTEzLjNjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjQ4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9sZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDQ4MEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTYwYzAtMzUuMy0yOC43LTY0LTY0LTY0SDI4OGMtMTAuMSAwLTE5LjYtNC43LTI1LjYtMTIuOEwyNDMuMiA1Ny42QzIzMS4xIDQxLjUgMjEyLjEgMzIgMTkyIDMySDY0QzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb250IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NCA1Mi44QzI0OS4zIDQwLjMgMjM3LjMgMzIgMjI0IDMycy0yNS4zIDguMy0zMCAyMC44TDU3LjggNDE2SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyaC0xLjhsMTgtNDhIMzAzLjhsMTggNDhIMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDM5MC4yTDI1NCA1Mi44ek0yNzkuOCAzMDRIMTY4LjJMMjI0IDE1NS4xIDI3OS44IDMwNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9vdGJhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjUgMjUuNGMtMTMuNSAzLjMtMjYuNCA3LjItMzguNiAxMS43QzE0Mi45IDYxLjYgOTYuNyAxMDMuNiA2NiAxNTMuNmMtMTguMyAyOS44LTMwLjkgNjIuMy0zOS4yIDk1LjRMMjY0LjUgNDg2LjZjMTMuNS0zLjMgMjYuNC03LjIgMzguNi0xMS43YzY2LTI0LjUgMTEyLjItNjYuNSAxNDIuOS0xMTYuNWMxOC4zLTI5LjggMzAuOS02Mi4zIDM5LjEtOTUuM0wyNDcuNSAyNS40ek00OTUuMiAyMDUuM2M2LjEtNTYuOCAxLjQtMTEyLjItNy43LTE1Ni40Yy0yLjctMTIuOS0xMy0yMi45LTI2LjEtMjUuMWMtNTguMi05LjctMTA5LjktMTItMTU1LjYtNy45TDQ5NS4yIDIwNS4zek0yMDYuMSA0OTZMMTYuOCAzMDYuN2MtNi4xIDU2LjgtMS40IDExMi4yIDcuNyAxNTYuNGMyLjcgMTIuOSAxMyAyMi45IDI2LjEgMjUuMWM1OC4yIDkuNyAxMDkuOSAxMiAxNTUuNiA3Ljl6bTU0LjYtMzMxLjNjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBsNjQgNjRjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtNjQtNjRjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42em0tNDggNDhjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBsNjQgNjRjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtNjQtNjRjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42em0tNDggNDhjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBsNjQgNjRjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtNjQtNjRjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb3J3YXJkRmFzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC40IDQ0NWMxMS4yIDUuMyAyNC41IDMuNiAzNC4xLTQuNEwyMjQgMjk3LjdWNDE2YzAgMTIuNCA3LjIgMjMuNyAxOC40IDI5czI0LjUgMy42IDM0LjEtNC40TDQ0OCAyOTcuN1Y0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlYyMTQuM0wyNzYuNSA3MS40Yy05LjUtNy45LTIyLjgtOS43LTM0LjEtNC40UzIyNCA4My42IDIyNCA5NlYyMTQuM0w1Mi41IDcxLjRjLTkuNS03LjktMjIuOC05LjctMzQuMS00LjRTMCA4My42IDAgOTZWNDE2YzAgMTIuNCA3LjIgMjMuNyAxOC40IDI5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb3J3YXJkU3RlcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01Mi41IDQ0MC42Yy05LjUgNy45LTIyLjggOS43LTM0LjEgNC40UzAgNDI4LjQgMCA0MTZWOTZDMCA4My42IDcuMiA3Mi4zIDE4LjQgNjdzMjQuNS0zLjYgMzQuMSA0LjRsMTkyIDE2MEwyNTYgMjQxVjk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjI3MWwtMTEuNSA5LjYtMTkyIDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9yd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01Mi41IDQ0MC42Yy05LjUgNy45LTIyLjggOS43LTM0LjEgNC40UzAgNDI4LjQgMCA0MTZWOTZDMCA4My42IDcuMiA3Mi4zIDE4LjQgNjdzMjQuNS0zLjYgMzQuMSA0LjRMMjI0IDIxNC4zVjI1NnY0MS43TDUyLjUgNDQwLjZ6TTI1NiAzNTJWMjU2IDEyOCA5NmMwLTEyLjQgNy4yLTIzLjcgMTguNC0yOXMyNC41LTMuNiAzNC4xIDQuNGwxOTIgMTYwYzcuMyA2LjEgMTEuNSAxNS4xIDExLjUgMjQuNnMtNC4yIDE4LjUtMTEuNSAyNC42bC0xOTIgMTYwYy05LjUgNy45LTIyLjggOS43LTM0LjEgNC40cy0xOC40LTE2LjYtMTguNC0yOVYzNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZyYW5jU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04MCAzMkM2Mi4zIDMyIDQ4IDQ2LjMgNDggNjRWMjI0djk2SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQ4djY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzg0aDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDExMlYyNTZIMjU2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDExMlY5NkgyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZyb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY4IDMyYzQxLjcgMCA3NS45IDMxLjggNzkuNyA3Mi41bDg1LjYgMjYuM2MyNS40IDcuOCA0Mi44IDMxLjMgNDIuOCA1Ny45YzAgMjEuOC0xMS43IDQxLjktMzAuNyA1Mi43TDQwMC44IDMyMy41IDQ5My4zIDQxNkg1NDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINDgwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNEwzNDYuOSAzNjAuMmMxMS43LTM2IDMuMi03Ny4xLTI1LjQtMTA1LjdjLTQwLjYtNDAuNi0xMDYuMy00MC42LTE0Ni45LS4xTDEwMSAzMjQuNGMtNi40IDYuMS02LjcgMTYuMi0uNiAyMi42czE2LjIgNi42IDIyLjYgLjZsNzMuOC03MC4yIC4xLS4xIC4xLS4xYzMuNS0zLjUgNy4zLTYuNiAxMS4zLTkuMmMyNy45LTE4LjUgNjUuOS0xNS40IDkwLjUgOS4yYzI0LjcgMjQuNyAyNy43IDYyLjkgOSA5MC45Yy0yLjYgMy44LTUuNiA3LjUtOSAxMC45TDI2MS44IDQxNkgzNTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0QzAgMjQ5LjYgMTI3IDExMi45IDI4OS4zIDk3LjVDMjk2LjIgNjAuMiAzMjguOCAzMiAzNjggMzJ6bTAgMTA0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRnV0Ym9sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNy4zIDM2MC4xbC03MS42LTQuOGMtNS4yLS4zLTEwLjMgMS4xLTE0LjUgNC4ycy03LjIgNy40LTguNCAxMi41bC0xNy42IDY5LjZDMjg5LjUgNDQ1LjggMjczIDQ0OCAyNTYgNDQ4cy0zMy41LTIuMi00OS4yLTYuNEwxODkuMiAzNzJjLTEuMy01LTQuMy05LjQtOC40LTEyLjVzLTkuMy00LjUtMTQuNS00LjJsLTcxLjYgNC44Yy0xNy42LTI3LjItMjguNS01OS4yLTMwLjQtOTMuNkwxMjUgMjI4LjNjNC40LTIuOCA3LjYtNyA5LjItMTEuOXMxLjQtMTAuMi0uNS0xNWwtMjYuNy02Ni42QzEyOCAxMDkuMiAxNTUuMyA4OSAxODYuNyA3Ni45bDU1LjIgNDZjNCAzLjMgOSA1LjEgMTQuMSA1LjFzMTAuMi0xLjggMTQuMS01LjFsNTUuMi00NmMzMS4zIDEyLjEgNTguNyAzMi4zIDc5LjYgNTcuOWwtMjYuNyA2Ni42Yy0xLjkgNC44LTIuMSAxMC4xLS41IDE1czQuOSA5LjEgOS4yIDExLjlsNjAuNyAzOC4yYy0xLjkgMzQuNC0xMi44IDY2LjQtMzAuNCA5My42ek0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptMTQuMS0zMjUuN2MtOC40LTYuMS0xOS44LTYuMS0yOC4yIDBMMTk0IDIyMWMtOC40IDYuMS0xMS45IDE2LjktOC43IDI2LjhsMTguMyA1Ni4zYzMuMiA5LjkgMTIuNCAxNi42IDIyLjggMTYuNmg1OS4yYzEwLjQgMCAxOS42LTYuNyAyMi44LTE2LjZsMTguMy01Ni4zYzMuMi05LjktLjMtMjAuNy04LjctMjYuOGwtNDcuOS0zNC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCA5NkMxMzUuNiA5NiA2NCAxNjcuNiA2NCAyNTZzNzEuNiAxNjAgMTYwIDE2MGM3Ny40IDAgMTQyLTU1IDE1Ni44LTEyOEgyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJINDAwYzI1LjggMCA0OS42IDIxLjQgNDcuMiA1MC42QzQzNy44IDM4OS42IDM0MS40IDQ4MCAyMjQgNDgwQzEwMC4zIDQ4MCAwIDM3OS43IDAgMjU2UzEwMC4zIDMyIDIyNCAzMmM1Ny40IDAgMTA5LjcgMjEuNiAxNDkuMyA1N2MxMy4yIDExLjggMTQuMyAzMiAyLjUgNDUuMnMtMzIgMTQuMy00NS4yIDIuNUMzMDIuMyAxMTEuNCAyNjUgOTYgMjI0IDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHYW1lcGFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiA2NEM4NiA2NCAwIDE1MCAwIDI1NlM4NiA0NDggMTkyIDQ0OEg0NDhjMTA2IDAgMTkyLTg2IDE5Mi0xOTJzLTg2LTE5Mi0xOTItMTkySDE5MnpNNDk2IDE2OGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6TTM5MiAzMDRhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMTY4IDIwMGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0djMyaDMyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDIxNnYzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYyODBIMTM2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0aDMyVjIwMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2FzUHVtcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwSDI1NmMzNS4zIDAgNjQgMjguNyA2NCA2NFYyNTZoOGM0OC42IDAgODggMzkuNCA4OCA4OHYzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjIyMmMtMjcuNi03LjEtNDgtMzIuMi00OC02MlY5NkwzODQgNjRjLTguOC04LjgtOC44LTIzLjIgMC0zMnMyMy4yLTguOCAzMiAwbDc3LjMgNzcuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zVjE2OHYyNCAzMlYzNzZjMCAzOS44LTMyLjIgNzItNzIgNzJzLTcyLTMyLjItNzItNzJWMzQ0YzAtMjIuMS0xNy45LTQwLTQwLTQwaC04VjQ0OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMlY2NHpNOTYgODB2OTZjMCA4LjggNy4yIDE2IDE2IDE2SDI0MGM4LjggMCAxNi03LjIgMTYtMTZWODBjMC04LjgtNy4yLTE2LTE2LTE2SDExMmMtOC44IDAtMTYgNy4yLTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHYXVnZUhpZ2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2ek0yODggOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMjU2IDQxNmMzNS4zIDAgNjQtMjguNyA2NC02NGMwLTE3LjQtNi45LTMzLjEtMTguMS00NC42TDM2NiAxNjEuN2M1LjMtMTIuMS0uMi0yNi4zLTEyLjMtMzEuNnMtMjYuMyAuMi0zMS42IDEyLjNMMjU3LjkgMjg4Yy0uNiAwLTEuMyAwLTEuOSAwYy0zNS4zIDAtNjQgMjguNy02NCA2NHMyOC43IDY0IDY0IDY0ek0xNzYgMTQ0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTk2IDI4OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTM1Mi0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHYXVnZVNpbXBsZUhpZ2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0zMjAgOTZjMC0xNS45LTUuOC0zMC40LTE1LjMtNDEuNmw3Ni42LTE0Ny40YzYuMS0xMS44IDEuNS0yNi4zLTEwLjItMzIuNHMtMjYuMi0xLjUtMzIuNCAxMC4yTDI2Mi4xIDI4OC4zYy0yLS4yLTQtLjMtNi4xLS4zYy0zNS4zIDAtNjQgMjguNy02NCA2NHMyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdhdWdlU2ltcGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMzIwIDk2YzAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM1Y4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNFYyOTIuN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zYzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdhdWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMzIwIDk2YzAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM1Y4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNFYyOTIuN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zYzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6TTE0NCAxNzZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0tMTYgODBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMjg4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNNDAwIDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHYXZlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTguNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjAgMTIwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxNiAxNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw0LTRMMzI1LjQgMjkzLjRsLTQgNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYgMTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTIwLTEyMGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYtMTZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC00IDRMMzMwLjYgNzQuNmw0LTRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTE2LTE2em0tMTUyIDI4OGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTExMiAxMTJjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDQ4IDQ4YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDExMi0xMTJjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTEuNC0xLjRMMjcyIDI4NS4zIDIyNi43IDI0MCAxNjggMjk4LjdsLTEuNC0xLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdlYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk1LjkgMTY2LjZjMy4yIDguNyAuNSAxOC40LTYuNCAyNC42bC00My4zIDM5LjRjMS4xIDguMyAxLjcgMTYuOCAxLjcgMjUuNHMtLjYgMTcuMS0xLjcgMjUuNGw0My4zIDM5LjRjNi45IDYuMiA5LjYgMTUuOSA2LjQgMjQuNmMtNC40IDExLjktOS43IDIzLjMtMTUuOCAzNC4zbC00LjcgOC4xYy02LjYgMTEtMTQgMjEuNC0yMi4xIDMxLjJjLTUuOSA3LjItMTUuNyA5LjYtMjQuNSA2LjhsLTU1LjctMTcuN2MtMTMuNCAxMC4zLTI4LjIgMTguOS00NCAyNS40bC0xMi41IDU3LjFjLTIgOS4xLTkgMTYuMy0xOC4yIDE3LjhjLTEzLjggMi4zLTI4IDMuNS00Mi41IDMuNXMtMjguNy0xLjItNDIuNS0zLjVjLTkuMi0xLjUtMTYuMi04LjctMTguMi0xNy44bC0xMi41LTU3LjFjLTE1LjgtNi41LTMwLjYtMTUuMS00NC0yNS40TDgzLjEgNDI1LjljLTguOCAyLjgtMTguNiAuMy0yNC41LTYuOGMtOC4xLTkuOC0xNS41LTIwLjItMjIuMS0zMS4ybC00LjctOC4xYy02LjEtMTEtMTEuNC0yMi40LTE1LjgtMzQuM2MtMy4yLTguNy0uNS0xOC40IDYuNC0yNC42bDQzLjMtMzkuNEM2NC42IDI3My4xIDY0IDI2NC42IDY0IDI1NnMuNi0xNy4xIDEuNy0yNS40TDIyLjQgMTkxLjJjLTYuOS02LjItOS42LTE1LjktNi40LTI0LjZjNC40LTExLjkgOS43LTIzLjMgMTUuOC0zNC4zbDQuNy04LjFjNi42LTExIDE0LTIxLjQgMjIuMS0zMS4yYzUuOS03LjIgMTUuNy05LjYgMjQuNS02LjhsNTUuNyAxNy43YzEzLjQtMTAuMyAyOC4yLTE4LjkgNDQtMjUuNGwxMi41LTU3LjFjMi05LjEgOS0xNi4zIDE4LjItMTcuOEMyMjcuMyAxLjIgMjQxLjUgMCAyNTYgMHMyOC43IDEuMiA0Mi41IDMuNWM5LjIgMS41IDE2LjIgOC43IDE4LjIgMTcuOGwxMi41IDU3LjFjMTUuOCA2LjUgMzAuNiAxNS4xIDQ0IDI1LjRsNTUuNy0xNy43YzguOC0yLjggMTguNi0uMyAyNC41IDYuOGM4LjEgOS44IDE1LjUgMjAuMiAyMi4xIDMxLjJsNC43IDguMWM2LjEgMTEgMTEuNCAyMi40IDE1LjggMzQuM3pNMjU2IDMzNmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2VhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA4LjUgMTM1LjNjNy4xLTYuMyA5LjktMTYuMiA2LjItMjVjLTIuMy01LjMtNC44LTEwLjUtNy42LTE1LjVMMzA0IDg5LjRjLTMtNS02LjMtOS45LTkuOC0xNC42Yy01LjctNy42LTE1LjctMTAuMS0yNC43LTcuMWwtMjguMiA5LjNjLTEwLjctOC44LTIzLTE2LTM2LjItMjAuOUwxOTkgMjcuMWMtMS45LTkuMy05LjEtMTYuNy0xOC41LTE3LjhDMTczLjkgOC40IDE2Ny4yIDggMTYwLjQgOGgtLjdjLTYuOCAwLTEzLjUgLjQtMjAuMSAxLjJjLTkuNCAxLjEtMTYuNiA4LjYtMTguNSAxNy44TDExNSA1Ni4xYy0xMy4zIDUtMjUuNSAxMi4xLTM2LjIgMjAuOUw1MC41IDY3LjhjLTktMy0xOS0uNS0yNC43IDcuMWMtMy41IDQuNy02LjggOS42LTkuOSAxNC42bC0zIDUuM2MtMi44IDUtNS4zIDEwLjItNy42IDE1LjZjLTMuNyA4LjctLjkgMTguNiA2LjIgMjVsMjIuMiAxOS44QzMyLjYgMTYxLjkgMzIgMTY4LjkgMzIgMTc2cy42IDE0LjEgMS43IDIwLjlMMTEuNSAyMTYuN2MtNy4xIDYuMy05LjkgMTYuMi02LjIgMjVjMi4zIDUuMyA0LjggMTAuNSA3LjYgMTUuNmwzIDUuMmMzIDUuMSA2LjMgOS45IDkuOSAxNC42YzUuNyA3LjYgMTUuNyAxMC4xIDI0LjcgNy4xbDI4LjItOS4zYzEwLjcgOC44IDIzIDE2IDM2LjIgMjAuOWw2LjEgMjkuMWMxLjkgOS4zIDkuMSAxNi43IDE4LjUgMTcuOGM2LjcgLjggMTMuNSAxLjIgMjAuNCAxLjJzMTMuNy0uNCAyMC40LTEuMmM5LjQtMS4xIDE2LjYtOC42IDE4LjUtMTcuOGw2LjEtMjkuMWMxMy4zLTUgMjUuNS0xMi4xIDM2LjItMjAuOWwyOC4yIDkuM2M5IDMgMTkgLjUgMjQuNy03LjFjMy41LTQuNyA2LjgtOS41IDkuOC0xNC42bDMuMS01LjRjMi44LTUgNS4zLTEwLjIgNy42LTE1LjVjMy43LTguNyAuOS0xOC42LTYuMi0yNWwtMjIuMi0xOS44YzEuMS02LjggMS43LTEzLjggMS43LTIwLjlzLS42LTE0LjEtMS43LTIwLjlsMjIuMi0xOS44ek0xMTIgMTc2YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTUwNC43IDUwMC41YzYuMyA3LjEgMTYuMiA5LjkgMjUgNi4yYzUuMy0yLjMgMTAuNS00LjggMTUuNS03LjZsNS40LTMuMWM1LTMgOS45LTYuMyAxNC42LTkuOGM3LjYtNS43IDEwLjEtMTUuNyA3LjEtMjQuN2wtOS4zLTI4LjJjOC44LTEwLjcgMTYtMjMgMjAuOS0zNi4ybDI5LjEtNi4xYzkuMy0xLjkgMTYuNy05LjEgMTcuOC0xOC41Yy44LTYuNyAxLjItMTMuNSAxLjItMjAuNHMtLjQtMTMuNy0xLjItMjAuNGMtMS4xLTkuNC04LjYtMTYuNi0xNy44LTE4LjVMNTgzLjkgMzA3Yy01LTEzLjMtMTIuMS0yNS41LTIwLjktMzYuMmw5LjMtMjguMmMzLTkgLjUtMTktNy4xLTI0LjdjLTQuNy0zLjUtOS42LTYuOC0xNC42LTkuOWwtNS4zLTNjLTUtMi44LTEwLjItNS4zLTE1LjYtNy42Yy04LjctMy43LTE4LjYtLjktMjUgNi4ybC0xOS44IDIyLjJjLTYuOC0xLjEtMTMuOC0xLjctMjAuOS0xLjdzLTE0LjEgLjYtMjAuOSAxLjdsLTE5LjgtMjIuMmMtNi4zLTcuMS0xNi4yLTkuOS0yNS02LjJjLTUuMyAyLjMtMTAuNSA0LjgtMTUuNiA3LjZsLTUuMiAzYy01LjEgMy05LjkgNi4zLTE0LjYgOS45Yy03LjYgNS43LTEwLjEgMTUuNy03LjEgMjQuN2w5LjMgMjguMmMtOC44IDEwLjctMTYgMjMtMjAuOSAzNi4yTDMxNS4xIDMxM2MtOS4zIDEuOS0xNi43IDkuMS0xNy44IDE4LjVjLS44IDYuNy0xLjIgMTMuNS0xLjIgMjAuNHMuNCAxMy43IDEuMiAyMC40YzEuMSA5LjQgOC42IDE2LjYgMTcuOCAxOC41bDI5LjEgNi4xYzUgMTMuMyAxMi4xIDI1LjUgMjAuOSAzNi4ybC05LjMgMjguMmMtMyA5LS41IDE5IDcuMSAyNC43YzQuNyAzLjUgOS41IDYuOCAxNC42IDkuOGw1LjQgMy4xYzUgMi44IDEwLjIgNS4zIDE1LjUgNy42YzguNyAzLjcgMTguNiAuOSAyNS02LjJsMTkuOC0yMi4yYzYuOCAxLjEgMTMuOCAxLjcgMjAuOSAxLjdzMTQuMS0uNiAyMC45LTEuN2wxOS44IDIyLjJ6TTQ2NCAzMDRhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHZW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTE2LjcgMzMuOGM0LjUtNi4xIDExLjctOS44IDE5LjMtOS44SDM3NmM3LjYgMCAxNC44IDMuNiAxOS4zIDkuOGwxMTIgMTUyYzYuOCA5LjIgNi4xIDIxLjktMS41IDMwLjRsLTIzMiAyNTZjLTQuNSA1LTExIDcuOS0xNy44IDcuOXMtMTMuMi0yLjktMTcuOC03LjlsLTIzMi0yNTZjLTcuNy04LjUtOC4zLTIxLjItMS41LTMwLjRsMTEyLTE1MnptMzguNSAzOS44Yy0zLjMgMi41LTQuMiA3LTIuMSAxMC41bDU3LjQgOTUuNkw2My4zIDE5MmMtNC4xIC4zLTcuMyAzLjgtNy4zIDhzMy4yIDcuNiA3LjMgOGwxOTIgMTZjLjQgMCAuOSAwIDEuMyAwbDE5Mi0xNmM0LjEtLjMgNy4zLTMuOCA3LjMtOHMtMy4yLTcuNi03LjMtOEwzMDEuNSAxNzkuOGw1Ny40LTk1LjZjMi4xLTMuNSAxLjItOC4xLTIuMS0xMC41cy03LjktMi0xMC43IDFMMjU2IDE3Mi4yIDE2NS45IDc0LjZjLTIuOC0zLTcuNC0zLjQtMTAuNy0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHZW5kZXJsZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiAxNDRhMTEyIDExMiAwIDEgMSAwIDIyNCAxMTIgMTEyIDAgMSAxIDAtMjI0em0wIDI4OGExNzYgMTc2IDAgMSAwIDAtMzUyIDE3NiAxNzYgMCAxIDAgMCAzNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdob3N0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwLjEgNDY3LjFsLTExLjIgOWMtMy4yIDIuNS03LjEgMy45LTExLjEgMy45QzggNDgwIDAgNDcyIDAgNDYyLjJWMTkyQzAgODYgODYgMCAxOTIgMFMzODQgODYgMzg0IDE5MlY0NjIuMmMwIDkuOC04IDE3LjgtMTcuOCAxNy44Yy00IDAtNy45LTEuNC0xMS4xLTMuOWwtMTEuMi05Yy0xMy40LTEwLjctMzIuOC05LTQ0LjEgMy45TDI2OS4zIDUwNmMtMy4zIDMuOC04LjIgNi0xMy4zIDZzLTkuOS0yLjItMTMuMy02bC0yNi42LTMwLjVjLTEyLjctMTQuNi0zNS40LTE0LjYtNDguMiAwTDE0MS4zIDUwNmMtMy4zIDMuOC04LjIgNi0xMy4zIDZzLTkuOS0yLjItMTMuMy02TDg0LjIgNDcxYy0xMS4zLTEyLjktMzAuNy0xNC42LTQ0LjEtMy45ek0xNjAgMTkyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2lmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTAuNSA2OC44TDIyNS4zIDEyOEgyMjQgMTUyYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwaDIuMmMxNC45IDAgMjguOCA3LjkgMzYuMyAyMC44ek02NCA4OGMwIDE0LjQgMy41IDI4IDkuNiA0MEgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJINDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMkg0MzguNGM2LjEtMTIgOS42LTI1LjYgOS42LTQwYzAtNDguNi0zOS40LTg4LTg4LTg4aC0yLjJjLTMxLjkgMC02MS41IDE2LjktNzcuNyA0NC40TDI1NiA4NS41bC0yNC4xLTQxQzIxNS43IDE2LjkgMTg2LjEgMCAxNTQuMiAwSDE1MkMxMDMuNCAwIDY0IDM5LjQgNjQgODh6bTMzNiAwYzAgMjIuMS0xNy45IDQwLTQwIDQwSDI4OGgtMS4zbDM0LjgtNTkuMkMzMjkuMSA1NS45IDM0Mi45IDQ4IDM1Ny44IDQ4SDM2MGMyMi4xIDAgNDAgMTcuOSA0MCA0MHpNMzIgMjg4VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OEgyMjRWMjg4SDMyek0yODggNTEySDQzMmMyNi41IDAgNDgtMjEuNSA0OC00OFYyODhIMjg4VjUxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2lmdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAwLjYgMzJDMjA1IDE5LjUgMTk4LjUgNS44IDE4NiAxLjRTMTU5LjggMy41IDE1NS40IDE2TDE0NC43IDQ2LjJsLTkuOS0yOS44QzEzMC42IDMuOCAxMTctMyAxMDQuNCAxLjJTODUgMTkgODkuMiAzMS42bDguMyAyNS0yNy40LTIwYy0xMC43LTcuOC0yNS43LTUuNC0zMy41IDUuM3MtNS40IDI1LjcgNS4zIDMzLjVMNzAuMiA5Nkg0OEMyMS41IDk2IDAgMTE3LjUgMCAxNDRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDIwMC42Yy01LjQtOS40LTguNi0yMC4zLTguNi0zMlYyNTZjMC0yOS45IDIwLjUtNTUgNDguMi02MmMxLjgtMzEgMTcuMS01OC4yIDQwLjEtNzYuMUMyNzEuNyAxMDQuNyAyNTYuOSA5NiAyNDAgOTZIMjE3LjhsMjguMy0yMC42YzEwLjctNy44IDEzLjEtMjIuOCA1LjMtMzMuNXMtMjIuOC0xMy4xLTMzLjUtNS4zTDE5Mi41IDU1LjEgMjAwLjYgMzJ6TTM2My41IDE4NS41TDM5My4xIDIyNEgzNDRjLTEzLjMgMC0yNC0xMC43LTI0LTI0YzAtMTMuMSAxMC44LTI0IDI0LjItMjRjNy42IDAgMTQuNyAzLjUgMTkuMyA5LjV6TTI3MiAyMDBjMCA4LjQgMS40IDE2LjUgNC4xIDI0SDI3MmMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2ODBINDE2VjI1NmgzMnY5Nkg2NDBWMjcyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4aC00LjFjMi43LTcuNSA0LjEtMTUuNiA0LjEtMjRjMC0zOS45LTMyLjUtNzItNzIuMi03MmMtMjIuNCAwLTQzLjYgMTAuNC01Ny4zIDI4LjJMNDMyIDE5NS44bC0zMC41LTM5LjZjLTEzLjctMTcuOC0zNS0yOC4yLTU3LjMtMjguMmMtMzkuNyAwLTcyLjIgMzIuMS03Mi4yIDcyek0yMjQgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDQxNlYzODRIMjI0djgwem0yMjQgNDhINTkyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjM4NEg0NDhWNTEyem05Ni0zMTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRINDcwLjlsMjkuNi0zOC41YzQuNi01LjkgMTEuNy05LjUgMTkuMy05LjVjMTMuNCAwIDI0LjIgMTAuOSAyNC4yIDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHbGFzc1dhdGVyRHJvcGxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAwQzIzLjEgMCAxNC42IDMuNyA4LjYgMTAuMlMtLjYgMjUuNCAuMSAzNC4zTDI4LjkgNDM3LjdjMyA0MS45IDM3LjggNzQuMyA3OS44IDc0LjNIMjc1LjNjNDIgMCA3Ni44LTMyLjQgNzkuOC03NC4zTDM4My45IDM0LjNjLjYtOC45LTIuNC0xNy42LTguNS0yNC4xUzM2MC45IDAgMzUyIDBIMzJ6TTgzIDI5Ny41TDY2LjQgNjRIMzE3LjZMMzAxIDI5Ny41IDI4OCAzMDRjLTIwLjEgMTAuMS00My45IDEwLjEtNjQgMHMtNDMuOS0xMC4xLTY0IDBzLTQzLjkgMTAuMS02NCAwbC0xMy02LjV6TTI1NiAxOTZjMC0yNC0zMy43LTcwLjEtNTIuMi05My41Yy02LjEtNy43LTE3LjUtNy43LTIzLjYgMEMxNjEuNyAxMjUuOSAxMjggMTcyIDEyOCAxOTZjMCAzMy4xIDI4LjcgNjAgNjQgNjBzNjQtMjYuOSA2NC02MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2xhc3NXYXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAwQzIzLjEgMCAxNC42IDMuNyA4LjYgMTAuMlMtLjYgMjUuNCAuMSAzNC4zTDI4LjkgNDM3LjdjMyA0MS45IDM3LjggNzQuMyA3OS44IDc0LjNIMjc1LjNjNDIgMCA3Ni44LTMyLjQgNzkuOC03NC4zTDM4My45IDM0LjNjLjYtOC45LTIuNC0xNy42LTguNS0yNC4xUzM2MC45IDAgMzUyIDBIMzJ6TTczIDE1Ni41TDY2LjQgNjRIMzE3LjZMMzExIDE1Ni41bC0yNC4yIDEyLjFjLTE5LjQgOS43LTQyLjIgOS43LTYxLjYgMGMtMjAuOS0xMC40LTQ1LjUtMTAuNC02Ni40IDBjLTE5LjQgOS43LTQyLjIgOS43LTYxLjYgMEw3MyAxNTYuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2xhc3NlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTguNiA4MGMtMTEuNSAwLTIxLjQgNy45LTI0IDE5LjFMNTcgMjYwLjNjMjAuNS02LjIgNDguMy0xMi4zIDc4LjctMTIuM2MzMi4zIDAgNjEuOCA2LjkgODIuOCAxMy41YzEwLjYgMy4zIDE5LjMgNi43IDI1LjQgOS4yYzMuMSAxLjMgNS41IDIuNCA3LjMgMy4yYy45IC40IDEuNiAuNyAyLjEgMWwuNiAuMyAuMiAuMSAuMSAwIDAgMCAwIDBzMCAwLTYuMyAxMi43aDBsNi4zLTEyLjdjNS44IDIuOSAxMC40IDcuMyAxMy41IDEyLjdoNDAuNmMzLjEtNS4zIDcuNy05LjggMTMuNS0xMi43bDYuMyAxMi43aDBjLTYuMy0xMi43LTYuMy0xMi43LTYuMy0xMi43bDAgMCAwIDAgLjEgMCAuMi0uMSAuNi0uM2MuNS0uMiAxLjItLjYgMi4xLTFjMS44LS44IDQuMi0xLjkgNy4zLTMuMmM2LjEtMi42IDE0LjgtNS45IDI1LjQtOS4yYzIxLTYuNiA1MC40LTEzLjUgODIuOC0xMy41YzMwLjQgMCA1OC4yIDYuMSA3OC43IDEyLjNMNDgxLjQgOTkuMWMtMi42LTExLjItMTIuNi0xOS4xLTI0LTE5LjFjLTMuMSAwLTYuMiAuNi05LjIgMS44TDQxNi45IDk0LjNjLTEyLjMgNC45LTI2LjMtMS4xLTMxLjItMTMuNHMxLjEtMjYuMyAxMy40LTMxLjJsMzEuMy0xMi41YzguNi0zLjQgMTcuNy01LjIgMjctNS4yYzMzLjggMCA2My4xIDIzLjMgNzAuOCA1Ni4ybDQzLjkgMTg4YzEuNyA3LjMgMi45IDE0LjcgMy41IDIyLjFjLjMgMS45IC41IDMuOCAuNSA1Ljd2Ni43VjM1MnYxNmMwIDYxLjktNTAuMSAxMTItMTEyIDExMkg0MTkuN2MtNTkuNCAwLTEwOC41LTQ2LjQtMTExLjgtMTA1LjhMMzA2LjYgMzUySDI2OS40bC0xLjIgMjIuMkMyNjQuOSA0MzMuNiAyMTUuOCA0ODAgMTU2LjMgNDgwSDExMkM1MC4xIDQ4MCAwIDQyOS45IDAgMzY4VjM1MiAzMTAuNyAzMDRjMC0xLjkgLjItMy44IC41LTUuN2MuNi03LjQgMS44LTE0LjggMy41LTIyLjFsNDMuOS0xODhDNTUuNSA1NS4zIDg0LjggMzIgMTE4LjYgMzJjOS4yIDAgMTguNCAxLjggMjcgNS4ybDMxLjMgMTIuNWMxMi4zIDQuOSAxOC4zIDE4LjkgMTMuNCAzMS4ycy0xOC45IDE4LjMtMzEuMiAxMy40TDEyNy44IDgxLjhjLTIuOS0xLjItNi0xLjgtOS4yLTEuOHpNNjQgMzI1LjRWMzY4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQ0LjNjMjUuNSAwIDQ2LjUtMTkuOSA0Ny45LTQ1LjNsMi41LTQ1LjZjLTIuMy0uOC00LjktMS43LTcuNS0yLjVjLTE3LjItNS40LTM5LjktMTAuNS02My42LTEwLjVjLTIzLjcgMC00Ni4yIDUuMS02My4yIDEwLjVjLTMuMSAxLTUuOSAxLjktOC41IDIuOXpNNTEyIDM2OFYzMjUuNGMtMi42LS45LTUuNS0xLjktOC41LTIuOWMtMTctNS40LTM5LjUtMTAuNS02My4yLTEwLjVjLTIzLjcgMC00Ni40IDUuMS02My42IDEwLjVjLTIuNyAuOC01LjIgMS43LTcuNSAyLjVsMi41IDQ1LjZjMS40IDI1LjQgMjIuNSA0NS4zIDQ3LjkgNDUuM0g0NjRjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdsb2JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiAyNTZjMCAyMi4yLTEuMiA0My42LTMuMyA2NEgxNjMuM2MtMi4yLTIwLjQtMy4zLTQxLjgtMy4zLTY0czEuMi00My42IDMuMy02NEgzNDguN2MyLjIgMjAuNCAzLjMgNDEuOCAzLjMgNjR6bTI4LjgtNjRINTAzLjljNS4zIDIwLjUgOC4xIDQxLjkgOC4xIDY0cy0yLjggNDMuNS04LjEgNjRIMzgwLjhjMi4xLTIwLjYgMy4yLTQyIDMuMi02NHMtMS4xLTQzLjQtMy4yLTY0em0xMTIuNi0zMkgzNzYuN2MtMTAtNjMuOS0yOS44LTExNy40LTU1LjMtMTUxLjZjNzguMyAyMC43IDE0MiA3Ny41IDE3MS45IDE1MS42em0tMTQ5LjEgMEgxNjcuN2M2LjEtMzYuNCAxNS41LTY4LjYgMjctOTQuN2MxMC41LTIzLjYgMjIuMi00MC43IDMzLjUtNTEuNUMyMzkuNCAzLjIgMjQ4LjcgMCAyNTYgMHMxNi42IDMuMiAyNy44IDEzLjhjMTEuMyAxMC44IDIzIDI3LjkgMzMuNSA1MS41YzExLjYgMjYgMjAuOSA1OC4yIDI3IDk0Ljd6bS0yMDkgMEgxOC42QzQ4LjYgODUuOSAxMTIuMiAyOS4xIDE5MC42IDguNEMxNjUuMSA0Mi42IDE0NS4zIDk2LjEgMTM1LjMgMTYwek04LjEgMTkySDEzMS4yYy0yLjEgMjAuNi0zLjIgNDItMy4yIDY0czEuMSA0My40IDMuMiA2NEg4LjFDMi44IDI5OS41IDAgMjc4LjEgMCAyNTZzMi44LTQzLjUgOC4xLTY0ek0xOTQuNyA0NDYuNmMtMTEuNi0yNi0yMC45LTU4LjItMjctOTQuNkgzNDQuM2MtNi4xIDM2LjQtMTUuNSA2OC42LTI3IDk0LjZjLTEwLjUgMjMuNi0yMi4yIDQwLjctMzMuNSA1MS41QzI3Mi42IDUwOC44IDI2My4zIDUxMiAyNTYgNTEycy0xNi42LTMuMi0yNy44LTEzLjhjLTExLjMtMTAuOC0yMy0yNy45LTMzLjUtNTEuNXpNMTM1LjMgMzUyYzEwIDYzLjkgMjkuOCAxMTcuNCA1NS4zIDE1MS42QzExMi4yIDQ4Mi45IDQ4LjYgNDI2LjEgMTguNiAzNTJIMTM1LjN6bTM1OC4xIDBjLTMwIDc0LjEtOTMuNiAxMzAuOS0xNzEuOSAxNTEuNmMyNS41LTM0LjIgNDUuMi04Ny43IDU1LjMtMTUxLjZINDkzLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvbGZCYWxsVGVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAxOTJjMCA2Ni44LTM0LjEgMTI1LjYtODUuOCAxNjBIODUuOEMzNC4xIDMxNy42IDAgMjU4LjggMCAxOTJDMCA4NiA4NiAwIDE5MiAwUzM4NCA4NiAzODQgMTkyek0yNDIuMSAyNTYuNmMwIDE4LjUtMTUgMzMuNS0zMy41IDMzLjVjLTQuOSAwLTkuMSA1LjEtNS40IDguNGM1LjkgNS4yIDEzLjcgOC40IDIyLjEgOC40YzE4LjUgMCAzMy41LTE1IDMzLjUtMzMuNWMwLTguNS0zLjItMTYuMi04LjQtMjIuMWMtMy4zLTMuNy04LjQgLjUtOC40IDUuNHptLTUyLjMtNDkuM2MtNC45IDAtOS4xIDUuMS01LjQgOC40YzUuOSA1LjIgMTMuNyA4LjQgMjIuMSA4LjRjMTguNSAwIDMzLjUtMTUgMzMuNS0zMy41YzAtOC41LTMuMi0xNi4yLTguNC0yMi4xYy0zLjMtMy43LTguNCAuNS04LjQgNS40YzAgMTguNS0xNSAzMy41LTMzLjUgMzMuNXptMTEzLjUtMTcuNWMwIDE4LjUtMTUgMzMuNS0zMy41IDMzLjVjLTQuOSAwLTkuMSA1LjEtNS40IDguNGM1LjkgNS4yIDEzLjcgOC40IDIyLjEgOC40YzE4LjUgMCAzMy41LTE1IDMzLjUtMzMuNWMwLTguNS0zLjItMTYuMi04LjQtMjIuMWMtMy4zLTMuNy04LjQgLjUtOC40IDUuNHpNOTYgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDY0IDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDI0MGMtOC44IDAtMTYgNy4yLTE2IDE2djE2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjQ2NGMwLTguOC03LjItMTYtMTYtMTZIMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR29wdXJhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHY4aDQwVjI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR2OGg0OFYyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0djhoNDBWMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHY4VjY0djY0YzE3LjcgMCAzMiAxNC4zIDMyIDMydjY0YzE3LjcgMCAzMiAxNC4zIDMyIDMydjk2YzE3LjcgMCAzMiAxNC4zIDMyIDMydjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDQxNlYzNTJIMzg0VjIyNEgzNTJWMTI4SDMyMHY5NmgzMlYzNTJoMzJWNTEySDMwNFY0NjRjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDh2NDhIMTI4VjM1MmgzMlYyMjRoMzJWMTI4SDE2MHY5NkgxMjhWMzUySDk2VjUxMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzg0YzAtMTcuNyAxNC4zLTMyIDMyLTMyVjI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMlYxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJWNjQgMzIgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTI1NiAyNzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjQ4aDY0VjMwNGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTMyLTgwdjMyaDY0VjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JhZHVhdGlvbkNhcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMzJjLTguMSAwLTE2LjEgMS40LTIzLjcgNC4xTDE1LjggMTM3LjRDNi4zIDE0MC45IDAgMTQ5LjkgMCAxNjBzNi4zIDE5LjEgMTUuOCAyMi42bDU3LjkgMjAuOUM1Ny4zIDIyOS4zIDQ4IDI1OS44IDQ4IDI5MS45djI4LjFjMCAyOC40LTEwLjggNTcuNy0yMi4zIDgwLjhjLTYuNSAxMy0xMy45IDI1LjgtMjIuNSAzNy42QzAgNDQyLjctLjkgNDQ4LjMgLjkgNDUzLjRzNiA4LjkgMTEuMiAxMC4ybDY0IDE2YzQuMiAxLjEgOC43IC4zIDEyLjQtMnM2LjMtNi4xIDcuMS0xMC40YzguNi00Mi44IDQuMy04MS4yLTIuMS0xMDguN0M5MC4zIDM0NC4zIDg2IDMyOS44IDgwIDMxNi41VjI5MS45YzAtMzAuMiAxMC4yLTU4LjcgMjcuOS04MS41YzEyLjktMTUuNSAyOS42LTI4IDQ5LjItMzUuN2wxNTctNjEuN2M4LjItMy4yIDE3LjUgLjggMjAuNyA5cy0uOCAxNy41LTkgMjAuN2wtMTU3IDYxLjdjLTEyLjQgNC45LTIzLjMgMTIuNC0zMi4yIDIxLjZsMTU5LjYgNTcuNmM3LjYgMi43IDE1LjYgNC4xIDIzLjcgNC4xczE2LjEtMS40IDIzLjctNC4xTDYyNC4yIDE4Mi42YzkuNS0zLjQgMTUuOC0xMi41IDE1LjgtMjIuNnMtNi4zLTE5LjEtMTUuOC0yMi42TDM0My43IDM2LjFDMzM2LjEgMzMuNCAzMjguMSAzMiAzMjAgMzJ6TTEyOCA0MDhjMCAzNS4zIDg2IDcyIDE5MiA3MnMxOTItMzYuNyAxOTItNzJMNDk2LjcgMjYyLjYgMzU0LjUgMzE0Yy0xMS4xIDQtMjIuOCA2LTM0LjUgNnMtMjMuNS0yLTM0LjUtNkwxNDMuMyAyNjIuNiAxMjggNDA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmVhdGVyVGhhbkVxdWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyLjEgOTMuN0MzNS43IDg3LjEgMjcuNyA2OC41IDM0LjMgNTIuMXMyNS4yLTI0LjQgNDEuNi0xNy44bDMyMCAxMjhDNDA4IDE2Ny4xIDQxNiAxNzguOSA0MTYgMTkycy04IDI0LjktMjAuMSAyOS43bC0zMjAgMTI4Yy0xNi40IDYuNi0zNS0xLjQtNDEuNi0xNy44czEuNC0zNSAxNy44LTQxLjZMMjk3LjggMTkyIDUyLjEgOTMuN3pNNDE2IDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg0MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyZWF0ZXJUaGFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNCA4MS43Yy03LjkgMTUuOC0xLjUgMzUgMTQuMyA0Mi45TDI4MC41IDI1NiAxNy43IDM4Ny40QzEuOSAzOTUuMy00LjUgNDE0LjUgMy40IDQzMC4zczI3LjEgMjIuMiA0Mi45IDE0LjNsMzIwLTE2MGMxMC44LTUuNCAxNy43LTE2LjUgMTcuNy0yOC42cy02LjgtMjMuMi0xNy43LTI4LjZsLTMyMC0xNjBjLTE1LjgtNy45LTM1LTEuNS00Mi45IDE0LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaXBMaW5lc1ZlcnRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAxOTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0VjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjY0em0xMjggMGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JpcExpbmVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAyODh6bTAtMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JpcFZlcnRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwIDM1Mmw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDB6bTE5MiAwbDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MHpNNDAgMzIwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNDggMHpNMjMyIDE5Mmw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDB6TTQwIDE2MGMtMjIuMSAwLTQwLTE3LjktNDAtNDBMMCA3MkMwIDQ5LjkgMTcuOSAzMiA0MCAzMmw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTQ4IDB6TTIzMiAzMmw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDEzNmMwLTIyLjEtMTcuOS00MC00MC00MEw0MCA5NkMxNy45IDk2IDAgMTEzLjkgMCAxMzZsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MEg4OGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4em0wIDE5MmMwLTIyLjEtMTcuOS00MC00MC00MEg0MGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MEg4OGMyMi4xIDAgNDAtMTcuOSA0MC00MFYzMjh6bTMyLTE5MnY0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGg0OGMyMi4xIDAgNDAtMTcuOSA0MC00MFYxMzZjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwek0yODggMzI4YzAtMjIuMS0xNy45LTQwLTQwLTQwSDIwMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGg0OGMyMi4xIDAgNDAtMTcuOSA0MC00MFYzMjh6bTMyLTE5MnY0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGg0OGMyMi4xIDAgNDAtMTcuOSA0MC00MFYxMzZjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwek00NDggMzI4YzAtMjIuMS0xNy45LTQwLTQwLTQwSDM2MGMtMjIuMSAwLTQwIDE3LjktNDAgNDB2NDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBoNDhjMjIuMSAwIDQwLTE3LjkgNDAtNDBWMzI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcm91cEFycm93c1JvdGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDEuMSA3MS45YzE2LjktNSAyNi42LTIyLjkgMjEuNS0zOS44cy0yMi45LTI2LjYtMzkuOC0yMS41Yy0yMS41IDYuNC00MS44IDE1LjUtNjAuNiAyN0MxMTQuMyAzNCAxMDUuNCAzMiA5NiAzMkM2MC43IDMyIDMyIDYwLjcgMzIgOTZjMCA5LjQgMiAxOC4zIDUuNiAyNi4zYy0xMS41IDE4LjctMjAuNiAzOS0yNyA2MC42Yy01IDE2LjkgNC42IDM0LjggMjEuNSAzOS44czM0LjgtNC42IDM5LjgtMjEuNWM0LjMtMTQuNiAxMC40LTI4LjUgMTcuOS00MS40YzIgLjIgNC4xIC4zIDYuMSAuM2MzNS4zIDAgNjQtMjguNyA2NC02NGMwLTIuMS0uMS00LjEtLjMtNi4xYzEyLjktNy41IDI2LjgtMTMuNiA0MS40LTE3Ljl6bTEyOC02MS4zYy0xNi45LTUtMzQuOCA0LjYtMzkuOCAyMS41czQuNiAzNC44IDIxLjUgMzkuOGMxNC42IDQuMyAyOC41IDEwLjQgNDEuNCAxNy45Yy0uMiAyLS4zIDQuMS0uMyA2LjFjMCAzNS4zIDI4LjcgNjQgNjQgNjRjMi4xIDAgNC4xLS4xIDYuMi0uM2M3LjUgMTIuOSAxMy42IDI2LjggMTcuOSA0MS40YzUgMTYuOSAyMi45IDI2LjYgMzkuOCAyMS41czI2LjYtMjIuOSAyMS41LTM5LjhjLTYuNC0yMS41LTE1LjUtNDEuOC0yNy02MC42YzMuNi04IDUuNi0xNi45IDUuNi0yNi4zYzAtMzUuMy0yOC43LTY0LTY0LTY0Yy05LjQgMC0xOC4zIDItMjYuMyA1LjZjLTE4LjctMTEuNS0zOS0yMC42LTYwLjYtMjd6TTcxLjkgMzEwLjljLTUtMTYuOS0yMi45LTI2LjYtMzkuOC0yMS41cy0yNi42IDIyLjktMjEuNSAzOS44YzYuNCAyMS41IDE1LjUgNDEuOCAyNyA2MC42QzM0IDM5Ny43IDMyIDQwNi42IDMyIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGM5LjQgMCAxOC4zLTIgMjYuMy01LjZjMTguNyAxMS41IDM5IDIwLjYgNjAuNiAyN2MxNi45IDUgMzQuOC00LjYgMzkuOC0yMS41cy00LjYtMzQuOC0yMS41LTM5LjhjLTE0LjYtNC4zLTI4LjUtMTAuNC00MS40LTE3LjljLjItMiAuMy00LjEgLjMtNi4yYzAtMzUuMy0yOC43LTY0LTY0LTY0Yy0yLjEgMC00LjEgLjEtNi4yIC4zYy03LjUtMTIuOS0xMy42LTI2LjgtMTcuOS00MS40em00MjkuNCAxOC4zYzUtMTYuOS00LjYtMzQuOC0yMS41LTM5LjhzLTM0LjggNC42LTM5LjggMjEuNWMtNC4zIDE0LjYtMTAuNCAyOC41LTE3LjkgNDEuNGMtMi0uMi00LjEtLjMtNi4yLS4zYy0zNS4zIDAtNjQgMjguNy02NCA2NGMwIDIuMSAuMSA0LjEgLjMgNi4yYy0xMi45IDcuNS0yNi44IDEzLjYtNDEuNCAxNy45Yy0xNi45IDUtMjYuNiAyMi45LTIxLjUgMzkuOHMyMi45IDI2LjYgMzkuOCAyMS41YzIxLjUtNi40IDQxLjgtMTUuNSA2MC42LTI3YzggMy42IDE2LjkgNS42IDI2LjMgNS42YzM1LjMgMCA2NC0yOC43IDY0LTY0YzAtOS40LTItMTguMy01LjYtMjYuM2MxMS41LTE4LjcgMjAuNi0zOSAyNy02MC42ek0xOTIuOCAyNTYuOGMwLTE1LjYgNS42LTI5LjkgMTQuOS00MS4xTDIyMyAyMzFjNi42IDYuNiAxNy44IDEuOSAxNy44LTcuNFYxNjMuMmMwLTUuNy00LjctMTAuNC0xMC40LTEwLjRIMTY5LjljLTkuMyAwLTEzLjkgMTEuMi03LjQgMTcuOGwxMS4yIDExLjJjLTE3LjkgMTkuOC0yOC45IDQ2LjItMjguOSA3NS4xYzAgNDMuNiAyNC45IDgxLjMgNjEuMSA5OS44YzExLjggNiAyNi4zIDEuNCAzMi4zLTEwLjRzMS40LTI2LjMtMTAuNC0zMi4zYy0yMC44LTEwLjYtMzQuOS0zMi4yLTM0LjktNTd6bTkzLjEtNTguNmMyMC44IDEwLjYgMzQuOSAzMi4yIDM0LjkgNTdjMCAxNS42LTUuNiAyOS45LTE0LjkgNDEuMUwyOTAuNiAyODFjLTYuNi02LjYtMTcuOC0xLjktMTcuOCA3LjR2NjAuNWMwIDUuNyA0LjcgMTAuNCAxMC40IDEwLjRoNjAuNWM5LjMgMCAxMy45LTExLjIgNy40LTE3LjhsLTExLjItMTEuMmMxNy45LTE5LjggMjguOS00Ni4yIDI4LjktNzUuMWMwLTQzLjYtMjQuOS04MS4zLTYxLjEtOTkuOGMtMTEuOC02LTI2LjMtMS40LTMyLjMgMTAuNHMtMS40IDI2LjMgMTAuNCAzMi4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHdWFyYW5pU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWNjYuN0M2OS4yIDgxLjkgMCAxNjAuOSAwIDI1NnM2OS4yIDE3NC4xIDE2MCAxODkuM1Y0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY0NDUuM2M5MC44LTE1LjIgMTYwLTk0LjIgMTYwLTE4OS4zYzAtMTcuNy0xNC4zLTMyLTMyLTMySDIyNFYxMzJjMjIuMSA1LjcgNDEuOCAxNy4xIDU3LjYgMzIuNmMxMi42IDEyLjQgMzIuOSAxMi4yIDQ1LjMtLjRzMTIuMi0zMi45LS41LTQ1LjNDMjk5IDkyIDI2My41IDczLjMgMjI0IDY2LjdWMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTE2MCAxMzJWMzgwYy01NS4yLTE0LjItOTYtNjQuMy05Ni0xMjRzNDAuOC0xMDkuOCA5Ni0xMjR6TTIyNCAzODBWMjg4aDkyYy0xMS42IDQ1LTQ3IDgwLjQtOTIgOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUd1aXRhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjUgN2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMMzgzIDU1Yy0yLjQgMi40LTQuMyA1LjMtNS41IDguNWwtMTUuNCA0MS03Ny41IDc3LjZjLTQ1LjEtMjkuNC05OS4zLTMwLjItMTMxIDEuNmMtMTEgMTEtMTggMjQuNi0yMS40IDM5LjZjLTMuNyAxNi42LTE5LjEgMzAuNy0zNi4xIDMxLjZjLTI1LjYgMS4zLTQ5LjMgMTAuNy02Ny4zIDI4LjZDLTE2IDMyOC40LTcuNiA0MDkuNCA0Ny41IDQ2NC41czEzNi4xIDYzLjUgMTgwLjkgMTguN2MxNy45LTE3LjkgMjcuNC00MS43IDI4LjYtNjcuM2MuOS0xNyAxNS0zMi4zIDMxLjYtMzYuMWMxNS0zLjQgMjguNi0xMC41IDM5LjYtMjEuNGMzMS44LTMxLjggMzEtODUuOSAxLjYtMTMxbDc3LjYtNzcuNiA0MS0xNS40YzMuMi0xLjIgNi4xLTMuMSA4LjUtNS41bDQ4LTQ4YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDQ2NSA3ek0yMDggMjU2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3VuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyOCA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHY4SDMyQzE0LjMgNjQgMCA3OC4zIDAgOTZWMjA4YzAgMTcuNyAxNC4zIDMyIDMyIDMySDQyYzIwLjggMCAzNi4xIDE5LjYgMzEgMzkuOEwzMyA0NDAuMmMtMi40IDkuNi0uMiAxOS43IDUuOCAyNy41UzU0LjEgNDgwIDY0IDQ4MGg5NmMxNC43IDAgMjcuNS0xMCAzMS0yNC4yTDIxNyAzNTJIMzIxLjRjMjMuNyAwIDQ0LjgtMTQuOSA1Mi43LTM3LjJMNDAwLjkgMjQwSDQzMmM4LjUgMCAxNi42LTMuNCAyMi42LTkuNEw0NzcuMyAyMDhINTQ0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMySDUyOFY1NnpNMzIxLjQgMzA0SDIyOWwxNi02NGgxMDVsLTIxIDU4LjdjLTEuMSAzLjItNC4yIDUuMy03LjUgNS4zek04MCAxMjhINDY0YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCAyNTZsMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIyNFY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlYxOTJMNjQgMTkyIDY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0VjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTkyIDI1NiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW1tZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDEzLjUgMjM3LjVjLTI4LjIgNC44LTU4LjItMy42LTgwLTI1LjRsLTM4LjEtMzguMUMyODAuNCAxNTkgMjcyIDEzOC44IDI3MiAxMTcuNlYxMDUuNUwxOTIuMyA2MmMtNS4zLTIuOS04LjYtOC42LTguMy0xNC43czMuOS0xMS41IDkuNS0xNGw0Ny4yLTIxQzI1OS4xIDQuMiAyNzkgMCAyOTkuMiAwaDE4LjFjMzYuNyAwIDcyIDE0IDk4LjcgMzkuMWw0NC42IDQyYzI0LjIgMjIuOCAzMy4yIDU1LjcgMjYuNiA4Nkw1MDMgMTgzbDgtOGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwyNCAyNGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtODggODhjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC0yNC0yNGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsOC04LTE3LjUtMTcuNXpNMjcuNCAzNzcuMUwyNjAuOSAxODIuNmMzLjUgNC45IDcuNSA5LjYgMTEuOCAxNGwzOC4xIDM4LjFjNiA2IDEyLjQgMTEuMiAxOS4yIDE1LjdMMTM0LjkgNDg0LjZjLTE0LjUgMTcuNC0zNiAyNy40LTU4LjYgMjcuNEMzNC4xIDUxMiAwIDQ3Ny44IDAgNDM1LjdjMC0yMi42IDEwLjEtNDQuMSAyNy40LTU4LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbXNhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0LjYgMjg4SDgwYzguOCAwIDE2LTcuMiAxNi0xNlY3MmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwVjIwNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMFY0MGMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwVjIwNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMFY3MmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwVjI3MmMwIDguOCA3LjIgMTYgMTYgMTZoNDUuNGMxOS4xIDAgMzQuNiAxNS41IDM0LjYgMzQuNmMwIDguNi0zLjIgMTYuOS05IDIzLjNMNDE2LjYgNDQxYy00MS4xIDQ1LjItOTkuNCA3MS0xNjAuNiA3MXMtMTE5LjQtMjUuOC0xNjAuNi03MUw5IDM0NS45Yy01LjgtNi40LTktMTQuNy05LTIzLjNDMCAzMDMuNSAxNS41IDI4OCAzNC42IDI4OHpNMjU2IDI4OGMtMzguNCAwLTc2LjggMzUuOC05MC42IDUwLjJjLTMuNiAzLjctNS40IDguNy01LjQgMTMuOHMxLjggMTAuMSA1LjQgMTMuOEMxNzkuMiAzODAuMiAyMTcuNiA0MTYgMjU2IDQxNnM3Ni44LTM1LjggOTAuNi01MC4yYzMuNi0zLjcgNS40LTguNyA1LjQtMTMuOHMtMS44LTEwLjEtNS40LTEzLjhDMzMyLjggMzIzLjggMjk0LjQgMjg4IDI1NiAyODh6bTAgMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kQmFja0Zpc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ0IDBDMTE3LjUgMCA5NiAyMS41IDk2IDQ4Vjk2djI4LjVWMTc2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjE0OS4zbC05IDcuNUM0MC40IDE2OSAzMiAxODcgMzIgMjA2VjI0NGMwIDM4IDE2LjkgNzQgNDYuMSA5OC4zTDEyOCAzODR2OTZjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzIwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM3NC43YzQ2LjktMTkgODAtNjUgODAtMTE4LjdWMTc2IDE2MCAxNDRjMC0yNi41LTIxLjUtNDgtNDgtNDhjLTEyLjQgMC0yMy42IDQuNy0zMi4xIDEyLjNDMzUwIDgzLjUgMzI5LjMgNjQgMzA0IDY0Yy0xMi40IDAtMjMuNiA0LjctMzIuMSAxMi4zQzI3MCA1MS41IDI0OS4zIDMyIDIyNCAzMmMtMTIuNCAwLTIzLjYgNC43LTMyLjEgMTIuM0MxOTAgMTkuNSAxNjkuMyAwIDE0NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kRG90cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMjQwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjMzNmMwIDEuNSAwIDMuMSAuMSA0LjZMNjcuNiAyODNjLTE2LTE1LjItNDEuMy0xNC42LTU2LjYgMS40cy0xNC42IDQxLjMgMS40IDU2LjZMMTI0LjggNDQ4YzQzLjEgNDEuMSAxMDAuNCA2NCAxNjAgNjRIMzA0Yzk3LjIgMCAxNzYtNzguOCAxNzYtMTc2VjEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlYyNDBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMjQwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjMyek0yNDAgMzM2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6bTgwIDE2YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnptNDgtMTZhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHptLTE2IDgwYTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnpNMjQwIDQzMmExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwem0tNDgtNDhhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kRmlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMlYxNDRIMTYwVjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek02NCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMydjgwSDY0VjY0em0xOTIgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMydjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjY0em05NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMydjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjEyOHptLTk2IDg4bDAtLjZjOS40IDUuNCAyMC4zIDguNiAzMiA4LjZjMTMuMiAwIDI1LjQtNCAzNS42LTEwLjhjOC43IDI0LjkgMzIuNSA0Mi44IDYwLjQgNDIuOGMxMS43IDAgMjIuNi0zLjEgMzItOC42VjI1NmMwIDUyLjMtMjUuMSA5OC44LTY0IDEyOHY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkgxNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQwMS42Yy0xNy4zLTcuOS0zMy4yLTE4LjgtNDYuOS0zMi41TDY5LjUgMzU3LjVDNDUuNSAzMzMuNSAzMiAzMDAuOSAzMiAyNjdWMjQwYzAtMzUuMyAyOC43LTY0IDY0LTY0aDg4YzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwSDEyOGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmg1NmMzOS44IDAgNzItMzIuMiA3Mi03MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZEhvbGRpbmdEb2xsYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzEyIDI0VjM0LjVjNi40IDEuMiAxMi42IDIuNyAxOC4yIDQuMmMxMi44IDMuNCAyMC40IDE2LjYgMTcgMjkuNHMtMTYuNiAyMC40LTI5LjQgMTdjLTEwLjktMi45LTIxLjEtNC45LTMwLjItNWMtNy4zLS4xLTE0LjcgMS43LTE5LjQgNC40Yy0yLjEgMS4zLTMuMSAyLjQtMy41IDNjLS4zIC41LS43IDEuMi0uNyAyLjhjMCAuMyAwIC41IDAgLjZjLjIgLjIgLjkgMS4yIDMuMyAyLjZjNS44IDMuNSAxNC40IDYuMiAyNy40IDEwLjFsLjkgLjNjMTEuMSAzLjMgMjUuOSA3LjggMzcuOSAxNS4zYzEzLjcgOC42IDI2LjEgMjIuOSAyNi40IDQ0LjljLjMgMjIuNS0xMS40IDM4LjktMjYuNyA0OC41Yy02LjcgNC4xLTEzLjkgNy0yMS4zIDguOFYyMzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMjIwLjZjLTkuNS0yLjMtMTguMi01LjMtMjUuNi03LjhjLTIuMS0uNy00LjEtMS40LTYtMmMtMTIuNi00LjItMTkuNC0xNy44LTE1LjItMzAuNHMxNy44LTE5LjQgMzAuNC0xNS4yYzIuNiAuOSA1IDEuNyA3LjMgMi41YzEzLjYgNC42IDIzLjQgNy45IDMzLjkgOC4zYzggLjMgMTUuMS0xLjYgMTkuMi00LjFjMS45LTEuMiAyLjgtMi4yIDMuMi0yLjljLjQtLjYgLjktMS44IC44LTQuMWwwLS4yYzAtMSAwLTIuMS00LTQuNmMtNS43LTMuNi0xNC4zLTYuNC0yNy4xLTEwLjNsLTEuOS0uNmMtMTAuOC0zLjItMjUtNy41LTM2LjQtMTQuNGMtMTMuNS04LjEtMjYuNS0yMi0yNi42LTQ0LjFjLS4xLTIyLjkgMTIuOS0zOC42IDI3LjctNDcuNGM2LjQtMy44IDEzLjMtNi40IDIwLjItOC4yVjI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6TTU2OC4yIDMzNi4zYzEzLjEgMTcuOCA5LjMgNDIuOC04LjUgNTUuOUw0MzMuMSA0ODUuNWMtMjMuNCAxNy4yLTUxLjYgMjYuNS04MC43IDI2LjVIMTkyIDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJINjguOGw0NC45LTM2YzIyLjctMTguMiA1MC45LTI4IDgwLTI4SDI3MmgxNiA2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgyODggMjcyYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2SDM5Mi42bDExOS43LTg4LjJjMTcuOC0xMy4xIDQyLjgtOS4zIDU1LjkgOC41ek0xOTMuNiAzODRsMCAwLS45IDBjLjMgMCAuNiAwIC45IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRIb2xkaW5nRHJvcGxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzUuNSA2LjZDMjc4LjMgMi41IDI4MyAwIDI4OCAwczkuNyAyLjUgMTIuNSA2LjZMMzY2LjggMTAzQzM3OCAxMTkuMyAzODQgMTM4LjYgMzg0IDE1OC4zVjE2MGMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NnYtMS43YzAtMTkuOCA2LTM5IDE3LjItNTUuM0wyNzUuNSA2LjZ6TTU2OC4yIDMzNi4zYzEzLjEgMTcuOCA5LjMgNDIuOC04LjUgNTUuOUw0MzMuMSA0ODUuNWMtMjMuNCAxNy4yLTUxLjYgMjYuNS04MC43IDI2LjVIMTkyIDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJINjguOGw0NC45LTM2YzIyLjctMTguMiA1MC45LTI4IDgwLTI4SDI3MmgxNiA2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgyODggMjcyYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2SDM5Mi42bDExOS43LTg4LjJjMTcuOC0xMy4xIDQyLjgtOS4zIDU1LjkgOC41ek0xOTMuNiAzODRsMCAwLS45IDBjLjMgMCAuNiAwIC45IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRIb2xkaW5nSGFuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjggMjA3LjdjLTEzLjEtMTcuOC05LjMtNDIuOCA4LjUtNTUuOUwxNDIuOSA1OC41QzE2Ni4yIDQxLjMgMTk0LjUgMzIgMjIzLjUgMzJIMzg0IDU0NGMxNy43IDAgMzIgMTQuMyAzMiAzMnY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkg1MDcuMmwtNDQuOSAzNmMtMjIuNyAxOC4yLTUwLjkgMjgtODAgMjhIMzA0IDI4OCAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJoNjQgMTZjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMTgzLjRMNjMuNyAyMTYuMmMtMTcuOCAxMy4xLTQyLjggOS4zLTU1LjktOC41ek0zODIuNCAxNjBsMCAwIC45IDBjLS4zIDAtLjYgMC0uOSAwek01NjguMiAzMDQuM2MxMy4xIDE3LjggOS4zIDQyLjgtOC41IDU1LjlMNDMzLjEgNDUzLjVjLTIzLjQgMTcuMi01MS42IDI2LjUtODAuNyAyNi41SDE5MiAzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzg0YzAtMTcuNyAxNC4zLTMyIDMyLTMySDY4LjhsNDQuOS0zNmMyMi43LTE4LjIgNTAuOS0yOCA4MC0yOEgyNzJoMTYgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMjg4IDI3MmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNkgzOTIuNmwxMTkuNy04OC4yYzE3LjgtMTMuMSA0Mi44LTkuMyA1NS45IDguNXpNMTkzLjYgMzUybDAgMC0uOSAwYy4zIDAgLjYgMCAuOSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kSG9sZGluZ0hlYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2My45IDEzNi45Yy0yOS40LTI5LjgtMjkuNC03OC4yIDAtMTA4czc3LTI5LjggMTA2LjQgMGwxNy43IDE4IDE3LjctMThjMjkuNC0yOS44IDc3LTI5LjggMTA2LjQgMHMyOS40IDc4LjIgMCAxMDhMMzEwLjUgMjQwLjFjLTYuMiA2LjMtMTQuMyA5LjQtMjIuNSA5LjRzLTE2LjMtMy4xLTIyLjUtOS40TDE2My45IDEzNi45ek01NjguMiAzMzYuM2MxMy4xIDE3LjggOS4zIDQyLjgtOC41IDU1LjlMNDMzLjEgNDg1LjVjLTIzLjQgMTcuMi01MS42IDI2LjUtODAuNyAyNi41SDE5MiAzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMySDY4LjhsNDQuOS0zNmMyMi43LTE4LjIgNTAuOS0yOCA4MC0yOEgyNzJoMTYgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMjg4IDI3MmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNkgzOTIuNmwxMTkuNy04OC4yYzE3LjgtMTMuMSA0Mi44LTkuMyA1NS45IDguNXpNMTkzLjYgMzg0bDAgMC0uOSAwYy4zIDAgLjYgMCAuOSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kSG9sZGluZ01lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDI0VjgwSDE2OGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2NDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRoNTZ2NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRoNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTc2aDU2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjEwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNEgzMjBWMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRIMjQ4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNNTU5LjcgMzkyLjJjMTcuOC0xMy4xIDIxLjYtMzguMSA4LjUtNTUuOXMtMzguMS0yMS42LTU1LjktOC41TDM5Mi42IDQxNkgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoMTYgNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMjg4IDI3MiAxOTMuN2MtMjkuMSAwLTU3LjMgOS45LTgwIDI4TDY4LjggMzg0SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMkgxOTIgMzUyLjVjMjkgMCA1Ny4zLTkuMyA4MC43LTI2LjVsMTI2LjYtOTMuM3ptLTM2Ny04LjJsLjkgMCAwIDBjLS4zIDAtLjYgMC0uOSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kSG9sZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NTkuNyAzOTIuMmMxNy44LTEzLjEgMjEuNi0zOC4xIDguNS01NS45cy0zOC4xLTIxLjYtNTUuOS04LjVMMzkyLjYgNDE2SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmgxNiA2NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgyODggMjcyIDE5My43Yy0yOS4xIDAtNTcuMyA5LjktODAgMjhMNjguOCAzODRIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMySDE5MiAzNTIuNWMyOSAwIDU3LjMtOS4zIDgwLjctMjYuNWwxMjYuNi05My4zem0tMzY2LjEtOC4zYS41IC41IDAgMSAxIC0uOSAuMiAuNSAuNSAwIDEgMSAuOS0uMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZExpemFyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDExMkMwIDg1LjUgMjEuNSA2NCA0OCA2NEgxNjBoODAgNDYuNWMzNi44IDAgNzEuMiAxOCA5Mi4xIDQ4LjJsMTEzLjUgMTY0YzEzIDE4LjcgMTkuOSA0MSAxOS45IDYzLjh2MTIgMTYgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJIMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlY0MDIuMkwyNzMuOSAzNTJIMjQwIDE2MCAxMTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDhoNDggODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhIMTYwIDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZE1pZGRsZUZpbmdlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzIgMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBWMjA0LjJjLTguNS03LjYtMTkuNy0xMi4yLTMyLTEyLjJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djcgNzNjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMjY0LjNjLTIgMS40LTMuOSAzLTUuOCA0LjVMNTUgMjg0LjhDNDAuNCAyOTcgMzIgMzE1IDMyIDMzNFYzNzJjMCAzOCAxNi45IDc0IDQ2LjEgOTguM2w1LjQgNC41YzI4LjggMjQgNjUgMzcuMSAxMDIuNCAzNy4xSDMwNGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFYzMjAgMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4Yy0xMi40IDAtMjMuNiA0LjctMzIuMSAxMi4zQzM1MCAyMjcuNSAzMjkuMyAyMDggMzA0IDIwOGMtMTIuMyAwLTIzLjUgNC42LTMyIDEyLjJWNDBjMC0yMi4xLTE3LjktNDAtNDAtNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRQZWFjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMlYyNDBIMTkyVjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAxNjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem02NCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMydjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjIyNHpNOTMuMyA1MS4yTDE3NS45IDI0MEgxMDYuMUwzNC43IDc2LjhDMjcuNiA2MC42IDM1IDQxLjggNTEuMiAzNC43czM1LjEgLjMgNDIuMSAxNi41em0yNyAyMjEuM2wtLjItLjVoNjkuOUgyMTZjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBIMTYwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2aDU2YzM5LjggMCA3Mi0zMi4yIDcyLTcybDAtLjZjOS40IDUuNCAyMC4zIDguNiAzMiA4LjZjMTMuMiAwIDI1LjQtNCAzNS42LTEwLjhjOC43IDI0LjkgMzIuNSA0Mi44IDYwLjQgNDIuOGMxMS43IDAgMjIuNi0zLjEgMzItOC42VjM1MmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MEgyMjYuM2MtNDIuNCAwLTgzLjEtMTYuOS0xMTMuMS00Ni45bC0xMS42LTExLjZDNzcuNSA0MjkuNSA2NCAzOTYuOSA2NCAzNjNWMzM2YzAtMzIuNyAyNC42LTU5LjcgNTYuMy02My41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kUG9pbnREb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjI3MkgzMlY0ODB6TTIyNCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyNTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2NjR6bS02NCA2NGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMDRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJ6bTE2MC05NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnY2NHptLTk2LTg4bDAgLjZjOS40LTUuNCAyMC4zLTguNiAzMi04LjZjMTMuMiAwIDI1LjQgNCAzNS42IDEwLjhjOC43LTI0LjkgMzIuNS00Mi44IDYwLjQtNDIuOGMxMS43IDAgMjIuNiAzLjEgMzIgOC42VjE2MEMzODQgNzEuNiAzMTIuNCAwIDIyNCAwSDE2Mi4zQzExOS44IDAgNzkuMSAxNi45IDQ5LjEgNDYuOUwzNy41IDU4LjVDMTMuNSA4Mi41IDAgMTE1LjEgMCAxNDl2MjdjMCAzNS4zIDI4LjcgNjQgNjQgNjRoODhjMjIuMSAwIDQwLTE3LjkgNDAtNDBzLTE3LjktNDAtNDAtNDBIOTZjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoNTZjMzkuOCAwIDcyIDMyLjIgNzIgNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRQb2ludExlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgOTZDMTQuMyA5NiAwIDExMC4zIDAgMTI4czE0LjMgMzIgMzIgMzJsMjA4IDAgMC02NEwzMiA5NnpNMTkyIDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwem0tNjQtNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTk2IDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwem04OC05NmwtLjYgMGM1LjQgOS40IDguNiAyMC4zIDguNiAzMmMwIDEzLjItNCAyNS40LTEwLjggMzUuNmMyNC45IDguNyA0Mi44IDMyLjUgNDIuOCA2MC40YzAgMTEuNy0zLjEgMjIuNi04LjYgMzJsOC42IDBjODguNCAwIDE2MC03MS42IDE2MC0xNjBsMC02MS43YzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMWwtMTEuNi0xMS42QzQyOS41IDc3LjUgMzk2LjkgNjQgMzYzIDY0bC0yNyAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDg4YzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC01NmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNTZjMCAzOS44LTMyLjIgNzItNzIgNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRQb2ludFJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjA4IDAgMC02NCAyMDggMHpNMzIwIDI4OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwem02NC02NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNDggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyek0yODggMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDB6bS04OC05NmwuNiAwYy01LjQgOS40LTguNiAyMC4zLTguNiAzMmMwIDEzLjIgNCAyNS40IDEwLjggMzUuNkMxNzcuOSAzNjQuMyAxNjAgMzg4LjEgMTYwIDQxNmMwIDExLjcgMy4xIDIyLjYgOC42IDMybC04LjYgMEM3MS42IDQ0OCAwIDM3Ni40IDAgMjg4bDAtNjEuN2MwLTQyLjQgMTYuOS04My4xIDQ2LjktMTEzLjFsMTEuNi0xMS42QzgyLjUgNzcuNSAxMTUuMSA2NCAxNDkgNjRsMjcgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDg4YzAgMjIuMS0xNy45IDQwLTQwIDQwcy00MC0xNy45LTQwLTQwbDAtNTZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA1NmMwIDM5LjggMzIuMiA3MiA3MiA3MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZFBvaW50VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMzJDMzIgMTQuMyA0Ni4zIDAgNjQgMFM5NiAxNC4zIDk2IDMyVjI0MEgzMlYzMnpNMjI0IDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMydjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjE5MnptLTY0LTY0YzE3LjcgMCAzMiAxNC4zIDMyIDMydjQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTYwIDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMjI0em0tOTYgODhsMC0uNmM5LjQgNS40IDIwLjMgOC42IDMyIDguNmMxMy4yIDAgMjUuNC00IDM1LjYtMTAuOGM4LjcgMjQuOSAzMi41IDQyLjggNjAuNCA0Mi44YzExLjcgMCAyMi42LTMuMSAzMi04LjZWMzUyYzAgODguNC03MS42IDE2MC0xNjAgMTYwSDE2Mi4zYy00Mi40IDAtODMuMS0xNi45LTExMy4xLTQ2LjlMMzcuNSA0NTMuNUMxMy41IDQyOS41IDAgMzk2LjkgMCAzNjNWMzM2YzAtMzUuMyAyOC43LTY0IDY0LTY0aDg4YzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwSDk2Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2aDU2YzM5LjggMCA3Mi0zMi4yIDcyLTcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kUG9pbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggNDBjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MFYxODguMmM4LjUtNy42IDE5LjctMTIuMiAzMi0xMi4yYzIwLjYgMCAzOC4yIDEzIDQ1IDMxLjJjOC44LTkuMyAyMS4yLTE1LjIgMzUtMTUuMmMyNS4zIDAgNDYgMTkuNSA0Ny45IDQ0LjNjOC41LTcuNyAxOS44LTEyLjMgMzIuMS0xMi4zYzI2LjUgMCA0OCAyMS41IDQ4IDQ4djQ4IDE2IDQ4YzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0xNiAwSDI0MGwtLjEgMGgtNS4yYy01IDAtOS45LS4zLTE0LjctMWMtNTUuMy01LjYtMTA2LjItMzQtMTQwLTc5TDggMzM2Yy0xMy4zLTE3LjctOS43LTQyLjcgOC01NnM0Mi43LTkuNyA1NiA4bDU2IDc0LjdWNDB6TTI0MCAzMDRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2OTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYzMDR6bTQ4LTE2Yy04LjggMC0xNiA3LjItMTYgMTZ2OTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYzMDRjMC04LjgtNy4yLTE2LTE2LTE2em04MCAxNmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnY5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjMwNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZFNjaXNzb3JzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwIDIwOGMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGwxODAuMiAwYy03LjYgOC41LTEyLjIgMTkuNy0xMi4yIDMyYzAgMjUuMyAxOS41IDQ2IDQ0LjMgNDcuOWMtNy43IDguNS0xMi4zIDE5LjgtMTIuMyAzMi4xYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDMyIDAgNjQgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGwwLTExMy4xYzAtNDAuMi0xNi03OC44LTQ0LjQtMTA3LjNDNDQ0LjggNzYuOCA0MTMuOSA2NCAzODEuNyA2NEwzMzYgNjRjLTIxLjMgMC0zOS4zIDEzLjktNDUuNiAzMy4xbDc0LjUgMjMuN2M4LjQgMi43IDEzLjEgMTEuNyAxMC40IDIwLjFzLTExLjcgMTMuMS0yMC4xIDEwLjRMMjg4IDEyOS45bDAgLjFMODQgNjUuOEM2Mi45IDU5LjIgNDAuNSA3MC45IDMzLjggOTJzNS4xIDQzLjUgMjYuMiA1MC4yTDI2OS41IDIwOCA0MCAyMDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRTcGFya2xlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMlYyNDBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlY2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyVjI0MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyVjMyMy4xYy0xMS45IDQuOC0yMS4zIDE0LjktMjUgMjcuOGwtOC45IDMxLjJMNDc4LjkgMzkxQzQ2MC42IDM5Ni4zIDQ0OCA0MTMgNDQ4IDQzMmMwIDE4LjkgMTIuNSAzNS42IDMwLjYgNDAuOUM0NDguNCA0OTcuNCA0MDkuOSA1MTIgMzY4IDUxMkgzNDguOGMtNTkuNiAwLTExNi45LTIyLjktMTYwLTY0TDc2LjQgMzQxYy0xNi0xNS4yLTE2LjYtNDAuNi0xLjQtNTYuNnM0MC42LTE2LjYgNTYuNi0xLjRsNjAuNSA1Ny42YzAtMS41LS4xLTMuMS0uMS00LjZWNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMlYyNDBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptLTcuMyAzMjYuNmMtMS4xLTMuOS00LjctNi42LTguNy02LjZzLTcuNiAyLjctOC43IDYuNkwyODggMzUybC0yNS40IDcuM2MtMy45IDEuMS02LjYgNC43LTYuNiA4LjdzMi43IDcuNiA2LjYgOC43TDI4OCAzODRsNy4zIDI1LjRjMS4xIDMuOSA0LjcgNi42IDguNyA2LjZzNy42LTIuNyA4LjctNi42TDMyMCAzODRsMjUuNC03LjNjMy45LTEuMSA2LjYtNC43IDYuNi04LjdzLTIuNy03LjYtNi42LTguN0wzMjAgMzUybC03LjMtMjUuNHpNMTA0IDEyMGw0OC4zIDEzLjhjNC42IDEuMyA3LjcgNS41IDcuNyAxMC4ycy0zLjEgOC45LTcuNyAxMC4yTDEwNCAxNjggOTAuMiAyMTYuM2MtMS4zIDQuNi01LjUgNy43LTEwLjIgNy43cy04LjktMy4xLTEwLjItNy43TDU2IDE2OCA3LjcgMTU0LjJDMy4xIDE1Mi45IDAgMTQ4LjcgMCAxNDRzMy4xLTguOSA3LjctMTAuMkw1NiAxMjAgNjkuOCA3MS43QzcxLjEgNjcuMSA3NS4zIDY0IDgwIDY0czguOSAzLjEgMTAuMiA3LjdMMTA0IDEyMHpNNTg0IDQwOGw0OC4zIDEzLjhjNC42IDEuMyA3LjcgNS41IDcuNyAxMC4ycy0zLjEgOC45LTcuNyAxMC4yTDU4NCA0NTZsLTEzLjggNDguM2MtMS4zIDQuNi01LjUgNy43LTEwLjIgNy43cy04LjktMy4xLTEwLjItNy43TDUzNiA0NTZsLTQ4LjMtMTMuOGMtNC42LTEuMy03LjctNS41LTcuNy0xMC4yczMuMS04LjkgNy43LTEwLjJMNTM2IDQwOGwxMy44LTQ4LjNjMS4zLTQuNiA1LjUtNy43IDEwLjItNy43czguOSAzLjEgMTAuMiA3LjdMNTg0IDQwOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZFNwb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ni45IDIzLjdDMjQyLjMgNi42IDIyNC44LTMuNSAyMDcuNyAxLjFzLTI3LjIgMjIuMS0yMi42IDM5LjJMMjM4IDIzNy44YzIuNSA5LjItNC41IDE4LjItMTQgMTguMmMtNi40IDAtMTItNC4yLTEzLjktMTAuM0wxNjYuNiAxMDIuN2MtNS4xLTE2LjktMjMtMjYuNC0zOS45LTIxLjNzLTI2LjQgMjMtMjEuMyAzOS45bDYyLjggMjA2LjRjMi40IDcuOS03LjIgMTMuOC0xMy4yIDguMUw5OS42IDI4M2MtMTYtMTUuMi00MS4zLTE0LjYtNTYuNiAxLjRzLTE0LjYgNDEuMyAxLjQgNTYuNkwxNTYuOCA0NDhjNDMuMSA0MS4xIDEwMC40IDY0IDE2MCA2NGgxMC45IDguMmMuMSAwIC4xLS4xIC4xLS4xcy4xLS4xIC4xLS4xYzU4LjMtMy41IDEwOC42LTQzLjIgMTI1LjMtOTkuN2w4MS4yLTI3NWM1LTE2LjktNC43LTM0LjctMjEuNi0zOS44cy0zNC43IDQuNy0zOS44IDIxLjZMNDQzLjUgMjQ3LjFjLTEuNiA1LjMtNi40IDguOS0xMiA4LjljLTcuOSAwLTEzLjgtNy4zLTEyLjItMTUuMWwzNi0xNzAuM2MzLjctMTcuMy03LjQtMzQuMy0yNC43LTM3LjlzLTM0LjMgNy40LTM3LjkgMjQuN0wzNTUuMSAyMzUuMWMtMi42IDEyLjItMTMuMyAyMC45LTI1LjggMjAuOWMtMTEuOSAwLTIyLjQtOC0yNS40LTE5LjVsLTU3LTIxMi44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlYyNDBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMzM2YzAgMS41IDAgMy4xIC4xIDQuNkw2Ny42IDI4M2MtMTYtMTUuMi00MS4zLTE0LjYtNTYuNiAxLjRzLTE0LjYgNDEuMyAxLjQgNTYuNkwxMjQuOCA0NDhjNDMuMSA0MS4xIDEwMC40IDY0IDE2MCA2NEgzMDRjOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzZWMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjI0MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlYyNDBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRjdWZmcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDAgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMTkyIDQ4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptLTMyIDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMyaDhjMTMuMyAwIDI0IDEwLjcgMjQgMjR2MTZjMCAxLjctLjIgMy40LS41IDUuMUMyODAuMyAyMjkuNiAzMjAgMjg2LjIgMzIwIDM1MmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQ0MC40IDAgMzUyYzAtNjUuOCAzOS43LTEyMi40IDk2LjUtMTQ2LjljLS40LTEuNi0uNS0zLjMtLjUtNS4xVjE4NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGg4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0wIDMyMGE5NiA5NiAwIDEgMCAwLTE5MiA5NiA5NiAwIDEgMCAwIDE5MnptMTkyLTk2YzAtMjUuOS01LjEtNTAuNS0xNC40LTczLjFjMTYuOS0zMi45IDQ0LjgtNTkuMSA3OC45LTczLjljLS40LTEuNi0uNS0zLjMtLjUtNS4xVjE4NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGg4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJoOGMxMy4zIDAgMjQgMTAuNyAyNCAyNHYxNmMwIDEuNy0uMiAzLjQtLjUgNS4xQzYwMC4zIDIyOS42IDY0MCAyODYuMiA2NDAgMzUyYzAgODguNC03MS42IDE2MC0xNjAgMTYwYy02MiAwLTExNS44LTM1LjMtMTQyLjQtODYuOWM5LjMtMjIuNSAxNC40LTQ3LjIgMTQuNC03My4xem0yMjQgMGE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6TTM2OCAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptODAgNDhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kc0FzbEludGVycHJldGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTYuNiA0Ni4zYzcuOS0xNS44IDEuNS0zNS0xNC4zLTQyLjlzLTM1LTEuNS00Mi45IDE0LjNMMTMuNSAxODkuNEM0LjYgMjA3LjIgMCAyMjYuOCAwIDI0Ni43VjI1NmMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGg3MiA4di0uM2MzNS4yLTIuNyA2NS40LTIyLjggODIuMS01MS43YzguOC0xNS4zIDMuNi0zNC45LTExLjctNDMuN3MtMzQuOS0zLjYtNDMuNyAxMS43Yy03IDEyLTE5LjkgMjAtMzQuNyAyMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MGMxNC44IDAgMjcuNyA4IDM0LjcgMjBjOC44IDE1LjMgMjguNCAyMC41IDQzLjcgMTEuN3MyMC41LTI4LjQgMTEuNy00My43Yy0xMi44LTIyLjEtMzMuNi0zOS4xLTU4LjQtNDcuMWw4MC44LTIyYzE3LTQuNiAyNy4xLTIyLjIgMjIuNS0zOS4zcy0yMi4yLTI3LjEtMzkuMy0yMi41TDE5NC45IDEyNC42bDgxLjYtNjhjMTMuNi0xMS4zIDE1LjQtMzEuNSA0LjEtNDUuMVMyNDkuMS0zLjkgMjM1LjUgNy40TDEzMy42IDkyLjNsMjMtNDZ6TTQ4My40IDQ2NS43Yy03LjkgMTUuOC0xLjUgMzUgMTQuMyA0Mi45czM1IDEuNSA0Mi45LTE0LjNsODUuOS0xNzEuN2M4LjktMTcuOCAxMy41LTM3LjQgMTMuNS01Ny4yVjI1NmMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEg0NDBoLTh2LjNjLTM1LjIgMi43LTY1LjQgMjIuOC04Mi4xIDUxLjdjLTguOSAxNS4zLTMuNiAzNC45IDExLjcgNDMuN3MzNC45IDMuNiA0My43LTExLjdjNy0xMiAxOS45LTIwIDM0LjctMjBjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBjLTE0LjggMC0yNy43LTgtMzQuNy0yMGMtOC45LTE1LjMtMjguNC0yMC41LTQzLjctMTEuN3MtMjAuNSAyOC40LTExLjcgNDMuN2MxMi44IDIyLjEgMzMuNiAzOS4xIDU4LjQgNDcuMWwtODAuOCAyMmMtMTcuMSA0LjctMjcuMSAyMi4yLTIyLjUgMzkuM3MyMi4yIDI3LjEgMzkuMyAyMi41bDEwMC43LTI3LjUtODEuNiA2OGMtMTMuNiAxMS4zLTE1LjQgMzEuNS00LjEgNDUuMXMzMS41IDE1LjQgNDUuMSA0LjFsMTAxLjktODQuOS0yMyA0NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZHNCb3VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAzMkM5NiAxNC4zIDgxLjcgMCA2NCAwUzMyIDE0LjMgMzIgMzJWOTZ2NTkuMSAuN1YxOTJ2MjEuOWMwIDE0LjIgNS4xIDI3LjkgMTQuMyAzOC43TDEzMS42IDM1MkgxMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoMzJIMjg4aDY0SDQ4MGgzMmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGgtMy42bDg1LjMtOTkuNWM5LjItMTAuOCAxNC4zLTI0LjUgMTQuMy0zOC43VjE5MiAxNTUuOHYtLjdWOTYgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWOTZ2NDguOGwtNjkuMyA5Mi40Yy01LjcgNy42LTE2LjEgOS42LTI0LjIgNC44Yy05LjctNS43LTEyLjEtMTguNy01LjEtMjcuNUw0NzMgMTgwYzEwLjgtMTMuNSA4LjktMzMuMy00LjQtNDQuNXMtMzMtOS44LTQ0LjUgMy4ybC00Ni43IDUyLjVDMzYxIDIwOS43IDM1MiAyMzMuNCAzNTIgMjU4LjFWMzIwdjMySDI4OFYzMjAgMjU4LjFjMC0yNC42LTktNDguNC0yNS40LTY2LjhsLTQ2LjctNTIuNWMtMTEuNS0xMy0zMS4zLTE0LjQtNDQuNS0zLjJzLTE1LjIgMzAuOS00LjQgNDQuNWwyNy42IDM0LjVjNyA4LjggNC43IDIxLjgtNS4xIDI3LjVjLTguMSA0LjgtMTguNiAyLjctMjQuMi00LjhMOTYgMTQ0LjhWOTYgMzJ6bTY0IDQ0OHYzMkgyODhWNDgwaDY0djMySDQ4MFY0ODBoMzJjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRINDgwIDM1MiAyODggMTYwIDEyOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGgzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZHNCdWJibGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiA2NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTk2IDEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTE2MCA0NjRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMzIgMTYwbC4xIDcyLjZjLjEgNTIuMiAyNCAxMDEgNjQgMTMzLjFjLS4xLTEuOS0uMS0zLjgtLjEtNS43di04YzAtNzEuOCAzNy0xMzguNiA5Ny45LTE3Ni43bDYwLjItMzcuNmM4LjYtNS40IDE3LjktOC40IDI3LjMtOS40bDQ1LjktNzkuNWM2LjYtMTEuNSAyLjctMjYuMi04LjgtMzIuOHMtMjYuMi0yLjctMzIuOCA4LjhsLTc4IDEzNS4xYy0zLjMgNS43LTEwLjcgNy43LTE2LjQgNC40cy03LjctMTAuNy00LjQtMTYuNGw2Mi0xMDcuNGM2LjYtMTEuNSAyLjctMjYuMi04LjgtMzIuOFMyMTQgNSAyMDcuNCAxNi41bC02OCAxMTcuOCAwIDAgMCAwLTQzLjMgNzVMOTYgMTYwYzAtMTcuNy0xNC40LTMyLTMyLTMycy0zMiAxNC40LTMyIDMyek0zMzIuMSA4OC41TDMwNy41IDEzMWMxMy45IDQuNSAyNi40IDEzLjcgMzQuNyAyN2MuOSAxLjUgMS44IDIuOSAyLjUgNC40bDI4LjktNTBjNi42LTExLjUgMi43LTI2LjItOC44LTMyLjhzLTI2LjItMi43LTMyLjggOC44em00Ni40IDYzLjdsLTI2LjggNDYuNGMtLjYgNi0yLjEgMTEuOC00LjMgMTcuNEgzNTJoMTMuM2wwIDBIMzk3bDIzLTM5LjhjNi42LTExLjUgMi43LTI2LjItOC44LTMyLjhzLTI2LjItMi43LTMyLjggOC44ek0zMTUuMSAxNzVjLTkuNC0xNS0yOS4xLTE5LjUtNDQuMS0xMC4ybC02MC4yIDM3LjZDMTU5LjMgMjM0LjcgMTI4IDI5MS4yIDEyOCAzNTJ2OGMwIDguOSAuOCAxNy42IDIuMiAyNi4xYzM1LjQgOC4yIDYxLjggNDAgNjEuOCA3Ny45YzAgNi4zLS43IDEyLjUtMi4xIDE4LjRDMjE1LjEgNTAxIDI0Ni4zIDUxMiAyODAgNTEySDQ1NmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgzNjRjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJINDg4YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDM2NGMtNi42IDAtMTItNS40LTEyLTEyczUuNC0xMiAxMi0xMkg1MjBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMzY0Yy02LjYgMC0xMi01LjQtMTItMTJzNS40LTEyIDEyLTEySDQ4OGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgzNTJsMCAwIDAgMEgyNTguOEwzMDUgMjE5LjFjMTUtOS40IDE5LjUtMjkuMSAxMC4yLTQ0LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRzQ2xhcHBpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM2IDE2VjgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjE2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6bS05OC43IDcuMWwzMiA0OGM0LjkgNy40IDIuOSAxNy4zLTQuNCAyMi4ycy0xNy4zIDIuOS0yMi4yLTQuNGwtMzItNDhjLTQuOS03LjQtMi45LTE3LjMgNC40LTIyLjJzMTcuMy0yLjkgMjIuMiA0LjR6TTEzNSAxMTljOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMjkyLjcgMjQyLjdjMTAuMSAxMC4xIDI3LjMgMi45IDI3LjMtMTEuM1YxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMlYzNDUuNmMwIDU3LjEtMzAgMTEwLTc4LjkgMTM5LjRjLTY0IDM4LjQtMTQ1LjggMjguMy0xOTguNS0yNC40TDcgMzYxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNTMgNTNjNi4xIDYuMSAxNiA2LjEgMjIuMSAwczYuMS0xNiAwLTIyLjFMMjMgMjY1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsOTMgOTNjNi4xIDYuMSAxNiA2LjEgMjIuMSAwczYuMS0xNiAwLTIyLjFMNTUgMTg1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMTE3IDExN2M2LjEgNi4xIDE2IDYuMSAyMi4xIDBzNi4xLTE2IDAtMjIuMWwtOTMtOTNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45ek00MzMuMSA0ODQuOWMtMjQuMiAxNC41LTUwLjkgMjIuMS03Ny43IDIzLjFjNDguMS0zOS42IDc2LjYtOTkgNzYuNi0xNjIuNGwwLTk4LjFjOC4yLS4xIDE2LTYuNCAxNi0xNlYxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMlYzNDUuNmMwIDU3LjEtMzAgMTEwLTc4LjkgMTM5LjR6TTQyNC45IDE4LjdjNy40IDQuOSA5LjMgMTQuOCA0LjQgMjIuMmwtMzIgNDhjLTQuOSA3LjQtMTQuOCA5LjMtMjIuMiA0LjRzLTkuMy0xNC44LTQuNC0yMi4ybDMyLTQ4YzQuOS03LjQgMTQuOC05LjMgMjIuMi00LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRzSG9sZGluZ0NoaWxkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCAwYTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHptNDQuNyAxNjQuM0wzNzUuOCAyNTNjMS42IDEzLjItNy43IDI1LjEtMjAuOCAyNi44cy0yNS4xLTcuNy0yNi44LTIwLjhsLTQuNC0zNWgtNy42bC00LjQgMzVjLTEuNiAxMy4yLTEzLjYgMjIuNS0yNi44IDIwLjhzLTIyLjUtMTMuNi0yMC44LTI2LjhsMTEuMS04OC44TDI1NS41IDE4MWMtMTAuMSA4LjYtMjUuMyA3LjMtMzMuOC0yLjhzLTcuMy0yNS4zIDIuOC0zMy44bDI3LjktMjMuNkMyNzEuMyAxMDQuOCAyOTUuMyA5NiAzMjAgOTZzNDguNyA4LjggNjcuNiAyNC43bDI3LjkgMjMuNmMxMC4xIDguNiAxMS40IDIzLjcgMi44IDMzLjhzLTIzLjcgMTEuNC0zMy44IDIuOGwtMTkuOC0xNi43ek00MCA2NGMyMi4xIDAgNDAgMTcuOSA0MCA0MHY0MCA4MCA0MC4yYzAgMTcgNi43IDMzLjMgMTguNyA0NS4zbDUxLjEgNTEuMWM4LjMgOC4zIDIxLjMgOS42IDMxIDMuMWMxMi45LTguNiAxNC43LTI2LjkgMy43LTM3LjhsLTE1LjItMTUuMi0zMi0zMmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwzMiAzMiAxNS4yIDE1LjIgMCAwIDI1LjMgMjUuM2MyMSAyMSAzMi44IDQ5LjUgMzIuOCA3OS4yVjQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEgxNzMuM2MtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdMMjguMSAzOTMuNEMxMC4xIDM3NS40IDAgMzUxIDAgMzI1LjVWMjI0IDE2MCAxMDRDMCA4MS45IDE3LjkgNjQgNDAgNjR6bTU2MCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwdjU2IDY0VjMyNS41YzAgMjUuNS0xMC4xIDQ5LjktMjguMSA2Ny45TDUxMiA0OTMuM2MtMTIgMTItMjguMyAxOC43LTQ1LjMgMTguN0g0MDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjM4NS4xYzAtMjkuNyAxMS44LTU4LjIgMzIuOC03OS4ybDI1LjMtMjUuMyAwIDAgMTUuMi0xNS4yIDMyLTMyYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTMyIDMyLTE1LjIgMTUuMmMtMTEgMTEtOS4yIDI5LjIgMy43IDM3LjhjOS43IDYuNSAyMi43IDUuMiAzMS0zLjFsNTEuMS01MS4xYzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNWMjI0IDE0NCAxMDRjMC0yMi4xIDE3LjktNDAgNDAtNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRzSG9sZGluZ0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMGExMjggMTI4IDAgMSAxIDAgMjU2QTEyOCAxMjggMCAxIDEgMzIwIDB6TTQwIDY0YzIyLjEgMCA0MCAxNy45IDQwIDQwdjQwIDgwIDQwLjJjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNsNTEuMSA1MS4xYzguMyA4LjMgMjEuMyA5LjYgMzEgMy4xYzEyLjktOC42IDE0LjctMjYuOSAzLjctMzcuOGwtMTUuMi0xNS4yLTMyLTMyYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDMyIDMyIDE1LjIgMTUuMiAwIDAgMjUuMyAyNS4zYzIxIDIxIDMyLjggNDkuNSAzMi44IDc5LjJWNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDE3My4zYy0xNyAwLTMzLjMtNi43LTQ1LjMtMTguN0wyOC4xIDM5My40QzEwLjEgMzc1LjQgMCAzNTEgMCAzMjUuNVYyMjQgMTYwIDEwNEMwIDgxLjkgMTcuOSA2NCA0MCA2NHptNTYwIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDB2NTYgNjRWMzI1LjVjMCAyNS41LTEwLjEgNDkuOS0yOC4xIDY3LjlMNTEyIDQ5My4zYy0xMiAxMi0yOC4zIDE4LjctNDUuMyAxOC43SDQwMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMzg1LjFjMC0yOS43IDExLjgtNTguMiAzMi44LTc5LjJsMjUuMy0yNS4zIDAgMCAxNS4yLTE1LjIgMzItMzJjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtMzIgMzItMTUuMiAxNS4yYy0xMSAxMS05LjIgMjkuMiAzLjcgMzcuOGM5LjcgNi41IDIyLjcgNS4yIDMxLTMuMWw1MS4xLTUxLjFjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM1YyMjQgMTQ0IDEwNGMwLTIyLjEgMTcuOS00MCA0MC00MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZHNIb2xkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTgwIDEwNGMwLTIyLjEtMTcuOS00MC00MC00MFMwIDgxLjkgMCAxMDR2NTYgNjRWMzI1LjVjMCAyNS41IDEwLjEgNDkuOSAyOC4xIDY3LjlMMTI4IDQ5My4zYzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdIMjQwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjM4NS4xYzAtMjkuNy0xMS44LTU4LjItMzIuOC03OS4ybC0yNS4zLTI1LjMgMCAwLTE1LjItMTUuMi0zMi0zMmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMzIgMzIgMTUuMiAxNS4yYzExIDExIDkuMiAyOS4yLTMuNyAzNy44Yy05LjcgNi41LTIyLjcgNS4yLTMxLTMuMUw5OC43IDMwOS41Yy0xMi0xMi0xOC43LTI4LjMtMTguNy00NS4zVjIyNCAxNDQgMTA0em00ODAgMHY0MCA4MCA0MC4yYzAgMTctNi43IDMzLjMtMTguNyA0NS4zbC01MS4xIDUxLjFjLTguMyA4LjMtMjEuMyA5LjYtMzEgMy4xYy0xMi45LTguNi0xNC43LTI2LjktMy43LTM3LjhsMTUuMi0xNS4yIDMyLTMyYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0zMiAzMi0xNS4yIDE1LjIgMCAwLTI1LjMgMjUuM2MtMjEgMjEtMzIuOCA0OS41LTMyLjggNzkuMlY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoNjYuN2MxNyAwIDMzLjMtNi43IDQ1LjMtMTguN2w5OS45LTk5LjljMTgtMTggMjguMS00Mi40IDI4LjEtNjcuOVYyMjQgMTYwIDEwNGMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZHNQcmF5aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MS4yIDQuOGMzLjItMiA2LjYtMy4zIDEwLTQuMWM0LjctMSA5LjYtLjkgMTQuMSAuMWM3LjcgMS44IDE0LjggNi41IDE5LjQgMTMuNkw1MTQuNiAxOTQuMmM4LjggMTMuMSAxMy40IDI4LjYgMTMuNCA0NC40djczLjVjMCA2LjkgNC40IDEzIDEwLjkgMTUuMmw3OS4yIDI2LjRDNjMxLjIgMzU4IDY0MCAzNzAuMiA2NDAgMzg0djk2YzAgOS45LTQuNiAxOS4zLTEyLjUgMjUuNHMtMTguMSA4LjEtMjcuNyA1LjVMNDMxIDQ2NS45Yy01Ni0xNC45LTk1LTY1LjctOTUtMTIzLjdWMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ2ODBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYyMTkuMWMwLTctMS44LTEzLjgtNS4zLTE5LjhMMzQwLjMgNDguMWMtMS43LTMtMi45LTYuMS0zLjYtOS4zYy0xLTQuNy0xLTkuNiAuMS0xNC4xYzEuOS04IDYuOC0xNS4yIDE0LjMtMTkuOXptLTYyLjQgMGM3LjUgNC42IDEyLjQgMTEuOSAxNC4zIDE5LjljMS4xIDQuNiAxLjIgOS40IC4xIDE0LjFjLS43IDMuMi0xLjkgNi4zLTMuNiA5LjNMMjEzLjMgMTk5LjNjLTMuNSA2LTUuMyAxMi45LTUuMyAxOS44VjMwNGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyVjM0Mi4zYzAgNTgtMzkgMTA4LjctOTUgMTIzLjdsLTE2OC43IDQ1Yy05LjYgMi42LTE5LjkgLjUtMjcuNy01LjVTMCA0OTAgMCA0ODBWMzg0YzAtMTMuOCA4LjgtMjYgMjEuOS0zMC40bDc5LjItMjYuNGM2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMlYyMzguNWMwLTE1LjggNC43LTMxLjIgMTMuNC00NC40TDI0NS4yIDE0LjVjNC42LTcuMSAxMS43LTExLjggMTkuNC0xMy42YzQuNi0xLjEgOS40LTEuMiAxNC4xLS4xYzMuNSAuOCA2LjkgMi4xIDEwIDQuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQ0IDE2MGwtLjEgNzIuNmMtLjEgNTIuMi0yNCAxMDEtNjQgMTMzLjFjLjEtMS45IC4xLTMuOCAuMS01Ljd2LThjMC03MS44LTM3LTEzOC42LTk3LjktMTc2LjdsLTYwLjItMzcuNmMtOC42LTUuNC0xNy45LTguNC0yNy4zLTkuNEwyNDguNyA0OC44Yy02LjYtMTEuNS0yLjctMjYuMiA4LjgtMzIuOHMyNi4yLTIuNyAzMi44IDguOGw3OCAxMzUuMWMzLjMgNS43IDEwLjcgNy43IDE2LjQgNC40czcuNy0xMC43IDQuNC0xNi40bC02Mi0xMDcuNGMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhTMzYyIDUgMzY4LjYgMTYuNWw2OCAxMTcuOCAwIDAgMCAwIDQzLjMgNzVMNDgwIDE2MGMwLTE3LjcgMTQuNC0zMiAzMi0zMnMzMiAxNC40IDMyIDMyek0yNDMuOSA4OC41TDI2OC41IDEzMWMtMTMuOSA0LjUtMjYuNCAxMy43LTM0LjcgMjdjLS45IDEuNC0xLjcgMi45LTIuNSA0LjRsLTI4LjktNTBjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44czI2LjItMi43IDMyLjggOC44em0tNDYuNCA2My43bDI2LjggNDYuNGMuNiA2IDIuMSAxMS44IDQuMyAxNy40SDIyNCAyMTAuN2wwIDBIMTc5bC0yMy0zOS44Yy02LjYtMTEuNS0yLjctMjYuMiA4LjgtMzIuOHMyNi4yLTIuNyAzMi44IDguOHpNMjYwLjkgMTc1YzkuNC0xNSAyOS4xLTE5LjUgNDQuMS0xMC4ybDYwLjIgMzcuNkM0MTYuNyAyMzQuNyA0NDggMjkxLjIgNDQ4IDM1MnY4YzAgODMuOS02OC4xIDE1Mi0xNTIgMTUySDEyMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGg5MmM2LjYgMCAxMi01LjQgMTItMTJzLTUuNC0xMi0xMi0xMkg4OGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNEgyMTJjNi42IDAgMTItNS40IDEyLTEycy01LjQtMTItMTItMTJINTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRIMjEyYzYuNiAwIDEyLTUuNCAxMi0xMnMtNS40LTEyLTEyLTEySDg4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0SDIyNGwwIDAgMCAwaDkzLjJMMjcxIDIxOS4xYy0xNS05LjQtMTkuNS0yOS4xLTEwLjItNDQuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZHNoYWtlQW5nbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQ0IDI0OHYzLjNsNjkuNy02OS43YzIxLjktMjEuOSAyMS45LTU3LjMgMC03OS4yTDUzNS42IDI0LjRjLTIxLjktMjEuOS01Ny4zLTIxLjktNzkuMiAwTDQxNi4zIDY0LjVjLTIuNy0uMy01LjUtLjUtOC4zLS41SDI5NmMtMzcuMSAwLTY3LjYgMjgtNzEuNiA2NEgyMjRWMjQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBWMTc2YzAgMCAwLS4xIDAtLjFWMTYwbDE2IDAgMTM2IDBjMCAwIDAgMCAuMSAwSDQ2NGM0NC4yIDAgODAgMzUuOCA4MCA4MHY4ek0zMzYgMTkydjU2YzAgMzkuOC0zMi4yIDcyLTcyIDcycy03Mi0zMi4yLTcyLTcyVjEyOS40Yy0zNS45IDYuMi02NS44IDMyLjMtNzYgNjguMkw5OS41IDI1NS4yIDI2LjMgMzI4LjRjLTIxLjkgMjEuOS0yMS45IDU3LjMgMCA3OS4ybDc4LjEgNzguMWMyMS45IDIxLjkgNTcuMyAyMS45IDc5LjIgMGwzNy43LTM3LjdjLjkgMCAxLjggLjEgMi43IC4xSDM4NGMyNi41IDAgNDgtMjEuNSA0OC00OGMwLTUuNi0xLTExLTIuNy0xNkg0MzJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhjMC0xMi44LTUtMjQuNC0xMy4yLTMzYzI1LjctNSA0NS4xLTI3LjYgNDUuMi01NC44di0uNGMtLjEtMzAuOC0yNS4xLTU1LjgtNTYtNTUuOGMwIDAgMCAwIDAgMGwtMTIwIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRzaGFrZVNpbXBsZVNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdsLTEzNS0xMDUuOGMtMS4xLTExLjMtNi4zLTIyLjMtMTUuMy0zMC43bC0xMzQuMi0xMjMtMjMuNCAxOC4yLTI2LTIwLjMgNzcuMi02MC4xYzctNS40IDE3LTQuMiAyMi41IDIuOHM0LjIgMTctMi44IDIyLjVsLTIwLjkgMTYuMkw1NTAuMiAzNTJINTkyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjE3NmMwLTI2LjUtMjEuNS00OC00OC00OEg1MTZoLTQtLjdsLTMuOS0yLjVMNDM0LjggNzljLTE1LjMtOS44LTMzLjItMTUtNTEuNC0xNWMtMjEuOCAwLTQzIDcuNS02MCAyMS4ybC04OS43IDcyLjYtMjUuOC0yMC4zIDgxLjgtNjYuMmMtMTEuNi00LjktMjQuMS03LjQtMzYuOC03LjRDMjM0IDY0IDIxNS43IDY5LjYgMjAwIDgwbC0zNS41IDIzLjdMMzguOCA1LjF6TTQxMy42IDQyMS45TDQxLjIgMTI4LjVDMTcuOSAxMzEuOCAwIDE1MS44IDAgMTc2VjMwNGMwIDI2LjUgMjEuNSA0OCA0OCA0OEgxNTYuMmw5MS40IDgzLjRjMTkuNiAxNy45IDQ5LjkgMTYuNSA2Ny44LTMuMWM1LjUtNi4xIDkuMi0xMy4yIDExLjEtMjAuNmwxNyAxNS42YzE5LjUgMTcuOSA0OS45IDE2LjYgNjcuOC0yLjljLjgtLjggMS41LTEuNyAyLjItMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kc2hha2VTaW1wbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIzLjQgODUuMmwtOTYuOCA3OC40Yy0xNi4xIDEzLTE5LjIgMzYuNC03IDUzLjFjMTIuOSAxNy44IDM4IDIxLjMgNTUuMyA3LjhsOTkuMy03Ny4yYzctNS40IDE3LTQuMiAyMi41IDIuOHM0LjIgMTctMi44IDIyLjVsLTIwLjkgMTYuMkw1NTAuMiAzNTJINTkyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjE3NmMwLTI2LjUtMjEuNS00OC00OC00OEg1MTZoLTQtLjdsLTMuOS0yLjVMNDM0LjggNzljLTE1LjMtOS44LTMzLjItMTUtNTEuNC0xNWMtMjEuOCAwLTQzIDcuNS02MCAyMS4yem0yMi44IDEyNC40bC01MS43IDQwLjJDMjYzIDI3NC40IDIxNy4zIDI2OCAxOTMuNyAyMzUuNmMtMjIuMi0zMC41LTE2LjYtNzMuMSAxMi43LTk2LjhsODMuMi02Ny4zYy0xMS42LTQuOS0yNC4xLTcuNC0zNi44LTcuNEMyMzQgNjQgMjE1LjcgNjkuNiAyMDAgODBsLTcyIDQ4SDQ4Yy0yNi41IDAtNDggMjEuNS00OCA0OFYzMDRjMCAyNi41IDIxLjUgNDggNDggNDhIMTU2LjJsOTEuNCA4My40YzE5LjYgMTcuOSA0OS45IDE2LjUgNjcuOC0zLjFjNS41LTYuMSA5LjItMTMuMiAxMS4xLTIwLjZsMTcgMTUuNmMxOS41IDE3LjkgNDkuOSAxNi42IDY3LjgtMi45YzQuNS00LjkgNy44LTEwLjYgOS45LTE2LjVjMTkuNCAxMyA0NS44IDEwLjMgNjIuMS03LjVjMTcuOS0xOS41IDE2LjYtNDkuOS0yLjktNjcuOGwtMTM0LjItMTIzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kc2hha2VTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43bC0xMzUtMTA1LjhjLTEuMS0xMS4zLTYuMy0yMi4zLTE1LjMtMzAuN2wtMTM0LjItMTIzLTIzLjQgMTguMi0yNi0yMC4zIDc3LjItNjAuMWM3LTUuNCAxNy00LjIgMjIuNSAyLjhzNC4yIDE3LTIuOCAyMi41bC0yMC45IDE2LjJMNTEyIDMxNi44VjEyOGgtLjdsLTMuOS0yLjVMNDM0LjggNzljLTE1LjMtOS44LTMzLjItMTUtNTEuNC0xNWMtMjEuOCAwLTQzIDcuNS02MCAyMS4ybC04OS43IDcyLjYtMjUuOC0yMC4zIDgxLjgtNjYuMmMtMTEuNi00LjktMjQuMS03LjQtMzYuOC03LjRDMjM0IDY0IDIxNS43IDY5LjYgMjAwIDgwbC0zNS41IDIzLjdMMzguOCA1LjF6TTQxMy42IDQyMS45TDEyOCAxOTYuOFYzNTJoMjguMmw5MS40IDgzLjRjMTkuNiAxNy45IDQ5LjkgMTYuNSA2Ny44LTMuMWM1LjUtNi4xIDkuMi0xMy4yIDExLjEtMjAuNmwxNyAxNS42YzE5LjUgMTcuOSA0OS45IDE2LjYgNjcuOC0yLjljLjgtLjggMS41LTEuNyAyLjItMi42ek05NiAxNzEuNkw0MC42IDEyOEgxNmMtOC44IDAtMTYgNy4yLTE2IDE2VjM1MmMwIDE3LjcgMTQuMyAzMiAzMiAzMkg2NGMxNy43IDAgMzItMTQuMyAzMi0zMlYxNzEuNnpNNDggMzIwYTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnpNNTQ0IDEyOFYzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtOC44LTcuMi0xNi0xNi0xNkg1NDR6bTMyIDIwOGExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kc2hha2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIzLjQgODUuMmwtOTYuOCA3OC40Yy0xNi4xIDEzLTE5LjIgMzYuNC03IDUzLjFjMTIuOSAxNy44IDM4IDIxLjMgNTUuMyA3LjhsOTkuMy03Ny4yYzctNS40IDE3LTQuMiAyMi41IDIuOHM0LjIgMTctMi44IDIyLjVsLTIwLjkgMTYuMkw1MTIgMzE2LjhWMTI4aC0uN2wtMy45LTIuNUw0MzQuOCA3OWMtMTUuMy05LjgtMzMuMi0xNS01MS40LTE1Yy0yMS44IDAtNDMgNy41LTYwIDIxLjJ6bTIyLjggMTI0LjRsLTUxLjcgNDAuMkMyNjMgMjc0LjQgMjE3LjMgMjY4IDE5My43IDIzNS42Yy0yMi4yLTMwLjUtMTYuNi03My4xIDEyLjctOTYuOGw4My4yLTY3LjNjLTExLjYtNC45LTI0LjEtNy40LTM2LjgtNy40QzIzNCA2NCAyMTUuNyA2OS42IDIwMCA4MGwtNzIgNDhWMzUyaDI4LjJsOTEuNCA4My40YzE5LjYgMTcuOSA0OS45IDE2LjUgNjcuOC0zLjFjNS41LTYuMSA5LjItMTMuMiAxMS4xLTIwLjZsMTcgMTUuNmMxOS41IDE3LjkgNDkuOSAxNi42IDY3LjgtMi45YzQuNS00LjkgNy44LTEwLjYgOS45LTE2LjVjMTkuNCAxMyA0NS44IDEwLjMgNjIuMS03LjVjMTcuOS0xOS41IDE2LjYtNDkuOS0yLjktNjcuOGwtMTM0LjItMTIzek0xNiAxMjhjLTguOCAwLTE2IDcuMi0xNiAxNlYzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJINjRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTI4SDE2ek00OCAzMjBhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyek01NDQgMTI4VjM1MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC04LjgtNy4yLTE2LTE2LTE2SDU0NHptMzIgMjA4YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbnVraWFoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxNC4yIDMuM0MzMDkuMSAxMi4xIDI5NiAzNi42IDI5NiA1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43QzMyNC42IDEuMiAzMjIuNCAwIDMyMCAwcy00LjYgMS4yLTUuOCAzLjN6bS0yODggNDhDMjEuMSA2MC4xIDggODQuNiA4IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43QzM2LjYgNDkuMiAzNC40IDQ4IDMyIDQ4cy00LjYgMS4yLTUuOCAzLjN6TTg4IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43Yy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzEwMS4xIDYwLjEgODggODQuNiA4OCAxMDR6bTgyLjItNTIuN0MxNjUuMSA2MC4xIDE1MiA4NC42IDE1MiAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuN2MtMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNMjE2IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43Yy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzIyOS4xIDYwLjEgMjE2IDg0LjYgMjE2IDEwNHpNMzk0LjIgNTEuM0MzODkuMSA2MC4xIDM3NiA4NC42IDM3NiAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuN2MtMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNNDQwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43Yy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzQ1My4xIDYwLjEgNDQwIDg0LjYgNDQwIDEwNHptODIuMi01Mi43QzUxNy4xIDYwLjEgNTA0IDg0LjYgNTA0IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43Yy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek01ODQgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjdjLTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjNDNTk3LjEgNjAuMSA1ODQgODQuNiA1ODQgMTA0ek0xMTIgMTYwYy04LjggMC0xNiA3LjItMTYgMTZ2OTYgMTZoMzJWMjcyIDE3NmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnY5NiAxNmgzMlYyNzIgMTc2YzAtOC44LTcuMi0xNi0xNi0xNnptNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2djk2IDE2aDMyVjI3MiAxNzZjMC04LjgtNy4yLTE2LTE2LTE2em0xNjAgMGMtOC44IDAtMTYgNy4yLTE2IDE2djk2IDE2aDMyVjI3MiAxNzZjMC04LjgtNy4yLTE2LTE2LTE2em02NCAwYy04LjggMC0xNiA3LjItMTYgMTZ2OTYgMTZoMzJWMjcyIDE3NmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnY5NiAxNmgzMlYyNzIgMTc2YzAtOC44LTcuMi0xNi0xNi0xNnpNMzUyIDE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlYzMjBIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnY5NmMwIDUzIDQzIDk2IDk2IDk2SDI4OHY2NEgxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJIMzIwIDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzNTJWMzg0SDU0NGM1MyAwIDk2LTQzIDk2LTk2VjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkgzNTJWMTQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYXJkRHJpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMkg0NDhjMzUuMyAwIDY0IDI4LjcgNjQgNjRWMjgwLjRjLTE3LTE1LjItMzkuNC0yNC40LTY0LTI0LjRINjRjLTI0LjYgMC00NyA5LjItNjQgMjQuNFY5NnpNNjQgMjg4SDQ0OGMzNS4zIDAgNjQgMjguNyA2NCA2NHY2NGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMzUyYzAtMzUuMyAyOC43LTY0IDY0LTY0ek0zMjAgNDE2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTI4LTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhc2h0YWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTgxLjMgMzIuNGMxNy40IDIuOSAyOS4yIDE5LjQgMjYuMyAzNi44TDE5Ny44IDEyOGg5NS4xbDExLjUtNjkuM2MyLjktMTcuNCAxOS40LTI5LjIgMzYuOC0yNi4zczI5LjIgMTkuNCAyNi4zIDM2LjhMMzU3LjggMTI4SDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzNDcuMUwzMjUuOCAzMjBIMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMxNS4xbC0xMS41IDY5LjNjLTIuOSAxNy40LTE5LjQgMjkuMi0zNi44IDI2LjNzLTI5LjItMTkuNC0yNi4zLTM2LjhsOS44LTU4LjdIMTU1LjFsLTExLjUgNjkuM2MtMi45IDE3LjQtMTkuNCAyOS4yLTM2LjggMjYuM3MtMjkuMi0xOS40LTI2LjMtMzYuOEw5MC4yIDM4NEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmg2OC45bDIxLjMtMTI4SDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDY4LjlsMTEuNS02OS4zYzIuOS0xNy40IDE5LjQtMjkuMiAzNi44LTI2LjN6TTE4Ny4xIDE5MkwxNjUuOCAzMjBoOTUuMWwyMS4zLTEyOEgxODcuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGF0Q293Ym95U2lkZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTIuNyAxMzUuOWwtMTAuNCA1Ny4yYzYuOC0uNyAxMy42LTEuMSAyMC41LTEuMWgxMC43YzM5LjQgMCA3Ny44IDEyLjEgMTEwLjEgMzQuN0w1NjIuNCA0MjEuOGwzNS4xIDI0LjZjMjQuNC02IDQyLjUtMjguMSA0Mi41LTU0LjRjMC03NS44LTk0LjctMTI2LjYtMTM0LjYtMTQ0LjdMNDc0IDgzLjlDNDY4LjIgNTMuOCA0NDEuOCAzMiA0MTEuMSAzMmgtMi43Yy01LjYgMC0xMS4xIC43LTE2LjUgMi4yTDE5OS4yIDg1LjVjLTIzLjkgNi40LTQyIDI2LTQ2LjUgNTAuNHpNMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRINTQ0TDI2NS4zIDI1Mi45Yy0yNi45LTE4LjgtNTguOS0yOC45LTkxLjgtMjguOUgxNjIuOWMtNjAuNiAwLTExNiAzNC4yLTE0My4xIDg4LjRMMTMuNSAzMjVDNC42IDM0Mi43IDAgMzYyLjMgMCAzODIuMlYzODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhdENvd2JveSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgNjRjMTQuNCAwIDIyLjMtNyAzMC44LTE0LjRDMzYwLjQgNDEuMSAzNzAuNyAzMiAzOTIgMzJjNDkuMyAwIDg0LjQgMTUyLjIgOTcuOSAyMjEuOUM0NDcuOCAyNzIuMSAzOTAuOSAyODggMzIwIDI4OHMtMTI3LjgtMTUuOS0xNjkuOS0zNC4xQzE2My42IDE4NC4yIDE5OC43IDMyIDI0OCAzMmMyMS4zIDAgMzEuNiA5LjEgNDEuMiAxNy42QzI5Ny43IDU3IDMwNS42IDY0IDMyMCA2NHpNMTExLjEgMjcwLjdjNDcuMiAyNC41IDExNy41IDQ5LjMgMjA5IDQ5LjNzMTYxLjgtMjQuOCAyMDguOS00OS4zYzI0LjgtMTIuOSA0OS44LTI4LjMgNzAuMS00Ny43YzcuOS03LjkgMjAuMi05LjIgMjkuNi0zLjNjOS41IDUuOSAxMy41IDE3LjkgOS45IDI4LjVjLTEzLjUgMzcuNy0zOC40IDcyLjMtNjYuMSAxMDAuNkM1MjMuNyAzOTguOSA0NDMuNiA0NDggMzIwIDQ0OHMtMjAzLjYtNDkuMS0yNTIuNS05OS4yQzM5LjggMzIwLjQgMTQuOSAyODUuOCAxLjQgMjQ4LjFjLTMuNi0xMC42IC40LTIyLjYgOS45LTI4LjVjOS41LTUuOSAyMS43LTQuNSAyOS42IDMuM2MyMC40IDE5LjQgNDUuMyAzNC44IDcwLjEgNDcuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGF0V2l6YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDQxNkwxNjguNiAxODAuN2MxNS4zLTM0LjQgNDAuMy02My41IDcyLTgzLjdsMTQ2LjktOTRjMy0xLjkgNi41LTIuOSAxMC0yLjlDNDA3LjcgMCA0MTYgOC4zIDQxNiAxOC42djEuNmMwIDIuNi0uNSA1LjEtMS40IDcuNUwzNTQuOCAxNzYuOWMtMS45IDQuNy0yLjggOS43LTIuOCAxNC43YzAgNS41IDEuMiAxMSAzLjQgMTYuMUw0NDggNDE2SDI0MC45bDExLjgtMzUuNCA0MC40LTEzLjVjNi41LTIuMiAxMC45LTguMyAxMC45LTE1LjJzLTQuNC0xMy0xMC45LTE1LjJsLTQwLjQtMTMuNS0xMy41LTQwLjRDMjM3IDI3Ni40IDIzMC45IDI3MiAyMjQgMjcycy0xMyA0LjQtMTUuMiAxMC45bC0xMy41IDQwLjQtNDAuNCAxMy41QzE0OC40IDMzOSAxNDQgMzQ1LjEgMTQ0IDM1MnM0LjQgMTMgMTAuOSAxNS4ybDQwLjQgMTMuNUwyMDcuMSA0MTZINjR6TTI3OS42IDE0MS41Yy0xLjEtMy4zLTQuMS01LjUtNy42LTUuNXMtNi41IDIuMi03LjYgNS41bC02LjcgMjAuMi0yMC4yIDYuN2MtMy4zIDEuMS01LjUgNC4xLTUuNSA3LjZzMi4yIDYuNSA1LjUgNy42bDIwLjIgNi43IDYuNyAyMC4yYzEuMSAzLjMgNC4xIDUuNSA3LjYgNS41czYuNS0yLjIgNy42LTUuNWw2LjctMjAuMiAyMC4yLTYuN2MzLjMtMS4xIDUuNS00LjEgNS41LTcuNnMtMi4yLTYuNS01LjUtNy42bC0yMC4yLTYuNy02LjctMjAuMnpNMzIgNDQ4SDQ4MGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhZFNpZGVDb3VnaFNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAzMjUuOGw0NCAzNC41YzguMSAxLjQgMTQuOCA2LjggMTggMTQuMUw1NTIuOSA0MDhjMTAuNiAuNCAxOS41IDcuNiAyMi4yIDE3LjRsMzkuMSAzMC42Yy42IDAgMS4yLS4xIDEuOC0uMWMxMS4xIDAgMjAuNCA3LjUgMjMuMiAxNy44aC0zLjljNi4yIDguNSA2LjQgMjAuNC0uNCAyOWMtOC4yIDEwLjQtMjMuMyAxMi4zLTMzLjcgNC4xTDkuMiA0Mi45Qy0xLjIgMzQuNy0zLjEgMTkuNiA1LjEgOS4yUzI4LjQtMy4xIDM4LjggNS4xTDg5LjYgNDQuOUMxMjcgMTYuNyAxNzMuNSAwIDIyNCAwaDI0Yzk1LjIgMCAxODEuMiA2OS4zIDE5Ny4zIDE2MC4yYzIuMyAxMyA2LjggMjUuNyAxNS4xIDM2bDQyIDUyLjZjNi4yIDcuOCA5LjYgMTcuNCA5LjYgMjcuNGMwIDI0LjItMTkuNiA0My44LTQzLjggNDMuOEg0NDh2MCA1Ljh6TTAgMjI0LjJjMC0zOC43IDkuOC03NS4xIDI3LjEtMTA2LjlMMzQxLjggMzY1LjNsLTIuNSAuM2MtMTEgMS40LTE5LjIgMTAuNy0xOS4yIDIxLjhjMCAxMS42IDkgMjEuMiAyMC42IDIxLjlsNjIgMy45IDQzIDMzLjlDNDM5LjMgNDY2LjIgNDIxLjIgNDgwIDQwMCA0ODBIMzIwdjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRIMjU2djBIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQwNy4zYzAtMTYuNy02LjktMzIuNS0xNy4xLTQ1LjhDMTYuNiAzMjIuNCAwIDI3NC4xIDAgMjI0LjJ6TTYxNiAzNjBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0tNjQtNDhhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em00MC0yNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFkU2lkZUNvdWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjI0LjJDMCAxMDAuNiAxMDAuMiAwIDIyNCAwaDI0Yzk1LjIgMCAxODEuMiA2OS4zIDE5Ny4zIDE2MC4yYzIuMyAxMyA2LjggMjUuNyAxNS4xIDM2bDQyIDUyLjZjNi4yIDcuOCA5LjYgMTcuNCA5LjYgMjcuNGMwIDI0LjItMTkuNiA0My44LTQzLjggNDMuOEg0NDh2MCAzMkwzMzkuMiAzNjUuNmMtMTEgMS40LTE5LjIgMTAuNy0xOS4yIDIxLjhjMCAxMS42IDkgMjEuMiAyMC42IDIxLjlMNDQ4IDQxNnYxNmMwIDI2LjUtMjEuNSA0OC00OCA0OEgzMjB2OGMwIDEzLjMtMTAuNyAyNC0yNCAyNEgyNTZ2MEg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDA3LjNjMC0xNi43LTYuOS0zMi41LTE3LjEtNDUuOEMxNi42IDMyMi40IDAgMjc0LjEgMCAyMjQuMnptMzUyLS4yYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNNDY0IDM4NGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xNTItMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek01OTIgNDgwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTU1MiAzMTJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em00MC0yNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek01NTIgNDA4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhZFNpZGVNYXNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDIyNC4yYzAtMjIuMiAzLjItNDMuNiA5LjItNjMuOUwyNjIuMiAzMjFjLTQgOS41LTYuMiAyMC02LjIgMzFWNTEySDEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDA3LjNjMC0xNi43LTYuOS0zMi41LTE3LjEtNDUuOEM0OC42IDMyMi40IDMyIDI3NC4xIDMyIDIyNC4yem0yNDguMyA3MC40TDUzIDEyOS4zQzg4LjcgNTMgMTY2LjIgMCAyNTYgMGgyNGM5NS4yIDAgMTgxLjIgNjkuMyAxOTcuMyAxNjAuMmMyLjMgMTMgNi44IDI1LjcgMTUuMSAzNmw0MiA1Mi42YzUuNCA2LjcgOC42IDE0LjggOS40IDIzLjJIMzM2Yy0yMS43IDAtNDEuMyA4LjYtNTUuNyAyMi42ek0zMzYgMzA0SDUzNGwwIDBoMTBsLTE5LjcgNjRIMzY4Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2SDUxNC41bC05LjggMzJIMzY4Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2SDQ5NC44bC0uOSAyLjhjLTguMyAyNi45LTMzLjEgNDUuMi02MS4yIDQ1LjJIMjg4VjM1MmMwLTE0IDYtMjYuNyAxNS42LTM1LjRjMCAwIDAgMCAwIDBjOC41LTcuOCAxOS45LTEyLjYgMzIuNC0xMi42em00OC04MGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlYWRTaWRlVmlydXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyMjQuMkMwIDEwMC42IDEwMC4yIDAgMjI0IDBoMjRjOTUuMiAwIDE4MS4yIDY5LjMgMTk3LjMgMTYwLjJjMi4zIDEzIDYuOCAyNS43IDE1LjEgMzZsNDIgNTIuNmM2LjIgNy44IDkuNiAxNy40IDkuNiAyNy40YzAgMjQuMi0xOS42IDQzLjgtNDMuOCA0My44SDQ0OHY2NGMwIDM1LjMtMjguNyA2NC02NCA2NEgzMjB2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQwNy4zYzAtMTYuNy02LjktMzIuNS0xNy4xLTQ1LjhDMTYuNiAzMjIuNCAwIDI3NC4xIDAgMjI0LjJ6TTIyNCA2NGMtOC44IDAtMTYgNy4yLTE2IDE2YzAgMzMtMzkuOSA0OS41LTYzLjIgMjYuMmMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNkMxNDUuNSAxNTIuMSAxMjkgMTkyIDk2IDE5MmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmMzMyAwIDQ5LjUgMzkuOSAyNi4yIDYzLjJjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMEMxNjguMSAyODYuNSAyMDggMzAzIDIwOCAzMzZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmMwLTMzIDM5LjktNDkuNSA2My4yLTI2LjJjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42QzMwMi41IDI2My45IDMxOSAyMjQgMzUyIDIyNGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmMtMzMgMC00OS41LTM5LjktMjYuMi02My4yYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBDMjc5LjkgMTI5LjUgMjQwIDExMyAyNDAgODBjMC04LjgtNy4yLTE2LTE2LTE2em0tMjQgOTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em00MCA4MGExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJIODBoNDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMTEyVjIwOEgzMzZWOTZIMzIwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDQ4IDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDQwMFYyNDAgNDE2aDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDM2OCAzMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJoMTZWMjcySDExMlY0MTZoMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIODAgMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJINDhWMjQwIDk2SDMyQzE0LjMgOTYgMCA4MS43IDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlYWRwaG9uZXNTaW1wbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDgwQzE0MS4xIDgwIDQ4IDE3My4xIDQ4IDI4OFYzOTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMjg4QzAgMTQ2LjYgMTE0LjYgMzIgMjU2IDMyczI1NiAxMTQuNiAyNTYgMjU2VjM5MmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYyODhjMC0xMTQuOS05My4xLTIwOC0yMDgtMjA4ek04MCAzNTJjMC0zNS4zIDI4LjctNjQgNjQtNjRoMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE0NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMzUyem0yODgtNjRjMzUuMyAwIDY0IDI4LjcgNjQgNjR2NjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRIMzUyYy0xNy43IDAtMzItMTQuMy0zMi0zMlYzMjBjMC0xNy43IDE0LjMtMzIgMzItMzJoMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlYWRwaG9uZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDgwQzE0OS45IDgwIDYyLjQgMTU5LjQgNDkuNiAyNjJjOS40LTMuOCAxOS42LTYgMzAuNC02YzI2LjUgMCA0OCAyMS41IDQ4IDQ4VjQzMmMwIDI2LjUtMjEuNSA0OC00OCA0OGMtNDQuMiAwLTgwLTM1LjgtODAtODBWMzg0IDMzNiAyODhDMCAxNDYuNiAxMTQuNiAzMiAyNTYgMzJzMjU2IDExNC42IDI1NiAyNTZ2NDggNDggMTZjMCA0NC4yLTM1LjggODAtODAgODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjMwNGMwLTI2LjUgMjEuNS00OCA0OC00OGMxMC44IDAgMjEgMi4xIDMwLjQgNkM0NDkuNiAxNTkuNCAzNjIuMSA4MCAyNTYgODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlYWRzZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDQ4QzE0MS4xIDQ4IDQ4IDE0MS4xIDQ4IDI1NnY0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYyNTZDMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2VjQwMC4xYzAgNDguNi0zOS40IDg4LTg4LjEgODhMMzEzLjYgNDg4Yy04LjMgMTQuMy0yMy44IDI0LTQxLjYgMjRIMjQwYy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4aDMyYzE3LjggMCAzMy4zIDkuNyA0MS42IDI0bDExMC40IC4xYzIyLjEgMCA0MC0xNy45IDQwLTQwVjI1NmMwLTExNC45LTkzLjEtMjA4LTIwOC0yMDh6TTE0NCAyMDhoMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMzUyYzAgMTcuNy0xNC4zIDMyLTMyIDMySDE0NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMjcyYzAtMzUuMyAyOC43LTY0IDY0LTY0em0yMjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NHY0OGMwIDM1LjMtMjguNyA2NC02NCA2NEgzNTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjI0MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmgxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhcnRDaXJjbGVCb2x0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3LjYgMzAwLjRMMjI4LjMgNDY5LjFjNy41IDcgMTcuNCAxMC45IDI3LjcgMTAuOXMyMC4yLTMuOSAyNy43LTEwLjlsMi42LTIuNEMyNjcuMiA0MzguNiAyNTYgNDA0LjYgMjU2IDM2OGMwLTk3LjIgNzguOC0xNzYgMTc2LTE3NmMyOC4zIDAgNTUgNi43IDc4LjcgMTguNWMuOS02LjUgMS4zLTEzIDEuMy0xOS42di01LjhjMC02OS45LTUwLjUtMTI5LjUtMTE5LjQtMTQxQzM0NyAzNi41IDMwMC42IDUxLjQgMjY4IDg0TDI1NiA5NiAyNDQgODRjLTMyLjYtMzIuNi03OS00Ny41LTEyNC42LTM5LjlDNTAuNSA1NS42IDAgMTE1LjIgMCAxODUuMXY1LjhjMCA0MS41IDE3LjIgODEuMiA0Ny42IDEwOS41ek00MzIgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNDcuOS0yMjVjNC4zIDMuNyA1LjQgOS45IDIuNiAxNC45TDQ1Mi40IDM1Nkg0ODhjNS4yIDAgOS44IDMuMyAxMS40IDguMnMtLjEgMTAuMy00LjIgMTMuNGwtOTYgNzJjLTQuNSAzLjQtMTAuOCAzLjItMTUuMS0uNnMtNS40LTkuOS0yLjYtMTQuOUw0MTEuNiAzODBIMzc2Yy01LjIgMC05LjgtMy4zLTExLjQtOC4ycy4xLTEwLjMgNC4yLTEzLjRsOTYtNzJjNC41LTMuNCAxMC44LTMuMiAxNS4xIC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFydENpcmNsZUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3LjYgMzAwLjRMMjI4LjMgNDY5LjFjNy41IDcgMTcuNCAxMC45IDI3LjcgMTAuOXMyMC4yLTMuOSAyNy43LTEwLjlsMi42LTIuNEMyNjcuMiA0MzguNiAyNTYgNDA0LjYgMjU2IDM2OGMwLTk3LjIgNzguOC0xNzYgMTc2LTE3NmMyOC4zIDAgNTUgNi43IDc4LjcgMTguNWMuOS02LjUgMS4zLTEzIDEuMy0xOS42di01LjhjMC02OS45LTUwLjUtMTI5LjUtMTE5LjQtMTQxQzM0NyAzNi41IDMwMC42IDUxLjQgMjY4IDg0TDI1NiA5NiAyNDQgODRjLTMyLjYtMzIuNi03OS00Ny41LTEyNC42LTM5LjlDNTAuNSA1NS42IDAgMTE1LjIgMCAxODUuMXY1LjhjMCA0MS41IDE3LjIgODEuMiA0Ny42IDEwOS41ek01NzYgMzY4YTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS03Ni43LTQzLjNjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTcyIDcyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEw0MTYgMzg1LjRsNjAuNy02MC43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFydENpcmNsZUV4Y2xhbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3LjYgMzAwLjRMMjI4LjMgNDY5LjFjNy41IDcgMTcuNCAxMC45IDI3LjcgMTAuOXMyMC4yLTMuOSAyNy43LTEwLjlsMi42LTIuNEMyNjcuMiA0MzguNiAyNTYgNDA0LjYgMjU2IDM2OGMwLTk3LjIgNzguOC0xNzYgMTc2LTE3NmMyOC4zIDAgNTUgNi43IDc4LjcgMTguNWMuOS02LjUgMS4zLTEzIDEuMy0xOS42di01LjhjMC02OS45LTUwLjUtMTI5LjUtMTE5LjQtMTQxQzM0NyAzNi41IDMwMC42IDUxLjQgMjY4IDg0TDI1NiA5NiAyNDQgODRjLTMyLjYtMzIuNi03OS00Ny41LTEyNC42LTM5LjlDNTAuNSA1NS42IDAgMTE1LjIgMCAxODUuMXY1LjhjMCA0MS41IDE3LjIgODEuMiA0Ny42IDEwOS41ek00MzIgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC05NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTAtMTQ0YzguOCAwIDE2IDcuMiAxNiAxNnY4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYyODhjMC04LjggNy4yLTE2IDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFydENpcmNsZU1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3LjYgMzAwLjRMMjI4LjMgNDY5LjFjNy41IDcgMTcuNCAxMC45IDI3LjcgMTAuOXMyMC4yLTMuOSAyNy43LTEwLjlsMi42LTIuNEMyNjcuMiA0MzguNiAyNTYgNDA0LjYgMjU2IDM2OGMwLTk3LjIgNzguOC0xNzYgMTc2LTE3NmMyOC4zIDAgNTUgNi43IDc4LjcgMTguNWMuOS02LjUgMS4zLTEzIDEuMy0xOS42di01LjhjMC02OS45LTUwLjUtMTI5LjUtMTE5LjQtMTQxQzM0NyAzNi41IDMwMC42IDUxLjQgMjY4IDg0TDI1NiA5NiAyNDQgODRjLTMyLjYtMzIuNi03OS00Ny41LTEyNC42LTM5LjlDNTAuNSA1NS42IDAgMTE1LjIgMCAxODUuMXY1LjhjMCA0MS41IDE3LjIgODEuMiA0Ny42IDEwOS41ek01NzYgMzY4YTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS02NCAwYzAgOC44LTcuMiAxNi0xNiAxNkgzNjhjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZINDk2YzguOCAwIDE2IDcuMiAxNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhcnRDaXJjbGVQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3LjYgMzAwLjRMMjI4LjMgNDY5LjFjNy41IDcgMTcuNCAxMC45IDI3LjcgMTAuOXMyMC4yLTMuOSAyNy43LTEwLjlsMi42LTIuNEMyNjcuMiA0MzguNiAyNTYgNDA0LjYgMjU2IDM2OGMwLTk3LjIgNzguOC0xNzYgMTc2LTE3NmMyOC4zIDAgNTUgNi43IDc4LjcgMTguNWMuOS02LjUgMS4zLTEzIDEuMy0xOS42di01LjhjMC02OS45LTUwLjUtMTI5LjUtMTE5LjQtMTQxQzM0NyAzNi41IDMwMC42IDUxLjQgMjY4IDg0TDI1NiA5NiAyNDQgODRjLTMyLjYtMzIuNi03OS00Ny41LTEyNC42LTM5LjlDNTAuNSA1NS42IDAgMTE1LjIgMCAxODUuMXY1LjhjMCA0MS41IDE3LjIgODEuMiA0Ny42IDEwOS41ek00MzIgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMTYtMjA4djQ4aDQ4YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDQ0OHY0OGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYzODRIMzY4Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2aDQ4VjMwNGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFydENpcmNsZVhtYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3LjYgMzAwLjRMMjI4LjMgNDY5LjFjNy41IDcgMTcuNCAxMC45IDI3LjcgMTAuOXMyMC4yLTMuOSAyNy43LTEwLjlsMi42LTIuNEMyNjcuMiA0MzguNiAyNTYgNDA0LjYgMjU2IDM2OGMwLTk3LjIgNzguOC0xNzYgMTc2LTE3NmMyOC4zIDAgNTUgNi43IDc4LjcgMTguNWMuOS02LjUgMS4zLTEzIDEuMy0xOS42di01LjhjMC02OS45LTUwLjUtMTI5LjUtMTE5LjQtMTQxQzM0NyAzNi41IDMwMC42IDUxLjQgMjY4IDg0TDI1NiA5NiAyNDQgODRjLTMyLjYtMzIuNi03OS00Ny41LTEyNC42LTM5LjlDNTAuNSA1NS42IDAgMTE1LjIgMCAxODUuMXY1LjhjMCA0MS41IDE3LjIgODEuMiA0Ny42IDEwOS41ek00MzIgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN0w0NTQuNiAzNjhsMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBMNDMyIDM5MC42bC0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZMNDA5LjQgMzY4bC0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEw0MzIgMzQ1LjRsMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhcnRDcmFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTkuNCA0NC4xYzIzLjMtMy45IDQ2LjgtMS45IDY4LjYgNS4zbDQ5LjggNzcuNS03NS40IDc1LjRjLTEuNSAxLjUtMi40IDMuNi0yLjMgNS44czEgNC4yIDIuNiA1LjdsMTEyIDEwNGMyLjkgMi43IDcuNCAyLjkgMTAuNSAuM3MzLjgtNyAxLjctMTAuNGwtNjAuNC05OC4xIDkwLjctNzUuNmMyLjYtMi4xIDMuNS01LjcgMi40LTguOEwyOTYuOCA2MS44YzI4LjUtMTYuNyA2Mi40LTIzLjIgOTUuNy0xNy42QzQ2MS41IDU1LjYgNTEyIDExNS4yIDUxMiAxODUuMXY1LjhjMCA0MS41LTE3LjIgODEuMi00Ny42IDEwOS41TDI4My43IDQ2OS4xYy03LjUgNy0xNy40IDEwLjktMjcuNyAxMC45cy0yMC4yLTMuOS0yNy43LTEwLjlMNDcuNiAzMDAuNEMxNy4yIDI3Mi4xIDAgMjMyLjQgMCAxOTAuOXYtNS44YzAtNjkuOSA1MC41LTEyOS41IDExOS40LTE0MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhcnRQdWxzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjguMyA0NjkuMUw0Ny42IDMwMC40Yy00LjItMy45LTguMi04LjEtMTEuOS0xMi40aDg3YzIyLjYgMCA0My0xMy42IDUxLjctMzQuNWwxMC41LTI1LjIgNDkuMyAxMDkuNWMzLjggOC41IDEyLjEgMTQgMjEuNCAxNC4xczE3LjgtNSAyMi0xMy4zTDMyMCAyNTMuN2wxLjcgMy40YzkuNSAxOSAyOC45IDMxIDUwLjEgMzFINDc2LjNjLTMuNyA0LjMtNy43IDguNS0xMS45IDEyLjRMMjgzLjcgNDY5LjFjLTcuNSA3LTE3LjQgMTAuOS0yNy43IDEwLjlzLTIwLjItMy45LTI3LjctMTAuOXpNNTAzLjcgMjQwaC0xMzJjLTMgMC01LjgtMS43LTcuMi00LjRsLTIzLjItNDYuM2MtNC4xLTguMS0xMi40LTEzLjMtMjEuNS0xMy4zcy0xNy40IDUuMS0yMS41IDEzLjNsLTQxLjQgODIuOEwyMDUuOSAxNTguMmMtMy45LTguNy0xMi43LTE0LjMtMjIuMi0xNC4xcy0xOC4xIDUuOS0yMS44IDE0LjhsLTMxLjggNzYuM2MtMS4yIDMtNC4yIDQuOS03LjQgNC45SDE2Yy0yLjYgMC01IC40LTcuMyAxLjFDMyAyMjUuMiAwIDIwOC4yIDAgMTkwLjl2LTUuOGMwLTY5LjkgNTAuNS0xMjkuNSAxMTkuNC0xNDFDMTY1IDM2LjUgMjExLjQgNTEuNCAyNDQgODRsMTIgMTIgMTItMTJjMzIuNi0zMi42IDc5LTQ3LjUgMTI0LjYtMzkuOUM0NjEuNSA1NS42IDUxMiAxMTUuMiA1MTIgMTg1LjF2NS44YzAgMTYuOS0yLjggMzMuNS04LjMgNDkuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDcuNiAzMDAuNEwyMjguMyA0NjkuMWM3LjUgNyAxNy40IDEwLjkgMjcuNyAxMC45czIwLjItMy45IDI3LjctMTAuOUw0NjQuNCAzMDAuNGMzMC40LTI4LjMgNDcuNi02OCA0Ny42LTEwOS41di01LjhjMC02OS45LTUwLjUtMTI5LjUtMTE5LjQtMTQxQzM0NyAzNi41IDMwMC42IDUxLjQgMjY4IDg0TDI1NiA5NiAyNDQgODRjLTMyLjYtMzIuNi03OS00Ny41LTEyNC42LTM5LjlDNTAuNSA1NS42IDAgMTE1LjIgMCAxODUuMXY1LjhjMCA0MS41IDE3LjIgODEuMiA0Ny42IDEwOS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWxpY29wdGVyU3ltYm9sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0NS4zIDIyNEg1MTBDNDk1LjYgMTA4LjIgNDAzLjggMTYuNCAyODggMlY2Ni43QzM2OC40IDgwLjEgNDMxLjkgMTQzLjYgNDQ1LjMgMjI0ek01MTAgMjg4SDQ0NS4zQzQzMS45IDM2OC40IDM2OC40IDQzMS45IDI4OCA0NDUuNFY1MTBjMTE1LjgtMTQuNCAyMDcuNi0xMDYuMiAyMjItMjIyek0yIDI4OEMxNi40IDQwMy44IDEwOC4yIDQ5NS42IDIyNCA1MTBWNDQ1LjRDMTQzLjYgNDMxLjkgODAuMSAzNjguNCA2Ni43IDI4OEgyem0wLTY0SDY2LjdDODAuMSAxNDMuNiAxNDMuNiA4MC4xIDIyNCA2Ni43VjJDMTA4LjIgMTYuNCAxNi40IDEwOC4yIDIgMjI0em0yMDYtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMjg4aDk2djY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjY0SDIwOFYxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlbGljb3B0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMySDU0NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzODR2NjRoMzJjODguNCAwIDE2MCA3MS42IDE2MCAxNjB2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJIMzg0IDMyMGMtMjAuMSAwLTM5LjEtOS41LTUxLjItMjUuNmwtNzEuNC05NS4yYy0zLjUtNC43LTguMy04LjMtMTMuNy0xMC41TDQ3LjIgMTk4LjFjLTkuNS0zLjgtMTYuNy0xMi0xOS4yLTIyTDUgODMuOUMyLjQgNzMuOCAxMC4xIDY0IDIwLjUgNjRINDhjMTAuMSAwIDE5LjYgNC43IDI1LjYgMTIuOEwxMTIgMTI4SDMyMFY2NEgxNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0zODQgMzIwSDUxMlYyODhjMC01My00My05Ni05Ni05NkgzODRWMzIwek02MzAuNiA0MjUuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMy45IDMuOWMtMjQgMjQtNTYuNiAzNy41LTkwLjUgMzcuNUgyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJINTM2LjJjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdsMy45LTMuOWMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVsbWV0U2FmZXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mi4zIDk5LjZjMCA1LjYtNC41IDEwLjEtMTAuMSAxMC4xYy0zLjYgMC03LTEuOS04LjgtNS4xTDE1Ny4xIDg3QzgzIDEyMy41IDMyIDE5OS44IDMyIDI4OHY2NEg1NDRsMC02Ni40Yy0uOS04Ny4yLTUxLjctMTYyLjQtMTI1LjEtMTk4LjZsLTQ4IDgzLjljLTEuOCAzLjItNS4yIDUuMS04LjggNS4xYy01LjYgMC0xMC4xLTQuNS0xMC4xLTEwLjFWNjYuMyA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgyNTZ6TTE2LjYgMzg0QzcuNCAzODQgMCAzOTEuNCAwIDQwMC42YzAgNC43IDIgOS4yIDUuOCAxMS45QzI3LjUgNDI4LjQgMTExLjggNDgwIDI4OCA0ODBzMjYwLjUtNTEuNiAyODIuMi02Ny41YzMuOC0yLjggNS44LTcuMiA1LjgtMTEuOWMwLTkuMi03LjQtMTYuNi0xNi42LTE2LjZIMTYuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVsbWV0VW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDc5LjUgMjI0QzQ3MS4yIDk4LjkgMzY3LjIgMCAyNDAgMEMxMDcuNSAwIDAgMTA3LjUgMCAyNDB2NTYuM0MwIDM0NC44IDM5LjIgMzg0IDg3LjcgMzg0SDIwMGgxNC45TDM0My41IDUwNS40YzQuNSA0LjIgMTAuNCA2LjYgMTYuNSA2LjZoOTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMzY5LjVsLTEuNS0xLjVWMjg4aDgwIDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyaC0uNXpNMzIwIDQxNy4ybC03OC03My43TDI3NC40IDI4OEgzMjBWNDE3LjJ6TTI4NS4zIDEwMy4xbDM0LjcgNTJWMTEyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ2OTZjMCA3LjEtNC42IDEzLjMtMTEuNCAxNS4zcy0xNC0uNi0xNy45LTYuNGwtMzQuNy01MlYyMDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMTEyYzAtNy4xIDQuNi0xMy4zIDExLjQtMTUuM3MxNCAuNiAxNy45IDYuNHpNMTYwIDExMnY2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjExMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4VjExMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIaWdobGlnaHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTUgMzE1bDE1OC40LTIxNUw0NDQuMSA3MC42IDIyOSAyMjkgMzE1IDMxNXptLTE4NyA1bDAgMFYyNDguM2MwLTE1LjMgNy4yLTI5LjYgMTkuNS0zOC42TDQyMC42IDguNEM0MjggMi45IDQzNyAwIDQ0Ni4yIDBjMTEuNCAwIDIyLjQgNC41IDMwLjUgMTIuNmw1NC44IDU0LjhjOC4xIDguMSAxMi42IDE5IDEyLjYgMzAuNWMwIDkuMi0yLjkgMTguMi04LjQgMjUuNkwzMzQuNCAzOTYuNWMtOSAxMi4zLTIzLjQgMTkuNS0zOC42IDE5LjVIMjI0bC0yNS40IDI1LjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC01MC43LTUwLjdjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zTDEyOCAzMjB6TTcgNDY2LjNsNjMtNjMgNzAuNiA3MC42LTMxIDMxYy00LjUgNC41LTEwLjYgNy0xNyA3SDI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHYtNC43YzAtNi40IDIuNS0xMi41IDctMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhpbGxBdmFsYW5jaGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM5LjcgNDAxLjljMzQuMiAyMy4xIDgxLjEgMTkuNSAxMTEuNC0xMC44YzM0LjQtMzQuNCAzNC40LTkwLjEgMC0xMjQuNGMtMjcuOC0yNy44LTY5LjUtMzMuMS0xMDIuNi0xNmMtMTEuOCA2LjEtMTYuNCAyMC42LTEwLjMgMzIuM3MyMC42IDE2LjQgMzIuMyAxMC4zYzE1LjEtNy44IDM0LTUuMyA0Ni42IDcuM2MxNS42IDE1LjYgMTUuNiA0MC45IDAgNTYuNnMtNDAuOSAxNS42LTU2LjYgMGwtODEuNy04MS43QzQwMS4yIDI2MS4zIDQxNiAyMzYuNCA0MTYgMjA4YzAtMzMuOS0yMS4xLTYyLjktNTAuOS03NC41YzEuOS02LjggMi45LTE0IDIuOS0yMS41YzAtNDQuMi0zNS44LTgwLTgwLTgwYy0yNy4zIDAtNTEuNSAxMy43LTY1LjkgMzQuNkMyMTYuMyA0Ni42IDE5Ny45IDMyIDE3NiAzMmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhjMCA0IC41IDcuOSAxLjQgMTEuNkw0MzkuNyA0MDEuOXpNNDgwIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTAgMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNNjguMyA4N0M0My4xIDYxLjggMCA3OS43IDAgMTE1LjNWNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwSDM5Ni43YzM1LjYgMCA1My41LTQzLjEgMjguMy02OC4zTDY4LjMgODd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhpbGxSb2Nrc2xpZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjUyLjQgMTAzLjhsMjcgNDhjMi44IDUgOC4yIDguMiAxMy45IDguMmw1My4zIDBjNS44IDAgMTEuMS0zLjEgMTMuOS04LjJsMjctNDhjMi43LTQuOSAyLjctMTAuOCAwLTE1LjdsLTI3LTQ4Yy0yLjgtNS04LjItOC4yLTEzLjktOC4ySDI5My40Yy01LjggMC0xMS4xIDMuMS0xMy45IDguMmwtMjcgNDhjLTIuNyA0LjktMi43IDEwLjggMCAxNS43ek02OC4zIDg3QzQzLjEgNjEuOCAwIDc5LjcgMCAxMTUuM1Y0MzJjMCA0NC4yIDM1LjggODAgODAgODBIMzk2LjdjMzUuNiAwIDUzLjUtNDMuMSAyOC4zLTY4LjNMNjguMyA4N3pNNTA0LjIgNDAzLjZjNC45IDIuNyAxMC44IDIuNyAxNS43IDBsNDgtMjdjNS0yLjggOC4yLTguMiA4LjItMTMuOVYzMDkuNGMwLTUuOC0zLjEtMTEuMS04LjItMTMuOWwtNDgtMjdjLTQuOS0yLjctMTAuOC0yLjctMTUuNyAwbC00OCAyN2MtNSAyLjgtOC4yIDguMi04LjIgMTMuOXY1My4zYzAgNS44IDMuMSAxMS4xIDguMiAxMy45bDQ4IDI3ek0xOTIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzg0IDI4OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhpcHBvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwNyA0N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwxNy4yIDE3LjJjMS45LS4xIDMuOS0uMiA1LjgtLjJoMzJjMTEuMiAwIDIxLjkgMi4zIDMxLjYgNi41TDU0MyA1NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMNTY0IDEwMS45YzcuNiAxMi4yIDEyIDI2LjcgMTIgNDIuMWMwIDEwLjIgNy40IDE4LjggMTYuNyAyM2MyNy45IDEyLjUgNDcuMyA0MC41IDQ3LjMgNzNjMCAyNi4yLTEyLjYgNDkuNC0zMiA2NHYzMmMwIDguOC03LjIgMTYtMTYgMTZINTYwYy04LjggMC0xNi03LjItMTYtMTZWMzIwSDQ4MHYxNmMwIDguOC03LjIgMTYtMTYgMTZINDMyYy04LjggMC0xNi03LjItMTYtMTZWMzE4LjRjLTExLjgtMi40LTIyLjctNy40LTMyLTE0LjRjLTEuNS0xLjEtMi45LTIuMy00LjMtMy41Yy0xNy0xNC43LTI3LjctMzYuNC0yNy43LTYwLjVjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZjMCA0NC43IDI2LjIgODMuMiA2NCAxMDEuMlYzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzJ2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJIMzUyYy0xNy43IDAtMzItMTQuMy0zMi0zMlYzNzJjLTE5LjggNy43LTQxLjQgMTItNjQgMTJzLTQ0LjItNC4zLTY0LTEydjc2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYzMjkuMUw0NS45IDM2OS43Yy01LjQgMTIuMS0xOS42IDE3LjYtMzEuNyAxMi4yUy0zLjMgMzYyLjQgMi4xIDM1MC4zTDI0IDMwMC45YzUuMy0xMS45IDgtMjQuNyA4LTM3LjdDMzIgMTU1LjcgMTE3LjIgNjggMjIzLjggNjQuMWwuMi0uMWg3LjJIMjU2aDMyYzQxLjcgMCA4My40IDEyLjEgMTE3LjIgMjUuN2MxLjctMS44IDMuNS0zLjYgNS4zLTUuMkw0MDcgODFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45em03MyAxODVhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptODggMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4ek00ODAgMTQ0YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTQ4IDE2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG9ja2V5UHVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMjU2QzExNC42IDI1NiAwIDIxMyAwIDE2MHMxMTQuNi05NiAyNTYtOTZzMjU2IDQzIDI1NiA5NnMtMTE0LjYgOTYtMjU2IDk2em0xOTIuMyAxLjhjMjQuNy05LjMgNDYuOS0yMSA2My43LTM1LjZWMzUyYzAgNTMtMTE0LjYgOTYtMjU2IDk2UzAgNDA1IDAgMzUyVjIyMi4zYzE2LjggMTQuNiAzOSAyNi4zIDYzLjcgMzUuNkMxMTQuNSAyNzYuOSAxODIuNSAyODggMjU2IDI4OHMxNDEuNS0xMS4xIDE5Mi4zLTMwLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvbGx5QmVycnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptLTgwIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMjc2LjggMzgzLjhjMSAuMSAyLjEgLjIgMy4yIC4yYzM5LjggMCA3MiAzMi4yIDcyIDcydjIyLjdjMCAxNi40IDE2IDI3LjkgMzEuNiAyMi44bDEyLjgtNC4zYzE4LTYgMzcuMy02LjUgNTUuNi0xLjVsMTkuNCA1LjNjMTcuOSA0LjkgMzQuNC0xMS42IDI5LjUtMjkuNUw0OTUuNiA0NTJjLTUtMTguMy00LjQtMzcuNiAxLjUtNTUuNmw0LjMtMTIuOGM1LjItMTUuNS02LjQtMzEuNi0yMi44LTMxLjZjLTM0LjYgMC02Mi43LTI4LjEtNjIuNy02Mi43di0zMmMwLTE2LjQtMTYtMjcuOS0zMS42LTIyLjhsLTEyLjggNC4zYy0xOCA2LTM3LjMgNi41LTU1LjYgMS41bC0yOS42LTguMWMtMi45LS44LTUuOS0xLTguNy0uN2M0LjIgOS43IDUuOCAyMC44IDMuNyAzMi4zTDI3NSAyOTguN2MtMS41IDguNC0xLjQgMTcgLjUgMjUuM2w1LjMgMjMuOWMyLjggMTIuNyAxLjEgMjUuMi00IDM1Ljl6TTEyNy42IDIzNC41Yy0xNS41LTUuMi0zMS42IDYuNC0zMS42IDIyLjh2MzJDOTYgMzIzLjkgNjcuOSAzNTIgMzMuMyAzNTJjLTE2LjQgMC0yNy45IDE2LTIyLjggMzEuNmw0LjMgMTIuOGM2IDE4IDYuNSAzNy4zIDEuNSA1NS42bC01LjMgMTkuNEM2LjIgNDg5LjQgMjIuNiA1MDUuOCA0MC41IDUwMUw2MCA0OTUuNmMxOC4zLTUgMzcuNi00LjUgNTUuNiAxLjVsMTIuOCA0LjNjMTUuNSA1LjIgMzEuNi02LjQgMzEuNi0yMi44di0zMmMwLTM0LjYgMjguMS02Mi43IDYyLjctNjIuN2MxNi40IDAgMjcuOS0xNiAyMi44LTMxLjZsLTQuMy0xMi44Yy02LTE4LTYuNS0zNy4zLTEuNS01NS42bDUuMy0xOS40YzQuOS0xNy45LTExLjYtMzQuNC0yOS41LTI5LjVMMTk2IDI0MC40Yy0xOC4zIDUtMzcuNiA0LjQtNTUuNi0xLjVsLTEyLjgtNC4zek0zODQgMTQ0YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvcnNlSGVhZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA0NjRWMzE2LjljMC0xMDguNCA2OC4zLTIwNS4xIDE3MC41LTI0MS4zTDQwNC4yIDE1LjVDNDI1LjYgNy45IDQ0OCAyMy44IDQ0OCA0Ni40YzAgMTEtNS41IDIxLjItMTQuNiAyNy4zTDQwMCA5NmM0OC4xIDAgOTEuMiAyOS44IDEwOC4xIDc0LjlsNDguNiAxMjkuNWMxMS44IDMxLjQgNC4xIDY2LjgtMTkuNiA5MC41Yy0xNiAxNi0zNy44IDI1LjEtNjAuNSAyNS4xaC0zLjRjLTI2LjEgMC01MC45LTExLjYtNjcuNi0zMS43bC0zMi4zLTM4LjdjLTExLjcgNC4xLTI0LjIgNi40LTM3LjMgNi40bC0uMSAwIDAgMGMtNi4zIDAtMTIuNS0uNS0xOC42LTEuNWMtMy42LS42LTcuMi0xLjQtMTAuNy0yLjNsMCAwYy0yOC45LTcuOC01My4xLTI2LjgtNjcuOC01Mi4yYy00LjQtNy42LTE0LjItMTAuMy0yMS45LTUuOHMtMTAuMyAxNC4yLTUuOCAyMS45YzI0IDQxLjUgNjguMyA3MCAxMTkuMyA3MS45bDQ3LjIgNzAuOGM0IDYuMSA2LjIgMTMuMiA2LjIgMjAuNGMwIDIwLjMtMTYuNSAzNi44LTM2LjggMzYuOEgxMTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4ek0zOTIgMjI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG9yc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDIzOC4xVjE2MGgxNmw5LjggMTkuNmMxMi41IDI1LjEgNDIuMiAzNi40IDY4LjMgMjZjMjAuNS04LjIgMzMuOS0yOCAzMy45LTUwLjFWODBjMC0xOS4xLTguNC0zNi4zLTIxLjctNDhINTYwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDQ4MCA0NDhDMzc3LjMgMCAzMjAgNTcuMyAzMjAgMTI4SDIyNCAyMDMuMiAxNDguOGMtMzAuNyAwLTU3LjYgMTYuMy03Mi41IDQwLjhDMzMuMiAxNzQuNSAwIDIxMS40IDAgMjU2djU2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMjU2YzAtMTMuNCA2LjYtMjUuMiAxNi43LTMyLjVjMS42IDEzIDYuMyAyNS40IDEzLjYgMzYuNGwyOC4yIDQyLjRjOC4zIDEyLjQgNi40IDI4LjctMS4yIDQxLjZjLTE2LjUgMjgtMjAuNiA2Mi4yLTEwIDkzLjlsMTcuNSA1Mi40YzQuNCAxMy4xIDE2LjYgMjEuOSAzMC40IDIxLjloMzMuN2MyMS44IDAgMzcuMy0yMS40IDMwLjQtNDIuMWwtMjAuOC02Mi41Yy0yLjEtNi40LS41LTEzLjQgNC4zLTE4LjJsMTIuNy0xMi43YzEzLjItMTMuMiAyMC42LTMxLjEgMjAuNi00OS43YzAtMi4zLS4xLTQuNi0uMy02LjlsODQgMjRjNC4xIDEuMiA4LjIgMi4xIDEyLjMgMi44VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTUuN2MxOS4yLTE5LjIgMzEuNS00NS43IDMyLTc1LjdoMHYtMS45ek00OTYgNjRhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3NwaXRhbFVzZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggMEMyMS41IDAgMCAyMS41IDAgNDhWMjU2SDE0NGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgwdjY0SDE0NGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgwdjgwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDI2NS45Yy02LjMtMTAuMi05LjktMjIuMi05LjktMzUuMWMwLTQ2LjkgMjUuOC04Ny44IDY0LTEwOS4yVjI3MS44IDQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4ek0xNTIgNjRoMTZjOC44IDAgMTYgNy4yIDE2IDE2djI0aDI0YzguOCAwIDE2IDcuMiAxNiAxNnYxNmMwIDguOC03LjIgMTYtMTYgMTZIMTg0djI0YzAgOC44LTcuMiAxNi0xNiAxNkgxNTJjLTguOCAwLTE2LTcuMi0xNi0xNlYxNTJIMTEyYy04LjggMC0xNi03LjItMTYtMTZWMTIwYzAtOC44IDcuMi0xNiAxNi0xNmgyNFY4MGMwLTguOCA3LjItMTYgMTYtMTZ6TTUxMiAyNzJhODAgODAgMCAxIDAgLTE2MCAwIDgwIDgwIDAgMSAwIDE2MCAwek0yODggNDc3LjFjMCAxOS4zIDE1LjYgMzQuOSAzNC45IDM0LjlINTQxLjFjMTkuMyAwIDM0LjktMTUuNiAzNC45LTM0LjljMC01MS40LTQxLjctOTMuMS05My4xLTkzLjFIMzgxLjFjLTUxLjQgMC05My4xIDQxLjctOTMuMSA5My4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3NwaXRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgNDhjMC0yNi41IDIxLjUtNDggNDgtNDhINDAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4VjUxMkgzNjhWNDMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4djgwSDE5MlY0OHpNNDggOTZIMTYwVjUxMkg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMzIwSDgwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDBWMjI0SDgwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDBWMTQ0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em01NDQgMGMyNi41IDAgNDggMjEuNSA0OCA0OHY0OEg1NjBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZoODB2NjRINTYwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2aDgwVjQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0ODBWOTZINTkyek0zMTIgNjRjLTguOCAwLTE2IDcuMi0xNiAxNnYyNEgyNzJjLTguOCAwLTE2IDcuMi0xNiAxNnYxNmMwIDguOCA3LjIgMTYgMTYgMTZoMjR2MjRjMCA4LjggNy4yIDE2IDE2IDE2aDE2YzguOCAwIDE2LTcuMiAxNi0xNlYxNTJoMjRjOC44IDAgMTYtNy4yIDE2LTE2VjEyMGMwLTguOC03LjItMTYtMTYtMTZIMzQ0VjgwYzAtOC44LTcuMi0xNi0xNi0xNkgzMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdFR1YlBlcnNvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzIgMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR2NS4yYzAgMzQgMTQuNCA2Ni40IDM5LjcgODkuMmwxNi40IDE0LjhjMTUuMiAxMy43IDIzLjggMzMuMSAyMy44IDUzLjVWMjAwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMTg2LjhjMC0zNC0xNC40LTY2LjQtMzkuNy04OS4yTDI5NS44IDgyLjhDMjgwLjcgNjkuMSAyNzIgNDkuNyAyNzIgMjkuMlYyNHpNMCAzMjB2MTZWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFYzMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRIMjc3LjNjLTEzLjggMC0yNy4zLTQuNS0zOC40LTEyLjhsLTg1LjMtNjRDMTM3IDE2Ni43IDExNi44IDE2MCA5NiAxNjBjLTUzIDAtOTYgNDMtOTYgOTZ2NjR6bTEyOCAxNnY5NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYzMzZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnptODAtMTZjOC44IDAgMTYgNy4yIDE2IDE2djk2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjMzNmMwLTguOCA3LjItMTYgMTYtMTZ6bTExMiAxNnY5NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYzMzZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnptODAtMTZjOC44IDAgMTYgNy4yIDE2IDE2djk2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjMzNmMwLTguOCA3LjItMTYgMTYtMTZ6TTM2MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHY1LjJjMCAzNCAxNC40IDY2LjQgMzkuNyA4OS4ybDE2LjQgMTQuOGMxNS4yIDEzLjcgMjMuOCAzMy4xIDIzLjggNTMuNVYyMDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYxODYuOGMwLTM0LTE0LjQtNjYuNC0zOS43LTg5LjJMNDA3LjggODIuOEMzOTIuNyA2OS4xIDM4NCA0OS43IDM4NCAyOS4yVjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0ek02NCAxMjhBNjQgNjQgMCAxIDAgNjQgMGE2NCA2NCAwIDEgMCAwIDEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG90ZG9nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4OC42IDIzLjRjMzEuMiAzMS4yIDMxLjIgODEuOSAwIDExMy4xbC0zNTIgMzUyYy0zMS4yIDMxLjItODEuOSAzMS4yLTExMy4xIDBzLTMxLjItODEuOSAwLTExMy4xbDM1Mi0zNTJjMzEuMi0zMS4yIDgxLjktMzEuMiAxMTMuMSAwek00NDMuMyA5Mi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMGMtMTIuNSAxMi41LTIzLjggMTUuMS0zNy41IDE3LjZsLTIuNSAuNGMtMTMuOCAyLjUtMzEuNiA1LjYtNDggMjJjLTE2LjcgMTYuNy0yMC45IDM2LTI0LjEgNTAuOWwwIDB2MGwtLjIgMWMtMy40IDE1LjYtNiAyNi40LTE1LjcgMzYuMXMtMjAuNSAxMi4zLTM2LjEgMTUuN2wtMSAuMmMtMTQuOSAzLjItMzQuMiA3LjQtNTAuOSAyNC4xcy0yMC45IDM2LTI0LjEgNTAuOWwtLjIgMWMtMy40IDE1LjYtNiAyNi40LTE1LjcgMzYuMWMtOS4yIDkuMi0xOCAxMC44LTMyLjcgMTMuNGwwIDAtLjkgLjJjLTE1LjYgMi44LTM0LjkgNi45LTU0LjQgMjYuNGMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwYzEyLjUtMTIuNSAyMy44LTE1LjEgMzcuNS0xNy42bDIuNS0uNGMxMy44LTIuNSAzMS42LTUuNiA0OC0yMmMxNi43LTE2LjcgMjAuOS0zNiAyNC4xLTUwLjlsLjItMWMzLjQtMTUuNiA2LTI2LjQgMTUuNy0zNi4xczIwLjUtMTIuMyAzNi4xLTE1LjdsMS0uMmMxNC45LTMuMiAzNC4yLTcuNCA1MC45LTI0LjFzMjAuOS0zNiAyNC4xLTUwLjlsLjItMWMzLjQtMTUuNiA2LTI2LjQgMTUuNy0zNi4xYzkuMi05LjIgMTgtMTAuOCAzMi43LTEzLjRsLjktLjJjMTUuNi0yLjggMzQuOS02LjkgNTQuNC0yNi40YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42ek0xOTEuMiA0NzkuMmwyODgtMjg4TDQ5NSAyMDdjMTAuOSAxMC45IDE3IDI1LjYgMTcgNDFzLTYuMSAzMC4xLTE3IDQxTDI4OSA0OTVjLTEwLjkgMTAuOS0yNS42IDE3LTQxIDE3cy0zMC4xLTYuMS00MS0xN2wtMTUuOC0xNS44ek0xNyAzMDVDNi4xIDI5NC4xIDAgMjc5LjQgMCAyNjRzNi4xLTMwLjEgMTctNDFMMjIzIDE3QzIzMy45IDYuMSAyNDguNiAwIDI2NCAwczMwLjEgNi4xIDQxIDE3bDE1LjggMTUuOC0yODggMjg4TDE3IDMwNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG90ZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyVjQ0OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMDRWNDY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4djQ4SDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyVjY0QzE0LjMgNjQgMCA0OS43IDAgMzJ6bTk2IDgwdjMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMTEyYzAtOC44LTcuMi0xNi0xNi0xNkgxMTJjLTguOCAwLTE2IDcuMi0xNiAxNnpNMjQwIDk2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYxMTJjMC04LjgtNy4yLTE2LTE2LTE2SDI0MHptMTEyIDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMTEyYzAtOC44LTcuMi0xNi0xNi0xNkgzNjhjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTEyIDE5MmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMjA4YzAtOC44LTcuMi0xNi0xNi0xNkgxMTJ6bTExMiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjIwOGMwLTguOC03LjItMTYtMTYtMTZIMjQwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE0NC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMjA4YzAtOC44LTcuMi0xNi0xNi0xNkgzNjh6TTMyOCAzODRjMTMuMyAwIDI0LjMtMTAuOSAyMS0yMy44Yy0xMC42LTQxLjUtNDguMi03Mi4yLTkzLTcyLjJzLTgyLjUgMzAuNy05MyA3Mi4yYy0zLjMgMTIuOCA3LjggMjMuOCAyMSAyMy44SDMyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG91cmdsYXNzRW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRWNzVjMCA0Mi40IDE2LjkgODMuMSA0Ni45IDExMy4xTDE0Ni43IDI1NiA3OC45IDMyMy45QzQ4LjkgMzUzLjkgMzIgMzk0LjYgMzIgNDM3djExYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDY0IDMyMGgzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMlY0MzdjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xTDIzNy4zIDI1Nmw2Ny45LTY3LjljMzAtMzAgNDYuOS03MC43IDQ2LjktMTEzLjFWNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzIwIDY0IDMyek05NiA3NVY2NEgyODhWNzVjMCAyNS41LTEwLjEgNDkuOS0yOC4xIDY3LjlMMTkyIDIxMC43bC02Ny45LTY3LjlDMTA2LjEgMTI0LjkgOTYgMTAwLjQgOTYgNzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXJnbGFzc0hhbGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NFY3NWMwIDQyLjQgMTYuOSA4My4xIDQ2LjkgMTEzLjFMMTQ2LjcgMjU2IDc4LjkgMzIzLjlDNDguOSAzNTMuOSAzMiAzOTQuNiAzMiA0Mzd2MTFjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINjQgMzIwaDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyVjQzN2MwLTQyLjQtMTYuOS04My4xLTQ2LjktMTEzLjFMMjM3LjMgMjU2bDY3LjktNjcuOWMzMC0zMCA0Ni45LTcwLjcgNDYuOS0xMTMuMVY2NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMjAgNjQgMzJ6TTk2IDc1VjY0SDI4OFY3NWMwIDE5LTUuNiAzNy40LTE2IDUzSDExMmMtMTAuMy0xNS42LTE2LTM0LTE2LTUzem0xNiAzMDljMy41LTUuMyA3LjYtMTAuMyAxMi4xLTE0LjlMMTkyIDMwMS4zbDY3LjkgNjcuOWM0LjYgNC42IDguNiA5LjYgMTIuMSAxNC45SDExMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG91cmdsYXNzU3RhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NFY3NWMwIDQyLjQgMTYuOSA4My4xIDQ2LjkgMTEzLjFMMTQ2LjcgMjU2IDc4LjkgMzIzLjlDNDguOSAzNTMuOSAzMiAzOTQuNiAzMiA0Mzd2MTFjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINjQgMzIwaDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyVjQzN2MwLTQyLjQtMTYuOS04My4xLTQ2LjktMTEzLjFMMjM3LjMgMjU2bDY3LjktNjcuOWMzMC0zMCA0Ni45LTcwLjcgNDYuOS0xMTMuMVY2NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMjAgNjQgMzJ6TTI4OCA0Mzd2MTFIOTZWNDM3YzAtMjUuNSAxMC4xLTQ5LjkgMjguMS02Ny45TDE5MiAzMDEuM2w2Ny45IDY3LjljMTggMTggMjguMSA0Mi40IDI4LjEgNjcuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG91cmdsYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwSDY0IDMyMGgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMlY3NWMwIDQyLjQtMTYuOSA4My4xLTQ2LjkgMTEzLjFMMjM3LjMgMjU2bDY3LjkgNjcuOWMzMCAzMCA0Ni45IDcwLjcgNDYuOSAxMTMuMXYxMWMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMjAgNjQgMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJWNDM3YzAtNDIuNCAxNi45LTgzLjEgNDYuOS0xMTMuMUwxNDYuNyAyNTYgNzguOSAxODguMUM0OC45IDE1OC4xIDMyIDExNy40IDMyIDc1VjY0QzE0LjMgNjQgMCA0OS43IDAgMzJ6TTk2IDY0Vjc1YzAgMjUuNSAxMC4xIDQ5LjkgMjguMSA2Ny45TDE5MiAyMTAuN2w2Ny45LTY3LjljMTgtMTggMjguMS00Mi40IDI4LjEtNjcuOVY2NEg5NnptMCAzODRIMjg4VjQzN2MwLTI1LjUtMTAuMS00OS45LTI4LjEtNjcuOUwxOTIgMzAxLjNsLTY3LjkgNjcuOWMtMTggMTgtMjguMSA0Mi40LTI4LjEgNjcuOXYxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG91c2VDaGltbmV5Q3JhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTc1LjggMjU1LjVjMCAxOC0xNSAzMi4xLTMyIDMyLjFoLTMybC43IDE2MC4yYy4yIDM1LjUtMjguNSA2NC4zLTY0IDY0LjNIMzI2LjRMMjg4IDQ0OGw4MC44LTY3LjNjNy44LTYuNSA3LjYtMTguNi0uNC0yNC45TDI1MC42IDI2My4yYy0xNC42LTExLjUtMzMuOCA3LTIyLjggMjJMMjg4IDM2OGwtODUuNSA3MS4yYy02LjEgNS03LjUgMTMuOC0zLjUgMjAuNUwyMzAuNCA1MTJIMTI4LjFjLTM1LjMgMC02NC0yOC43LTY0LTY0VjI4Ny42SDMyYy0xOCAwLTMyLTE0LTMyLTMyLjFjMC05IDMtMTcgMTAtMjRMMjY2LjQgOGM3LTcgMTUtOCAyMi04czE1IDIgMjEgN0w0MTYgMTAwLjdWNjRjMC0xNy43IDE0LjMtMzIgMzItMzJoMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMTg1bDUyLjggNDYuNGM4IDcgMTIgMTUgMTEgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXNlQ2hpbW5leU1lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTc1LjggMjU1LjVjMCAxOC0xNSAzMi4xLTMyIDMyLjFoLTMybC43IDE2MC4yYy4yIDM1LjUtMjguNSA2NC4zLTY0IDY0LjNIMTI4LjFjLTM1LjMgMC02NC0yOC43LTY0LTY0VjI4Ny42SDMyYy0xOCAwLTMyLTE0LTMyLTMyLjFjMC05IDMtMTcgMTAtMjRMMjY2LjQgOGM3LTcgMTUtOCAyMi04czE1IDIgMjEgN0w0MTYgMTAwLjdWNjRjMC0xNy43IDE0LjMtMzIgMzItMzJoMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMTg1bDUyLjggNDYuNGM4IDcgMTIgMTUgMTEgMjR6TTI3MiAxOTJjLTguOCAwLTE2IDcuMi0xNiAxNnY0OEgyMDhjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoNDh2NDhjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzMjBoNDhjOC44IDAgMTYtNy4yIDE2LTE2VjI3MmMwLTguOC03LjItMTYtMTYtMTZIMzIwVjIwOGMwLTguOC03LjItMTYtMTYtMTZIMjcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZUNoaW1uZXlVc2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0My44IDI4Ny42YzE3IDAgMzItMTQgMzItMzIuMWMxLTktMy0xNy0xMS0yNEw1MTIgMTg1VjY0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzYuN0wzMDkuNSA3Yy02LTUtMTQtNy0yMS03cy0xNSAxLTIyIDhMMTAgMjMxLjVjLTcgNy0xMCAxNS0xMCAyNGMwIDE4IDE0IDMyLjEgMzIgMzIuMWgzMlY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRINDQ4LjVjMzUuNSAwIDY0LjItMjguOCA2NC02NC4zbC0uNy0xNjAuMmgzMnpNMjg4IDE2MGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNMTc2IDQwMGMwLTQ0LjIgMzUuOC04MCA4MC04MGg2NGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDguOC03LjIgMTYtMTYgMTZIMTkyYy04LjggMC0xNi03LjItMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXNlQ2hpbW5leVdpbmRvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzUuOCAyNTUuNWMwIDE4LTE1IDMyLjEtMzIgMzIuMWgtMzJsLjcgMTYwLjJjLjIgMzUuNS0yOC41IDY0LjMtNjQgNjQuM0gxMjguMWMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMjg3LjZIMzJjLTE4IDAtMzItMTQtMzItMzIuMWMwLTkgMy0xNyAxMC0yNEwyNjYuNCA4YzctNyAxNS04IDIyLThzMTUgMiAyMSA3TDQxNiAxMDAuN1Y2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMlYxODVsNTIuOCA0Ni40YzggNyAxMiAxNSAxMSAyNHpNMjQ4IDE5MmMtMTMuMyAwLTI0IDEwLjctMjQgMjR2ODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRoODBjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMjE2YzAtMTMuMy0xMC43LTI0LTI0LTI0SDI0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG91c2VDaGltbmV5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0My44IDI4Ny42YzE3IDAgMzItMTQgMzItMzIuMWMxLTktMy0xNy0xMS0yNEw1MTIgMTg1VjY0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzYuN0wzMDkuNSA3Yy02LTUtMTQtNy0yMS03cy0xNSAxLTIyIDhMMTAgMjMxLjVjLTcgNy0xMCAxNS0xMCAyNGMwIDE4IDE0IDMyLjEgMzIgMzIuMWgzMnY2OS43Yy0uMSAuOS0uMSAxLjgtLjEgMi44VjQ3MmMwIDIyLjEgMTcuOSA0MCA0MCA0MGgxNmMxLjIgMCAyLjQtLjEgMy42LS4yYzEuNSAuMSAzIC4yIDQuNSAuMkgxNjBoMjRjMjIuMSAwIDQwLTE3LjkgNDAtNDBWNDQ4IDM4NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmg2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnY2NCAyNGMwIDIyLjEgMTcuOSA0MCA0MCA0MGgyNCAzMi41YzEuNCAwIDIuOCAwIDQuMi0uMWMxLjEgLjEgMi4yIC4xIDMuMyAuMWgxNmMyMi4xIDAgNDAtMTcuOSA0MC00MFY0NTUuOGMuMy0yLjYgLjUtNS4zIC41LTguMWwtLjctMTYwLjJoMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXNlQ2lyY2xlQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwLjcgMzUyYzguMS04OS43IDgzLjUtMTYwIDE3NS4zLTE2MGM4LjkgMCAxNy42IC43IDI2LjEgMS45TDMwOS41IDdjLTYtNS0xNC03LTIxLTdzLTE1IDEtMjIgOEwxMCAyMzEuNWMtNyA3LTEwIDE1LTEwIDI0YzAgMTggMTQgMzIuMSAzMiAzMi4xaDMydjY5LjdjLS4xIC45LS4xIDEuOC0uMSAyLjhWNDcyYzAgMjIuMSAxNy45IDQwIDQwIDQwaDE2YzEuMiAwIDIuNC0uMSAzLjYtLjJjMS41IC4xIDMgLjIgNC41IC4ySDE2MGgyNGMyMi4xIDAgNDAtMTcuOSA0MC00MFY0NDggMzg0YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDY0bC43IDB6TTY0MCAzNjhhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTc2LjctNDMuM2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNzIgNzJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ4MCAzODUuNGw2MC43LTYwLjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXNlQ2lyY2xlRXhjbGFtYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwLjcgMzUyYzguMS04OS43IDgzLjUtMTYwIDE3NS4zLTE2MGM4LjkgMCAxNy42IC43IDI2LjEgMS45TDMwOS41IDdjLTYtNS0xNC03LTIxLTdzLTE1IDEtMjIgOEwxMCAyMzEuNWMtNyA3LTEwIDE1LTEwIDI0YzAgMTggMTQgMzIuMSAzMiAzMi4xaDMydjY5LjdjLS4xIC45LS4xIDEuOC0uMSAyLjhWNDcyYzAgMjIuMSAxNy45IDQwIDQwIDQwaDE2YzEuMiAwIDIuNC0uMSAzLjYtLjJjMS41IC4xIDMgLjIgNC41IC4ySDE2MGgyNGMyMi4xIDAgNDAtMTcuOSA0MC00MFY0NDggMzg0YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDY0bC43IDB6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTk2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMC0xNDRjOC44IDAgMTYgNy4yIDE2IDE2djgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjI4OGMwLTguOCA3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXNlQ2lyY2xlWG1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwLjcgMzUyYzguMS04OS43IDgzLjUtMTYwIDE3NS4zLTE2MGM4LjkgMCAxNy42IC43IDI2LjEgMS45TDMwOS41IDdjLTYtNS0xNC03LTIxLTdzLTE1IDEtMjIgOEwxMCAyMzEuNWMtNyA3LTEwIDE1LTEwIDI0YzAgMTggMTQgMzIuMSAzMiAzMi4xaDMydjY5LjdjLS4xIC45LS4xIDEuOC0uMSAyLjhWNDcyYzAgMjIuMSAxNy45IDQwIDQwIDQwaDE2YzEuMiAwIDIuNC0uMSAzLjYtLjJjMS41IC4xIDMgLjIgNC41IC4ySDE2MGgyNGMyMi4xIDAgNDAtMTcuOSA0MC00MFY0NDggMzg0YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDY0bC43IDB6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43TDUxOC42IDM2OGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEw0OTYgMzkwLjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkw0NzMuNCAzNjhsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ5NiAzNDUuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZUNyYWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0My44IDI4Ny42YzE3IDAgMzItMTQgMzItMzIuMWMxLTktMy0xNy0xMS0yNEwzMDkuNSA3Yy02LTUtMTQtNy0yMS03cy0xNSAxLTIyIDhMMTAgMjMxLjVjLTcgNy0xMCAxNS0xMCAyNGMwIDE4IDE0IDMyLjEgMzIgMzIuMWgzMlY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMjMwLjRsLTMxLjMtNTIuMmMtNC4xLTYuOC0yLjYtMTUuNSAzLjUtMjAuNUwyODggMzY4bC02MC4yLTgyLjhjLTEwLjktMTUgOC4yLTMzLjUgMjIuOC0yMmwxMTcuOSA5Mi42YzggNi4zIDguMiAxOC40IC40IDI0LjlMMjg4IDQ0OGwzOC40IDY0SDQ0OC41YzM1LjUgMCA2NC4yLTI4LjggNjQtNjQuM2wtLjctMTYwLjJoMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXNlRmlyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMzUwLjFsMCAxLjlIMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NCAyNGMwIDIyLjEtMTcuOSA0MC00MCA0MEgxNjAgMTI4LjFjLTEuNSAwLTMtLjEtNC41LS4yYy0xLjIgLjEtMi40IC4yLTMuNiAuMkgxMDRjLTIyLjEgMC00MC0xNy45LTQwLTQwVjM2MGMwLS45IDAtMS45IC4xLTIuOFYyODcuNkgzMmMtMTggMC0zMi0xNC0zMi0zMi4xYzAtOSAzLTE3IDEwLTI0TDI2Ni40IDhjNy03IDE1LTggMjItOHMxNSAyIDIxIDdMNDQ3LjMgMTI4LjFjLTEyLjMtMS0yNSAzLTM0LjggMTEuN2MtMzUuNCAzMS42LTY1LjYgNjcuNy04Ny4zIDEwMi44QzMwNC4zIDI3Ni41IDI4OCAzMTQuOSAyODggMzUwLjF6TTQ4MCA1MTJjLTg4LjQgMC0xNjAtNzEuNi0xNjAtMTYwYzAtNzYuNyA2Mi41LTE0NC43IDEwNy4yLTE3OS40YzUtMy45IDEwLjktNS44IDE2LjgtNS44YzcuOS0uMSAxNiAzLjEgMjIgOS4ybDQ2IDQ2IDExLjMtMTEuM2MxMS43LTExLjcgMzAuNi0xMi43IDQyLjMtMUM2MjQuNSAyNjggNjQwIDMyMC4yIDY0MCAzNTJjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjB6bTY0LTExMS44YzAtMzYuNS0zNy03My01NC44LTg4LjRjLTUuNC00LjctMTMuMS00LjctMTguNSAwQzQ1MyAzMjcuMSA0MTYgMzYzLjYgNDE2IDQwMC4yYzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXNlRmxhZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWMTkyIDUxMmg2NFYxOTJINjI0YzguOCAwIDE2LTcuMiAxNi0xNlY0OGMwLTguOC03LjItMTYtMTYtMTZINTEyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek00MTYgMTU5TDI3Ni44IDM5LjdjLTEyLTEwLjMtMjkuNy0xMC4zLTQxLjcgMGwtMjI0IDE5MkMxIDI0MC40LTIuNyAyNTQuNSAyIDI2Ny4xUzE4LjYgMjg4IDMyIDI4OEg2NFY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzg0YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMydjk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0LjdsLjIgMGgtMVYxNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXNlRmxvb2RXYXRlckNpcmNsZUFycm93UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDE0NEExNDQgMTQ0IDAgMSAwIDAgMTQ0YTE0NCAxNDQgMCAxIDAgMjg4IDB6TTE0MC43IDc2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBsNTYgNTZjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTU2IDU2Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42TDE2OS40IDE2MEg4MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmg4OS40TDE0MC43IDk5LjNjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42ek0zMjAgMTQ0YzAgNTcuMy0yNy40IDEwOC4yLTY5LjggMTQwLjNjMTEuOC0zLjYgMjMtOS40IDMzLTE2LjJjMjIuMS0xNS41IDUxLjYtMTUuNSA3My43IDBjMTguNCAxMi43IDM5LjYgMjAuMyA1OS4yIDIwLjNjMTkgMCA0MS4yLTcuOSA1OS4yLTIwLjNjMjMuOC0xNi43IDU1LjgtMTUuNCA3OC4xIDMuNGMyLjEgMS43IDQuMiAzLjMgNi41IDQuOWwtLjMtODQuNEg1NzZjMTMuOSAwIDI2LjEtOC45IDMwLjQtMjIuMXMtLjQtMjcuNi0xMS42LTM1LjhsLTE3Ni0xMjhDNDA3LjYtMiAzOTIuNC0yIDM4MS4yIDYuMUwzMDEgNjQuNGMxMi4xIDIzLjkgMTkgNTAuOSAxOSA3OS42em0xOC41IDE2NS45Yy0xMS4xLTcuOS0yNS45LTcuOS0zNyAwQzI3OSAzMjUuNCAyNTEuNSAzMzYgMjI0IDMzNmMtMjYuOSAwLTU1LjMtMTAuOC03Ny40LTI2LjFsMCAwYy0xMS45LTguNS0yOC4xLTcuOC0zOS4yIDEuN2MtMTQuNCAxMS45LTMyLjUgMjEtNTAuNiAyNS4yYy0xNy4yIDQtMjcuOSAyMS4yLTIzLjkgMzguNHMyMS4yIDI3LjkgMzguNCAyMy45YzI0LjUtNS43IDQ0LjktMTYuNSA1OC4yLTI1QzE1OC41IDM4OS43IDE5MSA0MDAgMjI0IDQwMGMzMS45IDAgNjAuNi05LjkgODAuNC0xOC45YzUuOC0yLjcgMTEuMS01LjMgMTUuNi03LjdjNC41IDIuNCA5LjcgNS4xIDE1LjYgNy43YzE5LjggOSA0OC42IDE4LjkgODAuNCAxOC45YzMzIDAgNjUuNS0xMC4zIDk0LjUtMjUuOGMxMy40IDguNCAzMy43IDE5LjMgNTguMiAyNWMxNy4yIDQgMzQuNC02LjcgMzguNC0yMy45cy02LjctMzQuNC0yMy45LTM4LjRjLTE4LjEtNC4yLTM2LjItMTMuMy01MC42LTI1LjJjLTExLjEtOS41LTI3LjMtMTAuMS0zOS4yLTEuN2wwIDBDNDcxLjQgMzI1LjIgNDQyLjkgMzM2IDQxNiAzMzZjLTI3LjUgMC01NS0xMC42LTc3LjUtMjYuMXptMCAxMTJjLTExLjEtNy45LTI1LjktNy45LTM3IDBDMjc5IDQzNy40IDI1MS41IDQ0OCAyMjQgNDQ4Yy0yNi45IDAtNTUuMy0xMC44LTc3LjQtMjYuMWwwIDBjLTExLjktOC41LTI4LjEtNy44LTM5LjIgMS43Yy0xNC40IDExLjktMzIuNSAyMS01MC42IDI1LjJjLTE3LjIgNC0yNy45IDIxLjItMjMuOSAzOC40czIxLjIgMjcuOSAzOC40IDIzLjljMjQuNS01LjcgNDQuOS0xNi41IDU4LjItMjVDMTU4LjUgNTAxLjcgMTkxIDUxMiAyMjQgNTEyYzMxLjkgMCA2MC42LTkuOSA4MC40LTE4LjljNS44LTIuNyAxMS4xLTUuMyAxNS42LTcuN2M0LjUgMi40IDkuNyA1LjEgMTUuNiA3LjdjMTkuOCA5IDQ4LjYgMTguOSA4MC40IDE4LjljMzMgMCA2NS41LTEwLjMgOTQuNS0yNS44YzEzLjQgOC40IDMzLjcgMTkuMyA1OC4yIDI1YzE3LjIgNCAzNC40LTYuNyAzOC40LTIzLjlzLTYuNy0zNC40LTIzLjktMzguNGMtMTguMS00LjItMzYuMi0xMy4zLTUwLjYtMjUuMmMtMTEuMS05LjQtMjcuMy0xMC4xLTM5LjItMS43bDAgMEM0NzEuNCA0MzcuMiA0NDIuOSA0NDggNDE2IDQ0OGMtMjcuNSAwLTU1LTEwLjYtNzcuNS0yNi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZUZsb29kV2F0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA2LjggNi4xQzI5NS42LTIgMjgwLjQtMiAyNjkuMiA2LjFsLTE3NiAxMjhjLTExLjIgOC4yLTE1LjkgMjIuNi0xMS42IDM1LjhTOTguMSAxOTIgMTEyIDE5MmgxNnY3M2MxLjcgMSAzLjMgMiA0LjkgMy4xYzE4IDEyLjQgNDAuMSAyMC4zIDU5LjIgMjAuM2MyMS4xIDAgNDItOC41IDU5LjItMjAuM2MyMi4xLTE1LjUgNTEuNi0xNS41IDczLjcgMGMxOC40IDEyLjcgMzkuNiAyMC4zIDU5LjIgMjAuM2MxOSAwIDQxLjItNy45IDU5LjItMjAuM2MxLjUtMSAzLTIgNC41LTIuOWwtLjMtNzMuMkg0NjRjMTMuOSAwIDI2LjEtOC45IDMwLjQtMjIuMXMtLjQtMjcuNi0xMS42LTM1LjhsLTE3Ni0xMjh6TTI2OS41IDMwOS45QzI0NyAzMjUuNCAyMTkuNSAzMzYgMTkyIDMzNmMtMjYuOSAwLTU1LjMtMTAuOC03Ny40LTI2LjFsMCAwYy0xMS45LTguNS0yOC4xLTcuOC0zOS4yIDEuN2MtMTQuNCAxMS45LTMyLjUgMjEtNTAuNiAyNS4yYy0xNy4yIDQtMjcuOSAyMS4yLTIzLjkgMzguNHMyMS4yIDI3LjkgMzguNCAyMy45YzI0LjUtNS43IDQ0LjktMTYuNSA1OC4yLTI1QzEyNi41IDM4OS43IDE1OSA0MDAgMTkyIDQwMGMzMS45IDAgNjAuNi05LjkgODAuNC0xOC45YzUuOC0yLjcgMTEuMS01LjMgMTUuNi03LjdjNC41IDIuNCA5LjcgNS4xIDE1LjYgNy43YzE5LjggOSA0OC41IDE4LjkgODAuNCAxOC45YzMzIDAgNjUuNS0xMC4zIDk0LjUtMjUuOGMxMy40IDguNCAzMy43IDE5LjMgNTguMiAyNWMxNy4yIDQgMzQuNC02LjcgMzguNC0yMy45cy02LjctMzQuNC0yMy45LTM4LjRjLTE4LjEtNC4yLTM2LjItMTMuMy01MC42LTI1LjJjLTExLjEtOS41LTI3LjMtMTAuMS0zOS4yLTEuN2wwIDBDNDM5LjQgMzI1LjIgNDEwLjkgMzM2IDM4NCAzMzZjLTI3LjUgMC01NS0xMC42LTc3LjUtMjYuMWMtMTEuMS03LjktMjUuOS03LjktMzcgMHpNMzg0IDQ0OGMtMjcuNSAwLTU1LTEwLjYtNzcuNS0yNi4xYy0xMS4xLTcuOS0yNS45LTcuOS0zNyAwQzI0NyA0MzcuNCAyMTkuNSA0NDggMTkyIDQ0OGMtMjYuOSAwLTU1LjMtMTAuOC03Ny40LTI2LjFsMCAwYy0xMS45LTguNS0yOC4xLTcuOC0zOS4yIDEuN2MtMTQuNCAxMS45LTMyLjUgMjEtNTAuNiAyNS4yYy0xNy4yIDQtMjcuOSAyMS4yLTIzLjkgMzguNHMyMS4yIDI3LjkgMzguNCAyMy45YzI0LjUtNS43IDQ0LjktMTYuNSA1OC4yLTI1QzEyNi41IDUwMS43IDE1OSA1MTIgMTkyIDUxMmMzMS45IDAgNjAuNi05LjkgODAuNC0xOC45YzUuOC0yLjcgMTEuMS01LjMgMTUuNi03LjdjNC41IDIuNCA5LjcgNS4xIDE1LjYgNy43YzE5LjggOSA0OC41IDE4LjkgODAuNCAxOC45YzMzIDAgNjUuNS0xMC4zIDk0LjUtMjUuOGMxMy40IDguNCAzMy43IDE5LjMgNTguMiAyNWMxNy4yIDQgMzQuNC02LjcgMzguNC0yMy45cy02LjctMzQuNC0yMy45LTM4LjRjLTE4LjEtNC4yLTM2LjItMTMuMy01MC42LTI1LjJjLTExLjEtOS40LTI3LjMtMTAuMS0zOS4yLTEuN2wwIDBDNDM5LjQgNDM3LjIgNDEwLjkgNDQ4IDM4NCA0NDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXNlTGFwdG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxOC4zIDguNWMxMi4zLTExLjMgMzEuMi0xMS4zIDQzLjQgMGwyMDggMTkyYzYuNyA2LjIgMTAuMyAxNC44IDEwLjMgMjMuNUgzMzZjLTE5LjEgMC0zNi4zIDguNC00OCAyMS43VjIwOGMwLTguOC03LjItMTYtMTYtMTZIMjA4Yy04LjggMC0xNiA3LjItMTYgMTZ2NjRjMCA4LjggNy4yIDE2IDE2IDE2aDY0VjQxNkgxMTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjI1NkgzMmMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDguMS0zNS4ybDIwOC0xOTJ6TTM1MiAzMDRWNDQ4SDU0NFYzMDRIMzUyem0tNDgtMTZjMC0xNy43IDE0LjMtMzIgMzItMzJINTYwYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjQ0OGgzMmM4LjggMCAxNiA3LjIgMTYgMTZjMCAyNi41LTIxLjUgNDgtNDggNDhINTQ0IDM1MiAzMDRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4YzAtOC44IDcuMi0xNiAxNi0xNmgzMlYyODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXNlTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgNDgwYzAgMTEuNyAzLjEgMjIuNiA4LjYgMzJIMzkyYy0yMi4xIDAtNDAtMTcuOS00MC00MFY0NDggMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQgMjRjMCAyMi4xLTE3LjkgNDAtNDAgNDBIMTYwIDEyOC4xYy0xLjUgMC0zLS4xLTQuNS0uMmMtMS4yIC4xLTIuNCAuMi0zLjYgLjJIMTA0Yy0yMi4xIDAtNDAtMTcuOS00MC00MFYzNjBjMC0uOSAwLTEuOSAuMS0yLjhWMjg3LjZIMzJjLTE4IDAtMzItMTQtMzItMzIuMWMwLTkgMy0xNyAxMC0yNEwyNjYuNCA4YzctNyAxNS04IDIyLThzMTUgMiAyMSA3TDQ5MC43IDE2Ni4zQzQ0Ny4yIDE4MS43IDQxNiAyMjMuMiA0MTYgMjcydjI0LjZjLTE5LjEgMTEuMS0zMiAzMS43LTMyIDU1LjRWNDgwek01MjggMjQwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY0OGg2NFYyNzJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS04MCAzMmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwdjQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMyVjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMkg0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjM1MmMwLTE3LjcgMTQuMy0zMiAzMi0zMlYyNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXNlTWVkaWNhbENpcmNsZUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCAzNjhjMCA1OS41IDI5LjUgMTEyLjEgNzQuOCAxNDRIMTI4LjFjLTM1LjMgMC02NC0yOC43LTY0LTY0VjI4Ny42SDMyYy0xOCAwLTMyLTE0LTMyLTMyLjFjMC05IDMtMTcgMTAtMjRMMjY2LjQgOGM3LTcgMTUtOCAyMi04czE1IDIgMjEgN0w1MjIuMSAxOTMuOWMtOC41LTEuMy0xNy4zLTEuOS0yNi4xLTEuOWMtNTQuNyAwLTEwMy41IDI0LjktMTM1LjggNjRIMzIwVjIwOGMwLTguOC03LjItMTYtMTYtMTZIMjcyYy04LjggMC0xNiA3LjItMTYgMTZ2NDhIMjA4Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDQ4djQ4YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZ6bTMyIDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjExLjMtNDMuM2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMNDgwIDM4NS40bC0yOC43LTI4LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNzItNzJjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXNlTWVkaWNhbENpcmNsZUV4Y2xhbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCAzNjhjMCA1OS41IDI5LjUgMTEyLjEgNzQuOCAxNDRIMTI4LjFjLTM1LjMgMC02NC0yOC43LTY0LTY0VjI4Ny42SDMyYy0xOCAwLTMyLTE0LTMyLTMyLjFjMC05IDMtMTcgMTAtMjRMMjY2LjQgOGM3LTcgMTUtOCAyMi04czE1IDIgMjEgN0w1MjIuMSAxOTMuOWMtOC41LTEuMy0xNy4zLTEuOS0yNi4xLTEuOWMtNTQuNyAwLTEwMy41IDI0LjktMTM1LjggNjRIMzIwVjIwOGMwLTguOC03LjItMTYtMTYtMTZIMjcyYy04LjggMC0xNiA3LjItMTYgMTZ2NDhIMjA4Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDQ4djQ4YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZ6TTQ5NiAyMjRhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDI0MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTAtMTkyYy04LjggMC0xNiA3LjItMTYgMTZ2ODBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYyODhjMC04LjgtNy4yLTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZU1lZGljYWxDaXJjbGVYbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMzY4YzAgNTkuNSAyOS41IDExMi4xIDc0LjggMTQ0SDEyOC4xYy0zNS4zIDAtNjQtMjguNy02NC02NFYyODcuNkgzMmMtMTggMC0zMi0xNC0zMi0zMi4xYzAtOSAzLTE3IDEwLTI0TDI2Ni40IDhjNy03IDE1LTggMjItOHMxNSAyIDIxIDdMNTIyLjEgMTkzLjljLTguNS0xLjMtMTcuMy0xLjktMjYuMS0xLjljLTU0LjcgMC0xMDMuNSAyNC45LTEzNS44IDY0SDMyMFYyMDhjMC04LjgtNy4yLTE2LTE2LTE2SDI3MmMtOC44IDAtMTYgNy4yLTE2IDE2djQ4SDIwOGMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg0OHY0OGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2ek00OTYgMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMjIuNiAxNDRsMzYuNy0zNi43YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBMNDk2IDM0NS40bC0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZMNDczLjQgMzY4bC0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMEw0OTYgMzkwLjZsMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNkw1MTguNiAzNjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXNlTWVkaWNhbEZsYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJINjI0YzguOCAwIDE2IDcuMiAxNiAxNlYxNzZjMCA4LjgtNy4yIDE2LTE2IDE2SDUxMlY1MTJINDQ4VjE5MiAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMjc2LjggMzkuN0w0MTYgMTU5VjUxMmgxbC0uMiAwSDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYyODhIMzJjLTEzLjQgMC0yNS40LTguMy0zMC0yMC45cy0xLTI2LjcgOS4yLTM1LjRsMjI0LTE5MmMxMi0xMC4zIDI5LjctMTAuMyA0MS43IDB6TTIyNCAyMDh2NDhIMTc2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDQ4djQ4YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzIwaDQ4YzguOCAwIDE2LTcuMiAxNi0xNlYyNzJjMC04LjgtNy4yLTE2LTE2LTE2SDI4OFYyMDhjMC04LjgtNy4yLTE2LTE2LTE2SDI0MGMtOC44IDAtMTYgNy4yLTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZU1lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQzLjggMjg3LjZjMTcgMCAzMi0xNCAzMi0zMi4xYzEtOS0zLTE3LTExLTI0TDMwOS41IDdjLTYtNS0xNC03LTIxLTdzLTE1IDEtMjIgOEwxMCAyMzEuNWMtNyA3LTEwIDE1LTEwIDI0YzAgMTggMTQgMzIuMSAzMiAzMi4xaDMyVjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDguNWMzNS41IDAgNjQuMi0yOC44IDY0LTY0LjNsLS43LTE2MC4yaDMyek0yNTYgMjA4YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2NDhoNDhjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgzMjB2NDhjMCA4LjgtNy4yIDE2LTE2IDE2SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2VjMyMEgyMDhjLTguOCAwLTE2LTcuMi0xNi0xNlYyNzJjMC04LjggNy4yLTE2IDE2LTE2aDQ4VjIwOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG91c2VTaWduYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzU3LjcgOC41Yy0xMi4zLTExLjMtMzEuMi0xMS4zLTQzLjQgMGwtMjA4IDE5MmMtOS40IDguNi0xMi43IDIyLTguNSAzNGM4Ny4xIDI1LjMgMTU1LjYgOTQuMiAxODAuMyAxODEuNkg0NjRjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMjU2aDMyYzEzLjIgMCAyNS04LjEgMjkuOC0yMC4zczEuNi0yNi4yLTguMS0zNS4ybC0yMDgtMTkyek0yODggMjA4YzAtOC44IDcuMi0xNiAxNi0xNmg2NGM4LjggMCAxNiA3LjIgMTYgMTZ2NjRjMCA4LjgtNy4yIDE2LTE2IDE2SDMwNGMtOC44IDAtMTYtNy4yLTE2LTE2VjIwOHpNMjQgMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0YzEwMS42IDAgMTg0IDgyLjQgMTg0IDE4NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTI4LjEtMTAzLjktMjMyLTIzMi0yMzJ6bTggMjU2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMCAzNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRjNDguNiAwIDg4IDM5LjQgODggODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTc1LjEtNjAuOS0xMzYtMTM2LTEzNmMtMTMuMyAwLTI0IDEwLjctMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXNlVHN1bmFtaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04MC44IDEzNi41QzEwNC45IDkzLjggMTUyLjYgNjQgMjA5IDY0YzE2LjkgMCAzMy4xIDIuNyA0OC4yIDcuN2MxNi44IDUuNSAzNC45LTMuNiA0MC40LTIwLjRzLTMuNi0zNC45LTIwLjQtNDAuNEMyNTUuOCAzLjggMjMyLjggMCAyMDkgMEM5NS4yIDAgMCA4OCAwIDIwMGMwIDkxLjYgNTMuNSAxNzIuMSAxNDIuMiAxOTQuMWMxMy40IDMuOCAyNy41IDUuOSA0Mi4yIDUuOWMuNyAwIDEuNCAwIDIuMS0uMWMxLjggMCAzLjcgLjEgNS41IC4xbDAgMGMzMS45IDAgNjAuNi05LjkgODAuNC0xOC45YzUuOC0yLjcgMTEuMS01LjMgMTUuNi03LjdjNC41IDIuNCA5LjcgNS4xIDE1LjYgNy43YzE5LjggOSA0OC41IDE4LjkgODAuNCAxOC45YzMzIDAgNjUuNS0xMC4zIDk0LjUtMjUuOGMxMy40IDguNCAzMy43IDE5LjMgNTguMiAyNWMxNy4yIDQgMzQuNC02LjcgMzguNC0yMy45cy02LjctMzQuNC0yMy45LTM4LjRjLTE4LjEtNC4yLTM2LjItMTMuMy01MC42LTI1LjJjLTExLjEtOS41LTI3LjMtMTAuMS0zOS4yLTEuN2wwIDBDNDM5LjQgMzI1LjIgNDEwLjkgMzM2IDM4NCAzMzZjLTI3LjUgMC01NS0xMC42LTc3LjUtMjYuMWMtMTEuMS03LjktMjUuOS03LjktMzcgMGMtMjIuNCAxNS41LTQ5LjkgMjYuMS03Ny40IDI2LjFjMCAwLS4xIDAtLjEgMGMtMTIuNCAwLTI0LTEuNS0zNC45LTQuM0MxMjEuNiAzMjAuMiA5NiAyODcgOTYgMjQ4YzAtNDguNSAzOS41LTg4IDg4LjQtODhjMTMuNSAwIDI2LjEgMyAzNy41IDguM2MxNiA3LjUgMzUuMSAuNiA0Mi41LTE1LjVzLjYtMzUuMS0xNS41LTQyLjVDMjI5LjMgMTAxLjEgMjA3LjQgOTYgMTg0LjQgOTZjLTQwIDAtNzYuNCAxNS40LTEwMy42IDQwLjV6bTI1Mi0xOC4xYy04LjEgNi0xMi44IDE1LjUtMTIuOCAyNS42VjI2NWMxLjYgMSAzLjMgMiA0LjggMy4xYzE4LjQgMTIuNyAzOS42IDIwLjMgNTkuMiAyMC4zYzE5IDAgNDEuMi03LjkgNTkuMi0yMC4zYzIzLjgtMTYuNyA1NS44LTE1LjMgNzguMSAzLjRjMTAuNiA4LjggMjQuMiAxNS42IDM3LjMgMTguNmM1LjggMS40IDExLjIgMy40IDE2LjIgNi4yYy43LTIuNyAxLjEtNS41IDEuMS04LjRsLS40LTE0NGMwLTEwLTQuNy0xOS40LTEyLjctMjUuNWwtOTUuNS03MmMtMTEuNC04LjYtMjcuMS04LjYtMzguNSAwbC05NiA3MnpNMzg0IDQ0OGMtMjcuNSAwLTU1LTEwLjYtNzcuNS0yNi4xYy0xMS4xLTcuOS0yNS45LTcuOS0zNyAwQzI0NyA0MzcuNCAyMTkuNSA0NDggMTkyIDQ0OGMtMjYuOSAwLTU1LjMtMTAuOC03Ny40LTI2LjFsMCAwYy0xMS45LTguNS0yOC4xLTcuOC0zOS4yIDEuN2MtMTQuNCAxMS45LTMyLjUgMjEtNTAuNiAyNS4yYy0xNy4yIDQtMjcuOSAyMS4yLTIzLjkgMzguNHMyMS4yIDI3LjkgMzguNCAyMy45YzI0LjUtNS43IDQ0LjktMTYuNSA1OC4yLTI1QzEyNi41IDUwMS43IDE1OSA1MTIgMTkyIDUxMmMzMS45IDAgNjAuNi05LjkgODAuNC0xOC45YzUuOC0yLjcgMTEuMS01LjMgMTUuNi03LjdjNC41IDIuNCA5LjcgNS4xIDE1LjYgNy43YzE5LjggOSA0OC41IDE4LjkgODAuNCAxOC45YzMzIDAgNjUuNS0xMC4zIDk0LjUtMjUuOGMxMy40IDguNCAzMy43IDE5LjMgNTguMiAyNWMxNy4yIDQgMzQuNC02LjcgMzguNC0yMy45cy02LjctMzQuNC0yMy45LTM4LjRjLTE4LjEtNC4yLTM2LjItMTMuMy01MC42LTI1LjJjLTExLjEtOS40LTI3LjMtMTAuMS0zOS4yLTEuN2wwIDBDNDM5LjQgNDM3LjIgNDEwLjkgNDQ4IDM4NCA0NDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXNlVXNlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzUuOCAyNTUuNWMwIDE4LTE1IDMyLjEtMzIgMzIuMWgtMzJsLjcgMTYwLjJjLjIgMzUuNS0yOC41IDY0LjMtNjQgNjQuM0gxMjguMWMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMjg3LjZIMzJjLTE4IDAtMzItMTQtMzItMzIuMWMwLTkgMy0xNyAxMC0yNEwyNjYuNCA4YzctNyAxNS04IDIyLThzMTUgMiAyMSA3TDU2NC44IDIzMS41YzggNyAxMiAxNSAxMSAyNHpNMzUyIDIyNGE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6bS05NiA5NmMtNDQuMiAwLTgwIDM1LjgtODAgODBjMCA4LjggNy4yIDE2IDE2IDE2SDM4NGM4LjggMCAxNi03LjIgMTYtMTZjMC00NC4yLTM1LjgtODAtODAtODBIMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzUuOCAyNTUuNWMwIDE4LTE1IDMyLjEtMzIgMzIuMWgtMzJsLjcgMTYwLjJjMCAyLjctLjIgNS40LS41IDguMVY0NzJjMCAyMi4xLTE3LjkgNDAtNDAgNDBINDU2Yy0xLjEgMC0yLjIgMC0zLjMtLjFjLTEuNCAuMS0yLjggLjEtNC4yIC4xSDQxNiAzOTJjLTIyLjEgMC00MC0xNy45LTQwLTQwVjQ0OCAzODRjMC0xNy43LTE0LjMtMzItMzItMzJIMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NCAyNGMwIDIyLjEtMTcuOSA0MC00MCA0MEgxNjAgMTI4LjFjLTEuNSAwLTMtLjEtNC41LS4yYy0xLjIgLjEtMi40IC4yLTMuNiAuMkgxMDRjLTIyLjEgMC00MC0xNy45LTQwLTQwVjM2MGMwLS45IDAtMS45IC4xLTIuOFYyODcuNkgzMmMtMTggMC0zMi0xNC0zMi0zMi4xYzAtOSAzLTE3IDEwLTI0TDI2Ni40IDhjNy03IDE1LTggMjItOHMxNSAyIDIxIDdMNTY0LjggMjMxLjVjOCA3IDEyIDE1IDExIDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIcnl2bmlhU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjEuOSAxMTYuMkMxMzguMyAxMDMuMSAxNTguNyA5NiAxNzkuNiA5NkgyMjNjMjcuMSAwIDQ5IDIxLjkgNDkgNDljMCAxMS41LTQgMjIuNC0xMS4xIDMxSDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDE1NS41bC01MC42IDI4LjljLTEuNyAxLTMuNCAyLTUuMSAzLjFIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINTIuM2MtMi44IDkuOS00LjMgMjAuNC00LjMgMzFjMCA2Mi40IDUwLjYgMTEzIDExMyAxMTNoNDMuNGMzNS41IDAgNzAtMTIuMSA5Ny43LTM0LjNMMzA4IDQ0MWMxMy44LTExIDE2LTMxLjIgNS00NXMtMzEuMi0xNi00NS01bC01LjkgNC43Yy0xNi40IDEzLjEtMzYuNyAyMC4yLTU3LjcgMjAuMkgxNjFjLTI3LjEgMC00OS0yMS45LTQ5LTQ5YzAtMTEuNSA0LTIyLjQgMTEuMS0zMUgzNTJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMjI4LjVsNTAuNi0yOC45YzEuNy0xIDMuNC0yIDUuMS0zLjFIMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMzMS43YzIuOC0xMCA0LjMtMjAuNCA0LjMtMzFjMC02Mi40LTUwLjYtMTEzLTExMy0xMTNIMTc5LjZjLTM1LjUgMC03MCAxMi4xLTk3LjcgMzQuM0w3NiA3MWMtMTMuOCAxMS0xNiAzMS4yLTUgNDVzMzEuMiAxNiA0NSA1bDUuOS00Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUh1cnJpY2FuZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDIwOEMwIDEwNC40IDc1LjcgMTguNSAxNzQuOSAyLjZDMTg0IDEuMiAxOTIgOC42IDE5MiAxNy45VjgxLjJjMCA4LjQgNi41IDE1LjMgMTQuNyAxNi41QzMwNyAxMTIuNSAzODQgMTk5IDM4NCAzMDMuNGMwIDEwMy42LTc1LjcgMTg5LjUtMTc0LjkgMjA1LjRjLTkuMiAxLjUtMTcuMS01LjktMTcuMS0xNS4yVjQzMC4yYzAtOC40LTYuNS0xNS4zLTE0LjctMTYuNUM3NyAzOTguOSAwIDMxMi40IDAgMjA4em0yODggNDhBOTYgOTYgMCAxIDAgOTYgMjU2YTk2IDk2IDAgMSAwIDE5MiAwem0tOTYtMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJQ3Vyc29yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTS4xIDI5LjNDLTEuNCA0NyAxMS43IDYyLjQgMjkuMyA2My45bDggLjdDNzAuNSA2Ny4zIDk2IDk1IDk2IDEyOC4zVjIyNEg2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg5NnY5NS43YzAgMzMuMy0yNS41IDYxLTU4LjcgNjMuOGwtOCAuN0MxMS43IDQ0OS42LTEuNCA0NjUgLjEgNDgyLjdzMTYuOSAzMC43IDM0LjUgMjkuMmw4LS43YzM0LjEtMi44IDY0LjItMTguOSA4NS40LTQyLjljMjEuMiAyNCA1MS4yIDQwLjEgODUuNCA0Mi45bDggLjdjMTcuNiAxLjUgMzMuMS0xMS42IDM0LjUtMjkuMnMtMTEuNi0zMy4xLTI5LjItMzQuNWwtOC0uN0MxODUuNSA0NDQuNyAxNjAgNDE3IDE2MCAzODMuN1YyODhoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTYwVjEyOC4zYzAtMzMuMyAyNS41LTYxIDU4LjctNjMuOGw4LS43YzE3LjYtMS41IDMwLjctMTYuOSAyOS4yLTM0LjVTMjM5LTEuNCAyMjEuMyAuMWwtOCAuN0MxNzkuMiAzLjYgMTQ5LjIgMTkuNyAxMjggNDMuN2MtMjEuMi0yNC01MS4yLTQwLTg1LjQtNDIuOWwtOC0uN0MxNy0xLjQgMS42IDExLjcgLjEgMjkuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZoOTZWNDE2SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxOTJWOTZoOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTYwIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJY2VDcmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjcuMSAxNjBjLjYtNS4zIC45LTEwLjYgLjktMTZDMzY4IDY0LjUgMzAzLjUgMCAyMjQgMFM4MCA2NC41IDgwIDE0NGMwIDUuNCAuMyAxMC43IC45IDE2SDgwYy0yNi41IDAtNDggMjEuNS00OCA0OHMyMS41IDQ4IDQ4IDQ4aDUzLjUgMTgxSDM2OGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OGgtLjl6TTk2IDI4OEwyMDAuOCA0OTcuN2M0LjQgOC44IDEzLjMgMTQuMyAyMy4yIDE0LjNzMTguOC01LjUgMjMuMi0xNC4zTDM1MiAyODhIOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUljaWNsZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzUuOCAzMDQuOEwxIDM1LjdjLS43LTIuNS0xLTUtMS03LjVDMCAxMi42IDEyLjYgMCAyOC4yIDBINDgyLjRDNDk4LjggMCA1MTIgMTMuMiA1MTIgMjkuNmMwIDEuNi0uMSAzLjMtLjQgNC45TDQzNC42IDQ5Ni4xYy0xLjUgOS4yLTkuNSAxNS45LTE4LjggMTUuOWMtOS4yIDAtMTcuMS02LjYtMTguNy0xNS42TDMzNiAxNjAgMzA3LjIgMzAzLjljLTEuOSA5LjMtMTAuMSAxNi4xLTE5LjYgMTYuMWMtOS4yIDAtMTcuMi02LjItMTkuNC0xNS4xTDI0MCAxOTIgMjEwLjYgMzY4LjJjLTEuNSA5LjEtOS40IDE1LjgtMTguNiAxNS44cy0xNy4xLTYuNy0xOC42LTE1LjhMMTQ0IDE5MiAxMTUuOSAzMDQuM2MtMi4zIDkuMi0xMC42IDE1LjctMjAuMSAxNS43Yy05LjMgMC0xNy41LTYuMi0yMC0xNS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJY29ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDAuMyA3LjNDNTA3LjcgMTMuMyA1MTIgMjIuNCA1MTIgMzJWMTc2YzAgMjYuNS0yOC43IDQ4LTY0IDQ4cy02NC0yMS41LTY0LTQ4czI4LjctNDggNjQtNDhWNzFMMzUyIDkwLjJWMjA4YzAgMjYuNS0yOC43IDQ4LTY0IDQ4cy02NC0yMS41LTY0LTQ4czI4LjctNDggNjQtNDhWNjRjMC0xNS4zIDEwLjgtMjguNCAyNS43LTMxLjRsMTYwLTMyYzkuNC0xLjkgMTkuMSAuNiAyNi42IDYuNnpNNzQuNyAzMDRsMTEuOC0xNy44YzUuOS04LjkgMTUuOS0xNC4yIDI2LjYtMTQuMmg2MS43YzEwLjcgMCAyMC43IDUuMyAyNi42IDE0LjJMMjEzLjMgMzA0SDI0MGMyNi41IDAgNDggMjEuNSA0OCA0OFY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjM1MmMwLTI2LjUgMjEuNS00OCA0OC00OEg3NC43ek0xOTIgNDA4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTQ3OC43IDI3OC4zTDQ0MC4zIDM2OEg0OTZjNi43IDAgMTIuNiA0LjEgMTUgMTAuNHMuNiAxMy4zLTQuNCAxNy43bC0xMjggMTEyYy01LjYgNC45LTEzLjkgNS4zLTE5LjkgLjlzLTguMi0xMi40LTUuMy0xOS4yTDM5MS43IDQwMEgzMzZjLTYuNyAwLTEyLjYtNC4xLTE1LTEwLjRzLS42LTEzLjMgNC40LTE3LjdsMTI4LTExMmM1LjYtNC45IDEzLjktNS4zIDE5LjktLjlzOC4yIDEyLjQgNS4zIDE5LjJ6bS0zMzktNTkuMmMtNi41IDYuNS0xNyA2LjUtMjMgMEwxOS45IDExOS4yYy0yOC0yOS0yNi41LTc2LjkgNS0xMDMuOWMyNy0yMy41IDY4LjQtMTkgOTMuNCA2LjVsMTAgMTAuNSA5LjUtMTAuNWMyNS0yNS41IDY1LjktMzAgOTMuOS02LjVjMzEgMjcgMzIuNSA3NC45IDQuNSAxMDMuOWwtOTYuNCA5OS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJZEJhZGdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6bTk2IDMyMGg2NGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDguOC03LjIgMTYtMTYgMTZIOTZjLTguOCAwLTE2LTcuMi0xNi0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MHptLTMyLTk2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNMTQ0IDY0aDk2YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDE0NGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSWRDYXJkQ2xpcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMGg2NGMxNy43IDAgMzIgMTQuMyAzMiAzMlY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkgyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek02NCA2NEgxOTJ2NDhjMCAyNi41IDIxLjUgNDggNDggNDhoOTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNjRINTEyYzM1LjMgMCA2NCAyOC43IDY0IDY0VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0ek0xNzYgNDM3LjNjMCA1LjkgNC44IDEwLjcgMTAuNyAxMC43SDM4OS4zYzUuOSAwIDEwLjctNC44IDEwLjctMTAuN2MwLTI5LjUtMjMuOS01My4zLTUzLjMtNTMuM0gyMjkuM2MtMjkuNSAwLTUzLjMgMjMuOS01My4zIDUzLjN6TTI4OCAzNTJhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUlkQ2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2bDU3NiAwYzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0QzI4LjcgMzIgMCA2MC43IDAgOTZ6bTAgMzJWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjhIMHpNNjQgNDA1LjNjMC0yOS41IDIzLjktNTMuMyA1My4zLTUzLjNIMjM0LjdjMjkuNSAwIDUzLjMgMjMuOSA1My4zIDUzLjNjMCA1LjktNC44IDEwLjctMTAuNyAxMC43SDc0LjdjLTUuOSAwLTEwLjctNC44LTEwLjctMTAuN3pNMTc2IDE5MmE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptMTc2IDE2YzAtOC44IDcuMi0xNiAxNi0xNkg0OTZjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMzY4Yy04LjggMC0xNi03LjItMTYtMTZ6bTAgNjRjMC04LjggNy4yLTE2IDE2LTE2SDQ5NmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgzNjhjLTguOCAwLTE2LTcuMi0xNi0xNnptMCA2NGMwLTguOCA3LjItMTYgMTYtMTZINDk2YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDM2OGMtOC44IDAtMTYtNy4yLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJZ2xvbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMzMuOFYxNjBINDguNUMxMDAuMiA4Mi44IDE4OC4xIDMyIDI4OCAzMmMxMC44IDAgMjEuNSAuNiAzMiAxLjh6TTM1MiAxNjBWMzkuMUM0MjQuOSA1NS43IDQ4Ny4yIDk5LjggNTI3LjUgMTYwSDM1MnpNMjkuOSAxOTJIOTZWMzIwSDBjMC00NiAxMC44LTg5LjQgMjkuOS0xMjh6TTE5MiAzMjBIMTI4VjE5Mkg0NDhWMzIwSDM4NHYzMkg1NzZ2ODBjMCAyNi41LTIxLjUgNDgtNDggNDhIMzUyVjM1MmMwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NFY0ODBINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjM1MkgxOTJWMzIwem0yODggMFYxOTJoNjYuMWMxOS4yIDM4LjYgMjkuOSA4MiAyOS45IDEyOEg0ODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUltYWdlUG9ydHJhaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0QzI4LjcgMCAwIDI4LjcgMCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0ek0xMjggMTkyYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNODAgMzU2LjZjMC0zNy45IDMwLjctNjguNiA2OC42LTY4LjZoODYuOWMzNy45IDAgNjguNiAzMC43IDY4LjYgNjguNmMwIDE1LjEtMTIuMyAyNy40LTI3LjQgMjcuNEgxMDcuNEM5Mi4zIDM4NCA4MCAzNzEuNyA4MCAzNTYuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW1hZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMkg0NDhjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY5NnpNMzIzLjggMjAyLjVjLTQuNS02LjYtMTEuOS0xMC41LTE5LjgtMTAuNXMtMTUuNCAzLjktMTkuOCAxMC41bC04NyAxMjcuNkwxNzAuNyAyOTdjLTQuNi01LjctMTEuNS05LTE4LjctOXMtMTQuMiAzLjMtMTguNyA5bC02NCA4MGMtNS44IDcuMi02LjkgMTcuMS0yLjkgMjUuNHMxMi40IDEzLjYgMjEuNiAxMy42aDk2IDMySDQyNGM4LjkgMCAxNy4xLTQuOSAyMS4yLTEyLjhzMy42LTE3LjQtMS40LTI0LjdsLTEyMC0xNzZ6TTExMiAxOTJhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbWFnZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NFYzMjBjMCAzNS4zIDI4LjcgNjQgNjQgNjRINTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDE2MHpNMzk2IDEzOC43bDk2IDE0NGM0LjkgNy40IDUuNCAxNi44IDEuMiAyNC42UzQ4MC45IDMyMCA0NzIgMzIwSDMyOCAyODAgMjAwYy05LjIgMC0xNy42LTUuMy0yMS42LTEzLjZzLTIuOS0xOC4yIDIuOS0yNS40bDY0LTgwYzQuNi01LjcgMTEuNC05IDE4LjctOXMxNC4yIDMuMyAxOC43IDlsMTcuMyAyMS42IDU2LTg0QzM2MC41IDEzMiAzNjggMTI4IDM3NiAxMjhzMTUuNSA0IDIwIDEwLjd6TTE5MiAxMjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNNDggMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMTA2LjcgMCAxMjBWMzQ0YzAgNzUuMSA2MC45IDEzNiAxMzYgMTM2SDQ1NmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgxMzZjLTQ4LjYgMC04OC0zOS40LTg4LTg4VjEyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW5ib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIxIDMyQzkxLjYgMzIgNjYgNTIgNTguOSA4MC41TDEuOSAzMDguNEMuNiAzMTMuNSAwIDMxOC43IDAgMzIzLjlWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFYzMjMuOWMwLTUuMi0uNi0xMC40LTEuOS0xNS41bC01Ny0yMjcuOUM0NDYgNTIgNDIwLjQgMzIgMzkxIDMySDEyMXptMCA2NEgzOTFsNDggMTkySDM4Ny44Yy0xMi4xIDAtMjMuMiA2LjgtMjguNiAxNy43bC0xNC4zIDI4LjZjLTUuNCAxMC44LTE2LjUgMTcuNy0yOC42IDE3LjdIMTk1LjhjLTEyLjEgMC0yMy4yLTYuOC0yOC42LTE3LjdsLTE0LjMtMjguNmMtNS40LTEwLjgtMTYuNS0xNy43LTI4LjYtMTcuN0g3M0wxMjEgOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUluZGVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMySDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMkMxNC4zIDk2IDAgODEuNyAwIDY0ek0xOTIgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMySDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA5Nkg0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyek0wIDQ0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMkg0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0xMjcuOCAyNjguNkwyNS44IDM0Ny45QzE1LjMgMzU2LjEgMCAzNDguNiAwIDMzNS4zVjE3Ni43YzAtMTMuMyAxNS4zLTIwLjggMjUuOC0xMi42bDEwMS45IDc5LjNjOC4yIDYuNCA4LjIgMTguOSAwIDI1LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUluZGlhblJ1cGVlU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMySDk2aDE2SDI4OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgyMzEuOGM5LjYgMTQuNCAxNi43IDMwLjYgMjAuNyA0OEgyODhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMjUyLjRjLTEzLjIgNTguMy02MS45IDEwMy4yLTEyMi4yIDExMC45TDI3NC42IDQyMmMxNC40IDEwLjMgMTcuNyAzMC4zIDcuNCA0NC42cy0zMC4zIDE3LjctNDQuNiA3LjRMMTMuNCAzMTRDMi4xIDMwNi0yLjcgMjkxLjUgMS41IDI3OC4yUzE4LjEgMjU2IDMyIDI1Nmg4MGMzMi44IDAgNjEtMTkuNyA3My4zLTQ4SDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDE4NS4zQzE3MyAxMTUuNyAxNDQuOCA5NiAxMTIgOTZIOTYgMzJDMTQuMyA5NiAwIDgxLjcgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW5kdXN0cnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDNDYuMyAzMiAzMiA0Ni4zIDMyIDY0VjMwNHY0OCA4MGMwIDI2LjUgMjEuNSA0OCA0OCA0OEg0OTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzA0IDE1Mi4yYzAtMTguMi0xOS40LTI5LjctMzUuNC0yMS4xTDM1MiAyMTUuNFYxNTIuMmMwLTE4LjItMTkuNC0yOS43LTM1LjQtMjEuMUwxNjAgMjE1LjRWNjRjMC0xNy43LTE0LjMtMzItMzItMzJINjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUluZmluaXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjQxLjFDMCAxNjEgNjUgOTYgMTQ1LjEgOTZjMzguNSAwIDc1LjQgMTUuMyAxMDIuNiA0Mi41TDMyMCAyMTAuN2w3Mi4yLTcyLjJDNDE5LjUgMTExLjMgNDU2LjQgOTYgNDk0LjkgOTZDNTc1IDk2IDY0MCAxNjEgNjQwIDI0MS4xdjI5LjdDNjQwIDM1MSA1NzUgNDE2IDQ5NC45IDQxNmMtMzguNSAwLTc1LjQtMTUuMy0xMDIuNi00Mi41TDMyMCAzMDEuM2wtNzIuMiA3Mi4yQzIyMC41IDQwMC43IDE4My42IDQxNiAxNDUuMSA0MTZDNjUgNDE2IDAgMzUxIDAgMjcwLjlWMjQxLjF6TTI3NC43IDI1NmwtNzIuMi03Mi4yYy0xNS4yLTE1LjItMzUuOS0yMy44LTU3LjQtMjMuOEMxMDAuMyAxNjAgNjQgMTk2LjMgNjQgMjQxLjF2MjkuN2MwIDQ0LjggMzYuMyA4MS4xIDgxLjEgODEuMWMyMS41IDAgNDIuMi04LjUgNTcuNC0yMy44TDI3NC43IDI1NnptOTAuNSAwbDcyLjIgNzIuMmMxNS4yIDE1LjIgMzUuOSAyMy44IDU3LjQgMjMuOGM0NC44IDAgODEuMS0zNi4zIDgxLjEtODEuMVYyNDEuMWMwLTQ0LjgtMzYuMy04MS4xLTgxLjEtODEuMWMtMjEuNSAwLTQyLjIgOC41LTU3LjQgMjMuOEwzNjUuMyAyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUluZm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDE5MiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggODBhNDggNDggMCAxIDEgOTYgMEE0OCA0OCAwIDEgMSA0OCA4MHpNMCAyMjRjMC0xNy43IDE0LjMtMzIgMzItMzJIOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNDQ4aDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDY0VjI1NkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUl0YWxpYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJIMzUyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDI5My4zTDE2MCA0MTZoNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJIOTAuN0wyMjQgOTZIMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMzIwYzAgODguNC03MS42IDE2MC0xNjAgMTYwUzAgNDA4LjQgMCAzMjBWMjg4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ2MzJjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NlY2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSmFyV2hlYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMzJDMzIgMTQuMyA0Ni4zIDAgNjQgMEgyNTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINjRDNDYuMyA2NCAzMiA0OS43IDMyIDMyek0wIDE2MGMwLTM1LjMgMjguNy02NCA2NC02NEgyNTZjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYxNjB6bTExMiAwSDY5LjhjLTMuMiAwLTUuOCAyLjYtNS44IDUuOEM2NCAxOTggOTAgMjI0IDEyMi4yIDIyNEgxNDRoMzIgMjEuOGMzMi4xIDAgNTguMi0yNiA1OC4yLTU4LjJjMC0zLjItMi42LTUuOC01LjgtNS44SDIwOGMtMTkuMSAwLTM2LjMgOC40LTQ4IDIxLjdjLTExLjctMTMuMy0yOC45LTIxLjctNDgtMjEuN3ptNDggMTE3LjdjLTExLjctMTMuMy0yOC45LTIxLjctNDgtMjEuN0g2OS44Yy0zLjIgMC01LjggMi42LTUuOCA1LjhDNjQgMjk0IDkwIDMyMCAxMjIuMiAzMjBIMTQ0aDMyIDIxLjhjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yYzAtMy4yLTIuNi01LjgtNS44LTUuOEgyMDhjLTE5LjEgMC0zNi4zIDguNC00OCAyMS43ek0xMTIgMzUySDY5LjhjLTMuMiAwLTUuOCAyLjYtNS44IDUuOEM2NCAzOTAgOTAgNDE2IDEyMi4yIDQxNkgxNDR2MzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlY0MTZoMjEuOGMzMi4xIDAgNTguMi0yNiA1OC4yLTU4LjJjMC0zLjItMi42LTUuOC01LjgtNS44SDIwOGMtMTkuMSAwLTM2LjMgOC40LTQ4IDIxLjdjLTExLjctMTMuMy0yOC45LTIxLjctNDgtMjEuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDMyQzMyIDE0LjMgNDYuMyAwIDY0IDBIMjU2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDY0QzQ2LjMgNjQgMzIgNDkuNyAzMiAzMnpNMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjRIMjU2YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTYwem05NiA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2OTZjMCAxNy43IDE0LjMgMzIgMzIgMzJIMjI0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMkg5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSmVkaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDYgMzE1LjdsLTIxLjItMzEuOWMtMi4xLTMuMi0xLjctNy40IDEtMTAuMXM2LjktMy4xIDEwLjEtMWwyOS41IDE5LjdjMi4xIDEuNCA0LjkgMCA1LTIuNkwyNzkuNyA4Yy4xLTQuNSAzLjgtOCA4LjMtOHM4LjEgMy41IDguMyA4bDkuNCAyODEuOWMuMSAyLjUgMi45IDMuOSA1IDIuNmwyOS41LTE5LjdjMy4yLTIuMSA3LjQtMS43IDEwLjEgMXMzLjEgNi45IDEgMTAuMUwzMzAgMzE1LjdjLTEuMyAxLjktLjIgNC41IDIgNC45bDM3LjYgNy41YzMuNyAuNyA2LjQgNCA2LjQgNy44cy0yLjcgNy4xLTYuNCA3LjhMMzMyIDM1MS40Yy0yLjIgLjQtMy4zIDMtMiA0LjlsMjEuMiAzMS45YzIuMSAzLjIgMS43IDcuNC0xIDEwLjFzLTYuOSAzLjEtMTAuMSAxbC0yNi4zLTE3LjZjLTIuMi0xLjQtNS4xIC4yLTUgMi44bDIuMSA2MS41QzM3MC42IDQzNS4yIDQxNiAzODIuOSA0MTYgMzIwYzAtMzctMTUuNy03MC40LTQwLjgtOTMuN2MtNy02LjUtNi41LTE4LjYgMS0yNC40QzQxMC4xIDE3NS41IDQzMiAxMzQuMyA0MzIgODhjMC0xNi44LTIuOS0zMy04LjItNDhjLTQuNi0xMyAxMC4yLTMwIDIxLjQtMjJjNTMuNSAzOCA5Mi43IDk0LjggMTA3LjggMTYwLjdjLjUgMi4xLS4yIDQuMy0xLjcgNS45bC0yOC40IDI4LjRjLTQgNC0xLjIgMTAuOSA0LjUgMTAuOWgyNmMzLjQgMCA2LjIgMi42IDYuMyA2Yy4xIDMuMyAuMiA2LjYgLjIgMTBjMCAxNy41LTEuNyAzNC43LTQuOCA1MS4zYy0uMiAxLjItLjkgMi40LTEuNyAzLjNsLTQ2LjUgNDYuNWMtNCA0LTEuMiAxMC45IDQuNSAxMC45SDUyNmM0LjYgMCA3LjcgNC44IDUuNyA5QzQ4Ny4yIDQ1MC41IDM5NC44IDUxMiAyODggNTEyUzg4LjggNDUwLjUgNDQuMyAzNjFjLTIuMS00LjIgMS05IDUuNy05SDY0LjVjNS43IDAgOC42LTYuOSA0LjUtMTAuOUwyMi42IDI5NC42Yy0uOS0uOS0xLjUtMi0xLjctMy4zQzE3LjcgMjc0LjcgMTYgMjU3LjUgMTYgMjQwYzAtMy4zIC4xLTYuNyAuMi0xMGMuMS0zLjQgMi45LTYgNi4zLTZoMjZjNS43IDAgOC42LTYuOSA0LjUtMTAuOUwyNC42IDE4NC42Yy0xLjUtMS41LTIuMi0zLjgtMS43LTUuOUMzOC4xIDExMi44IDc3LjMgNTYgMTMwLjggMThjMTEuMy04IDI2IDguOSAyMS40IDIyYy01LjMgMTUtOC4yIDMxLjItOC4yIDQ4YzAgNDYuMyAyMS45IDg3LjUgNTUuOCAxMTMuOWM3LjUgNS44IDggMTcuOSAxIDI0LjRDMTc1LjcgMjQ5LjYgMTYwIDI4MyAxNjAgMzIwYzAgNjIuOSA0NS40IDExNS4yIDEwNS4xIDEyNmwyLjEtNjEuNWMuMS0yLjYtMi44LTQuMi01LTIuOGwtMjYuMyAxNy42Yy0zLjIgMi4xLTcuNCAxLjctMTAuMS0xcy0zLjEtNi45LTEtMTAuMUwyNDYgMzU2LjNjMS4zLTEuOSAuMi00LjUtMi00LjlsLTM3LjYtNy41Yy0zLjctLjctNi40LTQtNi40LTcuOHMyLjctNy4xIDYuNC03LjhsMzcuNi03LjVjMi4yLS40IDMuMy0zIDItNC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKZXRGaWdodGVyVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcwLjcgOS43QzI2OC4yIDMuOCAyNjIuNCAwIDI1NiAwcy0xMi4yIDMuOC0xNC43IDkuN0wxOTcuMiAxMTIuNmMtMy40IDgtNS4yIDE2LjUtNS4yIDI1LjJ2NzdsLTE0NCA4NFYyODBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR2NTYgMzIgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNHYtOEgxOTJ2MzIuN0wxMzMuNSA0NjhjLTMuNSAzLTUuNSA3LjQtNS41IDEydjE2YzAgOC44IDcuMiAxNiAxNiAxNmg5NlY0NDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnY2NGg5NmM4LjggMCAxNi03LjIgMTYtMTZWNDgwYzAtNC42LTItOS01LjUtMTJMMzIwIDQxNi43VjM4NEg0NjR2OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjM2OCAzMzYgMjgwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0djE4LjhsLTE0NC04NHYtNzdjMC04LjctMS44LTE3LjItNS4yLTI1LjJMMjcwLjcgOS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKZXRGaWdodGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNEgyOTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMjgwTDM4NCAxOTJINTAwLjRjNy43IDAgMTUuMyAxLjQgMjIuNSA0LjFMNjI1IDIzNC40YzkgMy40IDE1IDEyIDE1IDIxLjZzLTYgMTguMi0xNSAyMS42TDUyMi45IDMxNS45Yy03LjIgMi43LTE0LjggNC4xLTIyLjUgNC4xSDM4NEwyODAgNDY0aDE2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDE4NGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGg4VjMyMEgxNjBsLTU0LjYgNTQuNmMtNiA2LTE0LjEgOS40LTIyLjYgOS40SDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJWMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMySDgyLjdjOC41IDAgMTYuNiAzLjQgMjIuNiA5LjRMMTYwIDE5MmgzMlY0OGgtOGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTgwIDI0MGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmg2NGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkg4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSm9pbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjQzYzAgNTUuMiAyMS45IDEwOC4xIDYwLjkgMTQ3LjFsMjEgMjFjOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjl2MTFjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyNDVjMC0yOS43LTExLjgtNTguMi0zMi44LTc5LjJsLTIxLTIxQzQ2My4yIDExNy44IDQ0OCA4MS4yIDQ0OCA0M1YzMnpNNTc2IDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjI0NWMwLTU1LjItMjEuOS0xMDguMS02MC45LTE0Ny4xbC0yMS0yMWMtOS05LTE0LjEtMjEuMi0xNC4xLTMzLjlWMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWNDNjMCAyOS43IDExLjggNTguMiAzMi44IDc5LjJsMjEgMjFjMjcgMjcgNDIuMiA2My42IDQyLjIgMTAxLjh2MTF6TTIyOS44IDM2MGMtNC43LTIuMy0xMC0yLjctMTUuMi0yYy0zNy44IDUuNi03NS4yIDE0LjMtMTA2LjkgMjIuOEM4MS4zIDM4OCA1OC4zIDM5NS4xIDQyIDQwMC40Yy04LjIgMi43LTE0LjcgNC45LTE5LjIgNi41Yy0yLjMgLjgtNCAxLjQtNS4yIDEuOGwtMS4zIC41QzYuOCA0MTIuNSAwIDQyMS40IDAgNDMyczYuOCAxOS41IDE2LjMgMjIuN2wxLjMgLjVjMS4yIC40IDMgMS4xIDUuMiAxLjhjNC41IDEuNiAxMSAzLjggMTkuMiA2LjVjMTYuMyA1LjQgMzkuMiAxMi41IDY1LjcgMTkuNkMxNjAuMyA0OTcuMyAyMjguOCA1MTIgMjg4IDUxMmg2Ny4zYzQuMSAwIDYuMy01LjEgMy42LTguM0wyNTYuNSAzODAuOGMtNy40LTguOS0xNi41LTE1LjktMjYuNy0yMC44ek00NDUgNTEyaDE5IDUxLjNjNC4xIDAgNi4zLTUuMSAzLjYtOC4zTDQxNi41IDM4MC44QzQwMS4zIDM2Mi41IDM3OC44IDM1MiAzNTUgMzUySDMzNiAyODhjLTEuMSAwLTIuMyAwLTMuNCAwYy00LjEgMC02LjIgNS4xLTMuNSA4LjNMMzgzLjUgNDgzLjJDMzk4LjcgNTAxLjUgNDIxLjIgNTEyIDQ0NSA1MTJ6bS0zLjktMTUxLjdMNTQzLjUgNDgzLjJjMTQuNiAxNy41IDM1LjkgMjcuOSA1OC42IDI4LjdjMjEuMS0xLjEgMzcuOS0xOC42IDM3LjktMzkuOVYzOTJjMC0yMi4xLTE3LjktNDAtNDAtNDBINDQ0LjdjLTQuMSAwLTYuMyA1LjEtMy42IDguM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSnVnRGV0ZXJnZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0aDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0VjQ4aDhjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIODhDNzQuNyA5NiA2NCA4NS4zIDY0IDcyczEwLjctMjQgMjQtMjRoOFYyNHpNMCAyNTZjMC03MC43IDU3LjMtMTI4IDEyOC0xMjhIMjU2YzcwLjcgMCAxMjggNTcuMyAxMjggMTI4VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMjU2em0yNTYgMHY5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTEgODYuM2MxMi4zLTEyLjcgMTItMzIuOS0uNy00NS4ycy0zMi45LTEyLTQ1LjIgLjdsLTE1NS4yIDE2MEw2NCAyNDlWNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRWMzI4IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjM0MWw2NC43LTY2LjcgMTMzIDE5MmMxMC4xIDE0LjUgMzAgMTguMSA0NC41IDguMXMxOC4xLTMwIDguMS00NC41TDE3NC4xIDIyNy40IDMxMSA4Ni4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLYWFiYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MCAxMjBsMjI4IDcxLjJMNTE2IDEyMCAyODggNDguOCA2MCAxMjB6TTI3OC41IDEuNWM2LjItMS45IDEyLjktMS45IDE5LjEgMGwyNTYgODBDNTY2LjkgODUuNiA1NzYgOTggNTc2IDExMnYxNiAwIDIxLjJMMjkyLjggMjM3LjdjLTMuMSAxLTYuNCAxLTkuNSAwTDAgMTQ5LjJWMTI4IDExMkMwIDk4IDkuMSA4NS42IDIyLjUgODEuNWwyNTYtODB6bTIzLjkgMjY2LjhMNTc2IDE4Mi44djQ2LjVsLTUyLjggMTYuNWMtOC40IDIuNi0xMy4xIDExLjYtMTAuNSAyMHMxMS42IDEzLjEgMjAgMTAuNUw1NzYgMjYyLjhWNDAwYzAgMTQtOS4xIDI2LjQtMjIuNSAzMC41bC0yNTYgODBjLTYuMiAxLjktMTIuOSAxLjktMTkuMSAwbC0yNTYtODBDOS4xIDQyNi40IDAgNDE0IDAgNDAwVjI2Mi44bDQzLjIgMTMuNWM4LjQgMi42IDE3LjQtMi4xIDIwLTEwLjVzLTIuMS0xNy40LTEwLjUtMjBMMCAyMjkuMlYxODIuOGwyNzMuNyA4NS41YzkuMyAyLjkgMTkuMyAyLjkgMjguNiAwem0tMTg1LjUtMi42Yy04LjQtMi42LTE3LjQgMi4xLTIwIDEwLjVzMi4xIDE3LjQgMTAuNSAyMGw2NCAyMGM4LjQgMi42IDE3LjQtMi4xIDIwLTEwLjVzLTIuMS0xNy40LTEwLjUtMjBsLTY0LTIwem0zNTIgMzAuNWM4LjQtMi42IDEzLjEtMTEuNiAxMC41LTIwcy0xMS42LTEzLjEtMjAtMTAuNWwtNjQgMjBjLTguNCAyLjYtMTMuMSAxMS42LTEwLjUgMjBzMTEuNiAxMy4xIDIwIDEwLjVsNjQtMjB6bS0yMjQgOS41Yy04LjQtMi42LTE3LjQgMi4xLTIwIDEwLjVzMi4xIDE3LjQgMTAuNSAyMGwzOC41IDEyYzkuMyAyLjkgMTkuMyAyLjkgMjguNiAwbDM4LjUtMTJjOC40LTIuNiAxMy4xLTExLjYgMTAuNS0yMHMtMTEuNi0xMy4xLTIwLTEwLjVsLTM4LjUgMTJjLTMuMSAxLTYuNCAxLTkuNSAwbC0zOC41LTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLZXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM2IDM1MmM5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NlM0MzMuMiAwIDMzNiAwUzE2MCA3OC44IDE2MCAxNzZjMCAxOC43IDIuOSAzNi44IDguMyA1My43TDcgMzkxYy00LjUgNC41LTcgMTAuNi03IDE3djgwYzAgMTMuMyAxMC43IDI0IDI0IDI0aDgwYzEzLjMgMCAyNC0xMC43IDI0LTI0VjQ0OGg0MGMxMy4zIDAgMjQtMTAuNyAyNC0yNFYzODRoNDBjNi40IDAgMTIuNS0yLjUgMTctN2wzMy4zLTMzLjNjMTYuOSA1LjQgMzUgOC4zIDUzLjcgOC4zek0zNzYgOTZhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLZXlib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOFYzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRINTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOGMwLTM1LjMtMjguNy02NC02NC02NEg2NHptMTYgNjRoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjE0NGMwLTguOCA3LjItMTYgMTYtMTZ6TTY0IDI0MGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MHptMTYgODBoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjMzNmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwLTE3NmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYxNDR6bTE2IDgwaDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMTc2Yy04LjggMC0xNi03LjItMTYtMTZWMjQwYzAtOC44IDcuMi0xNiAxNi0xNnpNMTYwIDMzNmMwLTguOCA3LjItMTYgMTYtMTZINDAwYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMTc2Yy04LjggMC0xNi03LjItMTYtMTZWMzM2ek0yNzIgMTI4aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMjcyYy04LjggMC0xNi03LjItMTYtMTZWMTQ0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjU2IDI0MGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDB6TTM2OCAxMjhoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgzNjhjLTguOCAwLTE2LTcuMi0xNi0xNlYxNDRjMC04LjggNy4yLTE2IDE2LTE2ek0zNTIgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDM2OGMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MHpNNDY0IDEyOGgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2VjE0NGMwLTguOCA3LjItMTYgMTYtMTZ6TTQ0OCAyNDBjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZINDY0Yy04LjggMC0xNi03LjItMTYtMTZWMjQwem0xNiA4MGgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2VjMzNmMwLTguOCA3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUtoYW5kYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDUuOCAzLjdjNS45LTQuOSAxNC42LTQuOSAyMC41IDBsNDggNDBjNS45IDQuOSA3LjUgMTMuMiAzLjggMTkuOWwwIDAgMCAwIDAgMCAwIDAtLjEgLjEtLjMgLjZjLS4zIC41LS43IDEuMy0xLjIgMi4zYy0xIDItMi42IDUtNC40IDguNmMtLjUgLjktLjkgMS45LTEuNCAyLjlDMzQ0LjkgOTcuNCAzNjggMTM0IDM2OCAxNzZzLTIzLjEgNzguNi01Ny4zIDk3LjhjLjUgMSAxIDIgMS40IDIuOWMxLjggMy43IDMuMyA2LjYgNC40IDguNmMuNSAxIC45IDEuOCAxLjIgMi4zbC4zIC42IC4xIC4xIDAgMCAwIDBjMy42IDYuNyAyIDE1LTMuOCAxOS45TDI3MiAzNDMuNXYxOS44bDM1LjYtMjQuNSA0MS4xLTI4LjJjNDIuOC0yOS40IDY4LjQtNzggNjguNC0xMzBjMC0zMS4xLTkuMi02MS42LTI2LjUtODcuNWwtMi44LTQuMmMtNC02LTMuNS0xNCAxLjMtMTkuNXMxMi43LTcgMTkuMi0zLjdMNDAxLjEgODBjNy4yLTE0LjMgNy4yLTE0LjMgNy4yLTE0LjNsMCAwIDAgMCAuMSAwIC4zIC4yIDEgLjVjLjggLjQgMiAxLjEgMy41IDEuOWMyLjkgMS43IDcgNC4xIDExLjggNy4zYzkuNiA2LjQgMjIuNSAxNi4xIDM1LjQgMjljMjUuNyAyNS43IDUyLjcgNjUuNiA1Mi43IDExOS4zYzAgNTMuMS0yNi40IDEwMC41LTUxLjIgMTMzLjZjLTEyLjYgMTYuNy0yNS4xIDMwLjMtMzQuNSAzOS43Yy00LjcgNC43LTguNyA4LjQtMTEuNSAxMC45Yy0xLjQgMS4zLTIuNSAyLjItMy4zIDIuOWwtLjkgLjgtLjMgLjItLjEgLjEgMCAwIDAgMHMwIDAtMTAuMi0xMi4zbDEwLjIgMTIuM2MtNS4xIDQuMy0xMi40IDQuOS0xOC4yIDEuNmwtNzUuNi00My0zMi43IDIyLjUgNDUuNSAzMS4zYzEuOC0uNCAzLjctLjcgNS43LS43YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0xMi4yIDAtMjIuMy05LjEtMjMuOC0yMUwyNzIgNDIzLjR2MjguOWM5LjYgNS41IDE2IDE1LjkgMTYgMjcuN2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmMwLTExLjggNi40LTIyLjIgMTYtMjcuN1Y0MjQuMWwtNDAuMyAyNy43QzE5Ny44IDQ2My4zIDE4Ny45IDQ3MiAxNzYgNDcyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIuMiAwIDQuNCAuMyA2LjUgLjlsNDUuOC0zMS41LTMyLjctMjIuNS03NS42IDQzYy01LjggMy4zLTEzIDIuNy0xOC4yLTEuNkwxMTIgNDAwYy0xMC4yIDEyLjMtMTAuMiAxMi4zLTEwLjMgMTIuM2wwIDAgMCAwLS4xLS4xLS4zLS4yLS45LS44Yy0uOC0uNy0xLjktMS43LTMuMy0yLjljLTIuOC0yLjUtNi43LTYuMi0xMS41LTEwLjljLTkuNC05LjQtMjEuOS0yMy0zNC41LTM5LjdDMjYuNCAzMjQuNSAwIDI3Ny4xIDAgMjI0YzAtNTMuNyAyNi45LTkzLjYgNTIuNy0xMTkuM2MxMi45LTEyLjkgMjUuOC0yMi42IDM1LjQtMjlDOTMgNzIuNSA5NyA3MCA5OS45IDY4LjRjMS41LS44IDIuNi0xLjUgMy41LTEuOWwxLS41IC4zLS4yIC4xIDAgMCAwIDAgMHMwIDAgNy4yIDE0LjNsLTcuMi0xNC4zYzYuNS0zLjIgMTQuMy0xLjcgMTkuMiAzLjdzNS4zIDEzLjQgMS4zIDE5LjVsLTIuOCA0LjJDMTA1LjIgMTE5IDk2IDE0OS41IDk2IDE4MC42YzAgNTEuOSAyNS42IDEwMC42IDY4LjQgMTMwbDQxLjEgMjguMkwyNDAgMzYyLjZWMzQzLjVsLTQyLjItMzUuMmMtNS45LTQuOS03LjUtMTMuMi0zLjgtMTkuOWwwIDAgMCAwIDAgMCAuMS0uMSAuMy0uNmMuMy0uNSAuNy0xLjMgMS4yLTIuM2MxLTIgMi42LTUgNC40LTguNmMuNS0uOSAuOS0xLjkgMS40LTIuOUMxNjcuMSAyNTQuNiAxNDQgMjE4IDE0NCAxNzZzMjMuMS03OC42IDU3LjMtOTcuOGMtLjUtMS0xLTItMS40LTIuOWMtMS44LTMuNy0zLjMtNi42LTQuNC04LjZjLS41LTEtLjktMS44LTEuMi0yLjNsLS4zLS42LS4xLS4xIDAgMCAwIDAgMCAwYy0zLjYtNi43LTItMTUgMy44LTE5LjlsNDgtNDB6TTIyMC4yIDEyMi45Yy0xNyAxMS41LTI4LjIgMzEtMjguMiA1My4xczExLjIgNDEuNiAyOC4yIDUzLjFDMjI3IDIxMC4yIDIzMiAxOTAuOSAyMzIgMTc2cy01LTM0LjItMTEuOC01My4xem03MS41IDEwNi4yYzE3LTExLjUgMjguMi0zMSAyOC4yLTUzLjFzLTExLjItNDEuNi0yOC4yLTUzLjFDMjg1IDE0MS44IDI4MCAxNjEuMSAyODAgMTc2czUgMzQuMiAxMS44IDUzLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUtpcFNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQwLjggODguM2MxMy40LTExLjUgMTUtMzEuNyAzLjUtNDUuMXMtMzEuNy0xNS00NS4xLTMuNUwxMjggMTg2LjRWNjRjMC0xNy43LTE0LjMtMzItMzItMzJTNjQgNDYuMyA2NCA2NFYyMjRIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINjRWNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzI1LjZMMjk5LjIgNDcyLjNjMTMuNCAxMS41IDMzLjYgOS45IDQ1LjEtMy41czkuOS0zMy42LTMuNS00NS4xTDE4Mi41IDI4OEgzNTJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTgyLjVMMzQwLjggODguM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS2l0TWVkaWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg5NlYzMkg2NHptNjQgMFY0ODBINDQ4VjMySDEyOHpNNTEyIDQ4MGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg0ODBWNDgwaDMyek0yNTYgMTc2YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2NDhoNDhjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgzMjB2NDhjMCA4LjgtNy4yIDE2LTE2IDE2SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2VjI4OEgyMDhjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDBjMC04LjggNy4yLTE2IDE2LTE2aDQ4VjE3NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS2l0Y2hlblNldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDAgMTQ0QTk2IDk2IDAgMSAwIDQ4IDE0NGE5NiA5NiAwIDEgMCAxOTIgMHptNDQuNCAzMkMyNjkuOSAyNDAuMSAyMTIuNSAyODggMTQ0IDI4OEM2NC41IDI4OCAwIDIyMy41IDAgMTQ0UzY0LjUgMCAxNDQgMGM2OC41IDAgMTI1LjkgNDcuOSAxNDAuNCAxMTJoNzEuOGM4LjgtOS44IDIxLjYtMTYgMzUuOC0xNkg0OTZjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhIMzkyYy0xNC4yIDAtMjctNi4yLTM1LjgtMTZIMjg0LjR6TTE0NCA4MGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNDAwIDI0MGMxMy4zIDAgMjQgMTAuNyAyNCAyNHY4aDk2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDI4MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGg5NnYtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMjg4IDQ2NFYzNTJINTEyVjQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEgzMzZjLTI2LjUgMC00OC0yMS41LTQ4LTQ4ek00OCAzMjBoODAgMTYgMzJjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhIMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMySDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYzMzZjMC04LjggNy4yLTE2IDE2LTE2em0xMjggNjRjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMTYwdjMyaDE2ek0yNCA0NjRIMjAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLaXdpQmlyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTEuMiAzODguNGMzMS4yLTE4LjggNjQuNy0zNi40IDEwMS4xLTM2LjRINDQ4YzQuNiAwIDkuMS0uMiAxMy42LS43bDg1LjMgMTIxLjljNCA1LjcgMTEuMyA4LjIgMTcuOSA2LjFzMTEuMi04LjMgMTEuMi0xNS4zVjIyNGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEgzOTIuM2MtMzYuNCAwLTY5LjktMTcuNi0xMDEuMS0zNi40QzI2Mi4zIDQyLjEgMjI4LjMgMzIgMTkyIDMyQzg2IDMyIDAgMTE4IDAgMjI0YzAgNzEuMSAzOC42IDEzMy4xIDk2IDE2Ni4zVjQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjQxMGMxNS4zIDMuOSAzMS40IDYgNDggNmM1LjQgMCAxMC43LS4yIDE2LS43VjQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjQwNS4xYzEyLjQtNC40IDI0LjItMTAgMzUuMi0xNi43ek00NDggMjAwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMlY0MTZIMjg4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlY2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGFuZE1pbmVPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDQgMjRWMTY4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6TTE5MiAzMjBjMC0xNy43IDE0LjMtMzIgMzItMzJINDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMydjMySDE5MlYzMjB6bS03Ny4zIDkwLjVjOC4xLTE2LjMgMjQuOC0yNi41IDQyLjktMjYuNUg0ODIuM2MxOC4yIDAgMzQuOCAxMC4zIDQyLjkgMjYuNWwyNy42IDU1LjJDNTYzLjUgNDg3IDU0OCA1MTIgNTI0LjIgNTEySDExNS44Yy0yMy44IDAtMzkuMy0yNS0yOC42LTQ2LjNsMjcuNi01NS4yek0zNi4zIDEzOC4zYzcuNS0xMC45IDIyLjUtMTMuNiAzMy40LTYuMWwxMDQgNzJjMTAuOSA3LjUgMTMuNiAyMi41IDYuMSAzMy40cy0yMi41IDEzLjYtMzMuNCA2LjFsLTEwNC03MmMtMTAuOS03LjUtMTMuNi0yMi41LTYuMS0zMy40em01MzQuMS02LjFjMTAuOS03LjUgMjUuOC00LjggMzMuNCA2LjFzNC44IDI1LjgtNi4xIDMzLjRsLTEwNCA3MmMtMTAuOSA3LjUtMjUuOCA0LjgtMzMuNC02LjFzLTQuOC0yNS44IDYuMS0zMy40bDEwNC03MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGFuZG1hcmtEb21lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCAwaDE2YzEzLjMgMCAyNCAxMC43IDI0IDI0VjM0LjdDMzY4LjQgNDguMSA0MzEuOSAxMTEuNiA0NDUuMyAxOTJINDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDIuN0M4MC4xIDExMS42IDE0My42IDQ4LjEgMjI0IDM0LjdWMjRjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTY0IDI4OGg2NFY0MTZoNDBWMjg4aDY0VjQxNmg0OFYyODhoNjRWNDE2aDQwVjI4OGg2NFY0MjAuM2MuNiAuMyAxLjIgLjcgMS43IDEuMWw0OCAzMmMxMS43IDcuOCAxNyAyMi40IDEyLjkgMzUuOVM0OTQuMSA1MTIgNDgwIDUxMkgzMmMtMTQuMSAwLTI2LjUtOS4yLTMwLjYtMjIuN3MxLjEtMjguMSAxMi45LTM1LjlsNDgtMzJjLjYtLjQgMS4yLS43IDEuOC0xLjFWMjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYW5kbWFya0ZsYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyIDBoODBjOC44IDAgMTYgNy4yIDE2IDE2VjgwYzAgOC44LTcuMiAxNi0xNiAxNkgyNzJ2MzJINDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDI0MFYxNmMwLTguOCA3LjItMTYgMTYtMTZoMTZ6TTY0IDIyNGg2NFY0MTZoNDBWMjI0aDY0VjQxNmg0OFYyMjRoNjRWNDE2aDQwVjIyNGg2NFY0MjAuM2MuNiAuMyAxLjIgLjcgMS44IDEuMWw0OCAzMmMxMS43IDcuOCAxNyAyMi40IDEyLjkgMzUuOVM0OTQuMSA1MTIgNDgwIDUxMkgzMmMtMTQuMSAwLTI2LjUtOS4yLTMwLjYtMjIuN3MxLjEtMjguMSAxMi45LTM1LjlsNDgtMzJjLjYtLjQgMS4yLS43IDEuOC0xLjFWMjI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYW5kbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDAuMSA0LjJjOS44LTUuNiAyMS45LTUuNiAzMS44IDBsMTcxLjggOTguMUw0NDggMTA0bDAgLjkgNDcuOSAyNy40YzEyLjYgNy4yIDE4LjggMjIgMTUuMSAzNnMtMTYuNCAyMy44LTMwLjkgMjMuOEgzMmMtMTQuNSAwLTI3LjItOS44LTMwLjktMjMuOHMyLjUtMjguOCAxNS4xLTM2TDY0IDEwNC45VjEwNGw0LjQtMS42TDI0MC4xIDQuMnpNNjQgMjI0aDY0VjQxNmg0MFYyMjRoNjRWNDE2aDQ4VjIyNGg2NFY0MTZoNDBWMjI0aDY0VjQyMC4zYy42IC4zIDEuMiAuNyAxLjggMS4xbDQ4IDMyYzExLjcgNy44IDE3IDIyLjQgMTIuOSAzNS45UzQ5NC4xIDUxMiA0ODAgNTEySDMyYy0xNC4xIDAtMjYuNS05LjItMzAuNi0yMi43czEuMS0yOC4xIDEyLjktMzUuOWw0OC0zMmMuNi0uNCAxLjItLjcgMS44LTEuMVYyMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhbmd1YWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0SDI1Nmg0OCAxNkg1NzZjMzUuMyAwIDY0IDI4LjcgNjQgNjRWMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0SDMyMCAzMDQgMjU2IDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYxMjh6bTMyMCAwVjM4NEg1NzZWMTI4SDMyMHpNMTc4LjMgMTc1LjljLTMuMi03LjItMTAuNC0xMS45LTE4LjMtMTEuOXMtMTUuMSA0LjctMTguMyAxMS45bC02NCAxNDRjLTQuNSAxMC4xIC4xIDIxLjkgMTAuMiAyNi40czIxLjktLjEgMjYuNC0xMC4ybDguOS0yMC4xaDczLjZsOC45IDIwLjFjNC41IDEwLjEgMTYuMyAxNC42IDI2LjQgMTAuMnMxNC42LTE2LjMgMTAuMi0yNi40bC02NC0xNDR6TTE2MCAyMzMuMkwxNzkgMjc2SDE0MWwxOS00Mi44ek00NDggMTY0YzExIDAgMjAgOSAyMCAyMHY0aDQ0IDE2YzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGgtMmwtMS42IDQuNWMtOC45IDI0LjQtMjIuNCA0Ni42LTM5LjYgNjUuNGMuOSAuNiAxLjggMS4xIDIuNyAxLjZsMTguOSAxMS4zYzkuNSA1LjcgMTIuNSAxOCA2LjkgMjcuNHMtMTggMTIuNS0yNy40IDYuOWwtMTguOS0xMS4zYy00LjUtMi43LTguOC01LjUtMTMuMS04LjVjLTEwLjYgNy41LTIxLjkgMTQtMzQgMTkuNGwtMy42IDEuNmMtMTAuMSA0LjUtMjEuOS0uMS0yNi40LTEwLjJzLjEtMjEuOSAxMC4yLTI2LjRsMy42LTEuNmM2LjQtMi45IDEyLjYtNi4xIDE4LjUtOS44bC0xMi4yLTEyLjJjLTcuOC03LjgtNy44LTIwLjUgMC0yOC4zczIwLjUtNy44IDI4LjMgMGwxNC42IDE0LjYgLjUgLjVjMTIuNC0xMy4xIDIyLjUtMjguMyAyOS44LTQ1SDQ0OCAzNzZjLTExIDAtMjAtOS0yMC0yMHM5LTIwIDIwLTIwaDUydi00YzAtMTEgOS0yMCAyMC0yMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGFwdG9wQ29kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NEg1MTJjMzUuMyAwIDY0IDI4LjcgNjQgNjRWMzUySDUxMlY5NkgxMjhWMzUySDY0Vjk2ek0wIDQwMy4yQzAgMzkyLjYgOC42IDM4NCAxOS4yIDM4NEg2MjAuOGMxMC42IDAgMTkuMiA4LjYgMTkuMiAxOS4yYzAgNDIuNC0zNC40IDc2LjgtNzYuOCA3Ni44SDc2LjhDMzQuNCA0ODAgMCA0NDUuNiAwIDQwMy4yek0yODEgMjA5bC0zMSAzMSAzMSAzMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00OC00OGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNDgtNDhjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45ek0zOTMgMTc1bDQ4IDQ4YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC00OCA0OGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYXB0b3BGaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAwQzkyLjcgMCA2NCAyOC43IDY0IDY0VjI4OEgxOS4yQzguNiAyODggMCAyOTYuNiAwIDMwNy4yQzAgMzQ5LjYgMzQuNCAzODQgNzYuOCAzODRIMzIwVjI4OEgxMjhWNjRINDQ4Vjk2aDY0VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDEyOHpNNTEyIDEyOEg0MDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OEg1OTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMjU2SDU0NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMTI4em0zMiAwdjk2aDk2bC05Ni05NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGFwdG9wTWVkaWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NEg1MTJjMzUuMyAwIDY0IDI4LjcgNjQgNjRWMzUySDUxMlY5NkgxMjhWMzUySDY0Vjk2ek0wIDQwMy4yQzAgMzkyLjYgOC42IDM4NCAxOS4yIDM4NEg2MjAuOGMxMC42IDAgMTkuMiA4LjYgMTkuMiAxOS4yYzAgNDIuNC0zNC40IDc2LjgtNzYuOCA3Ni44SDc2LjhDMzQuNCA0ODAgMCA0NDUuNiAwIDQwMy4yek0yODggMTYwYzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2NDhoNDhjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgzNTJ2NDhjMCA4LjgtNy4yIDE2LTE2IDE2SDMwNGMtOC44IDAtMTYtNy4yLTE2LTE2VjI3MkgyNDBjLTguOCAwLTE2LTcuMi0xNi0xNlYyMjRjMC04LjggNy4yLTE2IDE2LTE2aDQ4VjE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGFwdG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAzMkM5Mi43IDMyIDY0IDYwLjcgNjQgOTZWMzUyaDY0Vjk2SDUxMlYzNTJoNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRIMTI4ek0xOS4yIDM4NEM4LjYgMzg0IDAgMzkyLjYgMCA0MDMuMkMwIDQ0NS42IDM0LjQgNDgwIDc2LjggNDgwSDU2My4yYzQyLjQgMCA3Ni44LTM0LjQgNzYuOC03Ni44YzAtMTAuNi04LjYtMTkuMi0xOS4yLTE5LjJIMTkuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGFyaVNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ0IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjk2LjdjNS4zLS40IDEwLjYtLjcgMTYtLjdzMTAuNyAuMiAxNiAuN1Y2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMydjQ5LjRjNTQuOSAyNS4yIDk1LjggNzUuNSAxMDguMiAxMzYuMmMzLjUgMTcuMy03LjcgMzQuMi0yNSAzNy43cy0zNC4yLTcuNy0zNy43LTI1Yy02LjEtMjkuOS0yMi41LTU1LjktNDUuNC03NC4zVjI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxNjFjLTUuMi0uNy0xMC42LTEtMTYtMXMtMTAuOCAuMy0xNiAxdjk1YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjE4OC4xQzgyLjcgMjExLjUgNjQgMjQ3LjYgNjQgMjg4YzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4SDM1MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgxOTIgMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJINDguOUMxOC41IDM4MiAwIDMzNy4yIDAgMjg4YzAtNzcuNSA0NS45LTE0NC4zIDExMi0xNzQuNlY2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGF5ZXJHcm91cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNjQuNSA1LjJjMTQuOS02LjkgMzIuMS02LjkgNDcgMGwyMTguNiAxMDFjOC41IDMuOSAxMy45IDEyLjQgMTMuOSAyMS44cy01LjQgMTcuOS0xMy45IDIxLjhsLTIxOC42IDEwMWMtMTQuOSA2LjktMzIuMSA2LjktNDcgMEw0NS45IDE0OS44QzM3LjQgMTQ1LjggMzIgMTM3LjMgMzIgMTI4czUuNC0xNy45IDEzLjktMjEuOEwyNjQuNSA1LjJ6TTQ3Ni45IDIwOS42bDUzLjIgMjQuNmM4LjUgMy45IDEzLjkgMTIuNCAxMy45IDIxLjhzLTUuNCAxNy45LTEzLjkgMjEuOGwtMjE4LjYgMTAxYy0xNC45IDYuOS0zMi4xIDYuOS00NyAwTDQ1LjkgMjc3LjhDMzcuNCAyNzMuOCAzMiAyNjUuMyAzMiAyNTZzNS40LTE3LjkgMTMuOS0yMS44bDUzLjItMjQuNiAxNTIgNzAuMmMyMy40IDEwLjggNTAuNCAxMC44IDczLjggMGwxNTItNzAuMnptLTE1MiAxOTguMmwxNTItNzAuMiA1My4yIDI0LjZjOC41IDMuOSAxMy45IDEyLjQgMTMuOSAyMS44cy01LjQgMTcuOS0xMy45IDIxLjhsLTIxOC42IDEwMWMtMTQuOSA2LjktMzIuMSA2LjktNDcgMEw0NS45IDQwNS44QzM3LjQgNDAxLjggMzIgMzkzLjMgMzIgMzg0czUuNC0xNy45IDEzLjktMjEuOGw1My4yLTI0LjYgMTUyIDcwLjJjMjMuNCAxMC44IDUwLjQgMTAuOCA3My44IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxlYWYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyIDk2Yy03OC42IDAtMTQ1LjEgNTEuNS0xNjcuNyAxMjIuNWMzMy42LTE3IDcxLjUtMjYuNSAxMTEuNy0yNi41aDg4YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDI4OCAyMTZzMCAwIDAgMGMtMTYuNiAwLTMyLjcgMS45LTQ4LjMgNS40Yy0yNS45IDUuOS00OS45IDE2LjQtNzEuNCAzMC43YzAgMCAwIDAgMCAwQzM4LjMgMjk4LjggMCAzNjQuOSAwIDQ0MHYxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjQ0MGMwLTQ4LjcgMjAuNy05Mi41IDUzLjgtMTIzLjJDMTIxLjYgMzkyLjMgMTkwLjMgNDQ4IDI3MiA0NDhsMSAwYzEzMi4xLS43IDIzOS0xMzAuOSAyMzktMjkxLjRjMC00Mi42LTcuNS04My4xLTIxLjEtMTE5LjZjLTIuNi02LjktMTIuNy02LjYtMTYuMi0uMUM0NTUuOSA3Mi4xIDQxOC43IDk2IDM3NiA5NkwyNzIgOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxlZnRMb25nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3Ny41IDQxNGMtOC44IDMuOC0xOSAyLTI2LTQuNmwtMTQ0LTEzNkMyLjcgMjY4LjkgMCAyNjIuNiAwIDI1NnMyLjctMTIuOSA3LjUtMTcuNGwxNDQtMTM2YzctNi42IDE3LjItOC40IDI2LTQuNnMxNC41IDEyLjUgMTQuNSAyMmwwIDcyIDI4OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTI4OCAwIDAgNzJjMCA5LjYtNS43IDE4LjItMTQuNSAyMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGVmdFJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNC4zIDI3My42YzQuOS00LjUgNy43LTEwLjkgNy43LTE3LjZzLTIuOC0xMy03LjctMTcuNmwtMTEyLTEwNGMtNy02LjUtMTcuMi04LjItMjUuOS00LjRzLTE0LjQgMTIuNS0xNC40IDIybDAgNTYtMTkyIDAgMC01NmMwLTkuNS01LjctMTguMi0xNC40LTIycy0xOC45LTIuMS0yNS45IDQuNGwtMTEyIDEwNEMyLjggMjQzIDAgMjQ5LjMgMCAyNTZzMi44IDEzIDcuNyAxNy42bDExMiAxMDRjNyA2LjUgMTcuMiA4LjIgMjUuOSA0LjRzMTQuNC0xMi41IDE0LjQtMjJsMC01NiAxOTIgMCAwIDU2YzAgOS41IDUuNyAxOC4yIDE0LjQgMjJzMTguOSAyLjEgMjUuOS00LjRsMTEyLTEwNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGVtb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0Yy02LjYgMC0xMyAxLTE5IDIuOWMtMjIuNSA3LTQ4LjEgMTQuOS03MSA5Yy03NS4yLTE5LjEtMTU2LjQgMTEtMjEzLjcgNjguM1MtNy4yIDI1MC44IDExLjkgMzI2YzUuOCAyMi45LTIgNDguNC05IDcxQzEgNDAzIDAgNDA5LjQgMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRjNi42IDAgMTMtMSAxOS4xLTIuOWMyMi41LTcgNDguMS0xNC45IDcxLTljNzUuMiAxOS4xIDE1Ni40LTExIDIxMy43LTY4LjNzODcuNS0xMzguNSA2OC4zLTIxMy43Yy01LjgtMjIuOSAyLTQ4LjQgOS03MWMxLjktNiAyLjktMTIuNCAyLjktMTkuMXpNMjEyLjUgMTI3LjRjLTU0LjYgMTYtMTAxLjEgNjIuNS0xMTcuMSAxMTcuMUM5Mi45IDI1MyA4NCAyNTcuOCA3NS41IDI1NS40UzYyLjIgMjQ0IDY0LjYgMjM1LjVjMTkuMS02NS4xIDczLjctMTE5LjggMTM4LjktMTM4LjljOC41LTIuNSAxNy40IDIuNCAxOS45IDEwLjlzLTIuNCAxNy40LTEwLjkgMTkuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGVzc1RoYW5FcXVhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTUuOSA5My43YzE2LjQtNi42IDI0LjQtMjUuMiAxNy44LTQxLjZzLTI1LjItMjQuNC00MS42LTE3LjhsLTMyMCAxMjhDNDAgMTY3LjEgMzIgMTc4LjkgMzIgMTkyczggMjQuOSAyMC4xIDI5LjdsMzIwIDEyOGMxNi40IDYuNiAzNS0xLjQgNDEuNi0xNy44cy0xLjQtMzUtMTcuOC00MS42TDE1MC4yIDE5MiAzOTUuOSA5My43ek0zMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMZXNzVGhhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODAuNiA4MS43YzcuOSAxNS44IDEuNSAzNS0xNC4zIDQyLjlMMTAzLjYgMjU2IDM2Ni4zIDM4Ny40YzE1LjggNy45IDIyLjIgMjcuMSAxNC4zIDQyLjlzLTI3LjEgMjIuMi00Mi45IDE0LjNsLTMyMC0xNjBDNi44IDI3OS4yIDAgMjY4LjEgMCAyNTZzNi44LTIzLjIgMTcuNy0yOC42bDMyMC0xNjBjMTUuOC03LjkgMzUtMS41IDQyLjkgMTQuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlmZVJpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY3LjIgNDEyLjVDMzM1LjkgNDM0LjkgMjk3LjUgNDQ4IDI1NiA0NDhzLTc5LjktMTMuMS0xMTEuMi0zNS41bDU4LTU4YzE1LjggOC42IDM0IDEzLjUgNTMuMyAxMy41czM3LjQtNC45IDUzLjMtMTMuNWw1OCA1OHptOTAuNyAuOGMzMy44LTQzLjQgNTQtOTggNTQtMTU3LjNzLTIwLjItMTEzLjktNTQtMTU3LjNjOS0xMi41IDcuOS0zMC4xLTMuNC00MS4zUzQyNS44IDQ1IDQxMy4zIDU0QzM2OS45IDIwLjIgMzE1LjMgMCAyNTYgMFMxNDIuMSAyMC4yIDk4LjcgNTRjLTEyLjUtOS0zMC4xLTcuOS00MS4zIDMuNFM0NSA4Ni4yIDU0IDk4LjdDMjAuMiAxNDIuMSAwIDE5Ni43IDAgMjU2czIwLjIgMTEzLjkgNTQgMTU3LjNjLTkgMTIuNS03LjkgMzAuMSAzLjQgNDEuM1M4Ni4yIDQ2NyA5OC43IDQ1OGM0My40IDMzLjggOTggNTQgMTU3LjMgNTRzMTEzLjktMjAuMiAxNTcuMy01NGMxMi41IDkgMzAuMSA3LjkgNDEuMy0zLjRzMTIuNC0yOC44IDMuNC00MS4zem0tNDUuNS00Ni4xbC01OC01OGM4LjYtMTUuOCAxMy41LTM0IDEzLjUtNTMuM3MtNC45LTM3LjQtMTMuNS01My4zbDU4LTU4QzQzNC45IDE3Ni4xIDQ0OCAyMTQuNSA0NDggMjU2cy0xMy4xIDc5LjktMzUuNSAxMTEuMnpNMzY3LjIgOTkuNWwtNTggNThjLTE1LjgtOC42LTM0LTEzLjUtNTMuMy0xMy41cy0zNy40IDQuOS01My4zIDEzLjVsLTU4LTU4QzE3Ni4xIDc3LjEgMjE0LjUgNjQgMjU2IDY0czc5LjkgMTMuMSAxMTEuMiAzNS41ek0xNTcuNSAzMDkuM2wtNTggNThDNzcuMSAzMzUuOSA2NCAyOTcuNSA2NCAyNTZzMTMuMS03OS45IDM1LjUtMTExLjJsNTggNThjLTguNiAxNS44LTEzLjUgMzQtMTMuNSA1My4zczQuOSAzNy40IDEzLjUgNTMuM3pNMjA4IDI1NmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaWdodGJ1bGIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyIDM4NGM5LjYtMzEuOSAyOS41LTU5LjEgNDkuMi04Ni4ybDAgMGM1LjItNy4xIDEwLjQtMTQuMiAxNS40LTIxLjRjMTkuOC0yOC41IDMxLjQtNjMgMzEuNC0xMDAuM0MzNjggNzguOCAyODkuMiAwIDE5MiAwUzE2IDc4LjggMTYgMTc2YzAgMzcuMyAxMS42IDcxLjkgMzEuNCAxMDAuM2M1IDcuMiAxMC4yIDE0LjMgMTUuNCAyMS40bDAgMGMxOS44IDI3LjEgMzkuNyA1NC40IDQ5LjIgODYuMkgyNzJ6TTE5MiA1MTJjNDQuMiAwIDgwLTM1LjggODAtODBWNDE2SDExMnYxNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHpNMTEyIDE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmMwLTYxLjkgNTAuMS0xMTIgMTEyLTExMmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmMtNDQuMiAwLTgwIDM1LjgtODAgODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpbmVzTGVhbmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTAuNCA3NC4xYzUuNi0xNi44LTMuNS0zNC45LTIwLjItNDAuNXMtMzQuOSAzLjUtNDAuNSAyMC4ybC0xMjggMzg0Yy01LjYgMTYuOCAzLjUgMzQuOSAyMC4yIDQwLjVzMzQuOS0zLjUgNDAuNS0yMC4ybDEyOC0zODR6bTcwLjktNDEuN2MtMTcuNC0yLjktMzMuOSA4LjktMzYuOCAyNi4zbC02NCAzODRjLTIuOSAxNy40IDguOSAzMy45IDI2LjMgMzYuOHMzMy45LTguOSAzNi44LTI2LjNsNjQtMzg0YzIuOS0xNy40LTguOS0zMy45LTI2LjMtMzYuOHpNMzUyIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMlY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlua1NsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMNDg5LjMgMzU4LjJsOTAuNS05MC41YzU2LjUtNTYuNSA1Ni41LTE0OCAwLTIwNC41Yy01MC01MC0xMjguOC01Ni41LTE4Ni4zLTE1LjRsLTEuNiAxLjFjLTE0LjQgMTAuMy0xNy43IDMwLjMtNy40IDQ0LjZzMzAuMyAxNy43IDQ0LjYgNy40bDEuNi0xLjFjMzIuMS0yMi45IDc2LTE5LjMgMTAzLjggOC42YzMxLjUgMzEuNSAzMS41IDgyLjUgMCAxMTRsLTk2IDk2LTMxLjktMjVDNDMwLjkgMjM5LjYgNDIwLjEgMTc1LjEgMzc3IDEzMmMtNTIuMi01Mi4zLTEzNC41LTU2LjItMTkxLjMtMTEuN0wzOC44IDUuMXpNMjM5IDE2MmMzMC4xLTE0LjkgNjcuNy05LjkgOTIuOCAxNS4zYzIwIDIwIDI3LjUgNDguMyAyMS43IDc0LjVMMjM5IDE2MnpNMTE2LjYgMTg3LjlMNjAuMiAyNDQuM2MtNTYuNSA1Ni41LTU2LjUgMTQ4IDAgMjA0LjVjNTAgNTAgMTI4LjggNTYuNSAxODYuMyAxNS40bDEuNi0xLjFjMTQuNC0xMC4zIDE3LjctMzAuMyA3LjQtNDQuNnMtMzAuMy0xNy43LTQ0LjYtNy40bC0xLjYgMS4xYy0zMi4xIDIyLjktNzYgMTkuMy0xMDMuOC04LjZDNzQgMzcyIDc0IDMyMSAxMDUuNSAyODkuNWw2MS44LTYxLjgtNTAuNi0zOS45ek0yMjAuOSAyNzBjLTIuMSAzOS44IDEyLjIgODAuMSA0Mi4yIDExMGMzOC45IDM4LjkgOTQuNCA1MSAxNDMuNiAzNi4zTDIyMC45IDI3MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGluayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzkuOCAyNjcuN2M1Ni41LTU2LjUgNTYuNS0xNDggMC0yMDQuNWMtNTAtNTAtMTI4LjgtNTYuNS0xODYuMy0xNS40bC0xLjYgMS4xYy0xNC40IDEwLjMtMTcuNyAzMC4zLTcuNCA0NC42czMwLjMgMTcuNyA0NC42IDcuNGwxLjYtMS4xYzMyLjEtMjIuOSA3Ni0xOS4zIDEwMy44IDguNmMzMS41IDMxLjUgMzEuNSA4Mi41IDAgMTE0TDQyMi4zIDMzNC44Yy0zMS41IDMxLjUtODIuNSAzMS41LTExNCAwYy0yNy45LTI3LjktMzEuNS03MS44LTguNi0xMDMuOGwxLjEtMS42YzEwLjMtMTQuNCA2LjktMzQuNC03LjQtNDQuNnMtMzQuNC02LjktNDQuNiA3LjRsLTEuMSAxLjZDMjA2LjUgMjUxLjIgMjEzIDMzMCAyNjMgMzgwYzU2LjUgNTYuNSAxNDggNTYuNSAyMDQuNSAwTDU3OS44IDI2Ny43ek02MC4yIDI0NC4zYy01Ni41IDU2LjUtNTYuNSAxNDggMCAyMDQuNWM1MCA1MCAxMjguOCA1Ni41IDE4Ni4zIDE1LjRsMS42LTEuMWMxNC40LTEwLjMgMTcuNy0zMC4zIDcuNC00NC42cy0zMC4zLTE3LjctNDQuNi03LjRsLTEuNiAxLjFjLTMyLjEgMjIuOS03NiAxOS4zLTEwMy44LTguNkM3NCAzNzIgNzQgMzIxIDEwNS41IDI4OS41TDIxNy43IDE3Ny4yYzMxLjUtMzEuNSA4Mi41LTMxLjUgMTE0IDBjMjcuOSAyNy45IDMxLjUgNzEuOCA4LjYgMTAzLjlsLTEuMSAxLjZjLTEwLjMgMTQuNC02LjkgMzQuNCA3LjQgNDQuNnMzNC40IDYuOSA0NC42LTcuNGwxLjEtMS42QzQzMy41IDI2MC44IDQyNyAxODIgMzc3IDEzMmMtNTYuNS01Ni41LTE0OC01Ni41LTIwNC41IDBMNjAuMiAyNDQuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlyYVNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEyIDE2MC40YzAtMzUuNSAyOC44LTY0LjQgNjQuNC02NC40YzYuOSAwIDEzLjggMS4xIDIwLjQgMy4zbDgxLjIgMjcuMWMxNi44IDUuNiAzNC45LTMuNSA0MC41LTIwLjJzLTMuNS0zNC45LTIwLjItNDAuNUwyMTcgMzguNmMtMTMuMS00LjQtMjYuOC02LjYtNDAuNi02LjZDMTA1LjUgMzIgNDggODkuNSA0OCAxNjAuNFYxOTJIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINDh2MzJIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINDZjLTIuMiAxMC41LTYuMSAyMC42LTExLjcgMjkuOUw0LjYgNDMxLjVjLTUuOSA5LjktNi4xIDIyLjItLjQgMzIuMlMyMC41IDQ4MCAzMiA0ODBIMjg4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDg4LjVsLjctMS4xYzExLjYtMTkuMyAxOC45LTQwLjcgMjEuNi02Mi45SDIyNGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxMTJWMjU2SDIyNGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxMTJWMTYwLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpc3RDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTIuMSAzOC4yYzkuOSA4LjkgMTAuNyAyNCAxLjggMzMuOWwtNzIgODBjLTQuNCA0LjktMTAuNiA3LjgtMTcuMiA3LjlzLTEyLjktMi40LTE3LjYtN0w3IDExM0MtMi4zIDEwMy42LTIuMyA4OC40IDcgNzlzMjQuNi05LjQgMzMuOSAwbDIyLjEgMjIuMSA1NS4xLTYxLjJjOC45LTkuOSAyNC0xMC43IDMzLjktMS44em0wIDE2MGM5LjkgOC45IDEwLjcgMjQgMS44IDMzLjlsLTcyIDgwYy00LjQgNC45LTEwLjYgNy44LTE3LjIgNy45cy0xMi45LTIuNC0xNy42LTdMNyAyNzNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwyMi4xIDIyLjEgNTUuMS02MS4yYzguOS05LjkgMjQtMTAuNyAzMy45LTEuOHpNMjI0IDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMySDQ4MGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0wIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMkg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTYwIDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMkg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNDggMzY4YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlzdE9sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0IDU2YzAtMTMuMyAxMC43LTI0IDI0LTI0SDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0VjE3NmgxNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEg0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNEg1NlY4MEg0OEMzNC43IDgwIDI0IDY5LjMgMjQgNTZ6TTg2LjcgMzQxLjJjLTYuNS03LjQtMTguMy02LjktMjQgMS4yTDUxLjUgMzU3LjljLTcuNyAxMC44LTIyLjcgMTMuMy0zMy41IDUuNnMtMTMuMy0yMi43LTUuNi0zMy41bDExLjEtMTUuNmMyMy43LTMzLjIgNzIuMy0zNS42IDk5LjItNC45YzIxLjMgMjQuNCAyMC44IDYwLjktMS4xIDg0LjdMODYuOCA0MzJIMTIwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDMyYy05LjUgMC0xOC4yLTUuNi0yMi0xNC40cy0yLjEtMTguOSA0LjMtMjUuOWw3Mi03OGM1LjMtNS44IDUuNC0xNC42IC4zLTIwLjV6TTIyNCA2NEg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDE2MEg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDE2MEg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaXN0VWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMTQ0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMTkyIDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxOTJ6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxOTJ6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxOTJ6TTY0IDQ2NGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTQ4LTIwOGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwIDQ4QzI2LjcgNDggMTYgNTguNyAxNiA3MnY0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNEg4OGMxMy4zIDAgMjQtMTAuNyAyNC0yNFY3MmMwLTEzLjMtMTAuNy0yNC0yNC0yNEg0MHpNMTkyIDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxOTJ6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxOTJ6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxOTJ6TTE2IDIzMnY0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNEg4OGMxMy4zIDAgMjQtMTAuNyAyNC0yNFYyMzJjMC0xMy4zLTEwLjctMjQtMjQtMjRINDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek00MCAzNjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0djQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0SDg4YzEzLjMgMCAyNC0xMC43IDI0LTI0VjM5MmMwLTEzLjMtMTAuNy0yNC0yNC0yNEg0MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGl0ZWNvaW5TaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlM2NCA0Ni4zIDY0IDY0VjIxMy42TDIzLjIgMjI1LjJjLTE3IDQuOS0yNi44IDIyLjYtMjIgMzkuNnMyMi42IDI2LjggMzkuNiAyMkw2NCAyODAuMVY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDEyOFYyNjEuOWwxMzYuOC0zOS4xYzE3LTQuOSAyNi44LTIyLjYgMjItMzkuNnMtMjIuNi0yNi44LTM5LjYtMjJMMTI4IDE5NS4zVjY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMb2NhdGlvbkFycm93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyOS42IDkyLjFjNC45LTExLjkgMi4xLTI1LjYtNy0zNC43cy0yMi44LTExLjktMzQuNy03bC0zNTIgMTQ0Yy0xNC4yIDUuOC0yMi4yIDIwLjgtMTkuMyAzNS44czE2LjEgMjUuOCAzMS40IDI1LjhIMjI0VjQzMmMwIDE1LjMgMTAuOCAyOC40IDI1LjggMzEuNHMzMC01LjEgMzUuOC0xOS4zbDE0NC0zNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxvY2F0aW9uQ3Jvc3NoYWlycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMlY2Ni43QzM2OC40IDgwLjEgNDMxLjkgMTQzLjYgNDQ1LjMgMjI0SDQ4MGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg0NDUuM0M0MzEuOSAzNjguNCAzNjguNCA0MzEuOSAyODggNDQ1LjNWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjQ0NS4zQzE0My42IDQzMS45IDgwLjEgMzY4LjQgNjYuNyAyODhIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJINjYuN0M4MC4xIDE0My42IDE0My42IDgwLjEgMjI0IDY2LjdWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTEyOCAyNTZhMTI4IDEyOCAwIDEgMCAyNTYgMCAxMjggMTI4IDAgMSAwIC0yNTYgMHptMTI4LTgwYTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMb2NhdGlvbkRvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTUuNyA0OTkuMkMyNjcgNDM1IDM4NCAyNzkuNCAzODQgMTkyQzM4NCA4NiAyOTggMCAxOTIgMFMwIDg2IDAgMTkyYzAgODcuNCAxMTcgMjQzIDE2OC4zIDMwNy4yYzEyLjMgMTUuMyAzNS4xIDE1LjMgNDcuNCAwek0xOTIgMTI4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMb2NhdGlvblBpbkxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE1LjcgNDk5LjJjMTEtMTMuOCAyNS4xLTMxLjcgNDAuMy01Mi4zVjM1MmMwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRWMjcyYzAtNTUuNiA0MC41LTEwMS43IDkzLjYtMTEwLjVDMzY3IDcwIDI4Ny43IDAgMTkyIDBDODYgMCAwIDg2IDAgMTkyYzAgODcuNCAxMTcgMjQzIDE2OC4zIDMwNy4yYzEyLjMgMTUuMyAzNS4xIDE1LjMgNDcuNCAwek0xOTIgMTI4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek00MDAgMjQwYzE3LjcgMCAzMiAxNC4zIDMyIDMydjQ4SDM2OFYyNzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS04MCAzMnY0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMySDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzNTJjMC0xNy43LTE0LjMtMzItMzItMzJWMjcyYzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMb2NhdGlvblBpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMTkyYzAgODcuNC0xMTcgMjQzLTE2OC4zIDMwNy4yYy0xMi4zIDE1LjMtMzUuMSAxNS4zLTQ3LjQgMEMxMTcgNDM1IDAgMjc5LjQgMCAxOTJDMCA4NiA4NiAwIDE5MiAwUzM4NCA4NiAzODQgMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMb2NrT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIgMTQ0YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODB2NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYxNDRDNTc2IDY0LjUgNTExLjUgMCA0MzIgMFMyODggNjQuNSAyODggMTQ0djQ4SDY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjI1NmMwLTM1LjMtMjguNy02NC02NC02NEgzNTJWMTQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NCAxNDR2NDhIMzA0VjE0NGMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MHpNODAgMTkyVjE0NEM4MCA2NC41IDE0NC41IDAgMjI0IDBzMTQ0IDY0LjUgMTQ0IDE0NHY0OGgxNmMzNS4zIDAgNjQgMjguNyA2NCA2NFY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjI1NmMwLTM1LjMgMjguNy02NCA2NC02NEg4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTG9jdXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMiAzMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGgxNmM5OC43IDAgMTgwLjYgNzEuNCAxOTcgMTY1LjRjLTktMy41LTE4LjgtNS40LTI5LTUuNEg0MzEuOGwtNDEuOC05Ny41Yy0zLjQtNy45LTEwLjgtMTMuNC0xOS4zLTE0LjRzLTE3IDIuNy0yMi4xIDkuNmwtNDAuOSA1NS41LTIxLjctNTAuN2MtMy4zLTcuOC0xMC41LTEzLjItMTguOS0xNC4zcy0xNi43IDIuMy0yMiA4LjlsLTI0MCAzMDRjLTguMiAxMC40LTYuNCAyNS41IDQgMzMuN3MyNS41IDYuNCAzMy43LTRsNzkuNC0xMDAuNSA0MyAxNi40LTQwLjUgNTVjLTcuOSAxMC43LTUuNiAyNS43IDUuMSAzMy42czI1LjcgNS42IDMzLjYtNS4xTDIxNS4xIDQwMGg3NC41bC0yOS4zIDQyLjNjLTcuNSAxMC45LTQuOCAyNS44IDYuMSAzMy40czI1LjggNC44IDMzLjQtNi4xTDM0OCA0MDBoODAuNGwzOC44IDY3LjljNi42IDExLjUgMjEuMiAxNS41IDMyLjcgOC45czE1LjUtMjEuMiA4LjktMzIuN0w0ODMuNiA0MDBINDk2YzQ0LjEgMCA3OS44LTM1LjcgODAtNzkuN2MwLS4xIDAtLjIgMC0uM1YyODBDNTc2IDE0MyA0NjUgMzIgMzI4IDMySDMxMnptNTAuNSAxNjhsMTcuMSA0MEgzMzNsMjkuNS00MHptLTg3LjcgMzguMWwtMS40IDEuOUgyMjUuMWwzMi43LTQxLjUgMTYuOSAzOS41ek04OC44IDI0MEM1Ny40IDI0MCAzMiAyNjUuNCAzMiAyOTYuOGMwIDE1LjUgNi4zIDMwIDE2LjkgNDAuNEwxMjYuNyAyNDBIODguOHpNNDk2IDI4OGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUx1bmdzVmlydXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMTU2LjJjLTguNS03LjYtMTkuNy0xMi4yLTMyLTEyLjJzLTIzLjUgNC42LTMyIDEyLjJWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ0NC41IDE5NS41Yy0xNi40LTE2LjQtNDEuOC0xOC41LTYwLjUtNi4xVjE2NS4zQzM4NCAxMjcgNDE1IDk2IDQ1My4zIDk2YzIxLjcgMCA0Mi44IDEwLjIgNTUuOCAyOC44YzE1LjQgMjIuMSA0NC4zIDY1LjQgNzEgMTE2LjljMjYuNSA1MC45IDUyLjQgMTEyLjUgNTkuNiAxNzAuM2MuMiAxLjMgLjIgMi42IC4yIDR2N2MwIDQ5LjEtMzkuOCA4OS04OSA4OWMtNy4zIDAtMTQuNS0uOS0yMS42LTIuN2wtNzIuNy0xOC4yYy0yMC45LTUuMi0zOC43LTE3LjEtNTEuNS0zMi45YzE0IDEuNSAyOC41LTMgMzkuMi0xMy44bC0yMi42LTIyLjYgMjIuNiAyMi42YzE4LjctMTguNyAxOC43LTQ5LjEgMC02Ny45Yy0xLjEtMS4xLTEuNC0yLTEuNS0yLjVjLS4xLS44LS4xLTEuOCAuNC0yLjlzMS4yLTEuOSAxLjgtMi4zYy41LS4zIDEuMy0uOCAyLjktLjhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhjLTEuNiAwLTIuNC0uNC0yLjktLjhjLS42LS40LTEuMy0xLjItMS44LTIuM3MtLjUtMi4yLS40LTIuOWMuMS0uNiAuNC0xLjQgMS41LTIuNWMxOC43LTE4LjcgMTguNy00OS4xIDAtNjcuOXpNNDIxLjggNDIxLjhjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwQzM3NS45IDM5OC41IDMzNiA0MTUgMzM2IDQ0OGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmMwLTMzLTM5LjktNDkuNS02My4yLTI2LjJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZDMjQxLjUgMzc1LjkgMjI1IDMzNiAxOTIgMzM2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2YzMzIDAgNDkuNS0zOS45IDI2LjItNjMuMmMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwQzI2NC4xIDI0MS41IDMwNCAyMjUgMzA0IDE5MmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2YzAgMzMgMzkuOSA0OS41IDYzLjIgMjYuMmM2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZDMzk4LjUgMjY0LjEgNDE1IDMwNCA0NDggMzA0YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2Yy0zMyAwLTQ5LjUgMzkuOS0yNi4yIDYzLjJjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZ6TTE4My4zIDQ5MS4ybC03Mi43IDE4LjJjLTcuMSAxLjgtMTQuMyAyLjctMjEuNiAyLjdjLTQ5LjEgMC04OS0zOS44LTg5LTg5di03YzAtMS4zIC4xLTIuNyAuMi00YzcuMi01Ny45IDMzLjEtMTE5LjQgNTkuNi0xNzAuM2MyNi44LTUxLjUgNTUuNi05NC44IDcxLTExNi45YzEzLTE4LjYgMzQtMjguOCA1NS44LTI4LjhDMjI1IDk2IDI1NiAxMjcgMjU2IDE2NS4zdjI0LjFjLTE4LjYtMTIuNC00NC0xMC4zLTYwLjUgNi4xYy0xOC43IDE4LjctMTguNyA0OS4xIDAgNjcuOWMxLjEgMS4xIDEuNCAyIDEuNSAyLjVjLjEgLjggLjEgMS44LS40IDIuOXMtMS4yIDEuOS0xLjggMi4zYy0uNSAuMy0xLjMgLjgtMi45IC44Yy0yNi41IDAtNDggMjEuNS00OCA0OHMyMS41IDQ4IDQ4IDQ4YzEuNiAwIDIuNCAuNCAyLjkgLjhjLjYgLjQgMS4zIDEuMiAxLjggMi4zcy41IDIuMiAuNCAyLjljLS4xIC42LS40IDEuNC0xLjUgMi41Yy0xOC43IDE4LjctMTguNyA0OS4xIDAgNjcuOWMxMC43IDEwLjcgMjUuMyAxNS4zIDM5LjIgMTMuOGMtMTIuOCAxNS45LTMwLjYgMjcuNy01MS41IDMyLjl6TTI5NiAzMjBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em03MiAzMmExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMdW5ncyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMlYxNjQuMWMwIDE2LjQgOC40IDMxLjcgMjIuMiA0MC41bDkuOCA2LjJWMTY1LjNDMzg0IDEyNyA0MTUgOTYgNDUzLjMgOTZjMjEuNyAwIDQyLjggMTAuMiA1NS44IDI4LjhjMTUuNCAyMi4xIDQ0LjMgNjUuNCA3MSAxMTYuOWMyNi41IDUwLjkgNTIuNCAxMTIuNSA1OS42IDE3MC4zYy4yIDEuMyAuMiAyLjYgLjIgNHY3YzAgNDkuMS0zOS44IDg5LTg5IDg5Yy03LjMgMC0xNC41LS45LTIxLjYtMi43bC03Mi43LTE4LjJDNDE0IDQ4MC41IDM4NCA0NDIuMSAzODQgMzk4VjMyNWw5MC41IDU3LjZjNy41IDQuNyAxNy4zIDIuNSAyMi4xLTQuOXMyLjUtMTcuMy00LjktMjIuMUwzODQgMjg3LjF2LS40bC00NC4xLTI4LjFjLTcuMy00LjYtMTMuOS0xMC4xLTE5LjktMTYuMWMtNS45IDYtMTIuNiAxMS41LTE5LjkgMTYuMUwyNTYgMjg2LjcgMTYxLjIgMzQ3bC0xMy41IDguNmMwIDAgMCAwLS4xIDBjLTcuNCA0LjgtOS42IDE0LjYtNC44IDIyLjFjNC43IDcuNSAxNC42IDkuNyAyMi4xIDQuOWw5MS4xLTU4VjM5OGMwIDQ0LjEtMzAgODIuNS03Mi43IDkzLjFsLTcyLjcgMTguMmMtNy4xIDEuOC0xNC4zIDIuNy0yMS42IDIuN2MtNDkuMSAwLTg5LTM5LjgtODktODl2LTdjMC0xLjMgLjEtMi43IC4yLTRjNy4yLTU3LjkgMzMuMS0xMTkuNCA1OS42LTE3MC4zYzI2LjgtNTEuNSA1NS42LTk0LjggNzEtMTE2LjljMTMtMTguNiAzNC0yOC44IDU1LjgtMjguOEMyMjUgOTYgMjU2IDEyNyAyNTYgMTY1LjN2NDUuNWw5LjgtNi4yYzEzLjgtOC44IDIyLjItMjQuMSAyMi4yLTQwLjVWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIuNyAzMy40YzEzLjUtNC4xIDI4LjEgMS4xIDM1LjkgMTIuOUwyMjQgMjk0LjMgMzg5LjQgNDYuMmM3LjgtMTEuNyAyMi40LTE3IDM1LjktMTIuOVM0NDggNDkuOSA0NDggNjRWNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjE2OS43TDI1MC42IDM2OS44Yy01LjkgOC45LTE1LjkgMTQuMi0yNi42IDE0LjJzLTIwLjctNS4zLTI2LjYtMTQuMkw2NCAxNjkuN1Y0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNjRDMCA0OS45IDkuMiAzNy41IDIyLjcgMzMuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFnbmV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTYwdjk2QzAgMzc5LjcgMTAwLjMgNDgwIDIyNCA0ODBzMjI0LTEwMC4zIDIyNC0yMjRWMTYwSDMyMHY5NmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NlYxNjBIMHptMC0zMkgxMjhWNjRjMC0xNy43LTE0LjMtMzItMzItMzJIMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NHY2NHptMzIwIDBINDQ4VjY0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hZ25pZnlpbmdHbGFzc0Fycm93UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NmMtMzQuNCAyNS4yLTc2LjggNDAtMTIyLjcgNDBDOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDBTNDE2IDkzLjEgNDE2IDIwOHpNMjQxIDExOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzMSAzMUgxMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRIMjM4LjFsLTMxIDMxYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNzItNzJjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTcyLTcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYWduaWZ5aW5nR2xhc3NDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2Yy0zNC40IDI1LjItNzYuOCA0MC0xMjIuNyA0MEM5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMFM0MTYgOTMuMSA0MTYgMjA4em0tMzEyIDh2NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTY0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0em04MC05NlYyODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6bTgwIDY0djk2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMTg0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYWduaWZ5aW5nR2xhc3NEb2xsYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NmMtMzQuNCAyNS4yLTc2LjggNDAtMTIyLjcgNDBDOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDBTNDE2IDkzLjEgNDE2IDIwOHpNMjI4IDEwNGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjB2MTRjLTcuNiAxLjctMTUuMiA0LjQtMjIuMiA4LjVjLTEzLjkgOC4zLTI1LjkgMjIuOC0yNS44IDQzLjljLjEgMjAuMyAxMiAzMy4xIDI0LjcgNDAuN2MxMSA2LjYgMjQuNyAxMC44IDM1LjYgMTRsMS43IC41YzEyLjYgMy44IDIxLjggNi44IDI4IDEwLjdjNS4xIDMuMiA1LjggNS40IDUuOSA4LjJjLjEgNS0xLjggOC01LjkgMTAuNWMtNSAzLjEtMTIuOSA1LTIxLjQgNC43Yy0xMS4xLS40LTIxLjUtMy45LTM1LjEtOC41Yy0yLjMtLjgtNC43LTEuNi03LjItMi40Yy0xMC41LTMuNS0yMS44IDIuMi0yNS4zIDEyLjZzMi4yIDIxLjggMTIuNiAyNS4zYzEuOSAuNiA0IDEuMyA2LjEgMi4xbDAgMCAwIDBjOC4zIDIuOSAxNy45IDYuMiAyOC4yIDguNFYzMTJjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBWMjk4LjJjOC0xLjcgMTYtNC41IDIzLjItOWMxNC4zLTguOSAyNS4xLTI0LjEgMjQuOC00NWMtLjMtMjAuMy0xMS43LTMzLjQtMjQuNi00MS42Yy0xMS41LTcuMi0yNS45LTExLjYtMzcuMS0xNWwtLjctLjJjLTEyLjgtMy45LTIxLjktNi43LTI4LjMtMTAuNWMtNS4yLTMuMS01LjMtNC45LTUuMy02LjdjMC0zLjcgMS40LTYuNSA2LjItOS4zYzUuNC0zLjIgMTMuNi01LjEgMjEuNS01YzkuNiAuMSAyMC4yIDIuMiAzMS4yIDUuMmMxMC43IDIuOCAyMS42LTMuNSAyNC41LTE0LjJzLTMuNS0yMS42LTE0LjItMjQuNWMtNi41LTEuNy0xMy43LTMuNC0yMS4xLTQuN1YxMDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hZ25pZnlpbmdHbGFzc0xvY2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZjLTM0LjQgMjUuMi03Ni44IDQwLTEyMi43IDQwQzkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwUzQxNiA5My4xIDQxNiAyMDh6TTI4OCAxNzZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCA0OC44IDQ2LjUgMTExLjYgNjguNiAxMzguNmM2IDcuMyAxNi44IDcuMyAyMi43IDBjMjIuMS0yNyA2OC42LTg5LjggNjguNi0xMzguNnptLTExMiAwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hZ25pZnlpbmdHbGFzc01pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZjLTM0LjQgMjUuMi03Ni44IDQwLTEyMi43IDQwQzkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwUzQxNiA5My4xIDQxNiAyMDh6TTEzNiAxODRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRIMjgwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDEzNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFnbmlmeWluZ0dsYXNzUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2Yy0zNC40IDI1LjItNzYuOCA0MC0xMjIuNyA0MEM5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMFM0MTYgOTMuMSA0MTYgMjA4ek0xODQgMjk2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMjMyaDY0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDIzMlYxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR2NjRIMTIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDY0djY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYWduaWZ5aW5nR2xhc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NmMtMzQuNCAyNS4yLTc2LjggNDAtMTIyLjcgNDBDOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDBTNDE2IDkzLjEgNDE2IDIwOHpNMjA4IDM1MmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hbmF0U2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjk4LjdDNjkuMiAxMTMuOSAwIDE5Mi45IDAgMjg4VjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjI4OGMwLTU5LjYgNDAuOC0xMDkuOCA5Ni0xMjRWNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMTY0YzU1LjIgMTQuMiA5NiA2NC4zIDk2IDEyNFY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyODhjMC05NS4xLTY5LjItMTc0LjEtMTYwLTE4OS4zVjY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXBMb2NhdGlvbkRvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDggMTIwYzAgNTQuNi03My4xIDE1MS45LTEwNS4yIDE5MmMtNy43IDkuNi0yMiA5LjYtMjkuNiAwQzI0MS4xIDI3MS45IDE2OCAxNzQuNiAxNjggMTIwQzE2OCA1My43IDIyMS43IDAgMjg4IDBzMTIwIDUzLjcgMTIwIDEyMHptOCA4MC40YzMuNS02LjkgNi43LTEzLjggOS42LTIwLjZjLjUtMS4yIDEtMi41IDEuNS0zLjdsMTE2LTQ2LjRDNTU4LjkgMTIzLjQgNTc2IDEzNSA1NzYgMTUyVjQyMi44YzAgOS44LTYgMTguNi0xNS4xIDIyLjNMNDE2IDUwM1YyMDAuNHpNMTM3LjYgMTM4LjNjMi40IDE0LjEgNy4yIDI4LjMgMTIuOCA0MS41YzIuOSA2LjggNi4xIDEzLjcgOS42IDIwLjZWNDUxLjhMMzIuOSA1MDIuN0MxNy4xIDUwOSAwIDQ5Ny40IDAgNDgwLjRWMjA5LjZjMC05LjggNi0xOC42IDE1LjEtMjIuM2wxMjIuNi00OXpNMzI3LjggMzMyYzEzLjktMTcuNCAzNS43LTQ1LjcgNTYuMi03N1Y1MDQuM0wxOTIgNDQ5LjRWMjU1YzIwLjUgMzEuMyA0Mi4zIDU5LjYgNTYuMiA3N2MyMC41IDI1LjYgNTkuMSAyNS42IDc5LjYgMHpNMjg4IDE1MmE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcExvY2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwMi44IDMxMkMzMzQuOSAyNzEuOSA0MDggMTc0LjYgNDA4IDEyMEM0MDggNTMuNyAzNTQuMyAwIDI4OCAwUzE2OCA1My43IDE2OCAxMjBjMCA1NC42IDczLjEgMTUxLjkgMTA1LjIgMTkyYzcuNyA5LjYgMjIgOS42IDI5LjYgMHpNNDE2IDUwM2wxNDQuOS01OGM5LjEtMy42IDE1LjEtMTIuNSAxNS4xLTIyLjNWMTUyYzAtMTctMTcuMS0yOC42LTMyLjktMjIuM2wtMTE2IDQ2LjRjLS41IDEuMi0xIDIuNS0xLjUgMy43Yy0yLjkgNi44LTYuMSAxMy43LTkuNiAyMC42VjUwM3pNMTUuMSAxODcuM0M2IDE5MSAwIDE5OS44IDAgMjA5LjZWNDgwLjRjMCAxNyAxNy4xIDI4LjYgMzIuOSAyMi4zTDE2MCA0NTEuOFYyMDAuNGMtMy41LTYuOS02LjctMTMuOC05LjYtMjAuNmMtNS42LTEzLjItMTAuNC0yNy40LTEyLjgtNDEuNWwtMTIyLjYgNDl6TTM4NCAyNTVjLTIwLjUgMzEuMy00Mi4zIDU5LjYtNTYuMiA3N2MtMjAuNSAyNS42LTU5LjEgMjUuNi03OS42IDBjLTEzLjktMTcuNC0zNS43LTQ1LjctNTYuMi03N1Y0NDkuNGwxOTIgNTQuOVYyNTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcFBpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxNDRhMTQ0IDE0NCAwIDEgMSAyODggMEExNDQgMTQ0IDAgMSAxIDE2IDE0NHpNMTYwIDgwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2Yy01MyAwLTk2IDQzLTk2IDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZjMC0zNS4zIDI4LjctNjQgNjQtNjR6TTEyOCA0ODBWMzE3LjFjMTAuNCAxLjkgMjEuMSAyLjkgMzIgMi45czIxLjYtMSAzMi0yLjlWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDQ3Ni4xTDE5MiA0MjEuMlYzNS45TDM4NCA5MC44VjQ3Ni4xem0zMi0xLjJWODguNEw1NDMuMSAzNy41YzE1LjgtNi4zIDMyLjkgNS4zIDMyLjkgMjIuM1YzOTQuNmMwIDkuOC02IDE4LjYtMTUuMSAyMi4zTDQxNiA0NzQuOHpNMTUuMSA5NS4xTDE2MCAzNy4yVjQyMy42TDMyLjkgNDc0LjVDMTcuMSA0ODAuOCAwIDQ2OS4yIDAgNDUyLjJWMTE3LjRjMC05LjggNi0xOC42IDE1LjEtMjIuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFya2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MSAzMUM0NDUuMS00LjggMzg2LjktNC44IDM1MSAzMWwtMTUgMTVMMzIyLjkgMzNDMjk0LjggNC45IDI0OS4yIDQuOSAyMjEuMSAzM0wxMzUgMTE5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBMMjU1IDY2LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMzAyLjEgODAgMTg2LjMgMTk1LjcgMzE2LjMgMzI1LjcgNDgxIDE2MWMzNS45LTM1LjkgMzUuOS05NC4xIDAtMTI5Ljl6TTI5My43IDM0OC4zTDE2My43IDIxOC4zIDk5LjUgMjgyLjVjLTQ4IDQ4LTgwLjggMTA5LjItOTQuMSAxNzUuOGwtNSAyNWMtMS42IDcuOSAuOSAxNiA2LjYgMjEuN3MxMy44IDguMSAyMS43IDYuNmwyNS01YzY2LjYtMTMuMyAxMjcuOC00Ni4xIDE3NS44LTk0LjFsNjQuMi02NC4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXJzQW5kVmVudXNCdXJzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQgMGMtOS43IDAtMTguNSA1LjgtMjIuMiAxNC44cy0xLjcgMTkuMyA1LjIgMjYuMmwzOSAzOS0yMi4yIDIyLjJDNDc1LjkgNzguNCA0MzkuNiA2NCA0MDAgNjRjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwYzAgODAuMiA1OSAxNDYuNiAxMzYgMTU4LjJWNDA4SDM1MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGgyNHYzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjQ1NmgyNGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEg0MjRWMzgyLjJjNzctMTEuNiAxMzYtNzggMTM2LTE1OC4yYzAtMzEuNC05LTYwLjctMjQuNy04NS40TDU2MCAxMTMuOWwzOSAzOWM2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yczE0LjgtMTIuNSAxNC44LTIyLjJWMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRINTA0ek00MDAgMTI4YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyek0xOTAuOSAxOC4xQzE4OC40IDEyIDE4Mi42IDggMTc2IDhzLTEyLjQgNC0xNC45IDEwLjFsLTI5LjQgNzRMNTUuNiA2OC45Yy02LjMtMS45LTEzLjEgLjItMTcuMiA1LjNzLTQuNiAxMi4yLTEuNCAxNy45bDM5LjUgNjkuMUwxMC45IDIwNi40Yy01LjQgMy43LTggMTAuMy02LjUgMTYuN3M2LjcgMTEuMiAxMy4xIDEyLjJsNzguNyAxMi4yTDkwLjYgMzI3Yy0uNSA2LjUgMy4xIDEyLjcgOSAxNS41czEyLjkgMS44IDE3LjgtMi42TDE3NiAyODYuMWw1OC42IDUzLjljNC4xIDMuOCA5LjkgNS4xIDE1LjIgMy42QzIyMy42IDMxMC44IDIwOCAyNjkuMiAyMDggMjI0YzAtNjAuOCAyOC4zLTExNSA3Mi40LTE1MC4yTDIyMC4zIDkyLjFsLTI5LjQtNzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcnNBbmRWZW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzcuOCAxNC44QzM0MS41IDUuOCAzNTAuMyAwIDM2MCAwSDQ3MmMxMy4zIDAgMjQgMTAuNyAyNCAyNFYxMzZjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtMzktMzktMjQuNyAyNC43QzQwNyAxNjMuMyA0MTYgMTkyLjYgNDE2IDIyNGMwIDgwLjItNTkgMTQ2LjYtMTM2IDE1OC4yVjQwOGgyNGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyODB2MzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWNDU2SDIwOGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGgyNFYzODIuMkMxNTUgMzcwLjYgOTYgMzA0LjIgOTYgMjI0YzAtODguNCA3MS42LTE2MCAxNjAtMTYwYzM5LjYgMCA3NS45IDE0LjQgMTAzLjggMzguMkwzODIuMSA4MCAzNDMgNDFjLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJ6TTQ0OCA0OGwwIDBoMHYwek0zNTIgMjI0YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFyc0RvdWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTIgMzJjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOHMtMS43IDE5LjMgNS4yIDI2LjJsMzMuNCAzMy40TDI3NS44IDE1OWMtMjguNC0xOS41LTYyLjctMzEtOTkuOC0zMUM3OC44IDEyOCAwIDIwNi44IDAgMzA0czc4LjggMTc2IDE3NiAxNzZzMTc2LTc4LjggMTc2LTE3NmMwLTM3LTExLjQtNzEuNC0zMS05OS44bDUyLjYtNTIuNkw0MDcgMTg1YzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJzMTQuOC0xMi41IDE0LjgtMjIuMlY1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNEgzMTJ6bTg4IDQ4aDB2MGwwIDB6TTY0IDMwNGExMTIgMTEyIDAgMSAxIDIyNCAwQTExMiAxMTIgMCAxIDEgNjQgMzA0ek0zNjggNDgwYzk3LjIgMCAxNzYtNzguOCAxNzYtMTc2YzAtMzctMTEuNC03MS40LTMxLTk5LjhsNTIuNi01Mi42TDU5OSAxODVjNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMnMxNC44LTEyLjUgMTQuOC0yMi4yVjU2YzAtMTMuMy0xMC43LTI0LTI0LTI0SDUwNGMtOS43IDAtMTguNSA1LjgtMjIuMiAxNC44Yy0xLjIgMi45LTEuOCA2LTEuOCA5bDAgLjJ2LjJjMCA2LjIgMi41IDEyLjIgNyAxNi44bDMzLjQgMzMuNEw0ODAgMTQ2LjdWMTY4YzAgMjIuNi0xMy42IDQzLjEtMzQuNiA1MS43Yy0uOCAuMy0xLjcgLjctMi41IDFDNDY1LjcgMjQxLjIgNDgwIDI3MC45IDQ4MCAzMDRjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJjLTUuNCAwLTEwLjgtLjQtMTYtMS4xYy0xMi45IDIwLjQtMjkuMSAzOC4zLTQ4LjEgNTMuMWMxOS44IDcuOCA0MS40IDEyIDY0IDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXJzU3Ryb2tlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA4IDM2OGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6bTE3NC40LTg4QzM3MC43IDM2NS44IDI5Ny4xIDQzMiAyMDggNDMyYy05Ny4yIDAtMTc2LTc4LjgtMTc2LTE3NnM3OC44LTE3NiAxNzYtMTc2Yzg5LjEgMCAxNjIuNyA2Ni4yIDE3NC40IDE1Mkg0MTZWMTc2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR2NTZoMzJWMTc2YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMnMxOS4zLTEuNyAyNi4yIDUuMmw4MCA4MGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtODAgODBjLTYuOSA2LjktMTcuMiA4LjktMjYuMiA1LjJzLTE0LjgtMTIuNS0xNC44LTIyLjJWMjgwSDQ2NHY1NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYyODBIMzgyLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcnNTdHJva2VVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDguNyA0LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBsNjQgNjRjNC42IDQuNiA1LjkgMTEuNSAzLjUgMTcuNHMtOC4zIDkuOS0xNC44IDkuOUgxODR2MjRoMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMTg0djI0YzAgLjYgMCAxLjItLjEgMS44Yzc3IDExLjYgMTM2LjEgNzggMTM2LjEgMTU4LjJjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBTMCA0NDAuNCAwIDM1MmMwLTgwLjIgNTkuMS0xNDYuNyAxMzYuMS0xNTguMmMwLS42LS4xLTEuMi0uMS0xLjhWMTY4SDEwNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGgzMlY5Nkg5NmMtNi41IDAtMTIuMy0zLjktMTQuOC05LjlzLTEuMS0xMi45IDMuNS0xNy40bDY0LTY0ek0yNTYgMzUyQTk2IDk2IDAgMSAwIDY0IDM1MmE5NiA5NiAwIDEgMCAxOTIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFyc1N0cm9rZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzYgMGMtOS43IDAtMTguNSA1LjgtMjIuMiAxNC44cy0xLjcgMTkuMyA1LjIgMjYuMmwzMy40IDMzLjRMMzcwLjMgOTYuNCAzNDUgNzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMjUuNCAyNS40TDMwNy44IDE1OWMtMjguNC0xOS41LTYyLjctMzEtOTkuOC0zMWMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZzNzguOCAxNzYgMTc2IDE3NnMxNzYtNzguOCAxNzYtMTc2YzAtMzctMTEuNC03MS40LTMxLTk5LjhsMjguNi0yOC42TDQwNyAyMDFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0yNS40LTI1LjQgMjIuMS0yMi4xTDQ3MSAxNTNjNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMnMxNC44LTEyLjUgMTQuOC0yMi4yVjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0SDM3NnptODggNDhoMHYwbDAgMHpNOTYgMzA0YTExMiAxMTIgMCAxIDEgMjI0IDBBMTEyIDExMiAwIDEgMSA5NiAzMDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg5LjggNDYuOGMzLjctOSAxMi41LTE0LjggMjIuMi0xNC44SDQyNGMxMy4zIDAgMjQgMTAuNyAyNCAyNFYxNjhjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtMzMuNC0zMy40TDMyMSAyMDQuMmMxOS41IDI4LjQgMzEgNjIuNyAzMSA5OS44YzAgOTcuMi03OC44IDE3Ni0xNzYgMTc2UzAgNDAxLjIgMCAzMDRzNzguOC0xNzYgMTc2LTE3NmMzNyAwIDcxLjQgMTEuNCA5OS44IDMxbDUyLjYtNTIuNkwyOTUgNzNjLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJ6TTQwMCA4MGwwIDBoMHYwek0xNzYgNDE2YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFydGluaUdsYXNzQ2l0cnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzMiAyNDBjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZjLTM1LjUgMC02Ni42IDE5LjMtODMuMiA0OEgyOTYuMkMzMTYgNDAuMSAzNjkuMyAwIDQzMiAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0cy02NC41IDE0NC0xNDQgMTQ0Yy0yNy43IDAtNTMuNS03LjgtNzUuNS0yMS4zbDM1LjQtMzUuNGMxMi4yIDUuNiAyNS44IDguNyA0MC4xIDguN3pNMS44IDE0Mi44QzUuNSAxMzMuOCAxNC4zIDEyOCAyNCAxMjhIMzkyYzkuNyAwIDE4LjUgNS44IDIyLjIgMTQuOHMxLjcgMTkuMy01LjIgMjYuMmwtMTc3IDE3N1Y0NjRoNjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMjA4IDEyMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGg2NFYzNDUuOUw3IDE2OWMtNi45LTYuOS04LjktMTcuMi01LjItMjYuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFydGluaUdsYXNzRW1wdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMEMxOS4xIDAgNy40IDcuOCAyLjQgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlMMjI0IDI2OS4zVjQ0OEgxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoOTYgOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMjg4VjI2OS4zTDUwMi42IDU0LjZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgMCA0ODAgMEgzMnpNMjU2IDIxMC43TDEwOS4zIDY0SDQwMi43TDI1NiAyMTAuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFydGluaUdsYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDBDMTkuMSAwIDcuNCA3LjggMi40IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45TDIyNCAyNjkuM1Y0NDhIMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDk2IDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDI4OFYyNjkuM0w1MDIuNiA1NC42YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzQ5Mi45IDAgNDgwIDBIMzJ6TTE3My4zIDEyOGwtNjQtNjRINDAyLjdsLTY0IDY0SDE3My4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXNrRmFjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgNjRjLTI3LjIgMC01My44IDgtNzYuNCAyMy4xbC0zNy4xIDI0LjhjLTE1LjggMTAuNS0zNC4zIDE2LjEtNTMuMyAxNi4xSDE0NCAxMjggNTZjLTMwLjkgMC01NiAyNS4xLTU2IDU2djg1YzAgNTUuMSAzNy41IDEwMy4xIDkwLjkgMTE2LjRsMTA4IDI3QzIzMy44IDQzNSAyNzUuNCA0NDggMzIwIDQ0OHM4Ni4yLTEzIDEyMS4xLTM1LjVsMTA4LTI3QzYwMi41IDM3Mi4xIDY0MCAzMjQuMSA2NDAgMjY5VjE4NGMwLTMwLjktMjUuMS01Ni01Ni01Nkg1MTIgNDk2aC05LjJjLTE5IDAtMzcuNS01LjYtNTMuMy0xNi4xTDM5Ni40IDg3LjFDMzczLjggNzIgMzQ3LjIgNjQgMzIwIDY0ek0xMzIuMyAzNDYuM2wtMjkuOC03LjRDNzAuNSAzMzAuOSA0OCAzMDIuMSA0OCAyNjlWMTg0YzAtNC40IDMuNi04IDgtOEg5NnY0OGMwIDQ1LjEgMTMuNCA4Ny4yIDM2LjMgMTIyLjN6bTQwNS4xLTcuNGwtMjkuOCA3LjRjMjMtMzUuMiAzNi4zLTc3LjIgMzYuMy0xMjIuM1YxNzZoNDBjNC40IDAgOCAzLjYgOCA4djg1YzAgMzMtMjIuNSA2MS44LTU0LjUgNjkuOXpNMTkyIDIwOGMwLTguOCA3LjItMTYgMTYtMTZINDMyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDIwOGMtOC44IDAtMTYtNy4yLTE2LTE2em0xNiA0OEg0MzJjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMjA4Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0xNiA4MGMwLTguOCA3LjItMTYgMTYtMTZINDAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDI0MGMtOC44IDAtMTYtNy4yLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXNrVmVudGlsYXRvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTkuMSAxNzZDMTM5LjQgMjE5LjIgMTI4IDI2NC43IDEyOCAzMDAuOGMwIDE1LjkgMi4yIDMxLjQgNi4zIDQ2bC0zMS44LTcuOUM3MC41IDMzMC45IDQ4IDMwMi4xIDQ4IDI2OVYxODRjMC00LjQgMy42LTggOC04SDE1OS4xem0yNi00OEg1NmMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ2ODVjMCA1NS4xIDM3LjUgMTAzLjEgOTAuOSAxMTYuNGw3MS4zIDE3LjhjMjIuNyAzMC41IDU1LjQgNTQuMSA5My44IDY2LjZWMzkzLjNjLTE5LjctMTYuNC0zMi00MC4zLTMyLTY2LjljMC00OS41IDQzLTEzNC40IDk2LTEzNC40YzUyLjUgMCA5NiA4NC45IDk2IDEzNC40YzAgMjYuNy0xMi40IDUwLjQtMzIgNjYuOHY3Ni42YzM4LTEyLjYgNzAuNi0zNiA5My41LTY2LjRsNzEuNi0xNy45QzYwMi41IDM3Mi4xIDY0MCAzMjQuMSA2NDAgMjY5VjE4NGMwLTMwLjktMjUuMS01Ni01Ni01Nkg0NTQuNUM0MTkuNyA3My44IDM3Mi4xIDMyIDMyMCAzMmMtNTIuNiAwLTEwMC4yIDQxLjgtMTM0LjkgOTZ6bTI5NS42IDQ4SDU4NGM0LjQgMCA4IDMuNiA4IDh2ODVjMCAzMy0yMi41IDYxLjgtNTQuNSA2OS45bC0zMS44IDhjNC4yLTE0LjcgNi40LTMwLjEgNi40LTQ2LjFjMC0zNi4xLTExLjYtODEuNi0zMS4zLTEyNC44ek0yODggMzIwVjUxMmg2NFYzMjBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hc2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDY0QzY0IDY0IDAgMTYwIDAgMjcyUzgwIDQ0OCAxNzYgNDQ4aDguNGMyNC4yIDAgNDYuNC0xMy43IDU3LjItMzUuNGwyMy4yLTQ2LjNjNC40LTguOCAxMy4zLTE0LjMgMjMuMi0xNC4zczE4LjggNS41IDIzLjIgMTQuM2wyMy4yIDQ2LjNjMTAuOCAyMS43IDMzIDM1LjQgNTcuMiAzNS40SDQwMGM5NiAwIDE3Ni02NCAxNzYtMTc2cy02NC0yMDgtMjg4LTIwOHpNOTYgMjU2YTY0IDY0IDAgMSAxIDEyOCAwQTY0IDY0IDAgMSAxIDk2IDI1NnptMzIwLTY0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXNrc1RoZWF0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzQuNiAzNzMuMmM0MS43IDM2LjEgMTA4IDgyLjUgMTY2LjEgNzMuN2M2LjEtLjkgMTIuMS0yLjUgMTgtNC41Yy05LjItMTIuMy0xNy4zLTI0LjQtMjQuMi0zNS40Yy0yMS45LTM1LTI4LjgtNzUuMi0yNS45LTExMy42Yy0yMC42IDQuMS0zOS4yIDEzLTU0LjcgMjUuNGMtNi41IDUuMi0xNi4zIDEuMy0xNC44LTdjNi40LTMzLjUgMzMtNjAuOSA2OC4yLTY2LjNjMi42LS40IDUuMy0uNyA3LjktLjhsMTkuNC0xMzEuM2MyLTEzLjggOC0zMi43IDI1LTQ1LjlDMjc4LjIgNTMuMiAzMTAuNSAzNyAzNjMuMiAzMi4yYy0uOC0uNy0xLjYtMS40LTIuNC0yLjFDMzQwLjYgMTQuNSAyODguNC0xMS41IDE3NS43IDUuNlMyMC41IDYzIDUuNyA4My45QzAgOTEuOS0uOCAxMDIgLjYgMTExLjhMMjQuOCAyNzYuMWM1LjUgMzcuMyAyMS41IDcyLjYgNDkuOCA5Ny4yem04Ny43LTIxOS42YzQuNC0zLjEgMTAuOC0yIDExLjggMy4zYy4xIC41IC4yIDEuMSAuMyAxLjZjMy4yIDIxLjgtMTEuNiA0Mi0zMy4xIDQ1LjNzLTQxLjUtMTEuOC00NC43LTMzLjVjLS4xLS41LS4xLTEuMS0uMi0xLjZjLS42LTUuNCA1LjItOC40IDEwLjMtNi43YzkgMyAxOC44IDMuOSAyOC43IDIuNHMxOS4xLTUuMyAyNi44LTEwLjh6TTI2MS42IDM5MGMyOS40IDQ2LjkgNzkuNSAxMTAuOSAxMzcuNiAxMTkuN3MxMjQuNS0zNy41IDE2Ni4xLTczLjdjMjguMy0yNC41IDQ0LjMtNTkuOCA0OS44LTk3LjJsMjQuMi0xNjQuM2MxLjQtOS44IC42LTE5LjktNS4xLTI3LjljLTE0LjgtMjAuOS01Ny4zLTYxLjItMTcwLTc4LjNTMjk5LjQgNzcuMiAyNzkuMiA5Mi44Yy03LjggNi0xMS41IDE1LjQtMTIuOSAyNS4yTDI0Mi4xIDI4Mi4zYy01LjUgMzcuMy0uNCA3NS44IDE5LjYgMTA3Ljd6TTQwNC41IDIzNS4zYy03LjctNS41LTE2LjgtOS4zLTI2LjgtMTAuOHMtMTkuOC0uNi0yOC43IDIuNGMtNS4xIDEuNy0xMC45LTEuMy0xMC4zLTYuN2MuMS0uNSAuMS0xLjEgLjItMS42YzMuMi0yMS44IDIzLjItMzYuOCA0NC43LTMzLjVzMzYuMyAyMy41IDMzLjEgNDUuM2MtLjEgLjUtLjIgMS4xLS4zIDEuNmMtMSA1LjMtNy40IDYuNC0xMS44IDMuM3ptMTM2LjIgMTUuNWMtMSA1LjMtNy40IDYuNC0xMS44IDMuM2MtNy43LTUuNS0xNi44LTkuMy0yNi44LTEwLjhzLTE5LjgtLjYtMjguNyAyLjRjLTUuMSAxLjctMTAuOS0xLjMtMTAuMy02LjdjLjEtLjUgLjEtMS4xIC4yLTEuNmMzLjItMjEuOCAyMy4yLTM2LjggNDQuNy0zMy41czM2LjMgMjMuNSAzMy4xIDQ1LjNjLS4xIC41LS4yIDEuMS0uMyAxLjZ6TTUzMCAzNTAuMmMtMTkuNiA0NC43LTY2LjggNzIuNS0xMTYuOCA2NC45cy04Ny4xLTQ4LjItOTMtOTYuN2MtMS04LjMgOC45LTEyLjEgMTUuMi02LjdjMjMuOSAyMC44IDUzLjYgMzUuMyA4NyA0MC4zczY2LjEgLjEgOTQuOS0xMi44YzcuNi0zLjQgMTYgMy4yIDEyLjYgMTAuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWF0dHJlc3NQaWxsb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDY0SDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4VjM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NEgyNTZWNjR6bTMyIDM4NEg1NzZjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0SDI4OFY0NDh6TTY0IDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmg2NGMxNy43IDAgMzIgMTQuMyAzMiAzMlYzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWF4aW1pemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAwIDMySDU2QzQyLjcgMzIgMzIgNDIuNyAzMiA1NlYyMDBjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yczE5LjMgMS43IDI2LjItNS4ybDQwLTQwIDc5IDc5LTc5IDc5TDczIDI5NWMtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMzMiAzMDIuMyAzMiAzMTJWNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0SDIwMGM5LjcgMCAxOC41LTUuOCAyMi4yLTE0LjhzMS43LTE5LjMtNS4yLTI2LjJsLTQwLTQwIDc5LTc5IDc5IDc5LTQwIDQwYy02LjkgNi45LTguOSAxNy4yLTUuMiAyNi4yczEyLjUgMTQuOCAyMi4yIDE0LjhINDU2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjMxMmMwLTkuNy01LjgtMTguNS0xNC44LTIyLjJzLTE5LjMtMS43LTI2LjIgNS4ybC00MCA0MC03OS03OSA3OS03OSA0MCA0MGM2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yczE0LjgtMTIuNSAxNC44LTIyLjJWNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRIMzEyYy05LjcgMC0xOC41IDUuOC0yMi4yIDE0LjhzLTEuNyAxOS4zIDUuMiAyNi4ybDQwIDQwLTc5IDc5LTc5LTc5IDQwLTQwYzYuOS02LjkgOC45LTE3LjIgNS4yLTI2LjJTMjA5LjcgMzIgMjAwIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZWRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjEgMzguMkMxLjQgMzQuMiAwIDI5LjQgMCAyNC42QzAgMTEgMTEgMCAyNC42IDBIMTMzLjljMTEuMiAwIDIxLjcgNS45IDI3LjQgMTUuNWw2OC41IDExNC4xYy00OC4yIDYuMS05MS4zIDI4LjYtMTIzLjQgNjEuOUw0LjEgMzguMnptNTAzLjcgMEw0MDUuNiAxOTEuNWMtMzIuMS0zMy4zLTc1LjItNTUuOC0xMjMuNC02MS45TDM1MC43IDE1LjVDMzU2LjUgNS45IDM2Ni45IDAgMzc4LjEgMEg0ODcuNEM1MDEgMCA1MTIgMTEgNTEyIDI0LjZjMCA0LjgtMS40IDkuNi00LjEgMTMuNnpNODAgMzM2YTE3NiAxNzYgMCAxIDEgMzUyIDBBMTc2IDE3NiAwIDEgMSA4MCAzMzZ6bTE4NC40LTk0LjljLTMuNC03LTEzLjMtNy0xNi44IDBsLTIyLjQgNDUuNGMtMS40IDIuOC00IDQuNy03IDUuMUwxNjggMjk4LjljLTcuNyAxLjEtMTAuNyAxMC41LTUuMiAxNmwzNi4zIDM1LjRjMi4yIDIuMiAzLjIgNS4yIDIuNyA4LjNsLTguNiA0OS45Yy0xLjMgNy42IDYuNyAxMy41IDEzLjYgOS45bDQ0LjgtMjMuNmMyLjctMS40IDYtMS40IDguNyAwbDQ0LjggMjMuNmM2LjkgMy42IDE0LjktMi4yIDEzLjYtOS45bC04LjYtNDkuOWMtLjUtMyAuNS02LjEgMi43LTguM2wzNi4zLTM1LjRjNS42LTUuNCAyLjUtMTQuOC01LjItMTZsLTUwLjEtNy4zYy0zLS40LTUuNy0yLjQtNy01LjFsLTIyLjQtNDUuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVtb3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4djcuNGMwIDYuOCA0LjQgMTIuNiAxMC4xIDE2LjNDMjMuMyAxNjAuMyAzMiAxNzUuMSAzMiAxOTJzLTguNyAzMS43LTIxLjkgNDAuM0M0LjQgMjM2IDAgMjQxLjggMCAyNDguNlYzMjBINTc2VjI0OC42YzAtNi44LTQuNC0xMi42LTEwLjEtMTYuM0M1NTIuNyAyMjMuNyA1NDQgMjA4LjkgNTQ0IDE5MnM4LjctMzEuNyAyMS45LTQwLjNjNS43LTMuNyAxMC4xLTkuNSAxMC4xLTE2LjNWMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek01NzYgMzUySDB2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJIODBWNDE2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ2MzJoOTZWNDE2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ2MzJoOTZWNDE2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ2MzJoOTZWNDE2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ2MzJoNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzUyek0xOTIgMTYwdjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem0xMjggMHY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTI4IDB2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1lbm9yYWggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuOCA3LjRDMjIuOCAyLjkgMjcuMSAwIDMyIDBzOS4yIDIuOSAxMS4yIDcuNEw2MS4zIDQ5LjdjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xVjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgODEuNyAwIDY0VjYyLjhjMC00LjUgLjktOC45IDIuNy0xMy4xTDIwLjggNy40em05NiAwQzExOC44IDIuOSAxMjMuMSAwIDEyOCAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMVY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY2Mi44YzAtNC41IC45LTguOSAyLjctMTMuMUwxMTYuOCA3LjR6bTc3LjggNDIuNEwyMTIuOCA3LjRDMjE0LjggMi45IDIxOS4xIDAgMjI0IDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xVjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjYyLjhjMC00LjUgLjktOC45IDIuNy0xMy4xek0zMDguOCA3LjRDMzEwLjggMi45IDMxNS4xIDAgMzIwIDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xVjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjYyLjhjMC00LjUgLjktOC45IDIuNy0xMy4xTDMwOC44IDcuNHptNzcuOCA0Mi40TDQwNC44IDcuNEM0MDYuOCAyLjkgNDExLjEgMCA0MTYgMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFWNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNjIuOGMwLTQuNSAuOS04LjkgMi43LTEzLjF6TTUwMC44IDcuNEM1MDIuOCAyLjkgNTA3LjEgMCA1MTIgMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFWNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNjIuOGMwLTQuNSAuOS04LjkgMi43LTEzLjFMNTAwLjggNy40em03Ny44IDQyLjRMNTk2LjggNy40QzU5OC44IDIuOSA2MDMuMSAwIDYwOCAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMVY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY2Mi44YzAtNC41IC45LTguOSAyLjctMTMuMXpNMzIgMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMyVjI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMkgyODhWMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWMzIwSDU0NGMxNy43IDAgMzItMTQuMyAzMi0zMlYxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMlYyODhjMCA1My00MyA5Ni05NiA5NkgzNTJ2NjRINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyMCAxNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJIMjg4VjM4NEg5NmMtNTMgMC05Ni00My05Ni05NlYxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2OTYgMzJIOTZWMjU2IDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnY5NiAzMkgxOTJWMjU2IDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2OTYgMzJIMzg0VjI1NiAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2OTYgMzJINDgwVjI1NiAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1lcmN1cnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzIuMSA3Qzg1LjgtNCAxMDYtMS44IDExNyAxMmMxNy42IDIyIDQ0LjcgMzYgNzUgMzZzNTcuMy0xNCA3NS0zNmMxMS4xLTEzLjggMzEuMi0xNiA0NS01czE2IDMxLjIgNSA0NWMtNy44IDkuNy0xNi42IDE4LjQtMjYuNCAyNi4xQzMzNy4zIDEwOS43IDM2OCAxNjMuMyAzNjggMjI0YzAgODkuMS02Ni4yIDE2Mi43LTE1MiAxNzQuNFY0MjRoMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMjE2djE2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjQ3MkgxMzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRoMzJWMzk4LjRDODIuMiAzODYuNyAxNiAzMTMuMSAxNiAyMjRjMC02MC43IDMwLjctMTE0LjMgNzcuNS0xNDUuOUM4My43IDcwLjUgNzQuOSA2MS43IDY3LjEgNTJjLTExLjEtMTMuOC04LjgtMzMuOSA1LTQ1ek04MCAyMjRhMTEyIDExMiAwIDEgMCAyMjQgMEExMTIgMTEyIDAgMSAwIDgwIDIyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVzc2FnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFYzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRoOTZ2ODBjMCA2LjEgMy40IDExLjYgOC44IDE0LjNzMTEuOSAyLjEgMTYuOC0xLjVMMzA5LjMgNDE2SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFY2NGMwLTM1LjMtMjguNy02NC02NC02NEg2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWV0ZW9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5My43IC45TDI5OS40IDc1LjZsMi4zLTI5LjNjMS0xMi44LTEyLjgtMjEuNS0yNC0xNS4xTDEwMS4zIDEzMy40QzM4LjYgMTY5LjcgMCAyMzYuNiAwIDMwOUMwIDQyMS4xIDkwLjkgNTEyIDIwMyA1MTJjNzIuNCAwIDEzOS40LTM4LjYgMTc1LjctMTAxLjNMNDgwLjggMjM0LjNjNi41LTExLjEtMi4yLTI1LTE1LjEtMjRsLTI5LjMgMi4zTDUxMS4xIDE4LjNjLjYtMS41IC45LTMuMiAuOS00LjhDNTEyIDYgNTA2IDAgNDk4LjUgMGMtMS43IDAtMy4zIC4zLTQuOCAuOXpNMTkyIDE5MmExMjggMTI4IDAgMSAxIDAgMjU2IDEyOCAxMjggMCAxIDEgMC0yNTZ6bTAgOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTYgOTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaWNyb2NoaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc2IDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0VjY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NEgyNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNEg2NHY1NkgyNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNEg2NHY1NkgyNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNEg2NGMwIDM1LjMgMjguNyA2NCA2NCA2NHY0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjQ0OGg1NnY0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjQ0OGg1NnY0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NGg0MGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEg0NDhWMjgwaDQwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDQ0OFYxNzZoNDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRINDQ4YzAtMzUuMy0yOC43LTY0LTY0LTY0VjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0VjY0SDI4MFYyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNFY2NEgxNzZWMjR6TTE2MCAxMjhIMzUyYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjM1MmMwIDE3LjctMTQuMyAzMi0zMiAzMkgxNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTkyIDMySDE2MFYzNTJIMzUyVjE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWljcm9waG9uZUxpbmVzU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzguOCA1LjFDMjguNC0zLjEgMTMuMy0xLjIgNS4xIDkuMlMtMS4yIDM0LjcgOS4yIDQyLjlsNTkyIDQ2NGMxMC40IDguMiAyNS41IDYuMyAzMy43LTQuMXM2LjMtMjUuNS00LjEtMzMuN0w0NzIuMSAzNDQuN2MxNS4yLTI2IDIzLjktNTYuMyAyMy45LTg4LjdWMjE2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0djI0IDE2YzAgMjEuMi01LjEgNDEuMS0xNC4yIDU4LjdMNDE2IDMwMC44VjI1NkgzNTguOWwtMzQuNS0yN2MyLjktMy4xIDctNSAxMS42LTVoODBWMTkySDMzNmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmg4MFYxMjhIMzM2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2aDgwYzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2djU0LjNMMzguOCA1LjF6TTM1OC4yIDM3OC4yQzM0Ni4xIDM4MiAzMzMuMyAzODQgMzIwIDM4NGMtNzAuNyAwLTEyOC01Ny4zLTEyOC0xMjh2LTguN0wxNDQuNyAyMTBjLS41IDEuOS0uNyAzLjktLjcgNnY0MGMwIDg5LjEgNjYuMiAxNjIuNyAxNTIgMTc0LjRWNDY0SDI0OGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGg3MiA3MmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgzNDRWNDMwLjRjMjAuNC0yLjggMzkuNy05LjEgNTcuMy0xOC4ybC00My4xLTMzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pY3JvcGhvbmVMaW5lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiA5NlYyNTZjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NkgyMDhjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoODBWMTkySDIwOGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmg4MFYxMjhIMjA4Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2aDgwYzAtNTMtNDMtOTYtOTYtOTZTOTYgNDMgOTYgOTZ6TTMyMCAyNDB2MTZjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhzLTEyOC01Ny4zLTEyOC0xMjhWMjE2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0djQwYzAgODkuMSA2Ni4yIDE2Mi43IDE1MiAxNzQuNFY0NjRIMTIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDcyIDcyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDIxNlY0MzAuNGM4NS44LTExLjcgMTUyLTg1LjMgMTUyLTE3NC40VjIxNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHYyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWljcm9waG9uZVNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMNDcyLjEgMzQ0LjdjMTUuMi0yNiAyMy45LTU2LjMgMjMuOS04OC43VjIxNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHY0MGMwIDIxLjItNS4xIDQxLjEtMTQuMiA1OC43TDQxNiAzMDAuOFY5NmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NnY1NC4zTDM4LjggNS4xem0zNjIuNSA0MDdsLTQzLjEtMzMuOUMzNDYuMSAzODIgMzMzLjMgMzg0IDMyMCAzODRjLTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4di04LjdMMTQ0LjcgMjEwYy0uNSAxLjktLjcgMy45LS43IDZ2NDBjMCA4OS4xIDY2LjIgMTYyLjcgMTUyIDE3NC40VjQ2NEgyNDhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoNzIgNzJjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMzQ0VjQzMC40YzIwLjQtMi44IDM5LjctOS4xIDU3LjMtMTguMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWljcm9waG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMEMxMzkgMCA5NiA0MyA5NiA5NlYyNTZjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NlY5NmMwLTUzLTQzLTk2LTk2LTk2ek02NCAyMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR2NDBjMCA4OS4xIDY2LjIgMTYyLjcgMTUyIDE3NC40VjQ2NEgxMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoNzIgNzJjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMjE2VjQzMC40Yzg1LjgtMTEuNyAxNTItODUuMyAxNTItMTc0LjRWMjE2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0djQwYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4cy0xMjgtNTcuMy0xMjgtMTI4VjIxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWljcm9zY29wZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJoMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMjg4YzAgMTcuNy0xNC4zIDMyLTMyIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zMiA0NDhIMzIwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4cy01Ny4zLTEyOC0xMjgtMTI4VjEyOGMxMDYgMCAxOTIgODYgMTkyIDE5MmMwIDQ5LjItMTguNSA5NC00OC45IDEyOEg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzIwIDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem04MC02NEgzMDRjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMTEyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaWxsU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDIuMSA0Mi44YzUuOS0xNi42LTIuNy0zNS0xOS40LTQwLjlzLTM1IDIuNy00MC45IDE5LjRMMjA4IDExNi4xYy01LjcgNC0xMS4xIDguNS0xNiAxMy41QzE3MS43IDEwOC45IDE0My4zIDk2IDExMiA5NmMtMTkuNSAwLTM3LjggNS01My43IDEzLjdDNTIuNSAxMDEuNCA0Mi45IDk2IDMyIDk2QzE0LjMgOTYgMCAxMTAuMyAwIDEyOHY4MFY0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyMDhjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHY0Mi41TDgxLjkgNDY5LjJjLTUuOSAxNi42IDIuNyAzNSAxOS40IDQwLjlzMzUtMi43IDQwLjktMTkuNGwyMS40LTYwQzE2OC45IDQ0MSAxNzkuNiA0NDggMTkyIDQ0OGMxNy43IDAgMzItMTQuMyAzMi0zMlYyNjEuNWwzNS43LTEwMGMzLjktMSA4LjEtMS42IDEyLjMtMS42YzI2LjUgMCA0OCAyMS41IDQ4IDQ4VjQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjIwOGMwLTU4LjItNDQuMy0xMDYtMTAxLjEtMTExLjVsMTkuMi01My44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaW5pbWl6ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTYgMjI0SDMxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRWNTZjMC05LjcgNS44LTE4LjUgMTQuOC0yMi4yczE5LjMtMS43IDI2LjIgNS4ybDQwIDQwTDQ0Mi4zIDUuN0M0NDYgMiA0NTAuOSAwIDQ1NiAwczEwIDIgMTMuNyA1LjdsMzYuNyAzNi43QzUxMCA0NiA1MTIgNTAuOSA1MTIgNTZzLTIgMTAtNS43IDEzLjdMNDMzIDE0M2w0MCA0MGM2LjkgNi45IDguOSAxNy4yIDUuMiAyNi4ycy0xMi41IDE0LjgtMjIuMiAxNC44em0wIDY0YzkuNyAwIDE4LjUgNS44IDIyLjIgMTQuOHMxLjcgMTkuMy01LjIgMjYuMmwtNDAgNDAgNzMuNCA3My40YzMuNiAzLjYgNS43IDguNSA1LjcgMTMuN3MtMiAxMC01LjcgMTMuN2wtMzYuNyAzNi43QzQ2NiA1MTAgNDYxLjEgNTEyIDQ1NiA1MTJzLTEwLTItMTMuNy01LjdMMzY5IDQzM2wtNDAgNDBjLTYuOSA2LjktMTcuMiA4LjktMjYuMiA1LjJzLTE0LjgtMTIuNS0xNC44LTIyLjJWMzEyYzAtMTMuMyAxMC43LTI0IDI0LTI0SDQ1NnptLTI1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0VjQ1NmMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC00MC00MEw2OS43IDUwNi4zQzY2IDUxMCA2MS4xIDUxMiA1NiA1MTJzLTEwLTItMTMuNy01LjdMNS43IDQ2OS43QzIgNDY2IDAgNDYxLjEgMCA0NTZzMi0xMCA1LjctMTMuN0w3OSAzNjkgMzkgMzI5Yy02LjktNi45LTguOS0xNy4yLTUuMi0yNi4yczEyLjUtMTQuOCAyMi4yLTE0LjhIMjAwek01NiAyMjRjLTkuNyAwLTE4LjUtNS44LTIyLjItMTQuOHMtMS43LTE5LjMgNS4yLTI2LjJsNDAtNDBMNS43IDY5LjdDMiA2NiAwIDYxLjEgMCA1NnMyLTEwIDUuNy0xMy43TDQyLjMgNS43QzQ2IDIgNTAuOSAwIDU2IDBzMTAgMiAxMy43IDUuN0wxNDMgNzlsNDAtNDBjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMnMxNC44IDEyLjUgMTQuOCAyMi4yVjIwMGMwIDEzLjMtMTAuNyAyNC0yNCAyNEg1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMyIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMkw0OCAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzUyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pdHRlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIgMzg0SDY0TDUuNCAxNzguOUMxLjggMTY2LjQgMCAxNTMuNCAwIDE0MC4zQzAgNjIuOCA2Mi44IDAgMTQwLjMgMGgzLjRjNjYgMCAxMjMuNSA0NC45IDEzOS41IDEwOC45bDMxLjQgMTI1LjggMTcuNi0yMC4xQzM0NC44IDIwMC4yIDM2Mi45IDE5MiAzODIgMTkyaDIuOGMzNC45IDAgNjMuMyAyOC4zIDYzLjMgNjMuM2MwIDE1LjktNiAzMS4yLTE2LjggNDIuOUwzNTIgMzg0ek0zMiA0NDhjMC0xNy43IDE0LjMtMzIgMzItMzJIMzUyYzE3LjcgMCAzMiAxNC4zIDMyIDMydjMyYzAgMTcuNy0xNC4zIDMyLTMyIDMySDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlY0NDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vYmlsZUJ1dHRvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04MCAwQzQ0LjcgMCAxNiAyOC43IDE2IDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMDRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIODB6TTE5MiA0MDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb2JpbGVSZXRybyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEgyNTZjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY2NHptNjQgOTZ2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJIMjI0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMkg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTgwIDM1MmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTI0IDU2YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTU2LTU2YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjQgNTZhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptNTYtNTZhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNCA1NmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0xMjggNDhjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZoNjRjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb2JpbGVTY3JlZW5CdXR0b24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgNjRDMTYgMjguNyA0NC43IDAgODAgMEgzMDRjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0SDgwYy0zNS4zIDAtNjQtMjguNy02NC02NFY2NHpNMjI0IDQ0OGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zMDQgNjRIODBWMzg0SDMwNFY2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9iaWxlU2NyZWVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDY0QzE2IDI4LjcgNDQuNyAwIDgwIDBIMzA0YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNjR6TTE0NCA0NDhjMCA4LjggNy4yIDE2IDE2IDE2aDY0YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2ek0zMDQgNjRIODBWMzg0SDMwNFY2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9iaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTgwIDBDNDQuNyAwIDE2IDI4LjcgMTYgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMwNGMzNS4zIDAgNjQtMjguNyA2NC02NFY2NGMwLTM1LjMtMjguNy02NC02NC02NEg4MHptODAgNDMyaDY0YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDE2MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9uZXlCaWxsMVdhdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxMTIuNVY0MjIuM2MwIDE4IDEwLjEgMzUgMjcgNDEuM2M4NyAzMi41IDE3NCAxMC4zIDI2MS0xMS45Yzc5LjgtMjAuMyAxNTkuNi00MC43IDIzOS4zLTE4LjljMjMgNi4zIDQ4LjctOS41IDQ4LjctMzMuNFY4OS43YzAtMTgtMTAuMS0zNS0yNy00MS4zQzQ2MiAxNS45IDM3NSAzOC4xIDI4OCA2MC4zQzIwOC4yIDgwLjYgMTI4LjQgMTAwLjkgNDguNyA3OS4xQzI1LjYgNzIuOCAwIDg4LjYgMCAxMTIuNXpNMTI4IDQxNkg2NFYzNTJjMzUuMyAwIDY0IDI4LjcgNjQgNjR6TTY0IDIyNFYxNjBoNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjR6TTQ0OCAzNTJjMC0zNS4zIDI4LjctNjQgNjQtNjR2NjRINDQ4em02NC0xOTJjLTM1LjMgMC02NC0yOC43LTY0LTY0aDY0djY0ek0zODQgMjU2YzAgNjEuOS00MyAxMTItOTYgMTEycy05Ni01MC4xLTk2LTExMnM0My0xMTIgOTYtMTEyczk2IDUwLjEgOTYgMTEyek0yNTIgMjA4YzAgOS43IDYuOSAxNy43IDE2IDE5LjZWMjc2aC00Yy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGgyNCAyNGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBoLTRWMjA4YzAtMTEtOS0yMC0yMC0yMEgyNzJjLTExIDAtMjAgOS0yMCAyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9uZXlCaWxsMSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOFYzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRINTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOGMwLTM1LjMtMjguNy02NC02NC02NEg2NHptNjQgMzIwSDY0VjMyMGMzNS4zIDAgNjQgMjguNyA2NCA2NHpNNjQgMTkyVjEyOGg2NGMwIDM1LjMtMjguNyA2NC02NCA2NHpNNDQ4IDM4NGMwLTM1LjMgMjguNy02NCA2NC02NHY2NEg0NDh6bTY0LTE5MmMtMzUuMyAwLTY0LTI4LjctNjQtNjRoNjR2NjR6TTE3NiAyNTZhMTEyIDExMiAwIDEgMSAyMjQgMCAxMTIgMTEyIDAgMSAxIC0yMjQgMHptNzYtNDhjMCA5LjcgNi45IDE3LjcgMTYgMTkuNlYyNzZoLTRjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwaDI0IDI0YzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGgtNFYyMDhjMC0xMS05LTIwLTIwLTIwSDI3MmMtMTEgMC0yMCA5LTIwIDIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb25leUJpbGxUcmFuc2ZlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MzUgNDFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw2NCA2NGM0LjUgNC41IDcgMTAuNiA3IDE3cy0yLjUgMTIuNS03IDE3bC02NCA2NGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwyMy0yM0wzODQgMTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE3NC4xIDBMNTM1IDQxek0xMDUgMzc3bC0yMyAyM0wyNTYgNDAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDgxLjkgNDQ4bDIzIDIzYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNyA0NDFjLTQuNS00LjUtNy0xMC42LTctMTdzMi41LTEyLjUgNy0xN2w2NC02NGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6TTk2IDY0SDMzNy45Yy0zLjcgNy4yLTUuOSAxNS4zLTUuOSAyNGMwIDI4LjcgMjMuMyA1MiA1MiA1MmwxMTcuNCAwYy00IDE3IC42IDM1LjUgMTMuOCA0OC44YzIwLjMgMjAuMyA1My4yIDIwLjMgNzMuNSAwTDYwOCAxNjkuNVYzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRIMzAyLjFjMy43LTcuMiA1LjktMTUuMyA1LjktMjRjMC0yOC43LTIzLjMtNTItNTItNTJsLTExNy40IDBjNC0xNy0uNi0zNS41LTEzLjgtNDguOGMtMjAuMy0yMC4zLTUzLjItMjAuMy03My41IDBMMzIgMzQyLjVWMTI4YzAtMzUuMyAyOC43LTY0IDY0LTY0em02NCA2NEg5NnY2NGMzNS4zIDAgNjQtMjguNyA2NC02NHpNNTQ0IDMyMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRoNjRWMzIwek0zMjAgMzUyYTk2IDk2IDAgMSAwIDAtMTkyIDk2IDk2IDAgMSAwIDAgMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb25leUJpbGxUcmVuZFVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3MC43IDkuNGMzIDMuMSA1LjMgNi42IDYuOSAxMC4zczIuNCA3LjggMi40IDEyLjJsMCAuMXYwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjEwOS4zTDMxMC42IDIxNC42Yy0xMS44IDExLjgtMzAuOCAxMi42LTQzLjUgMS43TDE3NiAxMzguMSA4NC44IDIxNi4zYy0xMy40IDExLjUtMzMuNiA5LjktNDUuMS0zLjVzLTkuOS0zMy42IDMuNS00NS4xbDExMi05NmMxMi0xMC4zIDI5LjctMTAuMyA0MS43IDBsODkuNSA3Ni43TDM3MC43IDY0SDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmg5NiAwYzguOCAwIDE2LjggMy42IDIyLjYgOS4zbC4xIC4xek0wIDMwNGMwLTI2LjUgMjEuNS00OCA0OC00OEg0NjRjMjYuNSAwIDQ4IDIxLjUgNDggNDhWNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYzMDR6TTQ4IDQxNnY0OEg5NmMwLTI2LjUtMjEuNS00OC00OC00OHpNOTYgMzA0SDQ4djQ4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4ek00NjQgNDE2Yy0yNi41IDAtNDggMjEuNS00OCA0OGg0OFY0MTZ6TTQxNiAzMDRjMCAyNi41IDIxLjUgNDggNDggNDhWMzA0SDQxNnptLTk2IDgwYTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9uZXlCaWxsV2F2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDExMi41VjQyMi4zYzAgMTggMTAuMSAzNSAyNyA0MS4zYzg3IDMyLjUgMTc0IDEwLjMgMjYxLTExLjljNzkuOC0yMC4zIDE1OS42LTQwLjcgMjM5LjMtMTguOWMyMyA2LjMgNDguNy05LjUgNDguNy0zMy40Vjg5LjdjMC0xOC0xMC4xLTM1LTI3LTQxLjNDNDYyIDE1LjkgMzc1IDM4LjEgMjg4IDYwLjNDMjA4LjIgODAuNiAxMjguNCAxMDAuOSA0OC43IDc5LjFDMjUuNiA3Mi44IDAgODguNiAwIDExMi41ek0yODggMzUyYy00NC4yIDAtODAtNDMtODAtOTZzMzUuOC05NiA4MC05NnM4MCA0MyA4MCA5NnMtMzUuOCA5Ni04MCA5NnpNNjQgMzUyYzM1LjMgMCA2NCAyOC43IDY0IDY0SDY0VjM1MnptNjQtMjA4YzAgMzUuMy0yOC43IDY0LTY0IDY0VjE0NGg2NHpNNTEyIDMwNHY2NEg0NDhjMC0zNS4zIDI4LjctNjQgNjQtNjR6TTQ0OCA5Nmg2NHY2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vbmV5QmlsbFdoZWF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgOC44LTcuMiAxNi0xNiAxNmMtNDQuMiAwLTgwLTM1LjgtODAtODBjMC04LjggNy4yLTE2IDE2LTE2ek01NiAxNmg0OGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEg1NkM0Mi43IDY0IDMyIDUzLjMgMzIgNDBzMTAuNy0yNCAyNC0yNHpNMjQgODhIMTM2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFMxMC43IDg4IDI0IDg4em04IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0aDQ4YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDU2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMjcyIDE2YzAtOC44IDcuMi0xNiAxNi0xNmM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDguOC03LjIgMTYtMTYgMTZjLTQ0LjIgMC04MC0zNS44LTgwLTgwek00MDAgMGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDguOC03LjIgMTYtMTYgMTZjLTQ0LjIgMC04MC0zNS44LTgwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTQ0YzAgNDQuMi0zNS44IDgwLTgwIDgwYy04LjggMC0xNi03LjItMTYtMTZjMC00NC4yIDM1LjgtODAgODAtODBjOC44IDAgMTYgNy4yIDE2IDE2ek0zNTIgMTI4YzguOCAwIDE2IDcuMiAxNiAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MGMtOC44IDAtMTYtNy4yLTE2LTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwem0tOTYgMTZjMCA0NC4yLTM1LjggODAtODAgODBjLTguOCAwLTE2LTcuMi0xNi0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MGM4LjggMCAxNiA3LjIgMTYgMTZ6TTAgMzA0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4SDQ2NGMyNi41IDAgNDggMjEuNSA0OCA0OFY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjMwNHpNNDggNDE2djQ4SDk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek05NiAzMDRINDh2NDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6TTQ2NCA0MTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4aDQ4VjQxNnpNNDE2IDMwNGMwIDI2LjUgMjEuNSA0OCA0OCA0OFYzMDRINDE2em0tOTYgODBhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb25leUJpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhWMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0SDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6bTY0IDMyMEg2NFYzMjBjMzUuMyAwIDY0IDI4LjcgNjQgNjR6TTY0IDE5MlYxMjhoNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjR6TTQ0OCAzODRjMC0zNS4zIDI4LjctNjQgNjQtNjR2NjRINDQ4em02NC0xOTJjLTM1LjMgMC02NC0yOC43LTY0LTY0aDY0djY0ek0yODggMTYwYTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb25leUJpbGxzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDk2VjMyMGMwIDM1LjMgMjguNyA2NCA2NCA2NEg1NzZjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRIMTYwYy0zNS4zIDAtNjQgMjguNy02NCA2NHptNjQgMTYwYzM1LjMgMCA2NCAyOC43IDY0IDY0SDE2MFYyNTZ6TTIyNCA5NmMwIDM1LjMtMjguNyA2NC02NCA2NFY5Nmg2NHpNNTc2IDI1NnY2NEg1MTJjMC0zNS4zIDI4LjctNjQgNjQtNjR6TTUxMiA5Nmg2NHY2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6TTI4OCAyMDhhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwek00OCAxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAxMDYuNyAwIDEyMFYzNjBjMCA2Ni4zIDUzLjcgMTIwIDEyMCAxMjBINTIwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDEyMGMtMzkuOCAwLTcyLTMyLjItNzItNzJWMTIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb25leUNoZWNrRG9sbGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4VjM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NEg1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek0yNzIgMTkySDQ5NmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6TTI1NiAzMDRjMC04LjggNy4yLTE2IDE2LTE2SDQ5NmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNnpNMTY0IDE1MnYxMy45YzcuNSAxLjIgMTQuNiAyLjkgMjEuMSA0LjdjMTAuNyAyLjggMTcgMTMuOCAxNC4yIDI0LjVzLTEzLjggMTctMjQuNSAxNC4yYy0xMS0yLjktMjEuNi01LTMxLjItNS4yYy03LjktLjEtMTYgMS44LTIxLjUgNWMtNC44IDIuOC02LjIgNS42LTYuMiA5LjNjMCAxLjggLjEgMy41IDUuMyA2LjdjNi4zIDMuOCAxNS41IDYuNyAyOC4zIDEwLjVsLjcgLjJjMTEuMiAzLjQgMjUuNiA3LjcgMzcuMSAxNWMxMi45IDguMSAyNC4zIDIxLjMgMjQuNiA0MS42Yy4zIDIwLjktMTAuNSAzNi4xLTI0LjggNDVjLTcuMiA0LjUtMTUuMiA3LjMtMjMuMiA5VjM2MGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBWMzQ1LjRjLTEwLjMtMi4yLTIwLTUuNS0yOC4yLTguNGwwIDAgMCAwYy0yLjEtLjctNC4xLTEuNC02LjEtMi4xYy0xMC41LTMuNS0xNi4xLTE0LjgtMTIuNi0yNS4zczE0LjgtMTYuMSAyNS4zLTEyLjZjMi41IC44IDQuOSAxLjcgNy4yIDIuNGMxMy42IDQuNiAyNCA4LjEgMzUuMSA4LjVjOC42IC4zIDE2LjUtMS42IDIxLjQtNC43YzQuMS0yLjUgNi01LjUgNS45LTEwLjVjMC0yLjktLjgtNS01LjktOC4yYy02LjMtNC0xNS40LTYuOS0yOC0xMC43bC0xLjctLjVjLTEwLjktMy4zLTI0LjYtNy40LTM1LjYtMTRjLTEyLjctNy43LTI0LjYtMjAuNS0yNC43LTQwLjdjLS4xLTIxLjEgMTEuOC0zNS43IDI1LjgtNDMuOWM2LjktNC4xIDE0LjUtNi44IDIyLjItOC41VjE1MmMwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9uZXlDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOFYzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRINTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOGMwLTM1LjMtMjguNy02NC02NC02NEg2NHptNDggMTYwSDI3MmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxMTJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6TTk2IDMzNmMwLTguOCA3LjItMTYgMTYtMTZINDY0YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDExMmMtOC44IDAtMTYtNy4yLTE2LTE2ek0zNzYgMTYwaDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0djQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0SDM3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRWMTg0YzAtMTMuMyAxMC43LTI0IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb251bWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODAuNyA0LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBsODAgODBjMi41IDIuNSA0LjEgNS44IDQuNiA5LjNsNDAuMiAzMjJINTUuOUw5Ni4xIDk0Yy40LTMuNSAyLTYuOCA0LjYtOS4zbDgwLTgwek0xNTIgMjcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDgwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDE1MnpNMzIgNDQ4SDM1MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9vbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjMuNSAzMkMxMDAgMzIgMCAxMzIuMyAwIDI1NlMxMDAgNDgwIDIyMy41IDQ4MGM2MC42IDAgMTE1LjUtMjQuMiAxNTUuOC02My40YzUtNC45IDYuMy0xMi41IDMuMS0xOC43cy0xMC4xLTkuNy0xNy04LjVjLTkuOCAxLjctMTkuOCAyLjYtMzAuMSAyLjZjLTk2LjkgMC0xNzUuNS03OC44LTE3NS41LTE3NmMwLTY1LjggMzYtMTIzLjEgODkuMy0xNTMuM2M2LjEtMy41IDkuMi0xMC41IDcuNy0xNy4zcy03LjMtMTEuOS0xNC4zLTEyLjVjLTYuMy0uNS0xMi42LS44LTE5LS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb3J0YXJQZXN0bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA0LjMgMTEuMUM0OTMuMy0xLjYgNDc0LjUtMy43IDQ2MSA2LjJMMjUyLjMgMTYwSDM5Ny4zTDUwMi42IDU0LjZjMTEuOC0xMS44IDEyLjYtMzAuOCAxLjYtNDMuNXpNMzIgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyYzAgODIuNSA0My40IDE0Ny43IDEyMy45IDE3Ni4yYy0xMS4xIDEzLjktMTkuNCAzMC4zLTIzLjkgNDguMUMxMjcuNiA0OTcuNCAxNDIuMyA1MTIgMTYwIDUxMkgzNTJjMTcuNyAwIDMyLjQtMTQuNiAyOC4xLTMxLjdjLTQuNS0xNy44LTEyLjgtMzQuMS0yMy45LTQ4LjFDNDM2LjYgNDAzLjcgNDgwIDMzOC41IDQ4MCAyNTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vc3F1ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMGM1IDAgOS44IDIuNCAxMi44IDYuNGMzNC43IDQ2LjMgNzguMSA3NC45IDEzMy41IDExMS41bDAgMCAwIDBjNS4yIDMuNCAxMC41IDcgMTYgMTAuNmMyOC45IDE5LjIgNDUuNyA1MS43IDQ1LjcgODYuMWMwIDI4LjYtMTEuMyA1NC41LTI5LjggNzMuNEgyMjEuOGMtMTguNC0xOS0yOS44LTQ0LjktMjkuOC03My40YzAtMzQuNCAxNi43LTY2LjkgNDUuNy04Ni4xYzUuNC0zLjYgMTAuOC03LjEgMTYtMTAuNmwwIDAgMCAwQzMwOS4xIDgxLjMgMzUyLjUgNTIuNyAzODcuMiA2LjRjMy00IDcuOC02LjQgMTIuOC02LjR6TTI4OCA1MTJWNDQwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0djcySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzUyYzAtMTcuNyAxNC4zLTMyIDMyLTMySDYwOGMxNy43IDAgMzIgMTQuMyAzMiAzMlY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJINTYwVjQ0MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHY3Mkg0NDhWNDU0YzAtMTktOC40LTM3LTIzLTQ5LjJMNDAwIDM4NGwtMjUgMjAuOEMzNjAuNCA0MTcgMzUyIDQzNSAzNTIgNDU0djU4SDI4OHpNNzAuNCA1LjJjNS43LTQuMyAxMy41LTQuMyAxOS4yIDBsMTYgMTJDMTM5LjggNDIuOSAxNjAgODMuMiAxNjAgMTI2djJIMHYtMkMwIDgzLjIgMjAuMiA0Mi45IDU0LjQgMTcuMmwxNi0xMnpNMCAxNjBIMTYwVjI5Ni42Yy0xOS4xIDExLjEtMzIgMzEuNy0zMiA1NS40VjQ4MGMwIDkuNiAyLjEgMTguNiA1LjggMjYuOGMtNi42IDMuNC0xNCA1LjItMjEuOCA1LjJINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjE3NiAxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vc3F1aXRvTmV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2OC44IDQ2Mi4zYy03LjktNC0xMS4xLTEzLjYtNy4yLTIxLjVMMTkyIDM4MC4ybDAtNDQuMmMwLTQuMiAxLjctOC4zIDQuNy0xMS4zTDI1NiAyNjUuNFYyNDIuMkwxMzkuMiAzNDRDODcuOCAzOTUuMyAwIDM1OC45IDAgMjg2LjNjMC00MS4xIDMwLjYtNzUuOCA3MS40LTgwLjlsMTU5LjktMjMuOS00OS42LTQxLjNjLTUuMS00LjItNy0xMS4xLTQuOS0xNy40bDEzLjktNDEuNy0yOS01OC4xYy00LTcuOS0uNy0xNy41IDcuMi0yMS41czE3LjUtLjcgMjEuNSA3LjJsMzIgNjRjMS45IDMuOCAyLjIgOC4yIC45IDEyLjJsLTEyLjUgMzcuNkwyNTYgMTYwLjVWMTM3LjljMC0xNC45IDEwLjEtMjcuMyAyMy44LTMxVjYzLjdjMC00LjUgMy43LTguMiA4LjItOC4yczguMiAzLjcgOC4yIDguMlYxMDdjMTMuNyAzLjYgMjMuOCAxNi4xIDIzLjggMzF2MjIuNmw0NS40LTM3LjhMMzUyLjggODUuMWMtMS4zLTQtMS04LjQgLjktMTIuMmwzMi02NGM0LTcuOSAxMy42LTExLjEgMjEuNS03LjJzMTEuMSAxMy42IDcuMiAyMS41bC0yOSA1OC4xIDEzLjkgNDEuN2MyLjEgNi4yIC4xIDEzLjEtNC45IDE3LjRsLTQ5LjYgNDEuMyAxNTkuOSAyMy45YzIyLjUgMi44IDQxLjggMTQuNiA1NC43IDMxLjRjLTIuNyAyLjYtNS4yIDUuNC03LjMgOC42Yy04LjYtMTIuOS0yMy4zLTIxLjUtNDAtMjEuNXMtMzEuNCA4LjUtNDAgMjEuNWMtOC42LTEyLjktMjMuMy0yMS41LTQwLTIxLjVjLTIxLjcgMC00MCAxNC4zLTQ1LjkgMzQuMWMtMTAuNyAzLjItMTkuOCAxMC4xLTI1LjkgMTkuMmwtNDAuMi0zNXYyMy4xbDMyLjQgMzIuNGMtLjMgMi0uNCA0LjEtLjQgNi4yYzAgMTYuNyA4LjUgMzEuNCAyMS41IDQwYy00IDIuNi03LjUgNS45LTEwLjYgOS41TDMyMCAzMTAuNnY1MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnYtNTBsLTMyIDMyIDAgNDEuNGMwIDIuNS0uNiA0LjktMS43IDcuMmwtMzIgNjRjLTQgNy45LTEzLjYgMTEuMS0yMS41IDcuMnpNNTEyIDI1NmM4LjggMCAxNiA3LjIgMTYgMTZ2MTZoNDhWMjcyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ2MTZoMTZjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZINjA4djQ4aDE2YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDYwOHY0OGgxNmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkg2MDh2MTZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWNDgwSDUyOHYxNmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlY0ODBINDQ4djE2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjQ4MEg0MDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoMTZWNDAwSDQwMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmgxNlYzMjBINDAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2aDE2VjI3MmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djE2aDQ4VjI3MmMwLTguOCA3LjItMTYgMTYtMTZ6bTE2IDExMmg0OFYzMjBINTI4djQ4em0wIDgwaDQ4VjQwMEg1Mjh2NDh6TTQ0OCAzMjB2NDhoNDhWMzIwSDQ0OHptMCA4MHY0OGg0OFY0MDBINDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb3NxdWl0byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjMuNyA1MDUuOWM5LjgtOC45IDEwLjctMjQuMyAyLjEtMzQuM2wtNDIuMS00OSAwLTU0LjdjMC01LjUtMS44LTEwLjgtNS4xLTE1LjFMMzUyIDI2Ni4zbDAtLjNMNDg1LjQgMzg3LjhDNTQyLjQgNDQ3LjYgNjQwIDQwNS4yIDY0MCAzMjAuNmMwLTQ3LjktMzQtODguMy03OS40LTk0LjJsLTE1My0yMy45IDQwLjgtNDAuOWM3LjgtNy44IDkuNC0yMC4xIDMuOS0yOS44TDQyOC41IDkwLjFsMzguMi01MC45YzgtMTAuNiA2LjEtMjUuOS00LjMtMzQuMXMtMjUuMi02LjMtMzMuMiA0LjRsLTQ4IDYzLjljLTUuOSA3LjktNi42IDE4LjYtMS43IDI3LjJMNDAyLjIgMTQwIDM1MiAxOTAuM2wwLTM4LjJjMC0xNC45LTEwLjItMjcuNC0yNC0zMWwwLTU3LjJjMC00LjQtMy42LTgtOC04cy04IDMuNi04IDhsMCA1Ny4yYy0xMy44IDMuNi0yNCAxNi4xLTI0IDMxbDAgMzguMUwyMzcuOCAxNDBsMjIuNi0zOS41YzQuOS04LjYgNC4yLTE5LjMtMS43LTI3LjJsLTQ4LTYzLjljLTgtMTAuNi0yMi44LTEyLjYtMzMuMi00LjRzLTEyLjIgMjMuNS00LjMgMzQuMWwzOC4yIDUwLjktMjMuOSA0MS43Yy01LjUgOS43LTMuOSAyMiAzLjkgMjkuOGw0MC44IDQwLjktMTUzIDIzLjlDMzQgMjMyLjMgMCAyNzIuNyAwIDMyMC42YzAgODQuNiA5Ny42IDEyNyAxNTQuNiA2Ny4xTDI4OCAyNjZsMCAuMy02Ni41IDg2LjRjLTMuMyA0LjMtNS4xIDkuNi01LjEgMTUuMWwwIDU0LjctNDIuMSA0OWMtOC42IDEwLjEtNy43IDI1LjUgMi4xIDM0LjNzMjQuNyA3LjkgMzMuNC0yLjFsNDgtNTUuOWMzLjgtNC40IDUuOS0xMC4yIDUuOS0xNi4xbDAtNTUuNEwyODggMzQ0LjdsMCA2My4xYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02My4xIDI0LjMgMzEuNiAwIDU1LjRjMCA1LjkgMi4xIDExLjcgNS45IDE2LjFsNDggNTUuOWM4LjYgMTAuMSAyMy42IDExIDMzLjQgMi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb3RvcmN5Y2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4MCAzMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGg1Ny43bDE2LjQgMzAuM0wyNTYgMTkybC00NS4zLTQ1LjNjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdINjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyaDk2Yzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwYzAgMTEtMS4xIDIxLjctMy4yIDMyaDcwLjRjLTIuMS0xMC4zLTMuMi0yMS0zLjItMzJjMC01Mi4yIDI1LTk4LjYgNjMuNy0xMjcuOGwxNS40IDI4LjZDNDAyLjQgMjc2LjMgMzg0IDMxMiAzODQgMzUyYzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4czEyOC01Ny4zIDEyOC0xMjhzLTU3LjMtMTI4LTEyOC0xMjhjLTEzLjUgMC0yNi41IDIuMS0zOC43IDZMNDE4LjIgMTI4SDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMlY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkg0NTkuNmMtNy41IDAtMTQuNyAyLjYtMjAuNSA3LjRMMzkxLjcgNzguOWwtMTQtMjZjLTctMTIuOS0yMC41LTIxLTM1LjItMjFIMjgwek00NjIuNyAzMTEuMmwyOC4yIDUyLjJjNi4zIDExLjcgMjAuOSAxNiAzMi41IDkuN3MxNi0yMC45IDkuNy0zMi41bC0yOC4yLTUyLjJjMi4zLS4zIDQuNy0uNCA3LjEtLjRjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0xNS41IDUuNS0yOS43IDE0LjctNDAuOHpNMTg3LjMgMzc2Yy05LjUgMjMuNS0zMi41IDQwLTU5LjMgNDBjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRjMjYuOSAwIDQ5LjkgMTYuNSA1OS4zIDQwaDY2LjRDMjQyLjUgMjY4LjggMTkwLjUgMjI0IDEyOCAyMjRDNTcuMyAyMjQgMCAyODEuMyAwIDM1MnM1Ny4zIDEyOCAxMjggMTI4YzYyLjUgMCAxMTQuNS00NC44IDEyNS44LTEwNEgxODcuM3pNMTI4IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vdW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NC4xIDE3OS4yQzE3My44IDEyNy43IDIyOC42IDk2IDI4OCA5NnMxMTQuMiAzMS43IDE0My45IDgzLjJMNTQwLjQgMzY4YzEyLjMgMjEuMy0zLjEgNDgtMjcuNyA0OEg2My4zYy0yNC42IDAtNDAtMjYuNi0yNy43LTQ4TDE0NC4xIDE3OS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb3VudGFpbkNpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djkyLjFsNzEuNCAxMTguNGMyLjUtMS42IDUuNC0yLjUgOC42LTIuNWgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2aC0zLjVsNzMuOCAxMjIuNGMxMi40IDIwLjYgMTIuOSA0Ni4zIDEuMiA2Ny4zYy0uNCAuOC0uOSAxLjYtMS40IDIuM0g1OTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMjQwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDU2OFYxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR2NzJINDgwVjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDMzNnptMzIgNjRoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgzNjhjLTguOCAwLTE2LTcuMi0xNi0xNlY4MGMwLTguOCA3LjItMTYgMTYtMTZ6TTM1MiAxNzZjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMzY4Yy04LjggMC0xNi03LjItMTYtMTZWMTc2em0xNjAgOTZjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZINTI4Yy04LjggMC0xNi03LjItMTYtMTZWMjcyem0xNiA4MGgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDUyOGMtOC44IDAtMTYtNy4yLTE2LTE2VjM2OGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCAxODguOUwyODMuOCAyODhIMjIzbC00OCA2NC0yNC42LTQxLjJMMjI0IDE4OC45em0yOS40LTQ0LjJDMjQ3LjEgMTM0LjMgMjM2IDEyOCAyMjQgMTI4cy0yMy4xIDYuMy0yOS40IDE2LjdMNS4xIDQ1OC45Yy02LjUgMTAuOC02LjcgMjQuMy0uNyAzNS4zUzIyIDUxMiAzNC41IDUxMkg0MTMuNWMxMi41IDAgMjQtNi44IDMwLjEtMTcuOHM1LjgtMjQuNS0uNy0zNS4zTDI1My40IDE0NC43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb3VudGFpblN1biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjAgMTYwQTgwIDgwIDAgMSAwIDU2MCAwYTgwIDgwIDAgMSAwIDAgMTYwek01NS45IDUxMkgzODEuMWg3NUg1NzguOWMzMy44IDAgNjEuMS0yNy40IDYxLjEtNjEuMWMwLTExLjItMy4xLTIyLjItOC45LTMxLjhsLTEzMi0yMTYuM0M0OTUgMTk2LjEgNDg3LjggMTkyIDQ4MCAxOTJzLTE1IDQuMS0xOS4xIDEwLjdsLTQ4LjIgNzlMMjg2LjggODFjLTYuNi0xMC42LTE4LjMtMTctMzAuOC0xN3MtMjQuMSA2LjQtMzAuOCAxN0w4LjYgNDI2LjRDMyA0MzUuMyAwIDQ0NS42IDAgNDU2LjFDMCA0ODcgMjUgNTEyIDU1LjkgNTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb3VudGFpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMzJjMTIuNSAwIDI0LjEgNi40IDMwLjggMTdMNTAzLjQgMzk0LjRjNS42IDguOSA4LjYgMTkuMiA4LjYgMjkuN2MwIDMwLjktMjUgNTUuOS01NS45IDU1LjlINTUuOUMyNSA0ODAgMCA0NTUgMCA0MjQuMWMwLTEwLjUgMy0yMC44IDguNi0yOS43TDIyNS4yIDQ5YzYuNi0xMC42IDE4LjMtMTcgMzAuOC0xN3ptNjUgMTkyTDI1NiAxMjAuNCAxNzYuOSAyNDYuNWwxOC4zIDI0LjRjNi40IDguNSAxOS4yIDguNSAyNS42IDBsMjUuNi0zNC4xYzYtOC4xIDE1LjUtMTIuOCAyNS42LTEyLjhoNDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU11Z0hvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04OCAwQzc0LjcgMCA2NCAxMC43IDY0IDI0YzAgMzguOSAyMy40IDU5LjQgMzkuMSA3My4xbDEuMSAxQzEyMC41IDExMi4zIDEyOCAxMTkuOSAxMjggMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zOC45LTIzLjQtNTkuNC0zOS4xLTczLjFsLTEuMS0xQzExOS41IDQ3LjcgMTEyIDQwLjEgMTEyIDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0ek0zMiAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjQxNmMwIDUzIDQzIDk2IDk2IDk2SDI4OGM1MyAwIDk2LTQzIDk2LTk2aDE2YzYxLjkgMCAxMTItNTAuMSAxMTItMTEycy01MC4xLTExMi0xMTItMTEySDM1MiAzMnptMzUyIDY0aDE2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4SDM4NFYyNTZ6TTIyNCAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDM4LjkgMjMuNCA1OS40IDM5LjEgNzMuMWwxLjEgMUMyMzIuNSAxMTIuMyAyNDAgMTE5LjkgMjQwIDEzNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzguOS0yMy40LTU5LjQtMzkuMS03My4xbC0xLjEtMUMyMzEuNSA0Ny43IDIyNCA0MC4xIDIyNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTXVnU2F1Y2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMySDQ0OGg2NGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOHMtNTcuMyAxMjgtMTI4IDEyOEg0ODBjMCA1My00MyA5Ni05NiA5NkgxOTJjLTUzIDAtOTYtNDMtOTYtOTZWNjR6TTQ4MCAyMjRoMzJjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjRINDgwVjIyNHpNMzIgNDE2SDU0NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTXVzaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk5LjEgNi4zYzguMSA2IDEyLjkgMTUuNiAxMi45IDI1Ljd2NzJWMzY4YzAgNDQuMi00MyA4MC05NiA4MHMtOTYtMzUuOC05Ni04MHM0My04MCA5Ni04MGMxMS4yIDAgMjIgMS42IDMyIDQuNlYxNDdMMTkyIDIyMy44VjQzMmMwIDQ0LjItNDMgODAtOTYgODBzLTk2LTM1LjgtOTYtODBzNDMtODAgOTYtODBjMTEuMiAwIDIyIDEuNiAzMiA0LjZWMjAwIDEyOGMwLTE0LjEgOS4zLTI2LjYgMjIuOC0zMC43bDMyMC05NmM5LjctMi45IDIwLjItMS4xIDI4LjMgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS4xIDMzLjljMTIuNy00LjYgMjYuOS0uNyAzNS41IDkuNkwzMjAgMzU5LjZWNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMlY0NDhjMCAxMy41LTguNCAyNS41LTIxLjEgMzAuMXMtMjYuOSAuNy0zNS41LTkuNkw2NCAxNTIuNFY0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNjRDMCA1MC41IDguNCAzOC41IDIxLjEgMzMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTmFpcmFTaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyMi42IDQ2LjNjLTcuOC0xMS43LTIyLjQtMTctMzUuOS0xMi45UzY0IDQ5LjkgNjQgNjRWMjU2SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDY0VjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjMyMEgyMjguMmw5Ny4yIDE0NS44YzcuOCAxMS43IDIyLjQgMTcgMzUuOSAxMi45czIyLjctMTYuNSAyMi43LTMwLjZWMzIwaDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDM4NFY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlYyNTZIMjYyLjVMMTIyLjYgNDYuM3pNMzA1LjEgMzIwSDMyMHYyMi4zTDMwNS4xIDMyMHpNMTg1LjUgMjU2SDEyOFYxNjkuN0wxODUuNSAyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5ldHdvcmtXaXJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNjRIMzg0djY0SDI1NlY2NHpNMjQwIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQ4djMySDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDk2djMySDgwYy0yNi41IDAtNDggMjEuNS00OCA0OHY5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OEgyNDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzY4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDE5MlYyODhINDQ4djMySDQwMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2OTZjMCAyNi41IDIxLjUgNDggNDggNDhINTYwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjM2OGMwLTI2LjUtMjEuNS00OC00OC00OEg1MTJWMjg4aDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDM1MlYxOTJoNDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhIMjQwek05NiA0NDhWMzg0SDIyNHY2NEg5NnptMzIwLTY0SDU0NHY2NEg0MTZWMzg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOZXV0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODAgMTc2YTExMiAxMTIgMCAxIDEgMjI0IDBBMTEyIDExMiAwIDEgMSA4MCAxNzZ6TTIyNCAzNDkuMWM4MS45LTE1IDE0NC04Ni44IDE0NC0xNzMuMUMzNjggNzguOCAyODkuMiAwIDE5MiAwUzE2IDc4LjggMTYgMTc2YzAgODYuMyA2Mi4xIDE1OC4xIDE0NCAxNzMuMVY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzNDkuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTmV3c3BhcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0SDQ0OGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRIODBjLTQ0LjIgMC04MC0zNS44LTgwLTgwVjEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyVjQwMGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2Vjk2em02NCAyNHY4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNEgyOTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0SDE4NGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTIwOC04YzAgOC44IDcuMiAxNiAxNiAxNmg0OGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgzODRjLTguOCAwLTE2IDcuMi0xNiAxNnptMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZoNDhjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMzg0Yy04LjggMC0xNiA3LjItMTYgMTZ6TTE2MCAzMDRjMCA4LjggNy4yIDE2IDE2IDE2SDQzMmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgxNzZjLTguOCAwLTE2IDcuMi0xNiAxNnptMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZINDMyYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDE3NmMtOC44IDAtMTYgNy4yLTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOb3RFcXVhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjkuOCAzNy40YzE0LjcgOS44IDE4LjcgMjkuNyA4LjkgNDQuNEwzMzcuMSAxNDRINDAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDI5NC41bC02NCA5Nkg0MDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMTg3LjhsLTY1LjIgOTcuN2MtOS44IDE0LjctMjkuNyAxOC43LTQ0LjQgOC45cy0xOC43LTI5LjctOC45LTQ0LjRMMTEwLjkgMzY4SDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDE1My41bDY0LTk2SDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDI2MC4ybDY1LjItOTcuN2M5LjgtMTQuNyAyOS43LTE4LjcgNDQuNC04Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5vdGRlZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzOTAuM0wxNTMuNSAyNTYgNjQgMTIxLjdWMzkwLjN6TTEwMi41IDQ0OEgyODEuNUwxOTIgMzEzLjcgMTAyLjUgNDQ4em0xMjgtMTkyTDMyMCAzOTAuM1YxMjEuN0wyMzAuNSAyNTZ6TTI4MS41IDY0SDEwMi41TDE5MiAxOTguMyAyODEuNSA2NHpNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBIMzM2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4VjQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5vdGVTdGlja3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMjg4VjM2OGMwLTI2LjUgMjEuNS00OCA0OC00OEg0NDhWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6TTQ0OCAzNTJINDAyLjcgMzM2Yy04LjggMC0xNiA3LjItMTYgMTZ2NjYuN1Y0ODBsMzItMzIgNjQtNjQgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5vdGVzTWVkaWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAzNTJWOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRINDE2YzM1LjMgMCA2NCAyOC43IDY0IDY0VjI5My41YzAgMTctNi43IDMzLjMtMTguNyA0NS4zbC01OC41IDU4LjVjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdIMTYwYy0zNS4zIDAtNjQtMjguNy02NC02NHpNMjcyIDEyOGMtOC44IDAtMTYgNy4yLTE2IDE2djQ4SDIwOGMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg0OHY0OGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjI1Nmg0OGM4LjggMCAxNi03LjIgMTYtMTZWMjA4YzAtOC44LTcuMi0xNi0xNi0xNkgzMjBWMTQ0YzAtOC44LTcuMi0xNi0xNi0xNkgyNzJ6bTI0IDMzNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgxMzZDNjAuOSA1MTIgMCA0NTEuMSAwIDM3NlYxNTJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDIyNGMwIDQ4LjYgMzkuNCA4OCA4OCA4OEgyOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDk2YTE2MCAxNjAgMCAxIDAgMCAzMjAgMTYwIDE2MCAwIDEgMCAwLTMyMHpNNDQ4IDI1NkEyMjQgMjI0IDAgMSAxIDAgMjU2YTIyNCAyMjQgMCAxIDEgNDQ4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9iamVjdEdyb3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDExOS40QzEyLjkgMTA4LjQgMCA4Ny43IDAgNjRDMCAyOC43IDI4LjcgMCA2NCAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMkg0NTYuNkM0NjcuNiAxMi45IDQ4OC4zIDAgNTEyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40VjM5Mi42YzE5LjEgMTEuMSAzMiAzMS43IDMyIDU1LjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRjLTIzLjcgMC00NC40LTEyLjktNTUuNC0zMkgxMTkuNGMtMTEuMSAxOS4xLTMxLjcgMzItNTUuNCAzMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRjMC0yMy43IDEyLjktNDQuNCAzMi01NS40VjExOS40ek00NTYuNiA5NkgxMTkuNGMtNS42IDkuNy0xMy43IDE3LjgtMjMuNCAyMy40VjM5Mi42YzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNEg0NTYuNmM1LjYtOS43IDEzLjctMTcuOCAyMy40LTIzLjRWMTE5LjRjLTkuNy01LjYtMTcuOC0xMy43LTIzLjQtMjMuNHpNMTI4IDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMkgyODhjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJIMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMlYxNjB6TTI1NiAzMjBoMzJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMjI0aDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMydjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPYmplY3RVbmdyb3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDExOS40QzEyLjkgMTA4LjQgMCA4Ny43IDAgNjRDMCAyOC43IDI4LjcgMCA2NCAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMkgzMjguNkMzMzkuNiAxMi45IDM2MC4zIDAgMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40VjIzMi42YzE5LjEgMTEuMSAzMiAzMS43IDMyIDU1LjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRjLTIzLjcgMC00NC40LTEyLjktNTUuNC0zMkgxMTkuNGMtMTEuMSAxOS4xLTMxLjcgMzItNTUuNCAzMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRjMC0yMy43IDEyLjktNDQuNCAzMi01NS40VjExOS40ek0xMTkuNCA5NmMtNS42IDkuNy0xMy43IDE3LjgtMjMuNCAyMy40VjIzMi42YzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNEgzMjguNmM1LjYtOS43IDEzLjctMTcuOCAyMy40LTIzLjRWMTE5LjRjLTkuNy01LjYtMTcuOC0xMy43LTIzLjQtMjMuNEgxMTkuNHptMTkyIDM4NGMtMTEuMSAxOS4xLTMxLjcgMzItNTUuNCAzMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRjMC0yMy43IDEyLjktNDQuNCAzMi01NS40VjM1Mmg2NHY0MC42YzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNEg1MjAuNmM1LjYtOS43IDEzLjctMTcuOCAyMy40LTIzLjRWMjc5LjRjLTkuNy01LjYtMTcuOC0xMy43LTIzLjQtMjMuNGgtNDZjLTUuNC0xNS40LTE0LjYtMjguOS0yNi41LTM5LjZWMTkyaDcyLjZjMTEuMS0xOS4xIDMxLjctMzIgNTUuNC0zMmMzNS4zIDAgNjQgMjguNyA2NCA2NGMwIDIzLjctMTIuOSA0NC40LTMyIDU1LjRWMzkyLjZjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNGMwIDM1LjMtMjguNyA2NC02NCA2NGMtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMySDMxMS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPaWxDYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDEyOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoMzJ2MzJIMTQ0IDk2IDQ4Yy0yNi41IDAtNDggMjEuNS00OCA0OHY2NC44YzAgMTkgMTEuMiAzNi4yIDI4LjUgNDMuOWw2Ny41IDMwVjM2OGMwIDI2LjUgMjEuNSA0OCA0OCA0OEg0MDMuMWMxOC40IDAgMzUuOC03LjkgNDgtMjEuN0w2MzMuNSAxODcuN2MxMi4zLTEzLjktLjMtMzUuNC0xOC40LTMxLjVMNDQ4IDE5MmwtNTAuNS0yNS4yYy04LjktNC40LTE4LjctNi44LTI4LjYtNi44SDI4OFYxMjhoMzJ6TTk2IDIwOHY4Ni4xTDQ4IDI3Mi44VjIwOEg5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT2lsV2VsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjguMyA2MS4zYy0xMS40LTQyLjctNTUuMy02OC05OC01Ni42TDQxNC45IDguOEMzOTcuOCAxMy40IDM4Ny43IDMxIDM5Mi4zIDQ4bDI0LjUgOTEuNEwzMDguNSAxNjcuNWwtNi4zLTE4LjFDMjk3LjcgMTM2LjYgMjg1LjYgMTI4IDI3MiAxMjhzLTI1LjcgOC42LTMwLjIgMjEuNGwtMTMuNiAzOUw5NiAyMjIuNlYxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRWNDQ4SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDU0NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg0MDYuN0wzNDAgMjU3LjVsLTYyLjIgMTYuMUwzMDUuMyAzNTJIMjM4LjdMMjY1IDI3N2wtNzQuNiAxOS4zTDEzNy4zIDQ0OEg5NlYyODguOGwzMzcuNC04Ny41IDI1LjIgOTRjNC42IDE3LjEgMjIuMSAyNy4yIDM5LjIgMjIuNmwxNS41LTQuMWM0Mi43LTExLjQgNjgtNTUuMyA1Ni42LTk4TDUyOC4zIDYxLjN6TTIwNS4xIDQ0OGwxMS4yLTMySDMyNy43bDExLjIgMzJIMjA1LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3OS4zIDQuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBsLTE2IDE2Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmwxNiAxNmM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGwxNi0xNmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtMTYtMTZ6TTI4MSA2Ni43Yy0yLjItMS41LTQuOS0yLjUtNy43LTIuN2MtLjYgMC0xLjMtLjEtMS45IDBjLTMuOSAuMi03LjQgMS43LTEwLjEgNC4yYy0uOSAuOC0xLjYgMS43LTIuMyAyLjZjLTEuNyAyLjQtMi43IDUuMy0yLjkgOC41YzAgLjcgMCAxLjQgMCAyLjFjLjIgMi4yIC45IDQuMyAxLjkgNi4ybC4zIC42Yy4zIC42IC44IDEuNCAxLjQgMi40YzEuMiAyIDIuOSA0LjggNS4xIDguMmM0LjQgNi43IDExLjEgMTUuNSAyMCAyNC40QzMwMi40IDE0MS4xIDMzMC4zIDE2MCAzNjggMTYwYzMxLjIgMCA1Ni42LTEwLjQgNzMuOS0yMC4yYzguNy01IDE1LjYtOS45IDIwLjQtMTMuOGMyLjQtMS45IDQuMy0zLjYgNS43LTQuOWMuNy0uNiAxLjMtMS4yIDEuNy0xLjZsLjYtLjUgLjEtLjEgLjEtLjEgMCAwIDAgMGM1LjktNS44IDkuNS0xMy45IDkuNS0yMi44YzAtMTcuNy0xNC4zLTMyLTMyLTMyYy04LjcgMC0xNi43IDMuNS0yMi40IDkuMmMtLjEgLjEtLjIgLjItLjUgLjRjLS41IC41LTEuNSAxLjMtMi44IDIuNGMtMi43IDIuMi02LjggNS4yLTEyLjEgOC4yQzM5OS40IDkwLjQgMzg0LjggOTYgMzY4IDk2Yy0yMC44IDAtNDIuNC03LTU5LjUtMTQuNmMtOC40LTMuNy0xNS40LTcuNS0yMC4zLTEwLjNjLTIuNC0xLjQtNC4zLTIuNS01LjYtMy4zYy0uNi0uNC0xLjEtLjctMS40LS45bC0uMy0uMnpNMTE1LjIgMTY5LjZjOC02IDE3LjktOS42IDI4LjgtOS42YzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4SDEwOS44Yy03LjYgMC0xMy44IDYuMi0xMy44IDEzLjhjMCAxLjUgLjIgMi45IC43IDQuNGw4IDI0YzQuNCAxMy4xIDE2LjYgMjEuOSAzMC40IDIxLjlIMTQ0aDE2YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0Yy01MC44IDAtODIuNy0yMS41LTEwMi4yLTQyLjhjLTkuOS0xMC44LTE2LjYtMjEuNi0yMC45LTI5LjdjLTIuMS00LTMuNi03LjMtNC41LTkuNmMtLjUtMS4xLS44LTItMS0yLjVsLS4yLS41Yy0uMy0uOS0uNy0xLjgtMS4xLTIuNmMtMS4yLTIuMi0yLjgtNC00LjctNS40Yy0xLjktMS40LTQuMS0yLjMtNi41LTIuOGMtMS40LS4zLTIuOS0uMy00LjQtLjJjLTIuNSAuMi00LjggMS02LjggMi4zYy0xLjEgLjctMi4yIDEuNS0zLjEgMi41Yy0yLjQgMi41LTQuMSA1LjgtNC41IDkuNWMtLjEgLjYtLjEgMS4xLS4xIDEuN2MwIDAgMCAwIDAgMGMwIC44IC4xIDEuNyAuMiAyLjVsMCAuMWMwIC4zIC4xIC44IC4yIDEuM2MuMiAxLjEgLjQgMi43IC44IDQuNmMuOCAzLjkgMiA5LjQgMy45IDE1LjljMy44IDEzIDEwLjMgMzAuNCAyMS4zIDQ4QzQ4LjcgNDc2LjIgODkuNCA1MTIgMTYwIDUxMmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGMwLTIzLjMtNi4yLTQ1LjItMTcuMS02NGgyMi42YzI1LjUgMCA0OS45LTEwLjEgNjcuOS0yOC4xbDI2LjUtMjYuNWM2LTYgMTQuMS05LjQgMjIuNi05LjRINDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMydjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyYy0yNS43IDAtNDEuNC0xMi41LTUxLjItMjUuNmMtNS02LjctOC40LTEzLjQtMTAuNS0xOC42Yy0xLjEtMi41LTEuOC00LjYtMi4yLTZjLS4yLS43LS40LTEuMi0uNS0xLjVsLS4xLS4yYy0uMy0xLjMtLjgtMi42LTEuNS0zLjhjLTEuMS0yLTIuNi0zLjgtNC40LTUuMWMtMi43LTItNi0zLjItOS42LTMuMmwtLjIgMGMtOCAuMS0xNC42IDYuMS0xNS42IDEzLjlsMCAwYzAgLjMtLjEgLjYtLjIgMS4xYy0uMSAuOS0uMyAyLjEtLjQgMy42Yy0uMyAzLS42IDcuMy0uNiAxMi40YzAgMTAuMSAxLjEgMjMuOSA1LjggMzguMWM0LjggMTQuMyAxMy40IDI5LjMgMjguNiA0MC43QzM2OC43IDQ3My4zIDM4OS4zIDQ4MCA0MTYgNDgwYzUzIDAgOTYtNDMgOTYtOTZWMjg4YzAtNTMtNDMtOTYtOTYtOTZoLTUuNWMtMjUuNSAwLTQ5LjkgMTAuMS02Ny45IDI4LjFsLTI2LjUgMjYuNWMtNiA2LTE0LjEgOS40LTIyLjYgOS40SDI0NS4yYzYuOS0xNC41IDEwLjgtMzAuOCAxMC44LTQ4YzAtNjEuOS01MC4xLTExMi0xMTItMTEyYy0yNS4yIDAtNDguNSA4LjMtNjcuMiAyMi40Yy0xNC4xIDEwLjYtMTcgMzAuNy02LjQgNDQuOHMzMC43IDE3IDQ0LjggNi40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPdHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODEuNSAxOTcuMWwxMi45IDYuNGM1LjkgMyAxMi40IDQuNSAxOS4xIDQuNWMyMy41IDAgNDIuNi0xOS4xIDQyLjYtNDIuNlYxNDRjMC0zNS4zLTI4LjctNjQtNjQtNjRIMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NHYyMS40YzAgMjMuNSAxOS4xIDQyLjYgNDIuNiA0Mi42YzYuNiAwIDEzLjEtMS41IDE5LjEtNC41bDEyLjktNi40IDguNC00LjJMMTM1LjEgMTg1Yy00LjUtMy03LjEtOC03LjEtMTMuM1YxNjhjMC0xMy4zIDEwLjctMjQgMjQtMjRoMTZjMTMuMyAwIDI0IDEwLjcgMjQgMjR2My43YzAgNS4zLTIuNyAxMC4zLTcuMSAxMy4zbC0xMS44IDcuOSA4LjQgNC4yem0tOC42IDQ5LjRMMTYwIDI0MGwtMTIuOSA2LjRjLTEyLjYgNi4zLTI2LjUgOS42LTQwLjUgOS42Yy0zLjYgMC03LjEtLjItMTAuNi0uNnYuNmMwIDM1LjMgMjguNyA2NCA2NCA2NGg2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzODRWMzM2IDMyMGMwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRjOS40LTUuNCAyMC4zLTguNiAzMi04LjZWMjQwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4YzguOCAwIDE2IDcuMiAxNiAxNnYzMiAxNiA0OGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjIwNC4zYzAtNDguMi0zMC44LTkxLTc2LjYtMTA2LjNsLTguNS0yLjhjLTgtMi43LTEyLjYtMTEuMS0xMC40LTE5LjNzMTAuMy0xMy4yIDE4LjYtMTEuNmwxOS45IDRDNTc2IDg2LjEgNjQwIDE2NC4yIDY0MCAyNTQuOWwwIDEuMWgwYzAgMTIzLjctMTAwLjMgMjI0LTIyNCAyMjRoLTEuMUgyNTZoLS42QzEzMiA0ODAgMzIgMzgwIDMyIDI1Ni42VjI1NiAyMTYuOGMtMTAuMS0xNC42LTE2LTMyLjMtMTYtNTEuNFYxNDRsMC0xLjRDNi43IDEzOS4zIDAgMTMwLjUgMCAxMjBjMC0xMy4zIDEwLjctMjQgMjQtMjRoMi44QzQ0LjggNTguMiA4My4zIDMyIDEyOCAzMmg2NGM0NC43IDAgODMuMiAyNi4yIDEwMS4yIDY0SDI5NmMxMy4zIDAgMjQgMTAuNyAyNCAyNGMwIDEwLjUtNi43IDE5LjMtMTYgMjIuNmwwIDEuNHYyMS40YzAgMS40IDAgMi44LS4xIDQuM2MxMi02LjIgMjUuNy05LjYgNDAuMS05LjZoOGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmgtOGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2OGg1Ni40Yy0xNS4yIDE3LTI0LjQgMzkuNC0yNC40IDY0SDMyMGMtNDIuMyAwLTc4LjItMjcuNC05MS02NS4zYy01LjEgLjktMTAuMyAxLjMtMTUuNiAxLjNjLTE0LjEgMC0yNy45LTMuMy00MC41LTkuNnpNOTYgMTI4YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnptMTEyIDE2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU91dGRlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMkg0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzJDMTQuMyA5NiAwIDgxLjcgMCA2NHpNMTkyIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMkg0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnptMzIgOTZINDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpNMCA0NDhjMC0xNy43IDE0LjMtMzIgMzItMzJINDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNLjIgMjY4LjZjLTguMi02LjQtOC4yLTE4LjkgMC0yNS4zbDEwMS45LTc5LjNjMTAuNS04LjIgMjUuOC0uNyAyNS44IDEyLjZWMzM1LjNjMCAxMy4zLTE1LjMgMjAuOC0yNS44IDEyLjZMLjIgMjY4LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmg5NmM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MHMtNzEuNiAxNjAtMTYwIDE2MEg2NHY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzMjAgOTZ6TTY0IDI4OGg5NmM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05Nkg2NFYyODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhZ2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0SDQ0OGMzNS4zIDAgNjQgMjguNyA2NCA2NFYzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjEyOHptNjQgMzJ2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJINDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMkg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTgwIDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGg1NmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEg4MHptMTM2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYWludFJvbGxlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEgzNTJjMzUuMyAwIDY0IDI4LjcgNjQgNjR2NjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjY0ek0xNjAgMzUyYzAtMTcuNyAxNC4zLTMyIDMyLTMyVjMwNGMwLTQ0LjIgMzUuOC04MCA4MC04MEg0MTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTYwIDY5LjVjMzcuMyAxMy4yIDY0IDQ4LjcgNjQgOTAuNXYzMmMwIDUzLTQzIDk2LTk2IDk2SDI3MmMtOC44IDAtMTYgNy4yLTE2IDE2djE2YzE3LjcgMCAzMiAxNC4zIDMyIDMyVjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjM1MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFpbnRicnVzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzkuMyAzNjcuMWMyNy4zLTMuOSA1MS45LTE5LjQgNjcuMi00Mi45TDU2OC4yIDc0LjFjMTIuNi0xOS41IDkuNC00NS4zLTcuNi02MS4yUzUxNy43LTQuNCA0OTkuMSA5LjZMMjYyLjQgMTg3LjJjLTI0IDE4LTM4LjIgNDYuMS0zOC40IDc2LjFMMzM5LjMgMzY3LjF6bS0xOS42IDI1LjRsLTExNi0xMDQuNEMxNDMuOSAyOTAuMyA5NiAzMzkuNiA5NiA0MDBjMCAzLjkgLjIgNy44IC42IDExLjZDOTguNCA0MjkuMSA4Ni40IDQ0OCA2OC44IDQ0OEg2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkgyMDhjNjEuOSAwIDExMi01MC4xIDExMi0xMTJjMC0yLjUtLjEtNS0uMi03LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhbGV0dGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDI1NmMwIC45IDAgMS44IDAgMi43Yy0uNCAzNi41LTMzLjYgNjEuMy03MC4xIDYxLjNIMzQ0Yy0yNi41IDAtNDggMjEuNS00OCA0OGMwIDMuNCAuNCA2LjcgMSA5LjljMi4xIDEwLjIgNi41IDIwIDEwLjggMjkuOWM2LjEgMTMuOCAxMi4xIDI3LjUgMTIuMSA0MmMwIDMxLjgtMjEuNiA2MC43LTUzLjQgNjJjLTMuNSAuMS03IC4yLTEwLjYgLjJDMTE0LjYgNTEyIDAgMzk3LjQgMCAyNTZTMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NnpNMTI4IDI4OGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wLTk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMjg4IDk2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFsbGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg2NHY2NEgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg5NiAzMjAgNTQ0aDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDU3NlYzODRoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINTQ0IDMyMCA5NiAzMnptOTYgNjRIMjg4djY0SDEyOFYzODR6bTIyNCAwSDUxMnY2NEgzNTJWMzg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYW5vcmFtYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NS42IDMyQzIwLjQgMzIgMCA1Mi40IDAgNzcuNlY0MzQuNEMwIDQ1OS42IDIwLjQgNDgwIDQ1LjYgNDgwYzUuMSAwIDEwLS44IDE0LjctMi40Qzc0LjYgNDcyLjggMTc3LjYgNDQwIDMyMCA0NDBzMjQ1LjQgMzIuOCAyNTkuNiAzNy42YzQuNyAxLjYgOS43IDIuNCAxNC43IDIuNGMyNS4yIDAgNDUuNi0yMC40IDQ1LjYtNDUuNlY3Ny42QzY0MCA1Mi40IDYxOS42IDMyIDU5NC40IDMyYy01IDAtMTAgLjgtMTQuNyAyLjRDNTY1LjQgMzkuMiA0NjIuNCA3MiAzMjAgNzJTNzQuNiAzOS4yIDYwLjQgMzQuNEM1NS42IDMyLjggNTAuNyAzMiA0NS42IDMyek05NiAxNjBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMjcyIDBjNy45IDAgMTUuNCAzLjkgMTkuOCAxMC41TDUxMi4zIDM1M2M1LjQgOCA1LjYgMTguNCAuNCAyNi41cy0xNC43IDEyLjMtMjQuMiAxMC43QzQ0Mi43IDM4Mi40IDM4NS4yIDM3NiAzMjAgMzc2Yy02NS42IDAtMTIzLjQgNi41LTE2OS4zIDE0LjRjLTkuOCAxLjctMTkuNy0yLjktMjQuNy0xMS41cy00LjMtMTkuNCAxLjktMjcuMkwxOTcuMyAyNjVjNC42LTUuNyAxMS40LTkgMTguNy05czE0LjIgMy4zIDE4LjcgOWwyNi40IDMzLjEgODctMTI3LjZjNC41LTYuNiAxMS45LTEwLjUgMTkuOC0xMC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXBlclBsYW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5OC4xIDUuNmMxMC4xIDcgMTUuNCAxOS4xIDEzLjUgMzEuMmwtNjQgNDE2Yy0xLjUgOS43LTcuNCAxOC4yLTE2IDIzcy0xOC45IDUuNC0yOCAxLjZMMjg0IDQyNy43bC02OC41IDc0LjFjLTguOSA5LjctMjIuOSAxMi45LTM1LjIgOC4xUzE2MCA0OTMuMiAxNjAgNDgwVjM5Ni40YzAtNCAxLjUtNy44IDQuMi0xMC43TDMzMS44IDIwMi44YzUuOC02LjMgNS42LTE2LS40LTIycy0xNS43LTYuNC0yMi0uN0wxMDYgMzYwLjggMTcuNyAzMTYuNkM3LjEgMzExLjMgLjMgMzAwLjcgMCAyODguOXM1LjktMjIuOCAxNi4xLTI4LjdsNDQ4LTI1NmMxMC43LTYuMSAyMy45LTUuNSAzNCAxLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhcGVyY2xpcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjQuMiA4My44Yy0yNC40LTI0LjQtNjQtMjQuNC04OC40IDBsLTE4NCAxODRjLTQyLjEgNDIuMS00Mi4xIDExMC4zIDAgMTUyLjRzMTEwLjMgNDIuMSAxNTIuNCAwbDE1Mi0xNTJjMTAuOS0xMC45IDI4LjctMTAuOSAzOS42IDBzMTAuOSAyOC43IDAgMzkuNmwtMTUyIDE1MmMtNjQgNjQtMTY3LjYgNjQtMjMxLjYgMHMtNjQtMTY3LjYgMC0yMzEuNmwxODQtMTg0YzQ2LjMtNDYuMyAxMjEuMy00Ni4zIDE2Ny42IDBzNDYuMyAxMjEuMyAwIDE2Ny42bC0xNzYgMTc2Yy0yOC42IDI4LjYtNzUgMjguNi0xMDMuNiAwcy0yOC42LTc1IDAtMTAzLjZsMTQ0LTE0NGMxMC45LTEwLjkgMjguNy0xMC45IDM5LjYgMHMxMC45IDI4LjcgMCAzOS42bC0xNDQgMTQ0Yy02LjcgNi43LTYuNyAxNy43IDAgMjQuNHMxNy43IDYuNyAyNC40IDBsMTc2LTE3NmMyNC40LTI0LjQgMjQuNC02NCAwLTg4LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhcmFjaHV0ZUJveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODMuNSAxOTJjLjMtNS4zIC41LTEwLjYgLjUtMTZjMC01MS0xNS45LTk2LTQwLjItMTI3LjZDMzE5LjUgMTYuOSAyODguMiAwIDI1NiAwcy02My41IDE2LjktODcuOCA0OC40QzE0My45IDgwIDEyOCAxMjUgMTI4IDE3NmMwIDUuNCAuMiAxMC43IC41IDE2SDI0MFYzMjBIMjA4Yy03IDAtMTMuNyAxLjUtMTkuNyA0LjJMNjguMiAxOTJIOTYuNWMtLjMtNS4zLS41LTEwLjYtLjUtMTZjMC02NCAyMi4yLTEyMS4yIDU3LjEtMTU5LjNDNjIgNDkuMyAxOC42IDEyMi42IDQuMiAxNzMuNkMxLjUgMTgzLjEgOSAxOTIgMTguOSAxOTJoNkwxNjUuMiAzNDYuM2MtMy4zIDYuNS01LjIgMTMuOS01LjIgMjEuN3Y5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg5NmMyNi41IDAgNDgtMjEuNSA0OC00OFYzNjhjMC03LjgtMS45LTE1LjItNS4yLTIxLjdMNDg3LjEgMTkyaDZjOS45IDAgMTcuNC04LjkgMTQuNy0xOC40QzQ5My40IDEyMi42IDQ1MCA0OS4zIDM1OC45IDE2LjdDMzkzLjggNTQuOCA0MTYgMTEyLjEgNDE2IDE3NmMwIDUuNC0uMiAxMC43LS41IDE2aDI4LjNMMzIzLjcgMzI0LjJjLTYtMi43LTEyLjctNC4yLTE5LjctNC4ySDI3MlYxOTJIMzgzLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhcmFncmFwaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMzJoNjRINDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDM4NGwwIDM1MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTM1MkgyODhWNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjM1MkgxOTJjLTg4LjQgMC0xNjAtNzEuNi0xNjAtMTYwczcxLjYtMTYwIDE2MC0xNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhc3Nwb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwSDM4NGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjY0ek0xODMgMjc4LjhjLTI3LjktMTMuMi00OC40LTM5LjQtNTMuNy03MC44aDM5LjFjMS42IDMwLjQgNy43IDUzLjggMTQuNiA3MC44em00MS4zIDkuMmwtLjMgMC0uMyAwYy0yLjQtMy41LTUuNy04LjktOS4xLTE2LjVjLTYtMTMuNi0xMi40LTM0LjMtMTQuMi02My41aDQ3LjFjLTEuOCAyOS4yLTguMSA0OS45LTE0LjIgNjMuNWMtMy40IDcuNi02LjcgMTMtOS4xIDE2LjV6bTQwLjctOS4yYzYuOC0xNy4xIDEyLjktNDAuNCAxNC42LTcwLjhoMzkuMWMtNS4zIDMxLjQtMjUuOCA1Ny42LTUzLjcgNzAuOHpNMjc5LjYgMTc2Yy0xLjYtMzAuNC03LjctNTMuOC0xNC42LTcwLjhjMjcuOSAxMy4yIDQ4LjQgMzkuNCA1My43IDcwLjhIMjc5LjZ6TTIyMy43IDk2bC4zIDAgLjMgMGMyLjQgMy41IDUuNyA4LjkgOS4xIDE2LjVjNiAxMy42IDEyLjQgMzQuMyAxNC4yIDYzLjVIMjAwLjVjMS44LTI5LjIgOC4xLTQ5LjkgMTQuMi02My41YzMuNC03LjYgNi43LTEzIDkuMS0xNi41ek0xODMgMTA1LjJjLTYuOCAxNy4xLTEyLjkgNDAuNC0xNC42IDcwLjhIMTI5LjNjNS4zLTMxLjQgMjUuOC01Ny42IDUzLjctNzAuOHpNMzUyIDE5MkExMjggMTI4IDAgMSAwIDk2IDE5MmExMjggMTI4IDAgMSAwIDI1NiAwek0xMTIgMzg0Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2SDMzNmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgxMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhc3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCAwYy0yMy43IDAtNDQuNCAxMi45LTU1LjQgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MFY0MDBjMCAyNi41IDIxLjUgNDggNDggNDhIMTkyVjE3NmMwLTQ0LjIgMzUuOC04MCA4MC04MGg0OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OEgyMTUuNEMyMDQuNCAxMi45IDE4My43IDAgMTYwIDB6TTI3MiAxMjhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4VjQ0OHYxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OEg0NjRjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMjQzLjljMC0xMi43LTUuMS0yNC45LTE0LjEtMzMuOWwtNjcuOS02Ny45Yy05LTktMjEuMi0xNC4xLTMzLjktMTQuMUgzMjAgMjcyek0xNjAgNDBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXVzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCA2NEMyMS41IDY0IDAgODUuNSAwIDExMlY0MDBjMCAyNi41IDIxLjUgNDggNDggNDhIODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4em0xOTIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhWNDAwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDMyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjExMmMwLTI2LjUtMjEuNS00OC00OC00OEgyNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjYuNSA5Mi45YzE0LjMgNDIuOS0uMyA4Ni4yLTMyLjYgOTYuOHMtNzAuMS0xNS42LTg0LjQtNTguNXMuMy04Ni4yIDMyLjYtOTYuOHM3MC4xIDE1LjYgODQuNCA1OC41ek0xMDAuNCAxOTguNmMxOC45IDMyLjQgMTQuMyA3MC4xLTEwLjIgODQuMXMtNTkuNy0uOS03OC41LTMzLjNTLTIuNyAxNzkuMyAyMS44IDE2NS4zczU5LjcgLjkgNzguNSAzMy4zek02OS4yIDQwMS4yQzEyMS42IDI1OS45IDIxNC43IDIyNCAyNTYgMjI0czEzNC40IDM1LjkgMTg2LjggMTc3LjJjMy42IDkuNyA1LjIgMjAuMSA1LjIgMzAuNXYxLjZjMCAyNS44LTIwLjkgNDYuNy00Ni43IDQ2LjdjLTExLjUgMC0yMi45LTEuNC0zNC00LjJsLTg4LTIyYy0xNS4zLTMuOC0zMS4zLTMuOC00Ni42IDBsLTg4IDIyYy0xMS4xIDIuOC0yMi41IDQuMi0zNCA0LjJDODQuOSA0ODAgNjQgNDU5LjEgNjQgNDMzLjN2LTEuNmMwLTEwLjQgMS42LTIwLjggNS4yLTMwLjV6TTQyMS44IDI4Mi43Yy0yNC41LTE0LTI5LjEtNTEuNy0xMC4yLTg0LjFzNTQtNDcuMyA3OC41LTMzLjNzMjkuMSA1MS43IDEwLjIgODQuMXMtNTQgNDcuMy03OC41IDMzLjN6TTMxMC4xIDE4OS43Yy0zMi4zLTEwLjYtNDYuOS01My45LTMyLjYtOTYuOHM1Mi4xLTY5LjEgODQuNC01OC41czQ2LjkgNTMuOSAzMi42IDk2LjhzLTUyLjEgNjkuMS04NC40IDU4LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCA0NDUuM1YzMjMuNWwtOTQuMyA3Ny4xYzI2LjEgMjIuOCA1OC41IDM4LjcgOTQuMyA0NC43ek04OS4yIDM1MS4xTDIyNCAyNDAuOFY2Ni43QzEzMy4yIDgxLjkgNjQgMTYwLjkgNjQgMjU2YzAgMzQuNiA5LjIgNjcuMSAyNS4yIDk1LjF6bTI5My4xIDQ5LjVMMjg4IDMyMy41VjQ0NS4zYzM1LjctNiA2OC4xLTIxLjkgOTQuMy00NC43em00MC42LTQ5LjVjMTYtMjggMjUuMi02MC41IDI1LjItOTUuMWMwLTk1LjEtNjkuMi0xNzQuMS0xNjAtMTg5LjNWMjQwLjhMNDIyLjggMzUxLjF6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVuQ2xpcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTMuMyAxOS4zbDM5LjQgMzkuNGMyNSAyNSAyNSA2NS41IDAgOTAuNWwtNTIuMSA1Mi4xIDAgMC0xLTEgMCAwLTE2LTE2LTk2LTk2LTE3LTE3IDUyLjEtNTIuMWMyNS0yNSA2NS41LTI1IDkwLjUgMHpNMjQxIDExNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEwxMDUgMjE3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45TDE3My4xIDgxYzI4LjEtMjguMSA3My43LTI4LjEgMTAxLjggMEwyODggOTQuMWwxNyAxNyA5NiA5NiAxNiAxNiAxIDEtMTcgMTdMMjI5LjUgNDEyLjVjLTQ4IDQ4LTEwOS4yIDgwLjgtMTc1LjggOTQuMWwtMjUgNWMtNy45IDEuNi0xNi0uOS0yMS43LTYuNnMtOC4xLTEzLjgtNi42LTIxLjdsNS0yNWMxMy4zLTY2LjYgNDYuMS0xMjcuOCA5NC4xLTE3NS44TDI1NC4xIDEyOCAyNDEgMTE0Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlbkZhbmN5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3My41IDI3LjFDMzg4LjUgOS45IDQxMC4yIDAgNDMzIDBjNDMuNiAwIDc5IDM1LjQgNzkgNzljMCAyMi44LTkuOSA0NC42LTI3LjEgNTkuNkwyNzcuNyAzMTlsLTEwLjMtMTAuMy02NC02NEwxOTMgMjM0LjMgMzczLjUgMjcuMXpNMTcwLjMgMjU2LjlsMTAuNCAxMC40IDY0IDY0IDEwLjQgMTAuNC0xOS4yIDgzLjRjLTMuOSAxNy4xLTE2LjkgMzAuNy0zMy44IDM1LjRMMjQuNCA1MTAuM2w5NS40LTk1LjRjMi42IC43IDUuNCAxLjEgOC4zIDEuMWMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmMwIDIuOSAuNCA1LjYgMS4xIDguM0wxLjcgNDg3LjYgNTEuNSAzMTBjNC43LTE2LjkgMTguMy0yOS45IDM1LjQtMzMuOGw4My40LTE5LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlbk5pYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjguNCAxOC4zTDMxMi43IDc0LjEgNDM3LjkgMTk5LjNsNTUuNy01NS43YzIxLjktMjEuOSAyMS45LTU3LjMgMC03OS4yTDQ0Ny42IDE4LjNjLTIxLjktMjEuOS01Ny4zLTIxLjktNzkuMiAwek0yODggOTQuNmwtOS4yIDIuOEwxMzQuNyAxNDAuNmMtMTkuOSA2LTM1LjcgMjEuMi00Mi4zIDQxTDMuOCA0NDUuOGMtMy44IDExLjMtMSAyMy45IDcuMyAzMi40TDE2NC43IDMyNC43Yy0zLTYuMy00LjctMTMuMy00LjctMjAuN2MwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4Yy03LjQgMC0xNC40LTEuNy0yMC43LTQuN0wzMy43IDUwMC45YzguNiA4LjMgMjEuMSAxMS4yIDMyLjQgNy4zbDI2NC4zLTg4LjZjMTkuNy02LjYgMzUtMjIuNCA0MS00Mi4zbDQzLjItMTQ0LjEgMi44LTkuMkwyODggOTQuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVuUnVsZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY5LjMgMTkuM2wyMy40IDIzLjRjMjUgMjUgMjUgNjUuNSAwIDkwLjVsLTU2LjQgNTYuNEwzMjIuMyA3NS43bDU2LjQtNTYuNGMyNS0yNSA2NS41LTI1IDkwLjUgMHpNNDQuOSAzNTMuMkwyOTkuNyA5OC4zIDQxMy43IDIxMi4zIDE1OC44IDQ2Ny4xYy02LjcgNi43LTE1LjEgMTEuNi0yNC4yIDE0LjJsLTEwNCAyOS43Yy04LjQgMi40LTE3LjQgLjEtMjMuNi02LjFzLTguNS0xNS4yLTYuMS0yMy42bDI5LjctMTA0YzIuNi05LjIgNy41LTE3LjUgMTQuMi0yNC4yek0yNDkuNCAxMDMuNEwxMDMuNCAyNDkuNCAxNiAxNjEuOWMtMTguNy0xOC43LTE4LjctNDkuMSAwLTY3LjlMOTQuMSAxNmMxOC43LTE4LjcgNDkuMS0xOC43IDY3LjkgMGwxOS44IDE5LjhjLS4zIC4zLS43IC42LTEgLjlsLTY0IDY0Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsNjQtNjRjLjMtLjMgLjYtLjcgLjktMWw0NS4xIDQ1LjF6TTQwOC42IDI2Mi42bDQ1LjEgNDUuMWMtLjMgLjMtLjcgLjYtMSAuOWwtNjQgNjRjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGw2NC02NGMuMy0uMyAuNi0uNyAuOS0xTDQ5NiAzNTAuMWMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOUw0MTcuOSA0OTZjLTE4LjcgMTguNy00OS4xIDE4LjctNjcuOSAwbC04Ny40LTg3LjRMNDA4LjYgMjYyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlblRvU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3MS42IDIxLjdjLTIxLjktMjEuOS01Ny4zLTIxLjktNzkuMiAwTDM2Mi4zIDUxLjdsOTcuOSA5Ny45IDMwLjEtMzAuMWMyMS45LTIxLjkgMjEuOS01Ny4zIDAtNzkuMkw0NzEuNiAyMS43em0tMjk5LjIgMjIwYy02LjEgNi4xLTEwLjggMTMuNi0xMy41IDIxLjlsLTI5LjYgODguOGMtMi45IDguNi0uNiAxOC4xIDUuOCAyNC42czE1LjkgOC43IDI0LjYgNS44bDg4LjgtMjkuNmM4LjItMi43IDE1LjctNy40IDIxLjktMTMuNUw0MzcuNyAxNzIuMyAzMzkuNyA3NC4zIDE3Mi40IDI0MS43ek05NiA2NEM0MyA2NCAwIDEwNyAwIDE2MFY0MTZjMCA1MyA0MyA5NiA5NiA5NkgzNTJjNTMgMCA5Ni00MyA5Ni05NlYzMjBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmg5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2Mi43IDE5LjNMMzE0LjMgNjcuNyA0NDQuMyAxOTcuN2w0OC40LTQ4LjRjMjUtMjUgMjUtNjUuNSAwLTkwLjVMNDUzLjMgMTkuM2MtMjUtMjUtNjUuNS0yNS05MC41IDB6bS03MSA3MUw1OC42IDMyMy41Yy0xMC40IDEwLjQtMTggMjMuMy0yMi4yIDM3LjRMMSA0ODEuMkMtMS41IDQ4OS43IC44IDQ5OC44IDcgNTA1czE1LjMgOC41IDIzLjcgNi4xbDEyMC4zLTM1LjRjMTQuMS00LjIgMjctMTEuOCAzNy40LTIyLjJMNDIxLjcgMjIwLjMgMjkxLjcgOTAuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVuY2lsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxMC4zIDIzMWwxMS4zLTExLjMtMzMuOS0zMy45LTYyLjEtNjIuMUwyOTEuNyA4OS44bC0xMS4zIDExLjMtMjIuNiAyMi42TDU4LjYgMzIyLjljLTEwLjQgMTAuNC0xOCAyMy4zLTIyLjIgMzcuNEwxIDQ4MC43Yy0yLjUgOC40LS4yIDE3LjUgNi4xIDIzLjdzMTUuMyA4LjUgMjMuNyA2LjFsMTIwLjMtMzUuNGMxNC4xLTQuMiAyNy0xMS44IDM3LjQtMjIuMkwzODcuNyAyNTMuNyA0MTAuMyAyMzF6TTE2MCAzOTkuNGwtOS4xIDIyLjdjLTQgMy4xLTguNSA1LjQtMTMuMyA2LjlMNTkuNCA0NTJsMjMtNzguMWMxLjQtNC45IDMuOC05LjQgNi45LTEzLjNsMjIuNy05LjF2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyek0zNjIuNyAxOC43TDM0OC4zIDMzLjIgMzI1LjcgNTUuOCAzMTQuMyA2Ny4xbDMzLjkgMzMuOSA2Mi4xIDYyLjEgMzMuOSAzMy45IDExLjMtMTEuMyAyMi42LTIyLjYgMTQuNS0xNC41YzI1LTI1IDI1LTY1LjUgMC05MC41TDQ1My4zIDE4LjdjLTI1LTI1LTY1LjUtMjUtOTAuNSAwem0tNDcuNCAxNjhsLTE0NCAxNDRjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMTQ0LTE0NGM2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlb3BsZUFycm93cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA2NGE2NCA2NCAwIDEgMSAxMjggMEE2NCA2NCAwIDEgMSA2NCA2NHpNMjUuOSAyMzMuNEMyOS4zIDE5MS45IDY0IDE2MCAxMDUuNiAxNjBoNDQuOGMyNyAwIDUxIDEzLjQgNjUuNSAzNC4xYy0yLjcgMS45LTUuMiA0LTcuNSA2LjNsLTY0IDY0Yy0yMS45IDIxLjktMjEuOSA1Ny4zIDAgNzkuMkwxOTIgMzkxLjJWNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDExMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMzQ4LjNjLTI2LjUtOS41LTQ0LjctMzUuOC00Mi4yLTY1LjZsNC4xLTQ5LjN6TTQ0OCA2NGE2NCA2NCAwIDEgMSAxMjggMEE2NCA2NCAwIDEgMSA0NDggNjR6TTQzMS42IDIwMC40Yy0yLjMtMi4zLTQuOS00LjQtNy41LTYuM2MxNC41LTIwLjcgMzguNi0zNC4xIDY1LjUtMzQuMWg0NC44YzQxLjYgMCA3Ni4zIDMxLjkgNzkuNyA3My40bDQuMSA0OS4zYzIuNSAyOS44LTE1LjcgNTYuMS00Mi4yIDY1LjZWNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ5NmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMzkxLjJsNDcuNi00Ny42YzIxLjktMjEuOSAyMS45LTU3LjMgMC03OS4ybC02NC02NHpNMjcyIDI0MHYzMmg5NlYyNDBjMC05LjcgNS44LTE4LjUgMTQuOC0yMi4yczE5LjMtMS43IDI2LjIgNS4ybDY0IDY0YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC02NCA2NGMtNi45IDYuOS0xNy4yIDguOS0yNi4yIDUuMnMtMTQuOC0xMi41LTE0LjgtMjIuMlYzMzZIMjcydjMyYzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw2NC02NGM2LjktNi45IDE3LjItOC45IDI2LjItNS4yczE0LjggMTIuNSAxNC44IDIyLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlb3BsZUNhcnJ5Qm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTgwIDQ4YTQ4IDQ4IDAgMSAxIDk2IDBBNDggNDggMCAxIDEgODAgNDh6bTY0IDE5My43djY1LjFsNTEgNTFjNy4xIDcuMSAxMS44IDE2LjIgMTMuNCAyNi4xbDE1LjIgOTAuOWMyLjkgMTcuNC04LjkgMzMuOS0yNi4zIDM2LjhzLTMzLjktOC45LTM2LjgtMjYuM2wtMTQuMy04NS45TDY2LjggMzIwQzU0LjggMzA4IDQ4IDI5MS43IDQ4IDI3NC43VjE4Ni42YzAtMzIuNCAyNi4yLTU4LjYgNTguNi01OC42YzI0LjEgMCA0Ni41IDEyIDU5LjkgMzJsNDcuNCA3MS4xIDEwLjEgNVYxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJIMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMydjc2LjJsMTAuMS01TDQ3My41IDE2MGMxMy4zLTIwIDM1LjgtMzIgNTkuOS0zMmMzMi40IDAgNTguNiAyNi4yIDU4LjYgNTguNnY4OC4xYzAgMTctNi43IDMzLjMtMTguNyA0NS4zbC03OS40IDc5LjQtMTQuMyA4NS45Yy0yLjkgMTcuNC0xOS40IDI5LjItMzYuOCAyNi4zcy0yOS4yLTE5LjQtMjYuMy0zNi44bDE1LjItOTAuOWMxLjYtOS45IDYuMy0xOSAxMy40LTI2LjFsNTEtNTFWMjQxLjdsLTE5IDI4LjVjLTQuNiA3LTExIDEyLjYtMTguNSAxNi4zbC01OS42IDI5LjhjLTIuNCAxLjMtNC45IDIuMi03LjYgMi44Yy0yLjYgLjYtNS4zIC45LTcuOSAuOEgyNTYuN2MtMi41IC4xLTUtLjItNy41LS43Yy0yLjktLjYtNS42LTEuNi04LjEtM2wtNTkuNS0yOS44Yy03LjUtMy43LTEzLjgtOS40LTE4LjUtMTYuM2wtMTktMjguNXpNMi4zIDQ2OC4xTDUwLjEgMzQ4LjZsNDkuMiA0OS4yLTM3LjYgOTRjLTYuNiAxNi40LTI1LjIgMjQuNC00MS42IDE3LjhTLTQuMyA0ODQuNSAyLjMgNDY4LjF6TTUxMiAwYTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnptNzcuOSAzNDguNmw0Ny44IDExOS41YzYuNiAxNi40LTEuNCAzNS0xNy44IDQxLjZzLTM1LTEuNC00MS42LTE3LjhsLTM3LjYtOTQgNDkuMi00OS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW9wbGVHcm91cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03MiA4OGE1NiA1NiAwIDEgMSAxMTIgMEE1NiA1NiAwIDEgMSA3MiA4OHpNNjQgMjQ1LjdDNTQgMjU2LjkgNDggMjcxLjggNDggMjg4czYgMzEuMSAxNiA0Mi4zVjI0NS43em0xNDQuNC00OS4zQzE3OC43IDIyMi43IDE2MCAyNjEuMiAxNjAgMzA0YzAgMzQuMyAxMiA2NS44IDMyIDkwLjVWNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYzODkuMkMyNi4yIDM3MS4yIDAgMzMyLjcgMCAyODhjMC02MS45IDUwLjEtMTEyIDExMi0xMTJoMzJjMjQgMCA0Ni4yIDcuNSA2NC40IDIwLjN6TTQ0OCA0MTZWMzk0LjVjMjAtMjQuNyAzMi01Ni4yIDMyLTkwLjVjMC00Mi44LTE4LjctODEuMy00OC40LTEwNy43QzQ0OS44IDE4My41IDQ3MiAxNzYgNDk2IDE3NmgzMmM2MS45IDAgMTEyIDUwLjEgMTEyIDExMmMwIDQ0LjctMjYuMiA4My4yLTY0IDEwMS4yVjQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMkg0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem04LTMyOGE1NiA1NiAwIDEgMSAxMTIgMEE1NiA1NiAwIDEgMSA0NTYgODh6TTU3NiAyNDUuN3Y4NC43YzEwLTExLjMgMTYtMjYuMSAxNi00Mi4zcy02LTMxLjEtMTYtNDIuM3pNMzIwIDMyYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek0yNDAgMzA0YzAgMTYuMiA2IDMxIDE2IDQyLjNWMjYxLjdjLTEwIDExLjMtMTYgMjYuMS0xNiA0Mi4zem0xNDQtNDIuM3Y4NC43YzEwLTExLjMgMTYtMjYuMSAxNi00Mi4zcy02LTMxLjEtMTYtNDIuM3pNNDQ4IDMwNGMwIDQ0LjctMjYuMiA4My4yLTY0IDEwMS4yVjQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkgyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQwNS4yYy0zNy44LTE4LTY0LTU2LjUtNjQtMTAxLjJjMC02MS45IDUwLjEtMTEyIDExMi0xMTJoMzJjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlb3BsZUxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzYwIDcyYTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6TTE0NCAyMDhhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwek0zMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINjA4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyek00OTYgMjA4YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHpNMjAwIDMxMy41bDI2LjkgNDkuOWM2LjMgMTEuNyAyMC44IDE2IDMyLjUgOS44czE2LTIwLjggOS44LTMyLjVsLTM2LjMtNjcuNWMxLjctMS43IDMuMi0zLjYgNC4zLTUuOEwyNjQgMjE3LjVWMjcyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIxNy41bDI2LjkgNDkuOWMxLjIgMi4yIDIuNiA0LjEgNC4zIDUuOGwtMzYuMyA2Ny41Yy02LjMgMTEuNy0xLjkgMjYuMiA5LjggMzIuNXMyNi4yIDEuOSAzMi41LTkuOEw0NDAgMzEzLjVWMzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMy41bDI2LjkgNDkuOWM2LjMgMTEuNyAyMC44IDE2IDMyLjUgOS44czE2LTIwLjggOS44LTMyLjVsLTM3LjktNzAuM2MtMTUuMy0yOC41LTQ1LjEtNDYuMy03Ny41LTQ2LjNINDg2LjJjLTE2LjMgMC0zMS45IDQuNS00NS40IDEyLjZsLTMzLjYtNjIuM2MtMTUuMy0yOC41LTQ1LjEtNDYuMy03Ny41LTQ2LjNIMzEwLjJjLTMyLjQgMC02Mi4xIDE3LjgtNzcuNSA0Ni4zbC0zMy42IDYyLjNjLTEzLjUtOC4xLTI5LjEtMTIuNi00NS40LTEyLjZIMTM0LjJjLTMyLjQgMC02Mi4xIDE3LjgtNzcuNSA0Ni4zTDE4LjkgMzQwLjZjLTYuMyAxMS43LTEuOSAyNi4yIDkuOCAzMi41czI2LjIgMS45IDMyLjUtOS44TDg4IDMxMy41VjM1MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg0OGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVvcGxlUHVsbGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04MCA5NkE0OCA0OCAwIDEgMCA4MCAwYTQ4IDQ4IDAgMSAwIDAgOTZ6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRWMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyYzkuOCAwIDE4LjUtNC40IDI0LjQtMTEuMkw4MC40IDQ4NS4zYzIuOSAxNy40IDE5LjQgMjkuMiAzNi44IDI2LjNzMjkuMi0xOS40IDI2LjMtMzYuOEwxMjMuMSAzNTJoMTUuN2wzMCAxMzQuOWMzLjggMTcuMyAyMC45IDI4LjEgMzguMiAyNC4zczI4LjEtMjAuOSAyNC4zLTM4LjJsLTU3LjMtMjU4IDExNi4zIDUzLjhjLjUgLjMgMS4xIC41IDEuNiAuN2M4LjYgMy42IDE4IDMuMSAyNS45LS43YzMuNC0xLjYgNi42LTMuOSA5LjMtNi43YzMuMS0zLjIgNS41LTcgNy4xLTExLjRjLjEtLjMgLjItLjcgLjMtMWwyLjUtNy41YzUuNy0xNy4xIDE4LjMtMzAuOSAzNC43LTM4LjJsOC0zLjVjMS0uNCAxLjktLjggMi45LTEuMmwtMTYuOSA2My41Yy01LjYgMjEuMS0uMSA0My42IDE0LjcgNTkuN2w3MC43IDc3LjEgMjIgODguMWM0LjMgMTcuMSAyMS43IDI3LjYgMzguOCAyMy4zczI3LjYtMjEuNyAyMy4zLTM4LjhsLTIzLTkyLjFjLTEuOS03LjgtNS44LTE0LjktMTEuMi0yMC44bC00OS41LTU0IDE5LjMtNjUuNSA5LjYgMjNjNC40IDEwLjYgMTIuNSAxOS4zIDIyLjggMjQuNWwyNi43IDEzLjNjMTUuOCA3LjkgMzUgMS41IDQyLjktMTQuM3MxLjUtMzUtMTQuMy00Mi45TDUzNyAyMzIuN2wtMTUuMy0zNi44QzUwNC41IDE1NC44IDQ2NC4zIDEyOCA0MTkuNyAxMjhjLTIyLjggMC00NS4zIDQuOC02Ni4xIDE0bC04IDMuNWMtMjQuNCAxMC45LTQ0LjYgMjktNTguMSA1MS42TDE1Ny4zIDEzNi45QzE0NC43IDEzMSAxMzAuOSAxMjggMTE3IDEyOEg2NHpNNDY0IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMzQ5LjcgMzM1LjZsLTI1IDYyLjQtNTkuNCA1OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDM3Mi4zIDQ0MWM0LjYtNC42IDguMi0xMC4xIDEwLjYtMTYuMWwxNC41LTM2LjItNDAuNy00NC40Yy0yLjUtMi43LTQuOC01LjYtNy04LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlb3BsZVJvYmJlcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg4LjIgNTkuMUM0NzguMSA5OS42IDQ0MS43IDEyOCA0MDAgMTI4cy03OC4xLTI4LjQtODguMi02OC45TDMwMyAyNC4yQzI5OC44IDcuMSAyODEuNC0zLjMgMjY0LjIgMVMyMzYuNyAyMi42IDI0MSAzOS44bDguNyAzNC45YzExIDQ0IDQwLjIgNzkuNiA3OC4zIDk5LjZWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzUyaDE2VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjE3NC4zYzM4LjEtMjAgNjcuMy01NS42IDc4LjMtOTkuNkw1NTkgMzkuOGM0LjMtMTcuMS02LjEtMzQuNS0yMy4zLTM4LjhTNTAxLjIgNy4xIDQ5NyAyNC4ybC04LjcgMzQuOXpNNDAwIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNODAgOTZBNDggNDggMCAxIDAgODAgMGE0OCA0OCAwIDEgMCAwIDk2em0tOCAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjR2OTZsMCAuNlY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzNTJIODhWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMjUyLjdsMTMgMjAuNWM1LjkgOS4yIDE2LjEgMTQuOSAyNyAxNC45aDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDIwOS42bC0zNy40LTU4LjlDMTU3LjYgMTQyIDEzMi4xIDEyOCAxMDQuNyAxMjhINzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlb3BsZVJvb2YgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM1LjUgNGwyODggMTYwYzE1LjQgOC42IDIxIDI4LjEgMTIuNCA0My41cy0yOC4xIDIxLTQzLjUgMTIuNEwzMjAgNjguNiA0Ny41IDIyMGMtMTUuNCA4LjYtMzQuOSAzLTQzLjUtMTIuNHMtMy0zNC45IDEyLjQtNDMuNUwzMDQuNSA0YzkuNy01LjQgMjEuNC01LjQgMzEuMSAwek0zMjAgMTYwYTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHpNMTQ0IDI1NmE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6bTMxMiA0MGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwek0yMjYuOSA0OTEuNEwyMDAgNDQxLjVWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMySDEyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDQxLjVMNjEuMSA0OTEuNGMtNi4zIDExLjctMjAuOCAxNi0zMi41IDkuOHMtMTYtMjAuOC05LjgtMzIuNWwzNy45LTcwLjNjMTUuMy0yOC41IDQ1LjEtNDYuMyA3Ny41LTQ2LjNoMTkuNWMxNi4zIDAgMzEuOSA0LjUgNDUuNCAxMi42bDMzLjYtNjIuM2MxNS4zLTI4LjUgNDUuMS00Ni4zIDc3LjUtNDYuM2gxOS41YzMyLjQgMCA2Mi4xIDE3LjggNzcuNSA0Ni4zbDMzLjYgNjIuM2MxMy41LTguMSAyOS4xLTEyLjYgNDUuNC0xMi42aDE5LjVjMzIuNCAwIDYyLjEgMTcuOCA3Ny41IDQ2LjNsMzcuOSA3MC4zYzYuMyAxMS43IDEuOSAyNi4yLTkuOCAzMi41cy0yNi4yIDEuOS0zMi41LTkuOEw1NTIgNDQxLjVWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMySDQ3MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDQxLjVsLTI2LjkgNDkuOWMtNi4zIDExLjctMjAuOCAxNi0zMi41IDkuOHMtMTYtMjAuOC05LjgtMzIuNWwzNi4zLTY3LjVjLTEuNy0xLjctMy4yLTMuNi00LjMtNS44TDM3NiAzNDUuNVY0MDBjMCAxNy43LTE0LjMgMzItMzIgMzJIMjk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYzNDUuNWwtMjYuOSA0OS45Yy0xLjIgMi4yLTIuNiA0LjEtNC4zIDUuOGwzNi4zIDY3LjVjNi4zIDExLjcgMS45IDI2LjItOS44IDMyLjVzLTI2LjIgMS45LTMyLjUtOS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXBwZXJIb3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDI4LjMgM2MxMS42LTYuNCAyNi4yLTIuMyAzMi42IDkuM2w0LjggOC43YzE5LjMgMzQuNyAxOS44IDc1LjcgMy40IDExMEM0OTUuOCAxNTkuNiA1MTIgMTk3LjkgNTEyIDI0MGMwIDE4LjUtMy4xIDM2LjMtOC45IDUyLjhjLTYuMSAxNy4zLTI4LjUgMTYuMy0zNi44LS4xbC0xMS43LTIzLjRjLTQuMS04LjEtMTIuNC0xMy4zLTIxLjUtMTMuM0gzNjBjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTcuMSAwYy0yMS4zIDAtMzAtMjMuOS0xMC44LTMyLjlDMzA0LjcgODUuNCAzMjcuNyA4MCAzNTIgODBjMjguMyAwIDU0LjggNy4zIDc3LjggMjAuMmM1LjUtMTguMiAzLjctMzguNC02LTU1LjhMNDE5IDM1LjdjLTYuNC0xMS42LTIuMy0yNi4yIDkuMy0zMi42ek0xNzEuMiAzNDUuNUwyNjQgMTYwbDQwIDB2ODBjMCAyNi41IDIxLjUgNDggNDggNDhoNzYuMmwyMy45IDQ3LjhDMzcyLjMgNDQzLjkgMjQ0LjMgNTEyIDEwMy4yIDUxMkg0NC40QzE5LjkgNTEyIDAgNDkyLjEgMCA0NjcuNmMwLTIwLjggMTQuNS0zOC44IDM0LjgtNDMuM2w0OS44LTExLjFjMzcuNi04LjQgNjkuNS0zMy4yIDg2LjctNjcuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyY2VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzQuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMzIwIDMyMGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwzMjAtMzIwek0xMjggMTI4QTY0IDY0IDAgMSAwIDAgMTI4YTY0IDY0IDAgMSAwIDEyOCAwek0zODQgMzg0YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uQXJyb3dEb3duVG9MaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS04IDM1MlYzNTJoMTZ2OTZIMTg0em0tNjQgMEgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkgxNTJoODBINjA4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDI2NFYyNTYuOWwyOC42IDQ3LjVjOS4xIDE1LjEgMjguOCAyMCA0My45IDEwLjlzMjAtMjguOCAxMC45LTQzLjlsLTU4LjMtOTdjLTE3LjQtMjguOS00OC42LTQ2LjYtODIuMy00Ni42SDE3Ny4xYy0zMy43IDAtNjQuOSAxNy43LTgyLjMgNDYuNmwtNTguMyA5N2MtOS4xIDE1LjEtNC4yIDM0LjggMTAuOSA0My45czM0LjggNC4yIDQzLjktMTAuOUwxMjAgMjU2LjlWNDQ4ek00NjQgNjRWMzA2LjdsLTI1LjQtMjUuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsODAgODBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsODAtODBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMNTI4IDMwNi43VjY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25BcnJvd1VwRnJvbUxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptLTggMzUyVjM1MmgxNnY5NkgxODR6bS02NCAwSDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDE1Mmg4MEg2MDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMjY0VjI1Ni45bDI4LjYgNDcuNWM5LjEgMTUuMSAyOC44IDIwIDQzLjkgMTAuOXMyMC0yOC44IDEwLjktNDMuOWwtNTguMy05N2MtMTcuNC0yOC45LTQ4LjYtNDYuNi04Mi4zLTQ2LjZIMTc3LjFjLTMzLjcgMC02NC45IDE3LjctODIuMyA0Ni42bC01OC4zIDk3Yy05LjEgMTUuMS00LjIgMzQuOCAxMC45IDQzLjlzMzQuOCA0LjIgNDMuOS0xMC45TDEyMCAyNTYuOVY0NDh6TTU5OC42IDEyMS40bC04MC04MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTgwIDgwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDQ2NCAxNDEuMyA0NjQgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMTQxLjNsMjUuNCAyNS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbkJpa2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0yNy4yIDY0bC02MS44LTQ4LjhjLTE3LjMtMTMuNi00MS43LTEzLjgtNTkuMS0uM2wtODMuMSA2NC4yYy0zMC43IDIzLjgtMjguNSA3MC44IDQuMyA5MS42TDI4OCAzMDUuMVY0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyODhjMC0xMC43LTUuMy0yMC43LTE0LjItMjYuNkwyOTUgMjMyLjlsNjAuMy00OC41TDM5NiAyMTdjNS43IDQuNSAxMi43IDcgMjAgN2g2NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg0MjcuMnpNNTYgMzg0YTcyIDcyIDAgMSAxIDE0NCAwQTcyIDcyIDAgMSAxIDU2IDM4NHptMjAwIDBBMTI4IDEyOCAwIDEgMCAwIDM4NGExMjggMTI4IDAgMSAwIDI1NiAwem0xODQgMGE3MiA3MiAwIDEgMSAxNDQgMCA3MiA3MiAwIDEgMSAtMTQ0IDB6bTIwMCAwYTEyOCAxMjggMCAxIDAgLTI1NiAwIDEyOCAxMjggMCAxIDAgMjU2IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbkJvb3RoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlYxOTJoNjRWMzJ6bTMyMCAwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjMyek0yMjQgNTEyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMyMEgxOTJWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyek0zMjAgMGMtOS4zIDAtMTguMSA0LTI0LjIgMTFzLTguOCAxNi4zLTcuNSAyNS41bDMxLjIgMjE4LjZMMjg4LjYgNDA5LjdjLTMuNSAxNy4zIDcuOCAzNC4yIDI1LjEgMzcuN3MzNC4yLTcuOCAzNy43LTI1LjFsLjctMy42YzEuMyAxNi40IDE1LjEgMjkuNCAzMS45IDI5LjRjMTcuNyAwIDMyLTE0LjMgMzItMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMjB6TTExMiA4MEE0OCA0OCAwIDEgMCAxNiA4MGE0OCA0OCAwIDEgMCA5NiAwem0wIDI2MS4zVjI2OS4zbDQuNyA0LjdjOSA5IDIxLjIgMTQuMSAzMy45IDE0LjFIMjI0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDE1Ny4zbC00MS42LTQxLjZjLTE0LjMtMTQuMy0zMy44LTIyLjQtNTQtMjIuNEMyNy42IDE2MCAwIDE4Ny42IDAgMjIxLjZ2NTUuN2wwIC45VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjM4NGwzMiA0Mi43VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjQyMS4zYzAtMTAuNC0zLjQtMjAuNS05LjYtMjguOEwxMTIgMzQxLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbkJyZWFzdGZlZWRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDBhODAgODAgMCAxIDEgMCAxNjBBODAgODAgMCAxIDEgMjI0IDB6TTQzNi44IDM4Mi44TDM3My41IDQ2MmMtMTYuNiAyMC43LTQ2LjggMjQuMS02Ny41IDcuNWMtMTcuNi0xNC4xLTIyLjctMzguMS0xMy41LTU3LjdsLS44LS4xYy0zOC45LTUuNi03NC4zLTI1LjEtOTkuNy01NC44VjMyMGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnY0OGMwIC44IDAgMS42IC4xIDIuNGwxMDEuNCA1MC43YzIzLjcgMTEuOSAzMy4zIDQwLjcgMjEuNSA2NC40cy00MC43IDMzLjMtNjQuNCAyMS41TDI3LjIgNDI3LjNjLTEuMS0uNS0yLjItMS4xLTMuMy0xLjdjLTQuOS0yLjgtOS4yLTYuNC0xMi42LTEwLjZjLTQuNi01LjQtNy44LTExLjctOS42LTE4LjRjLTMuMy0xMi0xLjktMjUuMiA0LjgtMzYuNmMuNi0xLjEgMS4zLTIuMiAyLTMuMkw3NS42IDI1Ni4xYzI2LjctNDAuMSA3MS43LTY0LjEgMTE5LjgtNjQuMWg3NS4yYzQ2LjUgMCA5MC4xIDIyLjUgMTE3LjIgNjAuM2w1MC43IDcwLjljMi4yIDMgNCA2LjEgNS41IDkuNGMyLjkgNi43IDQuMyAxMy44IDQgMjAuOGMtLjMgMTAuNi00LjIgMjEtMTEuMiAyOS40ek0zMjAgMzMyYTQ0IDQ0IDAgMSAwIC04OCAwIDQ0IDQ0IDAgMSAwIDg4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbkJ1cnN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS04IDM4NFYzNTJoMTZWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMjU2LjlsMjguNiA0Ny41YzkuMSAxNS4xIDI4LjggMjAgNDMuOSAxMC45czIwLTI4LjggMTAuOS00My45bC01OC4zLTk3Yy0xNy40LTI4LjktNDguNi00Ni42LTgyLjMtNDYuNkg0NjUuMWMtMzMuNyAwLTY0LjkgMTcuNy04Mi4zIDQ2LjZsLTU4LjMgOTdjLTkuMSAxNS4xLTQuMiAzNC44IDEwLjkgNDMuOXMzNC44IDQuMiA0My45LTEwLjlMNDA4IDI1Ni45VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyek0xOTAuOSAxOC4xQzE4OC40IDEyIDE4Mi42IDggMTc2IDhzLTEyLjQgNC0xNC45IDEwLjFsLTI5LjQgNzRMNTUuNiA2OC45Yy02LjMtMS45LTEzLjEgLjItMTcuMiA1LjNzLTQuNiAxMi4yLTEuNCAxNy45bDM5LjUgNjkuMUwxMC45IDIwNi40Yy01LjQgMy43LTggMTAuMy02LjUgMTYuN3M2LjcgMTEuMiAxMy4xIDEyLjJsNzguNyAxMi4yTDkwLjYgMzI3Yy0uNSA2LjUgMy4xIDEyLjcgOSAxNS41czEyLjkgMS44IDE3LjgtMi42TDE3NiAyODYuMWw1OC42IDUzLjljNC44IDQuNCAxMS45IDUuNSAxNy44IDIuNnM5LjUtOSA5LTE1LjVsLTUuNi03OS40IDUwLjUtNy44IDI0LjMtNDAuNS01NS4yLTM4TDMxNSA5Mi4yYzMuMy01LjcgMi43LTEyLjgtMS40LTE3LjlzLTEwLjktNy4yLTE3LjItNS4zTDIyMC4zIDkyLjFsLTI5LjQtNzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbkNhbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyIDQ4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bS04IDE4Ny4zbDQ3LjQgNTcuMWMxMS4zIDEzLjYgMzEuNSAxNS41IDQ1LjEgNC4yczE1LjUtMzEuNSA0LjItNDUuMWwtNzMuNy04OC45Yy0xOC4yLTIyLTQ1LjMtMzQuNy03My45LTM0LjdIMTc3LjFjLTMzLjcgMC02NC45IDE3LjctODIuMyA0Ni42bC01OC4zIDk3Yy05LjEgMTUuMS00LjIgMzQuOCAxMC45IDQzLjlzMzQuOCA0LjIgNDMuOS0xMC45TDEyMCAyNTYuOVY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzNTJoMTZWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMjM1LjN6TTM1MiAzNzZjMC00LjQgMy42LTggOC04czggMy42IDggOFY0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYzNzZjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZ2OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0di04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25DaGFsa2JvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS04IDM4NFYzNTJoMTZWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMTkyaDU2IDY0IDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDM4NFY2NEg1NzZWMjU2SDM4NFYyMjRIMzIwdjQ4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDU5MmMyNi41IDAgNDgtMjEuNSA0OC00OFY0OGMwLTI2LjUtMjEuNS00OC00OC00OEgzNjhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djgwSDI0My4xIDE3Ny4xYy0zMy43IDAtNjQuOSAxNy43LTgyLjMgNDYuNmwtNTguMyA5N2MtOS4xIDE1LjEtNC4yIDM0LjggMTAuOSA0My45czM0LjggNC4yIDQzLjktMTAuOUwxMjAgMjU2LjlWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbkNpcmNsZUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00MCAzMDRWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjI1Ni45TDU5LjQgMzA0LjVjLTkuMSAxNS4xLTI4LjggMjAtNDMuOSAxMC45cy0yMC0yOC44LTEwLjktNDMuOWw1OC4zLTk3YzE3LjQtMjguOSA0OC42LTQ2LjYgODIuMy00Ni42aDI5LjdjMzMuNyAwIDY0LjkgMTcuNyA4Mi4zIDQ2LjZsNDQuOSA3NC43Yy0xNi4xIDE3LjYtMjguNiAzOC41LTM2LjYgNjEuNWMtMS45LTEuOC0zLjUtMy45LTQuOS02LjNMMjMyIDI1Ni45VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzNTJIMTUyem0xMzYgMTZhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjExLjMtNDMuM2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMNDE2IDM4NS40bC0yOC43LTI4LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNzItNzJjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbkNpcmNsZUV4Y2xhbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00MCAzMDRWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjI1Ni45TDU5LjQgMzA0LjVjLTkuMSAxNS4xLTI4LjggMjAtNDMuOSAxMC45cy0yMC0yOC44LTEwLjktNDMuOWw1OC4zLTk3YzE3LjQtMjguOSA0OC42LTQ2LjYgODIuMy00Ni42aDI5LjdjMzMuNyAwIDY0LjkgMTcuNyA4Mi4zIDQ2LjZsNDQuOSA3NC43Yy0xNi4xIDE3LjYtMjguNiAzOC41LTM2LjYgNjEuNWMtMS45LTEuOC0zLjUtMy45LTQuOS02LjNMMjMyIDI1Ni45VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzNTJIMTUyek00MzIgMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMCAyNDBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0wLTE5MmMtOC44IDAtMTYgNy4yLTE2IDE2djgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMjg4YzAtOC44LTcuMi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uQ2lyY2xlTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEyIDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTQwIDMwNFY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMjU2LjlMNTkuNCAzMDQuNWMtOS4xIDE1LjEtMjguOCAyMC00My45IDEwLjlzLTIwLTI4LjgtMTAuOS00My45bDU4LjMtOTdjMTcuNC0yOC45IDQ4LjYtNDYuNiA4Mi4zLTQ2LjZoMjkuN2MzMy43IDAgNjQuOSAxNy43IDgyLjMgNDYuNmw0NC45IDc0LjdjLTE2LjEgMTcuNi0yOC42IDM4LjUtMzYuNiA2MS41Yy0xLjktMS44LTMuNS0zLjktNC45LTYuM0wyMzIgMjU2LjlWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjM1MkgxNTJ6bTEzNiAxNmExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMjQgMGMwLTguOC03LjItMTYtMTYtMTZIMzY4Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2SDQ5NmM4LjggMCAxNi03LjIgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbkNpcmNsZVBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEyIDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTQwIDMwNFY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMjU2LjlMNTkuNCAzMDQuNWMtOS4xIDE1LjEtMjguOCAyMC00My45IDEwLjlzLTIwLTI4LjgtMTAuOS00My45bDU4LjMtOTdjMTcuNC0yOC45IDQ4LjYtNDYuNiA4Mi4zLTQ2LjZoMjkuN2MzMy43IDAgNjQuOSAxNy43IDgyLjMgNDYuNmw0NC45IDc0LjdjLTE2LjEgMTcuNi0yOC42IDM4LjUtMzYuNiA2MS41Yy0xLjktMS44LTMuNS0zLjktNC45LTYuM0wyMzIgMjU2LjlWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjM1MkgxNTJ6TTQzMiAyMjRhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0xNiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnY0OEgzNjhjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZoNDh2NDhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYzODRoNDhjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZINDQ4VjMwNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uQ2lyY2xlUXVlc3Rpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEyIDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTQwIDMwNFY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMjU2LjlMNTkuNCAzMDQuNWMtOS4xIDE1LjEtMjguOCAyMC00My45IDEwLjlzLTIwLTI4LjgtMTAuOS00My45bDU4LjMtOTdjMTcuNC0yOC45IDQ4LjYtNDYuNiA4Mi4zLTQ2LjZoMjkuN2MzMy43IDAgNjQuOSAxNy43IDgyLjMgNDYuNmw0NC45IDc0LjdjLTE2LjEgMTcuNi0yOC42IDM4LjUtMzYuNiA2MS41Yy0xLjktMS44LTMuNS0zLjktNC45LTYuM0wyMzIgMjU2LjlWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjM1MkgxNTJ6TTQzMiAyMjRhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDI0MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTM2OCAzMjEuNlYzMjhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNnYtNi40YzAtNS4zIDQuMy05LjYgOS42LTkuNmg0MC41YzcuNyAwIDEzLjkgNi4yIDEzLjkgMTMuOWMwIDUuMi0yLjkgOS45LTcuNCAxMi4zbC0zMiAxNi44Yy01LjMgMi44LTguNiA4LjItOC42IDE0LjJWMzg0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZ2LTUuMWwyMy41LTEyLjNjMTUuMS03LjkgMjQuNS0yMy42IDI0LjUtNDAuNmMwLTI1LjQtMjAuNi00NS45LTQ1LjktNDUuOUg0MDkuNmMtMjMgMC00MS42IDE4LjYtNDEuNiA0MS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25DaXJjbGVYbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTIgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptNDAgMzA0VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYyNTYuOUw1OS40IDMwNC41Yy05LjEgMTUuMS0yOC44IDIwLTQzLjkgMTAuOXMtMjAtMjguOC0xMC45LTQzLjlsNTguMy05N2MxNy40LTI4LjkgNDguNi00Ni42IDgyLjMtNDYuNmgyOS43YzMzLjcgMCA2NC45IDE3LjcgODIuMyA0Ni42bDQ0LjkgNzQuN2MtMTYuMSAxNy42LTI4LjYgMzguNS0zNi42IDYxLjVjLTEuOS0xLjgtMy41LTMuOS00LjktNi4zTDIzMiAyNTYuOVY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzUySDE1MnpNNDMyIDIyNGExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTU5LjMgMTA3LjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMEw0MzIgMzQ1LjRsLTM2LjctMzYuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNkw0MDkuNCAzNjhsLTM2LjcgMzYuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwTDQzMiAzOTAuNmwzNi43IDM2LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42TDQ1NC42IDM2OGwzNi43LTM2Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbkRpZ2dpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA4IDY0YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTkuOCAyMTQuOGM1LjEtMTIuMiAxOS4xLTE4IDMxLjQtMTIuOUw2MC43IDIxMGwyMi45LTM4LjFDOTkuOSAxNDQuNiAxMjkuMyAxMjggMTYxIDEyOGM1MS40IDAgOTcgMzIuOSAxMTMuMyA4MS43bDM0LjYgMTAzLjcgNzkuMyAzMy4xIDM0LjItNDUuNmM2LjQtOC41IDE2LjYtMTMuMyAyNy4yLTEyLjhzMjAuMyA2LjQgMjUuOCAxNS41bDk2IDE2MGM1LjkgOS45IDYuMSAyMi4yIC40IDMyLjJzLTE2LjMgMTYuMi0yNy44IDE2LjJIMjg4Yy0xMS4xIDAtMjEuNC01LjctMjcuMi0xNS4ycy02LjQtMjEuMi0xLjQtMzEuMWwxNi0zMmM1LjQtMTAuOCAxNi41LTE3LjcgMjguNi0xNy43aDMybDIyLjUtMzBMMjIuOCAyNDYuMmMtMTIuMi01LjEtMTgtMTkuMS0xMi45LTMxLjR6bTgyLjggOTEuOGwxMTIgNDhjMTEuOCA1IDE5LjQgMTYuNiAxOS40IDI5LjR2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNDA1LjFsLTYwLjYtMjYtMzcgMTExYy01LjYgMTYuOC0yMy43IDI1LjgtNDAuNSAyMC4yUy0zLjkgNDg2LjYgMS42IDQ2OS45bDQ4LTE0NCAxMS0zMyAzMiAxMy43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25Eb3RzRnJvbUxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDE3NkE4OCA4OCAwIDEgMCAyODggMGE4OCA4OCAwIDEgMCAwIDE3NnpNNzguNyAzNzIuOWMxNS0xMi41IDUwLTM0LjQgOTcuMy01MC4xVjQzMkg0MDBWMzIyLjdjNDcuMyAxNS44IDgyLjMgMzcuNyA5Ny4zIDUwLjFjMjAuNCAxNyA1MC42IDE0LjIgNjcuNi02LjFzMTQuMi01MC42LTYuMS02Ny42Yy0xMi0xMC0zMC4xLTIyLjUtNTMuMi0zNUM0OTcuMiAyNzguNCA0ODEuNyAyODggNDY0IDI4OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhjMC00LjMgLjYtOC40IDEuNi0xMi40QzM3OS4xIDIxNS45IDMzNS4zIDIwOCAyODggMjA4Yy02MC4yIDAtMTE0LjkgMTIuOS0xNjAgMjkuOWMwIC43IDAgMS40IDAgMi4xYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4Yy0xMS44IDAtMjIuNy00LjMtMzEtMTEuNGMtMTMuMSA4LjEtMjMuNyAxNS45LTMxLjcgMjIuNWMtMjAuNCAxNy0yMy4xIDQ3LjItNi4xIDY3LjZzNDcuMiAyMy4xIDY3LjYgNi4xek0yNCA0NjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRINTUyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDI0ek0yMjQgMjgwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTEwNCA1NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTk2IDI0MGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem0zNjggMTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25EcmVzc0J1cnN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyOCA0OGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0zOTAuMiAzODRINDA4djk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzg0aDE2djk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzg0aDE3LjhjMTAuOSAwIDE4LjYtMTAuNyAxNS4yLTIxLjFMNTQ2LjcgMjQ4LjFsMzMuOSA1Ni4zYzkuMSAxNS4xIDI4LjggMjAgNDMuOSAxMC45czIwLTI4LjggMTAuOS00My45bC01My42LTg5LjJjLTIwLjItMzMuNy01Ni43LTU0LjMtOTYtNTQuM0g0NzQuMmMtMzkuMyAwLTc1LjcgMjAuNi05NiA1NC4zbC01My42IDg5LjJjLTkuMSAxNS4xLTQuMiAzNC44IDEwLjkgNDMuOXMzNC44IDQuMiA0My45LTEwLjlsMzMuOS01Ni4zTDM3NSAzNjIuOWMtMy41IDEwLjQgNC4zIDIxLjEgMTUuMiAyMS4xek0xOTAuOSAxOC4xQzE4OC40IDEyIDE4Mi42IDggMTc2IDhzLTEyLjQgNC0xNC45IDEwLjFsLTI5LjQgNzRMNTUuNiA2OC45Yy02LjMtMS45LTEzLjEgLjItMTcuMiA1LjNzLTQuNiAxMi4yLTEuNCAxNy45bDM5LjUgNjkuMUwxMC45IDIwNi40Yy01LjQgMy43LTggMTAuMy02LjUgMTYuN3M2LjcgMTEuMiAxMy4xIDEyLjJsNzguNyAxMi4yTDkwLjYgMzI3Yy0uNSA2LjUgMy4xIDEyLjcgOSAxNS41czEyLjkgMS44IDE3LjgtMi42TDE3NiAyODYuMWw1OC42IDUzLjljNC44IDQuNCAxMS45IDUuNSAxNy44IDIuNnM5LjUtOSA5LTE1LjVsLTUuNi03OS40IDUwLjUtNy44IDI0LjQtNDAuNS01NS4yLTM4TDMxNSA5Mi4yYzMuMy01LjcgMi43LTEyLjgtMS40LTE3LjlzLTEwLjktNy4yLTE3LjItNS4zTDIyMC4zIDkyLjFsLTI5LjQtNzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbkRyZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCAwYTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNODggMzg0SDcwLjJjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xTDkzLjMgMjQ4LjEgNTkuNCAzMDQuNWMtOS4xIDE1LjEtMjguOCAyMC00My45IDEwLjlzLTIwLTI4LjgtMTAuOS00My45bDUzLjYtODkuMmMyMC4zLTMzLjcgNTYuNy01NC4zIDk2LTU0LjNoMTEuNmMzOS4zIDAgNzUuNyAyMC42IDk2IDU0LjNsNTMuNiA4OS4yYzkuMSAxNS4xIDQuMiAzNC44LTEwLjkgNDMuOXMtMzQuOCA0LjItNDMuOS0xMC45bC0zMy45LTU2LjNMMjY1IDM2Mi45YzMuNSAxMC40LTQuMyAyMS4xLTE1LjIgMjEuMUgyMzJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzg0SDE1MnY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbkRyb3duaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlY5Ni4yYzAgNTQuMSAyMy41IDEwNCA2Mi4yIDEzOC4zbC0yMSAxNDYuN2M3LjggMi4xIDE1LjUgMy4zIDIyLjggMy4zYzIxLjEgMCA0Mi04LjUgNTkuMi0yMC4zYzIyLjEtMTUuNSA1MS42LTE1LjUgNzMuNyAwYzEyLjQgOC41IDI2LjEgMTQuOCAzOS43IDE4bDE3LjctOTcuNmMxMC43LTEuMiAyMS4zLTMuMSAzMS45LTUuNWwxMDUtMjMuOWMxNy4yLTMuOSAyOC0yMS4xIDI0LjEtMzguM3MtMjEuMS0yOC0zOC4zLTI0LjFMNDAwIDIxNi42Yy00MSA5LjMtODMuNyA3LjUtMTIzLjctNS4yYy01MC4yLTE2LTg0LjMtNjIuNi04NC4zLTExNS4zVjY0ek0zMjAgMTkyYTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4ek0zMDYuNSAzODkuOWMtMTEuMS03LjktMjUuOS03LjktMzcgMEMyNDcgNDA1LjQgMjE5LjUgNDE2IDE5MiA0MTZjLTI2LjkgMC01NS4zLTEwLjgtNzcuNC0yNi4xbDAgMGMtMTEuOS04LjUtMjguMS03LjgtMzkuMiAxLjdjLTE0LjQgMTEuOS0zMi41IDIxLTUwLjYgMjUuMmMtMTcuMiA0LTI3LjkgMjEuMi0yMy45IDM4LjRzMjEuMiAyNy45IDM4LjQgMjMuOWMyNC41LTUuNyA0NC45LTE2LjUgNTguMi0yNUMxMjYuNSA0NjkuNyAxNTkgNDgwIDE5MiA0ODBjMzEuOSAwIDYwLjYtOS45IDgwLjQtMTguOWM1LjgtMi43IDExLjEtNS4zIDE1LjYtNy43YzQuNSAyLjQgOS43IDUuMSAxNS42IDcuN2MxOS44IDkgNDguNSAxOC45IDgwLjQgMTguOWMzMyAwIDY1LjUtMTAuMyA5NC41LTI1LjhjMTMuNCA4LjQgMzMuNyAxOS4zIDU4LjIgMjVjMTcuMiA0IDM0LjQtNi43IDM4LjQtMjMuOXMtNi43LTM0LjQtMjMuOS0zOC40Yy0xOC4xLTQuMi0zNi4yLTEzLjMtNTAuNi0yNS4yYy0xMS4xLTkuNC0yNy4zLTEwLjEtMzkuMi0xLjdsMCAwQzQzOS40IDQwNS4yIDQxMC45IDQxNiAzODQgNDE2Yy0yNy41IDAtNTUtMTAuNi03Ny41LTI2LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbkZhbGxpbmdCdXJzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA5LjhjMCAzOS0yMy43IDc0LTU5LjkgODguNEM3MS42IDE1NC41IDMyIDIxMyAzMiAyNzguMlYzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTczLjhjMC0xMCAxLjYtMTkuOCA0LjUtMjlMMjYxLjEgNDk3LjRjOS42IDE0LjggMjkuNCAxOS4xIDQ0LjMgOS41czE5LjEtMjkuNCA5LjUtNDQuM0wyMjIuNiAzMjBIMjI0bDgwIDAgMzguNCA1MS4yYzEwLjYgMTQuMSAzMC43IDE3IDQ0LjggNi40czE3LTMwLjcgNi40LTQ0LjhsLTQzLjItNTcuNkMzNDEuMyAyNjMuMSAzMjcuMSAyNTYgMzEyIDI1NmwtNzEuNSAwLTU2LjgtODAuMi0uMi0uM2M0NC43LTI5IDcyLjUtNzkgNzIuNS0xMzMuNmwwLTkuOHpNOTYgODBBNDggNDggMCAxIDAgMCA4MGE0OCA0OCAwIDEgMCA5NiAwek00NjQgMjg2LjFsNTguNiA1My45YzQuOCA0LjQgMTEuOSA1LjUgMTcuOCAyLjZzOS41LTkgOS0xNS41bC01LjYtNzkuNCA3OC43LTEyLjJjNi41LTEgMTEuNy01LjkgMTMuMS0xMi4ycy0xLjEtMTMtNi41LTE2LjdsLTY1LjYtNDUuMUw2MDMgOTIuMmMzLjMtNS43IDIuNy0xMi44LTEuNC0xNy45cy0xMC45LTcuMi0xNy4yLTUuM0w1MDguMyA5Mi4xbC0yOS40LTc0QzQ3Ni40IDEyIDQ3MC42IDggNDY0IDhzLTEyLjQgNC0xNC45IDEwLjFsLTI5LjQgNzRMMzQzLjYgNjguOWMtNi4zLTEuOS0xMy4xIC4yLTE3LjIgNS4zcy00LjYgMTIuMi0xLjQgMTcuOWwzOS41IDY5LjEtNjUuNiA0NS4xYy01LjQgMy43LTggMTAuMy02LjUgMTYuN2MuMSAuMyAuMSAuNiAuMiAuOGwxOS40IDBjMjAuMSAwIDM5LjIgNy41IDUzLjggMjAuOGwxOC40IDIuOUwzODMgMjY1LjNsMzYuMiA0OC4zYzIuMSAyLjggMy45IDUuNyA1LjUgOC42TDQ2NCAyODYuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uRmFsbGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDkuOGMwIDU0LjYtMjcuOSAxMDQuNi03Mi41IDEzMy42bC4yIC4zTDMwNC41IDI1Nmw4Ny41IDBjMTUuMSAwIDI5LjMgNy4xIDM4LjQgMTkuMmw0My4yIDU3LjZjMTAuNiAxNC4xIDcuNyAzNC4yLTYuNCA0NC44cy0zNC4yIDcuNy00NC44LTYuNEwzODQgMzIwbC05NiAwaC0xLjRsOTIuMyAxNDIuNmM5LjYgMTQuOCA1LjQgMzQuNi05LjUgNDQuM3MtMzQuNiA1LjQtNDQuMy05LjVMMTY0LjUgMjQ5LjJjLTIuOSA5LjItNC41IDE5LTQuNSAyOWwwIDczLjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMjc4LjJjMC02NS4xIDM5LjYtMTIzLjcgMTAwLjEtMTQ3LjlDMjMyLjMgMTE1LjggMjU2IDgwLjggMjU2IDQxLjhsMC05LjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTExMiAzMmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbkhhbGZEcmVzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6bTggMzUyVjEyOGg2LjljMzMuNyAwIDY0LjkgMTcuNyA4Mi4zIDQ2LjZsNTguMyA5N2M5LjEgMTUuMSA0LjIgMzQuOC0xMC45IDQzLjlzLTM0LjggNC4yLTQzLjktMTAuOUwyMzIgMjU2LjlWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjM1Mmgwek01OC4yIDE4Mi4zYzE5LjktMzMuMSA1NS4zLTUzLjUgOTMuOC01NC4zVjM4NGgwdjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjM4NEg3MC4yYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMUw5My4zIDI0OC4xIDU5LjQgMzA0LjVjLTkuMSAxNS4xLTI4LjggMjAtNDMuOSAxMC45cy0yMC0yOC44LTEwLjktNDMuOWw1My42LTg5LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbkhhcmFzc2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek01OS40IDMwNC41TDg4IDI1Ni45VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjM1MmgxNlY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyMzUuM2w0Ny40IDU3LjFjMTEuMyAxMy42IDMxLjUgMTUuNSA0NS4xIDQuMnMxNS41LTMxLjUgNC4yLTQ1LjFsLTczLjctODguOWMtMTguMi0yMi00NS4zLTM0LjctNzMuOS0zNC43SDE0NS4xYy0zMy43IDAtNjQuOSAxNy43LTgyLjMgNDYuNmwtNTguMyA5N2MtOS4xIDE1LjEtNC4yIDM0LjggMTAuOSA0My45czM0LjggNC4yIDQzLjktMTAuOXpNNDgwIDI0MGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek00NjQgMzQ0djU4LjdsLTQxLjQtNDEuNGMtNy4zLTcuMy0xNy42LTEwLjYtMjcuOC05cy0xOC45IDguMS0yMy41IDE3LjNsLTQ4IDk2Yy03LjkgMTUuOC0xLjUgMzUgMTQuMyA0Mi45czM1IDEuNSA0Mi45LTE0LjNMNDA4LjggNDM4bDU0LjcgNTQuN2MxMi40IDEyLjQgMjkuMSAxOS4zIDQ2LjYgMTkuM2MzNi40IDAgNjUuOS0yOS41IDY1LjktNjUuOVYzNDRjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZ6TTI4OCA0OGMwIDguOCA3LjIgMTYgMTYgMTZoNTZjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMzA0Yy04LjggMC0xNiA3LjItMTYgMTZ6bS0uOCA0OS43Yy03LjktNC0xNy41LS43LTIxLjUgNy4ycy0uNyAxNy41IDcuMiAyMS41bDQ4IDI0YzcuOSA0IDE3LjUgLjcgMjEuNS03LjJzLjctMTcuNS03LjItMjEuNWwtNDgtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbkhpa2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptNTEuMyAxODIuN0wyMjQuMiAzMDdsNDkuNyA0OS43YzkgOSAxNC4xIDIxLjIgMTQuMSAzMy45VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzOTcuM2wtNzMuOS03My45Yy0xNS44LTE1LjgtMjIuMi0zOC42LTE2LjktNjAuM2wyMC40LTg0YzguMy0zNC4xIDQyLjctNTQuOSA3Ni43LTQ2LjRjMTkgNC44IDM1LjYgMTYuNCA0Ni40IDMyLjdMMzA1LjEgMjA4SDMzNlYxODRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHY1NS44YzAgLjEgMCAuMiAwIC4yczAgLjIgMCAuMlY0ODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMjcySDI5Ni42Yy0xNiAwLTMxLTgtMzkuOS0yMS40bC0xMy4zLTIwek04MS4xIDQ3MS45TDExNy4zIDMzNGMzIDQuMiA2LjQgOC4yIDEwLjEgMTEuOWw0MS45IDQxLjlMMTQyLjkgNDg4LjFjLTQuNSAxNy4xLTIyIDI3LjMtMzkuMSAyMi44cy0yNy4zLTIyLTIyLjgtMzkuMXptNTUuNS0zNDZMMTAxLjQgMjY2LjVjLTMgMTIuMS0xNC45IDE5LjktMjcuMiAxNy45bC00Ny45LThjLTE0LTIuMy0yMi45LTE2LjMtMTkuMi0zMEwzMS45IDE1NWM5LjUtMzQuOCA0MS4xLTU5IDc3LjItNTloNC4yYzE1LjYgMCAyNy4xIDE0LjcgMjMuMyAyOS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25NaWxpdGFyeVBvaW50aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ni45IDE0LjFDMjM0IDE1LjIgMjI0IDI2IDIyNCAzOWMwIDEzLjggMTEuMiAyNSAyNSAyNUg0MDBjOC44IDAgMTYtNy4yIDE2LTE2VjE3LjRDNDE2IDggNDA4IC43IDM5OC43IDEuNEwyNDYuOSAxNC4xek0yNDAgMTEyYzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC01LjUtLjYtMTAuOC0xLjYtMTZIMjQxLjZjLTEgNS4yLTEuNiAxMC41LTEuNiAxNnpNNzIgMjI0Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwSDIyNHY4OS40TDM4Ni44IDIzMC41Yy0xMy4zLTQuMy0yNy4zLTYuNS00MS42LTYuNUgyNDAgNzJ6bTM0NS43IDIwLjlMMjQ2LjYgNDE2SDQxNlYzNjkuN2w1My42IDkwLjZjMTEuMiAxOSAzNS44IDI1LjMgNTQuOCAxNC4xczI1LjMtMzUuOCAxNC4xLTU0LjhMNDYyLjMgMjkwLjhjLTExLjItMTguOS0yNi42LTM0LjUtNDQuNi00NS45ek0yMjQgNDQ4djMyYzAgMTcuNyAxNC4zIDMyIDMyIDMySDM4NGMxNy43IDAgMzItMTQuMyAzMi0zMlY0NDhIMjI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25NaWxpdGFyeVJpZmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCAzOWMwLTEzIDEwLTIzLjggMjIuOS0yNC45TDMzNC43IDEuNEMzNDQgLjcgMzUyIDggMzUyIDE3LjRWNDhjMCA4LjgtNy4yIDE2LTE2IDE2SDE4NWMtMTMuOCAwLTI1LTExLjItMjUtMjV6bTE3LjYgNTdIMzM0LjRjMSA1LjIgMS42IDEwLjUgMS42IDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtNS41IC42LTEwLjggMS42LTE2em0yMjggMzY0LjNMMzUyIDM2OS43VjQ4MGMwIDEuMy0uMSAyLjUtLjIgMy44TDE3Ny41IDIzNC45YzE2LjYtNy4xIDM0LjYtMTAuOSA1My4zLTEwLjloNTAuNGMxNS45IDAgMzEuMyAyLjggNDUuOCA3LjlMNDIxLjkgNjcuN2MtNy43LTQuNC0xMC4zLTE0LjItNS45LTIxLjlzMTQuMi0xMC4zIDIxLjktNS45bDEzLjkgOCAxMy45IDhjNy43IDQuNCAxMC4zIDE0LjIgNS45IDIxLjlMNDE2IDE3My45bDEuNiAuOWMxNS4zIDguOCAyMC42IDI4LjQgMTEuNyA0My43TDM5Mi42IDI4MmMyIDIuOCAzLjkgNS44IDUuNyA4LjhsNzYuMSAxMjguOGMxMS4yIDE5IDQuOSA0My41LTE0LjEgNTQuOHMtNDMuNSA0LjktNTQuOC0xNC4xek0zMjAgNTEySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzY5LjdsLTUzLjYgOTAuNmMtMTEuMiAxOS0zNS44IDI1LjMtNTQuOCAxNC4xcy0yNS4zLTM1LjgtMTQuMS01NC44bDc2LjEtMTI4LjhjOS40LTE1LjggMjEuNy0yOS4zIDM2LTQwTDMzMS4xIDUxMGMtMy41IDEuMy03LjIgMi0xMS4xIDJ6TTI5NiAzMjBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25NaWxpdGFyeVRvUGVyc29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcxIDEyLjVjLTguNiAxLTE1IDguMi0xNSAxNi44YzAgOS4zIDcuNSAxNi44IDE2LjcgMTYuOUgxODQuMWM4LjgtLjEgMTUuOS03LjIgMTUuOS0xNlYxNmMwLTkuNS04LjMtMTctMTcuOC0xNS45TDcxIDEyLjV6TTE4OS41IDc4LjFINjYuNUM2NC45IDgzLjggNjQgODkuOCA2NCA5NmMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0YzAtNi4yLS45LTEyLjItMi41LTE3Ljl6TTMyIDI1NnYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMkgxOTJjMS44IDAgMy41LS4xIDUuMi0uNEw1MyAyMDguNkM0MC4xIDIyMC4zIDMyIDIzNy4yIDMyIDI1NnptMTkwLjIgNDIuNWMxLjEtMy4zIDEuOC02LjggMS44LTEwLjVWMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDk2Yy0zLjcgMC03LjQgLjMtMTAuOSAuOUwyMjIuMiAyOTguNXpNMzg0IDE2MGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptLTMyIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NHYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMkg0NDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDM1MnpNMjE1LjggNDUwLjFjNS4yLTQuNiA4LjItMTEuMSA4LjItMTguMXMtMy0xMy41LTguMi0xOC4xbC02NC01NmMtNy4xLTYuMi0xNy4xLTcuNy0yNS43LTMuOFMxMTIgMzY2LjYgMTEyIDM3NnYzMmwtODggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4OCAwdjMyYzAgOS40IDUuNSAxOCAxNC4xIDIxLjlzMTguNiAyLjQgMjUuNy0zLjhsNjQtNTZ6TTI4OCA0MzEuOWMwIDYuOSAyLjkgMTMuNSA4LjEgMTguMWw2NCA1Ni40YzcuMSA2LjIgMTcuMSA3LjggMjUuNyAzLjlzMTQuMS0xMi40IDE0LjEtMjEuOWwwLTMyLjQgODggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODggMCAwLTMyYzAtOS40LTUuNS0xOC0xNC4xLTIxLjlzLTE4LjYtMi40LTI1LjcgMy44bC02NCA1NmMtNS4yIDQuNS04LjIgMTEuMS04LjIgMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvblByYXlpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyIDY0QTY0IDY0IDAgMSAwIDIyNCA2NGE2NCA2NCAwIDEgMCAxMjggMHpNMjMyLjcgMjY0bDIyLjkgMzEuNWM2LjUgOC45IDE2LjMgMTQuNyAyNy4yIDE2LjFzMjEuOS0xLjcgMzAuNC04LjdsODgtNzJjMTcuMS0xNCAxOS42LTM5LjIgNS42LTU2LjNzLTM5LjItMTkuNi01Ni4zLTUuNmwtNTUuMiA0NS4yLTI2LjItMzZDMjUzLjYgMTU2LjcgMjI4LjYgMTQ0IDIwMiAxNDRjLTMwLjkgMC01OS4yIDE3LjEtNzMuNiA0NC40TDc5LjggMjgwLjljLTIwLjIgMzguNS05LjQgODUuOSAyNS42IDExMS44TDE1OC42IDQzMkg3MmMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MEgyODBjMTcuMyAwIDMyLjYtMTEuMSAzOC0yNy41cy0uMy0zNC40LTE0LjItNDQuN0wxODcuNyAzNTRsNDUtOTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvblByZWduYW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiAwYTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNMTIwIDM4M2MtMTMuOC0zLjYtMjQtMTYuMS0yNC0zMVYyOTYuOWwtNC42IDcuNmMtOS4xIDE1LjEtMjguOCAyMC00My45IDEwLjlzLTIwLTI4LjgtMTAuOS00My45bDU4LjMtOTdjMTUtMjQuOSA0MC4zLTQxLjUgNjguNy00NS42YzQuMS0uNiA4LjItMSAxMi41LTFoMS4xIDEyLjVIMTkyYzEuNCAwIDIuOCAuMSA0LjEgLjNjMzUuNyAyLjkgNjUuNCAyOS4zIDcyLjEgNjVsNi4xIDMyLjVjNDQuMyA4LjYgNzcuNyA0Ny41IDc3LjcgOTQuM3YzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkgzMDQgMjY0djk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjM4NGgtOC04djk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjM4M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uUmF5cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDggNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptNDAgMzA0VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYyNTYuOWwtMjguNiA0Ny41Yy05LjEgMTUuMS0yOC44IDIwLTQzLjkgMTAuOXMtMjAtMjguOC0xMC45LTQzLjlsNTguMy05N2MxNy40LTI4LjkgNDguNi00Ni42IDgyLjMtNDYuNmgyOS43YzMzLjcgMCA2NC45IDE3LjcgODIuMyA0Ni42bDU4LjMgOTdjOS4xIDE1LjEgNC4yIDM0LjgtMTAuOSA0My45cy0zNC44IDQuMi00My45LTEwLjlMMzI4IDI1Ni45VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzNTJIMjQ4ek03IDdDMTYuNC0yLjMgMzEuNi0yLjMgNDEgN2w4MCA4MGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgNDFDLTIuMyAzMS42LTIuMyAxNi40IDcgN3pNNDcxIDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC04MCA4MGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUw0NzEgN3pNNyA1MDVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDgwLTgwYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUw0MSA1MDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwem00NjQgMGwtODAtODBjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw4MCA4MGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25SaWZsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNjUuMiAxOTJjMjUuNCAwIDQ5LjggNy4xIDcwLjggMTkuOVY1MTJIMTQ0VjMzNy43TDkwLjQgNDI4LjNjLTExLjIgMTktMzUuOCAyNS4zLTU0LjggMTQuMXMtMjUuMy0zNS44LTE0LjEtNTQuOEw5Ny43IDI1OC44YzI0LjUtNDEuNCA2OS02Ni44IDExNy4xLTY2LjhoNTAuNHpNMTYwIDgwYTgwIDgwIDAgMSAxIDE2MCAwQTgwIDgwIDAgMSAxIDE2MCA4MHpNNDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2VjEzMi4zYzkuNiA1LjUgMTYgMTUuOSAxNiAyNy43VjI2OS4zbDE2LTUuM1YyMDhjMC04LjggNy4yLTE2IDE2LTE2aDE2YzguOCAwIDE2IDcuMiAxNiAxNnY4NC41YzAgNi45LTQuNCAxMy0xMC45IDE1LjJMNDgwIDMyNS4zVjM1Mmg0OGM4LjggMCAxNiA3LjIgMTYgMTZ2MTZjMCA4LjgtNy4yIDE2LTE2IDE2SDQ4NGwyMyA5Mi4xYzIuNSAxMC4xLTUuMSAxOS45LTE1LjUgMTkuOUg0MzJjLTguOCAwLTE2LTcuMi0xNi0xNlY0MDBINDAwYy0xNy43IDAtMzItMTQuMy0zMi0zMlYyMjRjMC0xNy43IDE0LjMtMzIgMzItMzJWMTYwYzAtMTEuOCA2LjQtMjIuMiAxNi0yNy43VjMyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2aDE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25SdW5uaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCA0OGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0xMjUuNyAxNzUuNWM5LjktOS45IDIzLjQtMTUuNSAzNy41LTE1LjVjMS45IDAgMy44IC4xIDUuNiAuM0wxMzcuNiAyNTRjLTkuMyAyOCAxLjcgNTguOCAyNi44IDc0LjVsODYuMiA1My45LTI1LjQgODguOGMtNC45IDE3IDUgMzQuNyAyMiAzOS42czM0LjctNSAzOS42LTIybDI4LjctMTAwLjRjNS45LTIwLjYtMi42LTQyLjYtMjAuNy01My45TDIzOCAyOTlsMzAuOS04Mi40IDUuMSAxMi4zQzI4OSAyNjQuNyAzMjMuOSAyODggMzYyLjcgMjg4SDM4NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzNjIuN2MtMTIuOSAwLTI0LjYtNy44LTI5LjUtMTkuN2wtNi4zLTE1Yy0xNC42LTM1LjEtNDQuMS02MS45LTgwLjUtNzMuMWwtNDguNy0xNWMtMTEuMS0zLjQtMjIuNy01LjItMzQuNC01LjJjLTMxIDAtNjAuOCAxMi4zLTgyLjcgMzQuM0w1Ny40IDE1My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDIzLjEtMjMuMXpNOTEuMiAzNTJIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoNjkuNmMxOSAwIDM2LjItMTEuMiA0My45LTI4LjVMMTU3IDM2MS42bC05LjUtNmMtMTcuNS0xMC45LTMwLjUtMjYuOC0zNy45LTQ0LjlMOTEuMiAzNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvblNoZWx0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcxLjkgNC4yYy05LjgtNS42LTIxLjktNS42LTMxLjggMGwtMjI0IDEyOEM2LjIgMTM3LjkgMCAxNDguNSAwIDE2MFY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYxNzguNkwyNTYgNjguOSA0NDggMTc4LjZWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMTYwYzAtMTEuNS02LjItMjIuMS0xNi4xLTI3LjhsLTIyNC0xMjh6TTI1NiAyMDhhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwem0tOCAyODBWNDAwaDE2djg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMzEzLjVsMjYuOSA0OS45YzYuMyAxMS43IDIwLjggMTYgMzIuNSA5LjhzMTYtMjAuOCA5LjgtMzIuNWwtMzcuOS03MC4zYy0xNS4zLTI4LjUtNDUuMS00Ni4zLTc3LjUtNDYuM0gyNDYuMmMtMzIuNCAwLTYyLjEgMTcuOC03Ny41IDQ2LjNsLTM3LjkgNzAuM2MtNi4zIDExLjctMS45IDI2LjIgOS44IDMyLjVzMjYuMiAxLjkgMzIuNS05LjhMMjAwIDMxMy41VjQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25Ta2F0aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0xMjggMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMySDMxOS40YzQzLjYgMCA2NC42IDUzLjQgMzIuOCA4My4xbC03NC40IDY5LjQgNjAuMiA2MC4yYzkgOSAxNC4xIDIxLjIgMTQuMSAzMy45VjQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzNDkuM2wtNzcuOS03Ny44Yy0yNi42LTI2LjYtMjQuNi03MC4zIDQuMy05NC40bDIwLjQtMTdIMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNODEuNCAzNTMuNGw4Ni45LTg2LjljNC42IDEwIDExIDE5LjMgMTkuMyAyNy41bDIxLjggMjEuOC04Mi43IDgyLjdjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zem0zMjIuNSA5NS4xYzguNiAyLjEgMTMuOCAxMC44IDExLjYgMTkuNGwtLjQgMS43Yy02LjIgMjQuOS0yOC42IDQyLjQtNTQuMyA0Mi40SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmg4OC44YzExIDAgMjAuNi03LjUgMjMuMy0xOC4ybC40LTEuN2MyLjEtOC42IDEwLjgtMTMuOCAxOS40LTExLjZ6TTEzNS4yIDQ3OC4zbC02LjIgMy4xYy0yMS42IDEwLjgtNDcuNiA2LjYtNjQuNi0xMC41TDQuNyA0MTEuM2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDU5LjYgNTkuNmM3LjMgNy4zIDE4LjUgOS4xIDI3LjcgNC41bDYuMi0zLjFjNy45LTQgMTcuNS0uNyAyMS41IDcuMnMuNyAxNy41LTcuMiAyMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25Ta2lpbmdOb3JkaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM2IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMjI3LjIgMTYwYzEuOSAwIDMuOCAuMSA1LjYgLjNMMjAxLjYgMjU0Yy05LjMgMjggMS43IDU4LjggMjYuOCA3NC41bDg2LjIgNTMuOUwyOTEuMyA0NjRIMjAyLjhsNDEuMS04OC4xLTMyLjQtMjAuM2MtNy44LTQuOS0xNC43LTEwLjctMjAuNi0xNy4zTDEzMi4yIDQ2NEg5OS43bDU0LjItMjU3LjZjNC42LTEuNSA5LTQuMSAxMi43LTcuOGwyMy4xLTIzLjFjOS45LTkuOSAyMy40LTE1LjUgMzcuNS0xNS41ek0xMjEuNCAxOTguNmMuNCAuNCAuOCAuOCAxLjMgMS4yTDY3IDQ2NEgyNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNEgxNTkuM2MuNCAwIC45IDAgMS4zIDBIMzE5LjNjLjUgMCAxIDAgMS40IDBINTA0YzM5LjggMCA3Mi0zMi4yIDcyLTcydi04YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0djhjMCAxMy4zLTEwLjcgMjQtMjQgMjRINDM0LjZsMjcuNi0xNzkuM2MxMC41LTUuMiAxNy44LTE2LjEgMTcuOC0yOC43YzAtMTcuNy0xNC4zLTMyLTMyLTMySDQyNi43Yy0xMi45IDAtMjQuNi03LjgtMjkuNS0xOS43bC02LjMtMTVjLTE0LjYtMzUuMS00NC4xLTYxLjktODAuNS03My4xbC00OC43LTE1Yy0xMS4xLTMuNC0yMi43LTUuMi0zNC40LTUuMmMtMzEgMC02MC44IDEyLjMtODIuNyAzNC4zbC0yMy4xIDIzLjFjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zem0zMDggODkuNEw0MDIuMyA0NjRIMzU3LjhsMjEuNi03NS42YzUuOS0yMC42LTIuNi00Mi42LTIwLjctNTMuOUwzMDIgMjk5bDMwLjktODIuNCA1LjEgMTIuM0MzNTMgMjY0LjcgMzg3LjkgMjg4IDQyNi43IDI4OGgyLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvblNraWluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODAuNyA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0yLjcgMjY4LjljNi4xLTExLjggMjAuNi0xNi4zIDMyLjQtMTAuMkwyMzIuNyAzNjEuM2w0Ni4yLTY5LjItNzUuMS03NS4xYy0xNC42LTE0LjYtMjAuNC0zMy45LTE4LjQtNTIuMWwxMDguOCA1MiAzOS4zIDM5LjNjMTYuMiAxNi4yIDE4LjcgNDEuNSA2IDYwLjZMMjg5LjggMzkxbDEyOC43IDY2LjhjMTMuNiA3LjEgMjkuOCA3LjIgNDMuNiAuM2wxNS4yLTcuNmMxMS45LTUuOSAyNi4zLTEuMSAzMi4yIDEwLjdzMS4xIDI2LjMtMTAuNyAzMi4ybC0xNS4yIDcuNmMtMjcuNSAxMy43LTU5LjkgMTMuNS04Ny4yLS43TDEyLjkgMzAxLjNDMS4yIDI5NS4yLTMuNCAyODAuNyAyLjcgMjY4Ljl6TTExOC45IDY1LjZMMTM3IDc0LjJsOC43LTE3LjRjNC03LjkgMTMuNi0xMS4xIDIxLjUtNy4yczExLjEgMTMuNiA3LjIgMjEuNWwtOC41IDE2LjkgNTQuNyAyNi4yYzEuNS0uNyAzLjEtMS40IDQuNy0yLjFsODMuNC0zMy40YzM0LjItMTMuNyA3Mi44IDQuMiA4NC41IDM5LjJsMTcuMSA1MS4yIDUyLjEgMjYuMWMxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45cy0yNy4xIDIyLjItNDIuOSAxNC4zbC01OC4xLTI5Yy0xMS40LTUuNy0yMC0xNS43LTI0LjEtMjcuOGwtNS44LTE3LjMtMjcuMyAxMi4xLTYuOCAzLTYuNy0zLjJMMTUxLjUgMTE2LjdsLTkuMiAxOC40Yy00IDcuOS0xMy42IDExLjEtMjEuNSA3LjJzLTExLjEtMTMuNi03LjItMjEuNWw5LTE4LTE3LjYtOC40Yy04LTMuOC0xMS4zLTEzLjQtNy41LTIxLjNzMTMuNC0xMS4zIDIxLjMtNy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25Tbm93Ym9hcmRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA5LjcgMy40YzE1LjgtNy45IDM1LTEuNSA0Mi45IDE0LjNsMjUgNTAgNDIuNCA4LjVjMTkuNSAzLjkgMzcuOCAxMi4zIDUzLjUgMjQuNWwxMjYuMSA5OC4xYzE0IDEwLjkgMTYuNSAzMSA1LjYgNDQuOXMtMzEgMTYuNS00NC45IDUuNmwtNzIuMS01Ni4xLTcxLjUgMzEuOCAzMy4xIDI3LjZjMjMuMiAxOS4zIDMzLjUgNTAgMjYuNyA3OS40bC0xNy40IDc1LjJjLTIuMiA5LjQtOC4yIDE2LjgtMTYuMSAyMWw4Ni41IDMzLjFjNC42IDEuOCA5LjQgMi42IDE0LjMgMi42SDQ3MmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEg0NDMuOGMtMTAuOCAwLTIxLjQtMi0zMS41LTUuOEw2MC4xIDM3MS4zYy0xMS41LTQuNC0yMi0xMS4yLTMwLjgtMjBMNyAzMjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwyMi40IDIyLjRjNCA0IDguNyA3LjEgMTQgOS4xbDIyLjQgOC42Yy0uOC0xLjYtMS41LTMuMi0yLjEtNC45Yy01LjYtMTYuOCAzLjUtMzQuOSAyMC4yLTQwLjVMMTkyIDI2NC45bDAtNTMuMmMwLTI0LjIgMTMuNy00Ni40IDM1LjQtNTcuMmw0NS4yLTIyLjYtNy41LTEuNWMtMTkuNC0zLjktMzUuOS0xNi41LTQ0LjctMzQuMWwtMjUtNTBjLTcuOS0xNS44LTEuNS0zNSAxNC4zLTQyLjl6TTEzOSAzNTAuMWwxNTkgNjAuOWMtMi4xLTUuNi0yLjYtMTEuOS0xLjEtMTguMmwxNy40LTc1LjJjMS40LTUuOS0uNy0xMi01LjMtMTUuOWwtNTIuOC00NCAwIDE4LjhjMCAyMC43LTEzLjIgMzktMzIuOCA0NS41TDEzOSAzNTAuMXpNNDMyIDBhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25Td2ltbWluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDkuNSAxNzguNEw0NDcuOSAyOTcuMWMtMS42IC45LTMuMiAyLTQuOCAzYy0xOCAxMi40LTQwLjEgMjAuMy01OS4yIDIwLjNjLTE5LjYgMC00MC44LTcuNy01OS4yLTIwLjNjLTIyLjEtMTUuNS01MS42LTE1LjUtNzMuNyAwYy0xNy4xIDExLjgtMzggMjAuMy01OS4yIDIwLjNjLTEwLjEgMC0yMS4xLTIuMi0zMS45LTYuMkMxNjMuMSAxOTMuMiAyNjIuMiA5NiAzODQgOTZoNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzg0Yy0yNi45IDAtNTIuMyA2LjYtNzQuNSAxOC40ek0xNjAgMTYwQTY0IDY0IDAgMSAxIDMyIDE2MGE2NCA2NCAwIDEgMSAxMjggMHpNMzA2LjUgMzI1LjlDMzI5IDM0MS40IDM1Ni41IDM1MiAzODQgMzUyYzI2LjkgMCA1NS40LTEwLjggNzcuNC0yNi4xbDAgMGMxMS45LTguNSAyOC4xLTcuOCAzOS4yIDEuN2MxNC40IDExLjkgMzIuNSAyMSA1MC42IDI1LjJjMTcuMiA0IDI3LjkgMjEuMiAyMy45IDM4LjRzLTIxLjIgMjcuOS0zOC40IDIzLjljLTI0LjUtNS43LTQ0LjktMTYuNS01OC4yLTI1QzQ0OS41IDQwNS43IDQxNyA0MTYgMzg0IDQxNmMtMzEuOSAwLTYwLjYtOS45LTgwLjQtMTguOWMtNS44LTIuNy0xMS4xLTUuMy0xNS42LTcuN2MtNC41IDIuNC05LjcgNS4xLTE1LjYgNy43Yy0xOS44IDktNDguNSAxOC45LTgwLjQgMTguOWMtMzMgMC02NS41LTEwLjMtOTQuNS0yNS44Yy0xMy40IDguNC0zMy43IDE5LjMtNTguMiAyNWMtMTcuMiA0LTM0LjQtNi43LTM4LjQtMjMuOXM2LjctMzQuNCAyMy45LTM4LjRjMTguMS00LjIgMzYuMi0xMy4zIDUwLjYtMjUuMmMxMS4xLTkuNCAyNy4zLTEwLjEgMzkuMi0xLjdsMCAwQzEzNi43IDM0MS4yIDE2NS4xIDM1MiAxOTIgMzUyYzI3LjUgMCA1NS0xMC42IDc3LjUtMjYuMWMxMS4xLTcuOSAyNS45LTcuOSAzNyAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25UaHJvdWdoV2luZG93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDY0bDIyNCAwIDAgOS44YzAgMzktMjMuNyA3NC01OS45IDg4LjRDMTY3LjYgMTg2LjUgMTI4IDI0NSAxMjggMzEwLjJsMCA3My44czAgMCAwIDBINjRWNjR6bTI4OCAwbDIyNCAwVjM4NEg1MDguM2wtMy43LTQuNS03NS4yLTkwLjJjLTkuMS0xMC45LTIyLjYtMTcuMy0zNi45LTE3LjNsLTcxLjEgMC00MS02My4xYy0uMy0uNS0uNi0xLTEtMS40YzQ0LjctMjkgNzIuNS03OSA3Mi41LTEzMy42bDAtOS44em03MyAzMjBIMzc5LjJsNDIuNyA2NEg1OTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhINDhDMjEuNSAwIDAgMjEuNSAwIDQ4VjQwMGMwIDI2LjUgMjEuNSA0OCA0OCA0OEgzMDguMmwzMy4yIDQ5LjhjOS44IDE0LjcgMjkuNyAxOC43IDQ0LjQgOC45czE4LjctMjkuNyA4LjktNDQuNEwzMTAuNSAzMzZsNzQuNiAwIDQwIDQ4em0tMTU5LjUgMEgxOTJzMCAwIDAgMGwwLTczLjhjMC0xMC4yIDEuNi0yMC4xIDQuNy0yOS41TDI2NS41IDM4NHpNMTkyIDEyOGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25XYWxraW5nQXJyb3dMb29wTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDggOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0xMjMuNyAyMDAuNWMxLS40IDEuOS0uOCAyLjktMS4ybC0xNi45IDYzLjVjLTUuNiAyMS4xLS4xIDQzLjYgMTQuNyA1OS43bDcwLjcgNzcuMSAyMiA4OC4xYzQuMyAxNy4xIDIxLjcgMjcuNiAzOC44IDIzLjNzMjcuNi0yMS43IDIzLjMtMzguOGwtMjMtOTIuMWMtMS45LTcuOC01LjgtMTQuOS0xMS4yLTIwLjhsLTQ5LjUtNTQgMTkuMy02NS41IDkuNiAyM2M0LjQgMTAuNiAxMi41IDE5LjMgMjIuOCAyNC41bDI2LjcgMTMuM2MxNS44IDcuOSAzNSAxLjUgNDIuOS0xNC4zczEuNS0zNS0xNC4zLTQyLjlMMjgxIDIzMi43bC0xNS4zLTM2LjhDMjQ4LjUgMTU0LjggMjA4LjMgMTI4IDE2My43IDEyOGMtMjIuOCAwLTQ1LjMgNC44LTY2LjEgMTRsLTggMy41Yy0zMi45IDE0LjYtNTguMSA0Mi40LTY5LjQgNzYuNWwtMi42IDcuOGMtNS42IDE2LjggMy41IDM0LjkgMjAuMiA0MC41czM0LjktMy41IDQwLjUtMjAuMmwyLjYtNy44YzUuNy0xNy4xIDE4LjMtMzAuOSAzNC43LTM4LjJsOC0zLjV6bS0zMCAxMzUuMUw2OC43IDM5OCA5LjQgNDU3LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTE2LjMgNDQxYzQuNi00LjYgOC4yLTEwLjEgMTAuNi0xNi4xbDE0LjUtMzYuMi00MC43LTQ0LjRjLTIuNS0yLjctNC44LTUuNi03LTguNnptMzQ3LjcgMTE5YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMNDYxLjMgMzg0SDQ4MGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MHMtNzEuNi0xNjAtMTYwLTE2MEwzNTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZINDYxLjNsMjUuNC0yNS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC04MCA4MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsODAgODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbldhbGtpbmdBcnJvd1JpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTEyMy43IDIwMC41YzEtLjQgMS45LS44IDIuOS0xLjJsLTE2LjkgNjMuNWMtNS42IDIxLjEtLjEgNDMuNiAxNC43IDU5LjdsNzAuNyA3Ny4xIDIyIDg4LjFjNC4zIDE3LjEgMjEuNyAyNy42IDM4LjggMjMuM3MyNy42LTIxLjcgMjMuMy0zOC44bC0yMy05Mi4xYy0xLjktNy44LTUuOC0xNC45LTExLjItMjAuOGwtNDkuNS01NCAxOS4zLTY1LjUgOS42IDIzYzQuNCAxMC42IDEyLjUgMTkuMyAyMi44IDI0LjVsMjYuNyAxMy4zYzE1LjggNy45IDM1IDEuNSA0Mi45LTE0LjNzMS41LTM1LTE0LjMtNDIuOUwyODEgMjMyLjdsLTE1LjMtMzYuOEMyNDguNSAxNTQuOCAyMDguMyAxMjggMTYzLjcgMTI4Yy0yMi44IDAtNDUuMyA0LjgtNjYuMSAxNGwtOCAzLjVjLTMyLjkgMTQuNi01OC4xIDQyLjQtNjkuNCA3Ni41bC0yLjYgNy44Yy01LjYgMTYuOCAzLjUgMzQuOSAyMC4yIDQwLjVzMzQuOS0zLjUgNDAuNS0yMC4ybDIuNi03LjhjNS43LTE3LjEgMTguMy0zMC45IDM0LjctMzguMmw4LTMuNXptLTMwIDEzNS4xTDY4LjcgMzk4IDkuNCA0NTcuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxMTYuMyA0NDFjNC42LTQuNiA4LjItMTAuMSAxMC42LTE2LjFsMTQuNS0zNi4yLTQwLjctNDQuNGMtMi41LTIuNy00LjgtNS42LTctOC42ek01NTAuNiAxNTMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMNTMwLjcgMjI0SDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg1MzAuN2wtMjUuNCAyNS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDgwLTgwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC04MC04MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uV2Fsa2luZ0Rhc2hlZExpbmVBcnJvd1JpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTEyMy43IDIwMC41YzEtLjQgMS45LS44IDIuOS0xLjJsLTE2LjkgNjMuNWMtNS42IDIxLjEtLjEgNDMuNiAxNC43IDU5LjdsNzAuNyA3Ny4xIDIyIDg4LjFjNC4zIDE3LjEgMjEuNyAyNy42IDM4LjggMjMuM3MyNy42LTIxLjcgMjMuMy0zOC44bC0yMy05Mi4xYy0xLjktNy44LTUuOC0xNC45LTExLjItMjAuOGwtNDkuNS01NCAxOS4zLTY1LjUgOS42IDIzYzQuNCAxMC42IDEyLjUgMTkuMyAyMi44IDI0LjVsMjYuNyAxMy4zYzE1LjggNy45IDM1IDEuNSA0Mi45LTE0LjNzMS41LTM1LTE0LjMtNDIuOUwyODEgMjMyLjdsLTE1LjMtMzYuOEMyNDguNSAxNTQuOCAyMDguMyAxMjggMTYzLjcgMTI4Yy0yMi44IDAtNDUuMyA0LjgtNjYuMSAxNGwtOCAzLjVjLTMyLjkgMTQuNi01OC4xIDQyLjQtNjkuNCA3Ni41bC0yLjYgNy44Yy01LjYgMTYuOCAzLjUgMzQuOSAyMC4yIDQwLjVzMzQuOS0zLjUgNDAuNS0yMC4ybDIuNi03LjhjNS43LTE3LjEgMTguMy0zMC45IDM0LjctMzguMmw4LTMuNXptLTMwIDEzNS4xTDY4LjcgMzk4IDkuNCA0NTcuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxMTYuMyA0NDFjNC42LTQuNiA4LjItMTAuMSAxMC42LTE2LjFsMTQuNS0zNi4yLTQwLjctNDQuNGMtMi41LTIuNy00LjgtNS42LTctOC42ek01NTAuNiAxNTMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMNTMwLjcgMjI0SDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg1MzAuN2wtMjUuNCAyNS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDgwLTgwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC04MC04MHpNMzkyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0VjcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMjRjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTI0IDE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHYxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjE1MnpNMzkyIDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2MTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYzNDRjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTI0IDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHY0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjQ0MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uV2Fsa2luZ0x1Z2dhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMyIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMzQ3LjcgMjAwLjVjMS0uNCAxLjktLjggMi45LTEuMmwtMTYuOSA2My41Yy01LjYgMjEuMS0uMSA0My42IDE0LjcgNTkuN2w3MC43IDc3LjEgMjIgODguMWM0LjMgMTcuMSAyMS43IDI3LjYgMzguOCAyMy4zczI3LjYtMjEuNyAyMy4zLTM4LjhsLTIzLTkyLjFjLTEuOS03LjgtNS44LTE0LjktMTEuMi0yMC44bC00OS41LTU0IDE5LjMtNjUuNSA5LjYgMjNjNC40IDEwLjYgMTIuNSAxOS4zIDIyLjggMjQuNWwyNi43IDEzLjNjMTUuOCA3LjkgMzUgMS41IDQyLjktMTQuM3MxLjUtMzUtMTQuMy00Mi45TDUwNSAyMzIuN2wtMTUuMy0zNi44QzQ3Mi41IDE1NC44IDQzMi4zIDEyOCAzODcuNyAxMjhjLTIyLjggMC00NS4zIDQuOC02Ni4xIDE0bC04IDMuNWMtMzIuOSAxNC42LTU4LjEgNDIuNC02OS40IDc2LjVsLTIuNiA3LjhjLTUuNiAxNi44IDMuNSAzNC45IDIwLjIgNDAuNXMzNC45LTMuNSA0MC41LTIwLjJsMi42LTcuOGM1LjctMTcuMSAxOC4zLTMwLjkgMzQuNy0zOC4ybDgtMy41em0tMzAgMTM1LjFsLTI1IDYyLjQtNTkuNCA1OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDM0MC4zIDQ0MWM0LjYtNC42IDguMi0xMC4xIDEwLjYtMTYuMWwxNC41LTM2LjItNDAuNy00NC40Yy0yLjUtMi43LTQuOC01LjYtNy04LjZ6TTI1NiAyNzQuMWMtNy43LTQuNC0xNy40LTEuOC0yMS45IDUuOWwtMzIgNTUuNEwxNDcuNyAzMDRjLTE1LjMtOC44LTM0LjktMy42LTQzLjcgMTEuN0w0MCA0MjYuNmMtOC44IDE1LjMtMy42IDM0LjkgMTEuNyA0My43bDU1LjQgMzJjMTUuMyA4LjggMzQuOSAzLjYgNDMuNy0xMS43bDY0LTExMC45YzEuNS0yLjYgMi42LTUuMiAzLjMtOEwyNjEuOSAyOTZjNC40LTcuNyAxLjgtMTcuNC01LjktMjEuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uV2Fsa2luZ1dpdGhDYW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS04LjQgMzJjLTM2LjQgMC02OS42IDIwLjUtODUuOSA1My4xTDM1LjQgMjczLjdjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM0wxMjggMjMxLjZ2NDMuMmMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM0wyMjQgMzk3LjNWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzkwLjZjMC0xMi43LTUuMS0yNC45LTE0LjEtMzMuOUwyMjQgMzA2LjdWMjEzLjNsNzAuNCA5My45YzEwLjYgMTQuMSAzMC43IDE3IDQ0LjggNi40czE3LTMwLjcgNi40LTQ0LjhMMjY4LjggMTY2LjRDMjUwLjcgMTQyLjIgMjIyLjIgMTI4IDE5MiAxMjhIMTY3LjZ6TTEyOC4zIDM0Ni44TDk3IDQ3Mi4yYy00LjMgMTcuMSA2LjEgMzQuNSAyMy4zIDM4LjhzMzQuNS02LjEgMzguOC0yMy4zbDIyLTg4LjItNTIuOC01Mi44ek00NTAuOCA1MDUuMWM1IDcuMyAxNSA5LjEgMjIuMyA0czkuMS0xNSA0LTIyLjNMMzU4LjkgMzE2LjFjLTIuOCAzLjgtNi4xIDcuMy0xMC4xIDEwLjNjLTUgMy44LTEwLjUgNi40LTE2LjIgNy45TDQ1MC44IDUwNS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25XYWxraW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0xMjYuNSAxOTkuM2MtMSAuNC0xLjkgLjgtMi45IDEuMmwtOCAzLjVjLTE2LjQgNy4zLTI5IDIxLjItMzQuNyAzOC4ybC0yLjYgNy44Yy01LjYgMTYuOC0yMy43IDI1LjgtNDAuNSAyMC4ycy0yNS44LTIzLjctMjAuMi00MC41bDIuNi03LjhjMTEuNC0zNC4xIDM2LjYtNjEuOSA2OS40LTc2LjVsOC0zLjVjMjAuOC05LjIgNDMuMy0xNCA2Ni4xLTE0YzQ0LjYgMCA4NC44IDI2LjggMTAxLjkgNjcuOUwyODEgMjMyLjdsMjEuNCAxMC43YzE1LjggNy45IDIyLjIgMjcuMSAxNC4zIDQyLjlzLTI3LjEgMjIuMi00Mi45IDE0LjNMMjQ3IDI4Ny4zYy0xMC4zLTUuMi0xOC40LTEzLjgtMjIuOC0yNC41bC05LjYtMjMtMTkuMyA2NS41IDQ5LjUgNTRjNS40IDUuOSA5LjIgMTMgMTEuMiAyMC44bDIzIDkyLjFjNC4zIDE3LjEtNi4xIDM0LjUtMjMuMyAzOC44cy0zNC41LTYuMS0zOC44LTIzLjNsLTIyLTg4LjEtNzAuNy03Ny4xYy0xNC44LTE2LjEtMjAuMy0zOC42LTE0LjctNTkuN2wxNi45LTYzLjV6TTY4LjcgMzk4bDI1LTYyLjRjMi4xIDMgNC41IDUuOCA3IDguNmw0MC43IDQ0LjQtMTQuNSAzNi4yYy0yLjQgNi02IDExLjUtMTAuNiAxNi4xTDU0LjYgNTAyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDY4LjcgMzk4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEyIDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTQwIDMwNFY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMjU2LjlMNTkuNCAzMDQuNWMtOS4xIDE1LjEtMjguOCAyMC00My45IDEwLjlzLTIwLTI4LjgtMTAuOS00My45bDU4LjMtOTdjMTcuNC0yOC45IDQ4LjYtNDYuNiA4Mi4zLTQ2LjZoMjkuN2MzMy43IDAgNjQuOSAxNy43IDgyLjMgNDYuNmw1OC4zIDk3YzkuMSAxNS4xIDQuMiAzNC44LTEwLjkgNDMuOXMtMzQuOCA0LjItNDMuOS0xMC45TDIzMiAyNTYuOVY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzUySDE1MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVzZXRhU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkM0Ni4zIDMyIDMyIDQ2LjMgMzIgNjR2OTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCA5NlY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzNTJoOTZjNzcuNCAwIDE0Mi01NSAxNTYuOC0xMjhIMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyaC0zLjJDMzM0IDg3IDI2OS40IDMyIDE5MiAzMkg2NHpNMjgyLjUgMTYwSDk2Vjk2aDk2YzQxLjggMCA3Ny40IDI2LjcgOTAuNSA2NHpNOTYgMjI0SDI4Mi41Yy0xMy4yIDM3LjMtNDguNyA2NC05MC41IDY0SDk2VjIyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVzb1NpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDNDYuMyAzMiAzMiA0Ni4zIDMyIDY0djY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCA2NHY5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjM4NGg4MGM2OC40IDAgMTI3LjctMzkgMTU2LjgtOTZIMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyaC0uN2MuNS01LjMgLjctMTAuNiAuNy0xNnMtLjItMTAuNy0uNy0xNmguN2MxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMzIuOEMzMDMuNyA3MSAyNDQuNCAzMiAxNzYgMzJINjR6bTE5MC40IDk2SDk2Vjk2aDgwYzMwLjUgMCA1OC4yIDEyLjIgNzguNCAzMnpNOTYgMTkySDI4Ni45Yy43IDUuMiAxLjEgMTAuNiAxLjEgMTZzLS40IDEwLjgtMS4xIDE2SDk2VjE5MnptMTU4LjQgOTZjLTIwLjIgMTkuOC00Ny45IDMyLTc4LjQgMzJIOTZWMjg4SDI1NC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaG9uZUZsaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ3LjEgMjQuNmM3LjctMTguNiAyOC0yOC41IDQ3LjQtMjMuMmw4OCAyNEM0OTkuOSAzMC4yIDUxMiA0NiA1MTIgNjRjMCAyNDcuNC0yMDAuNiA0NDgtNDQ4IDQ0OGMtMTggMC0zMy44LTEyLjEtMzguNi0yOS41bC0yNC04OGMtNS4zLTE5LjQgNC42LTM5LjcgMjMuMi00Ny40bDk2LTQwYzE2LjMtNi44IDM1LjItMi4xIDQ2LjMgMTEuNkwyMDcuMyAzNjhjNzAuNC0zMy4zIDEyNy40LTkwLjMgMTYwLjctMTYwLjdMMzE4LjcgMTY3Yy0xMy43LTExLjItMTguNC0zMC0xMS42LTQ2LjNsNDAtOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBob25lU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjAxLjIgNS4xYzEwLjQtOC4yIDI1LjUtNi4zIDMzLjcgNC4xczYuMyAyNS41LTQuMSAzMy43bC01OTIgNDY0Yy0xMC40IDguMi0yNS41IDYuMy0zMy43LTQuMXMtNi4zLTI1LjUgNC4xLTMzLjdsMTU1LjYtMTIyQzEwMS44IDI3MCA2NCAxNzEuNCA2NCA2NGMwLTE4IDEyLjEtMzMuOCAyOS41LTM4LjZsODgtMjRjMTkuNC01LjMgMzkuNyA0LjYgNDcuNCAyMy4ybDQwIDk2YzYuOCAxNi4zIDIuMSAzNS4yLTExLjYgNDYuM0wyMDggMjA3LjNjMTIgMjUuNSAyNy4yIDQ5LjIgNDUgNzAuN0w2MDEuMiA1LjF6TTIzNC4zIDQxNS42bDkxLjMtNzJjMTMuNyA5LjEgMjggMTcuMyA0MyAyNC4zTDQwOSAzMTguN2MxMS4yLTEzLjcgMzAtMTguNCA0Ni4zLTExLjZsOTYgNDBjMTguNiA3LjcgMjguNSAyOCAyMy4yIDQ3LjRsLTI0IDg4QzU0NS44IDQ5OS45IDUzMCA1MTIgNTEyIDUxMmMtMTA0LjkgMC0yMDEuMy0zNi0yNzcuNy05Ni40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaG9uZVZvbHVtZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODAgMEM0MDguMSAwIDUxMiAxMDMuOSA1MTIgMjMyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTAxLjYtODIuNC0xODQtMTg0LTE4NGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptOCAxOTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0tMzItNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRjNzUuMSAwIDEzNiA2MC45IDEzNiAxMzZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00OC42LTM5LjQtODgtODgtODhjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0xMTcuNSAxLjRjMTkuNC01LjMgMzkuNyA0LjYgNDcuNCAyMy4ybDQwIDk2YzYuOCAxNi4zIDIuMSAzNS4yLTExLjYgNDYuM0wxNDQgMjA3LjNjMzMuMyA3MC40IDkwLjMgMTI3LjQgMTYwLjcgMTYwLjdMMzQ1IDMxOC43YzExLjItMTMuNyAzMC0xOC40IDQ2LjMtMTEuNmw5NiA0MGMxOC42IDcuNyAyOC41IDI4IDIzLjIgNDcuNGwtMjQgODhDNDgxLjggNDk5LjkgNDY2IDUxMiA0NDggNTEyQzIwMC42IDUxMiAwIDMxMS40IDAgNjRDMCA0NiAxMi4xIDMwLjIgMjkuNSAyNS40bDg4LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjQuOSAyNC42Yy03LjctMTguNi0yOC0yOC41LTQ3LjQtMjMuMmwtODggMjRDMTIuMSAzMC4yIDAgNDYgMCA2NEMwIDMxMS40IDIwMC42IDUxMiA0NDggNTEyYzE4IDAgMzMuOC0xMi4xIDM4LjYtMjkuNWwyNC04OGM1LjMtMTkuNC00LjYtMzkuNy0yMy4yLTQ3LjRsLTk2LTQwYy0xNi4zLTYuOC0zNS4yLTIuMS00Ni4zIDExLjZMMzA0LjcgMzY4QzIzNC4zIDMzNC43IDE3Ny4zIDI3Ny43IDE0NCAyMDcuM0wxOTMuMyAxNjdjMTMuNy0xMS4yIDE4LjQtMzAgMTEuNi00Ni4zbC00MC05NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGhvdG9GaWxtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAwSDU3NmMzNS4zIDAgNjQgMjguNyA2NCA2NFYyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRIMjU2Yy0zNS4zIDAtNjQtMjguNy02NC02NFY2NGMwLTM1LjMgMjguNy02NCA2NC02NHpNNDc2IDEwNi43QzQ3MS41IDEwMCA0NjQgOTYgNDU2IDk2cy0xNS41IDQtMjAgMTAuN2wtNTYgODRMMzYyLjcgMTY5Yy00LjYtNS43LTExLjUtOS0xOC43LTlzLTE0LjIgMy4zLTE4LjcgOWwtNjQgODBjLTUuOCA3LjItNi45IDE3LjEtMi45IDI1LjRzMTIuNCAxMy42IDIxLjYgMTMuNmg4MCA0OEg1NTJjOC45IDAgMTctNC45IDIxLjItMTIuN3MzLjctMTcuMy0xLjItMjQuNmwtOTYtMTQ0ek0zMzYgOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNNjQgMTI4aDk2VjM4NHYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMkgzMjBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzg0SDUxMnY2NGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0em04IDY0Yy04LjggMC0xNiA3LjItMTYgMTZ2MTZjMCA4LjggNy4yIDE2IDE2IDE2SDg4YzguOCAwIDE2LTcuMiAxNi0xNlYyMDhjMC04LjgtNy4yLTE2LTE2LTE2SDcyem0wIDEwNGMtOC44IDAtMTYgNy4yLTE2IDE2djE2YzAgOC44IDcuMiAxNiAxNiAxNkg4OGM4LjggMCAxNi03LjIgMTYtMTZWMzEyYzAtOC44LTcuMi0xNi0xNi0xNkg3MnptMCAxMDRjLTguOCAwLTE2IDcuMi0xNiAxNnYxNmMwIDguOCA3LjIgMTYgMTYgMTZIODhjOC44IDAgMTYtNy4yIDE2LTE2VjQxNmMwLTguOC03LjItMTYtMTYtMTZINzJ6bTMzNiAxNnYxNmMwIDguOCA3LjIgMTYgMTYgMTZoMTZjOC44IDAgMTYtNy4yIDE2LTE2VjQxNmMwLTguOC03LjItMTYtMTYtMTZINDI0Yy04LjggMC0xNiA3LjItMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpZ2d5QmFuayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgOTZsMCAuN2MtNS4zLS40LTEwLjYtLjctMTYtLjdIMjU2Yy0xNi41IDAtMzIuNSAyLjEtNDcuOCA2Yy0uMS0yLS4yLTQtLjItNmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2em0tMTYgMzJjMy41IDAgNyAuMSAxMC40IC4zYzQuMiAuMyA4LjQgLjcgMTIuNiAxLjNDNDI0LjYgMTA5LjEgNDUwLjggOTYgNDgwIDk2aDExLjVjMTAuNCAwIDE4IDkuOCAxNS41IDE5LjlsLTEzLjggNTUuMmMxNS44IDE0LjggMjguNyAzMi44IDM3LjUgNTIuOUg1NDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJINTEyYy05LjEgMTIuMS0xOS45IDIyLjktMzIgMzJ2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJINDE2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlY0NDhIMjU2djMyYzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDE2Yy0zNC45LTI2LjItNTguNy02Ni4zLTYzLjItMTEySDY4Yy0zNy42IDAtNjgtMzAuNC02OC02OHMzMC40LTY4IDY4LTY4aDRjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRINjhjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwSDk5LjJjMTIuMS01OS44IDU3LjctMTA3LjUgMTE2LjMtMTIyLjhjMTIuOS0zLjQgMjYuNS01LjIgNDAuNS01LjJIMzg0em02NCAxMzZhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGlsbHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEyIDk2Yy0yNi41IDAtNDggMjEuNS00OCA0OFYyNTZoOTZWMTQ0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0wIDE0NEMwIDgyLjEgNTAuMSAzMiAxMTIgMzJzMTEyIDUwLjEgMTEyIDExMlYzNjhjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJTMCA0MjkuOSAwIDM2OFYxNDR6TTU1NC45IDM5OS40Yy03LjEgMTIuMy0yMy43IDEzLjEtMzMuOCAzLjFMMzMzLjUgMjE0LjljLTEwLTEwLTkuMy0yNi43IDMuMS0zMy44QzM2MCAxNjcuNyAzODcuMSAxNjAgNDE2IDE2MGM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MGMwIDI4LjktNy43IDU2LTIxLjEgNzkuNHptLTU5LjUgNTkuNUM0NzIgNDcyLjMgNDQ0LjkgNDgwIDQxNiA0ODBjLTg4LjQgMC0xNjAtNzEuNi0xNjAtMTYwYzAtMjguOSA3LjctNTYgMjEuMS03OS40YzcuMS0xMi4zIDIzLjctMTMuMSAzMy44LTMuMUw0OTguNSA0MjUuMWMxMCAxMCA5LjMgMjYuNy0zLjEgMzMuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGl6emFTbGljZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjkuNyAuOWMtMjIuOC0xLjYtNDEuOSAxNC00Ny41IDM0LjdMMTEwLjQgODBjLjUgMCAxLjEgMCAxLjYgMGMxNzYuNyAwIDMyMCAxNDMuMyAzMjAgMzIwYzAgLjUgMCAxLjEgMCAxLjZsNDQuNC0xMS44YzIwLjgtNS41IDM2LjMtMjQuNyAzNC43LTQ3LjVDNDk4LjUgMTU5LjUgMzUyLjUgMTMuNSAxNjkuNyAuOXpNMzk5LjggNDEwLjJjLjEtMy40IC4yLTYuOCAuMi0xMC4yYzAtMTU5LjEtMTI4LjktMjg4LTI4OC0yODhjLTMuNCAwLTYuOCAuMS0xMC4yIC4yTC41IDQ5MS45Yy0xLjUgNS41IC4xIDExLjQgNC4xIDE1LjRzOS45IDUuNiAxNS40IDQuMUwzOTkuOCA0MTAuMnpNMTc2IDIwOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0IDEyOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek05NiAzODRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGxhY2VPZldvcnNoaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDEwOS4zVjIxNy42TDE4My4zIDI0MmMtMTQuNSA4LjctMjMuMyAyNC4zLTIzLjMgNDEuMlY1MTJoOTZWNDE2YzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjR2OTZoOTZWMjgzLjJjMC0xNi45LTguOC0zMi41LTIzLjMtNDEuMkw0MTYgMjE3LjZWMTA5LjNjMC04LjUtMy40LTE2LjYtOS40LTIyLjZMMzMxLjMgMTEuM2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMMjMzLjQgODYuNmMtNiA2LTkuNCAxNC4xLTkuNCAyMi42ek0yNC45IDMzMC4zQzkuNSAzMzguOCAwIDM1NC45IDAgMzcyLjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDgwVjI3My42TDI0LjkgMzMwLjN6TTU5MiA1MTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzcyLjRjMC0xNy41LTkuNS0zMy42LTI0LjktNDIuMUw1MTIgMjczLjZWNTEyaDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbGFuZUFycml2YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjMgMTY2LjlMMCA2OEMwIDU3LjcgOS41IDUwLjEgMTkuNSA1Mi4zbDM1LjYgNy45YzEwLjYgMi4zIDE5LjIgOS45IDIzIDIwTDk2IDEyOGwxMjcuMyAzNy42TDE4MS44IDIwLjRDMTc4LjkgMTAuMiAxODYuNiAwIDE5Ny4yIDBoNDAuMWMxMS42IDAgMjIuMiA2LjIgMjcuOSAxNi4zbDEwOSAxOTMuOCAxMDcuMiAzMS43YzE1LjkgNC43IDMwLjggMTIuNSA0My43IDIyLjhsMzQuNCAyNy42YzI0IDE5LjIgMTguMSA1Ny4zLTEwLjcgNjguMmMtNDEuMiAxNS42LTg2LjIgMTguMS0xMjguOCA3TDEyMS43IDI4OS44Yy0xMS4xLTIuOS0yMS4yLTguNy0yOS4zLTE2LjlMOS41IDE4OS40Yy01LjktNi05LjMtMTQuMS05LjMtMjIuNXpNMzIgNDQ4SDYwOGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptOTYtODBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTI4LTE2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGxhbmVDaXJjbGVDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMGMtMzUgMC02NCA1OS41LTY0IDkzLjd2ODQuNkw4LjEgMjgzLjRjLTUgMi44LTguMSA4LjItOC4xIDEzLjl2NjUuNWMwIDEwLjYgMTAuMiAxOC4zIDIwLjQgMTUuNGwxNzEuNi00OSAwIDcwLjktNTcuNiA0My4yYy00IDMtNi40IDcuOC02LjQgMTIuOHY0MmMwIDcuOCA2LjMgMTQgMTQgMTRjMS4zIDAgMi42LS4yIDMuOS0uNUwyNTYgNDgwbDExMC4xIDMxLjVjMS4zIC40IDIuNiAuNSAzLjkgLjVjNiAwIDExLjEtMy43IDEzLjEtOUMzNDQuNSA0NzAuNyAzMjAgNDIyLjIgMzIwIDM2OGMwLTYwLjYgMzAuNi0xMTQgNzcuMS0xNDUuNkwzMjAgMTc4LjNWOTMuN0MzMjAgNTkuNSAyOTIgMCAyNTYgMHpNNjQwIDM2OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNzYuNy00My4zYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03MiA3MmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDgwIDM4NS40bDYwLjctNjAuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGxhbmVDaXJjbGVFeGNsYW1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMGMtMzUgMC02NCA1OS41LTY0IDkzLjd2ODQuNkw4LjEgMjgzLjRjLTUgMi44LTguMSA4LjItOC4xIDEzLjl2NjUuNWMwIDEwLjYgMTAuMiAxOC4zIDIwLjQgMTUuNGwxNzEuNi00OSAwIDcwLjktNTcuNiA0My4yYy00IDMtNi40IDcuOC02LjQgMTIuOHY0MmMwIDcuOCA2LjMgMTQgMTQgMTRjMS4zIDAgMi42LS4yIDMuOS0uNUwyNTYgNDgwbDExMC4xIDMxLjVjMS4zIC40IDIuNiAuNSAzLjkgLjVjNiAwIDExLjEtMy43IDEzLjEtOUMzNDQuNSA0NzAuNyAzMjAgNDIyLjIgMzIwIDM2OGMwLTYwLjYgMzAuNi0xMTQgNzcuMS0xNDUuNkwzMjAgMTc4LjNWOTMuN0MzMjAgNTkuNSAyOTIgMCAyNTYgMHpNNDk2IDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtOTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0wLTE0NGM4LjggMCAxNiA3LjIgMTYgMTZ2ODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMjg4YzAtOC44IDcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGxhbmVDaXJjbGVYbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMGMtMzUgMC02NCA1OS41LTY0IDkzLjd2ODQuNkw4LjEgMjgzLjRjLTUgMi44LTguMSA4LjItOC4xIDEzLjl2NjUuNWMwIDEwLjYgMTAuMiAxOC4zIDIwLjQgMTUuNGwxNzEuNi00OSAwIDcwLjktNTcuNiA0My4yYy00IDMtNi40IDcuOC02LjQgMTIuOHY0MmMwIDcuOCA2LjMgMTQgMTQgMTRjMS4zIDAgMi42LS4yIDMuOS0uNUwyNTYgNDgwbDExMC4xIDMxLjVjMS4zIC40IDIuNiAuNSAzLjkgLjVjNiAwIDExLjEtMy43IDEzLjEtOUMzNDQuNSA0NzAuNyAzMjAgNDIyLjIgMzIwIDM2OGMwLTYwLjYgMzAuNi0xMTQgNzcuMS0xNDUuNkwzMjAgMTc4LjNWOTMuN0MzMjAgNTkuNSAyOTIgMCAyNTYgMHpNNDk2IDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdMNTE4LjYgMzY4bDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwTDQ5NiAzOTAuNmwtMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42TDQ3My40IDM2OGwtMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDk2IDM0NS40bDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYW5lRGVwYXJ0dXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4MSAxMTQuOUwxODYuMSA0MS44Yy0xNi43LTYuMi0zNS4yLTUuMy01MS4xIDIuN0w4OS4xIDY3LjRDNzggNzMgNzcuMiA4OC41IDg3LjYgOTUuMmwxNDYuOSA5NC41TDEzNiAyNDAgNzcuOCAyMTQuMWMtOC43LTMuOS0xOC44LTMuNy0yNy4zIC42TDE4LjMgMjMwLjhjLTkuMyA0LjctMTEuOCAxNi44LTUgMjQuN2w3My4xIDg1LjNjNi4xIDcuMSAxNSAxMS4yIDI0LjMgMTEuMkgyNDguNGM1IDAgOS45LTEuMiAxNC4zLTMuNEw1MzUuNiAyMTIuMmM0Ni41LTIzLjMgODIuNS02My4zIDEwMC44LTExMkM2NDUuOSA3NSA2MjcuMiA0OCA2MDAuMiA0OEg1NDIuOGMtMjAuMiAwLTQwLjIgNC44LTU4LjIgMTRMMzgxIDExNC45ek0wIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg2MDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbGFuZUxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDkzLjdDMTkyIDU5LjUgMjIxIDAgMjU2IDBjMzYgMCA2NCA1OS41IDY0IDkzLjd2ODQuNmwxMDEuOCA1OC4yQzQxOCAyNDcuNiA0MTYgMjU5LjYgNDE2IDI3MnYyNC42Yy0xNy45IDEwLjQtMzAuMyAyOS4xLTMxLjggNTAuOUwzMjAgMzI5LjFWNDAwbDU3LjYgNDMuMmM0IDMgNi40IDcuOCA2LjQgMTIuOHYyNCAxOGMwIDcuOC02LjMgMTQtMTQgMTRjLTEuMyAwLTIuNi0uMi0zLjktLjVMMjU2IDQ4MCAxNDUuOSA1MTEuNWMtMS4zIC40LTIuNiAuNS0zLjkgLjVjLTcuOCAwLTE0LTYuMy0xNC0xNFY0NTZjMC01IDIuNC05LjggNi40LTEyLjhMMTkyIDQwMGwwLTcwLjktMTcxLjYgNDlDMTAuMiAzODEuMSAwIDM3My40IDAgMzYyLjhWMjk3LjNjMC01LjcgMy4xLTExIDguMS0xMy45TDE5MiAxNzguM1Y5My43ek01MjggMjQwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY0OGg2NFYyNzJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS04MCAzMmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwdjQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMyVjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMkg0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjM1MmMwLTE3LjcgMTQuMy0zMiAzMi0zMlYyNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYW5lU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQwLjYgMzIwaDczLjhjMzQuMiAwIDkzLjctMjggOTMuNy02NGMwLTM1LTU5LjUtNjQtOTMuNy02NGwtMTE2LjYgMEwyOTcuMiAxNi4xQzI5MS41IDYuMiAyODAuOSAwIDI2OS40IDBIMjEzLjJjLTEwLjYgMC0xOC4zIDEwLjItMTUuNCAyMC40bDQwLjMgMTQwLjlMMzguOCA1LjFDMjguNC0zLjEgMTMuMy0xLjIgNS4xIDkuMlMtMS4yIDM0LjcgOS4yIDQyLjlsNTkyIDQ2NGMxMC40IDguMiAyNS41IDYuMyAzMy43LTQuMXM2LjMtMjUuNS00LjEtMzMuN0w0NDAuNiAzMjB6bS03OC4xIDYxLjZMNDEuNSAxMjguN0MzNiAxMzAuNiAzMiAxMzUuOSAzMiAxNDJjMCAxLjMgLjIgMi42IC41IDMuOUw2NCAyNTYgMzIuNSAzNjYuMWMtLjQgMS4zLS41IDIuNi0uNSAzLjljMCA3LjggNi4zIDE0IDE0IDE0SDg4YzUgMCA5LjgtMi40IDEyLjgtNi40TDE0NCAzMjBIMjQ2LjlsLTQ5IDE3MS42Yy0yLjkgMTAuMiA0LjggMjAuNCAxNS40IDIwLjRsNTYuMiAwYzExLjUgMCAyMi4xLTYuMiAyNy44LTE2LjFsNjUuMy0xMTQuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGxhbmVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgOTMuN0MxOTIgNTkuNSAyMjEgMCAyNTYgMGMzNiAwIDY0IDU5LjUgNjQgOTMuN2wwIDY2LjNMNDk3LjggMjc4LjVjOC45IDUuOSAxNC4yIDE1LjkgMTQuMiAyNi42djU2LjdjMCAxMC45LTEwLjcgMTguNi0yMS4xIDE1LjJMMzIwIDMyMHY4MGw1Ny42IDQzLjJjNCAzIDYuNCA3LjggNi40IDEyLjh2NDJjMCA3LjgtNi4zIDE0LTE0IDE0Yy0xLjMgMC0yLjYtLjItMy45LS41TDI1NiA0ODAgMTQ1LjkgNTExLjVjLTEuMyAuNC0yLjYgLjUtMy45IC41Yy03LjggMC0xNC02LjMtMTQtMTRWNDU2YzAtNSAyLjQtOS44IDYuNC0xMi44TDE5MiA0MDBWMzIwTDIxLjEgMzc3QzEwLjcgMzgwLjQgMCAzNzIuNyAwIDM2MS44VjMwNS4xYzAtMTAuNyA1LjMtMjAuNyAxNC4yLTI2LjZMMTkyIDE2MFY5My43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbGFuZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODIuMyAxOTJjMzQuMiAwIDkzLjcgMjkgOTMuNyA2NGMwIDM2LTU5LjUgNjQtOTMuNyA2NGwtMTE2LjYgMEwyNjUuMiA0OTUuOWMtNS43IDEwLTE2LjMgMTYuMS0yNy44IDE2LjFsLTU2LjIgMGMtMTAuNiAwLTE4LjMtMTAuMi0xNS40LTIwLjRsNDktMTcxLjZMMTEyIDMyMCA2OC44IDM3Ny42Yy0zIDQtNy44IDYuNC0xMi44IDYuNGwtNDIgMGMtNy44IDAtMTQtNi4zLTE0LTE0YzAtMS4zIC4yLTIuNiAuNS0zLjlMMzIgMjU2IC41IDE0NS45Yy0uNC0xLjMtLjUtMi42LS41LTMuOWMwLTcuOCA2LjMtMTQgMTQtMTRsNDIgMGM1IDAgOS44IDIuNCAxMi44IDYuNEwxMTIgMTkybDEwMi45IDAtNDktMTcxLjZDMTYyLjkgMTAuMiAxNzAuNiAwIDE4MS4yIDBsNTYuMiAwYzExLjUgMCAyMi4xIDYuMiAyNy44IDE2LjFMMzY1LjcgMTkybDExNi42IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYW50V2lsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMTIwYzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZ2MTNjLTI5LjMgMTAtNDggMzQuNS00OCA3MC4xYzAgMjcuOSAyNS4zIDc0LjggNjYgMTExLjZjMy44IDMuNSA4LjkgNS4zIDE0IDUuM3MxMC4yLTEuOCAxNC01LjNjNDAuNy0zNi44IDY2LTgzLjcgNjYtMTExLjZjMC0zNS42LTE4LjctNjAuMi00OC03MC4xVjEyMEM0NjQgNTMuNyA0MTAuMyAwIDM0NCAwUzIyNCA1My43IDIyNCAxMjB2MjEuOEMyMDcuMyAxMzMgMTg4LjIgMTI4IDE2OCAxMjhjLTY2LjMgMC0xMjAgNTMuNy0xMjAgMTIwdjEzYy0yOS4zIDEwLTQ4IDM0LjUtNDggNzAuMUMwIDM1OSAyNS4zIDQwNS45IDY2IDQ0Mi43YzMuOCAzLjUgOC45IDUuMyAxNCA1LjNzMTAuMi0xLjggMTQtNS4zYzQwLjctMzYuOCA2Ni04My43IDY2LTExMS42YzAtMzUuNi0xOC43LTYwLjItNDgtNzAuMVYyNDhjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NnYzMlY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyODAgMjQ4IDEyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGxhdGVXaGVhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzYgMzJjNDQuMiAwIDgwIDM1LjggODAgODB2MTZjMCA4LjgtNy4yIDE2LTE2IDE2Yy00NC4yIDAtODAtMzUuOC04MC04MFY0OGMwLTguOCA3LjItMTYgMTYtMTZ6TTU2IDY0aDQ4YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDU2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0yNCAxMzZIMTM2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em04IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0aDQ4YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDU2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMjcyIDQ4YzAtOC44IDcuMi0xNiAxNi0xNmM0NC4yIDAgODAgMzUuOCA4MCA4MHYxNmMwIDguOC03LjIgMTYtMTYgMTZjLTQ0LjIgMC04MC0zNS44LTgwLTgwVjQ4ek00MDAgMzJjNDQuMiAwIDgwIDM1LjggODAgODB2MTZjMCA4LjgtNy4yIDE2LTE2IDE2Yy00NC4yIDAtODAtMzUuOC04MC04MFY0OGMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2MHYxNmMwIDQ0LjItMzUuOCA4MC04MCA4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjI1NmMwLTQ0LjIgMzUuOC04MCA4MC04MGM4LjggMCAxNiA3LjIgMTYgMTZ6TTM1MiAxNzZjOC44IDAgMTYgNy4yIDE2IDE2djE2YzAgNDQuMi0zNS44IDgwLTgwIDgwYy04LjggMC0xNi03LjItMTYtMTZWMjU2YzAtNDQuMiAzNS44LTgwIDgwLTgwem0tOTYgMTZ2MTZjMCA0NC4yLTM1LjggODAtODAgODBjLTguOCAwLTE2LTcuMi0xNi0xNlYyNTZjMC00NC4yIDM1LjgtODAgODAtODBjOC44IDAgMTYgNy4yIDE2IDE2ek0zLjUgMzQ3LjZDMS42IDMzMi45IDEzIDMyMCAyNy44IDMyMEg0ODQuMmMxNC44IDAgMjYuMiAxMi45IDI0LjQgMjcuNkM1MDIuMyAzOTcuOCA0NjQuMiA0MzcgNDE2IDQ0NnYyYzAgMTcuNy0xNC4zIDMyLTMyIDMySDEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ2LTJjLTQ4LjItOS04Ni4zLTQ4LjItOTIuNS05OC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTczIDM5Yy0xNC44LTkuMS0zMy40LTkuNC00OC41LS45UzAgNjIuNiAwIDgwVjQzMmMwIDE3LjQgOS40IDMzLjQgMjQuNSA0MS45czMzLjcgOC4xIDQ4LjUtLjlMMzYxIDI5N2MxNC4zLTguNyAyMy0yNC4yIDIzLTQxcy04LjctMzIuMi0yMy00MUw3MyAzOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGx1Z0NpcmNsZUJvbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMEM3OC4zIDAgNjQgMTQuMyA2NCAzMnY5Nmg2NFYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjg4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjk2aDY0VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMiAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ2MzJjMCA3Ny40IDU1IDE0MiAxMjggMTU2LjhWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWNDEyLjhjMTIuMy0yLjUgMjQuMS02LjQgMzUuMS0xMS41Yy0yLjEtMTAuOC0zLjEtMjEuOS0zLjEtMzMuM2MwLTgwLjMgNTMuOC0xNDggMTI3LjMtMTY5LjJjLjUtMi4yIC43LTQuNSAuNy02LjhjMC0xNy43LTE0LjMtMzItMzItMzJIMzJ6TTQzMiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em00Ny45LTIyNWM0LjMgMy43IDUuNCA5LjkgMi42IDE0LjlMNDUyLjQgMzU2SDQ4OGM1LjIgMCA5LjggMy4zIDExLjQgOC4ycy0uMSAxMC4zLTQuMiAxMy40bC05NiA3MmMtNC41IDMuNC0xMC44IDMuMi0xNS4xLS42cy01LjQtOS45LTIuNi0xNC45TDQxMS42IDM4MEgzNzZjLTUuMiAwLTkuOC0zLjMtMTEuNC04LjJzLjEtMTAuMyA0LjItMTMuNGw5Ni03MmM0LjUtMy40IDEwLjgtMy4yIDE1LjEgLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsdWdDaXJjbGVDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAwQzc4LjMgMCA2NCAxNC4zIDY0IDMydjk2aDY0VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0yODggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2OTZoNjRWMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTMyIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnYzMmMwIDc3LjQgNTUgMTQyIDEyOCAxNTYuOFY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY0MTIuOGMxMi4zLTIuNSAyNC4xLTYuNCAzNS4xLTExLjVjLTIuMS0xMC44LTMuMS0yMS45LTMuMS0zMy4zYzAtODAuMyA1My44LTE0OCAxMjcuMy0xNjkuMmMuNS0yLjIgLjctNC41IC43LTYuOGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMnpNNTc2IDM2OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNzYuNy00My4zYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03MiA3MmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDE2IDM4NS40bDYwLjctNjAuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGx1Z0NpcmNsZUV4Y2xhbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDBDNzguMyAwIDY0IDE0LjMgNjQgMzJ2OTZoNjRWMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTI4OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY5Nmg2NFYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMydjMyYzAgNzcuNCA1NSAxNDIgMTI4IDE1Ni44VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjQxMi44YzEyLjMtMi41IDI0LjEtNi40IDM1LjEtMTEuNWMtMi4xLTEwLjgtMy4xLTIxLjktMy4xLTMzLjNjMC04MC4zIDUzLjgtMTQ4IDEyNy4zLTE2OS4yYy41LTIuMiAuNy00LjUgLjctNi44YzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyek00MzIgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC05NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTAtMTQ0YzguOCAwIDE2IDcuMiAxNiAxNnY4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYyODhjMC04LjggNy4yLTE2IDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbHVnQ2lyY2xlTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMEM3OC4zIDAgNjQgMTQuMyA2NCAzMnY5Nmg2NFYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjg4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjk2aDY0VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMiAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ2MzJjMCA3Ny40IDU1IDE0MiAxMjggMTU2LjhWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWNDEyLjhjMTIuMy0yLjUgMjQuMS02LjQgMzUuMS0xMS41Yy0yLjEtMTAuOC0zLjEtMjEuOS0zLjEtMzMuM2MwLTgwLjMgNTMuOC0xNDggMTI3LjMtMTY5LjJjLjUtMi4yIC43LTQuNSAuNy02LjhjMC0xNy43LTE0LjMtMzItMzItMzJIMzJ6TTU3NiAzNjhhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTY0IDBjMCA4LjgtNy4yIDE2LTE2IDE2SDM2OGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNkg0OTZjOC44IDAgMTYgNy4yIDE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbHVnQ2lyY2xlUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAwQzc4LjMgMCA2NCAxNC4zIDY0IDMydjk2aDY0VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0yODggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2OTZoNjRWMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTMyIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnYzMmMwIDc3LjQgNTUgMTQyIDEyOCAxNTYuOFY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY0MTIuOGMxMi4zLTIuNSAyNC4xLTYuNCAzNS4xLTExLjVjLTIuMS0xMC44LTMuMS0yMS45LTMuMS0zMy4zYzAtODAuMyA1My44LTE0OCAxMjcuMy0xNjkuMmMuNS0yLjIgLjctNC41IC43LTYuOGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMnpNNDMyIDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTE2LTIwOHY0OGg0OGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkg0NDh2NDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMzg0SDM2OGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmg0OFYzMDRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGx1Z0NpcmNsZVhtYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDBDNzguMyAwIDY0IDE0LjMgNjQgMzJ2OTZoNjRWMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTI4OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY5Nmg2NFYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMydjMyYzAgNzcuNCA1NSAxNDIgMTI4IDE1Ni44VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjQxMi44YzEyLjMtMi41IDI0LjEtNi40IDM1LjEtMTEuNWMtMi4xLTEwLjgtMy4xLTIxLjktMy4xLTMzLjNjMC04MC4zIDUzLjgtMTQ4IDEyNy4zLTE2OS4yYy41LTIuMiAuNy00LjUgLjctNi44YzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyek00MzIgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN0w0NTQuNiAzNjhsMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBMNDMyIDM5MC42bC0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZMNDA5LjQgMzY4bC0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEw0MzIgMzQ1LjRsMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGx1ZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAwQzc4LjMgMCA2NCAxNC4zIDY0IDMydjk2aDY0VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0yODggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2OTZoNjRWMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTMyIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnYzMmMwIDc3LjQgNTUgMTQyIDEyOCAxNTYuOFY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY0MTIuOEMyOTcgMzk4IDM1MiAzMzMuNCAzNTIgMjU2VjIyNGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGx1c01pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlYxNDRINDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJIMTYwVjMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjIwOEgzMzZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMjI0VjMyek0wIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMkgzNTJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4MGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlYyMjRINDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJIMTkyVjQzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjI4OEg0MDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMjU2VjgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQb2RjYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxOS40IDM3MmM0OC41LTMxLjMgODAuNi04NS45IDgwLjYtMTQ4YzAtOTcuMi03OC44LTE3Ni0xNzYtMTc2UzQ4IDEyNi44IDQ4IDIyNGMwIDYyLjEgMzIuMSAxMTYuNiA4MC42IDE0OGMxLjIgMTcuMyA0IDM4IDcuMiA1Ny4xbC4yIDFDNTYgMzk1LjggMCAzMTYuNSAwIDIyNEMwIDEwMC4zIDEwMC4zIDAgMjI0IDBTNDQ4IDEwMC4zIDQ0OCAyMjRjMCA5Mi41LTU2IDE3MS45LTEzNiAyMDYuMWwuMi0xLjFjMy4xLTE5LjIgNi0zOS44IDcuMi01N3ptLTIuMy0zOC4xYy0xLjYtNS43LTMuOS0xMS4xLTctMTYuMmMtNS44LTkuNy0xMy41LTE3LTIxLjktMjIuNGMxOS41LTE3LjYgMzEuOC00MyAzMS44LTcxLjNjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZjMCAyOC4zIDEyLjMgNTMuOCAzMS44IDcxLjNjLTguNCA1LjQtMTYuMSAxMi43LTIxLjkgMjIuNGMtMy4xIDUuMS01LjQgMTAuNS03IDE2LjJDOTkuOCAzMDcuNSA4MCAyNjggODAgMjI0YzAtNzkuNSA2NC41LTE0NCAxNDQtMTQ0czE0NCA2NC41IDE0NCAxNDRjMCA0NC0xOS44IDgzLjUtNTAuOSAxMDkuOXpNMjI0IDMxMmMzMi45IDAgNjQgOC42IDY0IDQzLjhjMCAzMy0xMi45IDEwNC4xLTIwLjYgMTMyLjljLTUuMSAxOS0yNC41IDIzLjQtNDMuNCAyMy40cy0zOC4yLTQuNC00My40LTIzLjRjLTcuOC0yOC41LTIwLjYtOTkuNy0yMC42LTEzMi44YzAtMzUuMSAzMS4xLTQzLjggNjQtNDMuOHptMC0xNDRhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBvb1N0b3JtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzNi45IC4yYy01LjUtLjctMTEgMS40LTE0LjUgNS43cy00LjYgMTAuMS0yLjggMTUuM2MyLjggOC4yIDQuMyAxNi45IDQuMyAyNi4xYzAgMjEuNy04LjUgMzcuMi0yMS45IDQ3LjZjLTEzLjggMTAuOC0zNCAxNy01Ny44IDE3SDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRjMCAxMi4yIDMuNCAyMy41IDkuMyAzMy4yQzMxLjcgMjE2LjIgMCAyNTIuNCAwIDI5NmMwIDQwLjkgMjggNzUuNCA2NS44IDg1LjJjLTUuMy0xOC41IDEtMzguNSAxNi4yLTUwLjdsMTYwLTEyOGMxNy42LTE0LjEgNDIuNi0xNCA2MC4yIC4yczIyLjggMzguNiAxMi44IDU4LjhMMjg1LjcgMzIwSDMwNGMyMC40IDAgMzguNSAxMi45IDQ1LjMgMzIuMWMzLjcgMTAuNiAzLjUgMjEuOCAwIDMxLjlIMzYwYzQ4LjYgMCA4OC0zOS40IDg4LTg4YzAtNDMuNi0zMS43LTc5LjgtNzMuMy04Ni44YzUuOS05LjcgOS4zLTIxLjEgOS4zLTMzLjJjMC0zNS4zLTI4LjctNjQtNjQtNjRoLTEuNGMuOS01LjQgMS40LTEwLjkgMS40LTE2LjZjMC00OC43LTM2LjEtODguOS04My4xLTk1LjJ6bTQ1LjEgMjI3LjRjLTUuOC00LjctMTQuMi00LjctMjAuMS0uMWwtMTYwIDEyOGMtNS4zIDQuMi03LjQgMTEuNC01LjEgMTcuOHM4LjMgMTAuNyAxNS4xIDEwLjdoNzAuMUwxMjkuNyA0ODguOGMtMy40IDYuNy0xLjYgMTQuOSA0LjMgMTkuNnMxNC4yIDQuNyAyMC4xIC4xbDE2MC0xMjhjNS4zLTQuMiA3LjQtMTEuNCA1LjEtMTcuOHMtOC4zLTEwLjctMTUuMS0xMC43SDIzMy45bDUyLjQtMTA0LjhjMy40LTYuNyAxLjYtMTQuOS00LjMtMTkuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUG9vIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI2OC45IC45Yy01LjUtLjctMTEgMS40LTE0LjUgNS43cy00LjYgMTAuMS0yLjggMTUuNGMyLjggOC4yIDQuMyAxNi45IDQuMyAyNi4xYzAgNDQuMS0zNS43IDc5LjktNzkuOCA4MEgxNjBjLTM1LjMgMC02NCAyOC43LTY0IDY0YzAgMTkuMSA4LjQgMzYuMyAyMS43IDQ4SDEwNGMtMzkuOCAwLTcyIDMyLjItNzIgNzJjMCAyMy4yIDExIDQzLjggMjggNTdjLTM0LjEgNS43LTYwIDM1LjMtNjAgNzFjMCAzOS44IDMyLjIgNzIgNzIgNzJINDQwYzM5LjggMCA3Mi0zMi4yIDcyLTcyYzAtMzUuNy0yNS45LTY1LjMtNjAtNzFjMTctMTMuMiAyOC0zMy44IDI4LTU3YzAtMzkuOC0zMi4yLTcyLTcyLTcySDM5NC4zYzEzLjMtMTEuNyAyMS43LTI4LjkgMjEuNy00OGMwLTM1LjMtMjguNy02NC02NC02NGgtNS41YzMuNS0xMCA1LjUtMjAuOCA1LjUtMzJjMC00OC42LTM2LjItODguOC04My4xLTk1LjF6TTE5MiAyNTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em05NiAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem02NCAxMDguM2MwIDIuNC0uNyA0LjgtMi4yIDYuN2MtOC4yIDEwLjUtMzkuNSA0NS05My44IDQ1cy04NS42LTM0LjYtOTMuOC00NWMtMS41LTEuOS0yLjItNC4zLTIuMi02LjdjMC02LjggNS41LTEyLjMgMTIuMy0xMi4zSDMzOS43YzYuOCAwIDEyLjMgNS41IDEyLjMgMTIuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUG9vcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTQuNCA2LjZjMy41LTQuMyA5LTYuNSAxNC41LTUuN0MzMTUuOCA3LjIgMzUyIDQ3LjQgMzUyIDk2YzAgMTEuMi0xLjkgMjItNS41IDMySDM1MmMzNS4zIDAgNjQgMjguNyA2NCA2NGMwIDE5LjEtOC40IDM2LjMtMjEuNyA0OEg0MDhjMzkuOCAwIDcyIDMyLjIgNzIgNzJjMCAyMy4yLTExIDQzLjgtMjggNTdjMzQuMSA1LjcgNjAgMzUuMyA2MCA3MWMwIDM5LjgtMzIuMiA3Mi03MiA3Mkg3MmMtMzkuOCAwLTcyLTMyLjItNzItNzJjMC0zNS43IDI1LjktNjUuMyA2MC03MWMtMTctMTMuMi0yOC0zMy44LTI4LTU3YzAtMzkuOCAzMi4yLTcyIDcyLTcyaDEzLjdDMTA0LjQgMjI4LjMgOTYgMjExLjEgOTYgMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0aDE2LjJjNDQuMS0uMSA3OS44LTM1LjkgNzkuOC04MGMwLTkuMi0xLjUtMTcuOS00LjMtMjYuMWMtMS44LTUuMi0uOC0xMS4xIDIuOC0xNS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQb3dlck9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzJ6TTE0My41IDEyMC42YzEzLjYtMTEuMyAxNS40LTMxLjUgNC4xLTQ1LjFzLTMxLjUtMTUuNC00NS4xLTQuMUM0OS43IDExNS40IDE2IDE4MS44IDE2IDI1NmMwIDEzMi41IDEwNy41IDI0MCAyNDAgMjQwczI0MC0xMDcuNSAyNDAtMjQwYzAtNzQuMi0zMy44LTE0MC42LTg2LjYtMTg0LjZjLTEzLjYtMTEuMy0zMy44LTkuNC00NS4xIDQuMXMtOS40IDMzLjggNC4xIDQ1LjFjMzguOSAzMi4zIDYzLjUgODEgNjMuNSAxMzUuNGMwIDk3LjItNzguOCAxNzYtMTc2IDE3NnMtMTc2LTc4LjgtMTc2LTE3NmMwLTU0LjQgMjQuNy0xMDMuMSA2My41LTEzNS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQcmVzY3JpcHRpb25Cb3R0bGVNZWRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwSDM1MmMxNy43IDAgMzIgMTQuMyAzMiAzMlY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkgzMkMxNC4zIDk2IDAgODEuNyAwIDY0VjMyem0zMiA5NkgzNTJWNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0SDk2Yy0zNS4zIDAtNjQtMjguNy02NC02NFYxMjh6TTE2MCAyNDB2NDhIMTEyYy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDQ4djQ4YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzUyaDQ4YzguOCAwIDE2LTcuMiAxNi0xNlYzMDRjMC04LjgtNy4yLTE2LTE2LTE2SDIyNFYyNDBjMC04LjgtNy4yLTE2LTE2LTE2SDE3NmMtOC44IDAtMTYgNy4yLTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQcmVzY3JpcHRpb25Cb3R0bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBIMzUyYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMySDMyQzE0LjMgOTYgMCA4MS43IDAgNjRWMzJ6bTMyIDk2SDM1MlY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRIOTZjLTM1LjMgMC02NC0yOC43LTY0LTY0VjQxNkgxNDRjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMzJWMzIwSDE0NGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgzMlYyMjRIMTQ0YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDMyVjEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHJlc2NyaXB0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyVjE5MnY5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjIyNGg1MC43bDEyOCAxMjhMMTM3LjQgNDU3LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMjg4IDM5Ny4zIDM5My40IDUwMi42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMzMzLjMgMzUyIDQzOC42IDI0Ni42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDI4OCAzMDYuN2wtODUuOC04NS44QzI1MS40IDIwOS4xIDI4OCAxNjQuOCAyODggMTEyQzI4OCA1MC4xIDIzNy45IDAgMTc2IDBIMzJ6TTE3NiAxNjBINjRWNjRIMTc2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQcmludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMEM5Mi43IDAgNjQgMjguNyA2NCA2NHY5Nmg2NFY2NEgzNTQuN0wzODQgOTMuM1YxNjBoNjRWOTMuM2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w0MDAgMTguN0MzODggNi43IDM3MS43IDAgMzU0LjcgMEgxMjh6TTM4NCAzNTJ2MzIgNjRIMTI4VjM4NCAzNjggMzUySDM4NHptNjQgMzJoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMkg2NHY2NGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMzg0ek00MzIgMjQ4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHVtcE1lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDMydjk2SDI1NlY5Nmg2MC4xYzQuMiAwIDguMyAxLjcgMTEuMyA0LjdsMzMuOSAzMy45YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMzcyLjcgNTUuNGMtMTUtMTUtMzUuNC0yMy40LTU2LjYtMjMuNEgyNTZjMC0xNy43LTE0LjMtMzItMzItMzJIMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMTE3LjQgMTYwYy0zMy4zIDAtNjEgMjUuNS02My44IDU4LjdMMzUgNDQyLjdDMzEuOSA0ODAgNjEuMyA1MTIgOTguOCA1MTJIMjg1LjJjMzcuNCAwIDY2LjktMzIgNjMuOC02OS4zbC0xOC43LTIyNGMtMi44LTMzLjItMzAuNS01OC43LTYzLjgtNTguN0gxMTcuNHpNMjE2IDI4MHYzMmgzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyMTZ2MzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMzYwSDEzNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGgzMlYyODBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHVtcFNvYXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDMydjk2SDI1NlY5Nmg2MC4xYzQuMiAwIDguMyAxLjcgMTEuMyA0LjdsMzMuOSAzMy45YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMzcyLjcgNTUuNGMtMTUtMTUtMzUuNC0yMy40LTU2LjYtMjMuNEgyNTZjMC0xNy43LTE0LjMtMzItMzItMzJIMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMTE3LjQgMTYwYy0zMy4zIDAtNjEgMjUuNS02My44IDU4LjdMMzUgNDQyLjdDMzEuOSA0ODAgNjEuMyA1MTIgOTguOCA1MTJIMjg1LjJjMzcuNCAwIDY2LjktMzIgNjMuOC02OS4zbC0xOC43LTIyNGMtMi44LTMzLjItMzAuNS01OC43LTYzLjgtNTguN0gxMTcuNHpNMjU2IDM2MGMwIDM1LjMtMjguNyA1Ni02NCA1NnMtNjQtMjAuNy02NC01NmMwLTMyLjUgMzctODAuOSA1MC45LTk3LjljMy4yLTMuOSA4LjEtNi4xIDEzLjEtNi4xczkuOSAyLjIgMTMuMSA2LjFDMjE5IDI3OS4xIDI1NiAzMjcuNSAyNTYgMzYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQdXp6bGVQaWVjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMTA0LjhjMC05LjItNS44LTE3LjMtMTMuMi0yMi44QzE2Ny4yIDczLjMgMTYwIDYxLjMgMTYwIDQ4YzAtMjYuNSAyOC43LTQ4IDY0LTQ4czY0IDIxLjUgNjQgNDhjMCAxMy4zLTcuMiAyNS4zLTE4LjggMzRjLTcuNCA1LjUtMTMuMiAxMy42LTEzLjIgMjIuOGMwIDEyLjggMTAuNCAyMy4yIDIzLjIgMjMuMkgzMzZjMjYuNSAwIDQ4IDIxLjUgNDggNDh2NTYuOGMwIDEyLjggMTAuNCAyMy4yIDIzLjIgMjMuMmM5LjIgMCAxNy4zLTUuOCAyMi44LTEzLjJjOC43LTExLjYgMjAuNy0xOC44IDM0LTE4LjhjMjYuNSAwIDQ4IDI4LjcgNDggNjRzLTIxLjUgNjQtNDggNjRjLTEzLjMgMC0yNS4zLTcuMi0zNC0xOC44Yy01LjUtNy40LTEzLjYtMTMuMi0yMi44LTEzLjJjLTEyLjggMC0yMy4yIDEwLjQtMjMuMiAyMy4yVjQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEgyNzkuMmMtMTIuOCAwLTIzLjItMTAuNC0yMy4yLTIzLjJjMC05LjIgNS44LTE3LjMgMTMuMi0yMi44YzExLjYtOC43IDE4LjgtMjAuNyAxOC44LTM0YzAtMjYuNS0yOC43LTQ4LTY0LTQ4cy02NCAyMS41LTY0IDQ4YzAgMTMuMyA3LjIgMjUuMyAxOC44IDM0YzcuNCA1LjUgMTMuMiAxMy42IDEzLjIgMjIuOGMwIDEyLjgtMTAuNCAyMy4yLTIzLjIgMjMuMkg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMzQzLjJDMCAzMzAuNCAxMC40IDMyMCAyMy4yIDMyMGM5LjIgMCAxNy4zIDUuOCAyMi44IDEzLjJDNTQuNyAzNDQuOCA2Ni43IDM1MiA4MCAzNTJjMjYuNSAwIDQ4LTI4LjcgNDgtNjRzLTIxLjUtNjQtNDgtNjRjLTEzLjMgMC0yNS4zIDcuMi0zNCAxOC44QzQwLjUgMjUwLjIgMzIuNCAyNTYgMjMuMiAyNTZDMTAuNCAyNTYgMCAyNDUuNiAwIDIzMi44VjE3NmMwLTI2LjUgMjEuNS00OCA0OC00OEgxNjguOGMxMi44IDAgMjMuMi0xMC40IDIzLjItMjMuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAyNTZjMCA4OC40IDcxLjYgMTYwIDE2MCAxNjBjMjguOSAwIDU2LTcuNyA3OS40LTIxLjFsLTcyLTg2LjRjLTExLjMtMTMuNi05LjUtMzMuOCA0LjEtNDUuMXMzMy44LTkuNSA0NS4xIDQuMWw3MC45IDg1LjFDMzcxLjkgMzI1LjggMzg0IDI5Mi4zIDM4NCAyNTZjMC04OC40LTcxLjYtMTYwLTE2MC0xNjBTNjQgMTY3LjYgNjQgMjU2ek0zNDQuOSA0NDQuNkMzMTAgNDY3IDI2OC41IDQ4MCAyMjQgNDgwQzEwMC4zIDQ4MCAwIDM3OS43IDAgMjU2UzEwMC4zIDMyIDIyNCAzMnMyMjQgMTAwLjMgMjI0IDIyNGMwIDU2LjEtMjAuNiAxMDcuNC01NC43IDE0Ni43bDQ3LjMgNTYuOGMxMS4zIDEzLjYgOS41IDMzLjgtNC4xIDQ1LjFzLTMzLjggOS41LTQ1LjEtNC4xbC00Ni42LTU1Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVFyY29kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMyaDk2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MHpNNjQgOTZ2NjRoNjRWOTZINjR6TTAgMzM2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDk2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYzMzZ6bTY0IDE2djY0aDY0VjM1Mkg2NHpNMzA0IDMyaDk2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDMwNGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDh6bTgwIDY0SDMyMHY2NGg2NFY5NnpNMjU2IDMwNGMwLTguOCA3LjItMTYgMTYtMTZoNjRjOC44IDAgMTYgNy4yIDE2IDE2czcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZzNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnY5NmMwIDguOC03LjIgMTYtMTYgMTZIMzY4Yy04LjggMC0xNi03LjItMTYtMTZzLTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2djY0YzAgOC44LTcuMiAxNi0xNiAxNkgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNlYzMDR6TTM2OCA0ODBhMTYgMTYgMCAxIDEgMC0zMiAxNiAxNiAwIDEgMSAwIDMyem02NCAwYTE2IDE2IDAgMSAxIDAtMzIgMTYgMTYgMCAxIDEgMCAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUXVlc3Rpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODAgMTYwYzAtMzUuMyAyOC43LTY0IDY0LTY0aDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0djMuNmMwIDIxLjgtMTEuMSA0Mi4xLTI5LjQgNTMuOGwtNDIuMiAyNy4xYy0yNS4yIDE2LjItNDAuNCA0NC4xLTQwLjQgNzRWMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ2LTEuNGMwLTguMiA0LjItMTUuOCAxMS0yMC4ybDQyLjItMjcuMWMzNi42LTIzLjYgNTguOC02NC4xIDU4LjgtMTA3LjdWMTYwYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4SDE0NEM3My4zIDMyIDE2IDg5LjMgMTYgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6bTgwIDMyMGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVF1b3RlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDIxNkMwIDE0OS43IDUzLjcgOTYgMTIwIDk2aDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJoLThjLTMwLjkgMC01NiAyNS4xLTU2IDU2djhoNjRjMzUuMyAwIDY0IDI4LjcgNjQgNjR2NjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjMyMCAyODggMjE2em0yNTYgMGMwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMGg4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyaC04Yy0zMC45IDAtNTYgMjUuMS01NiA1NnY4aDY0YzM1LjMgMCA2NCAyOC43IDY0IDY0djY0YzAgMzUuMy0yOC43IDY0LTY0IDY0SDMyMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMzIwIDI4OCAyMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVF1b3RlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDI5NmMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGgtOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmg4YzMwLjkgMCA1Ni0yNS4xIDU2LTU2di04SDMyMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTYwYzAtMzUuMyAyOC43LTY0IDY0LTY0aDY0YzM1LjMgMCA2NCAyOC43IDY0IDY0djMyIDMyIDcyem0tMjU2IDBjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBINjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJoOGMzMC45IDAgNTYtMjUuMSA1Ni01NnYtOEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTYwYzAtMzUuMyAyOC43LTY0IDY0LTY0aDY0YzM1LjMgMCA2NCAyOC43IDY0IDY0djMyIDMyIDcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWMjg4IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjMyMGg5NS4zTDI2MS44IDQ2Ni40YzEwLjEgMTQuNSAzMC4xIDE4IDQ0LjYgNy45czE4LTMwLjEgNy45LTQ0LjZMMjMwLjEgMzA5LjVDMjgyLjggMjg4LjEgMzIwIDIzNi40IDMyMCAxNzZjMC03OS41LTY0LjUtMTQ0LTE0NC0xNDRINjR6TTE3NiAyNTZINjRWOTZIMTc2YzQ0LjIgMCA4MCAzNS44IDgwIDgwcy0zNS44IDgwLTgwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSYWRpYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE2IDE4Ni43Yy0yMy45IDEzLjgtNDAgMzkuNy00MCA2OS4zTDMyIDI1NkMxNC4zIDI1Ni0uMiAyNDEuNiAyIDIyNC4xQzEwLjcgMTU0IDQ3LjggOTIuNyAxMDEuMyA1MmMxNC4xLTEwLjcgMzMuOC01LjMgNDIuNyAxMGw3MiAxMjQuN3pNMjU2IDMzNmMxNC42IDAgMjguMi0zLjkgNDAtMTAuN2w3MiAxMjQuOGM4LjggMTUuMyAzLjcgMzUuMS0xMi42IDQxLjljLTMwLjYgMTIuOS02NC4yIDIwLTk5LjQgMjBzLTY4LjktNy4xLTk5LjQtMjBjLTE2LjMtNi45LTIxLjQtMjYuNi0xMi42LTQxLjlsNzItMTI0LjhjMTEuOCA2LjggMjUuNCAxMC43IDQwIDEwLjd6bTIyNC04MGwtMTQ0IDBjMC0yOS42LTE2LjEtNTUuNS00MC02OS4zTDM2OCA2MmM4LjgtMTUuMyAyOC42LTIwLjcgNDIuNy0xMGM1My42IDQwLjcgOTAuNiAxMDIgOTkuNCAxNzIuMWMyLjIgMTcuNS0xMi40IDMxLjktMzAgMzEuOXpNMjU2IDIwOGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJhZGlvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NC44IDQ3YzEyLjctMy43IDIwLTE3LjEgMTYuMy0yOS44UzQ5NC0yLjggNDgxLjIgMUw1MS43IDEyNi45Yy05LjQgMi43LTE3LjkgNy4zLTI1LjEgMTMuMkMxMC41IDE1MS43IDAgMTcwLjYgMCAxOTJ2NFYzMDQgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFYxOTJjMC0zNS4zLTI4LjctNjQtNjQtNjRIMjE4LjVMNDk0LjggNDd6TTM2OCAyNDBhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6TTgwIDI1NmMwLTguOCA3LjItMTYgMTYtMTZoOTZjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIOTZjLTguOCAwLTE2LTcuMi0xNi0xNnpNNjQgMzIwYzAtOC44IDcuMi0xNiAxNi0xNkgyMDhjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNnptMTYgNjRjMC04LjggNy4yLTE2IDE2LTE2aDk2YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDk2Yy04LjggMC0xNi03LjItMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJhaW5ib3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDk2QzE3OC42IDk2IDY0IDIxMC42IDY0IDM1MnY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzNTJDMCAxNzUuMyAxNDMuMyAzMiAzMjAgMzJzMzIwIDE0My4zIDMyMCAzMjB2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzUyQzU3NiAyMTAuNiA0NjEuNCA5NiAzMjAgOTZ6bTAgMTkyYy0zNS4zIDAtNjQgMjguNy02NCA2NHY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzNTJjMC03MC43IDU3LjMtMTI4IDEyOC0xMjhzMTI4IDU3LjMgMTI4IDEyOHY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzNTJjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTE2MCAzNTJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzUyYzAtMTIzLjcgMTAwLjMtMjI0IDIyNC0yMjRzMjI0IDEwMC4zIDIyNCAyMjR2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzUyYzAtODguNC03MS42LTE2MC0xNjAtMTYwcy0xNjAgNzEuNi0xNjAgMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSYW5raW5nU3RhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTMuOCA1NC4xTDMzMC4yIDYuM2MtMy45LTguMy0xNi4xLTguNi0yMC40IDBMMjg2LjIgNTQuMWwtNTIuMyA3LjVjLTkuMyAxLjQtMTMuMyAxMi45LTYuNCAxOS44bDM4IDM3LTkgNTIuMWMtMS40IDkuMyA4LjIgMTYuNSAxNi44IDEyLjJsNDYuOS0yNC44IDQ2LjYgMjQuNGM4LjYgNC4zIDE4LjMtMi45IDE2LjgtMTIuMmwtOS01Mi4xIDM4LTM2LjZjNi44LTYuOCAyLjktMTguMy02LjQtMTkuOGwtNTIuMy03LjV6TTI1NiAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMkgzODRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjg4YzAtMTcuNy0xNC4zLTMyLTMyLTMySDI1NnpNMzIgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMlY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJIMTYwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMnptNDE2IDk2djY0YzAgMTcuNyAxNC4zIDMyIDMyIDMySDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMlY0MTZjMC0xNy43LTE0LjMtMzItMzItMzJINDgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVjZWlwdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAyLjJDMjIuNS0xLjcgMzIuNS0uMyAzOS42IDUuOEw4MCA0MC40IDEyMC40IDUuOGM5LTcuNyAyMi4zLTcuNyAzMS4yIDBMMTkyIDQwLjQgMjMyLjQgNS44YzktNy43IDIyLjMtNy43IDMxLjIgMEwzMDQgNDAuNCAzNDQuNCA1LjhjNy4xLTYuMSAxNy4xLTcuNSAyNS42LTMuNnMxNCAxMi40IDE0IDIxLjhWNDg4YzAgOS40LTUuNSAxNy45LTE0IDIxLjhzLTE4LjUgMi41LTI1LjYtMy42TDMwNCA0NzEuNmwtNDAuNCAzNC42Yy05IDcuNy0yMi4zIDcuNy0zMS4yIDBMMTkyIDQ3MS42bC00MC40IDM0LjZjLTkgNy43LTIyLjMgNy43LTMxLjIgMEw4MCA0NzEuNiAzOS42IDUwNi4yYy03LjEgNi4xLTE3LjEgNy41LTI1LjYgMy42UzAgNDk3LjQgMCA0ODhWMjRDMCAxNC42IDUuNSA2LjEgMTQgMi4yek05NiAxNDRjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZIMjg4YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDk2ek04MCAzNTJjMCA4LjggNy4yIDE2IDE2IDE2SDI4OGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkg5NmMtOC44IDAtMTYgNy4yLTE2IDE2ek05NiAyNDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZIMjg4YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWNvcmRWaW55bCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTI1Ni05NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptMCAyMjRhMTI4IDEyOCAwIDEgMCAwLTI1NiAxMjggMTI4IDAgMSAwIDAgMjU2em0wLTk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVjdGFuZ2xlQWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRINTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek0yMjkuNSAxNzMuM2w3MiAxNDRjNS45IDExLjkgMS4xIDI2LjMtMTAuNyAzMi4ycy0yNi4zIDEuMS0zMi4yLTEwLjdMMjUzLjIgMzI4SDE2Mi44bC01LjQgMTAuN2MtNS45IDExLjktMjAuMyAxNi43LTMyLjIgMTAuN3MtMTYuNy0yMC4zLTEwLjctMzIuMmw3Mi0xNDRjNC4xLTguMSAxMi40LTEzLjMgMjEuNS0xMy4zczE3LjQgNS4xIDIxLjUgMTMuM3pNMjA4IDIzNy43TDE4Ni44IDI4MGg0Mi4zTDIwOCAyMzcuN3pNMzkyIDI1NmEyNCAyNCAwIDEgMCAwIDQ4IDI0IDI0IDAgMSAwIDAtNDh6bTI0LTQzLjlWMTg0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR2OTYgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRjLTYuNiAwLTEyLjYtMi43LTE3LTdjLTkuNCA0LjUtMTkuOSA3LTMxIDdjLTM5LjggMC03Mi0zMi4yLTcyLTcyczMyLjItNzIgNzItNzJjOC40IDAgMTYuNSAxLjQgMjQgNC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWN0YW5nbGVMaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJINTEyYzM1LjMgMCA2NCAyOC43IDY0IDY0VjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWOTZ6TTEyOCAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0zMi0xMjhhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTI4IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTk2LTI0OGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNEg0NDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMjI0em0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0SDQ0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgyMjR6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRINDQ4YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDIyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVjdGFuZ2xlWG1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRINDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek0xNzUgMTc1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDQ3IDQ3IDQ3LTQ3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNDcgNDcgNDcgNDdjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDctNDctNDcgNDdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNDctNDctNDctNDdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWN5Y2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NC43IDQ1LjFDMTkyLjIgMTcgMjIzIDAgMjU2IDBzNjMuOCAxNyA4MS4zIDQ1LjFsMzguNiA2MS43IDI3LTE1LjZjOC40LTQuOSAxOC45LTQuMiAyNi42IDEuN3MxMS4xIDE1LjkgOC42IDI1LjNsLTIzLjQgODcuNGMtMy40IDEyLjgtMTYuNiAyMC40LTI5LjQgMTdsLTg3LjQtMjMuNGMtOS40LTIuNS0xNi4zLTEwLjQtMTcuNi0yMHMzLjQtMTkuMSAxMS44LTIzLjlsMjguNC0xNi40TDI4MyA3OWMtNS44LTkuMy0xNi0xNS0yNy0xNXMtMjEuMiA1LjctMjcgMTVsLTE3LjUgMjhjLTkuMiAxNC44LTI4LjYgMTkuNS00My42IDEwLjVjLTE1LjMtOS4yLTIwLjItMjkuMi0xMC43LTQ0LjRsMTcuNS0yOHpNNDI5LjUgMjUxLjljMTUtOSAzNC40LTQuMyA0My42IDEwLjVsMjQuNCAzOS4xYzkuNCAxNS4xIDE0LjQgMzIuNCAxNC42IDUwLjJjLjMgNTMuMS00Mi43IDk2LjQtOTUuOCA5Ni40TDMyMCA0NDh2MzJjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDY0LTY0YzYuOS02LjkgMTcuMi04LjkgMjYuMi01LjJzMTQuOCAxMi41IDE0LjggMjIuMnYzMmw5Ni4yIDBjMTcuNiAwIDMxLjktMTQuNCAzMS44LTMyYzAtNS45LTEuNy0xMS43LTQuOC0xNi43bC0yNC40LTM5LjFjLTkuNS0xNS4yLTQuNy0zNS4yIDEwLjctNDQuNHptLTM2NC42LTMxTDM2IDIwNC4yYy04LjQtNC45LTEzLjEtMTQuMy0xMS44LTIzLjlzOC4yLTE3LjUgMTcuNi0yMGw4Ny40LTIzLjRjMTIuOC0zLjQgMjYgNC4yIDI5LjQgMTdMMTgyIDI0MS4yYzIuNSA5LjQtLjkgMTkuMy04LjYgMjUuM3MtMTguMiA2LjYtMjYuNiAxLjdsLTI2LjUtMTUuM0w2OC44IDMzNS4zYy0zLjEgNS00LjggMTAuOC00LjggMTYuN2MtLjEgMTcuNiAxNC4yIDMyIDMxLjggMzJsMzIuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMi4yIDBDNDIuNyA0NDgtLjMgNDA0LjggMCAzNTEuNmMuMS0xNy44IDUuMS0zNS4xIDE0LjYtNTAuMmw1MC4zLTgwLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ2lzdGVyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2MCAxNTJjMC0xMy4zIDEwLjctMjQgMjQtMjRoODhjNDQuMiAwIDgwIDM1LjggODAgODBjMCAyOC0xNC40IDUyLjctMzYuMyA2N2wzNC4xIDc1LjFjNS41IDEyLjEgLjEgMjYuMy0xMS45IDMxLjhzLTI2LjMgLjEtMzEuOC0xMS45TDI2OC45IDI4OEgyMDh2NzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMjY0IDE1MnptNDggODhoNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMjA4djY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZXBlYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTUzIDQzLTk2IDk2LTk2SDMyMHYzMmMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42czI1LjcgMi4yIDM0LjktNi45bDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02LjlTMzIwIDE5LjEgMzIwIDMyVjY0SDE2MEM3MS42IDY0IDAgMTM1LjYgMCAyMjR6bTUxMiA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmMwIDUzLTQzIDk2LTk2IDk2SDE5MlYzNTJjMC0xMi45LTcuOC0yNC42LTE5LjgtMjkuNnMtMjUuNy0yLjItMzQuOSA2LjlsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOXMxOS44LTE2LjYgMTkuOC0yOS42VjQ0OEgzNTJjODguNCAwIDE2MC03MS42IDE2MC0xNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlcGx5QWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOS40IDM5LjVjLTkuMS05LjYtMjQuMy0xMC0zMy45LS45TDMzLjggMTczLjJjLTE5LjkgMTguOS0xOS45IDUwLjcgMCA2OS42TDE3NS41IDM3Ny40YzkuNiA5LjEgMjQuOCA4LjcgMzMuOS0uOXM4LjctMjQuOC0uOS0zMy45TDY2LjggMjA4IDIwOC41IDczLjRjOS42LTkuMSAxMC0yNC4zIC45LTMzLjl6TTM1MiA2NGMwLTEyLjYtNy40LTI0LjEtMTktMjkuMnMtMjUtMy0zNC40IDUuNGwtMTYwIDE0NGMtNi43IDYuMS0xMC42IDE0LjctMTAuNiAyMy44czMuOSAxNy43IDEwLjYgMjMuOGwxNjAgMTQ0YzkuNCA4LjUgMjIuOSAxMC42IDM0LjQgNS40czE5LTE2LjYgMTktMjkuMlYyODhoMzJjNTMgMCA5NiA0MyA5NiA5NmMwIDMwLjQtMTIuOCA0Ny45LTIyLjIgNTYuN2MtNS41IDUuMS05LjggMTItOS44IDE5LjVjMCAxMC45IDguOCAxOS43IDE5LjcgMTkuN2MyLjggMCA1LjYtLjYgOC4xLTEuOUM0OTQuNSA0NjcuOSA1NzYgNDE3LjMgNTc2IDMwNGMwLTk3LjItNzguOC0xNzYtMTc2LTE3NkgzNTJWNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlcGx5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwNSAzNC44YzExLjUgNS4xIDE5IDE2LjYgMTkgMjkuMnY2NEgzMzZjOTcuMiAwIDE3NiA3OC44IDE3NiAxNzZjMCAxMTMuMy04MS41IDE2My45LTEwMC4yIDE3NC4xYy0yLjUgMS40LTUuMyAxLjktOC4xIDEuOWMtMTAuOSAwLTE5LjctOC45LTE5LjctMTkuN2MwLTcuNSA0LjMtMTQuNCA5LjgtMTkuNWM5LjQtOC44IDIyLjItMjYuNCAyMi4yLTU2LjdjMC01My00My05Ni05Ni05NkgyMjR2NjRjMCAxMi42LTcuNCAyNC4xLTE5IDI5LjJzLTI1IDMtMzQuNC01LjRsLTE2MC0xNDRDMy45IDIyNS43IDAgMjE3LjEgMCAyMDhzMy45LTE3LjcgMTAuNi0yMy44bDE2MC0xNDRjOS40LTguNSAyMi45LTEwLjYgMzQuNC01LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlcHVibGljYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxOTJDMCAxMDMuNiA3MS42IDMyIDE2MCAzMkgzODRjODguNCAwIDE2MCA3MS42IDE2MCAxNjB2NjRIMFYxOTJ6bTQxNS45LTY0Yy0yLjQgMC00LjcgMS4zLTUuNyAzLjRsLTEyLjYgMjQuNi0yOC4yIDRjLTIuNCAuMy00LjQgMi01LjIgNC4ycy0uMSA0LjcgMS42IDYuM2wyMC40IDE5LjItNC44IDI3LjFjLS40IDIuMyAuNiA0LjcgMi41IDZzNC42IDEuNiA2LjcgLjVsMjUuMi0xMi44IDI1LjIgMTIuOGMyLjIgMS4xIDQuOCAuOSA2LjctLjVzMy0zLjcgMi41LTZsLTQuOC0yNy4xTDQ2NiAxNzAuNWMxLjctMS42IDIuNC00LjEgMS42LTYuM3MtMi44LTMuOS01LjItNC4ybC0yOC4yLTQtMTIuNi0yNC42Yy0xLjEtMi4xLTMuMy0zLjQtNS43LTMuNHptLTEzOC4zIDMuNGMtMS4xLTIuMS0zLjMtMy40LTUuNy0zLjRzLTQuNyAxLjMtNS43IDMuNGwtMTIuNiAyNC42LTI4LjIgNGMtMi40IC4zLTQuNCAyLTUuMiA0LjJzLS4xIDQuNyAxLjYgNi4zbDIwLjQgMTkuMi00LjggMjcuMWMtLjQgMi4zIC42IDQuNyAyLjUgNnM0LjYgMS42IDYuNyAuNWwyNS4yLTEyLjggMjUuMiAxMi44YzIuMiAxLjEgNC44IC45IDYuNy0uNXMzLTMuNyAyLjUtNmwtNC44LTI3LjFMMzIyIDE3MC41YzEuNy0xLjYgMi40LTQuMSAxLjYtNi4zcy0yLjgtMy45LTUuMi00LjJsLTI4LjItNC0xMi42LTI0LjZ6TTEyNy45IDEyOGMtMi40IDAtNC43IDEuMy01LjcgMy40bC0xMi42IDI0LjYtMjguMiA0Yy0yLjQgLjMtNC40IDItNS4yIDQuMnMtLjEgNC43IDEuNiA2LjNsMjAuNCAxOS4yLTQuOCAyNy4xYy0uNCAyLjMgLjYgNC43IDIuNSA2czQuNiAxLjYgNi43IC41bDI1LjItMTIuOCAyNS4yIDEyLjhjMi4yIDEuMSA0LjggLjkgNi43LS41czMtMy43IDIuNS02bC00LjgtMjcuMUwxNzggMTcwLjVjMS43LTEuNiAyLjQtNC4xIDEuNi02LjNzLTIuOC0zLjktNS4yLTQuMmwtMjguMi00LTEyLjYtMjQuNmMtMS4xLTIuMS0zLjMtMy40LTUuNy0zLjR6bS4xIDE2MEgzMjBoOTYgMzIgNjQgMzJ2MzIgODBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYzNTJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnY0OGMwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MFYzNTJINDQ4djMyIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMySDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzg0SDEyOHY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzg0IDI4OEgxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlc3Ryb29tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTgwIDQ4YTQ4IDQ4IDAgMSAxIDk2IDBBNDggNDggMCAxIDEgODAgNDh6bTQwIDMwNFY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzI1LjJjLTguMSA5LjItMjEuMSAxMy4yLTMzLjUgOS40Yy0xNi45LTUuMy0yNi4zLTIzLjItMjEtNDAuMWwzMC45LTk5LjFDNDQuOSAxNTUuMyA4MiAxMjggMTI0IDEyOGg4YzQyIDAgNzkuMSAyNy4zIDkxLjYgNjcuNGwzMC45IDk5LjFjNS4zIDE2LjktNC4xIDM0LjgtMjEgNDAuMWMtMTIuNCAzLjktMjUuNC0uMi0zMy41LTkuNFY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzUySDEyMHpNMzIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRWNDg4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjI0YzAtMTMuMyAxMC43LTI0IDI0LTI0ek00NjQgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNNDQwIDQ4MFYzODRINDIyLjJjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xbDktMjYuOWMtMy4yIDAtNi40LS41LTkuNS0xLjVjLTE2LjktNS4zLTI2LjMtMjMuMi0yMS00MC4xbDI5LjctOTUuMkM0MjguNCAxNTYuOSA0NjcuNiAxMjggNTEyIDEyOHM4My42IDI4LjkgOTYuOCA3MS4ybDI5LjcgOTUuMmM1LjMgMTYuOS00LjEgMzQuOC0yMSA0MC4xYy0zLjIgMS02LjQgMS41LTkuNSAxLjVsOSAyNi45YzMuNSAxMC40LTQuMyAyMS4xLTE1LjIgMjEuMUg1ODR2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzg0SDUwNHY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmV0d2VldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzIgNDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMTkyaDMyYzEyLjkgMCAyNC42LTcuOCAyOS42LTE5LjhzMi4yLTI1LjctNi45LTM0LjlsLTY0LTY0Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45czE2LjYgMTkuOCAyOS42IDE5LjhsMzIgMCAwIDEyOGMwIDUzIDQzIDk2IDk2IDk2SDI3MnpNMzA0IDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDExMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4SDQxNmMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsNjQtNjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlzLTE2LjYtMTkuOC0yOS42LTE5LjhsLTMyIDBWMTkyYzAtNTMtNDMtOTYtOTYtOTZMMzA0IDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSaWJib24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzMzLjIgMzIyLjhsMCAwLTEzMy45LTE0NiAwIDBMMTQ2IDExOC42YzcuOC01LjEgMzctMjIuNiA3OC0yMi42czcwLjIgMTcuNCA3OCAyMi42TDI0NS43IDE4MGw4NS42IDkzLjQgMjcuNC0yOS44YzE2LjMtMTcuNyAyNS4zLTQwLjkgMjUuMy02NVYxNDkuMWMwLTE5LTUuNi0zNy41LTE2LjEtNTMuM0wzMjcuOCAzNS42QzMxMi45IDEzLjQgMjg3LjkgMCAyNjEuMiAwaC03NmMtMjUuOCAwLTUwLjEgMTIuNS02NS4xIDMzLjVMODEuOSA4N0M3MC4zIDEwMy4yIDY0IDEyMi44IDY0IDE0Mi44VjE2NGMwIDIzLjIgOC40IDQ1LjYgMjMuNiA2My4xbDU2IDY0LjIgMCAwIDgzLjMgOTUuNiAwIDAgOTEuOCAxMDUuM2MxMCAxMS41IDI2LjggMTQuMyA0MCA2LjhsNTQuNS0zMS4xYzE3LjgtMTAuMiAyMS42LTM0LjMgNy43LTQ5LjRsLTg3LjctOTUuN3pNMjA1LjIgNDEwLjZsLTgzLjMtOTUuNkwyNy4xIDQxOC41Yy0xMy45IDE1LjEtMTAuMSAzOS4yIDcuNyA0OS40bDU1LjEgMzEuNWMxMyA3LjQgMjkuMyA0LjkgMzkuNC02LjFsNzUuOS04Mi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSaWdodEZyb21CcmFja2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3Ny45IDEwNS45TDUwMC43IDIyOC43YzcuMiA3LjIgMTEuMyAxNy4xIDExLjMgMjcuM3MtNC4xIDIwLjEtMTEuMyAyNy4zTDM3Ny45IDQwNi4xYy02LjQgNi40LTE1IDkuOS0yNCA5LjljLTE4LjcgMC0zMy45LTE1LjItMzMuOS0zMy45bDAtNjIuMS0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMjggMCAwLTYyLjFjMC0xOC43IDE1LjItMzMuOSAzMy45LTMzLjljOSAwIDE3LjYgMy42IDI0IDkuOXpNMTYwIDk2TDk2IDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy01MyAwLTk2LTQzLTk2LTk2TDAgMTI4QzAgNzUgNDMgMzIgOTYgMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmlnaHRMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDk2bDMyMCAwVjMyYzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsOTYgOTZjNiA2IDkuNCAxNC4xIDkuNCAyMi42cy0zLjQgMTYuNi05LjQgMjIuNmwtOTYgOTZjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45cy0xOS44LTE2LjYtMTkuOC0yOS42VjE2MEwzMiAxNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6TTQ4MCAzNTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMTYwdjY0YzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC05Ni05NmMtNi02LTkuNC0xNC4xLTkuNC0yMi42czMuNC0xNi42IDkuNC0yMi42bDk2LTk2YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45czE5LjggMTYuNiAxOS44IDI5LjZsMCA2NEg0ODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJpZ2h0TG9uZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzQuNSA0MTRjOC44IDMuOCAxOSAyIDI2LTQuNmwxNDQtMTM2YzQuOC00LjUgNy41LTEwLjggNy41LTE3LjRzLTIuNy0xMi45LTcuNS0xNy40bC0xNDQtMTM2Yy03LTYuNi0xNy4yLTguNC0yNi00LjZzLTE0LjUgMTIuNS0xNC41IDIybDAgNzJMMzIgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI4OCAwIDAgNzJjMCA5LjYgNS43IDE4LjIgMTQuNSAyMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmlnaHRUb0JyYWNrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE3LjkgMTA1LjlMMzQwLjcgMjI4LjdjNy4yIDcuMiAxMS4zIDE3LjEgMTEuMyAyNy4zcy00LjEgMjAuMS0xMS4zIDI3LjNMMjE3LjkgNDA2LjFjLTYuNCA2LjQtMTUgOS45LTI0IDkuOWMtMTguNyAwLTMzLjktMTUuMi0zMy45LTMzLjlsMC02Mi4xTDMyIDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMjggMCAwLTYyLjFjMC0xOC43IDE1LjItMzMuOSAzMy45LTMzLjljOSAwIDE3LjYgMy42IDI0IDkuOXpNMzUyIDQxNmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDBjNTMgMCA5NiA0MyA5NiA5NmwwIDI1NmMwIDUzLTQzIDk2LTk2IDk2bC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDIwOGMwIDcuOCA0LjQgMTguNyAxNy4xIDMwLjNDMTI2LjUgMjE0LjEgMTg4LjkgMjAwIDI1NiAyMDBzMTI5LjUgMTQuMSAxNzQuOSAzOC4zQzQ0My42IDIyNi43IDQ0OCAyMTUuOCA0NDggMjA4YzAtMTIuMy0xMC44LTMyLTQ3LjktNTAuNkMzNjQuOSAxMzkuOCAzMTQgMTI4IDI1NiAxMjhzLTEwOC45IDExLjgtMTQ0LjEgMjkuNEM3NC44IDE3NiA2NCAxOTUuNyA2NCAyMDh6bTE5MiA0MGMtNDcgMC04OS4zIDcuNi0xMjIuOSAxOS43QzE2Ni4zIDI4MC4yIDIwOC44IDI4OCAyNTYgMjg4czg5LjctNy44IDEyMi45LTIwLjNDMzQ1LjMgMjU1LjYgMzAzIDI0OCAyNTYgMjQ4ek0wIDIwOGMwLTQ5LjYgMzkuNC04NS44IDgzLjMtMTA3LjhDMTI5LjEgNzcuMyAxOTAuMyA2NCAyNTYgNjRzMTI2LjkgMTMuMyAxNzIuNyAzNi4yYzQzLjkgMjIgODMuMyA1OC4yIDgzLjMgMTA3Ljh2OTZjMCA0OS42LTM5LjQgODUuOC04My4zIDEwNy44QzM4Mi45IDQzNC43IDMyMS43IDQ0OCAyNTYgNDQ4cy0xMjYuOS0xMy4zLTE3Mi43LTM2LjJDMzkuNCAzODkuOCAwIDM1My42IDAgMzA0VjIwOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUm9hZEJhcnJpZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyNjYuM0wxNDkuMiA5Nkg2NFY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDA1LjIgOTZIMzMwLjhsLTUuNCAxMC43TDIzNC44IDI4OGg3NC4zbDUuNC0xMC43TDQwNS4yIDk2ek0zNjIuOCAyODhoNzQuM2w1LjQtMTAuN0w1MzMuMiA5Nkg0NTguOGwtNS40IDEwLjdMMzYyLjggMjg4ek0yMDIuOCA5NmwtNS40IDEwLjdMMTA2LjggMjg4aDc0LjNsNS40LTEwLjdMMjc3LjIgOTZIMjAyLjh6bTI4OCAxOTJINTc2VjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjUzLjdMNDkwLjggMjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSb2FkQnJpZGdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiAwSDYwOGMxNy43IDAgMzIgMTQuMyAzMiAzMlY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJIMzUyYy0xNy43IDAtMzItMTQuMy0zMi0zMlYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNDgwIDIwMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYyMjRjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTI0IDE4NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHY2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjM4NHpNNDgwIDQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHY2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjY0YzAtMTMuMy0xMC43LTI0LTI0LTI0ek0zMiA5NkgyODh2NjRIMjQ4djY0aDQwdjk2Yy01MyAwLTk2IDQzLTk2IDk2djY0YzAgMTcuNy0xNC4zIDMyLTMyIDMySDEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDE2YzAtNTMtNDMtOTYtOTYtOTZWMjI0SDcyVjE2MEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMTY4IDY0SDEyMHY2NGg4MFYxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJvYWRDaXJjbGVDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTMuMiAzMkgyODhWOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzMmg3NC44YzI3LjEgMCA1MS4zIDE3LjEgNjAuMyA0Mi42bDQyLjcgMTIwLjZjLTEwLjktMi4xLTIyLjItMy4yLTMzLjgtMy4yYy01OS41IDAtMTEyLjEgMjkuNi0xNDQgNzQuOFYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJjMi4zIDAgNC42LS4zIDYuOC0uN2MtNC41IDE1LjUtNi44IDMxLjgtNi44IDQ4LjdjMCA1LjQgLjIgMTAuNyAuNyAxNmwtLjcgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjRIODYuNkM1Ni41IDQ4MCAzMiA0NTUuNSAzMiA0MjUuNGMwLTYuMiAxLjEtMTIuNCAzLjEtMTguMkwxNTIuOSA3NC42QzE2MiA0OS4xIDE4Ni4xIDMyIDIxMy4yIDMyek0zNTIgMzY4YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIxMS4zLTQzLjNjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDQ4MCAzODUuNGwtMjguNy0yOC43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDcyLTcyYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSb2FkQ2lyY2xlRXhjbGFtYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEzLjIgMzJIMjg4Vjk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzJoNzQuOGMyNy4xIDAgNTEuMyAxNy4xIDYwLjMgNDIuNmw0Mi43IDEyMC42Yy0xMC45LTIuMS0yMi4yLTMuMi0zMy44LTMuMmMtNTkuNSAwLTExMi4xIDI5LjYtMTQ0IDc0LjhWMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyYzIuMyAwIDQuNi0uMyA2LjgtLjdjLTQuNSAxNS41LTYuOCAzMS44LTYuOCA0OC43YzAgNS40IC4yIDEwLjcgLjcgMTZsLS43IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0SDg2LjZDNTYuNSA0ODAgMzIgNDU1LjUgMzIgNDI1LjRjMC02LjIgMS4xLTEyLjQgMy4xLTE4LjJMMTUyLjkgNzQuNkMxNjIgNDkuMSAxODYuMSAzMiAyMTMuMiAzMnpNNDk2IDIyNGExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTAgMjQwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMC0xOTJjLTguOCAwLTE2IDcuMi0xNiAxNnY4MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjI4OGMwLTguOC03LjItMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJvYWRDaXJjbGVYbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTMuMiAzMkgyODhWOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzMmg3NC44YzI3LjEgMCA1MS4zIDE3LjEgNjAuMyA0Mi42bDQyLjcgMTIwLjZjLTEwLjktMi4xLTIyLjItMy4yLTMzLjgtMy4yYy01OS41IDAtMTEyLjEgMjkuNi0xNDQgNzQuOFYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJjMi4zIDAgNC42LS4zIDYuOC0uN2MtNC41IDE1LjUtNi44IDMxLjgtNi44IDQ4LjdjMCA1LjQgLjIgMTAuNyAuNyAxNmwtLjcgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjRIODYuNkM1Ni41IDQ4MCAzMiA0NTUuNSAzMiA0MjUuNGMwLTYuMiAxLjEtMTIuNCAzLjEtMTguMkwxNTIuOSA3NC42QzE2MiA0OS4xIDE4Ni4xIDMyIDIxMy4yIDMyek00OTYgMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMjIuNiAxNDRsMzYuNy0zNi43YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBMNDk2IDM0NS40bC0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZMNDczLjQgMzY4bC0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMEw0OTYgMzkwLjZsMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNkw1MTguNiAzNjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJvYWRMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAzMkgyMTMuMmMtMjcuMSAwLTUxLjMgMTcuMS02MC4zIDQyLjZMMzUuMSA0MDcuMmMtMi4xIDUuOS0zLjEgMTItMy4xIDE4LjJDMzIgNDU1LjUgNTYuNSA0ODAgODYuNiA0ODBIMjg4VjQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMydjY0aDMyVjM1MmMwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRWMjcyYzAtNTguMyA0NC42LTEwNi4yIDEwMS41LTExMS41TDQ4Ny4xIDc0LjZDNDc4IDQ5LjEgNDUzLjkgMzIgNDI2LjggMzJIMzUyVjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjMyem02NCAxOTJ2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTE3NiAxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnY0OEg0OTZWMjcyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0tODAgMzJ2NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg2MDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzUyYzAtMTcuNy0xNC4zLTMyLTMyLTMyVjI3MmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUm9hZFNwaWtlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAxMTYuOGMwLTE1LjggMjAuNS0yMiAyOS4zLTguOUwxOTIgMjU2VjExNi44YzAtMTUuOCAyMC41LTIyIDI5LjMtOC45TDMyMCAyNTZWMTE2LjhjMC0xNS44IDIwLjUtMjIgMjkuMy04LjlMNDQ4IDI1NlYxMTYuOGMwLTE1LjggMjAuNS0yMiAyOS4zLTguOUw2MDYuOCAzMDIuMmMxNC4yIDIxLjMtMS4xIDQ5LjctMjYuNiA0OS43SDUxMiA0NDggMzg0IDMyMCAyNTYgMTkyIDY0VjExNi44ek0zMiAzODRINjA4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAzMkgxODEuMmMtMjcuMSAwLTUxLjMgMTcuMS02MC4zIDQyLjZMMy4xIDQwNy4yQzEuMSA0MTMgMCA0MTkuMiAwIDQyNS40QzAgNDU1LjUgMjQuNSA0ODAgNTQuNiA0ODBIMjU2VjQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMydjY0SDUyMS40YzMwLjIgMCA1NC42LTI0LjUgNTQuNi01NC42YzAtNi4yLTEuMS0xMi40LTMuMS0xOC4yTDQ1NS4xIDc0LjZDNDQ2IDQ5LjEgNDIxLjkgMzIgMzk0LjggMzJIMzIwVjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjMyem02NCAxOTJ2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJvYm90IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjk2SDQ3MmMzOS44IDAgNzIgMzIuMiA3MiA3MlY0NDBjMCAzOS44LTMyLjIgNzItNzIgNzJIMTY4Yy0zOS44IDAtNzItMzIuMi03Mi03MlYxNjhjMC0zOS44IDMyLjItNzIgNzItNzJIMjg4VjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0yMDggMzg0Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDIwOHptOTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgzMDR6bTk2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZINDAwek0yNjQgMjU2YTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6bTE1MiA0MGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6TTQ4IDIyNEg2NFY0MTZINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjI3MmMwLTI2LjUgMjEuNS00OCA0OC00OHptNTQ0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh2OTZjMCAyNi41LTIxLjUgNDgtNDggNDhINTc2VjIyNGgxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUm9ja2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1Ni42IDM4NC45TDEyNS43IDM1NGMtOC41LTguNS0xMS41LTIwLjgtNy43LTMyLjJjMy04LjkgNy0yMC41IDExLjgtMzMuOEwyNCAyODhjLTguNiAwLTE2LjYtNC42LTIwLjktMTIuMXMtNC4yLTE2LjcgLjItMjQuMWw1Mi41LTg4LjVjMTMtMjEuOSAzNi41LTM1LjMgNjEuOS0zNS4zbDgyLjMgMGMyLjQtNCA0LjgtNy43IDcuMi0xMS4zQzI4OS4xLTQuMSA0MTEuMS04LjEgNDgzLjkgNS4zYzExLjYgMi4xIDIwLjYgMTEuMiAyMi44IDIyLjhjMTMuNCA3Mi45IDkuMyAxOTQuOC0xMTEuNCAyNzYuN2MtMy41IDIuNC03LjMgNC44LTExLjMgNy4ydjgyLjNjMCAyNS40LTEzLjQgNDktMzUuMyA2MS45bC04OC41IDUyLjVjLTcuNCA0LjQtMTYuNiA0LjUtMjQuMSAuMnMtMTIuMS0xMi4yLTEyLjEtMjAuOVYzODAuOGMtMTQuMSA0LjktMjYuNCA4LjktMzUuNyAxMS45Yy0xMS4yIDMuNi0yMy40IC41LTMxLjgtNy44ek0zODQgMTY4YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUm90YXRlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OC41IDIyNEg0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRWNzJjMC05LjcgNS44LTE4LjUgMTQuOC0yMi4yczE5LjMtMS43IDI2LjIgNS4yTDk4LjYgOTYuNmM4Ny42LTg2LjUgMjI4LjctODYuMiAzMTUuOCAxYzg3LjUgODcuNSA4Ny41IDIyOS4zIDAgMzE2LjhzLTIyOS4zIDg3LjUtMzE2LjggMGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGM2Mi41IDYyLjUgMTYzLjggNjIuNSAyMjYuMyAwczYyLjUtMTYzLjggMC0yMjYuM2MtNjIuMi02Mi4yLTE2Mi43LTYyLjUtMjI1LjMtMUwxODUgMTgzYzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJzLTEyLjUgMTQuOC0yMi4yIDE0LjhINDguNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUm90YXRlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDYzLjUgMjI0SDQ3MmMxMy4zIDAgMjQtMTAuNyAyNC0yNFY3MmMwLTkuNy01LjgtMTguNS0xNC44LTIyLjJzLTE5LjMtMS43LTI2LjIgNS4yTDQxMy40IDk2LjZjLTg3LjYtODYuNS0yMjguNy04Ni4yLTMxNS44IDFjLTg3LjUgODcuNS04Ny41IDIyOS4zIDAgMzE2LjhzMjI5LjMgODcuNSAzMTYuOCAwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwYy02Mi41IDYyLjUtMTYzLjggNjIuNS0yMjYuMyAwcy02Mi41LTE2My44IDAtMjI2LjNjNjIuMi02Mi4yIDE2Mi43LTYyLjUgMjI1LjMtMUwzMjcgMTgzYy02LjkgNi45LTguOSAxNy4yLTUuMiAyNi4yczEyLjUgMTQuOCAyMi4yIDE0LjhINDYzLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJvdGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDIuOSAxNDIuOWM2Mi4yLTYyLjIgMTYyLjctNjIuNSAyMjUuMy0xTDMyNyAxODNjLTYuOSA2LjktOC45IDE3LjItNS4yIDI2LjJzMTIuNSAxNC44IDIyLjIgMTQuOEg0NjMuNWMwIDAgMCAwIDAgMEg0NzJjMTMuMyAwIDI0LTEwLjcgMjQtMjRWNzJjMC05LjctNS44LTE4LjUtMTQuOC0yMi4ycy0xOS4zLTEuNy0yNi4yIDUuMkw0MTMuNCA5Ni42Yy04Ny42LTg2LjUtMjI4LjctODYuMi0zMTUuOCAxQzczLjIgMTIyIDU1LjYgMTUwLjcgNDQuOCAxODEuNGMtNS45IDE2LjcgMi45IDM0LjkgMTkuNSA0MC44czM0LjktMi45IDQwLjgtMTkuNWM3LjctMjEuOCAyMC4yLTQyLjMgMzcuOC01OS44ek0xNiAzMTJ2Ny42IC43VjQ0MGMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJzMTkuMyAxLjcgMjYuMi01LjJsNDEuNi00MS42Yzg3LjYgODYuNSAyMjguNyA4Ni4yIDMxNS44LTFjMjQuNC0yNC40IDQyLjEtNTMuMSA1Mi45LTgzLjdjNS45LTE2LjctMi45LTM0LjktMTkuNS00MC44cy0zNC45IDIuOS00MC44IDE5LjVjLTcuNyAyMS44LTIwLjIgNDIuMy0zNy44IDU5LjhjLTYyLjIgNjIuMi0xNjIuNyA2Mi41LTIyNS4zIDFMMTg1IDMyOWM2LjktNi45IDguOS0xNy4yIDUuMi0yNi4ycy0xMi41LTE0LjgtMjIuMi0xNC44SDQ4LjRoLS43SDQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUm91dGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDk2YzAgNTAuMi01OS4xIDEyNS4xLTg0LjYgMTU1Yy0zLjggNC40LTkuNCA2LjEtMTQuNSA1SDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmg5NmM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NkgxMzkuNmM4LjctOS45IDE5LjMtMjIuNiAzMC0zNi44YzYuMy04LjQgMTIuOC0xNy42IDE5LTI3LjJINDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyMGMtNTMgMC05Ni00My05Ni05NnM0My05NiA5Ni05NmgzOS44Yy0yMS0zMS41LTM5LjgtNjcuNy0zOS44LTk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZ6TTExNy4xIDQ4OS4xYy0zLjggNC4zLTcuMiA4LjEtMTAuMSAxMS4zbC0xLjggMi0uMi0uMmMtNiA0LjYtMTQuNiA0LTIwLTEuOEM1OS44IDQ3MyAwIDQwMi41IDAgMzUyYzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCAzMC0yMS4xIDY3LTQzLjUgOTcuOWMtMTAuNyAxNC43LTIxLjcgMjgtMzAuOCAzOC41bC0uNiAuN3pNMTI4IDM1MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek00MTYgMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUnNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJjMjI5LjggMCA0MTYgMTg2LjIgNDE2IDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkMzODQgMjUzLjYgMjI2LjQgOTYgMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHpNMCA0MTZhNjQgNjQgMCAxIDEgMTI4IDBBNjQgNjQgMCAxIDEgMCA0MTZ6TTMyIDE2MGMxNTkuMSAwIDI4OCAxMjguOSAyODggMjg4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtMTIzLjctMTAwLjMtMjI0LTIyNC0yMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJ1YmxlU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAzMkM3OC4zIDMyIDY0IDQ2LjMgNjQgNjRWMjU2SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDY0djMySDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDY0djMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWNDE2SDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxMjhWMzIwSDI0MGM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NHMtNjQuNS0xNDQtMTQ0LTE0NEg5NnpNMjQwIDI1NkgxMjhWOTZIMjQwYzQ0LjIgMCA4MCAzNS44IDgwIDgwcy0zNS44IDgwLTgwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSdWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQgNjRINTYgODBWODh2ODggODAgODAgODggMjRINTYgMjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRoOFYzNjBIMjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRoOFYyODBIMjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRoOFYyMDBIMjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRoOFYxMTJIMjRDMTAuNyAxMTIgMCAxMDEuMyAwIDg4UzEwLjcgNjQgMjQgNjR6bTg4IDBINTI4VjQ0OEgxMTJWNjR6TTY0MCA4OGMwIDEzLjMtMTAuNyAyNC0yNCAyNGgtOHY0MGg4YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0aC04djMyaDhjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRoLTh2MzJoOGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGgtOHY0MGg4YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDU4NCA1NjBWNDI0IDMzNiAyNTYgMTc2IDg4IDY0aDI0IDMyYzEzLjMgMCAyNCAxMC43IDI0IDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSdWxlckNvbWJpbmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTS4yIDQ2OC45QzIuNyA0OTMuMSAyMy4xIDUxMiA0OCA1MTJsOTYgMCAzMjAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00OCAwIDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MC02NCAwIDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MC02NCAwIDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MC04MCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDgwIDAgMC02NC04MCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDgwIDAgMC02NC04MCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDgwIDAgMC00OGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAwQzIxLjUgMCAwIDIxLjUgMCA0OEwwIDM2OGwwIDk2YzAgMS43IC4xIDMuMyAuMiA0Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJ1bGVySG9yaXpvbnRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMzNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw1NDQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2MGMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMCAwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODAtNjQgMCAwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODAtNjQgMCAwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODAtNjQgMCAwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODAtNjQgMCAwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODAtNjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCAzMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJ1bGVyVmVydGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBIMjA4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4Vjk2SDE3NmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmg4MHY2NEgxNzZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZoODB2NjRIMTc2Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2aDgwdjY0SDE3NmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmg4MHY0OGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJ1bGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3Ny45IDQ5NC4xYy0xOC43IDE4LjctNDkuMSAxOC43LTY3LjkgMEwxNy45IDQwMS45Yy0xOC43LTE4LjctMTguNy00OS4xIDAtNjcuOWw1MC43LTUwLjcgNDggNDhjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC00OC00OCA0MS40LTQxLjQgNDggNDhjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC00OC00OCA0MS40LTQxLjQgNDggNDhjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC00OC00OCA0MS40LTQxLjQgNDggNDhjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC00OC00OCA1MC43LTUwLjdjMTguNy0xOC43IDQ5LjEtMTguNyA2Ny45IDBsOTIuMSA5Mi4xYzE4LjcgMTguNyAxOC43IDQ5LjEgMCA2Ny45TDE3Ny45IDQ5NC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSdXBlZVNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmg4MGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NGMwIDU4LjgtMzUuMiAxMDkuMy04NS43IDEzMS43bDUxLjQgMTI4LjRjNi42IDE2LjQtMS40IDM1LTE3LjggNDEuNnMtMzUtMS40LTQxLjYtMTcuOEwxMDYuMyAzMjBINjRWNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjI4OCA2NHpNNjQgMjU2aDQ4YzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwSDY0VjI1NnptMjU2LjUgMTYuNGMtLjkgNiAwIDguNyAuNCA5LjhjLjQgMS4xIDEuNCAyLjYgNC4yIDQuOWM3LjIgNS43IDE4LjcgMTAgMzcuOSAxNi44bDEuMyAuNWMxNiA1LjYgMzguNyAxMy42IDU1LjcgMjguMWM5LjUgOC4xIDE3LjkgMTguNiAyMy4xIDMyLjNjNS4xIDEzLjcgNi4xIDI4LjUgMy44IDQ0Yy00LjIgMjguMS0yMC41IDQ5LjMtNDMuOCA2MC45Yy0yMi4xIDExLTQ4LjEgMTIuNS03My4yIDhsLS4yIDAgMCAwYy05LjMtMS44LTIwLjUtNS43LTI5LjMtOWMtNi0yLjMtMTIuNi00LjktMTcuNy02LjlsMCAwYy0yLjUtMS00LjYtMS44LTYuMy0yLjVjLTE2LjUtNi40LTI0LjYtMjUtMTguMi00MS40czI0LjktMjQuNiA0MS40LTE4LjJjMi42IDEgNS4yIDIgNy45IDMuMWwwIDBjNC44IDEuOSA5LjggMy45IDE1LjQgNmM4LjggMy4zIDE1LjMgNS40IDE4LjcgNmMxNS43IDIuOCAyNi43IC44IDMyLjktMi4zYzUtMi41IDgtNiA5LjEtMTNjMS02LjkgLjItMTAuNS0uNS0xMi4zYy0uNi0xLjctMS44LTMuNi00LjUtNS45Yy02LjktNS44LTE4LjItMTAuNC0zNi45LTE3bC0zLTEuMWMtMTUuNS01LjQtMzctMTMtNTMuMy0yNS45Yy05LjUtNy41LTE4LjMtMTcuNi0yMy43LTMxYy01LjUtMTMuNC02LjYtMjgtNC40LTQzLjJjOC40LTU3LjEgNjctNzggMTE2LjktNjguOWM2LjkgMS4zIDI3LjMgNS44IDM1LjQgOC40YzE2LjkgNS4yIDI2LjMgMjMuMiAyMS4xIDQwLjFzLTIzLjIgMjYuMy00MC4xIDIxLjFjLTQuNy0xLjQtMjIuMy01LjUtMjcuOS02LjVjLTE0LjYtMi43LTI1LjgtLjQtMzIuNiAzLjJjLTYuMyAzLjMtOC45IDcuNi05LjUgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJ1cGlhaFNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmg4MGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NGMwIDU4LjgtMzUuMiAxMDkuMy04NS43IDEzMS43bDUxLjQgMTI4LjRjNi42IDE2LjQtMS40IDM1LTE3LjggNDEuNnMtMzUtMS40LTQxLjYtMTcuOEwxMDYuMyAzMjBINjRWNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjI4OCA2NHpNNjQgMjU2aDQ4YzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwSDY0VjI1NnptMjU2LTk2aDgwYzYxLjkgMCAxMTIgNTAuMSAxMTIgMTEycy01MC4xIDExMi0xMTIgMTEySDM1MnY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzNTIgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem04MCAxNjBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhIMzUydjk2aDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk5LjEgMTA1LjRDNzkgMTE0IDY4LjIgMTI3LjIgNjUuMiAxNDQuOGMtMi40IDE0LjEtLjcgMjMuMiAyIDI5LjRjMi44IDYuMyA3LjkgMTIuNCAxNi43IDE4LjZjMTkuMiAxMy40IDQ4LjMgMjIuMSA4NC45IDMyLjVjMSAuMyAxLjkgLjYgMi45IC44YzMyLjcgOS4zIDcyIDIwLjYgMTAwLjkgNDAuN2MxNS43IDEwLjkgMjkuOSAyNS41IDM4LjYgNDUuMWM4LjggMTkuOCAxMC44IDQyIDYuNiA2Ni4zYy03LjMgNDIuNS0zNS4zIDcxLjctNzEuOCA4Ny4zYy0zNS40IDE1LjItNzkuMSAxNy45LTEyMy43IDEwLjlsLS4yIDAgMCAwYy0yNC0zLjktNjIuNy0xNy4xLTg3LjYtMjUuNmMtNC44LTEuNy05LjItMy4xLTEyLjgtNC4zQzUuMSA0NDAuOC0zLjkgNDIyLjcgMS42IDQwNS45czIzLjctMjUuOCA0MC41LTIwLjNjNC45IDEuNiAxMC4yIDMuNCAxNS45IDUuNGMyNS40IDguNiA1Ni40IDE5LjIgNzQuNCAyMi4xYzM2LjggNS43IDY3LjUgMi41IDg4LjUtNi41YzIwLjEtOC42IDMwLjgtMjEuOCAzMy45LTM5LjRjMi40LTE0LjEgLjctMjMuMi0yLTI5LjRjLTIuOC02LjMtNy45LTEyLjQtMTYuNy0xOC42Yy0xOS4yLTEzLjQtNDguMy0yMi4xLTg0LjktMzIuNWMtMS0uMy0xLjktLjYtMi45LS44Yy0zMi43LTkuMy03Mi0yMC42LTEwMC45LTQwLjdjLTE1LjctMTAuOS0yOS45LTI1LjUtMzguNi00NS4xYy04LjgtMTkuOC0xMC44LTQyLTYuNi02Ni4zbDMxLjUgNS41TDIuMSAxMzMuOUM5LjQgOTEuNCAzNy40IDYyLjIgNzMuOSA0Ni42YzM1LjQtMTUuMiA3OS4xLTE3LjkgMTIzLjctMTAuOWMxMyAyIDUyLjQgOS42IDY2LjYgMTMuNGMxNy4xIDQuNSAyNy4yIDIyLjEgMjIuNyAzOS4ycy0yMi4xIDI3LjItMzkuMiAyMi43Yy0xMS4yLTMtNDguMS0xMC4yLTYwLjEtMTJsNC45LTMxLjUtNC45IDMxLjVjLTM2LjktNS44LTY3LjUtMi41LTg4LjYgNi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTYWNrRG9sbGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCA5NkgxOTJMMTQ0LjYgMjQuOUMxMzcuNSAxNC4yIDE0NS4xIDAgMTU3LjkgMEgzNTQuMWMxMi44IDAgMjAuNCAxNC4yIDEzLjMgMjQuOUwzMjAgOTZ6TTE5MiAxMjhIMzIwYzMuOCAyLjUgOC4xIDUuMyAxMyA4LjRDMzg5LjcgMTcyLjcgNTEyIDI1MC45IDUxMiA0MTZjMCA1My00MyA5Ni05NiA5Nkg5NmMtNTMgMC05Ni00My05Ni05NkMwIDI1MC45IDEyMi4zIDE3Mi43IDE3OSAxMzYuNGwwIDAgMCAwYzQuOC0zLjEgOS4yLTUuOSAxMy04LjR6bTg0IDg4YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMHYxNGMtNy42IDEuNy0xNS4yIDQuNC0yMi4yIDguNWMtMTMuOSA4LjMtMjUuOSAyMi44LTI1LjggNDMuOWMuMSAyMC4zIDEyIDMzLjEgMjQuNyA0MC43YzExIDYuNiAyNC43IDEwLjggMzUuNiAxNGwxLjcgLjVjMTIuNiAzLjggMjEuOCA2LjggMjggMTAuN2M1LjEgMy4yIDUuOCA1LjQgNS45IDguMmMuMSA1LTEuOCA4LTUuOSAxMC41Yy01IDMuMS0xMi45IDUtMjEuNCA0LjdjLTExLjEtLjQtMjEuNS0zLjktMzUuMS04LjVjLTIuMy0uOC00LjctMS42LTcuMi0yLjRjLTEwLjUtMy41LTIxLjggMi4yLTI1LjMgMTIuNnMyLjIgMjEuOCAxMi42IDI1LjNjMS45IC42IDQgMS4zIDYuMSAyLjFsMCAwIDAgMGM4LjMgMi45IDE3LjkgNi4yIDI4LjIgOC40VjQyNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMFY0MTAuMmM4LTEuNyAxNi00LjUgMjMuMi05YzE0LjMtOC45IDI1LjEtMjQuMSAyNC44LTQ1Yy0uMy0yMC4zLTExLjctMzMuNC0yNC42LTQxLjZjLTExLjUtNy4yLTI1LjktMTEuNi0zNy4xLTE1bDAgMC0uNy0uMmMtMTIuOC0zLjktMjEuOS02LjctMjguMy0xMC41Yy01LjItMy4xLTUuMy00LjktNS4zLTYuN2MwLTMuNyAxLjQtNi41IDYuMi05LjNjNS40LTMuMiAxMy42LTUuMSAyMS41LTVjOS42IC4xIDIwLjIgMi4yIDMxLjIgNS4yYzEwLjcgMi44IDIxLjYtMy41IDI0LjUtMTQuMnMtMy41LTIxLjYtMTQuMi0yNC41Yy02LjUtMS43LTEzLjctMy40LTIxLjEtNC43VjIxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2Fja1htYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiA5NkgzMjBsNDcuNC03MS4xQzM3NC41IDE0LjIgMzY2LjkgMCAzNTQuMSAwSDE1Ny45Yy0xMi44IDAtMjAuNCAxNC4yLTEzLjMgMjQuOUwxOTIgOTZ6bTEyOCAzMkgxOTJjLTMuOCAyLjUtOC4xIDUuMy0xMyA4LjRsMCAwIDAgMEMxMjIuMyAxNzIuNyAwIDI1MC45IDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZINDE2YzUzIDAgOTYtNDMgOTYtOTZjMC0xNjUuMS0xMjIuMy0yNDMuMy0xNzktMjc5LjZjLTQuOC0zLjEtOS4yLTUuOS0xMy04LjR6TTI4OS45IDMzNmw0NyA0N2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Ny00Ny00NyA0N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0Ny00Ny00Ny00N2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQ3IDQ3IDQ3LTQ3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNDcgNDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNhaWxib2F0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAxNmMwLTcgNC41LTEzLjIgMTEuMi0xNS4zczEzLjkgLjQgMTcuOSA2LjFsMjI0IDMyMGMzLjQgNC45IDMuOCAxMS4zIDEuMSAxNi42cy04LjIgOC42LTE0LjIgOC42SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2VjE2ek0yMTIuMSA5Ni41YzcgMS45IDExLjkgOC4yIDExLjkgMTUuNVYzMzZjMCA4LjgtNy4yIDE2LTE2IDE2SDgwYy01LjcgMC0xMS0zLTEzLjgtOHMtMi45LTExLS4xLTE2bDEyOC0yMjRjMy42LTYuMyAxMS05LjQgMTgtNy41ek01LjcgNDA0LjNDMi44IDM5NC4xIDEwLjUgMzg0IDIxLjEgMzg0SDU1NC45YzEwLjYgMCAxOC4zIDEwLjEgMTUuNCAyMC4zbC00IDE0LjNDNTUwLjcgNDczLjkgNTAwLjQgNTEyIDQ0MyA1MTJIMTMzQzc1LjYgNTEyIDI1LjMgNDczLjkgOS43IDQxOC43bC00LTE0LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNhdGVsbGl0ZURpc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyQzM4My4xIDAgNTEyIDEyOC45IDUxMiAyODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJDNDQ4IDE2NC4zIDM0Ny43IDY0IDIyNCA2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTYwLjYgMjIwLjZMMTY0LjcgMzI0LjdsMjguNC0yOC40Yy0uNy0yLjYtMS4xLTUuNC0xLjEtOC4zYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJjLTIuOSAwLTUuNi0uNC04LjMtMS4xbC0yOC40IDI4LjRMMjkxLjQgNDUxLjRjMTQuNSAxNC41IDExLjggMzguOC03LjMgNDYuM0MyNjAuNSA1MDYuOSAyMzQuOSA1MTIgMjA4IDUxMkM5My4xIDUxMiAwIDQxOC45IDAgMzA0YzAtMjYuOSA1LjEtNTIuNSAxNC40LTc2LjFjNy41LTE5IDMxLjgtMjEuOCA0Ni4zLTcuM3pNMjI0IDk2YzEwNiAwIDE5MiA4NiAxOTIgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTYXRlbGxpdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMzIDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC05NiA5NmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsODkuNCA4OS40LTE1LjUgMTUuNUMxNTIuMyAyMzAuNCAxMjQuOSAyMjQgOTYgMjI0Yy0zMS43IDAtNjEuNSA3LjctODcuOCAyMS4yYy05IDQuNy0xMC4zIDE2LjctMy4xIDIzLjhMMTEyLjcgMzc2LjcgOTYuMyAzOTMuMWMtMi42LS43LTUuNC0xLjEtOC4zLTEuMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtMi45LS40LTUuNi0xLjEtOC4zbDE2LjQtMTYuNEwyNDIuOSA1MDYuOWM3LjIgNy4yIDE5LjIgNS45IDIzLjgtMy4xQzI4MC4zIDQ3Ny41IDI4OCA0NDcuNyAyODggNDE2YzAtMjguOS02LjQtNTYuMy0xNy44LTgwLjlsMTUuNS0xNS41TDM3NSA0MDljOS40IDkuNCAyNC42IDkuNCAzMy45IDBsOTYtOTZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTg5LjQtODkuNCA1NS01NWMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNDgtNDhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC01NSA1NUwyMzMgN3ptMTU5IDM1MWwtNzIuNC03Mi40IDYyLjEtNjIuMUw0NTQuMSAyOTYgMzkyIDM1OC4xek0yMjYuMyAxOTIuNEwxNTMuOSAxMjAgMjE2IDU3LjlsNzIuNCA3Mi40LTYyLjEgNjIuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2NhbGVCYWxhbmNlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMzJINTEyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDM5OC40Yy01LjIgMjUuOC0yMi45IDQ3LjEtNDYuNCA1Ny4zVjQ0OEg1MTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzIwIDEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkgyODhWMTUzLjNjLTIzLjUtMTAuMy00MS4yLTMxLjYtNDYuNC01Ny4zSDEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkgyNTZjMTQuNi0xOS40IDM3LjgtMzIgNjQtMzJzNDkuNCAxMi42IDY0IDMyem01NS42IDI4OEg1ODQuNEw1MTIgMTk1LjggNDM5LjYgMzIwek01MTIgNDE2Yy02Mi45IDAtMTE1LjItMzQtMTI2LTc4LjljLTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjFDNjI3LjIgMzgyIDU3NC45IDQxNiA1MTIgNDE2ek0xMjYuOCAxOTUuOEw1NC40IDMyMEgxOTkuM0wxMjYuOCAxOTUuOHpNLjkgMzM3LjFjLTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjFDMjQyIDM4MiAxODkuNyA0MTYgMTI2LjggNDE2UzExLjcgMzgyIC45IDMzNy4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTY2FsZVVuYmFsYW5jZWRGbGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExNy45IDYyLjRjLTE2LjgtNS42LTI1LjgtMjMuNy0yMC4yLTQwLjVzMjMuNy0yNS44IDQwLjUtMjAuMmwxMTMgMzcuN0MyNjUgMTUuOCAyOTAuNyAwIDMyMCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgMy0uMiA1LjktLjUgOC44bDEyMi42IDQwLjljMTYuOCA1LjYgMjUuOCAyMy43IDIwLjIgNDAuNXMtMjMuNyAyNS44LTQwLjUgMjAuMkwzNjYuNCAxNDUuMmMtNC41IDMuMi05LjMgNS45LTE0LjQgOC4yVjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJIMjg4VjE1My4zYy0yMS05LjItMzcuMi0yNy00NC4yLTQ5bC0xMjUuOS00MnpNMjAwLjQgMjg4TDEyOCAxNjMuOCA1NS42IDI4OEgyMDAuNHpNMTI4IDM4NEM2NS4xIDM4NCAxMi44IDM1MCAyIDMwNS4xYy0yLjYtMTEgMS0yMi4zIDYuNy0zMi4xbDk1LjItMTYzLjJjNS04LjYgMTQuMi0xMy44IDI0LjEtMTMuOHMxOS4xIDUuMyAyNC4xIDEzLjhsOTUuMiAxNjMuMmM1LjcgOS44IDkuMyAyMS4xIDYuNyAzMi4xQzI0My4yIDM1MCAxOTAuOSAzODQgMTI4IDM4NHptMzgyLjgtOTIuMkw0MzguNCA0MTZINTgzLjNMNTEwLjggMjkxLjh6bTEyNiAxNDEuM0M2MjYgNDc4IDU3My43IDUxMiA1MTAuOCA1MTJzLTExNS4yLTM0LTEyNi03OC45Yy0yLjYtMTEgMS0yMi4zIDYuNy0zMi4xbDk1LjItMTYzLjJjNS04LjYgMTQuMi0xMy44IDI0LjEtMTMuOHMxOS4xIDUuMyAyNC4xIDEzLjhsOTUuMiAxNjMuMmM1LjcgOS44IDkuMyAyMS4xIDYuNyAzMi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTY2FsZVVuYmFsYW5jZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTIyLjEgNjIuNGMxNi44LTUuNiAyNS44LTIzLjcgMjAuMi00MC41UzUxOC42LTMuOSA1MDEuOSAxLjZsLTExMyAzNy43QzM3NSAxNS44IDM0OS4zIDAgMzIwIDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwYzAgMyAuMiA1LjkgLjUgOC44TDExNy45IDEyOS42Yy0xNi44IDUuNi0yNS44IDIzLjctMjAuMiA0MC41czIzLjcgMjUuOCA0MC41IDIwLjJsMTM1LjUtNDUuMmM0LjUgMy4yIDkuMyA1LjkgMTQuNCA4LjJWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMySDUxMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzNTJWMTUzLjNjMjEtOS4yIDM3LjItMjcgNDQuMi00OWwxMjUuOS00MnpNNDM5LjYgMjg4TDUxMiAxNjMuOCA1ODQuNCAyODhINDM5LjZ6TTUxMiAzODRjNjIuOSAwIDExNS4yLTM0IDEyNi03OC45YzIuNi0xMS0xLTIyLjMtNi43LTMyLjFMNTM2LjEgMTA5LjhjLTUtOC42LTE0LjItMTMuOC0yNC4xLTEzLjhzLTE5LjEgNS4zLTI0LjEgMTMuOEwzOTIuNyAyNzMuMWMtNS43IDkuOC05LjMgMjEuMS02LjcgMzIuMUMzOTYuOCAzNTAgNDQ5LjEgMzg0IDUxMiAzODR6TTEyOS4yIDI5MS44TDIwMS42IDQxNkg1Ni43bDcyLjQtMTI0LjJ6TTMuMiA0MzMuMUMxNCA0NzggNjYuMyA1MTIgMTI5LjIgNTEyczExNS4yLTM0IDEyNi03OC45YzIuNi0xMS0xLTIyLjMtNi43LTMyLjFMMTUzLjIgMjM3LjhjLTUtOC42LTE0LjItMTMuOC0yNC4xLTEzLjhzLTE5LjEgNS4zLTI0LjEgMTMuOEw5LjkgNDAxLjFjLTUuNyA5LjgtOS4zIDIxLjEtNi43IDMyLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNjaG9vbENpcmNsZUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNy44IDUuNEMzMjctMS44IDMxMy0xLjggMzAyLjIgNS40TDE2Ni4zIDk2SDQ4QzIxLjUgOTYgMCAxMTcuNSAwIDE0NFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhIMzIwdjBIMjU2VjQxNmMwLTM1LjMgMjguNy02NCA2NC02NGwuMyAwaC41YzMuNC0zNy43IDE4LjctNzIuMSA0Mi4yLTk5LjFDMzUwLjIgMjYwIDMzNS42IDI2NCAzMjAgMjY0Yy00OC42IDAtODgtMzkuNC04OC04OHMzOS40LTg4IDg4LTg4czg4IDM5LjQgODggODhjMCAxOC4zLTUuNiAzNS4zLTE1LjEgNDkuNGMyOS0yMSA2NC42LTMzLjQgMTAzLjEtMzMuNGM1OS41IDAgMTEyLjEgMjkuNiAxNDQgNzQuOFYxNDRjMC0yNi41LTIxLjUtNDgtNDgtNDhINDczLjdMMzM3LjggNS40ek05NiAxOTJoMzJjOC44IDAgMTYgNy4yIDE2IDE2djY0YzAgOC44LTcuMiAxNi0xNiAxNkg5NmMtOC44IDAtMTYtNy4yLTE2LTE2VjIwOGMwLTguOCA3LjItMTYgMTYtMTZ6bTAgMTI4aDMyYzguOCAwIDE2IDcuMiAxNiAxNnY2NGMwIDguOC03LjIgMTYtMTYgMTZIOTZjLTguOCAwLTE2LTcuMi0xNi0xNlYzMzZjMC04LjggNy4yLTE2IDE2LTE2ek0zMjAgMTI4Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDMzNlYxNDRjMC04LjgtNy4yLTE2LTE2LTE2ek02NDAgMzY4YTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS05OS4zLTQzLjNjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42bC03MiA3MmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDgwIDM4NS40bDYwLjctNjAuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2Nob29sQ2lyY2xlRXhjbGFtYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM3LjggNS40QzMyNy0xLjggMzEzLTEuOCAzMDIuMiA1LjRMMTY2LjMgOTZINDhDMjEuNSA5NiAwIDExNy41IDAgMTQ0VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OEgzMjB2MEgyNTZWNDE2YzAtMzUuMyAyOC43LTY0IDY0LTY0bC4zIDBoLjVjMy40LTM3LjcgMTguNy03Mi4xIDQyLjItOTkuMUMzNTAuMiAyNjAgMzM1LjYgMjY0IDMyMCAyNjRjLTQ4LjYgMC04OC0zOS40LTg4LTg4czM5LjQtODggODgtODhzODggMzkuNCA4OCA4OGMwIDE4LjMtNS42IDM1LjMtMTUuMSA0OS40YzI5LTIxIDY0LjYtMzMuNCAxMDMuMS0zMy40YzU5LjUgMCAxMTIuMSAyOS42IDE0NCA3NC44VjE0NGMwLTI2LjUtMjEuNS00OC00OC00OEg0NzMuN0wzMzcuOCA1LjR6TTk2IDE5MmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2NjRjMCA4LjgtNy4yIDE2LTE2IDE2SDk2Yy04LjggMC0xNi03LjItMTYtMTZWMjA4YzAtOC44IDcuMi0xNiAxNi0xNnptMCAxMjhoMzJjOC44IDAgMTYgNy4yIDE2IDE2djY0YzAgOC44LTcuMiAxNi0xNiAxNkg5NmMtOC44IDAtMTYtNy4yLTE2LTE2VjMzNmMwLTguOCA3LjItMTYgMTYtMTZ6TTMyMCAxMjhjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMzM2VjE0NGMwLTguOC03LjItMTYtMTYtMTZ6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTk2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMC0xNDRjOC44IDAgMTYgNy4yIDE2IDE2djgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjI4OGMwLTguOCA3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNjaG9vbENpcmNsZVhtYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNy44IDUuNEMzMjctMS44IDMxMy0xLjggMzAyLjIgNS40TDE2Ni4zIDk2SDQ4QzIxLjUgOTYgMCAxMTcuNSAwIDE0NFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhIMzIwdjBIMjU2VjQxNmMwLTM1LjMgMjguNy02NCA2NC02NGwuMyAwaC41YzMuNC0zNy43IDE4LjctNzIuMSA0Mi4yLTk5LjFDMzUwLjIgMjYwIDMzNS42IDI2NCAzMjAgMjY0Yy00OC42IDAtODgtMzkuNC04OC04OHMzOS40LTg4IDg4LTg4czg4IDM5LjQgODggODhjMCAxOC4zLTUuNiAzNS4zLTE1LjEgNDkuNGMyOS0yMSA2NC42LTMzLjQgMTAzLjEtMzMuNGM1OS41IDAgMTEyLjEgMjkuNiAxNDQgNzQuOFYxNDRjMC0yNi41LTIxLjUtNDgtNDgtNDhINDczLjdMMzM3LjggNS40ek05NiAxOTJoMzJjOC44IDAgMTYgNy4yIDE2IDE2djY0YzAgOC44LTcuMiAxNi0xNiAxNkg5NmMtOC44IDAtMTYtNy4yLTE2LTE2VjIwOGMwLTguOCA3LjItMTYgMTYtMTZ6bTAgMTI4aDMyYzguOCAwIDE2IDcuMiAxNiAxNnY2NGMwIDguOC03LjIgMTYtMTYgMTZIOTZjLTguOCAwLTE2LTcuMi0xNi0xNlYzMzZjMC04LjggNy4yLTE2IDE2LTE2ek0zMjAgMTI4Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDMzNlYxNDRjMC04LjgtNy4yLTE2LTE2LTE2ek00OTYgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMjIuNi0xNDRsMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBMNDk2IDM5MC42bC0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZMNDczLjQgMzY4bC0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEw0OTYgMzQ1LjRsMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNkw1MTguNiAzNjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNjaG9vbEZsYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDBINDAwYzguOCAwIDE2IDcuMiAxNiAxNlY4MGMwIDguOC03LjIgMTYtMTYgMTZIMzIwLjdsODkuNiA2NEg1MTJjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0SDMzNlY0MDBjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDhWNTEySDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjRIMTY1LjdMMjU2IDk1LjVWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTQ4IDI0MGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek04MCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNnY2NGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjI0MGMwLTguOC03LjItMTYtMTYtMTZIODB6bTM2OCAxNnY2NGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjI0MGMwLTguOC03LjItMTYtMTYtMTZINDY0Yy04LjggMC0xNiA3LjItMTYgMTZ6TTgwIDM1MmMtOC44IDAtMTYgNy4yLTE2IDE2djY0YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzY4YzAtOC44LTcuMi0xNi0xNi0xNkg4MHptMzg0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnY2NGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjM2OGMwLTguOC03LjItMTYtMTYtMTZINDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTY2hvb2xMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwMi4yIDUuNGMxMC43LTcuMiAyNC44LTcuMiAzNS41IDBMNDczLjcgOTZINTkyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4VjI3MmMwLTYxLjktNTAuMS0xMTItMTEyLTExMnMtMTEyIDUwLjEtMTEyIDExMnYyNC42Yy0xOS4xIDExLjEtMzIgMzEuNy0zMiA1NS40SDMyMC4zbC0uMyAwYy0zNS4zIDAtNjQgMjguNy02NCA2NHY5Nmg2NHYwSDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYxNDRjMC0yNi41IDIxLjUtNDggNDgtNDhIMTY2LjNMMzAyLjIgNS40ek04MCAyMDh2NjRjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyMDhjMC04LjgtNy4yLTE2LTE2LTE2SDk2Yy04LjggMC0xNiA3LjItMTYgMTZ6bTAgMTI4djY0YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzM2YzAtOC44LTcuMi0xNi0xNi0xNkg5NmMtOC44IDAtMTYgNy4yLTE2IDE2em0yNDAtNzJhODggODggMCAxIDAgMC0xNzYgODggODggMCAxIDAgMCAxNzZ6bTE2LTEyMHYxNmgxNmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgzMjBjLTguOCAwLTE2LTcuMi0xNi0xNlYxNDRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnptMTkyIDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY0OGg2NFYyNzJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS04MCAzMmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwdjQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMyVjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMkg0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjM1MmMwLTE3LjcgMTQuMy0zMiAzMi0zMlYyNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNjaG9vbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzcuOCA1LjRDMzI3LTEuOCAzMTMtMS44IDMwMi4yIDUuNEwxNjYuMyA5Nkg0OEMyMS41IDk2IDAgMTE3LjUgMCAxNDRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDI1NlY0MTZjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NHY5Nkg1OTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTQ0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ3My43TDMzNy44IDUuNHpNOTYgMTkyaDMyYzguOCAwIDE2IDcuMiAxNiAxNnY2NGMwIDguOC03LjIgMTYtMTYgMTZIOTZjLTguOCAwLTE2LTcuMi0xNi0xNlYyMDhjMC04LjggNy4yLTE2IDE2LTE2em00MDAgMTZjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnY2NGMwIDguOC03LjIgMTYtMTYgMTZINTEyYy04LjggMC0xNi03LjItMTYtMTZWMjA4ek05NiAzMjBoMzJjOC44IDAgMTYgNy4yIDE2IDE2djY0YzAgOC44LTcuMiAxNi0xNiAxNkg5NmMtOC44IDAtMTYtNy4yLTE2LTE2VjMzNmMwLTguOCA3LjItMTYgMTYtMTZ6bTQwMCAxNmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djY0YzAgOC44LTcuMiAxNi0xNiAxNkg1MTJjLTguOCAwLTE2LTcuMi0xNi0xNlYzMzZ6TTIzMiAxNzZhODggODggMCAxIDEgMTc2IDAgODggODggMCAxIDEgLTE3NiAwem04OC00OGMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgzMzZWMTQ0YzAtOC44LTcuMi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2Npc3NvcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDE5MmwtMzkuNS0zOS41YzQuOS0xMi42IDcuNS0yNi4yIDcuNS00MC41QzIyNCA1MC4xIDE3My45IDAgMTEyIDBTMCA1MC4xIDAgMTEyczUwLjEgMTEyIDExMiAxMTJjMTQuMyAwIDI3LjktMi43IDQwLjUtNy41TDE5MiAyNTZsLTM5LjUgMzkuNWMtMTIuNi00LjktMjYuMi03LjUtNDAuNS03LjVDNTAuMSAyODggMCAzMzguMSAwIDQwMHM1MC4xIDExMiAxMTIgMTEyczExMi01MC4xIDExMi0xMTJjMC0xNC4zLTIuNy0yNy45LTcuNS00MC41TDQ5OS4yIDc2LjhjNy4xLTcuMSA3LjEtMTguNSAwLTI1LjZjLTI4LjMtMjguMy03NC4xLTI4LjMtMTAyLjQgMEwyNTYgMTkyem0yMi42IDE1MC42TDM5Ni44IDQ2MC44YzI4LjMgMjguMyA3NC4xIDI4LjMgMTAyLjQgMGM3LjEtNy4xIDcuMS0xOC41IDAtMjUuNkwzNDIuNiAyNzguNmwtNjQgNjR6TTY0IDExMmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00OCAyNDBhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTY3Jld2RyaXZlcldyZW5jaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03OC42IDVDNjkuMS0yLjQgNTUuNi0xLjUgNDcgN0w3IDQ3Yy04LjUgOC41LTkuNCAyMi0yLjEgMzEuNmw4MCAxMDRjNC41IDUuOSAxMS42IDkuNCAxOSA5LjRoNTQuMWwxMDkgMTA5Yy0xNC43IDI5LTEwIDY1LjQgMTQuMyA4OS42bDExMiAxMTJjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTExMi0xMTJjLTI0LjItMjQuMi02MC42LTI5LTg5LjYtMTQuM2wtMTA5LTEwOVYxMDRjMC03LjUtMy41LTE0LjUtOS40LTE5TDc4LjYgNXpNMTkuOSAzOTYuMUM3LjIgNDA4LjggMCA0MjYuMSAwIDQ0NC4xQzAgNDgxLjYgMzAuNCA1MTIgNjcuOSA1MTJjMTggMCAzNS4zLTcuMiA0OC0xOS45TDIzMy43IDM3NC4zYy03LjgtMjAuOS05LTQzLjYtMy42LTY1LjFsLTYxLjctNjEuN0wxOS45IDM5Ni4xek01MTIgMTQ0YzAtMTAuNS0xLjEtMjAuNy0zLjItMzAuNWMtMi40LTExLjItMTYuMS0xNC4xLTI0LjItNmwtNjMuOSA2My45Yy0zIDMtNy4xIDQuNy0xMS4zIDQuN0gzNTJjLTguOCAwLTE2LTcuMi0xNi0xNlYxMDIuNmMwLTQuMiAxLjctOC4zIDQuNy0xMS4zbDYzLjktNjMuOWM4LjEtOC4xIDUuMi0yMS44LTYtMjQuMkMzODguNyAxLjEgMzc4LjUgMCAzNjggMEMyODguNSAwIDIyNCA2NC41IDIyNCAxNDRsMCAuOCA4NS4zIDg1LjNjMzYtOS4xIDc1LjggLjUgMTA0IDI4LjdMNDI5IDI3NC41YzQ5LTIzIDgzLTcyLjggODMtMTMwLjV6TTU2IDQzMmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTY3Jld2RyaXZlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjUgN2MtOC41LTguNS0yMi05LjQtMzEuNi0yLjFsLTEwNCA4MGMtNS45IDQuNS05LjQgMTEuNi05LjQgMTl2NTQuMWwtODUuNiA4NS42YzYuNyA0LjIgMTMgOS4zIDE4LjggMTUuMXMxMC45IDEyLjIgMTUuMSAxOC44TDM1My45IDE5Mkg0MDhjNy41IDAgMTQuNS0zLjUgMTktOS40bDgwLTEwNGM3LjQtOS42IDYuNS0yMy4xLTIuMS0zMS42TDQ2NSA3ek0xMjEuNCAyODEuNGwtMTEyIDExMmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTEyLTExMmMzMC4yLTMwLjIgMzAuMi03OS4xIDAtMTA5LjNzLTc5LjEtMzAuMi0xMDkuMyAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTY3JvbGxUb3JhaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiA0ODBWMzJDOTYgMTQuMyA3NC41IDAgNDggMFMwIDE0LjMgMCAzMlY0ODBjMCAxNy43IDIxLjUgMzIgNDggMzJzNDgtMTQuMyA0OC0zMnpNNTEyIDMySDEyOFY0ODBINTEyVjMyek01OTIgMGMtMjYuNSAwLTQ4IDE0LjMtNDggMzJWNDgwYzAgMTcuNyAyMS41IDMyIDQ4IDMyczQ4LTE0LjMgNDgtMzJWMzJjMC0xNy43LTIxLjUtMzItNDgtMzJ6TTE5NiAzMTMuN2MwLTMuMiAuOS02LjQgMi41LTkuMkwyMjYuNyAyNTZsLTI4LjMtNDguNWMtMS42LTIuOC0yLjUtNi0yLjUtOS4yYzAtMTAuMSA4LjItMTguMyAxOC4zLTE4LjNIMjcxbDMxLjQtNTMuOWMzLjYtNi4zIDEwLjMtMTAuMSAxNy42LTEwLjFzMTMuOSAzLjggMTcuNiAxMC4xTDM2OSAxODBoNTYuN2MxMC4xIDAgMTguMyA4LjIgMTguMyAxOC4zYzAgMy4yLS45IDYuNC0yLjUgOS4yTDQxMy4zIDI1NmwyOC4zIDQ4LjVjMS42IDIuOCAyLjUgNiAyLjUgOS4yYzAgMTAuMS04LjIgMTguMy0xOC4zIDE4LjNIMzY5bC0zMS40IDUzLjljLTMuNiA2LjMtMTAuMyAxMC4xLTE3LjYgMTAuMXMtMTMuOS0zLjgtMTcuNi0xMC4xTDI3MSAzMzJIMjE0LjNjLTEwLjEgMC0xOC4zLTguMi0xOC4zLTE4LjN6bTEyNCA1NC43TDM0MS4yIDMzMkgyOTguOEwzMjAgMzY4LjR6TTI1NC41IDI1NmwzMC4zIDUyaDcwLjRsMzAuMy01Mi0zMC4zLTUySDI4NC44bC0zMC4zIDUyem0xNDQuOSAyMy44TDM4MyAzMDhoMzIuOGwtMTYuNC0yOC4yek00MTUuOCAyMDRIMzgzbDE2LjQgMjguMkw0MTUuOCAyMDR6TTMyMCAxNDMuNkwyOTguOCAxODBoNDIuNEwzMjAgMTQzLjZ6TTIyNC4yIDIwNGwxNi40IDI4LjJMMjU3IDIwNEgyMjQuMnpNMjU3IDMwOGwtMTYuNC0yOC4yTDIyNC4yIDMwOEgyNTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNjcm9sbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDgwdjQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMySDQ4IDk2VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4UzAgNTMuNSAwIDgwek0xMTIgMzJjMTAgMTMuNCAxNiAzMCAxNiA0OFYzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHYtNS4zYzAtMzIuNCAyNi4zLTU4LjcgNTguNy01OC43SDQ4MFYxMjhjMC01My00My05Ni05Ni05NkgxMTJ6TTQ2NCA0ODBjNjEuOSAwIDExMi01MC4xIDExMi0xMTJjMC04LjgtNy4yLTE2LTE2LTE2SDMxNC43Yy0xNC43IDAtMjYuNyAxMS45LTI2LjcgMjYuN1YzODRjMCA1My00MyA5Ni05NiA5NkgzNjhoOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNkQ2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMEgxNDEuM0MxMjQuMyAwIDEwOCA2LjcgOTYgMTguN0wxOC43IDk2QzYuNyAxMDggMCAxMjQuMyAwIDE0MS4zVjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjRjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTE2MCA4OHY0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFY4OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0em04MCAwdjQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0Vjg4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6bTgwIDB2NDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWODhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2VjdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NC45IDk2QzY3LjEgODQuNCA3My43IDc2LjIgODYgNzAuNmMxMy44LTYuMiAzNC44LTguOSA2MS4yLTQuNWM4LjggMS40IDM2LjEgNy4xIDQ0LjEgOS4zYzE3IDQuOCAzNC43LTUuMSAzOS41LTIyLjJzLTUuMS0zNC43LTIyLjItMzkuNWMtMTEuMS0zLjEtNDEtOS4yLTUwLjktMTAuOEMxMjMtMi43IDg4LjMtLjYgNTkuNyAxMi4zQzI5LjkgMjUuOCA3LjUgNTAuOSAxLjYgODYuNWMtLjEgLjUtLjIgMS4xLS4yIDEuNmMtMi4yIDE5LjcgLjMgMzcuOSA4LjEgNTQuMWM3LjcgMTYuMSAxOS40IDI4IDMyIDM2LjljLjYgLjUgMS4zIC45IDIgMS40QzIyLjMgMTk0LjIgNi41IDIxNS4xIDEuNyAyNDNjLS4xIC42LS4yIDEuMS0uMiAxLjdjLTIuMyAxOS4zIC40IDM3LjEgOC40IDUzYzcuOSAxNS42IDE5LjggMjcgMzIuMyAzNS41YzIyLjQgMTUuMiA1MS45IDI0IDc1LjQgMzFsMCAwIDMuNyAxLjFjMjcuMiA4LjIgNDYuOSAxNC42IDU5LjQgMjMuOGM1LjUgNCA4LjIgNy42IDkuNSAxMC45YzEuMyAzLjIgMi42IDguNiAuOSAxOC4xYy0xLjcgMTAuMS03LjcgMTgtMjAuNyAyMy41Yy0xNCA2LTM1LjQgOC41LTYyIDQuNGMtMTIuOC0yLjEtMzUuMS05LjctNTQuMS0xNi4ybDAgMGMtNC4zLTEuNS04LjUtMi45LTEyLjMtNC4yQzI1LjMgNDIwIDcuMiA0MjkuMSAxLjYgNDQ1LjhzMy41IDM0LjkgMjAuMyA0MC41YzIuNiAuOCA1LjcgMS45IDkuMiAzLjFjMTguNiA2LjMgNDguNSAxNi42IDY3LjMgMTkuNmwwIDAgLjIgMGMzNC41IDUuNCA2OC44IDMuNCA5Ny4yLTguN2MyOS40LTEyLjYgNTIuNS0zNi41IDU4LjUtNzEuNWMzLjMtMTkuMyAxLjktMzcuNC01LTUzLjljLTYuMy0xNS0xNi40LTI2LjQtMjcuNi0zNS4yYzE2LjUtMTMuOSAyOC41LTMzLjIgMzIuNi01OC4yYzMuMi0xOS44IDEuOS0zOC4zLTQuOC01NS4xYy02LjctMTYuOC0xNy44LTI5LjQtMzAuMi0zOWMtMjIuOC0xNy42LTUzLjYtMjcuNC03Ny43LTM1bC0xLjQtLjVjLTI3LjQtOC43LTQ3LjgtMTUuMy02MS41LTI1Yy02LjEtNC40LTkuNS04LjUtMTEuNC0xMi40Yy0xLjgtMy43LTMuMi05LjMtMi4zLTE4LjV6bTc2LjcgMjA4LjVjLS4yLS4xLS40LS4xLS42LS4ybC0xLjQtLjRjLTI3LjQtOC4yLTQ3LjktMTQuNS02MS43LTIzLjhjLTYuMi00LjItOS4zLTcuOS0xMS0xMS4zYy0xLjUtMy0yLjktNy43LTIuMS0xNS43YzEuOS05LjcgNy45LTE3LjMgMjAuNS0yMi43YzE0LTYgMzUuNC04LjUgNjIuMS00LjNsMTYuNCAyLjZjNi4zIDIuOSAxMS43IDYgMTYuMiA5LjVjNS41IDQuMiA4LjQgOC4yIDEwIDEyLjJjMS42IDQgMi44IDEwLjQgMS4xIDIwLjljLTIuNCAxNC43LTEyLjggMjYuNC0zNy4xIDMxbC0xMi40IDIuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2VlZGxpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDMyYzAgMTEzLjYtODQuNiAyMDcuNS0xOTQuMiAyMjJjLTcuMS01My40LTMwLjYtMTAxLjYtNjUuMy0xMzkuM0MyOTAuOCA0Ni4zIDM2NCAwIDQ0OCAwaDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMyek0wIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0SDY0YzEyMy43IDAgMjI0IDEwMC4zIDIyNCAyMjR2MzJWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjMyMEMxMDAuMyAzMjAgMCAyMTkuNyAwIDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTZXJ2ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NnY2NGMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6bTI4MCA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQ4IDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTY0IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2NjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRINDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0VjM1MmMwLTM1LjMtMjguNy02NC02NC02NEg2NHptMjgwIDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNTYgMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hhcGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxNS40IDE1LjVDMzA5LjcgNS45IDI5OS4yIDAgMjg4IDBzLTIxLjcgNS45LTI3LjQgMTUuNWwtOTYgMTYwYy01LjkgOS45LTYuMSAyMi4yLS40IDMyLjJzMTYuMyAxNi4yIDI3LjggMTYuMkgzODRjMTEuNSAwIDIyLjItNi4yIDI3LjgtMTYuMnM1LjUtMjIuMy0uNC0zMi4ybC05Ni0xNjB6TTI4OCAzMTJWNDU2YzAgMjIuMSAxNy45IDQwIDQwIDQwSDQ3MmMyMi4xIDAgNDAtMTcuOSA0MC00MFYzMTJjMC0yMi4xLTE3LjktNDAtNDAtNDBIMzI4Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHpNMTI4IDUxMmExMjggMTI4IDAgMSAwIDAtMjU2IDEyOCAxMjggMCAxIDAgMCAyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoYXJlRnJvbVNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIgMjI0SDMwNS41Yy00NSAwLTgxLjUgMzYuNS04MS41IDgxLjVjMCAyMi4zIDEwLjMgMzQuMyAxOS4yIDQwLjVjNi44IDQuNyAxMi44IDEyIDEyLjggMjAuM2MwIDkuOC04IDE3LjgtMTcuOCAxNy44aC0yLjVjLTIuNCAwLTQuOC0uNC03LjEtMS40QzIxMC44IDM3NC44IDEyOCAzMzMuNCAxMjggMjQwYzAtNzkuNSA2NC41LTE0NCAxNDQtMTQ0aDgwVjM0LjdDMzUyIDE1LjUgMzY3LjUgMCAzODYuNyAwYzguNiAwIDE2LjggMy4yIDIzLjIgOC45TDU0OC4xIDEzMy4zYzcuNiA2LjggMTEuOSAxNi41IDExLjkgMjYuN3MtNC4zIDE5LjktMTEuOSAyNi43bC0xMzkgMTI1LjFjLTUuOSA1LjMtMTMuNSA4LjItMjEuNCA4LjJIMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYyMjR6TTgwIDk2Yy04LjggMC0xNiA3LjItMTYgMTZWNDMyYzAgOC44IDcuMiAxNiAxNiAxNkg0MDBjOC44IDAgMTYtNy4yIDE2LTE2VjM4NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMydjQ4YzAgNDQuMi0zNS44IDgwLTgwIDgwSDgwYy00NC4yIDAtODAtMzUuOC04MC04MFYxMTJDMCA2Ny44IDM1LjggMzIgODAgMzJoNDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoYXJlTm9kZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyIDIyNGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZjMCA0IC4yIDggLjcgMTEuOWwtOTQuMSA0N0MxNDUuNCAxNzAuMiAxMjEuOSAxNjAgOTYgMTYwYy01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2YzI1LjkgMCA0OS40LTEwLjIgNjYuNi0yNi45bDk0LjEgNDdjLS41IDMuOS0uNyA3LjgtLjcgMTEuOWMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2cy00My05Ni05Ni05NmMtMjUuOSAwLTQ5LjQgMTAuMi02Ni42IDI2LjlsLTk0LjEtNDdjLjUtMy45IC43LTcuOCAuNy0xMS45cy0uMi04LS43LTExLjlsOTQuMS00N0MzMDIuNiAyMTMuOCAzMjYuMSAyMjQgMzUyIDIyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA3IDM0LjhjLTExLjUgNS4xLTE5IDE2LjYtMTkgMjkuMnY2NEgxNzZDNzguOCAxMjggMCAyMDYuOCAwIDMwNEMwIDQxNy4zIDgxLjUgNDY3LjkgMTAwLjIgNDc4LjFjMi41IDEuNCA1LjMgMS45IDguMSAxLjljMTAuOSAwIDE5LjctOC45IDE5LjctMTkuN2MwLTcuNS00LjMtMTQuNC05LjgtMTkuNUMxMDguOCA0MzEuOSA5NiA0MTQuNCA5NiAzODRjMC01MyA0My05NiA5Ni05Nmg5NnY2NGMwIDEyLjYgNy40IDI0LjEgMTkgMjkuMnMyNSAzIDM0LjQtNS40bDE2MC0xNDRjNi43LTYuMSAxMC42LTE0LjcgMTAuNi0yMy44cy0zLjgtMTcuNy0xMC42LTIzLjhsLTE2MC0xNDRjLTkuNC04LjUtMjIuOS0xMC42LTM0LjQtNS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGVldFBsYXN0aWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMjI0VjM4NGMwLTE3LjcgMTQuMy0zMiAzMi0zMkgzODRWNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRINjRDMjguNyAwIDAgMjguNyAwIDY0VjQ0OHpNMTcxLjMgNzUuM2wtOTYgOTZjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsOTYtOTZjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42em05NiAzMmwtMTYwIDE2MGMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwxNjAtMTYwYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnpNMzg0IDM4NEgyNTZWNTEyTDM4NCAzODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoZWtlbFNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY5NkgxOTJjMzUuMyAwIDY0IDI4LjcgNjQgNjRWMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMTYwYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4SDMyek0zMjAgNDgwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4VjY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjM1MmMwIDM1LjMtMjguNyA2NC02NCA2NEgxOTJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMkgzMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoaWVsZENhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNjkuNCAyLjlDMjY1LjIgMSAyNjAuNyAwIDI1NiAwcy05LjIgMS0xMy40IDIuOUw1NC4zIDgyLjhjLTIyIDkuMy0zOC40IDMxLTM4LjMgNTcuMmMuNSA5OS4yIDQxLjMgMjgwLjcgMjEzLjYgMzYzLjJjMTYuNyA4IDM2LjEgOCA1Mi44IDBDNDU0LjcgNDIwLjcgNDk1LjUgMjM5LjIgNDk2IDE0MGMuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjY5LjQgMi45ek0xNjAgMTU0LjRjMC01LjggNC43LTEwLjQgMTAuNC0xMC40aC4yYzMuNCAwIDYuNSAxLjYgOC41IDQuM2w0MCA1My4zYzMgNCA3LjggNi40IDEyLjggNi40aDQ4YzUgMCA5LjgtMi40IDEyLjgtNi40bDQwLTUzLjNjMi0yLjcgNS4yLTQuMyA4LjUtNC4zaC4yYzUuOCAwIDEwLjQgNC43IDEwLjQgMTAuNFYyNzJjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZWMTU0LjR6TTIxNiAyODhhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyem05Ni0xNmExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGllbGREb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjY5LjQgMi45QzI2NS4yIDEgMjYwLjcgMCAyNTYgMHMtOS4yIDEtMTMuNCAyLjlMNTQuMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjJjLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yYzE2LjcgOCAzNi4xIDggNTIuOCAwQzQ1NC43IDQyMC43IDQ5NS41IDIzOS4yIDQ5NiAxNDBjLjEtMjYuMi0xNi4zLTQ3LjktMzguMy01Ny4yTDI2OS40IDIuOXpNMTYwLjkgMjg2LjJjNC44IDEuMiA5LjkgMS44IDE1LjEgMS44YzM1LjMgMCA2NC0yOC43IDY0LTY0VjE2MGg0NC4yYzEyLjEgMCAyMy4yIDYuOCAyOC42IDE3LjdMMzIwIDE5Mmg2NGM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA0NC4yLTM1LjggODAtODAgODBIMjcydjUwLjdjMCA3LjMtNS45IDEzLjMtMTMuMyAxMy4zYy0xLjggMC0zLjYtLjQtNS4yLTEuMWwtOTguNy00Mi4zYy02LjYtMi44LTEwLjgtOS4zLTEwLjgtMTYuNGMwLTIuOCAuNi01LjUgMS45LThsMTUtMzB6TTE2MCAxNjBoNDAgOHYzMiAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxNzZjMC04LjggNy4yLTE2IDE2LTE2em0xMjggNDhhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hpZWxkSGFsdmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAwYzQuNiAwIDkuMiAxIDEzLjQgMi45TDQ1Ny43IDgyLjhjMjIgOS4zIDM4LjQgMzEgMzguMyA1Ny4yYy0uNSA5OS4yLTQxLjMgMjgwLjctMjEzLjYgMzYzLjJjLTE2LjcgOC0zNi4xIDgtNTIuOCAwQzU3LjMgNDIwLjcgMTYuNSAyMzkuMiAxNiAxNDBjLS4xLTI2LjIgMTYuMy00Ny45IDM4LjMtNTcuMkwyNDIuNyAyLjlDMjQ2LjggMSAyNTEuNCAwIDI1NiAwem0wIDY2LjhWNDQ0LjhDMzk0IDM3OCA0MzEuMSAyMzAuMSA0MzIgMTQxLjRMMjU2IDY2LjhsMCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGllbGRIZWFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNjkuNCAyLjlDMjY1LjIgMSAyNjAuNyAwIDI1NiAwcy05LjIgMS0xMy40IDIuOUw1NC4zIDgyLjhjLTIyIDkuMy0zOC40IDMxLTM4LjMgNTcuMmMuNSA5OS4yIDQxLjMgMjgwLjcgMjEzLjYgMzYzLjJjMTYuNyA4IDM2LjEgOCA1Mi44IDBDNDU0LjcgNDIwLjcgNDk1LjUgMjM5LjIgNDk2IDE0MGMuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjY5LjQgMi45ek0xNDQgMjIxLjNjMC0zMy44IDI3LjQtNjEuMyA2MS4zLTYxLjNjMTYuMiAwIDMxLjggNi41IDQzLjMgMTcuOWw3LjQgNy40IDcuNC03LjRjMTEuNS0xMS41IDI3LjEtMTcuOSA0My4zLTE3LjljMzMuOCAwIDYxLjMgMjcuNCA2MS4zIDYxLjNjMCAxNi4yLTYuNSAzMS44LTE3LjkgNDMuM2wtODIuNyA4Mi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtODIuNy04Mi43Yy0xMS41LTExLjUtMTcuOS0yNy4xLTE3LjktNDMuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hpZWxkVmlydXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjY5LjQgMi45QzI2NS4yIDEgMjYwLjcgMCAyNTYgMHMtOS4yIDEtMTMuNCAyLjlMNTQuMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjJjLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yYzE2LjcgOCAzNi4xIDggNTIuOCAwQzQ1NC43IDQyMC43IDQ5NS41IDIzOS4yIDQ5NiAxNDBjLjEtMjYuMi0xNi4zLTQ3LjktMzguMy01Ny4yTDI2OS40IDIuOXpNMjU2IDExMmM4LjggMCAxNiA3LjIgMTYgMTZjMCAzMyAzOS45IDQ5LjUgNjMuMiAyNi4yYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNkMzMzQuNSAyMDAuMSAzNTEgMjQwIDM4NCAyNDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZjLTMzIDAtNDkuNSAzOS45LTI2LjIgNjMuMmM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwQzMxMS45IDMzNC41IDI3MiAzNTEgMjcyIDM4NGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmMwLTMzLTM5LjktNDkuNS02My4yLTI2LjJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZDMTc3LjUgMzExLjkgMTYxIDI3MiAxMjggMjcyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2YzMzIDAgNDkuNS0zOS45IDI2LjItNjMuMmMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwQzIwMC4xIDE3Ny41IDI0MCAxNjEgMjQwIDEyOGMwLTguOCA3LjItMTYgMTYtMTZ6TTIzMiAyNTZhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em03MiAzMmExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGllbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDBjNC42IDAgOS4yIDEgMTMuNCAyLjlMNDU3LjcgODIuOGMyMiA5LjMgMzguNCAzMSAzOC4zIDU3LjJjLS41IDk5LjItNDEuMyAyODAuNy0yMTMuNiAzNjMuMmMtMTYuNyA4LTM2LjEgOC01Mi44IDBDNTcuMyA0MjAuNyAxNi41IDIzOS4yIDE2IDE0MGMtLjEtMjYuMiAxNi4zLTQ3LjkgMzguMy01Ny4yTDI0Mi43IDIuOUMyNDYuOCAxIDI1MS40IDAgMjU2IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMySDM1MmMxNy43IDAgMzIgMTQuMyAzMiAzMlY2NGg0OGMyNi41IDAgNDggMjEuNSA0OCA0OFYyNDBsNDQuNCAxNC44YzIzLjEgNy43IDI5LjUgMzcuNSAxMS41IDUzLjlsLTEwMSA5Mi42Yy0xNi4yIDkuNC0zNC43IDE1LjEtNTAuOSAxNS4xYy0xOS42IDAtNDAuOC03LjctNTkuMi0yMC4zYy0yMi4xLTE1LjUtNTEuNi0xNS41LTczLjcgMGMtMTcuMSAxMS44LTM4IDIwLjMtNTkuMiAyMC4zYy0xNi4yIDAtMzQuNy01LjctNTAuOS0xNS4xbC0xMDEtOTIuNmMtMTgtMTYuNS0xMS42LTQ2LjIgMTEuNS01My45TDk2IDI0MFYxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhoNDhWMzJ6TTE2MCAyMTguN2wxMDcuOC0zNS45YzEzLjEtNC40IDI3LjMtNC40IDQwLjUgMEw0MTYgMjE4LjdWMTI4SDE2MHY5MC43ek0zMDYuNSA0MjEuOUMzMjkgNDM3LjQgMzU2LjUgNDQ4IDM4NCA0NDhjMjYuOSAwIDU1LjQtMTAuOCA3Ny40LTI2LjFsMCAwYzExLjktOC41IDI4LjEtNy44IDM5LjIgMS43YzE0LjQgMTEuOSAzMi41IDIxIDUwLjYgMjUuMmMxNy4yIDQgMjcuOSAyMS4yIDIzLjkgMzguNHMtMjEuMiAyNy45LTM4LjQgMjMuOWMtMjQuNS01LjctNDQuOS0xNi41LTU4LjItMjVDNDQ5LjUgNTAxLjcgNDE3IDUxMiAzODQgNTEyYy0zMS45IDAtNjAuNi05LjktODAuNC0xOC45Yy01LjgtMi43LTExLjEtNS4zLTE1LjYtNy43Yy00LjUgMi40LTkuNyA1LjEtMTUuNiA3LjdjLTE5LjggOS00OC41IDE4LjktODAuNCAxOC45Yy0zMyAwLTY1LjUtMTAuMy05NC41LTI1LjhjLTEzLjQgOC40LTMzLjcgMTkuMy01OC4yIDI1Yy0xNy4yIDQtMzQuNC02LjctMzguNC0yMy45czYuNy0zNC40IDIzLjktMzguNGMxOC4xLTQuMiAzNi4yLTEzLjMgNTAuNi0yNS4yYzExLjEtOS40IDI3LjMtMTAuMSAzOS4yLTEuN2wwIDBDMTM2LjcgNDM3LjIgMTY1LjEgNDQ4IDE5MiA0NDhjMjcuNSAwIDU1LTEwLjYgNzcuNS0yNi4xYzExLjEtNy45IDI1LjktNy45IDM3IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoaXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxMS44IDBjNy44IDAgMTQuMyA1LjcgMTYuNyAxMy4yQzI0MC44IDUxLjkgMjc3LjEgODAgMzIwIDgwczc5LjItMjguMSA5MS41LTY2LjhDNDEzLjkgNS43IDQyMC40IDAgNDI4LjIgMGgxMi42YzIyLjUgMCA0NC4yIDcuOSA2MS41IDIyLjNMNjI4LjUgMTI3LjRjNi42IDUuNSAxMC43IDEzLjUgMTEuNCAyMi4xcy0yLjEgMTcuMS03LjggMjMuNmwtNTYgNjRjLTExLjQgMTMuMS0zMS4yIDE0LjYtNDQuNiAzLjVMNDgwIDE5Ny43VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEgyMjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjE5Ny43bC01MS41IDQyLjljLTEzLjMgMTEuMS0zMy4xIDkuNi00NC42LTMuNWwtNTYtNjRjLTUuNy02LjUtOC41LTE1LTcuOC0yMy42czQuOC0xNi42IDExLjQtMjIuMUwxMzcuNyAyMi4zQzE1NSA3LjkgMTc2LjcgMCAxOTkuMiAwaDEyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNob2VQcmludHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDBDMzUyLjMgMCAyNTYgMzIgMjU2IDMyVjE2MGM0OCAwIDc2IDE2IDEwNCAzMnM1NiAzMiAxMDQgMzJjNTYuNCAwIDE3Ni0xNiAxNzYtOTZTNTEyIDAgNDE2IDB6TTEyOCA5NmMwIDM1LjMgMjguNyA2NCA2NCA2NGgzMlYzMkgxOTJjLTM1LjMgMC02NCAyOC43LTY0IDY0ek0yODggNTEyYzk2IDAgMjI0LTQ4IDIyNC0xMjhzLTExOS42LTk2LTE3Ni05NmMtNDggMC03NiAxNi0xMDQgMzJzLTU2IDMyLTEwNCAzMlY0ODBzOTYuMyAzMiAxNjAgMzJ6TTAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDk2VjM1Mkg2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNob3BMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2LjggMTkySDQ0OS42YzIwLjItMTkuOCA0Ny45LTMyIDc4LjQtMzJjMzAuNSAwIDU4LjEgMTIuMiA3OC4zIDMxLjljMTguOS0xLjYgMzMuNy0xNy40IDMzLjctMzYuN2MwLTcuMy0yLjItMTQuNC02LjItMjAuNEw1NTguMiAyMS40QzU0OS4zIDggNTM0LjQgMCA1MTguMyAwSDEyMS43Yy0xNiAwLTMxIDgtMzkuOSAyMS40TDYuMiAxMzQuN2MtNCA2LjEtNi4yIDEzLjItNi4yIDIwLjRDMCAxNzUuNSAxNi41IDE5MiAzNi44IDE5MnpNMzg0IDIyNEgzMjBWMzg0SDEyOFYyMjRINjRWMzg0djgwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDMzNmMyNi41IDAgNDgtMjEuNSA0OC00OFYzODQgMzUyIDIyNHptMTQ0IDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMydjQ4SDQ5NlYyNzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS04MCAzMnY0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMySDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMlYzNTJjMC0xNy43LTE0LjMtMzItMzItMzJWMjcyYzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaG9wU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzguOCA1LjFDMjguNC0zLjEgMTMuMy0xLjIgNS4xIDkuMlMtMS4yIDM0LjcgOS4yIDQyLjlsNTkyIDQ2NGMxMC40IDguMiAyNS41IDYuMyAzMy43LTQuMXM2LjMtMjUuNS00LjEtMzMuN2wtNTQuOC00M1YyMjRINTEyVjM3NkwzODQgMjc1LjdWMjI0SDMyMHYxLjVMMjc3LjIgMTkySDYwMy4yYzIwLjMgMCAzNi44LTE2LjUgMzYuOC0zNi44YzAtNy4zLTIuMi0xNC40LTYuMi0yMC40TDU1OC4yIDIxLjRDNTQ5LjMgOCA1MzQuNCAwIDUxOC4zIDBIMTIxLjdjLTE2IDAtMzEgOC0zOS45IDIxLjRMNzQuMSAzMi44IDM4LjggNS4xek0zNi44IDE5Mmg4NUwyMSAxMTIuNSA2LjIgMTM0LjdjLTQgNi4xLTYuMiAxMy4yLTYuMiAyMC40QzAgMTc1LjUgMTYuNSAxOTIgMzYuOCAxOTJ6TTMyMCAzODRIMTI4VjIyNEg2NFYzODR2ODBjMCAyNi41IDIxLjUgNDggNDggNDhIMzM2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjM5OC41bC02NC01MC40VjM4NHpNNTQ0IDUxMmwtLjMgMGguNmwtLjMgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNi44IDE5Mkg2MDMuMmMyMC4zIDAgMzYuOC0xNi41IDM2LjgtMzYuOGMwLTcuMy0yLjItMTQuNC02LjItMjAuNEw1NTguMiAyMS40QzU0OS4zIDggNTM0LjQgMCA1MTguMyAwSDEyMS43Yy0xNiAwLTMxIDgtMzkuOSAyMS40TDYuMiAxMzQuN2MtNCA2LjEtNi4yIDEzLjItNi4yIDIwLjRDMCAxNzUuNSAxNi41IDE5MiAzNi44IDE5MnpNNjQgMjI0VjM4NHY4MGMwIDI2LjUgMjEuNSA0OCA0OCA0OEgzMzZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzg0IDIyNEgzMjBWMzg0SDEyOFYyMjRINjR6bTQ0OCAwVjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjIyNEg1MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNob3dlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAxMzEuOUM2NCAxMTIuMSA4MC4xIDk2IDk5LjkgOTZjOS41IDAgMTguNiAzLjggMjUuNCAxMC41bDE2LjIgMTYuMmMtMjEgMzguOS0xNy40IDg3LjUgMTAuOSAxMjNMMTUxIDI0N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwTDM0NSAxMjFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMS4zIDEuM2MtMzUuNS0yOC4zLTg0LjItMzEuOS0xMjMtMTAuOUwxNzAuNSA2MS4zQzE1MS44IDQyLjUgMTI2LjQgMzIgOTkuOSAzMkM0NC43IDMyIDAgNzYuNyAwIDEzMS45VjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjEzMS45ek0yNTYgMzUyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptNjQgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMC0xMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em02NCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wLTEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTY0IDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTMyLTMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hyaW1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZzMjguNyA2NCA2NCA2NGgxYzMuNyA4OC45IDc3IDE2MCAxNjcgMTYwaDU2VjEyOEgyNjQgODguOCA2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg0NjRjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZINjR6TTIyNCA0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRoNzJWNDA3LjhsLTY0LjEtMjIuNGMtMTIuNS00LjQtMjYuMiAyLjItMzAuNiAxNC43czIuMiAyNi4yIDE0LjcgMzAuNmw0LjUgMS42QzIzMyA0MzMuOSAyMjQgNDQzLjkgMjI0IDQ1NnptMTI4IDIzLjNjMzYuNC0zLjMgNjkuNS0xNy42IDk2LjEtMzkuNmwtODYuNS0zNC42Yy0zIDEuOC02LjIgMy4yLTkuNiA0LjN2NjkuOXpNNDcyLjYgNDE1YzI0LjYtMzAuMyAzOS40LTY4LjkgMzkuNC0xMTFjMC0xMi4zLTEuMy0yNC4zLTMuNy0zNS45TDM4Mi44IDM1NS4xYy44IDMuNCAxLjIgNyAxLjIgMTAuNmMwIDQuNi0uNyA5LTEuOSAxMy4xTDQ3Mi42IDQxNXpNMzM2IDEyOEgzMjBWMzIwaDE4LjNjOS45IDAgMTkuMSAzLjIgMjYuNiA4LjVsMTMzLjUtOTIuNEM0NzEuOCAxNzIuNiA0MDkuMSAxMjggMzM2IDEyOHpNMTY4IDE5MmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaHVmZmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMy44IDM0LjRjMTItNSAyNS43LTIuMiAzNC45IDYuOWw2NCA2NGM2IDYgOS40IDE0LjEgOS40IDIyLjZzLTMuNCAxNi42LTkuNCAyMi42bC02NCA2NGMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlzLTE5LjgtMTYuNi0xOS44LTI5LjZWMTYwSDM1MmMtMTAuMSAwLTE5LjYgNC43LTI1LjYgMTIuOEwyODQgMjI5LjMgMjQ0IDE3NmwzMS4yLTQxLjZDMjkzLjMgMTEwLjIgMzIxLjggOTYgMzUyIDk2aDMyVjY0YzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZ6TTE2NCAyODIuN0wyMDQgMzM2bC0zMS4yIDQxLjZDMTU0LjcgNDAxLjggMTI2LjIgNDE2IDk2IDQxNkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg5NmMxMC4xIDAgMTkuNi00LjcgMjUuNi0xMi44TDE2NCAyODIuN3ptMjc0LjYgMTg4Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOXMtMTkuOC0xNi42LTE5LjgtMjkuNlY0MTZIMzUyYy0zMC4yIDAtNTguNy0xNC4yLTc2LjgtMzguNEwxMjEuNiAxNzIuOGMtNi04LjEtMTUuNS0xMi44LTI1LjYtMTIuOEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg5NmMzMC4yIDAgNTguNyAxNC4yIDc2LjggMzguNEwzMjYuNCAzMzkuMmM2IDguMSAxNS41IDEyLjggMjUuNiAxMi44aDMyVjMyMGMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDY0IDY0YzYgNiA5LjQgMTQuMSA5LjQgMjIuNnMtMy40IDE2LjYtOS40IDIyLjZsLTY0IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaHV0dGxlU3BhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMwIDQ4MGM0MC42IDAgODAuNC0xMSAxMTUuMi0zMS45TDM1MiAzODRsLTIyNCAwIDAgOTZoMnpNMzUyIDEyOEwyNDUuMiA2My45QzIxMC40IDQzIDE3MC42IDMyIDEzMCAzMmgtMnY5NmwyMjQgMHpNOTYgMTI4bDAtOTZIODBDNTMuNSAzMiAzMiA1My41IDMyIDgwdjQ4aDhjLTIyLjEgMC00MCAxNy45LTQwIDQwdjE2VjMyOHYxNmMwIDIyLjEgMTcuOSA0MCA0MCA0MEgzMnY0OGMwIDI2LjUgMjEuNSA0OCA0OCA0OEg5NmwwLTk2aDhjMjYuMiAwIDQ5LjQtMTIuNiA2NC0zMkg0NTZjNjkuMyAwIDEzNS0yMi43IDE3OS4yLTgxLjZjNi40LTguNSA2LjQtMjAuMyAwLTI4LjhDNTkxIDE4Mi43IDUyNS4zIDE2MCA0NTYgMTYwSDE2OGMtMTQuNi0xOS40LTM3LjgtMzItNjQtMzJsLTggMHpNNTEyIDI0My42djI0LjljMCAxOS42LTE1LjkgMzUuNi0zNS42IDM1LjZjLTIuNSAwLTQuNC0yLTQuNC00LjRWMjEyLjRjMC0yLjUgMi00LjQgNC40LTQuNGMxOS42IDAgMzUuNiAxNS45IDM1LjYgMzUuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2lnbkhhbmdpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMlY2NGwzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzUyIDBWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjEyOEgzMkMxNC4zIDEyOCAwIDExMy43IDAgOTZTMTQuMyA2NCAzMiA2NEg2NFYzMkM2NCAxNC4zIDc4LjMgMCA5NiAwem05NiAxNjBINDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMyVjM1MmMwIDE3LjctMTQuMyAzMi0zMiAzMkgxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2lnbmFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNDQ4IDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMyVjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTM1MiAyMjRWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyek0xOTIgMjg4YzE3LjcgMCAzMiAxNC4zIDMyIDMyVjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzMjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTk2IDQxNnY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2lnbmF0dXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiAxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnY3LjhjMCAyNy43LTIuNCA1NS4zLTcuMSA4Mi41bC04NC40IDI1LjNjLTQwLjYgMTIuMi02OC40IDQ5LjYtNjguNCA5MnY3MS45YzAgNDAgMzIuNSA3Mi41IDcyLjUgNzIuNWMyNiAwIDUwLTEzLjkgNjIuOS0zNi41bDEzLjktMjQuM2MyNi44LTQ3IDQ2LjUtOTcuNyA1OC40LTE1MC41bDk0LjQtMjguMy0xMi41IDM3LjVjLTMuMyA5LjgtMS42IDIwLjUgNC40IDI4LjhzMTUuNyAxMy4zIDI2IDEzLjNINTQ0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDQ2MC40bDE4LTUzLjljMy44LTExLjMgLjktMjMuOC03LjQtMzIuNHMtMjAuNy0xMS44LTMyLjItOC40TDMxNi40IDE5OC4xYzIuNC0yMC43IDMuNi00MS40IDMuNi02Mi4zVjEyOGMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NnYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjEyOHptLTkuMiAxNzdsNDktMTQuN2MtMTAuNCAzMy44LTI0LjUgNjYuNC00Mi4xIDk3LjJsLTEzLjkgMjQuM2MtMS41IDIuNi00LjMgNC4zLTcuNCA0LjNjLTQuNyAwLTguNS0zLjgtOC41LTguNVYzMzUuNmMwLTE0LjEgOS4zLTI2LjYgMjIuOC0zMC43ek0yNCAzNjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRINjQuM2MtLjItMi44LS4zLTUuNi0uMy04LjVWMzY4SDI0em01OTIgNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMzA1LjljLTYuNyAxNi4zLTE0LjIgMzIuMy0yMi4zIDQ4SDYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2lnbnNQb3N0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAzMkg2NEM0Ni4zIDMyIDMyIDQ2LjMgMzIgNjR2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJINDQxLjRjNC4yIDAgOC4zLTEuNyAxMS4zLTQuN2w0OC00OGM2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtNDgtNDhjLTMtMy03LjEtNC43LTExLjMtNC43SDI4OGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnpNNDgwIDI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMkgyODhWMTkySDIyNHYzMkg3MC42Yy00LjIgMC04LjMgMS43LTExLjMgNC43bC00OCA0OGMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsNDggNDhjMyAzIDcuMSA0LjcgMTEuMyA0LjdINDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI1NnpNMjg4IDQ4MFYzODRIMjI0djk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpbUNhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEgyNDIuN2MxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyA5NmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zVjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNjRDMCAyOC43IDI4LjcgMCA2NCAwek05NiAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyaDY0VjE5Mkg5NnpNNjQgMzUyaDgwIDk2IDgwVjI4OEgyNDAgMTQ0IDY0djY0ek0zMjAgMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDI1NnY2NGg2NFYyMjR6TTE2MCAxOTJ2NjRoNjRWMTkySDE2MHpNMjg4IDQ0OGMxNy43IDAgMzItMTQuMyAzMi0zMlYzODRIMjU2djY0aDMyek0xNjAgMzg0djY0aDY0VjM4NEgxNjB6TTY0IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzMlYzODRINjR2MzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJzMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2VjI4OEgxNjBWMjY0YzAtMzAuOS0yNS4xLTU2LTU2LTU2SDU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDQ4YzQuNCAwIDggMy42IDggOHYyNEgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkgyNTYgNDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDQwMFYyNjRjMC00LjQgMy42LTggOC04aDU2YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDQwOGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ2MjRIMjg4Vjk2ek00ODAgNDE2VjM4NEgzMnYzMmMwIDUzIDQzIDk2IDk2IDk2SDM4NGM1MyAwIDk2LTQzIDk2LTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaXRlbWFwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOCA4MGMwLTI2LjUgMjEuNS00OCA0OC00OGg2NGMyNi41IDAgNDggMjEuNSA0OCA0OHY2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGgtOHY0MEg0NjRjMzAuOSAwIDU2IDI1LjEgNTYgNTZ2MzJoOGMyNi41IDAgNDggMjEuNSA0OCA0OHY2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0NjRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjM2OGMwLTI2LjUgMjEuNS00OCA0OC00OGg4VjI4OGMwLTQuNC0zLjYtOC04LThIMzEydjQwaDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh2NjRjMCAyNi41LTIxLjUgNDgtNDggNDhIMjU2Yy0yNi41IDAtNDgtMjEuNS00OC00OFYzNjhjMC0yNi41IDIxLjUtNDggNDgtNDhoOFYyODBIMTEyYy00LjQgMC04IDMuNi04IDh2MzJoOGMyNi41IDAgNDggMjEuNSA0OCA0OHY2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMzY4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDhWMjg4YzAtMzAuOSAyNS4xLTU2IDU2LTU2SDI2NFYxOTJoLThjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTa3VsbENyb3NzYm9uZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY4IDEyOGMwIDQ0LjQtMjUuNCA4My41LTY0IDEwNi40VjI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMkgxNzZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjIzNC40Yy0zOC42LTIzLTY0LTYyLjEtNjQtMTA2LjRDODAgNTcuMyAxNDQuNSAwIDIyNCAwczE0NCA1Ny4zIDE0NCAxMjh6TTE2OCAxNzZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xNDQtMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMy40IDI3My43YzcuOS0xNS44IDI3LjEtMjIuMiA0Mi45LTE0LjNMMjI0IDM0OC4ybDE3Ny43LTg4LjhjMTUuOC03LjkgMzUtMS41IDQyLjkgMTQuM3MxLjUgMzUtMTQuMyA0Mi45TDI5NS42IDM4NGwxMzQuOCA2Ny40YzE1LjggNy45IDIyLjIgMjcuMSAxNC4zIDQyLjlzLTI3LjEgMjIuMi00Mi45IDE0LjNMMjI0IDQxOS44IDQ2LjMgNTA4LjZjLTE1LjggNy45LTM1IDEuNS00Mi45LTE0LjNzLTEuNS0zNSAxNC4zLTQyLjlMMTUyLjQgMzg0IDE3LjcgMzE2LjZDMS45IDMwOC43LTQuNSAyODkuNSAzLjQgMjczLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNrdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAzOTguOWM1OC41LTQxLjEgOTYtMTA0LjEgOTYtMTc0LjlDNTEyIDEwMC4zIDM5Ny40IDAgMjU2IDBTMCAxMDAuMyAwIDIyNGMwIDcwLjcgMzcuNSAxMzMuOCA5NiAxNzQuOWMwIC40IDAgLjcgMCAxLjF2NjRjMCAyNi41IDIxLjUgNDggNDggNDhoNDhWNDY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ2NDhoNjRWNDY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ2NDhoNDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNDAwYzAtLjQgMC0uNyAwLTEuMXpNOTYgMjU2YTY0IDY0IDAgMSAxIDEyOCAwQTY0IDY0IDAgMSAxIDk2IDI1NnptMjU2LTY0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjEgOS4yQzEzLjMtMS4yIDI4LjQtMy4xIDM4LjggNS4xbDU5MiA0NjRjMTAuNCA4LjIgMTIuMyAyMy4zIDQuMSAzMy43cy0yMy4zIDEyLjMtMzMuNyA0LjFMOS4yIDQyLjlDLTEuMiAzNC43LTMuMSAxOS42IDUuMSA5LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNsZWlnaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZWMjU2YzAgNTMgNDMgOTYgOTYgOTZ2MzJoNjRWMzUySDM4NHYzMmg2NFYzNTJjNTMgMCA5Ni00MyA5Ni05NlYxNjBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINTEyIDQ4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NDEuM2MwIDMwLjItMjQuNSA1NC43LTU0LjcgNTQuN2MtNzUuNSAwLTE0NS42LTM4LjktMTg1LjYtMTAyLjlsLTQuMy02LjlDMTc0LjIgNjcuNiAxMjUgMzcuNiA3MC43IDMyLjdjLTIuMi0uNS00LjQtLjctNi43LS43SDU1IDMyek02NDAgMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRINjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINTUyYzQ4LjYgMCA4OC0zOS40IDg4LTg4di04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbGlkZXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDU0LjcgMGMxMi4zIDI4LjMgNDAuNSA0OCA3My4zIDQ4czYxLTE5LjcgNzMuMy00OEw0ODAgNDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yNDYuNyAwYy0xMi4zLTI4LjMtNDAuNS00OC03My4zLTQ4cy02MSAxOS43LTczLjMgNDhMMzIgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnptMTI4IDBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMzIwIDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMi04MGMtMzIuOCAwLTYxIDE5LjctNzMuMyA0OEwzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjQ2LjcgMGMxMi4zIDI4LjMgNDAuNSA0OCA3My4zIDQ4czYxLTE5LjcgNzMuMy00OGw1NC43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTU0LjcgMGMtMTIuMy0yOC4zLTQwLjUtNDgtNzMuMy00OHpNMTkyIDEyOGEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTczLjMtNjRDMjUzIDM1LjcgMjI0LjggMTYgMTkyIDE2cy02MSAxOS43LTczLjMgNDhMMzIgNjRDMTQuMyA2NCAwIDc4LjMgMCA5NnMxNC4zIDMyIDMyIDMybDg2LjcgMGMxMi4zIDI4LjMgNDAuNSA0OCA3My4zIDQ4czYxLTE5LjcgNzMuMy00OEw0ODAgMTI4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDI2NS4zIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbW9nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDE0NGMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NEgyOTkuM2MyMi42IDE5LjkgNTIuMiAzMiA4NC43IDMyczYyLjEtMTIuMSA4NC43LTMySDQ5NmM2MS45IDAgMTEyLTUwLjEgMTEyLTExMnMtNTAuMS0xMTItMTEyLTExMmMtMTAuNyAwLTIxIDEuNS0zMC44IDQuM0M0NDMuOCAyNy43IDQwMS4xIDAgMzUyIDBjLTMyLjYgMC02Mi40IDEyLjItODUuMSAzMi4zQzI0Mi4xIDEyLjEgMjEwLjUgMCAxNzYgMEM5Ni41IDAgMzIgNjQuNSAzMiAxNDR6TTYxNiAzNjhIMjgwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0SDYxNmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNHptLTY0IDk2SDQ0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNEg1NTJjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjR6bS0xOTIgMEgyNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNEgzNjBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjR6TTIyNCAzOTJjMC0xMy4zLTEwLjctMjQtMjQtMjRIOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRIMjAwYzEzLjMgMCAyNC0xMC43IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbW9raW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAzMlY0M2MwIDM4LjIgMTUuMiA3NC44IDQyLjIgMTAxLjhsMjEgMjFjMjEgMjEgMzIuOCA0OS41IDMyLjggNzkuMnYxMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYyNDVjMC0xMi43LTUuMS0yNC45LTE0LjEtMzMuOWwtMjEtMjFDNDA1LjkgMTUxLjEgMzg0IDk4LjEgMzg0IDQzVjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6TTU3NiAyNTZWMjQ1YzAtMzguMi0xNS4yLTc0LjgtNDIuMi0xMDEuOGwtMjEtMjFjLTIxLTIxLTMyLjgtNDkuNS0zMi44LTc5LjJWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMlY0M2MwIDEyLjcgNS4xIDI0LjkgMTQuMSAzMy45bDIxIDIxYzM5IDM5IDYwLjkgOTEuOSA2MC45IDE0Ny4xdjExYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyek0wIDQxNmMwLTM1LjMgMjguNy02NCA2NC02NEg0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjQxNnptMjI0IDB2MzJIMzg0VjQxNkgyMjR6bTI4OC02NGMxNy43IDAgMzIgMTQuMyAzMiAzMnY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzODRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzg0YzAtMTcuNyAxNC4zLTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbm93Zmxha2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNjIuMWwxNS0xNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTQ5IDQ5djcwLjNsNjEuNC0zNS44IDE3LjctNjYuMWMzLjQtMTIuOCAxNi42LTIwLjQgMjkuNC0xN3MyMC40IDE2LjYgMTcgMjkuNGwtNS4yIDE5LjMgMjMuNi0xMy44YzE1LjMtOC45IDM0LjktMy43IDQzLjggMTEuNXMzLjggMzQuOS0xMS41IDQzLjhsLTI1LjMgMTQuOCAyMS43IDUuOGMxMi44IDMuNCAyMC40IDE2LjYgMTcgMjkuNHMtMTYuNiAyMC40LTI5LjQgMTdsLTY3LjctMTguMUwyODcuNSAyNTZsNjAuOSAzNS41IDY3LjctMTguMWMxMi44LTMuNCAyNiA0LjIgMjkuNCAxN3MtNC4yIDI2LTE3IDI5LjRsLTIxLjcgNS44IDI1LjMgMTQuOGMxNS4zIDguOSAyMC40IDI4LjUgMTEuNSA0My44cy0yOC41IDIwLjQtNDMuOCAxMS41bC0yMy42LTEzLjggNS4yIDE5LjNjMy40IDEyLjgtNC4yIDI2LTE3IDI5LjRzLTI2LTQuMi0yOS40LTE3bC0xNy43LTY2LjFMMjU2IDMxMS43djcwLjNsNDkgNDljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMTUtMTVWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjQ0OS45bC0xNSAxNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0OS00OVYzMTEuN2wtNjEuNCAzNS44LTE3LjcgNjYuMWMtMy40IDEyLjgtMTYuNiAyMC40LTI5LjQgMTdzLTIwLjQtMTYuNi0xNy0yOS40bDUuMi0xOS4zTDQ4LjEgMzk1LjZjLTE1LjMgOC45LTM0LjkgMy43LTQzLjgtMTEuNXMtMy43LTM0LjkgMTEuNS00My44bDI1LjMtMTQuOC0yMS43LTUuOGMtMTIuOC0zLjQtMjAuNC0xNi42LTE3LTI5LjRzMTYuNi0yMC40IDI5LjQtMTdsNjcuNyAxOC4xTDE2MC41IDI1NiA5OS42IDIyMC41IDMxLjkgMjM4LjZjLTEyLjggMy40LTI2LTQuMi0yOS40LTE3czQuMi0yNiAxNy0yOS40bDIxLjctNS44TDE1LjkgMTcxLjZDLjYgMTYyLjctNC41IDE0My4xIDQuNCAxMjcuOXMyOC41LTIwLjQgNDMuOC0xMS41bDIzLjYgMTMuOC01LjItMTkuM2MtMy40LTEyLjggNC4yLTI2IDE3LTI5LjRzMjYgNC4yIDI5LjQgMTdsMTcuNyA2Ni4xTDE5MiAyMDAuM1YxMjkuOUwxNDMgODFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwxNSAxNVYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU25vd21hbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDEuMSAxNDAuNmMtMiAzLjktMS42IDguNiAxLjIgMTJjNyA4LjUgMTIuOSAxOC4xIDE3LjIgMjguNEw0MDggMTYwLjJWMTIwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR2MTkuNmwyMi41LTkuN2MxMi4yLTUuMiAyNi4zIC40IDMxLjUgMTIuNnMtLjQgMjYuMy0xMi42IDMxLjVsLTU2IDI0LTczLjYgMzEuNWMtLjUgOS41LTIuMSAxOC42LTQuOCAyNy4zYy0xLjIgMy44LS4xIDggMi44IDEwLjhDMzk2LjcgMjk2LjkgNDE2IDMzOC4yIDQxNiAzODRjMCA0NC43LTE4LjMgODUtNDcuOCAxMTQuMWMtOS45IDkuNy0yMy43IDEzLjktMzcuNSAxMy45SDE4MS4zYy0xMy45IDAtMjcuNy00LjItMzcuNS0xMy45QzExNC4zIDQ2OSA5NiA0MjguNyA5NiAzODRjMC00NS44IDE5LjMtODcuMSA1MC4xLTExNi4zYzIuOS0yLjggNC02LjkgMi44LTEwLjhjLTIuNy04LjctNC4zLTE3LjktNC44LTI3LjNMNzAuNSAxOTguMWwtNTYtMjRDMi40IDE2OC44LTMuMyAxNTQuNyAxLjkgMTQyLjVzMTkuMy0xNy44IDMxLjUtMTIuNkw1NiAxMzkuNlYxMjBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHY0MC4yTDE1Mi42IDE4MWM0LjMtMTAuMyAxMC4xLTE5LjkgMTcuMi0yOC40YzIuOC0zLjQgMy4zLTguMSAxLjItMTJDMTY0IDEyNy4yIDE2MCAxMTIuMSAxNjAgOTZjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmMwIDE2LjEtNCAzMS4yLTEwLjkgNDQuNnpNMjI0IDk2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptNDggMTI4YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bS0xNiA4MGExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bTE2IDQ4YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6TTI4OCA5NmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bS00OCAyNHYzLjJjMCAzLjIgLjggNi4zIDIuMyA5bDkgMTYuOWMuOSAxLjcgMi43IDIuOCA0LjcgMi44czMuOC0xLjEgNC43LTIuOGw5LTE2LjljMS41LTIuOCAyLjMtNS45IDIuMy05VjEyMGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU25vd3Bsb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk4LjkgNjRsNjguNiAxNjBIMjU2bC02NC02NFY2NEgyOTguOXpNNDQ1LjEgMjQyLjdsLTg3LjQtMjA0QzM0Ny42IDE1LjMgMzI0LjUgMCAyOTguOSAwSDE3NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhWMTYwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMlYyOTguOEMyNi4yIDMxNi44IDAgMzU1LjMgMCA0MDBjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJIMzY4YzYxLjkgMCAxMTItNTAuMSAxMTItMTEyYzAtMTcuMi0zLjktMzMuNS0xMC44LTQ4SDUxMnY1MC43YzAgMTcgNi43IDMzLjMgMTguNyA0NS4zbDU0LjYgNTQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDU3NiA0MDIuN1YzMjAgMjM1LjJMNjMzIDE2NGMxMS0xMy44IDguOC0zMy45LTUtNDVzLTMzLjktOC44LTQ1IDVsLTU3IDcxLjJjLTkuMSAxMS4zLTE0IDI1LjQtMTQgNDBWMjg4SDQ0OFYyNTYuN2MuMS0yLjQtLjItNC44LS42LTcuMXMtMS4yLTQuNy0yLjItNi44ek0zNjggMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4SDExMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OEgzNjh6TTE0NCA0MDBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptMjE2IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptLTU2LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTIwMCA0MjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb2FwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTMyMCAyNTZhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6TTQxNiAzMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wIDE2MGMwIDI3LjYtMTEuNyA1Mi41LTMwLjQgNzAuMUM0MjIuMSAyNzUuNyA0NDggMzEwLjggNDQ4IDM1MmMwIDUzLTQzIDk2LTk2IDk2SDE2MGMtNTMgMC05Ni00My05Ni05NnM0My05NiA5Ni05Nmg4OC40Yy0xNS4yLTE3LTI0LjQtMzkuNC0yNC40LTY0SDk2Yy01MyAwLTk2IDQzLTk2IDk2VjQxNmMwIDUzIDQzIDk2IDk2IDk2SDQxNmM1MyAwIDk2LTQzIDk2LTk2VjI4OGMwLTUzLTQzLTk2LTk2LTk2ek0xNjAgMjg4Yy0zNS4zIDAtNjQgMjguNy02NCA2NHMyOC43IDY0IDY0IDY0SDM1MmMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NEgzMjAgMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb2NrcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzUuMiA0NzYuNmMtOS43LTE4LTE1LjItMzguNy0xNS4yLTYwLjZjMC00MC4zIDE5LTc4LjIgNTEuMi0xMDIuNGw2NC00OGM4LjEtNiAxMi44LTE1LjUgMTIuOC0yNS42Vjk2SDEyOFYyNDBjMCAyMC4xLTkuNSAzOS4xLTI1LjYgNTEuMmwtNjQgNDhDMTQuMiAzNTcuMyAwIDM4NS44IDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZjMjAuOCAwIDQxLTYuNyA1Ny42LTE5LjJsMjEuNi0xNi4yek0xMjggNjRIMjg4VjQ4YzAtMTQuNSAzLjktMjguMiAxMC43LTM5LjlDMjkxIDMgMjgxLjkgMCAyNzIgMEgxNzZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4VjY0ek0zMjAgOTZWMjQwYzAgMjAuMS05LjUgMzkuMS0yNS42IDUxLjJsLTY0IDQ4QzIwNi4yIDM1Ny4zIDE5MiAzODUuOCAxOTIgNDE2YzAgNTMgNDMgOTYgOTYgOTZjMjAuOCAwIDQxLTYuNyA1Ny42LTE5LjJsMTE1LjItODYuNEM0OTMgMzgyLjIgNTEyIDM0NC4zIDUxMiAzMDRWOTZIMzIwek01MTIgNjRWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhIMzY4Yy0yNi41IDAtNDggMjEuNS00OCA0OFY2NEg1MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvbGFyUGFuZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIyLjIgMEM5MS43IDAgNjUuNSAyMS41IDU5LjUgNTEuNEw4LjMgMzA3LjRDLjQgMzQ3IDMwLjYgMzg0IDcxIDM4NEgyODh2NjRIMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQxNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzNTJWMzg0SDU2OWM0MC40IDAgNzAuNy0zNi45IDYyLjgtNzYuNmwtNTEuMi0yNTZDNTc0LjUgMjEuNSA1NDguMyAwIDUxNy44IDBIMTIyLjJ6TTI2MC45IDY0SDM3OS4xbDEwLjQgMTA0aC0xMzlMMjYwLjkgNjR6TTIwMi4zIDE2OEgxMDEuNEwxMjIuMiA2NGg5MC40TDIwMi4zIDE2OHpNOTEuOCAyMTZIMTk3LjVMMTg3LjEgMzIwSDcxTDkxLjggMjE2em0xNTMuOSAwSDM5NC4zbDEwLjQgMTA0LTE2OS40IDAgMTAuNC0xMDR6bTE5Ni44IDBINTQ4LjJMNTY5IDMyMGgtMTE2TDQ0Mi41IDIxNnptOTYtNDhINDM3LjdMNDI3LjMgNjRoOTAuNGwzMS40LTYuM0w1MTcuOCA2NGwyMC44IDEwNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29ydERvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTgyLjYgNDcwLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC0xMjgtMTI4Yy05LjItOS4yLTExLjktMjIuOS02LjktMzQuOXMxNi42LTE5LjggMjkuNi0xOS44SDI4OGMxMi45IDAgMjQuNiA3LjggMjkuNiAxOS44czIuMiAyNS43LTYuOSAzNC45bC0xMjggMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb3J0VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTgyLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTEyOCAxMjhjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45czE2LjYgMTkuOCAyOS42IDE5LjhIMjg4YzEyLjkgMCAyNC42LTcuOCAyOS42LTE5LjhzMi4yLTI1LjctNi45LTM0LjlsLTEyOC0xMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTM3LjQgNDEuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxMjggMTI4YzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45cy0xNi42IDE5LjgtMjkuNiAxOS44SDMyYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOWwxMjgtMTI4em0wIDQyOS4zbC0xMjgtMTI4Yy05LjItOS4yLTExLjktMjIuOS02LjktMzQuOXMxNi42LTE5LjggMjkuNi0xOS44SDI4OGMxMi45IDAgMjQuNiA3LjggMjkuNiAxOS44czIuMiAyNS43LTYuOSAzNC45bC0xMjggMTI4Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3BhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4My4xIDIzNS4zYzMzLjcgMjAuNyA2Mi45IDQ4LjEgODUuOCA4MC41YzcgOS45IDEzLjQgMjAuMyAxOS4xIDMxYzUuNy0xMC44IDEyLjEtMjEuMSAxOS4xLTMxYzIyLjktMzIuNCA1Mi4xLTU5LjggODUuOC04MC41QzQzNy42IDIwNy44IDQ5MC4xIDE5MiA1NDYgMTkyaDkuOWMxMS4xIDAgMjAuMSA5IDIwLjEgMjAuMUM1NzYgMzYwLjEgNDU2LjEgNDgwIDMwOC4xIDQ4MEgyODggMjY3LjlDMTE5LjkgNDgwIDAgMzYwLjEgMCAyMTIuMUMwIDIwMSA5IDE5MiAyMC4xIDE5MkgzMGM1NS45IDAgMTA4LjQgMTUuOCAxNTMuMSA0My4zek0zMDEuNSAzNy42YzE1LjcgMTYuOSA2MS4xIDcxLjggODQuNCAxNjQuNmMtMzggMjEuNi03MS40IDUwLjgtOTcuOSA4NS42Yy0yNi41LTM0LjgtNTkuOS02My45LTk3LjktODUuNmMyMy4yLTkyLjggNjguNi0xNDcuNyA4NC40LTE2NC42QzI3OCAzMy45IDI4Mi45IDMyIDI4OCAzMnMxMCAxLjkgMTMuNSA1LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNwYWdoZXR0aU1vbnN0ZXJGbHlpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA4IDY0YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTQ4IDBjMCAxNi4yLTYgMzEuMS0xNiA0Mi4zbDE1LjYgMzEuMmMxOC43LTYgMzkuOS05LjUgNjQuNC05LjVzNDUuOCAzLjUgNjQuNCA5LjVMNDAwIDEwNi4zQzM5MCA5NS4xIDM4NCA4MC4yIDM4NCA2NGMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0Yy0xLjcgMC0zLjQtLjEtNS4xLS4yTDQyNy44IDE1OGMyMS4xIDEzLjYgMzcuNyAzMC4yIDUxLjQgNDYuNGM3LjEgOC4zIDEzLjUgMTYuNiAxOS4zIDI0bDEuNCAxLjhjNi4zIDguMSAxMS42IDE0LjggMTYuNyAyMC40QzUyNy4zIDI2Mi4zIDUzMi43IDI2NCA1MzYgMjY0YzIuNSAwIDQuMy0uNiA3LjEtMy4zYzMuNy0zLjUgNy4xLTguOCAxMi41LTE3LjRsLjYtLjljNC42LTcuNCAxMS0xNy42IDE5LjQtMjUuN2M5LjctOS4zIDIyLjktMTYuNyA0MC40LTE2LjdjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTIuNSAwLTQuMyAuNi03LjEgMy4zYy0zLjcgMy41LTcuMSA4LjgtMTIuNSAxNy40bC0uNiAuOWMtNC42IDcuNC0xMSAxNy42LTE5LjQgMjUuN2MtOS43IDkuMy0yMi45IDE2LjctNDAuNCAxNi43Yy0xOC41IDAtMzIuOS04LjUtNDQuMy0xOC42Yy0zLjEgNC02LjYgOC4zLTEwLjUgMTIuN2MxLjQgNC4zIDIuOCA4LjUgNCAxMi41Yy45IDMgMS44IDUuOCAyLjYgOC42YzMgOS44IDUuNSAxOC4yIDguNiAyNS45YzMuOSA5LjggNy40IDE1LjQgMTAuOCAxOC41YzIuNiAyLjQgNS45IDQuMyAxMi44IDQuM2M4LjcgMCAxNi45LTQuMiAzMy43LTEzLjJjMTUtOCAzNS43LTE4LjggNjIuMy0xOC44YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0xMy40IDAtMjQuNyA1LjItMzkuNyAxMy4yYy0xIC42LTIuMSAxLjEtMy4yIDEuN0M1NTkuOSA0MTQgNTQxLjQgNDI0IDUyMCA0MjRjLTE4LjQgMC0zMy42LTYuMS00NS41LTE3LjJjLTExLjEtMTAuMy0xNy45LTIzLjctMjIuNy0zNmMtMy42LTktNi43LTE5LjEtOS41LTI4LjVjLTE2LjQgMTIuMy0zNi4xIDIzLjYtNTguOSAzMS4zYzMuNiAxMC44IDguNCAyMy41IDE0LjQgMzYuMmM3LjUgMTUuOSAxNi4yIDMwLjQgMjUuOCA0MC41QzQzMyA0NjAuNSA0NDEuMiA0NjQgNDQ4IDQ2NGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjUuMiAwLTQ1LTEzLjUtNTkuNS0yOC44Yy0xNC41LTE1LjQtMjUuNy0zNC45LTM0LjItNTNjLTgtMTctMTQuMS0zMy44LTE4LjMtNDYuOWMtNS4yIC40LTEwLjYgLjYtMTYgLjZzLTEwLjgtLjItMTYtLjZjLTQuMiAxMy0xMC4zIDI5LjktMTguMyA0Ni45Yy04LjUgMTguMS0xOS44IDM3LjYtMzQuMiA1M0MyMzcgNDk4LjUgMjE3LjIgNTEyIDE5MiA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjNi44IDAgMTUtMy41IDI0LjUtMTMuN2M5LjUtMTAuMSAxOC4zLTI0LjYgMjUuOC00MC41YzUuOS0xMi42IDEwLjctMjUuNCAxNC40LTM2LjJjLTIyLjgtNy43LTQyLjUtMTktNTguOS0zMS4zYy0yLjkgOS40LTYgMTkuNS05LjUgMjguNWMtNC44IDEyLjItMTEuNiAyNS42LTIyLjcgMzZDMTUzLjYgNDE3LjkgMTM4LjQgNDI0IDEyMCA0MjRjLTIxLjQgMC0zOS45LTEwLTUzLjEtMTcuMWwwIDBjLTEuMS0uNi0yLjItMS4yLTMuMi0xLjdjLTE1LTgtMjYuMy0xMy4yLTM5LjctMTMuMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyNi42IDAgNDcuMyAxMC44IDYyLjMgMTguOGMxNi44IDkgMjUgMTMuMiAzMy43IDEzLjJjNi44IDAgMTAuMi0xLjkgMTIuOC00LjNjMy40LTMuMiA3LTguOCAxMC44LTE4LjVjMy03LjcgNS42LTE2LjEgOC42LTI1LjljLjgtMi43IDEuNy01LjYgMi42LTguNmMxLjItNCAyLjYtOC4yIDQtMTIuNWMtMy45LTQuNS03LjQtOC44LTEwLjUtMTIuN0MxMzYuOSAzMDMuNSAxMjIuNSAzMTIgMTA0IDMxMmMtMTcuNSAwLTMwLjctNy40LTQwLjQtMTYuN2MtOC40LTguMS0xNC44LTE4LjMtMTkuNC0yNS43bC0uNi0uOWMtNS40LTguNi04LjgtMTMuOS0xMi41LTE3LjRjLTIuOC0yLjctNC42LTMuMy03LjEtMy4zYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzE3LjUgMCAzMC43IDcuNCA0MC40IDE2LjdjOC40IDguMSAxNC44IDE4LjMgMTkuNCAyNS43bC42IC45YzUuNCA4LjYgOC44IDEzLjkgMTIuNSAxNy40YzIuOCAyLjcgNC42IDMuMyA3LjEgMy4zYzMuMyAwIDguNy0xLjcgMTkuNC0xMy40YzUuMS01LjYgMTAuNC0xMi4zIDE2LjctMjAuNGwxLjQtMS44YzUuOC03LjQgMTIuMi0xNS43IDE5LjMtMjRjMTMuOC0xNi4yIDMwLjMtMzIuOCA1MS40LTQ2LjRsLTE1LjEtMzAuMmMtMS43IC4xLTMuNCAuMi01LjEgLjJjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NHptMjA4IDBhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3BlbGxDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTIgMEM5OS4xIDAgODcuNCA3LjggODIuNSAxOS43bC02Ni43IDE2MC0xMy4zIDMyYy02LjggMTYuMyAuOSAzNSAxNy4yIDQxLjhzMzUtLjkgNDEuOC0xNy4yTDY2LjcgMjI0aDkwLjdsNS4xIDEyLjNjNi44IDE2LjMgMjUuNSAyNCA0MS44IDE3LjJzMjQtMjUuNSAxNy4yLTQxLjhsLTEzLjMtMzItNjYuNy0xNjBDMTM2LjYgNy44IDEyNC45IDAgMTEyIDB6bTE4LjcgMTYwSDkzLjNMMTEyIDExNS4yIDEzMC43IDE2MHpNMjU2IDMydjk2IDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgwYzQ0LjIgMCA4MC0zNS44IDgwLTgwYzAtMjMuMS05LjgtNDMuOC0yNS40LTU4LjRjNi0xMS4yIDkuNC0yNCA5LjQtMzcuNmMwLTQ0LjItMzUuOC04MC04MC04MEgyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem05NiA2NEgzMjBWNjRoMzJjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZ6bS0zMiA2NGgzMiAxNmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgzMjBWMTYwek01NjYuNiAzMTAuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwzNTIgNDM0LjdsLTczLjQtNzMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTkyLTE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3BpZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1OC40IDMyLjZjNC44LTEyLjQtMS40LTI2LjMtMTMuOC0zMXMtMjYuMyAxLjQtMzEgMTMuOEw4MS4xIDEwMGMtNy45IDIwLjctMyA0NC4xIDEyLjcgNTkuN2w1Ny40IDU3LjRMNzAuOCAxOTAuM2MtMi40LS44LTQuMy0yLjctNS4xLTUuMUw0Ni44IDEyOC40QzQyLjYgMTE1LjggMjkgMTA5IDE2LjQgMTEzLjJTLTMgMTMxIDEuMiAxNDMuNmwxOC45IDU2LjhjNS42IDE2LjcgMTguNyAyOS44IDM1LjQgMzUuNEwxMTYuMSAyNTYgNTUuNiAyNzYuMmMtMTYuNyA1LjYtMjkuOCAxOC43LTM1LjQgMzUuNEwxLjIgMzY4LjRDLTMgMzgxIDMuOCAzOTQuNiAxNi40IDM5OC44czI2LjItMi42IDMwLjQtMTUuMmwxOC45LTU2LjhjLjgtMi40IDIuNy00LjMgNS4xLTUuMWw4MC40LTI2LjhMOTMuNyAzNTIuM0M3OC4xIDM2OCA3My4xIDM5MS40IDgxLjEgNDEybDMyLjUgODQuNmM0LjggMTIuNCAxOC42IDE4LjUgMzEgMTMuOHMxOC41LTE4LjYgMTMuOC0zMWwtMzIuNS04NC42Yy0xLjEtMy0uNC02LjMgMS44LTguNUwxNjAgMzUzLjljMSA1Mi4xIDQzLjYgOTQuMSA5NiA5NC4xczk1LTQxLjkgOTYtOTQuMWwzMi4zIDMyLjNjMi4yIDIuMiAyLjkgNS42IDEuOCA4LjVsLTMyLjUgODQuNmMtNC44IDEyLjQgMS40IDI2LjMgMTMuOCAzMXMyNi4zLTEuNCAzMS0xMy44TDQzMC45IDQxMmM3LjktMjAuNyAzLTQ0LjEtMTIuNy01OS43bC01Ny40LTU3LjQgODAuNCAyNi44YzIuNCAuOCA0LjMgMi43IDUuMSA1LjFsMTguOSA1Ni44YzQuMiAxMi42IDE3LjggMTkuNCAzMC40IDE1LjJzMTkuNC0xNy44IDE1LjItMzAuNGwtMTguOS01Ni44Yy01LjYtMTYuNy0xOC43LTI5LjgtMzUuNC0zNS40TDM5NS45IDI1Nmw2MC41LTIwLjJjMTYuNy01LjYgMjkuOC0xOC43IDM1LjQtMzUuNGwxOC45LTU2LjhjNC4yLTEyLjYtMi42LTI2LjItMTUuMi0zMC40cy0yNi4yIDIuNi0zMC40IDE1LjJsLTE4LjkgNTYuOGMtLjggMi40LTIuNyA0LjMtNS4xIDUuMWwtODAuNCAyNi44IDU3LjQtNTcuNGMxNS42LTE1LjYgMjAuNi0zOSAxMi43LTU5LjdMMzk4LjQgMTUuNEMzOTMuNiAzIDM3OS44LTMuMiAzNjcuNCAxLjZzLTE4LjUgMTguNi0xMy44IDMxbDMyLjUgODQuNmMxLjEgMyAuNCA2LjMtMS44IDguNUwzMzYgMTc0LjFWMTYwYzAtMzEuOC0xOC42LTU5LjMtNDUuNS03Mi4yYy05LjEtNC40LTE4LjUgMy4zLTE4LjUgMTMuNFYxMTJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMTAxLjJjMC0xMC4xLTkuNC0xNy43LTE4LjUtMTMuNEMxOTQuNiAxMDAuNyAxNzYgMTI4LjIgMTc2IDE2MHYxNC4xbC00OC4zLTQ4LjNjLTIuMi0yLjItMi45LTUuNi0xLjgtOC41bDMyLjUtODQuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3Bpbm5lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDQgNDhhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHptMCA0MTZhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNNDggMzA0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptNDY0LTQ4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTE0Mi45IDQzN0E0OCA0OCAwIDEgMCA3NSAzNjkuMSA0OCA0OCAwIDEgMCAxNDIuOSA0Mzd6bTAtMjk0LjJBNDggNDggMCAxIDAgNzUgNzVhNDggNDggMCAxIDAgNjcuOSA2Ny45ek0zNjkuMSA0MzdBNDggNDggMCAxIDAgNDM3IDM2OS4xIDQ4IDQ4IDAgMSAwIDM2OS4xIDQzN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3Bsb3RjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDguNSA2Mi4zbDI4LjEtMzYuOUMyNDguOCA5LjQgMjY3LjggMCAyODggMGMyOC41IDAgNTMuNiAxOC43IDYxLjggNDZsMTcuOCA1OS40YzEwLjMgMzQuNCAzNi4xIDYyIDY5LjggNzQuNmwzOS44IDE0LjljMjAuOSA3LjkgMzQuOCAyNy45IDM0LjggNTAuMmMwIDE2LjktNy45IDMyLjgtMjEuNSA0Mi45bC02Ny4zIDUwLjVjLTI0LjMgMTguMi0zNy4yIDQ3LjktMzMuOCA3OC4xbDIuNSAyMi43YzQuMyAzOC43LTI2IDcyLjYtNjUgNzIuNmMtMTQuOCAwLTI5LjMtNS4xLTQwLjgtMTQuM2wtNTUuNC00NC4zYy00LjUtMy42LTkuMy02LjctMTQuNS05LjJjLTE1LjgtNy45LTMzLjctMTAuNC01MS03LjNMODIuNCA0NTEuOUM0Ny44IDQ1OC4yIDE2IDQzMS42IDE2IDM5Ni41YzAtMTMuMiA0LjctMjYgMTMuMS0zNi4ybDExLjItMTMuNGMxNC42LTE3LjQgMjIuNi0zOS40IDIyLjYtNjIuMWMwLTE4LjgtNS41LTM3LjItMTUuOC01M0w4LjggMTczLjVDMy4xIDE2NC43IDAgMTU0LjQgMCAxNDMuOWMwLTMzLjQgMzAuMS01OC44IDYzLTUzLjJsNTEuMyA4LjdjMzUuOSA2LjEgNzIuMi04LjIgOTQuMi0zNy4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcG9vbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDUuOCAyMjAuOWMtMTQuNS0xNy42LTIxLjgtMzkuMi0yMS44LTYwLjhDMjI0IDgwIDMyMCAwIDQxNiAwYzUzIDAgOTYgNDMgOTYgOTZjMCA5Ni04MCAxOTItMTYwLjIgMTkyYy0yMS42IDAtNDMuMi03LjMtNjAuOC0yMS44TDU0LjYgNTAyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDI0NS44IDIyMC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcHJheUNhblNwYXJrbGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDMydjk2SDIyNFYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkgxMjhDMTEwLjMgMCA5NiAxNC4zIDk2IDMyem0wIDEyOGMtNTMgMC05NiA0My05NiA5NlY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhIMjcyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjI1NmMwLTUzLTQzLTk2LTk2LTk2SDk2em02NCA5NmE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNMzg0IDQ4YzAtMS40LTEtMy0yLjItMy42TDM1MiAzMiAzMzkuNiAyLjJDMzM5IDEgMzM3LjQgMCAzMzYgMHMtMyAxLTMuNiAyLjJMMzIwIDMyIDI5MC4yIDQ0LjRDMjg5IDQ1IDI4OCA0Ni42IDI4OCA0OGMwIDEuNCAxIDMgMi4yIDMuNkwzMjAgNjRsMTIuNCAyOS44QzMzMyA5NSAzMzQuNiA5NiAzMzYgOTZzMy0xIDMuNi0yLjJMMzUyIDY0bDI5LjgtMTIuNEMzODMgNTEgMzg0IDQ5LjQgMzg0IDQ4em03Ni40IDQ1LjhDNDYxIDk1IDQ2Mi42IDk2IDQ2NCA5NnMzLTEgMy42LTIuMkw0ODAgNjRsMjkuOC0xMi40QzUxMSA1MSA1MTIgNDkuNCA1MTIgNDhjMC0xLjQtMS0zLTIuMi0zLjZMNDgwIDMyIDQ2Ny42IDIuMkM0NjcgMSA0NjUuNCAwIDQ2NCAwcy0zIDEtMy42IDIuMkw0NDggMzIgNDE4LjIgNDQuNEM0MTcgNDUgNDE2IDQ2LjYgNDE2IDQ4YzAgMS40IDEgMyAyLjIgMy42TDQ0OCA2NGwxMi40IDI5Ljh6bTcuMiAxMDAuNGMtLjYtMS4yLTIuMi0yLjItMy42LTIuMnMtMyAxLTMuNiAyLjJMNDQ4IDIyNGwtMjkuOCAxMi40Yy0xLjIgLjYtMi4yIDIuMi0yLjIgMy42YzAgMS40IDEgMyAyLjIgMy42TDQ0OCAyNTZsMTIuNCAyOS44Yy42IDEuMiAyLjIgMi4yIDMuNiAyLjJzMy0xIDMuNi0yLjJMNDgwIDI1NmwyOS44LTEyLjRjMS4yLS42IDIuMi0yLjIgMi4yLTMuNmMwLTEuNC0xLTMtMi4yLTMuNkw0ODAgMjI0bC0xMi40LTI5Ljh6TTQ0OCAxNDRjMC0xLjQtMS0zLTIuMi0zLjZMNDE2IDEyOCA0MDMuNiA5OC4yQzQwMyA5NyA0MDEuNCA5NiA0MDAgOTZzLTMgMS0zLjYgMi4yTDM4NCAxMjhsLTI5LjggMTIuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNmMwIDEuNCAxIDMgMi4yIDMuNkwzODQgMTYwbDEyLjQgMjkuOGMuNiAxLjIgMi4yIDIuMiAzLjYgMi4yczMtMSAzLjYtMi4yTDQxNiAxNjBsMjkuOC0xMi40YzEuMi0uNiAyLjItMi4yIDIuMi0zLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNwcmF5Q2FuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAwaDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMydjk2SDk2VjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0wIDI1NmMwLTUzIDQzLTk2IDk2LTk2SDIyNGM1MyAwIDk2IDQzIDk2IDk2VjQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMjU2em0yNDAgODBBODAgODAgMCAxIDAgODAgMzM2YTgwIDgwIDAgMSAwIDE2MCAwek0yNTYgNjRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMzg0IDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptNjQgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzIgNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek00NDggMjU2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTM4NCAxMjhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVBcnJvd1VwUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0VjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJIMzg0ek0xNjAgMTQ0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDk0LjFMMTE5IDMyN2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDEzNS0xMzVWMzI4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMTY4YzAtMTMuMy0xMC43LTI0LTI0LTI0SDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlQ2FyZXREb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCA0ODBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMHpNMjI0IDM1MmMtNi43IDAtMTMtMi44LTE3LjYtNy43bC0xMDQtMTEyYy02LjUtNy04LjItMTcuMi00LjQtMjUuOXMxMi41LTE0LjQgMjItMTQuNGwyMDggMGM5LjUgMCAxOC4yIDUuNyAyMiAxNC40czIuMSAxOC45LTQuNCAyNS45bC0xMDQgMTEyYy00LjUgNC45LTEwLjkgNy43LTE3LjYgNy43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVDYXJldExlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNnpNMTI4IDI1NmMwLTYuNyAyLjgtMTMgNy43LTE3LjZsMTEyLTEwNGM3LTYuNSAxNy4yLTguMiAyNS45LTQuNHMxNC40IDEyLjUgMTQuNCAyMmwwIDIwOGMwIDkuNS01LjcgMTguMi0xNC40IDIycy0xOC45IDIuMS0yNS45LTQuNGwtMTEyLTEwNGMtNC45LTQuNS03LjctMTAuOS03LjctMTcuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlQ2FyZXRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMzIwIDI1NmMwIDYuNy0yLjggMTMtNy43IDE3LjZsLTExMiAxMDRjLTcgNi41LTE3LjIgOC4yLTI1LjkgNC40cy0xNC40LTEyLjUtMTQuNC0yMmwwLTIwOGMwLTkuNSA1LjctMTguMiAxNC40LTIyczE4LjktMi4xIDI1LjkgNC40bDExMiAxMDRjNC45IDQuNSA3LjcgMTAuOSA3LjcgMTcuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlQ2FyZXRVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6TTIyNCAxNjBjNi43IDAgMTMgMi44IDE3LjYgNy43bDEwNCAxMTJjNi41IDcgOC4yIDE3LjIgNC40IDI1LjlzLTEyLjUgMTQuNC0yMiAxNC40SDEyMGMtOS41IDAtMTguMi01LjctMjItMTQuNHMtMi4xLTE4LjkgNC40LTI1LjlsMTA0LTExMmM0LjUtNC45IDEwLjktNy43IDE3LjYtNy43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6TTMzNyAyMDlMMjA5IDMzN2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNDcgNDdMMzAzIDE3NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZUVudmVsb3BlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNMjE4IDI3MS43TDY0LjIgMTcyLjRDNjYgMTU2LjQgNzkuNSAxNDQgOTYgMTQ0SDM1MmMxNi41IDAgMzAgMTIuNCAzMS44IDI4LjRMMjMwIDI3MS43Yy0xLjggMS4yLTMuOSAxLjgtNiAxLjhzLTQuMi0uNi02LTEuOHptMjkuNCAyNi45TDM4NCAyMTAuNFYzMzZjMCAxNy43LTE0LjMgMzItMzIgMzJIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjIxMC40bDEzNi42IDg4LjJjNyA0LjUgMTUuMSA2LjkgMjMuNCA2LjlzMTYuNC0yLjQgMjMuNC02Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZUZ1bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwSDUxMlY1MTJIMFYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVIIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNMzM2IDE1MlYyNTYgMzYwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjI4MEgxNjBsMCA4MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTIwOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0djgwSDI4OFYxNTJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0em04OCAyMDBIMjk2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDE1MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlTmZpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJIMzg0YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWOTZ6bTc1LjcgNjQuNkM2OC44IDE2Mi41IDY0IDE2OC44IDY0IDE3NlYzMzZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYyMzMuOGw2Ni4zIDExMC41YzMuNyA2LjIgMTEuMSA5LjEgMTggNy4yczExLjctOC4yIDExLjctMTUuNFYxNzZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZWMjc4LjJMOTMuNyAxNjcuOGMtMy43LTYuMi0xMS4xLTkuMS0xOC03LjJ6TTIyNCAxNzZ2NjQgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYyNTZoNDhjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMjU2VjE5Mmg0OGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgyNDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYwIDBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZWMzM2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMTc2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVQYXJraW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNMTkyIDI1Nmg0OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxOTJ2NjR6bTQ4IDY0SDE5MnYzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYyODggMTY4YzAtMjIuMSAxNy45LTQwIDQwLTQwaDcyYzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVQZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek0zMjUuOCAxMzkuN2wxNC40IDE0LjRjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTIxLjQgMjEuNC03MS03MSAyMS40LTIxLjRjMTUuNi0xNS42IDQwLjktMTUuNiA1Ni42IDB6TTExOS45IDI4OUwyMjUuMSAxODMuOGw3MSA3MUwxOTAuOSAzNTkuOWMtNC4xIDQuMS05LjIgNy0xNC45IDguNGwtNjAuMSAxNWMtNS41IDEuNC0xMS4yLS4yLTE1LjItNC4ycy01LjYtOS43LTQuMi0xNS4ybDE1LTYwLjFjMS40LTUuNiA0LjMtMTAuOCA4LjQtMTQuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlUGVyc29uQ29uZmluZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0em05NiAxMTJhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptODAgMTA0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZWMzUwLjFjMCAzNi40LTI5LjUgNjUuOS02NS45IDY1LjljLTE3LjUgMC0zNC4zLTYuOS00Ni42LTE5LjNMMTg0LjggMzQybC0yOC4xIDU2LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjlsNDgtOTZjNC42LTkuMiAxMy4zLTE1LjYgMjMuNS0xNy4zczIwLjUgMS43IDI3LjggOUwyNDAgMzA2LjdWMjQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVQaG9uZUZsaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0VjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJIMzg0em0tOTAuNyA5Ni43Yy05LjctMi42LTE5LjkgMi4zLTIzLjcgMTEuNmwtMjAgNDhjLTMuNCA4LjItMSAxNy42IDUuOCAyMy4yTDI4MCAyMzEuN2MtMTYuNiAzNS4yLTQ1LjEgNjMuNy04MC4zIDgwLjNsLTIwLjItMjQuN2MtNS42LTYuOC0xNS05LjItMjMuMi01LjhsLTQ4IDIwYy05LjMgMy45LTE0LjIgMTQtMTEuNiAyMy43bDEyIDQ0QzExMS4xIDM3OCAxMTkgMzg0IDEyOCAzODRjMTIzLjcgMCAyMjQtMTAwLjMgMjI0LTIyNGMwLTktNi0xNi45LTE0LjctMTkuM2wtNDQtMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZVBob25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHptOTAuNyA5Ni43YzkuNy0yLjYgMTkuOSAyLjMgMjMuNyAxMS42bDIwIDQ4YzMuNCA4LjIgMSAxNy42LTUuOCAyMy4yTDE2OCAyMzEuN2MxNi42IDM1LjIgNDUuMSA2My43IDgwLjMgODAuM2wyMC4yLTI0LjdjNS42LTYuOCAxNS05LjIgMjMuMi01LjhsNDggMjBjOS4zIDMuOSAxNC4yIDE0IDExLjYgMjMuN2wtMTIgNDRDMzM2LjkgMzc4IDMyOSAzODQgMzIwIDM4NEMxOTYuMyAzODQgOTYgMjgzLjcgOTYgMTYwYzAtOSA2LTE2LjkgMTQuNy0xOS4zbDQ0LTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNMjAwIDM0NFYyODBIMTM2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0aDY0VjE2OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0djY0aDY0YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDI0OHY2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlUG9sbEhvcml6b250YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTI1NiAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnptNjQgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE5MiAwek0xOTIgMzUyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZVBvbGxWZXJ0aWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6bTY0IDE5MmMxNy43IDAgMzIgMTQuMyAzMiAzMnY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYyNTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTY0LTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWMzUyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjE2MHpNMzIwIDI4OGMxNy43IDAgMzIgMTQuMyAzMiAzMnYzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzMjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZVJvb3RWYXJpYWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODIuNiA3OC4xYzgtMjcuMyAzMy00Ni4xIDYxLjQtNDYuMUg1NDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzQ0TDIzOC43IDQ1N2MtMy42IDEyLjMtMTQuMSAyMS4yLTI2LjggMjIuOHMtMjUuMS00LjYtMzEuNS0xNS42TDc3LjYgMjg4SDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDc3LjZjMjIuOCAwIDQzLjggMTIuMSA1NS4zIDMxLjhsNjUuMiAxMTEuOEwyODIuNiA3OC4xek0zOTMuNCAyMzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMEw0ODAgMjc0LjdsNDEuNC00MS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMNTI1LjMgMzIwbDQxLjQgNDEuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEw0ODAgMzY1LjNsLTQxLjQgNDEuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMNDM0LjcgMzIwbC00MS40LTQxLjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVSc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek05NiAxMzZjMC0xMy4zIDEwLjctMjQgMjQtMjRjMTM3IDAgMjQ4IDExMSAyNDggMjQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTEwLjUtODkuNS0yMDAtMjAwLTIwMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTAgOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRjODMuOSAwIDE1MiA2OC4xIDE1MiAxNTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC01Ny40LTQ2LjYtMTA0LTEwNC0xMDRjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDEyMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVTaGFyZU5vZGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNMzg0IDE2MGMwIDM1LjMtMjguNyA2NC02NCA2NGMtMTUuNCAwLTI5LjUtNS40LTQwLjYtMTQuNUwxOTQuMSAyNTZsODUuMyA0Ni41YzExLTkuMSAyNS4yLTE0LjUgNDAuNi0xNC41YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMi41IC4xLTQuOSAuNC03LjNMMTc0LjUgMzAwYy0xMS43IDEyLjMtMjguMiAyMC00Ni41IDIwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0YzE4LjMgMCAzNC44IDcuNyA0Ni41IDIwbDgxLjktNDQuN2MtLjMtMi40LS40LTQuOS0uNC03LjNjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlVXBSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY5NkMwIDYwLjcgMjguNyAzMiA2NCAzMkgzODR6TTMyMCAzMTMuNFYxNzZjMC04LjgtNy4yLTE2LTE2LTE2SDE2Ni42Yy0xMi41IDAtMjIuNiAxMC4xLTIyLjYgMjIuNmMwIDYgMi40IDExLjggNi42IDE2TDE4NCAyMzJsLTY2LjMgNjYuM0MxMTQgMzAyIDExMiAzMDYuOSAxMTIgMzEyczIgMTAgNS43IDEzLjdsMzYuNyAzNi43YzMuNiAzLjYgOC41IDUuNyAxMy43IDUuN3MxMC0yIDEzLjctNS43TDI0OCAyOTZsMzMuNCAzMy40YzQuMiA0LjIgMTAgNi42IDE2IDYuNmMxMi41IDAgMjIuNi0xMC4xIDIyLjYtMjIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlVmlydXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek0yMjMuOCA5My43YzEzLjMgMCAyNCAxMC43IDI0IDI0YzAgMjkuMyAzNS40IDQzLjkgNTYuMSAyMy4yYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMjAuNyAyMC43LTYgNTYuMSAyMy4yIDU2LjFjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTI5LjMgMC00My45IDM1LjQtMjMuMiA1Ni4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTIwLjctMjAuNy01Ni4xLTYtNTYuMSAyMy4yYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMjkuMy0zNS40LTQzLjktNTYuMS0yMy4yYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzIwLjctMjAuNyA2LTU2LjEtMjMuMi01Ni4xYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzI5LjMgMCA0My45LTM1LjQgMjMuMi01Ni4xYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMjAuNyAyMC43IDU2LjEgNiA1Ni4xLTIzLjJjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTE5MiAyNTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em04OCAzMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVYbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6bTc5IDE0M2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw0NyA0NyA0Ny00N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTQ3IDQ3IDQ3IDQ3YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ3LTQ3LTQ3IDQ3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDQ3LTQ3LTQ3LTQ3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJIMzg0YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0YWZmU25ha2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIyLjYgNDMuMmwtLjEgNC44SDI4OGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NkgyNDhWMTYwaDQwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDI0OCAyMjBsLTQuNSAxNDRIMjU2YzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2SDI0MFYzODRoMTZjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMjEzbC0zLjEgOTkuNUwyMDguNSA0OTVsMCAxYy0uMyA4LjktNy42IDE2LTE2LjUgMTZzLTE2LjItNy4xLTE2LjUtMTZsMC0xLTEtMzFIMTM2Yy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwaDM2bC0xLTMySDE1MmMtNTMgMC05Ni00My05Ni05NmMwLTQ3LjYgMzQuNi04Ny4xIDgwLTk0LjdWMjU2YzAgOC44IDcuMiAxNiAxNiAxNmgxNi41TDE2NCAxMjhIMTM2IDEyMi42Yy05IDE4LjktMjguMyAzMi01MC42IDMySDU2Yy0zMC45IDAtNTYtMjUuMS01Ni01NlMyNS4xIDQ4IDU2IDQ4aDggOCA4OS41bC0uMS00LjhMMTYxIDMyYzAtLjcgMC0xLjMgMC0xLjljLjUtMTYuNiAxNC4xLTMwIDMxLTMwczMwLjUgMTMuNCAzMSAzMGMwIC42IDAgMS4zIDAgMS45bC0uNCAxMS4yek02NCAxMTJhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFpcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMySDU0NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg0NDh2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJIMzIwdjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MnY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmg5NlYzMjBjMC0xNy43IDE0LjMtMzIgMzItMzJoOTZWMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyaDk2VjY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFtcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTIgMjAxLjhjMC0xNy40IDkuMi0zMy4yIDE5LjktNDdDMzQ0LjUgMTM4LjUgMzUyIDExOC4xIDM1MiA5NmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDIyLjEgNy41IDQyLjUgMjAuMSA1OC44YzEwLjcgMTMuOCAxOS45IDI5LjYgMTkuOSA0N2MwIDI5LjktMjQuMyA1NC4yLTU0LjIgNTQuMkgxMTJDNTAuMSAyNTYgMCAzMDYuMSAwIDM2OGMwIDIwLjkgMTMuNCAzOC43IDMyIDQ1LjNWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDQzMmMyNi41IDAgNDgtMjEuNSA0OC00OFY0MTMuM2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNjMC02MS45LTUwLjEtMTEyLTExMi0xMTJIMzY2LjJjLTI5LjkgMC01NC4yLTI0LjMtNTQuMi01NC4yek00MTYgNDE2djMySDk2VjQxNkg0MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0YXBsZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQwIDI5OS4zVjMwNCA0MzJjMCAyNi41LTIxLjUgNDgtNDggNDhINTEyIDQ0OCA2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg0NDhWMzY4SDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYyMTkuNEwzMy44IDIxNEMxNC4yIDIxMC41IDAgMTkzLjUgMCAxNzMuN2MwLTguOSAyLjktMTcuNSA4LjItMjQuNmwzNS42LTQ3LjVDNzYuNyA1Ny44IDEyOC4yIDMyIDE4Mi45IDMyYzI3IDAgNTMuNiA2LjMgNzcuOCAxOC40TDU4Ni45IDIxMy41QzYxOS41IDIyOS43IDY0MCAyNjMgNjQwIDI5OS4zek00NDggMzA0VjI4OEwxMjggMjMwLjlWMzA0SDQ0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RhckFuZENyZXNjZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjU2QzAgMTE0LjYgMTE0LjYgMCAyNTYgMGMzMyAwIDY0LjYgNi4zIDkzLjYgMTcuN2M3LjQgMi45IDExLjUgMTAuNyA5LjggMTguNHMtOC44IDEzLTE2LjcgMTIuNGMtNC44LS4zLTkuNy0uNS0xNC42LS41Yy0xMTQuOSAwLTIwOCA5My4xLTIwOCAyMDhzOTMuMSAyMDggMjA4IDIwOGM0LjkgMCA5LjgtLjIgMTQuNi0uNWM3LjktLjUgMTUgNC43IDE2LjcgMTIuNHMtMi40IDE1LjUtOS44IDE4LjRDMzIwLjYgNTA1LjcgMjg5IDUxMiAyNTYgNTEyQzExNC42IDUxMiAwIDM5Ny40IDAgMjU2ek0zNzUuNCAxMzcuNGMzLjUtNy4xIDEzLjctNy4xIDE3LjIgMGwzMS41IDYzLjhjMS40IDIuOCA0LjEgNC44IDcuMiA1LjNsNzAuNCAxMC4yYzcuOSAxLjEgMTEgMTAuOCA1LjMgMTYuNGwtNTAuOSA0OS42Yy0yLjMgMi4yLTMuMyA1LjQtMi44IDguNWwxMiA3MC4xYzEuMyA3LjgtNi45IDEzLjgtMTMuOSAxMC4xbC02My0zMy4xYy0yLjgtMS41LTYuMS0xLjUtOC45IDBsLTYzIDMzLjFjLTcgMy43LTE1LjMtMi4zLTEzLjktMTAuMWwxMi03MC4xYy41LTMuMS0uNS02LjMtMi44LTguNUwyNjEgMjMzLjFjLTUuNy01LjYtMi42LTE1LjIgNS4zLTE2LjRsNzAuNC0xMC4yYzMuMS0uNSA1LjgtMi40IDcuMi01LjNsMzEuNS02My44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFySGFsZlN0cm9rZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMzc2LjRsLjEtLjEgMjYuNCAxNC4xIDg1LjIgNDUuNS0xNi41LTk3LjYtNC44LTI4LjcgMjAuNy0yMC41IDcwLjEtNjkuMy05Ni4xLTE0LjItMjkuMy00LjMtMTIuOS0yNi42TDI4OC4xIDg2LjlsLS4xIC4zVjM3Ni40em0xNzUuMSA5OC4zYzIgMTItMyAyNC4yLTEyLjkgMzEuM3MtMjMgOC0zMy44IDIuM0wyODguMSA0MzkuOCAxNTkuOCA1MDguM0MxNDkgNTE0IDEzNS45IDUxMy4xIDEyNiA1MDZzLTE0LjktMTkuMy0xMi45LTMxLjNMMTM3LjggMzI5IDMzLjYgMjI1LjljLTguNi04LjUtMTEuNy0yMS4yLTcuOS0zMi43czEzLjctMTkuOSAyNS43LTIxLjdMMTk1IDE1MC4zIDI1OS40IDE4YzUuNC0xMSAxNi41LTE4IDI4LjgtMThzMjMuNCA3IDI4LjggMThsNjQuMyAxMzIuMyAxNDMuNiAyMS4yYzEyIDEuOCAyMiAxMC4yIDI1LjcgMjEuN3MuNyAyNC4yLTcuOSAzMi43TDQzOC41IDMyOWwyNC42IDE0NS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFySGFsZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMGMtMTIuMiAuMS0yMy4zIDctMjguNiAxOEwxOTUgMTUwLjMgNTEuNCAxNzEuNWMtMTIgMS44LTIyIDEwLjItMjUuNyAyMS43cy0uNyAyNC4yIDcuOSAzMi43TDEzNy44IDMyOSAxMTMuMiA0NzQuN2MtMiAxMiAzIDI0LjIgMTIuOSAzMS4zczIzIDggMzMuOCAyLjNMMjg4IDQzOS44VjB6TTQyOS45IDUxMmMxLjEgLjEgMi4xIC4xIDMuMiAwaC0zLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0YXJPZkRhdmlkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwNC4yIDMwOS41TDM4My4xIDM0NGg0Mi4zbC0yMS4xLTM0LjV6TTM3MS40IDI1NmwtNTQtODhIMTk0LjZsLTU0IDg4IDU0IDg4SDMxNy40bDU0LTg4em02NS43IDBsNTMuNCA4N2MzLjYgNS45IDUuNSAxMi43IDUuNSAxOS42YzAgMjAuNy0xNi44IDM3LjQtMzcuNCAzNy40SDM0OC43bC01Ni4yIDkxLjVDMjg0LjggNTA0LjMgMjcwLjkgNTEyIDI1NiA1MTJzLTI4LjgtNy43LTM2LjYtMjAuNUwxNjMuMyA0MDBINTMuNEMzMi44IDQwMCAxNiAzODMuMiAxNiAzNjIuNmMwLTYuOSAxLjktMTMuNyA1LjUtMTkuNmw1My40LTg3TDIxLjUgMTY5Yy0zLjYtNS45LTUuNS0xMi43LTUuNS0xOS42QzE2IDEyOC44IDMyLjggMTEyIDUzLjQgMTEySDE2My4zbDU2LjItOTEuNUMyMjcuMiA3LjcgMjQxLjEgMCAyNTYgMHMyOC44IDcuNyAzNi42IDIwLjVMMzQ4LjcgMTEySDQ1OC42YzIwLjcgMCAzNy40IDE2LjggMzcuNCAzNy40YzAgNi45LTEuOSAxMy43LTUuNSAxOS42bC01My40IDg3em0tNTQtODhsMjEuMSAzNC41TDQyNS40IDE2OEgzODMuMXpNMjgzIDExMkwyNTYgNjhsLTI3IDQ0aDU0ek0xMjguOSAxNjhIODYuNmwyMS4xIDM0LjVMMTI4LjkgMTY4ek0xMDcuOCAzMDkuNUw4Ni42IDM0NGg0Mi4zbC0yMS4xLTM0LjV6TTIyOSA0MDBsMjcgNDQgMjctNDRIMjI5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFyT2ZMaWZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMlYxNzIuOWwxMjItNzAuNGMxNS4zLTguOCAzNC45LTMuNiA0My43IDExLjdsMTYgMjcuN2M4LjggMTUuMyAzLjYgMzQuOS0xMS43IDQzLjdMMzUyIDI1NmwxMjIgNzAuNGMxNS4zIDguOCAyMC41IDI4LjQgMTEuNyA0My43bC0xNiAyNy43Yy04LjggMTUuMy0yOC40IDIwLjYtNDMuNyAxMS43TDMwNCAzMzkuMVY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJIMjQwYy0xNy43IDAtMzItMTQuMy0zMi0zMlYzMzkuMUw4NiA0MDkuNmMtMTUuMyA4LjgtMzQuOSAzLjYtNDMuNy0xMS43bC0xNi0yNy43Yy04LjgtMTUuMy0zLjYtMzQuOSAxMS43LTQzLjdMMTYwIDI1NiAzOCAxODUuNmMtMTUuMy04LjgtMjAuNS0yOC40LTExLjctNDMuN2wxNi0yNy43QzUxLjEgOTguOCA3MC43IDkzLjYgODYgMTAyLjRsMTIyIDcwLjRWMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0YXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzE2LjkgMThDMzExLjYgNyAzMDAuNCAwIDI4OC4xIDBzLTIzLjQgNy0yOC44IDE4TDE5NSAxNTAuMyA1MS40IDE3MS41Yy0xMiAxLjgtMjIgMTAuMi0yNS43IDIxLjdzLS43IDI0LjIgNy45IDMyLjdMMTM3LjggMzI5IDExMy4yIDQ3NC43Yy0yIDEyIDMgMjQuMiAxMi45IDMxLjNzMjMgOCAzMy44IDIuM2wxMjguMy02OC41IDEyOC4zIDY4LjVjMTAuOCA1LjcgMjMuOSA0LjkgMzMuOC0yLjNzMTQuOS0xOS4zIDEyLjktMzEuM0w0MzguNSAzMjkgNTQyLjcgMjI1LjljOC42LTguNSAxMS43LTIxLjIgNy45LTMyLjdzLTEzLjctMTkuOS0yNS43LTIxLjdMMzgxLjIgMTUwLjMgMzE2LjkgMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0ZXJsaW5nU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTIgMTYwLjRjMC0zNS41IDI4LjgtNjQuNCA2NC40LTY0LjRjNi45IDAgMTMuOCAxLjEgMjAuNCAzLjNsODEuMiAyNy4xYzE2LjggNS42IDM0LjktMy41IDQwLjUtMjAuMnMtMy41LTM0LjktMjAuMi00MC41TDIxNyAzOC42Yy0xMy4xLTQuNC0yNi44LTYuNi00MC42LTYuNkMxMDUuNSAzMiA0OCA4OS41IDQ4IDE2MC40VjIyNEgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0OHY0NC41YzAgMTcuNC00LjcgMzQuNS0xMy43IDQ5LjRMNC42IDQzMS41Yy01LjkgOS45LTYuMSAyMi4yLS40IDMyLjJTMjAuNSA0ODAgMzIgNDgwSDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg4OC41bC43LTEuMUMxMDQuMSAzOTAgMTEyIDM2MS41IDExMiAzMzIuNVYyODhIMjI0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDExMlYxNjAuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RldGhvc2NvcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQyLjQgMjEuOWM1LjYgMTYuOC0zLjUgMzQuOS0yMC4yIDQwLjVMOTYgNzEuMVYxOTJjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NlY3MS4xbC0yNi4xLTguN2MtMTYuOC01LjYtMjUuOC0yMy43LTIwLjItNDAuNXMyMy43LTI1LjggNDAuNS0yMC4ybDI2LjEgOC43QzMzNC40IDE5LjEgMzUyIDQzLjUgMzUyIDcxLjFWMTkyYzAgNzcuMi01NC42IDE0MS42LTEyNy4zIDE1Ni43QzIzMSA0MDQuNiAyNzguNCA0NDggMzM2IDQ0OGM2MS45IDAgMTEyLTUwLjEgMTEyLTExMlYyNjUuM2MtMjguMy0xMi4zLTQ4LTQwLjUtNDgtNzMuM2MwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMzIuOC0xOS43IDYxLTQ4IDczLjNWMzM2YzAgOTcuMi03OC44IDE3Ni0xNzYgMTc2Yy05Mi45IDAtMTY4LjktNzEuOS0xNzUuNS0xNjMuMUM4Ny4yIDMzNC4yIDMyIDI2OS42IDMyIDE5MlY3MS4xYzAtMjcuNSAxNy42LTUyIDQzLjgtNjAuN2wyNi4xLTguN2MxNi44LTUuNiAzNC45IDMuNSA0MC41IDIwLjJ6TTQ4MCAyMjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQgMjguNyA2NCA2NFYzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RvcHdhdGNoMjAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoMTZWOTguNEM5Mi4zIDExMy44IDE2IDIwMCAxNiAzMDRjMCAxMTQuOSA5My4xIDIwOCAyMDggMjA4czIwOC05My4xIDIwOC0yMDhjMC00MS44LTEyLjMtODAuNy0zMy41LTExMy4ybDI0LjEtMjQuMWMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwzNTUuNyAxNDNjLTI4LjEtMjMtNjIuMi0zOC44LTk5LjctNDQuNlY2NGgxNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxNzZ6TTI4OCAyMDRjMjguNyAwIDUyIDIzLjMgNTIgNTJ2OTZjMCAyOC43LTIzLjMgNTItNTIgNTJzLTUyLTIzLjMtNTItNTJWMjU2YzAtMjguNyAyMy4zLTUyIDUyLTUyem0tMTIgNTJ2OTZjMCA2LjYgNS40IDEyIDEyIDEyczEyLTUuNCAxMi0xMlYyNTZjMC02LjYtNS40LTEyLTEyLTEycy0xMiA1LjQtMTIgMTJ6TTE1OS41IDI0NGMtNS40IDAtMTAuMiAzLjUtMTEuOSA4LjZsLS42IDEuN2MtMy41IDEwLjUtMTQuOCAxNi4xLTI1LjMgMTIuNnMtMTYuMS0xNC44LTEyLjYtMjUuM2wuNi0xLjdjNy4yLTIxLjUgMjcuMi0zNS45IDQ5LjgtMzUuOWMyOSAwIDUyLjUgMjMuNSA1Mi41IDUyLjV2Mi4yYzAgMTMuNC00LjkgMjYuNC0xMy44IDM2LjRsLTM5IDQzLjljLTYuMiA3LTEwIDE1LjctMTAuOSAyNC45SDE5MmMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBIMTI4Yy0xMSAwLTIwLTktMjAtMjBWMzY4LjNjMC0yMC42IDcuNS00MC40IDIxLjItNTUuOGwzOS00My45YzIuNC0yLjcgMy43LTYuMiAzLjctOS44di0yLjJjMC02LjktNS42LTEyLjUtMTIuNS0xMi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdG9wd2F0Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoMTZWOTguNEM5Mi4zIDExMy44IDE2IDIwMCAxNiAzMDRjMCAxMTQuOSA5My4xIDIwOCAyMDggMjA4czIwOC05My4xIDIwOC0yMDhjMC00MS44LTEyLjMtODAuNy0zMy41LTExMy4ybDI0LjEtMjQuMWMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwzNTUuNyAxNDNjLTI4LjEtMjMtNjIuMi0zOC44LTk5LjctNDQuNlY2NGgxNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgyMjQgMTc2em03MiAxOTJWMzIwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjE5MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdG9yZVNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdsLTg2LjgtNjhWMzg0IDI1Mi42Yy00IDEtOCAxLjgtMTIuMyAyLjNsLS4xIDBjLTUuMyAuNy0xMC43IDEuMS0xNi4yIDEuMWMtMTIuNCAwLTI0LjMtMS45LTM1LjQtNS4zVjM1MC45TDMwMS4yIDIxMC43YzctNC40IDEzLjMtOS43IDE4LjgtMTUuN2MxNS45IDE3LjYgMzkuMSAyOSA2NS4yIDI5YzI2LjIgMCA0OS4zLTExLjQgNjUuMi0yOWMxNiAxNy42IDM5LjEgMjkgNjUuMiAyOWM0LjEgMCA4LjEtLjMgMTIuMS0uOGM1NS41LTcuNCA4MS44LTcyLjUgNTIuMS0xMTkuNEw1MjIuMyAxMy4xQzUxNy4yIDUgNTA4LjEgMCA0OTguNCAwSDE0MS42Yy05LjcgMC0xOC44IDUtMjMuOSAxMy4xbC0yMi43IDM2TDM4LjggNS4xek01MTQuOSA1MDEuN0wzNjUuNSAzODRIMTYwVjI1MC42Yy0xMS4yIDMuNS0yMy4yIDUuNC0zNS42IDUuNGMtNS41IDAtMTEtLjQtMTYuMy0xLjFsLS4xIDBjLTQuMS0uNi04LjEtMS4zLTEyLTIuM1YzODR2NjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRINDgwYzEyLjkgMCAyNC44LTMuOCAzNC45LTEwLjN6TTE1NS4zIDIxOC40TDQ4LjkgMTM0LjVjLTYuMSA0MC42IDE5LjUgODIuOCA2My4zIDg4LjdjNCAuNSA4LjEgLjggMTIuMSAuOGMxMSAwIDIxLjQtMiAzMS01LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0b3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0Ny42IDEwMy44TDQ5MC4zIDEzLjFDNDg1LjIgNSA0NzYuMSAwIDQ2Ni40IDBIMTA5LjZDOTkuOSAwIDkwLjggNSA4NS43IDEzLjFMMjguMyAxMDMuOGMtMjkuNiA0Ni44LTMuNCAxMTEuOSA1MS45IDExOS40YzQgLjUgOC4xIC44IDEyLjEgLjhjMjYuMSAwIDQ5LjMtMTEuNCA2NS4yLTI5YzE1LjkgMTcuNiAzOS4xIDI5IDY1LjIgMjljMjYuMSAwIDQ5LjMtMTEuNCA2NS4yLTI5YzE1LjkgMTcuNiAzOS4xIDI5IDY1LjIgMjljMjYuMiAwIDQ5LjMtMTEuNCA2NS4yLTI5YzE2IDE3LjYgMzkuMSAyOSA2NS4yIDI5YzQuMSAwIDguMS0uMyAxMi4xLS44YzU1LjUtNy40IDgxLjgtNzIuNSA1Mi4xLTExOS40ek00OTkuNyAyNTQuOWwtLjEgMGMtNS4zIC43LTEwLjcgMS4xLTE2LjIgMS4xYy0xMi40IDAtMjQuMy0xLjktMzUuNC01LjNWMzg0SDEyOFYyNTAuNmMtMTEuMiAzLjUtMjMuMiA1LjQtMzUuNiA1LjRjLTUuNSAwLTExLS40LTE2LjMtMS4xbC0uMSAwYy00LjEtLjYtOC4xLTEuMy0xMi0yLjNWMzg0djY0YzAgMzUuMyAyOC43IDY0IDY0IDY0SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFYzODQgMjUyLjZjLTQgMS04IDEuOC0xMi4zIDIuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RyZWV0VmlldyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgNjRBNjQgNjQgMCAxIDAgMTkyIDY0YTY0IDY0IDAgMSAwIDEyOCAwem0tOTYgOTZjLTM1LjMgMC02NCAyOC43LTY0IDY0djQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDEuOGwxMS4xIDk5LjVjMS44IDE2LjIgMTUuNSAyOC41IDMxLjggMjguNWgzOC43YzE2LjMgMCAzMC0xMi4zIDMxLjgtMjguNUwzMTguMiAzMDRIMzIwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIyNGMwLTM1LjMtMjguNy02NC02NC02NEgyMjR6TTEzMi4zIDM5NC4yYzEzLTIuNCAyMS43LTE0LjkgMTkuMy0yNy45cy0xNC45LTIxLjctMjcuOS0xOS4zYy0zMi40IDUuOS02MC45IDE0LjItODIgMjQuOGMtMTAuNSA1LjMtMjAuMyAxMS43LTI3LjggMTkuNkM2LjQgMzk5LjUgMCA0MTAuNSAwIDQyNGMwIDIxLjQgMTUuNSAzNi4xIDI5LjEgNDVjMTQuNyA5LjYgMzQuMyAxNy4zIDU2LjQgMjMuNEMxMzAuMiA1MDQuNyAxOTAuNCA1MTIgMjU2IDUxMnMxMjUuOC03LjMgMTcwLjQtMTkuNmMyMi4xLTYuMSA0MS44LTEzLjggNTYuNC0yMy40YzEzLjctOC45IDI5LjEtMjMuNiAyOS4xLTQ1YzAtMTMuNS02LjQtMjQuNS0xNC0zMi42Yy03LjUtNy45LTE3LjMtMTQuMy0yNy44LTE5LjZjLTIxLTEwLjYtNDkuNS0xOC45LTgyLTI0LjhjLTEzLTIuNC0yNS41IDYuMy0yNy45IDE5LjNzNi4zIDI1LjUgMTkuMyAyNy45YzMwLjIgNS41IDUzLjcgMTIuOCA2OSAyMC41YzMuMiAxLjYgNS44IDMuMSA3LjkgNC41YzMuNiAyLjQgMy42IDcuMiAwIDkuNmMtOC44IDUuNy0yMy4xIDExLjgtNDMgMTcuM0MzNzQuMyA0NTcgMzE4LjUgNDY0IDI1NiA0NjRzLTExOC4zLTctMTU3LjctMTcuOWMtMTkuOS01LjUtMzQuMi0xMS42LTQzLTE3LjNjLTMuNi0yLjQtMy42LTcuMiAwLTkuNmMyLjEtMS40IDQuOC0yLjkgNy45LTQuNWMxNS4zLTcuNyAzOC44LTE0LjkgNjktMjAuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RyaWtldGhyb3VnaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjEuMyAxNDRjMy4yLTE3LjIgMTQtMzAuMSAzMy43LTM4LjZjMjEuMS05IDUxLjgtMTIuMyA4OC42LTYuNWMxMS45IDEuOSA0OC44IDkuMSA2MC4xIDEyYzE3LjEgNC41IDM0LjYtNS42IDM5LjItMjIuN3MtNS42LTM0LjYtMjIuNy0zOS4yYy0xNC4zLTMuOC01My42LTExLjQtNjYuNi0xMy40Yy00NC43LTctODguMy00LjItMTIzLjcgMTAuOWMtMzYuNSAxNS42LTY0LjQgNDQuOC03MS44IDg3LjNjLS4xIC42LS4yIDEuMS0uMiAxLjdjLTIuOCAyMy45IC41IDQ1LjYgMTAuMSA2NC42YzQuNSA5IDEwLjIgMTYuOSAxNi43IDIzLjlIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDI3MC4xYy0uMSAwLS4zLS4xLS40LS4xbC0xLjEtLjNjLTM2LTEwLjgtNjUuMi0xOS42LTg1LjItMzMuMWMtOS4zLTYuMy0xNS0xMi42LTE4LjItMTkuMWMtMy4xLTYuMS01LjItMTQuNi0zLjgtMjcuNHpNMzQ4LjkgMzM3LjJjMi43IDYuNSA0LjQgMTUuOCAxLjkgMzAuMWMtMyAxNy42LTEzLjggMzAuOC0zMy45IDM5LjRjLTIxLjEgOS01MS43IDEyLjMtODguNSA2LjVjLTE4LTIuOS00OS4xLTEzLjUtNzQuNC0yMi4xYy01LjYtMS45LTExLTMuNy0xNS45LTUuNGMtMTYuOC01LjYtMzQuOSAzLjUtNDAuNSAyMC4zczMuNSAzNC45IDIwLjMgNDAuNWMzLjYgMS4yIDcuOSAyLjcgMTIuNyA0LjNsMCAwIDAgMGMyNC45IDguNSA2My42IDIxLjcgODcuNiAyNS42bDAgMCAuMiAwYzQ0LjcgNyA4OC4zIDQuMiAxMjMuNy0xMC45YzM2LjUtMTUuNiA2NC40LTQ0LjggNzEuOC04Ny4zYzMuNi0yMSAyLjctNDAuNC0zLjEtNTguMUgzMzUuMWM3IDUuNiAxMS40IDExLjIgMTMuOSAxNy4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdHJvb3B3YWZlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6TTMxMi42IDYzLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDI1NiA5Ny42IDIyMi4xIDYzLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsMzMuOSAzMy45LTQ1LjMgNDUuMy01Ni42LTU2LjZjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNTYuNiA1Ni42LTQ1LjMgNDUuM0w4Ni4zIDE5OS40Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42TDk3LjYgMjU2IDYzLjcgMjg5LjljLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzMy45LTMzLjkgNDUuMyA0NS4zLTU2LjYgNTYuNmMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDU2LjYtNTYuNiA0NS4zIDQ1LjMtMzMuOSAzMy45Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBMMjU2IDQxNC40bDMzLjkgMzMuOWM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTMzLjktMzMuOSA0NS4zLTQ1LjMgNTYuNiA1Ni42YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNTYuNi01Ni42IDQ1LjMtNDUuMyAzMy45IDMzLjljNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42TDQxNC40IDI1NmwzMy45LTMzLjljNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtMzMuOSAzMy45LTQ1LjMtNDUuMyA1Ni42LTU2LjZjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtNTYuNiA1Ni42LTQ1LjMtNDUuMyAzMy45LTMzLjljNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZ6TTE0Mi45IDI1Nmw0NS4zLTQ1LjNMMjMzLjQgMjU2bC00NS4zIDQ1LjNMMTQyLjkgMjU2em02Ny45IDY3LjlMMjU2IDI3OC42bDQ1LjMgNDUuM0wyNTYgMzY5LjFsLTQ1LjMtNDUuM3pNMjc4LjYgMjU2bDQ1LjMtNDUuM0wzNjkuMSAyNTZsLTQ1LjMgNDUuM0wyNzguNiAyNTZ6bTIyLjYtNjcuOUwyNTYgMjMzLjRsLTQ1LjMtNDUuM0wyNTYgMTQyLjlsNDUuMyA0NS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdWJzY3JpcHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgNjRDMTQuMyA2NCAwIDc4LjMgMCA5NnMxNC4zIDMyIDMyIDMySDQ3LjNsODkuNiAxMjhMNDcuMyAzODRIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINjRjMTAuNCAwIDIwLjItNS4xIDI2LjItMTMuNkwxNzYgMzExLjhsODUuOCAxMjIuNmM2IDguNiAxNS44IDEzLjYgMjYuMiAxMy42aDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMwNC43TDIxNS4xIDI1Nmw4OS42LTEyOEgzMjBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMjg4Yy0xMC40IDAtMjAuMiA1LjEtMjYuMiAxMy42TDE3NiAyMDAuMiA5MC4yIDc3LjZDODQuMiA2OS4xIDc0LjQgNjQgNjQgNjRIMzJ6TTQ4MCAzMjBjMC0xMS4xLTUuNy0yMS40LTE1LjItMjcuMnMtMjEuMi02LjQtMzEuMS0xLjRsLTMyIDE2Yy0xNS44IDcuOS0yMi4yIDI3LjEtMTQuMyA0Mi45QzM5MyAzNjEuNSA0MDQuMyAzNjggNDE2IDM2OHY4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmgzMiAzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMlYzMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN1aXRjYXNlTWVkaWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODQgNDhIMzI4YzQuNCAwIDggMy42IDggOFY5NkgxNzZWNTZjMC00LjQgMy42LTggOC04em0tNTYgOFY5NnYzMlY0ODBIMzg0VjEyOCA5NiA1NmMwLTMwLjktMjUuMS01Ni01Ni01NkgxODRjLTMwLjkgMC01NiAyNS4xLTU2IDU2ek05NiA5Nkg2NEMyOC43IDk2IDAgMTI0LjcgMCAxNjBWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDk2Vjk2ek00MTYgNDgwaDMyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjE2MGMwLTM1LjMtMjguNy02NC02NC02NEg0MTZWNDgwek0yMjQgMjA4YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2NDhoNDhjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgyODh2NDhjMCA4LjgtNy4yIDE2LTE2IDE2SDI0MGMtOC44IDAtMTYtNy4yLTE2LTE2VjMyMEgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYyNzJjMC04LjggNy4yLTE2IDE2LTE2aDQ4VjIwOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3VpdGNhc2VSb2xsaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NCA1NmMwLTQuNCAzLjYtOCA4LThoODBjNC40IDAgOCAzLjYgOCA4djcySDE0NFY1NnptMTc2IDcySDI4OFY1NmMwLTMwLjktMjUuMS01Ni01Ni01NkgxNTJDMTIxLjEgMCA5NiAyNS4xIDk2IDU2djcySDY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NFY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkgyNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMzNS4zIDAgNjQtMjguNyA2NC02NFYxOTJjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTExMiAyMjRIMjcyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDExMmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMCAxMjhIMjcyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDExMmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3VpdGNhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc2IDU2Vjk2SDMzNlY1NmMwLTQuNC0zLjYtOC04LThIMTg0Yy00LjQgMC04IDMuNi04IDh6TTEyOCA5NlY1NmMwLTMwLjkgMjUuMS01NiA1Ni01NkgzMjhjMzAuOSAwIDU2IDI1LjEgNTYgNTZWOTZ2MzJWNDgwSDEyOFYxMjggOTZ6TTY0IDk2SDk2VjQ4MEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTYwYzAtMzUuMyAyOC43LTY0IDY0LTY0ek00NDggNDgwSDQxNlY5NmgzMmMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN1blBsYW50V2lsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMGMtNi4zIDAtMTIgMy43LTE0LjYgOS41TDEyMC42IDY0LjkgNjMuOSA0My4yYy01LjktMi4zLTEyLjYtLjgtMTcgMy42cy01LjkgMTEuMS0zLjYgMTdsMjEuNyA1Ni43TDkuNSAxNDUuNEMzLjcgMTQ4IDAgMTUzLjcgMCAxNjBzMy43IDEyIDkuNSAxNC42bDU1LjQgMjQuOEw0My4yIDI1Ni4xYy0yLjMgNS45LS44IDEyLjYgMy42IDE3czExLjEgNS45IDE3IDMuNmw1Ni43LTIxLjcgMjQuOCA1NS40YzIuNiA1LjggOC4zIDkuNSAxNC42IDkuNXMxMi0zLjcgMTQuNi05LjVsMjQuOC01NS40IDU2LjcgMjEuN2M1LjkgMi4zIDEyLjYgLjggMTctMy42czUuOS0xMS4xIDMuNi0xN2wtMjEuNy01Ni43IDU1LjQtMjQuOGM1LjgtMi42IDkuNS04LjMgOS41LTE0LjZzLTMuNy0xMi05LjUtMTQuNmwtNTUuNC0yNC44IDIxLjctNTYuN2MyLjMtNS45IC44LTEyLjYtMy42LTE3cy0xMS4xLTUuOS0xNy0zLjZMMTk5LjQgNjQuOSAxNzQuNiA5LjVDMTcyIDMuNyAxNjYuMyAwIDE2MCAwem0wIDk2YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em0zMiA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0zMTIgMTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnY1My40Yy0xNC44IDcuNy0yNCAyMy4xLTI0IDQ0LjZjMCAxNi44IDE2IDQ0IDM3LjQgNjcuMmM1LjggNi4yIDE1LjUgNi4yIDIxLjIgMEM2MjQgMzE4IDY0MCAyOTAuNyA2NDAgMjc0YzAtMjEuNS05LjItMzctMjQtNDQuNlYxNzZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODB2MjIuN2MtOS44LTQuMy0yMC42LTYuNy0zMi02LjdjLTQ0LjIgMC04MCAzNS44LTgwIDgwdjIxLjRjLTE0LjggNy43LTI0IDIzLjEtMjQgNDQuNmMwIDE2LjggMTYgNDQgMzcuNCA2Ny4yYzUuOCA2LjIgMTUuNSA2LjIgMjEuMiAwQzQwMCAzODIgNDE2IDM1NC43IDQxNiAzMzhjMC0yMS41LTkuMi0zNy0yNC00NC42VjI3MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMydjhWNDQ4SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg1MDRWMjgwdi04VjE3NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3VuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2MS41IDEuMmM1IDIuMSA4LjYgNi42IDkuNiAxMS45TDM5MSAxMjFsMTA3LjkgMTkuOGM1LjMgMSA5LjggNC42IDExLjkgOS42czEuNSAxMC43LTEuNiAxNS4yTDQ0Ni45IDI1Nmw2Mi4zIDkwLjNjMy4xIDQuNSAzLjcgMTAuMiAxLjYgMTUuMnMtNi42IDguNi0xMS45IDkuNkwzOTEgMzkxIDM3MS4xIDQ5OC45Yy0xIDUuMy00LjYgOS44LTkuNiAxMS45cy0xMC43IDEuNS0xNS4yLTEuNkwyNTYgNDQ2LjlsLTkwLjMgNjIuM2MtNC41IDMuMS0xMC4yIDMuNy0xNS4yIDEuNnMtOC42LTYuNi05LjYtMTEuOUwxMjEgMzkxIDEzLjEgMzcxLjFjLTUuMy0xLTkuOC00LjYtMTEuOS05LjZzLTEuNS0xMC43IDEuNi0xNS4yTDY1LjEgMjU2IDIuOCAxNjUuN2MtMy4xLTQuNS0zLjctMTAuMi0xLjYtMTUuMnM2LjYtOC42IDExLjktOS42TDEyMSAxMjEgMTQwLjkgMTMuMWMxLTUuMyA0LjYtOS44IDkuNi0xMS45czEwLjctMS41IDE1LjIgMS42TDI1NiA2NS4xIDM0Ni4zIDIuOGM0LjUtMy4xIDEwLjItMy43IDE1LjItMS42ek0xNjAgMjU2YTk2IDk2IDAgMSAxIDE5MiAwIDk2IDk2IDAgMSAxIC0xOTIgMHptMjI0IDBhMTI4IDEyOCAwIDEgMCAtMjU2IDAgMTI4IDEyOCAwIDEgMCAyNTYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3VwZXJzY3JpcHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDMyYzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40bC0zMiAxNmMtMTUuOCA3LjktMjIuMiAyNy4xLTE0LjMgNDIuOUMzOTMgNzMuNSA0MDQuMyA4MCA0MTYgODB2ODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoMzIgMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJWMzJ6TTMyIDY0QzE0LjMgNjQgMCA3OC4zIDAgOTZzMTQuMyAzMiAzMiAzMkg0Ny4zbDg5LjYgMTI4TDQ3LjMgMzg0SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDY0YzEwLjQgMCAyMC4yLTUuMSAyNi4yLTEzLjZMMTc2IDMxMS44bDg1LjggMTIyLjZjNiA4LjYgMTUuOCAxMy42IDI2LjIgMTMuNmgzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMDQuN0wyMTUuMSAyNTZsODkuNi0xMjhIMzIwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDI4OGMtMTAuNCAwLTIwLjIgNS4xLTI2LjIgMTMuNkwxNzYgMjAwLjIgOTAuMiA3Ny42Qzg0LjIgNjkuMSA3NC40IDY0IDY0IDY0SDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTd2F0Y2hib29rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwSDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMlY0MTZjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZWMzJ6TTIyMy42IDQyNS45Yy4zLTMuMyAuNC02LjYgLjQtOS45VjE1NGw3NS40LTc1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsOTAuNSA5MC41YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zTDIyMy42IDQyNS45ek0xODIuOCA1MTJsMTkyLTE5Mkg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMySDE4Mi44ek0xMjggNjRINjR2NjRoNjRWNjR6TTY0IDE5MnY2NGg2NFYxOTJINjR6TTk2IDQ0MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN5bmFnb2d1ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDkuOCAzLjdjNS45LTQuOSAxNC42LTQuOSAyMC41IDBsMTIxIDEwMC44QzQ2OS41IDExOS43IDQ4MCAxNDIuMiA0ODAgMTY2VjI4MC4xIDUxMkg0NjQgMzUyVjQxNmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnY5NkgxNzYgMTYwVjI4MC4xIDE2NmMwLTIzLjcgMTAuNS00Ni4zIDI4LjgtNjEuNUwzMDkuOCAzLjd6TTUxMiA1MTJWMjQ0LjVsMjguMS0zMS4yYzMtMy40IDcuNC01LjMgMTEuOS01LjNzOC45IDEuOSAxMS45IDUuM2w2My44IDcwLjljNy45IDguOCAxMi4zIDIwLjMgMTIuMyAzMi4xVjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg1MTJ6TTEyOCAyNDQuNVY1MTJINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjMxNi4zYzAtMTEuOSA0LjQtMjMuMyAxMi4zLTMyLjFsNjMuOC03MC45YzMtMy40IDcuNC01LjMgMTEuOS01LjNzOC45IDEuOSAxMS45IDUuM0wxMjggMjQ0LjV6TTMyNyAxMjQuM2MtMy4xLTUuNC0xMC45LTUuNC0xMy45IDBsLTE1LjkgMjguMS0zMi4zLS4zYy02LjItLjEtMTAuMSA2LjctNyAxMi4xTDI3NC4zIDE5MmwtMTYuNCAyNy44Yy0zLjIgNS40IC43IDEyLjEgNyAxMi4xbDMyLjMtLjNMMzEzIDI1OS43YzMuMSA1LjQgMTAuOSA1LjQgMTMuOSAwbDE1LjktMjguMSAzMi4zIC4zYzYuMiAuMSAxMC4xLTYuNyA3LTEyLjFMMzY1LjcgMTkybDE2LjQtMjcuOGMzLjItNS40LS43LTEyLjEtNy0xMi4xbC0zMi4zIC4zTDMyNyAxMjQuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3lyaW5nZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDEgN2wzMiAzMiAzMiAzMmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0xNS0xNUw0MTcuOSAxMjhsNTUgNTVjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNzItNzJMMjk1IDczYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNTUgNTVMNDIyLjEgNTYgNDA3IDQxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDB6TTIxMC4zIDE1NS43bDYxLjEtNjEuMWMuMyAuMyAuNiAuNyAxIDFsMTYgMTYgNTYgNTYgNTYgNTYgMTYgMTZjLjMgLjMgLjYgLjYgMSAxbC0xOTEgMTkxYy0xMC41IDEwLjUtMjQuNyAxNi40LTM5LjYgMTYuNEg5Ny45TDQxIDUwNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1Ny01N1YzMjUuM2MwLTE0LjkgNS45LTI5LjEgMTYuNC0zOS42bDQzLjMtNDMuMyA1NyA1N2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTU3LTU3IDQxLjQtNDEuNCA1NyA1N2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTU3LTU3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5NkgxNjBWNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWOTZIMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDE5MiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFibGVDZWxsc0NvbHVtbkxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY1LjFjLTM3LjggNS40LTY5LjQgMjkuNi04NS4yIDYyLjlMMzYwIDIyNGwwIDY0IDU2IDAgMCA4LjZjLTE5LjEgMTEuMS0zMiAzMS43LTMyIDU1LjRsLTI0IDAgMCA2NCAyNCAwIDAgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0yMDggMGwwIDY0IDg4IDAgMC02NC04OCAwem0yNDAgMGwtODggMCAwIDY0IDg4IDAgMC02NHpNMjA4IDIyNGwwIDY0IDg4IDAgMC02NC04OCAwem0wIDEyOGwwIDY0IDg4IDAgMC02NC04OCAwek01MjggMjQwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4IDY0IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTgwIDMyYzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA0OGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDAtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhYmxlQ2VsbHNMYXJnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggOTZWMjI0SDI4OFY5Nkg0NDh6bTAgMTkyVjQxNkgyODhWMjg4SDQ0OHpNMjI0IDIyNEg2NFY5NkgyMjRWMjI0ek02NCAyODhIMjI0VjQxNkg2NFYyODh6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFibGVDZWxsc1Jvd0xvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY1LjFjLTM3LjggNS40LTY5LjQgMjkuNi04NS4yIDYyLjlMMzYwIDIyNGwwIDY0IDU2IDAgMCA4LjZjLTE5LjEgMTEuMS0zMiAzMS43LTMyIDU1LjRsLTI0IDAgMCA2NCAyNCAwIDAgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek02NCAyMjRsMCA2NCA4OCAwIDAtNjQtODggMHptMjMyIDBsLTg4IDAgMCA2NCA4OCAwIDAtNjR6TTE1MiAzNTJsLTg4IDAgMCA2NCA4OCAwIDAtNjR6bTU2IDBsMCA2NCA4OCAwIDAtNjQtODggMHpNNTI4IDI0MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0OCA2NCAwIDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJ6bS04MCAzMmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwwLTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYWJsZUNlbGxzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHptODggNjR2NjRINjRWOTZoODh6bTU2IDBoODh2NjRIMjA4Vjk2em0yNDAgMHY2NEgzNjBWOTZoODh6TTY0IDIyNGg4OHY2NEg2NFYyMjR6bTIzMiAwdjY0SDIwOFYyMjRoODh6bTY0IDBoODh2NjRIMzYwVjIyNHpNMTUyIDM1MnY2NEg2NFYzNTJoODh6bTU2IDBoODh2NjRIMjA4VjM1MnptMjQwIDB2NjRIMzYwVjM1Mmg4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFibGVDb2x1bW5zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJINDQ4YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWOTZ6bTY0IDY0VjQxNkgyMjRWMTYwSDY0em0zODQgMEgyODhWNDE2SDQ0OFYxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhYmxlTGlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDQ0OGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2em02NCAwdjY0aDY0Vjk2SDY0em0zODQgMEgxOTJ2NjRINDQ4Vjk2ek02NCAyMjR2NjRoNjRWMjI0SDY0em0zODQgMEgxOTJ2NjRINDQ4VjIyNHpNNjQgMzUydjY0aDY0VjM1Mkg2NHptMzg0IDBIMTkydjY0SDQ0OFYzNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhYmxlVGVubmlzUGFkZGxlQmFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAgMjg4Yy01MC4xIDAtOTMuNiAyOC44LTExNC42IDcwLjhMMTMyLjkgMTI2LjNsLjYtLjYgNjAuMS02MC4xYzg3LjUtODcuNSAyMjkuMy04Ny41IDMxNi44IDBjNjcuMSA2Ny4xIDgyLjcgMTY2LjMgNDYuOCAyNDguM0M1MzUuOCAyOTcuNiA1MDkgMjg4IDQ4MCAyODh6TTExMy4zIDE1MS45TDM1NC4xIDM5Mi43Yy0xLjQgNy41LTIuMSAxNS4zLTIuMSAyMy4zYzAgMjMuMiA2LjIgNDQuOSAxNi45IDYzLjdjLTMgLjItNi4xIC4zLTkuMiAuM0gzNTdjLTMzLjkgMC02Ni41LTEzLjUtOTAuNS0zNy41bC05LjgtOS44Yy0xMy4xLTEzLjEtMzQuNi0xMi40LTQ2LjggMS43TDE1Mi4yIDUwMWMtNS44IDYuNy0xNC4yIDEwLjctMjMgMTFzLTE3LjUtMy4xLTIzLjgtOS40bC0zMi0zMmMtNi4zLTYuMy05LjctMTQuOS05LjQtMjMuOHM0LjMtMTcuMiAxMS0yM2w2Ni42LTU3LjdjMTQtMTIuMiAxNC44LTMzLjcgMS43LTQ2LjhsLTkuOC05LjhjLTI0LTI0LTM3LjUtNTYuNi0zNy41LTkwLjV2LTIuN2MwLTIyLjggNi4xLTQ0LjkgMTcuMy02NC4zek00ODAgMzIwYTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAyNTZWMTYwSDIyNHY5Nkg2NHptMCA2NEgyMjR2OTZINjRWMzIwem0yMjQgOTZWMzIwSDQ0OHY5NkgyODh6TTQ0OCAyNTZIMjg4VjE2MEg0NDh2OTZ6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFibGV0QnV0dG9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6TTIyNCA0MDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYWJsZXRTY3JlZW5CdXR0b24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBIMzg0YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNjR6TTI1NiA0NDhhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzg0IDY0SDY0VjM4NEgzODRWNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhYmxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek0xNzYgNDMyaDk2YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFibGV0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MTQuMyAyNDdjMTYuMy0yNSAyNS43LTU0LjkgMjUuNy04N0M2NDAgNzEuNiA1NjguNCAwIDQ4MCAwYy0zMi4xIDAtNjEuOSA5LjQtODcgMjUuN2MtNy45IDUuMi04LjUgMTYuMi0xLjggMjIuOUw1OTEuNCAyNDguOGM2LjcgNi43IDE3LjggNi4yIDIyLjktMS44ek01NjcgMjk0LjNjNy45LTUuMiA4LjUtMTYuMiAxLjgtMjIuOUwzNjguNiA3MS4yYy02LjctNi43LTE3LjgtNi4yLTIyLjkgMS44Yy0xNi4zIDI1LTI1LjcgNTQuOS0yNS43IDg3YzAgODguNCA3MS42IDE2MCAxNjAgMTYwYzMyLjEgMCA2MS45LTkuNCA4Ny0yNS43ek0zMDEuNSAzNjhIMTguNWMtOS41IDAtMTYuOSA4LjItMTUgMTcuNUMxOC45IDQ1Ny44IDgzLjEgNTEyIDE2MCA1MTJzMTQxLjEtNTQuMiAxNTYuNS0xMjYuNWMyLTkuMy01LjUtMTcuNS0xNS0xNy41em0wLTMyYzkuNSAwIDE2LjktOC4yIDE1LTE3LjVDMzAxLjEgMjQ2LjIgMjM2LjkgMTkyIDE2MCAxOTJTMTguOSAyNDYuMiAzLjUgMzE4LjVjLTIgOS4zIDUuNSAxNy41IDE1IDE3LjVIMzAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhY2hvZ3JhcGhEaWdpdGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4VjM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NEg1NzZjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0em0zMiA2NEgzMjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNjQgMzY4YzAtOC44IDcuMi0xNiAxNi0xNkgzMzZjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNnptMzIwIDBjMC04LjggNy4yLTE2IDE2LTE2SDU2MGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkg0MDBjLTguOCAwLTE2LTcuMi0xNi0xNnpNODAgMjg4YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnptNDggMTZhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHptODAtMTZhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyem00OCAxNmExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwem04MC0xNmExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDgwVjIyOS41YzAgMTcgNi43IDMzLjMgMTguNyA0NS4zbDE3NiAxNzZjMjUgMjUgNjUuNSAyNSA5MC41IDBMNDE4LjcgMzE3LjNjMjUtMjUgMjUtNjUuNSAwLTkwLjVsLTE3Ni0xNzZjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHptMTEyIDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFncyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDUgMzkuMUw0NzIuOCAxNjguNGM1Mi40IDUzIDUyLjQgMTM4LjIgMCAxOTEuMkwzNjAuOCA0NzIuOWMtOS4zIDkuNC0yNC41IDkuNS0zMy45IC4ycy05LjUtMjQuNS0uMi0zMy45TDQzOC42IDMyNS45YzMzLjktMzQuMyAzMy45LTg5LjQgMC0xMjMuN0wzMTAuOSA3Mi45Yy05LjMtOS40LTkuMi0yNC42IC4yLTMzLjlzMjQuNi05LjIgMzMuOSAuMnpNMCAyMjkuNVY4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMkgxOTcuNWMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN2wxNjggMTY4YzI1IDI1IDI1IDY1LjUgMCA5MC41TDI3Ny4zIDQ0Mi43Yy0yNSAyNS02NS41IDI1LTkwLjUgMGwtMTY4LTE2OEM2LjcgMjYyLjcgMCAyNDYuNSAwIDIyOS41ek0xNDQgMTQ0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzgwLjggNDE2YzQxLjUtNDAuNyA2Ny4yLTk3LjMgNjcuMi0xNjBDNDQ4IDEzMi4zIDM0Ny43IDMyIDIyNCAzMlMwIDEzMi4zIDAgMjU2UzEwMC4zIDQ4MCAyMjQgNDgwSDU0NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzODAuOHpNMjI0IDE2MGE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptNjQgOTZhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYXJwRHJvcGxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMTYwYy0zNS4zIDAtNjQtMjYuOS02NC02MGMwLTI0IDMzLjctNzAuMSA1Mi4yLTkzLjVjNi4xLTcuNyAxNy41LTcuNyAyMy42IDBDMzE4LjMgMjkuOSAzNTIgNzYgMzUyIDEwMGMwIDMzLjEtMjguNyA2MC02NCA2MHpNNjQgMTI4SDE5Ny41YzEzLjIgMzcuMyA0OC43IDY0IDkwLjUgNjRzNzcuNC0yNi43IDkwLjUtNjRINTEyYzM1LjMgMCA2NCAyOC43IDY0IDY0VjM1Mkg0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTI4TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0ek00NDggNTEybDAtMTI4SDU3Nkw0NDggNTEyek05NiAyNTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYXJwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3NiAxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRINjRDMjguNyA2NCAwIDkyLjcgMCAxMjhWMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM1MiAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMySDU3NlYxMjh6TTQ0OCA0NDhMNTc2IDMyMEg0NDhsMCAxMjh6TTk2IDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRheGkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjY0YzAgLjEgMCAuMSAwIC4yYy0zOC42IDIuMi03Mi4zIDI3LjMtODUuMiA2NC4xTDM5LjYgMjI4LjhDMTYuNCAyMzguNCAwIDI2MS4zIDAgMjg4VjQzMnY0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg2NGMxNy43IDAgMzItMTQuMyAzMi0zMlY0MzJINDE2djQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQzMiAyODhjMC0yNi43LTE2LjQtNDkuNi0zOS42LTU5LjJMNDM3LjIgMTI4LjNjLTEyLjktMzYuOC00Ni42LTYyLTg1LjItNjQuMWMwLS4xIDAtLjEgMC0uMlYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkgxOTJ6TTE2NS40IDEyOEgzNDYuNmMxMy42IDAgMjUuNyA4LjYgMzAuMiAyMS40TDQwMi45IDIyNEgxMDkuMWwyNi4xLTc0LjZjNC41LTEyLjggMTYuNi0yMS40IDMwLjItMjEuNHpNOTYgMjg4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjg4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRlZXRoT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAzMkM0MyAzMiAwIDc1IDAgMTI4djY0YzAgMzUuMyAyOC43IDY0IDY0IDY0SDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjhjMC01My00My05Ni05Ni05Nkg5NnpNMjI0IDk2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djU2YzAgMTMuMy0xMC43IDI0LTI0IDI0SDIwMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRWMTQ0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em04MCA0OGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4djU2YzAgMTMuMy0xMC43IDI0LTI0IDI0SDMyOGMtMTMuMyAwLTI0LTEwLjctMjQtMjRWMTQ0ek05NiAxMjhjMjYuNSAwIDQ4IDIxLjUgNDggNDh2MjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRINzJjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjE3NmMwLTI2LjUgMjEuNS00OCA0OC00OHptMzM2IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDh2MjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRINDU2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFYxNzZ6TTk2IDQ4MEg0ODBjNTMgMCA5Ni00MyA5Ni05NlYzNTJjMC0zNS4zLTI4LjctNjQtNjQtNjRINjRjLTM1LjMgMC02NCAyOC43LTY0IDY0djMyYzAgNTMgNDMgOTYgOTYgOTZ6bTAtNjRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjM0NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGg0OGMxMy4zIDAgMjQgMTAuNyAyNCAyNHYyNGMwIDI2LjUtMjEuNSA0OC00OCA0OHptODAtNDhWMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0aDQ4YzEzLjMgMCAyNCAxMC43IDI0IDI0djI0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4em0xNzYgNDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjM0NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGg0OGMxMy4zIDAgMjQgMTAuNyAyNCAyNHYyNGMwIDI2LjUtMjEuNSA0OC00OCA0OHptODAtNDhWMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0aDQ4YzEzLjMgMCAyNCAxMC43IDI0IDI0djI0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZWV0aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEyOEMwIDc1IDQzIDMyIDk2IDMySDQ4MGM1MyAwIDk2IDQzIDk2IDk2VjM4NGMwIDUzLTQzIDk2LTk2IDk2SDk2Yy01MyAwLTk2LTQzLTk2LTk2VjEyOHptMTc2IDQ4djU2YzAgMTMuMyAxMC43IDI0IDI0IDI0aDQ4YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE3NmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHptMTc2LTQ4Yy0yNi41IDAtNDggMjEuNS00OCA0OHY1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGg0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNzZjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTQ4IDIwOHYyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGg0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNFYyMDhjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDh6TTk2IDM4NGMyNi41IDAgNDgtMjEuNSA0OC00OFYzMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRINzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0djI0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4em04MC00OGMwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4VjMxMmMwLTEzLjMtMTAuNy0yNC0yNC0yNEgyMDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0djI0em0xNzYgNDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzEyYzAtMTMuMy0xMC43LTI0LTI0LTI0SDMyOGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2MjRjMCAyNi41IDIxLjUgNDggNDggNDh6bTgwLTE3NnYyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGg0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNFYyMDhjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDh6bTQ4IDE3NmMyNi41IDAgNDgtMjEuNSA0OC00OFYzMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRINDU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYyNGMwIDI2LjUgMjEuNSA0OCA0OCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVtcGVyYXR1cmVBcnJvd0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4VjI3Ni41YzAgMTcuMyA3LjEgMzEuOSAxNS4zIDQyLjVDMjQ5LjggMzMyLjYgMjU2IDM0OS41IDI1NiAzNjhjMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC0xOC41IDYuMi0zNS40IDE2LjctNDguOWM4LjItMTAuNiAxNS4zLTI1LjIgMTUuMy00Mi41VjExMnpNMTc2IDBDMTE0LjEgMCA2NCA1MC4xIDY0IDExMlYyNzYuNGMwIC4xLS4xIC4zLS4yIC42Yy0uMiAuNi0uOCAxLjYtMS43IDIuOEM0My4yIDMwNC4yIDMyIDMzNC44IDMyIDM2OGMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NHMxNDQtNjQuNSAxNDQtMTQ0YzAtMzMuMi0xMS4yLTYzLjgtMzAuMS04OC4xYy0uOS0xLjItMS41LTIuMi0xLjctMi44Yy0uMS0uMy0uMi0uNS0uMi0uNlYxMTJDMjg4IDUwLjEgMjM3LjkgMCAxNzYgMHptMCA0MTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhjMC0yMC45LTEzLjQtMzguNy0zMi00NS4zVjI3MmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnY1MC43Yy0xOC42IDYuNi0zMiAyNC40LTMyIDQ1LjNjMCAyNi41IDIxLjUgNDggNDggNDh6bTMzNi02NEg0ODBWNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMzUySDM4NGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlsNjQgNjRjNiA2IDE0LjEgOS40IDIyLjYgOS40czE2LjYtMy40IDIyLjYtOS40bDY0LTY0YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45cy0xNi42LTE5LjgtMjkuNi0xOS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZW1wZXJhdHVyZUFycm93VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4VjI3Ni41YzAgMTcuMyA3LjEgMzEuOSAxNS4zIDQyLjVDMjQ5LjggMzMyLjYgMjU2IDM0OS41IDI1NiAzNjhjMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC0xOC41IDYuMi0zNS40IDE2LjctNDguOWM4LjItMTAuNiAxNS4zLTI1LjIgMTUuMy00Mi41VjExMnpNMTc2IDBDMTE0LjEgMCA2NCA1MC4xIDY0IDExMlYyNzYuNGMwIC4xLS4xIC4zLS4yIC42Yy0uMiAuNi0uOCAxLjYtMS43IDIuOEM0My4yIDMwNC4yIDMyIDMzNC44IDMyIDM2OGMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NHMxNDQtNjQuNSAxNDQtMTQ0YzAtMzMuMi0xMS4yLTYzLjgtMzAuMS04OC4xYy0uOS0xLjItMS41LTIuMi0xLjctMi44Yy0uMS0uMy0uMi0uNS0uMi0uNlYxMTJDMjg4IDUwLjEgMjM3LjkgMCAxNzYgMHptMCA0MTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhjMC0yMC45LTEzLjQtMzguNy0zMi00NS4zVjExMmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNlYzMjIuN2MtMTguNiA2LjYtMzIgMjQuNC0zMiA0NS4zYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4ek00ODAgMTYwaDMyYzEyLjkgMCAyNC42LTcuOCAyOS42LTE5LjhzMi4yLTI1LjctNi45LTM0LjlsLTY0LTY0Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45czE2LjYgMTkuOCAyOS42IDE5LjhoMzJWNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZW1wZXJhdHVyZUVtcHR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMiAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OFYyNzYuNWMwIDE3LjMgNy4xIDMxLjkgMTUuMyA0Mi41QzIzMy44IDMzMi42IDI0MCAzNDkuNSAyNDAgMzY4YzAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtMTguNSA2LjItMzUuNCAxNi43LTQ4LjljOC4yLTEwLjYgMTUuMy0yNS4yIDE1LjMtNDIuNVYxMTJ6TTE2MCAwQzk4LjEgMCA0OCA1MC4yIDQ4IDExMlYyNzYuNWMwIC4xLS4xIC4zLS4yIC42Yy0uMiAuNi0uOCAxLjYtMS43IDIuOEMyNy4yIDMwNC4yIDE2IDMzNC44IDE2IDM2OGMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NHMxNDQtNjQuNSAxNDQtMTQ0YzAtMzMuMi0xMS4yLTYzLjgtMzAuMS04OC4xYy0uOS0xLjItMS41LTIuMi0xLjctMi44Yy0uMS0uMy0uMi0uNS0uMi0uNlYxMTJDMjcyIDUwLjIgMjIxLjkgMCAxNjAgMHptMCA0MTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZW1wZXJhdHVyZUZ1bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDY0Yy0yNi41IDAtNDggMjEuNS00OCA0OFYyNzYuNWMwIDE3LjMtNy4xIDMxLjktMTUuMyA0Mi41Qzg2LjIgMzMyLjYgODAgMzQ5LjUgODAgMzY4YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0xOC41LTYuMi0zNS40LTE2LjctNDguOWMtOC4yLTEwLjYtMTUuMy0yNS4yLTE1LjMtNDIuNVYxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTQ4IDExMkM0OCA1MC4yIDk4LjEgMCAxNjAgMHMxMTIgNTAuMSAxMTIgMTEyVjI3Ni41YzAgLjEgLjEgLjMgLjIgLjZjLjIgLjYgLjggMS42IDEuNyAyLjhjMTguOSAyNC40IDMwLjEgNTUgMzAuMSA4OC4xYzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzE2IDQ0Ny41IDE2IDM2OGMwLTMzLjIgMTEuMi02My44IDMwLjEtODguMWMuOS0xLjIgMS41LTIuMiAxLjctMi44Yy4xLS4zIC4yLS41IC4yLS42VjExMnpNMjA4IDM2OGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNWMTEyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZWMzIyLjdjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZW1wZXJhdHVyZUhhbGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDY0Yy0yNi41IDAtNDggMjEuNS00OCA0OFYyNzYuNWMwIDE3LjMtNy4xIDMxLjktMTUuMyA0Mi41Qzg2LjIgMzMyLjYgODAgMzQ5LjUgODAgMzY4YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0xOC41LTYuMi0zNS40LTE2LjctNDguOWMtOC4yLTEwLjYtMTUuMy0yNS4yLTE1LjMtNDIuNVYxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTQ4IDExMkM0OCA1MC4yIDk4LjEgMCAxNjAgMHMxMTIgNTAuMSAxMTIgMTEyVjI3Ni41YzAgLjEgLjEgLjMgLjIgLjZjLjIgLjYgLjggMS42IDEuNyAyLjhjMTguOSAyNC40IDMwLjEgNTUgMzAuMSA4OC4xYzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzE2IDQ0Ny41IDE2IDM2OGMwLTMzLjIgMTEuMi02My44IDMwLjEtODguMWMuOS0xLjIgMS41LTIuMiAxLjctMi44Yy4xLS4zIC4yLS41IC4yLS42VjExMnpNMjA4IDM2OGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNWMjA4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZWMzIyLjdjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZW1wZXJhdHVyZUhpZ2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMCAxMjhBOTYgOTYgMCAxIDAgNDE2IDBhOTYgOTYgMCAxIDAgMCAxOTJ6TTk2IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4VjI3Ni41YzAgMTcuMyA3LjEgMzEuOSAxNS4zIDQyLjVDMjE3LjggMzMyLjYgMjI0IDM0OS41IDIyNCAzNjhjMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC0xOC41IDYuMi0zNS40IDE2LjctNDguOUM4OC45IDMwOC40IDk2IDI5My44IDk2IDI3Ni41VjExMnpNMTQ0IDBDODIuMSAwIDMyIDUwLjIgMzIgMTEyVjI3Ni41YzAgLjEtLjEgLjMtLjIgLjZjLS4yIC42LS44IDEuNi0xLjcgMi44QzExLjIgMzA0LjIgMCAzMzQuOCAwIDM2OGMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NHMxNDQtNjQuNSAxNDQtMTQ0YzAtMzMuMi0xMS4yLTYzLjgtMzAuMS04OC4xYy0uOS0xLjItMS41LTIuMi0xLjctMi44Yy0uMS0uMy0uMi0uNS0uMi0uNlYxMTJDMjU2IDUwLjIgMjA1LjkgMCAxNDQgMHptMCA0MTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhjMC0yMC45LTEzLjQtMzguNy0zMi00NS4zVjExMmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNlYzMjIuN2MtMTguNiA2LjYtMzIgMjQuNC0zMiA0NS4zYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZW1wZXJhdHVyZUxvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDk2YTk2IDk2IDAgMSAxIDE5MiAwQTk2IDk2IDAgMSAxIDMyMCA5NnpNMTQ0IDY0Yy0yNi41IDAtNDggMjEuNS00OCA0OFYyNzYuNWMwIDE3LjMtNy4xIDMxLjktMTUuMyA0Mi41QzcwLjIgMzMyLjYgNjQgMzQ5LjUgNjQgMzY4YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0xOC41LTYuMi0zNS40LTE2LjctNDguOWMtOC4yLTEwLjYtMTUuMy0yNS4yLTE1LjMtNDIuNVYxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTMyIDExMkMzMiA1MC4yIDgyLjEgMCAxNDQgMHMxMTIgNTAuMSAxMTIgMTEyVjI3Ni41YzAgLjEgLjEgLjMgLjIgLjZjLjIgLjYgLjggMS42IDEuNyAyLjhjMTguOSAyNC40IDMwLjEgNTUgMzAuMSA4OC4xYzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzAgNDQ3LjUgMCAzNjhjMC0zMy4yIDExLjItNjMuOCAzMC4xLTg4LjFjLjktMS4yIDEuNS0yLjIgMS43LTIuOGMuMS0uMyAuMi0uNSAuMi0uNlYxMTJ6TTE5MiAzNjhjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zVjI3MmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djUwLjdjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZW1wZXJhdHVyZVF1YXJ0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDY0Yy0yNi41IDAtNDggMjEuNS00OCA0OFYyNzYuNWMwIDE3LjMtNy4xIDMxLjktMTUuMyA0Mi41Qzg2LjIgMzMyLjYgODAgMzQ5LjUgODAgMzY4YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0xOC41LTYuMi0zNS40LTE2LjctNDguOWMtOC4yLTEwLjYtMTUuMy0yNS4yLTE1LjMtNDIuNVYxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTQ4IDExMkM0OCA1MC4yIDk4LjEgMCAxNjAgMHMxMTIgNTAuMSAxMTIgMTEyVjI3Ni41YzAgLjEgLjEgLjMgLjIgLjZjLjIgLjYgLjggMS42IDEuNyAyLjhjMTguOSAyNC40IDMwLjEgNTUgMzAuMSA4OC4xYzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzE2IDQ0Ny41IDE2IDM2OGMwLTMzLjIgMTEuMi02My44IDMwLjEtODguMWMuOS0xLjIgMS41LTIuMiAxLjctMi44Yy4xLS4zIC4yLS41IC4yLS42VjExMnpNMjA4IDM2OGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNWMjcyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ2NTAuN2MxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRlbXBlcmF0dXJlVGhyZWVRdWFydGVycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgNjRjLTI2LjUgMC00OCAyMS41LTQ4IDQ4VjI3Ni41YzAgMTcuMy03LjEgMzEuOS0xNS4zIDQyLjVDODYuMiAzMzIuNiA4MCAzNDkuNSA4MCAzNjhjMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTE4LjUtNi4yLTM1LjQtMTYuNy00OC45Yy04LjItMTAuNi0xNS4zLTI1LjItMTUuMy00Mi41VjExMmMwLTI2LjUtMjEuNS00OC00OC00OHpNNDggMTEyQzQ4IDUwLjIgOTguMSAwIDE2MCAwczExMiA1MC4xIDExMiAxMTJWMjc2LjVjMCAuMSAuMSAuMyAuMiAuNmMuMiAuNiAuOCAxLjYgMS43IDIuOGMxOC45IDI0LjQgMzAuMSA1NSAzMC4xIDg4LjFjMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTMTYgNDQ3LjUgMTYgMzY4YzAtMzMuMiAxMS4yLTYzLjggMzAuMS04OC4xYy45LTEuMiAxLjUtMi4yIDEuNy0yLjhjLjEtLjMgLjItLjUgLjItLjZWMTEyek0yMDggMzY4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM1YxNDRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNlYzMjIuN2MxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRlbmdlU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMySDM1MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMkMxNC4zIDk2IDAgODEuNyAwIDY0ek0wIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMkgxOTIgMzUyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDIyNFY0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMjI0SDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVudEFycm93RG93blRvTGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDEuOCAxMTEuOWM4LjkgOS45IDguMSAyNS0xLjggMzMuOWwtODAgNzJjLTkuMSA4LjItMjMgOC4yLTMyLjEgMGwtODAtNzJjLTkuOS04LjktMTAuNy0yNC0xLjgtMzMuOXMyNC0xMC43IDMzLjktMS44bDM5LjkgMzZMMTIwIDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMjIuMSAzOS45LTM2YzkuOS04LjkgMjUtOC4xIDMzLjkgMS44em0xMjIuOCAyMi42YzExLjUtOC43IDI3LjMtOC43IDM4LjggMGwxNjggMTI4YzYuNiA1IDExIDEyLjUgMTIuMyAyMC43bDI0IDE2MCAuNyA0LjdjMTcuNSAuMiAzMS42IDE0LjQgMzEuNiAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkgxNTkuNmwuNy00LjcgMjQtMTYwYzEuMi04LjIgNS42LTE1LjcgMTIuMy0yMC43bDE2OC0xMjh6TTM4NCA0NDhoODBMNDAyLjcgMzI1LjVjLTEuNy0zLjQtNS4xLTUuNS04LjgtNS41Yy01LjUgMC05LjkgNC40LTkuOSA5LjlWNDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZW50QXJyb3dMZWZ0UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg4LjEgNi4yYy05LjktOC45LTI1LTguMS0zMy45IDEuOHMtOC4xIDI1IDEuOCAzMy45TDQ4OS41IDcyIDg2LjUgNzJsMzMuNS0zMC4yYzkuOS04LjkgMTAuNy0yNCAxLjgtMzMuOVM5Ny44LTIuNyA4Ny45IDYuMmwtODAgNzJDMi45IDgyLjcgMCA4OS4yIDAgOTZzMi45IDEzLjMgNy45IDE3LjhsODAgNzJjOS45IDguOSAyNSA4LjEgMzMuOS0xLjhzOC4xLTI1LTEuOC0zMy45TDg2LjUgMTIwbDQwMi45IDAtMzMuNSAzMC4yYy05LjkgOC45LTEwLjcgMjQtMS44IDMzLjlzMjQgMTAuNyAzMy45IDEuOGw4MC03MmM1LjEtNC42IDcuOS0xMSA3LjktMTcuOHMtMi45LTEzLjMtNy45LTE3LjhsLTgwLTcyek0zMDcuNCAxNjYuNWMtMTEuNS04LjctMjcuMy04LjctMzguOCAwbC0xNjggMTI4Yy02LjYgNS0xMSAxMi41LTEyLjMgMjAuN2wtMjQgMTYwYy0xLjQgOS4yIDEuMyAxOC42IDcuNCAyNS42Uzg2LjcgNTEyIDk2IDUxMkgyNDBoMTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzYxLjljMC01LjUgNC40LTkuOSA5LjktOS45YzMuNyAwIDcuMiAyLjEgOC44IDUuNWw2OC40IDEzNi44YzUuNCAxMC44IDE2LjUgMTcuNyAyOC42IDE3LjdINDY0aDE2YzkuMyAwIDE4LjItNC4xIDI0LjItMTEuMXM4LjgtMTYuNCA3LjQtMjUuNmwtMjQtMTYwYy0xLjItOC4yLTUuNi0xNS43LTEyLjMtMjAuN2wtMTY4LTEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVudEFycm93VHVybkxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIwLjEgNDEuOGM5LjktOC45IDEwLjctMjQgMS44LTMzLjlTOTcuOC0yLjcgODcuOSA2LjJsLTgwIDcyQzIuOSA4Mi43IDAgODkuMiAwIDk2czIuOSAxMy4zIDcuOSAxNy44bDgwIDcyYzkuOSA4LjkgMjUgOC4xIDMzLjktMS44czguMS0yNS0xLjgtMzMuOUw4Ni41IDEyMCA0NTYgMTIwYzM5LjggMCA3MiAzMi4yIDcyIDcydjQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMTkyYzAtNjYuMy01My43LTEyMC0xMjAtMTIwTDg2LjUgNzJsMzMuNS0zMC4yek0zMDcuNCAxNjYuNWMtMTEuNS04LjctMjcuMy04LjctMzguOCAwbC0xNjggMTI4Yy02LjYgNS0xMSAxMi41LTEyLjMgMjAuN2wtMjQgMTYwYy0xLjQgOS4yIDEuMyAxOC42IDcuNCAyNS42Uzg2LjcgNTEyIDk2IDUxMkgyNDBoMTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzYxLjljMC01LjUgNC40LTkuOSA5LjktOS45YzMuNyAwIDcuMiAyLjEgOC44IDUuNWw2OC40IDEzNi44YzUuNCAxMC44IDE2LjUgMTcuNyAyOC42IDE3LjdINDY0aDE2YzkuMyAwIDE4LjItNC4xIDI0LjItMTEuMXM4LjgtMTYuNCA3LjQtMjUuNmwtMjQtMTYwYy0xLjItOC4yLTUuNi0xNS43LTEyLjMtMjAuN2wtMTY4LTEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVudEFycm93c0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA5LjggMTExLjljLTguOS05LjktMjQtMTAuNy0zMy45LTEuOGwtMzkuOSAzNkwxMzYgMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRTODggMTAuNyA4OCAyNGwwIDEyMi4xLTM5LjktMzZjLTkuOS04LjktMjUtOC4xLTMzLjkgMS44cy04LjEgMjUgMS44IDMzLjlsODAgNzJjOS4xIDguMiAyMyA4LjIgMzIuMSAwbDgwLTcyYzkuOS04LjkgMTAuNy0yNCAxLjgtMzMuOXptMzUyIDBjLTguOS05LjktMjQtMTAuNy0zMy45LTEuOGwtMzkuOSAzNlYyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNFYxNDYuMWwtMzkuOS0zNmMtOS45LTguOS0yNS04LjEtMzMuOSAxLjhzLTguMSAyNSAxLjggMzMuOWw4MCA3MmM5LjEgOC4yIDIzIDguMiAzMi4xIDBsODAtNzJjOS45LTguOSAxMC43LTI0IDEuOC0zMy45ek0zMDcuNCAxNjYuNWMtMTEuNS04LjctMjcuMy04LjctMzguOCAwbC0xNjggMTI4Yy02LjYgNS0xMSAxMi41LTEyLjMgMjAuN2wtMjQgMTYwYy0xLjQgOS4yIDEuMyAxOC42IDcuNCAyNS42Uzg2LjcgNTEyIDk2IDUxMkgyNDBoMTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzYxLjljMC01LjUgNC40LTkuOSA5LjktOS45YzMuNyAwIDcuMiAyLjEgOC44IDUuNWw2OC40IDEzNi44YzUuNCAxMC44IDE2LjUgMTcuNyAyOC42IDE3LjdINDY0aDE2YzkuMyAwIDE4LjItNC4xIDI0LjItMTEuMXM4LjgtMTYuNCA3LjQtMjUuNmwtMjQtMTYwYy0xLjItOC4yLTUuNi0xNS43LTEyLjMtMjAuN2wtMTY4LTEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNjkuNCA2QzI4MC41LTIgMjk1LjUtMiAzMDYuNiA2bDIyNCAxNjBjNy40IDUuMyAxMi4yIDEzLjUgMTMuMiAyMi41bDMyIDI4OGMxIDktMS45IDE4LjEtOCAyNC45cy0xNC43IDEwLjctMjMuOCAxMC43SDQ2NCA0MzUuOGMtMTIuMSAwLTIzLjItNi44LTI4LjYtMTcuN0wzMDYuNyAyOTMuNWMtMS43LTMuNC01LjEtNS41LTguOC01LjVjLTUuNSAwLTkuOSA0LjQtOS45IDkuOVY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJIMjQwIDMyYy05LjEgMC0xNy44LTMuOS0yMy44LTEwLjdzLTktMTUuOC04LTI0LjlsMzItMjg4YzEtOSA1LjgtMTcuMiAxMy4yLTIyLjVMMjY5LjQgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVudHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzk2LjYgNi41TDIzNS44IDEyOS4xYzkuNiAxLjggMTguOSA1LjggMjcgMTJsMTY4IDEyOGMxMy4yIDEwLjEgMjIgMjQuOSAyNC41IDQxLjRsNi4yIDQxLjVINjA4YzkuMyAwIDE4LjItNC4xIDI0LjItMTEuMXM4LjgtMTYuNCA3LjQtMjUuNmwtMjQtMTYwYy0xLjItOC4yLTUuNi0xNS43LTEyLjMtMjAuN2wtMTY4LTEyOGMtMTEuNS04LjctMjcuMy04LjctMzguOCAwem0tMTUzLjIgMTYwYy0xMS41LTguNy0yNy4zLTguNy0zOC44IDBsLTE2OCAxMjhjLTYuNiA1LTExIDEyLjUtMTIuMyAyMC43bC0yNCAxNjBjLTEuNCA5LjIgMS4zIDE4LjYgNy40IDI1LjZTMjIuNyA1MTIgMzIgNTEySDE3NmgxNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzNjEuOWMwLTUuNSA0LjQtOS45IDkuOS05LjljMy43IDAgNy4yIDIuMSA4LjggNS41bDY4LjQgMTM2LjhjNS40IDEwLjggMTYuNSAxNy43IDI4LjYgMTcuN0g0MDBoMTZjOS4zIDAgMTguMi00LjEgMjQuMi0xMS4xczguOC0xNi40IDcuNC0yNS42bC0yNC0xNjBjLTEuMi04LjItNS42LTE1LjctMTIuMy0yMC43bC0xNjgtMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZXJtaW5hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjQgODYuNkMtMy4xIDc0LjEtMy4xIDUzLjkgOS40IDQxLjRzMzIuOC0xMi41IDQ1LjMgMGwxOTIgMTkyYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xOTIgMTkyYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxNzguNyAyNTYgOS40IDg2LjZ6TTI1NiA0MTZINTQ0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGV4dEhlaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAxMjhWOTZoNjRsMCAzMjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJIMjI0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDE5MmwwLTMyMGg2NHYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDE2MCA0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6TTUwMi42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlzMTYuNiAxOS44IDI5LjYgMTkuOGgzMlYzNTJINDE2Yy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44cy0yLjIgMjUuNyA2LjkgMzQuOWw2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw2NC02NGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOXMtMTYuNi0xOS44LTI5LjYtMTkuOEg1MTJWMTYwaDMyYzEyLjkgMCAyNC42LTcuOCAyOS42LTE5LjhzMi4yLTI1LjctNi45LTM0LjlsLTY0LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZXh0U2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzguOCA1LjFDMjguNC0zLjEgMTMuMy0xLjIgNS4xIDkuMlMtMS4yIDM0LjcgOS4yIDQyLjlsNTkyIDQ2NGMxMC40IDguMiAyNS41IDYuMyAzMy43LTQuMXM2LjMtMjUuNS00LjEtMzMuN0wzNTUuNyAyNTMuNSA0MDAuMiA5Nkg1MDNMNDk3IDEyMC4yYy00LjMgMTcuMSA2LjEgMzQuNSAyMy4zIDM4LjhzMzQuNS02LjEgMzguOC0yMy4zbDExLTQ0LjFDNTc3LjYgNjEuMyA1NTQuNyAzMiA1MjMuNSAzMkgzNzYuMWgtLjNIMjA0LjVjLTIyIDAtNDEuMiAxNS00Ni42IDM2LjRsLTYuMyAyNS4yTDM4LjggNS4xem0xNjggMTMxLjdjLjEtLjMgLjItLjcgLjMtMUwyMTcgOTZIMzMzLjdMMzAxLjMgMjEwLjhsLTk0LjUtNzQuMXpNMzI3LjMgMzUzLjlMMjcyLjkgMzExIDI0My4zIDQxNkgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJIMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMwOS44bDE3LjYtNjIuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGV4dFdpZHRoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDEyOFY5NkgxOTJsMCAxMjhIMTc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDI1NmwwLTEyOEgzODR2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY4MGMwLTI2LjUtMjEuNS00OC00OC00OEgyMjQgNDhDMjEuNSAzMiAwIDUzLjUgMCA4MHY0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyek05LjQgMzYxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzkuMiA5LjIgMjIuOSAxMS45IDM0LjkgNi45czE5LjgtMTYuNiAxOS44LTI5LjZWNDE2SDMyMHYzMmMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42czI1LjcgMi4yIDM0LjktNi45bDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02LjlzLTE5LjggMTYuNi0xOS44IDI5LjZ2MzJIMTI4VjMyMGMwLTEyLjktNy44LTI0LjYtMTkuOC0yOS42cy0yNS43LTIuMi0zNC45IDYuOWwtNjQgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRoZXJtb21ldGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDM4Mi4xVjI5My4zYzAtMTQuOSA1LjktMjkuMSAxNi40LTM5LjZsMjcuMy0yNy4zIDU3IDU3YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNTctNTcgNDEuNC00MS40IDU3IDU3YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNTctNTcgNDEuNC00MS40IDU3IDU3YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNTctNTcgNDUuNS00NS41QzM1NS4yIDEwLjkgMzgxLjQgMCA0MDguOCAwQzQ2NS44IDAgNTEyIDQ2LjIgNTEyIDEwMy4yYzAgMjcuNC0xMC45IDUzLjYtMzAuMiA3M0wyNTguMyAzOTkuNmMtMTAuNSAxMC41LTI0LjcgMTYuNC0zOS42IDE2LjRIMTI5LjlMNDEgNTA1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDg5LTg5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaHVtYnNEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMy40IDQ3OS4xYzI2LTUuMiA0Mi45LTMwLjUgMzcuNy01Ni41bC0yLjMtMTEuNGMtNS4zLTI2LjctMTUuMS01Mi4xLTI4LjgtNzUuMkg0NjRjMjYuNSAwIDQ4LTIxLjUgNDgtNDhjMC0xOC41LTEwLjUtMzQuNi0yNS45LTQyLjZDNDk3IDIzNi42IDUwNCAyMjMuMSA1MDQgMjA4YzAtMjMuNC0xNi44LTQyLjktMzguOS00Ny4xYzQuNC03LjMgNi45LTE1LjggNi45LTI0LjljMC0yMS4zLTEzLjktMzkuNC0zMy4xLTQ1LjZjLjctMy4zIDEuMS02LjggMS4xLTEwLjRjMC0yNi41LTIxLjUtNDgtNDgtNDhIMjk0LjVjLTE5IDAtMzcuNSA1LjYtNTMuMyAxNi4xTDIwMi43IDczLjhDMTc2IDkxLjYgMTYwIDEyMS42IDE2MCAxNTMuN1YxOTJ2NDggMjQuOWMwIDI5LjIgMTMuMyA1Ni43IDM2IDc1bDcuNCA1LjljMjYuNSAyMS4yIDQ0LjYgNTEgNTEuMiA4NC4ybDIuMyAxMS40YzUuMiAyNiAzMC41IDQyLjkgNTYuNSAzNy43ek0zMiAzODRIOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyQzE0LjMgOTYgMCAxMTAuMyAwIDEyOFYzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRodW1ic1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMy40IDMyLjljMjYgNS4yIDQyLjkgMzAuNSAzNy43IDU2LjVsLTIuMyAxMS40Yy01LjMgMjYuNy0xNS4xIDUyLjEtMjguOCA3NS4ySDQ2NGMyNi41IDAgNDggMjEuNSA0OCA0OGMwIDE4LjUtMTAuNSAzNC42LTI1LjkgNDIuNkM0OTcgMjc1LjQgNTA0IDI4OC45IDUwNCAzMDRjMCAyMy40LTE2LjggNDIuOS0zOC45IDQ3LjFjNC40IDcuMyA2LjkgMTUuOCA2LjkgMjQuOWMwIDIxLjMtMTMuOSAzOS40LTMzLjEgNDUuNmMuNyAzLjMgMS4xIDYuOCAxLjEgMTAuNGMwIDI2LjUtMjEuNSA0OC00OCA0OEgyOTQuNWMtMTkgMC0zNy41LTUuNi01My4zLTE2LjFsLTM4LjUtMjUuN0MxNzYgNDIwLjQgMTYwIDM5MC40IDE2MCAzNTguM1YzMjAgMjcyIDI0Ny4xYzAtMjkuMiAxMy4zLTU2LjcgMzYtNzVsNy40LTUuOWMyNi41LTIxLjIgNDQuNi01MSA1MS4yLTg0LjJsMi4zLTExLjRjNS4yLTI2IDMwLjUtNDIuOSA1Ni41LTM3Ljd6TTMyIDE5Mkg5NmMxNy43IDAgMzIgMTQuMyAzMiAzMlY0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGh1bWJ0YWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDMyQzMyIDE0LjMgNDYuMyAwIDY0IDBIMzIwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDI5MC41bDExLjQgMTQ4LjJjMzYuNyAxOS45IDY1LjcgNTMuMiA3OS41IDk0LjdsMSAzYzMuMyA5LjggMS42IDIwLjUtNC40IDI4LjhzLTE1LjcgMTMuMy0yNiAxMy4zSDMyYy0xMC4zIDAtMTkuOS00LjktMjYtMTMuM3MtNy43LTE5LjEtNC40LTI4LjhsMS0zYzEzLjgtNDEuNSA0Mi44LTc0LjggNzkuNS05NC43TDkzLjUgNjRINjRDNDYuMyA2NCAzMiA0OS43IDMyIDMyek0xNjAgMzg0aDY0djk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjM4NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGlja2V0U2ltcGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0SDUxMmMzNS4zIDAgNjQgMjguNyA2NCA2NHY2NGMwIDguOC03LjQgMTUuNy0xNS43IDE4LjZDNTQxLjUgMjE3LjEgNTI4IDIzNSA1MjggMjU2czEzLjUgMzguOSAzMi4zIDQ1LjRjOC4zIDIuOSAxNS43IDkuOCAxNS43IDE4LjZ2NjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjMyMGMwLTguOCA3LjQtMTUuNyAxNS43LTE4LjZDMzQuNSAyOTQuOSA0OCAyNzcgNDggMjU2cy0xMy41LTM4LjktMzIuMy00NS40QzcuNCAyMDcuNyAwIDIwMC44IDAgMTkyVjEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGlja2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4djY0YzAgOC44IDcuNCAxNS43IDE1LjcgMTguNkMzNC41IDIxNy4xIDQ4IDIzNSA0OCAyNTZzLTEzLjUgMzguOS0zMi4zIDQ1LjRDNy40IDMwNC4zIDAgMzExLjIgMCAzMjB2NjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRINTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjMyMGMwLTguOC03LjQtMTUuNy0xNS43LTE4LjZDNTQxLjUgMjk0LjkgNTI4IDI3NyA1MjggMjU2czEzLjUtMzguOSAzMi4zLTQ1LjRjOC4zLTIuOSAxNS43LTkuOCAxNS43LTE4LjZWMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0em02NCAxMTJsMCAxNjBjMCA4LjggNy4yIDE2IDE2IDE2SDQzMmM4LjggMCAxNi03LjIgMTYtMTZWMTc2YzAtOC44LTcuMi0xNi0xNi0xNkgxNDRjLTguOCAwLTE2IDcuMi0xNiAxNnpNOTYgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMySDQ0OGMxNy43IDAgMzIgMTQuMyAzMiAzMlYzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJIMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRpbWVsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTMyIDk3LjNjMjguMy0xMi4zIDQ4LTQwLjUgNDgtNzMuM2MwLTQ0LjItMzUuOC04MC04MC04MFM0OCA1MS44IDQ4IDk2YzAgMzIuOCAxOS43IDYxIDQ4IDczLjNWMjI0SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDI4OHY1NC43Yy0yOC4zIDEyLjMtNDggNDAuNS00OCA3My4zYzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM1YyODhINjA4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDU0NFYxNjkuM2MyOC4zLTEyLjMgNDgtNDAuNSA0OC03My4zYzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwYzAgMzIuOCAxOS43IDYxIDQ4IDczLjNWMjI0SDE2MFYxNjkuM3pNNDg4IDk2YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTMyMCAzOTJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb2dnbGVPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDEyOGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOHMtNTcuMyAxMjgtMTI4IDEyOEgxOTJjLTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4czU3LjMtMTI4IDEyOC0xMjhIMzg0ek01NzYgMjU2YzAtMTA2LTg2LTE5Mi0xOTItMTkySDE5MkM4NiA2NCAwIDE1MCAwIDI1NlM4NiA0NDggMTkyIDQ0OEgzODRjMTA2IDAgMTkyLTg2IDE5Mi0xOTJ6TTE5MiAzNTJhOTYgOTYgMCAxIDAgMC0xOTIgOTYgOTYgMCAxIDAgMCAxOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRvZ2dsZU9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiA2NEM4NiA2NCAwIDE1MCAwIDI1NlM4NiA0NDggMTkyIDQ0OEgzODRjMTA2IDAgMTkyLTg2IDE5Mi0xOTJzLTg2LTE5Mi0xOTItMTkySDE5MnptMTkyIDk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb2lsZXRQYXBlclNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdsLTEwOS43LTg2QzU2OS45IDM3NCA2MDggMjkxLjkgNjA4IDE5MkM2MDggODYgNTY1IDAgNTEyIDBzLTk2IDg2LTk2IDE5MmMwIDQ5LjEgOS4yIDkzLjkgMjQuNCAxMjcuOWwtNTktNDYuMmMxLjYtMjQuOCAyLjYtNTIgMi42LTgxLjZjMC02NS41IDEzLjItMTQyLjQgNjAuMi0xOTJIMTYwYy0yNC44IDAtNDcuNCAxOC44LTY0LjQgNDkuNkwzOC44IDUuMXpNMzY3LjMgMzg1LjRMNjYuNSAxNDguNEM2NC45IDE2Mi40IDY0IDE3NyA2NCAxOTJjMCAxMDEuNS0xMS43IDE3MC44LTIzIDIxMy45Yy01LjEgMTkuNC0xMC43IDM5LjktMjAuNSA1Ny43Yy01LjkgOS45LTYuMSAyMi4xLS40IDMyLjJTMzYuNSA1MTIgNDggNTEySDI4NS45YzIyLjMgMCA0NS40LTEyLjEgNTUuNC0zNi4xYzcuNC0xNy43IDE3LjUtNDcuMiAyNi05MC42ek01NDQgMTkyYzAgMzUuMy0xNC4zIDY0LTMyIDY0cy0zMi0yOC43LTMyLTY0czE0LjMtNjQgMzItNjRzMzIgMjguNyAzMiA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVG9pbGV0UGFwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ0LjIgMEMzOTcuMiA0OS42IDM4NCAxMjYuNSAzODQgMTkyYzAgMTU4LjgtMjcuMyAyNDctNDIuNyAyODMuOWMtMTAgMjQtMzMuMiAzNi4xLTU1LjQgMzYuMUg0OGMtMTEuNSAwLTIyLjItNi4yLTI3LjgtMTYuMnMtNS42LTIyLjMgLjQtMzIuMmM5LjgtMTcuNyAxNS40LTM4LjIgMjAuNS01Ny43QzUyLjMgMzYyLjggNjQgMjkzLjUgNjQgMTkyQzY0IDg2IDEwNyAwIDE2MCAwSDQ0NC4yek01MTIgMzg0Yy01MyAwLTk2LTg2LTk2LTE5MlM0NTkgMCA1MTIgMHM5NiA4NiA5NiAxOTJzLTQzIDE5Mi05NiAxOTJ6bTAtMTI4YzE3LjcgMCAzMi0yOC43IDMyLTY0cy0xNC4zLTY0LTMyLTY0cy0zMiAyOC43LTMyIDY0czE0LjMgNjQgMzIgNjR6TTE0NCAyMDhhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptNjQgMGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem00OCAxNmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bTgwLTE2YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRvaWxldFBvcnRhYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJWNjRIMzIwVjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyQzE0LjMgMCAwIDE0LjMgMCAzMnpNMjQgOTZIMHYyNFY0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNHYtOEgyNzJ2OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjEyMCA5NkgyOTYgMjR6TTI1NiAyNDB2NjRjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMjQwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRvaWxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNCAwQzEwLjcgMCAwIDEwLjcgMCAyNFMxMC43IDQ4IDI0IDQ4aDhWMTk2LjljLTEuOSAxLjQtMy44IDIuOS01LjYgNC40QzEwLjkgMjE0LjUgMCAyMzIuOSAwIDI1NmMwIDQ2LjkgMTQuMyA4NC4xIDM3IDExMi41YzE0LjIgMTcuNyAzMS4xIDMxLjMgNDguNSA0MS44TDY1LjYgNDY5LjljLTMuMyA5LjgtMS42IDIwLjUgNC40IDI4LjhzMTUuNyAxMy4zIDI2IDEzLjNIMzUyYzEwLjMgMCAxOS45LTQuOSAyNi0xMy4zczcuNy0xOS4xIDQuNC0yOC44bC0xOS44LTU5LjVjMTcuNC0xMC41IDM0LjMtMjQuMSA0OC41LTQxLjhjMjIuNy0yOC40IDM3LTY1LjUgMzctMTEyLjVjMC0yMy4xLTEwLjktNDEuNS0yNi40LTU0LjZjLTEuOC0xLjUtMy43LTMtNS42LTQuNFY0OGg4YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDI0ek0zODQgMjU2LjNjMCAxLS4zIDIuNi0zLjggNS42Yy00LjggNC4xLTE0IDktMjkuMyAxMy40QzMyMC41IDI4NCAyNzYuMSAyODggMjI0IDI4OHMtOTYuNS00LTEyNi45LTEyLjhjLTE1LjMtNC40LTI0LjUtOS4zLTI5LjMtMTMuNGMtMy41LTMtMy44LTQuNi0zLjgtNS42bDAtLjMgMC0uMWMwLTEgMC0yLjUgMy44LTUuOGM0LjgtNC4xIDE0LTkgMjkuMy0xMy40QzEyNy41IDIyOCAxNzEuOSAyMjQgMjI0IDIyNHM5Ni41IDQgMTI2LjkgMTIuOGMxNS4zIDQuNCAyNC41IDkuMyAyOS4zIDEzLjRjMy44IDMuMiAzLjggNC44IDMuOCA1LjhsMCAuMSAwIC4zek0zMjguMiAzODRsLS4yIC41IDAtLjVoLjJ6TTExMiA2NGgzMmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxMTJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRvaWxldHNQb3J0YWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAwSDIyNGMxNy43IDAgMzIgMTQuMyAzMiAzMlY2NEgwVjMyQzAgMTQuMyAxNC4zIDAgMzIgMHpNMCA5NkgyNCAyMzJoMjR2MjRWNDg4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0di04SDQ4djhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMTIwIDk2ek0xOTIgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZ2NjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYyNDBjMC04LjgtNy4yLTE2LTE2LTE2ek0zNTIgMEg1NDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNjRIMzIwVjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zMjAgOTZoMjRINTUyaDI0djI0VjQ4OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHYtOEgzNjh2OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYxMjAgOTZ6TTUxMiAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNnY2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjI0MGMwLTguOC03LjItMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRvb2xib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc2IDg4bDAgNDAgMTYwIDAgMC00MGMwLTQuNC0zLjYtOC04LThMMTg0IDgwYy00LjQgMC04IDMuNi04IDh6bS00OCA0MGwwLTQwYzAtMzAuOSAyNS4xLTU2IDU2LTU2bDE0NCAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2bDAgNDAgMjguMSAwYzEyLjcgMCAyNC45IDUuMSAzMy45IDE0LjFsNTEuOSA1MS45YzkgOSAxNC4xIDIxLjIgMTQuMSAzMy45bDAgOTIuMS0xMjggMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzItMTI4IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMyTDAgMzIwbDAtOTIuMWMwLTEyLjcgNS4xLTI0LjkgMTQuMS0zMy45bDUxLjktNTEuOWM5LTkgMjEuMi0xNC4xIDMzLjktMTQuMWwyOC4xIDB6TTAgNDE2bDAtNjQgMTI4IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwxMjggMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDEyOCAwIDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVG9vdGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg2LjEgNTIuMUMxNjkuMyAzOS4xIDE0OC43IDMyIDEyNy41IDMyQzc0LjcgMzIgMzIgNzQuNyAzMiAxMjcuNXY2LjJjMCAxNS44IDMuNyAzMS4zIDEwLjcgNDUuNWwyMy41IDQ3LjFjNC41IDguOSA3LjYgMTguNCA5LjQgMjguMmwzNi43IDIwNS44YzIgMTEuMiAxMS42IDE5LjQgMjIuOSAxOS44czIxLjQtNy40IDI0LTE4LjRsMjguOS0xMjEuM0MxOTIuMiAzMjMuNyAyMDcgMzEyIDIyNCAzMTJzMzEuOCAxMS43IDM1LjggMjguM2wyOC45IDEyMS4zYzIuNiAxMS4xIDEyLjcgMTguOCAyNCAxOC40czIwLjktOC42IDIyLjktMTkuOGwzNi43LTIwNS44YzEuOC05LjggNC45LTE5LjMgOS40LTI4LjJsMjMuNS00Ny4xYzcuMS0xNC4xIDEwLjctMjkuNyAxMC43LTQ1LjV2LTIuMWMwLTU1LTQ0LjYtOTkuNi05OS42LTk5LjZjLTI0LjEgMC00Ny40IDguOC02NS42IDI0LjZsLTMuMiAyLjggMTkuNSAxNS4yYzcgNS40IDguMiAxNS41IDIuOCAyMi41cy0xNS41IDguMi0yMi41IDIuOGwtMjQuNC0xOS0zNy0yOC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb3JpaUdhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA4MGMwIDI2LjUgMjEuNSA0OCA0OCA0OEg2NHY2NGg2NFYxMjhoOTZ2NjRoNjRWMTI4aDk2djY0aDY0VjEyOGgxNmMyNi41IDAgNDgtMjEuNSA0OC00OFYxMy40QzUxMiA2IDUwNiAwIDQ5OC42IDBjLTEuNyAwLTMuNCAuMy01IDFsLTQ5IDE5LjZDNDI1LjcgMjguMSA0MDUuNSAzMiAzODUuMiAzMkgxMjYuOGMtMjAuNCAwLTQwLjUtMy45LTU5LjQtMTEuNEwxOC40IDFjLTEuNi0uNi0zLjMtMS01LTFDNiAwIDAgNiAwIDEzLjRWODB6TTY0IDI4OFY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyODhIMzg0VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjI4OGgzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVG9ybmFkbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMyVjQ1LjZDMCA2Mi43IDEuNyA3OS42IDUgOTZIMzU3LjhjMy4yLTYuOSA3LjUtMTMuMyAxMy0xOC44bDM4LjYtMzguNmM0LjItNC4yIDYuNi0xMCA2LjYtMTZDNDE2IDEwLjEgNDA1LjkgMCAzOTMuNCAwSDMyQzE0LjMgMCAwIDE0LjMgMCAzMnptMzUyLjIgOTZIMTMuNmMxMi4yIDM1LjkgMzIuMyA2OC43IDU4LjggOTZINDEybC00Ny4yLTYyLjljLTcuMy05LjctMTEuNi0yMS4yLTEyLjYtMzMuMXptLTIyNiAxMzguMmwxMTYuNCA2OC41YzguMiA0LjggMTUuOCAxMC43IDIyLjUgMTcuM0g0NDVjMi05LjggMy0xOS45IDMtMzAuMWMwLTIzLTUuMy00NS41LTE1LjMtNjUuOUgxMTAuMmM1LjIgMy42IDEwLjUgNyAxNiAxMC4yek0yODggMzg0YzEwLjMgMjEuNCAxMy44IDQ1LjUgOS45IDY5bC01LjkgMzUuN2MtMiAxMi4yIDcuNCAyMy40IDE5LjggMjMuNGM1LjMgMCAxMC40LTIuMSAxNC4yLTUuOWw3OC4yLTc4LjJjMTIuOC0xMi44IDIzLjEtMjcuNyAzMC40LTQzLjlIMjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb3dlckJyb2FkY2FzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04MC4zIDQ0QzY5LjggNjkuOSA2NCA5OC4yIDY0IDEyOHM1LjggNTguMSAxNi4zIDg0YzYuNiAxNi40LTEuMyAzNS0xNy43IDQxLjdzLTM1LTEuMy00MS43LTE3LjdDNy40IDIwMi42IDAgMTY2LjEgMCAxMjhTNy40IDUzLjQgMjAuOSAyMEMyNy42IDMuNiA0Ni4yLTQuMyA2Mi42IDIuM1M4Ni45IDI3LjYgODAuMyA0NHpNNTU1LjEgMjBDNTY4LjYgNTMuNCA1NzYgODkuOSA1NzYgMTI4cy03LjQgNzQuNi0yMC45IDEwOGMtNi42IDE2LjQtMjUuMyAyNC4zLTQxLjcgMTcuN1M0ODkuMSAyMjguNCA0OTUuNyAyMTJjMTAuNS0yNS45IDE2LjMtNTQuMiAxNi4zLTg0cy01LjgtNTguMS0xNi4zLTg0QzQ4OS4xIDI3LjYgNDk3IDkgNTEzLjQgMi4zczM1IDEuMyA0MS43IDE3Ljd6TTM1MiAxMjhjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxODMuNGMtMTkuMS0xMS4xLTMyLTMxLjctMzItNTUuNGMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0ek0xNzAuNiA3Ni44QzE2My44IDkyLjQgMTYwIDEwOS43IDE2MCAxMjhzMy44IDM1LjYgMTAuNiA1MS4yYzcuMSAxNi4yLS4zIDM1LjEtMTYuNSA0Mi4xcy0zNS4xLS4zLTQyLjEtMTYuNWMtMTAuMy0yMy42LTE2LTQ5LjYtMTYtNzYuOHM1LjctNTMuMiAxNi03Ni44YzcuMS0xNi4yIDI1LjktMjMuNiA0Mi4xLTE2LjVzMjMuNiAyNS45IDE2LjUgNDIuMXpNNDY0IDUxLjJjMTAuMyAyMy42IDE2IDQ5LjYgMTYgNzYuOHMtNS43IDUzLjItMTYgNzYuOGMtNy4xIDE2LjItMjUuOSAyMy42LTQyLjEgMTYuNXMtMjMuNi0yNS45LTE2LjUtNDIuMWM2LjgtMTUuNiAxMC42LTMyLjkgMTAuNi01MS4ycy0zLjgtMzUuNi0xMC42LTUxLjJjLTcuMS0xNi4yIC4zLTM1LjEgMTYuNS00Mi4xczM1LjEgLjMgNDIuMSAxNi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb3dlckNlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjIuNiAyLjNDNDYuMi00LjMgMjcuNiAzLjYgMjAuOSAyMEM3LjQgNTMuNCAwIDg5LjkgMCAxMjhzNy40IDc0LjYgMjAuOSAxMDhjNi42IDE2LjQgMjUuMyAyNC4zIDQxLjcgMTcuN1M4Ni45IDIyOC40IDgwLjMgMjEyQzY5LjggMTg2LjEgNjQgMTU3LjggNjQgMTI4czUuOC01OC4xIDE2LjMtODRDODYuOSAyNy42IDc5IDkgNjIuNiAyLjN6bTQ1MC44IDBDNDk3IDkgNDg5LjEgMjcuNiA0OTUuNyA0NEM1MDYuMiA2OS45IDUxMiA5OC4yIDUxMiAxMjhzLTUuOCA1OC4xLTE2LjMgODRjLTYuNiAxNi40IDEuMyAzNSAxNy43IDQxLjdzMzUtMS4zIDQxLjctMTcuN2MxMy41LTMzLjQgMjAuOS02OS45IDIwLjktMTA4cy03LjQtNzQuNi0yMC45LTEwOEM1NDguNCAzLjYgNTI5LjgtNC4zIDUxMy40IDIuM3pNMzQwLjEgMTY1LjJjNy41LTEwLjUgMTEuOS0yMy4zIDExLjktMzcuMmMwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NGMwIDEzLjkgNC40IDI2LjcgMTEuOSAzNy4yTDk4LjkgNDY2LjhjLTcuMyAxNi4xLS4yIDM1LjEgMTUuOSA0Mi40czM1LjEgLjIgNDIuNC0xNS45TDE3Ny43IDQ0OEgzOTguM2wyMC42IDQ1LjJjNy4zIDE2LjEgMjYuMyAyMy4yIDQyLjQgMTUuOXMyMy4yLTI2LjMgMTUuOS00Mi40TDM0MC4xIDE2NS4yek0zNjkuMiAzODRIMjA2LjhsMTQuNS0zMkgzNTQuN2wxNC41IDMyek0yODggMjA1LjNMMzI1LjYgMjg4SDI1MC40TDI4OCAyMDUuM3pNMTYzLjMgNzMuNmM1LjMtMTIuMS0uMi0yNi4zLTEyLjQtMzEuNnMtMjYuMyAuMi0zMS42IDEyLjRDMTA5LjUgNzcgMTA0IDEwMS45IDEwNCAxMjhzNS41IDUxIDE1LjMgNzMuNmM1LjMgMTIuMSAxOS41IDE3LjcgMzEuNiAxMi40czE3LjctMTkuNSAxMi40LTMxLjZDMTU2IDE2NS44IDE1MiAxNDcuNCAxNTIgMTI4czQtMzcuOCAxMS4zLTU0LjR6TTQ1Ni43IDU0LjRjLTUuMy0xMi4xLTE5LjUtMTcuNy0zMS42LTEyLjRzLTE3LjcgMTkuNS0xMi40IDMxLjZDNDIwIDkwLjIgNDI0IDEwOC42IDQyNCAxMjhzLTQgMzcuOC0xMS4zIDU0LjRjLTUuMyAxMi4xIC4yIDI2LjMgMTIuNCAzMS42czI2LjMtLjIgMzEuNi0xMi40QzQ2Ni41IDE3OSA0NzIgMTU0LjEgNDcyIDEyOHMtNS41LTUxLTE1LjMtNzMuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVG93ZXJPYnNlcnZhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDEuNyAzLjRjOS00LjUgMTkuNi00LjUgMjguNiAwbDE2MCA4MGMxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45QzQzOSAxMzcuNSA0MjcuNyAxNDQgNDE2IDE0NHY4MGMwIDE3LjctMTQuMyAzMi0zMiAzMmgtNC45bDMyIDE5Mkg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzg0LjVjLS40IDAtLjggMC0xLjEgMEgxMjguNmMtLjQgMC0uOCAwLTEuMSAwSDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDY4LjlsMzItMTkySDEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMTQ0Yy0xMS43IDAtMjMtNi41LTI4LjYtMTcuN2MtNy45LTE1LjgtMS41LTM1IDE0LjMtNDIuOWwxNjAtODB6TTMxNC41IDQ0OEwyNTYgMzk5LjIgMTk3LjUgNDQ4aDExN3pNMTk3LjggMjU2bC00LjcgMjguM0wyNTYgMzM2LjhsNjIuOS01Mi41TDMxNC4yIDI1NkgxOTcuOHptLTEzLjkgODMuMmwtMTEuMiA2N0wyMTguNSAzNjhsLTM0LjYtMjguOHpNMjkzLjUgMzY4bDQ1LjggMzguMS0xMS4yLTY3TDI5My41IDM2OHpNMTc2IDEyOGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNkgzMzZjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMTc2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFjdG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDY0YzAtMzUuMyAyOC43LTY0IDY0LTY0SDI2Ni4zYzI2LjIgMCA0OS43IDE1LjkgNTkuNCA0MC4yTDM3My43IDE2MEg0ODBWMTI2LjJjMC0yNC44IDUuOC00OS4zIDE2LjktNzEuNmwyLjUtNWM3LjktMTUuOCAyNy4xLTIyLjIgNDIuOS0xNC4zczIyLjIgMjcuMSAxNC4zIDQyLjlsLTIuNSA1Yy02LjcgMTMuMy0xMC4xIDI4LTEwLjEgNDIuOVYxNjBoNTZjMjIuMSAwIDQwIDE3LjkgNDAgNDB2NDUuNGMwIDE2LjUtOC41IDMxLjktMjIuNiA0MC43bC00My4zIDI3LjFjLTE0LjItNS45LTI5LjgtOS4yLTQ2LjEtOS4yYy0zOS4zIDAtNzQuMSAxOC45LTk2IDQ4SDM1MmMwIDE3LjctMTQuMyAzMi0zMiAzMmgtOC4yYy0xLjcgNC44LTMuNyA5LjUtNS44IDE0LjFsNS44IDUuOGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMjIuNiAyMi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNS44LTUuOGMtNC42IDIuMi05LjMgNC4xLTE0LjEgNS44VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMydi04LjJjLTQuOC0xLjctOS41LTMuNy0xNC4xLTUuOGwtNS44IDUuOGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBMNDAuMiA0NDkuMWMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsNS44LTUuOGMtMi4yLTQuNi00LjEtOS4zLTUuOC0xNC4xSDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMlYzMjBjMC0xNy43IDE0LjMtMzIgMzItMzJoOC4yYzEuNy00LjggMy43LTkuNSA1LjgtMTQuMWwtNS44LTUuOGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsMjIuNi0yMi42YzktOSAyMS45LTExLjUgMzMuMS03LjZWMTkyIDE2MCA2NHptMTcwLjMgMEgxNjB2OTZoMzJIMzA0LjdMMjY2LjMgNjR6TTE3NiAyNTZhODAgODAgMCAxIDAgMCAxNjAgODAgODAgMCAxIDAgMC0xNjB6TTUyOCA0NDhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0wIDY0Yy00OC42IDAtODgtMzkuNC04OC04OGMwLTI5LjggMTQuOC01Ni4xIDM3LjQtNzJjMTQuMy0xMC4xIDMxLjgtMTYgNTAuNi0xNmMyLjcgMCA1LjMgLjEgNy45IC4zYzQ0LjkgNCA4MC4xIDQxLjcgODAuMSA4Ny43YzAgNDguNi0zOS40IDg4LTg4IDg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFkZW1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ1LjYgMTA4LjhjLTguMy0xMS0yMi43LTE1LjUtMzUuNy0xMS4yUzI4OCAxMTQuMiAyODggMTI4VjM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjIyNGw4Ni40IDExNS4yYzYgOC4xIDE1LjUgMTIuOCAyNS42IDEyLjhzMTkuNi00LjcgMjUuNi0xMi44TDU3NiAyMjRWMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMTI4YzAtMTMuOC04LjgtMjYtMjEuOS0zMC40cy0yNy41IC4xLTM1LjcgMTEuMkw0NjQgMjY2LjcgMzQ1LjYgMTA4Ljh6TTAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMySDk2VjM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjE2MGg2NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMkMxNC4zIDk2IDAgMTEwLjMgMCAxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyYWZmaWNMaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFYzNTJjMCA4OC40IDcxLjYgMTYwIDE2MCAxNjBzMTYwLTcxLjYgMTYwLTE2MFY2NGMwLTM1LjMtMjguNy02NC02NC02NEg2NHptOTYgNDE2YTQ4IDQ4IDAgMSAxIDAtOTYgNDggNDggMCAxIDEgMCA5NnptNDgtMTc2YTQ4IDQ4IDAgMSAxIC05NiAwIDQ4IDQ4IDAgMSAxIDk2IDB6bS00OC04MGE0OCA0OCAwIDEgMSAwLTk2IDQ4IDQ4IDAgMSAxIDAgOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyYWlsZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MFYzMzZjMCAyNi41IDIxLjUgNDggNDggNDhINjUuMWM3LjgtNTQuMyA1NC40LTk2IDExMC45LTk2czEwMy4xIDQxLjcgMTEwLjkgOTZINDg4aDhINjA4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDU0NFY4MGMwLTI2LjUtMjEuNS00OC00OC00OEg0OHpNODAgOTZjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTMxLjJjLTExLjQgNS45LTIyLjIgMTIuOS0zMiAyMVYxMTJjMC04LjggNy4yLTE2IDE2LTE2em05NiAxMjhjLTUuNCAwLTEwLjcgLjItMTYgLjdMMTYwIDExMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTEyLjdjLTUuMy0uNS0xMC42LS43LTE2LS43em04MCAxOS4yTDI1NiAxMTJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE1Mi4yYy05LjgtOC4xLTIwLjYtMTUuMi0zMi0yMXpNMzY4IDk2YzguOCAwIDE2IDcuMiAxNiAxNmwwIDE5MmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTE5MmMwLTguOCA3LjItMTYgMTYtMTZ6bTExMiAxNmwwIDE5MmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTE5MmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2ek0xNzYgNDgwYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wLTExMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyYWluU3Vid2F5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDBDNDMgMCAwIDQzIDAgOTZWMzUyYzAgNDggMzUuMiA4Ny43IDgxLjEgOTQuOWwtNDYgNDZDMjguMSA0OTkuOSAzMy4xIDUxMiA0MyA1MTJIODIuN2M4LjUgMCAxNi42LTMuNCAyMi42LTkuNEwxNjAgNDQ4SDI4OGw1NC42IDU0LjZjNiA2IDE0LjEgOS40IDIyLjYgOS40SDQwNWMxMCAwIDE1LTEyLjEgNy45LTE5LjFsLTQ2LTQ2YzQ2LTcuMSA4MS4xLTQ2LjkgODEuMS05NC45Vjk2YzAtNTMtNDMtOTYtOTYtOTZIOTZ6TTY0IDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmg4MGMxNy43IDAgMzIgMTQuMyAzMiAzMnY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMTI4ek0yNzIgOTZoODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJIMjcyYy0xNy43IDAtMzItMTQuMy0zMi0zMlYxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTY0IDM1MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0yODgtMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFpblRyYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODYuOCA0OGMtMTIuMiAwLTIzLjYgNS41LTMxLjIgMTVMNDIuNyA3OUMzNC41IDg5LjMgMTkuNCA5MSA5IDgyLjdTLTMgNTkuNCA1LjMgNDlMMTggMzNDMzQuNyAxMi4yIDYwIDAgODYuOCAwSDM2MS4yYzI2LjcgMCA1MiAxMi4yIDY4LjcgMzNsMTIuOCAxNmM4LjMgMTAuNCA2LjYgMjUuNS0zLjggMzMuN3MtMjUuNSA2LjYtMzMuNy0zLjdMMzkyLjUgNjNjLTcuNi05LjUtMTkuMS0xNS0zMS4yLTE1SDI0OFY5Nmg0MGM1MyAwIDk2IDQzIDk2IDk2VjM1MmMwIDMwLjYtMTQuMyA1Ny44LTM2LjYgNzUuNGw2NS41IDY1LjVjNy4xIDcuMSAyLjEgMTkuMS03LjkgMTkuMUgzNjUuM2MtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRMMjg4IDQ0OEgxNjBsLTU0LjYgNTQuNmMtNiA2LTE0LjEgOS40LTIyLjYgOS40SDQzYy0xMCAwLTE1LTEyLjEtNy45LTE5LjFsNjUuNS02NS41Qzc4LjMgNDA5LjggNjQgMzgyLjYgNjQgMzUyVjE5MmMwLTUzIDQzLTk2IDk2LTk2aDQwVjQ4SDg2Ljh6TTE2MCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgMTcuNyAxNC4zIDMyIDMyIDMySDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJIMTYwem0zMiAxOTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptOTYgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAwQzQzIDAgMCA0MyAwIDk2VjM1MmMwIDQ4IDM1LjIgODcuNyA4MS4xIDk0LjlsLTQ2IDQ2QzI4LjEgNDk5LjkgMzMuMSA1MTIgNDMgNTEySDgyLjdjOC41IDAgMTYuNi0zLjQgMjIuNi05LjRMMTYwIDQ0OEgyODhsNTQuNiA1NC42YzYgNiAxNC4xIDkuNCAyMi42IDkuNEg0MDVjMTAgMCAxNS0xMi4xIDcuOS0xOS4xbC00Ni00NmM0Ni03LjEgODEuMS00Ni45IDgxLjEtOTQuOVY5NmMwLTUzLTQzLTk2LTk2LTk2SDk2ek02NCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMkgzNTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjk2ek0yMjQgMjg4YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJhbnNnZW5kZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEyIDBjNi41IDAgMTIuMyAzLjkgMTQuOCA5LjlzMS4xIDEyLjktMy41IDE3LjRsLTMxIDMxTDExMiA3OC4xbDctN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTcgNyAxNS4yIDE1LjJDMTg3LjcgMTA3LjYgMjIwLjUgOTYgMjU2IDk2czY4LjMgMTEuNiA5NC45IDMxLjJsNjguOC02OC44LTMxLTMxYy00LjYtNC42LTUuOS0xMS41LTMuNS0xNy40czguMy05LjkgMTQuOC05LjloOTZjOC44IDAgMTYgNy4yIDE2IDE2djk2YzAgNi41LTMuOSAxMi4zLTkuOSAxNC44cy0xMi45IDEuMS0xNy40LTMuNWwtMzEtMzEtNjguOCA2OC44QzQwNC40IDE4Ny43IDQxNiAyMjAuNSA0MTYgMjU2YzAgODAuMi01OSAxNDYuNi0xMzYgMTU4LjJWNDMyaDE2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDI4MHY4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0di04SDIxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGgxNlY0MTQuMkMxNTUgNDAyLjYgOTYgMzM2LjIgOTYgMjU2YzAtMzUuNSAxMS42LTY4LjMgMzEuMi05NC45TDExMiAxNDUuOWwtNyA3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDctN0w1OC4zIDkyLjNsLTMxIDMxYy00LjYgNC42LTExLjUgNS45LTE3LjQgMy41UzAgMTE4LjUgMCAxMTJWMTZDMCA3LjIgNy4yIDAgMTYgMGg5NnpNMzUyIDI1NmE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyYXNoQXJyb3dVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjMuOCAwSDI4NC4yYzEyLjEgMCAyMy4yIDYuOCAyOC42IDE3LjdMMzIwIDMyaDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyQzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmg5Nmw3LjItMTQuM0MxNDAuNiA2LjggMTUxLjcgMCAxNjMuOCAwek0zMiAxMjhINDE2TDM5NC44IDQ2N2MtMS42IDI1LjMtMjIuNiA0NS00Ny45IDQ1SDEwMS4xYy0yNS4zIDAtNDYuMy0xOS43LTQ3LjktNDVMMzIgMTI4em0xOTIgNjRjLTYuNCAwLTEyLjUgMi41LTE3IDdsLTgwIDgwYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzktMzlWNDA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMjczLjlsMzkgMzljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04MC04MGMtNC41LTQuNS0xMC42LTctMTctN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJhc2hDYW5BcnJvd1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2My44IDBIMjg0LjJjMTIuMSAwIDIzLjIgNi44IDI4LjYgMTcuN0wzMjAgMzJoOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzJDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMyaDk2bDcuMi0xNC4zQzE0MC42IDYuOCAxNTEuNyAwIDE2My44IDB6TTMyIDEyOEg0MTZWNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0SDk2Yy0zNS4zIDAtNjQtMjguNy02NC02NFYxMjh6bTE5MiA2NGMtNi40IDAtMTIuNSAyLjUtMTcgN2wtODAgODBjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwzOS0zOVY0MDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYyNzMuOWwzOSAzOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTgwLTgwYy00LjUtNC41LTEwLjYtNy0xNy03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFzaENhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMzUuMiAxNy43QzE0MC42IDYuOCAxNTEuNyAwIDE2My44IDBIMjg0LjJjMTIuMSAwIDIzLjIgNi44IDI4LjYgMTcuN0wzMjAgMzJoOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzJDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMyaDk2bDcuMi0xNC4zek0zMiAxMjhINDE2VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg5NmMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTI4em05NiA2NGMtOC44IDAtMTYgNy4yLTE2IDE2VjQzMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjIwOGMwLTguOC03LjItMTYtMTYtMTZ6bTk2IDBjLTguOCAwLTE2IDcuMi0xNiAxNlY0MzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYyMDhjMC04LjgtNy4yLTE2LTE2LTE2em05NiAwYy04LjggMC0xNiA3LjItMTYgMTZWNDMyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMjA4YzAtOC44LTcuMi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTM1LjIgMTcuN0wxMjggMzJIMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2SDQxNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMjBsLTcuMi0xNC4zQzMwNy40IDYuOCAyOTYuMyAwIDI4NC4yIDBIMTYzLjhjLTEyLjEgMC0yMy4yIDYuOC0yOC42IDE3Ljd6TTQxNiAxMjhIMzJMNTMuMiA0NjdjMS42IDI1LjMgMjIuNiA0NSA0Ny45IDQ1SDM0Ni45YzI1LjMgMCA0Ni4zLTE5LjcgNDcuOS00NUw0MTYgMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmVlQ2l0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggNDhjMC0yNi41IDIxLjUtNDggNDgtNDhoOTZjMjYuNSAwIDQ4IDIxLjUgNDggNDhWMTkyaDQwVjEyMGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0djcyaDI0YzI2LjUgMCA0OCAyMS41IDQ4IDQ4VjQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0MzIgMzM2Yy0yNi41IDAtNDgtMjEuNS00OC00OFY0OHptNjQgMzJ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlY4MGMwLTguOC03LjItMTYtMTYtMTZIMzY4Yy04LjggMC0xNiA3LjItMTYgMTZ6bTE2IDgwYy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYxNzZjMC04LjgtNy4yLTE2LTE2LTE2SDM2OHpNMzUyIDI3MnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjI3MmMwLTguOC03LjItMTYtMTYtMTZIMzY4Yy04LjggMC0xNiA3LjItMTYgMTZ6bTE3Ni0xNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMjcyYzAtOC44LTcuMi0xNi0xNi0xNkg1Mjh6TTUxMiAzNjh2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzNjhjMC04LjgtNy4yLTE2LTE2LTE2SDUyOGMtOC44IDAtMTYgNy4yLTE2IDE2ek0yMjQgMTYwYzAgNi0xIDExLTIgMTZjMjAgMTQgMzQgMzggMzQgNjRjMCA0NS0zNiA4MC04MCA4MEgxNjBWNDgwYzAgMTgtMTUgMzItMzIgMzJjLTE4IDAtMzItMTQtMzItMzJWMzIwSDgwYy00NSAwLTgwLTM1LTgwLTgwYzAtMjYgMTMtNTAgMzMtNjRjLTEtNS0xLTEwLTEtMTZjMC01MyA0Mi05NiA5Ni05NmM1MyAwIDk2IDQzIDk2IDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxMC42IDUuOUw2MiAxNjkuNGMtMy45IDQuMi02IDkuOC02IDE1LjVDNTYgMTk3LjcgNjYuMyAyMDggNzkuMSAyMDhIMTA0TDMwLjYgMjgxLjRjLTQuMiA0LjItNi42IDEwLTYuNiAxNkMyNCAzMDkuOSAzNC4xIDMyMCA0Ni42IDMyMEg4MEw1LjQgNDA5LjVDMS45IDQxMy43IDAgNDE5IDAgNDI0LjVjMCAxMyAxMC41IDIzLjUgMjMuNSAyMy41SDE5MnYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjQ0OEg0MjQuNWMxMyAwIDIzLjUtMTAuNSAyMy41LTIzLjVjMC01LjUtMS45LTEwLjgtNS40LTE1TDM2OCAzMjBoMzMuNGMxMi41IDAgMjIuNi0xMC4xIDIyLjYtMjIuNmMwLTYtMi40LTExLjgtNi42LTE2TDM0NCAyMDhoMjQuOWMxMi43IDAgMjMuMS0xMC4zIDIzLjEtMjMuMWMwLTUuNy0yLjEtMTEuMy02LTE1LjVMMjM3LjQgNS45QzIzNCAyLjEgMjI5LjEgMCAyMjQgMHMtMTAgMi4xLTEzLjQgNS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmlhbmdsZUV4Y2xhbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAzMmMxNC4yIDAgMjcuMyA3LjUgMzQuNSAxOS44bDIxNiAzNjhjNy4zIDEyLjQgNy4zIDI3LjcgLjIgNDAuMVM0ODYuMyA0ODAgNDcyIDQ4MEg0MGMtMTQuMyAwLTI3LjYtNy43LTM0LjctMjAuMXMtNy0yNy44IC4yLTQwLjFsMjE2LTM2OEMyMjguNyAzOS41IDI0MS44IDMyIDI1NiAzMnptMCAxMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0VjI5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjE4NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMzIgMjI0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyb3BoeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMEgxNzZjLTI2LjUgMC00OC4xIDIxLjgtNDcuMSA0OC4yYy4yIDUuMyAuNCAxMC42IC43IDE1LjhIMjRDMTAuNyA2NCAwIDc0LjcgMCA4OGMwIDkyLjYgMzMuNSAxNTcgNzguNSAyMDAuN2M0NC4zIDQzLjEgOTguMyA2NC44IDEzOC4xIDc1LjhjMjMuNCA2LjUgMzkuNCAyNiAzOS40IDQ1LjZjMCAyMC45LTE3IDM3LjktMzcuOSAzNy45SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkgzODRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzU3LjlDMzM3IDQ0OCAzMjAgNDMxIDMyMCA0MTAuMWMwLTE5LjYgMTUuOS0zOS4yIDM5LjQtNDUuNmMzOS45LTExIDkzLjktMzIuNyAxMzguMi03NS44QzU0Mi41IDI0NSA1NzYgMTgwLjYgNTc2IDg4YzAtMTMuMy0xMC43LTI0LTI0LTI0SDQ0Ni40Yy4zLTUuMiAuNS0xMC40IC43LTE1LjhDNDQ4LjEgMjEuOCA0MjYuNSAwIDQwMCAwek00OC45IDExMmg4NC40YzkuMSA5MC4xIDI5LjIgMTUwLjMgNTEuOSAxOTAuNmMtMjQuOS0xMS01MC44LTI2LjUtNzMuMi00OC4zYy0zMi0zMS4xLTU4LTc2LTYzLTE0Mi4zek00NjQuMSAyNTQuM2MtMjIuNCAyMS44LTQ4LjMgMzcuMy03My4yIDQ4LjNjMjIuNy00MC4zIDQyLjgtMTAwLjUgNTEuOS0xOTAuNmg4NC40Yy01LjEgNjYuMy0zMS4xIDExMS4yLTYzIDE0Mi4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcm93ZWxCcmlja3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQwLjggNC44QzI1MC4zIDEwLjYgMjU2IDIwLjkgMjU2IDMydjcyaDg5YzMuNi0xMy44IDE2LjEtMjQgMzEtMjRoODhjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhIMzc2Yy0xNC45IDAtMjcuNC0xMC4yLTMxLTI0SDI1NnY3MmMwIDExLjEtNS43IDIxLjQtMTUuMiAyNy4ycy0yMS4yIDYuNC0zMS4xIDEuNGwtMTkyLTk2QzYuOCAxNTEuMiAwIDE0MC4xIDAgMTI4czYuOC0yMy4yIDE3LjctMjguNmwxOTItOTZjOS45LTUgMjEuNy00LjQgMzEuMSAxLjR6TTI4OCAyNTZjMC0xNy43IDE0LjMtMzIgMzItMzJINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMydjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMySDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMjU2ek0zMiAzODRoOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTkyIDBINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMydjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMySDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcm93ZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQzLjkgMjEzLjRMMjQ1LjMgMzEybDY1LjQgNjUuNGM3LjkgNy45IDExLjEgMTkuNCA4LjQgMzAuM3MtMTAuOCAxOS42LTIxLjUgMjIuOWwtMjU2IDgwYy0xMS40IDMuNS0yMy44IC41LTMyLjItNy45Uy0yLjEgNDgxLjggMS41IDQ3MC41bDgwLTI1NmMzLjMtMTAuNyAxMi0xOC45IDIyLjktMjEuNXMyMi40IC41IDMwLjMgOC40TDIwMCAyNjYuN2w5OC42LTk4LjZjLTE0LjMtMTQuNi0xNC4yLTM4IC4zLTUyLjVsOTUuNC05NS40YzI2LjktMjYuOSA3MC41LTI2LjkgOTcuNSAwczI2LjkgNzAuNSAwIDk3LjVsLTk1LjQgOTUuNGMtMTQuNSAxNC41LTM3LjkgMTQuNi01Mi41IC4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcnVja0Fycm93UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBIMzY4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4Vjk2aDUwLjdjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNTg5LjMgMTkyYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNWMjU2djMyIDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDU3NmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NkgyNTZjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjQ4ek00MTYgMjU2SDU0NFYyMzcuM0w0NjYuNyAxNjBINDE2djk2ek0xNjAgNDY0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMzY4LTQ4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTI1NyA5NWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzOSAzOUg5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNEgyNjIuMWwtMzkgMzljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw4MC04MGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwyNTcgOTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRydWNrRHJvcGxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMEgzNjhjMjYuNSAwIDQ4IDIxLjUgNDggNDhWOTZoNTAuN2MxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w1ODkuMyAxOTJjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM1YyNTZ2MzIgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINTc2YzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2SDI1NmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05Nkg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWNDh6TTQxNiAyNTZINTQ0VjIzNy4zTDQ2Ni43IDE2MEg0MTZ2OTZ6TTE2MCA0NjRhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0zNjgtNDhhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMjA4IDI3MmMzOS44IDAgNzItMjkuNiA3Mi02NmMwLTI3LTM5LjQtODIuOS01OS45LTExMC4zYy02LjEtOC4yLTE4LjEtOC4yLTI0LjIgMEMxNzUuNCAxMjMgMTM2IDE3OSAxMzYgMjA2YzAgMzYuNSAzMi4yIDY2IDcyIDY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcnVja0Zhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEyIDBDODUuNSAwIDY0IDIxLjUgNjQgNDhWOTZIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZINjQgMjcyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDY0IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2SDY0IDI0MGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkg2NCAxNmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNkg2NCAyMDhjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZINjRWNDE2YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZIMzg0YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJWMjg4IDI1NiAyMzcuM2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w1MTIgMTE0LjdjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdINDE2VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDExMnpNNTQ0IDIzNy4zVjI1Nkg0MTZWMTYwaDUwLjdMNTQ0IDIzNy4zek0xNjAgMzY4YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnptMjcyIDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRydWNrRmllbGRVbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAzMkM2MC43IDMyIDMyIDYwLjcgMzIgOTZ2MzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjk2YzAgMTcuNyAxNC4zIDMyIDMyIDMydjMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDY0YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZIMzg0YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJWMjg4YzAtMzUuMy0yOC43LTY0LTY0LTY0aC00LjJjLS40LTEuMS0uOS0yLjEtMS4zLTMuMkw0ODUuNyAxMDJjLTEwLjMtMjMuMS0zMy4yLTM4LTU4LjUtMzhIMzc1LjRDMzY0LjQgNDQuOSAzNDMuNyAzMiAzMjAgMzJIOTZ6bTI4OCA5Nmg0My4ybDQyLjcgOTZIMzg0VjEyOHpNMTEyIDM4NGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0zNjgtNDhhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2ek0yNTMuMyAxMzUuMWwzNC43IDUyVjE0NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djk2YzAgNy4xLTQuNiAxMy4zLTExLjQgMTUuM3MtMTQtLjYtMTcuOS02LjRsLTM0LjctNTJWMjQwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjE0NGMwLTcuMSA0LjYtMTMuMyAxMS40LTE1LjNzMTQgLjYgMTcuOSA2LjR6TTEyOCAxNDR2NjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYxNDRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnY2NGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OFYxNDRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJ1Y2tGaWVsZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiA5NmMwLTM1LjMgMjguNy02NCA2NC02NEgzMjBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMyaDUxLjhjMjUuMyAwIDQ4LjIgMTQuOSA1OC41IDM4bDUyLjggMTE4LjhjLjUgMS4xIC45IDIuMSAxLjMgMy4ySDU0NGMzNS4zIDAgNjQgMjguNyA2NCA2NHYzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg1NzZjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZIMjU2YzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2SDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyVjI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyVjk2ek0zODQgMjI0aDg1LjlsLTQyLjctOTZIMzg0djk2ek0xNjAgNDMyYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMzY4LTQ4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRydWNrRnJvbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA4MEMwIDM1LjggMzUuOCAwIDgwIDBINDMyYzQ0LjIgMCA4MCAzNS44IDgwIDgwVjM2OGMwIDI2LjItMTIuNiA0OS40LTMyIDY0djQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDQxNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDQ4SDEyOHYzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkg2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDMyQzEyLjYgNDE3LjQgMCAzOTQuMiAwIDM2OFY4MHptMTI5LjkgNzIuMkwxMTIgMjI0SDQwMGwtMTcuOS03MS44QzM3OC41IDEzOCAzNjUuNyAxMjggMzUxIDEyOEgxNjFjLTE0LjcgMC0yNy41IDEwLTMxIDI0LjJ6TTEyOCAzMjBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMjg4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJ1Y2tNZWRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwSDM2OGMyNi41IDAgNDggMjEuNSA0OCA0OFY5Nmg1MC43YzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDU4OS4zIDE5MmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zVjI1NnYzMiA2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg1NzZjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZIMjU2YzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY0OHpNNDE2IDI1Nkg1NDRWMjM3LjNMNDY2LjcgMTYwSDQxNnY5NnpNMTYwIDQ2NGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTM2OC00OGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0xNzYgODB2NDhsLTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoNDh2NDhjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYxOTJoNDhjOC44IDAgMTYtNy4yIDE2LTE2VjE0NGMwLTguOC03LjItMTYtMTYtMTZIMjQwVjgwYzAtOC44LTcuMi0xNi0xNi0xNkgxOTJjLTguOCAwLTE2IDcuMi0xNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJ1Y2tNb25zdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCA2NHY2NEg0MTZMMzY4IDY0SDI4OHpNNDE5LjIgMjUuNkw0OTYgMTI4aDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMydjY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyYy0yOS4yLTM4LjktNzUuNy02NC0xMjgtNjRzLTk4LjggMjUuMS0xMjggNjRIMjg4Yy0yOS4yLTM4LjktNzUuNy02NC0xMjgtNjRzLTk4LjggMjUuMS0xMjggNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJWMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMySDIyNFY0OGMwLTI2LjUgMjEuNS00OCA0OC00OGg5NmMyMC4xIDAgMzkuMSA5LjUgNTEuMiAyNS42ek0xNTIgMjU2aDE2YzEyLjEgMCAyMi4xIDguOSAyMy44IDIwLjZjNy42IDIuMiAxNC45IDUuMyAyMS43IDljOS40LTcgMjIuOC02LjMgMzEuMyAyLjNsMTEuMyAxMS4zYzguNiA4LjYgOS4zIDIxLjkgMi4zIDMxLjNjMy43IDYuOCA2LjggMTQuMSA5IDIxLjdjMTEuNiAxLjcgMjAuNiAxMS43IDIwLjYgMjMuOHYxNmMwIDEyLjEtOC45IDIyLjEtMjAuNiAyMy44Yy0yLjIgNy42LTUuMyAxNC45LTkgMjEuN2M3IDkuNCA2LjMgMjIuOC0yLjMgMzEuM2wtMTEuMyAxMS4zYy04LjYgOC42LTIxLjkgOS4zLTMxLjMgMi4yYy02LjggMy43LTE0LjEgNi44LTIxLjcgOUMxOTAuMSA1MDMuMSAxODAuMSA1MTIgMTY4IDUxMkgxNTJjLTEyLjEgMC0yMi4xLTguOS0yMy44LTIwLjZjLTcuNi0yLjItMTQuOS01LjMtMjEuNy05Yy05LjQgNy4xLTIyLjggNi4zLTMxLjMtMi4yTDYzLjggNDY4LjljLTguNi04LjYtOS4zLTIxLjktMi4zLTMxLjNjLTMuNy02LjktNi44LTE0LjEtOS0yMS44QzQwLjkgNDE0LjEgMzIgNDA0LjEgMzIgMzkyVjM3NmMwLTEyLjEgOC45LTIyLjEgMjAuNi0yMy44YzIuMi03LjYgNS4zLTE0LjkgOS0yMS44Yy03LTkuNC02LjMtMjIuOCAyLjMtMzEuM2wxMS4zLTExLjNjOC42LTguNiAyMS45LTkuMyAzMS4zLTIuM2M2LjgtMy43IDE0LjEtNi44IDIxLjctOWMxLjctMTEuNiAxMS43LTIwLjYgMjMuOC0yMC42em04IDE3NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTQ0OC4yIDI3Ni42YzEuNy0xMS42IDExLjctMjAuNiAyMy44LTIwLjZoMTZjMTIuMSAwIDIyLjEgOC45IDIzLjggMjAuNmM3LjYgMi4yIDE0LjkgNS4zIDIxLjggOWM5LjQtNyAyMi44LTYuMyAzMS4zIDIuM2wxMS4zIDExLjNjOC42IDguNiA5LjMgMjEuOSAyLjIgMzEuM2MzLjcgNi44IDYuOCAxNC4xIDkgMjEuN2MxMS42IDEuNyAyMC42IDExLjcgMjAuNiAyMy44djE2YzAgMTIuMS04LjkgMjIuMS0yMC42IDIzLjhjLTIuMiA3LjYtNS4zIDE0LjktOSAyMS43YzcgOS40IDYuMyAyMi44LTIuMiAzMS4zbC0xMS4zIDExLjNjLTguNiA4LjYtMjEuOSA5LjMtMzEuMyAyLjJjLTYuOSAzLjctMTQuMSA2LjgtMjEuOCA5QzUxMC4xIDUwMy4xIDUwMC4xIDUxMiA0ODggNTEySDQ3MmMtMTIuMSAwLTIyLjEtOC45LTIzLjgtMjAuNmMtNy42LTIuMi0xNC45LTUuMy0yMS43LTljLTkuNCA3LjEtMjIuOCA2LjMtMzEuMy0yLjJsLTExLjMtMTEuM2MtOC42LTguNi05LjMtMjEuOS0yLjItMzEuM2MtMy43LTYuOS02LjgtMTQuMS05LTIxLjhDMzYwLjkgNDE0LjEgMzUyIDQwNC4xIDM1MiAzOTJWMzc2YzAtMTIuMSA4LjktMjIuMSAyMC42LTIzLjhjMi4yLTcuNiA1LjMtMTQuOSA5LTIxLjhjLTctOS40LTYuMy0yMi44IDIuMi0zMS4zbDExLjMtMTEuM2M4LjYtOC42IDIxLjktOS4zIDMxLjMtMi4zYzYuOC0zLjcgMTQuMS02LjggMjEuNy05ek01MjggMzg0YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRydWNrTW92aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWMzA0djgwIDE2YzAgNDQuMiAzNS44IDgwIDgwIDgwYzI2LjIgMCA0OS40LTEyLjYgNjQtMzJjMTQuNiAxOS40IDM3LjggMzIgNjQgMzJjNDQuMiAwIDgwLTM1LjggODAtODBjMC01LjUtLjYtMTAuOC0xLjYtMTZINDE2aDMzLjZjLTEgNS4yLTEuNiAxMC41LTEuNiAxNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtNS41LS42LTEwLjgtMS42LTE2SDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMlYyODggMjcyIDI2MS43YzAtOS4yLTMuMi0xOC4yLTktMjUuM2wtNTguOC03MS44Yy0xMC42LTEzLTI2LjUtMjAuNS00My4zLTIwLjVINDgwVjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek01ODUgMjU2SDQ4MFYxOTJoNDguOGMyLjQgMCA0LjcgMS4xIDYuMiAyLjlMNTg1IDI1NnpNNTI4IDM2OGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE3NiA0MDBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNODAgMzY4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJ1Y2tQaWNrdXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY4LjYgOTZsNzYuOCA5NkgyODhWOTZoODAuNnpNMjI0IDgwVjE5Mkg2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINjUuMWMtLjcgNS4yLTEuMSAxMC42LTEuMSAxNmMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMnMxMTItNTAuMSAxMTItMTEyYzAtNS40LS40LTEwLjgtMS4xLTE2aDY2LjNjLS43IDUuMi0xLjEgMTAuNi0xLjEgMTZjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJzMTEyLTUwLjEgMTEyLTExMmMwLTUuNC0uNC0xMC44LTEuMS0xNkg2MDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJWMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDUyNy40TDQxOC42IDU2Yy0xMi4xLTE1LjItMzAuNS0yNC01MC0yNEgyNzJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4em0wIDI4OGE0OCA0OCAwIDEgMSAtOTYgMCA0OCA0OCAwIDEgMSA5NiAwem0yODggMGE0OCA0OCAwIDEgMSAtOTYgMCA0OCA0OCAwIDEgMSA5NiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcnVja1BsYW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwMCAwYy0zMC42IDAtNTYgNTQuNy01NiA4Ni4xVjE5Mi41TDcuOCAyNzQuM0MyLjkgMjc3LjIgMCAyODIuNCAwIDI4OHY2NGMwIDUuMSAyLjQgOS44IDYuNCAxMi44czkuMyAzLjkgMTQuMSAyLjVsMTIzLjQtMzd2ODEuMmwtNTAgNDBjLTMuOCAzLTYgNy42LTYgMTIuNXYzMmMwIDUuMSAyLjUgMTAgNi42IDEzczkuNSAzLjggMTQuNCAyLjJMMjAwIDQ4MC45IDI5MC40IDUxMWMtMS42LTQuNy0yLjQtOS44LTIuNC0xNVY0NjMuNGMtMTguMi0xMC41LTMwLjctMjkuNy0zMS45LTUxLjhsLS4xLS4xVjQwOCAzMjUuNSAxODRsMC0xLjEgMCAwVjg2LjFDMjU2IDU0LjcgMjMxLjUgMCAyMDAgMHptODggMTc2VjQwMGMwIDIwLjkgMTMuNCAzOC43IDMyIDQ1LjNWNDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0aDE2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjQ0OEg1NDR2NDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWNDQ1LjNjMTguNi02LjYgMzItMjQuNCAzMi00NS4zVjE3NmMwLTI2LjUtMjEuNS00OC00OC00OEgzMzZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4em03OS44IDc4LjdjMy4zLTguNyAxMS4yLTE0LjcgMjAuNS0xNC43SDUzOS43YzkuMiAwIDE3LjIgNiAyMC41IDE0LjdMNTc2IDMwNEgzNTJsMTUuOC00OS4zek01NjggMzUyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMzM2IDM3NmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcnVja1JhbXBCb3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQwIDBWNDAwYzAgNjEuOS01MC4xIDExMi0xMTIgMTEyYy02MSAwLTExMC41LTQ4LjctMTEyLTEwOS4zTDQ4LjQgNTAyLjljLTE3LjEgNC42LTM0LjYtNS40LTM5LjMtMjIuNXM1LjQtMzQuNiAyMi41LTM5LjNMMzUyIDM1My44VjY0YzAtMzUuMyAyOC43LTY0IDY0LTY0SDY0MHpNNTc2IDQwMGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0yMy4xIDIwNy43Yy00LjYtMTcuMSA1LjYtMzQuNiAyMi42LTM5LjJsNDYuNC0xMi40IDIwLjcgNzcuM2MyLjMgOC41IDExLjEgMTMuNiAxOS42IDExLjNsMzAuOS04LjNjOC41LTIuMyAxMy42LTExLjEgMTEuMy0xOS42bC0yMC43LTc3LjMgNDYuNC0xMi40YzE3LjEtNC42IDM0LjYgNS42IDM5LjIgMjIuNmw0MS40IDE1NC41YzQuNiAxNy4xLTUuNiAzNC42LTIyLjYgMzkuMkwxMDMuNyAzODQuOWMtMTcuMSA0LjYtMzQuNi01LjYtMzkuMi0yMi42TDIzLjEgMjA3Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRydWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4VjM2OGMwIDI2LjUgMjEuNSA0OCA0OCA0OEg2NGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2SDM4NGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2aDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyVjI4OCAyNTYgMjM3LjNjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMNTEyIDExNC43Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43SDQxNlY0OGMwLTI2LjUtMjEuNS00OC00OC00OEg0OHpNNDE2IDE2MGg1MC43TDU0NCAyMzcuM1YyNTZINDE2VjE2MHpNMTEyIDQxNmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0zNjgtNDhhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzguMyAyNDEuM0wxNS4xIDIwMC42Yy05LjItMTYuMi04LjQtMzYuNSA0LjUtNTBDNjEuNCAxMDYuOCAxNDQuNyA0OCAyNTYgNDhzMTk0LjYgNTguOCAyMzYuNCAxMDIuNmMxMi45IDEzLjUgMTMuNyAzMy44IDQuNSA1MGwtMjMuMSA0MC43Yy03LjUgMTMuMi0yMy4zIDE5LjMtMzcuOCAxNC42bC04MS4xLTI2LjZjLTEzLjEtNC4zLTIyLTE2LjYtMjItMzAuNFYxNDRjLTQ5LjYtMTguMS0xMDQtMTguMS0xNTMuNiAwdjU0LjhjMCAxMy44LTguOSAyNi4xLTIyIDMwLjRMNzYuMSAyNTUuOGMtMTQuNSA0LjctMzAuMy0xLjQtMzcuOC0xNC42ek0zMiAzMzZjMC04LjggNy4yLTE2IDE2LTE2SDgwYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZINDhjLTguOCAwLTE2LTcuMi0xNi0xNlYzMzZ6bTAgOTZjMC04LjggNy4yLTE2IDE2LTE2SDgwYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZINDhjLTguOCAwLTE2LTcuMi0xNi0xNlY0MzJ6TTE0NCAzMjBoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgxNDRjLTguOCAwLTE2LTcuMi0xNi0xNlYzMzZjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgyNDBjLTguOCAwLTE2LTcuMi0xNi0xNlYzMzZ6bTExMi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDMzNmMtOC44IDAtMTYtNy4yLTE2LTE2VjMzNmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDQzMmMtOC44IDAtMTYtNy4yLTE2LTE2VjMzNnptMTYgODBoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkg0MzJjLTguOCAwLTE2LTcuMi0xNi0xNlY0MzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggNDMyYzAtOC44IDcuMi0xNiAxNi0xNkgzNjhjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgxNDRjLTguOCAwLTE2LTcuMi0xNi0xNlY0MzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVR1cmtpc2hMaXJhU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMlY5OS4zTDI0Ny4yIDY1LjJjMTctNC45IDM0LjcgNSAzOS42IDIycy01IDM0LjctMjIgMzkuNkwxMjggMTY1Ljl2MjkuNGwxMTkuMi0zNC4xYzE3LTQuOSAzNC43IDUgMzkuNiAyMnMtNSAzNC43LTIyIDM5LjZMMTI4IDI2MS45VjQxNmg2My44YzY4LjIgMCAxMjQuNC01My41IDEyNy44LTEyMS42bC40LThjLjktMTcuNyAxNS45LTMxLjIgMzMuNi0zMC40czMxLjIgMTUuOSAzMC40IDMzLjZsLS40IDhDMzc4LjUgMzk5LjggMjk0LjEgNDgwIDE5MS44IDQ4MEg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMjgwLjFsLTIzLjIgNi42Yy0xNyA0LjktMzQuNy01LTM5LjYtMjJzNS0zNC43IDIyLTM5LjZMNjQgMjEzLjZWMTg0LjFsLTIzLjIgNi42Yy0xNyA0LjktMzQuNy01LTM5LjYtMjJzNS0zNC43IDIyLTM5LjZMNjQgMTE3LjZWNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVR1cm5Eb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MCAzMzQuNWMzLjggOC44IDIgMTktNC42IDI2bC0xMzYgMTQ0Yy00LjUgNC44LTEwLjggNy41LTE3LjQgNy41cy0xMi45LTIuNy0xNy40LTcuNWwtMTM2LTE0NGMtNi42LTctOC40LTE3LjItNC42LTI2czEyLjUtMTQuNSAyMi0xNC41aDg4bDAtMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyQzE0LjMgOTYgMCA4MS43IDAgNjRWMzJDMCAxNC4zIDE0LjMgMCAzMiAwbDgwIDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAxOTJoODhjOS42IDAgMTguMiA1LjcgMjIgMTQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHVyblVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MCAxNzcuNWMzLjgtOC44IDItMTktNC42LTI2bC0xMzYtMTQ0QzIwNC45IDIuNyAxOTguNiAwIDE5MiAwcy0xMi45IDIuNy0xNy40IDcuNWwtMTM2IDE0NGMtNi42IDctOC40IDE3LjItNC42IDI2czEyLjUgMTQuNSAyMiAxNC41aDg4bDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMySDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw4MCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtMTkyaDg4YzkuNiAwIDE4LjItNS43IDIyLTE0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVR2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDY0VjM1Mkg1NzZWNjRINjR6TTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwSDU3NmMzNS4zIDAgNjQgMjguNyA2NCA2NFYzNTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjY0ek0xMjggNDQ4SDUxMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgxMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMjg4YzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4czEyOC01Ny4zIDEyOC0xMjhWNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMlYyODhjMCAxMDYtODYgMTkyLTE5MiAxOTJTMCAzOTQgMCAyODhWNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVtYnJlbGxhQmVhY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ2LjMgMjcxLjhsLTYwLjEtMjEuOUwyMTQgNDQ4SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDU0NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgyODIuMWw2NC4xLTE3Ni4yem0xMjEuMS0uMmwtMy4zIDkuMSA2Ny43IDI0LjZjMTguMSA2LjYgMzgtNC4yIDM5LjYtMjMuNGM2LjUtNzguNS0yMy45LTE1NS41LTgwLjgtMjA4LjVjMiA4IDMuMiAxNi4zIDMuNCAyNC44bC4yIDZjMS44IDU3LTcuMyAxMTMuOC0yNi44IDE2Ny40ek00NjIgOTkuMWMtMS4xLTM0LjQtMjIuNS02NC44LTU0LjQtNzcuNGMtLjktLjQtMS45LS43LTIuOC0xLjFjLTMzLTExLjctNjkuOC0yLjQtOTMuMSAyMy44bC00IDQuNUMyNzIuNCA4OC4zIDI0NSAxMzQuMiAyMjYuOCAxODRsLTMuMyA5LjFMNDM0IDI2OS43bDMuMy05LjFjMTguMS00OS44IDI2LjYtMTAyLjUgMjQuOS0xNTUuNWwtLjItNnpNMTA3LjIgMTEyLjljLTExLjEgMTUuNy0yLjggMzYuOCAxNS4zIDQzLjRsNzEgMjUuOCAzLjMtOS4xYzE5LjUtNTMuNiA0OS4xLTEwMyA4Ny4xLTE0NS41bDQtNC41YzYuMi02LjkgMTMuMS0xMyAyMC41LTE4LjJjLTc5LjYgMi41LTE1NC43IDQyLjItMjAxLjIgMTA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbWJyZWxsYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMlY0OS43QzQ1MS44IDYzLjQgNTU3LjcgMTYxIDU3My45IDI4NS45YzIgMTUuNi0xNy4zIDI0LjQtMjcuOCAxMi43QzUzMi4xIDI4MyA1MDQuOCAyNzIgNDgwIDI3MmMtMzguNyAwLTcxIDI3LjUtNzguNCA2NC4xYy0xLjcgOC43LTguNyAxNS45LTE3LjYgMTUuOXMtMTUuOC03LjItMTcuNi0xNS45QzM1OSAyOTkuNSAzMjYuNyAyNzIgMjg4IDI3MnMtNzEgMjcuNS03OC40IDY0LjFjLTEuNyA4LjctOC43IDE1LjktMTcuNiAxNS45cy0xNS44LTcuMi0xNy42LTE1LjlDMTY3IDI5OS41IDEzNC43IDI3MiA5NiAyNzJjLTI0LjggMC01Mi4xIDExLTY2LjEgMjYuN0MxOS40IDMxMC40IC4xIDMwMS41IDIuMSAyODUuOUMxOC4zIDE2MSAxMjQuMiA2My40IDI1NiA0OS43VjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0wIDMwNGMxMi4zIDAgMjMuNSA0LjYgMzIgMTIuMlY0MzAuNmMwIDQ1LTM2LjUgODEuNC04MS40IDgxLjRjLTMwLjggMC01OS0xNy40LTcyLjgtNDVsLTIuMy00LjdjLTcuOS0xNS44LTEuNS0zNSAxNC4zLTQyLjlzMzUtMS41IDQyLjkgMTQuM2wyLjMgNC43YzMgNS45IDkgOS42IDE1LjYgOS42YzkuNiAwIDE3LjQtNy44IDE3LjQtMTcuNFYzMTYuMmM4LjUtNy42IDE5LjctMTIuMiAzMi0xMi4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbmRlcmxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJoOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMTI4VjIyNGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2Vjk2SDMwNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmg5NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzODRWMjI0YzAgODguNC03MS42IDE2MC0xNjAgMTYwcy0xNjAtNzEuNi0xNjAtMTYwVjk2SDQ4QzMwLjMgOTYgMTYgODEuNyAxNiA2NHpNMCA0NDhjMC0xNy43IDE0LjMtMzIgMzItMzJINDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW5pdmVyc2FsQWNjZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMTYxLjUtODYuMWMtMTIuMi01LjItMjYuMyAuNC0zMS41IDEyLjZzLjQgMjYuMyAxMi42IDMxLjVsMTEuOSA1LjFjMTcuMyA3LjQgMzUuMiAxMi45IDUzLjYgMTYuM3Y1MC4xYzAgNC4zLS43IDguNi0yLjEgMTIuNmwtMjguNyA4Ni4xYy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDI0LjQtNzMuMmMxLjMtMy44IDQuOC02LjQgOC44LTYuNHM3LjYgMi42IDguOCA2LjRsMjQuNCA3My4yYzQuMiAxMi42IDE3LjggMTkuNCAzMC40IDE1LjJzMTkuNC0xNy44IDE1LjItMzAuNGwtMjguNy04Ni4xYy0xLjQtNC4xLTIuMS04LjMtMi4xLTEyLjZWMjM1LjVjMTguNC0zLjUgMzYuMy04LjkgNTMuNi0xNi4zbDExLjktNS4xYzEyLjItNS4yIDE3LjgtMTkuMyAxMi42LTMxLjVzLTE5LjMtMTcuOC0zMS41LTEyLjZMMzM4LjcgMTc1Yy0yNi4xIDExLjItNTQuMiAxNy04Mi43IDE3cy01Ni41LTUuOC04Mi43LTE3bC0xMS45LTUuMXpNMjU2IDE2MGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVubG9ja0tleWhvbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDY0Yy00NC4yIDAtODAgMzUuOC04MCA4MHY0OEgzODRjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYyNTZjMC0zNS4zIDI4LjctNjQgNjQtNjRIODBWMTQ0QzgwIDY0LjUgMTQ0LjUgMCAyMjQgMGM1Ny41IDAgMTA3IDMzLjcgMTMwLjEgODIuM2M3LjYgMTYgLjggMzUuMS0xNS4yIDQyLjZzLTM1LjEgLjgtNDIuNi0xNS4yQzI4My40IDgyLjYgMjU1LjkgNjQgMjI0IDY0em0zMiAzMjBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbmxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ0IDE0NGMwLTQ0LjIgMzUuOC04MCA4MC04MGMzMS45IDAgNTkuNCAxOC42IDcyLjMgNDUuN2M3LjYgMTYgMjYuNyAyMi44IDQyLjYgMTUuMnMyMi44LTI2LjcgMTUuMi00Mi42QzMzMSAzMy43IDI4MS41IDAgMjI0IDBDMTQ0LjUgMCA4MCA2NC41IDgwIDE0NHY0OEg2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFYyNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRIMTQ0VjE0NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXBEb3duTGVmdFJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3OC42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOXMxNi42IDE5LjggMjkuNiAxOS44aDMydjk2SDEyOFYxOTJjMC0xMi45LTcuOC0yNC42LTE5LjgtMjkuNnMtMjUuNy0yLjItMzQuOSA2LjlsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOXMxOS44LTE2LjYgMTkuOC0yOS42VjI4OGg5NnY5NkgxOTJjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45cy0xNi42LTE5LjgtMjkuNi0xOS44SDI4OFYyODhoOTZ2MzJjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnMyNS43IDIuMiAzNC45LTYuOWw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTkuMi05LjItMjIuOS0xMS45LTM0LjktNi45cy0xOS44IDE2LjYtMTkuOCAyOS42djMySDI4OFYxMjhoMzJjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtNjQtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVwRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDUuNiA3LjdDMTQxIDIuOCAxMzQuNyAwIDEyOCAwcy0xMyAyLjgtMTcuNiA3LjdsLTEwNCAxMTJjLTYuNSA3LTguMiAxNy4yLTQuNCAyNS45UzE0LjUgMTYwIDI0IDE2MEg4MFYzNTJIMjRjLTkuNSAwLTE4LjIgNS43LTIyIDE0LjRzLTIuMSAxOC45IDQuNCAyNS45bDEwNCAxMTJjNC41IDQuOSAxMC45IDcuNyAxNy42IDcuN3MxMy0yLjggMTcuNi03LjdsMTA0LTExMmM2LjUtNyA4LjItMTcuMiA0LjQtMjUuOXMtMTIuNS0xNC40LTIyLTE0LjRIMTc2VjE2MGg1NmM5LjUgMCAxOC4yLTUuNyAyMi0xNC40czIuMS0xOC45LTQuNC0yNS45bC0xMDQtMTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVcExvbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzE4IDE3Ny41YzMuOC04LjggMi0xOS00LjYtMjZsLTEzNi0xNDRDMTcyLjkgMi43IDE2Ni42IDAgMTYwIDBzLTEyLjkgMi43LTE3LjQgNy41bC0xMzYgMTQ0Yy02LjYgNy04LjQgMTcuMi00LjYgMjZTMTQuNCAxOTIgMjQgMTkySDk2bDAgMjg4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjg4aDcyYzkuNiAwIDE4LjItNS43IDIyLTE0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVwUmlnaHRBbmREb3duTGVmdEZyb21DZW50ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ0IDBINDg4YzEzLjMgMCAyNCAxMC43IDI0IDI0VjE2OGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC0zOS0zOS04NyA4N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBsLTMyLTMyYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw4Ny04N0wzMjcgNDFjLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTMzM0LjMgMCAzNDQgMHpNMTY4IDUxMkgyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRWMzQ0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMnMxOS4zLTEuNyAyNi4yIDUuMmwzOSAzOSA4Ny04N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwzMiAzMmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtODcgODcgMzkgMzljNi45IDYuOSA4LjkgMTcuMiA1LjIgMjYuMnMtMTIuNSAxNC44LTIyLjIgMTQuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXBSaWdodEZyb21TcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyIDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45TDM3MC43IDk2IDIwMS40IDI2NS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDQxNiAxNDEuM2w0MS40IDQxLjRjOS4yIDkuMiAyMi45IDExLjkgMzQuOSA2LjlzMTkuOC0xNi42IDE5LjgtMjkuNlYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkgzNTJ6TTgwIDMyQzM1LjggMzIgMCA2Ny44IDAgMTEyVjQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MEg0MDBjNDQuMiAwIDgwLTM1LjggODAtODBWMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjQzMmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYxMTJjMC04LjggNy4yLTE2IDE2LTE2SDE5MmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXBsb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAxMDkuM1YzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMTA5LjNsLTczLjQgNzMuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMTI4LTEyOGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxMjggMTI4YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDI4OCAxMDkuM3pNNjQgMzUySDE5MmMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0SDQ0OGMzNS4zIDAgNjQgMjguNyA2NCA2NHYzMmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNDE2YzAtMzUuMyAyOC43LTY0IDY0LTY0ek00MzIgNDU2YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckFzdHJvbmF1dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzAuNyA5Ni4xQzM0Ni4xIDM5LjUgMjg5LjcgMCAyMjQgMFMxMDEuOSAzOS41IDc3LjMgOTYuMUM2MC45IDk3LjUgNDggMTExLjIgNDggMTI4djY0YzAgMTYuOCAxMi45IDMwLjUgMjkuMyAzMS45QzEwMS45IDI4MC41IDE1OC4zIDMyMCAyMjQgMzIwczEyMi4xLTM5LjUgMTQ2LjctOTYuMWMxNi40LTEuNCAyOS4zLTE1LjEgMjkuMy0zMS45VjEyOGMwLTE2LjgtMTIuOS0zMC41LTI5LjMtMzEuOXpNMzM2IDE0NHYxNmMwIDUzLTQzIDk2LTk2IDk2SDIwOGMtNTMgMC05Ni00My05Ni05NlYxNDRjMC0yNi41IDIxLjUtNDggNDgtNDhIMjg4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xODkuMyAxNjIuN2wtNi0yMS4yYy0uOS0zLjMtMy45LTUuNS03LjMtNS41cy02LjQgMi4yLTcuMyA1LjVsLTYgMjEuMi0yMS4yIDZjLTMuMyAuOS01LjUgMy45LTUuNSA3LjNzMi4yIDYuNCA1LjUgNy4zbDIxLjIgNiA2IDIxLjJjLjkgMy4zIDMuOSA1LjUgNy4zIDUuNXM2LjQtMi4yIDcuMy01LjVsNi0yMS4yIDIxLjItNmMzLjMtLjkgNS41LTMuOSA1LjUtNy4zcy0yLjItNi40LTUuNS03LjNsLTIxLjItNnpNMTEyLjcgMzE2LjVDNDYuNyAzNDIuNiAwIDQwNyAwIDQ4Mi4zQzAgNDk4LjcgMTMuMyA1MTIgMjkuNyA1MTJIMTI4VjQ0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMkgyODhjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2NjRsOTguMyAwYzE2LjQgMCAyOS43LTEzLjMgMjkuNy0yOS43YzAtNzUuMy00Ni43LTEzOS43LTExMi43LTE2NS44QzMwMy45IDMzOC44IDI2NS41IDM1MiAyMjQgMzUycy03OS45LTEzLjItMTExLjMtMzUuNXpNMTc2IDQ0OGMtOC44IDAtMTYgNy4yLTE2IDE2djQ4aDMyVjQ2NGMwLTguOC03LjItMTYtMTYtMTZ6bTk2IDMyYTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDEyOGExMjggMTI4IDAgMSAxIDI1NiAwQTEyOCAxMjggMCAxIDEgOTYgMTI4ek0wIDQ4Mi4zQzAgMzgzLjggNzkuOCAzMDQgMTc4LjMgMzA0aDkxLjRDMzY4LjIgMzA0IDQ0OCAzODMuOCA0NDggNDgyLjNjMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdIMjkuN0MxMy4zIDUxMiAwIDQ5OC43IDAgNDgyLjN6TTYyNSAxNzdMNDk3IDMwNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNDcgNDdMNTkxIDE0M2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJDbG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMGExMjggMTI4IDAgMSAxIDAgMjU2QTEyOCAxMjggMCAxIDEgMjI0IDB6TTE3OC4zIDMwNGg5MS40YzIwLjYgMCA0MC40IDMuNSA1OC44IDkuOUMzMjMgMzMxIDMyMCAzNDkuMSAzMjAgMzY4YzAgNTkuNSAyOS41IDExMi4xIDc0LjggMTQ0SDI5LjdDMTMuMyA1MTIgMCA0OTguNyAwIDQ4Mi4zQzAgMzgzLjggNzkuOCAzMDQgMTc4LjMgMzA0ek0zNTIgMzY4YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE0NC04MGMtOC44IDAtMTYgNy4yLTE2IDE2djY0YzAgOC44IDcuMiAxNiAxNiAxNmg0OGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkg1MTJWMzA0YzAtOC44LTcuMi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckRvY3RvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMjU2QTEyOCAxMjggMCAxIDAgMjI0IDBhMTI4IDEyOCAwIDEgMCAwIDI1NnptLTk2IDU1LjJDNTQgMzMyLjkgMCA0MDEuMyAwIDQ4Mi4zQzAgNDk4LjcgMTMuMyA1MTIgMjkuNyA1MTJINDE4LjNjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjdjMC04MS01NC0xNDkuNC0xMjgtMTcxLjFWMzYyYzI3LjYgNy4xIDQ4IDMyLjIgNDggNjJ2NDBjMCA4LjgtNy4yIDE2LTE2IDE2SDMzNmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNlY0MjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2MjRjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMjU2Yy04LjggMC0xNi03LjItMTYtMTZWNDI0YzAtMjkuOCAyMC40LTU0LjkgNDgtNjJWMzA0LjljLTYtLjYtMTIuMS0uOS0xOC4zLS45SDE3OC4zYy02LjIgMC0xMi4zIC4zLTE4LjMgLjl2NjUuNGMyMy4xIDYuOSA0MCAyOC4zIDQwIDUzLjdjMCAzMC45LTI1LjEgNTYtNTYgNTZzLTU2LTI1LjEtNTYtNTZjMC0yNS40IDE2LjktNDYuOCA0MC01My43VjMxMS4yek0xNDQgNDQ4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckdlYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDBhMTI4IDEyOCAwIDEgMSAwIDI1NkExMjggMTI4IDAgMSAxIDIyNCAwek0xNzguMyAzMDRoOTEuNGMxMS44IDAgMjMuNCAxLjIgMzQuNSAzLjNjLTIuMSAxOC41IDcuNCAzNS42IDIxLjggNDQuOGMtMTYuNiAxMC42LTI2LjcgMzEuNi0yMCA1My4zYzQgMTIuOSA5LjQgMjUuNSAxNi40IDM3LjZzMTUuMiAyMy4xIDI0LjQgMzNjMTUuNyAxNi45IDM5LjYgMTguNCA1Ny4yIDguN3YuOWMwIDkuMiAyLjcgMTguNSA3LjkgMjYuM0gyOS43QzEzLjMgNTEyIDAgNDk4LjcgMCA0ODIuM0MwIDM4My44IDc5LjggMzA0IDE3OC4zIDMwNHpNNDM2IDIxOC4yYzAtNyA0LjUtMTMuMyAxMS4zLTE0LjhjMTAuNS0yLjQgMjEuNS0zLjcgMzIuNy0zLjdzMjIuMiAxLjMgMzIuNyAzLjdjNi44IDEuNSAxMS4zIDcuOCAxMS4zIDE0Ljh2MTcuN2MwIDcuOCA0LjggMTQuOCAxMS42IDE4LjdjNi44IDMuOSAxNS4xIDQuNSAyMS44IC42bDEzLjgtNy45YzYuMS0zLjUgMTMuNy0yLjcgMTguNSAyLjRjNy42IDguMSAxNC4zIDE3LjIgMjAuMSAyNy4yczEwLjMgMjAuNCAxMy41IDMxYzIuMSA2LjctMS4xIDEzLjctNy4yIDE3LjJsLTE0LjQgOC4zYy02LjUgMy43LTEwIDEwLjktMTAgMTguNHMzLjUgMTQuNyAxMCAxOC40bDE0LjQgOC4zYzYuMSAzLjUgOS4yIDEwLjUgNy4yIDE3LjJjLTMuMyAxMC42LTcuOCAyMS0xMy41IDMxcy0xMi41IDE5LjEtMjAuMSAyNy4yYy00LjggNS4xLTEyLjUgNS45LTE4LjUgMi40bC0xMy44LTcuOWMtNi43LTMuOS0xNS4xLTMuMy0yMS44IC42Yy02LjggMy45LTExLjYgMTAuOS0xMS42IDE4Ljd2MTcuN2MwIDctNC41IDEzLjMtMTEuMyAxNC44Yy0xMC41IDIuNC0yMS41IDMuNy0zMi43IDMuN3MtMjIuMi0xLjMtMzIuNy0zLjdjLTYuOC0xLjUtMTEuMy03LjgtMTEuMy0xNC44VjQ2Ny44YzAtNy45LTQuOS0xNC45LTExLjctMTguOWMtNi44LTMuOS0xNS4yLTQuNS0yMi0uNmwtMTMuNSA3LjhjLTYuMSAzLjUtMTMuNyAyLjctMTguNS0yLjRjLTcuNi04LjEtMTQuMy0xNy4yLTIwLjEtMjcuMnMtMTAuMy0yMC40LTEzLjUtMzFjLTIuMS02LjcgMS4xLTEzLjcgNy4yLTE3LjJsMTQtOC4xYzYuNS0zLjggMTAuMS0xMS4xIDEwLjEtMTguNnMtMy41LTE0LjgtMTAuMS0xOC42bC0xNC04LjFjLTYuMS0zLjUtOS4yLTEwLjUtNy4yLTE3LjJjMy4zLTEwLjYgNy43LTIxIDEzLjUtMzFzMTIuNS0xOS4xIDIwLjEtMjcuMmM0LjgtNS4xIDEyLjQtNS45IDE4LjUtMi40bDEzLjYgNy44YzYuOCAzLjkgMTUuMiAzLjMgMjItLjZjNi45LTMuOSAxMS43LTExIDExLjctMTguOVYyMTguMnptOTIuMSAxMzMuNWE0OC4xIDQ4LjEgMCAxIDAgLTk2LjEgMCA0OC4xIDQ4LjEgMCAxIDAgOTYuMSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyR3JhZHVhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE5LjMgLjVjMy4xLS42IDYuMy0uNiA5LjQgMGwyMDAgNDBDNDM5LjkgNDIuNyA0NDggNTIuNiA0NDggNjRzLTguMSAyMS4zLTE5LjMgMjMuNUwzNTIgMTAyLjlWMTYwYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4cy0xMjgtNTcuMy0xMjgtMTI4VjEwMi45TDQ4IDkzLjN2NjUuMWwxNS43IDc4LjRjLjkgNC43LS4zIDkuNi0zLjMgMTMuM3MtNy42IDUuOS0xMi40IDUuOUgxNmMtNC44IDAtOS4zLTIuMS0xMi40LTUuOXMtNC4zLTguNi0zLjMtMTMuM0wxNiAxNTguNFY4Ni42QzYuNSA4My4zIDAgNzQuMyAwIDY0QzAgNTIuNiA4LjEgNDIuNyAxOS4zIDQwLjVsMjAwLTQwek0xMTEuOSAzMjcuN2MxMC41LTMuNCAyMS44IC40IDI5LjQgOC41bDcxIDc1LjVjNi4zIDYuNyAxNyA2LjcgMjMuMyAwbDcxLTc1LjVjNy42LTguMSAxOC45LTExLjkgMjkuNC04LjVDNDAxIDM0OC42IDQ0OCA0MDkuNCA0NDggNDgxLjNjMCAxNy0xMy44IDMwLjctMzAuNyAzMC43SDMwLjdDMTMuOCA1MTIgMCA0OTguMiAwIDQ4MS4zYzAtNzEuOSA0Ny0xMzIuNyAxMTEuOS0xNTMuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckdyb3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDEyOGExMjggMTI4IDAgMSAxIDI1NiAwQTEyOCAxMjggMCAxIDEgOTYgMTI4ek0wIDQ4Mi4zQzAgMzgzLjggNzkuOCAzMDQgMTc4LjMgMzA0aDkxLjRDMzY4LjIgMzA0IDQ0OCAzODMuOCA0NDggNDgyLjNjMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdIMjkuN0MxMy4zIDUxMiAwIDQ5OC43IDAgNDgyLjN6TTYwOS4zIDUxMkg0NzEuNGM1LjQtOS40IDguNi0yMC4zIDguNi0zMnYtOGMwLTYwLjctMjcuMS0xMTUuMi02OS44LTE1MS44YzIuNC0uMSA0LjctLjIgNy4xLS4yaDYxLjRDNTY3LjggMzIwIDY0MCAzOTIuMiA2NDAgNDgxLjNjMCAxNy0xMy44IDMwLjctMzAuNyAzMC43ek00MzIgMjU2Yy0zMSAwLTU5LTEyLjYtNzkuMy0zMi45QzM3Mi40IDE5Ni41IDM4NCAxNjMuNiAzODQgMTI4YzAtMjYuOC02LjYtNTIuMS0xOC4zLTc0LjNDMzg0LjMgNDAuMSA0MDcuMiAzMiA0MzIgMzJjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJzLTUwLjEgMTEyLTExMiAxMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJJbmp1cmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0MCA4MEgzNDIuN2MtNy45LTE5LjUtMjAuNC0zNi41LTM2LjItNDkuOUwyNDAgODB6bTM3LjctNjguMkMyNjEuMyA0LjIgMjQzLjIgMCAyMjQgMGMtNTMuNyAwLTk5LjcgMzMuMS0xMTguNyA4MGg4MS40bDkxLTY4LjJ6TTIyNCAyNTZjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhjMC01LjQtLjMtMTAuOC0xLTE2SDk3Yy0uNyA1LjItMSAxMC42LTEgMTZjMCA3MC43IDU3LjMgMTI4IDEyOCAxMjh6TTEyNCAzMTIuNGMtOS43IDMuMS0xOS4xIDctMjggMTEuN1Y1MTJIMjQzLjdMMTgxLjUgNDA4LjIgMTI0IDMxMi40em0zMy03LjJMMjA0LjMgMzg0SDI3MmM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDE4LTYgMzQuNi0xNiA0OGg4Mi4zYzE2LjQgMCAyOS43LTEzLjMgMjkuNy0yOS43QzQ0OCAzODMuOCAzNjguMiAzMDQgMjY5LjcgMzA0SDE3OC4zYy03LjIgMC0xNC4zIC40LTIxLjMgMS4zek0wIDQ4Mi4zQzAgNDk4LjcgMTMuMyA1MTIgMjkuNyA1MTJINjRWMzQ1LjRDMjQuOSAzNzguMSAwIDQyNy4zIDAgNDgyLjN6TTMyMCA0NjRjMC0yNi41LTIxLjUtNDgtNDgtNDhIMjIzLjVsNTcuMSA5NS4yQzMwMyA1MDcuMiAzMjAgNDg3LjYgMzIwIDQ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckxhcmdlU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzguOCA1LjFDMjguNC0zLjEgMTMuMy0xLjIgNS4xIDkuMlMtMS4yIDM0LjcgOS4yIDQyLjlsNTkyIDQ2NGMxMC40IDguMiAyNS41IDYuMyAzMy43LTQuMXM2LjMtMjUuNS00LjEtMzMuN0wzODEuOSAyNzRjNDguNS0yMy4yIDgyLjEtNzIuNyA4Mi4xLTEzMEM0NjQgNjQuNSAzOTkuNSAwIDMyMCAwQzI1MC40IDAgMTkyLjQgNDkuMyAxNzguOSAxMTQuOUwzOC44IDUuMXpNNTQ1LjUgNTEySDUyOEwyODQuMyAzMjBoLTU5QzEzNi4yIDMyMCA2NCAzOTIuMiA2NCA0ODEuM2MwIDE3IDEzLjggMzAuNyAzMC43IDMwLjdINTQ1LjNsLjMgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckxhcmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAyODhBMTQ0IDE0NCAwIDEgMCAyNTYgMGExNDQgMTQ0IDAgMSAwIDAgMjg4em0tOTQuNyAzMkM3Mi4yIDMyMCAwIDM5Mi4yIDAgNDgxLjNjMCAxNyAxMy44IDMwLjcgMzAuNyAzMC43SDQ4MS4zYzE3IDAgMzAuNy0xMy44IDMwLjctMzAuN0M1MTIgMzkyLjIgNDM5LjggMzIwIDM1MC43IDMyMEgxNjEuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDI1NkExMjggMTI4IDAgMSAwIDIyNCAwYTEyOCAxMjggMCAxIDAgMCAyNTZ6bS00NS43IDQ4Qzc5LjggMzA0IDAgMzgzLjggMCA0ODIuM0MwIDQ5OC43IDEzLjMgNTEyIDI5LjcgNTEySDM5Mi42Yy01LjQtOS40LTguNi0yMC4zLTguNi0zMlYzNTJjMC0yLjEgLjEtNC4yIC4zLTYuM2MtMzEtMjYtNzEtNDEuNy0xMTQuNi00MS43SDE3OC4zek01MjggMjQwYzE3LjcgMCAzMiAxNC4zIDMyIDMydjQ4SDQ5NlYyNzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS04MCAzMnY0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMySDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMlYzNTJjMC0xNy43LTE0LjMtMzItMzItMzJWMjcyYzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMTI4YTEyOCAxMjggMCAxIDEgMjU2IDBBMTI4IDEyOCAwIDEgMSA5NiAxMjh6TTAgNDgyLjNDMCAzODMuOCA3OS44IDMwNCAxNzguMyAzMDRoOTEuNEMzNjguMiAzMDQgNDQ4IDM4My44IDQ0OCA0ODIuM2MwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0gyOS43QzEzLjMgNTEyIDAgNDk4LjcgMCA0ODIuM3pNNDcyIDIwMEg2MTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRINDcyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyTmluamEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDI1NmMtNTcuMiAwLTEwNS42LTM3LjUtMTIyLTg5LjNjLTEuMSAxLjMtMi4yIDIuNi0zLjUgMy44Yy0xNS44IDE1LjgtMzguOCAyMC43LTUzLjYgMjIuMWMtOC4xIC44LTE0LjYtNS43LTEzLjgtMTMuOGMxLjQtMTQuNyA2LjMtMzcuOCAyMi4xLTUzLjZjNS44LTUuOCAxMi42LTEwLjEgMTkuNi0xMy40Yy03LTMuMi0xMy44LTcuNi0xOS42LTEzLjRDMzcuNCA4Mi43IDMyLjYgNTkuNyAzMS4xIDQ0LjljLS44LTguMSA1LjctMTQuNiAxMy44LTEzLjhjMTQuNyAxLjQgMzcuOCA2LjMgNTMuNiAyMi4xYzQuOCA0LjggOC43IDEwLjQgMTEuNyAxNi4xQzEzMS40IDI4LjIgMTc0LjQgMCAyMjQgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOHMtNTcuMyAxMjgtMTI4IDEyOHpNMCA0ODIuM0MwIDM5OS41IDU2LjQgMzMwIDEzMi44IDMwOS45YzYtMS42IDEyLjIgLjkgMTUuOSA1LjhsNjIuNSA4My4zYzYuNCA4LjUgMTkuMiA4LjUgMjUuNiAwbDYyLjUtODMuM2MzLjctNC45IDkuOS03LjQgMTUuOS01LjhDMzkxLjYgMzMwIDQ0OCAzOTkuNSA0NDggNDgyLjNjMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdIMjkuN0MxMy4zIDUxMiAwIDQ5OC43IDAgNDgyLjN6TTE2MCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNkgyODhjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyTnVyc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMTI4VjcwLjJjMC0xMy4zIDguMy0yNS4zIDIwLjgtMzBsOTYtMzZjNy4yLTIuNyAxNS4yLTIuNyAyMi41IDBsOTYgMzZjMTIuNSA0LjcgMjAuOCAxNi42IDIwLjggMzBWMTI4aC0uM2MuMiAyLjYgLjMgNS4zIC4zIDh2NDBjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhzLTEyOC01Ny4zLTEyOC0xMjhWMTM2YzAtMi43IC4xLTUuNCAuMy04SDk2em00OCA0OGMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwVjE2MEgxNDR2MTZ6TTExMS45IDMyNy43YzEwLjUtMy40IDIxLjggLjQgMjkuNCA4LjVsNzEgNzUuNWM2LjMgNi43IDE3IDYuNyAyMy4zIDBsNzEtNzUuNWM3LjYtOC4xIDE4LjktMTEuOSAyOS40LTguNUM0MDEgMzQ4LjYgNDQ4IDQwOS40IDQ0OCA0ODEuM2MwIDE3LTEzLjggMzAuNy0zMC43IDMwLjdIMzAuN0MxMy44IDUxMiAwIDQ5OC4yIDAgNDgxLjNjMC03MS45IDQ3LTEzMi43IDExMS45LTE1My42ek0yMDggNDhWNjRIMTkyYy00LjQgMC04IDMuNi04IDhWODhjMCA0LjQgMy42IDggOCA4aDE2djE2YzAgNC40IDMuNiA4IDggOGgxNmM0LjQgMCA4LTMuNiA4LThWOTZoMTZjNC40IDAgOC0zLjYgOC04VjcyYzAtNC40LTMuNi04LTgtOEgyNDBWNDhjMC00LjQtMy42LTgtOC04SDIxNmMtNC40IDAtOCAzLjYtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyUGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAyNTZBMTI4IDEyOCAwIDEgMCAyMjQgMGExMjggMTI4IDAgMSAwIDAgMjU2em0tNDUuNyA0OEM3OS44IDMwNCAwIDM4My44IDAgNDgyLjNDMCA0OTguNyAxMy4zIDUxMiAyOS43IDUxMkgzMjIuOGMtMy4xLTguOC0zLjctMTguNC0xLjQtMjcuOGwxNS02MC4xYzIuOC0xMS4zIDguNi0yMS41IDE2LjgtMjkuN2w0MC4zLTQwLjNjLTMyLjEtMzEtNzUuNy01MC4xLTEyMy45LTUwLjFIMTc4LjN6bTQzNS41LTY4LjNjLTE1LjYtMTUuNi00MC45LTE1LjYtNTYuNiAwbC0yOS40IDI5LjQgNzEgNzEgMjkuNC0yOS40YzE1LjYtMTUuNiAxNS42LTQwLjkgMC01Ni42bC0xNC40LTE0LjR6TTM3NS45IDQxN2MtNC4xIDQuMS03IDkuMi04LjQgMTQuOWwtMTUgNjAuMWMtMS40IDUuNSAuMiAxMS4yIDQuMiAxNS4yczkuNyA1LjYgMTUuMiA0LjJsNjAuMS0xNWM1LjYtMS40IDEwLjgtNC4zIDE0LjktOC40TDU3Ni4xIDM1OC43bC03MS03MUwzNzUuOSA0MTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDEyOGExMjggMTI4IDAgMSAxIDI1NiAwQTEyOCAxMjggMCAxIDEgOTYgMTI4ek0wIDQ4Mi4zQzAgMzgzLjggNzkuOCAzMDQgMTc4LjMgMzA0aDkxLjRDMzY4LjIgMzA0IDQ0OCAzODMuOCA0NDggNDgyLjNjMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdIMjkuN0MxMy4zIDUxMiAwIDQ5OC43IDAgNDgyLjN6TTUwNCAzMTJWMjQ4SDQ0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGg2NFYxMzZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHY2NGg2NGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEg1NTJ2NjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJTZWNyZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDE2Yy02LjcgMC0xMC44LTIuOC0xNS41LTYuMUMyMDEuOSA1LjQgMTk0IDAgMTc2IDBjLTMwLjUgMC01MiA0My43LTY2IDg5LjRDNjIuNyA5OC4xIDMyIDExMi4yIDMyIDEyOGMwIDE0LjMgMjUgMjcuMSA2NC42IDM1LjljLS40IDQtLjYgOC0uNiAxMi4xYzAgMTcgMy4zIDMzLjIgOS4zIDQ4SDQ1LjRDMzggMjI0IDMyIDIzMCAzMiAyMzcuNGMwIDEuNyAuMyAzLjQgMSA1bDM4LjggOTYuOUMyOC4yIDM3MS44IDAgNDIzLjggMCA0ODIuM0MwIDQ5OC43IDEzLjMgNTEyIDI5LjcgNTEySDQxOC4zYzE2LjQgMCAyOS43LTEzLjMgMjkuNy0yOS43YzAtNTguNS0yOC4yLTExMC40LTcxLjctMTQzTDQxNSAyNDIuNGMuNi0xLjYgMS0zLjMgMS01YzAtNy40LTYtMTMuNC0xMy40LTEzLjRIMzQyLjdjNi0xNC44IDkuMy0zMSA5LjMtNDhjMC00LjEtLjItOC4xLS42LTEyLjFDMzkxIDE1NS4xIDQxNiAxNDIuMyA0MTYgMTI4YzAtMTUuOC0zMC43LTI5LjktNzgtMzguNkMzMjQgNDMuNyAzMDIuNSAwIDI3MiAwYy0xOCAwLTI1LjkgNS40LTMyLjUgOS45Yy00LjggMy4zLTguOCA2LjEtMTUuNSA2LjF6bTU2IDIwOEgyNjcuNmMtMTYuNSAwLTMxLjEtMTAuNi0zNi4zLTI2LjJjLTIuMy03LTEyLjItNy0xNC41IDBjLTUuMiAxNS42LTE5LjkgMjYuMi0zNi4zIDI2LjJIMTY4Yy0yMi4xIDAtNDAtMTcuOS00MC00MFYxNjkuNmMyOC4yIDQuMSA2MSA2LjQgOTYgNi40czY3LjgtMi4zIDk2LTYuNFYxODRjMCAyMi4xLTE3LjkgNDAtNDAgNDB6bS04OCA5NmwxNiAzMkwxNzYgNDgwIDEyOCAyODhsNjQgMzJ6bTEyOC0zMkwyNzIgNDgwIDI0MCAzNTJsMTYtMzIgNjQtMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJTaGllbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDI1NkExMjggMTI4IDAgMSAwIDIyNCAwYTEyOCAxMjggMCAxIDAgMCAyNTZ6bS00NS43IDQ4Qzc5LjggMzA0IDAgMzgzLjggMCA0ODIuM0MwIDQ5OC43IDEzLjMgNTEyIDI5LjcgNTEySDQxOC4zYzEuOCAwIDMuNS0uMiA1LjMtLjVjLTc2LjMtNTUuMS05OS44LTE0MS0xMDMuMS0yMDAuMmMtMTYuMS00LjgtMzMuMS03LjMtNTAuNy03LjNIMTc4LjN6bTMwOC44LTc4LjNsLTEyMCA0OEMzNTggMjc3LjQgMzUyIDI4Ni4yIDM1MiAyOTZjMCA2My4zIDI1LjkgMTY4LjggMTM0LjggMjE0LjJjNS45IDIuNSAxMi42IDIuNSAxOC41IDBDNjE0LjEgNDY0LjggNjQwIDM1OS4zIDY0MCAyOTZjMC05LjgtNi0xOC42LTE1LjEtMjIuM2wtMTIwLTQ4Yy01LjctMi4zLTEyLjEtMi4zLTE3LjggMHpNNTkxLjQgMzEyYy0zLjkgNTAuNy0yNy4yIDExNi43LTk1LjQgMTQ5LjdWMjczLjhMNTkxLjQgMzEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzguOCA1LjFDMjguNC0zLjEgMTMuMy0xLjIgNS4xIDkuMlMtMS4yIDM0LjcgOS4yIDQyLjlsNTkyIDQ2NGMxMC40IDguMiAyNS41IDYuMyAzMy43LTQuMXM2LjMtMjUuNS00LjEtMzMuN0wzNTMuMyAyNTEuNkM0MDcuOSAyMzcgNDQ4IDE4Ny4yIDQ0OCAxMjhDNDQ4IDU3LjMgMzkwLjcgMCAzMjAgMEMyNTAuMiAwIDE5My41IDU1LjggMTkyIDEyNS4yTDM4LjggNS4xek0yNjQuMyAzMDQuM0MxNzAuNSAzMDkuNCA5NiAzODcuMiA5NiA0ODIuM2MwIDE2LjQgMTMuMyAyOS43IDI5LjcgMjkuN0g1MTQuM2MzLjkgMCA3LjYtLjcgMTEtMi4xbC0yNjEtMjA1LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJUYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDI1NkExMjggMTI4IDAgMSAwIDIyNCAwYTEyOCAxMjggMCAxIDAgMCAyNTZ6bS00NS43IDQ4Qzc5LjggMzA0IDAgMzgzLjggMCA0ODIuM0MwIDQ5OC43IDEzLjMgNTEyIDI5LjcgNTEySDQxOC4zYzEwIDAgMTguOC00LjkgMjQuMi0xMi41bC05OS4yLTk5LjJjLTE0LjktMTQuOS0yMy4zLTM1LjEtMjMuMy01Ni4xdi0zM2MtMTUuOS00LjctMzIuOC03LjItNTAuMy03LjJIMTc4LjN6TTM4NCAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgyLjdjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNMNDc4LjEgNDkxLjNjMTguNyAxOC43IDQ5LjEgMTguNyA2Ny45IDBsNzMuNC03My40YzE4LjctMTguNyAxOC43LTQ5LjEgMC02Ny45TDUxMiAyNDIuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0gzODR6bTI0IDgwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJUaWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMTI4YTEyOCAxMjggMCAxIDAgMjU2IDBBMTI4IDEyOCAwIDEgMCA5NiAxMjh6bTk0LjUgMjAwLjJsMTguNiAzMUwxNzUuOCA0ODMuMWwtMzYtMTQ2LjljLTItOC4xLTkuOC0xMy40LTE3LjktMTEuM0M1MS45IDM0Mi40IDAgNDA1LjggMCA0ODEuM2MwIDE3IDEzLjggMzAuNyAzMC43IDMwLjdIMTYyLjVjMCAwIDAgMCAuMSAwSDE2OCAyODBoNS41YzAgMCAwIDAgLjEgMEg0MTcuM2MxNyAwIDMwLjctMTMuOCAzMC43LTMwLjdjMC03NS41LTUxLjktMTM4LjktMTIxLjktMTU2LjRjLTguMS0yLTE1LjkgMy4zLTE3LjkgMTEuM2wtMzYgMTQ2LjlMMjM4LjkgMzU5LjJsMTguNi0zMWM2LjQtMTAuNy0xLjMtMjQuMi0xMy43LTI0LjJIMjI0IDIwNC4zYy0xMi40IDAtMjAuMSAxMy42LTEzLjcgMjQuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlclhtYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDEyOGExMjggMTI4IDAgMSAxIDI1NiAwQTEyOCAxMjggMCAxIDEgOTYgMTI4ek0wIDQ4Mi4zQzAgMzgzLjggNzkuOCAzMDQgMTc4LjMgMzA0aDkxLjRDMzY4LjIgMzA0IDQ0OCAzODMuOCA0NDggNDgyLjNjMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdIMjkuN0MxMy4zIDUxMiAwIDQ5OC43IDAgNDgyLjN6TTQ3MSAxNDNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNDcgNDcgNDctNDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC00NyA0NyA0NyA0N2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Ny00Ny00NyA0N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0Ny00Ny00Ny00N2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDI1NkExMjggMTI4IDAgMSAwIDIyNCAwYTEyOCAxMjggMCAxIDAgMCAyNTZ6bS00NS43IDQ4Qzc5LjggMzA0IDAgMzgzLjggMCA0ODIuM0MwIDQ5OC43IDEzLjMgNTEyIDI5LjcgNTEySDQxOC4zYzE2LjQgMCAyOS43LTEzLjMgMjkuNy0yOS43QzQ0OCAzODMuOCAzNjguMiAzMDQgMjY5LjcgMzA0SDE3OC4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2Vyc0JldHdlZW5MaW5lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI0QzAgMTAuNyAxMC43IDAgMjQgMEg2MTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMjRDMTAuNyA0OCAwIDM3LjMgMCAyNHpNMCA0ODhjMC0xMy4zIDEwLjctMjQgMjQtMjRINjE2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNODMuMiAxNjBhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0zMiAzMjBjMC0zNS4zIDI4LjctNjQgNjQtNjRoOTZjMTIuMiAwIDIzLjcgMy40IDMzLjQgOS40Yy0zNy4yIDE1LjEtNjUuNiA0Ny4yLTc1LjggODYuNkg2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTQ2MS42IDMyYy0xMC4zLTQwLjEtMzkuNi03Mi42LTc3LjctODcuNGM5LjQtNS41IDIwLjQtOC42IDMyLjEtOC42aDk2YzM1LjMgMCA2NCAyOC43IDY0IDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMySDQ5My42ek0zOTEuMiAyOTAuNGMzMi4xIDcuNCA1OC4xIDMwLjkgNjguOSA2MS42YzMuNSAxMCA1LjUgMjAuOCA1LjUgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJoLTIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJjMC0xMS4yIDEuOS0yMiA1LjUtMzJjMTAuNS0yOS43IDM1LjMtNTIuOCA2Ni4xLTYwLjljNy44LTIuMSAxNi0zLjEgMjQuNS0zLjFoOTZjNy40IDAgMTQuNyAuOCAyMS42IDIuNHptNDQtMTMwLjRhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0zMjEuNiA5NmE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlcnNHZWFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NCAxNjBBODAgODAgMCAxIDAgMTQ0IDBhODAgODAgMCAxIDAgMCAxNjB6bTM2OCAwQTgwIDgwIDAgMSAwIDUxMiAwYTgwIDgwIDAgMSAwIDAgMTYwek0wIDI5OC43QzAgMzEwLjQgOS42IDMyMCAyMS4zIDMyMEgyMzQuN2MuMiAwIC40IDAgLjcgMGMtMjYuNi0yMy41LTQzLjMtNTcuOC00My4zLTk2YzAtNy42IC43LTE1IDEuOS0yMi4zYy0xMy42LTYuMy0yOC43LTkuNy00NC42LTkuN0gxMDYuN0M0Ny44IDE5MiAwIDIzOS44IDAgMjk4Ljd6TTMyMCAzMjBjMjQgMCA0NS45LTguOCA2Mi43LTIzLjNjMi41LTMuNyA1LjItNy4zIDgtMTAuN2MyLjctMy4zIDUuNy02LjEgOS04LjNDNDEwIDI2Mi4zIDQxNiAyNDMuOSA0MTYgMjI0YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2em02NS40IDYwLjJjLTEwLjMtNS45LTE4LjEtMTYuMi0yMC44LTI4LjJIMjYxLjNDMTg3LjcgMzUyIDEyOCA0MTEuNyAxMjggNDg1LjNjMCAxNC43IDExLjkgMjYuNyAyNi43IDI2LjdINDU1LjJjLTIuMS01LjItMy4yLTEwLjktMy4yLTE2LjR2LTNjLTEuMy0uNy0yLjctMS41LTQtMi4zbC0yLjYgMS41Yy0xNi44IDkuNy00MC41IDgtNTQuNy05LjdjLTQuNS01LjYtOC42LTExLjUtMTIuNC0xNy42bC0uMS0uMi0uMS0uMi0yLjQtNC4xLS4xLS4yLS4xLS4yYy0zLjQtNi4yLTYuNC0xMi42LTktMTkuM2MtOC4yLTIxLjIgMi4yLTQyLjYgMTktNTIuM2wyLjctMS41YzAtLjggMC0xLjUgMC0yLjNzMC0xLjUgMC0yLjNsLTIuNy0xLjV6TTUzMy4zIDE5Mkg0OTAuN2MtMTUuOSAwLTMxIDMuNS00NC42IDkuN2MxLjMgNy4yIDEuOSAxNC43IDEuOSAyMi4zYzAgMTcuNC0zLjUgMzMuOS05LjcgNDljMi41IC45IDQuOSAyIDcuMSAzLjNsMi42IDEuNWMxLjMtLjggMi42LTEuNiA0LTIuM3YtM2MwLTE5LjQgMTMuMy0zOS4xIDM1LjgtNDIuNmM3LjktMS4yIDE2LTEuOSAyNC4yLTEuOXMxNi4zIC42IDI0LjIgMS45YzIyLjUgMy41IDM1LjggMjMuMiAzNS44IDQyLjZ2M2MxLjMgLjcgMi43IDEuNSA0IDIuM2wyLjYtMS41YzE2LjgtOS43IDQwLjUtOCA1NC43IDkuN2MyLjMgMi44IDQuNSA1LjggNi42IDguN2MtMi4xLTU3LjEtNDktMTAyLjctMTA2LjYtMTAyLjd6bTkxLjMgMTYzLjljNi4zLTMuNiA5LjUtMTEuMSA2LjgtMThjLTIuMS01LjUtNC42LTEwLjgtNy40LTE1LjlsLTIuMy00Yy0zLjEtNS4xLTYuNS05LjktMTAuMi0xNC41Yy00LjYtNS43LTEyLjctNi43LTE5LTNsLTIuOSAxLjdjLTkuMiA1LjMtMjAuNCA0LTI5LjYtMS4zcy0xNi4xLTE0LjUtMTYuMS0yNS4xdi0zLjRjMC03LjMtNC45LTEzLjgtMTIuMS0xNC45Yy02LjUtMS0xMy4xLTEuNS0xOS45LTEuNXMtMTMuNCAuNS0xOS45IDEuNWMtNy4yIDEuMS0xMi4xIDcuNi0xMi4xIDE0Ljl2My40YzAgMTAuNi02LjkgMTkuOC0xNi4xIDI1LjFzLTIwLjQgNi42LTI5LjYgMS4zbC0yLjktMS43Yy02LjMtMy42LTE0LjQtMi42LTE5IDNjLTMuNyA0LjYtNy4xIDkuNS0xMC4yIDE0LjZsLTIuMyAzLjljLTIuOCA1LjEtNS4zIDEwLjQtNy40IDE1LjljLTIuNiA2LjggLjUgMTQuMyA2LjggMTcuOWwyLjkgMS43YzkuMiA1LjMgMTMuNyAxNS44IDEzLjcgMjYuNHMtNC41IDIxLjEtMTMuNyAyNi40bC0zIDEuN2MtNi4zIDMuNi05LjUgMTEuMS02LjggMTcuOWMyLjEgNS41IDQuNiAxMC43IDcuNCAxNS44bDIuNCA0LjFjMyA1LjEgNi40IDkuOSAxMC4xIDE0LjVjNC42IDUuNyAxMi43IDYuNyAxOSAzbDIuOS0xLjdjOS4yLTUuMyAyMC40LTQgMjkuNiAxLjNzMTYuMSAxNC41IDE2LjEgMjUuMXYzLjRjMCA3LjMgNC45IDEzLjggMTIuMSAxNC45YzYuNSAxIDEzLjEgMS41IDE5LjkgMS41czEzLjQtLjUgMTkuOS0xLjVjNy4yLTEuMSAxMi4xLTcuNiAxMi4xLTE0Ljl2LTMuNGMwLTEwLjYgNi45LTE5LjggMTYuMS0yNS4xczIwLjQtNi42IDI5LjYtMS4zbDIuOSAxLjdjNi4zIDMuNiAxNC40IDIuNiAxOS0zYzMuNy00LjYgNy4xLTkuNCAxMC4xLTE0LjVsMi40LTQuMmMyLjgtNS4xIDUuMy0xMC4zIDcuNC0xNS44YzIuNi02LjgtLjUtMTQuMy02LjgtMTcuOWwtMy0xLjdjLTkuMi01LjMtMTMuNy0xNS44LTEzLjctMjYuNHM0LjUtMjEuMSAxMy43LTI2LjRsMy0xLjd6TTQ3MiAzODRhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlcnNMaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxMS4yIDk2YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNMzIgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDg1LjZjMTAuMS0zOS40IDM4LjYtNzEuNSA3NS44LTg2LjZjLTkuNy02LTIxLjItOS40LTMzLjQtOS40SDk2Yy0zNS4zIDAtNjQgMjguNy02NCA2NHptNDYxLjYgMzJINTc2YzE3LjcgMCAzMi0xNC4zIDMyLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0SDQ0OGMtMTEuNyAwLTIyLjcgMy4xLTMyLjEgOC42YzM4LjEgMTQuOCA2Ny40IDQ3LjMgNzcuNyA4Ny40ek0zOTEuMiAyMjYuNGMtNi45LTEuNi0xNC4yLTIuNC0yMS42LTIuNGgtOTZjLTguNSAwLTE2LjcgMS4xLTI0LjUgMy4xYy0zMC44IDguMS01NS42IDMxLjEtNjYuMSA2MC45Yy0zLjUgMTAtNS41IDIwLjgtNS41IDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDIyNGMxNy43IDAgMzItMTQuMyAzMi0zMmMwLTExLjItMS45LTIyLTUuNS0zMmMtMTAuOC0zMC43LTM2LjgtNTQuMi02OC45LTYxLjZ6TTU2My4yIDk2YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNMzIxLjYgMTkyYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwek0zMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINjA4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2Vyc1JheXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDEgN0MzMS42LTIuMyAxNi40LTIuMyA3IDdTLTIuMyAzMS42IDcgNDFsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQxIDd6TTU5OSA3TDUyNyA3OWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDB6TTcgNTA1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMNyA0NzFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45em01OTIgMGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTcyLTcyYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyek0zMjAgMjU2YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4ek0yMTIuMSAzMzZjLTIuNyA3LjUtNC4xIDE1LjYtNC4xIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0SDQwOGMxMy4zIDAgMjQtMTAuNyAyNC0yNGMwLTguNC0xLjQtMTYuNS00LjEtMjRjLS41LTEuNC0xLTIuNy0xLjYtNGMtOS40LTIyLjMtMjkuOC0zOC45LTU0LjMtNDNjLTMuOS0uNy03LjktMS0xMi0xSDI4MGMtNC4xIDAtOC4xIC4zLTEyIDFjLS44IC4xLTEuNyAuMy0yLjUgLjVjLTI0LjkgNS4xLTQ1LjEgMjMtNTMuNCA0Ni41ek0xNzUuOCAyMjRhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tMjYuNSAzMkMxMTkuOSAyNTYgOTYgMjc5LjkgOTYgMzA5LjNjMCAxNC43IDExLjkgMjYuNyAyNi43IDI2LjdoNTYuMWM4LTM0LjEgMzIuOC02MS43IDY1LjItNzMuNmMtNy41LTQuMS0xNi4yLTYuNC0yNS4zLTYuNEgxNDkuM3ptMzY4IDgwYzE0LjcgMCAyNi43LTExLjkgMjYuNy0yNi43YzAtMjkuNS0yMy45LTUzLjMtNTMuMy01My4zSDQyMS4zYy05LjIgMC0xNy44IDIuMy0yNS4zIDYuNGMzMi40IDExLjkgNTcuMiAzOS41IDY1LjIgNzMuNmg1Ni4xek00NjQgMjI0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlcnNSZWN0YW5nbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMEM0MyAwIDAgNDMgMCA5NlY0MTZjMCA1MyA0MyA5NiA5NiA5Nkg1NDRjNTMgMCA5Ni00MyA5Ni05NlY5NmMwLTUzLTQzLTk2LTk2LTk2SDk2ek02NCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMkg1NDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NnptMTU5LjggODBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNOTYgMzA5LjNjMCAxNC43IDExLjkgMjYuNyAyNi43IDI2LjdoNTYuMWM4LTM0LjEgMzIuOC02MS43IDY1LjItNzMuNmMtNy41LTQuMS0xNi4yLTYuNC0yNS4zLTYuNEgxNDkuM0MxMTkuOSAyNTYgOTYgMjc5LjkgOTYgMzA5LjN6TTQ2MS4yIDMzNmg1Ni4xYzE0LjcgMCAyNi43LTExLjkgMjYuNy0yNi43YzAtMjkuNS0yMy45LTUzLjMtNTMuMy01My4zSDQyMS4zYy05LjIgMC0xNy44IDIuMy0yNS4zIDYuNGMzMi40IDExLjkgNTcuMiAzOS41IDY1LjIgNzMuNnpNMzcyIDI4OWMtMy45LS43LTcuOS0xLTEyLTFIMjgwYy00LjEgMC04LjEgLjMtMTIgMWMtMjYgNC40LTQ3LjMgMjIuNy01NS45IDQ3Yy0yLjcgNy41LTQuMSAxNS42LTQuMSAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNEg0MDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRjMC04LjQtMS40LTE2LjUtNC4xLTI0Yy04LjYtMjQuMy0yOS45LTQyLjYtNTUuOS00N3pNNTEyIDE3NmE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0zMjAgMjU2YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2Vyc1NsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMNDQwLjYgMzIwSDYxOC43YzExLjggMCAyMS4zLTkuNiAyMS4zLTIxLjNDNjQwIDIzOS44IDU5Mi4yIDE5MiA1MzMuMyAxOTJINDkwLjdjLTE1LjkgMC0zMSAzLjUtNDQuNiA5LjdjMS4zIDcuMiAxLjkgMTQuNyAxLjkgMjIuM2MwIDMwLjItMTAuNSA1OC0yOCA3OS45bC0yNS4yLTE5LjdDNDA4LjEgMjY3LjcgNDE2IDI0Ni44IDQxNiAyMjRjMC01My00My05Ni05Ni05NmMtMzEuMSAwLTU4LjcgMTQuOC03Ni4zIDM3LjdsLTQwLjYtMzEuOGMxMy0xNC4yIDIwLjktMzMuMSAyMC45LTUzLjljMC00NC4yLTM1LjgtODAtODAtODBDMTE2LjMgMCA5MS45IDE0LjEgNzcuNSAzNS41TDM4LjggNS4xek0xMDYuNyAxOTJDNDcuOCAxOTIgMCAyMzkuOCAwIDI5OC43QzAgMzEwLjQgOS42IDMyMCAyMS4zIDMyMEgyMzQuN2MuMiAwIC40IDAgLjcgMGMtMjAuNi0xOC4yLTM1LjItNDIuOC00MC44LTcwLjhMMTIxLjggMTkySDEwNi43ek0yNjEuMyAzNTJDMTg3LjcgMzUyIDEyOCA0MTEuNyAxMjggNDg1LjNjMCAxNC43IDExLjkgMjYuNyAyNi43IDI2LjdINDg1LjNjMTAuNSAwIDE5LjUtNiAyMy45LTE0LjhMMzI0LjkgMzUySDI2MS4zek01MTIgMTYwQTgwIDgwIDAgMSAwIDUxMiAwYTgwIDgwIDAgMSAwIDAgMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2Vyc1ZpZXdmaW5kZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggNDhoODhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMzJDMTQuMyAwIDAgMTQuMyAwIDMyVjEzNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjQ4ek0xNzUuOCAyMjRhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tMjYuNSAzMkMxMTkuOSAyNTYgOTYgMjc5LjkgOTYgMzA5LjNjMCAxNC43IDExLjkgMjYuNyAyNi43IDI2LjdoNTYuMWM4LTM0LjEgMzIuOC02MS43IDY1LjItNzMuNmMtNy41LTQuMS0xNi4yLTYuNC0yNS4zLTYuNEgxNDkuM3ptMzY4IDgwYzE0LjcgMCAyNi43LTExLjkgMjYuNy0yNi43YzAtMjkuNS0yMy45LTUzLjMtNTMuMy01My4zSDQyMS4zYy05LjIgMC0xNy44IDIuMy0yNS4zIDYuNGMzMi40IDExLjkgNTcuMiAzOS41IDY1LjIgNzMuNmg1Ni4xem0tODkuNCAwYy04LjYtMjQuMy0yOS45LTQyLjYtNTUuOS00N2MtMy45LS43LTcuOS0xLTEyLTFIMjgwYy00LjEgMC04LjEgLjMtMTIgMWMtMjYgNC40LTQ3LjMgMjIuNy01NS45IDQ3Yy0yLjcgNy41LTQuMSAxNS42LTQuMSAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNEg0MDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRjMC04LjQtMS40LTE2LjUtNC4xLTI0ek00NjQgMjI0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptLTgwLTMyYTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNNTA0IDQ4aDg4djg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMzJjMC0xNy43LTE0LjMtMzItMzItMzJINTA0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0ek00OCA0NjRWMzc2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMkgxMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRINDh6bTQ1NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0SDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMlYzNzZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR2ODhINTA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQgMGE4MCA4MCAwIDEgMSAwIDE2MEE4MCA4MCAwIDEgMSAxNDQgMHpNNTEyIDBhODAgODAgMCAxIDEgMCAxNjBBODAgODAgMCAxIDEgNTEyIDB6TTAgMjk4LjdDMCAyMzkuOCA0Ny44IDE5MiAxMDYuNyAxOTJoNDIuN2MxNS45IDAgMzEgMy41IDQ0LjYgOS43Yy0xLjMgNy4yLTEuOSAxNC43LTEuOSAyMi4zYzAgMzguMiAxNi44IDcyLjUgNDMuMyA5NmMtLjIgMC0uNCAwLS43IDBIMjEuM0M5LjYgMzIwIDAgMzEwLjQgMCAyOTguN3pNNDA1LjMgMzIwYy0uMiAwLS40IDAtLjcgMGMyNi42LTIzLjUgNDMuMy01Ny44IDQzLjMtOTZjMC03LjYtLjctMTUtMS45LTIyLjNjMTMuNi02LjMgMjguNy05LjcgNDQuNi05LjdoNDIuN0M1OTIuMiAxOTIgNjQwIDIzOS44IDY0MCAyOTguN2MwIDExLjgtOS42IDIxLjMtMjEuMyAyMS4zSDQwNS4zek0yMjQgMjI0YTk2IDk2IDAgMSAxIDE5MiAwIDk2IDk2IDAgMSAxIC0xOTIgMHpNMTI4IDQ4NS4zQzEyOCA0MTEuNyAxODcuNyAzNTIgMjYxLjMgMzUySDM3OC43QzQ1Mi4zIDM1MiA1MTIgNDExLjcgNTEyIDQ4NS4zYzAgMTQuNy0xMS45IDI2LjctMjYuNyAyNi43SDE1NC43Yy0xNC43IDAtMjYuNy0xMS45LTI2LjctMjYuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXRlbnNpbHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDBDNDAwIDAgMjg4IDMyIDI4OCAxNzZWMjg4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDMyVjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjM1MiAyNDAgMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY0IDE2QzY0IDcuOCA1Ny45IDEgNDkuNyAuMVMzNC4yIDQuNiAzMi40IDEyLjVMMi4xIDE0OC44Qy43IDE1NS4xIDAgMTYxLjUgMCAxNjcuOWMwIDQ1LjkgMzUuMSA4My42IDgwIDg3LjdWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMjU1LjZjNDQuOS00LjEgODAtNDEuOCA4MC04Ny43YzAtNi40LS43LTEyLjgtMi4xLTE5LjFMMTkxLjYgMTIuNWMtMS44LTgtOS4zLTEzLjMtMTcuNC0xMi40UzE2MCA3LjggMTYwIDE2VjE1MC4yYzAgNS40LTQuNCA5LjgtOS44IDkuOGMtNS4xIDAtOS4zLTMuOS05LjgtOUwxMjcuOSAxNC42QzEyNy4yIDYuMyAxMjAuMyAwIDExMiAwcy0xNS4yIDYuMy0xNS45IDE0LjZMODMuNyAxNTFjLS41IDUuMS00LjcgOS05LjggOWMtNS40IDAtOS44LTQuNC05LjgtOS44VjE2em00OC4zIDE1MmwtLjMgMC0uMyAwIC4zLS43IC4zIC43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjcgMzQuNWMxNi4zLTYuOCAzNSAuOSA0MS44IDE3LjJMMTkyIDM2NC44IDMyMi41IDUxLjdjNi44LTE2LjMgMjUuNS0yNCA0MS44LTE3LjJzMjQgMjUuNSAxNy4yIDQxLjhsLTE2MCAzODRjLTUgMTEuOS0xNi42IDE5LjctMjkuNSAxOS43cy0yNC42LTcuOC0yOS41LTE5LjdMMi41IDc2LjNjLTYuOC0xNi4zIC45LTM1IDE3LjItNDEuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmFuU2h1dHRsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAxMDR2ODhoOTZWOTZINzJjLTQuNCAwLTggMy42LTggOHptNDgyIDg4TDQ2NS4xIDk2SDM4NHY5Nkg1NDZ6bS0yMjYgMFY5NkgyMjR2OTZoOTZ6TTU5MiAzODRINTc2YzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2SDI1NmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05Nkg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTA0QzAgNjQuMiAzMi4yIDMyIDcyIDMySDE5MiAzNTIgNDY1LjFjMTguOSAwIDM2LjggOC4zIDQ5IDIyLjhMNjI1IDE4Ni41YzkuNyAxMS41IDE1IDI2LjEgMTUgNDEuMlYzMzZjMCAyNi41LTIxLjUgNDgtNDggNDh6bS02NCAwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTE2MCA0MzJhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWYXVsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIODBsMTYgMzJoNjRsMTYtMzJINDAwbDE2IDMyaDY0bDE2LTMyaDE2YzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek0yMjQgMzIwYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wLTI0MGExNjAgMTYwIDAgMSAxIDAgMzIwIDE2MCAxNjAgMCAxIDEgMC0zMjB6TTQ4MCAyMjEuM1YzMzZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMjIxLjNjLTE4LjYtNi42LTMyLTI0LjQtMzItNDUuM2MwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4YzAgMjAuOS0xMy40IDM4LjctMzIgNDUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmVjdG9yU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OCA4MGgzMnYzMkgzNjhWODB6TTM1MiAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJIMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjR2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJWMzUyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg5NmMxNy43IDAgMzItMTQuMyAzMi0zMkgzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMyVjE2MGMxNy43IDAgMzItMTQuMyAzMi0zMlY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzNTJ6TTk2IDE2MGMxNy43IDAgMzItMTQuMyAzMi0zMkgzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJWMzUyYy0xNy43IDAtMzIgMTQuMy0zMiAzMkgxMjhjMC0xNy43LTE0LjMtMzItMzItMzJWMTYwek00OCA0MDBIODB2MzJINDhWNDAwem0zMjAgMzJWNDAwaDMydjMySDM2OHpNNDggMTEyVjgwSDgwdjMySDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWZW51c0RvdWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMjg4YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHpNMzY4IDE3NmMwIDg2LjMtNjIuMSAxNTguMS0xNDQgMTczLjFWMzg0aDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDIyNHYzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY0NDhIMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDMyVjM0OS4xQzc4LjEgMzM0LjEgMTYgMjYyLjMgMTYgMTc2QzE2IDc4LjggOTQuOCAwIDE5MiAwczE3NiA3OC44IDE3NiAxNzZ6TTM0NCAzMThjMTQuNi0xNS42IDI2LjgtMzMuNCAzNi01M2MxOC44IDE0LjQgNDIuNCAyMyA2OCAyM2M2MS45IDAgMTEyLTUwLjEgMTEyLTExMnMtNTAuMS0xMTItMTEyLTExMmMtMjUuNiAwLTQ5LjEgOC42LTY4IDIzYy05LjMtMTkuNS0yMS41LTM3LjQtMzYtNTNDMzczLjEgMTIuNiA0MDkuMSAwIDQ0OCAwYzk3LjIgMCAxNzYgNzguOCAxNzYgMTc2YzAgODYuMy02Mi4xIDE1OC4xLTE0NCAxNzMuMVYzODRoMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINDgwdjMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjQ0OEgzODRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJoMzJWMzQ5LjFjLTI2LjYtNC45LTUxLjEtMTUuNy03Mi0zMS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWZW51c01hcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc2IDI4OGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6TTM1MiAxNzZjMCA4Ni4zLTYyLjEgMTU4LjEtMTQ0IDE3My4xVjM4NGgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgyMDh2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNDQ4SDExMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmgzMlYzNDkuMUM2Mi4xIDMzNC4xIDAgMjYyLjMgMCAxNzZDMCA3OC44IDc4LjggMCAxNzYgMHMxNzYgNzguOCAxNzYgMTc2ek0yNzEuOSAzNjAuNmMxOS4zLTEwLjEgMzYuOS0yMy4xIDUyLjEtMzguNGMyMCAxOC41IDQ2LjcgMjkuOCA3Ni4xIDI5LjhjNjEuOSAwIDExMi01MC4xIDExMi0xMTJzLTUwLjEtMTEyLTExMi0xMTJjLTcuMiAwLTE0LjMgLjctMjEuMSAyYy00LjktMjEuNS0xMy00MS43LTI0LTYwLjJDMzY5LjMgNjYgMzg0LjQgNjQgNDAwIDY0YzM3IDAgNzEuNCAxMS40IDk5LjggMzFsMjAuNi0yMC42TDQ4NyA0MWMtNi45LTYuOS04LjktMTcuMi01LjItMjYuMlM0OTQuMyAwIDUwNCAwSDYxNmMxMy4zIDAgMjQgMTAuNyAyNCAyNFYxMzZjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtMzMuNC0zMy40TDU0NSAxNDAuMmMxOS41IDI4LjQgMzEgNjIuNyAzMSA5OS44YzAgOTcuMi03OC44IDE3Ni0xNzYgMTc2Yy01MC41IDAtOTYtMjEuMy0xMjguMS01NS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWZW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04MCAxNzZhMTEyIDExMiAwIDEgMSAyMjQgMEExMTIgMTEyIDAgMSAxIDgwIDE3NnpNMjI0IDM0OS4xYzgxLjktMTUgMTQ0LTg2LjggMTQ0LTE3My4xQzM2OCA3OC44IDI4OS4yIDAgMTkyIDBTMTYgNzguOCAxNiAxNzZjMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0IDE3My4xVjM4NEgxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoMzJ2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY0NDhoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMjI0VjM0OS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWZXN0UGF0Y2hlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTEuMiA2OS43bDU1LjkgMTY3LjctMTEgMzMuMWMtMi43IDguMi00LjEgMTYuNy00LjEgMjUuM1Y0NjRjMCAxNC41IDMuOSAyOC4yIDEwLjcgMzkuOUMxOTUgNTA5IDE4NS45IDUxMiAxNzYgNTEySDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYyNzAuNWMwLTkuNSAyLjgtMTguNyA4LjEtMjYuNmw0Ny45LTcxLjhjNS4zLTcuOSA4LjEtMTcuMSA4LjEtMjYuNlYxMjggNTQuMyA0OEM2NCAyMS41IDg1LjUgMCAxMTIgMGg0LjVjLjIgMCAuNCAwIC42IDBjLjQgMCAuOCAwIDEuMiAwYzE4LjggMCAzNC4xIDkuNyA0NC4xIDE4LjhDMTcxLjYgMjcuMiAxOTAuOCA0MCAyMjQgNDBzNTIuNC0xMi44IDYxLjctMjEuMkMyOTUuNyA5LjcgMzExIDAgMzI5LjcgMGMuNCAwIC44IDAgMS4yIDBjLjIgMCAuNCAwIC42IDBIMzM2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djYuM1YxMjh2MTcuNWMwIDkuNSAyLjggMTguNyA4LjEgMjYuNmw0Ny45IDcxLjhjNS4zIDcuOSA4LjEgMTcuMSA4LjEgMjYuNlY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhIMjcyYy0yNi41IDAtNDgtMjEuNS00OC00OFYyOTUuOGMwLTUuMiAuOC0xMC4zIDIuNS0xNS4yTDI5Ni44IDY5LjdDMjc5LjQgNzkuNyAyNTUuNCA4OCAyMjQgODhzLTU1LjQtOC4zLTcyLjgtMTguM3pNOTYgNDU2YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHpNNjMuNSAyNTUuNWMtNC43IDQuNy00LjcgMTIuMyAwIDE3TDc5IDI4OCA2My41IDMwMy41Yy00LjcgNC43LTQuNyAxMi4zIDAgMTdzMTIuMyA0LjcgMTcgMEw5NiAzMDVsMTUuNSAxNS41YzQuNyA0LjcgMTIuMyA0LjcgMTcgMHM0LjctMTIuMyAwLTE3TDExMyAyODhsMTUuNS0xNS41YzQuNy00LjcgNC43LTEyLjMgMC0xN3MtMTIuMy00LjctMTcgMEw5NiAyNzEgODAuNSAyNTUuNWMtNC43LTQuNy0xMi4zLTQuNy0xNyAwek0zMDQgMjgwdjggMzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyIDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRoLTh2LThjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZlc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA3LjEgMjM3LjRMMTUxLjIgNjkuN0MxNjguNiA3OS43IDE5Mi42IDg4IDIyNCA4OHM1NS40LTguMyA3Mi44LTE4LjNMMjI2LjUgMjgwLjZjLTEuNiA0LjktMi41IDEwLTIuNSAxNS4yVjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OEg0MDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMjcwLjVjMC05LjUtMi44LTE4LjctOC4xLTI2LjZsLTQ3LjktNzEuOGMtNS4zLTcuOS04LjEtMTcuMS04LjEtMjYuNlYxMjggNTQuMyA0OGMwLTI2LjUtMjEuNS00OC00OC00OGgtNC41Yy0uMiAwLS40IDAtLjYgMGMtLjQgMC0uOCAwLTEuMiAwQzMxMSAwIDI5NS43IDkuNyAyODUuNyAxOC44QzI3Ni40IDI3LjIgMjU3LjIgNDAgMjI0IDQwcy01Mi40LTEyLjgtNjEuNy0yMS4yQzE1Mi4zIDkuNyAxMzcgMCAxMTguMyAwYy0uNCAwLS44IDAtMS4yIDBjLS4yIDAtLjQgMC0uNiAwSDExMkM4NS41IDAgNjQgMjEuNSA2NCA0OHY2LjNWMTI4djE3LjVjMCA5LjUtMi44IDE4LjctOC4xIDI2LjZMOC4xIDI0My45QzIuOCAyNTEuOCAwIDI2MS4xIDAgMjcwLjVWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDE3NmM5LjkgMCAxOS0zIDI2LjctOC4xQzE5NS45IDQ5Mi4yIDE5MiA0NzguNSAxOTIgNDY0VjI5NS44YzAtOC42IDEuNC0xNy4xIDQuMS0yNS4zbDExLTMzLjF6TTM0Ny4zIDM1Ni43bDQ4IDQ4YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTQ4LTQ4Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDB6bS0yOTQuNiA0OGw0OC00OGM2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZsLTQ4IDQ4Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaWFsQ2lyY2xlQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMkg5Nmg2NCA2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMlYyNjYuOGMtMjAuMiAyOC42LTMyIDYzLjUtMzIgMTAxLjJjMCAyNS4yIDUuMyA0OS4xIDE0LjggNzAuOEMxODkuNSA0NjMuNyAxNjAuNiA0ODAgMTI4IDQ4MGMtNTMgMC05Ni00My05Ni05NlY5NkMxNC4zIDk2IDAgODEuNyAwIDY0ek05NiA5NnY5Nmg2NFY5Nkg5NnpNMjI0IDM2OGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMTEuMy00My4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEwzNTIgMzg1LjRsLTI4LjctMjguN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw3Mi03MmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmlhbFZpcnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5NlYzODRjMCA1MyA0MyA5NiA5NiA5NmMyOC42IDAgNTQuMi0xMi41IDcxLjgtMzIuM2MuMS0xNC4yIDUuNi0yOC4zIDE2LjQtMzkuMWMuMi0uMiAuMS0uNi0uMi0uNmMtMzAuOSAwLTU2LTI1LjEtNTYtNTZzMjUuMS01NiA1Ni01NmMuMyAwIC40LS40IC4yLS42Yy0yMS45LTIxLjktMjEuOS01Ny4zIDAtNzkuMmMyLjQtMi40IDUtNC42IDcuOC02LjVWOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTYwIDk2IDMyek05NiAxOTJWOTZoNjR2OTZIOTZ6TTIxNiAzNzZjMjguOCAwIDQzLjIgMzQuOCAyMi45IDU1LjJjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGMyMC40LTIwLjQgNTUuMi01LjkgNTUuMiAyMi45YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0yOC44IDM0LjgtNDMuMiA1NS4yLTIyLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45QzQ0NC44IDQxMC44IDQ1OS4yIDM3NiA0ODggMzc2YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0Yy0yOC44IDAtNDMuMi0zNC44LTIyLjktNTUuMmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwQzQxMC44IDI1OS4yIDM3NiAyNDQuOCAzNzYgMjE2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgMjguOC0zNC44IDQzLjItNTUuMiAyMi45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45YzIwLjQgMjAuNCA1LjkgNTUuMi0yMi45IDU1LjJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjR6bTEwNC04OGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTQwIDk2YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQyLjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5LjQgOS40TDI4LjEgMzQyLjZDMTAuMSAzNjAuNiAwIDM4NSAwIDQxMC41VjQxNmMwIDUzIDQzIDk2IDk2IDk2aDUuNWMyNS41IDAgNDkuOS0xMC4xIDY3LjktMjguMUw0NDggMjA1LjNsOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0zMi0zMi05Ni05Ni0zMi0zMnpNMjA1LjMgMjU2TDM1MiAxMDkuMyA0MDIuNyAxNjBsLTk2IDk2SDIwNS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaWFscyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMySDg4aDQ4IDU2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyVjQwMGMwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MFY5NkMxNC4zIDk2IDAgODEuNyAwIDY0ek0xMzYgOTZIODhWMjU2aDQ4Vjk2ek0yODggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJoNTYgNDggNTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJWNDAwYzAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwVjk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNDI0IDk2SDM3NlYyNTZoNDhWOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpZGVvU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzguOCA1LjFDMjguNC0zLjEgMTMuMy0xLjIgNS4xIDkuMlMtMS4yIDM0LjcgOS4yIDQyLjlsNTkyIDQ2NGMxMC40IDguMiAyNS41IDYuMyAzMy43LTQuMXM2LjMtMjUuNS00LjEtMzMuN2wtODYuNC02Ny43IDEzLjggOS4yYzkuOCA2LjUgMjIuNCA3LjIgMzIuOSAxLjZzMTYuOS0xNi40IDE2LjktMjguMlYxMjhjMC0xMS44LTYuNS0yMi42LTE2LjktMjguMnMtMjMtNS0zMi45IDEuNmwtOTYgNjRMNDQ4IDE3NC45VjE5MiAzMjB2NS44bC0zMi0yNS4xVjEyOGMwLTM1LjMtMjguNy02NC02NC02NEgxMTMuOUwzOC44IDUuMXpNNDA3IDQxNi43TDMyLjMgMTIxLjVjLS4yIDIuMS0uMyA0LjMtLjMgNi41VjM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzNTJjMjMuNCAwIDQzLjktMTIuNiA1NS0zMS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaWRlbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0IDI4LjcgNjQgNjRWMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYxMjh6TTU1OS4xIDk5LjhjMTAuNCA1LjYgMTYuOSAxNi40IDE2LjkgMjguMlYzODRjMCAxMS44LTYuNSAyMi42LTE2LjkgMjguMnMtMjMgNS0zMi45LTEuNmwtOTYtNjRMNDE2IDMzNy4xVjMyMCAxOTIgMTc0LjlsMTQuMi05LjUgOTYtNjRjOS44LTYuNSAyMi40LTcuMiAzMi45LTEuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmloYXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4MSAyMkwzMDUuOCA0LjdjMS4zLS45IDIuNy0xLjggNC4xLTIuNEMzMTMuMSAuNyAzMTYuNiAwIDMyMCAwczYuOSAuNyAxMC4xIDIuMmMxLjQgLjcgMi44IDEuNSA0LjEgMi40TDM1OSAyMkMzOTMgNDUuOCA0MzAuOCA2My41IDQ3MC44IDc0LjRsMjMgNi4zYzEuOCAuNSAzLjYgMS4xIDUuMiAyYzMuMiAxLjcgNS45IDQgOC4xIDYuOGMzLjggNC45IDUuNiAxMS4zIDQuNyAxNy44Yy0uNCAyLjgtMS4yIDUuNC0yLjUgNy44Yy0xLjcgMy4yLTQgNS45LTYuOCA4LjFjLTQuMyAzLjItOS42IDUuMS0xNS4xIDQuOUg0ODB2NTYuMWw2LjQgNS4xIDUuMiA0LjFjMjEuMSAxNi43IDQ1IDI5LjYgNzAuNSAzOC4xbDI4LjkgOS42YzEuNiAuNSAzLjIgMS4yIDQuNiAyYzMuMSAxLjcgNS44IDQuMSA3LjggNi45czMuNSA2LjEgNC4xIDkuNmMuNSAyLjcgLjYgNS41IC4xIDguM3MtMS40IDUuNC0yLjcgNy44Yy0xLjcgMy4xLTQuMSA1LjgtNi45IDcuOHMtNi4xIDMuNS05LjYgNC4xYy0xLjYgLjMtMy4zIC40LTUgLjRINTQ0djY1LjljMjAuNSAyMi44IDQ3LjQgMzkuMiA3Ny40IDQ2LjdDNjMyIDQwMyA2NDAgNDEyLjYgNjQwIDQyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNEg1NzZ2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNDQ4SDM1MnYzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY0NDhIMTI4djMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjQ0OEgyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRjMC0xMS40IDgtMjEgMTguNi0yMy40YzMwLTcuNiA1Ni45LTIzLjkgNzcuNC00Ni43VjI4OEg1Ni42Yy0xLjcgMC0zLjQtLjEtNS0uNGMtMy41LS43LTYuOC0yLjEtOS42LTQuMXMtNS4yLTQuNy03LTcuOGMtMS4zLTIuNC0yLjMtNS0yLjctNy44cy0uNC01LjYgLjEtOC4zYy43LTMuNSAyLjEtNi44IDQuMS05LjZzNC43LTUuMiA3LjgtNi45YzEuNC0uOCAzLTEuNSA0LjYtMmwyOC45LTkuNmMyNS41LTguNSA0OS40LTIxLjQgNzAuNS0zOC4xbDUuMi00LjEgNi40LTUuMVYxNzYgMTI4aC03LjVjLTUuNSAuMS0xMC44LTEuNy0xNS4xLTQuOWMtMi44LTIuMS01LjEtNC44LTYuOC04LjFjLTEuMi0yLjQtMi4xLTUtMi41LTcuOGMtLjktNi41IC45LTEyLjggNC43LTE3LjhjMi4xLTIuOCA0LjgtNS4xIDguMS02LjhjMS42LS44IDMuNC0xLjUgNS4yLTJsMjMtNi4zQzIwOS4yIDYzLjUgMjQ3IDQ1LjggMjgxIDIyek00MTYgMTI4SDMyMCAyMjR2NjRoNzIgNDggNzJWMTI4ek0xNjAgMjg4djY0SDI5NmgyNCAyNEg0ODBWMjg4SDM0NCAzMjBoMEgyOTYgMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaXJ1c0NvdmlkU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzguOCA1LjFDMjguNC0zLjEgMTMuMy0xLjIgNS4xIDkuMlMtMS4yIDM0LjcgOS4yIDQyLjlsNTkyIDQ2NGMxMC40IDguMiAyNS41IDYuMyAzMy43LTQuMXM2LjMtMjUuNS00LjEtMzMuN0w0NzIuMSAzNDQuN2MxMS40LTE5LjUgMTkuMS00MS40IDIyLjMtNjQuN0g1Mjh2MTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYyMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR2MTZINDk0LjRjLTQuMi0zMC43LTE2LjMtNTguOC0zNC4xLTgyLjNMNDg0IDEyNS45bDExLjMgMTEuM2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDcyLjcgNDYuN2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOUw0NTAuMSA5MmwtMjMuOCAyMy44QzQwMi44IDk3LjkgMzc0LjcgODUuOCAzNDQgODEuNlY0OGgxNmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgyODBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoMTZWODEuNmMtMzAuNyA0LjItNTguOCAxNi4zLTgyLjMgMzQuMUwxODkuOSA5MmwxMS4zLTExLjNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEwxMzQuMSA3OS44IDM4LjggNS4xem0zNjIuNSA0MDdMMTQ5LjIgMjEzLjVjLTEuNSA2LTIuNyAxMi4yLTMuNSAxOC41SDExMlYyMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR2ODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYyODBoMzMuNmM0LjIgMzAuNyAxNi4zIDU4LjggMzQuMSA4Mi4zTDE1NiAzODYuMWwtMTEuMy0xMS4zYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDU2LjYgNTYuNmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMTg5LjkgNDIwbDIzLjgtMjMuOGMyMy41IDE3LjkgNTEuNyAyOS45IDgyLjMgMzQuMVY0NjRIMjgwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDgwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDM0NFY0MzAuNGMyMC40LTIuOCAzOS43LTkuMSA1Ny4zLTE4LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpcnVzQ292aWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0aDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDI4MFY4MS42YzMwLjcgNC4yIDU4LjggMTYuMyA4Mi4zIDM0LjFMMzg2LjEgOTIgMzc0LjggODAuNmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDU2LjYgNTYuNmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDQyMCAxMjUuOWwtMjMuOCAyMy44YzE3LjkgMjMuNSAyOS45IDUxLjcgMzQuMSA4Mi4zSDQ2NFYyMTZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHY4MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYyODBINDMwLjRjLTQuMiAzMC43LTE2LjMgNTguOC0zNC4xIDgyLjNMNDIwIDM4Ni4xbDExLjMtMTEuM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU2LjYgNTYuNmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwzODYuMSA0MjBsLTIzLjgtMjMuOGMtMjMuNSAxNy45LTUxLjcgMjkuOS04Mi4zIDM0LjFWNDY0aDE2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDIxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGgxNlY0MzAuNGMtMzAuNy00LjItNTguOC0xNi4zLTgyLjMtMzQuMUwxMjUuOSA0MjBsMTEuMyAxMS4zYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNDYuNyA0MDguN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwTDkyIDM4Ni4xbDIzLjgtMjMuOEM5Ny45IDMzOC44IDg1LjggMzEwLjcgODEuNiAyODBINDh2MTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMjE2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR2MTZIODEuNmM0LjItMzAuNyAxNi4zLTU4LjggMzQuMS04Mi4zTDkyIDEyNS45IDgwLjYgMTM3LjJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNTYuNi01Ni42YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUwxMjUuOSA5MmwyMy44IDIzLjhjMjMuNS0xNy45IDUxLjctMjkuOSA4Mi4zLTM0LjFWNDhIMjE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptNDggMjAwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bTY0IDEwNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpcnVzU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzguOCA1LjFDMjguNC0zLjEgMTMuMy0xLjIgNS4xIDkuMlMtMS4yIDM0LjcgOS4yIDQyLjlsNTkyIDQ2NGMxMC40IDguMiAyNS41IDYuMyAzMy43LTQuMXM2LjMtMjUuNS00LjEtMzMuN2wtMTU0LjMtMTIxYy0yLTMwLjEgMjAuOC02MC4xIDU2LTYwLjFINTQ0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDUzMi41Yy00OS45IDAtNzQuOS02MC4zLTM5LjYtOTUuNmw4LjItOC4yYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC04LjIgOC4yQzQxMi4zIDExOC40IDM1MiA5My40IDM1MiA0My41VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjQzLjVjMCA0OS45LTYwLjMgNzQuOS05NS42IDM5LjZMMTg0LjIgNzVjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwYy0xLjYgMS42LTMuMSAzLjQtNC4zIDUuM0wzOC44IDUuMXptMjI1LjggMTc3YzYuOS0zLjkgMTQuOS02LjEgMjMuNC02LjFjMjYuNSAwIDQ4IDIxLjUgNDggNDhjMCA0LjQtLjYgOC43LTEuNyAxMi43bC02OS43LTU0LjZ6TTQwMiA0MTIuN0wxNDQuNyAyMTBjLTkuNSA4LjUtMjIuMiAxNC0zNy4yIDE0SDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDExLjVjNDkuOSAwIDc0LjkgNjAuMyAzOS42IDk1LjZsLTguMiA4LjJjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsOC4yLTguMmMzNS4zLTM1LjMgOTUuNi0xMC4zIDk1LjYgMzkuNlY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY0NjguNWMwLTMxLjIgMjMuNi01Mi43IDUwLTU1Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpcnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlY0My41YzAgNDkuOS02MC4zIDc0LjktOTUuNiAzOS42TDEyMC4yIDc1QzEwNy43IDYyLjUgODcuNSA2Mi41IDc1IDc1cy0xMi41IDMyLjggMCA0NS4zbDguMiA4LjJDMTE4LjQgMTYzLjcgOTMuNCAyMjQgNDMuNSAyMjRIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINDMuNWM0OS45IDAgNzQuOSA2MC4zIDM5LjYgOTUuNkw3NSAzOTEuOGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw4LjItOC4yYzM1LjMtMzUuMyA5NS42LTEwLjMgOTUuNiAzOS42VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjQ2OC41YzAtNDkuOSA2MC4zLTc0LjkgOTUuNi0zOS42bDguMiA4LjJjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOC4yLTguMmMtMzUuMy0zNS4zLTEwLjMtOTUuNiAzOS42LTk1LjZINDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDQ2OC41Yy00OS45IDAtNzQuOS02MC4zLTM5LjYtOTUuNmw4LjItOC4yYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC04LjIgOC4yQzM0OC4zIDExOC40IDI4OCA5My40IDI4OCA0My41VjMyek0xNzYgMjI0YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTEyOCA1NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpcnVzZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRWMzcuNWMwIDM1LjYgNDMuMSA1My41IDY4LjMgMjguM2w5LjUtOS41YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtOS41IDkuNUMyOTMgMTI0LjkgMzEwLjkgMTY4IDM0Ni41IDE2OEgzNjBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMzQ2LjVjLTM1LjYgMC01My41IDQzLjEtMjguMyA2OC4zbDkuNSA5LjVjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtOS41LTkuNUMyNTkuMSAyOTMgMjE2IDMxMC45IDIxNiAzNDYuNVYzNjBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMzQ2LjVjMC0zNS42LTQzLjEtNTMuNS02OC4zLTI4LjNsLTkuNSA5LjVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsOS41LTkuNUM5MSAyNTkuMSA3My4xIDIxNiAzNy41IDIxNkgyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNEgzNy41YzM1LjYgMCA1My41LTQzLjEgMjguMy02OC4zbC05LjUtOS41Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsOS41IDkuNUMxMjQuOSA5MSAxNjggNzMuMSAxNjggMzcuNVYyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHptNDggMjI0YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptLTQ4LTY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTMyMCA4MGMwIDMzIDM5LjkgNDkuNSA2My4yIDI2LjJjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42QzU3NC41IDMxMi4xIDU5MSAzNTIgNjI0IDM1MmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmMtMzMgMC00OS41IDM5LjktMjYuMiA2My4yYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBDNTUxLjkgNDQ2LjUgNTEyIDQ2MyA1MTIgNDk2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2YzAtMzMtMzkuOS00OS41LTYzLjItMjYuMmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkM0MTcuNSA0MjMuOSA0MDEgMzg0IDM2OCAzODRjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZjMzMgMCA0OS41LTM5LjkgMjYuMi02My4yYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBDNDQwLjEgMjg5LjUgNDgwIDI3MyA0ODAgMjQwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6bTAgMTEyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZvaWNlbWFpbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQgMzIwYTgwIDgwIDAgMSAxIDAtMTYwIDgwIDgwIDAgMSAxIDAgMTYwem0xMTkuOCAwYzE1LjMtMjIuOSAyNC4yLTUwLjQgMjQuMi04MGMwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NFMwIDE2MC41IDAgMjQwczY0LjUgMTQ0IDE0NCAxNDRINDk2Yzc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0cy02NC41LTE0NC0xNDQtMTQ0cy0xNDQgNjQuNS0xNDQgMTQ0YzAgMjkuNiA4LjkgNTcuMSAyNC4yIDgwSDI2My44ek00OTYgMTYwYTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWb2xjYW5vIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCAxNDRjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRjMTUuNyAwIDMwIDUuNiA0MS4yIDE1QzIxMi40IDEyLjQgMjMyLjcgMCAyNTYgMHM0My42IDEyLjQgNTQuOCAzMUMzMjIgMjEuNiAzMzYuMyAxNiAzNTIgMTZjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRjLTE0LjcgMC0yOC4zLTUtMzkuMS0xMy4zbC0zMiA0OEMyNzUuMyAxODcgMjY2IDE5MiAyNTYgMTkycy0xOS4zLTUtMjQuOS0xMy4zbC0zMi00OEMxODguMyAxMzkgMTc0LjcgMTQ0IDE2MCAxNDR6TTE0NCAzNTJsNDguNC0yNC4yYzEwLjItNS4xIDIxLjYtNy44IDMzLTcuOGMxOS42IDAgMzguNCA3LjggNTIuMiAyMS42bDMyLjUgMzIuNWM2LjMgNi4zIDE0LjkgOS45IDIzLjggOS45YzExLjMgMCAyMS44LTUuNiAyOC0xNWw5LjctMTQuNi01OC45LTY2LjNjLTkuMS0xMC4yLTIyLjItMTYuMS0zNS45LTE2LjFIMjM1LjFjLTEzLjcgMC0yNi44IDUuOS0zNS45IDE2LjFsLTU5LjkgNjcuNEwxNDQgMzUyem0xOS40LTk1LjhjMTguMi0yMC41IDQ0LjMtMzIuMiA3MS44LTMyLjJoNDEuOGMyNy40IDAgNTMuNSAxMS43IDcxLjggMzIuMmwxNTAuMiAxNjljOC41IDkuNSAxMy4yIDIxLjkgMTMuMiAzNC43YzAgMjguOC0yMy40IDUyLjItNTIuMiA1Mi4ySDUyLjJDMjMuNCA1MTIgMCA0ODguNiAwIDQ1OS44YzAtMTIuOCA0LjctMjUuMSAxMy4yLTM0LjdsMTUwLjItMTY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWb2xsZXliYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMS44IDI2Ny40Yy0yNi4xIDguNy01My40IDEzLjgtODEgMTUuMWM5LjItMTA1LjMtMzEuNS0yMDQuMi0xMDMuMi0yNzIuNEM0MzQuMSA0MS4xIDUxMiAxMzkuNSA1MTIgMjU2YzAgMy44LS4xIDcuNi0uMiAxMS40em0tMy45IDM0LjdjLTUuOCAzMi0xNy42IDYyLTM0LjIgODguN2MtOTcuNSA0OC41LTIxNy43IDQyLjYtMzExLjktMjQuNWMyMy43LTM2LjIgNTUuNC02Ny43IDk0LjUtOTEuOGM3OS45IDQzLjIgMTcwLjEgNTAuOCAyNTEuNiAyNy42em0tMjM2LTU1LjVjLTIuNS05MC45LTQxLjEtMTcyLjctMTAxLjktMjMxLjdDMTk2LjggNS4yIDIyNS44IDAgMjU2IDBjMi43IDAgNS4zIDAgNy45IC4xYzkwLjggNjAuMiAxNDUuNyAxNjcuMiAxMzQuNyAyODIuM2MtNDMuMS0yLjQtODYuNC0xNC4xLTEyNi44LTM1Ljl6TTEzOCAyOC44YzIwLjYgMTguMyAzOC43IDM5LjQgNTMuNyA2Mi42Qzk1LjkgMTM2LjEgMzAuNiAyMjAuOCA3LjMgMzE2LjlDMi41IDI5Ny40IDAgMjc3IDAgMjU2QzAgMTU3LjIgNTYgNzEuNSAxMzggMjguOHptNjkuNiA5MC41YzE5LjUgMzguNiAzMSA4MS45IDMyLjMgMTI3LjdDMTYyLjUgMjk0LjYgMTEwLjkgMzY4LjkgOTAuMiA0NTFDNjYgNDMwLjQgNDUuNiA0MDUuNCAzMC40IDM3Ny4yYzYuNy0xMDguNyA3MS45LTIwOS45IDE3Ny4xLTI1Ny45ek0yNTYgNTEyYy01MC43IDAtOTgtMTQuNy0xMzcuOC00MC4yYzUuNi0yNyAxNC44LTUzLjEgMjcuNC03Ny43QzIzMi4yIDQ1NC42IDMzOC4xIDQ2OC44IDQzMyA0NDFjLTQ2IDQ0LTEwOC4zIDcxLTE3NyA3MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVm9sdW1lSGlnaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MzMuNiAzMi41QzU5OC41IDg1LjIgNjQwIDE2NS44IDY0MCAyNTZzLTQxLjUgMTcwLjctMTA2LjQgMjIzLjVjLTEwLjMgOC40LTI1LjQgNi44LTMzLjgtMy41cy02LjgtMjUuNCAzLjUtMzMuOEM1NTcuNSAzOTguMiA1OTIgMzMxLjIgNTkyIDI1NnMtMzQuNS0xNDIuMi04OC43LTE4Ni4zYy0xMC4zLTguNC0xMS44LTIzLjUtMy41LTMzLjhzMjMuNS0xMS44IDMzLjgtMy41ek00NzMuMSAxMDdjNDMuMiAzNS4yIDcwLjkgODguOSA3MC45IDE0OXMtMjcuNyAxMTMuOC03MC45IDE0OWMtMTAuMyA4LjQtMjUuNCA2LjgtMzMuOC0zLjVzLTYuOC0yNS40IDMuNS0zMy44QzQ3NS4zIDM0MS4zIDQ5NiAzMDEuMSA0OTYgMjU2cy0yMC43LTg1LjMtNTMuMi0xMTEuOGMtMTAuMy04LjQtMTEuOC0yMy41LTMuNS0zMy44czIzLjUtMTEuOCAzMy44LTMuNXptLTYwLjUgNzQuNUM0MzQuMSAxOTkuMSA0NDggMjI1LjkgNDQ4IDI1NnMtMTMuOSA1Ni45LTM1LjQgNzQuNWMtMTAuMyA4LjQtMjUuNCA2LjgtMzMuOC0zLjVzLTYuOC0yNS40IDMuNS0zMy44QzM5My4xIDI4NC40IDQwMCAyNzEgNDAwIDI1NnMtNi45LTI4LjQtMTcuNy0zNy4zYy0xMC4zLTguNC0xMS44LTIzLjUtMy41LTMzLjhzMjMuNS0xMS44IDMzLjgtMy41ek0zMDEuMSAzNC44QzMxMi42IDQwIDMyMCA1MS40IDMyMCA2NFY0NDhjMCAxMi42LTcuNCAyNC0xOC45IDI5LjJzLTI1IDMuMS0zNC40LTUuM0wxMzEuOCAzNTJINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjIyNGMwLTM1LjMgMjguNy02NCA2NC02NGg2Ny44TDI2Ni43IDQwLjFjOS40LTguNCAyMi45LTEwLjQgMzQuNC01LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZvbHVtZUxvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDEuMSAzNC44QzMxMi42IDQwIDMyMCA1MS40IDMyMCA2NFY0NDhjMCAxMi42LTcuNCAyNC0xOC45IDI5LjJzLTI1IDMuMS0zNC40LTUuM0wxMzEuOCAzNTJINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjIyNGMwLTM1LjMgMjguNy02NCA2NC02NGg2Ny44TDI2Ni43IDQwLjFjOS40LTguNCAyMi45LTEwLjQgMzQuNC01LjN6TTQxMi42IDE4MS41QzQzNC4xIDE5OS4xIDQ0OCAyMjUuOSA0NDggMjU2cy0xMy45IDU2LjktMzUuNCA3NC41Yy0xMC4zIDguNC0yNS40IDYuOC0zMy44LTMuNXMtNi44LTI1LjQgMy41LTMzLjhDMzkzLjEgMjg0LjQgNDAwIDI3MSA0MDAgMjU2cy02LjktMjguNC0xNy43LTM3LjNjLTEwLjMtOC40LTExLjgtMjMuNS0zLjUtMzMuOHMyMy41LTExLjggMzMuOC0zLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZvbHVtZU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgNjRjMC0xMi42LTcuNC0yNC0xOC45LTI5LjJzLTI1LTMuMS0zNC40IDUuM0wxMzEuOCAxNjBINjRjLTM1LjMgMC02NCAyOC43LTY0IDY0djY0YzAgMzUuMyAyOC43IDY0IDY0IDY0aDY3LjhMMjY2LjcgNDcxLjljOS40IDguNCAyMi45IDEwLjQgMzQuNCA1LjNTMzIwIDQ2MC42IDMyMCA0NDhWNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZvbHVtZVhtYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwMS4xIDM0LjhDMzEyLjYgNDAgMzIwIDUxLjQgMzIwIDY0VjQ0OGMwIDEyLjYtNy40IDI0LTE4LjkgMjkuMnMtMjUgMy4xLTM0LjQtNS4zTDEzMS44IDM1Mkg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0aDY3LjhMMjY2LjcgNDAuMWM5LjQtOC40IDIyLjktMTAuNCAzNC40LTUuM3pNNDI1IDE2N2w1NSA1NSA1NS01NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU1IDU1IDU1IDU1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTU1LTU1LTU1IDU1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU1LTU1LTU1LTU1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZyQ2FyZGJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3NiA2NEg2NEMyOC43IDY0IDAgOTIuNyAwIDEyOFYzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMTg0LjRjMjQuMiAwIDQ2LjQtMTMuNyA1Ny4yLTM1LjRsMzItNjRjOC44LTE3LjUgMjYuNy0yOC42IDQ2LjMtMjguNnMzNy41IDExLjEgNDYuMyAyOC42bDMyIDY0YzEwLjggMjEuNyAzMyAzNS40IDU3LjIgMzUuNEg1NzZjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0ek05NiAyNDBhNjQgNjQgMCAxIDEgMTI4IDBBNjQgNjQgMCAxIDEgOTYgMjQwem0zODQtNjRhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuOCAzNGMxNi41LTYuMiAzNSAyLjIgNDEuMiAxOC43bDExMC4yIDI5NEwyNTcuMyA1NWM0LTEzLjcgMTYuNS0yMyAzMC43LTIzczI2LjcgOS40IDMwLjcgMjNsODUuMSAyOTEuN0w1MTQgNTIuOGM2LjItMTYuNSAyNC42LTI0LjkgNDEuMi0xOC43czI0LjkgMjQuNyAxOC43IDQxLjJsLTE0NCAzODRjLTQuOCAxMi45LTE3LjQgMjEuMy0zMS4yIDIwLjdzLTI1LjctOS44LTI5LjUtMjNMMjg4IDE3OC4zIDIwNi43IDQ1N2MtMy45IDEzLjItMTUuOCAyMi41LTI5LjUgMjNzLTI2LjMtNy44LTMxLjItMjAuN0wyIDc1LjJDLTQuMiA1OC43IDQuMiA0MC4yIDIwLjggMzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdhbGtpZVRhbGtpZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTIgMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRTNjQgMTAuNyA2NCAyNFY5Nkg0OEMyMS41IDk2IDAgMTE3LjUgMCAxNDRWMzAwLjFjMCAxMi43IDUuMSAyNC45IDE0LjEgMzMuOWwzLjkgMy45YzkgOSAxNC4xIDIxLjIgMTQuMSAzMy45VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OEgzMDRjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzcxLjljMC0xMi43IDUuMS0yNC45IDE0LjEtMzMuOWwzLjktMy45YzktOSAxNC4xLTIxLjIgMTQuMS0zMy45VjE0NGMwLTI2LjUtMjEuNS00OC00OC00OEgzMjBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJIMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMySDExMlYyNHptMCAxMzZIMjcyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDExMmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMCA2NEgyNzJjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMTEyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0wIDY0SDI3MmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxMTJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdhbGxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0SDgwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2SDQ0OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg2NHpNNDE2IDI3MmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdhbmRNYWdpY1NwYXJrbGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzNC43IDQyLjdMMTk3IDU2LjhjLTMgMS4xLTUgNC01IDcuMnMyIDYuMSA1IDcuMmwzNy43IDE0LjFMMjQ4LjggMTIzYzEuMSAzIDQgNSA3LjIgNXM2LjEtMiA3LjItNWwxNC4xLTM3LjdMMzE1IDcxLjJjMy0xLjEgNS00IDUtNy4ycy0yLTYuMS01LTcuMkwyNzcuMyA0Mi43IDI2My4yIDVjLTEuMS0zLTQtNS03LjItNXMtNi4xIDItNy4yIDVMMjM0LjcgNDIuN3pNNDYuMSAzOTUuNGMtMTguNyAxOC43LTE4LjcgNDkuMSAwIDY3LjlsMzQuNiAzNC42YzE4LjcgMTguNyA0OS4xIDE4LjcgNjcuOSAwTDUyOS45IDExNi41YzE4LjctMTguNyAxOC43LTQ5LjEgMC02Ny45TDQ5NS4zIDE0LjFjLTE4LjctMTguNy00OS4xLTE4LjctNjcuOSAwTDQ2LjEgMzk1LjR6TTQ4NC42IDgyLjZsLTEwNSAxMDUtMjMuMy0yMy4zIDEwNS0xMDUgMjMuMyAyMy4zek03LjUgMTE3LjJDMyAxMTguOSAwIDEyMy4yIDAgMTI4czMgOS4xIDcuNSAxMC44TDY0IDE2MGwyMS4yIDU2LjVjMS43IDQuNSA2IDcuNSAxMC44IDcuNXM5LjEtMyAxMC44LTcuNUwxMjggMTYwbDU2LjUtMjEuMmM0LjUtMS43IDcuNS02IDcuNS0xMC44cy0zLTkuMS03LjUtMTAuOEwxMjggOTYgMTA2LjggMzkuNUMxMDUuMSAzNSAxMDAuOCAzMiA5NiAzMnMtOS4xIDMtMTAuOCA3LjVMNjQgOTYgNy41IDExNy4yem0zNTIgMjU2Yy00LjUgMS43LTcuNSA2LTcuNSAxMC44czMgOS4xIDcuNSAxMC44TDQxNiA0MTZsMjEuMiA1Ni41YzEuNyA0LjUgNiA3LjUgMTAuOCA3LjVzOS4xLTMgMTAuOC03LjVMNDgwIDQxNmw1Ni41LTIxLjJjNC41LTEuNyA3LjUtNiA3LjUtMTAuOHMtMy05LjEtNy41LTEwLjhMNDgwIDM1MmwtMjEuMi01Ni41Yy0xLjctNC41LTYtNy41LTEwLjgtNy41cy05LjEgMy0xMC44IDcuNUw0MTYgMzUybC01Ni41IDIxLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdhbmRNYWdpYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC4xIDQ2My4zYy0xOC43LTE4LjctMTguNy00OS4xIDAtNjcuOUwzOTUuNCAxNC4xYzE4LjctMTguNyA0OS4xLTE4LjcgNjcuOSAwbDM0LjYgMzQuNmMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOUwxMTYuNSA0OTcuOWMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMTQuMSA0NjMuM3pNMzQ3LjYgMTg3LjZsMTA1LTEwNUw0MjkuNCA1OS4zbC0xMDUgMTA1IDIzLjMgMjMuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2FuZFNwYXJrbGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCA2LjFjOS41LTguNSAyNC04LjEgMzMgLjlsOCA4YzkgOSA5LjQgMjMuNSAuOSAzM2wtODUuOCA5NS45Yy0yLjYgMi45LTQuMSA2LjctNC4xIDEwLjdWMTc2YzAgOC44LTcuMiAxNi0xNiAxNkgzODQuMmMtNC42IDAtOC45IDEuOS0xMS45IDUuM0wxMDAuNyA1MDAuOUM5NC4zIDUwOCA4NS4zIDUxMiA3NS44IDUxMmMtOC44IDAtMTcuMy0zLjUtMjMuNS05LjhMOS43IDQ1OS43QzMuNSA0NTMuNCAwIDQ0NSAwIDQzNi4yYzAtOS41IDQtMTguNSAxMS4xLTI0LjhsMTExLjYtOTkuOGMzLjQtMyA1LjMtNy40IDUuMy0xMS45VjI3MmMwLTguOCA3LjItMTYgMTYtMTZoMzQuNmMzLjkgMCA3LjctMS41IDEwLjctNC4xTDQ2NCA2LjF6TTQzMiAyODhjMy42IDAgNi43IDIuNCA3LjcgNS44bDE0LjggNTEuNyA1MS43IDE0LjhjMy40IDEgNS44IDQuMSA1LjggNy43cy0yLjQgNi43LTUuOCA3LjdsLTUxLjcgMTQuOC0xNC44IDUxLjdjLTEgMy40LTQuMSA1LjgtNy43IDUuOHMtNi43LTIuNC03LjctNS44bC0xNC44LTUxLjctNTEuNy0xNC44Yy0zLjQtMS01LjgtNC4xLTUuOC03LjdzMi40LTYuNyA1LjgtNy43bDUxLjctMTQuOCAxNC44LTUxLjdjMS0zLjQgNC4xLTUuOCA3LjctNS44ek04Ny43IDY5LjhsMTQuOCA1MS43IDUxLjcgMTQuOGMzLjQgMSA1LjggNC4xIDUuOCA3LjdzLTIuNCA2LjctNS44IDcuN2wtNTEuNyAxNC44TDg3LjcgMjE4LjJjLTEgMy40LTQuMSA1LjgtNy43IDUuOHMtNi43LTIuNC03LjctNS44TDU3LjUgMTY2LjUgNS44IDE1MS43Yy0zLjQtMS01LjgtNC4xLTUuOC03LjdzMi40LTYuNyA1LjgtNy43bDUxLjctMTQuOEw3Mi4zIDY5LjhjMS0zLjQgNC4xLTUuOCA3LjctNS44czYuNyAyLjQgNy43IDUuOHpNMjA4IDBjMy43IDAgNi45IDIuNSA3LjggNi4xbDYuOCAyNy4zIDI3LjMgNi44YzMuNiAuOSA2LjEgNC4xIDYuMSA3LjhzLTIuNSA2LjktNi4xIDcuOGwtMjcuMyA2LjgtNi44IDI3LjNjLS45IDMuNi00LjEgNi4xLTcuOCA2LjFzLTYuOS0yLjUtNy44LTYuMWwtNi44LTI3LjMtMjcuMy02LjhjLTMuNi0uOS02LjEtNC4xLTYuMS03LjhzMi41LTYuOSA2LjEtNy44bDI3LjMtNi44IDYuOC0yNy4zYy45LTMuNiA0LjEtNi4xIDcuOC02LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdhcmVob3VzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQ4OFYxNzEuM2MwLTI2LjIgMTUuOS00OS43IDQwLjItNTkuNEwzMDguMSA0LjhjNy42LTMuMSAxNi4xLTMuMSAyMy44IDBMNTk5LjggMTExLjljMjQuMyA5LjcgNDAuMiAzMy4zIDQwLjIgNTkuNFY0ODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRINTY4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJIMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMlY0ODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRIMjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0em00ODggMjRsLTMzNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFY0MzJINTEybDAgNTZjMCAxMy4zLTEwLjcgMjQtMjQgMjR6TTEyOCA0MDBWMzM2SDUxMnY2NEgxMjh6bTAtOTZWMjI0SDUxMmwwIDgwSDEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2F0ZXJMYWRkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDEyNy43QzEyOCA3NC45IDE3MC45IDMyIDIyMy43IDMyYzQ4LjMgMCA4OSAzNiA5NSA4My45bDEgOC4yYzIuMiAxNy41LTEwLjIgMzMuNS0yNy44IDM1LjdzLTMzLjUtMTAuMi0zNS43LTI3LjhsLTEtOC4yYy0yLTE1LjktMTUuNS0yNy44LTMxLjUtMjcuOGMtMTcuNSAwLTMxLjcgMTQuMi0zMS43IDMxLjdWMjI0SDM4NFYxMjcuN0MzODQgNzQuOSA0MjYuOSAzMiA0NzkuNyAzMmM0OC4zIDAgODkgMzYgOTUgODMuOWwxIDguMmMyLjIgMTcuNS0xMC4yIDMzLjUtMjcuOCAzNS43cy0zMy41LTEwLjItMzUuNy0yNy44bC0xLTguMmMtMi0xNS45LTE1LjUtMjcuOC0zMS41LTI3LjhjLTE3LjUgMC0zMS43IDE0LjItMzEuNyAzMS43VjM2MWMtMS42IDEtMy4zIDItNC44IDMuMWMtMTggMTIuNC00MC4xIDIwLjMtNTkuMiAyMC4zaDBWMjg4SDE5MnY5Ni41Yy0xOSAwLTQxLjItNy45LTU5LjEtMjAuM2MtMS42LTEuMS0zLjItMi4yLTQuOS0zLjFWMTI3Ljd6TTMwNi41IDM4OS45QzMyOSA0MDUuNCAzNTYuNSA0MTYgMzg0IDQxNmMyNi45IDAgNTUuNC0xMC44IDc3LjQtMjYuMWwwIDBjMTEuOS04LjUgMjguMS03LjggMzkuMiAxLjdjMTQuNCAxMS45IDMyLjUgMjEgNTAuNiAyNS4yYzE3LjIgNCAyNy45IDIxLjIgMjMuOSAzOC40cy0yMS4yIDI3LjktMzguNCAyMy45Yy0yNC41LTUuNy00NC45LTE2LjUtNTguMi0yNUM0NDkuNSA0NjkuNyA0MTcgNDgwIDM4NCA0ODBjLTMxLjkgMC02MC42LTkuOS04MC40LTE4LjljLTUuOC0yLjctMTEuMS01LjMtMTUuNi03LjdjLTQuNSAyLjQtOS43IDUuMS0xNS42IDcuN2MtMTkuOCA5LTQ4LjUgMTguOS04MC40IDE4LjljLTMzIDAtNjUuNS0xMC4zLTk0LjUtMjUuOGMtMTMuNCA4LjQtMzMuNyAxOS4zLTU4LjIgMjVjLTE3LjIgNC0zNC40LTYuNy0zOC40LTIzLjlzNi43LTM0LjQgMjMuOS0zOC40YzE4LjEtNC4yIDM2LjItMTMuMyA1MC42LTI1LjJjMTEuMS05LjQgMjcuMy0xMC4xIDM5LjItMS43bDAgMEMxMzYuNyA0MDUuMiAxNjUuMSA0MTYgMTkyIDQxNmMyNy41IDAgNTUtMTAuNiA3Ny41LTI2LjFjMTEuMS03LjkgMjUuOS03LjkgMzcgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2F0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjY5LjUgNjkuOWMxMS4xLTcuOSAyNS45LTcuOSAzNyAwQzMyOSA4NS40IDM1Ni41IDk2IDM4NCA5NmMyNi45IDAgNTUuNC0xMC44IDc3LjQtMjYuMWwwIDBjMTEuOS04LjUgMjguMS03LjggMzkuMiAxLjdjMTQuNCAxMS45IDMyLjUgMjEgNTAuNiAyNS4yYzE3LjIgNCAyNy45IDIxLjIgMjMuOSAzOC40cy0yMS4yIDI3LjktMzguNCAyMy45Yy0yNC41LTUuNy00NC45LTE2LjUtNTguMi0yNUM0NDkuNSAxNDkuNyA0MTcgMTYwIDM4NCAxNjBjLTMxLjkgMC02MC42LTkuOS04MC40LTE4LjljLTUuOC0yLjctMTEuMS01LjMtMTUuNi03LjdjLTQuNSAyLjQtOS43IDUuMS0xNS42IDcuN2MtMTkuOCA5LTQ4LjUgMTguOS04MC40IDE4LjljLTMzIDAtNjUuNS0xMC4zLTk0LjUtMjUuOGMtMTMuNCA4LjQtMzMuNyAxOS4zLTU4LjIgMjVjLTE3LjIgNC0zNC40LTYuNy0zOC40LTIzLjlzNi43LTM0LjQgMjMuOS0zOC40QzQyLjggOTIuNiA2MSA4My41IDc1LjMgNzEuNmMxMS4xLTkuNSAyNy4zLTEwLjEgMzkuMi0xLjdsMCAwQzEzNi43IDg1LjIgMTY1LjEgOTYgMTkyIDk2YzI3LjUgMCA1NS0xMC42IDc3LjUtMjYuMXptMzcgMjg4QzMyOSAzNzMuNCAzNTYuNSAzODQgMzg0IDM4NGMyNi45IDAgNTUuNC0xMC44IDc3LjQtMjYuMWwwIDBjMTEuOS04LjUgMjguMS03LjggMzkuMiAxLjdjMTQuNCAxMS45IDMyLjUgMjEgNTAuNiAyNS4yYzE3LjIgNCAyNy45IDIxLjIgMjMuOSAzOC40cy0yMS4yIDI3LjktMzguNCAyMy45Yy0yNC41LTUuNy00NC45LTE2LjUtNTguMi0yNUM0NDkuNSA0MzcuNyA0MTcgNDQ4IDM4NCA0NDhjLTMxLjkgMC02MC42LTkuOS04MC40LTE4LjljLTUuOC0yLjctMTEuMS01LjMtMTUuNi03LjdjLTQuNSAyLjQtOS43IDUuMS0xNS42IDcuN2MtMTkuOCA5LTQ4LjUgMTguOS04MC40IDE4LjljLTMzIDAtNjUuNS0xMC4zLTk0LjUtMjUuOGMtMTMuNCA4LjQtMzMuNyAxOS4zLTU4LjIgMjVjLTE3LjIgNC0zNC40LTYuNy0zOC40LTIzLjlzNi43LTM0LjQgMjMuOS0zOC40YzE4LjEtNC4yIDM2LjItMTMuMyA1MC42LTI1LjJjMTEuMS05LjQgMjcuMy0xMC4xIDM5LjItMS43bDAgMEMxMzYuNyAzNzMuMiAxNjUuMSAzODQgMTkyIDM4NGMyNy41IDAgNTUtMTAuNiA3Ny41LTI2LjFjMTEuMS03LjkgMjUuOS03LjkgMzcgMHptMC0xNDRDMzI5IDIyOS40IDM1Ni41IDI0MCAzODQgMjQwYzI2LjkgMCA1NS40LTEwLjggNzcuNC0yNi4xbDAgMGMxMS45LTguNSAyOC4xLTcuOCAzOS4yIDEuN2MxNC40IDExLjkgMzIuNSAyMSA1MC42IDI1LjJjMTcuMiA0IDI3LjkgMjEuMiAyMy45IDM4LjRzLTIxLjIgMjcuOS0zOC40IDIzLjljLTI0LjUtNS43LTQ0LjktMTYuNS01OC4yLTI1QzQ0OS41IDI5My43IDQxNyAzMDQgMzg0IDMwNGMtMzEuOSAwLTYwLjYtOS45LTgwLjQtMTguOWMtNS44LTIuNy0xMS4xLTUuMy0xNS42LTcuN2MtNC41IDIuNC05LjcgNS4xLTE1LjYgNy43Yy0xOS44IDktNDguNSAxOC45LTgwLjQgMTguOWMtMzMgMC02NS41LTEwLjMtOTQuNS0yNS44Yy0xMy40IDguNC0zMy43IDE5LjMtNTguMiAyNWMtMTcuMiA0LTM0LjQtNi43LTM4LjQtMjMuOXM2LjctMzQuNCAyMy45LTM4LjRjMTguMS00LjIgMzYuMi0xMy4zIDUwLjYtMjUuMmMxMS4xLTkuNSAyNy4zLTEwLjEgMzkuMi0xLjdsMCAwQzEzNi43IDIyOS4yIDE2NS4xIDI0MCAxOTIgMjQwYzI3LjUgMCA1NS0xMC42IDc3LjUtMjYuMWMxMS4xLTcuOSAyNS45LTcuOSAzNyAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXYXZlU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMkgzMjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNDE2aDk2VjI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMkg2MDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINTEyVjQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkgzMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjk2SDE5MlYyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJoOTZWNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdlaWdodEhhbmdpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDk2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTEyMi41IDMyYzMuNS0xMCA1LjUtMjAuOCA1LjUtMzJjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZjMCAxMS4yIDEuOSAyMiA1LjUgMzJIMTIwYy0yMiAwLTQxLjIgMTUtNDYuNiAzNi40bC03MiAyODhjLTMuNiAxNC4zLS40IDI5LjUgOC43IDQxLjJTMzMuMiA1MTIgNDggNTEySDQ2NGMxNC44IDAgMjguNy02LjggMzcuOC0xOC41czEyLjMtMjYuOCA4LjctNDEuMmwtNzItMjg4QzQzMy4yIDE0MyA0MTQgMTI4IDM5MiAxMjhIMzQ2LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdlaWdodFNjYWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAxNzZhMTI4IDEyOCAwIDEgMSAyNTYgMCAxMjggMTI4IDAgMSAxIC0yNTYgMHpNMzkxLjggNjRDMzU5LjUgMjQuOSAzMTAuNyAwIDI1NiAwUzE1Mi41IDI0LjkgMTIwLjIgNjRINjRDMjguNyA2NCAwIDkyLjcgMCAxMjhWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRIMzkxLjh6TTI5NiAyMjRjMC0xMC42LTQuMS0yMC4yLTEwLjktMjcuNGwzMy42LTc4LjNjMy41LTguMS0uMy0xNy41LTguNC0yMXMtMTcuNSAuMy0yMSA4LjRMMjU1LjcgMTg0Yy0yMiAuMS0zOS43IDE4LTM5LjcgNDBjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2hlYXRBd25DaXJjbGVFeGNsYW1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDUgNDFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEwzODMgOTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw4OC04OHpNMzA1LjUgMjcuM2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMMjcxLjUgMzguNmMtMzcuNSAzNy41LTM3LjUgOTguMyAwIDEzNS44bDEwLjQgMTAuNC0zMC41IDMwLjVjLTMuNC0yNy4zLTE1LjUtNTMuOC0zNi41LTc0LjhsLTExLjMtMTEuM2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBsLTExLjMgMTEuM2MtMzcuNSAzNy41LTM3LjUgOTguMyAwIDEzNS44bDEwLjQgMTAuNC0zMC41IDMwLjVjLTMuNC0yNy4zLTE1LjUtNTMuOC0zNi41LTc0LjhMMTAxLjggMjMxYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEw2Ny45IDI0Mi4zYy0zNy41IDM3LjUtMzcuNSA5OC4zIDAgMTM1LjhsMTAuNCAxMC40TDkuNCA0NTcuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2OC45LTY4LjkgMTIuMiAxMi4yYzM3LjUgMzcuNSA5OC4zIDM3LjUgMTM1LjggMGwxMS4zLTExLjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTExLjMtMTEuM2MtMjEuOC0yMS44LTQ5LjYtMzQuMS03OC4xLTM2LjlsMzEuOS0zMS45IDEyLjIgMTIuMmMyMi41IDIyLjUgNTMuMyAzMS41IDgyLjQgMjdjMC0xIDAtMi4xIDAtMy4xYzAtMzMuMSA5LjEtNjQuMSAyNS05MC42Yy0xNS41LTguNy0zMi41LTEzLjgtNDkuOC0xNS41bDMxLjktMzEuOSAxMi4yIDEyLjJjNiA2IDEyLjYgMTEuMSAxOS43IDE1LjJjMjcuNS0zNCA2Ny4zLTU3LjUgMTEyLjYtNjMuOGMtNC4xLTMuOC04LjQtNy4zLTEyLjktMTAuNUw1MDUgMTM3YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU5LjQgNTkuNGMtMjAuNi00LjQtNDItMy43LTYyLjMgMi4xYzYuMS0yMS4zIDYuNi00My44IDEuNC02NS4zTDQwOSA0MWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDMyOS4xIDUyLjljLTMuNy01LTcuOC05LjgtMTIuNC0xNC4zTDMwNS41IDI3LjN6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTk2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMC0xNDRjOC44IDAgMTYgNy4yIDE2IDE2djgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjI4OGMwLTguOCA3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdoZWF0QXduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNSA0MWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDM4MyA5NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDg4LTg4ek0zMDUuNSAyNy4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEwyNzEuNSAzOC42Yy0zNy41IDM3LjUtMzcuNSA5OC4zIDAgMTM1LjhsMTAuNCAxMC40LTMwLjUgMzAuNWMtMy40LTI3LjMtMTUuNS01My44LTM2LjUtNzQuOGwtMTEuMy0xMS4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMGwtMTEuMyAxMS4zYy0zNy41IDM3LjUtMzcuNSA5OC4zIDAgMTM1LjhsMTAuNCAxMC40LTMwLjUgMzAuNWMtMy40LTI3LjMtMTUuNS01My44LTM2LjUtNzQuOEwxMDEuOCAyMzFjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDY3LjkgMjQyLjNjLTM3LjUgMzcuNS0zNy41IDk4LjMgMCAxMzUuOGwxMC40IDEwLjRMOS40IDQ1Ny40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY4LjktNjguOSAxMi4yIDEyLjJjMzcuNSAzNy41IDk4LjMgMzcuNSAxMzUuOCAwbDExLjMtMTEuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtMTEuMy0xMS4zYy0yMS44LTIxLjgtNDkuNi0zNC4xLTc4LjEtMzYuOWwzMS45LTMxLjkgMTIuMiAxMi4yYzM3LjUgMzcuNSA5OC4zIDM3LjUgMTM1LjggMGwxMS4zLTExLjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTExLjMtMTEuM2MtMjEuOC0yMS44LTQ5LjYtMzQuMS03OC4xLTM2LjlsMzEuOS0zMS45IDEyLjIgMTIuMmMzNy41IDM3LjUgOTguMyAzNy41IDEzNS44IDBMNDg2LjUgMjMxYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42TDQ3NS4yIDE5N2MtNS4yLTUuMi0xMC42LTkuOC0xNi40LTEzLjlMNTA1IDEzN2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01OS40IDU5LjRjLTIwLjYtNC40LTQyLTMuNy02Mi4zIDIuMWM2LjEtMjEuMyA2LjYtNDMuOCAxLjQtNjUuM0w0MDkgNDFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEwzMjkuMSA1Mi45Yy0zLjctNS03LjgtOS44LTEyLjQtMTQuM0wzMDUuNSAyNy4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaGVlbGNoYWlyTW92ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMjA0LjUgMTIxLjNjLTUuNC0yLjUtMTEuNy0xLjktMTYuNCAxLjdsLTQwLjkgMzAuN2MtMTQuMSAxMC42LTM0LjIgNy43LTQ0LjgtNi40cy03LjctMzQuMiA2LjQtNDQuOGw0MC45LTMwLjdjMjMuNy0xNy44IDU1LjMtMjEgODIuMS04LjRsOTAuNCA0Mi41YzI5LjEgMTMuNyAzNi44IDUxLjYgMTUuMiA3NS41TDI5OS4xIDIyNGg5Ny40YzMwLjMgMCA1MyAyNy43IDQ3LjEgNTcuNEw0MTUuNCA0MjIuM2MtMy41IDE3LjMtMjAuMyAyOC42LTM3LjcgMjUuMXMtMjguNi0yMC4zLTI1LjEtMzcuN0wzNzcgMjg4SDMwNi43YzguNiAxOS42IDEzLjMgNDEuMiAxMy4zIDY0YzAgODguNC03MS42IDE2MC0xNjAgMTYwUzAgNDQwLjQgMCAzNTJzNzEuNi0xNjAgMTYwLTE2MGMxMS4xIDAgMjIgMS4xIDMyLjQgMy4zbDU0LjItNTQuMi00Mi4xLTE5Ljh6TTE2MCA0NDhhOTYgOTYgMCAxIDAgMC0xOTIgOTYgOTYgMCAxIDAgMCAxOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdoZWVsY2hhaXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMTIwLjUgMjQ3LjJjMTIuNC00LjcgMTguNy0xOC41IDE0LTMwLjlzLTE4LjUtMTguNy0zMC45LTE0QzQzLjEgMjI1LjEgMCAyODMuNSAwIDM1MmMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MGM2MS4yIDAgMTE0LjMtMzQuMyAxNDEuMi04NC43YzYuMi0xMS43IDEuOC0yNi4yLTkuOS0zMi41cy0yNi4yLTEuOC0zMi41IDkuOUMyNDAgNDQwIDIwMi44IDQ2NCAxNjAgNDY0Qzk4LjEgNDY0IDQ4IDQxMy45IDQ4IDM1MmMwLTQ3LjkgMzAuMS04OC44IDcyLjUtMTA0Ljh6TTI1OS44IDE3NmwtMS45LTkuN2MtNC41LTIyLjMtMjQtMzguMy00Ni44LTM4LjNjLTMwLjEgMC01Mi43IDI3LjUtNDYuOCA1N2wyMy4xIDExNS41YzYgMjkuOSAzMi4yIDUxLjQgNjIuOCA1MS40aDUuMWMuNCAwIC44IDAgMS4zIDBoOTQuMWM2LjcgMCAxMi42IDQuMSAxNSAxMC40TDQwMiA0NTkuMmM2IDE2LjEgMjMuOCAyNC42IDQwLjEgMTkuMWw0OC0xNmMxNi44LTUuNiAyNS44LTIzLjcgMjAuMi00MC41cy0yMy43LTI1LjgtNDAuNS0yMC4ybC0xOC43IDYuMi0yNS41LTY4Yy0xMS43LTMxLjItNDEuNi01MS45LTc0LjktNTEuOUgyODIuMmwtOS42LTQ4SDMzNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgyNTkuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2hpc2tleUdsYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDMyYy05LjMgMC0xOC4xIDQtMjQuMiAxMS4xUy0xIDU5LjQgLjMgNjguNmw1MCAzNDIuOWM1LjcgMzkuMyAzOS40IDY4LjUgNzkuMiA2OC41aDI1M2MzOS43IDAgNzMuNC0yOS4xIDc5LjItNjguNWw1MC0zNDIuOWMxLjMtOS4yLTEuNC0xOC41LTcuNS0yNS41UzQ4OS4zIDMyIDQ4MCAzMkgzMnpNODcuNyAyMjRMNjkgOTZINDQzTDQyNC4zIDIyNEg4Ny43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaWZpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0LjIgMjAyLjlDMTIzLjIgMTM2LjcgMjE2LjggOTYgMzIwIDk2czE5Ni44IDQwLjcgMjY1LjggMTA2LjljMTIuOCAxMi4yIDMzIDExLjggNDUuMi0uOXMxMS44LTMzLS45LTQ1LjJDNTQ5LjcgNzkuNSA0NDAuNCAzMiAzMjAgMzJTOTAuMyA3OS41IDkuOCAxNTYuN0MtMi45IDE2OS0zLjMgMTg5LjIgOC45IDIwMnMzMi41IDEzLjIgNDUuMiAuOXpNMzIwIDI1NmM1Ni44IDAgMTA4LjYgMjEuMSAxNDguMiA1NmMxMy4zIDExLjcgMzMuNSAxMC40IDQ1LjItMi44czEwLjQtMzMuNS0yLjgtNDUuMkM0NTkuOCAyMTkuMiAzOTMgMTkyIDMyMCAxOTJzLTEzOS44IDI3LjItMTkwLjUgNzJjLTEzLjMgMTEuNy0xNC41IDMxLjktMi44IDQ1LjJzMzEuOSAxNC41IDQ1LjIgMi44YzM5LjUtMzQuOSA5MS4zLTU2IDE0OC4yLTU2em02NCAxNjBhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkgzNTJjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZIMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptNjQgMzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMyYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0xMjggNTEyaDMyYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdpbmRvd01heGltaXplIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNOTYgOTZINDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaW5kb3dNaW5pbWl6ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaW5kb3dSZXN0b3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzMiA2NEgyMDhjLTguOCAwLTE2IDcuMi0xNiAxNlY5NkgxMjhWODBjMC00NC4yIDM1LjgtODAgODAtODBINDMyYzQ0LjIgMCA4MCAzNS44IDgwIDgwVjMwNGMwIDQ0LjItMzUuOCA4MC04MCA4MEg0MTZWMzIwaDE2YzguOCAwIDE2LTcuMiAxNi0xNlY4MGMwLTguOC03LjItMTYtMTYtMTZ6TTAgMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0SDMyMGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjE5MnptNjQgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJIMjg4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2luZUJvdHRsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTMuNCA5LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNjQgNjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNjLTExLjggMTEuOC0zMC43IDEyLjUtNDMuMiAxLjlsLTkuNSA5LjUtNDguOCA0OC44Yy05LjIgOS4yLTExLjUgMjIuOS04LjYgMzUuNmM5LjQgNDAuOS0xLjkgODUuNi0zMy44IDExNy41TDE5Ny4zIDQ5My4zYy0yNSAyNS02NS41IDI1LTkwLjUgMGwtODgtODhjLTI1LTI1LTI1LTY1LjUgMC05MC41TDE4MC4yIDE1My4zYzMxLjktMzEuOSA3Ni42LTQzLjEgMTE3LjUtMzMuOGMxMi42IDIuOSAyNi40IC41IDM1LjUtOC42bDQ4LjgtNDguOCA5LjUtOS41Yy0xMC42LTEyLjYtMTAtMzEuNCAxLjktNDMuMnpNOTkuMyAzNDcuM2w2NS40IDY1LjRjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsOTcuNC05Ny40YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC02NS40LTY1LjRjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDk5LjMgMzI0LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaW5lR2xhc3NFbXB0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzQ3LjQgMCAzMy41IDEyLjggMzIuMSAyOS4zbC0xNCAxNjguNGMtNiA3MiA0Mi41IDEzNS4yIDEwOS45IDE1MC42VjQ0OEg4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmg4MCA4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxOTJWMzQ4LjRjNjcuNC0xNS40IDExNS45LTc4LjYgMTA5LjktMTUwLjZsLTE0LTE2OC40QzI4Ni41IDEyLjggMjcyLjYgMCAyNTYgMEg2NHpNODEuOSAyMDMuMUw5My40IDY0SDIyNi42bDExLjYgMTM5LjFDMjQyIDI0OC44IDIwNS45IDI4OCAxNjAgMjg4cy04Mi0zOS4yLTc4LjEtODQuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2luZUdsYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyLjEgMjkuM0MzMy41IDEyLjggNDcuNCAwIDY0IDBIMjU2YzE2LjYgMCAzMC41IDEyLjggMzEuOSAyOS4zbDE0IDE2OC40YzYgNzItNDIuNSAxMzUuMi0xMDkuOSAxNTAuNlY0NDhoNDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMTYwIDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDQ4VjM0OC40QzYwLjYgMzMzIDEyLjEgMjY5LjggMTguMSAxOTcuOGwxNC0xNjguNHptNTYgOTguN0gyMzEuOWwtNS4zLTY0SDkzLjRsLTUuMyA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV29uU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02Mi40IDUzLjlDNTYuOCAzNy4xIDM4LjYgMjguMSAyMS45IDMzLjZTLTMuOSA1Ny40IDEuNiA3NC4xTDUxLjYgMjI0SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDcyLjlsNTYuNyAxNzAuMWM0LjUgMTMuNSAxNy40IDIyLjQgMzEuNiAyMS45czI2LjQtMTAuNCAyOS44LTI0LjJMMjMzIDI4OGg0NkwzMjEgNDU1LjhjMy40IDEzLjggMTUuNiAyMy43IDI5LjggMjQuMnMyNy4xLTguNCAzMS42LTIxLjlMNDM5LjEgMjg4SDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg0NjAuNGw1MC0xNDkuOWM1LjYtMTYuOC0zLjUtMzQuOS0yMC4yLTQwLjVzLTM0LjkgMy41LTQwLjUgMjAuMkwzOTIuOSAyMjRIMzI5TDI4NyA1Ni4yQzI4My41IDQyIDI3MC43IDMyIDI1NiAzMnMtMjcuNSAxMC0zMSAyNC4yTDE4MyAyMjRoLTY0TDYyLjQgNTMuOXptNzggMjM0LjFIMTY3bC0xMS40IDQ1LjZMMTQwLjQgMjg4ek0yNDkgMjI0bDctMjguMSA3IDI4LjFIMjQ5em05NiA2NGgyNi42bC0xNS4yIDQ1LjZMMzQ1IDI4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV29ybSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOTZjMC01MyA0My05NiA5Ni05NmgzOC40QzQzOS45IDAgNDgwIDQwLjEgNDgwIDg5LjZWMTc2djE2VjM3NmMwIDc1LjEtNjAuOSAxMzYtMTM2IDEzNnMtMTM2LTYwLjktMTM2LTEzNlYyOTZjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDBWNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4VjI5NmMwLTc1LjEgNjAuOS0xMzYgMTM2LTEzNnMxMzYgNjAuOSAxMzYgMTM2djgwYzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBWMTkySDM1MmMtNTMgMC05Ni00My05Ni05NnptMTQ0LThhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV3JlbmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiAzMjBjODguNCAwIDE2MC03MS42IDE2MC0xNjBjMC0xNS4zLTIuMi0zMC4xLTYuMi00NC4yYy0zLjEtMTAuOC0xNi40LTEzLjItMjQuMy01LjNsLTc2LjggNzYuOGMtMyAzLTcuMSA0LjctMTEuMyA0LjdIMzM2Yy04LjggMC0xNi03LjItMTYtMTZWMTE4LjZjMC00LjIgMS43LTguMyA0LjctMTEuM2w3Ni44LTc2LjhjNy45LTcuOSA1LjQtMjEuMi01LjMtMjQuM0MzODIuMSAyLjIgMzY3LjMgMCAzNTIgMEMyNjMuNiAwIDE5MiA3MS42IDE5MiAxNjBjMCAxOS4xIDMuNCAzNy41IDkuNSA1NC41TDE5LjkgMzk2LjFDNy4yIDQwOC44IDAgNDI2LjEgMCA0NDQuMUMwIDQ4MS42IDMwLjQgNTEyIDY3LjkgNTEyYzE4IDAgMzUuMy03LjIgNDgtMTkuOUwyOTcuNSAzMTAuNWMxNyA2LjIgMzUuNCA5LjUgNTQuNSA5LjV6TTgwIDQwOGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVhSYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMkg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJWNDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyVjk2QzE0LjMgOTYgMCA4MS43IDAgNjR6TTI1NiA5NmMtOC44IDAtMTYgNy4yLTE2IDE2djMySDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmg4MHY0OEgxMjhjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZIMjQwdjcwLjZMMTg5LjEgMzA3Yy01LjItMi0xMC42LTMtMTYuMi0zaC0yLjFjLTIzLjYgMC00Mi44IDE5LjItNDIuOCA0Mi44YzAgOS42IDMuMiAxOC45IDkuMSAyNi40bDE4LjIgMjMuMmM5LjcgMTIuNCAyNC42IDE5LjYgNDAuMyAxOS42SDMxNi40YzE1LjcgMCAzMC42LTcuMiA0MC4zLTE5LjZsMTguMi0yMy4yYzUuOS03LjUgOS4xLTE2LjggOS4xLTI2LjRjMC0yMy42LTE5LjItNDIuOC00Mi44LTQyLjhIMzM5Yy01LjUgMC0xMSAxLTE2LjIgM0wyNzIgMzI2LjZWMjU2SDM4NGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgyNzJWMTc2aDgwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDI3MlYxMTJjMC04LjgtNy4yLTE2LTE2LTE2ek0yMDggMzUyYTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnptODAgMTZhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzYuNiA4NC41YzExLjMtMTMuNiA5LjUtMzMuOC00LjEtNDUuMXMtMzMuOC05LjUtNDUuMSA0LjFMMTkyIDIwNiA1Ni42IDQzLjVDNDUuMyAyOS45IDI1LjEgMjguMSAxMS41IDM5LjRTLTMuOSA3MC45IDcuNCA4NC41TDE1MC4zIDI1NiA3LjQgNDI3LjVjLTExLjMgMTMuNi05LjUgMzMuOCA0LjEgNDUuMXMzMy44IDkuNSA0NS4xLTQuMUwxOTIgMzA2IDMyNy40IDQ2OC41YzExLjMgMTMuNiAzMS41IDE1LjQgNDUuMSA0LjFzMTUuNC0zMS41IDQuMS00NS4xTDIzMy43IDI1NiAzNzYuNiA4NC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFYbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDIuNiAxNTAuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwxOTIgMjEwLjcgODYuNiAxMDUuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMTQ2LjcgMjU2IDQxLjQgMzYxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTkyIDMwMS4zIDI5Ny40IDQwNi42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMjM3LjMgMjU2IDM0Mi42IDE1MC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFYbWFya3NMaW5lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZINjA4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyem0wIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg2MDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzJ6TTcgMTY3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw1NSA1NUw3IDMxMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU1LTU1IDU1IDU1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTUtNTUgNTUtNTVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTUgNTVMNDEgMTY3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHpNMjY1IDE2N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw1NSA1NS01NSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU1LTU1IDU1IDU1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTUtNTUgNTUtNTVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTUgNTUtNTUtNTV6TTQ1NSAxNjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDU1IDU1LTU1IDU1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNTUtNTUgNTUgNTVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01NS01NSA1NS01NWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01NSA1NS01NS01NWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTggNDUuNEM0Ny44IDMxIDI3LjggMjcuNyAxMy40IDM4Uy00LjMgNjguMiA2IDgyLjZMMTYwIDI5OC4zVjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjI5OC4zTDM3OCA4Mi42YzEwLjMtMTQuNCA2LjktMzQuNC03LjQtNDQuNlMzMzYuMiAzMSAzMjYgNDUuNEwxOTIgMjMyLjkgNTggNDUuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWWVuU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01OC42IDQ2LjJDNDguOCAzMS41IDI5IDI3LjYgMTQuMyAzNy40Uy00LjQgNjcgNS40IDgxLjdMMTAwLjIgMjI0SDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDgwdjMySDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDgwdjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzg0aDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDE5MlYyODhoODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMjE5LjhMMzE0LjYgODEuN2M5LjgtMTQuNyA1LjgtMzQuNi04LjktNDQuNHMtMzQuNi01LjgtNDQuNCA4LjlMMTYwIDE5OC4zIDU4LjYgNDYuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWWluWWFuZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNjRjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZzLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2QzE1MCA0NDggNjQgMzYyIDY0IDI1NlMxNTAgNjQgMjU2IDY0em0wIDQ0OEEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6bTMyLTM1MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0yMjQgMzUyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVogKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMkgzNTJjMTIuNCAwIDIzLjcgNy4yIDI5IDE4LjRzMy42IDI0LjUtNC40IDM0LjFMMTAwLjMgNDE2SDM1MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMmMtMTIuNCAwLTIzLjctNy4yLTI5LTE4LjRzLTMuNi0yNC41IDQuNC0zNC4xTDI4My43IDk2SDMyQzE0LjMgOTYgMCA4MS43IDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0FkZHJlc3NCb29rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCA0OGM4LjggMCAxNiA3LjIgMTYgMTZWNDQ4YzAgOC44LTcuMiAxNi0xNiAxNkg5NmMtOC44IDAtMTYtNy4yLTE2LTE2VjY0YzAtOC44IDcuMi0xNiAxNi0xNkgzODR6TTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY2NGMwLTM1LjMtMjguNy02NC02NC02NEg5NnpNMjQwIDI1NmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptLTMyIDMyYy00NC4yIDAtODAgMzUuOC04MCA4MGMwIDguOCA3LjIgMTYgMTYgMTZIMzM2YzguOCAwIDE2LTcuMiAxNi0xNmMwLTQ0LjItMzUuOC04MC04MC04MEgyMDh6TTUxMiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnY2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2Vjgwek00OTYgMTkyYy04LjggMC0xNiA3LjItMTYgMTZ2NjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYyMDhjMC04LjgtNy4yLTE2LTE2LTE2em0xNiAxNDRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2NjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYzMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0FkZHJlc3NDYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiA4MGM4LjggMCAxNiA3LjIgMTYgMTZWNDE2YzAgOC44LTcuMiAxNi0xNiAxNkg2NGMtOC44IDAtMTYtNy4yLTE2LTE2Vjk2YzAtOC44IDcuMi0xNiAxNi0xNkg1MTJ6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNMjA4IDI1NmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptLTMyIDMyYy00NC4yIDAtODAgMzUuOC04MCA4MGMwIDguOCA3LjIgMTYgMTYgMTZIMzA0YzguOCAwIDE2LTcuMiAxNi0xNmMwLTQ0LjItMzUuOC04MC04MC04MEgxNzZ6TTM3NiAxNDRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoODBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMzc2em0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDgwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDM3NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQmVsbFNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMNTQyLjYgNDAwYzIuNy03LjggMS4zLTE2LjUtMy45LTIzbC0xNC45LTE4LjZDNDk1LjUgMzIyLjkgNDgwIDI3OC44IDQ4MCAyMzMuNFYyMDhjMC03Ny40LTU1LTE0Mi0xMjgtMTU2LjhWMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWNTEuMmMtNDIuNiA4LjYtNzkgMzQuMi0xMDIgNjkuM0wzOC44IDUuMXpNMjI0IDE1MC4zQzI0My42IDExNy43IDI3OS4zIDk2IDMyMCA5NmM2MS45IDAgMTEyIDUwLjEgMTEyIDExMnYyNS40YzAgMzIuNyA2LjQgNjQuOCAxOC43IDk0LjVMMjI0IDE1MC4zek00MDYuMiA0MTZsLTYwLjktNDhIMTY4LjNjMjEuMi0zMi44IDM0LjQtNzAuMyAzOC40LTEwOS4xTDE2MCAyMjIuMXYxMS40YzAgNDUuNC0xNS41IDg5LjUtNDMuOCAxMjQuOUwxMDEuMyAzNzdjLTUuOCA3LjItNi45IDE3LjEtMi45IDI1LjRzMTIuNCAxMy42IDIxLjYgMTMuNkg0MDYuMnpNMzg0IDQ0OEgzMjAgMjU2YzAgMTcgNi43IDMzLjMgMTguNyA0NS4zczI4LjMgMTguNyA0NS4zIDE4LjdzMzMuMy02LjcgNDUuMy0xOC43czE4LjctMjguMyAxOC43LTQ1LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0JlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjUxLjJDMTE5IDY2IDY0IDEzMC42IDY0IDIwOHYyNS40YzAgNDUuNC0xNS41IDg5LjUtNDMuOCAxMjQuOUw1LjMgMzc3Yy01LjggNy4yLTYuOSAxNy4xLTIuOSAyNS40UzE0LjggNDE2IDI0IDQxNkg0MjRjOS4yIDAgMTcuNi01LjMgMjEuNi0xMy42czIuOS0xOC4yLTIuOS0yNS40bC0xNC45LTE4LjZDMzk5LjUgMzIyLjkgMzg0IDI3OC44IDM4NCAyMzMuNFYyMDhjMC03Ny40LTU1LTE0Mi0xMjgtMTU2LjhWMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6bTAgOTZjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJ2MjUuNGMwIDQ3LjkgMTMuOSA5NC42IDM5LjcgMTM0LjZINzIuM0M5OC4xIDMyOCAxMTIgMjgxLjMgMTEyIDIzMy40VjIwOGMwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnptNjQgMzUySDIyNCAxNjBjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNzMjguMyAxOC43IDQ1LjMgMTguN3MzMy4zLTYuNyA0NS4zLTE4LjdzMTguNy0yOC4zIDE4LjctNDUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQm9va21hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBsMCA0OFY0NDEuNGwxMzAuMS05Mi45YzguMy02IDE5LjYtNiAyNy45IDBMMzM2IDQ0MS40VjQ4SDQ4VjBIMzM2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4VjQ4OGMwIDktNSAxNy4yLTEzIDIxLjNzLTE3LjYgMy40LTI0LjktMS44TDE5MiAzOTcuNSAzNy45IDUwNy41Yy03LjMgNS4yLTE2LjkgNS45LTI0LjkgMS44UzAgNDk3IDAgNDg4VjQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdCdWlsZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA0OGMtOC44IDAtMTYgNy4yLTE2IDE2VjQ0OGMwIDguOCA3LjIgMTYgMTYgMTZoODBWNDAwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDh2NjRoODBjOC44IDAgMTYtNy4yIDE2LTE2VjY0YzAtOC44LTcuMi0xNi0xNi0xNkg2NHpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBIMzIwYzM1LjMgMCA2NCAyOC43IDY0IDY0VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNjR6bTg4IDQwYzAtOC44IDcuMi0xNiAxNi0xNmg0OGM4LjggMCAxNiA3LjIgMTYgMTZ2NDhjMCA4LjgtNy4yIDE2LTE2IDE2SDEwNGMtOC44IDAtMTYtNy4yLTE2LTE2VjEwNHpNMjMyIDg4aDQ4YzguOCAwIDE2IDcuMiAxNiAxNnY0OGMwIDguOC03LjIgMTYtMTYgMTZIMjMyYy04LjggMC0xNi03LjItMTYtMTZWMTA0YzAtOC44IDcuMi0xNiAxNi0xNnpNODggMjMyYzAtOC44IDcuMi0xNiAxNi0xNmg0OGM4LjggMCAxNiA3LjIgMTYgMTZ2NDhjMCA4LjgtNy4yIDE2LTE2IDE2SDEwNGMtOC44IDAtMTYtNy4yLTE2LTE2VjIzMnptMTQ0LTE2aDQ4YzguOCAwIDE2IDcuMiAxNiAxNnY0OGMwIDguOC03LjIgMTYtMTYgMTZIMjMyYy04LjggMC0xNi03LjItMTYtMTZWMjMyYzAtOC44IDcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2FsZW5kYXJDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNFY2NEgyOTZWMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNFY2NGg0MGMzNS4zIDAgNjQgMjguNyA2NCA2NHYxNiA0OFY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjE5MiAxNDQgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0aDQwVjI0YzAtMTMuMyAxMC43LTI0IDI0LTI0ek00MDAgMTkySDQ4VjQ0OGMwIDguOCA3LjIgMTYgMTYgMTZIMzg0YzguOCAwIDE2LTcuMiAxNi0xNlYxOTJ6TTMyOSAyOTdMMjE3IDQwOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNDcgNDcgOTUtOTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDYWxlbmRhckRheXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUyIDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0VjY0SDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4djE2IDQ4VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTkyIDE0NCAxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRIMzQ0VjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0VjY0SDE1MlYyNHpNNDggMTkyaDgwdjU2SDQ4VjE5MnptMCAxMDRoODB2NjRINDhWMjk2em0xMjggMGg5NnY2NEgxNzZWMjk2em0xNDQgMGg4MHY2NEgzMjBWMjk2em04MC00OEgzMjBWMTkyaDgwdjU2em0wIDE2MHY0MGMwIDguOC03LjIgMTYtMTYgMTZIMzIwVjQwOGg4MHptLTEyOCAwdjU2SDE3NlY0MDhoOTZ6bS0xNDQgMHY1Nkg2NGMtOC44IDAtMTYtNy4yLTE2LTE2VjQwOGg4MHpNMjcyIDI0OEgxNzZWMTkyaDk2djU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDYWxlbmRhck1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0VjY0SDI5NlYyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0VjY0aDQwYzM1LjMgMCA2NCAyOC43IDY0IDY0djE2IDQ4VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTkyIDE0NCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRoNDBWMjRjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTQwMCAxOTJINDhWNDQ4YzAgOC44IDcuMiAxNiAxNiAxNkgzODRjOC44IDAgMTYtNy4yIDE2LTE2VjE5MnpNMjk2IDM1MkgxNTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRIMjk2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDYWxlbmRhclBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUyIDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0VjY0SDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4djE2IDQ4VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTkyIDE0NCAxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRIMzQ0VjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0VjY0SDE1MlYyNHpNNDggMTkySDQwMFY0NDhjMCA4LjgtNy4yIDE2LTE2IDE2SDY0Yy04LjggMC0xNi03LjItMTYtMTZWMTkyem0xNzYgNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0djQ4SDE1MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGg0OHY0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjM1Mmg0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgyNDhWMjU2YzAtMTMuMy0xMC43LTI0LTI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDYWxlbmRhclhtYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0VjY0SDI5NlYyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0VjY0aDQwYzM1LjMgMCA2NCAyOC43IDY0IDY0djE2IDQ4VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTkyIDE0NCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRoNDBWMjRjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTQwMCAxOTJINDhWNDQ4YzAgOC44IDcuMiAxNiAxNiAxNkgzODRjOC44IDAgMTYtNy4yIDE2LTE2VjE5MnptLTk1IDg5bC00NyA0NyA0NyA0N2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Ny00Ny00NyA0N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0Ny00Ny00Ny00N2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQ3IDQ3IDQ3LTQ3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2FsZW5kYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUyIDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0VjY0SDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4djE2IDQ4VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTkyIDE0NCAxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRIMzQ0VjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0VjY0SDE1MlYyNHpNNDggMTkySDQwMFY0NDhjMCA4LjgtNy4yIDE2LTE2IDE2SDY0Yy04LjggMC0xNi03LjItMTYtMTZWMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDaGFydEJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNCAzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNFY0MDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRINDg4YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDcyYy0zOS44IDAtNzItMzIuMi03Mi03MlY1NkMwIDQyLjcgMTAuNyAzMiAyNCAzMnpNMTI4IDEzNmMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyMDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjA4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0yNCA3MkgyOTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMTUyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0wIDk2SDQyNGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgxNTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NoZXNzQmlzaG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwNCAwQzkwLjcgMCA4MCAxMC43IDgwIDI0YzAgMTEuMiA3LjYgMjAuNiAxOCAyMy4yYy03LjggOC0xNi4xIDE3LTI0LjQgMjdDMzguMiAxMTYuNyAwIDE3OC44IDAgMjUwLjljMCA0NC44IDI0LjYgNzIuMiA0OCA4Ny44VjM1Mkg5NlYzMjVjMC05LTUtMTcuMi0xMy0yMS4zYy0xOC05LjMtMzUtMjQuNy0zNS01Mi43YzAtNTUuNSAyOS44LTEwNi44IDYyLjQtMTQ1LjljMTYtMTkuMiAzMi4xLTM0LjggNDQuMi00NS41YzEuOS0xLjcgMy43LTMuMiA1LjMtNC42YzEuNyAxLjQgMy40IDMgNS4zIDQuNmMxMi4xIDEwLjcgMjguMiAyNi4zIDQ0LjIgNDUuNWM1LjMgNi4zIDEwLjUgMTMgMTUuNSAyMEwxNTkgMTkxYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNTcuOC01Ny44YzEyLjggMjUuOSAyMS4yIDU0LjMgMjEuMiA4My44YzAgMjgtMTcgNDMuNC0zNSA1Mi43Yy04IDQuMS0xMyAxMi4zLTEzIDIxLjN2MjdoNDhWMzM4LjdjMjMuNC0xNS42IDQ4LTQyLjkgNDgtODcuOGMwLTcyLjEtMzguMi0xMzQuMi03My42LTE3Ni43Yy04LjMtOS45LTE2LjYtMTktMjQuNC0yN2MxMC4zLTIuNyAxOC0xMi4xIDE4LTIzLjJjMC0xMy4zLTEwLjctMjQtMjQtMjRIMTYwIDEwNHpNNTIuNyA0NjRsMTYuNi0zMkgyNTAuOGwxNi42IDMySDUyLjd6bTIwNy45LTgwSDU5LjVjLTEyIDAtMjIuOSA2LjctMjguNCAxNy4zTDQuNiA0NTIuNWMtMyA1LjgtNC42IDEyLjItNC42IDE4LjdDMCA0OTMuOCAxOC4yIDUxMiA0MC44IDUxMkgyNzkuMmMyMi41IDAgNDAuOC0xOC4yIDQwLjgtNDAuOGMwLTYuNS0xLjYtMTIuOS00LjYtMTguN2wtMjYuNS01MS4yYy01LjUtMTAuNi0xNi41LTE3LjMtMjguNC0xNy4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDaGVzc0tpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0VjU2SDE2OGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGgzMnY0MEg1OS42QzI2LjcgMTQ0IDAgMTcwLjcgMCAyMDMuNmMwIDguMiAxLjcgMTYuMyA0LjkgMjMuOEw1OS4xIDM1Mmg1Mi4zTDQ5IDIwOC4yYy0uNi0xLjUtMS0zLTEtNC42YzAtNi40IDUuMi0xMS42IDExLjYtMTEuNkgyMjQgMzg4LjRjNi40IDAgMTEuNiA1LjIgMTEuNiAxMS42YzAgMS42LS4zIDMuMi0xIDQuNkwzMzYuNSAzNTJoNTIuM2w1NC4yLTEyNC42YzMuMy03LjUgNC45LTE1LjYgNC45LTIzLjhjMC0zMi45LTI2LjctNTkuNi01OS42LTU5LjZIMjQ4VjEwNGgzMmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgyNDhWMjR6TTEwMS4yIDQzMkgzNDYuOGwxNi42IDMySDg0LjdsMTYuNi0zMnptMjgzLjctMzAuN2MtNS41LTEwLjYtMTYuNS0xNy4zLTI4LjQtMTcuM0g5MS41Yy0xMiAwLTIyLjkgNi43LTI4LjQgMTcuM0wzNi42IDQ1Mi41Yy0zIDUuOC00LjYgMTIuMi00LjYgMTguN0MzMiA0OTMuOCA1MC4yIDUxMiA3Mi44IDUxMkgzNzUuMmMyMi41IDAgNDAuOC0xOC4yIDQwLjgtNDAuOGMwLTYuNS0xLjYtMTIuOS00LjYtMTguN2wtMjYuNS01MS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDaGVzc0tuaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjYuNiA0OEgxMTcuM2wxNy4xIDEyLjhjNiA0LjUgOS42IDExLjYgOS42IDE5LjJzLTMuNiAxNC43LTkuNiAxOS4ybC02LjUgNC45Yy0xMCA3LjUtMTYgMTkuMy0xNiAzMS45bC0uMyA5MWMwIDEwLjIgNC45IDE5LjkgMTMuMiAyNS44bDEuOSAxLjNjOS45IDcuMSAyMy4zIDcgMzMuMi0uMWw0OS45LTM2LjNjMTAuNy03LjggMjUuNy01LjQgMzMuNSA1LjNzNS40IDI1LjctNS4zIDMzLjVsLTQ5LjkgMzYuMy01My44IDM5LjFjLTcuMyA1LjMtMTMgMTIuMi0xNi45IDIwLjFINjYuOGM1LjMtMjIuMSAxNy44LTQxLjkgMzUuOS01Ni4zYy0xLjMtLjgtMi42LTEuNy0zLjgtMi42TDk3IDI5MS44Yy0yMS0xNS0zMy40LTM5LjItMzMuMy02NWwuMy05MWMuMS0xOS44IDYuNy0zOC43IDE4LjYtNTMuOWwtLjQtLjNDNzAuNyA3MyA2NCA1OS42IDY0IDQ1LjNDNjQgMjAuMyA4NC4zIDAgMTA5LjMgMEgyMjYuNkMzMzEuMiAwIDQxNiA4NC44IDQxNiAxODkuNGMwIDExLjEtMSAyMi4yLTIuOSAzMy4yTDM5MC4xIDM1MkgzNDEuM2wyNC41LTEzNy44YzEuNS04LjIgMi4yLTE2LjUgMi4yLTI0LjhDMzY4IDExMS4zIDMwNC43IDQ4IDIyNi42IDQ4ek04NS4yIDQzMkw2OC43IDQ2NEgzNzkuM2wtMTYuNi0zMkg4NS4yem0zMTUuNy0zMC43bDI2LjUgNTEuMmMzIDUuOCA0LjYgMTIuMiA0LjYgMTguN2MwIDIyLjUtMTguMiA0MC44LTQwLjggNDAuOEg1Ni44QzM0LjIgNTEyIDE2IDQ5My44IDE2IDQ3MS4yYzAtNi41IDEuNi0xMi45IDQuNi0xOC43bDI2LjUtNTEuMkM1Mi41IDM5MC43IDYzLjUgMzg0IDc1LjUgMzg0aDI5N2MxMiAwIDIyLjkgNi43IDI4LjQgMTcuM3pNMTcyIDEyOGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NoZXNzUGF3biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzIgMTUyQTcyIDcyIDAgMSAwIDg4IDE1MmE3MiA3MiAwIDEgMCAxNDQgMHptMjQgMTIwSDI0My40bDEwLjcgODBIMjA1LjdMMTk1IDI3MkgxNjAgMTI1bC0xMC43IDgwSDY1LjlsMTAuNy04MEg2NGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMtMTUuMS0yMC4xLTI0LTQ1LTI0LTcyQzQwIDg1LjcgOTMuNyAzMiAxNjAgMzJzMTIwIDUzLjcgMTIwIDEyMGMwIDI3LTguOSA1MS45LTI0IDcyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0ek01Mi43IDQ2NEgyNjcuM2wtMTYuNi0zMkg2OS4yTDUyLjcgNDY0em0yMDcuOS04MGMxMiAwIDIyLjkgNi43IDI4LjQgMTcuM2wyNi41IDUxLjJjMyA1LjggNC42IDEyLjIgNC42IDE4LjdjMCAyMi41LTE4LjIgNDAuOC00MC44IDQwLjhINDAuOEMxOC4yIDUxMiAwIDQ5My44IDAgNDcxLjJjMC02LjUgMS42LTEyLjkgNC42LTE4LjdsMjYuNS01MS4yQzM2LjUgMzkwLjcgNDcuNSAzODQgNTkuNSAzODRoMjAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDaGVzc1F1ZWVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS05NS4yLThjLTE4LjEgMC0zMS4zIDEyLjgtMzUuNiAyNi45Yy04IDI2LjItMzIuNCA0NS4yLTYxLjIgNDUuMmMtMTAgMC0xOS40LTIuMy0yNy43LTYuM2MtNy42LTMuNy0xNi43LTMuMy0yNCAxLjJDLjcgMTYyLjEtMy4xIDE3Ny4xIDMuNyAxODguOUw5Ny42IDM1MkgxNTNsLTgzLTE0NC4xYzQwLjUtMi4yIDc1LjMtMjUuOSA5My4xLTU5LjhjMjIgMjYuOCA1NS40IDQzLjkgOTIuOCA0My45czcwLjgtMTcuMSA5Mi44LTQzLjljMTcuOCAzNCA1Mi42IDU3LjcgOTMuMSA1OS44TDM1OSAzNTJoNTUuNGw5My45LTE2My4xYzYuOC0xMS43IDMtMjYuNy04LjYtMzMuOGMtNy4zLTQuNS0xNi40LTQuOS0yNC0xLjJjLTguNCA0LTE3LjcgNi4zLTI3LjcgNi4zYy0yOC44IDAtNTMuMi0xOS02MS4yLTQ1LjJDMzgyLjUgMTAwLjggMzY5LjMgODggMzUxLjIgODhjLTE0LjUgMC0yNi4zIDguNS0zMi40IDE5LjNjLTEyLjQgMjItMzUuOSAzNi43LTYyLjggMzYuN3MtNTAuNC0xNC44LTYyLjgtMzYuN0MxODcuMSA5Ni41IDE3NS40IDg4IDE2MC44IDg4ek0xMzMuMiA0MzJIMzc4LjhsMTYuNiAzMkgxMTYuN2wxNi42LTMyem0yODMuNy0zMC43Yy01LjUtMTAuNi0xNi41LTE3LjMtMjguNC0xNy4zaC0yNjVjLTEyIDAtMjIuOSA2LjctMjguNCAxNy4zTDY4LjYgNDUyLjVjLTMgNS44LTQuNiAxMi4yLTQuNiAxOC43YzAgMjIuNSAxOC4yIDQwLjggNDAuOCA0MC44SDQwNy4yYzIyLjUgMCA0MC44LTE4LjIgNDAuOC00MC44YzAtNi41LTEuNi0xMi45LTQuNi0xOC43bC0yNi41LTUxLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NoZXNzUm9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04MCA4MFYxOTJjMCAyLjUgMS4yIDQuOSAzLjIgNi40bDUxLjIgMzguNGM2LjggNS4xIDEwLjQgMTMuNCA5LjUgMjEuOUwxMzMuNSAzNTJIODUuMmw5LjQtODVMNTQuNCAyMzYuOEM0MC4zIDIyNi4yIDMyIDIwOS42IDMyIDE5MlY3MmMwLTIyLjEgMTcuOS00MCA0MC00MEgzNzZjMjIuMSAwIDQwIDE3LjkgNDAgNDBWMTkyYzAgMTcuNi04LjMgMzQuMi0yMi40IDQ0LjhMMzUzLjQgMjY3bDkuNCA4NUgzMTQuNWwtMTAuNC05My4zYy0uOS04LjQgMi43LTE2LjggOS41LTIxLjlsNTEuMi0zOC40YzItMS41IDMuMi0zLjkgMy4yLTYuNFY4MEgzMDR2MjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWODBIMTkydjI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjgwSDgwem00LjcgMzg0SDM2My4zbC0xNi42LTMySDEwMS4yTDg0LjcgNDY0em0yNzEuOS04MGMxMiAwIDIyLjkgNi43IDI4LjQgMTcuM2wyNi41IDUxLjJjMyA1LjggNC42IDEyLjIgNC42IDE4LjdjMCAyMi41LTE4LjIgNDAuOC00MC44IDQwLjhINzIuOEM1MC4yIDUxMiAzMiA0OTMuOCAzMiA0NzEuMmMwLTYuNSAxLjYtMTIuOSA0LjYtMTguN2wyNi41LTUxLjJDNjguNSAzOTAuNyA3OS41IDM4NCA5MS41IDM4NGgyNjV6TTIwOCAyODhjLTguOCAwLTE2LTcuMi0xNi0xNlYyMjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnY0OGMwIDguOC03LjIgMTYtMTYgMTZIMjA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDaXJjbGVDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NEEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM2OSAyMDljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMTExIDExMS00Ny00N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw2NCA2NGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMEwzNjkgMjA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDaXJjbGVEb3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTI1Ni05NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2lyY2xlRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNDY0YTIwOCAyMDggMCAxIDEgMC00MTYgMjA4IDIwOCAwIDEgMSAwIDQxNnpNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwek0zNzYuOSAyOTQuNmM0LjUtNC4yIDcuMS0xMC4xIDcuMS0xNi4zYzAtMTIuMy0xMC0yMi4zLTIyLjMtMjIuM0gzMDRWMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY5NkgxNTAuM0MxMzggMjU2IDEyOCAyNjYgMTI4IDI3OC4zYzAgNi4yIDIuNiAxMi4xIDcuMSAxNi4zbDEwNy4xIDk5LjljMy44IDMuNSA4LjcgNS41IDEzLjggNS41czEwLjEtMiAxMy44LTUuNWwxMDcuMS05OS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDaXJjbGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDI1NmEyMDggMjA4IDAgMSAxIDQxNiAwQTIwOCAyMDggMCAxIDEgNDggMjU2em00NjQgMEEyNTYgMjU2IDAgMSAwIDAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDB6TTIxNy40IDM3Ni45YzQuMiA0LjUgMTAuMSA3LjEgMTYuMyA3LjFjMTIuMyAwIDIyLjMtMTAgMjIuMy0yMi4zVjMwNGg5NmMxNy43IDAgMzItMTQuMyAzMi0zMlYyNDBjMC0xNy43LTE0LjMtMzItMzItMzJIMjU2VjE1MC4zYzAtMTIuMy0xMC0yMi4zLTIyLjMtMjIuM2MtNi4yIDAtMTIuMSAyLjYtMTYuMyA3LjFMMTE3LjUgMjQyLjJjLTMuNSAzLjgtNS41IDguNy01LjUgMTMuOHMyIDEwLjEgNS41IDEzLjhsOTkuOSAxMDcuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2lyY2xlUGF1c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTIyNC03MlYzMjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMTg0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6bTExMiAwVjMyOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYxODRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2lyY2xlUGxheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2QTIwOCAyMDggMCAxIDAgNDggMjU2YTIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpNMTg4LjMgMTQ3LjFjNy42LTQuMiAxNi44LTQuMSAyNC4zIC41bDE0NCA4OGM3LjEgNC40IDExLjUgMTIuMSAxMS41IDIwLjVzLTQuNCAxNi4xLTExLjUgMjAuNWwtMTQ0IDg4Yy03LjQgNC41LTE2LjcgNC43LTI0LjMgLjVzLTEyLjMtMTIuMi0xMi4zLTIwLjlWMTY4YzAtOC43IDQuNy0xNi43IDEyLjMtMjAuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2lyY2xlUXVlc3Rpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTE2OS44LTkwLjdjNy45LTIyLjMgMjkuMS0zNy4zIDUyLjgtMzcuM2g1OC4zYzM0LjkgMCA2My4xIDI4LjMgNjMuMSA2My4xYzAgMjIuNi0xMi4xIDQzLjUtMzEuNyA1NC44TDI4MCAyNjQuNGMtLjIgMTMtMTAuOSAyMy42LTI0IDIzLjZjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjI1MC41YzAtOC42IDQuNi0xNi41IDEyLjEtMjAuOGw0NC4zLTI1LjRjNC43LTIuNyA3LjYtNy43IDcuNi0xMy4xYzAtOC40LTYuOC0xNS4xLTE1LjEtMTUuMUgyMjIuNmMtMy40IDAtNi40IDIuMS03LjUgNS4zbC0uNCAxLjJjLTQuNCAxMi41LTE4LjIgMTktMzAuNiAxNC42cy0xOS0xOC4yLTE0LjYtMzAuNmwuNC0xLjJ6TTIyNCAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2lyY2xlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAxIDQ4IDI1NmEyMDggMjA4IDAgMSAxIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwQTI1NiAyNTYgMCAxIDAgMCAyNTZ6TTI5NC42IDEzNS4xYy00LjItNC41LTEwLjEtNy4xLTE2LjMtNy4xQzI2NiAxMjggMjU2IDEzOCAyNTYgMTUwLjNWMjA4SDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoOTZ2NTcuN2MwIDEyLjMgMTAgMjIuMyAyMi4zIDIyLjNjNi4yIDAgMTIuMS0yLjYgMTYuMy03LjFsOTkuOS0xMDcuMWMzLjUtMy44IDUuNS04LjcgNS41LTEzLjhzLTItMTAuMS01LjUtMTMuOEwyOTQuNiAxMzUuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2lyY2xlU3RvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2QTIwOCAyMDggMCAxIDAgNDggMjU2YTIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMTkyLTk2SDMyMGMxNy43IDAgMzIgMTQuMyAzMiAzMlYzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlYxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NpcmNsZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0QTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTM1LjEgMjE3LjRjLTQuNSA0LjItNy4xIDEwLjEtNy4xIDE2LjNjMCAxMi4zIDEwIDIyLjMgMjIuMyAyMi4zSDIwOHY5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYyNTZoNTcuN2MxMi4zIDAgMjIuMy0xMCAyMi4zLTIyLjNjMC02LjItMi42LTEyLjEtNy4xLTE2LjNMMjY5LjggMTE3LjVjLTMuOC0zLjUtOC43LTUuNS0xMy44LTUuNXMtMTAuMSAyLTEzLjggNS41TDEzNS4xIDIxNy40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDaXJjbGVVc2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwNi41IDM5OS42QzM4Ny40IDM1Mi45IDM0MS41IDMyMCAyODggMzIwSDIyNGMtNTMuNSAwLTk5LjQgMzIuOS0xMTguNSA3OS42QzY5LjkgMzYyLjIgNDggMzExLjcgNDggMjU2QzQ4IDE0MS4xIDE0MS4xIDQ4IDI1NiA0OHMyMDggOTMuMSAyMDggMjA4YzAgNTUuNy0yMS45IDEwNi4yLTU3LjUgMTQzLjZ6bS00MC4xIDMyLjdDMzM0LjQgNDUyLjQgMjk2LjYgNDY0IDI1NiA0NjRzLTc4LjQtMTEuNi0xMTAuNS0zMS43YzcuMy0zNi43IDM5LjctNjQuMyA3OC41LTY0LjNoNjRjMzguOCAwIDcxLjIgMjcuNiA3OC41IDY0LjN6TTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTI3MmE0MCA0MCAwIDEgMSAwLTgwIDQwIDQwIDAgMSAxIDAgODB6bS04OC00MGE4OCA4OCAwIDEgMCAxNzYgMCA4OCA4OCAwIDEgMCAtMTc2IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NpcmNsZVhtYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0QTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTc1IDE3NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNDcgNDctNDcgNDdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw0Ny00NyA0NyA0N2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQ3LTQ3IDQ3LTQ3YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTQ3IDQ3LTQ3LTQ3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMCA0OCAyNTZhMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDbGlwYm9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjgwIDY0aDQwYzM1LjMgMCA2NCAyOC43IDY0IDY0VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0aDQwIDkuNkMxMjEgMjcuNSAxNTMuMyAwIDE5MiAwczcxIDI3LjUgNzguNCA2NEgyODB6TTY0IDExMmMtOC44IDAtMTYgNy4yLTE2IDE2VjQ0OGMwIDguOCA3LjIgMTYgMTYgMTZIMzIwYzguOCAwIDE2LTcuMiAxNi0xNlYxMjhjMC04LjgtNy4yLTE2LTE2LTE2SDMwNHYyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNEgxOTIgMTA0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFYxMTJINjR6bTEyOC04YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2xvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAxIDQ4IDI1NmEyMDggMjA4IDAgMSAxIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwQTI1NiAyNTYgMCAxIDAgMCAyNTZ6TTIzMiAxMjBWMjU2YzAgOCA0IDE1LjUgMTAuNyAyMGw5NiA2NGMxMSA3LjQgMjUuOSA0LjQgMzMuMy02LjdzNC40LTI1LjktNi43LTMzLjNMMjgwIDI0My4yVjEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2xvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgNDY0SDI4OGM4LjggMCAxNi03LjIgMTYtMTZWMzg0aDQ4djY0YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjRoNjR2NDhINjRjLTguOCAwLTE2IDcuMi0xNiAxNlY0NDhjMCA4LjggNy4yIDE2IDE2IDE2ek0yMjQgMzA0SDQ0OGM4LjggMCAxNi03LjIgMTYtMTZWNjRjMC04LjgtNy4yLTE2LTE2LTE2SDIyNGMtOC44IDAtMTYgNy4yLTE2IDE2VjI4OGMwIDguOCA3LjIgMTYgMTYgMTZ6bS02NC0xNlY2NGMwLTM1LjMgMjguNy02NCA2NC02NEg0NDhjMzUuMyAwIDY0IDI4LjcgNjQgNjRWMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0SDIyNGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0Nsb3NlZENhcHRpb25pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDgwYzguOCAwIDE2IDcuMiAxNiAxNlY0MTZjMCA4LjgtNy4yIDE2LTE2IDE2SDY0Yy04LjggMC0xNi03LjItMTYtMTZWOTZjMC04LjggNy4yLTE2IDE2LTE2SDUxMnpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRINTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek0yMDAgMjA4YzE0LjIgMCAyNyA2LjEgMzUuOCAxNmM4LjggOS45IDI0IDEwLjcgMzMuOSAxLjlzMTAuNy0yNCAxLjktMzMuOWMtMTcuNS0xOS42LTQzLjEtMzItNzEuNS0zMmMtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmMyOC40IDAgNTQtMTIuNCA3MS41LTMyYzguOC05LjkgOC0yNS0xLjktMzMuOXMtMjUtOC0zMy45IDEuOWMtOC44IDkuOS0yMS42IDE2LTM1LjggMTZjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDh6bTE0NCA0OGMwLTI2LjUgMjEuNS00OCA0OC00OGMxNC4yIDAgMjcgNi4xIDM1LjggMTZjOC44IDkuOSAyNCAxMC43IDMzLjkgMS45czEwLjctMjQgMS45LTMzLjljLTE3LjUtMTkuNi00My4xLTMyLTcxLjUtMzJjLTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZjMjguNCAwIDU0LTEyLjQgNzEuNS0zMmM4LjgtOS45IDgtMjUtMS45LTMzLjlzLTI1LTgtMzMuOSAxLjljLTguOCA5LjktMjEuNiAxNi0zNS44IDE2Yy0yNi41IDAtNDgtMjEuNS00OC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ29tbWVudERvdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTY4LjIgMzg0LjljLTE1LTUuNC0zMS43LTMuMS00NC42IDYuNGMtOC4yIDYtMjIuMyAxNC44LTM5LjQgMjIuN2M1LjYtMTQuNyA5LjktMzEuMyAxMS4zLTQ5LjRjMS0xMi45LTMuMy0yNS43LTExLjgtMzUuNUM2MC40IDMwMi44IDQ4IDI3MiA0OCAyNDBjMC03OS41IDgzLjMtMTYwIDIwOC0xNjBzMjA4IDgwLjUgMjA4IDE2MHMtODMuMyAxNjAtMjA4IDE2MGMtMzEuNiAwLTYxLjMtNS41LTg3LjgtMTUuMXpNMjYuMyA0MjMuOGMtMS42IDIuNy0zLjMgNS40LTUuMSA4LjFsLS4zIC41Yy0xLjYgMi4zLTMuMiA0LjYtNC44IDYuOWMtMy41IDQuNy03LjMgOS4zLTExLjMgMTMuNWMtNC42IDQuNi01LjkgMTEuNC0zLjQgMTcuNGMyLjUgNiA4LjMgOS45IDE0LjggOS45YzUuMSAwIDEwLjItLjMgMTUuMy0uOGwuNy0uMWM0LjQtLjUgOC44LTEuMSAxMy4yLTEuOWMuOC0uMSAxLjYtLjMgMi40LS41YzE3LjgtMy41IDM0LjktOS41IDUwLjEtMTYuMWMyMi45LTEwIDQyLjQtMjEuOSA1NC4zLTMwLjZjMzEuOCAxMS41IDY3IDE3LjkgMTA0LjEgMTcuOWMxNDEuNCAwIDI1Ni05My4xIDI1Ni0yMDhTMzk3LjQgMzIgMjU2IDMyUzAgMTI1LjEgMCAyNDBjMCA0NS4xIDE3LjcgODYuOCA0Ny43IDEyMC45Yy0xLjkgMjQuNS0xMS40IDQ2LjMtMjEuNCA2Mi45ek0xNDQgMjcyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTQ0LTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTgwIDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ29tbWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjMuNiAzOTEuM2MxMi45LTkuNCAyOS42LTExLjggNDQuNi02LjRjMjYuNSA5LjYgNTYuMiAxNS4xIDg3LjggMTUuMWMxMjQuNyAwIDIwOC04MC41IDIwOC0xNjBzLTgzLjMtMTYwLTIwOC0xNjBTNDggMTYwLjUgNDggMjQwYzAgMzIgMTIuNCA2Mi44IDM1LjcgODkuMmM4LjYgOS43IDEyLjggMjIuNSAxMS44IDM1LjVjLTEuNCAxOC4xLTUuNyAzNC43LTExLjMgNDkuNGMxNy03LjkgMzEuMS0xNi43IDM5LjQtMjIuN3pNMjEuMiA0MzEuOWMxLjgtMi43IDMuNS01LjQgNS4xLTguMWMxMC0xNi42IDE5LjUtMzguNCAyMS40LTYyLjlDMTcuNyAzMjYuOCAwIDI4NS4xIDAgMjQwQzAgMTI1LjEgMTE0LjYgMzIgMjU2IDMyczI1NiA5My4xIDI1NiAyMDhzLTExNC42IDIwOC0yNTYgMjA4Yy0zNy4xIDAtNzIuMy02LjQtMTA0LjEtMTcuOWMtMTEuOSA4LjctMzEuMyAyMC42LTU0LjMgMzAuNmMtMTUuMSA2LjYtMzIuMyAxMi42LTUwLjEgMTYuMWMtLjggLjItMS42IC4zLTIuNCAuNWMtNC40IC44LTguNyAxLjUtMTMuMiAxLjljLS4yIDAtLjUgLjEtLjcgLjFjLTUuMSAuNS0xMC4yIC44LTE1LjMgLjhjLTYuNSAwLTEyLjMtMy45LTE0LjgtOS45Yy0yLjUtNi0xLjEtMTIuOCAzLjQtMTcuNGM0LjEtNC4yIDcuOC04LjcgMTEuMy0xMy41YzEuNy0yLjMgMy4zLTQuNiA0LjgtNi45Yy4xLS4yIC4yLS4zIC4zLS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDb21tZW50cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04OC4yIDMwOS4xYzkuOC0xOC4zIDYuOC00MC44LTcuNS01NS44QzU5LjQgMjMwLjkgNDggMjA0IDQ4IDE3NmMwLTYzLjUgNjMuOC0xMjggMTYwLTEyOHMxNjAgNjQuNSAxNjAgMTI4cy02My44IDEyOC0xNjAgMTI4Yy0xMy4xIDAtMjUuOC0xLjMtMzcuOC0zLjZjLTEwLjQtMi0yMS4yLS42LTMwLjcgNC4yYy00LjEgMi4xLTguMyA0LjEtMTIuNiA2Yy0xNiA3LjItMzIuOSAxMy41LTQ5LjkgMThjMi44LTQuNiA1LjQtOS4xIDcuOS0xMy42YzEuMS0xLjkgMi4yLTMuOSAzLjItNS45ek0wIDE3NmMwIDQxLjggMTcuMiA4MC4xIDQ1LjkgMTEwLjNjLS45IDEuNy0xLjkgMy41LTIuOCA1LjFjLTEwLjMgMTguNC0yMi4zIDM2LjUtMzYuNiA1Mi4xYy02LjYgNy04LjMgMTcuMi00LjYgMjUuOUM1LjggMzc4LjMgMTQuNCAzODQgMjQgMzg0YzQzIDAgODYuNS0xMy4zIDEyMi43LTI5LjdjNC44LTIuMiA5LjYtNC41IDE0LjItNi44YzE1LjEgMyAzMC45IDQuNSA0Ny4xIDQuNWMxMTQuOSAwIDIwOC03OC44IDIwOC0xNzZTMzIyLjkgMCAyMDggMFMwIDc4LjggMCAxNzZ6TTQzMiA0ODBjMTYuMiAwIDMxLjktMS42IDQ3LjEtNC41YzQuNiAyLjMgOS40IDQuNiAxNC4yIDYuOEM1MjkuNSA0OTguNyA1NzMgNTEyIDYxNiA1MTJjOS42IDAgMTguMi01LjcgMjItMTQuNWMzLjgtOC44IDItMTktNC42LTI1LjljLTE0LjItMTUuNi0yNi4yLTMzLjctMzYuNi01Mi4xYy0uOS0xLjctMS45LTMuNC0yLjgtNS4xQzYyMi44IDM4NC4xIDY0MCAzNDUuOCA2NDAgMzA0YzAtOTQuNC04Ny45LTE3MS41LTE5OC4yLTE3NS44YzQuMSAxNS4yIDYuMiAzMS4yIDYuMiA0Ny44bDAgLjZjODcuMiA2LjcgMTQ0IDY3LjUgMTQ0IDEyNy40YzAgMjgtMTEuNCA1NC45LTMyLjcgNzcuMmMtMTQuMyAxNS0xNy4zIDM3LjYtNy41IDU1LjhjMS4xIDIgMi4yIDQgMy4yIDUuOWMyLjUgNC41IDUuMiA5IDcuOSAxMy42Yy0xNy00LjUtMzMuOS0xMC43LTQ5LjktMThjLTQuMy0xLjktOC41LTMuOS0xMi42LTZjLTkuNS00LjgtMjAuMy02LjItMzAuNy00LjJjLTEyLjEgMi40LTI0LjcgMy42LTM3LjggMy42Yy02MS43IDAtMTEwLTI2LjUtMTM2LjgtNjIuM2MtMTYgNS40LTMyLjggOS40LTUwIDExLjhDMjc5IDQzOS44IDM1MCA0ODAgNDMyIDQ4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ29tcGFzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2QTIwOCAyMDggMCAxIDAgNDggMjU2YTIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMzA2LjcgNjkuMUwxNjIuNCAzODAuNmMtMTkuNCA3LjUtMzguNS0xMS42LTMxLTMxbDU1LjUtMTQ0LjNjMy4zLTguNSA5LjktMTUuMSAxOC40LTE4LjRsMTQ0LjMtNTUuNWMxOS40LTcuNSAzOC41IDExLjYgMzEgMzFMMzI1LjEgMzA2LjdjLTMuMiA4LjUtOS45IDE1LjEtMTguNCAxOC40ek0yODggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NvcHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDMzNkgxOTJjLTguOCAwLTE2LTcuMi0xNi0xNlY2NGMwLTguOCA3LjItMTYgMTYtMTZsMTQwLjEgMEw0MDAgMTE1LjlWMzIwYzAgOC44LTcuMiAxNi0xNiAxNnpNMTkyIDM4NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTE1LjljMC0xMi43LTUuMS0yNC45LTE0LjEtMzMuOUwzNjYuMSAxNC4xYy05LTktMjEuMi0xNC4xLTMzLjktMTQuMUgxOTJjLTM1LjMgMC02NCAyOC43LTY0IDY0VjMyMGMwIDM1LjMgMjguNyA2NCA2NCA2NHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMjU2YzM1LjMgMCA2NC0yOC43IDY0LTY0VjQxNkgyNzJ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDY0Yy04LjggMC0xNi03LjItMTYtMTZWMTkyYzAtOC44IDcuMi0xNiAxNi0xNkg5NlYxMjhINjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NvcHlyaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NEEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE5OS40IDMxMi42Yy0zMS4yLTMxLjItMzEuMi04MS45IDAtMTEzLjFzODEuOS0zMS4yIDExMy4xIDBjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45Yy01MC01MC0xMzEtNTAtMTgxIDBzLTUwIDEzMSAwIDE4MXMxMzEgNTAgMTgxIDBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGMtMzEuMiAzMS4yLTgxLjkgMzEuMi0xMTMuMSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDcmVkaXRDYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiA4MGM4LjggMCAxNiA3LjIgMTYgMTZ2MzJINDhWOTZjMC04LjggNy4yLTE2IDE2LTE2SDUxMnptMTYgMTQ0VjQxNmMwIDguOC03LjIgMTYtMTYgMTZINjRjLTguOCAwLTE2LTcuMi0xNi0xNlYyMjRINTI4ek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6bTU2IDMwNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGg0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgxMjB6bTEyOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0SDM2MGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgyNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0VudmVsb3BlT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTUuNCA0OC4yYy4yLS4xIC40LS4yIC42LS4ycy40IC4xIC42IC4yTDQ2MC42IDE5NGMyLjEgMS41IDMuNCAzLjkgMy40IDYuNXYxMy42TDI5MS41IDM1NS43Yy0yMC43IDE3LTUwLjQgMTctNzEuMSAwTDQ4IDIxNC4xVjIwMC41YzAtMi42IDEuMi01IDMuNC02LjVMMjU1LjQgNDguMnpNNDggMjc2LjJMMTkwIDM5Mi44YzM4LjQgMzEuNSA5My43IDMxLjUgMTMyIDBMNDY0IDI3Ni4yVjQ1NmMwIDQuNC0zLjYgOC04IDhINTZjLTQuNCAwLTgtMy42LTgtOFYyNzYuMnpNMjU2IDBjLTEwLjIgMC0yMC4yIDMuMi0yOC41IDkuMUwyMy41IDE1NC45QzguNyAxNjUuNCAwIDE4Mi40IDAgMjAwLjVWNDU2YzAgMzAuOSAyNS4xIDU2IDU2IDU2SDQ1NmMzMC45IDAgNTYtMjUuMSA1Ni01NlYyMDAuNWMwLTE4LjEtOC43LTM1LjEtMjMuNC00NS42TDI4NC41IDkuMUMyNzYuMiAzLjIgMjY2LjIgMCAyNTYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRW52ZWxvcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZ2MjIuMUwyMjAuNSAyOTEuN2MyMC43IDE3IDUwLjQgMTcgNzEuMSAwTDQ2NCAxNTAuMVYxMjhjMC04LjgtNy4yLTE2LTE2LTE2SDY0ek00OCAyMTIuMlYzODRjMCA4LjggNy4yIDE2IDE2IDE2SDQ0OGM4LjggMCAxNi03LjIgMTYtMTZWMjEyLjJMMzIyIDMyOC44Yy0zOC40IDMxLjUtOTMuNyAzMS41LTEzMiAwTDQ4IDIxMi4yek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0IDI4LjcgNjQgNjRWMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0V5ZVNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMNTI1LjYgMzg2LjdjMzkuNi00MC42IDY2LjQtODYuMSA3OS45LTExOC40YzMuMy03LjkgMy4zLTE2LjcgMC0yNC42Yy0xNC45LTM1LjctNDYuMi04Ny43LTkzLTEzMS4xQzQ2NS41IDY4LjggNDAwLjggMzIgMzIwIDMyYy02OC4yIDAtMTI1IDI2LjMtMTY5LjMgNjAuOEwzOC44IDUuMXptMTUxIDExOC4zQzIyNiA5Ny43IDI2OS41IDgwIDMyMCA4MGM2NS4yIDAgMTE4LjggMjkuNiAxNTkuOSA2Ny43QzUxOC40IDE4My41IDU0NSAyMjYgNTU4LjYgMjU2Yy0xMi42IDI4LTM2LjYgNjYuOC03MC45IDEwMC45bC01My44LTQyLjJjOS4xLTE3LjYgMTQuMi0zNy41IDE0LjItNTguN2MwLTcwLjctNTcuMy0xMjgtMTI4LTEyOGMtMzIuMiAwLTYxLjcgMTEuOS04NC4yIDMxLjVsLTQ2LjEtMzYuMXpNMzk0LjkgMjg0LjJsLTgxLjUtNjMuOWM0LjItOC41IDYuNi0xOC4yIDYuNi0yOC4zYzAtNS41LS43LTEwLjktMi0xNmMuNyAwIDEuMyAwIDIgMGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDkuOS0xLjggMTkuNC01LjEgMjguMnptNTEuMyAxNjMuM2wtNDEuOS0zM0MzNzguOCA0MjUuNCAzNTAuNyA0MzIgMzIwIDQzMmMtNjUuMiAwLTExOC44LTI5LjYtMTU5LjktNjcuN0MxMjEuNiAzMjguNSA5NSAyODYgODEuNCAyNTZjOC4zLTE4LjQgMjEuNS00MS41IDM5LjQtNjQuOEw4My4xIDE2MS41QzYwLjMgMTkxLjIgNDQgMjIwLjggMzQuNSAyNDMuN2MtMy4zIDcuOS0zLjMgMTYuNyAwIDI0LjZjMTQuOSAzNS43IDQ2LjIgODcuNyA5MyAxMzEuMUMxNzQuNSA0NDMuMiAyMzkuMiA0ODAgMzIwIDQ4MGM0Ny44IDAgODkuOS0xMi45IDEyNi4yLTMyLjV6bS04OC02OS4zTDMwMiAzMzRjLTIzLjUtNS40LTQzLjEtMjEuMi01My43LTQyLjNsLTU2LjEtNDQuMmMtLjIgMi44LS4zIDUuNi0uMyA4LjVjMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhjMTMuMyAwIDI2LjEtMiAzOC4yLTUuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRXllIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCA4MGMtNjUuMiAwLTExOC44IDI5LjYtMTU5LjkgNjcuN0M4OS42IDE4My41IDYzIDIyNiA0OS40IDI1NmMxMy42IDMwIDQwLjIgNzIuNSA3OC42IDEwOC4zQzE2OS4yIDQwMi40IDIyMi44IDQzMiAyODggNDMyczExOC44LTI5LjYgMTU5LjktNjcuN0M0ODYuNCAzMjguNSA1MTMgMjg2IDUyNi42IDI1NmMtMTMuNi0zMC00MC4yLTcyLjUtNzguNi0xMDguM0M0MDYuOCAxMDkuNiAzNTMuMiA4MCAyODggODB6TTk1LjQgMTEyLjZDMTQyLjUgNjguOCAyMDcuMiAzMiAyODggMzJzMTQ1LjUgMzYuOCAxOTIuNiA4MC42YzQ2LjggNDMuNSA3OC4xIDk1LjQgOTMgMTMxLjFjMy4zIDcuOSAzLjMgMTYuNyAwIDI0LjZjLTE0LjkgMzUuNy00Ni4yIDg3LjctOTMgMTMxLjFDNDMzLjUgNDQzLjIgMzY4LjggNDgwIDI4OCA0ODBzLTE0NS41LTM2LjgtMTkyLjYtODAuNkM0OC42IDM1NiAxNy4zIDMwNCAyLjUgMjY4LjNjLTMuMy03LjktMy4zLTE2LjcgMC0yNC42QzE3LjMgMjA4IDQ4LjYgMTU2IDk1LjQgMTEyLjZ6TTI4OCAzMzZjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBjLS43IDAtMS4zIDAtMiAwYzEuMyA1LjEgMiAxMC41IDIgMTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRjLTUuNSAwLTEwLjktLjctMTYtMmMwIC43IDAgMS4zIDAgMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHptMC0yMDhhMTI4IDEyOCAwIDEgMSAwIDI1NiAxMjggMTI4IDAgMSAxIDAtMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlQW5ncnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyem03Mi40LTExOC41YzkuNy05IDEwLjItMjQuMiAxLjItMzMuOUMzMTUuMyAzNDQuMyAyOTAuNiAzMjggMjU2IDMyOHMtNTkuMyAxNi4zLTczLjUgMzEuNmMtOSA5LjctOC41IDI0LjkgMS4yIDMzLjlzMjQuOSA4LjUgMzMuOS0xLjJjNy40LTcuOSAyMC0xNi40IDM4LjUtMTYuNHMzMS4xIDguNSAzOC41IDE2LjRjOSA5LjcgMjQuMiAxMC4yIDMzLjkgMS4yek0xNzYuNCAyNzJjMTcuNyAwIDMyLTE0LjMgMzItMzJjMC0xLjUtLjEtMy0uMy00LjRsMTAuOSAzLjZjOC40IDIuOCAxNy40LTEuNyAyMC4yLTEwLjFzLTEuNy0xNy40LTEwLjEtMjAuMmwtOTYtMzJjLTguNC0yLjgtMTcuNCAxLjctMjAuMiAxMC4xczEuNyAxNy40IDEwLjEgMjAuMmwzMC43IDEwLjJjLTUuOCA1LjgtOS4zIDEzLjgtOS4zIDIyLjZjMCAxNy43IDE0LjMgMzIgMzIgMzJ6bTE5Mi0zMmMwLTguOS0zLjYtMTctOS41LTIyLjhsMzAuMi0xMC4xYzguNC0yLjggMTIuOS0xMS45IDEwLjEtMjAuMnMtMTEuOS0xMi45LTIwLjItMTAuMWwtOTYgMzJjLTguNCAyLjgtMTIuOSAxMS45LTEwLjEgMjAuMnMxMS45IDEyLjkgMjAuMiAxMC4xbDExLjctMy45Yy0uMiAxLjUtLjMgMy4xLS4zIDQuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlRGl6enkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTI1NiAzMmE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNMTAzIDEzNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwyMyAyMyAyMy0yM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTIzIDIzIDIzIDIzYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTIzLTIzLTIzIDIzYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDIzLTIzLTIzLTIzYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXptMTkyIDBjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMjMgMjMgMjMtMjNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0yMyAyMyAyMyAyM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0yMy0yMy0yMyAyM2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwyMy0yMy0yMy0yM2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VGbHVzaGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMSA0OCAyNTZhMjA4IDIwOCAwIDEgMSA0MTYgMHpNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwek0xNjAuNCAyNDhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yMTYtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMTkyIDMzNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNEgzMjBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMTkyek0xNjAgMTc2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnptMCAxMjhhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTE0NC04MGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0xMjggMGE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VGcm93bk9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6TTE4Mi40IDM4Mi41Yy0xMi40IDUuMi0yNi41LTQuMS0yMS4xLTE2LjRjMTYtMzYuNiA1Mi40LTYyLjEgOTQuOC02Mi4xczc4LjggMjUuNiA5NC44IDYyLjFjNS40IDEyLjMtOC43IDIxLjYtMjEuMSAxNi40Yy0yMi40LTkuNS00Ny40LTE0LjgtNzMuNy0xNC44cy01MS4zIDUuMy03My43IDE0Ljh6TTE0NC40IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlRnJvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6TTE3NC42IDM4NC4xYy00LjUgMTIuNS0xOC4yIDE4LjktMzAuNyAxNC40cy0xOC45LTE4LjItMTQuNC0zMC43QzE0Ni45IDMxOS40IDE5OC45IDI4OCAyNTYgMjg4czEwOS4xIDMxLjQgMTI2LjYgNzkuOWM0LjUgMTIuNS0yIDI2LjItMTQuNCAzMC43cy0yNi4yLTItMzAuNy0xNC40QzMyOC4yIDM1OC41IDI5Ny4yIDMzNiAyNTYgMzM2cy03Mi4yIDIyLjUtODEuNCA0OC4xek0xNDQuNCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZUdyaW1hY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDQ4YTIwOCAyMDggMCAxIDAgMCA0MTYgMjA4IDIwOCAwIDEgMCAwLTQxNnpNNTEyIDI1NkEyNTYgMjU2IDAgMSAxIDAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDB6TTE2OCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoOFYzMjBoLTh6bTQwIDQ4aDMyVjMyMEgyMDh2NDh6bTk2IDBWMzIwSDI3MnY0OGgzMnptMzIgMGg4YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0aC04djQ4ek0xNjggMjg4SDM0NGMzMC45IDAgNTYgMjUuMSA1NiA1NnMtMjUuMSA1Ni01NiA1NkgxNjhjLTMwLjkgMC01Ni0yNS4xLTU2LTU2czI1LjEtNTYgNTYtNTZ6bS0yMy42LTgwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VHcmluQmVhbVN3ZWF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3Ni44IDEyNi4zQzQ5Ny4xIDEyMC44IDUxMiAxMDIuNyA1MTIgODFjMC0yMC0yOC42LTYwLjQtNDEuNi03Ny43Yy0zLjItNC40LTkuNi00LjQtMTIuOCAwYy05LjUgMTIuNi0yNy4xIDM3LjItMzYgNTcuNWMtLjMgLjctLjYgMS40LS45IDIuMUM0MTcuOCA2OS43IDQxNiA3NiA0MTYgODFjMCAyNiAyMS41IDQ3IDQ4IDQ3YzQuNCAwIDguNy0uNiAxMi44LTEuN3pNMzk1LjQgNDEuMkMzNTUuMyAxNS4yIDMwNy40IDAgMjU2IDBDMTE0LjYgMCAwIDExNC42IDAgMjU2UzExNC42IDUxMiAyNTYgNTEyczI1Ni0xMTQuNiAyNTYtMjU2YzAtMzUuOC03LjMtNjkuOS0yMC42LTEwMC44Yy04LjYgMy4xLTE3LjggNC44LTI3LjQgNC44Yy04LjkgMC0xNy42LTEuNS0yNS43LTQuMkM0NTQuNyAxODUuNSA0NjQgMjE5LjcgNDY0IDI1NmMwIDExNC45LTkzLjEgMjA4LTIwOCAyMDhTNDggMzcwLjkgNDggMjU2UzE0MS4xIDQ4IDI1NiA0OGM0OC43IDAgOTMuNCAxNi43IDEyOC45IDQ0LjdjLS42LTMuOC0uOS03LjctLjktMTEuN2MwLTExLjQgMy44LTIyLjQgNy4xLTMwLjVjMS4zLTMuMSAyLjctNi4yIDQuMy05LjN6TTM3NSAzMzYuNWMxMC40LTE2LjEtNi44LTMyLjUtMjUuNS0yOC4xYy0yOC45IDYuOC02MC41IDEwLjUtOTMuNiAxMC41cy02NC43LTMuNy05My42LTEwLjVjLTE4LjctNC40LTM1LjkgMTItMjUuNSAyOC4xYzI0LjYgMzguMSA2OC43IDYzLjUgMTE5LjEgNjMuNXM5NC41LTI1LjQgMTE5LjEtNjMuNXpNMjE3LjYgMjI4LjhsMCAwIDAgMCAwIDBjMi4xIDIuOCA1LjcgMy45IDguOSAyLjhzNS41LTQuMSA1LjUtNy42YzAtMTcuOS02LjctMzUuNi0xNi42LTQ4LjhjLTkuOC0xMy0yMy45LTIzLjItMzkuNC0yMy4ycy0yOS42IDEwLjItMzkuNCAyMy4yQzEyNi43IDE4OC40IDEyMCAyMDYuMSAxMjAgMjI0YzAgMy40IDIuMiA2LjUgNS41IDcuNnM2LjkgMCA4LjktMi44bDAgMCAwIDAgMCAwIC4yLS4yYy4yLS4yIC40LS41IC43LS45Yy42LS44IDEuNi0yIDIuOC0zLjRjMi41LTIuOCA2LTYuNiAxMC4yLTEwLjNjOC44LTcuOCAxOC44LTE0IDI3LjctMTRzMTguOSA2LjIgMjcuNyAxNGM0LjIgMy43IDcuNyA3LjUgMTAuMiAxMC4zYzEuMiAxLjQgMi4yIDIuNiAyLjggMy40Yy4zIC40IC42IC43IC43IC45bC4yIC4yIDAgMHptMTYwIDBsMCAwIDAgMGMyLjEgMi44IDUuNyAzLjkgOC45IDIuOHM1LjUtNC4xIDUuNS03LjZjMC0xNy45LTYuNy0zNS42LTE2LjYtNDguOGMtOS44LTEzLTIzLjktMjMuMi0zOS40LTIzLjJzLTI5LjYgMTAuMi0zOS40IDIzLjJDMjg2LjcgMTg4LjQgMjgwIDIwNi4xIDI4MCAyMjRjMCAzLjQgMi4yIDYuNSA1LjUgNy42czYuOSAwIDguOS0yLjhsMCAwIDAgMCAwIDAgLjItLjJjLjItLjIgLjQtLjUgLjctLjljLjYtLjggMS42LTIgMi44LTMuNGMyLjUtMi44IDYtNi42IDEwLjItMTAuM2M4LjgtNy44IDE4LjgtMTQgMjcuNy0xNHMxOC45IDYuMiAyNy43IDE0YzQuMiAzLjcgNy43IDcuNSAxMC4yIDEwLjNjMS4yIDEuNCAyLjIgMi42IDIuOCAzLjRjLjMgLjQgLjYgLjcgLjcgLjlsLjIgLjIgMCAwIDAgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZUdyaW5CZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMCA0OCAyNTZhMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0zNDkuNSA1Mi40YzE4LjctNC40IDM1LjkgMTIgMjUuNSAyOC4xQzM1MC40IDM3NC42IDMwNi4zIDQwMCAyNTUuOSA0MDBzLTk0LjUtMjUuNC0xMTkuMS02My41Yy0xMC40LTE2LjEgNi44LTMyLjUgMjUuNS0yOC4xYzI4LjkgNi44IDYwLjUgMTAuNSA5My42IDEwLjVzNjQuNy0zLjcgOTMuNi0xMC41ek0yMTcuNiAyMjguOGwwIDAgMCAwLS4yLS4yYy0uMi0uMi0uNC0uNS0uNy0uOWMtLjYtLjgtMS42LTItMi44LTMuNGMtMi41LTIuOC02LTYuNi0xMC4yLTEwLjNjLTguOC03LjgtMTguOC0xNC0yNy43LTE0cy0xOC45IDYuMi0yNy43IDE0Yy00LjIgMy43LTcuNyA3LjUtMTAuMiAxMC4zYy0xLjIgMS40LTIuMiAyLjYtMi44IDMuNGMtLjMgLjQtLjYgLjctLjcgLjlsLS4yIC4yIDAgMCAwIDAgMCAwYy0yLjEgMi44LTUuNyAzLjktOC45IDIuOHMtNS41LTQuMS01LjUtNy42YzAtMTcuOSA2LjctMzUuNiAxNi42LTQ4LjhjOS44LTEzIDIzLjktMjMuMiAzOS40LTIzLjJzMjkuNiAxMC4yIDM5LjQgMjMuMmM5LjkgMTMuMiAxNi42IDMwLjkgMTYuNiA0OC44YzAgMy40LTIuMiA2LjUtNS41IDcuNnMtNi45IDAtOC45LTIuOGwwIDAgMCAwem0xNjAgMGwwIDAtLjItLjJjLS4yLS4yLS40LS41LS43LS45Yy0uNi0uOC0xLjYtMi0yLjgtMy40Yy0yLjUtMi44LTYtNi42LTEwLjItMTAuM2MtOC44LTcuOC0xOC44LTE0LTI3LjctMTRzLTE4LjkgNi4yLTI3LjcgMTRjLTQuMiAzLjctNy43IDcuNS0xMC4yIDEwLjNjLTEuMiAxLjQtMi4yIDIuNi0yLjggMy40Yy0uMyAuNC0uNiAuNy0uNyAuOWwtLjIgLjIgMCAwIDAgMCAwIDBjLTIuMSAyLjgtNS43IDMuOS04LjkgMi44cy01LjUtNC4xLTUuNS03LjZjMC0xNy45IDYuNy0zNS42IDE2LjYtNDguOGM5LjgtMTMgMjMuOS0yMy4yIDM5LjQtMjMuMnMyOS42IDEwLjIgMzkuNCAyMy4yYzkuOSAxMy4yIDE2LjYgMzAuOSAxNi42IDQ4LjhjMCAzLjQtMi4yIDYuNS01LjUgNy42cy02LjkgMC04LjktMi44bDAgMCAwIDAgMCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlR3JpbkhlYXJ0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2QTIwOCAyMDggMCAxIDAgNDggMjU2YTIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMzQ5LjUgNTIuNGMxOC43LTQuNCAzNS45IDEyIDI1LjUgMjguMUMzNTAuNCAzNzQuNiAzMDYuMyA0MDAgMjU1LjkgNDAwcy05NC41LTI1LjQtMTE5LjEtNjMuNWMtMTAuNC0xNi4xIDYuOC0zMi41IDI1LjUtMjguMWMyOC45IDYuOCA2MC41IDEwLjUgOTMuNiAxMC41czY0LjctMy43IDkzLjYtMTAuNXpNMjE1LjMgMTM3LjFjMTcuOCA0LjggMjguNCAyMy4xIDIzLjYgNDAuOGwtMTcuNCA2NWMtMi4zIDguNS0xMS4xIDEzLjYtMTkuNiAxMS4zbC02NS4xLTE3LjRjLTE3LjgtNC44LTI4LjQtMjMuMS0yMy42LTQwLjhzMjMuMS0yOC40IDQwLjgtMjMuNmwxNi4xIDQuMyA0LjMtMTYuMWM0LjgtMTcuOCAyMy4xLTI4LjQgNDAuOC0yMy42em0xMjIuMyAyMy42bDQuMyAxNi4xIDE2LjEtNC4zYzE3LjgtNC44IDM2LjEgNS44IDQwLjggMjMuNnMtNS44IDM2LjEtMjMuNiA0MC44bC02NS4xIDE3LjRjLTguNSAyLjMtMTcuMy0yLjgtMTkuNi0xMS4zbC0xNy40LTY1Yy00LjgtMTcuOCA1LjgtMzYuMSAyMy42LTQwLjhzMzYuMSA1LjggNDAuOSAyMy42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlR3JpblNxdWludFRlYXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyNi44IDE0LjJDNDQ2LTUgNDc3LjUtNC42IDQ5Ny4xIDE0LjlzMjAgNTEgLjcgNzAuM2MtMTQuOCAxNC44LTY1LjcgMjMuNi04OC4zIDI2LjdjLTUuNiAuOS0xMC4zLTMuOS05LjUtOS41QzQwMy4zIDc5LjkgNDEyIDI5IDQyNi44IDE0LjJ6TTc1IDc1QzE1OC4yLTguMyAyODQuNS0yMi4yIDM4Mi4yIDMzLjJjLTEuNSA0LjgtMi45IDkuNi00LjEgMTQuM2MtMy4xIDEyLjItNS41IDI0LjYtNy4zIDM1Yy04MC44LTUzLjYtMTkwLjctNDQuOC0yNjEuOSAyNi40QzM3LjcgMTgwLjEgMjguOSAyOTAgODIuNSAzNzAuOGMtMTAuNSAxLjgtMjIuOSA0LjItMzUgNy4zYy00LjcgMS4yLTkuNSAyLjUtMTQuMyA0LjFDLTIyLjIgMjg0LjUtOC4yIDE1OC4yIDc1IDc1em0zODkuNiA1OC45YzQuNy0xLjIgOS41LTIuNSAxNC4zLTQuMUM1MzQuMiAyMjcuNSA1MjAuMiAzNTMuOCA0MzcgNDM3Yy04My4yIDgzLjItMjA5LjUgOTcuMi0zMDcuMiA0MS44YzEuNS00LjggMi44LTkuNiA0LTE0LjNjMy4xLTEyLjIgNS41LTI0LjYgNy4zLTM1YzgwLjggNTMuNiAxOTAuNyA0NC44IDI2MS45LTI2LjRjNzEuMi03MS4yIDgwLTE4MS4xIDI2LjQtMjYxLjljMTAuNS0xLjggMjIuOS00LjIgMzUtNy4zem0tMTA1LjQgOTNjMTAuMS0xNi4zIDMzLjktMTYuOSAzNy45IDEuOWM5LjUgNDQuNC0zLjcgOTMuNS0zOS4zIDEyOS4xcy04NC44IDQ4LjgtMTI5LjEgMzkuM2MtMTguNy00LTE4LjItMjcuOC0xLjktMzcuOWMyNS4yLTE1LjcgNTAuMi0zNS40IDczLjYtNTguOHM0My4xLTQ4LjQgNTguOC03My42ek05MiAyNjUuM2w5Ny40LTI5LjdjMTEuNi0zLjUgMjIuNSA3LjMgMTkgMTlsLTI5LjcgOTcuNGMtMi42IDguNi0xMy40IDExLjMtMTkuOCA0LjljLTItMi0zLjItNC42LTMuNC03LjNsLTUuMS01Ni4xLTU2LjEtNS4xYy0yLjgtLjMtNS40LTEuNS03LjMtMy40Yy02LjMtNi4zLTMuNi0xNy4yIDQuOS0xOS44em0xOTMtMTc4LjJjMiAyIDMuMiA0LjYgMy40IDcuM2w1LjEgNTYuMSA1Ni4xIDUuMWMyLjggLjMgNS40IDEuNSA3LjMgMy40YzYuMyA2LjMgMy42IDE3LjItNC45IDE5LjhsLTk3LjQgMjkuN2MtMTEuNiAzLjUtMjIuNS03LjMtMTktMTlMMjY1LjMgOTJjMi42LTguNiAxMy40LTExLjMgMTkuOC00Ljl6TTE0LjkgNDk3LjFjLTE5LjYtMTkuNi0yMC01MS0uNy03MC4zQzI5IDQxMiA3OS44IDQwMy4yIDEwMi40IDQwMC4xYzUuNi0uOSAxMC4zIDMuOSA5LjUgOS41Yy0zLjIgMjIuNS0xMS45IDczLjUtMjYuNyA4OC4zQzY2IDUxNyAzNC41IDUxNi42IDE0LjkgNDk3LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VHcmluU3F1aW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMCA0OCAyNTZhMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0zNDkuNSA1Mi40YzE4LjctNC40IDM1LjkgMTIgMjUuNSAyOC4xQzM1MC40IDM3NC42IDMwNi4zIDQwMCAyNTUuOSA0MDBzLTk0LjUtMjUuNC0xMTkuMS02My41Yy0xMC40LTE2LjEgNi44LTMyLjUgMjUuNS0yOC4xYzI4LjkgNi44IDYwLjUgMTAuNSA5My42IDEwLjVzNjQuNy0zLjcgOTMuNi0xMC41em0tMjE2LTE2MS43bDg5LjkgNDcuOWMxMC43IDUuNyAxMC43IDIxLjEgMCAyNi44bC04OS45IDQ3LjljLTcuOSA0LjItMTcuNS0xLjUtMTcuNS0xMC41YzAtMi44IDEtNS41IDIuOC03LjZsMzYtNDMuMi0zNi00My4yYy0xLjgtMi4xLTIuOC00LjgtMi44LTcuNmMwLTkgOS42LTE0LjcgMTcuNS0xMC41ek0zOTYgMTU3LjFjMCAyLjgtMSA1LjUtMi44IDcuNmwtMzYgNDMuMiAzNiA0My4yYzEuOCAyLjEgMi44IDQuOCAyLjggNy42YzAgOS05LjYgMTQuNy0xNy41IDEwLjVsLTg5LjktNDcuOWMtMTAuNy01LjctMTAuNy0yMS4xIDAtMjYuOGw4OS45LTQ3LjljNy45LTQuMiAxNy41IDEuNSAxNy41IDEwLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VHcmluU3RhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xODMuMiAxMzIuNmMtMS4zLTIuOC00LjEtNC42LTcuMi00LjZzLTUuOSAxLjgtNy4yIDQuNmwtMTYuNiAzNC43LTM4LjEgNWMtMy4xIC40LTUuNiAyLjUtNi42IDUuNXMtLjEgNi4yIDIuMSA4LjNsMjcuOSAyNi41LTcgMzcuOGMtLjYgMyAuNyA2LjEgMy4yIDcuOXM1LjggMiA4LjUgLjZMMTc2IDI0MC41bDMzLjggMTguM2MyLjcgMS41IDYgMS4zIDguNS0uNnMzLjctNC45IDMuMi03LjlsLTctMzcuOEwyNDIuNCAxODZjMi4yLTIuMSAzLjEtNS4zIDIuMS04LjNzLTMuNS01LjEtNi42LTUuNWwtMzguMS01LTE2LjYtMzQuN3ptMTYwIDBjLTEuMy0yLjgtNC4xLTQuNi03LjItNC42cy01LjkgMS44LTcuMiA0LjZsLTE2LjYgMzQuNy0zOC4xIDVjLTMuMSAuNC01LjYgMi41LTYuNiA1LjVzLS4xIDYuMiAyLjEgOC4zbDI3LjkgMjYuNS03IDM3LjhjLS42IDMgLjcgNi4xIDMuMiA3LjlzNS44IDIgOC41IC42TDMzNiAyNDAuNWwzMy44IDE4LjNjMi43IDEuNSA2IDEuMyA4LjUtLjZzMy43LTQuOSAzLjItNy45bC03LTM3LjhMNDAyLjQgMTg2YzIuMi0yLjEgMy4xLTUuMyAyLjEtOC4zcy0zLjUtNS4xLTYuNi01LjVsLTM4LjEtNS0xNi42LTM0Ljd6bTYuMyAxNzUuOGMtMjguOSA2LjgtNjAuNSAxMC41LTkzLjYgMTAuNXMtNjQuNy0zLjctOTMuNi0xMC41Yy0xOC43LTQuNC0zNS45IDEyLTI1LjUgMjguMWMyNC42IDM4LjEgNjguNyA2My41IDExOS4xIDYzLjVzOTQuNS0yNS40IDExOS4xLTYzLjVjMTAuNC0xNi4xLTYuOC0zMi41LTI1LjUtMjguMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZUdyaW5UZWFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTYuMSAzMjUuNWMxIDMgMi4xIDYgMy4zIDguOWMzLjMgOC4xIDguNCAxOC41IDE2LjUgMjYuNmMzLjkgMy45IDguMiA3LjQgMTIuNyAxMC4zQzUwNi40IDQ1NC44IDQxOS45IDUxMiAzMjAgNTEycy0xODYuNC01Ny4yLTIyOC42LTE0MC42YzQuNS0yLjkgOC43LTYuMyAxMi43LTEwLjNjOC4xLTguMSAxMy4yLTE4LjYgMTYuNS0yNi42YzEuMi0yLjkgMi4zLTUuOSAzLjMtOC45QzE1Mi41IDQwNi4yIDIyOS41IDQ2NCAzMjAgNDY0czE2Ny41LTU3LjggMTk2LjEtMTM4LjV6TTMyMCA0OGMtMTAxLjQgMC0xODUuOCA3Mi41LTIwNC4zIDE2OC41Yy02LjctMy4xLTE0LjMtNC4zLTIyLjMtMy4xYy02LjggLjktMTYuMiAyLjQtMjYuNiA0LjRDODUuMyA5NC41IDE5MS42IDAgMzIwIDBTNTU0LjcgOTQuNSA1NzMuMiAyMTcuN2MtMTAuMy0yLTE5LjgtMy41LTI2LjYtNC40Yy04LTEuMi0xNS43IC4xLTIyLjMgMy4xQzUwNS44IDEyMC41IDQyMS40IDQ4IDMyMCA0OHpNNzguNSAzNDEuMUM2MCAzNTYuNyAzMiAzNTUuNSAxNC4zIDMzNy43Yy0xOC43LTE4LjctMTkuMS00OC44LS43LTY3LjJjOC42LTguNiAzMC4xLTE1LjEgNTAuNS0xOS42YzEzLTIuOCAyNS41LTQuOCAzMy45LTZjNS40LS44IDkuOSAzLjcgOSA5Yy0zLjEgMjEuNS0xMS40IDcwLjItMjUuNSA4NC40Yy0uOSAxLTEuOSAxLjgtMi45IDIuN3ptNDgzIDBjLS44LS42LTEuNS0xLjMtMi4zLTJjLS4yLS4yLS41LS40LS43LS43Yy0xNC4xLTE0LjEtMjIuNS02Mi45LTI1LjUtODQuNGMtLjgtNS40IDMuNy05LjkgOS05YzEgLjEgMi4yIC4zIDMuMyAuNWM4LjIgMS4yIDE5LjIgMyAzMC42IDUuNWMyMC40IDQuNCA0MS45IDEwLjkgNTAuNSAxOS42YzE4LjQgMTguNCAxOCA0OC41LS43IDY3LjJjLTE3LjcgMTcuNy00NS43IDE5LTY0LjIgMy40ek00MzkgMzM2LjVDNDE0LjQgMzc0LjYgMzcwLjMgNDAwIDMxOS45IDQwMHMtOTQuNS0yNS40LTExOS4xLTYzLjVjLTEwLjQtMTYuMSA2LjgtMzIuNSAyNS41LTI4LjFjMjguOSA2LjggNjAuNSAxMC41IDkzLjYgMTAuNXM2NC43LTMuNyA5My42LTEwLjVjMTguNy00LjQgMzUuOSAxMiAyNS41IDI4LjF6TTI4MS42IDIyOC44bDAgMC0uMi0uMmMtLjItLjItLjQtLjUtLjctLjljLS42LS44LTEuNi0yLTIuOC0zLjRjLTIuNS0yLjgtNi02LjYtMTAuMi0xMC4zYy04LjgtNy44LTE4LjgtMTQtMjcuNy0xNHMtMTguOSA2LjItMjcuNyAxNGMtNC4yIDMuNy03LjcgNy41LTEwLjIgMTAuM2MtMS4yIDEuNC0yLjIgMi42LTIuOCAzLjRjLS4zIC40LS42IC43LS43IC45bC0uMiAuMiAwIDAgMCAwIDAgMGMtMi4xIDIuOC01LjcgMy45LTguOSAyLjhzLTUuNS00LjEtNS41LTcuNmMwLTE3LjkgNi43LTM1LjYgMTYuNi00OC44YzkuOC0xMyAyMy45LTIzLjIgMzkuNC0yMy4yczI5LjYgMTAuMiAzOS40IDIzLjJjOS45IDEzLjIgMTYuNiAzMC45IDE2LjYgNDguOGMwIDMuNC0yLjIgNi41LTUuNSA3LjZzLTYuOSAwLTguOS0yLjhsMCAwIDAgMCAwIDB6bTE2MCAwbDAgMCAwIDAtLjItLjJjLS4yLS4yLS40LS41LS43LS45Yy0uNi0uOC0xLjYtMi0yLjgtMy40Yy0yLjUtMi44LTYtNi42LTEwLjItMTAuM2MtOC44LTcuOC0xOC44LTE0LTI3LjctMTRzLTE4LjkgNi4yLTI3LjcgMTRjLTQuMiAzLjctNy43IDcuNS0xMC4yIDEwLjNjLTEuMiAxLjQtMi4yIDIuNi0yLjggMy40Yy0uMyAuNC0uNiAuNy0uNyAuOWwtLjIgLjIgMCAwIDAgMCAwIDBjLTIuMSAyLjgtNS43IDMuOS04LjkgMi44cy01LjUtNC4xLTUuNS03LjZjMC0xNy45IDYuNy0zNS42IDE2LjYtNDguOGM5LjgtMTMgMjMuOS0yMy4yIDM5LjQtMjMuMnMyOS42IDEwLjIgMzkuNCAyMy4yYzkuOSAxMy4yIDE2LjYgMzAuOSAxNi42IDQ4LjhjMCAzLjQtMi4yIDYuNS01LjUgNy42cy02LjkgMC04LjktMi44bDAgMCAwIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VHcmluVG9uZ3VlU3F1aW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZjMC0xMTQuOS05My4xLTIwOC0yMDgtMjA4UzQ4IDE0MS4xIDQ4IDI1NmMwIDgxLjcgNDcuMSAxNTIuNCAxMTUuNyAxODYuNGMtMi40LTguNC0zLjctMTcuMy0zLjctMjYuNFYzOTIuN2MtMjQtMTcuNS00My4xLTQxLjQtNTQuOC02OS4yYy01LTExLjggNy0yMi41IDE5LjMtMTguN2MzOS43IDEyLjIgODQuNSAxOSAxMzEuOCAxOXM5Mi4xLTYuOCAxMzEuOC0xOWMxMi4zLTMuOCAyNC4zIDYuOSAxOS4zIDE4LjdjLTExLjggMjgtMzEuMSA1Mi01NS40IDY5LjZWNDE2YzAgOS4yLTEuMyAxOC0zLjcgMjYuNEM0MTYuOSA0MDguNCA0NjQgMzM3LjcgNDY0IDI1NnpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0xMTYtOTguOWMwLTkgOS42LTE0LjcgMTcuNS0xMC41bDg5LjkgNDcuOWMxMC43IDUuNyAxMC43IDIxLjEgMCAyNi44bC04OS45IDQ3LjljLTcuOSA0LjItMTcuNS0xLjUtMTcuNS0xMC41YzAtMi44IDEtNS41IDIuOC03LjZsMzYtNDMuMi0zNi00My4yYy0xLjgtMi4xLTIuOC00LjgtMi44LTcuNnptMjYyLjUtMTAuNWM3LjktNC4yIDE3LjUgMS41IDE3LjUgMTAuNWMwIDIuOC0xIDUuNS0yLjggNy42bC0zNiA0My4yIDM2IDQzLjJjMS44IDIuMSAyLjggNC44IDIuOCA3LjZjMCA5LTkuNiAxNC43LTE3LjUgMTAuNWwtODkuOS00Ny45Yy0xMC43LTUuNy0xMC43LTIxLjEgMC0yNi44bDg5LjktNDcuOXpNMzIwIDQxNlYzNzguNmMwLTE0LjctMTEuOS0yNi42LTI2LjYtMjYuNmgtMmMtMTEuMyAwLTIxLjEgNy45LTIzLjYgMTguOWMtMi44IDEyLjYtMjAuOCAxMi42LTIzLjYgMGMtMi41LTExLjEtMTIuMy0xOC45LTIzLjYtMTguOWgtMmMtMTQuNyAwLTI2LjYgMTEuOS0yNi42IDI2LjZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VHcmluVG9uZ3VlV2luayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDguMyA0NDIuNGMyLjQtOC40IDMuNy0xNy4zIDMuNy0yNi40VjM2My41YzguOC04IDE2LjYtMTcuMSAyMy0yN2MxMC40LTE2LjEtNi44LTMyLjUtMjUuNS0yOC4xYy0yOC45IDYuOC02MC41IDEwLjUtOTMuNiAxMC41cy02NC43LTMuNy05My42LTEwLjVjLTE4LjctNC40LTM1LjkgMTItMjUuNSAyOC4xYzYuNSAxMCAxNC4zIDE5LjEgMjMuMSAyNy4xVjQxNmMwIDkuMiAxLjMgMTggMy43IDI2LjRDOTUuMSA0MDguNCA0OCAzMzcuNyA0OCAyNTZDNDggMTQxLjEgMTQxLjEgNDggMjU2IDQ4czIwOCA5My4xIDIwOCAyMDhjMCA4MS43LTQ3LjEgMTUyLjQtMTE1LjcgMTg2LjR6TTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNTkuNiAyMjBjMTAuNiAwIDE5LjkgMy44IDI1LjQgOS43YzcuNiA4LjEgMjAuMiA4LjUgMjguMyAuOXM4LjUtMjAuMiAuOS0yOC4zQzE5OS43IDE4Ni44IDE3OSAxODAgMTU5LjYgMTgwcy00MC4xIDYuOC01NC42IDIyLjNjLTcuNiA4LjEtNy4xIDIwLjcgLjkgMjguM3MyMC43IDcuMSAyOC4zLS45YzUuNS01LjggMTQuOC05LjcgMjUuNC05Ljd6bTE3Ni43IDEyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptLS40LTcyYTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnptMCAxMjhhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6TTMyMCA0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRWMzc4LjZjMC0xNC43IDExLjktMjYuNiAyNi42LTI2LjZoMmMxMS4zIDAgMjEuMSA3LjkgMjMuNiAxOC45YzIuOCAxMi42IDIwLjggMTIuNiAyMy42IDBjMi41LTExLjEgMTIuMy0xOC45IDIzLjYtMTguOWgyYzE0LjcgMCAyNi42IDExLjkgMjYuNiAyNi42VjQxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZUdyaW5Ub25ndWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NmMwLTExNC45LTkzLjEtMjA4LTIwOC0yMDhTNDggMTQxLjEgNDggMjU2YzAgODEuNyA0Ny4xIDE1Mi40IDExNS43IDE4Ni40Yy0yLjQtOC40LTMuNy0xNy4zLTMuNy0yNi40VjM2My42Yy04LjktOC0xNi43LTE3LjEtMjMuMS0yNy4xYy0xMC40LTE2LjEgNi44LTMyLjUgMjUuNS0yOC4xYzI4LjkgNi44IDYwLjUgMTAuNSA5My42IDEwLjVzNjQuNy0zLjcgOTMuNi0xMC41YzE4LjctNC40IDM1LjkgMTIgMjUuNSAyOC4xYy02LjQgOS45LTE0LjIgMTktMjMgMjdWNDE2YzAgOS4yLTEuMyAxOC0zLjcgMjYuNEM0MTYuOSA0MDguNCA0NjQgMzM3LjcgNDY0IDI1NnpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0xNzYuNC04MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0zMjAgNDE2VjM3OC42YzAtMTQuNy0xMS45LTI2LjYtMjYuNi0yNi42aC0yYy0xMS4zIDAtMjEuMSA3LjktMjMuNiAxOC45Yy0yLjggMTIuNi0yMC44IDEyLjYtMjMuNiAwYy0yLjUtMTEuMS0xMi4zLTE4LjktMjMuNi0xOC45aC0yYy0xNC43IDAtMjYuNiAxMS45LTI2LjYgMjYuNlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZUdyaW5XaWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMCA0OCAyNTZhMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0zNDkuNSA1Mi40YzE4LjctNC40IDM1LjkgMTIgMjUuNSAyOC4xQzM1MC40IDM3NC42IDMwNi4zIDQwMCAyNTUuOSA0MDBzLTk0LjUtMjUuNC0xMTkuMS02My41Yy0xMC40LTE2LjEgNi44LTMyLjUgMjUuNS0yOC4xYzI4LjkgNi44IDYwLjUgMTAuNSA5My42IDEwLjVzNjQuNy0zLjcgOTMuNi0xMC41ek0yMjQgMTkyYzAgMzUuMy0xNC4zIDY0LTMyIDY0cy0zMi0yOC43LTMyLTY0czE0LjMtNjQgMzItNjRzMzIgMjguNyAzMiA2NHptOTYgNjRjLTE3LjcgMC0zMi0yOC43LTMyLTY0czE0LjMtNjQgMzItNjRzMzIgMjguNyAzMiA2NHMtMTQuMyA2NC0zMiA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZUdyaW5XaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMCA0OCAyNTZhMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0zNDkuNSA1Mi40YzE4LjctNC40IDM1LjkgMTIgMjUuNSAyOC4xQzM1MC40IDM3NC42IDMwNi4zIDQwMCAyNTUuOSA0MDBzLTk0LjUtMjUuNC0xMTkuMS02My41Yy0xMC40LTE2LjEgNi44LTMyLjUgMjUuNS0yOC4xYzI4LjkgNi44IDYwLjUgMTAuNSA5My42IDEwLjVzNjQuNy0zLjcgOTMuNi0xMC41ek0xNDQuNCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTY1LjggMjEuN2MtNy42IDguMS0yMC4yIDguNS0yOC4zIC45cy04LjUtMjAuMi0uOS0yOC4zYzE0LjUtMTUuNSAzNS4yLTIyLjMgNTQuNi0yMi4zczQwLjEgNi44IDU0LjYgMjIuM2M3LjYgOC4xIDcuMSAyMC43LS45IDI4LjNzLTIwLjcgNy4xLTI4LjMtLjljLTUuNS01LjgtMTQuOC05LjctMjUuNC05LjdzLTE5LjkgMy44LTI1LjQgOS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlR3JpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2QTIwOCAyMDggMCAxIDAgNDggMjU2YTIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMzQ5LjUgNTIuNGMxOC43LTQuNCAzNS45IDEyIDI1LjUgMjguMUMzNTAuNCAzNzQuNiAzMDYuMyA0MDAgMjU1LjkgNDAwcy05NC41LTI1LjQtMTE5LjEtNjMuNWMtMTAuNC0xNi4xIDYuOC0zMi41IDI1LjUtMjguMWMyOC45IDYuOCA2MC41IDEwLjUgOTMuNiAxMC41czY0LjctMy43IDkzLjYtMTAuNXpNMTQ0LjQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VLaXNzQmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2QTIwOCAyMDggMCAxIDAgNDggMjU2YTIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMzA0LjcgNDEuN2M0LjMgNS4xIDcuMyAxMS40IDcuMyAxOC4zcy0zLjEgMTMuMi03LjMgMTguM2MtNC4zIDUuMi0xMC4xIDkuNy0xNi43IDEzLjRjLTIuNyAxLjUtNS43IDMtOC43IDQuM2MzLjEgMS4zIDYgMi43IDguNyA0LjNjNi42IDMuNyAxMi41IDguMiAxNi43IDEzLjRjNC4zIDUuMSA3LjMgMTEuNCA3LjMgMTguM3MtMy4xIDEzLjItNy4zIDE4LjNjLTQuMyA1LjItMTAuMSA5LjctMTYuNyAxMy40QzI3NC43IDQyNy4xIDI1Ny40IDQzMiAyNDAgNDMyYy0zLjYgMC02LjgtMi41LTcuNy02cy42LTcuMiAzLjgtOWwwIDAgMCAwIDAgMCAwIDAgLjItLjFjLjItLjEgLjUtLjMgLjktLjVjLjgtLjUgMi0xLjIgMy40LTIuMWMyLjgtMS45IDYuNS00LjUgMTAuMi03LjZjMy43LTMuMSA3LjItNi42IDkuNi0xMC4xYzIuNS0zLjUgMy41LTYuNCAzLjUtOC42cy0xLTUtMy41LTguNmMtMi41LTMuNS01LjktNi45LTkuNi0xMC4xYy0zLjctMy4xLTcuNC01LjctMTAuMi03LjZjLTEuNC0uOS0yLjYtMS42LTMuNC0yLjFjLS40LS4yLS43LS40LS45LS41bC0uMi0uMSAwIDAgMCAwIDAgMGMtMi41LTEuNC00LjEtNC4xLTQuMS03czEuNi01LjYgNC4xLTdsMCAwIDAgMCAwIDAgMCAwIDAgMCAuMi0uMWMuMi0uMSAuNS0uMyAuOS0uNWMuOC0uNSAyLTEuMiAzLjQtMi4xYzIuOC0xLjkgNi41LTQuNSAxMC4yLTcuNmMzLjctMy4xIDcuMi02LjYgOS42LTEwLjFjMi41LTMuNSAzLjUtNi40IDMuNS04LjZzLTEtNS0zLjUtOC42Yy0yLjUtMy41LTUuOS02LjktOS42LTEwLjFjLTMuNy0zLjEtNy40LTUuNy0xMC4yLTcuNmMtMS40LS45LTIuNi0xLjYtMy40LTIuMWMtLjQtLjItLjctLjQtLjktLjVsLS4yLS4xIDAgMCAwIDAgMCAwYy0zLjItMS44LTQuNy01LjUtMy44LTlzNC4xLTYgNy43LTZjMTcuNCAwIDM0LjcgNC45IDQ3LjkgMTIuM2M2LjYgMy43IDEyLjUgOC4yIDE2LjcgMTMuNHptLTg3LjEtNjguOWwwIDAgMCAwLS4yLS4yYy0uMi0uMi0uNC0uNS0uNy0uOWMtLjYtLjgtMS42LTItMi44LTMuNGMtMi41LTIuOC02LTYuNi0xMC4yLTEwLjNjLTguOC03LjgtMTguOC0xNC0yNy43LTE0cy0xOC45IDYuMi0yNy43IDE0Yy00LjIgMy43LTcuNyA3LjUtMTAuMiAxMC4zYy0xLjIgMS40LTIuMiAyLjYtMi44IDMuNGMtLjMgLjQtLjYgLjctLjcgLjlsLS4yIC4yIDAgMCAwIDAgMCAwYy0yLjEgMi44LTUuNyAzLjktOC45IDIuOHMtNS41LTQuMS01LjUtNy42YzAtMTcuOSA2LjctMzUuNiAxNi42LTQ4LjhjOS44LTEzIDIzLjktMjMuMiAzOS40LTIzLjJzMjkuNiAxMC4yIDM5LjQgMjMuMmM5LjkgMTMuMiAxNi42IDMwLjkgMTYuNiA0OC44YzAgMy40LTIuMiA2LjUtNS41IDcuNnMtNi45IDAtOC45LTIuOGwwIDAgMCAwem0xNjAgMGwwIDAtLjItLjJjLS4yLS4yLS40LS41LS43LS45Yy0uNi0uOC0xLjYtMi0yLjgtMy40Yy0yLjUtMi44LTYtNi42LTEwLjItMTAuM2MtOC44LTcuOC0xOC44LTE0LTI3LjctMTRzLTE4LjkgNi4yLTI3LjcgMTRjLTQuMiAzLjctNy43IDcuNS0xMC4yIDEwLjNjLTEuMiAxLjQtMi4yIDIuNi0yLjggMy40Yy0uMyAuNC0uNiAuNy0uNyAuOWwtLjIgLjIgMCAwIDAgMCAwIDBjLTIuMSAyLjgtNS43IDMuOS04LjkgMi44cy01LjUtNC4xLTUuNS03LjZjMC0xNy45IDYuNy0zNS42IDE2LjYtNDguOGM5LjgtMTMgMjMuOS0yMy4yIDM5LjQtMjMuMnMyOS42IDEwLjIgMzkuNCAyMy4yYzkuOSAxMy4yIDE2LjYgMzAuOSAxNi42IDQ4LjhjMCAzLjQtMi4yIDYuNS01LjUgNy42cy02LjkgMC04LjktMi44bDAgMCAwIDAgMCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlS2lzc1dpbmtIZWFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzguOSA0NDYuOGMtMjUuNCAxMS01My40IDE3LjItODIuOSAxNy4yQzE0MS4xIDQ2NCA0OCAzNzAuOSA0OCAyNTZTMTQxLjEgNDggMjU2IDQ4czIwOCA5My4xIDIwOCAyMDhjMCAyMi40LTMuNSA0My45LTEwLjEgNjQuMWMzLjEgNC41IDUuNyA5LjQgNy44IDE0LjZjMTIuNy0xLjYgMjUuMSAuNCAzNi4yIDVjOS4xLTI2LjIgMTQtNTQuNCAxNC04My43QzUxMiAxMTQuNiAzOTcuNCAwIDI1NiAwUzAgMTE0LjYgMCAyNTZTMTE0LjYgNTEyIDI1NiA1MTJjMzUuNCAwIDY5LjEtNy4yIDk5LjctMjAuMmMtNC44LTUuNS04LjUtMTIuMi0xMC40LTE5LjdsLTYuNS0yNS4zek0yOTYgMzE2YzAtNi45LTMuMS0xMy4yLTcuMy0xOC4zYy00LjMtNS4yLTEwLjEtOS43LTE2LjctMTMuNEMyNTguNyAyNzYuOSAyNDEuNCAyNzIgMjI0IDI3MmMtMy42IDAtNi44IDIuNS03LjcgNnMuNiA3LjIgMy44IDlsMCAwIDAgMCAwIDAgLjIgLjFjLjIgLjEgLjUgLjMgLjkgLjVjLjggLjUgMiAxLjIgMy40IDIuMWMyLjggMS45IDYuNSA0LjUgMTAuMiA3LjZjMy43IDMuMSA3LjIgNi42IDkuNiAxMC4xYzIuNSAzLjUgMy41IDYuNCAzLjUgOC42cy0xIDUtMy41IDguNmMtMi41IDMuNS01LjkgNi45LTkuNiAxMC4xYy0zLjcgMy4xLTcuNCA1LjctMTAuMiA3LjZjLTEuNCAuOS0yLjYgMS42LTMuNCAyLjFjLS40IC4yLS43IC40LS45IC41bC0uMiAuMSAwIDAgMCAwIDAgMCAwIDAgMCAwYy0yLjUgMS40LTQuMSA0LjEtNC4xIDdzMS42IDUuNiA0LjEgN2wwIDAgMCAwIDAgMCAuMiAuMWMuMiAuMSAuNSAuMyAuOSAuNWMuOCAuNSAyIDEuMiAzLjQgMi4xYzIuOCAxLjkgNi41IDQuNSAxMC4yIDcuNmMzLjcgMy4xIDcuMiA2LjYgOS42IDEwLjFjMi41IDMuNSAzLjUgNi40IDMuNSA4LjZzLTEgNS0zLjUgOC42Yy0yLjUgMy41LTUuOSA2LjktOS42IDEwLjFjLTMuNyAzLjEtNy40IDUuNy0xMC4yIDcuNmMtMS40IC45LTIuNiAxLjYtMy40IDIuMWMtLjQgLjItLjcgLjQtLjkgLjVsLS4yIC4xIDAgMCAwIDAgMCAwIDAgMGMtMy4yIDEuOC00LjcgNS41LTMuOCA5czQuMSA2IDcuNyA2YzE3LjQgMCAzNC43LTQuOSA0Ny45LTEyLjNjNi42LTMuNyAxMi41LTguMiAxNi43LTEzLjRjNC4zLTUuMSA3LjMtMTEuNCA3LjMtMTguM3MtMy4xLTEzLjItNy4zLTE4LjNjLTQuMy01LjItMTAuMS05LjctMTYuNy0xMy40Yy0yLjctMS41LTUuNy0zLTguNy00LjNjMy4xLTEuMyA2LTIuNyA4LjctNC4zYzYuNi0zLjcgMTIuNS04LjIgMTYuNy0xMy40YzQuMy01LjEgNy4zLTExLjQgNy4zLTE4LjN6TTE3Ni40IDI0MGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTE1OS4zLTIwYzEwLjYgMCAxOS45IDMuOCAyNS40IDkuN2M3LjYgOC4xIDIwLjIgOC41IDI4LjMgLjlzOC41LTIwLjIgLjktMjguM0MzNzUuNyAxODYuOCAzNTUgMTgwIDMzNS42IDE4MHMtNDAuMSA2LjgtNTQuNiAyMi4zYy03LjYgOC4xLTcuMSAyMC43IC45IDI4LjNzMjAuNyA3LjEgMjguMy0uOWM1LjUtNS44IDE0LjgtOS43IDI1LjQtOS43ek00MzQgMzUyLjNjLTYtMjMuMi0yOC44LTM3LTUxLjEtMzAuOHMtMzUuNCAzMC4xLTI5LjUgNTMuNGwyMi45IDg5LjNjMi4yIDguNyAxMS4yIDEzLjkgMTkuOCAxMS40bDg0LjktMjMuOGMyMi4yLTYuMiAzNS40LTMwLjEgMjkuNS01My40cy0yOC44LTM3LTUxLjEtMzAuOGwtMjAuMiA1LjYtNS40LTIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlS2lzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2QTIwOCAyMDggMCAxIDAgNDggMjU2YTIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMzA0LjcgMjUuN2M0LjMgNS4xIDcuMyAxMS40IDcuMyAxOC4zcy0zLjEgMTMuMi03LjMgMTguM2MtNC4zIDUuMi0xMC4xIDkuNy0xNi43IDEzLjRjLTIuNyAxLjUtNS43IDMtOC43IDQuM2MzLjEgMS4zIDYgMi43IDguNyA0LjNjNi42IDMuNyAxMi41IDguMiAxNi43IDEzLjRjNC4zIDUuMSA3LjMgMTEuNCA3LjMgMTguM3MtMy4xIDEzLjItNy4zIDE4LjNjLTQuMyA1LjItMTAuMSA5LjctMTYuNyAxMy40QzI3NC43IDQxMS4xIDI1Ny40IDQxNiAyNDAgNDE2Yy0zLjYgMC02LjgtMi41LTcuNy02cy42LTcuMiAzLjgtOWwwIDAgMCAwIDAgMCAwIDAgLjItLjFjLjItLjEgLjUtLjMgLjktLjVjLjgtLjUgMi0xLjIgMy40LTIuMWMyLjgtMS45IDYuNS00LjUgMTAuMi03LjZjMy43LTMuMSA3LjItNi42IDkuNi0xMC4xYzIuNS0zLjUgMy41LTYuNCAzLjUtOC42cy0xLTUtMy41LTguNmMtMi41LTMuNS01LjktNi45LTkuNi0xMC4xYy0zLjctMy4xLTcuNC01LjctMTAuMi03LjZjLTEuNC0uOS0yLjYtMS42LTMuNC0yLjFsLS44LS41LS4xLS4xLS4yLS4xIDAgMCAwIDAgMCAwYy0yLjUtMS40LTQuMS00LjEtNC4xLTdzMS42LTUuNiA0LjEtN2wwIDAgMCAwIDAgMCAwIDAgMCAwIC4yLS4xYy4yLS4xIC41LS4zIC45LS41Yy44LS41IDItMS4yIDMuNC0yLjFjMi44LTEuOSA2LjUtNC41IDEwLjItNy42YzMuNy0zLjEgNy4yLTYuNiA5LjYtMTAuMWMyLjUtMy41IDMuNS02LjQgMy41LTguNnMtMS01LTMuNS04LjZjLTIuNS0zLjUtNS45LTYuOS05LjYtMTAuMWMtMy43LTMuMS03LjQtNS43LTEwLjItNy42Yy0xLjQtLjktMi42LTEuNi0zLjQtMi4xYy0uNC0uMi0uNy0uNC0uOS0uNWwtLjItLjEgMCAwIDAgMCAwIDBjLTMuMi0xLjgtNC43LTUuNS0zLjgtOXM0LjEtNiA3LjctNmMxNy40IDAgMzQuNyA0LjkgNDcuOSAxMi4zYzYuNiAzLjcgMTIuNSA4LjIgMTYuNyAxMy40ek0xNDQuNCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZUxhdWdoQmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2QTIwOCAyMDggMCAxIDAgNDggMjU2YTIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMTMwLjcgNTcuOWMtNC4yLTEzLjYgNy4xLTI1LjkgMjEuMy0yNS45SDM2NC41YzE0LjIgMCAyNS41IDEyLjQgMjEuMyAyNS45QzM2OSAzNjguNCAzMTguMiA0MDggMjU4LjIgNDA4cy0xMTAuOC0zOS42LTEyNy41LTk0LjF6bTg2LjktODUuMWwwIDAgMCAwLS4yLS4yYy0uMi0uMi0uNC0uNS0uNy0uOWMtLjYtLjgtMS42LTItMi44LTMuNGMtMi41LTIuOC02LTYuNi0xMC4yLTEwLjNjLTguOC03LjgtMTguOC0xNC0yNy43LTE0cy0xOC45IDYuMi0yNy43IDE0Yy00LjIgMy43LTcuNyA3LjUtMTAuMiAxMC4zYy0xLjIgMS40LTIuMiAyLjYtMi44IDMuNGMtLjMgLjQtLjYgLjctLjcgLjlsLS4yIC4yIDAgMCAwIDAgMCAwYy0yLjEgMi44LTUuNyAzLjktOC45IDIuOHMtNS41LTQuMS01LjUtNy42YzAtMTcuOSA2LjctMzUuNiAxNi42LTQ4LjhjOS44LTEzIDIzLjktMjMuMiAzOS40LTIzLjJzMjkuNiAxMC4yIDM5LjQgMjMuMmM5LjkgMTMuMiAxNi42IDMwLjkgMTYuNiA0OC44YzAgMy40LTIuMiA2LjUtNS41IDcuNnMtNi45IDAtOC45LTIuOGwwIDAgMCAwem0xNjAgMGwwIDAtLjItLjJjLS4yLS4yLS40LS41LS43LS45Yy0uNi0uOC0xLjYtMi0yLjgtMy40Yy0yLjUtMi44LTYtNi42LTEwLjItMTAuM2MtOC44LTcuOC0xOC44LTE0LTI3LjctMTRzLTE4LjkgNi4yLTI3LjcgMTRjLTQuMiAzLjctNy43IDcuNS0xMC4yIDEwLjNjLTEuMiAxLjQtMi4yIDIuNi0yLjggMy40Yy0uMyAuNC0uNiAuNy0uNyAuOWwtLjIgLjIgMCAwIDAgMCAwIDBjLTIuMSAyLjgtNS43IDMuOS04LjkgMi44cy01LjUtNC4xLTUuNS03LjZjMC0xNy45IDYuNy0zNS42IDE2LjYtNDguOGM5LjgtMTMgMjMuOS0yMy4yIDM5LjQtMjMuMnMyOS42IDEwLjIgMzkuNCAyMy4yYzkuOSAxMy4yIDE2LjYgMzAuOSAxNi42IDQ4LjhjMCAzLjQtMi4yIDYuNS01LjUgNy42cy02LjkgMC04LjktMi44bDAgMCAwIDAgMCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlTGF1Z2hTcXVpbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTEzMC43IDU3LjljLTQuMi0xMy42IDcuMS0yNS45IDIxLjMtMjUuOUgzNjQuNWMxNC4yIDAgMjUuNSAxMi40IDIxLjMgMjUuOUMzNjkgMzY4LjQgMzE4LjIgNDA4IDI1OC4yIDQwOHMtMTEwLjgtMzkuNi0xMjcuNS05NC4xem0yLjgtMTgzLjNsODkuOSA0Ny45YzEwLjcgNS43IDEwLjcgMjEuMSAwIDI2LjhsLTg5LjkgNDcuOWMtNy45IDQuMi0xNy41LTEuNS0xNy41LTEwLjVjMC0yLjggMS01LjUgMi44LTcuNmwzNi00My4yLTM2LTQzLjJjLTEuOC0yLjEtMi44LTQuOC0yLjgtNy42YzAtOSA5LjYtMTQuNyAxNy41LTEwLjV6TTM5NiAxNDEuMWMwIDIuOC0xIDUuNS0yLjggNy42bC0zNiA0My4yIDM2IDQzLjJjMS44IDIuMSAyLjggNC44IDIuOCA3LjZjMCA5LTkuNiAxNC43LTE3LjUgMTAuNWwtODkuOS00Ny45Yy0xMC43LTUuNy0xMC43LTIxLjEgMC0yNi44bDg5LjktNDcuOWM3LjktNC4yIDE3LjUgMS41IDE3LjUgMTAuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZUxhdWdoV2luayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2QTIwOCAyMDggMCAxIDAgNDggMjU2YTIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMTMwLjcgNTcuOWMtNC4yLTEzLjYgNy4xLTI1LjkgMjEuMy0yNS45SDM2NC41YzE0LjIgMCAyNS41IDEyLjQgMjEuMyAyNS45QzM2OSAzNjguNCAzMTguMiA0MDggMjU4LjIgNDA4cy0xMTAuOC0zOS42LTEyNy41LTk0LjF6TTE0NC40IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjUuOCAyMS43Yy03LjYgOC4xLTIwLjIgOC41LTI4LjMgLjlzLTguNS0yMC4yLS45LTI4LjNjMTQuNS0xNS41IDM1LjItMjIuMyA1NC42LTIyLjNzNDAuMSA2LjggNTQuNiAyMi4zYzcuNiA4LjEgNy4xIDIwLjctLjkgMjguM3MtMjAuNyA3LjEtMjguMy0uOWMtNS41LTUuOC0xNC44LTkuNy0yNS40LTkuN3MtMTkuOSAzLjgtMjUuNCA5Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VMYXVnaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2QTIwOCAyMDggMCAxIDAgNDggMjU2YTIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMTMwLjcgNTcuOWMtNC4yLTEzLjYgNy4xLTI1LjkgMjEuMy0yNS45SDM2NC41YzE0LjIgMCAyNS41IDEyLjQgMjEuMyAyNS45QzM2OSAzNjguNCAzMTguMiA0MDggMjU4LjIgNDA4cy0xMTAuOC0zOS42LTEyNy41LTk0LjF6TTE0NC40IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlTWVoQmxhbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDQ4YTIwOCAyMDggMCAxIDAgMCA0MTYgMjA4IDIwOCAwIDEgMCAwLTQxNnpNNTEyIDI1NkEyNTYgMjU2IDAgMSAxIDAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDB6TTE0NC40IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlTWVoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMSA0OCAyNTZhMjA4IDIwOCAwIDEgMSA0MTYgMHpNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwek0xNzYuNCAyNDBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xOTItMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTg0IDMyOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNEgzMjhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMTg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlUm9sbGluZ0V5ZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjggMzc2YzAgMTMuMyAxMC43IDI0IDI0IDI0SDMyMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgxOTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0tOC0xMDRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4YzAtMTQuMyA2LjMtMjcuMiAxNi4yLTM2Yy0uMiAxLjMtLjIgMi42LS4yIDRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTEuNC0uMS0yLjctLjItNGMxMCA4LjggMTYuMiAyMS43IDE2LjIgMzZjMCAyNi41LTIxLjUgNDgtNDggNDh6bTAgMzJhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTE5Mi0zMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhjMC0xNC4zIDYuMy0yNy4yIDE2LjItMzZjLS4yIDEuMy0uMiAyLjYtLjIgNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtMS40LS4xLTIuNy0uMi00YzEwIDguOCAxNi4yIDIxLjcgMTYuMiAzNmMwIDI2LjUtMjEuNSA0OC00OCA0OHptMCAzMmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZVNhZENyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgNDA2LjFWMjg4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0VjQ0MC42Yy0yOC43IDE1LTYxLjQgMjMuNC05NiAyMy40cy02Ny4zLTguNS05Ni0yMy40VjI4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNFY0MDYuMUM3Mi42IDM2OC4yIDQ4IDMxNSA0OCAyNTZDNDggMTQxLjEgMTQxLjEgNDggMjU2IDQ4czIwOCA5My4xIDIwOCAyMDhjMCA1OS0yNC42IDExMi4yLTY0IDE1MC4xek0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTU5LjYgMjIwYzEwLjYgMCAxOS45IDMuOCAyNS40IDkuN2M3LjYgOC4xIDIwLjIgOC41IDI4LjMgLjlzOC41LTIwLjIgLjktMjguM0MxOTkuNyAxODYuOCAxNzkgMTgwIDE1OS42IDE4MHMtNDAuMSA2LjgtNTQuNiAyMi4zYy03LjYgOC4xLTcuMSAyMC43IC45IDI4LjNzMjAuNyA3LjEgMjguMy0uOWM1LjUtNS44IDE0LjgtOS43IDI1LjQtOS43em0xNjYuNiA5LjdjNS41LTUuOCAxNC44LTkuNyAyNS40LTkuN3MxOS45IDMuOCAyNS40IDkuN2M3LjYgOC4xIDIwLjIgOC41IDI4LjMgLjlzOC41LTIwLjIgLjktMjguM0MzOTEuNyAxODYuOCAzNzEgMTgwIDM1MS42IDE4MHMtNDAuMSA2LjgtNTQuNiAyMi4zYy03LjYgOC4xLTcuMSAyMC43IC45IDI4LjNzMjAuNyA3LjEgMjguMy0uOXpNMjA4IDMyMHYzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4VjMyMGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZVNhZFRlYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc1LjkgNDQ4Yy0zNS0uMS02NS41LTIyLjYtNzYtNTQuNkM2Ny42IDM1Ni44IDQ4IDMwOC43IDQ4IDI1NkM0OCAxNDEuMSAxNDEuMSA0OCAyNTYgNDhzMjA4IDkzLjEgMjA4IDIwOHMtOTMuMSAyMDgtMjA4IDIwOGMtMjguNCAwLTU1LjUtNS43LTgwLjEtMTZ6TTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDBBMjU2IDI1NiAwIDEgMCAwIDI1NnpNMTI4IDM2OWMwIDI2IDIxLjUgNDcgNDggNDdzNDgtMjEgNDgtNDdjMC0yMC0yOC40LTYwLjQtNDEuNi03Ny43Yy0zLjItNC40LTkuNi00LjQtMTIuOCAwQzE1Ni42IDMwOC42IDEyOCAzNDkgMTI4IDM2OXptMTI4LTY1Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0YzMwLjcgMCA1OC43IDExLjUgODAgMzAuNmM5LjkgOC44IDI1IDggMzMuOS0xLjlzOC0yNS0xLjktMzMuOUMzMzguMyAzMjAuMiAyOTkgMzA0IDI1NiAzMDR6bTQ3LjYtOTZhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMCAtNjQgMHptLTEyOCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VTbWlsZUJlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTE3Ny42IDYyLjFDMTkyLjggMzM0LjUgMjE4LjggMzUyIDI1NiAzNTJzNjMuMi0xNy41IDc4LjQtMzMuOWM5LTkuNyAyNC4yLTEwLjQgMzMuOS0xLjRzMTAuNCAyNC4yIDEuNCAzMy45Yy0yMiAyMy44LTYwIDQ5LjQtMTEzLjYgNDkuNHMtOTEuNy0yNS41LTExMy42LTQ5LjRjLTktOS43LTguNC0yNC45IDEuNC0zMy45czI0LjktOC40IDMzLjkgMS40em00MC04OS4zbDAgMCAwIDAtLjItLjJjLS4yLS4yLS40LS41LS43LS45Yy0uNi0uOC0xLjYtMi0yLjgtMy40Yy0yLjUtMi44LTYtNi42LTEwLjItMTAuM2MtOC44LTcuOC0xOC44LTE0LTI3LjctMTRzLTE4LjkgNi4yLTI3LjcgMTRjLTQuMiAzLjctNy43IDcuNS0xMC4yIDEwLjNjLTEuMiAxLjQtMi4yIDIuNi0yLjggMy40Yy0uMyAuNC0uNiAuNy0uNyAuOWwtLjIgLjIgMCAwIDAgMCAwIDBjLTIuMSAyLjgtNS43IDMuOS04LjkgMi44cy01LjUtNC4xLTUuNS03LjZjMC0xNy45IDYuNy0zNS42IDE2LjYtNDguOGM5LjgtMTMgMjMuOS0yMy4yIDM5LjQtMjMuMnMyOS42IDEwLjIgMzkuNCAyMy4yYzkuOSAxMy4yIDE2LjYgMzAuOSAxNi42IDQ4LjhjMCAzLjQtMi4yIDYuNS01LjUgNy42cy02LjkgMC04LjktMi44bDAgMCAwIDB6bTE2MCAwbDAgMC0uMi0uMmMtLjItLjItLjQtLjUtLjctLjljLS42LS44LTEuNi0yLTIuOC0zLjRjLTIuNS0yLjgtNi02LjYtMTAuMi0xMC4zYy04LjgtNy44LTE4LjgtMTQtMjcuNy0xNHMtMTguOSA2LjItMjcuNyAxNGMtNC4yIDMuNy03LjcgNy41LTEwLjIgMTAuM2MtMS4yIDEuNC0yLjIgMi42LTIuOCAzLjRjLS4zIC40LS42IC43LS43IC45bC0uMiAuMiAwIDAgMCAwIDAgMGMtMi4xIDIuOC01LjcgMy45LTguOSAyLjhzLTUuNS00LjEtNS41LTcuNmMwLTE3LjkgNi43LTM1LjYgMTYuNi00OC44YzkuOC0xMyAyMy45LTIzLjIgMzkuNC0yMy4yczI5LjYgMTAuMiAzOS40IDIzLjJjOS45IDEzLjIgMTYuNiAzMC45IDE2LjYgNDguOGMwIDMuNC0yLjIgNi41LTUuNSA3LjZzLTYuOSAwLTguOS0yLjhsMCAwIDAgMCAwIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VTbWlsZVdpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTE3Ny42IDYyLjFDMTkyLjggMzM0LjUgMjE4LjggMzUyIDI1NiAzNTJzNjMuMi0xNy41IDc4LjQtMzMuOWM5LTkuNyAyNC4yLTEwLjQgMzMuOS0xLjRzMTAuNCAyNC4yIDEuNCAzMy45Yy0yMiAyMy44LTYwIDQ5LjQtMTEzLjYgNDkuNHMtOTEuNy0yNS41LTExMy42LTQ5LjRjLTktOS43LTguNC0yNC45IDEuNC0zMy45czI0LjktOC40IDMzLjkgMS40ek0xNDQuNCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTY1LjggMjEuN2MtNy42IDguMS0yMC4yIDguNS0yOC4zIC45cy04LjUtMjAuMi0uOS0yOC4zYzE0LjUtMTUuNSAzNS4yLTIyLjMgNTQuNi0yMi4zczQwLjEgNi44IDU0LjYgMjIuM2M3LjYgOC4xIDcuMSAyMC43LS45IDI4LjNzLTIwLjcgNy4xLTI4LjMtLjljLTUuNS01LjgtMTQuOC05LjctMjUuNC05LjdzLTE5LjkgMy44LTI1LjQgOS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlU21pbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTE3Ny42IDYyLjFDMTkyLjggMzM0LjUgMjE4LjggMzUyIDI1NiAzNTJzNjMuMi0xNy41IDc4LjQtMzMuOWM5LTkuNyAyNC4yLTEwLjQgMzMuOS0xLjRzMTAuNCAyNC4yIDEuNCAzMy45Yy0yMiAyMy44LTYwIDQ5LjQtMTEzLjYgNDkuNHMtOTEuNy0yNS41LTExMy42LTQ5LjRjLTktOS43LTguNC0yNC45IDEuNC0zMy45czI0LjktOC40IDMzLjkgMS40ek0xNDQuNCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZVN1cnByaXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMCA0OCAyNTZhMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0xNzYuNC04MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0yNTYgMjg4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlVGlyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTE3Ni41IDY0LjNDMTk2LjEgMzAyLjEgMjIzLjggMjg4IDI1NiAyODhzNTkuOSAxNC4xIDc5LjUgMzIuM0MzNTQuNSAzMzguMSAzNjggMzYyIDM2OCAzODRjMCA1LjQtMi43IDEwLjQtNy4yIDEzLjRzLTEwLjIgMy40LTE1LjIgMS4zbC0xNy4yLTcuNWMtMjIuOC0xMC00Ny41LTE1LjEtNzIuNC0xNS4xcy00OS42IDUuMi03Mi40IDE1LjFsLTE3LjIgNy41Yy00LjkgMi4yLTEwLjcgMS43LTE1LjItMS4zcy03LjItOC03LjItMTMuNGMwLTIyIDEzLjUtNDUuOSAzMi41LTYzLjd6bS00My0xNzMuNmw4OS45IDQ3LjljMTAuNyA1LjcgMTAuNyAyMS4xIDAgMjYuOGwtODkuOSA0Ny45Yy03LjkgNC4yLTE3LjUtMS41LTE3LjUtMTAuNWMwLTIuOCAxLTUuNSAyLjgtNy42bDM2LTQzLjItMzYtNDMuMmMtMS44LTIuMS0yLjgtNC44LTIuOC03LjZjMC05IDkuNi0xNC43IDE3LjUtMTAuNXpNMzk2IDE1Ny4xYzAgMi44LTEgNS41LTIuOCA3LjZsLTM2IDQzLjIgMzYgNDMuMmMxLjggMi4xIDIuOCA0LjggMi44IDcuNmMwIDktOS42IDE0LjctMTcuNSAxMC41bC04OS45LTQ3LjljLTEwLjctNS43LTEwLjctMjEuMSAwLTI2LjhsODkuOS00Ny45YzcuOS00LjIgMTcuNSAxLjUgMTcuNSAxMC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGaWxlQXVkaW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgNDY0SDMyMGM4LjggMCAxNi03LjIgMTYtMTZWMTYwSDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDhINjRjLTguOCAwLTE2IDcuMi0xNiAxNlY0NDhjMCA4LjggNy4yIDE2IDE2IDE2ek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEgyMjkuNWMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN2w5MC41IDkwLjVjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM1Y0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjY0ek0xOTIgMjcyVjQwMGMwIDYuNS0zLjkgMTIuMy05LjkgMTQuOHMtMTIuOSAxLjEtMTcuNC0zLjVMMTI5LjQgMzc2SDExMmMtOC44IDAtMTYtNy4yLTE2LTE2VjMxMmMwLTguOCA3LjItMTYgMTYtMTZoMTcuNGwzNS4zLTM1LjNjNC42LTQuNiAxMS41LTUuOSAxNy40LTMuNXM5LjkgOC4zIDkuOSAxNC44em04NS44LTRjMTEuNiAyMCAxOC4yIDQzLjMgMTguMiA2OHMtNi42IDQ4LTE4LjIgNjhjLTYuNiAxMS41LTIxLjMgMTUuNC0zMi44IDguOHMtMTUuNC0yMS4zLTguOC0zMi44YzcuNS0xMi45IDExLjgtMjcuOSAxMS44LTQ0cy00LjMtMzEuMS0xMS44LTQ0Yy02LjYtMTEuNS0yLjctMjYuMiA4LjgtMzIuOHMyNi4yLTIuNyAzMi44IDguOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmlsZUNvZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZWNjRjMC04LjggNy4yLTE2IDE2LTE2SDIyNHY4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MFY0NDhjMCA4LjgtNy4yIDE2LTE2IDE2SDY0ek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjE1NC41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI3NC43IDE4LjdDMjYyLjcgNi43IDI0Ni41IDAgMjI5LjUgMEg2NHptOTcgMjg5YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMNzkgMzAzYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw0OCA0OGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTMxLTMxIDMxLTMxek0yNTcgMjU1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMxIDMxLTMxIDMxYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNDgtNDhjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGaWxlRXhjZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggNDQ4VjY0YzAtOC44IDcuMi0xNiAxNi0xNkgyMjR2ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODBWNDQ4YzAgOC44LTcuMiAxNi0xNiAxNkg2NGMtOC44IDAtMTYtNy4yLTE2LTE2ek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjE1NC41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI3NC43IDE4LjdDMjYyLjcgNi43IDI0Ni41IDAgMjI5LjUgMEg2NHptOTAuOSAyMzMuM2MtOC4xLTEwLjUtMjMuMi0xMi4zLTMzLjctNC4ycy0xMi4zIDIzLjItNC4yIDMzLjdMMTYxLjYgMzIwbC00NC41IDU3LjNjLTguMSAxMC41LTYuMyAyNS41IDQuMiAzMy43czI1LjUgNi4zIDMzLjctNC4yTDE5MiAzNTkuMWwzNy4xIDQ3LjZjOC4xIDEwLjUgMjMuMiAxMi4zIDMzLjcgNC4yczEyLjMtMjMuMiA0LjItMzMuN0wyMjIuNCAzMjBsNDQuNS01Ny4zYzguMS0xMC41IDYuMy0yNS41LTQuMi0zMy43cy0yNS41LTYuMy0zMy43IDQuMkwxOTIgMjgwLjlsLTM3LjEtNDcuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmlsZUltYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2VjY0YzAtOC44IDcuMi0xNiAxNi0xNkgyMjR2ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODBWNDQ4YzAgOC44LTcuMiAxNi0xNiAxNkg2NHpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNTQuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNzQuNyAxOC43QzI2Mi43IDYuNyAyNDYuNSAwIDIyOS41IDBINjR6bTk2IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem02OS4yIDQ2LjljLTMtNC4zLTcuOS02LjktMTMuMi02LjlzLTEwLjIgMi42LTEzLjIgNi45bC00MS4zIDU5LjctMTEuOS0xOS4xYy0yLjktNC43LTguMS03LjUtMTMuNi03LjVzLTEwLjYgMi44LTEzLjYgNy41bC00MCA2NGMtMy4xIDQuOS0zLjIgMTEuMS0uNCAxNi4yczguMiA4LjIgMTQgOC4yaDQ4IDMyIDQwIDcyYzYgMCAxMS40LTMuMyAxNC4yLTguNnMyLjQtMTEuNi0xLTE2LjVsLTcyLTEwNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmlsZUxpbmVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2VjY0YzAtOC44IDcuMi0xNiAxNi0xNkgyMjR2ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODBWNDQ4YzAgOC44LTcuMiAxNi0xNiAxNkg2NHpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNTQuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNzQuNyAxOC43QzI2Mi43IDYuNyAyNDYuNSAwIDIyOS41IDBINjR6bTU2IDI1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNEgyNjRjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMTIwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0SDI2NGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgxMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZpbGVQZGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgNDY0bDQ4IDAgMCA0OC00OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMjkuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDkwLjUgOTAuNWMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCAzMDRsLTQ4IDAgMC0xNDQtODAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC04MEw2NCA0OGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzg0YzAgOC44IDcuMiAxNiAxNiAxNnpNMTc2IDM1MmwzMiAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2cy0yNS4xIDU2LTU2IDU2bC0xNiAwIDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00OCAwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnptMzIgODBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE2IDAgMCA0OCAxNiAwem05Ni04MGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTEyOGMwLTguOCA3LjItMTYgMTYtMTZ6bTMyIDEyOGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZsLTE2IDAgMCA5NiAxNiAwem04MC0xMTJjMC04LjggNy4yLTE2IDE2LTE2bDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTMyIDAgMCAzMiAzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0zMiAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC02NCAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGaWxlUG93ZXJwb2ludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNlY2NGMwLTguOCA3LjItMTYgMTYtMTZIMjI0djgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgwVjQ0OGMwIDguOC03LjIgMTYtMTYgMTZINjR6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTU0LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjc0LjcgMTguN0MyNjIuNyA2LjcgMjQ2LjUgMCAyMjkuNSAwSDY0em03MiAyMDhjLTEzLjMgMC0yNCAxMC43LTI0IDI0VjMzNnY1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjM2MGg0NGM0MiAwIDc2LTM0IDc2LTc2cy0zNC03Ni03Ni03NkgxMzZ6bTY4IDEwNEgxNjBWMjU2aDQ0YzE1LjUgMCAyOCAxMi41IDI4IDI4cy0xMi41IDI4LTI4IDI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGaWxlVmlkZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDQ2NGM4LjggMCAxNi03LjIgMTYtMTZWMTYwSDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDhINjRjLTguOCAwLTE2IDcuMi0xNiAxNlY0NDhjMCA4LjggNy4yIDE2IDE2IDE2SDMyMHpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBIMjI5LjVjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdsOTAuNSA5MC41YzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNWNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY2NHpNODAgMjg4YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMydjE2bDQ0LjktMjkuOWMyLTEuMyA0LjQtMi4xIDYuOC0yLjFjNi44IDAgMTIuMyA1LjUgMTIuMyAxMi4zVjM4Ny43YzAgNi44LTUuNSAxMi4zLTEyLjMgMTIuM2MtMi40IDAtNC44LS43LTYuOC0yLjFMMjQwIDM2OHYxNmMwIDE3LjctMTQuMyAzMi0zMiAzMkgxMTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjI4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmlsZVdvcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggNDQ4VjY0YzAtOC44IDcuMi0xNiAxNi0xNkgyMjR2ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODBWNDQ4YzAgOC44LTcuMiAxNi0xNiAxNkg2NGMtOC44IDAtMTYtNy4yLTE2LTE2ek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjE1NC41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI3NC43IDE4LjdDMjYyLjcgNi43IDI0Ni41IDAgMjI5LjUgMEg2NHptNTUgMjQxLjFjLTMuOC0xMi43LTE3LjItMTkuOS0yOS45LTE2LjFzLTE5LjkgMTcuMi0xNi4xIDI5LjlsNDggMTYwYzMgMTAuMiAxMi40IDE3LjEgMjMgMTcuMXMxOS45LTcgMjMtMTcuMWwyNS04My40IDI1IDgzLjRjMyAxMC4yIDEyLjQgMTcuMSAyMyAxNy4xczE5LjktNyAyMy0xNy4xbDQ4LTE2MGMzLjgtMTIuNy0zLjQtMjYuMS0xNi4xLTI5LjlzLTI2LjEgMy40LTI5LjkgMTYuMWwtMjUgODMuNC0yNS04My40Yy0zLTEwLjItMTIuNC0xNy4xLTIzLTE3LjFzLTE5LjkgNy0yMyAxNy4xbC0yNSA4My40LTI1LTgzLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZpbGVaaXBwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZWNjRjMC04LjggNy4yLTE2IDE2LTE2aDQ4YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZoNDh2ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODBWNDQ4YzAgOC44LTcuMiAxNi0xNiAxNkg2NHpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNTQuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNzQuNyAxOC43QzI2Mi43IDYuNyAyNDYuNSAwIDIyOS41IDBINjR6bTQ4IDExMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMTI4Yy04LjggMC0xNiA3LjItMTYgMTZ6bTAgNjRjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDEyOGMtOC44IDAtMTYgNy4yLTE2IDE2em0tNi4zIDcxLjhMODIuMSAzMzUuOWMtMS40IDUuNC0yLjEgMTAuOS0yLjEgMTYuNGMwIDM1LjIgMjguOCA2My43IDY0IDYzLjdzNjQtMjguNSA2NC02My43YzAtNS41LS43LTExLjEtMi4xLTE2LjRsLTIzLjUtODguMmMtMy43LTE0LTE2LjQtMjMuOC0zMC45LTIzLjhIMTM2LjZjLTE0LjUgMC0yNy4yIDkuNy0zMC45IDIzLjh6TTEyOCAzMzZoMzJjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMTI4Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCA0NjRjOC44IDAgMTYtNy4yIDE2LTE2VjE2MEgyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQ4SDY0Yy04LjggMC0xNiA3LjItMTYgMTZWNDQ4YzAgOC44IDcuMiAxNiAxNiAxNkgzMjB6TTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwSDIyOS41YzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDkwLjUgOTAuNWMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zVjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZsYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggMjRDNDggMTAuNyAzNy4zIDAgMjQgMFMwIDEwLjcgMCAyNFY2NCAzNTAuNSA0MDB2ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYzODhsODAuMy0yMC4xYzQxLjEtMTAuMyA4NC42LTUuNSAxMjIuNSAxMy40YzQ0LjIgMjIuMSA5NS41IDI0LjggMTQxLjcgNy40bDM0LjctMTNjMTIuNS00LjcgMjAuOC0xNi42IDIwLjgtMzBWNjYuMWMwLTIzLTI0LjItMzgtNDQuOC0yNy43bC05LjYgNC44Yy00Ni4zIDIzLjItMTAwLjggMjMuMi0xNDcuMSAwYy0zNS4xLTE3LjYtNzUuNC0yMi0xMTMuNS0xMi41TDQ4IDUyVjI0em0wIDc3LjVsOTYuNi0yNC4yYzI3LTYuNyA1NS41LTMuNiA4MC40IDguOGM1NC45IDI3LjQgMTE4LjcgMjkuNyAxNzUgNi44VjMzNC43bC0yNC40IDkuMWMtMzMuNyAxMi42LTcxLjIgMTAuNy0xMDMuNC01LjRjLTQ4LjItMjQuMS0xMDMuMy0zMC4xLTE1NS42LTE3LjFMNDggMzM4LjV2LTIzN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmxvcHB5RGlzayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCA5NlY0MTZjMCA4LjggNy4yIDE2IDE2IDE2SDM4NGM4LjggMCAxNi03LjIgMTYtMTZWMTcwLjVjMC00LjItMS43LTguMy00LjctMTEuM2wzMy45LTMzLjljMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM1Y0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDMwOS41YzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDc0LjUgNzQuNS0zMy45IDMzLjlMMzIwLjggODQuN2MtLjMtLjMtLjUtLjUtLjgtLjhWMTg0YzAgMTMuMy0xMC43IDI0LTI0IDI0SDEwNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRWODBINjRjLTguOCAwLTE2IDcuMi0xNiAxNnptODAtMTZ2ODBIMjcyVjgwSDEyOHptMzIgMjQwYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRm9sZGVyQ2xvc2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNjBjMC0zNS4zLTI4LjctNjQtNjQtNjRIMjg5LjlMMjQ3IDUzLjFDMjMzLjUgMzkuNiAyMTUuMiAzMiAxOTYuMSAzMkg2NHpNNDggOTZjMC04LjggNy4yLTE2IDE2LTE2SDE5Ni4xYzYuNCAwIDEyLjUgMi41IDE3IDdsNDUuMyA0NS4zYzcuNSA3LjUgMTcuNyAxMS43IDI4LjMgMTEuN0g0NDhjOC44IDAgMTYgNy4yIDE2IDE2djMySDQ4Vjk2em0wIDE0NEg0NjRWNDE2YzAgOC44LTcuMiAxNi0xNiAxNkg2NGMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRm9sZGVyT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgNDgwaDQ4YzExLjQgMCAyMS45LTYgMjcuNi0xNS45bDExMi0xOTJjNS44LTkuOSA1LjgtMjIuMSAuMS0zMi4xUzU1NS41IDIyNCA1NDQgMjI0SDE0NGMtMTEuNCAwLTIxLjkgNi0yNy42IDE1LjlMNDggMzU3LjFWOTZjMC04LjggNy4yLTE2IDE2LTE2SDE4MS41YzQuMiAwIDguMyAxLjcgMTEuMyA0LjdsMjYuNSAyNi41YzIxIDIxIDQ5LjUgMzIuOCA3OS4yIDMyLjhINDE2YzguOCAwIDE2IDcuMiAxNiAxNnYzMmg0OFYxNjBjMC0zNS4zLTI4LjctNjQtNjQtNjRIMjk4LjVjLTE3IDAtMzMuMy02LjctNDUuMy0xOC43TDIyNi43IDUwLjdjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdINjRDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIODcuNyAzODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZvbGRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDE5Ni4xYzE5LjEgMCAzNy40IDcuNiA1MC45IDIxLjFMMjg5LjkgOTZINDQ4YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWOTZ6TTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZWNDE2YzAgOC44IDcuMiAxNiAxNiAxNkg0NDhjOC44IDAgMTYtNy4yIDE2LTE2VjE2MGMwLTguOC03LjItMTYtMTYtMTZIMjg2LjZjLTEwLjYgMC0yMC44LTQuMi0yOC4zLTExLjdMMjEzLjEgODdjLTQuNS00LjUtMTAuNi03LTE3LTdINjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZvbnRBd2Vzb21lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkxLjcgOTZDMTA2LjMgODYuOCAxMTYgNzAuNSAxMTYgNTJDMTE2IDIzLjMgOTIuNyAwIDY0IDBTMTIgMjMuMyAxMiA1MmMwIDE2LjcgNy44IDMxLjUgMjAgNDFsMCAzIDAgNDggMCAyNTYgMCA0OCAwIDY0IDQ4IDAgMC02NCAzODkuNiAwYzE0LjYgMCAyNi40LTExLjggMjYuNC0yNi40YzAtMy43LS44LTcuMy0yLjMtMTAuN0w0MzIgMjcybDYxLjctMTM4LjljMS41LTMuNCAyLjMtNyAyLjMtMTAuN2MwLTE0LjYtMTEuOC0yNi40LTI2LjQtMjYuNEw5MS43IDk2ek04MCA0MDBsMC0yNTYgMzU2LjQgMEwzODguMSAyNTIuNWMtNS41IDEyLjQtNS41IDI2LjYgMCAzOUw0MzYuNCA0MDAgODAgNDAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGdXRib2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM1LjQgMzYxLjNsLTg5LjctNmMtNS4yLS4zLTEwLjMgMS4xLTE0LjUgNC4ycy03LjIgNy40LTguNCAxMi41bC0yMiA4Ny4yYy0xNC40IDMuMi0yOS40IDQuOC00NC44IDQuOHMtMzAuMy0xLjctNDQuOC00LjhsLTIyLTg3LjJjLTEuMy01LTQuMy05LjQtOC40LTEyLjVzLTkuMy00LjUtMTQuNS00LjJsLTg5LjcgNkM2MS43IDMzNS45IDUxLjkgMzA3IDQ5IDI3Ni4yTDEyNSAyMjguM2M0LjQtMi44IDcuNi03IDkuMi0xMS45czEuNC0xMC4yLS41LTE1TDEwMC40IDExOGMxOS45LTIyLjQgNDQuNi00MC41IDcyLjQtNTIuN2w2OS4xIDU3LjZjNCAzLjMgOSA1LjEgMTQuMSA1LjFzMTAuMi0xLjggMTQuMS01LjFsNjkuMS01Ny42YzI3LjggMTIuMiA1Mi41IDMwLjMgNzIuNCA1Mi43bC0zMy40IDgzLjRjLTEuOSA0LjgtMi4xIDEwLjEtLjUgMTVzNC45IDkuMSA5LjIgMTEuOUw0NjMgMjc2LjJjLTMgMzAuOC0xMi43IDU5LjctMjcuNiA4NS4xek0yNTYgNDhsLjkgMGgtMS44bC45IDB6TTU2LjcgMTk2LjJjLjktMyAxLjktNi4xIDIuOS05LjFsLTIuOSA5LjF6TTEzMiA0MjNsMy44IDIuN2MtMS4zLS45LTIuNS0xLjgtMy44LTIuN3ptMjQ4LjEtLjFjLTEuMyAxLTIuNyAyLTQgMi45bDQtMi45em03NS4yLTIyNi42bC0zLTkuMmMxLjEgMyAyLjEgNi4xIDMgOS4yek0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptMTQuMS0zMjUuN2MtOC40LTYuMS0xOS44LTYuMS0yOC4yIDBMMTk0IDIyMWMtOC40IDYuMS0xMS45IDE2LjktOC43IDI2LjhsMTguMyA1Ni4zYzMuMiA5LjkgMTIuNCAxNi42IDIyLjggMTYuNmg1OS4yYzEwLjQgMCAxOS42LTYuNyAyMi44LTE2LjZsMTguMy01Ni4zYzMuMi05LjktLjMtMjAuNy04LjctMjYuOGwtNDcuOS0zNC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdHZW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTY4LjUgNzJMMjU2IDE2NWw4Ny41LTkzaC0xNzV6TTM4My45IDk5LjFMMzExLjUgMTc2aDEyOUwzODMuOSA5OS4xem01MCAxMjQuOUgyNTYgNzguMUwyNTYgNDIwLjMgNDMzLjkgMjI0ek03MS41IDE3NmgxMjlMMTI4LjEgOTkuMSA3MS41IDE3NnptNDM0LjMgNDAuMWwtMjMyIDI1NmMtNC41IDUtMTEgNy45LTE3LjggNy45cy0xMy4yLTIuOS0xNy44LTcuOWwtMjMyLTI1NmMtNy43LTguNS04LjMtMjEuMi0xLjUtMzAuNGwxMTItMTUyYzQuNS02LjEgMTEuNy05LjggMTkuMy05LjhIMzc2YzcuNiAwIDE0LjggMy42IDE5LjMgOS44bDExMiAxNTJjNi44IDkuMiA2LjEgMjEuOS0xLjUgMzAuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSGFuZEJhY2tGaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NCA2NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2YzAgOS4xIDUuMSAxNy40IDEzLjMgMjEuNXMxNy45IDMuMiAyNS4xLTIuM2MyLjctMiA2LTMuMiA5LjYtMy4yYzguOCAwIDE2IDcuMiAxNiAxNmMwIDkuMSA1LjEgMTcuNCAxMy4zIDIxLjVzMTcuOSAzLjIgMjUuMS0yLjNjMi43LTIgNi0zLjIgOS42LTMuMmM4LjggMCAxNiA3LjIgMTYgMTZjMCA5LjEgNS4xIDE3LjQgMTMuMyAyMS41czE3LjkgMy4yIDI1LjEtMi4zYzIuNy0yIDYtMy4yIDkuNi0zLjJjOC44IDAgMTYgNy4yIDE2IDE2VjI2NGMwIDMxLjMtMjAgNTgtNDggNjcuOWMtOS42IDMuNC0xNiAxMi41LTE2IDIyLjZWNDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMzcwLjJjMzgtMjAuMSA2NC02MC4xIDY0LTEwNi4yVjE2MGMwLTM1LjMtMjguNy02NC02NC02NGMtMi44IDAtNS42IC4yLTguMyAuNUMzMzIuOCA3Ny4xIDMxMS45IDY0IDI4OCA2NGMtMi44IDAtNS42IC4yLTguMyAuNUMyNjguOCA0NS4xIDI0Ny45IDMyIDIyNCAzMmMtMi44IDAtNS42IC4yLTguMyAuNUMyMDQuOCAxMy4xIDE4My45IDAgMTYwIDBDMTI0LjcgMCA5NiAyOC43IDk2IDY0djY0LjNjLTExLjcgNy40LTIyLjUgMTYuNC0zMiAyNi45bDE3LjggMTYuMUw2NCAxNTUuMmwtOS40IDEwLjVDNDAgMTgxLjggMzIgMjAyLjggMzIgMjI0LjZ2MTIuOGMwIDQ5LjYgMjQuMiA5Ni4xIDY0LjggMTI0LjVsMTMuOC0xOS43TDk2LjggMzYxLjlsOC45IDYuMmM2LjkgNC44IDE0LjQgOC42IDIyLjMgMTEuM1Y0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYzNTkuOWMwLTEyLjYtOS44LTIzLjEtMjIuNC0yMy45Yy03LjMtLjUtMTQuMy0yLjktMjAuMy03LjFsLTEzLjEgMTguNyAxMy4xLTE4LjctOC45LTYuMkM5Ni42IDMwMy4xIDgwIDI3MS4zIDgwIDIzNy40VjIyNC42YzAtOS45IDMuNy0xOS40IDEwLjMtMjYuOGw5LjQtMTAuNWMzLjgtNC4yIDcuOS04LjEgMTIuMy0xMS42VjIwOGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjE0Mi4zIDEyOCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSGFuZExpemFyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03MiAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRIMjQwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0SDEzNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNEgyODhjNC41IDAgOC45IDEuMyAxMi43IDMuNmw2NCA0MGM3IDQuNCAxMS4zIDEyLjEgMTEuMyAyMC40djI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjQxMy4zTDI4MS4xIDM4NEgxMzZjLTM5LjggMC03Mi0zMi4yLTcyLTcyczMyLjItNzIgNzItNzJIMjQwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDcyYy0zOS44IDAtNzItMzIuMi03Mi03MlMzMi4yIDY0IDcyIDY0SDI4MS42YzQ2LjcgMCA5MC45IDIxLjUgMTE5LjcgNTguM2w3OC40IDEwMC4xYzIwLjkgMjYuNyAzMi4zIDU5LjcgMzIuMyA5My43VjQyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYzMTYuMWMwLTIzLjItNy44LTQ1LjgtMjIuMS02NC4xTDM2My41IDE1MS45Yy0xOS43LTI1LjItNDkuOS0zOS45LTgxLjktMzkuOUg3MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSGFuZFBlYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1MC44IDEuNGMtMzUuMi0zLjctNjYuNiAyMS44LTcwLjMgNTdMMTc0IDExOSAxNTYuNyA2OS42QzE0NSAzNi4zIDEwOC40IDE4LjggNzUuMSAzMC41UzI0LjIgNzguOCAzNS45IDExMi4xTDg4LjcgMjYyLjJDNzMuNSAyNzYuNyA2NCAyOTcuMyA2NCAzMjB2MCAyNGMwIDkyLjggNzUuMiAxNjggMTY4IDE2OGg0OGM5Mi44IDAgMTY4LTc1LjIgMTY4LTE2OFYyNzIgMjU2IDIyNGMwLTM1LjMtMjguNy02NC02NC02NGMtNy45IDAtMTUuNCAxLjQtMjIuNCA0Yy0xMC40LTIxLjMtMzIuMy0zNi01Ny42LTM2Yy0uNyAwLTEuNSAwLTIuMiAwbDUuOS01Ni4zYzMuNy0zNS4yLTIxLjgtNjYuNi01Ny03MC4zem0tLjIgMTU1LjRDMjQzLjkgMTY2LjkgMjQwIDE3OSAyNDAgMTkydjQ4YzAgLjcgMCAxLjQgMCAyYy01LjEtMS4zLTEwLjUtMi0xNi0yaC03LjRsLTUuNC0xNS4zIDE3LTE2MS4zYy45LTguOCA4LjgtMTUuMiAxNy42LTE0LjJzMTUuMiA4LjggMTQuMiAxNy42bC05LjUgOTAuMXpNMTExLjQgODUuNkwxNjUuNyAyNDBIMTQ0Yy00IDAtOCAuMy0xMS45IC45TDgxLjIgOTYuMmMtMi45LTguMyAxLjUtMTcuNSA5LjgtMjAuNHMxNy41IDEuNSAyMC40IDkuOHpNMjg4IDE5MmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djMyIDE2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjE5MnptMzguNCAxMDhjMTAuNCAyMS4zIDMyLjMgMzYgNTcuNiAzNmM1LjUgMCAxMC45LS43IDE2LTJ2MTBjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBIMjMyYy02Ni4zIDAtMTIwLTUzLjctMTIwLTEyMGwwLTI0IDAgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmg4MGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxODRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoNDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRjMC0uNyAwLTEuNCAwLTJjNS4xIDEuMyAxMC41IDIgMTYgMmM3LjkgMCAxNS40LTEuNCAyMi40LTR6TTQwMCAyNzJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMjQwIDIyNGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djMyIDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kUG9pbnREb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDQ0OGwwLTE3Ny42YzUuMiAxIDEwLjUgMS42IDE2IDEuNmwxNiAwIDAgMzIgMCAxNDRjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZ6TTgwIDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJjMCAwIDAgMCAwIDBsMC0yNGMwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMGw0OCAwYzUyLjUgMCA5Ny4xIDMzLjcgMTEzLjQgODAuN2MtMy4xLS41LTYuMi0uNy05LjQtLjdjLTIwIDAtMzcuOSA5LjItNDkuNyAyMy42Yy05LTQuOS0xOS40LTcuNi0zMC4zLTcuNmMtMTUuMSAwLTI5IDUuMy00MCAxNGMtMTEtOC44LTI0LjktMTQtNDAtMTRsLTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDAgMC00MCAwek0wIDE5MnMwIDAgMCAwYzAgMTggNiAzNC42IDE2IDQ4bDAgMjA4YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRsMC04MmM1LjEgMS4zIDEwLjUgMiAxNiAyYzI1LjMgMCA0Ny4yLTE0LjcgNTcuNi0zNmM3IDIuNiAxNC41IDQgMjIuNCA0YzIwIDAgMzcuOS05LjIgNDkuNy0yMy42YzkgNC45IDE5LjQgNy42IDMwLjMgNy42YzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjQgMC0yNEMzODQgNzUuMiAzMDguOCAwIDIxNiAwTDE2OCAwQzc1LjIgMCAwIDc1LjIgMCAxNjhsMCAyNHptMzM2IDY0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDggMC0xNmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNjR6TTE2MCAyNzJjNS41IDAgMTAuOS0uNyAxNi0ybDAgMiAwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMzIgMTYgMHptNjQtMjRsMC00MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNDggMCAxNmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kUG9pbnRMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDEyOGwxNzcuNiAwYy0xIDUuMi0xLjYgMTAuNS0xLjYgMTZsMCAxNi0zMiAwTDY0IDE2MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMjI0IDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMyYzAgMCAwIDAgMCAwbDI0IDBjNjYuMyAwIDEyMCA1My43IDEyMCAxMjBsMCA0OGMwIDUyLjUtMzMuNyA5Ny4xLTgwLjcgMTEzLjRjLjUtMy4xIC43LTYuMiAuNy05LjRjMC0yMC05LjItMzcuOS0yMy42LTQ5LjdjNC45LTkgNy42LTE5LjQgNy42LTMwLjNjMC0xNS4xLTUuMy0yOS0xNC00MGM4LjgtMTEgMTQtMjQuOSAxNC00MGwwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00MCAwLTQwem0zMi04MHMwIDAgMCAwYy0xOCAwLTM0LjYgNi00OCAxNkw2NCA4MEMyOC43IDgwIDAgMTA4LjcgMCAxNDRzMjguNyA2NCA2NCA2NGw4MiAwYy0xLjMgNS4xLTIgMTAuNS0yIDE2YzAgMjUuMyAxNC43IDQ3LjIgMzYgNTcuNmMtMi42IDctNCAxNC41LTQgMjIuNGMwIDIwIDkuMiAzNy45IDIzLjYgNDkuN2MtNC45IDktNy42IDE5LjQtNy42IDMwLjNjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNjQgMCAyNCAwYzkyLjggMCAxNjgtNzUuMiAxNjgtMTY4bDAtNDhjMC05Mi44LTc1LjItMTY4LTE2OC0xNjhsLTI0IDB6TTI1NiA0MDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNDggMCAxNiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC02NCAwek0yNDAgMjI0YzAgNS41IC43IDEwLjkgMiAxNmwtMiAwLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMzIgMCAwIDE2em0yNCA2NGw0MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC00OCAwLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSGFuZFBvaW50UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDEyOGwtMTc3LjYgMGMxIDUuMiAxLjYgMTAuNSAxLjYgMTZsMCAxNiAzMiAwIDE0NCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2ek0yMjQgMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyYzAgMCAwIDAgMCAwbC0yNCAwYy02Ni4zIDAtMTIwIDUzLjctMTIwIDEyMGwwIDQ4YzAgNTIuNSAzMy43IDk3LjEgODAuNyAxMTMuNGMtLjUtMy4xLS43LTYuMi0uNy05LjRjMC0yMCA5LjItMzcuOSAyMy42LTQ5LjdjLTQuOS05LTcuNi0xOS40LTcuNi0zMC4zYzAtMTUuMSA1LjMtMjkgMTQtNDBjLTguOC0xMS0xNC0yNC45LTE0LTQwbDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00MCAwLTQwek0xOTIgNjRzMCAwIDAgMGMxOCAwIDM0LjYgNiA0OCAxNmwyMDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtODIgMGMxLjMgNS4xIDIgMTAuNSAyIDE2YzAgMjUuMy0xNC43IDQ3LjItMzYgNTcuNmMyLjYgNyA0IDE0LjUgNCAyMi40YzAgMjAtOS4yIDM3LjktMjMuNiA0OS43YzQuOSA5IDcuNiAxOS40IDcuNiAzMC4zYzAgMzUuMy0yOC43IDY0LTY0IDY0bC02NCAwLTI0IDBDNzUuMiA0NDggMCAzNzIuOCAwIDI4MGwwLTQ4QzAgMTM5LjIgNzUuMiA2NCAxNjggNjRsMjQgMHptNjQgMzM2YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC00OCAwLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNjQgMHptMTYtMTc2YzAgNS41LS43IDEwLjktMiAxNmwyIDAgMzIgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMzIgMCAwIDE2em0tMjQgNjRsLTQwIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNDggMCAxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0yNCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kUG9pbnRVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA2NFYyNDEuNmM1LjItMSAxMC41LTEuNiAxNi0xLjZIOTZWMjA4IDY0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2ek04MCAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyYzAgMCAwIDAgMCAwdjI0YzAgNjYuMyA1My43IDEyMCAxMjAgMTIwaDQ4YzUyLjUgMCA5Ny4xLTMzLjcgMTEzLjQtODAuN2MtMy4xIC41LTYuMiAuNy05LjQgLjdjLTIwIDAtMzcuOS05LjItNDkuNy0yMy42Yy05IDQuOS0xOS40IDcuNi0zMC4zIDcuNmMtMTUuMSAwLTI5LTUuMy00MC0xNGMtMTEgOC44LTI0LjkgMTQtNDAgMTRIMTIwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0aDQwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDEyMCA4MHpNMCAzMjBzMCAwIDAgMGMwLTE4IDYtMzQuNiAxNi00OFY2NEMxNiAyOC43IDQ0LjcgMCA4MCAwczY0IDI4LjcgNjQgNjR2ODJjNS4xLTEuMyAxMC41LTIgMTYtMmMyNS4zIDAgNDcuMiAxNC43IDU3LjYgMzZjNy0yLjYgMTQuNS00IDIyLjQtNGMyMCAwIDM3LjkgOS4yIDQ5LjcgMjMuNmM5LTQuOSAxOS40LTcuNiAzMC4zLTcuNmMzNS4zIDAgNjQgMjguNyA2NCA2NHY2NCAyNGMwIDkyLjgtNzUuMiAxNjgtMTY4IDE2OEgxNjhDNzUuMiA1MTIgMCA0MzYuOCAwIDM0NFYzMjB6bTMzNi02NGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnY0OCAxNmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjI1NnpNMTYwIDI0MGM1LjUgMCAxMC45IC43IDE2IDJ2LTJWMjA4YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2djMyaDE2em02NCAyNHY0MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjI1NiAyNDBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2MjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmRQb2ludGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCA2NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2VjIwMGMwIDEwLjMgNi42IDE5LjUgMTYuNCAyMi44czIwLjYtLjEgMjYuOC04LjNjMy0zLjkgNy42LTYuNCAxMi44LTYuNGM4LjggMCAxNiA3LjIgMTYgMTZjMCAxMC4zIDYuNiAxOS41IDE2LjQgMjIuOHMyMC42LS4xIDI2LjgtOC4zYzMtMy45IDcuNi02LjQgMTIuOC02LjRjNy44IDAgMTQuMyA1LjYgMTUuNyAxM2MxLjYgOC4yIDcuMyAxNS4xIDE1LjEgMThzMTYuNyAxLjYgMjMuMy0zLjZjMi43LTIuMSA2LjEtMy40IDkuOS0zLjRjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZWMzkyYzAgMzkuOC0zMi4yIDcyLTcyIDcySDI3MiAyMTIuM2gtLjljLTM3LjQgMC03Mi40LTE4LjctOTMuMi00OS45TDUwLjcgMzEyLjljLTQuOS03LjQtMi45LTE3LjMgNC40LTIyLjJzMTcuMy0yLjkgMjIuMiA0LjRMMTE2IDM1My4yYzUuOSA4LjggMTYuOCAxMi43IDI2LjkgOS43czE3LTEyLjQgMTctMjNWMzIwIDY0ek0xNzYgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRWMjYxLjdDOTEuMiAyMzggNTUuNSAyMzIuOCAyOC41IDI1MC43Qy0uOSAyNzAuNC04LjkgMzEwLjEgMTAuOCAzMzkuNUw3OC4zIDQ0MC44YzI5LjcgNDQuNSA3OS42IDcxLjIgMTMzLjEgNzEuMmguOUgyNzJoNTZjNjYuMyAwIDEyMC01My43IDEyMC0xMjBWMjg4bDAtMTZjMC0zNS4zLTI4LjctNjQtNjQtNjRjLTQuNSAwLTguOCAuNS0xMyAxLjNjLTExLjctMTUuNC0zMC4yLTI1LjMtNTEtMjUuM2MtNi45IDAtMTMuNSAxLjEtMTkuNyAzLjFDMjg4LjcgMTcwLjcgMjY5LjYgMTYwIDI0OCAxNjBjLTIuNyAwLTUuNCAuMi04IC41VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0em00OCAzMDRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2OTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYzMDR6bTQ4LTE2Yy04LjggMC0xNiA3LjItMTYgMTZ2OTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYzMDRjMC04LjgtNy4yLTE2LTE2LTE2em04MCAxNmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnY5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjMwNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSGFuZFNjaXNzb3JzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTS4yIDI3Ni4zYy0xLjItMzUuMyAyNi40LTY1IDYxLjctNjYuMmwzLjMtLjFMNTcgMjA4LjFDMjIuNSAyMDAuNSAuNyAxNjYuMyA4LjMgMTMxLjhTNTAuMiA3NS41IDg0LjcgODMuMmwxNzMgMzguM2MyLjMtMi45IDQuNy01LjcgNy4xLTguNWwxOC40LTIwLjNDMjk5LjkgNzQuNSAzMjMuNSA2NCAzNDguMyA2NGwxMC4yIDBjNTQuMSAwIDEwNC4xIDI4LjcgMTMxLjMgNzUuNGwxLjUgMi42YzEzLjYgMjMuMiAyMC43IDQ5LjcgMjAuNyA3Ni42TDUxMiAzNDRjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBsLTggMC05NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGMwLTIuOCAuMi01LjYgLjUtOC4zYy0xOS40LTExLTMyLjUtMzEuOC0zMi41LTU1LjdjMC0uOCAwLTEuNiAwLTIuNEw2Ni40IDMzOGMtMzUuMyAxLjItNjUtMjYuNC02Ni4yLTYxLjd6bTYzLjQtMTguMmMtOC44IC4zLTE1LjcgNy43LTE1LjQgMTYuNXM3LjcgMTUuNyAxNi41IDE1LjRsMTYxLjUtNS42YzkuOC0uMyAxOC43IDUuMyAyMi43IDE0LjJzMi4yIDE5LjMtNC41IDI2LjRjLTIuOCAyLjktNC40IDYuNy00LjQgMTFjMCA4LjggNy4yIDE2IDE2IDE2YzkuMSAwIDE3LjQgNS4xIDIxLjUgMTMuM3MzLjIgMTcuOS0yLjMgMjUuMWMtMiAyLjctMy4yIDYtMy4yIDkuNmMwIDguOCA3LjIgMTYgMTYgMTZsOTYgMCA4IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJsMC0xMjUuNGMwLTE4LjQtNC45LTM2LjUtMTQuMi01Mi40bC0xLjUtMi42Yy0xOC42LTMyLTUyLjgtNTEuNi04OS44LTUxLjZsLTEwLjIgMGMtMTEuMyAwLTIyIDQuOC0yOS42IDEzLjFsLTE3LjUtMTUuOSAxNy41IDE1LjktMTguNCAyMC4zYy0uNiAuNi0xLjEgMS4zLTEuNyAxLjlsNTcgMTMuMmM4LjYgMiAxNCAxMC42IDEyIDE5LjJzLTEwLjYgMTQtMTkuMiAxMmwtODUuNi0xOS43TDc0LjMgMTMwYy04LjYtMS45LTE3LjIgMy41LTE5LjEgMTIuMnMzLjUgMTcuMiAxMi4yIDE5LjFsMTg3LjUgNDEuNmMxMC4yIDIuMyAxNy44IDEwLjkgMTguNyAyMS40bC4xIDFjLjYgNi42LTEuNSAxMy4xLTUuOCAxOC4xcy0xMC42IDcuOS0xNy4yIDguMkw2My42IDI1OC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kU3BvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcwLjIgODAuOEMxNjEgNDcgMTgwLjggMTIgMjE0LjYgMi40YzM0LTkuNiA2OS40IDEwLjIgNzkgNDQuMmwzMC4zIDEwNy4xTDMzNy4xIDg0YzYuNi0zNC43IDQwLjEtNTcuNSA3NC44LTUwLjljMzEuNCA2IDUzIDMzLjkgNTIgNjQuOWMxMC0yLjYgMjAuOC0yLjggMzEuNS0uMWMzNC4zIDguNiA1NS4xIDQzLjMgNDYuNiA3Ny42TDQ4Ni43IDM5Ny4yQzQ2OS44IDQ2NC43IDQwOS4yIDUxMiAzMzkuNiA1MTJjLTExLjIgMC0yMi41IDAtMzMuNyAwYy01Ni45IDAtMTEyLjItMTktMTU3LjItNTMuOWwtOTItNzEuNmMtMjcuOS0yMS43LTMyLjktNjEuOS0xMS4yLTg5LjhzNjEuOS0zMi45IDg5LjgtMTEuMmwxNyAxMy4yTDEwMC41IDE2Ny41Yy0xMy0zMi45IDMuMi03MC4xIDM2LTgzYzExLjEtNC40IDIyLjctNS40IDMzLjctMy43em03Ny4xLTIxLjJjLTIuNC04LjUtMTEuMi0xMy40LTE5LjctMTFzLTEzLjQgMTEuMi0xMSAxOS43bDU0LjggMTgyLjRjMy41IDEyLjMtMy4zIDI1LjItMTUuNCAyOS4zcy0yNS4zLTItMzAtMTMuOUwxNzQuOSAxMzguMWMtMy4yLTguMi0xMi41LTEyLjMtMjAuOC05cy0xMi4zIDEyLjUtOSAyMC44bDczLjMgMTg1LjZjMTIgMzAuMy0yMy43IDU3LTQ5LjQgMzdsLTYzLjEtNDkuMWMtNy01LjQtMTctNC4yLTIyLjUgMi44cy00LjIgMTcgMi44IDIyLjVsOTIgNzEuNmMzNi41IDI4LjQgODEuNCA0My44IDEyNy43IDQzLjhjMTEuMiAwIDIyLjUgMCAzMy43IDBjNDcuNSAwIDg5LTMyLjQgMTAwLjUtNzguNWw1NS40LTIyMS42YzIuMS04LjYtMy4xLTE3LjMtMTEuNi0xOS40cy0xNy4zIDMuMS0xOS40IDExLjZsLTI2IDEwNEM0MzUuNiAyNzEuOCA0MjUgMjgwIDQxMyAyODBjLTE2LjUgMC0yOC45LTE1LTI1LjgtMzEuMkw0MTUuNyA5OWMxLjctOC43LTQtMTcuMS0xMi43LTE4LjdzLTE3LjEgNC0xOC43IDEyLjdMMzUyLjUgMjYwYy0yLjIgMTEuNi0xMi40IDIwLTI0LjIgMjBjLTExIDAtMjAuNy03LjMtMjMuNy0xNy45TDI0Ny40IDU5LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDBjLTI1LjMgMC00Ny4yIDE0LjctNTcuNiAzNmMtNy0yLjYtMTQuNS00LTIyLjQtNGMtMzUuMyAwLTY0IDI4LjctNjQgNjRWMjYxLjVsLTIuNy0yLjdjLTI1LTI1LTY1LjUtMjUtOTAuNSAwcy0yNSA2NS41IDAgOTAuNUwxMDYuNSA0MzdjNDggNDggMTEzLjEgNzUgMTgxIDc1SDI5Nmg4YzEuNSAwIDMtLjEgNC41LS40YzkxLjctNi4yIDE2NS03OS40IDE3MS4xLTE3MS4xYy4zLTEuNSAuNC0zIC40LTQuNVYxNjBjMC0zNS4zLTI4LjctNjQtNjQtNjRjLTUuNSAwLTEwLjkgLjctMTYgMlY5NmMwLTM1LjMtMjguNy02NC02NC02NGMtNy45IDAtMTUuNCAxLjQtMjIuNCA0QzMwMy4yIDE0LjcgMjgxLjMgMCAyNTYgMHpNMjQwIDk2LjFjMCAwIDAtLjEgMC0uMVY2NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2Vjk1LjljMCAwIDAgLjEgMCAuMVYyMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFY5NmMwIDAgMCAwIDAtLjFjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnY1NS45YzAgMCAwIC4xIDAgLjF2ODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYxNjAuMWMwIDAgMC0uMSAwLS4xYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZWMzMyLjljLS4xIC42LS4xIDEuMy0uMiAxLjljLTMuNCA2OS43LTU5LjMgMTI1LjYtMTI5IDEyOWMtLjYgMC0xLjMgLjEtMS45IC4ySDI5NmgtOC41Yy01NS4yIDAtMTA4LjEtMjEuOS0xNDcuMS02MC45TDUyLjcgMzE1LjNjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEwxMTkgMzM2LjRjNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMnMxNC44LTEyLjUgMTQuOC0yMi4yVjk2YzAtOC44IDcuMi0xNiAxNi0xNmM4LjggMCAxNiA3LjEgMTYgMTUuOVYyMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFY5Ni4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kc2hha2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyLjIgNjQuNmwtNTEuMSA1MS4xYy0xNS4zIDQuMi0yOS41IDExLjktNDEuNSAyMi41TDE1MyAxNjEuOUMxNDIuOCAxNzEgMTI5LjUgMTc2IDExNS44IDE3Nkg5NlYzMDRjMjAuNCAuNiAzOS44IDguOSA1NC4zIDIzLjRsMzUuNiAzNS42IDcgNyAwIDBMMjE5LjkgMzk3YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwYzEuNy0xLjcgMy0zLjcgMy43LTUuOGMyLjgtNy43IDkuMy0xMy41IDE3LjMtMTUuM3MxNi40IC42IDIyLjIgNi41TDI5Ni41IDM5M2MxMS42IDExLjYgMzAuNCAxMS42IDQxLjkgMGM1LjQtNS40IDguMy0xMi4zIDguNi0xOS40Yy40LTguOCA1LjYtMTYuNiAxMy42LTIwLjRzMTcuMy0zIDI0LjQgMi4xYzkuNCA2LjcgMjIuNSA1LjggMzAuOS0yLjZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMMzQwLjEgMjQzbC0zNS44IDMzYy0yNy4zIDI1LjItNjkuMiAyNS42LTk3IC45Yy0zMS43LTI4LjItMzIuNC03Ny40LTEuNi0xMDYuNWw3MC4xLTY2LjJDMzAzLjIgNzguNCAzMzkuNCA2NCAzNzcuMSA2NGMzNi4xIDAgNzEgMTMuMyA5Ny45IDM3LjJMNTA1LjEgMTI4SDU0NGg0MCA0MGM4LjggMCAxNiA3LjIgMTYgMTZWMzUyYzAgMTcuNy0xNC4zIDMyLTMyIDMySDU3NmMtMTEuOCAwLTIyLjItNi40LTI3LjctMTZINDYzLjRjLTMuNCA2LjctNy45IDEzLjEtMTMuNSAxOC43Yy0xNy4xIDE3LjEtNDAuOCAyMy44LTYzIDIwLjFjLTMuNiA3LjMtOC41IDE0LjEtMTQuNiAyMC4yYy0yNy4zIDI3LjMtNzAgMzAtMTAwLjQgOC4xYy0yNS4xIDIwLjgtNjIuNSAxOS41LTg2LTQuMUwxNTkgNDA0bC03LTctMzUuNi0zNS42Yy01LjUtNS41LTEyLjctOC43LTIwLjQtOS4zQzk2IDM2OS43IDgxLjYgMzg0IDY0IDM4NEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMTQ0YzAtOC44IDcuMi0xNiAxNi0xNkg1NiA5NmgxOS44YzIgMCAzLjktLjcgNS4zLTJsMjYuNS0yMy42QzE3NS41IDc3LjcgMjExLjQgNjQgMjQ4LjcgNjRIMjU5YzQuNCAwIDguOSAuMiAxMy4yIC42ek01NDQgMzIwVjE3Nkg0OTZjLTUuOSAwLTExLjYtMi4yLTE1LjktNi4xbC0zNi45LTMyLjhjLTE4LjItMTYuMi00MS43LTI1LjEtNjYuMS0yNS4xYy0yNS40IDAtNDkuOCA5LjctNjguMyAyNy4xbC03MC4xIDY2LjJjLTEwLjMgOS44LTEwLjEgMjYuMyAuNSAzNS43YzkuMyA4LjMgMjMuNCA4LjEgMzIuNS0uM2w3MS45LTY2LjRjOS43LTkgMjQuOS04LjQgMzMuOSAxLjRzOC40IDI0LjktMS40IDMzLjlsLS44IC44IDc0LjQgNzQuNGMxMCAxMCAxNi41IDIyLjMgMTkuNCAzNS4xSDU0NHpNNjQgMzM2YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTUyOCAxNmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhcmREcml2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2VjI1OGM1LjEtMS4zIDEwLjUtMiAxNi0ySDQ0OGM1LjUgMCAxMC45IC43IDE2IDJWOTZjMC04LjgtNy4yLTE2LTE2LTE2SDY0ek00OCAzMjB2OTZjMCA4LjggNy4yIDE2IDE2IDE2SDQ0OGM4LjggMCAxNi03LjIgMTYtMTZWMzIwYzAtOC44LTcuMi0xNi0xNi0xNkg2NGMtOC44IDAtMTYgNy4yLTE2IDE2ek0wIDMyMFY5NkMwIDYwLjcgMjguNyAzMiA2NCAzMkg0NDhjMzUuMyAwIDY0IDI4LjcgNjQgNjRWMzIwdjk2YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYzMjB6bTI4MCA0OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIZWFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjUuOCA0NjguMmwtMi41LTIuM0w0OC4xIDMwMy4yQzE3LjQgMjc0LjcgMCAyMzQuNyAwIDE5Mi44di0zLjNjMC03MC40IDUwLTEzMC44IDExOS4yLTE0NEMxNTguNiAzNy45IDE5OC45IDQ3IDIzMSA2OS42YzkgNi40IDE3LjQgMTMuOCAyNSAyMi4zYzQuMi00LjggOC43LTkuMiAxMy41LTEzLjNjMy43LTMuMiA3LjUtNi4yIDExLjUtOWMwIDAgMCAwIDAgMEMzMTMuMSA0NyAzNTMuNCAzNy45IDM5Mi44IDQ1LjRDNDYyIDU4LjYgNTEyIDExOS4xIDUxMiAxODkuNXYzLjNjMCA0MS45LTE3LjQgODEuOS00OC4xIDExMC40TDI4OC43IDQ2NS45bC0yLjUgMi4zYy04LjIgNy42LTE5IDExLjktMzAuMiAxMS45cy0yMi00LjItMzAuMi0xMS45ek0yMzkuMSAxNDVjLS40LS4zLS43LS43LTEtMS4xbC0xNy44LTIwYzAgMC0uMS0uMS0uMS0uMWMwIDAgMCAwIDAgMGMtMjMuMS0yNS45LTU4LTM3LjctOTItMzEuMkM4MS42IDEwMS41IDQ4IDE0Mi4xIDQ4IDE4OS41djMuM2MwIDI4LjUgMTEuOSA1NS44IDMyLjggNzUuMkwyNTYgNDMwLjcgNDMxLjIgMjY4YzIwLjktMTkuNCAzMi44LTQ2LjcgMzIuOC03NS4ydi0zLjNjMC00Ny4zLTMzLjYtODgtODAuMS05Ni45Yy0zNC02LjUtNjkgNS40LTkyIDMxLjJjMCAwIDAgMC0uMSAuMXMwIDAtLjEgLjFsLTE3LjggMjBjLS4zIC40LS43IC43LTEgMS4xYy00LjUgNC41LTEwLjYgNy0xNi45IDdzLTEyLjQtMi41LTE2LjktN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSG9zcGl0YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMyIDBjLTM5LjggMC03MiAzMi4yLTcyIDcydjhINzJDMzIuMiA4MCAwIDExMi4yIDAgMTUyVjQ0MGMwIDM5LjggMzIuMiA3MiA3MiA3MmguMiAuMiAuMiAuMiAuMkg3M2guMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMkg3NWguMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMkg3N2guMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMkg3OWguMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMkg4MmguMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMkg4NWguMiAuMiAuMiAuMkg4NmguMiAuMiAuMiAuMkg4N2guMiAuMiAuMiAuMkg4OGguMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMkg5OGguMiAuMiAuMiAuMkg5OWguMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMiAuMnYwSDQ1Nmg4djBINTY4YzM5LjggMCA3Mi0zMi4yIDcyLTcyVjE1MmMwLTM5LjgtMzIuMi03Mi03Mi03Mkg0ODBWNzJjMC0zOS44LTMyLjItNzItNzItNzJIMjMyek00ODAgMTI4aDg4YzEzLjMgMCAyNCAxMC43IDI0IDI0djQwSDUzNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGg1NnY0OEg1MzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoNTZWNDQwYzAgMTMuMy0xMC43IDI0LTI0IDI0SDQ4MFYzMzYgMTI4ek03MiAxMjhoODhWNDY0aC0uMS0uMi0uMi0uMkgxNTloLS4yLS4yLS4ySDE1OGgtLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjJIMTU0aC0uMi0uMi0uMkgxNTNoLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4ySDE1MGgtLjItLjItLjJIMTQ5aC0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMkgxNDZoLS4yLS4yLS4ySDE0NWgtLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjJIMTQyaC0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMkgxMzloLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4ySDEzNmgtLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjJIMTMzaC0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMkgxMzFoLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4ySDEyOGgtLjItLjItLjItLjItLjItLjItLjItLjJIMTI2aC0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMkgxMjRoLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4ySDEyMmgtLjItLjItLjItLjItLjItLjItLjItLjJIMTIwaC0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMkgxMThoLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4ySDExNmgtLjItLjItLjItLjItLjItLjItLjItLjJIMTE0aC0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMkgxMTFoLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4ySDEwOGgtLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjJIMTA1aC0uMi0uMi0uMi0uMkgxMDRoLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4ySDEwMGgtLjItLjItLjItLjJIOTloLS4yLS4yLS4yLS4ySDk4aC0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMkg4OGgtLjItLjItLjItLjJIODdoLS4yLS4yLS4yLS4ySDg2aC0uMi0uMi0uMi0uMkg4NWgtLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjJIODJoLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4ySDc5aC0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMkg3N2gtLjItLjItLjItLjItLjItLjItLjItLjItLjItLjJINzVoLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4ySDczaC0uMi0uMi0uMi0uMi0uMkg3MmMtMTMuMiAwLTI0LTEwLjctMjQtMjRWMzM2aDU2YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDQ4VjI0MGg1NmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEg0OFYxNTJjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTIwOCA3MmMwLTEzLjMgMTAuNy0yNCAyNC0yNEg0MDhjMTMuMyAwIDI0IDEwLjcgMjQgMjRWMzM2IDQ2NEgzNjhWNDAwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4djY0SDIwOFY3MnptODggMjR2MjRIMjcyYy04LjggMC0xNiA3LjItMTYgMTZ2MTZjMCA4LjggNy4yIDE2IDE2IDE2aDI0djI0YzAgOC44IDcuMiAxNiAxNiAxNmgxNmM4LjggMCAxNi03LjIgMTYtMTZWMTY4aDI0YzguOCAwIDE2LTcuMiAxNi0xNlYxMzZjMC04LjgtNy4yLTE2LTE2LTE2SDM0NFY5NmMwLTguOC03LjItMTYtMTYtMTZIMzEyYy04LjggMC0xNiA3LjItMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hvdXJnbGFzc0hhbGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyNEMwIDEwLjcgMTAuNyAwIDI0IDBIMzYwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0aC04VjY3YzAgNDAuMy0xNiA3OS00NC41IDEwNy41TDIyNS45IDI1Nmw4MS41IDgxLjVDMzM2IDM2NiAzNTIgNDA0LjcgMzUyIDQ0NXYxOWg4YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0aDhWNDQ1YzAtNDAuMyAxNi03OSA0NC41LTEwNy41TDE1OC4xIDI1NiA3Ni41IDE3NC41QzQ4IDE0NiAzMiAxMDcuMyAzMiA2N1Y0OEgyNEMxMC43IDQ4IDAgMzcuMyAwIDI0ek0xMTAuNSAzNzEuNWMtMy45IDMuOS03LjUgOC4xLTEwLjcgMTIuNUgyODQuMmMtMy4yLTQuNC02LjgtOC42LTEwLjctMTIuNUwxOTIgMjg5LjlsLTgxLjUgODEuNXpNMjg0LjIgMTI4QzI5NyAxMTAuNCAzMDQgODkgMzA0IDY3VjQ4SDgwVjY3YzAgMjIuMSA3IDQzLjQgMTkuOCA2MUgyODQuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSG91cmdsYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0IDBDMTAuNyAwIDAgMTAuNyAwIDI0UzEwLjcgNDggMjQgNDhoOFY2N2MwIDQwLjMgMTYgNzkgNDQuNSAxMDcuNUwxNTguMSAyNTYgNzYuNSAzMzcuNUM0OCAzNjYgMzIgNDA0LjcgMzIgNDQ1djE5SDI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0SDM2MGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGgtOFY0NDVjMC00MC4zLTE2LTc5LTQ0LjUtMTA3LjVMMjI1LjkgMjU2bDgxLjUtODEuNUMzMzYgMTQ2IDM1MiAxMDcuMyAzNTIgNjdWNDhoOGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgyNHpNMTkyIDI4OS45bDgxLjUgODEuNUMyOTMgMzkxIDMwNCA0MTcuNCAzMDQgNDQ1djE5SDgwVjQ0NWMwLTI3LjYgMTEtNTQgMzAuNS03My41TDE5MiAyODkuOXptMC02Ny45bC04MS41LTgxLjVDOTEgMTIxIDgwIDk0LjYgODAgNjdWNDhIMzA0VjY3YzAgMjcuNi0xMSA1NC0zMC41IDczLjVMMTkyIDIyMi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdJZEJhZGdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA0OFY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQ4SDY0Yy04LjggMC0xNiA3LjItMTYgMTZWNDQ4YzAgOC44IDcuMiAxNiAxNiAxNkgzMjBjOC44IDAgMTYtNy4yIDE2LTE2VjY0YzAtOC44LTcuMi0xNi0xNi0xNkgyNTZ6TTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwSDMyMGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjY0ek0xNjAgMzIwaDY0YzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgOC44LTcuMiAxNi0xNiAxNkg5NmMtOC44IDAtMTYtNy4yLTE2LTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwem0tMzItOTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdJZENhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI4IDE2MFY0MTZjMCA4LjgtNy4yIDE2LTE2IDE2SDMyMGMwLTQ0LjItMzUuOC04MC04MC04MEgxNzZjLTQ0LjIgMC04MCAzNS44LTgwIDgwSDY0Yy04LjggMC0xNi03LjItMTYtMTZWMTYwSDUyOHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRINTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek0yNzIgMjU2YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHptMTA0LTQ4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDgwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDM3NnptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGg4MGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgzNzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ltYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA4MGM4LjggMCAxNiA3LjIgMTYgMTZWNDE1LjhsLTUtNi41LTEzNi0xNzZjLTQuNS01LjktMTEuNi05LjMtMTktOS4zcy0xNC40IDMuNC0xOSA5LjNMMjAyIDM0MC43bC0zMC41LTQyLjdDMTY3IDI5MS43IDE1OS44IDI4OCAxNTIgMjg4cy0xNSAzLjctMTkuNSAxMC4xbC04MCAxMTJMNDggNDE2LjNsMC0uM1Y5NmMwLTguOCA3LjItMTYgMTYtMTZINDQ4ek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6bTgwIDE5MmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ltYWdlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgODBINTEyYzguOCAwIDE2IDcuMiAxNiAxNlYzMjBjMCA4LjgtNy4yIDE2LTE2IDE2SDQ5MC44TDM4OC4xIDE3OC45Yy00LjQtNi44LTEyLTEwLjktMjAuMS0xMC45cy0xNS43IDQuMS0yMC4xIDEwLjlsLTUyLjIgNzkuOC0xMi40LTE2LjljLTQuNS02LjItMTEuNy05LjgtMTkuNC05LjhzLTE0LjggMy42LTE5LjQgOS44TDE3NS42IDMzNkgxNjBjLTguOCAwLTE2LTcuMi0xNi0xNlY5NmMwLTguOCA3LjItMTYgMTYtMTZ6TTk2IDk2VjMyMGMwIDM1LjMgMjguNyA2NCA2NCA2NEg1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRIMTYwYy0zNS4zIDAtNjQgMjguNy02NCA2NHpNNDggMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMTA2LjcgMCAxMjBWMzQ0YzAgNzUuMSA2MC45IDEzNiAxMzYgMTM2SDQ1NmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgxMzZjLTQ4LjYgMC04OC0zOS40LTg4LTg4VjEyMHptMjA4IDI0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0tleWJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDExMmMtOC44IDAtMTYgNy4yLTE2IDE2VjM4NGMwIDguOCA3LjIgMTYgMTYgMTZINTEyYzguOCAwIDE2LTcuMiAxNi0xNlYxMjhjMC04LjgtNy4yLTE2LTE2LTE2SDY0ek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NEg1MTJjMzUuMyAwIDY0IDI4LjcgNjQgNjRWMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYxMjh6TTE3NiAzMjBINDAwYzguOCAwIDE2IDcuMiAxNiAxNnYxNmMwIDguOC03LjIgMTYtMTYgMTZIMTc2Yy04LjggMC0xNi03LjItMTYtMTZWMzM2YzAtOC44IDcuMi0xNiAxNi0xNnptLTcyLTcyYzAtOC44IDcuMi0xNiAxNi0xNmgxNmM4LjggMCAxNiA3LjIgMTYgMTZ2MTZjMCA4LjgtNy4yIDE2LTE2IDE2SDEyMGMtOC44IDAtMTYtNy4yLTE2LTE2VjI0OHptMTYtOTZoMTZjOC44IDAgMTYgNy4yIDE2IDE2djE2YzAgOC44LTcuMiAxNi0xNiAxNkgxMjBjLTguOCAwLTE2LTcuMi0xNi0xNlYxNjhjMC04LjggNy4yLTE2IDE2LTE2em02NCA5NmMwLTguOCA3LjItMTYgMTYtMTZoMTZjOC44IDAgMTYgNy4yIDE2IDE2djE2YzAgOC44LTcuMiAxNi0xNiAxNkgyMDBjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDh6bTE2LTk2aDE2YzguOCAwIDE2IDcuMiAxNiAxNnYxNmMwIDguOC03LjIgMTYtMTYgMTZIMjAwYy04LjggMC0xNi03LjItMTYtMTZWMTY4YzAtOC44IDcuMi0xNiAxNi0xNnptNjQgOTZjMC04LjggNy4yLTE2IDE2LTE2aDE2YzguOCAwIDE2IDcuMiAxNiAxNnYxNmMwIDguOC03LjIgMTYtMTYgMTZIMjgwYy04LjggMC0xNi03LjItMTYtMTZWMjQ4em0xNi05NmgxNmM4LjggMCAxNiA3LjIgMTYgMTZ2MTZjMCA4LjgtNy4yIDE2LTE2IDE2SDI4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjE2OGMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmgxNmM4LjggMCAxNiA3LjIgMTYgMTZ2MTZjMCA4LjgtNy4yIDE2LTE2IDE2SDM2MGMtOC44IDAtMTYtNy4yLTE2LTE2VjI0OHptMTYtOTZoMTZjOC44IDAgMTYgNy4yIDE2IDE2djE2YzAgOC44LTcuMiAxNi0xNiAxNkgzNjBjLTguOCAwLTE2LTcuMi0xNi0xNlYxNjhjMC04LjggNy4yLTE2IDE2LTE2em02NCA5NmMwLTguOCA3LjItMTYgMTYtMTZoMTZjOC44IDAgMTYgNy4yIDE2IDE2djE2YzAgOC44LTcuMiAxNi0xNiAxNkg0NDBjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDh6bTE2LTk2aDE2YzguOCAwIDE2IDcuMiAxNiAxNnYxNmMwIDguOC03LjIgMTYtMTYgMTZINDQwYy04LjggMC0xNi03LjItMTYtMTZWMTY4YzAtOC44IDcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTGVtb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY4IDgwYy0zLjIgMC02LjIgLjQtOC45IDEuM0MzNDAgODYuOCAzMTMgOTEuOSAyODQuOCA4NC42QzIyNy40IDY5LjcgMTYwLjIgOTIgMTEwLjEgMTQyLjFTMzcuNyAyNTkuNCA1Mi42IDMxNi44YzcuMyAyOC4yIDIuMiA1NS4yLTMuMyA3NC4zYy0uOCAyLjgtMS4zIDUuOC0xLjMgOC45YzAgMTcuNyAxNC4zIDMyIDMyIDMyYzMuMiAwIDYuMi0uNCA4LjktMS4zYzE5LjEtNS41IDQ2LjEtMTAuNyA3NC4zLTMuM2M1Ny40IDE0LjkgMTI0LjYtNy40IDE3NC43LTU3LjVzNzIuNC0xMTcuMyA1Ny41LTE3NC43Yy03LjMtMjguMi0yLjItNTUuMiAzLjMtNzQuM2MuOC0yLjggMS4zLTUuOCAxLjMtOC45YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0wLTQ4YzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgNy43LTEuMSAxNS4yLTMuMSAyMi4zYy00LjYgMTUuOC03LjEgMzIuOS0zIDQ4LjljMjAuMSA3Ny42LTEwLjkgMTYxLjUtNzAgMjIwLjdzLTE0My4xIDkwLjItMjIwLjcgNzBjLTE2LTQuMS0zMy0xLjYtNDguOSAzYy03LjEgMi0xNC42IDMuMS0yMi4zIDMuMWMtNDQuMiAwLTgwLTM1LjgtODAtODBjMC03LjcgMS4xLTE1LjIgMy4xLTIyLjNjNC42LTE1LjggNy4xLTMyLjkgMy00OC45Qy0xNCAyNTEuMyAxNyAxNjcuMyA3Ni4yIDEwOC4yUzIxOS4zIDE4IDI5Ni44IDM4LjFjMTYgNC4xIDMzIDEuNiA0OC45LTNjNy4xLTIgMTQuNi0zLjEgMjIuMy0zLjF6TTI0Ni43IDE2N2MtNTIgMTUuMi05Ni41IDU5LjctMTExLjcgMTExLjdjLTMuNyAxMi43LTE3LjEgMjAtMjkuOCAxNi4zcy0yMC0xNy4xLTE2LjMtMjkuOGMxOS44LTY3LjcgNzYuNi0xMjQuNSAxNDQuMy0xNDQuM2MxMi43LTMuNyAyNi4xIDMuNiAyOS44IDE2LjNzLTMuNiAyNi4xLTE2LjMgMjkuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTGlmZVJpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg1LjEgNDE5LjFDMzQ5LjcgNDQ3LjIgMzA0LjggNDY0IDI1NiA0NjRzLTkzLjctMTYuOC0xMjkuMS00NC45bDgwLjQtODAuNGMxNC4zIDguNCAzMSAxMy4zIDQ4LjggMTMuM3MzNC41LTQuOCA0OC44LTEzLjNsODAuNCA4MC40em02OC4xIC4yQzQ4OS45IDM3NC45IDUxMiAzMTguMSA1MTIgMjU2cy0yMi4xLTExOC45LTU4LjgtMTYzLjNMNDY1IDgxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMNDE5LjMgNTguOEMzNzQuOSAyMi4xIDMxOC4xIDAgMjU2IDBTMTM3LjEgMjIuMSA5Mi43IDU4LjhMODEgNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlMNTguOCA5Mi43QzIyLjEgMTM3LjEgMCAxOTMuOSAwIDI1NnMyMi4xIDExOC45IDU4LjggMTYzLjNMNDcgNDMxYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMTEuOC0xMS44QzEzNy4xIDQ4OS45IDE5My45IDUxMiAyNTYgNTEyczExOC45LTIyLjEgMTYzLjMtNTguOEw0MzEgNDY1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTEuOC0xMS44em0tMzQuMS0zNC4xbC04MC40LTgwLjRjOC40LTE0LjMgMTMuMy0zMSAxMy4zLTQ4LjhzLTQuOC0zNC41LTEzLjMtNDguOGw4MC40LTgwLjRDNDQ3LjIgMTYyLjMgNDY0IDIwNy4yIDQ2NCAyNTZzLTE2LjggOTMuNy00NC45IDEyOS4xek0zODUuMSA5Mi45bC04MC40IDgwLjRjLTE0LjMtOC40LTMxLTEzLjMtNDguOC0xMy4zcy0zNC41IDQuOC00OC44IDEzLjNMMTI2LjkgOTIuOUMxNjIuMyA2NC44IDIwNy4yIDQ4IDI1NiA0OHM5My43IDE2LjggMTI5LjEgNDQuOXpNMTczLjMgMzA0LjhMOTIuOSAzODUuMUM2NC44IDM0OS43IDQ4IDMwNC44IDQ4IDI1NnMxNi44LTkzLjcgNDQuOS0xMjkuMWw4MC40IDgwLjRjLTguNCAxNC4zLTEzLjMgMzEtMTMuMyA0OC44czQuOCAzNC41IDEzLjMgNDguOHpNMjA4IDI1NmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdMaWdodGJ1bGIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk3LjIgMjQ4LjlDMzExLjYgMjI4LjMgMzIwIDIwMy4yIDMyMCAxNzZjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhTNjQgMTA1LjMgNjQgMTc2YzAgMjcuMiA4LjQgNTIuMyAyMi44IDcyLjljMy43IDUuMyA4LjEgMTEuMyAxMi44IDE3LjdsMCAwYzEyLjkgMTcuNyAyOC4zIDM4LjkgMzkuOCA1OS44YzEwLjQgMTkgMTUuNyAzOC44IDE4LjMgNTcuNUgxMDljLTIuMi0xMi01LjktMjMuNy0xMS44LTM0LjVjLTkuOS0xOC0yMi4yLTM0LjktMzQuNS01MS44bDAgMCAwIDBjLTUuMi03LjEtMTAuNC0xNC4yLTE1LjQtMjEuNEMyNy42IDI0Ny45IDE2IDIxMy4zIDE2IDE3NkMxNiA3OC44IDk0LjggMCAxOTIgMHMxNzYgNzguOCAxNzYgMTc2YzAgMzcuMy0xMS42IDcxLjktMzEuNCAxMDAuM2MtNSA3LjItMTAuMiAxNC4zLTE1LjQgMjEuNGwwIDAgMCAwYy0xMi4zIDE2LjgtMjQuNiAzMy43LTM0LjUgNTEuOGMtNS45IDEwLjgtOS42IDIyLjUtMTEuOCAzNC41SDIyNi40YzIuNi0xOC43IDcuOS0zOC42IDE4LjMtNTcuNWMxMS41LTIwLjkgMjYuOS00Mi4xIDM5LjgtNTkuOGwwIDAgMCAwIDAgMGM0LjctNi40IDktMTIuNCAxMi43LTE3Ljd6TTE5MiAxMjhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2em0wIDM4NGMtNDQuMiAwLTgwLTM1LjgtODAtODBWNDE2SDI3MnYxNmMwIDQ0LjItMzUuOCA4MC04MCA4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTWFwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2NS42IDM2LjJDNTcyLjEgNDAuNyA1NzYgNDguMSA1NzYgNTZWMzkyYzAgMTAtNi4yIDE4LjktMTUuNSAyMi40bC0xNjggNjRjLTUuMiAyLTEwLjkgMi4xLTE2LjEgLjNMMTkyLjUgNDE3LjVsLTE2MCA2MWMtNy40IDIuOC0xNS43IDEuOC0yMi4yLTIuN1MwIDQ2My45IDAgNDU2VjEyMGMwLTEwIDYuMS0xOC45IDE1LjUtMjIuNGwxNjgtNjRjNS4yLTIgMTAuOS0yLjEgMTYuMS0uM0wzODMuNSA5NC41bDE2MC02MWM3LjQtMi44IDE1LjctMS44IDIyLjIgMi43ek00OCAxMzYuNVY0MjEuMmwxMjAtNDUuN1Y5MC44TDQ4IDEzNi41ek0zNjAgNDIyLjdWMTM3LjNsLTE0NC00OFYzNzQuN2wxNDQgNDh6bTQ4LTEuNWwxMjAtNDUuN1Y5MC44TDQwOCAxMzYuNVY0MjEuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTWVzc2FnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMzY4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djE2bDcyLjUtNTQuNGM4LjMtNi4yIDE4LjQtOS42IDI4LjgtOS42SDQ0OGM4LjggMCAxNi03LjIgMTYtMTZWNjRjMC04LjgtNy4yLTE2LTE2LTE2SDY0Yy04LjggMC0xNiA3LjItMTYgMTZWMzUyYzAgOC44IDcuMiAxNiAxNiAxNmg5NnptNDggMTI0bC0uMiAuMi01LjEgMy44LTE3LjEgMTIuOGMtNC44IDMuNi0xMS4zIDQuMi0xNi44IDEuNXMtOC44LTguMi04LjgtMTQuM1Y0NzQuN3YtNi40VjQ2OHYtNFY0MTZIMTEyIDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY2NEMwIDI4LjcgMjguNyAwIDY0IDBINDQ4YzM1LjMgMCA2NCAyOC43IDY0IDY0VjM1MmMwIDM1LjMtMjguNyA2NC02NCA2NEgzMDkuM0wyMDggNDkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdNb25leUJpbGwxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMiAxMTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRWMzM2YzM1LjMgMCA2NCAyOC43IDY0IDY0SDQ2NGMwLTM1LjMgMjguNy02NCA2NC02NFYxNzZjLTM1LjMgMC02NC0yOC43LTY0LTY0SDExMnpNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRINTEyYzM1LjMgMCA2NCAyOC43IDY0IDY0VjM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTI4ek0xNzYgMjU2YTExMiAxMTIgMCAxIDEgMjI0IDAgMTEyIDExMiAwIDEgMSAtMjI0IDB6bTgwLTQ4YzAgOC44IDcuMiAxNiAxNiAxNnY2NGgtOGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmgyNCAyNGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmgtOFYyMDhjMC04LjgtNy4yLTE2LTE2LTE2SDI3MmMtOC44IDAtMTYgNy4yLTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdNb29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NC43IDk4LjdjLTIxIDM0LjEtMzMuMSA3NC4zLTMzLjEgMTE3LjNjMCA5OCA2Mi44IDE4MS40IDE1MC40IDIxMS43Yy0xMi40IDIuOC0yNS4zIDQuMy0zOC42IDQuM0MxMjYuNiA0MzIgNDggMzUzLjMgNDggMjU2YzAtNjguOSAzOS40LTEyOC40IDk2LjgtMTU3LjN6bTYyLjEtNjZDOTEuMSA0MS4yIDAgMTM3LjkgMCAyNTZDMCAzNzkuNyAxMDAgNDgwIDIyMy41IDQ4MGM0Ny44IDAgOTItMTUgMTI4LjQtNDAuNmMxLjktMS4zIDMuNy0yLjcgNS41LTRjNC44LTMuNiA5LjQtNy40IDEzLjktMTEuNGMyLjctMi40IDUuMy00LjggNy45LTcuM2M1LTQuOSA2LjMtMTIuNSAzLjEtMTguN3MtMTAuMS05LjctMTctOC41Yy0zLjcgLjYtNy40IDEuMi0xMS4xIDEuNmMtNSAuNS0xMC4xIC45LTE1LjMgMWMtMS4yIDAtMi41IDAtMy43IDBjLS4xIDAtLjIgMC0uMyAwYy05Ni44LS4yLTE3NS4yLTc4LjktMTc1LjItMTc2YzAtNTQuOCAyNC45LTEwMy43IDY0LjEtMTM2YzEtLjkgMi4xLTEuNyAzLjItMi42YzQtMy4yIDguMi02LjIgMTIuNS05YzMuMS0yIDYuMy00IDkuNi01LjhjNi4xLTMuNSA5LjItMTAuNSA3LjctMTcuM3MtNy4zLTExLjktMTQuMy0xMi41Yy0zLjYtLjMtNy4xLS41LTEwLjctLjZjLTIuNy0uMS01LjUtLjEtOC4yLS4xYy0zLjMgMC02LjUgLjEtOS44IC4yYy0yLjMgLjEtNC42IC4yLTYuOSAuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTmV3c3BhcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2OCA4MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRWNDA4YzAgOC40LTEuNCAxNi41LTQuMSAyNEg0NDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTA0YzAtMTMuMy0xMC43LTI0LTI0LTI0SDE2OHpNNzIgNDgwYy0zOS44IDAtNzItMzIuMi03Mi03MlYxMTJDMCA5OC43IDEwLjcgODggMjQgODhzMjQgMTAuNyAyNCAyNFY0MDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYxMDRjMC0zOS44IDMyLjItNzIgNzItNzJINDQwYzM5LjggMCA3MiAzMi4yIDcyIDcyVjQwOGMwIDM5LjgtMzIuMiA3Mi03MiA3Mkg3MnpNMTc2IDEzNmMwLTEzLjMgMTAuNy0yNCAyNC0yNGg5NmMxMy4zIDAgMjQgMTAuNyAyNCAyNHY4MGMwIDEzLjMtMTAuNyAyNC0yNCAyNEgyMDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjEzNnptMjAwLTI0aDMyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDM3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCA4MGgzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgzNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6TTIwMCAyNzJINDA4YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDIwMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCA4MEg0MDhjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMjAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdOb3RlU3RpY2t5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZWNDE2YzAgOC44IDcuMiAxNiAxNiAxNkgyODhWMzUyYzAtMTcuNyAxNC4zLTMyIDMyLTMyaDgwVjk2YzAtOC44LTcuMi0xNi0xNi0xNkg2NHpNMjg4IDQ4MEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJIMzg0YzM1LjMgMCA2NCAyOC43IDY0IDY0VjMyMHY1LjVjMCAxNy02LjcgMzMuMy0xOC43IDQ1LjNsLTkwLjUgOTAuNWMtMTIgMTItMjguMyAxOC43LTQ1LjMgMTguN0gyODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ09iamVjdEdyb3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDExNS44QzM4LjIgMTA3IDMyIDk0LjIgMzIgODBjMC0yNi41IDIxLjUtNDggNDgtNDhjMTQuMiAwIDI3IDYuMiAzNS44IDE2SDQ2MC4yYzguOC05LjggMjEuNi0xNiAzNS44LTE2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4YzAgMTQuMi02LjIgMjctMTYgMzUuOFYzOTYuMmM5LjggOC44IDE2IDIxLjYgMTYgMzUuOGMwIDI2LjUtMjEuNSA0OC00OCA0OGMtMTQuMiAwLTI3LTYuMi0zNS44LTE2SDExNS44Yy04LjggOS44LTIxLjYgMTYtMzUuOCAxNmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhjMC0xNC4yIDYuMi0yNyAxNi0zNS44VjExNS44ek0xMjUuMyA5NmMtNC44IDEzLjYtMTUuNiAyNC40LTI5LjMgMjkuM1YzODYuN2MxMy42IDQuOCAyNC40IDE1LjYgMjkuMyAyOS4zSDQ1MC43YzQuOC0xMy42IDE1LjYtMjQuNCAyOS4zLTI5LjNWMTI1LjNjLTEzLjYtNC44LTI0LjQtMTUuNi0yOS4zLTI5LjNIMTI1LjN6bTIuNyA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMkgyODhjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJIMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMlYxNjB6TTI1NiAzMjBoMzJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMjI0aDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMydjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdPYmplY3RVbmdyb3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4LjIgNjYuOGMtLjEtLjgtLjItMS43LS4yLTIuNWMwLS4xIDAtLjEgMC0uMmMwLTguOCA3LjItMTYgMTYtMTZjLjkgMCAxLjkgLjEgMi44IC4yQzc0LjMgNDkuNSA4MCA1Ni4xIDgwIDY0YzAgOC44LTcuMiAxNi0xNiAxNmMtNy45IDAtMTQuNS01LjctMTUuOC0xMy4yek0wIDY0YzAgMjYuOSAxNi41IDQ5LjkgNDAgNTkuM1YyMjguN0MxNi41IDIzOC4xIDAgMjYxLjEgMCAyODhjMCAzNS4zIDI4LjcgNjQgNjQgNjRjMjYuOSAwIDQ5LjktMTYuNSA1OS4zLTQwSDMyNC43YzkuNSAyMy41IDMyLjUgNDAgNTkuMyA0MGMzNS4zIDAgNjQtMjguNyA2NC02NGMwLTI2LjktMTYuNS00OS45LTQwLTU5LjNWMTIzLjNjMjMuNS05LjUgNDAtMzIuNSA0MC01OS4zYzAtMzUuMy0yOC43LTY0LTY0LTY0Yy0yNi45IDAtNDkuOSAxNi41LTU5LjMgNDBIMTIzLjNDMTEzLjkgMTYuNSA5MC45IDAgNjQgMEMyOC43IDAgMCAyOC43IDAgNjR6bTM2OCAwYTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6TTMyNC43IDg4YzYuNSAxNiAxOS4zIDI4LjkgMzUuMyAzNS4zVjIyOC43Yy0xNiA2LjUtMjguOSAxOS4zLTM1LjMgMzUuM0gxMjMuM2MtNi41LTE2LTE5LjMtMjguOS0zNS4zLTM1LjNWMTIzLjNjMTYtNi41IDI4LjktMTkuMyAzNS4zLTM1LjNIMzI0Ljd6TTM4NCAyNzJhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyek04MCAyODhjMCA3LjktNS43IDE0LjUtMTMuMiAxNS44Yy0uOCAuMS0xLjcgLjItMi41IC4ybC0uMiAwYy04LjggMC0xNi03LjItMTYtMTZjMC0uOSAuMS0xLjkgLjItMi44QzQ5LjUgMjc3LjcgNTYuMSAyNzIgNjQgMjcyYzguOCAwIDE2IDcuMiAxNiAxNnptMzkxLjMtNDBoNDUuNGM2LjUgMTYgMTkuMyAyOC45IDM1LjMgMzUuM1YzODguN2MtMTYgNi41LTI4LjkgMTkuMy0zNS4zIDM1LjNIMzE1LjNjLTYuNS0xNi0xOS4zLTI4LjktMzUuMy0zNS4zVjM1MkgyMzJ2MzYuN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zYzAgMzUuMyAyOC43IDY0IDY0IDY0YzI2LjkgMCA0OS45LTE2LjUgNTkuMy00MEg1MTYuN2M5LjUgMjMuNSAzMi41IDQwIDU5LjMgNDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRjMC0yNi45LTE2LjUtNDkuOS00MC01OS4zVjI4My4zYzIzLjUtOS41IDQwLTMyLjUgNDAtNTkuM2MwLTM1LjMtMjguNy02NC02NC02NGMtMjYuOSAwLTQ5LjkgMTYuNS01OS4zIDQwSDQ0OHYxNi40YzkuOCA4LjggMTcuOCAxOS41IDIzLjMgMzEuNnptODguOS0yNi43YTE2IDE2IDAgMSAxIDMxLjUgNS41IDE2IDE2IDAgMSAxIC0zMS41LTUuNXpNMjcxLjggNDUwLjdhMTYgMTYgMCAxIDEgLTMxLjUtNS41IDE2IDE2IDAgMSAxIDMxLjUgNS41em0zMDEuNSAxM2MtNy41LTEuMy0xMy4yLTcuOS0xMy4yLTE1LjhjMC04LjggNy4yLTE2IDE2LTE2YzcuOSAwIDE0LjUgNS43IDE1LjggMTMuMmwwIC4xYy4xIC45IC4yIDEuOCAuMiAyLjdjMCA4LjgtNy4yIDE2LTE2IDE2Yy0uOSAwLTEuOS0uMS0yLjgtLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1BhcGVyUGxhbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuMSAyNjAuMmMtMjIuNiAxMi45LTIwLjUgNDcuMyAzLjYgNTcuM0wxNjAgMzc2VjQ3OS4zYzAgMTguMSAxNC42IDMyLjcgMzIuNyAzMi43YzkuNyAwIDE4LjktNC4zIDI1LjEtMTEuOGw2Mi03NC4zIDEyMy45IDUxLjZjMTguOSA3LjkgNDAuOC00LjUgNDMuOS0yNC43bDY0LTQxNmMxLjktMTIuMS0zLjQtMjQuMy0xMy41LTMxLjJzLTIzLjMtNy41LTM0LTEuNGwtNDQ4IDI1NnptNTIuMSAyNS41TDQwOS43IDkwLjYgMTkwLjEgMzM2bDEuMiAxTDY4LjIgMjg1Ljd6TTQwMy4zIDQyNS40TDIzNi43IDM1NS45IDQ1MC44IDExNi42IDQwMy4zIDQyNS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdQYXN0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDQuNiA0OEg2NEMyOC43IDQ4IDAgNzYuNyAwIDExMlYzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRoOTZWNDAwSDY0Yy04LjggMC0xNi03LjItMTYtMTZWMTEyYzAtOC44IDcuMi0xNiAxNi0xNkg4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3Mi40QzIwMiAxMDguNCAyMjcuNiA5NiAyNTYgOTZoNjJjLTcuMS0yNy42LTMyLjItNDgtNjItNDhIMjE1LjRDMjExLjYgMjAuOSAxODguMiAwIDE2MCAwcy01MS42IDIwLjktNTUuNCA0OHpNMTQ0IDU2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6TTQ0OCA0NjRIMjU2Yy04LjggMC0xNi03LjItMTYtMTZWMTkyYzAtOC44IDcuMi0xNiAxNi0xNmwxNDAuMSAwTDQ2NCAyNDMuOVY0NDhjMCA4LjgtNy4yIDE2LTE2IDE2ek0yNTYgNTEySDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFYyNDMuOWMwLTEyLjctNS4xLTI0LjktMTQuMS0zMy45bC02Ny45LTY3LjljLTktOS0yMS4yLTE0LjEtMzMuOS0xNC4xSDI1NmMtMzUuMyAwLTY0IDI4LjctNjQgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdQZW5Ub1NxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDEgNTguOUw0NTMuMSA3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUw0MjQgMTM0LjEgMzc3LjkgODggNDA3IDU4LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDB6TTIwOS44IDI1Ni4yTDM0NCAxMjEuOSAzOTAuMSAxNjggMjU1LjggMzAyLjJjLTIuOSAyLjktNi41IDUtMTAuNCA2LjFsLTU4LjUgMTYuNyAxNi43LTU4LjVjMS4xLTMuOSAzLjItNy41IDYuMS0xMC40ek0zNzMuMSAyNUwxNzUuOCAyMjIuMmMtOC43IDguNy0xNSAxOS40LTE4LjMgMzEuMWwtMjguNiAxMDBjLTIuNCA4LjQtLjEgMTcuNCA2LjEgMjMuNnMxNS4yIDguNSAyMy42IDYuMWwxMDAtMjguNmMxMS44LTMuNCAyMi41LTkuNyAzMS4xLTE4LjNMNDg3IDEzOC45YzI4LjEtMjguMSAyOC4xLTczLjcgMC0xMDEuOEw0NzQuOSAyNUM0NDYuOC0zLjEgNDAxLjItMy4xIDM3My4xIDI1ek04OCA2NEMzOS40IDY0IDAgMTAzLjQgMCAxNTJWNDI0YzAgNDguNiAzOS40IDg4IDg4IDg4SDM2MGM0OC42IDAgODgtMzkuNCA4OC04OFYzMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRWNDI0YzAgMjIuMS0xNy45IDQwLTQwIDQwSDg4Yy0yMi4xIDAtNDAtMTcuOS00MC00MFYxNTJjMC0yMi4xIDE3LjktNDAgNDAtNDBIMjAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdSZWN0YW5nbGVMaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZWNDE2YzAgOC44IDcuMiAxNiAxNiAxNkg1MTJjOC44IDAgMTYtNy4yIDE2LTE2Vjk2YzAtOC44LTcuMi0xNi0xNi0xNkg2NHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMkg1MTJjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY5NnptOTYgNjRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTA0IDBjMC0xMy4zIDEwLjctMjQgMjQtMjRINDQ4YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDIyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTAgOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRINDQ4YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDIyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTAgOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRINDQ4YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDIyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bS03Mi02NGEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6TTk2IDM1MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdSZWN0YW5nbGVYbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2VjQxNmMwIDguOCA3LjIgMTYgMTYgMTZINDQ4YzguOCAwIDE2LTcuMiAxNi0xNlY5NmMwLTguOC03LjItMTYtMTYtMTZINjR6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJINDQ4YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWOTZ6bTE3NSA3OWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw0NyA0NyA0Ny00N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTQ3IDQ3IDQ3IDQ3YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ3LTQ3LTQ3IDQ3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDQ3LTQ3LTQ3LTQ3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnUmVnaXN0ZXJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NEEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2MCAxNTJWMjY0djk2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMjg4aDYwLjlsMzcuMiA4MS45YzUuNSAxMi4xIDE5LjcgMTcuNCAzMS44IDExLjlzMTcuNC0xOS43IDExLjktMzEuOEwzMTUuNyAyNzVjMjEuOC0xNC4zIDM2LjMtMzkgMzYuMy02N2MwLTQ0LjItMzUuOC04MC04MC04MEgxODRjLTEzLjMgMC0yNCAxMC43LTI0IDI0em00OCA4OFYxNzZoNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMjA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdTaGFyZUZyb21TcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDI1NS40VjI0MCAyMDhjMC04LjgtNy4yLTE2LTE2LTE2SDM1MiAzMzYgMjg5LjVjLTUwLjkgMC05My45IDMzLjUtMTA4LjMgNzkuNmMtMy4zLTkuNC01LjItMTkuOC01LjItMzEuNmMwLTYxLjkgNTAuMS0xMTIgMTEyLTExMmg0OCAxNiAzMmM4LjggMCAxNi03LjIgMTYtMTZWODAgNjQuNkw1MDYgMTYwIDQwMCAyNTUuNHpNMzM2IDI0MGgxNnY0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzLjdjNy45IDAgMTUuNS0yLjkgMjEuNC04LjJsMTM5LTEyNS4xYzcuNi02LjggMTEuOS0xNi41IDExLjktMjYuN3MtNC4zLTE5LjktMTEuOS0yNi43TDQwOS45IDguOUM0MDMuNSAzLjIgMzk1LjMgMCAzODYuNyAwQzM2Ny41IDAgMzUyIDE1LjUgMzUyIDM0LjdWODBIMzM2IDMwNCAyODhjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwYzAgNjAuNCAzNC42IDk5LjEgNjMuOSAxMjAuOWM1LjkgNC40IDExLjUgOC4xIDE2LjcgMTEuMmM0LjQgMi43IDguNSA0LjkgMTEuOSA2LjZjMy40IDEuNyA2LjIgMyA4LjIgMy45YzIuMiAxIDQuNiAxLjQgNy4xIDEuNGgyLjVjOS44IDAgMTcuOC04IDE3LjgtMTcuOGMwLTcuOC01LjMtMTQuNy0xMS42LTE5LjVsMCAwYy0uNC0uMy0uNy0uNS0xLjEtLjhjLTEuNy0xLjEtMy40LTIuNS01LTQuMWMtLjgtLjgtMS43LTEuNi0yLjUtMi42cy0xLjYtMS45LTIuNC0yLjljLTEuOC0yLjUtMy41LTUuMy01LTguNWMtMi42LTYtNC4zLTEzLjMtNC4zLTIyLjRjMC0zNi4xIDI5LjMtNjUuNSA2NS41LTY1LjVIMzA0aDMyek03MiAzMkMzMi4yIDMyIDAgNjQuMiAwIDEwNFY0NDBjMCAzOS44IDMyLjIgNzIgNzIgNzJINDA4YzM5LjggMCA3Mi0zMi4yIDcyLTcyVjM3NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHY2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNEg3MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRWMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0aDY0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdTbm93Zmxha2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRWNzAuMWwyMy0yM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU3IDU3djc2LjVsNjYuMi0zOC4yIDIwLjktNzcuOGMzLjQtMTIuOCAxNi42LTIwLjQgMjkuNC0xN3MyMC40IDE2LjYgMTcgMjkuNEwzNzMgMTQyLjJsMzcuMS0yMS40YzExLjUtNi42IDI2LjItMi43IDMyLjggOC44czIuNyAyNi4yLTguOCAzMi44TDM5NyAxODMuOGwzMS41IDguNGMxMi44IDMuNCAyMC40IDE2LjYgMTcgMjkuNHMtMTYuNiAyMC40LTI5LjQgMTdsLTc3LjgtMjAuOUwyNzIgMjU2bDY2LjIgMzguMiA3Ny44LTIwLjljMTIuOC0zLjQgMjYgNC4yIDI5LjQgMTdzLTQuMiAyNi0xNyAyOS40TDM5NyAzMjguMmwzNy4xIDIxLjRjMTEuNSA2LjYgMTUuNCAyMS4zIDguOCAzMi44cy0yMS4zIDE1LjQtMzIuOCA4LjhMMzczIDM2OS44bDguNCAzMS41YzMuNCAxMi44LTQuMiAyNi0xNyAyOS40cy0yNi00LjItMjkuNC0xN2wtMjAuOS03Ny44TDI0OCAyOTcuNnY3Ni41bDU3IDU3YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTIzLTIzVjQ4OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFY0NDEuOWwtMjMgMjNjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNTctNTdWMjk3LjZsLTY2LjIgMzguMi0yMC45IDc3LjhjLTMuNCAxMi44LTE2LjYgMjAuNC0yOS40IDE3cy0yMC40LTE2LjYtMTctMjkuNEw3NSAzNjkuOCAzNy45IDM5MS4yYy0xMS41IDYuNi0yNi4yIDIuNy0zMi44LTguOHMtMi43LTI2LjIgOC44LTMyLjhMNTEgMzI4LjJsLTMxLjUtOC40Yy0xMi44LTMuNC0yMC40LTE2LjYtMTctMjkuNHMxNi42LTIwLjQgMjkuNC0xN2w3Ny44IDIwLjlMMTc2IDI1NmwtNjYuMi0zOC4yTDMxLjkgMjM4LjZjLTEyLjggMy40LTI2LTQuMi0yOS40LTE3czQuMi0yNiAxNy0yOS40TDUxIDE4My44IDEzLjkgMTYyLjRjLTExLjUtNi42LTE1LjQtMjEuMy04LjgtMzIuOHMyMS4zLTE1LjQgMzIuOC04LjhMNzUgMTQyLjJsLTguNC0zMS41Yy0zLjQtMTIuOCA0LjItMjYgMTctMjkuNHMyNiA0LjIgMjkuNCAxN2wyMC45IDc3LjhMMjAwIDIxNC40VjEzNy45TDE0MyA4MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDIzIDIzVjI0YzAtMTMuMyAxMC43LTI0IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdTcXVhcmVDYXJldERvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDQzMmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwem02NC0xNmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjB6TTIyNCAzNTJjLTYuNyAwLTEzLTIuOC0xNy42LTcuN2wtMTA0LTExMmMtNi41LTctOC4yLTE3LjItNC40LTI1LjlzMTIuNS0xNC40IDIyLTE0LjRsMjA4IDBjOS41IDAgMTguMiA1LjcgMjIgMTQuNHMyLjEgMTguOS00LjQgMjUuOWwtMTA0IDExMmMtNC41IDQuOS0xMC45IDcuNy0xNy42IDcuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3F1YXJlQ2FyZXRMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDQxNmMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwem0xNiA2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODB6bTY0LTIyNGMwLTYuNyAyLjgtMTMgNy43LTE3LjZsMTEyLTEwNGM3LTYuNSAxNy4yLTguMiAyNS45LTQuNHMxNC40IDEyLjUgMTQuNCAyMmwwIDIwOGMwIDkuNS01LjcgMTguMi0xNC40IDIycy0xOC45IDIuMS0yNS45LTQuNGwtMTEyLTEwNGMtNC45LTQuNS03LjctMTAuOS03LjctMTcuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3F1YXJlQ2FyZXRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgOTZjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMHpNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMzIwIDI1NmMwIDYuNy0yLjggMTMtNy43IDE3LjZsLTExMiAxMDRjLTcgNi41LTE3LjIgOC4yLTI1LjkgNC40cy0xNC40LTEyLjUtMTQuNC0yMmwwLTIwOGMwLTkuNSA1LjctMTguMiAxNC40LTIyczE4LjktMi4xIDI1LjkgNC40bDExMiAxMDRjNC45IDQuNSA3LjcgMTAuOSA3LjcgMTcuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3F1YXJlQ2FyZXRVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMjI0IDY0YzYuNyAwIDEzIDIuOCAxNy42IDcuN2wxMDQgMTEyYzYuNSA3IDguMiAxNy4yIDQuNCAyNS45cy0xMi41IDE0LjQtMjIgMTQuNGwtMjA4IDBjLTkuNSAwLTE4LjItNS43LTIyLTE0LjRzLTIuMS0xOC45IDQuNC0yNS45bDEwNC0xMTJjNC41LTQuOSAxMC45LTcuNyAxNy42LTcuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3F1YXJlQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNlY0MTZjMCA4LjggNy4yIDE2IDE2IDE2SDM4NGM4LjggMCAxNi03LjIgMTYtMTZWOTZjMC04LjgtNy4yLTE2LTE2LTE2SDY0ek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDM4NGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2ek0zMzcgMjA5TDIwOSAzMzdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC02NC02NGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQ3IDQ3TDMwMyAxNzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdTcXVhcmVGdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCA0OFY0NjRINDhWNDhINDY0ek00OCAwSDBWNDggNDY0djQ4SDQ4IDQ2NGg0OFY0NjQgNDggMEg0NjQgNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1NxdWFyZU1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZWNDE2YzAgOC44IDcuMiAxNiAxNiAxNkgzODRjOC44IDAgMTYtNy4yIDE2LTE2Vjk2YzAtOC44LTcuMi0xNi0xNi0xNkg2NHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMkgzODRjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY5NnpNMTUyIDIzMkgyOTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMTUyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdTcXVhcmVQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZWNDE2YzAgOC44IDcuMiAxNiAxNiAxNkgzODRjOC44IDAgMTYtNy4yIDE2LTE2Vjk2YzAtOC44LTcuMi0xNi0xNi0xNkg2NHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMkgzODRjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY5NnpNMjAwIDM0NFYyODBIMTM2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0aDY0VjE2OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0djY0aDY0YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDI0OHY2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCA4MGM4LjggMCAxNiA3LjIgMTYgMTZWNDE2YzAgOC44LTcuMiAxNi0xNiAxNkg2NGMtOC44IDAtMTYtNy4yLTE2LTE2Vjk2YzAtOC44IDcuMi0xNiAxNi0xNkgzODR6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3RhckhhbGZTdHJva2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA5LjUgMTMuNUMzMDUuNSA1LjIgMjk3LjEgMCAyODcuOSAwcy0xNy42IDUuMi0yMS42IDEzLjVMMTk3LjcgMTU0LjggNDQuNSAxNzcuNWMtOSAxLjMtMTYuNSA3LjYtMTkuMyAxNi4zcy0uNSAxOC4xIDUuOSAyNC41TDE0Mi4yIDMyOC40IDExNiA0ODMuOWMtMS41IDkgMi4yIDE4LjEgOS43IDIzLjVzMTcuMyA2IDI1LjMgMS43bDEzNy03My4yIDEzNyA3My4yYzguMSA0LjMgMTcuOSAzLjcgMjUuMy0xLjdzMTEuMi0xNC41IDkuNy0yMy41TDQzMy42IDMyOC40IDU0NC44IDIxOC4yYzYuNS02LjQgOC43LTE1LjkgNS45LTI0LjVzLTEwLjMtMTQuOS0xOS4zLTE2LjNMMzc4LjEgMTU0LjggMzA5LjUgMTMuNXpNMjg4IDM4NC43Vjc5LjFsNTIuNSAxMDguMWMzLjUgNy4xIDEwLjIgMTIuMSAxOC4xIDEzLjNsMTE4LjMgMTcuNUwzOTEgMzAzYy01LjUgNS41LTguMSAxMy4zLTYuOCAyMWwyMC4yIDExOS42TDI5OS4yIDM4Ny41Yy0zLjUtMS45LTcuNC0yLjgtMTEuMi0yLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1N0YXJIYWxmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5My4zIC42YzEwLjkgMi41IDE4LjYgMTIuMiAxOC42IDIzLjRWNDA4LjdjMCA4LjktNC45IDE3LTEyLjcgMjEuMkwxNTEgNTA5LjFjLTguMSA0LjMtMTcuOSAzLjctMjUuMy0xLjdzLTExLjItMTQuNS05LjctMjMuNWwyNi4yLTE1NS42TDMxLjEgMjE4LjNjLTYuNS02LjQtOC43LTE1LjktNS45LTI0LjVzMTAuMy0xNC45IDE5LjMtMTYuM2wxNTMuMi0yMi42TDI2Ni4zIDEzLjVjNC45LTEwLjEgMTYuMS0xNS40IDI3LTEyLjl6TTI2My45IDEyOC40bC0yOC42IDU4LjhjLTMuNSA3LjEtMTAuMiAxMi4xLTE4LjEgMTMuM0w5OSAyMTcuOSAxODQuOSAzMDNjNS41IDUuNSA4LjEgMTMuMyA2LjggMjFMMTcxLjQgNDQzLjdsOTIuNS00OS40VjEyOC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdTdGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4Ny45IDBjOS4yIDAgMTcuNiA1LjIgMjEuNiAxMy41bDY4LjYgMTQxLjMgMTUzLjIgMjIuNmM5IDEuMyAxNi41IDcuNiAxOS4zIDE2LjNzLjUgMTguMS01LjkgMjQuNUw0MzMuNiAzMjguNGwyNi4yIDE1NS42YzEuNSA5LTIuMiAxOC4xLTkuNyAyMy41cy0xNy4zIDYtMjUuMyAxLjdsLTEzNy03My4yTDE1MSA1MDkuMWMtOC4xIDQuMy0xNy45IDMuNy0yNS4zLTEuN3MtMTEuMi0xNC41LTkuNy0yMy41bDI2LjItMTU1LjZMMzEuMSAyMTguMmMtNi41LTYuNC04LjctMTUuOS01LjktMjQuNXMxMC4zLTE0LjkgMTkuMy0xNi4zbDE1My4yLTIyLjZMMjY2LjMgMTMuNUMyNzAuNCA1LjIgMjc4LjcgMCAyODcuOSAwem0wIDc5TDIzNS40IDE4Ny4yYy0zLjUgNy4xLTEwLjIgMTIuMS0xOC4xIDEzLjNMOTkgMjE3LjkgMTg0LjkgMzAzYzUuNSA1LjUgOC4xIDEzLjMgNi44IDIxTDE3MS40IDQ0My43bDEwNS4yLTU2LjJjNy4xLTMuOCAxNS42LTMuOCAyMi42IDBsMTA1LjIgNTYuMkwzODQuMiAzMjQuMWMtMS4zLTcuNyAxLjItMTUuNSA2LjgtMjFsODUuOS04NS4xTDM1OC42IDIwMC41Yy03LjgtMS4yLTE0LjYtNi4xLTE4LjEtMTMuM0wyODcuOSA3OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3VuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3NS43IDE5LjdjLTEuNS04LTYuOS0xNC43LTE0LjQtMTcuOHMtMTYuMS0yLjItMjIuOCAyLjRMMjU2IDYxLjEgMTczLjUgNC4yYy02LjctNC42LTE1LjMtNS41LTIyLjgtMi40cy0xMi45IDkuOC0xNC40IDE3LjhsLTE4LjEgOTguNUwxOS43IDEzNi4zYy04IDEuNS0xNC43IDYuOS0xNy44IDE0LjRzLTIuMiAxNi4xIDIuNCAyMi44TDYxLjEgMjU2IDQuMiAzMzguNWMtNC42IDYuNy01LjUgMTUuMy0yLjQgMjIuOHM5LjggMTMgMTcuOCAxNC40bDk4LjUgMTguMSAxOC4xIDk4LjVjMS41IDggNi45IDE0LjcgMTQuNCAxNy44czE2LjEgMi4yIDIyLjgtMi40TDI1NiA0NTAuOWw4Mi41IDU2LjljNi43IDQuNiAxNS4zIDUuNSAyMi44IDIuNHMxMi45LTkuOCAxNC40LTE3LjhsMTguMS05OC41IDk4LjUtMTguMWM4LTEuNSAxNC43LTYuOSAxNy44LTE0LjRzMi4yLTE2LjEtMi40LTIyLjhMNDUwLjkgMjU2bDU2LjktODIuNWM0LjYtNi43IDUuNS0xNS4zIDIuNC0yMi44cy05LjgtMTIuOS0xNy44LTE0LjRsLTk4LjUtMTguMUwzNzUuNyAxOS43ek0yNjkuNiAxMTBsNjUuNi00NS4yIDE0LjQgNzguM2MxLjggOS44IDkuNSAxNy41IDE5LjMgMTkuM2w3OC4zIDE0LjRMNDAyIDI0Mi40Yy01LjcgOC4yLTUuNyAxOSAwIDI3LjJsNDUuMiA2NS42LTc4LjMgMTQuNGMtOS44IDEuOC0xNy41IDkuNS0xOS4zIDE5LjNsLTE0LjQgNzguM0wyNjkuNiA0MDJjLTguMi01LjctMTktNS43LTI3LjIgMGwtNjUuNiA0NS4yLTE0LjQtNzguM2MtMS44LTkuOC05LjUtMTcuNS0xOS4zLTE5LjNMNjQuOCAzMzUuMiAxMTAgMjY5LjZjNS43LTguMiA1LjctMTkgMC0yNy4yTDY0LjggMTc2LjhsNzguMy0xNC40YzkuOC0xLjggMTcuNS05LjUgMTkuMy0xOS4zbDE0LjQtNzguM0wyNDIuNCAxMTBjOC4yIDUuNyAxOSA1LjcgMjcuMiAwek0yNTYgMzY4YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHpNMTkyIDI1NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1RodW1ic0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIzLjggNDc3LjJjLTM4LjIgMTAuOS03OC4xLTExLjItODktNDkuNGwtNS43LTIwYy0zLjctMTMtMTAuNC0yNS0xOS41LTM1bC01MS4zLTU2LjRjLTguOS05LjgtOC4yLTI1IDEuNi0zMy45czI1LTguMiAzMy45IDEuNmw1MS4zIDU2LjRjMTQuMSAxNS41IDI0LjQgMzQgMzAuMSA1NC4xbDUuNyAyMGMzLjYgMTIuNyAxNi45IDIwLjEgMjkuNyAxNi41czIwLjEtMTYuOSAxNi41LTI5LjdsLTUuNy0yMGMtNS43LTE5LjktMTQuNy0zOC43LTI2LjYtNTUuNWMtNS4yLTcuMy01LjgtMTYuOS0xLjctMjQuOXMxMi4zLTEzIDIxLjMtMTNMNDQ4IDI4OGM4LjggMCAxNi03LjIgMTYtMTZjMC02LjgtNC4zLTEyLjctMTAuNC0xNWMtNy40LTIuOC0xMy05LTE0LjktMTYuN3MuMS0xNS44IDUuMy0yMS43YzIuNS0yLjggNC02LjUgNC0xMC42YzAtNy44LTUuNi0xNC4zLTEzLTE1LjdjLTguMi0xLjYtMTUuMS03LjMtMTgtMTUuMnMtMS42LTE2LjcgMy42LTIzLjNjMi4xLTIuNyAzLjQtNi4xIDMuNC05LjljMC02LjctNC4yLTEyLjYtMTAuMi0xNC45Yy0xMS41LTQuNS0xNy43LTE2LjktMTQuNC0yOC44Yy40LTEuMyAuNi0yLjggLjYtNC4zYzAtOC44LTcuMi0xNi0xNi0xNkgyODYuNWMtMTIuNiAwLTI1IDMuNy0zNS41IDEwLjdsLTYxLjcgNDEuMWMtMTEgNy40LTI1LjkgNC40LTMzLjMtNi43cy00LjQtMjUuOSA2LjctMzMuM2w2MS43LTQxLjFjMTguNC0xMi4zIDQwLTE4LjggNjIuMS0xOC44SDM4NGMzNC43IDAgNjIuOSAyNy42IDY0IDYyYzE0LjYgMTEuNyAyNCAyOS43IDI0IDUwYzAgNC41LS41IDguOC0xLjMgMTNjMTUuNCAxMS43IDI1LjMgMzAuMiAyNS4zIDUxYzAgNi41LTEgMTIuOC0yLjggMTguN0M1MDQuOCAyMzguMyA1MTIgMjU0LjMgNTEyIDI3MmMwIDM1LjMtMjguNiA2NC02NCA2NGwtOTIuMyAwYzQuNyAxMC40IDguNyAyMS4yIDExLjggMzIuMmw1LjcgMjBjMTAuOSAzOC4yLTExLjIgNzguMS00OS40IDg5ek0zMiAzODRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMkg5NmMxNy43IDAgMzIgMTQuMyAzMiAzMlYzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJIMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1RodW1ic1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMy44IDM0LjhjLTM4LjItMTAuOS03OC4xIDExLjItODkgNDkuNGwtNS43IDIwYy0zLjcgMTMtMTAuNCAyNS0xOS41IDM1bC01MS4zIDU2LjRjLTguOSA5LjgtOC4yIDI1IDEuNiAzMy45czI1IDguMiAzMy45LTEuNmw1MS4zLTU2LjRjMTQuMS0xNS41IDI0LjQtMzQgMzAuMS01NC4xbDUuNy0yMGMzLjYtMTIuNyAxNi45LTIwLjEgMjkuNy0xNi41czIwLjEgMTYuOSAxNi41IDI5LjdsLTUuNyAyMGMtNS43IDE5LjktMTQuNyAzOC43LTI2LjYgNTUuNWMtNS4yIDcuMy01LjggMTYuOS0xLjcgMjQuOXMxMi4zIDEzIDIxLjMgMTNMNDQ4IDIyNGM4LjggMCAxNiA3LjIgMTYgMTZjMCA2LjgtNC4zIDEyLjctMTAuNCAxNWMtNy40IDIuOC0xMyA5LTE0LjkgMTYuN3MuMSAxNS44IDUuMyAyMS43YzIuNSAyLjggNCA2LjUgNCAxMC42YzAgNy44LTUuNiAxNC4zLTEzIDE1LjdjLTguMiAxLjYtMTUuMSA3LjMtMTggMTUuMnMtMS42IDE2LjcgMy42IDIzLjNjMi4xIDIuNyAzLjQgNi4xIDMuNCA5LjljMCA2LjctNC4yIDEyLjYtMTAuMiAxNC45Yy0xMS41IDQuNS0xNy43IDE2LjktMTQuNCAyOC44Yy40IDEuMyAuNiAyLjggLjYgNC4zYzAgOC44LTcuMiAxNi0xNiAxNkgyODYuNWMtMTIuNiAwLTI1LTMuNy0zNS41LTEwLjdsLTYxLjctNDEuMWMtMTEtNy40LTI1LjktNC40LTMzLjMgNi43cy00LjQgMjUuOSA2LjcgMzMuM2w2MS43IDQxLjFjMTguNCAxMi4zIDQwIDE4LjggNjIuMSAxOC44SDM4NGMzNC43IDAgNjIuOS0yNy42IDY0LTYyYzE0LjYtMTEuNyAyNC0yOS43IDI0LTUwYzAtNC41LS41LTguOC0xLjMtMTNjMTUuNC0xMS43IDI1LjMtMzAuMiAyNS4zLTUxYzAtNi41LTEtMTIuOC0yLjgtMTguN0M1MDQuOCAyNzMuNyA1MTIgMjU3LjcgNTEyIDI0MGMwLTM1LjMtMjguNi02NC02NC02NGwtOTIuMyAwYzQuNy0xMC40IDguNy0yMS4yIDExLjgtMzIuMmw1LjctMjBjMTAuOS0zOC4yLTExLjItNzguMS00OS40LTg5ek0zMiAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg5NmMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJIMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1RyYXNoQ2FuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3MC41IDUxLjZMMTUxLjUgODBoMTQ1bC0xOS0yOC40Yy0xLjUtMi4yLTQtMy42LTYuNy0zLjZIMTc3LjFjLTIuNyAwLTUuMiAxLjMtNi43IDMuNnptMTQ3LTI2LjZMMzU0LjIgODBIMzY4aDQ4IDhjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRoLThWNDMyYzAgNDQuMi0zNS44IDgwLTgwIDgwSDExMmMtNDQuMiAwLTgwLTM1LjgtODAtODBWMTI4SDI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFMxMC43IDgwIDI0IDgwaDhIODAgOTMuOGwzNi43LTU1LjFDMTQwLjkgOS40IDE1OC40IDAgMTc3LjEgMGg5My43YzE4LjcgMCAzNi4yIDkuNCA0Ni42IDI0Ljl6TTgwIDEyOFY0MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjEyOEg4MHptODAgNjRWNDAwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjE5MmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2em04MCAwVjQwMGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYxOTJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnptODAgMFY0MDBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMTkyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1VzZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA0IDEyOGE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6TTk2IDEyOGExMjggMTI4IDAgMSAxIDI1NiAwQTEyOCAxMjggMCAxIDEgOTYgMTI4ek00OS4zIDQ2NEgzOTguN2MtOC45LTYzLjMtNjMuMy0xMTItMTI5LTExMkgxNzguM2MtNjUuNyAwLTEyMC4xIDQ4LjctMTI5IDExMnpNMCA0ODIuM0MwIDM4My44IDc5LjggMzA0IDE3OC4zIDMwNGg5MS40QzM2OC4yIDMwNCA0NDggMzgzLjggNDQ4IDQ4Mi4zYzAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43SDI5LjdDMTMuMyA1MTIgMCA0OTguNyAwIDQ4Mi4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdXaW5kb3dNYXhpbWl6ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0uMyA4OS41Qy4xIDkxLjYgMCA5My44IDAgOTZWMjI0IDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NFYyMjQgOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjRjLTIuMiAwLTQuNCAuMS02LjUgLjNjLTkuMiAuOS0xNy44IDMuOC0yNS41IDguMkMyMS44IDQ2LjUgMTMuNCA1NS4xIDcuNyA2NS41Yy0zLjkgNy4zLTYuNSAxNS40LTcuNCAyNHpNNDggMjI0SDQ2NGwwIDE5MmMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDMyYy04LjggMC0xNi03LjItMTYtMTZsMC0xOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1dpbmRvd01pbmltaXplIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0IDQzMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNEg0ODhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1dpbmRvd1Jlc3RvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMyIDQ4SDIwOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWOTZIMTI4VjgwYzAtNDQuMiAzNS44LTgwIDgwLTgwSDQzMmM0NC4yIDAgODAgMzUuOCA4MCA4MFYzMDRjMCA0NC4yLTM1LjggODAtODAgODBINDE2VjMzNmgxNmMxNy43IDAgMzItMTQuMyAzMi0zMlY4MGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDggNDQ4YzAgOC44IDcuMiAxNiAxNiAxNkgzMjBjOC44IDAgMTYtNy4yIDE2LTE2VjI1Nkg0OFY0NDh6TTY0IDEyOEgzMjBjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYxOTJjMC0zNS4zIDI4LjctNjQgNjQtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbiIsImNvbnN0IGNvcHlUb0NsaXBib2FyZCA9ICh2YWx1ZVRvQ29weSwgc2V0SXNKdXN0Q29waWVkKSA9PiB7XG4gIHNldElzSnVzdENvcGllZCh0cnVlKTtcbiAgbmF2aWdhdG9yPy5jbGlwYm9hcmQ/LndyaXRlVGV4dCh2YWx1ZVRvQ29weSkudGhlbigoKSA9PiB7XG4gICAgY29uc29sZS5sb2coXCJDb3B5IFN1Y2Nlc3NmdWxsXCIpO1xuICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICBjb25zb2xlLmVycm9yKFwiRmFpbGVkIHRvIENvcHkgdGV4dDogXCIsIGVycm9yKTtcbiAgICBzZXRJc0p1c3RDb3BpZWQoZmFsc2UpO1xuICB9KTtcbiAgc2V0VGltZW91dCgoKSA9PiBzZXRJc0p1c3RDb3BpZWQoZmFsc2UpLCA0ZTMpO1xufTtcblxuZXhwb3J0IHsgY29weVRvQ2xpcGJvYXJkIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1oZWxwZXJzLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IGZvcndhcmRSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRmFDaGVjaywgRmFDbGlwYm9hcmRMaXN0IH0gZnJvbSAncmVhY3QtaWNvbnMvZmE2JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcbmltcG9ydCB7IGNvcHlUb0NsaXBib2FyZCB9IGZyb20gJy4vaGVscGVycy5tanMnO1xuXG5jb25zdCBDbGlwYm9hcmRXaXRoSWNvbiA9IGZvcndhcmRSZWYoXG4gICh7IHZhbHVlVG9Db3B5LCBpY29uOiBJY29uID0gRmFDbGlwYm9hcmRMaXN0LCB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgY2xhc3NOYW1lLCAuLi5yZXN0IH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IFtpc0p1c3RDb3BpZWQsIHNldElzSnVzdENvcGllZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5jbGlwYm9hcmQud2l0aEljb24sIGN1c3RvbVRoZW1lKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFwiYnV0dG9uXCIsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLFxuICAgICAgICBvbkNsaWNrOiAoKSA9PiBjb3B5VG9DbGlwYm9hcmQodmFsdWVUb0NvcHksIHNldElzSnVzdENvcGllZCksXG4gICAgICAgIC4uLnJlc3QsXG4gICAgICAgIHJlZixcbiAgICAgICAgY2hpbGRyZW46IGlzSnVzdENvcGllZCA/IC8qIEBfX1BVUkVfXyAqLyBqc3goRmFDaGVjaywgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUsIGNsYXNzTmFtZTogdGhlbWUuaWNvbi5zdWNjZXNzSWNvbiB9KSA6IC8qIEBfX1BVUkVfXyAqLyBqc3goSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUsIGNsYXNzTmFtZTogdGhlbWUuaWNvbi5kZWZhdWx0SWNvbiB9KVxuICAgICAgfVxuICAgICk7XG4gIH1cbik7XG5cbmV4cG9ydCB7IENsaXBib2FyZFdpdGhJY29uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1DbGlwYm9hcmRXaXRoSWNvbi5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3gsIGpzeHMgfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZhQ2hlY2ssIEZhQ2xpcGJvYXJkTGlzdCB9IGZyb20gJ3JlYWN0LWljb25zL2ZhNic7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBjb3B5VG9DbGlwYm9hcmQgfSBmcm9tICcuL2hlbHBlcnMubWpzJztcblxuY29uc3QgQ2xpcGJvYXJkV2l0aEljb25UZXh0ID0gZm9yd2FyZFJlZihcbiAgKHsgdmFsdWVUb0NvcHksIGljb246IEljb24gPSBGYUNsaXBib2FyZExpc3QsIGxhYmVsID0gXCJDb3B5XCIsIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCBjbGFzc05hbWUsIC4uLnJlc3QgfSwgcmVmKSA9PiB7XG4gICAgY29uc3QgW2lzSnVzdENvcGllZCwgc2V0SXNKdXN0Q29waWVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmNsaXBib2FyZC53aXRoSWNvblRleHQsIGN1c3RvbVRoZW1lKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFwiYnV0dG9uXCIsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLFxuICAgICAgICBvbkNsaWNrOiAoKSA9PiBjb3B5VG9DbGlwYm9hcmQodmFsdWVUb0NvcHksIHNldElzSnVzdENvcGllZCksXG4gICAgICAgIC4uLnJlc3QsXG4gICAgICAgIHJlZixcbiAgICAgICAgY2hpbGRyZW46IGlzSnVzdENvcGllZCA/IC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwic3BhblwiLCB7IGNsYXNzTmFtZTogdGhlbWUubGFiZWwuYmFzZSwgY2hpbGRyZW46IFtcbiAgICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4KEZhQ2hlY2ssIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBjbGFzc05hbWU6IHRoZW1lLmljb24uc3VjY2Vzc0ljb24gfSksXG4gICAgICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IHRoZW1lLmxhYmVsLnN1Y2Nlc3NUZXh0LCBjaGlsZHJlbjogXCJDb3BpZWRcIiB9KVxuICAgICAgICBdIH0pIDogLyogQF9fUFVSRV9fICovIGpzeHMoXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5sYWJlbC5iYXNlLCBjaGlsZHJlbjogW1xuICAgICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUsIGNsYXNzTmFtZTogdGhlbWUuaWNvbi5kZWZhdWx0SWNvbiB9KSxcbiAgICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogdGhlbWUubGFiZWwuZGVmYXVsdFRleHQsIGNoaWxkcmVuOiBsYWJlbCB9KVxuICAgICAgICBdIH0pXG4gICAgICB9XG4gICAgKTtcbiAgfVxuKTtcblxuZXhwb3J0IHsgQ2xpcGJvYXJkV2l0aEljb25UZXh0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1DbGlwYm9hcmRXaXRoSWNvblRleHQubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnLi4vVG9vbHRpcC9Ub29sdGlwLm1qcyc7XG5pbXBvcnQgeyBDbGlwYm9hcmRXaXRoSWNvbiB9IGZyb20gJy4vQ2xpcGJvYXJkV2l0aEljb24ubWpzJztcbmltcG9ydCB7IENsaXBib2FyZFdpdGhJY29uVGV4dCB9IGZyb20gJy4vQ2xpcGJvYXJkV2l0aEljb25UZXh0Lm1qcyc7XG5pbXBvcnQgeyBjb3B5VG9DbGlwYm9hcmQgfSBmcm9tICcuL2hlbHBlcnMubWpzJztcblxuY29uc3QgQ2xpcGJvYXJkQ29tcG9uZW50ID0gZm9yd2FyZFJlZihcbiAgKHsgY2xhc3NOYW1lLCB2YWx1ZVRvQ29weSwgbGFiZWwsIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5yZXN0IH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IFtpc0p1c3RDb3BpZWQsIHNldElzSnVzdENvcGllZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5jbGlwYm9hcmQuYnV0dG9uLCBjdXN0b21UaGVtZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goVG9vbHRpcCwgeyBjb250ZW50OiBpc0p1c3RDb3BpZWQgPyBcIkNvcGllZFwiIDogXCJDb3B5IHRvIGNsaXBib2FyZFwiLCBjbGFzc05hbWU6IFwiWyZfKl06Y3Vyc29yLXBvaW50ZXJcIiwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBcImJ1dHRvblwiLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSxcbiAgICAgICAgb25DbGljazogKCkgPT4gY29weVRvQ2xpcGJvYXJkKHZhbHVlVG9Db3B5LCBzZXRJc0p1c3RDb3BpZWQpLFxuICAgICAgICAuLi5yZXN0LFxuICAgICAgICByZWYsXG4gICAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogdGhlbWUubGFiZWwsIGNoaWxkcmVuOiBsYWJlbCB9KVxuICAgICAgfVxuICAgICkgfSk7XG4gIH1cbik7XG5DbGlwYm9hcmRDb21wb25lbnQuZGlzcGxheU5hbWUgPSBcIkNsaXBib2FyZFwiO1xuQ2xpcGJvYXJkV2l0aEljb24uZGlzcGxheU5hbWUgPSBcIkNsaXBib2FyZC5XaXRoSWNvblwiO1xuQ2xpcGJvYXJkV2l0aEljb25UZXh0LmRpc3BsYXlOYW1lID0gXCJDbGlwYm9hcmQuV2l0aEljb25UZXh0XCI7XG5jb25zdCBDbGlwYm9hcmQgPSBPYmplY3QuYXNzaWduKENsaXBib2FyZENvbXBvbmVudCwge1xuICBXaXRoSWNvbjogQ2xpcGJvYXJkV2l0aEljb24sXG4gIFdpdGhJY29uVGV4dDogQ2xpcGJvYXJkV2l0aEljb25UZXh0XG59KTtcblxuZXhwb3J0IHsgQ2xpcGJvYXJkIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1DbGlwYm9hcmQubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBIZWxwZXJUZXh0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgY29sb3IgPSBcImRlZmF1bHRcIixcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIHZhbHVlLFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmhlbHBlclRleHQsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJwXCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLnJvb3QuYmFzZSwgdGhlbWUucm9vdC5jb2xvcnNbY29sb3JdLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgY2hpbGRyZW46IHZhbHVlID8/IGNoaWxkcmVuID8/IFwiXCIgfSk7XG59O1xuSGVscGVyVGV4dC5kaXNwbGF5TmFtZSA9IFwiSGVscGVyVGV4dFwiO1xuXG5leHBvcnQgeyBIZWxwZXJUZXh0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1IZWxwZXJUZXh0Lm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeHMsIEZyYWdtZW50LCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgSGVscGVyVGV4dCB9IGZyb20gJy4uL0hlbHBlclRleHQvSGVscGVyVGV4dC5tanMnO1xuXG5jb25zdCBUZXh0SW5wdXQgPSBmb3J3YXJkUmVmKFxuICAoe1xuICAgIGFkZG9uLFxuICAgIGNsYXNzTmFtZSxcbiAgICBjb2xvciA9IFwiZ3JheVwiLFxuICAgIGhlbHBlclRleHQsXG4gICAgaWNvbjogSWNvbixcbiAgICByaWdodEljb246IFJpZ2h0SWNvbixcbiAgICBzaGFkb3csXG4gICAgc2l6aW5nID0gXCJtZFwiLFxuICAgIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAgIHR5cGUgPSBcInRleHRcIixcbiAgICAuLi5wcm9wc1xuICB9LCByZWYpID0+IHtcbiAgICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLnRleHRJbnB1dCwgY3VzdG9tVGhlbWUpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhGcmFnbWVudCwgeyBjaGlsZHJlbjogW1xuICAgICAgLyogQF9fUFVSRV9fICovIGpzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSwgY2hpbGRyZW46IFtcbiAgICAgICAgYWRkb24gJiYgLyogQF9fUFVSRV9fICovIGpzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IHRoZW1lLmFkZG9uLCBjaGlsZHJlbjogYWRkb24gfSksXG4gICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5maWVsZC5iYXNlLCBjaGlsZHJlbjogW1xuICAgICAgICAgIEljb24gJiYgLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogdGhlbWUuZmllbGQuaWNvbi5iYXNlLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChJY29uLCB7IGNsYXNzTmFtZTogdGhlbWUuZmllbGQuaWNvbi5zdmcgfSkgfSksXG4gICAgICAgICAgUmlnaHRJY29uICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBcImRhdGEtdGVzdGlkXCI6IFwicmlnaHQtaWNvblwiLCBjbGFzc05hbWU6IHRoZW1lLmZpZWxkLnJpZ2h0SWNvbi5iYXNlLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChSaWdodEljb24sIHsgY2xhc3NOYW1lOiB0aGVtZS5maWVsZC5yaWdodEljb24uc3ZnIH0pIH0pLFxuICAgICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgICBcImlucHV0XCIsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZShcbiAgICAgICAgICAgICAgICB0aGVtZS5maWVsZC5pbnB1dC5iYXNlLFxuICAgICAgICAgICAgICAgIHRoZW1lLmZpZWxkLmlucHV0LmNvbG9yc1tjb2xvcl0sXG4gICAgICAgICAgICAgICAgdGhlbWUuZmllbGQuaW5wdXQuc2l6ZXNbc2l6aW5nXSxcbiAgICAgICAgICAgICAgICB0aGVtZS5maWVsZC5pbnB1dC53aXRoSWNvbltJY29uID8gXCJvblwiIDogXCJvZmZcIl0sXG4gICAgICAgICAgICAgICAgdGhlbWUuZmllbGQuaW5wdXQud2l0aFJpZ2h0SWNvbltSaWdodEljb24gPyBcIm9uXCIgOiBcIm9mZlwiXSxcbiAgICAgICAgICAgICAgICB0aGVtZS5maWVsZC5pbnB1dC53aXRoQWRkb25bYWRkb24gPyBcIm9uXCIgOiBcIm9mZlwiXSxcbiAgICAgICAgICAgICAgICB0aGVtZS5maWVsZC5pbnB1dC53aXRoU2hhZG93W3NoYWRvdyA/IFwib25cIiA6IFwib2ZmXCJdXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICAgIC4uLnByb3BzLFxuICAgICAgICAgICAgICByZWZcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApXG4gICAgICAgIF0gfSlcbiAgICAgIF0gfSksXG4gICAgICBoZWxwZXJUZXh0ICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goSGVscGVyVGV4dCwgeyBjb2xvciwgY2hpbGRyZW46IGhlbHBlclRleHQgfSlcbiAgICBdIH0pO1xuICB9XG4pO1xuVGV4dElucHV0LmRpc3BsYXlOYW1lID0gXCJUZXh0SW5wdXRcIjtcblxuZXhwb3J0IHsgVGV4dElucHV0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UZXh0SW5wdXQubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgRGF0ZXBpY2tlckNvbnRleHQgPSBjcmVhdGVDb250ZXh0KHZvaWQgMCk7XG5mdW5jdGlvbiB1c2VEYXRlUGlja2VyQ29udGV4dCgpIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoRGF0ZXBpY2tlckNvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1c2VEYXRlUGlja2VyQ29udGV4dCBzaG91bGQgYmUgdXNlZCB3aXRoaW4gdGhlIERhdGVQaWNrZXJDb250ZXh0IHByb3ZpZGVyIVwiKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn1cblxuZXhwb3J0IHsgRGF0ZXBpY2tlckNvbnRleHQsIHVzZURhdGVQaWNrZXJDb250ZXh0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1EYXRlcGlja2VyQ29udGV4dC5tanMubWFwXG4iLCJ2YXIgVmlld3MgPSAvKiBAX19QVVJFX18gKi8gKChWaWV3czIpID0+IHtcbiAgVmlld3MyW1ZpZXdzMltcIkRheXNcIl0gPSAwXSA9IFwiRGF5c1wiO1xuICBWaWV3czJbVmlld3MyW1wiTW9udGhzXCJdID0gMV0gPSBcIk1vbnRoc1wiO1xuICBWaWV3czJbVmlld3MyW1wiWWVhcnNcIl0gPSAyXSA9IFwiWWVhcnNcIjtcbiAgVmlld3MyW1ZpZXdzMltcIkRlY2FkZXNcIl0gPSAzXSA9IFwiRGVjYWRlc1wiO1xuICByZXR1cm4gVmlld3MyO1xufSkoVmlld3MgfHwge30pO1xudmFyIFdlZWtTdGFydCA9IC8qIEBfX1BVUkVfXyAqLyAoKFdlZWtTdGFydDIpID0+IHtcbiAgV2Vla1N0YXJ0MltXZWVrU3RhcnQyW1wiU3VuZGF5XCJdID0gMF0gPSBcIlN1bmRheVwiO1xuICBXZWVrU3RhcnQyW1dlZWtTdGFydDJbXCJNb25kYXlcIl0gPSAxXSA9IFwiTW9uZGF5XCI7XG4gIFdlZWtTdGFydDJbV2Vla1N0YXJ0MltcIlR1ZXNkYXlcIl0gPSAyXSA9IFwiVHVlc2RheVwiO1xuICBXZWVrU3RhcnQyW1dlZWtTdGFydDJbXCJXZWRuZXNkYXlcIl0gPSAzXSA9IFwiV2VkbmVzZGF5XCI7XG4gIFdlZWtTdGFydDJbV2Vla1N0YXJ0MltcIlRodXJzZGF5XCJdID0gNF0gPSBcIlRodXJzZGF5XCI7XG4gIFdlZWtTdGFydDJbV2Vla1N0YXJ0MltcIkZyaWRheVwiXSA9IDVdID0gXCJGcmlkYXlcIjtcbiAgV2Vla1N0YXJ0MltXZWVrU3RhcnQyW1wiU2F0dXJkYXlcIl0gPSA2XSA9IFwiU2F0dXJkYXlcIjtcbiAgcmV0dXJuIFdlZWtTdGFydDI7XG59KShXZWVrU3RhcnQgfHwge30pO1xuY29uc3QgaXNEYXRlSW5SYW5nZSA9IChkYXRlLCBtaW5EYXRlLCBtYXhEYXRlKSA9PiB7XG4gIGNvbnN0IGRhdGVUaW1lID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpKS5nZXRUaW1lKCk7XG4gIGlmIChtaW5EYXRlICYmIG1heERhdGUpIHtcbiAgICBjb25zdCBtaW5EYXRlVGltZSA9IG5ldyBEYXRlKG1pbkRhdGUuZ2V0RnVsbFllYXIoKSwgbWluRGF0ZS5nZXRNb250aCgpLCBtaW5EYXRlLmdldERhdGUoKSkuZ2V0VGltZSgpO1xuICAgIGNvbnN0IG1heERhdGVUaW1lID0gbmV3IERhdGUobWF4RGF0ZS5nZXRGdWxsWWVhcigpLCBtYXhEYXRlLmdldE1vbnRoKCksIG1heERhdGUuZ2V0RGF0ZSgpKS5nZXRUaW1lKCk7XG4gICAgcmV0dXJuIGRhdGVUaW1lID49IG1pbkRhdGVUaW1lICYmIGRhdGVUaW1lIDw9IG1heERhdGVUaW1lO1xuICB9XG4gIGlmIChtaW5EYXRlKSB7XG4gICAgY29uc3QgbWluRGF0ZVRpbWUgPSBuZXcgRGF0ZShtaW5EYXRlLmdldEZ1bGxZZWFyKCksIG1pbkRhdGUuZ2V0TW9udGgoKSwgbWluRGF0ZS5nZXREYXRlKCkpLmdldFRpbWUoKTtcbiAgICByZXR1cm4gZGF0ZVRpbWUgPj0gbWluRGF0ZVRpbWU7XG4gIH1cbiAgaWYgKG1heERhdGUpIHtcbiAgICBjb25zdCBtYXhEYXRlVGltZSA9IG5ldyBEYXRlKG1heERhdGUuZ2V0RnVsbFllYXIoKSwgbWF4RGF0ZS5nZXRNb250aCgpLCBtYXhEYXRlLmdldERhdGUoKSkuZ2V0VGltZSgpO1xuICAgIHJldHVybiBkYXRlVGltZSA8PSBtYXhEYXRlVGltZTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn07XG5jb25zdCBpc0RhdGVFcXVhbCA9IChkYXRlLCBzZWxlY3RlZERhdGUpID0+IHtcbiAgZGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSk7XG4gIHNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKHNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpLCBzZWxlY3RlZERhdGUuZ2V0TW9udGgoKSwgc2VsZWN0ZWREYXRlLmdldERhdGUoKSk7XG4gIHJldHVybiBkYXRlLmdldFRpbWUoKSA9PT0gc2VsZWN0ZWREYXRlLmdldFRpbWUoKTtcbn07XG5jb25zdCBnZXRGaXJzdERhdGVJblJhbmdlID0gKGRhdGUsIG1pbkRhdGUsIG1heERhdGUpID0+IHtcbiAgaWYgKCFpc0RhdGVJblJhbmdlKGRhdGUsIG1pbkRhdGUsIG1heERhdGUpKSB7XG4gICAgaWYgKG1pbkRhdGUgJiYgZGF0ZSA8IG1pbkRhdGUpIHtcbiAgICAgIGRhdGUgPSBtaW5EYXRlO1xuICAgIH0gZWxzZSBpZiAobWF4RGF0ZSAmJiBkYXRlID4gbWF4RGF0ZSkge1xuICAgICAgZGF0ZSA9IG1heERhdGU7XG4gICAgfVxuICB9XG4gIHJldHVybiBkYXRlO1xufTtcbmNvbnN0IGdldEZpcnN0RGF5T2ZUaGVNb250aCA9IChkYXRlLCB3ZWVrU3RhcnQpID0+IHtcbiAgY29uc3QgZmlyc3REYXlPZk1vbnRoID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIDEpO1xuICBjb25zdCBkYXlPZldlZWsgPSBmaXJzdERheU9mTW9udGguZ2V0RGF5KCk7XG4gIGxldCBkaWZmID0gZGF5T2ZXZWVrIC0gd2Vla1N0YXJ0O1xuICBpZiAoZGlmZiA8IDApIHtcbiAgICBkaWZmICs9IDc7XG4gIH1cbiAgcmV0dXJuIGFkZERheXMoZmlyc3REYXlPZk1vbnRoLCAtZGlmZik7XG59O1xuY29uc3QgZ2V0V2Vla0RheXMgPSAobGFuZywgd2Vla1N0YXJ0KSA9PiB7XG4gIGNvbnN0IHdlZWtkYXlzID0gW107XG4gIGNvbnN0IGRhdGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoMCk7XG4gIGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSAtIGRhdGUuZ2V0RGF5KCkgKyB3ZWVrU3RhcnQpO1xuICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsYW5nLCB7IHdlZWtkYXk6IFwic2hvcnRcIiB9KTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCA3OyBpKyspIHtcbiAgICB3ZWVrZGF5cy5wdXNoKGZvcm1hdHRlci5mb3JtYXQoYWRkRGF5cyhkYXRlLCBpKSkpO1xuICB9XG4gIHJldHVybiB3ZWVrZGF5cztcbn07XG5jb25zdCBhZGREYXlzID0gKGRhdGUsIGFtb3VudCkgPT4ge1xuICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUoZGF0ZSk7XG4gIG5ld0RhdGUuc2V0RGF0ZShuZXdEYXRlLmdldERhdGUoKSArIGFtb3VudCk7XG4gIHJldHVybiBuZXdEYXRlO1xufTtcbmNvbnN0IGFkZE1vbnRocyA9IChkYXRlLCBhbW91bnQpID0+IHtcbiAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xuICBuZXdEYXRlLnNldE1vbnRoKG5ld0RhdGUuZ2V0TW9udGgoKSArIGFtb3VudCk7XG4gIHJldHVybiBuZXdEYXRlO1xufTtcbmNvbnN0IGFkZFllYXJzID0gKGRhdGUsIGFtb3VudCkgPT4ge1xuICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUoZGF0ZSk7XG4gIG5ld0RhdGUuc2V0RnVsbFllYXIobmV3RGF0ZS5nZXRGdWxsWWVhcigpICsgYW1vdW50KTtcbiAgcmV0dXJuIG5ld0RhdGU7XG59O1xuY29uc3QgZ2V0Rm9ybWF0dGVkRGF0ZSA9IChsYW5ndWFnZSwgZGF0ZSwgb3B0aW9ucykgPT4ge1xuICBsZXQgZGVmYXVsdE9wdGlvbnMgPSB7XG4gICAgZGF5OiBcIm51bWVyaWNcIixcbiAgICBtb250aDogXCJsb25nXCIsXG4gICAgeWVhcjogXCJudW1lcmljXCJcbiAgfTtcbiAgaWYgKG9wdGlvbnMpIHtcbiAgICBkZWZhdWx0T3B0aW9ucyA9IG9wdGlvbnM7XG4gIH1cbiAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxhbmd1YWdlLCBkZWZhdWx0T3B0aW9ucykuZm9ybWF0KGRhdGUpO1xufTtcbmNvbnN0IHN0YXJ0T2ZZZWFyUGVyaW9kID0gKGRhdGUsIHllYXJzKSA9PiB7XG4gIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gIHJldHVybiBNYXRoLmZsb29yKHllYXIgLyB5ZWFycykgKiB5ZWFycztcbn07XG5jb25zdCBpc0RhdGVJbkRlY2FkZSA9IChkYXRlLCBzdGFydFllYXIpID0+IHtcbiAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgY29uc3QgZW5kWWVhciA9IHN0YXJ0WWVhciArIDk7XG4gIHJldHVybiB5ZWFyID49IHN0YXJ0WWVhciAmJiB5ZWFyIDw9IGVuZFllYXI7XG59O1xuXG5leHBvcnQgeyBWaWV3cywgV2Vla1N0YXJ0LCBhZGREYXlzLCBhZGRNb250aHMsIGFkZFllYXJzLCBnZXRGaXJzdERhdGVJblJhbmdlLCBnZXRGaXJzdERheU9mVGhlTW9udGgsIGdldEZvcm1hdHRlZERhdGUsIGdldFdlZWtEYXlzLCBpc0RhdGVFcXVhbCwgaXNEYXRlSW5EZWNhZGUsIGlzRGF0ZUluUmFuZ2UsIHN0YXJ0T2ZZZWFyUGVyaW9kIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1oZWxwZXJzLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeHMsIEZyYWdtZW50LCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyB1c2VEYXRlUGlja2VyQ29udGV4dCB9IGZyb20gJy4uL0RhdGVwaWNrZXJDb250ZXh0Lm1qcyc7XG5pbXBvcnQgeyBnZXRXZWVrRGF5cywgZ2V0Rmlyc3REYXlPZlRoZU1vbnRoLCBhZGREYXlzLCBnZXRGb3JtYXR0ZWREYXRlLCBpc0RhdGVFcXVhbCwgaXNEYXRlSW5SYW5nZSB9IGZyb20gJy4uL2hlbHBlcnMubWpzJztcblxuY29uc3QgRGF0ZXBpY2tlclZpZXdzRGF5cyA9ICh7IHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9IH0pID0+IHtcbiAgY29uc3Qge1xuICAgIHRoZW1lOiByb290VGhlbWUsXG4gICAgd2Vla1N0YXJ0LFxuICAgIG1pbkRhdGUsXG4gICAgbWF4RGF0ZSxcbiAgICB2aWV3RGF0ZSxcbiAgICBzZWxlY3RlZERhdGUsXG4gICAgY2hhbmdlU2VsZWN0ZWREYXRlLFxuICAgIGxhbmd1YWdlXG4gIH0gPSB1c2VEYXRlUGlja2VyQ29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChyb290VGhlbWUudmlld3MuZGF5cywgY3VzdG9tVGhlbWUpO1xuICBjb25zdCB3ZWVrRGF5cyA9IGdldFdlZWtEYXlzKGxhbmd1YWdlLCB3ZWVrU3RhcnQpO1xuICBjb25zdCBzdGFydERhdGUgPSBnZXRGaXJzdERheU9mVGhlTW9udGgodmlld0RhdGUsIHdlZWtTdGFydCk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhGcmFnbWVudCwgeyBjaGlsZHJlbjogW1xuICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHRoZW1lLmhlYWRlci5iYXNlLCBjaGlsZHJlbjogd2Vla0RheXMubWFwKChkYXksIGluZGV4KSA9PiAvKiBAX19QVVJFX18gKi8ganN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogdGhlbWUuaGVhZGVyLnRpdGxlLCBjaGlsZHJlbjogZGF5IH0sIGluZGV4KSkgfSksXG4gICAgLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogdGhlbWUuaXRlbXMuYmFzZSwgY2hpbGRyZW46IFsuLi5BcnJheSg0MildLm1hcCgoX2RhdGUsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50RGF0ZSA9IGFkZERheXMoc3RhcnREYXRlLCBpbmRleCk7XG4gICAgICBjb25zdCBkYXkgPSBnZXRGb3JtYXR0ZWREYXRlKGxhbmd1YWdlLCBjdXJyZW50RGF0ZSwgeyBkYXk6IFwibnVtZXJpY1wiIH0pO1xuICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IHNlbGVjdGVkRGF0ZSAmJiBpc0RhdGVFcXVhbChzZWxlY3RlZERhdGUsIGN1cnJlbnREYXRlKTtcbiAgICAgIGNvbnN0IGlzRGlzYWJsZWQgPSAhaXNEYXRlSW5SYW5nZShjdXJyZW50RGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gICAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgXCJidXR0b25cIixcbiAgICAgICAge1xuICAgICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxuICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKFxuICAgICAgICAgICAgdGhlbWUuaXRlbXMuaXRlbS5iYXNlLFxuICAgICAgICAgICAgaXNTZWxlY3RlZCAmJiB0aGVtZS5pdGVtcy5pdGVtLnNlbGVjdGVkLFxuICAgICAgICAgICAgaXNEaXNhYmxlZCAmJiB0aGVtZS5pdGVtcy5pdGVtLmRpc2FibGVkXG4gICAgICAgICAgKSxcbiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNEaXNhYmxlZCkgcmV0dXJuO1xuICAgICAgICAgICAgY2hhbmdlU2VsZWN0ZWREYXRlKGN1cnJlbnREYXRlLCB0cnVlKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNoaWxkcmVuOiBkYXlcbiAgICAgICAgfSxcbiAgICAgICAgaW5kZXhcbiAgICAgICk7XG4gICAgfSkgfSlcbiAgXSB9KTtcbn07XG5cbmV4cG9ydCB7IERhdGVwaWNrZXJWaWV3c0RheXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURheXMubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlRGF0ZVBpY2tlckNvbnRleHQgfSBmcm9tICcuLi9EYXRlcGlja2VyQ29udGV4dC5tanMnO1xuaW1wb3J0IHsgc3RhcnRPZlllYXJQZXJpb2QsIGFkZFllYXJzLCBpc0RhdGVJbkRlY2FkZSwgaXNEYXRlSW5SYW5nZSwgVmlld3MgfSBmcm9tICcuLi9oZWxwZXJzLm1qcyc7XG5cbmNvbnN0IERhdGVwaWNrZXJWaWV3c0RlY2FkZXMgPSAoeyB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSB9KSA9PiB7XG4gIGNvbnN0IHsgdGhlbWU6IHJvb3RUaGVtZSwgdmlld0RhdGUsIHNlbGVjdGVkRGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSwgc2V0Vmlld0RhdGUsIHNldFZpZXcgfSA9IHVzZURhdGVQaWNrZXJDb250ZXh0KCk7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKHJvb3RUaGVtZS52aWV3cy5kZWNhZGVzLCBjdXN0b21UaGVtZSk7XG4gIGNvbnN0IGZpcnN0ID0gc3RhcnRPZlllYXJQZXJpb2Qodmlld0RhdGUsIDEwMCk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5pdGVtcy5iYXNlLCBjaGlsZHJlbjogWy4uLkFycmF5KDEyKV0ubWFwKChfeWVhciwgaW5kZXgpID0+IHtcbiAgICBjb25zdCB5ZWFyID0gZmlyc3QgLSAxMCArIGluZGV4ICogMTA7XG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKHZpZXdEYXRlLmdldFRpbWUoKSk7XG4gICAgbmV3RGF0ZS5zZXRGdWxsWWVhcih5ZWFyICsgdmlld0RhdGUuZ2V0RnVsbFllYXIoKSAlIDEwKTtcbiAgICBjb25zdCBmaXJzdERhdGUgPSBuZXcgRGF0ZSh5ZWFyLCAwLCAxKTtcbiAgICBjb25zdCBsYXN0RGF0ZSA9IGFkZFllYXJzKGZpcnN0RGF0ZSwgOSk7XG4gICAgY29uc3QgaXNTZWxlY3RlZCA9IHNlbGVjdGVkRGF0ZSAmJiBpc0RhdGVJbkRlY2FkZShzZWxlY3RlZERhdGUsIHllYXIpO1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSAhaXNEYXRlSW5SYW5nZShmaXJzdERhdGUsIG1pbkRhdGUsIG1heERhdGUpICYmICFpc0RhdGVJblJhbmdlKGxhc3REYXRlLCBtaW5EYXRlLCBtYXhEYXRlKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFwiYnV0dG9uXCIsXG4gICAgICB7XG4gICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxuICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgICAgdGhlbWUuaXRlbXMuaXRlbS5iYXNlLFxuICAgICAgICAgIGlzU2VsZWN0ZWQgJiYgdGhlbWUuaXRlbXMuaXRlbS5zZWxlY3RlZCxcbiAgICAgICAgICBpc0Rpc2FibGVkICYmIHRoZW1lLml0ZW1zLml0ZW0uZGlzYWJsZWRcbiAgICAgICAgKSxcbiAgICAgICAgb25DbGljazogKCkgPT4ge1xuICAgICAgICAgIGlmIChpc0Rpc2FibGVkKSByZXR1cm47XG4gICAgICAgICAgc2VsZWN0ZWREYXRlICYmIHNldFZpZXdEYXRlKGFkZFllYXJzKHZpZXdEYXRlLCB5ZWFyIC0gc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCkpKTtcbiAgICAgICAgICBzZXRWaWV3KFZpZXdzLlllYXJzKTtcbiAgICAgICAgfSxcbiAgICAgICAgY2hpbGRyZW46IHllYXJcbiAgICAgIH0sXG4gICAgICBpbmRleFxuICAgICk7XG4gIH0pIH0pO1xufTtcblxuZXhwb3J0IHsgRGF0ZXBpY2tlclZpZXdzRGVjYWRlcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGVjYWRlcy5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyB1c2VEYXRlUGlja2VyQ29udGV4dCB9IGZyb20gJy4uL0RhdGVwaWNrZXJDb250ZXh0Lm1qcyc7XG5pbXBvcnQgeyBnZXRGb3JtYXR0ZWREYXRlLCBpc0RhdGVFcXVhbCwgaXNEYXRlSW5SYW5nZSwgVmlld3MgfSBmcm9tICcuLi9oZWxwZXJzLm1qcyc7XG5cbmNvbnN0IERhdGVwaWNrZXJWaWV3c01vbnRoID0gKHsgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30gfSkgPT4ge1xuICBjb25zdCB7XG4gICAgdGhlbWU6IHJvb3RUaGVtZSxcbiAgICBtaW5EYXRlLFxuICAgIG1heERhdGUsXG4gICAgc2VsZWN0ZWREYXRlLFxuICAgIHZpZXdEYXRlLFxuICAgIGxhbmd1YWdlLFxuICAgIHNldFZpZXdEYXRlLFxuICAgIHNldFZpZXdcbiAgfSA9IHVzZURhdGVQaWNrZXJDb250ZXh0KCk7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKHJvb3RUaGVtZS52aWV3cy5tb250aHMsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHRoZW1lLml0ZW1zLmJhc2UsIGNoaWxkcmVuOiBbLi4uQXJyYXkoMTIpXS5tYXAoKF9tb250aCwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBuZXdEYXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCk7XG4gICAgbmV3RGF0ZS5zZXRNb250aChpbmRleCwgMSk7XG4gICAgbmV3RGF0ZS5zZXRGdWxsWWVhcih2aWV3RGF0ZS5nZXRGdWxsWWVhcigpKTtcbiAgICBjb25zdCBtb250aCA9IGdldEZvcm1hdHRlZERhdGUobGFuZ3VhZ2UsIG5ld0RhdGUsIHsgbW9udGg6IFwic2hvcnRcIiB9KTtcbiAgICBjb25zdCBpc1NlbGVjdGVkID0gc2VsZWN0ZWREYXRlICYmIGlzRGF0ZUVxdWFsKHNlbGVjdGVkRGF0ZSwgbmV3RGF0ZSk7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9ICFpc0RhdGVJblJhbmdlKG5ld0RhdGUsIG1pbkRhdGUsIG1heERhdGUpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgXCJidXR0b25cIixcbiAgICAgIHtcbiAgICAgICAgZGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZShcbiAgICAgICAgICB0aGVtZS5pdGVtcy5pdGVtLmJhc2UsXG4gICAgICAgICAgaXNTZWxlY3RlZCAmJiB0aGVtZS5pdGVtcy5pdGVtLnNlbGVjdGVkLFxuICAgICAgICAgIGlzRGlzYWJsZWQgJiYgdGhlbWUuaXRlbXMuaXRlbS5kaXNhYmxlZFxuICAgICAgICApLFxuICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHJldHVybjtcbiAgICAgICAgICBzZXRWaWV3RGF0ZShuZXdEYXRlKTtcbiAgICAgICAgICBzZXRWaWV3KFZpZXdzLkRheXMpO1xuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogbW9udGhcbiAgICAgIH0sXG4gICAgICBpbmRleFxuICAgICk7XG4gIH0pIH0pO1xufTtcblxuZXhwb3J0IHsgRGF0ZXBpY2tlclZpZXdzTW9udGggfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU1vbnRocy5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyB1c2VEYXRlUGlja2VyQ29udGV4dCB9IGZyb20gJy4uL0RhdGVwaWNrZXJDb250ZXh0Lm1qcyc7XG5pbXBvcnQgeyBzdGFydE9mWWVhclBlcmlvZCwgaXNEYXRlRXF1YWwsIGlzRGF0ZUluUmFuZ2UsIFZpZXdzIH0gZnJvbSAnLi4vaGVscGVycy5tanMnO1xuXG5jb25zdCBEYXRlcGlja2VyVmlld3NZZWFycyA9ICh7IHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9IH0pID0+IHtcbiAgY29uc3QgeyB0aGVtZTogcm9vdFRoZW1lLCBzZWxlY3RlZERhdGUsIG1pbkRhdGUsIG1heERhdGUsIHZpZXdEYXRlLCBzZXRWaWV3RGF0ZSwgc2V0VmlldyB9ID0gdXNlRGF0ZVBpY2tlckNvbnRleHQoKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAocm9vdFRoZW1lLnZpZXdzLnllYXJzLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5pdGVtcy5iYXNlLCBjaGlsZHJlbjogWy4uLkFycmF5KDEyKV0ubWFwKChfeWVhciwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBmaXJzdCA9IHN0YXJ0T2ZZZWFyUGVyaW9kKHZpZXdEYXRlLCAxMCk7XG4gICAgY29uc3QgeWVhciA9IGZpcnN0ICsgaW5kZXg7XG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKHZpZXdEYXRlLmdldFRpbWUoKSk7XG4gICAgbmV3RGF0ZS5zZXRGdWxsWWVhcih5ZWFyKTtcbiAgICBjb25zdCBpc1NlbGVjdGVkID0gc2VsZWN0ZWREYXRlICYmIGlzRGF0ZUVxdWFsKHNlbGVjdGVkRGF0ZSwgbmV3RGF0ZSk7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9ICFpc0RhdGVJblJhbmdlKG5ld0RhdGUsIG1pbkRhdGUsIG1heERhdGUpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgXCJidXR0b25cIixcbiAgICAgIHtcbiAgICAgICAgZGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZShcbiAgICAgICAgICB0aGVtZS5pdGVtcy5pdGVtLmJhc2UsXG4gICAgICAgICAgaXNTZWxlY3RlZCAmJiB0aGVtZS5pdGVtcy5pdGVtLnNlbGVjdGVkLFxuICAgICAgICAgIGlzRGlzYWJsZWQgJiYgdGhlbWUuaXRlbXMuaXRlbS5kaXNhYmxlZFxuICAgICAgICApLFxuICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHJldHVybjtcbiAgICAgICAgICBzZXRWaWV3RGF0ZShuZXdEYXRlKTtcbiAgICAgICAgICBzZXRWaWV3KFZpZXdzLk1vbnRocyk7XG4gICAgICAgIH0sXG4gICAgICAgIGNoaWxkcmVuOiB5ZWFyXG4gICAgICB9LFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9KSB9KTtcbn07XG5cbmV4cG9ydCB7IERhdGVwaWNrZXJWaWV3c1llYXJzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ZZWFycy5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3gsIGpzeHMgfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCB1c2VNZW1vLCB1c2VTdGF0ZSwgdXNlUmVmLCB1c2VJbXBlcmF0aXZlSGFuZGxlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBIaUNhbGVuZGFyLCBIaUFycm93TGVmdCwgSGlBcnJvd1JpZ2h0IH0gZnJvbSAncmVhY3QtaWNvbnMvaGknO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgVGV4dElucHV0IH0gZnJvbSAnLi4vVGV4dElucHV0L1RleHRJbnB1dC5tanMnO1xuaW1wb3J0IHsgRGF0ZXBpY2tlckNvbnRleHQgfSBmcm9tICcuL0RhdGVwaWNrZXJDb250ZXh0Lm1qcyc7XG5pbXBvcnQgeyBnZXRGaXJzdERhdGVJblJhbmdlLCBWaWV3cywgaXNEYXRlRXF1YWwsIGdldEZvcm1hdHRlZERhdGUsIFdlZWtTdGFydCwgc3RhcnRPZlllYXJQZXJpb2QsIGFkZFllYXJzLCBhZGRNb250aHMgfSBmcm9tICcuL2hlbHBlcnMubWpzJztcbmltcG9ydCB7IERhdGVwaWNrZXJWaWV3c0RheXMgfSBmcm9tICcuL1ZpZXdzL0RheXMubWpzJztcbmltcG9ydCB7IERhdGVwaWNrZXJWaWV3c0RlY2FkZXMgfSBmcm9tICcuL1ZpZXdzL0RlY2FkZXMubWpzJztcbmltcG9ydCB7IERhdGVwaWNrZXJWaWV3c01vbnRoIH0gZnJvbSAnLi9WaWV3cy9Nb250aHMubWpzJztcbmltcG9ydCB7IERhdGVwaWNrZXJWaWV3c1llYXJzIH0gZnJvbSAnLi9WaWV3cy9ZZWFycy5tanMnO1xuXG5jb25zdCBEYXRlcGlja2VyUmVuZGVyID0gKHtcbiAgdGl0bGUsXG4gIG9wZW4sXG4gIGlubGluZSA9IGZhbHNlLFxuICBhdXRvSGlkZSA9IHRydWUsXG4gIC8vIEhpZGUgd2hlbiBzZWxlY3RlZCB0aGUgZGF5XG4gIHNob3dDbGVhckJ1dHRvbiA9IHRydWUsXG4gIGxhYmVsQ2xlYXJCdXR0b24gPSBcIkNsZWFyXCIsXG4gIHNob3dUb2RheUJ1dHRvbiA9IHRydWUsXG4gIGxhYmVsVG9kYXlCdXR0b24gPSBcIlRvZGF5XCIsXG4gIGRlZmF1bHRWYWx1ZSxcbiAgbWluRGF0ZSxcbiAgbWF4RGF0ZSxcbiAgbGFuZ3VhZ2UgPSBcImVuXCIsXG4gIHdlZWtTdGFydCA9IFdlZWtTdGFydC5TdW5kYXksXG4gIGNsYXNzTmFtZSxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIG9uQ2hhbmdlLFxuICBsYWJlbCxcbiAgdmFsdWUsXG4gIC4uLnByb3BzXG59LCByZWYpID0+IHtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5kYXRlcGlja2VyLCBjdXN0b21UaGVtZSk7XG4gIGNvbnN0IGluaXRpYWxEYXRlID0gZGVmYXVsdFZhbHVlID8gZ2V0Rmlyc3REYXRlSW5SYW5nZShkZWZhdWx0VmFsdWUsIG1pbkRhdGUsIG1heERhdGUpIDogbnVsbDtcbiAgY29uc3QgZWZmZWN0aXZlRGVmYXVsdFZpZXcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlID8gZ2V0Rmlyc3REYXRlSW5SYW5nZShkZWZhdWx0VmFsdWUsIG1pbkRhdGUsIG1heERhdGUpIDogLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCk7XG4gIH0sIFtdKTtcbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKG9wZW4pO1xuICBjb25zdCBbdmlldywgc2V0Vmlld10gPSB1c2VTdGF0ZShWaWV3cy5EYXlzKTtcbiAgY29uc3QgW3NlbGVjdGVkRGF0ZSwgc2V0U2VsZWN0ZWREYXRlXSA9IHVzZVN0YXRlKHZhbHVlID8/IGluaXRpYWxEYXRlKTtcbiAgY29uc3QgW3ZpZXdEYXRlLCBzZXRWaWV3RGF0ZV0gPSB1c2VTdGF0ZSh2YWx1ZSA/PyBlZmZlY3RpdmVEZWZhdWx0Vmlldyk7XG4gIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBkYXRlcGlja2VyUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBjaGFuZ2VTZWxlY3RlZERhdGUgPSAoZGF0ZSwgdXNlQXV0b2hpZGUpID0+IHtcbiAgICBzZXRTZWxlY3RlZERhdGUoZGF0ZSk7XG4gICAgaWYgKChkYXRlID09PSBudWxsIHx8IGRhdGUpICYmIG9uQ2hhbmdlKSB7XG4gICAgICBvbkNoYW5nZShkYXRlKTtcbiAgICB9XG4gICAgaWYgKGF1dG9IaWRlICYmIHZpZXcgPT09IFZpZXdzLkRheXMgJiYgdXNlQXV0b2hpZGUgPT0gdHJ1ZSAmJiAhaW5saW5lKSB7XG4gICAgICBzZXRJc09wZW4oZmFsc2UpO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgY2xlYXJEYXRlID0gKCkgPT4ge1xuICAgIGNoYW5nZVNlbGVjdGVkRGF0ZShpbml0aWFsRGF0ZSwgdHJ1ZSk7XG4gICAgaWYgKGRlZmF1bHRWYWx1ZSkge1xuICAgICAgc2V0Vmlld0RhdGUoZGVmYXVsdFZhbHVlKTtcbiAgICB9XG4gIH07XG4gIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xuICAgIGZvY3VzKCkge1xuICAgICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICB9LFxuICAgIGNsZWFyKCkge1xuICAgICAgY2xlYXJEYXRlKCk7XG4gICAgfVxuICB9KSk7XG4gIGNvbnN0IHJlbmRlclZpZXcgPSAodHlwZSkgPT4ge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBWaWV3cy5EZWNhZGVzOlxuICAgICAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChEYXRlcGlja2VyVmlld3NEZWNhZGVzLCB7IHRoZW1lOiB0aGVtZS52aWV3cy5kZWNhZGVzIH0pO1xuICAgICAgY2FzZSBWaWV3cy5ZZWFyczpcbiAgICAgICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goRGF0ZXBpY2tlclZpZXdzWWVhcnMsIHsgdGhlbWU6IHRoZW1lLnZpZXdzLnllYXJzIH0pO1xuICAgICAgY2FzZSBWaWV3cy5Nb250aHM6XG4gICAgICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KERhdGVwaWNrZXJWaWV3c01vbnRoLCB7IHRoZW1lOiB0aGVtZS52aWV3cy5tb250aHMgfSk7XG4gICAgICBjYXNlIFZpZXdzLkRheXM6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChEYXRlcGlja2VyVmlld3NEYXlzLCB7IHRoZW1lOiB0aGVtZS52aWV3cy5kYXlzIH0pO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgZ2V0TmV4dFZpZXcgPSAoKSA9PiB7XG4gICAgc3dpdGNoICh2aWV3KSB7XG4gICAgICBjYXNlIFZpZXdzLkRheXM6XG4gICAgICAgIHJldHVybiBWaWV3cy5Nb250aHM7XG4gICAgICBjYXNlIFZpZXdzLk1vbnRoczpcbiAgICAgICAgcmV0dXJuIFZpZXdzLlllYXJzO1xuICAgICAgY2FzZSBWaWV3cy5ZZWFyczpcbiAgICAgICAgcmV0dXJuIFZpZXdzLkRlY2FkZXM7XG4gICAgfVxuICAgIHJldHVybiB2aWV3O1xuICB9O1xuICBjb25zdCBnZXRWaWV3VGl0bGUgPSAoKSA9PiB7XG4gICAgc3dpdGNoICh2aWV3KSB7XG4gICAgICBjYXNlIFZpZXdzLkRlY2FkZXM6XG4gICAgICAgIHJldHVybiBgJHtzdGFydE9mWWVhclBlcmlvZCh2aWV3RGF0ZSwgMTAwKSAtIDEwfSAtICR7c3RhcnRPZlllYXJQZXJpb2Qodmlld0RhdGUsIDEwMCkgKyAxMDB9YDtcbiAgICAgIGNhc2UgVmlld3MuWWVhcnM6XG4gICAgICAgIHJldHVybiBgJHtzdGFydE9mWWVhclBlcmlvZCh2aWV3RGF0ZSwgMTApfSAtICR7c3RhcnRPZlllYXJQZXJpb2Qodmlld0RhdGUsIDEwKSArIDExfWA7XG4gICAgICBjYXNlIFZpZXdzLk1vbnRoczpcbiAgICAgICAgcmV0dXJuIGdldEZvcm1hdHRlZERhdGUobGFuZ3VhZ2UsIHZpZXdEYXRlLCB7IHllYXI6IFwibnVtZXJpY1wiIH0pO1xuICAgICAgY2FzZSBWaWV3cy5EYXlzOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGdldEZvcm1hdHRlZERhdGUobGFuZ3VhZ2UsIHZpZXdEYXRlLCB7IG1vbnRoOiBcImxvbmdcIiwgeWVhcjogXCJudW1lcmljXCIgfSk7XG4gICAgfVxuICB9O1xuICBjb25zdCBnZXRWaWV3RGF0ZVBhZ2UgPSAodmlldzIsIGRhdGUsIHZhbHVlMikgPT4ge1xuICAgIHN3aXRjaCAodmlldzIpIHtcbiAgICAgIGNhc2UgVmlld3MuRGF5czpcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGFkZE1vbnRocyhkYXRlLCB2YWx1ZTIpKTtcbiAgICAgIGNhc2UgVmlld3MuTW9udGhzOlxuICAgICAgICByZXR1cm4gbmV3IERhdGUoYWRkWWVhcnMoZGF0ZSwgdmFsdWUyKSk7XG4gICAgICBjYXNlIFZpZXdzLlllYXJzOlxuICAgICAgICByZXR1cm4gbmV3IERhdGUoYWRkWWVhcnMoZGF0ZSwgdmFsdWUyICogMTApKTtcbiAgICAgIGNhc2UgVmlld3MuRGVjYWRlczpcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGFkZFllYXJzKGRhdGUsIHZhbHVlMiAqIDEwMCkpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGFkZFllYXJzKGRhdGUsIHZhbHVlMiAqIDEwKSk7XG4gICAgfVxuICB9O1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudCkgPT4ge1xuICAgICAgY29uc3QgY2xpY2tlZEluc2lkZURhdGVwaWNrZXIgPSBkYXRlcGlja2VyUmVmPy5jdXJyZW50Py5jb250YWlucyhldmVudC50YXJnZXQpO1xuICAgICAgY29uc3QgY2xpY2tlZEluc2lkZUlucHV0ID0gaW5wdXRSZWY/LmN1cnJlbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XG4gICAgICBpZiAoIWNsaWNrZWRJbnNpZGVEYXRlcGlja2VyICYmICFjbGlja2VkSW5zaWRlSW5wdXQpIHtcbiAgICAgICAgc2V0SXNPcGVuKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCBoYW5kbGVDbGlja091dHNpZGUpO1xuICAgIH07XG4gIH0sIFtpbnB1dFJlZiwgZGF0ZXBpY2tlclJlZiwgc2V0SXNPcGVuXSk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZWZmZWN0aXZlVmFsdWUgPSB2YWx1ZSAmJiBnZXRGaXJzdERhdGVJblJhbmdlKG5ldyBEYXRlKHZhbHVlKSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gICAgY29uc3QgZWZmZWN0aXZlU2VsZWN0ZWREYXRlID0gc2VsZWN0ZWREYXRlICYmIGdldEZpcnN0RGF0ZUluUmFuZ2UobmV3IERhdGUoc2VsZWN0ZWREYXRlKSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gICAgaWYgKGVmZmVjdGl2ZVNlbGVjdGVkRGF0ZSAmJiBlZmZlY3RpdmVWYWx1ZSAmJiAhaXNEYXRlRXF1YWwoZWZmZWN0aXZlVmFsdWUsIGVmZmVjdGl2ZVNlbGVjdGVkRGF0ZSkpIHtcbiAgICAgIHNldFNlbGVjdGVkRGF0ZShlZmZlY3RpdmVWYWx1ZSk7XG4gICAgfVxuICAgIGlmIChzZWxlY3RlZERhdGUgPT0gbnVsbCkge1xuICAgICAgc2V0U2VsZWN0ZWREYXRlKGluaXRpYWxEYXRlKTtcbiAgICB9XG4gIH0sIFt2YWx1ZSwgc2V0U2VsZWN0ZWREYXRlLCBzZXRWaWV3RGF0ZSwgc2VsZWN0ZWREYXRlXSk7XG4gIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IHZhbHVlID09PSBudWxsID8gbGFiZWwgOiBnZXRGb3JtYXR0ZWREYXRlKGxhbmd1YWdlLCBzZWxlY3RlZERhdGUgfHwgLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCkpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBEYXRlcGlja2VyQ29udGV4dC5Qcm92aWRlcixcbiAgICB7XG4gICAgICB2YWx1ZToge1xuICAgICAgICB0aGVtZSxcbiAgICAgICAgbGFuZ3VhZ2UsXG4gICAgICAgIG1pbkRhdGUsXG4gICAgICAgIG1heERhdGUsXG4gICAgICAgIHdlZWtTdGFydCxcbiAgICAgICAgaXNPcGVuLFxuICAgICAgICBzZXRJc09wZW4sXG4gICAgICAgIHZpZXcsXG4gICAgICAgIHNldFZpZXcsXG4gICAgICAgIHZpZXdEYXRlLFxuICAgICAgICBzZXRWaWV3RGF0ZSxcbiAgICAgICAgc2VsZWN0ZWREYXRlLFxuICAgICAgICBzZXRTZWxlY3RlZERhdGUsXG4gICAgICAgIGNoYW5nZVNlbGVjdGVkRGF0ZVxuICAgICAgfSxcbiAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5yb290LmJhc2UsIGNsYXNzTmFtZSksIGNoaWxkcmVuOiBbXG4gICAgICAgICFpbmxpbmUgJiYgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICBUZXh0SW5wdXQsXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGhlbWU6IHRoZW1lLnJvb3QuaW5wdXQsXG4gICAgICAgICAgICBpY29uOiBIaUNhbGVuZGFyLFxuICAgICAgICAgICAgcmVmOiBpbnB1dFJlZixcbiAgICAgICAgICAgIG9uRm9jdXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkRGF0ZSAmJiAhaXNEYXRlRXF1YWwodmlld0RhdGUsIHNlbGVjdGVkRGF0ZSkpIHtcbiAgICAgICAgICAgICAgICBzZXRWaWV3RGF0ZShzZWxlY3RlZERhdGUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHNldElzT3Blbih0cnVlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2YWx1ZTogZGlzcGxheVZhbHVlLFxuICAgICAgICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGluaXRpYWxEYXRlID8gZ2V0Rm9ybWF0dGVkRGF0ZShsYW5ndWFnZSwgaW5pdGlhbERhdGUpIDogbGFiZWwsXG4gICAgICAgICAgICAuLi5wcm9wc1xuICAgICAgICAgIH1cbiAgICAgICAgKSxcbiAgICAgICAgKGlzT3BlbiB8fCBpbmxpbmUpICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyByZWY6IGRhdGVwaWNrZXJSZWYsIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5wb3B1cC5yb290LmJhc2UsIGlubGluZSAmJiB0aGVtZS5wb3B1cC5yb290LmlubGluZSksIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogdGhlbWUucG9wdXAucm9vdC5pbm5lciwgY2hpbGRyZW46IFtcbiAgICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogdGhlbWUucG9wdXAuaGVhZGVyLmJhc2UsIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICB0aXRsZSAmJiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5wb3B1cC5oZWFkZXIudGl0bGUsIGNoaWxkcmVuOiB0aXRsZSB9KSxcbiAgICAgICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5wb3B1cC5oZWFkZXIuc2VsZWN0b3JzLmJhc2UsIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgICAgICAgXCJidXR0b25cIixcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKFxuICAgICAgICAgICAgICAgICAgICB0aGVtZS5wb3B1cC5oZWFkZXIuc2VsZWN0b3JzLmJ1dHRvbi5iYXNlLFxuICAgICAgICAgICAgICAgICAgICB0aGVtZS5wb3B1cC5oZWFkZXIuc2VsZWN0b3JzLmJ1dHRvbi5wcmV2XG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgb25DbGljazogKCkgPT4gc2V0Vmlld0RhdGUoZ2V0Vmlld0RhdGVQYWdlKHZpZXcsIHZpZXdEYXRlLCAtMSkpLFxuICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goSGlBcnJvd0xlZnQsIHt9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICAgICAgICBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgICAgICAgICAgICAgIHRoZW1lLnBvcHVwLmhlYWRlci5zZWxlY3RvcnMuYnV0dG9uLmJhc2UsXG4gICAgICAgICAgICAgICAgICAgIHRoZW1lLnBvcHVwLmhlYWRlci5zZWxlY3RvcnMuYnV0dG9uLnZpZXdcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBzZXRWaWV3KGdldE5leHRWaWV3KCkpLFxuICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IGdldFZpZXdUaXRsZSgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZShcbiAgICAgICAgICAgICAgICAgICAgdGhlbWUucG9wdXAuaGVhZGVyLnNlbGVjdG9ycy5idXR0b24uYmFzZSxcbiAgICAgICAgICAgICAgICAgICAgdGhlbWUucG9wdXAuaGVhZGVyLnNlbGVjdG9ycy5idXR0b24ubmV4dFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHNldFZpZXdEYXRlKGdldFZpZXdEYXRlUGFnZSh2aWV3LCB2aWV3RGF0ZSwgMSkpLFxuICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goSGlBcnJvd1JpZ2h0LCB7fSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIF0gfSlcbiAgICAgICAgICBdIH0pLFxuICAgICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHRoZW1lLnBvcHVwLnZpZXcuYmFzZSwgY2hpbGRyZW46IHJlbmRlclZpZXcodmlldykgfSksXG4gICAgICAgICAgKHNob3dDbGVhckJ1dHRvbiB8fCBzaG93VG9kYXlCdXR0b24pICYmIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5wb3B1cC5mb290ZXIuYmFzZSwgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIHNob3dUb2RheUJ1dHRvbiAmJiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgICAgICBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUucG9wdXAuZm9vdGVyLmJ1dHRvbi5iYXNlLCB0aGVtZS5wb3B1cC5mb290ZXIuYnV0dG9uLnRvZGF5KSxcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCB0b2RheSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgY2hhbmdlU2VsZWN0ZWREYXRlKHRvZGF5LCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgIHNldFZpZXdEYXRlKHRvZGF5KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBsYWJlbFRvZGF5QnV0dG9uXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzaG93Q2xlYXJCdXR0b24gJiYgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICAgICAgXCJidXR0b25cIixcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLnBvcHVwLmZvb3Rlci5idXR0b24uYmFzZSwgdGhlbWUucG9wdXAuZm9vdGVyLmJ1dHRvbi5jbGVhciksXG4gICAgICAgICAgICAgICAgb25DbGljazogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY2hhbmdlU2VsZWN0ZWREYXRlKG51bGwsIHRydWUpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IGxhYmVsQ2xlYXJCdXR0b25cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICAgIF0gfSlcbiAgICAgICAgXSB9KSB9KVxuICAgICAgXSB9KVxuICAgIH1cbiAgKTtcbn07XG5jb25zdCBEYXRlcGlja2VyID0gZm9yd2FyZFJlZihEYXRlcGlja2VyUmVuZGVyKTtcbkRhdGVwaWNrZXIuZGlzcGxheU5hbWUgPSBcIkRhdGVwaWNrZXJcIjtcblxuZXhwb3J0IHsgRGF0ZXBpY2tlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGF0ZXBpY2tlci5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuXG5jb25zdCBEcmF3ZXJDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh2b2lkIDApO1xuZnVuY3Rpb24gdXNlRHJhd2VyQ29udGV4dCgpIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoRHJhd2VyQ29udGV4dCk7XG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcInVzZURyYXdlckNvbnRleHQgc2hvdWxkIGJlIHVzZWQgd2l0aGluIHRoZSBEcmF3ZXJDb250ZXh0IHByb3ZpZGVyIVwiKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn1cblxuZXhwb3J0IHsgRHJhd2VyQ29udGV4dCwgdXNlRHJhd2VyQ29udGV4dCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RHJhd2VyQ29udGV4dC5tanMubWFwXG4iLCIvLyBUSElTIEZJTEUgSVMgQVVUTyBHRU5FUkFURURcbmltcG9ydCB7IEdlbkljb24gfSBmcm9tICcuLi9saWIvaW5kZXgubWpzJztcbmV4cG9ydCBmdW5jdGlvbiBNZDEyMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTVINS41di00LjVINFY5aDN2NnptNi41LTEuNWgtM3YtMWgyYy41NSAwIDEtLjQ1IDEtMVYxMGMwLS41NS0uNDUtMS0xLTFIOXYxLjVoM3YxaC0yYy0uNTUgMC0xIC40NS0xIDFWMTVoNC41di0xLjV6bTYgLjV2LTRjMC0uNTUtLjQ1LTEtMS0xSDE1djEuNWgzdjFoLTJ2MWgydjFoLTNWMTVoMy41Yy41NSAwIDEtLjQ1IDEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kM2RSb3RhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNTIgMjEuNDhBMTAuNDg3IDEwLjQ4NyAwIDAgMSAxLjU1IDEzSC4wNUMuNTYgMTkuMTYgNS43MSAyNCAxMiAyNGwuNjYtLjAzLTMuODEtMy44MS0xLjMzIDEuMzJ6bS44OS02LjUyYy0uMTkgMC0uMzctLjAzLS41Mi0uMDhhMS4wNyAxLjA3IDAgMCAxLS40LS4yNGMtLjExLS4xLS4yLS4yMi0uMjYtLjM3LS4wNi0uMTQtLjA5LS4zLS4wOS0uNDdoLTEuM2MwIC4zNi4wNy42OC4yMS45NS4xNC4yNy4zMy41LjU2LjY5LjI0LjE4LjUxLjMyLjgyLjQxLjMuMS42Mi4xNS45Ni4xNS4zNyAwIC43Mi0uMDUgMS4wMy0uMTUuMzItLjEuNi0uMjUuODMtLjQ0cy40Mi0uNDMuNTUtLjcyYy4xMy0uMjkuMi0uNjEuMi0uOTcgMC0uMTktLjAyLS4zOC0uMDctLjU2YTEuNjcgMS42NyAwIDAgMC0uMjMtLjUxYy0uMS0uMTYtLjI0LS4zLS40LS40My0uMTctLjEzLS4zNy0uMjMtLjYxLS4zMWEyLjA5OCAyLjA5OCAwIDAgMCAuODktLjc1Yy4xLS4xNS4xNy0uMy4yMi0uNDYuMDUtLjE2LjA3LS4zMi4wNy0uNDggMC0uMzYtLjA2LS42OC0uMTgtLjk2YTEuNzggMS43OCAwIDAgMC0uNTEtLjY5Yy0uMi0uMTktLjQ3LS4zMy0uNzctLjQzQzkuMSA4LjA1IDguNzYgOCA4LjM5IDhjLS4zNiAwLS42OS4wNS0xIC4xNi0uMy4xMS0uNTcuMjYtLjc5LjQ1LS4yMS4xOS0uMzguNDEtLjUxLjY3LS4xMi4yNi0uMTguNTQtLjE4Ljg1aDEuM2MwLS4xNy4wMy0uMzIuMDktLjQ1cy4xNC0uMjUuMjUtLjM0Yy4xMS0uMDkuMjMtLjE3LjM4LS4yMi4xNS0uMDUuMy0uMDguNDgtLjA4LjQgMCAuNy4xLjg5LjMxLjE5LjIuMjkuNDkuMjkuODYgMCAuMTgtLjAzLjM0LS4wOC40OWEuODcuODcgMCAwIDEtLjI1LjM3Yy0uMTEuMS0uMjUuMTgtLjQxLjI0LS4xNi4wNi0uMzYuMDktLjU4LjA5SDcuNXYxLjAzaC43N2MuMjIgMCAuNDIuMDIuNi4wN3MuMzMuMTMuNDUuMjNjLjEyLjExLjIyLjI0LjI5LjQuMDcuMTYuMS4zNS4xLjU3IDAgLjQxLS4xMi43Mi0uMzUuOTMtLjIzLjIzLS41NS4zMy0uOTUuMzN6bTguNTUtNS45MmMtLjMyLS4zMy0uNy0uNTktMS4xNC0uNzctLjQzLS4xOC0uOTItLjI3LTEuNDYtLjI3SDEydjhoMi4zYy41NSAwIDEuMDYtLjA5IDEuNTEtLjI3LjQ1LS4xOC44NC0uNDMgMS4xNi0uNzYuMzItLjMzLjU3LS43My43NC0xLjE5LjE3LS40Ny4yNi0uOTkuMjYtMS41N3YtLjRjMC0uNTgtLjA5LTEuMS0uMjYtMS41Ny0uMTgtLjQ3LS40My0uODctLjc1LTEuMnptLS4zOSAzLjE2YzAgLjQyLS4wNS43OS0uMTQgMS4xMy0uMS4zMy0uMjQuNjItLjQzLjg1LS4xOS4yMy0uNDMuNDEtLjcxLjUzLS4yOS4xMi0uNjIuMTgtLjk5LjE4aC0uOTFWOS4xMmguOTdjLjcyIDAgMS4yNy4yMyAxLjY0LjY5LjM4LjQ2LjU3IDEuMTIuNTcgMS45OXYuNHpNMTIgMGwtLjY2LjAzIDMuODEgMy44MSAxLjMzLTEuMzNjMy4yNyAxLjU1IDUuNjEgNC43MiA1Ljk2IDguNDhoMS41QzIzLjQ0IDQuODQgMTguMjkgMCAxMiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBYmMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMWgtMS41di0uNWgtMnYzaDJWMTNIMjF2MWMwIC41NS0uNDUgMS0xIDFoLTNjLS41NSAwLTEtLjQ1LTEtMXYtNGMwLS41NS40NS0xIDEtMWgzYy41NSAwIDEgLjQ1IDEgMXYxek04IDEwdjVINi41di0xLjVoLTJWMTVIM3YtNWMwLS41NS40NS0xIDEtMWgzYy41NSAwIDEgLjQ1IDEgMXptLTEuNS41aC0yVjEyaDJ2LTEuNXptNyAxLjVjLjU1IDAgMSAuNDUgMSAxdjFjMCAuNTUtLjQ1IDEtMSAxaC00VjloNGMuNTUgMCAxIC40NSAxIDF2MWMwIC41NS0uNDUgMS0xIDF6TTExIDEwLjV2Ljc1aDJ2LS43NWgtMnptMiAyLjI1aC0ydi43NWgydi0uNzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFjY2Vzc2liaWxpdHlOZXcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC41IDZjLTIuNjEuNy01LjY3IDEtOC41IDFzLTUuODktLjMtOC41LTFMMyA4YzEuODYuNSA0IC44MyA2IDF2MTNoMnYtNmgydjZoMlY5YzItLjE3IDQuMTQtLjUgNi0xbC0uNS0yek0xMiA2YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWNjZXNzaWJpbGl0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0yem05IDdoLTZ2MTNoLTJ2LTZoLTJ2Nkg5VjlIM1Y3aDE4djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFjY2Vzc2libGVGb3J3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxN1wiLFwiY3lcIjpcIjQuNTRcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTdoLTJjMCAxLjY1LTEuMzUgMy0zIDNzLTMtMS4zNS0zLTMgMS4zNS0zIDMtM3YtMmMtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01em0zLTMuNWgtMS44NmwxLjY3LTMuNjdDMTcuNDIgOC41IDE2LjQ0IDcgMTQuOTYgN2gtNS4yYy0uODEgMC0xLjU0LjQ3LTEuODcgMS4yTDcuMjIgMTBsMS45Mi41M0w5Ljc5IDlIMTJsLTEuODMgNC4xYy0uNiAxLjMzLjM5IDIuOSAxLjg1IDIuOUgxN3Y1aDJ2LTUuNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWNjZXNzaWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI0XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDEzdi0yYy0xLjU0LjAyLTMuMDktLjc1LTQuMDctMS44M2wtMS4yOS0xLjQzYy0uMTctLjE5LS4zOC0uMzQtLjYxLS40NS0uMDEgMC0uMDEtLjAxLS4wMi0uMDFIMTNjLS4zNS0uMi0uNzUtLjMtMS4xOS0uMjZDMTAuNzYgNy4xMSAxMCA4LjA0IDEwIDkuMDlWMTVjMCAxLjEuOSAyIDIgMmg1djVoMnYtNS41YzAtMS4xLS45LTItMi0yaC0zdi0zLjQ1YzEuMjkgMS4wNyAzLjI1IDEuOTQgNSAxLjk1em0tNi4xNyA1Yy0uNDEgMS4xNi0xLjUyIDItMi44MyAyLTEuNjYgMC0zLTEuMzQtMy0zIDAtMS4zMS44NC0yLjQxIDItMi44M1YxMi4xYTUgNSAwIDEgMCA1LjkgNS45aC0yLjA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBY2NvdW50QmFsYW5jZVdhbGxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDE4djFjMCAxLjEtLjkgMi0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGMxLjEgMCAyIC45IDIgMnYxaC05YTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDl6bS05LTJoMTBWOEgxMnY4em00LTIuNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFjY291bnRCYWxhbmNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxMGgzdjdINHpNMTAuNSAxMGgzdjdoLTN6TTIgMTloMjB2M0gyek0xNyAxMGgzdjdoLTN6TTEyIDEgMiA2djJoMjBWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWNjb3VudEJveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAzYzEuOTMgMCAzLjUgMS41NyAzLjUgMy41UzEzLjkzIDEzIDEyIDEzcy0zLjUtMS41Ny0zLjUtMy41UzEwLjA3IDYgMTIgNnptNyAxM0g1di0uMjNjMC0uNjIuMjgtMS4yLjc2LTEuNThDNy40NyAxNS44MiA5LjY0IDE1IDEyIDE1czQuNTMuODIgNi4yNCAyLjE5Yy40OC4zOC43Ni45Ny43NiAxLjU4VjE5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBY2NvdW50Q2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCA0YzEuOTMgMCAzLjUgMS41NyAzLjUgMy41UzEzLjkzIDEzIDEyIDEzcy0zLjUtMS41Ny0zLjUtMy41UzEwLjA3IDYgMTIgNnptMCAxNGMtMi4wMyAwLTQuNDMtLjgyLTYuMTQtMi44OGE5Ljk0NyA5Ljk0NyAwIDAgMSAxMi4yOCAwQzE2LjQzIDE5LjE4IDE0LjAzIDIwIDEyIDIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZGRDYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoMTB2LTJINHYtNmgxOFY2YzAtMS4xMS0uODktMi0yLTJ6bTAgNEg0VjZoMTZ2MnptNCA5djJoLTN2M2gtMnYtM2gtM3YtMmgzdi0zaDJ2M2gzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZGRIb21lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTFjLjcgMCAxLjM3LjEgMiAuMjlWOWwtOC02LTggNnYxMmg3LjY4QTYuOTk1IDYuOTk1IDAgMCAxIDE4IDExelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bTMgNS41aC0yLjVWMjFoLTF2LTIuNUgxNXYtMWgyLjVWMTVoMXYyLjVIMjF2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRkU2hvcHBpbmdDYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMTguMzEgNi0yLjc2IDV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDloMlY2aDNWNGgtM1YxaC0ydjNIOHYyaDN2M3ptLTQgOWMtMS4xIDAtMS45OS45LTEuOTkgMlM1LjkgMjIgNyAyMnMyLS45IDItMi0uOS0yLTItMnptMTAgMGMtMS4xIDAtMS45OS45LTEuOTkgMnMuODkgMiAxLjk5IDIgMi0uOSAyLTItLjktMi0yLTJ6bS05LjgzLTMuMjUuMDMtLjEyLjktMS42M2g3LjQ1Yy43NSAwIDEuNDEtLjQxIDEuNzUtMS4wM2wzLjg2LTcuMDFMMTkuNDIgNGgtLjAxbC0xLjEgMi0yLjc2IDVIOC41M2wtLjEzLS4yN0w2LjE2IDZsLS45NS0yLS45NC0ySDF2MmgybDMuNiA3LjU5LTEuMzUgMi40NWMtLjE2LjI4LS4yNS42MS0uMjUuOTYgMCAxLjEuOSAyIDIgMmgxMnYtMkg3LjQyYy0uMTMgMC0uMjUtLjExLS4yNS0uMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZFRhc2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA1LjE4IDEwLjU5IDE2LjZsLTQuMjQtNC4yNCAxLjQxLTEuNDEgMi44MyAyLjgzIDEwLTEwTDIyIDUuMTh6TTEyIDIwYy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04YzEuNTcgMCAzLjA0LjQ2IDQuMjggMS4yNWwxLjQ1LTEuNDVBMTAuMDIgMTAuMDIgMCAwIDAgMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMGMxLjczIDAgMy4zNi0uNDQgNC43OC0xLjIybC0xLjUtMS41Yy0xIC40Ni0yLjExLjcyLTMuMjguNzJ6bTctNWgtM3YyaDN2M2gydi0zaDN2LTJoLTN2LTNoLTJ2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRkVG9Ecml2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDIxdi0zaDN2LTJoLTN2LTNoLTJ2M2gtM3YyaDN2M2gyem0tNC45Ny41SDUuNjZjLS43MiAwLTEuMzgtLjM4LTEuNzMtMWwtMi4zNi00LjFjLS4zNi0uNjItLjM1LTEuMzguMDEtMkw3LjkyIDMuNDljLjM2LS42MSAxLjAyLS45OSAxLjczLS45OWg0LjdjLjcxIDAgMS4zNy4zOCAxLjczLjk5bDQuNDggNy43MWE2LjE3NiA2LjE3NiAwIDAgMC0yLjQtLjE0TDE0LjM1IDQuNWgtNC43TDMuMzEgMTUuNDFsMi4zNSA0LjA5aDcuODljLjM1Ljc3Ljg1IDEuNDUgMS40OCAyek0xMy4zNCAxNWMtLjIyLjYzLS4zNCAxLjMtLjM0IDJINy4yNWwtLjczLTEuMjcgNC41OC03Ljk4aDEuOGwyLjUzIDQuNDJjLS41Ni40Mi0xLjA1LjkzLTEuNDQgMS41MWwtMi0zLjQ5TDkuMjUgMTVoNC4wOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRkY2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA1djJoLTN2M2gtMlY3aC0zVjVoM1YyaDJ2M2gzem0tMyAxNEg1VjVoNlYzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTZoLTJ2NnptLTQtNnY0aDJ2LTRoLTJ6bS00IDRoMlY5aC0ydjh6bS0yIDB2LTZIN3Y2aDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkbWluUGFuZWxTZXR0aW5ncyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDExYy4zNCAwIC42Ny4wNCAxIC4wOVY2LjI3TDEwLjUgMyAzIDYuMjd2NC45MWMwIDQuNTQgMy4yIDguNzkgNy41IDkuODIuNTUtLjEzIDEuMDgtLjMyIDEuNi0uNTUtLjY5LS45OC0xLjEtMi4xNy0xLjEtMy40NSAwLTMuMzEgMi42OS02IDYtNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTNjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0wIDEuMzhjLjYyIDAgMS4xMi41MSAxLjEyIDEuMTJzLS41MSAxLjEyLTEuMTIgMS4xMi0xLjEyLS41MS0xLjEyLTEuMTIuNS0xLjEyIDEuMTItMS4xMnptMCA1LjM3Yy0uOTMgMC0xLjc0LS40Ni0yLjI0LTEuMTcuMDUtLjcyIDEuNTEtMS4wOCAyLjI0LTEuMDhzMi4xOS4zNiAyLjI0IDEuMDhjLS41LjcxLTEuMzEgMS4xNy0yLjI0IDEuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkc0NsaWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNzEgMTcuOTlBNS45OTMgNS45OTMgMCAwIDEgNiAxMmMwLTMuMzEgMi42OS02IDYtNiAzLjIyIDAgNS44NCAyLjUzIDUuOTkgNS43MWwtMi4xLS42M2EzLjk5OSAzLjk5OSAwIDEgMC00LjgxIDQuODFsLjYzIDIuMXpNMjIgMTJjMCAuMy0uMDEuNi0uMDQuOWwtMS45Ny0uNTljLjAxLS4xLjAxLS4yMS4wMS0uMzEgMC00LjQyLTMuNTgtOC04LThzLTggMy41OC04IDggMy41OCA4IDggOGMuMSAwIC4yMSAwIC4zMS0uMDFsLjU5IDEuOTdjLS4zLjAzLS42LjA0LS45LjA0LTUuNTIgMC0xMC00LjQ4LTEwLTEwUzYuNDggMiAxMiAyczEwIDQuNDggMTAgMTB6bS0zLjc3IDQuMjZMMjIgMTVsLTEwLTMgMyAxMCAxLjI2LTMuNzcgNC4yNyA0LjI3IDEuOTgtMS45OC00LjI4LTQuMjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFsYXJtQWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy44OCAzLjM5IDYuNiAxLjg2IDIgNS43MWwxLjI5IDEuNTMgNC41OS0zLjg1ek0yMiA1LjcybC00LjYtMy44Ni0xLjI5IDEuNTMgNC42IDMuODZMMjIgNS43MnpNMTIgNGMtNC45NyAwLTkgNC4wMy05IDlzNC4wMiA5IDkgOWE5IDkgMCAwIDAgMC0xOHptMCAxNmMtMy44NyAwLTctMy4xMy03LTdzMy4xMy03IDctNyA3IDMuMTMgNyA3LTMuMTMgNy03IDd6bTEtMTFoLTJ2M0g4djJoM3YzaDJ2LTNoM3YtMmgtM1Y5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBbGFybU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDZjMy44NyAwIDcgMy4xMyA3IDcgMCAuODQtLjE2IDEuNjUtLjQzIDIuNGwxLjUyIDEuNTJjLjU4LTEuMTkuOTEtMi41MS45MS0zLjkyYTkgOSAwIDAgMC05LTljLTEuNDEgMC0yLjczLjMzLTMuOTIuOTFMOS42IDYuNDNDMTAuMzUgNi4xNiAxMS4xNiA2IDEyIDZ6bTEwLS4yOC00LjYtMy44Ni0xLjI5IDEuNTMgNC42IDMuODZMMjIgNS43MnpNMi45MiAyLjI5IDEuNjUgMy41NyAyLjk4IDQuOWwtMS4xMS45MyAxLjQyIDEuNDIgMS4xMS0uOTQuOC44QTguOTY0IDguOTY0IDAgMCAwIDMgMTNjMCA0Ljk3IDQuMDIgOSA5IDkgMi4yNSAwIDQuMzEtLjgzIDUuODktMi4ybDIuMiAyLjIgMS4yNy0xLjI3TDMuODkgMy4yN2wtLjk3LS45OHptMTMuNTUgMTYuMUMxNS4yNiAxOS4zOSAxMy43IDIwIDEyIDIwYy0zLjg3IDAtNy0zLjEzLTctNyAwLTEuNy42MS0zLjI2IDEuNjEtNC40N2w5Ljg2IDkuODZ6TTguMDIgMy4yOCA2LjYgMS44NmwtLjg2LjcxIDEuNDIgMS40Mi44Ni0uNzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFsYXJtT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMiA1LjcyLTQuNi0zLjg2LTEuMjkgMS41MyA0LjYgMy44NkwyMiA1Ljcyek03Ljg4IDMuMzkgNi42IDEuODYgMiA1LjcxbDEuMjkgMS41MyA0LjU5LTMuODV6TTEyIDRjLTQuOTcgMC05IDQuMDMtOSA5czQuMDIgOSA5IDlhOSA5IDAgMCAwIDAtMTh6bTAgMTZjLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3em0tMS40Ni01LjQ3TDguNDEgMTIuNGwtMS4wNiAxLjA2IDMuMTggMy4xOCA2LTYtMS4wNi0xLjA2LTQuOTMgNC45NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWxhcm0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMiA1LjcyLTQuNi0zLjg2LTEuMjkgMS41MyA0LjYgMy44NkwyMiA1Ljcyek03Ljg4IDMuMzkgNi42IDEuODYgMiA1LjcxbDEuMjkgMS41MyA0LjU5LTMuODV6TTEyLjUgOEgxMXY2bDQuNzUgMi44NS43NS0xLjIzLTQtMi4zN1Y4ek0xMiA0Yy00Ljk3IDAtOSA0LjAzLTkgOXM0LjAyIDkgOSA5YTkgOSAwIDAgMCAwLTE4em0wIDE2Yy0zLjg3IDAtNy0zLjEzLTctN3MzLjEzLTcgNy03IDcgMy4xMyA3IDctMy4xMyA3LTcgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWxsSW5ib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2N2MwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgNmgtNGMwIDEuNjItMS4zOCAzLTMgM3MtMy0xLjM4LTMtM0g1VjVoMTR2NHptLTQgN2g2djNjMCAxLjEtLjkgMi0yIDJINWMtMS4xIDAtMi0uOS0yLTJ2LTNoNmMwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBbGxPdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2LjIxIDQuMTYgNCA0di00em00IDEyLTQgNGg0em0tMTIgNC00LTR2NHptLTQtMTIgNC00aC00em0xMi45NS0uOTVjLTIuNzMtMi43My03LjE3LTIuNzMtOS45IDBzLTIuNzMgNy4xNyAwIDkuOSA3LjE3IDIuNzMgOS45IDAgMi43My03LjE2IDAtOS45em0tMS4xIDguOGMtMi4xMyAyLjEzLTUuNTcgMi4xMy03LjcgMHMtMi4xMy01LjU3IDAtNy43IDUuNTctMi4xMyA3LjcgMCAyLjEzIDUuNTcgMCA3Ljd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTS4yMS4xNmgyNHYyNGgtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFuYWx5dGljcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek05IDE3SDd2LTVoMnY1em00IDBoLTJ2LTNoMnYzem0wLTVoLTJ2LTJoMnYyem00IDVoLTJWN2gydjEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBbmNob3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNyAxNSAxLjU1IDEuNTVjLS45NiAxLjY5LTMuMzMgMy4wNC01LjU1IDMuMzdWMTFoM1Y5aC0zVjcuODJDMTQuMTYgNy40IDE1IDYuMyAxNSA1YzAtMS42NS0xLjM1LTMtMy0zUzkgMy4zNSA5IDVjMCAxLjMuODQgMi40IDIgMi44MlY5SDh2MmgzdjguOTJjLTIuMjItLjMzLTQuNTktMS42OC01LjU1LTMuMzdMNyAxNWwtNC0zdjNjMCAzLjg4IDQuOTIgNyA5IDdzOS0zLjEyIDktN3YtM2wtNCAzek0xMiA0Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFuZHJvaWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3LjYgOS40OCAxLjg0LTMuMThjLjE2LS4zMS4wNC0uNjktLjI2LS44NWEuNjM3LjYzNyAwIDAgMC0uODMuMjJsLTEuODggMy4yNGExMS40NjMgMTEuNDYzIDAgMCAwLTguOTQgMEw1LjY1IDUuNjdhLjY0My42NDMgMCAwIDAtLjg3LS4yYy0uMjguMTgtLjM3LjU0LS4yMi44M0w2LjQgOS40OEExMC43OCAxMC43OCAwIDAgMCAxIDE4aDIyYTEwLjc4IDEwLjc4IDAgMCAwLTUuNC04LjUyek03IDE1LjI1YTEuMjUgMS4yNSAwIDEgMSAwLTIuNSAxLjI1IDEuMjUgMCAwIDEgMCAyLjV6bTEwIDBhMS4yNSAxLjI1IDAgMSAxIDAtMi41IDEuMjUgMS4yNSAwIDAgMSAwIDIuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQW5ub3VuY2VtZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03IDloLTJWNWgydjZ6bTAgNGgtMnYtMmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFwaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0IDEyLTIgMi0yLTIgMi0yIDIgMnptLTItNiAyLjEyIDIuMTIgMi41LTIuNUwxMiAxIDcuMzggNS42MmwyLjUgMi41TDEyIDZ6bS02IDYgMi4xMi0yLjEyLTIuNS0yLjVMMSAxMmw0LjYyIDQuNjIgMi41LTIuNUw2IDEyem0xMiAwLTIuMTIgMi4xMiAyLjUgMi41TDIzIDEybC00LjYyLTQuNjItMi41IDIuNUwxOCAxMnptLTYgNi0yLjEyLTIuMTItMi41IDIuNUwxMiAyM2w0LjYyLTQuNjItMi41LTIuNUwxMiAxOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXBwQmxvY2tpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA4Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptLTIuNSA0QTIuNSAyLjUgMCAwIDEgMTggOS41Yy40MiAwIC44LjExIDEuMTUuMjlsLTMuMzYgMy4zNmMtLjE4LS4zNS0uMjktLjczLS4yOS0xLjE1em0yLjUgMi41Yy0uNDIgMC0uOC0uMTEtMS4xNS0uMjlsMy4zNi0zLjM2Yy4xOC4zNS4yOS43My4yOSAxLjE1YTIuNSAyLjUgMCAwIDEtMi41IDIuNXpNMTcgMThIN1Y2aDEwdjFoMlYzYzAtMS4xLS45LTItMi0ySDdjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJ2LTRoLTJ2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXBwU2hvcnRjdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxOEg3VjZoMTB2MWgyVjNjMC0xLjEtLjktMi0yLTJIN2MtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMnYtNGgtMnYxek0yMC4zOCA5LjYyIDIxIDExbC42Mi0xLjM4TDIzIDlsLTEuMzgtLjYyTDIxIDdsLS42MiAxLjM4TDE5IDl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2IDgtMS4yNSAyLjc1TDEyIDEybDIuNzUgMS4yNUwxNiAxNmwxLjI1LTIuNzVMMjAgMTJsLTIuNzUtMS4yNXpNMjEgMTNsLS42MiAxLjM4TDE5IDE1bDEuMzguNjJMMjEgMTdsLjYyLTEuMzhMMjMgMTVsLTEuMzgtLjYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBcnJvd0NpcmNsZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0YzQuNDEgMCA4IDMuNTkgOCA4cy0zLjU5IDgtOCA4LTgtMy41OS04LTggMy41OS04IDgtOG0wLTJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEgMTBWOGgtMnY0SDhsNCA0IDQtNGgtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXJyb3dDaXJjbGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxMmMwIDUuNTIgNC40OCAxMCAxMCAxMHMxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMiAyIDYuNDggMiAxMnptMTAtMWg0djJoLTR2M2wtNC00IDQtNHYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBcnJvd0NpcmNsZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTJjMC01LjUyLTQuNDgtMTAtMTAtMTBTMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwem0tMTAgMUg4di0yaDRWOGw0IDQtNCA0di0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBcnJvd0NpcmNsZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjBjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4bTAgMmM1LjUyIDAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMHptLTEtMTB2NGgydi00aDNsLTQtNC00IDRoM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXJyb3dPdXR3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA2djJoOC41OUw1IDE3LjU5IDYuNDEgMTkgMTYgOS40MVYxOGgyVjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFycm93UmlnaHRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi4wMSAxMUg0djJoMTIuMDF2M0wyMCAxMmwtMy45OS00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBcnRpY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS01IDE0SDd2LTJoN3Yyem0zLTRIN3YtMmgxMHYyem0wLTRIN1Y3aDEwdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFzcGVjdFJhdGlvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTJoLTJ2M2gtM3YyaDV2LTV6TTcgOWgzVjdINXY1aDJWOXptMTQtNkgzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTYuMDFIM1Y0Ljk5aDE4djE0LjAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBc3Nlc3NtZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTkgMTdIN3YtN2gydjd6bTQgMGgtMlY3aDJ2MTB6bTQgMGgtMnYtNGgydjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFzc2lnbm1lbnRBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bTMgNS41aC0yLjVWMjFoLTF2LTIuNUgxNXYtMWgyLjVWMTVoMXYyLjVIMjF2MXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNjkgMTVjLjM2LS43NS44NC0xLjQzIDEuNDMtMkg3di0yaDExYzEuMDcgMCAyLjA5LjI1IDMgLjY5VjVjMC0xLjEtLjktMi0yLTJoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxcy0yLjQuODQtMi44MiAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoNi42OWMtLjQ0LS45MS0uNjktMS45My0uNjktMyAwLS4zNC4wMy0uNjcuMDgtMUg3di0yaDQuNjl6TTEyIDIuNzVjLjQxIDAgLjc1LjM0Ljc1Ljc1cy0uMzQuNzUtLjc1Ljc1LS43NS0uMzQtLjc1LS43NS4zNC0uNzUuNzUtLjc1ek03IDdoMTB2Mkg3Vjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFzc2lnbm1lbnRJbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMWMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptMCA0YzEuNjYgMCAzIDEuMzQgMyAzcy0xLjM0IDMtMyAzLTMtMS4zNC0zLTMgMS4zNC0zIDMtM3ptNiAxMkg2di0xLjRjMC0yIDQtMy4xIDYtMy4xczYgMS4xIDYgMy4xVjE5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBc3NpZ25tZW50TGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxYy0xLjMgMC0yLjQuODQtMi44MiAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTYgMTVoLTJ2LTJoMnYyem0wLTRoLTJWOGgydjZ6bS0xLTljLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXNzaWdubWVudFJldHVybiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxYy0xLjMgMC0yLjQuODQtMi44MiAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem00IDEyaC00djNsLTUtNSA1LTV2M2g0djR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFzc2lnbm1lbnRSZXR1cm5lZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxYy0xLjMgMC0yLjQuODQtMi44MiAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0wIDE1LTUtNWgzVjloNHY0aDNsLTUgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXNzaWdubWVudFR1cm5lZEluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAwYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bS0yIDE0LTQtNCAxLjQxLTEuNDFMMTAgMTQuMTdsNi41OS02LjU5TDE4IDlsLTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXNzaWdubWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxYy0xLjMgMC0yLjQuODQtMi44MiAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0yIDE0SDd2LTJoN3Yyem0zLTRIN3YtMmgxMHYyem0wLTRIN1Y3aDEwdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFzc3VyZWRXb3JrbG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTBoMnY3SDV6TTExIDEwaDJ2N2gtMnpNMjIgNiAxMiAxIDIgNnYyaDIwek0yIDE5djJoMTIuNGMtLjIxLS42NC0uMzItMS4zMS0uMzYtMkgyek0xOSAxMi4yNlYxMGgtMnYzLjI2ek0yMCAxNGwtNCAydjIuNTVjMCAyLjUyIDEuNzEgNC44OCA0IDUuNDUgMi4yOS0uNTcgNC0yLjkzIDQtNS40NVYxNmwtNC0yem0tLjcyIDctMi4wMy0yLjAzIDEuMDYtMS4wNi45Ny45NyAyLjQxLTIuMzggMS4wNiAxLjA2TDE5LjI4IDIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBdXRvcmVuZXcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2djNsNC00LTQtNHYzYy00LjQyIDAtOCAzLjU4LTggOCAwIDEuNTcuNDYgMy4wMyAxLjI0IDQuMjZMNi43IDE0LjhBNS44NyA1Ljg3IDAgMCAxIDYgMTJjMC0zLjMxIDIuNjktNiA2LTZ6bTYuNzYgMS43NEwxNy4zIDkuMmMuNDQuODQuNyAxLjc5LjcgMi44IDAgMy4zMS0yLjY5IDYtNiA2di0zbC00IDQgNCA0di0zYzQuNDIgMCA4LTMuNTggOC04IDAtMS41Ny0uNDYtMy4wMy0xLjI0LTQuMjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhY2t1cFRhYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNnYxNEg2djJoMTRjMS4xIDAgMi0uOSAyLTJWNmgtMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6TTkgMTZINHYtNWg1djV6bTcgMGgtNXYtNWg1djV6bTAtN0g0VjRoMTJ2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmFja3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMzUgMTAuMDRBNy40OSA3LjQ5IDAgMCAwIDEyIDRDOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNEE1Ljk5NCA1Ljk5NCAwIDAgMCAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xNCAxM3Y0aC00di00SDdsNS01IDUgNWgtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmFsYW5jZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDcuODNjLjg1LS4zIDEuNTMtLjk4IDEuODMtMS44M0gxOGwtMyA3YzAgMS42NiAxLjU3IDMgMy41IDNzMy41LTEuMzQgMy41LTNsLTMtN2gyVjRoLTYuMTdjLS40MS0xLjE3LTEuNTItMi0yLjgzLTJzLTIuNDIuODMtMi44MyAySDN2MmgybC0zIDdjMCAxLjY2IDEuNTcgMyAzLjUgM1M5IDE0LjY2IDkgMTNMNiA2aDMuMTdjLjMuODUuOTggMS41MyAxLjgzIDEuODNWMTlIMnYyaDIwdi0yaC05VjcuODN6TTIwLjM3IDEzaC0zLjc0bDEuODctNC4zNkwyMC4zNyAxM3ptLTEzIDBIMy42M0w1LjUgOC42NCA3LjM3IDEzek0xMiA2Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhcmNvZGVSZWFkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyA4Ljc1aC00di0xLjVoNHYxLjV6bS0uMzgtNC4zOEwyMiAzbC0zLjYyIDEuNjNMMTkgNmwzLjYyLTEuNjN6TTE5IDEwbC0uNjIgMS4zN0wyMiAxM2wuNjItMS4zN0wxOSAxMHptLTggM2MuNTUgMCAxIC40NSAxIDF2MmMwIC41NS0uNDUgMS0xIDFIOS42NGwtLjc0IDIuNzhBMi45OTkgMi45OTkgMCAwIDEgNiAyMmEyLjk5NSAyLjk5NSAwIDAgMS0yLjktMy43N2wxLjgyLTYuOEE0LjAyOCA0LjAyOCAwIDAgMSAzIDhjMC0yLjIxIDEuNzktNCA0LTRoOGMxLjQ5IDAgMi40NSAxLjU2IDEuNzkgMi44OWwtMiA0QzE0LjQ1IDExLjU3IDEzLjc1IDEyIDEzIDEyaC0yLjAybC0uMjcgMUgxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmF0Y2hQcmVkaWN0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgOEg3Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjEwYzAtMS4xLS45LTItMi0yem0tNCAxMi41aC0yVjE5aDJ2MS41em0wLTIuNWgtMmMwLTEuNS0yLjUtMy0yLjUtNSAwLTEuOTMgMS41Ny0zLjUgMy41LTMuNXMzLjUgMS41NyAzLjUgMy41YzAgMi0yLjUgMy41LTIuNSA1em01LTExLjVINkM2IDUuNjcgNi42NyA1IDcuNSA1aDljLjgzIDAgMS41LjY3IDEuNSAxLjV6bS0xLTNIN0M3IDIuNjcgNy42NyAyIDguNSAyaDdjLjgzIDAgMS41LjY3IDEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJvb2tPbmxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxSDdjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnpNNyAxOFY2aDEwdjEySDd6bTktN1Y5LjE0QzE2IDguNTEgMTUuNTUgOCAxNSA4SDljLS41NSAwLTEgLjUxLTEgMS4xNHYxLjk2Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxdjEuNzZjMCAuNjMuNDUgMS4xNCAxIDEuMTRoNmMuNTUgMCAxLS41MSAxLTEuMTRWMTNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTF6bS0zLjUgMy41aC0xdi0xaDF2MXptMC0yaC0xdi0xaDF2MXptMC0yaC0xdi0xaDF2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQm9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDJINmMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek02IDRoNXY4bC0yLjUtMS41TDYgMTJWNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQm9va21hcmtBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA3aC0ydjJoLTJWN2gtMlY1aDJWM2gydjJoMnYyem0tMiAxNC03LTMtNyAzVjVjMC0xLjEuOS0yIDItMmg3YTUuMDAyIDUuMDAyIDAgMCAwIDUgNy45VjIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCb29rbWFya0FkZGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkgMjEtNy0zLTcgM1Y1YzAtMS4xLjktMiAyLTJoN2E1LjAwMiA1LjAwMiAwIDAgMCA1IDcuOVYyMXpNMTcuODMgOSAxNSA2LjE3bDEuNDEtMS40MSAxLjQxIDEuNDEgMy41NC0zLjU0IDEuNDEgMS40MUwxNy44MyA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCb29rbWFya0JvcmRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDNIN2MtMS4xIDAtMS45OS45LTEuOTkgMkw1IDIxbDctMyA3IDNWNWMwLTEuMS0uOS0yLTItMnptMCAxNS01LTIuMThMNyAxOFY1aDEwdjEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCb29rbWFya1JlbW92ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDdoLTZWNWg2djJ6bS0yIDMuOUE1LjAwMiA1LjAwMiAwIDAgMSAxNCAzSDdjLTEuMSAwLTIgLjktMiAydjE2bDctMyA3IDNWMTAuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQm9va21hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAzSDdjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNSAyMWw3LTMgNyAzVjVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJvb2ttYXJrcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkgMTggMiAxVjNjMC0xLjEtLjktMi0yLTJIOC45OUM3Ljg5IDEgNyAxLjkgNyAzaDEwYzEuMSAwIDIgLjkgMiAydjEzek0xNSA1SDVjLTEuMSAwLTIgLjktMiAydjE2bDctMyA3IDNWN2MwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQnJvd3NlR2FsbGVyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgM2E5IDkgMCAxIDAgLjAwMSAxOC4wMDFBOSA5IDAgMCAwIDkgM3ptMi43OSAxMy4yMUw4IDEyLjQxVjdoMnY0LjU5bDMuMjEgMy4yMS0xLjQyIDEuNDF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3Ljk5IDMuNTJ2Mi4xNkE2Ljk5IDYuOTkgMCAwIDEgMjIgMTJjMCAyLjc5LTEuNjQgNS4yLTQuMDEgNi4zMnYyLjE2QzIxLjQ4IDE5LjI0IDI0IDE1LjkxIDI0IDEycy0yLjUyLTcuMjQtNi4wMS04LjQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCdWdSZXBvcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA4aC0yLjgxYTUuOTg1IDUuOTg1IDAgMCAwLTEuODItMS45NkwxNyA0LjQxIDE1LjU5IDNsLTIuMTcgMi4xN0MxMi45NiA1LjA2IDEyLjQ5IDUgMTIgNWMtLjQ5IDAtLjk2LjA2LTEuNDEuMTdMOC40MSAzIDcgNC40MWwxLjYyIDEuNjNDNy44OCA2LjU1IDcuMjYgNy4yMiA2LjgxIDhINHYyaDIuMDljLS4wNS4zMy0uMDkuNjYtLjA5IDF2MUg0djJoMnYxYzAgLjM0LjA0LjY3LjA5IDFINHYyaDIuODFjMS4wNCAxLjc5IDIuOTcgMyA1LjE5IDNzNC4xNS0xLjIxIDUuMTktM0gyMHYtMmgtMi4wOWMuMDUtLjMzLjA5LS42Ni4wOS0xdi0xaDJ2LTJoLTJ2LTFjMC0uMzQtLjA0LS42Ny0uMDktMUgyMFY4em0tNiA4aC00di0yaDR2MnptMC00aC00di0yaDR2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQnVpbGRDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptNC45IDEzLjQ5LTEuNCAxLjRjLS4yLjItLjUxLjItLjcxIDBsLTMuNDEtMy40MWMtMS4yMi40My0yLjY0LjE3LTMuNjItLjgxYTMuNDY4IDMuNDY4IDAgMCAxLS41OS00LjFsMi4zNSAyLjM1IDEuNDEtMS40MS0yLjM1LTIuMzRjMS4zMi0uNzEgMi45OS0uNTIgNC4xLjU5Ljk4Ljk4IDEuMjQgMi40LjgxIDMuNjJsMy40MSAzLjQxYy4xOS4xOS4xOS41MSAwIC43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCdWlsZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMi43IDE5LTkuMS05LjFjLjktMi4zLjQtNS0xLjUtNi45LTItMi01LTIuNC03LjQtMS4zTDkgNiA2IDkgMS42IDQuN0MuNCA3LjEuOSAxMC4xIDIuOSAxMi4xYzEuOSAxLjkgNC42IDIuNCA2LjkgMS41bDkuMSA5LjFjLjQuNCAxIC40IDEuNCAwbDIuMy0yLjNjLjUtLjQuNS0xLjEuMS0xLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhY2hlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5IDgtNCA0aDNjMCAzLjMxLTIuNjkgNi02IDZhNS44NyA1Ljg3IDAgMCAxLTIuOC0uN2wtMS40NiAxLjQ2QTcuOTMgNy45MyAwIDAgMCAxMiAyMGM0LjQyIDAgOC0zLjU4IDgtOGgzbC00LTR6TTYgMTJjMC0zLjMxIDIuNjktNiA2LTYgMS4wMSAwIDEuOTcuMjUgMi44LjdsMS40Ni0xLjQ2QTcuOTMgNy45MyAwIDAgMCAxMiA0Yy00LjQyIDAtOCAzLjU4LTggOEgxbDQgNCA0LTRINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FsZW5kYXJNb250aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDRoLTFWMmgtMnYySDhWMkg2djJINWMtMS4xMSAwLTEuOTkuOS0xLjk5IDJMMyAyMGEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVYxMGgxNHYxMHpNOSAxNEg3di0yaDJ2MnptNCAwaC0ydi0yaDJ2MnptNCAwaC0ydi0yaDJ2MnptLTggNEg3di0yaDJ2MnptNCAwaC0ydi0yaDJ2MnptNCAwaC0ydi0yaDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FsZW5kYXJUb2RheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNoLTFWMWgtMnYySDdWMUg1djJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE4SDRWOGgxNnYxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FsZW5kYXJWaWV3RGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxN2gxOHYySDN6bTAtN2gxOHY1SDN6bTAtNGgxOHYySDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbGVuZGFyVmlld01vbnRoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNOCAxMUg0VjZoNHY1em02IDBoLTRWNmg0djV6bTYgMGgtNFY2aDR2NXpNOCAxOEg0di01aDR2NXptNiAwaC00di01aDR2NXptNiAwaC00di01aDR2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FsZW5kYXJWaWV3V2VlayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bS03IDJoMi41djEySDEzVjZ6bS0yIDEySDguNVY2SDExdjEyek00IDZoMi41djEySDRWNnptMTYgMTJoLTIuNVY2SDIwdjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYW1lcmFFbmhhbmNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDMgNy4xNyA1SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMmgtMy4xN0wxNSAzSDl6bTMgMTVjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiAxNyAxLjI1LTIuNzVMMTYgMTNsLTIuNzUtMS4yNUwxMiA5bC0xLjI1IDIuNzVMOCAxM2wyLjc1IDEuMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbmNlbFNjaGVkdWxlU2VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjUgOWMtLjQyIDAtLjgzLjA0LTEuMjQuMTFMMS4wMSAzIDEgMTBsOSAyLTkgMiAuMDEgNyA4LjA3LTMuNDZDOS41OSAyMS4xOSAxMi43MSAyNCAxNi41IDI0YzQuMTQgMCA3LjUtMy4zNiA3LjUtNy41UzIwLjY0IDkgMTYuNSA5em0wIDEzYy0zLjAzIDAtNS41LTIuNDctNS41LTUuNXMyLjQ3LTUuNSA1LjUtNS41IDUuNSAyLjQ3IDUuNSA1LjUtMi40NyA1LjUtNS41IDUuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTguMjcgMTQuMDMtMS43NyAxLjc2LTEuNzctMS43Ni0uNy43IDEuNzYgMS43Ny0xLjc2IDEuNzcuNy43IDEuNzctMS43NiAxLjc3IDEuNzYuNy0uNy0xLjc2LTEuNzcgMS43Ni0xLjc3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYXJkR2lmdGNhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC0yLjE4Yy4xMS0uMzEuMTgtLjY1LjE4LTFhMi45OTYgMi45OTYgMCAwIDAtNS41LTEuNjVsLS41LjY3LS41LS42OEMxMC45NiAyLjU0IDEwLjA1IDIgOSAyIDcuMzQgMiA2IDMuMzQgNiA1YzAgLjM1LjA3LjY5LjE4IDFINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMTljMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWOGMwLTEuMTEtLjg5LTItMi0yem0tNS0yYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6TTkgNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0xMSAxNUg0di0yaDE2djJ6bTAtNUg0VjhoNS4wOEw3IDEwLjgzIDguNjIgMTIgMTEgOC43NmwxLTEuMzYgMSAxLjM2TDE1LjM4IDEyIDE3IDEwLjgzIDE0LjkyIDhIMjB2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FyZE1lbWJlcnNoaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMTEgMC0yIC44OS0yIDJ2MTFjMCAxLjExLjg5IDIgMiAyaDR2NWw0LTIgNCAydi01aDRjMS4xMSAwIDItLjg5IDItMlY0YzAtMS4xMS0uODktMi0yLTJ6bTAgMTNINHYtMmgxNnYyem0wLTVINFY0aDE2djZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhcmRUcmF2ZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC0zVjRjMC0xLjExLS44OS0yLTItMkg5Yy0xLjExIDAtMiAuODktMiAydjJINGMtMS4xMSAwLTIgLjg5LTIgMnYxMWMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY4YzAtMS4xMS0uODktMi0yLTJ6TTkgNGg2djJIOVY0em0xMSAxNUg0di0yaDE2djJ6bTAtNUg0VjhoM3YyaDJWOGg2djJoMlY4aDN2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2hhbmdlSGlzdG9yeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNy43NyAxOC4zOSAxOEg1LjYxTDEyIDcuNzdNMTIgNCAyIDIwaDIwTDEyIDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENoZWNrQ2lyY2xlT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNTkgNy41OCAxMCAxNC4xN2wtMy41OS0zLjU4TDUgMTJsNSA1IDgtOHpNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENoZWNrQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptLTIgMTUtNS01IDEuNDEtMS40MUwxMCAxNC4xN2w3LjU5LTcuNTlMMTkgOGwtOSA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDaHJvbWVSZWFkZXJNb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0tNzQgMjloNDh2NDhoLTQ4VjI5ek0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxMmg3djEuNWgtN3ptMC0yLjVoN1YxMWgtN3ptMCA1aDdWMTZoLTd6TTIxIDRIM2MtMS4xIDAtMiAuOS0yIDJ2MTNjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE1aC05VjZoOXYxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2lyY2xlTm90aWZpY2F0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMTYuNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41aDNjMCAuODMtLjY3IDEuNS0xLjUgMS41em01LTIuNUg3di0xbDEtMXYtMi42MUM4IDkuMjcgOS4wMyA3LjQ3IDExIDd2LS41YzAtLjU3LjQzLTEgMS0xczEgLjQzIDEgMVY3YzEuOTcuNDcgMyAyLjI4IDMgNC4zOVYxNGwxIDF2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2xhc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpNNiA0aDV2OGwtMi41LTEuNUw2IDEyVjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENsb3NlRnVsbHNjcmVlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDMuNDEgMTYuNzEgOC43IDIwIDEyaC04VjRsMy4yOSAzLjI5TDIwLjU5IDIgMjIgMy40MXpNMy40MSAyMmw1LjI5LTUuMjlMMTIgMjB2LThINGwzLjI5IDMuMjlMMiAyMC41OSAzLjQxIDIyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb2RlT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkuMTcgMTItNC41OC00LjU5TDE2IDZsNiA2LTMuNTkgMy41OUwxNyAxNC4xNyAxOS4xNyAxMnpNMS4zOSA0LjIybDQuMTkgNC4xOUwyIDEybDYgNiAxLjQxLTEuNDFMNC44MyAxMiA3IDkuODNsMTIuNzggMTIuNzggMS40MS0xLjQxTDIuODEgMi44MSAxLjM5IDQuMjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNCAxNi42IDQuOCAxMmw0LjYtNC42TDggNmwtNiA2IDYgNiAxLjQtMS40em01LjIgMCA0LjYtNC42LTQuNi00LjZMMTYgNmw2IDYtNiA2LTEuNC0xLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbW1lbnRCYW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxOGw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTEgMTEtMi41LTEuNUwxNCAxM1Y1aDV2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29tbWl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuOSAxMWE1IDUgMCAwIDAtOS44IDBIMnYyaDUuMWE1IDUgMCAwIDAgOS44IDBIMjJ2LTJoLTUuMXpNMTIgMTVjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb21tdXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNEg1QzMuMzQgNCAyIDUuMzQgMiA3djhjMCAxLjY2IDEuMzQgMyAzIDNsLTEgMXYxaDFsMi0yLjAzTDkgMTh2LTVINFY1Ljk4TDEzIDZ2MmgyVjdjMC0xLjY2LTEuMzQtMy0zLTN6TTUgMTRjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptMTUuNTctNC4zNGMtLjE0LS40LS41Mi0uNjYtLjk3LS42NmgtNy4xOWMtLjQ2IDAtLjgzLjI2LS45OC42NkwxMCAxMy43N2wuMDEgNS41MWMwIC4zOC4zMS43Mi42OS43MmguNjJjLjM4IDAgLjY4LS4zOC42OC0uNzZWMThoOHYxLjI0YzAgLjM4LjMxLjc2LjY5Ljc2aC42MWMuMzggMCAuNjktLjM0LjY5LS43MmwuMDEtMS4zN3YtNC4xNGwtMS40My00LjExem0tOC4xNi4zNGg3LjE5bDEuMDMgM2gtOS4yNWwxLjAzLTN6TTEyIDE2Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTggMGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb21wYXJlQXJyb3dzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4wMSAxNEgydjJoNy4wMXYzTDEzIDE1bC0zLjk5LTR2M3ptNS45OC0xdi0zSDIyVjhoLTcuMDFWNUwxMSA5bDMuOTkgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29tcHJlc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE5aDN2M2gydi0zaDNsLTQtNC00IDR6bTgtMTVoLTNWMWgtMnYzSDhsNCA0IDQtNHpNNCA5djJoMTZWOUg0ek00IDEyaDE2djJINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29udGFjdFBhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWOGwtNi02em0tMiA4YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnptNCA4SDh2LS41N2MwLS44MS40OC0xLjUzIDEuMjItMS44NWE2Ljk1IDYuOTUgMCAwIDEgNS41NiAwQTIuMDEgMi4wMSAwIDAgMSAxNiAxNy40M1YxOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29udGFjdFN1cHBvcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS41IDJDNi44MSAyIDMgNS44MSAzIDEwLjVTNi44MSAxOSAxMS41IDE5aC41djNjNC44Ni0yLjM0IDgtNyA4LTExLjVDMjAgNS44MSAxNi4xOSAyIDExLjUgMnptMSAxNC41aC0ydi0yaDJ2MnptMC0zLjVoLTJjMC0zLjI1IDMtMyAzLTUgMC0xLjEtLjktMi0yLTJzLTIgLjktMiAyaC0yYzAtMi4yMSAxLjc5LTQgNC00czQgMS43OSA0IDRjMCAyLjUtMyAyLjc1LTMgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29udGFjdGxlc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyek04LjQ2IDE0LjQ1bC0xLjM2LS42MmMuMjgtLjYxLjQxLTEuMjQuNC0xLjg2YTQuNDIgNC40MiAwIDAgMC0uNC0xLjhsMS4zNi0uNjNjLjM1Ljc1LjUzIDEuNTYuNTQgMi40LjAxLjg2LS4xNyAxLjctLjU0IDIuNTF6bTMuMDcgMS41Ni0xLjMtLjc0Yy41Mi0uOTIuNzgtMS45OC43OC0zLjE1IDAtMS4xOS0uMjctMi4zMy0uOC0zLjRsMS4zNC0uNjdjLjY0IDEuMjguOTYgMi42NS45NiA0LjA3IDAgMS40My0uMzMgMi43NC0uOTggMy44OXptMy4xNCAxLjMyLTEuMzUtLjY2Yy43OC0xLjYgMS4xOC0zLjE4IDEuMTgtNC42OSAwLTEuNTEtLjQtMy4wNy0xLjE4LTQuNjRsMS4zNC0uNjdjLjkgMS43OCAxLjM0IDMuNTYgMS4zNCA1LjMxIDAgMS43NC0uNDQgMy41NC0xLjMzIDUuMzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvcHlyaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjg4IDkuMTRjMS4yOC4wNiAxLjYxIDEuMTUgMS42MyAxLjY2aDEuNzljLS4wOC0xLjk4LTEuNDktMy4xOS0zLjQ1LTMuMTlDOS42NCA3LjYxIDggOSA4IDEyLjE0YzAgMS45NC45MyA0LjI0IDMuODQgNC4yNCAyLjIyIDAgMy40MS0xLjY1IDMuNDQtMi45NWgtMS43OWMtLjAzLjU5LS40NSAxLjM4LTEuNjMgMS40NC0xLjMxLS4wNC0xLjg2LTEuMDYtMS44Ni0yLjczIDAtMi44OSAxLjI4LTIuOTggMS44OC0zek0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3JlZGl0Q2FyZE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjkgMjEuOSAyLjEgMi4xLjY5IDMuNTFsMS41NSAxLjU1Yy0uMTUuMjgtLjIzLjYtLjIzLjk0TDIgMThjMCAxLjExLjg5IDIgMiAyaDEzLjE3bDMuMzEgMy4zMSAxLjQyLTEuNDF6TTQgMTJWOGgxLjE3bDQgNEg0em0yLjgzLThIMjBjMS4xMSAwIDIgLjg5IDIgMnYxMmMwIC4zNC0uMDguNjYtLjIzLjk0TDE0LjgzIDEySDIwVjhoLTkuMTdsLTQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3JlZGl0Q2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMThjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWNmMwLTEuMTEtLjg5LTItMi0yem0wIDE0SDR2LTZoMTZ2NnptMC0xMEg0VjZoMTZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3NzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS41IDE0di0xSDExdi41aDJ2LTFoLTIuNWMtLjU1IDAtMS0uNDUtMS0xVjEwYzAtLjU1LjQ1LTEgMS0xaDNjLjU1IDAgMSAuNDUgMSAxdjFIMTN2LS41aC0ydjFoMi41Yy41NSAwIDEgLjQ1IDEgMVYxNGMwIC41NS0uNDUgMS0xIDFoLTNjLS41NSAwLTEtLjQ1LTEtMXptNy41IDFoM2MuNTUgMCAxLS40NSAxLTF2LTEuNWMwLS41NS0uNDUtMS0xLTFoLTIuNXYtMWgydi41SDIxdi0xYzAtLjU1LS40NS0xLTEtMWgtM2MtLjU1IDAtMSAuNDUtMSAxdjEuNWMwIC41NS40NSAxIDEgMWgyLjV2MWgtMlYxM0gxNnYxYzAgLjU1LjQ1IDEgMSAxem0tOS01YzAtLjU1LS40NS0xLTEtMUg0Yy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMWgzYy41NSAwIDEtLjQ1IDEtMXYtMUg2LjV2LjVoLTJ2LTNoMnYuNUg4di0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDdXJyZW5jeUV4Y2hhbmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuODkgMTEuMWMtMS43OC0uNTktMi42NC0uOTYtMi42NC0xLjkgMC0xLjAyIDEuMTEtMS4zOSAxLjgxLTEuMzkgMS4zMSAwIDEuNzkuOTkgMS45IDEuMzRsMS41OC0uNjdjLS4xNS0uNDUtLjgyLTEuOTItMi41NC0yLjI0VjVoLTJ2MS4yNmMtMi40OC41Ni0yLjQ5IDIuODYtMi40OSAyLjk2IDAgMi4yNyAyLjI1IDIuOTEgMy4zNSAzLjMxIDEuNTguNTYgMi4yOCAxLjA3IDIuMjggMi4wMyAwIDEuMTMtMS4wNSAxLjYxLTEuOTggMS42MS0xLjgyIDAtMi4zNC0xLjg3LTIuNC0yLjA5bC0xLjY2LjY3Yy42MyAyLjE5IDIuMjggMi43OCAyLjkgMi45NlYxOWgydi0xLjI0Yy40LS4wOSAyLjktLjU5IDIuOS0zLjIyIDAtMS4zOS0uNjEtMi42MS0zLjAxLTMuNDR6TTMgMjFIMXYtNmg2djJINC41MmMxLjYxIDIuNDEgNC4zNiA0IDcuNDggNGE5IDkgMCAwIDAgOS05aDJjMCA2LjA4LTQuOTIgMTEtMTEgMTEtMy43MiAwLTcuMDEtMS44NS05LTQuNjdWMjF6bS0yLTlDMSA1LjkyIDUuOTIgMSAxMiAxYzMuNzIgMCA3LjAxIDEuODUgOSA0LjY3VjNoMnY2aC02VjdoMi40OEMxNy44NyA0LjU5IDE1LjEyIDMgMTIgM2E5IDkgMCAwIDAtOSA5SDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERhbmdlcm91cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjczIDNIOC4yN0wzIDguMjd2Ny40Nkw4LjI3IDIxaDcuNDZMMjEgMTUuNzNWOC4yN0wxNS43MyAzek0xNyAxNS43NCAxNS43NCAxNyAxMiAxMy4yNiA4LjI2IDE3IDcgMTUuNzQgMTAuNzQgMTIgNyA4LjI2IDguMjYgNyAxMiAxMC43NCAxNS43NCA3IDE3IDguMjYgMTMuMjYgMTIgMTcgMTUuNzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERhc2hib2FyZEN1c3RvbWl6ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgM2g4djhIM3ptMTAgMGg4djhoLTh6TTMgMTNoOHY4SDN6bTE1IDBoLTJ2M2gtM3YyaDN2M2gydi0zaDN2LTJoLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERhc2hib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTNoOFYzSDN2MTB6bTAgOGg4di02SDN2NnptMTAgMGg4VjExaC04djEwem0wLTE4djZoOFYzaC04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREYXRhRXhwbG9yYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMmMwIDEuMzMuMjYgMi42MS43NCAzLjc3TDggMTAuNWwzLjMgMi43OEwxNC41OCAxMEgxM1Y4aDV2NWgtMnYtMS41OEwxMS40MSAxNmwtMy4yOS0yLjc5LTQuNCA0LjRBOS45OTYgOS45OTYgMCAwIDAgMTIgMjJoOGMxLjEgMCAyLS45IDItMnYtOGMwLTUuNTItNC40OC0xMC0xMC0xMHptNy41IDE4LjVjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGF0YVRocmVzaG9sZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tOC4zMyA1LjE3IDIgMiAzLjY3LTMuNjcgMS40MSAxLjQxTDEyLjY3IDEzbC0yLTItMyAzLTEuNDEtMS40MSA0LjQxLTQuNDJ6TTUgMTZoMS43Mkw1IDE3LjcyVjE2em0uODQgMyAzLTNoMS44M2wtMyAzSDUuODR6bTMuOTYgMCAzLTNoMS42MmwtMyAzSDkuOHptMy43MyAwIDMtM2gxLjYybC0zIDNoLTEuNjJ6TTE5IDE5aC0xLjczTDE5IDE3LjI3VjE5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREYXRlUmFuZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDExSDd2Mmgydi0yem00IDBoLTJ2Mmgydi0yem00IDBoLTJ2Mmgydi0yem0yLTdoLTFWMmgtMnYySDhWMkg2djJINWMtMS4xMSAwLTEuOTkuOS0xLjk5IDJMMyAyMGEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY5aDE0djExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREZWxldGVGb3JldmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyem0yLjQ2LTcuMTIgMS40MS0xLjQxTDEyIDEyLjU5bDIuMTItMi4xMiAxLjQxIDEuNDFMMTMuNDEgMTRsMi4xMiAyLjEyLTEuNDEgMS40MUwxMiAxNS40MWwtMi4xMiAyLjEyLTEuNDEtMS40MUwxMC41OSAxNGwtMi4xMy0yLjEyek0xNS41IDRsLTEtMWgtNWwtMSAxSDV2MmgxNFY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREZWxldGVPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDE5YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3SDZ2MTJ6TTggOWg4djEwSDhWOXptNy41LTUtMS0xaC01bC0xIDFINXYyaDE0VjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERlbGV0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTljMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjdINnYxMnpNMTkgNGgtMy41bC0xLTFoLTVsLTEgMUg1djJoMTRWNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGVuc2l0eUxhcmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAzaDE4djJIM3pNMyAxOWgxOHYySDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERlbnNpdHlNZWRpdW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDNoMTh2Mkgzek0zIDE5aDE4djJIM3pNMyAxMWgxOHYySDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERlbnNpdHlTbWFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMmgxOHYySDN6TTMgMjBoMTh2Mkgzek0zIDE0aDE4djJIM3pNMyA4aDE4djJIM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGVzY3JpcHRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAySDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNCAyMGMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTIgMTZIOHYtMmg4djJ6bTAtNEg4di0yaDh2MnptLTMtNVYzLjVMMTguNSA5SDEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaXNhYmxlZEJ5RGVmYXVsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgM3YxOGgxOFYzSDN6bTE0IDEyLjU5TDE1LjU5IDE3IDEyIDEzLjQxIDguNDEgMTcgNyAxNS41OSAxMC41OSAxMiA3IDguNDEgOC40MSA3IDEyIDEwLjU5IDE1LjU5IDcgMTcgOC40MSAxMy40MSAxMiAxNyAxNS41OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGlzYWJsZWRWaXNpYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuOTkgMTIuMzRjLjAxLS4xMS4wMS0uMjMuMDEtLjM0IDAtNS41Mi00LjQ4LTEwLTEwLTEwUzIgNi40OCAyIDEyYzAgNS4xNyAzLjkzIDkuNDMgOC45NiA5Ljk1YTkuMzQzIDkuMzQzIDAgMCAxLTIuMzItMi42OEE4LjAxIDguMDEgMCAwIDEgNCAxMmMwLTEuODUuNjMtMy41NSAxLjY5LTQuOWw1LjY2IDUuNjZjLjU2LS40IDEuMTctLjczIDEuODItMUw3LjEgNS42OUE3LjkwMiA3LjkwMiAwIDAgMSAxMiA0YzQuMjQgMCA3LjcgMy4yOSA3Ljk4IDcuNDUuNzEuMjIgMS4zOS41MiAyLjAxLjg5ek0xNyAxM2MtMy4xOCAwLTUuOSAxLjg3LTcgNC41IDEuMSAyLjYzIDMuODIgNC41IDcgNC41czUuOS0xLjg3IDctNC41Yy0xLjEtMi42My0zLjgyLTQuNS03LTQuNXptMCA3YTIuNSAyLjUgMCAwIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1em0xLjUtMi41YzAgLjgzLS42NyAxLjUtMS41IDEuNXMtMS41LS42Ny0xLjUtMS41LjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaXNwbGF5U2V0dGluZ3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAzSDRjLTEuMTEgMC0yIC44OS0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg0djJoOHYtMmg0YzEuMSAwIDItLjkgMi0yVjVhMiAyIDAgMCAwLTItMnptMCAxNEg0VjVoMTZ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgOC4yNWg4djEuNUg2ek0xNi41IDkuNzVIMTh2LTEuNWgtMS41VjdIMTV2NGgxLjV6TTEwIDEyLjI1aDh2MS41aC04ek03LjUgMTVIOXYtNEg3LjV2MS4yNUg2djEuNWgxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDEzSDRjLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxaDE2Yy41NSAwIDEtLjQ1IDEtMXYtNmMwLS41NS0uNDUtMS0xLTF6TTcgMTljLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyek0yMCAzSDRjLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxaDE2Yy41NSAwIDEtLjQ1IDEtMVY0YzAtLjU1LS40NS0xLTEtMXpNNyA5Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRG9uZUFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4IDctMS40MS0xLjQxLTYuMzQgNi4zNCAxLjQxIDEuNDFMMTggN3ptNC4yNC0xLjQxTDExLjY2IDE2LjE3IDcuNDggMTJsLTEuNDEgMS40MUwxMS42NiAxOWwxMi0xMi0xLjQyLTEuNDF6TS40MSAxMy40MSA2IDE5bDEuNDEtMS40MUwxLjgzIDEyIC40MSAxMy40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRG9uZU91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5Ljc3IDUuMDMgMS40IDEuNEw4LjQzIDE5LjE3bC01LjYtNS42IDEuNC0xLjQgNC4yIDQuMkwxOS43NyA1LjAzbTAtMi44M0w4LjQzIDEzLjU0bC00LjItNC4yTDAgMTMuNTcgOC40MyAyMiAyNCA2LjQzIDE5Ljc3IDIuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTYuMiA0LjggMTJsLTEuNCAxLjRMOSAxOSAyMSA3bC0xLjQtMS40TDkgMTYuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRG9udXRMYXJnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDUuMDhWMmMtNSAuNS05IDQuODEtOSAxMHM0IDkuNSA5IDEwdi0zLjA4Yy0zLS40OC02LTMuNC02LTYuOTJzMy02LjQ0IDYtNi45MnpNMTguOTcgMTFIMjJjLS40Ny01LTQtOC41My05LTl2My4wOEMxNiA1LjUxIDE4LjU0IDggMTguOTcgMTF6TTEzIDE4LjkyVjIyYzUtLjQ3IDguNTMtNCA5LTloLTMuMDNjLS40MyAzLTIuOTcgNS40OS01Ljk3IDUuOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvbnV0U21hbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA5LjE2VjJjLTUgLjUtOSA0Ljc5LTkgMTBzNCA5LjUgOSAxMHYtNy4xNmMtMS0uNDEtMi0xLjUyLTItMi44NHMxLTIuNDMgMi0yLjg0ek0xNC44NiAxMUgyMmMtLjQ4LTQuNzUtNC04LjUzLTktOXY3LjE2YzEgLjMgMS41Mi45OCAxLjg2IDEuODR6TTEzIDE0Ljg0VjIyYzUtLjQ3IDguNTItNC4yNSA5LTloLTcuMTRjLS4zNC44Ni0uODYgMS41NC0xLjg2IDEuODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERyYWdJbmRpY2F0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE4YzAgMS4xLS45IDItMiAycy0yLS45LTItMiAuOS0yIDItMiAyIC45IDIgMnptLTItOGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTAtNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTYgNGMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTAgMmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTAgNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZER5bmFtaWNGb3JtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMjB2LTloLTJWNGg3bC0yIDVoMmwtNSAxMXptLTItN3Y3SDRjLTEuMSAwLTItLjktMi0ydi0zYzAtMS4xLjktMiAyLTJoMTF6bS04Ljc1IDIuNzVoLTEuNXYxLjVoMS41di0xLjV6TTEzIDR2N0g0Yy0xLjEgMC0yLS45LTItMlY2YzAtMS4xLjktMiAyLTJoOXpNNi4yNSA2Ljc1aC0xLjV2MS41aDEuNXYtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFY28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjA1IDguMDVhNy4wMDEgNy4wMDEgMCAwIDAtLjAyIDkuODhjMS40Ny0zLjQgNC4wOS02LjI0IDcuMzYtNy45M0ExNS45NTIgMTUuOTUyIDAgMCAwIDggMTkuMzJjMi42IDEuMjMgNS44Ljc4IDcuOTUtMS4zN0MxOS40MyAxNC40NyAyMCA0IDIwIDRTOS41MyA0LjU3IDYuMDUgOC4wNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRWRpdENhbGVuZGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjJINWEyIDIgMCAwIDEtMi0ybC4wMS0xNGMwLTEuMS44OC0yIDEuOTktMmgxVjJoMnYyaDhWMmgydjJoMWMxLjEgMCAyIC45IDIgMnY2aC0ydi0ySDV2MTBoN3Yyem0xMC4xMy01LjAxLjcxLS43MWEuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLS43MS0uNzFhLjk5Ni45OTYgMCAwIDAtMS40MSAwbC0uNzEuNzEgMi4xMiAyLjEyem0tLjcxLjcxLTUuMyA1LjNIMTR2LTIuMTJsNS4zLTUuMyAyLjEyIDIuMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVkaXREb2N1bWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDE5Ljg4VjIyaDIuMTJsNS4xNy01LjE3LTIuMTItMi4xMnpNMjAgOGwtNi02SDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNCAyMGMwIDEuMS44OSAyIDEuOTkgMkgxMnYtMi45NWw4LThWOHptLTcgMVYzLjVMMTguNSA5SDEzek0yMi43MSAxNGwtLjcxLS43MWEuOTk2Ljk5NiAwIDAgMC0xLjQxIDBsLS43MS43MUwyMiAxNi4xMmwuNzEtLjcxYS45OTYuOTk2IDAgMCAwIDAtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRWRpdE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMi4xMjYgOC4xMjUgMS45MzctMS45MzcgMy43NDcgMy43NDctMS45MzcgMS45Mzh6TTIwLjcxIDUuNjNsLTIuMzQtMi4zNGExIDEgMCAwIDAtMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1TDIwLjcxIDdhMSAxIDAgMCAwIDAtMS4zN3pNMiA1bDYuNjMgNi42M0wzIDE3LjI1VjIxaDMuNzVsNS42My01LjYyTDE4IDIxbDItMkw0IDMgMiA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFZGl0U3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxN1Y5LjkzTDEzLjkzIDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtOC45M0wxNC4wNyAxN0g3elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDE1aDQuMjRsNy4yLTcuMi00LjI0LTQuMjQtNy4yIDcuMnpNMjIuOTEgMi40OSAyMS41IDEuMDhjLS43OC0uNzgtMi4wNS0uNzgtMi44MyAwbC0xLjA2IDEuMDYgNC4yNCA0LjI0IDEuMDYtMS4wNmMuNzktLjc4Ljc5LTIuMDUgMC0yLjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFamVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAyNFYwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTdoMTR2Mkg1em03LTEyTDUuMzMgMTVoMTMuMzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEV1cm9TeW1ib2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxOC41QTYuNDggNi40OCAwIDAgMSA5LjI0IDE1SDE1di0ySDguNThjLS4wNS0uMzMtLjA4LS42Ni0uMDgtMXMuMDMtLjY3LjA4LTFIMTVWOUg5LjI0QTYuNDkxIDYuNDkxIDAgMCAxIDE1IDUuNWMxLjYxIDAgMy4wOS41OSA0LjIzIDEuNTdMMjEgNS4zQTguOTU1IDguOTU1IDAgMCAwIDE1IDNjLTMuOTIgMC03LjI0IDIuNTEtOC40OCA2SDN2MmgzLjA2YTguMjYyIDguMjYyIDAgMCAwIDAgMkgzdjJoMy41MmMxLjI0IDMuNDkgNC41NiA2IDguNDggNiAyLjMxIDAgNC40MS0uODcgNi0yLjNsLTEuNzgtMS43N2MtMS4xMy45OC0yLjYgMS41Ny00LjIyIDEuNTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEV2ZW50UmVwZWF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTJWNmMwLTEuMS0uOS0yLTItMmgtMVYyaC0ydjJIOFYySDZ2Mkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDd2LTJINVYxMGgxNHYyaDJ6bS01LjM2IDhhMy41MDQgMy41MDQgMCAwIDAgNi44Ni0xYzAtMS45My0xLjU3LTMuNS0zLjUtMy41LS45NSAwLTEuODIuMzgtMi40NSAxSDE4VjE4aC00di00aDEuNXYxLjQzYy45LS44OCAyLjE0LTEuNDMgMy41LTEuNDMgMi43NiAwIDUgMi4yNCA1IDVhNS4wMDIgNS4wMDIgMCAwIDEtOS45IDFoMS41NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXZlbnRTZWF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxOHYzaDN2LTNoMTB2M2gzdi02SDR2M3ptMTUtOGgzdjNoLTN2LTN6TTIgMTBoM3YzSDJ2LTN6bTE1IDNIN1Y1YzAtMS4xLjktMiAyLTJoNmMxLjEgMCAyIC45IDIgMnY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFdmVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEyaC01djVoNXYtNXpNMTYgMXYySDhWMUg2djJINWMtMS4xMSAwLTEuOTkuOS0xLjk5IDJMMyAxOWEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJoLTFWMWgtMnptMyAxOEg1VjhoMTR2MTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEV4aXRUb0FwcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjA5IDE1LjU5IDExLjUgMTdsNS01LTUtNS0xLjQxIDEuNDFMMTIuNjcgMTFIM3YyaDkuNjdsLTIuNTggMi41OXpNMTkgM0g1YTIgMiAwIDAgMC0yIDJ2NGgyVjVoMTR2MTRINXYtNEgzdjRhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFeHBhbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDIwaDE2djJINHpNNCAyaDE2djJINHptOSA3aDNsLTQtNC00IDRoM3Y2SDhsNCA0IDQtNGgtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXhwbG9yZU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQuMTkgMTQuMTktMS40MS0xLjQxLTEuNTYtMS41NkwxMSAxMSA5LjgxIDkuODEgNC45MyA0LjkzIDIuMjcgMi4yNyAxIDMuNTRsMi43OCAyLjc4Yy0uMTEuMTYtLjIxLjMyLS4zMS40OC0uMDQuMDctLjA5LjE0LS4xMy4yMS0uMDkuMTUtLjE3LjMxLS4yNS40Ny0uMDUuMS0uMS4yMS0uMTYuMzItLjA2LjE0LS4xMy4yOC0uMTkuNDMtLjEuMjQtLjE5LjQ4LS4yNy43M2wtLjA5LjNjLS4wNS4yLS4xLjM5LS4xNC41OS0uMDIuMTEtLjA0LjIyLS4wNy4zMy0uMDQuMi0uMDcuNC0uMDkuNjEtLjAxLjEtLjAzLjItLjAzLjMtLjAzLjI5LS4wNS42LS4wNS45MSAwIDUuNTIgNC40OCAxMCAxMCAxMCAuMzEgMCAuNjItLjAyLjkyLS4wNWwuMy0uMDNjLjItLjAyLjQxLS4wNi42MS0uMDkuMTEtLjAyLjIyLS4wNC4zMy0uMDcuMi0uMDQuMzktLjA5LjU4LS4xNS4xLS4wMy4yLS4wNS4zLS4wOS4yNS0uMDguNDktLjE3LjczLS4yNy4xNS0uMDYuMjktLjEzLjQzLS4xOS4xMS0uMDUuMjItLjEuMzMtLjE2LjE2LS4wOC4zMS0uMTYuNDYtLjI1LjA3LS4wNC4xNC0uMDkuMjEtLjEzLjE2LS4xLjMyLS4yLjQ4LS4zMUwyMC40NiAyM2wxLjI3LTEuMjctMi42Ni0yLjY2LTQuODgtNC44OHpNNiAxOGwzLTYuNDZMMTIuNDYgMTUgNiAxOHptMTYtNmMwIC4zMS0uMDIuNjItLjA1LjkybC0uMDMuM2MtLjAyLjItLjA2LjQxLS4wOS42MS0uMDIuMTEtLjA0LjIyLS4wNy4zMy0uMDQuMi0uMDkuMzktLjE1LjU4LS4wMy4xLS4wNS4yMS0uMDkuMzEtLjA4LjI1LS4xNy40OS0uMjcuNzMtLjA2LjE1LS4xMy4yOS0uMTkuNDMtLjA1LjExLS4xLjIyLS4xNi4zMy0uMDguMTYtLjE2LjMxLS4yNS40Ni0uMDQuMDctLjA5LjE0LS4xMy4yMS0uMS4xNi0uMi4zMi0uMzEuNDhMMTUgMTIuNDYgMTggNmwtNi40NiAzLTUuMjItNS4yMmMuMTYtLjExLjMyLS4yMS40OC0uMzEuMDctLjA0LjE0LS4wOS4yMS0uMTMuMTUtLjA5LjMxLS4xNy40Ni0uMjUuMTEtLjA1LjIyLS4xLjMzLS4xNi4xNC0uMDYuMjgtLjEzLjQzLS4xOS4yNC0uMS40OC0uMTkuNzMtLjI3bC4zMS0uMDljLjE5LS4wNS4zOC0uMTEuNTgtLjE1LjExLS4wMi4yMi0uMDQuMzMtLjA3LjItLjA0LjQtLjA3LjYxLS4wOS4xLS4wMS4yLS4wMy4zLS4wMy4yOS0uMDIuNi0uMDQuOTEtLjA0IDUuNTIgMCAxMCA0LjQ4IDEwIDEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFeHBsb3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTAuOWMtLjYxIDAtMS4xLjQ5LTEuMSAxLjFzLjQ5IDEuMSAxLjEgMS4xYy42MSAwIDEuMS0uNDkgMS4xLTEuMXMtLjQ5LTEuMS0xLjEtMS4xek0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0yLjE5IDEyLjE5TDYgMThsMy44MS04LjE5TDE4IDZsLTMuODEgOC4xOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXh0ZW5zaW9uT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkuNzggMjIuNjEtMS42My0xLjYzYy0uMDUgMC0uMS4wMi0uMTUuMDJoLTMuOGMwLTIuNzEtMi4xNi0zLTIuNy0zcy0yLjcuMjktMi43IDNINWMtMS4xIDAtMi0uOS0yLTJ2LTMuOGMyLjcxIDAgMy0yLjE2IDMtMi43cy0uMy0yLjctMi45OS0yLjdWNmMwLS4wNS4wMi0uMDkuMDItLjE0TDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOCAxOC4zOC0xLjQgMS40MnptLjIyLTUuNDRWMTVhMi41IDIuNSAwIDAgMCAwLTVWNmMwLTEuMS0uOS0yLTItMmgtNGEyLjUgMi41IDAgMCAwLTUgMEg2LjgzTDIwIDE3LjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFeHRlbnNpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC41IDExSDE5VjdjMC0xLjEtLjktMi0yLTJoLTRWMy41YTIuNSAyLjUgMCAwIDAtNSAwVjVINGMtMS4xIDAtMS45OS45LTEuOTkgMnYzLjhIMy41YzEuNDkgMCAyLjcgMS4yMSAyLjcgMi43cy0xLjIxIDIuNy0yLjcgMi43SDJWMjBjMCAxLjEuOSAyIDIgMmgzLjh2LTEuNWMwLTEuNDkgMS4yMS0yLjcgMi43LTIuNyAxLjQ5IDAgMi43IDEuMjEgMi43IDIuN1YyMkgxN2MxLjEgMCAyLS45IDItMnYtNGgxLjVhMi41IDIuNSAwIDAgMCAwLTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDExLjc1YTEuMjUgMS4yNSAwIDEgMCAwIDIuNSAxLjI1IDEuMjUgMCAwIDAgMC0yLjV6bTYgMGExLjI1IDEuMjUgMCAxIDAgMCAyLjUgMS4yNSAxLjI1IDAgMCAwIDAtMi41ek0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOCAwLS4yOS4wMi0uNTguMDUtLjg2IDIuMzYtMS4wNSA0LjIzLTIuOTggNS4yMS01LjM3YTkuOTc0IDkuOTc0IDAgMCAwIDEwLjQxIDMuOTdjLjIxLjcxLjMzIDEuNDcuMzMgMi4yNiAwIDQuNDEtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmFjdENoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIwIDNINGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek0xMCAxN0g1di0yaDV2MnptMC00SDV2LTJoNXYyem0wLTRINVY3aDV2MnptNC44MiA2TDEyIDEyLjE2bDEuNDEtMS40MSAxLjQxIDEuNDJMMTcuOTkgOWwxLjQyIDEuNDJMMTQuODIgMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZhdm9yaXRlQm9yZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNSAzYy0xLjc0IDAtMy40MS44MS00LjUgMi4wOUMxMC45MSAzLjgxIDkuMjQgMyA3LjUgMyA0LjQyIDMgMiA1LjQyIDIgOC41YzAgMy43OCAzLjQgNi44NiA4LjU1IDExLjU0TDEyIDIxLjM1bDEuNDUtMS4zMkMxOC42IDE1LjM2IDIyIDEyLjI4IDIyIDguNSAyMiA1LjQyIDE5LjU4IDMgMTYuNSAzem0tNC40IDE1LjU1LS4xLjEtLjEtLjFDNy4xNCAxNC4yNCA0IDExLjM5IDQgOC41IDQgNi41IDUuNSA1IDcuNSA1YzEuNTQgMCAzLjA0Ljk5IDMuNTcgMi4zNmgxLjg3QzEzLjQ2IDUuOTkgMTQuOTYgNSAxNi41IDVjMiAwIDMuNSAxLjUgMy41IDMuNSAwIDIuODktMy4xNCA1Ljc0LTcuOSAxMC4wNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmF2b3JpdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiAyMS4zNS0xLjQ1LTEuMzJDNS40IDE1LjM2IDIgMTIuMjggMiA4LjUgMiA1LjQyIDQuNDIgMyA3LjUgM2MxLjc0IDAgMy40MS44MSA0LjUgMi4wOUMxMy4wOSAzLjgxIDE0Ljc2IDMgMTYuNSAzIDE5LjU4IDMgMjIgNS40MiAyMiA4LjVjMCAzLjc4LTMuNCA2Ljg2LTguNTUgMTEuNTRMMTIgMjEuMzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZheCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDloLTFWNEg4djE2aDE0di04YzAtMS42Ni0xLjM0LTMtMy0zem0tOS0zaDZ2M2gtNlY2em00IDExaC00di01aDR2NXptMiAwYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTAtM2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0zIDNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMC0zYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6TTQuNSA4QTIuNSAyLjUgMCAwIDAgMiAxMC41djhhMi41IDIuNSAwIDAgMCA1IDB2LThBMi41IDIuNSAwIDAgMCA0LjUgOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmVlZGJhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAyMmw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTcgMTJoLTJ2LTJoMnYyem0wLTRoLTJWNmgydjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbGVQcmVzZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWN2wtNS01ek02IDIwVjRoOHY0aDR2MTJINnptMTAtMTB2NWMwIDIuMjEtMS43OSA0LTQgNHMtNC0xLjc5LTQtNFY4LjVhMi41IDIuNSAwIDAgMSAyLjc2LTIuNDljMS4zLjEzIDIuMjQgMS4zMiAyLjI0IDIuNjNWMTVoLTJWOC41YzAtLjI4LS4yMi0uNS0uNS0uNXMtLjUuMjItLjUuNVYxNWMwIDEuMS45IDIgMiAyczItLjkgMi0ydi01aDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbHRlckFsdE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5Ljc5IDUuNjFBLjk5OC45OTggMCAwIDAgMTkgNEg2LjgzbDcuOTcgNy45NyA0Ljk5LTYuMzZ6TTIuODEgMi44MSAxLjM5IDQuMjIgMTAgMTN2NmMwIC41NS40NSAxIDEgMWgyYy41NSAwIDEtLjQ1IDEtMXYtMi4xN2w1Ljc4IDUuNzggMS40MS0xLjQxTDIuODEgMi44MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsdGVyQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjRtMCAyNEgwXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuMjUgNS42MUM2LjI3IDguMiAxMCAxMyAxMCAxM3Y2YzAgLjU1LjQ1IDEgMSAxaDJjLjU1IDAgMS0uNDUgMS0xdi02czMuNzItNC44IDUuNzQtNy4zOUEuOTk4Ljk5OCAwIDAgMCAxOC45NSA0SDUuMDRjLS44MyAwLTEuMy45NS0uNzkgMS42MXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsdGVyTGlzdEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpNMCAwaDI0bTAgMjRIMFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjI1IDUuNjZjLjEuMTMgNS43NCA3LjMzIDUuNzQgNy4zM1YxOWMwIC41NS40NSAxIDEuMDEgMWgyLjAxYy41NSAwIDEuMDEtLjQ1IDEuMDEtMXYtNi4wMnM1LjQ5LTcuMDIgNS43NS03LjM0QzIwLjAzIDUuMzIgMjAgNSAyMCA1YzAtLjU1LS40NS0xLTEuMDEtMUg1LjAxQzQuNCA0IDQgNC40OCA0IDVjMCAuMi4wNi40NC4yNS42NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmluZEluUGFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE5LjU5VjhsLTYtNkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMjBjMCAxLjEuODkgMiAxLjk5IDJIMThjLjQ1IDAgLjg1LS4xNSAxLjE5LS40bC00LjQzLTQuNDNjLS44LjUyLTEuNzQuODMtMi43Ni44My0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDVjMCAxLjAyLS4zMSAxLjk2LS44MyAyLjc1TDIwIDE5LjU5ek05IDEzYzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTMtMS4zNC0zLTMtMy0zIDEuMzQtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaW5kUmVwbGFjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDZjMS4zOCAwIDIuNjMuNTYgMy41NCAxLjQ2TDEyIDEwaDZWNGwtMi4wNSAyLjA1QTYuOTc2IDYuOTc2IDAgMCAwIDExIDRjLTMuNTMgMC02LjQzIDIuNjEtNi45MiA2SDYuMUE1IDUgMCAwIDEgMTEgNnptNS42NCA5LjE0QTYuODkgNi44OSAwIDAgMCAxNy45MiAxMkgxNS45YTUgNSAwIDAgMS00LjkgNGMtMS4zOCAwLTIuNjMtLjU2LTMuNTQtMS40NkwxMCAxMkg0djZsMi4wNS0yLjA1QTYuOTc2IDYuOTc2IDAgMCAwIDExIDE4YzEuNTUgMCAyLjk4LS41MSA0LjE0LTEuMzZMMjAgMjEuNDkgMjEuNDkgMjBsLTQuODUtNC44NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmluZ2VycHJpbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy44MSA0LjQ3Yy0uMDggMC0uMTYtLjAyLS4yMy0uMDZDMTUuNjYgMy40MiAxNCAzIDEyLjAxIDNjLTEuOTggMC0zLjg2LjQ3LTUuNTcgMS40MS0uMjQuMTMtLjU0LjA0LS42OC0uMmEuNTA2LjUwNiAwIDAgMSAuMi0uNjhDNy44MiAyLjUyIDkuODYgMiAxMi4wMSAyYzIuMTMgMCAzLjk5LjQ3IDYuMDMgMS41Mi4yNS4xMy4zNC40My4yMS42N2EuNDkuNDkgMCAwIDEtLjQ0LjI4ek0zLjUgOS43MmEuNDk5LjQ5OSAwIDAgMS0uNDEtLjc5Yy45OS0xLjQgMi4yNS0yLjUgMy43NS0zLjI3QzkuOTggNC4wNCAxNCA0LjAzIDE3LjE1IDUuNjVjMS41Ljc3IDIuNzYgMS44NiAzLjc1IDMuMjVhLjUuNSAwIDAgMS0uMTIuN2MtLjIzLjE2LS41NC4xMS0uNy0uMTJhOS4zODggOS4zODggMCAwIDAtMy4zOS0yLjk0Yy0yLjg3LTEuNDctNi41NC0xLjQ3LTkuNC4wMS0xLjM2LjctMi41IDEuNy0zLjQgMi45Ni0uMDguMTQtLjIzLjIxLS4zOS4yMXptNi4yNSAxMi4wN2EuNDcuNDcgMCAwIDEtLjM1LS4xNWMtLjg3LS44Ny0xLjM0LTEuNDMtMi4wMS0yLjY0LS42OS0xLjIzLTEuMDUtMi43My0xLjA1LTQuMzQgMC0yLjk3IDIuNTQtNS4zOSA1LjY2LTUuMzlzNS42NiAyLjQyIDUuNjYgNS4zOWMwIC4yOC0uMjIuNS0uNS41cy0uNS0uMjItLjUtLjVjMC0yLjQyLTIuMDktNC4zOS00LjY2LTQuMzktMi41NyAwLTQuNjYgMS45Ny00LjY2IDQuMzkgMCAxLjQ0LjMyIDIuNzcuOTMgMy44NS42NCAxLjE1IDEuMDggMS42NCAxLjg1IDIuNDIuMTkuMi4xOS41MSAwIC43MS0uMTEuMS0uMjQuMTUtLjM3LjE1em03LjE3LTEuODVjLTEuMTkgMC0yLjI0LS4zLTMuMS0uODktMS40OS0xLjAxLTIuMzgtMi42NS0yLjM4LTQuMzkgMC0uMjguMjItLjUuNS0uNXMuNS4yMi41LjVjMCAxLjQxLjcyIDIuNzQgMS45NCAzLjU2LjcxLjQ4IDEuNTQuNzEgMi41NC43MS4yNCAwIC42NC0uMDMgMS4wNC0uMS4yNy0uMDUuNTMuMTMuNTguNDEuMDUuMjctLjEzLjUzLS40MS41OC0uNTcuMTEtMS4wNy4xMi0xLjIxLjEyek0xNC45MSAyMmMtLjA0IDAtLjA5LS4wMS0uMTMtLjAyLTEuNTktLjQ0LTIuNjMtMS4wMy0zLjcyLTIuMWE3LjI5NyA3LjI5NyAwIDAgMS0yLjE3LTUuMjJjMC0xLjYyIDEuMzgtMi45NCAzLjA4LTIuOTQgMS43IDAgMy4wOCAxLjMyIDMuMDggMi45NCAwIDEuMDcuOTMgMS45NCAyLjA4IDEuOTRzMi4wOC0uODcgMi4wOC0xLjk0YzAtMy43Ny0zLjI1LTYuODMtNy4yNS02LjgzLTIuODQgMC01LjQ0IDEuNTgtNi42MSA0LjAzLS4zOS44MS0uNTkgMS43Ni0uNTkgMi44IDAgLjc4LjA3IDIuMDEuNjcgMy42MS4xLjI2LS4wMy41NS0uMjkuNjQtLjI2LjEtLjU1LS4wNC0uNjQtLjI5YTExLjE0IDExLjE0IDAgMCAxLS43My0zLjk2YzAtMS4yLjIzLTIuMjkuNjgtMy4yNCAxLjMzLTIuNzkgNC4yOC00LjYgNy41MS00LjYgNC41NSAwIDguMjUgMy41MSA4LjI1IDcuODMgMCAxLjYyLTEuMzggMi45NC0zLjA4IDIuOTRzLTMuMDgtMS4zMi0zLjA4LTIuOTRjMC0xLjA3LS45My0xLjk0LTIuMDgtMS45NHMtMi4wOC44Ny0yLjA4IDEuOTRjMCAxLjcxLjY2IDMuMzEgMS44NyA0LjUxLjk1Ljk0IDEuODYgMS40NiAzLjI3IDEuODUuMjcuMDcuNDIuMzUuMzUuNjEtLjA1LjIzLS4yNi4zOC0uNDcuMzh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpdFNjcmVlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDRoM2MxLjEgMCAyIC45IDIgMnYyaC0yVjZoLTNWNHpNNCA4VjZoM1Y0SDRjLTEuMSAwLTIgLjktMiAydjJoMnptMTYgOHYyaC0zdjJoM2MxLjEgMCAyLS45IDItMnYtMmgtMnpNNyAxOEg0di0ySDJ2MmMwIDEuMS45IDIgMiAyaDN2LTJ6TTE4IDhINnY4aDEyVjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZsYWt5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwibTE0LjA1IDE3LjU4LS4wMS4wMS0yLjQtMi40IDEuMDYtMS4wNiAxLjM1IDEuMzVMMTYuNTQgMTNsMS4wNiAxLjA2LTMuNTQgMy41NC0uMDEtLjAyek0xMiAyQzYuNSAyIDIgNi41IDIgMTJzNC41IDEwIDEwIDEwIDEwLTQuNSAxMC0xMFMxNy41IDIgMTIgMnpNNy4zNCA2LjI4bDEuNDEgMS40MSAxLjQxLTEuNDEgMS4wNiAxLjA2LTEuNDEgMS40MSAxLjQxIDEuNDEtMS4wNiAxLjA2LTEuNDEtMS40MS0xLjQxIDEuNDEtMS4wNi0xLjA2IDEuNDEtMS40MS0xLjQxLTEuNDEgMS4wNi0xLjA2ek0xMiAyMGMtMi4yIDAtNC4yLS45LTUuNy0yLjNMMTcuNyA2LjNDMTkuMSA3LjggMjAgOS44IDIwIDEyYzAgNC40LTMuNiA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmxpZ2h0TGFuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNSAxOWgxOXYyaC0xOXYtMnptMTYuODQtMy4xNWMuOC4yMSAxLjYyLS4yNiAxLjg0LTEuMDYuMjEtLjgtLjI2LTEuNjItMS4wNi0xLjg0bC01LjMxLTEuNDItMi43Ni05LjAyTDEwLjEyIDJ2OC4yOEw1LjE1IDguOTVsLS45My0yLjMyLTEuNDUtLjM5djUuMTdsMTYuNTcgNC40NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmxpZ2h0VGFrZW9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNSAxOWgxOXYyaC0xOXYtMnptMTkuNTctOS4zNmMtLjIxLS44LTEuMDQtMS4yOC0xLjg0LTEuMDZMMTQuOTIgMTBsLTYuOS02LjQzLTEuOTMuNTEgNC4xNCA3LjE3LTQuOTcgMS4zMy0xLjk3LTEuNTQtMS40NS4zOSAyLjU5IDQuNDlzNy4xMi0xLjkgMTYuNTctNC40M2MuODEtLjIzIDEuMjgtMS4wNSAxLjA3LTEuODV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZsaXBUb0JhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDdIN3YyaDJWN3ptMCA0SDd2Mmgydi0yem0wLThhMiAyIDAgMCAwLTIgMmgyVjN6bTQgMTJoLTJ2Mmgydi0yem02LTEydjJoMmMwLTEuMS0uOS0yLTItMnptLTYgMGgtMnYyaDJWM3pNOSAxN3YtMkg3YTIgMiAwIDAgMCAyIDJ6bTEwLTRoMnYtMmgtMnYyem0wLTRoMlY3aC0ydjJ6bTAgOGMxLjEgMCAyLS45IDItMmgtMnYyek01IDdIM3YxMmEyIDIgMCAwIDAgMiAyaDEydi0ySDVWN3ptMTAtMmgyVjNoLTJ2MnptMCAxMmgydi0yaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZsaXBUb0Zyb250IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxM2gydi0ySDN2MnptMCA0aDJ2LTJIM3Yyem0yIDR2LTJIM2EyIDIgMCAwIDAgMiAyek0zIDloMlY3SDN2MnptMTIgMTJoMnYtMmgtMnYyem00LTE4SDlhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTJIOVY1aDEwdjEwem0tOCA2aDJ2LTJoLTJ2MnptLTQgMGgydi0ySDd2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmx1dHRlckRhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4wNyAxMS43Yy4yOS0uMzkuODEtLjU2IDEuMjctLjM3LjE3LjA3LjMyLjE4LjQzLjMzLjIyLjI4LjI1LjU5LjIyLjg1LS4wNS4zMy0uMjUuNjMtLjU0Ljc5IDAgMC00Ljg3IDIuOTUtNS4wNyAyLjY5czMuNjktNC4yOSAzLjY5LTQuMjl6TTIyIDEwYzAgMi41LTEgMy0xLjUgMy0uMjMgMC0uNDQtLjEtLjYyLS4yNi0uNDggMy4zMi0yLjM2IDUuMzEtNS4zMyA1Ljk5LjExLjQ0LjQ4Ljc3Ljk1Ljc3aC41OGMuMjIgMCAuNDEuMTUuNDguMzYuMTcuNTIuNjYgMS4wMiAxLjAyIDEuMzIuMjUuMjEuMjQuNTktLjAzLjc4LS4zNC4yNC0uOS40OS0xLjc5LjUzYS41MDEuNTAxIDAgMCAxLS40NS0uMjJjLS4xMy0uMi0uMzEtLjU2LS4zMS0xLjAxIDAtLjMuMDQtLjU3LjA5LS44LS43OC0uMTYtMS4zOS0uNzgtMS41NS0xLjU2LS40OS4wNi0xIC4xLTEuNTQuMS0uODggMC0xLjctLjA5LTIuNDUtLjI1LS4wMi4wOC0uMDUuMTYtLjA1LjI1IDAgLjU1LjQ1IDEgMSAxaC41OGMuMjIgMCAuNDEuMTUuNDguMzYuMTcuNTIuNjYgMS4wMiAxLjAyIDEuMzIuMjUuMjEuMjQuNTktLjAzLjc4LS4zNC4yNC0uOS40OS0xLjc5LjUzYS41MDEuNTAxIDAgMCAxLS40NS0uMjJjLS4xMy0uMi0uMzEtLjU2LS4zMS0xLjAxIDAtLjMuMDQtLjU3LjA5LS44LS45LS4xOS0xLjU5LTEtMS41OS0xLjk2IDAtLjE4LjAzLS4zNi4wOC0uNTMtMi40Ni0uODYtNC4wMy0yLjc4LTQuNDYtNS43NC0uMTguMTctLjM4LjI3LS42Mi4yN0MzIDEzIDIgMTIuNSAyIDEwYzAtMi4yNyAxLjctNC41IDMtNC41LjQzIDAgLjQ5LjQ5LjUuODVhNy45ODkgNy45ODkgMCAwIDEgNS41NS0zLjI5Yy4yLS45NiAxLjA4LTEuNTYgMS45NS0xLjU2djFzLjMzLS41IDEtLjVjLjY3IDAgMSAuNSAxIC41LS40OSAwLS44NS4zNS0uOTYuNzcgMS44Mi40OCAzLjM5IDEuNTkgNC40NiAzLjA4LjAxLS4zNi4wNy0uODUuNS0uODUgMS4zIDAgMyAyLjIzIDMgNC41ek01IDExYzAgLjgxLjEgMS41My4yNSAyLjIxLjE4LS42OS40Ni0xLjMzLjgzLTEuOTJhMy43NyAzLjc3IDAgMCAxLS4zNC0xLjU0QTMuNzY2IDMuNzY2IDAgMCAxIDkuNSA2Yy45NiAwIDEuODQuMzcgMi41Ljk3LjY2LS42IDEuNTQtLjk3IDIuNS0uOTcgMi4wNyAwIDMuNzUgMS42OCAzLjc1IDMuNzUgMCAuNTUtLjEyIDEuMDctLjM0IDEuNTQuMzcuNTkuNjYgMS4yNC44NCAxLjk0LjE1LS42OC4yNS0xLjQxLjI1LTIuMjMgMC0zLjg2LTMuMTQtNy03LTdzLTcgMy4xNC03IDd6bTEyLjk4IDQuMjljMC0uMS4wMi0uMTkuMDItLjI5IDAtMS4wMS0uMjYtMS45NS0uNy0yLjc4LS42OS43OC0xLjY4IDEuMjgtMi44IDEuMjgtLjI3IDAtLjU0LS4wMy0uNzktLjA5LjE0LS4yMy4yMy0uNDkuMjctLjc3LjAxLS4wNy4wMS0uMTMuMDItLjE5LjE3LjAzLjMzLjA1LjUuMDUgMS41MiAwIDIuNzUtMS4yMyAyLjc1LTIuNzVTMTYuMDIgNyAxNC41IDdjLS42NyAwLTEuMzIuMjUtMS44My43MmwtLjY3LjYtLjY3LS42QzEwLjgyIDcuMjUgMTAuMTcgNyA5LjUgNyA3Ljk4IDcgNi43NSA4LjIzIDYuNzUgOS43NWMwIDEuMzQuOTYgMi40NiAyLjIzIDIuN2wtLjc2LjgzYy0uNi0uMjItMS4xMi0uNTktMS41My0xLjA1QTYuMDEgNi4wMSAwIDAgMCA2IDE1YzAgLjA4LjAxLjE1LjAxLjI0QzcuMTMgMTcuMDYgOS4xNCAxOCAxMiAxOGMyLjg4IDAgNC44OC0uOTEgNS45OC0yLjcxek0xNiA5Ljc1YzAgLjk3LS42NyAxLjc1LTEuNSAxLjc1UzEzIDEwLjcyIDEzIDkuNzUgMTMuNjcgOCAxNC41IDhzMS41Ljc4IDEuNSAxLjc1em0tLjc1LS44N2MwLS4yMS0uMTctLjM4LS4zOC0uMzhzLS4zNy4xNy0uMzcuMzguMTcuMzguMzguMzguMzctLjE4LjM3LS4zOHpNMTEgOS43NWMwIC45Ny0uNjcgMS43NS0xLjUgMS43NVM4IDEwLjcyIDggOS43NSA4LjY3IDggOS41IDhzMS41Ljc4IDEuNSAxLjc1em0tLjc1LS44N2MwLS4yMS0uMTctLjM4LS4zOC0uMzhzLS4zNy4xNy0uMzcuMzguMTcuMzguMzguMzguMzctLjE4LjM3LS4zOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRnJlZUNhbmNlbGxhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjIxIDIwSDVWMTBoMTR2NC4zOGwyLTJWNmMwLTEuMS0uOS0yLTItMmgtMVYyaC0ydjJIOFYySDZ2Mkg1Yy0xLjExIDAtMS45OS45LTEuOTkgMkwzIDIwYTIgMiAwIDAgMCAyIDJoOC4yMWwtMi0yem01LjMzIDIuNUwxMyAxOC45NmwxLjQxLTEuNDEgMi4xMiAyLjEyIDQuMjQtNC4yNCAxLjQxIDEuNDEtNS42NCA1LjY2ek0xMC40MSAxNCAxMiAxNS41OSAxMC41OSAxNyA5IDE1LjQxIDcuNDEgMTcgNiAxNS41OSA3LjU5IDE0IDYgMTIuNDEgNy40MSAxMSA5IDEyLjU5IDEwLjU5IDExIDEyIDEyLjQxIDEwLjQxIDE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHVHJhbnNsYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA0SDExbC0xLTNIM2MtMS4xIDAtMiAuOS0yIDJ2MTVjMCAxLjEuOSAyIDIgMmg4bDEgM2g5YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6TTcgMTZjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTVjMS4zNSAwIDIuNDguNSAzLjM1IDEuM0w5LjAzIDguNTdjLS4zOC0uMzYtMS4wNC0uNzgtMi4wMy0uNzgtMS43NCAwLTMuMTUgMS40NC0zLjE1IDMuMjFTNS4yNiAxNC4yMSA3IDE0LjIxYzIuMDEgMCAyLjg0LTEuNDQgMi45Mi0yLjQxSDd2LTEuNzFoNC42OGMuMDcuMzEuMTIuNjEuMTIgMS4wMkMxMS44IDEzLjk3IDkuODkgMTYgNyAxNnptNi4xNy01LjQyaDMuN2MtLjQzIDEuMjUtMS4xMSAyLjQzLTIuMDUgMy40Ny0uMzEtLjM1LS42LS43Mi0uODYtMS4xbC0uNzktMi4zN3ptOC4zMyA5LjkyYzAgLjU1LS40NSAxLTEgMUgxNGwyLTIuNS0xLjA0LTMuMSAzLjEgMy4xLjkyLS45Mi0zLjMtMy4yNS4wMi0uMDJjMS4xMy0xLjI1IDEuOTMtMi42OSAyLjQtNC4yMkgyMHYtMS4zaC00LjUzVjhoLTEuMjl2MS4yOWgtMS40NEwxMS40NiA1LjVoOS4wNGMuNTUgMCAxIC40NSAxIDF2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR2F2ZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm01LjI1IDguMDY5IDIuODMtMi44MjcgMTQuMTM0IDE0LjE1LTIuODMgMi44Mjd6TTkuNDg2IDMuODI3IDEyLjMxNC45OThsNS42NTcgNS42NTYtMi44MjggMi44M3pNLjk5OSAxMi4zMTVsMi44MjgtMi44MjkgNS42NTcgNS42NTctMi44MjggMi44Mjh6TTEgMjFoMTJ2MkgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHZW5lcmF0aW5nVG9rZW5zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA0Yy00LjQyIDAtOCAzLjU4LTggOHMzLjU4IDggOCA4IDgtMy41OCA4LTgtMy41OC04LTgtOHptMyA2LjVoLTJ2NUg4di01SDZWOWg2djEuNXptOC4yNS02Ljc1TDIzIDVsLTIuNzUgMS4yNUwxOSA5bC0xLjI1LTIuNzVMMTUgNWwyLjc1LTEuMjVMMTkgMWwxLjI1IDIuNzV6bTAgMTRMMjMgMTlsLTIuNzUgMS4yNUwxOSAyM2wtMS4yNS0yLjc1TDE1IDE5bDIuNzUtMS4yNUwxOSAxNWwxLjI1IDIuNzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdldEFwcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDloLTRWM0g5djZINWw3IDcgNy03ek01IDE4djJoMTR2LTJINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR2lmQm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTkuNSAxM3YtMWgxdjFjMCAuNTUtLjQ1IDEtMSAxaC0xYy0uNTUgMC0xLS40NS0xLTF2LTJjMC0uNTUuNDUtMSAxLTFoMWMuNTUgMCAxIC40NSAxIDFoLTJ2Mmgxem0zIDFoLTF2LTRoMXY0em00LTNoLTJ2LjVIMTZ2MWgtMS41VjE0aC0xdi00aDN2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR2lmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNSA5SDEzdjZoLTEuNXpNOSA5SDZjLS42IDAtMSAuNS0xIDF2NGMwIC41LjQgMSAxIDFoM2MuNiAwIDEtLjUgMS0xdi0ySDguNXYxLjVoLTJ2LTNIMTBWMTBjMC0uNS0uNC0xLTEtMXpNMTkgMTAuNVY5aC00LjV2NkgxNnYtMmgydi0xLjVoLTJ2LTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdyYWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTcuMjcgMTguMTggMjFsLTEuNjQtNy4wM0wyMiA5LjI0bC03LjE5LS42MUwxMiAyIDkuMTkgOC42MyAyIDkuMjRsNS40NiA0LjczTDUuODIgMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdyYWRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDdoMTZ2Mkg0Vjd6bTAgNmgxNnYtMkg0djJ6bTAgNGg3di0ySDR2MnptMCA0aDd2LTJINHYyem0xMS40MS0yLjgzTDE0IDE2Ljc1bC0xLjQxIDEuNDFMMTUuNDEgMjEgMjAgMTYuNDIgMTguNTggMTVsLTMuMTcgMy4xN3pNNCAzdjJoMTZWM0g0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHcm91cFdvcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyek04IDE3LjVhMi41IDIuNSAwIDAgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDV6TTkuNSA4YTIuNSAyLjUgMCAwIDEgNSAwIDIuNSAyLjUgMCAwIDEtNSAwem02LjUgOS41YTIuNSAyLjUgMCAwIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZWxwQ2VudGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS02Ljk5IDE1Yy0uNyAwLTEuMjYtLjU2LTEuMjYtMS4yNiAwLS43MS41Ni0xLjI1IDEuMjYtMS4yNS43MSAwIDEuMjUuNTQgMS4yNSAxLjI1LS4wMS42OS0uNTQgMS4yNi0xLjI1IDEuMjZ6bTMuMDEtNy40Yy0uNzYgMS4xMS0xLjQ4IDEuNDYtMS44NyAyLjE3LS4xNi4yOS0uMjIuNDgtLjIyIDEuNDFoLTEuODJjMC0uNDktLjA4LTEuMjkuMzEtMS45OC40OS0uODcgMS40Mi0xLjM5IDEuOTYtMi4xNi41Ny0uODEuMjUtMi4zMy0xLjM3LTIuMzMtMS4wNiAwLTEuNTguOC0xLjggMS40OGwtMS42NS0uN0M5LjAxIDcuMTUgMTAuMjIgNiAxMS45OSA2YzEuNDggMCAyLjQ5LjY3IDMuMDEgMS41Mi40NC43Mi43IDIuMDcuMDIgMy4wOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGVscE91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxOGgydi0yaC0ydjJ6bTEtMTZDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em0wLTE0Yy0yLjIxIDAtNCAxLjc5LTQgNGgyYzAtMS4xLjktMiAyLTJzMiAuOSAyIDJjMCAyLTMgMS43NS0zIDVoMmMwLTIuMjUgMy0yLjUgMy01IDAtMi4yMS0xLjc5LTQtNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZWxwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxN2gtMnYtMmgydjJ6bTIuMDctNy43NS0uOS45MkMxMy40NSAxMi45IDEzIDEzLjUgMTMgMTVoLTJ2LS41YzAtMS4xLjQ1LTIuMSAxLjE3LTIuODNsMS4yNC0xLjI2Yy4zNy0uMzYuNTktLjg2LjU5LTEuNDEgMC0xLjEtLjktMi0yLTJzLTIgLjktMiAySDhjMC0yLjIxIDEuNzktNCA0LTRzNCAxLjc5IDQgNGMwIC44OC0uMzYgMS42OC0uOTMgMi4yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGlkZVNvdXJjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi44MSAyLjgxIDEuMzkgNC4yMmwyLjI3IDIuMjdBOS45MSA5LjkxIDAgMCAwIDIgMTJjMCA1LjUyIDQuNDggMTAgMTAgMTAgMi4wNCAwIDMuOTMtLjYxIDUuNTEtMS42NmwyLjI3IDIuMjcgMS40MS0xLjQxTDIuODEgMi44MXpNMTIgMjBjLTQuNDEgMC04LTMuNTktOC04IDAtMS40OC40MS0yLjg2IDEuMTItNC4wNmwxMC45NCAxMC45NEMxNC44NiAxOS41OSAxMy40OCAyMCAxMiAyMHpNNy45NCA1LjEyIDYuNDkgMy42NkE5LjkxIDkuOTEgMCAwIDEgMTIgMmM1LjUyIDAgMTAgNC40OCAxMCAxMCAwIDIuMDQtLjYxIDMuOTMtMS42NiA1LjUxbC0xLjQ2LTEuNDZBNy44NjkgNy44NjkgMCAwIDAgMjAgMTJjMC00LjQxLTMuNTktOC04LTgtMS40OCAwLTIuODYuNDEtNC4wNiAxLjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIaWdobGlnaHRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA1aC0yVjNoMnYyem0tMiAxNmgydi0yLjU5TDE5LjU5IDIxIDIxIDE5LjU5IDE4LjQxIDE3SDIxdi0yaC02djZ6bTQtMTJoMlY3aC0ydjJ6bTAgNGgydi0yaC0ydjJ6bS04IDhoMnYtMmgtMnYyek03IDVoMlYzSDd2MnpNMyAxN2gydi0ySDN2MnptMiA0di0ySDNjMCAxLjEuOSAyIDIgMnpNMTkgM3YyaDJjMC0xLjEtLjktMi0yLTJ6bS04IDJoMlYzaC0ydjJ6TTMgOWgyVjdIM3Yyem00IDEyaDJ2LTJIN3Yyem0tNC04aDJ2LTJIM3Yyem0wLThoMlYzYy0xLjEgMC0yIC45LTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGlnaGxpZ2h0T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNTkgOCAxMiAxMC41OSA5LjQxIDggOCA5LjQxIDEwLjU5IDEyIDggMTQuNTkgOS40MSAxNiAxMiAxMy40MSAxNC41OSAxNiAxNiAxNC41OSAxMy40MSAxMiAxNiA5LjQxIDE0LjU5IDh6TTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIaXN0b3J5VG9nZ2xlT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUuMSAxOS4zNyAxIDEuNzRjLS45Ni40NC0yLjAxLjczLTMuMS44NHYtMi4wMmMuNzQtLjA5IDEuNDQtLjI4IDIuMS0uNTZ6TTQuMDcgMTNIMi4wNWMuMTEgMS4xLjQgMi4xNC44NCAzLjFsMS43NC0xYy0uMjgtLjY2LS40Ny0xLjM2LS41Ni0yLjF6TTE1LjEgNC42M2wxLTEuNzRjLS45Ni0uNDQtMi0uNzMtMy4xLS44NHYyLjAyYy43NC4wOSAxLjQ0LjI4IDIuMS41NnpNMTkuOTMgMTFoMi4wMmMtLjExLTEuMS0uNC0yLjE0LS44NC0zLjFsLTEuNzQgMWMuMjguNjYuNDcgMS4zNi41NiAyLjF6TTguOSAxOS4zN2wtMSAxLjc0Yy45Ni40NCAyLjAxLjczIDMuMS44NHYtMi4wMmMtLjc0LS4wOS0xLjQ0LS4yOC0yLjEtLjU2ek0xMSA0LjA3VjIuMDVjLTEuMS4xMS0yLjE0LjQtMy4xLjg0bDEgMS43NGMuNjYtLjI4IDEuMzYtLjQ3IDIuMS0uNTZ6bTcuMzYgMy4xIDEuNzQtMS4wMWMtLjYzLS44Ny0xLjQtMS42NC0yLjI3LTIuMjdsLTEuMDEgMS43NGMuNTkuNDUgMS4xLjk2IDEuNTQgMS41NHpNNC42MyA4LjlsLTEuNzQtMWMtLjQ0Ljk2LS43MyAyLS44NCAzLjFoMi4wMmMuMDktLjc0LjI4LTEuNDQuNTYtMi4xem0xNS4zIDQuMWMtLjA5Ljc0LS4yOCAxLjQ0LS41NiAyLjFsMS43NCAxYy40NC0uOTYuNzMtMi4wMS44NC0zLjFoLTIuMDJ6bS0zLjEgNS4zNiAxLjAxIDEuNzRjLjg3LS42MyAxLjY0LTEuNCAyLjI3LTIuMjdsLTEuNzQtMS4wMWMtLjQ1LjU5LS45NiAxLjEtMS41NCAxLjU0ek03LjE3IDUuNjRsLTEtMS43NWMtLjg4LjY0LTEuNjQgMS40LTIuMjcgMi4yOGwxLjc0IDEuMDFhNy43IDcuNyAwIDAgMSAxLjUzLTEuNTR6TTUuNjQgMTYuODNsLTEuNzQgMWMuNjMuODcgMS40IDEuNjQgMi4yNyAyLjI3bDEuMDEtMS43NGE3LjcgNy43IDAgMCAxLTEuNTQtMS41M3pNMTMgN2gtMnY1LjQxbDQuMjkgNC4yOSAxLjQxLTEuNDEtMy43LTMuN1Y3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIaXN0b3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgM2E5IDkgMCAwIDAtOSA5SDFsMy44OSAzLjg5LjA3LjE0TDkgMTJINmMwLTMuODcgMy4xMy03IDctN3M3IDMuMTMgNyA3LTMuMTMgNy03IDdjLTEuOTMgMC0zLjY4LS43OS00Ljk0LTIuMDZsLTEuNDIgMS40MkE4Ljk1NCA4Ljk1NCAwIDAgMCAxMyAyMWE5IDkgMCAwIDAgMC0xOHptLTEgNXY1bDQuMjggMi41NC43Mi0xLjIxLTMuNS0yLjA4VjhIMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhsc09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjgzIDE1aDEuNjdjLjU1IDAgMS0uNDUgMS0xdi0xLjVjMC0uNTUtLjQ1LTEtMS0xSDE3di0xaDJ2LjVoMS41di0xYzAtLjU1LS40NS0xLTEtMWgtM2MtLjU1IDAtMSAuNDUtMSAxdjEuNWMwIC41NS40NSAxIDEgMUgxOXYxaC0yVjEzaC0xLjE3bDIgMnpNOCAxMC44M1YxNUg2LjV2LTIuNWgtMlYxNUgzVjloMS41djJoMlY5LjMzTDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOCAxOC4zOC0xLjQxIDEuNDEtNy42LTcuNkgxMHYtMi4xN2wtMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIbHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjUgOUg4djZINi41di0yLjVoLTJWMTVIM1Y5aDEuNXYyaDJWOXptMTAgNmgzYy41NSAwIDEtLjQ1IDEtMXYtMS41YzAtLjU1LS40NS0xLTEtMUgxN3YtMWgydi41aDEuNXYtMWMwLS41NS0uNDUtMS0xLTFoLTNjLS41NSAwLTEgLjQ1LTEgMXYxLjVjMCAuNTUuNDUgMSAxIDFIMTl2MWgtMlYxM2gtMS41djFjMCAuNTUuNDUgMSAxIDF6TTE0IDE1di0xLjVoLTIuNVY5SDEwdjZoNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSG9tZUZpbGxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDMgNCA5djEyaDV2LTdoNnY3aDVWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSG9tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDIwdi02aDR2Nmg1di04aDNMMTIgMyAyIDEyaDN2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSG9yaXpvbnRhbFNwbGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE5aDE4di02SDN2NnptMC04aDE4VjlIM3Yyem0wLTZ2MmgxOFY1SDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhvdGVsQ2xhc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjU4IDEwSDFsNi4xNyA0LjQxTDQuODMgMjIgMTEgMTcuMzEgMTcuMTggMjJsLTIuMzUtNy41OUwyMSAxMGgtNy41OEwxMSAybC0yLjQyIDh6bTEyLjc4IDEyLTEuODYtNi4wMUwyMy42OCAxM2gtMy40NGwtMy4wOCAyLjIgMS40NiA0LjcyTDIxLjM2IDIyek0xNyA4bC0xLjgyLTYtMS4wNCAzLjQ1Ljc3IDIuNTVIMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhvdXJnbGFzc0Rpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA0aDh2My41bC0yLjg0IDIuODQgMS4yNSAxLjI1TDE4IDguMDEgMTcuOTkgOEgxOFYySDZ2MS4xN2wyIDJ6TTIuMSAyLjEuNjkgMy41MWw4LjkgOC45TDYgMTZsLjAxLjAxSDZWMjJoMTJ2LTEuMTdsMi40OSAyLjQ5IDEuNDEtMS40MUwyLjEgMi4xek0xNiAyMEg4di0zLjVsMi44NC0yLjg0TDE2IDE4LjgzVjIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIb3VyZ2xhc3NFbXB0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAydjZoLjAxTDYgOC4wMSAxMCAxMmwtNCA0IC4wMS4wMUg2VjIyaDEydi01Ljk5aC0uMDFMMTggMTZsLTQtNCA0LTMuOTktLjAxLS4wMUgxOFYySDZ6bTEwIDE0LjVWMjBIOHYtMy41bDQtNCA0IDR6bS00LTUtNC00VjRoOHYzLjVsLTQgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSG91cmdsYXNzRnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAydjZoLjAxTDYgOC4wMSAxMCAxMmwtNCA0IC4wMS4wMUg2VjIyaDEydi01Ljk5aC0uMDFMMTggMTZsLTQtNCA0LTMuOTktLjAxLS4wMUgxOFYySDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEh0bWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgOUg1djZIMy41di0yLjVoLTJWMTVIMFY5aDEuNXYyaDJWOXptMTQgMEgxM2MtLjU1IDAtMSAuNDUtMSAxdjVoMS41di00LjVoMVYxNEgxNnYtMy41MWgxVjE1aDEuNXYtNWMwLS41NS0uNDUtMS0xLTF6TTExIDlINnYxLjVoMS43NVYxNWgxLjV2LTQuNUgxMVY5em0xMyA2di0xLjVoLTIuNVY5SDIwdjZoNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSHR0cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC41IDExaC0yVjlIMXY2aDEuNXYtMi41aDJWMTVINlY5SDQuNXYyem0yLjUtLjVoMS41VjE1SDEwdi00LjVoMS41VjlIN3YxLjV6bTUuNSAwSDE0VjE1aDEuNXYtNC41SDE3VjloLTQuNXYxLjV6bTktMS41SDE4djZoMS41di0yaDJjLjggMCAxLjUtLjcgMS41LTEuNXYtMWMwLS44LS43LTEuNS0xLjUtMS41em0wIDIuNWgtMnYtMWgydjF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTI0IDI0SDBWMGgyNHYyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSHR0cHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA4aC0xVjZjMC0yLjc2LTIuMjQtNS01LTVTNyAzLjI0IDcgNnYySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWMTBjMC0xLjEtLjktMi0yLTJ6bS02IDljLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyem0zLjEtOUg4LjlWNmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMSAxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbXBvcnRhbnREZXZpY2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyAxMS4wMSAxOCAxMWMtLjU1IDAtMSAuNDUtMSAxdjljMCAuNTUuNDUgMSAxIDFoNWMuNTUgMCAxLS40NSAxLTF2LTljMC0uNTUtLjQ1LS45OS0xLS45OXpNMjMgMjBoLTV2LTdoNXY3ek0yMCAySDJDLjg5IDIgMCAyLjg5IDAgNHYxMmEyIDIgMCAwIDAgMiAyaDd2Mkg3djJoOHYtMmgtMnYtMmgydi0ySDJWNGgxOHY1aDJWNGEyIDIgMCAwIDAtMi0yem0tOC4wMyA3TDExIDZsLS45NyAzSDdsMi40NyAxLjc2LS45NCAyLjkxIDIuNDctMS44IDIuNDcgMS44LS45NC0yLjkxTDE1IDloLTMuMDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEluZm9PdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA3aDJ2MmgtMlY3em0wIDRoMnY2aC0ydi02em0xLTlDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbmZvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxNWgtMnYtNmgydjZ6bTAtOGgtMlY3aDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW5wdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzLjAxSDNjLTEuMSAwLTIgLjktMiAyVjloMlY0Ljk5aDE4djE0LjAzSDNWMTVIMXY0LjAxYzAgMS4xLjkgMS45OCAyIDEuOThoMThjMS4xIDAgMi0uODggMi0xLjk4di0xNGEyIDIgMCAwIDAtMi0yek0xMSAxNmw0LTQtNC00djNIMXYyaDEwdjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEluc3RhbGxEZXNrdG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTdINFY1aDhWM0g0Yy0xLjExIDAtMiAuODktMiAydjEyYTIgMiAwIDAgMCAyIDJoNHYyaDh2LTJoNGMxLjEgMCAyLS45IDItMnYtM2gtMnYzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNyAxNCA1LTUtMS40MS0xLjQxTDE4IDEwLjE3VjNoLTJ2Ny4xN2wtMi41OS0yLjU4TDEyIDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEluc3RhbGxNb2JpbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxOEg3VjZoN1YxSDdjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJ2LTVoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTggMTQgNS01LTEuNDEtMS40MUwxOSAxMC4xN1YzaC0ydjcuMTdsLTIuNTktMi41OEwxMyA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbnRlZ3JhdGlvbkluc3RydWN0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIzLjVcIixcInJcIjpcIi43NVwiLFwiZmlsbFwiOlwibm9uZVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMy41XCIsXCJyXCI6XCIuNzVcIixcImZpbGxcIjpcIm5vbmVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjMuNVwiLFwiclwiOlwiLjc1XCIsXCJmaWxsXCI6XCJub25lXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxcy0yLjQuODQtMi44MiAySDVjLS4xNCAwLS4yNy4wMS0uNC4wNGEyLjAwOCAyLjAwOCAwIDAgMC0xLjQ0IDEuMTljLS4xLjIzLS4xNi40OS0uMTYuNzd2MTRjMCAuMjcuMDYuNTQuMTYuNzhzLjI1LjQ1LjQzLjY0Yy4yNy4yNy42Mi40NyAxLjAxLjU1LjEzLjAyLjI2LjAzLjQuMDNoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTggMTEuMTctMS40MSAxLjQyTDYgMTJsMy41OS0zLjU5TDExIDkuODMgOC44MyAxMiAxMSAxNC4xN3ptMS05LjkyYy0uNDEgMC0uNzUtLjM0LS43NS0uNzVzLjM0LS43NS43NS0uNzUuNzUuMzQuNzUuNzUtLjM0Ljc1LS43NS43NXptMi40MSAxMS4zNEwxMyAxNC4xNyAxNS4xNyAxMiAxMyA5LjgzbDEuNDEtMS40MkwxOCAxMmwtMy41OSAzLjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbnZlcnRDb2xvcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDQuODFWMTljLTMuMzEgMC02LTIuNjMtNi01Ljg3IDAtMS41Ni42Mi0zLjAzIDEuNzUtNC4xNEwxMiA0LjgxTTYuMzUgNy41NkM0LjkgOC45OSA0IDEwLjk2IDQgMTMuMTMgNCAxNy40OCA3LjU4IDIxIDEyIDIxczgtMy41MiA4LTcuODdjMC0yLjE3LS45LTQuMTQtMi4zNS01LjU3TDEyIDIgNi4zNSA3LjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRKYXZhc2NyaXB0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTR2LTFoMS41di41aDJ2LTFIMTNjLS41NSAwLTEtLjQ1LTEtMVYxMGMwLS41NS40NS0xIDEtMWgzYy41NSAwIDEgLjQ1IDEgMXYxaC0xLjV2LS41aC0ydjFIMTZjLjU1IDAgMSAuNDUgMSAxVjE0YzAgLjU1LS40NSAxLTEgMWgtM2MtLjU1IDAtMS0uNDUtMS0xek05IDl2NC41SDcuNXYtMUg2djFjMCAuODMuNjcgMS41IDEuNSAxLjVIOWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOUg5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRKb2luRnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJlbGxpcHNlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTJcIixcInJ4XCI6XCIzXCIsXCJyeVwiOlwiNS43NFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMTJjMC0uOTcuMjMtNC4xNiAzLjAzLTYuNUM5Ljc1IDUuMTkgOC45IDUgOCA1Yy0zLjg2IDAtNyAzLjE0LTcgN3MzLjE0IDcgNyA3Yy45IDAgMS43NS0uMTkgMi41My0uNS0yLjgtMi4zNC0zLjAzLTUuNTMtMy4wMy02LjV6TTE2IDVjLS45IDAtMS43NS4xOS0yLjUzLjUgMi44IDIuMzQgMy4wMyA1LjUzIDMuMDMgNi41IDAgLjk3LS4yMyA0LjE2LTMuMDMgNi41Ljc4LjMxIDEuNjMuNSAyLjUzLjUgMy44NiAwIDctMy4xNCA3LTdzLTMuMTQtNy03LTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEpvaW5Jbm5lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJlbGxpcHNlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTJcIixcInJ4XCI6XCIzXCIsXCJyeVwiOlwiNS43NFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjA0IDE2Ljg3Yy0uMzMuMDgtLjY4LjEzLTEuMDQuMTMtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNWMuMzYgMCAuNzEuMDUgMS4wNC4xMy4zOS0uNTYuODgtMS4xMiAxLjQ5LTEuNjNDOS43NSA1LjE5IDguOSA1IDggNWMtMy44NiAwLTcgMy4xNC03IDdzMy4xNCA3IDcgN2MuOSAwIDEuNzUtLjE5IDIuNTMtLjUtLjYxLS41MS0xLjEtMS4wNy0xLjQ5LTEuNjN6TTE2IDVjLS45IDAtMS43NS4xOS0yLjUzLjUuNjEuNTEgMS4xIDEuMDcgMS40OSAxLjYzLjMzLS4wOC42OC0uMTMgMS4wNC0uMTMgMi43NiAwIDUgMi4yNCA1IDVzLTIuMjQgNS01IDVjLS4zNiAwLS43MS0uMDUtMS4wNC0uMTMtLjM5LjU2LS44OCAxLjEyLTEuNDkgMS42My43OC4zMSAxLjYzLjUgMi41My41IDMuODYgMCA3LTMuMTQgNy03cy0zLjE0LTctNy03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRKb2luTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJlbGxpcHNlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTJcIixcInJ4XCI6XCIzXCIsXCJyeVwiOlwiNS43NFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMTJjMC0uOTcuMjMtNC4xNiAzLjAzLTYuNUM5Ljc1IDUuMTkgOC45IDUgOCA1Yy0zLjg2IDAtNyAzLjE0LTcgN3MzLjE0IDcgNyA3Yy45IDAgMS43NS0uMTkgMi41My0uNS0yLjgtMi4zNC0zLjAzLTUuNTMtMy4wMy02LjV6TTE2IDVjLS45IDAtMS43NS4xOS0yLjUzLjUuNjEuNTEgMS4xIDEuMDcgMS40OSAxLjYzLjMzLS4wOC42OC0uMTMgMS4wNC0uMTMgMi43NiAwIDUgMi4yNCA1IDVzLTIuMjQgNS01IDVjLS4zNiAwLS43MS0uMDUtMS4wNC0uMTMtLjM5LjU2LS44OCAxLjEyLTEuNDkgMS42My43OC4zMSAxLjYzLjUgMi41My41IDMuODYgMCA3LTMuMTQgNy03cy0zLjE0LTctNy03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRKb2luUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiZWxsaXBzZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEyXCIsXCJyeFwiOlwiM1wiLFwicnlcIjpcIjUuNzRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNSAxMmMwIC45Ny0uMjMgNC4xNi0zLjAzIDYuNS43OC4zMSAxLjYzLjUgMi41My41IDMuODYgMCA3LTMuMTQgNy03cy0zLjE0LTctNy03Yy0uOSAwLTEuNzUuMTktMi41My41IDIuOCAyLjM0IDMuMDMgNS41MyAzLjAzIDYuNXpNOCAxOWMuOSAwIDEuNzUtLjE5IDIuNTMtLjUtLjYxLS41MS0xLjEtMS4wNy0xLjQ5LTEuNjMtLjMzLjA4LS42OC4xMy0xLjA0LjEzLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTVjLjM2IDAgLjcxLjA1IDEuMDQuMTMuMzktLjU2Ljg4LTEuMTIgMS40OS0xLjYzQzkuNzUgNS4xOSA4LjkgNSA4IDVjLTMuODYgMC03IDMuMTQtNyA3czMuMTQgNyA3IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExhYmVsSW1wb3J0YW50T3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTlIM2w0LjUtN0wzIDVoMTJjLjY1IDAgMS4yNi4zMSAxLjYzLjg0TDIxIDEybC00LjM3IDYuMTZjLS4zNy41Mi0uOTguODQtMS42My44NHptLTguNS0ySDE1bDMuNS01TDE1IDdINi41bDMuNSA1LTMuNSA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMYWJlbEltcG9ydGFudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMy41IDE4Ljk5IDExIC4wMWMuNjcgMCAxLjI3LS4zMyAxLjYzLS44NEwyMC41IDEybC00LjM3LTYuMTZjLS4zNi0uNTEtLjk2LS44NC0xLjYzLS44NGwtMTEgLjAxTDguMzQgMTIgMy41IDE4Ljk5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMYWJlbE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMy4yNSAyLjc1IDE3IDE3TDE5IDIxbC0yLTJINWMtMS4xIDAtMi0uOS0yLTJWN2MwLS41NS4yMy0xLjA1LjU5LTEuNDFMMiA0bDEuMjUtMS4yNXpNMjIgMTJsLTQuMzctNi4xNkMxNy4yNyA1LjMzIDE2LjY3IDUgMTYgNUg4bDExIDExIDMtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGFiZWxPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNjMgNS44NEMxNy4yNyA1LjMzIDE2LjY3IDUgMTYgNUw1IDUuMDFDMy45IDUuMDEgMyA1LjkgMyA3djEwYzAgMS4xLjkgMS45OSAyIDEuOTlMMTYgMTljLjY3IDAgMS4yNy0uMzMgMS42My0uODRMMjIgMTJsLTQuMzctNi4xNnpNMTYgMTdINVY3aDExbDMuNTUgNUwxNiAxN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGFiZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy42MyA1Ljg0QzE3LjI3IDUuMzMgMTYuNjcgNSAxNiA1TDUgNS4wMUMzLjkgNS4wMSAzIDUuOSAzIDd2MTBjMCAxLjEuOSAxLjk5IDIgMS45OUwxNiAxOWMuNjcgMCAxLjI3LS4zMyAxLjYzLS44NEwyMiAxMmwtNC4zNy02LjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMYW5ndWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6bTYuOTMgNmgtMi45NWExNS42NSAxNS42NSAwIDAgMC0xLjM4LTMuNTZBOC4wMyA4LjAzIDAgMCAxIDE4LjkyIDh6TTEyIDQuMDRjLjgzIDEuMiAxLjQ4IDIuNTMgMS45MSAzLjk2aC0zLjgyYy40My0xLjQzIDEuMDgtMi43NiAxLjkxLTMuOTZ6TTQuMjYgMTRDNC4xIDEzLjM2IDQgMTIuNjkgNCAxMnMuMS0xLjM2LjI2LTJoMy4zOGMtLjA4LjY2LS4xNCAxLjMyLS4xNCAyIDAgLjY4LjA2IDEuMzQuMTQgMkg0LjI2em0uODIgMmgyLjk1Yy4zMiAxLjI1Ljc4IDIuNDUgMS4zOCAzLjU2QTcuOTg3IDcuOTg3IDAgMCAxIDUuMDggMTZ6bTIuOTUtOEg1LjA4YTcuOTg3IDcuOTg3IDAgMCAxIDQuMzMtMy41NkExNS42NSAxNS42NSAwIDAgMCA4LjAzIDh6TTEyIDE5Ljk2Yy0uODMtMS4yLTEuNDgtMi41My0xLjkxLTMuOTZoMy44MmMtLjQzIDEuNDMtMS4wOCAyLjc2LTEuOTEgMy45NnpNMTQuMzQgMTRIOS42NmMtLjA5LS42Ni0uMTYtMS4zMi0uMTYtMiAwLS42OC4wNy0xLjM1LjE2LTJoNC42OGMuMDkuNjUuMTYgMS4zMi4xNiAyIDAgLjY4LS4wNyAxLjM0LS4xNiAyem0uMjUgNS41NmMuNi0xLjExIDEuMDYtMi4zMSAxLjM4LTMuNTZoMi45NWE4LjAzIDguMDMgMCAwIDEtNC4zMyAzLjU2ek0xNi4zNiAxNGMuMDgtLjY2LjE0LTEuMzIuMTQtMiAwLS42OC0uMDYtMS4zNC0uMTQtMmgzLjM4Yy4xNi42NC4yNiAxLjMxLjI2IDJzLS4xIDEuMzYtLjI2IDJoLTMuMzh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExhdW5jaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDE5SDVWNWg3VjNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTdoLTJ2N3pNMTQgM3YyaDMuNTlsLTkuODMgOS44MyAxLjQxIDEuNDFMMTkgNi40MVYxMGgyVjNoLTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExlYWRlcmJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDIxSDJWOWg1LjV2MTJ6bTcuMjUtMThoLTUuNXYxOGg1LjVWM3pNMjIgMTFoLTUuNXYxMEgyMlYxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGlnaHRidWxiQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxN2MtLjgzIDAtMS41LS42Ny0xLjUtMS41aDNjMCAuODMtLjY3IDEuNS0xLjUgMS41em0zLTIuNUg5VjE1aDZ2MS41em0tLjAzLTIuNUg5LjAzQTQuOTY2IDQuOTY2IDAgMCAxIDcgMTBjMC0yLjc2IDIuMjQtNSA1LTVzNSAyLjI0IDUgNWMwIDEuNjQtLjggMy4wOS0yLjAzIDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExpZ2h0YnVsYk91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDIxYzAgLjU1LjQ1IDEgMSAxaDRjLjU1IDAgMS0uNDUgMS0xdi0xSDl2MXptMy0xOUM4LjE0IDIgNSA1LjE0IDUgOWMwIDIuMzggMS4xOSA0LjQ3IDMgNS43NFYxN2MwIC41NS40NSAxIDEgMWg2Yy41NSAwIDEtLjQ1IDEtMXYtMi4yNmMxLjgxLTEuMjcgMy0zLjM2IDMtNS43NCAwLTMuODYtMy4xNC03LTctN3ptMiAxMS43VjE2aC00di0yLjNDOC40OCAxMi42MyA3IDExLjUzIDcgOWMwLTIuNzYgMi4yNC01IDUtNXM1IDIuMjQgNSA1YzAgMi40OS0xLjUxIDMuNjUtMyA0Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExpZ2h0YnVsYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMjFjMCAuNS40IDEgMSAxaDRjLjYgMCAxLS41IDEtMXYtMUg5djF6bTMtMTlDOC4xIDIgNSA1LjEgNSA5YzAgMi40IDEuMiA0LjUgMyA1LjdWMTdjMCAuNS40IDEgMSAxaDZjLjYgMCAxLS41IDEtMXYtMi4zYzEuOC0xLjMgMy0zLjQgMy01LjcgMC0zLjktMy4xLTctNy03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMaW5lU3R5bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE2aDV2LTJIM3Yyem02LjUgMGg1di0yaC01djJ6bTYuNSAwaDV2LTJoLTV2MnpNMyAyMGgydi0ySDN2MnptNCAwaDJ2LTJIN3Yyem00IDBoMnYtMmgtMnYyem00IDBoMnYtMmgtMnYyem00IDBoMnYtMmgtMnYyek0zIDEyaDh2LTJIM3Yyem0xMCAwaDh2LTJoLTh2MnpNMyA0djRoMThWNEgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMaW5lV2VpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxN2gxOHYtMkgzdjJ6bTAgM2gxOHYtMUgzdjF6bTAtN2gxOHYtM0gzdjN6bTAtOXY0aDE4VjRIM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTNoMnYtMkgzdjJ6bTAgNGgydi0ySDN2MnptMC04aDJWN0gzdjJ6bTQgNGgxNHYtMkg3djJ6bTAgNGgxNHYtMkg3djJ6TTcgN3YyaDE0VjdIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9ja0Nsb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNC41IDE0LjIgMi45IDEuNy0uOCAxLjNMMTMgMTV2LTVoMS41djQuMnpNMjIgMTRjMCA0LjQxLTMuNTkgOC04IDgtMi4wMiAwLTMuODYtLjc2LTUuMjctMkg0Yy0xLjE1IDAtMi0uODUtMi0yVjljMC0xLjEyLjg5LTEuOTYgMi0ydi0uNUM0IDQuMDEgNi4wMSAyIDguNSAyYzIuMzQgMCA0LjI0IDEuNzkgNC40NiA0LjA4LjM0LS4wNS42OS0uMDggMS4wNC0uMDggNC40MSAwIDggMy41OSA4IDh6TTYgN2g1di0uNzRBMi41MDkgMi41MDkgMCAwIDAgOC41IDQgMi41IDIuNSAwIDAgMCA2IDYuNVY3em0xNCA3YzAtMy4zMS0yLjY5LTYtNi02cy02IDIuNjktNiA2IDIuNjkgNiA2IDYgNi0yLjY5IDYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9ja09wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxN2MxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTYtOWgtMVY2YzAtMi43Ni0yLjI0LTUtNS01UzcgMy4yNCA3IDZoMS45YzAtMS43MSAxLjM5LTMuMSAzLjEtMy4xIDEuNzEgMCAzLjEgMS4zOSAzLjEgMy4xdjJINmMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlYxMGMwLTEuMS0uOS0yLTItMnptMCAxMkg2VjEwaDEydjEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NrT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE3YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptNi05aC0xVjZjMC0yLjc2LTIuMjQtNS01LTVTNyAzLjI0IDcgNnYySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWMTBjMC0xLjEtLjktMi0yLTJ6TTguOSA2YzAtMS43MSAxLjM5LTMuMSAzLjEtMy4xczMuMSAxLjM5IDMuMSAzLjF2Mkg4LjlWNnpNMTggMjBINlYxMGgxMnYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9ja1BlcnNvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDExYy43IDAgMS4zNy4xIDIgLjI5VjEwYzAtMS4xLS45LTItMi0yaC0xVjZjMC0yLjc2LTIuMjQtNS01LTVTNyAzLjI0IDcgNnYySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoNi4yNkE2Ljk5NSA2Ljk5NSAwIDAgMSAxOCAxMXpNOC45IDZjMC0xLjcxIDEuMzktMy4xIDMuMS0zLjFzMy4xIDEuMzkgMy4xIDMuMXYySDguOVY2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bTAgMmMuODMgMCAxLjUuNjcgMS41IDEuNVMxOC44MyAxOCAxOCAxOHMtMS41LS42Ny0xLjUtMS41LjY3LTEuNSAxLjUtMS41em0wIDZjLTEuMDMgMC0xLjk0LS41Mi0yLjQ4LTEuMzIuNzMtLjQyIDEuNTctLjY4IDIuNDgtLjY4czEuNzUuMjYgMi40OC42OGMtLjU0LjgtMS40NSAxLjMyLTIuNDggMS4zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9ja1Jlc2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgM2E5IDkgMCAwIDAtOSA5SDFsNCA0IDQtNEg2YzAtMy44NiAzLjE0LTcgNy03czcgMy4xNCA3IDctMy4xNCA3LTcgN2MtMS45IDAtMy42Mi0uNzYtNC44OC0xLjk5TDYuNyAxOC40MkE4Ljk4MiA4Ljk4MiAwIDAgMCAxMyAyMWE5IDkgMCAwIDAgMC0xOHptMiA4di0xYzAtMS4xLS45LTItMi0ycy0yIC45LTIgMnYxYy0uNTUgMC0xIC40NS0xIDF2M2MwIC41NS40NSAxIDEgMWg0Yy41NSAwIDEtLjQ1IDEtMXYtM2MwLS41NS0uNDUtMS0xLTF6bS0xIDBoLTJ2LTFjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA4aC0xVjZjMC0yLjc2LTIuMjQtNS01LTVTNyAzLjI0IDcgNnYySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWMTBjMC0xLjEtLjktMi0yLTJ6bS02IDljLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyem0zLjEtOUg4LjlWNmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMSAxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2dpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDcgOS42IDguNGwyLjYgMi42SDJ2MmgxMC4ybC0yLjYgMi42TDExIDE3bDUtNS01LTV6bTkgMTJoLTh2Mmg4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJoLTh2Mmg4djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2dvdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNyA3LTEuNDEgMS40MUwxOC4xNyAxMUg4djJoMTAuMTdsLTIuNTggMi41OEwxNyAxN2w1LTV6TTQgNWg4VjNINGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmg4di0ySDRWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG95YWx0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjQxIDExLjU4LTktOUMxMi4wNSAyLjIyIDExLjU1IDIgMTEgMkg0Yy0xLjEgMC0yIC45LTIgMnY3YzAgLjU1LjIyIDEuMDUuNTkgMS40Mmw5IDljLjM2LjM2Ljg2LjU4IDEuNDEuNTguNTUgMCAxLjA1LS4yMiAxLjQxLS41OWw3LTdjLjM3LS4zNi41OS0uODYuNTktMS40MSAwLS41NS0uMjMtMS4wNi0uNTktMS40MnpNNS41IDdDNC42NyA3IDQgNi4zMyA0IDUuNVM0LjY3IDQgNS41IDQgNyA0LjY3IDcgNS41IDYuMzMgNyA1LjUgN3ptMTEuNzcgOC4yN0wxMyAxOS41NGwtNC4yNy00LjI3QTIuNSAyLjUgMCAwIDEgMTAuNSAxMWMuNjkgMCAxLjMyLjI4IDEuNzcuNzRsLjczLjcyLjczLS43M2EyLjUgMi41IDAgMCAxIDMuNTQgMy41NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWFuYWdlQWNjb3VudHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTBcIixcImN5XCI6XCI4XCIsXCJyXCI6XCI0XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjY3IDEzLjAyYy0uMjItLjAxLS40NC0uMDItLjY3LS4wMi0yLjQyIDAtNC42OC42Ny02LjYxIDEuODItLjg4LjUyLTEuMzkgMS41LTEuMzkgMi41M1YyMGg5LjI2YTYuOTYzIDYuOTYzIDAgMCAxLS41OS02Ljk4ek0yMC43NSAxNmMwLS4yMi0uMDMtLjQyLS4wNi0uNjNsMS4xNC0xLjAxLTEtMS43My0xLjQ1LjQ5Yy0uMzItLjI3LS42OC0uNDgtMS4wOC0uNjNMMTggMTFoLTJsLS4zIDEuNDljLS40LjE1LS43Ni4zNi0xLjA4LjYzbC0xLjQ1LS40OS0xIDEuNzMgMS4xNCAxLjAxYy0uMDMuMjEtLjA2LjQxLS4wNi42M3MuMDMuNDIuMDYuNjNsLTEuMTQgMS4wMSAxIDEuNzMgMS40NS0uNDljLjMyLjI3LjY4LjQ4IDEuMDguNjNMMTYgMjFoMmwuMy0xLjQ5Yy40LS4xNS43Ni0uMzYgMS4wOC0uNjNsMS40NS40OSAxLTEuNzMtMS4xNC0xLjAxYy4wMy0uMjEuMDYtLjQxLjA2LS42M3pNMTcgMThjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNYW5hZ2VIaXN0b3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIuNjkgMTguMzcgMS4xNC0xLTEtMS43My0xLjQ1LjQ5Yy0uMzItLjI3LS42OC0uNDgtMS4wOC0uNjNMMjAgMTRoLTJsLS4zIDEuNDljLS40LjE1LS43Ni4zNi0xLjA4LjYzbC0xLjQ1LS40OS0xIDEuNzMgMS4xNCAxYy0uMDguNS0uMDguNzYgMCAxLjI2bC0xLjE0IDEgMSAxLjczIDEuNDUtLjQ5Yy4zMi4yNy42OC40OCAxLjA4LjYzTDE4IDI0aDJsLjMtMS40OWMuNC0uMTUuNzYtLjM2IDEuMDgtLjYzbDEuNDUuNDkgMS0xLjczLTEuMTQtMWMuMDgtLjUxLjA4LS43NyAwLTEuMjd6TTE5IDIxYy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpNMTEgN3Y1LjQxbDIuMzYgMi4zNiAxLjA0LTEuNzktMS40LTEuMzlWN2gtMnptMTAgNWE5IDkgMCAwIDAtOS05QzkuMTcgMyA2LjY1IDQuMzIgNSA2LjM2VjRIM3Y2aDZWOEg2LjI2QTcuMDEgNy4wMSAwIDAgMSAxMiA1YzMuODYgMCA3IDMuMTQgNyA3aDJ6bS0xMC4xNCA2LjkxYy0yLjk5LS40OS01LjM1LTIuOS01Ljc4LTUuOTFIMy4wNmMuNSA0LjUgNC4zMSA4IDguOTQgOGguMDdsLTEuMjEtMi4wOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWFya0FzVW5yZWFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC44MyA3aC0yLjZMMTAuNSA0IDQgNy40VjE3Yy0xLjEgMC0yLS45LTItMlY3LjE3YzAtLjUzLjMyLTEuMDkuOC0xLjM0TDEwLjUgMmw3LjU0IDMuODNjLjQzLjIzLjczLjcuNzkgMS4xN3pNMjAgOEg3Yy0xLjEgMC0yIC45LTIgMnY5YzAgMS4xLjkgMiAyIDJoMTNjMS4xIDAgMi0uOSAyLTJ2LTljMC0xLjEtLjktMi0yLTJ6bTAgMy42N0wxMy41IDE1IDcgMTEuNjdWMTBsNi41IDMuMzNMMjAgMTB2MS42N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWFya3VucmVhZE1haWxib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTS02MTgtMzAwMEg3ODJWNjAwSC02MTh6TTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2SDEwdjZIOFY0aDZWMEg2djZINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNYXhpbWl6ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAzaDE4djJIM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWVkaWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgMTItNCA0LTEuNDEtMS40MUwxOC4xNyAxM2gtNS4yM0E4Ljk3NCA4Ljk3NCAwIDAgMSA4IDIwLjA1IDMuMDA1IDMuMDA1IDAgMCAxIDUgMjNjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTNjLjk1IDAgMS43OC40NSAyLjMzIDEuMTRBNi45NjkgNi45NjkgMCAwIDAgMTAuOTEgMTNoLTMuMUM3LjQgMTQuMTYgNi4zIDE1IDUgMTVjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTNjMS4zIDAgMi40Ljg0IDIuODIgMmgzLjFjLS4zMi0yLjIzLTEuNjktNC4xLTMuNTktNS4xNEM2Ljc4IDYuNTUgNS45NSA3IDUgNyAzLjM0IDcgMiA1LjY2IDIgNHMxLjM0LTMgMy0zYTIuOTkgMi45OSAwIDAgMSAyLjk5IDIuOTVBOC45NzQgOC45NzQgMCAwIDEgMTIuOTMgMTFoNS4yM2wtMS41OC0xLjU5TDE4IDhsNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNaW5pbWl6ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxOWgxMnYySDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vZGVsVHJhaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDEzLjVjMCAyLTIuNSAzLjUtMi41IDVoLTJjMC0xLjUtMi41LTMtMi41LTUgMC0xLjkzIDEuNTctMy41IDMuNS0zLjVzMy41IDEuNTcgMy41IDMuNXptLTIuNSA2aC0yVjIxaDJ2LTEuNXptNi02LjVjMCAxLjY4LS41OSAzLjIxLTEuNTggNC40MmwxLjQyIDEuNDJhOC45NzggOC45NzggMCAwIDAtMS0xMi42OGwtMS40MiAxLjQyQTYuOTkzIDYuOTkzIDAgMCAxIDE5IDEzem0tMy04LTQtNHYzYTkgOSAwIDAgMC05IDljMCAyLjIzLjgyIDQuMjcgMi4xNiA1Ljg0bDEuNDItMS40MkE2LjkzOCA2LjkzOCAwIDAgMSA1IDEzYzAtMy44NiAzLjE0LTcgNy03djNsNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROZXR3b3JrUGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE0LjY3IDMuNDEgNi4wOSAyIDcuNWw4LjUgOC41SDR2MmgxNnYtMmgtNi41bDUuMTUtNS4xNUEyLjUgMi41IDAgMSAwIDE5LjUgNiAyLjUgMi41IDAgMCAwIDE3IDguNWMwIC4zNS4wNy42Ny4yLjk3bC01LjIgNS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROZXdMYWJlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxIDEyLTQuMzcgNi4xNmMtLjM3LjUyLS45OC44NC0xLjYzLjg0aC0zdi02SDl2LTNIM1Y3YzAtMS4xLjktMiAyLTJoMTBjLjY1IDAgMS4yNi4zMSAxLjYzLjg0TDIxIDEyem0tMTEgM0g3di0zSDV2M0gydjJoM3YzaDJ2LTNoM3YtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTmV4dFBsYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem02IDExLjk3aC01bDIuMjYtMi4yNmE0Ljk0IDQuOTQgMCAwIDAtMy43Ni0xLjc0Yy0yLjM3IDAtNC4zNSAxLjY2LTQuODYgMy44OGwtLjk2LS4zMmMuNjQtMi42MiAzLTQuNTYgNS44Mi00LjU2IDEuNzggMCAzLjM3Ljc5IDQuNDcgMi4wM0wxOCA4Ljk3djV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5pZ2h0bGlnaHRSb3VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMDEgMTJjMC0zLjU3IDIuMi02LjYyIDUuMzEtNy44Ny44OS0uMzYuNzUtMS42OS0uMTktMS45LTEuMS0uMjQtMi4yNy0uMy0zLjQ4LS4xNC00LjUxLjYtOC4xMiA0LjMxLTguNTkgOC44M0M0LjQ0IDE2LjkzIDkuMTMgMjIgMTUuMDEgMjJjLjczIDAgMS40My0uMDggMi4xMi0uMjMuOTUtLjIxIDEuMS0xLjUzLjItMS45QTguNDYgOC40NiAwIDAgMSAxMi4wMSAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm9BY2NvdW50cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjE4IDEwLjk0Yy4yLS40NC4zMi0uOTIuMzItMS40NEMxNS41IDcuNTcgMTMuOTMgNiAxMiA2Yy0uNTIgMC0xIC4xMi0xLjQ0LjMybDQuNjIgNC42MnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxM2MtMi4zMiAwLTQuNDUuOC02LjE0IDIuMTJBNy45NTcgNy45NTcgMCAwIDEgNCAxMmMwLTEuODUuNjMtMy41NSAxLjY5LTQuOWwyLjg2IDIuODZhMy40NyAzLjQ3IDAgMCAwIDIuOTkgMi45OWwyLjIgMi4yYy0uNTctLjEtMS4xNS0uMTUtMS43NC0uMTV6bTYuMzEgMS45TDcuMSA1LjY5QTcuOTAyIDcuOTAyIDAgMCAxIDEyIDRjNC40MiAwIDggMy41OCA4IDggMCAxLjg1LS42MyAzLjU0LTEuNjkgNC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb2lzZUF3YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTVoLTJhMS4wMDMgMS4wMDMgMCAwIDEtMS45NS4zMmMtLjE1LS40NC0uNC0xLjA4LS45My0xLjYxbC0xLjM2LTEuMzZDOS4yOCAxMS44NyA5IDExLjE5IDkgMTAuNWEyLjUgMi41IDAgMCAxIDQuOTUtLjVoMi4wMmMtLjI1LTIuMjUtMi4xNi00LTQuNDctNEM5LjAyIDYgNyA4LjAyIDcgMTAuNWMwIDEuMjIuNDkgMi40MSAxLjM1IDMuMjdsMS4zNiAxLjM2Yy4xNy4xNy4zMS40NC40NC44MkEzLjAxMyAzLjAxMyAwIDAgMCAxMyAxOGMxLjY1IDAgMy0xLjM1IDMtM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMy41XCIsXCJjeVwiOlwiMTIuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTMuNiA2LjU4IDEuNTggMS4yNmMuMzUtLjU3Ljc3LTEuMSAxLjI0LTEuNTdMNC44NSA1LjAyYy0uNDcuNDctLjg4IDEtMS4yNSAxLjU2ek05LjQ2IDQuNDJsLS44Ny0xLjgxYy0uNjMuMjMtMS4yNC41Mi0xLjguODdsLjg3IDEuODFjLjU2LS4zNiAxLjE2LS42NSAxLjgtLjg3ek00LjQ5IDkuMjZsLTEuOTYtLjQ1Yy0uMjEuNjMtLjM2IDEuMjgtLjQ0IDEuOTVsMS45Ni40NWE3LjkgNy45IDAgMCAxIC40NC0xLjk1ek0yMC40IDYuNThhOS40IDkuNCAwIDAgMC0xLjI1LTEuNTZsLTEuNTggMS4yNmMuNDguNDcuODkuOTkgMS4yNCAxLjU3bDEuNTktMS4yN3pNNC4wNCAxMi43OWwtMS45Ni40NWMuMDguNjcuMjMgMS4zMy40NCAxLjk1bDEuOTctLjQ1Yy0uMjItLjYyLS4zOC0xLjI3LS40NS0xLjk1ek0xNy4yMSAzLjQ4Yy0uNTctLjM1LTEuMTctLjY0LTEuOC0uODdsLS44NyAxLjgxYy42NC4yMiAxLjI0LjUxIDEuOC44N2wuODctMS44MXpNMTMgNC4wN1YyLjA1Yy0uMzMtLjAzLS42Ni0uMDUtMS0uMDVzLS42Ny4wMi0xIC4wNXYyLjAyYy4zMy0uMDQuNjYtLjA3IDEtLjA3cy42Ny4wMyAxIC4wN3pNMTEgMTkuOTN2Mi4wMmMuMzMuMDMuNjYuMDUgMSAuMDVzLjY3LS4wMiAxLS4wNXYtMi4wMmMtLjMzLjA0LS42Ni4wNy0xIC4wN3MtLjY3LS4wMy0xLS4wN3pNMTkuNTEgMTQuNzRsMS45Ny40NWMuMjEtLjYzLjM2LTEuMjguNDQtMS45NWwtMS45Ni0uNDVjLS4wNy42OC0uMjMgMS4zMy0uNDUgMS45NXpNMTkuOTYgMTEuMjFsMS45Ni0uNDVhOS42OSA5LjY5IDAgMCAwLS40NC0xLjk1bC0xLjk3LjQ1Yy4yMi42Mi4zOCAxLjI3LjQ1IDEuOTV6TTE3LjU4IDE3LjczbDEuNTggMS4yNmMuNDctLjQ4Ljg4LTEgMS4yNS0xLjU2bC0xLjU4LTEuMjZhOS40IDkuNCAwIDAgMS0xLjI1IDEuNTZ6TTYuNzkgMjAuNTJjLjU3LjM1IDEuMTcuNjQgMS44Ljg3bC44Ny0xLjgxYy0uNjQtLjIyLTEuMjQtLjUxLTEuOC0uODdsLS44NyAxLjgxek0xNC41NCAxOS41OGwuODcgMS44MWMuNjMtLjIzIDEuMjQtLjUyIDEuOC0uODdsLS44Ny0xLjgxYy0uNTYuMzYtMS4xNi42NS0xLjguODd6TTMuNiAxNy40MmE5LjQgOS40IDAgMCAwIDEuMjUgMS41NmwxLjU4LTEuMjZhNy44NyA3Ljg3IDAgMCAxLTEuMjQtMS41N0wzLjYgMTcuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vaXNlQ29udHJvbE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRjMS40NCAwIDIuNzkuMzggMy45NSAxLjA1TDE3LjQgMy42QzE1Ljg1IDIuNTkgMTMuOTkgMiAxMiAycy0zLjg1LjU5LTUuNDEgMS41OWwxLjQ1IDEuNDVBOC4wMzQgOC4wMzQgMCAwIDEgMTIgNHpNMjAgMTJjMCAxLjQ0LS4zOCAyLjc5LTEuMDUgMy45NWwxLjQ1IDEuNDVjMS4wMS0xLjU1IDEuNi0zLjQxIDEuNi01LjRzLS41OS0zLjg1LTEuNTktNS40MWwtMS40NSAxLjQ1QTguMDM0IDguMDM0IDAgMCAxIDIwIDEyek0xMiAyMGMtMS40NCAwLTIuNzktLjM4LTMuOTUtMS4wNUw2LjYgMjAuNEM4LjE1IDIxLjQxIDEwLjAxIDIyIDEyIDIyczMuODUtLjU5IDUuNDEtMS41OWwtMS40NS0xLjQ1QTguMDM0IDguMDM0IDAgMCAxIDEyIDIwek00IDEyYzAtMS40NC4zOC0yLjc5IDEuMDUtMy45NUwzLjU5IDYuNTlDMi41OSA4LjE1IDIgMTAuMDEgMiAxMnMuNTkgMy44NSAxLjU5IDUuNDFsMS40NS0xLjQ1QTguMDM0IDguMDM0IDAgMCAxIDQgMTJ6TTExLjUgNkM5LjAyIDYgNyA4LjAyIDcgMTAuNWMwIDEuMjIuNDkgMi40MSAxLjM1IDMuMjdsMS4zNiAxLjM2Yy4xNy4xNy4zMS40NC40NC44MkEzLjAxMyAzLjAxMyAwIDAgMCAxMyAxOGMxLjY1IDAgMy0xLjM1IDMtM2gtMmExLjAwMyAxLjAwMyAwIDAgMS0xLjk1LjMyYy0uMTUtLjQ0LS40LTEuMDgtLjkzLTEuNjFsLTEuMzYtMS4zNkM5LjI4IDExLjg3IDkgMTEuMTkgOSAxMC41YTIuNSAyLjUgMCAwIDEgNC45NS0uNWgyLjAyYy0uMjUtMi4yNS0yLjE2LTQtNC40Ny00elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEzLjVcIixcImN5XCI6XCIxMi41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm90QWNjZXNzaWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0IDExLjA1LTMuNDItMy40MmMuMzItLjM0Ljc0LS41NyAxLjIzLS42MS40OC0uMDQuODQuMDcgMS4yLjI2LjE5LjEuMzkuMjIuNjMuNDZsMS4yOSAxLjQzYy45OCAxLjA4IDIuNTMgMS44NSA0LjA3IDEuODN2MmMtMS43NS0uMDEtMy43MS0uODgtNS0xLjk1ek0xMiA2YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnpNMi44MSAyLjgxIDEuMzkgNC4yMiAxMCAxMi44M1YxNWMwIDEuMS45IDIgMiAyaDIuMTdsNS42MSA1LjYxIDEuNDEtMS40MUwyLjgxIDIuODF6TTEwIDIwYy0xLjY2IDAtMy0xLjM0LTMtMyAwLTEuMzEuODQtMi40MSAyLTIuODNWMTIuMWE1IDUgMCAxIDAgNS45IDUuOWgtMi4wN2MtLjQxIDEuMTYtMS41MiAyLTIuODMgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm90U3RhcnRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bS0xIDE0SDlWOGgydjh6bTEgMFY4bDUgNC01IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vdGVBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAySDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNCAyMGMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTIgMTRoLTN2M2gtMnYtM0g4di0yaDN2LTNoMnYzaDN2MnptLTMtN1YzLjVMMTguNSA5SDEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPZmZsaW5lQm9sdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIuMDJjLTUuNTEgMC05Ljk4IDQuNDctOS45OCA5Ljk4czQuNDcgOS45OCA5Ljk4IDkuOTggOS45OC00LjQ3IDkuOTgtOS45OFMxNy41MSAyLjAyIDEyIDIuMDJ6TTExLjQ4IDIwdi02LjI2SDhMMTMgNHY2LjI2aDMuMzVMMTEuNDggMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE9mZmxpbmVQaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNSAyIDIgNi41IDIgMTJzNC41IDEwIDEwIDEwIDEwLTQuNSAxMC0xMFMxNy41IDIgMTIgMnptNSAxNkg3di0yaDEwdjJ6bS02LjctNEw3IDEwLjdsMS40LTEuNCAxLjkgMS45IDUuMy01LjNMMTcgNy4zIDEwLjMgMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE9uRGV2aWNlVHJhaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxNmgydjFoLTJ6TTEyIDExYy0xLjEgMC0yIC45LTIgMiAwIC43NC40IDEuMzggMSAxLjcydi43OGgydi0uNzhjLjYtLjM1IDEtLjk4IDEtMS43MiAwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMS4wMSA2IDFjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTggMThINlY2aDEydjEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi4wMSAxNS45NWMuNjItLjgzLjk5LTEuODQuOTktMi45NXMtLjM3LTIuMTItLjk5LTIuOTVsLTEuMDcgMS4wN2MuMzUuNTQuNTYgMS4xOS41NiAxLjg4cy0uMjEgMS4zNC0uNTYgMS44OGwxLjA3IDEuMDd6TTkuMDYgMTQuODhjLS4zNS0uNTQtLjU2LTEuMTktLjU2LTEuODggMC0xLjkzIDEuNTctMy41IDMuNS0zLjV2MS4yNWwyLjI1LTItMi4yNS0yVjhjLTIuNzYgMC01IDIuMjQtNSA1IDAgMS4xMS4zNyAyLjEyLjk5IDIuOTVsMS4wNy0xLjA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPbmxpbmVQcmVkaWN0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSAxMS41YzAgMi0yLjUgMy41LTIuNSA1aC0yYzAtMS41LTIuNS0zLTIuNS01QzguNSA5LjU3IDEwLjA3IDggMTIgOHMzLjUgMS41NyAzLjUgMy41em0tMi41IDZoLTJWMTloMnYtMS41em05LTUuNWMwLTIuNzYtMS4xMi01LjI2LTIuOTMtNy4wN2wtMS4wNiAxLjA2QTguNDgxIDguNDgxIDAgMCAxIDIwLjUgMTJjMCAyLjM0LS45NSA0LjQ3LTIuNDkgNi4wMWwxLjA2IDEuMDZBOS45NjkgOS45NjkgMCAwIDAgMjIgMTJ6TTMuNSAxMmMwLTIuMzQuOTUtNC40NyAyLjQ5LTYuMDFMNC45MyA0LjkzQTkuOTY5IDkuOTY5IDAgMCAwIDIgMTJjMCAyLjc2IDEuMTIgNS4yNiAyLjkzIDcuMDdsMS4wNi0xLjA2QTguNDgxIDguNDgxIDAgMCAxIDMuNSAxMnptMTQgMGMwIDEuNTItLjYyIDIuODktMS42MSAzLjg5bDEuMDYgMS4wNkE2Ljk3NiA2Ljk3NiAwIDAgMCAxOSAxMmMwLTEuOTMtLjc4LTMuNjgtMi4wNS00Ljk1bC0xLjA2IDEuMDZjLjk5IDEgMS42MSAyLjM3IDEuNjEgMy44OXpNNy4wNSAxNi45NWwxLjA2LTEuMDZjLTEtMS0xLjYxLTIuMzctMS42MS0zLjg5cy42Mi0yLjg5IDEuNjEtMy44OUw3LjA1IDcuMDVBNi45NzYgNi45NzYgMCAwIDAgNSAxMmMwIDEuOTMuNzggMy42OCAyLjA1IDQuOTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE9wYWNpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTI0IDBIMHYyNGgyNFYwem0wIDBIMHYyNGgyNFYwek0wIDI0aDI0VjBIMHYyNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNjYgOCAxMiAyLjM1IDYuMzQgOEE4LjAyIDguMDIgMCAwIDAgNCAxMy42NGMwIDIgLjc4IDQuMTEgMi4zNCA1LjY3YTcuOTkgNy45OSAwIDAgMCAxMS4zMiAwYzEuNTYtMS41NiAyLjM0LTMuNjcgMi4zNC01LjY3UzE5LjIyIDkuNTYgMTcuNjYgOHpNNiAxNGMuMDEtMiAuNjItMy4yNyAxLjc2LTQuNEwxMiA1LjI3bDQuMjQgNC4zOEMxNy4zOCAxMC43NyAxNy45OSAxMiAxOCAxNEg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPcGVuSW5Ccm93c2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNEg1YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg0di0ySDVWOGgxNHYxMGgtNHYyaDRjMS4xIDAgMi0uOSAyLTJWNmEyIDIgMCAwIDAtMi0yem0tNyA2LTQgNGgzdjZoMnYtNmgzbC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE9wZW5JbkZ1bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMVYzaC04bDMuMjkgMy4yOS0xMCAxMEwzIDEzdjhoOGwtMy4yOS0zLjI5IDEwLTEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPcGVuSW5OZXdPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi43OSA1LjggMTQgM2g3djdsLTIuNzktMi44LTQuMDkgNC4wOS0xLjQxLTEuNDEgNC4wOC00LjA4ek0xOSAxMnY0LjE3bDIgMlYxMmgtMnptLjc4IDEwLjYxTDE4LjE3IDIxSDVhMiAyIDAgMCAxLTItMlY1LjgzTDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOCAxOC4zOC0xLjQgMS40MnpNMTYuMTcgMTlsLTQuODgtNC44OC0xLjU5IDEuNTktMS40MS0xLjQxIDEuNTktMS41OUw1IDcuODNWMTloMTEuMTd6TTcuODMgNUgxMlYzSDUuODNsMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPcGVuSW5OZXcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxOUg1VjVoN1YzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi03aC0ydjd6TTE0IDN2MmgzLjU5bC05LjgzIDkuODMgMS40MSAxLjQxTDE5IDYuNDFWMTBoMlYzaC03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPcGVuV2l0aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDloNFY2aDNsLTUtNS01IDVoM3Yzem0tMSAxSDZWN2wtNSA1IDUgNXYtM2gzdi00em0xNCAyLTUtNXYzaC0zdjRoM3YzbDUtNXptLTkgM2gtNHYzSDdsNSA1IDUtNWgtM3YtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0Ym9uZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEuODggOS41NEw4LjkyIDE2LjVsLTEuNDEtMS40MSA0Ljk2LTQuOTZMMTAuMzQgOGw1LjY1LjAxLjAxIDUuNjUtMi4xMi0yLjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRib3VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEuODggOS41NEw4LjkyIDE2LjVsLTEuNDEtMS40MSA0Ljk2LTQuOTZMMTAuMzQgOGw1LjY1LjAxLjAxIDUuNjUtMi4xMi0yLjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINC45OWMtMS4xMSAwLTEuOTguOS0xLjk4IDJMMyAxOWMwIDEuMS44OCAyIDEuOTkgMkgxOWMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDEyaC00YzAgMS42Ni0xLjM1IDMtMyAzcy0zLTEuMzQtMy0zSDQuOTlWNUgxOXYxMHpNOCAxMWgydjNoNHYtM2gybC00LTQtNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRnb2luZ01haWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC41IDExYy4xNyAwIC4zNC4wMS41LjAzVjYuODdDMTkgNS44NCAxOC4xNiA1IDE3LjEzIDVIMy44N0MyLjg0IDUgMiA1Ljg0IDIgNi44N3YxMC4yNkMyIDE4LjE2IDIuODQgMTkgMy44NyAxOWg5LjczYy0uMzgtLjc1LS42LTEuNi0uNi0yLjUgMC0zLjA0IDIuNDYtNS41IDUuNS01LjV6bS04LjEgMkw0IDkuMTlWN2guMjNsNi4xOCAzLjY4TDE2Ljc0IDdIMTd2Mi4xNkwxMC40IDEzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOSAxMy0xLjQxIDEuNDFMMTkuMTcgMTZIMTV2Mmg0LjE3bC0xLjU4IDEuNTlMMTkgMjFsNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyek05IDEyYy0uNTUgMC0xLS40NS0xLTFWOGMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2M2MwIC41NS0uNDUgMS0xIDF6bTUgNmgtNHYtMmMwLTEuMS45LTIgMi0yczIgLjkgMiAydjJ6bTItN2MwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMVY4YzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRwdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNyAxNyA1LTUtNS01LTEuNDEgMS40MUwxOC4xNyAxMUg5djJoOS4xN2wtMi41OCAyLjU5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxOUg1VjVoMTR2MmgyVjVhMiAyIDAgMCAwLTItMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTJoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGFnZXZpZXcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS41IDlhMi41IDIuNSAwIDAgMCAwIDUgMi41IDIuNSAwIDAgMCAwLTV6TTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0tMy4yMSAxNC4yMS0yLjkxLTIuOTFjLS42OS40NC0xLjUxLjctMi4zOS43QzkuMDEgMTYgNyAxMy45OSA3IDExLjVTOS4wMSA3IDExLjUgNyAxNiA5LjAxIDE2IDExLjVjMCAuODgtLjI2IDEuNjktLjcgMi4zOWwyLjkxIDIuOS0xLjQyIDEuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBhaWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0uODggMTUuNzZWMTloLTEuNzV2LTEuMjljLS43NC0uMTgtMi4zOS0uNzctMy4wMi0yLjk2bDEuNjUtLjY3Yy4wNi4yMi41OCAyLjA5IDIuNCAyLjA5LjkzIDAgMS45OC0uNDggMS45OC0xLjYxIDAtLjk2LS43LTEuNDYtMi4yOC0yLjAzLTEuMS0uMzktMy4zNS0xLjAzLTMuMzUtMy4zMSAwLS4xLjAxLTIuNCAyLjYyLTIuOTZWNWgxLjc1djEuMjRjMS44NC4zMiAyLjUxIDEuNzkgMi42NiAyLjIzbC0xLjU4LjY3Yy0uMTEtLjM1LS41OS0xLjM0LTEuOS0xLjM0LS43IDAtMS44MS4zNy0xLjgxIDEuMzkgMCAuOTUuODYgMS4zMSAyLjY0IDEuOSAyLjQuODMgMy4wMSAyLjA1IDMuMDEgMy40NSAwIDIuNjMtMi41IDMuMTMtMy4wMiAzLjIyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQYW5Ub29sQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkuOTggMTQuODItLjYzIDQuNDZjLS4xNC45OS0uOTkgMS43Mi0xLjk4IDEuNzJoLTYuMTZjLS41MyAwLTEuMjktLjIxLTEuNjYtLjU5TDUgMTUuNjJsLjgzLS44NGMuMjQtLjI0LjU4LS4zNS45Mi0uMjhsMy4yNS43NFY0LjVjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjV2NmguOTFjLjMxIDAgLjYyLjA3Ljg5LjIxbDQuMDkgMi4wNGMuNzcuMzkgMS4yMSAxLjIyIDEuMDkgMi4wN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGFuVG9vbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzIDUuNVYyMGMwIDIuMi0xLjggNC00IDRoLTcuM2MtMS4wOCAwLTIuMS0uNDMtMi44NS0xLjE5TDEgMTQuODNzMS4yNi0xLjIzIDEuMy0xLjI1Yy4yMi0uMTkuNDktLjI5Ljc5LS4yOS4yMiAwIC40Mi4wNi42LjE2LjA0LjAxIDQuMzEgMi40NiA0LjMxIDIuNDZWNGMwLS44My42Ny0xLjUgMS41LTEuNVMxMSAzLjE3IDExIDR2N2gxVjEuNWMwLS44My42Ny0xLjUgMS41LTEuNVMxNSAuNjcgMTUgMS41VjExaDFWMi41YzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41VjExaDFWNS41YzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQYXltZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY2YzAtMS4xMS0uODktMi0yLTJ6bTAgMTRINHYtNmgxNnY2em0wLTEwSDRWNmgxNnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZW5kaW5nQWN0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEyYy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXptMS42NSA3LjM1TDE2LjUgMTcuMlYxNGgxdjIuNzlsMS44NSAxLjg1LS43Ljcxek0xOCAzaC0zLjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMXMtMi40Ljg0LTIuODIgMkg2Yy0xLjEgMC0yIC45LTIgMnYxNWMwIDEuMS45IDIgMiAyaDYuMTFhNi43NDMgNi43NDMgMCAwIDEtMS40Mi0ySDZWNWgydjNoOFY1aDJ2NS4wOGMuNzEuMSAxLjM4LjMxIDIgLjZWNWMwLTEuMS0uOS0yLTItMnptLTYgMmMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZW5kaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnpNNyAxMy41Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXptNSAwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXptNSAwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVyY2VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNSAxMUM5LjQzIDExIDExIDkuNDMgMTEgNy41UzkuNDMgNCA3LjUgNCA0IDUuNTcgNCA3LjUgNS41NyAxMSA3LjUgMTF6bTAtNUM4LjMzIDYgOSA2LjY3IDkgNy41UzguMzMgOSA3LjUgOSA2IDguMzMgNiA3LjUgNi42NyA2IDcuNSA2ek00LjAwMiAxOC41ODMgMTguNTkgMy45OTZsMS40MTQgMS40MTRMNS40MTcgMTkuOTk3ek0xNi41IDEzYy0xLjkzIDAtMy41IDEuNTctMy41IDMuNXMxLjU3IDMuNSAzLjUgMy41IDMuNS0xLjU3IDMuNS0zLjUtMS41Ny0zLjUtMy41LTMuNXptMCA1Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVybUNhbWVyYU1pYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDVoLTMuMTdMMTUgM0g5TDcuMTcgNUg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDd2LTIuMDljLTIuODMtLjQ4LTUtMi45NC01LTUuOTFoMmMwIDIuMjEgMS43OSA0IDQgNHM0LTEuNzkgNC00aDJjMCAyLjk3LTIuMTcgNS40My01IDUuOTFWMjFoN2MxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0tNiA4YzAgMS4xLS45IDItMiAycy0yLS45LTItMlY5YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVybUNvbnRhY3RDYWxlbmRhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNoLTFWMWgtMnYySDhWMUg2djJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgM2MxLjY2IDAgMyAxLjM0IDMgM3MtMS4zNCAzLTMgMy0zLTEuMzQtMy0zIDEuMzQtMyAzLTN6bTYgMTJINnYtMWMwLTIgNC0zLjEgNi0zLjFzNiAxLjEgNiAzLjF2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVybURhdGFTZXR0aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguOTkgMTEuNWMuMzQgMCAuNjcuMDMgMSAuMDdMMjAgMCAwIDIwaDExLjU2Yy0uMDQtLjMzLS4wNy0uNjYtLjA3LTEgMC00LjE0IDMuMzYtNy41IDcuNS03LjV6bTMuNzEgNy45OWMuMDItLjE2LjA0LS4zMi4wNC0uNDkgMC0uMTctLjAxLS4zMy0uMDQtLjQ5bDEuMDYtLjgzYS4yNi4yNiAwIDAgMCAuMDYtLjMybC0xLTEuNzNjLS4wNi0uMTEtLjE5LS4xNS0uMzEtLjExbC0xLjI0LjVjLS4yNi0uMi0uNTQtLjM3LS44NS0uNDlsLS4xOS0xLjMyYy0uMDEtLjEyLS4xMi0uMjEtLjI0LS4yMWgtMmMtLjEyIDAtLjIzLjA5LS4yNS4yMWwtLjE5IDEuMzJjLS4zLjEzLS41OS4yOS0uODUuNDlsLTEuMjQtLjVjLS4xMS0uMDQtLjI0IDAtLjMxLjExbC0xIDEuNzNjLS4wNi4xMS0uMDQuMjQuMDYuMzJsMS4wNi44M2EzLjkwOCAzLjkwOCAwIDAgMCAwIC45OGwtMS4wNi44M2EuMjYuMjYgMCAwIDAtLjA2LjMybDEgMS43M2MuMDYuMTEuMTkuMTUuMzEuMTFsMS4yNC0uNWMuMjYuMi41NC4zNy44NS40OWwuMTkgMS4zMmMuMDIuMTIuMTIuMjEuMjUuMjFoMmMuMTIgMCAuMjMtLjA5LjI1LS4yMWwuMTktMS4zMmMuMy0uMTMuNTktLjI5Ljg0LS40OWwxLjI1LjVjLjExLjA0LjI0IDAgLjMxLS4xMWwxLTEuNzNhLjI2LjI2IDAgMCAwLS4wNi0uMzJsLTEuMDctLjgzem0tMy43MSAxLjAxYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVybURldmljZUluZm9ybWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgN2gtMnYyaDJWN3ptMCA0aC0ydjZoMnYtNnptNC05Ljk5TDcgMWMtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNyAxOUg3VjVoMTB2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlcm1JZGVudGl0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDUuOWEyLjEgMi4xIDAgMSAxIDAgNC4yIDIuMSAyLjEgMCAwIDEgMC00LjJtMCA5YzIuOTcgMCA2LjEgMS40NiA2LjEgMi4xdjEuMUg1LjlWMTdjMC0uNjQgMy4xMy0yLjEgNi4xLTIuMU0xMiA0QzkuNzkgNCA4IDUuNzkgOCA4czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0wIDljLTIuNjcgMC04IDEuMzQtOCA0djNoMTZ2LTNjMC0yLjY2LTUuMzMtNC04LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlcm1NZWRpYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgNkgwdjVoLjAxTDAgMjBjMCAxLjEuOSAyIDIgMmgxOHYtMkgyVjZ6bTIwLTJoLThsLTItMkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yek03IDE1bDQuNS02IDMuNSA0LjUxIDIuNS0zLjAxTDIxIDE1SDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlcm1QaG9uZU1zZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE1LjVjLTEuMjUgMC0yLjQ1LS4yLTMuNTctLjU3YTEuMDIgMS4wMiAwIDAgMC0xLjAyLjI0bC0yLjIgMi4yYTE1LjA3NCAxNS4wNzQgMCAwIDEtNi41OS02LjU4bDIuMi0yLjIxYy4yOC0uMjcuMzYtLjY2LjI1LTEuMDFBMTEuMzYgMTEuMzYgMCAwIDEgOC41IDRjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNWMwLS41NS0uNDUtMS0xLTF6TTEyIDN2MTBsMy0zaDZWM2gtOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVybVNjYW5XaWZpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgM0M2Ljk1IDMgMy4xNSA0Ljg1IDAgNy4yM0wxMiAyMiAyNCA3LjI1QzIwLjg1IDQuODcgMTcuMDUgMyAxMiAzem0xIDEzaC0ydi02aDJ2NnptLTItOFY2aDJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGV0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNC41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIyLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiNS41XCIsXCJyXCI6XCIyLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjUuNVwiLFwiclwiOlwiMi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTkuNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjM0IDE0Ljg2Yy0uODctMS4wMi0xLjYtMS44OS0yLjQ4LTIuOTEtLjQ2LS41NC0xLjA1LTEuMDgtMS43NS0xLjMyLS4xMS0uMDQtLjIyLS4wNy0uMzMtLjA5LS4yNS0uMDQtLjUyLS4wNC0uNzgtLjA0cy0uNTMgMC0uNzkuMDVjLS4xMS4wMi0uMjIuMDUtLjMzLjA5LS43LjI0LTEuMjguNzgtMS43NSAxLjMyLS44NyAxLjAyLTEuNiAxLjg5LTIuNDggMi45MS0xLjMxIDEuMzEtMi45MiAyLjc2LTIuNjIgNC43OS4yOSAxLjAyIDEuMDIgMi4wMyAyLjMzIDIuMzIuNzMuMTUgMy4wNi0uNDQgNS41NC0uNDRoLjE4YzIuNDggMCA0LjgxLjU4IDUuNTQuNDQgMS4zMS0uMjkgMi4wNC0xLjMxIDIuMzMtMi4zMi4zMS0yLjA0LTEuMy0zLjQ5LTIuNjEtNC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaHAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA5aDEuNXY2SDEzdi0yLjVoLTJWMTVIOS41VjlIMTF2MmgyVjl6bS01IDEuNXYxYzAgLjgtLjcgMS41LTEuNSAxLjVoLTJ2MkgzVjloMy41Yy44IDAgMS41LjcgMS41IDEuNXptLTEuNSAwaC0ydjFoMnYtMXptMTUgMHYxYzAgLjgtLjcgMS41LTEuNSAxLjVoLTJ2MmgtMS41VjlIMjBjLjggMCAxLjUuNyAxLjUgMS41em0tMS41IDBoLTJ2MWgydi0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaWN0dXJlSW5QaWN0dXJlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxMWgtOHY2aDh2LTZ6bTQgOFY0Ljk4QzIzIDMuODggMjIuMSAzIDIxIDNIM2MtMS4xIDAtMiAuODgtMiAxLjk4VjE5YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJ6bS0yIC4wMkgzVjQuOTdoMTh2MTQuMDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBpY3R1cmVJblBpY3R1cmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA3aC04djZoOFY3em0yLTRIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAxLjk4IDIgMS45OGgxOGMxLjEgMCAyLS44OCAyLTEuOThWNWMwLTEuMS0uOS0yLTItMnptMCAxNi4wMUgzVjQuOThoMTh2MTQuMDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBpbkVuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDEyVjZINHYxMmgxMHYySDRjLTEuMSAwLTItLjktMi0yVjZjMC0xLjEuOS0yIDItMmgxNmMxLjEgMCAyIC45IDIgMnY2aC0yem0tMSAyYy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3ptLTQuMzQtNkg5djUuNjZsMi4xMi0yLjEyIDIuODMgMi44MyAxLjQxLTEuNDEtMi44My0yLjgzTDE0LjY2IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBpbkludm9rZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDEydjZjMCAxLjEtLjkgMi0yIDJINGMtMS4xIDAtMi0uOS0yLTJWNmMwLTEuMS45LTIgMi0yaDEwdjJINHYxMmgxNnYtNmgyem0wLTVjMC0xLjY2LTEuMzQtMy0zLTNzLTMgMS4zNC0zIDMgMS4zNCAzIDMgMyAzLTEuMzQgMy0zem0tMTAuNTMgNS4xMi0yLjgzIDIuODMgMS40MSAxLjQxIDIuODMtMi44M0wxNSAxNS42NlYxMEg5LjM0bDIuMTMgMi4xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGluY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDIuNVYxaDV2NUg5LjVWMy41NkwzLjU2IDkuNUg2VjExSDFWNmgxLjV2Mi40NEw4LjQ0IDIuNUg2em0xNi45OCAxNC4zMi0uNjMgNC40NmMtLjE0Ljk5LS45OSAxLjcyLTEuOTggMS43MmgtNi4xNmMtLjUzIDAtMS4yOS0uMjEtMS42Ni0uNTlMOCAxNy42MmwuODMtLjg0Yy4yNC0uMjQuNTgtLjM1LjkyLS4yOGwzLjI1Ljc0VjYuNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNXY2aC45MWMuMzEgMCAuNjIuMDcuODkuMjFsNC4wOSAyLjA0Yy43Ny4zOSAxLjIxIDEuMjIgMS4wOSAyLjA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQbGFnaWFyaXNtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMkg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTEuMDQgMTcuNDUtMS44OC0xLjg4Yy0xLjMzLjcxLTMuMDEuNTMtNC4xMy0uNTlhMy40OTUgMy40OTUgMCAwIDEgMC00Ljk1IDMuNDk1IDMuNDk1IDAgMCAxIDQuOTUgMCAzLjQ4IDMuNDggMCAwIDEgLjU5IDQuMTNsMS44OCAxLjg4LTEuNDEgMS40MXpNMTMgOVYzLjVMMTguNSA5SDEzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjExLjVcIixcImN5XCI6XCIxNC41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGxheUZvcldvcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA1djUuNTlINy41bDQuNSA0LjUgNC41LTQuNUgxM1Y1aC0yem0tNSA5YzAgMy4zMSAyLjY5IDYgNiA2czYtMi42OSA2LTZoLTJjMCAyLjIxLTEuNzkgNC00IDRzLTQtMS43OS00LTRINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUG9seW1lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDRoLTRMNy4xMSAxNi42MyA0LjUgMTIgOSA0SDVMLjUgMTIgNSAyMGg0bDcuODktMTIuNjNMMTkuNSAxMiAxNSAyMGg0bDQuNS04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQb3dlclNldHRpbmdzTmV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgM2gtMnYxMGgyVjN6bTQuODMgMi4xNy0xLjQyIDEuNDJBNi45MiA2LjkyIDAgMCAxIDE5IDEyYzAgMy44Ny0zLjEzIDctNyA3QTYuOTk1IDYuOTk1IDAgMCAxIDcuNTggNi41OEw2LjE3IDUuMTdBOC45MzIgOC45MzIgMCAwIDAgMyAxMmE5IDkgMCAwIDAgMTggMGMwLTIuNzQtMS4yMy01LjE4LTMuMTctNi44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUHJlZ25hbnRXb21hbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNGMwLTEuMTEuODktMiAyLTJzMiAuODkgMiAyLS44OSAyLTIgMi0yLS44OS0yLTJ6bTcgOWEzLjI4NSAzLjI4NSAwIDAgMC0yLTNjMC0xLjY2LTEuMzQtMy0zLTNzLTMgMS4zNC0zIDN2N2gydjVoM3YtNWgzdi00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQcmV2aWV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YTIgMiAwIDAgMC0yLTJ6bTAgMTZINVY3aDE0djEyem0tNS41LTZjMCAuODMtLjY3IDEuNS0xLjUgMS41cy0xLjUtLjY3LTEuNS0xLjUuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjV6TTEyIDljLTIuNzMgMC01LjA2IDEuNjYtNiA0IC45NCAyLjM0IDMuMjcgNCA2IDRzNS4wNi0xLjY2IDYtNGMtLjk0LTIuMzQtMy4yNy00LTYtNHptMCA2LjVhMi41IDIuNSAwIDAgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFByaW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgOEg1Yy0xLjY2IDAtMyAxLjM0LTMgM3Y2aDR2NGgxMnYtNGg0di02YzAtMS42Ni0xLjM0LTMtMy0zem0tMyAxMUg4di01aDh2NXptMy03Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bS0xLTlINnY0aDEyVjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFByaXZhY3lUaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxIDMgNXY2YzAgNS41NSAzLjg0IDEwLjc0IDkgMTIgNS4xNi0xLjI2IDktNi40NSA5LTEyVjVsLTktNHptLTEgNmgydjJoLTJWN3ptMCA0aDJ2NmgtMnYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUHJpdmF0ZUNvbm5lY3Rpdml0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjkzIDExYy0uNDktMy4zOS0zLjQtNi02LjkzLTZzLTYuNDQgMi42MS02LjkzIDZIMnYyaDMuMDdjLjQ5IDMuMzkgMy40IDYgNi45MyA2czYuNDQtMi42MSA2LjkzLTZIMjJ2LTJoLTMuMDd6TTE1IDE0LjVjMCAuNTUtLjQ1IDEtMSAxaC00Yy0uNTUgMC0xLS40NS0xLTF2LTNjMC0uNTUuNDUtMSAxLTF2LTFhMiAyIDAgMCAxIDIuMzQtMS45N2MuOTguMTYgMS42NiAxLjA4IDEuNjYgMi4wOHYuODljLjU1IDAgMSAuNDUgMSAxdjN6TTEyLjc1IDEzYzAgLjQxLS4zNC43NS0uNzUuNzVzLS43NS0uMzQtLjc1LS43NS4zNC0uNzUuNzUtLjc1Ljc1LjM0Ljc1Ljc1ek0xMyA5LjV2MWgtMnYtMWMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFByb2R1Y3Rpb25RdWFudGl0eUxpbWl0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDEwaC0yVjhoMnYyem0wLTRoLTJWMWgydjV6TTcgMThjLTEuMSAwLTEuOTkuOS0xLjk5IDJTNS45IDIyIDcgMjJzMi0uOSAyLTItLjktMi0yLTJ6bTEwIDBjLTEuMSAwLTEuOTkuOS0xLjk5IDJzLjg5IDIgMS45OSAyIDItLjkgMi0yLS45LTItMi0yem0tOC45LTVoNy40NWMuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNMMjEgNC45NiAxOS4yNSA0bC0zLjcgN0g4LjUzTDQuMjcgMkgxdjJoMmwzLjYgNy41OS0xLjM1IDIuNDRDNC41MiAxNS4zNyA1LjQ4IDE3IDcgMTdoMTJ2LTJIN2wxLjEtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUHVibGlzaGVkV2l0aENoYW5nZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNy42NiA5LjUzLTcuMDcgNy4wNy00LjI0LTQuMjQgMS40MS0xLjQxIDIuODMgMi44MyA1LjY2LTUuNjYgMS40MSAxLjQxek00IDEyYzAtMi4zMyAxLjAyLTQuNDIgMi42Mi01Ljg4TDkgOC41di02SDNsMi4yIDIuMkMzLjI0IDYuNTIgMiA5LjExIDIgMTJjMCA1LjE5IDMuOTUgOS40NSA5IDkuOTV2LTIuMDJjLTMuOTQtLjQ5LTctMy44Ni03LTcuOTN6bTE4IDBjMC01LjE5LTMuOTUtOS40NS05LTkuOTV2Mi4wMmMzLjk0LjQ5IDcgMy44NiA3IDcuOTMgMCAyLjMzLTEuMDIgNC40Mi0yLjYyIDUuODhMMTUgMTUuNXY2aDZsLTIuMi0yLjJjMS45Ni0xLjgyIDMuMi00LjQxIDMuMi03LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFF1ZXJ5QnVpbGRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSA3SDExdjZsNS4yNSAzLjE1Ljc1LTEuMjMtNC41LTIuNjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFF1ZXN0aW9uQW5zd2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNmgtMnY5SDZ2MmMwIC41NS40NSAxIDEgMWgxMWw0IDRWN2MwLS41NS0uNDUtMS0xLTF6bS00IDZWM2MwLS41NS0uNDUtMS0xLTFIM2MtLjU1IDAtMSAuNDUtMSAxdjE0bDQtNGgxMGMuNTUgMCAxLS40NSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFF1ZXN0aW9uTWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjA3IDEyLjg1Yy43Ny0xLjM5IDIuMjUtMi4yMSAzLjExLTMuNDQuOTEtMS4yOS40LTMuNy0yLjE4LTMuNy0xLjY5IDAtMi41MiAxLjI4LTIuODcgMi4zNEw2LjU0IDYuOTZDNy4yNSA0LjgzIDkuMTggMyAxMS45OSAzYzIuMzUgMCAzLjk2IDEuMDcgNC43OCAyLjQxLjcgMS4xNSAxLjExIDMuMy4wMyA0LjktMS4yIDEuNzctMi4zNSAyLjMxLTIuOTcgMy40NS0uMjUuNDYtLjM1Ljc2LS4zNSAyLjI0aC0yLjg5Yy0uMDEtLjc4LS4xMy0yLjA1LjQ4LTMuMTV6TTE0IDIwYzAgMS4xLS45IDItMiAycy0yLS45LTItMiAuOS0yIDItMiAyIC45IDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUXVpY2tyZXBseSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDRjMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDIybDQtNGg5di04aDdWNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIuNSAxNmgtMi4ybDEuNy00aC01djZoMnY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZWJhc2VFZGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxOVwiLFwiY3lcIjpcIjVcIixcInJcIjpcIjNcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNzYgOS4yNCAxNSA1IDEwLjc2Ljc2IDkuMzQgMi4xNyAxMS4xNyA0SDcuODJDNy40IDIuODQgNi4zIDIgNSAyIDMuMzQgMiAyIDMuMzQgMiA1YzAgMS4zLjg0IDIuNCAyIDIuODJ2OC4zN0MyLjg0IDE2LjYgMiAxNy43IDIgMTljMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtM2MwLTEuMy0uODQtMi40LTItMi44MlY3LjgyYy44NS0uMzEgMS41MS0uOTcgMS44Mi0xLjgyaDMuMzZMOS4zNCA3LjgzbDEuNDIgMS40MXpNMTAgMTl2M2gzbDYuMjYtNi4yNi0zLTN6TTIwLjEyIDEwLjI5YS45OTYuOTk2IDAgMCAwLTEuNDEgMGwtMS4zOCAxLjM4IDMgMyAxLjM4LTEuMzhhLjk5Ni45OTYgMCAwIDAgMC0xLjQxbC0xLjU5LTEuNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlY2VpcHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxN0g2di0yaDEydjJ6bTAtNEg2di0yaDEydjJ6bTAtNEg2VjdoMTJ2MnpNMyAyMmwxLjUtMS41TDYgMjJsMS41LTEuNUw5IDIybDEuNS0xLjVMMTIgMjJsMS41LTEuNUwxNSAyMmwxLjUtMS41TDE4IDIybDEuNS0xLjVMMjEgMjJWMmwtMS41IDEuNUwxOCAybC0xLjUgMS41TDE1IDJsLTEuNSAxLjVMMTIgMmwtMS41IDEuNUw5IDIgNy41IDMuNSA2IDIgNC41IDMuNSAzIDJ2MjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlY29yZFZvaWNlT3ZlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjlcIixcInJcIjpcIjRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxNWMtMi42NyAwLTggMS4zNC04IDR2MmgxNnYtMmMwLTIuNjYtNS4zMy00LTgtNHptNy43Ni05LjY0LTEuNjggMS42OWMuODQgMS4xOC44NCAyLjcxIDAgMy44OWwxLjY4IDEuNjljMi4wMi0yLjAyIDIuMDItNS4wNyAwLTcuMjd6TTIwLjA3IDJsLTEuNjMgMS42M2MyLjc3IDMuMDIgMi43NyA3LjU2IDAgMTAuNzRMMjAuMDcgMTZjMy45LTMuODkgMy45MS05Ljk1IDAtMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlZGVlbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLTIuMThjLjExLS4zMS4xOC0uNjUuMTgtMWEyLjk5NiAyLjk5NiAwIDAgMC01LjUtMS42NWwtLjUuNjctLjUtLjY4QzEwLjk2IDIuNTQgMTAuMDUgMiA5IDIgNy4zNCAyIDYgMy4zNCA2IDVjMCAuMzUuMDcuNjkuMTggMUg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOWMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY4YzAtMS4xMS0uODktMi0yLTJ6bS01LTJjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXpNOSA0Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTExIDE1SDR2LTJoMTZ2MnptMC01SDRWOGg1LjA4TDcgMTAuODMgOC42MiAxMiAxMSA4Ljc2bDEtMS4zNiAxIDEuMzZMMTUuMzggMTIgMTcgMTAuODMgMTQuOTIgOEgyMHY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZW1vdmVEb25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMS43OSAxMiA1LjU4IDUuNTlMNS45NiAxOSAuMzcgMTMuNDEgMS43OSAxMnptLjQ1LTcuNzhMMTIuOSAxNC44OWwtMS4yOCAxLjI4TDcuNDQgMTJsLTEuNDEgMS40MUwxMS42MiAxOWwyLjY5LTIuNjkgNC44OSA0Ljg5IDEuNDEtMS40MUwzLjY1IDIuODEgMi4yNCA0LjIyem0xNC45IDkuMjdMMjMuNjIgNyAyMi4yIDUuNTlsLTYuNDggNi40OCAxLjQyIDEuNDJ6TTE3Ljk2IDdsLTEuNDEtMS40MS0zLjY1IDMuNjYgMS40MSAxLjQxTDE3Ljk2IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlbW92ZVNob3BwaW5nQ2FydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyLjczIDIyLjczIDIuNzcgMi43NyAyIDJsLS43My0uNzNMMCAyLjU0bDQuMzkgNC4zOSAyLjIxIDQuNjYtMS4zNSAyLjQ1Yy0uMTYuMjgtLjI1LjYxLS4yNS45NiAwIDEuMS45IDIgMiAyaDcuNDZsMS4zOCAxLjM4QTEuOTk3IDEuOTk3IDAgMCAwIDE3IDIyYy42NyAwIDEuMjYtLjMzIDEuNjItLjg0TDIxLjQ2IDI0bDEuMjctMS4yN3pNNy40MiAxNWMtLjE0IDAtLjI1LS4xMS0uMjUtLjI1bC4wMy0uMTIuOS0xLjYzaDIuMzZsMiAySDcuNDJ6bTguMTMtMmMuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNsMy41OC02LjQ5QTEuMDAzIDEuMDAzIDAgMCAwIDIwIDRINi41NGw5LjAxIDl6TTcgMThjLTEuMSAwLTEuOTkuOS0xLjk5IDJTNS45IDIyIDcgMjJzMi0uOSAyLTItLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlb3JkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE1aDE4di0ySDN2MnptMCA0aDE4di0ySDN2MnptMC04aDE4VjlIM3Yyem0wLTZ2MmgxOFY1SDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlcGFydGl0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAyMWgxOHYtNkgzdjZ6bTcuMzMtMnYtMmgzLjMzdjJoLTMuMzN6TTE5IDE5aC0zLjMzdi0ySDE5djJ6TTUgMTdoMy4zM3YySDV2LTJ6TTYgMTBsMS40Mi0xLjQyTDUuODMgN0gxN2MxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDJIM3YyaDE0YzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00SDUuODNsMS41OS0xLjU5TDYgMiAyIDZsNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZXBvcnRQcm9ibGVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAyMWgyMkwxMiAyIDEgMjF6bTEyLTNoLTJ2LTJoMnYyem0wLTRoLTJ2LTRoMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZXF1ZXN0UGFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDJINmMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTEgOWgtNHYxaDNjLjU1IDAgMSAuNDUgMSAxdjNjMCAuNTUtLjQ1IDEtMSAxaC0xdjFoLTJ2LTFIOXYtMmg0di0xaC0zYy0uNTUgMC0xLS40NS0xLTF2LTNjMC0uNTUuNDUtMSAxLTFoMVY4aDJ2MWgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlc3RvcmVGcm9tVHJhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNHpNNiA3djEyYzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3SDZ6bTggN3Y0aC00di00SDhsNC00IDQgNGgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVzdG9yZVBhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAySDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNCAyMGMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bS0yIDE2Yy0yLjA1IDAtMy44MS0xLjI0LTQuNTgtM2gxLjcxYy42My45IDEuNjggMS41IDIuODcgMS41IDEuOTMgMCAzLjUtMS41NyAzLjUtMy41UzEzLjkzIDkuNSAxMiA5LjVhMy41IDMuNSAwIDAgMC0zLjEgMS45bDEuNiAxLjZoLTRWOWwxLjMgMS4zQzguNjkgOC45MiAxMC4yMyA4IDEyIDhjMi43NiAwIDUgMi4yNCA1IDVzLTIuMjQgNS01IDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlc3RvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAzYTkgOSAwIDAgMC05IDlIMWwzLjg5IDMuODkuMDcuMTRMOSAxMkg2YzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDctMy4xMyA3LTcgN2MtMS45MyAwLTMuNjgtLjc5LTQuOTQtMi4wNmwtMS40MiAxLjQyQTguOTU0IDguOTU0IDAgMCAwIDEzIDIxYTkgOSAwIDAgMCAwLTE4em0tMSA1djVsNC4yOCAyLjU0LjcyLTEuMjEtMy41LTIuMDhWOEgxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUm9ja2V0TGF1bmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4xOSA2LjM1Yy0yLjA0IDIuMjktMy40NCA1LjU4LTMuNTcgNS44OUwyIDEwLjY5bDQuMDUtNC4wNWMuNDctLjQ3IDEuMTUtLjY4IDEuODEtLjU1bDEuMzMuMjZ6TTExLjE3IDE3czMuNzQtMS41NSA1Ljg5LTMuN2M1LjQtNS40IDQuNS05LjYyIDQuMjEtMTAuNTctLjk1LS4zLTUuMTctMS4xOS0xMC41NyA0LjIxQzguNTUgOS4wOSA3IDEyLjgzIDcgMTIuODNMMTEuMTcgMTd6bTYuNDgtMi4xOWMtMi4yOSAyLjA0LTUuNTggMy40NC01Ljg5IDMuNTdMMTMuMzEgMjJsNC4wNS00LjA1Yy40Ny0uNDcuNjgtMS4xNS41NS0xLjgxbC0uMjYtMS4zM3pNOSAxOGMwIC44My0uMzQgMS41OC0uODggMi4xMkM2Ljk0IDIxLjMgMiAyMiAyIDIycy43LTQuOTQgMS44OC02LjEyQTIuOTk2IDIuOTk2IDAgMCAxIDkgMTh6bTQtOWMwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSb2NrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyLjVzNC41IDIuMDQgNC41IDEwLjVjMCAyLjQ5LTEuMDQgNS41Ny0xLjYgN0g5LjFjLS41Ni0xLjQzLTEuNi00LjUxLTEuNi03QzcuNSA0LjU0IDEyIDIuNSAxMiAyLjV6bTIgOC41YzAtMS4xLS45LTItMi0ycy0yIC45LTIgMiAuOSAyIDIgMiAyLS45IDItMnptLTYuMzEgOS41MmMtLjQ4LTEuMjMtMS41Mi00LjE3LTEuNjctNi44N2wtMS4xMy43NWMtLjU2LjM4LS44OSAxLS44OSAxLjY3VjIybDMuNjktMS40OHpNMjAgMjJ2LTUuOTNjMC0uNjctLjMzLTEuMjktLjg5LTEuNjZsLTEuMTMtLjc1Yy0uMTUgMi42OS0xLjIgNS42NC0xLjY3IDYuODdMMjAgMjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJvb20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzguMTMgMiA1IDUuMTMgNSA5YzAgNS4yNSA3IDEzIDcgMTNzNy03Ljc1IDctMTNjMC0zLjg3LTMuMTMtNy03LTd6bTAgOS41YTIuNSAyLjUgMCAwIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSb3VuZGVkQ29ybmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTloMnYyaC0ydi0yem0wLTJoMnYtMmgtMnYyek0zIDEzaDJ2LTJIM3Yyem0wIDRoMnYtMkgzdjJ6bTAtOGgyVjdIM3Yyem0wLTRoMlYzSDN2MnptNCAwaDJWM0g3djJ6bTggMTZoMnYtMmgtMnYyem0tNCAwaDJ2LTJoLTJ2MnptNCAwaDJ2LTJoLTJ2MnptLTggMGgydi0ySDd2MnptLTQgMGgydi0ySDN2MnpNMjEgOGMwLTIuNzYtMi4yNC01LTUtNWgtNXYyaDVjMS42NSAwIDMgMS4zNSAzIDN2NWgyVjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJvd2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNSAxNC41IDQgMTlsMS41IDEuNUw5IDE3aDJsLTIuNS0yLjV6TTE1IDFjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem02IDIwLjAxTDE4IDI0bC0yLjk5LTMuMDFWMTkuNWwtNy4xLTcuMDljLS4zMS4wNS0uNjEuMDctLjkxLjA3di0yLjE2YzEuNjYuMDMgMy42MS0uODcgNC42Ny0yLjA0bDEuNC0xLjU1Yy4zNS0uMzkuOTktLjczIDEuNjUtLjczaC4wM0MxNS45OSA2LjAxIDE3IDcuMDIgMTcgOC4yNnY1Ljc1YzAgLjg0LS4zNSAxLjYxLS45MiAyLjE2bC0zLjU4LTMuNTh2LTIuMjdjLS42My41Mi0xLjQzIDEuMDItMi4yOSAxLjM5TDE2LjUgMThIMThsMyAzLjAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSdWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNTQgMTEgMTMgNy40NmwxLjQxLTEuNDEgMi4xMiAyLjEyIDQuMjQtNC4yNCAxLjQxIDEuNDFMMTYuNTQgMTF6TTExIDdIMnYyaDlWN3ptMTAgNi40MUwxOS41OSAxMiAxNyAxNC41OSAxNC40MSAxMiAxMyAxMy40MSAxNS41OSAxNiAxMyAxOC41OSAxNC40MSAyMCAxNyAxNy40MSAxOS41OSAyMCAyMSAxOC41OSAxOC40MSAxNiAyMSAxMy40MXpNMTEgMTVIMnYyaDl2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNhdGVsbGl0ZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1LjQ0LjU5LTMuMTggMy4xOGMtLjc4Ljc4LS43OCAyLjA1IDAgMi44M2wxLjI0IDEuMjQtLjcxLjcxLTEuMjQtMS4yNWMtLjc4LS43OC0yLjA1LS43OC0yLjgzIDBMNy4zIDguNzJjLS43OC43OC0uNzggMi4wNSAwIDIuODNsMS4yNCAxLjI0LS43MS43MS0xLjIzLTEuMjVjLS43OC0uNzgtMi4wNS0uNzgtMi44MyAwTC41OSAxNS40M2MtLjc4Ljc4LS43OCAyLjA1IDAgMi44M2wzLjU0IDMuNTRjLjc4Ljc4IDIuMDUuNzggMi44MyAwbDMuMTgtMy4xOGMuNzgtLjc4Ljc4LTIuMDUgMC0yLjgzTDguOSAxNC41NWwuNzEtLjcxIDEuMjQgMS4yNGMuNzguNzggMi4wNS43OCAyLjgzIDBsMS40MS0xLjQxYy43OC0uNzguNzgtMi4wNSAwLTIuODNMMTMuODQgOS42bC43MS0uNzEgMS4yNCAxLjI0Yy43OC43OCAyLjA1Ljc4IDIuODMgMGwzLjE4LTMuMThjLjc4LS43OC43OC0yLjA1IDAtMi44M0wxOC4yNi41OGMtLjc4LS43OC0yLjA0LS43OC0yLjgyLjAxek02LjYgMTkuMzJsLTEuMDYgMS4wNkwyIDE2Ljg1bDEuMDYtMS4wNiAzLjU0IDMuNTN6bTIuMTItMi4xMi0xLjA2IDEuMDYtMy41NC0zLjU0IDEuMDYtMS4wNiAzLjU0IDMuNTR6bTkuNTQtOS41NEwxNy4yIDguNzJsLTMuNTQtMy41NCAxLjA2LTEuMDYgMy41NCAzLjU0em0yLjEyLTIuMTJMMTkuMzIgNi42bC0zLjU0LTMuNTRMMTYuODUgMmwzLjUzIDMuNTR6TTE0IDIxdjJhOSA5IDAgMCAwIDktOWgtMmMwIDMuODctMy4xMyA3LTcgN3ptMC00djJjMi43NiAwIDUtMi4yNCA1LTVoLTJjMCAxLjY2LTEuMzQgMy0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNhdmVkU2VhcmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QTYuNDcxIDYuNDcxIDAgMCAwIDE2IDkuNSA2LjUgNi41IDAgMSAwIDkuNSAxNmMxLjYxIDAgMy4wOS0uNTkgNC4yMy0xLjU3bC4yNy4yOHYuNzlsNSA0Ljk5TDIwLjQ5IDE5bC00Ljk5LTV6bS02IDBDNy4wMSAxNCA1IDExLjk5IDUgOS41UzcuMDEgNSA5LjUgNSAxNCA3LjAxIDE0IDkuNSAxMS45OSAxNCA5LjUgMTR6bS0yLjE3LTEuNSAyLjE0LTEuNTMgMi4xNCAxLjUzLS44My0yLjQ2IDIuMTUtMS41aC0yLjYyTDkuNDcgNmwtLjg0IDIuNTRINmwyLjE0IDEuNDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNhdmluZ3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOS44MyA3LjUtMi4yNy0yLjI3Yy4wNy0uNDIuMTgtLjgxLjMyLTEuMTVBMS40OTggMS40OTggMCAwIDAgMTYuNSAyYy0xLjY0IDAtMy4wOS43OS00IDJoLTVDNC40NiA0IDIgNi40NiAyIDkuNVM0LjUgMjEgNC41IDIxSDEwdi0yaDJ2Mmg1LjVsMS42OC01LjU5IDIuODItLjk0VjcuNWgtMi4xN3pNMTMgOUg4VjdoNXYyem0zIDJjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2NoZWR1bGVTZW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41IDEyLjVIMTV2NGwzIDIgLjc1LTEuMjMtMi4yNS0xLjUyVjEyLjV6TTE2IDkgMiAzdjdsOSAyLTkgMnY3bDcuMjctMy4xMUMxMC4wOSAyMC44MyAxMi43OSAyMyAxNiAyM2MzLjg2IDAgNy0zLjE0IDctN3MtMy4xNC03LTctN3ptMCAxMmMtMi43NSAwLTQuOTgtMi4yMi01LTQuOTd2LS4wN2E1LjAwOCA1LjAwOCAwIDAgMSA1LTQuOTdjMi43NiAwIDUgMi4yNCA1IDVTMTguNzYgMjEgMTYgMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNjaGVkdWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi41IDdIMTF2Nmw1LjI1IDMuMTUuNzUtMS4yMy00LjUtMi42N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2VhcmNoT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QTYuNDcxIDYuNDcxIDAgMCAwIDE2IDkuNSA2LjUgNi41IDAgMCAwIDkuNSAzQzYuMDggMyAzLjI4IDUuNjQgMy4wMyA5aDIuMDJDNS4zIDYuNzUgNy4xOCA1IDkuNSA1IDExLjk5IDUgMTQgNy4wMSAxNCA5LjVTMTEuOTkgMTQgOS41IDE0Yy0uMTcgMC0uMzMtLjAzLS41LS4wNXYyLjAyYy4xNy4wMi4zMy4wMy41LjAzIDEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi40NyAxMC44MiA0IDEzLjI5bC0yLjQ3LTIuNDctLjcxLjcxTDMuMjkgMTQgLjgyIDE2LjQ3bC43MS43MUw0IDE0LjcxbDIuNDcgMi40Ny43MS0uNzFMNC43MSAxNGwyLjQ3LTIuNDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNlYXJjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgMTRoLS43OWwtLjI4LS4yN0E2LjQ3MSA2LjQ3MSAwIDAgMCAxNiA5LjUgNi41IDYuNSAwIDEgMCA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZWdtZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDE4aDEydi0ySDl2MnpNMyA2djJoMThWNkgzem02IDdoMTJ2LTJIOXYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZW5kQW5kQXJjaGl2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTBoLTNMMiAzdjdsOSAyLTkgMnY3bDgtMy41VjIxYzAgMS4xLjkgMiAyIDJoOWMxLjEgMCAyLS45IDItMnYtOWMwLTEuMS0uOS0yLTItMnptMCAxMWgtOXYtOWg5djl6bS00LjUtMUwxMyAxNmgydi0zaDN2M2gybC0zLjUgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2Vuc29yc09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguMTQgMTAuOTZjLS4wOS4zMy0uMTQuNjgtLjE0IDEuMDQgMCAxLjEuNDUgMi4xIDEuMTcgMi44M2wtMS40MiAxLjQyQTYuMDE4IDYuMDE4IDAgMCAxIDYgMTJjMC0uOTMuMjEtMS44LjU4LTIuNTlMNS4xMSA3Ljk0QTcuODk3IDcuODk3IDAgMCAwIDQgMTJjMCAyLjIxLjkgNC4yMSAyLjM1IDUuNjVsLTEuNDIgMS40MkE5Ljk2OSA5Ljk2OSAwIDAgMSAyIDEyYzAtMi4wNC42MS0zLjkzIDEuNjYtNS41MUwxLjM5IDQuMjIgMi44IDIuODFsMTguMzggMTguMzgtMS40MSAxLjQxTDguMTQgMTAuOTZ6bTkuMjggMy42M2MuMzctLjc5LjU4LTEuNjYuNTgtMi41OSAwLTEuNjYtLjY3LTMuMTYtMS43Ni00LjI0bC0xLjQyIDEuNDJhMy45NTEgMy45NTEgMCAwIDEgMS4wNCAzLjg2bDEuNTYgMS41NXpNMjAgMTJjMCAxLjQ4LS40IDIuODctMS4xMSA0LjA2bDEuNDUgMS40NUE5LjkxIDkuOTEgMCAwIDAgMjIgMTJjMC0yLjc2LTEuMTItNS4yNi0yLjkzLTcuMDdsLTEuNDIgMS40MkE3Ljk0IDcuOTQgMCAwIDEgMjAgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNlbnNvcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03Ljc2IDE2LjI0QzYuNjcgMTUuMTYgNiAxMy42NiA2IDEycy42Ny0zLjE2IDEuNzYtNC4yNGwxLjQyIDEuNDJDOC40NSA5LjkgOCAxMC45IDggMTJjMCAxLjEuNDUgMi4xIDEuMTcgMi44M2wtMS40MSAxLjQxem04LjQ4IDBDMTcuMzMgMTUuMTYgMTggMTMuNjYgMTggMTJzLS42Ny0zLjE2LTEuNzYtNC4yNGwtMS40MiAxLjQyQzE1LjU1IDkuOSAxNiAxMC45IDE2IDEyYzAgMS4xLS40NSAyLjEtMS4xNyAyLjgzbDEuNDEgMS40MXpNMTIgMTBjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem04IDJjMCAyLjIxLS45IDQuMjEtMi4zNSA1LjY1bDEuNDIgMS40MkMyMC44OCAxNy4yNiAyMiAxNC43NiAyMiAxMnMtMS4xMi01LjI2LTIuOTMtNy4wN2wtMS40MiAxLjQyQTcuOTQgNy45NCAwIDAgMSAyMCAxMnpNNi4zNSA2LjM1IDQuOTMgNC45M0MzLjEyIDYuNzQgMiA5LjI0IDIgMTJzMS4xMiA1LjI2IDIuOTMgNy4wN2wxLjQyLTEuNDJDNC45IDE2LjIxIDQgMTQuMjEgNCAxMnMuOS00LjIxIDIuMzUtNS42NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2V0dGluZ3NBY2Nlc3NpYmlsaXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNSA0Yy0yLjYxLjctNS42NyAxLTguNSAxcy01Ljg5LS4zLTguNS0xTDMgNmMxLjg2LjUgNCAuODMgNiAxdjEyaDJ2LTZoMnY2aDJWN2MyLS4xNyA0LjE0LS41IDYtMWwtLjUtMnpNMTIgNGMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6TTcgMjRoMnYtMkg3djJ6bTQgMGgydi0yaC0ydjJ6bTQgMGgydi0yaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNldHRpbmdzQXBwbGljYXRpb25zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTBjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem03LTdINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJ6bS0xLjc1IDljMCAuMjMtLjAyLjQ2LS4wNS42OGwxLjQ4IDEuMTZjLjEzLjExLjE3LjMuMDguNDVsLTEuNCAyLjQyYy0uMDkuMTUtLjI3LjIxLS40My4xNWwtMS43NC0uN2MtLjM2LjI4LS43Ni41MS0xLjE4LjY5bC0uMjYgMS44NWMtLjAzLjE3LS4xOC4zLS4zNS4zaC0yLjhjLS4xNyAwLS4zMi0uMTMtLjM1LS4yOWwtLjI2LTEuODVjLS40My0uMTgtLjgyLS40MS0xLjE4LS42OWwtMS43NC43Yy0uMTYuMDYtLjM0IDAtLjQzLS4xNWwtMS40LTIuNDJhLjM1My4zNTMgMCAwIDEgLjA4LS40NWwxLjQ4LTEuMTZjLS4wMy0uMjMtLjA1LS40Ni0uMDUtLjY5IDAtLjIzLjAyLS40Ni4wNS0uNjhsLTEuNDgtMS4xNmEuMzUzLjM1MyAwIDAgMS0uMDgtLjQ1bDEuNC0yLjQyYy4wOS0uMTUuMjctLjIxLjQzLS4xNWwxLjc0LjdjLjM2LS4yOC43Ni0uNTEgMS4xOC0uNjlsLjI2LTEuODVjLjAzLS4xNy4xOC0uMy4zNS0uM2gyLjhjLjE3IDAgLjMyLjEzLjM1LjI5bC4yNiAxLjg1Yy40My4xOC44Mi40MSAxLjE4LjY5bDEuNzQtLjdjLjE2LS4wNi4zNCAwIC40My4xNWwxLjQgMi40MmMuMDkuMTUuMDUuMzQtLjA4LjQ1bC0xLjQ4IDEuMTZjLjAzLjIzLjA1LjQ2LjA1LjY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZXR0aW5nc0JhY2t1cFJlc3RvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxMmMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDIgLjkgMiAyIDIgMi0uOSAyLTJ6bS0yLTlhOSA5IDAgMCAwLTkgOUgwbDQgNCA0LTRINWMwLTMuODcgMy4xMy03IDctN3M3IDMuMTMgNyA3YTYuOTk1IDYuOTk1IDAgMCAxLTExLjA2IDUuN2wtMS40MiAxLjQ0QTkgOSAwIDEgMCAxMiAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZXR0aW5nc0JsdWV0b290aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDI0aDJ2LTJoLTJ2MnptLTQgMGgydi0ySDd2MnptOCAwaDJ2LTJoLTJ2MnptMi43MS0xOC4yOUwxMiAwaC0xdjcuNTlMNi40MSAzIDUgNC40MSAxMC41OSAxMCA1IDE1LjU5IDYuNDEgMTcgMTEgMTIuNDFWMjBoMWw1LjcxLTUuNzEtNC4zLTQuMjkgNC4zLTQuMjl6TTEzIDMuODNsMS44OCAxLjg4TDEzIDcuNTlWMy44M3ptMS44OCAxMC40NkwxMyAxNi4xN3YtMy43NmwxLjg4IDEuODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNldHRpbmdzQnJpZ2h0bmVzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2LjAxSDNWNC45OWgxOHYxNC4wMnpNOCAxNmgyLjVsMS41IDEuNSAxLjUtMS41SDE2di0yLjVsMS41LTEuNS0xLjUtMS41VjhoLTIuNUwxMiA2LjUgMTAuNSA4SDh2Mi41TDYuNSAxMiA4IDEzLjVWMTZ6bTQtN2MxLjY2IDAgMyAxLjM0IDMgM3MtMS4zNCAzLTMgM1Y5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZXR0aW5nc0NlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDI0aDJ2LTJIN3Yyem00IDBoMnYtMmgtMnYyem00IDBoMnYtMmgtMnYyek0xNiAuMDEgOCAwQzYuOSAwIDYgLjkgNiAydjE2YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlYyYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNiAxNkg4VjRoOHYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2V0dGluZ3NFdGhlcm5ldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNzcgNi43NiA2LjIzIDUuNDguODIgMTJsNS40MSA2LjUyIDEuNTQtMS4yOEwzLjQyIDEybDQuMzUtNS4yNHpNNyAxM2gydi0ySDd2MnptMTAtMmgtMnYyaDJ2LTJ6bS02IDJoMnYtMmgtMnYyem02Ljc3LTcuNTItMS41NCAxLjI4TDIwLjU4IDEybC00LjM1IDUuMjQgMS41NCAxLjI4TDIzLjE4IDEybC01LjQxLTYuNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNldHRpbmdzSW5wdXRBbnRlbm5hIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNWMtMy44NyAwLTcgMy4xMy03IDdoMmMwLTIuNzYgMi4yNC01IDUtNXM1IDIuMjQgNSA1aDJjMC0zLjg3LTMuMTMtNy03LTd6bTEgOS4yOWMuODgtLjM5IDEuNS0xLjI2IDEuNS0yLjI5YTIuNSAyLjUgMCAwIDAtNSAwYzAgMS4wMi42MiAxLjkgMS41IDIuMjl2My4zTDcuNTkgMjEgOSAyMi40MWwzLTMgMyAzTDE2LjQxIDIxIDEzIDE3LjU5di0zLjN6TTEyIDFDNS45MyAxIDEgNS45MyAxIDEyaDJhOSA5IDAgMCAxIDE4IDBoMmMwLTYuMDctNC45My0xMS0xMS0xMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2V0dGluZ3NJbnB1dENvbXBvbmVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXY0SDF2Nmg2VjZINVYyem00IDE0YzAgMS4zLjg0IDIuNCAyIDIuODJWMjNoMnYtNC4xOGMxLjE2LS40MSAyLTEuNTEgMi0yLjgydi0ySDl2MnptLTggMGMwIDEuMy44NCAyLjQgMiAyLjgyVjIzaDJ2LTQuMThDNi4xNiAxOC40IDcgMTcuMyA3IDE2di0ySDF2MnpNMjEgNlYyYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxdjRoLTJ2Nmg2VjZoLTJ6bS04LTRjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2NEg5djZoNlY2aC0yVjJ6bTQgMTRjMCAxLjMuODQgMi40IDIgMi44MlYyM2gydi00LjE4YzEuMTYtLjQxIDItMS41MSAyLTIuODJ2LTJoLTZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2V0dGluZ3NJbnB1dENvbXBvc2l0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXY0SDF2Nmg2VjZINVYyem00IDE0YzAgMS4zLjg0IDIuNCAyIDIuODJWMjNoMnYtNC4xOGMxLjE2LS40MSAyLTEuNTEgMi0yLjgydi0ySDl2MnptLTggMGMwIDEuMy44NCAyLjQgMiAyLjgyVjIzaDJ2LTQuMThDNi4xNiAxOC40IDcgMTcuMyA3IDE2di0ySDF2MnpNMjEgNlYyYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxdjRoLTJ2Nmg2VjZoLTJ6bS04LTRjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2NEg5djZoNlY2aC0yVjJ6bTQgMTRjMCAxLjMuODQgMi40IDIgMi44MlYyM2gydi00LjE4YzEuMTYtLjQxIDItMS41MSAyLTIuODJ2LTJoLTZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2V0dGluZ3NJbnB1dEhkbWkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA3VjRjMC0xLjEtLjktMi0yLTJIOGMtMS4xIDAtMiAuOS0yIDJ2M0g1djZsMyA2djNoOHYtM2wzLTZWN2gtMXpNOCA0aDh2M2gtMlY1aC0xdjJoLTJWNWgtMXYySDhWNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2V0dGluZ3NJbnB1dFN2aWRlbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTEuNWMwLS44My0uNjctMS41LTEuNS0xLjVTNSAxMC42NyA1IDExLjUgNS42NyAxMyA2LjUgMTMgOCAxMi4zMyA4IDExLjV6bTctNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTNDOS42NyA1IDkgNS42NyA5IDYuNVM5LjY3IDggMTAuNSA4aDNjLjgzIDAgMS41LS42NyAxLjUtMS41ek04LjUgMTVjLS44MyAwLTEuNS42Ny0xLjUgMS41UzcuNjcgMTggOC41IDE4czEuNS0uNjcgMS41LTEuNVM5LjMzIDE1IDguNSAxNXpNMTIgMUM1LjkzIDEgMSA1LjkzIDEgMTJzNC45MyAxMSAxMSAxMSAxMS00LjkzIDExLTExUzE4LjA3IDEgMTIgMXptMCAyMGMtNC45NiAwLTktNC4wNC05LTlzNC4wNC05IDktOSA5IDQuMDQgOSA5LTQuMDQgOS05IDl6bTUuNS0xMWMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6bS0yIDVjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZXR0aW5nc092ZXJzY2FuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMDEgNS41IDEwIDhoNGwtMS45OS0yLjV6TTE4IDEwdjRsMi41LTEuOTlMMTggMTB6TTYgMTBsLTIuNSAyLjAxTDYgMTR2LTR6bTggNmgtNGwyLjAxIDIuNUwxNCAxNnptNy0xM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTYuMDFIM1Y0Ljk5aDE4djE0LjAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZXR0aW5nc1Bob25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgOWgtMnYyaDJWOXptNCAwaC0ydjJoMlY5em0zIDYuNWMtMS4yNSAwLTIuNDUtLjItMy41Ny0uNTdhMS4wMiAxLjAyIDAgMCAwLTEuMDIuMjRsLTIuMiAyLjJhMTUuMDc0IDE1LjA3NCAwIDAgMS02LjU5LTYuNThsMi4yLTIuMjFjLjI4LS4yNy4zNi0uNjYuMjUtMS4wMUExMS4zNiAxMS4zNiAwIDAgMSA4LjUgNGMwLS41NS0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxIDAgOS4zOSA3LjYxIDE3IDE3IDE3IC41NSAwIDEtLjQ1IDEtMXYtMy41YzAtLjU1LS40NS0xLTEtMXpNMTkgOXYyaDJWOWgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2V0dGluZ3NQb3dlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMjRoMnYtMkg3djJ6bTQgMGgydi0yaC0ydjJ6bTItMjJoLTJ2MTBoMlYyem0zLjU2IDIuNDQtMS40NSAxLjQ1QTUuOTY5IDUuOTY5IDAgMCAxIDE4IDExYzAgMy4zMS0yLjY5IDYtNiA2cy02LTIuNjktNi02YzAtMi4xNyAxLjE2LTQuMDYgMi44OC01LjEyTDcuNDQgNC40NEE3Ljk2MSA3Ljk2MSAwIDAgMCA0IDExYzAgNC40MiAzLjU4IDggOCA4czgtMy41OCA4LThjMC0yLjcyLTEuMzYtNS4xMi0zLjQ0LTYuNTZ6TTE1IDI0aDJ2LTJoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2V0dGluZ3NSZW1vdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA5SDljLS41NSAwLTEgLjQ1LTEgMXYxMmMwIC41NS40NSAxIDEgMWg2Yy41NSAwIDEtLjQ1IDEtMVYxMGMwLS41NS0uNDUtMS0xLTF6bS0zIDZjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyek03LjA1IDYuMDVsMS40MSAxLjQxYTUuMDIyIDUuMDIyIDAgMCAxIDcuMDggMGwxLjQxLTEuNDFDMTUuNjggNC43OCAxMy45MyA0IDEyIDRzLTMuNjguNzgtNC45NSAyLjA1ek0xMiAwQzguOTYgMCA2LjIxIDEuMjMgNC4yMiAzLjIybDEuNDEgMS40MUM3LjI2IDMuMDEgOS41MSAyIDEyIDJzNC43NCAxLjAxIDYuMzYgMi42NGwxLjQxLTEuNDFDMTcuNzkgMS4yMyAxNS4wNCAwIDEyIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNldHRpbmdzVm9pY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDI0aDJ2LTJIN3Yyem01LTExYzEuNjYgMCAyLjk5LTEuMzQgMi45OS0zTDE1IDRjMC0xLjY2LTEuMzQtMy0zLTNTOSAyLjM0IDkgNHY2YzAgMS42NiAxLjM0IDMgMyAzem0tMSAxMWgydi0yaC0ydjJ6bTQgMGgydi0yaC0ydjJ6bTQtMTRoLTEuN2MwIDMtMi41NCA1LjEtNS4zIDUuMVM2LjcgMTMgNi43IDEwSDVjMCAzLjQxIDIuNzIgNi4yMyA2IDYuNzJWMjBoMnYtMy4yOGMzLjI4LS40OSA2LTMuMzEgNi02LjcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZXR0aW5ncyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMTQgMTIuOTRjLjA0LS4zLjA2LS42MS4wNi0uOTQgMC0uMzItLjAyLS42NC0uMDctLjk0bDIuMDMtMS41OGEuNDkuNDkgMCAwIDAgLjEyLS42MWwtMS45Mi0zLjMyYS40ODguNDg4IDAgMCAwLS41OS0uMjJsLTIuMzkuOTZjLS41LS4zOC0xLjAzLS43LTEuNjItLjk0bC0uMzYtMi41NGEuNDg0LjQ4NCAwIDAgMC0uNDgtLjQxaC0zLjg0Yy0uMjQgMC0uNDMuMTctLjQ3LjQxbC0uMzYgMi41NGMtLjU5LjI0LTEuMTMuNTctMS42Mi45NGwtMi4zOS0uOTZjLS4yMi0uMDgtLjQ3IDAtLjU5LjIyTDIuNzQgOC44N2MtLjEyLjIxLS4wOC40Ny4xMi42MWwyLjAzIDEuNThjLS4wNS4zLS4wOS42My0uMDkuOTRzLjAyLjY0LjA3Ljk0bC0yLjAzIDEuNThhLjQ5LjQ5IDAgMCAwLS4xMi42MWwxLjkyIDMuMzJjLjEyLjIyLjM3LjI5LjU5LjIybDIuMzktLjk2Yy41LjM4IDEuMDMuNyAxLjYyLjk0bC4zNiAyLjU0Yy4wNS4yNC4yNC40MS40OC40MWgzLjg0Yy4yNCAwIC40NC0uMTcuNDctLjQxbC4zNi0yLjU0Yy41OS0uMjQgMS4xMy0uNTYgMS42Mi0uOTRsMi4zOS45NmMuMjIuMDguNDcgMCAuNTktLjIybDEuOTItMy4zMmMuMTItLjIyLjA3LS40Ny0uMTItLjYxbC0yLjAxLTEuNTh6TTEyIDE1LjZjLTEuOTggMC0zLjYtMS42Mi0zLjYtMy42czEuNjItMy42IDMuNi0zLjYgMy42IDEuNjIgMy42IDMuNi0xLjYyIDMuNi0zLjYgMy42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaG9wMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgOUgxdjExYzAgMS4xMS44OSAyIDIgMmgxNnYtMkgzVjl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDVWM2MwLTEuMTEtLjg5LTItMi0yaC00Yy0xLjExIDAtMiAuODktMiAydjJINXYxMWMwIDEuMTEuODkgMiAyIDJoMTRjMS4xMSAwIDItLjg5IDItMlY1aC01em0tNi0yaDR2MmgtNFYzem0wIDEyVjhsNS41IDMuNUwxMiAxNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2hvcFR3byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgOUgxdjExYzAgMS4xMS44OSAyIDIgMmgxNGMxLjExIDAgMi0uODkgMi0ySDNWOXptMTUtNFYzYzAtMS4xMS0uODktMi0yLTJoLTRjLTEuMTEgMC0yIC44OS0yIDJ2Mkg1djExYzAgMS4xMS44OSAyIDIgMmgxNGMxLjExIDAgMi0uODkgMi0yVjVoLTV6bS02LTJoNHYyaC00VjN6bTAgMTJWOGw1LjUgMy01LjUgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2hvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDZWNGMwLTEuMTEtLjg5LTItMi0yaC00Yy0xLjExIDAtMiAuODktMiAydjJIMnYxM2MwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY2aC02em0tNi0yaDR2MmgtNFY0ek05IDE4VjlsNy41IDRMOSAxOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2hvcHBpbmdCYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA2aC0yYzAtMi4yMS0xLjc5LTQtNC00UzggMy43OSA4IDZINmMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0tOCA0YzAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xVjhoMnYyem0yLTZjMS4xIDAgMiAuOSAyIDJoLTRjMC0xLjEuOS0yIDItMnptNCA2YzAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xVjhoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaG9wcGluZ0Jhc2tldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3LjIxIDktNC4zOC02LjU2YS45OTMuOTkzIDAgMCAwLS44My0uNDJjLS4zMiAwLS42NC4xNC0uODMuNDNMNi43OSA5SDJjLS41NSAwLTEgLjQ1LTEgMSAwIC4wOS4wMS4xOC4wNC4yN2wyLjU0IDkuMjdjLjIzLjg0IDEgMS40NiAxLjkyIDEuNDZoMTNjLjkyIDAgMS42OS0uNjIgMS45My0xLjQ2bDIuNTQtOS4yN0wyMyAxMGMwLS41NS0uNDUtMS0xLTFoLTQuNzl6TTkgOWwzLTQuNEwxNSA5SDl6bTMgOGMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNob3BwaW5nQ2FydENoZWNrb3V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxOGMtMS4xIDAtMS45OS45LTEuOTkgMlM1LjkgMjIgNyAyMnMyLS45IDItMi0uOS0yLTItMnptMTAgMGMtMS4xIDAtMS45OS45LTEuOTkgMnMuODkgMiAxLjk5IDIgMi0uOSAyLTItLjktMi0yLTJ6bS04LjktNWg3LjQ1Yy43NSAwIDEuNDEtLjQxIDEuNzUtMS4wM0wyMSA0Ljk2IDE5LjI1IDRsLTMuNyA3SDguNTNMNC4yNyAySDF2MmgybDMuNiA3LjU5LTEuMzUgMi40NEM0LjUyIDE1LjM3IDUuNDggMTcgNyAxN2gxMnYtMkg3bDEuMS0yek0xMiAybDQgNC00IDQtMS40MS0xLjQxTDEyLjE3IDdIOFY1aDQuMTdsLTEuNTktMS41OUwxMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaG9wcGluZ0NhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE4Yy0xLjEgMC0xLjk5LjktMS45OSAyUzUuOSAyMiA3IDIyczItLjkgMi0yLS45LTItMi0yek0xIDJ2MmgybDMuNiA3LjU5LTEuMzUgMi40NWMtLjE2LjI4LS4yNS42MS0uMjUuOTYgMCAxLjEuOSAyIDIgMmgxMnYtMkg3LjQyYy0uMTQgMC0uMjUtLjExLS4yNS0uMjVsLjAzLS4xMi45LTEuNjNoNy40NWMuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNsMy41OC02LjQ5QTEuMDAzIDEuMDAzIDAgMCAwIDIwIDRINS4yMWwtLjk0LTJIMXptMTYgMTZjLTEuMSAwLTEuOTkuOS0xLjk5IDJzLjg5IDIgMS45OSAyIDItLjkgMi0yLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTbWFydEJ1dHRvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDl2NmMwIDEuMS0uOSAyLTIgMmgtMXYtMmgxVjlINHY2aDZ2Mkg0Yy0xLjEgMC0yLS45LTItMlY5YzAtMS4xLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJ6bS03LjUgMTAgMS4wOS0yLjQxTDE4IDE1LjVsLTIuNDEtMS4wOUwxNC41IDEybC0xLjA5IDIuNDFMMTEgMTUuNWwyLjQxIDEuMDlMMTQuNSAxOXptMi41LTUgLjYyLTEuMzhMMTkgMTJsLTEuMzgtLjYyTDE3IDEwbC0uNjIgMS4zOEwxNSAxMmwxLjM4LjYyTDE3IDE0em0tMi41IDUgMS4wOS0yLjQxTDE4IDE1LjVsLTIuNDEtMS4wOUwxNC41IDEybC0xLjA5IDIuNDFMMTEgMTUuNWwyLjQxIDEuMDlMMTQuNSAxOXptMi41LTUgLjYyLTEuMzhMMTkgMTJsLTEuMzgtLjYyTDE3IDEwbC0uNjIgMS4zOEwxNSAxMmwxLjM4LjYyTDE3IDE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTb3VyY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC04bC0yLTJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptLTYgMTBINnYtMmg4djJ6bTQtNEg2di0yaDEydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwYWNlRGFzaGJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMjFINWMtMS4xIDAtMi0uOS0yLTJWNWMwLTEuMS45LTIgMi0yaDZ2MTh6bTIgMGg2YzEuMSAwIDItLjkgMi0ydi03aC04djl6bTgtMTFWNWMwLTEuMS0uOS0yLTItMmgtNnY3aDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwYXRpYWxBdWRpb09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTBcIixcImN5XCI6XCI5XCIsXCJyXCI6XCI0XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjM5IDE1LjU2QzE0LjcxIDE0LjcgMTIuNTMgMTQgMTAgMTRzLTQuNzEuNy02LjM5IDEuNTZBMi45NyAyLjk3IDAgMCAwIDIgMTguMjJWMjFoMTZ2LTIuNzhjMC0xLjEyLS42MS0yLjE1LTEuNjEtMi42NnpNMjAuMzYgMWwtMS40MSAxLjQxYTcuMDA3IDcuMDA3IDAgMCAxIDAgOS45bDEuNDEgMS40MWE4Ljk4IDguOTggMCAwIDAgMC0xMi43MnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNTQgMTAuOWE1LjAwMyA1LjAwMyAwIDAgMCAwLTcuMDdsLTEuNDEgMS40MWEzIDMgMCAwIDEgMCA0LjI0bDEuNDEgMS40MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3BhdGlhbEF1ZGlvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMFwiLFwiY3lcIjpcIjlcIixcInJcIjpcIjRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuMzkgMTUuNTZDMTQuNzEgMTQuNyAxMi41MyAxNCAxMCAxNHMtNC43MS43LTYuMzkgMS41NkEyLjk3IDIuOTcgMCAwIDAgMiAxOC4yMlYyMWgxNnYtMi43OGMwLTEuMTItLjYxLTIuMTUtMS42MS0yLjY2ek0xNiAxaC0yYTkgOSAwIDAgMCA5IDlWOGMtMy44NiAwLTctMy4xNC03LTd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDFoLTJjMCAyLjc2IDIuMjQgNSA1IDVWNGMtMS42NSAwLTMtMS4zNS0zLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwYXRpYWxUcmFja2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTBcIixcImN5XCI6XCI5XCIsXCJyXCI6XCI0XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjM5IDE1LjU2QzE0LjcxIDE0LjcgMTIuNTMgMTQgMTAgMTRzLTQuNzEuNy02LjM5IDEuNTZBMi45NyAyLjk3IDAgMCAwIDIgMTguMjJWMjFoMTZ2LTIuNzhjMC0xLjEyLS42MS0yLjE1LTEuNjEtMi42NnpNMjAuMDUgMi40MSAxOC42NCAxYy0zLjUxIDMuNTEtMy41MSA5LjIxIDAgMTIuNzNsMS40MS0xLjQxYy0yLjczLTIuNzQtMi43My03LjE4IDAtOS45MXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIuODggNS4yNC0xLjQxLTEuNDFhNS4wMDMgNS4wMDMgMCAwIDAgMCA3LjA3bDEuNDEtMS40MWEzLjAxMiAzLjAxMiAwIDAgMSAwLTQuMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwZWFrZXJOb3Rlc09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEwLjU0IDExLS41NC0uNTRMNy41NCA4IDYgNi40NiAyLjM4IDIuODQgMS4yNyAxLjczIDAgM2wyLjAxIDIuMDFMMiAyMmw0LTRoOWw1LjczIDUuNzNMMjIgMjIuNDYgMTcuNTQgMThsLTctN3pNOCAxNEg2di0yaDJ2MnptLTItM1Y5bDIgMkg2em0xNC05SDQuMDhMMTAgNy45MlY2aDh2MmgtNy45MmwxIDFIMTh2MmgtNC45Mmw2Ljk5IDYuOTlDMjEuMTQgMTcuOTUgMjIgMTcuMDggMjIgMTZWNGMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3BlYWtlck5vdGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6TTggMTRINnYtMmgydjJ6bTAtM0g2VjloMnYyem0wLTNINlY2aDJ2MnptNyA2aC01di0yaDV2MnptMy0zaC04VjloOHYyem0wLTNoLThWNmg4djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwZWxsY2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi40NSAxNmgyLjA5TDkuNDMgM0g3LjU3TDIuNDYgMTZoMi4wOWwxLjEyLTNoNS42NGwxLjE0IDN6bS02LjAyLTVMOC41IDUuNDggMTAuNTcgMTFINi40M3ptMTUuMTYuNTktOC4wOSA4LjA5TDkuODMgMTZsLTEuNDEgMS40MSA1LjA5IDUuMDlMMjMgMTNsLTEuNDEtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RhclJhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC40MyAxMCAxMiAybC0yLjQzIDhIMmw2LjE4IDQuNDFMNS44MyAyMiAxMiAxNy4zMSAxOC4xOCAyMmwtMi4zNS03LjU5TDIyIDEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdGFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6bTQuMjQgMTZMMTIgMTUuNDUgNy43NyAxOGwxLjEyLTQuODEtMy43My0zLjIzIDQuOTItLjQyTDEyIDVsMS45MiA0LjUzIDQuOTIuNDItMy43MyAzLjIzTDE2LjIzIDE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdGlja3lOb3RlMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINC45OUMzLjg5IDMgMyAzLjkgMyA1bC4wMSAxNGMwIDEuMS44OSAyIDEuOTkgMmgxMGw2LTZWNWMwLTEuMS0uOS0yLTItMnpNNyA4aDEwdjJIN1Y4em01IDZIN3YtMmg1djJ6bTIgNS41VjE0aDUuNUwxNCAxOS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdG9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINHYyaDE2VjR6bTEgMTB2LTJsLTEtNUg0bC0xIDV2MmgxdjZoMTB2LTZoNHY2aDJ2LTZoMXptLTkgNEg2di00aDZ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3ViamVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDE3SDR2MmgxMHYtMnptNi04SDR2MmgxNlY5ek00IDE1aDE2di0ySDR2MnpNNCA1djJoMTZWNUg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdWJ0aXRsZXNPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDYuODNsOCA4SDIwdjJoLTMuMTdsNC45MyA0LjkzYy4xNS0uMjguMjQtLjU5LjI0LS45M1Y2YzAtMS4xLS45LTItMi0yek0xLjA0IDMuODdsMS4yIDEuMkMyLjA5IDUuMzUgMiA1LjY2IDIgNnYxMmMwIDEuMS45IDIgMiAyaDEzLjE3bDIuOTYgMi45NiAxLjQxLTEuNDFMMi40NSAyLjQ1IDEuMDQgMy44N3pNOCAxMnYySDR2LTJoNHptNiA0LjgzVjE4SDR2LTJoOS4xN2wuODMuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN1cGVydmlzZWRVc2VyQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTkgMmMtNS41MiAwLTEwIDQuNDgtMTAgMTBzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwLTQuNDgtMTAtMTAtMTB6bTMuNjEgNi4zNGMxLjA3IDAgMS45My44NiAxLjkzIDEuOTMgMCAxLjA3LS44NiAxLjkzLTEuOTMgMS45My0xLjA3IDAtMS45My0uODYtMS45My0xLjkzLS4wMS0xLjA3Ljg2LTEuOTMgMS45My0xLjkzem0tNi0xLjU4YzEuMyAwIDIuMzYgMS4wNiAyLjM2IDIuMzYgMCAxLjMtMS4wNiAyLjM2LTIuMzYgMi4zNnMtMi4zNi0xLjA2LTIuMzYtMi4zNmMwLTEuMzEgMS4wNS0yLjM2IDIuMzYtMi4zNnptMCA5LjEzdjMuNzVjLTIuNC0uNzUtNC4zLTIuNi01LjE0LTQuOTYgMS4wNS0xLjEyIDMuNjctMS42OSA1LjE0LTEuNjkuNTMgMCAxLjIuMDggMS45LjIyLTEuNjQuODctMS45IDIuMDItMS45IDIuNjh6TTExLjk5IDIwYy0uMjcgMC0uNTMtLjAxLS43OS0uMDR2LTQuMDdjMC0xLjQyIDIuOTQtMi4xMyA0LjQtMi4xMyAxLjA3IDAgMi45Mi4zOSAzLjg0IDEuMTUtMS4xNyAyLjk3LTQuMDYgNS4wOS03LjQ1IDUuMDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN1cGVydmlzb3JBY2NvdW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNSAxMmMxLjM4IDAgMi40OS0xLjEyIDIuNDktMi41UzE3Ljg4IDcgMTYuNSA3YTIuNSAyLjUgMCAwIDAgMCA1ek05IDExYzEuNjYgMCAyLjk5LTEuMzQgMi45OS0zUzEwLjY2IDUgOSA1QzcuMzQgNSA2IDYuMzQgNiA4czEuMzQgMyAzIDN6bTcuNSAzYy0xLjgzIDAtNS41LjkyLTUuNSAyLjc1VjE5aDExdi0yLjI1YzAtMS44My0zLjY3LTIuNzUtNS41LTIuNzV6TTkgMTNjLTIuMzMgMC03IDEuMTctNyAzLjVWMTloN3YtMi4yNWMwLS44NS4zMy0yLjM0IDIuMzctMy40N0MxMC41IDEzLjEgOS42NiAxMyA5IDEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdXBwb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptNy40NiA3LjEyLTIuNzggMS4xNWE0Ljk4MiA0Ljk4MiAwIDAgMC0yLjk1LTIuOTRsMS4xNS0yLjc4YzIuMS44IDMuNzcgMi40NyA0LjU4IDQuNTd6TTEyIDE1Yy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zIDMgMS4zNCAzIDMtMS4zNCAzLTMgM3pNOS4xMyA0LjU0bDEuMTcgMi43OGE1IDUgMCAwIDAtMi45OCAyLjk3TDQuNTQgOS4xM2E3Ljk4NCA3Ljk4NCAwIDAgMSA0LjU5LTQuNTl6TTQuNTQgMTQuODdsMi43OC0xLjE1YTQuOTY4IDQuOTY4IDAgMCAwIDIuOTcgMi45NmwtMS4xNyAyLjc4YTcuOTk2IDcuOTk2IDAgMCAxLTQuNTgtNC41OXptMTAuMzQgNC41OS0xLjE1LTIuNzhhNC45NzggNC45NzggMCAwIDAgMi45NS0yLjk3bDIuNzggMS4xN2E4LjAwNyA4LjAwNyAwIDAgMS00LjU4IDQuNTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN3YXBIb3JpeiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuOTkgMTEgMyAxNWwzLjk5IDR2LTNIMTR2LTJINi45OXYtM3pNMjEgOWwtMy45OS00djNIMTB2Mmg3LjAxdjNMMjEgOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3dhcEhvcml6b250YWxDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDEyYzAtNS41Mi00LjQ4LTEwLTEwLTEwUzIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMHptLTctNS41IDMuNSAzLjUtMy41IDMuNVYxMWgtNFY5aDRWNi41em0tNiAxMUw1LjUgMTQgOSAxMC41VjEzaDR2Mkg5djIuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3dhcFZlcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxNy4wMVYxMGgtMnY3LjAxaC0zTDE1IDIxbDQtMy45OWgtM3pNOSAzIDUgNi45OWgzVjE0aDJWNi45OWgzTDkgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3dhcFZlcnRpY2FsQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnpNNi41IDkgMTAgNS41IDEzLjUgOUgxMXY0SDlWOUg2LjV6bTExIDZMMTQgMTguNSAxMC41IDE1SDEzdi00aDJ2NGgyLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN3aXBlRG93bkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDEzLjlhNSA1IDAgMSAwLTIgMHY0LjI3bC0xLjU5LTEuNTlMOCAxOGw0IDQgNC00LTEuNDEtMS40MUwxMyAxOC4xN1YxMy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTd2lwZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjggMTIuMThjLS4yLS44Ni0uMy0xLjc2LS4zLTIuNjggMC0yLjg0Ljk5LTUuNDUgMi42My03LjVMNy4yIDMuMDdhMTAuNDU3IDEwLjQ1NyAwIDAgMC0xLjg4IDguOTlsMS42Mi0xLjYyTDggMTEuNSA0LjUgMTUgMSAxMS41bDEuMDYtMS4wNiAxLjc0IDEuNzR6bTEwLjA1LS41Ni0yLjY4LTUuMzdhMS40OTggMS40OTggMCAwIDAtMi4wMS0uNjdjLS43NS4zOC0xLjA1IDEuMjgtLjY4IDIuMDJsNC44MSA5LjYtMy4yNC44Yy0uMzMuMDktLjU5LjMzLS43LjY2TDkgMTkuNzhsNi4xOSAyLjI1Yy41LjE3IDEuMjguMDIgMS43NS0uMjJsNS41MS0yLjc1Yy44OS0uNDUgMS4zMi0xLjQ4IDEtMi40MmwtMS40My00LjI3YTIgMiAwIDAgMC0xLjktMS4zN2gtNC41NmMtLjMxIDAtLjYyLjA3LS44OS4yMWwtLjgyLjQxXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN3aXBlTGVmdEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjEgMTNhNSA1IDAgMSAwIDAtMkg1LjgzbDEuNTktMS41OUw2IDhsLTQgNCA0IDQgMS40MS0xLjQxTDUuODMgMTNoNC4yN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3dpcGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkuOTggMTYuODItLjYzIDQuNDZjLS4xNC45OS0uOTkgMS43Mi0xLjk4IDEuNzJoLTYuMTZjLS41MyAwLTEuMjktLjIxLTEuNjYtLjU5TDUgMTcuNjJsLjgzLS44NGMuMjQtLjI0LjU4LS4zNS45Mi0uMjhsMy4yNS43NFY2LjVjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjV2NmguOTFjLjMxIDAgLjYyLjA3Ljg5LjIxbDQuMDkgMi4wNGMuNzcuMzkgMS4yMSAxLjIyIDEuMDkgMi4wN3pNMTIgMi41YzQuNzQgMCA3LjY3IDIuNTIgOC40MyA0LjVIMjJjLS43My0yLjg4LTQuNTEtNi0xMC02LTMuMjIgMC02LjE4IDEuMTMtOC41IDMuMDJWMkgydjVoNVY1LjVINC4wOWMyLjEyLTEuODYgNC44OC0zIDcuOTEtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3dpcGVSaWdodEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjkgMTFhNSA1IDAgMSAwIDAgMmg0LjI3bC0xLjU5IDEuNTlMMTggMTZsNC00LTQtNC0xLjQxIDEuNDFMMTguMTcgMTFIMTMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3dpcGVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5Ljk4IDE2LjgyLS42MyA0LjQ2Yy0uMTQuOTktLjk5IDEuNzItMS45OCAxLjcyaC02LjE2Yy0uNTMgMC0xLjI5LS4yMS0xLjY2LS41OUw1IDE3LjYybC44My0uODRjLjI0LS4yNC41OC0uMzUuOTItLjI4bDMuMjUuNzRWNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41djZoLjkxYy4zMSAwIC42Mi4wNy44OS4yMWw0LjA5IDIuMDRjLjc3LjM5IDEuMjEgMS4yMiAxLjA5IDIuMDd6TTE5LjkxIDUuNUgxN1Y3aDVWMmgtMS41djIuMDJBMTMuNDEzIDEzLjQxMyAwIDAgMCAxMiAxQzYuNTEgMSAyLjczIDQuMTIgMiA3aDEuNTdDNC4zMyA1LjAyIDcuMjYgMi41IDEyIDIuNWMzLjAzIDAgNS43OSAxLjE0IDcuOTEgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3dpcGVVcEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEzIDUuODMgMS41OSAxLjU5TDE2IDZsLTQtNC00IDQgMS40MSAxLjQxTDExIDUuODN2NC4yN2E1IDUgMCAxIDAgMiAwVjUuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN3aXBlVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjA2IDUuNTYgMSA0LjUgNC41IDEgOCA0LjUgNi45NCA1LjU2IDUuMzIgMy45NGExMC40NTcgMTAuNDU3IDAgMCAwIDEuODggOC45OUw2LjEzIDE0QTExLjk3NCAxMS45NzQgMCAwIDEgMy41IDYuNWMwLS45Mi4xLTEuODIuMy0yLjY4TDIuMDYgNS41NnptMTEuNzkgNi4wNi0yLjY4LTUuMzdhMS40OTggMS40OTggMCAwIDAtMi4wMS0uNjdjLS43NS4zOC0xLjA1IDEuMjgtLjY4IDIuMDJsNC44MSA5LjYtMy4yNC44Yy0uMzMuMDktLjU5LjMzLS43LjY2TDkgMTkuNzhsNi4xOSAyLjI1Yy41LjE3IDEuMjguMDIgMS43NS0uMjJsNS41MS0yLjc1Yy44OS0uNDUgMS4zMi0xLjQ4IDEtMi40MmwtMS40My00LjI3YTIgMiAwIDAgMC0xLjktMS4zN2gtNC41NmMtLjMxIDAtLjYyLjA3LS44OS4yMWwtLjgyLjQxXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN3aXBlVmVydGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDMuNWgyLjAyQzEuMTMgNS44MiAwIDguNzggMCAxMnMxLjEzIDYuMTggMy4wMiA4LjVIMVYyMmg1di01SDQuNXYyLjkxYy0xLjg2LTIuMTEtMy00Ljg4LTMtNy45MXMxLjE0LTUuNzkgMy03LjkxVjdINlYySDF2MS41em0xMi44NSA4LjEyLTIuNjgtNS4zN2ExLjQ5OCAxLjQ5OCAwIDAgMC0yLjAxLS42N2MtLjc1LjM4LTEuMDUgMS4yOC0uNjggMi4wMmw0LjgxIDkuNi0zLjI0LjhjLS4zMy4wOS0uNTkuMzMtLjcuNjZMOSAxOS43OGw2LjE5IDIuMjVjLjUuMTcgMS4yOC4wMiAxLjc1LS4yMmw1LjUxLTIuNzVjLjg5LS40NSAxLjMyLTEuNDggMS0yLjQybC0xLjQzLTQuMjdhMiAyIDAgMCAwLTEuOS0xLjM3aC00LjU2Yy0uMzEgMC0uNjIuMDctLjg5LjIxbC0uODIuNDFcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3dpcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOC44OSAxNC43NS00LjA5LTIuMDRjLS4yOC0uMTQtLjU4LS4yMS0uODktLjIxSDEzdi02YzAtLjgzLS42Ny0xLjUtMS41LTEuNVMxMCA1LjY3IDEwIDYuNXYxMC43NGwtMy4yNS0uNzRhLjk5Ljk5IDAgMCAwLS45Mi4yOGwtLjgzLjg0IDQuNTQgNC43OWMuMzguMzggMS4xNC41OSAxLjY3LjU5aDYuMTZjMSAwIDEuODQtLjczIDEuOTgtMS43MmwuNjMtNC40NmMuMTItLjg1LS4zMi0xLjY4LTEuMDktMi4wN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuMTMgMy44N0MxOC42OSAyLjE3IDE1LjYgMSAxMiAxUzUuMzEgMi4xNyAzLjg3IDMuODdMMiAydjVoNUw0LjkzIDQuOTNjMS0xLjI5IDMuNy0yLjQzIDcuMDctMi40M3M2LjA3IDEuMTQgNy4wNyAyLjQzTDE3IDdoNVYybC0xLjg3IDEuODd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN3aXRjaEFjY2Vzc1Nob3J0Y3V0QWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQgMTRoLTJ2LTJoLTJ2MmgtMnYyaDJ2Mmgydi0yaDJ2LTJ6TTcuMDYgOC45NCA1IDhsMi4wNi0uOTRMOCA1bC45NCAyLjA2TDExIDhsLTIuMDYuOTRMOCAxMWwtLjk0LTIuMDZ6TTggMjFsLjk0LTIuMDZMMTEgMThsLTIuMDYtLjk0TDggMTVsLS45NCAyLjA2TDUgMThsMi4wNi45NEw4IDIxem0tMy42My04LjYzTDMgMTNsMS4zNy42M0w1IDE1bC42My0xLjM3TDcgMTNsLTEuMzctLjYzTDUgMTFsLS42MyAxLjM3ek0xMiAxMmMwLTIuNzMgMS4wOC01LjI3IDIuNzUtNy4yNUwxMiAyaDd2N2wtMi44Mi0yLjgyQzE0Ljg0IDcuODIgMTQgOS44OCAxNCAxMmMwIDMuMzIgMi4xIDYuMzYgNSA3LjgyVjIyYy00LjA5LTEuNTktNy01LjY1LTctMTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN3aXRjaEFjY2Vzc1Nob3J0Y3V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4wNiA4Ljk0IDUgOGwyLjA2LS45NEw4IDVsLjk0IDIuMDZMMTEgOGwtMi4wNi45NEw4IDExbC0uOTQtMi4wNnpNOCAyMWwuOTQtMi4wNkwxMSAxOGwtMi4wNi0uOTRMOCAxNWwtLjk0IDIuMDZMNSAxOGwyLjA2Ljk0TDggMjF6bS0zLjYzLTguNjNMMyAxM2wxLjM3LjYzTDUgMTVsLjYzLTEuMzdMNyAxM2wtMS4zNy0uNjNMNSAxMWwtLjYzIDEuMzd6TTEyIDEyYzAtMi43MyAxLjA4LTUuMjcgMi43NS03LjI1TDEyIDJoN3Y3bC0yLjgyLTIuODJDMTQuODQgNy44MiAxNCA5Ljg4IDE0IDEyYzAgMy4zMiAyLjEgNi4zNiA1IDcuODJWMjJjLTQuMDktMS41OS03LTUuNjUtNy0xMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3luY0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4IDEyIDQtNC00LTR2M0gzdjJoMTV6TTYgMTJsLTQgNCA0IDR2LTNoMTV2LTJINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3lzdGVtVXBkYXRlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIC41aDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDE2LjUgNC00aC0zdi05aC0ydjlIOGw0IDR6bTktMTNoLTZ2MS45OWg2djE0LjAzSDNWNS40OWg2VjMuNUgzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0ydi0xNGMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGFiVW5zZWxlY3RlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgOWgyVjdIMXYyem0wIDRoMnYtMkgxdjJ6bTAtOGgyVjNjLTEuMSAwLTIgLjktMiAyem04IDE2aDJ2LTJIOXYyem0tOC00aDJ2LTJIMXYyem0yIDR2LTJIMWMwIDEuMS45IDIgMiAyek0yMSAzaC04djZoMTBWNWMwLTEuMS0uOS0yLTItMnptMCAxNGgydi0yaC0ydjJ6TTkgNWgyVjNIOXYyek01IDIxaDJ2LTJINXYyek01IDVoMlYzSDV2MnptMTYgMTZjMS4xIDAgMi0uOSAyLTJoLTJ2MnptMC04aDJ2LTJoLTJ2MnptLTggOGgydi0yaC0ydjJ6bTQgMGgydi0yaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRhYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDNWNWgxMHY0aDh2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRhYmxlVmlldyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDdIOWMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlY5YzAtMS4xLS45LTItMi0yem0wIDJ2Mkg5VjloMTB6bS02IDZ2LTJoMnYyaC0yem0yIDJ2MmgtMnYtMmgyem0tNC0ySDl2LTJoMnYyem02LTJoMnYyaC0ydi0yem0tOCA0aDJ2Mkg5di0yem04IDJ2LTJoMnYyaC0yek02IDE3SDVjLTEuMSAwLTItLjktMi0yVjVjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMnYxaC0yVjVINXYxMGgxdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRhc2tBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA1LjE4IDEwLjU5IDE2LjZsLTQuMjQtNC4yNCAxLjQxLTEuNDEgMi44MyAyLjgzIDEwLTEwTDIyIDUuMTh6bS0yLjIxIDUuMDRjLjEzLjU3LjIxIDEuMTcuMjEgMS43OCAwIDQuNDItMy41OCA4LTggOHMtOC0zLjU4LTgtOCAzLjU4LTggOC04YzEuNTggMCAzLjA0LjQ2IDQuMjggMS4yNWwxLjQ0LTEuNDRBOS45IDkuOSAwIDAgMCAxMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBjMC0xLjE5LS4yMi0yLjMzLS42LTMuMzlsLTEuNjEgMS42MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGVybWluYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZhMiAyIDAgMCAwLTItMnptMCAxNEg0VjhoMTZ2MTB6bS0yLTFoLTZ2LTJoNnYyek03LjUgMTdsLTEuNDEtMS40MUw4LjY3IDEzbC0yLjU5LTIuNTlMNy41IDlsNCA0LTQgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGV4dFJvdGF0ZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxMnYxLjVsMTEgNC43NXYtMi4xbC0yLjItLjl2LTVsMi4yLS45di0yLjFMMyAxMnptNyAyLjYyLTUuMDItMS44N0wxMCAxMC44OHYzLjc0em04LTEwLjM3LTMgM2gydjEyLjVoMlY3LjI1aDJsLTMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGV4dFJvdGF0ZVZlcnRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNzUgNWgtMS41TDkuNSAxNmgyLjFsLjktMi4yaDVsLjkgMi4yaDIuMUwxNS43NSA1em0tMi42MiA3TDE1IDYuOTggMTYuODcgMTJoLTMuNzR6TTYgMTkuNzVsMy0zSDdWNC4yNUg1djEyLjVIM2wzIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRleHRSb3RhdGlvbkFuZ2xlZG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5LjQgNC45MS0xLjA2LTEuMDZMNy4yIDguMjdsMS40OCAxLjQ4IDIuMTktLjkyIDMuNTQgMy41NC0uOTIgMi4xOSAxLjQ4IDEuNDhMMTkuNCA0Ljkxem0tNi44MSAzLjEgNC44Ny0yLjIzLTIuMjMgNC44Ny0yLjY0LTIuNjR6TTE0LjI3IDIxdi00LjI0bC0xLjQxIDEuNDEtOC44NC04Ljg0LTEuNDIgMS40MiA4Ljg0IDguODRMMTAuMDMgMjFoNC4yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGV4dFJvdGF0aW9uQW5nbGV1cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNDkgNC4yMSAzLjQzIDUuMjcgNy44NSAxNi40bDEuNDgtMS40OC0uOTItMi4xOSAzLjU0LTMuNTQgMi4xOS45MiAxLjQ4LTEuNDhMNC40OSA0LjIxem0zLjA5IDYuOEw1LjM2IDYuMTRsNC44NyAyLjIzLTIuNjUgMi42NHptMTIuOTktMS42OGgtNC4yNGwxLjQxIDEuNDEtOC44NCA4Ljg0TDEwLjMyIDIxbDguODQtOC44NCAxLjQxIDEuNDFWOS4zM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGV4dFJvdGF0aW9uRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDEydi0xLjVMMTAgNS43NXYyLjFsMi4yLjl2NWwtMi4yLjl2Mi4xTDIxIDEyem0tNy0yLjYyIDUuMDIgMS44N0wxNCAxMy4xMlY5LjM4ek02IDE5Ljc1bDMtM0g3VjQuMjVINXYxMi41SDNsMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUZXh0Um90YXRpb25Ob25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNzUgM2gtMS41TDYuNSAxNGgyLjFsLjktMi4yaDVsLjkgMi4yaDIuMUwxMi43NSAzem0tMi42MiA3TDEyIDQuOTggMTMuODcgMTBoLTMuNzR6bTEwLjM3IDgtMy0zdjJINXYyaDEyLjV2MmwzLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRoZWF0ZXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggM3YyaC0yVjNIOHYySDZWM0g0djE4aDJ2LTJoMnYyaDh2LTJoMnYyaDJWM2gtMnpNOCAxN0g2di0yaDJ2MnptMC00SDZ2LTJoMnYyem0wLTRINlY3aDJ2MnptMTAgOGgtMnYtMmgydjJ6bTAtNGgtMnYtMmgydjJ6bTAtNGgtMlY3aDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGh1bWJEb3duT2ZmQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0yNCAyNEgwVjBoMjR2MjR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEwLjg5IDE4LjI4LjU3LTIuODljLjEyLS41OS0uMDQtMS4yLS40Mi0xLjY2LS4zOC0uNDYtLjk0LS43My0xLjU0LS43M0g0di0xLjA4TDYuNTcgNmg4LjA5Yy4xOCAwIC4zNC4xNi4zNC4zNHY3Ljg0bC00LjExIDQuMU0xMCAyMmw2LjQxLTYuNDFjLjM4LS4zOC41OS0uODkuNTktMS40MlY2LjM0QzE3IDUuMDUgMTUuOTUgNCAxNC42NiA0aC04LjFjLS43MSAwLTEuMzYuMzctMS43Mi45N2wtMi42NyA2LjE1Yy0uMTEuMjUtLjE3LjUyLS4xNy44VjEzYzAgMS4xLjkgMiAyIDJoNS41bC0uOTIgNC42NWMtLjA1LjIyLS4wMi40Ni4wOC42Ni4yMy40NS41Mi44Ni44OCAxLjIyTDEwIDIyem0xMC03aDJWNGgtMmMtLjU1IDAtMSAuNDUtMSAxdjljMCAuNTUuNDUgMSAxIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRodW1iRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDNINmMtLjgzIDAtMS41NC41LTEuODQgMS4yMmwtMy4wMiA3LjA1Yy0uMDkuMjMtLjE0LjQ3LS4xNC43M3YyYzAgMS4xLjkgMiAyIDJoNi4zMWwtLjk1IDQuNTctLjAzLjMyYzAgLjQxLjE3Ljc5LjQ0IDEuMDZMOS44MyAyM2w2LjU5LTYuNTljLjM2LS4zNi41OC0uODYuNTgtMS40MVY1YzAtMS4xLS45LTItMi0yem00IDB2MTJoNFYzaC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUaHVtYlVwT2ZmQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMy4xMSA1LjcyLS41NyAyLjg5Yy0uMTIuNTkuMDQgMS4yLjQyIDEuNjYuMzguNDYuOTQuNzMgMS41NC43M0gyMHYxLjA4TDE3LjQzIDE4SDkuMzRhLjM1LjM1IDAgMCAxLS4zNC0uMzRWOS44Mmw0LjExLTQuMU0xNCAyIDcuNTkgOC40MUM3LjIxIDguNzkgNyA5LjMgNyA5LjgzdjcuODNDNyAxOC45NSA4LjA1IDIwIDkuMzQgMjBoOC4xYy43MSAwIDEuMzYtLjM3IDEuNzItLjk3bDIuNjctNi4xNWMuMTEtLjI1LjE3LS41Mi4xNy0uOFYxMWMwLTEuMS0uOS0yLTItMmgtNS41bC45Mi00LjY1Yy4wNS0uMjIuMDItLjQ2LS4wOC0uNjZhNC44IDQuOCAwIDAgMC0uODgtMS4yMkwxNCAyek00IDlIMnYxMWgyYy41NSAwIDEtLjQ1IDEtMXYtOWMwLS41NS0uNDUtMS0xLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRodW1iVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMjFoNFY5SDF2MTJ6bTIyLTExYzAtMS4xLS45LTItMi0yaC02LjMxbC45NS00LjU3LjAzLS4zMmMwLS40MS0uMTctLjc5LS40NC0xLjA2TDE0LjE3IDEgNy41OSA3LjU5QzcuMjIgNy45NSA3IDguNDUgNyA5djEwYzAgMS4xLjkgMiAyIDJoOWMuODMgMCAxLjU0LS41IDEuODQtMS4yMmwzLjAyLTcuMDVjLjA5LS4yMy4xNC0uNDcuMTQtLjczdi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUaHVtYnNVcERvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2YzAtLjU1LS40NS0xLTEtMUg1LjgybC42Ni0zLjE4LjAyLS4yM2MwLS4zMS0uMTMtLjU5LS4zMy0uOEw1LjM4IDAgLjQ0IDQuOTRDLjE3IDUuMjEgMCA1LjU5IDAgNnY2LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoNi43NWMuNjIgMCAxLjE1LS4zOCAxLjM4LS45MWwyLjI2LTUuMjljLjA3LS4xNy4xMS0uMzYuMTEtLjU1VjZ6bTEwLjUgNGgtNi43NWMtLjYyIDAtMS4xNS4zOC0xLjM4LjkxbC0yLjI2IDUuMjljLS4wNy4xNy0uMTEuMzYtLjExLjU1VjE4YzAgLjU1LjQ1IDEgMSAxaDUuMThsLS42NiAzLjE4LS4wMi4yNGMwIC4zMS4xMy41OS4zMy44bC43OS43OCA0Ljk0LTQuOTRjLjI3LS4yNy40NC0uNjUuNDQtMS4wNnYtNi41YzAtLjgzLS42Ny0xLjUtMS41LTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGltZWxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyA4YzAgMS4xLS45IDItMiAyYTEuNyAxLjcgMCAwIDEtLjUxLS4wN2wtMy41NiAzLjU1Yy4wNS4xNi4wNy4zNC4wNy41MiAwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTJjMC0uMTguMDItLjM2LjA3LS41MmwtMi41NS0yLjU1Yy0uMTYuMDUtLjM0LjA3LS41Mi4wN3MtLjM2LS4wMi0uNTItLjA3bC00LjU1IDQuNTZjLjA1LjE2LjA3LjMzLjA3LjUxIDAgMS4xLS45IDItMiAycy0yLS45LTItMiAuOS0yIDItMmMuMTggMCAuMzUuMDIuNTEuMDdsNC41Ni00LjU1QzguMDIgOS4zNiA4IDkuMTggOCA5YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJjMCAuMTgtLjAyLjM2LS4wNy41MmwyLjU1IDIuNTVjLjE2LS4wNS4zNC0uMDcuNTItLjA3cy4zNi4wMi41Mi4wN2wzLjU1LTMuNTZBMS43IDEuNyAwIDAgMSAxOSA4YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRpcHNBbmRVcGRhdGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAyMGg0YzAgMS4xLS45IDItMiAycy0yLS45LTItMnptLTItMWg4di0ySDV2MnptMTEuNS05LjVjMCAzLjgyLTIuNjYgNS44Ni0zLjc3IDYuNUg1LjI3Yy0xLjExLS42NC0zLjc3LTIuNjgtMy43Ny02LjVDMS41IDUuMzYgNC44NiAyIDkgMnM3LjUgMy4zNiA3LjUgNy41em00Ljg3LTIuMTNMMjAgOGwxLjM3LjYzTDIyIDEwbC42My0xLjM3TDI0IDhsLTEuMzctLjYzTDIyIDZsLS42MyAxLjM3ek0xOSA2bC45NC0yLjA2TDIyIDNsLTIuMDYtLjk0TDE5IDBsLS45NCAyLjA2TDE2IDNsMi4wNi45NEwxOSA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUb2MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDloMTRWN0gzdjJ6bTAgNGgxNHYtMkgzdjJ6bTAgNGgxNHYtMkgzdjJ6bTE2IDBoMnYtMmgtMnYyem0wLTEwdjJoMlY3aC0yem0wIDZoMnYtMmgtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUb2RheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNoLTFWMWgtMnYySDhWMUg2djJINWMtMS4xMSAwLTEuOTkuOS0xLjk5IDJMMyAxOWEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY4aDE0djExek03IDEwaDV2NUg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUb2tlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5Ljk3IDYuNDMgMTIgMiA0LjAzIDYuNDMgOS4xIDkuMjRDOS44MyA4LjQ4IDEwLjg2IDggMTIgOHMyLjE3LjQ4IDIuOSAxLjI0bDUuMDctMi44MXpNMTAgMTJjMC0xLjEuOS0yIDItMnMyIC45IDIgMi0uOSAyLTIgMi0yLS45LTItMnptMSA5LjQ0TDMgMTdWOC4xNGw1LjEzIDIuODVjLS4wOS4zMi0uMTMuNjYtLjEzIDEuMDEgMCAxLjg2IDEuMjcgMy40MyAzIDMuODd2NS41N3ptMiAwdi01LjU3YzEuNzMtLjQ0IDMtMi4wMSAzLTMuODcgMC0uMzUtLjA0LS42OS0uMTMtMS4wMUwyMSA4LjE0VjE3bC04IDQuNDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRvbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDRjLTQuNDIgMC04IDMuNTgtOCA4czMuNTggOCA4IDggOC0zLjU4IDgtOC0zLjU4LTgtOC04em0wIDE0Yy0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02IDYgMi42OSA2IDYtMi42OSA2LTYgNnpNMyAxMmE1Ljk5IDUuOTkgMCAwIDEgNC01LjY1VjQuMjZDMy41NSA1LjE1IDEgOC4yNyAxIDEyczIuNTUgNi44NSA2IDcuNzR2LTIuMDlBNS45OSA1Ljk5IDAgMCAxIDMgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRvdWNoQXBwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxMS4yNFY3LjVhMi41IDIuNSAwIDAgMSA1IDB2My43NGMxLjIxLS44MSAyLTIuMTggMi0zLjc0QzE2IDUuMDEgMTMuOTkgMyAxMS41IDNTNyA1LjAxIDcgNy41YzAgMS41Ni43OSAyLjkzIDIgMy43NHptOS44NCA0LjYzLTQuNTQtMi4yNmMtLjE3LS4wNy0uMzUtLjExLS41NC0uMTFIMTN2LTZjMC0uODMtLjY3LTEuNS0xLjUtMS41UzEwIDYuNjcgMTAgNy41djEwLjc0Yy0zLjYtLjc2LTMuNTQtLjc1LTMuNjctLjc1LS4zMSAwLS41OS4xMy0uNzkuMzNsLS43OS44IDQuOTQgNC45NGMuMjcuMjcuNjUuNDQgMS4wNi40NGg2Ljc5Yy43NSAwIDEuMzMtLjU1IDEuNDQtMS4yOGwuNzUtNS4yN2MuMDEtLjA3LjAyLS4xNC4wMi0uMiAwLS42Mi0uMzgtMS4xNi0uOTEtMS4zOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVG91ciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDRIN1YySDV2MjBoMnYtOGgxNGwtMi01IDItNXptLTYgNWMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgLjktMiAyLTIgMiAuOSAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRyYWNrQ2hhbmdlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkuMDcgNC45My0xLjQxIDEuNDFBOC4wMTQgOC4wMTQgMCAwIDEgMjAgMTJjMCA0LjQyLTMuNTggOC04IDhzLTgtMy41OC04LThjMC00LjA4IDMuMDUtNy40NCA3LTcuOTN2Mi4wMkM4LjE2IDYuNTcgNiA5LjAzIDYgMTJjMCAzLjMxIDIuNjkgNiA2IDZzNi0yLjY5IDYtNmMwLTEuNjYtLjY3LTMuMTYtMS43Ni00LjI0bC0xLjQxIDEuNDFDMTUuNTUgOS45IDE2IDEwLjkgMTYgMTJjMCAyLjIxLTEuNzkgNC00IDRzLTQtMS43OS00LTRjMC0xLjg2IDEuMjgtMy40MSAzLTMuODZ2Mi4xNGMtLjYuMzUtMSAuOTgtMSAxLjcyIDAgMS4xLjkgMiAyIDJzMi0uOSAyLTJjMC0uNzQtLjQtMS4zOC0xLTEuNzJWMmgtMUM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwYzAtMi43Ni0xLjEyLTUuMjYtMi45My03LjA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUcmFuc2NyaWJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcuOTMgMTYgMS42My0xLjYzYy0yLjc3LTMuMDItMi43Ny03LjU2IDAtMTAuNzRMMTcuOTMgMmMtMy45IDMuODktMy45MSA5Ljk1IDAgMTR6bTQuOTktNS4wNWEzLjMxNyAzLjMxNyAwIDAgMSAwLTMuODlsLTEuNjgtMS42OWMtMi4wMiAyLjAyLTIuMDIgNS4wNyAwIDcuMjdsMS42OC0xLjY5ek05IDEzYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptNi4zOSAyLjU2QzEzLjcxIDE0LjcgMTEuNTMgMTQgOSAxNHMtNC43MS43LTYuMzkgMS41NkEyLjk3IDIuOTcgMCAwIDAgMSAxOC4yMlYyMWgxNnYtMi43OGMwLTEuMTItLjYxLTIuMTUtMS42MS0yLjY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUcmFuc2xhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMi44NyAxNS4wNy0yLjU0LTIuNTEuMDMtLjAzQTE3LjUyIDE3LjUyIDAgMCAwIDE0LjA3IDZIMTdWNGgtN1YySDh2MkgxdjEuOTloMTEuMTdDMTEuNSA3LjkyIDEwLjQ0IDkuNzUgOSAxMS4zNSA4LjA3IDEwLjMyIDcuMyA5LjE5IDYuNjkgOGgtMmMuNzMgMS42MyAxLjczIDMuMTcgMi45OCA0LjU2bC01LjA5IDUuMDJMNCAxOWw1LTUgMy4xMSAzLjExLjc2LTIuMDR6TTE4LjUgMTBoLTJMMTIgMjJoMmwxLjEyLTNoNC43NUwyMSAyMmgybC00LjUtMTJ6bS0yLjYyIDcgMS42Mi00LjMzTDE5LjEyIDE3aC0zLjI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUcmVuZGluZ0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNiAxOCAyLjI5LTIuMjktNC44OC00Ljg4LTQgNEwyIDcuNDEgMy40MSA2bDYgNiA0LTQgNi4zIDYuMjlMMjIgMTJ2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHJlbmRpbmdGbGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgMTItNC00djNIM3YyaDE1djN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRyZW5kaW5nVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNiA2IDIuMjkgMi4yOS00Ljg4IDQuODgtNC00TDIgMTYuNTkgMy40MSAxOGw2LTYgNCA0IDYuMy02LjI5TDIyIDEyVjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRyb3VibGVzaG9vdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyIDIwLjU5LTQuNjktNC42OUE3LjkwMiA3LjkwMiAwIDAgMCAxOSAxMWMwLTQuNDItMy41OC04LTgtOC00LjA4IDAtNy40NCAzLjA1LTcuOTMgN2gyLjAyQzUuNTcgNy4xNyA4LjAzIDUgMTEgNWMzLjMxIDAgNiAyLjY5IDYgNnMtMi42OSA2LTYgNmMtMi40MiAwLTQuNS0xLjQ0LTUuNDUtMy41SDMuNEM0LjQ1IDE2LjY5IDcuNDYgMTkgMTEgMTljMS44NSAwIDMuNTUtLjYzIDQuOS0xLjY5TDIwLjU5IDIyIDIyIDIwLjU5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjQzIDkuNjkgOS42NSAxNWgxLjY0bDEuMjYtMy43OC45NSAyLjI4aDJWMTJoLTFsLTEuMjUtM2gtMS41NGwtMS4xMiAzLjM3TDkuMzUgN0g3LjdsLTEuMjUgNEgxdjEuNWg2LjU1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE4bDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tNi40MyA5LjU3TDEyIDE1bC0xLjU3LTMuNDNMNyAxMGwzLjQzLTEuNTdMMTIgNWwxLjU3IDMuNDNMMTcgMTBsLTMuNDMgMS41N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHVybmVkSW5Ob3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAzSDdjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNSAyMWw3LTMgNyAzVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTUtNS0yLjE4TDcgMThWNWgxMHYxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHVybmVkSW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAzSDdjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNSAyMWw3LTMgNyAzVjVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFVuZm9sZExlc3NEb3VibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41OCAxLjQxIDE1LjE2IDBsLTMuMTcgMy4xN0w4LjgyIDAgNy40MSAxLjQxIDExLjk5IDZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjU4IDYuNDEgMTUuMTYgNWwtMy4xNyAzLjE3TDguODIgNSA3LjQxIDYuNDEgMTEuOTkgMTF6TTcuNDIgMTcuNTkgOC44NCAxOWwzLjE3LTMuMTdMMTUuMTggMTlsMS40MS0xLjQxTDEyLjAxIDEzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjQyIDIyLjU5IDguODQgMjRsMy4xNy0zLjE3TDE1LjE4IDI0bDEuNDEtMS40MUwxMi4wMSAxOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVW5mb2xkTW9yZURvdWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDcuODMgMTUuMTcgMTFsMS40MS0xLjQxTDEyIDUgNy40MSA5LjU5IDguODMgMTEgMTIgNy44M3ptMC01TDE1LjE3IDZsMS40MS0xLjQxTDEyIDAgNy40MSA0LjU5IDguODMgNiAxMiAyLjgzem0wIDE4LjM0TDguODMgMThsLTEuNDEgMS40MUwxMiAyNGw0LjU5LTQuNTlMMTUuMTcgMTggMTIgMjEuMTd6bTAtNUw4LjgzIDEzbC0xLjQxIDEuNDFMMTIgMTlsNC41OS00LjU5TDE1LjE3IDEzIDEyIDE2LjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRVbnB1Ymxpc2hlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjE5IDIxLjE5IDIuODEgMi44MSAxLjM5IDQuMjJsMi4yNyAyLjI3QTkuOTEgOS45MSAwIDAgMCAyIDEyYzAgNS41MiA0LjQ4IDEwIDEwIDEwIDIuMDQgMCAzLjkzLS42MSA1LjUxLTEuNjZsMi4yNyAyLjI3IDEuNDEtMS40MnptLTEwLjYtNC41OS00LjI0LTQuMjQgMS40MS0xLjQxIDIuODMgMi44My4xOC0uMTggMS40MSAxLjQxLTEuNTkgMS41OXptMy01Ljg0LTcuMS03LjFBOS45MSA5LjkxIDAgMCAxIDEyIDJjNS41MiAwIDEwIDQuNDggMTAgMTAgMCAyLjA0LS42MSAzLjkzLTEuNjYgNS41MUwxNSAxMi4xN2wyLjY1LTIuNjUtMS40MS0xLjQxLTIuNjUgMi42NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVXBkYXRlRGlzYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjY3IDUuODQgNy4yMiA0LjM5QTguODYgOC44NiAwIDAgMSAxMiAzYzIuNzQgMCA1LjE5IDEuMjMgNi44NCAzLjE2TDIxIDR2NmgtNmwyLjQxLTIuNDFDMTYuMTIgNi4wMiAxNC4xOCA1IDEyIDVjLTEuMiAwLTIuMzQuMzEtMy4zMy44NHpNMTMgN2gtMnYxLjE3bDIgMlY3em02Ljc4IDE1LjYxLTMtM0E4Ljk3MyA4Ljk3MyAwIDAgMSAxMiAyMWE5IDkgMCAwIDEtOS05YzAtMS43Ni41MS0zLjQgMS4zOS00Ljc4bC0zLTNMMi44IDIuODFsMTguMzggMTguMzgtMS40IDEuNDJ6bS00LjQ2LTQuNDZMNS44NCA4LjY3QTcuMDYgNy4wNiAwIDAgMCA1IDEyYzAgMy44NiAzLjE0IDcgNyA3IDEuMiAwIDIuMzQtLjMxIDMuMzItLjg1ek0yMC45NCAxM2gtMi4wMmMtLjEyLjgzLS4zOSAxLjYxLS43NyAyLjMybDEuNDcgMS40N2MuNy0xLjEyIDEuMTctMi40MSAxLjMyLTMuNzl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFVwZGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDEwLjEyaC02Ljc4bDIuNzQtMi44MmMtMi43My0yLjctNy4xNS0yLjgtOS44OC0uMS0yLjczIDIuNzEtMi43MyA3LjA4IDAgOS43OXM3LjE1IDIuNzEgOS44OCAwQzE4LjMyIDE1LjY1IDE5IDE0LjA4IDE5IDEyLjFoMmMwIDEuOTgtLjg4IDQuNTUtMi42NCA2LjI5LTMuNTEgMy40OC05LjIxIDMuNDgtMTIuNzIgMC0zLjUtMy40Ny0zLjUzLTkuMTEtLjAyLTEyLjU4czkuMTQtMy40NyAxMi42NSAwTDIxIDN2Ny4xMnpNMTIuNSA4djQuMjVsMy41IDIuMDgtLjcyIDEuMjFMMTEgMTNWOGgxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFVwZ3JhZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxOHYySDh2LTJoOHpNMTEgNy45OVYxNmgyVjcuOTloM0wxMiA0IDggNy45OWgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWZXJpZmllZFVzZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxIDMgNXY2YzAgNS41NSAzLjg0IDEwLjc0IDkgMTIgNS4xNi0xLjI2IDktNi40NSA5LTEyVjVsLTktNHptLTIgMTYtNC00IDEuNDEtMS40MUwxMCAxNC4xN2w2LjU5LTYuNTlMMTggOWwtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWZXJpZmllZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIzIDEyLTIuNDQtMi43OS4zNC0zLjY5LTMuNjEtLjgyLTEuODktMy4yTDEyIDIuOTYgOC42IDEuNSA2LjcxIDQuNjkgMy4xIDUuNWwuMzQgMy43TDEgMTJsMi40NCAyLjc5LS4zNCAzLjcgMy42MS44Mkw4LjYgMjIuNWwzLjQtMS40NyAzLjQgMS40NiAxLjg5LTMuMTkgMy42MS0uODItLjM0LTMuNjlMMjMgMTJ6bS0xMi45MSA0LjcyLTMuOC0zLjgxIDEuNDgtMS40OCAyLjMyIDIuMzMgNS44NS01Ljg3IDEuNDggMS40OC03LjMzIDcuMzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZlcnRpY2FsU3BsaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTVoOHYtMkgzdjJ6bTAgNGg4di0ySDN2MnptMC04aDhWOUgzdjJ6bTAtNnYyaDhWNUgzem0xMCAwaDh2MTRoLThWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlld0FnZW5kYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDEzSDVjLTEuMSAwLTIgLjktMiAydjRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtNGMwLTEuMS0uOS0yLTItMnpNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnY0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlld0FycmF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNWgtM3YxNGgzVjV6bS00IDBIN3YxNGgxMFY1ek02IDVIM3YxNGgzVjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZXdDYXJvdXNlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgN2g0djEwSDJWN3ptNSAxMmgxMFY1SDd2MTR6TTE4IDdoNHYxMGgtNFY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWaWV3Q29sdW1uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNjcgNXYxNEg5LjMzVjVoNS4zNHptMSAxNEgyMVY1aC01LjMzdjE0em0tNy4zNCAwVjVIM3YxNGg1LjMzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWaWV3Q29tZnlBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptLTkgMTNIN3YtNGg0djR6bTAtNkg3VjdoNHY0em02IDZoLTR2LTRoNHY0em0wLTZoLTRWN2g0djR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZXdDb21wYWN0QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bS04LjUgMTIuNWgtNHYtNGg0djR6bTAtNWgtNHYtNGg0djR6bTUgNWgtNHYtNGg0djR6bTAtNWgtNHYtNGg0djR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZXdDb3p5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bS04Ljc1IDEyLjc1aC00di00aDR2NHptMC01LjVoLTR2LTRoNHY0em01LjUgNS41aC00di00aDR2NHptMC01LjVoLTR2LTRoNHY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWaWV3RGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyMWgxOXYtM0gydjN6TTIwIDhIM2MtLjU1IDAtMSAuNDUtMSAxdjZjMCAuNTUuNDUgMSAxIDFoMTdjLjU1IDAgMS0uNDUgMS0xVjljMC0uNTUtLjQ1LTEtMS0xek0yIDN2M2gxOVYzSDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZXdIZWFkbGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxNWgxNnYtMkg0djJ6bTAgNGgxNnYtMkg0djJ6bTAtOGgxNlY5SDR2MnptMC02djJoMTZWNUg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWaWV3SW5BciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4LjI1IDcuNi01LjUtMy4xOGExLjQ5IDEuNDkgMCAwIDAtMS41IDBMNS43NSA3LjZjLS40Ni4yNy0uNzUuNzYtLjc1IDEuM3Y2LjM1YzAgLjU0LjI5IDEuMDMuNzUgMS4zbDUuNSAzLjE4Yy40Ni4yNyAxLjA0LjI3IDEuNSAwbDUuNS0zLjE4Yy40Ni0uMjcuNzUtLjc2Ljc1LTEuM1Y4LjljMC0uNTQtLjI5LTEuMDMtLjc1LTEuM3pNNyAxNC45NnYtNC42Mmw0IDIuMzJ2NC42MWwtNC0yLjMxem01LTQuMDNMOCA4LjYxbDQtMi4zMSA0IDIuMzEtNCAyLjMyem0xIDYuMzR2LTQuNjFsNC0yLjMydjQuNjJsLTQgMi4zMXpNNyAySDMuNUMyLjY3IDIgMiAyLjY3IDIgMy41VjdoMlY0aDNWMnptMTAgMGgzLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWN2gtMlY0aC0zVjJ6TTcgMjJIMy41Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVWMTdoMnYzaDN2MnptMTAgMGgzLjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjE3aC0ydjNoLTN2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlld0thbmJhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek05IDE3SDdWN2gydjEwem00LTVoLTJWN2gydjV6bTQgM2gtMlY3aDJ2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlld0xpc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE0aDR2LTRIM3Y0em0wIDVoNHYtNEgzdjR6TTMgOWg0VjVIM3Y0em01IDVoMTN2LTRIOHY0em0wIDVoMTN2LTRIOHY0ek04IDV2NGgxM1Y1SDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZXdNb2R1bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC42NyA1djYuNUg5LjMzVjVoNS4zNHptMSA2LjVIMjFWNWgtNS4zM3Y2LjV6bS0xIDcuNXYtNi41SDkuMzNWMTloNS4zNHptMS02LjVWMTlIMjF2LTYuNWgtNS4zM3ptLTcuMzQgMEgzVjE5aDUuMzN2LTYuNXptMC0xVjVIM3Y2LjVoNS4zM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlld1F1aWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNXY2LjVIOS4zM1Y1SDIxem0tNi4zMyAxNHYtNi41SDkuMzNWMTloNS4zNHptMS02LjVWMTlIMjF2LTYuNWgtNS4zM3pNOC4zMyAxOVY1SDN2MTRoNS4zM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlld1NpZGViYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAyMEgyVjRoMTR2MTZ6bTItMTJoNFY0aC00djR6bTAgMTJoNHYtNGgtNHY0em0wLTZoNHYtNGgtNHY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWaWV3U3RyZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxN3YtMmMwLTEuMS45LTIgMi0yaDE0YzEuMSAwIDIgLjkgMiAydjJjMCAxLjEtLjkgMi0yIDJINWMtMS4xIDAtMi0uOS0yLTJ6TTMgN3YyYzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMkg1Yy0xLjEgMC0yIC45LTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlld1RpbWVsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDE0SDZ2LTJoNnYyem0zLTRIOXYtMmg2djJ6bTMtNGgtNlY3aDZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlld1dlZWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjMzIDIwSDRjLTEuMSAwLTItLjktMi0yVjZjMC0xLjEuOS0yIDItMmgxLjMzYzEuMSAwIDIgLjkgMiAydjEyYTIgMiAwIDAgMS0yIDJ6TTIyIDE4VjZjMC0xLjEtLjktMi0yLTJoLTEuMzNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJIMjBhMiAyIDAgMCAwIDItMnptLTcuMzMgMFY2YzAtMS4xLS45LTItMi0yaC0xLjMzYy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEuMzNjMS4xIDAgMi0uOSAyLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpc2liaWxpdHlPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3YzIuNzYgMCA1IDIuMjQgNSA1IDAgLjY1LS4xMyAxLjI2LS4zNiAxLjgzbDIuOTIgMi45MmMxLjUxLTEuMjYgMi43LTIuODkgMy40My00Ljc1LTEuNzMtNC4zOS02LTcuNS0xMS03LjUtMS40IDAtMi43NC4yNS0zLjk4LjdsMi4xNiAyLjE2QzEwLjc0IDcuMTMgMTEuMzUgNyAxMiA3ek0yIDQuMjdsMi4yOCAyLjI4LjQ2LjQ2QTExLjgwNCAxMS44MDQgMCAwIDAgMSAxMmMxLjczIDQuMzkgNiA3LjUgMTEgNy41IDEuNTUgMCAzLjAzLS4zIDQuMzgtLjg0bC40Mi40MkwxOS43MyAyMiAyMSAyMC43MyAzLjI3IDMgMiA0LjI3ek03LjUzIDkuOGwxLjU1IDEuNTVjLS4wNS4yMS0uMDguNDMtLjA4LjY1IDAgMS42NiAxLjM0IDMgMyAzIC4yMiAwIC40NC0uMDMuNjUtLjA4bDEuNTUgMS41NWMtLjY3LjMzLTEuNDEuNTMtMi4yLjUzLTIuNzYgMC01LTIuMjQtNS01IDAtLjc5LjItMS41My41My0yLjJ6bTQuMzEtLjc4IDMuMTUgMy4xNS4wMi0uMTZjMC0xLjY2LTEuMzQtMy0zLTNsLS4xNy4wMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlzaWJpbGl0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDQuNUM3IDQuNSAyLjczIDcuNjEgMSAxMmMxLjczIDQuMzkgNiA3LjUgMTEgNy41czkuMjctMy4xMSAxMS03LjVjLTEuNzMtNC4zOS02LTcuNS0xMS03LjV6TTEyIDE3Yy0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDUtMi4yNCA1LTUgNXptMC04Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVm9pY2VPdmVyT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi45OSA5LjE4YzAtLjA2LjAxLS4xMi4wMS0uMTggMC0yLjIxLTEuNzktNC00LTQtLjA2IDAtLjEyLjAxLS4xOC4wMWw0LjE3IDQuMTd6bS02LjEtMy41Nkw0LjI3IDMgMyA0LjI3bDIuNjIgMi42MkM1LjIzIDcuNSA1IDguMjIgNSA5YzAgMi4yMSAxLjc5IDQgNCA0IC43OCAwIDEuNS0uMjMgMi4xMS0uNjJMMTkuNzMgMjEgMjEgMTkuNzNsLTguNjItOC42Mi01LjQ5LTUuNDl6TTkgMTVjLTIuNjcgMC04IDEuMzQtOCA0djJoMTZ2LTJjMC0yLjY2LTUuMzMtNC04LTR6bTcuNzYtOS42NC0xLjY4IDEuNjljLjg0IDEuMTguODQgMi43MSAwIDMuODlsMS42OCAxLjY5YzIuMDItMi4wMiAyLjAyLTUuMDcgMC03LjI3ek0yMC4wNyAybC0xLjYzIDEuNjNjMi43NyAzLjAyIDIuNzcgNy41NiAwIDEwLjc0TDIwLjA3IDE2YzMuOS0zLjg5IDMuOTEtOS45NSAwLTE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXYXRjaExhdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjUgMiAyIDYuNSAyIDEyczQuNSAxMCAxMCAxMCAxMC00LjUgMTAtMTBTMTcuNSAyIDEyIDJ6bTQuMiAxNC4yTDExIDEzVjdoMS41djUuMmw0LjUgMi43LS44IDEuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2ViaG9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDE1aDUuODhjLjI3LS4zMS42Ny0uNSAxLjEyLS41LjgzIDAgMS41LjY3IDEuNSAxLjVzLS42NyAxLjUtMS41IDEuNWMtLjQ0IDAtLjg0LS4xOS0xLjEyLS41SDExLjlBNSA1IDAgMSAxIDYgMTEuMXYyLjA3Yy0xLjE2LjQxLTIgMS41My0yIDIuODMgMCAxLjY1IDEuMzUgMyAzIDNzMy0xLjM1IDMtM3YtMXptMi41LTExYzEuNjUgMCAzIDEuMzUgMyAzaDJjMC0yLjc2LTIuMjQtNS01LTVhNS4wMDIgNS4wMDIgMCAwIDAtMy40NSA4LjYybC0yLjM1IDMuOWMtLjY4LjE0LTEuMi43NS0xLjIgMS40OCAwIC44My42NyAxLjUgMS41IDEuNWExLjQ5OCAxLjQ5OCAwIDAgMCAxLjQzLTEuOTVsMy4zOC01LjYzQTMuMDAzIDMuMDAzIDAgMCAxIDkuNSA3YzAtMS42NSAxLjM1LTMgMy0zem00LjUgOWMtLjY0IDAtMS4yMy4yLTEuNzIuNTRsLTMuMDUtNS4wN0MxMS41MyA4LjM1IDExIDcuNzQgMTEgN2MwLS44My42Ny0xLjUgMS41LTEuNVMxNCA2LjE3IDE0IDdjMCAuMTUtLjAyLjI5LS4wNi40M2wyLjE5IDMuNjVjLjI4LS4wNS41Ny0uMDguODctLjA4IDIuNzYgMCA1IDIuMjQgNSA1cy0yLjI0IDUtNSA1YTUgNSAwIDAgMS00LjMzLTIuNWgyLjY3Yy40OC4zMiAxLjA1LjUgMS42Ni41IDEuNjUgMCAzLTEuMzUgMy0zcy0xLjM1LTMtMy0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXaWR0aEZ1bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNNCA2aDF2MTJINFY2em0xNiAxMmgtMVY2aDF2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdpZHRoTm9ybWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6TTQgNmg0djEySDRWNnptMTYgMTJoLTRWNmg0djEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXaWR0aFdpZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNNCA2aDJ2MTJINFY2em0xNiAxMmgtMlY2aDJ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdpZmlQcm90ZWN0ZWRTZXR1cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjcxIDUuMjkgMTkgM2gtOHY4bDIuMy0yLjNjMS45NyAxLjQ2IDMuMjUgMy43OCAzLjI1IDYuNDIgMCAxLjMxLS4zMiAyLjU0LS44OCAzLjYzIDIuMzMtMS41MiAzLjg4LTQuMTQgMy44OC03LjEzIDAtMi41Mi0xLjExLTQuNzctMi44NC02LjMzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjQ2IDguODhjMC0xLjMxLjMyLTIuNTQuODgtMy42M2E4LjQ3OSA4LjQ3OSAwIDAgMC0zLjg4IDcuMTNjMCAyLjUyIDEuMSA0Ljc3IDIuODQgNi4zM0w1IDIxaDh2LThsLTIuMyAyLjNjLTEuOTYtMS40Ni0zLjI0LTMuNzgtMy4yNC02LjQyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXb3JrSGlzdG9yeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDExYzEuNDkgMCAyLjg3LjQ3IDQgMS4yNlY4YzAtMS4xMS0uODktMi0yLTJoLTRWNGMwLTEuMTEtLjg5LTItMi0yaC00Yy0xLjExIDAtMiAuODktMiAydjJINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMTljMCAxLjExLjg5IDIgMiAyaDcuNjhBNi45OTUgNi45OTUgMCAwIDEgMTggMTF6bS04LTdoNHYyaC00VjR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDEzYy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXptMS42NSA3LjM1TDE3LjUgMTguMlYxNWgxdjIuNzlsMS44NSAxLjg1LS43LjcxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXb3JrT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjMgMjEuNzQtMS40Ni0xLjQ2TDcuMjEgNS45NSAzLjI1IDEuOTkgMS45OSAzLjI1bDIuNyAyLjdoLS42NGMtMS4xMSAwLTEuOTkuODktMS45OSAybC0uMDEgMTFjMCAxLjExLjg5IDIgMiAyaDE1LjY0TDIxLjc0IDIzIDIzIDIxLjc0ek0yMiA3Ljk1Yy4wNS0xLjExLS44NC0yLTEuOTUtMS45NWgtNFYzLjk1YzAtMS4xMS0uODktMi0yLTEuOTVoLTRjLTEuMTEtLjA1LTIgLjg0LTIgMS45NXYuMzJsMTMuOTUgMTRWNy45NXpNMTQuMDUgNkgxMFYzLjk1aDQuMDVWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV29ya091dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTQgNlY0aC00djJoNHpNNCA4djExaDE2VjhINHptMTYtMmMxLjExIDAgMiAuODkgMiAydjExYzAgMS4xMS0uODkgMi0yIDJINGMtMS4xMSAwLTItLjg5LTItMmwuMDEtMTFjMC0xLjExLjg4LTIgMS45OS0yaDRWNGMwLTEuMTEuODktMiAyLTJoNGMxLjExIDAgMiAuODkgMiAydjJoNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV29yayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLTRWNGMwLTEuMTEtLjg5LTItMi0yaC00Yy0xLjExIDAtMiAuODktMiAydjJINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMTljMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWOGMwLTEuMTEtLjg5LTItMi0yem0tNiAwaC00VjRoNHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXeXNpd3lnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YTIgMiAwIDAgMC0yLTJ6bTAgMTZINVY3aDE0djEyem0tMi03SDd2LTJoMTB2MnptLTQgNEg3di0yaDZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kWW91dHViZVNlYXJjaGVkRm9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy4wMSAxNGgtLjhsLS4yNy0uMjdhNi40NTEgNi40NTEgMCAwIDAgMS41Ny00LjIzYzAtMy41OS0yLjkxLTYuNS02LjUtNi41cy02LjUgMy02LjUgNi41SDJsMy44NCA0IDQuMTYtNEg2LjUxYTQuNSA0LjUgMCAwIDEgOSAwIDQuNTA3IDQuNTA3IDAgMCAxLTYuMzIgNC4xMkw3LjcxIDE1LjFhNi40NzQgNi40NzQgMCAwIDAgNy41Mi0uNjdsLjI3LjI3di43OWw1LjAxIDQuOTlMMjIgMTlsLTQuOTktNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kWm9vbUluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDE0aC0uNzlsLS4yOC0uMjdBNi40NzEgNi40NzEgMCAwIDAgMTYgOS41IDYuNSA2LjUgMCAxIDAgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTBoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kWm9vbU91dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QTYuNDcxIDYuNDcxIDAgMCAwIDE2IDkuNSA2LjUgNi41IDAgMSAwIDkuNSAxNmMxLjYxIDAgMy4wOS0uNTkgNC4yMy0xLjU3bC4yNy4yOHYuNzlsNSA0Ljk5TDIwLjQ5IDE5bC00Ljk5LTV6bS02IDBDNy4wMSAxNCA1IDExLjk5IDUgOS41UzcuMDEgNSA5LjUgNSAxNCA3LjAxIDE0IDkuNSAxMS45OSAxNCA5LjUgMTR6TTcgOWg1djFIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRkQWxlcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjAxIDIxLjAxYzAgMS4xLjg5IDEuOTkgMS45OSAxLjk5czEuOTktLjg5IDEuOTktMS45OWgtMy45OHptOC44Ny00LjE5VjExYzAtMy4yNS0yLjI1LTUuOTctNS4yOS02LjY5di0uNzJDMTMuNTkgMi43MSAxMi44OCAyIDEyIDJzLTEuNTkuNzEtMS41OSAxLjU5di43MkE2Ljg3MyA2Ljg3MyAwIDAgMCA1LjEyIDExdjUuODJMMyAxOC45NFYyMGgxOHYtMS4wNmwtMi4xMi0yLjEyek0xNiAxMy4wMWgtM3YzaC0ydi0zSDhWMTFoM1Y4aDJ2M2gzdjIuMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEF1dG9EZWxldGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAyaC0zLjVsLTEtMWgtNWwtMSAxSDF2MmgxNHpNMTYgOWMtLjcgMC0xLjM3LjEtMiAuMjlWNUgydjEyYzAgMS4xLjkgMiAyIDJoNS42OEE2Ljk5OSA2Ljk5OSAwIDAgMCAyMyAxNmMwLTMuODctMy4xMy03LTctN3ptMCAxMmMtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNSA1IDIuMjQgNSA1LTIuMjQgNS01IDV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjUgMTJIMTV2NWwzLjYgMi4xLjgtMS4yLTIuOS0xLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVycm9yT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTVoMnYyaC0yem0wLThoMnY2aC0yem0uOTktNUM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFcnJvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEgMTVoLTJ2LTJoMnYyem0wLTRoLTJWN2gydjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vdGlmaWNhdGlvbkltcG9ydGFudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTZ2LTVjMC0zLjA3LTEuNjQtNS42NC00LjUtNi4zMlY0YzAtLjgzLS42Ny0xLjUtMS41LTEuNXMtMS41LjY3LTEuNSAxLjV2LjY4QzcuNjMgNS4zNiA2IDcuOTIgNiAxMXY1bC0yIDJ2MWgxNnYtMWwtMi0yem0tNSAwaC0ydi0yaDJ2MnptMC00aC0yVjhoMnY0em0tMSAxMGMxLjEgMCAyLS45IDItMmgtNGEyIDIgMCAwIDAgMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXYXJuaW5nQW1iZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA1Ljk5IDE5LjUzIDE5SDQuNDdMMTIgNS45OU0xMiAyIDEgMjFoMjJMMTIgMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTZoLTJ2Mmgyek0xMyAxMGgtMnY1aDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdhcm5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDIxaDIyTDEyIDIgMSAyMXptMTItM2gtMnYtMmgydjJ6bTAtNGgtMnYtNGgydjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDEwSyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTAuNWgxLjV2M0gxMHpNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTcuNSAxNUg2di00LjVINC41VjloM3Y2em01LjUtMWMwIC41NS0uNDUgMS0xIDFIOS41Yy0uNTUgMC0xLS40NS0xLTF2LTRjMC0uNTUuNDUtMSAxLTFIMTJjLjU1IDAgMSAuNDUgMSAxdjR6bTYuNSAxaC0xLjc1TDE2IDEyLjc1VjE1aC0xLjVWOUgxNnYyLjI1TDE3Ljc1IDloMS43NWwtMi4yNSAzIDIuMjUgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kMWtQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNOSAxNUg3LjV2LTQuNUg2VjloM3Y2em00Ljc1IDBMMTIgMTIuNzVWMTVoLTEuNVY5SDEydjIuMjVMMTMuNzUgOWgxLjc1bC0yLjI1IDMgMi4yNSAzaC0xLjc1em01Ljc1LTIuNUgxOFYxNGgtMXYtMS41aC0xLjV2LTFIMTdWMTBoMXYxLjVoMS41djF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDFLIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTguNSAxMkg5di00LjVINy41VjloM3Y2em03IDBoLTEuNzVMMTQgMTIuNzVWMTVoLTEuNVY5SDE0djIuMjVMMTUuNzUgOWgxLjc1bC0yLjI1IDMgMi4yNSAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQya1BsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tOS41IDguNWMwIC41NS0uNDUgMS0xIDFoLTJ2MWgzVjE1SDV2LTIuNWMwLS41NS40NS0xIDEtMWgydi0xSDVWOWgzLjVjLjU1IDAgMSAuNDUgMSAxdjEuNXptNC43NSAzLjUtMS43NS0yLjI1VjE1SDExVjloMS41djIuMjVMMTQuMjUgOUgxNmwtMi4yNSAzTDE2IDE1aC0xLjc1ek0yMCAxMi41aC0xLjVWMTRoLTF2LTEuNUgxNnYtMWgxLjVWMTBoMXYxLjVIMjB2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kMksgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tOSA5LjVIOHYxaDNWMTVINi41di0yLjVjMC0uNTUuNDUtMSAxLTFoMnYtMWgtM1Y5SDEwYy41NSAwIDEgLjQ1IDEgMXYxLjVjMCAuNTUtLjQ1IDEtMSAxem04IDIuNWgtMS43NWwtMS43NS0yLjI1VjE1SDEzVjloMS41djIuMjVMMTYuMjUgOUgxOGwtMi4yNSAzTDE4IDE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQza1BsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek05LjUgMTRjMCAuNTUtLjQ1IDEtMSAxSDV2LTEuNWgzdi0xSDZ2LTFoMnYtMUg1VjloMy41Yy41NSAwIDEgLjQ1IDEgMXY0em02LjUgMWgtMS43NWwtMS43NS0yLjI1VjE1SDExVjloMS41djIuMjVMMTQuMjUgOUgxNmwtMi4yNSAzTDE2IDE1em00LTIuNWgtMS41VjE0aC0xdi0xLjVIMTZ2LTFoMS41VjEwaDF2MS41SDIwdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDNLIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTggMTFjMCAuNTUtLjQ1IDEtMSAxSDYuNXYtMS41aDN2LTFoLTJ2LTFoMnYtMWgtM1Y5SDEwYy41NSAwIDEgLjQ1IDEgMXY0em03IDFoLTEuNzVsLTEuNzUtMi4yNVYxNUgxM1Y5aDEuNXYyLjI1TDE2LjI1IDlIMThsLTIuMjUgM0wxOCAxNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kNGtQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTguNSAxMC41aC0xVjE1SDh2LTEuNUg1VjloMS41djNIOFY5aDEuNXYzaDF2MS41ek0xNiAxNWgtMS43NWwtMS43NS0yLjI1VjE1SDExVjloMS41djIuMjVMMTQuMjUgOUgxNmwtMi4yNSAzTDE2IDE1em00LTIuNWgtMS41VjE0aC0xdi0xLjVIMTZ2LTFoMS41VjEwaDF2MS41SDIwdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDRLIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMTAuNWgtMVYxNUg5LjV2LTEuNWgtM1Y5SDh2M2gxLjVWOUgxMXYzaDF2MS41em02IDEuNWgtMS43NWwtMS43NS0yLjI1VjE1SDEzVjloMS41djIuMjVMMTYuMjUgOUgxOGwtMi4yNSAzTDE4IDE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQ1RyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEzaDJ2MmgtNVY5aDdjMC0xLjEtLjktMi0yLTJoLTVjLTEuMSAwLTIgLjktMiAydjZjMCAxLjEuOSAyIDIgMmg1YzEuMSAwIDItLjkgMi0ydi00aC00djJ6TTMgMTNoNXYySDN2Mmg1YzEuMSAwIDItLjkgMi0ydi0yYzAtMS4xLS45LTItMi0ySDVWOWg1VjdIM3Y2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQ1a1BsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tOS41IDcuNWgtM3YxaDJjLjU1IDAgMSAuNDUgMSAxVjE0YzAgLjU1LS40NSAxLTEgMUg1di0xLjVoM3YtMUg1VjloNC41djEuNXpNMTYgMTVoLTEuNzVsLTEuNzUtMi4yNVYxNUgxMVY5aDEuNXYyLjI1TDE0LjI1IDlIMTZsLTIuMjUgM0wxNiAxNXptNC0yLjVoLTEuNVYxNGgtMXYtMS41SDE2di0xaDEuNVYxMGgxdjEuNUgyMHYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQ1SyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS04IDcuNUg4djFoMmMuNTUgMCAxIC40NSAxIDFWMTRjMCAuNTUtLjQ1IDEtMSAxSDYuNXYtMS41aDN2LTFoLTNWOUgxMXYxLjV6bTcgNC41aC0xLjc1bC0xLjc1LTIuMjVWMTVIMTNWOWgxLjV2Mi4yNUwxNi4yNSA5SDE4bC0yLjI1IDNMMTggMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDZrUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41IDEyLjVIOFYxNEg2LjV6TTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tOS41IDcuNWgtM3YxaDJjLjU1IDAgMSAuNDUgMSAxVjE0YzAgLjU1LS40NSAxLTEgMUg2Yy0uNTUgMC0xLS40NS0xLTF2LTRjMC0uNTUuNDUtMSAxLTFoMy41djEuNXpNMTYgMTVoLTEuNzVsLTEuNzUtMi4yNVYxNUgxMVY5aDEuNXYyLjI1TDE0LjI1IDlIMTZsLTIuMjUgM0wxNiAxNXptNC0yLjVoLTEuNVYxNGgtMXYtMS41SDE2di0xaDEuNVYxMGgxdjEuNUgyMHYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQ2SyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxMi41aDEuNVYxNEg4ek0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTggNy41SDh2MWgyYy41NSAwIDEgLjQ1IDEgMVYxNGMwIC41NS0uNDUgMS0xIDFINy41Yy0uNTUgMC0xLS40NS0xLTF2LTRjMC0uNTUuNDUtMSAxLTFIMTF2MS41em03IDQuNWgtMS43NWwtMS43NS0yLjI1VjE1SDEzVjloMS41djIuMjVMMTYuMjUgOUgxOGwtMi4yNSAzTDE4IDE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQ3a1BsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek04IDE1SDYuMjVsMS4zOC00LjVINVY5aDMuNWMuNjcgMCAxLjE1LjY1Ljk2IDEuMjlMOCAxNXptOCAwaC0xLjc1bC0xLjc1LTIuMjVWMTVIMTFWOWgxLjV2Mi4yNUwxNC4yNSA5SDE2bC0yLjI1IDNMMTYgMTV6bTQtMi41aC0xLjVWMTRoLTF2LTEuNUgxNnYtMWgxLjVWMTBoMXYxLjVIMjB2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kN0sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek05LjUgMTVINy43NWwxLjM4LTQuNUg2LjVWOUgxMGMuNjcgMCAxLjE1LjY1Ljk2IDEuMjlMOS41IDE1em04LjUgMGgtMS43NWwtMS43NS0yLjI1VjE1SDEzVjloMS41djIuMjVMMTYuMjUgOUgxOGwtMi4yNSAzTDE4IDE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQ4a1BsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSAxMi41SDhWMTRINi41em0wLTIuNUg4djEuNUg2LjV6TTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek05LjUgMTRjMCAuNTUtLjQ1IDEtMSAxSDZjLS41NSAwLTEtLjQ1LTEtMXYtNGMwLS41NS40NS0xIDEtMWgyLjVjLjU1IDAgMSAuNDUgMSAxdjR6bTYuNSAxaC0xLjc1bC0xLjc1LTIuMjVWMTVIMTFWOWgxLjV2Mi4yNUwxNC4yNSA5SDE2bC0yLjI1IDNMMTYgMTV6bTQtMi41aC0xLjVWMTRoLTF2LTEuNUgxNnYtMWgxLjVWMTBoMXYxLjVIMjB2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kOEsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTIuNWgxLjVWMTRIOHpNOCAxMGgxLjV2MS41SDh6bTExLTdINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tOCAxMWMwIC41NS0uNDUgMS0xIDFINy41Yy0uNTUgMC0xLS40NS0xLTF2LTRjMC0uNTUuNDUtMSAxLTFIMTBjLjU1IDAgMSAuNDUgMSAxdjR6bTcgMWgtMS43NWwtMS43NS0yLjI1VjE1SDEzVjloMS41djIuMjVMMTYuMjUgOUgxOGwtMi4yNSAzTDE4IDE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQ5a1BsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSAxMEg4djEuNUg2LjV6TTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek05LjUgMTRjMCAuNTUtLjQ1IDEtMSAxSDV2LTEuNWgzdi0xSDZjLS41NSAwLTEtLjQ1LTEtMVYxMGMwLS41NS40NS0xIDEtMWgyLjVjLjU1IDAgMSAuNDUgMSAxdjR6bTYuNSAxaC0xLjc1bC0xLjc1LTIuMjVWMTVIMTFWOWgxLjV2Mi4yNUwxNC4yNSA5SDE2bC0yLjI1IDNMMTYgMTV6bTQtMi41aC0xLjVWMTRoLTF2LTEuNUgxNnYtMWgxLjVWMTBoMXYxLjVIMjB2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kOUsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTBoMS41djEuNUg4em0xMS03SDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTggMTFjMCAuNTUtLjQ1IDEtMSAxSDYuNXYtMS41aDN2LTFoLTJjLS41NSAwLTEtLjQ1LTEtMVYxMGMwLS41NS40NS0xIDEtMUgxMGMuNTUgMCAxIC40NSAxIDF2NHptNyAxaC0xLjc1bC0xLjc1LTIuMjVWMTVIMTNWOWgxLjV2Mi4yNUwxNi4yNSA5SDE4bC0yLjI1IDNMMTggMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZFRvUXVldWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xMSAwLTIgLjg5LTIgMnYxMmEyIDIgMCAwIDAgMiAyaDV2Mmg4di0yaDVjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjMgNWEyIDIgMCAwIDAtMi0yem0wIDE0SDNWNWgxOHYxMnptLTUtN3YyaC0zdjNoLTJ2LTNIOHYtMmgzVjdoMnYzaDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFpcnBsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDIyaDEybC02LTZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg0di0ySDNWNWgxOHYxMmgtNHYyaDRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWxidW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE0LjVjLTIuNDkgMC00LjUtMi4wMS00LjUtNC41UzkuNTEgNy41IDEyIDcuNXM0LjUgMi4wMSA0LjUgNC41LTIuMDEgNC41LTQuNSA0LjV6bTAtNS41Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFydFRyYWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTNoLTh2LTJoOHYyem0wLTZoLTh2Mmg4Vjd6bS04IDEwaDh2LTJoLTh2MnptLTItOHY2YzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0yVjljMC0xLjEuOS0yIDItMmg2YzEuMSAwIDIgLjkgMiAyem0tMS41IDYtMi4yNS0zLTEuNzUgMi4yNi0xLjI1LTEuNTFMMy41IDE1aDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEF1ZGlvRmlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDJINmMtMS4xIDAtMS45OS45LTEuOTkgMkw0IDIwYzAgMS4xLjg5IDIgMS45OSAySDE4YzEuMSAwIDItLjkgMi0yVjhsLTYtNnptMiAxMWgtM3YzLjc1YzAgMS4yNC0xLjAxIDIuMjUtMi4yNSAyLjI1UzguNSAxNy45OSA4LjUgMTYuNzVzMS4wMS0yLjI1IDIuMjUtMi4yNWMuNDYgMCAuODkuMTQgMS4yNS4zOFYxMWg0djJ6bS0zLTRWMy41TDE4LjUgOUgxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXZUaW1lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE3YzAgLjU1LjQ1IDEgMSAxczEtLjQ1IDEtMS0uNDUtMS0xLTEtMSAuNDUtMSAxem0wLTE0djRoMlY1LjA4YzMuMzkuNDkgNiAzLjM5IDYgNi45MiAwIDMuODctMy4xMyA3LTcgN3MtNy0zLjEzLTctN2MwLTEuNjguNTktMy4yMiAxLjU4LTQuNDJMMTIgMTNsMS40MS0xLjQxLTYuOC02Ljh2LjAyQzQuNDIgNi40NSAzIDkuMDUgMyAxMmMwIDQuOTcgNC4wMiA5IDkgOWE5IDkgMCAwIDAgMC0xOGgtMXptNyA5YzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxIC40NSAxIDEgMSAxLS40NSAxLTF6TTYgMTJjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xLS40NS0xLTEtMS0xIC40NS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJyYW5kaW5nV2F0ZXJtYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNmgtOXYtNmg5djZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbGxUb0FjdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZIM3YtM2gxOHYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDbG9zZWRDYXB0aW9uRGlzYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjgzIDRIMTljMS4xIDAgMiAuOSAyIDJ2MTJjMCAuMDUtLjAxLjEtLjAyLjE2bC0zLjM4LTMuMzhjLjI0LS4xOS40LS40Ni40LS43OHYtMWgtMS41di41aC0uMTdsLTEuODMtMS44M1YxMC41aDJ2LjVIMTh2LTFjMC0uNTUtLjQ1LTEtMS0xaC0zYy0uNTUgMC0xIC40NS0xIDF2LjE3TDYuODMgNHptMTIuOTUgMTguNjFMMTcuMTcgMjBINWEyIDIgMCAwIDEtMi0yVjZjMC0uMDUuMDItLjEuMDItLjE1TDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOCAxOC4zOC0xLjQgMS40MnpNMTEgMTMuODNsLS44My0uODNIOS41di41aC0ydi0zaC4xN0w2LjQgOS4yMmMtLjI0LjE5LS40LjQ2LS40Ljc4djRjMCAuNTUuNDUgMSAxIDFoM2MuNTUgMCAxLS40NSAxLTF2LS4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2xvc2VkQ2FwdGlvbk9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuNSA1LjV2MTNoLTE1di0xM2gxNXpNMTkgNEg1YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0tOCA3SDkuNXYtLjVoLTJ2M2gyVjEzSDExdjFjMCAuNTUtLjQ1IDEtMSAxSDdjLS41NSAwLTEtLjQ1LTEtMXYtNGMwLS41NS40NS0xIDEtMWgzYy41NSAwIDEgLjQ1IDEgMXYxem03IDBoLTEuNXYtLjVoLTJ2M2gyVjEzSDE4djFjMCAuNTUtLjQ1IDEtMSAxaC0zYy0uNTUgMC0xLS40NS0xLTF2LTRjMC0uNTUuNDUtMSAxLTFoM2MuNTUgMCAxIC40NSAxIDF2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2xvc2VkQ2FwdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDRINWEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptLTggN0g5LjV2LS41aC0ydjNoMlYxM0gxMXYxYzAgLjU1LS40NSAxLTEgMUg3Yy0uNTUgMC0xLS40NS0xLTF2LTRjMC0uNTUuNDUtMSAxLTFoM2MuNTUgMCAxIC40NSAxIDF2MXptNyAwaC0xLjV2LS41aC0ydjNoMlYxM0gxOHYxYzAgLjU1LS40NSAxLTEgMWgtM2MtLjU1IDAtMS0uNDUtMS0xdi00YzAtLjU1LjQ1LTEgMS0xaDNjLjU1IDAgMSAuNDUgMSAxdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbnRyb2xDYW1lcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41NCA1LjU0IDEzLjc3IDcuMyAxMiA1LjU0IDEwLjIzIDcuMyA4LjQ2IDUuNTQgMTIgMnptMi45MiAxMC0xLjc2LTEuNzdMMTguNDYgMTJsLTEuNzYtMS43NyAxLjc2LTEuNzdMMjIgMTJ6bS0xMCAyLjkyIDEuNzctMS43NkwxMiAxOC40NmwxLjc3LTEuNzYgMS43NyAxLjc2TDEyIDIyem0tMi45Mi0xMCAxLjc2IDEuNzdMNS41NCAxMmwxLjc2IDEuNzctMS43NiAxLjc3TDIgMTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiM1wifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFcXVhbGl6ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAyMGg0VjRoLTR2MTZ6bS02IDBoNHYtOEg0djh6TTE2IDl2MTFoNFY5aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFeHBsaWNpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNCA2aC00djJoNHYyaC00djJoNHYySDlWN2g2djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZhc3RGb3J3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNCAxOCA4LjUtNkw0IDZ2MTJ6bTktMTJ2MTJsOC41LTZMMTMgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmFzdFJld2luZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE4VjZsLTguNSA2IDguNSA2em0uNS02IDguNSA2VjZsLTguNSA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGZWF0dXJlZFBsYXlMaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTkgOEgzVjloOXYyem0wLTRIM1Y1aDl2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmVhdHVyZWRWaWRlbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS05IDlIM1Y1aDl2N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmliZXJEdnIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy41IDEwLjVoMnYxaC0ydi0xem0tMTMgMGgydjNoLTJ2LTN6TTIxIDNIM2MtMS4xMSAwLTIgLjg5LTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE4YTIgMiAwIDAgMCAyLTJWNWMwLTEuMTEtLjg5LTItMi0yek04IDEzLjVjMCAuODUtLjY1IDEuNS0xLjUgMS41SDNWOWgzLjVjLjg1IDAgMS41LjY1IDEuNSAxLjV2M3ptNC42MiAxLjVoLTEuNUw5LjM3IDloMS41bDEgMy40MyAxLTMuNDNoMS41bC0xLjc1IDZ6TTIxIDExLjVjMCAuNi0uNCAxLjE1LS45IDEuNEwyMSAxNWgtMS41bC0uODUtMkgxNy41djJIMTZWOWgzLjVjLjg1IDAgMS41LjY1IDEuNSAxLjV2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmliZXJNYW51YWxSZWNvcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTI0IDI0SDBWMGgyNHYyNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCI4XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpYmVyTmV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY2YzAtMS4xMS0uODktMi0yLTJ6TTguNSAxNUg3LjNsLTIuNTUtMy41VjE1SDMuNVY5aDEuMjVsMi41IDMuNVY5SDguNXY2em01LTQuNzRIMTF2MS4xMmgyLjV2MS4yNkgxMXYxLjExaDIuNVYxNWgtNFY5aDR2MS4yNnptNyAzLjc0YzAgLjU1LS40NSAxLTEgMWgtNGMtLjU1IDAtMS0uNDUtMS0xVjloMS4yNXY0LjUxaDEuMTNWOS45OWgxLjI1djMuNTFoMS4xMlY5aDEuMjV2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmliZXJQaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUgMTAuNWgydjFoLTJ6TTIwIDRINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMThjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWNmMwLTEuMTEtLjg5LTItMi0yek05IDExLjVjMCAuODUtLjY1IDEuNS0xLjUgMS41aC0ydjJINFY5aDMuNWMuODUgMCAxLjUuNjUgMS41IDEuNXYxem0zLjUgMy41SDExVjloMS41djZ6bTcuNSAwaC0xLjJsLTIuNTUtMy41VjE1SDE1VjloMS4yNWwyLjUgMy41VjlIMjB2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmliZXJTbWFydFJlY29yZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMjQgMjRIMFYwaDI0djI0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjlcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiOFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA0LjI2djIuMDlhNS45OSA1Ljk5IDAgMCAxIDAgMTEuM3YyLjA5YzMuNDUtLjg5IDYtNC4wMSA2LTcuNzRzLTIuNTUtNi44NS02LTcuNzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcndhcmQxMCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDEzYzAgMy4zMS0yLjY5IDYtNiA2cy02LTIuNjktNi02IDIuNjktNiA2LTZ2NGw1LTUtNS01djRjLTQuNDIgMC04IDMuNTgtOCA4czMuNTggOCA4IDggOC0zLjU4IDgtOGgtMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuODYgMTUuOTR2LTQuMjdoLS4wOUw5IDEyLjN2LjY5bDEuMDEtLjMxdjMuMjZ6TTEyLjI1IDEzLjQ0di43NGMwIDEuOSAxLjMxIDEuODIgMS40NCAxLjgyLjE0IDAgMS40NC4wOSAxLjQ0LTEuODJ2LS43NGMwLTEuOS0xLjMxLTEuODItMS40NC0xLjgyLS4xNCAwLTEuNDQtLjA5LTEuNDQgMS44MnptMi4wNC0uMTJ2Ljk3YzAgLjc3LS4yMSAxLjAzLS41OSAxLjAzcy0uNi0uMjYtLjYtMS4wM3YtLjk3YzAtLjc1LjIyLTEuMDEuNTktMS4wMS4zOC0uMDEuNi4yNi42IDEuMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcndhcmQzMCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDEzYzAgMy4zMS0yLjY5IDYtNiA2cy02LTIuNjktNi02IDIuNjktNiA2LTZ2NGw1LTUtNS01djRjLTQuNDIgMC04IDMuNTgtOCA4czMuNTggOCA4IDggOC0zLjU4IDgtOGgtMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMDYgMTUuMzhjLS4yOSAwLS42Mi0uMTctLjYyLS41NGgtLjg1YzAgLjk3LjkgMS4yMyAxLjQ1IDEuMjMuODcgMCAxLjUxLS40NiAxLjUxLTEuMjUgMC0uNjYtLjQ1LS45LS43MS0xIC4xMS0uMDUuNjUtLjMyLjY1LS45MiAwLS4yMS0uMDUtMS4yMi0xLjQ0LTEuMjItLjYyIDAtMS40LjM1LTEuNCAxLjE2aC44NWMwLS4zNC4zMS0uNDguNTctLjQ4LjU5IDAgLjU4LjUuNTguNTQgMCAuNTItLjQxLjU5LS42My41OWgtLjQ2di42NmguNDVjLjY1IDAgLjcuNDIuNy42NCAwIC4zMi0uMjEuNTktLjY1LjU5ek0xMy44NSAxMS42OGMtLjE0IDAtMS40NC0uMDgtMS40NCAxLjgydi43NGMwIDEuOSAxLjMxIDEuODIgMS40NCAxLjgyLjE0IDAgMS40NC4wOSAxLjQ0LTEuODJ2LS43NGMuMDEtMS45MS0xLjMtMS44Mi0xLjQ0LTEuODJ6bS42IDIuNjdjMCAuNzctLjIxIDEuMDMtLjU5IDEuMDNzLS42LS4yNi0uNi0xLjAzdi0uOTdjMC0uNzUuMjItMS4wMS41OS0xLjAxLjM4IDAgLjYuMjYuNiAxLjAxdi45N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9yd2FyZDUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM2MwIDMuMzEtMi42OSA2LTYgNnMtNi0yLjY5LTYtNiAyLjY5LTYgNi02djRsNS01LTUtNXY0Yy00LjQyIDAtOCAzLjU4LTggOHMzLjU4IDggOCA4IDgtMy41OCA4LThoLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjAzIDE1LjM4Yy0uNDQgMC0uNTgtLjMxLS42LS41NmgtLjg0Yy4wMy44NS43OSAxLjI1IDEuNDQgMS4yNS45MyAwIDEuNDQtLjYzIDEuNDQtMS40MyAwLTEuMzMtLjk3LTEuNDQtMS4zLTEuNDQtLjIgMC0uNDMuMDUtLjY0LjE2bC4xMS0uOTJoMS43di0uNzFoLTIuMzlsLS4yNSAyLjE3LjY3LjE3Yy4xMy0uMTMuMjgtLjIzLjU3LS4yMy40IDAgLjY5LjIzLjY5Ljc1LS4wMS4wNS4wMi43OS0uNi43OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR2FtZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA3LjVWMkg5djUuNWwzIDMgMy0zek03LjUgOUgydjZoNS41bDMtMy0zLTN6TTkgMTYuNVYyMmg2di01LjVsLTMtMy0zIDN6TTE2LjUgOWwtMyAzIDMgM0gyMlY5aC01LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tOCAxMkg5LjV2LTJoLTJ2Mkg2VjloMS41djIuNWgyVjlIMTF2NnptMi02aDRjLjU1IDAgMSAuNDUgMSAxdjRjMCAuNTUtLjQ1IDEtMSAxaC00Vjl6bTEuNSA0LjVoMnYtM2gtMnYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZWFyaW5nRGlzYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjAzIDMuMkM3LjE1IDIuNDQgOC41MSAyIDEwIDJjMy45MyAwIDcgMy4wNyA3IDcgMCAxLjI2LS4zOCAyLjY1LTEuMDcgMy45LS4wMi4wNC0uMDUuMDgtLjA4LjEzbC0xLjQ4LTEuNDhjLjQtLjg2LjYzLTEuNzUuNjMtMi41NSAwLTIuOC0yLjItNS01LTUtLjkyIDAtMS43Ni4yNi0yLjUuNjdMNi4wMyAzLjJ6bTExLjE4IDExLjE4IDEuNDMgMS40M0MyMC4xMSAxMy45MyAyMSAxMS41NyAyMSA5YzAtMy4wNC0xLjIzLTUuNzktMy4yMi03Ljc4bC0xLjQyIDEuNDJBOC45MzcgOC45MzcgMCAwIDEgMTkgOWMwIDIuMDItLjY3IDMuODgtMS43OSA1LjM4ek0xMCA2LjVjLS4yMSAwLS40LjAzLS41OS4wOGwzLjAxIDMuMDFjLjA1LS4xOS4wOC0uMzguMDgtLjU5QTIuNSAyLjUgMCAwIDAgMTAgNi41em0xMS4xOSAxNC42OUwyLjgxIDIuODEgMS4zOSA0LjIybDIuMTMgMi4xM0MzLjE5IDcuMTYgMyA4LjA1IDMgOWgyYzAtLjM2LjA1LS43MS4xMi0xLjA1bDYuNjEgNi42MWMtLjg4LjY4LTEuNzggMS40MS0yLjI3IDIuOS0uNSAxLjUtMSAyLjAxLTEuNzEgMi4zOC0uMTkuMS0uNDYuMTYtLjc1LjE2LTEuMSAwLTItLjktMi0ySDNhMy45OTkgMy45OTkgMCAwIDAgNS42NCAzLjY1YzEuMzYtLjcxIDIuMTMtMS43MyAyLjczLTMuNTUuMzItLjk4LjktMS40MyAxLjcxLTIuMDUuMDMtLjAyLjA1LS4wNC4wOC0uMDZsNi42MiA2LjYyIDEuNDEtMS40MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGVhcmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDIwYy0uMjkgMC0uNTYtLjA2LS43Ni0uMTUtLjcxLS4zNy0xLjIxLS44OC0xLjcxLTIuMzgtLjUxLTEuNTYtMS40Ny0yLjI5LTIuMzktMy0uNzktLjYxLTEuNjEtMS4yNC0yLjMyLTIuNTNDOS4yOSAxMC45OCA5IDkuOTMgOSA5YzAtMi44IDIuMi01IDUtNXM1IDIuMiA1IDVoMmMwLTMuOTMtMy4wNy03LTctN1M3IDUuMDcgNyA5YzAgMS4yNi4zOCAyLjY1IDEuMDcgMy45LjkxIDEuNjUgMS45OCAyLjQ4IDIuODUgMy4xNS44MS42MiAxLjM5IDEuMDcgMS43MSAyLjA1LjYgMS44MiAxLjM3IDIuODQgMi43MyAzLjU1QTMuOTk5IDMuOTk5IDAgMCAwIDIxIDE4aC0yYzAgMS4xLS45IDItMiAyek03LjY0IDIuNjQgNi4yMiAxLjIyQzQuMjMgMy4yMSAzIDUuOTYgMyA5czEuMjMgNS43OSAzLjIyIDcuNzhsMS40MS0xLjQxQzYuMDEgMTMuNzQgNSAxMS40OSA1IDlzMS4wMS00Ljc0IDIuNjQtNi4zNnpNMTEuNSA5YTIuNSAyLjUgMCAwIDAgNSAwIDIuNSAyLjUgMCAwIDAtNSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIaWdoUXVhbGl0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDRINWEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptLTggMTFIOS41di0yaC0ydjJINlY5aDEuNXYyLjVoMlY5SDExdjZ6bTctMWMwIC41NS0uNDUgMS0xIDFoLS43NXYxLjVoLTEuNVYxNUgxNGMtLjU1IDAtMS0uNDUtMS0xdi00YzAtLjU1LjQ1LTEgMS0xaDNjLjU1IDAgMSAuNDUgMSAxdjR6bS0zLjUtLjVoMnYtM2gtMnYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbnRlcnByZXRlck1vZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC41IDE2LjVjLS44MyAwLTEuNS0uNjctMS41LTEuNXYtMi41YzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41VjE1YzAgLjgzLS42NyAxLjUtMS41IDEuNXpNMjAgMjBoMXYtMS41NGMxLjY5LS4yNCAzLTEuNyAzLTMuNDZoLTFhMi41IDIuNSAwIDAgMS01IDBoLTFjMCAxLjc2IDEuMzEgMy4yMiAzIDMuNDZWMjB6TTkgMTJjLTIuMjEgMC00LTEuNzktNC00YTMuOTk5IDMuOTk5IDAgMCAxIDUuMzQtMy43N0E1LjkzOCA1LjkzOCAwIDAgMCA5IDhjMCAxLjQzLjUgMi43NCAxLjM0IDMuNzctLjQyLjE1LS44Ny4yMy0xLjM0LjIzem0tMS44OSAxLjEzQTQuOTY1IDQuOTY1IDAgMCAwIDUgMTcuMjJWMjBIMXYtMi43OGMwLTEuMTIuNjEtMi4xNSAxLjYxLTIuNjYgMS4yNC0uNjQgMi43Ni0xLjE5IDQuNS0xLjQzek0xMSA4YzAtMi4yMSAxLjc5LTQgNC00czQgMS43OSA0IDQtMS43OSA0LTQgNC00LTEuNzktNC00em03LjMyIDEyYTQuOTk3IDQuOTk3IDAgMCAxLTIuODItNC41YzAtLjg5LjIzLTEuNzMuNjQtMi40NS0uMzctLjAzLS43NS0uMDUtMS4xNC0uMDUtMi41MyAwLTQuNzEuNy02LjM5IDEuNTZBMi45NyAyLjk3IDAgMCAwIDcgMTcuMjJWMjBoMTEuMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExpYnJhcnlBZGRDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tNy41MyAxMkw5IDEwLjVsMS40LTEuNDEgMi4wNyAyLjA4TDE3LjYgNiAxOSA3LjQxIDEyLjQ3IDE0ek00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGlicmFyeUFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2em0xNi00SDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTEgOWgtNHY0aC0ydi00SDlWOWg0VjVoMnY0aDR2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGlicmFyeUJvb2tzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2SDJ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZ6bTE2LTRIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tMSA5SDlWOWgxMHYyem0tNCA0SDl2LTJoNnYyem00LThIOVY1aDEwdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExpYnJhcnlNdXNpYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tMiA1aC0zdjUuNWEyLjUgMi41IDAgMCAxLTUgMCAyLjUgMi41IDAgMCAxIDIuNS0yLjVjLjU3IDAgMS4wOC4xOSAxLjUuNTFWNWg0djJ6TTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb29wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNFYxTDggNWw0IDRWNmMzLjMxIDAgNiAyLjY5IDYgNiAwIDEuMDEtLjI1IDEuOTctLjcgMi44bDEuNDYgMS40NkE3LjkzIDcuOTMgMCAwIDAgMjAgMTJjMC00LjQyLTMuNTgtOC04LTh6bTAgMTRjLTMuMzEgMC02LTIuNjktNi02IDAtMS4wMS4yNS0xLjk3LjctMi44TDUuMjQgNy43NEE3LjkzIDcuOTMgMCAwIDAgNCAxMmMwIDQuNDIgMy41OCA4IDggOHYzbDQtNC00LTR2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTHlyaWNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgOWMwLTIuMDQgMS4yNC0zLjc5IDMtNC41N1Y0YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAyMmw0LTRoOWMxLjEgMCAyLS45IDItMnYtMi40MmMtMS43Ni0uNzgtMy0yLjUzLTMtNC41OHptLTQgNUg2di0yaDR2MnptMy0zSDZWOWg3djJ6bTAtM0g2VjZoN3YyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2LjE4Yy0uMzEtLjExLS42NS0uMTgtMS0uMTgtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zVjNoMlYxaC00djUuMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1pY05vbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNGMxLjY2IDAgMi45OS0xLjM0IDIuOTktM0wxNSA1YzAtMS42Ni0xLjM0LTMtMy0zUzkgMy4zNCA5IDV2NmMwIDEuNjYgMS4zNCAzIDMgM3ptLTEuMi05LjFjMC0uNjYuNTQtMS4yIDEuMi0xLjIuNjYgMCAxLjIuNTQgMS4yIDEuMmwtLjAxIDYuMmMwIC42Ni0uNTMgMS4yLTEuMTkgMS4yLS42NiAwLTEuMi0uNTQtMS4yLTEuMlY0Ljl6bTYuNSA2LjFjMCAzLTIuNTQgNS4xLTUuMyA1LjFTNi43IDE0IDYuNyAxMUg1YzAgMy40MSAyLjcyIDYuMjMgNiA2LjcyVjIxaDJ2LTMuMjhjMy4yOC0uNDggNi0zLjMgNi02LjcyaC0xLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1pY09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxMWgtMS43YzAgLjc0LS4xNiAxLjQzLS40MyAyLjA1bDEuMjMgMS4yM2MuNTYtLjk4LjktMi4wOS45LTMuMjh6bS00LjAyLjE3YzAtLjA2LjAyLS4xMS4wMi0uMTdWNWMwLTEuNjYtMS4zNC0zLTMtM1M5IDMuMzQgOSA1di4xOGw1Ljk4IDUuOTl6TTQuMjcgMyAzIDQuMjdsNi4wMSA2LjAxVjExYzAgMS42NiAxLjMzIDMgMi45OSAzIC4yMiAwIC40NC0uMDMuNjUtLjA4bDEuNjYgMS42NmMtLjcxLjMzLTEuNS41Mi0yLjMxLjUyLTIuNzYgMC01LjMtMi4xLTUuMy01LjFINWMwIDMuNDEgMi43MiA2LjIzIDYgNi43MlYyMWgydi0zLjI4Yy45MS0uMTMgMS43Ny0uNDUgMi41NC0uOUwxOS43MyAyMSAyMSAxOS43MyA0LjI3IDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1pYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE0YzEuNjYgMCAyLjk5LTEuMzQgMi45OS0zTDE1IDVjMC0xLjY2LTEuMzQtMy0zLTNTOSAzLjM0IDkgNXY2YzAgMS42NiAxLjM0IDMgMyAzem01LjMtM2MwIDMtMi41NCA1LjEtNS4zIDUuMVM2LjcgMTQgNi43IDExSDVjMCAzLjQxIDIuNzIgNi4yMyA2IDYuNzJWMjFoMnYtMy4yOGMzLjI4LS40OCA2LTMuMyA2LTYuNzJoLTEuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWlzc2VkVmlkZW9DYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMC41VjdjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMXYxMGMwIC41NS40NSAxIDEgMWgxMmMuNTUgMCAxLS40NSAxLTF2LTMuNWw0IDR2LTExbC00IDR6TTEwIDE1bC0zLjg5LTMuODl2Mi41NUg1VjkuMjJoNC40NHYxLjExSDYuODlsMy4xMSAzLjEgNC4yMi00LjIyLjc4Ljc5LTUgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW92aWVFZGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxMGgxOFY2YzAtMS4xLS45LTItMi0yaC0zbDIgNGgtM2wtMi00aC0ybDIgNGgtM0w5IDRIN2wyIDRINkw0IDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDh2LTJINHYtOHpNMTQgMTguODhWMjFoMi4xMmw1LjE3LTUuMTctMi4xMi0yLjEyek0yMi43MSAxM2wtLjcxLS43MWEuOTk2Ljk5NiAwIDAgMC0xLjQxIDBsLS43MS43MUwyMiAxNS4xMmwuNzEtLjcxYS45OTYuOTk2IDAgMCAwIDAtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW92aWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOCA0IDIgNGgtM2wtMi00aC0ybDIgNGgtM2wtMi00SDhsMiA0SDdMNSA0SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE11c2ljVmlkZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDNWNWgxOHYxNHpNOCAxNWMwLTEuNjYgMS4zNC0zIDMtMyAuMzUgMCAuNjkuMDcgMSAuMThWNmg1djJoLTN2Ny4wM0EzLjAwMyAzLjAwMyAwIDAgMSAxMSAxOGMtMS42NiAwLTMtMS4zNC0zLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5ld1JlbGVhc2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjMgMTItMi40NC0yLjc4LjM0LTMuNjgtMy42MS0uODItMS44OS0zLjE4TDEyIDMgOC42IDEuNTQgNi43MSA0LjcybC0zLjYxLjgxLjM0IDMuNjhMMSAxMmwyLjQ0IDIuNzgtLjM0IDMuNjkgMy42MS44MiAxLjg5IDMuMThMMTIgMjFsMy40IDEuNDYgMS44OS0zLjE4IDMuNjEtLjgyLS4zNC0zLjY4TDIzIDEyem0tMTAgNWgtMnYtMmgydjJ6bTAtNGgtMlY3aDJ2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm90SW50ZXJlc3RlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04IDAtMS44NS42My0zLjU1IDEuNjktNC45TDE2LjkgMTguMzFBNy45MDIgNy45MDIgMCAwIDEgMTIgMjB6bTYuMzEtMy4xTDcuMSA1LjY5QTcuOTAyIDcuOTAyIDAgMCAxIDEyIDRjNC40MiAwIDggMy41OCA4IDggMCAxLjg1LS42MyAzLjU1LTEuNjkgNC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMiAxMC02LTZINGMtMS4xIDAtMiAuOS0yIDJ2MTIuMDFjMCAxLjEuOSAxLjk5IDIgMS45OWwxNi0uMDFjMS4xIDAgMi0uODkgMi0xLjk5di04em0tNy00LjUgNS41IDUuNUgxNVY1LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBhdXNlQ2lyY2xlRmlsbGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptLTEgMTRIOVY4aDJ2OHptNCAwaC0yVjhoMnY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQYXVzZUNpcmNsZU91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDE2aDJWOEg5djh6bTMtMTRDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em0xLTRoMlY4aC0ydjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBhdXNlQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptLTEgMTRIOVY4aDJ2OHptNCAwaC0yVjhoMnY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQYXVzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTloNFY1SDZ2MTR6bTgtMTR2MTRoNFY1aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQbGF5QXJyb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDV2MTRsMTEtN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGxheUNpcmNsZUZpbGxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bS0yIDE0LjV2LTlsNiA0LjUtNiA0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBsYXlDaXJjbGVPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAgMTYuNSA2LTQuNS02LTQuNXY5ek0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGxheUNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTkuNSAxNi41di05bDcgNC41LTcgNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQbGF5RGlzYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6bTExLjc1IDExLjQ3LS4xMS0uMTEuMTEuMTF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggNS4xOVY1bDExIDctMi41NSAxLjYzTDggNS4xOXptMTIgMTQuNTQtNS4xMS01LjExTDggNy43MyA0LjI3IDQgMyA1LjI3bDUgNVYxOWw1LjMzLTMuNCA1LjQgNS40TDIwIDE5LjczelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQbGF5bGlzdEFkZENoZWNrQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnpNNyA3aDd2Mkg3Vjd6bTAgM2g3djJIN3YtMnptMyA1SDd2LTJoM3Yyem00LjA1IDMuMzYtMi44My0yLjgzIDEuNDEtMS40MSAxLjQxIDEuNDFMMTcuNTkgMTIgMTkgMTMuNDFsLTQuOTUgNC45NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGxheWxpc3RBZGRDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTBoMTF2Mkgzek0zIDZoMTF2Mkgzek0zIDE0aDd2Mkgzek0yMC41OSAxMS45M2wtNC4yNSA0LjI0LTIuMTItMi4xMi0xLjQxIDEuNDFMMTYuMzQgMTkgMjIgMTMuMzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBsYXlsaXN0QWRkQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnpNNyA3aDd2Mkg3Vjd6bTMgOEg3di0yaDN2MnptLTMtM3YtMmg3djJIN3ptMTIgM2gtMnYyaC0ydi0yaC0ydi0yaDJ2LTJoMnYyaDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGxheWxpc3RBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxMEgzdjJoMTF2LTJ6bTAtNEgzdjJoMTFWNnptNCA4di00aC0ydjRoLTR2Mmg0djRoMnYtNGg0di0yaC00ek0zIDE2aDd2LTJIM3YyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQbGF5bGlzdFBsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDEwaDExdjJIM3pNMyA2aDExdjJIM3pNMyAxNGg3djJIM3pNMTYgMTN2OGw2LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBsYXlsaXN0UmVtb3ZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTBIM3YyaDExdi0yem0wLTRIM3YyaDExVjZ6TTMgMTZoN3YtMkgzdjJ6bTExLjQxIDZMMTcgMTkuNDEgMTkuNTkgMjIgMjEgMjAuNTkgMTguNDEgMTggMjEgMTUuNDEgMTkuNTkgMTQgMTcgMTYuNTkgMTQuNDEgMTQgMTMgMTUuNDEgMTUuNTkgMTggMTMgMjAuNTkgMTQuNDEgMjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFF1ZXVlTXVzaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA2SDN2MmgxMlY2em0wIDRIM3YyaDEydi0yek0zIDE2aDh2LTJIM3Yyek0xNyA2djguMThjLS4zMS0uMTEtLjY1LS4xOC0xLS4xOC0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTNWOGgzVjZoLTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFF1ZXVlUGxheU5leHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMTEgMC0yIC44OS0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg1djJoOHYtMmgydi0ySDNWNWgxOHY4aDJWNWEyIDIgMCAwIDAtMi0yem0tOCA3VjdoLTJ2M0g4djJoM3YzaDJ2LTNoM3YtMmgtM3ptMTEgOC00LjUgNC41TDE4IDIxbDMtMy0zLTMgMS41LTEuNUwyNCAxOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUXVldWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnptMTYtNEg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS0xIDloLTR2NGgtMnYtNEg5VjloNFY1aDJ2NGg0djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJhZGlvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy4yNCA2LjE1QzIuNTEgNi40MyAyIDcuMTcgMiA4djEyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMlY4YzAtMS4xMS0uODktMi0yLTJIOC4zbDguMjYtMy4zNEwxNS44OCAxIDMuMjQgNi4xNXpNNyAyMGMtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtMyAzIDEuMzQgMyAzLTEuMzQgMy0zIDN6bTEzLThoLTJ2LTJoLTJ2Mkg0VjhoMTZ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVjZW50QWN0b3JzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNXYxNGgyVjVoLTJ6bS00IDE0aDJWNWgtMnYxNHpNMTQgNUgyYy0uNTUgMC0xIC40NS0xIDF2MTJjMCAuNTUuNDUgMSAxIDFoMTJjLjU1IDAgMS0uNDUgMS0xVjZjMC0uNTUtLjQ1LTEtMS0xek04IDcuNzVjMS4yNCAwIDIuMjUgMS4wMSAyLjI1IDIuMjVTOS4yNCAxMi4yNSA4IDEyLjI1IDUuNzUgMTEuMjQgNS43NSAxMCA2Ljc2IDcuNzUgOCA3Ljc1ek0xMi41IDE3aC05di0uNzVjMC0xLjUgMy0yLjI1IDQuNS0yLjI1czQuNS43NSA0LjUgMi4yNVYxN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVtb3ZlRnJvbVF1ZXVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjExIDAtMiAuODktMiAydjEyYTIgMiAwIDAgMCAyIDJoNXYyaDh2LTJoNWMxLjEgMCAxLjk5LS45IDEuOTktMkwyMyA1YTIgMiAwIDAgMC0yLTJ6bTAgMTRIM1Y1aDE4djEyem0tNS03djJIOHYtMmg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZXBlYXRPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIxIDFIM2MtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yek03IDdoMTB2M2w0LTQtNC00djNINXY2aDJWN3ptMTAgMTBIN3YtM2wtNCA0IDQgNHYtM2gxMnYtNmgtMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZXBlYXRPbmVPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIxIDFIM2MtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yek03IDdoMTB2M2w0LTQtNC00djNINXY2aDJWN3ptMTAgMTBIN3YtM2wtNCA0IDQgNHYtM2gxMnYtNmgtMnY0em0tNC0yVjloLTFsLTIgMXYxaDEuNXY0SDEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZXBlYXRPbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDdoMTB2M2w0LTQtNC00djNINXY2aDJWN3ptMTAgMTBIN3YtM2wtNCA0IDQgNHYtM2gxMnYtNmgtMnY0em0tNC0yVjloLTFsLTIgMXYxaDEuNXY0SDEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZXBlYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDdoMTB2M2w0LTQtNC00djNINXY2aDJWN3ptMTAgMTBIN3YtM2wtNCA0IDQgNHYtM2gxMnYtNmgtMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZXBsYXkxMCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk5IDVWMWwtNSA1IDUgNVY3YzMuMzEgMCA2IDIuNjkgNiA2cy0yLjY5IDYtNiA2LTYtMi42OS02LTZoLTJjMCA0LjQyIDMuNTggOCA4IDhzOC0zLjU4IDgtOC0zLjU4LTgtOC04elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC44OSAxNmgtLjg1di0zLjI2bC0xLjAxLjMxdi0uNjlsMS43Ny0uNjNoLjA5VjE2ek0xNS4xNyAxNC4yNGMwIC4zMi0uMDMuNi0uMS44MnMtLjE3LjQyLS4yOS41Ny0uMjguMjYtLjQ1LjMzLS4zNy4xLS41OS4xLS40MS0uMDMtLjU5LS4xLS4zMy0uMTgtLjQ2LS4zMy0uMjMtLjM0LS4zLS41Ny0uMTEtLjUtLjExLS44MnYtLjc0YzAtLjMyLjAzLS42LjEtLjgycy4xNy0uNDIuMjktLjU3LjI4LS4yNi40NS0uMzMuMzctLjEuNTktLjEuNDEuMDMuNTkuMS4zMy4xOC40Ni4zMy4yMy4zNC4zLjU3LjExLjUuMTEuODJ2Ljc0em0tLjg1LS44NmMwLS4xOS0uMDEtLjM1LS4wNC0uNDhzLS4wNy0uMjMtLjEyLS4zMS0uMTEtLjE0LS4xOS0uMTctLjE2LS4wNS0uMjUtLjA1LS4xOC4wMi0uMjUuMDUtLjE0LjA5LS4xOS4xNy0uMDkuMTgtLjEyLjMxLS4wNC4yOS0uMDQuNDh2Ljk3YzAgLjE5LjAxLjM1LjA0LjQ4cy4wNy4yNC4xMi4zMi4xMS4xNC4xOS4xNy4xNi4wNS4yNS4wNS4xOC0uMDIuMjUtLjA1LjE0LS4wOS4xOS0uMTcuMDktLjE5LjExLS4zMi4wNC0uMjkuMDQtLjQ4di0uOTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlcGxheTMwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNVYxTDcgNmw1IDVWN2MzLjMxIDAgNiAyLjY5IDYgNnMtMi42OSA2LTYgNi02LTIuNjktNi02SDRjMCA0LjQyIDMuNTggOCA4IDhzOC0zLjU4IDgtOC0zLjU4LTgtOC04elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjU2IDEzLjQ5aC40NWMuMjEgMCAuMzctLjA1LjQ4LS4xNnMuMTYtLjI1LjE2LS40M2EuNTM4LjUzOCAwIDAgMC0uMTUtLjM5Yy0uMDUtLjA1LS4xMS0uMDktLjE4LS4xMXMtLjE2LS4wNC0uMjUtLjA0Yy0uMDggMC0uMTUuMDEtLjIyLjAzcy0uMTMuMDUtLjE4LjEtLjA5LjA5LS4xMi4xNS0uMDUuMTMtLjA1LjJoLS44NWExLjA2IDEuMDYgMCAwIDEgLjQxLS44NWMuMTMtLjEuMjctLjE4LjQ0LS4yM3MuMzUtLjA4LjU0LS4wOGMuMjEgMCAuNDEuMDMuNTkuMDhzLjMzLjEzLjQ2LjIzLjIzLjIzLjMuMzguMTEuMzMuMTEuNTNhLjg0Mi44NDIgMCAwIDEtLjE3LjUyIDEuMSAxLjEgMCAwIDEtLjQ4LjM5Yy4yNC4wOS40Mi4yMS41NC4zOXMuMTguMzguMTguNjFjMCAuMi0uMDQuMzgtLjEyLjUzcy0uMTguMjktLjMyLjM5LS4yOS4xOS0uNDguMjQtLjM4LjA4LS42LjA4Yy0uMTggMC0uMzYtLjAyLS41My0uMDdzLS4zMy0uMTItLjQ2LS4yMy0uMjUtLjIzLS4zMy0uMzgtLjEyLS4zNC0uMTItLjU1aC44NWMwIC4wOC4wMi4xNS4wNS4yMnMuMDcuMTIuMTMuMTcuMTIuMDkuMi4xMS4xNi4wNC4yNS4wNGMuMSAwIC4xOS0uMDEuMjctLjA0cy4xNS0uMDcuMi0uMTIuMS0uMTEuMTMtLjE4LjA0LS4xNS4wNC0uMjRjMC0uMTEtLjAyLS4yMS0uMDUtLjI5cy0uMDgtLjE1LS4xNC0uMi0uMTMtLjA5LS4yMi0uMTEtLjE4LS4wNC0uMjktLjA0aC0uNDd2LS42NXpNMTUuMyAxNC4yNGMwIC4zMi0uMDMuNi0uMS44MnMtLjE3LjQyLS4yOS41Ny0uMjguMjYtLjQ1LjMzLS4zNy4xLS41OS4xLS40MS0uMDMtLjU5LS4xLS4zMy0uMTgtLjQ2LS4zMy0uMjMtLjM0LS4zLS41Ny0uMTEtLjUtLjExLS44MnYtLjc0YzAtLjMyLjAzLS42LjEtLjgycy4xNy0uNDIuMjktLjU3LjI4LS4yNi40NS0uMzMuMzctLjEuNTktLjEuNDEuMDMuNTkuMS4zMy4xOC40Ni4zMy4yMy4zNC4zLjU3LjExLjUuMTEuODJ2Ljc0em0tLjg1LS44NmMwLS4xOS0uMDEtLjM1LS4wNC0uNDhzLS4wNy0uMjMtLjEyLS4zMS0uMTEtLjE0LS4xOS0uMTctLjE2LS4wNS0uMjUtLjA1LS4xOC4wMi0uMjUuMDUtLjE0LjA5LS4xOS4xNy0uMDkuMTgtLjEyLjMxLS4wNC4yOS0uMDQuNDh2Ljk3YzAgLjE5LjAxLjM1LjA0LjQ4cy4wNy4yNC4xMi4zMi4xMS4xNC4xOS4xNy4xNi4wNS4yNS4wNS4xOC0uMDIuMjUtLjA1LjE0LS4wOS4xOS0uMTcuMDktLjE5LjExLS4zMmMuMDMtLjEzLjA0LS4yOS4wNC0uNDh2LS45N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVwbGF5NSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDVWMUw3IDZsNSA1VjdjMy4zMSAwIDYgMi42OSA2IDZzLTIuNjkgNi02IDYtNi0yLjY5LTYtNkg0YzAgNC40MiAzLjU4IDggOCA4czgtMy41OCA4LTgtMy41OC04LTgtOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAuNjkgMTMuOS4yNS0yLjE3aDIuMzl2LjcxaC0xLjdsLS4xMS45MmMuMDMtLjAyLjA3LS4wMy4xMS0uMDVzLjA5LS4wNC4xNS0uMDUuMTItLjAzLjE4LS4wNC4xMy0uMDIuMi0uMDJjLjIxIDAgLjM5LjAzLjU1LjFzLjMuMTYuNDEuMjguMi4yNy4yNS40NS4wOS4zOC4wOS42YzAgLjE5LS4wMy4zNy0uMDkuNTRzLS4xNS4zMi0uMjcuNDUtLjI3LjI0LS40NS4zMS0uMzkuMTItLjY0LjEyYy0uMTggMC0uMzYtLjAzLS41My0uMDhzLS4zMi0uMTQtLjQ2LS4yNC0uMjQtLjI0LS4zMi0uMzktLjEzLS4zMy0uMTMtLjUzaC44NGMuMDIuMTguMDguMzIuMTkuNDFzLjI1LjE1LjQyLjE1YS40OS40OSAwIDAgMCAuNDUtLjIzYy4wNC0uMDcuMDgtLjE1LjExLS4yNXMuMDMtLjIuMDMtLjMxLS4wMS0uMjEtLjA0LS4zMS0uMDctLjE3LS4xMy0uMjQtLjEzLS4xMi0uMjEtLjE1LS4xOS0uMDUtLjMtLjA1Yy0uMDggMC0uMTUuMDEtLjIuMDJzLS4xMS4wMy0uMTUuMDUtLjA4LjA1LS4xMi4wNy0uMDcuMDYtLjEuMDlsLS42Ny0uMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlcGxheUNpcmNsZUZpbGxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTYgMTBjMCAzLjMxLTIuNjkgNi02IDZzLTYtMi42OS02LTZoMmMwIDIuMjEgMS43OSA0IDQgNHM0LTEuNzkgNC00LTEuNzktNC00LTR2M0w4IDdsNC00djNjMy4zMSAwIDYgMi42OSA2IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlcGxheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDVWMUw3IDZsNSA1VjdjMy4zMSAwIDYgMi42OSA2IDZzLTIuNjkgNi02IDYtNi0yLjY5LTYtNkg0YzAgNC40MiAzLjU4IDggOCA4czgtMy41OCA4LTgtMy41OC04LTgtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTYgNmg0Yy41NSAwIDEgLjQ1IDEgMXY0YzAgLjU1LS40NSAxLTEgMWgtNFY5em0tMy41IDQuNXYtMUg3Yy0uNTUgMC0xLS40NS0xLTFWMTBjMC0uNTUuNDUtMSAxLTFoM2MuNTUgMCAxIC40NSAxIDF2MUg5LjV2LS41aC0ydjFIMTBjLjU1IDAgMSAuNDUgMSAxVjE0YzAgLjU1LS40NSAxLTEgMUg3Yy0uNTUgMC0xLS40NS0xLTF2LTFoMS41di41aDJ6bTUgMGgydi0zaC0ydjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNodWZmbGVPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIxIDFIM2MtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yek0xMC41OSA5LjE3IDUuNDEgNCA0IDUuNDFsNS4xNyA1LjE3IDEuNDItMS40MXpNMTQuNSA0bDIuMDQgMi4wNEw0IDE4LjU5IDUuNDEgMjAgMTcuOTYgNy40NiAyMCA5LjVWNGgtNS41em0uMzMgOS40MS0xLjQxIDEuNDEgMy4xMyAzLjEzTDE0LjUgMjBIMjB2LTUuNWwtMi4wNCAyLjA0LTMuMTMtMy4xM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2h1ZmZsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjU5IDkuMTcgNS40MSA0IDQgNS40MWw1LjE3IDUuMTcgMS40Mi0xLjQxek0xNC41IDRsMi4wNCAyLjA0TDQgMTguNTkgNS40MSAyMCAxNy45NiA3LjQ2IDIwIDkuNVY0aC01LjV6bS4zMyA5LjQxLTEuNDEgMS40MSAzLjEzIDMuMTNMMTQuNSAyMEgyMHYtNS41bC0yLjA0IDIuMDQtMy4xMy0zLjEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTa2lwTmV4dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTYgMTggOC41LTZMNiA2djEyek0xNiA2djEyaDJWNmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2tpcFByZXZpb3VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA2aDJ2MTJINnptMy41IDYgOC41IDZWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2xvd01vdGlvblZpZGVvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy4wNSA5Ljc5IDEwIDcuNXY5bDMuMDUtMi4yOUwxNiAxMnptMCAwTDEwIDcuNXY5bDMuMDUtMi4yOUwxNiAxMnptMCAwTDEwIDcuNXY5bDMuMDUtMi4yOUwxNiAxMnpNMTEgNC4wN1YyLjA1Yy0yLjAxLjItMy44NCAxLTUuMzIgMi4yMUw3LjEgNS42OUE3Ljk0MSA3Ljk0MSAwIDAgMSAxMSA0LjA3ek01LjY5IDcuMSA0LjI2IDUuNjhBOS45NDkgOS45NDkgMCAwIDAgMi4wNSAxMWgyLjAyYy4xOC0xLjQ2Ljc2LTIuNzkgMS42Mi0zLjl6TTQuMDcgMTNIMi4wNWMuMiAyLjAxIDEgMy44NCAyLjIxIDUuMzJsMS40My0xLjQzQTcuODY4IDcuODY4IDAgMCAxIDQuMDcgMTN6bTEuNjEgNi43NEE5Ljk4MSA5Ljk4MSAwIDAgMCAxMSAyMS45NXYtMi4wMmE3Ljk0MSA3Ljk0MSAwIDAgMS0zLjktMS42MmwtMS40MiAxLjQzek0yMiAxMmMwIDUuMTYtMy45MiA5LjQyLTguOTUgOS45NXYtMi4wMkMxNi45NyAxOS40MSAyMCAxNi4wNSAyMCAxMnMtMy4wMy03LjQxLTYuOTUtNy45M1YyLjA1QzE4LjA4IDIuNTggMjIgNi44NCAyMiAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU25vb3plIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy44OCAzLjM5IDYuNiAxLjg2IDIgNS43MWwxLjI5IDEuNTMgNC41OS0zLjg1ek0yMiA1LjcybC00LjYtMy44Ni0xLjI5IDEuNTMgNC42IDMuODZMMjIgNS43MnpNMTIgNGMtNC45NyAwLTkgNC4wMy05IDlzNC4wMiA5IDkgOWE5IDkgMCAwIDAgMC0xOHptMCAxNmMtMy44NyAwLTctMy4xMy03LTdzMy4xMy03IDctNyA3IDMuMTMgNyA3LTMuMTMgNy03IDd6bS0zLTloMy42M0w5IDE1LjJWMTdoNnYtMmgtMy42M0wxNSAxMC44VjlIOXYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTb3J0QnlBbHBoYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHptLjc1Ljc1aDIyLjV2MjIuNUguNzV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0Ljk0IDQuNjZoLTQuNzJsMi4zNi0yLjM2em0tNC42OSAxNC43MWg0LjY2bC0yLjMzIDIuMzN6TTYuMSA2LjI3IDEuNiAxNy43M2gxLjg0bC45Mi0yLjQ1aDUuMTFsLjkyIDIuNDVoMS44NEw3Ljc0IDYuMjdINi4xem0tMS4xMyA3LjM3IDEuOTQtNS4xOCAxLjk0IDUuMThINC45N3ptMTAuNzYgMi41aDYuMTJ2MS41OWgtOC41M3YtMS4yOWw1LjkyLTguNTZoLTUuODh2LTEuNmg4LjN2MS4yNmwtNS45MyA4LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwZWVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuMzggOC41Ny0xLjIzIDEuODVhOCA4IDAgMCAxLS4yMiA3LjU4SDUuMDdBOCA4IDAgMCAxIDE1LjU4IDYuODVsMS44NS0xLjIzQTEwIDEwIDAgMCAwIDMuMzUgMTlhMiAyIDAgMCAwIDEuNzIgMWgxMy44NWEyIDIgMCAwIDAgMS43NC0xIDEwIDEwIDAgMCAwLS4yNy0xMC40NHptLTkuNzkgNi44NGEyIDIgMCAwIDAgMi44MyAwbDUuNjYtOC40OS04LjQ5IDUuNjZhMiAyIDAgMCAwIDAgMi44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RvcENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTQgMTRIOFY4aDh2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgNmgxMnYxMkg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdWJzY3JpcHRpb25zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOEg0VjZoMTZ2MnptLTItNkg2djJoMTJWMnptNCAxMHY4YzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0ydi04YzAtMS4xLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJ6bS02IDQtNi0zLjI3djYuNTNMMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN1YnRpdGxlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yek00IDEyaDR2Mkg0di0yem0xMCA2SDR2LTJoMTB2MnptNiAwaC00di0yaDR2MnptMC00SDEwdi0yaDEwdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN1cnJvdW5kU291bmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNNy43NiAxNi4yNGwtMS40MSAxLjQxQTcuOTA5IDcuOTA5IDAgMCAxIDQgMTJjMC0yLjA1Ljc4LTQuMSAyLjM0LTUuNjZsMS40MSAxLjQxQzYuNTkgOC45MyA2IDEwLjQ2IDYgMTJzLjU5IDMuMDcgMS43NiA0LjI0ek0xMiAxNmMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNCA0IDEuNzkgNCA0LTEuNzkgNC00IDR6bTUuNjYgMS42Ni0xLjQxLTEuNDFDMTcuNDEgMTUuMDcgMTggMTMuNTQgMTggMTJzLS41OS0zLjA3LTEuNzYtNC4yNGwxLjQxLTEuNDFBNy45MDkgNy45MDkgMCAwIDEgMjAgMTJjMCAyLjA1LS43OCA0LjEtMi4zNCA1LjY2ek0xMiAxMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZGVvQ2FsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTAuNVY3YzAtLjU1LS40NS0xLTEtMUg0Yy0uNTUgMC0xIC40NS0xIDF2MTBjMCAuNTUuNDUgMSAxIDFoMTJjLjU1IDAgMS0uNDUgMS0xdi0zLjVsNCA0di0xMWwtNCA0ek0xNCAxM2gtM3YzSDl2LTNINnYtMmgzVjhoMnYzaDN2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlkZW9GaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMkg2LjAxYTIgMiAwIDAgMC0yIDJMNCAyMGMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjhsLTYtNnptLTEgN1YzLjVMMTguNSA5SDEzem0xIDUgMi0xLjA2djQuMTJMMTQgMTZ2MWMwIC41NS0uNDUgMS0xIDFIOWMtLjU1IDAtMS0uNDUtMS0xdi00YzAtLjU1LjQ1LTEgMS0xaDRjLjU1IDAgMSAuNDUgMSAxdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZGVvTGFiZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDEzSDNWNWgxOHYxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlkZW9MaWJyYXJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2SDJ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZ6bTE2LTRIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tOCAxMi41di05bDYgNC41LTYgNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWaWRlb1NldHRpbmdzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA2aDE4djVoMlY2YzAtMS4xLS45LTItMi0ySDNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoOXYtMkgzVjZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDEyIDkgOHY4ek0yMi43MSAxOC40M2MuMDMtLjI5LjA0LS41OC4wMS0uODZsMS4wNy0uODVjLjEtLjA4LjEyLS4yMS4wNi0uMzJsLTEuMDMtMS43OWMtLjA2LS4xMS0uMTktLjE1LS4zMS0uMTFsLTEuMjguNWEzLjQ0IDMuNDQgMCAwIDAtLjc1LS40MmwtLjItMS4zNmEuMjQ5LjI0OSAwIDAgMC0uMjUtLjIyaC0yLjA3Yy0uMTIgMC0uMjMuMDktLjI1LjIxbC0uMiAxLjM2Yy0uMjYuMTEtLjUxLjI2LS43NC40MmwtMS4yOC0uNWMtLjEyLS4wNS0uMjUgMC0uMzEuMTFsLTEuMDMgMS43OWMtLjA2LjExLS4wNC4yNC4wNi4zMmwxLjA3Ljg2Yy0uMDMuMjktLjA0LjU4LS4wMS44NmwtMS4wNy44NWMtLjEuMDgtLjEyLjIxLS4wNi4zMmwxLjAzIDEuNzljLjA2LjExLjE5LjE1LjMxLjExbDEuMjctLjVjLjIzLjE3LjQ4LjMxLjc1LjQybC4yIDEuMzZjLjAyLjEyLjEyLjIxLjI1LjIxaDIuMDdjLjEyIDAgLjIzLS4wOS4yNS0uMjFsLjItMS4zNmMuMjYtLjExLjUxLS4yNi43NC0uNDJsMS4yOC41Yy4xMi4wNS4yNSAwIC4zMS0uMTFsMS4wMy0xLjc5Yy4wNi0uMTEuMDQtLjI0LS4wNi0uMzJsLTEuMDYtLjg1ek0xOSAxOS41Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlkZW9jYW1PZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEgNi41LTQgNFY3YzAtLjU1LS40NS0xLTEtMUg5LjgyTDIxIDE3LjE4VjYuNXpNMy4yNyAyIDIgMy4yNyA0LjczIDZINGMtLjU1IDAtMSAuNDUtMSAxdjEwYzAgLjU1LjQ1IDEgMSAxaDEyYy4yMSAwIC4zOS0uMDguNTQtLjE4TDE5LjczIDIxIDIxIDE5LjczIDMuMjcgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlkZW9jYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMC41VjdjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMXYxMGMwIC41NS40NSAxIDEgMWgxMmMuNTUgMCAxLS40NSAxLTF2LTMuNWw0IDR2LTExbC00IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZvbHVtZURvd25BbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA3Ljk3djguMDVjMS40OC0uNzMgMi41LTIuMjUgMi41LTQuMDJTMTUuNDggOC43MSAxNCA3Ljk3ek0zIDl2Nmg0bDUgNVY0TDcgOUgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWb2x1bWVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNSAxMkE0LjUgNC41IDAgMCAwIDE2IDcuOTd2OC4wNWMxLjQ4LS43MyAyLjUtMi4yNSAyLjUtNC4wMnpNNSA5djZoNGw1IDVWNEw5IDlINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVm9sdW1lTXV0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgOXY2aDRsNSA1VjRsLTUgNUg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWb2x1bWVPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41IDEyQTQuNSA0LjUgMCAwIDAgMTQgNy45N3YyLjIxbDIuNDUgMi40NWMuMDMtLjIuMDUtLjQxLjA1LS42M3ptMi41IDBjMCAuOTQtLjIgMS44Mi0uNTQgMi42NGwxLjUxIDEuNTFBOC43OTYgOC43OTYgMCAwIDAgMjEgMTJjMC00LjI4LTIuOTktNy44Ni03LTguNzd2Mi4wNmMyLjg5Ljg2IDUgMy41NCA1IDYuNzF6TTQuMjcgMyAzIDQuMjcgNy43MyA5SDN2Nmg0bDUgNXYtNi43M2w0LjI1IDQuMjVjLS42Ny41Mi0xLjQyLjkzLTIuMjUgMS4xOHYyLjA2YTguOTkgOC45OSAwIDAgMCAzLjY5LTEuODFMMTkuNzMgMjEgMjEgMTkuNzNsLTktOUw0LjI3IDN6TTEyIDQgOS45MSA2LjA5IDEyIDguMThWNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVm9sdW1lVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDl2Nmg0bDUgNVY0TDcgOUgzem0xMy41IDNBNC41IDQuNSAwIDAgMCAxNCA3Ljk3djguMDVjMS40OC0uNzMgMi41LTIuMjUgMi41LTQuMDJ6TTE0IDMuMjN2Mi4wNmMyLjg5Ljg2IDUgMy41NCA1IDYuNzFzLTIuMTEgNS44NS01IDYuNzF2Mi4wNmM0LjAxLS45MSA3LTQuNDkgNy04Ljc3cy0yLjk5LTcuODYtNy04Ljc3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXZWJBc3NldE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuODMgNEgyMGEyIDIgMCAwIDEgMiAydjEyYzAgLjM0LS4wOS42Ni0uMjMuOTRMMjAgMTcuMTdWOGgtOS4xN2wtNC00em0xMy42NiAxOS4zMUwxNy4xNyAyMEg0YTIgMiAwIDAgMS0yLTJWNmMwLS4zNC4wOC0uNjYuMjMtLjk0TC42OSAzLjUxIDIuMSAyLjFsMTkuOCAxOS44LTEuNDEgMS40MXpNMTUuMTcgMThsLTEwLTEwSDR2MTBoMTEuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdlYkFzc2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNEg1YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2YTIgMiAwIDAgMC0yLTJ6bTAgMTRINVY4aDE0djEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXZWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bS01IDE0SDR2LTRoMTF2NHptMC01SDRWOWgxMXY0em01IDVoLTRWOWg0djl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDNQIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0LjAxYy0xLjEgMC0yIC45LTIgMkwyIDIybDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tOCA0YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnptNCA4SDh2LS41N2MwLS44MS40OC0xLjUzIDEuMjItMS44NWE2Ljk1IDYuOTUgMCAwIDEgNS41NiAwQTIuMDEgMi4wMSAwIDAgMSAxNiAxMy40M1YxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRkSWNDYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTUuNWMtMS4yNSAwLTIuNDUtLjItMy41Ny0uNTdhMS4wMiAxLjAyIDAgMCAwLTEuMDIuMjRsLTIuMiAyLjJhMTUuMDQ1IDE1LjA0NSAwIDAgMS02LjU5LTYuNTlsMi4yLTIuMjFhLjk2Ljk2IDAgMCAwIC4yNS0xQTExLjM2IDExLjM2IDAgMCAxIDguNSA0YzAtLjU1LS40NS0xLTEtMUg0Yy0uNTUgMC0xIC40NS0xIDEgMCA5LjM5IDcuNjEgMTcgMTcgMTcgLjU1IDAgMS0uNDUgMS0xdi0zLjVjMC0uNTUtLjQ1LTEtMS0xek0yMSA2aC0zVjNoLTJ2M2gtM3YyaDN2M2gyVjhoM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWx0ZXJuYXRlRW1haWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwaDV2LTJoLTVjLTQuMzQgMC04LTMuNjYtOC04czMuNjYtOCA4LTggOCAzLjY2IDggOHYxLjQzYzAgLjc5LS43MSAxLjU3LTEuNSAxLjU3cy0xLjUtLjc4LTEuNS0xLjU3VjEyYzAtMi43Ni0yLjI0LTUtNS01cy01IDIuMjQtNSA1IDIuMjQgNSA1IDVjMS4zOCAwIDIuNjQtLjU2IDMuNTQtMS40Ny42NS44OSAxLjc3IDEuNDcgMi45NiAxLjQ3IDEuOTcgMCAzLjUtMS42IDMuNS0zLjU3VjEyYzAtNS41Mi00LjQ4LTEwLTEwLTEwem0wIDEzYy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zIDMgMS4zNCAzIDMtMS4zNCAzLTMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXBwUmVnaXN0cmF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgNGg0djRoLTR6TTQgMTZoNHY0SDR6TTQgMTBoNHY0SDR6TTQgNGg0djRINHpNMTQgMTIuNDJWMTBoLTR2NGgyLjQyek0yMC44OCAxMS4yOWwtMS4xNy0xLjE3YS40MS40MSAwIDAgMC0uNTggMGwtLjg4Ljg4TDIwIDEyLjc1bC44OC0uODhhLjQxLjQxIDAgMCAwIDAtLjU4ek0xMSAxOC4yNVYyMGgxLjc1bDYuNjctNi42Ny0xLjc1LTEuNzV6TTE2IDRoNHY0aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCdXNpbmVzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDdWM0gydjE4aDIwVjdIMTJ6TTYgMTlINHYtMmgydjJ6bTAtNEg0di0yaDJ2MnptMC00SDRWOWgydjJ6bTAtNEg0VjVoMnYyem00IDEySDh2LTJoMnYyem0wLTRIOHYtMmgydjJ6bTAtNEg4VjloMnYyem0wLTRIOFY1aDJ2MnptMTAgMTJoLTh2LTJoMnYtMmgtMnYtMmgydi0yaC0yVjloOHYxMHptLTItOGgtMnYyaDJ2LTJ6bTAgNGgtMnYyaDJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbGxFbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA5Yy0xLjYgMC0zLjE1LjI1LTQuNi43MnYzLjFjMCAuMzktLjIzLjc0LS41Ni45LS45OC40OS0xLjg3IDEuMTItMi42NiAxLjg1LS4xOC4xOC0uNDMuMjgtLjcuMjgtLjI4IDAtLjUzLS4xMS0uNzEtLjI5TC4yOSAxMy4wOGEuOTU2Ljk1NiAwIDAgMS0uMjktLjdjMC0uMjguMTEtLjUzLjI5LS43MUMzLjM0IDguNzggNy40NiA3IDEyIDdzOC42NiAxLjc4IDExLjcxIDQuNjdjLjE4LjE4LjI5LjQzLjI5LjcxIDAgLjI4LS4xMS41My0uMjkuNzFsLTIuNDggMi40OGMtLjE4LjE4LS40My4yOS0uNzEuMjktLjI3IDAtLjUyLS4xMS0uNy0uMjhhMTEuMjcgMTEuMjcgMCAwIDAtMi42Ny0xLjg1Ljk5Ni45OTYgMCAwIDEtLjU2LS45di0zLjFDMTUuMTUgOS4yNSAxMy42IDkgMTIgOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FsbE1hZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDV2Mmg2LjU5TDQgMTguNTkgNS40MSAyMCAxNyA4LjQxVjE1aDJWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FsbE1lcmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMjAuNDEgMTguNDEgMTkgMTUgMTUuNTkgMTMuNTkgMTcgMTcgMjAuNDF6TTcuNSA4SDExdjUuNTlMNS41OSAxOSA3IDIwLjQxbDYtNlY4aDMuNUwxMiAzLjUgNy41IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbGxNaXNzZWRPdXRnb2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTMgOC40MSA5IDkgNy03VjE1aDJWN2gtOHYyaDQuNTlMMTIgMTQuNTkgNC40MSA3IDMgOC40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FsbE1pc3NlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjU5IDcgMTIgMTQuNTkgNi40MSA5SDExVjdIM3Y4aDJ2LTQuNTlsNyA3IDktOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FsbFJlY2VpdmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNS40MSAxOC41OSA0IDcgMTUuNTlWOUg1djEwaDEwdi0ySDguNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbGxTcGxpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0IDQgMi4yOSAyLjI5LTIuODggMi44OCAxLjQyIDEuNDIgMi44OC0yLjg4TDIwIDEwVjR6bS00IDBINHY2bDIuMjktMi4yOSA0LjcxIDQuN1YyMGgydi04LjQxbC01LjI5LTUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjAxIDE1LjM4Yy0xLjIzIDAtMi40Mi0uMi0zLjUzLS41NmEuOTc3Ljk3NyAwIDAgMC0xLjAxLjI0bC0xLjU3IDEuOTdjLTIuODMtMS4zNS01LjQ4LTMuOS02Ljg5LTYuODNsMS45NS0xLjY2Yy4yNy0uMjguMzUtLjY3LjI0LTEuMDItLjM3LTEuMTEtLjU2LTIuMy0uNTYtMy41MyAwLS41NC0uNDUtLjk5LS45OS0uOTlINC4xOUMzLjY1IDMgMyAzLjI0IDMgMy45OSAzIDEzLjI4IDEwLjczIDIxIDIwLjAxIDIxYy43MSAwIC45OS0uNjMuOTktMS4xOHYtMy40NWMwLS41NC0uNDUtLjk5LS45OS0uOTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbmNlbFByZXNlbnRhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDE5LjFIM1Y1aDE4djE0LjF6TTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0yMSAxOS4xSDNWNWgxOHYxNC4xek0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNTkgOCAxMiAxMC41OSA5LjQxIDggOCA5LjQxIDEwLjU5IDEyIDggMTQuNTkgOS40MSAxNiAxMiAxMy40MSAxNC41OSAxNiAxNiAxNC41OSAxMy40MSAxMiAxNiA5LjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDZWxsVG93ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm03LjMgMTQuNyAxLjItMS4yYy0xLTEtMS41LTIuMy0xLjUtMy41IDAtMS4zLjUtMi42IDEuNS0zLjVMNy4zIDUuM2MtMS4zIDEuMy0yIDMtMiA0LjdzLjcgMy40IDIgNC43ek0xOS4xIDIuOWwtMS4yIDEuMmMxLjYgMS42IDIuNCAzLjggMi40IDUuOSAwIDIuMS0uOCA0LjMtMi40IDUuOWwxLjIgMS4yYzItMiAyLjktNC41IDIuOS03LjEgMC0yLjYtMS01LjEtMi45LTcuMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi4xIDQuMSA0LjkgMi45QzMgNC45IDIgNy40IDIgMTBjMCAyLjYgMSA1LjEgMi45IDcuMWwxLjItMS4yYy0xLjYtMS42LTIuNC0zLjgtMi40LTUuOSAwLTIuMS44LTQuMyAyLjQtNS45ek0xNi43IDE0LjdjMS4zLTEuMyAyLTMgMi00LjctLjEtMS43LS43LTMuNC0yLTQuN2wtMS4yIDEuMmMxIDEgMS41IDIuMyAxLjUgMy41IDAgMS4zLS41IDIuNi0xLjUgMy41bDEuMiAxLjJ6TTE0LjUgMTBhMi41IDIuNSAwIDAgMC01IDBjMCAuNzYuMzQgMS40Mi44NyAxLjg4TDcgMjJoMmwuNjctMmg0LjY3bC42NiAyaDJsLTMuMzctMTAuMTJjLjUzLS40Ni44Ny0xLjEyLjg3LTEuODh6bS00LjE3IDhMMTIgMTNsMS42NyA1aC0zLjM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDZWxsV2lmaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDkuOTggNiAyMmgxNlY1Ljk3bC00IDQuMDF6TTIwIDIwaC0ydi03LjIybDItMlYyMHpNNS4yMiA3LjIyIDMuOTMgNS45M2MzLjktMy45MSAxMC4yNC0zLjkxIDE0LjE1IDBsLTEuMjkgMS4yOWMtMy4xOS0zLjE5LTguMzgtMy4xOS0xMS41NyAwem03LjcxIDMuODVMMTEgMTNsLTEuOTMtMS45M2EyLjc0IDIuNzQgMCAwIDEgMy44NiAwem0xLjI5LTEuMjhjLTEuNzgtMS43Ny00LjY2LTEuNzctNi40MyAwTDYuNSA4LjVhNi4zNzQgNi4zNzQgMCAwIDEgOSAwbC0xLjI4IDEuMjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENoYXRCdWJibGVPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE4bDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDZsLTIgMlY0aDE2djEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDaGF0QnViYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxOGw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2hhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDIybDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek02IDloMTJ2Mkg2Vjl6bTggNUg2di0yaDh2MnptNC02SDZWNmgxMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDbGVhckFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTNoMTR2LTJINXYyem0tMiA0aDE0di0ySDN2MnpNNyA3djJoMTRWN0g3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb1ByZXNlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjhoMlY1aDE4djE2YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjEwXCIsXCJyXCI6XCI0XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjM5IDE2LjU2QzEzLjcxIDE1LjcgMTEuNTMgMTUgOSAxNXMtNC43MS43LTYuMzkgMS41NkEyLjk3IDIuOTcgMCAwIDAgMSAxOS4yMlYyMmgxNnYtMi43OGMwLTEuMTItLjYxLTIuMTUtMS42MS0yLjY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb21tZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuOTkgNGMwLTEuMS0uODktMi0xLjk5LTJINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNGw0IDQtLjAxLTE4ek0xOCAxNEg2di0yaDEydjJ6bTAtM0g2VjloMTJ2MnptMC0zSDZWNmgxMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb21tZW50c0Rpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuODMgMTRIMTh2LTJoLTMuMTdsLTEtMUgxOFY5aC02LjE3bC0xLTFIMThWNkg4LjgzbC00LTRIMjBjMS4xIDAgMiAuOSAyIDJ2MTUuMTdMMTYuODMgMTR6TTIuMSAyLjEuNjkgMy41MSAyIDQuODNWMTZjMCAxLjEuOSAyIDIgMmgxMS4xN2w1LjMxIDUuMzEgMS40MS0xLjQxTDIuMSAyLjF6TTYgOWguMTdsMiAySDZWOXptMCA1di0yaDMuMTdsMiAySDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbnRhY3RFbWVyZ2VuY3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAzSDJDLjkgMyAwIDMuOSAwIDV2MTRjMCAxLjEuOSAyIDIgMmgyMGMxLjEgMCAxLjk5LS45IDEuOTktMkwyNCA1YzAtMS4xLS45LTItMi0yek05IDhjMS42NSAwIDMgMS4zNSAzIDNzLTEuMzUgMy0zIDMtMy0xLjM1LTMtMyAxLjM1LTMgMy0zek0yLjA4IDE5YzEuMzgtMi4zOSAzLjk2LTQgNi45Mi00czUuNTQgMS42MSA2LjkyIDRIMi4wOHptMTguODktOS4xNS0uNzUgMS4zLTEuNDctLjg1VjEyaC0xLjV2LTEuN2wtMS40Ny44NS0uNzUtMS4zTDE2LjUgOWwtMS40Ny0uODUuNzUtMS4zIDEuNDcuODVWNmgxLjV2MS43bDEuNDctLjg1Ljc1IDEuM0wxOS41IDlsMS40Ny44NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29udGFjdE1haWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgOFY3bC0zIDItMy0ydjFsMyAyIDMtMnptMS01SDJDLjkgMyAwIDMuOSAwIDV2MTRjMCAxLjEuOSAyIDIgMmgyMGMxLjEgMCAxLjk5LS45IDEuOTktMkwyNCA1YzAtMS4xLS45LTItMi0yek04IDZjMS42NiAwIDMgMS4zNCAzIDNzLTEuMzQgMy0zIDMtMy0xLjM0LTMtMyAxLjM0LTMgMy0zem02IDEySDJ2LTFjMC0yIDQtMy4xIDYtMy4xczYgMS4xIDYgMy4xdjF6bTgtNmgtOFY2aDh2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29udGFjdFBob25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgM0gyQy45IDMgMCAzLjkgMCA1djE0YzAgMS4xLjkgMiAyIDJoMjBjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjQgNWMwLTEuMS0uOS0yLTItMnpNOCA2YzEuNjYgMCAzIDEuMzQgMyAzcy0xLjM0IDMtMyAzLTMtMS4zNC0zLTMgMS4zNC0zIDMtM3ptNiAxMkgydi0xYzAtMiA0LTMuMSA2LTMuMXM2IDEuMSA2IDMuMXYxem0zLjg1LTRoMS42NEwyMSAxNmwtMS45OSAxLjk5QTcuNTEyIDcuNTEyIDAgMCAxIDE2LjI4IDE0Yy0uMTgtLjY0LS4yOC0xLjMxLS4yOC0ycy4xLTEuMzYuMjgtMmE3LjQ3NCA3LjQ3NCAwIDAgMSAyLjczLTMuOTlMMjEgOGwtMS41MSAyaC0xLjY0Yy0uMjIuNjMtLjM1IDEuMy0uMzUgMnMuMTMgMS4zNy4zNSAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb250YWN0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMEg0djJoMTZWMHpNNCAyNGgxNnYtMkg0djJ6TTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0tOCAyLjc1YzEuMjQgMCAyLjI1IDEuMDEgMi4yNSAyLjI1cy0xLjAxIDIuMjUtMi4yNSAyLjI1UzkuNzUgMTAuMjQgOS43NSA5IDEwLjc2IDYuNzUgMTIgNi43NXpNMTcgMTdIN3YtMS41YzAtMS42NyAzLjMzLTIuNSA1LTIuNXM1IC44MyA1IDIuNVYxN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGVza3RvcEFjY2Vzc0Rpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyAxNmMwIDEuMS0uOSAyLTIgMmgtMWwtMi0yaDNWNEg2TDQgMmgxN2MxLjEgMCAyIC45IDIgMnYxMnptLTUuNSAyLTItMnptLTIuNiAwIDYgNiAxLjMtMS4zLTQuNy00LjctMi0yTDEuMiAxLjggMCAzLjFsMSAxVjE2YzAgMS4xLjkgMiAyIDJoN3YySDh2Mmg4di0yaC0ydi0yaC45ek0zIDE2VjYuMWw5LjkgOS45SDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERpYWxlclNpcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDNoLTF2NWgxVjN6bS0yIDJoLTJWNGgyVjNoLTN2M2gydjFoLTJ2MWgzVjV6bTMtMnY1aDFWNmgyVjNoLTN6bTIgMmgtMVY0aDF2MXptMCAxMC41Yy0xLjI1IDAtMi40NS0uMi0zLjU3LS41N2EuOTk4Ljk5OCAwIDAgMC0xLjAxLjI0bC0yLjIgMi4yYTE1LjA0NSAxNS4wNDUgMCAwIDEtNi41OS02LjU5bDIuMi0yLjIxYy4yNy0uMjYuMzUtLjY1LjI0LTFBMTEuMzYgMTEuMzYgMCAwIDEgOC41IDRjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNWMwLS41NS0uNDUtMS0xLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERpYWxwYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxOWMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6TTYgMWMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTAgNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTAgNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTEyLThjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0tNiA4Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptNiAwYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMC02Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptLTYgMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTAtNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvY3VtZW50U2Nhbm5lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgM0g0djNIMlYxaDV2MnptMTUgM1YxaC01djJoM3YzaDJ6TTcgMjFINHYtM0gydjVoNXYtMnptMTMtM3YzaC0zdjJoNXYtNWgtMnptLTEgMGMwIDEuMS0uOSAyLTIgMkg3Yy0xLjEgMC0yLS45LTItMlY2YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDJ2MTJ6TTE1IDhIOXYyaDZWOHptMCAzSDl2Mmg2di0yem0wIDNIOXYyaDZ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvbWFpbkRpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDVoMnYyaC0uOUwxMiA5LjlWOWg4djguOWwyIDJWN0gxMlYzSDUuMUw4IDUuOXptOCA2aDJ2MmgtMnpNMS4zIDEuOC4xIDMuMSAyIDV2MTZoMTZsMyAzIDEuMy0xLjMtMjEtMjAuOXpNNiAxOUg0di0yaDJ2MnptMC00SDR2LTJoMnYyem0wLTRINFY5aDJ2MnptNCA4SDh2LTJoMnYyem0wLTRIOHYtMmgydjJ6bTIgNHYtMmgybDIgMmgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRG9tYWluVmVyaWZpY2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYuNiAxMC44OC0xLjQyLTEuNDItNC4yNCA0LjI1LTIuMTItMi4xM0w3LjQgMTNsMy41NCAzLjU0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA0SDVhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjZhMiAyIDAgMCAwLTItMnptMCAxNEg1VjhoMTR2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZER1byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJoLThDNi4zOCAyIDIgNi42NiAyIDEyLjI4IDIgMTcuNSA2LjQ5IDIyIDExLjcyIDIyIDE3LjM5IDIyIDIyIDE3LjYyIDIyIDEyVjRjMC0xLjEtLjktMi0yLTJ6bS0zIDEzLTMtMnYySDdWOWg3djJsMy0ydjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVtYWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDQtOCA1LTgtNVY2bDggNSA4LTV2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9ydW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA2aC0ydjlINnYyYzAgLjU1LjQ1IDEgMSAxaDExbDQgNFY3YzAtLjU1LS40NS0xLTEtMXptLTQgNlYzYzAtLjU1LS40NS0xLTEtMUgzYy0uNTUgMC0xIC40NS0xIDF2MTRsNC00aDEwYy41NSAwIDEtLjQ1IDEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9yd2FyZFRvSW5ib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoOXYtMkg0VjhsOCA1IDgtNXY1aDJWNmMwLTEuMS0uOS0yLTItMnptLTggN0w0IDZoMTZsLTggNXptNyA0IDQgNC00IDR2LTNoLTR2LTJoNHYtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSG91cmdsYXNzQm90dG9tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTggMjItLjAxLTZMMTQgMTJsMy45OS00LjAxTDE4IDJINnY2bDQgNC00IDMuOTlWMjJoMTJ6TTggNy41VjRoOHYzLjVsLTQgNC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhvdXJnbGFzc1RvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTYgMiAuMDEgNkwxMCAxMmwtMy45OSA0LjAxTDYgMjJoMTJ2LTZsLTQtNCA0LTMuOTlWMkg2em0xMCAxNC41VjIwSDh2LTMuNWw0LTQgNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIdWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjQgMTguMmMuMzguNS42IDEuMTIuNiAxLjggMCAxLjY2LTEuMzQgMy0zIDNzLTMtMS4zNC0zLTMgMS4zNC0zIDMtM2MuNDQgMCAuODUuMDkgMS4yMy4yNmwxLjQxLTEuNzdhNC41MDQgNC41MDQgMCAwIDEtMS4wOS0zLjY5bC0yLjAzLS42OEEyLjk5NyAyLjk5NyAwIDAgMSAwIDkuNWMwLTEuNjYgMS4zNC0zIDMtM3MzIDEuMzQgMyAzYzAgLjA3IDAgLjE0LS4wMS4yMWwyLjAzLjY4YTQuNDY4IDQuNDY4IDAgMCAxIDMuMjItMi4zMlY1LjkxQTMuMDE4IDMuMDE4IDAgMCAxIDkgM2MwLTEuNjYgMS4zNC0zIDMtM3MzIDEuMzQgMyAzYzAgMS40LS45NiAyLjU3LTIuMjUgMi45MXYyLjE2YzEuNC4yMyAyLjU4IDEuMTEgMy4yMiAyLjMyTDE4IDkuNzFWOS41YzAtMS42NiAxLjM0LTMgMy0zczMgMS4zNCAzIDMtMS4zNCAzLTMgM2MtMS4wNiAwLTEuOTgtLjU1LTIuNTItMS4zN2wtMi4wMy42OGE0LjQ5IDQuNDkgMCAwIDEtMS4wOSAzLjY5bDEuNDEgMS43N2MuMzgtLjE4Ljc5LS4yNyAxLjIzLS4yNyAxLjY2IDAgMyAxLjM0IDMgM3MtMS4zNCAzLTMgMy0zLTEuMzQtMy0zYzAtLjY4LjIyLTEuMy42LTEuOGwtMS40MS0xLjc3Yy0xLjM1Ljc1LTMuMDEuNzYtNC4zNyAwTDguNCAxOC4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbXBvcnRDb250YWN0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjUgNC41Yy0xLjk1IDAtNC4wNS40LTUuNSAxLjUtMS40NS0xLjEtMy41NS0xLjUtNS41LTEuNVMyLjQ1IDQuOSAxIDZ2MTQuNjVjMCAuNjUuNzMuNDUuNzUuNDVDMy4xIDIwLjQ1IDUuMDUgMjAgNi41IDIwYzEuOTUgMCA0LjA1LjQgNS41IDEuNSAxLjM1LS44NSAzLjgtMS41IDUuNS0xLjUgMS42NSAwIDMuMzUuMyA0Ljc1IDEuMDUuNDEuMjEuNzUtLjE5Ljc1LS40NVY2Yy0xLjQ5LTEuMTItMy42My0xLjUtNS41LTEuNXptMy41IDE0Yy0xLjEtLjM1LTIuMy0uNS0zLjUtLjUtMS43IDAtNC4xNS42NS01LjUgMS41VjhjMS4zNS0uODUgMy44LTEuNSA1LjUtMS41IDEuMiAwIDIuNC4xNSAzLjUuNXYxMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbXBvcnRFeHBvcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDMgNSA2Ljk5aDNWMTRoMlY2Ljk5aDNMOSAzem03IDE0LjAxVjEwaC0ydjcuMDFoLTNMMTUgMjFsNC0zLjk5aC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbnZlcnRDb2xvcnNPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS4xOSAyMS4xOSAyLjgxIDIuODEgMS4zOSA0LjIybDQuMiA0LjJhNy43MyA3LjczIDAgMCAwLTEuNiA0LjdDNCAxNy40OCA3LjU4IDIxIDEyIDIxYzEuNzUgMCAzLjM2LS41NiA0LjY3LTEuNWwzLjEgMy4xIDEuNDItMS40MXpNMTIgMTljLTMuMzEgMC02LTIuNjMtNi01Ljg3IDAtMS4xOS4zNi0yLjMyIDEuMDItMy4yOEwxMiAxNC44M1YxOXpNOC4zOCA1LjU2IDEyIDJsNS42NSA1LjU2QzE5LjEgOC45OSAyMCAxMC45NiAyMCAxMy4xM2MwIDEuMTgtLjI3IDIuMjktLjc0IDMuM0wxMiA5LjE3VjQuODFMOS44IDYuOTcgOC4zOCA1LjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRLZXlPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi45MSAxNC4wOSAxNyAxNGwyIDIgNC00LjA0TDIxIDEwaC04LjE3bDQuMDggNC4wOXpNMy45OCA2LjgxQTYuMDEyIDYuMDEyIDAgMCAwIDEgMTJjMCAzLjMxIDIuNjkgNiA2IDYgMi4yMSAwIDQuMTUtMS4yIDUuMTgtMi45OWw3LjU5IDcuNTkgMS40MS0xLjQxTDIuODEgMi44MSAxLjM5IDQuMjJsMi41OSAyLjU5em01LjkzIDUuOTNBMy4wMTUgMy4wMTUgMCAwIDEgNyAxNWMtMS42NSAwLTMtMS4zNS0zLTMgMC0xLjQuOTctMi41OCAyLjI2LTIuOTFsMy42NSAzLjY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRLZXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMGgtOC4zNUE1Ljk5IDUuOTkgMCAwIDAgNyA2Yy0zLjMxIDAtNiAyLjY5LTYgNnMyLjY5IDYgNiA2YTUuOTkgNS45OSAwIDAgMCA1LjY1LTRIMTNsMiAyIDItMiAyIDIgNC00LjA0TDIxIDEwek03IDE1Yy0xLjY1IDAtMy0xLjM1LTMtM3MxLjM1LTMgMy0zIDMgMS4zNSAzIDMtMS4zNSAzLTMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGlzdEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDV2MTRINVY1aDE0bTEuMS0ySDMuOWMtLjUgMC0uOS40LS45Ljl2MTYuMmMwIC40LjQuOS45LjloMTYuMmMuNCAwIC45LS41LjktLjlWMy45YzAtLjUtLjUtLjktLjktLjl6TTExIDdoNnYyaC02Vjd6bTAgNGg2djJoLTZ2LTJ6bTAgNGg2djJoLTZ6TTcgN2gydjJIN3ptMCA0aDJ2Mkg3em0wIDRoMnYySDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExpdmVIZWxwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg0bDMgMyAzLTNoNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tNiAxNmgtMnYtMmgydjJ6bTIuMDctNy43NS0uOS45MkMxMy40NSAxMS45IDEzIDEyLjUgMTMgMTRoLTJ2LS41YzAtMS4xLjQ1LTIuMSAxLjE3LTIuODNsMS4yNC0xLjI2Yy4zNy0uMzYuNTktLjg2LjU5LTEuNDEgMC0xLjEtLjktMi0yLTJzLTIgLjktMiAySDhjMC0yLjIxIDEuNzktNCA0LTRzNCAxLjc5IDQgNGMwIC44OC0uMzYgMS42OC0uOTMgMi4yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYXRpb25PZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0xMS43NSAxMS40Ny0uMTEtLjExelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2LjVBMi41IDIuNSAwIDAgMSAxNC41IDljMCAuNzQtLjMzIDEuMzktLjgzIDEuODVsMy42MyAzLjYzYy45OC0xLjg2IDEuNy0zLjggMS43LTUuNDggMC0zLjg3LTMuMTMtNy03LTdhNyA3IDAgMCAwLTUuMDQgMi4xNWwzLjE5IDMuMTljLjQ2LS41MiAxLjExLS44NCAxLjg1LS44NHptNC4zNyA5LjYtNC42My00LjYzLS4xMS0uMTFMMy4yNyAzIDIgNC4yN2wzLjE4IDMuMThDNS4wNyA3Ljk1IDUgOC40NyA1IDljMCA1LjI1IDcgMTMgNyAxM3MxLjY3LTEuODUgMy4zOC00LjM1TDE4LjczIDIxIDIwIDE5LjczbC0zLjYzLTMuNjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2F0aW9uT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzguMTMgMiA1IDUuMTMgNSA5YzAgNS4yNSA3IDEzIDcgMTNzNy03Ljc1IDctMTNjMC0zLjg3LTMuMTMtNy03LTd6bTAgOS41YTIuNSAyLjUgMCAwIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNYWlsTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDkuOTdWNmMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxMnYtNS4wM2MwLTIuNzYgMi4yNC01IDUtNWgxek0yMCA4bC04IDUtOC01VjZsOCA1IDgtNXYyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyAxNXYtMWMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDJ2MWMtLjU1IDAtMSAuNDUtMSAxdjNjMCAuNTUuNDUgMSAxIDFoNGMuNTUgMCAxLS40NSAxLTF2LTNjMC0uNTUtLjQ1LTEtMS0xem0tMSAwaC0ydi0xYzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNYWlsT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNEg0VjhsOCA1IDgtNXYxMHptLTgtN0w0IDZoMTZsLTggNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWFya0NoYXRSZWFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcuMzQgMjAtMy41NC0zLjU0IDEuNDEtMS40MSAyLjEyIDIuMTIgNC4yNC00LjI0TDIzIDE0LjM0IDE3LjM0IDIwek0xMiAxN2E2Ljk5NSA2Ljk5NSAwIDAgMSAxMC02LjMyVjRjMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MThsNC00aDZjMC0uMTcuMDEtLjMzLjAzLS41QTQuMDcgNC4wNyAwIDAgMSAxMiAxN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWFya0NoYXRVbnJlYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA2Ljk4VjE2YzAgMS4xLS45IDItMiAySDZsLTQgNFY0YzAtMS4xLjktMiAyLTJoMTAuMUE1LjAwMiA1LjAwMiAwIDAgMCAxOSA4YzEuMTMgMCAyLjE2LS4zOSAzLTEuMDJ6TTE2IDNjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtMy0xLjM0LTMtMy0zLTMgMS4zNC0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1hcmtFbWFpbFJlYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxOWE2Ljk5NSA2Ljk5NSAwIDAgMSAxMC02LjMyVjZjMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4LjA4Yy0uMDUtLjMzLS4wOC0uNjYtLjA4LTF6TTQgNmw4IDUgOC01djJsLTggNS04LTVWNnptMTMuMzQgMTYtMy41NC0zLjU0IDEuNDEtMS40MSAyLjEyIDIuMTIgNC4yNC00LjI0TDIzIDE2LjM0IDE3LjM0IDIyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNYXJrRW1haWxVbnJlYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA4Ljk4VjE4YzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0yVjZjMC0xLjEuOS0yIDItMmgxMC4xYy0uMDYuMzItLjEuNjYtLjEgMSAwIDEuNDguNjUgMi43OSAxLjY3IDMuNzFMMTIgMTEgNCA2djJsOCA1IDUuMy0zLjMyYy41NC4yIDEuMS4zMiAxLjcuMzIgMS4xMyAwIDIuMTYtLjM5IDMtMS4wMnpNMTYgNWMwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zLTEuMzQtMy0zLTMtMyAxLjM0LTMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWFya1VucmVhZENoYXRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE5XCIsXCJjeVwiOlwiM1wiLFwiclwiOlwiM1wifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDhWNmg5LjAzYTQuOTA2IDQuOTA2IDAgMCAxLS45Mi00SDQuMDFhMiAyIDAgMCAwLTIgMkwyIDIybDQtNGgxNGMxLjEgMCAyLS45IDItMlY2Ljk3QzIxLjE2IDcuNjEgMjAuMTMgOCAxOSA4SDZ6bTggNkg2di0yaDh2MnptNC0zSDZWOWgxMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNZXNzYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS0yIDEySDZ2LTJoMTJ2MnptMC0zSDZWOWgxMnYyem0wLTNINlY2aDEydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vYmlsZVNjcmVlblNoYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxLjAxIDcgMWMtMS4xIDAtMS45OS45LTEuOTkgMnYxOGMwIDEuMS44OSAyIDEuOTkgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNyAxOUg3VjVoMTB2MTR6bS00LjItNS43OHYxLjc1bDMuMi0yLjk5TDEyLjggOXYxLjdjLTMuMTEuNDMtNC4zNSAyLjU2LTQuOCA0LjcgMS4xMS0xLjUgMi41OC0yLjE4IDQuOC0yLjE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb3JlVGltZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDh2Nmw0LjcgMi45LjgtMS4yLTQtMi40Vjh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjkyIDEyQTYuOTU3IDYuOTU3IDAgMCAxIDExIDIwYy0zLjkgMC03LTMuMS03LTdzMy4xLTcgNy03Yy43IDAgMS4zNy4xIDIgLjI5VjQuMjNjLS42NC0uMTUtMS4zMS0uMjMtMi0uMjMtNSAwLTkgNC05IDlzNCA5IDkgOWE4Ljk2MyA4Ljk2MyAwIDAgMCA4Ljk0LTEwaC0yLjAyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA1VjJoLTJ2M2gtM3YyaDN2M2gyVjdoM1Y1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjgyIDEzSDExdi0ySDYuODJDNi40IDkuODQgNS4zIDkgNCA5Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzYzEuMyAwIDIuNC0uODQgMi44Mi0yek00IDEzYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIzIDEyLTQtM3YyaC00LjA1Yy0uNS01LjA1LTQuNzYtOS05Ljk1LTl2MmM0LjQyIDAgOCAzLjU4IDggOHMtMy41OCA4LTggOHYyYzUuMTkgMCA5LjQ1LTMuOTUgOS45NS05SDE5djJsNC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb1NpbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ljk5IDVjMC0xLjEtLjg5LTItMS45OS0yaC03TDcuNjYgNS4zNCAxOSAxNi42OCAxOC45OSA1ek0zLjY1IDMuODggMi4zOCA1LjE1IDUgNy43N1YxOWMwIDEuMS45IDIgMiAyaDEwLjAxYy4zNSAwIC42Ny0uMS45Ni0uMjZsMS44OCAxLjg4IDEuMjctMS4yN0wzLjY1IDMuODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBhdXNlUHJlc2VudGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTkuMUgzVjVoMTh2MTQuMXpNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTIxIDE5LjFIM1Y1aDE4djE0LjF6TTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDhoMnY4SDl6bTQgMGgydjhoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlcnNvbkFkZERpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiOFwiLFwiclwiOlwiNFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyAyMHYtMmMwLTIuMy00LjEtMy43LTYuOS0zLjlsNiA1LjloLjl6bS0xMS42LTUuNUM5LjIgMTUuMSA3IDE2LjMgNyAxOHYyaDkuOWw0IDQgMS4zLTEuMy0yMS0yMC45TDAgMy4xbDQgNFYxMEgxdjJoM3YzaDJ2LTNoMi45bDIuNSAyLjV6TTYgMTB2LS45bC45LjlINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVyc29uU2VhcmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMFwiLFwiY3lcIjpcIjhcIixcInJcIjpcIjRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMzUgMTQuMDFDNy42MiAxMy45MSAyIDE1LjI3IDIgMTh2Mmg5LjU0Yy0yLjQ3LTIuNzYtMS4yMy01Ljg5LTEuMTktNS45OXpNMTkuNDMgMTguMDJjLjM2LS41OS41Ny0xLjI4LjU3LTIuMDIgMC0yLjIxLTEuNzktNC00LTRzLTQgMS43OS00IDQgMS43OSA0IDQgNGMuNzQgMCAxLjQzLS4yMiAyLjAyLS41N0wyMC41OSAyMiAyMiAyMC41OWwtMi41Ny0yLjU3ek0xNiAxOGMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBob25lRGlzYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNy4zNCAxNC41NC0xLjQzLTEuNDNjLjU2LS43MyAxLjA1LTEuNSAxLjQ3LTIuMzJsLTIuMi0yLjJjLS4yOC0uMjgtLjM2LS42Ny0uMjUtMS4wMi4zNy0xLjEyLjU3LTIuMzIuNTctMy41NyAwLS41NS40NS0xIDEtMUgyMGMuNTUgMCAxIC40NSAxIDEgMCAzLjk4LTEuMzcgNy42NC0zLjY2IDEwLjU0em0tMi44MiAyLjgxQTE2Ljg4NCAxNi44ODQgMCAwIDEgNCAyMWMtLjU1IDAtMS0uNDUtMS0xdi0zLjQ5YzAtLjU1LjQ1LTEgMS0xIDEuMjQgMCAyLjQ1LS4yIDMuNTctLjU3LjM1LS4xMi43NS0uMDMgMS4wMi4yNGwyLjIgMi4yYy44MS0uNDIgMS41OC0uOSAyLjMtMS40NkwxLjM5IDQuMjJsMS40Mi0xLjQxTDIxLjE5IDIxLjJsLTEuNDEgMS40MS01LjI2LTUuMjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBob25lRW5hYmxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3LjM4IDEwLjc5LTIuMi0yLjJjLS4yOC0uMjgtLjM2LS42Ny0uMjUtMS4wMi4zNy0xLjEyLjU3LTIuMzIuNTctMy41NyAwLS41NS40NS0xIDEtMUgyMGMuNTUgMCAxIC40NSAxIDEgMCA5LjM5LTcuNjEgMTctMTcgMTctLjU1IDAtMS0uNDUtMS0xdi0zLjQ5YzAtLjU1LjQ1LTEgMS0xIDEuMjQgMCAyLjQ1LS4yIDMuNTctLjU3LjM1LS4xMi43NS0uMDMgMS4wMi4yNGwyLjIgMi4yYzIuODMtMS40NSA1LjE1LTMuNzYgNi41OS02LjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNjIgMTAuNzljMS40NCAyLjgzIDMuNzYgNS4xNCA2LjU5IDYuNTlsMi4yLTIuMmMuMjctLjI3LjY3LS4zNiAxLjAyLS4yNCAxLjEyLjM3IDIuMzMuNTcgMy41Ny41Ny41NSAwIDEgLjQ1IDEgMVYyMGMwIC41NS0uNDUgMS0xIDEtOS4zOSAwLTE3LTcuNjEtMTctMTcgMC0uNTUuNDUtMSAxLTFoMy41Yy41NSAwIDEgLjQ1IDEgMSAwIDEuMjUuMiAyLjQ1LjU3IDMuNTcuMTEuMzUuMDMuNzQtLjI1IDEuMDJsLTIuMiAyLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBob25lbGlua0VyYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMyA4LjItMS0xLTQgNC00LTQtMSAxIDQgNC00IDQgMSAxIDQtNCA0IDQgMS0xLTQtNCA0LTR6TTE5IDFIOWMtMS4xIDAtMiAuOS0yIDJ2M2gyVjRoMTB2MTZIOXYtMkg3djNjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaG9uZWxpbmtMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxSDljLTEuMSAwLTIgLjktMiAydjNoMlY0aDEwdjE2SDl2LTJIN3YzYzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptLTguMiAxMFY5LjVDMTAuOCA4LjEgOS40IDcgOCA3UzUuMiA4LjEgNS4yIDkuNVYxMWMtLjYgMC0xLjIuNi0xLjIgMS4ydjMuNWMwIC43LjYgMS4zIDEuMiAxLjNoNS41Yy43IDAgMS4zLS42IDEuMy0xLjJ2LTMuNWMwLS43LS42LTEuMy0xLjItMS4zem0tMS4zIDBoLTNWOS41YzAtLjguNy0xLjMgMS41LTEuM3MxLjUuNSAxLjUgMS4zVjExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaG9uZWxpbmtSaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMC4xIDcuNy0xIDFjMS44IDEuOCAxLjggNC42IDAgNi41bDEgMWMyLjUtMi4zIDIuNS02LjEgMC04LjV6TTE4IDkuOGwtMSAxYy41LjcuNSAxLjYgMCAyLjNsMSAxYzEuMi0xLjIgMS4yLTMgMC00LjN6TTE0IDFINGMtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE5SDRWNGgxMHYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGhvbmVsaW5rU2V0dXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC44MiAxMi40OWMuMDItLjE2LjA0LS4zMi4wNC0uNDkgMC0uMTctLjAyLS4zMy0uMDQtLjQ5bDEuMDgtLjgyYy4xLS4wNy4xMi0uMjEuMDYtLjMybC0xLjAzLTEuNzNjLS4wNi0uMTEtLjItLjE1LS4zMS0uMTFsLTEuMjguNWMtLjI3LS4yLS41Ni0uMzYtLjg3LS40OWwtLjItMS4zM2MwLS4xMi0uMTEtLjIxLS4yNC0uMjFINS45OGEuMjYuMjYgMCAwIDAtLjI2LjIxbC0uMiAxLjMyYy0uMzEuMTItLjYuMy0uODcuNDlsLTEuMjgtLjVjLS4xMi0uMDUtLjI1IDAtLjMxLjExbC0xLjAzIDEuNzNjLS4wNi4xMi0uMDMuMjUuMDcuMzNsMS4wOC44MmMtLjAyLjE2LS4wMy4zMy0uMDMuNDkgMCAuMTcuMDIuMzMuMDQuNDlsLTEuMDkuODNjLS4xLjA3LS4xMi4yMS0uMDYuMzJsMS4wMyAxLjczYy4wNi4xMS4yLjE1LjMxLjExbDEuMjgtLjVjLjI3LjIuNTYuMzYuODcuNDlsLjIgMS4zMmMuMDEuMTIuMTIuMjEuMjUuMjFoMi4wNmMuMTMgMCAuMjQtLjA5LjI1LS4yMWwuMi0xLjMyYy4zMS0uMTIuNi0uMy44Ny0uNDlsMS4yOC41Yy4xMi4wNS4yNSAwIC4zMS0uMTFsMS4wMy0xLjczYy4wNi0uMTEuMDQtLjI0LS4wNi0uMzJsLTEuMS0uODN6TTcgMTMuNzVjLS45OSAwLTEuOC0uNzgtMS44LTEuNzVzLjgxLTEuNzUgMS44LTEuNzUgMS44Ljc4IDEuOCAxLjc1UzggMTMuNzUgNyAxMy43NXpNMTggMS4wMSA4IDFjLTEuMSAwLTIgLjktMiAydjNoMlY1aDEwdjE0SDh2LTFINnYzYzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUG9ydGFibGVXaWZpT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjU2IDE0LjI0Yy4yOC0uNjkuNDQtMS40NS40NC0yLjI0IDAtMy4zMS0yLjY5LTYtNi02LS43OSAwLTEuNTUuMTYtMi4yNC40NGwxLjYyIDEuNjJjLjItLjAzLjQxLS4wNi42Mi0uMDZhMy45OTkgMy45OTkgMCAwIDEgMy45NSA0LjYzbDEuNjEgMS42MXpNMTIgNGM0LjQyIDAgOCAzLjU4IDggOCAwIDEuMzUtLjM1IDIuNjItLjk1IDMuNzRsMS40NyAxLjQ3QTkuODYgOS44NiAwIDAgMCAyMiAxMmMwLTUuNTItNC40OC0xMC0xMC0xMC0xLjkxIDAtMy42OS41NS01LjIxIDEuNDdsMS40NiAxLjQ2QzkuMzcgNC4zNCAxMC42NSA0IDEyIDR6TTMuMjcgMi41IDIgMy43N2wyLjEgMi4xQzIuNzkgNy41NyAyIDkuNjkgMiAxMmMwIDMuNyAyLjAxIDYuOTIgNC45OSA4LjY1bDEtMS43M0M1LjYxIDE3LjUzIDQgMTQuOTYgNCAxMmMwLTEuNzYuNTctMy4zOCAxLjUzLTQuNjlsMS40MyAxLjQ0QzYuMzYgOS42OCA2IDEwLjggNiAxMmMwIDIuMjIgMS4yMSA0LjE1IDMgNS4xOWwxLTEuNzRjLTEuMTktLjctMi0xLjk3LTItMy40NSAwLS42NS4xNy0xLjI1LjQ0LTEuNzlsMS41OCAxLjU4TDEwIDEyYzAgMS4xLjkgMiAyIDJsLjIxLS4wMi4wMS4wMSA3LjUxIDcuNTFMMjEgMjAuMjMgNC4yNyAzLjVsLTEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUHJlc2VudFRvQWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMTEgMC0yIC44OS0yIDJ2MTRjMCAxLjExLjg5IDIgMiAyaDE4YzEuMTEgMCAyLS44OSAyLTJWNWMwLTEuMTEtLjg5LTItMi0yem0wIDE2LjAySDNWNC45OGgxOHYxNC4wNHpNMTAgMTJIOGw0LTQgNCA0aC0ydjRoLTR2LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFByaW50RGlzYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjEgMTdIMjJ2LTZjMC0xLjctMS4zLTMtMy0zaC05bDkuMSA5em0tLjEtN2MuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0tMS0zVjNINnYxLjFMOSA3ek0xLjIgMS44IDAgM2w0LjkgNUMzLjMgOC4xIDIgOS40IDIgMTF2Nmg0djRoMTEuOWwzIDMgMS4zLTEuMy0yMS0yMC45ek04IDE5di01aDIuOWw1IDVIOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUXJDb2RlMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDIxaC0ydi0yaDJ2MnptLTItN2gtMnY1aDJ2LTV6bTgtMmgtMnY0aDJ2LTR6bS0yLTJoLTJ2Mmgydi0yek03IDEySDV2Mmgydi0yem0tMi0ySDN2Mmgydi0yem03LTVoMlYzaC0ydjJ6bS03LjUtLjV2M2gzdi0zaC0zek05IDlIM1YzaDZ2NnptLTQuNSA3LjV2M2gzdi0zaC0zek05IDIxSDN2LTZoNnY2em03LjUtMTYuNXYzaDN2LTNoLTN6TTIxIDloLTZWM2g2djZ6bS0yIDEwdi0zaC00djJoMnYzaDR2LTJoLTJ6bS0yLTdoLTR2Mmg0di0yem0tNC0ySDd2MmgydjJoMnYtMmgydi0yem0xLTFWN2gtMlY1aC0ydjRoNHpNNi43NSA1LjI1aC0xLjV2MS41aDEuNXYtMS41em0wIDEyaC0xLjV2MS41aDEuNXYtMS41em0xMi0xMmgtMS41djEuNWgxLjV2LTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUXJDb2RlU2Nhbm5lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNSA2LjV2M2gtM3YtM2gzTTExIDVINXY2aDZWNXptLTEuNSA5LjV2M2gtM3YtM2gzTTExIDEzSDV2Nmg2di02em02LjUtNi41djNoLTN2LTNoM00xOSA1aC02djZoNlY1em0tNiA4aDEuNXYxLjVIMTNWMTN6bTEuNSAxLjVIMTZWMTZoLTEuNXYtMS41ek0xNiAxM2gxLjV2MS41SDE2VjEzem0tMyAzaDEuNXYxLjVIMTNWMTZ6bTEuNSAxLjVIMTZWMTloLTEuNXYtMS41ek0xNiAxNmgxLjV2MS41SDE2VjE2em0xLjUtMS41SDE5VjE2aC0xLjV2LTEuNXptMCAzSDE5VjE5aC0xLjV2LTEuNXpNMjIgN2gtMlY0aC0zVjJoNXY1em0wIDE1di01aC0ydjNoLTN2Mmg1ek0yIDIyaDV2LTJINHYtM0gydjV6TTIgMnY1aDJWNGgzVjJIMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUXJDb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxMWg4VjNIM3Y4em0yLTZoNHY0SDVWNXpNMyAyMWg4di04SDN2OHptMi02aDR2NEg1di00ek0xMyAzdjhoOFYzaC04em02IDZoLTRWNWg0djR6TTE5IDE5aDJ2MmgtMnpNMTMgMTNoMnYyaC0yek0xNSAxNWgydjJoLTJ6TTEzIDE3aDJ2MmgtMnpNMTUgMTloMnYyaC0yek0xNyAxN2gydjJoLTJ6TTE3IDEzaDJ2MmgtMnpNMTkgMTVoMnYyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZWFkTW9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDdoOXYyaC05ek0xMyAxNWg5djJoLTl6TTE2IDExaDZ2MmgtNnpNMTMgMTIgOCA3djRIMnYyaDZ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmluZ1ZvbHVtZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzLjcxIDE2LjY3QTE2Ljk3MSAxNi45NzEgMCAwIDAgMTIgMTJDNy40NiAxMiAzLjM0IDEzLjc4LjI5IDE2LjY3Yy0uMTguMTgtLjI5LjQzLS4yOS43MSAwIC4yOC4xMS41My4yOS43MWwyLjQ4IDIuNDhjLjE4LjE4LjQzLjI5LjcxLjI5LjI3IDAgLjUyLS4xMS43LS4yOC43OS0uNzQgMS42OS0xLjM2IDIuNjYtMS44NS4zMy0uMTYuNTYtLjUuNTYtLjl2LTMuMWMxLjQ1LS40OCAzLS43MyA0LjYtLjczczMuMTUuMjUgNC42LjcydjMuMWMwIC4zOS4yMy43NC41Ni45Ljk4LjQ5IDEuODcgMS4xMiAyLjY2IDEuODUuMTguMTguNDMuMjguNy4yOC4yOCAwIC41My0uMTEuNzEtLjI5bDIuNDgtMi40OGMuMTgtLjE4LjI5LS40My4yOS0uNzFhLjk5Ljk5IDAgMCAwLS4yOS0uN3pNMjEuMTYgNi4yNmwtMS40MS0xLjQxLTMuNTYgMy41NSAxLjQxIDEuNDFzMy40NS0zLjUyIDMuNTYtMy41NXpNMTMgMmgtMnY1aDJWMnpNNi40IDkuODEgNy44MSA4LjQgNC4yNiA0Ljg0IDIuODQgNi4yNmMuMTEuMDMgMy41NiAzLjU1IDMuNTYgMy41NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUnNzRmVlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNi4xOFwiLFwiY3lcIjpcIjE3LjgyXCIsXCJyXCI6XCIyLjE4XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNC40NHYyLjgzYzcuMDMgMCAxMi43MyA1LjcgMTIuNzMgMTIuNzNoMi44M2MwLTguNTktNi45Ny0xNS41Ni0xNS41Ni0xNS41NnptMCA1LjY2djIuODNjMy45IDAgNy4wNyAzLjE3IDcuMDcgNy4wN2gyLjgzYzAtNS40Ny00LjQzLTkuOS05LjktOS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSdHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm05LjAzIDMtMS4xMSA3LjA3aDIuNjJsLjctNC41aDIuNThMMTEuOCAxOC40M0g5LjQ3TDkuMDYgMjFoNy4yN2wuNC0yLjU3aC0yLjM1bDItMTIuODZoMi41OGwtLjcxIDQuNWgyLjY1TDIyIDNIOS4wM3pNOCA1SDRsLS4zMSAyaDRMOCA1em0tLjYxIDRoLTRsLS4zMSAyaDRsLjMxLTJ6bS45MiA4aC02TDIgMTloNmwuMzEtMnptLjYyLTRoLTZsLS4zMSAyaDYuMDFsLjMtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2NyZWVuU2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE4YzEuMSAwIDEuOTktLjkgMS45OS0yTDIyIDZhMiAyIDAgMCAwLTItMkg0Yy0xLjExIDAtMiAuODktMiAydjEwYTIgMiAwIDAgMCAyIDJIMHYyaDI0di0yaC00em0tNy0zLjUzdi0yLjE5Yy0yLjc4IDAtNC42MS44NS02IDIuNzIuNTYtMi42NyAyLjExLTUuMzMgNi01Ljg3VjdsNCAzLjczLTQgMy43NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2VuZFRpbWVFeHRlbnNpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2YzAtMS4xLS45LTItMi0yaC00YTIuNSAyLjUgMCAwIDAtNSAwSDUuMDFjLTEuMSAwLTIgLjktMiAydjMuOEM1LjcgOS44IDYgMTEuOTYgNiAxMi41cy0uMjkgMi43LTMgMi43VjE5YzAgMS4xLjkgMiAyIDJoMy44YzAtMi4xNiAxLjM3LTIuNzggMi4yLTIuOTR2LTkuM2w5IDQuNVY2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxMnY0bDQgMS00IDF2NGwxMC01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZW50aW1lbnRTYXRpc2ZpZWRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNS41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4LjVcIixcImN5XCI6XCI5LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bTAtMi41YzIuMzMgMCA0LjMyLTEuNDUgNS4xMi0zLjVoLTEuNjdjLS42OSAxLjE5LTEuOTcgMi0zLjQ1IDJzLTIuNzUtLjgxLTMuNDUtMkg2Ljg4Yy44IDIuMDUgMi43OSAzLjUgNS4xMiAzLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgMTAuNWgydjFoLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0tMTAgNi41SDYuNXYuNzVIOWMuNTUgMCAxIC40NSAxIDFWMTRjMCAuNTUtLjQ1IDEtMSAxSDV2LTEuNWgzLjV2LS43NUg2Yy0uNTUgMC0xLS40NS0xLTFWMTBjMC0uNTUuNDUtMSAxLTFoNHYxLjV6bTMgNC41aC0yVjloMnY2em02LTNjMCAuNTUtLjQ1IDEtMSAxaC0yLjV2MkgxNFY5aDRjLjU1IDAgMSAuNDUgMSAxdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwZWFrZXJQaG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA3LjA3IDguNDMgOC41Yy45MS0uOTEgMi4xOC0xLjQ4IDMuNTctMS40OHMyLjY2LjU3IDMuNTcgMS40OEwxNyA3LjA3QzE1LjcyIDUuNzkgMTMuOTUgNSAxMiA1cy0zLjcyLjc5LTUgMi4wN3pNMTIgMUM4Ljk4IDEgNi4yNCAyLjIzIDQuMjUgNC4yMWwxLjQxIDEuNDFDNy4yOCA0IDkuNTMgMyAxMiAzczQuNzIgMSA2LjM0IDIuNjJsMS40MS0xLjQxQTEwLjk2MyAxMC45NjMgMCAwIDAgMTIgMXptMi44NiA5LjAxTDkuMTQgMTBDOC41MSAxMCA4IDEwLjUxIDggMTEuMTR2OS43MWMwIC42My41MSAxLjE0IDEuMTQgMS4xNGg1LjcxYy42MyAwIDEuMTQtLjUxIDEuMTQtMS4xNHYtOS43MWMuMDEtLjYzLS41LTEuMTMtMS4xMy0xLjEzek0xNSAyMEg5di04aDZ2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3Bva2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA3YzAgMi4yMS0xLjc5IDQtNCA0UzggOS4yMSA4IDdzMS43OS00IDQtNCA0IDEuNzkgNCA0em0tOSA2Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMTAgMGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN0YXlDdXJyZW50TGFuZHNjYXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMS4wMSA3IDEgMTdjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0ySDNjLTEuMSAwLTEuOTkuOS0xLjk5IDJ6TTE5IDd2MTBINVY3aDE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdGF5Q3VycmVudFBvcnRyYWl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMS4wMSA3IDFjLTEuMSAwLTEuOTkuOS0xLjk5IDJ2MThjMCAxLjEuODkgMiAxLjk5IDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTcgMTlIN1Y1aDEwdjE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdGF5UHJpbWFyeUxhbmRzY2FwZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuMDEgNyAxIDE3YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMkgzYy0xLjEgMC0xLjk5LjktMS45OSAyek0xOSA3djEwSDVWN2gxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RheVByaW1hcnlQb3J0cmFpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEuMDEgNyAxYy0xLjEgMC0xLjk5LjktMS45OSAydjE4YzAgMS4xLjg5IDIgMS45OSAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMS45OS0yLTEuOTl6TTE3IDE5SDdWNWgxMHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RvcFNjcmVlblNoYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS4yMiAxOC4wMiAyIDJIMjR2LTJoLTIuNzh6bS43Ny0yIC4wMS0xMGEyIDIgMCAwIDAtMi0ySDcuMjJsNS4yMyA1LjIzYy4xOC0uMDQuMzYtLjA3LjU1LS4xVjcuMDJsNCAzLjczLTEuNTggMS40NyA1LjU0IDUuNTRjLjYxLS4zMyAxLjAzLS45OSAxLjAzLTEuNzR6TTIuMzkgMS43MyAxLjExIDNsMS41NCAxLjU0Yy0uNC4zNi0uNjUuODktLjY1IDEuNDh2MTBhMiAyIDAgMCAwIDIgMkgwdjJoMTguMTNsMi43MSAyLjcxIDEuMjctMS4yN0wyLjM5IDEuNzN6TTcgMTUuMDJjLjMxLTEuNDguOTItMi45NSAyLjA3LTQuMDZsMS41OSAxLjU5Yy0xLjU0LjM4LTIuNyAxLjE4LTMuNjYgMi40N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3dhcENhbGxzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTggNC00IDRoM3Y3YzAgMS4xLS45IDItMiAycy0yLS45LTItMlY4YzAtMi4yMS0xLjc5LTQtNC00UzUgNS43OSA1IDh2N0gybDQgNCA0LTRIN1Y4YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ2N2MwIDIuMjEgMS43OSA0IDQgNHM0LTEuNzkgNC00VjhoM2wtNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUZXh0c21zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6TTkgMTFIN1Y5aDJ2MnptNCAwaC0yVjloMnYyem00IDBoLTJWOWgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFVuc3Vic2NyaWJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC41IDEzYy0xLjkzIDAtMy41IDEuNTctMy41IDMuNXMxLjU3IDMuNSAzLjUgMy41IDMuNS0xLjU3IDMuNS0zLjUtMS41Ny0zLjUtMy41LTMuNXptMiA0aC00di0xaDR2MXptLTYuOTUgMGMtLjAyLS4xNy0uMDUtLjMzLS4wNS0uNSAwLTIuNzYgMi4yNC01IDUtNSAuOTIgMCAxLjc2LjI2IDIuNS42OVY1YzAtMS4xLS45LTItMi0ySDVjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoOC41NXpNMTIgMTAuNSA1IDdWNWw3IDMuNUwxOSA1djJsLTcgMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWb2ljZW1haWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC41IDZDMTUuNDYgNiAxMyA4LjQ2IDEzIDExLjVjMCAxLjMzLjQ3IDIuNTUgMS4yNiAzLjVIOS43NGMuNzktLjk1IDEuMjYtMi4xNyAxLjI2LTMuNUMxMSA4LjQ2IDguNTQgNiA1LjUgNlMwIDguNDYgMCAxMS41IDIuNDYgMTcgNS41IDE3aDEzYzMuMDQgMCA1LjUtMi40NiA1LjUtNS41UzIxLjU0IDYgMTguNSA2em0tMTMgOUMzLjU3IDE1IDIgMTMuNDMgMiAxMS41UzMuNTcgOCA1LjUgOCA5IDkuNTcgOSAxMS41IDcuNDMgMTUgNS41IDE1em0xMyAwYy0xLjkzIDAtMy41LTEuNTctMy41LTMuNVMxNi41NyA4IDE4LjUgOCAyMiA5LjU3IDIyIDExLjUgMjAuNDMgMTUgMTguNSAxNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVnBuS2V5T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuODMgMThIMjF2LTRoMnYtNEgxMi44M2w4IDh6bS0xLjA1IDQuNjEgMS40MS0xLjQxTDIuODEgMi44MSAxLjM5IDQuMjJsMi41OSAyLjU5QTYuMDEyIDYuMDEyIDAgMCAwIDEgMTJjMCAzLjMxIDIuNjkgNiA2IDYgMi4yMSAwIDQuMTUtMS4yIDUuMTgtMi45OWw3LjYgNy42ek04Ljk5IDExLjgyYy4wMS4wNi4wMS4xMi4wMS4xOCAwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgLjktMiAyLTJjLjA2IDAgLjEyIDAgLjE4LjAxbDEuODEgMS44MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVnBuS2V5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNjUgMTBBNS45OSA1Ljk5IDAgMCAwIDcgNmMtMy4zMSAwLTYgMi42OS02IDZzMi42OSA2IDYgNmE1Ljk5IDUuOTkgMCAwIDAgNS42NS00SDE3djRoNHYtNGgydi00SDEyLjY1ek03IDE0Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2lmaUNhbGxpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA0Ljk1QzIxLjc5IDQuNzggMTkuNjcgMyAxNi41IDNjLTMuMTggMC01LjI5IDEuNzgtNS41IDEuOTVMMTYuNSAxMiAyMiA0Ljk1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxNS41MWMtMS4yNCAwLTIuNDUtLjItMy41Ny0uNTdhLjk5NC45OTQgMCAwIDAtMS4wMi4yNGwtMi4yIDIuMmExNS4xNDkgMTUuMTQ5IDAgMCAxLTYuNTktNi41OWwyLjItMi4yYy4yOC0uMjguMzYtLjY3LjI1LTEuMDJBMTEuMzYgMTEuMzYgMCAwIDEgOC41IDRjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNDljMC0uNTUtLjQ1LTEtMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZGRCb3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS0yIDEwaC00djRoLTJ2LTRIN3YtMmg0VjdoMnY0aDR2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRkQ2lyY2xlT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDdoLTJ2NEg3djJoNHY0aDJ2LTRoNHYtMmgtNFY3em0tMS01QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRkQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptNSAxMWgtNHY0aC0ydi00SDd2LTJoNFY3aDJ2NGg0djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZExpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTFoOHYySDh6bTEyLjEgMUgyMmMwLTIuNzYtMi4yNC01LTUtNWgtNHYxLjloNGMxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXpNMy45IDEyYzAtMS43MSAxLjM5LTMuMSAzLjEtMy4xaDRWN0g3Yy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1aDR2LTEuOUg3Yy0xLjcxIDAtMy4xLTEuMzktMy4xLTMuMXpNMTkgMTJoLTJ2M2gtM3YyaDN2M2gydi0zaDN2LTJoLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDEzaC02djZoLTJ2LTZINXYtMmg2VjVoMnY2aDZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQW1wU3RvcmllcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgNGgxMHYxNUg3ek0zIDZoMnYxMUgzek0xOSA2aDJ2MTFoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFyY2hpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMC41NCA1LjIzLTEuMzktMS42OEMxOC44OCAzLjIxIDE4LjQ3IDMgMTggM0g2Yy0uNDcgMC0uODguMjEtMS4xNi41NUwzLjQ2IDUuMjNDMy4xNyA1LjU3IDMgNi4wMiAzIDYuNVYxOWMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjYuNWMwLS40OC0uMTctLjkzLS40Ni0xLjI3ek0xMiAxNy41IDYuNSAxMkgxMHYtMmg0djJoMy41TDEyIDE3LjV6TTUuMTIgNWwuODEtMWgxMmwuOTQgMUg1LjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBdHRyaWJ1dGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDguNWMtLjkxIDAtMi43NS40Ni0yLjc1IDEuMzh2NC42MmgxLjVWMTloMi41di00LjVoMS41VjkuODhjMC0uOTEtMS44NC0xLjM4LTIuNzUtMS4zOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ3IDIgMiA2LjQ3IDIgMTJzNC40NyAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI2LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYWNrc3BhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAzSDdjLS42OSAwLTEuMjMuMzUtMS41OS44OEwwIDEybDUuNDEgOC4xMWMuMzYuNTMuOS44OSAxLjU5Ljg5aDE1YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS0zIDEyLjU5TDE3LjU5IDE3IDE0IDEzLjQxIDEwLjQxIDE3IDkgMTUuNTkgMTIuNTkgMTIgOSA4LjQxIDEwLjQxIDcgMTQgMTAuNTkgMTcuNTkgNyAxOSA4LjQxIDE1LjQxIDEyIDE5IDE1LjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYWxsb3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTMgOS41aDV2LTJoLTV2MnptMCA3aDV2LTJoLTV2MnptNiA0LjVINWMtMS4xIDAtMi0uOS0yLTJWNWMwLTEuMS45LTIgMi0yaDE0YzEuMSAwIDIgLjkgMiAydjE0YzAgMS4xLS45IDItMiAyek02IDExaDVWNkg2djV6bTEtNGgzdjNIN1Y3ek02IDE4aDV2LTVINnY1em0xLTRoM3YzSDd2LTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJpb3RlY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE5Yy0xLjEgMC0yIC45LTIgMmgxNGMwLTEuMS0uOS0yLTItMmgtNHYtMmgzYzEuMSAwIDItLjkgMi0yaC04Yy0xLjY2IDAtMy0xLjM0LTMtMyAwLTEuMDkuNTktMi4wNCAxLjQ2LTIuNTZDOC4xNyA5LjAzIDggOC41NCA4IDhjMC0uMjEuMDQtLjQyLjA5LS42MkE1LjAxIDUuMDEgMCAwIDAgNSAxMmMwIDIuNzYgMi4yNCA1IDUgNXYySDd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjU2IDUuNTFDMTEuOTEgNS41NCAxMyA2LjY0IDEzIDhjMCAuNzUtLjMzIDEuNDEtLjg1IDEuODdsLjU5IDEuNjIuOTQtLjM0LjM0Ljk0IDEuODgtLjY4LS4zNC0uOTQuOTQtLjM0LTIuNzQtNy41My0uOTQuMzQtLjM0LS45NC0xLjg4LjY4LjM0Ljk0LS45NC4zNS41NiAxLjU0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEwLjVcIixcImN5XCI6XCI4XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmxvY2tGbGlwcGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTJjMC01LjUtNC41LTEwLTEwLTEwUzIgNi41IDIgMTJzNC41IDEwIDEwIDEwIDEwLTQuNSAxMC0xMHpNNS43IDcuMWwxMS4yIDExLjJjLTEuMyAxLjEtMyAxLjctNC45IDEuNy00LjQgMC04LTMuNi04LTggMC0xLjkuNi0zLjYgMS43LTQuOXpNMjAgMTJjMCAxLjktLjYgMy42LTEuNyA0LjlMNy4xIDUuN0M4LjQgNC42IDEwLjEgNCAxMiA0YzQuNCAwIDggMy42IDggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyek00IDEyYzAtNC40MiAzLjU4LTggOC04IDEuODUgMCAzLjU1LjYzIDQuOSAxLjY5TDUuNjkgMTYuOUE3LjkwMiA3LjkwMiAwIDAgMSA0IDEyem04IDhjLTEuODUgMC0zLjU1LS42My00LjktMS42OUwxOC4zMSA3LjFBNy45MDIgNy45MDIgMCAwIDEgMjAgMTJjMCA0LjQyLTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJvbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDIxaC0xbDEtN0g3LjVjLS41OCAwLS41Ny0uMzItLjM4LS42Ni4xOS0uMzQuMDUtLjA4LjA3LS4xMkM4LjQ4IDEwLjk0IDEwLjQyIDcuNTQgMTMgM2gxbC0xIDdoMy41Yy40OSAwIC41Ni4zMy40Ny41MWwtLjA3LjE1QzEyLjk2IDE3LjU1IDExIDIxIDExIDIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYWxjdWxhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTUuOTcgNC4wNkwxNC4wOSA2bDEuNDEgMS40MUwxNi45MSA2bDEuMDYgMS4wNi0xLjQxIDEuNDEgMS40MSAxLjQxLTEuMDYgMS4wNi0xLjQxLTEuNC0xLjQxIDEuNDEtMS4wNi0xLjA2IDEuNDEtMS40MS0xLjQxLTEuNDJ6bS02Ljc4LjY2aDV2MS41aC01di0xLjV6TTExLjUgMTZoLTJ2Mkg4di0ySDZ2LTEuNWgydi0yaDEuNXYyaDJWMTZ6bTYuNSAxLjI1aC01di0xLjVoNXYxLjV6bTAtMi41aC01di0xLjVoNXYxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENoYW5nZUNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bS4wNiAxN3YtMi4wMUgxMmMtMS4yOCAwLTIuNTYtLjQ5LTMuNTQtMS40NmE1LjAwNiA1LjAwNiAwIDAgMS0uNjQtNi4yOWwxLjEgMS4xYy0uNzEgMS4zMy0uNTMgMy4wMS41OSA0LjEzLjcuNyAxLjYyIDEuMDMgMi41NCAxLjAxdi0yLjE0bDIuODMgMi44M0wxMi4wNiAxOXptNC4xMS00LjI0LTEuMS0xLjFjLjcxLTEuMzMuNTMtMy4wMS0uNTktNC4xM0EzLjQ4MiAzLjQ4MiAwIDAgMCAxMiA4LjVoLS4wNnYyLjE1TDkuMTEgNy44MyAxMS45NCA1djIuMDJjMS4zLS4wMiAyLjYxLjQ1IDMuNiAxLjQ1IDEuNyAxLjcgMS45MSA0LjM1LjYzIDYuMjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENsZWFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNi40MSAxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb250ZW50Q29weSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDFINGMtMS4xIDAtMiAuOS0yIDJ2MTRoMlYzaDEyVjF6bTMgNEg4Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDExYzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bTAgMTZIOFY3aDExdjE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb250ZW50Q3V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI2XCIsXCJjeVwiOlwiMThcIixcInJcIjpcIjJcIixcImZpbGxcIjpcIm5vbmVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIuNVwiLFwiZmlsbFwiOlwibm9uZVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjZcIixcImN5XCI6XCI2XCIsXCJyXCI6XCIyXCIsXCJmaWxsXCI6XCJub25lXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNjQgNy42NGMuMjMtLjUuMzYtMS4wNS4zNi0xLjY0IDAtMi4yMS0xLjc5LTQtNC00UzIgMy43OSAyIDZzMS43OSA0IDQgNGMuNTkgMCAxLjE0LS4xMyAxLjY0LS4zNkwxMCAxMmwtMi4zNiAyLjM2QzcuMTQgMTQuMTMgNi41OSAxNCA2IDE0Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTRjMC0uNTktLjEzLTEuMTQtLjM2LTEuNjRMMTIgMTRsNyA3aDN2LTFMOS42NCA3LjY0ek02IDhjLTEuMSAwLTItLjg5LTItMnMuOS0yIDItMiAyIC44OSAyIDItLjkgMi0yIDJ6bTAgMTJjLTEuMSAwLTItLjg5LTItMnMuOS0yIDItMiAyIC44OSAyIDItLjkgMi0yIDJ6bTYtNy41Yy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjUuNS4yMi41LjUtLjIyLjUtLjUuNXpNMTkgM2wtNiA2IDIgMiA3LTdWM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29udGVudFBhc3RlR28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDVoMnYzaDEwVjVoMnY2aDJWNWMwLTEuMS0uOS0yLTItMmgtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFzLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmg1di0ySDVWNXptNy0yYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4LjAxIDEzLTEuNDIgMS40MSAxLjU4IDEuNThIMTJ2Mmg2LjE3bC0xLjU4IDEuNTkgMS40MiAxLjQxIDMuOTktNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29udGVudFBhc3RlT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuMTkgMjEuMTkgMi44MSAyLjgxIDEuMzkgNC4yMiAzIDUuODNWMTljMCAxLjEuOSAyIDIgMmgxMy4xN2wxLjYxIDEuNjEgMS40MS0xLjQyek01IDE5VjcuODNMMTYuMTcgMTlINXpNMTcgOFY1aDJ2MTEuMTdsMiAyVjVjMC0xLjEtLjktMi0yLTJoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxcy0yLjQuODQtMi44MiAySDUuODNsNSA1SDE3em0tNS01Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbnRlbnRQYXN0ZVNlYXJjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgNWgydjNoMTBWNWgydjVoMlY1YzAtMS4xLS45LTItMi0yaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMXMtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDV2LTJINVY1em03LTJjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuMyAxOC45Yy40LS43LjctMS41LjctMi40IDAtMi41LTItNC41LTQuNS00LjVTMTIgMTQgMTIgMTYuNXMyIDQuNSA0LjUgNC41Yy45IDAgMS43LS4zIDIuNC0uN2wyLjcgMi43IDEuNC0xLjQtMi43LTIuN3ptLTMuOC4xYy0xLjQgMC0yLjUtMS4xLTIuNS0yLjVzMS4xLTIuNSAyLjUtMi41IDIuNSAxLjEgMi41IDIuNS0xLjEgMi41LTIuNSAyLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbnRlbnRQYXN0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDJoLTQuMThDMTQuNC44NCAxMy4zIDAgMTIgMGMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptNyAxOEg1VjRoMnYzaDEwVjRoMnYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29weUFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDJIOWMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg5YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTRIOVY0aDl2MTJ6TTMgMTV2LTJoMnYySDN6bTAtNS41aDJ2Mkgzdi0yek0xMCAyMGgydjJoLTJ2LTJ6bS03LTEuNXYtMmgydjJIM3pNNSAyMmMtMS4xIDAtMi0uOS0yLTJoMnYyem0zLjUgMGgtMnYtMmgydjJ6bTUgMHYtMmgyYzAgMS4xLS45IDItMiAyek01IDZ2MkgzYzAtMS4xLjktMiAyLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENyZWF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTcuMjVWMjFoMy43NUwxNy44MSA5Ljk0bC0zLjc1LTMuNzVMMyAxNy4yNXpNMjAuNzEgNy4wNGEuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLTIuMzQtMi4zNGEuOTk2Ljk5NiAwIDAgMC0xLjQxIDBsLTEuODMgMS44MyAzLjc1IDMuNzUgMS44My0xLjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREZWxldGVTd2VlcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDE2aDR2MmgtNHptMC04aDd2MmgtN3ptMCA0aDZ2MmgtNnpNMyAxOGMwIDEuMS45IDIgMiAyaDZjMS4xIDAgMi0uOSAyLTJWOEgzdjEwek0xNCA1aC0zbC0xLTFINkw1IDVIMnYyaDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREZXNlbGVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTNoMnYtMkgzdjJ6bTQgOGgydi0ySDd2MnptNi0xOGgtMnYyaDJWM3ptNiAwdjJoMmMwLTEuMS0uOS0yLTItMnpNNSAyMXYtMkgzYzAgMS4xLjkgMiAyIDJ6bS0yLTRoMnYtMkgzdjJ6bTggNGgydi0yaC0ydjJ6bTgtOGgydi0yaC0ydjJ6bTAtNGgyVjdoLTJ2MnptLTQtNGgyVjNoLTJ2MnpNNy44MyA1IDcgNC4xN1YzaDJ2Mkg3Ljgzem0xMiAxMi0uODMtLjgzVjE1aDJ2MmgtMS4xN3ptMS4zNiA0LjE5TDIuODEgMi44MSAxLjM5IDQuMjIgNC4xNyA3SDN2MmgyVjcuODNsMiAyVjE3aDcuMTdsMiAySDE1djJoMnYtMS4xN2wyLjc4IDIuNzggMS40MS0xLjQyek05IDE1di0zLjE3TDEyLjE3IDE1SDl6bTYtMi44M1Y5aC0zLjE3bC0yLTJIMTd2Ny4xN2wtMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREcmFmdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS45OSA4YzAtLjcyLS4zNy0xLjM1LS45NC0xLjdMMTIgMSAyLjk1IDYuM0MyLjM4IDYuNjUgMiA3LjI4IDIgOHYxMGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0ybC0uMDEtMTB6TTEyIDEzIDMuNzQgNy44NCAxMiAzbDguMjYgNC44NEwxMiAxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRHluYW1pY0ZlZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDhINnY3YzAgMS4xLjkgMiAyIDJoOXYtMkg4Vjh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNoLThjLTEuMSAwLTIgLjktMiAydjZjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgOGgtOFY3aDh2NHpNNCAxMkgydjdjMCAxLjEuOSAyIDIgMmg5di0ySDR2LTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbGVDb3B5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMUg0Yy0xLjEgMC0yIC45LTIgMnYxNGgyVjNoMTJWMXptLTEgNCA2IDZ2MTBjMCAxLjEtLjkgMi0yIDJINy45OUM2Ljg5IDIzIDYgMjIuMSA2IDIxbC4wMS0xNGMwLTEuMS44OS0yIDEuOTktMmg3em0tMSA3aDUuNUwxNCA2LjVWMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbHRlckxpc3RPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC44MyA4SDIxVjZIOC44M2wyIDJ6bTUgNUgxOHYtMmgtNC4xN2wyIDJ6TTE0IDE2LjgzVjE4aC00di0yaDMuMTdsLTMtM0g2di0yaDIuMTdsLTMtM0gzVjZoLjE3TDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOCAxOC4zOC0xLjQxIDEuNDFMMTQgMTYuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbHRlckxpc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxOGg0di0yaC00djJ6TTMgNnYyaDE4VjZIM3ptMyA3aDEydi0ySDZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmxhZ0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTYgMTNoLTVsLTEtMkg5LjV2NUg4VjdoNmwxIDJoM3Y2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGbGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNCA2IDE0IDRINXYxN2gydi03aDUuNmwuNCAyaDdWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9udERvd25sb2FkT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIuNTggOS43NS0uODctLjg3LjIzLS42NmguMWwuNTQgMS41M3ptLTIuMjMtMi4yM0wxMC45MiA2aDIuMTRsMi41NSA2Ljc5TDIyIDE5LjE3VjRjMC0xLjEtLjktMi0yLTJINC44M2w1LjUyIDUuNTJ6bTEwLjE0IDE1Ljc5TDE5LjE3IDIySDRjLTEuMSAwLTItLjktMi0yVjQuODNMLjY5IDMuNTEgMi4xIDIuMWwxOS44IDE5LjgtMS40MSAxLjQxem0tOC4zOS04LjM4LTMuMy0zLjNMNi40MSAxOGgyLjA4bDEuMDktMy4wN2gyLjUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb250RG93bmxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiYmFzZVByb2ZpbGVcIjpcInRpbnlcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjkzIDEzLjVoNC4xNEwxMiA3Ljk4ek0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTQuMDUgMTYuNS0xLjE0LTNIOS4xN2wtMS4xMiAzSDUuOTZsNS4xMS0xM2gxLjg2bDUuMTEgMTNoLTIuMDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcndhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA4VjRsOCA4LTggOHYtNEg0Vjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdlc3R1cmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjU5IDYuODljLjctLjcxIDEuNC0xLjM1IDEuNzEtMS4yMi41LjIgMCAxLjAzLS4zIDEuNTItLjI1LjQyLTIuODYgMy44OS0yLjg2IDYuMzEgMCAxLjI4LjQ4IDIuMzQgMS4zNCAyLjk4Ljc1LjU2IDEuNzQuNzMgMi42NC40NiAxLjA3LS4zMSAxLjk1LTEuNCAzLjA2LTIuNzcgMS4yMS0xLjQ5IDIuODMtMy40NCA0LjA4LTMuNDQgMS42MyAwIDEuNjUgMS4wMSAxLjc2IDEuNzktMy43OC42NC01LjM4IDMuNjctNS4zOCA1LjM3IDAgMS43IDEuNDQgMy4wOSAzLjIxIDMuMDkgMS42MyAwIDQuMjktMS4zMyA0LjY5LTYuMUgyMXYtMi41aC0yLjQ3Yy0uMTUtMS42NS0xLjA5LTQuMi00LjAzLTQuMi0yLjI1IDAtNC4xOCAxLjkxLTQuOTQgMi44NC0uNTguNzMtMi4wNiAyLjQ4LTIuMjkgMi43Mi0uMjUuMy0uNjguODQtMS4xMS44NC0uNDUgMC0uNzItLjgzLS4zNi0xLjkyLjM1LTEuMDkgMS40LTIuODYgMS44NS0zLjUyLjc4LTEuMTQgMS4zLTEuOTIgMS4zLTMuMjhDOC45NSAzLjY5IDcuMzEgMyA2LjQ0IDMgNS4xMiAzIDMuOTcgNCAzLjcyIDQuMjVjLS4zNi4zNi0uNjYuNjYtLjg4LjkzbDEuNzUgMS43MXptOS4yOSAxMS42NmMtLjMxIDAtLjc0LS4yNi0uNzQtLjcyIDAtLjYuNzMtMi4yIDIuODctMi43Ni0uMyAyLjY5LTEuNDMgMy40OC0yLjEzIDMuNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhvd1RvUmVnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImdcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm05IDE3IDMtMi45NGE5LjM0IDkuMzQgMCAwIDAtMS0uMDZjLTIuNjcgMC04IDEuMzQtOCA0djJoOWwtMy0zem0yLTVjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTQtNCAxLjc5LTQgNCAxLjc5IDQgNCA0TTE1LjQ3IDIwLjUgMTIgMTdsMS40LTEuNDEgMi4wNyAyLjA4IDUuMTMtNS4xNyAxLjQgMS40MXpcIn0sXCJjaGlsZFwiOltdfV19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIb3dUb1ZvdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDEzaC0uNjhsLTIgMmgxLjkxTDE5IDE3SDVsMS43OC0yaDIuMDVsLTItMkg2bC0zIDN2NGMwIDEuMS44OSAyIDEuOTkgMkgxOWEyIDIgMCAwIDAgMi0ydi00bC0zLTN6bS0xLTUuMDUtNC45NSA0Ljk1LTMuNTQtMy41NCA0Ljk1LTQuOTVMMTcgNy45NXptLTQuMjQtNS42Nkw2LjM5IDguNjZhLjk5Ni45OTYgMCAwIDAgMCAxLjQxbDQuOTUgNC45NWMuMzkuMzkgMS4wMi4zOSAxLjQxIDBsNi4zNi02LjM2YS45OTYuOTk2IDAgMCAwIDAtMS40MUwxNC4xNiAyLjNhLjk3NS45NzUgMCAwIDAtMS40LS4wMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW5ib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINC45OWMtMS4xMSAwLTEuOTguODktMS45OCAyTDMgMTljMCAxLjEuODggMiAxLjk5IDJIMTljMS4xIDAgMi0uOSAyLTJWNWEyIDIgMCAwIDAtMi0yem0wIDEyaC00YzAgMS42Ni0xLjM1IDMtMyAzcy0zLTEuMzQtMy0zSDQuOTlWNUgxOXYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW5zaWdodHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA4Yy0xLjQ1IDAtMi4yNiAxLjQ0LTEuOTMgMi41MWwtMy41NSAzLjU2Yy0uMy0uMDktLjc0LS4wOS0xLjA0IDBsLTIuNTUtMi41NUMxMi4yNyAxMC40NSAxMS40NiA5IDEwIDljLTEuNDUgMC0yLjI3IDEuNDQtMS45MyAyLjUybC00LjU2IDQuNTVDMi40NCAxNS43NCAxIDE2LjU1IDEgMThjMCAxLjEuOSAyIDIgMiAxLjQ1IDAgMi4yNi0xLjQ0IDEuOTMtMi41MWw0LjU1LTQuNTZjLjMuMDkuNzQuMDkgMS4wNCAwbDIuNTUgMi41NUMxMi43MyAxNi41NSAxMy41NCAxOCAxNSAxOGMxLjQ1IDAgMi4yNy0xLjQ0IDEuOTMtMi41MmwzLjU2LTMuNTVjMS4wNy4zMyAyLjUxLS40OCAyLjUxLTEuOTMgMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1IDkgLjk0LTIuMDdMMTggNmwtMi4wNi0uOTNMMTUgM2wtLjkyIDIuMDdMMTIgNmwyLjA4Ljkzek0zLjUgMTEgNCA5bDItLjVMNCA4bC0uNS0yTDMgOGwtMiAuNUwzIDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEludmVudG9yeTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEgMC0yIC45LTIgMnYzLjAxYzAgLjcyLjQzIDEuMzQgMSAxLjY5VjIwYzAgMS4xIDEuMSAyIDIgMmgxNGMuOSAwIDItLjkgMi0yVjguN2MuNTctLjM1IDEtLjk3IDEtMS42OVY0YzAtMS4xLTEtMi0yLTJ6bS01IDEySDl2LTJoNnYyem01LTdINFY0aDE2djN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEludmVudG9yeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xIDAtMiAuOS0yIDJ2My4wMWMwIC43Mi40MyAxLjM0IDEgMS42OVYyMGMwIDEuMSAxLjEgMiAyIDJoMTRjLjkgMCAyLS45IDItMlY4LjdjLjU3LS4zNSAxLS45NyAxLTEuNjlWNGMwLTEuMS0xLTItMi0yem0tNSAxMkg5di0yaDZ2MnptNS03SDRWNGwxNi0uMDJWN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGlua09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgN2gtNHYxLjloNGMxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMSAwIDEuNDMtLjk4IDIuNjMtMi4zMSAyLjk4bDEuNDYgMS40NkMyMC44OCAxNS42MSAyMiAxMy45NSAyMiAxMmMwLTIuNzYtMi4yNC01LTUtNXptLTEgNGgtMi4xOWwyIDJIMTZ6TTIgNC4yN2wzLjExIDMuMTFBNC45OTEgNC45OTEgMCAwIDAgMiAxMmMwIDIuNzYgMi4yNCA1IDUgNWg0di0xLjlIN2MtMS43MSAwLTMuMS0xLjM5LTMuMS0zLjEgMC0xLjU5IDEuMjEtMi45IDIuNzYtMy4wN0w4LjczIDExSDh2MmgyLjczTDEzIDE1LjI3VjE3aDEuNzNsNC4wMSA0TDIwIDE5Ljc0IDMuMjcgMyAyIDQuMjd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMjRWMFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy45IDEyYzAtMS43MSAxLjM5LTMuMSAzLjEtMy4xaDRWN0g3Yy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1aDR2LTEuOUg3Yy0xLjcxIDAtMy4xLTEuMzktMy4xLTMuMXpNOCAxM2g4di0ySDh2MnptOS02aC00djEuOWg0YzEuNzEgMCAzLjEgMS4zOSAzLjEgMy4xcy0xLjM5IDMuMS0zLjEgMy4xaC00VjE3aDRjMi43NiAwIDUtMi4yNCA1LTVzLTIuMjQtNS01LTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvd1ByaW9yaXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgNWg4djJoLTh6bTAgNS41aDh2MmgtOHptMCA1LjVoOHYyaC04ek0yIDExLjVDMiAxNS4wOCA0LjkyIDE4IDguNSAxOEg5djJsMy0zLTMtM3YyaC0uNUM2LjAyIDE2IDQgMTMuOTggNCAxMS41UzYuMDIgNyA4LjUgN0gxMlY1SDguNUM0LjkyIDUgMiA3LjkyIDIgMTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWFpbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCA0LTggNS04LTVWNmw4IDUgOC01djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1hcmt1bnJlYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgNC04IDUtOC01VjZsOCA1IDgtNXYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb3ZlVG9JbmJveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g0Ljk5Yy0xLjExIDAtMS45OC45LTEuOTggMkwzIDE5YzAgMS4xLjg4IDIgMS45OSAySDE5YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTJoLTRjMCAxLjY2LTEuMzUgMy0zIDNzLTMtMS4zNC0zLTNINC45OVY1SDE5djEwem0tMy01aC0yVjdoLTR2M0g4bDQgNCA0LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5leHRXZWVrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgN2gtNFY1YzAtLjU1LS4yMi0xLjA1LS41OS0xLjQxQzE1LjA1IDMuMjIgMTQuNTUgMyAxNCAzaC00Yy0xLjEgMC0yIC45LTIgMnYySDRjLTEuMSAwLTIgLjktMiAydjExYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOWMwLTEuMS0uOS0yLTItMnpNMTAgNWg0djJoLTRWNXptMSAxMy41LTEtMSAzLTMtMy0zIDEtMSA0IDQtNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lZEZsYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNCA2LTEtMkg1djE3aDJ2LTdoNWwxIDJoN1Y2aC02em00IDhoLTRsLTEtMkg3VjZoNWwxIDJoNXY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQb2xpY3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMSA1LTktNC05IDR2NmMwIDUuNTUgMy44NCAxMC43NCA5IDEyIDIuMy0uNTYgNC4zMy0xLjkgNS44OC0zLjcxbC0zLjEyLTMuMTJhNC45OTQgNC45OTQgMCAwIDEtNi4yOS0uNjQgNS4wMDMgNS4wMDMgMCAwIDEgMC03LjA3IDUuMDAzIDUuMDAzIDAgMCAxIDcuMDcgMCA1LjAwNiA1LjAwNiAwIDAgMSAuNjQgNi4yOWwyLjkgMi45QzIwLjI5IDE1LjY5IDIxIDEzLjM4IDIxIDExVjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiM1wifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQdXNoUGluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE2IDlWNGgxYy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDFoMXY1YzAgMS42Ni0xLjM0IDMtMyAzdjJoNS45N3Y3bDEgMSAxLTF2LTdIMTl2LTJjLTEuNjYgMC0zLTEuMzQtMy0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZWRvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmE4LjAwMiA4LjAwMiAwIDAgMSA3LjYtNS41YzEuOTUgMCAzLjczLjcyIDUuMTIgMS44OEwxMyAxNmg5VjdsLTMuNiAzLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlbW92ZUNpcmNsZU91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDExdjJoMTB2LTJIN3ptNS05QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVtb3ZlQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptNSAxMUg3di0yaDEwdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlbW92ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDEzSDV2LTJoMTR2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVwbHlBbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDhWNWwtNyA3IDcgN3YtM2wtNC00IDQtNHptNiAxVjVsLTcgNyA3IDd2LTQuMWM1IDAgOC41IDEuNiAxMSA1LjEtMS01LTQtMTAtMTEtMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlcGx5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgOVY1bC03IDcgNyA3di00LjFjNSAwIDguNSAxLjYgMTEgNS4xLTEtNS00LTEwLTExLTExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZXBvcnRHbWFpbGVycm9ycmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNzMgM0g4LjI3TDMgOC4yN3Y3LjQ2TDguMjcgMjFoNy40NkwyMSAxNS43M1Y4LjI3TDE1LjczIDN6TTE5IDE0LjkgMTQuOSAxOUg5LjFMNSAxNC45VjkuMUw5LjEgNWg1LjhMMTkgOS4xdjUuOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgN2gydjZoLTJ6TTExIDE1aDJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVwb3J0T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgN2gydjIuOTJsNi45MSA2LjkxIDEuMDktMS4xVjguMjdMMTUuNzMgM0g4LjI3TDcuMTggNC4xIDExIDcuOTJ6bTExLjI3IDE0LjczLTIwLTIwLjAxTDEgMi45OWwzLjY0IDMuNjRMMyA4LjI3djcuNDZMOC4yNyAyMWg3LjQ2bDEuNjQtMS42M0wyMSAyM2wxLjI3LTEuMjd6TTEyIDE3LjNjLS43MiAwLTEuMy0uNTgtMS4zLTEuM3MuNTgtMS4zIDEuMy0xLjMgMS4zLjU4IDEuMyAxLjMtLjU4IDEuMy0xLjMgMS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZXBvcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS43MyAzSDguMjdMMyA4LjI3djcuNDZMOC4yNyAyMWg3LjQ2TDIxIDE1LjczVjguMjdMMTUuNzMgM3pNMTIgMTcuM2MtLjcyIDAtMS4zLS41OC0xLjMtMS4zIDAtLjcyLjU4LTEuMyAxLjMtMS4zLjcyIDAgMS4zLjU4IDEuMyAxLjMgMCAuNzItLjU4IDEuMy0xLjMgMS4zem0xLTQuM2gtMlY3aDJ2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2F2ZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDEydjdINXYtN0gzdjdjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtN2gtMnptLTYgLjY3IDIuNTktMi41OEwxNyAxMS41bC01IDUtNS01IDEuNDEtMS40MUwxMSAxMi42N1YzaDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNhdmVBcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDEyLjRWN2wtNC00SDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDcuNGw4LjYtOC42ek0xNSAxNWMwIDEuNjYtMS4zNCAzLTMgM3MtMy0xLjM0LTMtMyAxLjM0LTMgMy0zIDMgMS4zNCAzIDN6TTYgNmg5djRINlY2em0xMy45OSAxMC4yNSAxLjc3IDEuNzdMMTYuNzcgMjNIMTV2LTEuNzdsNC45OS00Ljk4em0zLjI2LjI2LS44NS44NS0xLjc3LTEuNzcuODUtLjg1Yy4yLS4yLjUxLS4yLjcxIDBsMS4wNiAxLjA2Yy4yLjIuMi41MiAwIC43MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2F2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWN2wtNC00em0tNSAxNmMtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtMyAzIDEuMzQgMyAzLTEuMzQgMy0zIDN6bTMtMTBINVY1aDEwdjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNlbGVjdEFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNWgyVjNjLTEuMSAwLTIgLjktMiAyem0wIDhoMnYtMkgzdjJ6bTQgOGgydi0ySDd2MnpNMyA5aDJWN0gzdjJ6bTEwLTZoLTJ2MmgyVjN6bTYgMHYyaDJjMC0xLjEtLjktMi0yLTJ6TTUgMjF2LTJIM2MwIDEuMS45IDIgMiAyem0tMi00aDJ2LTJIM3Yyek05IDNIN3YyaDJWM3ptMiAxOGgydi0yaC0ydjJ6bTgtOGgydi0yaC0ydjJ6bTAgOGMxLjEgMCAyLS45IDItMmgtMnYyem0wLTEyaDJWN2gtMnYyem0wIDhoMnYtMmgtMnYyem0tNCA0aDJ2LTJoLTJ2MnptMC0xNmgyVjNoLTJ2MnpNNyAxN2gxMFY3SDd2MTB6bTItOGg2djZIOVY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi4wMSAyMSAyMyAxMiAyLjAxIDMgMiAxMGwxNSAyLTE1IDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNoaWVsZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEgMyA1djZjMCA1LjU1IDMuODQgMTAuNzQgOSAxMiA1LjE2LTEuMjYgOS02LjQ1IDktMTJWNWwtOS00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxOGg2di0ySDN2MnpNMyA2djJoMThWNkgzem0wIDdoMTJ2LTJIM3YyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcXVhcmVGb290IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcuNjYgMTcuNjYtMS4wNiAxLjA2LS43MS0uNzEgMS4wNi0xLjA2LTEuOTQtMS45NC0xLjA2IDEuMDYtLjcxLS43MSAxLjA2LTEuMDYtMS45NC0xLjk0LTEuMDYgMS4wNi0uNzEtLjcxIDEuMDYtMS4wNkw5LjcgOS43bC0xLjA2IDEuMDYtLjcxLS43MSAxLjA2LTEuMDYtMS45NC0xLjk0LTEuMDYgMS4wNi0uNzEtLjcxIDEuMDYtMS4wNkw0IDR2MTRjMCAxLjEuOSAyIDIgMmgxNGwtMi4zNC0yLjM0ek03IDE3di01Ljc2TDEyLjc2IDE3SDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN0YWNrZWRCYXJDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgOWg0djExSDR6TTQgNGg0djRINHpNMTAgN2g0djRoLTR6TTE2IDEwaDR2NGgtNHpNMTYgMTVoNHY1aC00ek0xMCAxMmg0djhoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN0cmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMjBcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjRcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMjBcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMDUgOC41OSA2LjAzIDQuNTVoLS4wMWwtLjMxLS4zMi0xLjQyIDEuNDEgNC4wMiA0LjA1LjAxLS4wMS4zMS4zMnptMy44OTMuMDI3IDQuNDA1LTQuMzkyTDE5Ljc2IDUuNjRsLTQuNDA1IDQuMzkzek0xMC4wMSAxNS4zNmwtMS40Mi0xLjQxLTQuMDMgNC4wMS0uMzIuMzMgMS40MSAxLjQxIDQuMDMtNC4wMnptOS43NSAyLjk0LTMuOTktNC4wMS0uMzYtLjM1TDE0IDE1LjM1bDMuOTkgNC4wMS4zNS4zNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjRcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxMFY4aC00VjRoLTJ2NGgtNFY0SDh2NEg0djJoNHY0SDR2Mmg0djRoMnYtNGg0djRoMnYtNGg0di0yaC00di00aDR6bS02IDRoLTR2LTRoNHY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUZXh0Rm9ybWF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxN3YyaDE0di0ySDV6bTQuNS00LjJoNWwuOSAyLjJoMi4xTDEyLjc1IDRoLTEuNUw2LjUgMTVoMi4xbC45LTIuMnpNMTIgNS45OCAxMy44NyAxMWgtMy43NEwxMiA1Ljk4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRVbmFyY2hpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMC41NSA1LjIyLTEuMzktMS42OEExLjUxIDEuNTEgMCAwIDAgMTggM0g2Yy0uNDcgMC0uODguMjEtMS4xNS41NUwzLjQ2IDUuMjJDMy4xNyA1LjU3IDMgNi4wMSAzIDYuNVYxOWEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjYuNWMwLS40OS0uMTctLjkzLS40NS0xLjI4ek0xMiA5LjVsNS41IDUuNUgxNHYyaC00di0ySDYuNUwxMiA5LjV6TTUuMTIgNWwuODItMWgxMmwuOTMgMUg1LjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRVbmRvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFVwY29taW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuMTYgNy4yNi0xLjQxLTEuNDEtMy41NiAzLjU1IDEuNDEgMS40MXMzLjQ1LTMuNTIgMy41Ni0zLjU1ek0xMSAzaDJ2NWgtMnpNNi40IDEwLjgxIDcuODEgOS40IDQuMjYgNS44NCAyLjg0IDcuMjZjLjExLjAzIDMuNTYgMy41NSAzLjU2IDMuNTV6TTIwIDEyaC01YzAgMS42Ni0xLjM0IDMtMyAzcy0zLTEuMzQtMy0zSDRjLTEuMSAwLTIgLjktMiAydjVjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMnYtNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2F2ZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDE2Ljk5Yy0xLjM1IDAtMi4yLjQyLTIuOTUuOC0uNjUuMzMtMS4xOC42LTIuMDUuNi0uOSAwLTEuNC0uMjUtMi4wNS0uNi0uNzUtLjM4LTEuNTctLjgtMi45NS0uOHMtMi4yLjQyLTIuOTUuOGMtLjY1LjMzLTEuMTcuNi0yLjA1LjZ2MS45NWMxLjM1IDAgMi4yLS40MiAyLjk1LS44LjY1LS4zMyAxLjE3LS42IDIuMDUtLjZzMS40LjI1IDIuMDUuNmMuNzUuMzggMS41Ny44IDIuOTUuOHMyLjItLjQyIDIuOTUtLjhjLjY1LS4zMyAxLjE4LS42IDIuMDUtLjYuOSAwIDEuNC4yNSAyLjA1LjYuNzUuMzggMS41OC44IDIuOTUuOHYtMS45NWMtLjkgMC0xLjQtLjI1LTIuMDUtLjYtLjc1LS4zOC0xLjYtLjgtMi45NS0uOHptMC00LjQ1Yy0xLjM1IDAtMi4yLjQzLTIuOTUuOC0uNjUuMzItMS4xOC42LTIuMDUuNi0uOSAwLTEuNC0uMjUtMi4wNS0uNi0uNzUtLjM4LTEuNTctLjgtMi45NS0uOHMtMi4yLjQzLTIuOTUuOGMtLjY1LjMyLTEuMTcuNi0yLjA1LjZ2MS45NWMxLjM1IDAgMi4yLS40MyAyLjk1LS44LjY1LS4zNSAxLjE1LS42IDIuMDUtLjZzMS40LjI1IDIuMDUuNmMuNzUuMzggMS41Ny44IDIuOTUuOHMyLjItLjQzIDIuOTUtLjhjLjY1LS4zNSAxLjE1LS42IDIuMDUtLjZzMS40LjI1IDIuMDUuNmMuNzUuMzggMS41OC44IDIuOTUuOHYtMS45NWMtLjkgMC0xLjQtLjI1LTIuMDUtLjYtLjc1LS4zOC0xLjYtLjgtMi45NS0uOHptMi45NS04LjA4Yy0uNzUtLjM4LTEuNTgtLjgtMi45NS0uOHMtMi4yLjQyLTIuOTUuOGMtLjY1LjMyLTEuMTguNi0yLjA1LjYtLjkgMC0xLjQtLjI1LTIuMDUtLjYtLjc1LS4zNy0xLjU3LS44LTIuOTUtLjhzLTIuMi40Mi0yLjk1LjhjLS42NS4zMy0xLjE3LjYtMi4wNS42djEuOTNjMS4zNSAwIDIuMi0uNDMgMi45NS0uOC42NS0uMzMgMS4xNy0uNiAyLjA1LS42czEuNC4yNSAyLjA1LjZjLjc1LjM4IDEuNTcuOCAyLjk1LjhzMi4yLS40MyAyLjk1LS44Yy42NS0uMzIgMS4xOC0uNiAyLjA1LS42LjkgMCAxLjQuMjUgMi4wNS42Ljc1LjM4IDEuNTguOCAyLjk1LjhWNS4wNGMtLjkgMC0xLjQtLjI1LTIuMDUtLjU4ek0xNyA4LjA5Yy0xLjM1IDAtMi4yLjQzLTIuOTUuOC0uNjUuMzUtMS4xNS42LTIuMDUuNnMtMS40LS4yNS0yLjA1LS42Yy0uNzUtLjM4LTEuNTctLjgtMi45NS0uOHMtMi4yLjQzLTIuOTUuOGMtLjY1LjM1LTEuMTUuNi0yLjA1LjZ2MS45NWMxLjM1IDAgMi4yLS40MyAyLjk1LS44LjY1LS4zMiAxLjE4LS42IDIuMDUtLjZzMS40LjI1IDIuMDUuNmMuNzUuMzggMS41Ny44IDIuOTUuOHMyLjItLjQzIDIuOTUtLjhjLjY1LS4zMiAxLjE4LS42IDIuMDUtLjYuOSAwIDEuNC4yNSAyLjA1LjYuNzUuMzggMS41OC44IDIuOTUuOFY5LjQ5Yy0uOSAwLTEuNC0uMjUtMi4wNS0uNi0uNzUtLjM4LTEuNi0uOC0yLjk1LS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXZWJTdG9yaWVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNGMxLjEgMCAyIC45IDIgMnYxMmMwIDEuMS0uOSAyLTIgMlY0ek0yIDIwYzAgMS4xLjkgMiAyIDJoOWMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjE2em0xOS0yYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOWMwLS44My0uNjctMS41LTEuNS0xLjV2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdlZWtlbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMGMtMS4xIDAtMiAuOS0yIDJ2M0g1di0zYTIgMiAwIDEgMC00IDB2NWMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0ydi01YzAtMS4xLS45LTItMi0yem0tMy01SDZjLTEuMSAwLTIgLjktMiAydjIuMTVjMS4xNi40MSAyIDEuNTIgMiAyLjgxVjE0aDEydi0yLjAzYzAtMS4zLjg0LTIuNCAyLTIuODFWN2MwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2hlcmVUb1ZvdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJjMy44NiAwIDcgMy4xNCA3IDcgMCA1LjI1LTcgMTMtNyAxM1M1IDE0LjI1IDUgOWMwLTMuODYgMy4xNC03IDctN3ptLTEuNTMgMTJMMTcgNy40MSAxNS42IDZsLTUuMTMgNS4xOEw4LjQgOS4wOSA3IDEwLjVsMy40NyAzLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDF4TW9iaWxlZGF0YSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA3aDR2MTBINlY5SDRWN3ptMTEuODMgNC43MkwxOC42NiA3aC0yLjMzbC0xLjY2IDIuNzdMMTMgN2gtMi4zM2wyLjgzIDQuNzJMMTAuMzMgMTdoMi4zM2wyLTMuMzQgMiAzLjM0SDE5bC0zLjE3LTUuMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDMwRnBzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDV2M2g2djIuNUgzdjNoNVYxNkgydjNoNmMxLjY2IDAgMy0xLjM0IDMtM3YtMS45QTIuMSAyLjEgMCAwIDAgOC45IDEyIDIuMSAyLjEgMCAwIDAgMTEgOS45VjhjMC0xLjY2LTEuMzQtMy0zLTNIMnptMTcgM3Y4aC00VjhoNG0wLTNoLTRjLTEuNjYgMC0zIDEuMzQtMyAzdjhjMCAxLjY2IDEuMzQgMyAzIDNoNGMxLjY2IDAgMy0xLjM0IDMtM1Y4YzAtMS42Ni0xLjM0LTMtMy0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQzZ01vYmlsZWRhdGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgN3YyaDV2Mkg0djJoNHYySDN2Mmg1YzEuMSAwIDItLjkgMi0ydi0xLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41LjgzIDAgMS41LS42NyAxLjUtMS41VjljMC0xLjEtLjktMi0yLTJIM3ptMTggNHY0YzAgMS4xLS45IDItMiAyaC01Yy0xLjEgMC0yLS45LTItMlY5YzAtMS4xLjktMiAyLTJoNWMxLjEgMCAyIC45IDIgMmgtN3Y2aDV2LTJoLTIuNXYtMkgyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kNGdNb2JpbGVkYXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDdIN3Y1SDVWN0gzdjdoNHYzaDJ2LTNoMnYtMkg5Vjd6bTggNHYyaDJ2MmgtNVY5aDdjMC0xLjEtLjktMi0yLTJoLTVjLTEuMSAwLTIgLjktMiAydjZjMCAxLjEuOSAyIDIgMmg1YzEuMSAwIDItLjkgMi0ydi00aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQ0Z1BsdXNNb2JpbGVkYXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxMXYyaDJ2MmgtNFY5aDZjMC0xLjEtLjktMi0yLTJoLTRjLTEuMSAwLTIgLjktMiAydjZjMCAxLjEuOSAyIDIgMmg0YzEuMSAwIDItLjkgMi0ydi00aC00em0xMSAwaC0yVjloLTJ2MmgtMnYyaDJ2Mmgydi0yaDJ2LTJ6TTcgN0g1djVIM1Y3SDF2N2g0djNoMnYtM2gxdi0ySDdWN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kNjBGcHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDh2OGgtNFY4aDRtMC0zaC00Yy0xLjY2IDAtMyAxLjM0LTMgM3Y4YzAgMS42NiAxLjM0IDMgMyAzaDRjMS42NiAwIDMtMS4zNCAzLTNWOGMwLTEuNjYtMS4zNC0zLTMtM3ptLTkgM1Y1SDVDMy4zNCA1IDIgNi4zNCAyIDh2OGMwIDEuNjYgMS4zNCAzIDMgM2gzYzEuNjYgMCAzLTEuMzQgMy0zdi0zYzAtMS42Ni0xLjM0LTMtMy0zSDVWOGg1em0tMiA1djNINXYtM2gzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBY2Nlc3NBbGFybSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyIDUuNzItNC42LTMuODYtMS4yOSAxLjUzIDQuNiAzLjg2TDIyIDUuNzJ6TTcuODggMy4zOSA2LjYgMS44NiAyIDUuNzFsMS4yOSAxLjUzIDQuNTktMy44NXpNMTIuNSA4SDExdjZsNC43NSAyLjg1Ljc1LTEuMjMtNC0yLjM3Vjh6TTEyIDRjLTQuOTcgMC05IDQuMDMtOSA5czQuMDIgOSA5IDlhOSA5IDAgMCAwIDAtMTh6bTAgMTZjLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBY2Nlc3NBbGFybXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTS02MTgtNTY4SDc4MnYzNjAwSC02MTh6TTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMiA1LjctNC42LTMuOS0xLjMgMS41IDQuNiAzLjlMMjIgNS43ek03LjkgMy40IDYuNiAxLjkgMiA1LjdsMS4zIDEuNSA0LjYtMy44ek0xMi41IDhIMTF2Nmw0LjcgMi45LjgtMS4yLTQtMi40Vjh6TTEyIDRjLTUgMC05IDQtOSA5czQgOSA5IDkgOS00IDktOS00LTktOS05em0wIDE2Yy0zLjkgMC03LTMuMS03LTdzMy4xLTcgNy03IDcgMy4xIDcgNy0zLjEgNy03IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFjY2Vzc1RpbWVGaWxsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6bTMuMyAxNC43MUwxMSAxMi40MVY3aDJ2NC41OWwzLjcxIDMuNzEtMS40MiAxLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBY2Nlc3NUaW1lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi41IDdIMTF2Nmw1LjI1IDMuMTUuNzUtMS4yMy00LjUtMi42N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRVbml0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDFIN2MtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE4SDdWNWgxMHYxNHpNOCA2aDh2Mkg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZGRBbGFybSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuODggMy4zOSA2LjYgMS44NiAyIDUuNzFsMS4yOSAxLjUzIDQuNTktMy44NXpNMjIgNS43MmwtNC42LTMuODYtMS4yOSAxLjUzIDQuNiAzLjg2TDIyIDUuNzJ6TTEyIDRjLTQuOTcgMC05IDQuMDMtOSA5czQuMDIgOSA5IDlhOSA5IDAgMCAwIDAtMTh6bTAgMTZjLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3em0xLTExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTNWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRkVG9Ib21lU2NyZWVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxLjAxIDggMWMtMS4xIDAtMiAuOS0yIDJ2M2gyVjVoMTB2MTRIOHYtMUg2djNjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xMCAxNWgyVjhINXYyaDMuNTlMMyAxNS41OSA0LjQxIDE3IDEwIDExLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBaXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgMTdjMCAxLjY1LTEuMzUgMy0zIDNzLTMtMS4zNS0zLTNoMmMwIC41NS40NSAxIDEgMXMxLS40NSAxLTEtLjQ1LTEtMS0xSDJ2LTJoOS41YzEuNjUgMCAzIDEuMzUgMyAzek0xOSA2LjVDMTkgNC41NyAxNy40MyAzIDE1LjUgM1MxMiA0LjU3IDEyIDYuNWgyYzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41UzE2LjMzIDggMTUuNSA4SDJ2MmgxMy41YzEuOTMgMCAzLjUtMS41NyAzLjUtMy41em0tLjUgNC41SDJ2MmgxNi41Yy44MyAwIDEuNS42NyAxLjUgMS41cy0uNjcgMS41LTEuNSAxLjV2MmMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVMyMC40MyAxMSAxOC41IDExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBaXJwbGFuZVRpY2tldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuMTkgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAydjRjMS4xIDAgMS45OS45IDEuOTkgMnMtLjg5IDItMiAydjRjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS44MS0yLTEuODEtMnptLTIuNDYgOS4zLTguODYgMi4zNi0xLjY2LTIuODguOTMtLjI1IDEuMjYuOTkgMi4zOS0uNjQtMi40LTQuMTYgMS40LS4zOCA0LjAxIDMuNzQgMi40NC0uNjVhLjk2Ny45NjcgMCAwIDEgMS4xOC42OC45ODguOTg4IDAgMCAxLS42OSAxLjE5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBaXJwbGFuZW1vZGVBY3RpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDE2di0ybC04LjUtNVYzLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41cy0xLjUuNjctMS41IDEuNVY5TDIgMTR2Mmw4LjUtMi41VjE5TDggMjAuNVYyMmw0LTEgNCAxdi0xLjVMMTMuNSAxOXYtNS41TDIyIDE2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBaXJwbGFuZW1vZGVJbmFjdGl2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNSA3LjY3VjMuNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNVY5bDguNSA1djJsLTQuNDktMS4zMi03LjAxLTcuMDF6bTkuMjggMTQuOTQgMS40MS0xLjQxLTcuNjktNy43LTMuOTQtMy45NC02Ljc1LTYuNzUtMS40MiAxLjQxIDYuMzggNi4zOEwyIDE0djJsOC41LTIuNVYxOUw4IDIwLjVWMjJsNC0xIDQgMXYtMS41TDEzLjUgMTl2LTIuNjdsNi4yOCA2LjI4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBb2QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEuMDEgNyAxYy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMS45OS0yLTEuOTl6TTE3IDE4SDdWNmgxMHYxMnptLTktOGg4djEuNUg4VjEwem0xIDNoNnYxLjVIOVYxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmF0dGVyeTBCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA1djE2YzAgLjU1LS40NSAxLTEgMUg4Yy0uNTUgMC0xLS40NS0xLTFWNWMwLS41NS40NS0xIDEtMWgyVjJoNHYyaDJjLjU1IDAgMSAuNDUgMSAxem0tMiAxSDl2MTRoNlY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYXR0ZXJ5MUJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDV2MTZjMCAuNTUtLjQ1IDEtMSAxSDhjLS41NSAwLTEtLjQ1LTEtMVY1YzAtLjU1LjQ1LTEgMS0xaDJWMmg0djJoMmMuNTUgMCAxIC40NSAxIDF6bS0yIDFIOXYxMmg2VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdHRlcnkyQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNXYxNmMwIC41NS0uNDUgMS0xIDFIOGMtLjU1IDAtMS0uNDUtMS0xVjVjMC0uNTUuNDUtMSAxLTFoMlYyaDR2MmgyYy41NSAwIDEgLjQ1IDEgMXptLTIgMUg5djEwaDZWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmF0dGVyeTNCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA1djE2YzAgLjU1LS40NSAxLTEgMUg4Yy0uNTUgMC0xLS40NS0xLTFWNWMwLS41NS40NS0xIDEtMWgyVjJoNHYyaDJjLjU1IDAgMSAuNDUgMSAxem0tMiAxSDl2OGg2VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdHRlcnk0QmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNXYxNmMwIC41NS0uNDUgMS0xIDFIOGMtLjU1IDAtMS0uNDUtMS0xVjVjMC0uNTUuNDUtMSAxLTFoMlYyaDR2MmgyYy41NSAwIDEgLjQ1IDEgMXptLTIgMUg5djZoNlY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYXR0ZXJ5NUJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDV2MTZjMCAuNTUtLjQ1IDEtMSAxSDhjLS41NSAwLTEtLjQ1LTEtMVY1YzAtLjU1LjQ1LTEgMS0xaDJWMmg0djJoMmMuNTUgMCAxIC40NSAxIDF6bS0yIDFIOXY0aDZWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmF0dGVyeTZCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA1djE2YzAgLjU1LS40NSAxLTEgMUg4Yy0uNTUgMC0xLS40NS0xLTFWNWMwLS41NS40NS0xIDEtMWgyVjJoNHYyaDJjLjU1IDAgMSAuNDUgMSAxem0tMiAxSDl2Mmg2VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdHRlcnlBbGVydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjY3IDRIMTRWMmgtNHYySDguMzNDNy42IDQgNyA0LjYgNyA1LjMzdjE1LjMzQzcgMjEuNCA3LjYgMjIgOC4zMyAyMmg3LjMzYy43NCAwIDEuMzQtLjYgMS4zNC0xLjMzVjUuMzNDMTcgNC42IDE2LjQgNCAxNS42NyA0ek0xMyAxOGgtMnYtMmgydjJ6bTAtNGgtMlY5aDJ2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmF0dGVyeUNoYXJnaW5nRnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjY3IDRIMTRWMmgtNHYySDguMzNDNy42IDQgNyA0LjYgNyA1LjMzdjE1LjMzQzcgMjEuNCA3LjYgMjIgOC4zMyAyMmg3LjMzYy43NCAwIDEuMzQtLjYgMS4zNC0xLjMzVjUuMzNDMTcgNC42IDE2LjQgNCAxNS42NyA0ek0xMSAyMHYtNS41SDlMMTMgN3Y1LjVoMkwxMSAyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmF0dGVyeUZ1bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS42NyA0SDE0VjJoLTR2Mkg4LjMzQzcuNiA0IDcgNC42IDcgNS4zM3YxNS4zM0M3IDIxLjQgNy42IDIyIDguMzMgMjJoNy4zM2MuNzQgMCAxLjM0LS42IDEuMzQtMS4zM1Y1LjMzQzE3IDQuNiAxNi40IDQgMTUuNjcgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmF0dGVyeVNhdmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA0aC0yVjJoLTR2Mkg4Yy0uNTUgMC0xIC40NS0xIDF2MTZjMCAuNTUuNDUgMSAxIDFoOGMuNTUgMCAxLS40NSAxLTFWNWMwLS41NS0uNDUtMS0xLTF6bS0xIDEwaC0ydjJoLTJ2LTJIOXYtMmgydi0yaDJ2MmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdHRlcnlTdGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS42NyA0SDE0VjJoLTR2Mkg4LjMzQzcuNiA0IDcgNC42IDcgNS4zM3YxNS4zM0M3IDIxLjQgNy42IDIyIDguMzMgMjJoNy4zM2MuNzQgMCAxLjM0LS42IDEuMzQtMS4zM1Y1LjMzQzE3IDQuNiAxNi40IDQgMTUuNjcgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmF0dGVyeVVua25vd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS42NyA0SDE0VjJoLTR2Mkg4LjMzQzcuNiA0IDcgNC42IDcgNS4zM3YxNS4zM0M3IDIxLjQgNy42IDIyIDguMzMgMjJoNy4zM2MuNzQgMCAxLjM0LS42IDEuMzQtMS4zM1Y1LjMzQzE3IDQuNiAxNi40IDQgMTUuNjcgNHptLTIuNzIgMTMuOTVoLTEuOXYtMS45aDEuOXYxLjl6bTEuMzUtNS4yNnMtLjM4LjQyLS42Ny43MWMtLjQ4LjQ4LS44MyAxLjE1LS44MyAxLjZoLTEuNmMwLS44My40Ni0xLjUyLjkzLTJsLjkzLS45NEExLjQ5OCAxLjQ5OCAwIDAgMCAxMiA5LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41SDljMC0xLjY2IDEuMzQtMyAzLTNzMyAxLjM0IDMgM2MwIC42Ni0uMjcgMS4yNi0uNyAxLjY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCbG9vZHR5cGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJjLTUuMzMgNC41NS04IDguNDgtOCAxMS44IDAgNC45OCAzLjggOC4yIDggOC4yczgtMy4yMiA4LTguMmMwLTMuMzItMi42Ny03LjI1LTgtMTEuOHptMyAxNkg5di0yaDZ2MnptMC01aC0ydjJoLTJ2LTJIOXYtMmgyVjloMnYyaDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmx1ZXRvb3RoQ29ubmVjdGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNyAxMi0yLTItMiAyIDIgMiAyLTJ6bTEwLjcxLTQuMjlMMTIgMmgtMXY3LjU5TDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDExIDE0LjQxVjIyaDFsNS43MS01LjcxLTQuMy00LjI5IDQuMy00LjI5ek0xMyA1LjgzbDEuODggMS44OEwxMyA5LjU5VjUuODN6bTEuODggMTAuNDZMMTMgMTguMTd2LTMuNzZsMS44OCAxLjg4ek0xOSAxMGwtMiAyIDIgMiAyLTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCbHVldG9vdGhEaXNhYmxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEzIDUuODMgMS44OCAxLjg4LTEuNiAxLjYgMS40MSAxLjQxIDMuMDItMy4wMkwxMiAyaC0xdjUuMDNsMiAydi0zLjJ6TTUuNDEgNCA0IDUuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDExIDE0LjQxVjIyaDFsNC4yOS00LjI5IDIuMyAyLjI5TDIwIDE4LjU5IDUuNDEgNHpNMTMgMTguMTd2LTMuNzZsMS44OCAxLjg4TDEzIDE4LjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCbHVldG9vdGhEcml2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTBINC44MWwxLjA0LTNIMTVWNUg1LjVjLS42NiAwLTEuMjEuNDItMS40MiAxLjAxTDIgMTJ2OGMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWgxMnYxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi04aC0zYy0xLjEgMC0yLS45LTItMnptLTguNSA2Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyAxMyA2LjUgMTNzMS41LjY3IDEuNSAxLjVTNy4zMyAxNiA2LjUgMTZ6bTkgMGMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDMuODUgMTkuMTUgMWgtLjV2My43OWwtMi4zLTIuMjktLjcuN0wxOC40NCA2bC0yLjc5IDIuNzkuNy43MSAyLjMtMi4zVjExaC41TDIyIDguMTQgMTkuODUgNiAyMiAzLjg1em0tMi4zNS0uOTQuOTQuOTQtLjk0Ljk0VjIuOTF6bS45NCA1LjIzLS45NC45NFY3LjJsLjk0Ljk0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCbHVldG9vdGhTZWFyY2hpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNC4yNCAxMi4wMSAyLjMyIDIuMzJjLjI4LS43Mi40NC0xLjUxLjQ0LTIuMzMgMC0uODItLjE2LTEuNTktLjQzLTIuMzFsLTIuMzMgMi4zMnptNS4yOS01LjMtMS4yNiAxLjI2Yy42MyAxLjIxLjk4IDIuNTcuOTggNC4wMnMtLjM2IDIuODItLjk4IDQuMDJsMS4yIDEuMmE5LjkzNiA5LjkzNiAwIDAgMCAxLjU0LTUuMzFjLS4wMS0xLjg5LS41NS0zLjY3LTEuNDgtNS4xOXptLTMuODIgMUwxMCAySDl2Ny41OUw0LjQxIDUgMyA2LjQxIDguNTkgMTIgMyAxNy41OSA0LjQxIDE5IDkgMTQuNDFWMjJoMWw1LjcxLTUuNzEtNC4zLTQuMjkgNC4zLTQuMjl6TTExIDUuODNsMS44OCAxLjg4TDExIDkuNTlWNS44M3ptMS44OCAxMC40NkwxMSAxOC4xN3YtMy43NmwxLjg4IDEuODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJsdWV0b290aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjcxIDcuNzEgMTIgMmgtMXY3LjU5TDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDExIDE0LjQxVjIyaDFsNS43MS01LjcxLTQuMy00LjI5IDQuMy00LjI5ek0xMyA1LjgzbDEuODggMS44OEwxMyA5LjU5VjUuODN6bTEuODggMTAuNDZMMTMgMTguMTd2LTMuNzZsMS44OCAxLjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCcmlnaHRuZXNzQXV0byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjg1IDEyLjY1aDIuM0wxMiA5bC0xLjE1IDMuNjV6TTIwIDguNjlWNGgtNC42OUwxMiAuNjkgOC42OSA0SDR2NC42OUwuNjkgMTIgNCAxNS4zMVYyMGg0LjY5TDEyIDIzLjMxIDE1LjMxIDIwSDIwdi00LjY5TDIzLjMxIDEyIDIwIDguNjl6TTE0LjMgMTZsLS43LTJoLTMuMmwtLjcgMkg3LjhMMTEgN2gybDMuMiA5aC0xLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJyaWdodG5lc3NIaWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOC42OVY0aC00LjY5TDEyIC42OSA4LjY5IDRINHY0LjY5TC42OSAxMiA0IDE1LjMxVjIwaDQuNjlMMTIgMjMuMzEgMTUuMzEgMjBIMjB2LTQuNjlMMjMuMzEgMTIgMjAgOC42OXpNMTIgMThjLTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTYgNiAyLjY5IDYgNi0yLjY5IDYtNiA2em0wLTEwYy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQnJpZ2h0bmVzc0xvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE1LjMxIDIzLjMxIDEyIDIwIDguNjlWNGgtNC42OUwxMiAuNjkgOC42OSA0SDR2NC42OUwuNjkgMTIgNCAxNS4zMVYyMGg0LjY5TDEyIDIzLjMxIDE1LjMxIDIwSDIwdi00LjY5ek0xMiAxOGMtMy4zMSAwLTYtMi42OS02LTZzMi42OS02IDYtNiA2IDIuNjkgNiA2LTIuNjkgNi02IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJyaWdodG5lc3NNZWRpdW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxNS4zMSAyMy4zMSAxMiAyMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OXpNMTIgMThWNmMzLjMxIDAgNiAyLjY5IDYgNnMtMi42OSA2LTYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDVWNGMwLS41NS0uNDUtMS0xLTFoLTJjLS41NSAwLTEgLjQ1LTEgMXYxaC0xdjRjMCAuNTUuNDUgMSAxIDFoMXY3YzAgMS4xLS45IDItMiAycy0yLS45LTItMlY3YzAtMi4yMS0xLjc5LTQtNC00UzUgNC43OSA1IDd2N0g0Yy0uNTUgMC0xIC40NS0xIDF2NGgxdjFjMCAuNTUuNDUgMSAxIDFoMmMuNTUgMCAxLS40NSAxLTF2LTFoMXYtNGMwLS41NS0uNDUtMS0xLTFIN1Y3YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ2MTBjMCAyLjIxIDEuNzkgNCA0IDRzNC0xLjc5IDQtNHYtN2gxYy41NSAwIDEtLjQ1IDEtMVY1aC0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYW1lcmFzd2l0Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDdoLTFsLTEtMWgtNEw5IDdIOGMtMS4xIDAtMiAuOS0yIDJ2NmMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWOWMwLTEuMS0uOS0yLTItMnptLTQgN2MtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTguNTcuNTEgNC40OCA0LjQ4VjIuMDRjNC43Mi40NyA4LjQ4IDQuMjMgOC45NSA4Ljk1aDJDMjMuMzQgMy4wMiAxNS40OS0xLjU5IDguNTcuNTF6TTEwLjk1IDIxLjk2Yy00LjcyLS40Ny04LjQ4LTQuMjMtOC45NS04Ljk1SDBjLjY2IDcuOTcgOC41MSAxMi41OCAxNS40MyAxMC40OGwtNC40OC00LjQ4djIuOTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENyZWRpdFNjb3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE4YzAgMS4xMS44OSAyIDIgMmg1di0ySDR2LTZoMThWNmMwLTEuMTEtLjg5LTItMi0yem0wIDRINFY2aDE2djJ6bS01LjA3IDExLjE3LTIuODMtMi44My0xLjQxIDEuNDFMMTQuOTMgMjIgMjIgMTQuOTNsLTEuNDEtMS40MS01LjY2IDUuNjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERhcmtNb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgM2E5IDkgMCAxIDAgOSA5YzAtLjQ2LS4wNC0uOTItLjEtMS4zNmE1LjM4OSA1LjM4OSAwIDAgMS00LjQgMi4yNiA1LjQwMyA1LjQwMyAwIDAgMS0zLjE0LTkuOGMtLjQ0LS4wNi0uOS0uMS0xLjM2LS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREYXRhU2F2ZXJPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDIuMDV2My4wM2MzLjM5LjQ5IDYgMy4zOSA2IDYuOTIgMCAuOS0uMTggMS43NS0uNDggMi41NGwyLjYgMS41M2MuNTYtMS4yNC44OC0yLjYyLjg4LTQuMDcgMC01LjE4LTMuOTUtOS40NS05LTkuOTV6TTEyIDE5Yy0zLjg3IDAtNy0zLjEzLTctNyAwLTMuNTMgMi42MS02LjQzIDYtNi45MlYyLjA1Yy01LjA2LjUtOSA0Ljc2LTkgOS45NSAwIDUuNTIgNC40NyAxMCA5Ljk5IDEwIDMuMzEgMCA2LjI0LTEuNjEgOC4wNi00LjA5bC0yLjYtMS41M0E2Ljk1IDYuOTUgMCAwIDEgMTIgMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERhdGFTYXZlck9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA4djNIOHYyaDN2M2gydi0zaDN2LTJoLTNWOGgtMnptMi01Ljk1djMuMDNjMy4zOS40OSA2IDMuMzkgNiA2LjkyIDAgLjktLjE4IDEuNzUtLjQ4IDIuNTRsMi42IDEuNTNjLjU2LTEuMjQuODgtMi42Mi44OC00LjA3IDAtNS4xOC0zLjk1LTkuNDUtOS05Ljk1ek0xMiAxOWMtMy44NyAwLTctMy4xMy03LTcgMC0zLjUzIDIuNjEtNi40MyA2LTYuOTJWMi4wNWMtNS4wNi41LTkgNC43Ni05IDkuOTUgMCA1LjUyIDQuNDcgMTAgOS45OSAxMCAzLjMxIDAgNi4yNC0xLjYxIDguMDYtNC4wOWwtMi42LTEuNTNBNi45NSA2Ljk1IDAgMCAxIDEyIDE5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREYXRhVXNhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAyLjA1djMuMDNjMy4zOS40OSA2IDMuMzkgNiA2LjkyIDAgLjktLjE4IDEuNzUtLjQ4IDIuNTRsMi42IDEuNTNjLjU2LTEuMjQuODgtMi42Mi44OC00LjA3IDAtNS4xOC0zLjk1LTkuNDUtOS05Ljk1ek0xMiAxOWMtMy44NyAwLTctMy4xMy03LTcgMC0zLjUzIDIuNjEtNi40MyA2LTYuOTJWMi4wNWMtNS4wNi41LTkgNC43Ni05IDkuOTUgMCA1LjUyIDQuNDcgMTAgOS45OSAxMCAzLjMxIDAgNi4yNC0xLjYxIDguMDYtNC4wOWwtMi42LTEuNTNBNi45NSA2Ljk1IDAgMCAxIDEyIDE5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREYXRhc2V0TGlua2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC4wOSAxN0g3di00aDMuNjljLjk1LS42MyAyLjA5LTEgMy4zMS0xaDZjLjM0IDAgLjY3LjA0IDEgLjA5VjVjMC0xLjEtLjktMi0yLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgzLjgxQzguMyAyMC4xMiA4IDE5LjA5IDggMThjMC0uMzQuMDQtLjY3LjA5LTF6TTEzIDdoNHY0aC00Vjd6TTcgN2g0djRIN1Y3elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxOGMwLTEuMS45LTIgMi0yaDJ2LTJoLTJjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDRoMnYtMmgtMmMtMS4xIDAtMi0uOS0yLTJ6TTIwIDE0aC0ydjJoMmMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDJoLTJ2MmgyYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxN2g2djJoLTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERhdGFzZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTggMTRIN3YtNGg0djR6bTAtNkg3VjdoNHY0em02IDZoLTR2LTRoNHY0em0wLTZoLTRWN2g0djR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERldmVsb3Blck1vZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDVoMTB2MmgyVjNjMC0xLjEtLjktMS45OS0yLTEuOTlMNyAxYy0xLjEgMC0yIC45LTIgMnY0aDJWNXptOC40MSAxMS41OUwyMCAxMmwtNC41OS00LjU5TDE0IDguODMgMTcuMTcgMTIgMTQgMTUuMTdsMS40MSAxLjQyek0xMCAxNS4xNyA2LjgzIDEyIDEwIDguODMgOC41OSA3LjQxIDQgMTJsNC41OSA0LjU5TDEwIDE1LjE3ek0xNyAxOUg3di0ySDV2NGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0ydi00aC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERldmljZVRoZXJtb3N0YXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxM1Y1YzAtMS42Ni0xLjM0LTMtMy0zUzkgMy4zNCA5IDV2OGMtMS4yMS45MS0yIDIuMzctMiA0IDAgMi43NiAyLjI0IDUgNSA1czUtMi4yNCA1LTVjMC0xLjYzLS43OS0zLjA5LTItNHptLTQtOGMwLS41NS40NS0xIDEtMXMxIC40NSAxIDFoLTF2MWgxdjJoLTF2MWgxdjJoLTJWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGV2aWNlc0ZvbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAzaC0zYzAtMS40My0xLjQ3LTIuNC0yLjc5LTEuODRsLTMgMS4yOUMxMC40OCAyLjc2IDEwIDMuNDkgMTAgNC4yOVYxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNmgtNS4zM2wxLjEyLS40OGMuNzMtLjMyIDEuMjEtMS4wNCAxLjIxLTEuODRWNWgzdjE0ek0yIDNoMnYySDJ6TTIgMTloMnYySDJ6TTIgMTVoMnYySDJ6TTIgMTFoMnYySDJ6TTIgN2gydjJIMnpNNiAzaDJ2Mkg2ek02IDE5aDJ2Mkg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREZXZpY2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2aDE4VjRINGMtMS4xIDAtMiAuOS0yIDJ2MTFIMHYzaDE0di0zSDRWNnptMTkgMmgtNmMtLjU1IDAtMSAuNDUtMSAxdjEwYzAgLjU1LjQ1IDEgMSAxaDZjLjU1IDAgMS0uNDUgMS0xVjljMC0uNTUtLjQ1LTEtMS0xem0tMSA5aC00di03aDR2N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGlzY291bnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi43OSAyMSAzIDExLjIxdjJjMCAuNTMuMjEgMS4wNC41OSAxLjQxbDcuNzkgNy43OWMuNzguNzggMi4wNS43OCAyLjgzIDBsNi4yMS02LjIxYy43OC0uNzguNzgtMi4wNSAwLTIuODNMMTIuNzkgMjF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjM4IDE3LjQxYy43OC43OCAyLjA1Ljc4IDIuODMgMGw2LjIxLTYuMjFjLjc4LS43OC43OC0yLjA1IDAtMi44M0wxMi42My41OEEyLjA0IDIuMDQgMCAwIDAgMTEuMjEgMEg1QzMuOSAwIDMgLjkgMyAydjYuMjFjMCAuNTMuMjEgMS4wNC41OSAxLjQxbDcuNzkgNy43OXpNNy4yNSAzYTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvTm90RGlzdHVyYk9uVG90YWxTaWxlbmNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptMC0xNGMtMy4zIDAtNiAyLjctNiA2czIuNyA2IDYgNiA2LTIuNyA2LTYtMi42LTYtNi02em0zIDdIOXYtMmg2djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZER2ciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg1djJoOHYtMmg1YzEuMSAwIDEuOTktLjkgMS45OS0yTDIzIDVjMC0xLjEtLjktMi0yLTJ6bTAgMTRIM1Y1aDE4djEyem0tMi05SDh2MmgxMVY4em0wIDRIOHYyaDExdi0yek03IDhINXYyaDJWOHptMCA0SDV2Mmgydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFTW9iaWxlZGF0YSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOVY3SDh2MTBoOHYtMmgtNnYtMmg2di0yaC02VjloNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRWRnZXNlbnNvckhpZ2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgN2gydjdIM1Y3em0tMyAzaDJ2N0gwdi03em0yMi0zaDJ2N2gtMlY3em0tMyAzaDJ2N2gtMnYtN3ptLTMtNy45OUw4IDJjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNiAxN0g4VjdoOHYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRWRnZXNlbnNvckxvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA3aDJ2N0gyVjd6bTE4IDNoMnY3aC0ydi03em0tNC03Ljk5TDggMmMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMS45OS0yLTEuOTl6TTE2IDE3SDhWN2g4djEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGbGFzaGxpZ2h0T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA1VjJINnYxLjE3TDcuODMgNXpNMTYgMTFsMi0zVjdIOS44M0wxNiAxMy4xN3pNMi44MSAyLjgxIDEuMzkgNC4yMiA4IDEwLjgzVjIyaDh2LTMuMTdsMy43OCAzLjc4IDEuNDEtMS40MUwyLjgxIDIuODF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZsYXNobGlnaHRPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAyaDEydjNINnpNNiA3djFsMiAzdjExaDhWMTFsMi0zVjdINnptNiA4LjVjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGbG91cmVzY2VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA5aDE0djZINXpNMTEgMmgydjNoLTJ6TTE3LjI4NiA2LjM5OWwxLjc5LTEuODAzIDEuNDIgMS40MS0xLjc5IDEuODAyek0xMSAxOWgydjNoLTJ6TTE3LjI5IDE3LjcxbDEuNzkgMS44IDEuNDItMS40Mi0xLjgtMS43OXpNMy40OTUgNi4wMWwxLjQwNy0xLjQwOEw2LjY5IDYuMzkxIDUuMjg0IDcuNzk4ek0zLjQ5MiAxOC4wNzZsMS44MDMtMS43OSAxLjQwOSAxLjQyLTEuODAzIDEuNzl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZsdW9yZXNjZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDloMTR2Nkg1ek0xMSAyaDJ2M2gtMnpNMTcuMjg2IDYuMzk5bDEuNzktMS44MDMgMS40MiAxLjQxLTEuNzkgMS44MDJ6TTExIDE5aDJ2M2gtMnpNMTcuMjkgMTcuNzFsMS43OSAxLjggMS40Mi0xLjQyLTEuOC0xLjc5ek0zLjQ5NSA2LjAxbDEuNDA3LTEuNDA4TDYuNjkgNi4zOTEgNS4yODQgNy43OTh6TTMuNDkyIDE4LjA3NmwxLjgwMy0xLjc5IDEuNDA5IDEuNDItMS44MDMgMS43OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm1kQmFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYy00LjIgMC04IDMuMjItOCA4LjIgMCAzLjMyIDIuNjcgNy4yNSA4IDExLjggNS4zMy00LjU1IDgtOC40OCA4LTExLjhDMjAgNS4yMiAxNi4yIDIgMTIgMnptMSAxM2gtMnYtMmgydjJ6bTAtNGgtMlY2aDJ2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm1kR29vZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmMtNC4yIDAtOCAzLjIyLTggOC4yIDAgMy4zMiAyLjY3IDcuMjUgOCAxMS44IDUuMzMtNC41NSA4LTguNDggOC0xMS44QzIwIDUuMjIgMTYuMiAyIDEyIDJ6bTAgMTBjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHTW9iaWxlZGF0YSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTF2MmgydjJIOVY5aDdjMC0xLjEtLjktMi0yLTJIOWMtMS4xIDAtMiAuOS0yIDJ2NmMwIDEuMS45IDIgMiAyaDVjMS4xIDAgMi0uOSAyLTJ2LTRoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdwcEJhZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMiA0IDV2Ni4wOWMwIDUuMDUgMy40MSA5Ljc2IDggMTAuOTEgNC41OS0xLjE1IDgtNS44NiA4LTEwLjkxVjVsLTgtM3ptMy41IDEyLjA5LTEuNDEgMS40MUwxMiAxMy40MiA5LjkxIDE1LjUgOC41IDE0LjA5IDEwLjU5IDEyIDguNSA5LjkxIDkuOTEgOC41IDEyIDEwLjU5bDIuMDktMi4wOSAxLjQxIDEuNDFMMTMuNDIgMTJsMi4wOCAyLjA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHcHBHb29kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyIDQgNXY2LjA5YzAgNS4wNSAzLjQxIDkuNzYgOCAxMC45MSA0LjU5LTEuMTUgOC01Ljg2IDgtMTAuOTFWNWwtOC0zem0tMS4wNiAxMy41NEw3LjQgMTJsMS40MS0xLjQxIDIuMTIgMi4xMiA0LjI0LTQuMjQgMS40MSAxLjQxLTUuNjQgNS42NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR3BwTWF5YmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIgNCA1djYuMDljMCA1LjA1IDMuNDEgOS43NiA4IDEwLjkxIDQuNTktMS4xNSA4LTUuODYgOC0xMC45MVY1bC04LTN6bTEgMTRoLTJ2LTJoMnYyem0wLTRoLTJWN2gydjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdwc0ZpeGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgOGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTguOTQgM0E4Ljk5NCA4Ljk5NCAwIDAgMCAxMyAzLjA2VjFoLTJ2Mi4wNkE4Ljk5NCA4Ljk5NCAwIDAgMCAzLjA2IDExSDF2MmgyLjA2QTguOTk0IDguOTk0IDAgMCAwIDExIDIwLjk0VjIzaDJ2LTIuMDZBOC45OTQgOC45OTQgMCAwIDAgMjAuOTQgMTNIMjN2LTJoLTIuMDZ6TTEyIDE5Yy0zLjg3IDAtNy0zLjEzLTctN3MzLjEzLTcgNy03IDcgMy4xMyA3IDctMy4xMyA3LTcgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR3BzTm90Rml4ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC45NCAxMUE4Ljk5NCA4Ljk5NCAwIDAgMCAxMyAzLjA2VjFoLTJ2Mi4wNkE4Ljk5NCA4Ljk5NCAwIDAgMCAzLjA2IDExSDF2MmgyLjA2QTguOTk0IDguOTk0IDAgMCAwIDExIDIwLjk0VjIzaDJ2LTIuMDZBOC45OTQgOC45OTQgMCAwIDAgMjAuOTQgMTNIMjN2LTJoLTIuMDZ6TTEyIDE5Yy0zLjg3IDAtNy0zLjEzLTctN3MzLjEzLTcgNy03IDcgMy4xMyA3IDctMy4xMyA3LTcgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR3BzT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuOTQgMTFBOC45OTQgOC45OTQgMCAwIDAgMTMgMy4wNlYxaC0ydjIuMDZjLTEuMTMuMTItMi4xOS40Ni0zLjE2Ljk3bDEuNSAxLjVBNi45OTUgNi45OTUgMCAwIDEgMTkgMTJjMCAuOTQtLjE5IDEuODQtLjUyIDIuNjVsMS41IDEuNWMuNS0uOTYuODQtMi4wMi45Ny0zLjE1SDIzdi0yaC0yLjA2ek0zIDQuMjdsMi4wNCAyLjA0QTguOTE0IDguOTE0IDAgMCAwIDMuMDYgMTFIMXYyaDIuMDZBOC45OTQgOC45OTQgMCAwIDAgMTEgMjAuOTRWMjNoMnYtMi4wNmMxLjc3LS4yIDMuMzgtLjkxIDQuNjktMS45OEwxOS43MyAyMSAyMSAxOS43MyA0LjI3IDMgMyA0LjI3em0xMy4yNyAxMy4yN2E2Ljk5NSA2Ljk5NSAwIDAgMS05LjgxLTkuODFsOS44MSA5LjgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHcmFwaGljRXEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE4aDJWNkg3djEyem00IDRoMlYyaC0ydjIwem0tOC04aDJ2LTRIM3Y0em0xMiA0aDJWNmgtMnYxMnptNC04djRoMnYtNGgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR3JpZDNYMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTBWOGgtNFY0aC0ydjRoLTRWNEg4djRINHYyaDR2NEg0djJoNHY0aDJ2LTRoNHY0aDJ2LTRoNHYtMmgtNHYtNGg0em0tNiA0aC00di00aDR2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR3JpZDRYNCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgN1Y1aC0zVjJoLTJ2M2gtNFYyaC0ydjNIN1YySDV2M0gydjJoM3Y0SDJ2MmgzdjRIMnYyaDN2M2gydi0zaDR2M2gydi0zaDR2M2gydi0zaDN2LTJoLTN2LTRoM3YtMmgtM1Y3aDN6TTcgN2g0djRIN1Y3em0wIDEwdi00aDR2NEg3em0xMCAwaC00di00aDR2NHptMC02aC00VjdoNHY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHcmlkR29sZGVucmF0aW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDExVjloLTdWMmgtMnY3aC0yVjJIOXY3SDJ2Mmg3djJIMnYyaDd2N2gydi03aDJ2N2gydi03aDd2LTJoLTd2LTJoN3ptLTkgMmgtMnYtMmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhNb2JpbGVkYXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxMUg5VjdIN3YxMGgydi00aDZ2NGgyVjdoLTJ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSFBsdXNNb2JpbGVkYXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMUg2VjdINHYxMGgydi00aDZ2NGgyVjdoLTJ2NHptMTAgMGgtMlY5aC0ydjJoLTJ2MmgydjJoMnYtMmgydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZHJBdXRvU2VsZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxNkg2LjV2NkgxMGMuOCAwIDEuNS0uNyAxLjUtMS41di0zYzAtLjgtLjctMS41LTEuNS0xLjV6bTAgNC41SDh2LTNoMnYzek0xNi41IDE2SDEzdjZoMS41di0yaDEuMWwuOSAySDE4bC0uOS0yLjFjLjUtLjMuOS0uOC45LTEuNHYtMWMwLS44LS43LTEuNS0xLjUtMS41em0wIDIuNWgtMnYtMWgydjF6TTMuNSAxOGgtMnYtMkgwdjZoMS41di0yLjVoMlYyMkg1di02SDMuNXpNMjIgMTguNXYtMmgtMS41djJoLTJWMjBoMnYySDIydi0yaDJ2LTEuNXpNMTEuOTcgNS4zbC0xLjAyIDIuODloMi4xTDEyLjAzIDUuM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM4LjY5IDIgNiA0LjY5IDYgOHMyLjY5IDYgNiA2IDYtMi42OSA2LTYtMi42OS02LTYtNnptMi4wNCA5LS42My0xLjc5aC0yLjgzTDkuOTYgMTFIOC43NGwyLjYzLTdoMS4yNWwyLjYzIDdoLTEuMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhkckF1dG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjA0IDguMDRoLS4wOWwtMS42IDQuNTVoMy4yOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMy4yMSAxNS0uOTgtMi44MUg5Ljc4bC0xIDIuODFoLTEuOWw0LjEzLTExaDEuOTdsNC4xMyAxMWgtMS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZHJPZmZTZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDE4LjV2LTFjMC0uOC0uNy0xLjUtMS41LTEuNUgxM3Y2aDEuNXYtMmgxLjFsLjkgMkgxOGwtLjktMi4xYy41LS4zLjktLjguOS0xLjR6bS0xLjUgMGgtMnYtMWgydjF6bS0xMy0uNWgtMnYtMkgwdjZoMS41di0yLjVoMlYyMkg1di02SDMuNXYyem02LjUtMkg2LjV2NkgxMGMuOCAwIDEuNS0uNyAxLjUtMS41di0zYzAtLjgtLjctMS41LTEuNS0xLjV6bTAgNC41SDh2LTNoMnYzem0xNC0uNWgtMnYyaC0xLjV2LTJoLTJ2LTEuNWgydi0ySDIydjJoMlYyMHpNMTAuOTggNC4xNSA5LjQyIDIuNTljNS4xLTIuNDIgMTAuNDEgMi44OSA3Ljk5IDcuOTlsLTEuNTYtMS41NmMuODEtMi45Ni0xLjkxLTUuNjgtNC44Ny00Ljg3ek02LjM0IDIuMzQgNC45MyAzLjc2bDEuNjYgMS42NmMtMi40MiA1LjEgMi44OSAxMC40MSA3Ljk5IDcuOTlsMS42NiAxLjY2IDEuNDEtMS40MUw2LjM0IDIuMzR6bTEuODEgNC42NCA0Ljg3IDQuODdjLTIuOTYuODEtNS42OC0xLjkxLTQuODctNC44N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGRyT25TZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDE4LjV2LTFjMC0uOC0uNy0xLjUtMS41LTEuNUgxM3Y2aDEuNXYtMmgxLjFsLjkgMkgxOGwtLjktMi4xYy41LS4zLjktLjguOS0xLjR6bS0xLjUgMGgtMnYtMWgydjF6bS0xMy0uNWgtMnYtMkgwdjZoMS41di0yLjVoMlYyMkg1di02SDMuNXYyem02LjUtMkg2LjV2NkgxMGMuOCAwIDEuNS0uNyAxLjUtMS41di0zYzAtLjgtLjctMS41LTEuNS0xLjV6bTAgNC41SDh2LTNoMnYzem0xNC0uNWgtMnYyaC0xLjV2LTJoLTJ2LTEuNWgydi0ySDIydjJoMlYyMHpNMTIgNGMyLjIxIDAgNCAxLjc5IDQgNHMtMS43OSA0LTQgNC00LTEuNzktNC00IDEuNzktNCA0LTRtMC0yQzguNjkgMiA2IDQuNjkgNiA4czIuNjkgNiA2IDYgNi0yLjY5IDYtNi0yLjY5LTYtNi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAyMmg4di03aC0zdi00aC01VjloM1YySDh2N2gzdjJINnY0SDN2N2g4di03SDh2LTJoOHYyaC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMZW5zQmx1ciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxM2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wIDRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMC04Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bS0zIC41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXpNNiA1Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTE1IDUuNWMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6TTE0IDdjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMC0zLjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41em0tMTEgMTBjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em03IDdjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0wLTE3Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXpNMTAgN2MuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wIDUuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6bTggLjVjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMCA0Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAtOGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wLTRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMyA4LjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41ek0xNCAxN2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wIDMuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bS00LTEyYy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXptMCA4LjVjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptNC00LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41em0wLTRjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMaWdodE1vZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3Yy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXpNMiAxM2gyYy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xSDJjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDF6bTE4IDBoMmMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMWgtMmMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMXpNMTEgMnYyYzAgLjU1LjQ1IDEgMSAxczEtLjQ1IDEtMVYyYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxem0wIDE4djJjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xdi0yYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxek01Ljk5IDQuNThhLjk5Ni45OTYgMCAwIDAtMS40MSAwIC45OTYuOTk2IDAgMCAwIDAgMS40MWwxLjA2IDEuMDZjLjM5LjM5IDEuMDMuMzkgMS40MSAwcy4zOS0xLjAzIDAtMS40MUw1Ljk5IDQuNTh6bTEyLjM3IDEyLjM3YS45OTYuOTk2IDAgMCAwLTEuNDEgMCAuOTk2Ljk5NiAwIDAgMCAwIDEuNDFsMS4wNiAxLjA2Yy4zOS4zOSAxLjAzLjM5IDEuNDEgMGEuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLTEuMDYtMS4wNnptMS4wNi0xMC45NmEuOTk2Ljk5NiAwIDAgMCAwLTEuNDEuOTk2Ljk5NiAwIDAgMC0xLjQxIDBsLTEuMDYgMS4wNmMtLjM5LjM5LS4zOSAxLjAzIDAgMS40MXMxLjAzLjM5IDEuNDEgMGwxLjA2LTEuMDZ6TTcuMDUgMTguMzZhLjk5Ni45OTYgMCAwIDAgMC0xLjQxLjk5Ni45OTYgMCAwIDAtMS40MSAwbC0xLjA2IDEuMDZjLS4zOS4zOS0uMzkgMS4wMyAwIDEuNDFzMS4wMy4zOSAxLjQxIDBsMS4wNi0xLjA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhdGlvbkRpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuOTQgMTFBOC45OTQgOC45OTQgMCAwIDAgMTMgMy4wNlYxaC0ydjIuMDZjLTEuMTMuMTItMi4xOS40Ni0zLjE2Ljk3bDEuNSAxLjVBNi45OTUgNi45OTUgMCAwIDEgMTkgMTJjMCAuOTQtLjE5IDEuODQtLjUyIDIuNjVsMS41IDEuNWMuNS0uOTYuODQtMi4wMi45Ny0zLjE1SDIzdi0yaC0yLjA2ek0zIDQuMjdsMi4wNCAyLjA0QTguOTE0IDguOTE0IDAgMCAwIDMuMDYgMTFIMXYyaDIuMDZBOC45OTQgOC45OTQgMCAwIDAgMTEgMjAuOTRWMjNoMnYtMi4wNmMxLjc3LS4yIDMuMzgtLjkxIDQuNjktMS45OEwxOS43MyAyMSAyMSAxOS43MyA0LjI3IDMgMyA0LjI3em0xMy4yNyAxMy4yN2E2Ljk5NSA2Ljk5NSAwIDAgMS05LjgxLTkuODFsOS44MSA5LjgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhdGlvblNlYXJjaGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjk0IDExQTguOTk0IDguOTk0IDAgMCAwIDEzIDMuMDZWMWgtMnYyLjA2QTguOTk0IDguOTk0IDAgMCAwIDMuMDYgMTFIMXYyaDIuMDZBOC45OTQgOC45OTQgMCAwIDAgMTEgMjAuOTRWMjNoMnYtMi4wNkE4Ljk5NCA4Ljk5NCAwIDAgMCAyMC45NCAxM0gyM3YtMmgtMi4wNnpNMTIgMTljLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMdGVNb2JpbGVkYXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDE0aDN2Mkg0VjhoMnY2em0zLTRoMnY2aDJ2LTZoMlY4SDl2MnptMTIgMFY4aC01djhoNXYtMmgtM3YtMWgzdi0yaC0zdi0xaDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEx0ZVBsdXNNb2JpbGVkYXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE0aDN2MkgxVjhoMnY2em0yLTRoMnY2aDJ2LTZoMlY4SDV2MnptNyA2aDV2LTJoLTN2LTFoM3YtMmgtM3YtMWgzVjhoLTV2OHptMTItNWgtMlY5aC0ydjJoLTJ2MmgydjJoMnYtMmgydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNYWNyb09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5Ljk4IDE3LjE1QTguOTA5IDguOTA5IDAgMCAwIDIxIDEzYy0xLjUgMC0yLjkxLjM3LTQuMTUgMS4wMmwzLjEzIDMuMTN6TTMgMTNhOSA5IDAgMCAwIDkgOSA5IDkgMCAwIDAtOS05ek0xMiA1LjVBMi41IDIuNSAwIDAgMSAxNC41IDhjMCAuOTktLjU4IDEuODQtMS40MiAyLjI1bDIuNDggMi40OGMuMTEuMDIuMjMuMDMuMzUuMDNhMi41IDIuNSAwIDAgMCAyLjUtMi41YzAtMS0uNTktMS44NS0xLjQzLTIuMjUuODQtLjQgMS40My0xLjI1IDEuNDMtMi4yNWEyLjUgMi41IDAgMCAwLTMuOTItMi4wNmwuMDEtLjJhMi41IDIuNSAwIDAgMC01IDBsLjAyLjE5YTIuNDg1IDIuNDg1IDAgMCAwLTIuOTMuMDhsMy4xNiAzLjE2Yy40MS0uODUgMS4yNi0xLjQzIDIuMjUtMS40M3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi44MSAyLjgxIDEuMzkgNC4yMmw0LjY0IDQuNjRjLS4yNy40LS40My44Ny0uNDMgMS4zOWEyLjUgMi41IDAgMCAwIDIuNSAyLjVjLjUyIDAgLjk5LS4xNiAxLjQtLjQzbC4wMi4wMi0uMDIuMTZBMi41IDIuNSAwIDAgMCAxMiAxNWMuMDUgMCAuMS0uMDEuMTYtLjAybDEuNjQgMS42NEE4LjkwNSA4LjkwNSAwIDAgMCAxMiAyMmMyLjAyIDAgMy44OC0uNjcgNS4zOC0xLjhsMi40IDIuNCAxLjQxLTEuNDFMMi44MSAyLjgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNZWRpYUJsdWV0b290aE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA2LjE3VjNoNnY0aC00djEuMTdsLTItMnpNMTkuNDIgMTUgMjIgMTcuNTdsLS44LjgtNi43OC02Ljc4LjgtLjggMi43NSAyLjc1VjloLjZMMjIgMTIuNDMgMTkuNDIgMTV6bS0uMjUtMS40NSAxLjEzLTEuMTMtMS4xMy0xLjEzdjIuMjZ6bTIuMDIgNy42NC0xLjQxIDEuNDEtMy45OC0zLjk4LS41OC41OC0uODUtLjg1LjU4LS41OEwxMSAxMy44M1YxN2MwIDIuMjEtMS43OCA0LTMuOTkgNFMzIDE5LjIxIDMgMTdzMS43OS00IDQuMDEtNGMuNzMgMCAxLjQxLjIxIDIgLjU1di0xLjcyTDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOSAxOC4zOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWVkaWFCbHVldG9vdGhPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOSAzIC4wMSAxMC41NWMtLjYtLjM0LTEuMjgtLjU1LTItLjU1YTQuMDAxIDQuMDAxIDAgMSAwIDAgOEM5LjIzIDIxIDExIDE5LjIxIDExIDE3VjdoNFYzSDl6bTEyIDkuNDNMMTcuNTcgOWgtLjZ2NC41NWwtMi43NS0yLjc1LS44NS44NUwxNi43MyAxNWwtMy4zNSAzLjM1Ljg1Ljg1IDIuNzUtMi43NVYyMWguNkwyMSAxNy41NyAxOC40MiAxNSAyMSAxMi40M3ptLTIuODMtMS4xMyAxLjEzIDEuMTMtMS4xMyAxLjEzVjExLjN6bTEuMTMgNi4yNy0xLjEzIDEuMTN2LTIuMjZsMS4xMyAxLjEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNZWRpY2F0aW9uTGlxdWlkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAzaDEydjJIM3pNMTQgNkg0Yy0xLjEgMC0yIC45LTIgMnYxMWMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bS0xIDloLTIuNXYyLjVoLTNWMTVINXYtM2gyLjVWOS41aDNWMTJIMTN2M3pNMjAgNmMtMS42OCAwLTMgMS43Ni0zIDQgMCAxLjc3LjgzIDMuMjIgMiAzLjc2VjIwYzAgLjU1LjQ1IDEgMSAxczEtLjQ1IDEtMXYtNi4yNGMxLjE3LS41NCAyLTEuOTkgMi0zLjc2IDAtMi4yNC0xLjMyLTQtMy00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNZWRpY2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDNoMTJ2Mkg2ek0xNyA2SDdjLTEuMSAwLTIgLjktMiAydjExYzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptLTEgOWgtMi41djIuNWgtM1YxNUg4di0zaDIuNVY5LjVoM1YxMkgxNnYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb2JpbGVGcmllbmRseSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDFIOWMtMS4xIDAtMiAuOS0yIDJ2M2gyVjRoMTB2MTZIOXYtMkg3djNjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yek03LjAxIDEzLjQ3bC0yLjU1LTIuNTUtMS4yNyAxLjI3TDcgMTZsNy4xOS03LjE5LTEuMjctMS4yN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW9iaWxlT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi43NiAyLjQ5IDEuNDkgMy43NiA1IDcuMjdWMjFjMCAxLjEuOSAyIDIgMmgxMGMxLjAyIDAgMS44NS0uNzcgMS45OC0xLjc1bDEuNzIgMS43MiAxLjI3LTEuMjdMMi43NiAyLjQ5ek03IDE5VjkuMjdMMTYuNzMgMTlIN3pNMTcgNXY5LjE3bDIgMlYzYzAtMS4xLS45LTItMi0ySDdjLS44NSAwLTEuNTguNTQtMS44NyAxLjNMNy44MyA1SDE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb2JpbGVkYXRhT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA3aDNsLTQtNC00IDRoM3Y0LjE3bDIgMnpNMi44MSAyLjgxIDEuMzkgNC4yMiA4IDEwLjgzdjYuMThsLTMgLjAxTDkgMjFsNC00LTMgLjAxdi00LjE4bDkuNzggOS43OCAxLjQxLTEuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vZGVOaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS41IDJjLTEuODIgMC0zLjUzLjUtNSAxLjM1IDIuOTkgMS43MyA1IDQuOTUgNSA4LjY1cy0yLjAxIDYuOTItNSA4LjY1YzEuNDcuODUgMy4xOCAxLjM1IDUgMS4zNSA1LjUyIDAgMTAtNC40OCAxMC0xMFMxNS4wMiAyIDkuNSAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb2RlU3RhbmRieSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ5IDIgMiA2LjQ5IDIgMTJzNC40OSAxMCAxMCAxMCAxMC00LjQ5IDEwLTEwUzE3LjUxIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTMtOGMwIDEuNjYtMS4zNCAzLTMgM3MtMy0xLjM0LTMtMyAxLjM0LTMgMy0zIDMgMS4zNCAzIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vbml0b3JIZWFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjExIDEyLjQ1IDE0IDEwLjI0bC0zLjExIDYuMjFjLS4xNi4zNC0uNTEuNTUtLjg5LjU1cy0uNzMtLjIxLS44OS0uNTVMNy4zOCAxM0gydjVjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMnYtNWgtNmMtLjM4IDAtLjczLS4yMS0uODktLjU1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjVoNmMuMzggMCAuNzMuMjEuODkuNTVMMTAgMTMuNzZsMy4xMS02LjIxYy4zNC0uNjggMS40NS0uNjggMS43OSAwTDE2LjYyIDExSDIyVjZjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vbml0b3JXZWlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyA5Yy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zIDMgMS4zNCAzIDMtMS4zNCAzLTMgM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgOC41aDF2MWgtMXpNMTEuNSA4LjVoMXYxaC0xek0xMyA4LjVoMXYxaC0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROZWFyYnlFcnJvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgNy41NyA0LjQyIDQuNDJMMTIgMTYuNDFsLTQuNDItNC40MkwxMiA3LjU3em0wIDExLjYyLTcuMi03LjIgNy4yLTcuMiA2IDZWNy4xNmwtNC41OC00LjU4Yy0uNzgtLjc4LTIuMDUtLjc4LTIuODMgMGwtOC4wMSA4Yy0uNzguNzgtLjc4IDIuMDUgMCAyLjgzbDguMDEgOGMuNzguNzggMi4wNS43OCAyLjgzIDBMMTggMTYuODJ2LTMuNjNsLTYgNnptOCAuODFoMnYyaC0ydi0yem0yLTEwaC0ydjhoMnYtOFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROZWFyYnlPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjQxIDEzLjQyIDE4LjgzIDE2bC0xLjgxLTEuODFMMTkuMiAxMiAxMiA0LjggOS44MSA2Ljk5IDggNS4xN2wyLjU4LTIuNThjLjc4LS43OCAyLjA1LS43OCAyLjgzIDBsOCA4Yy43OS43OC43OSAyLjA0IDAgMi44M3ptLS4yMiA3Ljc3LTEuNDEgMS40MUwxNiAxOC44M2wtMi41OCAyLjU4Yy0uNzguNzgtMi4wNS43OC0yLjgzIDBsLTgtOGMtLjc4LS43OC0uNzgtMi4wNSAwLTIuODNMNS4xNyA4IDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOSAxOC4zOHptLTctNC4xNy0xLjM5LTEuMzktLjguOEw3LjU4IDEybC44LS44LTEuNC0xLjM5TDQuOCAxMmw3LjIgNy4yIDIuMTktMi4xOHpNMTYuNDIgMTIgMTIgNy41OGwtLjguOCA0LjQyIDQuNDIuOC0uOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTmV0d29ya0NlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDIyaDIwVjJMMiAyMnptMTgtMmgtM1Y5LjgzbDMtM1YyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTmV0d29ya1dpZmkxQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4TDEyIDIxIDI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNHptMy4zMiAxMC44NEMxNC4zNCAxNC4zIDEzLjIgMTQgMTIgMTRjLTEuMiAwLTIuMzQuMy0zLjMyLjg0TDIuOTIgOS4wN0M1LjUxIDcuMDggOC42NyA2IDEyIDZzNi40OSAxLjA4IDkuMDggMy4wN2wtNS43NiA1Ljc3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROZXR3b3JrV2lmaTJCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThMMTIgMjEgMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0em00Ljc4IDkuMzhBOC44NTMgOC44NTMgMCAwIDAgMTIgMTJjLTEuNzYgMC0zLjQuNS00Ljc4IDEuMzhsLTQuMy00LjNDNS41MSA3LjA4IDguNjcgNiAxMiA2czYuNDkgMS4wOCA5LjA4IDMuMDdsLTQuMyA0LjMxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROZXR3b3JrV2lmaTNCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThMMTIgMjEgMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0ek0yLjkyIDkuMDdDNS41MSA3LjA4IDguNjcgNiAxMiA2czYuNDkgMS4wOCA5LjA4IDMuMDdsLTIuODUgMi44NkExMC45NDUgMTAuOTQ1IDAgMCAwIDEyIDEwYy0yLjMxIDAtNC40Ni43MS02LjIzIDEuOTNMMi45MiA5LjA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROZXR3b3JrV2lmaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4TDEyIDIxIDI0IDguOTh6bS0yMS4wOC4wOUM1LjUxIDcuMDggOC42NyA2IDEyIDZzNi40OSAxLjA4IDkuMDggMy4wN2wtMS40MyAxLjQzQzE3LjUgOC45NCAxNC44NiA4IDEyIDhzLTUuNS45NC03LjY1IDIuNTFMMi45MiA5LjA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROZmMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk00IDIwaDE2VjRINHYxNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMThINFY0aDE2djE2ek0xOCA2aC01Yy0xLjEgMC0yIC45LTIgMnYyLjI4Yy0uNi4zNS0xIC45OC0xIDEuNzIgMCAxLjEuOSAyIDIgMnMyLS45IDItMmMwLS43NC0uNC0xLjM4LTEtMS43MlY4aDN2OEg4VjhoMlY2SDZ2MTJoMTJWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTmlnaHRsaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMmMxLjgyIDAgMy41My41IDUgMS4zNS0yLjk5IDEuNzMtNSA0Ljk1LTUgOC42NXMyLjAxIDYuOTIgNSA4LjY1QTkuOTczIDkuOTczIDAgMCAxIDE0IDIyQzguNDggMjIgNCAxNy41MiA0IDEyUzguNDggMiAxNCAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb3RlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMXMtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03LS4yNWMuNDEgMCAuNzUuMzQuNzUuNzVzLS4zNC43NS0uNzUuNzUtLjc1LS4zNC0uNzUtLjc1LjM0LS43NS43NS0uNzV6TTkuMSAxN0g3di0yLjE0bDUuOTYtNS45NiAyLjEyIDIuMTJMOS4xIDE3em03Ljc1LTcuNzMtMS4wNiAxLjA2LTIuMTItMi4xMiAxLjA2LTEuMDZjLjItLjIuNTEtLjIuNzEgMGwxLjQxIDEuNDFjLjIuMi4yLjUxIDAgLjcxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQYXNzd29yZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxN2gyMHYySDJ2LTJ6bTEuMTUtNC4wNUw0IDExLjQ3bC44NSAxLjQ4IDEuMy0uNzUtLjg1LTEuNDhIN3YtMS41SDUuM2wuODUtMS40N0w0Ljg1IDcgNCA4LjQ3IDMuMTUgN2wtMS4zLjc1Ljg1IDEuNDdIMXYxLjVoMS43bC0uODUgMS40OCAxLjMuNzV6bTYuNy0uNzUgMS4zLjc1Ljg1LTEuNDguODUgMS40OCAxLjMtLjc1LS44NS0xLjQ4SDE1di0xLjVoLTEuN2wuODUtMS40Ny0xLjMtLjc1TDEyIDguNDcgMTEuMTUgN2wtMS4zLjc1Ljg1IDEuNDdIOXYxLjVoMS43bC0uODUgMS40OHpNMjMgOS4yMmgtMS43bC44NS0xLjQ3LTEuMy0uNzVMMjAgOC40NyAxOS4xNSA3bC0xLjMuNzUuODUgMS40N0gxN3YxLjVoMS43bC0uODUgMS40OCAxLjMuNzUuODUtMS40OC44NSAxLjQ4IDEuMy0uNzUtLjg1LTEuNDhIMjN2LTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGF0dGVybiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2YzAtMS4xLjktMiAyLTJzMiAuOSAyIDItLjkgMi0yIDItMi0uOS0yLTJ6bTIgOGMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTYtNmMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTYgMmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bS0uMDIgNmMtLjc0IDAtMS4zNy40LTEuNzIgMWgtMi41NGExLjk4IDEuOTggMCAwIDAtMy40NCAwSDguNDFsMy4wNy0zLjA3Yy4xNy4wNC4zNC4wNy41Mi4wNyAxLjEgMCAyLS45IDItMiAwLS4xOC0uMDMtLjM1LS4wNy0uNTFsMy41Ni0zLjU2Yy4xNi4wNC4zMy4wNy41MS4wNyAxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDJjMCAuMTguMDMuMzUuMDcuNTFsLTMuNTYgMy41NmMtLjE2LS4wNC0uMzMtLjA3LS41MS0uMDctMS4xIDAtMiAuOS0yIDIgMCAuMTguMDMuMzUuMDcuNTFsLTMuNTYgMy41NkM2LjM1IDE2LjAzIDYuMTggMTYgNiAxNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDJjLjc0IDAgMS4zNy0uNCAxLjcyLTFoMi41N2ExLjk4IDEuOTggMCAwIDAgMy40NCAwaDIuNTVjLjM0LjYuOTggMSAxLjcyIDEgMS4xIDAgMi0uOSAyLTItLjAyLTEuMS0uOTItMi0yLjAyLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBoaXNoaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgOWMwLTEuMy0uODQtMi40LTItMi44MlYyaC0ydjQuMThDMTMuODQgNi42IDEzIDcuNyAxMyA5cy44NCAyLjQgMiAyLjgyVjE1YzAgMi4yMS0xLjc5IDQtNCA0cy00LTEuNzktNC00di0xaDNMNSA5djZjMCAzLjMxIDIuNjkgNiA2IDZzNi0yLjY5IDYtNnYtMy4xOGMxLjE2LS40MiAyLTEuNTIgMi0yLjgyem0tMyAxYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6TTcuNjQgMTVINi40OXYtNC41bC0uOS42Ni0uNTgtLjg5TDYuNzcgOWguODd2NnptNS44NiAwSDkuNjF2LTEuMDJjMS4wNy0xLjA3IDEuNzctMS43NyAyLjEzLTIuMTUuNC0uNDIuNTQtLjY5LjU0LTEuMDYgMC0uNC0uMzEtLjcyLS44MS0uNzItLjUyIDAtLjguMzktLjkuNzJsLTEuMDEtLjQyYy4wMS0uMDIuMTgtLjc2IDEtMS4xNS42OS0uMzMgMS40OC0uMiAxLjk1LjAzLjg2LjQ0LjkxIDEuMjQuOTEgMS40OCAwIC42NC0uMzEgMS4yNi0uOTIgMS44Ni0uMjUuMjUtLjcyLjcxLTEuNCAxLjM5bC4wMy4wNWgyLjM3VjE1em01LjI1LS44NWMtLjA4LjEzLS41Ni44NS0xLjc2Ljg1LS4wNCAwLTEuNi4wOC0yLjA1LTEuNTFsMS4wMy0uNDFjLjAzLjEuMTkuODYgMS4wMi44Ni40MSAwIC44OS0uMjguODktLjc3IDAtLjU1LS40OC0uNzktMS4wNC0uNzloLS41di0xaC40NmMuMzMgMCAuODgtLjE0Ljg4LS43MiAwLS4zOS0uMzEtLjY1LS43NS0uNjUtLjUgMC0uNzQuMzItLjg1LjY0bC0uOTktLjQxQzE1LjIgOS45IDE1LjY4IDkgMTYuOTQgOWMxLjA5IDAgMS41NC42NCAxLjYyLjc1LjMzLjUuMjggMS4xNi4wMiAxLjU3LS4xNS4yMi0uMzIuMzgtLjUyLjQ4di4wN2MuMjguMTEuNTEuMjguNjguNTIuMzcuNTIuMzMgMS4yNy4wMSAxLjc2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQbGF5TGVzc29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxMWMuMzQgMCAuNjcuMDMgMSAuMDhWNGMwLTEuMS0uOS0yLTItMkg1Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDcuMjZBNi45OTUgNi45OTUgMCAwIDEgMTggMTF6TTcgMTFWNGg1djdMOS41IDkuNSA3IDExelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bS0xLjI1IDcuNXYtNWw0IDIuNS00IDIuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUHJpY2VDaGFuZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMThjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWNmMwLTEuMTEtLjg5LTItMi0yem0tOCA2SDh2MWgzYy41NSAwIDEgLjQ1IDEgMXYzYzAgLjU1LS40NSAxLTEgMWgtMXYxSDh2LTFINnYtMmg0di0xSDdjLS41NSAwLTEtLjQ1LTEtMVY5YzAtLjU1LjQ1LTEgMS0xaDFWN2gydjFoMnYyem00IDYuMjUtMi0yaDRsLTIgMnpNMTQgMTBsMi0yIDIgMmgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUHJpY2VDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTNWOWMwLS41NS0uNDUtMS0xLTFIN1Y2aDVWNEg5LjVWM2gtMnYxSDZjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxaDR2Mkg1djJoMi41djFoMnYtMUgxMWMuNTUgMCAxLS40NSAxLTF6TTE5LjU5IDEyLjUybC01LjY2IDUuNjUtMi44My0yLjgzLTEuNDEgMS40MkwxMy45MyAyMSAyMSAxMy45M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUHVuY2hDbG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDZoLTFWMUg2djVINWMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yek04IDNoOHYzSDhWM3ptNCAxNmMtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNSA1IDIuMjQgNSA1LTIuMjQgNS01IDV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjUgMTEuNWgtMXYyLjcxbDEuNjQgMS42NC43MS0uNzEtMS4zNS0xLjM1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRRdWl6IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS01Ljk5IDEzYy0uNTkgMC0xLjA1LS40Ny0xLjA1LTEuMDUgMC0uNTkuNDctMS4wNCAxLjA1LTEuMDQuNTkgMCAxLjA0LjQ1IDEuMDQgMS4wNC0uMDEuNTgtLjQ1IDEuMDUtMS4wNCAxLjA1em0yLjUtNi4xN2MtLjYzLjkzLTEuMjMgMS4yMS0xLjU2IDEuODEtLjEzLjI0LS4xOC40LS4xOCAxLjE4aC0xLjUyYzAtLjQxLS4wNi0xLjA4LjI2LTEuNjUuNDEtLjczIDEuMTgtMS4xNiAxLjYzLTEuOC40OC0uNjguMjEtMS45NC0xLjE0LTEuOTQtLjg4IDAtMS4zMi42Ny0xLjUgMS4yM2wtMS4zNy0uNTdDMTEuNTEgNS45NiAxMi41MiA1IDEzLjk5IDVjMS4yMyAwIDIuMDguNTYgMi41MSAxLjI2LjM3LjYxLjU4IDEuNzMuMDEgMi41N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUk1vYmlsZWRhdGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuOCA3LjIgOSAxMEg3TDUuODcgNy4zM0g0VjEwSDJWMmg1YzEuMTMgMCAyIC44NyAyIDJ2MS4zM2MwIC44LS41MyAxLjU0LTEuMiAxLjg3ek03IDRINHYxLjMzaDNWNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmFkYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5Ljc0IDE4LjMzQTkuOTg0IDkuOTg0IDAgMCAwIDIyIDEyYzAtNS41Mi00LjQ4LTEwLTEwLTEwUzIgNi40OCAyIDEyczQuNDggMTAgMTAgMTBhOS45ODQgOS45ODQgMCAwIDAgNy4xMS0yLjk3Yy4wMy0uMDMuMDUtLjA2LjA3LS4wOC4yLS4yLjM5LS40MS41Ni0uNjJ6TTEyIDIwYy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDhjMCAxLjg1LS42MyAzLjU0LTEuNjkgNC45bC0xLjQzLTEuNDNjLjY5LS45OCAxLjEtMi4xNyAxLjEtMy40NiAwLTMuMzEtMi42OS02LTYtNnMtNiAyLjY5LTYgNiAyLjY5IDYgNiA2YzEuMyAwIDIuNTEtLjQyIDMuNDktMS4xM2wxLjQyIDEuNDJBNy44MjIgNy44MjIgMCAwIDEgMTIgMjB6bTEuOTItNy40OWMuMTctLjY2LjAyLTEuMzgtLjQ5LTEuOWwtLjAyLS4wMmMtLjc3LS43Ny0yLS43OC0yLjc4LS4wNC0uMDEuMDEtLjAzLjAyLS4wNS4wNC0uNzguNzgtLjc4IDIuMDUgMCAyLjgzbC4wMi4wMmMuNTIuNTEgMS4yNS42NyAxLjkxLjQ5bDEuNTEgMS41MWMtLjYuMzYtMS4yOS41OC0yLjA0LjU4LTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTQgNCAxLjc5IDQgNGMwIC43My0uMjEgMS40MS0uNTYgMmwtMS41LTEuNTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlbWVtYmVyTWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDFIN2MtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE0LjIxYy0xLjUtLjc3LTMuMi0xLjIxLTUtMS4yMXMtMy41LjQ0LTUgMS4yMVY2aDEwdjkuMjF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMFwiLFwiclwiOlwiM1wifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZXNldFR2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMGgtOC4wMVY3TDkgMTFsMy45OSA0di0zSDIxdjVIM1Y1aDE4djNoMlY1YzAtMS4xLS45LTItMi0ySDNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoNXYyaDh2LTJoNWMxLjEgMCAxLjk5LS45IDEuOTktMnYtNUgyM2MwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVzdGFydEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNVYyTDggNmw0IDRWN2MzLjMxIDAgNiAyLjY5IDYgNiAwIDIuOTctMi4xNyA1LjQzLTUgNS45MXYyLjAyYzMuOTUtLjQ5IDctMy44NSA3LTcuOTMgMC00LjQyLTMuNTgtOC04LTh6TTYgMTNjMC0xLjY1LjY3LTMuMTUgMS43Ni00LjI0TDYuMzQgNy4zNEE4LjAxNCA4LjAxNCAwIDAgMCA0IDEzYzAgNC4wOCAzLjA1IDcuNDQgNyA3Ljkzdi0yLjAyYy0yLjgzLS40OC01LTIuOTQtNS01LjkxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZXZpZXdzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE4bDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tNi40MyA5LjU3TDEyIDE1bC0xLjU3LTMuNDNMNyAxMGwzLjQzLTEuNTdMMTIgNWwxLjU3IDMuNDNMMTcgMTBsLTMuNDMgMS41N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUnN2cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOWgxLjVsLTEuNzUgNmgtMS41TDEyLjUgOUgxNGwxIDMuNDNMMTYgOXpNNS4xIDEyLjkgNiAxNUg0LjVsLS44NS0ySDIuNXYySDFWOWgzLjVjLjg1IDAgMS41LjY1IDEuNSAxLjV2MWMwIC42LS40IDEuMTUtLjkgMS40em0tLjYtMi40aC0ydjFoMnYtMXptMTcgMi41aC0ydjJIMThWOWgzLjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2MWMwIC44My0uNjcgMS41LTEuNSAxLjV6bTAtMi41aC0ydjFoMnYtMXpNMTEuNSA5djEuNWgtM3YuNzVoMmMuNTUgMCAxIC40NSAxIDFWMTRjMCAuNTUtLjQ1IDEtMSAxSDd2LTEuNWgzdi0uNzVINy43NWMtLjQxIDAtLjc1LS4zNC0uNzUtLjc1di0yYzAtLjU1LjQ1LTEgMS0xaDMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2NyZWVuTG9ja0xhbmRzY2FwZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDVIM2MtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0tMiAxMkg1VjdoMTR2MTB6bS05LTFoNGMuNTUgMCAxLS40NSAxLTF2LTNjMC0uNTUtLjQ1LTEtMS0xdi0xYTIgMiAwIDEgMC00IDB2MWMtLjU1IDAtMSAuNDUtMSAxdjNjMCAuNTUuNDUgMSAxIDF6bS44LTZjMC0uNjYuNTQtMS4yIDEuMi0xLjIuNjYgMCAxLjIuNTQgMS4yIDEuMnYxaC0yLjR2LTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNjcmVlbkxvY2tQb3J0cmFpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDE2aDRjLjU1IDAgMS0uNDUgMS0xdi0zYzAtLjU1LS40NS0xLTEtMXYtMWEyIDIgMCAxIDAtNCAwdjFjLS41NSAwLTEgLjQ1LTEgMXYzYzAgLjU1LjQ1IDEgMSAxem0uOC02YzAtLjY2LjU0LTEuMiAxLjItMS4yLjY2IDAgMS4yLjU0IDEuMiAxLjJ2MWgtMi40di0xek0xNyAxSDdjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxOEg3VjVoMTB2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNjcmVlbkxvY2tSb3RhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIzLjI1IDEyLjc3LTIuNTctMi41Ny0xLjQxIDEuNDEgMi4yMiAyLjIyLTUuNjYgNS42Nkw0LjUxIDguMTdsNS42Ni01LjY2IDIuMSAyLjEgMS40MS0xLjQxTDExLjIzLjc1YTEuNDkgMS40OSAwIDAgMC0yLjEyIDBMMi43NSA3LjExYTEuNDkgMS40OSAwIDAgMCAwIDIuMTJsMTIuMDIgMTIuMDJjLjU5LjU5IDEuNTQuNTkgMi4xMiAwbDYuMzYtNi4zNmMuNTktLjU5LjU5LTEuNTQgMC0yLjEyek04LjQ3IDIwLjQ4QTEwLjQ4NyAxMC40ODcgMCAwIDEgMi41IDEySDFjLjUxIDYuMTYgNS42NiAxMSAxMS45NSAxMWwuNjYtLjAzLTMuODEtMy44Mi0xLjMzIDEuMzN6TTE2IDloNWMuNTUgMCAxLS40NSAxLTFWNGMwLS41NS0uNDUtMS0xLTF2LS41YTIuNSAyLjUgMCAwIDAtNSAwVjNjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxem0uOC02LjVjMC0uOTQuNzYtMS43IDEuNy0xLjdzMS43Ljc2IDEuNyAxLjdWM2gtMy40di0uNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2NyZWVuUm90YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi40OCAyLjUyYzMuMjcgMS41NSA1LjYxIDQuNzIgNS45NyA4LjQ4aDEuNUMyMy40NCA0Ljg0IDE4LjI5IDAgMTIgMGwtLjY2LjAzIDMuODEgMy44MSAxLjMzLTEuMzJ6bS02LjI1LS43N2ExLjQ5IDEuNDkgMCAwIDAtMi4xMiAwTDEuNzUgOC4xMWExLjQ5IDEuNDkgMCAwIDAgMCAyLjEybDEyLjAyIDEyLjAyYy41OS41OSAxLjU0LjU5IDIuMTIgMGw2LjM2LTYuMzZjLjU5LS41OS41OS0xLjU0IDAtMi4xMkwxMC4yMyAxLjc1em00LjYgMTkuNDRMMi44MSA5LjE3bDYuMzYtNi4zNiAxMi4wMiAxMi4wMi02LjM2IDYuMzZ6bS03LjMxLjI5QTEwLjQ4NyAxMC40ODcgMCAwIDEgMS41NSAxM0guMDVDLjU2IDE5LjE2IDUuNzEgMjQgMTIgMjRsLjY2LS4wMy0zLjgxLTMuODEtMS4zMyAxLjMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTY3JlZW5TZWFyY2hEZXNrdG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwiZW5hYmxlQmFja2dyb3VuZFwiOlwibmV3IDAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjYgMTYuOGg0Ljh2MS44SDkuNnpcIixcImZpbGxcIjpcIm5vbmVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMThjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjIgNmEyIDIgMCAwIDAtMi0ySDRjLTEuMTEgMC0yIC44OS0yIDJ2MTBhMiAyIDAgMCAwIDIgMkgwdjJoMjR2LTJoLTRaTTQgMTZWNmgxNnYxMC4wMUw0IDE2Wm01LjA5Ny02LjA0N2MwLTEuMDI3LjgzNi0xLjg2NCAxLjg2NC0xLjg2NCAxLjAyNyAwIDEuODY0LjgzNyAxLjg2NCAxLjg2NGExLjg2NyAxLjg2NyAwIDAgMS0xLjg2NCAxLjg2NCAxLjg2NyAxLjg2NyAwIDAgMS0xLjg2NC0xLjg2NFptNy4wMzIgNC4yMzYtMi40ODItMi40ODJhMy4xOSAzLjE5IDAgMCAwIC41MjctMS43NTRBMy4yMTYgMy4yMTYgMCAwIDAgMTAuOTYgNi43NGEzLjIxNyAzLjIxNyAwIDAgMC0zLjIxNCAzLjIxMyAzLjIxOCAzLjIxOCAwIDAgMCAzLjIxNCAzLjIxNCAzLjE5IDMuMTkgMCAwIDAgMS43MjQtLjUxbDIuNDg5IDIuNDg3Ljk1NS0uOTU1WlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIixcImZpbGxcIjpcIm5vbmVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2NyZWVuc2hvdE1vbml0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAzSDRjLTEuMTEgMC0yIC44OS0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg0djJoOHYtMmg0YzEuMSAwIDItLjkgMi0yVjVhMiAyIDAgMCAwLTItMnptMCAxNEg0VjVoMTZ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSA3LjVIOVY2SDV2NGgxLjV6TTE5IDEyaC0xLjV2Mi41SDE1VjE2aDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNjcmVlbnNob3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEuMDEgNyAxYy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMS45OS0yLTEuOTl6TTE3IDE4SDdWNmgxMHYxMnpNOS41IDguNUgxMlY3SDh2NGgxLjVWOC41ek0xMiAxN2g0di00aC0xLjV2Mi41SDEyVjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZFN0b3JhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAyaC04TDQuMDIgOCA0IDIwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTYgNmgtMlY0aDJ2NHptMyAwaC0yVjRoMnY0em0zIDBoLTJWNGgydjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNlY3VyaXR5VXBkYXRlR29vZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMUg3Yy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTdIN1Y2aDEwdjEyem0tMS03Ljk1LTEuNDEtMS40MS0zLjU0IDMuNTQtMS40MS0xLjQxLTEuNDEgMS40MUwxMS4wNSAxNSAxNiAxMC4wNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2VjdXJpdHlVcGRhdGVXYXJuaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxNWgydjJoLTJ6TTExIDdoMnY2aC0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxSDdjLTEuMSAwLTEuOTkuOS0xLjk5IDJ2MThjMCAxLjEuODkgMiAxLjk5IDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxN0g3VjZoMTB2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNlY3VyaXR5VXBkYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDN2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0ySDdjLTEuMSAwLTIgLjktMiAyem0xMiAxNUg3VjZoMTB2MTJ6bS0xLTZoLTNWOGgtMnY0SDhsNCA0IDQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2VsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuNDEgMTEuNDEtOC44My04LjgzYy0uMzctLjM3LS44OC0uNTgtMS40MS0uNThINGMtMS4xIDAtMiAuOS0yIDJ2Ny4xN2MwIC41My4yMSAxLjA0LjU5IDEuNDFsOC44MyA4LjgzYy43OC43OCAyLjA1Ljc4IDIuODMgMGw3LjE3LTcuMTdjLjc4LS43OC43OC0yLjA0LS4wMS0yLjgzek02LjUgOEM1LjY3IDggNSA3LjMzIDUgNi41UzUuNjcgNSA2LjUgNSA4IDUuNjcgOCA2LjUgNy4zMyA4IDYuNSA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZW5kVG9Nb2JpbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxN2gydjRjMCAxLjEtLjkgMi0yIDJIN2MtMS4xIDAtMi0uOS0yLTJWM2MwLTEuMS45LTEuOTkgMi0xLjk5TDE3IDFjMS4xIDAgMiAuOSAyIDJ2NGgtMlY2SDd2MTJoMTB2LTF6bTUtNS00LTR2M2gtNXYyaDV2M2w0LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNldHRpbmdzU3VnZ2VzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjQxIDYuNTkgMTUgNS41bDIuNDEtMS4wOUwxOC41IDJsMS4wOSAyLjQxTDIyIDUuNWwtMi40MSAxLjA5TDE4LjUgOWwtMS4wOS0yLjQxem0zLjg3IDYuMTNMMjAuNSAxMWwtLjc4IDEuNzItMS43Mi43OCAxLjcyLjc4Ljc4IDEuNzIuNzgtMS43MkwyMyAxMy41bC0xLjcyLS43OHptLTUuMDQgMS42NSAxLjk0IDEuNDctMi41IDQuMzMtMi4yNC0uOTRjLS4yLjEzLS40Mi4yNi0uNjQuMzdsLS4zIDIuNGgtNWwtLjMtMi40MWMtLjIyLS4xMS0uNDMtLjIzLS42NC0uMzdsLTIuMjQuOTQtMi41LTQuMzMgMS45NC0xLjQ3Yy0uMDEtLjExLS4wMS0uMjQtLjAxLS4zNnMwLS4yNS4wMS0uMzdsLTEuOTQtMS40NyAyLjUtNC4zMyAyLjI0Ljk0Yy4yLS4xMy40Mi0uMjYuNjQtLjM3TDcuNSA2aDVsLjMgMi40MWMuMjIuMTEuNDMuMjMuNjQuMzdsMi4yNC0uOTQgMi41IDQuMzMtMS45NCAxLjQ3Yy4wMS4xMi4wMS4yNC4wMS4zN3MwIC4yNC0uMDEuMzZ6TTEzIDE0YzAtMS42Ni0xLjM0LTMtMy0zcy0zIDEuMzQtMyAzIDEuMzQgMyAzIDMgMy0xLjM0IDMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2V0dGluZ3NTeXN0ZW1EYXlkcmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTZoNi41YTIuNSAyLjUgMCAwIDAgMC01aC0uMDVjLS4yNC0xLjY5LTEuNjktMy0zLjQ1LTMtMS40IDAtMi42LjgzLTMuMTYgMi4wMmgtLjE2QTIuOTk0IDIuOTk0IDAgMCAwIDYgMTNjMCAxLjY2IDEuMzQgMyAzIDN6TTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2LjAxSDNWNC45OWgxOHYxNC4wMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2hhcmVMb2NhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuMDIgMTkuOTN2Mi4wMmMyLjAxLS4yIDMuODQtMSA1LjMyLTIuMjFsLTEuNDItMS40M2E3Ljk0MSA3Ljk0MSAwIDAgMS0zLjkgMS42MnpNNC4wMyAxMmMwLTQuMDUgMy4wMy03LjQxIDYuOTUtNy45M1YyLjA1QzUuOTUgMi41OCAyLjAzIDYuODQgMi4wMyAxMmMwIDUuMTYgMy45MiA5LjQyIDguOTUgOS45NXYtMi4wMmMtMy45Mi0uNTItNi45NS0zLjg4LTYuOTUtNy45M3pNMTkuOTUgMTFoMi4wMmMtLjItMi4wMS0xLTMuODQtMi4yMS01LjMybC0xLjQzIDEuNDNjLjg2IDEuMSAxLjQ0IDIuNDMgMS42MiAzLjg5ek0xOC4zNCA0LjI2YTkuOTgxIDkuOTgxIDAgMCAwLTUuMzItMi4yMXYyLjAyYzEuNDYuMTggMi43OS43NiAzLjkgMS42MmwxLjQyLTEuNDN6TTE4LjMzIDE2LjlsMS40MyAxLjQyQTkuOTQ5IDkuOTQ5IDAgMCAwIDIxLjk3IDEzaC0yLjAyYTcuOTQxIDcuOTQxIDAgMCAxLTEuNjIgMy45elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxMS4xQzE2IDguNjEgMTQuMSA3IDEyIDdzLTQgMS42MS00IDQuMWMwIDEuNjYgMS4zMyAzLjYzIDQgNS45IDIuNjctMi4yNyA0LTQuMjQgNC01Ljl6bS00IC45YTEuMDcxIDEuMDcxIDAgMCAxIDAtMi4xNEExLjA3MSAxLjA3MSAwIDAgMSAxMiAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2hvcnRjdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxIDExLTYtNnY1SDhjLTIuNzYgMC01IDIuMjQtNSA1djRoMnYtNGMwLTEuNjUgMS4zNS0zIDMtM2g3djVsNi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxDZWxsdWxhcjBCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2LjgzVjIwSDYuODNMMjAgNi44M00yMiAyIDIgMjJoMjBWMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsQ2VsbHVsYXI0QmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyMmgyMFYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxDZWxsdWxhckFsdDFCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE0aDN2Nkg1di02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxDZWxsdWxhckFsdDJCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE0aDN2Nkg1di02em02LTVoM3YxMWgtM1Y5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxDZWxsdWxhckFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDRoM3YxNmgtM3pNNSAxNGgzdjZINXptNi01aDN2MTFoLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbENlbGx1bGFyQ29ubmVjdGVkTm9JbnRlcm5ldDBCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOGgydi04aC0ydjh6bTAgNGgydi0yaC0ydjJ6bS0yLTJ2MkgyTDIyIDJ2NmgtMlY2LjgzTDYuODMgMjBIMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbENlbGx1bGFyQ29ubmVjdGVkTm9JbnRlcm5ldDRCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE4aDJ2LThoLTJ2OHptMCA0aDJ2LTJoLTJ2MnpNMiAyMmgxNlY4aDRWMkwyIDIyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxDZWxsdWxhck5vU2ltIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0tNjE4LTI4NzJINzgyVjcyOEgtNjE4ek0tMSAwaDI2djI0SC0xem0xIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguOTkgNWMwLTEuMS0uODktMi0xLjk5LTJoLTdMNy42NiA1LjM0IDE5IDE2LjY4IDE4Ljk5IDV6TTMuNjUgMy44OCAyLjM4IDUuMTUgNSA3Ljc3VjE5YzAgMS4xLjkgMiAyIDJoMTAuMDFjLjM1IDAgLjY3LS4xLjk2LS4yNmwxLjg4IDEuODggMS4yNy0xLjI3TDMuNjUgMy44OHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNLjAxIDBoMjR2MjRoLTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxDZWxsdWxhck5vZGF0YSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTNoLTl2OUgyTDIyIDJ2MTF6bS0xIDIuNDFMMTkuNTkgMTRsLTIuMDkgMi4wOUwxNS40MSAxNCAxNCAxNS40MWwyLjA5IDIuMDlMMTQgMTkuNTkgMTUuNDEgMjFsMi4wOS0yLjA4TDE5LjU5IDIxIDIxIDE5LjU5bC0yLjA4LTIuMDlMMjEgMTUuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbENlbGx1bGFyTnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDYuODNWMjBINi44M0wyMCA2LjgzTTIyIDIgMiAyMmgyMFYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxDZWxsdWxhck9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxIDEtOC41OSA4LjU5TDIxIDE4LjE4VjF6TTQuNzcgNC41IDMuNSA1Ljc3bDYuMzYgNi4zNkwxIDIxaDE3LjczbDIgMkwyMiAyMS43MyA0Ljc3IDQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsV2lmaTBCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2YzMuMzMgMCA2LjQ5IDEuMDggOS4wOCAzLjA3TDEyIDE4LjE3bC05LjA4LTkuMUM1LjUxIDcuMDggOC42NyA2IDEyIDZtMC0yQzcuMzEgNCAzLjA3IDUuOSAwIDguOThMMTIgMjEgMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxXaWZpNEJhckxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjk4IDExIDI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4bDYuMzUgNi4zNkwxMiAyMWwzLjA1LTMuMDVWMTVjMC0uNDUuMDktLjg4LjIzLTEuMjkuNTQtMS41NyAyLjAxLTIuNzEgMy43Ny0yLjcxaDIuOTN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDE2di0xYzAtMS4xLS45LTItMi0ycy0yIC45LTIgMnYxYy0uNTUgMC0xIC40NS0xIDF2M2MwIC41NS40NSAxIDEgMWg0Yy41NSAwIDEtLjQ1IDEtMXYtM2MwLS41NS0uNDUtMS0xLTF6bS0xIDBoLTJ2LTFjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbFdpZmk0QmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMDEgMjEuNDkgMjMuNjQgN2MtLjQ1LS4zNC00LjkzLTQtMTEuNjQtNEM1LjI4IDMgLjgxIDYuNjYuMzYgN2wxMS42MyAxNC40OS4wMS4wMS4wMS0uMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbFdpZmlCYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4TDEyIDIxdi05aDguOTlMMjQgOC45OHpNMTkuNTkgMTRsLTIuMDkgMi4wOUwxNS40MSAxNCAxNCAxNS40MWwyLjA5IDIuMDlMMTQgMTkuNTkgMTUuNDEgMjFsMi4wOS0yLjA4TDE5LjU5IDIxIDIxIDE5LjU5bC0yLjA4LTIuMDlMMjEgMTUuNDEgMTkuNTkgMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbFdpZmlDb25uZWN0ZWROb0ludGVybmV0NCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThMMTIgMjF2LTloOC45OUwyNCA4Ljk4ek0xOS41OSAxNGwtMi4wOSAyLjA5TDE1LjQxIDE0IDE0IDE1LjQxbDIuMDkgMi4wOUwxNCAxOS41OSAxNS40MSAyMWwyLjA5LTIuMDhMMTkuNTkgMjEgMjEgMTkuNTlsLTIuMDgtMi4wOUwyMSAxNS40MSAxOS41OSAxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsV2lmaU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzLjY0IDdjLS40NS0uMzQtNC45My00LTExLjY0LTQtMS41IDAtMi44OS4xOS00LjE1LjQ4TDE4LjE4IDEzLjggMjMuNjQgN3ptLTYuNiA4LjIyTDMuMjcgMS40NCAyIDIuNzJsMi4wNSAyLjA2QzEuOTEgNS43Ni41OSA2LjgyLjM2IDdsMTEuNjMgMTQuNDkuMDEuMDEuMDEtLjAxIDMuOS00Ljg2IDMuMzIgMy4zMiAxLjI3LTEuMjctMy40Ni0zLjQ2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxXaWZpU3RhdHVzYmFyNEJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4TDEyIDIxIDI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsV2lmaVN0YXR1c2JhckNvbm5lY3RlZE5vSW50ZXJuZXQ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThMMTIgMjFsNS01LjAxVjhoNS45MkMxOS45NyA1LjUxIDE2LjE2IDQgMTIgNHpNMTkgMThoMnYyaC0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxMGgydjZoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbFdpZmlTdGF0dXNiYXJOdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThMMTIgMjEgMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0ek0yLjkyIDkuMDdDNS41MSA3LjA4IDguNjcgNiAxMiA2czYuNDkgMS4wOCA5LjA4IDMuMDdMMTIgMTguMTdsLTkuMDgtOS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaW1DYXJkRG93bmxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDJoLThMNCA4djEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTYgMTUtNC00aDNWOS4wMkwxMyA5djRoM2wtNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcGxpdHNjcmVlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNHY1SDZWNGgxMm0wLTJINmMtMS4xIDAtMiAuOS0yIDJ2NWMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTN2NUg2di01aDEybTAtMkg2Yy0xLjEgMC0yIC45LTIgMnY1YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJ2LTVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwb3J0c1Njb3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA2SDlWNGgydjJ6bTQtMmgtMnYyaDJWNHpNOSAxNGgydi0ySDl2MnptMTAtNFY4aC0ydjJoMnptMCA0di0yaC0ydjJoMnptLTYgMGgydi0yaC0ydjJ6bTYtMTBoLTJ2MmgyVjR6bS02IDRWNmgtMnYyaDJ6bS02IDJWOGgyVjZIN1Y0SDV2MTZoMnYtOGgydi0ySDd6bTggMmgydi0yaC0ydjJ6bS00LTJ2Mmgydi0yaC0yek05IDh2MmgyVjhIOXptNCAyaDJWOGgtMnYyem0yLTR2MmgyVjZoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNzaWRDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDUuNDcgMTIgMTIgNy42MiA3LjYyIDMgMTFWOC41Mkw3LjgzIDVsNC4zOCA0LjM4TDIxIDN2Mi40N3pNMjEgMTVoLTQuN2wtNC4xNyAzLjM0TDYgMTIuNDFsLTMgMi4xM1YxN2wyLjgtMiA2LjIgNiA1LTRoNHYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RvcmFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMjBoMjB2LTRIMnY0em0yLTNoMnYySDR2LTJ6TTIgNHY0aDIwVjRIMnptNCAzSDRWNWgydjJ6bS00IDdoMjB2LTRIMnY0em0yLTNoMnYySDR2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN0b3JtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC45MyA4QzE2LjcyIDQuMTggMTEuODIgMi44NyA4IDUuMDdjLTEuNDEuODItMi40OCAyLTMuMTYgMy4zNy0uMTMtMi4yLjIyLTQuNCAxLjAyLTYuNDRIMy43NEMyLjIgNi40OSAyLjUyIDExLjU4IDUuMDcgMTZhNy45NiA3Ljk2IDAgMCAwIDQuODYgMy43MmMxLjk4LjUzIDQuMTYuMzEgNi4wNy0uNzkgMS40MS0uODIgMi40OC0yIDMuMTYtMy4zNy4xMyAyLjItLjIxIDQuNC0xLjAxIDYuNDRoMi4xMWMxLjUzLTQuNDkgMS4yMi05LjU4LTEuMzMtMTR6TTE1IDE3LjJBNi4wMTIgNi4wMTIgMCAwIDEgNi44IDE1Yy0uMTEtLjItLjIxLS40LS4zLS42LTEuMi0yLjc2LS4xNy02LjA2IDIuNS03LjYgMi44Ni0xLjY1IDYuNTQtLjY3IDguMiAyLjIuMTEuMi4yMS40LjMuNiAxLjIgMi43Ni4xNyA2LjA2LTIuNSA3LjZ6TTEyIDEwYzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMm0wLTJjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdW1tYXJpemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDNINWMtMS4xIDAtMS45OS45LTEuOTkgMkwzIDE5YzAgMS4xLjg5IDIgMS45OSAySDE5YzEuMSAwIDItLjkgMi0yVjlsLTYtNnpNOCAxN2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0wLTRjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMC00Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTYgMVY0LjVsNS41IDUuNUgxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3lzdGVtU2VjdXJpdHlVcGRhdGVHb29kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxSDdjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxN0g3VjZoMTB2MTJ6bS0xLTcuOTUtMS40MS0xLjQxLTMuNTQgMy41NC0xLjQxLTEuNDEtMS40MSAxLjQxTDExLjA1IDE1IDE2IDEwLjA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTeXN0ZW1TZWN1cml0eVVwZGF0ZVdhcm5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE1aDJ2MmgtMnpNMTEgN2gydjZoLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDFIN2MtMS4xIDAtMS45OS45LTEuOTkgMnYxOGMwIDEuMS44OSAyIDEuOTkgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE3SDdWNmgxMHYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3lzdGVtU2VjdXJpdHlVcGRhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgM3YxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJIN2MtMS4xIDAtMiAuOS0yIDJ6bTEyIDE1SDdWNmgxMHYxMnptLTEtNmgtM1Y4aC0ydjRIOGw0IDQgNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUYXNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAySDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNCAyMGMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bS0zLjA2IDE2TDcuNCAxNC40NmwxLjQxLTEuNDEgMi4xMiAyLjEyIDQuMjQtNC4yNCAxLjQxIDEuNDFMMTAuOTQgMTh6TTEzIDlWMy41TDE4LjUgOUgxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGhlcm1vc3RhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTNWNWMwLTEuNjYtMS4zNC0zLTMtM1M5IDMuMzQgOSA1djhjLTEuMjEuOTEtMiAyLjM3LTIgNCAwIDIuNzYgMi4yNCA1IDUgNXM1LTIuMjQgNS01YzAtMS42My0uNzktMy4wOS0yLTR6bS00LTJWNWMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2MWgtMXYxaDF2MmgtMXYxaDF2MWgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGltZXIxMFNlbGVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDh2OGgtM1Y4aDNtMC0zaC0zQzguMzQgNSA3IDYuMzQgNyA4djhjMCAxLjY2IDEuMzQgMyAzIDNoM2MxLjY2IDAgMy0xLjM0IDMtM1Y4YzAtMS42Ni0xLjM0LTMtMy0zek0xIDhoMnYxMWgzVjVIMXYzem0xNy41IDNjLS44MyAwLTEuNS42OC0xLjUgMS41djJjMCAuODIuNjcgMS41IDEuNSAxLjVIMjF2MWgtNHYyaDQuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJjMC0uODMtLjY3LTEuNS0xLjUtMS41SDE5di0xaDR2LTJoLTQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGltZXIzU2VsZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTF2MmgtNHYxaDIuNWMuODMgMCAxLjUuNjggMS41IDEuNXYyYzAgLjgzLS42NyAxLjUtMS41IDEuNUgxNXYtMmg0di0xaC0yLjVjLS44MiAwLTEuNS0uNjgtMS41LTEuNXYtMmMwLS44Mi42OC0xLjUgMS41LTEuNUgyMXpNNCA1djNoNnYyLjVINHYzaDZWMTZINHYzaDZjMS42NiAwIDMtMS4zNCAzLTN2LTEuOWEyLjEgMi4xIDAgMCAwLTIuMS0yLjFBMi4xIDIuMSAwIDAgMCAxMyA5LjlWOGMwLTEuNjYtMS4zNC0zLTMtM0g0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUdW5nc3RlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTloMnYzaC0yek0yIDExaDN2Mkgyek0xOSAxMWgzdjJoLTN6TTE1Ljg5NCAxNy44MDFsMS40MDctMS40MDcgMi4xMjIgMi4xMjItMS40MDggMS40MDd6TTQuNTg0IDE4LjUwOWwyLjEyMS0yLjEyMiAxLjQwOCAxLjQwNy0yLjEyMiAyLjEyMnpNMTUgOC4wMlYzSDl2NS4wMmMtMS4yMS45Mi0yIDIuMzUtMiAzLjk4IDAgMi43NiAyLjI0IDUgNSA1czUtMi4yNCA1LTVjMC0xLjYzLS43OS0zLjA2LTItMy45OHpNMTEgNWgydjIuMWMtLjMyLS4wNi0uNjYtLjEtMS0uMXMtLjY4LjA0LTEgLjFWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVXNiT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgOGg0djRoLTF2MmMwIC4zNC0uMDguNjYtLjIzLjk0TDE2IDEzLjE3VjEyaC0xVjh6bS00IC4xNyAyIDJWNmgybC0zLTQtMyA0aDJ2Mi4xN3pNMTMgMTZ2Mi4yOGMuNi4zNCAxIC45OCAxIDEuNzIgMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yYzAtLjc0LjQtMS4zNyAxLTEuNzJWMTZIOGMtMS4xMSAwLTItLjg5LTItMnYtMi4yOGMtLjYtLjM0LTEtLjk4LTEtMS43MiAwLS41OS4yNi0xLjEzLjY4LTEuNDlMMS4zOSA0LjIyIDIuOCAyLjgxbDE4LjM4IDE4LjM4LTEuNDEgMS40MS02LjYtNi42SDEzem0tMi0ydi0uMTdsLTIuNTEtMi41MWMtLjE0LjE2LS4zMS4yOS0uNDkuNFYxNGgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRVc2IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA3djRoMXYyaC0zVjVoMmwtMy00LTMgNGgydjhIOHYtMi4wN2MuNy0uMzcgMS4yLTEuMDggMS4yLTEuOTMgMC0xLjIxLS45OS0yLjItMi4yLTIuMi0xLjIxIDAtMi4yLjk5LTIuMiAyLjIgMCAuODUuNSAxLjU2IDEuMiAxLjkzVjEzYzAgMS4xMS44OSAyIDIgMmgzdjMuMDVjLS43MS4zNy0xLjIgMS4xLTEuMiAxLjk1YTIuMiAyLjIgMCAwIDAgNC40IDBjMC0uODUtLjQ5LTEuNTgtMS4yLTEuOTVWMTVoM2MxLjExIDAgMi0uODkgMi0ydi0yaDFWN2gtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2FsbHBhcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA0aDdWMkg0Yy0xLjEgMC0yIC45LTIgMnY3aDJWNHptNiA5LTQgNWgxMmwtMy00LTIuMDMgMi43MUwxMCAxM3ptNy00LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41UzE0IDcuNjcgMTQgOC41cy42NyAxLjUgMS41IDEuNVMxNyA5LjMzIDE3IDguNXpNMjAgMmgtN3YyaDd2N2gyVjRjMC0xLjEtLjktMi0yLTJ6bTAgMThoLTd2Mmg3YzEuMSAwIDItLjkgMi0ydi03aC0ydjd6TTQgMTNIMnY3YzAgMS4xLjkgMiAyIDJoN3YtMkg0di03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXYXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuOTggMTRIMjJoLS4wMnpNNS4zNSAxM2MxLjE5IDAgMS40MiAxIDMuMzMgMSAxLjk1IDAgMi4wOS0xIDMuMzMtMSAxLjE5IDAgMS40MiAxIDMuMzMgMSAxLjk1IDAgMi4wOS0xIDMuMzMtMSAxLjE5IDAgMS40Ljk4IDMuMzEgMXYtMmMtMS4xOSAwLTEuNDItMS0zLjMzLTEtMS45NSAwLTIuMDkgMS0zLjMzIDEtMS4xOSAwLTEuNDItMS0zLjMzLTEtMS45NSAwLTIuMDkgMS0zLjMzIDEtMS4xOSAwLTEuNDItMS0zLjMzLTEtMS45NSAwLTIuMDkgMS0zLjMzIDF2MmMxLjkgMCAyLjE3LTEgMy4zNS0xem0xMy4zMiAyYy0xLjk1IDAtMi4wOSAxLTMuMzMgMS0xLjE5IDAtMS40Mi0xLTMuMzMtMS0xLjk1IDAtMi4xIDEtMy4zNCAxLTEuMjQgMC0xLjM4LTEtMy4zMy0xLTEuOTUgMC0yLjEgMS0zLjM0IDF2MmMxLjk1IDAgMi4xMS0xIDMuMzQtMSAxLjI0IDAgMS4zOCAxIDMuMzMgMSAxLjk1IDAgMi4xLTEgMy4zNC0xIDEuMTkgMCAxLjQyIDEgMy4zMyAxIDEuOTQgMCAyLjA5LTEgMy4zMy0xIDEuMTkgMCAxLjQyIDEgMy4zMyAxdi0yYy0xLjI0IDAtMS4zOC0xLTMuMzMtMXpNNS4zNSA5YzEuMTkgMCAxLjQyIDEgMy4zMyAxIDEuOTUgMCAyLjA5LTEgMy4zMy0xIDEuMTkgMCAxLjQyIDEgMy4zMyAxIDEuOTUgMCAyLjA5LTEgMy4zMy0xIDEuMTkgMCAxLjQuOTggMy4zMSAxVjhjLTEuMTkgMC0xLjQyLTEtMy4zMy0xLTEuOTUgMC0yLjA5IDEtMy4zMyAxLTEuMTkgMC0xLjQyLTEtMy4zMy0xLTEuOTUgMC0yLjA5IDEtMy4zMyAxLTEuMTkgMC0xLjQyLTEtMy4zMy0xQzMuMzggNyAzLjI0IDggMiA4djJjMS45IDAgMi4xNy0xIDMuMzUtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2lkZ2V0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDEzdjhoOHYtOGgtOHpNMyAyMWg4di04SDN2OHpNMyAzdjhoOFYzSDN6bTEzLjY2LTEuMzFMMTEgNy4zNCAxNi42NiAxM2w1LjY2LTUuNjYtNS42Ni01LjY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXaWZpMUJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUzIDE3LjQ2IDEyIDIxbC0zLjUzLTMuNTRjLjktLjkgMi4xNS0xLjQ2IDMuNTMtMS40NnMyLjYzLjU2IDMuNTMgMS40NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2lmaTJCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEwYzMuMDMgMCA1Ljc4IDEuMjMgNy43NiAzLjIybC0yLjEyIDIuMTJBNy45NjcgNy45NjcgMCAwIDAgMTIgMTNjLTIuMiAwLTQuMi45LTUuNjQgMi4zNWwtMi4xMi0yLjEyQzYuMjIgMTEuMjMgOC45NyAxMCAxMiAxMHptMCA2Yy0xLjM4IDAtMi42My41Ni0zLjUzIDEuNDZMMTIgMjFsMy41My0zLjU0QTQuOTggNC45OCAwIDAgMCAxMiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2lmaUNhbGxpbmczIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi40OSAzYy0yLjIxIDAtNC4yMS45LTUuNjYgMi4zNGwxLjA2IDEuMDZhNi40NyA2LjQ3IDAgMCAxIDkuMTggMGwxLjA2LTEuMDZBNy45MzIgNy45MzIgMCAwIDAgMTYuNDkgM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuMDMgNy40NmE1LjAyMiA1LjAyMiAwIDAgMC03LjA4IDBsMS4wNiAxLjA2Yy42My0uNjMgMS41MS0xLjAzIDIuNDctMS4wM3MxLjg0LjM5IDIuNDcgMS4wM2wxLjA4LTEuMDZ6TTE1LjA4IDkuNTkgMTYuNDkgMTFsMS40MS0xLjQxYy0uMzYtLjM3LS44Ni0uNTktMS40MS0uNTlzLTEuMDUuMjItMS40MS41OXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUuNjMgMTQuNC0yLjUyIDIuNWMtMi41LTEuNDMtNC41Ny0zLjUtNi02bDIuNS0yLjUyYy4yMy0uMjQuMzMtLjU3LjI3LS45TDkuMTMgMy44Yy0uMDktLjQ2LS41LS44LS45OC0uOEg0Yy0uNTYgMC0xLjAzLjQ3LTEgMS4wMy4xNyAyLjg5IDEuMDUgNS42IDIuNDMgNy45NyAxLjU4IDIuNzMgMy44NSA0Ljk5IDYuNTcgNi41NyAyLjM3IDEuMzcgNS4wOCAyLjI2IDcuOTcgMi40My41Ni4wMyAxLjAzLS40NCAxLjAzLTF2LTQuMTVjMC0uNDgtLjM0LS44OS0uOC0uOThsLTMuNjctLjczYS45ODUuOTg1IDAgMCAwLS45LjI2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXaWZpQ2hhbm5lbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDNjLTIuNTEgMC0zLjc3IDUuNjEtNC40IDEwLjU3QzEwLjc5IDEwLjY2IDkuNjEgOCA4IDggNC40MyA4IDMgMjEgMyAyMWgyLjAxYy42MS01LjI3IDItOS44MiAyLjk5LTEwLjg3Ljk4IDEuMDUgMi4zOCA1LjYxIDIuOTkgMTAuODdIMTNjLjUtMi41MyAyLTYgMy02czIuNSAzLjUzIDMgNmgycy0uNS0xOC01LTE4em0wIDEwYy0uOTkgMC0xLjgyLjYyLTIuNSAxLjUuNTctNC43NyAxLjU0LTguNjIgMi41LTkuNDQuOTcuODEgMS45MSA0LjY3IDIuNDkgOS40M0MxNy44MSAxMy42MiAxNi45OCAxMyAxNiAxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2lmaUZpbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxNGMwLTMuMzYgMi42NC02IDYtNiAyLjIgMCA0LjA4IDEuMTMgNS4xMyAyLjg2TDI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4TDEyIDIxbDEuODYtMS44N0MxMi4xNCAxOC4wOSAxMSAxNi4yIDExIDE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxNGMwLTIuMjQtMS43Ni00LTQtNHMtNCAxLjc2LTQgNCAxLjc2IDQgNCA0Yy43NSAwIDEuNDQtLjIxIDIuMDMtLjU2TDIxLjU5IDIwIDIzIDE4LjU5bC0yLjU2LTIuNTZjLjM1LS41OS41Ni0xLjI4LjU2LTIuMDN6bS02IDBjMC0xLjEyLjg4LTIgMi0yczIgLjg4IDIgMi0uODggMi0yIDItMi0uODgtMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXaWZpTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuOTggMTEgMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThsNi4zNSA2LjM2TDEyIDIxbDMuMDUtMy4wNVYxNWMwLS40NS4wOS0uODguMjMtMS4yOS41NC0xLjU3IDIuMDEtMi43MSAzLjc3LTIuNzFoMi45M3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTZ2LTFjMC0xLjEtLjktMi0yLTJzLTIgLjktMiAydjFjLS41NSAwLTEgLjQ1LTEgMXYzYzAgLjU1LjQ1IDEgMSAxaDRjLjU1IDAgMS0uNDUgMS0xdi0zYzAtLjU1LS40NS0xLTEtMXptLTEgMGgtMnYtMWMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2lmaVBhc3N3b3JkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMgMTl2LTFjMC0xLjEtLjktMi0yLTJzLTIgLjktMiAydjFjLS41NSAwLTEgLjQ1LTEgMXYzYzAgLjU1LjQ1IDEgMSAxaDRjLjU1IDAgMS0uNDUgMS0xdi0zYzAtLjU1LS40NS0xLTEtMXptLTEgMGgtMnYtMWMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2MXptMi0xMC4wMi0yLjEyIDIuMTNDMTkuMzUgOC41NyAxNS44NSA3IDEyIDdzLTcuMzUgMS41Ny05Ljg4IDQuMTFMMCA4Ljk4QzMuMDcgNS45IDcuMzEgNCAxMiA0czguOTMgMS45IDEyIDQuOTh6TTEyIDEwYzMuMDMgMCA1Ljc4IDEuMjMgNy43NiAzLjIybC0yLjEyIDIuMTJBNy45NjcgNy45NjcgMCAwIDAgMTIgMTNjLTIuMiAwLTQuMi45LTUuNjQgMi4zNWwtMi4xMi0yLjEyQzYuMjIgMTEuMjMgOC45NyAxMCAxMiAxMHptMy41MyA3LjQ2TDEyIDIxbC0zLjUzLTMuNTRjLjktLjkgMi4xNS0xLjQ2IDMuNTMtMS40NnMyLjYzLjU2IDMuNTMgMS40NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2lmaVRldGhlcmluZ0Vycm9yUm91bmRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgN2MtMy4zMSAwLTYgMi42OS02IDYgMCAxLjY2LjY4IDMuMTUgMS43NiA0LjI0bDEuNDItMS40MkEzLjkzNCAzLjkzNCAwIDAgMSA4IDEzYzAtMi4yMSAxLjc5LTQgNC00czQgMS43OSA0IDRjMCAxLjExLS40NSAyLjEtMS4xOCAyLjgybDEuNDIgMS40MkE2LjAwMyA2LjAwMyAwIDAgMCAxOCAxM2MwLTMuMzEtMi42OS02LTYtNnptMC00QzYuNDggMyAyIDcuNDggMiAxM2MwIDIuNzYgMS4xMiA1LjI2IDIuOTMgNy4wN2wxLjQyLTEuNDJBNy45NCA3Ljk0IDAgMCAxIDQgMTNjMC00LjQyIDMuNTgtOCA4LTggMi41MyAwIDQuNzggMS4xNyA2LjI0IDNoMi40MkMxOC45MyA1LjAxIDE1LjcgMyAxMiAzem0wIDhjLTEuMSAwLTIgLjktMiAyIDAgLjU1LjIzIDEuMDUuNTkgMS40MS4zNi4zNi44Ni41OSAxLjQxLjU5czEuMDUtLjIzIDEuNDEtLjU5Yy4zNi0uMzYuNTktLjg2LjU5LTEuNDEgMC0xLjEtLjktMi0yLTJ6bTgtMWgydjZoLTJ2LTZ6bTAgOGgydjJoLTJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdpZmlUZXRoZXJpbmdFcnJvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgN2MtMy4zMSAwLTYgMi42OS02IDYgMCAxLjY2LjY4IDMuMTUgMS43NiA0LjI0bDEuNDItMS40MkEzLjkzNCAzLjkzNCAwIDAgMSA4IDEzYzAtMi4yMSAxLjc5LTQgNC00czQgMS43OSA0IDRjMCAxLjExLS40NSAyLjEtMS4xOCAyLjgybDEuNDIgMS40MkE2LjAwMyA2LjAwMyAwIDAgMCAxOCAxM2MwLTMuMzEtMi42OS02LTYtNnptMC00QzYuNDggMyAyIDcuNDggMiAxM2MwIDIuNzYgMS4xMiA1LjI2IDIuOTMgNy4wN2wxLjQyLTEuNDJBNy45NCA3Ljk0IDAgMCAxIDQgMTNjMC00LjQyIDMuNTgtOCA4LTggMi41MyAwIDQuNzggMS4xNyA2LjI0IDNoMi40MkMxOC45MyA1LjAxIDE1LjcgMyAxMiAzem0wIDhjLTEuMSAwLTIgLjktMiAyIDAgLjU1LjIzIDEuMDUuNTkgMS40MS4zNi4zNi44Ni41OSAxLjQxLjU5czEuMDUtLjIzIDEuNDEtLjU5Yy4zNi0uMzYuNTktLjg2LjU5LTEuNDEgMC0xLjEtLjktMi0yLTJ6bTgtMWgydjZoLTJ2LTZ6bTAgOGgydjJoLTJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdpZmlUZXRoZXJpbmdPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuODEgMi44MSAxLjM5IDQuMjJsMi42OSAyLjY5QTkuOTU4IDkuOTU4IDAgMCAwIDIgMTNjMCAyLjc2IDEuMTIgNS4yNiAyLjkzIDcuMDdsMS40Mi0xLjQyYTcuOTU3IDcuOTU3IDAgMCAxLS44NC0xMC4zMWwxLjQzIDEuNDNhNi4wMDMgNi4wMDMgMCAwIDAgLjgyIDcuNDdsMS40Mi0xLjQyQTMuOTM0IDMuOTM0IDAgMCAxIDggMTNjMC0uNjMuMTUtMS4yMy40MS0xLjc2bDEuNjEgMS42MWMwIC4wNS0uMDIuMS0uMDIuMTUgMCAuNTUuMjMgMS4wNS41OSAxLjQxLjM2LjM2Ljg2LjU5IDEuNDEuNTkuMDUgMCAuMS0uMDEuMTYtLjAybDcuNjIgNy42MiAxLjQxLTEuNDFMMi44MSAyLjgxek0xNy43IDE0Ljg3Yy4xOS0uNTkuMy0xLjIyLjMtMS44NyAwLTMuMzEtMi42OS02LTYtNi0uNjUgMC0xLjI4LjEtMS44Ny4zbDEuNzEgMS43MUMxMS44OSA5IDExLjk1IDkgMTIgOWMyLjIxIDAgNCAxLjc5IDQgNCAwIC4wNSAwIC4xMS0uMDEuMTZsMS43MSAxLjcxek0xMiA1YzQuNDIgMCA4IDMuNTggOCA4IDAgMS4yMi0uMjcgMi4zNy0uNzcgMy40bDEuNDkgMS40OUE5Ljk1MyA5Ljk1MyAwIDAgMCAyMiAxM2MwLTUuNTItNC40OC0xMC0xMC0xMC0xLjc4IDAtMy40NC40Ni00Ljg5IDEuMjhsMS40OCAxLjQ4QzkuNjMgNS4yNyAxMC43OCA1IDEyIDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdpZmlUZXRoZXJpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMWMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTYgMmMwLTMuMzEtMi42OS02LTYtNnMtNiAyLjY5LTYgNmMwIDIuMjIgMS4yMSA0LjE1IDMgNS4xOWwxLTEuNzRjLTEuMTktLjctMi0xLjk3LTItMy40NSAwLTIuMjEgMS43OS00IDQtNHM0IDEuNzkgNCA0YzAgMS40OC0uODEgMi43NS0yIDMuNDVsMSAxLjc0YzEuNzktMS4wNCAzLTIuOTcgMy01LjE5ek0xMiAzQzYuNDggMyAyIDcuNDggMiAxM2MwIDMuNyAyLjAxIDYuOTIgNC45OSA4LjY1bDEtMS43M0M1LjYxIDE4LjUzIDQgMTUuOTYgNCAxM2MwLTQuNDIgMy41OC04IDgtOHM4IDMuNTggOCA4YzAgMi45Ni0xLjYxIDUuNTMtNCA2LjkybDEgMS43M2MyLjk5LTEuNzMgNS00Ljk1IDUtOC42NSAwLTUuNTItNC40OC0xMC0xMC0xMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRkQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgOS45OWgydjdINnptOCAzaDJ2NGgtMnptLTQtNmgydjEwaC0yek0yMCA3VjRoLTJ2M2gtM3YyaDN2M2gyVjloM1Y3em0tMiAxMkg0VjVoMTJWM0g0Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi01aC0ydjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZENvbW1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjk5IDRjMC0xLjEtLjg5LTItMS45OS0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTRsNCA0LS4wMS0xOHpNMTcgMTFoLTR2NGgtMnYtNEg3VjloNFY1aDJ2NGg0djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFsaWduSG9yaXpvbnRhbENlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDJoMnY1aDh2M2gtOHY0aDV2M2gtNXY1aC0ydi01SDZ2LTNoNXYtNEgzVjdoOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWxpZ25Ib3Jpem9udGFsTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMjJIMlYyaDJ2MjB6TTIyIDdINnYzaDE2Vjd6bS02IDdINnYzaDEwdi0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBbGlnbkhvcml6b250YWxSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJoMnYyMGgtMlYyek0yIDEwaDE2VjdIMnYzem02IDdoMTB2LTNIOHYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBbGlnblZlcnRpY2FsQm90dG9tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMjJIMnYtMmgyMHYyek0xMCAySDd2MTZoM1Yyem03IDZoLTN2MTBoM1Y4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBbGlnblZlcnRpY2FsQ2VudGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTFoLTVWNmgtM3Y1aC00VjNIN3Y4SDEuODR2Mkg3djhoM3YtOGg0djVoM3YtNWg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBbGlnblZlcnRpY2FsVG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMnYySDJWMmgyMHpNNyAyMmgzVjZIN3YxNnptNy02aDNWNmgtM3YxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXJlYUNoYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxM3Y3aDE4di0xLjVsLTktN0w4IDE3bC01LTR6bTAtNiA0IDMgNS03IDUgNGg0djguOTdsLTkuNC03LjMxLTMuOTggNS40OEwzIDEwLjQ0Vjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEF0dGFjaEZpbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41IDZ2MTEuNWMwIDIuMjEtMS43OSA0LTQgNHMtNC0xLjc5LTQtNFY1YTIuNSAyLjUgMCAwIDEgNSAwdjEwLjVjMCAuNTUtLjQ1IDEtMSAxcy0xLS40NS0xLTFWNkgxMHY5LjVhMi41IDIuNSAwIDAgMCA1IDBWNWMwLTIuMjEtMS43OS00LTQtNFM3IDIuNzkgNyA1djEyLjVjMCAzLjA0IDIuNDYgNS41IDUuNSA1LjVzNS41LTIuNDYgNS41LTUuNVY2aC0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEF0dGFjaE1vbmV5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOCAxMC45Yy0yLjI3LS41OS0zLTEuMi0zLTIuMTUgMC0xLjA5IDEuMDEtMS44NSAyLjctMS44NSAxLjc4IDAgMi40NC44NSAyLjUgMi4xaDIuMjFjLS4wNy0xLjcyLTEuMTItMy4zLTMuMjEtMy44MVYzaC0zdjIuMTZjLTEuOTQuNDItMy41IDEuNjgtMy41IDMuNjEgMCAyLjMxIDEuOTEgMy40NiA0LjcgNC4xMyAyLjUuNiAzIDEuNDggMyAyLjQxIDAgLjY5LS40OSAxLjc5LTIuNyAxLjc5LTIuMDYgMC0yLjg3LS45Mi0yLjk4LTIuMWgtMi4yYy4xMiAyLjE5IDEuNzYgMy40MiAzLjY4IDMuODNWMjFoM3YtMi4xNWMxLjk1LS4zNyAzLjUtMS41IDMuNS0zLjU1IDAtMi44NC0yLjQzLTMuODEtNC43LTQuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXV0b0dyYXBoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuMDYgOS45NCAxMiA5bDIuMDYtLjk0TDE1IDZsLjk0IDIuMDZMMTggOWwtMi4wNi45NEwxNSAxMmwtLjk0LTIuMDZ6TTQgMTRsLjk0LTIuMDZMNyAxMWwtMi4wNi0uOTRMNCA4bC0uOTQgMi4wNkwxIDExbDIuMDYuOTRMNCAxNHptNC41LTUgMS4wOS0yLjQxTDEyIDUuNSA5LjU5IDQuNDEgOC41IDIgNy40MSA0LjQxIDUgNS41bDIuNDEgMS4wOUw4LjUgOXptLTQgMTEuNSA2LTYuMDEgNCA0TDIzIDguOTNsLTEuNDEtMS40MS03LjA5IDcuOTctNC00TDMgMTlsMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmFyQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDloNHYxMUg0ek0xNiAxM2g0djdoLTR6TTEwIDRoNHYxNmgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQm9yZGVyQWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAzdjE4aDE4VjNIM3ptOCAxNkg1di02aDZ2NnptMC04SDVWNWg2djZ6bTggOGgtNnYtNmg2djZ6bTAtOGgtNlY1aDZ2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQm9yZGVyQm90dG9tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxMUg3djJoMnYtMnptNCA0aC0ydjJoMnYtMnpNOSAzSDd2MmgyVjN6bTQgOGgtMnYyaDJ2LTJ6TTUgM0gzdjJoMlYzem04IDRoLTJ2MmgyVjd6bTQgNGgtMnYyaDJ2LTJ6bS00LThoLTJ2MmgyVjN6bTQgMGgtMnYyaDJWM3ptMiAxMGgydi0yaC0ydjJ6bTAgNGgydi0yaC0ydjJ6TTUgN0gzdjJoMlY3em0xNC00djJoMlYzaC0yem0wIDZoMlY3aC0ydjJ6TTUgMTFIM3YyaDJ2LTJ6TTMgMjFoMTh2LTJIM3Yyem0yLTZIM3YyaDJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJvcmRlckNsZWFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA1aDJWM0g3djJ6bTAgOGgydi0ySDd2MnptMCA4aDJ2LTJIN3Yyem00LTRoMnYtMmgtMnYyem0wIDRoMnYtMmgtMnYyem0tOCAwaDJ2LTJIM3Yyem0wLTRoMnYtMkgzdjJ6bTAtNGgydi0ySDN2MnptMC00aDJWN0gzdjJ6bTAtNGgyVjNIM3Yyem04IDhoMnYtMmgtMnYyem04IDRoMnYtMmgtMnYyem0wLTRoMnYtMmgtMnYyem0wIDhoMnYtMmgtMnYyem0wLTEyaDJWN2gtMnYyem0tOCAwaDJWN2gtMnYyem04LTZ2MmgyVjNoLTJ6bS04IDJoMlYzaC0ydjJ6bTQgMTZoMnYtMmgtMnYyem0wLThoMnYtMmgtMnYyem0wLThoMlYzaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJvcmRlckNvbG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMjRIMnYtNGgyMHY0ek0xMy4wNiA1LjE5bDMuNzUgMy43NUw3Ljc1IDE4SDR2LTMuNzVsOS4wNi05LjA2em00LjgyIDIuNjgtMy43NS0zLjc1IDEuODMtMS44M2EuOTk2Ljk5NiAwIDAgMSAxLjQxIDBsMi4zNCAyLjM0Yy4zOS4zOS4zOSAxLjAyIDAgMS40MWwtMS44MyAxLjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCb3JkZXJIb3Jpem9udGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAyMWgydi0ySDN2MnpNNSA3SDN2MmgyVjd6TTMgMTdoMnYtMkgzdjJ6bTQgNGgydi0ySDd2MnpNNSAzSDN2MmgyVjN6bTQgMEg3djJoMlYzem04IDBoLTJ2MmgyVjN6bS00IDRoLTJ2MmgyVjd6bTAtNGgtMnYyaDJWM3ptNiAxNGgydi0yaC0ydjJ6bS04IDRoMnYtMmgtMnYyem0tOC04aDE4di0ySDN2MnpNMTkgM3YyaDJWM2gtMnptMCA2aDJWN2gtMnYyem0tOCA4aDJ2LTJoLTJ2MnptNCA0aDJ2LTJoLTJ2MnptNCAwaDJ2LTJoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQm9yZGVySW5uZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDIxaDJ2LTJIM3Yyem00IDBoMnYtMkg3djJ6TTUgN0gzdjJoMlY3ek0zIDE3aDJ2LTJIM3Yyek05IDNIN3YyaDJWM3pNNSAzSDN2MmgyVjN6bTEyIDBoLTJ2MmgyVjN6bTIgNmgyVjdoLTJ2MnptMC02djJoMlYzaC0yem0tNCAxOGgydi0yaC0ydjJ6TTEzIDNoLTJ2OEgzdjJoOHY4aDJ2LThoOHYtMmgtOFYzem02IDE4aDJ2LTJoLTJ2MnptMC00aDJ2LTJoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQm9yZGVyTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDIxaDJ2LTJoLTJ2MnptMC00aDJ2LTJoLTJ2MnptMC0xMmgyVjNoLTJ2MnptMCA0aDJWN2gtMnYyem0wIDRoMnYtMmgtMnYyem0tNCA4aDJ2LTJIN3Yyek03IDVoMlYzSDd2MnptMCA4aDJ2LTJIN3Yyem0tNCA4aDJWM0gzdjE4ek0xOSA5aDJWN2gtMnYyem0tNCAxMmgydi0yaC0ydjJ6bTQtNGgydi0yaC0ydjJ6bTAtMTR2MmgyVjNoLTJ6bTAgMTBoMnYtMmgtMnYyem0wIDhoMnYtMmgtMnYyem0tNC04aDJ2LTJoLTJ2MnptMC04aDJWM2gtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCb3JkZXJPdXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDdoLTJ2MmgyVjd6bTAgNGgtMnYyaDJ2LTJ6bTQgMGgtMnYyaDJ2LTJ6TTMgM3YxOGgxOFYzSDN6bTE2IDE2SDVWNWgxNHYxNHptLTYtNGgtMnYyaDJ2LTJ6bS00LTRIN3YyaDJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJvcmRlclJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAyMWgydi0ySDd2MnpNMyA1aDJWM0gzdjJ6bTQgMGgyVjNIN3Yyem0wIDhoMnYtMkg3djJ6bS00IDhoMnYtMkgzdjJ6bTggMGgydi0yaC0ydjJ6bS04LThoMnYtMkgzdjJ6bTAgNGgydi0ySDN2MnptMC04aDJWN0gzdjJ6bTggOGgydi0yaC0ydjJ6bTQtNGgydi0yaC0ydjJ6bTQtMTB2MThoMlYzaC0yem0tNCAxOGgydi0yaC0ydjJ6bTAtMTZoMlYzaC0ydjJ6bS00IDhoMnYtMmgtMnYyem0wLThoMlYzaC0ydjJ6bTAgNGgyVjdoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQm9yZGVyU3R5bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAyMWgydi0yaC0ydjJ6bTQgMGgydi0yaC0ydjJ6TTcgMjFoMnYtMkg3djJ6bTQgMGgydi0yaC0ydjJ6bTgtNGgydi0yaC0ydjJ6bTAtNGgydi0yaC0ydjJ6TTMgM3YxOGgyVjVoMTZWM0gzem0xNiA2aDJWN2gtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCb3JkZXJUb3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDIxaDJ2LTJIN3Yyem0wLThoMnYtMkg3djJ6bTQgMGgydi0yaC0ydjJ6bTAgOGgydi0yaC0ydjJ6bS04LTRoMnYtMkgzdjJ6bTAgNGgydi0ySDN2MnptMC04aDJ2LTJIM3Yyem0wLTRoMlY3SDN2MnptOCA4aDJ2LTJoLTJ2MnptOC04aDJWN2gtMnYyem0wIDRoMnYtMmgtMnYyek0zIDN2MmgxOFYzSDN6bTE2IDE0aDJ2LTJoLTJ2MnptLTQgNGgydi0yaC0ydjJ6TTExIDloMlY3aC0ydjJ6bTggMTJoMnYtMmgtMnYyem0tNC04aDJ2LTJoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQm9yZGVyVmVydGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDloMlY3SDN2MnptMC00aDJWM0gzdjJ6bTQgMTZoMnYtMkg3djJ6bTAtOGgydi0ySDd2MnptLTQgMGgydi0ySDN2MnptMCA4aDJ2LTJIM3Yyem0wLTRoMnYtMkgzdjJ6TTcgNWgyVjNIN3Yyem0xMiAxMmgydi0yaC0ydjJ6bS04IDRoMlYzaC0ydjE4em04IDBoMnYtMmgtMnYyem0wLThoMnYtMmgtMnYyem0wLTEwdjJoMlYzaC0yem0wIDZoMlY3aC0ydjJ6bS00LTRoMlYzaC0ydjJ6bTAgMTZoMnYtMmgtMnYyem0wLThoMnYtMmgtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCdWJibGVDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNy4yXCIsXCJjeVwiOlwiMTQuNFwiLFwiclwiOlwiMy4yXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTQuOFwiLFwiY3lcIjpcIjE4XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuMlwiLFwiY3lcIjpcIjguOFwiLFwiclwiOlwiNC44XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbmRsZXN0aWNrQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDRIN3YySDV2MTJoMnYyaDJ2LTJoMlY2SDl6TTE5IDhoLTJWNGgtMnY0aC0ydjdoMnY1aDJ2LTVoMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2hlY2tsaXN0UnRsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgN0gydjJoOVY3em0wIDhIMnYyaDl2LTJ6bTUuMzQtNEwxMi44IDcuNDZsMS40MS0xLjQxIDIuMTIgMi4xMiA0LjI0LTQuMjRMMjIgNS4zNCAxNi4zNCAxMXptMCA4LTMuNTQtMy41NCAxLjQxLTEuNDEgMi4xMiAyLjEyIDQuMjQtNC4yNEwyMiAxMy4zNCAxNi4zNCAxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2hlY2tsaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgN2gtOXYyaDlWN3ptMCA4aC05djJoOXYtMnpNNS41NCAxMSAyIDcuNDZsMS40MS0xLjQxIDIuMTIgMi4xMiA0LjI0LTQuMjQgMS40MSAxLjQxTDUuNTQgMTF6bTAgOEwyIDE1LjQ2bDEuNDEtMS40MSAyLjEyIDIuMTIgNC4yNC00LjI0IDEuNDEgMS40MUw1LjU0IDE5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREYXRhQXJyYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA0djJoM3YxMmgtM3YyaDVWNHpNNCAyMGg1di0ySDZWNmgzVjRINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGF0YU9iamVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgN3YyYzAgLjU1LS40NSAxLTEgMUgydjRoMWMuNTUgMCAxIC40NSAxIDF2MmMwIDEuNjUgMS4zNSAzIDMgM2gzdi0ySDdjLS41NSAwLTEtLjQ1LTEtMXYtMmMwLTEuMy0uODQtMi40Mi0yLTIuODN2LS4zNEM1LjE2IDExLjQyIDYgMTAuMyA2IDlWN2MwLS41NS40NS0xIDEtMWgzVjRIN0M1LjM1IDQgNCA1LjM1IDQgN3pNMjEgMTBjLS41NSAwLTEtLjQ1LTEtMVY3YzAtMS42NS0xLjM1LTMtMy0zaC0zdjJoM2MuNTUgMCAxIC40NSAxIDF2MmMwIDEuMy44NCAyLjQyIDIgMi44M3YuMzRjLTEuMTYuNDEtMiAxLjUyLTIgMi44M3YyYzAgLjU1LS40NSAxLTEgMWgtM3YyaDNjMS42NSAwIDMtMS4zNSAzLTN2LTJjMC0uNTUuNDUtMSAxLTFoMXYtNGgtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRHJhZ0hhbmRsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDlINHYyaDE2Vjl6TTQgMTVoMTZ2LTJINHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREcmF3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTguODUgMTAuMzkgMS4wNi0xLjA2Yy43OC0uNzguNzgtMi4wNSAwLTIuODNMMTguNSA1LjA5Yy0uNzgtLjc4LTIuMDUtLjc4LTIuODMgMGwtMS4wNiAxLjA2IDQuMjQgNC4yNHptLTUuNjYtMi44M0w0IDE2Ljc2VjIxaDQuMjRsOS4xOS05LjE5LTQuMjQtNC4yNXpNMTkgMTcuNWMwIDIuMTktMi41NCAzLjUtNSAzLjUtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMWMxLjU0IDAgMy0uNzMgMy0xLjUgMC0uNDctLjQ4LS44Ny0xLjIzLTEuMmwxLjQ4LTEuNDhjMS4wNy42MyAxLjc1IDEuNDcgMS43NSAyLjY4ek00LjU4IDEzLjM1QzMuNjEgMTIuNzkgMyAxMi4wNiAzIDExYzAtMS44IDEuODktMi42MyAzLjU2LTMuMzZDNy41OSA3LjE4IDkgNi41NiA5IDZjMC0uNDEtLjc4LTEtMi0xLTEuMjYgMC0xLjguNjEtMS44My42NC0uMzUuNDEtLjk4LjQ2LTEuNC4xMmEuOTkyLjk5MiAwIDAgMS0uMTUtMS4zOEMzLjczIDQuMjQgNC43NiAzIDcgM3M0IDEuMzIgNCAzYzAgMS44Ny0xLjkzIDIuNzItMy42NCAzLjQ3QzYuNDIgOS44OCA1IDEwLjUgNSAxMWMwIC4zMS40My42IDEuMDcuODZsLTEuNDkgMS40OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRWRpdE5vdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDEwaDExdjJIM3YtMnptMC0yaDExVjZIM3Yyem0wIDhoN3YtMkgzdjJ6bTE1LjAxLTMuMTMuNzEtLjcxYS45OTYuOTk2IDAgMCAxIDEuNDEgMGwuNzEuNzFjLjM5LjM5LjM5IDEuMDIgMCAxLjQxbC0uNzEuNzEtMi4xMi0yLjEyem0tLjcxLjcxLTUuMyA1LjNWMjFoMi4xMmw1LjMtNS4zLTIuMTItMi4xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9ybWF0QWxpZ25DZW50ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE1djJoMTB2LTJIN3ptLTQgNmgxOHYtMkgzdjJ6bTAtOGgxOHYtMkgzdjJ6bTQtNnYyaDEwVjdIN3pNMyAzdjJoMThWM0gzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JtYXRBbGlnbkp1c3RpZnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDIxaDE4di0ySDN2MnptMC00aDE4di0ySDN2MnptMC00aDE4di0ySDN2MnptMC00aDE4VjdIM3Yyem0wLTZ2MmgxOFYzSDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcm1hdEFsaWduTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDE1SDN2MmgxMnYtMnptMC04SDN2MmgxMlY3ek0zIDEzaDE4di0ySDN2MnptMCA4aDE4di0ySDN2MnpNMyAzdjJoMThWM0gzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JtYXRBbGlnblJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAyMWgxOHYtMkgzdjJ6bTYtNGgxMnYtMkg5djJ6bS02LTRoMTh2LTJIM3Yyem02LTRoMTJWN0g5djJ6TTMgM3YyaDE4VjNIM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9ybWF0Qm9sZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjYgMTAuNzljLjk3LS42NyAxLjY1LTEuNzcgMS42NS0yLjc5IDAtMi4yNi0xLjc1LTQtNC00SDd2MTRoNy4wNGMyLjA5IDAgMy43MS0xLjcgMy43MS0zLjc5IDAtMS41Mi0uODYtMi44Mi0yLjE1LTMuNDJ6TTEwIDYuNWgzYy44MyAwIDEuNS42NyAxLjUgMS41cy0uNjcgMS41LTEuNSAxLjVoLTN2LTN6bTMuNSA5SDEwdi0zaDMuNWMuODMgMCAxLjUuNjcgMS41IDEuNXMtLjY3IDEuNS0xLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JtYXRDbGVhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuMjcgNSAyIDYuMjdsNi45NyA2Ljk3TDYuNSAxOWgzbDEuNTctMy42NkwxNi43MyAyMSAxOCAxOS43MyAzLjU1IDUuMjcgMy4yNyA1ek02IDV2LjE4TDguODIgOGgyLjRsLS43MiAxLjY4IDIuMSAyLjFMMTQuMjEgOEgyMFY1SDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcm1hdENvbG9yRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjU2IDguOTQgNy42MiAwIDYuMjEgMS40MWwyLjM4IDIuMzgtNS4xNSA1LjE1YTEuNDkgMS40OSAwIDAgMCAwIDIuMTJsNS41IDUuNWMuMjkuMjkuNjguNDQgMS4wNi40NHMuNzctLjE1IDEuMDYtLjQ0bDUuNS01LjVjLjU5LS41OC41OS0xLjUzIDAtMi4xMnpNNS4yMSAxMCAxMCA1LjIxIDE0Ljc5IDEwSDUuMjF6TTE5IDExLjVzLTIgMi4xNy0yIDMuNWMwIDEuMS45IDIgMiAyczItLjkgMi0yYzAtMS4zMy0yLTMuNS0yLTMuNXpNMiAyMGgyMHY0SDJ2LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcm1hdENvbG9yUmVzZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDE0YzAtNC02LTEwLjgtNi0xMC44cy0xLjMzIDEuNTEtMi43MyAzLjUybDguNTkgOC41OWMuMDktLjQyLjE0LS44Ni4xNC0xLjMxem0tLjg4IDMuMTJMMTIuNSAxMi41IDUuMjcgNS4yNyA0IDYuNTVsMy4zMiAzLjMyQzYuNTUgMTEuMzIgNiAxMi43OSA2IDE0YzAgMy4zMSAyLjY5IDYgNiA2IDEuNTIgMCAyLjktLjU3IDMuOTYtMS41bDIuNjMgMi42MyAxLjI3LTEuMjctMi43NC0yLjc0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JtYXRDb2xvclRleHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDIwaDIwdjRIMnYtNHptMy40OS0zaDIuNDJsMS4yNy0zLjU4aDUuNjVMMTYuMDkgMTdoMi40MkwxMy4yNSAzaC0yLjVMNS40OSAxN3ptNC40Mi01LjYxIDIuMDMtNS43OWguMTJsMi4wMyA1Ljc5SDkuOTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcm1hdEluZGVudERlY3JlYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTdoMTB2LTJIMTF2MnptLTgtNSA0IDRWOGwtNCA0em0wIDloMTh2LTJIM3Yyek0zIDN2MmgxOFYzSDN6bTggNmgxMFY3SDExdjJ6bTAgNGgxMHYtMkgxMXYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JtYXRJbmRlbnRJbmNyZWFzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMjFoMTh2LTJIM3Yyek0zIDh2OGw0LTQtNC00em04IDloMTB2LTJIMTF2MnpNMyAzdjJoMThWM0gzem04IDZoMTBWN0gxMXYyem0wIDRoMTB2LTJIMTF2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9ybWF0SXRhbGljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgNHYzaDIuMjFsLTMuNDIgOEg2djNoOHYtM2gtMi4yMWwzLjQyLThIMThWNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9ybWF0TGluZVNwYWNpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDdoMi41TDUgMy41IDEuNSA3SDR2MTBIMS41TDUgMjAuNSA4LjUgMTdINlY3em00LTJ2MmgxMlY1SDEwem0wIDE0aDEydi0ySDEwdjJ6bTAtNmgxMnYtMkgxMHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JtYXRMaXN0QnVsbGV0ZWRBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bTMgNS41aC0yLjVWMjFoLTF2LTIuNUgxNXYtMWgyLjVWMTVoMXYyLjVIMjF2MXpNNyA1aDEzdjJIN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIzLjVcIixcImN5XCI6XCIxOFwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDExSDd2Mmg2LjExYzEuMjYtMS4yNCAyLjk5LTIgNC44OS0yek03IDE3djJoNC4wOGMtLjA1LS4zMy0uMDgtLjY2LS4wOC0xcy4wMy0uNjcuMDgtMUg3elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjMuNVwiLFwiY3lcIjpcIjZcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjMuNVwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9ybWF0TGlzdEJ1bGxldGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDEwLjVjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41em0wLTZjLS44MyAwLTEuNS42Ny0xLjUgMS41UzMuMTcgNy41IDQgNy41IDUuNSA2LjgzIDUuNSA2IDQuODMgNC41IDQgNC41em0wIDEyYy0uODMgMC0xLjUuNjgtMS41IDEuNXMuNjggMS41IDEuNSAxLjUgMS41LS42OCAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXpNNyAxOWgxNHYtMkg3djJ6bTAtNmgxNHYtMkg3djJ6bTAtOHYyaDE0VjVIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9ybWF0TGlzdE51bWJlcmVkUnRsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTdoMnYuNWgtMXYxaDF2LjVoLTJ2MWgzdi00aC0zem0xLTloMVY0aC0ydjFoMXptLTEgM2gxLjhMMTggMTMuMXYuOWgzdi0xaC0xLjhsMS44LTIuMVYxMGgtM3pNMiA1aDE0djJIMnptMCAxMmgxNHYySDJ6bTAtNmgxNHYySDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcm1hdExpc3ROdW1iZXJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTdoMnYuNUgzdjFoMXYuNUgydjFoM3YtNEgydjF6bTEtOWgxVjRIMnYxaDF2M3ptLTEgM2gxLjhMMiAxMy4xdi45aDN2LTFIMy4yTDUgMTAuOVYxMEgydjF6bTUtNnYyaDE0VjVIN3ptMCAxNGgxNHYtMkg3djJ6bTAtNmgxNHYtMkg3djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcm1hdFBhaW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNFYzYzAtLjU1LS40NS0xLTEtMUg1Yy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMWgxMmMuNTUgMCAxLS40NSAxLTFWNmgxdjRIOXYxMWMwIC41NS40NSAxIDEgMWgyYy41NSAwIDEtLjQ1IDEtMXYtOWg4VjRoLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcm1hdFF1b3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxN2gzbDItNFY3SDV2Nmgzem04IDBoM2wyLTRWN2gtNnY2aDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcm1hdFNoYXBlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzIDdWMWgtNnYySDdWMUgxdjZoMnYxMEgxdjZoNnYtMmgxMHYyaDZ2LTZoLTJWN2gyek0zIDNoMnYySDNWM3ptMiAxOEgzdi0yaDJ2MnptMTItMkg3di0ySDVWN2gyVjVoMTB2MmgydjEwaC0ydjJ6bTQgMmgtMnYtMmgydjJ6TTE5IDVWM2gydjJoLTJ6bS01LjI3IDloLTMuNDlsLS43MyAySDcuODlsMy40LTloMS40bDMuNDEgOWgtMS42M2wtLjc0LTJ6bS0zLjA0LTEuMjZoMi42MUwxMiA4LjkxbC0xLjMxIDMuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcm1hdFNpemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDR2M2g1djEyaDNWN2g1VjRIOXptLTYgOGgzdjdoM3YtN2gzVjlIM3YzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JtYXRTdHJpa2V0aHJvdWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTloNHYtM2gtNHYzek01IDR2M2g1djNoNFY3aDVWNEg1ek0zIDE0aDE4di0ySDN2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9ybWF0VGV4dGRpcmVjdGlvbkxUb1IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDEwdjVoMlY0aDJ2MTFoMlY0aDJWMkg5QzYuNzkgMiA1IDMuNzkgNSA2czEuNzkgNCA0IDR6bTEyIDgtNC00djNINXYyaDEydjNsNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JtYXRUZXh0ZGlyZWN0aW9uUlRvTCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDEwdjVoMlY0aDJ2MTFoMlY0aDJWMmgtOEM3Ljc5IDIgNiAzLjc5IDYgNnMxLjc5IDQgNCA0em0tMiA3di0zbC00IDQgNCA0di0zaDEydi0ySDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcm1hdFVuZGVybGluZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxN2MzLjMxIDAgNi0yLjY5IDYtNlYzaC0yLjV2OGMwIDEuOTMtMS41NyAzLjUtMy41IDMuNVM4LjUgMTIuOTMgOC41IDExVjNINnY4YzAgMy4zMSAyLjY5IDYgNiA2em0tNyAydjJoMTR2LTJINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRnVuY3Rpb25zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNEg2djJsNi41IDZMNiAxOHYyaDEydi0zaC03bDUtNS01LTVoN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGVpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgNi45OWgzTDEyIDMgOCA2Ljk5aDN2MTAuMDJIOEwxMiAyMWw0LTMuOTloLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhleGFnb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy4yIDNINi44bC01LjIgOSA1LjIgOWgxMC40bDUuMi05elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIaWdobGlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm02IDE0IDMgM3Y1aDZ2LTVsMy0zVjlINnY1em01LTEyaDJ2M2gtMlYyek0zLjUgNS44OGwxLjQxLTEuNDEgMi4xMiAyLjEyTDUuNjIgOCAzLjUgNS44OHptMTMuNDYuNzEgMi4xMi0yLjEyIDEuNDEgMS40MUwxOC4zOCA4bC0xLjQyLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhvcml6b250YWxEaXN0cmlidXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAyMkgyVjJoMnYyMHpNMjIgMmgtMnYyMGgyVjJ6bS04LjUgNWgtM3YxMGgzVjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhvcml6b250YWxSdWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQgMTFoMTZ2Mkg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbnNlcnRDaGFydE91dGxpbmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxN0g3di03aDJ2N3ptNCAwaC0yVjdoMnYxMHptNCAwaC0ydi00aDJ2NHptMi41IDIuMWgtMTVWNWgxNXYxNC4xem0wLTE2LjFoLTE1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE1YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEluc2VydENoYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTkgMTdIN3YtN2gydjd6bTQgMGgtMlY3aDJ2MTB6bTQgMGgtMnYtNGgydjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEluc2VydENvbW1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTRsNCA0VjRjMC0xLjEtLjktMi0yLTJ6bS0yIDEySDZ2LTJoMTJ2MnptMC0zSDZWOWgxMnYyem0wLTNINlY2aDEydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEluc2VydERyaXZlRmlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMmMtMS4xIDAtMS45OS45LTEuOTkgMkw0IDIwYzAgMS4xLjg5IDIgMS45OSAySDE4YzEuMSAwIDItLjkgMi0yVjhsLTYtNkg2em03IDdWMy41TDE4LjUgOUgxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW5zZXJ0RW1vdGljb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bTMuNS05Yy44MyAwIDEuNS0uNjcgMS41LTEuNVMxNi4zMyA4IDE1LjUgOCAxNCA4LjY3IDE0IDkuNXMuNjcgMS41IDEuNSAxLjV6bS03IDBjLjgzIDAgMS41LS42NyAxLjUtMS41UzkuMzMgOCA4LjUgOCA3IDguNjcgNyA5LjUgNy42NyAxMSA4LjUgMTF6bTMuNSA2LjVjMi4zMyAwIDQuMzEtMS40NiA1LjExLTMuNUg2Ljg5Yy44IDIuMDQgMi43OCAzLjUgNS4xMSAzLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEluc2VydEludml0YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMmgtNXY1aDV2LTV6TTE2IDF2Mkg4VjFINnYySDVjLTEuMTEgMC0xLjk5LjktMS45OSAyTDMgMTlhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yaC0xVjFoLTJ6bTMgMThINVY4aDE0djExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbnNlcnRMaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy45IDEyYzAtMS43MSAxLjM5LTMuMSAzLjEtMy4xaDRWN0g3Yy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1aDR2LTEuOUg3Yy0xLjcxIDAtMy4xLTEuMzktMy4xLTMuMXpNOCAxM2g4di0ySDh2MnptOS02aC00djEuOWg0YzEuNzEgMCAzLjEgMS4zOSAzLjEgMy4xcy0xLjM5IDMuMS0zLjEgMy4xaC00VjE3aDRjMi43NiAwIDUtMi4yNCA1LTVzLTIuMjQtNS01LTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEluc2VydFBhZ2VCcmVhayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMjBjMCAxLjEuODkgMiAxLjk5IDJIMThjMS4xIDAgMi0uOSAyLTJ2LTNINHYzek0yMCA4bC02LTZINmMtMS4xIDAtMS45OS45LTEuOTkgMnY3SDIwVjh6bS03IDFWMy41TDE4LjUgOUgxM3pNOSAxM2g2djJIOXpNMTcgMTNoNnYyaC02ek0xIDEzaDZ2MkgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbnNlcnRQaG90byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDE5VjVjMC0xLjEtLjktMi0yLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnpNOC41IDEzLjVsMi41IDMuMDFMMTQuNSAxMmw0LjUgNkg1bDMuNS00LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExpbmVBeGlzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgNy40My0xLjQxLTEuNDEtNC4wMyA0LjUzTDkuNSA0IDIgMTEuNTFsMS41IDEuNSA2LjE0LTYuMTUgNS41OSA1LjE4LTEuNzMgMS45NS00LTRMMiAxNy41IDMuNSAxOWw2LTYuMDEgNCA0IDMuMTktMy41OSAzLjkgMy42MUwyMiAxNS42bC0zLjk4LTMuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGluZWFyU2NhbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS41IDkuNWMtMS4wMyAwLTEuOS42Mi0yLjI5IDEuNWgtMi45MmMtLjM5LS44OC0xLjI2LTEuNS0yLjI5LTEuNXMtMS45LjYyLTIuMjkgMS41SDYuNzljLS4zOS0uODgtMS4yNi0xLjUtMi4yOS0xLjVhMi41IDIuNSAwIDAgMCAwIDVjMS4wMyAwIDEuOS0uNjIgMi4yOS0xLjVoMi45MmMuMzkuODggMS4yNiAxLjUgMi4yOSAxLjVzMS45LS42MiAyLjI5LTEuNWgyLjkyYy4zOS44OCAxLjI2IDEuNSAyLjI5IDEuNWEyLjUgMi41IDAgMCAwIDAtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWFyZ2luIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAzdjE4aDE4VjNIM3ptMTYgMTZINVY1aDE0djE0ek0xMSA3aDJ2MmgtMnpNNyA3aDJ2Mkg3em04IDBoMnYyaC0yem0tOCA0aDJ2Mkg3em00IDBoMnYyaC0yem00IDBoMnYyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNZXJnZVR5cGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAyMC40MSAxOC40MSAxOSAxNSAxNS41OSAxMy41OSAxNyAxNyAyMC40MXpNNy41IDhIMTF2NS41OUw1LjU5IDE5IDcgMjAuNDFsNi02VjhoMy41TDEyIDMuNSA3LjUgOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW9kZUNvbW1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS45OSA0YzAtMS4xLS44OS0yLTEuOTktMkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE0bDQgNC0uMDEtMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vZGVFZGl0T3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTcuMjVWMjFoMy43NUwxNy44MSA5Ljk0bC0zLjc1LTMuNzV6TTIwLjcxIDUuNjNsLTIuMzQtMi4zNGEuOTk2Ljk5NiAwIDAgMC0xLjQxIDBsLTEuODMgMS44MyAzLjc1IDMuNzUgMS44My0xLjgzYS45OTYuOTk2IDAgMCAwIDAtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW9kZUVkaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE3LjI1VjIxaDMuNzVMMTcuODEgOS45NGwtMy43NS0zLjc1TDMgMTcuMjV6TTIwLjcxIDcuMDRhLjk5Ni45OTYgMCAwIDAgMC0xLjQxbC0yLjM0LTIuMzRhLjk5Ni45OTYgMCAwIDAtMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW9kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTcuMjVWMjFoMy43NUwxNy44MSA5Ljk0bC0zLjc1LTMuNzV6TTIwLjcxIDUuNjNsLTIuMzQtMi4zNGEuOTk2Ljk5NiAwIDAgMC0xLjQxIDBsLTEuODMgMS44MyAzLjc1IDMuNzUgMS44My0xLjgzYS45OTYuOTk2IDAgMCAwIDAtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW9uZXRpemF0aW9uT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xLjQxIDE2LjA5VjIwaC0yLjY3di0xLjkzYy0xLjcxLS4zNi0zLjE2LTEuNDYtMy4yNy0zLjRoMS45NmMuMSAxLjA1LjgyIDEuODcgMi42NSAxLjg3IDEuOTYgMCAyLjQtLjk4IDIuNC0xLjU5IDAtLjgzLS40NC0xLjYxLTIuNjctMi4xNC0yLjQ4LS42LTQuMTgtMS42Mi00LjE4LTMuNjcgMC0xLjcyIDEuMzktMi44NCAzLjExLTMuMjFWNGgyLjY3djEuOTVjMS44Ni40NSAyLjc5IDEuODYgMi44NSAzLjM5SDE0LjNjLS4wNS0xLjExLS42NC0xLjg3LTIuMjItMS44Ny0xLjUgMC0yLjQuNjgtMi40IDEuNjQgMCAuODQuNjUgMS4zOSAyLjY3IDEuOTFzNC4xOCAxLjM5IDQuMTggMy45MWMtLjAxIDEuODMtMS4zOCAyLjgzLTMuMTIgMy4xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW9uZXlPZmZDc3JlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjUzIDcuNDNjLjQyLS4zMS45My0uNDcgMS41NC0uNDdzMS4xMS4xNiAxLjUuNDljLjM5LjMyLjY1LjcuNzkgMS4xMmwxLjg5LS44Yy0uMjQtLjcxLS43MS0xLjM1LTEuNC0xLjkyLS41LS40LTEuMTItLjY1LTEuODUtLjc3VjNoLTJ2Mi4xMWMtLjQxLjA4LS43OS4yMS0xLjE0LjM5LS4zNS4xOC0uNjQuMzktLjkuNjNsMS40MyAxLjQzYy4wNC0uMDQuMDktLjA5LjE0LS4xM3pNMi44MSAyLjgxIDEuMzkgNC4yMmwxMi4zNSAxMi4zNWMtLjQzLjI4LS45NS40My0xLjU1LjQzLS43MSAwLTEuMzItLjIzLTEuODMtLjctLjUtLjQ3LS44Ni0xLjA3LTEuMDYtMS44MWwtMS45OC44Yy4zNCAxLjE3Ljk1IDIuMDggMS44MyAyLjczLjU3LjQyIDEuMTkuNjggMS44NS44M1YyMWgydi0yLjA4Yy40NC0uMDcuODctLjE3IDEuMjktLjM1LjM0LS4xNC42NC0uMzIuOTItLjUzbDQuNTcgNC41NyAxLjQxLTEuNDFMMi44MSAyLjgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb25leU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjUgNi45YzEuNzggMCAyLjQ0Ljg1IDIuNSAyLjFoMi4yMWMtLjA3LTEuNzItMS4xMi0zLjMtMy4yMS0zLjgxVjNoLTN2Mi4xNmMtLjUzLjEyLTEuMDMuMy0xLjQ4LjU0bDEuNDcgMS40N2MuNDEtLjE3LjkxLS4yNyAxLjUxLS4yN3pNNS4zMyA0LjA2IDQuMDYgNS4zMyA3LjUgOC43N2MwIDIuMDggMS41NiAzLjIxIDMuOTEgMy45MWwzLjUxIDMuNTFjLS4zNC40OC0xLjA1LjkxLTIuNDIuOTEtMi4wNiAwLTIuODctLjkyLTIuOTgtMi4xaC0yLjJjLjEyIDIuMTkgMS43NiAzLjQyIDMuNjggMy44M1YyMWgzdi0yLjE1Yy45Ni0uMTggMS44Mi0uNTUgMi40NS0xLjEybDIuMjIgMi4yMiAxLjI3LTEuMjdMNS4zMyA0LjA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb3ZlRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTFjMCAyLjQ1IDEuNzYgNC40NyA0LjA4IDQuOTFsLTEuNDktMS40OUw3IDEzbDQgNC4wMUw3IDIxbC0xLjQxLTEuNDEgMS41OC0xLjU4di0uMDZBNy4wMDcgNy4wMDcgMCAwIDEgMSAxMWMwLTMuODcgMy4xMy03IDctN2gzdjJIOGMtMi43NiAwLTUgMi4yNC01IDV6TTIyIDExVjRoLTl2N2g5em0tMi0yaC01VjZoNXYzek0xMyAxM2g5djdoLTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vdmVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTNjMC0yLjQ1IDEuNzYtNC40NyA0LjA4LTQuOTFsLTEuNDkgMS41TDcgMTFsNC00LjAxTDcgMyA1LjU5IDQuNDFsMS41OCAxLjU4di4wNkE3LjAwNyA3LjAwNyAwIDAgMCAxIDEzYzAgMy44NyAzLjEzIDcgNyA3aDN2LTJIOGMtMi43NiAwLTUtMi4yNC01LTV6TTEzIDEzdjdoOXYtN2gtOXptNyA1aC01di0zaDV2M3pNMTMgNGg5djdoLTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE11bHRpbGluZUNoYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgNi45Mi0xLjQxLTEuNDEtMi44NSAzLjIxQzE1LjY4IDYuNCAxMi44MyA1IDkuNjEgNSA2LjcyIDUgNC4wNyA2LjE2IDIgOGwxLjQyIDEuNDJDNS4xMiA3LjkzIDcuMjcgNyA5LjYxIDdjMi43NCAwIDUuMDkgMS4yNiA2Ljc3IDMuMjRsLTIuODggMy4yNC00LTRMMiAxNi45OWwxLjUgMS41IDYtNi4wMSA0IDQgNC4wNS00LjU1Yy43NSAxLjM1IDEuMjUgMi45IDEuNDQgNC41NUgyMWMtLjIyLTIuMy0uOTUtNC4zOS0yLjA0LTYuMTRMMjIgNi45MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm90ZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMThoMTJ2LTJIM3Yyek0zIDZ2MmgxOFY2SDN6bTAgN2gxOHYtMkgzdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE51bWJlcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMC41IDEwIC41LTJoLTRsMS00aC0ybC0xIDRoLTRsMS00aC0yTDkgOEg1bC0uNSAyaDRsLTEgNGgtNEwzIDE2aDRsLTEgNGgybDEtNGg0bC0xIDRoMmwxLTRoNGwuNS0yaC00bDEtNGg0em0tNyA0aC00bDEtNGg0bC0xIDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBhZGRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDN2MThoMThWM0gzem0xNiAxNkg1VjVoMTR2MTR6TTExIDdoMnYyaC0yek03IDdoMnYySDd6bTggMGgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlbnRhZ29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMiA5IDQgMTJoMTJsNC0xMi0xMC03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaWVDaGFydE91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNSAyIDIgNi41IDIgMTJzNC41IDEwIDEwIDEwIDEwLTQuNSAxMC0xMFMxNy41IDIgMTIgMnptMSAyLjA3YzMuNjEuNDUgNi40OCAzLjMzIDYuOTMgNi45M0gxM1Y0LjA3ek00IDEyYzAtNC4wNiAzLjA3LTcuNDQgNy03LjkzdjE1Ljg3Yy0zLjkzLS41LTctMy44OC03LTcuOTR6bTkgNy45M1YxM2g2LjkzQTguMDAyIDguMDAyIDAgMCAxIDEzIDE5LjkzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaWVDaGFydE91dGxpbmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNSAyIDIgNi41IDIgMTJzNC41IDEwIDEwIDEwIDEwLTQuNSAxMC0xMFMxNy41IDIgMTIgMnptMSAyLjA3YzMuNjEuNDUgNi40OCAzLjMzIDYuOTMgNi45M0gxM1Y0LjA3ek00IDEyYzAtNC4wNiAzLjA3LTcuNDQgNy03LjkzdjE1Ljg3Yy0zLjkzLS41LTctMy44OC03LTcuOTR6bTkgNy45M1YxM2g2LjkzQTguMDAyIDguMDAyIDAgMCAxIDEzIDE5LjkzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaWVDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMnYyMGMtNS4wNy0uNS05LTQuNzktOS0xMHMzLjkzLTkuNSA5LTEwem0yLjAzIDB2OC45OUgyMmMtLjQ3LTQuNzQtNC4yNC04LjUyLTguOTctOC45OXptMCAxMS4wMVYyMmM0Ljc0LS40NyA4LjUtNC4yNSA4Ljk3LTguOTloLTguOTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBvbHlsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTZ2MS4yNmwtNi0zdi0zLjE3TDExLjcgOEgxNlYyaC02djQuOUw3LjMgMTBIM3Y2aDVsNyAzLjVWMjJoNnYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUG9zdEFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDE5LjIySDVWN2g3VjVINWMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMnYtN2gtMnY3LjIyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAyaC0ydjNoLTNjLjAxLjAxIDAgMiAwIDJoM3YyLjk5Yy4wMS4wMSAyIDAgMiAwVjdoM1Y1aC0zVjJ6TTcgOWg4djJIN3pNNyAxMnYyaDh2LTJoLTN6TTcgMTVoOHYySDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFB1Ymxpc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDR2MmgxNFY0SDV6bTAgMTBoNHY2aDZ2LTZoNGwtNy03LTcgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUXVlcnlTdGF0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5Ljg4IDE4LjQ3Yy40NC0uNy43LTEuNTEuNy0yLjM5IDAtMi40OS0yLjAxLTQuNS00LjUtNC41cy00LjUgMi4wMS00LjUgNC41IDIuMDEgNC41IDQuNDkgNC41Yy44OCAwIDEuNy0uMjYgMi4zOS0uN0wyMS41OCAyMyAyMyAyMS41OGwtMy4xMi0zLjExem0tMy44LjExYTIuNSAyLjUgMCAwIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1em0tLjM2LTguNWMtLjc0LjAyLTEuNDUuMTgtMi4xLjQ1bC0uNTUtLjgzLTMuOCA2LjE4LTMuMDEtMy41Mi0zLjYzIDUuODFMMSAxN2w1LTggMyAzLjVMMTMgNmwyLjcyIDQuMDh6bTIuNTkuNWMtLjY0LS4yOC0xLjMzLS40NS0yLjA1LS40OUwyMS4zOCAyIDIzIDMuMThsLTQuNjkgNy40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZWN0YW5nbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDRoMjB2MTZIMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2NhdHRlclBsb3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiN1wiLFwiY3lcIjpcIjE0XCIsXCJyXCI6XCIzXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTFcIixcImN5XCI6XCI2XCIsXCJyXCI6XCIzXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTYuNlwiLFwiY3lcIjpcIjE3LjZcIixcInJcIjpcIjNcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2NoZW1hIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgOXYyaC0zVjlIOC41VjdIMTFWMUg0djZoMi41djJINHY2aDIuNXYySDR2Nmg3di02SDguNXYtMkgxMXYtMmgzdjJoN1Y5aC03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTY29yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAyaDEuNXYzbDItM2gxLjdsLTIgMyAyIDNoLTEuN2wtMi0zdjNIMTJWNXpNNyA3LjI1aDIuNVY2LjVIN1Y1aDR2My43NUg4LjV2Ljc1SDExVjExSDdWNy4yNXpNMTkgMTNsLTYgNi00LTQtNCA0di0yLjVsNC00IDQgNCA2LTZWMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNoYXBlTGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTFjMi43NiAwIDUtMi4yNCA1LTVTOC43NiAxIDYgMSAxIDMuMjQgMSA2czIuMjQgNSA1IDV6TTIxIDE0aC01Yy0xLjEgMC0yIC45LTIgMnY1YzAgMS4xLjkgMiAyIDJoNWMxLjEgMCAyLS45IDItMnYtNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNzEgNy43Yy40LjE5LjgzLjMgMS4yOS4zIDEuNjUgMCAzLTEuMzUgMy0zcy0xLjM1LTMtMy0zLTMgMS4zNS0zIDNjMCAuNDYuMTEuODkuMyAxLjI5TDYuMjkgMTYuM2MtLjQtLjE5LS44My0uMy0xLjI5LS4zLTEuNjUgMC0zIDEuMzUtMyAzczEuMzUgMyAzIDMgMy0xLjM1IDMtM2MwLS40Ni0uMTEtLjg5LS4zLTEuMjlMMTcuNzEgNy43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaG9ydFRleHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDloMTZ2Mkg0Vjl6bTAgNGgxMHYySDR2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNob3dDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTMuNSAxOC40OSA2LTYuMDEgNCA0TDIyIDYuOTJsLTEuNDEtMS40MS03LjA5IDcuOTctNC00TDIgMTYuOTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwYWNlQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA5djRINlY5SDR2NmgxNlY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDNoMTh2MThIM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RhY2tlZExpbmVDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIgMTkuOTkgNy41LTcuNTEgNCA0IDcuMDktNy45N0wyMiA5LjkybC04LjUgOS41Ni00LTQtNiA2LjAxLTEuNS0xLjV6bTEuNS00LjUgNi02LjAxIDQgNEwyMiAzLjkybC0xLjQxLTEuNDEtNy4wOSA3Ljk3LTQtNEwyIDEzLjk5bDEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN0cmlrZXRocm91Z2hTIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi44NSA3LjA4QzYuODUgNC4zNyA5LjQ1IDMgMTIuMjQgM2MxLjY0IDAgMyAuNDkgMy45IDEuMjguNzcuNjUgMS40NiAxLjczIDEuNDYgMy4yNGgtMy4wMWMwLS4zMS0uMDUtLjU5LS4xNS0uODUtLjI5LS44Ni0xLjItMS4yOC0yLjI1LTEuMjgtMS44NiAwLTIuMzQgMS4wMi0yLjM0IDEuNyAwIC40OC4yNS44OC43NCAxLjIxLjM4LjI1Ljc3LjQ4IDEuNDEuN0g3LjM5Yy0uMjEtLjM0LS41NC0uODktLjU0LTEuOTJ6TTIxIDEydi0ySDN2Mmg5LjYyYzEuMTUuNDUgMS45Ni43NSAxLjk2IDEuOTcgMCAxLS44MSAxLjY3LTIuMjggMS42Ny0xLjU0IDAtMi45My0uNTQtMi45My0yLjUxSDYuNGMwIC41NS4wOCAxLjEzLjI0IDEuNTguODEgMi4yOSAzLjI5IDMuMyA1LjY3IDMuMyAyLjI3IDAgNS4zLS44OSA1LjMtNC4wNSAwLS4zLS4wMS0xLjE2LS40OC0xLjk0SDIxVjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdWJzY3JpcHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxOGgtMnYxaDN2MWgtNHYtMmMwLS41NS40NS0xIDEtMWgydi0xaC0zdi0xaDNjLjU1IDAgMSAuNDUgMSAxdjFjMCAuNTUtLjQ1IDEtMSAxek01Ljg4IDE4aDIuNjZsMy40LTUuNDJoLjEybDMuNCA1LjQyaDIuNjZsLTQuNjUtNy4yN0wxNy44MSA0aC0yLjY4bC0zLjA3IDQuOTloLS4xMkw4Ljg1IDRINi4xOWw0LjMyIDYuNzNMNS44OCAxOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3VwZXJzY3JpcHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA3aC0ydjFoM3YxaC00VjdjMC0uNTUuNDUtMSAxLTFoMlY1aC0zVjRoM2MuNTUgMCAxIC40NSAxIDF2MWMwIC41NS0uNDUgMS0xIDF6TTUuODggMjBoMi42NmwzLjQtNS40MmguMTJsMy40IDUuNDJoMi42NmwtNC42NS03LjI3TDE3LjgxIDZoLTIuNjhsLTMuMDcgNC45OWgtLjEyTDguODUgNkg2LjE5bDQuMzIgNi43M0w1Ljg4IDIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUYWJsZUNoYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxMC4wMmg1VjIxaC01ek0xNyAyMWgzYzEuMSAwIDItLjkgMi0ydi05aC01djExem0zLTE4SDVjLTEuMSAwLTIgLjktMiAydjNoMTlWNWMwLTEuMS0uOS0yLTItMnpNMyAxOWMwIDEuMS45IDIgMiAyaDNWMTBIM3Y5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUYWJsZVJvd3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA4SDNWNGgxOHY0em0wIDJIM3Y0aDE4di00em0wIDZIM3Y0aDE4di00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUZXh0RGVjcmVhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0uOTkgMTloMi40MmwxLjI3LTMuNThoNS42NUwxMS41OSAxOWgyLjQyTDguNzUgNWgtMi41TC45OSAxOXptNC40Mi01LjYxTDcuNDQgNy42aC4xMmwyLjAzIDUuNzlINS40MXpNMjMgMTF2MmgtOHYtMmg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUZXh0RmllbGRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDR2M2g1djEyaDNWN2g1VjRoLTEzem0xOSA1aC05djNoM3Y3aDN2LTdoM1Y5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUZXh0SW5jcmVhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0uOTkgMTloMi40MmwxLjI3LTMuNThoNS42NUwxMS41OSAxOWgyLjQyTDguNzUgNWgtMi41TC45OSAxOXptNC40Mi01LjYxTDcuNDQgNy42aC4xMmwyLjAzIDUuNzlINS40MXpNMjAgMTFoM3YyaC0zdjNoLTJ2LTNoLTN2LTJoM1Y4aDJ2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGl0bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgNHYzaDUuNXYxMmgzVjdIMTlWNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHlwZVNwZWNpbWVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2SDJ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tMy4zNyAxMi41LS44LTIuM0gxMi4ybC0uODIgMi4zSDkuODFsMy4zOC05aDEuNjFsMy4zOCA5aC0xLjU1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMy45NiA3LjE3LTEuMzEgMy43MmgyLjY5bC0xLjMtMy43MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmVydGljYWxBbGlnbkJvdHRvbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDEzaC0zVjNoLTJ2MTBIOGw0IDQgNC00ek00IDE5djJoMTZ2LTJINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmVydGljYWxBbGlnbkNlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTloM3Y0aDJ2LTRoM2wtNC00LTQgNHptOC0xNGgtM1YxaC0ydjRIOGw0IDQgNC00ek00IDExdjJoMTZ2LTJINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmVydGljYWxBbGlnblRvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTFoM3YxMGgyVjExaDNsLTQtNC00IDR6TTQgM3YyaDE2VjNINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmVydGljYWxEaXN0cmlidXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMnYySDJWMmgyMHpNNyAxMC41djNoMTB2LTNIN3pNMiAyMHYyaDIwdi0ySDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdyYXBUZXh0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxOWg2di0ySDR2MnpNMjAgNUg0djJoMTZWNXptLTMgNkg0djJoMTMuMjVjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAySDE1di0ybC0zIDMgMyAzdi0yaDJjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFwcHJvdmFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxNnY2aDE2di02YzAtMS4xLS45LTItMi0ySDZjLTEuMSAwLTIgLjktMiAyem0xNCAySDZ2LTJoMTJ2MnpNMTIgMkM5LjI0IDIgNyA0LjI0IDcgN2w1IDcgNS03YzAtMi43Ni0yLjI0LTUtNS01em0wIDlMOSA3YzAtMS42NiAxLjM0LTMgMy0zczMgMS4zNCAzIDNsLTMgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXR0YWNoRW1haWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMFY0YzAtMS4xLS45LTItMi0ySDNjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMSAxNmMwIDEuMS45IDIgMiAyaDExdi01YzAtMS42NiAxLjM0LTMgMy0zaDR6bS0xMCAxTDMgNlY0bDggNSA4LTV2MmwtOCA1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxNHY0YzAgMS4xLS45IDItMiAycy0yLS45LTItMnYtNC41YzAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41VjE4aDJ2LTQuNWEyLjUgMi41IDAgMCAwLTUgMFYxOGMwIDIuMjEgMS43OSA0IDQgNHM0LTEuNzkgNC00di00aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBdHRhY2htZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDEyLjVDMiA5LjQ2IDQuNDYgNyA3LjUgN0gxOGMyLjIxIDAgNCAxLjc5IDQgNHMtMS43OSA0LTQgNEg5LjVhMi41IDIuNSAwIDAgMSAwLTVIMTd2Mkg5LjQxYy0uNTUgMC0uNTUgMSAwIDFIMThjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0ySDcuNUM1LjU3IDkgNCAxMC41NyA0IDEyLjVTNS41NyAxNiA3LjUgMTZIMTd2Mkg3LjVDNC40NiAxOCAyIDE1LjU0IDIgMTIuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2xvdWRDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem00LjUgMTRIOGMtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtM2wuMTQuMDFBMy45OCAzLjk4IDAgMCAxIDEyIDdjMi4yMSAwIDQgMS43OSA0IDRoLjVhMi41IDIuNSAwIDAgMSAwIDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENsb3VkRG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjM1IDEwLjA0QTcuNDkgNy40OSAwIDAgMCAxMiA0QzkuMTEgNCA2LjYgNS42NCA1LjM1IDguMDRBNS45OTQgNS45OTQgMCAwIDAgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NnpNMTAgMTdsLTMuNS0zLjUgMS40MS0xLjQxTDEwIDE0LjE3IDE1LjE4IDlsMS40MSAxLjQxTDEwIDE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDbG91ZERvd25sb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMzUgMTAuMDRBNy40OSA3LjQ5IDAgMCAwIDEyIDRDOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNEE1Ljk5NCA1Ljk5NCAwIDAgMCAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xNyAxM2wtNSA1LTUtNWgzVjloNHY0aDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENsb3VkT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMzUgMTAuMDRBNy40OSA3LjQ5IDAgMCAwIDEyIDRjLTEuNDggMC0yLjg1LjQzLTQuMDEgMS4xN2wxLjQ2IDEuNDZhNS40OTcgNS40OTcgMCAwIDEgOC4wNSA0Ljg3di41SDE5YzEuNjYgMCAzIDEuMzQgMyAzIDAgMS4xMy0uNjQgMi4xMS0xLjU2IDIuNjJsMS40NSAxLjQ1QzIzLjE2IDE4LjE2IDI0IDE2LjY4IDI0IDE1YzAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0zIDUuMjdsMi43NSAyLjc0QzIuNTYgOC4xNSAwIDEwLjc3IDAgMTRjMCAzLjMxIDIuNjkgNiA2IDZoMTEuNzNsMiAyTDIxIDIwLjczIDQuMjcgNCAzIDUuMjd6TTcuNzMgMTBsOCA4SDZjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTRoMS43M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2xvdWRRdWV1ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjM1IDEwLjA0QTcuNDkgNy40OSAwIDAgMCAxMiA0QzkuMTEgNCA2LjYgNS42NCA1LjM1IDguMDRBNS45OTQgNS45OTQgMCAwIDAgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NnpNMTkgMThINmMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNGguNzFDNy4zNyA3LjY5IDkuNDggNiAxMiA2YzMuMDQgMCA1LjUgMi40NiA1LjUgNS41di41SDE5YzEuNjYgMCAzIDEuMzQgMyAzcy0xLjM0IDMtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDbG91ZFN5bmMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS41IDE0Ljk4Yy0uMDIgMC0uMDMgMC0uMDUuMDFBMy40OSAzLjQ5IDAgMCAwIDE4IDEyYy0xLjQgMC0yLjYuODMtMy4xNiAyLjAyQTIuOTg4IDIuOTg4IDAgMCAwIDEyIDE3YzAgMS42NiAxLjM0IDMgMyAzbDYuNS0uMDJhMi41IDIuNSAwIDAgMCAwLTV6TTEwIDQuMjZ2Mi4wOUM3LjY3IDcuMTggNiA5LjM5IDYgMTJjMCAxLjc3Ljc4IDMuMzQgMiA0LjQ0VjE0aDJ2Nkg0di0yaDIuNzNBNy45NDIgNy45NDIgMCAwIDEgNCAxMmMwLTMuNzMgMi41NS02Ljg1IDYtNy43NHpNMjAgNmgtMi43M2E3Ljk4IDcuOTggMCAwIDEgMi42NiA1aC0yLjAyYy0uMjMtMS4zNi0uOTMtMi41NS0xLjkxLTMuNDRWMTBoLTJWNGg2djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENsb3VkVXBsb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMzUgMTAuMDRBNy40OSA3LjQ5IDAgMCAwIDEyIDRDOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNEE1Ljk5NCA1Ljk5NCAwIDAgMCAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xNCAxM3Y0aC00di00SDdsNS01IDUgNWgtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2xvdWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS4zNSAxMC4wNEE3LjQ5IDcuNDkgMCAwIDAgMTIgNEM5LjExIDQgNi42IDUuNjQgNS4zNSA4LjA0QTUuOTk0IDUuOTk0IDAgMCAwIDAgMTRjMCAzLjMxIDIuNjkgNiA2IDZoMTNjMi43NiAwIDUtMi4yNCA1LTUgMC0yLjY0LTIuMDUtNC43OC00LjY1LTQuOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENyZWF0ZU5ld0ZvbGRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtOGwtMi0ySDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE4YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjhjMC0xLjExLS44OS0yLTItMnptLTEgOGgtM3YzaC0ydi0zaC0zdi0yaDNWOWgydjNoM3YyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaWZmZXJlbmNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMjNINGMtMS4xIDAtMi0uOS0yLTJWN2gydjE0aDE0djJ6TTE1IDFIOGMtMS4xIDAtMS45OS45LTEuOTkgMkw2IDE3YzAgMS4xLjg5IDIgMS45OSAySDE5YzEuMSAwIDItLjkgMi0yVjdsLTYtNnptMS41IDE0aC02di0yaDZ2MnptMC02aC0ydjJoLTJWOWgtMlY3aDJWNWgydjJoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb3dubG9hZERvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC4xMyA1LjQxIDE4LjcyIDRsLTkuMTkgOS4xOS00LjI1LTQuMjQtMS40MSAxLjQxIDUuNjYgNS42NnpNNSAxOGgxNHYySDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvd25sb2FkRm9yT2ZmbGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OSAyIDIgNi40OSAyIDEyczQuNDkgMTAgMTAgMTAgMTAtNC40OSAxMC0xMFMxNy41MSAyIDEyIDJ6bS0xIDhWNmgydjRoM2wtNCA0LTQtNGgzem02IDdIN3YtMmgxMHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb3dubG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMjBoMTR2LTJINXYyek0xOSA5aC00VjNIOXY2SDVsNyA3IDctN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRG93bmxvYWRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC4zMiA0LjI2QTkuOTQ5IDkuOTQ5IDAgMCAwIDEzIDIuMDV2Mi4wMmMxLjQ2LjE4IDIuNzkuNzYgMy45IDEuNjJsMS40Mi0xLjQzek0xOS45MyAxMWgyLjAyYy0uMi0yLjAxLTEtMy44NC0yLjIxLTUuMzJMMTguMzEgNy4xYTcuOTQxIDcuOTQxIDAgMCAxIDEuNjIgMy45em0tMS42MiA1LjkgMS40MyAxLjQzYTkuOTgxIDkuOTgxIDAgMCAwIDIuMjEtNS4zMmgtMi4wMmE3Ljk0NSA3Ljk0NSAwIDAgMS0xLjYyIDMuODl6TTEzIDE5LjkzdjIuMDJjMi4wMS0uMiAzLjg0LTEgNS4zMi0yLjIxbC0xLjQzLTEuNDNjLTEuMS44Ni0yLjQzIDEuNDQtMy44OSAxLjYyek0xMyAxMlY3aC0ydjVIN2w1IDUgNS01aC00em0tMiA3LjkzdjIuMDJjLTUuMDUtLjUtOS00Ljc2LTktOS45NXMzLjk1LTkuNDUgOS05Ljk1djIuMDJDNy4wNSA0LjU2IDQgNy45MiA0IDEyczMuMDUgNy40NCA3IDcuOTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERyaXZlRmlsZU1vdmVPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtOGwtMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bTAgMTJINFY4aDE2djEwem0tOC4wMS05LTEuNDEgMS40MUwxMi4xNiAxMkg4djJoNC4xNmwtMS41OSAxLjU5TDExLjk5IDE3IDE2IDEzLjAxIDExLjk5IDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERyaXZlRmlsZU1vdmVSdGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC04bC0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0tOCAxMS00LTQgNC00djNoNHYyaC00djN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERyaXZlRmlsZU1vdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bS02IDEydi0zaC00di00aDRWOGw1IDUtNSA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREcml2ZUZpbGVSZW5hbWVPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNDEgNS44IDE3LjIgNC41OWMtLjc4LS43OC0yLjA1LS43OC0yLjgzIDBsLTIuNjggMi42OEwzIDE1Ljk2VjIwaDQuMDRsOC43NC04Ljc0IDIuNjMtMi42M2MuNzktLjc4Ljc5LTIuMDUgMC0yLjgzek02LjIxIDE4SDV2LTEuMjFsOC42Ni04LjY2IDEuMjEgMS4yMUw2LjIxIDE4ek0xMSAyMGw0LTRoNnY0SDExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREcml2ZUZvbGRlclVwbG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0wIDEySDRWOGgxNnYxMHpNOCAxMy4wMWwxLjQxIDEuNDFMMTEgMTIuODRWMTdoMnYtNC4xNmwxLjU5IDEuNTlMMTYgMTMuMDEgMTIuMDEgOSA4IDEzLjAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWxlRG93bmxvYWREb25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE4aDE0djJINXYtMnptNC42LTIuN0w1IDEwLjdsMi0xLjkgMi42IDIuNkwxNyA0bDIgMi05LjQgOS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWxlRG93bmxvYWRPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDYuMTdWM2g2djZoNGwtMy41OSAzLjU5TDkgNi4xN3ptMTIuMTkgMTUuMDJMMi44MSAyLjgxIDEuMzkgNC4yMiA2LjE3IDlINWw3IDcgLjU5LS41OUwxNS4xNyAxOEg1djJoMTIuMTdsMi42MSAyLjYxIDEuNDEtMS40MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsZURvd25sb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgOWgtNFYzSDl2Nkg1bDcgNyA3LTd6TTUgMTh2MmgxNHYtMkg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWxlT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDJINmMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuODkgMiAxLjk5IDJIMTV2LThoNVY4bC02LTZ6bS0xIDdWMy41TDE4LjUgOUgxM3ptNCAxMi42NlYxNmg1LjY2djJoLTIuMjRsMi45NSAyLjk1LTEuNDEgMS40MUwxOSAxOS40MXYyLjI0aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWxlVXBsb2FkT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuMTkgMjEuMTkgMi44MSAyLjgxIDEuMzkgNC4yMmw0LjcgNC42OUw1IDEwaDIuMTdMOSAxMS44M1YxNmg0LjE3bDIgMkg1djJoMTIuMTdsMi42MSAyLjYxek0xNSAxMGg0bC03LTctMy4wOSAzLjA5TDE1IDEyLjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWxlVXBsb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxNmg2di02aDRsLTctNy03IDdoNHptLTQgMmgxNHYySDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvbGRlckNvcHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDZIMXYxM2MwIDEuMS45IDIgMiAyaDE3di0ySDNWNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNGgtN2wtMi0ySDdjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNSAxNWMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvbGRlckRlbGV0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDh2MTBjMCAxLjEtLjkgMi0yIDJINGMtMS4xIDAtMi0uOS0yLTJsLjAxLTEyYzAtMS4xLjg5LTIgMS45OS0yaDZsMiAyaDhjMS4xIDAgMiAuOSAyIDJ6bS01LjUgMlY5aC0ydjFIMTJ2MS41aDF2NGMwIC44My42NyAxLjUgMS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNGgxVjEwaC0yLjV6bTAgNS41aC0ydi00aDJ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9sZGVyT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtOGwtMi0ySDYuODNsMTQuOTMgMTQuOTNjLjE1LS4yOC4yNC0uNTkuMjQtLjkzVjhjMC0xLjEtLjktMi0yLTJ6TTIuMSAyLjEuNjkgMy41MWwxLjU2IDEuNTZjLS4xNS4yOC0uMjQuNTktLjI0LjkzTDIgMThjMCAxLjEuOSAyIDIgMmgxMy4xN2wzLjMxIDMuMzEgMS40MS0xLjQxTDIuMSAyLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvbGRlck9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC04bC0yLTJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptMCAxMkg0VjhoMTZ2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvbGRlclNoYXJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0tNSAzYzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnptNCA4aC04di0xYzAtMS4zMyAyLjY3LTIgNC0yczQgLjY3IDQgMnYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb2xkZXJaaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC04bC0yLTJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptLTIgNmgtMnYyaDJ2MmgtMnYyaC0ydi0yaDJ2LTJoLTJ2LTJoMnYtMmgtMlY4aDJ2MmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvbGRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDRINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMmgtOGwtMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JtYXRPdmVybGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDN2Mkg1VjNoMTR6bS03IDRjLTMuODcgMC03IDMuMTMtNyA3czMuMTMgNyA3IDcgNy0zLjEzIDctNy0zLjEzLTctNy03em0wIDExLjVjLTIuNDkgMC00LjUtMi4wMS00LjUtNC41UzkuNTEgOS41IDEyIDkuNXM0LjUgMi4wMSA0LjUgNC41LTIuMDEgNC41LTQuNSA0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdyaWRWaWV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiZ1wiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDN2OGg4VjNIM3ptNiA2SDVWNWg0djR6bS02IDR2OGg4di04SDN6bTYgNkg1di00aDR2NHptNC0xNnY4aDhWM2gtOHptNiA2aC00VjVoNHY0em0tNiA0djhoOHYtOGgtOHptNiA2aC00di00aDR2NHpcIn0sXCJjaGlsZFwiOltdfV19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROZXdzcGFwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMiAzLTEuNjcgMS42N0wxOC42NyAzIDE3IDQuNjcgMTUuMzMgM2wtMS42NiAxLjY3TDEyIDNsLTEuNjcgMS42N0w4LjY3IDMgNyA0LjY3IDUuMzMgMyAzLjY3IDQuNjcgMiAzdjE2YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWM3pNMTEgMTlINHYtNmg3djZ6bTkgMGgtN3YtMmg3djJ6bTAtNGgtN3YtMmg3djJ6bTAtNEg0VjhoMTZ2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVxdWVzdFF1b3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMjBjMCAxLjEuODkgMiAxLjk5IDJIMThjMS4xIDAgMi0uOSAyLTJWOGwtNi02em0xIDEwaC00djFoM2MuNTUgMCAxIC40NSAxIDF2M2MwIC41NS0uNDUgMS0xIDFoLTF2MWgtMnYtMUg5di0yaDR2LTFoLTNjLS41NSAwLTEtLjQ1LTEtMXYtM2MwLS41NS40NS0xIDEtMWgxVjloMnYxaDJ2MnptLTItNFYzLjVMMTcuNSA4SDEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSdWxlRm9sZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtOGwtMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6TTcuODMgMTYgNSAxMy4xN2wxLjQxLTEuNDEgMS40MSAxLjQxIDMuNTQtMy41NCAxLjQxIDEuNDFMNy44MyAxNnptOS41OC0zTDE5IDE0LjU5IDE3LjU5IDE2IDE2IDE0LjQxIDE0LjQxIDE2IDEzIDE0LjU5IDE0LjU5IDEzIDEzIDExLjQxIDE0LjQxIDEwIDE2IDExLjU5IDE3LjU5IDEwIDE5IDExLjQxIDE3LjQxIDEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTbmlwcGV0Rm9sZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUuODggMTAuNSAxLjYyIDEuNjJ2My4zOGgtM3YtNWgxLjM4ek0yMiA4djEwYzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0ybC4wMS0xMmMwLTEuMS44OS0yIDEuOTktMmg2bDIgMmg4YzEuMSAwIDIgLjkgMiAyem0tMyAzLjVMMTYuNSA5SDEzdjhoNnYtNS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUZXh0U25pcHBldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwLjQxIDguNDEtNC44My00LjgzYy0uMzctLjM3LS44OC0uNTgtMS40MS0uNThINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY5LjgzYzAtLjUzLS4yMS0xLjA0LS41OS0xLjQyek03IDdoN3YySDdWN3ptMTAgMTBIN3YtMmgxMHYyem0wLTRIN3YtMmgxMHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUb3BpYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0tNiAxMEg2di0yaDh2MnptNC00SDZ2LTJoMTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVXBsb2FkRmlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMjBjMCAxLjEuODkgMiAxLjk5IDJIMThjMS4xIDAgMi0uOSAyLTJWOGwtNi02em00IDE4SDZWNGg3djVoNXYxMXpNOCAxNS4wMWwxLjQxIDEuNDFMMTEgMTQuODRWMTloMnYtNC4xNmwxLjU5IDEuNTlMMTYgMTUuMDEgMTIuMDEgMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFVwbG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMjBoMTR2LTJINXYyem0wLTEwaDR2Nmg2di02aDRsLTctNy03IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdvcmtzcGFjZXNGaWxsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDEzYy0yLjIgMC00IDEuOC00IDRzMS44IDQgNCA0IDQtMS44IDQtNC0xLjgtNC00LTR6bTYtMTBDOS44IDMgOCA0LjggOCA3czEuOCA0IDQgNCA0LTEuOCA0LTQtMS44LTQtNC00em02IDEwYy0yLjIgMC00IDEuOC00IDRzMS44IDQgNCA0IDQtMS44IDQtNC0xLjgtNC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdvcmtzcGFjZXNPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxNWMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJtMC0yYy0yLjIgMC00IDEuOC00IDRzMS44IDQgNCA0IDQtMS44IDQtNC0xLjgtNC00LTR6bTYtOGMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJtMC0yQzkuOCAzIDggNC44IDggN3MxLjggNCA0IDQgNC0xLjggNC00LTEuOC00LTQtNHptNiAxMmMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJtMC0yYy0yLjIgMC00IDEuOC00IDRzMS44IDQgNCA0IDQtMS44IDQtNC0xLjgtNC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdvcmtzcGFjZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDEzYy0yLjIgMC00IDEuOC00IDRzMS44IDQgNCA0IDQtMS44IDQtNC0xLjgtNC00LTR6bTYtMTBDOS44IDMgOCA0LjggOCA3czEuOCA0IDQgNCA0LTEuOCA0LTQtMS44LTQtNC00em02IDEwYy0yLjIgMC00IDEuOC00IDRzMS44IDQgNCA0IDQtMS44IDQtNC0xLjgtNC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZlNjYW5uZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxMmgtMVY0SDZ2OEg1Yy0xLjY2IDAtMyAxLjM0LTMgM3Y1aDIwdi01YzAtMS42Ni0xLjM0LTMtMy0zem0tMyAwSDhWNmg4djZ6bTIgNWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCcm93c2VyTm90U3VwcG9ydGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNnYxMC41bDEuOTUgMS45NWMuMDMtLjE1LjA1LS4zLjA1LS40NVY2YzAtMS4xLS45LTItMi0ySDYuNWwyIDJIMTl6TTMuMjIgMy4zMiAxLjk1IDQuNTkgMyA1LjY0VjE4YzAgMS4xLjkgMiAyIDJoMTIuMzZsMi4wNiAyLjA2IDEuMjctMS4yN0wzLjIyIDMuMzJ6TTE1IDE4SDVWNy42NEwxNS4zNiAxOEgxNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQnJvd3NlclVwZGF0ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxM3YzYzAgMS4xLS45IDItMiAyaC0zbDEgMXYySDZ2LTJsMS0xSDRjLTEuMSAwLTItLjktMi0yVjVjMC0xLjEuOS0yIDItMmg4djJINHYxMWgxNnYtM2gyem0tNyAyLTUtNWg0VjNoMnY3aDRsLTUgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FzdENvbm5lY3RlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwiLFwib3BhY2l0eVwiOlwiLjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAxOHYzaDNjMC0xLjY2LTEuMzQtMy0zLTN6bTAtNHYyYzIuNzYgMCA1IDIuMjQgNSA1aDJjMC0zLjg3LTMuMTMtNy03LTd6bTE4LTdINXYxLjYzYzMuOTYgMS4yOCA3LjA5IDQuNDEgOC4zNyA4LjM3SDE5Vjd6TTEgMTB2MmE5IDkgMCAwIDEgOSA5aDJjMC02LjA4LTQuOTMtMTEtMTEtMTF6bTIwLTdIM2MtMS4xIDAtMiAuOS0yIDJ2M2gyVjVoMTh2MTRoLTd2Mmg3YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhc3RGb3JFZHVjYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2M2gyVjVoMTh2MTRoLTd2Mmg3YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTEgMTh2M2gzYzAtMS42Ni0xLjM0LTMtMy0zem0wLTR2MmMyLjc2IDAgNSAyLjI0IDUgNWgyYzAtMy44Ny0zLjEzLTctNy03em0wLTR2MmE5IDkgMCAwIDEgOSA5aDJjMC02LjA4LTQuOTMtMTEtMTEtMTF6bTEwIDEuMDl2MkwxNC41IDE1bDMuNS0xLjkxdi0yTDE0LjUgMTMgMTEgMTEuMDl6TTE0LjUgNiA5IDlsNS41IDNMMjAgOWwtNS41LTN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIixcIm9wYWNpdHlcIjpcIi4xXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2M2gyVjVoMTh2MTRoLTd2Mmg3YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTEgMTh2M2gzYzAtMS42Ni0xLjM0LTMtMy0zem0wLTR2MmMyLjc2IDAgNSAyLjI0IDUgNWgyYzAtMy44Ny0zLjEzLTctNy03em0wLTR2MmE5IDkgMCAwIDEgOSA5aDJjMC02LjA4LTQuOTMtMTEtMTEtMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbXB1dGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMThjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjIgNmMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAySDB2MmgyNHYtMmgtNHpNNCA2aDE2djEwSDRWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29ubmVjdGVkVHYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoNXYyaDh2LTJoNWMxLjEgMCAxLjk5LS45IDEuOTktMkwyMyA1YzAtMS4xLS45LTItMi0yem0wIDE0SDNWNWgxOHYxMnpNNCAxNHYyaDJjMC0xLjExLS44OS0yLTItMnptMC0zdjEuNDNjMS45NyAwIDMuNTcgMS42IDMuNTcgMy41N0g5YzAtMi43Ni0yLjI0LTUtNS01em0wLTN2MS40NWMzLjYxIDAgNi41NSAyLjkzIDYuNTUgNi41NUgxMmMwLTQuNDItMy41OS04LTgtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29udmV5b3JCZWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTVINWMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgM2gxNGMxLjY2IDAgMy0xLjM0IDMtM3MtMS4zNC0zLTMtM3ptMCA0SDVjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTFoMTRjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDF6TTkgNHY4YzAgLjU1LjQ1IDEgMSAxaDhjLjU1IDAgMS0uNDUgMS0xVjRjMC0uNTUtLjQ1LTEtMS0xaC04Yy0uNTUgMC0xIC40NS0xIDF6bTcgNGgtNFY2LjAyaDRWOHpNMiA5LjAyaDQuOTR2MS45MUgyVjkuMDJ6bTIuMDEtM2gyLjkzdjEuOTZINC4wMVY2LjAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREZXNrdG9wTWFjIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM0g0Yy0xLjEgMC0yIC45LTIgMnYxMWMwIDEuMS45IDIgMiAyaDZsLTIgMnYxaDh2LTFsLTItMmg2YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGVza3RvcFdpbmRvd3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAzSDRjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoNnYySDh2Mmg4di0yaC0ydi0yaDZjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREZXZlbG9wZXJCb2FyZE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuODMgNUgxOHYxMC4xN0wxOS44MyAxN0gyMnYtMmgtMnYtMmgydi0yaC0yVjloMlY3aC0yVjVjMC0xLjEtLjktMi0yLTJINS44M2wyIDJ6TTEyIDkuMTdWN2g0djNoLTMuMTdMMTIgOS4xN3pNOS44MyA3SDExdjEuMTdMOS44MyA3em00IDRIMTZ2Mi4xN0wxMy44MyAxMXpNMTggMjFjLjA2IDAgLjExIDAgLjE2LS4wMWwyLjMyIDIuMzIgMS40MS0xLjQxTDIuMSAyLjEuNjkgMy41MWwxLjMyIDEuMzJDMiA0Ljg5IDIgNC45NCAyIDV2MTRjMCAxLjEuOSAyIDIgMmgxNHpNNCAxOVY2LjgzbDIgMlYxMmgzLjE3bDEgMUg2djRoNXYtMy4xN2wxIDFWMTdoMi4xN2wyIDJINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGV2ZWxvcGVyQm9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDlWN2gtMlY1YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTJoMnYtMmgtMnYtMmgydi0yaC0yVjloMnptLTQgMTBINFY1aDE0djE0ek02IDEzaDV2NEg2em02LTZoNHYzaC00ek02IDdoNXY1SDZ6bTYgNGg0djZoLTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGV2aWNlSHViIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcgMTYtNC00VjguODJDMTQuMTYgOC40IDE1IDcuMyAxNSA2YzAtMS42Ni0xLjM0LTMtMy0zUzkgNC4zNCA5IDZjMCAxLjMuODQgMi40IDIgMi44MlYxMmwtNCA0SDN2NWg1di0zLjA1bDQtNC4yIDQgNC4yVjIxaDV2LTVoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERldmljZVVua25vd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxSDdjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxOEg3VjVoMTB2MTR6TTEyIDYuNzJjLTEuOTYgMC0zLjUgMS41Mi0zLjUgMy40N2gxLjc1YzAtLjkzLjgyLTEuNzUgMS43NS0xLjc1czEuNzUuODIgMS43NSAxLjc1YzAgMS43NS0yLjYzIDEuNTctMi42MyA0LjQ1aDEuNzZjMC0xLjk2IDIuNjItMi4xOSAyLjYyLTQuNDUgMC0xLjk2LTEuNTQtMy40Ny0zLjUtMy40N3ptLS44OCA4LjhoMS43NnYxLjc2aC0xLjc2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREZXZpY2VzT3RoZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDZoMThWNEgzYy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDR2LTJIM1Y2em0xMCA2SDl2MS43OGMtLjYxLjU1LTEgMS4zMy0xIDIuMjJzLjM5IDEuNjcgMSAyLjIyVjIwaDR2LTEuNzhjLjYxLS41NSAxLTEuMzQgMS0yLjIycy0uMzktMS42Ny0xLTIuMjJWMTJ6bS0yIDUuNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6TTIyIDhoLTZjLS41IDAtMSAuNS0xIDF2MTBjMCAuNS41IDEgMSAxaDZjLjUgMCAxLS41IDEtMVY5YzAtLjUtLjUtMS0xLTF6bS0xIDEwaC00di04aDR2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMjNoOHYtMkg4djJ6bTgtMjEuOTlMOCAxYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTYgMTVIOFY1aDh2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVhcmJ1ZHNCYXR0ZXJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgN2gtMVY2aC0ydjFoLTFjLS41NSAwLTEgLjQ1LTEgMXY5YzAgLjU1LjQ1IDEgMSAxaDRjLjU1IDAgMS0uNDUgMS0xVjhjMC0uNTUtLjQ1LTEtMS0xek0xMC42MiA2QzguNzYgNiA3LjI1IDcuNTEgNy4yNSA5LjM4djUuMjVjMCAxLjA0LS44NCAxLjg4LTEuODggMS44OHMtMS44Ny0uODUtMS44Ny0xLjg5di00LjdjLjE2LjA1LjMzLjA4LjUuMDggMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAydjYuNjJDMiAxNi40OSAzLjUxIDE4IDUuMzggMThzMy4zOC0xLjUxIDMuMzgtMy4zOFY5LjM4YzAtMS4wNC44NC0xLjg4IDEuODgtMS44OHMxLjg4Ljg0IDEuODggMS44OHY0LjdjLS4xOC0uMDUtLjM1LS4wOC0uNTItLjA4LTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yVjkuMzhDMTQgNy41MSAxMi40OSA2IDEwLjYyIDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVhcmJ1ZHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjIgMy4wMUM0LjQ0IDIuODkgMyA0LjQyIDMgNi4xOVYxNmMwIDIuNzYgMi4yNCA1IDUgNXM1LTIuMjQgNS01VjhjMC0xLjY2IDEuMzQtMyAzLTNzMyAxLjM0IDMgM3Y3aC0uODNjLTEuNjEgMC0zLjA2IDEuMTgtMy4xNyAyLjc5QTMgMyAwIDAgMCAxNy44IDIxYzEuNzYuMTIgMy4yLTEuNDIgMy4yLTMuMThWOGMwLTIuNzYtMi4yNC01LTUtNXMtNSAyLjI0LTUgNXY4YzAgMS42Ni0xLjM0IDMtMyAzcy0zLTEuMzQtMy0zVjloLjgzQzcuNDQgOSA4Ljg5IDcuODIgOSA2LjIxYy4xMS0xLjY4LTEuMTctMy4xLTIuOC0zLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcmtsaWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMgMTd2MmgtNVYzaDJ2MTRoM3ptLTYuMjctMS44NWMuMTcuNDIuMjcuODcuMjcgMS4zNSAwIDEuOTMtMS41NyAzLjUtMy41IDMuNS0xLjQgMC0yLjYtLjgyLTMuMTYtMkg2LjgzQTIuOTkgMi45OSAwIDAgMSA0IDIwYy0xLjY2IDAtMy0xLjM0LTMtMyAwLS44OS4zOS0xLjY5IDEtMi4yNFYxMGgyVjRoOGw0LjczIDExLjE1ek01IDE3YzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxIC40NSAxIDEgMSAxLS40NSAxLTF6bTguNjUtNC0yLjk3LTdINnY0bDIuOTIgM2g0Ljczek0xNSAxNi41YzAtLjgzLS42Ny0xLjUtMS41LTEuNXMtMS41LjY3LTEuNSAxLjUuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGcm9udExvYWRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5LjUgNi41LTEuOTEgMS45MWMtLjM4LjM4LS41OS44OS0uNTkgMS40MlYxMWgtMVY3YzAtMS42Ni0xLjM0LTMtMy0zSDh2NUgzYy0xLjEgMC0yIC45LTIgMnY1Ljg1YzAgMS41OCAxLjE2IDMuMDEgMi43NCAzLjE0YTIuOTkgMi45OSAwIDAgMCAzLjA3LTEuOThsNC4zNy0uMDFhMi45NzkgMi45NzkgMCAwIDAgMy40MSAxLjk0IDMuMDEzIDMuMDEzIDAgMCAwIDIuMzUtMi4zOWMuMi0xLjExLS4yMi0yLjExLS45NS0yLjc3VjEzaDFjMCAxLjEuOSAyIDIgMmg1TDE5LjUgNi41ek00IDE4Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTYtMTJoM2MuNTUgMCAxIC40NSAxIDF2NGgtNFY2em00IDEyYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdhbWVwYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA3LjVWMkg5djUuNWwzIDMgMy0zek03LjUgOUgydjZoNS41bDMtMy0zLTN6TTkgMTYuNVYyMmg2di01LjVsLTMtMy0zIDN6TTE2LjUgOWwtMyAzIDMgM0gyMlY5aC01LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhlYWRwaG9uZXNCYXR0ZXJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgN2gtMVY2aC0ydjFoLTFjLS41NSAwLTEgLjQ1LTEgMXY5YzAgLjU1LjQ1IDEgMSAxaDRjLjU1IDAgMS0uNDUgMS0xVjhjMC0uNTUtLjQ1LTEtMS0xek04IDZjLTMuMzEgMC02IDIuNjktNiA2djRjMCAxLjEuOSAyIDIgMmgydi01SDMuNXYtMWMwLTIuNDggMi4wMi00LjUgNC41LTQuNXM0LjUgMi4wMiA0LjUgNC41djFIMTB2NWgyYzEuMSAwIDItLjkgMi0ydi00YzAtMy4zMS0yLjY5LTYtNi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZWFkcGhvbmVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgM2E5IDkgMCAwIDAtOSA5djdjMCAxLjEuOSAyIDIgMmg0di04SDV2LTFjMC0zLjg3IDMuMTMtNyA3LTdzNyAzLjEzIDcgN3YxaC00djhoNGMxLjEgMCAyLS45IDItMnYtN2E5IDkgMCAwIDAtOS05elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZWFkc2V0TWljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIixcIm9wYWNpdHlcIjpcIi4xXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDFhOSA5IDAgMCAwLTkgOXY3YzAgMS42NiAxLjM0IDMgMyAzaDN2LThINXYtMmMwLTMuODcgMy4xMy03IDctN3M3IDMuMTMgNyA3djJoLTR2OGg0djFoLTd2Mmg2YzEuNjYgMCAzLTEuMzQgMy0zVjEwYTkgOSAwIDAgMC05LTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhlYWRzZXRPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRjMy44NyAwIDcgMy4xMyA3IDd2MmgtMi45MkwyMSAxNy45MlYxMWE5IDkgMCAwIDAtOS05Yy0xLjk1IDAtMy43Ni42Mi01LjIzIDEuNjhsMS40NCAxLjQ0QTYuOTE0IDYuOTE0IDAgMCAxIDEyIDR6TTIuMjcgMS43MiAxIDNsMy4zMyAzLjMyQTguODk5IDguODk5IDAgMCAwIDMgMTF2N2MwIDEuNjYgMS4zNCAzIDMgM2gzdi04SDV2LTJjMC0xLjE3LjI5LTIuMjYuNzktMy4yMkwxNSAxN3Y0aDNjLjMgMCAuNTktLjA2Ljg2LS4xNEwyMSAyM2wxLjI3LTEuMjctMjAtMjAuMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhlYWRzZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwiLFwib3BhY2l0eVwiOlwiLjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMWE5IDkgMCAwIDAtOSA5djdjMCAxLjY2IDEuMzQgMyAzIDNoM3YtOEg1di0yYzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDd2MmgtNHY4aDNjMS42NiAwIDMtMS4zNCAzLTN2LTdhOSA5IDAgMCAwLTktOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSG9tZU1heCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDVINUMyLjc5IDUgMSA2Ljc5IDEgOXY1YzAgMi4yMSAxLjc5IDQgNCA0aDJ2MWgxMHYtMWgyYzIuMjEgMCA0LTEuNzkgNC00VjljMC0yLjIxLTEuNzktNC00LTR6bTIgOWMwIDEuMS0uOSAyLTIgMkg1Yy0xLjEgMC0yLS45LTItMlY5YzAtMS4xLjktMiAyLTJoMTRjMS4xIDAgMiAuOSAyIDJ2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSG9tZU1pbmkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA1QzQuMTkgNSAyIDkuNDggMiAxMmMwIDMuODYgMy4xMyA3IDYuOTkgN2g2LjAyQzE3LjcgMTkgMjIgMTYuOTIgMjIgMTJjMCAwIDAtNy0xMC03em0wIDJjNy42NCAwIDcuOTkgNC41MSA4IDVINGMwLS4yLjA5LTUgOC01em0yLjg2IDEwSDkuMTRjLTIuMSAwLTMuOTItMS4yNC00LjcxLTNoMTUuMTVjLS44IDEuNzYtMi42MiAzLTQuNzIgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kS2V5Ym9hcmRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA0SDNjLTEuMSAwLTIgLjktMiAydjEzYzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNNyAxMnYySDV2LTJoMnptLTItMlY4aDJ2Mkg1em02IDJ2Mkg5di0yaDJ6bS0yLTJWOGgydjJIOXptNyA2djFIOHYtMWg4em0tMS00djJoLTJ2LTJoMnptLTItMlY4aDJ2MmgtMnptNCA0di0yaDJ2MmgtMnptMi00aC0yVjhoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRLZXlib2FyZEFycm93RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy40MSA4LjU5IDEyIDEzLjE3bDQuNTktNC41OEwxOCAxMGwtNiA2LTYtNiAxLjQxLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEtleWJvYXJkQXJyb3dMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS40MSAxNi41OSAxMC44MyAxMmw0LjU4LTQuNTlMMTQgNmwtNiA2IDYgNiAxLjQxLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEtleWJvYXJkQXJyb3dSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41OSAxNi41OSAxMy4xNyAxMiA4LjU5IDcuNDEgMTAgNmw2IDYtNiA2LTEuNDEtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kS2V5Ym9hcmRBcnJvd1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy40MSAxNS40MSAxMiAxMC44M2w0LjU5IDQuNThMMTggMTRsLTYtNi02IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEtleWJvYXJkQmFja3NwYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTFINi44M2wzLjU4LTMuNTlMOSA2bC02IDYgNiA2IDEuNDEtMS40MUw2LjgzIDEzSDIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRLZXlib2FyZENhcHNsb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgOC40MSAxNi41OSAxMyAxOCAxMS41OWwtNi02LTYgNkw3LjQxIDEzIDEyIDguNDF6TTYgMThoMTJ2LTJINnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRLZXlib2FyZENvbW1hbmRLZXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy41IDNDMTUuNTcgMyAxNCA0LjU3IDE0IDYuNVY4aC00VjYuNUMxMCA0LjU3IDguNDMgMyA2LjUgM1MzIDQuNTcgMyA2LjUgNC41NyAxMCA2LjUgMTBIOHY0SDYuNUM0LjU3IDE0IDMgMTUuNTcgMyAxNy41UzQuNTcgMjEgNi41IDIxczMuNS0xLjU3IDMuNS0zLjVWMTZoNHYxLjVjMCAxLjkzIDEuNTcgMy41IDMuNSAzLjVzMy41LTEuNTcgMy41LTMuNS0xLjU3LTMuNS0zLjUtMy41SDE2di00aDEuNWMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVMxOS40MyAzIDE3LjUgM3pNMTYgOFY2LjVjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjVTMTguMzMgOCAxNy41IDhIMTZ6TTYuNSA4QzUuNjcgOCA1IDcuMzMgNSA2LjVTNS42NyA1IDYuNSA1IDggNS42NyA4IDYuNVY4SDYuNXptMy41IDZ2LTRoNHY0aC00em03LjUgNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41VjE2aDEuNWMuODMgMCAxLjUuNjcgMS41IDEuNXMtLjY3IDEuNS0xLjUgMS41em0tMTEgMGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzUuNjcgMTYgNi41IDE2SDh2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kS2V5Ym9hcmRDb250cm9sS2V5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNSAxMiAxLjQxIDEuNDFMMTIgNy44M2w1LjU5IDUuNThMMTkgMTJsLTctN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kS2V5Ym9hcmREb3VibGVBcnJvd0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA2LjQxIDE2LjU5IDUgMTIgOS41OCA3LjQxIDUgNiA2LjQxbDYgNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTggMTMtMS40MS0xLjQxTDEyIDE2LjE3bC00LjU5LTQuNThMNiAxM2w2IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEtleWJvYXJkRG91YmxlQXJyb3dMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNTkgMTggMTkgMTYuNTkgMTQuNDIgMTIgMTkgNy40MSAxNy41OSA2bC02IDZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTExIDE4IDEuNDEtMS40MUw3LjgzIDEybDQuNTgtNC41OUwxMSA2bC02IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEtleWJvYXJkRG91YmxlQXJyb3dSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNDEgNiA1IDcuNDEgOS41OCAxMiA1IDE2LjU5IDYuNDEgMThsNi02elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMyA2LTEuNDEgMS40MUwxNi4xNyAxMmwtNC41OCA0LjU5TDEzIDE4bDYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kS2V5Ym9hcmREb3VibGVBcnJvd1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxNy41OSA3LjQxIDE5IDEyIDE0LjQyIDE2LjU5IDE5IDE4IDE3LjU5bC02LTZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTYgMTEgMS40MSAxLjQxTDEyIDcuODNsNC41OSA0LjU4TDE4IDExbC02LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEtleWJvYXJkSGlkZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE1YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTkgM2gydjJoLTJWNnptMCAzaDJ2MmgtMlY5ek04IDZoMnYySDhWNnptMCAzaDJ2Mkg4Vjl6bS0xIDJINVY5aDJ2MnptMC0zSDVWNmgydjJ6bTkgN0g4di0yaDh2MnptMC00aC0yVjloMnYyem0wLTNoLTJWNmgydjJ6bTMgM2gtMlY5aDJ2MnptMC0zaC0yVjZoMnYyem0tNyAxNSA0LTRIOGw0IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEtleWJvYXJkT3B0aW9uS2V5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgNWg2djJoLTZ6TTkgNUgzdjJoNC44NWw2LjkyIDEySDIxdi0yaC01LjA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRLZXlib2FyZFJldHVybiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDd2NEg1LjgzbDMuNTgtMy41OUw4IDZsLTYgNiA2IDYgMS40MS0xLjQxTDUuODMgMTNIMjFWN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kS2V5Ym9hcmRUYWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS41OSA3LjQxIDE1LjE3IDExSDF2MmgxNC4xN2wtMy41OSAzLjU5TDEzIDE4bDYtNi02LTYtMS40MSAxLjQxek0yMCA2djEyaDJWNmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kS2V5Ym9hcmRWb2ljZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE1YzEuNjYgMCAyLjk5LTEuMzQgMi45OS0zTDE1IDZjMC0xLjY2LTEuMzQtMy0zLTNTOSA0LjM0IDkgNnY2YzAgMS42NiAxLjM0IDMgMyAzem01LjMtM2MwIDMtMi41NCA1LjEtNS4zIDUuMVM2LjcgMTUgNi43IDEySDVjMCAzLjQyIDIuNzIgNi4yMyA2IDYuNzJWMjJoMnYtMy4yOGMzLjI4LS40OCA2LTMuMyA2LTYuNzJoLTEuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kS2V5Ym9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDVINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE3YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMnptLTkgM2gydjJoLTJWOHptMCAzaDJ2MmgtMnYtMnpNOCA4aDJ2Mkg4Vjh6bTAgM2gydjJIOHYtMnptLTEgMkg1di0yaDJ2MnptMC0zSDVWOGgydjJ6bTkgN0g4di0yaDh2MnptMC00aC0ydi0yaDJ2MnptMC0zaC0yVjhoMnYyem0zIDNoLTJ2LTJoMnYyem0wLTNoLTJWOGgydjJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGFwdG9wQ2hyb21lYm9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDE4VjNIMnYxNUgwdjJoMjR2LTJoLTJ6bS04IDBoLTR2LTFoNHYxem02LTNINFY1aDE2djEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMYXB0b3BNYWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOGMxLjEgMCAxLjk5LS45IDEuOTktMkwyMiA1YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjExYzAgMS4xLjkgMiAyIDJIMGMwIDEuMS45IDIgMiAyaDIwYzEuMSAwIDItLjkgMi0yaC00ek00IDVoMTZ2MTFINFY1em04IDE0Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExhcHRvcFdpbmRvd3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOHYtMWMxLjEgMCAxLjk5LS45IDEuOTktMkwyMiA1YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJ2MUgwdjJoMjR2LTJoLTR6TTQgNWgxNnYxMEg0VjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExhcHRvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE4YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMkgwdjJoMjR2LTJoLTR6TTQgNmgxNnYxMEg0VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1lbW9yeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDlIOXY2aDZWOXptLTIgNGgtMnYtMmgydjJ6bTgtMlY5aC0yVjdjMC0xLjEtLjktMi0yLTJoLTJWM2gtMnYyaC0yVjNIOXYySDdjLTEuMSAwLTIgLjktMiAydjJIM3YyaDJ2MkgzdjJoMnYyYzAgMS4xLjkgMiAyIDJoMnYyaDJ2LTJoMnYyaDJ2LTJoMmMxLjEgMCAyLS45IDItMnYtMmgydi0yaC0ydi0yaDJ6bS00IDZIN1Y3aDEwdjEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb25pdG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAzSDRjLTEuMSAwLTIgLjktMiAydjExYzAgMS4xLjkgMiAyIDJoM2wtMSAxdjJoMTJ2LTJsLTEtMWgzYzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTNINFY1aDE2djExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb3VzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDEuMDdWOWg3YzAtNC4wOC0zLjA1LTcuNDQtNy03Ljkzek00IDE1YzAgNC40MiAzLjU4IDggOCA4czgtMy41OCA4LTh2LTRINHY0em03LTEzLjkzQzcuMDUgMS41NiA0IDQuOTIgNCA5aDdWMS4wN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGFsbGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxOHY0aDN2LTJoNS41djJoM3YtMkgxOXYyaDN2LTR6TTE4IDJINmMtLjU1IDAtMSAuNDUtMSAxdjEyYzAgLjU1LjQ1IDEgMSAxaDEyYy41NSAwIDEtLjQ1IDEtMVYzYzAtLjU1LS40NS0xLTEtMXptLTMgNkg5VjZoNnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaG9uZUFuZHJvaWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxSDhDNi4zNCAxIDUgMi4zNCA1IDR2MTZjMCAxLjY2IDEuMzQgMyAzIDNoOGMxLjY2IDAgMy0xLjM0IDMtM1Y0YzAtMS42Ni0xLjM0LTMtMy0zem0tMiAyMGgtNHYtMWg0djF6bTMuMjUtM0g2Ljc1VjRoMTAuNXYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGhvbmVJcGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDFoLThBMi41IDIuNSAwIDAgMCA1IDMuNXYxN0EyLjUgMi41IDAgMCAwIDcuNSAyM2g4YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTdBMi41IDIuNSAwIDAgMCAxNS41IDF6bS00IDIxYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXptNC41LTRIN1Y0aDl2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBob25lbGlua09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA2VjRINi44MmwyIDJIMjJ6TTEuOTIgMS42NS42NSAyLjkybDEuODIgMS44MkMyLjE4IDUuMDggMiA1LjUyIDIgNnYxMUgwdjNoMTcuNzNsMi4zNSAyLjM1IDEuMjctMS4yN0wzLjg5IDMuNjIgMS45MiAxLjY1ek00IDYuMjcgMTQuNzMgMTdINFY2LjI3ek0yMyA4aC02Yy0uNTUgMC0xIC40NS0xIDF2NC4xOGwyIDJWMTBoNHY3aC0yLjE4bDMgM0gyM2MuNTUgMCAxLS40NSAxLTFWOWMwLS41NS0uNDUtMS0xLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBob25lbGluayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNmgxOFY0SDRjLTEuMSAwLTIgLjktMiAydjExSDB2M2gxNHYtM0g0VjZ6bTE5IDJoLTZjLS41NSAwLTEgLjQ1LTEgMXYxMGMwIC41NS40NSAxIDEgMWg2Yy41NSAwIDEtLjQ1IDEtMVY5YzAtLjU1LS40NS0xLTEtMXptLTEgOWgtNHYtN2g0djd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBvaW50T2ZTYWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMkg3Yy0xLjEgMC0yIC45LTIgMnYyYzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCA0SDdWNGgxMHYyem0zIDE2SDRjLTEuMSAwLTItLjktMi0ydi0xaDIwdjFjMCAxLjEtLjkgMi0yIDJ6bS0xLjQ3LTExLjgxQTIuMDA4IDIuMDA4IDAgMCAwIDE2LjcgOUg3LjNjLS43OSAwLTEuNTEuNDctMS44MyAxLjE5TDIgMThoMjBsLTMuNDctNy44MXpNOS41IDE2aC0xYy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjVoMWMuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjV6bTAtMmgtMWMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41aDFjLjI4IDAgLjUuMjIuNS41cy0uMjIuNS0uNS41em0wLTJoLTFjLS4yOCAwLS41LS4yMi0uNS0uNXMuMjItLjUuNS0uNWgxYy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNXptMyA0aC0xYy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjVoMWMuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjV6bTAtMmgtMWMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41aDFjLjI4IDAgLjUuMjIuNS41cy0uMjIuNS0uNS41em0wLTJoLTFjLS4yOCAwLS41LS4yMi0uNS0uNXMuMjItLjUuNS0uNWgxYy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNXptMyA0aC0xYy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjVoMWMuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjV6bTAtMmgtMWMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41aDFjLjI4IDAgLjUuMjIuNS41cy0uMjIuNS0uNS41em0wLTJoLTFjLS4yOCAwLS41LS4yMi0uNS0uNXMuMjItLjUuNS0uNWgxYy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUG93ZXJJbnB1dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA5djJoMTlWOUgyem0wIDZoNXYtMkgydjJ6bTcgMGg1di0ySDl2MnptNyAwaDV2LTJoLTV2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUm91dGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuMiA1LjkuOC0uOEMxOS42IDMuNyAxNy44IDMgMTYgM3MtMy42LjctNSAyLjFsLjguOEMxMyA0LjggMTQuNSA0LjIgMTYgNC4yczMgLjYgNC4yIDEuN3ptLS45LjhjLS45LS45LTIuMS0xLjQtMy4zLTEuNHMtMi40LjUtMy4zIDEuNGwuOC44Yy43LS43IDEuNi0xIDIuNS0xIC45IDAgMS44LjMgMi41IDFsLjgtLjh6TTE5IDEzaC0yVjloLTJ2NEg1Yy0xLjEgMC0yIC45LTIgMnY0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTRjMC0xLjEtLjktMi0yLTJ6TTggMThINnYtMmgydjJ6bTMuNSAwaC0ydi0yaDJ2MnptMy41IDBoLTJ2LTJoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTY2FubmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuOCAxMC43IDQuMiA1bC0uNyAxLjlMMTcuNiAxMkg1Yy0xLjEgMC0yIC45LTIgMnY0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTUuNWMwLS44LS41LTEuNi0xLjItMS44ek03IDE3SDV2LTJoMnYyem0xMiAwSDl2LTJoMTB2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2VjdXJpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxIDMgNXY2YzAgNS41NSAzLjg0IDEwLjc0IDkgMTIgNS4xNi0xLjI2IDktNi40NSA5LTEyVjVsLTktNHptMCAxMC45OWg3Yy0uNTMgNC4xMi0zLjI4IDcuNzktNyA4Ljk0VjEySDVWNi4zbDctMy4xMXY4Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpbUNhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS45OSA0YzAtMS4xLS44OS0yLTEuOTktMmgtOEw0IDh2MTJjMCAxLjEuOSAyIDIgMmgxMi4wMWMxLjEgMCAxLjk5LS45IDEuOTktMmwtLjAxLTE2ek05IDE5SDd2LTJoMnYyem04IDBoLTJ2LTJoMnYyem0tOC00SDd2LTRoMnY0em00IDRoLTJ2LTRoMnY0em0wLTZoLTJ2LTJoMnYyem00IDJoLTJ2LTRoMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTbWFydERpc3BsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNOS41IDE2LjV2LTlsNyA0LjUtNyA0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNtYXJ0U2NyZWVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNUgzYy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bS0zIDEySDZWN2gxMnYxMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTEuMjVoMS41djEuNUgxNXpNMTIuNSAxMS4yNUgxNHYxLjVoLTEuNXpNMTAgMTEuMjVoMS41djEuNUgxMHpNNy41IDExLjI1SDl2MS41SDcuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU21hcnRUb3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA5VjdjMC0xLjEtLjktMi0yLTJoLTNjMC0xLjY2LTEuMzQtMy0zLTNTOSAzLjM0IDkgNUg2Yy0xLjEgMC0yIC45LTIgMnYyYy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzdjRjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMnYtNGMxLjY2IDAgMy0xLjM0IDMtM3MtMS4zNC0zLTMtM3pNNy41IDExLjVjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjVTOS44MyAxMyA5IDEzcy0xLjUtLjY3LTEuNS0xLjV6TTE2IDE3SDh2LTJoOHYyem0tMS00Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTQuMTcgMTAgMTUgMTBzMS41LjY3IDEuNSAxLjVTMTUuODMgMTMgMTUgMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNtYXJ0cGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxLjAxIDcgMWMtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNyAxOUg3VjVoMTB2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwZWFrZXJHcm91cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjIgMUg5LjhDOC44MSAxIDggMS44MSA4IDIuOHYxNC40YzAgLjk5LjgxIDEuNzkgMS44IDEuNzlsOC40LjAxYy45OSAwIDEuOC0uODEgMS44LTEuOFYyLjhjMC0uOTktLjgxLTEuOC0xLjgtMS44ek0xNCAzYzEuMSAwIDIgLjg5IDIgMnMtLjkgMi0yIDItMi0uODktMi0yIC45LTIgMi0yem0wIDEzLjVjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTQgNCAxLjc5IDQgNC0xLjc5IDQtNCA0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE0XCIsXCJjeVwiOlwiMTIuNVwiLFwiclwiOlwiMi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgNUg0djE2YTIgMiAwIDAgMCAyIDJoMTB2LTJINlY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcGVha2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMkg3Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDEuOTkgMiAxLjk5TDE3IDIyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS01IDJjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyYTIgMiAwIDEgMSAwLTR6bTAgMTZjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1em0wLThjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjU5IDcuNDEgMTguMTcgMTFINnYyaDEyLjE3bC0zLjU5IDMuNTlMMTYgMThsNi02LTYtNi0xLjQxIDEuNDF6TTIgNnYxMmgyVjZIMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGFibGV0QW5kcm9pZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDBINkM0LjM0IDAgMyAxLjM0IDMgM3YxOGMwIDEuNjYgMS4zNCAzIDMgM2gxMmMxLjY2IDAgMy0xLjM0IDMtM1YzYzAtMS42Ni0xLjM0LTMtMy0zem0tNCAyMmgtNHYtMWg0djF6bTUuMjUtM0g0Ljc1VjNoMTQuNXYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGFibGV0TWFjIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC41IDBoLTE0QTIuNSAyLjUgMCAwIDAgMiAyLjV2MTlBMi41IDIuNSAwIDAgMCA0LjUgMjRoMTRhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xOUEyLjUgMi41IDAgMCAwIDE4LjUgMHptLTcgMjNjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41em03LjUtNEg0VjNoMTV2MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRhYmxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDRIM2MtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAxLjk5LS45IDEuOTktMkwyMyA2YzAtMS4xLS45LTItMi0yem0tMiAxNEg1VjZoMTR2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRveXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDE0YzAtMS45NS0xLjQtMy41Ny0zLjI1LTMuOTJMMTcuNCA2LjA1QTIuOTc4IDIuOTc4IDAgMCAwIDE0LjU2IDRIOS40NEM4LjE1IDQgNyA0LjgyIDYuNiA2LjA1TDUuODEgOC40IDQuNDEgN2wuMjktLjI5QS45OTYuOTk2IDAgMSAwIDMuMjkgNS4zbC0yIDJBLjk5Ni45OTYgMCAxIDAgMi43IDguNzFsLjMtLjMgMS43OSAxLjc5QzMuMTggMTAuNzIgMiAxMi4yMiAyIDE0YzAgMS41LjgzIDIuNzkgMi4wNSAzLjQ4QTMgMyAwIDAgMCA3IDIwYzEuMyAwIDIuNC0uODQgMi44Mi0yaDQuMzdjLjQxIDEuMTYgMS41MSAyIDIuODIgMmEzIDMgMCAwIDAgMi45NS0yLjUyQzIxLjE3IDE2Ljc5IDIyIDE1LjUgMjIgMTR6TTcgMThjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptNC04SDcuNDFsLS4wMi0uMDIgMS4xLTMuM0ExIDEgMCAwIDEgOS40NCA2SDExdjR6bTItNGgxLjU2YTEgMSAwIDAgMSAuOTUuNjhsMS4xIDMuMzJIMTNWNnptNCAxMmMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUcm9sbGV5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTR2Mkg0VjRIMlYyaDR2MTJoMTV6TTUuOTkgMTdDNC44OSAxNyA0IDE3LjkgNCAxOXMuODkgMiAxLjk5IDJDNy4xIDIxIDggMjAuMSA4IDE5cy0uOS0yLTIuMDEtMnptMTMgMGMtMS4xIDAtMS45OS45LTEuOTkgMnMuODkgMiAxLjk5IDJTMjEgMjAuMSAyMSAxOXMtLjktMi0yLjAxLTJ6TTEzIDEzSDdWN2g2djZ6bTcgMGgtNlY3aDZ2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoNXYyaDh2LTJoNWMxLjEgMCAxLjk5LS45IDEuOTktMkwyMyA1YzAtMS4xLS45LTItMi0yem0wIDE0SDNWNWgxOHYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlkZW9nYW1lQXNzZXRPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS4xOSAyMS4xOSAyLjgxIDIuODEgMS4zOSA0LjIyIDMuMyA2LjEzQzIuNTQgNi40MSAyIDcuMTUgMiA4djhjMCAxLjEuOSAyIDIgMmgxMS4xN2w0LjYxIDQuNjEgMS40MS0xLjQyek05IDEzdjJIN3YtMkg1di0yaDJWOS44M0wxMC4xNyAxM0g5em0xMS43IDQuODdjLjc2LS4yOCAxLjMtMS4wMiAxLjMtMS44N1Y4YzAtMS4xLS45LTItMi0ySDguODNMMjAuNyAxNy44N3pNMTcuNSA5Yy44MyAwIDEuNS42NyAxLjUgMS41cy0uNjcgMS41LTEuNSAxLjUtMS41LS42Ny0xLjUtMS41LjY3LTEuNSAxLjUtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWaWRlb2dhbWVBc3NldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwdjI0aDI0VjBIMHptMjMgMTZjMCAxLjEtLjkgMi0yIDJIM2MtMS4xIDAtMi0uOS0yLTJWOGMwLTEuMS45LTIgMi0yaDE4YzEuMSAwIDIgLjkgMiAydjh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDZIM2MtMS4xIDAtMiAuOS0yIDJ2OGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bS0xMCA3SDh2M0g2di0zSDN2LTJoM1Y4aDJ2M2gzdjJ6bTQuNSAyYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXptNC0zYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTguNjcgOSAxOS41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXYXRjaE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDdjMi43NiAwIDUgMi4yNCA1IDUgMCAuNjQtLjEzIDEuMjUtLjM1IDEuODJsMS41IDEuNWE2Ljk2MyA2Ljk2MyAwIDAgMC0xLjc5LTguNzlMMTUgMkg5bC0uOTYgMy4yMSAyLjE0IDIuMTRDMTAuNzUgNy4xMyAxMS4zNiA3IDEyIDd6TTIuODEgMi44MSAxLjM5IDQuMjJsNC40NiA0LjQ2YTYuOTYzIDYuOTYzIDAgMCAwIDEuNzkgOC43OUw5IDIyaDZsLjk2LTMuMjEgMy44MiAzLjgyIDEuNDEtMS40MUwyLjgxIDIuODF6TTEyIDE3Yy0yLjc2IDAtNS0yLjI0LTUtNSAwLS42NC4xMy0xLjI1LjM1LTEuODJsNi40NyA2LjQ3Yy0uNTcuMjItMS4xOC4zNS0xLjgyLjM1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXYXRjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCIsXCJvcGFjaXR5XCI6XCIuMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxMmMwLTIuNTQtMS4xOS00LjgxLTMuMDQtNi4yN0wxNiAwSDhsLS45NSA1LjczQzUuMTkgNy4xOSA0IDkuNDUgNCAxMnMxLjE5IDQuODEgMy4wNSA2LjI3TDggMjRoOGwuOTYtNS43M0E3Ljk3NiA3Ljk3NiAwIDAgMCAyMCAxMnpNNiAxMmMwLTMuMzEgMi42OS02IDYtNnM2IDIuNjkgNiA2LTIuNjkgNi02IDYtNi0yLjY5LTYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXV0b01vZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS4wMyAzLjU2Yy0xLjY3LTEuMzktMy43NC0yLjMtNi4wMy0yLjUxdjIuMDFjMS43My4xOSAzLjMxLjg4IDQuNjEgMS45MmwxLjQyLTEuNDJ6TTExIDMuMDZWMS4wNWMtMi4yOS4yLTQuMzYgMS4xMi02LjAzIDIuNTFsMS40MiAxLjQyQTguOTI4IDguOTI4IDAgMCAxIDExIDMuMDZ6TTQuOTggNi4zOSAzLjU2IDQuOTdDMi4xNyA2LjY0IDEuMjYgOC43MSAxLjA1IDExaDIuMDFjLjE5LTEuNzMuODgtMy4zMSAxLjkyLTQuNjF6TTIwLjk0IDExaDIuMDFjLS4yMS0yLjI5LTEuMTItNC4zNi0yLjUxLTYuMDNsLTEuNDIgMS40MkE4LjkyOCA4LjkyOCAwIDAgMSAyMC45NCAxMXpNNyAxMmwzLjQ0IDEuNTZMMTIgMTdsMS41Ni0zLjQ0TDE3IDEybC0zLjQ0LTEuNTZMMTIgN2wtMS41NiAzLjQ0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyMWE4Ljk2IDguOTYgMCAwIDEtNy40Ni00SDd2LTJIMXY2aDJ2LTIuN2MxLjk5IDIuODQgNS4yNyA0LjcgOSA0LjcgNC44NyAwIDktMy4xNyAxMC40NC03LjU2bC0xLjk2LS40NUMxOS4yNSAxOC40OCAxNS45MiAyMSAxMiAyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmxpbmRzQ2xvc2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTlWM0g0djE2SDJ2MmgxMS4yNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NXMxLjc1LS43OCAxLjc1LTEuNzVIMjJ2LTJoLTJ6bS0yLThoLTJWOWgydjJ6bS00IDBINlY5aDh2MnptMCAydjJINnYtMmg4em0yIDBoMnYyaC0ydi0yem0yLTZoLTJWNWgydjJ6bS00LTJ2Mkg2VjVoOHpNNiAxOXYtMmg4djJINnptMTAgMHYtMmgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJsaW5kcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE5VjNINHYxNkgydjJoMjB2LTJoLTJ6TTE2IDloMnYyaC0yVjl6bS0yIDJINlY5aDh2MnptNC00aC0yVjVoMnYyem0tNC0ydjJINlY1aDh6TTYgMTl2LTZoOHYxLjgyQTEuNzQ2IDEuNzQ2IDAgMCAwIDE1IDE4YTEuNzQ2IDEuNzQ2IDAgMCAwIDEtMy4xOFYxM2gydjZINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQnJvYWRjYXN0T25Ib21lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNmMwLTEuMS0uOS0yLTItMkg0djJoMTZ2Mi41OWMuNzMuMjkgMS40LjY5IDIgMS4xN1Y2ek04IDlIM2MtLjUgMC0xIC41LTEgMXY5YzAgLjUuNSAxIDEgMWg1Yy41IDAgMS0uNSAxLTF2LTljMC0uNS0uNS0xLTEtMXptLTEgOUg0di03aDN2N3pNMTcuNzUgMTYuOTdjLjMtLjIzLjUtLjU3LjUtLjk3YTEuMjUgMS4yNSAwIDAgMC0yLjUgMGMwIC40LjIuNzUuNS45N1YyMmgxLjV2LTUuMDN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEzLjVhMi41IDIuNSAwIDAgMSAyLjUgMi41YzAgLjY5LS4yOCAxLjMxLS43MyAxLjc2bDEuMDYgMS4wNkMyMC41NSAxOC4xIDIxIDE3LjEgMjEgMTZjMC0yLjIxLTEuNzktNC00LTRzLTQgMS43OS00IDRjMCAxLjEuNDUgMi4xIDEuMTcgMi44M2wxLjA2LTEuMDZBMi41IDIuNSAwIDAgMSAxNyAxMy41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA5LjVhNi41IDYuNSAwIDAgMC02LjUgNi41YzAgMS43OS43MyAzLjQyIDEuOSA0LjZsMS4wNi0xLjA2QzEyLjU2IDE4LjYzIDEyIDE3LjM4IDEyIDE2YzAtMi43NiAyLjI0LTUgNS01czUgMi4yNCA1IDVjMCAxLjM3LS41NiAyLjYyLTEuNDYgMy41MmwxLjA3IDEuMDZBNi41IDYuNSAwIDAgMCAxNyA5LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJyb2FkY2FzdE9uUGVyc29uYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA4Yy43IDAgMS4zOC4xIDIuMDIuMjdMMTIgMyA0IDl2MTJoNi43NkE3Ljk5OCA3Ljk5OCAwIDAgMSAxNyA4ek0xNyAxNC43NWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjUgMCAuNC4yLjc1LjUuOTdWMjJoMS41di01LjAzYy4zLS4yMy41LS41Ny41LS45NyAwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEyYy0yLjIxIDAtNCAxLjc5LTQgNCAwIDEuMS40NSAyLjEgMS4xNyAyLjgzbDEuMDYtMS4wNkEyLjUgMi41IDAgMSAxIDE5LjUgMTZjMCAuNjktLjI4IDEuMzEtLjczIDEuNzZsMS4wNiAxLjA2QzIwLjU1IDE4LjEgMjEgMTcuMSAyMSAxNmMwLTIuMjEtMS43OS00LTQtNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgOS41YTYuNSA2LjUgMCAwIDAtNi41IDYuNWMwIDEuNzkuNzMgMy40MiAxLjkgNC42bDEuMDYtMS4wNkMxMi41NiAxOC42MyAxMiAxNy4zOCAxMiAxNmMwLTIuNzYgMi4yNC01IDUtNXM1IDIuMjQgNSA1YzAgMS4zNy0uNTYgMi42Mi0xLjQ2IDMuNTJsMS4wNyAxLjA2QTYuNSA2LjUgMCAwIDAgMTcgOS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDbG91ZHlTbm93aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxOGMwIC41NS40NSAxIDEgMXMxLS40NSAxLTEtLjQ1LTEtMS0xLTEgLjQ1LTEgMXptMTIgMGMwIC41NS40NSAxIDEgMXMxLS40NSAxLTEtLjQ1LTEtMS0xLTEgLjQ1LTEgMXptLTkgNGMwIC41NS40NSAxIDEgMXMxLS40NSAxLTEtLjQ1LTEtMS0xLTEgLjQ1LTEgMXptMy00YzAgLjU1LjQ1IDEgMSAxczEtLjQ1IDEtMS0uNDUtMS0xLTEtMSAuNDUtMSAxem0zIDRjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xLS40NS0xLTEtMS0xIC40NS0xIDF6bTMuNS02aC0xMEE1LjUxIDUuNTEgMCAwIDEgMiAxMC41YzAtMi43NiAyLjA5LTUuMDkgNC43OC01LjQ0QTUuOTc1IDUuOTc1IDAgMCAxIDEyIDJjMi45NyAwIDUuNDUgMi4xOCA1LjkyIDUuMDJBNC41IDQuNSAwIDAgMSAyMiAxMS41YzAgMi40OC0yLjAyIDQuNS00LjUgNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDdXJ0YWluc0Nsb3NlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE5VjNINHYxNkgydjJoMjB2LTJoLTJ6TTExIDVoMnYxNGgtMlY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDdXJ0YWlucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE5VjNINHYxNkgydjJoMjB2LTJoLTJ6TTguMTkgMTJjMi4wNC0xLjM1IDMuNS0zLjk0IDMuNzYtN2guMDljLjI2IDMuMDYgMS43MiA1LjY1IDMuNzYgNy0yLjA0IDEuMzUtMy41IDMuOTQtMy43NiA3aC0uMDljLS4yNi0zLjA2LTEuNzItNS42NS0zLjc2LTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVsZWN0cmljQm9sdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjY5IDIuMjEgNC4zMyAxMS40OWMtLjY0LjU4LS4yOCAxLjY1LjU4IDEuNzNMMTMgMTRsLTQuODUgNi43NmMtLjIyLjMxLS4xOS43NC4wOCAxLjAxLjMuMy43Ny4zMSAxLjA4LjAybDEwLjM2LTkuMjhjLjY0LS41OC4yOC0xLjY1LS41OC0xLjczTDExIDEwbDQuODUtNi43NmMuMjItLjMxLjE5LS43NC0uMDgtMS4wMWEuNzcuNzcgMCAwIDAtMS4wOC0uMDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVsZWN0cmljTWV0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYy00Ljk2IDAtOSA0LjA0LTkgOSAwIDMuOTEgMi41MSA3LjI0IDYgOC40N1YyMmgydi0yLjA2YTguMjYyIDguMjYyIDAgMCAwIDIgMFYyMmgydi0yLjUzYzMuNDktMS4yNCA2LTQuNTcgNi04LjQ3IDAtNC45Ni00LjA0LTktOS05em0yLjI1IDEyLTMgMy0xLjUtMS41TDExIDE0LjI1IDkuNzUgMTNsMy0zIDEuNSAxLjVMMTMgMTIuNzUgMTQuMjUgMTR6TTE2IDlIOFY3aDh2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRW5lcmd5U2F2aW5nc0xlYWYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAzYy00LjggMC05IDMuODYtOSA5IDAgMi4xMi43NCA0LjA3IDEuOTcgNS42MUwzIDE5LjU5IDQuNDEgMjFsMS45Ny0xLjk3QTkuMDEyIDkuMDEyIDAgMCAwIDEyIDIxYzIuMyAwIDQuNjEtLjg4IDYuMzYtMi42NEE4Ljk1IDguOTUgMCAwIDAgMjEgMTJWM2gtOXptMy44MyA5LjI2LTUuMTYgNC42M2MtLjE2LjE1LS40MS4xNC0uNTYtLjAxYS4zOTcuMzk3IDAgMCAxLS4wNC0uNTJsMi40NC0zLjMzLTQuMDUtLjRhLjUxNC41MTQgMCAwIDEtLjMtLjg5bDUuMTYtNC42M2MuMTYtLjE1LjQxLS4xNC41Ni4wMS4xNC4xNC4xNi4zNi4wNC41MmwtMi40NCAzLjMzIDQuMDUuNGMuNDUuMDQuNjMuNTkuMy44OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9nZ3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy45MiA3LjAyQzE3LjQ1IDQuMTggMTQuOTcgMiAxMiAyIDkuODIgMiA3LjgzIDMuMTggNi43OCA1LjA2IDQuMDkgNS40MSAyIDcuNzQgMiAxMC41IDIgMTMuNTMgNC40NyAxNiA3LjUgMTZoMTBjMi40OCAwIDQuNS0yLjAyIDQuNS00LjVhNC41IDQuNSAwIDAgMC00LjA4LTQuNDh6bS4wOCA5Ljk5Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bS0xMSAzYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bS0xLTNoOWMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMUg2Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xem00IDNoN2MuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMWgtN2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR2FzTWV0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA0aC0xVjJoLTJ2MmgtMlYySDl2Mkg4QzUuNzkgNCA0IDUuNzkgNCA4djEwYzAgMi4yMSAxLjc5IDQgNCA0aDhjMi4yMSAwIDQtMS43OSA0LTRWOGMwLTIuMjEtMS43OS00LTQtNHptLTQgMTRjLTEuMzggMC0yLjUtMS4xLTIuNS0yLjQ2IDAtMS4wOS40My0xLjM5IDIuNS0zLjc5IDIuMDUgMi4zOCAyLjUgMi43IDIuNSAzLjc5QzE0LjUgMTYuOSAxMy4zOCAxOCAxMiAxOHptNC04SDhWOGg4djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhlYXRQdW1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS02LjI1IDQuMDhjLjgyLjEyIDEuNTcuNDQgMi4yLjkxbC0yLjIgMi4yVjcuMDh6bS0xLjUgMHYzLjExbC0yLjItMi4yYy42My0uNDcgMS4zOC0uNzkgMi4yLS45MXpNNy45OSA5LjA1bDIuMiAyLjJINy4wOGMuMTItLjgyLjQ0LTEuNTcuOTEtMi4yem0tLjkxIDMuN2gzLjExbC0yLjIgMi4yYy0uNDctLjYzLS43OS0xLjM4LS45MS0yLjJ6bTQuMTcgNC4xN2MtLjgyLS4xMi0xLjU3LS40NC0yLjItLjkxbDIuMi0yLjJ2My4xMXpNMTIgMTNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptLjc1IDMuOTJ2LTMuMTFsMi4yIDIuMmMtLjYzLjQ3LTEuMzguNzktMi4yLjkxem0zLjI2LTEuOTctMi4yLTIuMmgzLjExYy0uMTIuODItLjQ0IDEuNTctLjkxIDIuMnptLTIuMi0zLjcgMi4yLTIuMmMuNDcuNjQuNzkgMS4zOS45MSAyLjJoLTMuMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vZGVGYW5PZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNi4zNCA4LjM2LTIuMjkuODJjLS4xOC0uMTMtLjM4LS4yNS0uNTgtLjM0LjE3LS44My42My0xLjU4IDEuMzYtMi4wNkMxNi44NSA1LjQ0IDE2LjE4IDIgMTMuMzkgMmMtMy4wOCAwLTQuOSAxLjQ3LTUuMyAzLjI2TDE4LjczIDE1LjljMS41LjM5IDMuMjctLjUxIDMuMjctMi41MSAwLTQuMzktMy4wMS02LjIzLTUuNjYtNS4wM3pNMi44MSAyLjgxIDEuMzkgNC4yMiA1LjI3IDguMUMzLjc3IDcuNyAyIDguNjEgMiAxMC42MWMwIDQuNCAzLjAxIDYuMjQgNS42NiA1LjAzbDIuMjktLjgyYy4xOC4xMy4zOC4yNS41OC4zNC0uMTcuODMtLjYzIDEuNTgtMS4zNiAyLjA2QzcuMTUgMTguNTYgNy44MiAyMiAxMC42MSAyMmMzLjA4IDAgNC45LTEuNDcgNS4zLTMuMjZsMy44NyAzLjg3IDEuNDEtMS40MUwyLjgxIDIuODF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5lc3RDYW1XaXJlZFN0YW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUuODMgMS4wMS00LjExLjQyQzguNDcgMS43NSA2IDQuNDggNiA3Ljc1czIuNDcgNiA1LjcyIDYuMzNsMS45LjE5LS41Ni44NWMtLjM1LS4wOC0uNy0uMTItMS4wNi0uMTItMi43NiAwLTUgMi4yNC01IDV2MmMwIC41NS40NSAxIDEgMWg4Yy41NSAwIDEtLjQ1IDEtMXYtMmMwLTEuNjctLjgzLTMuMTUtMi4wOS00LjA2bC45Ny0xLjQ1YzEuMTQuMDcgMi4xMi0uODMgMi4xMi0xLjk5VjNjMC0xLjE3LTEtMi4wOS0yLjE3LTEuOTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE9pbEJhcnJlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDEzYy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xaC0xVjVoMWMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMUg0Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxaDF2Nkg0Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxaDF2Nkg0Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxaDE2Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xaC0xdi02aDF6bS04IDNjLTEuNjYgMC0zLTEuMzItMy0yLjk1IDAtMS4zLjUyLTEuNjcgMy00LjU1IDIuNDcgMi44NiAzIDMuMjQgMyA0LjU1IDAgMS42My0xLjM0IDIuOTUtMyAyLjk1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQcm9wYW5lVGFuayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTV2M2MwIDIuMjEgMS43OSA0IDQgNGg4YzIuMjEgMCA0LTEuNzkgNC00di0zSDR6TTIwIDEzdi0zYzAtMS44Ni0xLjI4LTMuNDEtMy0zLjg2VjRjMC0xLjEtLjktMi0yLTJIOWMtMS4xIDAtMiAuOS0yIDJ2Mi4xNGMtMS43Mi40NS0zIDItMyAzLjg2djNoMTZ6TTkgNGg2djJoLTJjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDFIOVY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQcm9wYW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNmgtMVY1YzAtMS4xLS45LTItMi0yaC00Yy0xLjEgMC0yIC45LTIgMnYxSDdjLTMuMzEgMC02IDIuNjktNiA2czIuNjkgNiA2IDZ2M2gydi0zaDZ2M2gydi0zYzMuMzEgMCA2LTIuNjkgNi02cy0yLjY5LTYtNi02em0tNy0xaDR2MWgtNFY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSb2xsZXJTaGFkZXNDbG9zZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOVYzSDR2MTZIMnYyaDguMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVzMS43NS0uNzggMS43NS0xLjc1SDIydi0yaC0yek02IDE5di0yaDV2Mkg2em03IDB2LTJoNXYyaC01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSb2xsZXJTaGFkZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOVYzSDR2MTZIMnYyaDIwdi0yaC0yek02IDE5di02aDV2MS44Yy0uNC4zLS44LjgtLjggMS40IDAgMSAuOCAxLjggMS44IDEuOHMxLjgtLjggMS44LTEuOGMwLS42LS4zLTEuMS0uOC0xLjRWMTNoNXY2SDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNlbnNvckRvb3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAySDZjLTEuMSAwLTIgLjktMiAydjE4aDE2VjRjMC0xLjEtLjktMi0yLTJ6bS0yLjUgMTEuNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNlbnNvck9jY3VwaWVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTFjMS42NiAwIDMtMS4zNCAzLTNzLTEuMzQtMy0zLTMtMyAxLjM0LTMgMyAxLjM0IDMgMyAzek0xMiAxMmMtMS44NCAwLTMuNTYuNS01LjAzIDEuMzctLjYxLjM1LS45NyAxLjAyLS45NyAxLjcyVjE3aDEydi0xLjkxYzAtLjctLjM2LTEuMzYtLjk3LTEuNzJBOS44NDQgOS44NDQgMCAwIDAgMTIgMTJ6TTIxLjIzIDguMTVsMS44NS0uNzdBMTIuMDU2IDEyLjA1NiAwIDAgMCAxNi42Mi45MmwtLjc3IDEuODVjMi40MiAxLjAyIDQuMzYgMi45NiA1LjM4IDUuMzh6TTguMTUgMi43NyA3LjM4LjkyQTEyLjA4OSAxMi4wODkgMCAwIDAgLjkyIDcuMzhsMS44NS43N2MxLjAyLTIuNDIgMi45Ni00LjM2IDUuMzgtNS4zOHpNMi43NyAxNS44NWwtMS44NS43N2MxLjIyIDIuOTEgMy41NSA1LjI1IDYuNDYgNi40NmwuNzctMS44NWExMC4xMTcgMTAuMTE3IDAgMCAxLTUuMzgtNS4zOHpNMTUuODUgMjEuMjNsLjc3IDEuODVjMi45MS0xLjIyIDUuMjUtMy41NSA2LjQ2LTYuNDZsLTEuODUtLjc3YTEwLjExNyAxMC4xMTcgMCAwIDEtNS4zOCA1LjM4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZW5zb3JXaW5kb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA0djE2SDZWNGgxMm0wLTJINmMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek03IDE5aDEwdi02SDd2NnptMy05aDR2MWgzVjVIN3Y2aDN2LTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNoZWx2ZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxdjJINVYxSDN2MjJoMnYtMmgxNHYyaDJWMWgtMnptMCA0djZoLTZWN0g3djRINVY1aDE0em0tMiAxNHYtNGgtNnY0SDV2LTZoMTR2NmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2hpZWxkTW9vbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIgNCA1djYuMDljMCA1LjA1IDMuNDEgOS43NiA4IDEwLjkxIDQuNTktMS4xNSA4LTUuODYgOC0xMC45MVY1bC04LTN6bTMuOTcgMTIuNDFjLTEuODQgMi4xNy01LjIxIDIuMS02Ljk2LS4wNy0yLjE5LTIuNzItLjY1LTYuNzIgMi42OS03LjMzLjM0LS4wNi42My4yNy41MS42LS40NiAxLjIzLS4zOSAyLjY0LjMyIDMuODZhNC41MSA0LjUxIDAgMCAwIDMuMTggMi4yYy4zNC4wNS40OS40Ny4yNi43NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU25vd2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTIuNzVhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNXpNNC43NSA2YTEuMjUgMS4yNSAwIDEgMCAyLjUgMCAxLjI1IDEuMjUgMCAwIDAtMi41IDB6bTEyIDhhMS4yNSAxLjI1IDAgMSAwIDIuNSAwIDEuMjUgMS4yNSAwIDAgMC0yLjUgMHptMC04YTEuMjUgMS4yNSAwIDEgMCAyLjUgMCAxLjI1IDEuMjUgMCAwIDAtMi41IDB6bS05IDEyYTEuMjUgMS4yNSAwIDEgMCAyLjUgMCAxLjI1IDEuMjUgMCAwIDAtMi41IDB6bTAtOGExLjI1IDEuMjUgMCAxIDAgMi41IDAgMS4yNSAxLjI1IDAgMCAwLTIuNSAwem0zIDRhMS4yNSAxLjI1IDAgMSAwIDIuNSAwIDEuMjUgMS4yNSAwIDAgMC0yLjUgMHptMC04YTEuMjUgMS4yNSAwIDEgMCAyLjUgMCAxLjI1IDEuMjUgMCAwIDAtMi41IDB6bTMgMTJhMS4yNSAxLjI1IDAgMSAwIDIuNSAwIDEuMjUgMS4yNSAwIDAgMC0yLjUgMHptMC04YTEuMjUgMS4yNSAwIDEgMCAyLjUgMCAxLjI1IDEuMjUgMCAwIDAtMi41IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNvbGFyUG93ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjMzIDE2SDExdi0zSDR6TTEzIDE2aDcuNjdMMjAgMTNoLTd6TTIxLjExIDE4SDEzdjRoOXpNMiAyMmg5di00SDIuODl6TTExIDhoMnYzaC0yek0xNS43NjQgNy4yMDVsMS40MTUtMS40MTRMMTkuMyA3LjkxMmwtMS40MTQgMS40MTR6TTQuNzA1IDcuOTEzIDYuODI2IDUuNzkgOC4yNCA3LjIwNiA2LjEyIDkuMzI3ek0zIDJoM3YySDN6TTE4IDJoM3YyaC0zek0xMiA3YzIuNzYgMCA1LTIuMjQgNS01SDdjMCAyLjc2IDIuMjQgNSA1IDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN1bm55U25vd2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDVoLTJWMWgydjR6TTEgMTFoNHYySDF2LTJ6bTE4IDJ2LTJoNHYyaC00em0tMS4zNC01LjI0LTEuNDEtMS40MSAyLjgzLTIuODMgMS40MSAxLjQxLTIuODMgMi44M3pNMy41MSA0LjkzbDEuNDEtMS40MSAyLjgzIDIuODMtMS40MSAxLjQxLTIuODMtMi44M3pNNC43NSAxN2ExLjI1IDEuMjUgMCAxIDAgMi41IDAgMS4yNSAxLjI1IDAgMCAwLTIuNSAwem0xMiAwYTEuMjUgMS4yNSAwIDEgMCAyLjUgMCAxLjI1IDEuMjUgMCAwIDAtMi41IDB6bS05IDRhMS4yNSAxLjI1IDAgMSAwIDIuNSAwIDEuMjUgMS4yNSAwIDAgMC0yLjUgMHptMy00YTEuMjUgMS4yNSAwIDEgMCAyLjUgMCAxLjI1IDEuMjUgMCAwIDAtMi41IDB6bTMgNGExLjI1IDEuMjUgMCAxIDAgMi41IDAgMS4yNSAxLjI1IDAgMCAwLTIuNSAwek0xNyAxM3YtMWMwLTIuNzYtMi4yNC01LTUtNXMtNSAyLjI0LTUgNXYxaDEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdW5ueSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDRWMmMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2MmMwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMXptNy4zNiAzLjA1IDEuNDEtMS40MmEuOTk2Ljk5NiAwIDEgMC0xLjQxLTEuNDFsLTEuNDEgMS40MmEuOTk2Ljk5NiAwIDEgMCAxLjQxIDEuNDF6TTIyIDExaC0yYy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxaDJjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTF6bS0xMCA4Yy0uNTUgMC0xIC40NS0xIDF2MmMwIC41NS40NSAxIDEgMXMxLS40NSAxLTF2LTJjMC0uNTUtLjQ1LTEtMS0xek01LjY0IDcuMDUgNC4yMiA1LjY0Yy0uMzktLjM5LS4zOS0xLjAzIDAtMS40MXMxLjAzLS4zOSAxLjQxIDBsMS40MSAxLjQxYy4zOS4zOS4zOSAxLjAzIDAgMS40MXMtMS4wMi4zOS0xLjQgMHptMTEuMzEgOS45YS45OTYuOTk2IDAgMCAwIDAgMS40MWwxLjQxIDEuNDFjLjM5LjM5IDEuMDMuMzkgMS40MSAwYS45OTYuOTk2IDAgMCAwIDAtMS40MWwtMS40MS0xLjQxYS45OTYuOTk2IDAgMCAwLTEuNDEgMHpNMiAxM2gyYy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xSDJjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDF6bTMuNjQgNi43OCAxLjQxLTEuNDFjLjM5LS4zOS4zOS0xLjAzIDAtMS40MXMtMS4wMy0uMzktMS40MSAwbC0xLjQxIDEuNDFhLjk5Ni45OTYgMCAwIDAgMCAxLjQxYy4zOC4zOSAxLjAyLjM5IDEuNDEgMHpNMTIgNmMtMy4zMSAwLTYgMi42OS02IDZzMi42OSA2IDYgNiA2LTIuNjkgNi02LTIuNjktNi02LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZlcnRpY2FsU2hhZGVzQ2xvc2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTlWM0g0djE2SDJ2MmgyMHYtMmgtMnpNMTMgNWgxLjV2MTRIMTNWNXptLTIgMTRIOS41VjVIMTF2MTR6TTYgNWgxLjV2MTRINlY1em0xMC41IDE0VjVIMTh2MTRoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmVydGljYWxTaGFkZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOVYzSDR2MTZIMnYyaDIwdi0yaC0yem0tMTAgMFY1aDR2MTRoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdpbmRQb3dlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgM2g2djJINHpNMSA3aDV2Mkgxek0zIDE5aDV2Mkgzek0xMy43MyAxMC42MWMuNzUuMjMgMS4zLjc4IDEuNTcgMS40Nmw0LjI3LTcuMTFhMi4yOCAyLjI4IDAgMCAwLTMuNTEtMi44NGwtMy40MyAzLjIxYy0uNC4zNy0uNjMuOS0uNjMgMS40NXYzLjkzYy4zNi0uMTUuOTgtLjMzIDEuNzMtLjF6TTEwLjYxIDEyLjI3Yy4xNi0uNTIuNDgtLjk2Ljg5LTEuMjdIMy4yOGEyLjI3OSAyLjI3OSAwIDAgMC0uNjMgNC40N2w0LjUxIDEuMjljLjUzLjE1IDEuMS4wOCAxLjU4LS4yMWwyLjY5LTEuNjFhMi40ODcgMi40ODcgMCAwIDEtLjgyLTIuNjd6TTIyLjIxIDE4LjYxbC0yLjI4LTQuMWEyLjA1IDIuMDUgMCAwIDAtMS4yNi0uOTdsLTMuMTgtLjhjLjAzLjMyIDAgLjY2LS4xLjk5QTIuNDc4IDIuNDc4IDAgMCAxIDEzIDE1LjVjLS42MSAwLS45OS0uMjItMS0uMjJWMjFjLTEuMSAwLTIgLjktMiAyaDZjMC0xLjEtLjktMi0yLTJ2LTQuMjhsNC42MSA0LjYxYy44OS44OSAyLjMzLjg5IDMuMjIgMCAuNzItLjcyLjg4LTEuODMuMzgtMi43MnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNTYgMTQuNDNjLjc5LjI0IDEuNjMtLjIgMS44Ny0xIC4yNC0uNzktLjItMS42My0xLTEuODctLjc5LS4yNC0xLjYzLjItMS44NyAxLS4yNC43OS4yMSAxLjYzIDEgMS44N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kMTBNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNSA3SDE1djNoLTEuNXpNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDE1LjVoLTEuNVYxNGgtMXYzSDh2LTNIN3Y0LjVINS41di01YzAtLjU1LjQ1LTEgMS0xSDExYy41NSAwIDEgLjQ1IDEgMXY1em0zLjUgMEgxNHYtNmgzLjVjLjU1IDAgMSAuNDUgMSAxVjE2YzAgLjU1LS40NSAxLTEgMWgtMnYxLjV6TTEwIDUuNXY2SDguNVY3SDdWNS41aDN6bTYuNSA1YzAgLjU1LS40NSAxLTEgMUgxM2MtLjU1IDAtMS0uNDUtMS0xdi00YzAtLjU1LjQ1LTEgMS0xaDIuNWMuNTUgMCAxIC40NSAxIDF2NHptLTEgMy41SDE3djEuNWgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQxMU1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMTUuNWgtMS41VjE0aC0xdjNIOHYtM0g3djQuNUg1LjV2LTVjMC0uNTUuNDUtMSAxLTFIMTFjLjU1IDAgMSAuNDUgMSAxdjV6bTMuNSAwSDE0di02aDMuNWMuNTUgMCAxIC40NSAxIDFWMTZjMCAuNTUtLjQ1IDEtMSAxaC0ydjEuNXpNMTEgNS41djZIOS41VjdIOFY1LjVoM3ptNSAwdjZoLTEuNVY3SDEzVjUuNWgzem0tLjUgOC41SDE3djEuNWgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQxMk1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMTUuNWgtMS41VjE0aC0xdjNIOHYtM0g3djQuNUg1LjV2LTVjMC0uNTUuNDUtMSAxLTFIMTFjLjU1IDAgMSAuNDUgMSAxdjV6bTMuNSAwSDE0di02aDMuNWMuNTUgMCAxIC40NSAxIDFWMTZjMCAuNTUtLjQ1IDEtMSAxaC0ydjEuNXpNMTAgNS41djZIOC41VjdIN1Y1LjVoM3pNMTUuNSA5aC0ydjFoM3YxLjVIMTJWOWMwLS41NS40NS0xIDEtMWgyVjdoLTNWNS41aDMuNWMuNTUgMCAxIC40NSAxIDFWOGMwIC41NS0uNDUgMS0xIDF6bTAgNUgxN3YxLjVoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kMTNNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDE1LjVoLTEuNVYxNGgtMXYzSDh2LTNIN3Y0LjVINS41di01YzAtLjU1LjQ1LTEgMS0xSDExYy41NSAwIDEgLjQ1IDEgMXY1em0zLjUgMEgxNHYtNmgzLjVjLjU1IDAgMSAuNDUgMSAxVjE2YzAgLjU1LS40NSAxLTEgMWgtMnYxLjV6TTEwIDUuNXY2SDguNVY3SDdWNS41aDN6bTYuNSA1YzAgLjU1LS40NSAxLTEgMUgxMlYxMGgzVjloLTJWOGgyVjdoLTNWNS41aDMuNWMuNTUgMCAxIC40NSAxIDF2NHptLTEgMy41SDE3djEuNWgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQxNE1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMTUuNWgtMS41VjE0aC0xdjNIOHYtM0g3djQuNUg1LjV2LTVjMC0uNTUuNDUtMSAxLTFIMTFjLjU1IDAgMSAuNDUgMSAxdjV6bTMuNSAwSDE0di02aDMuNWMuNTUgMCAxIC40NSAxIDFWMTZjMCAuNTUtLjQ1IDEtMSAxaC0ydjEuNXpNMTAgNS41djZIOC41VjdIN1Y1LjVoM3ptNy41IDQuNWgtMXYxLjVIMTVWMTBoLTNWNS41aDEuNXYzSDE1di0zaDEuNXYzaDFWMTB6bS0yIDRIMTd2MS41aC0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDE1TXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAxNS41aC0xLjVWMTRoLTF2M0g4di0zSDd2NC41SDUuNXYtNWMwLS41NS40NS0xIDEtMUgxMWMuNTUgMCAxIC40NSAxIDF2NXptMy41IDBIMTR2LTZoMy41Yy41NSAwIDEgLjQ1IDEgMVYxNmMwIC41NS0uNDUgMS0xIDFoLTJ2MS41ek0xMCA1LjV2Nkg4LjVWN0g3VjUuNWgzek0xNi41IDdoLTN2MWgyYy41NSAwIDEgLjQ1IDEgMXYxLjVjMCAuNTUtLjQ1IDEtMSAxSDEyVjEwaDNWOWgtM1Y1LjVoNC41Vjd6bS0xIDdIMTd2MS41aC0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDE2TXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjUgOUgxNXYxLjVoLTEuNXpNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDE1LjVoLTEuNVYxNGgtMXYzSDh2LTNIN3Y0LjVINS41di01YzAtLjU1LjQ1LTEgMS0xSDExYy41NSAwIDEgLjQ1IDEgMXY1em0zLjUgMEgxNHYtNmgzLjVjLjU1IDAgMSAuNDUgMSAxVjE2YzAgLjU1LS40NSAxLTEgMWgtMnYxLjV6TTEwIDUuNXY2SDguNVY3SDdWNS41aDN6bTMgNmMtLjU1IDAtMS0uNDUtMS0xdi00YzAtLjU1LjQ1LTEgMS0xaDMuNVY3aC0zdjFoMmMuNTUgMCAxIC40NSAxIDF2MS41YzAgLjU1LS40NSAxLTEgMUgxM3ptMi41IDIuNUgxN3YxLjVoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kMTdNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDE1LjVoLTEuNVYxNGgtMXYzSDh2LTNIN3Y0LjVINS41di01YzAtLjU1LjQ1LTEgMS0xSDExYy41NSAwIDEgLjQ1IDEgMXY1em0zLjUgMEgxNHYtNmgzLjVjLjU1IDAgMSAuNDUgMSAxVjE2YzAgLjU1LS40NSAxLTEgMWgtMnYxLjV6TTEwIDUuNXY2SDguNVY3SDdWNS41aDN6bTUgNmgtMS43NUwxNC42MiA3SDEyVjUuNWgzLjVjLjY3IDAgMS4xNS42NS45NiAxLjI5TDE1IDExLjV6bS41IDIuNUgxN3YxLjVoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kMThNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDE1LjVoLTEuNVYxNGgtMXYzSDh2LTNIN3Y0LjVINS41di01YzAtLjU1LjQ1LTEgMS0xSDExYy41NSAwIDEgLjQ1IDEgMXY1em0zLjUgMEgxNHYtNmgzLjVjLjU1IDAgMSAuNDUgMSAxVjE2YzAgLjU1LS40NSAxLTEgMWgtMnYxLjV6TTEwIDUuNXY2SDguNVY3SDdWNS41aDN6bTYuNSA1YzAgLjU1LS40NSAxLTEgMUgxM2MtLjU1IDAtMS0uNDUtMS0xdi00YzAtLjU1LjQ1LTEgMS0xaDIuNWMuNTUgMCAxIC40NSAxIDF2NHptLTMgMEgxNVY5aC0xLjV2MS41em0wLTIuNUgxNVY2LjVoLTEuNVY4em0yIDZIMTd2MS41aC0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDE5TXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyA3aDNWOWgtMmMtLjU1IDAtMS0uNDUtMS0xVjYuNWMwLS41NS40NS0xIDEtMWgyLjVjLjU1IDAgMSAuNDUgMSAxdjRjMCAuNTUtLjQ1IDEtMSAxSDEyVjEwem0xLjUtMkgxNVY2LjVoLTEuNVY4ek03IDUuNWgzdjZIOC41VjdIN1Y1LjV6bTUgMTNoLTEuNVYxNGgtMXYzSDh2LTNIN3Y0LjVINS41di01YzAtLjU1LjQ1LTEgMS0xSDExYy41NSAwIDEgLjQ1IDEgMXY1em02LjUtMi41YzAgLjU1LS40NSAxLTEgMWgtMnYxLjVIMTR2LTZoMy41Yy41NSAwIDEgLjQ1IDEgMVYxNnptLTMtMkgxN3YxLjVoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kMjBNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNSA3SDE2djNoLTEuNXpNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDE1LjVoLTEuNVYxNGgtMXYzSDh2LTNIN3Y0LjVINS41di01YzAtLjU1LjQ1LTEgMS0xSDExYy41NSAwIDEgLjQ1IDEgMXY1em0zLjUgMEgxNHYtNmgzLjVjLjU1IDAgMSAuNDUgMSAxVjE2YzAgLjU1LS40NSAxLTEgMWgtMnYxLjV6bTItOGMwIC41NS0uNDUgMS0xIDFIMTRjLS41NSAwLTEtLjQ1LTEtMXYtNGMwLS41NS40NS0xIDEtMWgyLjVjLjU1IDAgMSAuNDUgMSAxdjR6TTEwIDlIOHYxaDN2MS41SDYuNVY5YzAtLjU1LjQ1LTEgMS0xaDJWN2gtM1Y1LjVIMTBjLjU1IDAgMSAuNDUgMSAxVjhjMCAuNTUtLjQ1IDEtMSAxem01LjUgNUgxN3YxLjVoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kMjFNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDE1LjVoLTEuNVYxNGgtMXYzSDh2LTNIN3Y0LjVINS41di01YzAtLjU1LjQ1LTEgMS0xSDExYy41NSAwIDEgLjQ1IDEgMXY1em0zLjUgMEgxNHYtNmgzLjVjLjU1IDAgMSAuNDUgMSAxVjE2YzAgLjU1LS40NSAxLTEgMWgtMnYxLjV6TTExIDlIOXYxaDN2MS41SDcuNVY5YzAtLjU1LjQ1LTEgMS0xaDJWN2gtM1Y1LjVIMTFjLjU1IDAgMSAuNDUgMSAxVjhjMCAuNTUtLjQ1IDEtMSAxem0zLTMuNWgzdjZoLTEuNVY3SDE0VjUuNXptMS41IDguNUgxN3YxLjVoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kMjJNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDE1LjVoLTEuNVYxNGgtMXYzSDh2LTNIN3Y0LjVINS41di01YzAtLjU1LjQ1LTEgMS0xSDExYy41NSAwIDEgLjQ1IDEgMXY1em0zLjUgMEgxNHYtNmgzLjVjLjU1IDAgMSAuNDUgMSAxVjE2YzAgLjU1LS40NSAxLTEgMWgtMnYxLjV6TTEwIDlIOHYxaDN2MS41SDYuNVY5YzAtLjU1LjQ1LTEgMS0xaDJWN2gtM1Y1LjVIMTBjLjU1IDAgMSAuNDUgMSAxVjhjMCAuNTUtLjQ1IDEtMSAxem02LjUgMGgtMnYxaDN2MS41SDEzVjljMC0uNTUuNDUtMSAxLTFoMlY3aC0zVjUuNWgzLjVjLjU1IDAgMSAuNDUgMSAxVjhjMCAuNTUtLjQ1IDEtMSAxem0tMSA1SDE3djEuNWgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQyM01wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMTUuNWgtMS41VjE0aC0xdjNIOHYtM0g3djQuNUg1LjV2LTVjMC0uNTUuNDUtMSAxLTFIMTFjLjU1IDAgMSAuNDUgMSAxdjV6bTMuNSAwSDE0di02aDMuNWMuNTUgMCAxIC40NSAxIDFWMTZjMCAuNTUtLjQ1IDEtMSAxaC0ydjEuNXpNMTAgOUg4djFoM3YxLjVINi41VjljMC0uNTUuNDUtMSAxLTFoMlY3aC0zVjUuNUgxMGMuNTUgMCAxIC40NSAxIDFWOGMwIC41NS0uNDUgMS0xIDF6bTcuNSAxLjVjMCAuNTUtLjQ1IDEtMSAxSDEzVjEwaDNWOWgtMlY4aDJWN2gtM1Y1LjVoMy41Yy41NSAwIDEgLjQ1IDEgMXY0em0tMiAzLjVIMTd2MS41aC0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDI0TXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAxNS41aC0xLjVWMTRoLTF2M0g4di0zSDd2NC41SDUuNXYtNWMwLS41NS40NS0xIDEtMUgxMWMuNTUgMCAxIC40NSAxIDF2NXptMy41IDBIMTR2LTZoMy41Yy41NSAwIDEgLjQ1IDEgMVYxNmMwIC41NS0uNDUgMS0xIDFoLTJ2MS41ek0xMCA5SDh2MWgzdjEuNUg2LjVWOWMwLS41NS40NS0xIDEtMWgyVjdoLTNWNS41SDEwYy41NSAwIDEgLjQ1IDEgMVY4YzAgLjU1LS40NSAxLTEgMXptOC41IDFoLTF2MS41SDE2VjEwaC0zVjUuNWgxLjV2M0gxNnYtM2gxLjV2M2gxVjEwem0tMyA0SDE3djEuNWgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQyTXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAxNS41aC0xLjVWMTRoLTF2M0g4di0zSDd2NC41SDUuNXYtNWMwLS41NS40NS0xIDEtMUgxMWMuNTUgMCAxIC40NSAxIDF2NXptMy41IDBIMTR2LTZoMy41Yy41NSAwIDEgLjQ1IDEgMVYxNmMwIC41NS0uNDUgMS0xIDFoLTJ2MS41em0tMi05LjVoLTJ2MWgzdjEuNUgxMFY5YzAtLjU1LjQ1LTEgMS0xaDJWN2gtM1Y1LjVoMy41Yy41NSAwIDEgLjQ1IDEgMVY4YzAgLjU1LS40NSAxLTEgMXptMiA1SDE3djEuNWgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQzMEZwc1NlbGVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNHYyaDV2Mkg1djJoNHYySDR2Mmg1YzEuMSAwIDItLjkgMi0ydi0xLjVjMC0uODMtLjE3LTEuNS0xLTEuNS44MyAwIDEtLjY3IDEtMS41VjZjMC0xLjEtLjktMi0yLTJINHptMTQgMGMxLjEgMCAyIC45IDIgMnY2YzAgMS4xLS45IDItMiAyaC0zYy0xLjEgMC0yLS45LTItMlY2YzAtMS4xLjktMiAyLTJoM3ptMCAyaC0zdjZoM1Y2ek01IDIySDN2LTVoMnY1em00IDBIN3YtNWgydjV6bTQgMGgtMnYtNWgydjV6bTggMGgtNnYtNWg2djV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDNNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDE1LjVoLTEuNVYxNGgtMXYzSDh2LTNIN3Y0LjVINS41di01YzAtLjU1LjQ1LTEgMS0xSDExYy41NSAwIDEgLjQ1IDEgMXY1em0zLjUgMEgxNHYtNmgzLjVjLjU1IDAgMSAuNDUgMSAxVjE2YzAgLjU1LS40NSAxLTEgMWgtMnYxLjV6bS0xLThjMCAuNTUtLjQ1IDEtMSAxSDEwVjEwaDNWOWgtMlY4aDJWN2gtM1Y1LjVoMy41Yy41NSAwIDEgLjQ1IDEgMXY0em0xIDMuNUgxN3YxLjVoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kNE1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMTUuNWgtMS41VjE0aC0xdjNIOHYtM0g3djQuNUg1LjV2LTVjMC0uNTUuNDUtMSAxLTFIMTFjLjU1IDAgMSAuNDUgMSAxdjV6bTMtOC41aC0xdjEuNWgtMS41VjEwaC0zVjUuNUgxMXYzaDEuNXYtM0gxNHYzaDFWMTB6bS41IDguNUgxNHYtNmgzLjVjLjU1IDAgMSAuNDUgMSAxVjE2YzAgLjU1LS40NSAxLTEgMWgtMnYxLjV6bTAtNC41SDE3djEuNWgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQ1TXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAxNS41aC0xLjVWMTRoLTF2M0g4di0zSDd2NC41SDUuNXYtNWMwLS41NS40NS0xIDEtMUgxMWMuNTUgMCAxIC40NSAxIDF2NXptMy41IDBIMTR2LTZoMy41Yy41NSAwIDEgLjQ1IDEgMVYxNmMwIC41NS0uNDUgMS0xIDFoLTJ2MS41ek0xNC41IDdoLTN2MWgyYy41NSAwIDEgLjQ1IDEgMXYxLjVjMCAuNTUtLjQ1IDEtMSAxSDEwVjEwaDNWOWgtM1Y1LjVoNC41Vjd6bTEgN0gxN3YxLjVoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kNjBGcHNTZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA2djZoLTNWNmgzem0wLTJoLTNjLTEuMSAwLTIgLjktMiAydjZjMCAxLjEuOSAyIDIgMmgzYzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bS03IDJWNEg2Yy0xLjEgMC0yIC45LTIgMnY2YzAgMS4xLjkgMiAyIDJoM2MxLjEgMCAyLS45IDItMnYtMmMwLTEuMS0uOS0yLTItMkg2VjZoNXptLTIgNHYySDZ2LTJoM3pNNSAyMkgzdi01aDJ2NXptNCAwSDd2LTVoMnY1em00IDBoLTJ2LTVoMnY1em04IDBoLTZ2LTVoNnY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQ2TXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjUgOUgxM3YxLjVoLTEuNXpNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDE1LjVoLTEuNVYxNGgtMXYzSDh2LTNIN3Y0LjVINS41di01YzAtLjU1LjQ1LTEgMS0xSDExYy41NSAwIDEgLjQ1IDEgMXY1em0tMS03Yy0uNTUgMC0xLS40NS0xLTF2LTRjMC0uNTUuNDUtMSAxLTFoMy41VjdoLTN2MWgyYy41NSAwIDEgLjQ1IDEgMXYxLjVjMCAuNTUtLjQ1IDEtMSAxSDExem00LjUgN0gxNHYtNmgzLjVjLjU1IDAgMSAuNDUgMSAxVjE2YzAgLjU1LS40NSAxLTEgMWgtMnYxLjV6bTAtNC41SDE3djEuNWgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQ3TXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAxNS41aC0xLjVWMTRoLTF2M0g4di0zSDd2NC41SDUuNXYtNWMwLS41NS40NS0xIDEtMUgxMWMuNTUgMCAxIC40NSAxIDF2NXptMy41IDBIMTR2LTZoMy41Yy41NSAwIDEgLjQ1IDEgMVYxNmMwIC41NS0uNDUgMS0xIDFoLTJ2MS41em0tMi41LTdoLTEuNzVMMTIuNjIgN0gxMFY1LjVoMy41Yy42NyAwIDEuMTUuNjUuOTYgMS4yOUwxMyAxMS41em0yLjUgMi41SDE3djEuNWgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQ4TXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjUgOUgxM3YxLjVoLTEuNXptMC0yLjVIMTNWOGgtMS41ek0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMTUuNWgtMS41VjE0aC0xdjNIOHYtM0g3djQuNUg1LjV2LTVjMC0uNTUuNDUtMSAxLTFIMTFjLjU1IDAgMSAuNDUgMSAxdjV6bTMuNSAwSDE0di02aDMuNWMuNTUgMCAxIC40NSAxIDFWMTZjMCAuNTUtLjQ1IDEtMSAxaC0ydjEuNXptLTEtOGMwIC41NS0uNDUgMS0xIDFIMTFjLS41NSAwLTEtLjQ1LTEtMXYtNGMwLS41NS40NS0xIDEtMWgyLjVjLjU1IDAgMSAuNDUgMSAxdjR6bTEgMy41SDE3djEuNWgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQ5TXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjUgNi41SDEzVjhoLTEuNXpNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDE1LjVoLTEuNVYxNGgtMXYzSDh2LTNIN3Y0LjVINS41di01YzAtLjU1LjQ1LTEgMS0xSDExYy41NSAwIDEgLjQ1IDEgMXY1em0zLjUgMEgxNHYtNmgzLjVjLjU1IDAgMSAuNDUgMSAxVjE2YzAgLjU1LS40NSAxLTEgMWgtMnYxLjV6bS0xLThjMCAuNTUtLjQ1IDEtMSAxSDEwVjEwaDNWOWgtMmMtLjU1IDAtMS0uNDUtMS0xVjYuNWMwLS41NS40NS0xIDEtMWgyLjVjLjU1IDAgMSAuNDUgMSAxdjR6bTEgMy41SDE3djEuNWgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZGRBUGhvdG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDRWMWgydjNoM3YySDV2M0gzVjZIMFY0aDN6bTMgNlY3aDNWNGg3bDEuODMgMkgyMWMxLjEgMCAyIC45IDIgMnYxMmMwIDEuMS0uOSAyLTIgMkg1Yy0xLjEgMC0yLS45LTItMlYxMGgzem03IDljMi43NiAwIDUtMi4yNCA1LTVzLTIuMjQtNS01LTUtNSAyLjI0LTUgNSAyLjI0IDUgNSA1em0tMy4yLTVjMCAxLjc3IDEuNDMgMy4yIDMuMiAzLjJzMy4yLTEuNDMgMy4yLTMuMi0xLjQzLTMuMi0zLjItMy4yLTMuMiAxLjQzLTMuMiAzLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZFBob3RvQWx0ZXJuYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgN3YyLjk5cy0xLjk5LjAxLTIgMFY3aC0zcy4wMS0xLjk5IDAtMmgzVjJoMnYzaDN2MmgtM3ptLTMgNFY4aC0zVjVINWMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMnYtOGgtM3pNNSAxOWwzLTQgMiAzIDMtNCA0IDVINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRkVG9QaG90b3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnptMTYtNEg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS0xIDloLTR2NGgtMnYtNEg5VjloNFY1aDJ2NGg0djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkanVzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OSAyIDIgNi40OSAyIDEyczQuNDkgMTAgMTAgMTAgMTAtNC40OSAxMC0xMFMxNy41MSAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em0zLThjMCAxLjY2LTEuMzQgMy0zIDNzLTMtMS4zNC0zLTMgMS4zNC0zIDMtMyAzIDEuMzQgMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBbmltYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAyYy0yLjcxIDAtNS4wNSAxLjU0LTYuMjIgMy43OGE3LjA2MiA3LjA2MiAwIDAgMC0zIDNBNy4wMTQgNy4wMTQgMCAwIDAgMiAxNWMwIDMuODcgMy4xMyA3IDcgNyAyLjcxIDAgNS4wNS0xLjU0IDYuMjItMy43OGE3LjA2MiA3LjA2MiAwIDAgMCAzLTNBNy4wMTQgNy4wMTQgMCAwIDAgMjIgOWMwLTMuODctMy4xMy03LTctN3pNOSAyMGE1LjAwMiA1LjAwMiAwIDAgMS00LThjMCAzLjg3IDMuMTMgNyA3IDctLjg0LjYzLTEuODggMS0zIDF6bTMtM2E1LjAwMiA1LjAwMiAwIDAgMS00LThjMCAzLjg2IDMuMTMgNi45OSA3IDctLjg0LjYzLTEuODggMS0zIDF6bTQuNy0zLjNjLS41My4xOS0xLjEuMy0xLjcuMy0yLjc2IDAtNS0yLjI0LTUtNSAwLS42LjExLTEuMTcuMy0xLjcuNTMtLjE5IDEuMS0uMyAxLjctLjMgMi43NiAwIDUgMi4yNCA1IDUgMCAuNi0uMTEgMS4xNy0uMyAxLjd6TTE5IDEyYzAtMy44Ni0zLjEzLTYuOTktNy03YTUuMDAyIDUuMDAyIDAgMCAxIDcgN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBc3Npc3RhbnRQaG90byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjQgNiAxNCA0SDV2MTdoMnYtN2g1LjZsLjQgMmg3VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFzc2lzdGFudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmg0bDMgMyAzLTNoNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tNS4xMiAxMC44OEwxMiAxN2wtMS44OC00LjEyTDYgMTFsNC4xMi0xLjg4TDEyIDVsMS44OCA0LjEyTDE4IDExbC00LjEyIDEuODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEF1ZGlvdHJhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAzdjkuMjhhNC4zOSA0LjM5IDAgMCAwLTEuNS0uMjhDOC4wMSAxMiA2IDE0LjAxIDYgMTYuNVM4LjAxIDIxIDEwLjUgMjFjMi4zMSAwIDQuMi0xLjc1IDQuNDUtNEgxNVY2aDRWM2gtN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXV0b0F3ZXNvbWVNb3NhaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDV2MTRhMiAyIDAgMCAwIDIgMmg2VjNINWEyIDIgMCAwIDAtMiAyem0xNi0yaC02djhoOFY1YzAtMS4xLS45LTItMi0yem0tNiAxOGg2YzEuMSAwIDItLjkgMi0ydi02aC04djh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEF1dG9Bd2Vzb21lTW90aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMkg0YTIgMiAwIDAgMC0yIDJ2MTBoMlY0aDEwVjJ6bTQgNEg4YTIgMiAwIDAgMC0yIDJ2MTBoMlY4aDEwVjZ6bTIgNGgtOGEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmg4YzEuMSAwIDItLjkgMi0ydi04YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBdXRvQXdlc29tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5IDkgMS4yNS0yLjc1TDIzIDVsLTIuNzUtMS4yNUwxOSAxbC0xLjI1IDIuNzVMMTUgNWwyLjc1IDEuMjVMMTkgOXptLTcuNS41TDkgNCA2LjUgOS41IDEgMTJsNS41IDIuNUw5IDIwbDIuNS01LjVMMTcgMTJsLTUuNS0yLjV6TTE5IDE1bC0xLjI1IDIuNzVMMTUgMTlsMi43NSAxLjI1TDE5IDIzbDEuMjUtMi43NUwyMyAxOWwtMi43NS0xLjI1TDE5IDE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBdXRvRml4SGlnaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNSA1LjYgMTAgNyA4LjYgNC41IDEwIDIgNy41IDMuNCA1IDJsMS40IDIuNUw1IDd6bTEyIDkuOEwxNyAxNGwxLjQgMi41TDE3IDE5bDIuNS0xLjRMMjIgMTlsLTEuNC0yLjVMMjIgMTR6TTIyIDJsLTIuNSAxLjRMMTcgMmwxLjQgMi41TDE3IDdsMi41LTEuNEwyMiA3bC0xLjQtMi41em0tNy42MyA1LjI5YS45OTYuOTk2IDAgMCAwLTEuNDEgMEwxLjI5IDE4Ljk2YS45OTYuOTk2IDAgMCAwIDAgMS40MWwyLjM0IDIuMzRjLjM5LjM5IDEuMDIuMzkgMS40MSAwTDE2LjcgMTEuMDVhLjk5Ni45OTYgMCAwIDAgMC0xLjQxbC0yLjMzLTIuMzV6bS0xLjAzIDUuNDktMi4xMi0yLjEyIDIuNDQtMi40NCAyLjEyIDIuMTItMi40NCAyLjQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBdXRvRml4Tm9ybWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgMi0yLjUgMS40TDE3IDJsMS40IDIuNUwxNyA3bDIuNS0xLjRMMjIgN2wtMS40LTIuNXptLTcuNjMgNS4yOWEuOTk2Ljk5NiAwIDAgMC0xLjQxIDBMMS4yOSAxOC45NmEuOTk2Ljk5NiAwIDAgMCAwIDEuNDFsMi4zNCAyLjM0Yy4zOS4zOSAxLjAyLjM5IDEuNDEgMEwxNi43IDExLjA1YS45OTYuOTk2IDAgMCAwIDAtMS40MWwtMi4zMy0yLjM1em0tMS4wMyA1LjQ5LTIuMTItMi4xMiAyLjQ0LTIuNDQgMi4xMiAyLjEyLTIuNDQgMi40NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXV0b0ZpeE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMyAxLTIuNSAxLjRMMTggMWwxLjQgMi41TDE4IDZsMi41LTEuNEwyMyA2bC0xLjQtMi41TDIzIDF6bS04LjM0IDYuMjIgMi4xMiAyLjEyLTIuNDQgMi40NC44MS44MSAyLjU1LTIuNTVhLjk5Ni45OTYgMCAwIDAgMC0xLjQxbC0yLjM0LTIuMzRhLjk5Ni45OTYgMCAwIDAtMS40MSAwTDExLjQgOC44NGwuODEuODEgMi40NS0yLjQzem0tLjc4IDYuNjUtMy43NS0zLjc1LTYuODYtNi44NkwyIDQuNTNsNi44NiA2Ljg2LTYuNTcgNi41N2EuOTk2Ljk5NiAwIDAgMCAwIDEuNDFsMi4zNCAyLjM0Yy4zOS4zOSAxLjAyLjM5IDEuNDEgMGw2LjU3LTYuNTdMMTkuNDcgMjJsMS4yNy0xLjI3LTYuODYtNi44NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXV0b1N0b3JpZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5IDEtNSA1djExbDUtNC41VjF6TTEgNnYxNC42NWMwIC4yNS4yNS41LjUuNS4xIDAgLjE1LS4wNS4yNS0uMDVDMy4xIDIwLjQ1IDUuMDUgMjAgNi41IDIwYzEuOTUgMCA0LjA1LjQgNS41IDEuNVY2Yy0xLjQ1LTEuMS0zLjU1LTEuNS01LjUtMS41UzIuNDUgNC45IDEgNnptMjIgMTMuNVY2Yy0uNi0uNDUtMS4yNS0uNzUtMi0xdjEzLjVjLTEuMS0uMzUtMi4zLS41LTMuNS0uNS0xLjcgMC00LjE1LjY1LTUuNSAxLjV2MmMxLjM1LS44NSAzLjgtMS41IDUuNS0xLjUgMS42NSAwIDMuMzUuMyA0Ljc1IDEuMDUuMS4wNS4xNS4wNS4yNS4wNS4yNSAwIC41LS4yNS41LS41di0xLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEF1dG9mcHNTZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4wMyA2LjNoLS4wNmwtMS4wMiAyLjg5aDIuMXpNMyAxN2gydjVIM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTVjMy4zMSAwIDYtMi42OSA2LTZzLTIuNjktNi02LTYtNiAyLjY5LTYgNiAyLjY5IDYgNiA2em0tLjYzLTEwaDEuMjVsMi42MyA3aC0xLjIxbC0uNjMtMS43OWgtMi44M0w5Ljk2IDEySDguNzRsMi42My03ek03IDE3aDJ2NUg3ek0xMSAxN2gydjVoLTJ6TTE1IDE3aDZ2NWgtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmVkdGltZU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjE5IDIxLjE5IDIuODEgMi44MSAxLjM5IDQuMjJsMi4yNyAyLjI3QTkuOTU5IDkuOTU5IDAgMCAwIDIgMTJjMCA1LjUyIDQuNDggMTAgMTAgMTAgMi4wNCAwIDMuOTMtLjYyIDUuNTEtMS42NmwyLjI3IDIuMjcgMS40MS0xLjQyek0xMi4zNCAyLjAyYy0yLjE4LS4wNy00LjE5LjU1LTUuODUgMS42NGw0LjU5IDQuNTljLS4yNy0yLjA1LjEtNC4yMiAxLjI2LTYuMjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJlZHRpbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4zNCAyLjAyQzYuNTkgMS44MiAyIDYuNDIgMiAxMmMwIDUuNTIgNC40OCAxMCAxMCAxMCAzLjcxIDAgNi45My0yLjAyIDguNjYtNS4wMi03LjUxLS4yNS0xMi4wOS04LjQzLTguMzItMTQuOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJsdXJDaXJjdWxhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDljLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMCA0Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6TTcgOS41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptMyA3Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptLTMtM2MtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTMtNmMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6TTE0IDljLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMC0xLjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41em0zIDZjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0wLTRjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41ek0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHptMi0zLjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0wLTMuNWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCbHVyTGluZWFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxNy41Yy44MyAwIDEuNS0uNjcgMS41LTEuNXMtLjY3LTEuNS0xLjUtMS41LTEuNS42Ny0xLjUgMS41LjY3IDEuNSAxLjUgMS41ek05IDEzYy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAtNGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxek0zIDIxaDE4di0ySDN2MnpNNSA5LjVjLjgzIDAgMS41LS42NyAxLjUtMS41UzUuODMgNi41IDUgNi41IDMuNSA3LjE3IDMuNSA4IDQuMTcgOS41IDUgOS41em0wIDRjLjgzIDAgMS41LS42NyAxLjUtMS41cy0uNjctMS41LTEuNS0xLjUtMS41LjY3LTEuNSAxLjUuNjcgMS41IDEuNSAxLjV6TTkgMTdjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptOC0uNWMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6TTMgM3YyaDE4VjNIM3ptMTQgNS41Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXptMCA0Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXpNMTMgOWMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wIDRjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMCA0Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJsdXJPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA3Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bS0uMiA0LjQ4LjIuMDJjLjgzIDAgMS41LS42NyAxLjUtMS41cy0uNjctMS41LTEuNS0xLjUtMS41LjY3LTEuNSAxLjVsLjAyLjJjLjA5LjY3LjYxIDEuMTkgMS4yOCAxLjI4ek0xNCAzLjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41em0tNCAwYy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXptMTEgN2MuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6TTEwIDdjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptOCA4Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAtNGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wLTRjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptLTQgMTMuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6TTIuNSA1LjI3bDMuNzggMy43OEw2IDljLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xYzAtLjEtLjAzLS4xOS0uMDYtLjI4bDIuODEgMi44MWMtLjcxLjExLTEuMjUuNzMtMS4yNSAxLjQ3IDAgLjgzLjY3IDEuNSAxLjUgMS41Ljc0IDAgMS4zNi0uNTQgMS40Ny0xLjI1bDIuODEgMi44MUEuODc1Ljg3NSAwIDAgMCAxNCAxN2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTFjMC0uMS0uMDMtLjE5LS4wNi0uMjhsMy43OCAzLjc4TDIwIDIwLjIzIDMuNzcgNCAyLjUgNS4yN3pNMTAgMTdjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMTEtMy41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXpNNiAxM2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xek0zIDkuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTcgMTFjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41ek02IDE3Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bS0zLTMuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJsdXJPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTNjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMCA0Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAtOGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0tMyAuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6TTYgNWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0xNSA1LjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41ek0xNCA3Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAtMy41Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXptLTExIDEwYy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptNyA3Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptMC0xN2MuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6TTEwIDdjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMCA1LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41em04IC41Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAgNGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wLThjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMC00Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTMgOC41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXpNMTQgMTdjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMCAzLjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0tNC0xMmMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6bTAgOC41Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTQtNC41Yy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXptMC00Yy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQnJpZ2h0bmVzczEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjEwXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJyaWdodG5lc3MyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMmMtMS44MiAwLTMuNTMuNS01IDEuMzVDNy45OSA1LjA4IDEwIDguMyAxMCAxMnMtMi4wMSA2LjkyLTUgOC42NUM2LjQ3IDIxLjUgOC4xOCAyMiAxMCAyMmM1LjUyIDAgMTAtNC40OCAxMC0xMFMxNS41MiAyIDEwIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJyaWdodG5lc3MzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAyYy0xLjA1IDAtMi4wNS4xNi0zIC40NiA0LjA2IDEuMjcgNyA1LjA2IDcgOS41NCAwIDQuNDgtMi45NCA4LjI3LTcgOS41NC45NS4zIDEuOTUuNDYgMyAuNDYgNS41MiAwIDEwLTQuNDggMTAtMTBTMTQuNTIgMiA5IDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJyaWdodG5lc3M0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOC42OVY0aC00LjY5TDEyIC42OSA4LjY5IDRINHY0LjY5TC42OSAxMiA0IDE1LjMxVjIwaDQuNjlMMTIgMjMuMzEgMTUuMzEgMjBIMjB2LTQuNjlMMjMuMzEgMTIgMjAgOC42OXpNMTIgMThjLS44OSAwLTEuNzQtLjItMi41LS41NUMxMS41NiAxNi41IDEzIDE0LjQyIDEzIDEycy0xLjQ0LTQuNS0zLjUtNS40NUMxMC4yNiA2LjIgMTEuMTEgNiAxMiA2YzMuMzEgMCA2IDIuNjkgNiA2cy0yLjY5IDYtNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCcmlnaHRuZXNzNSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE1LjMxIDIzLjMxIDEyIDIwIDguNjlWNGgtNC42OUwxMiAuNjkgOC42OSA0SDR2NC42OUwuNjkgMTIgNCAxNS4zMVYyMGg0LjY5TDEyIDIzLjMxIDE1LjMxIDIwSDIwdi00LjY5ek0xMiAxOGMtMy4zMSAwLTYtMi42OS02LTZzMi42OS02IDYtNiA2IDIuNjkgNiA2LTIuNjkgNi02IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJyaWdodG5lc3M2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTUuMzEgMjMuMzEgMTIgMjAgOC42OVY0aC00LjY5TDEyIC42OSA4LjY5IDRINHY0LjY5TC42OSAxMiA0IDE1LjMxVjIwaDQuNjlMMTIgMjMuMzEgMTUuMzEgMjBIMjB2LTQuNjl6TTEyIDE4VjZjMy4zMSAwIDYgMi42OSA2IDZzLTIuNjkgNi02IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJyaWdodG5lc3M3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOC42OVY0aC00LjY5TDEyIC42OSA4LjY5IDRINHY0LjY5TC42OSAxMiA0IDE1LjMxVjIwaDQuNjlMMTIgMjMuMzEgMTUuMzEgMjBIMjB2LTQuNjlMMjMuMzEgMTIgMjAgOC42OXpNMTIgMThjLTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTYgNiAyLjY5IDYgNi0yLjY5IDYtNiA2em0wLTEwYy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQnJva2VuSW1hZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDB6bTIxIDE5YzAgMS4xLS45IDItMiAySDVjLTEuMSAwLTItLjktMi0yVjVjMC0xLjEuOS0yIDItMmgxNGMxLjEgMCAyIC45IDIgMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA1djYuNTlsLTMtMy4wMS00IDQuMDEtNC00LTQgNC0zLTMuMDFWNWMwLTEuMS45LTIgMi0yaDE0YzEuMSAwIDIgLjkgMiAyem0tMyA2LjQyIDMgMy4wMVYxOWMwIDEuMS0uOSAyLTIgMkg1Yy0xLjEgMC0yLS45LTItMnYtNi41OGwzIDIuOTkgNC00IDQgNCA0LTMuOTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJydXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxNGMtMS42NiAwLTMgMS4zNC0zIDMgMCAxLjMxLTEuMTYgMi0yIDIgLjkyIDEuMjIgMi40OSAyIDQgMiAyLjIxIDAgNC0xLjc5IDQtNCAwLTEuNjYtMS4zNC0zLTMtM3ptMTMuNzEtOS4zNy0xLjM0LTEuMzRhLjk5Ni45OTYgMCAwIDAtMS40MSAwTDkgMTIuMjUgMTEuNzUgMTVsOC45Ni04Ljk2YS45OTYuOTk2IDAgMCAwIDAtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQnVyc3RNb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDVoMnYxNEgxem00IDBoMnYxNEg1em0xNyAwSDEwYy0uNTUgMC0xIC40NS0xIDF2MTJjMCAuNTUuNDUgMSAxIDFoMTJjLjU1IDAgMS0uNDUgMS0xVjZjMC0uNTUtLjQ1LTEtMS0xek0xMSAxN2wyLjUtMy4xNUwxNS4yOSAxNmwyLjUtMy4yMkwyMSAxN0gxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FtZXJhQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIzLjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAyIDcuMTcgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJoLTMuMTdMMTUgMkg5em0zIDE1Yy0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDUtMi4yNCA1LTUgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FtZXJhRnJvbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAyMEg1djJoNXYybDMtMy0zLTN2MnptNCAwdjJoNXYtMmgtNXpNMTIgOGMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMS45OS45LTEuOTkgMlMxMC45IDggMTIgOHptNS04SDdDNS45IDAgNSAuOSA1IDJ2MTRjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYyYzAtMS4xLS45LTItMi0yek03IDJoMTB2MTAuNWMwLTEuNjctMy4zMy0yLjUtNS0yLjVzLTUgLjgzLTUgMi41VjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbWVyYVJlYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAyMEg1djJoNXYybDMtMy0zLTN2MnptNCAwdjJoNXYtMmgtNXptMy0yMEg3QzUuOSAwIDUgLjkgNSAydjE0YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWMmMwLTEuMS0uOS0yLTItMnptLTUgNmMtMS4xMSAwLTItLjktMi0ycy44OS0yIDEuOTktMiAyIC45IDIgMkMxNCA1LjEgMTMuMSA2IDEyIDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbWVyYVJvbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA1YzAtMS4xLS45LTItMi0yaC0xVjJjMC0uNTUtLjQ1LTEtMS0xSDZjLS41NSAwLTEgLjQ1LTEgMXYxSDRjLTEuMSAwLTIgLjktMiAydjE1YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMmg4VjVoLTh6bS0yIDEzaC0ydi0yaDJ2MnptMC05aC0yVjdoMnYyem00IDloLTJ2LTJoMnYyem0wLTloLTJWN2gydjJ6bTQgOWgtMnYtMmgydjJ6bTAtOWgtMlY3aDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FtZXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOS40IDEwLjUgNC43Ny04LjI2YTkuOTg0IDkuOTg0IDAgMCAwLTguNDkgMi4wMWwzLjY2IDYuMzUuMDYtLjF6TTIxLjU0IDljLS45Mi0yLjkyLTMuMTUtNS4yNi02LTYuMzRMMTEuODggOWg5LjY2em0uMjYgMWgtNy40OWwuMjkuNSA0Ljc2IDguMjVBOS45MSA5LjkxIDAgMCAwIDIyIDEyYzAtLjY5LS4wNy0xLjM1LS4yLTJ6TTguNTQgMTJsLTMuOS02Ljc1QTkuOTU4IDkuOTU4IDAgMCAwIDIuMiAxNGg3LjQ5bC0xLjE1LTJ6bS02LjA4IDNjLjkyIDIuOTIgMy4xNSA1LjI2IDYgNi4zNEwxMi4xMiAxNUgyLjQ2em0xMS4yNyAwLTMuOSA2Ljc2YTkuOTg0IDkuOTg0IDAgMCAwIDguNDktMi4wMWwtMy42Ni02LjM1LS45MyAxLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhc2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNlY0bC0yLTJoLTVMOSA0djJINXYxMXMxIDIgMiAyaDEzczItLjk4IDItMlY2aC00ek00IDlIMnYxMWMwIDEuMTEuODkgMiAyIDJoMTRjMS4xMSAwIDItLjg5IDItMkg0Vjl6bTctNGMwLS41NS41My0xIDEtMWgzYy40NiAwIDEgLjU0IDEgMXYxaC01VjV6TTUgNmgxN3YxMWMwIDEuMS0uOSAyLTIgMkg3Yy0xLjEgMC0yLS45LTItMlY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDZW50ZXJGb2N1c1N0cm9uZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDhjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0tNyA3SDN2NGMwIDEuMS45IDIgMiAyaDR2LTJINXYtNHpNNSA1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnY0aDJWNXptMTQtMmgtNHYyaDR2NGgyVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENlbnRlckZvY3VzV2VhayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTVIM3Y0YzAgMS4xLjkgMiAyIDJoNHYtMkg1di00ek01IDVoNFYzSDVjLTEuMSAwLTIgLjktMiAydjRoMlY1em0xNC0yaC00djJoNHY0aDJWNWMwLTEuMS0uOS0yLTItMnptMCAxNmgtNHYyaDRjMS4xIDAgMi0uOSAyLTJ2LTRoLTJ2NHpNMTIgOGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTAgNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbGxlY3Rpb25zQm9va21hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxMC0yLjUtMS41TDE1IDEyVjRoNXY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb2xsZWN0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDE2VjRjMC0xLjEtLjktMi0yLTJIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMnptLTExLTQgMi4wMyAyLjcxTDE2IDExbDQgNUg4bDMtNHpNMiA2djE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2SDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbG9yTGVucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDNhOSA5IDAgMCAwIDAgMThjLjgzIDAgMS41LS42NyAxLjUtMS41IDAtLjM5LS4xNS0uNzQtLjM5LTEuMDEtLjIzLS4yNi0uMzgtLjYxLS4zOC0uOTkgMC0uODMuNjctMS41IDEuNS0xLjVIMTZjMi43NiAwIDUtMi4yNCA1LTUgMC00LjQyLTQuMDMtOC05LTh6bS01LjUgOWMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzUuNjcgOSA2LjUgOSA4IDkuNjcgOCAxMC41IDcuMzMgMTIgNi41IDEyem0zLTRDOC42NyA4IDggNy4zMyA4IDYuNVM4LjY3IDUgOS41IDVzMS41LjY3IDEuNSAxLjVTMTAuMzMgOCA5LjUgOHptNSAwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTMuNjcgNSAxNC41IDVzMS41LjY3IDEuNSAxLjVTMTUuMzMgOCAxNC41IDh6bTMgNGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzE2LjY3IDkgMTcuNSA5czEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29sb3JpemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMC43MSA1LjYzLTIuMzQtMi4zNGEuOTk2Ljk5NiAwIDAgMC0xLjQxIDBsLTMuMTIgMy4xMi0xLjkzLTEuOTEtMS40MSAxLjQxIDEuNDIgMS40MkwzIDE2LjI1VjIxaDQuNzVsOC45Mi04LjkyIDEuNDIgMS40MiAxLjQxLTEuNDEtMS45Mi0xLjkyIDMuMTItMy4xMmMuNC0uNC40LTEuMDMuMDEtMS40MnpNNi45MiAxOSA1IDE3LjA4bDguMDYtOC4wNiAxLjkyIDEuOTJMNi45MiAxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29tcGFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmg1djJoMlYxaC0ydjJ6bTAgMTVINWw1LTZ2NnptOS0xNWgtNXYyaDV2MTNsLTUtNnY5aDVjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29udHJhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyMmM1LjUyIDAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMHptMS0xNy45M2MzLjk0LjQ5IDcgMy44NSA3IDcuOTNzLTMuMDUgNy40NC03IDcuOTNWNC4wN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29udHJvbFBvaW50RHVwbGljYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOGgtMnYzaC0zdjJoM3YzaDJ2LTNoM3YtMmgtM3pNMiAxMmMwLTIuNzkgMS42NC01LjIgNC4wMS02LjMyVjMuNTJDMi41MiA0Ljc2IDAgOC4wOSAwIDEyczIuNTIgNy4yNCA2LjAxIDguNDh2LTIuMTZBNi45OSA2Ljk5IDAgMCAxIDIgMTJ6bTEzLTljLTQuOTYgMC05IDQuMDQtOSA5czQuMDQgOSA5IDkgOS00LjA0IDktOS00LjA0LTktOS05em0wIDE2Yy0zLjg2IDAtNy0zLjE0LTctN3MzLjE0LTcgNy03IDcgMy4xNCA3IDctMy4xNCA3LTcgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29udHJvbFBvaW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgN2gtMnY0SDd2Mmg0djRoMnYtNGg0di0yaC00Vjd6bS0xLTVDNi40OSAyIDIgNi40OSAyIDEyczQuNDkgMTAgMTAgMTAgMTAtNC40OSAxMC0xMFMxNy41MSAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDcm9wMTY5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgN0g1Yy0xLjEgMC0yIC45LTIgMnY2YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWOWMwLTEuMS0uOS0yLTItMnptMCA4SDVWOWgxNHY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDcm9wMzIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA2SDVjLTEuMSAwLTIgLjktMiAydjhjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0wIDEwSDVWOGgxNHY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDcm9wNTQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA0SDVjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNEg1VjZoMTR2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENyb3A3NSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDVINWMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDEySDVWN2gxNHYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3JvcERpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3JvcEZyZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDV2NGgyVjVoNFYzSDVjLTEuMSAwLTIgLjktMiAyem0yIDEwSDN2NGMwIDEuMS45IDIgMiAyaDR2LTJINXYtNHptMTQgNGgtNHYyaDRjMS4xIDAgMi0uOSAyLTJ2LTRoLTJ2NHptMC0xNmgtNHYyaDR2NGgyVjVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENyb3BMYW5kc2NhcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA1SDVjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMnptMCAxMkg1VjdoMTR2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENyb3BPcmlnaW5hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHptLTUuMDQtNi43MS0yLjc1IDMuNTQtMS45Ni0yLjM2TDYuNSAxN2gxMWwtMy41NC00LjcxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDcm9wUG9ydHJhaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAzSDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg3VjVoMTB2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENyb3BSb3RhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNDcgMjEuNDlDNC4yIDE5LjkzIDEuODYgMTYuNzYgMS41IDEzSDBjLjUxIDYuMTYgNS42NiAxMSAxMS45NSAxMSAuMjMgMCAuNDQtLjAyLjY2LS4wM0w4LjggMjAuMTVsLTEuMzMgMS4zNHpNMTIuMDUgMGMtLjIzIDAtLjQ0LjAyLS42Ni4wNGwzLjgxIDMuODEgMS4zMy0xLjMzQzE5LjggNC4wNyAyMi4xNCA3LjI0IDIyLjUgMTFIMjRjLS41MS02LjE2LTUuNjYtMTEtMTEuOTUtMTF6TTE2IDE0aDJWOGEyIDIgMCAwIDAtMi0yaC02djJoNnY2em0tOCAyVjRINnYySDR2MmgydjhhMiAyIDAgMCAwIDIgMmg4djJoMnYtMmgydi0ySDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENyb3BTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA0SDZjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNEg2VjZoMTJ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENyb3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxNWgyVjdjMC0xLjEtLjktMi0yLTJIOXYyaDh2OHpNNyAxN1YxSDV2NEgxdjJoNHYxMGMwIDEuMS45IDIgMiAyaDEwdjRoMnYtNGg0di0ySDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEN1cnJlbmN5Qml0Y29pbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjA2IDExLjU3Yy41OS0uNjkuOTQtMS41OS45NC0yLjU3IDAtMS44Ni0xLjI3LTMuNDMtMy0zLjg3VjNoLTJ2MmgtMlYzSDl2Mkg2djJoMnYxMEg2djJoM3YyaDJ2LTJoMnYyaDJ2LTJjMi4yMSAwIDQtMS43OSA0LTQgMC0xLjQ1LS43OC0yLjczLTEuOTQtMy40M3pNMTAgN2g0YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMmgtNFY3em01IDEwaC01di00aDVjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDdXJyZW5jeUZyYW5jIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNVYzSDd2MTNINXYyaDJ2M2gydi0zaDR2LTJIOXYtM2g4di0ySDlWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3VycmVuY3lMaXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA4Ljc2VjNoMnY0LjUxTDE1IDV2Mi4zNmwtNCAyLjUxLjAxIDIuMzVMMTUgOS43MnYyLjM2bC00IDIuNTFWMTljMi43NiAwIDUtMi4yNCA1LTVoMmMwIDMuODctMy4xMyA3LTcgN0g5di01LjE2bC0zIDEuODh2LTIuMzZsMy0xLjg4di0yLjM2TDYgMTN2LTIuMzZsMy0xLjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDdXJyZW5jeVBvdW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMjFjMS45MyAwIDMuNjItMS4xNyA0LTNsLTEuNzUtLjg4QzE2IDE4LjIxIDE1LjMzIDE5IDE0IDE5SDkuMWMuODMtMSAxLjUtMi4zNCAxLjUtNCAwLS4zNS0uMDMtLjY5LS4wOC0xSDE0di0ySDkuODJDOSAxMC40MiA4IDkuNiA4IDhhMy41IDMuNSAwIDAgMSA2Ljc4LTEuMjJMMTYuNjMgNmMtLjgtMi4wNS0yLjc5LTMuNS01LjEzLTMuNUM4LjQ2IDIuNSA2IDQuOTYgNiA4YzAgMS43OC43OSAyLjkgMS40OSA0SDZ2MmgyLjQ3Yy4wOC4zMS4xMy42NC4xMyAxIDAgMi43LTIuNiA0LTIuNiA0djJoOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3VycmVuY3lSdWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjUgM0g3djlINXYyaDJ2Mkg1djJoMnYzaDJ2LTNoNHYtMkg5di0yaDQuNWMzLjA0IDAgNS41LTIuNDYgNS41LTUuNVMxNi41NCAzIDEzLjUgM3ptMCA5SDlWNWg0LjVDMTUuNDMgNSAxNyA2LjU3IDE3IDguNVMxNS40MyAxMiAxMy41IDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDdXJyZW5jeVJ1cGVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNjYgN2MtLjU2LTEuMTgtMS43Ni0yLTMuMTYtMkg2VjNoMTJ2MmgtMy4yNmMuNDguNTguODQgMS4yNiAxLjA1IDJIMTh2MmgtMi4wMmMtLjI1IDIuOC0yLjYxIDUtNS40OCA1aC0uNzNsNi43MyA3aC0yLjc3TDcgMTR2LTJoMy41YzEuNzYgMCAzLjIyLTEuMyAzLjQ2LTNINlY3aDcuNjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEN1cnJlbmN5WWVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuOTIgMTFIMTh2MmgtNXYyaDV2MmgtNXY0aC0ydi00SDZ2LTJoNXYtMkg2di0yaDQuMDhMNSAzaDIuMzdMMTIgMTAuMjkgMTYuNjMgM0gxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3VycmVuY3lZdWFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuMjggMTJIMTh2MmgtNXY3aC0ydi03SDZ2LTJoNC43Mkw1IDNoMi4zN0wxMiAxMC4yOSAxNi42MyAzSDE5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREZWJsdXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAzdjE4YTkgOSAwIDAgMCAwLTE4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjZcIixcImN5XCI6XCIxNFwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjZcIixcImN5XCI6XCIxOFwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjZcIixcImN5XCI6XCIxMFwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjNcIixcImN5XCI6XCIxMFwiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI2XCIsXCJjeVwiOlwiNlwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjNcIixcImN5XCI6XCIxNFwiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMFwiLFwiY3lcIjpcIjIxXCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEwXCIsXCJjeVwiOlwiM1wiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMFwiLFwiY3lcIjpcIjZcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMFwiLFwiY3lcIjpcIjE0XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMFwiLFwiY3lcIjpcIjEwXCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMFwiLFwiY3lcIjpcIjE4XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERlaGF6ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTUuNXYyaDIwdi0ySDJ6bTAtNXYyaDIwdi0ySDJ6bTAtNXYyaDIwdi0ySDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERldGFpbHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAzIDIgMjFoMjBMMTIgM3ptMSA1LjkyTDE4LjYgMTlIMTNWOC45MnptLTIgMFYxOUg1LjRMMTEgOC45MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGlydHlMZW5zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuOTUgMTlIMjBWN0g0djEyaDcuMjRjLjE0LS45OC40Mi0yLjA1LS4xNi0yLjQzLS44OS0uNTktMS4yNyAyLjA2LTIuOCAxLjM1LTEuMzktMS4xMiAxLjA1LTEuMjkuNS0zLjI3LS4yMi0uNzktMi4yOC4zNi0yLjQtMS4yNC0uMDgtMSAxLjQ5LS43NCAxLjUxLTEuNDkuMDMtLjc1LTEuMDMtMS4wNS0uMjUtMS45MS4yMi0uMjQuNzEtLjI2LjkxLS4xOS43OS4yNyAxLjU1IDEuODIgMi41MSAxLjE5IDEuMDMtLjY2LTEuODgtMi4zNSAwLTIuODYgMS42NC0uNDQgMS4zMSAyLjA4IDIuNjUgMi40NCAxLjk0LjUyIDIuNjUtNC41NSA0LjQxLTIuMzMgMS44NSAyLjMzLTMuNDMgMi4yNy0yLjg1IDQuMDEuMzQgMS4wMSAyLjE1LTEuMiAyLjc2LjUzLjY0IDEuODMtMy4wOS44Mi0zLjA0IDEuNjYuMDYuODMgMi40MS41NSAxLjY0IDIuMTItMS4xNCAxLjg2LTMtMS4wMy0zLjgxLjA5LS4zOS41Ny0uMDkgMS40OS4xMyAyLjMzek0yMCA1YzEuMSAwIDIgLjkgMiAydjEyYzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0yVjdjMC0xLjEuOS0yIDItMmgzLjE3TDkgM2g2bDEuODMgMkgyMHptLTEuODYgMTMuMDFjLS40NyAwLS44Ni0uMzgtLjg2LS44NnMuMzgtLjg2Ljg2LS44NmMuNDcgMCAuODYuMzguODYuODZzLS4zOC44Ni0uODYuODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVkaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE3LjI1VjIxaDMuNzVMMTcuODEgOS45NGwtMy43NS0zLjc1TDMgMTcuMjV6TTIwLjcxIDcuMDRhLjk5Ni45OTYgMCAwIDAgMC0xLjQxbC0yLjM0LTIuMzRhLjk5Ni45OTYgMCAwIDAtMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXVybyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDE4LjVBNi40OCA2LjQ4IDAgMCAxIDkuMjQgMTVIMTVsMS0ySDguNThjLS4wNS0uMzMtLjA4LS42Ni0uMDgtMXMuMDMtLjY3LjA4LTFIMTVsMS0ySDkuMjRBNi40OTEgNi40OTEgMCAwIDEgMTUgNS41YzEuNjEgMCAzLjA5LjU5IDQuMjMgMS41N0wyMSA1LjNBOC45NTUgOC45NTUgMCAwIDAgMTUgM2MtMy45MiAwLTcuMjQgMi41MS04LjQ4IDZIM2wtMSAyaDQuMDZhOC4yNjIgOC4yNjIgMCAwIDAgMCAySDNsLTEgMmg0LjUyYzEuMjQgMy40OSA0LjU2IDYgOC40OCA2IDIuMzEgMCA0LjQxLS44NyA2LTIuM2wtMS43OC0xLjc3Yy0xLjEzLjk4LTIuNiAxLjU3LTQuMjIgMS41N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXhwb3N1cmVOZWcxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTF2Mmg4di0ySDR6bTE1IDdoLTJWNy4zOEwxNCA4LjRWNi43TDE4LjcgNWguM3YxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXhwb3N1cmVOZWcyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1LjA1IDE2LjI5IDIuODYtMy4wN2MuMzgtLjM5LjcyLS43OSAxLjA0LTEuMTguMzItLjM5LjU5LS43OC44Mi0xLjE3LjIzLS4zOS40MS0uNzguNTQtMS4xN3MuMTktLjc5LjE5LTEuMThjMC0uNTMtLjA5LTEuMDItLjI3LTEuNDYtLjE4LS40NC0uNDQtLjgxLS43OC0xLjExLS4zNC0uMzEtLjc3LS41NC0xLjI2LS43MUE1LjcyIDUuNzIgMCAwIDAgMTYuNDcgNWMtLjY5IDAtMS4zMS4xMS0xLjg1LjMyLS41NC4yMS0xIC41MS0xLjM2Ljg4LS4zNy4zNy0uNjUuOC0uODQgMS4zLS4xOC40Ny0uMjcuOTctLjI4IDEuNWgyLjE0Yy4wMS0uMzEuMDUtLjYuMTMtLjg3LjA5LS4yOS4yMy0uNTQuNC0uNzUuMTgtLjIxLjQxLS4zNy42OC0uNDkuMjctLjEyLjYtLjE4Ljk2LS4xOC4zMSAwIC41OC4wNS44MS4xNS4yMy4xLjQzLjI1LjU5LjQzLjE2LjE4LjI4LjQuMzcuNjUuMDguMjUuMTMuNTIuMTMuODEgMCAuMjItLjAzLjQzLS4wOC42NS0uMDYuMjItLjE1LjQ1LS4yOS43LS4xNC4yNS0uMzIuNTMtLjU2LjgzLS4yMy4zLS41Mi42NS0uODggMS4wM2wtNC4xNyA0LjU1VjE4SDIxdi0xLjcxaC01Ljk1ek0yIDExdjJoOHYtMkgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFeHBvc3VyZVBsdXMxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDdIOHY0SDR2Mmg0djRoMnYtNGg0di0yaC00Vjd6bTEwIDExaC0yVjcuMzhMMTUgOC40VjYuN0wxOS43IDVoLjN2MTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEV4cG9zdXJlUGx1czIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYuMDUgMTYuMjkgMi44Ni0zLjA3Yy4zOC0uMzkuNzItLjc5IDEuMDQtMS4xOC4zMi0uMzkuNTktLjc4LjgyLTEuMTcuMjMtLjM5LjQxLS43OC41NC0xLjE3LjEzLS4zOS4xOS0uNzkuMTktMS4xOCAwLS41My0uMDktMS4wMi0uMjctMS40Ni0uMTgtLjQ0LS40NC0uODEtLjc4LTEuMTEtLjM0LS4zMS0uNzctLjU0LTEuMjYtLjcxQTUuNzIgNS43MiAwIDAgMCAxNy40NyA1Yy0uNjkgMC0xLjMxLjExLTEuODUuMzItLjU0LjIxLTEgLjUxLTEuMzYuODgtLjM3LjM3LS42NS44LS44NCAxLjMtLjE4LjQ3LS4yNy45Ny0uMjggMS41aDIuMTRjLjAxLS4zMS4wNS0uNi4xMy0uODcuMDktLjI5LjIzLS41NC40LS43NS4xOC0uMjEuNDEtLjM3LjY4LS40OS4yNy0uMTIuNi0uMTguOTYtLjE4LjMxIDAgLjU4LjA1LjgxLjE1LjIzLjEuNDMuMjUuNTkuNDMuMTYuMTguMjguNC4zNy42NS4wOC4yNS4xMy41Mi4xMy44MSAwIC4yMi0uMDMuNDMtLjA4LjY1LS4wNi4yMi0uMTUuNDUtLjI5LjctLjE0LjI1LS4zMi41My0uNTYuODMtLjIzLjMtLjUyLjY1LS44OCAxLjAzbC00LjE3IDQuNTVWMThIMjJ2LTEuNzFoLTUuOTV6TTggN0g2djRIMnYyaDR2NGgydi00aDR2LTJIOFY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFeHBvc3VyZVplcm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi4xNCAxMi41YzAgMS0uMSAxLjg1LS4zIDIuNTUtLjIuNy0uNDggMS4yNy0uODMgMS43LS4zNi40NC0uNzkuNzUtMS4zLjk1LS41MS4yLTEuMDcuMy0xLjcuMy0uNjIgMC0xLjE4LS4xLTEuNjktLjMtLjUxLS4yLS45NS0uNTEtMS4zMS0uOTUtLjM2LS40NC0uNjUtMS4wMS0uODUtMS43LS4yLS43LS4zLTEuNTUtLjMtMi41NXYtMi4wNGMwLTEgLjEtMS44NS4zLTIuNTUuMi0uNy40OC0xLjI2Ljg0LTEuNjkuMzYtLjQzLjgtLjc0IDEuMzEtLjkzQzEwLjgxIDUuMSAxMS4zOCA1IDEyIDVjLjYzIDAgMS4xOS4xIDEuNy4yOS41MS4xOS45NS41IDEuMzEuOTMuMzYuNDMuNjQuOTkuODQgMS42OS4yLjcuMyAxLjU0LjMgMi41NXYyLjA0em0tMi4xMS0yLjM2YzAtLjY0LS4wNS0xLjE4LS4xMy0xLjYyLS4wOS0uNDQtLjIyLS43OS0uNC0xLjA2LS4xNy0uMjctLjM5LS40Ni0uNjQtLjU4LS4yNS0uMTMtLjU0LS4xOS0uODYtLjE5LS4zMiAwLS42MS4wNi0uODYuMThzLS40Ny4zMS0uNjQuNThjLS4xNy4yNy0uMzEuNjItLjQgMS4wNnMtLjEzLjk4LS4xMyAxLjYydjIuNjdjMCAuNjQuMDUgMS4xOC4xNCAxLjYyLjA5LjQ1LjIzLjgxLjQgMS4wOXMuMzkuNDguNjQuNjEuNTQuMTkuODcuMTljLjMzIDAgLjYyLS4wNi44Ny0uMTlzLjQ2LS4zMy42My0uNjFjLjE3LS4yOC4zLS42NC4zOS0xLjA5LjA5LS40NS4xMy0uOTkuMTMtMS42MnYtMi42NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXhwb3N1cmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek02IDdoNXYxLjVINlY3em0xMyAxMkg1TDE5IDV2MTR6bS00LjUtM3YySDE2di0yaDJ2LTEuNWgtMnYtMmgtMS41djJoLTJWMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZhY2VSZXRvdWNoaW5nTmF0dXJhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxLjI1XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwLjc3IDguNTgtLjkyIDIuMDFjLjA5LjQ2LjE1LjkzLjE1IDEuNDEgMCA0LjQxLTMuNTkgOC04IDhzLTgtMy41OS04LThjMC0uMDUuMDEtLjEgMC0uMTQgMi42LS45OCA0LjY5LTIuOTkgNS43NC01LjU1QTEwIDEwIDAgMCAwIDE3LjUgMTBjLjQ1IDAgLjg5LS4wNCAxLjMzLS4xbC0uNi0xLjMyLS44OC0xLjkzLTEuOTMtLjg4LTIuNzktMS4yNyAyLjc5LTEuMjcuNzEtLjMyQTkuODYgOS44NiAwIDAgMCAxMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBjMC0xLjQ3LS4zMy0yLjg3LS45LTQuMTNsLS4zMy43MXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxLjI1XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjYgNS42IDE5LjUgOGwtMS4xLTIuNEwxNiA0LjVsMi40LTEuMUwxOS41IDFsMS4xIDIuNEwyMyA0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZhY2VSZXRvdWNoaW5nT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjEuMjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNSAxMGMuNzUgMCAxLjQ3LS4wOSAyLjE3LS4yNC4yMS43MS4zMyAxLjQ2LjMzIDIuMjQgMCAxLjIyLS4yOCAyLjM3LS43NyAzLjRsMS40OSAxLjQ5QTkuOTgxIDkuOTgxIDAgMCAwIDIyIDEyYzAtNS41Mi00LjQ4LTEwLTEwLTEwLTEuNzggMC0zLjQ0LjQ3LTQuODkgMS4yOGw1LjMzIDUuMzNjMS40OS44OCAzLjIxIDEuMzkgNS4wNiAxLjM5ek0xLjg5IDMuNzJsMi4xOSAyLjE5QTkuOTU4IDkuOTU4IDAgMCAwIDIgMTJjMCA1LjUyIDQuNDggMTAgMTAgMTAgMi4yOSAwIDQuNC0uNzggNi4wOS0yLjA4bDIuMTkgMi4xOSAxLjQxLTEuNDFMMy4zMSAyLjMxIDEuODkgMy43MnptMTQuNzcgMTQuNzdBNy45MSA3LjkxIDAgMCAxIDEyIDIwYy00LjQxIDAtOC0zLjU5LTgtOCAwLS4wNS4wMS0uMSAwLS4xNGE5Ljk0NiA5Ljk0NiAwIDAgMCAzLjY0LTIuMzlsOS4wMiA5LjAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWx0ZXIxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTExIDEwaDJWNWgtNHYyaDJ2OHptNy0xNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWx0ZXIyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTE4LTRIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE2SDdWM2gxNHYxNHptLTQtNGgtNHYtMmgyYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yaC00djJoNHYyaC0yYTIgMiAwIDAgMC0yIDJ2NGg2di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWx0ZXIzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMUg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0ek0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTQgOHYtMS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNS44MyAwIDEuNS0uNjcgMS41LTEuNVY3YTIgMiAwIDAgMC0yLTJoLTR2Mmg0djJoLTJ2MmgydjJoLTR2Mmg0YTIgMiAwIDAgMCAyLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbHRlcjQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTIgMTBoMlY1aC0ydjRoLTJWNWgtMnY2aDR2NHptNi0xNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWx0ZXI1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMUg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0ek0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTQgOHYtMmEyIDIgMCAwIDAtMi0yaC0yVjdoNFY1aC02djZoNHYyaC00djJoNGEyIDIgMCAwIDAgMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWx0ZXI2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTE4LTRIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE2SDdWM2gxNHYxNHptLTgtMmgyYTIgMiAwIDAgMCAyLTJ2LTJhMiAyIDAgMCAwLTItMmgtMlY3aDRWNWgtNGEyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMnptMC00aDJ2MmgtMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsdGVyNyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6bS04LTIgNC04VjVoLTZ2Mmg0bC00IDhoMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsdGVyOCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6bS04LTJoMmEyIDIgMCAwIDAgMi0ydi0xLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41LjgzIDAgMS41LS42NyAxLjUtMS41VjdhMiAyIDAgMCAwLTItMmgtMmEyIDIgMCAwIDAtMiAydjEuNWMwIC44My42NyAxLjUgMS41IDEuNS0uODMgMC0xLjUuNjctMS41IDEuNVYxM2EyIDIgMCAwIDAgMiAyem0wLThoMnYyaC0yVjd6bTAgNGgydjJoLTJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbHRlcjlQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTExIDdWOGEyIDIgMCAwIDAtMi0yaC0xYTIgMiAwIDAgMC0yIDJ2MWEyIDIgMCAwIDAgMiAyaDF2MUg5djJoM2EyIDIgMCAwIDAgMi0yem0tMy0zVjhoMXYxaC0xem0xMC04SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCA4aC0yVjdoLTJ2MmgtMnYyaDJ2Mmgydi0yaDJ2Nkg3VjNoMTR2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsdGVyOSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6TTE1IDVoLTJhMiAyIDAgMCAwLTIgMnYyYTIgMiAwIDAgMCAyIDJoMnYyaC00djJoNGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMnptMCA0aC0yVjdoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWx0ZXJCQW5kVyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2LTctOHY4SDVsNy04VjVoN3YxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsdGVyQ2VudGVyRm9jdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE1SDN2NGMwIDEuMS45IDIgMiAyaDR2LTJINXYtNHpNNSA1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnY0aDJWNXptMTQtMmgtNHYyaDR2NGgyVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6TTEyIDljLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWx0ZXJEcmFtYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjM1IDEwLjA0QTcuNDkgNy40OSAwIDAgMCAxMiA0YTcuNDggNy40OCAwIDAgMC02LjY0IDQuMDRBNS45OTYgNS45OTYgMCAwIDAgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NnpNMTkgMThINmMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNCA0IDEuNzkgNCA0aDJjMC0yLjc2LTEuODYtNS4wOC00LjQtNS43OEM4LjYxIDYuODggMTAuMiA2IDEyIDZjMy4wMyAwIDUuNSAyLjQ3IDUuNSA1LjV2LjVIMTljMS42NSAwIDMgMS4zNSAzIDNzLTEuMzUgMy0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbHRlckZyYW1lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRoLTRsLTQtNC00IDRINGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE2SDRWNmg0LjUybDMuNTItMy41TDE1LjUyIDZIMjB2MTR6TTE4IDhINnYxMGgxMlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWx0ZXJIZHIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNCA2LTMuNzUgNSAyLjg1IDMuOC0xLjYgMS4yQzkuODEgMTMuNzUgNyAxMCA3IDEwbC02IDhoMjJMMTQgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsdGVyTm9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbHRlclRpbHRTaGlmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDQuMDdWMi4wNWMtMi4wMS4yLTMuODQgMS01LjMyIDIuMjFMNy4xIDUuNjlBNy45NDEgNy45NDEgMCAwIDEgMTEgNC4wN3ptNy4zMi4xOUE5Ljk0OSA5Ljk0OSAwIDAgMCAxMyAyLjA1djIuMDJjMS40Ni4xOCAyLjc5Ljc2IDMuOSAxLjYybDEuNDItMS40M3pNMTkuOTMgMTFoMi4wMmMtLjItMi4wMS0xLTMuODQtMi4yMS01LjMyTDE4LjMxIDcuMWE3Ljk0MSA3Ljk0MSAwIDAgMSAxLjYyIDMuOXpNNS42OSA3LjEgNC4yNiA1LjY4QTkuOTQ5IDkuOTQ5IDAgMCAwIDIuMDUgMTFoMi4wMmMuMTgtMS40Ni43Ni0yLjc5IDEuNjItMy45ek00LjA3IDEzSDIuMDVjLjIgMi4wMSAxIDMuODQgMi4yMSA1LjMybDEuNDMtMS40M0E3Ljg2OCA3Ljg2OCAwIDAgMSA0LjA3IDEzek0xNSAxMmMwLTEuNjYtMS4zNC0zLTMtM3MtMyAxLjM0LTMgMyAxLjM0IDMgMyAzIDMtMS4zNCAzLTN6bTMuMzEgNC45IDEuNDMgMS40M2E5Ljk4MSA5Ljk4MSAwIDAgMCAyLjIxLTUuMzJoLTIuMDJhNy45NDUgNy45NDUgMCAwIDEtMS42MiAzLjg5ek0xMyAxOS45M3YyLjAyYzIuMDEtLjIgMy44NC0xIDUuMzItMi4yMWwtMS40My0xLjQzYy0xLjEuODYtMi40MyAxLjQ0LTMuODkgMS42MnptLTcuMzItLjE5QTkuOTgxIDkuOTgxIDAgMCAwIDExIDIxLjk1di0yLjAyYTcuOTQxIDcuOTQxIDAgMCAxLTMuOS0xLjYybC0xLjQyIDEuNDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbHRlclZpbnRhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC43IDEyLjRhNi4wNiA2LjA2IDAgMCAwLS44Ni0uNGMuMjktLjExLjU4LS4yNC44Ni0uNGE2LjAxMiA2LjAxMiAwIDAgMCAzLTUuMTkgNi4wMDcgNi4wMDcgMCAwIDAtNiAwYy0uMjguMTYtLjU0LjM1LS43OC41NC4wNS0uMzEuMDgtLjYzLjA4LS45NSAwLTIuMjItMS4yMS00LjE1LTMtNS4xOUMxMC4yMSAxLjg1IDkgMy43OCA5IDZjMCAuMzIuMDMuNjQuMDguOTUtLjI0LS4yLS41LS4zOS0uNzgtLjU1YTYuMDA4IDYuMDA4IDAgMCAwLTYgMCA1Ljk3IDUuOTcgMCAwIDAgMyA1LjE5Yy4yOC4xNi41Ny4yOS44Ni40LS4yOS4xMS0uNTguMjQtLjg2LjRhNi4wMTIgNi4wMTIgMCAwIDAtMyA1LjE5IDYuMDA3IDYuMDA3IDAgMCAwIDYgMGMuMjgtLjE2LjU0LS4zNS43OC0uNTQtLjA1LjMyLS4wOC42NC0uMDguOTYgMCAyLjIyIDEuMjEgNC4xNSAzIDUuMTkgMS43OS0xLjA0IDMtMi45NyAzLTUuMTkgMC0uMzItLjAzLS42NC0uMDgtLjk1LjI0LjIuNS4zOC43OC41NGE2LjAwOCA2LjAwOCAwIDAgMCA2IDAgNi4wMTIgNi4wMTIgMCAwIDAtMy01LjE5ek0xMiAxNmMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNCA0IDEuNzkgNCA0LTEuNzkgNC00IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1Ljk2IDEwLjI5LTIuNzUgMy41NC0xLjk2LTIuMzZMOC41IDE1aDExbC0zLjU0LTQuNzF6TTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZsYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxMUgxdjJoNnYtMnptMi4xNy0zLjI0TDcuMDUgNS42NCA1LjY0IDcuMDVsMi4xMiAyLjEyIDEuNDEtMS40MXpNMTMgMWgtMnY2aDJWMXptNS4zNiA2LjA1LTEuNDEtMS40MS0yLjEyIDIuMTIgMS40MSAxLjQxIDIuMTItMi4xMnpNMTcgMTF2Mmg2di0yaC02em0tNS0yYy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3ptMi44MyA3LjI0IDIuMTIgMi4xMiAxLjQxLTEuNDEtMi4xMi0yLjEyLTEuNDEgMS40MXptLTkuMTkuNzEgMS40MSAxLjQxIDIuMTItMi4xMi0xLjQxLTEuNDEtMi4xMiAyLjEyek0xMSAyM2gydi02aC0ydjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZsYXNoQXV0byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMnYxMmgzdjlsNy0xMkg5bDQtOUgzem0xNiAwaC0ybC0zLjIgOWgxLjlsLjctMmgzLjJsLjcgMmgxLjlMMTkgMnptLTIuMTUgNS42NUwxOCA0bDEuMTUgMy42NWgtMi4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGbGFzaE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuMjcgMyAyIDQuMjdsNSA1VjEzaDN2OWwzLjU4LTYuMTRMMTcuNzMgMjAgMTkgMTguNzMgMy4yNyAzek0xNyAxMGgtNGw0LThIN3YyLjE4bDguNDYgOC40NkwxNyAxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmxhc2hPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMnYxMWgzdjlsNy0xMmgtNGw0LTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZsaXBDYW1lcmFBbmRyb2lkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxMmMwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zLTEuMzQtMy0zLTMtMyAxLjM0LTMgM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxMFY4SDUuMDlDNi40NyA1LjYxIDkuMDUgNCAxMiA0YzMuNzIgMCA2Ljg1IDIuNTYgNy43NCA2aDIuMDZjLS45My00LjU2LTQuOTYtOC05LjgtOC0zLjI3IDAtNi4xOCAxLjU4LTggNC4wMVY0SDJ2Nmg2ek0xNiAxNHYyaDIuOTFjLTEuMzggMi4zOS0zLjk2IDQtNi45MSA0LTMuNzIgMC02Ljg1LTIuNTYtNy43NC02SDIuMmMuOTMgNC41NiA0Ljk2IDggOS44IDggMy4yNyAwIDYuMTgtMS41OCA4LTQuMDFWMjBoMnYtNmgtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmxpcENhbWVyYUlvcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDVoLTMuMTdMMTUgM0g5TDcuMTcgNUg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bS04IDEzYy0yLjc2IDAtNS0yLjI0LTUtNUg1bDIuNS0yLjVMMTAgMTNIOGMwIDIuMjEgMS43OSA0IDQgNCAuNTggMCAxLjEzLS4xMyAxLjYyLS4zNWwuNzQuNzRjLS43MS4zNy0xLjUuNjEtMi4zNi42MXptNC41LTIuNUwxNCAxM2gyYzAtMi4yMS0xLjc5LTQtNC00LS41OCAwLTEuMTMuMTMtMS42Mi4zNWwtLjc0LS43M0MxMC4zNSA4LjI0IDExLjE0IDggMTIgOGMyLjc2IDAgNSAyLjI0IDUgNWgybC0yLjUgMi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGbGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMjFoMnYtMmgtMnYyem00LTEyaDJWN2gtMnYyek0zIDV2MTRjMCAxLjEuOSAyIDIgMmg0di0ySDVWNWg0VjNINWMtMS4xIDAtMiAuOS0yIDJ6bTE2LTJ2MmgyYzAtMS4xLS45LTItMi0yem0tOCAyMGgyVjFoLTJ2MjJ6bTgtNmgydi0yaC0ydjJ6TTE1IDVoMlYzaC0ydjJ6bTQgOGgydi0yaC0ydjJ6bTAgOGMxLjEgMCAyLS45IDItMmgtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHcmFkaWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDloMnYyaC0yem0tMiAyaDJ2Mkg5em00IDBoMnYyaC0yem0yLTJoMnYyaC0yek03IDloMnYySDd6bTEyLTZINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek05IDE4SDd2LTJoMnYyem00IDBoLTJ2LTJoMnYyem00IDBoLTJ2LTJoMnYyem0yLTdoLTJ2MmgydjJoLTJ2LTJoLTJ2MmgtMnYtMmgtMnYySDl2LTJIN3YySDV2LTJoMnYtMkg1VjVoMTR2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR3JhaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxMmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6TTYgOGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTAgOGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTEyLThjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0tNCA4Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptNC00Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptLTQtNGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bS00LTRjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHcmlkT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA0djEuNDVsMiAyVjRoNHY0aC0zLjQ1bDIgMkgxNHYxLjQ1bDIgMlYxMGg0djRoLTMuNDVsMiAySDIwdjEuNDVsMiAyVjRjMC0xLjEtLjktMi0yLTJINC41NWwyIDJIOHptOCAwaDR2NGgtNFY0ek0xLjI3IDEuMjcgMCAyLjU1bDIgMlYyMGMwIDEuMS45IDIgMiAyaDE1LjQ2bDIgMiAxLjI3LTEuMjdMMS4yNyAxLjI3ek0xMCAxMi41NSAxMS40NSAxNEgxMHYtMS40NXptLTYtNkw1LjQ1IDhINFY2LjU1ek04IDIwSDR2LTRoNHY0em0wLTZINHYtNGgzLjQ1bC41NS41NVYxNHptNiA2aC00di00aDMuNDVsLjU1LjU0VjIwem0yIDB2LTEuNDZMMTcuNDYgMjBIMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdyaWRPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek04IDIwSDR2LTRoNHY0em0wLTZINHYtNGg0djR6bTAtNkg0VjRoNHY0em02IDEyaC00di00aDR2NHptMC02aC00di00aDR2NHptMC02aC00VjRoNHY0em02IDEyaC00di00aDR2NHptMC02aC00di00aDR2NHptMC02aC00VjRoNHY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZHJFbmhhbmNlZFNlbGVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJjMy4zMSAwIDYgMi42OSA2IDZzLTIuNjkgNi02IDYtNi0yLjY5LTYtNiAyLjY5LTYgNi02em0wIDJDOS43OSA0IDggNS43OSA4IDhzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTEgN2gtMlY5SDlWN2gyVjVoMnYyaDJ2MmgtMnYyem0xMSA5aC0ydjJoLTEuNXYtMmgtMnYtMS41aDJ2LTJIMjJ2MmgyVjIwem0tNi0xLjVjMCAuNi0uNCAxLjEtLjkgMS40TDE4IDIyaC0xLjVsLS45LTJoLTEuMXYySDEzdi02aDMuNWMuOCAwIDEuNS43IDEuNSAxLjV2MXptLTEuNSAwdi0xaC0ydjFoMnptLTEzLS41di0ySDV2NkgzLjV2LTIuNWgtMlYyMkgwdi02aDEuNXYyaDJ6bTYuNS0yYy44IDAgMS41LjcgMS41IDEuNXYzYzAgLjgtLjcgMS41LTEuNSAxLjVINi41di02SDEwem0wIDQuNXYtM0g4djNoMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGRyT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy41IDE1di0yaDEuMWwuOSAySDIxbC0uOS0yLjFjLjUtLjIuOS0uOC45LTEuNHYtMWMwLS44LS43LTEuNS0xLjUtMS41SDE2djQuOWwxLjEgMS4xaC40em0wLTQuNWgydjFoLTJ2LTF6bS00LjUgMHYuNGwxLjUgMS41di0xLjljMC0uOC0uNy0xLjUtMS41LTEuNWgtMS45bDEuNSAxLjVoLjR6bS0zLjUtMS03LTctMS4xIDFMNi45IDloLS40djJoLTJWOUgzdjZoMS41di0yLjVoMlYxNUg4di00LjlsMS41IDEuNVYxNWgzLjRsNy42IDcuNiAxLjEtMS4xLTEyLjEtMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhkck9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMS41di0xYzAtLjgtLjctMS41LTEuNS0xLjVIMTZ2NmgxLjV2LTJoMS4xbC45IDJIMjFsLS45LTIuMWMuNS0uMy45LS44LjktMS40em0tMS41IDBoLTJ2LTFoMnYxem0tMTMtLjVoLTJWOUgzdjZoMS41di0yLjVoMlYxNUg4VjlINi41djJ6TTEzIDlIOS41djZIMTNjLjggMCAxLjUtLjcgMS41LTEuNXYtM2MwLS44LS43LTEuNS0xLjUtMS41em0wIDQuNWgtMnYtM2gydjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhkclBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgMTQuNWgydjFoLTJ6TTE0LjUgNy41SDE2djNoLTEuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxMy41YzAgLjYtLjQgMS4xLS45IDEuNEwxMiAxOWgtMS41bC0uOS0ySDguNXYySDd2LTZoMy41Yy44IDAgMS41LjcgMS41IDEuNXYxem0wLTMuNWgtMS41VjkuNWgtMlYxMkg3VjZoMS41djJoMlY2SDEydjZ6bTUuNSA0SDE2djEuNWgtMS41VjE2SDEzdi0xLjVoMS41VjEzSDE2djEuNDloMS41VjE2em0wLTUuNWMwIC44LS43IDEuNS0xLjUgMS41aC0zVjZoM2MuOCAwIDEuNS43IDEuNSAxLjV2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGRyU3Ryb25nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNmMtMy4zMSAwLTYgMi42OS02IDZzMi42OSA2IDYgNiA2LTIuNjkgNi02LTIuNjktNi02LTZ6TTUgOGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTAgNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhkcldlYWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDhjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0xMi0yYy0zLjMxIDAtNiAyLjY5LTYgNnMyLjY5IDYgNiA2IDYtMi42OSA2LTYtMi42OS02LTYtNnptMCAxMGMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNCA0IDEuNzkgNCA0LTEuNzkgNC00IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhlYWxpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNy43MyAxMi4wMiAzLjk4LTMuOThhLjk5Ni45OTYgMCAwIDAgMC0xLjQxbC00LjM0LTQuMzRhLjk5Ni45OTYgMCAwIDAtMS40MSAwbC0zLjk4IDMuOThMOCAyLjI5YTEuMDAxIDEuMDAxIDAgMCAwLTEuNDEgMEwyLjI1IDYuNjNhLjk5Ni45OTYgMCAwIDAgMCAxLjQxbDMuOTggMy45OEwyLjI1IDE2YS45OTYuOTk2IDAgMCAwIDAgMS40MWw0LjM0IDQuMzRjLjM5LjM5IDEuMDIuMzkgMS40MSAwbDMuOTgtMy45OCAzLjk4IDMuOThjLjIuMi40NS4yOS43MS4yOS4yNiAwIC41MS0uMS43MS0uMjlsNC4zNC00LjM0YS45OTYuOTk2IDAgMCAwIDAtMS40MWwtMy45OS0zLjk4ek0xMiA5Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bS00LjcxIDEuOTZMMy42NiA3LjM0bDMuNjMtMy42MyAzLjYyIDMuNjItMy42MiAzLjYzek0xMCAxM2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0yIDJjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMi00Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTIuNjYgOS4zNC0zLjYzLTMuNjIgMy42My0zLjYzIDMuNjIgMy42Mi0zLjYyIDMuNjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhldmMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUgMTFoLTFWOUgzdjZoMS41di0yLjVoMVYxNUg3VjlINS41ek0yMSAxMXYtMWMwLS41NS0uNDUtMS0xLTFoLTJjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxaDJjLjU1IDAgMS0uNDUgMS0xdi0xaC0xLjV2LjVoLTF2LTNoMXYuNUgyMXpNMTQuMjUgMTMuNSAxMy41IDlIMTJsMSA2aDIuNWwxLTZIMTV6TTggOXY2aDMuNXYtMS41aC0ydi0xaDJWMTFoLTJ2LS41aDJWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGlkZUltYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNWMwLTEuMS0uOS0yLTItMkg1LjgzTDIxIDE4LjE3VjV6TTIuODEgMi44MSAxLjM5IDQuMjIgMyA1LjgzVjE5YzAgMS4xLjkgMiAyIDJoMTMuMTdsMS42MSAxLjYxIDEuNDEtMS40MUwyLjgxIDIuODF6TTYgMTdsMy00IDIuMjUgMyAuODItMS4xIDIuMSAyLjFINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW1hZ2VBc3BlY3RSYXRpbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDEwaC0ydjJoMnYtMnptMCA0aC0ydjJoMnYtMnptLTgtNEg2djJoMnYtMnptNCAwaC0ydjJoMnYtMnptOC02SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNEg0VjZoMTZ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEltYWdlTm90U3VwcG9ydGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuOSAyMS45LTguNDktOC40OS05LjgyLTkuODJMMi4xIDIuMS42OSAzLjUxIDMgNS44M1YxOWMwIDEuMS45IDIgMiAyaDEzLjE3bDIuMzEgMi4zMSAxLjQyLTEuNDF6TTUgMThsMy41LTQuNSAyLjUgMy4wMUwxMi4xNyAxNWwzIDNINXptMTYgLjE3TDUuODMgM0gxOWMxLjEgMCAyIC45IDIgMnYxMy4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW1hZ2VTZWFyY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM3Y3SDRWNmg1LjAyYy4wNS0uNzEuMjItMS4zOC40OC0ySDRjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTVsLTItMnptLTEuNSA1aC0xMWwyLjc1LTMuNTMgMS45NiAyLjM2IDIuNzUtMy41NHptMi44LTkuMTFjLjQ0LS43LjctMS41MS43LTIuMzlDMjAgNC4wMSAxNy45OSAyIDE1LjUgMlMxMSA0LjAxIDExIDYuNXMyLjAxIDQuNSA0LjQ5IDQuNWMuODggMCAxLjctLjI2IDIuMzktLjdMMjEgMTMuNDIgMjIuNDIgMTIgMTkuMyA4Ljg5ek0xNS41IDlhMi41IDIuNSAwIDAgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEltYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTlWNWMwLTEuMS0uOS0yLTItMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yek04LjUgMTMuNWwyLjUgMy4wMUwxNC41IDEybDQuNSA2SDVsMy41LTQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW5jb21wbGV0ZUNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDEyYzAgNS41Mi00LjQ4IDEwLTEwIDEwUzIgMTcuNTIgMiAxMmMwLTIuNzYgMS4xMi01LjI2IDIuOTMtNy4wN0wxMiAxMlYyYzUuNTIgMCAxMCA0LjQ4IDEwIDEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJc28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTUuNSA3LjVoMnYtMkg5djJoMlY5SDl2Mkg3LjVWOWgtMlY3LjV6TTE5IDE5SDVMMTkgNXYxNHptLTItMnYtMS41aC01VjE3aDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExhbmRzY2FwZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0IDYtMy43NSA1IDIuODUgMy44LTEuNiAxLjJDOS44MSAxMy43NSA3IDEwIDcgMTBsLTYgOGgyMkwxNCA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMZWFrQWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAzSDN2M2MxLjY2IDAgMy0xLjM0IDMtM3ptOCAwaC0yYTkgOSAwIDAgMS05IDl2MmM2LjA4IDAgMTEtNC45MyAxMS0xMXptLTQgMEg4YzAgMi43Ni0yLjI0IDUtNSA1djJjMy44NyAwIDctMy4xMyA3LTd6bTAgMThoMmE5IDkgMCAwIDEgOS05di0yYy02LjA3IDAtMTEgNC45My0xMSAxMXptOCAwaDN2LTNjLTEuNjYgMC0zIDEuMzQtMyAzem0tNCAwaDJjMC0yLjc2IDIuMjQtNSA1LTV2LTJjLTMuODcgMC03IDMuMTMtNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMZWFrUmVtb3ZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgM0g4YzAgLjM3LS4wNC43Mi0uMTIgMS4wNmwxLjU5IDEuNTlDOS44MSA0Ljg0IDEwIDMuOTQgMTAgM3pNMyA0LjI3bDIuODQgMi44NEM1LjAzIDcuNjcgNC4wNiA4IDMgOHYyYzEuNjEgMCAzLjA5LS41NSA0LjI3LTEuNDZMOC43IDkuOTdBOC45OSA4Ljk5IDAgMCAxIDMgMTJ2MmMyLjcxIDAgNS4xOS0uOTkgNy4xMS0yLjYybDIuNSAyLjVBMTEuMDQ0IDExLjA0NCAwIDAgMCAxMCAyMWgyYzAtMi4xNi43Ni00LjE0IDIuMDMtNS42OWwxLjQzIDEuNDNBNi45MjIgNi45MjIgMCAwIDAgMTQgMjFoMmMwLTEuMDYuMzMtMi4wMy44OS0yLjg0TDE5LjczIDIxIDIxIDE5LjczIDQuMjcgMyAzIDQuMjd6TTE0IDNoLTJjMCAxLjUtLjM3IDIuOTEtMS4wMiA0LjE2bDEuNDYgMS40NkMxMy40MiA2Ljk4IDE0IDUuMDYgMTQgM3ptNS45NCAxMy4xMmMuMzQtLjA4LjY5LS4xMiAxLjA2LS4xMnYtMmMtLjk0IDAtMS44NC4xOS0yLjY2LjUybDEuNiAxLjZ6bS00LjU2LTQuNTYgMS40NiAxLjQ2QTguOTggOC45OCAwIDAgMSAyMSAxMnYtMmMtMi4wNiAwLTMuOTguNTgtNS42MiAxLjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMZW5zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGlua2VkQ2FtZXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTRcIixcInJcIjpcIjMuMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTRcIixcInJcIjpcIjVcIixcImZpbGxcIjpcIm5vbmVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMy4zM2MyLjU4IDAgNC42NyAyLjA5IDQuNjcgNC42N0gyMmMwLTMuMzEtMi42OS02LTYtNnYxLjMzTTE2IDZjMS4xMSAwIDIgLjg5IDIgMmgxLjMzYzAtMS44NC0xLjQ5LTMuMzMtMy4zMy0zLjMzVjZcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMjQgMEgwdjI0aDI0VjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDljMC0xLjExLS44OS0yLTItMlY0SDlMNy4xNyA2SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOWgtNXptLTUgMTBjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2dvRGV2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTcuNjggMTQuOThINlY5aDEuNzFjMS4yOCAwIDEuNzEgMS4wMyAxLjcxIDEuNzF2Mi41NmMwIC42OC0uNDIgMS43MS0xLjc0IDEuNzF6bTQuNy0zLjUydjEuMDdIMTEuMnYxLjM5aDEuOTN2MS4wN2gtMi4yNWMtLjQuMDEtLjc0LS4zMS0uNzUtLjcxVjkuNzVjLS4wMS0uNC4zMS0uNzQuNzEtLjc1aDIuMjh2MS4wN0gxMS4ydjEuMzloMS4xOHptNC41IDIuNzdjLS40OCAxLjExLTEuMzMuODktMS43MSAwTDEzLjc3IDloMS4xOGwxLjA3IDQuMTFMMTcuMDkgOWgxLjE4bC0xLjM5IDUuMjN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNzcgMTAuMTJoLS42M3YzLjc3aC42M2MuMTQgMCAuMjgtLjA1LjQyLS4xNi4xNC0uMS4yMS0uMjYuMjEtLjQ3di0yLjUyYzAtLjIxLS4wNy0uMzctLjIxLS40N2EuNzIuNzIgMCAwIDAtLjQyLS4xNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9va3MzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0uMDEgMGgyNHYyNGgtMjR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjAxIDNoLTE0Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS00IDcuNWMwIC44My0uNjcgMS41LTEuNSAxLjUuODMgMCAxLjUuNjcgMS41IDEuNVYxNWEyIDIgMCAwIDEtMiAyaC00di0yaDR2LTJoLTJ2LTJoMlY5aC00VjdoNGEyIDIgMCAwIDEgMiAydjEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9va3M0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS00IDE0aC0ydi00SDlWN2gydjRoMlY3aDJ2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvb2tzNSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNCA2aC00djJoMmEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAxLTIgMkg5di0yaDR2LTJIOVY3aDZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9va3M2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTVoMnYtMmgtMnYyem04LTEySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTQgNmgtNHYyaDJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJoLTJhMiAyIDAgMCAxLTItMlY5YTIgMiAwIDAgMSAyLTJoNHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb29rc09uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNSAxNGgtMlY5aC0yVjdoNHYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9va3NUd28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTQgOGEyIDIgMCAwIDEtMiAyaC0ydjJoNHYySDl2LTRhMiAyIDAgMCAxIDItMmgyVjlIOVY3aDRhMiAyIDAgMCAxIDIgMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb29rcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEwYy0zLjg2IDAtNyAzLjE0LTcgN2gyYzAtMi43NiAyLjI0LTUgNS01czUgMi4yNCA1IDVoMmMwLTMuODYtMy4xNC03LTctN3ptMC00QzUuOTMgNiAxIDEwLjkzIDEgMTdoMmMwLTQuOTYgNC4wNC05IDktOXM5IDQuMDQgOSA5aDJjMC02LjA3LTQuOTMtMTEtMTEtMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvdXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgN2gtMnY0SDd2Mmg0djRoMnYtNGg0di0yaC00Vjd6bS0xLTVDNi40OSAyIDIgNi40OSAyIDEyczQuNDkgMTAgMTAgMTBoOGMxLjEgMCAyLS45IDItMnYtOGMwLTUuNTEtNC40OS0xMC0xMC0xMHptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1pY0V4dGVybmFsT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuMTkgMjEuMTkgMi44MSAyLjgxIDEuMzkgNC4yMiA1LjE3IDhINGwxIDEwaDFjMCAyLjIxIDEuNzkgNCA0IDRzNC0xLjc5IDQtNHYtMS4xN2w1Ljc4IDUuNzggMS40MS0xLjQyek0xMiAxOGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTJoMWwuNTYtNS42MUwxMiAxNC44M1YxOHptMi0xMnY1LjE3bC0yLTJWNmMwLTIuMjEgMS43OS00IDQtNHM0IDEuNzkgNCA0djExLjE3bC0yLTJWNmMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDJ6bS00LTFjMCAuNjItLjIgMS4xOC0uNTIgMS42Nkw1LjMzIDIuNTFBMi45OTYgMi45OTYgMCAwIDEgMTAgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWljRXh0ZXJuYWxPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjIgN0g0Ljc4QzQuMyA2LjQ3IDQgNS43NyA0IDVjMC0xLjY2IDEuMzQtMyAzLTNzMyAxLjM0IDMgM2MwIC43Ny0uMyAxLjQ3LS43OCAyek0xNiAyYzIuMjEgMCA0IDEuNzkgNCA0djE2aC0yVjZjMC0xLjEtLjktMi0yLTJzLTIgLjktMiAydjEyYzAgMi4yMS0xLjc5IDQtNCA0cy00LTEuNzktNC00SDVMNCA4aDZMOSAxOEg4YzAgMS4xLjkgMiAyIDJzMi0uOSAyLTJWNmMwLTIuMjEgMS43OS00IDQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW9ub2Nocm9tZVBob3RvcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpNLTc0IDI5aDQ4djQ4aC00OFYyOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNWgtMy4yTDE1IDNIOUw3LjIgNUg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bTAgMTRoLTh2LTFjLTIuOCAwLTUtMi4yLTUtNXMyLjItNSA1LTVWN2g4djEyem0tMy02YzAtMi44LTIuMi01LTUtNXYxLjhjMS44IDAgMy4yIDEuNCAzLjIgMy4ycy0xLjQgMy4yLTMuMiAzLjJWMThjMi44IDAgNS0yLjIgNS01em0tOC4yIDBjMCAxLjggMS40IDMuMiAzLjIgMy4yVjkuOGMtMS44IDAtMy4yIDEuNC0zLjIgMy4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb3Rpb25QaG90b3NBdXRvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMi44OCA3Ljg4IDEuNTQgMS41NEM0LjE1IDEwLjIzIDQgMTEuMSA0IDEyYzAgNC40MSAzLjU5IDggOCA4czgtMy41OSA4LTgtMy41OS04LTgtOGMtLjkgMC0xLjc3LjE1LTIuNTguNDJMNy44OSAyLjg5QzkuMTUgMi4zMiAxMC41NCAyIDEyIDJjNS41MiAwIDEwIDQuNDggMTAgMTBzLTQuNDggMTAtMTAgMTBTMiAxNy41MiAyIDEyYzAtMS40Ny4zMi0yLjg2Ljg4LTQuMTJ6TTcgNS41QzcgNi4zMyA2LjMzIDcgNS41IDdTNCA2LjMzIDQgNS41IDQuNjcgNCA1LjUgNCA3IDQuNjcgNyA1LjV6bTUuMDMgMy40OWgtLjA3TDEwLjggMTIuM2gyLjM5bC0xLjE2LTMuMzF6TTEyIDE4YzMuMzEgMCA2LTIuNjkgNi02cy0yLjY5LTYtNi02LTYgMi42OS02IDYgMi42OSA2IDYgNnptLS43MS0xMC41aDEuNDNsMy4wMSA4aC0xLjM5bC0uNzItMi4wNGgtMy4yM2wtLjczIDIuMDRIOC4yOGwzLjAxLTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vdGlvblBob3Rvc09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjg0IDIwLjg0IDMuMTYgMy4xNiAxLjg5IDQuNDNsMS44OSAxLjg5QTkuOTIgOS45MiAwIDAgMCAyIDEyYzAgNS41MiA0LjQ4IDEwIDEwIDEwIDIuMTEgMCA0LjA3LS42NiA1LjY4LTEuNzdsMS44OSAxLjg5IDEuMjctMS4yOHpNMTIgMjBjLTQuNDEgMC04LTMuNTktOC04IDAtMS41NS40NS0zIDEuMjItNC4yM2wxLjQ2IDEuNDZDNi4yNSAxMC4wNiA2IDExIDYgMTJjMCAzLjMxIDIuNjkgNiA2IDYgMSAwIDEuOTQtLjI1IDIuNzctLjY4bDEuNDYgMS40NkE3Ljk1MSA3Ljk1MSAwIDAgMSAxMiAyMHpNNi4zMiAzLjc3QTkuOTg2IDkuOTg2IDAgMCAxIDEyIDJjNS41MiAwIDEwIDQuNDggMTAgMTAgMCAyLjExLS42NiA0LjA3LTEuNzcgNS42OGwtMS40NS0xLjQ1QTcuOTUxIDcuOTUxIDAgMCAwIDIwIDEyYzAtNC40MS0zLjU5LTgtOC04LTEuNTUgMC0zIC40NS00LjIzIDEuMjJMNi4zMiAzLjc3ek0xOCAxMmMwIDEtLjI1IDEuOTQtLjY4IDIuNzdMOS4yMyA2LjY4QzEwLjA2IDYuMjUgMTEgNiAxMiA2YzMuMzEgMCA2IDIuNjkgNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb3Rpb25QaG90b3NPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIuODggNy44OCAxLjU0IDEuNTRDNC4xNSAxMC4yMyA0IDExLjEgNCAxMmMwIDQuNDEgMy41OSA4IDggOHM4LTMuNTkgOC04LTMuNTktOC04LThjLS45IDAtMS43Ny4xNS0yLjU4LjQyTDcuODkgMi44OUM5LjE1IDIuMzIgMTAuNTQgMiAxMiAyYzUuNTIgMCAxMCA0LjQ4IDEwIDEwcy00LjQ4IDEwLTEwIDEwUzIgMTcuNTIgMiAxMmMwLTEuNDcuMzItMi44Ni44OC00LjEyek02IDEyYzAtMy4zMSAyLjY5LTYgNi02czYgMi42OSA2IDYtMi42OSA2LTYgNi02LTIuNjktNi02em0xLTYuNUM3IDYuMzMgNi4zMyA3IDUuNSA3UzQgNi4zMyA0IDUuNSA0LjY3IDQgNS41IDQgNyA0LjY3IDcgNS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb3Rpb25QaG90b3NQYXVzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIuODggNy44OCAxLjU0IDEuNTRDNC4xNSAxMC4yMyA0IDExLjEgNCAxMmMwIDQuNDEgMy41OSA4IDggOHM4LTMuNTkgOC04LTMuNTktOC04LThjLS45IDAtMS43Ny4xNS0yLjU4LjQyTDcuODkgMi44OUM5LjE1IDIuMzIgMTAuNTQgMiAxMiAyYzUuNTIgMCAxMCA0LjQ4IDEwIDEwcy00LjQ4IDEwLTEwIDEwUzIgMTcuNTIgMiAxMmMwLTEuNDcuMzItMi44Ni44OC00LjEyek03IDUuNUM3IDYuMzMgNi4zMyA3IDUuNSA3UzQgNi4zMyA0IDUuNSA0LjY3IDQgNS41IDQgNyA0LjY3IDcgNS41em01IC41Yy0zLjMxIDAtNiAyLjY5LTYgNnMyLjY5IDYgNiA2IDYtMi42OSA2LTYtMi42OS02LTYtNnptLTEgOUg5VjloMnY2em00IDBoLTJWOWgydjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vdGlvblBob3Rvc1BhdXNlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDEyYzAgNS41Mi00LjQ4IDEwLTEwIDEwUzIgMTcuNTIgMiAxMmMwLTEuMTkuMjItMi4zMi42LTMuMzhsMS44OC42OEM0LjE3IDEwLjE0IDQgMTEuMDUgNCAxMmMwIDQuNDEgMy41OSA4IDggOHM4LTMuNTkgOC04LTMuNTktOC04LThjLS45NSAwLTEuODUuMTctMi42OS40OGwtLjY4LTEuODlDOS42OSAyLjIyIDEwLjgyIDIgMTIgMmM1LjUyIDAgMTAgNC40OCAxMCAxMHpNNS41IDRDNC42NyA0IDQgNC42NyA0IDUuNVM0LjY3IDcgNS41IDcgNyA2LjMzIDcgNS41IDYuMzMgNCA1LjUgNHpNMTEgMTZWOEg5djhoMnptNCAwVjhoLTJ2OGgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb3ZpZUNyZWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTggNCAyIDRoLTNsLTItNGgtMmwyIDRoLTNsLTItNEg4bDIgNEg3TDUgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb3ZpZUZpbHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4IDQgMiAzaC0zbC0yLTNoLTJsMiAzaC0zbC0yLTNIOGwyIDNIN0w1IDRINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNGgtNHptLTYuNzUgMTEuMjVMMTAgMThsLTEuMjUtMi43NUw2IDE0bDIuNzUtMS4yNUwxMCAxMGwxLjI1IDIuNzVMMTQgMTRsLTIuNzUgMS4yNXptNS42OS0zLjMxTDE2IDE0bC0uOTQtMi4wNkwxMyAxMWwyLjA2LS45NEwxNiA4bC45NCAyLjA2TDE5IDExbC0yLjA2Ljk0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTYuNSA5SDExYy41NSAwIDEgLjQ1IDEgMXY1aC0xLjV2LTQuNWgtMXYzSDh2LTNIN1YxNUg1LjV2LTVjMC0uNTUuNDUtMSAxLTF6bTkgNkgxNFY5aDMuNWMuNTUgMCAxIC40NSAxIDF2Mi41YzAgLjU1LS40NSAxLTEgMWgtMlYxNXptMC0zSDE3di0xLjVoLTEuNVYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTXVzaWNOb3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgM3YxMC41NWMtLjU5LS4zNC0xLjI3LS41NS0yLS41NS0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTRWN2g0VjNoLTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE11c2ljT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC4yNyAzIDMgNC4yN2w5IDl2LjI4Yy0uNTktLjM0LTEuMjctLjU1LTItLjU1LTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNHYtMS43M0wxOS43MyAyMSAyMSAxOS43MyA0LjI3IDN6TTE0IDdoNFYzaC02djUuMThsMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROYXR1cmVQZW9wbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMi4xNyA5LjE3YzAtMy44Ny0zLjEzLTctNy03cy03IDMuMTMtNyA3QTYuOTggNi45OCAwIDAgMCAxNCAxNi4wNlYyMEg2di0zaDF2LTRjMC0uNTUtLjQ1LTEtMS0xSDNjLS41NSAwLTEgLjQ1LTEgMXY0aDF2NWgxNnYtMmgtM3YtMy44OGE3IDcgMCAwIDAgNi4xNy02Ljk1ek00LjUgMTFjLjgzIDAgMS41LS42NyAxLjUtMS41UzUuMzMgOCA0LjUgOCAzIDguNjcgMyA5LjUgMy42NyAxMSA0LjUgMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5hdHVyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDE2LjEyYTcgNyAwIDAgMCA2LjE3LTYuOTVjMC0zLjg3LTMuMTMtNy03LTdzLTcgMy4xMy03IDdBNi45OCA2Ljk4IDAgMCAwIDExIDE2LjA2VjIwSDV2MmgxNHYtMmgtNnYtMy44OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTmF2aWdhdGVCZWZvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS40MSA3LjQxIDE0IDZsLTYgNiA2IDYgMS40MS0xLjQxTDEwLjgzIDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROYXZpZ2F0ZU5leHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA2IDguNTkgNy40MSAxMy4xNyAxMmwtNC41OCA0LjU5TDEwIDE4bDYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGFsZXR0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OSAyIDIgNi40OSAyIDEyczQuNDkgMTAgMTAgMTBhMi41IDIuNSAwIDAgMCAyLjUtMi41YzAtLjYxLS4yMy0xLjItLjY0LTEuNjdhLjUyOC41MjggMCAwIDEtLjEzLS4zM2MwLS4yOC4yMi0uNS41LS41SDE2YzMuMzEgMCA2LTIuNjkgNi02IDAtNC45Ni00LjQ5LTktMTAtOXptNS41IDExYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXptLTMtNGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzEzLjY3IDYgMTQuNSA2czEuNS42NyAxLjUgMS41UzE1LjMzIDkgMTQuNSA5ek01IDExLjVjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjVTNy4zMyAxMyA2LjUgMTMgNSAxMi4zMyA1IDExLjV6bTYtNGMwIC44My0uNjcgMS41LTEuNSAxLjVTOCA4LjMzIDggNy41IDguNjcgNiA5LjUgNnMxLjUuNjcgMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGFub3JhbWFGaXNoRXllIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ3IDIgMiA2LjQ3IDIgMTJzNC40NyAxMCAxMCAxMCAxMC00LjQ3IDEwLTEwUzE3LjUzIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBhbm9yYW1hSG9yaXpvbnRhbFNlbGVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjQzIDRjLS4xIDAtLjIuMDItLjMxLjA2QzE4LjE4IDUuMTYgMTUuMDkgNS43IDEyIDUuN3MtNi4xOC0uNTUtOS4xMi0xLjY0QS45NC45NCAwIDAgMCAyLjU3IDRjLS4zNCAwLS41Ny4yMy0uNTcuNjN2MTQuNzVjMCAuMzkuMjMuNjIuNTcuNjIuMSAwIC4yLS4wMi4zMS0uMDYgMi45NC0xLjEgNi4wMy0xLjY0IDkuMTItMS42NHM2LjE4LjU1IDkuMTIgMS42NGMuMTEuMDQuMjEuMDYuMzEuMDYuMzMgMCAuNTctLjIzLjU3LS42M1Y0LjYzYzAtLjQtLjI0LS42My0uNTctLjYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQYW5vcmFtYUhvcml6b250YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2LjU0djEwLjkxYy0yLjYtLjc3LTUuMjgtMS4xNi04LTEuMTYtMi43MiAwLTUuNC4zOS04IDEuMTZWNi41NGMyLjYuNzcgNS4yOCAxLjE2IDggMS4xNiAyLjcyLjAxIDUuNC0uMzggOC0xLjE2TTIxLjQzIDRjLS4xIDAtLjIuMDItLjMxLjA2QzE4LjE4IDUuMTYgMTUuMDkgNS43IDEyIDUuN2MtMy4wOSAwLTYuMTgtLjU1LTkuMTItMS42NEEuOTQuOTQgMCAwIDAgMi41NyA0Yy0uMzQgMC0uNTcuMjMtLjU3LjYzdjE0Ljc1YzAgLjM5LjIzLjYyLjU3LjYyLjEgMCAuMi0uMDIuMzEtLjA2IDIuOTQtMS4xIDYuMDMtMS42NCA5LjEyLTEuNjQgMy4wOSAwIDYuMTguNTUgOS4xMiAxLjY0LjExLjA0LjIxLjA2LjMxLjA2LjMzIDAgLjU3LS4yMy41Ny0uNjNWNC42M2MwLS40LS4yNC0uNjMtLjU3LS42M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGFub3JhbWFQaG90b3NwaGVyZVNlbGVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyLjQ5IDguNTFjLS40Ny0uMjMtLjkzLS40NC0xLjQtLjY0QzE5LjUyIDQuNDEgMTYuMDUgMiAxMiAyUzQuNDcgNC40MSAyLjkgNy44OGMtLjQ3LjItLjkzLjQxLTEuNC42My0uMzEuMTUtLjUuNDgtLjUuODN2NS4zMmMwIC4zNS4xOS42OC41MS44My40Ny4yMy45My40NCAxLjM5LjY0IDMuNTUgNy44MyAxNC42NSA3LjgyIDE4LjIgMCAuNDctLjIuOTMtLjQxIDEuMzktLjYzLjMxLS4xNy41MS0uNDkuNTEtLjg0VjkuMzRhLjkxLjkxIDAgMCAwLS41MS0uODN6TTEyIDMuOGMyLjYgMCA0LjkxIDEuMjMgNi40MSAzLjEyLTQuMS0xLjE5LTguNDgtMS4yNi0xMi44My4wMUM3LjA4IDUuMDMgOS40IDMuOCAxMiAzLjh6TTUuNiAxNy4wOGM0LjE5IDEuMjIgOC41NyAxLjIzIDEyLjgyLS4wMWE4LjEzNiA4LjEzNiAwIDAgMS0xMi44Mi4wMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGFub3JhbWFQaG90b3NwaGVyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjQgMTEuMzJ2Mi45M2MtLjEuMDUtMi4xNy44NS0zLjMzIDEuMTctLjk0LjI2LTMuODQuNzMtNi4wNy43My0zLjcgMC03LS43LTkuMTYtMS44LS4wOC0uMDQtLjE2LS4wNi0uMjQtLjFWOS43NmM2LjAyLTIuODQgMTIuNi0yLjkyIDE4LjggMHYxLjU2em0tOS4zOSA4Ljg4Yy0yLjUgMC00Ljg3LTEuMTUtNi40MS0zLjEyIDQuMTkgMS4yMiA4LjU3IDEuMjMgMTIuODItLjAxYTguMTM2IDguMTM2IDAgMCAxLTYuNDEgMy4xM3pNMTIgMy44YzIuNiAwIDQuOTEgMS4yMyA2LjQxIDMuMTItNC4xLTEuMTktOC40OC0xLjI2LTEyLjgzLjAxQzcuMDggNS4wMyA5LjQgMy44IDEyIDMuOHptMTAuNDkgNC43MWMtLjQ3LS4yMy0uOTMtLjQ0LTEuNC0uNjRDMTkuNTIgNC40MSAxNi4wNSAyIDEyIDJTNC40NyA0LjQxIDIuOSA3Ljg4Yy0uNDcuMi0uOTMuNDEtMS40LjYzLS4zMS4xNS0uNS40OC0uNS44M3Y1LjMyYzAgLjM1LjE5LjY4LjUxLjgzLjQ3LjIzLjkzLjQ0IDEuMzkuNjQgMy41NSA3LjgzIDE0LjY1IDcuODIgMTguMiAwIC40Ny0uMi45My0uNDEgMS4zOS0uNjMuMzEtLjE3LjUxLS40OS41MS0uODRWOS4zNGEuOTEuOTEgMCAwIDAtLjUxLS44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGFub3JhbWFWZXJ0aWNhbFNlbGVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjkzIDIxLjEyYy0xLjEtMi45NC0xLjY0LTYuMDMtMS42NC05LjEycy41NS02LjE4IDEuNjQtOS4xMmMuMDUtLjExLjA3LS4yMi4wNy0uMzEgMC0uMzQtLjI0LS41Ny0uNjQtLjU3SDQuNjJjLS40IDAtLjYzLjIzLS42My41NyAwIC4xLjAyLjIuMDYuMzFDNS4xNiA1LjgyIDUuNyA4LjkxIDUuNyAxMnMtLjU1IDYuMTgtMS42NCA5LjEyYy0uMDUuMTEtLjA3LjIyLS4wNy4zMSAwIC4zMy4yMy41Ny42My41N2gxNC43NWMuMzkgMCAuNjMtLjI0LjYzLS41NyAwLS4xLS4wMi0uMi0uMDctLjMxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQYW5vcmFtYVZlcnRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuOTQgMjEuMTJjLTEuMS0yLjk0LTEuNjQtNi4wMy0xLjY0LTkuMTIgMC0zLjA5LjU1LTYuMTggMS42NC05LjEyYS45NC45NCAwIDAgMCAuMDYtLjMxYzAtLjM0LS4yMy0uNTctLjYzLS41N0g0LjYzYy0uNCAwLS42My4yMy0uNjMuNTcgMCAuMS4wMi4yLjA2LjMxQzUuMTYgNS44MiA1LjcxIDguOTEgNS43MSAxMmMwIDMuMDktLjU1IDYuMTgtMS42NCA5LjEyLS4wNS4xMS0uMDcuMjItLjA3LjMxIDAgLjMzLjIzLjU3LjYzLjU3aDE0Ljc1Yy4zOSAwIC42My0uMjQuNjMtLjU3LS4wMS0uMS0uMDMtLjItLjA3LS4zMXpNNi41NCAyMGMuNzctMi42IDEuMTYtNS4yOCAxLjE2LTggMC0yLjcyLS4zOS01LjQtMS4xNi04aDEwLjkxYy0uNzcgMi42LTEuMTYgNS4yOC0xLjE2IDggMCAyLjcyLjM5IDUuNCAxLjE2IDhINi41NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGFub3JhbWFXaWRlQW5nbGVTZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0Yy0yLjczIDAtNS4yMi4yNC03Ljk1LjcybC0uOTMuMTYtLjI1LjlDMi4yOSA3Ljg1IDIgOS45MyAyIDEycy4yOSA0LjE1Ljg3IDYuMjJsLjI1Ljg5LjkzLjE2YzIuNzMuNDkgNS4yMi43MyA3Ljk1LjczczUuMjItLjI0IDcuOTUtLjcybC45My0uMTYuMjUtLjg5Yy41OC0yLjA4Ljg3LTQuMTYuODctNi4yM3MtLjI5LTQuMTUtLjg3LTYuMjJsLS4yNS0uODktLjkzLS4xNkMxNy4yMiA0LjI0IDE0LjczIDQgMTIgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGFub3JhbWFXaWRlQW5nbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2YzIuNDUgMCA0LjcxLjIgNy4yOS42NEEyMSAyMSAwIDAgMSAyMCAxMmEyMSAyMSAwIDAgMS0uNzEgNS4zNmMtMi41OC40NC00Ljg0LjY0LTcuMjkuNjRzLTQuNzEtLjItNy4yOS0uNjRBMjEgMjEgMCAwIDEgNCAxMmEyMSAyMSAwIDAgMSAuNzEtNS4zNkM3LjI5IDYuMiA5LjU1IDYgMTIgNm0wLTJjLTIuNzMgMC01LjIyLjI0LTcuOTUuNzJsLS45My4xNi0uMjUuOUMyLjI5IDcuODUgMiA5LjkzIDIgMTJzLjI5IDQuMTUuODcgNi4yMmwuMjUuODkuOTMuMTZjMi43My40OSA1LjIyLjczIDcuOTUuNzNzNS4yMi0uMjQgNy45NS0uNzJsLjkzLS4xNi4yNS0uODljLjU4LTIuMDguODctNC4xNi44Ny02LjIzcy0uMjktNC4xNS0uODctNi4yMmwtLjI1LS44OS0uOTMtLjE2QzE3LjIyIDQuMjQgMTQuNzMgNCAxMiA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQYW5vcmFtYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzIDE4VjZjMC0xLjEtLjktMi0yLTJIM2MtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMnpNOC41IDEyLjVsMi41IDMuMDFMMTQuNSAxMWw0LjUgNkg1bDMuNS00LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBob3RvQWxidW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTcgMmg1djdsLTIuNS0xLjVMMTEgMTFWNHpNNyAxOGwyLjM4LTMuMTdMMTEgMTdsMi42Mi0zLjVMMTcgMThIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGhvdG9DYW1lcmFCYWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNWMxLjEgMCAyIC45IDIgMnYxMmMwIDEuMS0uOSAyLTIgMkg0Yy0xLjEgMC0yLS45LTItMlY3YzAtMS4xLjktMiAyLTJoMy4xN0w5IDNoNmwxLjgzIDJIMjB6bTAgMTRWN0g0djEyaDE2em0tNi03LTMgMy43Mkw5IDEzbC0zIDRoMTJsLTQtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGhvdG9DYW1lcmFGcm9udCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4IDEwLjQ4IDQtMy45OHYxMWwtNC0zLjk4VjE4YzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0yVjZjMC0xLjEuOS0yIDItMmgxMmMxLjEgMCAyIC45IDIgMnY0LjQ4em0tMi0uNzlWNkg0djEyaDEyVjkuNjl6TTEwIDEyYy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnptMCAxYzEuMzQgMCA0IC42NyA0IDJ2MUg2di0xYzAtMS4zMyAyLjY2LTIgNC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaG90b0NhbWVyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMy4yXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMiA3LjE3IDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yaC0zLjE3TDE1IDJIOXptMyAxNWMtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNSA1IDIuMjQgNSA1LTIuMjQgNS01IDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBob3RvRmlsdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS4wMiAxMHY5SDVWNWg5VjNINS4wMmMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtOWgtMnpNMTcgMTBsLjk0LTIuMDZMMjAgN2wtMi4wNi0uOTRMMTcgNGwtLjk0IDIuMDZMMTQgN2wyLjA2Ljk0em0tMy43NS43NUwxMiA4bC0xLjI1IDIuNzVMOCAxMmwyLjc1IDEuMjVMMTIgMTZsMS4yNS0yLjc1TDE2IDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaG90b0xpYnJhcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxNlY0YzAtMS4xLS45LTItMi0ySDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJ6bS0xMS00IDIuMDMgMi43MUwxNiAxMWw0IDVIOGwzLTR6TTIgNnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNkgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaG90b1NpemVTZWxlY3RBY3R1YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTI0IDI0SDBWMGgyNHYyNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzQzIgMyAxIDQgMSA1djE0YzAgMS4xLjkgMiAyIDJoMThjMSAwIDItMSAyLTJWNWMwLTEtMS0yLTItMnpNNSAxN2wzLjUtNC41IDIuNSAzLjAxTDE0LjUgMTFsNC41IDZINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGhvdG9TaXplU2VsZWN0TGFyZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTI0IDI0SDBWMGgyNHYyNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTVoMnYyaC0ydi0yem0wLTRoMnYyaC0ydi0yem0yIDhoLTJ2MmMxIDAgMi0xIDItMnpNMTMgM2gydjJoLTJWM3ptOCA0aDJ2MmgtMlY3em0wLTR2MmgyYzAtMS0xLTItMi0yek0xIDdoMnYySDFWN3ptMTYtNGgydjJoLTJWM3ptMCAxNmgydjJoLTJ2LTJ6TTMgM0MyIDMgMSA0IDEgNWgyVjN6bTYgMGgydjJIOVYzek01IDNoMnYySDVWM3ptLTQgOHY4YzAgMS4xLjkgMiAyIDJoMTJWMTFIMXptMiA4IDIuNS0zLjIxIDEuNzkgMi4xNSAyLjUtMy4yMkwxMyAxOUgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaG90b1NpemVTZWxlY3RTbWFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMjQgMjRIMFYwaDI0djI0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyAxNWgtMnYyaDJ2LTJ6bTAtNGgtMnYyaDJ2LTJ6bTAgOGgtMnYyYzEgMCAyLTEgMi0yek0xNSAzaC0ydjJoMlYzem04IDRoLTJ2MmgyVjd6bS0yLTR2MmgyYzAtMS0xLTItMi0yek0zIDIxaDh2LTZIMXY0YzAgMS4xLjkgMiAyIDJ6TTMgN0gxdjJoMlY3em0xMiAxMmgtMnYyaDJ2LTJ6bTQtMTZoLTJ2MmgyVjN6bTAgMTZoLTJ2Mmgydi0yek0zIDNDMiAzIDEgNCAxIDVoMlYzem0wIDhIMXYyaDJ2LTJ6bTgtOEg5djJoMlYzek03IDNINXYyaDJWM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGhvdG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxOVY1YzAtMS4xLS45LTItMi0ySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ6TTguNSAxMy41bDIuNSAzLjAxTDE0LjUgMTJsNC41IDZINWwzLjUtNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaWN0dXJlQXNQZGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTguNSA3LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDl2Mkg3LjVWN0gxMGMuODMgMCAxLjUuNjcgMS41IDEuNXYxem01IDJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0yLjVWN0gxNWMuODMgMCAxLjUuNjcgMS41IDEuNXYzem00LTNIMTl2MWgxLjVWMTFIMTl2MmgtMS41VjdoM3YxLjV6TTkgOS41aDF2LTFIOXYxek00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnptMTAgNS41aDF2LTNoLTF2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUG9ydHJhaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMi4yNWMxLjI0IDAgMi4yNS0xLjAxIDIuMjUtMi4yNVMxMy4yNCA3Ljc1IDEyIDcuNzUgOS43NSA4Ljc2IDkuNzUgMTBzMS4wMSAyLjI1IDIuMjUgMi4yNXptNC41IDRjMC0xLjUtMy0yLjI1LTQuNS0yLjI1cy00LjUuNzUtNC41IDIuMjVWMTdoOXYtLjc1ek0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJhd09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3LjE1IDE0LjMyLjU5LTIuMzYuNzYgMy4wNGgxLjQ4bDEuNS02aC0xLjVsLS43NCAzLS43NC0zaC0xLjUybC0uNzQgMy0uNzQtM0gxNGwuNzIgMi45ek0xLjM5IDQuMjIgNi4xNyA5SDN2NmgxLjV2LTJoMS4xbC45IDJIOGwtLjktMi4xYy41LS4zLjktLjguOS0xLjR2LS42N2wxLjQzIDEuNDNMOC43NSAxNWgxLjVsLjM4LTEuNWguMDRsOS4xMSA5LjExIDEuNDEtMS40MUwyLjgxIDIuODEgMS4zOSA0LjIyek02LjUgMTEuNWgtMnYtMWgydjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJhd09uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41IDlIM3Y2aDEuNXYtMmgxLjFsLjkgMkg4bC0uOS0yLjFjLjUtLjMuOS0uOC45LTEuNHYtMUM4IDkuNyA3LjMgOSA2LjUgOXptMCAyLjVoLTJ2LTFoMnYxek0xMC4yNSA5bC0xLjUgNmgxLjVsLjM4LTEuNWgxLjc1bC4zNyAxLjVoMS41bC0xLjUtNmgtMi41em0uNzUgMyAuMjUtMWguNWwuMjUgMWgtMXpNMTkuOTggOWwtLjc0IDMtLjc0LTNoLTEuNTJsLS43NCAzLS43NC0zSDE0bDEuNSA2aDEuNDhsLjc2LTMuMDQuNzYgMy4wNGgxLjQ4bDEuNS02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZWNlaXB0TG9uZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuNSAzLjUgMTggMmwtMS41IDEuNUwxNSAybC0xLjUgMS41TDEyIDJsLTEuNSAxLjVMOSAyIDcuNSAzLjUgNiAydjE0SDN2M2MwIDEuNjYgMS4zNCAzIDMgM2gxMmMxLjY2IDAgMy0xLjM0IDMtM1YybC0xLjUgMS41ek0xOSAxOWMwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMXYtM0g4VjVoMTF2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgN2g2djJIOXpNMTYgN2gydjJoLTJ6TTkgMTBoNnYySDl6TTE2IDEwaDJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVtb3ZlUmVkRXllIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNC41QzcgNC41IDIuNzMgNy42MSAxIDEyYzEuNzMgNC4zOSA2IDcuNSAxMSA3LjVzOS4yNy0zLjExIDExLTcuNWMtMS43My00LjM5LTYtNy41LTExLTcuNXpNMTIgMTdjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1em0wLThjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSb3RhdGU5MERlZ3JlZXNDY3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjM0IDYuNDEuODYgMTIuOWw2LjQ5IDYuNDggNi40OS02LjQ4LTYuNS02LjQ5ek0zLjY5IDEyLjlsMy42Ni0zLjY2TDExIDEyLjlsLTMuNjYgMy42Ni0zLjY1LTMuNjZ6bTE1LjY3LTYuMjZBOC45NSA4Ljk1IDAgMCAwIDEzIDRWLjc2TDguNzYgNSAxMyA5LjI0VjZjMS43OSAwIDMuNTguNjggNC45NSAyLjA1YTcuMDA3IDcuMDA3IDAgMCAxIDAgOS45IDYuOTczIDYuOTczIDAgMCAxLTcuNzkgMS40NGwtMS40OSAxLjQ5QzEwLjAyIDIxLjYyIDExLjUxIDIyIDEzIDIyYzIuMyAwIDQuNjEtLjg4IDYuMzYtMi42NGE4Ljk4IDguOTggMCAwIDAgMC0xMi43MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUm90YXRlOTBEZWdyZWVzQ3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjY0IDE5LjM3YzMuMDMgMy4wMyA3LjY3IDMuNDQgMTEuMTUgMS4yNWwtMS40Ni0xLjQ2Yy0yLjY2IDEuNDMtNi4wNCAxLjAzLTguMjgtMS4yMWE3LjAwNyA3LjAwNyAwIDAgMSAwLTkuOUM3LjQyIDYuNjkgOS4yMSA2LjAzIDExIDYuMDNWOWw0LTQtNC00djMuMDFjLTIuMyAwLTQuNjEuODctNi4zNiAyLjYzLTMuNTIgMy41MS0zLjUyIDkuMjEgMCAxMi43M3pNMTEgMTNsNiA2IDYtNi02LTYtNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSb3RhdGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4xMSA4LjUzIDUuNyA3LjExQzQuOCA4LjI3IDQuMjQgOS42MSA0LjA3IDExaDIuMDJjLjE0LS44Ny40OS0xLjcyIDEuMDItMi40N3pNNi4wOSAxM0g0LjA3Yy4xNyAxLjM5LjcyIDIuNzMgMS42MiAzLjg5bDEuNDEtMS40MmMtLjUyLS43NS0uODctMS41OS0xLjAxLTIuNDd6bTEuMDEgNS4zMmMxLjE2LjkgMi41MSAxLjQ0IDMuOSAxLjYxVjE3LjljLS44Ny0uMTUtMS43MS0uNDktMi40Ni0xLjAzTDcuMSAxOC4zMnpNMTMgNC4wN1YxTDguNDUgNS41NSAxMyAxMFY2LjA5YzIuODQuNDggNSAyLjk0IDUgNS45MXMtMi4xNiA1LjQzLTUgNS45MXYyLjAyYzMuOTUtLjQ5IDctMy44NSA3LTcuOTNzLTMuMDUtNy40NC03LTcuOTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJvdGF0ZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNTUgNS41NSAxMSAxdjMuMDdDNy4wNiA0LjU2IDQgNy45MiA0IDEyczMuMDUgNy40NCA3IDcuOTN2LTIuMDJjLTIuODQtLjQ4LTUtMi45NC01LTUuOTFzMi4xNi01LjQzIDUtNS45MVYxMGw0LjU1LTQuNDV6TTE5LjkzIDExYTcuOTA2IDcuOTA2IDAgMCAwLTEuNjItMy44OWwtMS40MiAxLjQyYy41NC43NS44OCAxLjYgMS4wMiAyLjQ3aDIuMDJ6TTEzIDE3Ljl2Mi4wMmMxLjM5LS4xNyAyLjc0LS43MSAzLjktMS42MWwtMS40NC0xLjQ0Yy0uNzUuNTQtMS41OS44OS0yLjQ2IDEuMDN6bTMuODktMi40MiAxLjQyIDEuNDFjLjktMS4xNiAxLjQ1LTIuNSAxLjYyLTMuODloLTIuMDJjLS4xNC44Ny0uNDggMS43Mi0xLjAyIDIuNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNodXR0ZXJTcGVlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMUg5djJoNlYxem00LjAzIDYuMzkgMS40Mi0xLjQyYy0uNDMtLjUxLS45LS45OS0xLjQxLTEuNDFsLTEuNDIgMS40MkE4Ljk2MiA4Ljk2MiAwIDAgMCAxMiA0Yy00Ljk3IDAtOSA0LjAzLTkgOXM0LjAyIDkgOSA5YTguOTk0IDguOTk0IDAgMCAwIDcuMDMtMTQuNjF6TTEyIDIwYy0zLjg3IDAtNy0zLjEzLTctN3MzLjEzLTcgNy03IDcgMy4xMyA3IDctMy4xMyA3LTcgN3ptLS4zMi01SDYuMzVhNS45OTIgNS45OTIgMCAwIDAgMy40MSAzLjU2bC0uMTEtLjA2IDIuMDMtMy41em01Ljk3LTRhNi4wMTIgNi4wMTIgMCAwIDAtMy4zNC0zLjU0TDEyLjI2IDExaDUuMzl6bS03LjA0IDcuODNjLjQ1LjExLjkxLjE3IDEuMzkuMTcgMS4zNCAwIDIuNTctLjQ1IDMuNTctMS4xOWwtMi4xMS0zLjktMi44NSA0Ljkyek03LjU1IDguOTlBNS45NjUgNS45NjUgMCAwIDAgNiAxM2MwIC4zNC4wNC42Ny4wOSAxaDQuNzJMNy41NSA4Ljk5em04Ljc5IDguMTRBNS45NCA1Ljk0IDAgMCAwIDE4IDEzYzAtLjM0LS4wNC0uNjctLjA5LTFoLTQuMzRsMi43NyA1LjEzem0tMy4wMS05Ljk4QzEyLjkgNy4wNiAxMi40NiA3IDEyIDdjLTEuNCAwLTIuNjkuNDktMy43MSAxLjI5bDIuMzIgMy41NiAyLjcyLTQuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2xpZGVzaG93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgOHY4bDUtNC01LTR6bTktNUg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdHJhaWdodGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNkgzYy0xLjEgMC0yIC45LTIgMnY4YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptMCAxMEgzVjhoMnY0aDJWOGgydjRoMlY4aDJ2NGgyVjhoMnY0aDJWOGgydjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN0eWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMi41MyAxOS42NSAxLjM0LjU2di05LjAzbC0yLjQzIDUuODZjLS40MSAxLjAyLjA4IDIuMTkgMS4wOSAyLjYxem0xOS41LTMuN0wxNy4wNyAzLjk4YTIuMDEzIDIuMDEzIDAgMCAwLTEuODEtMS4yM2MtLjI2IDAtLjUzLjA0LS43OS4xNUw3LjEgNS45NWExLjk5OSAxLjk5OSAwIDAgMC0xLjA4IDIuNmw0Ljk2IDExLjk3YTEuOTk4IDEuOTk4IDAgMCAwIDIuNiAxLjA4bDcuMzYtMy4wNWExLjk5NCAxLjk5NCAwIDAgMCAxLjA5LTIuNnpNNy44OCA4Ljc1Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bS0yIDExYzAgMS4xLjkgMiAyIDJoMS40NWwtMy40NS04LjM0djYuMzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN3aXRjaENhbWVyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRoLTMuMTdMMTUgMkg5TDcuMTcgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bS01IDExLjVWMTNIOXYyLjVMNS41IDEyIDkgOC41VjExaDZWOC41bDMuNSAzLjUtMy41IDMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3dpdGNoVmlkZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA5LjVWNmMwLS41NS0uNDUtMS0xLTFIM2MtLjU1IDAtMSAuNDUtMSAxdjEyYzAgLjU1LjQ1IDEgMSAxaDE0Yy41NSAwIDEtLjQ1IDEtMXYtMy41bDQgNHYtMTNsLTQgNHptLTUgNlYxM0g3djIuNUwzLjUgMTIgNyA4LjVWMTFoNlY4LjVsMy41IDMuNS0zLjUgMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUYWdGYWNlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHptMy41LTljLjgzIDAgMS41LS42NyAxLjUtMS41UzE2LjMzIDggMTUuNSA4IDE0IDguNjcgMTQgOS41cy42NyAxLjUgMS41IDEuNXptLTcgMGMuODMgMCAxLjUtLjY3IDEuNS0xLjVTOS4zMyA4IDguNSA4IDcgOC42NyA3IDkuNSA3LjY3IDExIDguNSAxMXptMy41IDYuNWMyLjMzIDAgNC4zMS0xLjQ2IDUuMTEtMy41SDYuODljLjggMi4wNCAyLjc4IDMuNSA1LjExIDMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGV4dHVyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjUxIDMuMDggMy4wOCAxOS41MWMuMDkuMzQuMjcuNjUuNTEuOS4yNS4yNC41Ni40Mi45LjUxTDIwLjkzIDQuNDljLS4xOS0uNjktLjczLTEuMjMtMS40Mi0xLjQxek0xMS44OCAzIDMgMTEuODh2Mi44M0wxNC43MSAzaC0yLjgzek01IDNjLTEuMSAwLTIgLjktMiAydjJsNC00SDV6bTE0IDE4Yy41NSAwIDEuMDUtLjIyIDEuNDEtLjU5LjM3LS4zNi41OS0uODYuNTktMS40MXYtMmwtNCA0aDJ6bS05LjcxIDBoMi44M0wyMSAxMi4xMlY5LjI5TDkuMjkgMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRoZXJtb3N0YXRBdXRvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTJWNmMwLTEuNjYtMS4zNC0zLTMtM1M1IDQuMzQgNSA2djZjLTEuMjEuOTEtMiAyLjM3LTIgNCAwIDEuMTIuMzggMi4xNCAxIDIuOTdWMTloLjAyYy45MSAxLjIxIDIuMzUgMiAzLjk4IDJzMy4wNi0uNzkgMy45OC0ySDEydi0uMDNjLjYyLS44MyAxLTEuODUgMS0yLjk3IDAtMS42My0uNzktMy4wOS0yLTR6bS02IDRjMC0uOTQuNDUtMS44NCAxLjItMi40TDcgMTNWNmMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2N2wuOC42Yy43NS41NyAxLjIgMS40NiAxLjIgMi40SDV6TTE4LjYyIDRoLTEuNjFsLTMuMzggOWgxLjU2bC44MS0yLjNoMy42M2wuOCAyLjNIMjJsLTMuMzgtOXptLTIuMTUgNS4zOSAxLjMxLTMuNzJoLjA4bDEuMzEgMy43MmgtMi43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUaW1lbGFwc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi4yNCA3Ljc2QTUuOTc0IDUuOTc0IDAgMCAwIDEyIDZ2NmwtNC4yNCA0LjI0YzIuMzQgMi4zNCA2LjE0IDIuMzQgOC40OSAwYTUuOTkgNS45OSAwIDAgMC0uMDEtOC40OHpNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRpbWVyMTAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA3LjcyVjkuNGwzLTFWMThoMlY2aC0uMjVMMCA3Ljcyem0yMy43OCA2LjY1Yy0uMTQtLjI4LS4zNS0uNTMtLjYzLS43NC0uMjgtLjIxLS42MS0uMzktMS4wMS0uNTNzLS44NS0uMjctMS4zNS0uMzhhNi42NCA2LjY0IDAgMCAxLS44Ny0uMjMgMi42MSAyLjYxIDAgMCAxLS41NS0uMjUuNzE3LjcxNyAwIDAgMS0uMjgtLjMuOTc4Ljk3OCAwIDAgMSAuMDEtLjhjLjA2LS4xMy4xNS0uMjUuMjctLjM0LjEyLS4xLjI3LS4xOC40NS0uMjRzLjQtLjA5LjY0LS4wOWMuMjUgMCAuNDcuMDQuNjYuMTEuMTkuMDcuMzUuMTcuNDguMjkuMTMuMTIuMjIuMjYuMjkuNDIuMDYuMTYuMS4zMi4xLjQ5aDEuOTVhMi41MTcgMi41MTcgMCAwIDAtLjkzLTEuOTdjLS4zLS4yNS0uNjYtLjQ0LTEuMDktLjU5QzIxLjQ5IDkuMDcgMjEgOSAyMC40NiA5Yy0uNTEgMC0uOTguMDctMS4zOS4yMS0uNDEuMTQtLjc3LjMzLTEuMDYuNTctLjI5LjI0LS41MS41Mi0uNjcuODQtLjE2LjMyLS4yMy42NS0uMjMgMS4wMXMuMDguNjkuMjMuOTZjLjE1LjI4LjM2LjUyLjY0LjczLjI3LjIxLjYuMzguOTguNTMuMzguMTQuODEuMjYgMS4yNy4zNi4zOS4wOC43MS4xNy45NS4yNnMuNDMuMTkuNTcuMjljLjEzLjEuMjIuMjIuMjcuMzQuMDUuMTIuMDcuMjUuMDcuMzkgMCAuMzItLjEzLjU3LS40Ljc3LS4yNy4yLS42Ni4yOS0xLjE3LjI5LS4yMiAwLS40My0uMDItLjY0LS4wOC0uMjEtLjA1LS40LS4xMy0uNTYtLjI0YTEuMzMzIDEuMzMzIDAgMCAxLS41OS0xLjExaC0xLjg5YzAgLjM2LjA4LjcxLjI0IDEuMDUuMTYuMzQuMzkuNjUuNy45My4zMS4yNy42OS40OSAxLjE1LjY2LjQ2LjE3Ljk4LjI1IDEuNTguMjUuNTMgMCAxLjAxLS4wNiAxLjQ0LS4xOS40My0uMTMuOC0uMzEgMS4xMS0uNTQuMzEtLjIzLjU0LS41MS43MS0uODMuMTctLjMyLjI1LS42Ny4yNS0xLjA2LS4wMi0uNC0uMDktLjc0LS4yNC0xLjAyem0tOS45Ni03LjMyYy0uMzQtLjQtLjc1LS43LTEuMjMtLjg4LS40Ny0uMTgtMS4wMS0uMjctMS41OS0uMjctLjU4IDAtMS4xMS4wOS0xLjU5LjI3LS40OC4xOC0uODkuNDctMS4yMy44OC0uMzQuNDEtLjYuOTMtLjc5IDEuNTktLjE4LjY1LS4yOCAxLjQ1LS4yOCAyLjM5djEuOTJjMCAuOTQuMDkgMS43NC4yOCAyLjM5LjE5LjY2LjQ1IDEuMTkuOCAxLjYuMzQuNDEuNzUuNzEgMS4yMy44OS40OC4xOCAxLjAxLjI4IDEuNTkuMjguNTkgMCAxLjEyLS4wOSAxLjU5LS4yOC40OC0uMTguODgtLjQ4IDEuMjItLjg5LjM0LS40MS42LS45NC43OC0xLjYuMTgtLjY1LjI4LTEuNDUuMjgtMi4zOXYtMS45MmMwLS45NC0uMDktMS43NC0uMjgtMi4zOS0uMTgtLjY2LS40NC0xLjE5LS43OC0xLjU5em0tLjkyIDYuMTdjMCAuNi0uMDQgMS4xMS0uMTIgMS41My0uMDguNDItLjIuNzYtLjM2IDEuMDItLjE2LjI2LS4zNi40NS0uNTkuNTctLjIzLjEyLS41MS4xOC0uODIuMTgtLjMgMC0uNTgtLjA2LS44Mi0uMThzLS40NC0uMzEtLjYtLjU3Yy0uMTYtLjI2LS4yOS0uNi0uMzgtMS4wMi0uMDktLjQyLS4xMy0uOTMtLjEzLTEuNTN2LTIuNWMwLS42LjA0LTEuMTEuMTMtMS41Mi4wOS0uNDEuMjEtLjc0LjM4LTEgLjE2LS4yNS4zNi0uNDMuNi0uNTUuMjQtLjExLjUxLS4xNy44MS0uMTcuMzEgMCAuNTguMDYuODEuMTcuMjQuMTEuNDQuMjkuNi41NS4xNi4yNS4yOS41OC4zNy45OS4wOC40MS4xMy45Mi4xMyAxLjUydjIuNTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRpbWVyMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS42MSAxMi45N2MtLjE2LS4yNC0uMzYtLjQ2LS42Mi0uNjVhMy4zOCAzLjM4IDAgMCAwLS45My0uNDhjLjMtLjE0LjU3LS4zLjgtLjUuMjMtLjIuNDItLjQxLjU3LS42NC4xNS0uMjMuMjctLjQ2LjM0LS43MS4wOC0uMjQuMTEtLjQ5LjExLS43MyAwLS41NS0uMDktMS4wNC0uMjgtMS40Ni0uMTgtLjQyLS40NC0uNzctLjc4LTEuMDYtLjMzLS4yOC0uNzMtLjUtMS4yLS42NC0uNDUtLjEzLS45Ny0uMi0xLjUzLS4yLS41NSAwLTEuMDYuMDgtMS41Mi4yNC0uNDcuMTctLjg3LjQtMS4yLjY5LS4zMy4yOS0uNi42My0uNzggMS4wMy0uMi4zOS0uMjkuODMtLjI5IDEuMjloMS45OGMwLS4yNi4wNS0uNDkuMTQtLjY5LjA5LS4yLjIyLS4zOC4zOC0uNTIuMTctLjE0LjM2LS4yNS41OC0uMzMuMjItLjA4LjQ2LS4xMi43My0uMTIuNjEgMCAxLjA2LjE2IDEuMzYuNDcuMy4zMS40NC43NS40NCAxLjMyIDAgLjI3LS4wNC41Mi0uMTIuNzQtLjA4LjIyLS4yMS40MS0uMzguNTctLjE3LjE2LS4zOC4yOC0uNjMuMzctLjI1LjA5LS41NS4xMy0uODkuMTNINi43MnYxLjU3SDcuOWMuMzQgMCAuNjQuMDQuOTEuMTEuMjcuMDguNS4xOS42OS4zNS4xOS4xNi4zNC4zNi40NC42MS4xLjI0LjE2LjU0LjE2Ljg3IDAgLjYyLS4xOCAxLjA5LS41MyAxLjQyLS4zNS4zMy0uODQuNDktMS40NS40OS0uMjkgMC0uNTYtLjA0LS44LS4xMy0uMjQtLjA4LS40NC0uMi0uNjEtLjM2LS4xNy0uMTYtLjMtLjM0LS4zOS0uNTYtLjA5LS4yMi0uMTQtLjQ2LS4xNC0uNzJINC4xOWMwIC41NS4xMSAxLjAzLjMyIDEuNDUuMjEuNDIuNS43Ny44NiAxLjA1cy43Ny40OSAxLjI0LjYzLjk2LjIxIDEuNDguMjFjLjU3IDAgMS4wOS0uMDggMS41OC0uMjMuNDktLjE1LjkxLS4zOCAxLjI2LS42OC4zNi0uMy42NC0uNjYuODQtMS4xLjItLjQzLjMtLjkzLjMtMS40OCAwLS4yOS0uMDQtLjU4LS4xMS0uODYtLjA4LS4yNS0uMTktLjUxLS4zNS0uNzZ6bTkuMjYgMS40Yy0uMTQtLjI4LS4zNS0uNTMtLjYzLS43NC0uMjgtLjIxLS42MS0uMzktMS4wMS0uNTNzLS44NS0uMjctMS4zNS0uMzhhNi42NCA2LjY0IDAgMCAxLS44Ny0uMjMgMi42MSAyLjYxIDAgMCAxLS41NS0uMjUuNzE3LjcxNyAwIDAgMS0uMjgtLjNjLS4wNS0uMTEtLjA4LS4yNC0uMDgtLjM5YS45NDYuOTQ2IDAgMCAxIC4zNi0uNzVjLjEyLS4xLjI3LS4xOC40NS0uMjRzLjQtLjA5LjY0LS4wOWMuMjUgMCAuNDcuMDQuNjYuMTEuMTkuMDcuMzUuMTcuNDguMjkuMTMuMTIuMjIuMjYuMjkuNDIuMDYuMTYuMS4zMi4xLjQ5aDEuOTVhMi41MTcgMi41MTcgMCAwIDAtLjkzLTEuOTdjLS4zLS4yNS0uNjYtLjQ0LTEuMDktLjU5LS40My0uMTUtLjkyLS4yMi0xLjQ2LS4yMi0uNTEgMC0uOTguMDctMS4zOS4yMS0uNDEuMTQtLjc3LjMzLTEuMDYuNTctLjI5LjI0LS41MS41Mi0uNjcuODQtLjE2LjMyLS4yMy42NS0uMjMgMS4wMXMuMDguNjguMjMuOTZjLjE1LjI4LjM3LjUyLjY0LjczLjI3LjIxLjYuMzguOTguNTMuMzguMTQuODEuMjYgMS4yNy4zNi4zOS4wOC43MS4xNy45NS4yNnMuNDMuMTkuNTcuMjljLjEzLjEuMjIuMjIuMjcuMzQuMDUuMTIuMDcuMjUuMDcuMzkgMCAuMzItLjEzLjU3LS40Ljc3LS4yNy4yLS42Ni4yOS0xLjE3LjI5LS4yMiAwLS40My0uMDItLjY0LS4wOC0uMjEtLjA1LS40LS4xMy0uNTYtLjI0YTEuMzMzIDEuMzMzIDAgMCAxLS41OS0xLjExaC0xLjg5YzAgLjM2LjA4LjcxLjI0IDEuMDUuMTYuMzQuMzkuNjUuNy45My4zMS4yNy42OS40OSAxLjE1LjY2LjQ2LjE3Ljk4LjI1IDEuNTguMjUuNTMgMCAxLjAxLS4wNiAxLjQ0LS4xOS40My0uMTMuOC0uMzEgMS4xMS0uNTQuMzEtLjIzLjU0LS41MS43MS0uODMuMTctLjMyLjI1LS42Ny4yNS0xLjA2LS4wMi0uNC0uMDktLjc0LS4yNC0xLjAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUaW1lck9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMWg2djJIOXpNMTMgOHYyLjE3bDYuOTggNi45OGE4Ljk2MyA4Ljk2MyAwIDAgMC0uOTUtOS43NmwxLjQyLTEuNDJjLS40My0uNTEtLjktLjk5LTEuNDEtMS40MWwtMS40MiAxLjQyYTguOTYyIDguOTYyIDAgMCAwLTkuNzctLjk2TDEwLjgzIDhIMTN6TTIuODEgMi44MSAxLjM5IDQuMjJsMy40IDMuNGE4Ljk5NCA4Ljk5NCAwIDAgMCAxMi41OSAxMi41OWwyLjQgMi40IDEuNDEtMS40MUwyLjgxIDIuODF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRpbWVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxaDZ2Mkg5ek0xOS4wMyA3LjM5bDEuNDItMS40MmMtLjQzLS41MS0uOS0uOTktMS40MS0xLjQxbC0xLjQyIDEuNDJBOC45NjIgOC45NjIgMCAwIDAgMTIgNGE5IDkgMCAwIDAtOSA5YzAgNC45NyA0LjAyIDkgOSA5YTguOTk0IDguOTk0IDAgMCAwIDcuMDMtMTQuNjF6TTEzIDE0aC0yVjhoMnY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUb25hbGl0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bS0xIDE3LjkzYy0zLjk0LS40OS03LTMuODUtNy03LjkzczMuMDUtNy40NCA3LTcuOTN2MTUuODZ6bTItMTUuODZjMS4wMy4xMyAyIC40NSAyLjg3LjkzSDEzdi0uOTN6TTEzIDdoNS4yNGMuMjUuMzEuNDguNjUuNjggMUgxM1Y3em0wIDNoNi43NGMuMDguMzMuMTUuNjYuMTkgMUgxM3YtMXptMCA5LjkzVjE5aDIuODdjLS44Ny40OC0xLjg0LjgtMi44Ny45M3pNMTguMjQgMTdIMTN2LTFoNS45MmMtLjIuMzUtLjQzLjY5LS42OCAxem0xLjUtM0gxM3YtMWg2LjkzYy0uMDQuMzQtLjExLjY3LS4xOSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUcmFuc2Zvcm0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxOHYtMkg4VjRoMkw3IDEgNCA0aDJ2MkgydjJoNHY4YzAgMS4xLjkgMiAyIDJoOHYyaC0ybDMgMyAzLTNoLTJ2LTJoNHpNMTAgOGg2djZoMlY4YzAtMS4xLS45LTItMi0yaC02djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFR1bmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE3djJoNnYtMkgzek0zIDV2MmgxMFY1SDN6bTEwIDE2di0yaDh2LTJoLTh2LTJoLTJ2Nmgyek03IDl2MkgzdjJoNHYyaDJWOUg3em0xNCA0di0ySDExdjJoMTB6bS02LTRoMlY3aDRWNWgtNFYzaC0ydjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZGVvQ2FtZXJhQmFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDEwLjQ4VjZjMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMnYtNC40OGw0IDMuOTh2LTExbC00IDMuOTh6TTUgMTZsMi4zOC0zLjE3TDkgMTVsMi42Mi0zLjVMMTUgMTZINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlkZW9DYW1lcmFGcm9udCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDEwLjQ4VjZjMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMnYtNC40OGw0IDMuOTh2LTExbC00IDMuOTh6TTEwIDhjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0yem00IDhINnYtLjU3YzAtLjgxLjQ4LTEuNTMgMS4yMi0xLjg1YTYuOTUgNi45NSAwIDAgMSA1LjU2IDBBMi4wMSAyLjAxIDAgMCAxIDE0IDE1LjQzVjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWaWRlb1N0YWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yek00IDE4VjZoMi45NWwtMi4zMyA4LjczTDE2LjgyIDE4SDR6bTE2IDBoLTIuOTVsMi4zNC04LjczTDcuMTggNkgyMHYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlld0NvbWZ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA0djdoMjBWNEgyem04IDE2aDEydi03SDEwdjd6bS04IDBoNnYtN0gydjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZXdDb21wYWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxOGgyLjV2LTIuNUg0VjE4em0wLTQuNzVoMi41di0yLjVINHYyLjV6TTQgOC41aDIuNVY2SDR2Mi41ek0xNy41IDZ2Mi41SDIwVjZoLTIuNXpNMTMgOC41aDIuNVY2SDEzdjIuNXptNC41IDkuNUgyMHYtMi41aC0yLjVWMTh6bTAtNC43NUgyMHYtMi41aC0yLjV2Mi41ek04LjUgMThIMTF2LTIuNUg4LjVWMTh6bTQuNSAwaDIuNXYtMi41SDEzVjE4ek04LjUgOC41SDExVjZIOC41djIuNXptNC41IDQuNzVoMi41di0yLjVIMTN2Mi41em0tNC41IDBIMTF2LTIuNUg4LjV2Mi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWaWduZXR0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS05IDE1Yy00LjQyIDAtOC0yLjY5LTgtNnMzLjU4LTYgOC02IDggMi42OSA4IDYtMy41OCA2LTggNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVnJwYW5vIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNjkgNC4wNUMxOC42NiA0LjczIDE1Ljg2IDUuNSAxMiA1LjVjLTMuODkgMC02Ljk1LS44NC04LjY5LTEuNDNBLjk5My45OTMgMCAwIDAgMiA1LjAyVjE5YzAgLjY4LjY2IDEuMTcgMS4zMS45NUM1LjM2IDE5LjI2IDguMSAxOC41IDEyIDE4LjVjMy44NyAwIDYuNjYuNzYgOC42OSAxLjQ1QS45OTkuOTk5IDAgMCAwIDIyIDE5VjVjMC0uNjgtLjY2LTEuMTYtMS4zMS0uOTV6TTEyIDE1Yy0yLjM0IDAtNC41Mi4xNS02LjUyLjQxbDMuNjktNC40MiAyIDIuNEwxNCAxMGw0LjUxIDUuNGMtMS45OS0uMjUtNC4yMS0uNC02LjUxLS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXYkF1dG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02Ljg1IDEyLjY1aDIuM0w4IDlsLTEuMTUgMy42NXpNMjIgN2wtMS4yIDYuMjlMMTkuMyA3aC0xLjZsLTEuNDkgNi4yOUwxNSA3aC0uNzZDMTIuNzcgNS4xNyAxMC41MyA0IDggNGMtNC40MiAwLTggMy41OC04IDhzMy41OCA4IDggOGMzLjEzIDAgNS44NC0xLjgxIDcuMTUtNC40M2wuMS40M0gxN2wxLjUtNi4xTDIwIDE2aDEuNzVsMi4wNS05SDIyem0tMTEuNyA5LS43LTJINi40bC0uNyAySDMuOEw3IDdoMmwzLjIgOWgtMS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXYkNsb3VkeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjM2IDEwLjA0QzE4LjY3IDYuNTkgMTUuNjQgNCAxMiA0IDkuMTEgNCA2LjYgNS42NCA1LjM1IDguMDRBNS45OTQgNS45OTQgMCAwIDAgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjQtNC45NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2JJbmNhbmRlc2NlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0zLjU1IDE4LjU0IDEuNDEgMS40MSAxLjc5LTEuOC0xLjQxLTEuNDEtMS43OSAxLjh6TTExIDIyLjQ1aDJWMTkuNWgtMnYyLjk1ek00IDEwLjVIMXYyaDN2LTJ6bTExLTQuMTlWMS41SDl2NC44MUM3LjIxIDcuMzUgNiA5LjI4IDYgMTEuNWMwIDMuMzEgMi42OSA2IDYgNnM2LTIuNjkgNi02YzAtMi4yMi0xLjIxLTQuMTUtMy01LjE5em01IDQuMTl2Mmgzdi0yaC0zem0tMi43NiA3LjY2IDEuNzkgMS44IDEuNDEtMS40MS0xLjgtMS43OS0xLjQgMS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXYklyaWRlc2NlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTQuNWgxNHYtNkg1djZ6TTExIC41NVYzLjVoMlYuNTVoLTJ6bTguMDQgMi41LTEuNzkgMS43OSAxLjQxIDEuNDEgMS44LTEuNzktMS40Mi0xLjQxek0xMyAyMi40NVYxOS41aC0ydjIuOTVoMnptNy40NS0zLjkxLTEuOC0xLjc5LTEuNDEgMS40MSAxLjc5IDEuOCAxLjQyLTEuNDJ6TTMuNTUgNC40NmwxLjc5IDEuNzkgMS40MS0xLjQxLTEuNzktMS43OS0xLjQxIDEuNDF6bTEuNDEgMTUuNDkgMS43OS0xLjgtMS40MS0xLjQxLTEuNzkgMS43OSAxLjQxIDEuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdiU2hhZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDEydjIuNWw1LjUgNS41SDIyem0wIDhoM2wtMy0zek04IDRsLTYgNmgydjEwaDhWMTBoMkw4IDR6bTEgMTBIN3YtNGgydjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdiU3VubnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm02Ljc2IDQuODQtMS44LTEuNzktMS40MSAxLjQxIDEuNzkgMS43OSAxLjQyLTEuNDF6TTQgMTAuNUgxdjJoM3YtMnptOS05Ljk1aC0yVjMuNWgyVi41NXptNy40NSAzLjkxLTEuNDEtMS40MS0xLjc5IDEuNzkgMS40MSAxLjQxIDEuNzktMS43OXptLTMuMjEgMTMuNyAxLjc5IDEuOCAxLjQxLTEuNDEtMS44LTEuNzktMS40IDEuNHpNMjAgMTAuNXYyaDN2LTJoLTN6bS04LTVjLTMuMzEgMC02IDIuNjktNiA2czIuNjkgNiA2IDYgNi0yLjY5IDYtNi0yLjY5LTYtNi02em0tMSAxNi45NWgyVjE5LjVoLTJ2Mi45NXptLTcuNDUtMy45MSAxLjQxIDEuNDEgMS43OS0xLjgtMS40MS0xLjQxLTEuNzkgMS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXYlR3aWdobGlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2Ljk1NCA4LjY2IDIuMTItMi4xMiAxLjQxNSAxLjQxNC0yLjEzIDIuMTJ6TTE3LjkgMTRjLS41LTIuODUtMi45NS01LTUuOS01cy01LjQ1IDIuMTUtNS45IDVoMTEuOHpNMiAxNmgyMHY0SDJ6bTktMTJoMnYzaC0yek0zLjU0IDcuOTI1IDQuOTU0IDYuNTFsMi4xMjIgMi4xMjItMS40MTUgMS40MTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdiVHdpbGlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNi45NTUgOC42NjIgMi4xMi0yLjEyMiAxLjQxNiAxLjQxNC0yLjEyMSAyLjEyMnpNMiAxOGgyMHYySDJ6TTExIDRoMnYzaC0yek0zLjU0MyA3LjkyNSA0Ljk1NyA2LjUxbDIuMTIxIDIuMTItMS40MTQgMS40MTV6TTUgMTZoMTRjMC0zLjg3LTMuMTMtNy03LTdzLTcgMy4xMy03IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDM2MCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDdDNi40OCA3IDIgOS4yNCAyIDEyYzAgMi4yNCAyLjk0IDQuMTMgNyA0Ljc3VjIwbDQtNC00LTR2Mi43M2MtMy4xNS0uNTYtNS0xLjktNS0yLjczIDAtMS4wNiAzLjA0LTMgOC0zczggMS45NCA4IDNjMCAuNzMtMS40NiAxLjg5LTQgMi41M3YyLjA1YzMuNTMtLjc3IDYtMi41MyA2LTQuNTggMC0yLjc2LTQuNDgtNS0xMC01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZGRCdXNpbmVzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDE3aDJ2LTNoMXYtMmwtMS01SDJsLTEgNXYyaDF2Nmg5di02aDR2M3ptLTYgMUg0di00aDV2NHpNMiA0aDE1djJIMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTh2LTNoLTJ2M2gtM3YyaDN2M2gydi0zaDN2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZExvY2F0aW9uQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMXYzaDN2MmgtM3YzaC0yVjZoLTNWNGgzVjFoMnptLTggMTJjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0yLTkuNzVWN2gzdjNoMi45MmMuMDUuMzkuMDguNzkuMDggMS4yIDAgMy4zMi0yLjY3IDcuMjUtOCAxMS44LTUuMzMtNC41NS04LTguNDgtOC0xMS44QzQgNi4yMiA3LjggMyAxMiAzYy42OCAwIDEuMzUuMDggMiAuMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZExvY2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzguMTQgMiA1IDUuMTQgNSA5YzAgNS4yNSA3IDEzIDcgMTNzNy03Ljc1IDctMTNjMC0zLjg2LTMuMTQtNy03LTd6bTQgOGgtM3YzaC0ydi0zSDhWOGgzVjVoMnYzaDN2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRkUm9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE4di0zaC0ydjNoLTN2MmgzdjNoMnYtM2gzdi0yek0xOCA0aDJ2OWgtMnpNNCA0aDJ2MTZINHpNMTEgNGgydjRoLTJ6TTExIDEwaDJ2NGgtMnpNMTEgMTZoMnY0aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZ3JpY3VsdHVyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjUgMTJjLjkzIDAgMS43OC4yOCAyLjUuNzZWOGMwLTEuMS0uOS0yLTItMmgtNi4yOWwtMS4wNi0xLjA2IDEuNDEtMS40MS0uNzEtLjcxLTMuNTMgMy41My43MS43MSAxLjQxLTEuNDFMMTMgNi43MVY5YzAgMS4xLS45IDItMiAyaC0uNTRBNS45OCA1Ljk4IDAgMCAxIDEyIDE1YzAgLjM0LS4wNC42Ny0uMDkgMWgzLjE0Yy4yNS0yLjI1IDIuMTQtNCA0LjQ1LTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjUgMTNjLTEuOTMgMC0zLjUgMS41Ny0zLjUgMy41czEuNTcgMy41IDMuNSAzLjUgMy41LTEuNTcgMy41LTMuNS0xLjU3LTMuNS0zLjUtMy41em0wIDVjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41ek00IDloNWMwLTEuMS0uOS0yLTItMkg0Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxek05LjgzIDEzLjgybC0uMTgtLjQ3LjkzLS4zNWE0LjkyIDQuOTIgMCAwIDAtMi4zMS0yLjQzbC0uNC44OS0uNDYtLjIxLjQtLjlDNy4yNiAxMC4xMyA2LjY0IDEwIDYgMTBjLS41MyAwLTEuMDQuMTEtMS41Mi4yNmwuMzQuOTEtLjQ3LjE4LS4zNS0uOTNhNC45MiA0LjkyIDAgMCAwLTIuNDMgMi4zMWwuODkuNC0uMjEuNDYtLjktLjRDMS4xMyAxMy43NCAxIDE0LjM2IDEgMTVjMCAuNTMuMTEgMS4wNC4yNiAxLjUybC45MS0uMzQuMTguNDctLjkzLjM1YTQuOTIgNC45MiAwIDAgMCAyLjMxIDIuNDNsLjQtLjg5LjQ2LjIxLS40LjljLjU1LjIyIDEuMTcuMzUgMS44MS4zNS41MyAwIDEuMDQtLjExIDEuNTItLjI2bC0uMzQtLjkxLjQ3LS4xOC4zNS45M2E0LjkyIDQuOTIgMCAwIDAgMi40My0yLjMxbC0uODktLjQuMjEtLjQ2LjkuNGMuMjItLjU1LjM1LTEuMTcuMzUtMS44MSAwLS41My0uMTEtMS4wNC0uMjYtMS41MmwtLjkxLjM0em0tMi42OCAzLjk1Yy0xLjUzLjYzLTMuMjktLjA5LTMuOTItMS42Mi0uNjMtMS41My4wOS0zLjI5IDEuNjItMy45MiAxLjUzLS42MyAzLjI5LjA5IDMuOTIgMS42Mi42NCAxLjUzLS4wOSAzLjI5LTEuNjIgMy45MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWlybGluZVN0b3BzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguMjEgOS4yMUMxNS45MyAxMC43OCAxMy40NSAxMy4zIDEzIDE3aDJ2Mkg5di0yaDJjLS41LTQuNS00LjM3LTgtOS04VjdjNC4zOSAwIDguMjIgMi41NSAxMCA2LjMgMS4xMy0yLjQzIDIuOTktNC4yNSA0Ljc4LTUuNTJMMTQgNWg3djdsLTIuNzktMi43OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWlybGluZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA0IDIgMjBoMTdsMy0xNmgtOXptMS41IDEwYTIuNSAyLjUgMCAwIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBbHRSb3V0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTkuNzggMTEuMTYtMS40MiAxLjQyYTcuMjgyIDcuMjgyIDAgMCAxLTEuNzktMi45NGwxLjk0LS40OWMuMzIuODkuNzcgMS41IDEuMjcgMi4wMXpNMTEgNiA3IDIgMyA2aDMuMDJjLjAyLjgxLjA4IDEuNTQuMTkgMi4xN2wxLjk0LS40OUM4LjA4IDcuMiA4LjAzIDYuNjMgOC4wMiA2SDExem0xMCAwLTQtNC00IDRoMi45OWMtLjEgMy42OC0xLjI4IDQuNzUtMi41NCA1Ljg4LS41LjQ0LTEuMDEuOTItMS40NSAxLjU1LS4zNC0uNDktLjczLS44OC0xLjEzLTEuMjRMOS40NiAxMy42Yy45My44NSAxLjU0IDEuNTQgMS41NCAzLjR2NWgydi01YzAtMi4wMi43MS0yLjY2IDEuNzktMy42MyAxLjM4LTEuMjQgMy4wOC0yLjc4IDMuMi03LjM3SDIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBdG0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDl2MS41aDIuMjVWMTVoMS41di00LjVIMTRWOXpNNiA5SDNjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNXYtMS41aDJWMTVIN3YtNWMwLS41NS0uNDUtMS0xLTF6bS0uNSAzaC0ydi0xLjVoMlYxMnpNMjEgOWgtNC41Yy0uNTUgMC0xIC40NS0xIDF2NUgxN3YtNC41aDFWMTRoMS41di0zLjUxaDFWMTVIMjJ2LTVjMC0uNTUtLjQ1LTEtMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBdHRyYWN0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjQzIDE4Ljc1Yy4zNy0uNDYuOTQtLjc1IDEuNTctLjc1LjYzIDAgMS4xOS4yOSAxLjU2Ljc1LjM5LS4wOS43Ni0uMjEgMS4xMi0uMzZsLTEuNDItMy4xOGEzLjUyMiAzLjUyMiAwIDAgMS0yLjU2LS4wMmwtMS40MyAzLjE5Yy4zOC4xNi43Ni4yOSAxLjE2LjM3ek01LjE1IDEwYTcuMDYgNy4wNiAwIDAgMCAuMDggNGMuNjMuMDUgMS4yMi40IDEuNTYuOTkuMzMuNTcuMzUgMS4yMy4xMSAxLjc5LjI3LjI3LjU2LjUzLjg3Ljc2bDEuNTItMy4zOWMtLjQ3LS41OC0uNzUtMS4zMi0uNzUtMi4xMyAwLTEuODkgMS41NS0zLjQxIDMuNDYtMy40MXMzLjQ2IDEuNTMgMy40NiAzLjQxYzAgLjgyLS4yOSAxLjU3LS43OCAyLjE2bDEuNSAzLjM1Yy4zMi0uMjQuNjItLjUuOS0uNzktLjIyLS41NS0uMi0xLjIuMTItMS43NS4zMy0uNTcuOS0uOTIgMS41Mi0uOTlhNy4wMjUgNy4wMjUgMCAwIDAgLjA5LTQuMDJjLS42NC0uMDQtMS4yNi0uMzktMS42LTEtLjM2LS42Mi0uMzUtMS4zNi0uMDMtMS45NS0uOTEtLjk4LTIuMS0xLjcxLTMuNDQtMi4wNUMxMy4zOSA1LjYgMTIuNzQgNiAxMiA2cy0xLjM5LS40MS0xLjc0LTEuMDFhNy4wNTMgNy4wNTMgMCAwIDAtMy40NCAyLjAzYy4zMy42LjM1IDEuMzUtLjAyIDEuOTgtLjM1LjYyLS45OS45Ny0xLjY1IDF6bS0xLjMtLjQyYy0uNzgtLjYtMS4wMi0xLjctLjUxLTIuNTguNTEtLjg4IDEuNTgtMS4yMyAyLjQ5LS44NWE4LjUzIDguNTMgMCAwIDEgNC4xOC0yLjQyQzEwLjE1IDIuNzUgMTAuOTkgMiAxMiAyczEuODUuNzUgMS45OCAxLjczYzEuNjMuMzkgMy4wNyAxLjI0IDQuMTggMi40MmExLjk5IDEuOTkgMCAwIDEgMi40OS44NWMuNTEuODguMjcgMS45OC0uNTEgMi41OC4yMy43Ny4zNSAxLjU4LjM1IDIuNDJzLS4xMiAxLjY1LS4zNSAyLjQyYy43OC42IDEuMDIgMS43LjUxIDIuNTgtLjUxLjg4LTEuNTggMS4yMy0yLjQ5Ljg1LS40LjQzLS44NS44MS0xLjM0IDEuMTVsMS4zNCAzSDE2LjNsLS45Ny0yLjE3Yy0uNDMuMTgtLjg4LjMzLTEuMzQuNDQtLjE0Ljk4LS45OCAxLjczLTEuOTkgMS43M3MtMS44NS0uNzUtMS45OC0xLjczYy0uNDgtLjEyLS45NC0uMjctMS4zOC0uNDZMNy42NiAyMkg1Ljc4bDEuMzYtMy4wM2E4LjcyIDguNzIgMCAwIDEtMS4zLTEuMTJjLS45Mi4zOC0xLjk5LjAzLTIuNS0uODVzLS4yNy0xLjk4LjUxLTIuNThjLS4yMy0uNzctLjM1LTEuNTgtLjM1LTIuNDJzLjEyLTEuNjUuMzUtMi40MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmFkZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA3aC01VjRjMC0xLjEtLjktMi0yLTJoLTJjLTEuMSAwLTIgLjktMiAydjNINGMtMS4xIDAtMiAuOS0yIDJ2MTFjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY5YzAtMS4xLS45LTItMi0yek05IDEyYy44MyAwIDEuNS42NyAxLjUgMS41UzkuODMgMTUgOSAxNXMtMS41LS42Ny0xLjUtMS41UzguMTcgMTIgOSAxMnptMyA2SDZ2LS43NWMwLTEgMi0xLjUgMy0xLjVzMyAuNSAzIDEuNVYxOHptMS05aC0yVjRoMnY1em01IDcuNWgtNFYxNWg0djEuNXptMC0zaC00VjEyaDR2MS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYWtlcnlEaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTkuMjggMTYuMzQgMTcuNDYgMTVzLjMyLS41OS45Ni0xLjc4YS45NDQuOTQ0IDAgMCAxIDEuNiAwbC44MSAxLjI2Yy4xOS4zLjIxLjY4LjA2IDFsLS4yMi40N2EuOTQuOTQgMCAwIDEtMS4zOS4zOXptLTE0LjU2IDBhLjk0Ni45NDYgMCAwIDEtMS4zOS0uMzhsLS4yMy0uNDdjLS4xNS0uMzItLjEzLS43LjA2LTFsLjgxLTEuMjZhLjk0NC45NDQgMCAwIDEgMS42IDBjLjY1IDEuMTguOTcgMS43Ny45NyAxLjc3bC0xLjgyIDEuMzR6bTEwLjY0LTYuOTdjLjA5LS42OC43My0xLjA2IDEuMjctLjc1bDEuNTkuOWMuNDYuMjYuNjMuOTEuMzYgMS40MUwxNi41IDE1aC0xLjhsLjY2LTUuNjN6bS02LjczIDBMOS4zIDE1SDcuNWwtMi4wOS00LjA4Yy0uMjctLjUtLjEtMS4xNS4zNi0xLjQxbDEuNTktLjljLjUzLS4zIDEuMTguMDggMS4yNy43NnpNMTMuOCAxNWgtMy42bC0uNzQtNi44OGMtLjA3LS41OS4zNS0xLjEyLjg4LTEuMTJoMy4zYy41MyAwIC45NC41My44OCAxLjEyTDEzLjggMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJlZW5oZXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMUg1Yy0xLjEgMC0xLjk5LjktMS45OSAyTDMgMTUuOTNjMCAuNjkuMzUgMS4zLjg4IDEuNjZMMTIgMjNsOC4xMS01LjQxYy41My0uMzYuODgtLjk3Ljg4LTEuNjZMMjEgM2MwLTEuMS0uOS0yLTItMnptLTkgMTUtNS01IDEuNDEtMS40MUwxMCAxMy4xN2w3LjU5LTcuNTlMMTkgN2wtOSA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCaWtlU2Nvb3RlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDE0aC43NEw4LjgyIDUuNTZBMi4wMDkgMi4wMDkgMCAwIDAgNi44NyA0SDN2MmgzLjg3bDEuNDIgNi4yNWgtLjAxQTYuMDA4IDYuMDA4IDAgMCAwIDQuMDkgMTdIMHYyaDZ2LTFjMC0yLjIxIDEuNzktNCA0LTR6TTE5IDhoLS44MmwtMS4zNS0zLjY5QTEuOTc2IDEuOTc2IDAgMCAwIDE0Ljk2IDNIMTF2MmgzLjk2bDEuMSAzSDEwLjRsLjQ2IDJIMTVjLS40My41OC0uNzUgMS4yNS0uOSAyaC0yLjc5bC40NiAyaDIuMzNjLjQ0IDIuMjMgMi4zMSAzLjg4IDQuNjUgMy45OSAyLjguMTMgNS4yNS0yLjE5IDUuMjUtNUMyNCAxMC4yIDIxLjggOCAxOSA4em0wIDhjLTEuNjggMC0zLTEuMzItMy0zIDAtLjkzLjQxLTEuNzMgMS4wNS0yLjI4bC45NiAyLjY0IDEuODgtLjY4LS45Ny0yLjY3Yy4wMyAwIC4wNi0uMDEuMDktLjAxIDEuNjggMCAzIDEuMzIgMyAzcy0xLjMzIDMtMy4wMSAzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxNWMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6bTAgNGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCcmVha2Zhc3REaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTggM0g2QzMuNzkgMyAyIDQuNzkgMiA3YzAgMS40OC44MSAyLjc1IDIgMy40NVYxOWMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0ydi04LjU1YzEuMTktLjY5IDItMS45NyAyLTMuNDUgMC0yLjIxLTEuNzktNC00LTR6bS00IDEyaC00di00aDR2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQnJ1bmNoRGluaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE4IDhoMlY0aC0ydjR6bS0yLjQ5IDE0SDIuNDljLS4yNyAwLS40OS0uMjItLjQ5LS41VjIwaDE0djEuNWMwIC4yOC0uMjIuNS0uNDkuNXpNMTggMTUuODlsLS40LS40MmE1Ljg1MiA1Ljg1MiAwIDAgMS0xLjYtNFYyaDZ2OS41MWMwIDEuNDYtLjU0IDIuODctMS41MyAzLjk0bC0uNDcuNTJWMjBoMnYyaC00di02LjExek03IDE2di0yaDR2Mmg0LjVjLjI4IDAgLjUuMjIuNS41djFjMCAuMjgtLjIyLjUtLjUuNWgtMTNjLS4yOCAwLS41LS4yMi0uNS0uNXYtMWMwLS4yOC4yMi0uNS41LS41SDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJ1c0FsZXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxYTcgNyAwIDAgMC01Ljc4IDMuMDVsLjAyLS4wM0M5Ljg0IDQgOS40MiA0IDkgNGMtNC40MiAwLTggLjUtOCA0djEwYzAgLjg4LjM5IDEuNjcgMSAyLjIyVjIyYTEgMSAwIDAgMCAxIDFoMWExIDEgMCAwIDAgMS0xdi0xaDh2MWExIDEgMCAwIDAgMSAxaDFhMSAxIDAgMCAwIDEtMXYtMS43OGMuNjEtLjU1IDEtMS4zNCAxLTIuMjJ2LTMuMDhBNyA3IDAgMCAwIDE2IDF6TTQuNSAxOWExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3pNMyAxM1Y4aDZjMCAxLjk2LjgxIDMuNzMgMi4xMSA1SDN6bTEwLjUgNmExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3ptMi41LTZhNSA1IDAgMSAxIDAtMTAgNSA1IDAgMCAxIDAgMTB6bS0xLTloMnY1aC0yem0wIDZoMnYyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYXJDcmFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDFjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0uNSA2aC0xVjNoMXY0em0wIDF2MWgtMVY4aDF6bS0uNTkgNWMuMDYuMTYuMDkuMzMuMDkuNSAwIC44My0uNjcgMS41LTEuNSAxLjVzLTEuNS0uNjctMS41LTEuNWMwLS4zOS4xNS0uNzQuMzktMS4wMUE3LjAzMiA3LjAzMiAwIDAgMSAxMS42OCA5SDUuODFsMS4wNC0zSDExYzAtLjY5LjEtMS4zNy4yOS0ySDYuNWMtLjY2IDAtMS4yMS40Mi0xLjQyIDEuMDFMMyAxMXY4YzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaDEydjFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTYuNjhjLTEuMDUuNTEtMi4xNi42OS0zLjA5LjY4ek03LjUgMTVjLS44MyAwLTEuNS0uNjctMS41LTEuNVM2LjY3IDEyIDcuNSAxMnMxLjUuNjcgMS41IDEuNVM4LjMzIDE1IDcuNSAxNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FyUmVudGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuMzkgOUg3LjYxYy0uNDMgMC0uODEuMjgtLjk1LjY4bC0xLjY2IDV2Ni44MWMwIC4yOS4yMy41MS41LjUxaDFjLjI4IDAgLjUtLjIyLjUtLjVWMjBoMTB2MS41YzAgLjI4LjIyLjUuNS41aDFjLjI4IDAgLjUtLjIyLjUtLjV2LTYuODFsLTEuNjYtNWExLjAxIDEuMDEgMCAwIDAtLjk1LS42OXptLTguNjEgOWMtLjY4IDAtMS4yMi0uNTQtMS4yMi0xLjIycy41NC0xLjIyIDEuMjItMS4yMlM5IDE2LjExIDkgMTYuNzggOC40NiAxOCA3Ljc4IDE4em04LjQ0IDBjLS42NyAwLTEuMjItLjU0LTEuMjItMS4yMnMuNTQtMS4yMiAxLjIyLTEuMjIgMS4yMi41NCAxLjIyIDEuMjJTMTYuOSAxOCAxNi4yMiAxOHptLTkuOTMtNCAxLjMzLTRoOC43OGwxLjMzIDRINi4yOXpNMTAuODMgM0EzLjAxIDMuMDEgMCAwIDAgOCAxQzYuMzQgMSA1IDIuMzQgNSA0YzAgMS42NSAxLjM0IDMgMyAzIDEuMyAwIDIuNDEtLjg0IDIuODMtMkgxNnYyaDJWNWgxVjNoLTguMTd6TTggNWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYXJSZXBhaXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi4yMiAxMmMuNjggMCAxLjIyLS41NCAxLjIyLTEuMjIgMC0uNjctLjU0LTEuMjItMS4yMi0xLjIyUzE1IDEwLjExIDE1IDEwLjc4YzAgLjY4LjU1IDEuMjIgMS4yMiAxLjIyem0tOS42Ni0xLjIyYzAgLjY3LjU0IDEuMjIgMS4yMiAxLjIyUzkgMTEuNDYgOSAxMC43OGMwLS42Ny0uNTQtMS4yMi0xLjIyLTEuMjJzLTEuMjIuNTUtMS4yMiAxLjIyek03LjYxIDQgNi4yOCA4aDExLjQzbC0xLjMzLTRINy42MXptOC42Ny0xcy41NC4wMS45Mi41NGMuMDIuMDIuMDMuMDQuMDUuMDcuMDcuMTEuMTQuMjQuMTkuNC4yMi42NSAxLjU2IDQuNjggMS41NiA0LjY4djYuNWMwIC40NS0uMzUuODEtLjc4LjgxaC0uNDRjLS40MyAwLS43OC0uMzYtLjc4LS44MVYxNEg3djEuMTljMCAuNDUtLjM1LjgxLS43OC44MWgtLjQ0Yy0uNDMgMC0uNzgtLjM2LS43OC0uODF2LTYuNVM2LjM0IDQuNjcgNi41NSA0Yy4wNS0uMTYuMTItLjI4LjE5LS40LjAzLS4wMi4wNC0uMDQuMDYtLjA2LjM4LS41My45Mi0uNTQuOTItLjU0aDguNTZ6TTQgMTcuMDFoMTZWMTloLTd2M2gtMnYtM0g0di0xLjk5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYXN0bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA5djJoLTJWM2gtMnYyaC0yVjNoLTJ2MmgtMlYzSDl2Mkg3VjNINXY4SDNWOUgxdjEyaDl2LTNjMC0xLjEuOS0yIDItMnMyIC45IDIgMnYzaDlWOWgtMnptLTEwIDNIOVY5aDJ2M3ptNCAwaC0yVjloMnYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYXRlZ29yeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDItNS41IDloMTF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTcuNVwiLFwiY3lcIjpcIjE3LjVcIixcInJcIjpcIjQuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDEzLjVoOHY4SDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENlbGVicmF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMiAyMiAxNC01LTktOXpNMTQuNTMgMTIuNTNsNS41OS01LjU5YTEuMjUgMS4yNSAwIDAgMSAxLjc3IDBsLjU5LjU5IDEuMDYtMS4wNi0uNTktLjU5YTIuNzU4IDIuNzU4IDAgMCAwLTMuODkgMGwtNS41OSA1LjU5IDEuMDYgMS4wNnpNMTAuMDYgNi44OGwtLjU5LjU5IDEuMDYgMS4wNi41OS0uNTlhMi43NTggMi43NTggMCAwIDAgMC0zLjg5bC0uNTktLjU5LTEuMDYgMS4wNy41OS41OWMuNDguNDguNDggMS4yOCAwIDEuNzZ6TTE3LjA2IDExLjg4bC0xLjU5IDEuNTkgMS4wNiAxLjA2IDEuNTktMS41OWExLjI1IDEuMjUgMCAwIDEgMS43NyAwbDEuNjEgMS42MSAxLjA2LTEuMDYtMS42MS0xLjYxYTIuNzU4IDIuNzU4IDAgMCAwLTMuODkgMHpNMTUuMDYgNS44OGwtMy41OSAzLjU5IDEuMDYgMS4wNiAzLjU5LTMuNTlhMi43NTggMi43NTggMCAwIDAgMC0zLjg5bC0xLjU5LTEuNTktMS4wNiAxLjA2IDEuNTkgMS41OWMuNDguNDkuNDggMS4yOSAwIDEuNzd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENodXJjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDEyLjIyVjlsLTUtMi41VjVoMlYzaC0yVjFoLTJ2Mkg5djJoMnYxLjVMNiA5djMuMjJMMiAxNHY4aDh2LTNjMC0xLjEuOS0yIDItMnMyIC45IDIgMnYzaDh2LThsLTQtMS43OHptLTYgMS4yOGMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENsZWFuaW5nU2VydmljZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxMWgtMVYzYzAtMS4xLS45LTItMi0yaC0yYy0xLjEgMC0yIC45LTIgMnY4SDhjLTIuNzYgMC01IDIuMjQtNSA1djdoMTh2LTdjMC0yLjc2LTIuMjQtNS01LTV6bTMgMTBoLTJ2LTNjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2M2gtMnYtM2MwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXYzSDl2LTNjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2M0g1di01YzAtMS42NSAxLjM1LTMgMy0zaDhjMS42NSAwIDMgMS4zNSAzIDN2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29tcGFzc0NhbGlicmF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjE3XCIsXCJyXCI6XCI0XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEwLjA3YzEuOTUgMCAzLjcyLjc5IDUgMi4wN2w1LTVDMTkuNDQgNC41OSAxNS45IDMgMTIgM1M0LjU2IDQuNTkgMiA3LjE1bDUgNWE3LjA2IDcuMDYgMCAwIDEgNS0yLjA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb25uZWN0aW5nQWlycG9ydHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNS40IDE3IDEuMyA0LjRoLTEuMUwxMyAxN2gtM2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMWgzbDIuNi00LjRoMS4xTDE1LjQgMTVoMi44NWwuNzUtMWgxbC0uNiAyIC42IDJoLTFsLS43NS0xSDE1LjR6TTUuNzUgNyA1IDZINGwuNiAyLS42IDJoMWwuNzUtMUg4LjZsLTEuMyA0LjRoMS4xTDExIDloM2MuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMWgtM0w4LjQgMi42SDcuM0w4LjYgN0g1Ljc1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDcmlzaXNBbGVydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgMi41YzAgMS41LTEuNSA2LTEuNSA2aC0yUzkuNSA0IDkuNSAyLjVhMi41IDIuNSAwIDAgMSA1IDB6TTEyIDEwYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptNC4wOC00Ljg5Yy4xOC0uNzUuMzMtMS40Ny4zOS0yLjA2QTkuOTk2IDkuOTk2IDAgMCAxIDIyIDEyYzAgNS41Mi00LjQ4IDEwLTEwIDEwUzIgMTcuNTIgMiAxMmMwLTMuOTIgMi4yNS03LjMxIDUuNTMtOC45NS4wNy41OS4yMSAxLjMyLjM5IDIuMDZBOC4wMjggOC4wMjggMCAwIDAgNCAxMmMwIDQuNDIgMy41OCA4IDggOHM4LTMuNTggOC04YzAtMi45My0xLjU4LTUuNDktMy45Mi02Ljg5ek0xOCAxMmMwIDMuMzEtMi42OSA2LTYgNnMtNi0yLjY5LTYtNmMwLTIgLjk4LTMuNzcgMi40OC00Ljg2LjIzLjgxLjY1IDIuMDcuNjUgMi4wN0M4LjQzIDkuOTMgOCAxMC45MiA4IDEyYzAgMi4yMSAxLjc5IDQgNCA0czQtMS43OSA0LTRjMC0xLjA4LS40My0yLjA3LTEuMTMtMi43OSAwIDAgLjQxLTEuMjIuNjUtMi4wN0E1Ljk5OCA1Ljk5OCAwIDAgMSAxOCAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGVsaXZlcnlEaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA3YzAtMS4xLS45LTItMi0yaC0zdjJoM3YyLjY1TDEzLjUyIDE0SDEwVjlINmMtMi4yMSAwLTQgMS43OS00IDR2M2gyYzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTNoNC40OEwxOSAxMC4zNVY3ek03IDE3Yy0uNTUgMC0xLS40NS0xLTFoMmMwIC41NS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgNmg1djJINXpNMTkgMTNjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zem0wIDRjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGVwYXJ0dXJlQm9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDFjLTIuNCAwLTQuNTIgMS4yMS01Ljc4IDMuMDUuMDEtLjAxLjAxLS4wMi4wMi0uMDNDOS44NCA0IDkuNDIgNCA5IDRjLTQuNDIgMC04IC41LTggNHYxMGMwIC44OC4zOSAxLjY3IDEgMi4yMlYyMmMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWg4djFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTEuNzhjLjYxLS41NSAxLTEuMzQgMS0yLjIydi0zLjA4YzMuMzktLjQ5IDYtMy4zOSA2LTYuOTIgMC0zLjg3LTMuMTMtNy03LTd6TTQuNSAxOWMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzMuNjcgMTYgNC41IDE2czEuNS42NyAxLjUgMS41UzUuMzMgMTkgNC41IDE5ek0zIDEzVjhoNmMwIDEuOTYuODEgMy43MyAyLjExIDVIM3ptMTAuNSA2Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXptMi41LTZjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1em0uNS05SDE1djVsMy42MiAyLjE2Ljc1LTEuMjMtMi44Ny0xLjY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREZXNpZ25TZXJ2aWNlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2LjI0IDExLjUxIDEuNTctMS41Ny0zLjc1LTMuNzUtMS41NyAxLjU3LTQuMTQtNC4xM2MtLjc4LS43OC0yLjA1LS43OC0yLjgzIDBsLTEuOSAxLjljLS43OC43OC0uNzggMi4wNSAwIDIuODNsNC4xMyA0LjEzTDMgMTcuMjVWMjFoMy43NWw0Ljc2LTQuNzYgNC4xMyA0LjEzYy45NS45NSAyLjIzLjYgMi44MyAwbDEuOS0xLjljLjc4LS43OC43OC0yLjA1IDAtMi44M2wtNC4xMy00LjEzem0tNy4wNi0uNDRMNS4wNCA2Ljk0bDEuODktMS45TDguMiA2LjMxIDcuMDIgNy41bDEuNDEgMS40MSAxLjE5LTEuMTkgMS40NSAxLjQ1LTEuODkgMS45em03Ljg4IDcuODktNC4xMy00LjEzIDEuOS0xLjkgMS40NSAxLjQ1LTEuMTkgMS4xOSAxLjQxIDEuNDEgMS4xOS0xLjE5IDEuMjcgMS4yNy0xLjkgMS45ek0yMC43MSA3LjA0YS45OTYuOTk2IDAgMCAwIDAtMS40MWwtMi4zNC0yLjM0Yy0uNDctLjQ3LTEuMTItLjI5LTEuNDEgMGwtMS44MyAxLjgzIDMuNzUgMy43NSAxLjgzLTEuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERpYW1vbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4xNiAzaC0uMzJMOS4yMSA4LjI1aDUuNTh6TTE2LjQ2IDguMjVoNS4xNkwxOSAzaC01LjE2ek0yMS4zOCA5Ljc1aC04LjYzVjIwLjF6TTExLjI1IDIwLjFWOS43NUgyLjYyek03LjU0IDguMjUgMTAuMTYgM0g1TDIuMzggOC4yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGlubmVyRGluaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxOWgyMGwtMiAySDRsLTItMnpNNSA2aDF2MUg1VjZ6bTAtMmgxdjFINVY0em00IDB2MUg3VjRoMnptMCAzSDdWNmgydjF6bS0zIDguMjNjLS4zNi4xMS0uNjkuMjgtMSAuNDdWOGgxdjcuMjN6bS0yIDEuMjljLS4zOC40NC0uNjguOTMtLjg0IDEuNDhoMTYuODJjLjAxLS4xNi4wMy0uMzMuMDMtLjVhNS40OTcgNS40OTcgMCAwIDAtMTAuNTgtMi4xYy0uNTktLjI1LTEuMjQtLjQtMS45My0uNC0uMTcgMC0uMzMuMDItLjUuMDRWOGgyYzEuMDMuMDYgMS45LS45NiAyLTJoMTBWNUgxMWMtLjEtMS4wNS0uOTctMS45Ny0yLTJIM3YxaDF2MUgzdjFoMXYxSDN2MWgxdjguNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERpcmVjdGlvbnNCaWtlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSA1LjVjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyek01IDEyYy0yLjggMC01IDIuMi01IDVzMi4yIDUgNSA1IDUtMi4yIDUtNS0yLjItNS01LTV6bTAgOC41Yy0xLjkgMC0zLjUtMS42LTMuNS0zLjVzMS42LTMuNSAzLjUtMy41IDMuNSAxLjYgMy41IDMuNS0xLjYgMy41LTMuNSAzLjV6bTUuOC0xMCAyLjQtMi40LjguOGMxLjMgMS4zIDMgMi4xIDUuMSAyLjFWOWMtMS41IDAtMi43LS42LTMuNi0xLjVsLTEuOS0xLjljLS41LS40LTEtLjYtMS42LS42cy0xLjEuMi0xLjQuNkw3LjggOC40Yy0uNC40LS42LjktLjYgMS40IDAgLjYuMiAxLjEuNiAxLjRMMTEgMTR2NWgydi02LjJsLTIuMi0yLjN6TTE5IDEyYy0yLjggMC01IDIuMi01IDVzMi4yIDUgNSA1IDUtMi4yIDUtNS0yLjItNS01LTV6bTAgOC41Yy0xLjkgMC0zLjUtMS42LTMuNS0zLjVzMS42LTMuNSAzLjUtMy41IDMuNSAxLjYgMy41IDMuNS0xLjYgMy41LTMuNSAzLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERpcmVjdGlvbnNCb2F0RmlsbGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMjFjLTEuMzkgMC0yLjc4LS40Ny00LTEuMzItMi40NCAxLjcxLTUuNTYgMS43MS04IDBDNi43OCAyMC41MyA1LjM5IDIxIDQgMjFIMnYyaDJjMS4zOCAwIDIuNzQtLjM1IDQtLjk5YTguNzUyIDguNzUyIDAgMCAwIDggMGMxLjI2LjY1IDIuNjIuOTkgNCAuOTloMnYtMmgtMnpNMy45NSAxOUg0YzEuNiAwIDMuMDItLjg4IDQtMiAuOTggMS4xMiAyLjQgMiA0IDJzMy4wMi0uODggNC0yYy45OCAxLjEyIDIuNCAyIDQgMmguMDVsMS45LTYuNjhjLjExLS4zNy4wNC0xLjA2LS42Ni0xLjI4TDIwIDEwLjYyVjZjMC0xLjEtLjktMi0yLTJoLTNWMUg5djNINmMtMS4xIDAtMiAuOS0yIDJ2NC42MmwtMS4yOS40MmMtLjYzLjE5LS44MS44NC0uNjYgMS4yOEwzLjk1IDE5ek02IDZoMTJ2My45N0wxMiA4IDYgOS45N1Y2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaXJlY3Rpb25zQm9hdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDIxYy0xLjM5IDAtMi43OC0uNDctNC0xLjMyLTIuNDQgMS43MS01LjU2IDEuNzEtOCAwQzYuNzggMjAuNTMgNS4zOSAyMSA0IDIxSDJ2MmgyYzEuMzggMCAyLjc0LS4zNSA0LS45OWE4Ljc1MiA4Ljc1MiAwIDAgMCA4IDBjMS4yNi42NSAyLjYyLjk5IDQgLjk5aDJ2LTJoLTJ6TTMuOTUgMTlINGMxLjYgMCAzLjAyLS44OCA0LTIgLjk4IDEuMTIgMi40IDIgNCAyczMuMDItLjg4IDQtMmMuOTggMS4xMiAyLjQgMiA0IDJoLjA1bDEuODktNi42OGMuMDgtLjI2LjA2LS41NC0uMDYtLjc4cy0uMzQtLjQyLS42LS41TDIwIDEwLjYyVjZjMC0xLjEtLjktMi0yLTJoLTNWMUg5djNINmMtMS4xIDAtMiAuOS0yIDJ2NC42MmwtMS4yOS40MmExLjAwNyAxLjAwNyAwIDAgMC0uNjYgMS4yOEwzLjk1IDE5ek02IDZoMTJ2My45N0wxMiA4IDYgOS45N1Y2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaXJlY3Rpb25zQnVzRmlsbGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmMtNCAwLTggLjUtOCA0djkuNWMwIC45NS4zOCAxLjgxIDEgMi40NFYyMGMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWg4djFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTIuMDZjLjYyLS42MyAxLTEuNDkgMS0yLjQ0VjZjMC0zLjUtMy41OC00LTgtNHpNOC41IDE2Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNy42NyAxMyA4LjUgMTNzMS41LjY3IDEuNSAxLjVTOS4zMyAxNiA4LjUgMTZ6bTcgMGMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6bTIuNS02SDZWN2gxMnYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaXJlY3Rpb25zQnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxNmMwIC44OC4zOSAxLjY3IDEgMi4yMlYyMGMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWg4djFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTEuNzhjLjYxLS41NSAxLTEuMzQgMS0yLjIyVjZjMC0zLjUtMy41OC00LTgtNHMtOCAuNS04IDR2MTB6bTMuNSAxYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNi42NyAxNCA3LjUgMTRzMS41LjY3IDEuNSAxLjVTOC4zMyAxNyA3LjUgMTd6bTkgMGMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6bTEuNS02SDZWNmgxMnY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaXJlY3Rpb25zQ2FyRmlsbGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguOTIgNi4wMUMxOC43MiA1LjQyIDE4LjE2IDUgMTcuNSA1aC0xMWMtLjY2IDAtMS4yMS40Mi0xLjQyIDEuMDFMMyAxMnY4YzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaDEydjFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LThsLTIuMDgtNS45OXpNNy41IDE2Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNi42NyAxMyA3LjUgMTNzMS41LjY3IDEuNSAxLjVTOC4zMyAxNiA3LjUgMTZ6bTkgMGMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6TTUuODEgMTBsMS4wNC0zaDEwLjI5bDEuMDQgM0g1LjgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaXJlY3Rpb25zQ2FyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguOTIgNi4wMUMxOC43MiA1LjQyIDE4LjE2IDUgMTcuNSA1aC0xMWMtLjY2IDAtMS4yMS40Mi0xLjQyIDEuMDFMMyAxMnY4YzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaDEydjFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LThsLTIuMDgtNS45OXpNNi41IDE2Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyAxMyA2LjUgMTNzMS41LjY3IDEuNSAxLjVTNy4zMyAxNiA2LjUgMTZ6bTExIDBjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41ek01IDExbDEuNS00LjVoMTFMMTkgMTFINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGlyZWN0aW9uc1JhaWx3YXlGaWxsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYy00IDAtOCAuNS04IDR2OS41QzQgMTcuNDMgNS41NyAxOSA3LjUgMTlMNiAyMHYxaDEydi0xbC0xLjUtMWMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVY2YzAtMy41LTMuNTgtNC04LTR6bTAgMTRjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMS4xNyAxMyAxMiAxM3MxLjUuNjcgMS41IDEuNVMxMi44MyAxNiAxMiAxNnptNi02SDZWN2gxMnYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaXJlY3Rpb25zUmFpbHdheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTUuNUM0IDE3LjQzIDUuNTcgMTkgNy41IDE5TDYgMjAuNXYuNWgxMnYtLjVMMTYuNSAxOWMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVY1YzAtMy41LTMuNTgtNC04LTRzLTggLjUtOCA0djEwLjV6bTggMS41Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnptNi03SDZWNWgxMnY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaXJlY3Rpb25zUnVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNDkgNS40OGMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bS0zLjYgMTMuOSAxLTQuNCAyLjEgMnY2aDJ2LTcuNWwtMi4xLTIgLjYtM2MxLjMgMS41IDMuMyAyLjUgNS41IDIuNXYtMmMtMS45IDAtMy41LTEtNC4zLTIuNGwtMS0xLjZjLS40LS42LTEtMS0xLjctMS0uMyAwLS41LjEtLjguMWwtNS4yIDIuMnY0LjdoMnYtMy40bDEuOC0uNy0xLjYgOC4xLTQuOS0xLS40IDIgNyAxLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERpcmVjdGlvbnNTdWJ3YXlGaWxsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYy00IDAtOCAuNS04IDR2OS41QzQgMTcuNDMgNS41NyAxOSA3LjUgMTlMNiAyMHYxaDEydi0xbC0xLjUtMWMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVY2YzAtMy41LTMuNTgtNC04LTR6TTguNSAxNmMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzcuNjcgMTMgOC41IDEzczEuNS42NyAxLjUgMS41UzkuMzMgMTYgOC41IDE2em0yLjUtNkg2VjdoNXYzem00LjUgNmMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6bTIuNS02aC01VjdoNXYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaXJlY3Rpb25zU3Vid2F5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmMtNC40MiAwLTggLjUtOCA0djkuNUM0IDE3LjQzIDUuNTcgMTkgNy41IDE5TDYgMjAuNXYuNWgxMnYtLjVMMTYuNSAxOWMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVY2YzAtMy41LTMuNTgtNC04LTR6TTcuNSAxN2MtLjgzIDAtMS41LS42Ny0xLjUtMS41UzYuNjcgMTQgNy41IDE0czEuNS42NyAxLjUgMS41UzguMzMgMTcgNy41IDE3em0zLjUtNkg2VjZoNXY1em01LjUgNmMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6bTEuNS02aC01VjZoNXY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaXJlY3Rpb25zVHJhbnNpdEZpbGxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJjLTQgMC04IC41LTggNHY5LjVDNCAxNy40MyA1LjU3IDE5IDcuNSAxOUw2IDIwdjFoMTJ2LTFsLTEuNS0xYzEuOTMgMCAzLjUtMS41NyAzLjUtMy41VjZjMC0zLjUtMy41OC00LTgtNHpNOC41IDE2Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNy42NyAxMyA4LjUgMTNzMS41LjY3IDEuNSAxLjVTOS4zMyAxNiA4LjUgMTZ6bTIuNS02SDZWN2g1djN6bTQuNSA2Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXptMi41LTZoLTVWN2g1djN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERpcmVjdGlvbnNUcmFuc2l0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmMtNC40MiAwLTggLjUtOCA0djkuNUM0IDE3LjQzIDUuNTcgMTkgNy41IDE5TDYgMjAuNXYuNWgxMnYtLjVMMTYuNSAxOWMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVY2YzAtMy41LTMuNTgtNC04LTR6TTcuNSAxN2MtLjgzIDAtMS41LS42Ny0xLjUtMS41UzYuNjcgMTQgNy41IDE0czEuNS42NyAxLjUgMS41UzguMzMgMTcgNy41IDE3em0zLjUtNkg2VjZoNXY1em01LjUgNmMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6bTEuNS02aC01VjZoNXY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaXJlY3Rpb25zV2FsayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjUgNS41YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnpNOS44IDguOSA3IDIzaDIuMWwxLjgtOCAyLjEgMnY2aDJ2LTcuNWwtMi4xLTIgLjYtM0MxNC44IDEyIDE2LjggMTMgMTkgMTN2LTJjLTEuOSAwLTMuNS0xLTQuMy0yLjRsLTEtMS42Yy0uNC0uNi0xLTEtMS43LTEtLjMgMC0uNS4xLS44LjFMNiA4LjNWMTNoMlY5LjZsMS44LS43XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERpcmVjdGlvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS40MSAxMC41OS03Ljk5LThjLS43OC0uNzgtMi4wNS0uNzgtMi44MyAwbC04LjAxIDhjLS43OC43OC0uNzggMi4wNSAwIDIuODNsOC4wMSA4Yy43OC43OCAyLjA1Ljc4IDIuODMgMGw3Ljk5LThjLjc5LS43OS43OS0yLjA1IDAtMi44M3pNMTMuNSAxNC41VjEySDEwdjNIOHYtNGMwLS41NS40NS0xIDEtMWg0LjVWNy41TDE3IDExbC0zLjUgMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREcnlDbGVhbmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjU2IDExLjM2IDEzIDguNDRWN2MwLS41NS0uNDUtMS0xLTFzLTEtLjQ1LTEtMSAuNDUtMSAxLTEgMSAuNDUgMSAxaDJjMC0xLjg0LTEuNjYtMy4zLTMuNTYtMi45NS0xLjE4LjIyLTIuMTUgMS4xNy0yLjM4IDIuMzUtLjMgMS41Ni42IDIuOTQgMS45NCAzLjQydi42M2wtNi41NiAyLjkyYy0uODguMzgtMS40NCAxLjI1LTEuNDQgMi4ydi4wMUMzIDE0LjkyIDQuMDggMTYgNS40MiAxNkg3djZoMTB2LTZoMS41OGMxLjM0IDAgMi40Mi0xLjA4IDIuNDItMi40MnYtLjAxYzAtLjk1LS41Ni0xLjgyLTEuNDQtMi4yMXpNMTguNTggMTRIMTd2LTFIN3YxSDUuNDJjLS4yMyAwLS40Mi0uMTktLjQyLS40MyAwLS4xNy4xLS4zMi4yNS0uMzhsNi43NS0zIDYuNzUgM2EuNDIzLjQyMyAwIDAgMS0uMTcuODF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVkaXRBdHRyaWJ1dGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNjMgN0g2LjM3QzMuOTYgNyAyIDkuMjQgMiAxMnMxLjk2IDUgNC4zNyA1aDExLjI2YzIuNDEgMCA0LjM3LTIuMjQgNC4zNy01cy0xLjk2LTUtNC4zNy01ek03LjI0IDE0LjQ2bC0yLjU3LTIuNTcuNy0uNyAxLjg3IDEuODcgMy41Mi0zLjUyLjcuNy00LjIyIDQuMjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVkaXRMb2NhdGlvbkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjk1IDEzSDlWOC4wNWw1LjYxLTUuNjFBOC4xNyA4LjE3IDAgMCAwIDEyIDJjLTQuMiAwLTggMy4yMi04IDguMiAwIDMuMzIgMi42NyA3LjI1IDggMTEuOCA1LjMzLTQuNTUgOC04LjQ4IDgtMTEuOCAwLTEuMDEtLjE2LTEuOTQtLjQ1LTIuOGwtNS42IDUuNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTFoMi4xMmw2LjE2LTYuMTYtMi4xMi0yLjEyTDExIDguODh6TTIwLjcxIDIgMjAgMS4yOWMtLjItLjE5LS40NS0uMjktLjcxLS4yOS0uMTMgMC0uNDguMDctLjcxLjI5bC0uNzIuNzIgMi4xMiAyLjEyLjcyLS43MmMuNC0uMzkuNC0xLjAyLjAxLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVkaXRMb2NhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDOC4xNCAyIDUgNS4xNCA1IDljMCA1LjI1IDcgMTMgNyAxM3M3LTcuNzUgNy0xM2MwLTMuODYtMy4xNC03LTctN3ptLTEuNTYgMTBIOXYtMS40NGwzLjM1LTMuMzQgMS40MyAxLjQzTDEwLjQ0IDEyem00LjQ1LTQuNDUtLjcuNy0xLjQ0LTEuNDQuNy0uN2EuMzguMzggMCAwIDEgLjU0IDBsLjkuOWMuMTUuMTUuMTUuMzkgMCAuNTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVkaXRSb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNGgtMnY3LjlsMi0yek00IDRoMnYxNkg0ek0xMCA0aDJ2NGgtMnpNMTAgMTBoMnY0aC0yek0xMCAxNmgydjRoLTJ6TTIyLjU2IDEyLjU5bC0xLjE1LTEuMTVhMS40OSAxLjQ5IDAgMCAwLTIuMTIgMEwxNCAxNi43M1YyMGgzLjI3bDUuMjktNS4yOWMuNTktLjU5LjU5LTEuNTQgMC0yLjEyem0tNS45OCA1Ljg2aC0xLjAzdi0xLjAzTDE5IDEzLjk3IDIwLjAzIDE1bC0zLjQ1IDMuNDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVnZ0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDljLTItMi0zLjAxLTctOS4wMy03QzQuOTUgMiAxLjk0IDYgMiAxMS41MiAyLjA2IDE3LjA0IDYuOTYgMTkgOS45NyAxOWMyLjAxIDAgMi4wMSAzIDYuMDIgM0MxOSAyMiAyMiAxOSAyMiAxNS4wMiAyMiAxMiAyMS4wMSAxMSAxOSA5em0tNyA2LjVjLTEuOTMgMC0zLjUtMS41Ny0zLjUtMy41czEuNTctMy41IDMuNS0zLjUgMy41IDEuNTcgMy41IDMuNS0xLjU3IDMuNS0zLjUgMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFZ2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAzQzguNSAzIDUgOS4zMyA1IDE0YzAgMy44NyAzLjEzIDcgNyA3czctMy4xMyA3LTdjMC00LjY3LTMuNS0xMS03LTExem0xIDE1Yy0zIDAtNS0xLjk5LTUtNSAwLS41NS40NS0xIDEtMXMxIC40NSAxIDFjMCAyLjkyIDIuNDIgMyAzIDMgLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVsZWN0cmljQmlrZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDdoLS44MmwtMS43LTQuNjhBMi4wMDggMi4wMDggMCAwIDAgMTQuNiAxSDEydjJoMi42bDEuNDYgNGgtNC44MWwtLjM2LTFIMTJWNEg3djJoMS43NWwxLjgyIDVIOS45Yy0uNDQtMi4yMy0yLjMxLTMuODgtNC42NS0zLjk5QzIuNDUgNi44NyAwIDkuMiAwIDEyYzAgMi44IDIuMiA1IDUgNSAyLjQ2IDAgNC40NS0xLjY5IDQuOS00aDQuMmMuNDQgMi4yMyAyLjMxIDMuODggNC42NSAzLjk5IDIuOC4xMyA1LjI1LTIuMTkgNS4yNS01QzI0IDkuMiAyMS44IDcgMTkgN3pNNy44MiAxM2MtLjQgMS4xNy0xLjQ5IDItMi44MiAyLTEuNjggMC0zLTEuMzItMy0zczEuMzItMyAzLTNjMS4zMyAwIDIuNDIuODMgMi44MiAySDV2MmgyLjgyem02LjI4LTJoLTEuNGwtLjczLTJIMTVjLS40NC41OC0uNzYgMS4yNS0uOSAyem00LjkgNGMtMS42OCAwLTMtMS4zMi0zLTMgMC0uOTMuNDEtMS43MyAxLjA1LTIuMjhsLjk2IDIuNjQgMS44OC0uNjgtLjk3LTIuNjdjLjAyIDAgLjA1LS4wMS4wOC0uMDEgMS42OCAwIDMgMS4zMiAzIDNzLTEuMzIgMy0zIDN6TTExIDIwSDdsNiAzdi0yaDRsLTYtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRWxlY3RyaWNDYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC45MiAyLjAxQzE4LjcyIDEuNDIgMTguMTYgMSAxNy41IDFoLTExYy0uNjYgMC0xLjIxLjQyLTEuNDIgMS4wMUwzIDh2OGMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWgxMnYxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xVjhsLTIuMDgtNS45OXpNNi41IDEyYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTExIDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxNi42NyA5IDE3LjUgOXMxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6TTUgN2wxLjUtNC41aDExTDE5IDdINXpNNyAyMGg0di0ybDYgM2gtNHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFbGVjdHJpY01vcGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNWMwLTEuMS0uOS0yLTItMmgtM3YyaDN2Mi42NUwxMy41MiAxMkgxMFY3SDZjLTIuMjEgMC00IDEuNzktNCA0djNoMmMwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zaDQuNDhMMTkgOC4zNVY1ek03IDE1Yy0uNTUgMC0xLS40NS0xLTFoMmMwIC41NS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgNGg1djJINXpNMTkgMTFjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zem0wIDRjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpNNyAyMGg0di0ybDYgM2gtNHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFbGVjdHJpY1JpY2tzaGF3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTEuMThWOS43MmMwLS40Ny0uMTYtLjkyLS40Ni0xLjI4TDE2LjYgMy43MmMtLjM4LS40Ni0uOTQtLjcyLTEuNTQtLjcySDNjLTEuMSAwLTIgLjktMiAydjhjMCAxLjEuOSAyIDIgMmguMThDMy42IDE2LjE2IDQuNyAxNyA2IDE3czIuNC0uODQgMi44Mi0yaDguMzdhMi45OTYgMi45OTYgMCAwIDAgNS44Mi0xYy0uMDEtMS4zLS44NS0yLjQtMi4wMS0yLjgyek0xOC40IDlIMTZWNi4xMkwxOC40IDl6TTMgNWg0djRIM1Y1em0zIDEwYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTMtMnYtMmgzVjlIOVY1aDV2OEg5em0xMSAyYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6TTcgMjBoNHYtMmw2IDNoLTR2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRWxlY3RyaWNTY29vdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy44MiAxNkgxNXYtMWMwLTIuMjEgMS43OS00IDQtNGguNzRsLTEuOS04LjQ0QTIuMDA5IDIuMDA5IDAgMCAwIDE1Ljg5IDFIMTJ2MmgzLjg5bDEuNCA2LjI1aC0uMDFBNi4wMDggNi4wMDggMCAwIDAgMTMuMDkgMTRINy44MmEyLjk5NiAyLjk5NiAwIDAgMC0zLjQyLTEuOTRjLTEuMTguMjMtMi4xMyAxLjItMi4zNSAyLjM4QTMuMDAyIDMuMDAyIDAgMCAwIDUgMThjMS4zIDAgMi40LS44NCAyLjgyLTJ6TTUgMTZjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTJjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zem0wIDRjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpNMTEgMjBIN2w2IDN2LTJoNGwtNi0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFbGVjdHJpY2FsU2VydmljZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxNGMwLS41NS0uNDUtMS0xLTFoLTJ2MmgyYy41NSAwIDEtLjQ1IDEtMXpNMjAgMTdoLTJ2MmgyYy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xek0xMiAxNGgtMnY0aDJjMCAxLjEuOSAyIDIgMmgzdi04aC0zYy0xLjEgMC0yIC45LTIgMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxM2MwLTEuMS45LTIgMi0yaDEuNWMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVMxMC40MyA0IDguNSA0SDVjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDFoMy41Yy44MyAwIDEuNS42NyAxLjUgMS41UzkuMzMgOSA4LjUgOUg3Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0aDJ2LTJIN2MtMS4xIDAtMi0uOS0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVtZXJnZW5jeVJlY29yZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDEwLjQ4VjZjMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMnYtNC40OGw0IDMuOTh2LTExbC00IDMuOTh6TTEyIDEybDMgMS43My0xIDEuNzMtMy0xLjczVjE3SDl2LTMuMjdsLTMgMS43My0xLTEuNzNMOCAxMmwtMy0xLjczIDEtMS43MyAzIDEuNzNWN2gydjMuMjdsMy0xLjczIDEgMS43M0wxMiAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRW1lcmdlbmN5U2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA5Yy0zLjE1IDAtNiAyLjQxLTYgNi4xNSAwIDIuNDkgMiA1LjQ0IDYgOC44NSA0LTMuNDEgNi02LjM2IDYtOC44NUMxOCAxMS40MSAxNS4xNSA5IDEyIDl6bTAgNy41Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpNMTIgNGMxLjkzIDAgMy42OC43OCA0Ljk1IDIuMDVsLTEuNDEgMS40MWE1LjAyMiA1LjAyMiAwIDAgMC03LjA4IDBMNy4wNSA2LjA1QTYuOTc2IDYuOTc2IDAgMCAxIDEyIDR6bTcuNzgtLjc3LTEuNDEgMS40MUMxNi43NCAzLjAxIDE0LjQ5IDIgMTIuMDEgMlM3LjI3IDMuMDEgNS42NCA0LjYzTDQuMjIgMy4yMkM2LjIyIDEuMjMgOC45NyAwIDEyLjAxIDBzNS43OCAxLjIzIDcuNzcgMy4yM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRW1lcmdlbmN5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuNzkgOS4yMy0yLTMuNDZMMTQgOC41NFYzaC00djUuNTRMNS4yMSA1Ljc3bC0yIDMuNDZMOCAxMmwtNC43OSAyLjc3IDIgMy40NkwxMCAxNS40NlYyMWg0di01LjU0bDQuNzkgMi43NyAyLTMuNDZMMTYgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEV2U3RhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkuNzcgNy4yMy4wMS0uMDEtMy43Mi0zLjcyTDE1IDQuNTZsMi4xMSAyLjExYy0uOTQuMzYtMS42MSAxLjI2LTEuNjEgMi4zM2EyLjUgMi41IDAgMCAwIDIuNSAyLjVjLjM2IDAgLjY5LS4wOCAxLS4yMXY3LjIxYzAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xVjE0YzAtMS4xLS45LTItMi0yaC0xVjVjMC0xLjEtLjktMi0yLTJINmMtMS4xIDAtMiAuOS0yIDJ2MTZoMTB2LTcuNWgxLjV2NWEyLjUgMi41IDAgMCAwIDUgMFY5YzAtLjY5LS4yOC0xLjMyLS43My0xLjc3ek0xOCAxMGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxek04IDE4di00LjVINkwxMCA2djVoMmwtNCA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGYWN0b3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTB2MTJIMlYxMGw3LTN2Mmw1LTJ2M2g4em0tNC44LTEuNUwxOCAyaDNsLjggNi41aC00LjZ6TTExIDE4aDJ2LTRoLTJ2NHptLTQgMGgydi00SDd2NHptMTAtNGgtMnY0aDJ2LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZhc3Rmb29kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguMDYgMjIuOTloMS42NmMuODQgMCAxLjUzLS42NCAxLjYzLTEuNDZMMjMgNS4wNWgtNVYxaC0xLjk3djQuMDVoLTQuOTdsLjMgMi4zNGMxLjcxLjQ3IDMuMzEgMS4zMiA0LjI3IDIuMjYgMS40NCAxLjQyIDIuNDMgMi44OSAyLjQzIDUuMjl2OC4wNXpNMSAyMS45OVYyMWgxNS4wM3YuOTljMCAuNTUtLjQ1IDEtMS4wMSAxSDIuMDFjLS41NiAwLTEuMDEtLjQ1LTEuMDEtMXptMTUuMDMtN2MwLTgtMTUuMDMtOC0xNS4wMyAwaDE1LjAzek0xLjAyIDE3aDE1djJoLTE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGZXN0aXZhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDUuN1Y0aDNsLTEtMS40OUwxNiAxaC01djQuN0wyIDEydjEwaDd2LTVsMy4wMy0yTDE1IDE3djVoN1YxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlyZUh5ZHJhbnRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxMWgtMVY4aDJWNmgtMi4zNWE1Ljk5IDUuOTkgMCAwIDAtMTEuMyAwSDR2MmgydjNINWMtMS4xIDAtMiAuOS0yIDJ2MmMwIDEuMS45IDIgMiAyaDF2M0g0djJoMTZ2LTJoLTJ2LTNoMWMxLjEgMCAyLS45IDItMnYtMmMwLTEuMS0uOS0yLTItMnptLTcgNi41Yy0xLjkzIDAtMy41LTEuNTctMy41LTMuNXMxLjU3LTMuNSAzLjUtMy41IDMuNSAxLjU3IDMuNSAzLjUtMS41NyAzLjUtMy41IDMuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjE0XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlyZVRydWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIuOSAxMC42OS0xLjQ0LTQuMzJBMi4wMSAyLjAxIDAgMCAwIDE5LjU2IDVIMTlWNGMwLS41NS0uNDUtMS0xLTFoLTFjLS41NSAwLTEgLjQ1LTEgMXYxaC0yYy0xLjEgMC0yIC45LTIgMnY0SDF2NWMwIDEuMS45IDIgMiAyaDFjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtM2g0YzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTNoM3YtNi42OGMwLS4yMS0uMDMtLjQyLS4xLS42M3pNNyAxOWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0xMCAwYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bS0zLThWN2g1LjU2bDEuMzMgNEgxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgOC41aC0xdi0yaDFWNUgxdjEuNWgxdjJIMVYxMGgxMFY4LjV6bS01Ljc1IDBIMy41di0yaDEuNzV2MnptMy4yNSAwSDYuNzV2LTJIOC41djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZsaWdodENsYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgNGgtMmMtMS4xIDAtMiAuOS0yIDJ2NWMwIDEuMS45IDIgMiAyaDJjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNOS41IDE2SDE4djJIOS40OWMtLjg4IDAtMS42Ni0uNTgtMS45Mi0xLjQzTDUgOFY0aDJ2NGwyLjUgOHpNOCAxOWgxMHYySDh2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZsaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDE2di0ybC04LTVWMy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNVMxMCAyLjY3IDEwIDMuNVY5bC04IDV2Mmw4LTIuNVYxOWwtMiAxLjVWMjJsMy41LTEgMy41IDF2LTEuNUwxMyAxOXYtNS41bDggMi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3Jlc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxMiA5IDIgMiAxMmgxLjg2TDAgMThoN3Y0aDR2LTRoN2wtMy44Ni02elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC4xNCAxMkgyMkwxNSAybC0yLjM5IDMuNDFMMTcuOTIgMTNoLTEuOTVsMy4yMiA1SDI0ek0xMyAxOWg0djNoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcmtMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS40MSAxNS41OSA4IDE3bC00LTQgNC00IDEuNDEgMS40MUw3LjgzIDEyYzEuNTEtLjMzIDMuNzMuMDggNS4xNyAxLjM2VjYuODNsLTEuNTkgMS41OUwxMCA3bDQtNCA0IDQtMS40MSAxLjQxTDE1IDYuODNWMjFoLTJ2LTRjLS43My0yLjU4LTMuMDctMy40Ny01LjE3LTNsMS41OCAxLjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JrUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41OSAxNS41OSAxNiAxN2w0LTQtNC00LTEuNDEgMS40MUwxNi4xNyAxMmMtMS41MS0uMzMtMy43My4wOC01LjE3IDEuMzZWNi44M2wxLjU5IDEuNTlMMTQgN2wtNC00LTQgNCAxLjQxIDEuNDFMOSA2LjgzVjIxaDJ2LTRjLjczLTIuNTggMy4wNy0zLjQ3IDUuMTctM2wtMS41OCAxLjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM3YyaC0yVjNoLTJ2MmgtMlYzaC0ydjRsMiAydjFIOVY5bDItMlYzSDl2Mkg3VjNINXYySDNWM0gxdjRsMiAydjZsLTIgMnY0aDl2LTNjMC0xLjEuOS0yIDItMnMyIC45IDIgMnYzaDl2LTRsLTItMlY5bDItMlYzaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIYWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6bTUtNGgydi40Yy0uMSAyLjItLjggMy45LTIuMyA1LjEtLjUuNC0xLjEuNy0xLjcuOVYyMmgtMnYtNmgtMnY2SDlWMTAuMWMtLjMuMS0uNS4yLS42LjMtLjkuNy0xLjM5IDEuNi0xLjQgMy4xdi41SDV2LS41YzAtMiAuNzEtMy41OSAyLjExLTQuNzlDOC4yMSA3LjgxIDEwIDcgMTIgN3MyLjY4LS40NiAzLjQ4LTEuMDZDMTYuNDggNS4xNCAxNyA0IDE3IDIuNVYyek00IDE2aDN2Nkg0di02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIYW5keW1hbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjY3IDE4LjE3LTUuMy01LjNoLS45OWwtMi41NCAyLjU0di45OWw1LjMgNS4zYy4zOS4zOSAxLjAyLjM5IDEuNDEgMGwyLjEyLTIuMTJhLjk5Ni45OTYgMCAwIDAgMC0xLjQxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNy4zNCAxMC4xOSAxLjQxLTEuNDEgMi4xMiAyLjEyYTMgMyAwIDAgMCAwLTQuMjRsLTMuNTQtMy41NC0xLjQxIDEuNDFWMS43MWwtLjctLjcxLTMuNTQgMy41NC43MS43MWgyLjgzbC0xLjQxIDEuNDEgMS4wNiAxLjA2LTIuODkgMi44OS00LjEzLTQuMTNWNS4wNkw0LjgzIDIuMDQgMiA0Ljg3IDUuMDMgNy45aDEuNDFsNC4xMyA0LjEzLS44NS44NUg3LjZsLTUuMyA1LjNhLjk5Ni45OTYgMCAwIDAgMCAxLjQxbDIuMTIgMi4xMmMuMzkuMzkgMS4wMi4zOSAxLjQxIDBsNS4zLTUuM3YtMi4xMmw1LjE1LTUuMTUgMS4wNiAxLjA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIYXJkd2FyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4IDMtMyAzVjNIOUM2LjI0IDMgNCA1LjI0IDQgOGg1djNoNlY4bDMgM2gyVjNoLTJ6TTkgMTN2N2MwIC41NS40NSAxIDEgMWg0Yy41NSAwIDEtLjQ1IDEtMXYtN0g5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIb21lUmVwYWlyU2VydmljZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDE2aC0ydi0xSDh2MUg2di0xSDJ2NWgyMHYtNWgtNHpNMjAgOGgtM1Y2YzAtMS4xLS45LTItMi0ySDljLTEuMSAwLTIgLjktMiAydjJINGMtMS4xIDAtMiAuOS0yIDJ2NGg0di0yaDJ2Mmg4di0yaDJ2Mmg0di00YzAtMS4xLS45LTItMi0yem0tNSAwSDlWNmg2djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhvdGVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxM2MxLjY2IDAgMy0xLjM0IDMtM1M4LjY2IDcgNyA3cy0zIDEuMzQtMyAzIDEuMzQgMyAzIDN6bTEyLTZoLTh2N0gzVjVIMXYxNWgydi0zaDE4djNoMnYtOWMwLTIuMjEtMS43OS00LTQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSHZhYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE2YzEuMDEgMCAxLjkxLS4zOSAyLjYyLTFIOS4zOGMuNzEuNjEgMS42MSAxIDIuNjIgMXpNOC41NiAxNGg2Ljg5Yy4yNi0uNDUuNDQtLjk2LjUxLTEuNWgtNy45Yy4wNi41NC4yMyAxLjA1LjUgMS41ek0xMiA4Yy0xLjAxIDAtMS45MS4zOS0yLjYyIDFoNS4yNGMtLjcxLS42MS0xLjYxLTEtMi42Mi0xek04LjU2IDEwYy0uMjYuNDUtLjQ0Ljk2LS41MSAxLjVoNy45Yy0uMDctLjU0LS4yNC0xLjA1LS41MS0xLjVIOC41NnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDE1Yy0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02IDYgMi42OSA2IDYtMi42OSA2LTYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSWNlY3JlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJtOC43OSAxMi40IDMuMjYgNi4yMiAzLjE3LTYuMjFjLS4xMS0uMDgtLjIxLS4xNi0uMy0uMjUtLjg0LjUzLTEuODUuODQtMi45Mi44NHMtMi4wOC0uMzEtMi45Mi0uODRjLS4wOS4wOS0uMTkuMTctLjI5LjI0em0tMS45Ni41OUEyLjk5NSAyLjk5NSAwIDAgMSA0IDEwYTMgMyAwIDAgMSAyLjUyLTIuOTZDNi43NSA0LjIyIDkuMTIgMiAxMiAyczUuMjUgMi4yMiA1LjQ4IDUuMDRBMyAzIDAgMCAxIDIwIDEwYzAgMS41OS0xLjI0IDIuOS0yLjgxIDIuOTlMMTIuMDcgMjMgNi44MyAxMi45OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kS2ViYWJEaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03Ljc1IDhIMTF2NUg3Ljc1djFoLjc1YTIuNSAyLjUgMCAwIDEgMCA1aC0uNzV2NGgtMS41di00SDUuNWEyLjUgMi41IDAgMCAxIDAtNWguNzV2LTFIM1Y4aDMuMjVWN0g1LjVhMi41IDIuNSAwIDAgMSAwLTVoLjc1VjFoMS41djFoLjc1YTIuNSAyLjUgMCAwIDEgMCA1aC0uNzV2MXptMTAtMWguNzVhMi41IDIuNSAwIDAgMCAwLTVoLS43NVYxaC0xLjV2MWgtLjc1YTIuNSAyLjUgMCAwIDAgMCA1aC43NXYxSDEzdjVoMy4yNXYxaC0uNzVhMi41IDIuNSAwIDAgMCAwIDVoLjc1djRoMS41di00aC43NWEyLjUgMi41IDAgMCAwIDAtNWgtLjc1di0xSDIxVjhoLTMuMjVWN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGF5ZXJzQ2xlYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOS44MSAxNC45OSAxLjE5LS45Mi0xLjQzLTEuNDMtMS4xOS45MiAxLjQzIDEuNDN6bS0uNDUtNC43MkwyMSA5bC05LTctMi45MSAyLjI3IDcuODcgNy44OCAyLjQtMS44OHpNMy4yNyAxIDIgMi4yN2w0LjIyIDQuMjJMMyA5bDEuNjMgMS4yN0wxMiAxNmwyLjEtMS42MyAxLjQzIDEuNDNMMTIgMTguNTRsLTcuMzctNS43M0wzIDE0LjA3bDkgNyA0Ljk1LTMuODVMMjAuNzMgMjEgMjIgMTkuNzMgMy4yNyAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMYXllcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMS45OSAxOC41NC03LjM3LTUuNzNMMyAxNC4wN2w5IDcgOS03LTEuNjMtMS4yNy03LjM4IDUuNzR6TTEyIDE2bDcuMzYtNS43M0wyMSA5bC05LTctOSA3IDEuNjMgMS4yN0wxMiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGlxdW9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxNGMwIDEuMy44NCAyLjQgMiAyLjgyVjIwSDN2Mmg2di0ySDd2LTMuMThDOC4xNiAxNi40IDkgMTUuMyA5IDE0VjZIM3Y4em0yLTZoMnYzSDVWOHpNMjAuNjMgOC41NGwtLjk1LS4zMmEuOTkxLjk5MSAwIDAgMS0uNjgtLjk0VjNjMC0uNTUtLjQ1LTEtMS0xaC0zYy0uNTUgMC0xIC40NS0xIDF2NC4yOGMwIC40My0uMjguODEtLjY4Ljk1bC0uOTUuMzJjLS44Mi4yNy0xLjM3IDEuMDMtMS4zNyAxLjg5VjIwYzAgMS4xLjkgMiAyIDJoN2MxLjEgMCAyLS45IDItMnYtOS41NmMwLS44Ni0uNTUtMS42Mi0xLjM3LTEuOXpNMTYgNGgxdjFoLTFWNHptLTMgNi40NC45NS0uMzJDMTUuMTggOS43MiAxNiA4LjU3IDE2IDcuMjhWN2gxdi4yOGEzIDMgMCAwIDAgMi4wNSAyLjg1bC45NS4zMVYxMmgtN3YtMS41NnpNMjAgMjBoLTd2LTJoN3YyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhbEFjdGl2aXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTJjMC0xLjEuOS0yIDItMlY2YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJ2NGMxLjEgMCAxLjk5LjkgMS45OSAycy0uODkgMi0yIDJ2NGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0ydi00Yy0xLjEgMC0yLS45LTItMnptLTQuNDIgNC44TDEyIDE0LjVsLTMuNTggMi4zIDEuMDgtNC4xMi0zLjI5LTIuNjkgNC4yNC0uMjVMMTIgNS44bDEuNTQgMy45NSA0LjI0LjI1LTMuMjkgMi42OSAxLjA5IDQuMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsQWlycG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTZ2LTJsLTguNS01VjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVzLTEuNS42Ny0xLjUgMS41VjlMMiAxNHYybDguNS0yLjVWMTlMOCAyMC41VjIybDQtMSA0IDF2LTEuNUwxMy41IDE5di01LjVMMjIgMTZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsQXRtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTdoMnYtMWgxYy41NSAwIDEtLjQ1IDEtMXYtM2MwLS41NS0uNDUtMS0xLTFoLTN2LTFoNFY4aC0yVjdoLTJ2MWgtMWMtLjU1IDAtMSAuNDUtMSAxdjNjMCAuNTUuNDUgMSAxIDFoM3YxSDl2MmgydjF6bTktMTNINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMThjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWNmMwLTEuMTEtLjg5LTItMi0yem0wIDE0SDRWNmgxNnYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYWxCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA1VjNIM3YybDggOXY1SDZ2MmgxMnYtMmgtNXYtNWw4LTl6TTcuNDMgNyA1LjY2IDVoMTIuNjlsLTEuNzggMkg3LjQzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhbENhZmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNINHYxMGMwIDIuMjEgMS43OSA0IDQgNGg2YzIuMjEgMCA0LTEuNzkgNC00di0zaDJhMiAyIDAgMCAwIDItMlY1YzAtMS4xMS0uODktMi0yLTJ6bTAgNWgtMlY1aDJ2M3pNNCAxOWgxNnYySDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsQ2FyV2FzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDVjLjgzIDAgMS41LS42NyAxLjUtMS41IDAtMS0xLjUtMi43LTEuNS0yLjdzLTEuNSAxLjctMS41IDIuN2MwIC44My42NyAxLjUgMS41IDEuNXptLTUgMGMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0xLTEuNS0yLjctMS41LTIuN3MtMS41IDEuNy0xLjUgMi43YzAgLjgzLjY3IDEuNSAxLjUgMS41ek03IDVjLjgzIDAgMS41LS42NyAxLjUtMS41QzguNSAyLjUgNyAuOCA3IC44UzUuNSAyLjUgNS41IDMuNUM1LjUgNC4zMyA2LjE3IDUgNyA1em0xMS45MiAzLjAxQzE4LjcyIDcuNDIgMTguMTYgNyAxNy41IDdoLTExYy0uNjYgMC0xLjIxLjQyLTEuNDIgMS4wMUwzIDE0djhjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTFoMTJ2MWMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtOGwtMi4wOC01Ljk5ek02LjUgMThjLS44MyAwLTEuNS0uNjctMS41LTEuNVM1LjY3IDE1IDYuNSAxNXMxLjUuNjcgMS41IDEuNVM3LjMzIDE4IDYuNSAxOHptMTEgMGMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6TTUgMTNsMS41LTQuNWgxMUwxOSAxM0g1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhbENvbnZlbmllbmNlU3RvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA3VjRINXYzSDJ2MTNoOHYtNGg0djRoOFY3aC0zem0tOCAzSDl2MWgydjFIOFY5aDJWOEg4VjdoM3Yzem01IDJoLTF2LTJoLTJWN2gxdjJoMVY3aDF2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYWxEaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm04LjEgMTMuMzQgMi44My0yLjgzTDMuOTEgMy41YTQuMDA4IDQuMDA4IDAgMCAwIDAgNS42Nmw0LjE5IDQuMTh6bTYuNzgtMS44MWMxLjUzLjcxIDMuNjguMjEgNS4yNy0xLjM4IDEuOTEtMS45MSAyLjI4LTQuNjUuODEtNi4xMi0xLjQ2LTEuNDYtNC4yLTEuMS02LjEyLjgxLTEuNTkgMS41OS0yLjA5IDMuNzQtMS4zOCA1LjI3TDMuNyAxOS44N2wxLjQxIDEuNDFMMTIgMTQuNDFsNi44OCA2Ljg4IDEuNDEtMS40MUwxMy40MSAxM2wxLjQ3LTEuNDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsRHJpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0zIDIgMi4wMSAxOC4yM0M1LjEzIDIxLjIzIDUuOTcgMjIgNyAyMmgxMGMxLjAzIDAgMS44Ny0uNzcgMS45OS0xLjc3TDIxIDJIM3ptOSAxN2MtMS42NiAwLTMtMS4zNC0zLTMgMC0yIDMtNS40IDMtNS40czMgMy40IDMgNS40YzAgMS42Ni0xLjM0IDMtMyAzem02LjMzLTExSDUuNjdsLS40NC00aDEzLjUzbC0uNDMgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYWxGaXJlRGVwYXJ0bWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDEyLjktMi4xMyAyLjA5Yy0uNTYuNTYtLjg3IDEuMjktLjg3IDIuMDdDOSAxOC42OCAxMC4zNSAyMCAxMiAyMHMzLTEuMzIgMy0yLjk0YzAtLjc4LS4zMS0xLjUyLS44Ny0yLjA3TDEyIDEyLjl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2IDYtLjQ0LjU1QzE0LjM4IDguMDIgMTIgNy4xOSAxMiA1LjNWMlM0IDYgNCAxM2MwIDIuOTIgMS41NiA1LjQ3IDMuODkgNi44Ni0uNTYtLjc5LS44OS0xLjc2LS44OS0yLjggMC0xLjMyLjUyLTIuNTYgMS40Ny0zLjVMMTIgMTAuMWwzLjUzIDMuNDdjLjk1LjkzIDEuNDcgMi4xNyAxLjQ3IDMuNSAwIDEuMDItLjMxIDEuOTYtLjg1IDIuNzUgMS44OS0xLjE1IDMuMjktMy4wNiAzLjcxLTUuMy42Ni0zLjU1LTEuMDctNi45LTMuODYtOC41MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYWxGbG9yaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjJhOSA5IDAgMCAwIDktOSA5IDkgMCAwIDAtOSA5ek01LjYgMTAuMjVhMi41IDIuNSAwIDAgMCAzLjkyIDIuMDZsLS4wMi4xOWEyLjUgMi41IDAgMCAwIDUgMGwtLjAyLS4xOWMuNC4yOC44OS40NCAxLjQyLjQ0YTIuNSAyLjUgMCAwIDAgMi41LTIuNWMwLTEtLjU5LTEuODUtMS40My0yLjI1Ljg0LS40IDEuNDMtMS4yNSAxLjQzLTIuMjVhMi41IDIuNSAwIDAgMC0zLjkyLTIuMDZsLjAyLS4xOWEyLjUgMi41IDAgMCAwLTUgMGwuMDIuMTljLS40LS4yOC0uODktLjQ0LTEuNDItLjQ0YTIuNSAyLjUgMCAwIDAtMi41IDIuNWMwIDEgLjU5IDEuODUgMS40MyAyLjI1LS44NC40LTEuNDMgMS4yNS0xLjQzIDIuMjV6TTEyIDUuNWEyLjUgMi41IDAgMCAxIDAgNSAyLjUgMi41IDAgMCAxIDAtNXpNMyAxM2E5IDkgMCAwIDAgOSA5IDkgOSAwIDAgMC05LTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsR2FzU3RhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5Ljc3IDcuMjMuMDEtLjAxLTMuNzItMy43MkwxNSA0LjU2bDIuMTEgMi4xMWMtLjk0LjM2LTEuNjEgMS4yNi0xLjYxIDIuMzNhMi41IDIuNSAwIDAgMCAyLjUgMi41Yy4zNiAwIC42OS0uMDggMS0uMjF2Ny4yMWMwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMVYxNGMwLTEuMS0uOS0yLTItMmgtMVY1YzAtMS4xLS45LTItMi0ySDZjLTEuMSAwLTIgLjktMiAydjE2aDEwdi03LjVoMS41djVhMi41IDIuNSAwIDAgMCA1IDBWOWMwLS42OS0uMjgtMS4zMi0uNzMtMS43N3pNMTIgMTBINlY1aDZ2NXptNiAwYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsR3JvY2VyeVN0b3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxOGMtMS4xIDAtMS45OS45LTEuOTkgMlM1LjkgMjIgNyAyMnMyLS45IDItMi0uOS0yLTItMnpNMSAydjJoMmwzLjYgNy41OS0xLjM1IDIuNDVjLS4xNi4yOC0uMjUuNjEtLjI1Ljk2IDAgMS4xLjkgMiAyIDJoMTJ2LTJINy40MmMtLjE0IDAtLjI1LS4xMS0uMjUtLjI1bC4wMy0uMTIuOS0xLjYzaDcuNDVjLjc1IDAgMS40MS0uNDEgMS43NS0xLjAzbDMuNTgtNi40OUExLjAwMyAxLjAwMyAwIDAgMCAyMCA0SDUuMjFsLS45NC0ySDF6bTE2IDE2Yy0xLjEgMC0xLjk5LjktMS45OSAycy44OSAyIDEuOTkgMiAyLS45IDItMi0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYWxIb3NwaXRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMS45OS45LTEuOTkgMkwzIDE5YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTEgMTFoLTR2NGgtNHYtNEg2di00aDRWNmg0djRoNHY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhbEhvdGVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxM2MxLjY2IDAgMy0xLjM0IDMtM1M4LjY2IDcgNyA3cy0zIDEuMzQtMyAzIDEuMzQgMyAzIDN6bTEyLTZoLTh2N0gzVjVIMXYxNWgydi0zaDE4djNoMnYtOWMwLTIuMjEtMS43OS00LTQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYWxMYXVuZHJ5U2VydmljZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMTcgMTYuODNhNC4wMDggNC4wMDggMCAwIDAgNS42NiAwIDQuMDA4IDQuMDA4IDAgMCAwIDAtNS42NmwtNS42NiA1LjY2ek0xOCAyLjAxIDYgMmMtMS4xMSAwLTIgLjg5LTIgMnYxNmMwIDEuMTEuODkgMiAyIDJoMTJjMS4xMSAwIDItLjg5IDItMlY0YzAtMS4xMS0uODktMS45OS0yLTEuOTl6TTEwIDRjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXpNNyA0Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTUgMTZjLTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTYgNiAyLjY5IDYgNi0yLjY5IDYtNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhbExpYnJhcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMS41NUM5LjY0IDkuMzUgNi40OCA4IDMgOHYxMWMzLjQ4IDAgNi42NCAxLjM1IDkgMy41NSAyLjM2LTIuMTkgNS41Mi0zLjU1IDktMy41NVY4Yy0zLjQ4IDAtNi42NCAxLjM1LTkgMy41NXpNMTIgOGMxLjY2IDAgMy0xLjM0IDMtM3MtMS4zNC0zLTMtMy0zIDEuMzQtMyAzIDEuMzQgMyAzIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsTWFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDZoLTJjMC0yLjc2LTIuMjQtNS01LTVTNyAzLjI0IDcgNkg1Yy0xLjEgMC0xLjk5LjktMS45OSAyTDMgMjBjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0tNy0zYzEuNjYgMCAzIDEuMzQgMyAzSDljMC0xLjY2IDEuMzQtMyAzLTN6bTAgMTBjLTIuNzYgMC01LTIuMjQtNS01aDJjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtM2gyYzAgMi43Ni0yLjI0IDUtNSA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhbE1vdmllcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDN2MmgtMlYzSDh2Mkg2VjNINHYxOGgydi0yaDJ2Mmg4di0yaDJ2MmgyVjNoLTJ6TTggMTdINnYtMmgydjJ6bTAtNEg2di0yaDJ2MnptMC00SDZWN2gydjJ6bTEwIDhoLTJ2LTJoMnYyem0wLTRoLTJ2LTJoMnYyem0wLTRoLTJWN2gydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsT2ZmZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS40MSAxMS41OC05LTlDMTIuMDUgMi4yMiAxMS41NSAyIDExIDJINGMtMS4xIDAtMiAuOS0yIDJ2N2MwIC41NS4yMiAxLjA1LjU5IDEuNDJsOSA5Yy4zNi4zNi44Ni41OCAxLjQxLjU4LjU1IDAgMS4wNS0uMjIgMS40MS0uNTlsNy03Yy4zNy0uMzYuNTktLjg2LjU5LTEuNDEgMC0uNTUtLjIzLTEuMDYtLjU5LTEuNDJ6TTUuNSA3QzQuNjcgNyA0IDYuMzMgNCA1LjVTNC42NyA0IDUuNSA0IDcgNC42NyA3IDUuNSA2LjMzIDcgNS41IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsUGFya2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDNINnYxOGg0di02aDNjMy4zMSAwIDYtMi42OSA2LTZzLTIuNjktNi02LTZ6bS4yIDhIMTBWN2gzLjJjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhbFBoYXJtYWN5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNWgtMi42NGwxLjE0LTMuMTRMMTcuMTUgMWwtMS40NiA0SDN2MmwyIDYtMiA2djJoMTh2LTJsLTItNiAyLTZWNXptLTUgOWgtM3YzaC0ydi0zSDh2LTJoM1Y5aDJ2M2gzdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsUGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjYyIDEwLjc5YzEuNDQgMi44MyAzLjc2IDUuMTQgNi41OSA2LjU5bDIuMi0yLjJjLjI3LS4yNy42Ny0uMzYgMS4wMi0uMjQgMS4xMi4zNyAyLjMzLjU3IDMuNTcuNTcuNTUgMCAxIC40NSAxIDFWMjBjMCAuNTUtLjQ1IDEtMSAxLTkuMzkgMC0xNy03LjYxLTE3LTE3IDAtLjU1LjQ1LTEgMS0xaDMuNWMuNTUgMCAxIC40NSAxIDEgMCAxLjI1LjIgMi40NS41NyAzLjU3LjExLjM1LjAzLjc0LS4yNSAxLjAybC0yLjIgMi4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhbFBpenphIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM4LjQzIDIgNS4yMyAzLjU0IDMuMDEgNkwxMiAyMmw4Ljk5LTE2QzE4Ljc4IDMuNTUgMTUuNTcgMiAxMiAyek03IDdjMC0xLjEuOS0yIDItMnMyIC45IDIgMi0uOSAyLTIgMi0yLS45LTItMnptNSA4Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYWxQbGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTJjMC0xLjEuOS0yIDItMlY2YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJ2NGMxLjEgMCAxLjk5LjkgMS45OSAycy0uODkgMi0yIDJ2NGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0ydi00Yy0xLjEgMC0yLS45LTItMnptLTQuNDIgNC44TDEyIDE0LjVsLTMuNTggMi4zIDEuMDgtNC4xMi0zLjI5LTIuNjkgNC4yNC0uMjVMMTIgNS44bDEuNTQgMy45NSA0LjI0LjI1LTMuMjkgMi42OSAxLjA5IDQuMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsUG9saWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMSAzIDV2NmMwIDUuNTUgMy44NCAxMC43NCA5IDEyIDUuMTYtMS4yNiA5LTYuNDUgOS0xMlY1bC05LTR6bTIuNSAxMS41OS45IDMuODgtMy40LTIuMDUtMy40IDIuMDUuOS0zLjg3LTMtMi41OSAzLjk2LS4zNEwxMiA2LjAybDEuNTQgMy42NCAzLjk2LjM0LTMgMi41OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYWxQb3N0T2ZmaWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDQtOCA1LTgtNVY2bDggNSA4LTV2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYWxQcmludHNob3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA4SDVjLTEuNjYgMC0zIDEuMzQtMyAzdjZoNHY0aDEydi00aDR2LTZjMC0xLjY2LTEuMzQtMy0zLTN6bS0zIDExSDh2LTVoOHY1em0zLTdjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptLTEtOUg2djRoMTJWM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYWxTZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjMuMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDIgNy4xNyA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMmgtMy4xN0wxNSAySDl6bTMgMTVjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhbFNoaXBwaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOGgtM1Y0SDNjLTEuMSAwLTIgLjktMiAydjExaDJjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtM2g2YzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTNoMnYtNWwtMy00ek02IDE4LjVjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41em0xMy41LTkgMS45NiAyLjVIMTdWOS41aDIuNXptLTEuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYWxUYXhpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguOTIgNi4wMUMxOC43MiA1LjQyIDE4LjE2IDUgMTcuNSA1SDE1VjNIOXYySDYuNWMtLjY2IDAtMS4yMS40Mi0xLjQyIDEuMDFMMyAxMnY4YzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaDEydjFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LThsLTIuMDgtNS45OXpNNi41IDE2Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyAxMyA2LjUgMTNzMS41LjY3IDEuNSAxLjVTNy4zMyAxNiA2LjUgMTZ6bTExIDBjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41ek01IDExbDEuNS00LjVoMTFMMTkgMTFINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYXRpb25QaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzguMTMgMiA1IDUuMTMgNSA5YzAgMS43NC41IDMuMzcgMS40MSA0Ljg0Ljk1IDEuNTQgMi4yIDIuODYgMy4xNiA0LjQuNDcuNzUuODEgMS40NSAxLjE3IDIuMjYuMjYuNTUuNDcgMS41IDEuMjYgMS41czEtLjk1IDEuMjUtMS41Yy4zNy0uODEuNy0xLjUxIDEuMTctMi4yNi45Ni0xLjUzIDIuMjEtMi44NSAzLjE2LTQuNEMxOC41IDEyLjM3IDE5IDEwLjc0IDE5IDljMC0zLjg3LTMuMTMtNy03LTd6bTAgOS43NWEyLjUgMi41IDAgMCAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTHVuY2hEaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiZ1wiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDEwYy4zMi0zLjI4LTQuMjgtNi05Ljk5LTZTMS43IDYuNzIgMi4wMiAxMEgyMnpNNS4zNSAxMy41Yy41NSAwIC43OC4xNCAxLjE1LjM2LjQ1LjI3IDEuMDcuNjQgMi4xOC42NHMxLjczLS4zNyAyLjE4LS42NGMuMzctLjIzLjU5LS4zNiAxLjE1LS4zNi41NSAwIC43OC4xNCAxLjE1LjM2LjQ1LjI3IDEuMDcuNjQgMi4xOC42NHMxLjczLS4zNyAyLjE4LS42NGMuMzctLjIzLjU5LS4zNiAxLjE1LS4zNi41NSAwIC43OC4xNCAxLjE1LjM2LjQ1LjI3IDEuMDcuNjMgMi4xNy42NHYtMS45OHMtLjc5LS4xNi0xLjE2LS4zOGMtLjQ1LS4yNy0xLjA3LS42NC0yLjE4LS42NHMtMS43My4zNy0yLjE4LjY0Yy0uMzcuMjMtLjYuMzYtMS4xNS4zNnMtLjc4LS4xNC0xLjE1LS4zNmMtLjQ1LS4yNy0xLjA3LS42NC0yLjE4LS42NHMtMS43My4zNy0yLjE4LjY0Yy0uMzcuMjMtLjU5LjM2LTEuMTUuMzYtLjU1IDAtLjc4LS4xNC0xLjE1LS4zNi0uNDUtLjI3LTEuMDctLjY0LTIuMTgtLjY0cy0xLjczLjM3LTIuMTguNjRjLS4zNy4yMy0uNTkuMzYtMS4xNS4zNnYyYzEuMTEgMCAxLjczLS4zNyAyLjIxLS42NC4zNy0uMjMuNTktLjM2IDEuMTQtLjM2ek0yIDE2djJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMnYtMkgyelwifSxcImNoaWxkXCI6W119XX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1hcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwLjUgMy0uMTYuMDNMMTUgNS4xIDkgMyAzLjM2IDQuOWMtLjIxLjA3LS4zNi4yNS0uMzYuNDhWMjAuNWMwIC4yOC4yMi41LjUuNWwuMTYtLjAzTDkgMTguOWw2IDIuMSA1LjY0LTEuOWMuMjEtLjA3LjM2LS4yNS4zNi0uNDhWMy41YzAtLjI4LS4yMi0uNS0uNS0uNXpNMTUgMTlsLTYtMi4xMVY1bDYgMi4xMVYxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWFwc1VnYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMmMwIDEuNTQuMzYgMi45OC45NyA0LjI5TDEgMjNsNi43MS0xLjk3YzEuMzEuNjEgMi43NS45NyA0LjI5Ljk3IDUuNTIgMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptNCAxMWgtM3YzaC0ydi0zSDh2LTJoM1Y4aDJ2M2gzdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1lZGljYWxJbmZvcm1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDdoLTVWNGMwLTEuMS0uOS0yLTItMmgtMmMtMS4xIDAtMiAuOS0yIDJ2M0g0Yy0xLjEgMC0yIC45LTIgMnYxMWMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjljMC0xLjEtLjktMi0yLTJ6bS05LTNoMnY1aC0yVjR6bTAgMTJIOXYySDd2LTJINXYtMmgydi0yaDJ2MmgydjJ6bTItMS41VjEzaDZ2MS41aC02em0wIDNWMTZoNHYxLjVoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1lZGljYWxTZXJ2aWNlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLTRWNGMwLTEuMS0uOS0yLTItMmgtNGMtMS4xIDAtMiAuOS0yIDJ2Mkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6TTEwIDRoNHYyaC00VjR6bTYgMTFoLTN2M2gtMnYtM0g4di0yaDN2LTNoMnYzaDN2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWVudUJvb2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA1Yy0xLjExLS4zNS0yLjMzLS41LTMuNS0uNS0xLjk1IDAtNC4wNS40LTUuNSAxLjUtMS40NS0xLjEtMy41NS0xLjUtNS41LTEuNVMyLjQ1IDQuOSAxIDZ2MTQuNjVjMCAuMjUuMjUuNS41LjUuMSAwIC4xNS0uMDUuMjUtLjA1QzMuMSAyMC40NSA1LjA1IDIwIDYuNSAyMGMxLjk1IDAgNC4wNS40IDUuNSAxLjUgMS4zNS0uODUgMy44LTEuNSA1LjUtMS41IDEuNjUgMCAzLjM1LjMgNC43NSAxLjA1LjEuMDUuMTUuMDUuMjUuMDUuMjUgMCAuNS0uMjUuNS0uNVY2Yy0uNi0uNDUtMS4yNS0uNzUtMi0xem0wIDEzLjVjLTEuMS0uMzUtMi4zLS41LTMuNS0uNS0xLjcgMC00LjE1LjY1LTUuNSAxLjVWOGMxLjM1LS44NSAzLjgtMS41IDUuNS0xLjUgMS4yIDAgMi40LjE1IDMuNS41djExLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjUgMTAuNWMuODggMCAxLjczLjA5IDIuNS4yNlY5LjI0Yy0uNzktLjE1LTEuNjQtLjI0LTIuNS0uMjQtMS43IDAtMy4yNC4yOS00LjUuODN2MS42NmMxLjEzLS42NCAyLjctLjk5IDQuNS0uOTl6TTEzIDEyLjQ5djEuNjZjMS4xMy0uNjQgMi43LS45OSA0LjUtLjk5Ljg4IDAgMS43My4wOSAyLjUuMjZWMTEuOWMtLjc5LS4xNS0xLjY0LS4yNC0yLjUtLjI0LTEuNyAwLTMuMjQuMy00LjUuODN6TTE3LjUgMTQuMzNjLTEuNyAwLTMuMjQuMjktNC41LjgzdjEuNjZjMS4xMy0uNjQgMi43LS45OSA0LjUtLjk5Ljg4IDAgMS43My4wOSAyLjUuMjZ2LTEuNTJjLS43OS0uMTYtMS42NC0uMjQtMi41LS4yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWVyZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjQxIDIxIDUgMTkuNTlsNC44My00LjgzYy43NS0uNzUgMS4xNy0xLjc3IDEuMTctMi44M3YtNS4xTDkuNDEgOC40MSA4IDdsNC00IDQgNC0xLjQxIDEuNDFMMTMgNi44M3Y1LjFjMCAxLjA2LjQyIDIuMDggMS4xNyAyLjgzTDE5IDE5LjU5IDE3LjU5IDIxIDEyIDE1LjQxIDYuNDEgMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1pbm9yQ3Jhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC45MiA5LjAxQzE4LjcyIDguNDIgMTguMTYgOCAxNy41IDhoLTExYy0uNjYgMC0xLjIxLjQyLTEuNDIgMS4wMUwzIDE1djhjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTFoMTJ2MWMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtOGwtMi4wOC01Ljk5ek02Ljg1IDEwaDEwLjI5bDEuMDQgM0g1LjgxbDEuMDQtM3pNNiAxNy41YzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41UzguMzMgMTkgNy41IDE5IDYgMTguMzMgNiAxNy41em05IDBjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41LTEuNS0uNjctMS41LTEuNXpNOS40MSA1IDggNi40MWwtMy0zTDYuNDEgMmwzIDN6TTE2IDYuNDEgMTQuNTkgNWwzLTNMMTkgMy40MWwtMyAzek0xMyA1aC0yVjBoMnY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNaXNjZWxsYW5lb3VzU2VydmljZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNC4xNyAxMy43MSAxLjQtMi40MmMuMDktLjE1LjA1LS4zNC0uMDgtLjQ1bC0xLjQ4LTEuMTZjLjAzLS4yMi4wNS0uNDUuMDUtLjY4cy0uMDItLjQ2LS4wNS0uNjlsMS40OC0xLjE2Yy4xMy0uMTEuMTctLjMuMDgtLjQ1bC0xLjQtMi40MmMtLjA5LS4xNS0uMjctLjIxLS40My0uMTVsLTEuNzQuN2MtLjM2LS4yOC0uNzUtLjUxLTEuMTgtLjY5bC0uMjYtMS44NWEuMzY0LjM2NCAwIDAgMC0uMzUtLjI5aC0yLjhjLS4xNyAwLS4zMi4xMy0uMzUuM0w2LjggNC4xNWMtLjQyLjE4LS44Mi40MS0xLjE4LjY5bC0xLjc0LS43Yy0uMTYtLjA2LS4zNCAwLS40My4xNWwtMS40IDIuNDJjLS4wOS4xNS0uMDUuMzQuMDguNDVsMS40OCAxLjE2Yy0uMDMuMjItLjA1LjQ1LS4wNS42OHMuMDIuNDYuMDUuNjlsLTEuNDggMS4xNmMtLjEzLjExLS4xNy4zLS4wOC40NWwxLjQgMi40MmMuMDkuMTUuMjcuMjEuNDMuMTVsMS43NC0uN2MuMzYuMjguNzUuNTEgMS4xOC42OWwuMjYgMS44NWMuMDMuMTYuMTguMjkuMzUuMjloMi44Yy4xNyAwIC4zMi0uMTMuMzUtLjNsLjI2LTEuODVjLjQyLS4xOC44Mi0uNDEgMS4xOC0uNjlsMS43NC43Yy4xNi4wNi4zNCAwIC40My0uMTV6TTguODEgMTFjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyek0yMS45MiAxOC42N2wtLjk2LS43NGMuMDItLjE0LjA0LS4yOS4wNC0uNDQgMC0uMTUtLjAxLS4zLS4wNC0uNDRsLjk1LS43NGMuMDgtLjA3LjExLS4xOS4wNS0uMjlsLS45LTEuNTVjLS4wNS0uMS0uMTctLjEzLS4yOC0uMWwtMS4xMS40NWMtLjIzLS4xOC0uNDgtLjMzLS43Ni0uNDRsLS4xNy0xLjE4YS4yMTYuMjE2IDAgMCAwLS4yMS0uMmgtMS43OWMtLjExIDAtLjIxLjA4LS4yMi4xOWwtLjE3IDEuMThjLS4yNy4xMi0uNTMuMjYtLjc2LjQ0bC0xLjExLS40NWEuMjMuMjMgMCAwIDAtLjI4LjFsLS45IDEuNTVjLS4wNS4xLS4wNC4yMi4wNS4yOWwuOTUuNzRhMy4xNDUgMy4xNDUgMCAwIDAgMCAuODhsLS45NS43NGMtLjA4LjA3LS4xMS4xOS0uMDUuMjlsLjkgMS41NWMuMDUuMS4xNy4xMy4yOC4xbDEuMTEtLjQ1Yy4yMy4xOC40OC4zMy43Ni40NGwuMTcgMS4xOGMuMDIuMTEuMTEuMTkuMjIuMTloMS43OWMuMTEgMCAuMjEtLjA4LjIyLS4xOWwuMTctMS4xOGMuMjctLjEyLjUzLS4yNi43NS0uNDRsMS4xMi40NWMuMS4wNC4yMiAwIC4yOC0uMWwuOS0xLjU1Yy4wNi0uMDkuMDMtLjIxLS4wNS0uMjh6bS00LjI5LjE2YTEuMzUgMS4zNSAwIDEgMSAuMDAxLTIuNzAxIDEuMzUgMS4zNSAwIDAgMS0uMDAxIDIuNzAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb2RlT2ZUcmF2ZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS4zMSAxOC45Yy0uOTYgMS0yLjA2IDIuMDMtMy4zMSAzLjEtNS4zMy00LjU1LTgtOC40OC04LTExLjhDNCA1LjIyIDcuOCAyIDEyIDJjNCAwIDcuNjQgMi45MiA3Ljk3IDcuNWgzLjUzTDE5IDE0bC00LjUtNC41aDMuNDdDMTcuNjUgNi4yNCAxNS4xMyA0IDEyIDRjLTMuMzUgMC02IDIuNTctNiA2LjIgMCAyLjM0IDEuOTUgNS40NCA2IDkuMTQuNjQtLjU5IDEuMjMtMS4xNiAxLjc3LTEuNzFhMi41IDIuNSAwIDAgMS0uMjctMS4xMiAyLjUgMi41IDAgMCAxIDUgMCAyLjQ5MiAyLjQ5MiAwIDAgMS0zLjE5IDIuMzl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vbmV5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDhoMnY4SDV6bTcgMEg5Yy0uNTUgMC0xIC40NS0xIDF2NmMwIC41NS40NSAxIDEgMWgzYy41NSAwIDEtLjQ1IDEtMVY5YzAtLjU1LS40NS0xLTEtMXptLTEgNmgtMXYtNGgxdjR6bTctNmgtM2MtLjU1IDAtMSAuNDUtMSAxdjZjMCAuNTUuNDUgMSAxIDFoM2MuNTUgMCAxLS40NSAxLTFWOWMwLS41NS0uNDUtMS0xLTF6bS0xIDZoLTF2LTRoMXY0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk00IDZoMTZ2MTJINHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA0djE2aDIwVjRIMnptMiAxNFY2aDE2djEySDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vcGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgN2MwLTEuMS0uOS0yLTItMmgtM3YyaDN2Mi42NUwxMy41MiAxNEgxMFY5SDZjLTIuMjEgMC00IDEuNzktNCA0djNoMmMwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zaDQuNDhMMTkgMTAuMzVWN3pNNyAxN2MtLjU1IDAtMS0uNDUtMS0xaDJjMCAuNTUtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDZoNXYySDV6TTE5IDEzYy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3ptMCA0Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vc3F1ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgOGgxMGMuMjkgMCAuNTcuMDYuODQuMTMuMDktLjMzLjE2LS42Ny4xNi0xLjA0IDAtMS4zMS0uNjUtMi41My0xLjc0LTMuMjVMMTIgMSA3Ljc0IDMuODRBMy44ODcgMy44ODcgMCAwIDAgNiA3LjA5YzAgLjM3LjA3LjcxLjE2IDEuMDQuMjctLjA3LjU1LS4xMy44NC0uMTN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0IDdjMC0xLjEtMi0zLTItM3MtMiAxLjktMiAzYzAgLjc0LjQgMS4zOCAxIDEuNzJWMTNoLTJ2LTJjMC0xLjEtLjktMi0yLTJIN2MtMS4xIDAtMiAuOS0yIDJ2MkgzVjguNzJjLjYtLjM0IDEtLjk4IDEtMS43MiAwLTEuMS0yLTMtMi0zUzAgNS45IDAgN2MwIC43NC40IDEuMzggMSAxLjcyVjIxaDl2LTRjMC0xLjEuOS0yIDItMnMyIC45IDIgMnY0aDlWOC43MmMuNi0uMzQgMS0uOTggMS0xLjcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb3ZpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS43MSA5LjcxIDIyIDEyVjZoLTZsMi4yOSAyLjI5LTQuMTcgNC4xN2EuOTk2Ljk5NiAwIDAgMS0xLjQxIDBsLTEuMTctMS4xN2EzIDMgMCAwIDAtNC4yNCAwTDIgMTYuNTkgMy40MSAxOGw1LjI5LTUuMjlhLjk5Ni45OTYgMCAwIDEgMS40MSAwbDEuMTcgMS4xN2EzIDMgMCAwIDAgNC4yNCAwbDQuMTktNC4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTXVsdGlwbGVTdG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcgNCA0IDQtNCA0VjloLTRWN2g0VjR6bS03IDNjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXpNNiA3Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTEgMTBoNHYtMkg3di0zbC00IDQgNCA0di0zem03IDBjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptNCAwYy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE11c2V1bSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDExVjlMMTIgMiAyIDl2MmgydjlIMnYyaDIwdi0yaC0ydi05aDJ6bS02IDdoLTJ2LTRsLTIgMy0yLTN2NEg4di03aDJsMiAzIDItM2gydjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE15TG9jYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA4Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptOC45NCAzQTguOTk0IDguOTk0IDAgMCAwIDEzIDMuMDZWMWgtMnYyLjA2QTguOTk0IDguOTk0IDAgMCAwIDMuMDYgMTFIMXYyaDIuMDZBOC45OTQgOC45OTQgMCAwIDAgMTEgMjAuOTRWMjNoMnYtMi4wNkE4Ljk5NCA4Ljk5NCAwIDAgMCAyMC45NCAxM0gyM3YtMmgtMi4wNnpNMTIgMTljLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROYXZpZ2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMiA0LjUgMjAuMjlsLjcxLjcxTDEyIDE4bDYuNzkgMyAuNzEtLjcxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROZWFyTWVEaXNhYmxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDYuMzQgMjEgM2wtMy4zNCA5TDEyIDYuMzR6bTEwLjYxIDEzLjQ0TDQuMjIgMS4zOSAyLjgxIDIuODFsNS4wNyA1LjA3TDMgOS42OXYxLjQxbDcuMDcgMi44M0wxMi45IDIxaDEuNDFsMS44MS00Ljg4IDUuMDcgNS4wNyAxLjQyLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5lYXJNZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMyAzIDEwLjUzdi45OGw2Ljg0IDIuNjVMMTIuNDggMjFoLjk4TDIxIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5pZ2h0bGlmZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgNWgxNGwtNiA5djRoMnYySDV2LTJoMnYtNEwxIDV6bTkuMSA0IDEuNC0ySDQuNDlsMS40IDJoNC4yMXpNMTcgNWg1djNoLTN2OWMwIDEuNjYtMS4zNCAzLTMgM3MtMy0xLjM0LTMtMyAxLjM0LTMgMy0zYTMgMyAwIDAgMSAxIC4xN1Y1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb0NyYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguOTIgOS4wMUMxOC43MiA4LjQyIDE4LjE2IDggMTcuNSA4aC0xMWMtLjY2IDAtMS4yMS40Mi0xLjQyIDEuMDFMMyAxNXY4YzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaDEydjFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LThsLTIuMDgtNS45OXpNNi44NSAxMGgxMC4yOWwxLjA0IDNINS44MWwxLjA0LTN6TTYgMTcuNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNVM4LjMzIDE5IDcuNSAxOSA2IDE4LjMzIDYgMTcuNXptOSAwYzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNS0xLjUtLjY3LTEuNS0xLjV6TTEyIDYuMzYgOS4xNyAzLjU0bDEuNDEtMS40MUwxMiAzLjU0IDE1LjU0IDBsMS40MSAxLjQxTDEyIDYuMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vTWVhbHNPdWxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxNFY2YzAtMS43NiAyLjI0LTQgNS00djE2LjE3bC0yLTJWMTRoLTN6bTQuNDkgOS4zMUwxMC4wMiAxMi44NWMtLjMzLjA5LS42Ni4xNS0xLjAyLjE1djlIN3YtOWMtMi4yMSAwLTQtMS43OS00LTRWNS44M0wuNjkgMy41MSAyLjEgMi4xbDE5LjggMTkuOC0xLjQxIDEuNDF6TTYuMTcgOSA1IDcuODNWOWgxLjE3ek05IDJIN3YyLjE3bDIgMlYyem00IDdWMmgtMnY2LjE3bDEuODUgMS44NWMuMDktLjMzLjE1LS42Ni4xNS0xLjAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb01lYWxzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTRWNmMwLTEuNzYgMi4yNC00IDUtNHYxNi4xN2wtMi0yVjE0aC0zem00LjQ5IDkuMzFMMTAuMDIgMTIuODVjLS4zMy4wOS0uNjYuMTUtMS4wMi4xNXY5SDd2LTljLTIuMjEgMC00LTEuNzktNC00VjUuODNMLjY5IDMuNTEgMi4xIDIuMWwxOS44IDE5LjgtMS40MSAxLjQxek02LjE3IDkgNSA3LjgzVjloMS4xN3pNOSAySDd2Mi4xN2wyIDJWMnptNCA3VjJoLTJ2Ni4xN2wxLjg1IDEuODVjLjA5LS4zMy4xNS0uNjYuMTUtMS4wMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm9UcmFuc2ZlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjE5IDIxLjE5IDIuODEgMi44MSAxLjM5IDQuMjIgNCA2LjgzVjE2YzAgLjg4LjM5IDEuNjcgMSAyLjIyVjIwYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaDh2MWMwIC41NS40NSAxIDEgMWgxYy4wNSAwIC4wOS0uMDIuMTQtLjAzbDEuNjQgMS42NCAxLjQxLTEuNDJ6TTcuNSAxN2MtLjgzIDAtMS41LS42Ny0xLjUtMS41UzYuNjcgMTQgNy41IDE0czEuNS42NyAxLjUgMS41UzguMzMgMTcgNy41IDE3ek02IDExVjguODNMOC4xNyAxMUg2em0yLjgzLTVMNS43OCAyLjk1QzcuMjQgMi4xNiA5LjQ4IDIgMTIgMmM0LjQyIDAgOCAuNSA4IDR2MTBjMCAuMzUtLjA4LjY3LS4xOS45OEwxMy44MyAxMUgxOFY2SDguODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vdExpc3RlZExvY2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzguMTQgMiA1IDUuMTQgNSA5YzAgNS4yNSA3IDEzIDcgMTNzNy03Ljc1IDctMTNjMC0zLjg2LTMuMTQtNy03LTd6bS44OCAxMy43NWgtMS43NVYxNGgxLjc1djEuNzV6bTAtMi44N2gtMS43NWMwLTIuODQgMi42Mi0yLjYyIDIuNjItNC4zOCAwLS45Ni0uNzktMS43NS0xLjc1LTEuNzVzLTEuNzUuNzktMS43NSAxLjc1SDguNUM4LjUgNi41NyAxMC4wNyA1IDEyIDVzMy41IDEuNTcgMy41IDMuNWMwIDIuMTktMi42MiAyLjQxLTIuNjIgNC4zOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEyaDJMMTIgMiA1LjA1IDEySDdsLTMuOSA2aDYuOTJ2NGgzLjk2di00SDIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZWRhbEJpa2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOC4xOCAxMC0xLjctNC42OEEyLjAwOCAyLjAwOCAwIDAgMCAxNC42IDRIMTJ2MmgyLjZsMS40NiA0aC00LjgxbC0uMzYtMUgxMlY3SDd2MmgxLjc1bDEuODIgNUg5LjljLS40NC0yLjIzLTIuMzEtMy44OC00LjY1LTMuOTlDMi40NSA5Ljg3IDAgMTIuMiAwIDE1YzAgMi44IDIuMiA1IDUgNSAyLjQ2IDAgNC40NS0xLjY5IDQuOS00aDQuMmMuNDQgMi4yMyAyLjMxIDMuODggNC42NSAzLjk5IDIuOC4xMyA1LjI1LTIuMTkgNS4yNS01IDAtMi44LTIuMi01LTUtNWgtLjgyek03LjgyIDE2Yy0uNCAxLjE3LTEuNDkgMi0yLjgyIDItMS42OCAwLTMtMS4zMi0zLTNzMS4zMi0zIDMtM2MxLjMzIDAgMi40Mi44MyAyLjgyIDJINXYyaDIuODJ6bTYuMjgtMmgtMS40bC0uNzMtMkgxNWMtLjQ0LjU4LS43NiAxLjI1LS45IDJ6bTQuOSA0Yy0xLjY4IDAtMy0xLjMyLTMtMyAwLS45My40MS0xLjczIDEuMDUtMi4yOGwuOTYgMi42NCAxLjg4LS42OC0uOTctMi42N2MuMDMgMCAuMDYtLjAxLjA5LS4wMSAxLjY4IDAgMyAxLjMyIDMgM3MtMS4zMyAzLTMuMDEgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVyc29uUGluQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM4LjE0IDIgNSA1LjE0IDUgOWMwIDUuMjUgNyAxMyA3IDEzczctNy43NSA3LTEzYzAtMy44Ni0zLjE0LTctNy03em0wIDJhMiAyIDAgMSAxIC4wMDEgNC4wMDFBMiAyIDAgMCAxIDEyIDR6bTAgMTBjLTEuNjcgMC0zLjE0LS44NS00LTIuMTUuMDItMS4zMiAyLjY3LTIuMDUgNC0yLjA1czMuOTguNzMgNCAyLjA1QTQuNzgzIDQuNzgzIDAgMCAxIDEyIDE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZXJzb25QaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYTkgOSAwIDAgMC05IDljMCA0LjE3IDIuODQgNy42NyA2LjY5IDguNjlMMTIgMjJsMi4zMS0yLjMxQzE4LjE2IDE4LjY3IDIxIDE1LjE3IDIxIDExYTkgOSAwIDAgMC05LTl6bTAgMmMxLjY2IDAgMyAxLjM0IDMgM3MtMS4zNCAzLTMgMy0zLTEuMzQtMy0zIDEuMzQtMyAzLTN6bTAgMTQuM2E3LjIgNy4yIDAgMCAxLTYtMy4yMmMuMDMtMS45OSA0LTMuMDggNi0zLjA4IDEuOTkgMCA1Ljk3IDEuMDkgNiAzLjA4YTcuMiA3LjIgMCAwIDEtNiAzLjIyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZXN0Q29udHJvbFJvZGVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjMxIDE3LjM4LTIuMzktMi4xM2MuNTItMi4zNi0xLjM2LTQuMjUtMy40Mi00LjI1LTEuMTYgMC0zLjUuOS0zLjUgMy41IDAgLjk3LjM5IDEuODQgMS4wMyAyLjQ3bC0uNzEuNzFBNC40NTcgNC40NTcgMCAwIDEgMTEgMTQuNWMwLTEuNy45Ni0zLjE3IDIuMzUtMy45M2E1IDUgMCAwIDAtMi4yOC0uNTdjLTIuMzggMC00LjM3IDEuNjUtNC45MSAzLjg3QTIuOTk3IDIuOTk3IDAgMCAxIDQgMTFjMC0xLjY2IDEuMzQtMyAzLTNoMi41YTIuNSAyLjUgMCAwIDAgMC01SDhjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDFoMS41Yy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNUg3YTUuMDAyIDUuMDAyIDAgMCAwLTEgOS45di4wM0M2IDE4LjczIDguMjcgMjEgMTEuMDcgMjFoOC44NmMxLjg3IDAgMi44MS0yLjM0IDEuMzgtMy42MnpNMTggMTljLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVzdENvbnRyb2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxNXYtMmgtMy4wN2MtLjA1LS4zOS0uMTItLjc3LS4yMi0xLjE0bDIuNTgtMS40OS0xLTEuNzNMMTYuOTIgMTBjLS4yOC0uNDgtLjYyLS45MS0uOTktMS4yOS4wNC0uMjMuMDctLjQ2LjA3LS43MSAwLS44LS4yNC0xLjU1LS42NS0yLjE4TDE3IDQuMTdsLTEuNDEtMS40MS0xLjcyIDEuNzJjLTEuNjgtLjg5LTMuMS0uMzMtMy43MyAwTDguNDEgMi43NiA3IDQuMTdsMS42NSAxLjY1QTMuOTkgMy45OSAwIDAgMCA4IDhjMCAuMjUuMDMuNDguMDcuNzItLjM3LjM4LS43MS44MS0uOTkgMS4yOEw0LjcxIDguNjNsLTEgMS43MyAyLjU4IDEuNDljLS4xLjM3LS4xNy43NS0uMjIgMS4xNEgzdjJoMy4wN2MuMDUuMzkuMTIuNzcuMjIgMS4xNGwtMi41OCAxLjQ5IDEgMS43M0w3LjA4IDE4YzEuMDggMS44MSAyLjg4IDMgNC45MiAzczMuODQtMS4xOSA0LjkyLTNsMi4zNyAxLjM3IDEtMS43My0yLjU4LTEuNDljLjEtLjM3LjE3LS43NS4yMi0xLjE0SDIxem0tOCAyaC0ydi02aDJ2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGluRHJvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDhjMC0zLjMxLTIuNjktNi02LTZTNiA0LjY5IDYgOGMwIDQuNSA2IDExIDYgMTFzNi02LjUgNi0xMXptLTggMGMwLTEuMS45LTIgMi0yczIgLjkgMiAyYTIgMiAwIDEgMS00IDB6TTUgMjB2MmgxNHYtMkg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQbGFjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDOC4xMyAyIDUgNS4xMyA1IDljMCA1LjI1IDcgMTMgNyAxM3M3LTcuNzUgNy0xM2MwLTMuODctMy4xMy03LTctN3ptMCA5LjVhMi41IDIuNSAwIDAgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBsdW1iaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkuMjggNC45My0yLjEyLTIuMTJjLS43OC0uNzgtMi4wNS0uNzgtMi44MyAwTDExLjUgNS42NGwyLjEyIDIuMTIgMi4xMi0yLjEyIDMuNTQgMy41NGEzLjAxMiAzLjAxMiAwIDAgMCAwLTQuMjV6TTUuNDkgMTMuNzdjLjU5LjU5IDEuNTQuNTkgMi4xMiAwbDIuNDctMi40Ny0yLjEyLTIuMTMtMi40NyAyLjQ3Yy0uNTkuNTktLjU5IDEuNTQgMCAyLjEzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNS4wNCA3Ljc2LS43MS43MS0uNzEuNzFMMTAuNDQgNmMtLjU5LS42LTEuNTQtLjYtMi4xMi0uMDFhMS40OSAxLjQ5IDAgMCAwIDAgMi4xMmwzLjE4IDMuMTgtLjcxLjcxLTYuMzYgNi4zNmMtLjc4Ljc4LS43OCAyLjA1IDAgMi44My43OC43OCAyLjA1Ljc4IDIuODMgMEwxNi40NSAxMmEuOTk2Ljk5NiAwIDEgMCAxLjQxLTEuNDFsLTIuODItMi44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmFpbHdheUFsZXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyA4YTcgNyAwIDAgMC0xMS45NS00Ljk1QTMzLjggMzMuOCAwIDAgMCA5IDNjLTQuNDIgMC04IC41LTggNHYxMC41QTMuNSAzLjUgMCAwIDAgNC41IDIxTDMgMjIuNXYuNWgxMnYtLjVMMTMuNSAyMWEzLjUgMy41IDAgMCAwIDMuNS0zLjV2LTIuNThBNyA3IDAgMCAwIDIzIDh6TTMgMTJWN2g2LjA4YTYuOTYgNi45NiAwIDAgMCAxLjE4IDVIM3ptNiA3Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnptNy43MS02LjA2LS4yLjAzTDE2IDEzbC0uNDctLjAyLS4xNi0uMDItLjI5LS4wNC0uMi0uMDQtLjIyLS4wNmExLjU1IDEuNTUgMCAwIDEtLjIzLS4wN2wtLjEzLS4wNUE0Ljk5IDQuOTkgMCAwIDEgMTEuMSA3Yy4wNC0uMTkuMDktLjM3LjE1LS41NGwuMDUtLjE0LjE1LS4zOC4wNy0uMTUuMi0uMzYuMDctLjEyLjMtLjQyLjAyLS4wMmMuMjQtLjMuNTItLjU3LjgyLS44MWwuMDEtLjAxLjQ2LS4zMi4wMy0uMDJBNS4yNSA1LjI1IDAgMCAxIDE2IDNhNSA1IDAgMCAxIC43MSA5Ljk0ek0xNSA0aDJ2NWgtMnptMCA2aDJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmFtZW5EaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDZIOFY0LjY1bDEtLjEyVjZ6bTAgNkg4VjdoMXY1ek02IDdoMXY1SDZWN3ptMC0yLjEyIDEtLjEyVjZINlY0Ljg4ek0yMiAzVjJMNSA0djhIMmMwIDMuNjkgMi40NyA2Ljg2IDYgOC4yNVYyMmg4di0xLjc1YzMuNTMtMS4zOSA2LTQuNTYgNi04LjI1SDEwVjdoMTJWNkgxMFY0LjQxTDIyIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJhbXBMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMjFoLTJWNi44M0w5LjQxIDguNDEgOCA3bDQtNCA0IDQtMS40MSAxLjQxTDEzIDYuODNWOWMwIDQuMjcgNC4wMyA3LjEzIDYgOC4yN2wtMS40NiAxLjQ2Yy0xLjkxLTEuMTYtMy40NC0yLjUzLTQuNTQtNC4wMlYyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmFtcFJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMjFoMlY2LjgzbDEuNTkgMS41OUwxNiA3bC00LTQtNCA0IDEuNDEgMS40MUwxMSA2LjgzVjljMCA0LjI3LTQuMDMgNy4xMy02IDguMjdsMS40NiAxLjQ2QzguMzcgMTcuNTYgOS45IDE2LjE5IDExIDE0LjdWMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJhdGVSZXZpZXcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0xNS4zNSA2LjQxLTEuNzctMS43N2MtLjItLjItLjUxLS4yLS43MSAwTDYgMTEuNTNWMTRoMi40N2w2Ljg4LTYuODhjLjItLjE5LjItLjUxIDAtLjcxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAyMmw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpNNiAxNHYtMi40N2w2Ljg4LTYuODhjLjItLjIuNTEtLjIuNzEgMGwxLjc3IDEuNzdjLjIuMi4yLjUxIDAgLjcxTDguNDcgMTRINnptMTIgMGgtNy41bDItMkgxOHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZW1vdmVSb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNGgydjloLTJ6TTQgNGgydjE2SDR6TTExIDRoMnY0aC0yek0xMSAxMGgydjRoLTJ6TTExIDE2aDJ2NGgtMnpNMjIuNSAxNi40MSAyMS4wOSAxNSAxOSAxNy4wOSAxNi45MSAxNWwtMS40MSAxLjQxIDIuMDkgMi4wOS0yLjA5IDIuMDlMMTYuOTEgMjIgMTkgMTkuOTEgMjEuMDkgMjJsMS40MS0xLjQxLTIuMDktMi4wOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVzdGF1cmFudE1lbnUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm04LjEgMTMuMzQgMi44My0yLjgzTDMuOTEgMy41YTQuMDA4IDQuMDA4IDAgMCAwIDAgNS42Nmw0LjE5IDQuMTh6bTYuNzgtMS44MWMxLjUzLjcxIDMuNjguMjEgNS4yNy0xLjM4IDEuOTEtMS45MSAyLjI4LTQuNjUuODEtNi4xMi0xLjQ2LTEuNDYtNC4yLTEuMS02LjEyLjgxLTEuNTkgMS41OS0yLjA5IDMuNzQtMS4zOCA1LjI3TDMuNyAxOS44N2wxLjQxIDEuNDFMMTIgMTQuNDFsNi44OCA2Ljg4IDEuNDEtMS40MUwxMy40MSAxM2wxLjQ3LTEuNDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlc3RhdXJhbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA5SDlWMkg3djdINVYySDN2N2MwIDIuMTIgMS42NiAzLjg0IDMuNzUgMy45N1YyMmgyLjV2LTkuMDNDMTEuMzQgMTIuODQgMTMgMTEuMTIgMTMgOVYyaC0ydjd6bTUtM3Y4aDIuNXY4SDIxVjJjLTIuNzYgMC01IDIuMjQtNSA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSb3VuZGFib3V0TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjA4IDhBNiA2IDAgMCAxIDE2IDNjMy4zMSAwIDYgMi42OSA2IDYgMCAyLjk3LTIuMTYgNS40NC01IDUuOTJWMjFoLTJ2LTYuMDljMC0uOTguNzEtMS44IDEuNjctMS45N2EzLjk5OSAzLjk5OSAwIDEgMC00LjYxLTQuNjFjLS4xNy45Ni0uOTkgMS42Ny0xLjk3IDEuNjdINS44M2wxLjU5IDEuNTlMNiAxMyAyIDlsNC00IDEuNDEgMS40MUw1LjgzIDhoNC4yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUm91bmRhYm91dFJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuOTIgOEMxMy40NCA1LjE2IDEwLjk3IDMgOCAzIDQuNjkgMyAyIDUuNjkgMiA5YzAgMi45NyAyLjE2IDUuNDQgNSA1LjkyVjIxaDJ2LTYuMDljMC0uOTgtLjcxLTEuOC0xLjY3LTEuOTdhMy45OTkgMy45OTkgMCAxIDEgNC42MS00LjYxYy4xNy45Ni45OSAxLjY3IDEuOTcgMS42N2g0LjI2bC0xLjU5IDEuNTlMMTggMTNsNC00LTQtNC0xLjQxIDEuNDFMMTguMTcgOGgtNC4yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUm91dGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxNS4xOFY3YzAtMi4yMS0xLjc5LTQtNC00cy00IDEuNzktNCA0djEwYzAgMS4xLS45IDItMiAycy0yLS45LTItMlY4LjgyQzguMTYgOC40IDkgNy4zIDkgNmMwLTEuNjYtMS4zNC0zLTMtM1MzIDQuMzQgMyA2YzAgMS4zLjg0IDIuNCAyIDIuODJWMTdjMCAyLjIxIDEuNzkgNCA0IDRzNC0xLjc5IDQtNFY3YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ2OC4xOEEyLjk5NiAyLjk5NiAwIDAgMCAxOCAyMWMxLjY2IDAgMy0xLjM0IDMtMyAwLTEuMy0uODQtMi40LTItMi44MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUnVuQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMS41IDRjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptMi41IDZjLS43IDAtMi4wMS0uNTQtMi45MS0xLjc2bC0uNDEgMi4zNUwxNCAxNC4wM1YxOGgtMXYtMy41OGwtMS4xMS0xLjIxLS41MiAyLjY0LTMuNzctLjc3LjItLjk4IDIuNzguNTcuOTYtNC44OS0xLjU0LjU3VjEySDlWOS42NWwzLjI4LTEuMjFjLjQ5LS4xOCAxLjAzLjA2IDEuMjYuNTMuODMgMS43IDIuMDUgMi4wMyAyLjQ2IDIuMDN2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2FmZXR5Q2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyIDQgNXY2LjA5YzAgNS4wNSAzLjQxIDkuNzYgOCAxMC45MSA0LjU5LTEuMTUgOC01Ljg2IDgtMTAuOTFWNWwtOC0zem0wIDE1Yy0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDUtMi4yNCA1LTUgNXptMS42NS0yLjY1TDExLjUgMTIuMlY5aDF2Mi43OWwxLjg1IDEuODUtLjcuNzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNhaWxpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxMy41VjJMMyAxMy41aDh6bTEwIDBDMjEgNi41IDE0LjUgMSAxMi41IDFjMCAwIDEgMyAxIDYuNXMtMSA2LTEgNkgyMXptMSAxLjVIMmE2LjIzMyA2LjIzMyAwIDAgMCAyLjMzIDMuNzNjLjY1LS4yNyAxLjIyLS43MiAxLjY3LTEuMjMuNzMuODQgMS44IDEuNSAzIDEuNXMyLjI3LS42NiAzLTEuNWMuNzMuODQgMS44IDEuNSAzIDEuNXMyLjI2LS42NiAzLTEuNWMuNDUuNTEgMS4wMi45NiAxLjY3IDEuMjMgMS4xNy0uODkgMi4wMi0yLjIgMi4zMy0zLjczem0wIDh2LTJoLTFjLTEuMDQgMC0yLjA4LS4zNS0zLTEtMS44MyAxLjMtNC4xNyAxLjMtNiAwLTEuODMgMS4zLTQuMTcgMS4zLTYgMC0uOTEuNjUtMS45NiAxLTMgMUgydjJoMWMxLjAzIDAgMi4wNS0uMjUgMy0uNzUgMS44OSAxIDQuMTEgMSA2IDAgMS44OSAxIDQuMTEgMSA2IDAgLjk1LjUgMS45Ny43NSAzIC43NWgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTYXRlbGxpdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNNSA0Ljk5aDNDOCA2LjY1IDYuNjYgOCA1IDhWNC45OXpNNSAxMnYtMmMyLjc2IDAgNS0yLjI1IDUtNS4wMWgyQzEyIDguODYgOC44NyAxMiA1IDEyem0wIDYgMy41LTQuNSAyLjUgMy4wMUwxNC41IDEybDQuNSA2SDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNjcmVlblJvdGF0aW9uQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNCA3LjU5IDUtNWMuNzgtLjc4IDIuMDUtLjc4IDIuODMgMEwyMC4yNCAxMWgtMi44M0wxMC40IDQgNS40MSA5SDh2MkgyVjVoMnYyLjU5ek0yMCAxOWgydi02aC02djJoMi41OWwtNC45OSA1LTcuMDEtN0gzLjc2bDguNDEgOC40MWMuNzguNzggMi4wNS43OCAyLjgzIDBsNS01VjE5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZXRNZWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuMDUgMTcuNTYtMTcuOTcuOTRMMyAxN2wxNy45OC0uOTQuMDcgMS41ek0yMSAxOS40OEgzdjEuNWgxOHYtMS41ek0yMiA1djdjMCAxLjEtLjkgMi0yIDJINGMtMS4xIDAtMi0uOS0yLTJWNWMwLTEuMS45LTIgMi0yaDE2YzEuMSAwIDIgLjkgMiAyem0tMiAxYy0xLjY4IDAtMy4wNC45OC0zLjIxIDIuMjMtLjY0LS43My0yLjczLTIuNzMtNi41NC0yLjczLTQuNjcgMC02Ljc1IDMtNi43NSAzczIuMDggMyA2Ljc1IDNjMy44MSAwIDUuOS0yIDYuNTQtMi43M0MxNi45NiAxMC4wMiAxOC4zMiAxMSAyMCAxMVY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWducG9zdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDEwaDVsMy0zLTMtM2gtNVYyaC0ydjJINHY2aDd2Mkg2bC0zIDMgMyAzaDV2NGgydi00aDd2LTZoLTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNub3dtb2JpbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxN2MwIC41NS0uNDUgMS0xIDFoLS4xN2wtMi4yLTIuMkMyMC41OCAxNS4zNyAyMiAxNC40IDIyIDEzYzAtMS04LTgtOC04aC0zdjJoMi4yNWwxLjQ1IDEuM0wxMSAxMWwtOS41LTFMMCAxM2w0LjU0IDEuMzYtMy40OSAxLjg4Qy0uNzcgMTcuMjItLjA3IDIwIDIgMjBoNmMyLjIxIDAgNC0xLjc5IDQtNGg0bDIgMmgtM3YyaDZjMS42NiAwIDMtMS4zNCAzLTNoLTJ6TTggMThIMmw1LjI1LTIuODNMMTAgMTZhMiAyIDAgMCAxLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU29zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNSA3aC0zYy0xLjEgMC0yIC45LTIgMnY2YzAgMS4xLjkgMiAyIDJoM2MxLjEgMCAyLS45IDItMlY5YzAtMS4xLS45LTItMi0yem0wIDhoLTNWOWgzdjZ6TTEgMTVoNHYtMkgzYy0xLjEgMC0yLS45LTItMlY5YzAtMS4xLjktMiAyLTJoNHYySDN2MmgyYzEuMSAwIDIgLjkgMiAydjJjMCAxLjEtLjkgMi0yIDJIMXYtMnptMTYgMGg0di0yaC0yYy0xLjEgMC0yLS45LTItMlY5YzAtMS4xLjktMiAyLTJoNHYyaC00djJoMmMxLjEgMCAyIC45IDIgMnYyYzAgMS4xLS45IDItMiAyaC00di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTb3VwS2l0Y2hlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNCA3Yy0uMzQuNTUtLjQuOTctLjQgMS4zOEM2IDkuMTUgNyAxMSA3IDEyYzAgLjk1LS40IDEuNS0uNCAxLjVINS4xcy40LS41NS40LTEuNWMwLTEtMS0yLjg1LTEtMy42MiAwLS40MS4wNi0uODMuNC0xLjM4aDEuNXptNSAwYy0uMzQuNTUtLjQuOTctLjQgMS4zOCAwIC43NyAxIDIuNjIgMSAzLjYyIDAgLjk1LS40IDEuNS0uNCAxLjVoMS41cy40LS41NS40LTEuNWMwLTEtMS0yLjg1LTEtMy42MiAwLS40MS4wNi0uODMuNC0xLjM4aC0xLjV6TTguMTUgN2MtLjM0LjU1LS40Ljk3LS40IDEuMzggMCAuNzcgMSAyLjYzIDEgMy42MiAwIC45NS0uNCAxLjUtLjQgMS41aDEuNXMuNC0uNTUuNC0xLjVjMC0xLTEtMi44NS0xLTMuNjIgMC0uNDEuMDYtLjgzLjQtMS4zOGgtMS41em0xMy4zMi0uNXMuMTMtMS4wNi4xMy0xLjVjMC0xLjY1LTEuMzUtMy0zLTMtMS41NCAwLTIuODEgMS4xNi0yLjk4IDIuNjVMMTQuNTMgMTVINC4wMWMtLjYgMC0xLjA5LjUzLTEgMS4xM0MzLjUzIDE5LjQ2IDYuMzkgMjIgOS43NSAyMmMzLjQ4IDAgNi4zNC0yLjczIDYuNzEtNi4yM0wxNy42MSA0LjljLjA1LS41MS40Ny0uOS45OS0uOS41NSAwIDEgLjQ1IDEgMSAwIC4zLS4xIDEuMjUtLjEgMS4yNWwxLjk3LjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdGFkaXVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA1IDMgN1YzbDQgMnptMTEtMnY0bDQtMi00LTJ6bS03LTF2NGw0LTItNC0yem0tNiA4LjA0YzEuMzguNDkgMy43Ny45NiA3IC45NnM1LjYyLS40NyA3LS45NkMxOSA5Ljg2IDE2LjIyIDkgMTIgOXMtNyAuODYtNyAxLjA0ek0xNSAxN0g5djQuODhjLTQuMDYtLjM5LTctMS41NC03LTIuODh2LTljMC0xLjY2IDQuNDgtMyAxMC0zczEwIDEuMzQgMTAgM3Y5YzAgMS4zNC0yLjk0IDIuNDgtNyAyLjg3VjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdG9yZU1hbGxEaXJlY3RvcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDR2MmgxNlY0em0xIDEwdi0ybC0xLTVINGwtMSA1djJoMXY2aDEwdi02aDR2Nmgydi02aDF6bS05IDRINnYtNGg2djR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN0cmFpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNi44MyA5LjQxIDguNDEgOCA3bDQtNCA0IDQtMS40MSAxLjQxTDEzIDYuODNWMjFoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN0cmVldHZpZXcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi41NiAxNC4zM2MtLjM0LjI3LS41Ni43LS41NiAxLjE3VjIxaDdjMS4xIDAgMi0uOSAyLTJ2LTUuOThjLS45NC0uMzMtMS45NS0uNTItMy0uNTItMi4wMyAwLTMuOTMuNy01LjQ0IDEuODN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMThcIixcImN5XCI6XCI2XCIsXCJyXCI6XCI1XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjUgNmMwLTEuMDguMjctMi4xLjc0LTNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAuNTUuMjMgMS4wNS41OSAxLjQxbDkuODItOS44MkE2LjQzNSA2LjQzNSAwIDAgMSAxMS41IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN1YndheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwdjI0aDI0VjBIMHptMjIgMjJIMlY4Ljg2QzIgNi4wNSAzLjUzIDMuODQgNi4yIDIuOCA4IDIuMDkgMTAuMTQgMiAxMiAyYzEuODYgMCA0IC4wOSA1LjguOEMyMC40NyAzLjg0IDIyIDYuMDUgMjIgOC44NlYyMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNS41XCIsXCJjeVwiOlwiMTZcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4LjVcIixcImN5XCI6XCIxNlwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjAxIDloMTB2NWgtMTB6TTE3LjggMi44QzE2IDIuMDkgMTMuODYgMiAxMiAyYy0xLjg2IDAtNCAuMDktNS44LjhDMy41MyAzLjg0IDIgNi4wNSAyIDguODZWMjJoMjBWOC44NmMwLTIuODEtMS41My01LjAyLTQuMi02LjA2em0uMiAxMy4wOGMwIDEuNDUtMS4xOCAyLjYyLTIuNjMgMi42MmwxLjEzIDEuMTJWMjBIMTVsLTEuNS0xLjVoLTIuODNMOS4xNyAyMEg3LjV2LS4zOGwxLjEyLTEuMTJDNy4xOCAxOC41IDYgMTcuMzIgNiAxNS44OFY5YzAtMi42MyAzLTMgNi0zIDMuMzIgMCA2IC4zOCA2IDN2Ni44OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3luYWdvZ3VlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA4djEzaDR2LTVjMC0xLjEuOS0yIDItMnMyIC45IDIgMnY1aDRWOGwtNi01LTYgNXptNy41IDJjMCAuODMtLjY3IDEuNS0xLjUgMS41cy0xLjUtLjY3LTEuNS0xLjUuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjV6TTMgNWMtMS4xIDAtMiAuOS0yIDJ2MWg0VjdjMC0xLjEtLjktMi0yLTJ6TTEgOWg0djEySDF6TTIxIDVjLTEuMSAwLTIgLjktMiAydjFoNFY3YzAtMS4xLS45LTItMi0yek0xOSA5aDR2MTJoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRha2VvdXREaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNS4yNiAxMWgxMy40OGwtLjY3IDlINS45M2wtLjY3LTl6bTMuNzYtN2g1Ljk1TDE5IDcuMzhsMS41OS0xLjU5TDIyIDcuMjEgMTkuMjEgMTBINC43OUwyIDcuMjEgMy40MSA1LjggNSA3LjM4IDkuMDIgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGF4aUFsZXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyA4QTcgNyAwIDAgMCA5LjY4IDVIN3YySDQuNWExLjUgMS41IDAgMCAwLTEuNDIgMS4wMUwxIDE0djhhMSAxIDAgMCAwIDEgMWgxYTEgMSAwIDAgMCAxLTF2LTFoMTJ2MWExIDEgMCAwIDAgMSAxaDFhMSAxIDAgMCAwIDEtMXYtNy42OEE3LjAxIDcuMDEgMCAwIDAgMjMgOHptLTE4LjUuNWg0LjUzYTYuOTMgNi45MyAwIDAgMCAyLjA4IDQuNUgzbDEuNS00LjV6bTAgOS41YTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzem0xMSAwYTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzem0yLjkzLTUuNjMtLjIxLjExLS4xOC4wOWE0Ljk3IDQuOTcgMCAwIDEtLjQyLjE2bC0uMjIuMDctLjIzLjA2LS4yLjA1YTUgNSAwIDAgMS01Ljk0LTQuNDFBNC4wNyA0LjA3IDAgMCAxIDExIDhsLjAyLS40Ny4wMi0uMTcuMDQtLjI4LjA0LS4yMS4wNS0uMjEuMDctLjI0LjA1LS4xM2E0Ljk5IDQuOTkgMCAwIDEgOS42OSAxLjcgNC45NiA0Ljk2IDAgMCAxLTIuNTUgNC4zOHpNMTUgNGgydjVoLTJ6bTAgNmgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRlbXBsZUJ1ZGRoaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgOS4wMmMwIDEuMDktLjg5IDEuOTgtMS45OCAxLjk4SDQuOThDMy44OSAxMSAzIDEwLjExIDMgOS4wMkgxYzAgMS44NiAxLjI4IDMuNCAzIDMuODRWMjJoNnYtM2MwLTEuMS45LTIgMi0yczIgLjkgMiAydjNoNnYtOS4xNGMuNTUtLjE0IDMtMS4wNCAzLTMuODZsLTIgLjAyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDguODZWMTBoMTJWOC44NmMuNTUtLjE0IDMtMS4wNCAzLTMuODZsLTIgLjAyQzE5IDYuMTEgMTguMTEgNyAxNy4wMiA3SDYuOThDNS44OSA3IDUgNi4xMSA1IDUuMDJIM2MwIDEuODUgMS4yOCAzLjQgMyAzLjg0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxIDguMjUgNmg3LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRlbXBsZUhpbmR1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi42IDExaDEwLjhsLS45LTNoLTl6TTIwIDExdjJINHYtMkgydjExaDh2LTVoNHY1aDhWMTF6TTE1LjkgNiAxNSAzVjFoLTJ2MmgtMi4wM1YxaC0ydjIuMTJMOC4xIDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRlcnJhaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNCA2LTMuNzUgNSAyLjg1IDMuOC0xLjYgMS4yQzkuODEgMTMuNzUgNyAxMCA3IDEwbC02IDhoMjJMMTQgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGhlYXRlckNvbWVkeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTYuNUMyIDE5LjU0IDQuNDYgMjIgNy41IDIyczUuNS0yLjQ2IDUuNS01LjVWMTBIMnY2LjV6bTUuNSAyQzYuMTIgMTguNSA1IDE3LjgzIDUgMTdoNWMwIC44My0xLjEyIDEuNS0yLjUgMS41ek0xMCAxM2MuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0tNSAwYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDN2NmgzdjIuNWMwLS44MyAxLjEyLTEuNSAyLjUtMS41czIuNS42NyAyLjUgMS41aC01djIuODljLjc1LjM4IDEuNi42MSAyLjUuNjEgMy4wNCAwIDUuNS0yLjQ2IDUuNS01LjVWM0gxMXptMyA1LjA4Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMWMwIC41Ni0uNDUgMS0xIDF6bTUgMGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDFjMCAuNTYtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUaXJlUmVwYWlyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggN2ExLjAwMyAxLjAwMyAwIDAgMCAxLjcxLjcxYy40LS40IDEuMDQtMi40NiAxLjA0LTIuNDZzLTIuMDYuNjQtMi40NiAxLjA0Yy0uMTguMTgtLjI5LjQzLS4yOS43MXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMmMtMi43NiAwLTUgMi4yNC01IDUgMCAyLjA1IDEuMjMgMy44MSAzIDQuNThWMTNoMXY1YzAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xdi0yYTMuMDA5IDMuMDA5IDAgMCAwLTQtMi44M1Y1YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoNmMxLjEgMCAyLS45IDItMnYtM2MwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2MmMwIDEuNjUgMS4zNSAzIDMgM3MzLTEuMzUgMy0zdi01aDF2LTEuNDJjMS43Ny0uNzcgMy0yLjUzIDMtNC41OCAwLTIuNzYtMi4yNC01LTUtNXpNNiAxOS41bC0yLTJ2LTIuODNsMiAydjIuODN6bTAtNS0yLTJWOS42N2wyIDJ2Mi44M3ptMC01LTItMlY0LjY3bDIgMlY5LjV6bTQgOC0yIDJ2LTIuODNsMi0ydjIuODN6bTAtNS0yIDJ2LTIuODNsMi0ydjIuODN6bTAtNS0yIDJWNi42N2wyLTJWNy41em05IDIuNWMtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtMyAzIDEuMzQgMyAzLTEuMzQgMy0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRyYWZmaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxMGgtM1Y4Ljg2YzEuNzItLjQ1IDMtMiAzLTMuODZoLTNWNGMwLS41NS0uNDUtMS0xLTFIOGMtLjU1IDAtMSAuNDUtMSAxdjFINGMwIDEuODYgMS4yOCAzLjQxIDMgMy44NlYxMEg0YzAgMS44NiAxLjI4IDMuNDEgMyAzLjg2VjE1SDRjMCAxLjg2IDEuMjggMy40MSAzIDMuODZWMjBjMCAuNTUuNDUgMSAxIDFoOGMuNTUgMCAxLS40NSAxLTF2LTEuMTRjMS43Mi0uNDUgMy0yIDMtMy44NmgtM3YtMS4xNGMxLjcyLS40NSAzLTIgMy0zLjg2em0tOCA5YTIgMiAwIDEgMS0uMDAxLTMuOTk5QTIgMiAwIDAgMSAxMiAxOXptMC01YTIgMiAwIDEgMS0uMDAxLTMuOTk5QTIgMiAwIDAgMSAxMiAxNHptMC01YTIgMiAwIDAgMS0yLTJjMC0xLjExLjg5LTIgMi0yYTIgMiAwIDEgMSAwIDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRyYWluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYy00IDAtOCAuNS04IDR2OS41QzQgMTcuNDMgNS41NyAxOSA3LjUgMTlMNiAyMC41di41aDIuMjNsMi0ySDE0bDIgMmgydi0uNUwxNi41IDE5YzEuOTMgMCAzLjUtMS41NyAzLjUtMy41VjZjMC0zLjUtMy41OC00LTgtNHpNNy41IDE3Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNi42NyAxNCA3LjUgMTRzMS41LjY3IDEuNSAxLjVTOC4zMyAxNyA3LjUgMTd6bTMuNS03SDZWNmg1djR6bTIgMFY2aDV2NGgtNXptMy41IDdjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUcmFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxNi45NFY4LjVjMC0yLjc5LTIuNjEtMy40LTYuMDEtMy40OWwuNzYtMS41MUgxN1YySDd2MS41aDQuNzVsLS43NiAxLjUyQzcuODYgNS4xMSA1IDUuNzMgNSA4LjV2OC40NGMwIDEuNDUgMS4xOSAyLjY2IDIuNTkgMi45N0w2IDIxLjV2LjVoMi4yM2wyLTJIMTRsMiAyaDJ2LS41TDE2LjUgMjBoLS4wOGMxLjY5IDAgMi41OC0xLjM3IDIuNTgtMy4wNnptLTcgMS41NmMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6bTUtNC41SDdWOWgxMHY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUcmFuc2ZlcldpdGhpbkFTdGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNDkgMTUuNXYtMS43NUwxNCAxNi4yNWwyLjQ5IDIuNVYxN0gyMnYtMS41em0zLjAyIDQuMjVIMTR2MS41aDUuNTFWMjNMMjIgMjAuNSAxOS41MSAxOHpNOS41IDUuNWMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6TTUuNzUgOC45IDMgMjNoMi4xbDEuNzUtOEw5IDE3djZoMnYtNy41NUw4Ljk1IDEzLjRsLjYtM0MxMC44NSAxMiAxMi44IDEzIDE1IDEzdi0yYy0xLjg1IDAtMy40NS0xLTQuMzUtMi40NWwtLjk1LTEuNkM5LjM1IDYuMzUgOC43IDYgOCA2Yy0uMjUgMC0uNS4wNS0uNzUuMTVMMiA4LjNWMTNoMlY5LjY1bDEuNzUtLjc1XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRyYW5zaXRFbnRlcmV4aXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxOEg2VjhoM3Y0Ljc3TDE1Ljk4IDYgMTggOC4wMyAxMS4xNSAxNUgxNnYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUcmlwT3JpZ2luIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTJDMiA2LjQ4IDYuNDggMiAxMiAyczEwIDQuNDggMTAgMTAtNC40OCAxMC0xMCAxMFMyIDE3LjUyIDIgMTJ6bTEwIDZjMy4zMSAwIDYtMi42OSA2LTZzLTIuNjktNi02LTYtNiAyLjY5LTYgNiAyLjY5IDYgNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUdXJuTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTYuODMgMTEgMS41OSAxLjU5TDcgMTRsLTQtNCA0LTQgMS40MSAxLjQxTDYuODMgOUgxNWMxLjEgMCAyIC45IDIgMnY5aC0ydi05SDYuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFR1cm5SaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3LjE3IDExLTEuNTkgMS41OUwxNyAxNGw0LTQtNC00LTEuNDEgMS40MUwxNy4xNyA5SDljLTEuMSAwLTIgLjktMiAydjloMnYtOWg4LjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUdXJuU2hhcnBMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA2LjgzIDQuNDEgOC40MSAzIDdsNC00IDQgNC0xLjQxIDEuNDFMOCA2LjgzVjEzaDhjMS4xIDAgMiAuOSAyIDJ2NmgtMnYtNkg4Yy0xLjEgMC0yLS45LTItMlY2LjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUdXJuU2hhcnBSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4IDYuODMgMS41OSAxLjU5TDIxIDdsLTQtNC00IDQgMS40MSAxLjQxTDE2IDYuODNWMTNIOGMtMS4xIDAtMiAuOS0yIDJ2Nmgydi02aDhjMS4xIDAgMi0uOSAyLTJWNi44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHVyblNsaWdodExlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS42NiA2VjRINnY1LjY2aDJWNy40MWw1IDVWMjBoMnYtNy41OGMwLS41My0uMjEtMS4wNC0uNTktMS40MWwtNS01aDIuMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFR1cm5TbGlnaHRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjM0IDZWNEgxOHY1LjY2aC0yVjcuNDFsLTUgNVYyMEg5di03LjU4YzAtLjUzLjIxLTEuMDQuNTktMS40MWw1LTVoLTIuMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFR3b1doZWVsZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxMWMtLjE4IDAtLjM2LjAzLS41My4wNUwxNy40MSA5SDIwVjZsLTMuNzIgMS44NkwxMy40MSA1SDl2MmgzLjU5bDIgMkgxMWwtNCAyLTItMkgwdjJoNGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00bDIgMmgzbDMuNDktNi4xIDEuMDEgMS4wMWMtLjkxLjczLTEuNSAxLjg0LTEuNSAzLjA5IDAgMi4yMSAxLjc5IDQgNCA0czQtMS43OSA0LTQtMS43OS00LTQtNHpNNCAxN2MtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6bTE2IDBjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRVVHVybkxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA5djEyaC0yVjljMC0yLjIxLTEuNzktNC00LTRTOCA2Ljc5IDggOXY0LjE3bDEuNTktMS41OUwxMSAxM2wtNCA0LTQtNCAxLjQxLTEuNDFMNiAxMy4xN1Y5YzAtMy4zMSAyLjY5LTYgNi02czYgMi42OSA2IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFVUdXJuUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDl2MTJoMlY5YzAtMi4yMSAxLjc5LTQgNC00czQgMS43OSA0IDR2NC4xN2wtMS41OS0xLjU5TDEzIDEzbDQgNCA0LTQtMS40MS0xLjQxTDE4IDEzLjE3VjljMC0zLjMxLTIuNjktNi02LTZTNiA1LjY5IDYgOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVm9sdW50ZWVyQWN0aXZpc20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDExaDR2MTFIMXpNMTYgMy4yNUMxNi42NSAyLjQ5IDE3LjY2IDIgMTguNyAyIDIwLjU1IDIgMjIgMy40NSAyMiA1LjNjMCAyLjI3LTIuOTEgNC45LTYgNy43LTMuMDktMi44MS02LTUuNDQtNi03LjdDMTAgMy40NSAxMS40NSAyIDEzLjMgMmMxLjA0IDAgMi4wNS40OSAyLjcgMS4yNXpNMjAgMTdoLTdsLTIuMDktLjczLjMzLS45NEwxMyAxNmgyLjgyYy42NSAwIDEuMTgtLjUzIDEuMTgtMS4xOCAwLS40OS0uMzEtLjkzLS43Ny0xLjExTDguOTcgMTFIN3Y5LjAyTDE0IDIybDguMDEtM2MtLjAxLTEuMS0uOS0yLTIuMDEtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2FyZWhvdXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMjFWN0wxMiAzIDIgN3YxNGg1di05aDEwdjloNXptLTExLTJIOXYyaDJ2LTJ6bTItM2gtMnYyaDJ2LTJ6bTIgM2gtMnYyaDJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdpbmVCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDN2NmMwIDIuOTcgMi4xNiA1LjQzIDUgNS45MVYxOUg4djJoOHYtMmgtM3YtNC4wOWMyLjg0LS40OCA1LTIuOTQgNS01LjkxVjNINnptMTAgNUg4VjVoOHYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXcm9uZ0xvY2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTBWMy4yNmMtLjY1LS4xNy0xLjMyLS4yNi0yLS4yNi00LjIgMC04IDMuMjItOCA4LjIgMCAzLjMyIDIuNjcgNy4yNSA4IDExLjggNS4zMy00LjU1IDgtOC40OCA4LTExLjggMC0uNDEtLjA0LS44MS0uMDktMS4ySDE0em0tMiAzYy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIuNTQgMi44OC0xLjQyLTEuNDJMMTkgMy41OWwtMi4xMi0yLjEzLTEuNDIgMS40MkwxNy41OSA1bC0yLjEzIDIuMTIgMS40MiAxLjQyTDE5IDYuNDFsMi4xMiAyLjEzIDEuNDItMS40MkwyMC40MSA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRab29tSW5NYXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDlWM0g3djIuNTlMMy45MSAyLjUgMi41IDMuOTEgNS41OSA3SDN2Mmg2em0xMiAwVjdoLTIuNTlsMy4wOS0zLjA5LTEuNDEtMS40MUwxNyA1LjU5VjNoLTJ2Nmg2ek0zIDE1djJoMi41OUwyLjUgMjAuMDlsMS40MSAxLjQxTDcgMTguNDFWMjFoMnYtNkgzem0xMiAwdjZoMnYtMi41OWwzLjA5IDMuMDkgMS40MS0xLjQxTDE4LjQxIDE3SDIxdi0yaC02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRab29tT3V0TWFwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUgMyAyLjMgMi4zLTIuODkgMi44NyAxLjQyIDEuNDJMMTguNyA2LjcgMjEgOVYzaC02ek0zIDlsMi4zLTIuMyAyLjg3IDIuODkgMS40Mi0xLjQyTDYuNyA1LjMgOSAzSDN2NnptNiAxMi0yLjMtMi4zIDIuODktMi44Ny0xLjQyLTEuNDJMNS4zIDE3LjMgMyAxNXY2aDZ6bTEyLTYtMi4zIDIuMy0yLjg3LTIuODktMS40MiAxLjQyIDIuODkgMi44N0wxNSAyMWg2di02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZGRIb21lV29yayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDExLjY4VjExTDggNmwtNyA1djEwaDV2LTZoNHY2aDEuNjhjLS40My0uOTEtLjY4LTEuOTItLjY4LTMgMC0yLjc5IDEuNjQtNS4xOSA0LTYuMzJ6TTIzIDEzLjExVjNIMTB2MS45N2w3IDV2MS4xMWMuMzMtLjA1LjY2LS4wOCAxLS4wOCAxLjk2IDAgMy43My44MSA1IDIuMTF6TTE3IDdoMnYyaC0yVjd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzIDE4YzAtMi43Ni0yLjI0LTUtNS01cy01IDIuMjQtNSA1IDIuMjQgNSA1IDUgNS0yLjI0IDUtNXptLTUuNSAzdi0yLjVIMTV2LTFoMi41VjE1aDF2Mi41SDIxdjFoLTIuNVYyMWgtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXBwU2V0dGluZ3NBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS44MSAxMi43NC0uODItLjYzdi0uMjJsLjgtLjYzYy4xNi0uMTIuMi0uMzQuMS0uNTFsLS44NS0xLjQ4YS4zOTUuMzk1IDAgMCAwLS4zNS0uMmMtLjA1IDAtLjEuMDEtLjE1LjAzbC0uOTUuMzhjLS4wOC0uMDUtLjExLS4wNy0uMTktLjExbC0uMTUtMS4wMWEuNDA4LjQwOCAwIDAgMC0uNC0uMzZoLTEuNzFjLS4yIDAtLjM3LjE1LS40LjM0bC0uMTQgMS4wMWMtLjAzLjAyLS4wNy4wMy0uMS4wNWwtLjA5LjA2LS45NS0uMzhhLjQwMS40MDEgMCAwIDAtLjUuMTdsLS44NSAxLjQ4Yy0uMS4xNy0uMDYuMzkuMS41MWwuOC42M3YuMjNsLS44LjYzYS4zOS4zOSAwIDAgMC0uMS41MWwuODUgMS40OGMuMDcuMTMuMjEuMi4zNS4yLjA1IDAgLjEtLjAxLjE1LS4wM2wuOTUtLjM3Yy4wOC4wNS4xMi4wNy4yLjExbC4xNSAxLjAxYy4wMy4yLjIuMzQuNC4zNGgxLjcxYy4yIDAgLjM3LS4xNS40LS4zNGwuMTUtMS4wMWMuMDMtLjAyLjA3LS4wMy4xLS4wNWwuMDktLjA2Ljk1LjM4YS40MDEuNDAxIDAgMCAwIC41LS4xN2wuODUtMS40OGEuMzkuMzkgMCAwIDAtLjEtLjUxek0xOCAxMy41Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpNMTcgMTdoMnY0YzAgMS4xLS45IDItMiAySDdjLTEuMSAwLTItLjktMi0yVjNjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMnY0aC0yVjZIN3YxMmgxMHYtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXBwc091dGFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgOGg0VjRINHY0em02IDEyaDR2LTRoLTR2NHptLTYgMGg0di00SDR2NHptMC02aDR2LTRINHY0em02IDBoNHYtNGgtNHY0em02IDZoNHYtNGgtNHY0em0zLTIwYy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXptLjUgOGgtMVY3aDF2MXptMC0yaC0xVjJoMXY0ek0xNiAxNGg0di0yLjA3Yy0uMzMuMDUtLjY2LjA3LTEgLjA3LTEuMDcgMC0yLjA5LS4yNC0zLS42OFYxNHpNMTAgNHY0aDIuNjhjLS40NC0uOTEtLjY4LTEuOTMtLjY4LTMgMC0uMzQuMDItLjY3LjA3LTFIMTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFwcHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDhoNFY0SDR2NHptNiAxMmg0di00aC00djR6bS02IDBoNHYtNEg0djR6bTAtNmg0di00SDR2NHptNiAwaDR2LTRoLTR2NHptNi0xMHY0aDRWNGgtNHptLTYgNGg0VjRoLTR2NHptNiA2aDR2LTRoLTR2NHptMCA2aDR2LTRoLTR2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXJyb3dCYWNrSW9zTmV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNzcgMy43NyAxNiAyIDYgMTJsMTAgMTAgMS43Ny0xLjc3TDkuNTQgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFycm93QmFja0lvcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjY3IDMuODcgOS45IDIuMSAwIDEybDkuOSA5LjkgMS43Ny0xLjc3TDMuNTQgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFycm93QmFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDExSDcuODNsNS41OS01LjU5TDEyIDRsLTggOCA4IDggMS40MS0xLjQxTDcuODMgMTNIMjB2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFycm93RG93bndhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwIDEyLTEuNDEtMS40MUwxMyAxNi4xN1Y0aC0ydjEyLjE3bC01LjU4LTUuNTlMNCAxMmw4IDggOC04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBcnJvd0Ryb3BEb3duQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxMi00LTRoOGwtNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBcnJvd0Ryb3BEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNyAxMCA1IDUgNS01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBcnJvd0Ryb3BVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTcgMTQgNS01IDUgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXJyb3dGb3J3YXJkSW9zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjIzIDIwLjIzIDggMjJsMTAtMTBMOCAyIDYuMjMgMy43NyAxNC40NiAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXJyb3dGb3J3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgNC0xLjQxIDEuNDFMMTYuMTcgMTFINHYyaDEyLjE3bC01LjU4IDUuNTlMMTIgMjBsOC04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBcnJvd0xlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0IDctNSA1IDUgNVY3elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0yNCAwdjI0SDBWMGgyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXJyb3dSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAgMTcgNS01LTUtNXYxMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAyNFYwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFycm93VXB3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm00IDEyIDEuNDEgMS40MUwxMSA3LjgzVjIwaDJWNy44M2w1LjU4IDUuNTlMMjAgMTJsLTgtOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFzc2lzdGFudERpcmVjdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTBIOWMtLjYgMC0xIC40LTEgMXY0aDJ2LTNoNHYyLjVsMy41LTMuNUwxNCA3LjVWMTB6bS0yLTlDNS45IDEgMSA1LjkgMSAxMnM0LjkgMTEgMTEgMTEgMTEtNC45IDExLTExUzE4LjEgMSAxMiAxem03LjczIDExLjU4LTcuMTkgNy4yMmMtLjM1LjI3LS43OS4yNy0xLjE1IDBMNC4yIDEyLjU4YS45MzIuOTMyIDAgMCAxIDAtMS4xNmw3LjE5LTcuMjJjLjM1LS4yNy43OS0uMjcgMS4xNSAwbDcuMTkgNy4yMmMuMzYuMjcuMzYuOCAwIDEuMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFzc2lzdGFudE5hdmlnYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDFDNS45MyAxIDEgNS45MyAxIDEyczQuOTMgMTEgMTEgMTEgMTEtNC45MyAxMS0xMVMxOC4wNyAxIDEyIDF6bTMuNTcgMTZMMTIgMTUuNDIgOC40MyAxN2wtLjM3LS4zN0wxMiA3bDMuOTUgOS42My0uMzguMzd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbXBhaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTF2Mmg0di0yaC00em0tMiA2LjYxYy45Ni43MSAyLjIxIDEuNjUgMy4yIDIuMzkuNC0uNTMuOC0xLjA3IDEuMi0xLjYtLjk5LS43NC0yLjI0LTEuNjgtMy4yLTIuNC0uNC41NC0uOCAxLjA4LTEuMiAxLjYxek0yMC40IDUuNmMtLjQtLjUzLS44LTEuMDctMS4yLTEuNi0uOTkuNzQtMi4yNCAxLjY4LTMuMiAyLjQuNC41My44IDEuMDcgMS4yIDEuNi45Ni0uNzIgMi4yMS0xLjY1IDMuMi0yLjR6TTQgOWMtMS4xIDAtMiAuOS0yIDJ2MmMwIDEuMS45IDIgMiAyaDF2NGgydi00aDFsNSAzVjZMOCA5SDR6bTExLjUgM2MwLTEuMzMtLjU4LTIuNTMtMS41LTMuMzV2Ni42OWMuOTItLjgxIDEuNS0yLjAxIDEuNS0zLjM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYW5jZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDcgMiAyIDYuNDcgMiAxMnM0LjQ3IDEwIDEwIDEwIDEwLTQuNDcgMTAtMTBTMTcuNTMgMiAxMiAyem01IDEzLjU5TDE1LjU5IDE3IDEyIDEzLjQxIDguNDEgMTcgNyAxNS41OSAxMC41OSAxMiA3IDguNDEgOC40MSA3IDEyIDEwLjU5IDE1LjU5IDcgMTcgOC40MSAxMy40MSAxMiAxNyAxNS41OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDE2LjE3IDQuODMgMTJsLTEuNDIgMS40MUw5IDE5IDIxIDdsLTEuNDEtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2hldnJvbkxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS40MSA3LjQxIDE0IDZsLTYgNiA2IDYgMS40MS0xLjQxTDEwLjgzIDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDaGV2cm9uUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA2IDguNTkgNy40MSAxMy4xNyAxMmwtNC41OCA0LjU5TDEwIDE4bDYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2xvc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA2LjQxIDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvdWJsZUFycm93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSA1SDExbDUgNy01IDdoNC41bDUtN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDVINGw1IDctNSA3aDQuNWw1LTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNSA1LTEuNDEgMS40MUwxOC4xNyAxMUgydjJoMTYuMTdsLTQuNTkgNC41OUwxNSAxOWw3LTctNy03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFeHBhbmRDaXJjbGVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxMy41TDcuNSAxMWwxLjQyLTEuNDFMMTIgMTIuNjdsMy4wOC0zLjA4TDE2LjUgMTEgMTIgMTUuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXhwYW5kTGVzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDgtNiA2IDEuNDEgMS40MUwxMiAxMC44M2w0LjU5IDQuNThMMTggMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEV4cGFuZE1vcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41OSA4LjU5IDEyIDEzLjE3IDcuNDEgOC41OSA2IDEwbDYgNiA2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpcnN0UGFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNDEgMTYuNTkgMTMuODIgMTJsNC41OS00LjU5TDE3IDZsLTYgNiA2IDZ6TTYgNmgydjEySDZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTI0IDI0SDBWMGgyNHYyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRnVsbHNjcmVlbkV4aXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE2aDN2M2gydi01SDV2MnptMy04SDV2Mmg1VjVIOHYzem02IDExaDJ2LTNoM3YtMmgtNXY1em0yLTExVjVoLTJ2NWg1VjhoLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZ1bGxzY3JlZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE0SDV2NWg1di0ySDd2LTN6bS0yLTRoMlY3aDNWNUg1djV6bTEyIDdoLTN2Mmg1di01aC0ydjN6TTE0IDV2MmgzdjNoMlY1aC01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIb21lV29yayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMTF2MTBoNXYtNmg0djZoNVYxMUw4IDZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDN2MS45N2w3IDVWMTFoMnYyaC0ydjJoMnYyaC0ydjRoNlYzSDEwem05IDZoLTJWN2gydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExhc3RQYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjU5IDcuNDEgMTAuMTggMTJsLTQuNTkgNC41OUw3IDE4bDYtNi02LTZ6TTE2IDZoMnYxMmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGVnZW5kVG9nZ2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTVINHYtMmgxNnYyem0wIDJINHYyaDE2di0yem0tNS02IDUtMy41NVY1bC01IDMuNTVMMTAgNSA0IDguNjZWMTFsNS45Mi0zLjYxTDE1IDExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNYXBzSG9tZVdvcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMTF2MTBoNXYtNmg0djZoNVYxMUw4IDZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDN2MS45N2w3IDVWMTFoMnYyaC0ydjJoMnYyaC0ydjRoNlYzSDEwem05IDZoLTJWN2gydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1lbnVPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE4aDEzdi0ySDN2MnptMC01aDEwdi0ySDN2MnptMC03djJoMTNWNkgzem0xOCA5LjU5TDE3LjQyIDEyIDIxIDguNDEgMTkuNTkgN2wtNSA1IDUgNUwyMSAxNS41OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWVudSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMThoMTh2LTJIM3Yyem0wLTVoMTh2LTJIM3Yyem0wLTd2MmgxOFY2SDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vcmVIb3JpeiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTBjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0xMiAwYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptLTYgMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vcmVWZXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgOGMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTAgMmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTAgNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vcnRoRWFzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNXYyaDYuNTlMNCAxOC41OSA1LjQxIDIwIDE3IDguNDFWMTVoMlY1SDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vcnRoV2VzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTVoMlY4LjQxTDE4LjU5IDIwIDIwIDE4LjU5IDguNDEgN0gxNVY1SDV2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vcnRoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNSA5IDEuNDEgMS40MUwxMSA1LjgzVjIyaDJWNS44M2w0LjU5IDQuNTlMMTkgOWwtNy03LTcgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT2ZmbGluZVNoYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNiAxMC4yNnYxLjMxTDE3IDkuMzMgMTQuNiA3LjF2MS4yOGMtMi4zMy4zMi0zLjI2IDEuOTItMy42IDMuNTIuODMtMS4xMyAxLjkzLTEuNjQgMy42LTEuNjR6TTE2IDIzSDZjLTEuMSAwLTItLjktMi0yVjVoMnYxNmgxMHYyem0yLTIyaC04Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNWgtOFY0aDh2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBheW1lbnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTRWNmMwLTEuMS0uOS0yLTItMkgzYy0xLjEgMC0yIC45LTIgMnY4YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ6bS05LTFjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzem0xMy02djExYzAgMS4xLS45IDItMiAySDR2LTJoMTdWN2gyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaXZvdFRhYmxlQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA4aDExVjVjMC0xLjEtLjktMi0yLTJoLTl2NXpNMyA4aDVWM0g1Yy0xLjEgMC0yIC45LTIgMnYzem0yIDEzaDNWMTBIM3Y5YzAgMS4xLjkgMiAyIDJ6bTggMS00LTQgNC00em0xLTkgNC00IDQgNHpNMTQuNTggMTlIMTN2LTJoMS41OGMxLjMzIDAgMi40Mi0xLjA4IDIuNDItMi40MlYxM2gydjEuNThjMCAyLjQ0LTEuOTggNC40Mi00LjQyIDQuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlZnJlc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy42NSA2LjM1QTcuOTU4IDcuOTU4IDAgMCAwIDEyIDRjLTQuNDIgMC03Ljk5IDMuNTgtNy45OSA4czMuNTcgOCA3Ljk5IDhjMy43MyAwIDYuODQtMi41NSA3LjczLTZoLTIuMDhBNS45OSA1Ljk5IDAgMCAxIDEyIDE4Yy0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02YzEuNjYgMCAzLjE0LjY5IDQuMjIgMS43OEwxMyAxMWg3VjRsLTIuMzUgMi4zNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU291dGhFYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgOWgtMnY2LjU5TDUuNDEgNCA0IDUuNDEgMTUuNTkgMTdIOXYyaDEwVjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNvdXRoV2VzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDE5di0ySDguNDFMMjAgNS40MSAxOC41OSA0IDcgMTUuNTlWOUg1djEwaDEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTb3V0aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5IDE1LTEuNDEtMS40MUwxMyAxOC4xN1YyaC0ydjE2LjE3bC00LjU5LTQuNTlMNSAxNWw3IDcgNy03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdWJkaXJlY3RvcnlBcnJvd0xlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTExIDkgMS40MiAxLjQyTDguODMgMTRIMThWNGgydjEySDguODNsMy41OSAzLjU4TDExIDIxbC02LTYgNi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdWJkaXJlY3RvcnlBcnJvd1JpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOSAxNS02IDYtMS40Mi0xLjQyTDE1LjE3IDE2SDRWNGgydjEwaDkuMTdsLTMuNTktMy41OEwxMyA5bDYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3dpdGNoTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNSA4LjYydjYuNzZMNS4xMiAxMiA4LjUgOC42Mk0xMCA1bC03IDcgNyA3VjV6bTQgMHYxNGw3LTctNy03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTd2l0Y2hSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMjQgMjRIMFYwaDI0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDE1LjM4VjguNjJMMTguODggMTJsLTMuMzggMy4zOE0xNCAxOWw3LTctNy03djE0em0tNCAwVjVsLTcgNyA3IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFVuZm9sZExlc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjQxIDE4LjU5IDguODMgMjAgMTIgMTYuODMgMTUuMTcgMjBsMS40MS0xLjQxTDEyIDE0bC00LjU5IDQuNTl6bTkuMTgtMTMuMThMMTUuMTcgNCAxMiA3LjE3IDguODMgNCA3LjQxIDUuNDEgMTIgMTBsNC41OS00LjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRVbmZvbGRNb3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNS44MyAxNS4xNyA5bDEuNDEtMS40MUwxMiAzIDcuNDEgNy41OSA4LjgzIDkgMTIgNS44M3ptMCAxMi4zNEw4LjgzIDE1bC0xLjQxIDEuNDFMMTIgMjFsNC41OS00LjU5TDE1LjE3IDE1IDEyIDE4LjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXYXRlcmZhbGxDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDRoM3YxNmgtM3pNMyAxM2gzdjdIM3ptMTEtOWgzdjNoLTN6bS00IDFoM3Y0aC0zem0tMyA1aDN2NEg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXZXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOSAxOSAxLjQxLTEuNDFMNS44MyAxM0gyMnYtMkg1LjgzbDQuNTktNC41OUw5IDVsLTcgNyA3IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFjY291bnRUcmVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTFWM2gtN3YzSDlWM0gydjhoN1Y4aDJ2MTBoNHYzaDd2LThoLTd2M2gtMlY4aDJ2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxNmMwIDMuODcgMy4xMyA3IDcgN3M3LTMuMTMgNy03di00SDV2NHpNMTYuMTIgNC4zN2wyLjEtMi4xLS44Mi0uODMtMi4zIDIuMzFDMTQuMTYgMy4yOCAxMy4xMiAzIDEyIDNzLTIuMTYuMjgtMy4wOS43NUw2LjYgMS40NGwtLjgyLjgzIDIuMSAyLjFDNi4xNCA1LjY0IDUgNy42OCA1IDEwdjFoMTR2LTFjMC0yLjMyLTEuMTQtNC4zNi0yLjg4LTUuNjN6TTkgOWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem02IDBjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRkQ2FsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTUuNWMtMS4yNSAwLTIuNDUtLjItMy41Ny0uNTdhMS4wMiAxLjAyIDAgMCAwLTEuMDIuMjRsLTIuMiAyLjJhMTUuMDQ1IDE1LjA0NSAwIDAgMS02LjU5LTYuNTlsMi4yLTIuMjFhLjk2Ljk2IDAgMCAwIC4yNS0xQTExLjM2IDExLjM2IDAgMCAxIDguNSA0YzAtLjU1LS40NS0xLTEtMUg0Yy0uNTUgMC0xIC40NS0xIDEgMCA5LjM5IDcuNjEgMTcgMTcgMTcgLjU1IDAgMS0uNDUgMS0xdi0zLjVjMC0uNTUtLjQ1LTEtMS0xek0yMSA2aC0zVjNoLTJ2M2gtM3YyaDN2M2gyVjhoM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWlybGluZVNlYXRGbGF0QW5nbGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIuMjUgMTQuMjktLjY5IDEuODlMOS4yIDExLjcxbDIuMDgtNS42NiA4LjU2IDMuMDlhNCA0IDAgMCAxIDIuNDEgNS4xNXpNMS41IDEyLjE0IDggMTQuNDhWMTloOHYtMS42M0wyMC41MiAxOWwuNjktMS44OS0xOS4wMi02Ljg2LS42OSAxLjg5em01LjgtMS45NGEzLjAxIDMuMDEgMCAwIDAgMS40MS00QTMuMDA1IDMuMDA1IDAgMCAwIDQuNyA0LjhhMi45OSAyLjk5IDAgMCAwLTEuNCA0IDIuOTkgMi45OSAwIDAgMCA0IDEuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWlybGluZVNlYXRGbGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTF2Mkg5VjdoOWMyLjIxIDAgNCAxLjc5IDQgNHpNMiAxNHYyaDZ2Mmg4di0yaDZ2LTJIMnptNS4xNC0xLjlhMyAzIDAgMCAwLS4wNC00LjI0IDMgMyAwIDAgMC00LjI0LjA0IDMgMyAwIDAgMCAuMDQgNC4yNCAzIDMgMCAwIDAgNC4yNC0uMDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFpcmxpbmVTZWF0SW5kaXZpZHVhbFN1aXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDEzYzEuNjUgMCAzLTEuMzUgMy0zUzguNjUgNyA3IDdzLTMgMS4zNS0zIDMgMS4zNSAzIDMgM3ptMTItNmgtOHY3SDNWN0gxdjEwaDIydi02YzAtMi4yMS0xLjc5LTQtNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBaXJsaW5lU2VhdExlZ3Jvb21FeHRyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTJWM0gydjljMCAyLjc2IDIuMjQgNSA1IDVoNnYtMkg3Yy0xLjY2IDAtMy0xLjM0LTMtM3ptMTguODMgNS4yNGMtLjM4LS43Mi0xLjI5LS45Ny0yLjAzLS42M2wtMS4wOS41LTMuNDEtNi45OGEyLjAxIDIuMDEgMCAwIDAtMS43OS0xLjEyTDExIDlWM0g1djhjMCAxLjY2IDEuMzQgMyAzIDNoN2wzLjQxIDcgMy43Mi0xLjdjLjc3LS4zNiAxLjEtMS4zLjctMi4wNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWlybGluZVNlYXRMZWdyb29tTm9ybWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxMlYzSDN2OWMwIDIuNzYgMi4yNCA1IDUgNWg2di0ySDhjLTEuNjYgMC0zLTEuMzQtMy0zem0xNS41IDZIMTl2LTdjMC0xLjEtLjktMi0yLTJoLTVWM0g2djhjMCAxLjY1IDEuMzUgMyAzIDNoN3Y3aDQuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVzLS42Ny0xLjUtMS41LTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWlybGluZVNlYXRMZWdyb29tUmVkdWNlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5Ljk3IDE5LjJjLjE4Ljk2LS41NSAxLjgtMS40NyAxLjhIMTR2LTNsMS00SDljLTEuNjUgMC0zLTEuMzUtMy0zVjNoNnY2aDVjMS4xIDAgMiAuOSAyIDJsLTIgN2gxLjQ0Yy43MyAwIDEuMzkuNDkgMS41MyAxLjJ6TTUgMTJWM0gzdjljMCAyLjc2IDIuMjQgNSA1IDVoNHYtMkg4Yy0xLjY2IDAtMy0xLjM0LTMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWlybGluZVNlYXRSZWNsaW5lRXh0cmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjM1IDUuNjRjLS45LS42NC0xLjEyLTEuODgtLjQ5LTIuNzkuNjMtLjkgMS44OC0xLjEyIDIuNzktLjQ5LjkuNjQgMS4xMiAxLjg4LjQ5IDIuNzktLjY0LjktMS44OCAxLjEyLTIuNzkuNDl6TTE2IDE5SDguOTNjLTEuNDggMC0yLjc0LTEuMDgtMi45Ni0yLjU0TDQgN0gybDEuOTkgOS43NkE1LjAxIDUuMDEgMCAwIDAgOC45NCAyMUgxNnYtMnptLjIzLTRoLTQuODhsLTEuMDMtNC4xYzEuNTguODkgMy4yOCAxLjU0IDUuMTUgMS4yMlY5Ljk5Yy0xLjYzLjMxLTMuNDQtLjI3LTQuNjktMS4yNUw5LjE0IDcuNDdjLS4yMy0uMTgtLjQ5LS4zLS43Ni0uMzhhMi4yMSAyLjIxIDAgMCAwLS45OS0uMDZoLS4wMmEyLjI2OCAyLjI2OCAwIDAgMC0xLjg0IDIuNjFsMS4zNSA1LjkyQTMuMDA4IDMuMDA4IDAgMCAwIDkuODMgMThoNi44NWwzLjgyIDMgMS41LTEuNS01Ljc3LTQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWlybGluZVNlYXRSZWNsaW5lTm9ybWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41OSA1LjQxYy0uNzgtLjc4LS43OC0yLjA1IDAtMi44My43OC0uNzggMi4wNS0uNzggMi44MyAwIC43OC43OC43OCAyLjA1IDAgMi44My0uNzkuNzktMi4wNS43OS0yLjgzIDB6TTYgMTZWN0g0djljMCAyLjc2IDIuMjQgNSA1IDVoNnYtMkg5Yy0xLjY2IDAtMy0xLjM0LTMtM3ptMTQgNC4wN0wxNC45MyAxNUgxMS41di0zLjY4YzEuNCAxLjE1IDMuNiAyLjE2IDUuNSAyLjE2di0yLjE2Yy0xLjY2LjAyLTMuNjEtLjg3LTQuNjctMi4wNGwtMS40LTEuNTVjLS4xOS0uMjEtLjQzLS4zOC0uNjktLjUtLjI5LS4xNC0uNjItLjIzLS45Ni0uMjNoLS4wM0M4LjAxIDcgNyA4LjAxIDcgOS4yNVYxNWMwIDEuNjYgMS4zNCAzIDMgM2g1LjA3bDMuNSAzLjVMMjAgMjAuMDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJsdWV0b290aEF1ZGlvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQuMjQgMTIuMDEgMi4zMiAyLjMyYy4yOC0uNzIuNDQtMS41MS40NC0yLjMzIDAtLjgyLS4xNi0xLjU5LS40My0yLjMxbC0yLjMzIDIuMzJ6bTUuMjktNS4zLTEuMjYgMS4yNmMuNjMgMS4yMS45OCAyLjU3Ljk4IDQuMDJzLS4zNiAyLjgyLS45OCA0LjAybDEuMiAxLjJhOS45MzYgOS45MzYgMCAwIDAgMS41NC01LjMxYy0uMDEtMS44OS0uNTUtMy42Ny0xLjQ4LTUuMTl6bS0zLjgyIDFMMTAgMkg5djcuNTlMNC40MSA1IDMgNi40MSA4LjU5IDEyIDMgMTcuNTkgNC40MSAxOSA5IDE0LjQxVjIyaDFsNS43MS01LjcxLTQuMy00LjI5IDQuMy00LjI5ek0xMSA1LjgzbDEuODggMS44OEwxMSA5LjU5VjUuODN6bTEuODggMTAuNDZMMTEgMTguMTd2LTMuNzZsMS44OCAxLjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb25maXJtYXRpb25OdW1iZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMFY2YTIgMiAwIDAgMC0yLTJINGMtMS4xIDAtMS45OS44OS0xLjk5IDJ2NGMxLjEgMCAxLjk5LjkgMS45OSAycy0uODkgMi0yIDJ2NGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0ydi00Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMnptLTkgNy41aC0ydi0yaDJ2MnptMC00LjVoLTJ2LTJoMnYyem0wLTQuNWgtMnYtMmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERpcmVjdGlvbnNPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi44MyAxMGguNjdWNy41TDE3IDExbC0xLjU5IDEuNTlMMTguODMgMTZsMi41OS0yLjU5Yy43OC0uNzguNzgtMi4wNSAwLTIuODNsLTcuOTktOGMtLjc4LS43OC0yLjA1LS43OC0yLjgzIDBMOCA1LjE3IDEyLjgzIDEwek0yLjgxIDIuODEgMS4zOSA0LjIyIDUuMTcgOGwtMi41OSAyLjU5Yy0uNzguNzgtLjc4IDIuMDUgMCAyLjgzbDguMDEgOGMuNzguNzggMi4wNS43OCAyLjgzIDBMMTYgMTguODNsMy43OCAzLjc4IDEuNDEtMS40MUwyLjgxIDIuODF6TTEwIDE1SDh2LTRjMC0uMDUuMDItLjA5LjAzLS4xNEwxMCAxMi44M1YxNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGlzY0Z1bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxNmgydi0yaC0ydjJ6bTAtOXY1aDJWN2gtMnpNMTAgNGMtNC40MiAwLTggMy41OC04IDhzMy41OCA4IDggOCA4LTMuNTggOC04LTMuNTgtOC04LTh6bTAgMTBjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb0Rpc3R1cmJBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04IDAtMS44NS42My0zLjU1IDEuNjktNC45TDE2LjkgMTguMzFBNy45MDIgNy45MDIgMCAwIDEgMTIgMjB6bTYuMzEtMy4xTDcuMSA1LjY5QTcuOTAyIDcuOTAyIDAgMCAxIDEyIDRjNC40MiAwIDggMy41OCA4IDggMCAxLjg1LS42MyAzLjU1LTEuNjkgNC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb0Rpc3R1cmJPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDExdjJoLTEuMTdsNC41MSA0LjUxQTkuOTEgOS45MSAwIDAgMCAyMiAxMmMwLTUuNTItNC40OC0xMC0xMC0xMC0yLjA0IDAtMy45My42MS01LjUxIDEuNjZMMTMuODMgMTFIMTd6TTEuMzkgNC4yMmwyLjI3IDIuMjdBOS45MSA5LjkxIDAgMCAwIDIgMTJjMCA1LjUyIDQuNDggMTAgMTAgMTAgMi4wNCAwIDMuOTMtLjYxIDUuNTEtMS42NmwyLjI3IDIuMjcgMS40MS0xLjQxTDIuODEgMi44MSAxLjM5IDQuMjJ6TTcgMTFoMS4xN2wyIDJIN3YtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRG9EaXN0dXJiT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTUgMTFIN3YtMmgxMHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb0Rpc3R1cmIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi41IDIgMiA2LjUgMiAxMnM0LjUgMTAgMTAgMTAgMTAtNC41IDEwLTEwUzE3LjUgMiAxMiAyek00IDEyYzAtNC40IDMuNi04IDgtOCAxLjggMCAzLjUuNiA0LjkgMS43TDUuNyAxNi45QzQuNiAxNS41IDQgMTMuOCA0IDEyem04IDhjLTEuOCAwLTMuNS0uNi00LjktMS43TDE4LjMgNy4xQzE5LjQgOC41IDIwIDEwLjIgMjAgMTJjMCA0LjQtMy42IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb05vdERpc3R1cmJBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTS02MTgtMTQ2NEg3ODJ2MzYwMEgtNjE4ek0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjUgMiAyIDYuNSAyIDEyczQuNSAxMCAxMCAxMCAxMC00LjUgMTAtMTBTMTcuNSAyIDEyIDJ6TTQgMTJjMC00LjQgMy42LTggOC04IDEuOCAwIDMuNS42IDQuOSAxLjdMNS43IDE2LjlDNC42IDE1LjUgNCAxMy44IDQgMTJ6bTggOGMtMS44IDAtMy41LS42LTQuOS0xLjdMMTguMyA3LjFDMTkuNCA4LjUgMjAgMTAuMiAyMCAxMmMwIDQuNC0zLjYgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvTm90RGlzdHVyYk9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTF2MmgtMS40Nmw0LjY4IDQuNjhBOS45MiA5LjkyIDAgMCAwIDIyIDEyYzAtNS41Mi00LjQ4LTEwLTEwLTEwLTIuMTEgMC00LjA3LjY2LTUuNjggMS43OEwxMy41NCAxMUgxN3pNMi4yNyAyLjI3IDEgMy41NGwyLjc4IDIuNzhBOS45MiA5LjkyIDAgMCAwIDIgMTJjMCA1LjUyIDQuNDggMTAgMTAgMTAgMi4xMSAwIDQuMDctLjY2IDUuNjgtMS43OEwyMC40NiAyM2wxLjI3LTEuMjdMMTEgMTEgMi4yNyAyLjI3ek03IDEzdi0yaDEuNDZsMiAySDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvTm90RGlzdHVyYk9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem01IDExSDd2LTJoMTB2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRG9Ob3REaXN0dXJiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LTggMC0xLjg1LjYzLTMuNTUgMS42OS00LjlMMTYuOSAxOC4zMUE3LjkwMiA3LjkwMiAwIDAgMSAxMiAyMHptNi4zMS0zLjFMNy4xIDUuNjlBNy45MDIgNy45MDIgMCAwIDEgMTIgNGM0LjQyIDAgOCAzLjU4IDggOCAwIDEuODUtLjYzIDMuNTUtMS42OSA0Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERyaXZlRXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguOTIgNS4wMUMxOC43MiA0LjQyIDE4LjE2IDQgMTcuNSA0aC0xMWMtLjY2IDAtMS4yMS40Mi0xLjQyIDEuMDFMMyAxMXY4YzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaDEydjFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LThsLTIuMDgtNS45OXpNNi41IDE1Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyAxMiA2LjUgMTJzMS41LjY3IDEuNSAxLjVTNy4zMyAxNSA2LjUgMTV6bTExIDBjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41ek01IDEwbDEuNS00LjVoMTFMMTkgMTBINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRW5oYW5jZWRFbmNyeXB0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDhoLTFWNmMwLTIuNzYtMi4yNC01LTUtNVM3IDMuMjQgNyA2djJINmMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlYxMGMwLTEuMS0uOS0yLTItMnpNOC45IDZjMC0xLjcxIDEuMzktMy4xIDMuMS0zLjFzMy4xIDEuMzkgMy4xIDMuMXYySDguOVY2ek0xNiAxNmgtM3YzaC0ydi0zSDh2LTJoM3YtM2gydjNoM3YyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFdmVudEF2YWlsYWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjUzIDExLjA2IDE1LjQ3IDEwbC00Ljg4IDQuODgtMi4xMi0yLjEyLTEuMDYgMS4wNkwxMC41OSAxN2w1Ljk0LTUuOTR6TTE5IDNoLTFWMWgtMnYySDhWMUg2djJINWMtMS4xMSAwLTEuOTkuOS0xLjk5IDJMMyAxOWEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY4aDE0djExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFdmVudEJ1c3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm05LjMxIDE3IDIuNDQtMi40NEwxNC4xOSAxN2wxLjA2LTEuMDYtMi40NC0yLjQ0IDIuNDQtMi40NEwxNC4xOSAxMGwtMi40NCAyLjQ0TDkuMzEgMTBsLTEuMDYgMS4wNiAyLjQ0IDIuNDQtMi40NCAyLjQ0TDkuMzEgMTd6TTE5IDNoLTFWMWgtMnYySDhWMUg2djJINWMtMS4xMSAwLTEuOTkuOS0xLjk5IDJMMyAxOWEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY4aDE0djExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFdmVudE5vdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMEg3djJoMTB2LTJ6bTItN2gtMVYxaC0ydjJIOFYxSDZ2Mkg1Yy0xLjExIDAtMS45OS45LTEuOTkgMkwzIDE5YTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjhoMTR2MTF6bS01LTVIN3YyaDd2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvbGRlclNwZWNpYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bS0yLjA2IDExTDE1IDE1LjI4IDEyLjA2IDE3bC43OC0zLjMzLTIuNTktMi4yNCAzLjQxLS4yOUwxNSA4bDEuMzQgMy4xNCAzLjQxLjI5LTIuNTkgMi4yNC43OCAzLjMzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbWFnZXNlYXJjaFJvbGxlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJ2Nkg2VjZINHY0aDEwdjVoMnY4aC02di04aDJ2LTNIMlY0aDRWMlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMaXZlVHYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDZoLTcuNTlsMy4yOS0zLjI5TDE2IDJsLTQgNC00LTQtLjcxLjcxTDEwLjU5IDZIM2EyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWOGEyIDIgMCAwIDAtMi0yem0wIDE0SDNWOGgxOHYxMnpNOSAxMHY4bDctNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW1zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6TTUgMTRsMy41LTQuNSAyLjUgMy4wMUwxNC41IDhsNC41IDZINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDNIN2MtLjY5IDAtMS4yMy4zNS0xLjU5Ljg4TDAgMTJsNS40MSA4LjExYy4zNi41My45Ny44OSAxLjY2Ljg5SDIyYzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTkgMTMuNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6bTUgMGMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6bTUgMGMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5ldHdvcmtDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjkgNWMtLjE3IDAtLjMyLjA5LS40MS4yM2wtLjA3LjE1LTUuMTggMTEuNjVjLS4xNi4yOS0uMjYuNjEtLjI2Ljk2IDAgMS4xMS45IDIuMDEgMi4wMSAyLjAxLjk2IDAgMS43Ny0uNjggMS45Ni0xLjU5bC4wMS0uMDNMMTYuNCA1LjVjMC0uMjgtLjIyLS41LS41LS41ek0xIDlsMiAyYzIuODgtMi44OCA2Ljc5LTQuMDggMTAuNTMtMy42MmwxLjE5LTIuNjhDOS44OSAzLjg0IDQuNzQgNS4yNyAxIDl6bTIwIDIgMi0yYTE1LjM2NyAxNS4zNjcgMCAwIDAtNS41OS0zLjU3bC0uNTMgMi44MmMxLjUuNjIgMi45IDEuNTMgNC4xMiAyLjc1em0tNCA0IDItMmMtLjgtLjgtMS43LTEuNDItMi42Ni0xLjg5bC0uNTUgMi45MmMuNDIuMjcuODMuNTkgMS4yMS45N3pNNSAxM2wyIDJhNy4xIDcuMSAwIDAgMSA0LjAzLTJsMS4yOC0yLjg4Yy0yLjYzLS4wOC01LjMuODctNy4zMSAyLjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROZXR3b3JrTG9ja2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjUgMTBjLjE3IDAgLjMzLjAzLjUuMDVWMUwxIDIwaDEzdi0zYzAtLjg5LjM5LTEuNjggMS0yLjIzdi0uMjdjMC0yLjQ4IDIuMDItNC41IDQuNS00LjV6bTIuNSA2di0xLjVhMi41IDIuNSAwIDAgMC01IDBWMTZjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxaDVjLjU1IDAgMS0uNDUgMS0xdi00YzAtLjU1LS40NS0xLTEtMXptLTEgMGgtM3YtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41VjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb0VuY3J5cHRpb25HbWFpbGVycm9ycmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjkgNmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMXMzLjEgMS4zOSAzLjEgMy4xdjJoLTQuMjdMMjAgMTcuMTdWMTBjMC0xLjEtLjktMi0yLTJoLTFWNmMwLTIuNzYtMi4yNC01LTUtNS0yLjIxIDAtNC4wNyAxLjQ1LTQuNzMgMy40NEw4LjkgNi4wN1Y2ek0yLjEgMi4xLjY5IDMuNTEgNS4zIDguMTNDNC41NSA4LjQyIDQgOS4xNSA0IDEwdjEwYzAgMS4xLjkgMiAyIDJoMTJjLjM0IDAgLjY1LS4wOS45My0uMjRsMS41NiAxLjU2IDEuNDEtMS40MUwyLjEgMi4xek0xMiAxN2MtMS4xIDAtMi0uOS0yLTIgMC0uNTkuMjctMS4xMi42OC0xLjQ5bDIuODEgMi44MWMtLjM3LjQxLS45LjY4LTEuNDkuNjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vRW5jcnlwdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAyMS43OCA0LjIyIDUgMyA2LjIybDIuMDQgMi4wNEM0LjQyIDguNiA0IDkuMjUgNCAxMHYxMGMwIDEuMS45IDIgMiAyaDEyYy4yMyAwIC40NS0uMDUuNjYtLjEyTDE5Ljc4IDIzIDIxIDIxLjc4ek04LjkgNmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMXMzLjEgMS4zOSAzLjEgMy4xdjJIOS42NkwyMCAxOC4zNFYxMGMwLTEuMS0uOS0yLTItMmgtMVY2YzAtMi43Ni0yLjI0LTUtNS01LTIuNTYgMC00LjY0IDEuOTMtNC45NCA0LjRMOC45IDcuMjRWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT25kZW1hbmRWaWRlbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjExIDAtMiAuODktMiAydjEyYTIgMiAwIDAgMCAyIDJoNXYyaDh2LTJoNWMxLjEgMCAxLjk5LS45IDEuOTktMkwyMyA1YTIgMiAwIDAgMC0yLTJ6bTAgMTRIM1Y1aDE4djEyem0tNS02LTcgNFY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZXJzb25hbFZpZGVvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjExIDAtMiAuODktMiAydjEyYTIgMiAwIDAgMCAyIDJoNXYyaDh2LTJoNWMxLjEgMCAxLjk5LS45IDEuOTktMkwyMyA1YTIgMiAwIDAgMC0yLTJ6bTAgMTRIM1Y1aDE4djEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaG9uZUJsdWV0b290aFNwZWFrZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC43MSA5LjUgMTcgNy4yMVYxMWguNWwyLjg1LTIuODVMMTguMjEgNmwyLjE1LTIuMTVMMTcuNSAxSDE3djMuNzlMMTQuNzEgMi41bC0uNzEuNzFMMTYuNzkgNiAxNCA4Ljc5bC43MS43MXpNMTggMi45MWwuOTQuOTQtLjk0Ljk0VjIuOTF6bTAgNC4zLjk0Ljk0LS45NC45NFY3LjIxem0yIDguMjljLTEuMjUgMC0yLjQ1LS4yLTMuNTctLjU3YTEuMDIgMS4wMiAwIDAgMC0xLjAyLjI0bC0yLjIgMi4yYTE1LjA0NSAxNS4wNDUgMCAwIDEtNi41OS02LjU5bDIuMi0yLjIxYS45Ni45NiAwIDAgMCAuMjUtMUExMS4zNiAxMS4zNiAwIDAgMSA4LjUgNGMwLS41NS0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxIDAgOS4zOSA3LjYxIDE3IDE3IDE3IC41NSAwIDEtLjQ1IDEtMXYtMy41YzAtLjU1LS40NS0xLTEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGhvbmVDYWxsYmFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNjIgMTAuNzljMS40NCAyLjgzIDMuNzYgNS4xNCA2LjU5IDYuNTlsMi4yLTIuMmMuMjctLjI3LjY3LS4zNiAxLjAyLS4yNCAxLjEyLjM3IDIuMzMuNTcgMy41Ny41Ny41NSAwIDEgLjQ1IDEgMVYyMGMwIC41NS0uNDUgMS0xIDEtOS4zOSAwLTE3LTcuNjEtMTctMTcgMC0uNTUuNDUtMSAxLTFoMy41Yy41NSAwIDEgLjQ1IDEgMSAwIDEuMjUuMiAyLjQ1LjU3IDMuNTcuMTEuMzUuMDMuNzQtLjI1IDEuMDJsLTIuMiAyLjJ6bTEzLjU0LTcuMS0uNzEtLjdMMTMgOS4yOVY1aC0xdjZoNnYtMWgtNC4xNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGhvbmVGb3J3YXJkZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOCAxMSA1LTUtNS01djNoLTR2NGg0djN6bTIgNC41Yy0xLjI1IDAtMi40NS0uMi0zLjU3LS41N2ExLjAyIDEuMDIgMCAwIDAtMS4wMi4yNGwtMi4yIDIuMmExNS4wNDUgMTUuMDQ1IDAgMCAxLTYuNTktNi41OWwyLjItMi4yMWEuOTYuOTYgMCAwIDAgLjI1LTFBMTEuMzYgMTEuMzYgMCAwIDEgOC41IDRjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNWMwLS41NS0uNDUtMS0xLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBob25lSW5UYWxrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTUuNWMtMS4yNSAwLTIuNDUtLjItMy41Ny0uNTdhMS4wMiAxLjAyIDAgMCAwLTEuMDIuMjRsLTIuMiAyLjJhMTUuMDQ1IDE1LjA0NSAwIDAgMS02LjU5LTYuNTlsMi4yLTIuMjFhLjk2Ljk2IDAgMCAwIC4yNS0xQTExLjM2IDExLjM2IDAgMCAxIDguNSA0YzAtLjU1LS40NS0xLTEtMUg0Yy0uNTUgMC0xIC40NS0xIDEgMCA5LjM5IDcuNjEgMTcgMTcgMTcgLjU1IDAgMS0uNDUgMS0xdi0zLjVjMC0uNTUtLjQ1LTEtMS0xek0xOSAxMmgyYTkgOSAwIDAgMC05LTl2MmMzLjg3IDAgNyAzLjEzIDcgN3ptLTQgMGgyYzAtMi43Ni0yLjI0LTUtNS01djJjMS42NiAwIDMgMS4zNCAzIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBob25lTG9ja2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA1VjRjMC0xLjEtLjktMi0yLTJzLTIgLjktMiAydjFoLTF2NWg2VjVoLTF6bS0xIDBoLTJWNGMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2MXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUuNjMgMTQuNC0yLjUyIDIuNWMtMi41LTEuNDMtNC41Ny0zLjUtNi02bDIuNS0yLjUyYy4yMy0uMjQuMzMtLjU3LjI3LS45TDkuMTMgMy44Yy0uMDktLjQ2LS41LS44LS45OC0uOEg0Yy0uNTYgMC0xLjAzLjQ3LTEgMS4wMy4xNyAyLjg5IDEuMDUgNS42IDIuNDMgNy45NyAxLjU4IDIuNzMgMy44NSA0Ljk5IDYuNTcgNi41NyAyLjM3IDEuMzcgNS4wOCAyLjI2IDcuOTcgMi40My41Ni4wMyAxLjAzLS40NCAxLjAzLTF2LTQuMTVjMC0uNDgtLjM0LS44OS0uOC0uOThsLTMuNjctLjczYS45ODUuOTg1IDAgMCAwLS45LjI2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaG9uZU1pc3NlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSA1LjUgMTIgMTFsNy03LTEtMS02IDYtNC41LTQuNUgxMVYzSDV2NmgxLjVWNS41em0xNy4yMSAxMS4xN0ExNi45NzEgMTYuOTcxIDAgMCAwIDEyIDEyQzcuNDYgMTIgMy4zNCAxMy43OC4yOSAxNi42N2MtLjE4LjE4LS4yOS40My0uMjkuNzFzLjExLjUzLjI5LjcxbDIuNDggMi40OGMuMTguMTguNDMuMjkuNzEuMjkuMjcgMCAuNTItLjExLjctLjI4Ljc5LS43NCAxLjY5LTEuMzYgMi42Ni0xLjg1LjMzLS4xNi41Ni0uNS41Ni0uOXYtMy4xYzEuNDUtLjQ4IDMtLjczIDQuNi0uNzMgMS42IDAgMy4xNS4yNSA0LjYuNzJ2My4xYzAgLjM5LjIzLjc0LjU2LjkuOTguNDkgMS44NyAxLjEyIDIuNjcgMS44NS4xOC4xOC40My4yOC43LjI4LjI4IDAgLjUzLS4xMS43MS0uMjlsMi40OC0yLjQ4Yy4xOC0uMTguMjktLjQzLjI5LS43MXMtLjEyLS41Mi0uMy0uN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGhvbmVQYXVzZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAzaC0ydjdoMlYzem0zIDEyLjVjLTEuMjUgMC0yLjQ1LS4yLTMuNTctLjU3YTEuMDIgMS4wMiAwIDAgMC0xLjAyLjI0bC0yLjIgMi4yYTE1LjA0NSAxNS4wNDUgMCAwIDEtNi41OS02LjU5bDIuMi0yLjIxYS45Ni45NiAwIDAgMCAuMjUtMUExMS4zNiAxMS4zNiAwIDAgMSA4LjUgNGMwLS41NS0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxIDAgOS4zOSA3LjYxIDE3IDE3IDE3IC41NSAwIDEtLjQ1IDEtMXYtMy41YzAtLjU1LS40NS0xLTEtMXpNMTkgM3Y3aDJWM2gtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUG93ZXJPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDE0LjQ5VjljMC0xLTEuMDEtMi4wMS0yLTJWM2gtMnY0aC00VjNIOHYyLjQ4bDkuNTEgOS41LjQ5LS40OXptLTEuNzYgMS43N0w3LjIgNy4ybC0uMDEuMDFMMy45OCA0IDIuNzEgNS4yNWwzLjM2IDMuMzZDNi4wNCA4Ljc0IDYgOC44NyA2IDl2NS40OEw5LjUgMTh2M2g1di0zbC40OC0uNDhMMTkuNDUgMjJsMS4yNi0xLjI4LTQuNDctNC40NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUG93ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi4wMSA3IDE2IDNoLTJ2NGgtNFYzSDh2NGgtLjAxQzcgNi45OSA2IDcuOTkgNiA4Ljk5djUuNDlMOS41IDE4djNoNXYtM2wzLjUtMy41MXYtNS41YzAtMS0xLTItMS45OS0xLjk5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQcmlvcml0eUhpZ2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTlcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgM2g0djEyaC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSdW5uaW5nV2l0aEVycm9ycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDEwdjhoLTJ2LThoMnptLTIgMTB2Mmgydi0yaC0yem0tMi0yLjcxQTcuOTkgNy45OSAwIDAgMSAxMiAyMGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOHY5bDcuNTUtNy41NUE5Ljk2NSA5Ljk2NSAwIDAgMCAxMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwYzIuMjUgMCA0LjMzLS43NCA2LTJ2LTIuNzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNkQ2FyZEFsZXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAyaC04TDQuMDIgOCA0IDIwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTUgMTVoLTJ2LTJoMnYyem0wLTRoLTJWOGgydjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNkQ2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDJoLThMNC4wMiA4IDQgMjBjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tNiA2aC0yVjRoMnY0em0zIDBoLTJWNGgydjR6bTMgMGgtMlY0aDJ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2ltQ2FyZEFsZXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMmgtOEw0LjAyIDggNCAyMGMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS01IDE1aC0ydi0yaDJ2MnptMC00aC0yVjhoMnY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTbXNGYWlsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAyMmw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTcgMTJoLTJ2LTJoMnYyem0wLTRoLTJWNmgydjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNtcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDIybDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek05IDExSDdWOWgydjJ6bTQgMGgtMlY5aDJ2MnptNCAwaC0yVjloMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdXBwb3J0QWdlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMi4yMkMyMSA2LjczIDE2Ljc0IDMgMTIgM2MtNC42OSAwLTkgMy42NS05IDkuMjgtLjYuMzQtMSAuOTgtMSAxLjcydjJjMCAxLjEuOSAyIDIgMmgxdi02LjFjMC0zLjg3IDMuMTMtNyA3LTdzNyAzLjEzIDcgN1YxOWgtOHYyaDhjMS4xIDAgMi0uOSAyLTJ2LTEuMjJjLjU5LS4zMSAxLS45MiAxLTEuNjR2LTIuM2MwLS43LS40MS0xLjMxLTEtMS42MnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDExLjAzQTYuMDQgNi4wNCAwIDAgMCAxMi4wNSA2Yy0zLjAzIDAtNi4yOSAyLjUxLTYuMDMgNi40NWE4LjA3NSA4LjA3NSAwIDAgMCA0Ljg2LTUuODljMS4zMSAyLjYzIDQgNC40NCA3LjEyIDQuNDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN5bmNEaXNhYmxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA2LjM1VjQuMjZjLS44LjIxLTEuNTUuNTQtMi4yMy45NmwxLjQ2IDEuNDZjLjI1LS4xMi41LS4yNC43Ny0uMzN6bS03LjE0LS45NCAyLjM2IDIuMzZhNy45MjUgNy45MjUgMCAwIDAgMS4xNCA5Ljg3TDQgMjBoNnYtNmwtMi4yNCAyLjI0QTYuMDAzIDYuMDAzIDAgMCAxIDYgMTJjMC0xIC4yNS0xLjk0LjY4LTIuNzdsOC4wOCA4LjA4Yy0uMjUuMTMtLjUuMjUtLjc3LjM0djIuMDljLjgtLjIxIDEuNTUtLjU0IDIuMjMtLjk2bDIuMzYgMi4zNiAxLjI3LTEuMjdMNC4xNCA0LjE0IDIuODYgNS40MXpNMjAgNGgtNnY2bDIuMjQtMi4yNEE2LjAwMyA2LjAwMyAwIDAgMSAxOCAxMmMwIDEtLjI1IDEuOTQtLjY4IDIuNzdsMS40NiAxLjQ2YTcuOTI1IDcuOTI1IDAgMCAwLTEuMTQtOS44N0wyMCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTeW5jTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDQuMjZ2Mi4wOUM3LjY3IDcuMTggNiA5LjM5IDYgMTJjMCAxLjc3Ljc4IDMuMzQgMiA0LjQ0VjE0aDJ2Nkg0di0yaDIuNzNBNy45NDIgNy45NDIgMCAwIDEgNCAxMmMwLTMuNzMgMi41NS02Ljg1IDYtNy43NHpNMjAgNGgtNnY2aDJWNy41NmMxLjIyIDEuMSAyIDIuNjcgMiA0LjQ0aDJjMC0yLjQtMS4wNi00LjU0LTIuNzMtNkgyMFY0em0wIDEzdi0xYzAtMS4xLS45LTItMi0ycy0yIC45LTIgMnYxYy0uNTUgMC0xIC40NS0xIDF2M2MwIC41NS40NSAxIDEgMWg0Yy41NSAwIDEtLjQ1IDEtMXYtM2MwLS41NS0uNDUtMS0xLTF6bS0xIDBoLTJ2LTFjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN5bmNQcm9ibGVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxMmMwIDIuMjEuOTEgNC4yIDIuMzYgNS42NEwzIDIwaDZ2LTZsLTIuMjQgMi4yNEE2LjAwMyA2LjAwMyAwIDAgMSA1IDEyYTUuOTkgNS45OSAwIDAgMSA0LTUuNjVWNC4yNkM1LjU1IDUuMTUgMyA4LjI3IDMgMTJ6bTggNWgydi0yaC0ydjJ6TTIxIDRoLTZ2NmwyLjI0LTIuMjRBNi4wMDMgNi4wMDMgMCAwIDEgMTkgMTJhNS45OSA1Ljk5IDAgMCAxLTQgNS42NXYyLjA5YzMuNDUtLjg5IDYtNC4wMSA2LTcuNzQgMC0yLjIxLS45MS00LjItMi4zNi01LjY0TDIxIDR6bS0xMCA5aDJWN2gtMnY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTeW5jIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNFYxTDggNWw0IDRWNmMzLjMxIDAgNiAyLjY5IDYgNiAwIDEuMDEtLjI1IDEuOTctLjcgMi44bDEuNDYgMS40NkE3LjkzIDcuOTMgMCAwIDAgMjAgMTJjMC00LjQyLTMuNTgtOC04LTh6bTAgMTRjLTMuMzEgMC02LTIuNjktNi02IDAtMS4wMS4yNS0xLjk3LjctMi44TDUuMjQgNy43NEE3LjkzIDcuOTMgMCAwIDAgNCAxMmMwIDQuNDIgMy41OCA4IDggOHYzbDQtNC00LTR2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3lzdGVtVXBkYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMS4wMSA3IDFjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTcgMTlIN1Y1aDEwdjE0em0tMS02aC0zVjhoLTJ2NUg4bDQgNCA0LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRhcEFuZFBsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDE2djJjMi43NiAwIDUgMi4yNCA1IDVoMmMwLTMuODctMy4xMy03LTctN3ptMCA0djNoM2MwLTEuNjYtMS4zNC0zLTMtM3ptMC04djJhOSA5IDAgMCAxIDkgOWgyYzAtNi4wOC00LjkyLTExLTExLTExek0xNyAxLjAxIDcgMWMtMS4xIDAtMiAuOS0yIDJ2Ny4zN2MuNjkuMTYgMS4zNi4zNyAyIC42NFY1aDEwdjEzaC0zLjAzYy41MiAxLjI1Ljg0IDIuNTkuOTUgNEgxN2MxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUaW1lVG9MZWF2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjkyIDUuMDFDMTguNzIgNC40MiAxOC4xNiA0IDE3LjUgNGgtMTFjLS42NiAwLTEuMjEuNDItMS40MiAxLjAxTDMgMTF2OGMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWgxMnYxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi04bC0yLjA4LTUuOTl6TTYuNSAxNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzUuNjcgMTIgNi41IDEyczEuNS42NyAxLjUgMS41UzcuMzMgMTUgNi41IDE1em0xMSAwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpNNSAxMGwxLjUtNC41aDExTDE5IDEwSDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFR2T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xIDMuNTQgMS41MyAxLjUzQzEuNjUgNS4yOCAxIDYuMDYgMSA3djEyYzAgMS4xLjkgMiAyIDJoMTUuNDZsMiAyIDEuMjYtMS4yN0wyLjI3IDIuMjcgMSAzLjU0ek0zIDE5VjdoMS40NmwxMiAxMkgzek0yMSA1aC03LjU4bDMuMjktMy4zTDE2IDFsLTQgNC00LTQtLjcuN0wxMC41OCA1SDcuNTJsMiAySDIxdjExLjQ4bDEuNjUgMS42NWMuMjItLjMyLjM1LS43MS4zNS0xLjEzVjdjMC0xLjExLS44OS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlicmF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxNWgyVjlIMHY2em0zIDJoMlY3SDN2MTB6bTE5LTh2NmgyVjloLTJ6bS0zIDhoMlY3aC0ydjEwek0xNi41IDNoLTlDNi42NyAzIDYgMy42NyA2IDQuNXYxNWMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTVjMC0uODMtLjY3LTEuNS0xLjUtMS41ek0xNiAxOUg4VjVoOHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlkZW9DaGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAyMmw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTMgMTEtMi0xLjk5VjEzYzAgLjU1LS40NSAxLTEgMUg4Yy0uNTUgMC0xLS40NS0xLTFWN2MwLS41NS40NS0xIDEtMWg2Yy41NSAwIDEgLjQ1IDEgMXYxLjk5TDE3IDd2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVm9pY2VDaGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxOGw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNEg2bC0yIDJWNGgxNnYxMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMjUgNWgxLjV2MTBoLTEuNXpNOC41IDdIMTB2Nkg4LjV6TTYgOWgxLjV2Mkg2ek0xNCA3aDEuNXY2SDE0ek0xNi41IDlIMTh2MmgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWcG5Mb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNHYtLjVhMi41IDIuNSAwIDAgMC01IDBWNGMtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDFoNWMuNTUgMCAxLS40NSAxLTFWNWMwLS41NS0uNDUtMS0xLTF6bS0uOCAwaC0zLjR2LS41YzAtLjk0Ljc2LTEuNyAxLjctMS43czEuNy43NiAxLjcgMS43VjR6bS0yLjI4IDhjLjA0LjMzLjA4LjY2LjA4IDEgMCAyLjA4LS44IDMuOTctMi4xIDUuMzktLjI2LS44MS0xLTEuMzktMS45LTEuMzloLTF2LTNjMC0uNTUtLjQ1LTEtMS0xSDd2LTJoMmMuNTUgMCAxLS40NSAxLTFWOGgyYzEuMSAwIDItLjkgMi0yVjMuNDZjLS45NS0uMy0xLjk1LS40Ni0zLS40NkM1LjQ4IDMgMSA3LjQ4IDEgMTNzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwYzAtLjM0LS4wMi0uNjctLjA1LTFoLTIuMDN6TTEwIDIwLjkzYy0zLjk1LS40OS03LTMuODUtNy03LjkzIDAtLjYyLjA4LTEuMjEuMjEtMS43OUw4IDE2djFjMCAxLjEuOSAyIDIgMnYxLjkzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS41IDIydi03LjVINFY5YzAtMS4xLjktMiAyLTJoM2MxLjEgMCAyIC45IDIgMnY1LjVIOS41VjIyaC00ek0xOCAyMnYtNmgzbC0yLjU0LTcuNjNBMi4wMSAyLjAxIDAgMCAwIDE2LjU2IDdoLS4xMmEyIDIgMCAwIDAtMS45IDEuMzdMMTIgMTZoM3Y2aDN6TTcuNSA2YzEuMTEgMCAyLS44OSAyLTJzLS44OS0yLTItMi0yIC44OS0yIDIgLjg5IDIgMiAyem05IDBjMS4xMSAwIDItLjg5IDItMnMtLjg5LTItMi0yLTIgLjg5LTIgMiAuODkgMiAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdpZmlPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTI0IC4wMWMwLS4wMSAwLS4wMSAwIDBMMCAwdjI0aDI0Vi4wMXpNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIuOTkgOUMxOS4xNSA1LjE2IDEzLjggMy43NiA4Ljg0IDQuNzhsMi41MiAyLjUyYzMuNDctLjE3IDYuOTkgMS4wNSA5LjYzIDMuN2wyLTJ6bS00IDRhOS43OTMgOS43OTMgMCAwIDAtNC40OS0yLjU2bDMuNTMgMy41My45Ni0uOTd6TTIgMy4wNSA1LjA3IDYuMUMzLjYgNi44MiAyLjIyIDcuNzggMSA5bDEuOTkgMmMxLjI0LTEuMjQgMi42Ny0yLjE2IDQuMi0yLjc3bDIuMjQgMi4yNEE5LjY4NCA5LjY4NCAwIDAgMCA1IDEzdi4wMUw2Ljk5IDE1YTcuMDQyIDcuMDQyIDAgMCAxIDQuOTItMi4wNkwxOC45OCAyMGwxLjI3LTEuMjZMMy4yOSAxLjc5IDIgMy4wNXpNOSAxN2wzIDMgMy0zYTQuMjM3IDQuMjM3IDAgMCAwLTYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2lmaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEgOSAyIDJjNC45Ny00Ljk3IDEzLjAzLTQuOTcgMTggMGwyLTJDMTYuOTMgMi45MyA3LjA4IDIuOTMgMSA5em04IDggMyAzIDMtM2E0LjIzNyA0LjIzNyAwIDAgMC02IDB6bS00LTQgMiAyYTcuMDc0IDcuMDc0IDAgMCAxIDEwIDBsMi0yQzE1LjE0IDkuMTQgOC44NyA5LjE0IDUgMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFjVW5pdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDExaC00LjE3bDMuMjQtMy4yNC0xLjQxLTEuNDJMMTUgMTFoLTJWOWw0LjY2LTQuNjYtMS40Mi0xLjQxTDEzIDYuMTdWMmgtMnY0LjE3TDcuNzYgMi45MyA2LjM0IDQuMzQgMTEgOXYySDlMNC4zNCA2LjM0IDIuOTMgNy43NiA2LjE3IDExSDJ2Mmg0LjE3bC0zLjI0IDMuMjQgMS40MSAxLjQyTDkgMTNoMnYybC00LjY2IDQuNjYgMS40MiAxLjQxTDExIDE3LjgzVjIyaDJ2LTQuMTdsMy4yNCAzLjI0IDEuNDItMS40MUwxMyAxNXYtMmgybDQuNjYgNC42NiAxLjQxLTEuNDJMMTcuODMgMTNIMjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFpcnBvcnRTaHV0dGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNUgzYTIgMiAwIDAgMC0yIDJ2OWgyYzAgMS42NSAxLjM0IDMgMyAzczMtMS4zNSAzLTNoNS41YzAgMS42NSAxLjM0IDMgMyAzczMtMS4zNSAzLTNIMjN2LTVsLTYtNnpNMyAxMVY3aDR2NEgzem0zIDYuNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6bTctNi41SDlWN2g0djR6bTQuNSA2LjVjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41ek0xNSAxMVY3aDFsNCA0aC01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBbGxJbmNsdXNpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjYgNi42MmMtMS40NCAwLTIuOC41Ni0zLjc3IDEuNTNMMTIgMTAuNjYgMTAuNDggMTJoLjAxTDcuOCAxNC4zOWMtLjY0LjY0LTEuNDkuOTktMi40Ljk5LTEuODcgMC0zLjM5LTEuNTEtMy4zOS0zLjM4UzMuNTMgOC42MiA1LjQgOC42MmMuOTEgMCAxLjc2LjM1IDIuNDQgMS4wM2wxLjEzIDEgMS41MS0xLjM0TDkuMjIgOC4yQTUuMzcgNS4zNyAwIDAgMCA1LjQgNi42MkMyLjQyIDYuNjIgMCA5LjA0IDAgMTJzMi40MiA1LjM4IDUuNCA1LjM4YzEuNDQgMCAyLjgtLjU2IDMuNzctMS41M2wyLjgzLTIuNS4wMS4wMUwxMy41MiAxMmgtLjAxbDIuNjktMi4zOWMuNjQtLjY0IDEuNDktLjk5IDIuNC0uOTkgMS44NyAwIDMuMzkgMS41MSAzLjM5IDMuMzhzLTEuNTIgMy4zOC0zLjM5IDMuMzhjLS45IDAtMS43Ni0uMzUtMi40NC0xLjAzbC0xLjE0LTEuMDEtMS41MSAxLjM0IDEuMjcgMS4xMmE1LjM4NiA1LjM4NiAwIDAgMCAzLjgyIDEuNTdjMi45OCAwIDUuNC0yLjQxIDUuNC01LjM4cy0yLjQyLTUuMzctNS40LTUuMzd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFwYXJ0bWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDExVjNIN3Y0SDN2MTRoOHYtNGgydjRoOFYxMWgtNHpNNyAxOUg1di0yaDJ2MnptMC00SDV2LTJoMnYyem0wLTRINVY5aDJ2MnptNCA0SDl2LTJoMnYyem0wLTRIOVY5aDJ2MnptMC00SDlWNWgydjJ6bTQgOGgtMnYtMmgydjJ6bTAtNGgtMlY5aDJ2MnptMC00aC0yVjVoMnYyem00IDEyaC0ydi0yaDJ2MnptMC00aC0ydi0yaDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmFieUNoYW5naW5nU3RhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDh2MmgtM0w4LjMxIDguODIgNyAxMi43NVYyMkgzVjEybDEuNTgtNC42M0EyLjAwMyAyLjAwMyAwIDAgMSA3LjMgNi4xOGw0LjE1IDEuODNMMTQgOHpNOCAxYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMSAxOGgxMnYtMkg5djJ6bTEwLjUtM2MuODMgMCAxLjUtLjY3IDEuNS0xLjVzLS42Ny0xLjUtMS41LTEuNS0xLjUuNjctMS41IDEuNS42NyAxLjUgMS41IDEuNXpNMTMgMTJjMC0uNTUtLjQ1LTEtMS0xSDl2MmgydjFjMCAxLjEuOSAyIDIgMmgyYzEuMSAwIDItLjkgMi0ydi0zaC0ydjJoLTJ2LTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhY2twYWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOHYxMmMwIDEuMS0uOSAyLTIgMkg2Yy0xLjEgMC0yLS45LTItMlY4YzAtMS44NiAxLjI4LTMuNDEgMy0zLjg2VjJoM3YyaDRWMmgzdjIuMTRjMS43Mi40NSAzIDIgMyAzLjg2ek02IDEydjJoMTB2Mmgydi00SDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhbGNvbnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxMHYySDh2LTJoMnptNiAydi0yaC0ydjJoMnptNSAydjhIM3YtOGgxdi00YzAtNC40MiAzLjU4LTggOC04czggMy41OCA4IDh2NGgxek03IDE2SDV2NGgydi00em00IDBIOXY0aDJ2LTR6bTAtMTEuOTJDOC4xNiA0LjU2IDYgNy4wMyA2IDEwdjRoNVY0LjA4ek0xMyAxNGg1di00YzAtMi45Ny0yLjE2LTUuNDQtNS01LjkyVjE0em0yIDJoLTJ2NGgydi00em00IDBoLTJ2NGgydi00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYXRodHViIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI3XCIsXCJjeVwiOlwiN1wiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxM1Y0LjgzQzIwIDMuMjcgMTguNzMgMiAxNy4xNyAyYy0uNzUgMC0xLjQ3LjMtMiAuODNsLTEuMjUgMS4yNWMtLjE2LS4wNS0uMzMtLjA4LS41MS0uMDgtLjQgMC0uNzcuMTItMS4wOC4zMmwyLjc2IDIuNzZjLjItLjMxLjMyLS42OC4zMi0xLjA4IDAtLjE4LS4wMy0uMzQtLjA3LS41MWwxLjI1LTEuMjVhLjgyOC44MjggMCAwIDEgMS40MS41OVYxM2gtNi44NWMtLjMtLjIxLS41Ny0uNDUtLjgyLS43MmwtMS40LTEuNTVjLS4xOS0uMjEtLjQzLS4zOC0uNjktLjVBMi4yNTEgMi4yNTEgMCAwIDAgNSAxMi4yNVYxM0gydjZjMCAxLjEuOSAyIDIgMiAwIC41NS40NSAxIDEgMWgxNGMuNTUgMCAxLS40NSAxLTEgMS4xIDAgMi0uOSAyLTJ2LTZoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJlYWNoQWNjZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMuMTI3IDE0LjU2IDEuNDMtMS40MyA2LjQ0IDYuNDQzTDE5LjU3IDIxem00LjI5My01LjczIDIuODYtMi44NmMtMy45NS0zLjk1LTEwLjM1LTMuOTYtMTQuMy0uMDIgMy45My0xLjMgOC4zMS0uMjUgMTEuNDQgMi44OHpNNS45NSA1Ljk4Yy0zLjk0IDMuOTUtMy45MyAxMC4zNS4wMiAxNC4zbDIuODYtMi44NkM1LjcgMTQuMjkgNC42NSA5LjkxIDUuOTUgNS45OHptLjAyLS4wMi0uMDEuMDFjLS4zOCAzLjAxIDEuMTcgNi44OCA0LjMgMTAuMDJsNS43My01LjczYy0zLjEzLTMuMTMtNy4wMS00LjY4LTEwLjAyLTQuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmVudG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxMVY1aDRjMS4xIDAgMiAuOSAyIDJ2NGgtNnptNCA4YzEuMSAwIDItLjkgMi0ydi00aC02djZoNHpNMTQgNXYxNEg0Yy0xLjEgMC0yLS45LTItMlY3YzAtMS4xLjktMiAyLTJoMTB6bS00LjUgN2MwLS44My0uNjctMS41LTEuNS0xLjVzLTEuNS42Ny0xLjUgMS41LjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQnVuZ2Fsb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAzIDQuMiAxNS41bDEuNyAxLjA2TDcgMTQuOFYyMWg0di01aDJ2NWg0di02LjIxbDEuMSAxLjc3IDEuNy0xLjA2TDEyIDN6bTEgMTFoLTJ2LTJoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCdXNpbmVzc0NlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6bTEwIDVoNHYyaC00em0wIDBoNHYyaC00elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxNnYtMUgzLjAxTDMgMTljMCAxLjExLjg5IDIgMiAyaDE0YzEuMTEgMCAyLS44OSAyLTJ2LTRoLTd2MWgtNHptMTAtOWgtNC4wMVY1bC0yLTJoLTRsLTIgMnYySDRjLTEuMSAwLTIgLjktMiAydjNjMCAxLjExLjg5IDIgMiAyaDZ2LTJoNHYyaDZjMS4xIDAgMi0uOSAyLTJWOWMwLTEuMS0uOS0yLTItMnptLTYgMGgtNFY1aDR2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FiaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxYzAgMS42Ni0xLjM0IDMtMyAzLS41NSAwLTEgLjQ1LTEgMUg0YzAtMS42NiAxLjM0LTMgMy0zIC41NSAwIDEtLjQ1IDEtMWgyem0yIDJMNiA3LjU4VjZINHYzLjExTDEgMTEuNGwxLjIxIDEuNTlMNCAxMS42MlYyMWgxNnYtOS4zOGwxLjc5IDEuMzZMMjMgMTEuNCAxMiAzem0xLjk0IDRoLTMuODlMMTIgNS41MiAxMy45NCA3em0tNi41IDJoOS4xMkwxOCAxMC4xdi45SDZ2LS45TDcuNDQgOXpNMTggMTN2Mkg2di0yaDEyek02IDE5di0yaDEydjJINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FycGVudGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuNzMgMTQuMjMgNyAxLjUgMy4xMSA1LjM5bDguMTMgMTEuNjdjLS43OC43OC0uNzggMi4wNSAwIDIuODNsMS40MSAxLjQxYy43OC43OCAyLjA1Ljc4IDIuODMgMGw0LjI0LTQuMjRjLjc5LS43OC43OS0yLjA1LjAxLTIuODN6bS01LjY2IDUuNjUtMS40MS0xLjQxIDQuMjQtNC4yNCAxLjQxIDEuNDEtNC4yNCA0LjI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYXNpbm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0yMS4wMiAxOWMwIDEuMS0uOSAyLTIgMmgtMTRjLTEuMSAwLTItLjktMi0yVjVjMC0xLjEuOS0yIDItMmgxNGMxLjEgMCAyIC45IDIgMnYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTcuNSAxOGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzYuNjcgMTUgNy41IDE1czEuNS42NyAxLjUgMS41UzguMzMgMTggNy41IDE4em0wLTlDNi42NyA5IDYgOC4zMyA2IDcuNVM2LjY3IDYgNy41IDYgOSA2LjY3IDkgNy41IDguMzMgOSA3LjUgOXptNC41IDQuNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6bTQuNSA0LjVjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41em0wLTljLS44MyAwLTEuNS0uNjctMS41LTEuNVMxNS42NyA2IDE2LjUgNnMxLjUuNjcgMS41IDEuNVMxNy4zMyA5IDE2LjUgOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2hhbGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAgNy41IDcuNSA3LjUtMS40MSAxLjQxTDE1IDE1LjMzVjIwaC00di01SDl2NUg1di00LjY3bC0xLjA5IDEuMDlMMi41IDE1IDEwIDcuNXptMTItMWgtMS4xOWwuNzUtLjc1LS43MS0uNzEtMS40NiAxLjQ2aC0uODl2LS44OWwxLjQ1LTEuNDUtLjcxLS43MS0uNzQuNzRWM2gtMXYxLjE5bC0uNzUtLjc1LS43MS43MSAxLjQ1IDEuNDV2LjloLS44OWwtMS40NS0xLjQ1LS43MS43MS43NS43NUgxNHYxaDEuMTlsLS43NS43NS43MS43MSAxLjQ1LTEuNDVoLjg5di44OWwtMS40NSAxLjQ1LjcxLjcxLjc1LS43NVYxMWgxVjkuODFsLjc1Ljc1LjcxLS43MS0xLjQ2LTEuNDZWNy41aC44OWwxLjQ1IDEuNDUuNzEtLjcxLS43NC0uNzRIMjJ2LTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENoYXJnaW5nU3RhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0LjUgMTEtMyA2di00aC0ybDMtNnY0aDJ6TTcgMWgxMGMxLjEgMCAyIC45IDIgMnYxOGMwIDEuMS0uOSAyLTIgMkg3Yy0xLjEgMC0yLS45LTItMlYzYzAtMS4xLjktMiAyLTJ6bTAgNXYxMmgxMFY2SDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENoZWNrcm9vbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjYgMTguMiAxMyAxMS43NXYtLjkxYTMuNDk2IDMuNDk2IDAgMCAwLS4xOC02Ljc1QTMuNTEgMy41MSAwIDAgMCA4LjUgNy41aDJjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjVjMCAuODQtLjY5IDEuNTItMS41MyAxLjUtLjU0LS4wMS0uOTcuNDUtLjk3Ljk5djEuNzZMMi40IDE4LjJjLS43Ny41OC0uMzYgMS44LjYgMS44aDE4Yy45NiAwIDEuMzctMS4yMi42LTEuOHpNNiAxOGw2LTQuNSA2IDQuNUg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDaGlsZENhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE0LjVcIixcImN5XCI6XCIxMC41XCIsXCJyXCI6XCIxLjI1XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOS41XCIsXCJjeVwiOlwiMTAuNVwiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMi45NCAxMi42NmMuMDQtLjIxLjA2LS40My4wNi0uNjZzLS4wMi0uNDUtLjA2LS42NmE0LjAwOCA0LjAwOCAwIDAgMC0yLjgxLTMuMTcgOS4xMTQgOS4xMTQgMCAwIDAtMi4xOS0yLjkxQzE2LjM2IDMuODUgMTQuMjggMyAxMiAzcy00LjM2Ljg1LTUuOTQgMi4yNmMtLjkyLjgxLTEuNjcgMS44LTIuMTkgMi45MWEzLjk5NCAzLjk5NCAwIDAgMC0yLjgxIDMuMTdjLS4wNC4yMS0uMDYuNDMtLjA2LjY2cy4wMi40NS4wNi42NmE0LjAwOCA0LjAwOCAwIDAgMCAyLjgxIDMuMTcgOC45NzcgOC45NzcgMCAwIDAgMi4xNyAyLjg5QzcuNjIgMjAuMTQgOS43MSAyMSAxMiAyMXM0LjM4LS44NiA1Ljk3LTIuMjhjLjktLjggMS42NS0xLjc5IDIuMTctMi44OWEzLjk5OCAzLjk5OCAwIDAgMCAyLjgtMy4xN3pNMTkgMTRjLS4xIDAtLjE5LS4wMi0uMjktLjAzLS4yLjY3LS40OSAxLjI5LS44NiAxLjg2QzE2LjYgMTcuNzQgMTQuNDUgMTkgMTIgMTlzLTQuNi0xLjI2LTUuODUtMy4xN2MtLjM3LS41Ny0uNjYtMS4xOS0uODYtMS44Ni0uMS4wMS0uMTkuMDMtLjI5LjAzLTEuMSAwLTItLjktMi0ycy45LTIgMi0yYy4xIDAgLjE5LjAyLjI5LjAzLjItLjY3LjQ5LTEuMjkuODYtMS44NkM3LjQgNi4yNiA5LjU1IDUgMTIgNXM0LjYgMS4yNiA1Ljg1IDMuMTdjLjM3LjU3LjY2IDEuMTkuODYgMS44Ni4xLS4wMS4xOS0uMDMuMjktLjAzIDEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMnpNNy41IDE0Yy43NiAxLjc3IDIuNDkgMyA0LjUgM3MzLjc0LTEuMjMgNC41LTNoLTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENoaWxkRnJpZW5kbHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAydjhoOGMwLTQuNDItMy41OC04LTgtOHptNi4zMiAxMy44OUE3Ljk0OCA3Ljk0OCAwIDAgMCAyMSAxMUg2LjQ0bC0uOTUtMkgydjJoMi4yMnMxLjg5IDQuMDcgMi4xMiA0LjQyYy0xLjEuNTktMS44NCAxLjc1LTEuODQgMy4wOEM0LjUgMjAuNDMgNi4wNyAyMiA4IDIyYzEuNzYgMCAzLjIyLTEuMyAzLjQ2LTNoMi4wOGMuMjQgMS43IDEuNyAzIDMuNDYgMyAxLjkzIDAgMy41LTEuNTcgMy41LTMuNSAwLTEuMDQtLjQ2LTEuOTctMS4xOC0yLjYxek04IDIwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNy4xNyAxNyA4IDE3czEuNS42NyAxLjUgMS41UzguODMgMjAgOCAyMHptOSAwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuMTcgMTcgMTcgMTdzMS41LjY3IDEuNSAxLjVTMTcuODMgMjAgMTcgMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvcnBvcmF0ZUZhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3VjNIMnYxOGgyMFY3SDEyem0tMiAxMkg0di0yaDZ2MnptMC00SDR2LTJoNnYyem0wLTRINFY5aDZ2MnptMC00SDRWNWg2djJ6bTEwIDEyaC04VjloOHYxMHptLTItOGgtNHYyaDR2LTJ6bTAgNGgtNHYyaDR2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvdHRhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAzIDYgNy41OFY2SDR2My4xMUwxIDExLjRsMS4yMSAxLjU5TDQgMTEuNjJWMjFoN3YtNmgydjZoN3YtOS4zOGwxLjc5IDEuMzZMMjMgMTEuNCAxMiAzem0tMi0yYzAgMS42Ni0xLjM0IDMtMyAzLS41NSAwLTEgLjQ1LTEgMUg0YzAtMS42NiAxLjM0LTMgMy0zIC41NSAwIDEtLjQ1IDEtMWgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb3VudGVydG9wcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDEwVjdjMC0xLjY2LTEuMzQtMy0zLTNzLTMgMS4zNC0zIDNoMmMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2M0g4YzEuMSAwIDItLjkgMi0yVjRINHY0YzAgMS4xLjkgMiAyIDJIMnYyaDJ2OGgxNnYtOGgydi0yaC00em0tNSA4aC0ydi02aDJ2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3JpYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDloLTZWNEg4QzUuNzkgNCA0IDUuNzkgNCA4djZjMCAxLjEuOSAyIDIgMmgydjIuOTNjLS42MS0uMzUtMS4xNi0uNzgtMS42NS0xLjI3bC0xLjQyIDEuNDJDNi43NCAyMC44OCA5LjI0IDIyIDEyIDIyYzIuNzYgMCA1LjI2LTEuMTIgNy4wNy0yLjkzbC0xLjQyLTEuNDJjLS40OS40OS0xLjA1LjkyLTEuNjUgMS4yN1YxNmgyYzEuMSAwIDItLjkgMi0ydi0zYzAtMS4xLS45LTItMi0yem0tNCAxMC43NWMtLjY0LjE2LTEuMzEuMjUtMiAuMjVzLTEuMzYtLjA5LTItLjI1VjE2aDR2My43NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGVzayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgNnYxMmgyVjhoMTB2MTBoMnYtMmg0djJoMlY2SDJ6bTE4IDJ2MmgtNFY4aDR6bS00IDZ2LTJoNHYyaC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb05vdFN0ZXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xLjM5IDQuMjIgNy45IDcuOWMuMTguMi4xOC41LS4wMS43YS40ODUuNDg1IDAgMCAxLS43IDBMNi44NyAxMS4xYy0uMTEuNC0uMjYuNzgtLjQ1IDEuMTJsMS40IDEuNGMuMi4yLjIuNTEgMCAuNzFhLjQ4NS40ODUgMCAwIDEtLjcgMGwtMS4yNy0xLjI3Yy0uMjQuMjktLjUuNTYtLjc3LjhsMS4yOCAxLjI4Yy4yLjIuMi41MSAwIC43MS0uMS4xLS4yMy4xNS0uMzYuMTVzLS4yNi0uMDUtLjM1LS4xNWwtMS4zOC0xLjM4Yy0uNjkuNDYtMS4zOS43OS0xLjk3IDEuMDItLjc4LjMxLTEuMyAxLjA0LTEuMyAxLjg4VjIwaDkuNWwzLjMzLTMuMzMgNS45NCA1Ljk0IDEuNDEtMS40MUwyLjgxIDIuODEgMS4zOSA0LjIyem0xNy4xMiAxMS40Ni0xLjQxLTEuNDEgNC40OC00LjQ4TDIzIDExLjJsLTQuNDkgNC40OHptMi4zNy02LjYtNC40OCA0LjQ4LTcuMS03LjA5TDEzLjggMmw3LjA4IDcuMDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvTm90VG91Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMyAxMC4xNy0yLjUtMi41VjIuMjVhMS4yNSAxLjI1IDAgMCAxIDIuNSAwdjcuOTJ6bTcgMi41OHYtNy41YTEuMjUgMS4yNSAwIDAgMC0yLjUgMFYxMWgtMVYzLjI1YTEuMjUgMS4yNSAwIDAgMC0yLjUgMHY3LjkybDYgNnYtNC40MnpNOS41IDQuMjVDOS41IDMuNTYgOC45NCAzIDguMjUgM2MtLjY3IDAtMS4yLjUzLTEuMjQgMS4xOEw5LjUgNi42N1Y0LjI1em0zLjUgNS45Mi0yLjUtMi41VjIuMjVhMS4yNSAxLjI1IDAgMCAxIDIuNSAwdjcuOTJ6bTcgMi41OHYtNy41YTEuMjUgMS4yNSAwIDAgMC0yLjUgMFYxMWgtMVYzLjI1YTEuMjUgMS4yNSAwIDAgMC0yLjUgMHY3LjkybDYgNnYtNC40MnpNOS41IDQuMjVDOS41IDMuNTYgOC45NCAzIDguMjUgM2MtLjY3IDAtMS4yLjUzLTEuMjQgMS4xOEw5LjUgNi42N1Y0LjI1em0xMS42OSAxNi45NEwyLjgxIDIuODEgMS4zOSA0LjIybDUuNjMgNS42M0w3IDkuODN2NC4zYy0xLjExLS42NC0yLjU4LTEuNDctMi42LTEuNDgtLjE3LS4wOS0uMzQtLjE0LS41NC0uMTQtLjI2IDAtLjUuMDktLjcuMjYtLjA0LjAxLTEuMTYgMS4xMS0xLjE2IDEuMTFsNi44IDcuMThjLjU3LjYgMS4zNS45NCAyLjE4Ljk0SDE3Yy42MiAwIDEuMTgtLjE5IDEuNjUtLjUybC0uMDItLjAyIDEuMTUgMS4xNSAxLjQxLTEuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1LjY1IDQuODYtLjA3LS4wN2MtLjU3LS42Mi0uODItMS40MS0uNjctMi4yTDE1IDJoLTEuODlsLS4wNi40M2MtLjIgMS4zNi4yNyAyLjcxIDEuMyAzLjcybC4wNy4wNmMuNTcuNjIuODIgMS40MS42NyAyLjJsLS4xMS41OWgxLjkxbC4wNi0uNDNjLjIxLTEuMzYtLjI3LTIuNzEtMS4zLTMuNzF6bTQgMC0uMDctLjA3Yy0uNTctLjYyLS44Mi0xLjQxLS42Ny0yLjJMMTkgMmgtMS44OWwtLjA2LjQzYy0uMiAxLjM2LjI3IDIuNzEgMS4zIDMuNzJsLjA3LjA2Yy41Ny42Mi44MiAxLjQxLjY3IDIuMmwtLjExLjU5aDEuOTFsLjA2LS40M2MuMjEtMS4zNi0uMjctMi43MS0xLjMtMy43MXpNOS4xMiA1bC03LjE4IDYuNzljLS42LjU2LS45NCAxLjM1LS45NCAyLjE4VjIwYzAgMS42NiAxLjM0IDMgMyAzaDEzLjc1YTEuMjUgMS4yNSAwIDAgMCAwLTIuNUgxMnYtMWg3Ljc1YTEuMjUgMS4yNSAwIDAgMCAwLTIuNUgxMnYtMWg4Ljc1YTEuMjUgMS4yNSAwIDAgMCAwLTIuNUgxMnYtMWg2Ljc1YTEuMjUgMS4yNSAwIDAgMCAwLTIuNUg4Ljg2Yy42NC0xLjExIDEuNDgtMi41OCAxLjQ5LTIuNjFhMS4wNjUgMS4wNjUgMCAwIDAtLjEyLTEuMjNDMTAuMjIgNi4xMiA5LjEyIDUgOS4xMiA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFbGV2YXRvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek04LjUgNmExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41em0yLjUgOGgtMXY0SDd2LTRINnYtMi41YzAtMS4xLjktMiAyLTJoMWMxLjEgMCAyIC45IDIgMlYxNHptNC41IDNMMTMgMTNoNWwtMi41IDR6TTEzIDExbDIuNS00IDIuNSA0aC01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFc2NhbGF0b3JXYXJuaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41IDJjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0yem05IDcuNWMwIC44My42NyAxLjUgMS41IDEuNXMxLjUtLjY3IDEuNS0xLjVTMTcuODMgOCAxNyA4cy0xLjUuNjctMS41IDEuNXptMyAyLjVoLTIuODRjLS41OC4wMS0xLjE0LjMyLTEuNDUuODZsLS45MiAxLjMyTDkuNzIgOGEyLjAyIDIuMDIgMCAwIDAtMS43MS0xSDVjLTEuMSAwLTIgLjktMiAydjZoMS41djdoNVYxMS42MUwxMi4wMyAxNmgyLjJsLjc3LTEuMVYyMmg0di01aDF2LTMuNWMwLS44Mi0uNjctMS41LTEuNS0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVzY2FsYXRvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tMiA2aC0xLjdsLTUgOUg3Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNi4xNyAxNSA3IDE1aDEuN2w1LTlIMTdjLjgzIDAgMS41LjY3IDEuNSAxLjVTMTcuODMgOSAxNyA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGYW1pbHlSZXN0cm9vbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDRjMC0xLjExLjg5LTIgMi0yczIgLjg5IDIgMi0uODkgMi0yIDItMi0uODktMi0yem00IDE4di02aDIuNWwtMi41NC03LjYzQTIuMDEgMi4wMSAwIDAgMCAxOC4wNiA3aC0uMTJhMiAyIDAgMCAwLTEuOSAxLjM3bC0uODYgMi41OGMxLjA4LjYgMS44MiAxLjczIDEuODIgMy4wNXY4aDN6bS03LjUtMTAuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVzLS42Ny0xLjUtMS41LTEuNVMxMSA5LjE3IDExIDEwcy42NyAxLjUgMS41IDEuNXpNNS41IDZjMS4xMSAwIDItLjg5IDItMnMtLjg5LTItMi0yLTIgLjg5LTIgMiAuODkgMiAyIDJ6bTIgMTZ2LTdIOVY5YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjZoMS41djdoNHptNi41IDB2LTRoMXYtNGMwLS44Mi0uNjgtMS41LTEuNS0xLjVoLTJjLS44MiAwLTEuNS42OC0xLjUgMS41djRoMXY0aDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZlbmNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTJ2LTJoLTJWN2wtMy0zLTIgMi0yLTItMiAyLTItMi0zIDN2M0gzdjJoMnYySDN2MmgydjRoMTR2LTRoMnYtMmgtMnYtMmgyem0tNS01LjE3IDEgMVYxMGgtMlY3LjgzbC40MS0uNDEuNTktLjU5em0tNCAwIC41OS41OS40MS40MVYxMGgtMlY3LjgzbC40MS0uNDEuNTktLjU5ek0xMSAxNHYtMmgydjJoLTJ6bTIgMnYyaC0ydi0yaDJ6TTcgNy44M2wxLTEgLjU5LjU5LjQxLjQxVjEwSDdWNy44M3pNNyAxMmgydjJIN3YtMnptMCA0aDJ2Mkg3di0yem0xMCAyaC0ydi0yaDJ2MnptMC00aC0ydi0yaDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlyZUV4dGluZ3Vpc2hlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTloMTB2MWMwIDEuMS0uOSAyLTIgMkg5Yy0xLjEgMC0yLS45LTItMnYtMXptMC0xaDEwdi01SDd2NXpNMTcgM3Y2bC0zLjE1LS42NmMtLjAxIDAtLjAxLjAxLS4wMi4wMiAxLjU1LjYyIDIuNzIgMS45OCAzLjA3IDMuNjRINy4xYy4zNC0xLjY2IDEuNTItMy4wMiAzLjA3LTMuNjQtLjMzLS4yNi0uNi0uNTgtLjgtLjk1TDUgNi41di0xbDQuMzctLjkxQzkuODcgMy42NSAxMC44NiAzIDEyIDNjLjcgMCAxLjM0LjI1IDEuODUuNjZMMTcgM3ptLTQgM2MtLjAzLS41OS0uNDUtMS0xLTFzLTEgLjQ1LTEgMSAuNDUgMSAxIDEgMS0uNDUgMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaXRuZXNzQ2VudGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNTcgMTQuODYgMjIgMTMuNDMgMjAuNTcgMTIgMTcgMTUuNTcgOC40MyA3IDEyIDMuNDMgMTAuNTcgMiA5LjE0IDMuNDMgNy43MSAyIDUuNTcgNC4xNCA0LjE0IDIuNzEgMi43MSA0LjE0bDEuNDMgMS40M0wyIDcuNzFsMS40MyAxLjQzTDIgMTAuNTcgMy40MyAxMiA3IDguNDMgMTUuNTcgMTcgMTIgMjAuNTcgMTMuNDMgMjJsMS40My0xLjQzTDE2LjI5IDIybDIuMTQtMi4xNCAxLjQzIDEuNDMgMS40My0xLjQzLTEuNDMtMS40M0wyMiAxNi4yOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9vZEJhbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAzIDQgOXYxMmgxNlY5bC04LTZ6bS41IDkuNWMwIC44My0uNjcgMS41LTEuNSAxLjV2NGgtMXYtNGMtLjgzIDAtMS41LS42Ny0xLjUtMS41di0zaDF2M2guNXYtM2gxdjNoLjV2LTNoMXYzek0xNSAxOGgtMXYtMy41aC0xdi0zYzAtMS4xLjktMiAyLTJWMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvdW5kYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxMmgzTDEyIDMgMiAxMmgzdjNIM3YyaDJ2M2gydi0zaDR2M2gydi0zaDR2M2gydi0zaDJ2LTJoLTJ2LTN6TTcgMTV2LTQuODFsNC0zLjZWMTVIN3ptNiAwVjYuNTlsNCAzLjZWMTVoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZyZWVCcmVha2Zhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNINHYxMGMwIDIuMjEgMS43OSA0IDQgNGg2YzIuMjEgMCA0LTEuNzkgNC00di0zaDJhMiAyIDAgMCAwIDItMlY1YzAtMS4xMS0uODktMi0yLTJ6bTAgNWgtMlY1aDJ2M3pNNCAxOWgxNnYySDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdpdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA2SDlWNEg3djJINmwtNCA0djloMjB2LTlsLTQtNHpNNCAxMmgxMHY1SDR2LTV6bTE2IDVoLTR2LTYuMTdsMi0yIDIgMlYxN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR29sZkNvdXJzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxOS41XCIsXCJjeVwiOlwiMTkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDUuOTIgOSAydjE4SDd2LTEuNzNjLTEuNzkuMzUtMyAuOTktMyAxLjczIDAgMS4xIDIuNjkgMiA2IDJzNi0uOSA2LTJjMC0uOTktMi4xNi0xLjgxLTUtMS45N1Y4Ljk4bDYtMy4wNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR3Jhc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyMEgydi0yaDUuNzVBOC4wMzIgOC4wMzIgMCAwIDAgMiAxMi4yNmMuNjQtLjE2IDEuMzEtLjI2IDItLjI2IDQuNDIgMCA4IDMuNTggOCA4em0xMC03Ljc0Yy0uNjQtLjE2LTEuMzEtLjI2LTItLjI2LTIuOTMgMC01LjQ4IDEuNTgtNi44OCAzLjkzYTkuODIgOS44MiAwIDAgMSAuODcgNC4wN2g4di0yaC01Ljc1QTguMDYxIDguMDYxIDAgMCAxIDIyIDEyLjI2em0tNi4zNi0xLjI0YTEwLjAzIDEwLjAzIDAgMCAxIDQuMDktNUMxNS40NCA2LjE2IDEyIDkuNjcgMTIgMTR2LjAyYy45NS0xLjI3IDIuMi0yLjMgMy42NC0zem0tNC4yMi0yLjE3QTguNTI3IDguNTI3IDAgMCAwIDYuNyA0QzguMTQgNS44NiA5IDguMTggOSAxMC43MWMwIC4yMS0uMDMuNDEtLjA0LjYxLjQzLjI0LjgzLjUyIDEuMjIuODJhOS45MSA5LjkxIDAgMCAxIDEuMjQtMy4yOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSG9saWRheVZpbGxhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAyMFY4LjM1TDEzLjY1IDRoLTIuODNMMTYgOS4xOFYyMGgyem00IDBWNi42OUwxOS4zMSA0aC0yLjgzTDIwIDcuNTJWMjBoMnpNOCA0bC02IDZ2MTBoNXYtNWgydjVoNVYxMEw4IDR6bTEgOUg3di0yaDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSG90VHViIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI3XCIsXCJjeVwiOlwiNlwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4xNSAxMmMtLjMxLS4yMi0uNTktLjQ2LS44Mi0uNzJsLTEuNC0xLjU1Yy0uMTktLjIxLS40My0uMzgtLjY5LS41LS4yOS0uMTQtLjYyLS4yMy0uOTYtLjIzaC0uMDNDNi4wMSA5IDUgMTAuMDEgNSAxMS4yNVYxMkgydjhjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMnYtOEgxMS4xNXpNNyAyMEg1di02aDJ2NnptNCAwSDl2LTZoMnY2em00IDBoLTJ2LTZoMnY2em00IDBoLTJ2LTZoMnY2em0tLjM1LTE0LjE0LS4wNy0uMDdjLS41Ny0uNjItLjgyLTEuNDEtLjY3LTIuMkwxOCAzaC0xLjg5bC0uMDYuNDNjLS4yIDEuMzYuMjcgMi43MSAxLjMgMy43MmwuMDcuMDZjLjU3LjYyLjgyIDEuNDEuNjcgMi4ybC0uMTEuNTloMS45MWwuMDYtLjQzYy4yMS0xLjM2LS4yNy0yLjcxLTEuMy0zLjcxem0tNCAwLS4wNy0uMDdjLS41Ny0uNjItLjgyLTEuNDEtLjY3LTIuMkwxNCAzaC0xLjg5bC0uMDYuNDNjLS4yIDEuMzYuMjcgMi43MSAxLjMgMy43MmwuMDcuMDZjLjU3LjYyLjgyIDEuNDEuNjcgMi4ybC0uMTEuNTloMS45MWwuMDYtLjQzYy4yMS0xLjM2LS4yNy0yLjcxLTEuMy0zLjcxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIb3VzZVNpZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDEyaDNMMTIgMyAyIDEyaDN2OGgydi0yaDEwdjJoMnYtOHpNNy4yMSAxMGg5LjU4bC4yMS4xOVYxMkg3di0xLjgxbC4yMS0uMTl6bTcuMzYtMkg5LjQzTDEyIDUuNjkgMTQuNTcgOHpNNyAxNnYtMmgxMHYySDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhvdXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgOS4zVjRoLTN2Mi42TDEyIDMgMiAxMmgzdjhoNXYtNmg0djZoNXYtOGgzbC0zLTIuN3ptLTkgLjdjMC0xLjEuOS0yIDItMnMyIC45IDIgMmgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSG91c2Vib2F0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTZjLTEuOTUgMC0yLjEgMS0zLjM0IDEtMS4xOSAwLTEuNDItMS0zLjMzLTEtMS45NSAwLTIuMDkgMS0zLjMzIDF2MmMxLjkgMCAyLjE3LTEgMy4zNS0xIDEuMTkgMCAxLjQyIDEgMy4zMyAxIDEuOTUgMCAyLjA4LTEgMy4zMi0xczEuMzcgMSAzLjMyIDFjMS45MSAwIDIuMTQtMSAzLjMzLTEgMS4xOCAwIDEuNDUgMSAzLjM1IDF2LTJjLTEuMjQgMC0xLjM4LTEtMy4zMy0xLTEuOTEgMC0yLjE0IDEtMy4zMyAxLTEuMjQgMC0xLjM5LTEtMy4zNC0xem04LjM0LTQuNjYtMS4zNyAxLjM3Yy0uMTkuMTgtLjQ1LjI5LS43MS4yOUgxN1Y5LjY1bDEuMzIuOTdMMTkuNSA5IDEyIDMuNSA0LjUgOWwxLjE4IDEuNjFMNyA5LjY1VjEzSDUuNzRjLS4yNyAwLS41Mi0uMTEtLjcxLS4yOWwtMS4zNy0xLjM3LTEuNDEgMS40MSAxLjM3IDEuMzdjLjU2LjU2IDEuMzMuODggMi4xMi44OGgxMi41MWMuOCAwIDEuNTYtLjMyIDIuMTItLjg4bDEuMzctMS4zNy0xLjQtMS40MXpNMTMgMTNoLTJ2LTJoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJcm9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNmMtMS42NiAwLTMgMS4zNC0zIDN2NGMwIC41NS0uNDUgMS0xIDF2LTRjMC0xLjY2LTEuMzQtMy0zLTNoLTRjLTEuNjYgMC0zIDEuMzQtMyAzaDJjMC0uNTUuNDUtMSAxLTFoNGMuNTUgMCAxIC40NSAxIDF2MUg2Yy0yLjIxIDAtNCAxLjc5LTQgNHYzaDE1di0yYzEuNjYgMCAzLTEuMzQgMy0zVjljMC0uNTUuNDUtMSAxLTFoMVY2aC0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRLaXRjaGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOVY0YzAtMS4xLS45LTItMi0ySDZjLTEuMSAwLTIgLjktMiAydjVoMTZ6TTggNWgydjNIOFY1em0tNCA2djljMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMnYtOUg0em02IDZIOHYtNWgydjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1lZXRpbmdSb29tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA2djE1SDN2LTJoMlYzaDl2MWg1djE1aDJ2MmgtNFY2aC0zem0tNCA1djJoMnYtMmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWljcm93YXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi44IDEwLjYxIDUuMzcgOS4xOUM1LjczIDguNzkgNi41OSA4IDcuNzUgOGMuOCAwIDEuMzkuMzkgMS44MS42Ny4zMS4yMS41MS4zMy42OS4zMy4zNyAwIC44LS40MS45NS0uNjFsMS40MiAxLjQyYy0uMzYuNC0xLjIyIDEuMTktMi4zNyAxLjE5LS43OSAwLTEuMzctLjM4LTEuNzktLjY2LS4zMy0uMjItLjUyLS4zNC0uNzEtLjM0LS4zNyAwLS44LjQxLS45NS42MXpNNy43NSAxNWMuMTkgMCAuMzguMTIuNzEuMzQuNDIuMjggMSAuNjYgMS43OS42NiAxLjE2IDAgMi4wMS0uNzkgMi4zNy0xLjE5bC0xLjQyLTEuNDJjLS4xNS4yLS41OS42MS0uOTUuNjEtLjE4IDAtLjM4LS4xMi0uNjktLjMzLS40Mi0uMjgtMS4wMS0uNjctMS44MS0uNjctMS4xNiAwLTIuMDIuNzktMi4zOCAxLjE5bDEuNDIgMS40MmMuMTYtLjIuNTktLjYxLjk2LS42MXpNMjIgNnYxMmMwIDEuMS0uOSAyLTIgMkg0Yy0xLjEgMC0yLS45LTItMlY2YzAtMS4xLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJ6bS04IDBINHYxMmgxMFY2em01IDEwYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxIC40NSAxIDEgMSAxLS40NSAxLTF6bTAtNGMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMSAuNDUgMSAxIDEgMS0uNDUgMS0xem0wLTVoLTJ2MmgyVjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5pZ2h0U2hlbHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDMgNCA5djEyaDE2VjlsLTgtNnptLTIuMjUgOS41YTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjV6TTE3IDE4aC0xdi0xLjVIOFYxOEg3di03aDF2NC41aDMuNVYxMkgxNWMxLjEgMCAyIC45IDIgMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb0JhY2twYWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuMTkgMjEuMTkgMi44MSAyLjgxIDEuMzkgNC4yMmwyLjc2IDIuNzZDNC4wNiA3LjMxIDQgNy42NCA0IDh2MTJjMCAxLjEuOSAyIDIgMmgxMmMuMzQgMCAuNjUtLjA5LjkzLS4yNGwuODUuODUgMS40MS0xLjQyek02IDE0di0yaDMuMTdsMiAySDZ6bTguODMtMkw2Ljk4IDQuMTVjLjAxIDAgLjAxLS4wMS4wMi0uMDFWMmgzdjJoNFYyaDN2Mi4xNGMxLjcyLjQ1IDMgMiAzIDMuODZ2OS4xN2wtMi0yVjEyaC0zLjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb0NlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm04LjgzIDYtMy43LTMuN0M1LjQyIDEuNTUgNi4xNSAxIDcgMWwxMCAuMDFjMS4xIDAgMiAuODkgMiAxLjk5djEzLjE3bC0yLTJWNkg4Ljgzem0xMC45NSAxNi42MS0uOTEtLjkxYy0uMjkuNzUtMS4wMiAxLjMtMS44NyAxLjNIN2MtMS4xIDAtMi0uOS0yLTJWNy44M0wxLjM5IDQuMjIgMi44IDIuODFsMTguMzggMTguMzgtMS40IDEuNDJ6TTE1LjE3IDE4IDcgOS44M1YxOGg4LjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb0RyaW5rcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuODMgM0gyMXYybC02LjIgNi45N0w5LjgzIDdoNi43NGwxLjc4LTJINy44M2wtMi0yem0xMy45NSAxOS42MUwxOCAyMC44M1YyMUg2di0yaDV2LTVsLTEuMzctMS41NC04LjI0LTguMjRMMi44IDIuODEgMyAzbDE4LjE5IDE4LjE5LTEuNDEgMS40MnpNMTYuMTcgMTkgMTMgMTUuODNWMTloMy4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm9GbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjkzIDEzLjkzIDIuNDUgMi40NSAxLjA0IDMuODdsNS4zIDUuMy0uMi4yM0gzLjZjLS44OCAwLTEuNi43Mi0xLjYgMS42djkuNGMwIC44OC43MiAxLjYgMS42IDEuNmgxMi44Yy43NSAwIDEuMzgtLjUyIDEuNTUtMS4yMmwyLjE4IDIuMTggMS40MS0xLjQxTDE4IDE4bC00LjA3LTQuMDd6TTEwIDIwYy0yLjIxIDAtNC0xLjc5LTQtNCAwLTEuOTUgMS40LTMuNTcgMy4yNS0zLjkybDEuNTcgMS41N2MtLjI2LS4wOS0uNTMtLjE1LS44Mi0uMTVhMi41IDIuNSAwIDAgMCAwIDUgMi41IDIuNSAwIDAgMCAyLjUtMi41YzAtLjI5LS4wNi0uNTYtLjE1LS44MmwxLjU3IDEuNTdBMy45OTMgMy45OTMgMCAwIDEgMTAgMjB6bTgtNC44M0wxMC44MyA4aDEuNzVsMS4yOCAxLjRoMi41NGMuODggMCAxLjYuNzIgMS42IDEuNnY0LjE3em0yLjQtOS41N0gyMkwxOSAxMVY3aC0xVjJoNGwtMS42IDMuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm9Gb29kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMzUgOC41MiAxMSA1aDVWMWgydjRoNWwtMS4zOCAxMy43OUwxMS4zNSA4LjUyek0xIDIxdjFjMCAuNTUuNDUgMSAxIDFoMTNjLjU1IDAgMS0uNDUgMS0xdi0xSDF6bTIwLjkuOUwyLjEgMi4xLjY5IDMuNTFsNS43IDUuN0MzLjI4IDkuODcgMSAxMS45OSAxIDE1aDExLjE3bDIgMkgxdjJoMTV2LS4xN2w0LjQ5IDQuNDkgMS40MS0xLjQyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb01lZXRpbmdSb29tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxMWgtMXYyaDJ2LTFsOS43MyA5LjczTDIwLjQ2IDIzIDE0IDE2LjU0VjIxSDN2LTJoMlY3LjU0bC00LTQgMS4yNy0xLjI3TDExIDExem0zIC40OUw1LjUxIDNIMTR2MWg1djEyLjQ5bC0yLTJWNmgtM3Y1LjQ5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb1Bob3RvZ3JhcGh5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuOTQgOC4xMiA3LjQ4IDQuNjYgOSAzaDZsMS44MyAySDIwYzEuMSAwIDIgLjkgMiAydjEyYzAgLjA1LS4wMS4xLS4wMi4xNmwtNS4xLTUuMWMuMDgtLjM1LjEyLS43LjEyLTEuMDYgMC0yLjc2LTIuMjQtNS01LTUtLjM2IDAtLjcxLjA0LTEuMDYuMTJ6bTkuNTUgMTUuMTlMMTguMTcgMjFINGMtMS4xIDAtMi0uOS0yLTJWN2MwLS41OS4yNy0xLjEyLjY4LTEuNDlsLTItMkwyLjEgMi4xbDE5LjggMTkuOC0xLjQxIDEuNDF6bS02LTUuOTktMS41LTEuNWMtLjMyLjEtLjY0LjE4LS45OS4xOC0xLjY2IDAtMy0xLjM0LTMtMyAwLS4zNS4wOC0uNjcuMTktLjk4bC0xLjUtMS41QTQuNzQgNC43NCAwIDAgMCA3IDEzYzAgMi43NiAyLjI0IDUgNSA1IC45MSAwIDEuNzYtLjI1IDIuNDktLjY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb1N0cm9sbGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxOGMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6TTE4LjY1IDNjLTEuNjYgMC0yLjU0IDEuMjctMy4xOCAyLjAzbC0zLjUgNC4xMUwxNyAxNC4xN3YtNy45Yy41OC0uNjguOTctMS4yNyAxLjY1LTEuMjcuNzcgMCAxLjM1LjY2IDEuMzUgMS40OFY3aDJ2LS41MkMyMiA0LjU2IDIwLjUyIDMgMTguNjUgM3ptLTcuOTggNy42N0wyLjgxIDIuODEgMS4zOSA0LjIybDcuOTcgNy45Ny0yLjY2IDMuMTJjLS41NS42NS0uMDkgMS42NS43NiAxLjY1aDYuNjZsMS4xNyAxLjE3QzE0LjU0IDE4LjQyIDE0IDE5LjE0IDE0IDIwYzAgMS4xLjkgMiAyIDIgLjg2IDAgMS41OC0uNTQgMS44Ny0xLjNsMS45MSAxLjkxIDEuNDEtMS40MS00LjgtNC44LTUuNzItNS43M3ptMi44LTUuNjRjLjI3LS4zMi41OC0uNzIuOTgtMS4wOWE5LjM0NyA5LjM0NyAwIDAgMC03LjgxLS4xM2w0LjI1IDQuMjUgMi41OC0zLjAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdGhlckhvdXNlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDMgMSAxMS40bDEuMjEgMS41OUw0IDExLjYyVjIxaDE2di05LjM4bDEuNzkgMS4zNkwyMyAxMS40IDEyIDN6TTggMTVjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptNCAwYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTQgMGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQb29sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMjFjLTEuMTEgMC0xLjczLS4zNy0yLjE4LS42NC0uMzctLjIyLS42LS4zNi0xLjE1LS4zNi0uNTYgMC0uNzguMTMtMS4xNS4zNi0uNDYuMjctMS4wNy42NC0yLjE4LjY0cy0xLjczLS4zNy0yLjE4LS42NGMtLjM3LS4yMi0uNi0uMzYtMS4xNS0uMzYtLjU2IDAtLjc4LjEzLTEuMTUuMzYtLjQ2LjI3LTEuMDguNjQtMi4xOS42NC0xLjExIDAtMS43My0uMzctMi4xOC0uNjQtLjM3LS4yMy0uNi0uMzYtMS4xNS0uMzZzLS43OC4xMy0xLjE1LjM2Yy0uNDYuMjctMS4wOC42NC0yLjE5LjY0di0yYy41NiAwIC43OC0uMTMgMS4xNS0uMzYuNDYtLjI3IDEuMDgtLjY0IDIuMTktLjY0czEuNzMuMzcgMi4xOC42NGMuMzcuMjMuNTkuMzYgMS4xNS4zNi41NiAwIC43OC0uMTMgMS4xNS0uMzYuNDYtLjI3IDEuMDgtLjY0IDIuMTktLjY0IDEuMTEgMCAxLjczLjM3IDIuMTguNjQuMzcuMjIuNi4zNiAxLjE1LjM2cy43OC0uMTMgMS4xNS0uMzZjLjQ1LS4yNyAxLjA3LS42NCAyLjE4LS42NHMxLjczLjM3IDIuMTguNjRjLjM3LjIzLjU5LjM2IDEuMTUuMzZ2MnptMC00LjVjLTEuMTEgMC0xLjczLS4zNy0yLjE4LS42NC0uMzctLjIyLS42LS4zNi0xLjE1LS4zNi0uNTYgMC0uNzguMTMtMS4xNS4zNi0uNDUuMjctMS4wNy42NC0yLjE4LjY0cy0xLjczLS4zNy0yLjE4LS42NGMtLjM3LS4yMi0uNi0uMzYtMS4xNS0uMzYtLjU2IDAtLjc4LjEzLTEuMTUuMzYtLjQ1LjI3LTEuMDcuNjQtMi4xOC42NHMtMS43My0uMzctMi4xOC0uNjRjLS4zNy0uMjItLjYtLjM2LTEuMTUtLjM2cy0uNzguMTMtMS4xNS4zNmMtLjQ3LjI3LTEuMDkuNjQtMi4yLjY0di0yYy41NiAwIC43OC0uMTMgMS4xNS0uMzYuNDUtLjI3IDEuMDctLjY0IDIuMTgtLjY0czEuNzMuMzcgMi4xOC42NGMuMzcuMjIuNi4zNiAxLjE1LjM2LjU2IDAgLjc4LS4xMyAxLjE1LS4zNi40NS0uMjcgMS4wNy0uNjQgMi4xOC0uNjRzMS43My4zNyAyLjE4LjY0Yy4zNy4yMi42LjM2IDEuMTUuMzZzLjc4LS4xMyAxLjE1LS4zNmMuNDUtLjI3IDEuMDctLjY0IDIuMTgtLjY0czEuNzMuMzcgMi4xOC42NGMuMzcuMjIuNi4zNiAxLjE1LjM2djJ6TTguNjcgMTJjLjU2IDAgLjc4LS4xMyAxLjE1LS4zNi40Ni0uMjcgMS4wOC0uNjQgMi4xOS0uNjQgMS4xMSAwIDEuNzMuMzcgMi4xOC42NC4zNy4yMi42LjM2IDEuMTUuMzZzLjc4LS4xMyAxLjE1LS4zNmMuMTItLjA3LjI2LS4xNS40MS0uMjNMMTAuNDggNUM4LjkzIDMuNDUgNy41IDIuOTkgNSAzdjIuNWMxLjgyLS4wMSAyLjg5LjM5IDQgMS41bDEgMS0zLjI1IDMuMjVjLjMxLjEyLjU2LjI3Ljc3LjM5LjM3LjIzLjU5LjM2IDEuMTUuMzZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTYuNVwiLFwiY3lcIjpcIjUuNVwiLFwiclwiOlwiMi41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJpY2VCb3dsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTJjMC01LjUyLTQuNDgtMTAtMTAtMTBTMiA2LjQ4IDIgMTJjMCAzLjY5IDIuNDcgNi44NiA2IDguMjVWMjJoOHYtMS43NWMzLjUzLTEuMzkgNi00LjU2IDYtOC4yNXptLTIgMGgtNFY1LjA4YzIuMzkgMS4zOSA0IDMuOTcgNCA2Ljkyem0tNi03Ljc0VjEyaC00VjQuMjZjLjY0LS4xNiAxLjMxLS4yNiAyLS4yNnMxLjM2LjEgMiAuMjZ6TTQgMTJjMC0yLjk1IDEuNjEtNS41MyA0LTYuOTJWMTJINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUm9vZmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDE4aC0ydi0yaDJ2MnptMi00SDl2Nmg2di02em00LTQuN1Y0aC0zdjIuNkwxMiAzIDIgMTJoM2w3LTYuMzFMMTkgMTJoM2wtMy0yLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJvb21QcmVmZXJlbmNlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDExLjI2VjZoM3Y0aDJWNGgtNVYzSDV2MTZIM3YyaDkuMjZBNi45NjMgNi45NjMgMCAwIDEgMTEgMTdjMC0yLjM4IDEuMTktNC40NyAzLTUuNzR6TTEwIDExaDJ2MmgtMnYtMnptMTEuNjkgNS4zNyAxLjE0LTEtMS0xLjczLTEuNDUuNDljLS4zMi0uMjctLjY4LS40OC0xLjA4LS42M0wxOSAxMmgtMmwtLjMgMS40OWMtLjQuMTUtLjc2LjM2LTEuMDguNjNsLTEuNDUtLjQ5LTEgMS43MyAxLjE0IDFjLS4wOC41LS4wOC43NiAwIDEuMjZsLTEuMTQgMSAxIDEuNzMgMS40NS0uNDljLjMyLjI3LjY4LjQ4IDEuMDguNjNMMTcgMjJoMmwuMy0xLjQ5Yy40LS4xNS43Ni0uMzYgMS4wOC0uNjNsMS40NS40OSAxLTEuNzMtMS4xNC0xYy4wOC0uNTEuMDgtLjc3IDAtMS4yN3pNMTggMTljLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSb29tU2VydmljZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxN2gyMHYySDJ6bTExLjg0LTkuMjFBMi4wMDYgMi4wMDYgMCAwIDAgMTIgNWEyLjAwNiAyLjAwNiAwIDAgMC0xLjg0IDIuNzlDNi4yNSA4LjYgMy4yNyAxMS45MyAzIDE2aDE4Yy0uMjctNC4wNy0zLjI1LTcuNC03LjE2LTguMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJ2SG9va3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMTQgMTFoNHYzaC00elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxN3YtNmMwLTEuMS0uOS0yLTItMkg3VjdsLTMgMyAzIDN2LTJoNHYzSDR2M2MwIDEuMS45IDIgMiAyaDJjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtM2g4di0yaC0yem0tOSAzYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTctNmgtNHYtM2g0djN6TTE3IDJ2Mkg5djJoOHYybDMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU21va2VGcmVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMiA2IDYuOTkgN0gydjNoOS45OWw3IDcgMS4yNi0xLjI1LTE3LTE3em0xOC41IDdIMjJ2M2gtMS41ek0xOCAxM2gxLjV2M0gxOHptLjg1LTguMTJjLjYyLS42MSAxLTEuNDUgMS0yLjM4aC0xLjVjMCAxLjAyLS44MyAxLjg1LTEuODUgMS44NXYxLjVjMi4yNCAwIDQgMS44MyA0IDQuMDdWMTJIMjJWOS45MmMwLTIuMjMtMS4yOC00LjE1LTMuMTUtNS4wNHpNMTQuNSA4LjdoMS41M2MxLjA1IDAgMS45Ny43NCAxLjk3IDIuMDVWMTJoMS41di0xLjU5YzAtMS44LTEuNi0zLjE2LTMuNDctMy4xNkgxNC41Yy0xLjAyIDAtMS44NS0uOTgtMS44NS0ycy44My0xLjc1IDEuODUtMS43NVYyYTMuMzUgMy4zNSAwIDAgMCAwIDYuN3ptMi41IDcuMjNWMTNoLTIuOTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNtb2tpbmdSb29tcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTZoMTV2M0gyem0xOC41IDBIMjJ2M2gtMS41ek0xOCAxNmgxLjV2M0gxOHptLjg1LTguMjdjLjYyLS42MSAxLTEuNDUgMS0yLjM4QzE5Ljg1IDMuNSAxOC4zNSAyIDE2LjUgMnYxLjVjMS4wMiAwIDEuODUuODMgMS44NSAxLjg1UzE3LjUyIDcuMiAxNi41IDcuMnYxLjVjMi4yNCAwIDQgMS44MyA0IDQuMDdWMTVIMjJ2LTIuMjRjMC0yLjIyLTEuMjgtNC4xNC0zLjE1LTUuMDN6bS0yLjgyIDIuNDdIMTQuNWMtMS4wMiAwLTEuODUtLjk4LTEuODUtMnMuODMtMS43NSAxLjg1LTEuNzV2LTEuNWEzLjM1IDMuMzUgMCAwIDAgMCA2LjdoMS41M2MxLjA1IDAgMS45Ny43NCAxLjk3IDIuMDVWMTVoMS41di0xLjY0YzAtMS44MS0xLjYtMy4xNi0zLjQ3LTMuMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNvYXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm05LjEyIDUtNy4xOCA2Ljc5Yy0uNi41Ni0uOTQgMS4zNS0uOTQgMi4xOFYyMGMwIDEuNjYgMS4zNCAzIDMgM2gxMy43NWExLjI1IDEuMjUgMCAwIDAgMC0yLjVIMTJ2LTFoNy43NWExLjI1IDEuMjUgMCAwIDAgMC0yLjVIMTJ2LTFoOC43NWExLjI1IDEuMjUgMCAwIDAgMC0yLjVIMTJ2LTFoNi43NWExLjI1IDEuMjUgMCAwIDAgMC0yLjVIOC44NmMuNjQtMS4xMSAxLjQ4LTIuNTggMS40OS0yLjYxYTEuMDY1IDEuMDY1IDAgMCAwLS4xMi0xLjIzQzEwLjIyIDYuMTIgOS4xMiA1IDkuMTIgNXpNMTQgNi4yNWMuNDEgMCAuNzUuMzQuNzUuNzVzLS4zNC43NS0uNzUuNzUtLjc1LS4zNC0uNzUtLjc1LjM0LS43NS43NS0uNzVtMC0xLjVjLTEuMjQgMC0yLjI1IDEuMDEtMi4yNSAyLjI1UzEyLjc2IDkuMjUgMTQgOS4yNSAxNi4yNSA4LjI0IDE2LjI1IDcgMTUuMjQgNC43NSAxNCA0Ljc1em01Ljc1Ljc1Yy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNS0uNS0uMjItLjUtLjUuMjItLjUuNS0uNW0wLTEuNWMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6TTE2LjUgMWMtLjgzIDAtMS41LjY3LTEuNSAxLjVTMTUuNjcgNCAxNi41IDQgMTggMy4zMyAxOCAyLjUgMTcuMzMgMSAxNi41IDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMTMuOTcgMjEuNDljLS42My4yMy0xLjI5LjQtMS45Ny41MS42OC0uMTIgMS4zMy0uMjkgMS45Ny0uNTF6TTEyIDIyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjU1IDEyem0xMC40My0xLjYxek0xNS40OSA5LjYzYy0uMTgtMi43OS0xLjMxLTUuNTEtMy40My03LjYzYTEyLjE4OCAxMi4xODggMCAwIDAtMy41NSA3LjYzYzEuMjguNjggMi40NiAxLjU2IDMuNDkgMi42MyAxLjAzLTEuMDYgMi4yMS0xLjk0IDMuNDktMi42M3ptLTYuNSAyLjY1Yy0uMTQtLjEtLjMtLjE5LS40NS0uMjkuMTUuMTEuMzEuMTkuNDUuMjl6bTYuNDItLjI1Yy0uMTMuMDktLjI3LjE2LS40LjI2LjEzLS4xLjI3LS4xNy40LS4yNnpNMTIgMTUuNDVDOS44NSAxMi4xNyA2LjE4IDEwIDIgMTBjMCA1LjMyIDMuMzYgOS44MiA4LjAzIDExLjQ5LjYzLjIzIDEuMjkuNCAxLjk3LjUxLjY4LS4xMiAxLjMzLS4yOSAxLjk3LS41MUMxOC42NCAxOS44MiAyMiAxNS4zMiAyMiAxMGMtNC4xOCAwLTcuODUgMi4xNy0xMCA1LjQ1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcG9ydHNCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA5aC0xLjU2Yy4zNS0uNTkuNTYtMS4yNy41Ni0yIDAtMi4yMS0xLjc5LTQtNC00LS4zNCAwLS42Ni4wNS0uOTguMTNBNC43MDcgNC43MDcgMCAwIDAgMTAgMi4wMmMtMS44OSAwLTMuNTEgMS4xMS00LjI3IDIuNzFDNC4xNSA1LjI2IDMgNi43NCAzIDguNWMwIDEuODYgMS4yOCAzLjQxIDMgMy44NlYyMWgxMXYtMmgyYzEuMSAwIDItLjkgMi0ydi02YzAtMS4xLS45LTItMi0yek03IDEwLjVjLTEuMSAwLTItLjktMi0yIDAtLjg1LjU1LTEuNiAxLjM3LTEuODhsLjgtLjI3LjM2LS43NkM4IDQuNjIgOC45NCA0LjAyIDEwIDQuMDJjLjc5IDAgMS4zOS4zNSAxLjc0LjY1bC43OC42NVMxMy4xNiA1IDEzLjk5IDVjMS4xIDAgMiAuOSAyIDJoLTNDOS42NyA3IDkuMTUgMTAuNSA3IDEwLjV6TTE5IDE3aC0ydi02aDJ2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RhaXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS0xIDVoLTIuNDJ2My4zM0gxM3YzLjMzaC0yLjU4VjE4SDZ2LTJoMi40MnYtMy4zM0gxMVY5LjMzaDIuNThWNkgxOHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdG9yZWZyb250IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuOSA4Ljg5LTEuMDUtNC4zN2MtLjIyLS45LTEtMS41Mi0xLjkxLTEuNTJINS4wNWMtLjkgMC0xLjY5LjYzLTEuOSAxLjUyTDIuMSA4Ljg5Yy0uMjQgMS4wMi0uMDIgMi4wNi42MiAyLjg4LjA4LjExLjE5LjE5LjI4LjI5VjE5YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTYuOTRjLjA5LS4wOS4yLS4xOC4yOC0uMjguNjQtLjgyLjg3LTEuODcuNjItMi44OXptLTIuOTktMy45IDEuMDUgNC4zN2MuMS40Mi4wMS44NC0uMjUgMS4xNy0uMTQuMTgtLjQ0LjQ3LS45NC40Ny0uNjEgMC0xLjE0LS40OS0xLjIxLTEuMTRMMTYuOTggNWwxLjkzLS4wMXpNMTMgNWgxLjk2bC41NCA0LjUyYy4wNS4zOS0uMDcuNzgtLjMzIDEuMDctLjIyLjI2LS41NC40MS0uOTUuNDEtLjY3IDAtMS4yMi0uNTktMS4yMi0xLjMxVjV6TTguNDkgOS41MiA5LjA0IDVIMTF2NC42OWMwIC43Mi0uNTUgMS4zMS0xLjI5IDEuMzEtLjM0IDAtLjY1LS4xNS0uODktLjQxYTEuNDIgMS40MiAwIDAgMS0uMzMtMS4wN3ptLTQuNDUtLjE2TDUuMDUgNWgxLjk3bC0uNTggNC44NmMtLjA4LjY1LS42IDEuMTQtMS4yMSAxLjE0LS40OSAwLS44LS4yOS0uOTMtLjQ3LS4yNy0uMzItLjM2LS43NS0uMjYtMS4xN3pNNSAxOXYtNi4wM2MuMDguMDEuMTUuMDMuMjMuMDMuODcgMCAxLjY2LS4zNiAyLjI0LS45NS42LjYgMS40Ljk1IDIuMzEuOTUuODcgMCAxLjY1LS4zNiAyLjIzLS45My41OS41NyAxLjM5LjkzIDIuMjkuOTMuODQgMCAxLjY0LS4zNSAyLjI0LS45NS41OC41OSAxLjM3Ljk1IDIuMjQuOTUuMDggMCAuMTUtLjAyLjIzLS4wM1YxOUg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdHJvbGxlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTZcIixcImN5XCI6XCIyMFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjZcIixcImN5XCI6XCIyMFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA3di0uNTJDMjIgNC41NiAyMC41MiAzIDE4LjY1IDNjLTEuNjYgMC0yLjU0IDEuMjctMy4xOCAyLjAzbC04LjggMTAuMzJDNi4xMiAxNiA2LjU4IDE3IDcuNDMgMTdIMTVjMS4xIDAgMi0uOSAyLTJWNi4yN2MuNTgtLjY4Ljk3LTEuMjcgMS42NS0xLjI3Ljc3IDAgMS4zNS42NiAxLjM1IDEuNDhWN2gyek0xNC4zIDQuMWE4Ljk2MiA4Ljk2MiAwIDAgMC05LjU4LjYybDQuODkgNC44OUwxNC4zIDQuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGFwYXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMFYxaC04djljMCAxLjg2IDEuMjggMy40MSAzIDMuODZWMjFoLTJ2Mmg2di0yaC0ydi03LjE0YzEuNzItLjQ1IDMtMiAzLTMuODZ6bS0yLTd2M2gtNFYzaDR6bS03LjUgOC41QTIuNSAyLjUgMCAwIDEgMTAgMTRIOHY5SDZ2LTlINGEyLjUgMi41IDAgMCAxIDAtNWgyVjhINGEyLjUgMi41IDAgMCAxIDAtNWgyVjFoMnYyaDJhMi41IDIuNSAwIDAgMSAwIDVIOHYxaDJhMi41IDIuNSAwIDAgMSAyLjUgMi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA0aDJ2MmgtMlY0em0tMSAzaDJ2MmgtMlY3em0tMi0zaDJ2MmgtMlY0em03IDVoLTJWN2gydjJ6bTEtM2gtMlY0aDJ2MnptMiAzaC0yVjdoMnYyem0xLTNoLTJWNGgydjJ6bS03LjM4IDguMzhMMTIuMSAxNi45Yy0yLjUtMS40My00LjU3LTMuNS02LTZsMi41Mi0yLjUyYy4yNC0uMjQuMzQtLjU4LjI4LS45TDguMTYgMy44Yy0uMDktLjQ2LS41LS44LS45OC0uOEgzLjAzYy0uNTYgMC0xLjAzLjQ3LTEgMS4wMy4xNyAyLjg5IDEuMDIgNS42IDIuNCA3Ljk3IDEuNTggMi43MyAzLjg1IDQuOTkgNi41NyA2LjU3IDIuMzcgMS4zNyA1LjA4IDIuMjMgNy45NyAyLjQuNTYuMDMgMS4wMy0uNDQgMS4wMy0xdi00LjE1YzAtLjQ4LS4zNC0uODktLjgtLjk4bC0zLjY3LS43M2EuOTkuOTkgMCAwIDAtLjkxLjI3ek0xNCAxMGgydjJoLTJ2LTJ6bS0zIDBoMnYyaC0ydi0yem04IDJoLTJ2LTJoMnYyem0zIDBoLTJ2LTJoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRVbWJyZWxsYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgNi45MiAxMyA1Ljc3VjMuNGMwLS4yNi4yMi0uNDguNS0uNDhzLjUuMjEuNS40OFY0aDJ2LS42QzE2IDIuMDcgMTQuODggMSAxMy41IDFTMTEgMi4wNyAxMSAzLjR2Mi4zN0w5LjUgNi45MiA2IDYuMDdsNS4wNSAxNS4yNWMuMTUuNDUuNTUuNjguOTUuNjhzLjgtLjIzLjk1LS42OUwxOCA2LjA3bC0zLjUuODV6TTEzLjI4IDguNWwuNzYuNTguOTItLjIzTDEzIDE0LjhWOC4yOWwuMjguMjF6bS0zLjMyLjU5Ljc2LS41OC4yOC0uMjJ2Ni41MUw5LjAzIDguODZsLjkzLjIzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWYXBlRnJlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTYuNWgxYzEuMzMgMCAyLjcxLS4xOCA0LS41djNjLTEuMjktLjMyLTIuNjctLjUtNC0uNUgydi0yek0xNi4xNyAxOUg4di0zaDUuMTdMMS4zOSA0LjIyIDIuOCAyLjgxbDE4LjM4IDE4LjM4LTEuNDEgMS40MS0zLjYtMy42em0yLjY2LTNIMjJ2M2gtLjE3bC0zLTN6TTExIDE3LjVjMC0uMjgtLjIyLS41LS41LS41cy0uNS4yMi0uNS41LjIyLjUuNS41LjUtLjIyLjUtLjV6bTExLTQuNzRWMTVoLTEuNXYtMi4yM2MwLTIuMjQtMS43Ni00LjA3LTQtNC4wN1Y3LjJjMS4wMiAwIDEuODUtLjgzIDEuODUtMS44NVMxNy41MiAzLjUgMTYuNSAzLjVWMmMxLjg1IDAgMy4zNSAxLjUgMy4zNSAzLjM1IDAgLjkzLS4zOCAxLjc3LTEgMi4zOCAxLjg3Ljg5IDMuMTUgMi44MSAzLjE1IDUuMDN6TTExLjE1IDguMzJWOC4zYzAtMS44NSAxLjUtMy4zNSAzLjM1LTMuMzV2MS41Yy0xLjAyIDAtMS44NS43My0xLjg1IDEuNzVzLjgzIDIgMS44NSAyaDEuNTNjMS44NyAwIDMuNDcgMS4zNSAzLjQ3IDMuMTZWMTVIMTh2LTEuM2MwLTEuMzEtLjkyLTIuMDUtMS45Ny0yLjA1aC0xLjU1bC0zLjMzLTMuMzN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZhcGluZ1Jvb21zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxNi41aDFjMS4zMyAwIDIuNzEtLjE4IDQtLjV2M2MtMS4yOS0uMzItMi42Ny0uNS00LS41SDJ2LTJ6bTIwLS41djNIOHYtM2gxNHptLTExIDEuNWMwLS4yOC0uMjItLjUtLjUtLjVzLS41LjIyLS41LjUuMjIuNS41LjUuNS0uMjIuNS0uNXptMTEtNC43NFYxNWgtMS41di0yLjIzYzAtMi4yNC0xLjc2LTQuMDctNC00LjA3VjcuMmMxLjAyIDAgMS44NS0uODMgMS44NS0xLjg1UzE3LjUyIDMuNSAxNi41IDMuNVYyYzEuODUgMCAzLjM1IDEuNSAzLjM1IDMuMzUgMCAuOTMtLjM4IDEuNzctMSAyLjM4IDEuODcuODkgMy4xNSAyLjgxIDMuMTUgNS4wM3ptLTIuNS42VjE1SDE4di0xLjNjMC0xLjMxLS45Mi0yLjA1LTEuOTctMi4wNUgxNC41YTMuMzUgMy4zNSAwIDAgMSAwLTYuN3YxLjVjLTEuMDIgMC0xLjg1LjczLTEuODUgMS43NXMuODMgMiAxLjg1IDJoMS41M2MxLjg3IDAgMy40NyAxLjM1IDMuNDcgMy4xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlsbGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDIxSDNWOGwxMy01djdIN3YxMXptMTItMTFjLTEuMSAwLTIgLjktMiAySDl2OWg1di01aDJ2NWg1di05YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNSA4QTIuNSAyLjUgMCAwIDAgMjEgNS41QzIxIDMuODMgMTguNSAxIDE4LjUgMVMxNiAzLjgzIDE2IDUuNUEyLjUgMi41IDAgMCAwIDE4LjUgOHptLTUgMWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uODQtMS41LTIuNS0xLjUtMi41UzEyIDYuNjYgMTIgNy41YzAgLjgzLjY3IDEuNSAxLjUgMS41ek05LjEyIDVsLTcuMTggNi43OWMtLjYuNTYtLjk0IDEuMzUtLjk0IDIuMThWMjBjMCAxLjY2IDEuMzQgMyAzIDNoMTMuNzVhMS4yNSAxLjI1IDAgMCAwIDAtMi41SDEydi0xaDcuNzVhMS4yNSAxLjI1IDAgMCAwIDAtMi41SDEydi0xaDguNzVhMS4yNSAxLjI1IDAgMCAwIDAtMi41SDEydi0xaDYuNzVhMS4yNSAxLjI1IDAgMCAwIDAtMi41SDguODZjLjY0LTEuMTEgMS40OC0yLjU4IDEuNDktMi42MWExLjA2NSAxLjA2NSAwIDAgMC0uMTItMS4yM0MxMC4yMiA2LjEyIDkuMTIgNSA5LjEyIDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdhdGVyRGFtYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMyAyIDEyaDN2OGgxNHYtOGgzTDEyIDN6bTAgMTNjLTEuMSAwLTItLjktMi0yczItNCAyLTQgMiAyLjkgMiA0LS45IDItMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXaGVlbGNoYWlyUGlja3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC41IDRjMC0xLjExLjg5LTIgMi0yczIgLjg5IDIgMi0uODkgMi0yIDItMi0uODktMi0yem01LjUgNi45NVY5YzAtMS4xLS45LTItMi0ySDVjLTEuMSAwLTIgLjktMiAydjZoMnY3aDMuNXYtLjExYy0xLjI0LTEuMjYtMi0yLjk5LTItNC44OSAwLTIuNTggMS40MS00Ljg0IDMuNS02LjA1ek0xNi41IDE3YzAgMS42NS0xLjM1IDMtMyAzcy0zLTEuMzUtMy0zYzAtMS4xMS42MS0yLjA2IDEuNS0yLjU4di0yLjE2Yy0yLjAyLjY0LTMuNSAyLjUxLTMuNSA0Ljc0IDAgMi43NiAyLjI0IDUgNSA1czUtMi4yNCA1LTVoLTJ6bTMuMDQtM0gxNVY4aC0ydjhoNS40NmwyLjQ3IDMuNzEgMS42Ni0xLjExLTMuMDUtNC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYXRocm9vbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6TTkgMThjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMC0zYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTMgM2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0wLTNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMyAzYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTAtM2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0yLTNIN3YtMWMwLTIuNzYgMi4yNC01IDUtNXM1IDIuMjQgNSA1djF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDEwLjc4VjhjMC0xLjY1LTEuMzUtMy0zLTNoLTRjLS43NyAwLTEuNDcuMy0yIC43OC0uNTMtLjQ4LTEuMjMtLjc4LTItLjc4SDZDNC4zNSA1IDMgNi4zNSAzIDh2Mi43OGMtLjYxLjU1LTEgMS4zNC0xIDIuMjJ2Nmgydi0yaDE2djJoMnYtNmMwLS44OC0uMzktMS42Ny0xLTIuMjJ6TTE0IDdoNGMuNTUgMCAxIC40NSAxIDF2MmgtNlY4YzAtLjU1LjQ1LTEgMS0xek01IDhjMC0uNTUuNDUtMSAxLTFoNGMuNTUgMCAxIC40NSAxIDF2Mkg1Vjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJlZHJvb21CYWJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTggMTZjLTIuNjQgMC01LjEzLTEuMDMtNy0yLjlsMS4wNi0xLjA2Yy4zNC4zNC43MS42NSAxLjEuOTJMOCAxMy41VjkuNTFsLTEuNTUuOTktLjk1LTFMNyA3Ljc2IDYgN2gzLjY1bDEuNzMgM0gxN3YxaC0xdjIuNWwuODQgMS40NmMuMzktLjI4Ljc2LS41OCAxLjEtLjkyTDE5IDE1LjFhOS44NDIgOS44NDIgMCAwIDEtNyAyLjl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjY5IDE0LjI0YTcuNzIgNy43MiAwIDAgMS01LjQgMGwtLjgxIDEuNDEtLjAzLjA2YzEuMS41MiAyLjI4Ljc5IDMuNTMuNzlzMi40NS0uMjggMy41NS0uNzlsLS4wMy0uMDYtLjgxLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJlZHJvb21DaGlsZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA4LjVoNnYySDl6TTE1LjY0IDEySDguMzdhLjg3Ljg3IDAgMCAwLS44Ny44N2guMDFWMTRoOXYtMS4xM2EuODcuODcgMCAwIDAtLjg3LS44N3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS0yIDE1aC0xLjV2LTEuNWgtOVYxN0g2di00LjEzYzAtMSAuNjItMS44NSAxLjUtMi4yVjljMC0xLjEuOS0yIDItMmg1YzEuMSAwIDIgLjkgMiAydjEuNjdjLjg4LjM1IDEuNSAxLjIgMS41IDIuMlYxN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmVkcm9vbVBhcmVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNSAxMmgtOWMtLjU1IDAtMSAuNDUtMSAxdjFoMTF2LTFjMC0uNTUtLjQ1LTEtMS0xek03LjI1IDguNWg0djJoLTR6TTEyLjc1IDguNWg0djJoLTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tMSAxNWgtMS41di0xLjVoLTExVjE3SDV2LTMuODNjMC0uNjYuMjUtMS4yNi42NS0xLjcyVjljMC0xLjEuOS0yIDItMkgxMWMuMzcgMCAuNzIuMTIgMSAuMzIuMjgtLjIuNjMtLjMyIDEtLjMyaDMuMzVjMS4xIDAgMiAuOSAyIDJ2Mi40NWMuNC40Ni42NSAxLjA2LjY1IDEuNzJWMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJsZW5kZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjEzIDE1LjEzIDE4IDNoLTRWMmgtNHYxSDVjLTEuMSAwLTIgLjktMiAydjRjMCAxLjEuOSAyIDIgMmgyLjIzbC42NCA0LjEzQzYuNzQgMTYuMDUgNiAxNy40MyA2IDE5djFjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0ydi0xYzAtMS41Ny0uNzQtMi45NS0xLjg3LTMuODd6TTUgOVY1aDEuMzFsLjYyIDRINXptNyAxMGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0yLjI5LTVIOS43Mkw4LjMzIDVoNy4zNGwtMS4zOCA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYW1lcmFJbmRvb3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDMgNCA5djEyaDE2VjlsLTgtNnptNCAxMy4wNkwxNCAxNXYxYzAgLjU1LS40NSAxLTEgMUg5Yy0uNTUgMC0xLS40NS0xLTF2LTRjMC0uNTUuNDUtMSAxLTFoNGMuNTUgMCAxIC40NSAxIDF2MWwyLTEuMDZ2NC4xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FtZXJhT3V0ZG9vciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTNjMC0uNTUtLjQ1LTEtMS0xaC00Yy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMWg0Yy41NSAwIDEtLjQ1IDEtMXYtMWwyIDEuMDZ2LTQuMTJMMTggMTR2LTF6TTEyIDMgNCA5djEyaDE2di0ySDZ2LTlsNi00LjUgNiA0LjV2MWgyVjlsLTgtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2hhaXJBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEwYzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJIN2MtMS4xIDAtMiAuOS0yIDJ2M2MwIDEuMS45IDIgMiAyaDF2Mkg3Yy0xLjEgMC0yIC45LTIgMnY3aDJ2LTNoMTB2M2gydi03YzAtMS4xLS45LTItMi0yaC0xdi0yaDF6TTcgOFY1aDEwdjNIN3ptMTAgOEg3di0yaDEwdjJ6bS0zLTRoLTR2LTJoNHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDaGFpciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxMXYyaDEwdi0yYzAtMS44NiAxLjI4LTMuNDEgMy0zLjg2VjZjMC0xLjY1LTEuMzUtMy0zLTNIN0M1LjM1IDMgNCA0LjM1IDQgNnYxLjE0YzEuNzIuNDUgMyAyIDMgMy44NnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgOWMtMS4xIDAtMiAuOS0yIDJ2NEg1di00YzAtMS4xLS45LTItMi0ycy0yIC45LTIgMnY1YzAgMS42NSAxLjM1IDMgMyAzdjFjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xdi0xaDEydjFjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xdi0xYzEuNjUgMCAzLTEuMzUgMy0zdi01YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb2ZmZWVNYWtlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNlY0aDJWMkg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE0di0yaC00LjAzQTQuOTY2IDQuOTY2IDAgMCAwIDE4IDE2di01SDh2NWMwIDEuNjQuODEgMy4wOSAyLjAzIDRINlY0aDJ2MmMwIC41NS40NSAxIDEgMWg4Yy41NSAwIDEtLjQ1IDEtMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxM1wiLFwiY3lcIjpcIjlcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29mZmVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC41IDNINmMtMS4xIDAtMiAuOS0yIDJ2NS43MWMwIDMuODMgMi45NSA3LjE4IDYuNzggNy4yOSAzLjk2LjEyIDcuMjItMy4wNiA3LjIyLTd2LTFoLjVjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVTMjAuNDMgMyAxOC41IDN6TTE2IDV2M0g2VjVoMTB6bTIuNSAzSDE4VjVoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVTMTkuMzMgOCAxOC41IDh6TTQgMTloMTZ2Mkg0di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tOSA4LjNjMCAuOTMtLjY0IDEuNzEtMS41IDEuOTNWMTlIOHYtNi43N2MtLjg2LS4yMi0xLjUtMS0xLjUtMS45M1Y2LjVjMC0uMjguMjItLjUuNS0uNXMuNS4yMi41LjVWOWguNzVWNi41YzAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41VjlIMTBWNi41YzAtLjI4LjIzLS41LjUtLjUuMjggMCAuNS4yMi41LjV2My44em00LjU4IDIuMjktLjA4LjAzVjE5SDE0di02LjM4bC0uMDgtLjA0Yy0uOTctLjQ3LTEuNjctMS43LTEuNjctMy4xOCAwLTEuODggMS4xMy0zLjQgMi41LTMuNCAxLjM4IDAgMi41IDEuNTMgMi41IDMuNDEgMCAxLjQ4LS43IDIuNzEtMS42NyAzLjE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb29yQmFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTlWNWMwLTEuMS0uOS0yLTItMkg3Yy0xLjEgMC0yIC45LTIgMnYxNEgzdjJoMTh2LTJoLTJ6bS04LTZIOXYtMmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvb3JGcm9udCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTlWNWMwLTEuMS0uOS0yLTItMkg3Yy0xLjEgMC0yIC45LTIgMnYxNEgzdjJoMTh2LTJoLTJ6bS00LTZoLTJ2LTJoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb29yU2xpZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTlWNWMwLTEuMS0uOS0yLTItMmgtNS4yNXYxNmgtMS41VjNINmMtMS4xIDAtMiAuOS0yIDJ2MTRIM3YyaDE4di0yaC0xem0tMTAtNkg4di0yaDJ2MnptNiAwaC0ydi0yaDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRG9vcmJlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDMgNCA5djEyaDE2VjlsLTgtNnptMCAxNC41Yy0uNTUgMC0xLS40NS0xLTFoMmMwIC41NS0uNDUgMS0xIDF6bTQtMS41SDh2LTFoMXYtMi4zNGMwLTEuNTQuODItMi44MiAyLjI1LTMuMTZ2LS4yNWMwLS40MS4zNC0uNzUuNzUtLjc1cy43NS4zNC43NS43NXYuMjVjMS40NC4zNCAyLjI1IDEuNjIgMi4yNSAzLjE2VjE1aDF2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmVlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjhsLTUtNXpNNyA3aDV2Mkg3Vjd6bTEwIDEwSDd2LTJoMTB2MnptMC00SDd2LTJoMTB2MnptLTItNFY1bDQgNGgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmxhdHdhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDcuMDhjMCAxLjc3LS44NCAzLjI1LTIgMy44MlYyMWgtMlYxMC45Yy0xLjE2LS41Ny0yLTIuMDUtMi0zLjgyQzEwLjAxIDQuODMgMTEuMzUgMyAxMyAzYzEuNjYgMCAzIDEuODMgMyA0LjA4ek0xNyAzdjE4aDJ2LThoMlY3YzAtMS43Ni0xLjI0LTQtNC00ek04LjI4IDNjLS40IDAtLjcyLjMyLS43Mi43MlY3aC0uODRWMy43MkM2LjcyIDMuMzIgNi40IDMgNiAzcy0uNzIuMzItLjcyLjcyVjdoLS44NFYzLjcyYzAtLjQtLjMyLS43Mi0uNzItLjcyUzMgMy4zMiAzIDMuNzJWOWMwIDEuMS45IDIgMiAydjEwaDJWMTFjMS4xIDAgMi0uOSAyLTJWMy43MmMwLS40LS4zMi0uNzItLjcyLS43MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR2FyYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOC4zMyA3LjUtLjY2IDJoOC42NmwtLjY2LTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tMSAxNS42OWMwIC40NS0uMzUuODEtLjc4LjgxaC0uNDRjLS40NCAwLS43OC0uMzYtLjc4LS44MVYxNi41SDd2MS4xOWMwIC40NS0uMzUuODEtLjc4LjgxaC0uNDRjLS40MyAwLS43OC0uMzYtLjc4LS44MXYtNi41Yy44Mi0yLjQ3IDEuMzQtNC4wMyAxLjU2LTQuNjkuMDUtLjE2LjEyLS4yOS4xOS0uNC4wMi0uMDIuMDMtLjA0LjA1LS4wNi4zOC0uNTMuOTItLjU0LjkyLS41NGg4LjU2cy41NC4wMS45Mi41M2MuMDIuMDMuMDMuMDUuMDUuMDcuMDcuMTEuMTQuMjQuMTkuNC4yMi42Ni43NCAyLjIzIDEuNTYgNC42OXY2LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA2LjA2VjNoLTJ2My4wNmMtNC41LjUtOCA0LjMxLTggOC45M0MzIDE2LjEgMy45IDE3IDUuMDEgMTdIOGMwIDIuMjEgMS43OSA0IDQgNHM0LTEuNzkgNC00aDIuOTljMS4xMSAwIDIuMDEtLjkgMi4wMS0yLjAxIDAtNC42Mi0zLjUtOC40My04LTguOTN6TTEyIDE1SDVjMC0zLjg2IDMuMTQtNyA3LTdzNyAzLjE0IDcgN2gtN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGl2aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41IDExLjVjLS41NSAwLTEgLjQ1LTEgMXYyaC03di0yYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxVjE2YzAgLjI4LjIyLjUuNS41aDEwYy4yOCAwIC41LS4yMi41LS41di0zLjVjMC0uNTUtLjQ1LTEtMS0xelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxMi41di41aDR2LS41YzAtMS4zLjk5LTIuMzUgMi4yNS0yLjQ3VjljMC0uODMtLjY3LTEuNS0xLjUtMS41aC01LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41djEuMDNBMi40OCAyLjQ4IDAgMCAxIDEwIDEyLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tMSAxNGMwIDEuMS0uOSAyLTIgMkg3Yy0xLjEgMC0yLS45LTItMnYtMy41YzAtLjkyLjUxLTEuNzIgMS4yNS0yLjE1VjljMC0xLjY2IDEuMzQtMyAzLTNoNS41YzEuNjYgMCAzIDEuMzQgMyAzdjEuMzVjLjc0LjQzIDEuMjUgMS4yMyAxLjI1IDIuMTVWMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1hbmFnZVNlYXJjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA5SDJWN2g1djJ6bTAgM0gydjJoNXYtMnptMTMuNTkgNy0zLjgzLTMuODNjLS44LjUyLTEuNzQuODMtMi43Ni44My0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDVjMCAxLjAyLS4zMSAxLjk2LS44MyAyLjc1TDIyIDE3LjU5IDIwLjU5IDE5ek0xNyAxMWMwLTEuNjUtMS4zNS0zLTMtM3MtMyAxLjM1LTMgMyAxLjM1IDMgMyAzIDMtMS4zNSAzLTN6TTIgMTloMTB2LTJIMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQb2RjYXN0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTJjMCAuNzQtLjQgMS4zOC0xIDEuNzJWMjJoLTJ2LTguMjhjLS42LS4zNS0xLS45OC0xLTEuNzIgMC0xLjEuOS0yIDItMnMyIC45IDIgMnptLTItNmMtMy4zMSAwLTYgMi42OS02IDYgMCAxLjc0Ljc1IDMuMzEgMS45NCA0LjRsMS40Mi0xLjQyQTMuOTU3IDMuOTU3IDAgMCAxIDggMTJjMC0yLjIxIDEuNzktNCA0LTRzNCAxLjc5IDQgNGMwIDEuMTktLjUzIDIuMjUtMS4zNiAyLjk4bDEuNDIgMS40MkE1Ljk1NyA1Ljk1NyAwIDAgMCAxOCAxMmMwLTMuMzEtMi42OS02LTYtNnptMC00QzYuNDggMiAyIDYuNDggMiAxMmMwIDIuODUgMS4yIDUuNDEgMy4xMSA3LjI0bDEuNDItMS40MkE3Ljk4NyA3Ljk4NyAwIDAgMSA0IDEyYzAtNC40MSAzLjU5LTggOC04czggMy41OSA4IDhjMCAyLjI5LS45OCA0LjM2LTIuNTMgNS44MmwxLjQyIDEuNDJDMjAuOCAxNy40MSAyMiAxNC44NSAyMiAxMmMwLTUuNTItNC40OC0xMC0xMC0xMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2hvd2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjhcIixcImN5XCI6XCIxN1wiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTdcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNlwiLFwiY3lcIjpcIjE3XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDUuMDhWM2gtMnYyLjA4QzcuNjEgNS41NyA1IDguNDcgNSAxMnYyaDE0di0yYzAtMy41My0yLjYxLTYuNDMtNi02LjkyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjhcIixcImN5XCI6XCIyMFwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMjBcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNlwiLFwiY3lcIjpcIjIwXCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRhYmxlQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNy41QzIyIDUuNTcgMTcuNTIgNCAxMiA0UzIgNS41NyAyIDcuNWMwIDEuODEgMy45NSAzLjMxIDkgMy40OFYxNUg5LjM1Yy0uODIgMC0xLjU1LjUtMS44NiAxLjI2TDYgMjBoMmwxLjItM2g1LjZsMS4yIDNoMmwtMS41LTMuNzRjLS4zLS43Ni0xLjA0LTEuMjYtMS44NS0xLjI2SDEzdi00LjAyYzUuMDUtLjE3IDktMS42NyA5LTMuNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRhYmxlUmVzdGF1cmFudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjk2IDkuNzMtMS40My01YS45OTYuOTk2IDAgMCAwLS45Ni0uNzNINC40M2MtLjQ1IDAtLjg0LjMtLjk2LjczbC0xLjQzIDVjLS4xOC42My4zIDEuMjcuOTYgMS4yN2gyLjJMNCAyMGgybC42Ny01aDEwLjY3bC42NiA1aDJsLTEuMi05SDIxYy42NiAwIDEuMTQtLjY0Ljk2LTEuMjd6TTYuOTMgMTNsLjI3LTJoOS42bC4yNyAySDYuOTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdpbmRvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDExVjNINWMtMS4xIDAtMiAuOS0yIDJ2Nmg4em0yIDBoOFY1YzAtMS4xLS45LTItMi0yaC02djh6bS0yIDJIM3Y2YzAgMS4xLjkgMiAyIDJoNnYtOHptMiAwdjhoNmMxLjEgMCAyLS45IDItMnYtNmgtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kWWFyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6TTggOC4yMmExLjU2MiAxLjU2MiAwIDAgMSAyLjQ1LTEuMjhsLS4wMS0uMTJjMC0uODYuNy0xLjU2IDEuNTYtMS41NnMxLjU2LjcgMS41NiAxLjU2bC0uMDEuMTJBMS41NjIgMS41NjIgMCAwIDEgMTYgOC4yMmMwIC42Mi0uMzcgMS4xNi0uODkgMS40LjUyLjI1Ljg5Ljc5Ljg5IDEuNDEgMCAuODYtLjcgMS41Ni0xLjU2IDEuNTYtLjMzIDAtLjY0LS4xMS0uODktLjI4bC4wMS4xMmMwIC44Ni0uNyAxLjU2LTEuNTYgMS41NnMtMS41Ni0uNy0xLjU2LTEuNTZsLjAxLS4xMkExLjU2MiAxLjU2MiAwIDAgMSA4IDExLjAzYzAtLjYyLjM3LTEuMTYuODktMS40QzguMzcgOS4zOCA4IDguODQgOCA4LjIyek0xMiAxOWMtMy4zMSAwLTYtMi42OS02LTYgMy4zMSAwIDYgMi42OSA2IDYgMC0zLjMxIDIuNjktNiA2LTYgMCAzLjMxLTIuNjkgNi02IDZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI5LjYyXCIsXCJyXCI6XCIxLjU2XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDE4VXBSYXRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxMi41aDEuNVYxNEgxM3pNMTMgMTBoMS41djEuNUgxM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS05IDEySDguNXYtNC41SDdWOWgzdjZ6bTYtMWMwIC41NS0uNDUgMS0xIDFoLTIuNWMtLjU1IDAtMS0uNDUtMS0xdi00YzAtLjU1LjQ1LTEgMS0xSDE1Yy41NSAwIDEgLjQ1IDEgMXY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQ2RnRBcGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgNmMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTQgMy40M2MwLS44MS0uNDgtMS41My0xLjIyLTEuODVhNi45NSA2Ljk1IDAgMCAwLTUuNTYgMEEyLjAxIDIuMDEgMCAwIDAgMiA5LjQzVjEwaDh2LS41N3pNMTggNmMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTQgMy40M2MwLS44MS0uNDgtMS41My0xLjIyLTEuODVhNi45NSA2Ljk1IDAgMCAwLTUuNTYgMEEyLjAxIDIuMDEgMCAwIDAgMTQgOS40M1YxMGg4di0uNTd6TTE5IDE3di0yLjAxTDUgMTV2MmwtMy0zIDMtM3YyLjAxTDE5IDEzdi0ybDMgMy0zIDN6bS05IDJ2LTFINy41Yy0uMjggMC0uNS4yMi0uNS41djNjMCAuMjguMjIuNS41LjVoMmMuMjggMCAuNS0uMjIuNS0uNVYyMGMwLS4yOC0uMjItLjUtLjUtLjVIOFYxOWgyem0tMSAxLjV2LjVIOHYtLjVoMXptOC41LTEuNWgtMXYzaC0xdi0zaC0xdi0xaDN2MXptLTUgMHYuNWgxdjFoLTFWMjJoLTF2LTRIMTR2MWgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZGRNb2RlcmF0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuMjIgMjIuNjFjLS40LjE1LS44LjI5LTEuMjIuMzktNS4xNi0xLjI2LTktNi40NS05LTEyVjVsOS00IDkgNHY2YzAgLjktLjExIDEuNzgtLjMgMi42NS0uODEtLjQxLTEuNzMtLjY1LTIuNy0uNjUtMy4zMSAwLTYgMi42OS02IDYgMCAxLjM2LjQ2IDIuNjEgMS4yMiAzLjYxek0xOSAyMHYyLjk5cy0xLjk5LjAxLTIgMFYyMGgtM3YtMmgzdi0zaDJ2M2gzdjJoLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZFJlYWN0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggOVY3aC0yVjIuODRBOS45MjkgOS45MjkgMCAwIDAgMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyYzAtMS4wNS0uMTctMi4wNS0uNDctM0gxOHptLTIuNS0xYy44MyAwIDEuNS42NyAxLjUgMS41cy0uNjcgMS41LTEuNSAxLjUtMS41LS42Ny0xLjUtMS41LjY3LTEuNSAxLjUtMS41em0tNyAwYy44MyAwIDEuNS42NyAxLjUgMS41UzkuMzMgMTEgOC41IDExIDcgMTAuMzMgNyA5LjUgNy42NyA4IDguNSA4em0zLjUgOS41Yy0yLjMzIDAtNC4zMS0xLjQ2LTUuMTEtMy41aDEwLjIyYy0uOCAyLjA0LTIuNzggMy41LTUuMTEgMy41ek0yMiAzaDJ2MmgtMnYyaC0yVjVoLTJWM2gyVjFoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBcmNoaXRlY3R1cmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjM2IDE4Ljc4IDYuNjEgMjFsMS42Mi0xLjU0IDIuNzctNy42Yy0uNjgtLjE3LTEuMjgtLjUxLTEuNzctLjk4bC0yLjg3IDcuOXpNMTQuNzcgMTAuODhjLS40OS40Ny0xLjEuODEtMS43Ny45OGwyLjc3IDcuNkwxNy4zOSAyMWwuMjYtMi4yMi0yLjg4LTcuOXpNMTUgOGMwLTEuMy0uODQtMi40LTItMi44MlYzaC0ydjIuMThDOS44NCA1LjYgOSA2LjcgOSA4YzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTN6bS0zIDFjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXNzaXN0V2Fsa2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMi41XCIsXCJjeVwiOlwiNC41XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5Ljc3IDE3LjcyLS42NC02LjM3QTEuNDkgMS40OSAwIDAgMCAxNy42NCAxMEgxNmMtMS41LS4wMi0yLjg2LS41NC0zLjc2LTEuNDRsLTItMS45OEExLjk1IDEuOTUgMCAwIDAgOC44MyA2Yy0uNTEgMC0xLjAyLjItMS40MS41OUw0LjA4IDkuOTFjLS41My42OC0uNTEgMS41Ny0uMjEgMi4xM2wxLjQzIDIuOC0zLjE1IDQuMDUgMS41NyAxLjI0TDcuNCAxNS40bC0uMTctMS4zNi43Ny43MVYyMGgydi02LjEybC0yLjEyLTIuMTIgMi4zNi0yLjM2Yy45NC45NCAxLjcyIDEuODIgMy41OSAyLjMyTDEzIDIwaDEuNWwuNDEtMy41aDMuMThsLjE0IDEuMjJjLS40NC4yNi0uNzMuNzQtLjczIDEuMjggMCAuODMuNjcgMS41IDEuNSAxLjVzMS41LS42NyAxLjUtMS41YzAtLjU0LS4yOS0xLjAyLS43My0xLjI4ek0xNS4wOSAxNWwuNDEtMy41aDJsLjQxIDMuNWgtMi44MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmFja0hhbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAyNGMtMy4yNiAwLTYuMTktMS45OS03LjQtNS4wMmwtMy4wMy03LjYxYTEgMSAwIDAgMSAxLjI0LTEuMzJsLjc5LjI2Yy41Ni4xOCAxLjAyLjYxIDEuMjQgMS4xNkw3LjI1IDE1SDhWMy4yNWExLjI1IDEuMjUgMCAwIDEgMi41IDBWMTJoMVYxLjI1YTEuMjUgMS4yNSAwIDAgMSAyLjUgMFYxMmgxVjIuNzVhMS4yNSAxLjI1IDAgMCAxIDIuNSAwVjEyaDFWNS43NWExLjI1IDEuMjUgMCAwIDEgMi41IDBWMTZjMCA0LjQyLTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJsaW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMS41XCIsXCJjeVwiOlwiMy41XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjEzIDcuMTJjLS4xNy0uMzUtLjQ0LS42NS0uOC0uODVhMS45OCAxLjk4IDAgMCAwLTEuOTMtLjAzdi0uMDFMNCA5LjNWMTRoMnYtMy41NGwxLjUtLjg1QzcuMTggMTAuNzEgNyAxMS44NSA3IDEzdjUuMzNMNC40IDIxLjggNiAyM2wzLTQgLjIyLTMuNTRMMTEgMTh2NWgydi02LjVsLTEuOTctMi44MWMtLjA0LS41Mi0uMTQtMS43Ni40NS0zLjQuNzUgMS4xNCAxLjg4IDEuOTggMy4yIDIuNDFMMjAuNjMgMjNsLjg3LS41LTUuNDgtOS41SDE3di0yYy0uNDkgMC0yLjg4LjE3LTQuMDgtMi4yMVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCb3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3LjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1UzEyLjk3IDQgMTIgNHMtMS43NS43OC0xLjc1IDEuNzVTMTEuMDMgNy41IDEyIDcuNXpNMTQgMjB2LTVoMXYtNC41YzAtMS4xLS45LTItMi0yaC0yYy0xLjEgMC0yIC45LTIgMlYxNWgxdjVoNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FrZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDZhMiAyIDAgMCAwIDItMmMwLS4zOC0uMS0uNzMtLjI5LTEuMDNMMTIgMGwtMS43MSAyLjk3Yy0uMTkuMy0uMjkuNjUtLjI5IDEuMDMgMCAxLjEuOSAyIDIgMnptNC42IDkuOTktMS4wNy0xLjA3LTEuMDggMS4wN2MtMS4zIDEuMy0zLjU4IDEuMzEtNC44OSAwbC0xLjA3LTEuMDctMS4wOSAxLjA3QzYuNzUgMTYuNjQgNS44OCAxNyA0Ljk2IDE3Yy0uNzMgMC0xLjQtLjIzLTEuOTYtLjYxVjIxYzAgLjU1LjQ1IDEgMSAxaDE2Yy41NSAwIDEtLjQ1IDEtMXYtNC42MWMtLjU2LjM4LTEuMjMuNjEtMS45Ni42MS0uOTIgMC0xLjc5LS4zNi0yLjQ0LTEuMDF6TTE4IDloLTVWN2gtMnYySDZjLTEuNjYgMC0zIDEuMzQtMyAzdjEuNTRjMCAxLjA4Ljg4IDEuOTYgMS45NiAxLjk2LjUyIDAgMS4wMi0uMiAxLjM4LS41N2wyLjE0LTIuMTMgMi4xMyAyLjEzYy43NC43NCAyLjAzLjc0IDIuNzcgMGwyLjE0LTIuMTMgMi4xMyAyLjEzYy4zNy4zNy44Ni41NyAxLjM4LjU3IDEuMDggMCAxLjk2LS44OCAxLjk2LTEuOTZWMTJDMjEgMTAuMzQgMTkuNjYgOSAxOCA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYXRjaGluZ1Bva2Vtb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDEyYTIuNSAyLjUgMCAwIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwem03LjUgMGMwIDUuNTItNC40OCAxMC0xMCAxMFMyIDE3LjUyIDIgMTIgNi40OCAyIDEyIDJzMTAgNC40OCAxMCAxMHptLTIgMGgtNGMwLTIuMjEtMS43OS00LTQtNHMtNCAxLjc5LTQgNEg0YzAgNC40MSAzLjU5IDggOCA4czgtMy41OSA4LTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENsZWFuSGFuZHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNi45OSA1IC42MyAxLjM3IDEuMzcuNjMtMS4zNy42M0wxNi45OSA5bC0uNjMtMS4zN0wxNC45OSA3bDEuMzctLjYzLjYzLTEuMzdNMTEgNi4xM1Y0aDJjLjU3IDAgMS4xLjE3IDEuNTUuNDVsMS40My0xLjQzQTQuODk5IDQuODk5IDAgMCAwIDEzIDJINy41djJIOXYyLjE0QTUuMDA3IDUuMDA3IDAgMCAwIDUuMjYgOS41aDMuOThMMTUgMTEuNjV2LS42MmE1IDUgMCAwIDAtNC00Ljl6TTEgMjJoNFYxMUgxdjExem0xOS01aC03bC0yLjA5LS43My4zMy0uOTRMMTMgMTZoMi44MmMuNjUgMCAxLjE4LS41MyAxLjE4LTEuMTggMC0uNDktLjMxLS45My0uNzctMS4xMUw4Ljk3IDExSDd2OS4wMkwxNCAyMmw4LTNjLS4wMS0xLjEtLjg5LTItMi0yem0wLTNjMS4xIDAgMi0uOSAyLTJzLTItNC0yLTQtMiAyLjktMiA0IC45IDIgMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDbzIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA5aC0zYy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMWgzYy41NSAwIDEtLjQ1IDEtMXYtNGMwLS41NS0uNDUtMS0xLTF6bS0uNSA0LjVoLTJ2LTNoMnYzek04IDEzdjFjMCAuNTUtLjQ1IDEtMSAxSDRjLS41NSAwLTEtLjQ1LTEtMXYtNGMwLS41NS40NS0xIDEtMWgzYy41NSAwIDEgLjQ1IDEgMXYxSDYuNXYtLjVoLTJ2M2gyVjEzSDh6bTEyLjUgMi41aC0ydjFoM1YxOEgxN3YtMi41YzAtLjU1LjQ1LTEgMS0xaDJ2LTFoLTNWMTJoMy41Yy41NSAwIDEgLjQ1IDEgMXYxLjVjMCAuNTUtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb21wb3N0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuODcgMTEuODFBMi41IDIuNSAwIDAgMSAxNSA4aDFjMS41MSAwIDItMSAyLTFzLjU1IDYtMyA2Yy0uNDkgMC0uOTQtLjE0LTEuMzItLjM4LS4yNC42NC0uNTkgMS43Ni0uNzYgMi45NiAxLjI2LjIyIDIuMjguODkgMi43NyAxLjc3QTYuNTA1IDYuNTA1IDAgMCAwIDE4LjUgMTJoM2MwIDUuMjQtNC4yNiA5LjUtOS41IDkuNVMyLjUgMTcuMjQgMi41IDEyIDYuNzYgMi41IDEyIDIuNVYwbDQgNC00IDRWNS41Yy0zLjU4IDAtNi41IDIuOTItNi41IDYuNSAwIDIuMjEgMS4xMSA0LjE3IDIuODEgNS4zNS41MS0uOTIgMS42My0xLjYyIDIuOTgtMS44LS4wOS0uNjktLjI2LTEuNDItLjQ5LTIuMDMtLjM1LjMtLjguNDgtMS4zLjQ4LTEuMSAwLTItLjktMi0ydi0uOTljMC0uNTYtLjE5LTEuMDktLjUtMS41MSAwIDAgNC40NS0uMjMgNC41IDIuNSAwIC4yOS0uMDYuNTYtLjE3LjgtLjQyLS4zMi0uODYtLjYtMS4zMy0uOC41OC40MyAxLjM3IDEuMzcgMiAyLjYuNjctMS42MiAxLjY4LTMuMjcgMy00LjYtLjc2LjUyLTEuNDcgMS4xMi0yLjEzIDEuODF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbm5lY3RXaXRob3V0Q29udGFjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE0SDlhOSA5IDAgMCAxIDktOXYyYy0zLjg3IDAtNyAzLjEzLTcgN3ptNy0zVjljLTIuNzYgMC01IDIuMjQtNSA1aDJjMC0xLjY2IDEuMzQtMyAzLTN6TTcgNGMwLTEuMTEtLjg5LTItMi0ycy0yIC44OS0yIDIgLjg5IDIgMiAyIDItLjg5IDItMnptNC40NS41aC0yQTIuOTkgMi45OSAwIDAgMSA2LjUgN2gtM0MyLjY3IDcgMiA3LjY3IDIgOC41VjExaDZWOC43NGE0Ljk3IDQuOTcgMCAwIDAgMy40NS00LjI0ek0xOSAxN2MxLjExIDAgMi0uODkgMi0ycy0uODktMi0yLTItMiAuODktMiAyIC44OSAyIDIgMnptMS41IDFoLTNhMi45OSAyLjk5IDAgMCAxLTIuOTUtMi41aC0yQTQuOTcgNC45NyAwIDAgMCAxNiAxOS43NFYyMmg2di0yLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb25zdHJ1Y3Rpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMy43ODMgMTUuMTcyIDIuMTIxLTIuMTIxIDUuOTk2IDUuOTk2LTIuMTIxIDIuMTIxek0xNy41IDEwYzEuOTMgMCAzLjUtMS41NyAzLjUtMy41IDAtLjU4LS4xNi0xLjEyLS40MS0xLjZsLTIuNyAyLjctMS40OS0xLjQ5IDIuNy0yLjdjLS40OC0uMjUtMS4wMi0uNDEtMS42LS40MUMxNS41NyAzIDE0IDQuNTcgMTQgNi41YzAgLjQxLjA4LjguMjEgMS4xNmwtMS44NSAxLjg1LTEuNzgtMS43OC43MS0uNzEtMS40MS0xLjQxTDEyIDMuNDlhMyAzIDAgMCAwLTQuMjQgMEw0LjIyIDcuMDNsMS40MSAxLjQxSDIuODFsLS43MS43MSAzLjU0IDMuNTQuNzEtLjcxVjkuMTVsMS40MSAxLjQxLjcxLS43MSAxLjc4IDEuNzgtNy40MSA3LjQxIDIuMTIgMi4xMkwxNi4zNCA5Ljc5Yy4zNi4xMy43NS4yMSAxLjE2LjIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb29raWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS45NSAxMC45OWMtMS43OS0uMDMtMy43LTEuOTUtMi42OC00LjIyLTIuOTggMS01Ljc3LTEuNTktNS4xOS00LjU2QzYuOTUuNzEgMiA2LjU4IDIgMTJjMCA1LjUyIDQuNDggMTAgMTAgMTAgNS44OSAwIDEwLjU0LTUuMDggOS45NS0xMS4wMXpNOC41IDE1Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNy42NyAxMiA4LjUgMTJzMS41LjY3IDEuNSAxLjVTOS4zMyAxNSA4LjUgMTV6bTItNUM5LjY3IDEwIDkgOS4zMyA5IDguNVM5LjY3IDcgMTAuNSA3czEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXptNC41IDZjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29yb25hdmlydXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS4yNSAxMC41Yy0uNDEgMC0uNzUuMzQtLjc1Ljc1aC0xLjU0YTYuOTc4IDYuOTc4IDAgMCAwLTEuNTItMy42NWwxLjA5LTEuMDkuMDEuMDFjLjI5LjI5Ljc3LjI5IDEuMDYgMHMuMjktLjc3IDAtMS4wNkwxOC41NCA0LjRhLjc1NC43NTQgMCAwIDAtMS4wNiAwYy0uMjkuMjktLjI5Ljc2LS4wMSAxLjA1bC0xLjA5IDEuMDlhNy4wMTUgNy4wMTUgMCAwIDAtMy42NC0xLjUxVjMuNWguMDFjLjQxIDAgLjc1LS4zNC43NS0uNzVTMTMuMTYgMiAxMi43NSAyaC0xLjVjLS40MSAwLS43NS4zNC0uNzUuNzVzLjMzLjc0Ljc0Ljc1djEuNTVjLTEuMzcuMTQtMi42Mi42OS0zLjY0IDEuNTFMNi41MSA1LjQ3bC4wMS0uMDFjLjI5LS4yOS4yOS0uNzcgMC0xLjA2YS43NTQuNzU0IDAgMCAwLTEuMDYgMEw0LjQgNS40NmMtLjI5LjI5LS4yOS43NyAwIDEuMDYuMjkuMjkuNzYuMjkgMS4wNS4wMWwxLjA5IDEuMDlhNi44OSA2Ljg5IDAgMCAwLTEuNSAzLjYzSDMuNWMwLS40MS0uMzQtLjc1LS43NS0uNzVzLS43NS4zNC0uNzUuNzV2MS41YzAgLjQxLjM0Ljc1Ljc1Ljc1cy43NS0uMzQuNzUtLjc1aDEuNTRjLjE1IDEuMzcuNjkgMi42MSAxLjUgMy42M2wtMS4wOSAxLjA5YS43NDIuNzQyIDAgMCAwLTEuMDUuMDFjLS4yOS4yOS0uMjkuNzcgMCAxLjA2bDEuMDYgMS4wNmMuMjkuMjkuNzcuMjkgMS4wNiAwIC4yOS0uMjkuMjktLjc3IDAtMS4wNmwtLjAxLS4wMSAxLjA5LTEuMDljMS4wMi44MiAyLjI2IDEuMzYgMy42MyAxLjUxdjEuNTVjLS40MS4wMS0uNzQuMzQtLjc0Ljc1cy4zNC43NS43NS43NWgxLjVjLjQxIDAgLjc1LS4zNC43NS0uNzVzLS4zNC0uNzUtLjc1LS43NWgtLjAxdi0xLjU0YzEuMzctLjE0IDIuNjItLjY5IDMuNjQtMS41MWwxLjA5IDEuMDljLS4yOS4yOS0uMjguNzYuMDEgMS4wNS4yOS4yOS43Ny4yOSAxLjA2IDBsMS4wNi0xLjA2Yy4yOS0uMjkuMjktLjc3IDAtMS4wNmEuNzU0Ljc1NCAwIDAgMC0xLjA2IDBsLS4wMS4wMS0xLjA5LTEuMDlhNy4wMjUgNy4wMjUgMCAwIDAgMS41Mi0zLjY1aDEuNTRjMCAuNDEuMzQuNzUuNzUuNzVzLjc1LS4zNC43NS0uNzV2LTEuNWMuMDEtLjQtLjMzLS43NC0uNzQtLjc0ek0xMy43NSA4Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6TTEyIDEzYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bS0xLjc1LTVjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXpNOC41IDEzYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTEuNzUgM2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0zLjUgMGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0uNzUtNGMwLS41NS40NS0xIDEtMXMxIC40NSAxIDEtLjQ1IDEtMSAxLTEtLjQ1LTEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3J1ZWx0eUZyZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi44NCAxNC41MmMtLjI2LS4xOS0uNjItLjYzLS43OS0uODRDMTcuMjQgMTIuMDEgMTkgOC44NyAxOSA1YzAtMS45NS0uNzQtMy0yLTMtMS41NCAwLTMuOTYgMi4wNi01IDUuOTdDMTAuOTYgNC4wNiA4LjU0IDIgNyAyIDUuNzQgMiA1IDMuMDUgNSA1YzAgMy44NyAxLjc2IDcuMDEgMi45NSA4LjY4LS4xNy4yMS0uNTMuNjUtLjc5Ljg0LS41LjQxLTEuNjYgMS4zNy0xLjY2IDIuOTggMCAyLjIxIDEuNzkgNCA0IDQgMS41NSAwIDIuNS0uNTYgMi41LS41NnMuOTUuNTYgMi41LjU2YzIuMjEgMCA0LTEuNzkgNC00IDAtMS42MS0xLjE2LTIuNTctMS42Ni0yLjk4ek05LjM1IDEyLjJDOC4zNCAxMC43IDcgOC4xMiA3IDVjMC0uNDkuMDYtLjguMTItLjk3Ljk0LjMxIDMuMjQgMi43MSAzLjM4IDcuNjQtLjQ3LjEyLS44NC4zLTEuMTUuNTN6bTEuMTUgNC41NWMtLjI4IDAtLjUtLjM0LS41LS43NXMuMjItLjc1LjUtLjc1LjUuMzQuNS43NS0uMjIuNzUtLjUuNzV6TTEyIDE5LjVjLS41NSAwLTEtLjcyLTEtMXMuNDUtLjUgMS0uNSAxIC4yMiAxIC41LS40NSAxLTEgMXptMS41LTIuNzVjLS4yOCAwLS41LS4zNC0uNS0uNzVzLjIyLS43NS41LS43NS41LjM0LjUuNzUtLjIyLjc1LS41Ljc1em0wLTUuMDhjLjE0LTQuOTMgMi40NC03LjMzIDMuMzgtNy42NC4wNi4xNy4xMi40OC4xMi45NyAwIDMuMTItMS4zNCA1LjctMi4zNSA3LjItLjMxLS4yMy0uNjgtLjQxLTEuMTUtLjUzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDeWNsb25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgOGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTAgNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDcuNDdWNS4zNUMyMC4wNSA0Ljc3IDE2LjU2IDQgMTIgNGMtMi4xNSAwLTQuMTEuODYtNS41NCAyLjI0LjEzLS44NS40LTIuNCAxLjAxLTQuMjRINS4zNUM0Ljc3IDMuOTUgNCA3LjQ0IDQgMTJjMCAyLjE1Ljg2IDQuMTEgMi4yNCA1LjU0LS44NS0uMTQtMi40LS40LTQuMjQtMS4wMXYyLjEyQzMuOTUgMTkuMjMgNy40NCAyMCAxMiAyMGMyLjE1IDAgNC4xMS0uODYgNS41NC0yLjI0LS4xNC44NS0uNCAyLjQtMS4wMSA0LjI0aDIuMTJjLjU4LTEuOTUgMS4zNS01LjQ0IDEuMzUtMTAgMC0yLjE1LS44Ni00LjExLTIuMjQtNS41NC44NS4xMyAyLjQuNCA0LjI0IDEuMDF6TTEyIDE4Yy0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02IDYgMi42OSA2IDYtMi42OSA2LTYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDkgMTIgMiAyIDloOXYxM2gyVjl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTQuMTQgMTItMS45Ni4zNy44MiA0LjM3VjIyaDJsLjAyLTRIN3Y0aDJ2LTZINC45ek0xOS4xIDE2SDE1djZoMnYtNGgxLjk4bC4wMiA0aDJ2LTUuMjZsLjgyLTQuMzctMS45Ni0uMzd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERld1BvaW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTNWNWMwLTEuNjYtMS4zNC0zLTMtM1M2IDMuMzQgNiA1djhjLTEuMjEuOTEtMiAyLjM3LTIgNCAwIDIuNzYgMi4yNCA1IDUgNXM1LTIuMjQgNS01YzAtMS42My0uNzktMy4wOS0yLTR6bS00LTJWNWMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2MUg5djFoMXYySDl2MWgxdjFIOHptMTMtNC41YzAtLjg0LTEuNS0yLjUtMS41LTIuNVMxOCA1LjY2IDE4IDYuNWMwIC44My42NyAxLjUgMS41IDEuNVMyMSA3LjMzIDIxIDYuNXptLTQgM2MwLS44NC0xLjUtMi41LTEuNS0yLjVTMTQgOC42NiAxNCA5LjVjMCAuODMuNjcgMS41IDEuNSAxLjVzMS41LS42NyAxLjUtMS41em00IDNjMC0uODQtMS41LTIuNS0xLjUtMi41UzE4IDExLjY2IDE4IDEyLjVjMCAuODMuNjcgMS41IDEuNSAxLjVzMS41LS42NyAxLjUtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaXZlcnNpdHkxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI0XCIsXCJjeVwiOlwiMTRcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMS4yMiAxNy41OEEyLjAxIDIuMDEgMCAwIDAgMCAxOS40M1YyMWg0LjV2LTEuNjFjMC0uODMuMjMtMS42MS42My0yLjI5LS4zNy0uMDYtLjc0LS4xLTEuMTMtLjEtLjk5IDAtMS45My4yMS0yLjc4LjU4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjIwXCIsXCJjeVwiOlwiMTRcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIuNzggMTcuNThBNi45NSA2Ljk1IDAgMCAwIDIwIDE3Yy0uMzkgMC0uNzYuMDQtMS4xMy4xLjQuNjguNjMgMS40Ni42MyAyLjI5VjIxSDI0di0xLjU3YzAtLjgxLS40OC0xLjUzLTEuMjItMS44NXpNMTYuMjQgMTYuNjVjLTEuMTctLjUyLTIuNjEtLjktNC4yNC0uOS0xLjYzIDAtMy4wNy4zOS00LjI0LjlBMi45ODggMi45ODggMCAwIDAgNiAxOS4zOVYyMWgxMnYtMS42MWMwLTEuMTgtLjY4LTIuMjYtMS43Ni0yLjc0ek05IDEyYzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTMtMS4zNC0zLTMtMy0zIDEuMzQtMyAzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjQ4IDEwLjg2QzIuMTcgMTAuMSAyIDkuMzYgMiA4LjYgMiA2LjAyIDQuMDIgNCA2LjYgNGMyLjY4IDAgMy44MiAxLjc0IDUuNCAzLjU5QzEzLjU3IDUuNzYgMTQuNyA0IDE3LjQgNCAxOS45OCA0IDIyIDYuMDIgMjIgOC42YzAgLjc2LS4xNyAxLjUtLjQ4IDIuMjYuNjUuMzEgMS4xOC44MiAxLjUzIDEuNDQuNi0xLjIuOTUtMi40Mi45NS0zLjdDMjQgNC45IDIxLjEgMiAxNy40IDJjLTIuMDkgMC00LjA5Ljk3LTUuNCAyLjUxQzEwLjY5IDIuOTcgOC42OSAyIDYuNiAyIDIuOSAyIDAgNC45IDAgOC42YzAgMS4yOC4zNSAyLjUuOTYgMy43LjM1LS42Mi44OC0xLjEzIDEuNTItMS40NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGl2ZXJzaXR5MiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEwLjEgMTUuOSAxLjQyLTEuNDJDOC43OSAxMi4wNSA3IDEwLjQxIDcgOC44NSA3IDcuOCA3LjggNyA4Ljg1IDdjMS4xMSAwIDEuNTQuNjUgMi42OCAyaC45M2MxLjEyLTEuMzEgMS41My0yIDIuNjgtMiAuODcgMCAxLjU1LjU0IDEuNzcgMS4zMi4zNS0uMDQuNjgtLjA2IDEtLjA2LjM2IDAgLjcuMDMgMS4wMy4wOEMxOC43IDYuNDMgMTcuMTMgNSAxNS4xNSA1Yy0uMTIgMC0uMjMuMDMtLjM1LjA0LjEyLS4zMy4yLS42Ny4yLTEuMDQgMC0xLjY2LTEuMzQtMy0zLTNTOSAyLjM0IDkgNGMwIC4zNy4wOC43MS4yIDEuMDQtLjEyLS4wMS0uMjMtLjA0LS4zNS0uMDRDNi42OSA1IDUgNi42OSA1IDguODVjMCAyLjQyIDIuMDQgNC4zMSA1LjEgNy4wNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIuNSAxNi4yNGMtLjMyLS4xOC0uNjYtLjI5LTEtLjM1LjA3LS4xLjE1LS4xOC4yMS0uMjggMS4wOC0xLjg3LjQ2LTQuMTgtMS40MS01LjI2LTIuMDktMS4yMS00Ljc2LS4zOS04LjY1LjlsLjUyIDEuOTRjMy40Ny0xLjE0IDUuNzktMS44OCA3LjE0LTEuMS45MS41MyAxLjIgMS42MS42OCAyLjUzLS41Ni45Ni0xLjMzIDEtMy4wNyAxLjMybC0uNDcuODFjLjU4IDEuNjIuOTcgMi4zMy4zOSAzLjMyLS41My45MS0xLjYxIDEuMi0yLjUzLjY4LS4wNi0uMDMtLjExLS4wOS0uMTctLjEzLS4zLjY3LS42NCAxLjI0LTEuMDMgMS43My4wNy4wNC4xMy4wOS4yLjE0IDEuODcgMS4wOCA0LjE4LjQ2IDUuMjYtMS40MS4wNi0uMS4wOS0uMjEuMTQtLjMyLjIyLjI3LjQ4LjUxLjguNjkgMS40My44MyAzLjI3LjM0IDQuMS0xLjFzLjMyLTMuMjktMS4xMS00LjExelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4zMiAxNC4wMWMtLjc0IDMuNTgtMS4yNyA1Ljk1LTIuNjIgNi43My0uOTEuNTMtMiAuMjQtMi41My0uNjgtLjU2LS45Ni0uMi0xLjY2LjM5LTMuMzJsLS40Ni0uODFjLTEuNy0uMzEtMi41LS4zMy0zLjA3LTEuMzItLjUzLS45MS0uMjQtMiAuNjgtMi41My4wOS0uMDUuMTktLjA4LjI5LS4xMS0uMzUtLjU2LS42NC0xLjE3LS44Mi0xLjg1LS4xNi4wNy0uMzIuMTQtLjQ4LjIzLTEuODcgMS4wOC0yLjQ5IDMuMzktMS40MSA1LjI2LjA2LjEuMTQuMTguMjEuMjgtLjM0LjA2LS42OC4xNy0xIC4zNS0xLjQzLjgzLTEuOTMgMi42Ni0xLjEgNC4xczIuNjYgMS45MyA0LjEgMS4xYy4zMi0uMTguNTgtLjQyLjgtLjY5LjA1LjExLjA4LjIyLjE0LjMyIDEuMDggMS44NyAzLjM5IDIuNDkgNS4yNiAxLjQxIDIuMDktMS4yMSAyLjcxLTMuOTMgMy41NS03Ljk0bC0xLjkzLS41M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGl2ZXJzaXR5MyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMzIgMTMuMDFjLjk2LjAyIDEuODUuNSAyLjQ1IDEuMzRBMy45NjEgMy45NjEgMCAwIDAgMTIgMTZjMS4yOSAwIDIuNS0uNjIgMy4yMy0xLjY2LjYtLjg0IDEuNDktMS4zMiAyLjQ1LTEuMzQtLjcyLTEuMjItMy42LTItNS42OC0yLTIuMDcgMC00Ljk2Ljc4LTUuNjggMi4wMXpNNCAxM2MxLjY2IDAgMy0xLjM0IDMtM1M1LjY2IDcgNCA3cy0zIDEuMzQtMyAzIDEuMzQgMyAzIDN6TTIwIDEzYzEuNjYgMCAzLTEuMzQgMy0zcy0xLjM0LTMtMy0zLTMgMS4zNC0zIDMgMS4zNCAzIDMgM3pNMTIgMTBjMS42NiAwIDMtMS4zNCAzLTNzLTEuMzQtMy0zLTMtMyAxLjM0LTMgMyAxLjM0IDMgMyAzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxNGgtMy4yN2MtLjc3IDAtMS4zNS40NS0xLjY4LjkyLS4wNC4wNi0xLjM2IDIuMDgtNC4wNSAyLjA4LTEuNDMgMC0zLjAzLS42NC00LjA1LTIuMDgtLjM5LS41NS0xLS45Mi0xLjY4LS45MkgzYy0xLjEgMC0yIC45LTIgMnY0aDd2LTIuMjZjMS4xNS44IDIuNTQgMS4yNiA0IDEuMjZzMi44NS0uNDYgNC0xLjI2VjIwaDd2LTRjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvbWFpbkFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDdWM0gydjE4aDE0di0yaC00di0yaDJ2LTJoLTJ2LTJoMnYtMmgtMlY5aDh2NmgyVjdIMTJ6TTYgMTlINHYtMmgydjJ6bTAtNEg0di0yaDJ2MnptMC00SDRWOWgydjJ6bTAtNEg0VjVoMnYyem00IDEySDh2LTJoMnYyem0wLTRIOHYtMmgydjJ6bTAtNEg4VjloMnYyem0wLTRIOFY1aDJ2MnptMTQgMTJ2MmgtMnYyaC0ydi0yaC0ydi0yaDJ2LTJoMnYyaDJ6bS02LThoLTJ2Mmgydi0yem0wIDRoLTJ2Mmgydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb21haW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDdWM0gydjE4aDIwVjdIMTJ6TTYgMTlINHYtMmgydjJ6bTAtNEg0di0yaDJ2MnptMC00SDRWOWgydjJ6bTAtNEg0VjVoMnYyem00IDEySDh2LTJoMnYyem0wLTRIOHYtMmgydjJ6bTAtNEg4VjloMnYyem0wLTRIOFY1aDJ2MnptMTAgMTJoLTh2LTJoMnYtMmgtMnYtMmgydi0yaC0yVjloOHYxMHptLTItOGgtMnYyaDJ2LTJ6bTAgNGgtMnYyaDJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvd25oaWxsU2tpaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNSA0LjVjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yIC45LTIgMi0yIDIgLjkgMiAyem0tMi43MiAxNi40Ljc2LjI3YTUuOTMzIDUuOTMzIDAgMCAwIDQuMzQtLjE3TDIyIDIyLjEzYy0xLjA1LjU1LTIuMjQuODctMy41Ljg3LS44NiAwLTEuNjgtLjE0LTIuNDUtLjQxTDIgMTcuNDdsLjUtMS40MSA2LjkgMi41MSAxLjcyLTQuNDQtMy41Ny0zLjczYy0uODktLjk0LS42Ny0yLjQ3LjQ1LTMuMTJsMy40OC0yLjAxYzEuMS0uNjQgMi41Mi0uMSAyLjkxIDEuMTFsLjMzIDEuMDhhNS4wMTcgNS4wMTcgMCAwIDAgMi44MyAzLjE0bC41Mi0xLjYgMS40My40Ni0xLjEyIDMuNDVBNy4wMjkgNy4wMjkgMCAwIDEgMTMgOC41OWwtMi41MyAxLjQ1IDMuMDMgMy40Ni0yLjIyIDUuNzYgMy4wOSAxLjEyIDIuMS02LjQ0Yy40Ni4xOC45NC4zMSAxLjQ0LjQxbC0yLjEzIDYuNTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVkaXROb3RpZmljYXRpb25zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcuNTggNi4yNSAxLjc3IDEuNzdMMTQuMzcgMTNIMTIuNnYtMS43N2w0Ljk4LTQuOTh6bTMuMjctLjQ0LTEuMDYtMS4wNmMtLjItLjItLjUxLS4yLS43MSAwbC0uODUuODVMMjAgNy4zN2wuODUtLjg1Yy4yLS4yLjItLjUyIDAtLjcxek0xOCAxMi4yVjE3aDJ2Mkg0di0yaDJ2LTdjMC0yLjc5IDEuOTEtNS4xNCA0LjUtNS44di0uN2MwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNXYuN2MuODIuMjEgMS41Ny41OSAyLjIxIDEuMDlMMTAuNiAxMC40VjE1aDQuNmwyLjgtMi44ek0xMCAyMGg0YzAgMS4xLS45IDItMiAycy0yLS45LTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRWxkZXJseVdvbWFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNSAxMWMtMS41NiAwLTIuOTItLjktMy41OC0yLjIxbC0uNzktMS42N0MxNC4xMiA3LjEgMTMuNjMgNiAxMi4zNCA2IDguNzIgNiA2IDE2LjY5IDYgMTloMi41bC0yLjEgMi44TDggMjNsMy00aDJ2NGgydi00LjAzTDEzIDEzbC40OS0yLjcxQTYuMDIgNi4wMiAwIDAgMCAxNyAxMi44MXYuNjloMXYtMWMwLS4yOC4yMi0uNS41LS41cy41LjIyLjUuNVYyM2gxVjEyLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41ek0xMS42IDIuOTFjLS4wNi4xOS0uMS4zOC0uMS41OSAwIDEuMS45IDIgMiAyczItLjkgMi0yLS45LTItMi0yYy0uMjEgMC0uNC4wNC0uNTkuMS0uMTUtLjM1LS41LS42LS45MS0uNi0uNTUgMC0xIC40NS0xIDEgMCAuNDEuMjUuNzYuNi45MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRWxkZXJseSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjUgNS41YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptNi41IDdWMjNoLTFWMTIuNWMwLS4yOC0uMjItLjUtLjUtLjVzLS41LjIyLS41LjV2MWgtMXYtLjY5YTYuMDIgNi4wMiAwIDAgMS0zLjUxLTIuNTJjLS4zMS44Ny0uNDkgMS43OC0uNDkgMi43MSAwIC4yMy4wMi40Ni4wMy42OUwxNSAxNi41VjIzaC0ydi01bC0xLjc4LTIuNTRMMTEgMTlsLTMgNC0xLjYtMS4yTDkgMTguMzNWMTNjMC0xLjE1LjE4LTIuMjkuNS0zLjM5bC0xLjUuODVWMTRINlY5LjNsNS40LTMuMDd2LjAxYTIgMiAwIDAgMSAxLjk0LjAzYy4zNi4yMS42My41MS44Ljg1bC43OSAxLjY3QTMuOTg3IDMuOTg3IDAgMCAwIDE4LjUgMTFjLjgzIDAgMS41LjY3IDEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVtb2ppRW1vdGlvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek04LjUgOGMuODMgMCAxLjUuNjcgMS41IDEuNVM5LjMzIDExIDguNSAxMSA3IDEwLjMzIDcgOS41IDcuNjcgOCA4LjUgOHpNMTIgMThjLTIuMjggMC00LjIyLTEuNjYtNS00aDEwYy0uNzggMi4zNC0yLjcyIDQtNSA0em0zLjUtN2MtLjgzIDAtMS41LS42Ny0xLjUtMS41UzE0LjY3IDggMTUuNSA4czEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRW1vamlFdmVudHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA1aC0yVjNIN3YySDVjLTEuMSAwLTIgLjktMiAydjFjMCAyLjU1IDEuOTIgNC42MyA0LjM5IDQuOTRBNS4wMSA1LjAxIDAgMCAwIDExIDE1LjlWMTlIN3YyaDEwdi0yaC00di0zLjFhNS4wMSA1LjAxIDAgMCAwIDMuNjEtMi45NkMxOS4wOCAxMi42MyAyMSAxMC41NSAyMSA4VjdjMC0xLjEtLjktMi0yLTJ6TTUgOFY3aDJ2My44MkM1Ljg0IDEwLjQgNSA5LjMgNSA4em0xNCAwYzAgMS4zLS44NCAyLjQtMiAyLjgyVjdoMnYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFbW9qaUZsYWdzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQgOS0xLTJIN1Y1LjcyYy42LS4zNCAxLS45OCAxLTEuNzIgMC0xLjEtLjktMi0yLTJzLTIgLjktMiAyYzAgLjc0LjQgMS4zOCAxIDEuNzJWMjFoMnYtNGg1bDEgMmg3VjloLTZ6bTQgOGgtNGwtMS0ySDdWOWg1bDEgMmg1djZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVtb2ppRm9vZEJldmVyYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM0g5djIuNGwxLjgxIDEuNDVjLjEyLjA5LjE5LjI0LjE5LjM5djQuMjZjMCAuMjgtLjIyLjUtLjUuNWgtNGMtLjI4IDAtLjUtLjIyLS41LS41VjcuMjRjMC0uMTUuMDctLjMuMTktLjM5TDggNS40VjNINHYxMGMwIDIuMjEgMS43OSA0IDQgNGg2YzIuMjEgMCA0LTEuNzkgNC00di0zaDJhMiAyIDAgMCAwIDItMlY1YzAtMS4xMS0uODktMi0yLTJ6bTAgNWgtMlY1aDJ2M3pNNCAxOWgxNnYySDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVtb2ppTmF0dXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuOTQgNC44OEExLjMyIDEuMzIgMCAwIDAgMjAuNjggNEgxOS42bC0uMzEtLjk3QzE5LjE1IDIuNDMgMTguNjEgMiAxOCAycy0xLjE1LjQzLTEuMjkgMS4wNEwxNi40IDRoLTEuMDdjLS41NyAwLTEuMDguMzUtMS4yNi44OC0uMTkuNTYuMDQgMS4xNy41NiAxLjQ4bC44Ny41Mi0uNCAxLjI0Yy0uMjMuNTgtLjA0IDEuMjUuNDUgMS42Mi4yMy4xNy41MS4yNi43OC4yNi4zMSAwIC42MS0uMTEuODYtLjMybC44MS0uNy44MS43Yy4yNS4yMS41NS4zMi44Ni4zMi4yNyAwIC41NS0uMDkuNzgtLjI2LjUtLjM3LjY4LTEuMDQuNDUtMS42MmwtLjM5LTEuMjQuODctLjUyYy41MS0uMzEuNzQtLjkyLjU2LTEuNDh6TTE4IDdjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpNMTMuNDkgMTAuNTFjLS40My0uNDMtLjk0LS43My0xLjQ5LS45M1Y4aC0xdjEuMzhjLS4xMS0uMDEtLjIzLS4wMy0uMzQtLjAzLTEuMDIgMC0yLjA1LjM5LTIuODMgMS4xNy0uMTYuMTYtLjMuMzQtLjQzLjUzTDYgMTAuNTJhMy4wMSAzLjAxIDAgMCAwLTMuODMgMS44MmMtLjI3Ljc1LS4yMyAxLjU3LjEyIDIuMjkuMjMuNDguNTguODcgMSAxLjE2LS4zOCAxLjM1LS4wNiAyLjg1IDEgMy45MWEzLjk4MSAzLjk4MSAwIDAgMCAzLjkxIDFjLjI5LjQyLjY4Ljc3IDEuMTYgMSAuNDIuMi44NS4zIDEuMjkuMy4zNCAwIC42OC0uMDYgMS4wMS0uMTdhMy4wMDcgMy4wMDcgMCAwIDAgMS44Mi0zLjg1bC0uNTItMS4zN2MuMTgtLjEzLjM2LS4yNy41My0uNDMuODctLjg3IDEuMjQtMi4wNCAxLjE0LTMuMTdIMTZ2LTFoLTEuNTljLS4xOS0uNTUtLjQ5LTEuMDYtLjkyLTEuNXptLTguODIgMy43OGMtLjI1LS4wOS0uNDUtLjI3LS41Ny0uNTFzLS4xMy0uNTEtLjA0LS43NmMuMTktLjUyLjc2LS43OSAxLjI2LS42MWwzLjE2IDEuMTljLTEuMTUuNi0yLjYzIDEuMTEtMy44MS42OXptNi4zMiA1LjY1Yy0uMjUuMDktLjUyLjA4LS43Ni0uMDRhLjk4OS45ODkgMCAwIDEtLjUxLS41N2MtLjQyLTEuMTguMDktMi42NS43LTMuOGwxLjE4IDMuMTNjLjE4LjUyLS4wOSAxLjEtLjYxIDEuMjh6bTEuMjEtNS4zNC0uNjEtMS42MWMwLS4wMS0uMDEtLjAyLS4wMi0uMDNsLS4wNi0uMTJhLjY3My42NzMgMCAwIDAtLjA3LS4xMWwtLjA5LS4wOS0uMDktLjA5Yy0uMDMtLjAzLS4wNy0uMDUtLjExLS4wNy0uMDQtLjAyLS4wNy0uMDUtLjEyLS4wNi0uMDEgMC0uMDItLjAxLS4wMy0uMDJsLTEuNi0uNmExLjk2NiAxLjk2NiAwIDAgMSAyLjY3LjEzYy43My43My43NyAxLjg4LjEzIDIuNjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVtb2ppT2JqZWN0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDNjLS40NiAwLS45My4wNC0xLjQuMTQtMi43Ni41My00Ljk2IDIuNzYtNS40OCA1LjUyLS40OCAyLjYxLjQ4IDUuMDEgMi4yMiA2LjU2LjQzLjM4LjY2LjkxLjY2IDEuNDdWMTljMCAxLjEuOSAyIDIgMmguMjhhMS45OCAxLjk4IDAgMCAwIDMuNDQgMEgxNGMxLjEgMCAyLS45IDItMnYtMi4zMWMwLS41NS4yMi0xLjA5LjY0LTEuNDZBNi45NTYgNi45NTYgMCAwIDAgMTkgMTBjMC0zLjg3LTMuMTMtNy03LTd6bTIgMTZoLTR2LTFoNHYxem0wLTJoLTR2LTFoNHYxem0tMS41LTUuNTlWMTRoLTF2LTIuNTlMOS42NyA5LjU5bC43MS0uNzFMMTIgMTAuNWwxLjYyLTEuNjIuNzEuNzEtMS44MyAxLjgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFbW9qaVBlb3BsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI0XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1Ljg5IDguMTFDMTUuNSA3LjcyIDE0LjgzIDcgMTMuNTMgN2gtMi41NEM4LjI0IDYuOTkgNiA0Ljc1IDYgMkg0YzAgMy4xNiAyLjExIDUuODQgNSA2LjcxVjIyaDJ2LTZoMnY2aDJWMTAuMDVMMTguOTUgMTRsMS40MS0xLjQxLTQuNDctNC40OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRW1vamlTeW1ib2xzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAyaDh2Mkgzek02IDExaDJWN2gzVjVIM3YyaDN6TTEyLjQwNCAyMC4xODJsNy43NzgtNy43NzggMS40MTQgMS40MTQtNy43NzggNy43Nzh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTQuNVwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE5LjVcIixcImN5XCI6XCIxOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSAxMUEyLjUgMi41IDAgMCAwIDE4IDguNVY0aDNWMmgtNHY0LjUxYy0uNDItLjMyLS45My0uNTEtMS41LS41MWEyLjUgMi41IDAgMCAwIDAgNXpNOS43NCAxNS45NmwtMS40MSAxLjQxLS43MS0uNzEuMzUtLjM1YTIuNDk5IDIuNDk5IDAgMCAwLTEuNzctNC4yNyAyLjQ5OSAyLjQ5OSAwIDAgMC0xLjc3IDQuMjdsLjM1LjM1LTEuMDYgMS4wNmMtLjk4Ljk4LS45OCAyLjU2IDAgMy41NC41LjUgMS4xNC43NCAxLjc4Ljc0czEuMjgtLjI0IDEuNzctLjczbDEuMDYtMS4wNiAxLjQxIDEuNDEgMS40MS0xLjQxLTEuNDEtMS40MSAxLjQxLTEuNDEtMS40MS0xLjQzek01Ljg1IDE0LjJjLjEyLS4xMi4yNi0uMTUuMzUtLjE1cy4yMy4wMy4zNS4xNWMuMTkuMi4xOS41MSAwIC43MWwtLjM1LjM1LS4zNS0uMzZhLjUwMS41MDEgMCAwIDEgMC0uN3ptMCA1LjY1Yy0uMTIuMTItLjI2LjE1LS4zNS4xNXMtLjIzLS4wMy0uMzUtLjE1YS41MTMuNTEzIDAgMCAxIDAtLjcxbDEuMDYtMS4wNi43MS43MS0xLjA3IDEuMDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVtb2ppVHJhbnNwb3J0YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC41NyAxMC42NmMtLjE0LS40LS41Mi0uNjYtLjk3LS42NmgtNy4xOWMtLjQ2IDAtLjgzLjI2LS45OC42NkwxMCAxNC43N2wuMDEgNS41MWMwIC4zOC4zMS43Mi42OS43MmguNjJjLjM4IDAgLjY4LS4zOC42OC0uNzZWMTloOHYxLjI0YzAgLjM4LjMxLjc2LjY5Ljc2aC42MWMuMzggMCAuNjktLjM0LjY5LS43MmwuMDEtMS4zN3YtNC4xNGwtMS40My00LjExem0tOC4xNi4zNGg3LjE5bDEuMDMgM2gtOS4yNWwxLjAzLTN6TTEyIDE3Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTggMGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA5aDFWM0g3djVIMnYxM2gxVjloNVY0aDZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTFoMnYySDV6TTEwIDVoMnYyaC0yek01IDE1aDJ2Mkg1ek01IDE5aDJ2Mkg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFbmdpbmVlcmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTVjLTIuNjcgMC04IDEuMzQtOCA0djJoMTZ2LTJjMC0yLjY2LTUuMzMtNC04LTR6TTIyLjEgNi44NGMuMDEtLjExLjAyLS4yMi4wMi0uMzQgMC0uMTItLjAxLS4yMy0uMDMtLjM0bC43NC0uNThjLjA3LS4wNS4wOC0uMTUuMDQtLjIybC0uNy0xLjIxYy0uMDQtLjA4LS4xNC0uMS0uMjEtLjA4bC0uODYuMzVjLS4xOC0uMTQtLjM4LS4yNS0uNTktLjM0bC0uMTMtLjkzQS4xODIuMTgyIDAgMCAwIDIwLjIgM2gtMS40Yy0uMDkgMC0uMTYuMDYtLjE3LjE1bC0uMTMuOTNjLS4yMS4wOS0uNDEuMjEtLjU5LjM0bC0uODctLjM1Yy0uMDgtLjAzLS4xNyAwLS4yMS4wOGwtLjcgMS4yMWMtLjA0LjA4LS4wMy4xNy4wNC4yMmwuNzQuNThhMS45NTMgMS45NTMgMCAwIDAgMCAuNjhsLS43NC41OGMtLjA3LjA1LS4wOC4xNS0uMDQuMjJsLjcgMS4yMWMuMDQuMDguMTQuMS4yMS4wOGwuODctLjM1Yy4xOC4xNC4zOC4yNS41OS4zNGwuMTMuOTNjLjAxLjA5LjA4LjE1LjE3LjE1aDEuNGMuMDkgMCAuMTYtLjA2LjE3LS4xNWwuMTMtLjkzYy4yMS0uMDkuNDEtLjIxLjU5LS4zNGwuODcuMzVjLjA4LjAzLjE3IDAgLjIxLS4wOGwuNy0xLjIxYy4wNC0uMDguMDMtLjE3LS4wNC0uMjJsLS43My0uNTh6bS0yLjYuOTFhMS4yNSAxLjI1IDAgMSAxIDAtMi41IDEuMjUgMS4yNSAwIDAgMSAwIDIuNXpNMTkuOTIgMTEuNjhsLS41LS44N2MtLjAzLS4wNi0uMS0uMDgtLjE1LS4wNmwtLjYyLjI1Yy0uMTMtLjEtLjI3LS4xOC0uNDItLjI0bC0uMDktLjY2QS4xNS4xNSAwIDAgMCAxOCAxMGgtMWMtLjA2IDAtLjExLjA0LS4xMi4xMWwtLjA5LjY2Yy0uMTUuMDYtLjI5LjE1LS40Mi4yNGwtLjYyLS4yNWMtLjA2LS4wMi0uMTIgMC0uMTUuMDZsLS41Ljg3Yy0uMDMuMDYtLjAyLjEyLjAzLjE2bC41My40MWMtLjAxLjA4LS4wMi4xNi0uMDIuMjQgMCAuMDguMDEuMTcuMDIuMjRsLS41My40MWMtLjA1LjA0LS4wNi4xMS0uMDMuMTZsLjUuODdjLjAzLjA2LjEuMDguMTUuMDZsLjYyLS4yNWMuMTMuMS4yNy4xOC40Mi4yNGwuMDkuNjZjLjAxLjA3LjA2LjExLjEyLjExaDFjLjA2IDAgLjEyLS4wNC4xMi0uMTFsLjA5LS42NmMuMTUtLjA2LjI5LS4xNS40Mi0uMjRsLjYyLjI1Yy4wNi4wMi4xMiAwIC4xNS0uMDZsLjUtLjg3Yy4wMy0uMDYuMDItLjEyLS4wMy0uMTZsLS41Mi0uNDFjLjAxLS4wOC4wMi0uMTYuMDItLjI0IDAtLjA4LS4wMS0uMTctLjAyLS4yNGwuNTMtLjQxYy4wNS0uMDQuMDYtLjExLjA0LS4xN3ptLTIuNDIgMS42NWMtLjQ2IDAtLjgzLS4zOC0uODMtLjgzIDAtLjQ2LjM4LS44My44My0uODNzLjgzLjM4LjgzLjgzYzAgLjQ2LS4zNy44My0uODMuODN6TTQuNzQgOWg4LjUzYy4yNyAwIC40OS0uMjIuNDktLjQ5di0uMDJhLjQ5LjQ5IDAgMCAwLS40OS0uNDlIMTNjMC0xLjQ4LS44MS0yLjc1LTItMy40NXYuOTVjMCAuMjgtLjIyLjUtLjUuNXMtLjUtLjIyLS41LS41VjQuMTRDOS42OCA0LjA2IDkuMzUgNCA5IDRzLS42OC4wNi0xIC4xNFY1LjVjMCAuMjgtLjIyLjUtLjUuNVM3IDUuNzggNyA1LjV2LS45NUM1LjgxIDUuMjUgNSA2LjUyIDUgOGgtLjI2YS40OS40OSAwIDAgMC0uNDkuNDl2LjAzYzAgLjI2LjIyLjQ4LjQ5LjQ4ek05IDEzYzEuODYgMCAzLjQxLTEuMjggMy44Ni0zSDUuMTRjLjQ1IDEuNzIgMiAzIDMuODYgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmFjZTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS45NyAxMy41MnYtLjA0QzIzLjIxIDEyLjM4IDI0IDEwLjc4IDI0IDljMC0zLjMxLTIuNjktNi02LTYtLjI2IDAtLjUyLjAyLS43OC4wNmE1Ljk4IDUuOTggMCAwIDAtMTAuNDQgMEM2LjUyIDMuMDIgNi4yNiAzIDYgMyAyLjY5IDMgMCA1LjY5IDAgOWMwIDEuNzguNzkgMy4zOCAyLjAyIDQuNDh2LjA0QTYuMDA4IDYuMDA4IDAgMCAwIDAgMThjMCAzLjMxIDIuNjkgNiA2IDYgMS4zOSAwIDIuNjctLjQ4IDMuNjktMS4yOC43NC4xOCAxLjUxLjI4IDIuMzEuMjhzMS41Ny0uMSAyLjMxLS4yOGMxLjAyLjggMi4zIDEuMjggMy42OSAxLjI4IDMuMzEgMCA2LTIuNjkgNi02IDAtMS43OC0uNzktMy4zOC0yLjAzLTQuNDh6TTEyIDIxYy00LjQxIDAtOC0zLjU5LTgtOCAwLTMuNzIgMi41Ni02Ljg1IDYtNy43NHYuMDVjMCAzLjM0IDIuNzIgNi4wNiA2LjA2IDYuMDYgMS4yNiAwIDIuNDUtLjM5IDMuNDUtMS4wOS4zMS44Ni40OSAxLjc3LjQ5IDIuNzIgMCA0LjQxLTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjE0XCIsXCJyXCI6XCIxLjI1XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCIxNFwiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGYWNlMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxLjI1XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMi45MSAxMS45NkMyMi4zOSA2LjMyIDE3LjY2IDIgMTIgMlMxLjYxIDYuMzIgMS4wOSAxMS45NmwtLjkgOS44NmMtLjEgMS4xNy44MiAyLjE4IDIgMi4xOGgxOS42MmMxLjE4IDAgMi4xLTEuMDEgMS45OS0yLjE4bC0uODktOS44NnpNNC41NCA5LjEzYy44Ny41NSAxLjg5Ljg3IDIuOTYuODcgMS44NiAwIDMuNS0uOTMgNC41LTIuMzVDMTMgOS4wNyAxNC42NCAxMCAxNi41IDEwYzEuMDcgMCAyLjA5LS4zMiAyLjk2LS44Ny4zNC44OS41NCAxLjg2LjU0IDIuODcgMCA0LjQxLTMuNTkgOC04IDhzLTgtMy41OS04LThjMC0xLjAxLjItMS45OC41NC0yLjg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGYWNlNCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJjLS45NiAwLTEuODguMTQtMi43NS4zOUE0Ljk4NiA0Ljk4NiAwIDAgMCA1IDBDMi4yNCAwIDAgMi4yNCAwIDVjMCAxLjguOTYgMy4zNyAyLjM5IDQuMjVDMi4xNCAxMC4xMiAyIDExLjA0IDIgMTJjMCA1LjUyIDQuNDggMTAgMTAgMTBzMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04IDAtLjA1LjAxLS4xLjAxLS4xNSAyLjYtLjk4IDQuNjgtMi45OSA1Ljc0LTUuNTVhOS45NDIgOS45NDIgMCAwIDAgOS45MiAzLjQ2Yy4yMS43MS4zMyAxLjQ2LjMzIDIuMjQgMCA0LjQxLTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxLjI1XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGYWNlNSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04IDAtMS4xMi4yMy0yLjE4LjY1LTMuMTVhLjQ5NS40OTUgMCAwIDAgLjg1LS4zNWMwLS4yNS0uMTktLjQ1LS40My0uNDkuMTUtLjI2LjMyLS41MS40OS0uNzUtLjAzLjA4LS4wNi4xNS0uMDYuMjQgMCAuMjguMjIuNS41LjVzLjUtLjIyLjUtLjVTNi4yOCA3IDYgN2MtLjEzIDAtLjI1LjA1LS4zNC4xMy41Mi0uNjggMS4xNS0xLjI4IDEuODYtMS43NkEuNDk1LjQ5NSAwIDAgMCA4IDZhLjQ5NS40OTUgMCAwIDAgLjEtLjk4Yy4xNi0uMDkuMzItLjE3LjQ5LS4yNS4wOS4xNC4yNC4yMy40MS4yMy4yOCAwIC41LS4yMi41LS41IDAtLjAzLS4wMS0uMDYtLjAyLS4wOS4zOS0uMTMuNzktLjIzIDEuMjEtLjMtLjExLjEtLjE5LjIzLS4xOS4zOSAwIC4yOC4yMi41LjUuNXMuNS0uMjIuNS0uNWEuNTEuNTEgMCAwIDAtLjMtLjQ2Yy4yNi0uMDMuNTMtLjA0LjgtLjA0cy41NC4wMS44LjA0Yy0uMTguMDgtLjMuMjUtLjMuNDYgMCAuMjguMjIuNS41LjVzLjUtLjIyLjUtLjVjMC0uMTYtLjA4LS4yOS0uMTktLjM4LjQxLjA3LjgyLjE3IDEuMjEuMy0uMDEuMDItLjAyLjA1LS4wMi4wOCAwIC4yOC4yMi41LjUuNS4xNyAwIC4zMi0uMDkuNDEtLjIzLjE3LjA4LjMzLjE2LjQ5LjI1QS40OTUuNDk1IDAgMCAwIDE2IDZjLjI4IDAgLjUtLjIyLjUtLjUgMC0uMDUtLjAxLS4wOS0uMDMtLjEzLjcxLjQ4IDEuMzQgMS4wOCAxLjg2IDEuNzZhLjQ5NS40OTUgMCAwIDAtLjgzLjM3YzAgLjI4LjIyLjUuNS41cy41LS4yMi41LS41YzAtLjA5LS4wMy0uMTYtLjA3LS4yMy4xOC4yNC4zNC40OS40OS43NS0uMjMuMDMtLjQyLjIzLS40Mi40OGEuNDk1LjQ5NSAwIDAgMCAuODUuMzVjLjQyLjk3LjY1IDIuMDMuNjUgMy4xNSAwIDQuNDEtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjEuMjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjUuNVwiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNFwiLFwiY3lcIjpcIjUuNVwiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMFwiLFwiY3lcIjpcIjUuNVwiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxN1wiLFwiY3lcIjpcIjYuNVwiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiNi41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjdcIixcImN5XCI6XCI2LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTFcIixcImN5XCI6XCI2LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTNcIixcImN5XCI6XCI2LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCI2LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI3LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTRcIixcImN5XCI6XCI3LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTZcIixcImN5XCI6XCI3LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTBcIixcImN5XCI6XCI3LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOFwiLFwiY3lcIjpcIjcuNVwiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiOC41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjdcIixcImN5XCI6XCI4LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTFcIixcImN5XCI6XCI4LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTNcIixcImN5XCI6XCI4LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCI4LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTdcIixcImN5XCI6XCI4LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGYWNlNiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04di0uMDNjMi4zMS0uMjIgMy40My0xLjU5IDQuMzQtMy40MS4xNy0uMzUuNTEtLjU2LjktLjU2aDUuNTNjLjM4IDAgLjcyLjIxLjg5LjU1LjkgMS44IDEuOTkgMy4xOSA0LjM0IDMuNDF2LjAzYzAgNC40Mi0zLjU5IDguMDEtOCA4LjAxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjlcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjEuMjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmFjZWJvb2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMmMwLTUuNTItNC40OC0xMC0xMC0xMFMyIDYuNDggMiAxMmMwIDQuODQgMy40NCA4Ljg3IDggOS44VjE1SDh2LTNoMlY5LjVDMTAgNy41NyAxMS41NyA2IDEzLjUgNkgxNnYzaC0yYy0uNTUgMC0xIC40NS0xIDF2MmgzdjNoLTN2Ni45NWM1LjA1LS41IDktNC43NiA5LTkuOTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZlbWFsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjUgOS41QzE3LjUgNi40NiAxNS4wNCA0IDEyIDRTNi41IDYuNDYgNi41IDkuNWMwIDIuNyAxLjk0IDQuOTMgNC41IDUuNFYxN0g5djJoMnYyaDJ2LTJoMnYtMmgtMnYtMi4xYzIuNTYtLjQ3IDQuNS0yLjcgNC41LTUuNHptLTkgMEM4LjUgNy41NyAxMC4wNyA2IDEyIDZzMy41IDEuNTcgMy41IDMuNVMxMy45MyAxMyAxMiAxM3MtMy41LTEuNTctMy41LTMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlyZXBsYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAydjIwaDIwVjJIMnptOS44NiAxNC45NmMuNzYtLjI0IDEuNC0xLjA0IDEuNTMtMS42My4xMy0uNTYtLjEtMS4wNS0uMi0xLjYtLjA4LS40Ni0uMDctLjg1LjA4LTEuMjguNTQgMS4yMSAyLjE1IDEuNjQgMS45OCAzLjE4LS4xOSAxLjctMi4xMSAyLjM4LTMuMzkgMS4zM3pNMjAgMjBoLTJ2LTJoLTIuMDJBNC45OCA0Ljk4IDAgMCAwIDE3IDE1YzAtMS44OS0xLjA5LTIuODUtMS44NS0zLjM3QzEyLjIgOS42MSAxMyA3IDEzIDdjLTYuNzMgMy41Ny02LjAyIDcuNDctNiA4IC4wMy45Ni40OSAyLjA3IDEuMjMgM0g2djJINFY0aDE2djE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaXRiaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS44OSAxMy44OWMxLjA0IDAgMS44OS0uODUgMS44OS0xLjg5cy0uODUtMS44OS0xLjg5LTEuODlTMTggMTAuOTYgMTggMTJzLjg1IDEuODkgMS44OSAxLjg5em0tNC4yNC0uMjFjLjkzIDAgMS42OC0uNzUgMS42OC0xLjY4cy0uNzUtMS42OC0xLjY4LTEuNjhjLS45MyAwLTEuNjguNzUtMS42OCAxLjY4cy43NSAxLjY4IDEuNjggMS42OHptMC00LjI2Yy45MyAwIDEuNjgtLjc1IDEuNjgtMS42OCAwLS45My0uNzUtMS42OC0xLjY4LTEuNjgtLjkzIDAtMS42OC43NS0xLjY4IDEuNjggMCAuOTMuNzUgMS42OCAxLjY4IDEuNjh6bTAgOC41MWMuOTMgMCAxLjY4LS43NSAxLjY4LTEuNjggMC0uOTMtLjc1LTEuNjgtMS42OC0xLjY4LS45MyAwLTEuNjguNzUtMS42OCAxLjY4IDAgLjkyLjc1IDEuNjggMS42OCAxLjY4em0tNC4yNC00LjQ2Yy44MSAwIDEuNDctLjY2IDEuNDctMS40N3MtLjY2LTEuNDctMS40Ny0xLjQ3Yy0uODEgMC0xLjQ3LjY2LTEuNDcgMS40N3MuNjUgMS40NyAxLjQ3IDEuNDd6bTAtNC4yNmMuODEgMCAxLjQ3LS42NiAxLjQ3LTEuNDdzLS42Ni0xLjQ3LTEuNDctMS40N2MtLjgxIDAtMS40Ny42Ni0xLjQ3IDEuNDdzLjY1IDEuNDcgMS40NyAxLjQ3em0wIDguNTJjLjgxIDAgMS40Ny0uNjYgMS40Ny0xLjQ3IDAtLjgxLS42Ni0xLjQ3LTEuNDctMS40Ny0uODEgMC0xLjQ3LjY2LTEuNDcgMS40Ny0uMDEuODEuNjUgMS40NyAxLjQ3IDEuNDd6bTAgNC4yN2MuODEgMCAxLjQ3LS42NiAxLjQ3LTEuNDcgMC0uODEtLjY2LTEuNDctMS40Ny0xLjQ3LS44MSAwLTEuNDcuNjYtMS40NyAxLjQ3LS4wMS44MS42NSAxLjQ3IDEuNDcgMS40N3ptMC0xNy4wNmMuODEgMCAxLjQ3LS42NiAxLjQ3LTEuNDdTMTIuMjIgMiAxMS40MSAyYy0uODEgMC0xLjQ3LjY2LTEuNDcgMS40N3MuNjUgMS40NyAxLjQ3IDEuNDd6bS00LjI1IDguMzJjLjcgMCAxLjI2LS41NyAxLjI2LTEuMjZzLS41Ny0xLjI2LTEuMjYtMS4yNmExLjI2MSAxLjI2MSAwIDAgMCAwIDIuNTJ6bTAgNC4yNWExLjI2MSAxLjI2MSAwIDAgMCAwLTIuNTIgMS4yNjEgMS4yNjEgMCAwIDAgMCAyLjUyem0wLTguNDlhMS4yNjEgMS4yNjEgMCAwIDAgMC0yLjUyIDEuMjYxIDEuMjYxIDAgMCAwIDAgMi41MnptLTMuODcgNC4wM2ExLjA1IDEuMDUgMCAxIDAgMC0yLjEgMS4wNSAxLjA1IDAgMCAwIDAgMi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGbG9vZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjY3IDE5Yy0xLjk1IDAtMi4wOSAxLTMuMzMgMS0xLjE5IDAtMS40Mi0xLTMuMzMtMS0xLjk1IDAtMi4xIDEtMy4zNCAxLTEuMjQgMC0xLjM4LTEtMy4zMy0xLTEuOTUgMC0yLjEgMS0zLjM0IDF2MmMxLjk1IDAgMi4xMS0xIDMuMzQtMSAxLjI0IDAgMS4zOCAxIDMuMzMgMSAxLjk1IDAgMi4xLTEgMy4zNC0xIDEuMjIgMCAxLjQgMSAzLjMzIDEgMS45MyAwIDIuMS0xIDMuMzMtMSAxLjIyIDAgMS40IDEgMy4zMyAxdi0yYy0xLjI0IDAtMS4zOC0xLTMuMzMtMXpNOC42OCAxNy41YzEuOTUgMCAyLjA5LTEgMy4zMy0xIDEuMTkgMCAxLjQyIDEgMy4zMyAxIDEuOTUgMCAyLjA5LTEgMy4zMy0xIDEuMTkgMCAxLjQuOTggMy4zMSAxdi0yYy0uNjMgMC0xLS4yOC0xLjQ4LS41NWwtMi4wMi03LjUzIDIuMDkuODUuNzQtMS44Nkw5Ljc4IDIgMiAxMS42MWwxLjU3IDEuMjMgMS4zOS0xLjc4LjkzIDMuNDhjLS4xOC0uMDItLjM1LS4wNS0uNTYtLjA1LTEuOTUgMC0yLjA5IDEtMy4zMyAxdjJjMS45IDAgMi4xNy0xIDMuMzUtMSAxLjE5LjAxIDEuNDIgMS4wMSAzLjMzIDEuMDF6bTUuMzYtNy4zMiAxLjQyIDUuMzFjLTEuMzQuMDktMS40Ny0uOTktMy40Ny0uOTktLjM2IDAtLjY1LjA0LS45MS4xbC0uOTEtMy4zOSAzLjg3LTEuMDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvbGxvd1RoZVNpZ25zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS41IDUuNWMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6TTUuNzUgOC45IDMgMjNoMi4xbDEuNzUtOEw5IDE3djZoMnYtNy41NUw4Ljk1IDEzLjRsLjYtM0MxMC44NSAxMiAxMi44IDEzIDE1IDEzdi0yYy0xLjg1IDAtMy40NS0xLTQuMzUtMi40NWwtLjk1LTEuNkM5LjM1IDYuMzUgOC43IDYgOCA2Yy0uMjUgMC0uNS4wNS0uNzUuMTVMMiA4LjNWMTNoMlY5LjY1bDEuNzUtLjc1TTEzIDJ2N2gzLjc1djE0aDEuNVY5SDIyVjJoLTl6bTUuMDEgNlY2LjI1SDE0LjV2LTEuNWgzLjUxVjNsMi40OSAyLjVMMTguMDEgOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRnJvbnRIYW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuNzUgOGMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjVWMTVIMThjLTEuNjUgMC0zIDEuMzUtMyAzaC0xYzAtMi4wNCAxLjUzLTMuNzIgMy41LTMuOTdWMy4yNWExLjI1IDEuMjUgMCAwIDAtMi41IDBWMTFoLTFWMS4yNWExLjI1IDEuMjUgMCAwIDAtMi41IDBWMTFoLTFWMi43NWExLjI1IDEuMjUgMCAwIDAtMi41IDBWMTJIN1Y1Ljc1YTEuMjUgMS4yNSAwIDAgMC0yLjUgMHYxMGMwIDQuNTYgMy42OSA4LjI1IDguMjUgOC4yNVMyMSAyMC4zMSAyMSAxNS43NXYtNi41QzIxIDguNTYgMjAuNDQgOCAxOS43NSA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHaXJsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNy41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVMxMi45NyA0IDEyIDRzLTEuNzUuNzgtMS43NSAxLjc1UzExLjAzIDcuNSAxMiA3LjV6bTIgOC41djRoLTR2LTRIOGwyLjM4LTYuMzhhMS43MzMgMS43MzMgMCAwIDEgMy4yNCAwTDE2IDE2aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHcm91cEFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfV19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA5VjdoLTJ2MmgtMnYyaDJ2Mmgydi0yaDJWOXpNOCAxMmMyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNC00IDEuNzktNCA0IDEuNzkgNCA0IDR6TTggMTNjLTIuNjcgMC04IDEuMzQtOCA0djNoMTZ2LTNjMC0yLjY2LTUuMzMtNC04LTR6TTEyLjUxIDQuMDVDMTMuNDMgNS4xMSAxNCA2LjQ5IDE0IDhzLS41NyAyLjg5LTEuNDkgMy45NUMxNC40NyAxMS43IDE2IDEwLjA0IDE2IDhzLTEuNTMtMy43LTMuNDktMy45NXpNMTYuNTMgMTMuODNDMTcuNDIgMTQuNjYgMTggMTUuNyAxOCAxN3YzaDJ2LTNjMC0xLjQ1LTEuNTktMi41MS0zLjQ3LTMuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdyb3VwT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgOGMwLTEuNDItLjUtMi43My0xLjMzLTMuNzYuNDItLjE0Ljg2LS4yNCAxLjMzLS4yNCAyLjIxIDAgNCAxLjc5IDQgNHMtMS43OSA0LTQgNGgtLjE4bC0uNzctLjc3Yy42LS45NC45NS0yLjA1Ljk1LTMuMjN6bTcuODMgMTJIMjN2LTNjMC0yLjE4LTMuNTgtMy40Ny02LjM0LTMuODcgMS4xLjc1IDEuOTUgMS43MSAyLjIzIDIuOTRMMjIuODMgMjB6TTcuMjQgNC40MWEzLjk5NiAzLjk5NiAwIDAgMSA1LjM1IDUuMzVMNy4yNCA0LjQxek05LjE3IDEySDljLTIuMjEgMC00LTEuNzktNC00di0uMTdMLjY5IDMuNTEgMi4xIDIuMWwxOS44IDE5LjgtMS40MSAxLjQxTDE3IDE5LjgzVjIwSDF2LTNjMC0yLjY2IDUuMzMtNCA4LTQgLjM3IDAgLjguMDMgMS4yNS4wOEw5LjE3IDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHcm91cFJlbW92ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0IDl2MmgtNlY5aDZ6TTggNEM1Ljc5IDQgNCA1Ljc5IDQgOHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMCA5Yy0yLjY3IDAtOCAxLjM0LTggNHYzaDE2di0zYzAtMi42Ni01LjMzLTQtOC00em00LjUxLTguOTVDMTMuNDMgNS4xMSAxNCA2LjQ5IDE0IDhzLS41NyAyLjg5LTEuNDkgMy45NUMxNC40NyAxMS43IDE2IDEwLjA0IDE2IDhzLTEuNTMtMy43LTMuNDktMy45NXptNC4wMiA5Ljc4QzE3LjQyIDE0LjY2IDE4IDE1LjcgMTggMTd2M2gydi0zYzAtMS40NS0xLjU5LTIuNTEtMy40Ny0zLjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHcm91cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDExYzEuNjYgMCAyLjk5LTEuMzQgMi45OS0zUzE3LjY2IDUgMTYgNWMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgM3ptLTggMGMxLjY2IDAgMi45OS0xLjM0IDIuOTktM1M5LjY2IDUgOCA1QzYuMzQgNSA1IDYuMzQgNSA4czEuMzQgMyAzIDN6bTAgMmMtMi4zMyAwLTcgMS4xNy03IDMuNVYxOWgxNHYtMi41YzAtMi4zMy00LjY3LTMuNS03LTMuNXptOCAwYy0uMjkgMC0uNjIuMDItLjk3LjA1IDEuMTYuODQgMS45NyAxLjk3IDEuOTcgMy40NVYxOWg2di0yLjVjMC0yLjMzLTQuNjctMy41LTctMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHcm91cHMyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMjcgMTJoMy40NmExLjUgMS41IDAgMCAwIDEuNDgtMS43NWwtLjMtMS43OWEyLjk1MSAyLjk1MSAwIDAgMC01LjgyLjAxbC0uMyAxLjc5Yy0uMTUuOTEuNTUgMS43NCAxLjQ4IDEuNzR6TTEuNjYgMTEuMTFjLS4xMy4yNi0uMTguNTctLjEuODguMTYuNjkuNzYgMS4wMyAxLjUzIDFoMS45NWMuODMgMCAxLjUxLS41OCAxLjUxLTEuMjkgMC0uMTQtLjAzLS4yNy0uMDctLjQtLjAxLS4wMy0uMDEtLjA1LjAxLS4wOC4wOS0uMTYuMTQtLjM0LjE0LS41MyAwLS4zMS0uMTQtLjYtLjM2LS44Mi0uMDMtLjAzLS4wMy0uMDYtLjAyLS4xLjA3LS4yLjA3LS40My4wMS0uNjVhMS4xMiAxLjEyIDAgMCAwLS45OS0uNzQuMDkuMDkgMCAwIDEtLjA3LS4wM0M1LjAzIDguMTQgNC43MiA4IDQuMzcgOGMtLjMgMC0uNTcuMS0uNzUuMjYtLjAzLjAzLS4wNi4wMy0uMDkuMDJhMS4yNCAxLjI0IDAgMCAwLTEuNyAxLjAzYzAgLjAyLS4wMS4wNC0uMDMuMDYtLjI5LjI2LS40Ni42NS0uNDEgMS4wNS4wMy4yMi4xMi40My4yNS42LjAzLjAyLjAzLjA2LjAyLjA5ek0xNi4yNCAxMy42NWMtMS4xNy0uNTItMi42MS0uOS00LjI0LS45LTEuNjMgMC0zLjA3LjM5LTQuMjQuOUEyLjk4OCAyLjk4OCAwIDAgMCA2IDE2LjM5VjE4aDEydi0xLjYxYzAtMS4xOC0uNjgtMi4yNi0xLjc2LTIuNzR6TTEuMjIgMTQuNThBMi4wMSAyLjAxIDAgMCAwIDAgMTYuNDNWMThoNC41di0xLjYxYzAtLjgzLjIzLTEuNjEuNjMtMi4yOS0uMzctLjA2LS43NC0uMS0xLjEzLS4xLS45OSAwLTEuOTMuMjEtMi43OC41OHpNMjIuNzggMTQuNThBNi45NSA2Ljk1IDAgMCAwIDIwIDE0Yy0uMzkgMC0uNzYuMDQtMS4xMy4xLjQuNjguNjMgMS40Ni42MyAyLjI5VjE4SDI0di0xLjU3YzAtLjgxLS40OC0xLjUzLTEuMjItMS44NXpNMjIgMTF2LS41YzAtMS4xLS45LTItMi0yaC0yYy0uNDIgMC0uNjUuNDgtLjM5LjgxbC43LjYzYy0uMTkuMzEtLjMxLjY3LS4zMSAxLjA2IDAgMS4xLjkgMiAyIDJzMi0uOSAyLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdyb3VwczMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi4yNCAxMy42NWMtMS4xNy0uNTItMi42MS0uOS00LjI0LS45LTEuNjMgMC0zLjA3LjM5LTQuMjQuOUEyLjk4OCAyLjk4OCAwIDAgMCA2IDE2LjM5VjE4aDEydi0xLjYxYzAtMS4xOC0uNjgtMi4yNi0xLjc2LTIuNzR6TTEuMjIgMTQuNThBMi4wMSAyLjAxIDAgMCAwIDAgMTYuNDNWMThoNC41di0xLjYxYzAtLjgzLjIzLTEuNjEuNjMtMi4yOS0uMzctLjA2LS43NC0uMS0xLjEzLS4xLS45OSAwLTEuOTMuMjEtMi43OC41OHpNMjIuNzggMTQuNThBNi45NSA2Ljk1IDAgMCAwIDIwIDE0Yy0uMzkgMC0uNzYuMDQtMS4xMy4xLjQuNjguNjMgMS40Ni42MyAyLjI5VjE4SDI0di0xLjU3YzAtLjgxLS40OC0xLjUzLTEuMjItMS44NXpNMTIgMTJjMS42NiAwIDMtMS4zNCAzLTNzLTEuMzQtMy0zLTMtMyAxLjM0LTMgMyAxLjM0IDMgMyAzek0xLjQ5NyAxMSA0IDguNDk3IDYuNTAzIDExIDQgMTMuNTAzek0yMCA5bC0yLjUgNGg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHcm91cHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMi43NWMxLjYzIDAgMy4wNy4zOSA0LjI0LjkgMS4wOC40OCAxLjc2IDEuNTYgMS43NiAyLjczVjE4SDZ2LTEuNjFjMC0xLjE4LjY4LTIuMjYgMS43Ni0yLjczIDEuMTctLjUyIDIuNjEtLjkxIDQuMjQtLjkxek00IDEzYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptMS4xMyAxLjFjLS4zNy0uMDYtLjc0LS4xLTEuMTMtLjEtLjk5IDAtMS45My4yMS0yLjc4LjU4QTIuMDEgMi4wMSAwIDAgMCAwIDE2LjQzVjE4aDQuNXYtMS42MWMwLS44My4yMy0xLjYxLjYzLTIuMjl6TTIwIDEzYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptNCAzLjQzYzAtLjgxLS40OC0xLjUzLTEuMjItMS44NUE2Ljk1IDYuOTUgMCAwIDAgMjAgMTRjLS4zOSAwLS43Ni4wNC0xLjEzLjEuNC42OC42MyAxLjQ2LjYzIDIuMjlWMThIMjR2LTEuNTd6TTEyIDZjMS42NiAwIDMgMS4zNCAzIDNzLTEuMzQgMy0zIDMtMy0xLjM0LTMtMyAxLjM0LTMgMy0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIYW5kc2hha2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi40OCAxMC40MWMtLjM5LjM5LTEuMDQuMzktMS40MyAwbC00LjQ3LTQuNDYtNy4wNSA3LjA0LS42Ni0uNjNhMyAzIDAgMCAxIDAtNC4yNGw0LjI0LTQuMjRhMyAzIDAgMCAxIDQuMjQgMEwxNi40OCA5Yy4zOS4zOS4zOSAxLjAyIDAgMS40MXptLjctMi4xMmMuNzguNzguNzggMi4wNSAwIDIuODMtMS4yNyAxLjI3LTIuNjEuMjItMi44MyAwbC0zLjc2LTMuNzYtNS41NyA1LjU3YS45OTYuOTk2IDAgMCAwIDAgMS40MWMuMzkuMzkgMS4wMi4zOSAxLjQyIDBsNC42Mi00LjYyLjcxLjcxLTQuNjIgNC42MmEuOTk2Ljk5NiAwIDAgMCAwIDEuNDFjLjM5LjM5IDEuMDIuMzkgMS40MiAwbDQuNjItNC42Mi43MS43MS00LjYyIDQuNjJhLjk5Ni45OTYgMCAxIDAgMS40MSAxLjQxbDQuNjItNC42Mi43MS43MS00LjYyIDQuNjJhLjk5Ni45OTYgMCAxIDAgMS40MSAxLjQxbDguMzItOC4zNGEzIDMgMCAwIDAgMC00LjI0bC00LjI0LTQuMjRhMy4wMDEgMy4wMDEgMCAwIDAtNC4xOC0uMDZsNC40NyA0LjQ3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZWFsdGhBbmRTYWZldHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC41IDEzSDh2LTNoMi41VjcuNWgzVjEwSDE2djNoLTIuNXYyLjVoLTNWMTN6TTEyIDIgNCA1djYuMDljMCA1LjA1IDMuNDEgOS43NiA4IDEwLjkxIDQuNTktMS4xNSA4LTUuODYgOC0xMC45MVY1bC04LTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhlYXJ0QnJva2VuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNSAzYy0uOTYgMC0xLjkuMjUtMi43My42OUwxMiA5aDNsLTMgMTAgMS05aC0zbDEuNTQtNS4zOUMxMC40NyAzLjYxIDkuMDEgMyA3LjUgMyA0LjQyIDMgMiA1LjQyIDIgOC41YzAgNC4xMyA0LjE2IDcuMTggMTAgMTIuNSA1LjQ3LTQuOTQgMTAtOC4yNiAxMC0xMi41QzIyIDUuNDIgMTkuNTggMyAxNi41IDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhpa2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjUgNS41YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptNCA1LjI4Yy0xLjIzLS4zNy0yLjIyLTEuMTctMi44LTIuMThsLTEtMS42Yy0uNDEtLjY1LTEuMTEtMS0xLjg0LTEtLjc4IDAtMS41OS41LTEuNzggMS40NFM3IDIzIDcgMjNoMi4xbDEuOC04IDIuMSAydjZoMnYtNy41bC0yLjEtMiAuNi0zYzEgMS4xNSAyLjQxIDIuMDEgNCAyLjM0VjIzSDE5VjloLTEuNXYxLjc4ek03LjQzIDEzLjEzbC0yLjEyLS40MWEuOTk5Ljk5OSAwIDAgMS0uNzktMS4xN2wuNzYtMy45M2EyIDIgMCAwIDEgMi4zNC0xLjU4bDEuMTYuMjMtMS4zNSA2Ljg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIaXN0b3J5RWR1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA0djEuMzhjLS44My0uMzMtMS43Mi0uNS0yLjYxLS41LTEuNzkgMC0zLjU4LjY4LTQuOTUgMi4wNWwzLjMzIDMuMzNoMS4xMXYxLjExYy44Ni44NiAxLjk4IDEuMzEgMy4xMSAxLjM2VjE1SDZ2M2MwIDEuMS45IDIgMiAyaDEwYzEuNjYgMCAzLTEuMzQgMy0zVjRIOXptLTEuMTEgNi40MVY4LjI2SDUuNjFMNC41NyA3LjIyYTUuMDcgNS4wNyAwIDAgMSAxLjgyLS4zNGMxLjM0IDAgMi41OS41MiAzLjU0IDEuNDZsMS40MSAxLjQxLS4yLjJhMi43IDIuNyAwIDAgMS0xLjkyLjhjLS40NyAwLS45My0uMTItMS4zMy0uMzR6TTE5IDE3YzAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xdi0yaC02di0yLjU5Yy41Ny0uMjMgMS4xLS41NyAxLjU2LTEuMDNsLjItLjJMMTUuNTkgMTRIMTd2LTEuNDFsLTYtNS45N1Y2aDh2MTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMy43OSA4IDEuOC0zLTEuOC0zaC0zLjU4bC0xLjggMyAxLjggM3pNMTAuMjEgOWwtMS44IDMgMS44IDNoMy41OGwxLjgtMy0xLjgtM3pNMTYuNDUgMTEuNTFoMy41OWwxLjc5LTMtMS43OS0zaC0zLjU5bC0xLjggM3pNMjAuMDQgMTIuNTFoLTMuNTlsLTEuOCAzIDEuOCAzaDMuNTlsMS43OS0zek03LjU1IDExLjUxbDEuOC0zLTEuOC0zSDMuOTZsLTEuNzkgMyAxLjc5IDN6TTcuNTUgMTIuNTFIMy45NmwtMS43OSAzIDEuNzkgM2gzLjU5bDEuOC0zek0xMC4yMSAxNmwtMS44IDMgMS44IDNoMy41OGwxLjgtMy0xLjgtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSWNlU2thdGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggOC41YzAtLjI4LjIyLS41LjUtLjVoMi41MkwxMSA3SDguNWMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41SDExVjNIM3YxNWgzdjJIMnYyaDE2YzIuNzYgMCA1LTIuMjQgNS01aC0yYzAgMS42Ni0xLjM0IDMtMyAzaC0ydi0yaDN2LTIuODhjMC0yLjEtMS41NS0zLjUzLTMuMDMtMy44OGwtMi43LS42N2MtLjg3LS4yMi0xLjU3LS44MS0xLjk1LTEuNTdIOC41Yy0uMjggMC0uNS0uMjItLjUtLjV6TTE0IDIwSDh2LTJoNnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbnRlcmVzdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjAyIDEzYy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHpNMTMgMTN2OGg4di04aC04ek03IDJsLTUgOWgxMEw3IDJ6bTEyLjI1LjVjLTEuMDYgMC0xLjgxLjU2LTIuMjUgMS4xNy0uNDQtLjYxLTEuMTktMS4xNy0yLjI1LTEuMTdDMTMuMTkgMi41IDEyIDMuNzggMTIgNS4yNWMwIDIgMi40MiAzLjQyIDUgNS43NSAyLjU4LTIuMzMgNS0zLjc1IDUtNS43NSAwLTEuNDctMS4xOS0yLjc1LTIuNzUtMi43NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW9zU2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2IDUtMS40MiAxLjQyLTEuNTktMS41OVYxNmgtMS45OFY0LjgzTDkuNDIgNi40MiA4IDVsNC00IDQgNHptNCA1djExYzAgMS4xLS45IDItMiAySDZhMiAyIDAgMCAxLTItMlYxMGMwLTEuMTEuODktMiAyLTJoM3YySDZ2MTFoMTJWMTBoLTNWOGgzYTIgMiAwIDAgMSAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEtheWFraW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMjNjLTEuMDMgMC0yLjA2LS4yNS0zLS43NS0xLjg5IDEtNC4xMSAxLTYgMC0xLjg5IDEtNC4xMSAxLTYgMC0uOTUuNS0xLjk3Ljc1LTMgLjc1SDJ2LTJoMWMxLjA0IDAgMi4wOC0uMzUgMy0xIDEuODMgMS4zIDQuMTcgMS4zIDYgMCAxLjgzIDEuMyA0LjE3IDEuMyA2IDAgLjkxLjY1IDEuOTYgMSAzIDFoMXYyaC0xek0xMiA1LjVjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0xMiAxMnMtMS41Mi43MS0zLjkzIDEuMzdjLS44Mi0uMjMtMS41My0uNzUtMi4wNy0xLjM3LS43My44NC0xLjggMS41LTMgMS41cy0yLjI3LS42Ni0zLTEuNWMtLjczLjg0LTEuOCAxLjUtMyAxLjVzLTIuMjctLjY2LTMtMS41Yy0uNTQuNjEtMS4yNSAxLjEzLTIuMDcgMS4zN0MxLjUyIDE4LjIxIDAgMTcuNSAwIDE3LjVzMi45My0xLjM2IDcuMTMtMi4wOGwxLjM1LTQuMTdjLjMxLS45NSAxLjMyLTEuNDcgMi4yNy0xLjE2LjA5LjAzLjE5LjA3LjI3LjExbDIuNDcgMS4zIDIuODQtMS41IDEuNjUtMy43MS0uNTEtMS4zMkwxOC44IDIgMjIgMy40MyAyMC42NyA2LjRsLTEuMzEuNS0zLjcyIDguMzRjNC44NS42MyA4LjM2IDIuMjYgOC4zNiAyLjI2em0tOC45OC00LjU0LTEuNTIuOC0xLjc1LS45Mi0uNzEgMi4xN2MuMzIgMCAuNjQtLjAxLjk2LS4wMS43MSAwIDEuNC4wMyAyLjA3LjA4bC45NS0yLjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRLaW5nQmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNNiA3aDV2M0g2ek0xMyA3aDV2M2gtNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTBWN2MwLTEuMS0uOS0yLTItMkg2Yy0xLjEgMC0yIC45LTIgMnYzYy0xLjEgMC0yIC45LTIgMnY1aDEuMzNMNCAxOWgxbC42Ny0yaDEyLjY3bC42NiAyaDFsLjY3LTJIMjJ2LTVjMC0xLjEtLjktMi0yLTJ6bS05IDBINlY3aDV2M3ptNyAwaC01VjdoNXYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRLaXRlc3VyZmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgM2MwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yem0xNC4wNi0yaC0yLjEyTDE1LjUgMy40NGwxLjA2IDEuMDYgMy41LTMuNXpNMjIgMjN2LTJoLTFjLTEuMDQgMC0yLjA4LS4zNS0zLTEtMS44MyAxLjMtNC4xNyAxLjMtNiAwLTEuODMgMS4zLTQuMTcgMS4zLTYgMC0uOTEuNjUtMS45NiAxLTMgMUgydjJoMWMxLjAzIDAgMi4wNS0uMjUgMy0uNzUgMS44OSAxIDQuMTEgMSA2IDAgMS44OSAxIDQuMTEgMSA2IDAgLjk1LjUgMS45Ny43NSAzIC43NWgxem0tMS05LjcyYzAgMS40NC0yLjE5IDMuNjItNS4wNCA1LjU4LS4zMS4wOS0uNjMuMTQtLjk2LjE0LTEuMiAwLTIuMjctLjY2LTMtMS41LS43My44NC0xLjggMS41LTMgMS41LS45NCAwLTEuODEtLjQxLTIuNDktLjk5LjQ2LS4zOS45Ni0uNzggMS40OS0xLjE3bC0xLjU1LTIuOTdBNC4wNiA0LjA2IDAgMCAxIDYgMTJWOGMwLTEuMS45LTIgMi0yaDNjMS4zOCAwIDIuNjMtLjU2IDMuNTQtMS40NmwxLjQxIDEuNDFBNy4wMTggNy4wMTggMCAwIDEgMTEgOEg5LjZ2My41aDIuOGwxLjY5IDEuODhjMS45NS0uODQgMy43Ny0xLjM4IDUuMDYtMS4zOC44NCAwIDEuODUuMjUgMS44NSAxLjI4em0tOC44Ljk5LS43LS43Ny0yLjUuMS44MyAyLjAxYy41OS0uMzggMS44MS0xLjA2IDIuMzctMS4zNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGFuZHNsaWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUuNDcgMTMuNzktMi41OC0xLjAzTDYgMTUuMDVsLTQtMS41NHYyLjFsNCAxLjM0ek0xMC41NyAxMS40MiA4IDhIMnYzLjYxbDQgMS4zNHpNNiAxOS4wNWwtNC0xLjMzVjIyaDIwbC00Ljk3LTYuNjJ6TTE3IDZWMWwtNS0xLTMgMnY0bDMgMnpNMTguNSA3IDE2IDl2M2wyLjUgMiA0LjUtMlY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhdGlvbkNpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxMVY1bC0zLTMtMyAzdjJIM3YxNGgxOFYxMWgtNnptLTggOEg1di0yaDJ2MnptMC00SDV2LTJoMnYyem0wLTRINVY5aDJ2MnptNiA4aC0ydi0yaDJ2MnptMC00aC0ydi0yaDJ2MnptMC00aC0yVjloMnYyem0wLTRoLTJWNWgydjJ6bTYgMTJoLTJ2LTJoMnYyem0wLTRoLTJ2LTJoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMdWdnYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNmgtMlYzYzAtLjU1LS40NS0xLTEtMWgtNGMtLjU1IDAtMSAuNDUtMSAxdjNIN2MtMS4xIDAtMiAuOS0yIDJ2MTFjMCAxLjEuOSAyIDIgMiAwIC41NS40NSAxIDEgMXMxLS40NSAxLTFoNmMwIC41NS40NSAxIDEgMXMxLS40NSAxLTFjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnpNOS41IDE4SDhWOWgxLjV2OXptMy4yNSAwaC0xLjVWOWgxLjV2OXptLjc1LTEyaC0zVjMuNWgzVjZ6TTE2IDE4aC0xLjVWOUgxNnY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNYWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS41IDExYzEuOTMgMCAzLjUgMS41NyAzLjUgMy41UzExLjQzIDE4IDkuNSAxOCA2IDE2LjQzIDYgMTQuNSA3LjU3IDExIDkuNSAxMXptMC0yQzYuNDYgOSA0IDExLjQ2IDQgMTQuNVM2LjQ2IDIwIDkuNSAyMHM1LjUtMi40NiA1LjUtNS41YzAtMS4xNi0uMzYtMi4yMy0uOTctMy4xMkwxOCA3LjQyVjEwaDJWNGgtNnYyaDIuNThsLTMuOTcgMy45N0MxMS43MyA5LjM2IDEwLjY2IDkgOS41IDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1hbjIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA3aC00Yy0xLjEgMC0yIC45LTIgMnY2aDIuNXY3aDN2LTdIMTZWOWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjRcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWFuMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDdoLTRjLTEuMSAwLTIgLjktMiAydjZoMnY3aDR2LTdoMlY5YzAtMS4xLS45LTItMi0yek0xMiAxLjc1MSAxNC4yNDggNCAxMiA2LjI0OCA5Ljc1IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1hbjQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy43NSA3aC0zLjVDOS4wNCA3IDguMTEgOC4wNyA4LjI3IDkuMjZMMTAgMjJoNGwxLjczLTEyLjc0QzE1Ljg5IDguMDcgMTQuOTYgNyAxMy43NSA3elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiNFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA3aC00Yy0xLjEgMC0yIC45LTIgMnY2aDJ2N2g0di03aDJWOWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjRcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWFza3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS41IDZjLTEuMzEgMC0yLjM3IDEuMDEtMi40OCAyLjMtMS44OC0uNS0yLjg0LTEuOC01LjAyLTEuOC0yLjE5IDAtMy4xNCAxLjMtNS4wMiAxLjhDNi44NyA3LjAyIDUuODEgNiA0LjUgNkEyLjUgMi41IDAgMCAwIDIgOC41VjljMCA2IDMuNiA3LjgxIDYuNTIgNy45OEM5LjUzIDE3LjYyIDEwLjcyIDE4IDEyIDE4czIuNDctLjM4IDMuNDgtMS4wMkMxOC40IDE2LjgxIDIyIDE1IDIyIDl2LS41QTIuNSAyLjUgMCAwIDAgMTkuNSA2em0tMTYgM3YtLjVjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjNjMCAxLjI4LjM4IDIuNDcgMS4wMSAzLjQ4QzQuOTkgMTQuMjcgMy41IDEyLjY1IDMuNSA5em0xNyAwYzAgMy42NS0xLjQ5IDUuMjctMy4wMSA1Ljk4LjY0LTEuMDEgMS4wMS0yLjIgMS4wMS0zLjQ4di0zYzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMVY5em0tOS44MSAxLjQ4Yy0uNDQuMjYtLjk2LjU2LTEuNjkuNzZWMTAuMmMuNDgtLjE3Ljg0LS4zOCAxLjE4LS41OEMxMC43MiA5LjMgMTEuMjMgOSAxMiA5czEuMjcuMyAxLjguNjJjLjM0LjIuNzEuNDIgMS4yLjU5djEuMDRjLS43NS0uMjEtMS4yNi0uNTEtMS43MS0uNzgtLjQ2LS4yNy0uOC0uNDctMS4yOS0uNDdzLS44NC4yLTEuMzEuNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1pbGl0YXJ5VGVjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEwLjQzVjJIN3Y4LjQzYzAgLjM1LjE4LjY4LjQ5Ljg2bDQuMTggMi41MS0uOTkgMi4zNC0zLjQxLjI5IDIuNTkgMi4yNEw5LjA3IDIyIDEyIDIwLjIzIDE0LjkzIDIybC0uNzgtMy4zMyAyLjU5LTIuMjQtMy40MS0uMjktLjk5LTIuMzQgNC4xOC0yLjUxYy4zLS4xOC40OC0uNS40OC0uODZ6bS00IDEuOC0xIC42LTEtLjZWM2gydjkuMjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vb2RCYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHptMy41LTljLjgzIDAgMS41LS42NyAxLjUtMS41UzE2LjMzIDggMTUuNSA4IDE0IDguNjcgMTQgOS41cy42NyAxLjUgMS41IDEuNXptLTcgMGMuODMgMCAxLjUtLjY3IDEuNS0xLjVTOS4zMyA4IDguNSA4IDcgOC42NyA3IDkuNSA3LjY3IDExIDguNSAxMXptMy41IDNjLTIuMzMgMC00LjMxIDEuNDYtNS4xMSAzLjVoMTAuMjJjLS44LTIuMDQtMi43OC0zLjUtNS4xMS0zLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vb2QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bTMuNS05Yy44MyAwIDEuNS0uNjcgMS41LTEuNVMxNi4zMyA4IDE1LjUgOCAxNCA4LjY3IDE0IDkuNXMuNjcgMS41IDEuNSAxLjV6bS03IDBjLjgzIDAgMS41LS42NyAxLjUtMS41UzkuMzMgOCA4LjUgOCA3IDguNjcgNyA5LjUgNy42NyAxMSA4LjUgMTF6bTMuNSA2LjVjMi4zMyAwIDQuMzEtMS40NiA1LjExLTMuNUg2Ljg5Yy44IDIuMDQgMi43OCAzLjUgNS4xMSAzLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5pZ2h0c1N0YXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4xIDEyLjA4Yy0yLjMzLTQuNTEtLjUtOC40OC41My0xMC4wN0M2LjI3IDIuMiAxLjk4IDYuNTkgMS45OCAxMmMwIC4xNC4wMi4yOC4wMi40Mi42Mi0uMjcgMS4yOS0uNDIgMi0uNDIgMS42NiAwIDMuMTguODMgNC4xIDIuMTVBNC4wMSA0LjAxIDAgMCAxIDExIDE4YzAgMS41Mi0uODcgMi44My0yLjEyIDMuNTEuOTguMzIgMi4wMy41IDMuMTEuNSAzLjUgMCA2LjU4LTEuOCA4LjM3LTQuNTItMi4zNi4yMy02Ljk4LS45Ny05LjI2LTUuNDF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTZoLS4xOEM2LjQgMTQuODQgNS4zIDE0IDQgMTRjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDNoM2MxLjEgMCAyLS45IDItMnMtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vQWR1bHRDb250ZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnpNNCAxMmMwLTEuODUuNjMtMy41NCAxLjY5LTQuOUw3LjU5IDloMi44M0w3LjEgNS42OUE3LjkyNCA3LjkyNCAwIDAgMSAxMiA0YzQuNDEgMCA4IDMuNTkgOCA4IDAgMS44NS0uNjMgMy41NC0xLjY5IDQuOWwtMS45LTEuOWgtMi44M2wzLjMxIDMuMzFBNy44NzQgNy44NzQgMCAwIDEgMTIgMjBjLTQuNDEgMC04LTMuNTktOC04elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNC4yNSAxNC0xLjUtMiAxLjUtMmgtMS41TDEyIDExbC0uNzUtMWgtMS41bDEuNSAyLTEuNSAyaDEuNWwuNzUtMSAuNzUgMXpNOCAxMGwtLjc1IDEtLjc1LTFINWwxLjUgMkw1IDE0aDEuNWwuNzUtMUw4IDE0aDEuNUw4IDEybDEuNS0yek0xNiAxNGwuNzUtMSAuNzUgMUgxOWwtMS41LTIgMS41LTJoLTEuNWwtLjc1IDEtLjc1LTFoLTEuNWwxLjUgMi0xLjUgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm9MdWdnYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNzUgOXYuOTJsMS43NSAxLjc1VjlIMTZ2NC4xN2wzIDNWOGMwLTEuMS0uOS0yLTItMmgtMlYzYzAtLjU1LS40NS0xLTEtMWgtNGMtLjU1IDAtMSAuNDUtMSAxdjNoLS4xN2wzIDNoLjkyek0xMC41IDMuNWgzVjZoLTNWMy41em0xMC42OSAxNy42OUwyLjgxIDIuODEgMS4zOSA0LjIybDMuNjMgMy42M2MwIC4wNS0uMDIuMS0uMDIuMTV2MTFjMCAxLjEuOSAyIDIgMiAwIC41NS40NSAxIDEgMXMxLS40NSAxLTFoNmMwIC41NS40NSAxIDEgMXMxLS40NSAxLTFjLjM0IDAgLjY1LS4wOS45My0uMjRsMS44NSAxLjg1IDEuNDEtMS40MnpNOCAxOHYtNy4xN2wxLjUgMS41VjE4SDh6bTQuNzUgMGgtMS41di0zLjkybDEuNSAxLjVWMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vcmRpY1dhbGtpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAyM2gtMS41di05SDE5djl6TTcuNTMgMTRINmwtMiA5aDEuNTNsMi05em01Ljk3LTguNWMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6TTkuOCA4LjkgNyAyM2gyLjFsMS44LTggMi4xIDJ2Nmgydi03LjVsLTIuMS0yIC42LTNDMTQuOCAxMiAxNi44IDEzIDE5IDEzdi0yYy0xLjkgMC0zLjUtMS00LjMtMi40bC0xLTEuNmEyLjE0NSAyLjE0NSAwIDAgMC0yLjY1LS44NEw2IDguM1YxM2gyVjkuNmwxLjgtLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vdGlmaWNhdGlvbkFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDIwaDRjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yem00LTExYzAgMi42MSAxLjY3IDQuODMgNCA1LjY2VjE3aDJ2Mkg0di0yaDJ2LTdjMC0yLjc5IDEuOTEtNS4xNCA0LjUtNS44di0uN2MwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNXYuN2MuNzEuMTggMS4zNi40OSAxLjk1LjlBNS45MDIgNS45MDIgMCAwIDAgMTQgOXptMTAtMWgtM1Y1aC0ydjNoLTN2MmgzdjNoMnYtM2gzVjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vdGlmaWNhdGlvbnNBY3RpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjU4IDQuMDggNi4xNSAyLjY1QzMuNzUgNC40OCAyLjE3IDcuMyAyLjAzIDEwLjVoMmE4LjQ0NSA4LjQ0NSAwIDAgMSAzLjU1LTYuNDJ6bTEyLjM5IDYuNDJoMmMtLjE1LTMuMi0xLjczLTYuMDItNC4xMi03Ljg1bC0xLjQyIDEuNDNhOC40OTUgOC40OTUgMCAwIDEgMy41NCA2LjQyek0xOCAxMWMwLTMuMDctMS42NC01LjY0LTQuNS02LjMyVjRjMC0uODMtLjY3LTEuNS0xLjUtMS41cy0xLjUuNjctMS41IDEuNXYuNjhDNy42MyA1LjM2IDYgNy45MiA2IDExdjVsLTIgMnYxaDE2di0xbC0yLTJ2LTV6bS02IDExYy4xNCAwIC4yNy0uMDEuNC0uMDQuNjUtLjE0IDEuMTgtLjU4IDEuNDQtMS4xOC4xLS4yNC4xNS0uNS4xNS0uNzhoLTRjLjAxIDEuMS45IDIgMi4wMSAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb3RpZmljYXRpb25zTm9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIyYzEuMSAwIDItLjkgMi0yaC00YzAgMS4xLjkgMiAyIDJ6bTYtNnYtNWMwLTMuMDctMS42My01LjY0LTQuNS02LjMyVjRjMC0uODMtLjY3LTEuNS0xLjUtMS41cy0xLjUuNjctMS41IDEuNXYuNjhDNy42NCA1LjM2IDYgNy45MiA2IDExdjVsLTIgMnYxaDE2di0xbC0yLTJ6bS0yIDFIOHYtNmMwLTIuNDggMS41MS00LjUgNC00LjVzNCAyLjAyIDQgNC41djZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vdGlmaWNhdGlvbnNPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOC42OSA3Ljg0IDYuMTQgNS4yNyAzLjQ5IDQgNC43NmwyLjggMi44di4wMWMtLjUyLjk5LS44IDIuMTYtLjggMy40MnY1bC0yIDJ2MWgxMy43M2wyIDJMMjEgMTkuNzJsLTEtMS4wM3pNMTIgMjJjMS4xMSAwIDItLjg5IDItMmgtNGMwIDEuMTEuODkgMiAyIDJ6bTYtNy4zMlYxMWMwLTMuMDgtMS42NC01LjY0LTQuNS02LjMyVjRjMC0uODMtLjY3LTEuNS0xLjUtMS41cy0xLjUuNjctMS41IDEuNXYuNjhjLS4xNS4wMy0uMjkuMDgtLjQyLjEyLS4xLjAzLS4yLjA3LS4zLjExaC0uMDFjLS4wMSAwLS4wMSAwLS4wMi4wMS0uMjMuMDktLjQ2LjItLjY4LjMxIDAgMC0uMDEgMC0uMDEuMDFMMTggMTQuNjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vdGlmaWNhdGlvbnNQYXVzZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyMmMxLjEgMCAyLS45IDItMmgtNGEyIDIgMCAwIDAgMiAyem02LTZ2LTVjMC0zLjA3LTEuNjQtNS42NC00LjUtNi4zMlY0YzAtLjgzLS42Ny0xLjUtMS41LTEuNXMtMS41LjY3LTEuNSAxLjV2LjY4QzcuNjMgNS4zNiA2IDcuOTMgNiAxMXY1bC0yIDJ2MWgxNnYtMWwtMi0yem0tMy41LTYuMi0yLjggMy40aDIuOFYxNWgtNXYtMS44bDIuOC0zLjRIOS41VjhoNXYxLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vdGlmaWNhdGlvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIyYzEuMSAwIDItLjkgMi0yaC00YTIgMiAwIDAgMCAyIDJ6bTYtNnYtNWMwLTMuMDctMS42NC01LjY0LTQuNS02LjMyVjRjMC0uODMtLjY3LTEuNS0xLjUtMS41cy0xLjUuNjctMS41IDEuNXYuNjhDNy42MyA1LjM2IDYgNy45MiA2IDExdjVsLTIgMnYxaDE2di0xbC0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGRvb3JHcmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDIyYzEuNjYgMCAzLTEuMzQgMy0zcy0xLjM0LTMtMy0zYy0xLjMgMC0yLjQuODQtMi44MiAySDkuMTRsMS45OS0zLjA2YTYuMzYgNi4zNiAwIDAgMCAxLjc0IDBsMS4wMiAxLjU3Yy40Mi0uNTMuOTYtLjk1IDEuNi0xLjIxbC0uNi0uOTNBNi45OTIgNi45OTIgMCAwIDAgMTkgOEg1YzAgMi44NCAxLjY5IDUuMjcgNC4xMiA2LjM3bC0zLjk1IDYuMDhhMSAxIDAgMCAwIC4yOSAxLjM4IDEgMSAwIDAgMCAxLjM4LS4yOWwxLTEuNTVoNi4zNEMxNC42IDIxLjE2IDE1LjcgMjIgMTcgMjJ6bTAtNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xek05LjQxIDdoMWMuMTUtMS4xNS4yMy0xLjY0LS44OS0yLjk2LS40Mi0uNS0uNjgtLjc3LS40Ni0yLjA0aC0uOTljLS4yMSAxLjExLjAzIDIuMDUuODkgMi45Ni4yMi4yNC43OS42Ny40NSAyLjA0ek0xMS44OSA3aDFjLjE1LTEuMTUuMjMtMS42NC0uODktMi45Ni0uNDItLjUtLjY4LS43OC0uNDYtMi4wNGgtLjk5Yy0uMjEgMS4xMS4wMyAyLjA1Ljg5IDIuOTYuMjMuMjQuOC42Ny40NSAyLjA0ek0xNC40MSA3aDFjLjE1LTEuMTUuMjMtMS42NC0uODktMi45Ni0uNDItLjUtLjY4LS43Ny0uNDYtMi4wNGgtLjk5Yy0uMjEgMS4xMS4wMyAyLjA1Ljg5IDIuOTYuMjIuMjQuNzkuNjcuNDUgMi4wNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGFnZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDV2Nmg1TDcgN2w0IDFWM0g1Yy0xLjEgMC0yIC45LTIgMnptNSA4SDN2NmMwIDEuMS45IDIgMiAyaDZ2LTVsLTQgMSAxLTR6bTkgNC00LTF2NWg2YzEuMSAwIDItLjkgMi0ydi02aC01bDEgNHptMi0xNGgtNnY1bDQtMS0xIDRoNVY1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQYXJhZ2xpZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE3Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnptLTMuNDguOTRDOC4wNCAxNy41NSA3IDE2Ljc2IDcgMTRINWMwIDIuNy45MyA0LjQxIDIuMyA1LjUuNS40IDEuMS43IDEuNy45VjI0aDZ2LTMuNmMuNi0uMiAxLjItLjUgMS43LS45IDEuMzctMS4wOSAyLjMtMi44IDIuMy01LjVoLTJjMCAyLjc2LTEuMDQgMy41NS0xLjUyIDMuOTRDMTQuNjggMTguNTQgMTQgMTkgMTIgMTlzLTIuNjgtLjQ2LTMuNDgtMS4wNnpNMTIgMEM1LjkyIDAgMSAxLjkgMSA0LjI1djMuNDljMCAuODEuODggMS4yNiAxLjU2LjgzLjE0LS4wOS4yOC0uMTguNDQtLjI2TDUgMTNoMmwxLjUtNi4yOGEyNy44NTIgMjcuODUyIDAgMCAxIDcgMEwxNyAxM2gybDItNC42OWMuMTYuMDkuMy4xNy40NC4yNi42OC40MyAxLjU2LS4wMiAxLjU2LS44M1Y0LjI1QzIzIDEuOSAxOC4wOCAwIDEyIDB6TTUuODggMTEuMjQgNC4zNyA3LjY5Yy43NS0uMjggMS42LS41MiAyLjUzLS43MWwtMS4wMiA0LjI2em0xMi4yNCAwTDE3LjEgNi45OGMuOTMuMTkgMS43OC40MyAyLjUzLjcxbC0xLjUxIDMuNTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBhcnR5TW9kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRoLTMuMTdMMTUgMkg5TDcuMTcgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bS04IDNjMS42MyAwIDMuMDYuNzkgMy45OCAySDEyYy0xLjY2IDAtMyAxLjM0LTMgMyAwIC4zNS4wNy42OS4xOCAxSDcuMUE1LjAwMiA1LjAwMiAwIDAgMSAxMiA3em0wIDEwYy0xLjYzIDAtMy4wNi0uNzktMy45OC0ySDEyYzEuNjYgMCAzLTEuMzQgMy0zIDAtLjM1LS4wNy0uNjktLjE4LTFoMi4wOGE1LjAwMiA1LjAwMiAwIDAgMS00LjkgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVvcGxlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE2LjY3IDEzLjEzQzE4LjA0IDE0LjA2IDE5IDE1LjMyIDE5IDE3djNoNHYtM2MwLTIuMTgtMy41Ny0zLjQ3LTYuMzMtMy44N3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiOFwiLFwiclwiOlwiNFwiLFwiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE1IDEyYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00Yy0uNDcgMC0uOTEuMS0xLjMzLjI0YTUuOTggNS45OCAwIDAgMSAwIDcuNTJjLjQyLjE0Ljg2LjI0IDEuMzMuMjR6TTkgMTNjLTIuNjcgMC04IDEuMzQtOCA0djNoMTZ2LTNjMC0yLjY2LTUuMzMtNC04LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlb3BsZU91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41IDEzYy0xLjIgMC0zLjA3LjM0LTQuNSAxLTEuNDMtLjY3LTMuMy0xLTQuNS0xQzUuMzMgMTMgMSAxNC4wOCAxIDE2LjI1VjE5aDIydi0yLjc1YzAtMi4xNy00LjMzLTMuMjUtNi41LTMuMjV6bS00IDQuNWgtMTB2LTEuMjVjMC0uNTQgMi41Ni0xLjc1IDUtMS43NXM1IDEuMjEgNSAxLjc1djEuMjV6bTkgMEgxNHYtMS4yNWMwLS40Ni0uMi0uODYtLjUyLTEuMjIuODgtLjMgMS45Ni0uNTMgMy4wMi0uNTMgMi40NCAwIDUgMS4yMSA1IDEuNzV2MS4yNXpNNy41IDEyYzEuOTMgMCAzLjUtMS41NyAzLjUtMy41UzkuNDMgNSA3LjUgNSA0IDYuNTcgNCA4LjUgNS41NyAxMiA3LjUgMTJ6bTAtNS41YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnptOSA1LjVjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVTMTguNDMgNSAxNi41IDUgMTMgNi41NyAxMyA4LjVzMS41NyAzLjUgMy41IDMuNXptMC01LjVjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZW9wbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxMWMxLjY2IDAgMi45OS0xLjM0IDIuOTktM1MxNy42NiA1IDE2IDVjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDN6bS04IDBjMS42NiAwIDIuOTktMS4zNCAyLjk5LTNTOS42NiA1IDggNUM2LjM0IDUgNSA2LjM0IDUgOHMxLjM0IDMgMyAzem0wIDJjLTIuMzMgMC03IDEuMTctNyAzLjVWMTloMTR2LTIuNWMwLTIuMzMtNC42Ny0zLjUtNy0zLjV6bTggMGMtLjI5IDAtLjYyLjAyLS45Ny4wNSAxLjE2Ljg0IDEuOTcgMS45NyAxLjk3IDMuNDVWMTloNnYtMi41YzAtMi4zMy00LjY3LTMuNS03LTMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVyc29uMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjM5IDE0LjU2QzE2LjcxIDEzLjcgMTQuNTMgMTMgMTIgMTNzLTQuNzEuNy02LjM5IDEuNTZBMi45NyAyLjk3IDAgMCAwIDQgMTcuMjJWMjBoMTZ2LTIuNzhjMC0xLjEyLS42MS0yLjE1LTEuNjEtMi42NnpNOS43OCAxMmg0LjQ0YzEuMjEgMCAyLjE0LTEuMDYgMS45OC0yLjI2bC0uMzItMi40NUMxNS41NyA1LjM5IDEzLjkyIDQgMTIgNFM4LjQzIDUuMzkgOC4xMiA3LjI5TDcuOCA5Ljc0Yy0uMTYgMS4yLjc3IDIuMjYgMS45OCAyLjI2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZXJzb24zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguMzkgMTQuNTZDMTYuNzEgMTMuNyAxNC41MyAxMyAxMiAxM3MtNC43MS43LTYuMzkgMS41NkEyLjk3IDIuOTcgMCAwIDAgNCAxNy4yMlYyMGgxNnYtMi43OGMwLTEuMTItLjYxLTIuMTUtMS42MS0yLjY2ek0xMCAxMmg0YzEuNjYgMCAzLTEuMzQgMy0zIDAtLjczLS4yNy0xLjQtLjcxLTEuOTIuMTMtLjMzLjIxLS43LjIxLTEuMDhhMyAzIDAgMCAwLTEuODYtMi43N0MxNCAyLjQ4IDEzLjA2IDIgMTIgMnMtMiAuNDgtMi42NCAxLjIzQTMgMyAwIDAgMCA3LjUgNmMwIC4zOC4wOC43NS4yMSAxLjA4QzcuMjcgNy42IDcgOC4yNyA3IDljMCAxLjY2IDEuMzQgMyAzIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlcnNvbjQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC4zOSAxNC41NkMxNi43MSAxMy43IDE0LjUzIDEzIDEyIDEzcy00LjcxLjctNi4zOSAxLjU2QTIuOTcgMi45NyAwIDAgMCA0IDE3LjIyVjIwaDE2di0yLjc4YzAtMS4xMi0uNjEtMi4xNS0xLjYxLTIuNjZ6TTEyIDEyYzIuMjEgMCA0LTEuNzkgNC00VjQuNWMwLS44My0uNjctMS41LTEuNS0xLjUtLjUyIDAtLjk4LjI3LTEuMjUuNjctLjI3LS40LS43My0uNjctMS4yNS0uNjdzLS45OC4yNy0xLjI1LjY3Yy0uMjctLjQtLjczLS42Ny0xLjI1LS42N0M4LjY3IDMgOCAzLjY3IDggNC41VjhjMCAyLjIxIDEuNzkgNCA0IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlcnNvbkFkZEFsdDEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA4YzAtMi4yMS0xLjc5LTQtNC00UzUgNS43OSA1IDhzMS43OSA0IDQgNCA0LTEuNzkgNC00em0yIDJ2MmgzdjNoMnYtM2gzdi0yaC0zVjdoLTJ2M2gtM3pNMSAxOHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00cy04IDEuMzQtOCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZXJzb25BZGRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA4YzAtMi4yMS0xLjc5LTQtNC00UzUgNS43OSA1IDhzMS43OSA0IDQgNCA0LTEuNzkgNC00em0tMiAwYzAgMS4xLS45IDItMiAycy0yLS45LTItMiAuOS0yIDItMiAyIC45IDIgMnpNMSAxOHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00cy04IDEuMzQtOCA0em0yIDBjLjItLjcxIDMuMy0yIDYtMiAyLjY5IDAgNS43OCAxLjI4IDYgMkgzem0xNy0zdi0zaDN2LTJoLTNWN2gtMnYzaC0zdjJoM3YzaDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlcnNvbkFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDEyYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptLTktMlY3SDR2M0gxdjJoM3YzaDJ2LTNoM3YtMkg2em05IDRjLTIuNjcgMC04IDEuMzQtOCA0djJoMTZ2LTJjMC0yLjY2LTUuMzMtNC04LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlcnNvbk9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNjUgNS44MmEzLjk5OSAzLjk5OSAwIDEgMSA1LjUzIDUuNTNMOC42NSA1Ljgyek0yMCAxNy4xN2MtLjAyLTEuMS0uNjMtMi4xMS0xLjYxLTIuNjItLjU0LS4yOC0xLjEzLS41NC0xLjc3LS43NkwyMCAxNy4xN3ptMS4xOSA0LjAyTDIuODEgMi44MSAxLjM5IDQuMjJsOC44OSA4Ljg5Yy0xLjgxLjIzLTMuMzkuNzktNC42NyAxLjQ1QTIuOTcgMi45NyAwIDAgMCA0IDE3LjIyVjIwaDEzLjE3bDIuNjEgMi42MSAxLjQxLTEuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlcnNvbk91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA1LjlhMi4xIDIuMSAwIDEgMSAwIDQuMiAyLjEgMi4xIDAgMCAxIDAtNC4ybTAgOWMyLjk3IDAgNi4xIDEuNDYgNi4xIDIuMXYxLjFINS45VjE3YzAtLjY0IDMuMTMtMi4xIDYuMS0yLjFNMTIgNEM5Ljc5IDQgOCA1Ljc5IDggOHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMCA5Yy0yLjY3IDAtOCAxLjM0LTggNHYzaDE2di0zYzAtMi42Ni01LjMzLTQtOC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZXJzb25SZW1vdmVBbHQxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgOGMwLTIuMjEtMS43OS00LTQtNFM2IDUuNzkgNiA4czEuNzkgNCA0IDQgNC0xLjc5IDQtNHptMyAydjJoNnYtMmgtNnpNMiAxOHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00cy04IDEuMzQtOCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZXJzb25SZW1vdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA4YzAtMi4yMS0xLjc5LTQtNC00UzYgNS43OSA2IDhzMS43OSA0IDQgNCA0LTEuNzkgNC00em0zIDJ2Mmg2di0yaC02ek0yIDE4djJoMTZ2LTJjMC0yLjY2LTUuMzMtNC04LTRzLTggMS4zNC04IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlcnNvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEyYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptMCAyYy0yLjY3IDAtOCAxLjM0LTggNHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZXJzb25hbEluanVyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggNmMwLTIuMjEgMS43OS00IDQtNHM0IDEuNzkgNCA0LTEuNzkgNC00IDQtNC0xLjc5LTQtNHptOSAxNmgxYzEuMSAwIDItLjkgMi0ydi00Ljc4YzAtMS4xMi0uNjEtMi4xNS0xLjYxLTIuNjYtLjQzLS4yMi0uOS0uNDMtMS4zOS0uNjJWMjJ6bS00LjY2LTVMMTUgMTEuMzNjLS45My0uMjEtMS45My0uMzMtMy0uMzMtMi41MyAwLTQuNzEuNy02LjM5IDEuNTZBMi45NyAyLjk3IDAgMCAwIDQgMTUuMjJWMjJoMi4zNGMtLjIyLS40NS0uMzQtLjk2LS4zNC0xLjVDNiAxOC41NyA3LjU3IDE3IDkuNSAxN2gyLjg0ek0xMCAyMmwxLjQxLTNIOS41Yy0uODMgMC0xLjUuNjctMS41IDEuNVM4LjY3IDIyIDkuNSAyMmguNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGlhbm9PZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS4xOSAyMS4xOSAyLjgxIDIuODEgMS4zOSA0LjIyIDMgNS44M1YxOWMwIDEuMS45IDIgMiAyaDEzLjE3bDEuNjEgMS42MSAxLjQxLTEuNDJ6TTguMjUgMTlINVY3LjgzbDIgMnYzLjY3YzAgLjU1LjQ1IDEgMSAxaC4yNVYxOXptMS41IDB2LTQuNUgxMGMuNDYgMCAuODItLjMxLjk0LS43M2wzLjMxIDMuMzFWMTloLTQuNXpNMTEgOC4xNyA1LjgzIDNIMTljMS4xIDAgMiAuOSAyIDJ2MTMuMTdsLTItMlY1aC0ydjguNWMwIC4xOS0uMDcuMzYtLjE2LjUxTDEzIDEwLjE3VjVoLTJ2My4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGlhbm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTUgMTEuNWguMjVWMTloLTQuNXYtNC41SDEwYy41NSAwIDEtLjQ1IDEtMVY1aDJ2OC41YzAgLjU1LjQ1IDEgMSAxek01IDVoMnY4LjVjMCAuNTUuNDUgMSAxIDFoLjI1VjE5SDVWNXptMTQgMTRoLTMuMjV2LTQuNUgxNmMuNTUgMCAxLS40NSAxLTFWNWgydjE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNS40NSAxNi41Mi0zLjAxLTMuMDFjLS4xMS0uMTEtLjI0LS4xMy0uMzEtLjEzcy0uMi4wMi0uMzEuMTNMOC44IDE2LjUzYy0uMzQuMzQtLjg3Ljg5LTIuNjQuODlsMy43MSAzLjdhMyAzIDAgMCAwIDQuMjQgMGwzLjcyLTMuNzFjLS45MSAwLTEuNjctLjE4LTIuMzgtLjg5ek04LjggNy40N2wzLjAyIDMuMDJjLjA4LjA4LjIuMTMuMzEuMTNzLjIzLS4wNS4zMS0uMTNsMi45OS0yLjk5Yy43MS0uNzQgMS41Mi0uOTEgMi40My0uOTFsLTMuNzItMy43MWEzIDMgMCAwIDAtNC4yNCAwbC0zLjcxIDMuN2MxLjc2IDAgMi4zLjU4IDIuNjEuODl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjExIDkuODUtMi4yNS0yLjI2SDE3LjZjLS41NCAwLTEuMDguMjItMS40NS42MWwtMyAzYy0uMjguMjgtLjY1LjQyLTEuMDIuNDJhMS41IDEuNSAwIDAgMS0xLjAyLS40Mkw4LjA5IDguMTdjLS4zOC0uMzgtLjktLjYtMS40NS0uNkg1LjE3bC0yLjI5IDIuM2EzIDMgMCAwIDAgMCA0LjI0bDIuMjkgMi4zaDEuNDhjLjU0IDAgMS4wNi0uMjIgMS40NS0uNmwzLjAyLTMuMDJjLjI4LS4yOC42NS0uNDIgMS4wMi0uNDJzLjc0LjE0IDEuMDIuNDJsMy4wMSAzLjAxYy4zOC4zOC45LjYgMS40NS42aDEuMjZsMi4yNS0yLjI2YTMuMDQyIDMuMDQyIDAgMCAwLS4wMi00LjI5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQbHVzT25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgOEg4djRINHYyaDR2NGgydi00aDR2LTJoLTR6bTQuNS0xLjkyVjcuOWwyLjUtLjVWMThoMlY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQb2xsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTkgMTdIN3YtN2gydjd6bTQgMGgtMlY3aDJ2MTB6bTQgMGgtMnYtNGgydjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFByZWNpc2lvbk1hbnVmYWN0dXJpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOS45MyA4LjIxLTMuNiAxLjY4TDE0IDcuN1Y2LjNsMi4zMy0yLjE5IDMuNiAxLjY4Yy4zOC4xOC44Mi4wMSAxLS4zNi4xOC0uMzguMDEtLjgyLS4zNi0xTDE2LjY1IDIuNmEuOTkzLjk5MyAwIDAgMC0xLjEzLjJsLTEuNzQgMS42QS45NzUuOTc1IDAgMCAwIDEzIDRjLS41NSAwLTEgLjQ1LTEgMXYxSDguODJDOC4zNCA0LjY1IDYuOTggMy43MyA1LjQgNC4wN2MtMS4xNi4yNS0yLjE1IDEuMjUtMi4zNiAyLjQzLS4yMiAxLjMyLjQ2IDIuNDcgMS40OCAzLjA4TDcuMDggMThINHYzaDEzdi0zaC0zLjYyTDguNDEgOC43N2MuMTctLjI0LjMxLS40OS40MS0uNzdIMTJ2MWMwIC41NS40NSAxIDEgMSAuMzIgMCAuNi0uMTYuNzgtLjRsMS43NCAxLjZjLjMuMy43NS4zOCAxLjEzLjJsMy45Mi0xLjgzYy4zOC0uMTguNTQtLjYyLjM2LTFhLjc1My43NTMgMCAwIDAtMS0uMzZ6TTYgOGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQc3ljaG9sb2d5QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuOTQgOS4wNkMxOS41IDUuNzMgMTYuNTcgMyAxMyAzIDkuNDcgMyA2LjU3IDUuNjEgNi4wOCA5bC0xLjkzIDMuNDhjLS40MS42Ni4wNyAxLjUyLjg1IDEuNTJoMXYyYzAgMS4xLjkgMiAyIDJoMXYzaDd2LTQuNjhhNy4wMTYgNy4wMTYgMCAwIDAgMy45NC03LjI2ek0xMi41IDE0Yy0uNDEgMC0uNzQtLjMzLS43NC0uNzRzLjMzLS43My43NC0uNzMuNzMuMzIuNzMuNzMtLjMxLjc0LS43My43NHptMS43Ni00LjMyYy0uNDQuNjUtLjg2Ljg1LTEuMDkgMS4yNy0uMDkuMTctLjEzLjI4LS4xMy44MmgtMS4wNmMwLS4yOS0uMDQtLjc1LjE4LTEuMTYuMjgtLjUxLjgzLS44MSAxLjE0LTEuMjYuMzMtLjQ3LjE1LTEuMzYtLjgtMS4zNi0uNjIgMC0uOTIuNDctMS4wNS44NmwtLjk2LS40Yy4yNy0uNzguOTctMS40NSAyLjAxLTEuNDUuODYgMCAxLjQ1LjM5IDEuNzUuODguMjYuNDMuNDEgMS4yMi4wMSAxLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBzeWNob2xvZ3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA4LjU3YTEuNDMgMS40MyAwIDEgMCAwIDIuODYgMS40MyAxLjQzIDAgMCAwIDAtMi44NnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgM0M5LjI1IDMgNi4yIDUuOTQgNi4wMiA5LjY0TDQuMSAxMi4yYS41LjUgMCAwIDAgLjQuOEg2djNjMCAxLjEuOSAyIDIgMmgxdjNoN3YtNC42OEE2Ljk5OSA2Ljk5OSAwIDAgMCAxMyAzem0zIDdjMCAuMTMtLjAxLjI2LS4wMi4zOWwuODMuNjZjLjA4LjA2LjEuMTYuMDUuMjVsLS44IDEuMzljLS4wNS4wOS0uMTYuMTItLjI0LjA5bC0uOTktLjRjLS4yMS4xNi0uNDMuMjktLjY3LjM5TDE0IDEzLjgzYy0uMDEuMS0uMS4xNy0uMi4xN2gtMS42Yy0uMSAwLS4xOC0uMDctLjItLjE3bC0uMTUtMS4wNmMtLjI1LS4xLS40Ny0uMjMtLjY4LS4zOWwtLjk5LjRjLS4wOS4wMy0uMiAwLS4yNS0uMDlsLS44LTEuMzlhLjE5LjE5IDAgMCAxIC4wNS0uMjVsLjg0LS42NmMtLjAxLS4xMy0uMDItLjI2LS4wMi0uMzlzLjAyLS4yNy4wNC0uMzlsLS44NS0uNjZjLS4wOC0uMDYtLjEtLjE2LS4wNS0uMjZsLjgtMS4zOGMuMDUtLjA5LjE1LS4xMi4yNC0uMDlsMSAuNGMuMi0uMTUuNDMtLjI5LjY3LS4zOUwxMiA2LjE3Yy4wMi0uMS4xLS4xNy4yLS4xN2gxLjZjLjEgMCAuMTguMDcuMi4xN2wuMTUgMS4wNmMuMjQuMS40Ni4yMy42Ny4zOWwxLS40Yy4wOS0uMDMuMiAwIC4yNC4wOWwuOCAxLjM4YS4yLjIgMCAwIDEtLjA1LjI2bC0uODUuNjZjLjAzLjEyLjA0LjI1LjA0LjM5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQdWJsaWNPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA4LjE3IDYuNDkgMy42NkE5LjkxIDkuOTEgMCAwIDEgMTIgMmM1LjUyIDAgMTAgNC40OCAxMCAxMCAwIDIuMDQtLjYxIDMuOTMtMS42NiA1LjUxbC0xLjQ2LTEuNDZBNy44NDIgNy44NDIgMCAwIDAgMjAgMTJjMC0zLjM1LTIuMDctNi4yMi01LTcuNDFWNWMwIDEuMS0uOSAyLTIgMmgtMnYxLjE3em0xMC4xOSAxMy4wMi0xLjQxIDEuNDEtMi4yNy0yLjI3QTkuODM5IDkuODM5IDAgMCAxIDEyIDIyQzYuNDggMjIgMiAxNy41MiAyIDEyYzAtMi4wNC42MS0zLjkzIDEuNjYtNS41MUwxLjM5IDQuMjIgMi44IDIuODFsMTguMzkgMTguMzh6TTExIDE4Yy0xLjEgMC0yLS45LTItMnYtMWwtNC43OS00Ljc5QzQuMDggMTAuNzkgNCAxMS4zOCA0IDEyYzAgNC4wOCAzLjA1IDcuNDQgNyA3LjkzVjE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQdWJsaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMSAxNy45M2MtMy45NS0uNDktNy0zLjg1LTctNy45MyAwLS42Mi4wOC0xLjIxLjIxLTEuNzlMOSAxNXYxYzAgMS4xLjkgMiAyIDJ2MS45M3ptNi45LTIuNTRjLS4yNi0uODEtMS0xLjM5LTEuOS0xLjM5aC0xdi0zYzAtLjU1LS40NS0xLTEtMUg4di0yaDJjLjU1IDAgMS0uNDUgMS0xVjdoMmMxLjEgMCAyLS45IDItMnYtLjQxYzIuOTMgMS4xOSA1IDQuMDYgNSA3LjQxIDAgMi4wOC0uOCAzLjk3LTIuMSA1LjM5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZWFsRXN0YXRlQWdlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDIyaDRWMTFIMXYxMXptMTktNWgtN2wtMi4wOS0uNzMuMzMtLjk0TDEzIDE2aDIuODJjLjY1IDAgMS4xOC0uNTMgMS4xOC0xLjE4IDAtLjQ5LS4zMS0uOTMtLjc3LTEuMTFMOC45NyAxMUg3djkuMDJMMTQgMjJsOC0zYy0uMDEtMS4xLS44OS0yLTItMnpNMTQgMS41bC03IDVWOWgybDguMTQgMy4yNkMxOC4yNiAxMi43MSAxOSAxMy43OSAxOSAxNWgyVjYuNWwtNy01em0tLjUgOC41aC0xVjloMXYxem0wLTJoLTFWN2gxdjF6bTIgMmgtMVY5aDF2MXptMC0yaC0xVjdoMXYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZWNvbW1lbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYTEwIDEwIDAgMSAwIDEwIDEwQTEwIDEwIDAgMCAwIDEyIDJ6bTYgOS44YS45LjkgMCAwIDEtLjEuNWwtMi4xIDQuOWExLjM0IDEuMzQgMCAwIDEtMS4zLjhIOWEyIDIgMCAwIDEtMi0ydi01YTEuMjggMS4yOCAwIDAgMSAuNC0xTDEyIDVsLjY5LjY5YTEuMDggMS4wOCAwIDAgMSAuMy43di4yTDEyLjQxIDEwSDE3YTEgMSAwIDAgMSAxIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlY3ljbGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNzcgNy4xNSA3LjIgNC43OGwxLjAzLTEuNzFjLjM5LS42NSAxLjMzLS42NSAxLjcyIDBsMS40OCAyLjQ2LTEuMjMgMi4wNi0xIDEuNjItMy40My0yLjA2em0xNS45NSA1LjgyLTEuNi0yLjY2LTMuNDYgMkwxOC44NyAxNkgyMGEyIDIgMCAwIDAgMi0yYzAtLjM2LS4xLS43MS0uMjgtMS4wM3pNMTYgMjFoMS41YTIgMiAwIDAgMCAxLjc5LTEuMTFMMjAuNzQgMTdIMTZ2LTJsLTQgNCA0IDR2LTJ6bS02LTRINS43bC0uODQgMS40MWMtLjMuNS0uMzIgMS4xMi0uMDYgMS42NS4yOC41Ny44Ny45NCAxLjUyLjk0SDEwdi00em0tMy44OC0yLjY1IDEuNzMgMS4wNEw2LjQ4IDkuOSAxIDExLjI3bDEuNyAxLjAyLS40MS42OWMtLjM1LjU5LS4zOCAxLjMxLS4wNyAxLjkybDEuNjMgMy4yNiAyLjI3LTMuODF6bTEwLjktOS4yMS0xLjMtMi4xN0MxNS4zNSAyLjM3IDE0LjcgMiAxNCAyaC0zLjUzbDMuMTIgNS4yLTEuNzIgMS4wMyA1LjQ5IDEuMzcgMS4zNy01LjQ5LTEuNzEgMS4wM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVkdWNlQ2FwYWNpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA0YzAtMS4xLjktMiAyLTJzMiAuOSAyIDItLjkgMi0yIDItMi0uOS0yLTJ6bTQuNzggMy41OEE2Ljk1IDYuOTUgMCAwIDAgMTggN2MtLjY3IDAtMS4zMS4xLTEuOTIuMjguNTguNTUuOTIgMS4zMi45MiAyLjE1VjEwaDV2LS41N2MwLS44MS0uNDgtMS41My0xLjIyLTEuODV6TTYgNmMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTEuOTIgMS4yOEM3LjMxIDcuMSA2LjY3IDcgNiA3Yy0uOTkgMC0xLjkzLjIxLTIuNzguNThBMi4wMSAyLjAxIDAgMCAwIDIgOS40M1YxMGg1di0uNTdjMC0uODMuMzQtMS42LjkyLTIuMTV6TTEwIDRjMC0xLjEuOS0yIDItMnMyIC45IDIgMi0uOSAyLTIgMi0yLS45LTItMnptNiA2SDh2LS41N2MwLS44MS40OC0xLjUzIDEuMjItMS44NWE2Ljk1IDYuOTUgMCAwIDEgNS41NiAwQTIuMDEgMi4wMSAwIDAgMSAxNiA5LjQzVjEwem0tMSA2YzAtMS4xLjktMiAyLTJzMiAuOSAyIDItLjkgMi0yIDItMi0uOS0yLTJ6bTYgNmgtOHYtLjU3YzAtLjgxLjQ4LTEuNTMgMS4yMi0xLjg1YTYuOTUgNi45NSAwIDAgMSA1LjU2IDBBMi4wMSAyLjAxIDAgMCAxIDIxIDIxLjQzVjIyek01IDE2YzAtMS4xLjktMiAyLTJzMiAuOSAyIDItLjkgMi0yIDItMi0uOS0yLTJ6bTYgNkgzdi0uNTdjMC0uODEuNDgtMS41MyAxLjIyLTEuODVhNi45NSA2Ljk1IDAgMCAxIDUuNTYgMEEyLjAxIDIuMDEgMCAwIDEgMTEgMjEuNDNWMjJ6bTEuNzUtOXYtMmgtMS41djJIOWwzIDMgMy0zaC0yLjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZW1vdmVNb2RlcmF0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMi4yNyAyMS43My0zLjU0LTMuNTVMNS43OCA1LjIzIDIuMjcgMS43MiAxIDIuOTkgMy4wMSA1SDN2NmMwIDUuNTUgMy44NCAxMC43NCA5IDEyIDIuMTYtLjUzIDQuMDgtMS43NiA1LjYtMy40MUwyMSAyM2wxLjI3LTEuMjd6TTEzIDkuOTJsNi42NyA2LjY3QzIwLjUxIDE0Ljg3IDIxIDEyLjk2IDIxIDExVjVsLTktNC01LjQ4IDIuNDRMMTEgNy45MmwyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJvbGxlclNrYXRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDYuNWMwLS4yOC4yMi0uNS41LS41aDIuNTJMMTIgNUg5LjVjLS4yOCAwLS41LS4yMi0uNS0uNXMuMjItLjUuNS0uNUgxMlYxSDR2MTVoMTZ2LTIuODhjMC0yLjEtMS41NS0zLjUzLTMuMDMtMy44OGwtMi43LS42N2MtLjg3LS4yMi0xLjU3LS44MS0xLjk1LTEuNTdIOS41Yy0uMjggMC0uNS0uMjItLjUtLjV6TTUgMjNjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzem0xNCAwYy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zIDMgMS4zNCAzIDMtMS4zNCAzLTMgM3ptLTcgMGMtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtMyAzIDEuMzQgMyAzLTEuMzQgMy0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNhZmV0eURpdmlkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA1aDJ2MTRoLTJWNXptLTYgN2MxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTIuNzggMS41OGE2Ljk1IDYuOTUgMCAwIDAtNS41NiAwQTIuMDEgMi4wMSAwIDAgMCAxIDE1LjQzVjE2aDh2LS41N2MwLS44MS0uNDgtMS41My0xLjIyLTEuODV6TTE5IDEyYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptMi43OCAxLjU4YTYuOTUgNi45NSAwIDAgMC01LjU2IDBBMi4wMSAyLjAxIDAgMCAwIDE1IDE1LjQzVjE2aDh2LS41N2MwLS44MS0uNDgtMS41My0xLjIyLTEuODV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNhbml0aXplciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgNi41QzE1LjUgNS42NiAxNyA0IDE3IDRzMS41IDEuNjYgMS41IDIuNWMwIC44My0uNjcgMS41LTEuNSAxLjVzLTEuNS0uNjctMS41LTEuNXptNCA4LjVhMi41IDIuNSAwIDAgMCAyLjUtMi41YzAtMS42Ny0yLjUtNC41LTIuNS00LjVTMTcgMTAuODMgMTcgMTIuNWEyLjUgMi41IDAgMCAwIDIuNSAyLjV6TTEzIDE0aC0ydi0ySDl2Mkg3djJoMnYyaDJ2LTJoMnYtMnptMy0ydjEwSDRWMTJjMC0yLjk3IDIuMTYtNS40MyA1LTUuOTFWNEg3VjJoNmMxLjEzIDAgMi4xNS4zOSAyLjk5IDEuMDFsLTEuNDMgMS40M0MxNC4xIDQuMTcgMTMuNTcgNCAxMyA0aC0ydjIuMDljMi44NC40OCA1IDIuOTQgNSA1LjkxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTY2FsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDExVjhjNC41Ni0uNTggOC0zLjEgOC02SDJjMCAyLjkgMy40NCA1LjQyIDggNnYzYy0zLjY4LjczLTggMy42MS04IDExaDZ2LTJINC4xM2MuOTMtNi44MyA2LjY1LTcuMiA3Ljg3LTcuMnM2Ljk0LjM3IDcuODcgNy4ySDE2djJoNmMwLTcuMzktNC4zMi0xMC4yNy04LTExem0tMiAxMWMtMS4xIDAtMi0uOS0yLTIgMC0uNTUuMjItMS4wNS41OS0xLjQxQzExLjM5IDE3Ljc5IDE2IDE2IDE2IDE2cy0xLjc5IDQuNjEtMi41OSA1LjQxYy0uMzYuMzctLjg2LjU5LTEuNDEuNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNjaG9vbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTMuMTh2NEwxMiAyMWw3LTMuODJ2LTRMMTIgMTdsLTctMy44MnpNMTIgMyAxIDlsMTEgNiA5LTQuOTFWMTdoMlY5TDEyIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNjaWVuY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS44IDE4LjQgMTQgMTAuNjdWNi41bDEuMzUtMS42OWMuMjYtLjMzLjAzLS44MS0uMzktLjgxSDkuMDRjLS40MiAwLS42NS40OC0uMzkuODFMMTAgNi41djQuMTdMNC4yIDE4LjRjLS40OS42Ni0uMDIgMS42LjggMS42aDE0Yy44MiAwIDEuMjktLjk0LjgtMS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTY29yZWJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNSAxMy41SDE2di0zaDEuNXYzek0yMCA0aC0zVjJoLTJ2Mkg5VjJIN3YySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNOS41IDExLjVjMCAuNTUtLjQ1IDEtMSAxaC0ydjFoM1YxNUg1di0yLjVjMC0uNTUuNDUtMSAxLTFoMnYtMUg1VjloMy41Yy41NSAwIDEgLjQ1IDEgMXYxLjV6bTMuMjUgNi41aC0xLjV2LTEuNWgxLjVWMTh6bTAtMy41aC0xLjVWMTNoMS41djEuNXptMC0zLjVoLTEuNVY5LjVoMS41VjExem0wLTMuNWgtMS41VjZoMS41djEuNXpNMTkgMTRjMCAuNTUtLjQ1IDEtMSAxaC0yLjVjLS41NSAwLTEtLjQ1LTEtMXYtNGMwLS41NS40NS0xIDEtMUgxOGMuNTUgMCAxIC40NSAxIDF2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2N1YmFEaXZpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDEzYzAtMS4xLjktMiAyLTJzMiAuOSAyIDItLjkgMi0yIDItMi0uOS0yLTJ6bTcuODktMi44OSA0LjUzLTEuMjEtLjc4LTIuOS00LjUzIDEuMjFjLS44LjIxLTEuMjggMS4wNC0xLjA2IDEuODQuMjIuOCAxLjA0IDEuMjggMS44NCAxLjA2ek0yMC41IDUuOSAyMyAzbC0xLTEtMyAzLTIgNC05LjQ4IDIuODdjLS44Mi4yLTEuMzkuODktMS41IDEuNjhMNS4yNCAxOCAyLjQgMjEuOCA0IDIzbDMtNCAxLjE0LTMuMTRMMTQgMTRsNS0zLjUgMS41LTQuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2VsZkltcHJvdmVtZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjZcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTZ2LTJjLTIuMjQgMC00LjE2LS45Ni01LjYtMi42OGwtMS4zNC0xLjZBMS45OCAxLjk4IDAgMCAwIDEyLjUzIDloLTEuMDVjLS41OSAwLTEuMTUuMjYtMS41My43MmwtMS4zNCAxLjZDNy4xNiAxMy4wNCA1LjI0IDE0IDMgMTR2MmMyLjc3IDAgNS4xOS0xLjE3IDctMy4yNVYxNWwtMy44OCAxLjU1Yy0uNjcuMjctMS4xMi45My0xLjEyIDEuNjZDNSAxOS4yIDUuOCAyMCA2Ljc5IDIwSDl2LS41YTIuNSAyLjUgMCAwIDEgMi41LTIuNWgzYy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNWgtM2MtLjgzIDAtMS41LjY3LTEuNSAxLjV2LjVoNy4yMWMuOTkgMCAxLjc5LS44IDEuNzktMS43OSAwLS43My0uNDUtMS4zOS0xLjEyLTEuNjZMMTQgMTV2LTIuMjVjMS44MSAyLjA4IDQuMjMgMy4yNSA3IDMuMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNlbnRpbWVudERpc3NhdGlzZmllZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNS41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4LjVcIixcImN5XCI6XCI5LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bTAtMy41Yy43MyAwIDEuMzkuMTkgMS45Ny41My4xMi0uMTQuODYtLjk4IDEuMDEtMS4xNEE1LjM5IDUuMzkgMCAwIDAgMTIgMTVjLTEuMTEgMC0yLjEzLjMzLTIuOTkuODguOTcgMS4wOS4wMS4wMiAxLjAxIDEuMTQuNTktLjMzIDEuMjUtLjUyIDEuOTgtLjUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZW50aW1lbnROZXV0cmFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDE1LjVoNnYxSDl2LTF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZW50aW1lbnRTYXRpc2ZpZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4em0wLTRjLS43MyAwLTEuMzgtLjE4LTEuOTYtLjUyLS4xMi4xNC0uODYuOTgtMS4wMSAxLjE1YTUuNDkgNS40OSAwIDAgMCA1Ljk1LS4wMWMtLjk3LTEuMDktLjAxLS4wMi0xLjAxLTEuMTUtLjU5LjM1LTEuMjQuNTMtMS45Ny41M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2VudGltZW50VmVyeURpc3NhdGlzZmllZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNS41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4LjVcIixcImN5XCI6XCI5LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bTAtNmMtMi4zMyAwLTQuMzIgMS40NS01LjEyIDMuNWgxLjY3Yy42OS0xLjE5IDEuOTctMiAzLjQ1LTJzMi43NS44MSAzLjQ1IDJoMS42N2MtLjgtMi4wNS0yLjc5LTMuNS01LjEyLTMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2VudGltZW50VmVyeVNhdGlzZmllZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNS41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4LjVcIixcImN5XCI6XCI5LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bS01LTZjLjc4IDIuMzQgMi43MiA0IDUgNHM0LjIyLTEuNjYgNS00SDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNldmVyZUNvbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiAxMC40MSA0LTRMMTQuNTkgNSAxMiA3LjU5VjRoLTJ2My41OUw3LjQxIDUgNiA2LjQxbDQgNFYxMkg4LjQxbC00LTRMMyA5LjQxIDUuNTkgMTJIMnYyaDMuNTlMMyAxNi41OSA0LjQxIDE4bDQtNEgxMHYxLjU5bC00IDRMNy40MSAyMSAxMCAxOC40MVYyMmgydi0zLjU5TDE0LjU5IDIxIDE2IDE5LjU5bC00LTRWMTRoMS41OWw0IDRMMTkgMTYuNTkgMTYuNDEgMTRIMjB2LTJoLTh6TTE5IDJoMnY1aC0yek0xOSA4aDJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxNi4wOGMtLjc2IDAtMS40NC4zLTEuOTYuNzdMOC45MSAxMi43Yy4wNS0uMjMuMDktLjQ2LjA5LS43cy0uMDQtLjQ3LS4wOS0uN2w3LjA1LTQuMTFjLjU0LjUgMS4yNS44MSAyLjA0LjgxIDEuNjYgMCAzLTEuMzQgMy0zcy0xLjM0LTMtMy0zLTMgMS4zNC0zIDNjMCAuMjQuMDQuNDcuMDkuN0w4LjA0IDkuODFDNy41IDkuMzEgNi43OSA5IDYgOWMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgM2MuNzkgMCAxLjUtLjMxIDIuMDQtLjgxbDcuMTIgNC4xNmMtLjA1LjIxLS4wOC40My0uMDguNjUgMCAxLjYxIDEuMzEgMi45MiAyLjkyIDIuOTIgMS42MSAwIDIuOTItMS4zMSAyLjkyLTIuOTJzLTEuMzEtMi45Mi0yLjkyLTIuOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA5Yy0xLjEgMC0yLS45LTItMnMyLTQgMi00IDIgMi45IDIgNC0uOSAyLTIgMnptLTMuNS0yYzAtLjczLjQxLTEuNzEuOTItMi42NkE5Ljk2NSA5Ljk2NSAwIDAgMCAxMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJjMC0uNTUtLjA2LTEuMDktLjE0LTEuNjJhMy41IDMuNSAwIDAgMS0uODYuMTJjLTEuOTMgMC0zLjUtMS41Ny0zLjUtMy41em0tMS44OC4zOCAxLjA2IDEuMDYtMS4wNiAxLjA2IDEuMDYgMS4wNi0xLjA2IDEuMDZMMTMuNSA5LjVsMi4xMi0yLjEyem0tOC4zIDEuMDYgMS4wNi0xLjA2TDEwLjUgOS41bC0yLjEyIDIuMTItMS4wNi0xLjA2TDguMzggOS41IDcuMzIgOC40NHpNMTUuNDQgMTdjLS42OS0xLjE5LTEuOTctMi0zLjQ0LTJzLTIuNzUuODEtMy40NCAySDYuODhjLjMtLjc2Ljc2LTEuNDMgMS4zNC0xLjk5TDUuMjQgMTMuM2MtLjQ1LjI2LTEuMDEuMjgtMS40OSAwYTEuNTAxIDEuNTAxIDAgMCAxIDEuNS0yLjZjLjQ4LjI4Ljc0Ljc4Ljc0IDEuMjlsMy41OCAyLjA3Yy43My0uMzYgMS41NS0uNTYgMi40My0uNTYgMi4zMyAwIDQuMzIgMS40NSA1LjEyIDMuNWgtMS42OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbkxhbmd1YWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIuNDkgMTMtLjkzLTEuODZjLS4zNy0uNzQtLjA3LTEuNjQuNjctMi4wMWwuMjYtLjEzIDUuNzMgNS40NmMuNS40Ny43OCAxLjEzLjc4IDEuODF2NS4yM2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xSDEwdi0xSDRjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTFoNnYtMUgzYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xaDd2LTFINC41Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xaDcuOTl6bS0uNzEtNS44OGMtLjg0LjQtMS4xNy42Mi0xLjYzIDEuMTlsLTIuNy0yLjg1QS45OTYuOTk2IDAgMSAxIDguOSA0LjA5bDIuODggMy4wM3pNOS42NCA5LjIxYTMuNDYgMy40NiAwIDAgMC0uMiAxLjc5aC0uODZMNi4zMSA4LjYxYS45ODcuOTg3IDAgMCAxIC4wNC0xLjQxLjk5Ni45OTYgMCAwIDEgMS40MS4wNGwxLjg4IDEuOTd6bTEwLjY5IDQuNy44OC0uODNjLjUtLjQ3Ljc5LTEuMTMuNzktMS44MlYzLjM1bC0uMjctLjFjLS43OC0uMjgtMS42NC4xMi0xLjkyLjlsLS43MSAxLjk2LTUuNS01LjhhLjk5Ni45OTYgMCAxIDAtMS40NSAxLjM3bDMuNzkgMy45OS0uNzMuNjktNC44Mi01LjA4YS45OTYuOTk2IDAgMSAwLTEuNDUgMS4zN2wzLjc4IDMuOThMMTUuMzggOWwzLjYxIDMuNDMuNjEuNThjLjI5LjI3LjUzLjU3LjczLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpbmdsZUJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDEyYzAtMS4xLS45LTItMi0yVjdjMC0xLjEtLjktMi0yLTJIOGMtMS4xIDAtMiAuOS0yIDJ2M2MtMS4xIDAtMiAuOS0yIDJ2NWgxLjMzTDYgMTloMWwuNjctMmg4LjY3bC42NiAyaDFsLjY3LTJIMjB2LTV6bS00LTJoLTNWN2gzdjN6TTggN2gzdjNIOFY3em0tMiA1aDEydjNINnYtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2thdGVib2FyZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDNjMC0xLjEuOS0yIDItMnMyIC45IDIgMi0uOSAyLTIgMi0yLS45LTItMnpNNy4yNSAyMi41Yy0uNDEgMC0uNzUuMzQtLjc1Ljc1cy4zNC43NS43NS43NS43NS0uMzQuNzUtLjc1LS4zNC0uNzUtLjc1LS43NXptOC41IDBjLS40MSAwLS43NS4zNC0uNzUuNzVzLjM0Ljc1Ljc1Ljc1Ljc1LS4zNC43NS0uNzUtLjM0LS43NS0uNzUtLjc1em0zLjQ5LTMuNWEuNzIuNzIgMCAwIDAtLjU5LjNjLS41NS43My0xLjQyIDEuMi0yLjQgMS4ySDE2di02bC00LjMyLTIuNjcgMS44LTIuODlBNi41MDcgNi41MDcgMCAwIDAgMTkgMTJ2LTJjLTEuODUgMC0zLjQ0LTEuMTItNC4xMy0yLjcybC0uNTItMS4yMUMxNC4xNiA1LjY0IDEzLjYxIDUgMTIuNyA1SDdMNC41IDlsMS43IDEuMDZMOC4xIDdoMi4zNWwtMi40IDMuODRjLS4zMS41LS4zOSAxLjExLS4yMSAxLjY3bDEuMzQgNC4xNS0zLjEyIDMuNzZjLS43LS4xNi0xLjMtLjU3LTEuNzEtMS4xMmEuNzQ5Ljc0OSAwIDEgMC0xLjIuOWMuODIgMS4xIDIuMTMgMS44IDMuNiAxLjhoOS41YzEuNDcgMCAyLjc4LS43IDMuNi0xLjguMS0uMTQuMTUtLjMuMTUtLjQ1IDAtLjM5LS4zMi0uNzUtLjc2LS43NXpNMTQgMjAuNUg4LjZsMi45LTMuNS0xLTMuMyAzLjUgMi4ydjQuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2xlZGRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA0LjVjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yIC45LTIgMi0yIDIgLjkgMiAyem04LjggMTUuNzRhNC4wMDMgNC4wMDMgMCAwIDEtNS4wNCAyLjU3TDEgMTcuMzZsLjQ2LTEuNDMgMy45MyAxLjI4LjQ2LTEuNDMtMy45Mi0xLjI4LjQ2LTEuNDNMNCAxMy42VjkuNWw1LjQ3LTIuMzVjLjM5LS4xNy44NC0uMjEgMS4yOC0uMDcuOTUuMzEgMS40NiAxLjMyIDEuMTYgMi4yN2wtMS4wNSAzLjI0IDIuMTQtLjM0Yy44OS0uMTUgMS43Ni4zMiAyLjE0IDEuMTRsMi4wOCA0LjUxIDEuOTMuNjMtLjQ2IDEuNDMtMy4zMi0xLjA4LS40NyAxLjQyIDMuMzIgMS4wOGMxLjMxLjQzIDIuNzItLjI5IDMuMTUtMS42MS40My0xLjMxLS4yOS0yLjcyLTEuNjEtMy4xNWwuNDYtMS40M2MyLjExLjY5IDMuMjcgMi45NSAyLjU4IDUuMDV6TTYgMTQuMjVsMS4wMS4zM2MtLjIyLS40Mi0uMjgtLjkyLS4xMi0xLjRMNy45MiAxMCA2IDEwLjgydjMuNDN6bTcuOTQgNC4xNi02LjY2LTIuMTYtLjQ2IDEuNDMgNi42NiAyLjE2LjQ2LTEuNDN6bS42OS0xLjM2LTEuMTgtMi41Ni0zLjk3Ljg5IDUuMTUgMS42N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU25vd2JvYXJkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgM2MwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yem03LjQgMTcuMDlhLjc0OC43NDggMCAwIDAtLjY0LjE3Yy0uNjkuNi0xLjY0Ljg4LTIuNi42N0wxNyAyMC42OWwtMS02LjE5LTMuMzItMi42NyAxLjgtMi44OUE2LjUwNyA2LjUwNyAwIDAgMCAyMCAxMnYtMmMtMS44NSAwLTMuNDQtMS4xMi00LjEzLTIuNzJsLS41Mi0xLjIxQzE1LjE2IDUuNjQgMTQuNjEgNSAxMy43IDVIOEw1LjUgOWwxLjcgMS4wNkw5LjEgN2gyLjM1bC0yLjUxIDMuOTljLS4yOC40NS0uMzcgMS0uMjUgMS41Mkw5LjUgMTYgNiAxOC4zNWwtLjQ3LS4xYy0uOTYtLjItMS43MS0uODUtMi4xLTEuNjdhLjc0NC43NDQgMCAwIDAtLjUxLS40MmMtLjQzLS4wOS0uODIuMi0uOS41OC0uMDQuMTQtLjAyLjMxLjA1LjQ2LjU4IDEuMjQgMS43MSAyLjIgMy4xNSAyLjUxbDEyLjYzIDIuNjljMS40NC4zMSAyLjg2LS4xMSAzLjktMS4wMS4xMy0uMTEuMjEtLjI2LjI0LS40MS4wNy0uMzgtLjE2LS44LS41OS0uODl6TTguNzMgMTguOTNsMy4wMi0yLjAzLS40NC0zLjMyIDIuODQgMi4wMi43NSA0LjY0LTYuMTctMS4zMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU25vd3Nob2VpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi41IDMuNWMwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yek02LjMyIDE5LjAzbC0xLjE0LTEuNDdMNCAxOC41bDIuMzggMy4wNGMuNTEuNjUgMS4xNiAxLjE1IDEuODggMS40MS4yOC4xLjUzLjA0LjcyLS4xMS4zLS4yMy40Mi0uNy4xMi0xLjA3YS44NC44NCAwIDAgMC0uMzEtLjIyIDIuOTcgMi45NyAwIDAgMS0xLjE0LS44M2wtLjA4LS4xTDExIDE4LjJsLjg5LTMuMjIgMi4xMSAydjQuNTJoLTJWMjNoMy44N2MuODIgMCAxLjYxLS4yMSAyLjI2LS42MS4yNi0uMTYuMzctLjM5LjM3LS42NCAwLS4zOC0uMy0uNzUtLjc3LS43NS0uMTMgMC0uMjYuMDQtLjM3LjEtLjQuMjMtLjg3LjM3LTEuMzYuNHYtNi4wMmwtMi4xMS0yIC42LTNDMTUuNzkgMTEuOTggMTcuOCAxMyAyMCAxM3YtMmMtMS45IDAtMy41MS0xLjAyLTQuMzEtMi40MmwtMS0xLjU4Yy0uNC0uNi0xLTEtMS43LTEtLjc1IDAtMS40MS4zNC01Ljk5IDIuMjhWMTNoMlY5LjU4bDEuNzktLjdMOS4yIDE3bC0yLjg4IDIuMDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNvY2lhbERpc3RhbmNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA1YzAtMS4xLjktMiAyLTJzMiAuOSAyIDItLjkgMi0yIDItMi0uOS0yLTJ6bTQuNzggMy41OGE2Ljk1IDYuOTUgMCAwIDAtNS41NiAwQTIuMDEgMi4wMSAwIDAgMCAyIDEwLjQzVjExaDh2LS41N2MwLS44MS0uNDgtMS41My0xLjIyLTEuODV6TTE4IDdjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0yLjc4IDEuNThhNi45NSA2Ljk1IDAgMCAwLTUuNTYgMEEyLjAxIDIuMDEgMCAwIDAgMTQgMTAuNDNWMTFoOHYtLjU3YzAtLjgxLS40OC0xLjUzLTEuMjItMS44NXpNMjIgMTdsLTQtNHYzSDZ2LTNsLTQgNCA0IDR2LTNoMTJ2M2w0LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNvdXRoQW1lcmljYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTQgMTJjMC0xLjk1LjctMy43NCAxLjg3LTUuMTNMOSAxMHYxYzAgMS4xLjkgMiAyIDJ2NS41OWMwIC4yNy4xMS41Mi4yOS43MWwuNzEuN2MtNC40MiAwLTgtMy41OC04LTh6bTkgNy45NFYxOGwzLjc1LTUuNjJjLjE2LS4yNS4yNS0uNTQuMjUtLjgzVjEwLjVjMC0uNTUtLjQ1LTEtMS0xaC0xLjVsLTEuNC0xLjc1Yy0uMzgtLjQ3LS45NS0uNzUtMS41Ni0uNzVIOFY1LjA3QTcuOTcxIDcuOTcxIDAgMCAxIDEyIDRjNC40MSAwIDggMy41OSA4IDggMCA0LjA3LTMuMDYgNy40NC03IDcuOTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwb3J0c0Jhc2ViYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy44MSA2LjI4QzIuNjcgNy45IDIgOS44NyAyIDEycy42NyA0LjEgMS44MSA1LjcyQzYuMjMgMTYuOTUgOCAxNC42OCA4IDEyUzYuMjMgNy4wNSAzLjgxIDYuMjh6TTIwLjE5IDYuMjhDMTcuNzcgNy4wNSAxNiA5LjMyIDE2IDEyczEuNzcgNC45NSA0LjE5IDUuNzJDMjEuMzMgMTYuMSAyMiAxNC4xMyAyMiAxMnMtLjY3LTQuMS0xLjgxLTUuNzJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDEyYzAtMy4yOCAxLjk3LTYuMDkgNC43OS03LjMzQzE3LjAxIDMuMDIgMTQuNjMgMiAxMiAyUzYuOTkgMy4wMiA1LjIxIDQuNjdDOC4wMyA1LjkxIDEwIDguNzIgMTAgMTJzLTEuOTcgNi4wOS00Ljc5IDcuMzNDNi45OSAyMC45OCA5LjM3IDIyIDEyIDIyczUuMDEtMS4wMiA2Ljc5LTIuNjdBOC4wMDIgOC4wMDIgMCAwIDEgMTQgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwb3J0c0Jhc2tldGJhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy4wOSAxMWg0Ljg2YTkuOTUxIDkuOTUxIDAgMCAwLTEuNTQtNC40IDUuOTg3IDUuOTg3IDAgMCAwLTMuMzIgNC40ek02LjkxIDExYTUuOTg3IDUuOTg3IDAgMCAwLTMuMzItNC40QTkuOTUxIDkuOTUxIDAgMCAwIDIuMDUgMTFoNC44NnpNMTUuMDcgMTFhNy45OTQgNy45OTQgMCAwIDEgNC4wNi02QTkuOTY5IDkuOTY5IDAgMCAwIDEzIDIuMDVWMTFoMi4wN3pNOC45MyAxMUgxMVYyLjA1QTkuOTQzIDkuOTQzIDAgMCAwIDQuODcgNWE3Ljk5NCA3Ljk5NCAwIDAgMSA0LjA2IDZ6TTE1LjA3IDEzSDEzdjguOTVBOS45NDMgOS45NDMgMCAwIDAgMTkuMTMgMTlhNy45OTQgNy45OTQgMCAwIDEtNC4wNi02ek0zLjU5IDE3LjRBNi4wMjkgNi4wMjkgMCAwIDAgNi45MSAxM0gyLjA1Yy4xNiAxLjYxLjcxIDMuMTEgMS41NCA0LjR6TTE3LjA5IDEzYTUuOTg3IDUuOTg3IDAgMCAwIDMuMzIgNC40IDkuOTUxIDkuOTUxIDAgMCAwIDEuNTQtNC40aC00Ljg2ek04LjkzIDEzYTcuOTk0IDcuOTk0IDAgMCAxLTQuMDYgNkE5Ljk2OSA5Ljk2OSAwIDAgMCAxMSAyMS45NVYxM0g4LjkzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcG9ydHNDcmlja2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuMDUgMTIuODEgNi41NiA0LjMyYS45OTYuOTk2IDAgMCAwLTEuNDEgMEwyLjMyIDcuMTVhLjk5Ni45OTYgMCAwIDAgMCAxLjQxbDguNDkgOC40OWMuMzkuMzkgMS4wMi4zOSAxLjQxIDBsMi44My0yLjgzYS45OTYuOTk2IDAgMCAwIDAtMS40MXpNMTQuMzQxIDE3Ljc1NmwxLjQxNC0xLjQxNCA0LjI0MyA0LjI0My0xLjQxNCAxLjQxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxOC41XCIsXCJjeVwiOlwiNS41XCIsXCJyXCI6XCIzLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3BvcnRzRXNwb3J0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjU4IDE2LjA5LTEuMDktNy42NkEzLjk5NiAzLjk5NiAwIDAgMCAxNi41MyA1SDcuNDdDNS40OCA1IDMuNzkgNi40NiAzLjUxIDguNDNsLTEuMDkgNy42NkMyLjIgMTcuNjMgMy4zOSAxOSA0Ljk0IDE5Yy42OCAwIDEuMzItLjI3IDEuOC0uNzVMOSAxNmg2bDIuMjUgMi4yNWMuNDguNDggMS4xMy43NSAxLjguNzUgMS41NiAwIDIuNzUtMS4zNyAyLjUzLTIuOTF6TTExIDExSDl2Mkg4di0ySDZ2LTFoMlY4aDF2MmgydjF6bTQtMWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0yIDNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3BvcnRzRm9vdGJhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjAyIDE1LjYyYy0uMDggMi40Mi4zMiA0LjM0LjY3IDQuNjlzMi4yOC43NiA0LjY5LjY3bC01LjM2LTUuMzZ6TTEzLjA4IDMuMjhjLTIuMzMuNDItNC43OSAxLjM0LTYuNjIgMy4xOHMtMi43NiA0LjI5LTMuMTggNi42Mmw3LjYzIDcuNjNjMi4zNC0uNDEgNC43OS0xLjM0IDYuNjItMy4xOHMyLjc2LTQuMjkgMy4xOC02LjYybC03LjYzLTcuNjN6TTkuOSAxNS41bC0xLjQtMS40IDUuNi01LjYgMS40IDEuNC01LjYgNS42ek0yMC45OCA4LjM4Yy4wOC0yLjQyLS4zMi00LjM0LS42Ny00LjY5cy0yLjI4LS43Ni00LjY5LS42N2w1LjM2IDUuMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwb3J0c0dvbGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNmMzLjg3IDAgNy0zLjEzIDctN3MtMy4xMy03LTctNy03IDMuMTMtNyA3IDMuMTMgNyA3IDd6bTAtMTJjMi43NiAwIDUgMi4yNCA1IDVzLTIuMjQgNS01IDUtNS0yLjI0LTUtNSAyLjI0LTUgNS01elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEwXCIsXCJjeVwiOlwiOFwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE0XCIsXCJjeVwiOlwiOFwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiNlwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE5aDJjMS4xIDAgMiAuOSAyIDJ2MWgydi0xYzAtMS4xLjktMiAyLTJoMnYtMkg3djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwb3J0c0d5bW5hc3RpY3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDZjMC0xLjEuOS0yIDItMnMyIC45IDIgMi0uOSAyLTIgMi0yLS45LTItMnpNMSA5aDZsNy01IDEuMzEgMS41Mi00LjE3IDIuOThIMTRMMjEuOCA0IDIzIDUuNCAxNC41IDEyIDE0IDIyaC0ybC0uNS0xMEw4IDExSDFWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3BvcnRzSGFuZGJhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC4yNyA2Yy0uNTUuOTUtLjIyIDIuMTguNzMgMi43My45NS41NSAyLjE4LjIyIDIuNzMtLjczLjU1LS45NS4yMi0yLjE4LS43My0yLjczLS45NS0uNTUtMi4xOC0uMjItMi43My43M3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUuODQgMTAuNDEtMi42LTEuNWMtMi4zOC0xLjM4LTMuMi00LjQ0LTEuODItNi44MmwtMS43My0xQzguMSAzLjgzIDguNiA3LjIxIDEwLjY2IDkuNGwtNS4xNSA4LjkyIDEuNzMgMSAxLjUtMi42IDEuNzMgMS0zIDUuMiAxLjczIDEgNi4yOS0xMC44OWE1LjAwMiA1LjAwMiAwIDAgMSAuMzEgNS40NmwxLjczIDFjMS42LTIuNzUgMS4yOC02LjU4LTEuNjktOS4wOHpNMTIuNzUgMy44Yy43Mi40MSAxLjYzLjE3IDIuMDUtLjU1LjQxLS43Mi4xNy0xLjYzLS41NS0yLjA1YTEuNTAxIDEuNTAxIDAgMCAwLTEuNSAyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwb3J0c0hvY2tleSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTd2M2gydi00SDNjLS41NSAwLTEgLjQ1LTEgMXpNOSAxNkg1djRsNC42OS0uMDFjLjM4IDAgLjcyLS4yMS44OS0uNTVsLjg3LTEuOS0xLjU5LTMuNDhMOSAxNnpNMjEuNzEgMTYuMjlBLjk5Ny45OTcgMCAwIDAgMjEgMTZoLTF2NGgydi0zYzAtLjI4LS4xMS0uNTMtLjI5LS43MXpNMTMuNiAxMi44NCAxNy42NSA0SDE0LjNsLTEuNzYgMy45Ny0uNDkgMS4xLS4wNS4xNEw5LjcgNEg2LjM1bDQuMDUgOC44NCAxLjUyIDMuMzIuMDguMTggMS40MiAzLjFjLjE3LjM0LjUxLjU1Ljg5LjU1TDE5IDIwdi00aC00bC0xLjQtMy4xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3BvcnRzS2FiYWRkaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTYuNVwiLFwiY3lcIjpcIjIuMzhcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQgMTEuODh2LTQuN2wtNS4wNS0yLjE0Yy0uOTctLjQxLTIuMDktLjA2LTIuNjUuODRsLTEgMS42Yy0uNjcgMS4xOC0xLjkxIDIuMDYtMy40MSAyLjMybC4wNi4wNmMuNjkuNjkgMS41MiAxLjA3IDIuNDYgMS4xNy44LS40MiAxLjUyLS45OCAyLjA5LTEuNjRsLjYgMy0xLjE2IDEuMS0uOTQuODl2Ny41aDJ2LTZsMi4xLTIgMS44IDhIMjNsLTIuMTgtMTEtLjYyLTMuMSAxLjguN3YzLjRoMnpNMTAuMjkgOC4wOWMuMjIuMTUuNDcuMjQuNzIuMjkuMTMuMDIuMjUuMDQuMzguMDRzLjI2LS4wMS4zOC0uMDRjLjEzLS4wMi4yNS0uMDYuMzctLjExLjI0LS4xLjQ3LS4yNC42Ni0uNDQuNDktLjQ5LjY3LTEuMTcuNTUtMS44LS4wNy0uMzctLjI1LS43NC0uNTUtMS4wMy0uMTktLjE5LS40Mi0uMzQtLjY2LS40NC0uMTItLjA1LS4yNC0uMDktLjM3LS4xMXMtLjI1LS4wNC0uMzgtLjA0Yy0uMTIgMC0uMjMuMDEtLjM1LjAzLS4xNC4wMi0uMjguMDYtLjQxLjExLS4yMy4xMS0uNDYuMjYtLjY1LjQ1LS4zLjI5LS40OC42Ni0uNTUgMS4wMy0uMTIuNjMuMDYgMS4zMS41NSAxLjguMDkuMS4yLjE4LjMxLjI2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMS4yNCAxMC41Ni0yLTJjLS4xLS4xLS4yLS4xOC0uMzEtLjI2YTEuOTMgMS45MyAwIDAgMC0uNzItLjI4Yy0uMTMtLjAzLS4yNS0uMDQtLjM4LS4wNC0uNTEgMC0xLjAyLjItMS40MS41OWwtMy4zNCAzLjM0Yy0uNDEuNDEtLjYyLjk4LS41OCAxLjU0IDAgLjE4LjA0LjM3LjExLjU1bDEuMDcgMi45NS0zLjYzIDMuNjNMMS40NiAyMmw0LjI0LTQuMjR2LTIuMjJMNyAxNi43NXY1LjEzaDJ2LTZsLTIuMTItMi4xMiAyLjM2LTIuMzYuNzEuNzFjMS4yOSAxLjI2IDIuOTcgMi4wNCA1LjAzIDIuMDRsLS4xNC0yLjA3Yy0xLjUtLjAyLTIuNy0uNjItMy42LTEuNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwb3J0c01hcnRpYWxBcnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkuOCAyLTguMiA2LjctMS4yMS0xLjA0IDMuNi0yLjA4TDkuNDEgMSA4IDIuNDFsMi43NCAyLjc0TDUgOC40NmwtMS4xOSA0LjI5TDYuMjcgMTcgOCAxNmwtMi4wMy0zLjUyLjM1LTEuM0w5LjUgMTNsLjUgOWgybC41LTEwTDIxIDMuNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI1XCIsXCJjeVwiOlwiNVwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcG9ydHNNbWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDIwYzAgLjU1LjQ1IDEgMSAxaDhjLjU1IDAgMS0uNDUgMS0xdi0zSDd2M3pNMTggN2MtLjU1IDAtMSAuNDUtMSAxVjVjMC0xLjEtLjktMi0yLTJIN2MtMS4xIDAtMiAuOS0yIDJ2NS44YzAgLjEzLjAxLjI2LjA0LjM5bC44IDRjLjA5LjQ3LjUuOC45OC44aDEwLjM2Yy40NSAwIC44OS0uMzYuOTgtLjhsLjgtNGMuMDMtLjEzLjA0LS4yNi4wNC0uMzlWOGMwLS41NS0uNDUtMS0xLTF6bS0zIDNIN1Y3aDh2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3BvcnRzTW90b3JzcG9ydHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMS4zOWMwLS42NS0uMzktMS4yMy0uOTgtMS40OEw1LjQ0IDcuNTVjLTEuNDggMS42OC0yLjMyIDMuNy0yLjggNS40NWg3Ljc1Yy44OSAwIDEuNjEtLjcyIDEuNjEtMS42MXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuOTYgMTEuMjJjLS40MS00LjQxLTQuNTYtNy40OS04Ljk4LTcuMi0yLjUxLjE2LTQuNDQuOTQtNS45MyAyLjA0bDQuNzQgMi4wMWMxLjMzLjU3IDIuMiAxLjg3IDIuMiAzLjMyIDAgMS45OS0xLjYyIDMuNjEtMy42MSAzLjYxSDIuMjFDMiAxNi4zMSAyIDE3LjIgMiAxNy4ydi44YzAgMS4xLjkgMiAyIDJoMTBjNC42NyAwIDguNDEtNC4wMSA3Ljk2LTguNzh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwb3J0c1J1Z2J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNDkgMy41MWMtLjU2LS41Ni0yLjE1LS45Ny00LjE2LS45Ny0zLjA4IDAtNy4xNS45Ni05Ljk4IDMuNzktNC42OSA0LjctNC4yNSAxMi43NC0yLjg0IDE0LjE2LjU2LjU2IDIuMTUuOTcgNC4xNi45NyAzLjA4IDAgNy4xNS0uOTYgOS45OC0zLjc5IDQuNjktNC43IDQuMjUtMTIuNzQgMi44NC0xNC4xNnpNNy43NiA3Ljc2YzIuNjQtMi42NCA2LjM1LTMuMTIgOC4wMy0zLjE5LTIuMDUuOTQtNC40NiAyLjQ1LTYuNjEgNC42MWEyMy40NjIgMjMuNDYyIDAgMCAwLTQuNjIgNi42M2MuMS0yLjQ4Ljg4LTUuNzQgMy4yLTguMDV6bTguNDggOC40OGMtMi42NCAyLjY0LTYuMzUgMy4xMi04LjAzIDMuMTkgMi4wNS0uOTQgNC40Ni0yLjQ1IDYuNjEtNC42MSAyLjE2LTIuMTYgMy42Ny00LjU4IDQuNjItNi42My0uMSAyLjQ4LS44OCA1Ljc0LTMuMiA4LjA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcG9ydHNTb2NjZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xIDMuMyAxLjM1LS45NWE4LjAxIDguMDEgMCAwIDEgNC4zOCAzLjM0bC0uMzkgMS4zNC0xLjM1LjQ2TDEzIDYuN1Y1LjN6bS0zLjM1LS45NUwxMSA1LjN2MS40TDcuMDEgOS40OWwtMS4zNS0uNDYtLjM5LTEuMzRhOC4xMDMgOC4xMDMgMCAwIDEgNC4zOC0zLjM0ek03LjA4IDE3LjExbC0xLjE0LjFBNy45MzggNy45MzggMCAwIDEgNCAxMmMwLS4xMi4wMS0uMjMuMDItLjM1bDEtLjczIDEuMzguNDggMS40NiA0LjM0LS43OCAxLjM3em03LjQyIDIuNDhjLS43OS4yNi0xLjYzLjQxLTIuNS40MXMtMS43MS0uMTUtMi41LS40MWwtLjY5LTEuNDkuNjQtMS4xaDUuMTFsLjY0IDEuMTEtLjcgMS40OHpNMTQuMjcgMTVIOS43M2wtMS4zNS00LjAyTDEyIDguNDRsMy42MyAyLjU0TDE0LjI3IDE1em0zLjc5IDIuMjEtMS4xNC0uMS0uNzktMS4zNyAxLjQ2LTQuMzQgMS4zOS0uNDcgMSAuNzNjLjAxLjExLjAyLjIyLjAyLjM0IDAgMS45OS0uNzMgMy44MS0xLjk0IDUuMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwb3J0c1Rlbm5pcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjUyIDIuNDlDMTcuMTguMTUgMTIuOS42MiA5Ljk3IDMuNTVjLTEuNiAxLjYtMi41MiAzLjg3LTIuNTQgNS40Ni0uMDIgMS41OC4yNiAzLjg5LTEuMzUgNS41bC00LjI0IDQuMjQgMS40MiAxLjQyIDQuMjQtNC4yNGMxLjYxLTEuNjEgMy45Mi0xLjMzIDUuNS0xLjM1czMuODYtLjk0IDUuNDYtMi41NGMyLjkyLTIuOTMgMy40LTcuMjEgMS4wNi05LjU1em0tOS4yIDkuMTljLTEuNTMtMS41My0xLjA1LTQuNjEgMS4wNi02LjcyczUuMTgtMi41OSA2LjcyLTEuMDZjMS41MyAxLjUzIDEuMDUgNC42MS0xLjA2IDYuNzJzLTUuMTggMi41OS02LjcyIDEuMDZ6TTE4IDE3Yy41MyAwIDEuMDQuMjEgMS40MS41OS43OC43OC43OCAyLjA1IDAgMi44My0uMzcuMzctLjg4LjU4LTEuNDEuNThzLTEuMDQtLjIxLTEuNDEtLjU5Yy0uNzgtLjc4LS43OC0yLjA1IDAtMi44My4zNy0uMzcuODgtLjU4IDEuNDEtLjU4bTAtMmEzLjk5OCAzLjk5OCAwIDAgMC0yLjgzIDYuODNjLjc4Ljc4IDEuODEgMS4xNyAyLjgzIDEuMTdhMy45OTggMy45OTggMCAwIDAgMi44My02LjgzQTMuOTk4IDMuOTk4IDAgMCAwIDE4IDE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcG9ydHNWb2xsZXliYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA0LjAxQzMuNTggNS44NCAyIDguNzMgMiAxMmMwIDEuNDYuMzIgMi44NS44OSA0LjExTDYgMTQuMzFWNC4wMXpNMTEgMTEuNDJWMi4wNWMtMS4wNi4xMS0yLjA3LjM4LTMgLjc5djEwLjMybDMtMS43NHpNMTIgMTMuMTVsLTguMTEgNC42OGMuNjEuODQgMS4zNCAxLjU5IDIuMTggMi4yTDE1IDE0Ljg5bC0zLTEuNzR6TTEzIDcuOTZ2My40Nmw4LjExIDQuNjhjLjQyLS45My43LTEuOTMuODItMi45OEwxMyA3Ljk2ek04LjA3IDIxLjJjMS4yMS41MSAyLjUzLjggMy45My44IDMuMzQgMCA2LjI5LTEuNjUgOC4xMS00LjE2TDE3IDE2LjA0IDguMDcgMjEuMnpNMjEuOTIgMTAuODFjLS41NS00LjYzLTQuMjYtOC4zLTguOTItOC43NnYzLjZsOC45MiA1LjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcG9ydHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4yMyA2Yy0xLjY2IDAtMy4yMi42Ni00LjM2IDEuNzNDNi41NCA2LjczIDUuNjEgNiA0LjUgNmEyLjUgMi41IDAgMCAwIDAgNWMuMjEgMCAuNDEtLjAzLjYxLS4wOC0uMDUuMjUtLjA5LjUxLS4xLjc4YTYuMDA2IDYuMDA2IDAgMCAwIDYuNjggNi4yN2MyLjU1LS4yOCA0LjY4LTIuMjYgNS4xOS00Ljc3LjE1LS43MS4xNS0xLjQuMDYtMi4wNi0uMDktLjYuMzgtMS4xMy45OS0xLjEzSDIyVjZIMTEuMjN6TTQuNSA5Yy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjUuNS4yMi41LjUtLjIyLjUtLjUuNXptNi41IDZjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjExXCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3VyZmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDIzYy0xLjAzIDAtMi4wNi0uMjUtMy0uNzUtMS44OSAxLTQuMTEgMS02IDAtMS44OSAxLTQuMTEgMS02IDAtLjk1LjUtMS45Ny43NS0zIC43NUgydi0yaDFjMS4wNCAwIDIuMDgtLjM1IDMtMSAxLjgzIDEuMyA0LjE3IDEuMyA2IDAgMS44MyAxLjMgNC4xNyAxLjMgNiAwIC45MS42NSAxLjk2IDEgMyAxaDF2MmgtMXpNMTcgMS41Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptLTIuNTcgNi45OEwxMi4xOCAxMCAxNiAxM3YzLjg0Yy41My4zOCAxLjAzLjc4IDEuNDkgMS4xNy0uNjguNTgtMS41NS45OS0yLjQ5Ljk5LTEuMiAwLTIuMjctLjY2LTMtMS41LS43My44NC0xLjggMS41LTMgMS41LS4zMyAwLS42NS0uMDUtLjk2LS4xNEM1LjE5IDE2LjkgMyAxNC43MiAzIDEzLjI4IDMgMTIuMjUgNC4wMSAxMiA0Ljg1IDEyYy45OCAwIDIuMjguMzEgMy43LjgzbC0uNTMtMy4xYy0uMTEtLjY3LjE4LTEuMzguNzgtMS43OWwyLjE1LTEuNDUtMi0uMzctMi44MiAxLjkzTDUgNi40IDguNSA0bDUuNTUgMS4wM2MuNDUuMDkuOTMuMzcgMS4yMi44OWwuODggMS41NUE1LjAwNyA1LjAwNyAwIDAgMCAyMC41IDEwdjJhNy4wMSA3LjAxIDAgMCAxLTYuMDctMy41MnpNMTAuMyAxMS4xbC40NCAyLjY1Yy45Mi40MiAyLjQ4IDEuMjcgMy4yNiAxLjc1VjE0bC0zLjctMi45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTd2l0Y2hBY2NvdW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2SDJ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZ6bTE2LTRIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tNiAyYzEuNjYgMCAzIDEuMzQgMyAzcy0xLjM0IDMtMyAzLTMtMS4zNC0zLTMgMS4zNC0zIDMtM3ptNiAxMkg4di0xLjVjMC0xLjk5IDQtMyA2LTNzNiAxLjAxIDYgM1YxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGh1bWJEb3duQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0yNCAyNEgwVjBoMjR2MjR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDRoLTJjLS41NSAwLTEgLjQ1LTEgMXY5YzAgLjU1LjQ1IDEgMSAxaDJWNHpNMi4xNyAxMS4xMmMtLjExLjI1LS4xNy41Mi0uMTcuOFYxM2MwIDEuMS45IDIgMiAyaDUuNWwtLjkyIDQuNjVjLS4wNS4yMi0uMDIuNDYuMDguNjYuMjMuNDUuNTIuODYuODggMS4yMkwxMCAyMmw2LjQxLTYuNDFjLjM4LS4zOC41OS0uODkuNTktMS40MlY2LjM0QzE3IDUuMDUgMTUuOTUgNCAxNC42NiA0aC04LjFjLS43MSAwLTEuMzYuMzctMS43Mi45N2wtMi42NyA2LjE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUaHVtYlVwQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0yNCAyNEgwVjBoMjR2MjR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMjBoMmMuNTUgMCAxLS40NSAxLTF2LTljMC0uNTUtLjQ1LTEtMS0xSDJ2MTF6bTE5LjgzLTcuMTJjLjExLS4yNS4xNy0uNTIuMTctLjhWMTFjMC0xLjEtLjktMi0yLTJoLTUuNWwuOTItNC42NWMuMDUtLjIyLjAyLS40Ni0uMDgtLjY2YTQuOCA0LjggMCAwIDAtLjg4LTEuMjJMMTQgMiA3LjU5IDguNDFDNy4yMSA4Ljc5IDcgOS4zIDcgOS44M3Y3Ljg0QTIuMzQgMi4zNCAwIDAgMCA5LjM0IDIwaDguMTFjLjcgMCAxLjM2LS4zNyAxLjcyLS45N2wyLjY2LTYuMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRodW5kZXJzdG9ybSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjkyIDcuMDJDMTcuNDUgNC4xOCAxNC45NyAyIDEyIDIgOS44MiAyIDcuODMgMy4xOCA2Ljc4IDUuMDYgNC4wOSA1LjQxIDIgNy43NCAyIDEwLjUgMiAxMy41MyA0LjQ3IDE2IDcuNSAxNmgxMGMyLjQ4IDAgNC41LTIuMDIgNC41LTQuNWE0LjUgNC41IDAgMCAwLTQuMDgtNC40OHpNMTQuOCAxN2wtMi45IDMuMzIgMiAxTDExLjU1IDI0aDIuNjVsMi45LTMuMzItMi0xTDE3LjQ1IDE3ek04LjggMTdsLTIuOSAzLjMyIDIgMUw1LjU1IDI0SDguMmwyLjktMy4zMi0yLTFMMTEuNDUgMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRvcm5hZG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC4xMSA4IDIzIDNIMWwyLjg5IDV6TTcuOTUgMTUgMTIgMjJsNC4wNS03ek0xOC45NSAxMEg1LjA1bDEuNzQgM2gxMC40MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHJhbnNnZW5kZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA4YzEuOTMgMCAzLjUgMS41NyAzLjUgMy41UzEzLjkzIDE1IDEyIDE1cy0zLjUtMS41Ny0zLjUtMy41UzEwLjA3IDggMTIgOHptNC41My4zOCAzLjk3LTMuOTZWN2gyVjFoLTZ2MmgyLjU4bC0zLjk3IDMuOTdDMTQuMjMgNi4zNiAxMy4xNiA2IDEyIDZzLTIuMjMuMzYtMy4xMS45N2wtLjY1LS42NSAxLjQxLTEuNDEtMS40MS0xLjQyTDYuODIgNC45IDQuOTIgM0g3LjVWMWgtNnY2aDJWNC40MmwxLjkxIDEuOS0xLjQyIDEuNDJMNS40IDkuMTVsMS40MS0xLjQxLjY1LjY1Yy0uNi44OC0uOTYgMS45NS0uOTYgMy4xMWE1LjUgNS41IDAgMCAwIDQuNSA1LjQxVjE5SDl2MmgydjJoMnYtMmgydi0yaC0ydi0yLjA5YTUuNSA1LjUgMCAwIDAgMy41My04LjUzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUcmF2ZWxFeHBsb3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMyAxNi45Yy40LS43LjctMS41LjctMi40IDAtMi41LTItNC41LTQuNS00LjVTMTEgMTIgMTEgMTQuNXMyIDQuNSA0LjUgNC41Yy45IDAgMS43LS4zIDIuNC0uN2wzLjIgMy4yIDEuNC0xLjQtMy4yLTMuMnptLTMuOC4xYy0xLjQgMC0yLjUtMS4xLTIuNS0yLjVzMS4xLTIuNSAyLjUtMi41IDIuNSAxLjEgMi41IDIuNS0xLjEgMi41LTIuNSAyLjV6TTEyIDIwdjJDNi40OCAyMiAyIDE3LjUyIDIgMTJTNi40OCAyIDEyIDJjNC44NCAwIDguODcgMy40NCA5LjggOGgtMi4wN0E4IDggMCAwIDAgMTUgNC41OVY1YzAgMS4xLS45IDItMiAyaC0ydjJjMCAuNTUtLjQ1IDEtMSAxSDh2MmgydjNIOWwtNC43OS00Ljc5QzQuMDggMTAuNzkgNCAxMS4zOCA0IDEyYzAgNC40MSAzLjU5IDggOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUc3VuYW1pIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNjcgMTcuNjNjLTMuOCAyLjgtNi4xMi40LTYuNjcgMC0uNjYuNDktMi45MiAyLjc2LTYuNjcgMEMzLjQzIDE5LjAzIDIuNjUgMTkgMiAxOXYyYzEuMTYgMCAyLjMtLjMyIDMuMzMtLjkzYTYuNTM1IDYuNTM1IDAgMCAwIDYuNjcgMCA2LjUzNSA2LjUzNSAwIDAgMCA2LjY3IDBjMS4wMy42MSAyLjE3LjkzIDMuMzMuOTN2LTJjLS42NiAwLTEuNS0uMDItMy4zMy0xLjM3ek0xOS4zMyAxMkgyMnYtMmgtMi42N0MxNy41IDEwIDE2IDguNSAxNiA2LjY3YzAtMS4wMi4zOC0xLjc0IDEuMDktMy4zNC0xLjM3LS4yMS0yLS4zMy0zLjA5LS4zM0M3LjM2IDMgMi4xNSA4LjAzIDIuMDEgMTQuNWwtLjAxIDJjMS4xNiAwIDIuMy0uMzIgMy4zMy0uOTNhNi41MzUgNi41MzUgMCAwIDAgNi42NyAwIDYuNTM1IDYuNTM1IDAgMCAwIDYuNjcgMGMxLjAzLjYxIDIuMTcuOTMgMy4zMy45M3YtMmMtLjY2IDAtMS41LS4wMi0zLjMzLTEuMzctMy44IDIuOC02LjEyLjQtNi42NyAwLS45LjY3LS41NC40MS0uOTEuNjMtLjctLjk0LTEuMDktMi4wNi0xLjA5LTMuMjYgMC0yLjU4IDEuNzctNC43NCA0LjIxLTUuMzMtLjEzLjUxLS4yMSAxLjAyLS4yMSAxLjVDMTQgOS42MSAxNi4zOSAxMiAxOS4zMyAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmFjY2luZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA1LjVIOFY0aC41Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xaC0zYy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxSDZ2MS41SDNjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDFWMTVjMCAxLjEuOSAyIDIgMmgxdjRsMiAxLjVWMTdoMWMxLjEgMCAyLS45IDItMlY3LjVjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTF6TTkgOUg3LjI1Yy0uNDEgMC0uNzUuMzQtLjc1Ljc1cy4zNC43NS43NS43NUg5VjEySDcuMjVjLS40MSAwLS43NS4zNC0uNzUuNzVzLjM0Ljc1Ljc1Ljc1SDlWMTVINVY3LjVoNFY5em0xMC41IDEuNVYxMGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMWgtNWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMXYuNWMwIC41LTEuNSAxLjE2LTEuNSAzVjIwYzAgMS4xLjkgMiAyIDJoNGMxLjEgMCAyLS45IDItMnYtNi41YzAtMS44NC0xLjUtMi41LTEuNS0zem0tMyAwVjEwaDF2LjVjMCAxLjYgMS41IDIgMS41IDN2LjVoLTR2LS41YzAtMSAxLjUtMS40IDEuNS0zek0xNSAyMHYtMS41aDRWMjBoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZvbGNhbm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA4aC03bC0yIDVINmwtNCA5aDIwek0xMyAxaDJ2NGgtMnpNMTYuMTIxIDUuNDY4IDE4Ljk1IDIuNjRsMS40MTQgMS40MTQtMi44MjkgMi44Mjh6TTcuNjQgNC4wNWwxLjQxNC0xLjQxNCAyLjgyOCAyLjgyOS0xLjQxNCAxLjQxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2FsbGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNEg2QzMuNzkgNCAyIDUuNzkgMiA4djhjMCAyLjIxIDEuNzkgNCA0IDRoMTJjMi4yMSAwIDQtMS43OSA0LTRWOGMwLTIuMjEtMS43OS00LTQtNHptLTEuODYgOS43N2MtLjI0LjItLjU3LjI4LS44OC4yTDQuMTUgMTEuMjVDNC40NSAxMC41MiA1LjE2IDEwIDYgMTBoMTJjLjY3IDAgMS4yNi4zNCAxLjYzLjg0bC0zLjQ5IDIuOTN6TTYgNmgxMmMxLjEgMCAyIC45IDIgMnYuNTVjLS41OS0uMzQtMS4yNy0uNTUtMi0uNTVINmMtLjczIDAtMS40MS4yMS0yIC41NVY4YzAtMS4xLjktMiAyLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdhdGVyRHJvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJjLTUuMzMgNC41NS04IDguNDgtOCAxMS44IDAgNC45OCAzLjggOC4yIDggOC4yczgtMy4yMiA4LTguMmMwLTMuMzItMi42Ny03LjI1LTgtMTEuOHpNNy44MyAxNGMuMzcgMCAuNjcuMjYuNzQuNjIuNDEgMi4yMiAyLjI4IDIuOTggMy42NCAyLjg3LjQzLS4wMi43OS4zMi43OS43NSAwIC40LS4zMi43My0uNzIuNzUtMi4xMy4xMy00LjYyLTEuMDktNS4xOS00LjEyYS43NS43NSAwIDAgMSAuNzQtLjg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXYXZpbmdIYW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMgMTdjMCAzLjMxLTIuNjkgNi02IDZ2LTEuNWMyLjQ4IDAgNC41LTIuMDIgNC41LTQuNUgyM3pNMSA3YzAtMy4zMSAyLjY5LTYgNi02djEuNUM0LjUyIDIuNSAyLjUgNC41MiAyLjUgN0gxem03LjAxLTIuNjgtNC42IDQuNmMtMy4yMiAzLjIyLTMuMjIgOC40NSAwIDExLjY3czguNDUgMy4yMiAxMS42NyAwbDcuMDctNy4wN2MuNDktLjQ5LjQ5LTEuMjggMC0xLjc3YTEuMjUgMS4yNSAwIDAgMC0xLjc3IDBsLTQuNDIgNC40Mi0uNzEtLjcxIDYuNTQtNi41NGMuNDktLjQ5LjQ5LTEuMjggMC0xLjc3cy0xLjI4LS40OS0xLjc3IDBsLTUuODMgNS44My0uNzEtLjcxIDYuODktNi44OWMuNDktLjQ5LjQ5LTEuMjggMC0xLjc3cy0xLjI4LS40OS0xLjc3IDBsLTYuODkgNi44OS0uNjktLjcgNS40OC01LjQ4Yy40OS0uNDkuNDktMS4yOCAwLTEuNzdzLTEuMjgtLjQ5LTEuNzcgMGwtNy42MiA3LjYyYTQuMDAzIDQuMDAzIDAgMCAxLS4zMyA1LjI4bC0uNzEtLjcxYTMgMyAwIDAgMCAwLTQuMjRsLS4zNS0uMzUgNC4wNy00LjA3Yy40OS0uNDkuNDktMS4yOCAwLTEuNzdhMS4yNyAxLjI3IDAgMCAwLTEuNzguMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdoYXRzYXBwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMDUgNC45MUE5LjgxNiA5LjgxNiAwIDAgMCAxMi4wNCAyYy01LjQ2IDAtOS45MSA0LjQ1LTkuOTEgOS45MSAwIDEuNzUuNDYgMy40NSAxLjMyIDQuOTVMMi4wNSAyMmw1LjI1LTEuMzhjMS40NS43OSAzLjA4IDEuMjEgNC43NCAxLjIxIDUuNDYgMCA5LjkxLTQuNDUgOS45MS05LjkxIDAtMi42NS0xLjAzLTUuMTQtMi45LTcuMDF6bS03LjAxIDE1LjI0Yy0xLjQ4IDAtMi45My0uNC00LjItMS4xNWwtLjMtLjE4LTMuMTIuODIuODMtMy4wNC0uMi0uMzFhOC4yNjQgOC4yNjQgMCAwIDEtMS4yNi00LjM4YzAtNC41NCAzLjctOC4yNCA4LjI0LTguMjQgMi4yIDAgNC4yNy44NiA1LjgyIDIuNDJhOC4xODMgOC4xODMgMCAwIDEgMi40MSA1LjgzYy4wMiA0LjU0LTMuNjggOC4yMy04LjIyIDguMjN6bTQuNTItNi4xNmMtLjI1LS4xMi0xLjQ3LS43Mi0xLjY5LS44MS0uMjMtLjA4LS4zOS0uMTItLjU2LjEyLS4xNy4yNS0uNjQuODEtLjc4Ljk3LS4xNC4xNy0uMjkuMTktLjU0LjA2LS4yNS0uMTItMS4wNS0uMzktMS45OS0xLjIzLS43NC0uNjYtMS4yMy0xLjQ3LTEuMzgtMS43Mi0uMTQtLjI1LS4wMi0uMzguMTEtLjUxLjExLS4xMS4yNS0uMjkuMzctLjQzcy4xNy0uMjUuMjUtLjQxYy4wOC0uMTcuMDQtLjMxLS4wMi0uNDNzLS41Ni0xLjM0LS43Ni0xLjg0Yy0uMi0uNDgtLjQxLS40Mi0uNTYtLjQzaC0uNDhjLS4xNyAwLS40My4wNi0uNjYuMzEtLjIyLjI1LS44Ni44NS0uODYgMi4wNyAwIDEuMjIuODkgMi40IDEuMDEgMi41Ni4xMi4xNyAxLjc1IDIuNjcgNC4yMyAzLjc0LjU5LjI2IDEuMDUuNDEgMS40MS41Mi41OS4xOSAxLjEzLjE2IDEuNTYuMS40OC0uMDcgMS40Ny0uNiAxLjY3LTEuMTguMjEtLjU4LjIxLTEuMDcuMTQtMS4xOHMtLjIyLS4xNi0uNDctLjI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXaGF0c2hvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjUuNjdzLjc0IDIuNjUuNzQgNC44YzAgMi4wNi0xLjM1IDMuNzMtMy40MSAzLjczLTIuMDcgMC0zLjYzLTEuNjctMy42My0zLjczbC4wMy0uMzZDNS4yMSA3LjUxIDQgMTAuNjIgNCAxNGMwIDQuNDIgMy41OCA4IDggOHM4LTMuNTggOC04QzIwIDguNjEgMTcuNDEgMy44IDEzLjUuNjd6TTExLjcxIDE5Yy0xLjc4IDAtMy4yMi0xLjQtMy4yMi0zLjE0IDAtMS42MiAxLjA1LTIuNzYgMi44MS0zLjEyIDEuNzctLjM2IDMuNi0xLjIxIDQuNjItMi41OC4zOSAxLjI5LjU5IDIuNjUuNTkgNC4wNCAwIDIuNjUtMi4xNSA0LjgtNC44IDQuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV29tYW4yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuOTQgOC4zMUMxMy42MiA3LjUyIDEyLjg1IDcgMTIgN3MtMS42Mi41Mi0xLjk0IDEuMzFMNyAxNmgzLjV2Nmgzdi02SDE3bC0zLjA2LTcuNjl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI0XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdvbWFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuOTQgOC4zMUMxMy42MiA3LjUyIDEyLjg1IDcgMTIgN3MtMS42Mi41Mi0xLjk0IDEuMzFMNyAxNmgzdjZoNHYtNmgzbC0zLjA2LTcuNjl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI0XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdvcmtzcGFjZVByZW1pdW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjY4IDEzLjY5IDEyIDExLjkzbDIuMzEgMS43Ni0uODgtMi44NUwxNS43NSA5aC0yLjg0TDEyIDYuMTkgMTEuMDkgOUg4LjI1bDIuMzEgMS44NC0uODggMi44NXpNMjAgMTBjMC00LjQyLTMuNTgtOC04LThzLTggMy41OC04IDhjMCAyLjAzLjc2IDMuODcgMiA1LjI4VjIzbDYtMiA2IDJ2LTcuNzJBNy45NiA3Ljk2IDAgMCAwIDIwIDEwem0tOC02YzMuMzEgMCA2IDIuNjkgNiA2cy0yLjY5IDYtNiA2LTYtMi42OS02LTYgMi42OS02IDYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2hlY2tCb3hPdXRsaW5lQmxhbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA1djE0SDVWNWgxNG0wLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDaGVja0JveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJ6bS05IDE0LTUtNSAxLjQxLTEuNDFMMTAgMTQuMTdsNy41OS03LjU5TDE5IDhsLTkgOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW5kZXRlcm1pbmF0ZUNoZWNrQm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS0yIDEwSDd2LTJoMTB2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmFkaW9CdXR0b25DaGVja2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bTAtNUM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJhZGlvQnV0dG9uVW5jaGVja2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN0YXJCb3JkZXJQdXJwbGU1MDAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDguODkuOTQgMy4xMWgyLjgybC0yLjI3IDEuNjIuOTMgMy4wMUwxMiAxNC43OWwtMi40MiAxLjg0LjkzLTMuMDFMOC4yNCAxMmgyLjgyTDEyIDguODlNMTIgMmwtMi40MiA4SDJsNi4xNyA0LjQxTDUuODMgMjIgMTIgMTcuMzEgMTguMTggMjJsLTIuMzUtNy41OUwyMiAxMGgtNy41OEwxMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdGFyQm9yZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgOS4yNC03LjE5LS42MkwxMiAyIDkuMTkgOC42MyAyIDkuMjRsNS40NiA0LjczTDUuODIgMjEgMTIgMTcuMjcgMTguMTggMjFsLTEuNjMtNy4wM0wyMiA5LjI0ek0xMiAxNS40bC0zLjc2IDIuMjcgMS00LjI4LTMuMzItMi44OCA0LjM4LS4zOEwxMiA2LjFsMS43MSA0LjA0IDQuMzguMzgtMy4zMiAyLjg4IDEgNC4yOEwxMiAxNS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdGFySGFsZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyIDkuMjQtNy4xOS0uNjJMMTIgMiA5LjE5IDguNjMgMiA5LjI0bDUuNDYgNC43M0w1LjgyIDIxIDEyIDE3LjI3IDE4LjE4IDIxbC0xLjYzLTcuMDNMMjIgOS4yNHpNMTIgMTUuNFY2LjFsMS43MSA0LjA0IDQuMzguMzgtMy4zMiAyLjg4IDEgNC4yOEwxMiAxNS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdGFyT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgOS4yNC03LjE5LS42MkwxMiAyIDkuMTkgOC42MyAyIDkuMjRsNS40NiA0LjczTDUuODIgMjEgMTIgMTcuMjcgMTguMTggMjFsLTEuNjMtNy4wM0wyMiA5LjI0ek0xMiAxNS40bC0zLjc2IDIuMjcgMS00LjI4LTMuMzItMi44OCA0LjM4LS4zOEwxMiA2LjFsMS43MSA0LjA0IDQuMzguMzgtMy4zMiAyLjg4IDEgNC4yOEwxMiAxNS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdGFyUHVycGxlNTAwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiA4Ljg5Ljk0IDMuMTFoMi44MmwtMi4yNyAxLjYyLjkzIDMuMDFMMTIgMTQuNzlsLTIuNDIgMS44NC45My0zLjAxTDguMjQgMTJoMi44MkwxMiA4Ljg5TTEyIDJsLTIuNDIgOEgybDYuMTcgNC40MUw1LjgzIDIyIDEyIDE3LjMxIDE4LjE4IDIybC0yLjM1LTcuNTlMMjIgMTBoLTcuNThMMTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNy4yNyAxOC4xOCAyMWwtMS42NC03LjAzTDIyIDkuMjRsLTcuMTktLjYxTDEyIDIgOS4xOSA4LjYzIDIgOS4yNGw1LjQ2IDQuNzNMNS44MiAyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVG9nZ2xlT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgN0g3Yy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1aDEwYzIuNzYgMCA1LTIuMjQgNS01cy0yLjI0LTUtNS01ek03IDE1Yy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zIDMgMS4zNCAzIDMtMS4zNCAzLTMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVG9nZ2xlT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA3SDdjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDVoMTBjMi43NiAwIDUtMi4yNCA1LTVzLTIuMjQtNS01LTV6bTAgOGMtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtMyAzIDEuMzQgMyAzLTEuMzQgMy0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZhY2VVbmxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjI1IDEzYTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDB6TTE1IDExLjc1YTEuMjUgMS4yNSAwIDEgMCAwIDIuNSAxLjI1IDEuMjUgMCAwIDAgMC0yLjV6bTcgLjI1YzAgNS41Mi00LjQ4IDEwLTEwIDEwUzIgMTcuNTIgMiAxMiA2LjQ4IDIgMTIgMnMxMCA0LjQ4IDEwIDEwek0xMC42NiA0LjEyQzEyLjA2IDYuNDQgMTQuNiA4IDE3LjUgOGMuNDYgMCAuOTEtLjA1IDEuMzQtLjEyQzE3LjQ0IDUuNTYgMTQuOSA0IDEyIDRjLS40NiAwLS45MS4wNS0xLjM0LjEyek00LjQyIDkuNDdhOC4wNDYgOC4wNDYgMCAwIDAgMy42Ni00LjQ0IDguMDQ2IDguMDQ2IDAgMCAwLTMuNjYgNC40NHpNMjAgMTJjMC0uNzgtLjEyLTEuNTMtLjMzLTIuMjQtLjcuMTUtMS40Mi4yNC0yLjE3LjI0YTEwIDEwIDAgMCAxLTcuNzYtMy42OUExMC4wMTYgMTAuMDE2IDAgMCAxIDQgMTEuODZjLjAxLjA0IDAgLjA5IDAgLjE0IDAgNC40MSAzLjU5IDggOCA4czgtMy41OSA4LTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdHRlcnkyMCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxN3YzLjY3QzcgMjEuNCA3LjYgMjIgOC4zMyAyMmg3LjMzYy43NCAwIDEuMzQtLjYgMS4zNC0xLjMzVjE3SDd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTcgNS4zM0MxNyA0LjYgMTYuNCA0IDE1LjY3IDRIMTRWMmgtNHYySDguMzNDNy42IDQgNyA0LjYgNyA1LjMzVjE3aDEwVjUuMzN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdHRlcnkzMCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0xNyA1LjMzQzE3IDQuNiAxNi40IDQgMTUuNjcgNEgxNFYyaC00djJIOC4zM0M3LjYgNCA3IDQuNiA3IDUuMzNWMTVoMTBWNS4zM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxNXY1LjY3QzcgMjEuNCA3LjYgMjIgOC4zMyAyMmg3LjMzYy43NCAwIDEuMzQtLjYgMS4zNC0xLjMzVjE1SDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdHRlcnk1MCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0xNyA1LjMzQzE3IDQuNiAxNi40IDQgMTUuNjcgNEgxNFYyaC00djJIOC4zM0M3LjYgNCA3IDQuNiA3IDUuMzNWMTNoMTBWNS4zM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxM3Y3LjY3QzcgMjEuNCA3LjYgMjIgOC4zMyAyMmg3LjMzYy43NCAwIDEuMzQtLjYgMS4zNC0xLjMzVjEzSDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdHRlcnk2MCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0xNyA1LjMzQzE3IDQuNiAxNi40IDQgMTUuNjcgNEgxNFYyaC00djJIOC4zM0M3LjYgNCA3IDQuNiA3IDUuMzNWMTFoMTBWNS4zM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxMXY5LjY3QzcgMjEuNCA3LjYgMjIgOC4zMyAyMmg3LjMzYy43NCAwIDEuMzQtLjYgMS4zNC0xLjMzVjExSDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdHRlcnk4MCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0xNyA1LjMzQzE3IDQuNiAxNi40IDQgMTUuNjcgNEgxNFYyaC00djJIOC4zM0M3LjYgNCA3IDQuNiA3IDUuMzNWOWgxMFY1LjMzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDl2MTEuNjdDNyAyMS40IDcuNiAyMiA4LjMzIDIyaDcuMzNjLjc0IDAgMS4zNC0uNiAxLjM0LTEuMzNWOUg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYXR0ZXJ5OTAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTcgNS4zM0MxNyA0LjYgMTYuNCA0IDE1LjY3IDRIMTRWMmgtNHYySDguMzNDNy42IDQgNyA0LjYgNyA1LjMzVjhoMTBWNS4zM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA4djEyLjY3QzcgMjEuNCA3LjYgMjIgOC4zMyAyMmg3LjMzYy43NCAwIDEuMzQtLjYgMS4zNC0xLjMzVjhIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmF0dGVyeUNoYXJnaW5nMjAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDIwdi0zSDd2My42N0M3IDIxLjQgNy42IDIyIDguMzMgMjJoNy4zM2MuNzQgMCAxLjM0LS42IDEuMzQtMS4zM1YxN2gtNC40TDExIDIwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTE1LjY3IDRIMTRWMmgtNHYySDguMzNDNy42IDQgNyA0LjYgNyA1LjMzVjE3aDR2LTIuNUg5TDEzIDd2NS41aDJMMTIuNiAxN0gxN1Y1LjMzQzE3IDQuNiAxNi40IDQgMTUuNjcgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmF0dGVyeUNoYXJnaW5nMzAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTUuNjcgNEgxNFYyaC00djJIOC4zM0M3LjYgNCA3IDQuNiA3IDUuMzN2OS4xN2gyTDEzIDd2NS41aDJsLTEuMDcgMkgxN1Y1LjMzQzE3IDQuNiAxNi40IDQgMTUuNjcgNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMjB2LTUuNUg3djYuMTdDNyAyMS40IDcuNiAyMiA4LjMzIDIyaDcuMzNjLjc0IDAgMS4zNC0uNiAxLjM0LTEuMzNWMTQuNWgtMy4wN0wxMSAyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmF0dGVyeUNoYXJnaW5nNTAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjQ3IDEzLjUgMTEgMjB2LTUuNUg5bC41My0xSDd2Ny4xN0M3IDIxLjQgNy42IDIyIDguMzMgMjJoNy4zM2MuNzQgMCAxLjM0LS42IDEuMzQtMS4zM1YxMy41aC0yLjUzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTE1LjY3IDRIMTRWMmgtNHYySDguMzNDNy42IDQgNyA0LjYgNyA1LjMzdjguMTdoMi41M0wxMyA3djUuNWgybC0uNTMgMUgxN1Y1LjMzQzE3IDQuNiAxNi40IDQgMTUuNjcgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmF0dGVyeUNoYXJnaW5nNjAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTUuNjcgNEgxNFYyaC00djJIOC4zM0M3LjYgNCA3IDQuNiA3IDUuMzNWMTFoMy44N0wxMyA3djRoNFY1LjMzQzE3IDQuNiAxNi40IDQgMTUuNjcgNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTIuNWgyTDExIDIwdi01LjVIOWwxLjg3LTMuNUg3djkuNjdDNyAyMS40IDcuNiAyMiA4LjMzIDIyaDcuMzNjLjc0IDAgMS4zNC0uNiAxLjM0LTEuMzNWMTFoLTR2MS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYXR0ZXJ5Q2hhcmdpbmc4MCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0xNS42NyA0SDE0VjJoLTR2Mkg4LjMzQzcuNiA0IDcgNC42IDcgNS4zM1Y5aDQuOTNMMTMgN3YyaDRWNS4zM0MxNyA0LjYgMTYuNCA0IDE1LjY3IDR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDEyLjVoMkwxMSAyMHYtNS41SDlMMTEuOTMgOUg3djExLjY3QzcgMjEuNCA3LjYgMjIgOC4zMyAyMmg3LjMzYy43NCAwIDEuMzQtLjYgMS4zNC0xLjMzVjloLTR2My41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYXR0ZXJ5Q2hhcmdpbmc5MCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0xNS42NyA0SDE0VjJoLTR2Mkg4LjMzQzcuNiA0IDcgNC42IDcgNS4zM1Y4aDUuNDdMMTMgN3YxaDRWNS4zM0MxNyA0LjYgMTYuNCA0IDE1LjY3IDR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDEyLjVoMkwxMSAyMHYtNS41SDlMMTIuNDcgOEg3djEyLjY3QzcgMjEuNCA3LjYgMjIgOC4zMyAyMmg3LjMzYy43NCAwIDEuMzQtLjYgMS4zNC0xLjMzVjhoLTR2NC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxDZWxsdWxhcjFCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMiAyMmgyMFYyTDIgMjJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEyIDIgMjJoMTBWMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbENlbGx1bGFyMkJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0yIDIyaDIwVjJMMiAyMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTAgMiAyMmgxMlYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsQ2VsbHVsYXIzQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTIgMjJoMjBWMkwyIDIyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA3IDIgMjJoMTVWN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsQ2VsbHVsYXJDb25uZWN0ZWROb0ludGVybmV0MUJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0yMiA4VjJMMiAyMmgxNlY4aDR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDEwdjhoMnYtOGgtMnptLTggMTJWMTJMMiAyMmgxMHptOCAwaDJ2LTJoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsQ2VsbHVsYXJDb25uZWN0ZWROb0ludGVybmV0MkJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0yMiA4VjJMMiAyMmgxNlY4aDR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDIyVjEwTDIgMjJoMTJ6bTYtMTJ2OGgydi04aC0yem0wIDEyaDJ2LTJoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsQ2VsbHVsYXJDb25uZWN0ZWROb0ludGVybmV0M0JhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0yMiA4VjJMMiAyMmgxNlY4aDR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDIyVjZMMiAyMmgxNnptMi0xMnY4aDJ2LThoLTJ6bTAgMTJoMnYtMmgtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxXaWZpMUJhckxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTUuNSAxNC41YzAtMi44IDIuMi01IDUtNSAuMzYgMCAuNzEuMDQgMS4wNS4xMUwyMy42NCA3Yy0uNDUtLjM0LTQuOTMtNC0xMS42NC00QzUuMjggMyAuODEgNi42Ni4zNiA3TDEyIDIxLjVsMy41LTQuMzZWMTQuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSAxNC41YzAtLjIzLjA0LS40Ni4wNy0uNjgtLjkyLS40My0yLjE0LS44Mi0zLjU3LS44Mi0zIDAtNS4xIDEuNy01LjMgMS45bDUuMyA2LjYgMy41LTQuMzZWMTQuNXpNMjMgMTZ2LTEuNWMwLTEuNC0xLjEtMi41LTIuNS0yLjVTMTggMTMuMSAxOCAxNC41VjE2Yy0uNSAwLTEgLjUtMSAxdjRjMCAuNS41IDEgMSAxaDVjLjUgMCAxLS41IDEtMXYtNGMwLS41LS41LTEtMS0xem0tMSAwaC0zdi0xLjVjMC0uOC43LTEuNSAxLjUtMS41czEuNS43IDEuNSAxLjVWMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbFdpZmkxQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTEyLjAxIDIxLjQ5IDIzLjY0IDdjLS40NS0uMzQtNC45My00LTExLjY0LTRDNS4yOCAzIC44MSA2LjY2LjM2IDdsMTEuNjMgMTQuNDkuMDEuMDEuMDEtLjAxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjY3IDE0Ljg2IDEyIDIxLjQ5di4wMWwuMDEtLjAxIDUuMzMtNi42M0MxNy4wNiAxNC42NSAxNS4wMyAxMyAxMiAxM3MtNS4wNiAxLjY1LTUuMzMgMS44NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsV2lmaTJCYXJMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTE1LjUgMTQuNWMwLTIuOCAyLjItNSA1LTUgLjM2IDAgLjcxLjA0IDEuMDUuMTFMMjMuNjQgN2MtLjQ1LS4zNC00LjkzLTQtMTEuNjQtNEM1LjI4IDMgLjgxIDYuNjYuMzYgN0wxMiAyMS41bDMuNS00LjM2VjE0LjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgMTQuNWMwLTEuMzQuNTEtMi41MyAxLjM0LTMuNDJDMTUuNjIgMTAuNTEgMTMuOTggMTAgMTIgMTBjLTQuMSAwLTYuOCAyLjItNy4yIDIuNWw3LjIgOSAzLjUtNC4zOFYxNC41ek0yMyAxNnYtMS41YzAtMS40LTEuMS0yLjUtMi41LTIuNVMxOCAxMy4xIDE4IDE0LjVWMTZjLS41IDAtMSAuNS0xIDF2NGMwIC41LjUgMSAxIDFoNWMuNSAwIDEtLjUgMS0xdi00YzAtLjUtLjUtMS0xLTF6bS0xIDBoLTN2LTEuNWMwLS44LjctMS41IDEuNS0xLjVzMS41LjcgMS41IDEuNVYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsV2lmaTJCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMjMuNjQgN2MtLjQ1LS4zNC00LjkzLTQtMTEuNjQtNEM1LjI4IDMgLjgxIDYuNjYuMzYgN0wxMiAyMS41IDIzLjY0IDd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNzkgMTIuNTIgMTIgMjEuNWw3LjIxLTguOTlDMTguODUgMTIuMjQgMTYuMSAxMCAxMiAxMHMtNi44NSAyLjI0LTcuMjEgMi41MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsV2lmaTNCYXJMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTE1LjUgMTQuNWMwLTIuOCAyLjItNSA1LTUgLjM2IDAgLjcxLjA0IDEuMDUuMTFMMjMuNjQgN2MtLjQ1LS4zNC00LjkzLTQtMTEuNjQtNEM1LjI4IDMgLjgxIDYuNjYuMzYgN0wxMiAyMS41bDMuNS00LjM2VjE0LjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzIDE2di0xLjVjMC0xLjQtMS4xLTIuNS0yLjUtMi41UzE4IDEzLjEgMTggMTQuNVYxNmMtLjUgMC0xIC41LTEgMXY0YzAgLjUuNSAxIDEgMWg1Yy41IDAgMS0uNSAxLTF2LTRjMC0uNS0uNS0xLTEtMXptLTEgMGgtM3YtMS41YzAtLjguNy0xLjUgMS41LTEuNXMxLjUuNyAxLjUgMS41VjE2em0tNi41LTEuNWE0LjkyIDQuOTIgMCAwIDEgMy4yNy00LjY4QzE3LjI5IDguOTggMTQuOTQgOCAxMiA4Yy00LjgxIDAtOC4wNCAyLjYyLTguNDcgMi45NUwxMiAyMS41bDMuNS00LjM2VjE0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbFdpZmkzQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTIzLjY0IDdjLS40NS0uMzQtNC45My00LTExLjY0LTRDNS4yOCAzIC44MSA2LjY2LjM2IDdMMTIgMjEuNSAyMy42NCA3elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUzIDEwLjk1IDEyIDIxLjVsOC40Ny0xMC41NUMyMC4wNCAxMC42MiAxNi44MSA4IDEyIDhzLTguMDQgMi42Mi04LjQ3IDIuOTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbFdpZmlDb25uZWN0ZWROb0ludGVybmV0MCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0yNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OEwxMiAyMXYtOWg4Ljk5TDI0IDguOTh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5LjU5IDE0LTIuMDkgMi4wOS0uMy0uM0wxNS40MSAxNCAxNCAxNS40MWwxLjc5IDEuNzkuMy4zTDE0IDE5LjU5IDE1LjQxIDIxbDIuMDktMi4wOEwxOS41OSAyMSAyMSAxOS41OWwtMi4wOC0yLjA5TDIxIDE1LjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxXaWZpQ29ubmVjdGVkTm9JbnRlcm5ldDEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTIgMTJoOC45OUwyNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OGw2LjM1IDYuMzZBNy45MzIgNy45MzIgMCAwIDEgMTIgMTN2LTF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIxdi04Yy0yLjIxIDAtNC4yLjg5LTUuNjUgMi4zNEwxMiAyMXptOS01LjU5TDE5LjU5IDE0bC0yLjA5IDIuMDlMMTUuNDEgMTQgMTQgMTUuNDFsMi4wOSAyLjA5TDE0IDE5LjU5IDE1LjQxIDIxbDIuMDktMi4wOEwxOS41OSAyMSAyMSAxOS41OWwtMi4wOC0yLjA5TDIxIDE1LjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxXaWZpQ29ubmVjdGVkTm9JbnRlcm5ldDIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTguMzEgMTJoMi42N0wyNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OGw0LjIzIDQuMjRBMTAuOTYgMTAuOTYgMCAwIDEgMTIgMTBjMi4zNSAwIDQuNTIuNzQgNi4zMSAyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMGMtMy4wMyAwLTUuNzggMS4yMy03Ljc3IDMuMjJMMTIgMjF2LTloNi4zMmMtMS44LTEuMjYtMy45Ny0yLTYuMzItMnptOSA1LjQxTDE5LjU5IDE0bC0yLjA5IDIuMDlMMTUuNDEgMTQgMTQgMTUuNDFsMi4wOSAyLjA5TDE0IDE5LjU5IDE1LjQxIDIxbDIuMDktMi4wOEwxOS41OSAyMSAyMSAxOS41OWwtMi4wOC0yLjA5TDIxIDE1LjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxXaWZpQ29ubmVjdGVkTm9JbnRlcm5ldDMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMjEuMTggMTEuOCAyNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OGwyLjgyIDIuODJDNS4xNyA5LjQ1IDguNDEgOCAxMiA4czYuODMgMS40NSA5LjE4IDMuOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuMTggMTEuOEMxOC44MyA5LjQ1IDE1LjU5IDggMTIgOHMtNi44MyAxLjQ1LTkuMTggMy44TDEyIDIxdi05aDguOTlsLjE5LS4yek0xOS41OSAxNGwtMi4wOSAyLjA5TDE1LjQxIDE0IDE0IDE1LjQxbDIuMDkgMi4wOUwxNCAxOS41OSAxNS40MSAyMWwyLjA5LTIuMDhMMTkuNTkgMjEgMjEgMTkuNTlsLTIuMDgtMi4wOUwyMSAxNS40MSAxOS41OSAxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsV2lmaVN0YXR1c2JhcjFCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTcuNjUgMTUuMzQgMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThsNi4zNSA2LjM2QzcuOCAxMy44OSA5Ljc5IDEzIDEyIDEzczQuMi44OSA1LjY1IDIuMzR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjY1IDE1LjM0QzE2LjIgMTMuODkgMTQuMjEgMTMgMTIgMTNzLTQuMi44OS01LjY1IDIuMzRMMTIgMjFsNS42NS01LjY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxXaWZpU3RhdHVzYmFyMkJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0xOS43NyAxMy4yMiAyNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OGw0LjIzIDQuMjRDNi4yMiAxMS4yMyA4Ljk3IDEwIDEyIDEwczUuNzggMS4yMyA3Ljc3IDMuMjJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5Ljc3IDEzLjIyQzE3Ljc4IDExLjIzIDE1LjAzIDEwIDEyIDEwcy01Ljc4IDEuMjMtNy43NyAzLjIyTDEyIDIxbDcuNzctNy43OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsV2lmaVN0YXR1c2JhcjNCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMjEuMTggMTEuOCAyNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OGwyLjgyIDIuODJDNS4xNyA5LjQ1IDguNDEgOCAxMiA4czYuODMgMS40NSA5LjE4IDMuOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuMTggMTEuOEMxOC44MyA5LjQ1IDE1LjU5IDggMTIgOHMtNi44MyAxLjQ1LTkuMTggMy44TDEyIDIxbDkuMTgtOS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxXaWZpU3RhdHVzYmFyQ29ubmVjdGVkTm9JbnRlcm5ldDEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTcgMTQuNzZWOGg1LjkyQzE5Ljk3IDUuNTEgMTYuMTYgNCAxMiA0IDcuMzEgNCAzLjA3IDUuOSAwIDguOThsNi4zNSA2LjM2QTcuOTUgNy45NSAwIDAgMSAxMiAxM2MxLjg5IDAgMy42My42NiA1IDEuNzZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMzUgMTUuMzQgMTIgMjFsNS01LjAxdi0xLjIzQTcuOTYzIDcuOTYzIDAgMCAwIDEyIDEzYy0yLjIxIDAtNC4yLjg5LTUuNjUgMi4zNHpNMTkgMThoMnYyaC0yek0xOSAxMGgydjZoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbFdpZmlTdGF0dXNiYXJDb25uZWN0ZWROb0ludGVybmV0MiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0xNyAxMS4yMVY4aDUuOTJDMTkuOTcgNS41MSAxNi4xNiA0IDEyIDQgNy4zMSA0IDMuMDcgNS45IDAgOC45OGw0LjIzIDQuMjRBMTAuOTYgMTAuOTYgMCAwIDEgMTcgMTEuMjF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuMjMgMTMuMjIgMTIgMjFsNS01LjAxdi00Ljc4YTEwLjk2IDEwLjk2IDAgMCAwLTEyLjc3IDIuMDF6TTE5IDE4aDJ2MmgtMnpNMTkgMTBoMnY2aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxXaWZpU3RhdHVzYmFyQ29ubmVjdGVkTm9JbnRlcm5ldDMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTcgOVY4aDUuOTJDMTkuOTcgNS41MSAxNi4xNiA0IDEyIDQgNy4zMSA0IDMuMDcgNS45IDAgOC45OGwyLjgyIDIuODJBMTIuOTMgMTIuOTMgMCAwIDEgMTIgOGMxLjc3IDAgMy40Ni4zNiA1IDF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuODIgMTEuOCAxMiAyMWw1LTUuMDFWOWMtMS41NC0uNjQtMy4yMy0xLTUtMS0zLjU5IDAtNi44MyAxLjQ1LTkuMTggMy44ek0xOSAxOGgydjJoLTJ6TTE5IDEwaDJ2NmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsV2lmaVN0YXR1c2JhckNvbm5lY3RlZE5vSW50ZXJuZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDE4aDJ2MmgtMnpNMTkgMTBoMnY2aC0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA4aDUuOTJDMTkuOTcgNS41MSAxNi4xNiA0IDEyIDQgNy4zMSA0IDMuMDcgNS45IDAgOC45OEwxMiAyMWw1LTUuMDFWOHpcIixcIm9wYWNpdHlcIjpcIi4zXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbFdpZmlTdGF0dXNiYXJOb3RDb25uZWN0ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjUyIDE1LjE2Yy40MS0uNzMgMS4xOC0xLjE2IDEuNjMtMS44LjQ4LS42OC4yMS0xLjk0LTEuMTQtMS45NC0uODggMC0xLjMyLjY3LTEuNSAxLjIzbC0xLjM3LS41N0MxNi41MSAxMC45NiAxNy41MiAxMCAxOSAxMGMxLjIzIDAgMi4wOC41NiAyLjUxIDEuMjYuMzcuNi41OCAxLjczLjAxIDIuNTctLjYzLjkzLTEuMjMgMS4yMS0xLjU2IDEuODEtLjEzLjI0LS4xOC40LS4xOCAxLjE4aC0xLjUyYzAtLjQxLS4wNy0xLjA4LjI2LTEuNjZ6bS0uNTcgMy43OWMwLS41OS40Ny0xLjA0IDEuMDUtMS4wNC41OSAwIDEuMDQuNDUgMS4wNCAxLjA0IDAgLjU4LS40NCAxLjA1LTEuMDQgMS4wNS0uNTggMC0xLjA1LS40Ny0xLjA1LTEuMDV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTQgMTNjMC0yLjc2IDIuMjQtNSA1LTUgMS42MyAwIDMuMDcuNzkgMy45OCAyTDI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4TDEyIDIxbDQuMDEtNC4wMkMxNC44IDE2LjA3IDE0IDE0LjYzIDE0IDEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXaWZpQ2FsbGluZzEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTYuNDkgNC41YzEuNzkgMCAzLjQyLjczIDQuNTkgMS45MWwxLjA2LTEuMDZBNy45NCA3Ljk0IDAgMCAwIDE2LjQ5IDNjLTIuMjEgMC00LjIxLjktNS42NiAyLjM0bDEuMDYgMS4wNmE2LjU0NSA2LjU0NSAwIDAgMSA0LjYtMS45elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTE2LjQ5IDZjLTEuMzggMC0yLjYzLjU2LTMuNTQgMS40NmwxLjA2IDEuMDZjLjYzLS42MyAxLjUxLTEuMDMgMi40Ny0xLjAzczEuODQuMzkgMi40NyAxLjAzbDEuMDYtMS4wNkE0Ljk0IDQuOTQgMCAwIDAgMTYuNDkgNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNDkgOWMtLjU1IDAtMS4wNS4yMi0xLjQxLjU5TDE2LjQ5IDExbDEuNDEtMS40MWMtLjM2LS4zNy0uODYtLjU5LTEuNDEtLjU5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxNy44M2MxLjI5LjU0IDIuNjMuODkgNCAxLjA3di0yLjIzbC0yLjM1LS40N0wxNSAxNy44M3pNNy4zMyA1SDUuMWMuMTggMS4zNy41MyAyLjcgMS4wNyA0TDcuOCA3LjM1IDcuMzMgNXpcIixcIm9wYWNpdHlcIjpcIi4zXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwLjIgMTQuODctMy42Ny0uNzNjLS41LS4xLS44My4yLS45LjI3bC0yLjUyIDIuNWMtMi41LTEuNDMtNC41Ny0zLjUtNi02bDIuNS0yLjUyYy4yMy0uMjQuMzMtLjU3LjI3LS45TDkuMTMgMy44Yy0uMDktLjQ2LS41LS44LS45OC0uOEg0Yy0uNTYgMC0xLjAzLjQ3LTEgMS4wMy4xNyAyLjg5IDEuMDUgNS42IDIuNDMgNy45NyAxLjU4IDIuNzMgMy44NSA0Ljk5IDYuNTcgNi41NyAyLjM3IDEuMzcgNS4wOCAyLjI2IDcuOTcgMi40My41NS4wMyAxLjAzLS40MyAxLjAzLTF2LTQuMTVjMC0uNDgtLjM0LS44OS0uOC0uOTh6TTUuMSA1aDIuMjNsLjQ3IDIuMzVMNi4xNyA5Yy0uNTQtMS4zLS45LTIuNjMtMS4wNy00ek0xOSAxOC45Yy0xLjM3LS4xOC0yLjctLjUzLTQtMS4wN2wxLjY1LTEuNjMgMi4zNS40N3YyLjIzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXaWZpQ2FsbGluZzIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTYuNDkgNC41YzEuNzkgMCAzLjQyLjczIDQuNTkgMS45MWwxLjA2LTEuMDZBNy45NCA3Ljk0IDAgMCAwIDE2LjQ5IDNjLTIuMjEgMC00LjIxLjktNS42NiAyLjM0bDEuMDYgMS4wNmE2LjU0NSA2LjU0NSAwIDAgMSA0LjYtMS45elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi40OSA2Yy0xLjM4IDAtMi42My41Ni0zLjU0IDEuNDZsMS4wNiAxLjA2Yy42My0uNjMgMS41MS0xLjAzIDIuNDctMS4wM3MxLjg0LjM5IDIuNDcgMS4wM2wxLjA2LTEuMDZBNC45NCA0Ljk0IDAgMCAwIDE2LjQ5IDZ6TTE2LjQ5IDljLS41NSAwLTEuMDUuMjItMS40MS41OUwxNi40OSAxMWwxLjQxLTEuNDFjLS4zNi0uMzctLjg2LS41OS0xLjQxLS41OXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTcuODNjMS4yOS41NCAyLjYzLjg5IDQgMS4wN3YtMi4yM2wtMi4zNS0uNDdMMTUgMTcuODN6TTcuMzMgNUg1LjFjLjE4IDEuMzcuNTMgMi43IDEuMDcgNEw3LjggNy4zNSA3LjMzIDV6XCIsXCJvcGFjaXR5XCI6XCIuM1wifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMC4yIDE0Ljg3LTMuNjctLjczYy0uNS0uMS0uODMuMi0uOS4yN2wtMi41MiAyLjVjLTIuNS0xLjQzLTQuNTctMy41LTYtNmwyLjUtMi41MmMuMjMtLjI0LjMzLS41Ny4yNy0uOUw5LjEzIDMuOGMtLjA5LS40Ni0uNS0uOC0uOTgtLjhINGMtLjU2IDAtMS4wMy40Ny0xIDEuMDMuMTcgMi44OSAxLjA1IDUuNiAyLjQzIDcuOTcgMS41OCAyLjczIDMuODUgNC45OSA2LjU3IDYuNTcgMi4zNyAxLjM3IDUuMDggMi4yNiA3Ljk3IDIuNDMuNTUuMDMgMS4wMy0uNDMgMS4wMy0xdi00LjE1YzAtLjQ4LS4zNC0uODktLjgtLjk4ek01LjEgNWgyLjIzbC40NyAyLjM1TDYuMTcgOWMtLjU0LTEuMy0uOS0yLjYzLTEuMDctNHpNMTkgMTguOWMtMS4zNy0uMTgtMi43LS41My00LTEuMDdsMS42NS0xLjYzIDIuMzUuNDd2Mi4yM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTEyMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTVINS41di00LjVINFY5aDN2NnptNi41LTEuNWgtM3YtMWgyYy41NSAwIDEtLjQ1IDEtMVYxMGMwLS41NS0uNDUtMS0xLTFIOXYxLjVoM3YxaC0yYy0uNTUgMC0xIC40NS0xIDFWMTVoNC41di0xLjV6bTYgLjV2LTRjMC0uNTUtLjQ1LTEtMS0xSDE1djEuNWgzdjFoLTJ2MWgydjFoLTNWMTVoMy41Yy41NSAwIDEtLjQ1IDEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTNkUm90YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNTMgMjEuNDhBMTAuNDg3IDEwLjQ4NyAwIDAgMSAxLjU2IDEzSC4wNmMuNTEgNi4xNiA1LjY2IDExIDExLjk1IDExbC42Ni0uMDMtMy44MS0zLjgxLTEuMzMgMS4zMnptLjg5LTYuNTJjLS4xOSAwLS4zNy0uMDMtLjUyLS4wOGExLjA3IDEuMDcgMCAwIDEtLjQtLjI0Yy0uMTEtLjEtLjItLjIyLS4yNi0uMzctLjA2LS4xNC0uMDktLjMtLjA5LS40N2gtMS4zYzAgLjM2LjA3LjY4LjIxLjk1LjE0LjI3LjMzLjUuNTYuNjkuMjQuMTguNTEuMzIuODIuNDEuMy4xLjYyLjE1Ljk2LjE1LjM3IDAgLjcyLS4wNSAxLjAzLS4xNS4zMi0uMS42LS4yNS44My0uNDRzLjQyLS40My41NS0uNzIuMi0uNjEuMi0uOTdjMC0uMTktLjAyLS4zOC0uMDctLjU2YTEuNjcgMS42NyAwIDAgMC0uMjMtLjUxYy0uMS0uMTYtLjI0LS4zLS40LS40My0uMTctLjEzLS4zNy0uMjMtLjYxLS4zMWEyLjA5OCAyLjA5OCAwIDAgMCAuODktLjc1Yy4xLS4xNS4xNy0uMy4yMi0uNDZzLjA3LS4zMi4wNy0uNDhjMC0uMzYtLjA2LS42OC0uMTgtLjk2cy0uMjktLjUxLS41MS0uNjljLS4yLS4xOS0uNDctLjMzLS43Ny0uNDNDOS4xMSA4LjA1IDguNzcgOCA4LjQgOGMtLjM2IDAtLjY5LjA1LTEgLjE2LS4zLjExLS41Ny4yNi0uNzkuNDUtLjIxLjE5LS4zOC40MS0uNTEuNjctLjEyLjI2LS4xOC41NC0uMTguODVoMS4zYzAtLjE3LjAzLS4zMi4wOS0uNDVzLjE0LS4yNS4yNS0uMzQuMjMtLjE3LjM4LS4yMi4zLS4wOC40OC0uMDhjLjQgMCAuNy4xLjg5LjMxLjE5LjIuMjkuNDkuMjkuODYgMCAuMTgtLjAzLjM0LS4wOC40OXMtLjE0LjI3LS4yNS4zN2MtLjExLjEtLjI1LjE4LS40MS4yNC0uMTYuMDYtLjM2LjA5LS41OC4wOWgtLjc3djEuMDNoLjc3Yy4yMiAwIC40Mi4wMi42LjA3cy4zMy4xMy40NS4yM2MuMTIuMTEuMjIuMjQuMjkuNHMuMS4zNS4xLjU3YzAgLjQxLS4xMi43Mi0uMzUuOTMtLjIzLjIzLS41NS4zMy0uOTUuMzN6bTguNTUtNS45MmMtLjMyLS4zMy0uNy0uNTktMS4xNC0uNzctLjQ0LS4xOC0uOTMtLjI3LTEuNDctLjI3SDEydjhoMi4zYy41NSAwIDEuMDYtLjA5IDEuNTEtLjI3cy44NC0uNDMgMS4xNi0uNzZjLjMyLS4zMy41Ny0uNzMuNzQtMS4xOS4xNy0uNDcuMjYtLjk5LjI2LTEuNTd2LS40YzAtLjU4LS4wOS0xLjEtLjI2LTEuNTdzLS40Mi0uODctLjc0LTEuMnptLS4zOSAzLjE2YzAgLjQyLS4wNS43OS0uMTQgMS4xMy0uMS4zMy0uMjQuNjItLjQzLjg1LS4xOS4yMy0uNDMuNDEtLjcxLjUzLS4yOS4xMi0uNjIuMTgtLjk5LjE4aC0uOTFWOS4xMmguOTdjLjcyIDAgMS4yNy4yMyAxLjY0LjY5LjM4LjQ2LjU3IDEuMTIuNTcgMS45OXYuNHpNMTIuMDEgMGwtLjY2LjAzIDMuODEgMy44MSAxLjMzLTEuMzNjMy4yNyAxLjU1IDUuNjEgNC43MiA1Ljk2IDguNDhoMS41QzIzLjQ1IDQuODQgMTguMyAwIDEyLjAxIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBYmMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMWgtMS41di0uNWgtMnYzaDJWMTNIMjF2MWMwIC41NS0uNDUgMS0xIDFoLTNjLS41NSAwLTEtLjQ1LTEtMXYtNGMwLS41NS40NS0xIDEtMWgzYy41NSAwIDEgLjQ1IDEgMXYxek04IDEwdjVINi41di0xLjVoLTJWMTVIM3YtNWMwLS41NS40NS0xIDEtMWgzYy41NSAwIDEgLjQ1IDEgMXptLTEuNS41aC0yVjEyaDJ2LTEuNXptNyAxLjVjLjU1IDAgMSAuNDUgMSAxdjFjMCAuNTUtLjQ1IDEtMSAxaC00VjloNGMuNTUgMCAxIC40NSAxIDF2MWMwIC41NS0uNDUgMS0xIDF6TTExIDEwLjV2Ljc1aDJ2LS43NWgtMnptMiAyLjI1aC0ydi43NWgydi0uNzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBY2Nlc3NpYmlsaXR5TmV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC41IDZjLTIuNjEuNy01LjY3IDEtOC41IDFzLTUuODktLjMtOC41LTFMMyA4YzEuODYuNSA0IC44MyA2IDF2MTNoMnYtNmgydjZoMlY5YzItLjE3IDQuMTQtLjUgNi0xbC0uNS0yek0xMiA2YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFjY2Vzc2liaWxpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0yem05IDdoLTZ2MTNoLTJ2LTZoLTJ2Nkg5VjlIM1Y3aDE4djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBY2Nlc3NpYmxlRm9yd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxOFwiLFwiY3lcIjpcIjQuNTRcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTdoLTJjMCAxLjY1LTEuMzUgMy0zIDNzLTMtMS4zNS0zLTMgMS4zNS0zIDMtM3YtMmMtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01em0zLTMuNWgtMS44NmwxLjY3LTMuNjdDMTguNDIgOC41IDE3LjQ0IDcgMTUuOTYgN2gtNS4yYy0uODEgMC0xLjU0LjQ3LTEuODcgMS4yTDguMjIgMTBsMS45Mi41My42NS0xLjUzSDEzbC0xLjgzIDQuMWMtLjYgMS4zMy4zOSAyLjkgMS44NSAyLjlIMTh2NWgydi01LjVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBY2Nlc3NpYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiNFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxM3YtMmMtMS41NC4wMi0zLjA5LS43NS00LjA3LTEuODNsLTEuMjktMS40M2MtLjE3LS4xOS0uMzgtLjM0LS42MS0uNDUtLjAxIDAtLjAxLS4wMS0uMDItLjAxSDEzYy0uMzUtLjItLjc1LS4zLTEuMTktLjI2QzEwLjc2IDcuMTEgMTAgOC4wNCAxMCA5LjA5VjE1YzAgMS4xLjkgMiAyIDJoNXY1aDJ2LTUuNWMwLTEuMS0uOS0yLTItMmgtM3YtMy40NWMxLjI5IDEuMDcgMy4yNSAxLjk0IDUgMS45NXptLTkgN2MtMS42NiAwLTMtMS4zNC0zLTMgMC0xLjMxLjg0LTIuNDEgMi0yLjgzVjEyLjFhNSA1IDAgMSAwIDUuOSA1LjloLTIuMDdjLS40MSAxLjE2LTEuNTIgMi0yLjgzIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBY2NvdW50QmFsYW5jZVdhbGxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNy4yOFY1YzAtMS4xLS45LTItMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi0yLjI4QTIgMiAwIDAgMCAyMiAxNVY5YTIgMiAwIDAgMC0xLTEuNzJ6TTIwIDl2NmgtN1Y5aDd6TTUgMTlWNWgxNHYyaC02Yy0xLjEgMC0yIC45LTIgMnY2YzAgMS4xLjkgMiAyIDJoNnYySDV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTZcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBY2NvdW50QmFsYW5jZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41IDEwaC0ydjdoMnYtN3ptNiAwaC0ydjdoMnYtN3ptOC41IDlIMnYyaDE5di0yem0tMi41LTloLTJ2N2gydi03em0tNy02Ljc0TDE2LjcxIDZINi4yOWw1LjIxLTIuNzRtMC0yLjI2TDIgNnYyaDE5VjZsLTkuNS01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWNjb3VudEJveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tMiAxNkg3di0uMjRDOC40MiAxNy42MiAxMC4xNiAxNyAxMiAxN3MzLjU4LjYyIDUgMS43NlYxOXptMi0xLjE0QzE3LjIgMTYuMDkgMTQuNzMgMTUgMTIgMTVzLTUuMiAxLjA5LTcgMi44NlY1aDE0djEyLjg2ek0xMiAxM2MxLjkzIDAgMy41LTEuNTcgMy41LTMuNVMxMy45MyA2IDEyIDYgOC41IDcuNTcgOC41IDkuNSAxMC4wNyAxMyAxMiAxM3ptMC01Yy44MyAwIDEuNS42NyAxLjUgMS41UzEyLjgzIDExIDEyIDExcy0xLjUtLjY3LTEuNS0xLjVTMTEuMTcgOCAxMiA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWNjb3VudENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTcuMzUgMTguNUM4LjY2IDE3LjU2IDEwLjI2IDE3IDEyIDE3czMuMzQuNTYgNC42NSAxLjVjLTEuMzEuOTQtMi45MSAxLjUtNC42NSAxLjVzLTMuMzQtLjU2LTQuNjUtMS41em0xMC43OS0xLjM4YTkuOTQ3IDkuOTQ3IDAgMCAwLTEyLjI4IDBBNy45NTcgNy45NTcgMCAwIDEgNCAxMmMwLTQuNDIgMy41OC04IDgtOHM4IDMuNTggOCA4YzAgMS45NS0uNyAzLjczLTEuODYgNS4xMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNmMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVTMTAuMDcgMTMgMTIgMTNzMy41LTEuNTcgMy41LTMuNVMxMy45MyA2IDEyIDZ6bTAgNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzExLjE3IDggMTIgOHMxLjUuNjcgMS41IDEuNVMxMi44MyAxMSAxMiAxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZENhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE4YzAgMS4xMS44OSAyIDIgMmgxMHYtMkg0di02aDE4VjZjMC0xLjExLS44OS0yLTItMnptMCA0SDRWNmgxNnYyem00IDl2MmgtM3YzaC0ydi0zaC0zdi0yaDN2LTNoMnYzaDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBZGRIb21lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgNS41IDYgNC41djFjLjcgMCAxLjM3LjEgMiAuMjlWOWwtOC02LTggNnYxMmg3LjY4Yy0uMy0uNjItLjUtMS4yOS0uNi0ySDZ2LTlsNi00LjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDEzYy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXptMyA1LjVoLTIuNVYyMWgtMXYtMi41SDE1di0xaDIuNVYxNWgxdjIuNUgyMXYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRkU2hvcHBpbmdDYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA5aDJWNmgzVjRoLTNWMWgtMnYzSDh2MmgzdjN6bS00IDljLTEuMSAwLTEuOTkuOS0xLjk5IDJTNS45IDIyIDcgMjJzMi0uOSAyLTItLjktMi0yLTJ6bTEwIDBjLTEuMSAwLTEuOTkuOS0xLjk5IDJzLjg5IDIgMS45OSAyIDItLjkgMi0yLS45LTItMi0yem0tOC45LTVoNy40NWMuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNsMy44Ni03LjAxTDE5LjQyIDRsLTMuODcgN0g4LjUzTDQuMjcgMkgxdjJoMmwzLjYgNy41OS0xLjM1IDIuNDRDNC41MiAxNS4zNyA1LjQ4IDE3IDcgMTdoMTJ2LTJIN2wxLjEtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZFRhc2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA1LjE4IDEwLjU5IDE2LjZsLTQuMjQtNC4yNCAxLjQxLTEuNDEgMi44MyAyLjgzIDEwLTEwTDIyIDUuMTh6TTEyIDIwYy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04YzEuNTcgMCAzLjA0LjQ2IDQuMjggMS4yNWwxLjQ1LTEuNDVBMTAuMDIgMTAuMDIgMCAwIDAgMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMGMxLjczIDAgMy4zNi0uNDQgNC43OC0xLjIybC0xLjUtMS41Yy0xIC40Ni0yLjExLjcyLTMuMjguNzJ6bTctNWgtM3YyaDN2M2gydi0zaDN2LTJoLTN2LTNoLTJ2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZFRvRHJpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxMWMuMTcgMCAuMzMuMDEuNDkuMDJMMTUgM0g5bDUuNjggOS44NEE1Ljk4NiA1Ljk4NiAwIDAgMSAxOSAxMXpNOC4xNSA0LjUyIDIgMTUuNSA1IDIxbDYuMzMtMTAuOTd6TTEzLjIgMTUuNUg5LjlMNi43MyAyMWg3LjgxQTUuOTMgNS45MyAwIDAgMSAxMyAxN2MwLS41Mi4wNy0xLjAyLjItMS41ek0yMCAxNnYtM2gtMnYzaC0zdjJoM3YzaDJ2LTNoM3YtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZGNoYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNXYyaC0zdjNoLTJWN2gtM1Y1aDNWMmgydjNoM3ptLTMgMTRINVY1aDZWM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi02aC0ydjZ6bS00LTZ2NGgydi00aC0yem0tNCA0aDJWOWgtMnY4em0tMiAwdi02SDd2NmgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRtaW5QYW5lbFNldHRpbmdzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImdcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE3XCIsXCJjeVwiOlwiMTUuNVwiLFwiclwiOlwiMS4xMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxNy41Yy0uNzMgMC0yLjE5LjM2LTIuMjQgMS4wOC41LjcxIDEuMzIgMS4xNyAyLjI0IDEuMTdzMS43NC0uNDYgMi4yNC0xLjE3Yy0uMDUtLjcyLTEuNTEtMS4wOC0yLjI0LTEuMDh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDExLjA5VjYuMjdMMTAuNSAzIDMgNi4yN3Y0LjkxYzAgNC41NCAzLjIgOC43OSA3LjUgOS44Mi41NS0uMTMgMS4wOC0uMzIgMS42LS41NUE1Ljk3MyA1Ljk3MyAwIDAgMCAxNyAyM2MzLjMxIDAgNi0yLjY5IDYtNiAwLTIuOTctMi4xNi01LjQzLTUtNS45MXpNMTEgMTdjMCAuNTYuMDggMS4xMS4yMyAxLjYyLS4yNC4xMS0uNDguMjItLjczLjMtMy4xNy0xLTUuNS00LjI0LTUuNS03Ljc0di0zLjZsNS41LTIuNCA1LjUgMi40djMuNTFjLTIuODQuNDgtNSAyLjk0LTUgNS45MXptNiA0Yy0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00IDQgMS43OSA0IDQtMS43OSA0LTQgNHpcIn0sXCJjaGlsZFwiOltdfV19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRzQ2xpY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS43MSAxNy45OUE1Ljk5MyA1Ljk5MyAwIDAgMSA2IDEyYzAtMy4zMSAyLjY5LTYgNi02IDMuMjIgMCA1Ljg0IDIuNTMgNS45OSA1LjcxbC0yLjEtLjYzYTMuOTk5IDMuOTk5IDAgMSAwLTQuODEgNC44MWwuNjMgMi4xek0yMiAxMmMwIC4zLS4wMS42LS4wNC45bC0xLjk3LS41OWMuMDEtLjEuMDEtLjIxLjAxLS4zMSAwLTQuNDItMy41OC04LTgtOHMtOCAzLjU4LTggOCAzLjU4IDggOCA4Yy4xIDAgLjIxIDAgLjMxLS4wMWwuNTkgMS45N2MtLjMuMDMtLjYuMDQtLjkuMDQtNS41MiAwLTEwLTQuNDgtMTAtMTBTNi40OCAyIDEyIDJzMTAgNC40OCAxMCAxMHptLTMuNzcgNC4yNkwyMiAxNWwtMTAtMyAzIDEwIDEuMjYtMy43NyA0LjI3IDQuMjcgMS45OC0xLjk4LTQuMjgtNC4yNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFsYXJtQWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNy4zMzcgMS44MSA0LjYwNyAzLjg0NS0xLjI4IDEuNTM1LTQuNjEtMy44NDN6bS0xMC42NzQgMCAxLjI4MiAxLjUzNkwzLjMzNyA3LjE5bC0xLjI4LTEuNTM2ek0xMiA0YTkgOSAwIDEgMCAuMDAxIDE4LjAwMUE5IDkgMCAwIDAgMTIgNHptMCAxNmMtMy44NiAwLTctMy4xNC03LTdzMy4xNC03IDctNyA3IDMuMTQgNyA3LTMuMTQgNy03IDd6bTEtMTFoLTJ2M0g4djJoM3YzaDJ2LTNoM3YtMmgtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFsYXJtT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4wNCA2LjI5QzEwLjY2IDYuMTEgMTEuMzIgNiAxMiA2YzMuODYgMCA3IDMuMTQgNyA3IDAgLjY4LS4xMSAxLjM0LS4yOSAxLjk2bDEuNTYgMS41NmMuNDctMS4wOC43My0yLjI3LjczLTMuNTJBOSA5IDAgMCAwIDguNDcgNC43MmwxLjU3IDEuNTd6bTcuMjk3LTQuNDggNC42MDcgMy44NDUtMS4yOCAxLjUzNS00LjYxLTMuODQzek0zLjAyIDIuMSAxLjYxIDMuNTFsMS4zNyAxLjM3LS45Mi43NyAxLjI4IDEuNTQgMS4wNi0uODguOC44QTguOTY0IDguOTY0IDAgMCAwIDMgMTNhOSA5IDAgMCAwIDkgOWMyLjI1IDAgNC4zMS0uODMgNS44OS0yLjJsMi4xIDIuMSAxLjQxLTEuNDFMMy4wMiAyLjF6TTEyIDIwYy0zLjg2IDAtNy0zLjE0LTctNyAwLTEuNy42MS0zLjI2IDEuNjItNC40N2w5Ljg1IDkuODVBNi45NTYgNi45NTYgMCAwIDEgMTIgMjB6TTcuNDggMy43M2wuNDYtLjM4LTEuMjgtMS41NC0uNi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWxhcm1PbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNTQgMTQuNTMgOC40MSAxMi40bC0xLjA2IDEuMDYgMy4xOCAzLjE4IDYtNi0xLjA2LTEuMDZ6bTYuNzk3LTEyLjcyIDQuNjA3IDMuODQ1LTEuMjggMS41MzUtNC42MS0zLjg0M3ptLTEwLjY3NCAwIDEuMjgyIDEuNTM2TDMuMzM3IDcuMTlsLTEuMjgtMS41MzZ6TTEyIDRhOSA5IDAgMSAwIC4wMDEgMTguMDAxQTkgOSAwIDAgMCAxMiA0em0wIDE2Yy0zLjg2IDAtNy0zLjE0LTctN3MzLjE0LTcgNy03IDcgMy4xNCA3IDctMy4xNCA3LTcgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFsYXJtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi41IDhIMTF2Nmw0Ljc1IDIuODUuNzUtMS4yMy00LTIuMzd6bTQuODM3LTYuMTkgNC42MDcgMy44NDUtMS4yOCAxLjUzNS00LjYxLTMuODQzem0tMTAuNjc0IDAgMS4yODIgMS41MzZMMy4zMzcgNy4xOWwtMS4yOC0xLjUzNnpNMTIgNGE5IDkgMCAxIDAgLjAwMSAxOC4wMDFBOSA5IDAgMCAwIDEyIDR6bTAgMTZjLTMuODYgMC03LTMuMTQtNy03czMuMTQtNyA3LTcgNyAzLjE0IDcgNy0zLjE0IDctNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWxsSW5ib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2N2MwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTUgMTBoMy4xM2MuMjEuNzguNjcgMS40NyAxLjI3IDJINXYtMnptMTQgMmgtNC40Yy42LS41MyAxLjA2LTEuMjIgMS4yNy0ySDE5djJ6bTAtNGgtNXYxYzAgMS4wNy0uOTMgMi0yIDJzLTItLjkzLTItMlY4SDVWNWgxNHYzem0tMiA3aC0zdjFjMCAuNDctLjE5LjktLjQ4IDEuMjUtLjM3LjQ1LS45Mi43NS0xLjUyLjc1cy0xLjE1LS4zLTEuNTItLjc1Yy0uMjktLjM1LS40OC0uNzgtLjQ4LTEuMjV2LTFIM3Y0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTRoLTR6TTUgMTdoMy4xM2MuMDIuMDkuMDYuMTcuMDkuMjUuMjQuNjguNjUgMS4yOCAxLjE4IDEuNzVINXYtMnptMTQgMmgtNC40Yy41NC0uNDcuOTUtMS4wNyAxLjE4LTEuNzUuMDMtLjA4LjA3LS4xNi4wOS0uMjVIMTl2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFsbE91dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA0djRsNC00em0xMiAwIDQgNFY0em00IDE2di00bC00IDR6TTQgMjBoNGwtNC00em0xNS04YzAtMy44Ny0zLjEzLTctNy03cy03IDMuMTMtNyA3IDMuMTMgNyA3IDcgNy0zLjEzIDctN3ptLTcgNWMtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNSA1IDIuMjQgNSA1LTIuMjQgNS01IDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBbmFseXRpY3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTJoMnY1SDd6TTE1IDdoMnYxMGgtMnpNMTEgMTRoMnYzaC0yek0xMSAxMGgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBbmNob3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNyAxNSAxLjU1IDEuNTVjLS45NiAxLjY5LTMuMzMgMy4wNC01LjU1IDMuMzdWMTFoM1Y5aC0zVjcuODJDMTQuMTYgNy40IDE1IDYuMyAxNSA1YzAtMS42NS0xLjM1LTMtMy0zUzkgMy4zNSA5IDVjMCAxLjMuODQgMi40IDIgMi44MlY5SDh2MmgzdjguOTJjLTIuMjItLjMzLTQuNTktMS42OC01LjU1LTMuMzdMNyAxNWwtNC0zdjNjMCAzLjg4IDQuOTIgNyA5IDdzOS0zLjEyIDktN3YtM2wtNCAzek0xMiA0Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBbmRyb2lkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNy42IDkuNDggMS44NC0zLjE4Yy4xNi0uMzEuMDQtLjY5LS4yNi0uODVhLjYzNy42MzcgMCAwIDAtLjgzLjIybC0xLjg4IDMuMjRhMTEuNDYzIDExLjQ2MyAwIDAgMC04Ljk0IDBMNS42NSA1LjY3YS42NDMuNjQzIDAgMCAwLS44Ny0uMmMtLjI4LjE4LS4zNy41NC0uMjIuODNMNi40IDkuNDhBMTAuNzggMTAuNzggMCAwIDAgMSAxOGgyMmExMC43OCAxMC43OCAwIDAgMC01LjQtOC41MnpNNyAxNS4yNWExLjI1IDEuMjUgMCAxIDEgMC0yLjUgMS4yNSAxLjI1IDAgMCAxIDAgMi41em0xMCAwYTEuMjUgMS4yNSAwIDEgMSAwLTIuNSAxLjI1IDEuMjUgMCAwIDEgMCAyLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBbm5vdW5jZW1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MThsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTRINS4xN0w0IDE3LjE3VjRoMTZ2MTJ6TTExIDVoMnY2aC0yem0wIDhoMnYyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXBpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQgMTItMiAyLTItMiAyLTIgMiAyem0tMi02IDIuMTIgMi4xMiAyLjUtMi41TDEyIDEgNy4zOCA1LjYybDIuNSAyLjVMMTIgNnptLTYgNiAyLjEyLTIuMTItMi41LTIuNUwxIDEybDQuNjIgNC42MiAyLjUtMi41TDYgMTJ6bTEyIDAtMi4xMiAyLjEyIDIuNSAyLjVMMjMgMTJsLTQuNjItNC42Mi0yLjUgMi41TDE4IDEyem0tNiA2LTIuMTItMi4xMi0yLjUgMi41TDEyIDIzbDQuNjItNC42Mi0yLjUtMi41TDEyIDE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXBwQmxvY2tpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA4Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptLTIuNSA0QTIuNSAyLjUgMCAwIDEgMTggOS41Yy40MiAwIC44LjExIDEuMTUuMjlsLTMuMzYgMy4zNmMtLjE4LS4zNS0uMjktLjczLS4yOS0xLjE1em0yLjUgMi41Yy0uNDIgMC0uOC0uMTEtMS4xNS0uMjlsMy4zNi0zLjM2Yy4xOC4zNS4yOS43My4yOSAxLjE1YTIuNSAyLjUgMCAwIDEtMi41IDIuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMThIN1Y2aDEwdjFoMlYzYzAtMS4xLS45LTItMi0ySDdjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJ2LTRoLTJ2MXpNNyAzaDEwdjFIN1Yzem0xMCAxOEg3di0xaDEwdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcHBTaG9ydGN1dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDE4SDdWNmgxMHYxaDJWM2MwLTEuMS0uOS0yLTItMkg3Yy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0ydi00aC0ydjF6TTcgM2gxMHYxSDdWM3ptMTAgMThIN3YtMWgxMHYxek0yMC4zOCA5LjYyIDIxIDExbC42Mi0xLjM4TDIzIDlsLTEuMzgtLjYyTDIxIDdsLS42MiAxLjM4TDE5IDl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2IDgtMS4yNSAyLjc1TDEyIDEybDIuNzUgMS4yNUwxNiAxNmwxLjI1LTIuNzVMMjAgMTJsLTIuNzUtMS4yNXpNMjEgMTNsLS42MiAxLjM4TDE5IDE1bDEuMzguNjJMMjEgMTdsLjYyLTEuMzhMMjMgMTVsLTEuMzgtLjYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXJyb3dDaXJjbGVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNGM0LjQxIDAgOCAzLjU5IDggOHMtMy41OSA4LTggOC04LTMuNTktOC04IDMuNTktOCA4LThtMC0yQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xIDEwVjhoLTJ2NEg4bDQgNCA0LTRoLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcnJvd0NpcmNsZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDEyYzAgNS41MiA0LjQ4IDEwIDEwIDEwczEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyIDIgNi40OCAyIDEyem0xOCAwYzAgNC40Mi0zLjU4IDgtOCA4cy04LTMuNTgtOC04IDMuNTgtOCA4LTggOCAzLjU4IDggOHpNOCAxMmw0LTQgMS40MSAxLjQxTDExLjgzIDExSDE2djJoLTQuMTdsMS41OSAxLjU5TDEyIDE2bC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcnJvd0NpcmNsZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTJjMC01LjUyLTQuNDgtMTAtMTAtMTBTMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwek00IDEyYzAtNC40MiAzLjU4LTggOC04czggMy41OCA4IDgtMy41OCA4LTggOC04LTMuNTgtOC04em0xMiAwLTQgNC0xLjQxLTEuNDFMMTIuMTcgMTNIOHYtMmg0LjE3bC0xLjU5LTEuNTlMMTIgOGw0IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcnJvd0NpcmNsZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjBjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4bTAgMmM1LjUyIDAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMHptLTEtMTB2NGgydi00aDNsLTQtNC00IDRoM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFycm93T3V0d2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgNnYyaDguNTlMNSAxNy41OSA2LjQxIDE5IDE2IDkuNDFWMThoMlY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXJyb3dSaWdodEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuMDEgMTFINHYyaDEyLjAxdjNMMjAgMTJsLTMuOTktNHYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXJ0aWNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDV2MTRINVY1aDE0bTAtMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDE3SDd2LTJoN3Yyem0zLTRIN3YtMmgxMHYyem0wLTRIN1Y3aDEwdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBc3BlY3RSYXRpbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTJoLTJ2M2gtM3YyaDV2LTV6TTcgOWgzVjdINXY1aDJWOXptMTQtNkgzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTYuMDFIM1Y0Ljk5aDE4djE0LjAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXNzZXNzbWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0ek03IDEwaDJ2N0g3em00LTNoMnYxMGgtMnptNCA2aDJ2NGgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFzc2lnbm1lbnRJbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxcy0yLjQuODQtMi44MiAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTctLjI1Yy4yMiAwIC40MS4xLjU1LjI1LjEyLjEzLjIuMzEuMi41IDAgLjQxLS4zNC43NS0uNzUuNzVzLS43NS0uMzQtLjc1LS43NWMwLS4xOS4wOC0uMzcuMi0uNS4xNC0uMTUuMzMtLjI1LjU1LS4yNXpNMTkgMTlINVY1aDE0djE0ek0xMiA2Yy0xLjY1IDAtMyAxLjM1LTMgM3MxLjM1IDMgMyAzIDMtMS4zNSAzLTMtMS4zNS0zLTMtM3ptMCA0Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bS02IDYuNDdWMThoMTJ2LTEuNTNjMC0yLjUtMy45Ny0zLjU4LTYtMy41OHMtNiAxLjA3LTYgMy41OHpNOC4zMSAxNmMuNjktLjU2IDIuMzgtMS4xMiAzLjY5LTEuMTJzMy4wMS41NiAzLjY5IDEuMTJIOC4zMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFzc2lnbm1lbnRMYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxNWgydjJoLTJ6bTAtOGgydjZoLTJ6bTgtNGgtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtLjE0IDAtLjI3LjAxLS40LjA0YTIuMDA4IDIuMDA4IDAgMCAwLTEuNDQgMS4xOWMtLjEuMjMtLjE2LjQ5LS4xNi43N3YxNGMwIC4yNy4wNi41NC4xNi43OHMuMjUuNDUuNDMuNjRjLjI3LjI3LjYyLjQ3IDEuMDEuNTUuMTMuMDIuMjYuMDMuNC4wM2gxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNy0uMjVjLjQxIDAgLjc1LjM0Ljc1Ljc1cy0uMzQuNzUtLjc1Ljc1LS43NS0uMzQtLjc1LS43NS4zNC0uNzUuNzUtLjc1ek0xOSAxOUg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBc3NpZ25tZW50UmV0dXJuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNGg0di00aC00VjdsLTUgNSA1IDV6bTctMTFoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxYy0xLjMgMC0yLjQuODQtMi44MiAySDVjLS4xNCAwLS4yNy4wMS0uNC4wNGEyLjAwOCAyLjAwOCAwIDAgMC0xLjQ0IDEuMTljLS4xLjIzLS4xNi40OS0uMTYuNzd2MTRjMCAuMjcuMDYuNTQuMTYuNzhzLjI1LjQ1LjQzLjY0Yy4yNy4yNy42Mi40NyAxLjAxLjU1LjEzLjAyLjI2LjAzLjQuMDNoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTctLjI1Yy40MSAwIC43NS4zNC43NS43NXMtLjM0Ljc1LS43NS43NS0uNzUtLjM0LS43NS0uNzUuMzQtLjc1Ljc1LS43NXpNMTkgMTlINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXNzaWdubWVudFJldHVybmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMmgtM1Y4aC00djRIN2w1IDV6bTItOWgtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtLjE0IDAtLjI3LjAxLS40LjA0YTIuMDA4IDIuMDA4IDAgMCAwLTEuNDQgMS4xOWMtLjEuMjMtLjE2LjQ5LS4xNi43N3YxNGMwIC4yNy4wNi41NC4xNi43OHMuMjUuNDUuNDMuNjRjLjI3LjI3LjYyLjQ3IDEuMDEuNTUuMTMuMDIuMjYuMDMuNC4wM2gxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNy0uMjVjLjQxIDAgLjc1LjM0Ljc1Ljc1cy0uMzQuNzUtLjc1Ljc1LS43NS0uMzQtLjc1LS43NS4zNC0uNzUuNzUtLjc1ek0xOSAxOUg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBc3NpZ25tZW50VHVybmVkSW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4IDktMS40MS0xLjQyTDEwIDE0LjE3bC0yLjU5LTIuNThMNiAxM2w0IDR6bTEtNmgtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtLjE0IDAtLjI3LjAxLS40LjA0YTIuMDA4IDIuMDA4IDAgMCAwLTEuNDQgMS4xOWMtLjEuMjMtLjE2LjQ5LS4xNi43N3YxNGMwIC4yNy4wNi41NC4xNi43OHMuMjUuNDUuNDMuNjRjLjI3LjI3LjYyLjQ3IDEuMDEuNTUuMTMuMDIuMjYuMDMuNC4wM2gxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNy0uMjVjLjQxIDAgLjc1LjM0Ljc1Ljc1cy0uMzQuNzUtLjc1Ljc1LS43NS0uMzQtLjc1LS43NS4zNC0uNzUuNzUtLjc1ek0xOSAxOUg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBc3NpZ25tZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE1aDd2Mkg3em0wLTRoMTB2Mkg3em0wLTRoMTB2Mkg3em0xMi00aC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMWMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0uMTQgMC0uMjcuMDEtLjQuMDRhMi4wMDggMi4wMDggMCAwIDAtMS40NCAxLjE5Yy0uMS4yMy0uMTYuNDktLjE2Ljc3djE0YzAgLjI3LjA2LjU0LjE2Ljc4cy4yNS40NS40My42NGMuMjcuMjcuNjIuNDcgMS4wMS41NS4xMy4wMi4yNi4wMy40LjAzaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03LS4yNWMuNDEgMCAuNzUuMzQuNzUuNzVzLS4zNC43NS0uNzUuNzUtLjc1LS4zNC0uNzUtLjc1LjM0LS43NS43NS0uNzV6TTE5IDE5SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFzc3VyZWRXb3JrbG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTBoMnY3SDV6TTExIDEwaDJ2N2gtMnpNMjIgNiAxMiAxIDIgNnYyaDIwVjZ6TTYuNDcgNiAxMiAzLjI0IDE3LjUzIDZINi40N3pNMiAxOXYyaDEyLjRjLS4yMS0uNjQtLjMyLTEuMzEtLjM2LTJIMnpNMTkgMTIuMjZWMTBoLTJ2My4yNnpNMjAgMTRsLTQgMnYyLjU1YzAgMi41MiAxLjcxIDQuODggNCA1LjQ1IDIuMjktLjU3IDQtMi45MyA0LTUuNDVWMTZsLTQtMnptLS43MiA3LTIuMDMtMi4wMyAxLjA2LTEuMDYuOTcuOTcgMi40MS0yLjM4IDEuMDYgMS4wNkwxOS4yOCAyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUF1dG9yZW5ldyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNnYzbDQtNC00LTR2M2MtNC40MiAwLTggMy41OC04IDggMCAxLjU3LjQ2IDMuMDMgMS4yNCA0LjI2TDYuNyAxNC44QTUuODcgNS44NyAwIDAgMSA2IDEyYzAtMy4zMSAyLjY5LTYgNi02em02Ljc2IDEuNzRMMTcuMyA5LjJjLjQ0Ljg0LjcgMS43OS43IDIuOCAwIDMuMzEtMi42OSA2LTYgNnYtM2wtNCA0IDQgNHYtM2M0LjQyIDAgOC0zLjU4IDgtOCAwLTEuNTctLjQ2LTMuMDMtMS4yNC00LjI2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmFja3VwVGFibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2djE0SDZ2MmgxNGMxLjEgMCAyLS45IDItMlY2aC0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpNOSAxNkg0di01aDV2NXptNyAwaC01di01aDV2NXptMC03SDRWNGgxMnY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmFja3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS4zNSAxMC4wNEE3LjQ5IDcuNDkgMCAwIDAgMTIgNEM5LjExIDQgNi42IDUuNjQgNS4zNSA4LjA0QTUuOTk0IDUuOTk0IDAgMCAwIDAgMTRjMCAzLjMxIDIuNjkgNiA2IDZoMTNjMi43NiAwIDUtMi4yNCA1LTUgMC0yLjY0LTIuMDUtNC43OC00LjY1LTQuOTZ6TTE5IDE4SDZjLTIuMjEgMC00LTEuNzktNC00IDAtMi4wNSAxLjUzLTMuNzYgMy41Ni0zLjk3bDEuMDctLjExLjUtLjk1QTUuNDY5IDUuNDY5IDAgMCAxIDEyIDZjMi42MiAwIDQuODggMS44NiA1LjM5IDQuNDNsLjMgMS41IDEuNTMuMTFBMi45OCAyLjk4IDAgMCAxIDIyIDE1YzAgMS42NS0xLjM1IDMtMyAzek04IDEzaDIuNTV2M2gyLjl2LTNIMTZsLTQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJhbGFuY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA3LjgzYy44NS0uMyAxLjUzLS45OCAxLjgzLTEuODNIMThsLTMgN2MwIDEuNjYgMS41NyAzIDMuNSAzczMuNS0xLjM0IDMuNS0zbC0zLTdoMlY0aC02LjE3Yy0uNDEtMS4xNy0xLjUyLTItMi44My0ycy0yLjQyLjgzLTIuODMgMkgzdjJoMmwtMyA3YzAgMS42NiAxLjU3IDMgMy41IDNTOSAxNC42NiA5IDEzTDYgNmgzLjE3Yy4zLjg1Ljk4IDEuNTMgMS44MyAxLjgzVjE5SDJ2MmgyMHYtMmgtOVY3Ljgzek0yMC4zNyAxM2gtMy43NGwxLjg3LTQuMzZMMjAuMzcgMTN6bS0xMyAwSDMuNjNMNS41IDguNjQgNy4zNyAxM3pNMTIgNmMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmF0Y2hQcmVkaWN0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgOEg3Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjEwYzAtMS4xLS45LTItMi0yem0tNCAxMi41aC0yVjE5aDJ2MS41em0wLTIuNWgtMmMwLTEuNS0yLjUtMy0yLjUtNSAwLTEuOTMgMS41Ny0zLjUgMy41LTMuNXMzLjUgMS41NyAzLjUgMy41YzAgMi0yLjUgMy41LTIuNSA1em01LTExLjVINkM2IDUuNjcgNi42NyA1IDcuNSA1aDljLjgzIDAgMS41LjY3IDEuNSAxLjV6bS0xLTNIN0M3IDIuNjcgNy42NyAyIDguNSAyaDdjLjgzIDAgMS41LjY3IDEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCb29rT25saW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNEg3VjNoMTB2MXptMCAxN0g3di0xaDEwdjF6bTAtMjBIN2MtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yek03IDZoMTB2MTJIN1Y2em05IDVWOS4xNEMxNiA4LjUxIDE1LjU1IDggMTUgOEg5Yy0uNTUgMC0xIC41MS0xIDEuMTR2MS45NmMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMXYxLjc2YzAgLjYzLjQ1IDEuMTQgMSAxLjE0aDZjLjU1IDAgMS0uNTEgMS0xLjE0VjEzYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xem0tMy41IDMuNWgtMXYtMWgxdjF6bTAtMmgtMXYtMWgxdjF6bTAtMmgtMXYtMWgxdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCb29rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpNOSA0aDJ2NWwtMS0uNzVMOSA5VjR6bTkgMTZINlY0aDF2OWwzLTIuMjVMMTMgMTNWNGg1djE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQm9va21hcmtBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMXY2Ljk3bC01LTIuMTQtNSAyLjE0VjVoNlYzSDdjLTEuMSAwLTIgLjktMiAydjE2bDctMyA3IDNWMTFoLTJ6bTQtNGgtMnYyaC0yVjdoLTJWNWgyVjNoMnYyaDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJvb2ttYXJrQWRkZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMXY2Ljk3bC01LTIuMTQtNSAyLjE0VjVoNlYzSDdjLTEuMSAwLTIgLjktMiAydjE2bDctMyA3IDNWMTFoLTJ6bS44My0yTDE1IDYuMTdsMS40MS0xLjQxIDEuNDEgMS40MSAzLjU0LTMuNTQgMS40MSAxLjQxTDE3LjgzIDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCb29rbWFya0JvcmRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgM0g3Yy0xLjEgMC0yIC45LTIgMnYxNmw3LTMgNyAzVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTUtNS0yLjE4TDcgMThWNWgxMHYxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJvb2ttYXJrUmVtb3ZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTF2Ni45N2wtNS0yLjE0LTUgMi4xNFY1aDZWM0g3Yy0xLjEgMC0yIC45LTIgMnYxNmw3LTMgNyAzVjExaC0yem00LTRoLTZWNWg2djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCb29rbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgM0g3Yy0xLjEgMC0yIC45LTIgMnYxNmw3LTMgNyAzVjVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCb29rbWFya3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDd2MTIuOTdsLTQuMjEtMS44MS0uNzktLjM0LS43OS4zNEw1IDE5Ljk3VjdoMTBtNC02SDguOTlDNy44OSAxIDcgMS45IDcgM2gxMGMxLjEgMCAyIC45IDIgMnYxM2wyIDFWM2MwLTEuMS0uOS0yLTItMnptLTQgNEg1Yy0xLjEgMC0yIC45LTIgMnYxNmw3LTMgNyAzVjdjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCcm93c2VHYWxsZXJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAzYTkgOSAwIDEgMCAuMDAxIDE4LjAwMUE5IDkgMCAwIDAgOSAzem0wIDE2Yy0zLjg2IDAtNy0zLjE0LTctN3MzLjE0LTcgNy03IDcgMy4xNCA3IDctMy4xNCA3LTcgN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgN0g4djUuNDFsMy43OSAzLjggMS40Mi0xLjQyLTMuMjEtMy4yek0xNy45OSAzLjUydjIuMTZBNi45OSA2Ljk5IDAgMCAxIDIyIDEyYzAgMi43OS0xLjY0IDUuMi00LjAxIDYuMzJ2Mi4xNkMyMS40OCAxOS4yNCAyNCAxNS45MSAyNCAxMnMtMi41Mi03LjI0LTYuMDEtOC40OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJ1Z1JlcG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOGgtMi44MWE1Ljk4NSA1Ljk4NSAwIDAgMC0xLjgyLTEuOTZMMTcgNC40MSAxNS41OSAzbC0yLjE3IDIuMTdDMTIuOTYgNS4wNiAxMi40OSA1IDEyIDVzLS45Ni4wNi0xLjQxLjE3TDguNDEgMyA3IDQuNDFsMS42MiAxLjYzQzcuODggNi41NSA3LjI2IDcuMjIgNi44MSA4SDR2MmgyLjA5Yy0uMDUuMzMtLjA5LjY2LS4wOSAxdjFINHYyaDJ2MWMwIC4zNC4wNC42Ny4wOSAxSDR2MmgyLjgxYzEuMDQgMS43OSAyLjk3IDMgNS4xOSAzczQuMTUtMS4yMSA1LjE5LTNIMjB2LTJoLTIuMDljLjA1LS4zMy4wOS0uNjYuMDktMXYtMWgydi0yaC0ydi0xYzAtLjM0LS4wNC0uNjctLjA5LTFIMjBWOHptLTQgNHYzYzAgLjIyLS4wMy40Ny0uMDcuN2wtLjEuNjUtLjM3LjY1Yy0uNzIgMS4yNC0yLjA0IDItMy40NiAycy0yLjc0LS43Ny0zLjQ2LTJsLS4zNy0uNjQtLjEtLjY1QTQuMjcgNC4yNyAwIDAgMSA4IDE1di00YzAtLjIzLjAzLS40OC4wNy0uN2wuMS0uNjUuMzctLjY1Yy4zLS41Mi43Mi0uOTcgMS4yMS0xLjMxbC41Ny0uMzkuNzQtLjE4YTMuNzg3IDMuNzg3IDAgMCAxIDEuODkgMGwuNjguMTYuNjEuNDJjLjUuMzQuOTEuNzggMS4yMSAxLjMxbC4zOC42NS4xLjY1Yy4wNC4yMi4wNy40Ny4wNy42OXYxem0tNiAyaDR2MmgtNHptMC00aDR2MmgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJ1aWxkQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImdcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNDkgMTEuMzhjLjQzLTEuMjIuMTctMi42NC0uODEtMy42MmEzLjQ2OCAzLjQ2OCAwIDAgMC00LjEtLjU5bDIuMzUgMi4zNS0xLjQxIDEuNDEtMi4zNS0yLjM1Yy0uNzEgMS4zMi0uNTIgMi45OS41OSA0LjEuOTguOTggMi40IDEuMjQgMy42Mi44MWwzLjQxIDMuNDFjLjIuMi41MS4yLjcxIDBsMS40LTEuNGMuMi0uMi4yLS41MSAwLS43MWwtMy40MS0zLjQxelwifSxcImNoaWxkXCI6W119XX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCdWlsZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIuNjEgMTguOTktOS4wOC05LjA4Yy45My0yLjM0LjQ1LTUuMS0xLjQ0LTdDOS43OS42MSA2LjIxLjQgMy42NiAyLjI2TDcuNSA2LjExIDYuMDggNy41MiAyLjI1IDMuNjlDLjM5IDYuMjMuNiA5LjgyIDIuOSAxMi4xMWMxLjg2IDEuODYgNC41NyAyLjM1IDYuODkgMS40OGw5LjExIDkuMTFjLjM5LjM5IDEuMDIuMzkgMS40MSAwbDIuMy0yLjNjLjQtLjM4LjQtMS4wMSAwLTEuNDF6bS0zIDEuNi05LjQ2LTkuNDZjLS42MS40NS0xLjI5LjcyLTIgLjgyLTEuMzYuMi0yLjc5LS4yMS0zLjgzLTEuMjVDMy4zNyA5Ljc2IDIuOTMgOC41IDMgNy4yNmwzLjA5IDMuMDkgNC4yNC00LjI0LTMuMDktMy4wOWMxLjI0LS4wNyAyLjQ5LjM3IDMuNDQgMS4zMWE0LjQ2OSA0LjQ2OSAwIDAgMSAxLjI0IDMuOTYgNC4zNSA0LjM1IDAgMCAxLS44OCAxLjk2bDkuNDUgOS40NS0uODguODl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYWNoZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5IDgtNCA0aDNjMCAzLjMxLTIuNjkgNi02IDZhNS44NyA1Ljg3IDAgMCAxLTIuOC0uN2wtMS40NiAxLjQ2QTcuOTMgNy45MyAwIDAgMCAxMiAyMGM0LjQyIDAgOC0zLjU4IDgtOGgzbC00LTR6TTYgMTJjMC0zLjMxIDIuNjktNiA2LTYgMS4wMSAwIDEuOTcuMjUgMi44LjdsMS40Ni0xLjQ2QTcuOTMgNy45MyAwIDAgMCAxMiA0Yy00LjQyIDAtOCAzLjU4LTggOEgxbDQgNCA0LTRINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbGVuZGFyTW9udGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA0aC0xVjJoLTJ2Mkg4VjJINnYySDVjLTEuMTEgMC0xLjk5LjktMS45OSAyTDMgMjBhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE2SDVWMTBoMTR2MTB6bTAtMTJINVY2aDE0djJ6TTkgMTRIN3YtMmgydjJ6bTQgMGgtMnYtMmgydjJ6bTQgMGgtMnYtMmgydjJ6bS04IDRIN3YtMmgydjJ6bTQgMGgtMnYtMmgydjJ6bTQgMGgtMnYtMmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYWxlbmRhclRvZGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAzaC0xVjFoLTJ2Mkg3VjFINXYySDRjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxOEg0VjEwaDE2djExem0wLTEzSDRWNWgxNnYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FsZW5kYXJWaWV3RGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE3aDE4djJIM3ptMTYtNXYxSDV2LTFoMTRtMi0ySDN2NWgxOHYtNXpNMyA2aDE4djJIM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbGVuZGFyVmlld01vbnRoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNOCAxMUg0VjZoNHY1em02IDBoLTRWNmg0djV6bTYgMGgtNFY2aDR2NXpNOCAxOEg0di01aDR2NXptNiAwaC00di01aDR2NXptNiAwaC00di01aDR2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbGVuZGFyVmlld1dlZWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0tNyAyaDIuNXYxMkgxM1Y2em0tMiAxMkg4LjVWNkgxMXYxMnpNNCA2aDIuNXYxMkg0VjZ6bTE2IDEyaC0yLjVWNkgyMHYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbWVyYUVuaGFuY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDEwLS45NCAyLjA2TDkgMTNsMi4wNi45NEwxMiAxNmwuOTQtMi4wNkwxNSAxM2wtMi4wNi0uOTR6bTgtNWgtMy4xN0wxNSAzSDlMNy4xNyA1SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMnptMCAxNEg0VjdoNC4wNWwuNTktLjY1TDkuODggNWg0LjI0bDEuMjQgMS4zNS41OS42NUgyMHYxMnpNMTIgOGMtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bTAgOGMtMS42NSAwLTMtMS4zNS0zLTNzMS4zNS0zIDMtMyAzIDEuMzUgMyAzLTEuMzUgMy0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYW5jZWxTY2hlZHVsZVNlbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41IDljLS40MiAwLS44My4wNC0xLjI0LjExTDEuMDEgMyAxIDEwbDEwLjA2IDEuMzRjLS40Mi40NC0uNzguOTMtMS4wOSAxLjQ2TDEgMTRsLjAxIDcgOC4wNy0zLjQ2QzkuNTkgMjEuMTkgMTIuNzEgMjQgMTYuNSAyNGM0LjE0IDAgNy41LTMuMzYgNy41LTcuNVMyMC42NCA5IDE2LjUgOXpNMyA4LjI1bC4wMS0yLjIyIDcuNTEgMy4yMi03LjUyLTF6bTYuMSA3LjExTDMgMTcuOTd2LTIuMjJsNi4xNy0uODJjLS4wMy4xNC0uMDUuMjgtLjA3LjQzek0xNi41IDIyYy0zLjAzIDAtNS41LTIuNDctNS41LTUuNXMyLjQ3LTUuNSA1LjUtNS41IDUuNSAyLjQ3IDUuNSA1LjUtMi40NyA1LjUtNS41IDUuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTguMjcgMTQuMDMtMS43NyAxLjc2LTEuNzctMS43Ni0uNy43IDEuNzYgMS43Ny0xLjc2IDEuNzcuNy43IDEuNzctMS43NiAxLjc3IDEuNzYuNy0uNy0xLjc2LTEuNzcgMS43Ni0xLjc3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FyZEdpZnRjYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC0yLjE4Yy4xMS0uMzEuMTgtLjY1LjE4LTFhMi45OTYgMi45OTYgMCAwIDAtNS41LTEuNjVsLS41LjY3LS41LS42OEMxMC45NiAyLjU0IDEwLjA1IDIgOSAyIDcuMzQgMiA2IDMuMzQgNiA1YzAgLjM1LjA3LjY5LjE4IDFINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMTljMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWOGMwLTEuMTEtLjg5LTItMi0yem0tNS0yYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6TTkgNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0xMSAxNUg0di0yaDE2djJ6bTAtNUg0VjhoNS4wOEw3IDEwLjgzIDguNjIgMTIgMTIgNy40bDMuMzggNC42TDE3IDEwLjgzIDE0LjkyIDhIMjB2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhcmRNZW1iZXJzaGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMTEgMC0yIC44OS0yIDJ2MTFjMCAxLjExLjg5IDIgMiAyaDR2NWw0LTIgNCAydi01aDRjMS4xMSAwIDItLjg5IDItMlY0YzAtMS4xMS0uODktMi0yLTJ6bTAgMTNINHYtMmgxNnYyem0wLTVINFY0aDE2djZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYXJkVHJhdmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC0zVjRjMC0xLjExLS44OS0yLTItMkg5Yy0xLjExIDAtMiAuODktMiAydjJINGMtMS4xMSAwLTIgLjg5LTIgMnYxMWMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY4YzAtMS4xMS0uODktMi0yLTJ6TTkgNGg2djJIOVY0em0xMSAxNUg0di0yaDE2djJ6bTAtNUg0VjhoM3YyaDJWOGg2djJoMlY4aDN2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNoYW5nZUhpc3RvcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDcuNzcgMTguMzkgMThINS42MUwxMiA3Ljc3TTEyIDQgMiAyMGgyMEwxMiA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2hlY2tDaXJjbGVPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptNC41OS0xMi40MkwxMCAxNC4xN2wtMi41OS0yLjU4TDYgMTNsNCA0IDgtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNoZWNrQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptNC41OS0xMi40MkwxMCAxNC4xN2wtMi41OS0yLjU4TDYgMTNsNCA0IDgtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNocm9tZVJlYWRlck1vZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDRIM2MtMS4xIDAtMiAuOS0yIDJ2MTNjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yek0zIDE5VjZoOHYxM0gzem0xOCAwaC04VjZoOHYxM3ptLTctOS41aDZWMTFoLTZ6bTAgMi41aDZ2MS41aC02em0wIDIuNWg2VjE2aC02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2lyY2xlTm90aWZpY2F0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTguNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVoLTNjMCAuODMuNjcgMS41IDEuNSAxLjV6TTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em00LTguNjFjMC0yLjExLTEuMDMtMy45Mi0zLTQuMzl2LS41YzAtLjU3LS40My0xLTEtMXMtMSAuNDMtMSAxVjdjLTEuOTcuNDctMyAyLjI3LTMgNC4zOVYxNEg3djJoMTB2LTJoLTF2LTIuNjF6TTE0IDE0aC00di0zYzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNsYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpNOSA0aDJ2NWwtMS0uNzVMOSA5VjR6bTkgMTZINlY0aDF2OWwzLTIuMjVMMTMgMTNWNGg1djE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2xvc2VGdWxsc2NyZWVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMy40MSAxNi43MSA4LjcgMjAgMTJoLThWNGwzLjI5IDMuMjlMMjAuNTkgMiAyMiAzLjQxek0zLjQxIDIybDUuMjktNS4yOUwxMiAyMHYtOEg0bDMuMjkgMy4yOUwyIDIwLjU5IDMuNDEgMjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb2RlT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkuMTcgMTItNC41OC00LjU5TDE2IDZsNiA2LTMuNTkgMy41OUwxNyAxNC4xNyAxOS4xNyAxMnpNMS4zOSA0LjIybDQuMTkgNC4xOUwyIDEybDYgNiAxLjQxLTEuNDFMNC44MyAxMiA3IDkuODNsMTIuNzggMTIuNzggMS40MS0xLjQxTDIuODEgMi44MSAxLjM5IDQuMjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjQgMTYuNiA0LjggMTJsNC42LTQuNkw4IDZsLTYgNiA2IDYgMS40LTEuNHptNS4yIDAgNC42LTQuNi00LjYtNC42TDE2IDZsNiA2LTYgNi0xLjQtMS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29tbWVudEJhbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxNFY2aC01djhsMi41LTEuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxOGw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNEg2bC0yIDJWNGgxNnYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbW1pdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjkgMTFhNSA1IDAgMCAwLTkuOCAwSDJ2Mmg1LjFhNSA1IDAgMCAwIDkuOCAwSDIydi0yaC01LjF6TTEyIDE1Yy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zIDMgMS4zNCAzIDMtMS4zNCAzLTMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbW11dGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRINUMzLjM0IDQgMiA1LjM0IDIgN3Y4YzAgMS42NiAxLjM0IDMgMyAzbC0xIDF2MWgxbDItMmgydi01SDRWNmg5djJoMlY3YzAtMS42Ni0xLjM0LTMtMy0zek01IDE0Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTE1LjU3LTQuMzRjLS4xNC0uNC0uNTItLjY2LS45Ny0uNjZoLTcuMTljLS40NiAwLS44My4yNi0uOTguNjZsLTEuNDIgNC4xMXY1LjUxYzAgLjM4LjMxLjcyLjY5LjcyaC42MmMuMzggMCAuNjgtLjM4LjY4LS43NlYxOGg4djEuMjRjMCAuMzguMzEuNzYuNjkuNzZoLjYxYy4zOCAwIC42OS0uMzQuNjktLjcybC4wMS0xLjM3di00LjE0bC0xLjQzLTQuMTF6bS04LjE2LjM0aDcuMTlsMS4wMyAzaC05LjI1bDEuMDMtM3pNMTIgMTZjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptOCAwYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb21wYXJlQXJyb3dzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjAxIDE0SDJ2Mmg3LjAxdjNMMTMgMTVsLTMuOTktNHYzem01Ljk4LTF2LTNIMjJWOGgtNy4wMVY1TDExIDlsMy45OSA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29tcHJlc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgOXYyaDE2VjlINHptMTItNS0xLjQxLTEuNDFMMTMgNC4xN1YxaC0ydjMuMTlMOS4zOSAyLjYxIDggNGw0IDQgNC00ek00IDE0aDE2di0ySDR2MnptNCA1IDEuMzkgMS4zOUwxMSAxOC44MVYyMmgydi0zLjE3bDEuNTkgMS41OUwxNiAxOWwtNC00LTQgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbnRhY3RQYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuMTcgNCAxOCA4LjgzVjIwSDZWNGg3LjE3TTE0IDJINmMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY4bC02LTZ6bS0yIDEyYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptNCAzLjQzYzAtLjgxLS40OC0xLjUzLTEuMjItMS44NWE2Ljk1IDYuOTUgMCAwIDAtNS41NiAwQTIuMDEgMi4wMSAwIDAgMCA4IDE3LjQzVjE4aDh2LS41N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbnRhY3RTdXBwb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAyMy41OXYtMy42Yy01LjAxLS4yNi05LTQuNDItOS05LjQ5QzIgNS4yNiA2LjI2IDEgMTEuNSAxUzIxIDUuMjYgMjEgMTAuNWMwIDQuOTUtMy40NCA5LjkzLTguNTcgMTIuNGwtMS40My42OXpNMTEuNSAzQzcuMzYgMyA0IDYuMzYgNCAxMC41UzcuMzYgMTggMTEuNSAxOEgxM3YyLjNjMy42NC0yLjMgNi02LjA4IDYtOS44QzE5IDYuMzYgMTUuNjQgMyAxMS41IDN6bS0xIDExLjVoMnYyaC0yem0yLTEuNWgtMmMwLTMuMjUgMy0zIDMtNSAwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDJoLTJjMC0yLjIxIDEuNzktNCA0LTRzNCAxLjc5IDQgNGMwIDIuNS0zIDIuNzUtMyA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29udGFjdGxlc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4xIDEwLjE4YTQuMzg0IDQuMzg0IDAgMCAxIDAgMy42NmwxLjM3LjYyYy4zNy0uODEuNTUtMS42NS41NC0yLjUtLjAxLS44NC0uMTktMS42NS0uNTQtMi40bC0xLjM3LjYyek0xMy4zMyA3LjMzYy43OCAxLjU3IDEuMTggMy4xNCAxLjE4IDQuNjQgMCAxLjUxLS40IDMuMDktMS4xOCA0LjY5bDEuMzUuNjZjLjg4LTEuODEgMS4zMy0zLjYxIDEuMzMtNS4zNSAwLTEuNzQtLjQ1LTMuNTMtMS4zMy01LjMxbC0xLjM1LjY3ek0xMC4yIDguNzJjLjUzIDEuMDcuOCAyLjIxLjggMy40IDAgMS4xNy0uMjYgMi4yMy0uNzggMy4xNWwxLjMuNzRjLjY1LTEuMTUuOTgtMi40NS45OC0zLjg5IDAtMS40Mi0uMzItMi43OS0uOTYtNC4wN2wtMS4zNC42N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvcHlyaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMDggMTAuODZjLjA1LS4zMy4xNi0uNjIuMy0uODdzLjM0LS40Ni41OS0uNjJjLjI0LS4xNS41NC0uMjIuOTEtLjIzLjIzLjAxLjQ0LjA1LjYzLjEzLjIuMDkuMzguMjEuNTIuMzZzLjI1LjMzLjM0LjUzLjEzLjQyLjE0LjY0aDEuNzljLS4wMi0uNDctLjExLS45LS4yOC0xLjI5cy0uNC0uNzMtLjctMS4wMS0uNjYtLjUtMS4wOC0uNjYtLjg4LS4yMy0xLjM5LS4yM2MtLjY1IDAtMS4yMi4xMS0xLjcuMzRzLS44OC41My0xLjIuOTItLjU2Ljg0LS43MSAxLjM2UzggMTEuMjkgOCAxMS44N3YuMjdjMCAuNTguMDggMS4xMi4yMyAxLjY0cy4zOS45Ny43MSAxLjM1LjcyLjY5IDEuMi45MWMuNDguMjIgMS4wNS4zNCAxLjcuMzQuNDcgMCAuOTEtLjA4IDEuMzItLjIzcy43Ny0uMzYgMS4wOC0uNjMuNTYtLjU4Ljc0LS45NC4yOS0uNzQuMy0xLjE1aC0xLjc5Yy0uMDEuMjEtLjA2LjQtLjE1LjU4cy0uMjEuMzMtLjM2LjQ2LS4zMi4yMy0uNTIuM2MtLjE5LjA3LS4zOS4wOS0uNi4xLS4zNi0uMDEtLjY2LS4wOC0uODktLjIzLS4yNS0uMTYtLjQ1LS4zNy0uNTktLjYycy0uMjUtLjU1LS4zLS44OC0uMDgtLjY3LS4wOC0xdi0uMjdjMC0uMzUuMDMtLjY4LjA4LTEuMDF6TTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ3JlZGl0Q2FyZE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuODMgNEgyMGMxLjExIDAgMiAuODkgMiAydjEyYzAgLjM0LS4wOC42Ni0uMjMuOTRMMjAgMTcuMTdWMTJoLTUuMTdsLTQtNEgyMFY2SDguODNsLTItMnptMTMuNjYgMTkuMzFMMTcuMTcgMjBINGMtMS4xMSAwLTItLjg5LTItMmwuMDEtMTJjMC0uMzQuMDgtLjY2LjIzLS45M0wuNjkgMy41MSAyLjEgMi4xbDE5LjggMTkuOC0xLjQxIDEuNDF6TTQgNi44M1Y4aDEuMTdMNCA2Ljgzek0xNS4xNyAxOGwtNi02SDR2NmgxMS4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNyZWRpdENhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMThjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWNmMwLTEuMTEtLjg5LTItMi0yem0wIDE0SDR2LTZoMTZ2NnptMC0xMEg0VjZoMTZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNSAxNHYtMUgxMXYuNWgydi0xaC0yLjVjLS41NSAwLTEtLjQ1LTEtMVYxMGMwLS41NS40NS0xIDEtMWgzYy41NSAwIDEgLjQ1IDEgMXYxSDEzdi0uNWgtMnYxaDIuNWMuNTUgMCAxIC40NSAxIDFWMTRjMCAuNTUtLjQ1IDEtMSAxaC0zYy0uNTUgMC0xLS40NS0xLTF6bTcuNSAxaDNjLjU1IDAgMS0uNDUgMS0xdi0xLjVjMC0uNTUtLjQ1LTEtMS0xaC0yLjV2LTFoMnYuNUgyMXYtMWMwLS41NS0uNDUtMS0xLTFoLTNjLS41NSAwLTEgLjQ1LTEgMXYxLjVjMCAuNTUuNDUgMSAxIDFoMi41djFoLTJWMTNIMTZ2MWMwIC41NS40NSAxIDEgMXptLTktNWMwLS41NS0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDFoM2MuNTUgMCAxLS40NSAxLTF2LTFINi41di41aC0ydi0zaDJ2LjVIOHYtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUN1cnJlbmN5RXhjaGFuZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi44OSAxMS4xYy0xLjc4LS41OS0yLjY0LS45Ni0yLjY0LTEuOSAwLTEuMDIgMS4xMS0xLjM5IDEuODEtMS4zOSAxLjMxIDAgMS43OS45OSAxLjkgMS4zNGwxLjU4LS42N2MtLjE1LS40NS0uODItMS45Mi0yLjU0LTIuMjRWNWgtMnYxLjI2Yy0yLjQ4LjU2LTIuNDkgMi44Ni0yLjQ5IDIuOTYgMCAyLjI3IDIuMjUgMi45MSAzLjM1IDMuMzEgMS41OC41NiAyLjI4IDEuMDcgMi4yOCAyLjAzIDAgMS4xMy0xLjA1IDEuNjEtMS45OCAxLjYxLTEuODIgMC0yLjM0LTEuODctMi40LTIuMDlsLTEuNjYuNjdjLjYzIDIuMTkgMi4yOCAyLjc4IDIuOSAyLjk2VjE5aDJ2LTEuMjRjLjQtLjA5IDIuOS0uNTkgMi45LTMuMjIgMC0xLjM5LS42MS0yLjYxLTMuMDEtMy40NHpNMyAyMUgxdi02aDZ2Mkg0LjUyYzEuNjEgMi40MSA0LjM2IDQgNy40OCA0YTkgOSAwIDAgMCA5LTloMmMwIDYuMDgtNC45MiAxMS0xMSAxMS0zLjcyIDAtNy4wMS0xLjg1LTktNC42N1YyMXptLTItOUMxIDUuOTIgNS45MiAxIDEyIDFjMy43MiAwIDcuMDEgMS44NSA5IDQuNjdWM2gydjZoLTZWN2gyLjQ4QzE3Ljg3IDQuNTkgMTUuMTIgMyAxMiAzYTkgOSAwIDAgMC05IDlIMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURhbmdlcm91cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNzMgM0g4LjI3TDMgOC4yN3Y3LjQ2TDguMjcgMjFoNy40NkwyMSAxNS43M1Y4LjI3TDE1LjczIDN6TTE5IDE0LjkgMTQuOSAxOUg5LjFMNSAxNC45VjkuMUw5LjEgNWg1LjhMMTkgOS4xdjUuOHptLTQuMTctNy4xNEwxMiAxMC41OSA5LjE3IDcuNzYgNy43NiA5LjE3IDEwLjU5IDEybC0yLjgzIDIuODMgMS40MSAxLjQxTDEyIDEzLjQxbDIuODMgMi44MyAxLjQxLTEuNDFMMTMuNDEgMTJsMi44My0yLjgzLTEuNDEtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURhc2hib2FyZEN1c3RvbWl6ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxMWg4VjNIM3Y4em0yLTZoNHY0SDVWNXpNMTMgM3Y4aDhWM2gtOHptNiA2aC00VjVoNHY0ek0zIDIxaDh2LThIM3Y4em0yLTZoNHY0SDV2LTR6TTE4IDEzaC0ydjNoLTN2MmgzdjNoMnYtM2gzdi0yaC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGFzaGJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA1djJoLTRWNWg0TTkgNXY2SDVWNWg0bTEwIDh2NmgtNHYtNmg0TTkgMTd2Mkg1di0yaDRNMjEgM2gtOHY2aDhWM3pNMTEgM0gzdjEwaDhWM3ptMTAgOGgtOHYxMGg4VjExem0tMTAgNEgzdjZoOHYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURhdGFFeHBsb3JhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTBoOGMxLjEgMCAyLS45IDItMnYtOGMwLTUuNTItNC40OC0xMC0xMC0xMHptMCAxOGMtMi44OSAwLTUuNDMtMS41NC02LjgzLTMuODRsMi45NS0yLjk1TDExLjQxIDE2IDE2IDExLjQyVjEzaDJWOGgtNXYyaDEuNThsLTMuMjggMy4yOEw4IDEwLjVsLTMuNjkgMy43QzQuMTEgMTMuNSA0IDEyLjc2IDQgMTJjMC00LjQxIDMuNTktOCA4LThzOCAzLjU5IDggOC0zLjU5IDgtOCA4em03LjUuNWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGF0YVRocmVzaG9sZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2aC0xLjczTDE5IDE3LjI3VjE5em0wLTNoLS44NWwtMyAzaC0xLjYybDMtM2gtMi4xMmwtMyAzSDkuOGwzLTNoLTIuMTJsLTMgM0g1Ljg0bDMtM0g2LjcyTDUgMTcuNzJWNWgxNHYxMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAuNjcgMTEgMiAyIDUuMDgtNS4wOS0xLjQxLTEuNDEtMy42NyAzLjY3LTItMi00LjQyIDQuNDJMNy42NiAxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURhdGVSYW5nZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxMWgydjJIN3YtMnptMTQtNXYxNGMwIDEuMS0uOSAyLTIgMkg1YTIgMiAwIDAgMS0yLTJsLjAxLTE0YzAtMS4xLjg4LTIgMS45OS0yaDFWMmgydjJoOFYyaDJ2MmgxYzEuMSAwIDIgLjkgMiAyek01IDhoMTRWNkg1djJ6bTE0IDEyVjEwSDV2MTBoMTR6bS00LTdoMnYtMmgtMnYyem0tNCAwaDJ2LTJoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURlbGV0ZUZvcmV2ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjEyIDEwLjQ3IDEyIDEyLjU5bC0yLjEzLTIuMTItMS40MSAxLjQxTDEwLjU5IDE0bC0yLjEyIDIuMTIgMS40MSAxLjQxTDEyIDE1LjQxbDIuMTIgMi4xMiAxLjQxLTEuNDFMMTMuNDEgMTRsMi4xMi0yLjEyek0xNS41IDRsLTEtMWgtNWwtMSAxSDV2MmgxNFY0ek02IDE5YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3SDZ2MTJ6TTggOWg4djEwSDhWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURlbGV0ZU91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTljMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjdINnYxMnpNOCA5aDh2MTBIOFY5em03LjUtNS0xLTFoLTVsLTEgMUg1djJoMTRWNGgtMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGVsZXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA5djEwSDhWOWg4bS0xLjUtNmgtNWwtMSAxSDV2MmgxNFY0aC0zLjVsLTEtMXpNMTggN0g2djEyYzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGVuc2l0eUxhcmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAzaDE4djJIM3pNMyAxOWgxOHYySDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEZW5zaXR5TWVkaXVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAzaDE4djJIM3pNMyAxOWgxOHYySDN6TTMgMTFoMTh2MkgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGVuc2l0eVNtYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAyaDE4djJIM3pNMyAyMGgxOHYySDN6TTMgMTRoMTh2Mkgzek0zIDhoMTh2MkgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGVzY3JpcHRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTZoOHYySDh6bTAtNGg4djJIOHptNi0xMEg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTQgMThINlY0aDd2NWg1djExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlzYWJsZWRCeURlZmF1bHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxOUg1VjVoMTR2MTR6TTMgM3YxOGgxOFYzSDN6bTE0IDEyLjU5TDE1LjU5IDE3IDEyIDEzLjQxIDguNDEgMTcgNyAxNS41OSAxMC41OSAxMiA3IDguNDEgOC40MSA3IDEyIDEwLjU5IDE1LjU5IDcgMTcgOC40MSAxMy40MSAxMiAxNyAxNS41OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURpc2FibGVkVmlzaWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDE1YzEuOTUgMCAzLjc2Ljk4IDQuNzUgMi41LS45OSAxLjUyLTIuOCAyLjUtNC43NSAyLjVzLTMuNzYtLjk4LTQuNzUtMi41Yy45OS0xLjUyIDIuOC0yLjUgNC43NS0yLjV6bTAtMmMtMy4xOCAwLTUuOSAxLjg3LTcgNC41IDEuMSAyLjYzIDMuODIgNC41IDcgNC41czUuOS0xLjg3IDctNC41Yy0xLjEtMi42My0zLjgyLTQuNS03LTQuNXptMCA2Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuMTcgMTYgMTcgMTZzMS41LjY3IDEuNSAxLjVTMTcuODMgMTkgMTcgMTl6bTQuOTktNi42NmMuMDEtLjExLjAxLS4yMy4wMS0uMzQgMC01LjUyLTQuNDgtMTAtMTAtMTBTMiA2LjQ4IDIgMTJjMCA1LjE3IDMuOTMgOS40MyA4Ljk2IDkuOTVhOS4zNDMgOS4zNDMgMCAwIDEtMi4zMi0yLjY4QTguMDEgOC4wMSAwIDAgMSA0IDEyYzAtMS44NS42My0zLjU1IDEuNjktNC45bDUuNjYgNS42NmMuNTYtLjQgMS4xNy0uNzMgMS44Mi0xTDcuMSA1LjY5QTcuOTAyIDcuOTAyIDAgMCAxIDEyIDRjNC4yNCAwIDcuNyAzLjI5IDcuOTggNy40NS43MS4yMiAxLjM5LjUyIDIuMDEuODl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaXNwbGF5U2V0dGluZ3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAzSDRjLTEuMTEgMC0yIC44OS0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg0djJoOHYtMmg0YzEuMSAwIDItLjkgMi0yVjVhMiAyIDAgMCAwLTItMnptMCAxNEg0VjVoMTZ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgOC4yNWg4djEuNUg2ek0xNi41IDkuNzVIMTh2LTEuNWgtMS41VjdIMTV2NGgxLjV6TTEwIDEyLjI1aDh2MS41aC04ek03LjUgMTVIOXYtNEg3LjV2MS4yNUg2djEuNWgxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDE1djRINXYtNGgxNG0xLTJINGMtLjU1IDAtMSAuNDUtMSAxdjZjMCAuNTUuNDUgMSAxIDFoMTZjLjU1IDAgMS0uNDUgMS0xdi02YzAtLjU1LS40NS0xLTEtMXpNNyAxOC41Yy0uODIgMC0xLjUtLjY3LTEuNS0xLjVzLjY4LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpNMTkgNXY0SDVWNWgxNG0xLTJINGMtLjU1IDAtMSAuNDUtMSAxdjZjMCAuNTUuNDUgMSAxIDFoMTZjLjU1IDAgMS0uNDUgMS0xVjRjMC0uNTUtLjQ1LTEtMS0xek03IDguNWMtLjgyIDAtMS41LS42Ny0xLjUtMS41UzYuMTggNS41IDcgNS41czEuNS42OCAxLjUgMS41UzcuODMgOC41IDcgOC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG9uZUFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTggNy0xLjQxLTEuNDEtNi4zNCA2LjM0IDEuNDEgMS40MUwxOCA3em00LjI0LTEuNDFMMTEuNjYgMTYuMTcgNy40OCAxMmwtMS40MSAxLjQxTDExLjY2IDE5bDEyLTEyLTEuNDItMS40MXpNLjQxIDEzLjQxIDYgMTlsMS40MS0xLjQxTDEuODMgMTIgLjQxIDEzLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG9uZU91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5Ljc3IDQuOTMgMS40IDEuNEw4LjQzIDE5LjA3bC01LjYtNS42IDEuNC0xLjQgNC4yIDQuMkwxOS43NyA0LjkzbTAtMi44M0w4LjQzIDEzLjQ0bC00LjItNC4yTDAgMTMuNDdsOC40MyA4LjQzTDI0IDYuMzMgMTkuNzcgMi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxNi4yIDQuOCAxMmwtMS40IDEuNEw5IDE5IDIxIDdsLTEuNC0xLjRMOSAxNi4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG9udXRMYXJnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgNS4wOEE3IDcgMCAwIDEgMTguOTIgMTFoMy4wM2MtLjQ3LTQuNzItNC4yMy04LjQ4LTguOTUtOC45NXYzLjAzek0xOC45MiAxM0E3IDcgMCAwIDEgMTMgMTguOTJ2My4wM2M0LjcyLS40NyA4LjQ4LTQuMjMgOC45NS04Ljk1aC0zLjAzek0xMSAxOC45MmMtMy4zOS0uNDktNi0zLjQtNi02LjkyczIuNjEtNi40MyA2LTYuOTJWMi4wNWMtNS4wNS41LTkgNC43Ni05IDkuOTUgMCA1LjE5IDMuOTUgOS40NSA5IDkuOTV2LTMuMDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEb251dFNtYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC44MiAxMWg3LjEzYy0uNDctNC43Mi00LjIzLTguNDgtOC45NS04Ljk1djcuMTNjLjg1LjMxIDEuNTEuOTcgMS44MiAxLjgyek0xNSA0LjU4QzE3IDUuNCAxOC42IDcgMTkuNDIgOWgtMy40M2MtLjI4LS4zNy0uNjItLjcxLS45OS0uOTlWNC41OHpNMiAxMmMwIDUuMTkgMy45NSA5LjQ1IDkgOS45NXYtNy4xM0M5Ljg0IDE0LjQgOSAxMy4zIDkgMTJjMC0xLjMuODQtMi40IDItMi44MlYyLjA1Yy01LjA1LjUtOSA0Ljc2LTkgOS45NXptNy03LjQydjMuNDRjLTEuMjMuOTItMiAyLjM5LTIgMy45OCAwIDEuNTkuNzcgMy4wNiAyIDMuOTl2My40NEM2LjA0IDE4LjI0IDQgMTUuMzUgNCAxMmMwLTMuMzUgMi4wNC02LjI0IDUtNy40MnptNCAxMC4yNHY3LjEzYzQuNzItLjQ3IDguNDgtNC4yMyA4Ljk1LTguOTVoLTcuMTNjLS4zMS44NS0uOTcgMS41MS0xLjgyIDEuODJ6bTIgMS4xN2MuMzctLjI4LjcxLS42MS45OS0uOTloMy40M0MxOC42IDE3IDE3IDE4LjYgMTUgMTkuNDJ2LTMuNDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEcmFnSW5kaWNhdG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxOGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgLjktMiAyLTIgMiAuOSAyIDJ6bS0yLThjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0wLTZjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem02IDRjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0wIDJjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0wIDZjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRHluYW1pY0Zvcm0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxMUg0Yy0xLjEgMC0yLS45LTItMlY2YzAtMS4xLjktMiAyLTJoOXY3ek00IDloN1Y2SDR2M3ptMTEgMTFINGMtMS4xIDAtMi0uOS0yLTJ2LTNjMC0xLjEuOS0yIDItMmgxMXY3ek00IDE4aDl2LTNINHYzem0xOC05aC0ybDItNWgtN3Y3aDJ2OWw1LTExek00Ljc1IDE3LjI1aDEuNXYtMS41aC0xLjV2MS41em0wLTloMS41di0xLjVoLTEuNXYxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFY28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjA1IDguMDVhNy4wMDcgNy4wMDcgMCAwIDAgMCA5LjlDNy40MiAxOS4zMiA5LjIxIDIwIDExIDIwczMuNTgtLjY4IDQuOTUtMi4wNUMxOS40MyAxNC40NyAyMCA0IDIwIDRTOS41MyA0LjU3IDYuMDUgOC4wNXptOC40OSA4LjQ5Yy0uOTUuOTQtMi4yIDEuNDYtMy41NCAxLjQ2LS44OSAwLTEuNzMtLjI1LTIuNDgtLjY4LjkyLTIuODggMi42Mi01LjQxIDQuODgtNy4zMi0yLjYzIDEuMzYtNC44NCAzLjQ2LTYuMzcgNi0xLjQ4LTEuOTYtMS4zNS00Ljc1LjQ0LTYuNTRDOS4yMSA3LjcyIDE0LjA0IDYuNjUgMTcuOCA2LjJjLS40NSAzLjc2LTEuNTIgOC41OS0zLjI2IDEwLjM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWRpdENhbGVuZGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxMGgxNHYyaDJWNmMwLTEuMS0uOS0yLTItMmgtMVYyaC0ydjJIOFYySDZ2Mkg1Yy0xLjExIDAtMS45OS45LTEuOTkgMkwzIDIwYTIgMiAwIDAgMCAyIDJoN3YtMkg1VjEwem0wLTRoMTR2Mkg1VjZ6bTE3Ljg0IDEwLjI4LS43MS43MS0yLjEyLTIuMTIuNzEtLjcxYS45OTYuOTk2IDAgMCAxIDEuNDEgMGwuNzEuNzFjLjM5LjM5LjM5IDEuMDIgMCAxLjQxem0tMy41NC0uNyAyLjEyIDIuMTItNS4zIDUuM0gxNHYtMi4xMmw1LjMtNS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWRpdE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQuMDYgOS4wMi45Mi45Mi0xLjExIDEuMTEgMS40MSAxLjQxIDIuNTItMi41Mi0zLjc1LTMuNzUtMi41MiAyLjUyIDEuNDEgMS40MSAxLjEyLTEuMXptNi42NS0xLjk4YS45OTYuOTk2IDAgMCAwIDAtMS40MWwtMi4zNC0yLjM0Yy0uMi0uMi0uNDUtLjI5LS43MS0uMjlzLS41MS4xLS43LjI5bC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M3pNMi44MSAyLjgxIDEuMzkgNC4yMmw3LjMyIDcuMzJMMyAxNy4yNVYyMWgzLjc1bDUuNzEtNS43MSA3LjMyIDcuMzIgMS40MS0xLjQxTDIuODEgMi44MXpNNS45MiAxOUg1di0uOTJsNS4xMy01LjEzLjkyLjkyTDUuOTIgMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFamVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxN2gxNHYySDV6bTctMTJMNS4zMyAxNWgxMy4zNEwxMiA1em0wIDMuNiAyLjkzIDQuNEg5LjA3TDEyIDguNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUV1cm9TeW1ib2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDE4LjVBNi40OCA2LjQ4IDAgMCAxIDkuMjQgMTVIMTV2LTJIOC41OGMtLjA1LS4zMy0uMDgtLjY2LS4wOC0xcy4wMy0uNjcuMDgtMUgxNVY5SDkuMjRBNi40OTEgNi40OTEgMCAwIDEgMTUgNS41YzEuNjEgMCAzLjA5LjU5IDQuMjMgMS41N0wyMSA1LjNBOC45NTUgOC45NTUgMCAwIDAgMTUgM2MtMy45MiAwLTcuMjQgMi41MS04LjQ4IDZIM3YyaDMuMDZhOC4yNjIgOC4yNjIgMCAwIDAgMCAySDN2MmgzLjUyYzEuMjQgMy40OSA0LjU2IDYgOC40OCA2IDIuMzEgMCA0LjQxLS44NyA2LTIuM2wtMS43OC0xLjc3Yy0xLjEzLjk4LTIuNiAxLjU3LTQuMjIgMS41N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUV2ZW50UmVwZWF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTJWNmMwLTEuMS0uOS0yLTItMmgtMVYyaC0ydjJIOFYySDZ2Mkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDd2LTJINVYxMGgxNHYyaDJ6bS0yLTRINVY2aDE0djJ6bS0zLjM2IDEyYTMuNTA0IDMuNTA0IDAgMCAwIDYuODYtMWMwLTEuOTMtMS41Ny0zLjUtMy41LTMuNS0uOTUgMC0xLjgyLjM4LTIuNDUgMUgxOFYxOGgtNHYtNGgxLjV2MS40M2MuOS0uODggMi4xNC0xLjQzIDMuNS0xLjQzIDIuNzYgMCA1IDIuMjQgNSA1YTUuMDAyIDUuMDAyIDAgMCAxLTkuOSAxaDEuNTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFdmVudFNlYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDV2N0g5VjVoNm0wLTJIOWMtMS4xIDAtMiAuOS0yIDJ2OWgxMFY1YzAtMS4xLS45LTItMi0yem03IDdoLTN2M2gzdi0zek01IDEwSDJ2M2gzdi0zem0xNSA1SDR2Nmgydi00aDEydjRoMnYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUV2ZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA0aC0xVjJoLTJ2Mkg4VjJINnYySDVjLTEuMTEgMC0xLjk5LjktMS45OSAyTDMgMjBhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE2SDVWMTBoMTR2MTB6bTAtMTJINVY2aDE0djJ6bS03IDVoNXY1aC01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRXhpdFRvQXBwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4wOSAxNS41OSAxMS41IDE3bDUtNS01LTUtMS40MSAxLjQxTDEyLjY3IDExSDN2Mmg5LjY3bC0yLjU4IDIuNTl6TTE5IDNINWEyIDIgMCAwIDAtMiAydjRoMlY1aDE0djE0SDV2LTRIM3Y0YTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUV4cGFuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAyMGgxNnYySDR6TTQgMmgxNnYySDR6TTkuNDEgMTMuNTkgOCAxNWw0IDQgNC00LTEuNDEtMS40MUwxMyAxNS4xN1Y4LjgzbDEuNTkgMS41OEwxNiA5bC00LTQtNCA0IDEuNDEgMS40MUwxMSA4LjgzdjYuMzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFeHBsb3JlT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0YzQuNDEgMCA4IDMuNTkgOCA4IDAgMS40OC0uNDEgMi44Ni0xLjEyIDQuMDZsMS40NiAxLjQ2QTkuOTY3IDkuOTY3IDAgMCAwIDIyIDEyYzAtNS41Mi00LjQ4LTEwLTEwLTEwLTIuMDQgMC0zLjkzLjYxLTUuNTEgMS42NmwxLjQ2IDEuNDZBNy44NjkgNy44NjkgMCAwIDEgMTIgNHptMi45MSA4LjA4TDE3LjUgNi41bC01LjU4IDIuNTkgMi45OSAyLjk5ek0yLjEgNC45M2wxLjU2IDEuNTZBOS45MSA5LjkxIDAgMCAwIDIgMTJjMCA1LjUyIDQuNDggMTAgMTAgMTAgMi4wNCAwIDMuOTMtLjYxIDUuNTEtMS42NmwxLjU2IDEuNTYgMS40MS0xLjQxTDMuNTEgMy41MSAyLjEgNC45M3ptMy4wMiAzLjAxIDMuOTggMy45OC0yLjYgNS41OCA1LjU4LTIuNTkgMy45OCAzLjk4Yy0xLjIuNy0yLjU4IDEuMTEtNC4wNiAxLjExLTQuNDEgMC04LTMuNTktOC04IDAtMS40OC40MS0yLjg2IDEuMTItNC4wNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUV4cGxvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em0tNS41LTIuNSA3LjUxLTMuNDlMMTcuNSA2LjUgOS45OSA5Ljk5IDYuNSAxNy41em01LjUtNi42Yy42MSAwIDEuMS40OSAxLjEgMS4xcy0uNDkgMS4xLTEuMSAxLjEtMS4xLS40OS0xLjEtMS4xLjQ5LTEuMSAxLjEtMS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRXh0ZW5zaW9uT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMS4zOSA0LjIyIDEuNjIgMS42MmMwIC4wNS0uMDEuMS0uMDEuMTZ2My44YzIuNyAwIDMgMi4xNiAzIDIuN3MtLjI5IDIuNy0zIDIuN1YxOWMwIDEuMS45IDIgMiAyaDMuOGMwLTIuNzEgMi4xNi0zIDIuNy0zczIuNy4yOSAyLjcgM0gxOGMuMDYgMCAuMTEgMCAuMTYtLjAxbDEuNjEgMS42MSAxLjQxLTEuNDFMMi44MSAyLjgxIDEuMzkgNC4yMnpNMTEuNSAxNmMtMS41IDAtMy41Ny44My00LjM3IDNINXYtMi4xM2MyLjE3LS44IDMtMi44NyAzLTQuMzcgMC0uNjktLjE4LTEuNS0uNTgtMi4yNWw2LjMzIDYuMzNBNC44OSA0Ljg5IDAgMCAwIDExLjUgMTZ6TTguODMgNmwtMi0ySDlhMi41IDIuNSAwIDAgMSA1IDBoNGMxLjEgMCAyIC45IDIgMnY0YTIuNSAyLjUgMCAwIDEgMCA1djIuMTdsLTItMlYxM2gyYy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjVoLTJWNmgtNlY0YzAtLjI4LS4yMi0uNS0uNS0uNXMtLjUuMjItLjUuNXYySDguODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFeHRlbnNpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjUgNC41Yy4yOCAwIC41LjIyLjUuNXYyaDZ2NmgyYy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNWgtMnY2aC0yLjEyYy0uNjgtMS43NS0yLjM5LTMtNC4zOC0zcy0zLjcgMS4yNS00LjM4IDNINHYtMi4xMmMxLjc1LS42OCAzLTIuMzkgMy00LjM4IDAtMS45OS0xLjI0LTMuNy0yLjk5LTQuMzhMNCA3aDZWNWMwLS4yOC4yMi0uNS41LS41bTAtMkEyLjUgMi41IDAgMCAwIDggNUg0Yy0xLjEgMC0xLjk5LjktMS45OSAydjMuOGguMjljMS40OSAwIDIuNyAxLjIxIDIuNyAyLjdzLTEuMjEgMi43LTIuNyAyLjdIMlYyMGMwIDEuMS45IDIgMiAyaDMuOHYtLjNjMC0xLjQ5IDEuMjEtMi43IDIuNy0yLjdzMi43IDEuMjEgMi43IDIuN3YuM0gxN2MxLjEgMCAyLS45IDItMnYtNGEyLjUgMi41IDAgMCAwIDAtNVY3YzAtMS4xLS45LTItMi0yaC00YTIuNSAyLjUgMCAwIDAtMi41LTIuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZhY2VVbmxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjI1IDEzYTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDB6TTE1IDExLjc1YTEuMjUgMS4yNSAwIDEgMCAwIDIuNSAxLjI1IDEuMjUgMCAwIDAgMC0yLjV6bTcgLjI1YzAgNS41Mi00LjQ4IDEwLTEwIDEwUzIgMTcuNTIgMiAxMiA2LjQ4IDIgMTIgMnMxMCA0LjQ4IDEwIDEwek0xMC42NiA0LjEyQzEyLjA2IDYuNDQgMTQuNiA4IDE3LjUgOGMuNDYgMCAuOTEtLjA1IDEuMzQtLjEyQzE3LjQ0IDUuNTYgMTQuOSA0IDEyIDRjLS40NiAwLS45MS4wNS0xLjM0LjEyek00LjQyIDkuNDdhOC4wNDYgOC4wNDYgMCAwIDAgMy42Ni00LjQ0IDguMDQ2IDguMDQ2IDAgMCAwLTMuNjYgNC40NHpNMjAgMTJjMC0uNzgtLjEyLTEuNTMtLjMzLTIuMjQtLjcuMTUtMS40Mi4yNC0yLjE3LjI0YTEwIDEwIDAgMCAxLTcuNzYtMy42OUExMC4wMTYgMTAuMDE2IDAgMCAxIDQgMTEuODZjLjAxLjA0IDAgLjA5IDAgLjE0IDAgNC40MSAzLjU5IDggOCA4czgtMy41OSA4LTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4yNSAxM2ExLjI1IDEuMjUgMCAxIDEtMi41IDAgMS4yNSAxLjI1IDAgMCAxIDIuNSAwek0xNSAxMS43NWExLjI1IDEuMjUgMCAxIDAgMCAyLjUgMS4yNSAxLjI1IDAgMCAwIDAtMi41em03IC4yNWMwIDUuNTItNC40OCAxMC0xMCAxMFMyIDE3LjUyIDIgMTIgNi40OCAyIDEyIDJzMTAgNC40OCAxMCAxMHpNMTAuNjYgNC4xMkMxMi4wNiA2LjQ0IDE0LjYgOCAxNy41IDhjLjQ2IDAgLjkxLS4wNSAxLjM0LS4xMkMxNy40NCA1LjU2IDE0LjkgNCAxMiA0Yy0uNDYgMC0uOTEuMDUtMS4zNC4xMnpNNC40MiA5LjQ3YTguMDQ2IDguMDQ2IDAgMCAwIDMuNjYtNC40NCA4LjA0NiA4LjA0NiAwIDAgMC0zLjY2IDQuNDR6TTIwIDEyYzAtLjc4LS4xMi0xLjUzLS4zMy0yLjI0LS43LjE1LTEuNDIuMjQtMi4xNy4yNGExMCAxMCAwIDAgMS03Ljc2LTMuNjlBMTAuMDE2IDEwLjAxNiAwIDAgMSA0IDExLjg2Yy4wMS4wNCAwIC4wOSAwIC4xNCAwIDQuNDEgMy41OSA4IDggOHM4LTMuNTkgOC04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmFjdENoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImdcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAzSDRjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg0VjVoMTZ2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjQxIDEwLjQyIDE3Ljk5IDlsLTMuMTcgMy4xNy0xLjQxLTEuNDJMMTIgMTIuMTYgMTQuODIgMTV6TTUgN2g1djJINXpNNSAxMWg1djJINXpNNSAxNWg1djJINXpcIn0sXCJjaGlsZFwiOltdfV19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmF2b3JpdGVCb3JkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjUgM2MtMS43NCAwLTMuNDEuODEtNC41IDIuMDlDMTAuOTEgMy44MSA5LjI0IDMgNy41IDMgNC40MiAzIDIgNS40MiAyIDguNWMwIDMuNzggMy40IDYuODYgOC41NSAxMS41NEwxMiAyMS4zNWwxLjQ1LTEuMzJDMTguNiAxNS4zNiAyMiAxMi4yOCAyMiA4LjUgMjIgNS40MiAxOS41OCAzIDE2LjUgM3ptLTQuNCAxNS41NS0uMS4xLS4xLS4xQzcuMTQgMTQuMjQgNCAxMS4zOSA0IDguNSA0IDYuNSA1LjUgNSA3LjUgNWMxLjU0IDAgMy4wNC45OSAzLjU3IDIuMzZoMS44N0MxMy40NiA1Ljk5IDE0Ljk2IDUgMTYuNSA1YzIgMCAzLjUgMS41IDMuNSAzLjUgMCAyLjg5LTMuMTQgNS43NC03LjkgMTAuMDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGYXZvcml0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgMjEuMzUtMS40NS0xLjMyQzUuNCAxNS4zNiAyIDEyLjI4IDIgOC41IDIgNS40MiA0LjQyIDMgNy41IDNjMS43NCAwIDMuNDEuODEgNC41IDIuMDlDMTMuMDkgMy44MSAxNC43NiAzIDE2LjUgMyAxOS41OCAzIDIyIDUuNDIgMjIgOC41YzAgMy43OC0zLjQgNi44Ni04LjU1IDExLjU0TDEyIDIxLjM1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmF4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgOWgtMVY0SDh2NWgtLjc4QzYuNjcgOC4zOSA1Ljg5IDggNSA4Yy0xLjY2IDAtMyAxLjM0LTMgM3Y3YzAgMS42NiAxLjM0IDMgMyAzIC44OSAwIDEuNjctLjM5IDIuMjItMUgyMnYtOGMwLTEuNjYtMS4zNC0zLTMtM3pNNiAxOGMwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMXYtN2MwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2N3ptNC0xMmg2djNoLTZWNnptMTAgMTJIOHYtN2gxMWMuNTUgMCAxIC40NSAxIDF2NnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMThcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiMTZcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxOFwiLFwiY3lcIjpcIjE2XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTJoNHY1SDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGZWVkYmFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTRINS4xN2wtLjU5LjU5LS41OC41OFY0aDE2djEyem0tOS00aDJ2MmgtMnptMC02aDJ2NGgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbGVQcmVzZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWOGwtNi02em00IDE4SDZWNGg4djRoNHYxMnptLTYtM2MtMS4xIDAtMi0uOS0yLTJWOS41YzAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41VjE1aDJWOS41YTIuNSAyLjUgMCAwIDAtNSAwVjE1YzAgMi4yMSAxLjc5IDQgNCA0czQtMS43OSA0LTR2LTRoLTJ2NGMwIDEuMS0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbHRlckFsdE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2Ljk1IDYtMy41NyA0LjU1IDEuNDMgMS40M2MxLjAzLTEuMzEgNC45OC02LjM3IDQuOTgtNi4zN0EuOTk4Ljk5OCAwIDAgMCAxOSA0SDYuODNsMiAyaDguMTJ6TTIuODEgMi44MSAxLjM5IDQuMjIgMTAgMTN2NmMwIC41NS40NSAxIDEgMWgyYy41NSAwIDEtLjQ1IDEtMXYtMi4xN2w1Ljc4IDUuNzggMS40MS0xLjQxTDIuODEgMi44MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbHRlckFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0bTAgMjRIMFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDZoMTBsLTUuMDEgNi4zTDcgNnptLTIuNzUtLjM5QzYuMjcgOC4yIDEwIDEzIDEwIDEzdjZjMCAuNTUuNDUgMSAxIDFoMmMuNTUgMCAxLS40NSAxLTF2LTZzMy43Mi00LjggNS43NC03LjM5QS45OTguOTk4IDAgMCAwIDE4Ljk1IDRINS4wNGMtLjgzIDAtMS4zLjk1LS43OSAxLjYxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmluZEluUGFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMjBjMCAxLjEuODkgMiAxLjk5IDJIMThjMS4xIDAgMi0uOSAyLTJWOGwtNi02ek02IDRoN2w1IDV2OC41OGwtMS44NC0xLjg0YTQuOTkyIDQuOTkyIDAgMCAwLS42NC02LjI4QTQuOTYgNC45NiAwIDAgMCAxMiA4YTUgNSAwIDAgMC0zLjUzIDEuNDYgNC45OCA0Ljk4IDAgMCAwIDAgNy4wNSA0Ljk4MiA0Ljk4MiAwIDAgMCA2LjI4LjYzTDE3LjYgMjBINlY0em04LjExIDExLjFjLS41Ni41Ni0xLjMxLjg4LTIuMTEuODhzLTEuNTUtLjMxLTIuMTEtLjg4Yy0uNTYtLjU2LS44OC0xLjMxLS44OC0yLjExcy4zMS0xLjU1Ljg4LTIuMTFjLjU2LS41NyAxLjMxLS44OCAyLjExLS44OHMxLjU1LjMxIDIuMTEuODhjLjU2LjU2Ljg4IDEuMzEuODggMi4xMXMtLjMxIDEuNTUtLjg4IDIuMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaW5kUmVwbGFjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNmMxLjM4IDAgMi42My41NiAzLjU0IDEuNDZMMTIgMTBoNlY0bC0yLjA1IDIuMDVBNi45NzYgNi45NzYgMCAwIDAgMTEgNGMtMy41MyAwLTYuNDMgMi42MS02LjkyIDZINi4xQTUgNSAwIDAgMSAxMSA2em01LjY0IDkuMTRBNi44OSA2Ljg5IDAgMCAwIDE3LjkyIDEySDE1LjlhNSA1IDAgMCAxLTQuOSA0Yy0xLjM4IDAtMi42My0uNTYtMy41NC0xLjQ2TDEwIDEySDR2NmwyLjA1LTIuMDVBNi45NzYgNi45NzYgMCAwIDAgMTEgMThjMS41NSAwIDIuOTgtLjUxIDQuMTQtMS4zNkwyMCAyMS40OSAyMS40OSAyMGwtNC44NS00Ljg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmluZ2VycHJpbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjgxIDQuNDdjLS4wOCAwLS4xNi0uMDItLjIzLS4wNkMxNS42NiAzLjQyIDE0IDMgMTIuMDEgM2MtMS45OCAwLTMuODYuNDctNS41NyAxLjQxLS4yNC4xMy0uNTQuMDQtLjY4LS4yYS41MDYuNTA2IDAgMCAxIC4yLS42OEM3LjgyIDIuNTIgOS44NiAyIDEyLjAxIDJjMi4xMyAwIDMuOTkuNDcgNi4wMyAxLjUyLjI1LjEzLjM0LjQzLjIxLjY3YS40OS40OSAwIDAgMS0uNDQuMjh6TTMuNSA5LjcyYS40OTkuNDk5IDAgMCAxLS40MS0uNzljLjk5LTEuNCAyLjI1LTIuNSAzLjc1LTMuMjdDOS45OCA0LjA0IDE0IDQuMDMgMTcuMTUgNS42NWMxLjUuNzcgMi43NiAxLjg2IDMuNzUgMy4yNWEuNS41IDAgMCAxLS4xMi43Yy0uMjMuMTYtLjU0LjExLS43LS4xMmE5LjM4OCA5LjM4OCAwIDAgMC0zLjM5LTIuOTRjLTIuODctMS40Ny02LjU0LTEuNDctOS40LjAxLTEuMzYuNy0yLjUgMS43LTMuNCAyLjk2LS4wOC4xNC0uMjMuMjEtLjM5LjIxem02LjI1IDEyLjA3YS40Ny40NyAwIDAgMS0uMzUtLjE1Yy0uODctLjg3LTEuMzQtMS40My0yLjAxLTIuNjQtLjY5LTEuMjMtMS4wNS0yLjczLTEuMDUtNC4zNCAwLTIuOTcgMi41NC01LjM5IDUuNjYtNS4zOXM1LjY2IDIuNDIgNS42NiA1LjM5YzAgLjI4LS4yMi41LS41LjVzLS41LS4yMi0uNS0uNWMwLTIuNDItMi4wOS00LjM5LTQuNjYtNC4zOXMtNC42NiAxLjk3LTQuNjYgNC4zOWMwIDEuNDQuMzIgMi43Ny45MyAzLjg1LjY0IDEuMTUgMS4wOCAxLjY0IDEuODUgMi40Mi4xOS4yLjE5LjUxIDAgLjcxLS4xMS4xLS4yNC4xNS0uMzcuMTV6bTcuMTctMS44NWMtMS4xOSAwLTIuMjQtLjMtMy4xLS44OS0xLjQ5LTEuMDEtMi4zOC0yLjY1LTIuMzgtNC4zOSAwLS4yOC4yMi0uNS41LS41cy41LjIyLjUuNWMwIDEuNDEuNzIgMi43NCAxLjk0IDMuNTYuNzEuNDggMS41NC43MSAyLjU0LjcxLjI0IDAgLjY0LS4wMyAxLjA0LS4xLjI3LS4wNS41My4xMy41OC40MS4wNS4yNy0uMTMuNTMtLjQxLjU4LS41Ny4xMS0xLjA3LjEyLTEuMjEuMTJ6TTE0LjkxIDIyYy0uMDQgMC0uMDktLjAxLS4xMy0uMDItMS41OS0uNDQtMi42My0xLjAzLTMuNzItMi4xYTcuMjk3IDcuMjk3IDAgMCAxLTIuMTctNS4yMmMwLTEuNjIgMS4zOC0yLjk0IDMuMDgtMi45NHMzLjA4IDEuMzIgMy4wOCAyLjk0YzAgMS4wNy45MyAxLjk0IDIuMDggMS45NHMyLjA4LS44NyAyLjA4LTEuOTRjMC0zLjc3LTMuMjUtNi44My03LjI1LTYuODMtMi44NCAwLTUuNDQgMS41OC02LjYxIDQuMDMtLjM5LjgxLS41OSAxLjc2LS41OSAyLjggMCAuNzguMDcgMi4wMS42NyAzLjYxLjEuMjYtLjAzLjU1LS4yOS42NC0uMjYuMS0uNTUtLjA0LS42NC0uMjlhMTEuMTQgMTEuMTQgMCAwIDEtLjczLTMuOTZjMC0xLjIuMjMtMi4yOS42OC0zLjI0IDEuMzMtMi43OSA0LjI4LTQuNiA3LjUxLTQuNiA0LjU1IDAgOC4yNSAzLjUxIDguMjUgNy44MyAwIDEuNjItMS4zOCAyLjk0LTMuMDggMi45NHMtMy4wOC0xLjMyLTMuMDgtMi45NGMwLTEuMDctLjkzLTEuOTQtMi4wOC0xLjk0cy0yLjA4Ljg3LTIuMDggMS45NGMwIDEuNzEuNjYgMy4zMSAxLjg3IDQuNTEuOTUuOTQgMS44NiAxLjQ2IDMuMjcgMS44NS4yNy4wNy40Mi4zNS4zNS42MS0uMDUuMjMtLjI2LjM4LS40Ny4zOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpdFNjcmVlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxNmgxMlY4SDZ2OHptMi02aDh2NEg4di00em0tNCA1SDJ2M2MwIDEuMS45IDIgMiAyaDN2LTJINHYtM3ptMC05aDNWNEg0Yy0xLjEgMC0yIC45LTIgMnYzaDJWNnptMTYtMmgtM3YyaDN2M2gyVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRoLTN2MmgzYzEuMSAwIDItLjkgMi0ydi0zaC0ydjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbGFreSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIm0xNC4wNSAxNy41OC0uMDEuMDEtMi40LTIuNCAxLjA2LTEuMDYgMS4zNSAxLjM1TDE2LjU0IDEzbDEuMDYgMS4wNi0zLjU0IDMuNTQtLjAxLS4wMnpNMTIgMkM2LjUgMiAyIDYuNSAyIDEyczQuNSAxMCAxMCAxMCAxMC00LjUgMTAtMTBTMTcuNSAyIDEyIDJ6TTcuMzQgNi4yOGwxLjQxIDEuNDEgMS40MS0xLjQxIDEuMDYgMS4wNi0xLjQxIDEuNDEgMS40MSAxLjQxLTEuMDYgMS4wNi0xLjQxLTEuNDEtMS40MSAxLjQxLTEuMDYtMS4wNiAxLjQxLTEuNDEtMS40MS0xLjQxIDEuMDYtMS4wNnpNMTIgMjBjLTIuMiAwLTQuMi0uOS01LjctMi4zTDE3LjcgNi4zQzE5LjEgNy44IDIwIDkuOCAyMCAxMmMwIDQuNC0zLjYgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbGlnaHRMYW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjUgMTloMTl2MmgtMTl2LTJ6bTE2Ljg0LTMuMTVjLjguMjEgMS42Mi0uMjYgMS44NC0xLjA2LjIxLS44LS4yNi0xLjYyLTEuMDYtMS44NGwtNS4zMS0xLjQyLTIuNzYtOS4wMkwxMC4xMiAydjguMjhMNS4xNSA4Ljk1bC0uOTMtMi4zMi0xLjQ1LS4zOXY1LjE3bDE2LjU3IDQuNDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbGlnaHRUYWtlb2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjUgMTloMTl2MmgtMTl2LTJ6bTE5LjU3LTkuMzZjLS4yMS0uOC0xLjA0LTEuMjgtMS44NC0xLjA2TDE0LjkyIDEwbC02LjktNi40My0xLjkzLjUxIDQuMTQgNy4xNy00Ljk3IDEuMzMtMS45Ny0xLjU0LTEuNDUuMzkgMi41OSA0LjQ5TDIxIDExLjQ5Yy44MS0uMjMgMS4yOC0xLjA1IDEuMDctMS44NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZsaXBUb0JhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgN0g3djJoMlY3em0wIDRIN3YyaDJ2LTJ6bTAtOGEyIDIgMCAwIDAtMiAyaDJWM3ptNCAxMmgtMnYyaDJ2LTJ6bTYtMTJ2MmgyYzAtMS4xLS45LTItMi0yem0tNiAwaC0ydjJoMlYzek05IDE3di0ySDdhMiAyIDAgMCAwIDIgMnptMTAtNGgydi0yaC0ydjJ6bTAtNGgyVjdoLTJ2MnptMCA4YzEuMSAwIDItLjkgMi0yaC0ydjJ6TTUgN0gzdjEyYTIgMiAwIDAgMCAyIDJoMTJ2LTJINVY3em0xMC0yaDJWM2gtMnYyem0wIDEyaDJ2LTJoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZsaXBUb0Zyb250IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDEzaDJ2LTJIM3Yyem0wIDRoMnYtMkgzdjJ6bTIgNHYtMkgzYTIgMiAwIDAgMCAyIDJ6TTMgOWgyVjdIM3Yyem0xMiAxMmgydi0yaC0ydjJ6bTQtMThIOWEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxMkg5VjVoMTB2MTB6bS04IDZoMnYtMmgtMnYyem0tNCAwaDJ2LTJIN3YyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmx1dHRlckRhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4wNyAxMS43Yy4yOS0uMzkuODEtLjU2IDEuMjctLjM3LjE3LjA3LjMyLjE4LjQzLjMzLjIyLjI4LjI1LjU5LjIyLjg1LS4wNS4zMy0uMjUuNjMtLjU0Ljc5IDAgMC00Ljg3IDIuOTUtNS4wNyAyLjY5czMuNjktNC4yOSAzLjY5LTQuMjl6TTIyIDEwYzAgMi41LTEgMy0xLjUgMy0uMjMgMC0uNDQtLjEtLjYyLS4yNi0uNDggMy4zMi0yLjM2IDUuMzEtNS4zMyA1Ljk5LjExLjQ0LjQ4Ljc3Ljk1Ljc3aC41OGMuMjIgMCAuNDEuMTUuNDguMzYuMTcuNTIuNjYgMS4wMiAxLjAyIDEuMzIuMjUuMjEuMjQuNTktLjAzLjc4LS4zNC4yNC0uOS40OS0xLjc5LjUzYS41MDEuNTAxIDAgMCAxLS40NS0uMjJjLS4xMy0uMi0uMzEtLjU2LS4zMS0xLjAxIDAtLjMuMDQtLjU3LjA5LS44LS43OC0uMTYtMS4zOS0uNzgtMS41NS0xLjU2LS40OS4wNi0xIC4xLTEuNTQuMS0uODggMC0xLjctLjA5LTIuNDUtLjI1LS4wMi4wOC0uMDUuMTYtLjA1LjI1IDAgLjU1LjQ1IDEgMSAxaC41OGMuMjIgMCAuNDEuMTUuNDguMzYuMTcuNTIuNjYgMS4wMiAxLjAyIDEuMzIuMjUuMjEuMjQuNTktLjAzLjc4LS4zNC4yNC0uOS40OS0xLjc5LjUzYS41MDEuNTAxIDAgMCAxLS40NS0uMjJjLS4xMy0uMi0uMzEtLjU2LS4zMS0xLjAxIDAtLjMuMDQtLjU3LjA5LS44LS45LS4xOS0xLjU5LTEtMS41OS0xLjk2IDAtLjE4LjAzLS4zNi4wOC0uNTMtMi40Ni0uODYtNC4wMy0yLjc4LTQuNDYtNS43NC0uMTguMTctLjM4LjI3LS42Mi4yN0MzIDEzIDIgMTIuNSAyIDEwYzAtMi4yNyAxLjctNC41IDMtNC41LjQzIDAgLjQ5LjQ5LjUuODVhNy45ODkgNy45ODkgMCAwIDEgNS41NS0zLjI5Yy4yLS45NiAxLjA4LTEuNTYgMS45NS0xLjU2djFzLjMzLS41IDEtLjVjLjY3IDAgMSAuNSAxIC41LS40OSAwLS44NS4zNS0uOTYuNzcgMS44Mi40OCAzLjM5IDEuNTkgNC40NiAzLjA4LjAxLS4zNi4wNy0uODUuNS0uODUgMS4zIDAgMyAyLjIzIDMgNC41ek01IDExYzAgLjgxLjEgMS41My4yNSAyLjIxLjE4LS42OS40Ni0xLjMzLjgzLTEuOTJhMy43NyAzLjc3IDAgMCAxLS4zNC0xLjU0QTMuNzY2IDMuNzY2IDAgMCAxIDkuNSA2Yy45NiAwIDEuODQuMzcgMi41Ljk3LjY2LS42IDEuNTQtLjk3IDIuNS0uOTcgMi4wNyAwIDMuNzUgMS42OCAzLjc1IDMuNzUgMCAuNTUtLjEyIDEuMDctLjM0IDEuNTQuMzcuNTkuNjYgMS4yNC44NCAxLjk0LjE1LS42OC4yNS0xLjQxLjI1LTIuMjMgMC0zLjg2LTMuMTQtNy03LTdzLTcgMy4xNC03IDd6bTEyLjk4IDQuMjljMC0uMS4wMi0uMTkuMDItLjI5IDAtMS4wMS0uMjYtMS45NS0uNy0yLjc4LS42OS43OC0xLjY4IDEuMjgtMi44IDEuMjgtLjI3IDAtLjU0LS4wMy0uNzktLjA5LjE0LS4yMy4yMy0uNDkuMjctLjc3LjAxLS4wNy4wMS0uMTMuMDItLjE5LjE3LjAzLjMzLjA1LjUuMDUgMS41MiAwIDIuNzUtMS4yMyAyLjc1LTIuNzVTMTYuMDIgNyAxNC41IDdjLS42NyAwLTEuMzIuMjUtMS44My43MmwtLjY3LjYtLjY3LS42QzEwLjgyIDcuMjUgMTAuMTcgNyA5LjUgNyA3Ljk4IDcgNi43NSA4LjIzIDYuNzUgOS43NWMwIDEuMzQuOTYgMi40NiAyLjIzIDIuN2wtLjc2LjgzYy0uNi0uMjItMS4xMi0uNTktMS41My0xLjA1QTYuMDEgNi4wMSAwIDAgMCA2IDE1YzAgLjA4LjAxLjE1LjAxLjI0QzcuMTMgMTcuMDYgOS4xNCAxOCAxMiAxOGMyLjg4IDAgNC44OC0uOTEgNS45OC0yLjcxek0xNiA5Ljc1YzAgLjk3LS42NyAxLjc1LTEuNSAxLjc1UzEzIDEwLjcyIDEzIDkuNzUgMTMuNjcgOCAxNC41IDhzMS41Ljc4IDEuNSAxLjc1em0tLjc1LS44N2MwLS4yMS0uMTctLjM4LS4zOC0uMzhzLS4zNy4xNy0uMzcuMzguMTcuMzguMzguMzguMzctLjE4LjM3LS4zOHpNMTEgOS43NWMwIC45Ny0uNjcgMS43NS0xLjUgMS43NVM4IDEwLjcyIDggOS43NSA4LjY3IDggOS41IDhzMS41Ljc4IDEuNSAxLjc1em0tLjc1LS44N2MwLS4yMS0uMTctLjM4LS4zOC0uMzhzLS4zNy4xNy0uMzcuMzguMTcuMzguMzguMzguMzctLjE4LjM3LS4zOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZyZWVDYW5jZWxsYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4yMSAyMEg1VjEwaDE0djQuMzhsMi0yVjZjMC0xLjEtLjktMi0yLTJoLTFWMmgtMnYySDhWMkg2djJINWMtMS4xMSAwLTEuOTkuOS0xLjk5IDJMMyAyMGEyIDIgMCAwIDAgMiAyaDguMjFsLTItMnpNNSA2aDE0djJINVY2em0xMS41NCAxNi41TDEzIDE4Ljk2bDEuNDEtMS40MSAyLjEyIDIuMTIgNC4yNC00LjI0IDEuNDEgMS40MS01LjY0IDUuNjZ6TTEwLjQxIDE0IDEyIDE1LjU5IDEwLjU5IDE3IDkgMTUuNDEgNy40MSAxNyA2IDE1LjU5IDcuNTkgMTQgNiAxMi40MSA3LjQxIDExIDkgMTIuNTkgMTAuNTkgMTEgMTIgMTIuNDEgMTAuNDEgMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHVHJhbnNsYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA1aC05LjEyTDEwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTNjMCAxLjEuOSAyIDIgMmg3bDEgM2g4YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6TTcuMTcgMTQuNTljLTIuMjUgMC00LjA5LTEuODMtNC4wOS00LjA5czEuODMtNC4wOSA0LjA5LTQuMDljMS4wNCAwIDEuOTkuMzcgMi43NCAxLjA3bC4wNy4wNi0xLjIzIDEuMTgtLjA2LS4wNWMtLjI5LS4yNy0uNzgtLjU5LTEuNTItLjU5LTEuMzEgMC0yLjM4IDEuMDktMi4zOCAyLjQyczEuMDcgMi40MiAyLjM4IDIuNDJjMS4zNyAwIDEuOTYtLjg3IDIuMTItMS40Nkg3LjA4VjkuOTFoMy45NWwuMDEuMDdjLjA0LjIxLjA1LjQuMDUuNjEgMCAyLjM1LTEuNjEgNC0zLjkyIDR6bTYuMDMtMS43MWMuMzMuNi43NCAxLjE4IDEuMTkgMS43bC0uNTQuNTMtLjY1LTIuMjN6bS43Ny0uNzZoLS45OWwtLjMxLTEuMDRoMy45OXMtLjM0IDEuMzEtMS41NiAyLjc0Yy0uNTItLjYyLS44OS0xLjIzLTEuMTMtMS43ek0yMSAyMGMwIC41NS0uNDUgMS0xIDFoLTdsMi0yLS44MS0yLjc3LjkyLS45MkwxNy43OSAxOGwuNzMtLjczLTIuNzEtMi42OGMuOS0xLjAzIDEuNi0yLjI1IDEuOTItMy41MUgxOXYtMS4wNGgtMy42NFY5aC0xLjA0djEuMDRoLTEuOTZMMTEuMTggNkgyMGMuNTUgMCAxIC40NSAxIDF2MTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHYXZlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAyMWgxMnYySDF2LTJ6TTUuMjQgOC4wN2wyLjgzLTIuODMgMTQuMTQgMTQuMTQtMi44MyAyLjgzTDUuMjQgOC4wN3pNMTIuMzIgMWw1LjY2IDUuNjYtMi44MyAyLjgzLTUuNjYtNS42NkwxMi4zMiAxek0zLjgzIDkuNDhsNS42NiA1LjY2LTIuODMgMi44M0wxIDEyLjMxbDIuODMtMi44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdlbmVyYXRpbmdUb2tlbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDRjLTQuNDIgMC04IDMuNTgtOCA4czMuNTggOCA4IDggOC0zLjU4IDgtOC0zLjU4LTgtOC04em0wIDE0Yy0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02IDYgMi42OSA2IDYtMi42OSA2LTYgNnptMy03LjVoLTJ2NUg4di01SDZWOWg2djEuNXptOC4yNS02Ljc1TDIzIDVsLTIuNzUgMS4yNUwxOSA5bC0xLjI1LTIuNzVMMTUgNWwyLjc1LTEuMjVMMTkgMWwxLjI1IDIuNzV6bTAgMTRMMjMgMTlsLTIuNzUgMS4yNUwxOSAyM2wtMS4yNS0yLjc1TDE1IDE5bDIuNzUtMS4yNUwxOSAxNWwxLjI1IDIuNzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHZXRBcHAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDV2NmgxLjE3TDEyIDEzLjE3IDkuODMgMTFIMTFWNWgybTItMkg5djZINWw3IDcgNy03aC00VjN6bTQgMTVINXYyaDE0di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR2lmQm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTlINVY1aDE0djE0ek01IDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMkg1em02LjUgMTFoMXYtNGgtMXY0em0yIDBoMXYtMS41SDE2di0xaC0xLjVWMTFoMnYtMWgtM3Y0em0tNC0ydjFoLTF2LTJoMmMwLS41NS0uNDUtMS0xLTFoLTFjLS41NSAwLTEgLjQ1LTEgMXYyYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaC0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR2lmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS41IDlIMTN2NmgtMS41Vjl6TTkgOUg2Yy0uNiAwLTEgLjUtMSAxdjRjMCAuNS40IDEgMSAxaDNjLjYgMCAxLS41IDEtMXYtMkg4LjV2MS41aC0ydi0zSDEwVjEwYzAtLjUtLjQtMS0xLTF6bTEwIDEuNVY5aC00LjV2NkgxNnYtMmgydi0xLjVoLTJ2LTFoM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdyYWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiA3LjEzLjk3IDIuMjkuNDcgMS4xMSAxLjIuMSAyLjQ3LjIxLTEuODggMS42My0uOTEuNzkuMjcgMS4xOC41NiAyLjQxLTIuMTItMS4yOC0xLjAzLS42NC0xLjAzLjYyLTIuMTIgMS4yOC41Ni0yLjQxLjI3LTEuMTgtLjkxLS43OS0xLjg4LTEuNjMgMi40Ny0uMjEgMS4yLS4xLjQ3LTEuMTEuOTctMi4yN00xMiAyIDkuMTkgOC42MyAyIDkuMjRsNS40NiA0LjczTDUuODIgMjEgMTIgMTcuMjcgMTguMTggMjFsLTEuNjQtNy4wM0wyMiA5LjI0bC03LjE5LS42MUwxMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR3JhZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgN2gxNnYySDRWN3ptMCA2aDE2di0ySDR2MnptMCA0aDd2LTJINHYyem0wIDRoN3YtMkg0djJ6bTExLjQxLTIuODNMMTQgMTYuNzVsLTEuNDEgMS40MUwxNS40MSAyMSAyMCAxNi40MiAxOC41OCAxNWwtMy4xNyAzLjE3ek00IDN2MmgxNlYzSDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHcm91cFdvcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjhcIixcImN5XCI6XCIxNFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiOFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE2XCIsXCJjeVwiOlwiMTRcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhlbHBDZW50ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy4yNSAxNi43NGMwIC42OS0uNTMgMS4yNi0xLjI1IDEuMjYtLjcgMC0xLjI2LS41Ni0xLjI2LTEuMjYgMC0uNzEuNTYtMS4yNSAxLjI2LTEuMjUuNzEgMCAxLjI1LjU1IDEuMjUgMS4yNXpNMTEuOTkgNmMtMS43NyAwLTIuOTggMS4xNS0zLjQzIDIuNDlsMS42NC42OWMuMjItLjY3Ljc0LTEuNDggMS44LTEuNDggMS42MiAwIDEuOTQgMS41MiAxLjM3IDIuMzMtLjU0Ljc3LTEuNDcgMS4yOS0xLjk2IDIuMTYtLjM5LjY5LS4zMSAxLjQ5LS4zMSAxLjk4aDEuODJjMC0uOTMuMDctMS4xMi4yMi0xLjQxLjM5LS43MiAxLjExLTEuMDYgMS44Ny0yLjE3LjY4LTEgLjQyLTIuMzYtLjAyLTMuMDgtLjUxLS44NC0xLjUyLTEuNTEtMy0xLjUxek0xOSA1SDV2MTRoMTRWNW0wLTJjMS4xIDAgMiAuOSAyIDJ2MTRjMCAxLjEtLjkgMi0yIDJINWMtMS4xIDAtMi0uOS0yLTJWNWMwLTEuMS45LTIgMi0yaDE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGVscE91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE4aDJ2LTJoLTJ2MnptMS0xNkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTAtMTRjLTIuMjEgMC00IDEuNzktNCA0aDJjMC0xLjEuOS0yIDItMnMyIC45IDIgMmMwIDItMyAxLjc1LTMgNWgyYzAtMi4yNSAzLTIuNSAzLTUgMC0yLjIxLTEuNzktNC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIZWxwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xIDE3aC0ydi0yaDJ2MnptMi4wNy03Ljc1LS45LjkyQzEzLjQ1IDEyLjkgMTMgMTMuNSAxMyAxNWgtMnYtLjVjMC0xLjEuNDUtMi4xIDEuMTctMi44M2wxLjI0LTEuMjZjLjM3LS4zNi41OS0uODYuNTktMS40MSAwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDJIOGMwLTIuMjEgMS43OS00IDQtNHM0IDEuNzkgNCA0YzAgLjg4LS4zNiAxLjY4LS45MyAyLjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGlkZVNvdXJjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi44MSAyLjgxIDEuMzkgNC4yMmwyLjI3IDIuMjdBOS45MSA5LjkxIDAgMCAwIDIgMTJjMCA1LjUyIDQuNDggMTAgMTAgMTAgMi4wNCAwIDMuOTMtLjYxIDUuNTEtMS42NmwyLjI3IDIuMjcgMS40MS0xLjQxTDIuODEgMi44MXpNMTIgMjBjLTQuNDEgMC04LTMuNTktOC04IDAtMS40OC40MS0yLjg2IDEuMTItNC4wNmwxMC45NCAxMC45NEMxNC44NiAxOS41OSAxMy40OCAyMCAxMiAyMHpNNy45NCA1LjEyIDYuNDkgMy42NkE5LjkxIDkuOTEgMCAwIDEgMTIgMmM1LjUyIDAgMTAgNC40OCAxMCAxMCAwIDIuMDQtLjYxIDMuOTMtMS42NiA1LjUxbC0xLjQ2LTEuNDZBNy44NjkgNy44NjkgMCAwIDAgMjAgMTJjMC00LjQxLTMuNTktOC04LTgtMS40OCAwLTIuODYuNDEtNC4wNiAxLjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGlnaGxpZ2h0QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNWgtMlYzaDJ2MnptLTIgMTB2NmwyLjI5LTIuMjkgMi4zIDIuMjlMMjEgMTkuNTlsLTIuMjktMi4yOUwyMSAxNWgtNnptNC02aDJWN2gtMnYyem0wIDRoMnYtMmgtMnYyem0tOCA4aDJ2LTJoLTJ2MnpNNyA1aDJWM0g3djJ6TTMgMTdoMnYtMkgzdjJ6bTIgNHYtMkgzYzAgMS4xLjkgMiAyIDJ6TTE5IDN2MmgyYzAtMS4xLS45LTItMi0yem0tOCAyaDJWM2gtMnYyek0zIDloMlY3SDN2MnptNCAxMmgydi0ySDd2MnptLTQtOGgydi0ySDN2MnptMC04aDJWM2MtMS4xIDAtMiAuOS0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIaWdobGlnaHRPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjU5IDggMTIgMTAuNTkgOS40MSA4IDggOS40MSAxMC41OSAxMiA4IDE0LjU5IDkuNDEgMTYgMTIgMTMuNDEgMTQuNTkgMTYgMTYgMTQuNTkgMTMuNDEgMTIgMTYgOS40MSAxNC41OSA4ek0xMiAyQzYuNDcgMiAyIDYuNDcgMiAxMnM0LjQ3IDEwIDEwIDEwIDEwLTQuNDcgMTAtMTBTMTcuNTMgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhpc3RvcnlUb2dnbGVPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNS4xIDE5LjM3IDEgMS43NGMtLjk2LjQ0LTIuMDEuNzMtMy4xLjg0di0yLjAyYy43NC0uMDkgMS40NC0uMjggMi4xLS41NnpNNC4wNyAxM0gyLjA1Yy4xMSAxLjEuNCAyLjE0Ljg0IDMuMWwxLjc0LTFjLS4yOC0uNjYtLjQ3LTEuMzYtLjU2LTIuMXpNMTUuMSA0LjYzbDEtMS43NGMtLjk2LS40NC0yLS43My0zLjEtLjg0djIuMDJjLjc0LjA5IDEuNDQuMjggMi4xLjU2ek0xOS45MyAxMWgyLjAyYy0uMTEtMS4xLS40LTIuMTQtLjg0LTMuMWwtMS43NCAxYy4yOC42Ni40NyAxLjM2LjU2IDIuMXpNOC45IDE5LjM3bC0xIDEuNzRjLjk2LjQ0IDIuMDEuNzMgMy4xLjg0di0yLjAyYy0uNzQtLjA5LTEuNDQtLjI4LTIuMS0uNTZ6TTExIDQuMDdWMi4wNWMtMS4xLjExLTIuMTQuNC0zLjEuODRsMSAxLjc0Yy42Ni0uMjggMS4zNi0uNDcgMi4xLS41NnptNy4zNiAzLjEgMS43NC0xLjAxYy0uNjMtLjg3LTEuNC0xLjY0LTIuMjctMi4yN2wtMS4wMSAxLjc0Yy41OS40NSAxLjEuOTYgMS41NCAxLjU0ek00LjYzIDguOWwtMS43NC0xYy0uNDQuOTYtLjczIDItLjg0IDMuMWgyLjAyYy4wOS0uNzQuMjgtMS40NC41Ni0yLjF6bTE1LjMgNC4xYy0uMDkuNzQtLjI4IDEuNDQtLjU2IDIuMWwxLjc0IDFjLjQ0LS45Ni43My0yLjAxLjg0LTMuMWgtMi4wMnptLTMuMSA1LjM2IDEuMDEgMS43NGMuODctLjYzIDEuNjQtMS40IDIuMjctMi4yN2wtMS43NC0xLjAxYy0uNDUuNTktLjk2IDEuMS0xLjU0IDEuNTR6TTcuMTcgNS42NGwtMS0xLjc1Yy0uODguNjQtMS42NCAxLjQtMi4yNyAyLjI4bDEuNzQgMS4wMWE3LjcgNy43IDAgMCAxIDEuNTMtMS41NHpNNS42NCAxNi44M2wtMS43NCAxYy42My44NyAxLjQgMS42NCAyLjI3IDIuMjdsMS4wMS0xLjc0YTcuNyA3LjcgMCAwIDEtMS41NC0xLjUzek0xMyA3aC0ydjUuNDFsNC4yOSA0LjI5IDEuNDEtMS40MS0zLjctMy43Vjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIaXN0b3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAzYTkgOSAwIDAgMC05IDlIMWwzLjg5IDMuODkuMDcuMTRMOSAxMkg2YzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDctMy4xMyA3LTcgN2MtMS45MyAwLTMuNjgtLjc5LTQuOTQtMi4wNmwtMS40MiAxLjQyQTguOTU0IDguOTU0IDAgMCAwIDEzIDIxYTkgOSAwIDAgMCAwLTE4em0tMSA1djVsNC4yNSAyLjUyLjc3LTEuMjgtMy41Mi0yLjA5Vjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIbHNPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy44MyAxNWgxLjY3Yy41NSAwIDEtLjQ1IDEtMXYtMS41YzAtLjU1LS40NS0xLTEtMUgxN3YtMWgydi41aDEuNXYtMWMwLS41NS0uNDUtMS0xLTFoLTNjLS41NSAwLTEgLjQ1LTEgMXYxLjVjMCAuNTUuNDUgMSAxIDFIMTl2MWgtMlYxM2gtMS4xN2wyIDJ6TTggMTAuODNWMTVINi41di0yLjVoLTJWMTVIM1Y5aDEuNXYyaDJWOS4zM0wxLjM5IDQuMjIgMi44IDIuODFsMTguMzggMTguMzgtMS40MSAxLjQxLTcuNi03LjZIMTB2LTIuMTdsLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhscyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSA5SDh2Nkg2LjV2LTIuNWgtMlYxNUgzVjloMS41djJoMlY5em0xMCA2aDNjLjU1IDAgMS0uNDUgMS0xdi0xLjVjMC0uNTUtLjQ1LTEtMS0xSDE3di0xaDJ2LjVoMS41di0xYzAtLjU1LS40NS0xLTEtMWgtM2MtLjU1IDAtMSAuNDUtMSAxdjEuNWMwIC41NS40NSAxIDEgMUgxOXYxaC0yVjEzaC0xLjV2MWMwIC41NS40NSAxIDEgMXpNMTQgMTV2LTEuNWgtMi41VjlIMTB2Nmg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSG9tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgNS42OSA1IDQuNVYxOGgtMnYtNkg5djZIN3YtNy44MWw1LTQuNU0xMiAzIDIgMTJoM3Y4aDZ2LTZoMnY2aDZ2LThoM0wxMiAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSG9yaXpvbnRhbFNwbGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxNXYySDV2LTJoMTRtMi0xMEgzdjJoMThWNXptMCA0SDN2MmgxOFY5em0wIDRIM3Y2aDE4di02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSG90ZWxDbGFzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTExIDguODkuOTQgMy4xMWgyLjgybC0yLjI3IDEuNjIuOTMgMy4wMUwxMSAxNC43OWwtMi40MiAxLjg0LjkzLTMuMDFMNy4yNCAxMmgyLjgyTDExIDguODl6TTguNTggMTBIMWw2LjE3IDQuNDFMNC44MyAyMiAxMSAxNy4zMSAxNy4xOCAyMmwtMi4zNS03LjU5TDIxIDEwaC03LjU4TDExIDJsLTIuNDIgOHptMTIuNzggMTItMS44Ni02LjAxTDIzLjY4IDEzaC0zLjQ0bC0zLjA4IDIuMiAxLjQ2IDQuNzJMMjEuMzYgMjJ6TTE3IDhsLTEuODItNi0xLjA0IDMuNDUuNzcgMi41NUgxN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhvdXJnbGFzc0Rpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA0aDh2My41bC0yLjg0IDIuODQgMS4yNSAxLjI1TDE4IDguMDEgMTcuOTkgOEgxOFYySDZ2MS4xN2wyIDJ6TTIuMSAyLjEuNjkgMy41MWw4LjkgOC45TDYgMTZsLjAxLjAxSDZWMjJoMTJ2LTEuMTdsMi40OSAyLjQ5IDEuNDEtMS40MUwyLjEgMi4xek0xNiAyMEg4di0zLjVsMi44NC0yLjg0TDE2IDE4LjgzVjIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSG91cmdsYXNzRW1wdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMnY2aC4wMUw2IDguMDEgMTAgMTJsLTQgNCAuMDEuMDFINlYyMmgxMnYtNS45OWgtLjAxTDE4IDE2bC00LTQgNC0zLjk5LS4wMS0uMDFIMThWMkg2em0xMCAxNC41VjIwSDh2LTMuNWw0LTQgNCA0em0tNC01LTQtNFY0aDh2My41bC00IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIb3VyZ2xhc3NGdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDJ2NmguMDFMNiA4LjAxIDEwIDEybC00IDQgLjAxLjAxSDZWMjJoMTJ2LTUuOTloLS4wMUwxOCAxNmwtNC00IDQtMy45OS0uMDEtLjAxSDE4VjJINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUh0bWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgOUg1djZIMy41di0yLjVoLTJWMTVIMFY5aDEuNXYyaDJWOXptMTQgMEgxM2MtLjU1IDAtMSAuNDUtMSAxdjVoMS41di00LjVoMVYxNEgxNnYtMy41MWgxVjE1aDEuNXYtNWMwLS41NS0uNDUtMS0xLTF6TTExIDlINnYxLjVoMS43NVYxNWgxLjV2LTQuNUgxMVY5em0xMyA2di0xLjVoLTIuNVY5SDIwdjZoNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUh0dHAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTI0IDI0SDBWMGgyNHYyNHpcIixcIm9wYWNpdHlcIjpcIi44N1wifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjUgMTFoLTJWOUgxdjZoMS41di0yLjVoMlYxNUg2VjlINC41djJ6bTIuNS0uNWgxLjVWMTVIMTB2LTQuNWgxLjVWOUg3djEuNXptNS41IDBIMTRWMTVoMS41di00LjVIMTdWOWgtNC41djEuNXptOS0xLjVIMTh2NmgxLjV2LTJoMmMuOCAwIDEuNS0uNyAxLjUtMS41di0xYzAtLjgtLjctMS41LTEuNS0xLjV6bTAgMi41aC0ydi0xaDJ2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUh0dHBzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA4aC0xVjZjMC0yLjc2LTIuMjQtNS01LTVTNyAzLjI0IDcgNnYySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWMTBjMC0xLjEtLjktMi0yLTJ6TTkgNmMwLTEuNjYgMS4zNC0zIDMtM3MzIDEuMzQgMyAzdjJIOVY2em05IDE0SDZWMTBoMTJ2MTB6bS02LTNjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW1wb3J0YW50RGV2aWNlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMgMTEuMDEgMTggMTFjLS41NSAwLTEgLjQ1LTEgMXY5YzAgLjU1LjQ1IDEgMSAxaDVjLjU1IDAgMS0uNDUgMS0xdi05YzAtLjU1LS40NS0uOTktMS0uOTl6TTIzIDIwaC01di03aDV2N3pNMjAgMkgyQy44OSAyIDAgMi44OSAwIDR2MTJhMiAyIDAgMCAwIDIgMmg3djJIN3YyaDh2LTJoLTJ2LTJoMnYtMkgyVjRoMTh2NWgyVjRhMiAyIDAgMCAwLTItMnptLTguMDMgN0wxMSA2bC0uOTcgM0g3bDIuNDcgMS43Ni0uOTQgMi45MSAyLjQ3LTEuOCAyLjQ3IDEuOC0uOTQtMi45MUwxNSA5aC0zLjAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW5mbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgN2gydjJoLTJ6bTAgNGgydjZoLTJ6bTEtOUM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbnB1dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCIsXCJvcGFjaXR5XCI6XCIuODdcIn0sXCJjaGlsZFwiOltdfV19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzLjAxSDNjLTEuMSAwLTIgLjktMiAyVjloMlY0Ljk5aDE4djE0LjAzSDNWMTVIMXY0LjAxYzAgMS4xLjkgMS45OCAyIDEuOThoMThjMS4xIDAgMi0uODggMi0xLjk4di0xNGEyIDIgMCAwIDAtMi0yek0xMSAxNmw0LTQtNC00djNIMXYyaDEwdjN6TTIxIDMuMDFIM2MtMS4xIDAtMiAuOS0yIDJWOWgyVjQuOTloMTh2MTQuMDNIM1YxNUgxdjQuMDFjMCAxLjEuOSAxLjk4IDIgMS45OGgxOGMxLjEgMCAyLS44OCAyLTEuOTh2LTE0YTIgMiAwIDAgMC0yLTJ6TTExIDE2bDQtNC00LTR2M0gxdjJoMTB2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUluc3RhbGxEZXNrdG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTdINFY1aDhWM0g0Yy0xLjExIDAtMiAuODktMiAydjEyYTIgMiAwIDAgMCAyIDJoNHYyaDh2LTJoNGMxLjEgMCAyLS45IDItMnYtM2gtMnYzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNyAxNCA1LTUtMS40MS0xLjQxTDE4IDEwLjE3VjNoLTJ2Ny4xN2wtMi41OS0yLjU4TDEyIDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbnN0YWxsTW9iaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMThIN1Y2aDdWNEg3VjNoN1YxLjAxTDcgMWMtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMnYtNWgtMnYyem0wIDNIN3YtMWgxMHYxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOCAxNCA1LTUtMS40MS0xLjQxTDE5IDEwLjE3VjNoLTJ2Ny4xN2wtMi41OS0yLjU4TDEzIDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbnRlZ3JhdGlvbkluc3RydWN0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIzLjVcIixcInJcIjpcIi43NVwiLFwiZmlsbFwiOlwibm9uZVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMy41XCIsXCJyXCI6XCIuNzVcIixcImZpbGxcIjpcIm5vbmVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNNSAxNXY0aDE0VjVINXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTQuMTcgOC44MyAxMiAxMSA5LjgzIDkuNTkgOC40MSA2IDEybDMuNTkgMy41OXpNMTQuNDEgMTUuNTkgMTggMTJsLTMuNTktMy41OUwxMyA5LjgzIDE1LjE3IDEyIDEzIDE0LjE3elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMXMtMi40Ljg0LTIuODIgMkg1Yy0uMTQgMC0uMjcuMDEtLjQuMDRhMi4wMDggMi4wMDggMCAwIDAtMS40NCAxLjE5Yy0uMS4yMy0uMTYuNDktLjE2Ljc3djE0YzAgLjI3LjA2LjU0LjE2Ljc4cy4yNS40NS40My42NGMuMjcuMjcuNjIuNDcgMS4wMS41NS4xMy4wMi4yNi4wMy40LjAzaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03LS4yNWMuNDEgMCAuNzUuMzQuNzUuNzVzLS4zNC43NS0uNzUuNzUtLjc1LS4zNC0uNzUtLjc1LjM0LS43NS43NS0uNzV6TTE5IDE1djRINVY1aDE0djEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW52ZXJ0Q29sb3JzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0LjgxVjE5Yy0zLjMxIDAtNi0yLjYzLTYtNS44NyAwLTEuNTYuNjItMy4wMyAxLjc1LTQuMTRMMTIgNC44MU0xMiAyIDYuMzUgNy41NkM0LjkgOC45OSA0IDEwLjk2IDQgMTMuMTMgNCAxNy40OCA3LjU4IDIxIDEyIDIxczgtMy41MiA4LTcuODdjMC0yLjE3LS45LTQuMTQtMi4zNS01LjU3TDEyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVKYXZhc2NyaXB0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTR2LTFoMS41di41aDJ2LTFIMTNjLS41NSAwLTEtLjQ1LTEtMVYxMGMwLS41NS40NS0xIDEtMWgzYy41NSAwIDEgLjQ1IDEgMXYxaC0xLjV2LS41aC0ydjFIMTZjLjU1IDAgMSAuNDUgMSAxVjE0YzAgLjU1LS40NSAxLTEgMWgtM2MtLjU1IDAtMS0uNDUtMS0xek05IDl2NC41SDcuNXYtMUg2djFjMCAuODMuNjcgMS41IDEuNSAxLjVIOWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOUg5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSm9pbkZ1bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiZWxsaXBzZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEyXCIsXCJyeFwiOlwiM1wiLFwicnlcIjpcIjUuNzRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDEyYzAtLjk3LjIzLTQuMTYgMy4wMy02LjVDOS43NSA1LjE5IDguOSA1IDggNWMtMy44NiAwLTcgMy4xNC03IDdzMy4xNCA3IDcgN2MuOSAwIDEuNzUtLjE5IDIuNTMtLjUtMi44LTIuMzQtMy4wMy01LjUzLTMuMDMtNi41ek0xNiA1Yy0uOSAwLTEuNzUuMTktMi41My41IDIuOCAyLjM0IDMuMDMgNS41MyAzLjAzIDYuNSAwIC45Ny0uMjMgNC4xNi0zLjAzIDYuNS43OC4zMSAxLjYzLjUgMi41My41IDMuODYgMCA3LTMuMTQgNy03cy0zLjE0LTctNy03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSm9pbklubmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImVsbGlwc2VcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwicnhcIjpcIjNcIixcInJ5XCI6XCI1Ljc0XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMDQgMTYuODdjLS4zMy4wOC0uNjguMTMtMS4wNC4xMy0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01Yy4zNiAwIC43MS4wNSAxLjA0LjEzLjM5LS41Ni44OC0xLjEyIDEuNDktMS42M0M5Ljc1IDUuMTkgOC45IDUgOCA1Yy0zLjg2IDAtNyAzLjE0LTcgN3MzLjE0IDcgNyA3Yy45IDAgMS43NS0uMTkgMi41My0uNS0uNjEtLjUxLTEuMS0xLjA3LTEuNDktMS42M3pNMTYgNWMtLjkgMC0xLjc1LjE5LTIuNTMuNS42MS41MSAxLjEgMS4wNyAxLjQ5IDEuNjMuMzMtLjA4LjY4LS4xMyAxLjA0LS4xMyAyLjc2IDAgNSAyLjI0IDUgNXMtMi4yNCA1LTUgNWMtLjM2IDAtLjcxLS4wNS0xLjA0LS4xMy0uMzkuNTYtLjg4IDEuMTItMS40OSAxLjYzLjc4LjMxIDEuNjMuNSAyLjUzLjUgMy44NiAwIDctMy4xNCA3LTdzLTMuMTQtNy03LTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVKb2luTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJlbGxpcHNlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTJcIixcInJ4XCI6XCIzXCIsXCJyeVwiOlwiNS43NFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMTJjMC0uOTcuMjMtNC4xNiAzLjAzLTYuNUM5Ljc1IDUuMTkgOC45IDUgOCA1Yy0zLjg2IDAtNyAzLjE0LTcgN3MzLjE0IDcgNyA3Yy45IDAgMS43NS0uMTkgMi41My0uNS0yLjgtMi4zNC0zLjAzLTUuNTMtMy4wMy02LjV6TTE2IDVjLS45IDAtMS43NS4xOS0yLjUzLjUuNjEuNTEgMS4xIDEuMDcgMS40OSAxLjYzLjMzLS4wOC42OC0uMTMgMS4wNC0uMTMgMi43NiAwIDUgMi4yNCA1IDVzLTIuMjQgNS01IDVjLS4zNiAwLS43MS0uMDUtMS4wNC0uMTMtLjM5LjU2LS44OCAxLjEyLTEuNDkgMS42My43OC4zMSAxLjYzLjUgMi41My41IDMuODYgMCA3LTMuMTQgNy03cy0zLjE0LTctNy03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSm9pblJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImVsbGlwc2VcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwicnhcIjpcIjNcIixcInJ5XCI6XCI1Ljc0XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjUgMTJjMCAuOTctLjIzIDQuMTYtMy4wMyA2LjUuNzguMzEgMS42My41IDIuNTMuNSAzLjg2IDAgNy0zLjE0IDctN3MtMy4xNC03LTctN2MtLjkgMC0xLjc1LjE5LTIuNTMuNSAyLjggMi4zNCAzLjAzIDUuNTMgMy4wMyA2LjV6TTggMTljLjkgMCAxLjc1LS4xOSAyLjUzLS41LS42MS0uNTEtMS4xLTEuMDctMS40OS0xLjYzLS4zMy4wOC0uNjguMTMtMS4wNC4xMy0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01Yy4zNiAwIC43MS4wNSAxLjA0LjEzLjM5LS41Ni44OC0xLjEyIDEuNDktMS42M0M5Ljc1IDUuMTkgOC45IDUgOCA1Yy0zLjg2IDAtNyAzLjE0LTcgN3MzLjE0IDcgNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGFiZWxJbXBvcnRhbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTguOTloMTFjLjY3IDAgMS4yNy0uMzIgMS42My0uODNMMjEgMTJsLTQuMzctNi4xNkMxNi4yNyA1LjMzIDE1LjY3IDUgMTUgNUg0bDUgNy01IDYuOTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMYWJlbE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYgNyAzLjU1IDUtMS42MyAyLjI5IDEuNDMgMS40M0wyMiAxMmwtNC4zNy02LjE2QzE3LjI3IDUuMzMgMTYuNjcgNSAxNiA1bC03LjM3LjAxIDIgMS45OUgxNnpNMiA0LjAzbDEuNTggMS41OEMzLjIyIDUuOTYgMyA2LjQ2IDMgN3YxMGMwIDEuMS45IDEuOTkgMiAxLjk5TDE2IDE5Yy4yOCAwIC41NS0uMDcuNzktLjE4TDE4Ljk3IDIxbDEuNDEtMS40MUwzLjQxIDIuNjIgMiA0LjAzek0xNC45NyAxN0g1VjcuMDNMMTQuOTcgMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMYWJlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNjMgNS44NEMxNy4yNyA1LjMzIDE2LjY3IDUgMTYgNUw1IDUuMDFDMy45IDUuMDEgMyA1LjkgMyA3djEwYzAgMS4xLjkgMS45OSAyIDEuOTlMMTYgMTljLjY3IDAgMS4yNy0uMzMgMS42My0uODRMMjIgMTJsLTQuMzctNi4xNnpNMTYgMTdINVY3aDExbDMuNTUgNUwxNiAxN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxhbmd1YWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyem02LjkzIDZoLTIuOTVhMTUuNjUgMTUuNjUgMCAwIDAtMS4zOC0zLjU2QTguMDMgOC4wMyAwIDAgMSAxOC45MiA4ek0xMiA0LjA0Yy44MyAxLjIgMS40OCAyLjUzIDEuOTEgMy45NmgtMy44MmMuNDMtMS40MyAxLjA4LTIuNzYgMS45MS0zLjk2ek00LjI2IDE0QzQuMSAxMy4zNiA0IDEyLjY5IDQgMTJzLjEtMS4zNi4yNi0yaDMuMzhjLS4wOC42Ni0uMTQgMS4zMi0uMTQgMnMuMDYgMS4zNC4xNCAySDQuMjZ6bS44MiAyaDIuOTVjLjMyIDEuMjUuNzggMi40NSAxLjM4IDMuNTZBNy45ODcgNy45ODcgMCAwIDEgNS4wOCAxNnptMi45NS04SDUuMDhhNy45ODcgNy45ODcgMCAwIDEgNC4zMy0zLjU2QTE1LjY1IDE1LjY1IDAgMCAwIDguMDMgOHpNMTIgMTkuOTZjLS44My0xLjItMS40OC0yLjUzLTEuOTEtMy45NmgzLjgyYy0uNDMgMS40My0xLjA4IDIuNzYtMS45MSAzLjk2ek0xNC4zNCAxNEg5LjY2Yy0uMDktLjY2LS4xNi0xLjMyLS4xNi0ycy4wNy0xLjM1LjE2LTJoNC42OGMuMDkuNjUuMTYgMS4zMi4xNiAycy0uMDcgMS4zNC0uMTYgMnptLjI1IDUuNTZjLjYtMS4xMSAxLjA2LTIuMzEgMS4zOC0zLjU2aDIuOTVhOC4wMyA4LjAzIDAgMCAxLTQuMzMgMy41NnpNMTYuMzYgMTRjLjA4LS42Ni4xNC0xLjMyLjE0LTJzLS4wNi0xLjM0LS4xNC0yaDMuMzhjLjE2LjY0LjI2IDEuMzEuMjYgMnMtLjEgMS4zNi0uMjYgMmgtMy4zOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxhdW5jaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTlINVY1aDdWM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtN2gtMnY3ek0xNCAzdjJoMy41OWwtOS44MyA5LjgzIDEuNDEgMS40MUwxOSA2LjQxVjEwaDJWM2gtN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxlYWRlcmJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTFWM0g4djZIMnYxMmgyMFYxMWgtNnptLTYtNmg0djE0aC00VjV6bS02IDZoNHY4SDR2LTh6bTE2IDhoLTR2LTZoNHY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGlnaHRidWxiQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE5Yy44MyAwIDEuNS0uNjcgMS41LTEuNWgtM2MwIC44My42NyAxLjUgMS41IDEuNXpNOSAxNWg2djEuNUg5ek0xMiA1Yy0yLjc2IDAtNSAyLjI0LTUgNSAwIDEuNjQuOCAzLjA5IDIuMDMgNGg1Ljk1QTQuOTg1IDQuOTg1IDAgMCAwIDE3IDEwYzAtMi43Ni0yLjI0LTUtNS01em0yLjQzIDcuNUg5LjU3QTMuNDczIDMuNDczIDAgMCAxIDguNSAxMGMwLTEuOTMgMS41Ny0zLjUgMy41LTMuNXMzLjUgMS41NyAzLjUgMy41YzAgLjk1LS4zOSAxLjg0LTEuMDcgMi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGlnaHRidWxiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAyMWMwIC41NS40NSAxIDEgMWg0Yy41NSAwIDEtLjQ1IDEtMXYtMUg5djF6bTMtMTlDOC4xNCAyIDUgNS4xNCA1IDljMCAyLjM4IDEuMTkgNC40NyAzIDUuNzRWMTdjMCAuNTUuNDUgMSAxIDFoNmMuNTUgMCAxLS40NSAxLTF2LTIuMjZjMS44MS0xLjI3IDMtMy4zNiAzLTUuNzQgMC0zLjg2LTMuMTQtNy03LTd6bTIuODUgMTEuMS0uODUuNlYxNmgtNHYtMi4zbC0uODUtLjZBNC45OTcgNC45OTcgMCAwIDEgNyA5YzAtMi43NiAyLjI0LTUgNS01czUgMi4yNCA1IDVjMCAxLjYzLS44IDMuMTYtMi4xNSA0LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMaW5lU3R5bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE2aDV2LTJIM3Yyem02LjUgMGg1di0yaC01djJ6bTYuNSAwaDV2LTJoLTV2MnpNMyAyMGgydi0ySDN2MnptNCAwaDJ2LTJIN3Yyem00IDBoMnYtMmgtMnYyem00IDBoMnYtMmgtMnYyem00IDBoMnYtMmgtMnYyek0zIDEyaDh2LTJIM3Yyem0xMCAwaDh2LTJoLTh2MnpNMyA0djRoMThWNEgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGluZVdlaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTdoMTh2LTJIM3Yyem0wIDNoMTh2LTFIM3Yxem0wLTdoMTh2LTNIM3Yzem0wLTl2NGgxOFY0SDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiZ1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIixcIm9wYWNpdHlcIjpcIi44N1wifSxcImNoaWxkXCI6W119XX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTNoMnYtMkgzdjJ6bTAgNGgydi0ySDN2MnptMC04aDJWN0gzdjJ6bTQgNGgxNHYtMkg3djJ6bTAgNGgxNHYtMkg3djJ6TTcgN3YyaDE0VjdIN3ptLTQgNmgydi0ySDN2MnptMCA0aDJ2LTJIM3Yyem0wLThoMlY3SDN2MnptNCA0aDE0di0ySDd2MnptMCA0aDE0di0ySDd2MnpNNyA3djJoMTRWN0g3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9ja0Nsb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDIwVjEwaDEydjFjLjcgMCAxLjM3LjEgMiAuMjlWMTBjMC0xLjEtLjktMi0yLTJoLTFWNmMwLTIuNzYtMi4yNC01LTUtNVM3IDMuMjQgNyA2djJINmMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmg2LjI2Yy0uNDItLjYtLjc1LTEuMjgtLjk3LTJINnpNOSA2YzAtMS42NiAxLjM0LTMgMy0zczMgMS4zNCAzIDN2Mkg5VjZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDEzYy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXptMS42NSA3LjM1TDE3LjUgMTguMlYxNWgxdjIuNzlsMS44NSAxLjg1LS43LjcxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9ja09wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDhoLTFWNmMwLTIuNzYtMi4yNC01LTUtNVM3IDMuMjQgNyA2aDJjMC0xLjY2IDEuMzQtMyAzLTNzMyAxLjM0IDMgM3YySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWMTBjMC0xLjEtLjktMi0yLTJ6bTAgMTJINlYxMGgxMnYxMHptLTYtM2MxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NrUGVyc29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAyMFYxMGgxMnYxYy43IDAgMS4zNy4xIDIgLjI5VjEwYzAtMS4xLS45LTItMi0yaC0xVjZjMC0yLjc2LTIuMjQtNS01LTVTNyAzLjI0IDcgNnYySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoNi4yNmMtLjQyLS42LS43NS0xLjI4LS45Ny0ySDZ6TTkgNmMwLTEuNjYgMS4zNC0zIDMtM3MzIDEuMzQgMyAzdjJIOVY2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bTAgMmMuODMgMCAxLjUuNjcgMS41IDEuNVMxOC44MyAxOCAxOCAxOHMtMS41LS42Ny0xLjUtMS41LjY3LTEuNSAxLjUtMS41em0wIDZjLTEuMDMgMC0xLjk0LS41Mi0yLjQ4LTEuMzIuNzMtLjQyIDEuNTctLjY4IDIuNDgtLjY4czEuNzUuMjYgMi40OC42OGMtLjU0LjgtMS40NSAxLjMyLTIuNDggMS4zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2tSZXNldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDNhOSA5IDAgMCAwLTkgOWMwIC4wNi4wMS4xMi4wMS4xOWwtMS44NC0xLjg0LTEuNDEgMS40MUw1IDE2bDQuMjQtNC4yNC0xLjQxLTEuNDEtMS44MiAxLjgyYzAtLjA2LS4wMS0uMTEtLjAxLS4xNyAwLTMuODYgMy4xNC03IDctN3M3IDMuMTQgNyA3LTMuMTQgNy03IDdjLTEuOSAwLTMuNjItLjc2LTQuODgtMS45OUw2LjcgMTguNDJBOC45ODIgOC45ODIgMCAwIDAgMTMgMjFhOSA5IDAgMCAwIDAtMTh6bTIgOHYtMWMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDJ2MWMtLjU1IDAtMSAuNDUtMSAxdjNjMCAuNTUuNDUgMSAxIDFoNGMuNTUgMCAxLS40NSAxLTF2LTNjMC0uNTUtLjQ1LTEtMS0xem0tMSAwaC0ydi0xYzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCIsXCJvcGFjaXR5XCI6XCIuODdcIn0sXCJjaGlsZFwiOltdfV19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA4aC0xVjZjMC0yLjc2LTIuMjQtNS01LTVTNyAzLjI0IDcgNnYySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWMTBjMC0xLjEtLjktMi0yLTJ6TTkgNmMwLTEuNjYgMS4zNC0zIDMtM3MzIDEuMzQgMyAzdjJIOVY2em05IDE0SDZWMTBoMTJ2MTB6bS02LTNjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9naW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA3IDkuNiA4LjRsMi42IDIuNkgydjJoMTAuMmwtMi42IDIuNkwxMSAxN2w1LTUtNS01em05IDEyaC04djJoOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yaC04djJoOHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvZ291dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcgOC0xLjQxIDEuNDFMMTcuMTcgMTFIOXYyaDguMTdsLTEuNTggMS41OEwxNyAxNmw0LTQtNC00ek01IDVoN1YzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoN3YtMkg1VjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb3lhbHR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS40MSAxMS41OC05LTlDMTIuMDUgMi4yMiAxMS41NSAyIDExIDJINGMtMS4xIDAtMiAuOS0yIDJ2N2MwIC41NS4yMiAxLjA1LjU5IDEuNDJsOSA5Yy4zNi4zNi44Ni41OCAxLjQxLjU4czEuMDUtLjIyIDEuNDEtLjU5bDctN2MuMzctLjM2LjU5LS44Ni41OS0xLjQxcy0uMjMtMS4wNi0uNTktMS40MnpNMTMgMjAuMDEgNCAxMVY0aDd2LS4wMWw5IDktNyA3LjAyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjYuNVwiLFwiY3lcIjpcIjYuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguOSAxMi41NWMwIC41Ny4yMyAxLjA3LjYgMS40NWwzLjUgMy41IDMuNS0zLjVhMi4wNTMgMi4wNTMgMCAwIDAtMi45LTIuOWwtLjYuNi0uNi0uNTljLS4zNy0uMzgtLjg5LS42MS0xLjQ1LS42MS0xLjEzIDAtMi4wNS45Mi0yLjA1IDIuMDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNYW5hZ2VBY2NvdW50cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxOHYtLjY1YzAtLjM0LjE2LS42Ni40MS0uODFDNi4xIDE1LjUzIDguMDMgMTUgMTAgMTVjLjAzIDAgLjA1IDAgLjA4LjAxLjEtLjcuMy0xLjM3LjU5LTEuOTgtLjIyLS4wMi0uNDQtLjAzLS42Ny0uMDMtMi40MiAwLTQuNjguNjctNi42MSAxLjgyLS44OC41Mi0xLjM5IDEuNS0xLjM5IDIuNTNWMjBoOS4yNmMtLjQyLS42LS43NS0xLjI4LS45Ny0ySDR6TTEwIDEyYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptMC02YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnpNMjAuNzUgMTZjMC0uMjItLjAzLS40Mi0uMDYtLjYzbDEuMTQtMS4wMS0xLTEuNzMtMS40NS40OWMtLjMyLS4yNy0uNjgtLjQ4LTEuMDgtLjYzTDE4IDExaC0ybC0uMyAxLjQ5Yy0uNC4xNS0uNzYuMzYtMS4wOC42M2wtMS40NS0uNDktMSAxLjczIDEuMTQgMS4wMWMtLjAzLjIxLS4wNi40MS0uMDYuNjNzLjAzLjQyLjA2LjYzbC0xLjE0IDEuMDEgMSAxLjczIDEuNDUtLjQ5Yy4zMi4yNy42OC40OCAxLjA4LjYzTDE2IDIxaDJsLjMtMS40OWMuNC0uMTUuNzYtLjM2IDEuMDgtLjYzbDEuNDUuNDkgMS0xLjczLTEuMTQtMS4wMWMuMDMtLjIxLjA2LS40MS4wNi0uNjN6TTE3IDE4Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1hbmFnZUhpc3RvcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMi42OSAxOC4zNyAxLjE0LTEtMS0xLjczLTEuNDUuNDljLS4zMi0uMjctLjY4LS40OC0xLjA4LS42M0wyMCAxNGgtMmwtLjMgMS40OWMtLjQuMTUtLjc2LjM2LTEuMDguNjNsLTEuNDUtLjQ5LTEgMS43MyAxLjE0IDFjLS4wOC41LS4wOC43NiAwIDEuMjZsLTEuMTQgMSAxIDEuNzMgMS40NS0uNDljLjMyLjI3LjY4LjQ4IDEuMDguNjNMMTggMjRoMmwuMy0xLjQ5Yy40LS4xNS43Ni0uMzYgMS4wOC0uNjNsMS40NS40OSAxLTEuNzMtMS4xNC0xYy4wOC0uNTEuMDgtLjc3IDAtMS4yN3pNMTkgMjFjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyek0xMSA3djUuNDFsMi4zNiAyLjM2IDEuMDQtMS43OS0xLjQtMS4zOVY3aC0yem0xMCA1YTkgOSAwIDAgMC05LTlDOS4xNyAzIDYuNjUgNC4zMiA1IDYuMzZWNEgzdjZoNlY4SDYuMjZBNy4wMSA3LjAxIDAgMCAxIDEyIDVjMy44NiAwIDcgMy4xNCA3IDdoMnptLTEwLjE0IDYuOTFjLTIuOTktLjQ5LTUuMzUtMi45LTUuNzgtNS45MUgzLjA2Yy41IDQuNSA0LjMxIDggOC45NCA4aC4wN2wtMS4yMS0yLjA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWFya0FzVW5yZWFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi4yMyA3aDIuNmMtLjA2LS40Ny0uMzYtLjk0LS43OS0xLjE3TDEwLjUgMiAyLjggNS44M2MtLjQ4LjI2LS44LjgxLS44IDEuMzRWMTVjMCAxLjEuOSAyIDIgMlY3LjRMMTAuNSA0bDUuNzMgM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOEg3Yy0xLjEgMC0yIC45LTIgMnY5YzAgMS4xLjkgMiAyIDJoMTNjMS4xIDAgMi0uOSAyLTJ2LTljMC0xLjEtLjktMi0yLTJ6bTAgMTFIN3YtN2w2LjUgMy4zM0wyMCAxMnY3em0tNi41LTUuNjdMNyAxMGgxM2wtNi41IDMuMzN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNYXJrdW5yZWFkTWFpbGJveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZIMTB2MmgxMHYxMkg0VjhoMnY0aDJWNGg2VjBINnY2SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1heGltaXplIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDNoMTh2MkgzVjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNZWRpYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOCAxNiA0LTQtNC00djNoLTUuMDZBOC45NzQgOC45NzQgMCAwIDAgOCAzLjk1IDMuMDA1IDMuMDA1IDAgMCAwIDUgMUMzLjM0IDEgMiAyLjM0IDIgNHMxLjM0IDMgMyAzYy45NSAwIDEuNzgtLjQ1IDIuMzMtMS4xNEM5LjIzIDYuOSAxMC42IDguNzcgMTAuOTIgMTFoLTMuMUM3LjQgOS44NCA2LjMgOSA1IDljLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDNjMS4zIDAgMi40LS44NCAyLjgyLTJoMy4xYy0uMzIgMi4yMy0xLjY5IDQuMS0zLjU4IDUuMTRDNi43OCAxNy40NSA1Ljk1IDE3IDUgMTdjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDNhMi45OSAyLjk5IDAgMCAwIDIuOTktMi45NUE4Ljk3NCA4Ljk3NCAwIDAgMCAxMi45MyAxM0gxOHYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWluaW1pemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTloMTJ2Mkg2di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW9kZWxUcmFpbmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgMTMuNWMwIDItMi41IDMuNS0yLjUgNWgtMmMwLTEuNS0yLjUtMy0yLjUtNSAwLTEuOTMgMS41Ny0zLjUgMy41LTMuNXMzLjUgMS41NyAzLjUgMy41em0tMi41IDZoLTJWMjFoMnYtMS41em02LTYuNWMwIDEuNjgtLjU5IDMuMjEtMS41OCA0LjQybDEuNDIgMS40MmE4Ljk3OCA4Ljk3OCAwIDAgMC0xLTEyLjY4bC0xLjQyIDEuNDJBNi45OTMgNi45OTMgMCAwIDEgMTkgMTN6bS0zLTgtNC00djNhOSA5IDAgMCAwLTkgOWMwIDIuMjMuODIgNC4yNyAyLjE2IDUuODRsMS40Mi0xLjQyQTYuOTM4IDYuOTM4IDAgMCAxIDUgMTNjMC0zLjg2IDMuMTQtNyA3LTd2M2w0LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOZXR3b3JrUGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE0LjY3IDMuNDEgNi4wOSAyIDcuNWw4LjUgOC41SDR2MmgxNnYtMmgtNi41bDUuMTUtNS4xNUEyLjUgMi41IDAgMSAwIDE5LjUgNiAyLjUgMi41IDAgMCAwIDE3IDguNWMwIC4zNS4wNy42Ny4yLjk3bC01LjIgNS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmV3TGFiZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMSAxMi00LjM3IDYuMTZjLS4zNy41Mi0uOTguODQtMS42My44NGgtM3YtMmgzbDMuNTUtNUwxNSA3SDV2M0gzVjdjMC0xLjEuOS0yIDItMmgxMGMuNjUgMCAxLjI2LjMxIDEuNjMuODRMMjEgMTJ6bS0xMSAzSDd2LTNINXYzSDJ2MmgzdjNoMnYtM2gzdi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmV4dFBsYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuOTcgMTEuMDNDMTQuODcgOS43OSAxMy4yOCA5IDExLjUgOWMtMi44MiAwLTUuMTggMS45NS01LjgyIDQuNTZsLjk2LjMyQzcuMTUgMTEuNjYgOS4xMyAxMCAxMS41IDEwYzEuNTEgMCAyLjg1LjY4IDMuNzYgMS43NEwxMyAxNGg1VjlsLTIuMDMgMi4wM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5pZ2h0bGlnaHRSb3VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgMjJjMS4wNSAwIDIuMDUtLjE2IDMtLjQ2LTQuMDYtMS4yNy03LTUuMDYtNy05LjU0czIuOTQtOC4yNyA3LTkuNTRjLS45NS0uMy0xLjk1LS40Ni0zLS40Ni01LjUyIDAtMTAgNC40OC0xMCAxMHM0LjQ4IDEwIDEwIDEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm9BY2NvdW50cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjE4IDEwLjk0Yy4yLS40NC4zMi0uOTIuMzItMS40NEMxNS41IDcuNTcgMTMuOTMgNiAxMiA2Yy0uNTIgMC0xIC4xMi0xLjQ0LjMybDQuNjIgNC42MnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnpNNCAxMmMwLTEuODUuNjMtMy41NSAxLjY5LTQuOWwyLjg2IDIuODZhMy40NyAzLjQ3IDAgMCAwIDIuOTkgMi45OWwyLjIgMi4yYy0uNTctLjEtMS4xNS0uMTUtMS43NC0uMTUtMi4zMiAwLTQuNDUuOC02LjE0IDIuMTJBNy45NTcgNy45NTcgMCAwIDEgNCAxMnptOCA4Yy0xLjc0IDAtMy4zNC0uNTYtNC42NS0xLjVDOC42NiAxNy41NiAxMC4yNiAxNyAxMiAxN3MzLjM0LjU2IDQuNjUgMS41Yy0xLjMxLjk0LTIuOTEgMS41LTQuNjUgMS41em02LjMxLTMuMUw3LjEgNS42OUE3LjkwMiA3LjkwMiAwIDAgMSAxMiA0YzQuNDIgMCA4IDMuNTggOCA4IDAgMS44NS0uNjMgMy41NC0xLjY5IDQuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vaXNlQXdhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxNWgtMmExLjAwMyAxLjAwMyAwIDAgMS0xLjk1LjMyYy0uMTUtLjQ0LS40LTEuMDgtLjkzLTEuNjFsLTEuMzYtMS4zNkM5LjI4IDExLjg3IDkgMTEuMTkgOSAxMC41YTIuNSAyLjUgMCAwIDEgNC45NS0uNWgyLjAyYy0uMjUtMi4yNS0yLjE2LTQtNC40Ny00QzkuMDIgNiA3IDguMDIgNyAxMC41YzAgMS4yMi40OSAyLjQxIDEuMzUgMy4yN2wxLjM2IDEuMzZjLjE3LjE3LjMxLjQ0LjQ0LjgyQTMuMDEzIDMuMDEzIDAgMCAwIDEzIDE4YzEuNjUgMCAzLTEuMzUgMy0zelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEzLjVcIixcImN5XCI6XCIxMi41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMy42IDYuNTggMS41OCAxLjI2Yy4zNS0uNTcuNzctMS4xIDEuMjQtMS41N0w0Ljg1IDUuMDJjLS40Ny40Ny0uODggMS0xLjI1IDEuNTZ6TTkuNDYgNC40MmwtLjg3LTEuODFjLS42My4yMy0xLjI0LjUyLTEuOC44N2wuODcgMS44MWMuNTYtLjM2IDEuMTYtLjY1IDEuOC0uODd6TTQuNDkgOS4yNmwtMS45Ni0uNDVjLS4yMS42My0uMzYgMS4yOC0uNDQgMS45NWwxLjk2LjQ1YTcuOSA3LjkgMCAwIDEgLjQ0LTEuOTV6TTIwLjQgNi41OGE5LjQgOS40IDAgMCAwLTEuMjUtMS41NmwtMS41OCAxLjI2Yy40OC40Ny44OS45OSAxLjI0IDEuNTdsMS41OS0xLjI3ek00LjA0IDEyLjc5bC0xLjk2LjQ1Yy4wOC42Ny4yMyAxLjMzLjQ0IDEuOTVsMS45Ny0uNDVjLS4yMi0uNjItLjM4LTEuMjctLjQ1LTEuOTV6TTE3LjIxIDMuNDhjLS41Ny0uMzUtMS4xNy0uNjQtMS44LS44N2wtLjg3IDEuODFjLjY0LjIyIDEuMjQuNTEgMS44Ljg3bC44Ny0xLjgxek0xMyA0LjA3VjIuMDVjLS4zMy0uMDMtLjY2LS4wNS0xLS4wNXMtLjY3LjAyLTEgLjA1djIuMDJjLjMzLS4wNC42Ni0uMDcgMS0uMDdzLjY3LjAzIDEgLjA3ek0xMSAxOS45M3YyLjAyYy4zMy4wMy42Ni4wNSAxIC4wNXMuNjctLjAyIDEtLjA1di0yLjAyYy0uMzMuMDQtLjY2LjA3LTEgLjA3cy0uNjctLjAzLTEtLjA3ek0xOS41MSAxNC43NGwxLjk3LjQ1Yy4yMS0uNjMuMzYtMS4yOC40NC0xLjk1bC0xLjk2LS40NWMtLjA3LjY4LS4yMyAxLjMzLS40NSAxLjk1ek0xOS45NiAxMS4yMWwxLjk2LS40NWE5LjY5IDkuNjkgMCAwIDAtLjQ0LTEuOTVsLTEuOTcuNDVjLjIyLjYyLjM4IDEuMjcuNDUgMS45NXpNMTcuNTggMTcuNzNsMS41OCAxLjI2Yy40Ny0uNDguODgtMSAxLjI1LTEuNTZsLTEuNTgtMS4yNmE5LjQgOS40IDAgMCAxLTEuMjUgMS41NnpNNi43OSAyMC41MmMuNTcuMzUgMS4xNy42NCAxLjguODdsLjg3LTEuODFjLS42NC0uMjItMS4yNC0uNTEtMS44LS44N2wtLjg3IDEuODF6TTE0LjU0IDE5LjU4bC44NyAxLjgxYy42My0uMjMgMS4yNC0uNTIgMS44LS44N2wtLjg3LTEuODFjLS41Ni4zNi0xLjE2LjY1LTEuOC44N3pNMy42IDE3LjQyYTkuNCA5LjQgMCAwIDAgMS4yNSAxLjU2bDEuNTgtMS4yNmE3Ljg3IDcuODcgMCAwIDEtMS4yNC0xLjU3TDMuNiAxNy40MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vaXNlQ29udHJvbE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRjMS40NCAwIDIuNzkuMzggMy45NSAxLjA1TDE3LjQgMy42QzE1Ljg1IDIuNTkgMTMuOTkgMiAxMiAycy0zLjg1LjU5LTUuNDEgMS41OWwxLjQ1IDEuNDVBOC4wMzQgOC4wMzQgMCAwIDEgMTIgNHpNMjAgMTJjMCAxLjQ0LS4zOCAyLjc5LTEuMDUgMy45NWwxLjQ1IDEuNDVjMS4wMS0xLjU1IDEuNi0zLjQxIDEuNi01LjRzLS41OS0zLjg1LTEuNTktNS40MWwtMS40NSAxLjQ1QTguMDM0IDguMDM0IDAgMCAxIDIwIDEyek0xMiAyMGMtMS40NCAwLTIuNzktLjM4LTMuOTUtMS4wNUw2LjYgMjAuNEM4LjE1IDIxLjQxIDEwLjAxIDIyIDEyIDIyczMuODUtLjU5IDUuNDEtMS41OWwtMS40NS0xLjQ1QTguMDM0IDguMDM0IDAgMCAxIDEyIDIwek00IDEyYzAtMS40NC4zOC0yLjc5IDEuMDUtMy45NUwzLjU5IDYuNTlDMi41OSA4LjE1IDIgMTAuMDEgMiAxMnMuNTkgMy44NSAxLjU5IDUuNDFsMS40NS0xLjQ1QTguMDM0IDguMDM0IDAgMCAxIDQgMTJ6TTExLjUgNkM5LjAyIDYgNyA4LjAyIDcgMTAuNWMwIDEuMjIuNDkgMi40MSAxLjM1IDMuMjdsMS4zNiAxLjM2Yy4xNy4xNy4zMS40NC40NC44MkEzLjAxMyAzLjAxMyAwIDAgMCAxMyAxOGMxLjY1IDAgMy0xLjM1IDMtM2gtMmExLjAwMyAxLjAwMyAwIDAgMS0xLjk1LjMyYy0uMTUtLjQ0LS40LTEuMDgtLjkzLTEuNjFsLTEuMzYtMS4zNkM5LjI4IDExLjg3IDkgMTEuMTkgOSAxMC41YTIuNSAyLjUgMCAwIDEgNC45NS0uNWgyLjAyYy0uMjUtMi4yNS0yLjE2LTQtNC40Ny00elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEzLjVcIixcImN5XCI6XCIxMi41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vdEFjY2Vzc2libGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA0YzAtMS4xLjktMiAyLTJzMiAuOSAyIDItLjkgMi0yIDItMi0uOS0yLTJ6bTkgOXYtMmMtMS41NC4wMi0zLjA5LS43NS00LjA3LTEuODNsLTEuMjktMS40M2MtLjI0LS4yNC0uNDQtLjM2LS42My0uNDYtLjM2LS4xOS0uNzItLjMtMS4yLS4yNi0uNDkuMDQtLjkxLjI3LTEuMjMuNjFMMTQgMTEuMDVjMS4yOSAxLjA3IDMuMjUgMS45NCA1IDEuOTV6bS05IDdjLTEuNjYgMC0zLTEuMzQtMy0zIDAtMS4zMS44NC0yLjQxIDItMi44M1YxMi4xYTUgNSAwIDEgMCA1LjkgNS45aC0yLjA3Yy0uNDEgMS4xNi0xLjUyIDItMi44MyAyek0yLjgxIDIuODEgMS4zOSA0LjIyIDEwIDEyLjgzVjE1YzAgMS4xLjkgMiAyIDJoMi4xN2w1LjYxIDUuNjEgMS40MS0xLjQxTDIuODEgMi44MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vdFN0YXJ0ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0YzQuNDEgMCA4IDMuNTkgOCA4cy0zLjU5IDgtOCA4LTgtMy41OS04LTggMy41OS04IDgtOG0wLTJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bS0xIDZIOXY4aDJWOHptNiA0LTUtNHY4bDUtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vdGVBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6bTEtOUg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTQgMThINlY0aDd2NWg1djExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lT2ZmbGluZUJvbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyLjAyYy01LjUxIDAtOS45OCA0LjQ3LTkuOTggOS45OHM0LjQ3IDkuOTggOS45OCA5Ljk4IDkuOTgtNC40NyA5Ljk4LTkuOThTMTcuNTEgMi4wMiAxMiAyLjAyem0wIDE3Ljk2Yy00LjQgMC03Ljk4LTMuNTgtNy45OC03Ljk4UzcuNiA0LjAyIDEyIDQuMDIgMTkuOTggNy42IDE5Ljk4IDEyIDE2LjQgMTkuOTggMTIgMTkuOTh6TTEyLjc1IDVsLTQuNSA4LjVoMy4xNFYxOWw0LjM2LTguNWgtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU9mZmxpbmVQaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNSAyIDIgNi41IDIgMTJzNC41IDEwIDEwIDEwIDEwLTQuNSAxMC0xMFMxNy41IDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bS01LTVoMTB2Mkg3em0zLjMtMy44TDguNCA5LjMgNyAxMC43bDMuMyAzLjNMMTcgNy4zbC0xLjQtMS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lT25EZXZpY2VUcmFpbmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE2aDJ2MWgtMnpNMTIgMTFjLTEuMSAwLTIgLjktMiAyIDAgLjc0LjQgMS4zOCAxIDEuNzJ2Ljc4aDJ2LS43OGMuNi0uMzUgMS0uOTggMS0xLjcyIDAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxLjAxIDYgMWMtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xOCAyMUg2di0xaDEydjF6bTAtM0g2VjZoMTJ2MTJ6bTAtMTRINlYzaDEydjF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjAxIDE1Ljk1Yy42Mi0uODMuOTktMS44NC45OS0yLjk1cy0uMzctMi4xMi0uOTktMi45NWwtMS4wNyAxLjA3Yy4zNS41NC41NiAxLjE5LjU2IDEuODhzLS4yMSAxLjM0LS41NiAxLjg4bDEuMDcgMS4wN3pNOS4wNiAxNC44OGMtLjM1LS41NC0uNTYtMS4xOS0uNTYtMS44OCAwLTEuOTMgMS41Ny0zLjUgMy41LTMuNXYxLjI1bDIuMjUtMi0yLjI1LTJWOGMtMi43NiAwLTUgMi4yNC01IDUgMCAxLjExLjM3IDIuMTIuOTkgMi45NWwxLjA3LTEuMDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVPbmxpbmVQcmVkaWN0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSAxMS41YzAgMi0yLjUgMy41LTIuNSA1aC0yYzAtMS41LTIuNS0zLTIuNS01QzguNSA5LjU3IDEwLjA3IDggMTIgOHMzLjUgMS41NyAzLjUgMy41em0tMi41IDZoLTJWMTloMnYtMS41em05LTUuNWMwLTIuNzYtMS4xMi01LjI2LTIuOTMtNy4wN2wtMS4wNiAxLjA2QTguNDgxIDguNDgxIDAgMCAxIDIwLjUgMTJjMCAyLjM0LS45NSA0LjQ3LTIuNDkgNi4wMWwxLjA2IDEuMDZBOS45NjkgOS45NjkgMCAwIDAgMjIgMTJ6TTMuNSAxMmMwLTIuMzQuOTUtNC40NyAyLjQ5LTYuMDFMNC45MyA0LjkzQTkuOTY5IDkuOTY5IDAgMCAwIDIgMTJjMCAyLjc2IDEuMTIgNS4yNiAyLjkzIDcuMDdsMS4wNi0xLjA2QTguNDgxIDguNDgxIDAgMCAxIDMuNSAxMnptMTQgMGMwIDEuNTItLjYyIDIuODktMS42MSAzLjg5bDEuMDYgMS4wNkE2Ljk3NiA2Ljk3NiAwIDAgMCAxOSAxMmMwLTEuOTMtLjc4LTMuNjgtMi4wNS00Ljk1bC0xLjA2IDEuMDZjLjk5IDEgMS42MSAyLjM3IDEuNjEgMy44OXpNNy4wNSAxNi45NWwxLjA2LTEuMDZjLTEtMS0xLjYxLTIuMzctMS42MS0zLjg5cy42Mi0yLjg5IDEuNjEtMy44OUw3LjA1IDcuMDVBNi45NzYgNi45NzYgMCAwIDAgNSAxMmMwIDEuOTMuNzggMy42OCAyLjA1IDQuOTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVPcGFjaXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0yNCAwSDB2MjRoMjRWMHptMCAwSDB2MjRoMjRWMHpNMCAyNGgyNFYwSDB2MjR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjY2IDggMTIgMi4zNSA2LjM0IDhBOC4wMiA4LjAyIDAgMCAwIDQgMTMuNjRjMCAyIC43OCA0LjExIDIuMzQgNS42N2E3Ljk5IDcuOTkgMCAwIDAgMTEuMzIgMGMxLjU2LTEuNTYgMi4zNC0zLjY3IDIuMzQtNS42N1MxOS4yMiA5LjU2IDE3LjY2IDh6TTYgMTRjLjAxLTIgLjYyLTMuMjcgMS43Ni00LjRMMTIgNS4yN2w0LjI0IDQuMzhDMTcuMzggMTAuNzcgMTcuOTkgMTIgMTggMTRINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU9wZW5JbkJyb3dzZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDRINWEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoNHYtMkg1VjhoMTR2MTBoLTR2Mmg0YzEuMSAwIDItLjkgMi0yVjZhMiAyIDAgMCAwLTItMnptLTcgNi00IDRoM3Y2aDJ2LTZoM2wtNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lT3BlbkluRnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDExVjNoLThsMy4yOSAzLjI5LTEwIDEwTDMgMTN2OGg4bC0zLjI5LTMuMjkgMTAtMTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVPcGVuSW5OZXdPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi43OSA1LjggMTQgM2g3djdsLTIuNzktMi44LTQuMDkgNC4wOS0xLjQxLTEuNDEgNC4wOC00LjA4ek0xOSAxMnY0LjE3bDIgMlYxMmgtMnptLjc4IDEwLjYxTDE4LjE3IDIxSDVhMiAyIDAgMCAxLTItMlY1LjgzTDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOCAxOC4zOC0xLjQgMS40MnpNMTYuMTcgMTlsLTQuODgtNC44OC0xLjU5IDEuNTktMS40MS0xLjQxIDEuNTktMS41OUw1IDcuODNWMTloMTEuMTd6TTcuODMgNUgxMlYzSDUuODNsMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lT3BlbkluTmV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxOUg1VjVoN1YzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi03aC0ydjd6TTE0IDN2MmgzLjU5bC05LjgzIDkuODMgMS40MSAxLjQxTDE5IDYuNDFWMTBoMlYzaC03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lT3BlbldpdGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDloNFY2aDNsLTUtNS01IDVoM3Yzem0tMSAxSDZWN2wtNSA1IDUgNXYtM2gzdi00em0xNCAyLTUtNXYzaC0zdjRoM3YzbDUtNXptLTkgM2gtNHYzSDdsNSA1IDUtNWgtM3YtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU91dGJvbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0YzQuNDEgMCA4IDMuNTkgOCA4cy0zLjU5IDgtOCA4LTgtMy41OS04LTggMy41OS04IDgtOG0wLTJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEuODggOS41NEw4LjkyIDE2LjVsLTEuNDEtMS40MSA0Ljk2LTQuOTZMMTAuMzQgOGw1LjY1LjAxLjAxIDUuNjUtMi4xMi0yLjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lT3V0Ym91bmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0YzQuNDEgMCA4IDMuNTkgOCA4cy0zLjU5IDgtOCA4LTgtMy41OS04LTggMy41OS04IDgtOG0wLTJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEuODggOS41NEw4LjkyIDE2LjVsLTEuNDEtMS40MSA0Ljk2LTQuOTZMMTAuMzQgOGw1LjY1LjAxLjAxIDUuNjUtMi4xMi0yLjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lT3V0Ym94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgOS44M1YxNGgyVjkuODNsMS41OSAxLjU4TDE2IDEwbC00LTQtNCA0IDEuNDEgMS40MXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINXYtM2gzLjAyYy45MSAxLjIxIDIuMzUgMiAzLjk4IDJzMy4wNi0uNzkgMy45OC0ySDE5djN6bTAtNWgtNC4xOGMtLjQxIDEuMTYtMS41MSAyLTIuODIgMnMtMi40LS44NC0yLjgyLTJINVY1aDE0djl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVPdXRsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0YzQuNDEgMCA4IDMuNTkgOCA4cy0zLjU5IDgtOCA4LTgtMy41OS04LTggMy41OS04IDgtOG0wLTJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bS0yIDlWOGMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXYzYzAgLjU1LjQ1IDEgMSAxczEtLjQ1IDEtMXptNiAwVjhjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2M2MwIC41NS40NSAxIDEgMXMxLS40NSAxLTF6bS0yIDVjMC0xLjEtLjktMi0yLTJzLTIgLjktMiAydjJoNHYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU91dHB1dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3IDE3IDUtNS01LTUtMS40MSAxLjQxTDE4LjE3IDExSDl2Mmg5LjE3bC0yLjU4IDIuNTl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDE5SDVWNWgxNHYyaDJWNWEyIDIgMCAwIDAtMi0ySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRhMiAyIDAgMCAwIDItMnYtMmgtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGFnZXZpZXcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjQ5IDE2Yy44OCAwIDEuNy0uMjYgMi4zOS0uN2wyLjQ0IDIuNDQgMS40Mi0xLjQyLTIuNDQtMi40M2MuNDQtLjcuNy0xLjUxLjctMi4zOUMxNiA5LjAxIDEzLjk5IDcgMTEuNSA3UzcgOS4wMSA3IDExLjUgOS4wMSAxNiAxMS40OSAxNnptLjAxLTdhMi41IDIuNSAwIDAgMSAwIDUgMi41IDIuNSAwIDAgMSAwLTV6TTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE0SDRWNmgxNnYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBhaWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptLjg5LTguOWMtMS43OC0uNTktMi42NC0uOTYtMi42NC0xLjkgMC0xLjAyIDEuMTEtMS4zOSAxLjgxLTEuMzkgMS4zMSAwIDEuNzkuOTkgMS45IDEuMzRsMS41OC0uNjdjLS4xNS0uNDQtLjgyLTEuOTEtMi42Ni0yLjIzVjVoLTEuNzV2MS4yNmMtMi42LjU2LTIuNjIgMi44NS0yLjYyIDIuOTYgMCAyLjI3IDIuMjUgMi45MSAzLjM1IDMuMzEgMS41OC41NiAyLjI4IDEuMDcgMi4yOCAyLjAzIDAgMS4xMy0xLjA1IDEuNjEtMS45OCAxLjYxLTEuODIgMC0yLjM0LTEuODctMi40LTIuMDlsLTEuNjYuNjdjLjYzIDIuMTkgMi4yOCAyLjc4IDMuMDIgMi45NlYxOWgxLjc1di0xLjI0Yy41Mi0uMDkgMy4wMi0uNTkgMy4wMi0zLjIyLjAxLTEuMzktLjYtMi42MS0zLTMuNDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQYW5Ub29sQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTguODkgMTEuNzctMy44LTEuNjdjLS4xMy0uMDYtLjI4LS4xLS40NC0uMUgxNFY1LjVhMi41IDIuNSAwIDAgMC01IDB2OC4xNWwtMS44Ny0uNGMtLjE5LS4wMy0xLjAyLS4xNS0xLjczLjU2TDQgMTUuMjJsNS4xMiA1LjE5Yy4zNy4zOC44OC41OSAxLjQxLjU5aDYuNTVjLjk4IDAgMS44MS0uNyAxLjk3LTEuNjdsLjkyLTUuNDRhMiAyIDAgMCAwLTEuMDgtMi4xMnpNMTcuMDggMTloLTYuNTVsLTMuNy0zLjc4IDQuMTcuODlWNS41YzAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41djYuMThoMS43NkwxOCAxMy41NiAxNy4wOCAxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBhblRvb2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAyNGgtNi41NWMtMS4wOCAwLTIuMTQtLjQ1LTIuODktMS4yM2wtNy4zLTcuNjEgMi4wNy0xLjgzYy42Mi0uNTUgMS41My0uNjYgMi4yNi0uMjdMOCAxNC4zNFY0Ljc5YTIuNSAyLjUgMCAwIDEgMy4wMS0yLjQ1QzExLjEgMS4wNCAxMi4xOC4wMSAxMy41LjAxYy44NiAwIDEuNjEuNDMgMi4wNiAxLjA5LjI5LS4xMi42MS0uMTguOTQtLjE4YTIuNSAyLjUgMCAwIDEgMi41IDIuNXYuMjhhMi41IDIuNSAwIDAgMSAzIDIuNDVWMjBjMCAyLjIxLTEuNzkgNC00IDR6TTQuMTQgMTUuMjhsNS44NiA2LjFjLjM4LjM5LjkuNjIgMS40NC42MkgxOGMxLjEgMCAyLS45IDItMlY2LjE1YzAtLjI4LS4yMi0uNS0uNS0uNXMtLjUuMjItLjUuNVYxMmgtMlYzLjQyYzAtLjI4LS4yMi0uNS0uNS0uNXMtLjUuMjItLjUuNVYxMmgtMlYyLjUxYzAtLjI4LS4yMi0uNS0uNS0uNXMtLjUuMjItLjUuNVYxMmgtMlY0Ljc5YzAtLjI4LS4yMi0uNS0uNS0uNXMtLjUuMjMtLjUuNXYxMi44N2wtNS4zNS0yLjgzLS41MS40NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBheW1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMThjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWNmMwLTEuMTEtLjg5LTItMi0yem0wIDE0SDR2LTZoMTZ2NnptMC0xMEg0VjZoMTZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlbmRpbmdBY3Rpb25zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTJjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0xLjY1IDcuMzVMMTYuNSAxNy4yVjE0aDF2Mi43OWwxLjg1IDEuODUtLjcuNzF6TTE4IDNoLTMuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxcy0yLjQuODQtMi44MiAySDZjLTEuMSAwLTIgLjktMiAydjE1YzAgMS4xLjkgMiAyIDJoNi4xMWE2Ljc0MyA2Ljc0MyAwIDAgMS0xLjQyLTJINlY1aDJ2M2g4VjVoMnY1LjA4Yy43MS4xIDEuMzguMzEgMiAuNlY1YzAtMS4xLS45LTItMi0yem0tNiAyYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZW5kaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiN1wiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxN1wiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlcmNlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgNEM1LjU3IDQgNCA1LjU3IDQgNy41UzUuNTcgMTEgNy41IDExIDExIDkuNDMgMTEgNy41IDkuNDMgNCA3LjUgNHptMCA1QzYuNjcgOSA2IDguMzMgNiA3LjVTNi42NyA2IDcuNSA2IDkgNi42NyA5IDcuNSA4LjMzIDkgNy41IDl6bTkgNGMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNSAzLjUtMS41NyAzLjUtMy41LTEuNTctMy41LTMuNS0zLjV6bTAgNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6TTUuNDEgMjAgNCAxOC41OSAxOC41OSA0IDIwIDUuNDEgNS40MSAyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlcm1DYW1lcmFNaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDZjLTEuMSAwLTIgLjktMiAydjRjMCAxLjEuOSAyIDIgMnMyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem04LTFoLTMuMTdsLTEuODYtMkg4Ljk2TDcuMTcgNUg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bTAgMTRoLTd2LTEuMDljMi44My0uNDggNS0yLjk0IDUtNS45MWgtMmMwIDIuMjEtMS43OSA0LTQgNHMtNC0xLjc5LTQtNEg2YzAgMi45NyAyLjE3IDUuNDMgNSA1LjkxVjE5SDRWN2g0LjIxbC41OS0uNjVMMTAuMDQgNWg0LjI0bDEuMjQgMS4zNS41OS42NUgyMHYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlcm1Db250YWN0Q2FsZW5kYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjg0IDQuMjJjLS4wNS0uMTItLjExLS4yMy0uMTgtLjM0LS4xNC0uMjEtLjMzLS40LS41NC0uNTQtLjExLS4wNy0uMjItLjEzLS4zNC0uMTgtLjI0LS4xLS41LS4xNi0uNzgtLjE2aC0xVjFoLTJ2Mkg4VjFINnYySDVjLS40MiAwLS44LjEzLTEuMTIuMzQtLjIxLjE0LS40LjMzLS41NC41NC0uMDcuMTEtLjEzLjIyLS4xOC4zNC0uMS4yNC0uMTYuNS0uMTYuNzh2MTRhMiAyIDAgMCAwIDIgMmgxNGMuMjggMCAuNTQtLjA2Ljc4LS4xNi4xMi0uMDUuMjMtLjExLjM0LS4xOC4yMS0uMTQuNC0uMzMuNTQtLjU0LjIxLS4zMi4zNC0uNzEuMzQtMS4xMlY1YzAtLjI4LS4wNi0uNTQtLjE2LS43OHpNNSAxOVY1aDE0djE0SDV6bTctNi4xMmMtMi4wMyAwLTYgMS4wOC02IDMuNThWMThoMTJ2LTEuNTNjMC0yLjUxLTMuOTctMy41OS02LTMuNTl6TTguMzEgMTZjLjY5LS41NiAyLjM4LTEuMTIgMy42OS0xLjEyczMuMDEuNTYgMy42OSAxLjEySDguMzF6TTEyIDEyYzEuNjUgMCAzLTEuMzUgMy0zcy0xLjM1LTMtMy0zLTMgMS4zNS0zIDMgMS4zNSAzIDMgM3ptMC00Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXJtRGF0YVNldHRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3Ljk5IDExLjU3SDIwVjBMMCAyMGgxMS41NnYtMkg0LjgzTDE3Ljk5IDQuODN2Ni43NHptNS43OCA4Ljc1LTEuMDctLjgzYy4wMi0uMTYuMDQtLjMyLjA0LS40OSAwLS4xNy0uMDEtLjMzLS4wNC0uNDlsMS4wNi0uODNhLjI2LjI2IDAgMCAwIC4wNi0uMzJsLTEtMS43M2MtLjA2LS4xMS0uMTktLjE1LS4zMS0uMTFsLTEuMjQuNWMtLjI2LS4yLS41NC0uMzctLjg1LS40OWwtLjE5LTEuMzJjLS4wMS0uMTItLjEyLS4yMS0uMjQtLjIxaC0yYy0uMTIgMC0uMjMuMDktLjI1LjIxbC0uMTkgMS4zMmMtLjMuMTMtLjU5LjI5LS44NS40OWwtMS4yNC0uNWMtLjExLS4wNC0uMjQgMC0uMzEuMTFsLTEgMS43M2MtLjA2LjExLS4wNC4yNC4wNi4zMmwxLjA2LjgzYTMuOTA4IDMuOTA4IDAgMCAwIDAgLjk4bC0xLjA2LjgzYS4yNi4yNiAwIDAgMC0uMDYuMzJsMSAxLjczYy4wNi4xMS4xOS4xNS4zMS4xMWwxLjI0LS41Yy4yNi4yLjU0LjM3Ljg1LjQ5bC4xOSAxLjMyYy4wMi4xMi4xMi4yMS4yNS4yMWgyYy4xMiAwIC4yMy0uMDkuMjUtLjIxbC4xOS0xLjMyYy4zLS4xMy41OS0uMjkuODQtLjQ5bDEuMjUuNWMuMTEuMDQuMjQgMCAuMzEtLjExbDEtMS43M2EuMjYuMjYgMCAwIDAtLjA2LS4zMnptLTQuNzguMThjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGVybURldmljZUluZm9ybWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA3aDJ2MmgtMnptMCA0aDJ2NmgtMnptNi05Ljk5TDcgMWMtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNyAyMUg3di0xaDEwdjF6bTAtM0g3VjZoMTB2MTJ6TTcgNFYzaDEwdjFIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlcm1JZGVudGl0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNmMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJtMCA5YzIuNyAwIDUuOCAxLjI5IDYgMnYxSDZ2LS45OWMuMi0uNzIgMy4zLTIuMDEgNi0yLjAxbTAtMTFDOS43OSA0IDggNS43OSA4IDhzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTAgOWMtMi42NyAwLTggMS4zNC04IDR2M2gxNnYtM2MwLTIuNjYtNS4zMy00LTgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlcm1NZWRpYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA2SDB2NWguMDFMMCAyMGMwIDEuMS45IDIgMiAyaDE4di0ySDJWNnptNSA5aDE0bC0zLjUtNC41LTIuNSAzLjAxTDExLjUgOXpNMjIgNGgtOGwtMi0ySDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNCAxNmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTJINlY0aDUuMTdsMS40MSAxLjQxLjU5LjU5SDIydjEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGVybVBob25lTXNnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxNS41Yy0xLjI1IDAtMi40NS0uMi0zLjU3LS41Ny0uMS0uMDMtLjIxLS4wNS0uMzEtLjA1LS4yNiAwLS41MS4xLS43MS4yOWwtMi4yIDIuMmExNS4wNzQgMTUuMDc0IDAgMCAxLTYuNTktNi41OGwyLjItMi4yMWMuMjgtLjI3LjM2LS42Ni4yNS0xLjAxQTExLjM2IDExLjM2IDAgMCAxIDguNSA0YzAtLjU1LS40NS0xLTEtMUg0Yy0uNTUgMC0xIC40NS0xIDEgMCA5LjM5IDcuNjEgMTcgMTcgMTcgLjU1IDAgMS0uNDUgMS0xdi0zLjVjMC0uNTUtLjQ1LTEtMS0xek01LjAzIDVoMS41Yy4wNy44OC4yMiAxLjc1LjQ2IDIuNTlMNS43OSA4LjhjLS40MS0xLjIxLS42Ny0yLjQ4LS43Ni0zLjh6TTE5IDE4Ljk3Yy0xLjMyLS4wOS0yLjYtLjM1LTMuOC0uNzZsMS4yLTEuMmMuODUuMjQgMS43Mi4zOSAyLjYuNDV2MS41MXpNMTIgM3YxMGwzLTNoNlYzaC05em03IDVoLTVWNWg1djN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXJtU2NhbldpZmkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDNDNi45NSAzIDMuMTUgNC44NSAwIDcuMjNMMTIgMjIgMjQgNy4yNUMyMC44NSA0Ljg3IDE3LjA1IDMgMTIgM3pNMi45MiA3LjY1QzUuOCA1Ljg1IDguNzQgNSAxMiA1YzMuMjUgMCA2LjE4Ljg1IDkuMDggMi42N0wxMiAxOC44MyAyLjkyIDcuNjV6TTExIDEwaDJ2NmgtMnptMC00aDJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBldHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNC41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIyLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiNS41XCIsXCJyXCI6XCIyLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjUuNVwiLFwiclwiOlwiMi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTkuNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjM0IDE0Ljg2Yy0uODctMS4wMi0xLjYtMS44OS0yLjQ4LTIuOTEtLjQ2LS41NC0xLjA1LTEuMDgtMS43NS0xLjMyLS4xMS0uMDQtLjIyLS4wNy0uMzMtLjA5LS4yNS0uMDQtLjUyLS4wNC0uNzgtLjA0cy0uNTMgMC0uNzkuMDVjLS4xMS4wMi0uMjIuMDUtLjMzLjA5LS43LjI0LTEuMjguNzgtMS43NSAxLjMyLS44NyAxLjAyLTEuNiAxLjg5LTIuNDggMi45MS0xLjMxIDEuMzEtMi45MiAyLjc2LTIuNjIgNC43OS4yOSAxLjAyIDEuMDIgMi4wMyAyLjMzIDIuMzIuNzMuMTUgMy4wNi0uNDQgNS41NC0uNDRoLjE4YzIuNDggMCA0LjgxLjU4IDUuNTQuNDQgMS4zMS0uMjkgMi4wNC0xLjMxIDIuMzMtMi4zMi4zMS0yLjA0LTEuMy0zLjQ5LTIuNjEtNC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgOWgxLjV2NkgxM3YtMi41aC0yVjE1SDkuNVY5SDExdjJoMlY5em0tNSAxLjV2MWMwIC44LS43IDEuNS0xLjUgMS41aC0ydjJIM1Y5aDMuNWMuOCAwIDEuNS43IDEuNSAxLjV6bS0xLjUgMGgtMnYxaDJ2LTF6bTE1IDB2MWMwIC44LS43IDEuNS0xLjUgMS41aC0ydjJoLTEuNVY5SDIwYy44IDAgMS41LjcgMS41IDEuNXptLTEuNSAwaC0ydjFoMnYtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBpY3R1cmVJblBpY3R1cmVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDExaC04djZoOHYtNnptLTIgNGgtNHYtMmg0djJ6bTQtMTJIM2MtMS4xIDAtMiAuODgtMiAxLjk4VjE5YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNC45OEMyMyAzLjg4IDIyLjEgMyAyMSAzem0wIDE2LjAySDNWNC45N2gxOHYxNC4wNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBpY3R1cmVJblBpY3R1cmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDdoLTh2Nmg4Vjd6bS0yIDRoLTRWOWg0djJ6bTQtOEgzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDEuOTggMiAxLjk4aDE4YzEuMSAwIDItLjg4IDItMS45OFY1YzAtMS4xLS45LTItMi0yem0wIDE2LjAxSDNWNC45OGgxOHYxNC4wM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBpbkVuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDEyVjZINHYxMmgxMHYySDRjLTEuMSAwLTItLjktMi0yVjZjMC0xLjEuOS0yIDItMmgxNmMxLjEgMCAyIC45IDIgMnY2aC0yem0tMSAyYy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3ptLTQuMzQtNkg5djUuNjZoMnYtMi4yNGwyLjk1IDIuOTUgMS40MS0xLjQxTDEyLjQxIDEwaDIuMjRWOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBpbkludm9rZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDEydjZjMCAxLjEtLjkgMi0yIDJINGMtMS4xIDAtMi0uOS0yLTJWNmMwLTEuMS45LTIgMi0yaDEwdjJINHYxMmgxNnYtNmgyem0wLTVjMC0xLjY2LTEuMzQtMy0zLTNzLTMgMS4zNC0zIDMgMS4zNCAzIDMgMyAzLTEuMzQgMy0zek05LjM0IDEyaDIuMjRsLTIuOTUgMi45NSAxLjQxIDEuNDFMMTMgMTMuNDJ2Mi4yNGgyVjEwSDkuMzR2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBpbmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAyLjVWMWg1djVIOS41VjMuNTZMMy41NiA5LjVINlYxMUgxVjZoMS41djIuNDRMOC40NCAyLjVINnptMTUuODkgMTEuMjctMy44LTEuNjdjLS4xMy0uMDYtLjI4LS4xLS40NC0uMUgxN1Y3LjVhMi41IDIuNSAwIDAgMC01IDB2OC4xNWwtMS44Ny0uNGMtLjE5LS4wMy0xLjAyLS4xNS0xLjczLjU2TDcgMTcuMjJsNS4xMiA1LjE5Yy4zNy4zOC44OC41OSAxLjQxLjU5aDYuNTVjLjk4IDAgMS44MS0uNyAxLjk3LTEuNjdsLjkyLTUuNDRhMiAyIDAgMCAwLTEuMDgtMi4xMnpNMjAuMDggMjFoLTYuNTVsLTMuNy0zLjc4IDQuMTcuODlWNy41YzAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41djYuMThoMS43NkwyMSAxNS41NiAyMC4wOCAyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBsYWdpYXJpc20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjg5IDIgMS45OSAySDE4YzEuMSAwIDItLjkgMi0yVjhsLTYtNnptNCAxOEg2VjRoN3Y1aDV2MTF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMDMgMTEuMDNhMy40OTUgMy40OTUgMCAwIDAgMCA0Ljk1IDMuNDggMy40OCAwIDAgMCA0LjEzLjU5bDEuODggMS44OCAxLjQxLTEuNDEtMS44OC0xLjg4Yy43MS0xLjMzLjUzLTMuMDEtLjU5LTQuMTNhMy40OTUgMy40OTUgMCAwIDAtNC45NSAwem0zLjUzIDMuNTNjLS41OS41OS0xLjU0LjU5LTIuMTIgMGExLjQ5IDEuNDkgMCAwIDEgMC0yLjEyIDEuNDkgMS40OSAwIDAgMSAyLjEyIDBjLjU5LjU5LjU5IDEuNTMgMCAyLjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGxheUZvcldvcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDV2NS41OUg3LjVsNC41IDQuNSA0LjUtNC41SDEzVjVoLTJ6bS01IDljMCAzLjMxIDIuNjkgNiA2IDZzNi0yLjY5IDYtNmgtMmMwIDIuMjEtMS43OSA0LTQgNHMtNC0xLjc5LTQtNEg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUG9seW1lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNGgtNEw3LjExIDE2LjYzIDQuNSAxMiA5IDRINUwuNSAxMiA1IDIwaDRsNy44OS0xMi42M0wxOS41IDEyIDE1IDIwaDRsNC41LThMMTkgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBvd2VyU2V0dGluZ3NOZXcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDNoLTJ2MTBoMlYzem00LjgzIDIuMTctMS40MiAxLjQyQTYuOTIgNi45MiAwIDAgMSAxOSAxMmMwIDMuODctMy4xMyA3LTcgN0E2Ljk5NSA2Ljk5NSAwIDAgMSA3LjU4IDYuNThMNi4xNyA1LjE3QTguOTMyIDguOTMyIDAgMCAwIDMgMTJhOSA5IDAgMCAwIDE4IDBjMC0yLjc0LTEuMjMtNS4xOC0zLjE3LTYuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQcmVnbmFudFdvbWFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA0YzAtMS4xMS44OS0yIDItMnMyIC44OSAyIDItLjg5IDItMiAyLTItLjg5LTItMnptNyA5YTMuMjg1IDMuMjg1IDAgMCAwLTItM2MwLTEuNjYtMS4zNC0zLTMtM3MtMyAxLjM0LTMgM3Y3aDJ2NWgzdi01aDN2LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQcmV2aWV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YTIgMiAwIDAgMC0yLTJ6bTAgMTZINVY3aDE0djEyem0tNy04LjVjMS44NCAwIDMuNDguOTYgNC4zNCAyLjUtLjg2IDEuNTQtMi41IDIuNS00LjM0IDIuNXMtMy40OC0uOTYtNC4zNC0yLjVjLjg2LTEuNTQgMi41LTIuNSA0LjM0LTIuNU0xMiA5Yy0yLjczIDAtNS4wNiAxLjY2LTYgNCAuOTQgMi4zNCAzLjI3IDQgNiA0czUuMDYtMS42NiA2LTRjLS45NC0yLjM0LTMuMjctNC02LTR6bTAgNS41Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVByaW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA4aC0xVjNINnY1SDVjLTEuNjYgMC0zIDEuMzQtMyAzdjZoNHY0aDEydi00aDR2LTZjMC0xLjY2LTEuMzQtMy0zLTN6TTggNWg4djNIOFY1em04IDEydjJIOHYtNGg4djJ6bTItMnYtMkg2djJINHYtNGMwLS41NS40NS0xIDEtMWgxNGMuNTUgMCAxIC40NSAxIDF2NGgtMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxOFwiLFwiY3lcIjpcIjExLjVcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVByaXZhY3lUaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiAzLjE5IDcgMy4xMVYxMWMwIDQuNTItMi45OCA4LjY5LTcgOS45My00LjAyLTEuMjQtNy01LjQxLTctOS45M1Y2LjNsNy0zLjExTTEyIDEgMyA1djZjMCA1LjU1IDMuODQgMTAuNzQgOSAxMiA1LjE2LTEuMjYgOS02LjQ1IDktMTJWNWwtOS00em0tMSA2aDJ2MmgtMlY3em0wIDRoMnY2aC0ydi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUHJpdmF0ZUNvbm5lY3Rpdml0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDdjMi43NiAwIDUgMi4yNCA1IDVzLTIuMjQgNS01IDUtNS0yLjI0LTUtNSAyLjI0LTUgNS01em0tNi45MyA2Yy40OSAzLjM5IDMuNCA2IDYuOTMgNnM2LjQ0LTIuNjEgNi45My02SDIydi0yaC0zLjA3Yy0uNDktMy4zOS0zLjQtNi02LjkzLTZzLTYuNDQgMi42MS02LjkzIDZIMnYyaDMuMDd6TTE0IDEwLjV2LS44OWMwLTEtLjY4LTEuOTItMS42Ni0yLjA4QTIgMiAwIDAgMCAxMCA5LjV2MWMtLjU1IDAtMSAuNDUtMSAxdjNjMCAuNTUuNDUgMSAxIDFoNGMuNTUgMCAxLS40NSAxLTF2LTNjMC0uNTUtLjQ1LTEtMS0xem0tMiAzLjI1Yy0uNDEgMC0uNzUtLjM0LS43NS0uNzVzLjM0LS43NS43NS0uNzUuNzUuMzQuNzUuNzUtLjM0Ljc1LS43NS43NXptMS0zLjI1aC0ydi0xYzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUHJvZHVjdGlvblF1YW50aXR5TGltaXRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTBoLTJWOGgydjJ6bTAtNGgtMlYxaDJ2NXpNNyAxOGMtMS4xIDAtMS45OS45LTEuOTkgMlM1LjkgMjIgNyAyMnMyLS45IDItMi0uOS0yLTItMnptMTAgMGMtMS4xIDAtMS45OS45LTEuOTkgMnMuODkgMiAxLjk5IDIgMi0uOSAyLTItLjktMi0yLTJ6bS04LjktNWg3LjQ1Yy43NSAwIDEuNDEtLjQxIDEuNzUtMS4wM0wyMSA0Ljk2IDE5LjI1IDRsLTMuNyA3SDguNTNMNC4yNyAySDF2MmgybDMuNiA3LjU5LTEuMzUgMi40NEM0LjUyIDE1LjM3IDUuNDggMTcgNyAxN2gxMnYtMkg3bDEuMS0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUHVibGlzaGVkV2l0aENoYW5nZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC42IDE5LjVIMjF2MmgtNnYtNmgydjIuNzNjMS44My0xLjQ3IDMtMy43MSAzLTYuMjMgMC00LjA3LTMuMDYtNy40NC03LTcuOTNWMi4wNWM1LjA1LjUgOSA0Ljc2IDkgOS45NSAwIDIuOTktMS4zMiA1LjY3LTMuNCA3LjV6TTQgMTJjMC0yLjUyIDEuMTctNC43NyAzLTYuMjNWOC41aDJ2LTZIM3YyaDIuNEE5Ljk2NiA5Ljk2NiAwIDAgMCAyIDEyYzAgNS4xOSAzLjk1IDkuNDUgOSA5Ljk1di0yLjAyYy0zLjk0LS40OS03LTMuODYtNy03Ljkzem0xMi4yNC0zLjg5LTUuNjYgNS42Ni0yLjgzLTIuODMtMS40MSAxLjQxIDQuMjQgNC4yNCA3LjA3LTcuMDctMS40MS0xLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUXVlcnlCdWlsZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bS41LTEzSDExdjZsNS4yNSAzLjE1Ljc1LTEuMjMtNC41LTIuNjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVRdWVzdGlvbkFuc3dlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgNHY3SDUuMTdsLS41OS41OS0uNTguNThWNGgxMW0xLTJIM2MtLjU1IDAtMSAuNDUtMSAxdjE0bDQtNGgxMGMuNTUgMCAxLS40NSAxLTFWM2MwLS41NS0uNDUtMS0xLTF6bTUgNGgtMnY5SDZ2MmMwIC41NS40NSAxIDEgMWgxMWw0IDRWN2MwLS41NS0uNDUtMS0xLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVRdWVzdGlvbk1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4wNyAxMi44NWMuNzctMS4zOSAyLjI1LTIuMjEgMy4xMS0zLjQ0LjkxLTEuMjkuNC0zLjctMi4xOC0zLjctMS42OSAwLTIuNTIgMS4yOC0yLjg3IDIuMzRMNi41NCA2Ljk2QzcuMjUgNC44MyA5LjE4IDMgMTEuOTkgM2MyLjM1IDAgMy45NiAxLjA3IDQuNzggMi40MS43IDEuMTUgMS4xMSAzLjMuMDMgNC45LTEuMiAxLjc3LTIuMzUgMi4zMS0yLjk3IDMuNDUtLjI1LjQ2LS4zNS43Ni0uMzUgMi4yNGgtMi44OWMtLjAxLS43OC0uMTMtMi4wNS40OC0zLjE1ek0xNCAyMGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgLjktMiAyLTIgMiAuOSAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVRdWlja3JlcGx5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxNy4xN1Y0aDE2djZoMlY0YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAyMmw0LTRoOXYtMkg1LjE3TDQgMTcuMTd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyLjUgMTZoLTIuMmwxLjctNGgtNXY2aDJ2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlY2VpcHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjUgMy41IDE4IDJsLTEuNSAxLjVMMTUgMmwtMS41IDEuNUwxMiAybC0xLjUgMS41TDkgMiA3LjUgMy41IDYgMiA0LjUgMy41IDMgMnYyMGwxLjUtMS41TDYgMjJsMS41LTEuNUw5IDIybDEuNS0xLjVMMTIgMjJsMS41LTEuNUwxNSAyMmwxLjUtMS41TDE4IDIybDEuNS0xLjVMMjEgMjJWMmwtMS41IDEuNXpNMTkgMTkuMDlINVY0LjkxaDE0djE0LjE4ek02IDE1aDEydjJINnptMC00aDEydjJINnptMC00aDEydjJINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlY29yZFZvaWNlT3ZlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxM2MyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNC00IDEuNzktNCA0IDEuNzkgNCA0IDR6bTAtNmMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6bTAgOGMtMi42NyAwLTggMS4zNC04IDR2MmgxNnYtMmMwLTIuNjYtNS4zMy00LTgtNHptLTYgNGMuMjItLjcyIDMuMzEtMiA2LTIgMi43IDAgNS44IDEuMjkgNiAySDN6TTE1LjA4IDcuMDVjLjg0IDEuMTguODQgMi43MSAwIDMuODlsMS42OCAxLjY5YzIuMDItMi4wMiAyLjAyLTUuMDcgMC03LjI3bC0xLjY4IDEuNjl6TTIwLjA3IDJsLTEuNjMgMS42M2MyLjc3IDMuMDIgMi43NyA3LjU2IDAgMTAuNzRMMjAuMDcgMTZjMy45LTMuODkgMy45MS05Ljk1IDAtMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZWRlZW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLTIuMThjLjExLS4zMS4xOC0uNjUuMTgtMWEyLjk5NiAyLjk5NiAwIDAgMC01LjUtMS42NWwtLjUuNjctLjUtLjY4QzEwLjk2IDIuNTQgMTAuMDUgMiA5IDIgNy4zNCAyIDYgMy4zNCA2IDVjMCAuMzUuMDcuNjkuMTggMUg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOWMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY4YzAtMS4xMS0uODktMi0yLTJ6bS01LTJjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXpNOSA0Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTExIDE1SDR2LTJoMTZ2MnptMC01SDRWOGg1LjA4TDcgMTAuODMgOC42MiAxMiAxMSA4Ljc2bDEtMS4zNiAxIDEuMzZMMTUuMzggMTIgMTcgMTAuODMgMTQuOTIgOEgyMHY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVtb3ZlRG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuODQgMS45OCAzLjQzIDMuMzlsMTAuMzggMTAuMzgtMS40MSAxLjQxLTQuMjQtNC4yNC0xLjQxIDEuNDEgNS42NiA1LjY2IDIuODMtMi44MyA2LjYgNi42IDEuNDEtMS40MUw0Ljg0IDEuOTh6bTEzLjIxIDEwLjM4TDIzIDcuNCAyMS41NyA2bC00Ljk0IDQuOTQgMS40MiAxLjQyem0tLjcxLTQuOTYtMS40MS0xLjQxLTIuMTIgMi4xMiAxLjQxIDEuNDEgMi4xMi0yLjEyek0xLjA4IDEyLjM1bDUuNjYgNS42NiAxLjQxLTEuNDEtNS42Ni01LjY2LTEuNDEgMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlbW92ZVNob3BwaW5nQ2FydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMS40MSAxLjEzIDAgMi41NGw0LjM5IDQuMzkgMi4yMSA0LjY2LTEuMzUgMi40NWMtLjE2LjI4LS4yNS42MS0uMjUuOTYgMCAxLjEuOSAyIDIgMmg3LjQ2bDEuMzggMS4zOEExLjk5NyAxLjk5NyAwIDAgMCAxNyAyMmMuNjcgMCAxLjI2LS4zMyAxLjYyLS44NEwyMS40NiAyNGwxLjQxLTEuNDFMMS40MSAxLjEzek03IDE1bDEuMS0yaDIuMzZsMiAySDd6TTIwIDRINy4xMmwyIDJoOS4xOWwtMi43NiA1aC0xLjQ0bDEuOTQgMS45NGMuNTQtLjE0Ljk5LS40OSAxLjI1LS45N2wzLjU4LTYuNDlDMjEuMjUgNC44MiAyMC43NiA0IDIwIDR6TTcgMThjLTEuMSAwLTEuOTkuOS0xLjk5IDJTNS45IDIyIDcgMjJzMi0uOSAyLTItLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZW9yZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE1aDE4di0ySDN2MnptMCA0aDE4di0ySDN2MnptMC04aDE4VjlIM3Yyem0wLTZ2MmgxOFY1SDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXBhcnRpdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMjFoMTh2LTZIM3Y2em03LjMzLTJ2LTJoMy4zM3YyaC0zLjMzek0xOSAxOWgtMy4zM3YtMkgxOXYyek01IDE3aDMuMzN2Mkg1di0yek02IDEwbDEuNDItMS40Mkw1LjgzIDdIMTdjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAySDN2MmgxNGMyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNEg1LjgzbDEuNTktMS41OUw2IDIgMiA2bDQgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlcG9ydFByb2JsZW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDUuOTkgMTkuNTMgMTlINC40N0wxMiA1Ljk5TTEyIDIgMSAyMWgyMkwxMiAyem0xIDE0aC0ydjJoMnYtMnptMC02aC0ydjRoMnYtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlcXVlc3RQYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuMTcgNCAxOCA4LjgzVjIwSDZWNGg3LjE3TTE0IDJINmMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTEgOWgtNHYxaDNjLjU1IDAgMSAuNDUgMSAxdjNjMCAuNTUtLjQ1IDEtMSAxaC0xdjFoLTJ2LTFIOXYtMmg0di0xaC0zYy0uNTUgMC0xLS40NS0xLTF2LTNjMC0uNTUuNDUtMSAxLTFoMVY4aDJ2MWgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXN0b3JlRnJvbVRyYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNS41IDQtMS0xaC01bC0xIDFINXYyaDE0VjR6TTYgMTljMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjdINnYxMnptMi01VjloOHYxMEg4di01em0yIDRoNHYtNGgybC00LTQtNCA0aDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXN0b3JlUGFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMjBjMCAxLjEuODkgMiAxLjk5IDJIMThjMS4xIDAgMi0uOSAyLTJWOGwtNi02em00IDE4SDZWNGg3LjE3TDE4IDguODNWMjB6bS05LjU1LTkuNDNMNy4yOCA5LjRWMTNoMy42bC0xLjQ0LTEuNDRhMy4xNSAzLjE1IDAgMCAxIDIuNzktMS43MSAzLjE1IDMuMTUgMCAxIDEgMCA2LjMgMy4xNCAzLjE0IDAgMCAxLTIuNTgtMS4zNUg4LjFhNC41MSA0LjUxIDAgMCAwIDQuMTIgMi43YzIuNDggMCA0LjUtMi4wMiA0LjUtNC41cy0yLjAyLTQuNS00LjUtNC41Yy0xLjU5IDAtMi45Ny44My0zLjc3IDIuMDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXN0b3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAzYTkgOSAwIDAgMC05IDlIMWw0IDMuOTlMOSAxMkg2YzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDctMy4xMyA3LTcgN2MtMS45MyAwLTMuNjgtLjc5LTQuOTQtMi4wNmwtMS40MiAxLjQyQTguOTU0IDguOTU0IDAgMCAwIDEzIDIxYTkgOSAwIDAgMCAwLTE4em0tMSA1djVsNC4yNSAyLjUyLjc3LTEuMjgtMy41Mi0yLjA5Vjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSb2NrZXRMYXVuY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDE1Yy0uODMgMC0xLjU4LjM0LTIuMTIuODhDMi43IDE3LjA2IDIgMjIgMiAyMnM0Ljk0LS43IDYuMTItMS44OEEyLjk5NiAyLjk5NiAwIDAgMCA2IDE1em0uNzEgMy43MWMtLjI4LjI4LTIuMTcuNzYtMi4xNy43NnMuNDctMS44OC43Ni0yLjE3Yy4xNy0uMTkuNDItLjMuNy0uM2ExLjAwMyAxLjAwMyAwIDAgMSAuNzEgMS43MXptMTAuNzEtNS4wNmM2LjM2LTYuMzYgNC4yNC0xMS4zMSA0LjI0LTExLjMxUzE2LjcxLjIyIDEwLjM1IDYuNThsLTIuNDktLjVhMi4wMyAyLjAzIDAgMCAwLTEuODEuNTVMMiAxMC42OWw1IDIuMTRMMTEuMTcgMTdsMi4xNCA1IDQuMDUtNC4wNWMuNDctLjQ3LjY4LTEuMTUuNTUtMS44MWwtLjQ5LTIuNDl6TTcuNDEgMTAuODNsLTEuOTEtLjgyIDEuOTctMS45NyAxLjQ0LjI5Yy0uNTcuODMtMS4wOCAxLjctMS41IDIuNXptNi41OCA3LjY3LS44Mi0xLjkxYy44LS40MiAxLjY3LS45MyAyLjQ5LTEuNWwuMjkgMS40NC0xLjk2IDEuOTd6TTE2IDEyLjI0Yy0xLjMyIDEuMzItMy4zOCAyLjQtNC4wNCAyLjczbC0yLjkzLTIuOTNjLjMyLS42NSAxLjQtMi43MSAyLjczLTQuMDQgNC42OC00LjY4IDguMjMtMy45OSA4LjIzLTMuOTlzLjY5IDMuNTUtMy45OSA4LjIzek0xNSAxMWMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSb2NrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxMWMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDIgLjkgMiAyIDIgMi0uOSAyLTJ6bS02LjAyIDcuMjVjLS4yOS0uOS0uNTctMS45NC0uNzYtM0w2IDE2LjA3djIuOThsMS45OC0uOHpNMTIgMnM1IDIgNSAxMWwyLjExIDEuNDFjLjU2LjM3Ljg5IDEgLjg5IDEuNjZWMjJsLTUtMkg5bC01IDJ2LTUuOTNjMC0uNjcuMzMtMS4yOS44OS0xLjY2TDcgMTNjMC05IDUtMTEgNS0xMXptMCAyLjM2UzkgNi4zOCA5IDEzYzAgMi4yNSAxIDUgMSA1aDRzMS0yLjc1IDEtNWMwLTYuNjItMy04LjY0LTMtOC42NHptNiAxNC42OXYtMi45OGwtMS4yMi0uODFjLS4xOSAxLjA1LS40NyAyLjEtLjc2IDNsMS45OC43OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJvb20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDOC4xMyAyIDUgNS4xMyA1IDljMCA1LjI1IDcgMTMgNyAxM3M3LTcuNzUgNy0xM2MwLTMuODctMy4xMy03LTctN3pNNyA5YzAtMi43NiAyLjI0LTUgNS01czUgMi4yNCA1IDVjMCAyLjg4LTIuODggNy4xOS01IDkuODhDOS45MiAxNi4yMSA3IDExLjg1IDcgOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjlcIixcInJcIjpcIjIuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUm91bmRlZENvcm5lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDE5aDJ2MmgtMnYtMnptMC0yaDJ2LTJoLTJ2MnpNMyAxM2gydi0ySDN2MnptMCA0aDJ2LTJIM3Yyem0wLThoMlY3SDN2MnptMC00aDJWM0gzdjJ6bTQgMGgyVjNIN3Yyem04IDE2aDJ2LTJoLTJ2MnptLTQgMGgydi0yaC0ydjJ6bTQgMGgydi0yaC0ydjJ6bS04IDBoMnYtMkg3djJ6bS00IDBoMnYtMkgzdjJ6TTIxIDhjMC0yLjc2LTIuMjQtNS01LTVoLTV2Mmg1YzEuNjUgMCAzIDEuMzUgMyAzdjVoMlY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUm93aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDE0LjUgNCAxOWwxLjUgMS41TDkgMTdoMmwtMi41LTIuNXpNMTUgMWMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTYgMjAuMDFMMTggMjRsLTIuOTktMy4wMVYxOS41bC03LjEtNy4wOWMtLjMxLjA1LS42MS4wNy0uOTEuMDd2LTIuMTZjMS42Ni4wMyAzLjYxLS44NyA0LjY3LTIuMDRsMS40LTEuNTVjLjE5LS4yMS40My0uMzguNjktLjUuMjktLjE0LjYyLS4yMy45Ni0uMjNoLjAzQzE1Ljk5IDYuMDEgMTcgNy4wMiAxNyA4LjI2djUuNzVjMCAuODQtLjM1IDEuNjEtLjkyIDIuMTZsLTMuNTgtMy41OHYtMi4yN2MtLjYzLjUyLTEuNDMgMS4wMi0yLjI5IDEuMzlMMTYuNSAxOEgxOGwzIDMuMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSdWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNTQgMTEgMTMgNy40NmwxLjQxLTEuNDEgMi4xMiAyLjEyIDQuMjQtNC4yNCAxLjQxIDEuNDFMMTYuNTQgMTF6TTExIDdIMnYyaDlWN3ptMTAgNi40MUwxOS41OSAxMiAxNyAxNC41OSAxNC40MSAxMiAxMyAxMy40MSAxNS41OSAxNiAxMyAxOC41OSAxNC40MSAyMCAxNyAxNy40MSAxOS41OSAyMCAyMSAxOC41OSAxOC40MSAxNiAyMSAxMy40MXpNMTEgMTVIMnYyaDl2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTYXRlbGxpdGVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxNGgyYTkgOSAwIDAgMS05IDl2LTJjMy44NyAwIDctMy4xMyA3LTd6bS03IDN2MmMyLjc2IDAgNS0yLjI0IDUtNWgtMmMwIDEuNjYtMS4zNCAzLTMgM3pNMTguMjYuNTlsMy41NCAzLjU0Yy43OC43OC43OCAyLjA1IDAgMi44M2wtMy4xOCAzLjE4Yy0uNzguNzgtMi4wNS43OC0yLjgzIDBMMTQuNTUgOC45bC0uNzEuNyAxLjI0IDEuMjRjLjc4Ljc4Ljc4IDIuMDUgMCAyLjgzbC0xLjQxIDEuNDFjLS43OC43OC0yLjA1Ljc4LTIuODMgMEw5LjYgMTMuODRsLS43MS43MSAxLjI0IDEuMjRjLjc4Ljc4Ljc4IDIuMDUgMCAyLjgzTDYuOTUgMjEuOGMtLjc4Ljc4LTIuMDUuNzgtMi44MyAwTC41OCAxOC4yNmMtLjc4LS43OC0uNzgtMi4wNSAwLTIuODNsMy4xOC0zLjE4Yy43OC0uNzggMi4wNS0uNzggMi44MyAwbDEuMjQgMS4yNC43MS0uNzEtMS4yNC0xLjIzYy0uNzgtLjc4LS43OC0yLjA1IDAtMi44M0w4LjcyIDcuM2MuNzgtLjc4IDIuMDUtLjc4IDIuODMgMGwxLjI0IDEuMjQuNzEtLjcxLTEuMjUtMS4yM2MtLjc4LS43OC0uNzgtMi4wNSAwLTIuODNMMTUuNDMuNTljLjc5LS43OSAyLjA1LS43OSAyLjgzIDB6bS0xNS4yIDE1LjJMMiAxNi44NWwzLjU0IDMuNTQgMS4wNi0xLjA2LTMuNTQtMy41NHptMi4xMi0yLjEyLTEuMDYgMS4wNiAzLjU0IDMuNTQgMS4wNi0xLjA2LTMuNTQtMy41NHptNC45NS00Ljk1LTEuNDEgMS40MSAzLjU0IDMuNTQgMS40MS0xLjQxLTMuNTQtMy41NHptNC42LTQuNi0xLjA2IDEuMDYgMy41NCAzLjU0IDEuMDYtMS4wNi0zLjU0LTMuNTR6TTE2Ljg1IDJsLTEuMDYgMS4wNiAzLjU0IDMuNTQgMS4wNi0xLjA2TDE2Ljg1IDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTYXZlZFNlYXJjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjczIDEzLjMxQTYuMzg4IDYuMzg4IDAgMCAwIDE2IDkuNSA2LjUgNi41IDAgMSAwIDkuNSAxNmMxLjQzIDAgMi43NC0uNDggMy44MS0xLjI3TDE5LjU5IDIxIDIxIDE5LjU5bC02LjI3LTYuMjh6TTkuNSAxNEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMjkgOC40NCA5LjUgNmwtLjc5IDIuNDRINi4yNWwyLjAxIDEuNTktLjc3IDIuNDcgMi4wMS0xLjUzIDIuMDEgMS41My0uNzctMi40NyAyLjAxLTEuNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTYXZpbmdzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTBjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxLS40NSAxLTEgMS0xLS40NS0xLTF6TTggOWg1VjdIOHYyem0xNC0xLjV2Ni45N2wtMi44Mi45NEwxNy41IDIxSDEydi0yaC0ydjJINC41UzIgMTIuNTQgMiA5LjUgNC40NiA0IDcuNSA0aDVjLjkxLTEuMjEgMi4zNi0yIDQtMmExLjQ5OCAxLjQ5OCAwIDAgMSAxLjM4IDIuMDhjLS4xNC4zNC0uMjYuNzMtLjMyIDEuMTVsMi4yNyAyLjI3SDIyem0tMiAyaC0xTDE1LjUgNmMwLS42NS4wOS0xLjI5LjI2LTEuOTEtLjk3LjI1LTEuNzYuOTctMi4wOSAxLjkxSDcuNUM1LjU3IDYgNCA3LjU3IDQgOS41YzAgMS44OCAxLjIyIDYuNjUgMi4wMSA5LjVIOHYtMmg2djJoMi4wMWwxLjU1LTUuMTUgMi40NC0uODJWOS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2NoZWR1bGVTZW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTJjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0xLjY1IDcuMzVMMTYuNSAxNy4yVjE0aDF2Mi43OWwxLjg1IDEuODUtLjcuNzF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTExIDEyLTYtMS41VjcuMDFsOC44NyAzLjc0Yy45NC0uNDcgMi0uNzUgMy4xMy0uNzUuMSAwIC4xOS4wMS4yOC4wMUwzIDR2MTZsNy0yLjk1VjE3YzAtLjguMTQtMS41Ni4zOS0yLjI4TDUgMTYuOTlWMTMuNWw2LTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNjaGVkdWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bS41LTEzSDExdjZsNS4yNSAzLjE1Ljc1LTEuMjMtNC41LTIuNjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZWFyY2hPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDE0aC0uNzlsLS4yOC0uMjdBNi40NzEgNi40NzEgMCAwIDAgMTYgOS41IDYuNSA2LjUgMCAwIDAgOS41IDNDNi4wOCAzIDMuMjggNS42NCAzLjAzIDloMi4wMkM1LjMgNi43NSA3LjE4IDUgOS41IDUgMTEuOTkgNSAxNCA3LjAxIDE0IDkuNVMxMS45OSAxNCA5LjUgMTRjLS4xNyAwLS4zMy0uMDMtLjUtLjA1djIuMDJjLjE3LjAyLjMzLjAzLjUuMDMgMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjQ3IDEwLjgyIDQgMTMuMjlsLTIuNDctMi40Ny0uNzEuNzFMMy4yOSAxNCAuODIgMTYuNDdsLjcxLjcxTDQgMTQuNzFsMi40NyAyLjQ3LjcxLS43MUw0LjcxIDE0bDIuNDctMi40N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNlYXJjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QTYuNDcxIDYuNDcxIDAgMCAwIDE2IDkuNSA2LjUgNi41IDAgMSAwIDkuNSAxNmMxLjYxIDAgMy4wOS0uNTkgNC4yMy0xLjU3bC4yNy4yOHYuNzlsNSA0Ljk5TDIwLjQ5IDE5bC00Ljk5LTV6bS02IDBDNy4wMSAxNCA1IDExLjk5IDUgOS41UzcuMDEgNSA5LjUgNSAxNCA3LjAxIDE0IDkuNSAxMS45OSAxNCA5LjUgMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZWdtZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxOGgxMnYtMkg5djJ6TTMgNnYyaDE4VjZIM3ptNiA3aDEydi0ySDl2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNlbmRBbmRBcmNoaXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTEgMTItNi0xLjVWNy4wMWw4Ljg3IDMuNzNjLjk0LS40NyAyLS43NSAzLjEzLS43NS4xIDAgLjE5LjAxLjI4LjAxTDMgNHYxNmw3LTIuOTVWMTdjMC0uOC4xNC0xLjU2LjM5LTIuMjhMNSAxNi45OVYxMy41bDYtMS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMmMtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bTAgOC0zLTMgLjcxLS43MSAxLjc5IDEuNzlWMTRoMXY0LjA5bDEuNzktMS43OS43MS43LTMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNlbnNvcnNPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjE0IDEwLjk2Yy0uMDkuMzMtLjE0LjY4LS4xNCAxLjA0IDAgMS4xLjQ1IDIuMSAxLjE3IDIuODNsLTEuNDIgMS40MkE2LjAxOCA2LjAxOCAwIDAgMSA2IDEyYzAtLjkzLjIxLTEuOC41OC0yLjU5TDUuMTEgNy45NEE3Ljg5NyA3Ljg5NyAwIDAgMCA0IDEyYzAgMi4yMS45IDQuMjEgMi4zNSA1LjY1bC0xLjQyIDEuNDJBOS45NjkgOS45NjkgMCAwIDEgMiAxMmMwLTIuMDQuNjEtMy45MyAxLjY2LTUuNTFMMS4zOSA0LjIyIDIuOCAyLjgxbDE4LjM4IDE4LjM4LTEuNDEgMS40MUw4LjE0IDEwLjk2em05LjI4IDMuNjNjLjM3LS43OS41OC0xLjY2LjU4LTIuNTkgMC0xLjY2LS42Ny0zLjE2LTEuNzYtNC4yNGwtMS40MiAxLjQyYTMuOTUxIDMuOTUxIDAgMCAxIDEuMDQgMy44NmwxLjU2IDEuNTV6TTIwIDEyYzAgMS40OC0uNCAyLjg3LTEuMTEgNC4wNmwxLjQ1IDEuNDVBOS45MSA5LjkxIDAgMCAwIDIyIDEyYzAtMi43Ni0xLjEyLTUuMjYtMi45My03LjA3bC0xLjQyIDEuNDJBNy45NCA3Ljk0IDAgMCAxIDIwIDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2Vuc29ycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNzYgMTYuMjRDNi42NyAxNS4xNiA2IDEzLjY2IDYgMTJzLjY3LTMuMTYgMS43Ni00LjI0bDEuNDIgMS40MkM4LjQ1IDkuOSA4IDEwLjkgOCAxMmMwIDEuMS40NSAyLjEgMS4xNyAyLjgzbC0xLjQxIDEuNDF6bTguNDggMEMxNy4zMyAxNS4xNiAxOCAxMy42NiAxOCAxMnMtLjY3LTMuMTYtMS43Ni00LjI0bC0xLjQyIDEuNDJDMTUuNTUgOS45IDE2IDEwLjkgMTYgMTJjMCAxLjEtLjQ1IDIuMS0xLjE3IDIuODNsMS40MSAxLjQxek0xMiAxMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTggMmMwIDIuMjEtLjkgNC4yMS0yLjM1IDUuNjVsMS40MiAxLjQyQzIwLjg4IDE3LjI2IDIyIDE0Ljc2IDIyIDEycy0xLjEyLTUuMjYtMi45My03LjA3bC0xLjQyIDEuNDJBNy45NCA3Ljk0IDAgMCAxIDIwIDEyek02LjM1IDYuMzUgNC45MyA0LjkzQzMuMTIgNi43NCAyIDkuMjQgMiAxMnMxLjEyIDUuMjYgMi45MyA3LjA3bDEuNDItMS40MkM0LjkgMTYuMjEgNCAxNC4yMSA0IDEycy45LTQuMjEgMi4zNS01LjY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2V0dGluZ3NBY2Nlc3NpYmlsaXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNSA0Yy0yLjYxLjctNS42NyAxLTguNSAxcy01Ljg5LS4zLTguNS0xTDMgNmMxLjg2LjUgNCAuODMgNiAxdjEyaDJ2LTZoMnY2aDJWN2MyLS4xNyA0LjE0LS41IDYtMWwtLjUtMnpNMTIgNGMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6TTcgMjRoMnYtMkg3djJ6bTQgMGgydi0yaC0ydjJ6bTQgMGgydi0yaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZXR0aW5nc0FwcGxpY2F0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNi4yMSAxMy45NyAxLjIgMi4wN2MuMDguMTMuMjMuMTguMzcuMTNsMS40OS0uNmMuMzEuMjQuNjQuNDQgMS4wMS41OWwuMjIgMS41OWMuMDMuMTQuMTUuMjUuMy4yNWgyLjRjLjE1IDAgLjI3LS4xMS4zLS4yNmwuMjItMS41OWMuMzYtLjE1LjctLjM1IDEuMDEtLjU5bDEuNDkuNmMuMTQuMDUuMjkgMCAuMzctLjEzbDEuMi0yLjA3Yy4wOC0uMTMuMDQtLjI5LS4wNy0uMzlsLTEuMjctLjk5Yy4wMy0uMTkuMDQtLjM5LjA0LS41OCAwLS4yLS4wMi0uMzktLjA0LS41OWwxLjI3LS45OWMuMTEtLjA5LjE1LS4yNi4wNy0uMzlsLTEuMi0yLjA3YS4zMDYuMzA2IDAgMCAwLS4zNy0uMTNsLTEuNDkuNmMtLjMxLS4yNC0uNjQtLjQ0LTEuMDEtLjU5bC0uMjItMS41OWEuMzEuMzEgMCAwIDAtLjMtLjI1aC0yLjRhLjMxLjMxIDAgMCAwLS4zLjI2bC0uMjIgMS41OWMtLjM2LjE1LS43MS4zNC0xLjAxLjU4bC0xLjQ5LS42Yy0uMTQtLjA1LS4yOSAwLS4zNy4xM2wtMS4yIDIuMDdjLS4wOC4xMy0uMDQuMjkuMDcuMzlsMS4yNy45OWMtLjAzLjItLjA1LjM5LS4wNS41OSAwIC4yLjAyLjM5LjA0LjU5bC0xLjI3Ljk5Yy0uMTEuMS0uMTQuMjYtLjA2LjM5ek0xMiAxMC4yOWMuOTQgMCAxLjcxLjc3IDEuNzEgMS43MXMtLjc3IDEuNzEtMS43MSAxLjcxLTEuNzEtLjc3LTEuNzEtMS43MS43Ny0xLjcxIDEuNzEtMS43MXpNMTkgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZXR0aW5nc0JhY2t1cFJlc3RvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDEyYzAtMS4xLS45LTItMi0ycy0yIC45LTIgMiAuOSAyIDIgMiAyLS45IDItMnptLTItOWE5IDkgMCAwIDAtOSA5SDBsNCA0IDQtNEg1YzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDdhNi45OTUgNi45OTUgMCAwIDEtMTEuMDYgNS43bC0xLjQyIDEuNDRBOSA5IDAgMSAwIDEyIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZXR0aW5nc0JsdWV0b290aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMjRoMnYtMmgtMnYyem0tNCAwaDJ2LTJIN3Yyem04IDBoMnYtMmgtMnYyem0yLjcxLTE4LjI5TDEyIDBoLTF2Ny41OUw2LjQxIDMgNSA0LjQxIDEwLjU5IDEwIDUgMTUuNTkgNi40MSAxNyAxMSAxMi40MVYyMGgxbDUuNzEtNS43MS00LjMtNC4yOSA0LjMtNC4yOXpNMTMgMy44M2wxLjg4IDEuODhMMTMgNy41OVYzLjgzem0xLjg4IDEwLjQ2TDEzIDE2LjE3di0zLjc2bDEuODggMS44OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNldHRpbmdzQnJpZ2h0bmVzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTYuMDFIM1Y0Ljk5aDE4djE0LjAyek04IDE2aDIuNWwxLjUgMS41IDEuNS0xLjVIMTZ2LTIuNWwxLjUtMS41LTEuNS0xLjVWOGgtMi41TDEyIDYuNSAxMC41IDhIOHYyLjVMNi41IDEyIDggMTMuNVYxNnptNC03YzEuNjYgMCAzIDEuMzQgMyAzcy0xLjM0IDMtMyAzVjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZXR0aW5nc0NlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMjJoMnYySDd6bTQgMGgydjJoLTJ6bTQgMGgydjJoLTJ6TTE2IC4wMSA4IDBDNi45IDAgNiAuOSA2IDJ2MTZjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjJjMC0xLjEtLjktMS45OS0yLTEuOTl6TTE2IDE4SDh2LTFoOHYxem0wLTNIOFY1aDh2MTB6bTAtMTJIOFYyaDh2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNldHRpbmdzRXRoZXJuZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNzcgNi43NiA2LjIzIDUuNDguODIgMTJsNS40MSA2LjUyIDEuNTQtMS4yOEwzLjQyIDEybDQuMzUtNS4yNHpNNyAxM2gydi0ySDd2MnptMTAtMmgtMnYyaDJ2LTJ6bS02IDJoMnYtMmgtMnYyem02Ljc3LTcuNTItMS41NCAxLjI4TDIwLjU4IDEybC00LjM1IDUuMjQgMS41NCAxLjI4TDIzLjE4IDEybC01LjQxLTYuNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZXR0aW5nc0lucHV0QW50ZW5uYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNWMtMy44NyAwLTcgMy4xMy03IDdoMmMwLTIuNzYgMi4yNC01IDUtNXM1IDIuMjQgNSA1aDJjMC0zLjg3LTMuMTMtNy03LTd6bTEgOS4yOWMuODgtLjM5IDEuNS0xLjI2IDEuNS0yLjI5YTIuNSAyLjUgMCAwIDAtNSAwYzAgMS4wMi42MiAxLjkgMS41IDIuMjl2My4zTDcuNTkgMjEgOSAyMi40MWwzLTMgMyAzTDE2LjQxIDIxIDEzIDE3LjU5di0zLjN6TTEyIDFDNS45MyAxIDEgNS45MyAxIDEyaDJhOSA5IDAgMCAxIDE4IDBoMmMwLTYuMDctNC45My0xMS0xMS0xMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNldHRpbmdzSW5wdXRDb21wb25lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXY0SDF2MTBjMCAxLjMuODQgMi40IDIgMi44MlYyM2gydi00LjE4QzYuMTYgMTguNCA3IDE3LjMgNyAxNlY2SDVWMnpNNCAxN2MtLjU1IDAtMS0uNDUtMS0xdi0yaDJ2MmMwIC41NS0uNDUgMS0xIDF6bS0xLTVWOGgydjRIM3pNMTMgMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXY0SDl2MTBjMCAxLjMuODQgMi40IDIgMi44MlYyM2gydi00LjE4YzEuMTYtLjQyIDItMS41MiAyLTIuODJWNmgtMlYyem0tMSAxNWMtLjU1IDAtMS0uNDUtMS0xdi0yaDJ2MmMwIC41NS0uNDUgMS0xIDF6bS0xLTVWOGgydjRoLTJ6bTEwLTZWMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXY0aC0ydjEwYzAgMS4zLjg0IDIuNCAyIDIuODJWMjNoMnYtNC4xOGMxLjE2LS40MiAyLTEuNTIgMi0yLjgyVjZoLTJ6bS0xIDExYy0uNTUgMC0xLS40NS0xLTF2LTJoMnYyYzAgLjU1LS40NSAxLTEgMXptLTEtNVY4aDJ2NGgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNldHRpbmdzSW5wdXRDb21wb3NpdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXY0SDF2MTBjMCAxLjMuODQgMi40IDIgMi44MlYyM2gydi00LjE4QzYuMTYgMTguNCA3IDE3LjMgNyAxNlY2SDVWMnpNNCAxN2MtLjU1IDAtMS0uNDUtMS0xdi0yaDJ2MmMwIC41NS0uNDUgMS0xIDF6bS0xLTVWOGgydjRIM3pNMTMgMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXY0SDl2MTBjMCAxLjMuODQgMi40IDIgMi44MlYyM2gydi00LjE4YzEuMTYtLjQyIDItMS41MiAyLTIuODJWNmgtMlYyem0tMSAxNWMtLjU1IDAtMS0uNDUtMS0xdi0yaDJ2MmMwIC41NS0uNDUgMS0xIDF6bS0xLTVWOGgydjRoLTJ6bTEwLTZWMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXY0aC0ydjEwYzAgMS4zLjg0IDIuNCAyIDIuODJWMjNoMnYtNC4xOGMxLjE2LS40MiAyLTEuNTIgMi0yLjgyVjZoLTJ6bS0xIDExYy0uNTUgMC0xLS40NS0xLTF2LTJoMnYyYzAgLjU1LS40NSAxLTEgMXptLTEtNVY4aDJ2NGgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNldHRpbmdzSW5wdXRIZG1pIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA3VjRjMC0xLjEtLjktMi0yLTJIOGMtMS4xIDAtMiAuOS0yIDJ2M0g1djZsMyA2djNoOHYtM2wzLTZWN2gtMXpNOCA0aDh2M2gtMi4wMVY1aC0xdjJIMTFWNWgtMXYySDhWNHptOSA4LjUzLTMgNlYyMGgtNHYtMS40N2wtMy02VjloMTB2My41M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNldHRpbmdzSW5wdXRTdmlkZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTEuNWMwLS44My0uNjctMS41LTEuNS0xLjVTNSAxMC42NyA1IDExLjUgNS42NyAxMyA2LjUgMTMgOCAxMi4zMyA4IDExLjV6bTctNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTNDOS42NyA1IDkgNS42NyA5IDYuNVM5LjY3IDggMTAuNSA4aDNjLjgzIDAgMS41LS42NyAxLjUtMS41ek04LjUgMTVjLS44MyAwLTEuNS42Ny0xLjUgMS41UzcuNjcgMTggOC41IDE4czEuNS0uNjcgMS41LTEuNVM5LjMzIDE1IDguNSAxNXpNMTIgMUM1LjkzIDEgMSA1LjkzIDEgMTJzNC45MyAxMSAxMSAxMSAxMS00LjkzIDExLTExUzE4LjA3IDEgMTIgMXptMCAyMGMtNC45NiAwLTktNC4wNC05LTlzNC4wNC05IDktOSA5IDQuMDQgOSA5LTQuMDQgOS05IDl6bTUuNS0xMWMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6bS0yIDVjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2V0dGluZ3NPdmVyc2NhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMDEgNS41IDEwIDhoNGwtMS45OS0yLjV6TTE4IDEwdjRsMi41LTEuOTlMMTggMTB6TTYgMTBsLTIuNSAyLjAxTDYgMTR2LTR6bTggNmgtNGwyLjAxIDIuNUwxNCAxNnptNy0xM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTYuMDFIM1Y0Ljk5aDE4djE0LjAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2V0dGluZ3NQaG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgOWgydjJoLTJ6bTQgMGgydjJoLTJ6bTUgNi41Yy0xLjI1IDAtMi40NS0uMi0zLjU3LS41Ny0uMS0uMDMtLjIxLS4wNS0uMzEtLjA1LS4yNiAwLS41MS4xLS43MS4yOWwtMi4yIDIuMmExNS4wNzQgMTUuMDc0IDAgMCAxLTYuNTktNi41OGwyLjItMi4yMWMuMjgtLjI3LjM2LS42Ni4yNS0xLjAxQTExLjM2IDExLjM2IDAgMCAxIDguNSA0YzAtLjU1LS40NS0xLTEtMUg0Yy0uNTUgMC0xIC40NS0xIDEgMCA5LjM5IDcuNjEgMTcgMTcgMTcgLjU1IDAgMS0uNDUgMS0xdi0zLjVjMC0uNTUtLjQ1LTEtMS0xek01LjAzIDVoMS41Yy4wNy44OC4yMiAxLjc1LjQ2IDIuNTlMNS43OSA4LjhjLS40MS0xLjIxLS42Ny0yLjQ4LS43Ni0zLjh6TTE5IDE4Ljk3Yy0xLjMyLS4wOS0yLjYtLjM1LTMuOC0uNzZsMS4yLTEuMmMuODUuMjQgMS43Mi4zOSAyLjYuNDV2MS41MXpNMTkgOWgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZXR0aW5nc1Bvd2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDI0aDJ2LTJIN3Yyem00IDBoMnYtMmgtMnYyem0yLTIyaC0ydjEwaDJWMnptMy41NiAyLjQ0LTEuNDUgMS40NUE1Ljk2OSA1Ljk2OSAwIDAgMSAxOCAxMWMwIDMuMzEtMi42OSA2LTYgNnMtNi0yLjY5LTYtNmMwLTIuMTcgMS4xNi00LjA2IDIuODgtNS4xMkw3LjQ0IDQuNDRBNy45NjEgNy45NjEgMCAwIDAgNCAxMWMwIDQuNDIgMy41OCA4IDggOHM4LTMuNTggOC04YzAtMi43Mi0xLjM2LTUuMTItMy40NC02LjU2ek0xNSAyNGgydi0yaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZXR0aW5nc1JlbW90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgOUg5Yy0uNTUgMC0xIC40NS0xIDF2MTJjMCAuNTUuNDUgMSAxIDFoNmMuNTUgMCAxLS40NSAxLTFWMTBjMC0uNTUtLjQ1LTEtMS0xem0tMSAxMmgtNFYxMWg0djEwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNy4wNSA2LjA1IDEuNDEgMS40MWE1LjAyMiA1LjAyMiAwIDAgMSA3LjA4IDBsMS40MS0xLjQxQzE1LjY4IDQuNzggMTMuOTMgNCAxMiA0cy0zLjY4Ljc4LTQuOTUgMi4wNXpNMTIgMEM4Ljk2IDAgNi4yMSAxLjIzIDQuMjIgMy4yMmwxLjQxIDEuNDFDNy4yNiAzLjAxIDkuNTEgMiAxMiAyczQuNzQgMS4wMSA2LjM2IDIuNjRsMS40MS0xLjQxQzE3Ljc5IDEuMjMgMTUuMDQgMCAxMiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2V0dGluZ3NWb2ljZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAyMmgydjJIN3ptNS05YzEuNjYgMCAzLTEuMzQgMy0zVjRjMC0xLjY2LTEuMzQtMy0zLTNTOSAyLjM0IDkgNHY2YzAgMS42NiAxLjM0IDMgMyAzem0tMS05YzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXY2YzAgLjU2LS40NCAxLTEgMS0uNTUgMC0xLS40NS0xLTFWNHptMCAxOGgydjJoLTJ6bTQgMGgydjJoLTJ6bTQtMTJoLTEuN2MwIDMtMi41NCA1LjEtNS4zIDUuMVM2LjcgMTMgNi43IDEwSDVjMCAzLjQxIDIuNzIgNi4yMyA2IDYuNzJWMjBoMnYtMy4yOGMzLjI4LS40OSA2LTMuMzEgNi02LjcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2V0dGluZ3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjQzIDEyLjk4Yy4wNC0uMzIuMDctLjY0LjA3LS45OCAwLS4zNC0uMDMtLjY2LS4wNy0uOThsMi4xMS0xLjY1Yy4xOS0uMTUuMjQtLjQyLjEyLS42NGwtMi0zLjQ2YS41LjUgMCAwIDAtLjYxLS4yMmwtMi40OSAxYy0uNTItLjQtMS4wOC0uNzMtMS42OS0uOThsLS4zOC0yLjY1QS40ODguNDg4IDAgMCAwIDE0IDJoLTRjLS4yNSAwLS40Ni4xOC0uNDkuNDJsLS4zOCAyLjY1Yy0uNjEuMjUtMS4xNy41OS0xLjY5Ljk4bC0yLjQ5LTFhLjU2Ni41NjYgMCAwIDAtLjE4LS4wM2MtLjE3IDAtLjM0LjA5LS40My4yNWwtMiAzLjQ2Yy0uMTMuMjItLjA3LjQ5LjEyLjY0bDIuMTEgMS42NWMtLjA0LjMyLS4wNy42NS0uMDcuOTggMCAuMzMuMDMuNjYuMDcuOThsLTIuMTEgMS42NWMtLjE5LjE1LS4yNC40Mi0uMTIuNjRsMiAzLjQ2YS41LjUgMCAwIDAgLjYxLjIybDIuNDktMWMuNTIuNCAxLjA4LjczIDEuNjkuOThsLjM4IDIuNjVjLjAzLjI0LjI0LjQyLjQ5LjQyaDRjLjI1IDAgLjQ2LS4xOC40OS0uNDJsLjM4LTIuNjVjLjYxLS4yNSAxLjE3LS41OSAxLjY5LS45OGwyLjQ5IDFjLjA2LjAyLjEyLjAzLjE4LjAzLjE3IDAgLjM0LS4wOS40My0uMjVsMi0zLjQ2Yy4xMi0uMjIuMDctLjQ5LS4xMi0uNjRsLTIuMTEtMS42NXptLTEuOTgtMS43MWMuMDQuMzEuMDUuNTIuMDUuNzMgMCAuMjEtLjAyLjQzLS4wNS43M2wtLjE0IDEuMTMuODkuNyAxLjA4Ljg0LS43IDEuMjEtMS4yNy0uNTEtMS4wNC0uNDItLjkuNjhjLS40My4zMi0uODQuNTYtMS4yNS43M2wtMS4wNi40My0uMTYgMS4xMy0uMiAxLjM1aC0xLjRsLS4xOS0xLjM1LS4xNi0xLjEzLTEuMDYtLjQzYy0uNDMtLjE4LS44My0uNDEtMS4yMy0uNzFsLS45MS0uNy0xLjA2LjQzLTEuMjcuNTEtLjctMS4yMSAxLjA4LS44NC44OS0uNy0uMTQtMS4xM2MtLjAzLS4zMS0uMDUtLjU0LS4wNS0uNzRzLjAyLS40My4wNS0uNzNsLjE0LTEuMTMtLjg5LS43LTEuMDgtLjg0LjctMS4yMSAxLjI3LjUxIDEuMDQuNDIuOS0uNjhjLjQzLS4zMi44NC0uNTYgMS4yNS0uNzNsMS4wNi0uNDMuMTYtMS4xMy4yLTEuMzVoMS4zOWwuMTkgMS4zNS4xNiAxLjEzIDEuMDYuNDNjLjQzLjE4LjgzLjQxIDEuMjMuNzFsLjkxLjcgMS4wNi0uNDMgMS4yNy0uNTEuNyAxLjIxLTEuMDcuODUtLjg5LjcuMTQgMS4xM3pNMTIgOGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTAgNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaG9wMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgOUgxdjExYzAgMS4xMS44OSAyIDIgMmgxNnYtMkgzVjl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDVWM2MwLTEuMTEtLjg5LTItMi0yaC00Yy0xLjExIDAtMiAuODktMiAydjJINXYxMWMwIDEuMTEuODkgMiAyIDJoMTRjMS4xMSAwIDItLjg5IDItMlY1aC01em0tNi0yaDR2MmgtNFYzem05IDEzSDdWN2gxNHY5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA4djdsNS41LTMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNob3BUd28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgOUgxdjExYzAgMS4xMS44OSAyIDIgMmgxNGMxLjExIDAgMi0uODkgMi0ySDNWOXptMTUtNFYzYzAtMS4xMS0uODktMi0yLTJoLTRjLTEuMTEgMC0yIC44OS0yIDJ2Mkg1djExYzAgMS4xMS44OSAyIDIgMmgxNGMxLjExIDAgMi0uODkgMi0yVjVoLTV6bS02LTJoNHYyaC00VjN6bTkgMTNIN1Y3aDE0djl6bS05LTEgNS41LTRMMTIgOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNob3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDZWNGMwLTEuMTEtLjg5LTItMi0yaC00Yy0xLjExIDAtMiAuODktMiAydjJIMnYxM2MwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY2aC02em0tNi0yaDR2MmgtNFY0em0xMCAxNUg0VjhoMTZ2MTF6TTkgMThsNy41LTVMOSA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2hvcHBpbmdCYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA2aC0yYzAtMi4yMS0xLjc5LTQtNC00UzggMy43OSA4IDZINmMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0tNi0yYzEuMSAwIDIgLjkgMiAyaC00YzAtMS4xLjktMiAyLTJ6bTYgMTZINlY4aDJ2MmMwIC41NS40NSAxIDEgMXMxLS40NSAxLTFWOGg0djJjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xVjhoMnYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNob3BwaW5nQmFza2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA5aC00Ljc5bC00LjM4LTYuNTZjLS4xOS0uMjgtLjUxLS40Mi0uODMtLjQycy0uNjQuMTQtLjgzLjQzTDYuNzkgOUgyYy0uNTUgMC0xIC40NS0xIDEgMCAuMDkuMDEuMTguMDQuMjdsMi41NCA5LjI3Yy4yMy44NCAxIDEuNDYgMS45MiAxLjQ2aDEzYy45MiAwIDEuNjktLjYyIDEuOTMtMS40NmwyLjU0LTkuMjdMMjMgMTBjMC0uNTUtLjQ1LTEtMS0xek0xMiA0LjggMTQuOCA5SDkuMkwxMiA0Ljh6TTE4LjUgMTlsLTEyLjk5LjAxTDMuMzEgMTFIMjAuN2wtMi4yIDh6TTEyIDEzYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNob3BwaW5nQ2FydENoZWNrb3V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxOGMtMS4xIDAtMS45OS45LTEuOTkgMlM1LjkgMjIgNyAyMnMyLS45IDItMi0uOS0yLTItMnptMTAgMGMtMS4xIDAtMS45OS45LTEuOTkgMnMuODkgMiAxLjk5IDIgMi0uOSAyLTItLjktMi0yLTJ6bS04LjktNWg3LjQ1Yy43NSAwIDEuNDEtLjQxIDEuNzUtMS4wM0wyMSA0Ljk2IDE5LjI1IDRsLTMuNyA3SDguNTNMNC4yNyAySDF2MmgybDMuNiA3LjU5LTEuMzUgMi40NEM0LjUyIDE1LjM3IDUuNDggMTcgNyAxN2gxMnYtMkg3bDEuMS0yek0xMiAybDQgNC00IDQtMS40MS0xLjQxTDEyLjE3IDdIOFY1aDQuMTdsLTEuNTktMS41OUwxMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2hvcHBpbmdDYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41NSAxM2MuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNsMy41OC02LjQ5QS45OTYuOTk2IDAgMCAwIDIwLjAxIDRINS4yMWwtLjk0LTJIMXYyaDJsMy42IDcuNTktMS4zNSAyLjQ0QzQuNTIgMTUuMzcgNS40OCAxNyA3IDE3aDEydi0ySDdsMS4xLTJoNy40NXpNNi4xNiA2aDEyLjE1bC0yLjc2IDVIOC41M0w2LjE2IDZ6TTcgMThjLTEuMSAwLTEuOTkuOS0xLjk5IDJTNS45IDIyIDcgMjJzMi0uOSAyLTItLjktMi0yLTJ6bTEwIDBjLTEuMSAwLTEuOTkuOS0xLjk5IDJzLjg5IDIgMS45OSAyIDItLjkgMi0yLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU21hcnRCdXR0b24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA5djZjMCAxLjEtLjkgMi0yIDJoLTF2LTJoMVY5SDR2Nmg2djJINGMtMS4xIDAtMi0uOS0yLTJWOWMwLTEuMS45LTIgMi0yaDE2YzEuMSAwIDIgLjkgMiAyem0tNy41IDEwIDEuMDktMi40MUwxOCAxNS41bC0yLjQxLTEuMDlMMTQuNSAxMmwtMS4wOSAyLjQxTDExIDE1LjVsMi40MSAxLjA5TDE0LjUgMTl6bTIuNS01IC42Mi0xLjM4TDE5IDEybC0xLjM4LS42MkwxNyAxMGwtLjYyIDEuMzhMMTUgMTJsMS4zOC42MkwxNyAxNHptLTIuNSA1IDEuMDktMi40MUwxOCAxNS41bC0yLjQxLTEuMDlMMTQuNSAxMmwtMS4wOSAyLjQxTDExIDE1LjVsMi40MSAxLjA5TDE0LjUgMTl6bTIuNS01IC42Mi0xLjM4TDE5IDEybC0xLjM4LS42MkwxNyAxMGwtLjYyIDEuMzhMMTUgMTJsMS4zOC42MkwxNyAxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNvdXJjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0wIDEySDRWNmg1LjE3bDIgMkgyMHYxMHptLTItNkg2di0yaDEydjJ6bS00IDRINnYtMmg4djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcGFjZURhc2hib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek01IDE5VjVoNnYxNEg1em0xNCAwaC02di03aDZ2N3ptMC05aC02VjVoNnY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BhdGlhbEF1ZGlvT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTNjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTQtNCAxLjc5LTQgNCAxLjc5IDQgNCA0em0wLTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0yek0xNi4zOSAxNS41NkMxNC43MSAxNC43IDEyLjUzIDE0IDEwIDE0cy00LjcxLjctNi4zOSAxLjU2QTIuOTcgMi45NyAwIDAgMCAyIDE4LjIyVjIxaDE2di0yLjc4YzAtMS4xMi0uNjEtMi4xNS0xLjYxLTIuNjZ6TTE2IDE5SDR2LS43OGMwLS4zOC4yLS43Mi41Mi0uODhDNS43MSAxNi43MyA3LjYzIDE2IDEwIDE2YzIuMzcgMCA0LjI5LjczIDUuNDggMS4zNC4zMi4xNi41Mi41LjUyLjg4VjE5ek0yMC4zNiAxbC0xLjQxIDEuNDFhNy4wMDcgNy4wMDcgMCAwIDEgMCA5LjlsMS40MSAxLjQxYTguOTggOC45OCAwIDAgMCAwLTEyLjcyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy41NCAxMC45YTUuMDAzIDUuMDAzIDAgMCAwIDAtNy4wN2wtMS40MSAxLjQxYTMgMyAwIDAgMSAwIDQuMjRsMS40MSAxLjQyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BhdGlhbEF1ZGlvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTNjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTQtNCAxLjc5LTQgNCAxLjc5IDQgNCA0em0wLTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0yek0xNi4zOSAxNS41NkMxNC43MSAxNC43IDEyLjUzIDE0IDEwIDE0cy00LjcxLjctNi4zOSAxLjU2QTIuOTcgMi45NyAwIDAgMCAyIDE4LjIyVjIxaDE2di0yLjc4YzAtMS4xMi0uNjEtMi4xNS0xLjYxLTIuNjZ6TTE2IDE5SDR2LS43OGMwLS4zOC4yLS43Mi41Mi0uODhDNS43MSAxNi43MyA3LjYzIDE2IDEwIDE2YzIuMzcgMCA0LjI5LjczIDUuNDggMS4zNC4zMi4xNi41Mi41LjUyLjg4VjE5ek0xNiAxaC0yYTkgOSAwIDAgMCA5IDlWOGMtMy44NiAwLTctMy4xNC03LTd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDFoLTJjMCAyLjc2IDIuMjQgNSA1IDVWNGMtMS42NSAwLTMtMS4zNS0zLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcGF0aWFsVHJhY2tpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxM2MyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNC00IDEuNzktNCA0IDEuNzkgNCA0IDR6bTAtNmMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6TTE2LjM5IDE1LjU2QzE0LjcxIDE0LjcgMTIuNTMgMTQgMTAgMTRzLTQuNzEuNy02LjM5IDEuNTZBMi45NyAyLjk3IDAgMCAwIDIgMTguMjJWMjFoMTZ2LTIuNzhjMC0xLjEyLS42MS0yLjE1LTEuNjEtMi42NnpNMTYgMTlINHYtLjc4YzAtLjM4LjItLjcyLjUyLS44OEM1LjcxIDE2LjczIDcuNjMgMTYgMTAgMTZjMi4zNyAwIDQuMjkuNzMgNS40OCAxLjM0LjMyLjE2LjUyLjUuNTIuODhWMTl6TTIwLjA1IDIuNDEgMTguNjQgMWMtMy41MSAzLjUxLTMuNTEgOS4yMSAwIDEyLjczbDEuNDEtMS40MWMtMi43My0yLjc0LTIuNzMtNy4xOCAwLTkuOTF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyLjg4IDUuMjQtMS40MS0xLjQxYTUuMDAzIDUuMDAzIDAgMCAwIDAgNy4wN2wxLjQxLTEuNDFhMy4wMTIgMy4wMTIgMCAwIDEgMC00LjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BlYWtlck5vdGVzT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0djEyaC0xLjM0bDEuOTEgMS45MUEyLjAxIDIuMDEgMCAwIDAgMjIgMTZWNGMwLTEuMS0uOS0yLTItMkg0LjY2bDIgMkgyMHpNNiAxMmgydjJINnptMTItM2gtNi4zNGwyIDJIMTh6bTAtM2gtOHYxLjM0bC42Ni42NkgxOHpNMS40MSAxLjU5IDAgM2wyLjAxIDIuMDFMMiAyMmw0LTRoOWw1LjczIDUuNzMgMS40MS0xLjQxTDEuNDEgMS41OXpNNS4xNyAxNiA0IDE3LjE3VjdsMiAydjJoMmw1IDVINS4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwZWFrZXJOb3RlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTRINS4xN2wtLjU5LjU5LS41OC41OFY0aDE2djEyek02IDEyaDJ2Mkg2em0wLTNoMnYySDZ6bTAtM2gydjJINnptNCA2aDV2MmgtNXptMC0zaDh2MmgtOHptMC0zaDh2MmgtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwZWxsY2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjQ1IDE2aDIuMDlMOS40MyAzSDcuNTdMMi40NiAxNmgyLjA5bDEuMTItM2g1LjY0bDEuMTQgM3ptLTYuMDItNUw4LjUgNS40OCAxMC41NyAxMUg2LjQzem0xNS4xNi41OS04LjA5IDguMDlMOS44MyAxNmwtMS40MSAxLjQxIDUuMDkgNS4wOUwyMyAxM2wtMS40MS0xLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3RhclJhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiA4Ljg5Ljk0IDMuMTFoMi44MmwtMi4yNyAxLjYyLjkzIDMuMDFMMTIgMTQuNzlsLTIuNDIgMS44NC45My0zLjAxTDguMjQgMTJoMi44MkwxMiA4Ljg5TTEyIDJsLTIuNDIgOEgybDYuMTcgNC40MUw1LjgzIDIyIDEyIDE3LjMxIDE4LjE4IDIybC0yLjM1LTcuNTlMMjIgMTBoLTcuNThMMTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0YXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyem03LjQ4IDcuMTYtNS4wMS0uNDMtMi00LjcxYzMuMjEuMTkgNS45MSAyLjI3IDcuMDEgNS4xNHptLTUuMDcgNi4yNkwxMiAxMy45OGwtMi4zOSAxLjQ0LjYzLTIuNzItMi4xMS0xLjgzIDIuNzgtLjI0TDEyIDguMDZsMS4wOSAyLjU2IDIuNzguMjQtMi4xMSAxLjgzLjY0IDIuNzN6bS0yLjg2LTExLjQtMiA0LjcyLTUuMDIuNDNjMS4xLTIuODggMy44LTQuOTcgNy4wMi01LjE1ek00IDEyYzAtLjY0LjA4LTEuMjYuMjMtMS44NmwzLjc5IDMuMjgtMS4xMSA0Ljc1QTcuOTgyIDcuOTgyIDAgMCAxIDQgMTJ6bTMuODQgNi44MkwxMiAxNi4zMWw0LjE2IDIuNUE3LjkyNCA3LjkyNCAwIDAgMSAxMS45OSAyMGMtMS41MiAwLTIuOTQtLjQ0LTQuMTUtMS4xOHptOS4yNS0uNjUtMS4xMS00Ljc1IDMuNzktMy4yOGMuMTQuNTkuMjMgMS4yMi4yMyAxLjg2IDAgMi40OC0xLjE0IDQuNy0yLjkxIDYuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdGlja3lOb3RlMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDV2OWgtNXY1SDVWNWgxNG0wLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxMGw2LTZWNWMwLTEuMS0uOS0yLTItMnptLTcgMTFIN3YtMmg1djJ6bTUtNEg3VjhoMTB2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0b3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOC4zNiA5IC42IDNINS4wNGwuNi0zaDEyLjcyTTIwIDRINHYyaDE2VjR6bTAgM0g0bC0xIDV2MmgxdjZoMTB2LTZoNHY2aDJ2LTZoMXYtMmwtMS01ek02IDE4di00aDZ2NEg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3ViamVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTdINHYyaDEwdi0yem02LThINHYyaDE2Vjl6TTQgMTVoMTZ2LTJINHYyek00IDV2MmgxNlY1SDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdWJ0aXRsZXNPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDYuODNsMiAySDIwdjExLjE3bDEuNzYgMS43NmMuMTUtLjI4LjI0LS41OS4yNC0uOTNWNmMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTBoLTUuMTdsMiAySDE4ek0xLjA0IDMuODdsMS4yIDEuMkMyLjA5IDUuMzUgMiA1LjY2IDIgNnYxMmMwIDEuMS45IDIgMiAyaDEzLjE3bDIuOTYgMi45NiAxLjQxLTEuNDFMMi40NSAyLjQ1IDEuMDQgMy44N3pNNCA2LjgzIDcuMTcgMTBINnYyaDJ2LTEuMTdMMTEuMTcgMTRINnYyaDcuMTdsMiAySDRWNi44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN1cGVydmlzZWRVc2VyQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi41IDEwYzAtMS42NS0xLjM1LTMtMy0zcy0zIDEuMzUtMyAzIDEuMzUgMyAzIDMgMy0xLjM1IDMtM3ptLTMgMWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem02LjUgMmMxLjExIDAgMi0uODkgMi0yIDAtMS4xMS0uODktMi0yLTItMS4xMSAwLTIuMDEuODktMiAyIDAgMS4xMS44OSAyIDIgMnpNMTEuOTkgMi4wMWMtNS41MiAwLTEwIDQuNDgtMTAgMTBzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwLTQuNDgtMTAtMTAtMTB6TTUuODQgMTcuMTJjLjY4LS41NCAyLjI3LTEuMTEgMy42Ni0xLjExLjA3IDAgLjE1LjAxLjIzLjAxLjI0LS42NC42Ny0xLjI5IDEuMy0xLjg2QTkuMDUgOS4wNSAwIDAgMCA5LjUgMTRjLTEuMyAwLTMuMzkuNDUtNC43MyAxLjQzLS41LTEuMDQtLjc4LTIuMi0uNzgtMy40MyAwLTQuNDEgMy41OS04IDgtOHM4IDMuNTkgOCA4YzAgMS4yLS4yNyAyLjM0LS43NSAzLjM3LTEtLjU5LTIuMzYtLjg3LTMuMjQtLjg3LTEuNTIgMC00LjUuODEtNC41IDIuN3YyLjc4YTcuOTM1IDcuOTM1IDAgMCAxLTUuNjYtMi44NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN1cGVydmlzb3JBY2NvdW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDEyYzEuOTMgMCAzLjUtMS41NyAzLjUtMy41UzEwLjkzIDUgOSA1IDUuNSA2LjU3IDUuNSA4LjUgNy4wNyAxMiA5IDEyem0wLTVjLjgzIDAgMS41LjY3IDEuNSAxLjVTOS44MyAxMCA5IDEwcy0xLjUtLjY3LTEuNS0xLjVTOC4xNyA3IDkgN3ptLjA1IDEwSDQuNzdjLjk5LS41IDIuNy0xIDQuMjMtMSAuMTEgMCAuMjMuMDEuMzQuMDEuMzQtLjczLjkzLTEuMzMgMS42NC0xLjgxLS43My0uMTMtMS40Mi0uMi0xLjk4LS4yLTIuMzQgMC03IDEuMTctNyAzLjVWMTloN3YtMS41YzAtLjE3LjAyLS4zNC4wNS0uNXptNy40NS0yLjVjLTEuODQgMC01LjUgMS4wMS01LjUgM1YxOWgxMXYtMS41YzAtMS45OS0zLjY2LTMtNS41LTN6bTEuMjEtMS44MmMuNzYtLjQzIDEuMjktMS4yNCAxLjI5LTIuMThhMi41IDIuNSAwIDAgMC01IDBjMCAuOTQuNTMgMS43NSAxLjI5IDIuMTguMzYuMi43Ny4zMiAxLjIxLjMycy44NS0uMTIgMS4yMS0uMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdXBwb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptNy40NiA3LjEyLTIuNzggMS4xNWE0Ljk4MiA0Ljk4MiAwIDAgMC0yLjk1LTIuOTRsMS4xNS0yLjc4YzIuMS44IDMuNzcgMi40NyA0LjU4IDQuNTd6TTEyIDE1Yy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zIDMgMS4zNCAzIDMtMS4zNCAzLTMgM3pNOS4xMyA0LjU0bDEuMTcgMi43OGE1IDUgMCAwIDAtMi45OCAyLjk3TDQuNTQgOS4xM2E3Ljk4NCA3Ljk4NCAwIDAgMSA0LjU5LTQuNTl6TTQuNTQgMTQuODdsMi43OC0xLjE1YTQuOTY4IDQuOTY4IDAgMCAwIDIuOTcgMi45NmwtMS4xNyAyLjc4YTcuOTk2IDcuOTk2IDAgMCAxLTQuNTgtNC41OXptMTAuMzQgNC41OS0xLjE1LTIuNzhhNC45NzggNC45NzggMCAwIDAgMi45NS0yLjk3bDIuNzggMS4xN2E4LjAwNyA4LjAwNyAwIDAgMS00LjU4IDQuNTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTd2FwSG9yaXogKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuOTkgMTEgMyAxNWwzLjk5IDR2LTNIMTR2LTJINi45OXYtM3pNMjEgOWwtMy45OS00djNIMTB2Mmg3LjAxdjNMMjEgOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN3YXBIb3Jpem9udGFsQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptMy0xMy41VjloLTR2Mmg0djIuNWwzLjUtMy41em0tNiA0TDUuNSAxNCA5IDE3LjVWMTVoNHYtMkg5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3dhcFZlcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDE3LjAxVjEwaC0ydjcuMDFoLTNMMTUgMjFsNC0zLjk5aC0zek05IDMgNSA2Ljk5aDNWMTRoMlY2Ljk5aDNMOSAzem03IDE0LjAxVjEwaC0ydjcuMDFoLTNMMTUgMjFsNC0zLjk5aC0zek05IDMgNSA2Ljk5aDNWMTRoMlY2Ljk5aDNMOSAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3dhcFZlcnRpY2FsQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpNNi41IDkgMTAgNS41IDEzLjUgOUgxMXY0SDlWOXptMTEgNkwxNCAxOC41IDEwLjUgMTVIMTN2LTRoMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3dpcGVEb3duQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTMuOWE1IDUgMCAxIDAtMiAwdjQuMjdsLTEuNTktMS41OUw4IDE4bDQgNCA0LTQtMS40MS0xLjQxTDEzIDE4LjE3VjEzLjl6TTE1IDljMCAxLjY2LTEuMzQgMy0zIDNzLTMtMS4zNC0zLTMgMS4zNC0zIDMtMyAzIDEuMzQgMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3dpcGVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuMjIgMTAtNC4xNS4wMWEuOTc1Ljk3NSAwIDAgMC0uNDUuMDhsLS41OS4yNi0xLjgzLTQuMWMtLjU2LTEuMjYtMi4wNC0xLjgzLTMuMy0xLjI3cy0xLjgzIDIuMDQtMS4yNyAzLjNsMy4zIDcuNDUtMS44Ny4zOWMtLjE5LjA1LS45OS4yNy0xLjM2IDEuMjFMOCAxOS4xOWw2Ljc4IDIuNjdjLjQ5LjE5IDEuMDUuMTggMS41My0uMDRsNS45OS0yLjY1Yy44OS0uNCAxLjM3LTEuMzggMS4xMy0yLjMybC0xLjM2LTUuMzRjLS4yMi0uODYtLjk3LTEuNDctMS44NS0xLjUxem0xLjI3IDcuMzRMMTUuNSAyMGwtNC45Mi0xLjk2IDQuMTgtLjg4LTQuMy05LjdjLS4xMS0uMjUgMC0uNTUuMjUtLjY2LjI1LS4xMS41NSAwIC42Ni4yNWwyLjUgNS42NSAxLjYxLS43MSA0LjY1LjAxIDEuMzYgNS4zNHpNMy44IDEyLjE4Yy0uMi0uODYtLjMtMS43Ni0uMy0yLjY4IDAtMi44NC45OS01LjQ1IDIuNjMtNy41TDcuMiAzLjA3YTEwLjQ1NyAxMC40NTcgMCAwIDAtMS44OCA4Ljk5bDEuNjItMS42Mkw4IDExLjUgNC41IDE1IDEgMTEuNWwxLjA2LTEuMDYgMS43NCAxLjc0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3dpcGVMZWZ0QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMSAxM2E1IDUgMCAxIDAgMC0ySDUuODNsMS41OS0xLjU5TDYgOGwtNCA0IDQgNCAxLjQxLTEuNDFMNS44MyAxM2g0LjI3em00LjkgMmMtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtMyAzIDEuMzQgMyAzLTEuMzQgMy0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTd2lwZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOC44OSAxMy43Ny0zLjgtMS42N2MtLjEzLS4wNi0uMjgtLjEtLjQ0LS4xSDE0VjcuNWEyLjUgMi41IDAgMCAwLTUgMHY4LjE1bC0xLjg3LS40Yy0uMTktLjAzLTEuMDItLjE1LTEuNzMuNTZMNCAxNy4yMmw1LjEyIDUuMTljLjM3LjM4Ljg4LjU5IDEuNDEuNTloNi41NWMuOTggMCAxLjgxLS43IDEuOTctMS42N2wuOTItNS40NGEyIDIgMCAwIDAtMS4wOC0yLjEyek0xNy4wOCAyMWgtNi41NWwtMy43LTMuNzggNC4xNy44OVY3LjVjMC0uMjguMjItLjUuNS0uNXMuNS4yMi41LjV2Ni4xOGgxLjc2TDE4IDE1LjU2IDE3LjA4IDIxek00LjA5IDUuNUg3VjdIMlYyaDEuNXYyLjAyQzUuODIgMi4xMyA4Ljc4IDEgMTIgMWM1LjQ5IDAgOS4yNyAzLjEyIDEwIDZoLTEuNTdjLS43Ni0xLjk4LTMuNjktNC41LTguNDMtNC41LTMuMDMgMC01Ljc5IDEuMTQtNy45MSAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3dpcGVSaWdodEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjkgMTFhNSA1IDAgMSAwIDAgMmg0LjI3bC0xLjU5IDEuNTlMMTggMTZsNC00LTQtNC0xLjQxIDEuNDFMMTguMTcgMTFIMTMuOXpNOSA5YzEuNjYgMCAzIDEuMzQgMyAzcy0xLjM0IDMtMyAzLTMtMS4zNC0zLTMgMS4zNC0zIDMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN3aXBlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOC44OSAxMy43Ny0zLjgtMS42N2MtLjEzLS4wNi0uMjgtLjEtLjQ0LS4xSDE0VjcuNWEyLjUgMi41IDAgMCAwLTUgMHY4LjE1bC0xLjg3LS40Yy0uMTktLjAzLTEuMDItLjE1LTEuNzMuNTZMNCAxNy4yMmw1LjEyIDUuMTljLjM3LjM4Ljg4LjU5IDEuNDEuNTloNi41NWMuOTggMCAxLjgxLS43IDEuOTctMS42N2wuOTItNS40NGEyIDIgMCAwIDAtMS4wOC0yLjEyek0xNy4wOCAyMWgtNi41NWwtMy43LTMuNzggNC4xNy44OVY3LjVjMC0uMjguMjItLjUuNS0uNXMuNS4yMi41LjV2Ni4xOGgxLjc2TDE4IDE1LjU2IDE3LjA4IDIxek0xMiAyLjVDNy4yNiAyLjUgNC4zMyA1LjAyIDMuNTcgN0gyYy43My0yLjg4IDQuNTEtNiAxMC02IDMuMjIgMCA2LjE4IDEuMTMgOC41IDMuMDJWMkgyMnY1aC01VjUuNWgyLjkxYy0yLjEyLTEuODYtNC44OC0zLTcuOTEtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN3aXBlVXBBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMyA1LjgzIDEuNTkgMS41OUwxNiA2bC00LTQtNCA0IDEuNDEgMS40MUwxMSA1LjgzdjQuMjdhNSA1IDAgMSAwIDIgMFY1Ljgzek0xMiAxOGMtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtMyAzIDEuMzQgMyAzLTEuMzQgMy0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTd2lwZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuMjIgMTAtNC4xNS4wMWEuOTc1Ljk3NSAwIDAgMC0uNDUuMDhsLS41OS4yNi0xLjgzLTQuMWMtLjU2LTEuMjYtMi4wNC0xLjgzLTMuMy0xLjI3cy0xLjgzIDIuMDQtMS4yNyAzLjNsMy4zIDcuNDUtMS44Ny4zOWMtLjE5LjA1LS45OS4yNy0xLjM2IDEuMjFMOCAxOS4xOWw2Ljc4IDIuNjdjLjQ5LjE5IDEuMDUuMTggMS41My0uMDRsNS45OS0yLjY1Yy44OS0uNCAxLjM3LTEuMzggMS4xMy0yLjMybC0xLjM2LTUuMzRjLS4yMi0uODYtLjk3LTEuNDctMS44NS0xLjUxem0xLjI3IDcuMzRMMTUuNSAyMGwtNC45Mi0xLjk2IDQuMTgtLjg4LTQuMy05LjdjLS4xMS0uMjUgMC0uNTUuMjUtLjY2LjI1LS4xMS41NSAwIC42Ni4yNWwyLjUgNS42NSAxLjYxLS43MSA0LjY1LjAxIDEuMzYgNS4zNHpNMi4wNiA1LjU2IDEgNC41IDQuNSAxIDggNC41IDYuOTQgNS41NiA1LjMyIDMuOTRhMTAuNDU3IDEwLjQ1NyAwIDAgMCAxLjg4IDguOTlMNi4xMyAxNEExMS45NzQgMTEuOTc0IDAgMCAxIDMuNSA2LjVjMC0uOTIuMS0xLjgyLjMtMi42OEwyLjA2IDUuNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTd2lwZVZlcnRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAyaDV2NUg0LjVWNC4wOWMtMS44NiAyLjExLTMgNC44OC0zIDcuOTFzMS4xNCA1Ljc5IDMgNy45MVYxN0g2djVIMXYtMS41aDIuMDJDMS4xMyAxOC4xOCAwIDE1LjIyIDAgMTJzMS4xMy02LjE4IDMuMDItOC41SDFWMnptMTkuMjIgOC00LjE1LjAxYS45NzUuOTc1IDAgMCAwLS40NS4wOGwtLjU5LjI2LTEuODMtNC4xYy0uNTYtMS4yNi0yLjA0LTEuODMtMy4zLTEuMjdzLTEuODMgMi4wNC0xLjI3IDMuM2wzLjMgNy40NS0xLjg3LjM5Yy0uMTkuMDUtLjk5LjI3LTEuMzYgMS4yMUw4IDE5LjE5bDYuNzggMi42N2MuNDkuMTkgMS4wNS4xOCAxLjUzLS4wNGw1Ljk5LTIuNjVjLjg5LS40IDEuMzctMS4zOCAxLjEzLTIuMzJsLTEuMzYtNS4zNGMtLjIyLS44Ni0uOTctMS40Ny0xLjg1LTEuNTF6bTEuMjcgNy4zNEwxNS41IDIwbC00LjkyLTEuOTYgNC4xOC0uODgtNC4zLTkuN2MtLjExLS4yNSAwLS41NS4yNS0uNjYuMjUtLjExLjU1IDAgLjY2LjI1bDIuNSA1LjY1IDEuNjEtLjcxIDQuNjUuMDEgMS4zNiA1LjM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3dpcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC41IDJ2Mi4wMkMxOC4xOCAyLjEzIDE1LjIyIDEgMTIgMVM1LjgyIDIuMTMgMy41IDQuMDJWMkgydjVoNVY1LjVINC4wOWMyLjExLTEuODYgNC44OC0zIDcuOTEtM3M1Ljc5IDEuMTQgNy45MSAzSDE3VjdoNVYyaC0xLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4Ljg5IDEzLjc3LTMuOC0xLjY3Yy0uMTMtLjA2LS4yOC0uMS0uNDQtLjFIMTRWNy42M2MwLTEuMzItLjk2LTIuNS0yLjI3LTIuNjJBMi41MDggMi41MDggMCAwIDAgOSA3LjV2OC4xNWwtMS44Ny0uNGMtLjE5LS4wMy0xLjAyLS4xNS0xLjczLjU2TDQgMTcuMjJsNS4xMiA1LjE5Yy4zNy4zOC44OC41OSAxLjQxLjU5aDYuNTVjLjk4IDAgMS44MS0uNyAxLjk3LTEuNjdsLjkyLTUuNDRhMiAyIDAgMCAwLTEuMDgtMi4xMnpNMTggMTUuNTYgMTcuMDggMjFoLTYuNTVsLTMuNy0zLjc4IDQuMTcuODlWNy41YzAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41djYuMThoMS43NkwxOCAxNS41NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN3aXRjaEFjY2Vzc1Nob3J0Y3V0QWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4wNiA4Ljk0IDUgOGwyLjA2LS45NEw4IDVsLjk0IDIuMDZMMTEgOGwtMi4wNi45NEw4IDExbC0uOTQtMi4wNnpNOCAyMWwuOTQtMi4wNkwxMSAxOGwtMi4wNi0uOTRMOCAxNWwtLjk0IDIuMDZMNSAxOGwyLjA2Ljk0TDggMjF6bS0zLjYzLTguNjNMMyAxM2wxLjM3LjYzTDUgMTVsLjYzLTEuMzdMNyAxM2wtMS4zNy0uNjNMNSAxMWwtLjYzIDEuMzd6TTEyIDEyYzAtMy4wOSAxLjM4LTUuOTQgMy40NC04SDEyVjJoN3Y3aC0yVjUuMjhjLTEuOCAxLjc0LTMgNC4yLTMgNi43MiAwIDMuMzIgMi4xIDYuMzYgNSA3LjgyVjIyYy00LjA5LTEuNTktNy01LjY1LTctMTB6bTEyIDJoLTJ2LTJoLTJ2MmgtMnYyaDJ2Mmgydi0yaDJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTd2l0Y2hBY2Nlc3NTaG9ydGN1dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMDYgOC45NCA1IDhsMi4wNi0uOTRMOCA1bC45NCAyLjA2TDExIDhsLTIuMDYuOTRMOCAxMWwtLjk0LTIuMDZ6TTggMjFsLjk0LTIuMDZMMTEgMThsLTIuMDYtLjk0TDggMTVsLS45NCAyLjA2TDUgMThsMi4wNi45NEw4IDIxem0tMy42My04LjYzTDMgMTNsMS4zNy42M0w1IDE1bC42My0xLjM3TDcgMTNsLTEuMzctLjYzTDUgMTFsLS42MyAxLjM3ek0xMiAxMmMwLTMuMDkgMS4zOC01Ljk0IDMuNDQtOEgxMlYyaDd2N2gtMlY1LjI4Yy0xLjggMS43NC0zIDQuMi0zIDYuNzIgMCAzLjMyIDIuMSA2LjM2IDUgNy44MlYyMmMtNC4wOS0xLjU5LTctNS42NS03LTEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3luY0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNDEgMTMuNDEgNiAxMmwtNCA0IDQgNCAxLjQxLTEuNDFMNS44MyAxN0gyMXYtMkg1Ljgzek0xNi41OSAxMC41OSAxOCAxMmw0LTQtNC00LTEuNDEgMS40MUwxOC4xNyA3SDN2MmgxNS4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN5c3RlbVVwZGF0ZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgMTYgNC00aC0zVjNoLTJ2OUg4bDQgNHptOS0xM2gtNnYxLjk5aDZ2MTQuMDNIM1Y0Ljk5aDZWM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS05IDEzIDQtNGgtM1YzaC0ydjlIOGw0IDR6bTktMTNoLTZ2MS45OWg2djE0LjAzSDNWNC45OWg2VjNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGFiVW5zZWxlY3RlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSA5aDJWN0gxdjJ6bTAgNGgydi0ySDF2MnptMC04aDJWM2MtMS4xIDAtMiAuOS0yIDJ6bTggMTZoMnYtMkg5djJ6bS04LTRoMnYtMkgxdjJ6bTIgNHYtMkgxYzAgMS4xLjkgMiAyIDJ6TTIxIDNoLTh2NmgxMFY1YzAtMS4xLS45LTItMi0yem0wIDE0aDJ2LTJoLTJ2MnpNOSA1aDJWM0g5djJ6TTUgMjFoMnYtMkg1djJ6TTUgNWgyVjNINXYyem0xNiAxNmMxLjEgMCAyLS45IDItMmgtMnYyem0wLThoMnYtMmgtMnYyem0tOCA4aDJ2LTJoLTJ2MnptNCAwaDJ2LTJoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRhYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZIM1Y1aDEwdjRoOHYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRhYmxlVmlldyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDdIOWMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlY5YzAtMS4xLS45LTItMi0yem0wIDJ2Mkg5VjloMTB6bS02IDZ2LTJoMnYyaC0yem0yIDJ2MmgtMnYtMmgyem0tNC0ySDl2LTJoMnYyem02LTJoMnYyaC0ydi0yem0tOCA0aDJ2Mkg5di0yem04IDJ2LTJoMnYyaC0yek02IDE3SDVjLTEuMSAwLTItLjktMi0yVjVjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMnYxaC0yVjVINXYxMGgxdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUYXNrQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNS4xOCAxMC41OSAxNi42bC00LjI0LTQuMjQgMS40MS0xLjQxIDIuODMgMi44MyAxMC0xMEwyMiA1LjE4em0tMi4yMSA1LjA0Yy4xMy41Ny4yMSAxLjE3LjIxIDEuNzggMCA0LjQyLTMuNTggOC04IDhzLTgtMy41OC04LTggMy41OC04IDgtOGMxLjU4IDAgMy4wNC40NiA0LjI4IDEuMjVsMS40NC0xLjQ0QTkuOSA5LjkgMCAwIDAgMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwYzAtMS4xOS0uMjItMi4zMy0uNi0zLjM5bC0xLjYxIDEuNjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUZXJtaW5hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmEyIDIgMCAwIDAtMi0yem0wIDE0SDRWOGgxNnYxMHptLTItMWgtNnYtMmg2djJ6TTcuNSAxN2wtMS40MS0xLjQxTDguNjcgMTNsLTIuNTktMi41OUw3LjUgOWw0IDQtNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGV4dFJvdGF0ZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOCA0LTMgM2gydjEzaDJWN2gybC0zLTN6bS02LjIgMTEuNXYtNWwyLjItLjlWNy41TDMgMTIuMjV2MS41bDExIDQuNzV2LTIuMWwtMi4yLS45ek00Ljk4IDEzIDEwIDExLjEzdjMuNzRMNC45OCAxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRleHRSb3RhdGVWZXJ0aWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNzUgNWgtMS41TDkuNSAxNmgyLjFsLjktMi4yaDVsLjkgMi4yaDIuMUwxNS43NSA1em0tMi42MiA3TDE1IDYuOTggMTYuODcgMTJoLTMuNzR6TTYgMjBsMy0zSDdWNEg1djEzSDNsMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGV4dFJvdGF0aW9uQW5nbGVkb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAyMXYtNC4yNGwtMS40MSAxLjQxLTkuMi05LjE5LTEuNDEgMS40MSA5LjE5IDkuMTlMMTAuNzYgMjFIMTV6TTExLjI1IDguNDhsMy41NCAzLjU0LS45MiAyLjE5IDEuNDggMS40OCA0LjQyLTExLjE0LTEuMDYtMS4wNUw3LjU3IDcuOTIgOS4wNiA5LjRsMi4xOS0uOTJ6bTYuNTktMy4wNS0yLjIzIDQuODctMi42NC0yLjY0IDQuODctMi4yM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRleHRSb3RhdGlvbkFuZ2xldXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2Ljc2IDkgMS40MSAxLjQxLTkuMTkgOS4xOSAxLjQxIDEuNDEgOS4xOS05LjE5TDIxIDEzLjI0VjloLTQuMjR6bS04LjI4IDMuNzUgMy41NC0zLjU0IDIuMTkuOTIgMS40OC0xLjQ4TDQuNTYgNC4yMyAzLjUgNS4yOWw0LjQyIDExLjE0IDEuNDgtMS40OC0uOTItMi4yem0tLjgyLTEuNzJMNS40MyA2LjE2bDQuODcgMi4yMy0yLjY0IDIuNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUZXh0Um90YXRpb25Eb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm02IDIwIDMtM0g3VjRINXYxM0gzbDMgM3ptNi4yLTExLjV2NWwtMi4yLjl2Mi4xbDExLTQuNzV2LTEuNUwxMCA1LjV2Mi4xbDIuMi45em02LjgyIDIuNUwxNCAxMi44N1Y5LjEzTDE5LjAyIDExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGV4dFJvdGF0aW9uTm9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEgMTgtMy0zdjJINXYyaDEzdjJsMy0zek05LjUgMTEuOGg1bC45IDIuMmgyLjFMMTIuNzUgM2gtMS41TDYuNSAxNGgyLjFsLjktMi4yek0xMiA0Ljk4IDEzLjg3IDEwaC0zLjc0TDEyIDQuOTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUaGVhdGVycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggM3YyaC0yVjNIOHYySDZWM0g0djE4aDJ2LTJoMnYyaDh2LTJoMnYyaDJWM2gtMnpNOCAxN0g2di0yaDJ2MnptMC00SDZ2LTJoMnYyem0wLTRINlY3aDJ2MnptNiAxMGgtNFY1aDR2MTR6bTQtMmgtMnYtMmgydjJ6bTAtNGgtMnYtMmgydjJ6bTAtNGgtMlY3aDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRodW1iRG93bk9mZkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDNINmMtLjgzIDAtMS41NC41LTEuODQgMS4yMmwtMy4wMiA3LjA1Yy0uMDkuMjMtLjE0LjQ3LS4xNC43M3YyYzAgMS4xLjkgMiAyIDJoNi4zMWwtLjk1IDQuNTctLjAzLjMyYzAgLjQxLjE3Ljc5LjQ0IDEuMDZMOS44MyAyM2w2LjU5LTYuNTljLjM2LS4zNi41OC0uODYuNTgtMS40MVY1YzAtMS4xLS45LTItMi0yem0wIDEyLTQuMzQgNC4zNEwxMiAxNEgzdi0ybDMtN2g5djEwem00LTEyaDR2MTJoLTRWM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRodW1iRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgM0g2Yy0uODMgMC0xLjU0LjUtMS44NCAxLjIybC0zLjAyIDcuMDVjLS4wOS4yMy0uMTQuNDctLjE0LjczdjJjMCAxLjEuOSAyIDIgMmg2LjMxbC0uOTUgNC41Ny0uMDMuMzJjMCAuNDEuMTcuNzkuNDQgMS4wNkw5LjgzIDIzbDYuNTktNi41OWMuMzYtLjM2LjU4LS44Ni41OC0xLjQxVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTItNC4zNCA0LjM0TDEyIDE0SDN2LTJsMy03aDl2MTB6bTQtMTJoNHYxMmgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRodW1iVXBPZmZBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDIxaDljLjgzIDAgMS41NC0uNSAxLjg0LTEuMjJsMy4wMi03LjA1Yy4wOS0uMjMuMTQtLjQ3LjE0LS43M3YtMmMwLTEuMS0uOS0yLTItMmgtNi4zMWwuOTUtNC41Ny4wMy0uMzJjMC0uNDEtLjE3LS43OS0uNDQtMS4wNkwxNC4xNyAxIDcuNTggNy41OUM3LjIyIDcuOTUgNyA4LjQ1IDcgOXYxMGMwIDEuMS45IDIgMiAyek05IDlsNC4zNC00LjM0TDEyIDEwaDl2MmwtMyA3SDlWOXpNMSA5aDR2MTJIMVY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGh1bWJVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAyMWg5Yy44MyAwIDEuNTQtLjUgMS44NC0xLjIybDMuMDItNy4wNWMuMDktLjIzLjE0LS40Ny4xNC0uNzN2LTJjMC0xLjEtLjktMi0yLTJoLTYuMzFsLjk1LTQuNTcuMDMtLjMyYzAtLjQxLS4xNy0uNzktLjQ0LTEuMDZMMTQuMTcgMSA3LjU4IDcuNTlDNy4yMiA3Ljk1IDcgOC40NSA3IDl2MTBjMCAxLjEuOSAyIDIgMnpNOSA5bDQuMzQtNC4zNEwxMiAxMGg5djJsLTMgN0g5Vjl6TTEgOWg0djEySDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUaHVtYnNVcERvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDZjMC0uNTUtLjQ1LTEtMS0xSDUuODJsLjY2LTMuMTguMDItLjIzYzAtLjMxLS4xMy0uNTktLjMzLS44TDUuMzggMCAuNDQgNC45NEMuMTcgNS4yMSAwIDUuNTkgMCA2djYuNWMwIC44My42NyAxLjUgMS41IDEuNWg2Ljc1Yy42MiAwIDEuMTUtLjM4IDEuMzgtLjkxbDIuMjYtNS4yOWMuMDctLjE3LjExLS4zNi4xMS0uNTVWNnptLTIgMS4xM0w3LjkyIDEySDJWNi4yMWwxLjkzLTEuOTNMMy4zNiA3SDEwdi4xM3pNMjIuNSAxMGgtNi43NWMtLjYyIDAtMS4xNS4zOC0xLjM4LjkxbC0yLjI2IDUuMjljLS4wNy4xNy0uMTEuMzYtLjExLjU1VjE4YzAgLjU1LjQ1IDEgMSAxaDUuMThsLS42NiAzLjE4LS4wMi4yNGMwIC4zMS4xMy41OS4zMy44bC43OS43OCA0Ljk0LTQuOTRjLjI3LS4yNy40NC0uNjUuNDQtMS4wNnYtNi41YzAtLjgzLS42Ny0xLjUtMS41LTEuNXptLS41IDcuNzktMS45MyAxLjkzLjU3LTIuNzJIMTR2LS4xM0wxNi4wOCAxMkgyMnY1Ljc5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGltZWxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyA4YzAgMS4xLS45IDItMiAyYTEuNyAxLjcgMCAwIDEtLjUxLS4wN2wtMy41NiAzLjU1Yy4wNS4xNi4wNy4zNC4wNy41MiAwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTJjMC0uMTguMDItLjM2LjA3LS41MmwtMi41NS0yLjU1Yy0uMTYuMDUtLjM0LjA3LS41Mi4wN3MtLjM2LS4wMi0uNTItLjA3bC00LjU1IDQuNTZjLjA1LjE2LjA3LjMzLjA3LjUxIDAgMS4xLS45IDItMiAycy0yLS45LTItMiAuOS0yIDItMmMuMTggMCAuMzUuMDIuNTEuMDdsNC41Ni00LjU1QzguMDIgOS4zNiA4IDkuMTggOCA5YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJjMCAuMTgtLjAyLjM2LS4wNy41MmwyLjU1IDIuNTVjLjE2LS4wNS4zNC0uMDcuNTItLjA3cy4zNi4wMi41Mi4wN2wzLjU1LTMuNTZBMS43IDEuNyAwIDAgMSAxOSA4YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUaXBzQW5kVXBkYXRlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMjBoNGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTJ6bS0yLTFoOHYtMkg1djJ6bTExLjUtOS41YzAgMy44Mi0yLjY2IDUuODYtMy43NyA2LjVINS4yN2MtMS4xMS0uNjQtMy43Ny0yLjY4LTMuNzctNi41QzEuNSA1LjM2IDQuODYgMiA5IDJzNy41IDMuMzYgNy41IDcuNXptLTIgMEMxNC41IDYuNDcgMTIuMDMgNCA5IDRTMy41IDYuNDcgMy41IDkuNWMwIDIuNDcgMS40OSAzLjg5IDIuMzUgNC41aDYuM2MuODYtLjYxIDIuMzUtMi4wMyAyLjM1LTQuNXptNi44Ny0yLjEzTDIwIDhsMS4zNy42M0wyMiAxMGwuNjMtMS4zN0wyNCA4bC0xLjM3LS42M0wyMiA2bC0uNjMgMS4zN3pNMTkgNmwuOTQtMi4wNkwyMiAzbC0yLjA2LS45NEwxOSAwbC0uOTQgMi4wNkwxNiAzbDIuMDYuOTRMMTkgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRvYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA5aDE0VjdIM3Yyem0wIDRoMTR2LTJIM3Yyem0wIDRoMTR2LTJIM3Yyem0xNiAwaDJ2LTJoLTJ2MnptMC0xMHYyaDJWN2gtMnptMCA2aDJ2LTJoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRvZGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzaC0xVjFoLTJ2Mkg4VjFINnYySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY5aDE0djEwem0wLTEySDVWNWgxNHYyek03IDExaDV2NUg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVG9rZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMSA3LTktNS05IDV2MTBsOSA1IDktNVY3em0tOS0yLjcxIDUuOTEgMy4yOC0zLjAxIDEuNjdDMTQuMTcgOC40OCAxMy4xNCA4IDEyIDhzLTIuMTcuNDgtMi45IDEuMjRMNi4wOSA3LjU3IDEyIDQuMjl6bS0xIDE0Ljg3LTYtMy4zM1Y5LjI2TDguMTMgMTFjLS4wOS4zMS0uMTMuNjUtLjEzIDEgMCAxLjg2IDEuMjcgMy40MyAzIDMuODd2My4yOXpNMTAgMTJjMC0xLjEuOS0yIDItMnMyIC45IDIgMi0uOSAyLTIgMi0yLS45LTItMnptMyA3LjE2di0zLjI4YzEuNzMtLjQ0IDMtMi4wMSAzLTMuODcgMC0uMzUtLjA0LS42OS0uMTMtMS4wMUwxOSA5LjI2djYuNTdsLTYgMy4zM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRvbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDRjLTQuNDIgMC04IDMuNTgtOCA4czMuNTggOCA4IDggOC0zLjU4IDgtOC0zLjU4LTgtOC04em0wIDE0Yy0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02IDYgMi42OSA2IDYtMi42OSA2LTYgNnpNMyAxMmE1Ljk5IDUuOTkgMCAwIDEgNC01LjY1VjQuMjZDMy41NSA1LjE1IDEgOC4yNyAxIDEyczIuNTUgNi44NSA2IDcuNzR2LTIuMDlBNS45OSA1Ljk5IDAgMCAxIDMgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUb3VjaEFwcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4LjE5IDEyLjQ0LTMuMjQtMS42MmMxLjI5LTEgMi4xMi0yLjU2IDIuMTItNC4zMiAwLTMuMDMtMi40Ny01LjUtNS41LTUuNXMtNS41IDIuNDctNS41IDUuNWMwIDIuMTMgMS4yMiAzLjk4IDMgNC44OXYzLjI2Yy0yLjE1LS40Ni0yLjAyLS40NC0yLjI2LS40NC0uNTMgMC0xLjAzLjIxLTEuNDEuNTlMNCAxNi4yMmw1LjA5IDUuMDljLjQzLjQ0IDEuMDMuNjkgMS42NS42OWg2LjNjLjk4IDAgMS44MS0uNyAxLjk3LTEuNjdsLjgtNC43MWMuMjItMS4zLS40My0yLjU4LTEuNjItMy4xOHptLS4zNSAyLjg1LS44IDQuNzFoLTYuM2MtLjA5IDAtLjE3LS4wNC0uMjQtLjFsLTMuNjgtMy42OCA0LjI1Ljg5VjYuNWMwLS4yOC4yMi0uNS41LS41cy41LjIyLjUuNXY2aDEuNzZsMy40NiAxLjczYy40LjIuNjIuNjMuNTUgMS4wNnpNOC4wNyA2LjVjMC0xLjkzIDEuNTctMy41IDMuNS0zLjVzMy41IDEuNTcgMy41IDMuNWMwIC45NS0uMzggMS44MS0xIDIuNDRWNi41YTIuNSAyLjUgMCAwIDAtNSAwdjIuNDRjLS42Mi0uNjMtMS0xLjQ5LTEtMi40NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRvdXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA0SDdWMkg1djIwaDJ2LThoMTRsLTItNSAyLTV6bS0zLjg2IDUuNzQuOSAyLjI2SDdWNmgxMS4wNWwtLjkgMi4yNi0uMy43NC4yOS43NHpNMTQgOWMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgLjktMiAyLTIgMiAuOSAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUcmFja0NoYW5nZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5LjA3IDQuOTMtMS40MSAxLjQxQTguMDE0IDguMDE0IDAgMCAxIDIwIDEyYzAgNC40Mi0zLjU4IDgtOCA4cy04LTMuNTgtOC04YzAtNC4wOCAzLjA1LTcuNDQgNy03LjkzdjIuMDJDOC4xNiA2LjU3IDYgOS4wMyA2IDEyYzAgMy4zMSAyLjY5IDYgNiA2czYtMi42OSA2LTZjMC0xLjY2LS42Ny0zLjE2LTEuNzYtNC4yNGwtMS40MSAxLjQxQzE1LjU1IDkuOSAxNiAxMC45IDE2IDEyYzAgMi4yMS0xLjc5IDQtNCA0cy00LTEuNzktNC00YzAtMS44NiAxLjI4LTMuNDEgMy0zLjg2djIuMTRjLS42LjM1LTEgLjk4LTEgMS43MiAwIDEuMS45IDIgMiAyczItLjkgMi0yYzAtLjc0LS40LTEuMzgtMS0xLjcyVjJoLTFDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMGMwLTIuNzYtMS4xMi01LjI2LTIuOTMtNy4wN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRyYW5zY3JpYmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDEzYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptMC02YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnptNi4zOSA4LjU2QzEzLjcxIDE0LjcgMTEuNTMgMTQgOSAxNHMtNC43MS43LTYuMzkgMS41NkEyLjk3IDIuOTcgMCAwIDAgMSAxOC4yMlYyMWgxNnYtMi43OGMwLTEuMTItLjYxLTIuMTUtMS42MS0yLjY2ek0xNSAxOUgzdi0uNzhjMC0uMzguMi0uNzIuNTItLjg4QzQuNzEgMTYuNzMgNi42MyAxNiA5IDE2YzIuMzcgMCA0LjI5LjczIDUuNDggMS4zNC4zMi4xNi41Mi41LjUyLjg4VjE5em0yLjkzLTMgMS42My0xLjYzYy0yLjc3LTMuMDItMi43Ny03LjU2IDAtMTAuNzRMMTcuOTMgMmMtMy45IDMuODktMy45MSA5Ljk1IDAgMTR6bTQuOTktNS4wNWEzLjMxNyAzLjMxNyAwIDAgMSAwLTMuODlsLTEuNjgtMS42OWMtMi4wMiAyLjAyLTIuMDIgNS4wNyAwIDcuMjdsMS42OC0xLjY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHJhbnNsYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMi44NyAxNS4wNy0yLjU0LTIuNTEuMDMtLjAzQTE3LjUyIDE3LjUyIDAgMCAwIDE0LjA3IDZIMTdWNGgtN1YySDh2MkgxdjEuOTloMTEuMTdDMTEuNSA3LjkyIDEwLjQ0IDkuNzUgOSAxMS4zNSA4LjA3IDEwLjMyIDcuMyA5LjE5IDYuNjkgOGgtMmMuNzMgMS42MyAxLjczIDMuMTcgMi45OCA0LjU2bC01LjA5IDUuMDJMNCAxOWw1LTUgMy4xMSAzLjExLjc2LTIuMDR6TTE4LjUgMTBoLTJMMTIgMjJoMmwxLjEyLTNoNC43NUwyMSAyMmgybC00LjUtMTJ6bS0yLjYyIDcgMS42Mi00LjMzTDE5LjEyIDE3aC0zLjI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHJlbmRpbmdEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNiAxOCAyLjI5LTIuMjktNC44OC00Ljg4LTQgNEwyIDcuNDEgMy40MSA2bDYgNiA0LTQgNi4zIDYuMjlMMjIgMTJ2NmgtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRyZW5kaW5nRmxhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgMTItNC00djNIM3YyaDE1djNsNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHJlbmRpbmdVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYgNiAyLjI5IDIuMjktNC44OCA0Ljg4LTQtNEwyIDE2LjU5IDMuNDEgMThsNi02IDQgNCA2LjMtNi4yOUwyMiAxMlY2aC02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHJvdWJsZXNob290IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgMjAuNTktNC42OS00LjY5QTcuOTAyIDcuOTAyIDAgMCAwIDE5IDExYzAtNC40Mi0zLjU4LTgtOC04LTQuMDggMC03LjQ0IDMuMDUtNy45MyA3aDIuMDJDNS41NyA3LjE3IDguMDMgNSAxMSA1YzMuMzEgMCA2IDIuNjkgNiA2cy0yLjY5IDYtNiA2Yy0yLjQyIDAtNC41LTEuNDQtNS40NS0zLjVIMy40QzQuNDUgMTYuNjkgNy40NiAxOSAxMSAxOWMxLjg1IDAgMy41NS0uNjMgNC45LTEuNjlMMjAuNTkgMjIgMjIgMjAuNTl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNDMgOS42OSA5LjY1IDE1aDEuNjRsMS4yNi0zLjc4Ljk1IDIuMjhoMlYxMmgtMWwtMS4yNS0zaC0xLjU0bC0xLjEyIDMuMzdMOS4zNSA3SDcuN2wtMS4yNSA0SDF2MS41aDYuNTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE4bDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDUuMTdMNCAxNy4xN1Y0aDE2djEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiAxNSAxLjU3LTMuNDNMMTcgMTBsLTMuNDMtMS41N0wxMiA1bC0xLjU3IDMuNDNMNyAxMGwzLjQzIDEuNTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUdXJuZWRJbk5vdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgM0g3Yy0xLjEgMC0xLjk5LjktMS45OSAyTDUgMjFsNy0zIDcgM1Y1YzAtMS4xLS45LTItMi0yem0wIDE1LTUtMi4xOEw3IDE4VjVoMTB2MTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUdXJuZWRJbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgM0g3Yy0xLjEgMC0xLjk5LjktMS45OSAyTDUgMjFsNy0zIDcgM1Y1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVW5mb2xkTGVzc0RvdWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjU4IDEuNDEgMTUuMTYgMGwtMy4xNyAzLjE3TDguODIgMCA3LjQxIDEuNDEgMTEuOTkgNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNTggNi40MSAxNS4xNiA1bC0zLjE3IDMuMTdMOC44MiA1IDcuNDEgNi40MSAxMS45OSAxMXpNNy40MiAxNy41OSA4Ljg0IDE5bDMuMTctMy4xN0wxNS4xOCAxOWwxLjQxLTEuNDFMMTIuMDEgMTN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNDIgMjIuNTkgOC44NCAyNGwzLjE3LTMuMTdMMTUuMTggMjRsMS40MS0xLjQxTDEyLjAxIDE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVW5mb2xkTW9yZURvdWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDcuODMgMTUuMTcgMTFsMS40MS0xLjQxTDEyIDUgNy40MSA5LjU5IDguODMgMTEgMTIgNy44M3ptMC01TDE1LjE3IDZsMS40MS0xLjQxTDEyIDAgNy40MSA0LjU5IDguODMgNiAxMiAyLjgzem0wIDE4LjM0TDguODMgMThsLTEuNDEgMS40MUwxMiAyNGw0LjU5LTQuNTlMMTUuMTcgMTggMTIgMjEuMTd6bTAtNUw4LjgzIDEzbC0xLjQxIDEuNDFMMTIgMTlsNC41OS00LjU5TDE1LjE3IDEzIDEyIDE2LjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVW5wdWJsaXNoZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03Ljk0IDUuMTIgNi40OSAzLjY2QTkuOTEgOS45MSAwIDAgMSAxMiAyYzUuNTIgMCAxMCA0LjQ4IDEwIDEwIDAgMi4wNC0uNjEgMy45My0xLjY2IDUuNTFsLTEuNDYtMS40NkE3Ljg2OSA3Ljg2OSAwIDAgMCAyMCAxMmMwLTQuNDEtMy41OS04LTgtOC0xLjQ4IDAtMi44Ni40MS00LjA2IDEuMTJ6bTkuNzIgNC40MS0xLjQxLTEuNDEtMi42NSAyLjY1IDEuNDEgMS40MSAyLjY1LTIuNjV6bTIuMTIgMTMuMDgtMi4yNy0yLjI3QTkuOTEgOS45MSAwIDAgMSAxMiAyMkM2LjQ4IDIyIDIgMTcuNTIgMiAxMmMwLTIuMDQuNjEtMy45MyAxLjY2LTUuNTFMMS4zOSA0LjIyIDIuOCAyLjgxbDE4LjM4IDE4LjM4LTEuNCAxLjQyem0tMy43Mi0zLjczTDEyLjE4IDE1bC0xLjU5IDEuNTktNC4yNC00LjI0IDEuNDEtMS40MSAyLjgzIDIuODMuMTgtLjE4LTUuNjUtNS42NUE3LjkzMiA3LjkzMiAwIDAgMCA0IDEyYzAgNC40MSAzLjU5IDggOCA4IDEuNDggMCAyLjg2LS40MSA0LjA2LTEuMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVVcGRhdGVEaXNhYmxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjk0IDEzYTguODY1IDguODY1IDAgMCAxLTEuMzMgMy43OWwtMS40Ny0xLjQ3Yy4zOC0uNzEuNjUtMS40OS43Ny0yLjMyaDIuMDN6TTguNjcgNS44NEE3LjA2IDcuMDYgMCAwIDEgMTIgNWE3LjAxIDcuMDEgMCAwIDEgNS43NCAzSDE1djJoNlY0aC0ydjIuMzZDMTcuMzUgNC4zMiAxNC44MyAzIDEyIDNjLTEuNzYgMC0zLjQuNTEtNC43OCAxLjM5bDEuNDUgMS40NXpNMTEgN3YxLjE3bDIgMlY3aC0yem04Ljc4IDE1LjYxLTMtM0E4Ljk3MyA4Ljk3MyAwIDAgMSAxMiAyMWE5IDkgMCAwIDEtOS05YzAtMS43Ni41MS0zLjQgMS4zOS00Ljc4bC0zLTNMMi44IDIuODFsMTguMzggMTguMzgtMS40IDEuNDJ6bS00LjQ2LTQuNDZMNS44NCA4LjY3QTcuMDYgNy4wNiAwIDAgMCA1IDEyYzAgMy44NiAzLjE0IDcgNyA3IDEuMiAwIDIuMzQtLjMxIDMuMzItLjg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVXBkYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgOHY1bDQuMjUgMi41Mi43Ny0xLjI4LTMuNTItMi4wOVY4SDExem0xMCAyVjNsLTIuNjQgMi42NEE4LjkzNyA4LjkzNyAwIDAgMCAxMiAzYTkgOSAwIDEgMCA5IDloLTJjMCAzLjg2LTMuMTQgNy03IDdzLTctMy4xNC03LTcgMy4xNC03IDctN2MxLjkzIDAgMy42OC43OSA0Ljk1IDIuMDVMMTQgMTBoN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVVwZ3JhZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxOHYySDh2LTJoOHpNMTEgNy45OVYxNmgyVjcuOTloM0wxMiA0IDggNy45OWgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmVyaWZpZWRVc2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxIDMgNXY2YzAgNS41NSAzLjg0IDEwLjc0IDkgMTIgNS4xNi0xLjI2IDktNi40NSA5LTEyVjVsLTktNHptNyAxMGMwIDQuNTItMi45OCA4LjY5LTcgOS45My00LjAyLTEuMjQtNy01LjQxLTctOS45M1Y2LjNsNy0zLjExIDcgMy4xMVYxMXptLTExLjU5LjU5TDYgMTNsNCA0IDgtOC0xLjQxLTEuNDJMMTAgMTQuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWZXJpZmllZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzIDExLjk5IDIwLjU2IDkuMmwuMzQtMy42OS0zLjYxLS44MkwxNS40IDEuNSAxMiAyLjk2IDguNiAxLjUgNi43MSA0LjY5IDMuMSA1LjVsLjM0IDMuN0wxIDExLjk5bDIuNDQgMi43OS0uMzQgMy43IDMuNjEuODIgMS44OSAzLjIgMy40LTEuNDcgMy40IDEuNDYgMS44OS0zLjE5IDMuNjEtLjgyLS4zNC0zLjY5IDIuNDQtMi44em0tMy45NSAxLjQ4LS41Ni42NS4wOC44NS4xOCAxLjk1LTEuOS40My0uODQuMTktLjQ0Ljc0LS45OSAxLjY4LTEuNzgtLjc3LS44LS4zNC0uNzkuMzQtMS43OC43Ny0uOTktMS42Ny0uNDQtLjc0LS44NC0uMTktMS45LS40My4xOC0xLjk2LjA4LS44NS0uNTYtLjY1TDMuNjcgMTJsMS4yOS0xLjQ4LjU2LS42NS0uMDktLjg2LS4xOC0xLjk0IDEuOS0uNDMuODQtLjE5LjQ0LS43NC45OS0xLjY4IDEuNzguNzcuOC4zNC43OS0uMzQgMS43OC0uNzcuOTkgMS42OC40NC43NC44NC4xOSAxLjkuNDMtLjE4IDEuOTUtLjA4Ljg1LjU2LjY1IDEuMjkgMS40Ny0xLjI4IDEuNDh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEwLjA5IDEzLjc1LTIuMzItMi4zMy0xLjQ4IDEuNDkgMy44IDMuODEgNy4zNC03LjM2LTEuNDgtMS40OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZlcnRpY2FsU3BsaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTNoOHYySDN6bTAgNGg4djJIM3ptMC04aDh2Mkgzem0wLTRoOHYySDN6bTE2IDJ2MTBoLTRWN2g0bTItMmgtOHYxNGg4VjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWV3QWdlbmRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTNINWMtMS4xIDAtMiAuOS0yIDJ2NGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi00YzAtMS4xLS45LTItMi0yem0wIDZINXYtNGgxNHY0ek0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDZINVY1aDE0djR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWV3QXJyYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA3djEwSDlWN2g2em02LTJoLTN2MTRoM1Y1em0tNCAwSDd2MTRoMTBWNXpNNiA1SDN2MTRoM1Y1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlld0Nhcm91c2VsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA3aDR2MTBIMlY3em01IDEyaDEwVjVIN3YxNHpNOSA3aDZ2MTBIOVY3em05IDBoNHYxMGgtNFY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlld0NvbHVtbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNXYxNGgxOFY1SDN6bTUuMzMgMTJINVY3aDMuMzN2MTB6bTUuMzQgMGgtMy4zM1Y3aDMuMzN2MTB6TTE5IDE3aC0zLjMzVjdIMTl2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWV3Q29tZnlBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDdoNHY0SDd6TTEzIDdoNHY0aC00ek03IDEzaDR2NEg3ek0xMyAxM2g0djRoLTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE0SDRWNmgxNnYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpZXdDb21wYWN0QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINFY2aDE2djEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgNy41aDR2NGgtNHpNMTIuNSA3LjVoNHY0aC00ek03LjUgMTIuNWg0djRoLTR6TTEyLjUgMTIuNWg0djRoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWV3Q296eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMjUgNy4yNWg0djRoLTR6TTEyLjc1IDcuMjVoNHY0aC00ek03LjI1IDEyLjc1aDR2NGgtNHpNMTIuNzUgMTIuNzVoNHY0aC00elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNEg0VjZoMTZ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWV3RGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxOEgydjJoMTl2LTJ6bS0yLTh2NEg0di00aDE1bTEtMkgzYy0uNTUgMC0xIC40NS0xIDF2NmMwIC41NS40NSAxIDEgMWgxN2MuNTUgMCAxLS40NSAxLTFWOWMwLS41NS0uNDUtMS0xLTF6bTEtNEgydjJoMTlWNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpZXdIZWFkbGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxNWgxNnYtMkg0djJ6bTAgNGgxNnYtMkg0djJ6bTAtOGgxNlY5SDR2MnptMC02djJoMTZWNUg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlld0luQXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDRjMC0uNTUuNDUtMSAxLTFoMlYxSDRDMi4zNCAxIDEgMi4zNCAxIDR2MmgyVjR6TTMgMjB2LTJIMXYyYzAgMS42NiAxLjM0IDMgMyAzaDJ2LTJINGMtLjU1IDAtMS0uNDUtMS0xek0yMCAxaC0ydjJoMmMuNTUgMCAxIC40NSAxIDF2MmgyVjRjMC0xLjY2LTEuMzQtMy0zLTN6TTIxIDIwYzAgLjU1LS40NSAxLTEgMWgtMnYyaDJjMS42NiAwIDMtMS4zNCAzLTN2LTJoLTJ2MnpNMTkgMTQuODdWOS4xM2MwLS43Mi0uMzgtMS4zOC0xLTEuNzNsLTUtMi44OGMtLjMxLS4xOC0uNjUtLjI3LTEtLjI3cy0uNjkuMDktMSAuMjdMNiA3LjM5Yy0uNjIuMzYtMSAxLjAyLTEgMS43NHY1Ljc0YzAgLjcyLjM4IDEuMzggMSAxLjczbDUgMi44OGMuMzEuMTguNjUuMjcgMSAuMjdzLjY5LS4wOSAxLS4yN2w1LTIuODhjLjYyLS4zNSAxLTEuMDEgMS0xLjczem0tOCAyLjMtNC0yLjN2LTQuNjNsNCAyLjMzdjQuNnptMS02LjMzTDguMDQgOC41MyAxMiA2LjI1bDMuOTYgMi4yOEwxMiAxMC44NHptNSA0LjAzLTQgMi4zdi00LjZsNC0yLjMzdjQuNjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWV3S2FuYmFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA3aDJ2MTBIN3pNMTEgN2gydjVoLTJ6TTE1IDdoMnY4aC0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWV3TGlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNXYxNGgxOFY1SDN6bTQgMnYySDVWN2gyem0tMiA2di0yaDJ2Mkg1em0wIDJoMnYySDV2LTJ6bTE0IDJIOXYtMmgxMHYyem0wLTRIOXYtMmgxMHYyem0wLTRIOVY3aDEwdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWV3TW9kdWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA1djE0aDE4VjVIM3ptMTYgNmgtMy4zM1Y3SDE5djR6bS01LjMzIDBoLTMuMzNWN2gzLjMzdjR6TTguMzMgN3Y0SDVWN2gzLjMzek01IDE3di00aDMuMzN2NEg1em01LjMzIDB2LTRoMy4zM3Y0aC0zLjMzem01LjM0IDB2LTRIMTl2NGgtMy4zM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpZXdRdWlsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNXYxNGgxOFY1SDN6bTUuMzMgMTJINVY3aDMuMzN2MTB6bTUuMzQgMGgtMy4zM3YtNGgzLjMzdjR6TTE5IDE3aC0zLjMzdi00SDE5djR6bTAtNmgtOC42N1Y3SDE5djR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWV3U2lkZWJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgNHYxNmgyMFY0SDJ6bTE4IDQuNjdoLTIuNVY2SDIwdjIuNjd6bS0yLjUgMkgyMHYyLjY3aC0yLjV2LTIuNjd6TTQgNmgxMS41djEySDRWNnptMTMuNSAxMnYtMi42N0gyMFYxOGgtMi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlld1N0cmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgN3YxMGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJINWMtMS4xIDAtMiAuOS0yIDJ6bTE2IDEwSDV2LTRoMTR2NHpNNSAxMVY3aDE0djRINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpZXdUaW1lbGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTVoNnYySDZ6TTEyIDdoNnYyaC02ek05IDExaDZ2Mkg5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWV3V2VlayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yek04IDE4SDRWNmg0djEyem02IDBoLTRWNmg0djEyem02IDBoLTRWNmg0djEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlzaWJpbGl0eU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNmE5Ljc3IDkuNzcgMCAwIDEgOC44MiA1LjUgOS42NDcgOS42NDcgMCAwIDEtMi40MSAzLjEybDEuNDEgMS40MWMxLjM5LTEuMjMgMi40OS0yLjc3IDMuMTgtNC41M0MyMS4yNyA3LjExIDE3IDQgMTIgNGMtMS4yNyAwLTIuNDkuMi0zLjY0LjU3bDEuNjUgMS42NUMxMC42NiA2LjA5IDExLjMyIDYgMTIgNnptLTEuMDcgMS4xNEwxMyA5LjIxYy41Ny4yNSAxLjAzLjcxIDEuMjggMS4yOGwyLjA3IDIuMDdjLjA4LS4zNC4xNC0uNy4xNC0xLjA3QzE2LjUgOS4wMSAxNC40OCA3IDEyIDdjLS4zNyAwLS43Mi4wNS0xLjA3LjE0ek0yLjAxIDMuODdsMi42OCAyLjY4QTExLjczOCAxMS43MzggMCAwIDAgMSAxMS41QzIuNzMgMTUuODkgNyAxOSAxMiAxOWMxLjUyIDAgMi45OC0uMjkgNC4zMi0uODJsMy40MiAzLjQyIDEuNDEtMS40MUwzLjQyIDIuNDUgMi4wMSAzLjg3em03LjUgNy41IDIuNjEgMi42MWMtLjA0LjAxLS4wOC4wMi0uMTIuMDJhMi41IDIuNSAwIDAgMS0yLjUtMi41YzAtLjA1LjAxLS4wOC4wMS0uMTN6bS0zLjQtMy40IDEuNzUgMS43NWE0LjYgNC42IDAgMCAwLS4zNiAxLjc4IDQuNTA3IDQuNTA3IDAgMCAwIDYuMjcgNC4xNGwuOTguOThjLS44OC4yNC0xLjguMzgtMi43NS4zOGE5Ljc3IDkuNzcgMCAwIDEtOC44Mi01LjVjLjctMS40MyAxLjcyLTIuNjEgMi45My0zLjUzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlzaWJpbGl0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNmE5Ljc3IDkuNzcgMCAwIDEgOC44MiA1LjVDMTkuMTcgMTQuODcgMTUuNzkgMTcgMTIgMTdzLTcuMTctMi4xMy04LjgyLTUuNUE5Ljc3IDkuNzcgMCAwIDEgMTIgNm0wLTJDNyA0IDIuNzMgNy4xMSAxIDExLjUgMi43MyAxNS44OSA3IDE5IDEyIDE5czkuMjctMy4xMSAxMS03LjVDMjEuMjcgNy4xMSAxNyA0IDEyIDR6bTAgNWEyLjUgMi41IDAgMCAxIDAgNSAyLjUgMi41IDAgMCAxIDAtNW0wLTJjLTIuNDggMC00LjUgMi4wMi00LjUgNC41UzkuNTIgMTYgMTIgMTZzNC41LTIuMDIgNC41LTQuNVMxNC40OCA3IDEyIDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWb2ljZU92ZXJPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2Ljc2IDUuMzYtMS42OCAxLjY5Yy44IDEuMTMuODMgMi41OC4wOSAzLjc0bDEuNyAxLjdjMS45LTIuMDIgMS44Ny00Ljk4LS4xMS03LjEzek0yMC4wNyAybC0xLjYzIDEuNjNjMi43MiAyLjk3IDIuNzYgNy4zOS4xNCAxMC41NmwxLjY0IDEuNjRjMy43NC0zLjg5IDMuNzEtOS44NC0uMTUtMTMuODN6TTkuNDMgNS4wNGwzLjUzIDMuNTNhMy45NzkgMy45NzkgMCAwIDAtMy41My0zLjUzek00LjQxIDIuODYgMyA0LjI3bDIuNjIgMi42MkM1LjIzIDcuNSA1IDguMjIgNSA5YzAgMi4yMSAxLjc5IDQgNCA0IC43OCAwIDEuNS0uMjMgMi4xMS0uNjJsNC40IDQuNEMxMy43NCAxNS42IDEwLjc4IDE1IDkgMTVjLTIuNjcgMC04IDEuMzQtOCA0djJoMTZ2LTJjMC0uMzctLjExLS43LS4yOS0xLjAyTDE5LjczIDIxbDEuNDEtMS40MUw0LjQxIDIuODZ6TTMgMTljLjIyLS43MiAzLjMxLTIgNi0yIDIuNyAwIDUuOCAxLjI5IDYgMkgzem02LThjLTEuMSAwLTItLjktMi0yIDAtLjIyLjA0LS40Mi4xMS0uNjJsMi41MSAyLjUxYy0uMi4wNy0uNC4xMS0uNjIuMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXYXRjaExhdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjUgMiAyIDYuNSAyIDEyczQuNSAxMCAxMCAxMCAxMC00LjUgMTAtMTBTMTcuNSAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em0uNS0xM0gxMXY2bDUuMiAzLjIuOC0xLjMtNC41LTIuN1Y3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2ViaG9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDE1aDUuODhjLjI3LS4zMS42Ny0uNSAxLjEyLS41LjgzIDAgMS41LjY3IDEuNSAxLjVzLS42NyAxLjUtMS41IDEuNWMtLjQ0IDAtLjg0LS4xOS0xLjEyLS41SDExLjlBNSA1IDAgMSAxIDYgMTEuMXYyLjA3Yy0xLjE2LjQxLTIgMS41My0yIDIuODMgMCAxLjY1IDEuMzUgMyAzIDNzMy0xLjM1IDMtM3YtMXptMi41LTExYzEuNjUgMCAzIDEuMzUgMyAzaDJjMC0yLjc2LTIuMjQtNS01LTVhNS4wMDIgNS4wMDIgMCAwIDAtMy40NSA4LjYybC0yLjM1IDMuOWMtLjY4LjE0LTEuMi43NS0xLjIgMS40OCAwIC44My42NyAxLjUgMS41IDEuNWExLjQ5OCAxLjQ5OCAwIDAgMCAxLjQzLTEuOTVsMy4zOC01LjYzQTMuMDAzIDMuMDAzIDAgMCAxIDkuNSA3YzAtMS42NSAxLjM1LTMgMy0zem00LjUgOWMtLjY0IDAtMS4yMy4yLTEuNzIuNTRsLTMuMDUtNS4wN0MxMS41MyA4LjM1IDExIDcuNzQgMTEgN2MwLS44My42Ny0xLjUgMS41LTEuNVMxNCA2LjE3IDE0IDdjMCAuMTUtLjAyLjI5LS4wNi40M2wyLjE5IDMuNjVjLjI4LS4wNS41Ny0uMDguODctLjA4IDIuNzYgMCA1IDIuMjQgNSA1cy0yLjI0IDUtNSA1YTUgNSAwIDAgMS00LjMzLTIuNWgyLjY3Yy40OC4zMiAxLjA1LjUgMS42Ni41IDEuNjUgMCAzLTEuMzUgMy0zcy0xLjM1LTMtMy0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2lkdGhGdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6TTQgMThWNmgxdjEySDR6bTMgMFY2aDEwdjEySDd6bTEzIDBoLTFWNmgxdjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2lkdGhOb3JtYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNNCAxOFY2aDR2MTJINHptNiAwVjZoNHYxMmgtNHptMTAgMGgtNFY2aDR2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXaWR0aFdpZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNNCAxOFY2aDJ2MTJINHptNCAwVjZoOHYxMkg4em0xMiAwaC0yVjZoMnYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdpZmlQcm90ZWN0ZWRTZXR1cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjcxIDUuMjkgMTkgM2gtOHY4bDIuMy0yLjNjMS45NyAxLjQ2IDMuMjUgMy43OCAzLjI1IDYuNDIgMCAxLjMxLS4zMiAyLjU0LS44OCAzLjYzIDIuMzMtMS41MiAzLjg4LTQuMTQgMy44OC03LjEzIDAtMi41Mi0xLjExLTQuNzctMi44NC02LjMzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjQ2IDguODhjMC0xLjMxLjMyLTIuNTQuODgtMy42M2E4LjQ3OSA4LjQ3OSAwIDAgMC0zLjg4IDcuMTNjMCAyLjUyIDEuMSA0Ljc3IDIuODQgNi4zM0w1IDIxaDh2LThsLTIuMyAyLjNjLTEuOTYtMS40Ni0zLjI0LTMuNzgtMy4yNC02LjQyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV29ya0hpc3RvcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDE5VjhoMTZ2My4yOWMuNzIuMjIgMS40LjU0IDIgLjk3VjhjMC0xLjExLS44OS0yLTItMmgtNFY0YzAtMS4xMS0uODktMi0yLTJoLTRjLTEuMTEgMC0yIC44OS0yIDJ2Mkg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOWMwIDEuMTEuODkgMiAyIDJoNy42OGMtLjMtLjYyLS41LTEuMjktLjYtMkg0em02LTE1aDR2MmgtNFY0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bTEuNjUgNy4zNUwxNy41IDE4LjJWMTVoMXYyLjc5bDEuODUgMS44NS0uNy43MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdvcmtPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDRoNHYyaC0zLjZsMiAySDIwdjcuNmwyIDJWOGMwLTEuMTEtLjg5LTItMi0yaC00VjRjMC0xLjExLS44OS0yLTItMmgtNGMtLjk5IDAtMS44LjctMS45NiAxLjY0TDEwIDUuNlY0ek0zLjQgMS44NCAxLjk5IDMuMjUgNC43NCA2SDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE5YzAgMS4xMS44OSAyIDIgMmgxNS43NGwyIDIgMS40MS0xLjQxTDMuNCAxLjg0ek00IDE5VjhoMi43NGwxMSAxMUg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV29ya091dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDZWNGgtNHYyaDR6TTQgOHYxMWgxNlY4SDR6bTE2LTJjMS4xMSAwIDIgLjg5IDIgMnYxMWMwIDEuMTEtLjg5IDItMiAySDRjLTEuMTEgMC0yLS44OS0yLTJsLjAxLTExYzAtMS4xMS44OC0yIDEuOTktMmg0VjRjMC0xLjExLjg5LTIgMi0yaDRjMS4xMSAwIDIgLjg5IDIgMnYyaDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXb3JrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC00VjRjMC0xLjExLS44OS0yLTItMmgtNGMtMS4xMSAwLTIgLjg5LTIgMnYySDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE5YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjhjMC0xLjExLS44OS0yLTItMnptLTYgMGgtNFY0aDR2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVd5c2l3eWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVhMiAyIDAgMCAwLTItMnptMCAxNkg1VjdoMTR2MTJ6bS0yLTdIN3YtMmgxMHYyem0tNCA0SDd2LTJoNnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lWW91dHViZVNlYXJjaGVkRm9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy4wMSAxNGgtLjhsLS4yNy0uMjdhNi40NTEgNi40NTEgMCAwIDAgMS41Ny00LjIzYzAtMy41OS0yLjkxLTYuNS02LjUtNi41cy02LjUgMy02LjUgNi41SDJsMy44NCA0IDQuMTYtNEg2LjUxYTQuNSA0LjUgMCAwIDEgOSAwIDQuNTA3IDQuNTA3IDAgMCAxLTYuMzIgNC4xMkw3LjcxIDE1LjFhNi40NzQgNi40NzQgMCAwIDAgNy41Mi0uNjdsLjI3LjI3di43OWw1LjAxIDQuOTlMMjIgMTlsLTQuOTktNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVpvb21JbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QTYuNDcxIDYuNDcxIDAgMCAwIDE2IDkuNSA2LjUgNi41IDAgMSAwIDkuNSAxNmMxLjYxIDAgMy4wOS0uNTkgNC4yMy0xLjU3bC4yNy4yOHYuNzlsNSA0Ljk5TDIwLjQ5IDE5bC00Ljk5LTV6bS02IDBDNy4wMSAxNCA1IDExLjk5IDUgOS41UzcuMDEgNSA5LjUgNSAxNCA3LjAxIDE0IDkuNSAxMS45OSAxNCA5LjUgMTR6bS41LTdIOXYySDd2MWgydjJoMXYtMmgyVjloLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVab29tT3V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDE0aC0uNzlsLS4yOC0uMjdBNi40NzEgNi40NzEgMCAwIDAgMTYgOS41IDYuNSA2LjUgMCAxIDAgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRkQWxlcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjAxIDIxLjAxYzAgMS4xLjg5IDEuOTkgMS45OSAxLjk5czEuOTktLjg5IDEuOTktMS45OWgtMy45OHpNMTIgNmMyLjc2IDAgNSAyLjI0IDUgNXY3SDd2LTdjMC0yLjc2IDIuMjQtNSA1LTV6bTAtNC41Yy0uODMgMC0xLjUuNjctMS41IDEuNXYxLjE3QzcuMzYgNC44NSA1IDcuNjUgNSAxMXY2bC0yIDJ2MWgxOHYtMWwtMi0ydi02YzAtMy4zNS0yLjM2LTYuMTUtNS41LTYuODNWM2MwLS44My0uNjctMS41LTEuNS0xLjV6TTEzIDhoLTJ2M0g4djJoM3YzaDJ2LTNoM3YtMmgtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUF1dG9EZWxldGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAyaC0zLjVsLTEtMWgtNWwtMSAxSDF2MmgxNHpNMTYgOWMtLjcgMC0xLjM3LjEtMiAuMjlWNUgydjEyYzAgMS4xLjkgMiAyIDJoNS42OEE2Ljk5OSA2Ljk5OSAwIDAgMCAyMyAxNmMwLTMuODctMy4xMy03LTctN3ptLTcgN2MwIC4zNC4wMy42Ny4wOCAxSDRWN2g4djMuMjZjLTEuODEgMS4yNy0zIDMuMzYtMyA1Ljc0em03IDVjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41IDEySDE1djVsMy42IDIuMS44LTEuMi0yLjktMS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRXJyb3JPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxNWgydjJoLTJ2LTJ6bTAtOGgydjZoLTJWN3ptLjk5LTVDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVycm9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xIDE1aC0ydi0yaDJ2MnptMC00aC0yVjdoMnY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm90aWZpY2F0aW9uSW1wb3J0YW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4wMSAyMS4wMWMwIDEuMS44OSAxLjk5IDEuOTkgMS45OXMxLjk5LS44OSAxLjk5LTEuOTloLTMuOTh6TTEyIDZjMi43NiAwIDUgMi4yNCA1IDV2N0g3di03YzAtMi43NiAyLjI0LTUgNS01em0wLTQuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MS4xN0M3LjM2IDQuODUgNSA3LjY1IDUgMTF2NmwtMiAydjFoMTh2LTFsLTItMnYtNmMwLTMuMzUtMi4zNi02LjE1LTUuNS02LjgzVjNjMC0uODMtLjY3LTEuNS0xLjUtMS41ek0xMSA4aDJ2NGgtMnptMCA2aDJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdhcm5pbmdBbWJlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNS45OSAxOS41MyAxOUg0LjQ3TDEyIDUuOTlNMTIgMiAxIDIxaDIyTDEyIDJ6bTEgMTRoLTJ2Mmgydi0yem0wLTZoLTJ2NGgydi00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2FybmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAyMWgyMkwxMiAyIDEgMjF6bTEyLTNoLTJ2LTJoMnYyem0wLTRoLTJ2LTRoMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lMTBLIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgNnYxMEg1di04LjVoMVYxNWgxLjVWOUg1VjVoMTR2NHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSAxMS4yNVY5SDE0djZoMS41di0yLjI1TDE3LjI1IDE1SDE5bC0yLjI1LTNMMTkgOWgtMS43NXpNOS41IDE1SDEyYy41NSAwIDEtLjQ1IDEtMXYtNGMwLS41NS0uNDUtMS0xLTFIOS41Yy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMXptLjUtNC41aDEuNXYzSDEwdi0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lMWtQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgOC41aC0xLjVWMTBoLTF2MS41SDE1djFoMS41VjE0aDF2LTEuNUgxOVYxOUg1VjVoMTR2Ni41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMTVIOVY5SDZ2MS41aDEuNXpNMTIgMTIuNzUgMTMuNzUgMTVoMS43NWwtMi4yNS0zIDIuMjUtM2gtMS43NUwxMiAxMS4yNVY5aC0xLjV2NkgxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTFLIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgMTVIMTBWOUg3djEuNWgxLjV6TTEzLjUgMTIuNzUgMTUuMjUgMTVIMTdsLTIuMjUtM0wxNyA5aC0xLjc1bC0xLjc1IDIuMjVWOUgxMnY2aDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTJrUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDguNWgtMS41VjEwaC0xdjEuNUgxNXYxaDEuNVYxNGgxdi0xLjVIMTlWMTlINVY1aDE0djYuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTMuNUg3LjV2LTFIOWMuNTUgMCAxLS40NSAxLTFWMTBjMC0uNTUtLjQ1LTEtMS0xSDZ2MS41aDIuNXYxSDdjLS41NSAwLTEgLjQ1LTEgMVYxNWg0di0xLjV6TTEyLjUgMTIuNzUgMTQuMjUgMTVIMTZsLTIuMjUtM0wxNiA5aC0xLjc1bC0xLjc1IDIuMjVWOUgxMXY2aDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTJLIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxMy41SDh2LTFoMmMuNTUgMCAxLS40NSAxLTFWMTBjMC0uNTUtLjQ1LTEtMS0xSDYuNXYxLjVoM3YxaC0yYy0uNTUgMC0xIC40NS0xIDFWMTVIMTF2LTEuNXpNMTQuNSAxMi43NSAxNi4yNSAxNUgxOGwtMi4yNS0zTDE4IDloLTEuNzVsLTEuNzUgMi4yNVY5SDEzdjZoMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lM2tQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgOC41aC0xLjVWMTBoLTF2MS41SDE1djFoMS41VjE0aDF2LTEuNUgxOVYxOUg1VjVoMTR2Ni41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxNHYtNGMwLS41NS0uNDUtMS0xLTFINS41djEuNWgzdjFoLTJ2MWgydjFoLTNWMTVIOWMuNTUgMCAxLS40NSAxLTF6TTEyLjUgMTIuNzUgMTQuMjUgMTVIMTZsLTIuMjUtM0wxNiA5aC0xLjc1bC0xLjc1IDIuMjVWOUgxMXY2aDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTNLIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxNHYtNGMwLS41NS0uNDUtMS0xLTFINi41djEuNWgzdjFoLTJ2MWgydjFoLTNWMTVIMTBjLjU1IDAgMS0uNDUgMS0xek0xNC41IDEyLjc1IDE2LjI1IDE1SDE4bC0yLjI1LTNMMTggOWgtMS43NWwtMS43NSAyLjI1VjlIMTN2NmgxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmU0a1BsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCA4LjVoLTEuNVYxMGgtMXYxLjVIMTV2MWgxLjVWMTRoMXYtMS41SDE5VjE5SDVWNWgxNHY2LjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNSAxNUgxMHYtMS41aDFWMTJoLTFWOUg4LjV2M0g3VjlINS41djQuNWgzek0xMyAxMi43NSAxNC43NSAxNWgxLjc1bC0yLjI1LTMgMi4yNS0zaC0xLjc1TDEzIDExLjI1VjloLTEuNXY2SDEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lNEsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YTIgMiAwIDAgMC0yLTJ6bTAgMTZINVY1aDE0djE0em0tOS41LTRIMTF2LTEuNDloMVYxMmgtMVY5SDkuNXYzSDhWOUg2LjV2NC41aDN6bTguNyAwLTItMyAyLTNoLTEuN2wtMiAzIDIgM3ptLTMuNy0zVjlIMTN2NmgxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmU1RyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjUgMTNIMTl2MmgtNVY5aDdjMC0xLjEtLjktMi0yLTJoLTVjLTEuMSAwLTIgLjktMiAydjZjMCAxLjEuOSAyIDIgMmg1YzEuMSAwIDItLjkgMi0ydi00aC00LjV2MnpNMyAxM2g1djJIM3YyaDVjMS4xIDAgMi0uOSAyLTJ2LTJjMC0xLjEtLjktMi0yLTJINVY5aDVWN0gzdjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmU1a1BsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCA4LjVoLTEuNVYxMGgtMXYxLjVIMTV2MWgxLjVWMTRoMXYtMS41SDE5VjE5SDVWNWgxNHY2LjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDE0di0xLjVjMC0uNTUtLjQ1LTEtMS0xSDcuNXYtMUgxMFY5SDZ2My41aDIuNXYxSDZWMTVoM2MuNTUgMCAxLS40NSAxLTF6TTEyLjUgMTIuNzUgMTQuMjUgMTVIMTZsLTIuMjUtM0wxNiA5aC0xLjc1bC0xLjc1IDIuMjVWOUgxMXY2aDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTVLIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxNHYtMS41YzAtLjU1LS40NS0xLTEtMUg4di0xaDNWOUg2LjV2My41aDN2MWgtM1YxNUgxMGMuNTUgMCAxLS40NSAxLTF6TTE0LjUgMTIuNzUgMTYuMjUgMTVIMThsLTIuMjUtM0wxOCA5aC0xLjc1bC0xLjc1IDIuMjVWOUgxM3Y2aDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTZrUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDguNWgtMS41VjEwaC0xdjEuNUgxNXYxaDEuNVYxNGgxdi0xLjVIMTlWMTlINVY1aDE0djYuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSAxMi43NSAxNC4yNSAxNUgxNmwtMi4yNS0zTDE2IDloLTEuNzVsLTEuNzUgMi4yNVY5SDExdjZoMS41ek03IDE1aDJjLjU1IDAgMS0uNDUgMS0xdi0xLjVjMC0uNTUtLjQ1LTEtMS0xSDcuNXYtMUgxMFY5SDdjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxem0uNS0yLjVoMVYxNGgtMXYtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lNksgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgMTIuNzUgMTYuMjUgMTVIMThsLTIuMjUtM0wxOCA5aC0xLjc1bC0xLjc1IDIuMjVWOUgxM3Y2aDEuNXpNNy41IDE1SDEwYy41NSAwIDEtLjQ1IDEtMXYtMS41YzAtLjU1LS40NS0xLTEtMUg4di0xaDNWOUg3LjVjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxem0uNS0yLjVoMS41VjE0SDh2LTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTdrUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDguNWgtMS41VjEwaC0xdjEuNUgxNXYxaDEuNVYxNGgxdi0xLjVIMTlWMTlINVY1aDE0djYuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi43NSAxNUg4LjVsMS40Ni00LjcxQzEwLjE1IDkuNjUgOS42NyA5IDkgOUg1LjV2MS41aDIuNjNMNi43NSAxNXpNMTIuNSAxMi43NSAxNC4yNSAxNUgxNmwtMi4yNS0zTDE2IDloLTEuNzVsLTEuNzUgMi4yNVY5SDExdjZoMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lN0sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNzUgMTVIOS41bDEuNDYtNC43MUMxMS4xNSA5LjY1IDEwLjY3IDkgMTAgOUg2LjV2MS41aDIuNjNMNy43NSAxNXpNMTQuNSAxMi43NSAxNi4yNSAxNUgxOGwtMi4yNS0zTDE4IDloLTEuNzVsLTEuNzUgMi4yNVY5SDEzdjZoMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lOGtQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxNWgyYy41NSAwIDEtLjQ1IDEtMXYtNGMwLS41NS0uNDUtMS0xLTFIN2MtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDF6bS41LTVoMXYxLjVoLTFWMTB6bTAgMi41aDFWMTRoLTF2LTEuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgOC41aC0xLjVWMTBoLTF2MS41SDE1djFoMS41VjE0aDF2LTEuNUgxOVYxOUg1VjVoMTR2Ni41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi41IDEyLjc1IDE0LjI1IDE1SDE2bC0yLjI1LTNMMTYgOWgtMS43NWwtMS43NSAyLjI1VjlIMTF2NmgxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmU4SyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNSAxNUgxMGMuNTUgMCAxLS40NSAxLTF2LTRjMC0uNTUtLjQ1LTEtMS0xSDcuNWMtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDF6bS41LTVoMS41djEuNUg4VjEwem0wIDIuNWgxLjVWMTRIOHYtMS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgMTIuNzUgMTYuMjUgMTVIMThsLTIuMjUtM0wxOCA5aC0xLjc1bC0xLjc1IDIuMjVWOUgxM3Y2aDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTlrUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDE0di00YzAtLjU1LS40NS0xLTEtMUg3Yy0uNTUgMC0xIC40NS0xIDF2MS41YzAgLjU1LjQ1IDEgMSAxaDEuNXYxSDZWMTVoM2MuNTUgMCAxLS40NSAxLTF6bS0xLjUtMi41aC0xVjEwaDF2MS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCA4LjVoLTEuNVYxMGgtMXYxLjVIMTV2MWgxLjVWMTRoMXYtMS41SDE5VjE5SDVWNWgxNHY2LjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjUgMTIuNzUgMTQuMjUgMTVIMTZsLTIuMjUtM0wxNiA5aC0xLjc1bC0xLjc1IDIuMjVWOUgxMXY2aDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTlLIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTR2LTRjMC0uNTUtLjQ1LTEtMS0xSDcuNWMtLjU1IDAtMSAuNDUtMSAxdjEuNWMwIC41NS40NSAxIDEgMWgydjFoLTNWMTVIMTBjLjU1IDAgMS0uNDUgMS0xem0tMS41LTIuNUg4VjEwaDEuNXYxLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNSAxMi43NSAxNi4yNSAxNUgxOGwtMi4yNS0zTDE4IDloLTEuNzVsLTEuNzUgMi4yNVY5SDEzdjZoMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRkVG9RdWV1ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTVoMnYtM2gzdi0yaC0zVjdoLTJ2M0g4djJoM3pNMjEgM0gzYy0xLjExIDAtMiAuODktMiAydjEyYTIgMiAwIDAgMCAyIDJoNXYyaDh2LTJoNWMxLjEgMCAyLS45IDItMlY1YTIgMiAwIDAgMC0yLTJ6bTAgMTRIM1Y1aDE4djEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWlycGxheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAyMmgxMmwtNi02elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoNHYtMkgzVjVoMTh2MTJoLTR2Mmg0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBbGJ1bSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTAtMTIuNWMtMi40OSAwLTQuNSAyLjAxLTQuNSA0LjVzMi4wMSA0LjUgNC41IDQuNSA0LjUtMi4wMSA0LjUtNC41LTIuMDEtNC41LTQuNS00LjV6bTAgNS41Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcnRUcmFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTNoLTh2LTJoOHYyem0wLTZoLTh2Mmg4Vjd6bS04IDEwaDh2LTJoLTh2MnptLTItOHY2YzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0yVjljMC0xLjEuOS0yIDItMmg2YzEuMSAwIDIgLjkgMiAyem0tMS41IDYtMi4yNS0zLTEuNzUgMi4yNi0xLjI1LTEuNTFMMy41IDE1aDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBdWRpb0ZpbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWOGwtNi02ek02IDIwVjRoN3Y1aDV2MTFINnptMTAtOWgtNHYzLjg4YTIuMjQ3IDIuMjQ3IDAgMCAwLTMuNSAxLjg3YzAgMS4yNCAxLjAxIDIuMjUgMi4yNSAyLjI1UzEzIDE3Ljk5IDEzIDE2Ljc1VjEzaDN2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBdlRpbWVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxN2MwIC41NS40NSAxIDEgMXMxLS40NSAxLTEtLjQ1LTEtMS0xLTEgLjQ1LTEgMXptMC0xNHY0aDJWNS4wOGMzLjM5LjQ5IDYgMy4zOSA2IDYuOTIgMCAzLjg3LTMuMTMgNy03IDdzLTctMy4xMy03LTdjMC0xLjY4LjU5LTMuMjIgMS41OC00LjQyTDEyIDEzbDEuNDEtMS40MS02LjgtNi44di4wMkM0LjQyIDYuNDUgMyA5LjA1IDMgMTJjMCA0Ljk3IDQuMDIgOSA5IDlhOSA5IDAgMCAwIDAtMThoLTF6bTcgOWMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMSAuNDUgMSAxIDEgMS0uNDUgMS0xek02IDEyYzAgLjU1LjQ1IDEgMSAxczEtLjQ1IDEtMS0uNDUtMS0xLTEtMSAuNDUtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnJhbmRpbmdXYXRlcm1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDNWNWgxOHYxNHptLTEwLTdoOXY2aC05elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FsbFRvQWN0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkgzVjVoMTh2MTR6TTUgMTVoMTR2M0g1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2xvc2VkQ2FwdGlvbkRpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTBjMC0uNTUuNDUtMSAxLTFoM2MuNTUgMCAxIC40NSAxIDF2MWgtMS41di0uNWgtMnYxTDEzIDEwem0zLjUgMy41IDEuMjEgMS4yMWMuMTgtLjE5LjI5LS40NC4yOS0uNzF2LTFoLTEuNXYuNXpNOC44MyA2SDE5djEwLjE3bDEuOTggMS45OGMwLS4wNS4wMi0uMS4wMi0uMTZWNmMwLTEuMS0uOS0yLTItMkg2LjgzbDIgMnptMTAuOTUgMTYuNjFMMTcuMTcgMjBINWEyIDIgMCAwIDEtMi0yVjZjMC0uMDUuMDItLjEuMDItLjE1TDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOCAxOC4zOC0xLjQgMS40MnpNNy41IDEzLjVoMlYxM2guNjdsLTIuNS0yLjVINy41djN6bTcuNjcgNC41TDExIDEzLjgzVjE0YzAgLjU1LS40NSAxLTEgMUg3Yy0uNTUgMC0xLS40NS0xLTF2LTRjMC0uMzIuMTYtLjU5LjQtLjc4TDUgNy44M1YxOGgxMC4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNsb3NlZENhcHRpb25PZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA0SDVhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINVY2aDE0djEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE1aDNjLjU1IDAgMS0uNDUgMS0xdi0xSDkuNXYuNWgtMnYtM2gydi41SDExdi0xYzAtLjU1LS40NS0xLTEtMUg3Yy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMXpNMTQgMTVoM2MuNTUgMCAxLS40NSAxLTF2LTFoLTEuNXYuNWgtMnYtM2gydi41SDE4di0xYzAtLjU1LS40NS0xLTEtMWgtM2MtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDbG9zZWRDYXB0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA0SDVhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINVY2aDE0djEyek03IDE1aDNjLjU1IDAgMS0uNDUgMS0xdi0xSDkuNXYuNWgtMnYtM2gydi41SDExdi0xYzAtLjU1LS40NS0xLTEtMUg3Yy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMXptNyAwaDNjLjU1IDAgMS0uNDUgMS0xdi0xaC0xLjV2LjVoLTJ2LTNoMnYuNUgxOHYtMWMwLS41NS0uNDUtMS0xLTFoLTNjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29udHJvbENhbWVyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS41NCA4LjQ2IDIgMTJsMy41NCAzLjU0IDEuNzYtMS43N0w1LjU0IDEybDEuNzYtMS43N3ptNi40NiAxMC0xLjc3LTEuNzYtMS43NyAxLjc2TDEyIDIybDMuNTQtMy41NC0xLjc3LTEuNzZ6bTYuNDYtMTAtMS43NiAxLjc3TDE4LjQ2IDEybC0xLjc2IDEuNzcgMS43NiAxLjc3TDIyIDEyem0tMTAtMi45MiAxLjc3IDEuNzZMMTIgNS41NGwxLjc3IDEuNzYgMS43Ny0xLjc2TDEyIDJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiM1wifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRXF1YWxpemVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAyMGg0VjRoLTR2MTZ6bS02IDBoNHYtOEg0djh6TTE2IDl2MTFoNFY5aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRXhwbGljaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHptLTQtNGgtNHYtMmg0di0yaC00VjloNFY3SDl2MTBoNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZhc3RGb3J3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiZ1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfV19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA5Ljg2IDE4LjAzIDEyIDE1IDE0LjE0VjkuODZtLTkgMEw5LjAzIDEyIDYgMTQuMTRWOS44Nk0xMyA2djEybDguNS02TDEzIDZ6TTQgNnYxMmw4LjUtNkw0IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGYXN0UmV3aW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA5Ljg2djQuMjhMMTQuOTcgMTIgMTggOS44Nm0tOSAwdjQuMjhMNS45NyAxMiA5IDkuODZNMjAgNmwtOC41IDYgOC41IDZWNnptLTkgMC04LjUgNiA4LjUgNlY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmVhdHVyZWRQbGF5TGlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZIM1Y1aDE4djE0ek01IDEwaDl2Mkg1em0wLTNoOXYySDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGZWF0dXJlZFZpZGVvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkgzVjVoMTh2MTR6TTQgNmg5djdINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpYmVyRHZyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMS44NyAxMi40My0xLTMuNDNoLTEuNWwxLjc1IDZoMS41bDEuNzUtNmgtMS41ek0yMSAxMS41di0xYzAtLjg1LS42NS0xLjUtMS41LTEuNUgxNnY2aDEuNXYtMmgxLjE1bC44NSAySDIxbC0uOS0yLjFjLjUtLjI1LjktLjguOS0xLjR6bS0xLjUgMGgtMnYtMWgydjF6TTYuNSA5SDN2NmgzLjVjLjg1IDAgMS41LS42NSAxLjUtMS41di0zQzggOS42NSA3LjM1IDkgNi41IDl6bTAgNC41aC0ydi0zaDJ2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpYmVyTWFudWFsUmVjb3JkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2YzMuMzEgMCA2IDIuNjkgNiA2cy0yLjY5IDYtNiA2LTYtMi42OS02LTYgMi42OS02IDYtNm0wLTJjLTQuNDIgMC04IDMuNTgtOCA4czMuNTggOCA4IDggOC0zLjU4IDgtOC0zLjU4LTgtOC04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmliZXJOZXcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMjUgMTIuNSA0Ljc1IDlIMy41djZoMS4yNXYtMy41TDcuMyAxNWgxLjJWOUg3LjI1ek05LjUgMTVoNHYtMS4yNUgxMXYtMS4xMWgyLjV2LTEuMjZIMTF2LTEuMTJoMi41VjloLTR6bTkuNzUtNnY0LjVoLTEuMTJWOS45OWgtMS4yNXYzLjUyaC0xLjEzVjlIMTQuNXY1YzAgLjU1LjQ1IDEgMSAxaDRjLjU1IDAgMS0uNDUgMS0xVjloLTEuMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWJlclBpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTVoMS41VjlIMTF2NnptNy43NS02djMuNUwxNi4yNSA5SDE1djZoMS4yNXYtMy41TDE4LjggMTVIMjBWOWgtMS4yNXpNNy41IDlINHY2aDEuNXYtMmgyYy44NSAwIDEuNS0uNjUgMS41LTEuNXYtMUM5IDkuNjUgOC4zNSA5IDcuNSA5em0wIDIuNWgtMnYtMWgydjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWJlclNtYXJ0UmVjb3JkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDRjLTQuNDIgMC04IDMuNTgtOCA4czMuNTggOCA4IDggOC0zLjU4IDgtOC0zLjU4LTgtOC04em0wIDE0Yy0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02IDYgMi42OSA2IDYtMi42OSA2LTYgNnptOC0xMy43NHYyLjA5YTUuOTkgNS45OSAwIDAgMSAwIDExLjN2Mi4wOWMzLjQ1LS44OSA2LTQuMDEgNi03Ljc0IDAtMy43My0yLjU1LTYuODUtNi03Ljc0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9yd2FyZDEwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiZ1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfV19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM2MwIDMuMzEtMi42OSA2LTYgNnMtNi0yLjY5LTYtNiAyLjY5LTYgNi02djRsNS01LTUtNXY0Yy00LjQyIDAtOCAzLjU4LTggOHMzLjU4IDggOCA4IDgtMy41OCA4LThoLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjkgMTZ2LTQuMjdoLS4wOWwtMS43Ny42M3YuNjlsMS4wMS0uMzFWMTZ6TTE0LjMyIDExLjc4Yy0uMTgtLjA3LS4zNy0uMS0uNTktLjFzLS40MS4wMy0uNTkuMS0uMzMuMTgtLjQ1LjMzLS4yMy4zNC0uMjkuNTctLjEuNS0uMS44MnYuNzRjMCAuMzIuMDQuNi4xMS44MnMuMTcuNDIuMy41Ny4yOC4yNi40Ni4zMy4zNy4xLjU5LjEuNDEtLjAzLjU5LS4xLjMzLS4xOC40NS0uMzMuMjItLjM0LjI5LS41Ny4xLS41LjEtLjgydi0uNzRjMC0uMzItLjA0LS42LS4xMS0uODJzLS4xNy0uNDItLjMtLjU3LS4yOS0uMjYtLjQ2LS4zM3ptLjAxIDIuNTdjMCAuMTktLjAxLjM1LS4wNC40OHMtLjA2LjI0LS4xMS4zMi0uMTEuMTQtLjE5LjE3LS4xNi4wNS0uMjUuMDUtLjE4LS4wMi0uMjUtLjA1LS4xNC0uMDktLjE5LS4xNy0uMDktLjE5LS4xMi0uMzItLjA0LS4yOS0uMDQtLjQ4di0uOTdjMC0uMTkuMDEtLjM1LjA0LS40OHMuMDYtLjIzLjEyLS4zMS4xMS0uMTQuMTktLjE3LjE2LS4wNS4yNS0uMDUuMTguMDIuMjUuMDUuMTQuMDkuMTkuMTcuMDkuMTguMTIuMzEuMDQuMjkuMDQuNDh2Ljk3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9yd2FyZDMwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM2MwIDMuMzEtMi42OSA2LTYgNnMtNi0yLjY5LTYtNiAyLjY5LTYgNi02djRsNS01LTUtNXY0Yy00LjQyIDAtOCAzLjU4LTggOHMzLjU4IDggOCA4IDgtMy41OCA4LThoLTJ6bS03LjQ2IDIuMjJjLS4wNi4wNS0uMTIuMDktLjIuMTJzLS4xNy4wNC0uMjcuMDRhLjY5LjY5IDAgMCAxLS40NS0uMTVjLS4wNi0uMDUtLjEtLjEtLjEzLS4xN3MtLjA1LS4xNC0uMDUtLjIyaC0uODVjMCAuMjEuMDQuMzkuMTIuNTVzLjE5LjI4LjMzLjM4LjI5LjE4LjQ2LjIzLjM1LjA3LjUzLjA3Yy4yMSAwIC40MS0uMDMuNi0uMDhzLjM0LS4xNC40OC0uMjQuMjQtLjI0LjMyLS4zOS4xMi0uMzMuMTItLjUzYzAtLjIzLS4wNi0uNDQtLjE4LS42MXMtLjMtLjMtLjU0LS4zOWMuMS0uMDUuMi0uMS4yOC0uMTdzLjE1LS4xNC4yLS4yMi4xLS4xNi4xMy0uMjUuMDQtLjE4LjA0LS4yN2MwLS4yLS4wNC0uMzctLjExLS41M3MtLjE3LS4yOC0uMy0uMzgtLjI4LS4xOC0uNDYtLjIzLS4zNy0uMDgtLjU5LS4wOGMtLjE5IDAtLjM4LjAzLS41NC4wOHMtLjMyLjEzLS40NC4yMy0uMjMuMjItLjMuMzctLjExLjMtLjExLjQ4aC44NWEuNDU1LjQ1NSAwIDAgMSAuMTctLjM1Yy4wNS0uMDQuMTEtLjA3LjE4LS4xcy4xNC0uMDMuMjItLjAzYy4xIDAgLjE4LjAxLjI1LjA0cy4xMy4wNi4xOC4xMS4wOC4xMS4xMS4xNy4wNC4xNC4wNC4yMmMwIC4xOC0uMDUuMzItLjE2LjQzcy0uMjYuMTYtLjQ4LjE2aC0uNDN2LjY2aC40NWMuMTEgMCAuMi4wMS4yOS4wNHMuMTYuMDYuMjIuMTEuMTEuMTIuMTQuMi4wNS4xOC4wNS4yOWMwIC4wOS0uMDEuMTctLjA0LjI0cy0uMDguMTEtLjEzLjE3em0zLjktMy40NGMtLjE4LS4wNy0uMzctLjEtLjU5LS4xcy0uNDEuMDMtLjU5LjEtLjMzLjE4LS40NS4zMy0uMjMuMzQtLjI5LjU3LS4xLjUtLjEuODJ2Ljc0YzAgLjMyLjA0LjYuMTEuODJzLjE3LjQyLjMuNTcuMjguMjYuNDYuMzMuMzcuMS41OS4xLjQxLS4wMy41OS0uMS4zMy0uMTguNDUtLjMzLjIyLS4zNC4yOS0uNTcuMS0uNS4xLS44MnYtLjc0YzAtLjMyLS4wNC0uNi0uMTEtLjgycy0uMTctLjQyLS4zLS41Ny0uMjgtLjI2LS40Ni0uMzN6bS4wMSAyLjU3YzAgLjE5LS4wMS4zNS0uMDQuNDhzLS4wNi4yNC0uMTEuMzItLjExLjE0LS4xOS4xNy0uMTYuMDUtLjI1LjA1LS4xOC0uMDItLjI1LS4wNS0uMTQtLjA5LS4xOS0uMTctLjA5LS4xOS0uMTItLjMyLS4wNC0uMjktLjA0LS40OHYtLjk3YzAtLjE5LjAxLS4zNS4wNC0uNDhzLjA2LS4yMy4xMi0uMzEuMTEtLjE0LjE5LS4xNy4xNi0uMDUuMjUtLjA1LjE4LjAyLjI1LjA1LjE0LjA5LjE5LjE3LjA5LjE4LjEyLjMxLjA0LjI5LjA0LjQ4di45N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvcndhcmQ1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy45NSAxM2MwIDMuMzEtMi42OSA2LTYgNnMtNi0yLjY5LTYtNiAyLjY5LTYgNi02djRsNS01LTUtNXY0Yy00LjQyIDAtOCAzLjU4LTggOHMzLjU4IDggOCA4IDgtMy41OCA4LThoLTJ6bS01LjUyIDIuMTVjLS4wNS4wNy0uMTEuMTMtLjE4LjE3cy0uMTcuMDYtLjI3LjA2Yy0uMTcgMC0uMzEtLjA1LS40Mi0uMTVzLS4xNy0uMjQtLjE5LS40MWgtLjg0Yy4wMS4yLjA1LjM3LjEzLjUzcy4xOS4yOC4zMi4zOS4yOS4xOS40Ni4yNC4zNS4wOC41My4wOGMuMjQgMCAuNDYtLjA0LjY0LS4xMnMuMzMtLjE4LjQ1LS4zMS4yMS0uMjguMjctLjQ1LjA5LS4zNS4wOS0uNTRjMC0uMjItLjAzLS40My0uMDktLjZzLS4xNC0uMzMtLjI1LS40NS0uMjUtLjIyLS40MS0uMjgtLjM0LS4xLS41NS0uMWMtLjA3IDAtLjE0LjAxLS4yLjAycy0uMTMuMDItLjE4LjA0LS4xLjAzLS4xNS4wNS0uMDguMDQtLjExLjA1bC4xMS0uOTJoMS43di0uNzFIMTAuOWwtLjI1IDIuMTcuNjcuMTdjLjAzLS4wMy4wNi0uMDYuMS0uMDlzLjA3LS4wNS4xMi0uMDcuMS0uMDQuMTUtLjA1LjEzLS4wMi4yLS4wMmMuMTIgMCAuMjIuMDIuMy4wNXMuMTYuMDkuMjEuMTUuMS4xNC4xMy4yNC4wNC4xOS4wNC4zMS0uMDEuMjItLjAzLjMxLS4wNi4xNy0uMTEuMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHYW1lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgNHYyLjY3bC0xIDEtMS0xVjRoMm03IDd2MmgtMi42N2wtMS0xIDEtMUgyME02LjY3IDExbDEgMS0xIDFINHYtMmgyLjY3TTEyIDE2LjMzbDEgMVYyMGgtMnYtMi42N2wxLTFNMTUgMkg5djUuNWwzIDMgMy0zVjJ6bTcgN2gtNS41bC0zIDMgMyAzSDIyVjl6TTcuNSA5SDJ2Nmg1LjVsMy0zLTMtM3ptNC41IDQuNS0zIDNWMjJoNnYtNS41bC0zLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpNNy41IDEzaDJ2MkgxMVY5SDkuNXYyLjVoLTJWOUg2djZoMS41ek0xOCAxNHYtNGMwLS41NS0uNDUtMS0xLTFoLTR2Nmg0Yy41NSAwIDEtLjQ1IDEtMXptLTEuNS0uNWgtMnYtM2gydjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIZWFyaW5nRGlzYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjAzIDMuMkM3LjE1IDIuNDQgOC41MSAyIDEwIDJjMy45MyAwIDcgMy4wNyA3IDcgMCAxLjI2LS4zOCAyLjY1LTEuMDcgMy45LS4wMi4wNC0uMDUuMDgtLjA4LjEzbC0xLjQ4LTEuNDhjLjQtLjg2LjYzLTEuNzUuNjMtMi41NSAwLTIuOC0yLjItNS01LTUtLjkyIDAtMS43Ni4yNi0yLjUuNjdMNi4wMyAzLjJ6bTExLjE4IDExLjE4IDEuNDMgMS40M0MyMC4xMSAxMy45MyAyMSAxMS41NyAyMSA5YzAtMy4wNC0xLjIzLTUuNzktMy4yMi03Ljc4bC0xLjQyIDEuNDJBOC45MzcgOC45MzcgMCAwIDEgMTkgOWMwIDIuMDItLjY3IDMuODgtMS43OSA1LjM4ek0xMCA2LjVjLS4yMSAwLS40LjAzLS41OS4wOGwzLjAxIDMuMDFjLjA1LS4xOS4wOC0uMzguMDgtLjU5QTIuNSAyLjUgMCAwIDAgMTAgNi41em0xMS4xOSAxNC42OUwyLjgxIDIuODEgMS4zOSA0LjIybDIuMTMgMi4xM0MzLjE5IDcuMTYgMyA4LjA1IDMgOWgyYzAtLjM2LjA1LS43MS4xMi0xLjA1bDYuNjEgNi42MWMtLjg4LjY4LTEuNzggMS40MS0yLjI3IDIuOS0uNSAxLjUtMSAyLjAxLTEuNzEgMi4zOC0uMTkuMS0uNDYuMTYtLjc1LjE2LTEuMSAwLTItLjktMi0ySDNhMy45OTkgMy45OTkgMCAwIDAgNS42NCAzLjY1YzEuMzYtLjcxIDIuMTMtMS43MyAyLjczLTMuNTUuMzItLjk4LjktMS40MyAxLjcxLTIuMDUuMDMtLjAyLjA1LS4wNC4wOC0uMDZsNi42MiA2LjYyIDEuNDEtMS40MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhlYXJpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDIwYy0uMjkgMC0uNTYtLjA2LS43Ni0uMTUtLjcxLS4zNy0xLjIxLS44OC0xLjcxLTIuMzgtLjUxLTEuNTYtMS40Ny0yLjI5LTIuMzktMy0uNzktLjYxLTEuNjEtMS4yNC0yLjMyLTIuNTNDOS4yOSAxMC45OCA5IDkuOTMgOSA5YzAtMi44IDIuMi01IDUtNXM1IDIuMiA1IDVoMmMwLTMuOTMtMy4wNy03LTctN1M3IDUuMDcgNyA5YzAgMS4yNi4zOCAyLjY1IDEuMDcgMy45LjkxIDEuNjUgMS45OCAyLjQ4IDIuODUgMy4xNS44MS42MiAxLjM5IDEuMDcgMS43MSAyLjA1LjYgMS44MiAxLjM3IDIuODQgMi43MyAzLjU1QTMuOTk5IDMuOTk5IDAgMCAwIDIxIDE4aC0yYzAgMS4xLS45IDItMiAyek03LjY0IDIuNjQgNi4yMiAxLjIyQzQuMjMgMy4yMSAzIDUuOTYgMyA5czEuMjMgNS43OSAzLjIyIDcuNzhsMS40MS0xLjQxQzYuMDEgMTMuNzQgNSAxMS40OSA1IDlzMS4wMS00Ljc0IDIuNjQtNi4zNnpNMTEuNSA5YTIuNSAyLjUgMCAwIDAgNSAwIDIuNSAyLjUgMCAwIDAtNSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGlnaFF1YWxpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDRINWEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNEg1VjZoMTR2MTJ6TTcuNSAxM2gydjJIMTFWOUg5LjV2Mi41aC0yVjlINnY2aDEuNXptNi41IDJoLjc1djEuNWgxLjVWMTVIMTdjLjU1IDAgMS0uNDUgMS0xdi00YzAtLjU1LS40NS0xLTEtMWgtM2MtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDF6bS41LTQuNWgydjNoLTJ2LTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbnRlcnByZXRlck1vZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC41IDE2LjVjLS44MyAwLTEuNS0uNjctMS41LTEuNXYtMi41YzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41VjE1YzAgLjgzLS42NyAxLjUtMS41IDEuNXpNMjAgMjBoMXYtMS41NGMxLjY5LS4yNCAzLTEuNyAzLTMuNDZoLTFhMi41IDIuNSAwIDAgMS01IDBoLTFjMCAxLjc2IDEuMzEgMy4yMiAzIDMuNDZWMjB6TTkgMTJjLTIuMjEgMC00LTEuNzktNC00YTMuOTk5IDMuOTk5IDAgMCAxIDUuMzQtMy43N0E1LjkzOCA1LjkzOCAwIDAgMCA5IDhjMCAxLjQzLjUgMi43NCAxLjM0IDMuNzctLjQyLjE1LS44Ny4yMy0xLjM0LjIzem0tMS44OSAxLjEzQTQuOTY1IDQuOTY1IDAgMCAwIDUgMTcuMjJWMjBIMXYtMi43OGMwLTEuMTIuNjEtMi4xNSAxLjYxLTIuNjYgMS4yNC0uNjQgMi43Ni0xLjE5IDQuNS0xLjQzek0xMSA4YzAtMi4yMSAxLjc5LTQgNC00czQgMS43OSA0IDQtMS43OSA0LTQgNC00LTEuNzktNC00em0yIDBjMCAxLjEuOSAyIDIgMnMyLS45IDItMi0uOS0yLTItMi0yIC45LTIgMnptMiA3Yy0yLjM3IDAtNC4yOS43My01LjQ4IDEuMzQtLjMyLjE2LS41Mi41LS41Mi44OFYxOGg3LjE3Yy41Ljg2IDEuMjUgMS41NiAyLjE1IDJIN3YtMi43OGMwLTEuMTIuNjEtMi4xNSAxLjYxLTIuNjZDMTAuMjkgMTMuNyAxMi40NyAxMyAxNSAxM2MuMzkgMCAuNzcuMDIgMS4xNC4wNS0uMzMuNTktLjU1IDEuMjYtLjYyIDEuOTYtLjE3LS4wMS0uMzQtLjAxLS41Mi0uMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMaWJyYXJ5QWRkQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDR2MTJIOFY0aDEybTAtMkg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03LjUzIDEyTDkgMTAuNWwxLjQtMS40MSAyLjA3IDIuMDhMMTcuNiA2IDE5IDcuNDEgMTIuNDcgMTR6TTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGlicmFyeUFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2SDJ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZ6bTE2LTRIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDhWNGgxMnYxMnptLTctMmgydi0zaDNWOWgtM1Y2aC0ydjNoLTN2MmgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGlicmFyeUJvb2tzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnptMTYtNEg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTRIOFY0aDEydjEyek0xMCA5aDh2MmgtOHptMCAzaDR2MmgtNHptMC02aDh2MmgtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxpYnJhcnlNdXNpYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTRIOFY0aDEydjEyem0tNy41LTFhMi41IDIuNSAwIDAgMCAyLjUtMi41VjdoM1Y1aC00djUuNTFjLS40Mi0uMzItLjkzLS41MS0xLjUtLjUxYTIuNSAyLjUgMCAwIDAgMCA1ek00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvb3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRWMUw4IDVsNCA0VjZjMy4zMSAwIDYgMi42OSA2IDYgMCAxLjAxLS4yNSAxLjk3LS43IDIuOGwxLjQ2IDEuNDZBNy45MyA3LjkzIDAgMCAwIDIwIDEyYzAtNC40Mi0zLjU4LTgtOC04em0wIDE0Yy0zLjMxIDAtNi0yLjY5LTYtNiAwLTEuMDEuMjUtMS45Ny43LTIuOEw1LjI0IDcuNzRBNy45MyA3LjkzIDAgMCAwIDQgMTJjMCA0LjQyIDMuNTggOCA4IDh2M2w0LTQtNC00djN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMeXJpY3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDZoN3YySDZ6TTYgMTJoNHYySDZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDExLjk3VjE2SDZsLTIgMlY0aDExdjIuMDNjLjUyLS42OSAxLjItMS4yNSAyLTEuNlY0YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAyMmw0LTRoOWMxLjEgMCAyLS45IDItMnYtMi40MmE1LjE2IDUuMTYgMCAwIDEtMi0xLjYxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDloN3YySDZ6TTIwIDYuMThjLS4zMS0uMTEtLjY1LS4xOC0xLS4xOC0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTNWM2gyVjFoLTR2NS4xOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1pY05vbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE0YzEuNjYgMCAzLTEuMzQgMy0zVjVjMC0xLjY2LTEuMzQtMy0zLTNTOSAzLjM0IDkgNXY2YzAgMS42NiAxLjM0IDMgMyAzem0tMS05YzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXY2YzAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xVjV6bTYgNmMwIDIuNzYtMi4yNCA1LTUgNXMtNS0yLjI0LTUtNUg1YzAgMy41MyAyLjYxIDYuNDMgNiA2LjkyVjIxaDJ2LTMuMDhjMy4zOS0uNDkgNi0zLjM5IDYtNi45MmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1pY09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuOCA0LjljMC0uNjYuNTQtMS4yIDEuMi0xLjJzMS4yLjU0IDEuMiAxLjJsLS4wMSAzLjkxTDE1IDEwLjZWNWMwLTEuNjYtMS4zNC0zLTMtMy0xLjU0IDAtMi43OSAxLjE2LTIuOTYgMi42NWwxLjc2IDEuNzZWNC45ek0xOSAxMWgtMS43YzAgLjU4LS4xIDEuMTMtLjI3IDEuNjRsMS4yNyAxLjI3Yy40NC0uODguNy0xLjg3LjctMi45MXpNNC40MSAyLjg2IDMgNC4yN2w2IDZWMTFjMCAxLjY2IDEuMzQgMyAzIDMgLjIzIDAgLjQ0LS4wMy42NS0uMDhsMS42NiAxLjY2Yy0uNzEuMzMtMS41LjUyLTIuMzEuNTItMi43NiAwLTUuMy0yLjEtNS4zLTUuMUg1YzAgMy40MSAyLjcyIDYuMjMgNiA2LjcyVjIxaDJ2LTMuMjhhNy4xMyA3LjEzIDAgMCAwIDIuNTUtLjlsNC4yIDQuMiAxLjQxLTEuNDFMNC40MSAyLjg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiZ1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfV19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNGMxLjY2IDAgMy0xLjM0IDMtM1Y1YzAtMS42Ni0xLjM0LTMtMy0zUzkgMy4zNCA5IDV2NmMwIDEuNjYgMS4zNCAzIDMgM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTFjMCAyLjc2LTIuMjQgNS01IDVzLTUtMi4yNC01LTVINWMwIDMuNTMgMi42MSA2LjQzIDYgNi45MlYyMWgydi0zLjA4YzMuMzktLjQ5IDYtMy4zOSA2LTYuOTJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNaXNzZWRWaWRlb0NhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEwLjVWN2MwLS41NS0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxdjEwYzAgLjU1LjQ1IDEgMSAxaDEyYy41NSAwIDEtLjQ1IDEtMXYtMy41bDQgNHYtMTFsLTQgNHptLTItMS44M1YxNkg1VjhoMTB2LjY3em0tNy44OSAyLjQ0TDExIDE1bDMuNzctMy43OS0uNzgtLjc5TDExIDEzLjQzbC0zLjExLTMuMWgyLjU1VjkuMjJINnY0LjQ0aDEuMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb3ZpZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2LjQ3IDUuNzYgMTBIMjB2OEg0VjYuNDdNMjIgNGgtNGwyIDRoLTNsLTItNGgtMmwyIDRoLTNsLTItNEg4bDIgNEg3TDUgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTXVzaWNWaWRlbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZIM1Y1aDE4djE0ek04IDE1YzAtMS42NiAxLjM0LTMgMy0zIC4zNSAwIC42OS4wNyAxIC4xOFY2aDV2MmgtM3Y3LjAzQTMuMDAzIDMuMDAzIDAgMCAxIDExIDE4Yy0xLjY2IDAtMy0xLjM0LTMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5ld1JlbGVhc2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMyAxMi0yLjQ0LTIuNzguMzQtMy42OC0zLjYxLS44Mi0xLjg5LTMuMThMMTIgMyA4LjYgMS41NCA2LjcxIDQuNzJsLTMuNjEuODEuMzQgMy42OEwxIDEybDIuNDQgMi43OC0uMzQgMy42OSAzLjYxLjgyIDEuODkgMy4xOEwxMiAyMWwzLjQgMS40NiAxLjg5LTMuMTggMy42MS0uODItLjM0LTMuNjhMMjMgMTJ6bS00LjUxIDIuMTEuMjYgMi43OS0yLjc0LjYyLTEuNDMgMi40MUwxMiAxOC44MmwtMi41OCAxLjExLTEuNDMtMi40MS0yLjc0LS42Mi4yNi0yLjhMMy42NiAxMmwxLjg1LTIuMTItLjI2LTIuNzggMi43NC0uNjEgMS40My0yLjQxTDEyIDUuMThsMi41OC0xLjExIDEuNDMgMi40MSAyLjc0LjYyLS4yNiAyLjc5TDIwLjM0IDEybC0xLjg1IDIuMTF6TTExIDE1aDJ2MmgtMnptMC04aDJ2NmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vdEludGVyZXN0ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04IDAtMS44NS42My0zLjU1IDEuNjktNC45TDE2LjkgMTguMzFBNy45MDIgNy45MDIgMCAwIDEgMTIgMjB6bTYuMzEtMy4xTDcuMSA1LjY5QTcuOTAyIDcuOTAyIDAgMCAxIDEyIDRjNC40MiAwIDggMy41OCA4IDggMCAxLjg1LS42MyAzLjU1LTEuNjkgNC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMi4wMWMwIDEuMS45IDEuOTkgMiAxLjk5aDE2YzEuMSAwIDItLjkgMi0ydi04bC02LTZ6TTQgMTguMDFWNmgxMXY1aDV2Ny4wMUg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGF1c2VDaXJjbGVGaWxsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119XX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bS0xIDE0SDlWOGgydjh6bTQgMGgtMlY4aDJ2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBhdXNlQ2lyY2xlT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxNmgyVjhIOXY4em0zLTE0QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptMS00aDJWOGgtMnY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGF1c2VDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDE2aDJWOEg5djh6bTMtMTRDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em0xLTRoMlY4aC0ydjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQYXVzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxOWg0VjVINnYxNHptOC0xNHYxNGg0VjVoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQbGF5QXJyb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDguNjQgMTUuMjcgMTIgMTAgMTUuMzZWOC42NE04IDV2MTRsMTEtN0w4IDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQbGF5Q2lyY2xlRmlsbGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMiAxNC41di05bDYgNC41LTYgNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGxheUNpcmNsZU91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEwIDE2LjUgNi00LjUtNi00LjV6TTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGxheUNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em0tMi41LTMuNSA3LTQuNS03LTQuNXY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGxheURpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNDUgMTMuNjIgMTkgMTIgOCA1di4xN3pNMi44MSAyLjgxIDEuMzkgNC4yMiA4IDEwLjgzVjE5bDQuOTktMy4xOCA2Ljc4IDYuNzggMS40MS0xLjQxTDIuODEgMi44MXpNMTAgMTUuMzZ2LTIuNTNsMS41NSAxLjU1LTEuNTUuOTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQbGF5bGlzdEFkZENoZWNrQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNGM0LjQxIDAgOCAzLjU5IDggOHMtMy41OSA4LTggOC04LTMuNTktOC04IDMuNTktOCA4LTh6bTAtMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMiA4SDd2Mmg3di0yem0wLTNIN3YyaDdWN3ptLTcgOGgzdi0ySDd2MnptMTItMS41OUwxNy41OSAxMmwtMy41NCAzLjU0LTEuNDEtMS40MS0xLjQxIDEuNDEgMi44MyAyLjgzTDE5IDEzLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGxheWxpc3RBZGRDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTBoMTF2Mkgzek0zIDZoMTF2Mkgzek0zIDE0aDd2Mkgzek0yMC41OSAxMS45M2wtNC4yNSA0LjI0LTIuMTItMi4xMi0xLjQxIDEuNDFMMTYuMzQgMTkgMjIgMTMuMzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQbGF5bGlzdEFkZENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em0yLTEwSDd2Mmg3di0yem0wLTNIN3YyaDdWN3ptLTcgOGgzdi0ySDd2MnptMTItMnYyaC0ydjJoLTJ2LTJoLTJ2LTJoMnYtMmgydjJoMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBsYXlsaXN0QWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTBIM3YyaDExdi0yem0wLTRIM3YyaDExVjZ6bTQgOHYtNGgtMnY0aC00djJoNHY0aDJ2LTRoNHYtMmgtNHpNMyAxNmg3di0ySDN2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBsYXlsaXN0UGxheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTBoMTF2Mkgzek0zIDZoMTF2Mkgzek0zIDE0aDd2Mkgzek0xNiAxM3Y4bDYtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBsYXlsaXN0UmVtb3ZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTBIM3YyaDExdi0yem0wLTRIM3YyaDExVjZ6TTMgMTZoN3YtMkgzdjJ6bTExLjQxIDZMMTcgMTkuNDEgMTkuNTkgMjIgMjEgMjAuNTkgMTguNDEgMTggMjEgMTUuNDEgMTkuNTkgMTQgMTcgMTYuNTkgMTQuNDEgMTQgMTMgMTUuNDEgMTUuNTkgMTggMTMgMjAuNTkgMTQuNDEgMjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVRdWV1ZU11c2ljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNmgtNXY4LjE4Yy0uMzEtLjExLS42NS0uMTgtMS0uMTgtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zVjhoM1Y2em0tNyAwSDN2MmgxMlY2em0wIDRIM3YyaDEydi0yem0tNCA0SDN2Mmg4di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUXVldWVQbGF5TmV4dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjExIDAtMiAuODktMiAydjEyYTIgMiAwIDAgMCAyIDJoNXYyaDh2LTJoMnYtMkgzVjVoMTh2OGgyVjVhMiAyIDAgMCAwLTItMnptLTggN1Y3aC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6bTExIDgtNC41IDQuNUwxOCAyMWwzLTMtMy0zIDEuNS0xLjVMMjQgMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVRdWV1ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2SDJ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZ6bTE2LTRIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDhWNGgxMnYxMnptLTctMWgydi00aDRWOWgtNFY1aC0ydjRIOXYyaDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSYWRpbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNkg4LjNsOC4yNi0zLjM0TDE1Ljg4IDEgMy4yNCA2LjE1QzIuNTEgNi40MyAyIDcuMTcgMiA4djEyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMlY4YzAtMS4xMS0uODktMi0yLTJ6bTAgMnYzaC0yVjloLTJ2Mkg0VjhoMTZ6TTQgMjB2LTdoMTZ2N0g0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjhcIixcImN5XCI6XCIxNi40OFwiLFwiclwiOlwiMi41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZWNlbnRBY3RvcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDVoMnYxNGgtMnptLTQgMGgydjE0aC0yem0tMyAwSDJjLS41NSAwLTEgLjQ1LTEgMXYxMmMwIC41NS40NSAxIDEgMWgxMmMuNTUgMCAxLS40NSAxLTFWNmMwLS41NS0uNDUtMS0xLTF6bS0xIDEySDNWN2gxMHYxMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4XCIsXCJjeVwiOlwiOS45NFwiLFwiclwiOlwiMS45NVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS44OSAxNS4zNWMwLTEuMy0yLjU5LTEuOTUtMy44OS0xLjk1cy0zLjg5LjY1LTMuODkgMS45NVYxNmg3Ljc4di0uNjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZW1vdmVGcm9tUXVldWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xMSAwLTIgLjg5LTIgMnYxMmEyIDIgMCAwIDAgMiAyaDV2Mmg4di0yaDVjMS4xIDAgMi0uOSAyLTJWNWEyIDIgMCAwIDAtMi0yem0wIDE0SDNWNWgxOHYxMnptLTUtN3YySDh2LTJoOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlcGVhdE9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMUgzYy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bS0yIDE4SDYuODNsMS41OCAxLjU4TDcgMjJsLTQtNCA0LTQgMS40MSAxLjQyTDYuODMgMTdIMTd2LTRoMnY2em0tMi05LTEuNDEtMS40MkwxNy4xNyA3SDd2NEg1VjVoMTIuMTdsLTEuNTgtMS41OEwxNyAybDQgNC00IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXBlYXRPbmVPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDFIM2MtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0tMiAxOEg2LjgzbDEuNTggMS41OEw3IDIybC00LTQgNC00IDEuNDEgMS40Mkw2LjgzIDE3SDE3di00aDJ2NnptLTktOC41VjloM3Y2aC0xLjV2LTQuNUgxMHptNy0uNS0xLjQxLTEuNDJMMTcuMTcgN0g3djRINVY1aDEyLjE3bC0xLjU4LTEuNThMMTcgMmw0IDQtNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVwZWF0T25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDdoMTB2M2w0LTQtNC00djNINXY2aDJWN3ptMTAgMTBIN3YtM2wtNCA0IDQgNHYtM2gxMnYtNmgtMnY0em0tNC0yVjloLTFsLTIgMXYxaDEuNXY0SDEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVwZWF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDdoMTB2M2w0LTQtNC00djNINXY2aDJWN3ptMTAgMTBIN3YtM2wtNCA0IDQgNHYtM2gxMnYtNmgtMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVwbGF5MTAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk5IDVWMWwtNSA1IDUgNVY3YzMuMzEgMCA2IDIuNjkgNiA2cy0yLjY5IDYtNiA2LTYtMi42OS02LTZoLTJjMCA0LjQyIDMuNTggOCA4IDhzOC0zLjU4IDgtOC0zLjU4LTgtOC04em0tMS4xIDExaC0uODV2LTMuMjZsLTEuMDEuMzF2LS42OWwxLjc3LS42M2guMDlWMTZ6bTQuMjgtMS43NmMwIC4zMi0uMDMuNi0uMS44MnMtLjE3LjQyLS4yOS41Ny0uMjguMjYtLjQ1LjMzLS4zNy4xLS41OS4xLS40MS0uMDMtLjU5LS4xLS4zMy0uMTgtLjQ2LS4zMy0uMjMtLjM0LS4zLS41Ny0uMTEtLjUtLjExLS44MnYtLjc0YzAtLjMyLjAzLS42LjEtLjgycy4xNy0uNDIuMjktLjU3LjI4LS4yNi40NS0uMzMuMzctLjEuNTktLjEuNDEuMDMuNTkuMS4zMy4xOC40Ni4zMy4yMy4zNC4zLjU3LjExLjUuMTEuODJ2Ljc0em0tLjg1LS44NmMwLS4xOS0uMDEtLjM1LS4wNC0uNDhzLS4wNy0uMjMtLjEyLS4zMS0uMTEtLjE0LS4xOS0uMTctLjE2LS4wNS0uMjUtLjA1LS4xOC4wMi0uMjUuMDUtLjE0LjA5LS4xOS4xNy0uMDkuMTgtLjEyLjMxLS4wNC4yOS0uMDQuNDh2Ljk3YzAgLjE5LjAxLjM1LjA0LjQ4cy4wNy4yNC4xMi4zMi4xMS4xNC4xOS4xNy4xNi4wNS4yNS4wNS4xOC0uMDIuMjUtLjA1LjE0LS4wOS4xOS0uMTcuMDktLjE5LjExLS4zMi4wNC0uMjkuMDQtLjQ4di0uOTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXBsYXkzMCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNVYxTDcgNmw1IDVWN2MzLjMxIDAgNiAyLjY5IDYgNnMtMi42OSA2LTYgNi02LTIuNjktNi02SDRjMCA0LjQyIDMuNTggOCA4IDhzOC0zLjU4IDgtOC0zLjU4LTgtOC04em0tMi40NCA4LjQ5aC40NWMuMjEgMCAuMzctLjA1LjQ4LS4xNnMuMTYtLjI1LjE2LS40M2EuNTM4LjUzOCAwIDAgMC0uMTUtLjM5Yy0uMDUtLjA1LS4xMS0uMDktLjE4LS4xMXMtLjE2LS4wNC0uMjUtLjA0Yy0uMDggMC0uMTUuMDEtLjIyLjAzcy0uMTMuMDUtLjE4LjEtLjA5LjA5LS4xMi4xNS0uMDUuMTMtLjA1LjJoLS44NWExLjA2IDEuMDYgMCAwIDEgLjQxLS44NWMuMTMtLjEuMjctLjE4LjQ0LS4yM3MuMzUtLjA4LjU0LS4wOGMuMjEgMCAuNDEuMDMuNTkuMDhzLjMzLjEzLjQ2LjIzLjIzLjIzLjMuMzguMTEuMzMuMTEuNTNhLjg0Mi44NDIgMCAwIDEtLjE3LjUyIDEuMSAxLjEgMCAwIDEtLjQ4LjM5Yy4yNC4wOS40Mi4yMS41NC4zOXMuMTguMzguMTguNjFjMCAuMi0uMDQuMzgtLjEyLjUzcy0uMTguMjktLjMyLjM5LS4yOS4xOS0uNDguMjQtLjM4LjA4LS42LjA4Yy0uMTggMC0uMzYtLjAyLS41My0uMDdzLS4zMy0uMTItLjQ2LS4yMy0uMjUtLjIzLS4zMy0uMzgtLjEyLS4zNC0uMTItLjU1aC44NWMwIC4wOC4wMi4xNS4wNS4yMnMuMDcuMTIuMTMuMTcuMTIuMDkuMi4xMS4xNi4wNC4yNS4wNGMuMSAwIC4xOS0uMDEuMjctLjA0cy4xNS0uMDcuMi0uMTIuMS0uMTEuMTMtLjE4LjA0LS4xNS4wNC0uMjRjMC0uMTEtLjAyLS4yMS0uMDUtLjI5cy0uMDgtLjE1LS4xNC0uMi0uMTMtLjA5LS4yMi0uMTEtLjE4LS4wNC0uMjktLjA0aC0uNDd2LS42NXptNS43NC43NWMwIC4zMi0uMDMuNi0uMS44MnMtLjE3LjQyLS4yOS41Ny0uMjguMjYtLjQ1LjMzLS4zNy4xLS41OS4xLS40MS0uMDMtLjU5LS4xLS4zMy0uMTgtLjQ2LS4zMy0uMjMtLjM0LS4zLS41Ny0uMTEtLjUtLjExLS44MnYtLjc0YzAtLjMyLjAzLS42LjEtLjgycy4xNy0uNDIuMjktLjU3LjI4LS4yNi40NS0uMzMuMzctLjEuNTktLjEuNDEuMDMuNTkuMS4zMy4xOC40Ni4zMy4yMy4zNC4zLjU3LjExLjUuMTEuODJ2Ljc0em0tLjg1LS44NmMwLS4xOS0uMDEtLjM1LS4wNC0uNDhzLS4wNy0uMjMtLjEyLS4zMS0uMTEtLjE0LS4xOS0uMTctLjE2LS4wNS0uMjUtLjA1LS4xOC4wMi0uMjUuMDUtLjE0LjA5LS4xOS4xNy0uMDkuMTgtLjEyLjMxLS4wNC4yOS0uMDQuNDh2Ljk3YzAgLjE5LjAxLjM1LjA0LjQ4cy4wNy4yNC4xMi4zMi4xMS4xNC4xOS4xNy4xNi4wNS4yNS4wNS4xOC0uMDIuMjUtLjA1LjE0LS4wOS4xOS0uMTcuMDktLjE5LjExLS4zMmMuMDMtLjEzLjA0LS4yOS4wNC0uNDh2LS45N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlcGxheTUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDVWMUw3IDZsNSA1VjdjMy4zMSAwIDYgMi42OSA2IDZzLTIuNjkgNi02IDYtNi0yLjY5LTYtNkg0YzAgNC40MiAzLjU4IDggOCA4czgtMy41OCA4LTgtMy41OC04LTgtOHptLTEuMzEgOC45LjI1LTIuMTdoMi4zOXYuNzFoLTEuN2wtLjExLjkyYy4wMy0uMDIuMDctLjAzLjExLS4wNXMuMDktLjA0LjE1LS4wNS4xMi0uMDMuMTgtLjA0LjEzLS4wMi4yLS4wMmMuMjEgMCAuMzkuMDMuNTUuMXMuMy4xNi40MS4yOC4yLjI3LjI1LjQ1LjA5LjM4LjA5LjZjMCAuMTktLjAzLjM3LS4wOS41NHMtLjE1LjMyLS4yNy40NS0uMjcuMjQtLjQ1LjMxLS4zOS4xMi0uNjQuMTJjLS4xOCAwLS4zNi0uMDMtLjUzLS4wOHMtLjMyLS4xNC0uNDYtLjI0LS4yNC0uMjQtLjMyLS4zOS0uMTMtLjMzLS4xMy0uNTNoLjg0Yy4wMi4xOC4wOC4zMi4xOS40MXMuMjUuMTUuNDIuMTVhLjQ5LjQ5IDAgMCAwIC40NS0uMjNjLjA0LS4wNy4wOC0uMTUuMTEtLjI1cy4wMy0uMi4wMy0uMzEtLjAxLS4yMS0uMDQtLjMxLS4wNy0uMTctLjEzLS4yNC0uMTMtLjEyLS4yMS0uMTUtLjE5LS4wNS0uMy0uMDVjLS4wOCAwLS4xNS4wMS0uMi4wMnMtLjExLjAzLS4xNS4wNS0uMDguMDUtLjEyLjA3LS4wNy4wNi0uMS4wOWwtLjY3LS4xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlcGxheUNpcmNsZUZpbGxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMTYuNWMtMy4zMSAwLTYtMi42OS02LTZoMmMwIDIuMjEgMS43OSA0IDQgNHM0LTEuNzkgNC00YzAtMi4yNC0xLjg1LTQuMDktNC4xNi0zLjk5bDEuNTcgMS41N0wxMiAxMS41bC00LTQgNC00IDEuNDEgMS40MS0xLjYgMS42QzE1LjI4IDYuNCAxOCA5LjE4IDE4IDEyLjVjMCAzLjMxLTIuNjkgNi02IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXBsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119XX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDVWMUw3IDZsNSA1VjdjMy4zMSAwIDYgMi42OSA2IDZzLTIuNjkgNi02IDYtNi0yLjY5LTYtNkg0YzAgNC40MiAzLjU4IDggOCA4czgtMy41OCA4LTgtMy41OC04LTgtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxNWgzYy41NSAwIDEtLjQ1IDEtMXYtMS41YzAtLjU1LS40NS0xLTEtMUg3LjV2LTFoMnYuNUgxMXYtMWMwLS41NS0uNDUtMS0xLTFIN2MtLjU1IDAtMSAuNDUtMSAxdjEuNWMwIC41NS40NSAxIDEgMWgyLjV2MWgtMlYxM0g2djFjMCAuNTUuNDUgMSAxIDF6TTE4IDE0di00YzAtLjU1LS40NS0xLTEtMWgtNHY2aDRjLjU1IDAgMS0uNDUgMS0xem0tMS41LS41aC0ydi0zaDJ2M3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE0SDRWNmgxNnYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNodWZmbGVPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDFIM2MtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yek01LjQxIDRsNS4xOCA1LjE3LTEuNDEgMS40Mkw0IDUuNDIgNS40MSA0ek0yMCAyMGgtNnYtMmgyLjYxbC0zLjItMy4yIDEuNDItMS40MiAzLjEzIDMuMTMuMDQuMDRWMTRoMnY2em0wLTEwaC0yVjcuNDJMNS40MSAyMCA0IDE4LjU5IDE2LjU4IDZIMTRWNGg2djZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaHVmZmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC41OSA5LjE3IDUuNDEgNCA0IDUuNDFsNS4xNyA1LjE3IDEuNDItMS40MXpNMTQuNSA0bDIuMDQgMi4wNEw0IDE4LjU5IDUuNDEgMjAgMTcuOTYgNy40NiAyMCA5LjVWNGgtNS41em0uMzMgOS40MS0xLjQxIDEuNDEgMy4xMyAzLjEzTDE0LjUgMjBIMjB2LTUuNWwtMi4wNCAyLjA0LTMuMTMtMy4xM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNraXBOZXh0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm02IDE4IDguNS02TDYgNnYxMnptMi04LjE0TDExLjAzIDEyIDggMTQuMTRWOS44NnpNMTYgNmgydjEyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2tpcFByZXZpb3VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDZoMnYxMkg2em0zLjUgNiA4LjUgNlY2bC04LjUgNnptNi41IDIuMTRMMTIuOTcgMTIgMTYgOS44NnY0LjI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2xvd01vdGlvblZpZGVvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy4wNSA5Ljc5IDEwIDcuNXY5bDMuMDUtMi4yOUwxNiAxMmwtMi45NS0yLjIxem0wIDBMMTAgNy41djlsMy4wNS0yLjI5TDE2IDEybC0yLjk1LTIuMjF6bTAgMEwxMCA3LjV2OWwzLjA1LTIuMjlMMTYgMTJsLTIuOTUtMi4yMXpNMTEgNC4wN1YyLjA1Yy0yLjAxLjItMy44NCAxLTUuMzIgMi4yMUw3LjEgNS42OUE3Ljk0MSA3Ljk0MSAwIDAgMSAxMSA0LjA3ek01LjY5IDcuMSA0LjI2IDUuNjhBOS45NDkgOS45NDkgMCAwIDAgMi4wNSAxMWgyLjAyYy4xOC0xLjQ2Ljc2LTIuNzkgMS42Mi0zLjl6TTQuMDcgMTNIMi4wNWMuMiAyLjAxIDEgMy44NCAyLjIxIDUuMzJsMS40My0xLjQzQTcuODY4IDcuODY4IDAgMCAxIDQuMDcgMTN6bTEuNjEgNi43NEE5Ljk4MSA5Ljk4MSAwIDAgMCAxMSAyMS45NXYtMi4wMmE3Ljk0MSA3Ljk0MSAwIDAgMS0zLjktMS42MmwtMS40MiAxLjQzek0yMiAxMmMwIDUuMTYtMy45MiA5LjQyLTguOTUgOS45NXYtMi4wMkMxNi45NyAxOS40MSAyMCAxNi4wNSAyMCAxMnMtMy4wMy03LjQxLTYuOTUtNy45M1YyLjA1QzE4LjA4IDIuNTggMjIgNi44NCAyMiAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNub296ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxMWgzLjYzTDkgMTUuMlYxN2g2di0yaC0zLjYzTDE1IDEwLjhWOUg5djJ6bTcuMDU2LTcuNjU0IDEuMjgyLTEuNTM1IDQuNjA3IDMuODUtMS4yOCAxLjU0ek0zLjMzNiA3LjE5bC0xLjI4LTEuNTM2TDYuNjYyIDEuODFsMS4yOCAxLjUzNnpNMTIgNmMzLjg2IDAgNyAzLjE0IDcgN3MtMy4xNCA3LTcgNy03LTMuMTQtNy03IDMuMTQtNyA3LTdtMC0yYTkgOSAwIDEgMCAuMDAxIDE4LjAwMUE5IDkgMCAwIDAgMTIgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNvcnRCeUFscGhhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC45NCA0LjY2aC00LjcybDIuMzYtMi4zNiAyLjM2IDIuMzZ6bS00LjY5IDE0LjcxaDQuNjZsLTIuMzMgMi4zMy0yLjMzLTIuMzN6TTYuMSA2LjI3IDEuNiAxNy43M2gxLjg0bC45Mi0yLjQ1aDUuMTFsLjkyIDIuNDVoMS44NEw3Ljc0IDYuMjdINi4xem0tMS4xMyA3LjM3IDEuOTQtNS4xOCAxLjk0IDUuMThINC45N3ptMTAuNzYgMi41aDYuMTJ2MS41OWgtOC41M3YtMS4yOWw1LjkyLTguNTZoLTUuODh2LTEuNmg4LjN2MS4yNmwtNS45MyA4LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcGVlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwLjM4IDguNTctMS4yMyAxLjg1YTggOCAwIDAgMS0uMjIgNy41OEg1LjA3QTggOCAwIDAgMSAxNS41OCA2Ljg1bDEuODUtMS4yM0ExMCAxMCAwIDAgMCAzLjM1IDE5YTIgMiAwIDAgMCAxLjcyIDFoMTMuODVhMiAyIDAgMCAwIDEuNzQtMSAxMCAxMCAwIDAgMC0uMjctMTAuNDR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjU5IDE1LjQxYTIgMiAwIDAgMCAyLjgzIDBsNS42Ni04LjQ5LTguNDkgNS42NmEyIDIgMCAwIDAgMCAyLjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3RvcENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4em00LTRIOFY4aDh2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0b3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDh2OEg4VjhoOG0yLTJINnYxMmgxMlY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3Vic2NyaXB0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2aDE2djJINHptMi00aDEydjJINnptMTQgOEg0Yy0xLjEgMC0yIC45LTIgMnY4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJ2LThjMC0xLjEtLjktMi0yLTJ6bTAgMTBINHYtOGgxNnY4em0tMTAtNy4yN3Y2LjUzTDE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3VidGl0bGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNEg0VjZoMTZ2MTJ6TTYgMTBoMnYySDZ6bTAgNGg4djJINnptMTAgMGgydjJoLTJ6bS02LTRoOHYyaC04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3Vycm91bmRTb3VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINFY2aDE2djEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjI5IDE1LjcxQTUuMjMzIDUuMjMzIDAgMCAxIDYuNzUgMTJjMC0xLjM1LjUyLTIuNjkgMS41My0zLjcyTDcuMDUgNy4wNUM1LjY4IDguNDEgNSAxMC4yMSA1IDEycy42OCAzLjU5IDIuMDYgNC45NGwxLjIzLTEuMjN6TTEyIDE1LjVjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVTMTMuOTMgOC41IDEyIDguNSA4LjUgMTAuMDcgOC41IDEyczEuNTcgMy41IDMuNSAzLjV6bTAtNWMuODMgMCAxLjUuNjcgMS41IDEuNXMtLjY3IDEuNS0xLjUgMS41LTEuNS0uNjctMS41LTEuNS42Ny0xLjUgMS41LTEuNXpNMTUuNzIgMTUuNzJsMS4yMyAxLjIzQzE4LjMyIDE1LjU5IDE5IDEzLjc5IDE5IDEycy0uNjgtMy41OS0yLjA2LTQuOTRsLTEuMjMgMS4yM0E1LjIzMyA1LjIzMyAwIDAgMSAxNy4yNSAxMmMwIDEuMzUtLjUyIDIuNjktMS41MyAzLjcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlkZW9DYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMC41VjdjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMXYxMGMwIC41NS40NSAxIDEgMWgxMmMuNTUgMCAxLS40NSAxLTF2LTMuNWw0IDR2LTExbC00IDR6TTE1IDE2SDVWOGgxMHY4em0tNi0xaDJ2LTJoMnYtMmgtMlY5SDl2Mkg3djJoMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpZGVvRmlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDJINmMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY4bC02LTZ6TTYgMjBWNGg3djVoNXYxMUg2em04LTYgMi0xLjA2djQuMTJMMTQgMTZ2MWMwIC41NS0uNDUgMS0xIDFIOWMtLjU1IDAtMS0uNDUtMS0xdi00YzAtLjU1LjQ1LTEgMS0xaDRjLjU1IDAgMSAuNDUgMSAxdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWRlb0xhYmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxM0gzVjVoMTh2MTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWRlb0xpYnJhcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2em0xNi00SDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNEg4VjRoMTJ2MTJ6TTEyIDUuNXY5bDYtNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlkZW9TZXR0aW5ncyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNmgxOHY1aDJWNmMwLTEuMS0uOS0yLTItMkgzYy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDl2LTJIM1Y2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxMiA5IDh2OHpNMjIuNzEgMTguNDNjLjAzLS4yOS4wNC0uNTguMDEtLjg2bDEuMDctLjg1Yy4xLS4wOC4xMi0uMjEuMDYtLjMybC0xLjAzLTEuNzljLS4wNi0uMTEtLjE5LS4xNS0uMzEtLjExbC0xLjI4LjVhMy40NCAzLjQ0IDAgMCAwLS43NS0uNDJsLS4yLTEuMzZhLjI0OS4yNDkgMCAwIDAtLjI1LS4yMmgtMi4wN2MtLjEyIDAtLjIzLjA5LS4yNS4yMWwtLjIgMS4zNmMtLjI2LjExLS41MS4yNi0uNzQuNDJsLTEuMjgtLjVjLS4xMi0uMDUtLjI1IDAtLjMxLjExbC0xLjAzIDEuNzljLS4wNi4xMS0uMDQuMjQuMDYuMzJsMS4wNy44NmMtLjAzLjI5LS4wNC41OC0uMDEuODZsLTEuMDcuODVjLS4xLjA4LS4xMi4yMS0uMDYuMzJsMS4wMyAxLjc5Yy4wNi4xMS4xOS4xNS4zMS4xMWwxLjI3LS41Yy4yMy4xNy40OC4zMS43NS40MmwuMiAxLjM2Yy4wMi4xMi4xMi4yMS4yNS4yMWgyLjA3Yy4xMiAwIC4yMy0uMDkuMjUtLjIxbC4yLTEuMzZjLjI2LS4xMS41MS0uMjYuNzQtLjQybDEuMjguNWMuMTIuMDUuMjUgMCAuMzEtLjExbDEuMDMtMS43OWMuMDYtLjExLjA0LS4yNC0uMDYtLjMybC0xLjA2LS44NXpNMTkgMTkuNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWRlb2NhbU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOS41NiA4LTItMi00LjE1LTQuMTRMMiAzLjI3IDQuNzMgNkg0Yy0uNTUgMC0xIC40NS0xIDF2MTBjMCAuNTUuNDUgMSAxIDFoMTJjLjIxIDAgLjM5LS4wOC41NS0uMThMMTkuNzMgMjFsMS40MS0xLjQxLTguODYtOC44Nkw5LjU2IDh6TTUgMTZWOGgxLjczbDggOEg1em0xMC04djIuNjFsNiA2VjYuNWwtNCA0VjdjMC0uNTUtLjQ1LTEtMS0xaC01LjYxbDIgMkgxNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpZGVvY2FtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA4djhINVY4aDEwbTEtMkg0Yy0uNTUgMC0xIC40NS0xIDF2MTBjMCAuNTUuNDUgMSAxIDFoMTJjLjU1IDAgMS0uNDUgMS0xdi0zLjVsNCA0di0xMWwtNCA0VjdjMC0uNTUtLjQ1LTEtMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVm9sdW1lRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgNy45N3Y4LjA1YzEuNDgtLjczIDIuNS0yLjI1IDIuNS00LjAyQTQuNSA0LjUgMCAwIDAgMTYgNy45N3pNNSA5djZoNGw1IDVWNEw5IDlINXptNy0uMTd2Ni4zNEw5LjgzIDEzSDd2LTJoMi44M0wxMiA4LjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVm9sdW1lTXV0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgOC44M3Y2LjM0TDExLjgzIDEzSDl2LTJoMi44M0wxNCA4LjgzTTE2IDRsLTUgNUg3djZoNGw1IDVWNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZvbHVtZU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC4zNCAyLjkzIDIuOTMgNC4zNCA3LjI5IDguNyA3IDlIM3Y2aDRsNSA1di02LjU5bDQuMTggNC4xOGMtLjY1LjQ5LTEuMzguODgtMi4xOCAxLjExdjIuMDZhOC45NCA4Ljk0IDAgMCAwIDMuNjEtMS43NWwyLjA1IDIuMDUgMS40MS0xLjQxTDQuMzQgMi45M3pNMTAgMTUuMTcgNy44MyAxM0g1di0yaDIuODNsLjg4LS44OEwxMCAxMS40MXYzLjc2ek0xOSAxMmMwIC44Mi0uMTUgMS42MS0uNDEgMi4zNGwxLjUzIDEuNTNjLjU2LTEuMTcuODgtMi40OC44OC0zLjg3IDAtNC4yOC0yLjk5LTcuODYtNy04Ljc3djIuMDZjMi44OS44NiA1IDMuNTQgNSA2Ljcxem0tNy04LTEuODggMS44OEwxMiA3Ljc2em00LjUgOEE0LjUgNC41IDAgMCAwIDE0IDcuOTd2MS43OWwyLjQ4IDIuNDhjLjAxLS4wOC4wMi0uMTYuMDItLjI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVm9sdW1lVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgOXY2aDRsNSA1VjRMNyA5SDN6bTctLjE3djYuMzRMNy44MyAxM0g1di0yaDIuODNMMTAgOC44M3pNMTYuNSAxMkE0LjUgNC41IDAgMCAwIDE0IDcuOTd2OC4wNWMxLjQ4LS43MyAyLjUtMi4yNSAyLjUtNC4wMnpNMTQgMy4yM3YyLjA2YzIuODkuODYgNSAzLjU0IDUgNi43MXMtMi4xMSA1Ljg1LTUgNi43MXYyLjA2YzQuMDEtLjkxIDctNC40OSA3LTguNzcgMC00LjI4LTIuOTktNy44Ni03LTguNzd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXZWJBc3NldE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuODMgNEgyMGEyIDIgMCAwIDEgMiAydjEyYzAgLjM0LS4wOS42Ni0uMjMuOTRMMjAgMTcuMTdWOGgtOS4xN2wtNC00em0xMy42NiAxOS4zMUwxNy4xNyAyMEg0YTIgMiAwIDAgMS0yLTJWNmMwLS4zNC4wOC0uNjYuMjMtLjk0TC42OSAzLjUxIDIuMSAyLjFsMTkuOCAxOS44LTEuNDEgMS40MXpNMTUuMTcgMThsLTEwLTEwSDR2MTBoMTEuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXZWJBc3NldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNEg1YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2YTIgMiAwIDAgMC0yLTJ6bTAgMTRINVY4aDE0djEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2ViIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiZ1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfV19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6TTQgOWgxMC41djMuNUg0Vjl6bTAgNS41aDEwLjVWMThINHYtMy41ek0yMCAxOGgtMy41VjlIMjB2OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTNQIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0LjAxYy0xLjEgMC0yIC45LTIgMkwyIDIybDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDUuMTdMNCAxNy4xN1Y0aDE2djEyem0tOC02YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptNCAzLjQzYzAtLjgxLS40OC0xLjUzLTEuMjItMS44NWE2Ljk1IDYuOTUgMCAwIDAtNS41NiAwQTIuMDEgMi4wMSAwIDAgMCA4IDEzLjQzVjE0aDh2LS41N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZEljQ2FsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTUuNDVjLTEuMjUgMC0yLjQ1LS4yLTMuNTctLjU3LS4xLS4wMy0uMjEtLjA1LS4zMS0uMDUtLjI2IDAtLjUxLjEtLjcxLjI5bC0yLjIgMi4yYTE1LjA0NSAxNS4wNDUgMCAwIDEtNi41OS02LjU5bDIuMi0yLjIxYS45Ni45NiAwIDAgMCAuMjUtMSAxMS4zNiAxMS4zNiAwIDAgMS0uNTctMy41N2MwLS41NS0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxIDAgOS4zOSA3LjYxIDE3IDE3IDE3IC41NSAwIDEtLjQ1IDEtMXYtMy41YzAtLjU1LS40NS0xLTEtMXpNNS4wMyA0Ljk1aDEuNWMuMDcuODguMjIgMS43NS40NSAyLjU4bC0xLjIgMS4yMWMtLjQtMS4yMS0uNjYtMi40Ny0uNzUtMy43OXpNMTkgMTguOTJjLTEuMzItLjA5LTIuNi0uMzUtMy44LS43NmwxLjItMS4yYy44NS4yNCAxLjcyLjM5IDIuNi40NXYxLjUxek0xOCA1Ljk1di0zaC0ydjNoLTN2MmgzdjNoMnYtM2gzdi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWx0ZXJuYXRlRW1haWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEuOTVjLTUuNTIgMC0xMCA0LjQ4LTEwIDEwczQuNDggMTAgMTAgMTBoNXYtMmgtNWMtNC4zNCAwLTgtMy42Ni04LThzMy42Ni04IDgtOCA4IDMuNjYgOCA4djEuNDNjMCAuNzktLjcxIDEuNTctMS41IDEuNTdzLTEuNS0uNzgtMS41LTEuNTd2LTEuNDNjMC0yLjc2LTIuMjQtNS01LTVzLTUgMi4yNC01IDUgMi4yNCA1IDUgNWMxLjM4IDAgMi42NC0uNTYgMy41NC0xLjQ3LjY1Ljg5IDEuNzcgMS40NyAyLjk2IDEuNDcgMS45NyAwIDMuNS0xLjYgMy41LTMuNTd2LTEuNDNjMC01LjUyLTQuNDgtMTAtMTAtMTB6bTAgMTNjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXBwUmVnaXN0cmF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgNGg0djRoLTR6TTQgMTZoNHY0SDR6TTQgMTBoNHY0SDR6TTQgNGg0djRINHpNMTYgNGg0djRoLTR6TTExIDE3Ljg2VjIwaDIuMWw1Ljk4LTUuOTctMi4xMi0yLjEyek0xNCAxMi4wM1YxMGgtNHY0aDIuMDN6TTIwLjg1IDExLjU2bC0xLjQxLTEuNDFjLS4yLS4yLS41MS0uMi0uNzEgMGwtMS4wNiAxLjA2IDIuMTIgMi4xMiAxLjA2LTEuMDZjLjItLjIuMi0uNTEgMC0uNzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCdXNpbmVzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgN1YzSDJ2MThoMjBWN0gxMnpNNiAxOUg0di0yaDJ2MnptMC00SDR2LTJoMnYyem0wLTRINFY5aDJ2MnptMC00SDRWNWgydjJ6bTQgMTJIOHYtMmgydjJ6bTAtNEg4di0yaDJ2MnptMC00SDhWOWgydjJ6bTAtNEg4VjVoMnYyem0xMCAxMmgtOHYtMmgydi0yaC0ydi0yaDJ2LTJoLTJWOWg4djEwem0tMi04aC0ydjJoMnYtMnptMCA0aC0ydjJoMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbGxFbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjU5IDEwLjUyYzEuMDUuNTEgMi4wNCAxLjE1IDIuOTYgMS45MWwtMS4wNyAxLjA3Yy0uNTgtLjQ3LTEuMjEtLjg5LTEuODgtMS4yN3YtMS43MW0tMTMuMiAwdjEuN2MtLjY1LjM3LTEuMjguNzktMS44NyAxLjI3bC0xLjA3LTEuMDdjLjkxLS43NSAxLjktMS4zOCAyLjk0LTEuOU0xMiA3QzcuNDYgNyAzLjM0IDguNzguMjkgMTEuNjdjLS4xOC4xOC0uMjkuNDMtLjI5Ljcxcy4xMS41My4yOS43bDIuNDggMi40OGMuMTguMTguNDMuMjkuNzEuMjkuMjcgMCAuNTItLjEuNy0uMjguNzktLjczIDEuNjgtMS4zNiAyLjY2LTEuODUuMzMtLjE2LjU2LS41MS41Ni0uOXYtMy4xQzguODUgOS4yNSAxMC40IDkgMTIgOXMzLjE1LjI1IDQuNTkuNzN2My4xYzAgLjQuMjMuNzQuNTYuOS45OC40OSAxLjg4IDEuMTEgMi42NyAxLjg1LjE4LjE3LjQzLjI4LjcuMjguMjggMCAuNTMtLjExLjcxLS4yOWwyLjQ4LTIuNDhjLjE4LS4xOC4yOS0uNDMuMjktLjcxcy0uMTEtLjUzLS4yOS0uNzFBMTYuOTcxIDE2Ljk3MSAwIDAgMCAxMiA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FsbE1hZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNXYyaDYuNTlMNCAxOC41OSA1LjQxIDIwIDE3IDguNDFWMTVoMlY1SDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYWxsTWVyZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDIwLjQxIDE4LjQxIDE5IDE1IDE1LjU5IDEzLjU5IDE3IDE3IDIwLjQxek03LjUgOEgxMXY1LjU5TDUuNTkgMTkgNyAyMC40MWw2LTZWOGgzLjVMMTIgMy41IDcuNSA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FsbE1pc3NlZE91dGdvaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMyA4LjQxIDkgOSA3LTdWMTVoMlY3aC04djJoNC41OUwxMiAxNC41OSA0LjQxIDcgMyA4LjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FsbE1pc3NlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuNTkgNyAxMiAxNC41OSA2LjQxIDlIMTFWN0gzdjhoMnYtNC41OWw3IDcgOS05TDE5LjU5IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYWxsUmVjZWl2ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDUuNDEgMTguNTkgNCA3IDE1LjU5VjlINXYxMGgxMHYtMkg4LjQxTDIwIDUuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYWxsU3BsaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0IDQgMi4yOSAyLjI5LTIuODggMi44OCAxLjQyIDEuNDIgMi44OC0yLjg4TDIwIDEwVjRoLTZ6bS00IDBINHY2bDIuMjktMi4yOSA0LjcxIDQuN1YyMGgydi04LjQxbC01LjI5LTUuM0wxMCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41NCA1Yy4wNi44OS4yMSAxLjc2LjQ1IDIuNTlsLTEuMiAxLjJjLS40MS0xLjItLjY3LTIuNDctLjc2LTMuNzloMS41MW05Ljg2IDEyLjAyYy44NS4yNCAxLjcyLjM5IDIuNi40NXYxLjQ5Yy0xLjMyLS4wOS0yLjU5LS4zNS0zLjgtLjc1bDEuMi0xLjE5TTcuNSAzSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNDljMC0uNTUtLjQ1LTEtMS0xLTEuMjQgMC0yLjQ1LS4yLTMuNTctLjU3YS44NC44NCAwIDAgMC0uMzEtLjA1Yy0uMjYgMC0uNTEuMS0uNzEuMjlsLTIuMiAyLjJhMTUuMTQ5IDE1LjE0OSAwIDAgMS02LjU5LTYuNTlsMi4yLTIuMmMuMjgtLjI4LjM2LS42Ny4yNS0xLjAyQTExLjM2IDExLjM2IDAgMCAxIDguNSA0YzAtLjU1LS40NS0xLTEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbmNlbFByZXNlbnRhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZIM1Y1aDE4djE0ek05LjQxIDE1Ljk1IDEyIDEzLjM2bDIuNTkgMi41OUwxNiAxNC41NGwtMi41OS0yLjU5TDE2IDkuMzZsLTEuNDEtMS40MUwxMiAxMC41NCA5LjQxIDcuOTUgOCA5LjM2bDIuNTkgMi41OUw4IDE0LjU0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2VsbFRvd2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNy4zIDE0LjcgMS4yLTEuMmMtMS0xLTEuNS0yLjMtMS41LTMuNSAwLTEuMy41LTIuNiAxLjUtMy41TDcuMyA1LjNjLTEuMyAxLjMtMiAzLTIgNC43cy43IDMuNCAyIDQuN3pNMTkuMSAyLjlsLTEuMiAxLjJjMS42IDEuNiAyLjQgMy44IDIuNCA1LjkgMCAyLjEtLjggNC4zLTIuNCA1LjlsMS4yIDEuMmMyLTIgMi45LTQuNSAyLjktNy4xIDAtMi42LTEtNS4xLTIuOS03LjF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMSA0LjEgNC45IDIuOUMzIDQuOSAyIDcuNCAyIDEwYzAgMi42IDEgNS4xIDIuOSA3LjFsMS4yLTEuMmMtMS42LTEuNi0yLjQtMy44LTIuNC01LjkgMC0yLjEuOC00LjMgMi40LTUuOXpNMTYuNyAxNC43YzEuMy0xLjMgMi0zIDItNC43LS4xLTEuNy0uNy0zLjQtMi00LjdsLTEuMiAxLjJjMSAxIDEuNSAyLjMgMS41IDMuNSAwIDEuMy0uNSAyLjYtMS41IDMuNWwxLjIgMS4yek0xNC41IDEwYTIuNSAyLjUgMCAwIDAtNSAwYzAgLjc2LjM0IDEuNDIuODcgMS44OEw3IDIyaDJsLjY3LTJoNC42N2wuNjYgMmgybC0zLjM3LTEwLjEyYy41My0uNDYuODctMS4xMi44Ny0xLjg4em0tNC4xNyA4TDEyIDEzbDEuNjcgNWgtMy4zNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNlbGxXaWZpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAyMmgxNlY1Ljk3TDYgMjJ6bTE0LTJoLTJ2LTcuMjJsMi0yVjIwek01LjIyIDcuMjIgMy45MyA1LjkzYzMuOS0zLjkxIDEwLjI0LTMuOTEgMTQuMTUgMGwtMS4yOSAxLjI5Yy0zLjE5LTMuMTktOC4zOC0zLjE5LTExLjU3IDB6bTcuNzEgMy44NUwxMSAxM2wtMS45My0xLjkzYTIuNzQgMi43NCAwIDAgMSAzLjg2IDB6bTEuMjktMS4yOGMtMS43OC0xLjc3LTQuNjYtMS43Ny02LjQzIDBMNi41IDguNWE2LjM3NCA2LjM3NCAwIDAgMSA5IDBsLTEuMjggMS4yOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNoYXRCdWJibGVPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE4bDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDZsLTIgMlY0aDE2djEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2hhdEJ1YmJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxOGw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNoYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNGgxNnYxMkg1LjE3TDQgMTcuMTdWNG0wLTJjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAyMmw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMkg0em0yIDEwaDh2Mkg2di0yem0wLTNoMTJ2Mkg2Vjl6bTAtM2gxMnYySDZWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNsZWFyQWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDEzaDE0di0ySDV2MnptLTIgNGgxNHYtMkgzdjJ6TTcgN3YyaDE0VjdIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvUHJlc2VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2OGgyVjVoMTh2MTZjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTBjMC0yLjIxLTEuNzktNC00LTRzLTQgMS43OS00IDQgMS43OSA0IDQgNCA0LTEuNzkgNC00em0tNiAwYzAtMS4xLjktMiAyLTJzMiAuOSAyIDItLjkgMi0yIDItMi0uOS0yLTJ6TTE1LjM5IDE2LjU2QzEzLjcxIDE1LjcgMTEuNTMgMTUgOSAxNXMtNC43MS43LTYuMzkgMS41NkEyLjk3IDIuOTcgMCAwIDAgMSAxOS4yMlYyMmgxNnYtMi43OGMwLTEuMTItLjYxLTIuMTUtMS42MS0yLjY2ek0xNSAyMEgzYzAtLjcyLS4xLTEuMzQuNTItMS42NkM0LjcxIDE3LjczIDYuNjMgMTcgOSAxN2MyLjM3IDAgNC4yOS43MyA1LjQ4IDEuMzQuNjMuMzIuNTIuOTUuNTIgMS42NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbW1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjk5IDRjMC0xLjEtLjg5LTItMS45OS0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTRsNCA0LS4wMS0xOHpNMjAgNHYxMy4xN0wxOC44MyAxNkg0VjRoMTZ6TTYgMTJoMTJ2Mkg2em0wLTNoMTJ2Mkg2em0wLTNoMTJ2Mkg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29tbWVudHNEaXNhYmxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjgzIDE2SDIwVjRINi44M2wtMi0ySDIwYzEuMSAwIDIgLjkgMiAydjE1LjE3TDE4LjgzIDE2ek0xOCA2SDguODNsMiAySDE4VjZ6bTAgM2gtNi4xN2wyIDJIMThWOXptMCA1di0yaC0zLjE3bDIgMkgxOHptMy45IDcuOS0xLjQxIDEuNDFMMTUuMTcgMThINGMtMS4xIDAtMi0uOS0yLTJWNC44M0wuNjkgMy41MSAyLjEgMi4xbDE5LjggMTkuOHpNMTMuMTcgMTZsLTItMkg2di0yaDMuMTdsLTEtMUg2VjloLjE3TDQgNi44M1YxNmg5LjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29udGFjdEVtZXJnZW5jeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTRjMS42NSAwIDMtMS4zNSAzLTNzLTEuMzUtMy0zLTMtMyAxLjM1LTMgMyAxLjM1IDMgMyAzem0wLTRjLjU0IDAgMSAuNDYgMSAxcy0uNDYgMS0xIDEtMS0uNDYtMS0xIC40Ni0xIDEtMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgM0gyQy45IDMgMCAzLjkgMCA1djE0YzAgMS4xLjkgMiAyIDJoMjBjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjQgNWMwLTEuMS0uOS0yLTItMnpNNC41NCAxOWMxLjEtMS4yMiAyLjY5LTIgNC40Ni0yczMuMzYuNzggNC40NiAySDQuNTR6TTIyIDE5aC02LjA4Yy0xLjM4LTIuMzktMy45Ni00LTYuOTItNHMtNS41NCAxLjYxLTYuOTIgNEgyVjVoMjB2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1Ljc4IDExLjE1IDEuNDctLjg1VjEyaDEuNXYtMS43bDEuNDcuODUuNzUtMS4zTDE5LjUgOWwxLjQ3LS44NS0uNzUtMS4zLTEuNDcuODVWNmgtMS41djEuN2wtMS40Ny0uODUtLjc1IDEuM0wxNi41IDlsLTEuNDcuODV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb250YWN0TWFpbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDNIMkMuOSAzIDAgMy45IDAgNXYxNGMwIDEuMS45IDIgMiAyaDIwYzEuMSAwIDEuOTktLjkgMS45OS0yTDI0IDVjMC0xLjEtLjktMi0yLTJ6bTAgMTZIMlY1aDIwdjE0ek0yMSA2aC03djVoN1Y2em0tMSAyLTIuNSAxLjc1TDE1IDhWN2wyLjUgMS43NUwyMCA3djF6TTkgMTJjMS42NSAwIDMtMS4zNSAzLTNzLTEuMzUtMy0zLTMtMyAxLjM1LTMgMyAxLjM1IDMgMyAzem0wLTRjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptNiA4LjU5YzAtMi41LTMuOTctMy41OC02LTMuNThzLTYgMS4wOC02IDMuNThWMThoMTJ2LTEuNDF6TTUuNDggMTZjLjc0LS41IDIuMjItMSAzLjUyLTFzMi43Ny40OSAzLjUyIDFINS40OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbnRhY3RQaG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgM0gyQy45IDMgMCAzLjkgMCA1djE0YzAgMS4xLjkgMiAyIDJoMjBjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjQgNWMwLTEuMS0uOS0yLTItMnptMCAxNkgyVjVoMjB2MTR6bS0yLjk5LTEuMDFMMjEgMTZsLTEuNTEtMmgtMS42NGMtLjIyLS42My0uMzUtMS4zLS4zNS0ycy4xMy0xLjM3LjM1LTJoMS42NEwyMSA4bC0xLjk5LTEuOTlBNy40NzQgNy40NzQgMCAwIDAgMTYuMjggMTBjLS4xOC42NC0uMjggMS4zMS0uMjggMnMuMSAxLjM2LjI4IDJhNy41MTIgNy41MTIgMCAwIDAgMi43MyAzLjk5ek05IDEyYzEuNjUgMCAzLTEuMzUgMy0zcy0xLjM1LTMtMy0zLTMgMS4zNS0zIDMgMS4zNSAzIDMgM3ptMC00Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTYgOC41OWMwLTIuNS0zLjk3LTMuNTgtNi0zLjU4cy02IDEuMDgtNiAzLjU4VjE4aDEydi0xLjQxek01LjQ4IDE2Yy43NC0uNSAyLjIyLTEgMy41Mi0xczIuNzcuNDkgMy41MiAxSDUuNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb250YWN0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINFY2aDE2djEyek00IDBoMTZ2Mkg0em0wIDIyaDE2djJINHptOC0xMGEyLjUgMi41IDAgMCAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNXptMC0zLjVjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptNSA3LjQ5QzE3IDEzLjkgMTMuNjkgMTMgMTIgMTNzLTUgLjktNSAyLjk5VjE3aDEwdi0xLjAxem0tOC4xOS0uNDljLjYxLS41MiAyLjAzLTEgMy4xOS0xIDEuMTcgMCAyLjU5LjQ4IDMuMiAxSDguODF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEZXNrdG9wQWNjZXNzRGlzYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuNDEgMS42OSAwIDMuMWwxIC45OVYxNmMwIDEuMS44OSAyIDEuOTkgMkgxMHYySDh2Mmg4di0yaC0ydi0yaC45bDYgNiAxLjQxLTEuNDEtMjAuOS0yMC45ek0yLjk5IDE2VjYuMDlMMTIuOSAxNkgyLjk5ek00LjU1IDJsMiAySDIxdjEyaC0yLjQ1bDIgMmguNDRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMkg0LjU1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlhbGVyU2lwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAzaDF2NWgtMXptLTEgMmgtMlY0aDJWM2gtM3YzaDJ2MWgtMnYxaDN6bTMtMnY1aDFWNmgyVjNoLTN6bTIgMmgtMVY0aDF2MXptMCAxMC41Yy0xLjI1IDAtMi40NS0uMi0zLjU3LS41N2EuOTg0Ljk4NCAwIDAgMC0xLjAxLjI0bC0yLjIgMi4yYTE1LjA0NSAxNS4wNDUgMCAwIDEtNi41OS02LjU5bDIuMi0yLjIxYy4yNy0uMjYuMzUtLjY1LjI0LTFBMTEuMzYgMTEuMzYgMCAwIDEgOC41IDRjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNWMwLS41NS0uNDUtMS0xLTF6TTUuMDMgNWgxLjVjLjA3Ljg4LjIyIDEuNzUuNDYgMi41OUw1Ljc5IDguOGMtLjQxLTEuMjEtLjY3LTIuNDgtLjc2LTMuOHpNMTkgMTguOTdjLTEuMzItLjA5LTIuNTktLjM1LTMuOC0uNzVsMS4yLTEuMmMuODUuMjQgMS43MS4zOSAyLjU5LjQ1djEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURpYWxwYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE5Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnpNNiAxYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMCA2Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMCA2Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMTItOGMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bS02IDhjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem02IDBjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0wLTZjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0tNiAwYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMC02Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvY3VtZW50U2Nhbm5lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgM0g0djNIMlYxaDV2MnptMTUgM1YxaC01djJoM3YzaDJ6TTcgMjFINHYtM0gydjVoNXYtMnptMTMtM3YzaC0zdjJoNXYtNWgtMnpNMTcgNkg3djEyaDEwVjZ6bTIgMTJjMCAxLjEtLjkgMi0yIDJIN2MtMS4xIDAtMi0uOS0yLTJWNmMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAydjEyek0xNSA4SDl2Mmg2Vjh6bTAgM0g5djJoNnYtMnptMCAzSDl2Mmg2di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG9tYWluRGlzYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuNDEgMS42OSAwIDMuMWwyIDJWMjFoMTUuOWwzIDMgMS40MS0xLjQxLTIwLjktMjAuOXpNNiAxOUg0di0yaDJ2MnptMC00SDR2LTJoMnYyem0tMi00VjloMnYySDR6bTYgOEg4di0yaDJ2MnptLTItNHYtMmgydjJIOHptNCA0di0yaDEuOWwyIDJIMTJ6TTggNWgydjJoLS40NUwxMiA5LjQ1VjloOHY4LjQ1bDIgMlY3SDEyVjNINS41NUw4IDUuNDV6bTggNmgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEb21haW5WZXJpZmljYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNi42IDEwLjg4LTEuNDItMS40Mi00LjI0IDQuMjUtMi4xMi0yLjEzTDcuNCAxM2wzLjU0IDMuNTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDRINWEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNmEyIDIgMCAwIDAtMi0yem0wIDE0SDVWOGgxNHYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUR1byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMmgtOEM2LjM4IDIgMiA2LjY2IDIgMTIuMjggMiAxNy41IDYuNDkgMjIgMTEuNzIgMjIgMTcuMzkgMjIgMjIgMTcuNjIgMjIgMTJWNGMwLTEuMS0uOS0yLTItMnptLTMgMTMtMy0ydjJIN1Y5aDd2MmwzLTJ2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVtYWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA2YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNnptLTIgMC04IDUtOC01aDE2em0wIDEySDRWOGw4IDUgOC01djEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ydW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDR2N0g1LjE3TDQgMTIuMTdWNGgxMW0xLTJIM2MtLjU1IDAtMSAuNDUtMSAxdjE0bDQtNGgxMGMuNTUgMCAxLS40NSAxLTFWM2MwLS41NS0uNDUtMS0xLTF6bTUgNGgtMnY5SDZ2MmMwIC41NS40NSAxIDEgMWgxMWw0IDRWN2MwLS41NS0uNDUtMS0xLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3J3YXJkVG9JbmJveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg5di0ySDRWOGw4IDUgOC01djVoMlY2YzAtMS4xLS45LTItMi0yem0tOCA3TDQgNmgxNmwtOCA1em03IDQgNCA0LTQgNHYtM2gtNHYtMmg0di0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSG91cmdsYXNzQm90dG9tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTggMjItLjAxLTZMMTQgMTJsMy45OS00LjAxTDE4IDJINnY2bDQgNC00IDMuOTlWMjJoMTJ6TTggNy41VjRoOHYzLjVsLTQgNC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIb3VyZ2xhc3NUb3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm02IDIgLjAxIDZMMTAgMTJsLTMuOTkgNC4wMUw2IDIyaDEydi02bC00LTQgNC0zLjk5VjJINnptMTAgMTQuNVYyMEg4di0zLjVsNC00IDQgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUh1YiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDYuNWEyLjk5NiAyLjk5NiAwIDAgMC0yLjk5IDMuMjFsLTIuMDMuNjhhNC40NjggNC40NjggMCAwIDAtMy4yMi0yLjMyVjUuOTFBMy4wMTggMy4wMTggMCAwIDAgMTUgM2MwLTEuNjYtMS4zNC0zLTMtM1M5IDEuMzQgOSAzYzAgMS40Ljk2IDIuNTcgMi4yNSAyLjkxdjIuMTZjLTEuNC4yMy0yLjU4IDEuMTEtMy4yMiAyLjMybC0yLjA0LS42OEM2IDkuNjQgNiA5LjU3IDYgOS41YzAtMS42Ni0xLjM0LTMtMy0zcy0zIDEuMzQtMyAzIDEuMzQgMyAzIDNjMS4wNiAwIDEuOTgtLjU1IDIuNTItMS4zN2wyLjAzLjY4Yy0uMiAxLjI5LjE3IDIuNjYgMS4wOSAzLjY5bC0xLjQxIDEuNzdDNi44NSAxNy4wOSA2LjQ0IDE3IDYgMTdjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtM2MwLS42OC0uMjItMS4zLS42LTEuOGwxLjQxLTEuNzdjMS4zNi43NiAzLjAyLjc1IDQuMzcgMGwxLjQxIDEuNzdjLS4zNy41LS41OSAxLjEyLS41OSAxLjggMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtMy0xLjM0LTMtMy0zYy0uNDQgMC0uODUuMDktMS4yMy4yNmwtMS40MS0xLjc3YTQuNDkgNC40OSAwIDAgMCAxLjA5LTMuNjlsMi4wMy0uNjhjLjUzLjgyIDEuNDYgMS4zNyAyLjUyIDEuMzcgMS42NiAwIDMtMS4zNCAzLTNTMjIuNjYgNi41IDIxIDYuNXptLTE4IDRjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpNNiAyMWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem01LTE4YzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMS0uNDUgMS0xIDEtMS0uNDUtMS0xem0xIDEyYTIuNSAyLjUgMCAwIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1em02IDRjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptMy04LjVjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUltcG9ydENvbnRhY3RzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNWMtMS4xMS0uMzUtMi4zMy0uNS0zLjUtLjUtMS45NSAwLTQuMDUuNC01LjUgMS41LTEuNDUtMS4xLTMuNTUtMS41LTUuNS0xLjVTMi40NSA0LjkgMSA2djE0LjY1YzAgLjI1LjI1LjUuNS41LjEgMCAuMTUtLjA1LjI1LS4wNUMzLjEgMjAuNDUgNS4wNSAyMCA2LjUgMjBjMS45NSAwIDQuMDUuNCA1LjUgMS41IDEuMzUtLjg1IDMuOC0xLjUgNS41LTEuNSAxLjY1IDAgMy4zNS4zIDQuNzUgMS4wNS4xLjA1LjE1LjA1LjI1LjA1LjI1IDAgLjUtLjI1LjUtLjVWNmMtLjYtLjQ1LTEuMjUtLjc1LTItMXptMCAxMy41Yy0xLjEtLjM1LTIuMy0uNS0zLjUtLjUtMS43IDAtNC4xNS42NS01LjUgMS41VjhjMS4zNS0uODUgMy44LTEuNSA1LjUtMS41IDEuMiAwIDIuNC4xNSAzLjUuNXYxMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW1wb3J0RXhwb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDMgNSA2Ljk5aDNWMTRoMlY2Ljk5aDNMOSAzem03IDE0LjAxVjEwaC0ydjcuMDFoLTNMMTUgMjFsNC0zLjk5aC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW52ZXJ0Q29sb3JzT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuMTkgMjEuMTkgMi44MSAyLjgxIDEuMzkgNC4yMmw0LjIgNC4yYTcuNzMgNy43MyAwIDAgMC0xLjYgNC43QzQgMTcuNDggNy41OCAyMSAxMiAyMWMxLjc1IDAgMy4zNi0uNTYgNC42Ny0xLjVsMy4xIDMuMSAxLjQyLTEuNDF6TTEyIDE5Yy0zLjMxIDAtNi0yLjYzLTYtNS44NyAwLTEuMTkuMzYtMi4zMiAxLjAyLTMuMjhMMTIgMTQuODNWMTl6TTguMzggNS41NiAxMiAybDUuNjUgNS41NkMxOS4xIDguOTkgMjAgMTAuOTYgMjAgMTMuMTNjMCAxLjE4LS4yNyAyLjI5LS43NCAzLjNMMTIgOS4xN1Y0LjgxTDkuOCA2Ljk3IDguMzggNS41NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUtleU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEwLjcgMTMuNTMtMS43MS0xLjcxYy4wMS4wNi4wMS4xMi4wMS4xOCAwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgLjktMiAyLTJjLjA2IDAgLjEyIDAgLjE4LjAxTDUuNDcgOC4zQzQuMDIgOC45IDMgMTAuMzMgMyAxMmMwIDIuMjEgMS43OSA0IDQgNCAxLjY3IDAgMy4xLTEuMDIgMy43LTIuNDd6bTEuNDkgMS40OUE2LjAxMiA2LjAxMiAwIDAgMSA3IDE4Yy0zLjMxIDAtNi0yLjY5LTYtNiAwLTIuMjEgMS4yLTQuMTUgMi45OC01LjE5TDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOCAxOC4zOC0xLjQxIDEuNDEtNy41OC03LjU4em00LjA3LTEuNTkgMS4yNC0uOTMgMS44MSAxLjM2TDIxLjE3IDEybC0xLTFoLTYuMzRsLTItMkgyMWwzIDMtNC41IDQuNS0uNjktLjUxLTIuNTUtMi41NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUtleSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDEwaC04LjM1QTUuOTkgNS45OSAwIDAgMCA3IDZjLTMuMzEgMC02IDIuNjktNiA2czIuNjkgNiA2IDZhNS45OSA1Ljk5IDAgMCAwIDUuNjUtNEgxM2wyIDIgMi0yIDIgMiA0LTQuMDRMMjEgMTB6TTcgMTVjLTEuNjUgMC0zLTEuMzUtMy0zczEuMzUtMyAzLTMgMyAxLjM1IDMgMy0xLjM1IDMtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGlzdEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgN2g2djJoLTZ6bTAgNGg2djJoLTZ6bTAgNGg2djJoLTZ6TTcgN2gydjJIN3ptMCA0aDJ2Mkg3em0wIDRoMnYySDd6TTIwLjEgM0gzLjljLS41IDAtLjkuNC0uOS45djE2LjJjMCAuNC40LjkuOS45aDE2LjJjLjQgMCAuOS0uNS45LS45VjMuOWMwLS41LS41LS45LS45LS45ek0xOSAxOUg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMaXZlSGVscCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg0bDMgMyAzLTNoNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE2aC00LjgzbC0uNTkuNTlMMTIgMjAuMTdsLTEuNTktMS41OS0uNTgtLjU4SDVWNGgxNHYxNHptLTgtM2gydjJoLTJ6bTEtOGMxLjEgMCAyIC45IDIgMiAwIDItMyAxLjc1LTMgNWgyYzAtMi4yNSAzLTIuNSAzLTUgMC0yLjIxLTEuNzktNC00LTRTOCA2Ljc5IDggOWgyYzAtMS4xLjktMiAyLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhdGlvbk9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNGMyLjc2IDAgNSAyLjI0IDUgNSAwIDEuMDYtLjM5IDIuMzItMSAzLjYybDEuNDkgMS40OUMxOC4zNyAxMi4zNiAxOSAxMC41NyAxOSA5YzAtMy44Ny0zLjEzLTctNy03LTEuODQgMC0zLjUuNzEtNC43NSAxLjg2bDEuNDMgMS40M0M5LjU2IDQuNSAxMC43MiA0IDEyIDR6bTAgMi41Yy0uNTkgMC0xLjEzLjIxLTEuNTYuNTZsMy41IDMuNWMuMzUtLjQzLjU2LS45Ny41Ni0xLjU2QTIuNSAyLjUgMCAwIDAgMTIgNi41ek0zLjQxIDIuODYgMiA0LjI3bDMuMTggMy4xOEM1LjA3IDcuOTUgNSA4LjQ3IDUgOWMwIDUuMjUgNyAxMyA3IDEzczEuNjctMS44NSAzLjM4LTQuMzVMMTguNzMgMjFsMS40MS0xLjQxTDMuNDEgMi44NnpNMTIgMTguODhjLTIuMDEtMi41OC00LjgtNi43NC00Ljk4LTkuNTlsNi45MiA2LjkyYy0uNjUuOTgtMS4zMyAxLjg5LTEuOTQgMi42N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2F0aW9uT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDOC4xMyAyIDUgNS4xMyA1IDljMCA1LjI1IDcgMTMgNyAxM3M3LTcuNzUgNy0xM2MwLTMuODctMy4xMy03LTctN3pNNyA5YzAtMi43NiAyLjI0LTUgNS01czUgMi4yNCA1IDVjMCAyLjg4LTIuODggNy4xOS01IDkuODhDOS45MiAxNi4yMSA3IDExLjg1IDcgOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjlcIixcInJcIjpcIjIuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWFpbExvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm00IDggOCA1IDgtNXYyaDJWNmMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxMnYtMkg0Vjh6bTE2LTItOCA1LTgtNWgxNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMgMTV2LTFjMC0xLjEtLjktMi0yLTJzLTIgLjktMiAydjFjLS41NSAwLTEgLjQ1LTEgMXYzYzAgLjU1LjQ1IDEgMSAxaDRjLjU1IDAgMS0uNDUgMS0xdi0zYzAtLjU1LS40NS0xLTEtMXptLTMgMHYtMWMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2MWgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1haWxPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINFY4bDggNSA4LTV2MTB6bS04LTdMNCA2aDE2bC04IDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNYXJrQ2hhdFJlYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxOEg2bC00IDRWNGMwLTEuMS45LTIgMi0yaDE2YzEuMSAwIDIgLjkgMiAydjdoLTJWNEg0djEyaDh2MnptMTEtMy42Ni0xLjQxLTEuNDEtNC4yNCA0LjI0LTIuMTItMi4xMi0xLjQxIDEuNDFMMTcuMzQgMjAgMjMgMTQuMzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNYXJrQ2hhdFVucmVhZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDYuOThWMTZjMCAxLjEtLjkgMi0yIDJINmwtNCA0VjRjMC0xLjEuOS0yIDItMmgxMC4xYy0uMDYuMzItLjEuNjYtLjEgMXMuMDQuNjguMSAxSDR2MTJoMTZWNy45Yy43NC0uMTUgMS40Mi0uNDggMi0uOTJ6TTE2IDNjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtMy0xLjM0LTMtMy0zLTMgMS4zNC0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNYXJrRW1haWxSZWFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmg4di0ySDRWOGw4IDUgOC01djVoMlY2YzAtMS4xLS45LTItMi0yem0tOCA3TDQgNmgxNmwtOCA1em01LjM0IDExLTMuNTQtMy41NCAxLjQxLTEuNDEgMi4xMiAyLjEyIDQuMjQtNC4yNEwyMyAxNi4zNCAxNy4zNCAyMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1hcmtFbWFpbFVucmVhZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDguOThWMThjMCAxLjEtLjkgMi0yIDJINGMtMS4xIDAtMi0uOS0yLTJsLjAxLTEyYzAtMS4xLjg5LTIgMS45OS0yaDEwLjFjLS4wNi4zMi0uMS42Ni0uMSAxcy4wNC42OC4xIDFINGw4IDUgMy42Ny0yLjI5Yy40Ny40MyAxLjAyLjc2IDEuNjMuOThMMTIgMTMgNCA4djEwaDE2VjkuOWMuNzQtLjE1IDEuNDItLjQ4IDItLjkyek0xNiA1YzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTMtMS4zNC0zLTMtMy0zIDEuMzQtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWFya1VucmVhZENoYXRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxNkg0VjRoMTAuMWE1IDUgMCAwIDEgMC0ySDRjLTEuMSAwLTIgLjktMiAydjE4bDQtNGgxNGMxLjEgMCAyLS45IDItMlY2Ljk4Yy0uNTguNDQtMS4yNi43Ny0yIC45MlYxNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxOVwiLFwiY3lcIjpcIjNcIixcInJcIjpcIjNcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxMmg4djJINnpNNiA5aDEydjJINnpNNiA4aDEydi0uMUE1LjAxMyA1LjAxMyAwIDAgMSAxNS4wMyA2SDZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1lc3NhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNGgxNnYxMkg1LjE3TDQgMTcuMTdWNG0wLTJjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAyMmw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMkg0em0yIDEwaDEydjJINnYtMnptMC0zaDEydjJINlY5em0wLTNoMTJ2Mkg2VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb2JpbGVTY3JlZW5TaGFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMUg3Yy0xLjEgMC0xLjk5Ljg1LTEuOTkgMS45NXYxOEM1LjAxIDIyLjA1IDUuOSAyMyA3IDIzaDEwYzEuMSAwIDItLjk1IDItMi4wNXYtMThDMTkgMS44NSAxOC4xIDEgMTcgMXptMCAxOEg3VjVoMTB2MTR6bS00LjItNS43NnYxLjc1TDE2IDEybC0zLjItMi45OHYxLjdjLTMuMTEuNDMtNC4zNSAyLjU2LTQuOCA0LjcgMS4xMS0xLjUgMi41OC0yLjE4IDQuOC0yLjE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW9yZVRpbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA4djZsNC43IDIuOS44LTEuMi00LTIuNFY4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy45MiAxMkE2Ljk1NyA2Ljk1NyAwIDAgMSAxMSAyMGMtMy45IDAtNy0zLjEtNy03czMuMS03IDctN2MuNyAwIDEuMzcuMSAyIC4yOVY0LjIzYy0uNjQtLjE1LTEuMzEtLjIzLTItLjIzLTUgMC05IDQtOSA5czQgOSA5IDlhOC45NjMgOC45NjMgMCAwIDAgOC45NC0xMGgtMi4wMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNVYyaC0ydjNoLTN2MmgzdjNoMlY3aDNWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5hdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuODIgMTNIMTF2LTJINi44MkM2LjQgOS44NCA1LjMgOSA0IDljLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDNjMS4zIDAgMi40LS44NCAyLjgyLTJ6TTQgMTNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjMgMTItNC0zdjJoLTQuMDVjLS41LTUuMDUtNC43Ni05LTkuOTUtOXYyYzQuNDIgMCA4IDMuNTggOCA4cy0zLjU4IDgtOCA4djJjNS4xOSAwIDkuNDUtMy45NSA5Ljk1LTlIMTl2Mmw0LTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb1NpbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjI2IDIxLjIxIDMuNzkgMy43NCAyLjM4IDUuMTVsMi43NCAyLjc0LS4xMi4xMlYxOWMwIDEuMS45IDIgMiAyaDEwYy4zNSAwIC42OC0uMS45Ny0uMjZsMS44OCAxLjg4IDEuNDEtMS40MXpNNyAxOVY5Ljc3TDE2LjIzIDE5SDd6bTMuODQtMTRIMTd2OS4xMWwyIDJWNWMwLTEuMS0uOS0yLTItMmgtNi45OUw3Ljk1IDUuMDZsMS40MSAxLjQxTDEwLjg0IDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQYXVzZVByZXNlbnRhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC44NS0yIDEuOTV2MTRjMCAxLjEuOSAyLjA1IDIgMi4wNWgxOGMxLjEgMCAyLS45NSAyLTIuMDV2LTE0QzIzIDMuODUgMjIuMSAzIDIxIDN6bTAgMTZIM1Y1aDE4djE0ek05IDhoMnY4SDl6bTQgMGgydjhoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXJzb25BZGREaXNhYmxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgNmMxLjEgMCAyIC45IDIgMmEyIDIgMCAwIDEtMS42NyAxLjk3bC0yLjMxLTIuMzFDMTMuMTkgNi43MiAxNC4wMSA2IDE1IDZtMC0yYy0yLjIxIDAtNCAxLjc5LTQgNCAwIC4xOC4wMy4zNS4wNS41MmwzLjQzIDMuNDNjLjE3LjAyLjM0LjA1LjUyLjA1IDIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00em0xLjY5IDEwLjE2TDIyLjUzIDIwSDIzdi0yYzAtMi4xNC0zLjU2LTMuNS02LjMxLTMuODR6bS0zLjY4IDEuOTdMMTQuODggMThIOWMuMDgtLjI0Ljg4LTEuMDEgMi45MS0xLjU3bDEuMS0uM00xLjQxIDEuNzEgMCAzLjEybDQgNFYxMEgxdjJoM3YzaDJ2LTNoMi44OGwyLjUxIDIuNTFDOS4xOSAxNS4xMSA3IDE2LjMgNyAxOHYyaDkuODhsNCA0IDEuNDEtMS40MUwxLjQxIDEuNzF6TTYgMTB2LS44OGwuODguODhINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlcnNvblNlYXJjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDEyYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptMC02YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnpNNCAxOGMuMjItLjcyIDMuMzEtMiA2LTIgMC0uNy4xMy0xLjM3LjM1LTEuOTlDNy42MiAxMy45MSAyIDE1LjI3IDIgMTh2Mmg5LjU0Yy0uNTItLjU4LS45My0xLjI1LTEuMTktMkg0ek0xOS40MyAxOC4wMmMuMzYtLjU5LjU3LTEuMjguNTctMi4wMiAwLTIuMjEtMS43OS00LTQtNHMtNCAxLjc5LTQgNCAxLjc5IDQgNCA0Yy43NCAwIDEuNDMtLjIyIDIuMDItLjU3TDIwLjU5IDIyIDIyIDIwLjU5Yy0xLjUtMS41LS43OS0uOC0yLjU3LTIuNTd6TTE2IDE4Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBob25lRGlzYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNy4zNCAxNC41NC0xLjQzLTEuNDNjLjU2LS43MyAxLjA1LTEuNSAxLjQ3LTIuMzJsLTIuMi0yLjJjLS4yOC0uMjgtLjM2LS42Ny0uMjUtMS4wMi4zNy0xLjEyLjU3LTIuMzIuNTctMy41NyAwLS41NS40NS0xIDEtMUgyMGMuNTUgMCAxIC40NSAxIDEgMCAzLjk4LTEuMzcgNy42NC0zLjY2IDEwLjU0em0tMi44MiAyLjgxQTE2Ljg4NCAxNi44ODQgMCAwIDEgNCAyMWMtLjU1IDAtMS0uNDUtMS0xdi0zLjQ5YzAtLjU1LjQ1LTEgMS0xIDEuMjQgMCAyLjQ1LS4yIDMuNTctLjU3LjEtLjA0LjIxLS4wNS4zMS0uMDUuMjYgMCAuNTEuMS43MS4yOWwyLjIgMi4yYy44MS0uNDIgMS41OC0uOSAyLjMtMS40NkwxLjM5IDQuMjJsMS40Mi0xLjQxTDIxLjE5IDIxLjJsLTEuNDEgMS40MS01LjI2LTUuMjZ6bS02LjkyLS4zM2MtLjg1LjI0LTEuNzIuMzktMi42LjQ1djEuNDljMS4zMi0uMDkgMi41OS0uMzUgMy44LS43NWwtMS4yLTEuMTl6TTE3LjQ2IDVjLS4wNi44OS0uMjEgMS43Ni0uNDUgMi41OWwxLjIgMS4yYy40MS0xLjIuNjctMi40Ny43Ni0zLjc5aC0xLjUxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvbmVFbmFibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNDYgNWMtLjA2Ljg5LS4yMSAxLjc2LS40NSAyLjU5bDEuMiAxLjJjLjQxLTEuMi42Ny0yLjQ3Ljc2LTMuNzloLTEuNTF6TTcuNiAxNy4wMmMtLjg1LjI0LTEuNzIuMzktMi42LjQ1djEuNDljMS4zMi0uMDkgMi41OS0uMzUgMy44LS43NWwtMS4yLTEuMTl6TTE2LjUgM0gyMGMuNTUgMCAxIC40NSAxIDEgMCA5LjM5LTcuNjEgMTctMTcgMTctLjU1IDAtMS0uNDUtMS0xdi0zLjQ5YzAtLjU1LjQ1LTEgMS0xIDEuMjQgMCAyLjQ1LS4yIDMuNTctLjU3LjEtLjA0LjIxLS4wNS4zMS0uMDUuMjYgMCAuNTEuMS43MS4yOWwyLjIgMi4yYzIuODMtMS40NSA1LjE1LTMuNzYgNi41OS02LjU5bC0yLjItMi4yYy0uMjgtLjI4LS4zNi0uNjctLjI1LTEuMDIuMzctMS4xMi41Ny0yLjMyLjU3LTMuNTcgMC0uNTUuNDUtMSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41NCA1Yy4wNi44OS4yMSAxLjc2LjQ1IDIuNTlsLTEuMiAxLjJjLS40MS0xLjItLjY3LTIuNDctLjc2LTMuNzloMS41MW05Ljg2IDEyLjAyYy44NS4yNCAxLjcyLjM5IDIuNi40NXYxLjQ5Yy0xLjMyLS4wOS0yLjU5LS4zNS0zLjgtLjc1bDEuMi0xLjE5TTcuNSAzSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNDljMC0uNTUtLjQ1LTEtMS0xLTEuMjQgMC0yLjQ1LS4yLTMuNTctLjU3YS44NC44NCAwIDAgMC0uMzEtLjA1Yy0uMjYgMC0uNTEuMS0uNzEuMjlsLTIuMiAyLjJhMTUuMTQ5IDE1LjE0OSAwIDAgMS02LjU5LTYuNTlsMi4yLTIuMmMuMjgtLjI4LjM2LS42Ny4yNS0xLjAyQTExLjM2IDExLjM2IDAgMCAxIDguNSA0YzAtLjU1LS40NS0xLTEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBob25lbGlua0VyYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMyA4LjItMS0xLTQgNC00LTQtMSAxIDQgNC00IDQgMSAxIDQtNCA0IDQgMS0xLTQtNCA0LTR6TTE5IDFIOWMtMS4xIDAtMiAuOS0yIDJ2M2gyVjRoMTB2MTZIOXYtMkg3djNjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvbmVsaW5rTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMUg5Yy0xLjEgMC0yIC45LTIgMnYzaDJWNGgxMHYxNkg5di0ySDd2M2MwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bS04LjIgMTBWOS41QzEwLjggOC4xIDkuNCA3IDggN1M1LjIgOC4xIDUuMiA5LjVWMTFjLS42IDAtMS4yLjYtMS4yIDEuMnYzLjVjMCAuNy42IDEuMyAxLjIgMS4zaDUuNWMuNyAwIDEuMy0uNiAxLjMtMS4ydi0zLjVjMC0uNy0uNi0xLjMtMS4yLTEuM3ptLTEuMyAwaC0zVjkuNWMwLS44LjctMS4zIDEuNS0xLjNzMS41LjUgMS41IDEuM1YxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBob25lbGlua1JpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwLjEgNy43LTEgMWMxLjggMS44IDEuOCA0LjYgMCA2LjVsMSAxYzIuNS0yLjMgMi41LTYuMSAwLTguNXpNMTggOS44bC0xIDFjLjUuNy41IDEuNiAwIDIuM2wxIDFjMS4yLTEuMiAxLjItMyAwLTQuM3pNMTQgMUg0Yy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTlINFY0aDEwdjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvbmVsaW5rU2V0dXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgM3YzaDJWNGgxMHYxNkg5di0ySDd2M2MwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJIOWMtMS4xIDAtMiAuOS0yIDJ6bTIuNSAxMi41Yy4yOS0uMTIuNTUtLjI5LjgtLjQ4bC0uMDIuMDMgMS4wMS4zOWMuMjMuMDkuNDkgMCAuNjEtLjIybC44NC0xLjQ2Yy4xMi0uMjEuMDctLjQ5LS4xMi0uNjRsLS44NS0uNjgtLjAyLjAzYy4wMi0uMTYuMDUtLjMyLjA1LS40OHMtLjAzLS4zMi0uMDUtLjQ4bC4wMi4wMy44NS0uNjhjLjE5LS4xNS4yNC0uNDMuMTItLjY0bC0uODQtMS40NmEuNDk5LjQ5OSAwIDAgMC0uNjEtLjIybC0xLjAxLjM5LjAyLjAzYy0uMjUtLjE3LS41MS0uMzQtLjgtLjQ2bC0uMTctMS4wOEEuNDg4LjQ4OCAwIDAgMCA4Ljg0IDdINy4xNmMtLjI1IDAtLjQ2LjE4LS40OS40Mkw2LjUgOC41Yy0uMjkuMTItLjU1LjI5LS44LjQ4bC4wMi0uMDMtMS4wMi0uMzljLS4yMy0uMDktLjQ5IDAtLjYxLjIybC0uODQgMS40NmMtLjEyLjIxLS4wNy40OS4xMi42NGwuODUuNjguMDItLjAzYy0uMDIuMTUtLjA1LjMxLS4wNS40N3MuMDMuMzIuMDUuNDhsLS4wMi0uMDMtLjg1LjY4Yy0uMTkuMTUtLjI0LjQzLS4xMi42NGwuODQgMS40NmMuMTIuMjEuMzguMzEuNjEuMjJsMS4wMS0uMzktLjAxLS4wNGMuMjUuMTkuNTEuMzYuOC40OGwuMTcgMS4wN2MuMDMuMjUuMjQuNDMuNDkuNDNoMS42OGMuMjUgMCAuNDYtLjE4LjQ5LS40MmwuMTctMS4wOHpNNiAxMmMwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUG9ydGFibGVXaWZpT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjQyIDIuMzYgMi4wMSAzLjc4IDQuMSA1Ljg3QzIuNzkgNy41NyAyIDkuNjkgMiAxMmMwIDMuNyAyLjAxIDYuOTIgNC45OSA4LjY1bDEtMS43M0M1LjYxIDE3LjUzIDQgMTQuOTYgNCAxMmMwLTEuNzYuNTctMy4zOCAxLjUzLTQuNjlsMS40MyAxLjQ0QzYuMzYgOS42OCA2IDEwLjggNiAxMmMwIDIuMjIgMS4yMSA0LjE1IDMgNS4xOWwxLTEuNzRjLTEuMTktLjctMi0xLjk3LTItMy40NSAwLS42NS4xNy0xLjI1LjQ0LTEuNzlsMS41OCAxLjU4TDEwIDEyYzAgMS4xLjkgMiAyIDJsLjIxLS4wMiA3LjUyIDcuNTIgMS40MS0xLjQxTDMuNDIgMi4zNnptMTQuMjkgMTEuNDZjLjE4LS41Ny4yOS0xLjE5LjI5LTEuODIgMC0zLjMxLTIuNjktNi02LTYtLjYzIDAtMS4yNS4xMS0xLjgyLjI5bDEuNzIgMS43MmMuMDMgMCAuMDYtLjAxLjEtLjAxIDIuMjEgMCA0IDEuNzkgNCA0IDAgLjA0LS4wMS4wNy0uMDEuMTFsMS43MiAxLjcxek0xMiA0YzQuNDIgMCA4IDMuNTggOCA4IDAgMS4yLS4yOSAyLjMyLS43NyAzLjM1bDEuNDkgMS40OUE5LjgyIDkuODIgMCAwIDAgMjIgMTJjMC01LjUyLTQuNDgtMTAtMTAtMTAtMS43NiAwLTMuNC40OC00Ljg0IDEuMjhsMS40OCAxLjQ4QzkuNjYgNC4yOCAxMC44IDQgMTIgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVByZXNlbnRUb0FsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjExIDAtMiAuODktMiAydjE0YzAgMS4xMS44OSAyIDIgMmgxOGMxLjExIDAgMi0uODkgMi0yVjVjMC0xLjExLS44OS0yLTItMnptMCAxNi4wMkgzVjQuOThoMTh2MTQuMDR6TTEwIDEySDhsNC00IDQgNGgtMnY0aC00di00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUHJpbnREaXNhYmxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuNDEgMS42IDAgMy4wMSA1IDhjLTEuNjYgMC0zIDEuMzQtMyAzdjZoNHY0aDEybDIuOTUgMi45NiAxLjQxLTEuNDFMMS40MSAxLjZ6TTYgMTVINHYtNGMwLS41NS40NS0xIDEtMWgybDMgM0g2djJ6bTIgNHYtNGg0bDQgNEg4ek04IDVoOHYzaC01LjM0bDIgMkgxOWMuNTUgMCAxIC40NSAxIDF2NGwtMiAuMDFWMTNoLTIuMzRsNCA0SDIydi02YzAtMS42Ni0xLjM0LTMtMy0zaC0xVjNINnYuMzZsMiAyVjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMThcIixcImN5XCI6XCIxMS41MVwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUXJDb2RlMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDIxaC0ydi0yaDJ2MnptLTItN2gtMnY1aDJ2LTV6bTgtMmgtMnY0aDJ2LTR6bS0yLTJoLTJ2Mmgydi0yek03IDEySDV2Mmgydi0yem0tMi0ySDN2Mmgydi0yem03LTVoMlYzaC0ydjJ6bS03LjUtLjV2M2gzdi0zaC0zek05IDlIM1YzaDZ2NnptLTQuNSA3LjV2M2gzdi0zaC0zek05IDIxSDN2LTZoNnY2em03LjUtMTYuNXYzaDN2LTNoLTN6TTIxIDloLTZWM2g2djZ6bS0yIDEwdi0zaC00djJoMnYzaDR2LTJoLTJ6bS0yLTdoLTR2Mmg0di0yem0tNC0ySDd2MmgydjJoMnYtMmgydi0yem0xLTFWN2gtMlY1aC0ydjRoNHpNNi43NSA1LjI1aC0xLjV2MS41aDEuNXYtMS41em0wIDEyaC0xLjV2MS41aDEuNXYtMS41em0xMi0xMmgtMS41djEuNWgxLjV2LTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVFyQ29kZVNjYW5uZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgNi41djNoLTN2LTNoM00xMSA1SDV2Nmg2VjV6bS0xLjUgOS41djNoLTN2LTNoM00xMSAxM0g1djZoNnYtNnptNi41LTYuNXYzaC0zdi0zaDNNMTkgNWgtNnY2aDZWNXptLTYgOGgxLjV2MS41SDEzVjEzem0xLjUgMS41SDE2VjE2aC0xLjV2LTEuNXpNMTYgMTNoMS41djEuNUgxNlYxM3ptLTMgM2gxLjV2MS41SDEzVjE2em0xLjUgMS41SDE2VjE5aC0xLjV2LTEuNXpNMTYgMTZoMS41djEuNUgxNlYxNnptMS41LTEuNUgxOVYxNmgtMS41di0xLjV6bTAgM0gxOVYxOWgtMS41di0xLjV6TTIyIDdoLTJWNGgtM1YyaDV2NXptMCAxNXYtNWgtMnYzaC0zdjJoNXpNMiAyMmg1di0ySDR2LTNIMnY1ek0yIDJ2NWgyVjRoM1YySDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVRckNvZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDExaDhWM0gzdjh6bTItNmg0djRINVY1ek0zIDIxaDh2LThIM3Y4em0yLTZoNHY0SDV2LTR6TTEzIDN2OGg4VjNoLTh6bTYgNmgtNFY1aDR2NHpNMTkgMTloMnYyaC0yek0xMyAxM2gydjJoLTJ6TTE1IDE1aDJ2MmgtMnpNMTMgMTdoMnYyaC0yek0xNSAxOWgydjJoLTJ6TTE3IDE3aDJ2MmgtMnpNMTcgMTNoMnYyaC0yek0xOSAxNWgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZWFkTW9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDdoOXYyaC05ek0xMyAxNWg5djJoLTl6TTE2IDExaDZ2MmgtNnpNMTMgMTIgOCA3djRIMnYyaDZ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJpbmdWb2x1bWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzLjcxIDE2LjY3QTE2Ljk3MSAxNi45NzEgMCAwIDAgMTIgMTJDNy40NiAxMiAzLjM0IDEzLjc4LjI5IDE2LjY3Yy0uMTguMTgtLjI5LjQzLS4yOS43MSAwIC4yOC4xMS41My4yOS43MWwyLjQ4IDIuNDhjLjE4LjE4LjQzLjI5LjcxLjI5LjI3IDAgLjUyLS4xMS43LS4yOC43OS0uNzQgMS42OS0xLjM2IDIuNjYtMS44NS4zMy0uMTYuNTYtLjUuNTYtLjl2LTMuMWMxLjQ1LS40OCAzLS43MyA0LjYtLjczIDEuNiAwIDMuMTUuMjUgNC42LjcydjMuMWMwIC4zOS4yMy43NC41Ni45Ljk4LjQ5IDEuODcgMS4xMiAyLjY2IDEuODUuMTguMTguNDMuMjguNy4yOC4yOCAwIC41My0uMTEuNzEtLjI5bDIuNDgtMi40OGMuMTgtLjE4LjI5LS40My4yOS0uNzFhLjk5Ljk5IDAgMCAwLS4yOS0uN3ptLTE4LjMxLjU2Yy0uNjYuMzctMS4yOS44LTEuODcgMS4yN2wtMS4wNy0xLjA3Yy45MS0uNzUgMS45LTEuMzkgMi45NS0xLjl2MS43em0xNS4wNyAxLjI2Yy0uNTktLjQ4LTEuMjEtLjktMS44Ny0xLjI3di0xLjdjMS4wNC41MSAyLjAzIDEuMTUgMi45NCAxLjlsLTEuMDcgMS4wN3ptLjY5LTEyLjIzLTEuNDEtMS40MS0zLjU2IDMuNTUgMS40MSAxLjQxczMuNDUtMy41MiAzLjU2LTMuNTV6TTExIDJoMnY1aC0yek02LjQgOS44MSA3LjgxIDguNCA0LjI2IDQuODQgMi44NCA2LjI2Yy4xMS4wMyAzLjU2IDMuNTUgMy41NiAzLjU1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUnNzRmVlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI2LjE4XCIsXCJjeVwiOlwiMTcuODJcIixcInJcIjpcIjIuMThcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA0LjQ0djIuODNjNy4wMyAwIDEyLjczIDUuNyAxMi43MyAxMi43M2gyLjgzYzAtOC41OS02Ljk3LTE1LjU2LTE1LjU2LTE1LjU2em0wIDUuNjZ2Mi44M2MzLjkgMCA3LjA3IDMuMTcgNy4wNyA3LjA3aDIuODNjMC01LjQ3LTQuNDMtOS45LTkuOS05Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSdHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm05LjAzIDMtMS4xMSA3LjA3aDIuNjJsLjctNC41aDIuNThMMTEuOCAxOC40M0g5LjQ3TDkuMDYgMjFoNy4yN2wuNC0yLjU3aC0yLjM1bDItMTIuODZoMi41OGwtLjcxIDQuNWgyLjY1TDIyIDNIOS4wM3pNOCA1SDRsLS4zMSAyaDRMOCA1em0tLjYxIDRoLTRsLS4zMSAyaDRsLjMxLTJ6bS45MiA4aC02TDIgMTloNmwuMzEtMnptLjYyLTRoLTZsLS4zMSAyaDYuMDFsLjMtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNjcmVlblNoYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOGMxLjEgMCAxLjk5LS45IDEuOTktMkwyMiA2YTIgMiAwIDAgMC0yLTJINGMtMS4xMSAwLTIgLjg5LTIgMnYxMGEyIDIgMCAwIDAgMiAySDB2MmgyNHYtMmgtNHpNNCAxNlY2aDE2djEwLjAxTDQgMTZ6bTktNi44N2MtMy44OS41NC01LjQ0IDMuMi02IDUuODcgMS4zOS0xLjg3IDMuMjItMi43MiA2LTIuNzJ2Mi4xOWw0LTMuNzRMMTMgN3YyLjEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2VuZFRpbWVFeHRlbnNpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA2djYuMjZsMiAxVjZjMC0xLjEtLjktMi0yLTJoLTRhMi41IDIuNSAwIDAgMC01IDBINS4wMWMtMS4xIDAtMiAuOS0yIDJ2My44QzUuNyA5LjggNiAxMS45NiA2IDEyLjVzLS4yOSAyLjctMyAyLjdWMTljMCAxLjEuOSAyIDIgMmgzLjhjMC0yLjE2IDEuMzctMi43OCAyLjItMi45NHYtMi4wM2MtMS40My4xNy0zLjE1IDEuMDQtMy44NyAyLjk3SDV2LTIuMTNjMi4xNy0uOCAzLTIuODcgMy00LjM3IDAtMS40OS0uODMtMy41Ni0yLjk5LTQuMzdWNkgxMVY0YzAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41djJoNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTJ2NGw0IDEtNCAxdjRsMTAtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNlbnRpbWVudFNhdGlzZmllZEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNS41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4LjVcIixcImN5XCI6XCI5LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNmMtMS40OCAwLTIuNzUtLjgxLTMuNDUtMkg2Ljg4YTUuNDk1IDUuNDk1IDAgMCAwIDEwLjI0IDBoLTEuNjdjLS42OSAxLjE5LTEuOTcgMi0zLjQ1IDJ6bS0uMDEtMTRDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNpcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNGgxNmMxLjEgMCAyIC45IDIgMnYxMmMwIDEuMS0uOSAyLTIgMkg0Yy0xLjEgMC0yLS45LTItMlY2YzAtMS4xLjktMiAyLTJ6bTAgMnYxMmgxNlY2SDR6bTcgM2gydjZoLTJWOXptMyAwaDRjLjU1IDAgMSAuNDUgMSAxdjJjMCAuNTUtLjQ1IDEtMSAxaC0yLjV2MkgxNFY5em0zLjUgMS41aC0ydjFoMnYtMXptLTExIC43NUg5Yy41NSAwIDEgLjQ1IDEgMVYxNGMwIC41NS0uNDUgMS0xIDFINXYtMS41aDMuNXYtLjc1SDZjLS41NSAwLTEtLjQ1LTEtMVYxMGMwLS41NS40NS0xIDEtMWg0djEuNUg2LjV2Ljc1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BlYWtlclBob25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDcuMDcgOC40MyA4LjVjLjkxLS45MSAyLjE4LTEuNDggMy41Ny0xLjQ4czIuNjYuNTcgMy41NyAxLjQ4TDE3IDcuMDdDMTUuNzIgNS43OSAxMy45NSA1IDEyIDVzLTMuNzIuNzktNSAyLjA3ek0xMiAxQzguOTggMSA2LjI0IDIuMjMgNC4yNSA0LjIxbDEuNDEgMS40MUM3LjI4IDQgOS41MyAzIDEyIDNzNC43MiAxIDYuMzQgMi42MmwxLjQxLTEuNDFBMTAuOTYzIDEwLjk2MyAwIDAgMCAxMiAxem0yLjg2IDkuMDFMOS4xNCAxMEM4LjUxIDEwIDggMTAuNTEgOCAxMS4xNHY5LjcxYzAgLjYzLjUxIDEuMTQgMS4xNCAxLjE0aDUuNzFjLjYzIDAgMS4xNC0uNTEgMS4xNC0xLjE0di05LjcxYy4wMS0uNjMtLjUtMS4xMy0xLjEzLTEuMTN6TTE1IDIwSDl2LThoNnY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3Bva2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA3YzAtMi4yMS0xLjc5LTQtNC00UzggNC43OSA4IDdzMS43OSA0IDQgNCA0LTEuNzkgNC00em0tNCAyYy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnptLTUgNGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTAgNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6bTEwLTZjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0wIDZjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3RheUN1cnJlbnRMYW5kc2NhcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuMDEgNyAxIDE3YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMkgzYy0xLjEgMC0xLjk5LjktMS45OSAyek0xOSA3djEwSDVWN2gxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0YXlDdXJyZW50UG9ydHJhaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEuMDEgNyAxYy0xLjEgMC0xLjk5LjktMS45OSAydjE4YzAgMS4xLjg5IDIgMS45OSAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMS45OS0yLTEuOTl6TTE3IDE5SDdWNWgxMHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0YXlQcmltYXJ5TGFuZHNjYXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xLjAxIDcgMSAxN2MwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJIM2MtMS4xIDAtMS45OS45LTEuOTkgMnpNMTkgN3YxMEg1VjdoMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdGF5UHJpbWFyeVBvcnRyYWl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxLjAxIDcgMWMtMS4xIDAtMS45OS45LTEuOTkgMnYxOGMwIDEuMS44OSAyIDEuOTkgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNyAxOUg3VjVoMTB2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdG9wU2NyZWVuU2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS43OSAxOCAyIDJIMjR2LTJoLTIuMjF6TTEuMTEgMi45OGwxLjU1IDEuNTZjLS40MS4zNy0uNjYuODktLjY2IDEuNDhWMTZjMCAxLjEuOSAyIDIuMDEgMkgwdjJoMTguMTNsMi43MSAyLjcxIDEuNDEtMS40MUwyLjUyIDEuNTcgMS4xMSAyLjk4ek00IDYuMDJoLjEzbDQuOTUgNC45M0M3Ljk0IDEyLjA3IDcuMzEgMTMuNTIgNyAxNWMuOTYtMS4yOSAyLjEzLTIuMDggMy42Ny0yLjQ2bDMuNDYgMy40OEg0di0xMHptMTYgMHYxMC4xOWwxLjMgMS4zYy40Mi0uMzcuNy0uODkuNy0xLjQ5di0xMGEyIDIgMCAwIDAtMi0ySDcuOGwyIDJIMjB6bS03LjA3IDMuMTMgMi43OSAyLjc4IDEuMjgtMS4yTDEzIDd2Mi4xM2wtLjA3LjAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3dhcENhbGxzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOCA0LTQgNGgzdjdjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yVjhjMC0yLjIxLTEuNzktNC00LTRTNSA1Ljc5IDUgOHY3SDJsNCA0IDQtNEg3VjhjMC0xLjEuOS0yIDItMnMyIC45IDIgMnY3YzAgMi4yMSAxLjc5IDQgNCA0czQtMS43OSA0LTRWOGgzbC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUZXh0c21zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE4bDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDZsLTIgMlY0aDE2djEyek03IDloMnYySDd6bTQgMGgydjJoLTJ6bTQgMGgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVVbnN1YnNjcmliZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuOTkgMTQuMDRWNWMwLTEuMS0uOS0yLTItMkg1Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDEwLjA1Yy4yOCAxLjkyIDIuMSAzLjM1IDQuMTggMi45MyAxLjM0LS4yNyAyLjQzLTEuMzcgMi43LTIuNzEuMjUtMS4yNC0uMTYtMi4zOS0uOTQtMy4xOHptLTItOS4wNEwxMiA4LjUgNSA1aDEzLjk5em0tMy42NCAxMEg1VjdsNyAzLjVMMTkgN3Y2LjA1Yy0uMTYtLjAyLS4zMy0uMDUtLjUtLjA1LTEuMzkgMC0yLjU5LjgyLTMuMTUgMnptNS4xNSAyaC00di0xaDR2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZvaWNlbWFpbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNSA2QzE1LjQ2IDYgMTMgOC40NiAxMyAxMS41YzAgMS4zMy40NyAyLjU1IDEuMjYgMy41SDkuNzRjLjc5LS45NSAxLjI2LTIuMTcgMS4yNi0zLjVDMTEgOC40NiA4LjU0IDYgNS41IDZTMCA4LjQ2IDAgMTEuNSAyLjQ2IDE3IDUuNSAxN2gxM2MzLjA0IDAgNS41LTIuNDYgNS41LTUuNVMyMS41NCA2IDE4LjUgNnptLTEzIDlDMy41NyAxNSAyIDEzLjQzIDIgMTEuNVMzLjU3IDggNS41IDggOSA5LjU3IDkgMTEuNSA3LjQzIDE1IDUuNSAxNXptMTMgMGMtMS45MyAwLTMuNS0xLjU3LTMuNS0zLjVTMTYuNTcgOCAxOC41IDggMjIgOS41NyAyMiAxMS41IDIwLjQzIDE1IDE4LjUgMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWcG5LZXlPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjgxIDIuODEgMS4zOSA0LjIybDIuNTkgMi41OUE2LjAxMiA2LjAxMiAwIDAgMCAxIDEyYzAgMy4zMSAyLjY5IDYgNiA2IDIuMjIgMCA0LjE1LTEuMjEgNS4xOS0zbDcuNTkgNy42MSAxLjQxLTEuNDFMMi44MSAyLjgxek03IDE2Yy0yLjIxIDAtNC0xLjc5LTQtNCAwLTEuNjcgMS4wMi0zLjEgMi40Ny0zLjdsMS43MSAxLjcxQzcuMTIgMTAgNy4wNiAxMCA3IDEwYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMmMwLS4wNiAwLS4xMi0uMDEtLjE4bDEuNzQgMS43NEMxMC4yMiAxNC40OCA5LjE0IDE2IDcgMTZ6bTEwLTEuODNWMTNoLTEuMTdMMTcgMTQuMTd6TTEzLjgzIDExSDIxdjJoLTJ2M2wyIDJ2LTNoMlY5SDExLjgzbDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZwbktleSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTloLTZ2LTRoLTIuNjhjLTEuMTQgMi40Mi0zLjYgNC02LjMyIDQtMy44NiAwLTctMy4xNC03LTdzMy4xNC03IDctN2MyLjcyIDAgNS4xNyAxLjU4IDYuMzIgNEgyNHY2aC0ydjR6bS00LTJoMnYtNGgydi0ySDExLjk0bC0uMjMtLjY3QzExLjAxIDguMzQgOS4xMSA3IDcgN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNWMyLjExIDAgNC4wMS0xLjM0IDQuNzEtMy4zM2wuMjMtLjY3SDE4djR6TTcgMTVjLTEuNjUgMC0zLTEuMzUtMy0zczEuMzUtMyAzLTMgMyAxLjM1IDMgMy0xLjM1IDMtMyAzem0wLTRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdpZmlDYWxsaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTUuNTFjLTEuMjQgMC0yLjQ1LS4yLTMuNTctLjU3YS44NC44NCAwIDAgMC0uMzEtLjA1Yy0uMjYgMC0uNTEuMS0uNzEuMjlsLTIuMiAyLjJhMTUuMTQ5IDE1LjE0OSAwIDAgMS02LjU5LTYuNTlsMi4yLTIuMmMuMjgtLjI4LjM2LS42Ny4yNS0xLjAyQTExLjM2IDExLjM2IDAgMCAxIDguNSA0YzAtLjU1LS40NS0xLTEtMUg0Yy0uNTUgMC0xIC40NS0xIDEgMCA5LjM5IDcuNjEgMTcgMTcgMTcgLjU1IDAgMS0uNDUgMS0xdi0zLjQ5YzAtLjU1LS40NS0xLTEtMXpNNS4wMyA1aDEuNWExMyAxMyAwIDAgMCAuNDYgMi41OWwtMS4yIDEuMmMtLjQxLTEuMi0uNjctMi40Ny0uNzYtMy43OXpNMTkgMTguOTdjLTEuMzItLjA5LTIuNTktLjM1LTMuOC0uNzVsMS4xOS0xLjE5Yy44NS4yNCAxLjcyLjM5IDIuNi40NXYxLjQ5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA0Ljk1QzIxLjc5IDQuNzggMTkuNjcgMyAxNi41IDNjLTMuMTggMC01LjI5IDEuNzgtNS41IDEuOTVMMTYuNSAxMiAyMiA0Ljk1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRkQm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0em0tOC0yaDJ2LTRoNHYtMmgtNFY3aC0ydjRIN3YyaDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBZGRDaXJjbGVPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA3aC0ydjRIN3YyaDR2NGgydi00aDR2LTJoLTRWN3ptLTEtNUM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBZGRDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTUgMTFoLTR2NGgtMnYtNEg3di0yaDRWN2gydjRoNHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRkTGluayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTFoOHYySDh2LTJ6bTEyLjEgMUgyMmMwLTIuNzYtMi4yNC01LTUtNWgtNHYxLjloNGMxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXpNMy45IDEyYzAtMS43MSAxLjM5LTMuMSAzLjEtMy4xaDRWN0g3Yy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1aDR2LTEuOUg3Yy0xLjcxIDAtMy4xLTEuMzktMy4xLTMuMXpNMTkgMTJoLTJ2M2gtM3YyaDN2M2gydi0zaDN2LTJoLTN2LTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDEzaC02djZoLTJ2LTZINXYtMmg2VjVoMnY2aDZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFtcFN0b3JpZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE5aDEwVjRIN3YxNXpNOSA2aDZ2MTFIOVY2ek0zIDZoMnYxMUgzek0xOSA2aDJ2MTFoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcmNoaXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMC41NCA1LjIzLTEuMzktMS42OEMxOC44OCAzLjIxIDE4LjQ3IDMgMTggM0g2Yy0uNDcgMC0uODguMjEtMS4xNi41NUwzLjQ2IDUuMjNDMy4xNyA1LjU3IDMgNi4wMiAzIDYuNVYxOWMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjYuNWMwLS40OC0uMTctLjkzLS40Ni0xLjI3ek02LjI0IDVoMTEuNTJsLjgxLjk3SDUuNDRsLjgtLjk3ek01IDE5VjhoMTR2MTFINXptOC40NS05aC0yLjl2M0g4bDQgNCA0LTRoLTIuNTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBdHRyaWJ1dGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgOC41Yy0uOTEgMC0yLjc1LjQ2LTIuNzUgMS4zOHY0LjYyaDEuNVYxOWgyLjV2LTQuNWgxLjVWOS44OGMwLS45MS0xLjg0LTEuMzgtMi43NS0xLjM4ek0xMiAyQzYuNDcgMiAyIDYuNDcgMiAxMnM0LjQ3IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjYuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCYWNrc3BhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDNIN2MtLjY5IDAtMS4yMy4zNS0xLjU5Ljg4TDAgMTJsNS40MSA4LjExYy4zNi41My45Ljg5IDEuNTkuODloMTVjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg3LjA3TDIuNCAxMmw0LjY2LTdIMjJ2MTR6bS0xMS41OS0yTDE0IDEzLjQxIDE3LjU5IDE3IDE5IDE1LjU5IDE1LjQxIDEyIDE5IDguNDEgMTcuNTkgNyAxNCAxMC41OSAxMC40MSA3IDkgOC40MSAxMi41OSAxMiA5IDE1LjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmFsbG90IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA3LjVoNXYyaC01em0wIDdoNXYyaC01ek0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6TTExIDZINnY1aDVWNnptLTEgNEg3VjdoM3Yzem0xIDNINnY1aDV2LTV6bS0xIDRIN3YtM2gzdjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCaW90ZWNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxOWMtMS4xIDAtMiAuOS0yIDJoMTRjMC0xLjEtLjktMi0yLTJoLTR2LTJoM2MxLjEgMCAyLS45IDItMmgtOGMtMS42NiAwLTMtMS4zNC0zLTNhMyAzIDAgMCAxIDEuNDctMi41N2MuNDEuNTkgMS4wNiAxIDEuODMgMS4wNi43LjA2IDEuMzYtLjE5IDEuODUtLjYybC41OSAxLjYxLjk0LS4zNC4zNC45NCAxLjg4LS42OC0uMzQtLjk0Ljk0LS4zNC0yLjc0LTcuNTItLjk0LjM0LS4zNC0uOTQtMS44OC42OC4zNC45NC0uOTQuMzUuNTYgMS41NWMtMS4xNy0uMDQtMi4xOS43NS0yLjQ4IDEuODZBNS4wMSA1LjAxIDAgMCAwIDUgMTJjMCAyLjc2IDIuMjQgNSA1IDV2Mkg3em01Ljg2LTE0LjQ4IDEuNzEgNC43LS45NC4zNC0xLjcxLTQuNy45NC0uMzR6TTEwLjUgN2MuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTQgMTJjMC00LjQyIDMuNTgtOCA4LTggMS44NSAwIDMuNTUuNjMgNC45IDEuNjlMNS42OSAxNi45QTcuOTAyIDcuOTAyIDAgMCAxIDQgMTJ6bTggOGMtMS44NSAwLTMuNTUtLjYzLTQuOS0xLjY5TDE4LjMxIDcuMUE3LjkwMiA3LjkwMiAwIDAgMSAyMCAxMmMwIDQuNDItMy41OCA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJvbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAyMWgtMWwxLTdINy41Yy0uODggMC0uMzMtLjc1LS4zMS0uNzhDOC40OCAxMC45NCAxMC40MiA3LjU0IDEzLjAxIDNoMWwtMSA3aDMuNTFjLjQgMCAuNjIuMTkuNC42NkMxMi45NyAxNy41NSAxMSAyMSAxMSAyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbGN1bGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi4yNSA3LjcyaDV2MS41aC01ek0xMyAxNS43NWg1djEuNWgtNXpNMTMgMTMuMjVoNXYxLjVoLTV6TTggMThoMS41di0yaDJ2LTEuNWgtMnYtMkg4djJINlYxNmgyek0xNC4wOSAxMC45NWwxLjQxLTEuNDEgMS40MSAxLjQxIDEuMDYtMS4wNi0xLjQxLTEuNDIgMS40MS0xLjQxTDE2LjkxIDYgMTUuNSA3LjQxIDE0LjA5IDZsLTEuMDYgMS4wNiAxLjQxIDEuNDEtMS40MSAxLjQyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2hhbmdlQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTQuMTctNS4yNC0xLjEtMS4xYy43MS0xLjMzLjUzLTMuMDEtLjU5LTQuMTNBMy40ODIgMy40ODIgMCAwIDAgMTIgOC41Yy0uMDMgMC0uMDYuMDEtLjA5LjAxTDEzIDkuNmwtMS4wNiAxLjA2LTIuODMtMi44M0wxMS45NCA1IDEzIDYuMDZsLS45Ni45NmMxLjI3LjAxIDIuNTMuNDggMy41IDEuNDQgMS43IDEuNzEgMS45MSA0LjM2LjYzIDYuM3ptLTEuMjggMS40MUwxMi4wNiAxOSAxMSAxNy45NGwuOTUtLjk1YTQuOTcgNC45NyAwIDAgMS0zLjQ4LTEuNDYgNS4wMDYgNS4wMDYgMCAwIDEtLjY0LTYuMjlsMS4xIDEuMWMtLjcxIDEuMzMtLjUzIDMuMDEuNTkgNC4xMy43LjcgMS42MyAxLjA0IDIuNTYgMS4wMUwxMSAxNC40bDEuMDYtMS4wNiAyLjgzIDIuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDbGVhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNi40MSAxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyIDE5IDYuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb250ZW50Q29weSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMUg0Yy0xLjEgMC0yIC45LTIgMnYxNGgyVjNoMTJWMXptMyA0SDhjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTFjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMnptMCAxNkg4VjdoMTF2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb250ZW50Q3V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjY0IDcuNjRjLjIzLS41LjM2LTEuMDUuMzYtMS42NCAwLTIuMjEtMS43OS00LTQtNFMyIDMuNzkgMiA2czEuNzkgNCA0IDRjLjU5IDAgMS4xNC0uMTMgMS42NC0uMzZMMTAgMTJsLTIuMzYgMi4zNkM3LjE0IDE0LjEzIDYuNTkgMTQgNiAxNGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00YzAtLjU5LS4xMy0xLjE0LS4zNi0xLjY0TDEyIDE0bDcgN2gzdi0xTDkuNjQgNy42NHpNNiA4Yy0xLjEgMC0yLS44OS0yLTJzLjktMiAyLTIgMiAuODkgMiAyLS45IDItMiAyem0wIDEyYy0xLjEgMC0yLS44OS0yLTJzLjktMiAyLTIgMiAuODkgMiAyLS45IDItMiAyem02LTcuNWMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41LjUuMjIuNS41LS4yMi41LS41LjV6TTE5IDNsLTYgNiAyIDIgNy03VjNoLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb250ZW50UGFzdGVHbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgNWgydjNoMTBWNWgydjZoMlY1YzAtMS4xLS45LTItMi0yaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMXMtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDV2LTJINVY1em03LTJjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTguMDEgMTMtMS40MiAxLjQxIDEuNTggMS41OEgxMnYyaDYuMTdsLTEuNTggMS41OSAxLjQyIDEuNDEgMy45OS00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29udGVudFBhc3RlT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuMTkgMjEuMTkgMi44MSAyLjgxIDEuMzkgNC4yMiAzIDUuODNWMTljMCAxLjEuOSAyIDIgMmgxMy4xN2wxLjYxIDEuNjEgMS40MS0xLjQyek01IDE5VjcuODNMMTYuMTcgMTlINXpNMTcgOFY1aDJ2MTEuMTdsMiAyVjVjMC0xLjEtLjktMi0yLTJoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxcy0yLjQuODQtMi44MiAySDUuODNsNSA1SDE3em0tNS01Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb250ZW50UGFzdGVTZWFyY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDVoMnYzaDEwVjVoMnY1aDJWNWMwLTEuMS0uOS0yLTItMmgtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFzLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmg1di0ySDVWNXptNy0yYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjMgMTguOWMuNC0uNy43LTEuNS43LTIuNCAwLTIuNS0yLTQuNS00LjUtNC41UzEyIDE0IDEyIDE2LjVzMiA0LjUgNC41IDQuNWMuOSAwIDEuNy0uMyAyLjQtLjdsMi43IDIuNyAxLjQtMS40LTIuNy0yLjd6bS0zLjguMWMtMS40IDAtMi41LTEuMS0yLjUtMi41czEuMS0yLjUgMi41LTIuNSAyLjUgMS4xIDIuNSAyLjUtMS4xIDIuNS0yLjUgMi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29udGVudFBhc3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAyaC00LjE4QzE0LjQuODQgMTMuMyAwIDEyIDBTOS42Ljg0IDkuMTggMkg1Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptNyAxOEg1VjRoMnYzaDEwVjRoMnYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvcHlBbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAySDljLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoOWMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDlWNGg5djEyek0zIDE1di0yaDJ2Mkgzem0wLTUuNWgydjJIM3YtMnpNMTAgMjBoMnYyaC0ydi0yem0tNy0xLjV2LTJoMnYySDN6TTUgMjJjLTEuMSAwLTItLjktMi0yaDJ2MnptMy41IDBoLTJ2LTJoMnYyem01IDB2LTJoMmMwIDEuMS0uOSAyLTIgMnpNNSA2djJIM2MwLTEuMS45LTIgMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ3JlYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE3LjI1VjIxaDMuNzVMMTcuODEgOS45NGwtMy43NS0zLjc1TDMgMTcuMjV6TTUuOTIgMTlINXYtLjkybDkuMDYtOS4wNi45Mi45Mkw1LjkyIDE5ek0yMC43MSA1LjYzbC0yLjM0LTIuMzRjLS4yLS4yLS40NS0uMjktLjcxLS4yOXMtLjUxLjEtLjcuMjlsLTEuODMgMS44MyAzLjc1IDMuNzUgMS44My0xLjgzYS45OTYuOTk2IDAgMCAwIDAtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURlbGV0ZVN3ZWVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxNmg0djJoLTR6bTAtOGg3djJoLTd6bTAgNGg2djJoLTZ6TTMgMThjMCAxLjEuOSAyIDIgMmg2YzEuMSAwIDItLjkgMi0yVjhIM3YxMHptMi04aDZ2OEg1di04em01LTZINkw1IDVIMnYyaDEyVjVoLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEZXNlbGVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTNoMnYtMkgzdjJ6bTQgOGgydi0ySDd2MnptNi0xOGgtMnYyaDJWM3ptNiAwdjJoMmMwLTEuMS0uOS0yLTItMnpNNSAyMXYtMkgzYzAgMS4xLjkgMiAyIDJ6bS0yLTRoMnYtMkgzdjJ6bTggNGgydi0yaC0ydjJ6bTgtOGgydi0yaC0ydjJ6bTAtNGgyVjdoLTJ2MnptLTQtNGgyVjNoLTJ2MnpNNy44MyA1IDcgNC4xN1YzaDJ2Mkg3Ljgzem0xMiAxMi0uODMtLjgzVjE1aDJ2MmgtMS4xN3ptMS4zNiA0LjE5TDIuODEgMi44MSAxLjM5IDQuMjIgNC4xNyA3SDN2MmgyVjcuODNsMiAyVjE3aDcuMTdsMiAySDE1djJoMnYtMS4xN2wyLjc4IDIuNzggMS40MS0xLjQyek05IDE1di0zLjE3TDEyLjE3IDE1SDl6bTYtMi44M1Y5aC0zLjE3bC0yLTJIMTd2Ny4xN2wtMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRHJhZnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS45OSA4YzAtLjcyLS4zNy0xLjM1LS45NC0xLjdMMTIgMSAyLjk1IDYuM0MyLjM4IDYuNjUgMiA3LjI4IDIgOHYxMGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0ybC0uMDEtMTB6bS0yIDB2LjAxTDEyIDEzIDQgOGw4LTQuNjhMMTkuOTkgOHpNNCAxOHYtNy42Nmw4IDUuMDIgNy45OS00Ljk5TDIwIDE4SDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEeW5hbWljRmVlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggOEg2djdjMCAxLjEuOSAyIDIgMmg5di0ySDhWOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM2gtOGMtMS4xIDAtMiAuOS0yIDJ2NmMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCA4aC04VjdoOHY0ek00IDEySDJ2N2MwIDEuMS45IDIgMiAyaDl2LTJINHYtN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbGVDb3B5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxSDRjLTEuMSAwLTIgLjktMiAydjE0aDJWM2gxMlYxem0tMSA0SDhjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNiAyMWMwIDEuMS44OSAyIDEuOTkgMkgxOWMxLjEgMCAyLS45IDItMlYxMWwtNi02ek04IDIxVjdoNnY1aDV2OUg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmlsdGVyTGlzdE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjgzIDhIMjFWNkg4LjgzbDIgMnptNSA1SDE4di0yaC00LjE3bDIgMnpNMTQgMTYuODNWMThoLTR2LTJoMy4xN2wtMy0zSDZ2LTJoMi4xN2wtMy0zSDNWNmguMTdMMS4zOSA0LjIyIDIuOCAyLjgxbDE4LjM4IDE4LjM4LTEuNDEgMS40MUwxNCAxNi44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbHRlckxpc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDE4aDR2LTJoLTR2MnpNMyA2djJoMThWNkgzem0zIDdoMTJ2LTJINnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmxhZ0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNSA5LTEtMkg4djExaDEuNXYtNUgxMmwxIDJoNVY5aC0zem0xLjUgNC41aC0yLjU3bC0xLTJIOS41di0zaDMuNTdsMSAyaDIuNDN2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZsYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyLjM2IDYgLjQgMkgxOHY2aC0zLjM2bC0uNC0ySDdWNmg1LjM2TTE0IDRINXYxN2gydi03aDUuNmwuNCAyaDdWNmgtNS42TDE0IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb250RG93bmxvYWRPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjgzIDJIMjBjMS4xIDAgMiAuOSAyIDJ2MTUuMTdsLTItMlY0SDYuODNsLTItMnptNi4wOSA0LS41NyAxLjUyIDEuMzYgMS4zNi4yMy0uNjZoLjFsLjU0IDEuNTIgMy4wNCAzLjA0TDEzLjA3IDZoLTIuMTV6bTkuNTcgMTcuMzFMMTkuMTcgMjJINGMtMS4xIDAtMi0uOS0yLTJWNC44M0wuNjkgMy41MSAyLjEgMi4xbDE5LjggMTkuOC0xLjQxIDEuNDF6TTE3LjE3IDIwbC01LjA3LTUuMDdIOS41OEw4LjQ5IDE4SDYuNDFsMi4zOS02LjM3TDQgNi44M1YyMGgxMy4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvbnREb3dubG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4xNyAxNS41aDUuNjRsMS4xNCAzaDIuMDlsLTUuMTEtMTNoLTEuODZsLTUuMTEgMTNoMi4wOWwxLjEyLTN6TTEyIDcuOThsMi4wNyA1LjUySDkuOTNMMTIgNy45OHpNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMThINFY0aDE2djE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9yd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgOC44MyAxNy4xNyAxMiAxNCAxNS4xN1YxNEg2di00aDhWOC44M00xMiA0djRINHY4aDh2NGw4LTgtOC04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR2VzdHVyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC41OSA2Ljg5Yy43LS43MSAxLjQtMS4zNSAxLjcxLTEuMjIuNS4yIDAgMS4wMy0uMyAxLjUyLS4yNS40Mi0yLjg2IDMuODktMi44NiA2LjMxIDAgMS4yOC40OCAyLjM0IDEuMzQgMi45OC43NS41NiAxLjc0LjczIDIuNjQuNDYgMS4wNy0uMzEgMS45NS0xLjQgMy4wNi0yLjc3IDEuMjEtMS40OSAyLjgzLTMuNDQgNC4wOC0zLjQ0IDEuNjMgMCAxLjY1IDEuMDEgMS43NiAxLjc5LTMuNzguNjQtNS4zOCAzLjY3LTUuMzggNS4zNyAwIDEuNyAxLjQ0IDMuMDkgMy4yMSAzLjA5IDEuNjMgMCA0LjI5LTEuMzMgNC42OS02LjFIMjF2LTIuNWgtMi40N2MtLjE1LTEuNjUtMS4wOS00LjItNC4wMy00LjItMi4yNSAwLTQuMTggMS45MS00Ljk0IDIuODQtLjU4LjczLTIuMDYgMi40OC0yLjI5IDIuNzItLjI1LjMtLjY4Ljg0LTEuMTEuODQtLjQ1IDAtLjcyLS44My0uMzYtMS45Mi4zNS0xLjA5IDEuNC0yLjg2IDEuODUtMy41Mi43OC0xLjE0IDEuMy0xLjkyIDEuMy0zLjI4QzguOTUgMy42OSA3LjMxIDMgNi40NCAzIDUuMTIgMyAzLjk3IDQgMy43MiA0LjI1Yy0uMzYuMzYtLjY2LjY2LS44OC45M2wxLjc1IDEuNzF6bTkuMjkgMTEuNjZjLS4zMSAwLS43NC0uMjYtLjc0LS43MiAwLS42LjczLTIuMiAyLjg3LTIuNzYtLjMgMi42OS0xLjQzIDMuNDgtMi4xMyAzLjQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSG93VG9SZWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDEyYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptMC02YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnpNNSAxOGMuMi0uNjMgMi41Ny0xLjY4IDQuOTYtMS45NGwyLjA0LTJhOS4zNCA5LjM0IDAgMCAwLTEtLjA2Yy0yLjY3IDAtOCAxLjM0LTggNHYyaDlsLTItMkg1em0xNS42LTUuNS01LjEzIDUuMTctMi4wNy0yLjA4TDEyIDE3bDMuNDcgMy41TDIyIDEzLjkxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSG93VG9Wb3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM2gtLjY4bC0yIDJoMS45MUwxOSAxN0g1bDEuNzgtMmgyLjA1bC0yLTJINmwtMyAzdjRjMCAxLjEuODkgMiAxLjk5IDJIMTlhMiAyIDAgMCAwIDItMnYtNGwtMy0zem0xIDdINXYtMWgxNHYxem0tNy42Ni00Ljk4Yy4zOS4zOSAxLjAyLjM5IDEuNDEgMGw2LjM2LTYuMzZhLjk5Ni45OTYgMCAwIDAgMC0xLjQxTDE0LjE2IDIuM2EuOTc1Ljk3NSAwIDAgMC0xLjQtLjAxTDYuMzkgOC42NmEuOTk2Ljk5NiAwIDAgMCAwIDEuNDFsNC45NSA0Ljk1em0yLjEyLTEwLjYxTDE3IDcuOTVsLTQuOTUgNC45NS0zLjU0LTMuNTQgNC45NS00Ljk1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW5ib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDV2LTNoMy41NmMuNjkgMS4xOSAxLjk3IDIgMy40NSAyczIuNzUtLjgxIDMuNDUtMkgxOXYzem0wLTVoLTQuOTljMCAxLjEtLjkgMi0yIDJzLTItLjktMi0ySDVWNWgxNHY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW5zaWdodHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA4Yy0xLjQ1IDAtMi4yNiAxLjQ0LTEuOTMgMi41MWwtMy41NSAzLjU2Yy0uMy0uMDktLjc0LS4wOS0xLjA0IDBsLTIuNTUtMi41NUMxMi4yNyAxMC40NSAxMS40NiA5IDEwIDljLTEuNDUgMC0yLjI3IDEuNDQtMS45MyAyLjUybC00LjU2IDQuNTVDMi40NCAxNS43NCAxIDE2LjU1IDEgMThjMCAxLjEuOSAyIDIgMiAxLjQ1IDAgMi4yNi0xLjQ0IDEuOTMtMi41MWw0LjU1LTQuNTZjLjMuMDkuNzQuMDkgMS4wNCAwbDIuNTUgMi41NUMxMi43MyAxNi41NSAxMy41NCAxOCAxNSAxOGMxLjQ1IDAgMi4yNy0xLjQ0IDEuOTMtMi41MmwzLjU2LTMuNTVjMS4wNy4zMyAyLjUxLS40OCAyLjUxLTEuOTMgMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1IDkgLjk0LTIuMDdMMTggNmwtMi4wNi0uOTNMMTUgM2wtLjkyIDIuMDdMMTIgNmwyLjA4Ljkzek0zLjUgMTEgNCA5bDItLjVMNCA4bC0uNS0yTDMgOGwtMiAuNUwzIDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbnZlbnRvcnkyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xIDAtMiAuOS0yIDJ2My4wMWMwIC43Mi40MyAxLjM0IDEgMS42OVYyMGMwIDEuMSAxLjEgMiAyIDJoMTRjLjkgMCAyLS45IDItMlY4LjdjLjU3LS4zNSAxLS45NyAxLTEuNjlWNGMwLTEuMS0xLTItMi0yem0tMSAxOEg1VjloMTR2MTF6bTEtMTNINFY0aDE2djN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTJoNnYySDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbnZlbnRvcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDVoMnYzaDEwVjVoMnY1aDJWNWMwLTEuMS0uOS0yLTItMmgtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFzLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmg2di0ySDVWNXptNy0yYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDExLjUgMTUuNTEgMTdsLTMuMDEtMy0xLjUgMS41IDQuNTEgNC41IDYuOTktN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxpbmtPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjM5IDExIDE2IDEyLjYxVjExek0xNyA3aC00djEuOWg0YzEuNzEgMCAzLjEgMS4zOSAzLjEgMy4xIDAgMS4yNy0uNzcgMi4zNy0xLjg3IDIuODRsMS40IDEuNEE0Ljk4NiA0Ljk4NiAwIDAgMCAyMiAxMmMwLTIuNzYtMi4yNC01LTUtNXpNMiA0LjI3bDMuMTEgMy4xMUE0Ljk5MSA0Ljk5MSAwIDAgMCAyIDEyYzAgMi43NiAyLjI0IDUgNSA1aDR2LTEuOUg3Yy0xLjcxIDAtMy4xLTEuMzktMy4xLTMuMSAwLTEuNTkgMS4yMS0yLjkgMi43Ni0zLjA3TDguNzMgMTFIOHYyaDIuNzNMMTMgMTUuMjdWMTdoMS43M2w0LjAxIDQuMDEgMS40MS0xLjQxTDMuNDEgMi44NiAyIDQuMjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA3aC00djJoNGMxLjY1IDAgMyAxLjM1IDMgM3MtMS4zNSAzLTMgM2gtNHYyaDRjMi43NiAwIDUtMi4yNCA1LTVzLTIuMjQtNS01LTV6bS02IDhIN2MtMS42NSAwLTMtMS4zNS0zLTNzMS4zNS0zIDMtM2g0VjdIN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNWg0di0yem0tMy00aDh2Mkg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG93UHJpb3JpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDVoOHYyaC04VjV6bTAgNS41aDh2MmgtOHYtMnptMCA1LjVoOHYyaC04di0yek0yIDExLjVDMiAxNS4wOCA0LjkyIDE4IDguNSAxOEg5djJsMy0zLTMtM3YyaC0uNUM2LjAyIDE2IDQgMTMuOTggNCAxMS41UzYuMDIgNyA4LjUgN0gxMlY1SDguNUM0LjkyIDUgMiA3LjkyIDIgMTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1haWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDZjMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2em0tMiAwLTggNC45OUw0IDZoMTZ6bTAgMTJINFY4bDggNSA4LTV2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNYXJrdW5yZWFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA2YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNnptLTIgMC04IDUtOC01aDE2em0wIDEySDRWOGw4IDUgOC01djEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW92ZVRvSW5ib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDloLTIuNTVWNmgtMi45djNIOGw0IDR6bTMtNkg0Ljk5QzMuODggMyAzIDMuOSAzIDV2MTRjMCAxLjEuODggMiAxLjk5IDJIMTljMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1di0zaDMuNTZjLjY5IDEuMTkgMS45NyAyIDMuNDUgMnMyLjc1LS44MSAzLjQ1LTJIMTl2M3ptMC01aC00Ljk5YzAgMS4xLS45IDItMiAycy0yLS45LTItMkg1bC0uMDEtOUgxOXY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmV4dFdlZWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTExIDE4LjUgNC00LTQtNC0xIDEgMyAzLTMgM3pNMjAgN2gtNFY1YzAtLjU1LS4yMi0xLjA1LS41OS0xLjQxQzE1LjA1IDMuMjIgMTQuNTUgMyAxNCAzaC00Yy0xLjEgMC0yIC45LTIgMnYySDRjLTEuMSAwLTIgLjktMiAydjExYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOWMwLTEuMS0uOS0yLTItMnpNMTAgNWg0djJoLTRWNXptMTAgMTVINFY5aDE2djExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lT3V0bGluZWRGbGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNCA2LTEtMkg1djE3aDJ2LTdoNWwxIDJoN1Y2aC02em00IDhoLTRsLTEtMkg3VjZoNWwxIDJoNXY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUG9saWN5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMSAzIDV2NmMwIDUuNTUgMy44NCAxMC43NCA5IDEyIDUuMTYtMS4yNiA5LTYuNDUgOS0xMlY1bC05LTR6bTcgMTBjMCAxLjg1LS41MSAzLjY1LTEuMzggNS4yMWwtMS40NS0xLjQ1YTQuOTk0IDQuOTk0IDAgMCAwLS42NC02LjI5IDUuMDAzIDUuMDAzIDAgMCAwLTcuMDcgMCA1LjAwMyA1LjAwMyAwIDAgMCAwIDcuMDcgNS4wMDYgNS4wMDYgMCAwIDAgNi4yOS42NGwxLjcyIDEuNzJjLTEuMTkgMS40Mi0yLjczIDIuNTEtNC40NyAzLjA0LTQuMDItMS4yNS03LTUuNDItNy05Ljk0VjYuM2w3LTMuMTEgNyAzLjExVjExem0tNyA0Yy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zIDMgMS4zNCAzIDMtMS4zNCAzLTMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVB1c2hQaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA0djVjMCAxLjEyLjM3IDIuMTYgMSAzSDljLjY1LS44NiAxLTEuOSAxLTNWNGg0bTMtMkg3Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxaDF2NWMwIDEuNjYtMS4zNCAzLTMgM3YyaDUuOTd2N2wxIDEgMS0xdi03SDE5di0yYy0xLjY2IDAtMy0xLjM0LTMtM1Y0aDFjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZWRvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC40IDEwLjZDMTYuNTUgOC45OSAxNC4xNSA4IDExLjUgOGMtNC42NSAwLTguNTggMy4wMy05Ljk2IDcuMjJMMy45IDE2YTguMDAyIDguMDAyIDAgMCAxIDcuNi01LjVjMS45NSAwIDMuNzMuNzIgNS4xMiAxLjg4TDEzIDE2aDlWN2wtMy42IDMuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlbW92ZUNpcmNsZU91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTF2MmgxMHYtMkg3em01LTlDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVtb3ZlQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem01IDExSDd2LTJoMTB2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlbW92ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTNINXYtMmgxNHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVwbHlBbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgOFY1bC03IDcgNyA3di0zbC00LTQgNC00em02IDFWNWwtNyA3IDcgN3YtNC4xYzUgMCA4LjUgMS42IDExIDUuMS0xLTUtNC0xMC0xMS0xMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlcGx5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA5VjVsLTcgNyA3IDd2LTQuMWM1IDAgOC41IDEuNiAxMSA1LjEtMS01LTQtMTAtMTEtMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXBvcnRHbWFpbGVycm9ycmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS43MyAzSDguMjdMMyA4LjI3djcuNDZMOC4yNyAyMWg3LjQ2TDIxIDE1LjczVjguMjdMMTUuNzMgM3pNMTkgMTQuOSAxNC45IDE5SDkuMUw1IDE0LjlWOS4xTDkuMSA1aDUuOEwxOSA5LjF2NS44elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTZcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgN2gydjdoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXBvcnRPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMSA1aDUuOEwxOSA5LjF2NS44bC0uMjIuMjIgMS40MiAxLjQxLjgtLjhWOC4yN0wxNS43MyAzSDguMjdsLS44LjggMS40MSAxLjQyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTZcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgOS4zM1Y3aC0ydi4zM3pNMi40MSAxLjU4IDEgMi45OWwzLjY0IDMuNjRMMyA4LjI3djcuNDZMOC4yNyAyMWg3LjQ2bDEuNjQtMS42NEwyMS4wMSAyM2wxLjQxLTEuNDFMMi40MSAxLjU4ek0xNC45IDE5SDkuMUw1IDE0LjlWOS4xbDEuMDUtMS4wNSA5LjkgOS45TDE0LjkgMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXBvcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjczIDNIOC4yN0wzIDguMjd2Ny40Nkw4LjI3IDIxaDcuNDZMMjEgMTUuNzNWOC4yN0wxNS43MyAzek0xOSAxNC45IDE0LjkgMTlIOS4xTDUgMTQuOVY5LjFMOS4xIDVoNS44TDE5IDkuMXY1Ljh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxNlwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA3aDJ2N2gtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNhdmVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDEydjdINXYtN0gzdjdjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtN2gtMnptLTYgLjY3IDIuNTktMi41OEwxNyAxMS41bC01IDUtNS01IDEuNDEtMS40MUwxMSAxMi42N1YzaDJ2OS42N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNhdmVBcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDEyLjRWN2wtNC00SDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDcuNGwyLTJINVY1aDExLjE3TDE5IDcuODN2Ni41N2wyLTJ6TTE1IDE1YzAgMS42Ni0xLjM0IDMtMyAzcy0zLTEuMzQtMy0zIDEuMzQtMyAzLTMgMyAxLjM0IDMgM3pNNiA2aDl2NEg2VjZ6bTEzLjk5IDEwLjI1IDEuNzcgMS43N0wxNi43NyAyM0gxNXYtMS43N2w0Ljk5LTQuOTh6bTMuMjYuMjYtLjg1Ljg1LTEuNzctMS43Ny44NS0uODVjLjItLjIuNTEtLjIuNzEgMGwxLjA2IDEuMDZjLjIuMi4yLjUyIDAgLjcxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2F2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY3bC00LTR6bTIgMTZINVY1aDExLjE3TDE5IDcuODNWMTl6bS03LTdjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zek02IDZoOXY0SDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZWxlY3RBbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNWgyVjNjLTEuMSAwLTIgLjktMiAyem0wIDhoMnYtMkgzdjJ6bTQgOGgydi0ySDd2MnpNMyA5aDJWN0gzdjJ6bTEwLTZoLTJ2MmgyVjN6bTYgMHYyaDJjMC0xLjEtLjktMi0yLTJ6TTUgMjF2LTJIM2MwIDEuMS45IDIgMiAyem0tMi00aDJ2LTJIM3Yyek05IDNIN3YyaDJWM3ptMiAxOGgydi0yaC0ydjJ6bTgtOGgydi0yaC0ydjJ6bTAgOGMxLjEgMCAyLS45IDItMmgtMnYyem0wLTEyaDJWN2gtMnYyem0wIDhoMnYtMmgtMnYyem0tNCA0aDJ2LTJoLTJ2MnptMC0xNmgyVjNoLTJ2MnpNNyAxN2gxMFY3SDd2MTB6bTItOGg2djZIOVY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNC4wMSA2LjAzIDcuNTEgMy4yMi03LjUyLTEgLjAxLTIuMjJtNy41IDguNzJMNCAxNy45N3YtMi4yMmw3LjUxLTFNMi4wMSAzIDIgMTBsMTUgMi0xNSAyIC4wMSA3TDIzIDEyIDIuMDEgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNoaWVsZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIgNCA1djYuMDljMCA1LjA1IDMuNDEgOS43NiA4IDEwLjkxIDQuNTktMS4xNSA4LTUuODYgOC0xMC45MVY1bC04LTN6bTYgOS4wOWMwIDQtMi41NSA3LjctNiA4LjgzLTMuNDUtMS4xMy02LTQuODItNi04Ljgzdi00LjdsNi0yLjI1IDYgMi4yNXY0Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE4aDZ2LTJIM3Yyek0zIDZ2MmgxOFY2SDN6bTAgN2gxMnYtMkgzdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcXVhcmVGb290IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcuNjYgMTcuNjYtMS4wNiAxLjA2LS43MS0uNzEgMS4wNi0xLjA2LTEuOTQtMS45NC0xLjA2IDEuMDYtLjcxLS43MSAxLjA2LTEuMDYtMS45NC0xLjk0LTEuMDYgMS4wNi0uNzEtLjcxIDEuMDYtMS4wNkw5LjcgOS43bC0xLjA2IDEuMDYtLjcxLS43MSAxLjA2LTEuMDYtMS45NC0xLjk0LTEuMDYgMS4wNi0uNzEtLjcxIDEuMDYtMS4wNkw0IDR2MTRjMCAxLjEuOSAyIDIgMmgxNGwtMi4zNC0yLjM0ek03IDE3di01Ljc2TDEyLjc2IDE3SDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdGFja2VkQmFyQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDloNHYxMUg0ek00IDRoNHY0SDR6TTEwIDdoNHY0aC00ek0xNiAxMGg0djRoLTR6TTE2IDE1aDR2NWgtNHpNMTAgMTJoNHY4aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3RyZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIyMFwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNFwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIyMFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMy45NDMgOC42MTkgNC40MDQtNC4zOTIgMS40MTMgMS40MTYtNC40MDUgNC4zOTJ6TTguMzIgOS42OGwuMzEuMzIgMS40Mi0xLjQxLTQuMDItNC4wNGgtLjAxbC0uMzEtLjMyLTEuNDIgMS40MSA0LjAyIDQuMDV6TTE1LjQxIDEzLjk0IDE0IDE1LjM1bDMuOTkgNC4wMS4zNS4zNSAxLjQyLTEuNDEtMy45OS00LjAxek04LjU5IDEzLjk1bC00LjAzIDQuMDEtLjMyLjMzIDEuNDEgMS40MSA0LjAzLTQuMDIuMzMtLjMyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiNFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTBWOGgtNFY0aC0ydjRoLTRWNEg4djRINHYyaDR2NEg0djJoNHY0aDJ2LTRoNHY0aDJ2LTRoNHYtMmgtNHYtNGg0em0tNiA0aC00di00aDR2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRleHRGb3JtYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTd2MmgxNHYtMkg1em00LjUtNC4yaDVsLjkgMi4yaDIuMUwxMi43NSA0aC0xLjVMNi41IDE1aDIuMWwuOS0yLjJ6TTEyIDUuOTggMTMuODcgMTFoLTMuNzRMMTIgNS45OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVVuYXJjaGl2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuNTQgNS4yMy0xLjM5LTEuNjhDMTguODggMy4yMSAxOC40NyAzIDE4IDNINmMtLjQ3IDAtLjg4LjIxLTEuMTYuNTVMMy40NiA1LjIzQzMuMTcgNS41NyAzIDYuMDIgMyA2LjVWMTljMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2LjVjMC0uNDgtLjE3LS45My0uNDYtMS4yN3pNNi4yNCA1aDExLjUybC44MyAxSDUuNDJsLjgyLTF6TTUgMTlWOGgxNHYxMUg1em0zLTVoMi41NXYzaDIuOXYtM0gxNmwtNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVW5kbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVVcGNvbWluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjYgMTAuODEgMTYuMTkgOS40bDMuNTYtMy41NSAxLjQxIDEuNDFjLS4xMS4wMy0zLjU2IDMuNTUtMy41NiAzLjU1ek0xMyAzaC0ydjVoMlYzem0tNi42IDcuODFMNy44MSA5LjQgNC4yNiA1Ljg0IDIuODQgNy4yNmMuMTEuMDMgMy41NiAzLjU1IDMuNTYgMy41NXpNMjAgMTRoLTMuNDJjLS43NyAxLjc2LTIuNTQgMy00LjU4IDNzLTMuODEtMS4yNC00LjU4LTNINHY1aDE2di01bTAtMmMxLjEgMCAyIC45IDIgMnY1YzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0ydi01YzAtMS4xLjktMiAyLTJoNWMwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zaDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXYXZlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTYuOTljLTEuMzUgMC0yLjIuNDItMi45NS44LS42NS4zMy0xLjE4LjYtMi4wNS42LS45IDAtMS40LS4yNS0yLjA1LS42LS43NS0uMzgtMS41Ny0uOC0yLjk1LS44cy0yLjIuNDItMi45NS44Yy0uNjUuMzMtMS4xNy42LTIuMDUuNnYxLjk1YzEuMzUgMCAyLjItLjQyIDIuOTUtLjguNjUtLjMzIDEuMTctLjYgMi4wNS0uNnMxLjQuMjUgMi4wNS42Yy43NS4zOCAxLjU3LjggMi45NS44czIuMi0uNDIgMi45NS0uOGMuNjUtLjMzIDEuMTgtLjYgMi4wNS0uNi45IDAgMS40LjI1IDIuMDUuNi43NS4zOCAxLjU4LjggMi45NS44di0xLjk1Yy0uOSAwLTEuNC0uMjUtMi4wNS0uNi0uNzUtLjM4LTEuNi0uOC0yLjk1LS44em0wLTQuNDVjLTEuMzUgMC0yLjIuNDMtMi45NS44LS42NS4zMi0xLjE4LjYtMi4wNS42LS45IDAtMS40LS4yNS0yLjA1LS42LS43NS0uMzgtMS41Ny0uOC0yLjk1LS44cy0yLjIuNDMtMi45NS44Yy0uNjUuMzItMS4xNy42LTIuMDUuNnYxLjk1YzEuMzUgMCAyLjItLjQzIDIuOTUtLjguNjUtLjM1IDEuMTUtLjYgMi4wNS0uNnMxLjQuMjUgMi4wNS42Yy43NS4zOCAxLjU3LjggMi45NS44czIuMi0uNDMgMi45NS0uOGMuNjUtLjM1IDEuMTUtLjYgMi4wNS0uNnMxLjQuMjUgMi4wNS42Yy43NS4zOCAxLjU4LjggMi45NS44di0xLjk1Yy0uOSAwLTEuNC0uMjUtMi4wNS0uNi0uNzUtLjM4LTEuNi0uOC0yLjk1LS44em0yLjk1LTguMDhjLS43NS0uMzgtMS41OC0uOC0yLjk1LS44cy0yLjIuNDItMi45NS44Yy0uNjUuMzItMS4xOC42LTIuMDUuNi0uOSAwLTEuNC0uMjUtMi4wNS0uNi0uNzUtLjM3LTEuNTctLjgtMi45NS0uOHMtMi4yLjQyLTIuOTUuOGMtLjY1LjMzLTEuMTcuNi0yLjA1LjZ2MS45M2MxLjM1IDAgMi4yLS40MyAyLjk1LS44LjY1LS4zMyAxLjE3LS42IDIuMDUtLjZzMS40LjI1IDIuMDUuNmMuNzUuMzggMS41Ny44IDIuOTUuOHMyLjItLjQzIDIuOTUtLjhjLjY1LS4zMiAxLjE4LS42IDIuMDUtLjYuOSAwIDEuNC4yNSAyLjA1LjYuNzUuMzggMS41OC44IDIuOTUuOFY1LjA0Yy0uOSAwLTEuNC0uMjUtMi4wNS0uNTh6TTE3IDguMDljLTEuMzUgMC0yLjIuNDMtMi45NS44LS42NS4zNS0xLjE1LjYtMi4wNS42cy0xLjQtLjI1LTIuMDUtLjZjLS43NS0uMzgtMS41Ny0uOC0yLjk1LS44cy0yLjIuNDMtMi45NS44Yy0uNjUuMzUtMS4xNS42LTIuMDUuNnYxLjk1YzEuMzUgMCAyLjItLjQzIDIuOTUtLjguNjUtLjMyIDEuMTgtLjYgMi4wNS0uNnMxLjQuMjUgMi4wNS42Yy43NS4zOCAxLjU3LjggMi45NS44czIuMi0uNDMgMi45NS0uOGMuNjUtLjMyIDEuMTgtLjYgMi4wNS0uNi45IDAgMS40LjI1IDIuMDUuNi43NS4zOCAxLjU4LjggMi45NS44VjkuNDljLS45IDAtMS40LS4yNS0yLjA1LS42LS43NS0uMzgtMS42LS44LTIuOTUtLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXZWJTdG9yaWVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNHYxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yek0xMyAySDRjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoOWMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE4SDRWNGg5djE2ek0yMSA2djEyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOWMwLS44My0uNjctMS41LTEuNS0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXZWVrZW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA5VjdjMC0xLjY1LTEuMzUtMy0zLTNINkM0LjM1IDQgMyA1LjM1IDMgN3YyYy0xLjY1IDAtMyAxLjM1LTMgM3Y1YzAgMS42NSAxLjM1IDMgMyAzaDE4YzEuNjUgMCAzLTEuMzUgMy0zdi01YzAtMS42NS0xLjM1LTMtMy0zek01IDdjMC0uNTUuNDUtMSAxLTFoMTJjLjU1IDAgMSAuNDUgMSAxdjIuNzhjLS42MS41NS0xIDEuMzQtMSAyLjIydjJINnYtMmMwLS44OC0uMzktMS42Ny0xLTIuMjJWN3ptMTcgMTBjMCAuNTUtLjQ1IDEtMSAxSDNjLS41NSAwLTEtLjQ1LTEtMXYtNWMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2NGgxNnYtNGMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdoZXJlVG9Wb3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxQzcuNTkgMSA0IDQuNTkgNCA5YzAgNS41NyA2Ljk2IDEzLjM0IDcuMjYgMTMuNjdsLjc0LjgyLjc0LS44MkMxMy4wNCAyMi4zNCAyMCAxNC41NyAyMCA5YzAtNC40MS0zLjU5LTgtOC04em0wIDE5LjQ3QzkuODIgMTcuODYgNiAxMi41NCA2IDljMC0zLjMxIDIuNjktNiA2LTZzNiAyLjY5IDYgNmMwIDMuODMtNC4yNSA5LjM2LTYgMTEuNDd6bS0xLjUzLTkuM0w4LjcxIDkuNGwtMS40MiAxLjQyTDEwLjQ3IDE0bDYuMDEtNi4wMS0xLjQxLTEuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUxeE1vYmlsZWRhdGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgN2g0djEwSDZWOUg0Vjd6bTExLjgzIDQuNzJMMTguNjYgN2gtMi4zM2wtMS42NiAyLjc3TDEzIDdoLTIuMzNsMi44MyA0LjcyTDEwLjMzIDE3aDIuMzNsMi0zLjM0IDIgMy4zNEgxOWwtMy4xNy01LjI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lMzBGcHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgNXYzaDZ2Mi41SDN2M2g1VjE2SDJ2M2g2YzEuNjYgMCAzLTEuMzQgMy0zdi0xLjlBMi4xIDIuMSAwIDAgMCA4LjkgMTIgMi4xIDIuMSAwIDAgMCAxMSA5LjlWOGMwLTEuNjYtMS4zNC0zLTMtM0gyem0xNyAzdjhoLTRWOGg0bTAtM2gtNGMtMS42NiAwLTMgMS4zNC0zIDN2OGMwIDEuNjYgMS4zNCAzIDMgM2g0YzEuNjYgMCAzLTEuMzQgMy0zVjhjMC0xLjY2LTEuMzQtMy0zLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUzZ01vYmlsZWRhdGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgN3YyaDV2Mkg0djJoNHYySDN2Mmg1YzEuMSAwIDItLjkgMi0ydi0xLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41LjgzIDAgMS41LS42NyAxLjUtMS41VjljMC0xLjEtLjktMi0yLTJIM3ptMTggNHY0YzAgMS4xLS45IDItMiAyaC01Yy0xLjEgMC0yLS45LTItMlY5YzAtMS4xLjktMiAyLTJoNWMxLjEgMCAyIC45IDIgMmgtN3Y2aDV2LTJoLTIuNXYtMkgyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTRnTW9iaWxlZGF0YSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA3SDd2NUg1VjdIM3Y3aDR2M2gydi0zaDJ2LTJIOVY3em04IDR2MmgydjJoLTVWOWg3YzAtMS4xLS45LTItMi0yaC01Yy0xLjEgMC0yIC45LTIgMnY2YzAgMS4xLjkgMiAyIDJoNWMxLjEgMCAyLS45IDItMnYtNGgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTRnUGx1c01vYmlsZWRhdGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDExdjJoMnYyaC00VjloNmMwLTEuMS0uOS0yLTItMmgtNGMtMS4xIDAtMiAuOS0yIDJ2NmMwIDEuMS45IDIgMiAyaDRjMS4xIDAgMi0uOSAyLTJ2LTRoLTR6bTExIDBoLTJWOWgtMnYyaC0ydjJoMnYyaDJ2LTJoMnYtMnpNNyA3SDV2NUgzVjdIMXY3aDR2M2gydi0zaDF2LTJIN1Y3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lNjBGcHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDh2OGgtNFY4aDRtMC0zaC00Yy0xLjY2IDAtMyAxLjM0LTMgM3Y4YzAgMS42NiAxLjM0IDMgMyAzaDRjMS42NiAwIDMtMS4zNCAzLTNWOGMwLTEuNjYtMS4zNC0zLTMtM3ptLTkgM1Y1SDVDMy4zNCA1IDIgNi4zNCAyIDh2OGMwIDEuNjYgMS4zNCAzIDMgM2gzYzEuNjYgMCAzLTEuMzQgMy0zdi0zYzAtMS42Ni0xLjM0LTMtMy0zSDVWOGg1em0tMiA1djNINXYtM2gzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWNjZXNzQWxhcm0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyIDUuNzItNC42LTMuODYtMS4yOSAxLjUzIDQuNiAzLjg2TDIyIDUuNzJ6TTcuODggMy4zOSA2LjYgMS44NiAyIDUuNzFsMS4yOSAxLjUzIDQuNTktMy44NXpNMTIuNSA4SDExdjZsNC43NSAyLjg1Ljc1LTEuMjMtNC0yLjM3Vjh6TTEyIDRjLTQuOTcgMC05IDQuMDMtOSA5czQuMDIgOSA5IDlhOSA5IDAgMCAwIDAtMTh6bTAgMTZjLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWNjZXNzQWxhcm1zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMiA1LjctNC42LTMuOS0xLjMgMS41IDQuNiAzLjlMMjIgNS43ek03LjkgMy40IDYuNiAxLjkgMiA1LjdsMS4zIDEuNSA0LjYtMy44ek0xMi41IDhIMTF2Nmw0LjcgMi45LjgtMS4yLTQtMi40Vjh6TTEyIDRjLTUgMC05IDQtOSA5czQgOSA5IDkgOS00IDktOS00LTktOS05em0wIDE2Yy0zLjkgMC03LTMuMS03LTdzMy4xLTcgNy03IDcgMy4xIDcgNy0zLjEgNy03IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBY2Nlc3NUaW1lRmlsbGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyem0zLjMgMTQuNzFMMTEgMTIuNDFWN2gydjQuNTlsMy43MSAzLjcxLTEuNDIgMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFjY2Vzc1RpbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHptLjUtMTNIMTF2Nmw1LjI1IDMuMTUuNzUtMS4yMy00LjUtMi42N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkVW5pdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxSDdjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnpNNyA0VjNoMTB2MUg3em0wIDE0VjZoMTB2MTJIN3ptMCAzdi0xaDEwdjFIN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgN0g4djJoOFY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRkQWxhcm0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuODggMy4zOSA2LjYgMS44NiAyIDUuNzFsMS4yOSAxLjUzIDQuNTktMy44NXpNMjIgNS43MmwtNC42LTMuODYtMS4yOSAxLjUzIDQuNiAzLjg2TDIyIDUuNzJ6TTEyIDRjLTQuOTcgMC05IDQuMDMtOSA5czQuMDIgOSA5IDlhOSA5IDAgMCAwIDAtMTh6bTAgMTZjLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3em0xLTExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTNWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZFRvSG9tZVNjcmVlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMS4wMSA4IDFjLTEuMSAwLTIgLjktMiAydjNoMlY1aDEwdjE0SDh2LTFINnYzYzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTAgMTVoMlY4SDV2MmgzLjU5TDMgMTUuNTkgNC40MSAxNyAxMCAxMS40MVYxNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFpciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNSAxN2MwIDEuNjUtMS4zNSAzLTMgM3MtMy0xLjM1LTMtM2gyYzAgLjU1LjQ1IDEgMSAxczEtLjQ1IDEtMS0uNDUtMS0xLTFIMnYtMmg5LjVjMS42NSAwIDMgMS4zNSAzIDN6TTE5IDYuNUMxOSA0LjU3IDE3LjQzIDMgMTUuNSAzUzEyIDQuNTcgMTIgNi41aDJjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjVTMTYuMzMgOCAxNS41IDhIMnYyaDEzLjVjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjV6bS0uNSA0LjVIMnYyaDE2LjVjLjgzIDAgMS41LjY3IDEuNSAxLjVzLS42NyAxLjUtMS41IDEuNXYyYzEuOTMgMCAzLjUtMS41NyAzLjUtMy41UzIwLjQzIDExIDE4LjUgMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBaXJwbGFuZVRpY2tldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuMTkgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAydjRjMS4xIDAgMS45OS45IDEuOTkgMnMtLjg5IDItMiAydjRjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS44MS0yLTEuODEtMnpNMjAgMThINHYtMi41NGMxLjE5LS42OSAyLTEuOTkgMi0zLjQ2IDAtMS40OC0uOC0yLjc3LTEuOTktMy40Nkw0IDZoMTZ2MTJ6TTguODcgMTUuNjZsLTEuNjYtMi44OC45My0uMjUgMS4yNi45OSAyLjM5LS42NC0yLjQtNC4xNiAxLjQtLjM4IDQuMDEgMy43NCAyLjQ0LS42NWEuOTY3Ljk2NyAwIDAgMSAxLjE4LjY4Ljk4OC45ODggMCAwIDEtLjY5IDEuMTlsLTguODYgMi4zNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFpcnBsYW5lbW9kZUFjdGl2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTZ2LTJsLTguNS01VjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVzLTEuNS42Ny0xLjUgMS41VjlMMiAxNHYybDguNS0yLjVWMTlMOCAyMC41VjIybDQtMSA0IDF2LTEuNUwxMy41IDE5di01LjVMMjIgMTZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBaXJwbGFuZW1vZGVJbmFjdGl2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNSA3LjY3VjMuNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNVY5bDguNSA1djJsLTQuNDktMS4zMi03LjAxLTcuMDF6bTkuMjggMTQuOTQgMS40MS0xLjQxLTcuNjktNy43LTMuOTQtMy45NC02Ljc1LTYuNzUtMS40MiAxLjQxIDYuMzggNi4zOEwyIDE0djJsOC41LTIuNVYxOUw4IDIwLjVWMjJsNC0xIDQgMXYtMS41TDEzLjUgMTl2LTIuNjdsNi4yOCA2LjI4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQW9kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxLjAxIDcgMWMtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNyAyMUg3di0xaDEwdjF6bTAtM0g3VjZoMTB2MTJ6bTAtMTRIN1YzaDEwdjF6bS05IDZoOHYxLjVIOFYxMHptMSAzaDZ2MS41SDlWMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCYXR0ZXJ5MEJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDV2MTZjMCAuNTUtLjQ1IDEtMSAxSDhjLS41NSAwLTEtLjQ1LTEtMVY1YzAtLjU1LjQ1LTEgMS0xaDJWMmg0djJoMmMuNTUgMCAxIC40NSAxIDF6bS0yIDFIOXYxNGg2VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCYXR0ZXJ5MUJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDV2MTZjMCAuNTUtLjQ1IDEtMSAxSDhjLS41NSAwLTEtLjQ1LTEtMVY1YzAtLjU1LjQ1LTEgMS0xaDJWMmg0djJoMmMuNTUgMCAxIC40NSAxIDF6bS0yIDFIOXYxMmg2VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCYXR0ZXJ5MkJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDV2MTZjMCAuNTUtLjQ1IDEtMSAxSDhjLS41NSAwLTEtLjQ1LTEtMVY1YzAtLjU1LjQ1LTEgMS0xaDJWMmg0djJoMmMuNTUgMCAxIC40NSAxIDF6bS0yIDFIOXYxMGg2VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCYXR0ZXJ5M0JhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDV2MTZjMCAuNTUtLjQ1IDEtMSAxSDhjLS41NSAwLTEtLjQ1LTEtMVY1YzAtLjU1LjQ1LTEgMS0xaDJWMmg0djJoMmMuNTUgMCAxIC40NSAxIDF6bS0yIDFIOXY4aDZWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJhdHRlcnk0QmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNXYxNmMwIC41NS0uNDUgMS0xIDFIOGMtLjU1IDAtMS0uNDUtMS0xVjVjMC0uNTUuNDUtMSAxLTFoMlYyaDR2MmgyYy41NSAwIDEgLjQ1IDEgMXptLTIgMUg5djZoNlY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmF0dGVyeTVCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA1djE2YzAgLjU1LS40NSAxLTEgMUg4Yy0uNTUgMC0xLS40NS0xLTFWNWMwLS41NS40NS0xIDEtMWgyVjJoNHYyaDJjLjU1IDAgMSAuNDUgMSAxem0tMiAxSDl2NGg2VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCYXR0ZXJ5NkJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDV2MTZjMCAuNTUtLjQ1IDEtMSAxSDhjLS41NSAwLTEtLjQ1LTEtMVY1YzAtLjU1LjQ1LTEgMS0xaDJWMmg0djJoMmMuNTUgMCAxIC40NSAxIDF6bS0yIDFIOXYyaDZWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJhdHRlcnlBbGVydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNjcgNEgxNFYyaC00djJIOC4zM0M3LjYgNCA3IDQuNiA3IDUuMzN2MTUuMzNDNyAyMS40IDcuNiAyMiA4LjMzIDIyaDcuMzNjLjc0IDAgMS4zNC0uNiAxLjM0LTEuMzNWNS4zM0MxNyA0LjYgMTYuNCA0IDE1LjY3IDR6TTEzIDE4aC0ydi0yaDJ2MnptMC00aC0yVjloMnY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmF0dGVyeUNoYXJnaW5nRnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNjcgNEgxNFYyaC00djJIOC4zM0M3LjYgNCA3IDQuNiA3IDUuMzN2MTUuMzNDNyAyMS40IDcuNiAyMiA4LjMzIDIyaDcuMzNjLjc0IDAgMS4zNC0uNiAxLjM0LTEuMzNWNS4zM0MxNyA0LjYgMTYuNCA0IDE1LjY3IDR6TTExIDIwdi01LjVIOUwxMyA3djUuNWgyTDExIDIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmF0dGVyeUZ1bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjY3IDRIMTRWMmgtNHYySDguMzNDNy42IDQgNyA0LjYgNyA1LjMzdjE1LjMzQzcgMjEuNCA3LjYgMjIgOC4zMyAyMmg3LjMzYy43NCAwIDEuMzQtLjYgMS4zNC0xLjMzVjUuMzNDMTcgNC42IDE2LjQgNCAxNS42NyA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmF0dGVyeVNhdmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA0aC0yVjJoLTR2Mkg4Yy0uNTUgMC0xIC40NS0xIDF2MTZjMCAuNTUuNDUgMSAxIDFoOGMuNTUgMCAxLS40NSAxLTFWNWMwLS41NS0uNDUtMS0xLTF6bS0xIDEwaC0ydjJoLTJ2LTJIOXYtMmgydi0yaDJ2MmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCYXR0ZXJ5U3RkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS42NyA0SDE0VjJoLTR2Mkg4LjMzQzcuNiA0IDcgNC42IDcgNS4zM3YxNS4zM0M3IDIxLjQgNy42IDIyIDguMzMgMjJoNy4zM2MuNzQgMCAxLjM0LS42IDEuMzQtMS4zM1Y1LjMzQzE3IDQuNiAxNi40IDQgMTUuNjcgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJhdHRlcnlVbmtub3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS42NyA0SDE0VjJoLTR2Mkg4LjMzQzcuNiA0IDcgNC42IDcgNS4zM3YxNS4zM0M3IDIxLjQgNy42IDIyIDguMzMgMjJoNy4zM2MuNzQgMCAxLjM0LS42IDEuMzQtMS4zM1Y1LjMzQzE3IDQuNiAxNi40IDQgMTUuNjcgNHpNMTMgMThoLTJ2LTJoMnYyem0xLjMtNS4zMXMtLjM4LjQyLS42Ny43MWMtLjQ4LjQ4LS44MyAxLjE1LS44MyAxLjZoLTEuNmMwLS44My40Ni0xLjUyLjkzLTJsLjkzLS45NEExLjQ5OCAxLjQ5OCAwIDAgMCAxMiA5LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41SDljMC0xLjY2IDEuMzQtMyAzLTNzMyAxLjM0IDMgM2MwIC42Ni0uMjcgMS4yNi0uNyAxLjY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmxvb2R0eXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDE2aDZ2Mkg5ek0xMyA5aC0ydjJIOXYyaDJ2Mmgydi0yaDJ2LTJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJjLTUuMzMgNC41NS04IDguNDgtOCAxMS44IDAgNC45OCAzLjggOC4yIDggOC4yczgtMy4yMiA4LTguMmMwLTMuMzItMi42Ny03LjI1LTgtMTEuOHptMCAxOGMtMy4zNSAwLTYtMi41Ny02LTYuMiAwLTIuMzQgMS45NS01LjQ0IDYtOS4xNCA0LjA1IDMuNyA2IDYuNzkgNiA5LjE0IDAgMy42My0yLjY1IDYuMi02IDYuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJsdWV0b290aENvbm5lY3RlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNyAxMi0yLTItMiAyIDIgMiAyLTJ6bTEwLjcxLTQuMjlMMTIgMmgtMXY3LjU5TDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDExIDE0LjQxVjIyaDFsNS43MS01LjcxLTQuMy00LjI5IDQuMy00LjI5ek0xMyA1LjgzbDEuODggMS44OEwxMyA5LjU5VjUuODN6bTEuODggMTAuNDZMMTMgMTguMTd2LTMuNzZsMS44OCAxLjg4ek0xOSAxMGwtMiAyIDIgMiAyLTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmx1ZXRvb3RoRGlzYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEzIDUuODMgMS44OCAxLjg4LTEuNiAxLjYgMS40MSAxLjQxIDMuMDItMy4wMkwxMiAyaC0xdjUuMDNsMiAydi0zLjJ6TTUuNDEgNCA0IDUuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDExIDE0LjQxVjIyaDFsNC4yOS00LjI5IDIuMyAyLjI5TDIwIDE4LjU5IDUuNDEgNHpNMTMgMTguMTd2LTMuNzZsMS44OCAxLjg4TDEzIDE4LjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmx1ZXRvb3RoRHJpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNi41XCIsXCJjeVwiOlwiMTQuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxN0g0di01aDExdi0ySDQuODFsMS4wNC0zSDE1VjVINS41Yy0uNjYgMC0xLjIxLjQyLTEuNDIgMS4wMUwyIDEydjhjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTFoMTJ2MWMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtOGgtMnY1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAzLjg1IDE5LjE1IDFoLS41djMuNzlsLTIuMy0yLjI5LS43LjdMMTguNDQgNmwtMi43OSAyLjc5LjcuNzEgMi4zLTIuM1YxMWguNUwyMiA4LjE0IDE5Ljg1IDYgMjIgMy44NXptLTIuMzUtLjk0Ljk0Ljk0LS45NC45NFYyLjkxem0uOTQgNS4yMy0uOTQuOTRWNy4ybC45NC45NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJsdWV0b290aFNlYXJjaGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQuMjQgMTIuMDEgMi4zMiAyLjMyYy4yOC0uNzIuNDQtMS41MS40NC0yLjMzcy0uMTYtMS41OS0uNDMtMi4zMWwtMi4zMyAyLjMyem01LjI5LTUuMy0xLjI2IDEuMjZjLjYzIDEuMjEuOTggMi41Ny45OCA0LjAycy0uMzYgMi44Mi0uOTggNC4wMmwxLjIgMS4yYTkuOTM2IDkuOTM2IDAgMCAwIDEuNTQtNS4zMWMtLjAxLTEuODktLjU1LTMuNjctMS40OC01LjE5em0tMy44MiAxTDEwIDJIOXY3LjU5TDQuNDEgNSAzIDYuNDEgOC41OSAxMiAzIDE3LjU5IDQuNDEgMTkgOSAxNC40MVYyMmgxbDUuNzEtNS43MS00LjMtNC4yOSA0LjMtNC4yOXpNMTEgNS44M2wxLjg4IDEuODhMMTEgOS41OVY1Ljgzem0xLjg4IDEwLjQ2TDExIDE4LjE3di0zLjc2bDEuODggMS44OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJsdWV0b290aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNzEgNy43MSAxMiAyaC0xdjcuNTlMNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTEgMTQuNDFWMjJoMWw1LjcxLTUuNzEtNC4zLTQuMjkgNC4zLTQuMjl6TTEzIDUuODNsMS44OCAxLjg4TDEzIDkuNTlWNS44M3ptMS44OCAxMC40NkwxMyAxOC4xN3YtMy43NmwxLjg4IDEuODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCcmlnaHRuZXNzQXV0byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTEgNy0zLjIgOWgxLjlsLjctMmgzLjJsLjcgMmgxLjlMMTMgN2gtMnptLS4xNSA1LjY1TDEyIDlsMS4xNSAzLjY1aC0yLjN6TTIwIDguNjlWNGgtNC42OUwxMiAuNjkgOC42OSA0SDR2NC42OUwuNjkgMTIgNCAxNS4zMVYyMGg0LjY5TDEyIDIzLjMxIDE1LjMxIDIwSDIwdi00LjY5TDIzLjMxIDEyIDIwIDguNjl6bS0yIDUuNzlWMThoLTMuNTJMMTIgMjAuNDggOS41MiAxOEg2di0zLjUyTDMuNTIgMTIgNiA5LjUyVjZoMy41MkwxMiAzLjUyIDE0LjQ4IDZIMTh2My41MkwyMC40OCAxMiAxOCAxNC40OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJyaWdodG5lc3NIaWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OUwyMy4zMSAxMiAyMCA4LjY5em0tMiA1Ljc5VjE4aC0zLjUyTDEyIDIwLjQ4IDkuNTIgMThINnYtMy41MkwzLjUyIDEyIDYgOS41MlY2aDMuNTJMMTIgMy41MiAxNC40OCA2SDE4djMuNTJMMjAuNDggMTIgMTggMTQuNDh6TTEyIDZjLTMuMzEgMC02IDIuNjktNiA2czIuNjkgNiA2IDYgNi0yLjY5IDYtNi0yLjY5LTYtNi02em0wIDEwYy0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00IDQgMS43OSA0IDQtMS43OSA0LTQgNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIyLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJyaWdodG5lc3NMb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDguNjlWNGgtNC42OUwxMiAuNjkgOC42OSA0SDR2NC42OUwuNjkgMTIgNCAxNS4zMVYyMGg0LjY5TDEyIDIzLjMxIDE1LjMxIDIwSDIwdi00LjY5TDIzLjMxIDEyIDIwIDguNjl6bS0yIDUuNzlWMThoLTMuNTJMMTIgMjAuNDggOS41MiAxOEg2di0zLjUyTDMuNTIgMTIgNiA5LjUyVjZoMy41MkwxMiAzLjUyIDE0LjQ4IDZIMTh2My41MkwyMC40OCAxMiAxOCAxNC40OHpNMTIgNmMtMy4zMSAwLTYgMi42OS02IDZzMi42OSA2IDYgNiA2LTIuNjkgNi02LTIuNjktNi02LTZ6bTAgMTBjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTQgNCAxLjc5IDQgNC0xLjc5IDQtNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnJpZ2h0bmVzc01lZGl1bSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOC42OVY0aC00LjY5TDEyIC42OSA4LjY5IDRINHY0LjY5TC42OSAxMiA0IDE1LjMxVjIwaDQuNjlMMTIgMjMuMzEgMTUuMzEgMjBIMjB2LTQuNjlMMjMuMzEgMTIgMjAgOC42OXptLTIgNS43OVYxOGgtMy41MkwxMiAyMC40OCA5LjUyIDE4SDZ2LTMuNTJMMy41MiAxMiA2IDkuNTJWNmgzLjUyTDEyIDMuNTIgMTQuNDggNkgxOHYzLjUyTDIwLjQ4IDEyIDE4IDE0LjQ4ek0xMiA2djEyYzMuMzEgMCA2LTIuNjkgNi02cy0yLjY5LTYtNi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDVWNGMwLS41NS0uNDUtMS0xLTFoLTJjLS41NSAwLTEgLjQ1LTEgMXYxaC0xdjRjMCAuNTUuNDUgMSAxIDFoMXY3YzAgMS4xLS45IDItMiAycy0yLS45LTItMlY3YzAtMi4yMS0xLjc5LTQtNC00UzUgNC43OSA1IDd2N0g0Yy0uNTUgMC0xIC40NS0xIDF2NGgxdjFjMCAuNTUuNDUgMSAxIDFoMmMuNTUgMCAxLS40NSAxLTF2LTFoMXYtNGMwLS41NS0uNDUtMS0xLTFIN1Y3YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ2MTBjMCAyLjIxIDEuNzkgNCA0IDRzNC0xLjc5IDQtNHYtN2gxYy41NSAwIDEtLjQ1IDEtMVY1aC0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FtZXJhc3dpdGNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA3aC0xbC0xLTFoLTRMOSA3SDhjLTEuMSAwLTIgLjktMiAydjZjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjljMC0xLjEtLjktMi0yLTJ6bTAgOEg4VjloMS44M2wxLTFoMi4zNGwxIDFIMTZ2NnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNTcuNTIgMTMuMDUgNWwxLjQxLTEuNDEtMS41NC0xLjU0QzE3LjcgMi40NiAyMS41MyA2LjI0IDIyIDExaDJDMjMuMzYgMy4zIDE1Ljc5LTEuNjcgOC41Ny41MnpNOS41NCAyMC40MWwxLjU0IDEuNTRDNi4zIDIxLjU0IDIuNDcgMTcuNzYgMiAxM0gwYy42NCA3LjcgOC4yMSAxMi42NyAxNS40MyAxMC40OEwxMC45NSAxOWwtMS40MSAxLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ3JlZGl0U2NvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMThjMCAxLjExLjg5IDIgMiAyaDV2LTJINHYtNmgxOFY2YzAtMS4xMS0uODktMi0yLTJ6bTAgNEg0VjZoMTZ2MnptLTUuMDcgMTEuMTctMi44My0yLjgzLTEuNDEgMS40MUwxNC45MyAyMiAyMiAxNC45M2wtMS40MS0xLjQxLTUuNjYgNS42NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURhcmtNb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4zNyA1LjUxQTcuMzUgNy4zNSAwIDAgMCA5LjEgNy41YzAgNC4wOCAzLjMyIDcuNCA3LjQgNy40LjY4IDAgMS4zNS0uMDkgMS45OS0uMjdBNy4wMTQgNy4wMTQgMCAwIDEgMTIgMTljLTMuODYgMC03LTMuMTQtNy03IDAtMi45MyAxLjgxLTUuNDUgNC4zNy02LjQ5ek0xMiAzYTkgOSAwIDEgMCA5IDljMC0uNDYtLjA0LS45Mi0uMS0xLjM2YTUuMzg5IDUuMzg5IDAgMCAxLTQuNCAyLjI2IDUuNDAzIDUuNDAzIDAgMCAxLTMuMTQtOS44Yy0uNDQtLjA2LS45LS4xLTEuMzYtLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEYXRhU2F2ZXJPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDIuMDV2My4wM2MzLjM5LjQ5IDYgMy4zOSA2IDYuOTIgMCAuOS0uMTggMS43NS0uNDggMi41NGwyLjYgMS41M2MuNTYtMS4yNC44OC0yLjYyLjg4LTQuMDcgMC01LjE4LTMuOTUtOS40NS05LTkuOTV6TTEyIDE5Yy0zLjg3IDAtNy0zLjEzLTctNyAwLTMuNTMgMi42MS02LjQzIDYtNi45MlYyLjA1Yy01LjA2LjUtOSA0Ljc2LTkgOS45NSAwIDUuNTIgNC40NyAxMCA5Ljk5IDEwIDMuMzEgMCA2LjI0LTEuNjEgOC4wNi00LjA5bC0yLjYtMS41M0E2Ljk1IDYuOTUgMCAwIDEgMTIgMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEYXRhU2F2ZXJPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgOHYzSDh2MmgzdjNoMnYtM2gzdi0yaC0zVjhoLTJ6bTItNS45NXYzLjAzYzMuMzkuNDkgNiAzLjM5IDYgNi45MiAwIC45LS4xOCAxLjc1LS40OCAyLjU0bDIuNiAxLjUzYy41Ni0xLjI0Ljg4LTIuNjIuODgtNC4wNyAwLTUuMTgtMy45NS05LjQ1LTktOS45NXpNMTIgMTljLTMuODcgMC03LTMuMTMtNy03IDAtMy41MyAyLjYxLTYuNDMgNi02LjkyVjIuMDVjLTUuMDYuNS05IDQuNzYtOSA5Ljk1IDAgNS41MiA0LjQ3IDEwIDkuOTkgMTAgMy4zMSAwIDYuMjQtMS42MSA4LjA2LTQuMDlsLTIuNi0xLjUzQTYuOTUgNi45NSAwIDAgMSAxMiAxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURhdGFVc2FnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMi4wNXYzLjAzYzMuMzkuNDkgNiAzLjM5IDYgNi45MiAwIC45LS4xOCAxLjc1LS40OCAyLjU0bDIuNiAxLjUzYy41Ni0xLjI0Ljg4LTIuNjIuODgtNC4wNyAwLTUuMTgtMy45NS05LjQ1LTktOS45NXpNMTIgMTljLTMuODcgMC03LTMuMTMtNy03IDAtMy41MyAyLjYxLTYuNDMgNi02LjkyVjIuMDVjLTUuMDYuNS05IDQuNzYtOSA5Ljk1IDAgNS41MiA0LjQ3IDEwIDkuOTkgMTAgMy4zMSAwIDYuMjQtMS42MSA4LjA2LTQuMDlsLTIuNi0xLjUzQTYuOTUgNi45NSAwIDAgMSAxMiAxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURhdGFzZXRMaW5rZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE3aDEuMDljLjI4LTEuNjcgMS4yNC0zLjEgMi42LTRIN3Y0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE5VjVoMTR2N2gxYy4zNCAwIC42Ny4wNCAxIC4wOVY1YzAtMS4xLS45LTItMi0ySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMy44MWMtLjM1LS42MS0uNi0xLjI4LS43Mi0ySDV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgN2g0djRIN3pNMTMgN2g0djRoLTR6TTE2IDIwaC0yYy0xLjEgMC0yLS45LTItMnMuOS0yIDItMmgydi0yaC0yYy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0aDJ2LTJ6TTIwIDE0aC0ydjJoMmMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDJoLTJ2MmgyYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOXYtMmgtNnYyaDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEYXRhc2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxM2g0djRIN3pNMTMgMTNoNHY0aC00elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgN2g0djRIN3pNMTMgN2g0djRoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEZXZlbG9wZXJNb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDVoMTB2MmgyVjNjMC0xLjEtLjktMS45OS0yLTEuOTlMNyAxYy0xLjEgMC0yIC45LTIgMnY0aDJWNXptOC40MSAxMS41OUwyMCAxMmwtNC41OS00LjU5TDE0IDguODMgMTcuMTcgMTIgMTQgMTUuMTdsMS40MSAxLjQyek0xMCAxNS4xNyA2LjgzIDEyIDEwIDguODMgOC41OSA3LjQxIDQgMTJsNC41OSA0LjU5TDEwIDE1LjE3ek0xNyAxOUg3di0ySDV2NGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0ydi00aC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEZXZpY2VUaGVybW9zdGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxM1Y1YzAtMS42Ni0xLjM0LTMtMy0zUzkgMy4zNCA5IDV2OGMtMS4yMS45MS0yIDIuMzctMiA0IDAgMi43NiAyLjI0IDUgNSA1czUtMi4yNCA1LTVjMC0xLjYzLS43OS0zLjA5LTItNHptLTQtMlY1YzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXYxaC0xdjFoMXYyaC0xdjFoMXYxaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGV2aWNlc0ZvbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAzaC0zYzAtMS40NC0xLjQ3LTIuNC0yLjc5LTEuODRsLTMgMS4yOUMxMC40OCAyLjc2IDEwIDMuNDkgMTAgNC4yOVYxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTUgMTMuNjgtMyAxLjI5VjQuMjlMMTUgM3YxMy42OHpNMjAgMTloLTUuMzNsMS4xMi0uNDhjLjczLS4zMiAxLjIxLTEuMDQgMS4yMS0xLjg0VjVoM3YxNHpNMiAzaDJ2Mkgyek0yIDE5aDJ2Mkgyek0yIDE1aDJ2Mkgyek0yIDExaDJ2Mkgyek0yIDdoMnYySDJ6TTYgM2gydjJINnpNNiAxOWgydjJINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURldmljZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNmgxOFY0SDRjLTEuMSAwLTIgLjktMiAydjExSDB2M2gxNHYtM0g0VjZ6bTE5IDJoLTZjLS41NSAwLTEgLjQ1LTEgMXYxMGMwIC41NS40NSAxIDEgMWg2Yy41NSAwIDEtLjQ1IDEtMVY5YzAtLjU1LS40NS0xLTEtMXptLTEgOWgtNHYtN2g0djd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaXNjb3VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjc5IDIxIDMgMTEuMjF2MmMwIC41My4yMSAxLjA0LjU5IDEuNDFsNy43OSA3Ljc5Yy43OC43OCAyLjA1Ljc4IDIuODMgMGw2LjIxLTYuMjFjLjc4LS43OC43OC0yLjA1IDAtMi44M0wxMi43OSAyMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMzggMTcuNDFjLjM5LjM5LjkuNTkgMS40MS41OS41MSAwIDEuMDItLjIgMS40MS0uNTlsNi4yMS02LjIxYy43OC0uNzguNzgtMi4wNSAwLTIuODNMMTIuNjIuNThDMTIuMjUuMjEgMTEuNzQgMCAxMS4yMSAwSDVDMy45IDAgMyAuOSAzIDJ2Ni4yMWMwIC41My4yMSAxLjA0LjU5IDEuNDFsNy43OSA3Ljc5ek01IDJoNi4yMUwxOSA5Ljc5IDEyLjc5IDE2IDUgOC4yMVYyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjcuMjVcIixcImN5XCI6XCI0LjI1XCIsXCJyXCI6XCIxLjI1XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEb05vdERpc3R1cmJPblRvdGFsU2lsZW5jZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTAtMTRjLTMuMyAwLTYgMi43LTYgNnMyLjcgNiA2IDYgNi0yLjcgNi02LTIuNi02LTYtNnptMyA3SDl2LTJoNnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRHZyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoNXYyaDh2LTJoNWMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE0SDNWNWgxOHYxMnptLTItOUg4djJoMTFWOHptMCA0SDh2MmgxMXYtMnpNNyA4SDV2MmgyVjh6bTAgNEg1djJoMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVNb2JpbGVkYXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA5VjdIOHYxMGg4di0yaC02di0yaDZ2LTJoLTZWOWg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWRnZXNlbnNvckhpZ2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgN2gydjdIM1Y3em0tMyAzaDJ2N0gwdi03em0yMi0zaDJ2N2gtMlY3em0tMyAzaDJ2N2gtMnYtN3ptLTMtNy45OUw4IDJjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNiAyMEg4di0xaDh2MXptMC0zSDhWN2g4djEwek04IDVWNGg4djFIOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVkZ2VzZW5zb3JMb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgN2gydjdIMlY3em0xOCAzaDJ2N2gtMnYtN3ptLTQtNy45OUw4IDJjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNiAyMEg4di0xaDh2MXptMC0zSDhWN2g4djEwek04IDVWNGg4djFIOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZsYXNobGlnaHRPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuODEgMi44MSAxLjM5IDQuMjIgOCAxMC44M1YyMmg4di0zLjE3bDMuNzggMy43OCAxLjQxLTEuNDFMMi44MSAyLjgxek0xNCAyMGgtNHYtNy4xN2w0IDRWMjB6TTE2IDR2MUg3LjgzbDIgMkgxNnYuMzlsLTIgMy4wMXYuNzdsMiAyVjExbDItM1YySDZ2MS4xN2wuODMuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbGFzaGxpZ2h0T24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDJINnY2bDIgM3YxMWg4VjExbDItM1Yyem0tMiAydjFIOFY0aDh6bS0yIDYuNFYyMGgtNHYtOS42MWwtMi0zVjdoOHYuMzlsLTIgMy4wMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjE0XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZsb3VyZXNjZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE1aDE0VjlINXY2em0yLTRoMTB2Mkg3di0yek0xMSAyaDJ2M2gtMnpNMTcuMjg2IDYuMzk5bDEuNzktMS44MDMgMS40MiAxLjQxLTEuNzkgMS44MDJ6TTExIDE5aDJ2M2gtMnpNMTcuMjkgMTcuNzFsMS43OSAxLjggMS40Mi0xLjQyLTEuOC0xLjc5ek0zLjQ5NSA2LjAxbDEuNDA3LTEuNDA4TDYuNjkgNi4zOTEgNS4yODQgNy43OTh6TTMuNDkyIDE4LjA3NmwxLjgwMy0xLjc5IDEuNDA5IDEuNDItMS44MDMgMS43OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZsdW9yZXNjZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE1aDE0VjlINXY2em0yLTRoMTB2Mkg3di0yek0xMSAyaDJ2M2gtMnpNMTcuMjg2IDYuMzk5bDEuNzktMS44MDMgMS40MiAxLjQxLTEuNzkgMS44MDJ6TTExIDE5aDJ2M2gtMnpNMTcuMjkgMTcuNzFsMS43OSAxLjggMS40Mi0xLjQyLTEuOC0xLjc5ek0zLjQ5NSA2LjAxbDEuNDA3LTEuNDA4TDYuNjkgNi4zOTEgNS4yODQgNy43OTh6TTMuNDkyIDE4LjA3NmwxLjgwMy0xLjc5IDEuNDA5IDEuNDItMS44MDMgMS43OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZtZEJhZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmMtNC4yIDAtOCAzLjIyLTggOC4yIDAgMy4zMiAyLjY3IDcuMjUgOCAxMS44IDUuMzMtNC41NSA4LTguNDggOC0xMS44QzIwIDUuMjIgMTYuMiAyIDEyIDJ6bTAgMTcuMzNjLTQuMDUtMy43LTYtNi43OS02LTkuMTRDNiA2LjU3IDguNjUgNCAxMiA0czYgMi41NyA2IDYuMmMwIDIuMzQtMS45NSA1LjQ0LTYgOS4xM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNmgydjVoLTJ6TTExIDEzaDJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZtZEdvb2QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEyYy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnptNi0xLjhDMTggNi41NyAxNS4zNSA0IDEyIDRzLTYgMi41Ny02IDYuMmMwIDIuMzQgMS45NSA1LjQ0IDYgOS4xNCA0LjA1LTMuNyA2LTYuOCA2LTkuMTR6TTEyIDJjNC4yIDAgOCAzLjIyIDggOC4yIDAgMy4zMi0yLjY3IDcuMjUtOCAxMS44LTUuMzMtNC41NS04LTguNDgtOC0xMS44QzQgNS4yMiA3LjggMiAxMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR01vYmlsZWRhdGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDExdjJoMnYySDlWOWg3YzAtMS4xLS45LTItMi0ySDljLTEuMSAwLTIgLjktMiAydjZjMCAxLjEuOSAyIDIgMmg1YzEuMSAwIDItLjkgMi0ydi00aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR3BwQmFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyIDQgNXY2LjA5YzAgNS4wNSAzLjQxIDkuNzYgOCAxMC45MSA0LjU5LTEuMTUgOC01Ljg2IDgtMTAuOTFWNWwtOC0zem02IDkuMDljMCA0LTIuNTUgNy43LTYgOC44My0zLjQ1LTEuMTMtNi00LjgyLTYtOC44M3YtNC43bDYtMi4yNSA2IDIuMjV2NC43ek05LjkxIDguNSA4LjUgOS45MSAxMC41OSAxMiA4LjUgMTQuMDlsMS40MSAxLjQxTDEyIDEzLjQybDIuMDkgMi4wOCAxLjQxLTEuNDFMMTMuNDIgMTJsMi4wOC0yLjA5LTEuNDEtMS40MUwxMiAxMC41OSA5LjkxIDguNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdwcEdvb2QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIgNCA1djYuMDljMCA1LjA1IDMuNDEgOS43NiA4IDEwLjkxIDQuNTktMS4xNSA4LTUuODYgOC0xMC45MVY1bC04LTN6bTYgOS4wOWMwIDQtMi41NSA3LjctNiA4LjgzLTMuNDUtMS4xMy02LTQuODItNi04LjgzVjYuMzFsNi0yLjEyIDYgMi4xMnY0Ljc4em0tOS4xOC0uNUw3LjQgMTJsMy41NCAzLjU0IDUuNjYtNS42Ni0xLjQxLTEuNDEtNC4yNCA0LjI0LTIuMTMtMi4xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdwcE1heWJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyIDQgNXY2LjA5YzAgNS4wNSAzLjQxIDkuNzYgOCAxMC45MSA0LjU5LTEuMTUgOC01Ljg2IDgtMTAuOTFWNWwtOC0zem02IDkuMDljMCA0LTIuNTUgNy43LTYgOC44My0zLjQ1LTEuMTMtNi00LjgyLTYtOC44M3YtNC43bDYtMi4yNSA2IDIuMjV2NC43elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxNGgydjJoLTJ6TTExIDdoMnY1aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR3BzRml4ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDhjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em04Ljk0IDNBOC45OTQgOC45OTQgMCAwIDAgMTMgMy4wNlYxaC0ydjIuMDZBOC45OTQgOC45OTQgMCAwIDAgMy4wNiAxMUgxdjJoMi4wNkE4Ljk5NCA4Ljk5NCAwIDAgMCAxMSAyMC45NFYyM2gydi0yLjA2QTguOTk0IDguOTk0IDAgMCAwIDIwLjk0IDEzSDIzdi0yaC0yLjA2ek0xMiAxOWMtMy44NyAwLTctMy4xMy03LTdzMy4xMy03IDctNyA3IDMuMTMgNyA3LTMuMTMgNy03IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHcHNOb3RGaXhlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuOTQgMTFBOC45OTQgOC45OTQgMCAwIDAgMTMgMy4wNlYxaC0ydjIuMDZBOC45OTQgOC45OTQgMCAwIDAgMy4wNiAxMUgxdjJoMi4wNkE4Ljk5NCA4Ljk5NCAwIDAgMCAxMSAyMC45NFYyM2gydi0yLjA2QTguOTk0IDguOTk0IDAgMCAwIDIwLjk0IDEzSDIzdi0yaC0yLjA2ek0xMiAxOWMtMy44NyAwLTctMy4xMy03LTdzMy4xMy03IDctNyA3IDMuMTMgNyA3LTMuMTMgNy03IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHcHNPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjk0IDExQTguOTk0IDguOTk0IDAgMCAwIDEzIDMuMDZWMWgtMnYyLjA2Yy0uOTguMTEtMS45MS4zOC0yLjc3Ljc4bDEuNTMgMS41M2E2Ljk5NSA2Ljk5NSAwIDAgMSA4Ljg3IDguODdsMS41MyAxLjUzYy40LS44Ni42Ny0xLjc5Ljc4LTIuNzdIMjN2LTJoLTIuMDZ6TTMgNC4yN2wyLjA0IDIuMDRBOC45OTQgOC45OTQgMCAwIDAgMy4wNiAxMUgxdjJoMi4wNkE4Ljk5NCA4Ljk5NCAwIDAgMCAxMSAyMC45NFYyM2gydi0yLjA2YzEuNzctLjIgMy4zOC0uOTEgNC42OS0xLjk4TDE5LjczIDIxbDEuNDEtMS40MUw0LjQxIDIuODYgMyA0LjI3em0xMy4yNyAxMy4yN2E2Ljk5NSA2Ljk5NSAwIDAgMS05LjgxLTkuODFsOS44MSA5LjgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR3JhcGhpY0VxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE4aDJWNkg3djEyem00IDRoMlYyaC0ydjIwem0tOC04aDJ2LTRIM3Y0em0xMiA0aDJWNmgtMnYxMnptNC04djRoMnYtNGgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdyaWQzWDMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDEwVjhoLTRWNGgtMnY0aC00VjRIOHY0SDR2Mmg0djRINHYyaDR2NGgydi00aDR2NGgydi00aDR2LTJoLTR2LTRoNHptLTYgNGgtNHYtNGg0djR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHcmlkNFg0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA3VjVoLTNWMmgtMnYzaC00VjJoLTJ2M0g3VjJINXYzSDJ2MmgzdjRIMnYyaDN2NEgydjJoM3YzaDJ2LTNoNHYzaDJ2LTNoNHYzaDJ2LTNoM3YtMmgtM3YtNGgzdi0yaC0zVjdoM3pNNyA3aDR2NEg3Vjd6bTAgMTB2LTRoNHY0SDd6bTEwIDBoLTR2LTRoNHY0em0wLTZoLTRWN2g0djR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHcmlkR29sZGVucmF0aW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDExVjloLTdWMmgtMnY3aC0yVjJIOXY3SDJ2Mmg3djJIMnYyaDd2N2gydi03aDJ2N2gydi03aDd2LTJoLTd2LTJoN3ptLTkgMmgtMnYtMmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVITW9iaWxlZGF0YSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTFIOVY3SDd2MTBoMnYtNGg2djRoMlY3aC0ydjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIUGx1c01vYmlsZWRhdGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDExSDZWN0g0djEwaDJ2LTRoNnY0aDJWN2gtMnY0em0xMCAwaC0yVjloLTJ2MmgtMnYyaDJ2Mmgydi0yaDJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIZHJBdXRvU2VsZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxNkg2LjV2NkgxMGMuOCAwIDEuNS0uNyAxLjUtMS41di0zYzAtLjgtLjctMS41LTEuNS0xLjV6bTAgNC41SDh2LTNoMnYzek0zLjUgMThoLTJ2LTJIMHY2aDEuNXYtMi41aDJWMjJINXYtNkgzLjV6TTIyIDE4LjV2LTJoLTEuNXYyaC0yVjIwaDJ2MkgyMnYtMmgydi0xLjV6TTE2LjUgMTZIMTN2NmgxLjV2LTJoMS4xbC45IDJIMThsLS45LTIuMWMuNS0uMy45LS44LjktMS40di0xYzAtLjgtLjctMS41LTEuNS0xLjV6bTAgMi41aC0ydi0xaDJ2MXpNMTEuOTcgNS4zbC0xLjAyIDIuODloMi4xTDEyLjAzIDUuM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM4LjY5IDIgNiA0LjY5IDYgOHMyLjY5IDYgNiA2IDYtMi42OSA2LTYtMi42OS02LTYtNnptMi4wNCA5LS42My0xLjc5aC0yLjgzTDkuOTYgMTFIOC43NGwyLjYzLTdoMS4yNWwyLjYzIDdoLTEuMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIZHJBdXRvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptLS45OS0xNEw2Ljg4IDE3aDEuOWwxLTIuODFoNC40NGwuOTkgMi44MWgxLjlMMTIuOTggNmgtMS45N3ptLS42NiA2LjU5IDEuNi00LjU1aC4wOWwxLjYgNC41NWgtMy4yOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhkck9mZlNlbGVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTguNXYtMWMwLS44LS43LTEuNS0xLjUtMS41SDEzdjZoMS41di0yaDEuMWwuOSAySDE4bC0uOS0yLjFjLjUtLjMuOS0uOC45LTEuNHptLTEuNSAwaC0ydi0xaDJ2MXptLTEzLS41aC0ydi0ySDB2NmgxLjV2LTIuNWgyVjIySDV2LTZIMy41djJ6bTYuNS0ySDYuNXY2SDEwYy44IDAgMS41LS43IDEuNS0xLjV2LTNjMC0uOC0uNy0xLjUtMS41LTEuNXptMCA0LjVIOHYtM2gydjN6bTE0LS41aC0ydjJoLTEuNXYtMmgtMnYtMS41aDJ2LTJIMjJ2MmgyVjIwek0xMC45OCA0LjE1IDkuNDIgMi41OWM1LjEtMi40MiAxMC40MSAyLjg5IDcuOTkgNy45OWwtMS41Ni0xLjU2Yy44MS0yLjk2LTEuOTEtNS42OC00Ljg3LTQuODd6TTYuMzQgMi4zNCA0LjkzIDMuNzZsMS42NiAxLjY2Yy0yLjQyIDUuMSAyLjg5IDEwLjQxIDcuOTkgNy45OWwxLjY2IDEuNjYgMS40MS0xLjQxTDYuMzQgMi4zNHptMS44MSA0LjY0IDQuODcgNC44N2MtMi45Ni44MS01LjY4LTEuOTEtNC44Ny00Ljg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGRyT25TZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDE4LjV2LTFjMC0uOC0uNy0xLjUtMS41LTEuNUgxM3Y2aDEuNXYtMmgxLjFsLjkgMkgxOGwtLjktMi4xYy41LS4zLjktLjguOS0xLjR6bS0xLjUgMGgtMnYtMWgydjF6bS0xMy0uNWgtMnYtMkgwdjZoMS41di0yLjVoMlYyMkg1di02SDMuNXYyem02LjUtMkg2LjV2NkgxMGMuOCAwIDEuNS0uNyAxLjUtMS41di0zYzAtLjgtLjctMS41LTEuNS0xLjV6bTAgNC41SDh2LTNoMnYzem0xNC0uNWgtMnYyaC0xLjV2LTJoLTJ2LTEuNWgydi0ySDIydjJoMlYyMHpNMTIgNGMyLjIxIDAgNCAxLjc5IDQgNHMtMS43OSA0LTQgNC00LTEuNzktNC00IDEuNzktNCA0LTRtMC0yQzguNjkgMiA2IDQuNjkgNiA4czIuNjkgNiA2IDYgNi0yLjY5IDYtNi0yLjY5LTYtNi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMjJoOHYtN2gtM3YtNGgtNVY5aDNWMkg4djdoM3YySDZ2NEgzdjdoOHYtN0g4di0yaDh2MmgtM3Y3ek0xMCA3VjRoNHYzaC00ek05IDE3djNINXYtM2g0em0xMCAwdjNoLTR2LTNoNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxlbnNCbHVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDEzYy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAgNGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wLThjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptLTMgLjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41ek02IDVjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMTUgNS41Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXpNMTQgN2MuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wLTMuNWMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6bS0xMSAxMGMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTcgN2MtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTAtMTdjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41ek0xMCA3Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAgNS41Yy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXptOCAuNWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wIDRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMC04Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAtNGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0zIDguNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6TTE0IDE3Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAgMy41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptLTQtMTJjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41em0wIDguNWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem00LTQuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6bTAtNGMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMaWdodE1vZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA5YzEuNjUgMCAzIDEuMzUgMyAzcy0xLjM1IDMtMyAzLTMtMS4zNS0zLTMgMS4zNS0zIDMtM20wLTJjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01ek0yIDEzaDJjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTFIMmMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMXptMTggMGgyYy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xaC0yYy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxek0xMSAydjJjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xVjJjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF6bTAgMTh2MmMwIC41NS40NSAxIDEgMXMxLS40NSAxLTF2LTJjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF6TTUuOTkgNC41OGEuOTk2Ljk5NiAwIDAgMC0xLjQxIDAgLjk5Ni45OTYgMCAwIDAgMCAxLjQxbDEuMDYgMS4wNmMuMzkuMzkgMS4wMy4zOSAxLjQxIDBzLjM5LTEuMDMgMC0xLjQxTDUuOTkgNC41OHptMTIuMzcgMTIuMzdhLjk5Ni45OTYgMCAwIDAtMS40MSAwIC45OTYuOTk2IDAgMCAwIDAgMS40MWwxLjA2IDEuMDZjLjM5LjM5IDEuMDMuMzkgMS40MSAwYS45OTYuOTk2IDAgMCAwIDAtMS40MWwtMS4wNi0xLjA2em0xLjA2LTEwLjk2YS45OTYuOTk2IDAgMCAwIDAtMS40MS45OTYuOTk2IDAgMCAwLTEuNDEgMGwtMS4wNiAxLjA2Yy0uMzkuMzktLjM5IDEuMDMgMCAxLjQxczEuMDMuMzkgMS40MSAwbDEuMDYtMS4wNnpNNy4wNSAxOC4zNmEuOTk2Ljk5NiAwIDAgMCAwLTEuNDEuOTk2Ljk5NiAwIDAgMC0xLjQxIDBsLTEuMDYgMS4wNmMtLjM5LjM5LS4zOSAxLjAzIDAgMS40MXMxLjAzLjM5IDEuNDEgMGwxLjA2LTEuMDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhdGlvbkRpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyAxM3YtMmgtMi4wNkE4Ljk5NCA4Ljk5NCAwIDAgMCAxMyAzLjA2VjFoLTJ2Mi4wNmMtLjk4LjExLTEuOTEuMzgtMi43Ny43OGwxLjUzIDEuNTNhNi45OTUgNi45OTUgMCAwIDEgOC44NyA4Ljg3bDEuNTMgMS41M2MuNC0uODYuNjctMS43OS43OC0yLjc3SDIzek00LjQxIDIuODYgMyA0LjI3bDIuMDQgMi4wNEE4Ljk5NCA4Ljk5NCAwIDAgMCAzLjA2IDExSDF2MmgyLjA2QTguOTk0IDguOTk0IDAgMCAwIDExIDIwLjk0VjIzaDJ2LTIuMDZjMS43Ny0uMiAzLjM4LS45MSA0LjY5LTEuOThMMTkuNzMgMjFsMS40MS0xLjQxTDQuNDEgMi44NnpNMTIgMTlBNi45OTUgNi45OTUgMCAwIDEgNi40NiA3LjczbDkuODEgOS44MUE2Ljk3MiA2Ljk3MiAwIDAgMSAxMiAxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2F0aW9uU2VhcmNoaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC45NCAxMUE4Ljk5NCA4Ljk5NCAwIDAgMCAxMyAzLjA2VjFoLTJ2Mi4wNkE4Ljk5NCA4Ljk5NCAwIDAgMCAzLjA2IDExSDF2MmgyLjA2QTguOTk0IDguOTk0IDAgMCAwIDExIDIwLjk0VjIzaDJ2LTIuMDZBOC45OTQgOC45OTQgMCAwIDAgMjAuOTQgMTNIMjN2LTJoLTIuMDZ6TTEyIDE5Yy0zLjg3IDAtNy0zLjEzLTctN3MzLjEzLTcgNy03IDcgMy4xMyA3IDctMy4xMyA3LTcgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUx0ZU1vYmlsZWRhdGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTRoM3YySDRWOGgydjZ6bTMtNGgydjZoMnYtNmgyVjhIOXYyem0xMiAwVjhoLTV2OGg1di0yaC0zdi0xaDN2LTJoLTN2LTFoM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUx0ZVBsdXNNb2JpbGVkYXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE0aDN2MkgxVjhoMnY2em0yLTRoMnY2aDJ2LTZoMlY4SDV2MnptNyA2aDV2LTJoLTN2LTFoM3YtMmgtM3YtMWgzVjhoLTV2OHptMTItNWgtMlY5aC0ydjJoLTJ2MmgydjJoMnYtMmgydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWFjcm9PZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjY2IDQuOTNjLjI0IDAgLjQ2LjA3LjY0LjJsLjgxLjU2Yy0uMjkuMjQtLjU0LjU0LS43Mi44N2wxLjY2IDEuNjZDMTEuMDMgOC4xNCAxMSA4LjA4IDExIDhjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxLS40NSAxLTEgMWMtLjA4IDAtLjE0LS4wMy0uMjItLjA0bDQuMDYgNC4wNmEzLjEzIDMuMTMgMCAwIDAgMi42My0zLjA5YzAtLjcxLS4yNS0xLjM5LS42Ny0xLjkzLjQzLS41NC42Ny0xLjIyLjY3LTEuOTNhMy4xNDUgMy4xNDUgMCAwIDAtMy41Ny0zLjExQzE0LjQ0IDEuODEgMTMuMzEgMSAxMiAxcy0yLjQ0LjgxLTIuOTEgMS45NmEzLjEzMiAzLjEzMiAwIDAgMC0yLjUyLjc4bDEuNDIgMS40MmMuMi0uMTMuNDItLjIzLjY3LS4yM3ptNi42OCA2LjE0Yy0uMjQgMC0uNDYtLjA3LS42NC0uMmwtLjgxLS41N2MuNTUtLjQ1Ljk0LTEuMDkgMS4wNi0xLjgzbC44OC40MmMuNC4xOS42Ni41OS42NiAxLjAzIDAgLjY0LS41MiAxLjE1LTEuMTUgMS4xNXptLS42NS01Ljk0Yy4yLS4xMy40Mi0uMi42NS0uMi42MyAwIDEuMTQuNTEgMS4xNCAxLjE0IDAgLjQ0LS4yNS44My0uNjYgMS4wM2wtLjg4LjQyYy0uMTItLjc0LS41MS0xLjM4LTEuMDctMS44M2wuODItLjU2ek0xMiAzYy42MiAwIDEuMTIuNDkgMS4xNCAxLjFsLS4xMSAxLjA5QzEyLjcxIDUuMDcgMTIuMzYgNSAxMiA1cy0uNy4wNy0xLjAyLjE5bC0uMTItMS4wOWMuMDItLjYxLjUyLTEuMSAxLjE0LTEuMXpNMTkuOTggMTcuMTVBOC45MDkgOC45MDkgMCAwIDAgMjEgMTNjLTEuNSAwLTIuOTEuMzctNC4xNSAxLjAybDMuMTMgMy4xM3pNMyAxM2E5IDkgMCAwIDAgOSA5IDkgOSAwIDAgMC05LTl6bTIuNDQgMi40NGMxLjkuNzEgMy40MiAyLjIyIDQuMTIgNC4xMmE3LjA0IDcuMDQgMCAwIDEtNC4xMi00LjEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjgxIDIuODEgMS4zOSA0LjIybDQuNDIgNC40MmMtLjE5LjQtLjMuODQtLjMgMS4yOWEzLjE0NyAzLjE0NyAwIDAgMCAzLjU4IDMuMTFBMy4xNSAzLjE1IDAgMCAwIDEyIDE1Yy4wNSAwIC4xMS0uMDEuMTYtLjAxbDEuNjQgMS42NEE4Ljg1MyA4Ljg1MyAwIDAgMCAxMiAyMmMyLjAyIDAgMy44OC0uNjcgNS4zOC0xLjhsMi40IDIuNCAxLjQxLTEuNDFMMi44MSAyLjgxem0xMS42MyAxNi43NWMuMi0uNTQuNDctMS4wNC43OS0xLjVsLjcyLjcyYy0uNDcuMzEtLjk3LjU4LTEuNTEuNzh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNZWRpYUJsdWV0b290aE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA2LjE3VjNoNnY0aC00djEuMTdsLTItMnpNMTkuNDIgMTUgMjIgMTcuNTdsLS44LjgtNi43OC02Ljc4LjgtLjggMi43NSAyLjc1VjloLjZMMjIgMTIuNDMgMTkuNDIgMTV6bS0uMjUtMS40NSAxLjEzLTEuMTMtMS4xMy0xLjEzdjIuMjZ6bTIuMDIgNy42NC0xLjQxIDEuNDEtMy45OC0zLjk4LS41OC41OC0uODUtLjg1LjU4LS41OEwxMSAxMy44M1YxN2MwIDIuMjEtMS43OCA0LTMuOTkgNFMzIDE5LjIxIDMgMTdzMS43OS00IDQuMDEtNGMuNzMgMCAxLjQxLjIxIDIgLjU1di0xLjcyTDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOSAxOC4zOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1lZGlhQmx1ZXRvb3RoT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTkgMyAuMDEgMTAuNTVjLS42LS4zNC0xLjI4LS41NS0yLS41NWE0LjAwMSA0LjAwMSAwIDEgMCAwIDhDOS4yMyAyMSAxMSAxOS4yMSAxMSAxN1Y3aDRWM0g5em0xMiA5LjQzTDE3LjU3IDloLS42djQuNTVsLTIuNzUtMi43NS0uODUuODVMMTYuNzMgMTVsLTMuMzUgMy4zNS44NS44NSAyLjc1LTIuNzVWMjFoLjZMMjEgMTcuNTcgMTguNDIgMTUgMjEgMTIuNDN6bS0yLjgzLTEuMTMgMS4xMyAxLjEzLTEuMTMgMS4xM1YxMS4zem0xLjEzIDYuMjctMS4xMyAxLjEzdi0yLjI2bDEuMTMgMS4xM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1lZGljYXRpb25MaXF1aWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDNoMTJ2Mkgzek0yIDIxaDE0VjZIMnYxNXptMy05aDIuNVY5LjVoM1YxMkgxM3YzaC0yLjV2Mi41aC0zVjE1SDV2LTN6TTIwIDZjLTEuNjggMC0zIDEuNzYtMyA0IDAgMS43Ny44MyAzLjIyIDIgMy43NlYyMWgydi03LjI0YzEuMTctLjU0IDItMS45OSAyLTMuNzYgMC0yLjI0LTEuMzItNC0zLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNZWRpY2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC41IDE1SDh2LTNoMi41VjkuNWgzVjEySDE2djNoLTIuNXYyLjVoLTNWMTV6TTE5IDh2MTFjMCAxLjEtLjkgMi0yIDJIN2MtMS4xIDAtMi0uOS0yLTJWOGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyem0tMiAwSDd2MTFoMTBWOHptMS01SDZ2MmgxMlYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW9iaWxlRnJpZW5kbHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDFIOWMtMS4xIDAtMiAuOS0yIDJ2M2gyVjRoMTB2MTZIOXYtMkg3djNjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yek03LjAxIDEzLjQ3bC0yLjU1LTIuNTUtMS4yNyAxLjI3TDcgMTZsNy4xOS03LjE5LTEuMjctMS4yNy01LjkxIDUuOTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb2JpbGVPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDV2OC42MWwyIDJWM2MwLTEuMS0uOS0yLTItMkg3Yy0uNzEgMC0xLjMzLjM3LTEuNjguOTNMOC4zOSA1SDE3ek0xLjQ5IDMuNzYgNSA3LjI3VjIxYzAgMS4xLjkgMiAyIDJoMTBjMS4wMiAwIDEuODUtLjc3IDEuOTgtMS43NWwxLjcyIDEuNzIgMS40MS0xLjQxTDIuOSAyLjM1IDEuNDkgMy43NnpNNyA5LjI3IDE2LjczIDE5SDdWOS4yN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vYmlsZWRhdGFPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2IDYuODIgMS41OSAxLjU5TDE5IDdsLTQtNC00IDQgMS40MSAxLjQxTDE0IDYuODJ2NC4zNWwyIDJ6TTEuMzkgNC4yMiA4IDEwLjgzdjYuMzVsLTEuNTktMS41OUw1IDE3bDQgNCA0LTQtMS40MS0xLjQxTDEwIDE3LjE4di00LjM1bDkuNzggOS43OCAxLjQxLTEuNDJMMi44MSAyLjgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW9kZU5pZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgNGM0LjQxIDAgOCAzLjU5IDggOHMtMy41OSA4LTggOGMtLjM0IDAtLjY4LS4wMi0xLjAxLS4wNyAxLjkxLTIuMTYgMy4wMS00Ljk4IDMuMDEtNy45M3MtMS4xLTUuNzctMy4wMS03LjkzQzguODIgNC4wMiA5LjE2IDQgOS41IDRtMC0yYy0xLjgyIDAtMy41My41LTUgMS4zNSAyLjk5IDEuNzMgNSA0Ljk1IDUgOC42NXMtMi4wMSA2LjkyLTUgOC42NWMxLjQ3Ljg1IDMuMTggMS4zNSA1IDEuMzUgNS41MiAwIDEwLTQuNDggMTAtMTBTMTUuMDIgMiA5LjUgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vZGVTdGFuZGJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDkgMiAyIDYuNDkgMiAxMnM0LjQ5IDEwIDEwIDEwIDEwLTQuNDkgMTAtMTBTMTcuNTEgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptMy04YzAgMS42Ni0xLjM0IDMtMyAzcy0zLTEuMzQtMy0zIDEuMzQtMyAzLTMgMyAxLjM0IDMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vbml0b3JIZWFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2M2gyVjZoMTZ2M2gyVjZjMC0xLjEtLjktMi0yLTJ6TTIwIDE4SDR2LTNIMnYzYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJ2LTNoLTJ2M3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuODkgNy41NWMtLjM0LS42OC0xLjQ1LS42OC0xLjc5IDBMMTAgMTMuNzZsLTEuMTEtMi4yMUEuOTg4Ljk4OCAwIDAgMCA4IDExSDJ2Mmg1LjM4bDEuNzIgMy40NWMuMTguMzQuNTIuNTUuOS41NXMuNzItLjIxLjg5LS41NUwxNCAxMC4yNGwxLjExIDIuMjFjLjE3LjM0LjUxLjU1Ljg5LjU1aDZ2LTJoLTUuMzhsLTEuNzMtMy40NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vbml0b3JXZWlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpNMTIgNmMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6bS0xIDMuNWgtMXYtMWgxdjF6bTEuNSAwaC0xdi0xaDF2MXptMS41IDBoLTF2LTFoMXYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmVhcmJ5RXJyb3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDcuNTcgNC40MiA0LjQyTDEyIDE2LjQxbC00LjQyLTQuNDJMMTIgNy41N3ptMCAxMS42Mi03LjItNy4yIDcuMi03LjIgNiA2VjcuMTZsLTQuNTgtNC41OGMtLjc4LS43OC0yLjA1LS43OC0yLjgzIDBsLTguMDEgOGMtLjc4Ljc4LS43OCAyLjA1IDAgMi44M2w4LjAxIDhjLjc4Ljc4IDIuMDUuNzggMi44MyAwTDE4IDE2Ljgydi0zLjYzbC02IDZ6bTggLjgxaDJ2MmgtMnYtMnptMi0xMGgtMnY4aDJ2LThcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5lYXJieU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuNDEgMTMuNDIgMTguODMgMTZsLTEuODEtMS44MUwxOS4yIDEyIDEyIDQuOCA5LjgxIDYuOTkgOCA1LjE3bDIuNTgtMi41OGMuNzgtLjc4IDIuMDUtLjc4IDIuODMgMGw4IDhjLjc5Ljc4Ljc5IDIuMDQgMCAyLjgzem0tLjIyIDcuNzctMS40MSAxLjQxTDE2IDE4LjgzbC0yLjU4IDIuNThjLS43OC43OC0yLjA1Ljc4LTIuODMgMGwtOC04Yy0uNzgtLjc4LS43OC0yLjA1IDAtMi44M0w1LjE3IDggMS4zOSA0LjIyIDIuOCAyLjgxbDE4LjM5IDE4LjM4em0tNy00LjE3LTEuMzktMS4zOS0uOC44TDcuNTggMTJsLjgtLjgtMS40LTEuMzlMNC44IDEybDcuMiA3LjIgMi4xOS0yLjE4ek0xNi40MiAxMiAxMiA3LjU4bC0uOC44IDQuNDIgNC40Mi44LS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmV0d29ya0NlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMjJoMjBWMkwyIDIyem0xOC0yaC0zVjkuODNsMy0zVjIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmV0d29ya1dpZmkxQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4TDEyIDIxIDI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNHptMy4zMiAxMC44NEMxNC4zNCAxNC4zIDEzLjIgMTQgMTIgMTRjLTEuMiAwLTIuMzQuMy0zLjMyLjg0TDIuOTIgOS4wN0M1LjUxIDcuMDggOC42NyA2IDEyIDZzNi40OSAxLjA4IDkuMDggMy4wN2wtNS43NiA1Ljc3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmV0d29ya1dpZmkyQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4TDEyIDIxIDI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNHptNC43OCA5LjM4QTguODUzIDguODUzIDAgMCAwIDEyIDEyYy0xLjc2IDAtMy40LjUtNC43OCAxLjM4bC00LjMtNC4zQzUuNTEgNy4wOCA4LjY3IDYgMTIgNnM2LjQ5IDEuMDggOS4wOCAzLjA3bC00LjMgNC4zMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5ldHdvcmtXaWZpM0JhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OEwxMiAyMSAyNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDR6TTIuOTIgOS4wN0M1LjUxIDcuMDggOC42NyA2IDEyIDZzNi40OSAxLjA4IDkuMDggMy4wN2wtMi44NSAyLjg2QTEwLjk0NSAxMC45NDUgMCAwIDAgMTIgMTBjLTIuMzEgMC00LjQ2LjcxLTYuMjMgMS45M0wyLjkyIDkuMDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOZXR3b3JrV2lmaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4TDEyIDIxIDI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNHptMCA0Yy0yLjg2IDAtNS41Ljk0LTcuNjUgMi41MUwyLjkyIDkuMDdDNS41MSA3LjA4IDguNjcgNiAxMiA2czYuNDkgMS4wOCA5LjA4IDMuMDdsLTEuNDMgMS40M0ExMi45OSAxMi45OSAwIDAgMCAxMiA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmZjIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxOEg0VjRoMTZ2MTZ6TTE4IDZoLTVjLTEuMSAwLTIgLjktMiAydjIuMjhjLS42LjM1LTEgLjk4LTEgMS43MiAwIDEuMS45IDIgMiAyczItLjkgMi0yYzAtLjc0LS40LTEuMzgtMS0xLjcyVjhoM3Y4SDhWOGgyVjZINnYxMmgxMlY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmlnaHRsaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgNGMuMzQgMCAuNjguMDIgMS4wMS4wN0MxMy4xIDYuMjMgMTIgOS4wNSAxMiAxMnMxLjEgNS43NyAzLjAxIDcuOTNjLS4zMy4wNS0uNjcuMDctMS4wMS4wNy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04bTAtMkM4LjQ4IDIgNCA2LjQ4IDQgMTJzNC40OCAxMCAxMCAxMGMxLjgyIDAgMy41My0uNSA1LTEuMzUtMi45OS0xLjczLTUtNC45NS01LTguNjVzMi4wMS02LjkyIDUtOC42NUE5Ljk3MyA5Ljk3MyAwIDAgMCAxNCAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm90ZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFzLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNy0uMjVjLjQxIDAgLjc1LjM0Ljc1Ljc1cy0uMzQuNzUtLjc1Ljc1LS43NS0uMzQtLjc1LS43NS4zNC0uNzUuNzUtLjc1ek0xOSAxOUg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1LjA4IDExLjAzLTIuMTItMi4xMkw3IDE0Ljg2VjE3aDIuMXpNMTYuODUgOS4yN2MuMi0uMi4yLS41MSAwLS43MWwtMS40MS0xLjQxYy0uMi0uMi0uNTEtLjItLjcxIDBsLTEuMDYgMS4wNiAyLjEyIDIuMTIgMS4wNi0xLjA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGFzc3dvcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTdoMjB2Mkgydi0yem0xLjE1LTQuMDVMNCAxMS40N2wuODUgMS40OCAxLjMtLjc1LS44NS0xLjQ4SDd2LTEuNUg1LjNsLjg1LTEuNDdMNC44NSA3IDQgOC40NyAzLjE1IDdsLTEuMy43NS44NSAxLjQ3SDF2MS41aDEuN2wtLjg1IDEuNDggMS4zLjc1em02LjctLjc1IDEuMy43NS44NS0xLjQ4Ljg1IDEuNDggMS4zLS43NS0uODUtMS40OEgxNXYtMS41aC0xLjdsLjg1LTEuNDctMS4zLS43NUwxMiA4LjQ3IDExLjE1IDdsLTEuMy43NS44NSAxLjQ3SDl2MS41aDEuN2wtLjg1IDEuNDh6TTIzIDkuMjJoLTEuN2wuODUtMS40Ny0xLjMtLjc1TDIwIDguNDcgMTkuMTUgN2wtMS4zLjc1Ljg1IDEuNDdIMTd2MS41aDEuN2wtLjg1IDEuNDggMS4zLjc1Ljg1LTEuNDguODUgMS40OCAxLjMtLjc1LS44NS0xLjQ4SDIzdi0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQYXR0ZXJuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDZjMC0xLjEuOS0yIDItMnMyIC45IDIgMi0uOSAyLTIgMi0yLS45LTItMnptMiA4YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptNi02YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptNiAyYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptLS4wMiA2Yy0uNzQgMC0xLjM3LjQtMS43MiAxaC0yLjU0YTEuOTggMS45OCAwIDAgMC0zLjQ0IDBIOC40MWwzLjA3LTMuMDdjLjE3LjA0LjM0LjA3LjUyLjA3IDEuMSAwIDItLjkgMi0yIDAtLjE4LS4wMy0uMzUtLjA3LS41MWwzLjU2LTMuNTZjLjE2LjA0LjMzLjA3LjUxLjA3IDEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMmMwIC4xOC4wMy4zNS4wNy41MWwtMy41NiAzLjU2Yy0uMTYtLjA0LS4zMy0uMDctLjUxLS4wNy0xLjEgMC0yIC45LTIgMiAwIC4xOC4wMy4zNS4wNy41MWwtMy41NiAzLjU2QzYuMzUgMTYuMDMgNi4xOCAxNiA2IDE2Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMmMuNzQgMCAxLjM3LS40IDEuNzItMWgyLjU3YTEuOTggMS45OCAwIDAgMCAzLjQ0IDBoMi41NWMuMzQuNi45OCAxIDEuNzIgMSAxLjEgMCAyLS45IDItMi0uMDItMS4xLS45Mi0yLTIuMDItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBoaXNoaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNi4xOFYyaC0ydjQuMThDMTMuODQgNi42IDEzIDcuNyAxMyA5cy44NCAyLjQgMiAyLjgyVjE1YzAgMi4yMS0xLjc5IDQtNCA0cy00LTEuNzktNC00di0xLjE3bDEuNTkgMS41OUwxMCAxNCA1IDl2NmMwIDMuMzEgMi42OSA2IDYgNnM2LTIuNjkgNi02di0zLjE4YzEuMTYtLjQxIDItMS41MSAyLTIuODJzLS44NC0yLjQtMi0yLjgyek0xNiAxMGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNEg0VjZoMTZ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNDkgMTAuNVYxNWgxLjE1VjloLS44N2wtMS43NiAxLjI3LjU4Ljg5ek0xMS40NyAxMC4wNWMuNSAwIC44MS4zMi44MS43MiAwIC4zNy0uMTQuNjQtLjU0IDEuMDYtLjM2LjM4LTEuMDYgMS4wOC0yLjEzIDIuMTVWMTVoMy44OXYtLjk5aC0yLjM3bC0uMDMtLjA1Yy42OC0uNjggMS4xNS0xLjE0IDEuNC0xLjM5LjYxLS42LjkyLTEuMjIuOTItMS44NiAwLS4yNC0uMDUtMS4wNC0uOTEtMS40OC0uNDctLjIzLTEuMjYtLjM2LTEuOTUtLjAzLS44Mi4zOS0uOTkgMS4xMy0xIDEuMTVsMS4wMS40MmMuMS0uMzMuMzgtLjcyLjktLjcyek0xNi45OSAxMy45NGMtLjgzIDAtLjk5LS43Ni0xLjAyLS44NmwtMS4wMy40MWMuNDUgMS41OSAyLjAxIDEuNTEgMi4wNSAxLjUxIDEuMiAwIDEuNjgtLjcyIDEuNzYtLjg1LjMyLS40OS4zNi0xLjI0LS4wMS0xLjc2LS4xNy0uMjQtLjQtLjQxLS42OC0uNTJ2LS4wN2MuMi0uMS4zNy0uMjYuNTItLjQ4LjI2LS40MS4zMS0xLjA3LS4wMi0xLjU3LS4wOC0uMTEtLjUzLS43NS0xLjYyLS43NS0xLjI2IDAtMS43NC45LTEuODUgMS4yNGwuOTkuNDFjLjExLS4zMi4zNS0uNjQuODUtLjY0LjQ0IDAgLjc1LjI2Ljc1LjY1IDAgLjU4LS41NS43Mi0uODguNzJoLS40NnYxaC41Yy41NiAwIDEuMDQuMjQgMS4wNC43OSAwIC40OS0uNDguNzctLjg5Ljc3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGxheUxlc3NvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAyMFY0aDJ2N2wyLjUtMS41TDEyIDExVjRoNXY3LjA4Yy4zMy0uMDUuNjYtLjA4IDEtLjA4cy42Ny4wMyAxIC4wOFY0YzAtMS4xLS45LTItMi0ySDVjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoNy4yNmMtLjQyLS42LS43NS0xLjI4LS45Ny0ySDV6bTEzLTdjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0tMS4yNSA3LjV2LTVsNCAyLjUtNCAyLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQcmljZUNoYW5nZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxN2gydi0xaDFjLjU1IDAgMS0uNDUgMS0xdi0zYzAtLjU1LS40NS0xLTEtMUg4di0xaDRWOGgtMlY3SDh2MUg3Yy0uNTUgMC0xIC40NS0xIDF2M2MwIC41NS40NSAxIDEgMWgzdjFINnYyaDJ2MXpNMjAgNEg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY2YzAtMS4xMS0uODktMi0yLTJ6bTAgMTRINFY2aDE2djEyem0tNi04IDItMiAyIDJtMCA0LjI1LTIgMi0yLTJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVByaWNlQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDEzVjljMC0uNTUtLjQ1LTEtMS0xSDZWNmg1VjRIOC41VjNoLTJ2MUg1Yy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMWg0djJINHYyaDIuNXYxaDJ2LTFIMTBjLjU1IDAgMS0uNDUgMS0xek0xOS41OSAxMi41MmwtNS42NiA1LjY1LTIuODMtMi44My0xLjQxIDEuNDJMMTMuOTMgMjEgMjEgMTMuOTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQdW5jaENsb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNmgtMVYxSDZ2NUg1Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6TTggM2g4djNIOFYzem0xMSAxN0g1VjhoMTR2MTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDljLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0wIDguNWMtMS45MyAwLTMuNS0xLjU3LTMuNS0zLjVzMS41Ny0zLjUgMy41LTMuNSAzLjUgMS41NyAzLjUgMy41LTEuNTcgMy41LTMuNSAzLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjUgMTEuNWgtMXYyLjcxbDEuNjQgMS42NC43MS0uNzEtMS4zNS0xLjM1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUXVpeiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2SDJ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZ6bTE2LTRIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDhWNGgxMnYxMnptLTYuNDktNS44NGMuNDEtLjczIDEuMTgtMS4xNiAxLjYzLTEuOC40OC0uNjguMjEtMS45NC0xLjE0LTEuOTQtLjg4IDAtMS4zMi42Ny0xLjUgMS4yM2wtMS4zNy0uNTdDMTEuNTEgNS45NiAxMi41MiA1IDEzLjk5IDVjMS4yMyAwIDIuMDguNTYgMi41MSAxLjI2LjM3LjYuNTggMS43My4wMSAyLjU3LS42My45My0xLjIzIDEuMjEtMS41NiAxLjgxLS4xMy4yNC0uMTguNC0uMTggMS4xOGgtMS41MmMuMDEtLjQxLS4wNi0xLjA4LjI2LTEuNjZ6bS0uNTYgMy43OWMwLS41OS40Ny0xLjA0IDEuMDUtMS4wNC41OSAwIDEuMDQuNDUgMS4wNCAxLjA0IDAgLjU4LS40NCAxLjA1LTEuMDQgMS4wNS0uNTggMC0xLjA1LS40Ny0xLjA1LTEuMDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSTW9iaWxlZGF0YSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy44IDcuMiA5IDEwSDdMNS44NyA3LjMzSDRWMTBIMlYyaDVjMS4xMyAwIDIgLjg3IDIgMnYxLjMzYzAgLjgtLjUzIDEuNTQtMS4yIDEuODd6TTcgNEg0djEuMzNoM1Y0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmFkYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5Ljc0IDE4LjMzQTkuOTg0IDkuOTg0IDAgMCAwIDIyIDEyYzAtNS41Mi00LjQ4LTEwLTEwLTEwUzIgNi40OCAyIDEyczQuNDggMTAgMTAgMTBhOS45ODQgOS45ODQgMCAwIDAgNy4xMS0yLjk3Yy4wMy0uMDMuMDUtLjA2LjA3LS4wOC4yLS4yLjM5LS40MS41Ni0uNjJ6TTEyIDIwYy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDhjMCAxLjg1LS42MyAzLjU0LTEuNjkgNC45bC0xLjQzLTEuNDNjLjY5LS45OCAxLjEtMi4xNyAxLjEtMy40NiAwLTMuMzEtMi42OS02LTYtNnMtNiAyLjY5LTYgNiAyLjY5IDYgNiA2YzEuMyAwIDIuNTEtLjQyIDMuNDktMS4xM2wxLjQyIDEuNDJBNy44MjIgNy44MjIgMCAwIDEgMTIgMjB6bTEuOTItNy40OWMuMTctLjY2LjAyLTEuMzgtLjQ5LTEuOWwtLjAyLS4wMmMtLjc3LS43Ny0yLS43OC0yLjc4LS4wNC0uMDEuMDEtLjAzLjAyLS4wNS4wNC0uNzguNzgtLjc4IDIuMDUgMCAyLjgzbC4wMi4wMmMuNTIuNTEgMS4yNS42NyAxLjkxLjQ5bDEuNTEgMS41MWMtLjYuMzYtMS4yOS41OC0yLjA0LjU4LTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTQgNCAxLjc5IDQgNGMwIC43My0uMjEgMS40MS0uNTYgMmwtMS41LTEuNTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZW1lbWJlck1lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxSDdjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAyMEg3di0xaDEwdjF6bTAtM0g3di0uNDhjMS40Ny0uOTkgMy4yMi0xLjUyIDUtMS41MnMzLjUzLjUzIDUgMS41MlYxOHptMC0yLjc5Yy0xLjUtLjc3LTMuMi0xLjIxLTUtMS4yMXMtMy41LjQ0LTUgMS4yMVY2aDEwdjkuMjF6TTE3IDRIN1YzaDEwdjF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEzYzEuNjYgMCAzLTEuMzQgMy0zcy0xLjM0LTMtMy0zLTMgMS4zNC0zIDMgMS4zNCAzIDMgM3ptMC00Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXNldFR2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA4VjVjMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg0djJoOHYtMmg0YzEuMSAwIDEuOTktLjkgMS45OS0ydi01SDIyYzAtMS4xLS45LTItMi0yaC03LjE3bDEuODMtMS44My0xLjQxLTEuNDFDOS42OSAxMC4zMSAxMC44OCA5LjEyIDkgMTFsNC4yNCA0LjI0IDEuNDEtMS40MUwxMi44MyAxMkgyMHY1SDRWNWgxNnYzaDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXN0YXJ0QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDEzYzAtMS42NS42Ny0zLjE1IDEuNzYtNC4yNEw2LjM0IDcuMzRBOC4wMTQgOC4wMTQgMCAwIDAgNCAxM2MwIDQuMDggMy4wNSA3LjQ0IDcgNy45M3YtMi4wMmMtMi44My0uNDgtNS0yLjk0LTUtNS45MXptMTQgMGMwLTQuNDItMy41OC04LTgtOC0uMDYgMC0uMTIuMDEtLjE4LjAxbDEuMDktMS4wOUwxMS41IDIuNSA4IDZsMy41IDMuNSAxLjQxLTEuNDEtMS4wOC0xLjA4Yy4wNiAwIC4xMi0uMDEuMTctLjAxIDMuMzEgMCA2IDIuNjkgNiA2IDAgMi45Ny0yLjE3IDUuNDMtNSA1LjkxdjIuMDJjMy45NS0uNDkgNy0zLjg1IDctNy45M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJldmlld3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MThsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTRINS4xN0w0IDE3LjE3VjRoMTZ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDE1IDEuNTctMy40M0wxNyAxMGwtMy40My0xLjU3TDEyIDVsLTEuNTcgMy40M0w3IDEwbDMuNDMgMS41N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJzdnAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDloMS41bC0xLjc1IDZoLTEuNUwxMi41IDlIMTRsMSAzLjQzTDE2IDl6TTUuMSAxMi45IDYgMTVINC41bC0uODUtMkgyLjV2MkgxVjloMy41Yy44NSAwIDEuNS42NSAxLjUgMS41djFjMCAuNi0uNCAxLjE1LS45IDEuNHptLS42LTIuNGgtMnYxaDJ2LTF6bTE3IDIuNWgtMnYySDE4VjloMy41Yy44MyAwIDEuNS42NyAxLjUgMS41djFjMCAuODMtLjY3IDEuNS0xLjUgMS41em0wLTIuNWgtMnYxaDJ2LTF6TTExLjUgOXYxLjVoLTN2Ljc1aDJjLjU1IDAgMSAuNDUgMSAxVjE0YzAgLjU1LS40NSAxLTEgMUg3di0xLjVoM3YtLjc1SDcuNzVjLS40MSAwLS43NS0uMzQtLjc1LS43NXYtMmMwLS41NS40NS0xIDEtMWgzLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTY3JlZW5Mb2NrTGFuZHNjYXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA1SDNjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMnptLTIgMTJINVY3aDE0djEwem0tOS0xaDRjLjU1IDAgMS0uNDUgMS0xdi0zYzAtLjU1LS40NS0xLTEtMXYtMWEyIDIgMCAxIDAtNCAwdjFjLS41NSAwLTEgLjQ1LTEgMXYzYzAgLjU1LjQ1IDEgMSAxem0uOC02YzAtLjY2LjU0LTEuMiAxLjItMS4yczEuMi41NCAxLjIgMS4ydjFoLTIuNHYtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNjcmVlbkxvY2tQb3J0cmFpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTZoNGMuNTUgMCAxLS40NSAxLTF2LTNjMC0uNTUtLjQ1LTEtMS0xdi0xYTIgMiAwIDEgMC00IDB2MWMtLjU1IDAtMSAuNDUtMSAxdjNjMCAuNTUuNDUgMSAxIDF6bS44LTZjMC0uNjYuNTQtMS4yIDEuMi0xLjJzMS4yLjU0IDEuMiAxLjJ2MWgtMi40di0xek0xNyAxSDdjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxOEg3VjVoMTB2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTY3JlZW5Mb2NrUm90YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyLjMgMTMuNzctMi41Ny0yLjU3LTEuNDEgMS40MSAyLjIyIDIuMjItNS42NiA1LjY2TDMuNTYgOS4xN2w1LjY2LTUuNjYgMi4xIDIuMSAxLjQxLTEuNDEtMi40NS0yLjQ1YTEuNDkgMS40OSAwIDAgMC0yLjEyIDBMMS44IDguMTFhMS40OSAxLjQ5IDAgMCAwIDAgMi4xMmwxMi4wMiAxMi4wMmMuNTkuNTkgMS41NC41OSAyLjEyIDBsNi4zNi02LjM2Yy41OS0uNTkuNTktMS41NCAwLTIuMTJ6TTcuNTIgMjEuNDhBMTAuNDg3IDEwLjQ4NyAwIDAgMSAxLjU1IDEzSC4wNUMuNTYgMTkuMTYgNS43MSAyNCAxMiAyNGwuNjYtLjAzLTMuODEtMy44Mi0xLjMzIDEuMzN6TTE1LjA1IDEwaDVjLjU1IDAgMS0uNDUgMS0xVjVjMC0uNTUtLjQ1LTEtMS0xdi0uNWEyLjUgMi41IDAgMCAwLTUgMFY0Yy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMXptLjgtNi41YzAtLjk0Ljc2LTEuNyAxLjctMS43czEuNy43NiAxLjcgMS43VjRoLTMuNHYtLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTY3JlZW5Sb3RhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNDggMi41MmMzLjI3IDEuNTUgNS42MSA0LjcyIDUuOTcgOC40OGgxLjVDMjMuNDQgNC44NCAxOC4yOSAwIDEyIDBsLS42Ni4wMyAzLjgxIDMuODEgMS4zMy0xLjMyem0tNi4yNS0uNzdhMS40OSAxLjQ5IDAgMCAwLTIuMTIgMEwxLjc1IDguMTFhMS40OSAxLjQ5IDAgMCAwIDAgMi4xMmwxMi4wMiAxMi4wMmMuNTkuNTkgMS41NC41OSAyLjEyIDBsNi4zNi02LjM2Yy41OS0uNTkuNTktMS41NCAwLTIuMTJMMTAuMjMgMS43NXptNC42IDE5LjQ0TDIuODEgOS4xN2w2LjM2LTYuMzYgMTIuMDIgMTIuMDItNi4zNiA2LjM2em0tNy4zMS4yOUExMC40ODcgMTAuNDg3IDAgMCAxIDEuNTUgMTNILjA1Qy41NiAxOS4xNiA1LjcxIDI0IDEyIDI0bC42Ni0uMDMtMy44MS0zLjgxLTEuMzMgMS4zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNjcmVlblNlYXJjaERlc2t0b3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMThoMTZjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjIgNWMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxMWMwIDEuMS45IDIgMiAyek00IDVoMTZ2MTFINFY1ek0xIDE5aDIydjJIMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuOTcgNy41M2MtMS4zNy0xLjM3LTMuNTgtMS4zNy00Ljk1IDBzLTEuMzcgMy41OCAwIDQuOTVjMS4xOCAxLjE4IDMgMS4zNCA0LjM2LjQ3bDIuMDkgMi4wOSAxLjA2LTEuMDYtMi4wOS0yLjA5Yy44Ny0xLjM2LjcyLTMuMTgtLjQ3LTQuMzZ6bS0xLjA2IDMuODhjLS43OC43OC0yLjA1Ljc4LTIuODMgMC0uNzgtLjc4LS43OC0yLjA1IDAtMi44M3MyLjA1LS43OCAyLjgzIDBjLjc4Ljc5Ljc4IDIuMDUgMCAyLjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2NyZWVuc2hvdE1vbml0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAzSDRjLTEuMTEgMC0yIC44OS0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg0djJoOHYtMmg0YzEuMSAwIDItLjkgMi0yVjVhMiAyIDAgMCAwLTItMnptMCAxNEg0VjVoMTZ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSA3LjVIOVY2SDV2NGgxLjV6TTE5IDEyaC0xLjV2Mi41SDE1VjE2aDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTY3JlZW5zaG90IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxLjAxIDcgMWMtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNyAyMUg3di0xaDEwdjF6bTAtM0g3VjZoMTB2MTJ6bTAtMTRIN1YzaDEwdjF6TTkuNSA4LjVIMTJWN0g4djRoMS41VjguNXpNMTIgMTdoNHYtNGgtMS41djIuNUgxMlYxN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNkU3RvcmFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNHYxNkg2VjguODNMMTAuODMgNEgxOG0wLTJoLThMNCA4djEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpNOSA3aDJ2NEg5em0zIDBoMnY0aC0yem0zIDBoMnY0aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2VjdXJpdHlVcGRhdGVHb29kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxLjAxIDcgMWMtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNyAyMUg3di0xaDEwdjF6bTAtM0g3VjZoMTB2MTJ6bTAtMTRIN1YzaDEwdjF6bS0xIDYuMDUtMS40MS0xLjQxLTMuNTQgMy41NC0xLjQxLTEuNDEtMS40MSAxLjQxTDExLjA1IDE1IDE2IDEwLjA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2VjdXJpdHlVcGRhdGVXYXJuaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxNWgydjJoLTJ6TTExIDdoMnY2aC0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxLjAxIDcgMWMtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNyAyMUg3di0xaDEwdjF6bTAtM0g3VjZoMTB2MTJ6bTAtMTRIN1YzaDEwdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZWN1cml0eVVwZGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMS4wMSA3IDFjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTcgMjFIN3YtMWgxMHYxem0wLTNIN1Y2aDEwdjEyek03IDRWM2gxMHYxSDd6bTkgOC00IDQtNC00IDEuNDEtMS40MUwxMSAxMi4xN1Y4aDJ2NC4xN2wxLjU5LTEuNTlMMTYgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS40MSAxMS40MS04LjgzLTguODNjLS4zNy0uMzctLjg4LS41OC0xLjQxLS41OEg0Yy0xLjEgMC0yIC45LTIgMnY3LjE3YzAgLjUzLjIxIDEuMDQuNTkgMS40MWw4LjgzIDguODNjLjc4Ljc4IDIuMDUuNzggMi44MyAwbDcuMTctNy4xN2MuNzgtLjc4Ljc4LTIuMDQtLjAxLTIuODN6TTEyLjgzIDIwIDQgMTEuMTdWNGg3LjE3TDIwIDEyLjgzIDEyLjgzIDIwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjYuNVwiLFwiY3lcIjpcIjYuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZW5kVG9Nb2JpbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4IDggNCA0LTQgNC0xLjQxLTEuNDFMMTguMTcgMTNIMTN2LTJoNS4xN2wtMS41OS0xLjU5TDE4IDh6TTcgMS4wMSAxNyAxYzEuMSAwIDIgLjkgMiAydjRoLTJWNkg3djEyaDEwdi0xaDJ2NGMwIDEuMS0uOSAyLTIgMkg3Yy0xLjEgMC0yLS45LTItMlYzYzAtMS4xLjktMS45OSAyLTEuOTl6TTcgMjFoMTB2LTFIN3Yxek03IDRoMTBWM0g3djF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZXR0aW5nc1N1Z2dlc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxM2MuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xbTAtMmMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6bTguNS0yIDEuMDktMi40MUwyMiA1LjVsLTIuNDEtMS4wOUwxOC41IDJsLTEuMDkgMi40MUwxNSA1LjVsMi40MSAxLjA5TDE4LjUgOXptMi43OCAzLjcyTDIwLjUgMTFsLS43OCAxLjcyLTEuNzIuNzggMS43Mi43OC43OCAxLjcyLjc4LTEuNzJMMjMgMTMuNWwtMS43Mi0uNzh6TTE2LjI1IDE0YzAtLjEyIDAtLjI1LS4wMS0uMzdsMS45NC0xLjQ3LTIuNS00LjMzLTIuMjQuOTRjLS4yLS4xMy0uNDItLjI2LS42NC0uMzdMMTIuNSA2aC01bC0uMyAyLjQxYy0uMjIuMTEtLjQzLjI0LS42NC4zN2wtMi4yNC0uOTUtMi41IDQuMzMgMS45NCAxLjQ3Yy0uMDEuMTItLjAxLjI1LS4wMS4zN3MwIC4yNS4wMS4zN2wtMS45NCAxLjQ3IDIuNSA0LjMzIDIuMjQtLjk0Yy4yLjEzLjQyLjI2LjY0LjM3bC4zIDIuNGg1bC4zLTIuNDFjLjIyLS4xMS40My0uMjMuNjQtLjM3bDIuMjQuOTQgMi41LTQuMzMtMS45NC0xLjQ3Yy4wMS0uMTEuMDEtLjI0LjAxLS4zNnptLTEuNDIgMy42NC0xLjczLS43M2MtLjU2LjYtMS4zIDEuMDQtMi4xMyAxLjIzTDEwLjczIDIwSDkuMjdsLS4yMy0xLjg2Yy0uODMtLjE5LTEuNTctLjYzLTIuMTMtMS4yM2wtMS43My43My0uNzMtMS4yNyAxLjQ5LTEuMTNjLS4xMi0uMzktLjE4LS44LS4xOC0xLjIzIDAtLjQzLjA2LS44NC4xOC0xLjIzbC0xLjQ5LTEuMTMuNzMtMS4yNyAxLjczLjczYy41Ni0uNiAxLjMtMS4wNCAyLjEzLTEuMjNMOS4yNyA4aDEuNDdsLjIzIDEuODZjLjgzLjE5IDEuNTcuNjMgMi4xMyAxLjIzbDEuNzMtLjczLjczIDEuMjctMS40OSAxLjEzYy4xMi4zOS4xOC44LjE4IDEuMjMgMCAuNDMtLjA2Ljg0LS4xOCAxLjIzbDEuNDkgMS4xMy0uNzMgMS4yOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNldHRpbmdzU3lzdGVtRGF5ZHJlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgMTdIOWMtMi4yMSAwLTQtMS43OS00LTRhMy45OCAzLjk4IDAgMCAxIDMuMjItMy45MkE0LjUxNCA0LjUxNCAwIDAgMSAxMiA3YzEuOTUgMCAzLjY2IDEuMjggNC4yNiAzLjA5IDEuNTguMzYgMi43NCAxLjc1IDIuNzQgMy40MSAwIDEuOTMtMS41NyAzLjUtMy41IDMuNXptLTYuNzYtNS45OEM3Ljc0IDExLjE1IDcgMTEuOTkgNyAxM2MwIDEuMS45IDIgMiAyaDYuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVzLS42Ny0xLjUtMS41LTEuNWgtLjg3bC0uMTctLjg2QTIuNDk2IDIuNDk2IDAgMCAwIDEyIDljLS45NiAwLTEuODQuNTctMi4yNiAxLjQ1bC0uMjcuNTdoLS43M3pNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTYuMDFIM1Y0Ljk5aDE4djE0LjAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2hhcmVMb2NhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuMDIgMTkuOTN2Mi4wMmMyLjAxLS4yIDMuODQtMSA1LjMyLTIuMjFsLTEuNDItMS40M2E3Ljk0MSA3Ljk0MSAwIDAgMS0zLjkgMS42MnpNNC4wMyAxMmMwLTQuMDUgMy4wMy03LjQxIDYuOTUtNy45M1YyLjA1QzUuOTUgMi41OCAyLjAzIDYuODQgMi4wMyAxMmMwIDUuMTYgMy45MiA5LjQyIDguOTUgOS45NXYtMi4wMmMtMy45Mi0uNTItNi45NS0zLjg4LTYuOTUtNy45M3pNMTkuOTUgMTFoMi4wMmMtLjItMi4wMS0xLTMuODQtMi4yMS01LjMybC0xLjQzIDEuNDNjLjg2IDEuMSAxLjQ0IDIuNDMgMS42MiAzLjg5ek0xOC4zNCA0LjI2YTkuOTgxIDkuOTgxIDAgMCAwLTUuMzItMi4yMXYyLjAyYzEuNDYuMTggMi43OS43NiAzLjkgMS42MmwxLjQyLTEuNDN6TTE4LjMzIDE2LjlsMS40MyAxLjQyQTkuOTQ5IDkuOTQ5IDAgMCAwIDIxLjk3IDEzaC0yLjAyYTcuOTQxIDcuOTQxIDAgMCAxLTEuNjIgMy45elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxMS4xQzE2IDguNjEgMTQuMSA3IDEyIDdzLTQgMS42MS00IDQuMWMwIDEuNjYgMS4zMyAzLjYzIDQgNS45IDIuNjctMi4yNyA0LTQuMjQgNC01Ljl6bS00IC45YTEuMDcxIDEuMDcxIDAgMCAxIDAtMi4xNEExLjA3MSAxLjA3MSAwIDAgMSAxMiAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNob3J0Y3V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNSA1LTEuNDEgMS40MUwxNSA3LjgzIDE3LjE3IDEwSDhjLTIuNzYgMC01IDIuMjQtNSA1djRoMnYtNGMwLTEuNjUgMS4zNS0zIDMtM2g5LjE3TDE1IDE0LjE3bC0xLjQxIDEuNDFMMTUgMTdsNi02LTYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNpZ25hbENlbGx1bGFyMEJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyMmgyMFYyTDIgMjJ6bTE4LTJINi44M0wyMCA2LjgzVjIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2lnbmFsQ2VsbHVsYXI0QmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDIyaDIwVjJMMiAyMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNpZ25hbENlbGx1bGFyQWx0MUJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTRoM3Y2SDV2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaWduYWxDZWxsdWxhckFsdDJCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE0aDN2Nkg1di02em02LTVoM3YxMWgtM1Y5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2lnbmFsQ2VsbHVsYXJBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDRoM3YxNmgtM1Y0ek01IDE0aDN2Nkg1di02em02LTVoM3YxMWgtM1Y5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2lnbmFsQ2VsbHVsYXJDb25uZWN0ZWROb0ludGVybmV0MEJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE4aDJ2LThoLTJ2OHptMCA0aDJ2LTJoLTJ2MnptLTItMnYySDJMMjIgMnY2aC0yVjYuODNMNi44MyAyMEgxOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNpZ25hbENlbGx1bGFyQ29ubmVjdGVkTm9JbnRlcm5ldDRCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE4aDJ2LThoLTJ2OHptMCA0aDJ2LTJoLTJ2MnpNMiAyMmgxNlY4aDRWMkwyIDIyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2lnbmFsQ2VsbHVsYXJOb1NpbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuODMgNUgxN3Y5LjExbDIgMlY1YzAtMS4xLS45LTItMi0yaC03TDcuOTQgNS4wNmwxLjQyIDEuNDJMMTAuODMgNXptMTAuNDMgMTYuMjFMMy43OSAzLjc0IDIuMzggNS4xNSA1IDcuNzdWMTlhMiAyIDAgMCAwIDIgMmgxMS4yM2wxLjYyIDEuNjIgMS40MS0xLjQxek03IDE5VjkuNzlMMTYuMjMgMTlIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNpZ25hbENlbGx1bGFyTm9kYXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxM2gtOXY5SDJMMjIgMnYxMXptLTEgMi40MUwxOS41OSAxNGwtMi4wOSAyLjA5TDE1LjQxIDE0IDE0IDE1LjQxbDIuMDkgMi4wOUwxNCAxOS41OSAxNS40MSAyMWwyLjA5LTIuMDhMMTkuNTkgMjEgMjEgMTkuNTlsLTIuMDgtMi4wOUwyMSAxNS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNpZ25hbENlbGx1bGFyTnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNi44M1YyMEg2LjgzTDIwIDYuODNNMjIgMiAyIDIyaDIwVjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaWduYWxDZWxsdWxhck9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEgMS04LjMxIDguMzEgOC4zMSA4LjN6TTQuOTEgNC4zNiAzLjUgNS43N2w2LjM2IDYuMzdMMSAyMWgxNy43M2wyIDIgMS40MS0xLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2lnbmFsV2lmaTBCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OEwxMiAyMSAyNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDR6TTIuOTIgOS4wN0M1LjUxIDcuMDggOC42NyA2IDEyIDZzNi40OSAxLjA4IDkuMDggMy4wN0wxMiAxOC4xN2wtOS4wOC05LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaWduYWxXaWZpNEJhckxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjk4IDExIDI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4bDYuMzUgNi4zNkwxMiAyMWwzLjA1LTMuMDVWMTVjMC0uNDUuMDktLjg4LjIzLTEuMjkuNTQtMS41NyAyLjAxLTIuNzEgMy43Ny0yLjcxaDIuOTN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDE2di0xYzAtMS4xLS45LTItMi0ycy0yIC45LTIgMnYxYy0uNTUgMC0xIC40NS0xIDF2M2MwIC41NS40NSAxIDEgMWg0Yy41NSAwIDEtLjQ1IDEtMXYtM2MwLS41NS0uNDUtMS0xLTF6bS0xIDBoLTJ2LTFjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaWduYWxXaWZpNEJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMDEgMjEuNDkgMjMuNjQgN2MtLjQ1LS4zNC00LjkzLTQtMTEuNjQtNEM1LjI4IDMgLjgxIDYuNjYuMzYgN2wxMS42MyAxNC40OS4wMS4wMS4wMS0uMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaWduYWxXaWZpQmFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OEwxMiAyMXYtOWg4Ljk5TDI0IDguOTh6TTE5LjU5IDE0bC0yLjA5IDIuMDktLjMtLjNMMTUuNDEgMTQgMTQgMTUuNDFsMS43OSAxLjc5LjMuM0wxNCAxOS41OSAxNS40MSAyMWwyLjA5LTIuMDhMMTkuNTkgMjEgMjEgMTkuNTlsLTIuMDgtMi4wOUwyMSAxNS40MSAxOS41OSAxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNpZ25hbFdpZmlDb25uZWN0ZWROb0ludGVybmV0NCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThMMTIgMjF2LTloOC45OUwyNCA4Ljk4ek0xOS41OSAxNGwtMi4wOSAyLjA5LS4zLS4zTDE1LjQxIDE0IDE0IDE1LjQxbDEuNzkgMS43OS4zLjNMMTQgMTkuNTkgMTUuNDEgMjFsMi4wOS0yLjA4TDE5LjU5IDIxIDIxIDE5LjU5bC0yLjA4LTIuMDlMMjEgMTUuNDEgMTkuNTkgMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaWduYWxXaWZpT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMy42NCA3Yy0uNDUtLjM0LTQuOTMtNC0xMS42NC00LTEuMzIgMC0yLjU1LjE0LTMuNjkuMzhMMTguNDMgMTMuNSAyMy42NCA3ek0zLjQxIDEuMzEgMiAyLjcybDIuMDUgMi4wNUMxLjkxIDUuNzYuNTkgNi44Mi4zNiA3TDEyIDIxLjVsMy45MS00Ljg3IDMuMzIgMy4zMiAxLjQxLTEuNDFMMy40MSAxLjMxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2lnbmFsV2lmaVN0YXR1c2JhcjRCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OEwxMiAyMSAyNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaWduYWxXaWZpU3RhdHVzYmFyQ29ubmVjdGVkTm9JbnRlcm5ldDQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OEwxMiAyMWw1LTUuMDFWOGg1LjkyQzE5Ljk3IDUuNTEgMTYuMTYgNCAxMiA0ek0xOSAxOGgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDEwaDJ2NmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNpZ25hbFdpZmlTdGF0dXNiYXJOdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThMMTIgMjEgMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0ek0yLjkyIDkuMDdDNS41MSA3LjA4IDguNjcgNiAxMiA2czYuNDkgMS4wOCA5LjA4IDMuMDdMMTIgMTguMTdsLTkuMDgtOS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2ltQ2FyZERvd25sb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAyaC04TDQgOHYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMnYxNkg2VjguODNMMTAuODMgNEgxOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYgMTMtNCA0LTQtNCAxLjQxLTEuNDFMMTEgMTMuMTdWOS4wMkwxMyA5djQuMTdsMS41OS0xLjU5TDE2IDEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BsaXRzY3JlZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDR2NUg2VjRoMTJtMC0ySDZjLTEuMSAwLTIgLjktMiAydjVjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDEzdjVINnYtNWgxMm0wLTJINmMtMS4xIDAtMiAuOS0yIDJ2NWMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0ydi01YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BvcnRzU2NvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDZIOVY0aDJ2MnptNC0yaC0ydjJoMlY0ek05IDE0aDJ2LTJIOXYyem0xMC00VjhoLTJ2Mmgyem0wIDR2LTJoLTJ2Mmgyem0tNiAwaDJ2LTJoLTJ2MnptNi0xMGgtMnYyaDJWNHptLTYgNFY2aC0ydjJoMnptLTYgMlY4aDJWNkg3VjRINXYxNmgydi04aDJ2LTJIN3ptOCAyaDJ2LTJoLTJ2MnptLTQtMnYyaDJ2LTJoLTJ6TTkgOHYyaDJWOEg5em00IDJoMlY4aC0ydjJ6bTItNHYyaDJWNmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNzaWRDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDUuNDcgMTIgMTIgNy42MiA3LjYyIDMgMTFWOC41Mkw3LjgzIDVsNC4zOCA0LjM4TDIxIDN2Mi40N3pNMjEgMTVoLTQuN2wtNC4xNyAzLjM0TDYgMTIuNDFsLTMgMi4xM1YxN2wyLjgtMiA2LjIgNiA1LTRoNHYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0b3JhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMjBoMjB2LTRIMnY0em0yLTNoMnYySDR2LTJ6TTIgNHY0aDIwVjRIMnptNCAzSDRWNWgydjJ6bS00IDdoMjB2LTRIMnY0em0yLTNoMnYySDR2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdG9ybSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguOTMgOEMxNi43MiA0LjE4IDExLjgyIDIuODcgOCA1LjA3Yy0xLjQxLjgyLTIuNDggMi0zLjE2IDMuMzctLjEzLTIuMi4yMi00LjQgMS4wMi02LjQ0SDMuNzRDMi4yIDYuNDkgMi41MiAxMS41OCA1LjA3IDE2YTcuOTYgNy45NiAwIDAgMCA0Ljg2IDMuNzJjMS45OC41MyA0LjE2LjMxIDYuMDctLjc5IDEuNDEtLjgyIDIuNDgtMiAzLjE2LTMuMzcuMTMgMi4yLS4yMSA0LjQtMS4wMSA2LjQ0aDIuMTFjMS41My00LjQ5IDEuMjItOS41OC0xLjMzLTE0ek0xNSAxNy4yQTYuMDEyIDYuMDEyIDAgMCAxIDYuOCAxNWMtLjExLS4yLS4yMS0uNC0uMy0uNi0xLjItMi43Ni0uMTctNi4wNiAyLjUtNy42IDIuODYtMS42NSA2LjU0LS42NyA4LjIgMi4yLjExLjIuMjEuNC4zLjYgMS4yIDIuNzYuMTcgNi4wNi0yLjUgNy42ek0xMiAxMGMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJtMC0yYy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN1bW1hcml6ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgM0g1Yy0xLjEgMC0xLjk5LjktMS45OSAyTDMgMTljMCAxLjEuODkgMiAxLjk5IDJIMTljMS4xIDAgMi0uOSAyLTJWOWwtNi02ek01IDE5VjVoOXY1aDV2OUg1ek05IDhjMCAuNTUtLjQ1IDEtMSAxcy0xLS40NS0xLTEgLjQ1LTEgMS0xIDEgLjQ1IDEgMXptMCA0YzAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xIC40NS0xIDEtMSAxIC40NSAxIDF6bTAgNGMwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMSAuNDUtMSAxLTEgMSAuNDUgMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3lzdGVtU2VjdXJpdHlVcGRhdGVHb29kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxLjAxIDcgMWMtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNyAyMUg3di0xaDEwdjF6bTAtM0g3VjZoMTB2MTJ6bTAtMTRIN1YzaDEwdjF6bS0xIDYuMDUtMS40MS0xLjQxLTMuNTQgMy41NC0xLjQxLTEuNDEtMS40MSAxLjQxTDExLjA1IDE1IDE2IDEwLjA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3lzdGVtU2VjdXJpdHlVcGRhdGVXYXJuaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxNWgydjJoLTJ6TTExIDdoMnY2aC0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxLjAxIDcgMWMtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNyAyMUg3di0xaDEwdjF6bTAtM0g3VjZoMTB2MTJ6bTAtMTRIN1YzaDEwdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTeXN0ZW1TZWN1cml0eVVwZGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMS4wMSA3IDFjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTcgMjFIN3YtMWgxMHYxem0wLTNIN1Y2aDEwdjEyek03IDRWM2gxMHYxSDd6bTkgOC00IDQtNC00IDEuNDEtMS40MUwxMSAxMi4xN1Y4aDJ2NC4xN2wxLjU5LTEuNTlMMTYgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUYXNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAySDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNCAyMGMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTQgMThINlY0aDd2NWg1djExem0tOS4xOC02Ljk1TDcuNCAxNC40NiAxMC45NCAxOGw1LjY2LTUuNjYtMS40MS0xLjQxLTQuMjQgNC4yNC0yLjEzLTIuMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUaGVybW9zdGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxM1Y1YzAtMS42Ni0xLjM0LTMtMy0zUzkgMy4zNCA5IDV2OGMtMS4yMS45MS0yIDIuMzctMiA0IDAgMi43NiAyLjI0IDUgNSA1czUtMi4yNCA1LTVjMC0xLjYzLS43OS0zLjA5LTItNHptLTQtOGMwLS41NS40NS0xIDEtMXMxIC40NSAxIDFoLTF2MWgxdjJoLTF2MWgxdjJoLTJWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRpbWVyMTBTZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA4djhoLTNWOGgzbTAtM2gtM0M4LjM0IDUgNyA2LjM0IDcgOHY4YzAgMS42NiAxLjM0IDMgMyAzaDNjMS42NiAwIDMtMS4zNCAzLTNWOGMwLTEuNjYtMS4zNC0zLTMtM3pNMSA4aDJ2MTFoM1Y1SDF2M3ptMTcuNSAzYy0uODMgMC0xLjUuNjgtMS41IDEuNXYyYzAgLjgyLjY3IDEuNSAxLjUgMS41SDIxdjFoLTR2Mmg0LjVjLjgzIDAgMS41LS42NyAxLjUtMS41di0yYzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxOXYtMWg0di0yaC00LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUaW1lcjNTZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMXYyaC00djFoMi41Yy44MyAwIDEuNS42OCAxLjUgMS41djJjMCAuODMtLjY3IDEuNS0xLjUgMS41SDE1di0yaDR2LTFoLTIuNWMtLjgyIDAtMS41LS42OC0xLjUtMS41di0yYzAtLjgyLjY4LTEuNSAxLjUtMS41SDIxek00IDV2M2g2djIuNUg0djNoNlYxNkg0djNoNmMxLjY2IDAgMy0xLjM0IDMtM3YtMS45YTIuMSAyLjEgMCAwIDAtMi4xLTIuMUEyLjEgMi4xIDAgMCAwIDEzIDkuOVY4YzAtMS42Ni0xLjM0LTMtMy0zSDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUdW5nc3RlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTloMnYzaC0yek0yIDExaDN2Mkgyek0xOSAxMWgzdjJoLTN6TTE1Ljg5NCAxNy44MDFsMS40MDctMS40MDcgMi4xMjIgMi4xMjItMS40MDggMS40MDd6TTQuNTg0IDE4LjUwOWwyLjEyMS0yLjEyMiAxLjQwOCAxLjQwNy0yLjEyMiAyLjEyMnpNMTUgOC4wMlYzSDl2NS4wMmMtMS4yMS45Mi0yIDIuMzUtMiAzLjk4IDAgMi43NiAyLjI0IDUgNSA1czUtMi4yNCA1LTVjMC0xLjYzLS43OS0zLjA2LTItMy45OHpNMTEgNWgydjIuMWMtLjMyLS4wNi0uNjYtLjEtMS0uMXMtLjY4LjA0LTEgLjFWNXptMSAxMGMtMS42NSAwLTMtMS4zNS0zLTNzMS4zNS0zIDMtMyAzIDEuMzUgMyAzLTEuMzUgMy0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVVc2JPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA4aDR2NGgtMXYyYzAgLjM0LS4wOC42Ni0uMjMuOTRMMTYgMTMuMTdWMTJoLTFWOHptLTQgLjE3IDIgMlY2aDJsLTMtNC0zIDRoMnYyLjE3ek0xMyAxNnYyLjI4Yy42LjM0IDEgLjk4IDEgMS43MiAwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTJjMC0uNzQuNC0xLjM3IDEtMS43MlYxNkg4Yy0xLjExIDAtMi0uODktMi0ydi0yLjI4Yy0uNi0uMzQtMS0uOTgtMS0xLjcyIDAtLjU5LjI2LTEuMTMuNjgtMS40OUwxLjM5IDQuMjIgMi44IDIuODFsMTguMzggMTguMzgtMS40MSAxLjQxLTYuNi02LjZIMTN6bS0yLTJ2LS4xN2wtMi41MS0yLjUxYy0uMTQuMTYtLjMxLjI5LS40OS40VjE0aDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVVc2IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDd2NGgxdjJoLTNWNWgybC0zLTQtMyA0aDJ2OEg4di0yLjA3Yy43LS4zNyAxLjItMS4wOCAxLjItMS45MyAwLTEuMjEtLjk5LTIuMi0yLjItMi4yUzQuOCA3Ljc5IDQuOCA5YzAgLjg1LjUgMS41NiAxLjIgMS45M1YxM2MwIDEuMTEuODkgMiAyIDJoM3YzLjA1Yy0uNzEuMzctMS4yIDEuMS0xLjIgMS45NWEyLjIgMi4yIDAgMCAwIDQuNCAwYzAtLjg1LS40OS0xLjU4LTEuMi0xLjk1VjE1aDNjMS4xMSAwIDItLjg5IDItMnYtMmgxVjdoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXYWxscGFwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNGg3VjJINGMtMS4xIDAtMiAuOS0yIDJ2N2gyVjR6bTYgOS00IDVoMTJsLTMtNC0yLjAzIDIuNzFMMTAgMTN6bTctNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNVMxNCA3LjY3IDE0IDguNXMuNjcgMS41IDEuNSAxLjVTMTcgOS4zMyAxNyA4LjV6TTIwIDJoLTd2Mmg3djdoMlY0YzAtMS4xLS45LTItMi0yem0wIDE4aC03djJoN2MxLjEgMCAyLS45IDItMnYtN2gtMnY3ek00IDEzSDJ2N2MwIDEuMS45IDIgMiAyaDd2LTJINHYtN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdhdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS45OCAxNEgyMmgtLjAyek01LjM1IDEzYzEuMTkgMCAxLjQyIDEgMy4zMyAxIDEuOTUgMCAyLjA5LTEgMy4zMy0xIDEuMTkgMCAxLjQyIDEgMy4zMyAxIDEuOTUgMCAyLjA5LTEgMy4zMy0xIDEuMTkgMCAxLjQuOTggMy4zMSAxdi0yYy0xLjE5IDAtMS40Mi0xLTMuMzMtMS0xLjk1IDAtMi4wOSAxLTMuMzMgMS0xLjE5IDAtMS40Mi0xLTMuMzMtMS0xLjk1IDAtMi4wOSAxLTMuMzMgMS0xLjE5IDAtMS40Mi0xLTMuMzMtMS0xLjk1IDAtMi4wOSAxLTMuMzMgMXYyYzEuOSAwIDIuMTctMSAzLjM1LTF6bTEzLjMyIDJjLTEuOTUgMC0yLjA5IDEtMy4zMyAxLTEuMTkgMC0xLjQyLTEtMy4zMy0xLTEuOTUgMC0yLjEgMS0zLjM0IDEtMS4yNCAwLTEuMzgtMS0zLjMzLTEtMS45NSAwLTIuMSAxLTMuMzQgMXYyYzEuOTUgMCAyLjExLTEgMy4zNC0xIDEuMjQgMCAxLjM4IDEgMy4zMyAxIDEuOTUgMCAyLjEtMSAzLjM0LTEgMS4xOSAwIDEuNDIgMSAzLjMzIDEgMS45NCAwIDIuMDktMSAzLjMzLTEgMS4xOSAwIDEuNDIgMSAzLjMzIDF2LTJjLTEuMjQgMC0xLjM4LTEtMy4zMy0xek01LjM1IDljMS4xOSAwIDEuNDIgMSAzLjMzIDEgMS45NSAwIDIuMDktMSAzLjMzLTEgMS4xOSAwIDEuNDIgMSAzLjMzIDEgMS45NSAwIDIuMDktMSAzLjMzLTEgMS4xOSAwIDEuNC45OCAzLjMxIDFWOGMtMS4xOSAwLTEuNDItMS0zLjMzLTEtMS45NSAwLTIuMDkgMS0zLjMzIDEtMS4xOSAwLTEuNDItMS0zLjMzLTEtMS45NSAwLTIuMDkgMS0zLjMzIDEtMS4xOSAwLTEuNDItMS0zLjMzLTFDMy4zOCA3IDMuMjQgOCAyIDh2MmMxLjkgMCAyLjE3LTEgMy4zNS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2lkZ2V0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYuNjYgNC41MiAyLjgzIDIuODMtMi44MyAyLjgzLTIuODMtMi44MyAyLjgzLTIuODNNOSA1djRINVY1aDRtMTAgMTB2NGgtNHYtNGg0TTkgMTV2NEg1di00aDRtNy42Ni0xMy4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6TTExIDNIM3Y4aDhWM3ptMTAgMTBoLTh2OGg4di04em0tMTAgMEgzdjhoOHYtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdpZmkxQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNTMgMTcuNDYgMTIgMjFsLTMuNTMtMy41NGMuOS0uOSAyLjE1LTEuNDYgMy41My0xLjQ2czIuNjMuNTYgMy41MyAxLjQ2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2lmaTJCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEwYzMuMDMgMCA1Ljc4IDEuMjMgNy43NiAzLjIybC0yLjEyIDIuMTJBNy45NjcgNy45NjcgMCAwIDAgMTIgMTNjLTIuMiAwLTQuMi45LTUuNjQgMi4zNWwtMi4xMi0yLjEyQzYuMjIgMTEuMjMgOC45NyAxMCAxMiAxMHptMCA2Yy0xLjM4IDAtMi42My41Ni0zLjUzIDEuNDZMMTIgMjFsMy41My0zLjU0QTQuOTggNC45OCAwIDAgMCAxMiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdpZmlDYWxsaW5nMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNDkgNC41YzEuNzkgMCAzLjQyLjczIDQuNTkgMS45MWwxLjA2LTEuMDZBNy45NCA3Ljk0IDAgMCAwIDE2LjQ5IDNjLTIuMjEgMC00LjIxLjktNS42NiAyLjM0bDEuMDYgMS4wNmE2LjU0NSA2LjU0NSAwIDAgMSA0LjYtMS45elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi40OSA2Yy0xLjM4IDAtMi42My41Ni0zLjU0IDEuNDZsMS4wNiAxLjA2Yy42My0uNjMgMS41MS0xLjAzIDIuNDctMS4wM3MxLjg0LjM5IDIuNDcgMS4wM2wxLjA2LTEuMDZBNC45NCA0Ljk0IDAgMCAwIDE2LjQ5IDZ6TTE2LjQ5IDljLS41NSAwLTEuMDUuMjItMS40MS41OUwxNi40OSAxMWwxLjQxLTEuNDFjLS4zNi0uMzctLjg2LS41OS0xLjQxLS41OXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuMiAxNC44Ny0zLjY3LS43M2MtLjUtLjEtLjgzLjItLjkuMjdsLTIuNTIgMi41Yy0yLjUtMS40My00LjU3LTMuNS02LTZsMi41LTIuNTJjLjIzLS4yNC4zMy0uNTcuMjctLjlMOS4xMyAzLjhjLS4wOS0uNDYtLjUtLjgtLjk4LS44SDRjLS41NiAwLTEuMDMuNDctMSAxLjAzLjE3IDIuODkgMS4wNSA1LjYgMi40MyA3Ljk3IDEuNTggMi43MyAzLjg1IDQuOTkgNi41NyA2LjU3IDIuMzcgMS4zNyA1LjA4IDIuMjYgNy45NyAyLjQzLjU1LjAzIDEuMDMtLjQzIDEuMDMtMXYtNC4xNWMwLS40OC0uMzQtLjg5LS44LS45OHpNNS4xIDVoMi4yM2wuNDcgMi4zNUw2LjE3IDljLS41NC0xLjMtLjktMi42My0xLjA3LTR6TTE5IDE4LjljLTEuMzctLjE4LTIuNy0uNTMtNC0xLjA3bDEuNjUtMS42MyAyLjM1LjQ3djIuMjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXaWZpQ2hhbm5lbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDNjLTIuNTEgMC0zLjc3IDUuNjEtNC40IDEwLjU3QzEwLjc5IDEwLjY2IDkuNjEgOCA4IDggNC40MyA4IDMgMjEgMyAyMWgyLjAxYy42MS01LjI3IDItOS44MiAyLjk5LTEwLjg3Ljk4IDEuMDUgMi4zOCA1LjYxIDIuOTkgMTAuODdIMTNjLjUtMi41MyAyLTYgMy02czIuNSAzLjUzIDMgNmgycy0uNS0xOC01LTE4em0wIDEwYy0uOTkgMC0xLjgyLjYyLTIuNSAxLjUuNTctNC43NyAxLjU0LTguNjIgMi41LTkuNDQuOTcuODEgMS45MSA0LjY3IDIuNDkgOS40M0MxNy44MSAxMy42MiAxNi45OCAxMyAxNiAxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdpZmlGaW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNmM0LjE0IDAgNy44OCAxLjY4IDEwLjU5IDQuMzlMMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThMMTIgMjFsMS40MS0xLjQyTDIuOTMgOS4wOEM1LjQ1IDcuMTYgOC41OSA2IDEyIDZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDE0YzAtMi4yNC0xLjc2LTQtNC00cy00IDEuNzYtNCA0IDEuNzYgNCA0IDRjLjc1IDAgMS40NC0uMjEgMi4wMy0uNTZMMjEuNTkgMjAgMjMgMTguNTlsLTIuNTYtMi41NmMuMzUtLjU5LjU2LTEuMjguNTYtMi4wM3ptLTQgMmMtMS4xMiAwLTItLjg4LTItMnMuODgtMiAyLTIgMiAuODggMiAyLS44OCAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdpZmlMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS45OCAxMSAyNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OGw2LjM1IDYuMzZMMTIgMjFsMy4wNS0zLjA1VjE1YzAtLjQ1LjA5LS44OC4yMy0xLjI5LjU0LTEuNTcgMi4wMS0yLjcxIDMuNzctMi43MWgyLjkzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxNnYtMWMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDJ2MWMtLjU1IDAtMSAuNDUtMSAxdjNjMCAuNTUuNDUgMSAxIDFoNGMuNTUgMCAxLS40NSAxLTF2LTNjMC0uNTUtLjQ1LTEtMS0xem0tMSAwaC0ydi0xYzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2lmaVBhc3N3b3JkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjQgOC45OC0yLjEyIDIuMTNDMTkuMzUgOC41NyAxNS44NSA3IDEyIDdzLTcuMzUgMS41Ny05Ljg4IDQuMTFMMCA4Ljk4QzMuMDcgNS45IDcuMzEgNCAxMiA0czguOTMgMS45IDEyIDQuOTh6TTQuMjQgMTMuMjJsMi4xMiAyLjEyQTcuOTY3IDcuOTY3IDAgMCAxIDEyIDEzYzIuMiAwIDQuMi45IDUuNjQgMi4zNWwyLjEyLTIuMTJDMTcuNzggMTEuMjMgMTUuMDMgMTAgMTIgMTBjLTMuMDMgMC01Ljc4IDEuMjMtNy43NiAzLjIyek0yNCAyMHYzYzAgLjU1LS40NSAxLTEgMWgtNGMtLjU1IDAtMS0uNDUtMS0xdi0zYzAtLjU1LjQ1LTEgMS0xdi0xYzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ2MWMuNTUgMCAxIC40NSAxIDF6bS0yLTJjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2MWgydi0xem0tMTAtMmMtMS4zOCAwLTIuNjMuNTYtMy41MyAxLjQ2TDEyIDIxbDMuNTMtMy41NEE0Ljk4IDQuOTggMCAwIDAgMTIgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXaWZpVGV0aGVyaW5nRXJyb3JSb3VuZGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3Yy0zLjMxIDAtNiAyLjY5LTYgNiAwIDEuNjYuNjggMy4xNSAxLjc2IDQuMjRsMS40Mi0xLjQyQTMuOTM0IDMuOTM0IDAgMCAxIDggMTNjMC0yLjIxIDEuNzktNCA0LTRzNCAxLjc5IDQgNGMwIDEuMTEtLjQ1IDIuMS0xLjE4IDIuODJsMS40MiAxLjQyQTYuMDAzIDYuMDAzIDAgMCAwIDE4IDEzYzAtMy4zMS0yLjY5LTYtNi02em0wLTRDNi40OCAzIDIgNy40OCAyIDEzYzAgMi43NiAxLjEyIDUuMjYgMi45MyA3LjA3bDEuNDItMS40MkE3Ljk0IDcuOTQgMCAwIDEgNCAxM2MwLTQuNDIgMy41OC04IDgtOCAyLjUzIDAgNC43OCAxLjE3IDYuMjQgM2gyLjQyQzE4LjkzIDUuMDEgMTUuNyAzIDEyIDN6bTAgOGMtMS4xIDAtMiAuOS0yIDIgMCAuNTUuMjMgMS4wNS41OSAxLjQxLjM2LjM2Ljg2LjU5IDEuNDEuNTlzMS4wNS0uMjMgMS40MS0uNTljLjM2LS4zNi41OS0uODYuNTktMS40MSAwLTEuMS0uOS0yLTItMnptOC0xaDJ2NmgtMnYtNnptMCA4aDJ2MmgtMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdpZmlUZXRoZXJpbmdFcnJvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgN2MtMy4zMSAwLTYgMi42OS02IDYgMCAxLjY2LjY4IDMuMTUgMS43NiA0LjI0bDEuNDItMS40MkEzLjkzNCAzLjkzNCAwIDAgMSA4IDEzYzAtMi4yMSAxLjc5LTQgNC00czQgMS43OSA0IDRjMCAxLjExLS40NSAyLjEtMS4xOCAyLjgybDEuNDIgMS40MkE2LjAwMyA2LjAwMyAwIDAgMCAxOCAxM2MwLTMuMzEtMi42OS02LTYtNnptMC00QzYuNDggMyAyIDcuNDggMiAxM2MwIDIuNzYgMS4xMiA1LjI2IDIuOTMgNy4wN2wxLjQyLTEuNDJBNy45NCA3Ljk0IDAgMCAxIDQgMTNjMC00LjQyIDMuNTgtOCA4LTggMi41MyAwIDQuNzggMS4xNyA2LjI0IDNoMi40MkMxOC45MyA1LjAxIDE1LjcgMyAxMiAzem0wIDhjLTEuMSAwLTIgLjktMiAyIDAgLjU1LjIzIDEuMDUuNTkgMS40MS4zNi4zNi44Ni41OSAxLjQxLjU5czEuMDUtLjIzIDEuNDEtLjU5Yy4zNi0uMzYuNTktLjg2LjU5LTEuNDEgMC0xLjEtLjktMi0yLTJ6bTgtMWgydjZoLTJ2LTZ6bTAgOGgydjJoLTJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXaWZpVGV0aGVyaW5nT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjgxIDIuODEgMS4zOSA0LjIybDIuNjkgMi42OUE5Ljk1OCA5Ljk1OCAwIDAgMCAyIDEzYzAgMi43NiAxLjEyIDUuMjYgMi45MyA3LjA3bDEuNDItMS40MmE3Ljk1NyA3Ljk1NyAwIDAgMS0uODQtMTAuMzFsMS40MyAxLjQzYTYuMDAzIDYuMDAzIDAgMCAwIC44MiA3LjQ3bDEuNDItMS40MkEzLjkzNCAzLjkzNCAwIDAgMSA4IDEzYzAtLjYzLjE1LTEuMjMuNDEtMS43NmwxLjYxIDEuNjFjMCAuMDUtLjAyLjEtLjAyLjE1IDAgLjU1LjIzIDEuMDUuNTkgMS40MS4zNi4zNi44Ni41OSAxLjQxLjU5LjA1IDAgLjEtLjAxLjE2LS4wMmw3LjYyIDcuNjIgMS40MS0xLjQxTDIuODEgMi44MXpNMTcuNyAxNC44N2MuMTktLjU5LjMtMS4yMi4zLTEuODcgMC0zLjMxLTIuNjktNi02LTYtLjY1IDAtMS4yOC4xLTEuODcuM2wxLjcxIDEuNzFDMTEuODkgOSAxMS45NSA5IDEyIDljMi4yMSAwIDQgMS43OSA0IDQgMCAuMDUgMCAuMTEtLjAxLjE2bDEuNzEgMS43MXpNMTIgNWM0LjQyIDAgOCAzLjU4IDggOCAwIDEuMjItLjI3IDIuMzctLjc3IDMuNGwxLjQ5IDEuNDlBOS45NTMgOS45NTMgMCAwIDAgMjIgMTNjMC01LjUyLTQuNDgtMTAtMTAtMTAtMS43OCAwLTMuNDQuNDYtNC44OSAxLjI4bDEuNDggMS40OEM5LjYzIDUuMjcgMTAuNzggNSAxMiA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2lmaVRldGhlcmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTFjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem02IDJjMC0zLjMxLTIuNjktNi02LTZzLTYgMi42OS02IDZjMCAyLjIyIDEuMjEgNC4xNSAzIDUuMTlsMS0xLjc0Yy0xLjE5LS43LTItMS45Ny0yLTMuNDUgMC0yLjIxIDEuNzktNCA0LTRzNCAxLjc5IDQgNGMwIDEuNDgtLjgxIDIuNzUtMiAzLjQ1bDEgMS43NGMxLjc5LTEuMDQgMy0yLjk3IDMtNS4xOXpNMTIgM0M2LjQ4IDMgMiA3LjQ4IDIgMTNjMCAzLjcgMi4wMSA2LjkyIDQuOTkgOC42NWwxLTEuNzNDNS42MSAxOC41MyA0IDE1Ljk2IDQgMTNjMC00LjQyIDMuNTgtOCA4LThzOCAzLjU4IDggOGMwIDIuOTYtMS42MSA1LjUzLTQgNi45MmwxIDEuNzNjMi45OS0xLjczIDUtNC45NSA1LTguNjUgMC01LjUyLTQuNDgtMTAtMTAtMTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBZGRDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDE5SDVWNWg5VjNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtOWgtMnY5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxM2gydjRoLTJ6TTcgMTBoMnY3SDd6TTExIDdoMnYxMGgtMnpNMTkgNVYzaC0ydjJoLTJ2MmgydjJoMlY3aDJWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZENvbW1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDRjMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNGw0IDRWNHptLTIgMTMuMTdMMTguODMgMTZINFY0aDE2djEzLjE3ek0xMyA1aC0ydjRIN3YyaDR2NGgydi00aDRWOWgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFsaWduSG9yaXpvbnRhbENlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDJoMnY1aDh2M2gtOHY0aDV2M2gtNXY1aC0ydi01SDZ2LTNoNXYtNEgzVjdoOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFsaWduSG9yaXpvbnRhbExlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDIySDJWMmgydjIwek0yMiA3SDZ2M2gxNlY3em0tNiA3SDZ2M2gxMHYtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFsaWduSG9yaXpvbnRhbFJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMmgydjIwaC0yVjJ6TTIgMTBoMTZWN0gydjN6bTYgN2gxMHYtM0g4djN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBbGlnblZlcnRpY2FsQm90dG9tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMjJIMnYtMmgyMHYyek0xMCAySDd2MTZoM1Yyem03IDZoLTN2MTBoM1Y4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWxpZ25WZXJ0aWNhbENlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDExaC01VjZoLTN2NWgtNFYzSDd2OEgxLjg0djJIN3Y4aDN2LThoNHY1aDN2LTVoNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFsaWduVmVydGljYWxUb3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAydjJIMlYyaDIwek03IDIyaDNWNkg3djE2em03LTZoM1Y2aC0zdjEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXJlYUNoYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcgNy01LTQtNSA3LTQtM3YxM2gxOFY3aC00em0yIDkuOTUtNy01LjQ1TDggMTdsLTMtMi40VjExbDIuNDQgMS44MyA0Ljk2LTYuOTVMMTYuMyA5SDE5djcuOTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBdHRhY2hGaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41IDZ2MTEuNWMwIDIuMjEtMS43OSA0LTQgNHMtNC0xLjc5LTQtNFY1YTIuNSAyLjUgMCAwIDEgNSAwdjEwLjVjMCAuNTUtLjQ1IDEtMSAxcy0xLS40NS0xLTFWNkgxMHY5LjVhMi41IDIuNSAwIDAgMCA1IDBWNWMwLTIuMjEtMS43OS00LTQtNFM3IDIuNzkgNyA1djEyLjVjMCAzLjA0IDIuNDYgNS41IDUuNSA1LjVzNS41LTIuNDYgNS41LTUuNVY2aC0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBdHRhY2hNb25leSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOCAxMC45Yy0yLjI3LS41OS0zLTEuMi0zLTIuMTUgMC0xLjA5IDEuMDEtMS44NSAyLjctMS44NSAxLjc4IDAgMi40NC44NSAyLjUgMi4xaDIuMjFjLS4wNy0xLjcyLTEuMTItMy4zLTMuMjEtMy44MVYzaC0zdjIuMTZjLTEuOTQuNDItMy41IDEuNjgtMy41IDMuNjEgMCAyLjMxIDEuOTEgMy40NiA0LjcgNC4xMyAyLjUuNiAzIDEuNDggMyAyLjQxIDAgLjY5LS40OSAxLjc5LTIuNyAxLjc5LTIuMDYgMC0yLjg3LS45Mi0yLjk4LTIuMWgtMi4yYy4xMiAyLjE5IDEuNzYgMy40MiAzLjY4IDMuODNWMjFoM3YtMi4xNWMxLjk1LS4zNyAzLjUtMS41IDMuNS0zLjU1IDAtMi44NC0yLjQzLTMuODEtNC43LTQuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUF1dG9HcmFwaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjA2IDkuOTQgMTIgOWwyLjA2LS45NEwxNSA2bC45NCAyLjA2TDE4IDlsLTIuMDYuOTRMMTUgMTJsLS45NC0yLjA2ek00IDE0bC45NC0yLjA2TDcgMTFsLTIuMDYtLjk0TDQgOGwtLjk0IDIuMDZMMSAxMWwyLjA2Ljk0TDQgMTR6bTQuNS01IDEuMDktMi40MUwxMiA1LjUgOS41OSA0LjQxIDguNSAyIDcuNDEgNC40MSA1IDUuNWwyLjQxIDEuMDlMOC41IDl6bS00IDExLjUgNi02LjAxIDQgNEwyMyA4LjkzbC0xLjQxLTEuNDEtNy4wOSA3Ljk3LTQtNEwzIDE5bDEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCYXJDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgOWg0djExSDR6TTE2IDEzaDR2N2gtNHpNMTAgNGg0djE2aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQm9yZGVyQWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDN2MThoMThWM0gzem04IDE2SDV2LTZoNnY2em0wLThINVY1aDZ2NnptOCA4aC02di02aDZ2NnptMC04aC02VjVoNnY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQm9yZGVyQm90dG9tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDExSDd2Mmgydi0yem00IDRoLTJ2Mmgydi0yek05IDNIN3YyaDJWM3ptNCA4aC0ydjJoMnYtMnpNNSAzSDN2MmgyVjN6bTggNGgtMnYyaDJWN3ptNCA0aC0ydjJoMnYtMnptLTQtOGgtMnYyaDJWM3ptNCAwaC0ydjJoMlYzem0yIDEwaDJ2LTJoLTJ2MnptMCA0aDJ2LTJoLTJ2MnpNNSA3SDN2MmgyVjd6bTE0LTR2MmgyVjNoLTJ6bTAgNmgyVjdoLTJ2MnpNNSAxMUgzdjJoMnYtMnpNMyAyMWgxOHYtMkgzdjJ6bTItNkgzdjJoMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJvcmRlckNsZWFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDVoMlYzSDd2MnptMCA4aDJ2LTJIN3Yyem0wIDhoMnYtMkg3djJ6bTQtNGgydi0yaC0ydjJ6bTAgNGgydi0yaC0ydjJ6bS04IDBoMnYtMkgzdjJ6bTAtNGgydi0ySDN2MnptMC00aDJ2LTJIM3Yyem0wLTRoMlY3SDN2MnptMC00aDJWM0gzdjJ6bTggOGgydi0yaC0ydjJ6bTggNGgydi0yaC0ydjJ6bTAtNGgydi0yaC0ydjJ6bTAgOGgydi0yaC0ydjJ6bTAtMTJoMlY3aC0ydjJ6bS04IDBoMlY3aC0ydjJ6bTgtNnYyaDJWM2gtMnptLTggMmgyVjNoLTJ2MnptNCAxNmgydi0yaC0ydjJ6bTAtOGgydi0yaC0ydjJ6bTAtOGgyVjNoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJvcmRlckNvbG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYuODEgOC45NC0zLjc1LTMuNzVMNCAxNC4yNVYxOGgzLjc1bDkuMDYtOS4wNnpNNiAxNnYtLjkybDcuMDYtNy4wNi45Mi45Mkw2LjkyIDE2SDZ6TTE5LjcxIDYuMDRhLjk5Ni45OTYgMCAwIDAgMC0xLjQxbC0yLjM0LTIuMzRhMS4wMDEgMS4wMDEgMCAwIDAtMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M3pNMiAyMGgyMHY0SDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCb3JkZXJIb3Jpem9udGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDIxaDJ2LTJIM3Yyek01IDdIM3YyaDJWN3pNMyAxN2gydi0ySDN2MnptNCA0aDJ2LTJIN3Yyek01IDNIM3YyaDJWM3ptNCAwSDd2MmgyVjN6bTggMGgtMnYyaDJWM3ptLTQgNGgtMnYyaDJWN3ptMC00aC0ydjJoMlYzem02IDE0aDJ2LTJoLTJ2MnptLTggNGgydi0yaC0ydjJ6bS04LThoMTh2LTJIM3Yyek0xOSAzdjJoMlYzaC0yem0wIDZoMlY3aC0ydjJ6bS04IDhoMnYtMmgtMnYyem00IDRoMnYtMmgtMnYyem00IDBoMnYtMmgtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQm9yZGVySW5uZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMjFoMnYtMkgzdjJ6bTQgMGgydi0ySDd2MnpNNSA3SDN2MmgyVjd6TTMgMTdoMnYtMkgzdjJ6TTkgM0g3djJoMlYzek01IDNIM3YyaDJWM3ptMTIgMGgtMnYyaDJWM3ptMiA2aDJWN2gtMnYyem0wLTZ2MmgyVjNoLTJ6bS00IDE4aDJ2LTJoLTJ2MnpNMTMgM2gtMnY4SDN2Mmg4djhoMnYtOGg4di0yaC04VjN6bTYgMThoMnYtMmgtMnYyem0wLTRoMnYtMmgtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQm9yZGVyTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMjFoMnYtMmgtMnYyem0wLTRoMnYtMmgtMnYyem0wLTEyaDJWM2gtMnYyem0wIDRoMlY3aC0ydjJ6bTAgNGgydi0yaC0ydjJ6bS00IDhoMnYtMkg3djJ6TTcgNWgyVjNIN3Yyem0wIDhoMnYtMkg3djJ6bS00IDhoMlYzSDN2MTh6TTE5IDloMlY3aC0ydjJ6bS00IDEyaDJ2LTJoLTJ2MnptNC00aDJ2LTJoLTJ2MnptMC0xNHYyaDJWM2gtMnptMCAxMGgydi0yaC0ydjJ6bTAgOGgydi0yaC0ydjJ6bS00LThoMnYtMmgtMnYyem0wLThoMlYzaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCb3JkZXJPdXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgN2gtMnYyaDJWN3ptMCA0aC0ydjJoMnYtMnptNCAwaC0ydjJoMnYtMnpNMyAzdjE4aDE4VjNIM3ptMTYgMTZINVY1aDE0djE0em0tNi00aC0ydjJoMnYtMnptLTQtNEg3djJoMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJvcmRlclJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDIxaDJ2LTJIN3Yyek0zIDVoMlYzSDN2MnptNCAwaDJWM0g3djJ6bTAgOGgydi0ySDd2MnptLTQgOGgydi0ySDN2MnptOCAwaDJ2LTJoLTJ2MnptLTgtOGgydi0ySDN2MnptMCA0aDJ2LTJIM3Yyem0wLThoMlY3SDN2MnptOCA4aDJ2LTJoLTJ2MnptNC00aDJ2LTJoLTJ2MnptNC0xMHYxOGgyVjNoLTJ6bS00IDE4aDJ2LTJoLTJ2MnptMC0xNmgyVjNoLTJ2MnptLTQgOGgydi0yaC0ydjJ6bTAtOGgyVjNoLTJ2MnptMCA0aDJWN2gtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQm9yZGVyU3R5bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDIxaDJ2LTJoLTJ2MnptNCAwaDJ2LTJoLTJ2MnpNNyAyMWgydi0ySDd2MnptNCAwaDJ2LTJoLTJ2MnptOC00aDJ2LTJoLTJ2MnptMC00aDJ2LTJoLTJ2MnpNMyAzdjE4aDJWNWgxNlYzSDN6bTE2IDZoMlY3aC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCb3JkZXJUb3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMjFoMnYtMkg3djJ6bTAtOGgydi0ySDd2MnptNCAwaDJ2LTJoLTJ2MnptMCA4aDJ2LTJoLTJ2MnptLTgtNGgydi0ySDN2MnptMCA0aDJ2LTJIM3Yyem0wLThoMnYtMkgzdjJ6bTAtNGgyVjdIM3Yyem04IDhoMnYtMmgtMnYyem04LThoMlY3aC0ydjJ6bTAgNGgydi0yaC0ydjJ6TTMgM3YyaDE4VjNIM3ptMTYgMTRoMnYtMmgtMnYyem0tNCA0aDJ2LTJoLTJ2MnpNMTEgOWgyVjdoLTJ2MnptOCAxMmgydi0yaC0ydjJ6bS00LThoMnYtMmgtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQm9yZGVyVmVydGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgOWgyVjdIM3Yyem0wLTRoMlYzSDN2MnptNCAxNmgydi0ySDd2MnptMC04aDJ2LTJIN3Yyem0tNCAwaDJ2LTJIM3Yyem0wIDhoMnYtMkgzdjJ6bTAtNGgydi0ySDN2MnpNNyA1aDJWM0g3djJ6bTEyIDEyaDJ2LTJoLTJ2MnptLTggNGgyVjNoLTJ2MTh6bTggMGgydi0yaC0ydjJ6bTAtOGgydi0yaC0ydjJ6bTAtMTB2MmgyVjNoLTJ6bTAgNmgyVjdoLTJ2MnptLTQtNGgyVjNoLTJ2MnptMCAxNmgydi0yaC0ydjJ6bTAtOGgydi0yaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCdWJibGVDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxMGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTAgNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6bTguMDEtMWMtMS42NSAwLTMgMS4zNS0zIDNzMS4zNSAzIDMgMyAzLTEuMzUgMy0zLTEuMzUtMy0zLTN6bTAgNGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxek0xNi41IDNDMTMuNDcgMyAxMSA1LjQ3IDExIDguNXMyLjQ3IDUuNSA1LjUgNS41UzIyIDExLjUzIDIyIDguNSAxOS41MyAzIDE2LjUgM3ptMCA5Yy0xLjkzIDAtMy41LTEuNTctMy41LTMuNVMxNC41NyA1IDE2LjUgNSAyMCA2LjU3IDIwIDguNSAxOC40MyAxMiAxNi41IDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FuZGxlc3RpY2tDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNEg3djJINXYxMmgydjJoMnYtMmgyVjZIOVY0em0wIDEySDdWOGgydjh6TTE5IDhoLTJWNGgtMnY0aC0ydjdoMnY1aDJ2LTVoMlY4em0tMiA1aC0ydi0zaDJ2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNoZWNrbGlzdFJ0bCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDdIMnYyaDlWN3ptMCA4SDJ2Mmg5di0yem01LjM0LTRMMTIuOCA3LjQ2bDEuNDEtMS40MSAyLjEyIDIuMTIgNC4yNC00LjI0TDIyIDUuMzQgMTYuMzQgMTF6bTAgOC0zLjU0LTMuNTQgMS40MS0xLjQxIDIuMTIgMi4xMiA0LjI0LTQuMjRMMjIgMTMuMzQgMTYuMzQgMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDaGVja2xpc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA3aC05djJoOVY3em0wIDhoLTl2Mmg5di0yek01LjU0IDExIDIgNy40NmwxLjQxLTEuNDEgMi4xMiAyLjEyIDQuMjQtNC4yNCAxLjQxIDEuNDFMNS41NCAxMXptMCA4TDIgMTUuNDZsMS40MS0xLjQxIDIuMTIgMi4xMiA0LjI0LTQuMjQgMS40MSAxLjQxTDUuNTQgMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEYXRhQXJyYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA0djJoM3YxMmgtM3YyaDVWNHpNNCAyMGg1di0ySDZWNmgzVjRINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURhdGFPYmplY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDd2MmMwIC41NS0uNDUgMS0xIDFIMnY0aDFjLjU1IDAgMSAuNDUgMSAxdjJjMCAxLjY1IDEuMzUgMyAzIDNoM3YtMkg3Yy0uNTUgMC0xLS40NS0xLTF2LTJjMC0xLjMtLjg0LTIuNDItMi0yLjgzdi0uMzRDNS4xNiAxMS40MiA2IDEwLjMgNiA5VjdjMC0uNTUuNDUtMSAxLTFoM1Y0SDdDNS4zNSA0IDQgNS4zNSA0IDd6TTIxIDEwYy0uNTUgMC0xLS40NS0xLTFWN2MwLTEuNjUtMS4zNS0zLTMtM2gtM3YyaDNjLjU1IDAgMSAuNDUgMSAxdjJjMCAxLjMuODQgMi40MiAyIDIuODN2LjM0Yy0xLjE2LjQxLTIgMS41Mi0yIDIuODN2MmMwIC41NS0uNDUgMS0xIDFoLTN2MmgzYzEuNjUgMCAzLTEuMzUgMy0zdi0yYzAtLjU1LjQ1LTEgMS0xaDF2LTRoLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEcmFnSGFuZGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOUg0djJoMTZWOXpNNCAxNWgxNnYtMkg0djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEcmF3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTguODUgMTAuMzkgMS4wNi0xLjA2Yy43OC0uNzguNzgtMi4wNSAwLTIuODNMMTguNSA1LjA5Yy0uNzgtLjc4LTIuMDUtLjc4LTIuODMgMGwtMS4wNiAxLjA2IDQuMjQgNC4yNHptLTQuMjQgMS40Mkw3LjQxIDE5SDZ2LTEuNDFsNy4xOS03LjE5IDEuNDIgMS40MXptLTEuNDItNC4yNUw0IDE2Ljc2VjIxaDQuMjRsOS4xOS05LjE5LTQuMjQtNC4yNXpNMTkgMTcuNWMwIDIuMTktMi41NCAzLjUtNSAzLjUtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMWMxLjU0IDAgMy0uNzMgMy0xLjUgMC0uNDctLjQ4LS44Ny0xLjIzLTEuMmwxLjQ4LTEuNDhjMS4wNy42MyAxLjc1IDEuNDcgMS43NSAyLjY4ek00LjU4IDEzLjM1QzMuNjEgMTIuNzkgMyAxMi4wNiAzIDExYzAtMS44IDEuODktMi42MyAzLjU2LTMuMzZDNy41OSA3LjE4IDkgNi41NiA5IDZjMC0uNDEtLjc4LTEtMi0xLTEuMjYgMC0xLjguNjEtMS44My42NC0uMzUuNDEtLjk4LjQ2LTEuNC4xMmEuOTkyLjk5MiAwIDAgMS0uMTUtMS4zOEMzLjczIDQuMjQgNC43NiAzIDcgM3M0IDEuMzIgNCAzYzAgMS44Ny0xLjkzIDIuNzItMy42NCAzLjQ3QzYuNDIgOS44OCA1IDEwLjUgNSAxMWMwIC4zMS40My42IDEuMDcuODZsLTEuNDkgMS40OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVkaXROb3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxMGgxMXYySDN2LTJ6bTAtMmgxMVY2SDN2MnptMCA4aDd2LTJIM3Yyem0xNS4wMS0zLjEzLjcxLS43MWEuOTk2Ljk5NiAwIDAgMSAxLjQxIDBsLjcxLjcxYy4zOS4zOS4zOSAxLjAyIDAgMS40MWwtLjcxLjcxLTIuMTItMi4xMnptLS43MS43MS01LjMgNS4zVjIxaDIuMTJsNS4zLTUuMy0yLjEyLTIuMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JtYXRBbGlnbkNlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxNXYyaDEwdi0ySDd6bS00IDZoMTh2LTJIM3Yyem0wLThoMTh2LTJIM3Yyem00LTZ2MmgxMFY3SDd6TTMgM3YyaDE4VjNIM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvcm1hdEFsaWduSnVzdGlmeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAyMWgxOHYtMkgzdjJ6bTAtNGgxOHYtMkgzdjJ6bTAtNGgxOHYtMkgzdjJ6bTAtNGgxOFY3SDN2MnptMC02djJoMThWM0gzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ybWF0QWxpZ25MZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxNUgzdjJoMTJ2LTJ6bTAtOEgzdjJoMTJWN3pNMyAxM2gxOHYtMkgzdjJ6bTAgOGgxOHYtMkgzdjJ6TTMgM3YyaDE4VjNIM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvcm1hdEFsaWduUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMjFoMTh2LTJIM3Yyem02LTRoMTJ2LTJIOXYyem0tNi00aDE4di0ySDN2MnptNi00aDEyVjdIOXYyek0zIDN2MmgxOFYzSDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JtYXRCb2xkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS42IDEwLjc5Yy45Ny0uNjcgMS42NS0xLjc3IDEuNjUtMi43OSAwLTIuMjYtMS43NS00LTQtNEg3djE0aDcuMDRjMi4wOSAwIDMuNzEtMS43IDMuNzEtMy43OSAwLTEuNTItLjg2LTIuODItMi4xNS0zLjQyek0xMCA2LjVoM2MuODMgMCAxLjUuNjcgMS41IDEuNXMtLjY3IDEuNS0xLjUgMS41aC0zdi0zem0zLjUgOUgxMHYtM2gzLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVzLS42NyAxLjUtMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvcm1hdENsZWFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA4VjVINi4zOWwzIDNoMS44M2wtLjU1IDEuMjggMi4wOSAyLjFMMTQuMjEgOHpNMy40MSA0Ljg2IDIgNi4yN2w2Ljk3IDYuOTdMNi41IDE5aDNsMS41Ny0zLjY2TDE2LjczIDIxbDEuNDEtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvcm1hdENvbG9yRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjU2IDguOTQgNy42MiAwIDYuMjEgMS40MWwyLjM4IDIuMzgtNS4xNSA1LjE1YTEuNDkgMS40OSAwIDAgMCAwIDIuMTJsNS41IDUuNWMuMjkuMjkuNjguNDQgMS4wNi40NHMuNzctLjE1IDEuMDYtLjQ0bDUuNS01LjVjLjU5LS41OC41OS0xLjUzIDAtMi4xMnpNNS4yMSAxMCAxMCA1LjIxIDE0Ljc5IDEwSDUuMjF6TTE5IDExLjVzLTIgMi4xNy0yIDMuNWMwIDEuMS45IDIgMiAyczItLjkgMi0yYzAtMS4zMy0yLTMuNS0yLTMuNXpNMiAyMGgyMHY0SDJ2LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JtYXRDb2xvclJlc2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2LjM2YzEuNTMgMiAzLjA4IDQuNDMgMy43MSA2LjI0bDIuMjMgMi4yM2MuMDMtLjI3LjA2LS41NS4wNi0uODMgMC0zLjk4LTYtMTAuOC02LTEwLjhzLTEuMTggMS4zNS0yLjUgMy4xOWwxLjQ0IDEuNDRjLjM0LS41MS43LTEgMS4wNi0xLjQ3ek01LjQxIDUuMTQgNCA2LjU1bDMuMzIgMy4zMkM2LjU1IDExLjMzIDYgMTIuNzkgNiAxNGMwIDMuMzEgMi42OSA2IDYgNiAxLjUyIDAgMi45LS41NyAzLjk1LTEuNWwyLjYzIDIuNjNMMjAgMTkuNzIgNS40MSA1LjE0ek0xMiAxOGMtMi4yMSAwLTQtMS43OS00LTQgMC0uNjkuMzItMS42Mi44MS0yLjY0bDUuNzIgNS43MmMtLjcuNTYtMS41Ny45Mi0yLjUzLjkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ybWF0Q29sb3JUZXh0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyMGgyMHY0SDJ2LTR6bTMuNDktM2gyLjQybDEuMjctMy41OGg1LjY1TDE2LjA5IDE3aDIuNDJMMTMuMjUgM2gtMi41TDUuNDkgMTd6bTQuNDItNS42MSAyLjAzLTUuNzloLjEybDIuMDMgNS43OUg5LjkxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ybWF0SW5kZW50RGVjcmVhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE3aDEwdi0ySDExdjJ6bS04LTUgNCA0VjhsLTQgNHptMCA5aDE4di0ySDN2MnpNMyAzdjJoMThWM0gzem04IDZoMTBWN0gxMXYyem0wIDRoMTB2LTJIMTF2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvcm1hdEluZGVudEluY3JlYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDIxaDE4di0ySDN2MnpNMyA4djhsNC00LTQtNHptOCA5aDEwdi0ySDExdjJ6TTMgM3YyaDE4VjNIM3ptOCA2aDEwVjdIMTF2MnptMCA0aDEwdi0ySDExdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JtYXRJdGFsaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDR2M2gyLjIxbC0zLjQyIDhINnYzaDh2LTNoLTIuMjFsMy40Mi04SDE4VjRoLTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JtYXRMaW5lU3BhY2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA3aDIuNUw1IDMuNSAxLjUgN0g0djEwSDEuNUw1IDIwLjUgOC41IDE3SDZWN3ptNC0ydjJoMTJWNUgxMHptMCAxNGgxMnYtMkgxMHYyem0wLTZoMTJ2LTJIMTB2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvcm1hdExpc3RCdWxsZXRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxMC41Yy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXptMC02Yy0uODMgMC0xLjUuNjctMS41IDEuNVMzLjE3IDcuNSA0IDcuNSA1LjUgNi44MyA1LjUgNiA0LjgzIDQuNSA0IDQuNXptMCAxMmMtLjgzIDAtMS41LjY4LTEuNSAxLjVzLjY4IDEuNSAxLjUgMS41IDEuNS0uNjggMS41LTEuNS0uNjctMS41LTEuNS0xLjV6TTcgMTloMTR2LTJIN3Yyem0wLTZoMTR2LTJIN3Yyem0wLTh2MmgxNFY1SDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JtYXRMaXN0TnVtYmVyZWRSdGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDE3aDJ2LjVoLTF2MWgxdi41aC0ydjFoM3YtNGgtM3Yxem0xLTloMVY0aC0ydjFoMXYzem0tMSAzaDEuOEwxOCAxMy4xdi45aDN2LTFoLTEuOGwxLjgtMi4xVjEwaC0zdjF6TTIgNWgxNHYySDJWNXptMCAxMmgxNHYySDJ2LTJ6bTAtNmgxNHYySDJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JtYXRMaXN0TnVtYmVyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTdoMnYuNUgzdjFoMXYuNUgydjFoM3YtNEgydjF6bTEtOWgxVjRIMnYxaDF2M3ptLTEgM2gxLjhMMiAxMy4xdi45aDN2LTFIMy4yTDUgMTAuOVYxMEgydjF6bTUtNnYyaDE0VjVIN3ptMCAxNGgxNHYtMkg3djJ6bTAtNmgxNHYtMkg3djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JtYXRQYWludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNFYzYzAtLjU1LS40NS0xLTEtMUg1Yy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMWgxMmMuNTUgMCAxLS40NSAxLTFWNmgxdjRIOXYxMWMwIC41NS40NSAxIDEgMWgyYy41NSAwIDEtLjQ1IDEtMXYtOWg4VjRoLTN6bS0yIDJINlY0aDEwdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JtYXRRdW90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNjIgMThoLTUuMjRsMi00SDEzVjZoOHY3LjI0TDE4LjYyIDE4em0tMi0yaC43NkwxOSAxMi43NlY4aC00djRoMy42MmwtMiA0em0tOCAySDMuMzhsMi00SDNWNmg4djcuMjRMOC42MiAxOHptLTItMmguNzZMOSAxMi43NlY4SDV2NGgzLjYybC0yIDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JtYXRTaGFwZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzIDdWMWgtNnYySDdWMUgxdjZoMnYxMEgxdjZoNnYtMmgxMHYyaDZ2LTZoLTJWN2gyek0zIDNoMnYySDNWM3ptMiAxOEgzdi0yaDJ2MnptMTItMkg3di0ySDVWN2gyVjVoMTB2MmgydjEwaC0ydjJ6bTQgMmgtMnYtMmgydjJ6TTE5IDVWM2gydjJoLTJ6bS01LjI3IDloLTMuNDlsLS43MyAySDcuODlsMy40LTloMS40bDMuNDEgOWgtMS42M2wtLjc0LTJ6bS0zLjA0LTEuMjZoMi42MUwxMiA4LjkxbC0xLjMxIDMuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JtYXRTaXplIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDR2M2g1djEyaDNWN2g1VjRIOXptLTYgOGgzdjdoM3YtN2gzVjlIM3YzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ybWF0U3RyaWtldGhyb3VnaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTloNHYtM2gtNHYzek01IDR2M2g1djNoNFY3aDVWNEg1ek0zIDE0aDE4di0ySDN2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvcm1hdFRleHRkaXJlY3Rpb25MVG9SIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDR2NGMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJtOC0ySDlDNi43OSAyIDUgMy43OSA1IDZzMS43OSA0IDQgNHY1aDJWNGgydjExaDJWNGgyVjJ6bTAgMTJ2M0g1djJoMTJ2M2w0LTQtNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ybWF0VGV4dGRpcmVjdGlvblJUb0wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDR2NGMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJtOC0yaC04QzcuNzkgMiA2IDMuNzkgNiA2czEuNzkgNCA0IDR2NWgyVjRoMnYxMWgyVjRoMlYyek04IDE0bC00IDQgNCA0di0zaDEydi0ySDh2LTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JtYXRVbmRlcmxpbmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxN2MzLjMxIDAgNi0yLjY5IDYtNlYzaC0yLjV2OGMwIDEuOTMtMS41NyAzLjUtMy41IDMuNVM4LjUgMTIuOTMgOC41IDExVjNINnY4YzAgMy4zMSAyLjY5IDYgNiA2em0tNyAydjJoMTR2LTJINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZ1bmN0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNEg2djJsNi41IDZMNiAxOHYyaDEydi0zaC03bDUtNS01LTVoN1Y0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGVpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgNi45OWgzTDEyIDMgOCA2Ljk5aDN2MTAuMDJIOEwxMiAyMWw0LTMuOTloLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIZXhhZ29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuMiAzSDYuOGwtNS4yIDkgNS4yIDloMTAuNGw1LjItOS01LjItOXptLTEuMTUgMTZoLTguMWwtNC4wNC03IDQuMDQtN2g4LjA5bDQuMDQgNy00LjAzIDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIaWdobGlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm02IDE0IDMgM3Y1aDZ2LTVsMy0zVjlINnY1em0yLTNoOHYyLjE3bC0zIDNWMjBoLTJ2LTMuODNsLTMtM1YxMXptMy05aDJ2M2gtMnpNMy41MDIgNS44NzQgNC45MTYgNC40NmwyLjEyMiAyLjEyLTEuNDE0IDEuNDE1em0xMy40NTguNzA4IDIuMTIzLTIuMTIgMS40MTMgMS40MTYtMi4xMjMgMi4xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhvcml6b250YWxEaXN0cmlidXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAyMkgyVjJoMnYyMHpNMjIgMmgtMnYyMGgyVjJ6bS04LjUgNWgtM3YxMGgzVjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIb3Jpem9udGFsUnVsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk00IDExaDE2djJINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUluc2VydENoYXJ0T3V0bGluZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTdIN3YtN2gydjd6bTQgMGgtMlY3aDJ2MTB6bTQgMGgtMnYtNGgydjR6bTIgMkg1VjVoMTR2MTR6bTAtMTZINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW5zZXJ0Q2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpNNyAxMGgydjdIN3ptNC0zaDJ2MTBoLTJ6bTQgNmgydjRoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbnNlcnRDb21tZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0djEzLjE3TDE4LjgzIDE2SDRWNGgxNm0wLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNGw0IDRWNGMwLTEuMS0uOS0yLTItMnptLTIgMTBINnYyaDEydi0yem0wLTNINnYyaDEyVjl6bTAtM0g2djJoMTJWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUluc2VydERyaXZlRmlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMjBjMCAxLjEuODkgMiAxLjk5IDJIMThjMS4xIDAgMi0uOSAyLTJWOGwtNi02ek02IDIwVjRoN3Y1aDV2MTFINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUluc2VydEVtb3RpY29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bTMuNS05Yy44MyAwIDEuNS0uNjcgMS41LTEuNVMxNi4zMyA4IDE1LjUgOCAxNCA4LjY3IDE0IDkuNXMuNjcgMS41IDEuNSAxLjV6bS03IDBjLjgzIDAgMS41LS42NyAxLjUtMS41UzkuMzMgOCA4LjUgOCA3IDguNjcgNyA5LjUgNy42NyAxMSA4LjUgMTF6bTMuNSA2LjVjMi4zMyAwIDQuMzEtMS40NiA1LjExLTMuNUg2Ljg5Yy44IDIuMDQgMi43OCAzLjUgNS4xMSAzLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbnNlcnRJbnZpdGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzaC0xVjFoLTJ2Mkg4VjFINnYySDVjLTEuMTEgMC0xLjk5LjktMS45OSAyTDMgMTlhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWOWgxNHYxMHptMC0xMkg1VjVoMTR2MnptLTIgNWgtNXY1aDV2LTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbnNlcnRMaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjkgMTJjMC0xLjcxIDEuMzktMy4xIDMuMS0zLjFoNFY3SDdjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDVoNHYtMS45SDdjLTEuNzEgMC0zLjEtMS4zOS0zLjEtMy4xek04IDEzaDh2LTJIOHYyem05LTZoLTR2MS45aDRjMS43MSAwIDMuMSAxLjM5IDMuMSAzLjFzLTEuMzkgMy4xLTMuMSAzLjFoLTRWMTdoNGMyLjc2IDAgNS0yLjI0IDUtNXMtMi4yNC01LTUtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUluc2VydFBhZ2VCcmVhayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDIwSDZ2LTNINHYzYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJ2LTNoLTJ2M3pNNiA0aDd2NWg1djJoMlY4bC02LTZINmMtMS4xIDAtMiAuOS0yIDJ2N2gyVjR6TTkgMTNoNnYySDl6TTE3IDEzaDZ2MmgtNnpNMSAxM2g2djJIMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUluc2VydFBob3RvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA1djE0SDVWNWgxNG0wLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNC44NiA4Ljg2LTMgMy44N0w5IDEzLjE0IDYgMTdoMTJsLTMuODYtNS4xNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxpbmVBeGlzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgNy40My0xLjQxLTEuNDEtNC4wMyA0LjUzTDkuNSA0IDIgMTEuNTFsMS41IDEuNSA2LjE0LTYuMTUgNS41OSA1LjE4LTEuNzMgMS45NS00LTRMMiAxNy41IDMuNSAxOWw2LTYuMDEgNCA0IDMuMTktMy41OSAzLjkgMy42MUwyMiAxNS42bC0zLjk4LTMuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxpbmVhclNjYWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuNSA5LjVjLTEuMDMgMC0xLjkuNjItMi4yOSAxLjVoLTIuOTJjLS4zOS0uODgtMS4yNi0xLjUtMi4yOS0xLjVzLTEuOS42Mi0yLjI5IDEuNUg2Ljc5Yy0uMzktLjg4LTEuMjYtMS41LTIuMjktMS41YTIuNSAyLjUgMCAwIDAgMCA1YzEuMDMgMCAxLjktLjYyIDIuMjktMS41aDIuOTJjLjM5Ljg4IDEuMjYgMS41IDIuMjkgMS41czEuOS0uNjIgMi4yOS0xLjVoMi45MmMuMzkuODggMS4yNiAxLjUgMi4yOSAxLjVhMi41IDIuNSAwIDAgMCAwLTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNYXJnaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDN2MThoMThWM0gzem0xNiAxNkg1VjVoMTR2MTR6TTExIDdoMnYyaC0yVjd6TTcgN2gydjJIN1Y3em04IDBoMnYyaC0yVjd6bS04IDRoMnYySDd2LTJ6bTQgMGgydjJoLTJ2LTJ6bTQgMGgydjJoLTJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNZXJnZVR5cGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDIwLjQxIDE4LjQxIDE5IDE1IDE1LjU5IDEzLjU5IDE3IDE3IDIwLjQxek03LjUgOEgxMXY1LjU5TDUuNTkgMTkgNyAyMC40MWw2LTZWOGgzLjVMMTIgMy41IDcuNSA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW9kZUNvbW1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE3LjE3IDE4LjgzIDE2SDRWNGgxNnYxMy4xN3pNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE0bDQgNFY0YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW9kZUVkaXRPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAyMWgzLjc1TDE3LjgxIDkuOTRsLTMuNzUtMy43NUwzIDE3LjI1VjIxem0yLTIuOTIgOS4wNi05LjA2LjkyLjkyTDUuOTIgMTlINXYtLjkyek0xOC4zNyAzLjI5YS45OTYuOTk2IDAgMCAwLTEuNDEgMGwtMS44MyAxLjgzIDMuNzUgMy43NSAxLjgzLTEuODNhLjk5Ni45OTYgMCAwIDAgMC0xLjQxbC0yLjM0LTIuMzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb2RlRWRpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMjFoMy43NUwxNy44MSA5Ljk0bC0zLjc1LTMuNzVMMyAxNy4yNVYyMXptMi0yLjkyIDkuMDYtOS4wNi45Mi45Mkw1LjkyIDE5SDV2LS45MnpNMTguMzcgMy4yOWEuOTk2Ljk5NiAwIDAgMC0xLjQxIDBsLTEuODMgMS44MyAzLjc1IDMuNzUgMS44My0xLjgzYS45OTYuOTk2IDAgMCAwIDAtMS40MWwtMi4zNC0yLjM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW9kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQuMDYgOS4wMi45Mi45Mkw1LjkyIDE5SDV2LS45Mmw5LjA2LTkuMDZNMTcuNjYgM2MtLjI1IDAtLjUxLjEtLjcuMjlsLTEuODMgMS44MyAzLjc1IDMuNzUgMS44My0xLjgzYS45OTYuOTk2IDAgMCAwIDAtMS40MWwtMi4zNC0yLjM0Yy0uMi0uMi0uNDUtLjI5LS43MS0uMjl6bS0zLjYgMy4xOUwzIDE3LjI1VjIxaDMuNzVMMTcuODEgOS45NGwtMy43NS0zLjc1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW9uZXRpemF0aW9uT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em0uMzEtOC44NmMtMS43Ny0uNDUtMi4zNC0uOTQtMi4zNC0xLjY3IDAtLjg0Ljc5LTEuNDMgMi4xLTEuNDMgMS4zOCAwIDEuOS42NiAxLjk0IDEuNjRoMS43MWMtLjA1LTEuMzQtLjg3LTIuNTctMi40OS0yLjk3VjVIMTAuOXYxLjY5Yy0xLjUxLjMyLTIuNzIgMS4zLTIuNzIgMi44MSAwIDEuNzkgMS40OSAyLjY5IDMuNjYgMy4yMSAxLjk1LjQ2IDIuMzQgMS4xNSAyLjM0IDEuODcgMCAuNTMtLjM5IDEuMzktMi4xIDEuMzktMS42IDAtMi4yMy0uNzItMi4zMi0xLjY0SDguMDRjLjEgMS43IDEuMzYgMi42NiAyLjg2IDIuOTdWMTloMi4zNHYtMS42N2MxLjUyLS4yOSAyLjcyLTEuMTYgMi43My0yLjc3LS4wMS0yLjItMS45LTIuOTYtMy42Ni0zLjQyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW9uZXlPZmZDc3JlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSA2LjljMS43OCAwIDIuNDQuODUgMi41IDIuMWgyLjIxYy0uMDctMS43Mi0xLjEyLTMuMy0zLjIxLTMuODFWM2gtM3YyLjE2Yy0uMzkuMDgtLjc1LjIxLTEuMS4zNmwxLjUxIDEuNTFjLjMyLS4wOC42OS0uMTMgMS4wOS0uMTN6TTUuNDcgMy45MiA0LjA2IDUuMzMgNy41IDguNzdjMCAyLjA4IDEuNTYgMy4yMiAzLjkxIDMuOTFsMy41MSAzLjUxYy0uMzQuNDktMS4wNS45MS0yLjQyLjkxLTIuMDYgMC0yLjg3LS45Mi0yLjk4LTIuMWgtMi4yYy4xMiAyLjE5IDEuNzYgMy40MiAzLjY4IDMuODNWMjFoM3YtMi4xNWMuOTYtLjE4IDEuODMtLjU1IDIuNDYtMS4xMmwyLjIyIDIuMjIgMS40MS0xLjQxTDUuNDcgMy45MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vbmV5T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi41IDYuOWMxLjc4IDAgMi40NC44NSAyLjUgMi4xaDIuMjFjLS4wNy0xLjcyLTEuMTItMy4zLTMuMjEtMy44MVYzaC0zdjIuMTZjLS4zOS4wOC0uNzUuMjEtMS4xLjM2bDEuNTEgMS41MWMuMzItLjA4LjY5LS4xMyAxLjA5LS4xM3pNNS40NyAzLjkyIDQuMDYgNS4zMyA3LjUgOC43N2MwIDIuMDggMS41NiAzLjIyIDMuOTEgMy45MWwzLjUxIDMuNTFjLS4zNC40OS0xLjA1LjkxLTIuNDIuOTEtMi4wNiAwLTIuODctLjkyLTIuOTgtMi4xaC0yLjJjLjEyIDIuMTkgMS43NiAzLjQyIDMuNjggMy44M1YyMWgzdi0yLjE1Yy45Ni0uMTggMS44My0uNTUgMi40Ni0xLjEybDIuMjIgMi4yMiAxLjQxLTEuNDFMNS40NyAzLjkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW92ZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDExYzAgMi40NSAxLjc2IDQuNDcgNC4wOCA0LjkxbC0xLjQ5LTEuNDlMNyAxM2w0IDQuMDFMNyAyMWwtMS40MS0xLjQxIDEuNTgtMS41OHYtLjA2QTcuMDA3IDcuMDA3IDAgMCAxIDEgMTFjMC0zLjg3IDMuMTMtNyA3LTdoM3YySDhjLTIuNzYgMC01IDIuMjQtNSA1ek0yMiAxMVY0aC05djdoOXptLTItMmgtNVY2aDV2M3pNMTMgMTNoOXY3aC05elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW92ZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxM2MwLTIuNDUgMS43Ni00LjQ3IDQuMDgtNC45MWwtMS40OSAxLjVMNyAxMWw0LTQuMDFMNyAzIDUuNTkgNC40MWwxLjU4IDEuNTh2LjA2QTcuMDA3IDcuMDA3IDAgMCAwIDEgMTNjMCAzLjg3IDMuMTMgNyA3IDdoM3YtMkg4Yy0yLjc2IDAtNS0yLjI0LTUtNXpNMTMgMTN2N2g5di03aC05em03IDVoLTV2LTNoNXYzek0xMyA0aDl2N2gtOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU11bHRpbGluZUNoYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMiA2LjkyLTEuNDEtMS40MS0yLjg1IDMuMjFDMTUuNjggNi40IDEyLjgzIDUgOS42MSA1IDYuNzIgNSA0LjA3IDYuMTYgMiA4bDEuNDIgMS40MkM1LjEyIDcuOTMgNy4yNyA3IDkuNjEgN2MyLjc0IDAgNS4wOSAxLjI2IDYuNzcgMy4yNGwtMi44OCAzLjI0LTQtNEwyIDE2Ljk5bDEuNSAxLjUgNi02LjAxIDQgNCA0LjA1LTQuNTVjLjc1IDEuMzUgMS4yNSAyLjkgMS40NCA0LjU1SDIxYy0uMjItMi4zLS45NS00LjM5LTIuMDQtNi4xNEwyMiA2LjkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm90ZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDExLjAxIDMgMTF2MmgxOHpNMyAxNmgxMnYySDN6TTIxIDZIM3YyLjAxTDIxIDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOdW1iZXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuNSAxMCAuNS0yaC00bDEtNGgtMmwtMSA0aC00bDEtNGgtMkw5IDhINWwtLjUgMmg0bC0xIDRoLTRMMyAxNmg0bC0xIDRoMmwxLTRoNGwtMSA0aDJsMS00aDRsLjUtMmgtNGwxLTRoNHptLTcgNGgtNGwxLTRoNGwtMSA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGFkZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNXYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJINWMtMS4xIDAtMiAuOS0yIDJ6bTE2IDE0SDVWNWgxNHYxNHpNMTEgN2gydjJoLTJWN3pNNyA3aDJ2Mkg3Vjd6bTggMGgydjJoLTJWN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlbnRhZ29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuNjMgOS43OCAxNi41NiAxOUg3LjQ0TDQuMzcgOS43OCAxMiA0LjQ0bDcuNjMgNS4zNHpNMiA5bDQgMTJoMTJsNC0xMi0xMC03TDIgOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBpZUNoYXJ0T3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjUgMiAyIDYuNSAyIDEyczQuNSAxMCAxMCAxMCAxMC00LjUgMTAtMTBTMTcuNSAyIDEyIDJ6bTEgMi4wN2MzLjYxLjQ1IDYuNDggMy4zMyA2LjkzIDYuOTNIMTNWNC4wN3pNNCAxMmMwLTQuMDYgMy4wNy03LjQ0IDctNy45M3YxNS44N2MtMy45My0uNS03LTMuODgtNy03Ljk0em05IDcuOTNWMTNoNi45M0E4LjAwMiA4LjAwMiAwIDAgMSAxMyAxOS45M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBpZUNoYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem03LjkzIDlIMTNWNC4wN2MzLjYxLjQ1IDYuNDggMy4zMiA2LjkzIDYuOTN6TTQgMTJjMC00LjA3IDMuMDYtNy40NCA3LTcuOTN2MTUuODZjLTMuOTQtLjQ5LTctMy44Ni03LTcuOTN6bTkgNy45M1YxM2g2LjkzQTguMDAyIDguMDAyIDAgMCAxIDEzIDE5LjkzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUG9seWxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxNnYxLjI2bC02LTN2LTMuMTdMMTEuNyA4SDE2VjJoLTZ2NC45TDcuMyAxMEgzdjZoNWw3IDMuNVYyMmg2di02aC02ek0xMiA0aDJ2MmgtMlY0ek03IDE0SDV2LTJoMnYyem0xMiA2aC0ydi0yaDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBvc3RBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxOS4yMkg1VjdoN1Y1SDVjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJ2LTdoLTJ2Ny4yMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMmgtMnYzaC0zYy4wMS4wMSAwIDIgMCAyaDN2Mi45OWMuMDEuMDEgMiAwIDIgMFY3aDNWNWgtM1Yyek03IDloOHYySDd6TTcgMTJ2Mmg4di0yaC0zek03IDE1aDh2Mkg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUHVibGlzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA0aDE0djJINXptMCAxMGg0djZoNnYtNmg0bC03LTctNyA3em04LTJ2NmgtMnYtNkg5LjgzTDEyIDkuODMgMTQuMTcgMTJIMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVRdWVyeVN0YXRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuODggMTguNDdjLjQ0LS43LjctMS41MS43LTIuMzkgMC0yLjQ5LTIuMDEtNC41LTQuNS00LjVzLTQuNSAyLjAxLTQuNSA0LjUgMi4wMSA0LjUgNC40OSA0LjVjLjg4IDAgMS43LS4yNiAyLjM5LS43TDIxLjU4IDIzIDIzIDIxLjU4bC0zLjEyLTMuMTF6bS0zLjguMTFhMi41IDIuNSAwIDAgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDV6bS0uMzYtOC41Yy0uNzQuMDItMS40NS4xOC0yLjEuNDVsLS41NS0uODMtMy44IDYuMTgtMy4wMS0zLjUyLTMuNjMgNS44MUwxIDE3bDUtOCAzIDMuNUwxMyA2bDIuNzIgNC4wOHptMi41OS41Yy0uNjQtLjI4LTEuMzMtLjQ1LTIuMDUtLjQ5TDIxLjM4IDIgMjMgMy4xOGwtNC42OSA3LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZWN0YW5nbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDR2MTZoMjBWNEgyem0xOCAxNEg0VjZoMTZ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTY2F0dGVyUGxvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxOGMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNCA0IDEuNzkgNCA0LTEuNzkgNC00IDR6bTAtNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTQtMmMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNCA0IDEuNzkgNCA0LTEuNzkgNC00IDR6bTAtNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTUuNiAxNy42Yy0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00IDQgMS43OSA0IDQtMS43OSA0LTQgNHptMC02Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNjaGVtYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDl2MmgtM1Y5SDguNVY3SDExVjFINHY2aDIuNXYySDR2NmgyLjV2Mkg0djZoN3YtNkg4LjV2LTJIMTF2LTJoM3YyaDdWOWgtN3pNNiAzaDN2Mkg2VjN6bTMgMThINnYtMmgzdjJ6bTAtOEg2di0yaDN2MnptMTAgMGgtM3YtMmgzdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTY29yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINWw0LTQgNCA0IDYtNnY2em0wLTguNS02IDYtNC00LTQgNFY1aDE0djUuNXpNMTMuNSA5VjZIMTJ2NmgxLjV6bTMuNyAzLTItMyAyLTNoLTEuN2wtMiAzIDIgM3pNMTEgMTAuNUg4LjV2LS43NUgxMVY2SDd2MS41aDIuNXYuNzVIN1YxMmg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2hhcGVMaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxMWMyLjc2IDAgNS0yLjI0IDUtNVM4Ljc2IDEgNiAxIDEgMy4yNCAxIDZzMi4yNCA1IDUgNXptMC04YzEuNjUgMCAzIDEuMzUgMyAzUzcuNjUgOSA2IDkgMyA3LjY1IDMgNnMxLjM1LTMgMy0zek0yMSAxNGgtNWMtMS4xIDAtMiAuOS0yIDJ2NWMwIDEuMS45IDIgMiAyaDVjMS4xIDAgMi0uOSAyLTJ2LTVjMC0xLjEtLjktMi0yLTJ6bTAgN2gtNXYtNWg1djV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjcxIDcuN2MuNC4xOS44My4zIDEuMjkuMyAxLjY1IDAgMy0xLjM1IDMtM3MtMS4zNS0zLTMtMy0zIDEuMzUtMyAzYzAgLjQ2LjExLjg5LjMgMS4yOUw2LjI5IDE2LjNjLS40LS4xOS0uODMtLjMtMS4yOS0uMy0xLjY1IDAtMyAxLjM1LTMgM3MxLjM1IDMgMyAzIDMtMS4zNSAzLTNjMC0uNDYtLjExLS44OS0uMy0xLjI5TDE3LjcxIDcuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNob3J0VGV4dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgOWgxNnYySDRWOXptMCA0aDEwdjJINHYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNob3dDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMy41IDE4LjQ5IDYtNi4wMSA0IDRMMjIgNi45MmwtMS40MS0xLjQxLTcuMDkgNy45Ny00LTRMMiAxNi45OWwxLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BhY2VCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDl2NEg2VjlINHY2aDE2VjloLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDN2MThoMThWM0gzem0xNiAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdGFja2VkTGluZUNoYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMiAxOS45OSA3LjUtNy41MSA0IDQgNy4wOS03Ljk3TDIyIDkuOTJsLTguNSA5LjU2LTQtNC02IDYuMDEtMS41LTEuNXptMS41LTQuNSA2LTYuMDEgNCA0TDIyIDMuOTJsLTEuNDEtMS40MS03LjA5IDcuOTctNC00TDIgMTMuOTlsMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0cmlrZXRocm91Z2hTIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4yNCA4Ljc1Yy0uMjYtLjQ4LS4zOS0xLjAzLS4zOS0xLjY3IDAtLjYxLjEzLTEuMTYuNC0xLjY3LjI2LS41LjYzLS45MyAxLjExLTEuMjlhNS43MyA1LjczIDAgMCAxIDEuNy0uODNjLjY2LS4xOSAxLjM5LS4yOSAyLjE4LS4yOS44MSAwIDEuNTQuMTEgMi4yMS4zNC42Ni4yMiAxLjIzLjU0IDEuNjkuOTQuNDcuNC44My44OCAxLjA4IDEuNDNzLjM4IDEuMTUuMzggMS44MWgtMy4wMWMwLS4zMS0uMDUtLjU5LS4xNS0uODUtLjA5LS4yNy0uMjQtLjQ5LS40NC0uNjgtLjItLjE5LS40NS0uMzMtLjc1LS40NC0uMy0uMS0uNjYtLjE2LTEuMDYtLjE2LS4zOSAwLS43NC4wNC0xLjAzLjEzcy0uNTMuMjEtLjcyLjM2Yy0uMTkuMTYtLjM0LjM0LS40NC41NS0uMS4yMS0uMTUuNDMtLjE1LjY2IDAgLjQ4LjI1Ljg4Ljc0IDEuMjEuMzguMjUuNzcuNDggMS40MS43SDcuMzljLS4wNS0uMDgtLjExLS4xNy0uMTUtLjI1ek0yMSAxMnYtMkgzdjJoOS42MmMuMTguMDcuNC4xNC41NS4yLjM3LjE3LjY2LjM0Ljg3LjUxcy4zNS4zNi40My41N2MuMDcuMi4xMS40My4xMS42OSAwIC4yMy0uMDUuNDUtLjE0LjY2LS4wOS4yLS4yMy4zOC0uNDIuNTMtLjE5LjE1LS40Mi4yNi0uNzEuMzUtLjI5LjA4LS42My4xMy0xLjAxLjEzLS40MyAwLS44My0uMDQtMS4xOC0uMTNzLS42Ni0uMjMtLjkxLS40MmMtLjI1LS4xOS0uNDUtLjQ0LS41OS0uNzVzLS4yNS0uNzYtLjI1LTEuMjFINi40YzAgLjU1LjA4IDEuMTMuMjQgMS41OHMuMzcuODUuNjUgMS4yMWMuMjguMzUuNi42Ni45OC45Mi4zNy4yNi43OC40OCAxLjIyLjY1LjQ0LjE3LjkuMyAxLjM4LjM5LjQ4LjA4Ljk2LjEzIDEuNDQuMTMuOCAwIDEuNTMtLjA5IDIuMTgtLjI4czEuMjEtLjQ1IDEuNjctLjc5Yy40Ni0uMzQuODItLjc3IDEuMDctMS4yN3MuMzgtMS4wNy4zOC0xLjcxYzAtLjYtLjEtMS4xNC0uMzEtMS42MS0uMDUtLjExLS4xMS0uMjMtLjE3LS4zM0gyMVYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN1YnNjcmlwdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDE4aC0ydjFoM3YxaC00di0yYzAtLjU1LjQ1LTEgMS0xaDJ2LTFoLTN2LTFoM2MuNTUgMCAxIC40NSAxIDF2MWMwIC41NS0uNDUgMS0xIDF6TTUuODggMThoMi42NmwzLjQtNS40MmguMTJsMy40IDUuNDJoMi42NmwtNC42NS03LjI3TDE3LjgxIDRoLTIuNjhsLTMuMDcgNC45OWgtLjEyTDguODUgNEg2LjE5bDQuMzIgNi43M0w1Ljg4IDE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3VwZXJzY3JpcHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA3aC0ydjFoM3YxaC00VjdjMC0uNTUuNDUtMSAxLTFoMlY1aC0zVjRoM2MuNTUgMCAxIC40NSAxIDF2MWMwIC41NS0uNDUgMS0xIDF6TTUuODggMjBoMi42NmwzLjQtNS40MmguMTJsMy40IDUuNDJoMi42NmwtNC42NS03LjI3TDE3LjgxIDZoLTIuNjhsLTMuMDcgNC45OWgtLjEyTDguODUgNkg2LjE5bDQuMzIgNi43M0w1Ljg4IDIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGFibGVDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE1YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMnYzSDVWNWgxNXptLTUgMTRoLTV2LTloNXY5ek01IDEwaDN2OUg1di05em0xMiA5di05aDN2OWgtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRhYmxlUm93cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDJ2M0g1VjVoMTR6bTAgNXY0SDV2LTRoMTR6TTUgMTl2LTNoMTR2M0g1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGV4dERlY3JlYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjk5IDE5aDIuNDJsMS4yNy0zLjU4aDUuNjVMMTEuNTkgMTloMi40Mkw4Ljc1IDVoLTIuNUwuOTkgMTl6bTQuNDItNS42MUw3LjQ0IDcuNmguMTJsMi4wMyA1Ljc5SDUuNDF6TTIzIDExdjJoLTh2LTJoOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRleHRGaWVsZHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjUgNHYzaDV2MTJoM1Y3aDVWNGgtMTN6bTE5IDVoLTl2M2gzdjdoM3YtN2gzVjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUZXh0SW5jcmVhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0uOTkgMTloMi40MmwxLjI3LTMuNThoNS42NUwxMS41OSAxOWgyLjQyTDguNzUgNWgtMi41TC45OSAxOXptNC40Mi01LjYxTDcuNDQgNy42aC4xMmwyLjAzIDUuNzlINS40MXpNMjAgMTFoM3YyaC0zdjNoLTJ2LTNoLTN2LTJoM1Y4aDJ2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRpdGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDR2M2g1LjV2MTJoM1Y3SDE5VjRINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVR5cGVTcGVjaW1lbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNEg4VjRoMTJ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjE5IDEyLjJoMy42M2wuOCAyLjNoMS41NmwtMy4zOC05aC0xLjZsLTMuMzggOWgxLjU2bC44MS0yLjN6bTEuNzctNS4wM2guMDhsMS4zMSAzLjcyaC0yLjY5bDEuMy0zLjcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmVydGljYWxBbGlnbkJvdHRvbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTNoLTNWM2gtMnYxMEg4bDQgNCA0LTR6TTQgMTl2MmgxNnYtMkg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmVydGljYWxBbGlnbkNlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxOWgzdjRoMnYtNGgzbC00LTQtNCA0em04LTE0aC0zVjFoLTJ2NEg4bDQgNCA0LTR6TTQgMTF2MmgxNnYtMkg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmVydGljYWxBbGlnblRvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxMWgzdjEwaDJWMTFoM2wtNC00LTQgNHpNNCAzdjJoMTZWM0g0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmVydGljYWxEaXN0cmlidXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMnYySDJWMmgyMHpNNyAxMC41djNoMTB2LTNIN3pNMiAyMHYyaDIwdi0ySDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXcmFwVGV4dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxOWg2di0ySDR2MnpNMjAgNUg0djJoMTZWNXptLTMgNkg0djJoMTMuMjVjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAySDE1di0ybC0zIDMgMyAzdi0yaDJjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcHByb3ZhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTZ2NmgxNnYtNmMwLTEuMS0uOS0yLTItMkg2Yy0xLjEgMC0yIC45LTIgMnptMTQgMkg2di0yaDEydjJ6TTEyIDJDOS4yNCAyIDcgNC4yNCA3IDdsNSA3IDUtN2MwLTIuNzYtMi4yNC01LTUtNXptMCA5TDkgN2MwLTEuNjYgMS4zNC0zIDMtM3MzIDEuMzQgMyAzbC0zIDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBdHRhY2hFbWFpbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTMgNiA4IDUgOC01djNoMlY0YzAtMS4xLS45LTItMi0ySDNjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMSAxNmMwIDEuMS45IDIgMiAyaDEwdi0ySDNWNnptMTYtMi04IDUtOC01aDE2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxNHY0YzAgMS4xLS45IDItMiAycy0yLS45LTItMnYtNC41YzAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41VjE4aDJ2LTQuNWEyLjUgMi41IDAgMCAwLTUgMFYxOGMwIDIuMjEgMS43OSA0IDQgNHM0LTEuNzkgNC00di00aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXR0YWNobWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNSAxNkg3Yy0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00aDEyLjVhMi41IDIuNSAwIDAgMSAwIDVIOWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMWg5LjVWOS41SDlhMi41IDIuNSAwIDAgMCAwIDVoMTAuNWMyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNEg3Yy0zLjA0IDAtNS41IDIuNDYtNS41IDUuNXMyLjQ2IDUuNSA1LjUgNS41aDExLjVWMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDbG91ZENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTQuMjktOS44MWE0LjM3MyA0LjM3MyAwIDAgMC04LjE3LTEuMTZBMy40ODMgMy40ODMgMCAwIDAgNSAxMi41QzUgMTQuNDMgNi41NyAxNiA4LjUgMTZoNy41OGMxLjYxIDAgMi45Mi0xLjMxIDIuOTItMi45MiAwLTEuNTQtMS4yLTIuNzktMi43MS0yLjg5ek0xNiAxNEg4LjVjLS44MyAwLTEuNS0uNjctMS41LTEuNVM3LjY3IDExIDguNSAxMWguOWwuNDktMS4wNWEyLjM3NyAyLjM3NyAwIDAgMSA0LjQ0LjYzbC4yOCAxLjQySDE2Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2xvdWREb25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS4zNSAxMC4wNEE3LjQ5IDcuNDkgMCAwIDAgMTIgNEM5LjExIDQgNi42IDUuNjQgNS4zNSA4LjA0QTUuOTk0IDUuOTk0IDAgMCAwIDAgMTRjMCAzLjMxIDIuNjkgNiA2IDZoMTNjMi43NiAwIDUtMi4yNCA1LTUgMC0yLjY0LTIuMDUtNC43OC00LjY1LTQuOTZ6TTE5IDE4SDZjLTIuMjEgMC00LTEuNzktNC00IDAtMi4wNSAxLjUzLTMuNzYgMy41Ni0zLjk3bDEuMDctLjExLjUtLjk1QTUuNDY5IDUuNDY5IDAgMCAxIDEyIDZjMi42MiAwIDQuODggMS44NiA1LjM5IDQuNDNsLjMgMS41IDEuNTMuMTFBMi45OCAyLjk4IDAgMCAxIDIyIDE1YzAgMS42NS0xLjM1IDMtMyAzem0tOS0zLjgyLTIuMDktMi4wOUw2LjUgMTMuNSAxMCAxN2w2LjAxLTYuMDEtMS40MS0xLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2xvdWREb3dubG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMzUgMTAuMDRBNy40OSA3LjQ5IDAgMCAwIDEyIDRDOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNEE1Ljk5NCA1Ljk5NCAwIDAgMCAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xOSAxOEg2Yy0yLjIxIDAtNC0xLjc5LTQtNCAwLTIuMDUgMS41My0zLjc2IDMuNTYtMy45N2wxLjA3LS4xMS41LS45NUE1LjQ2OSA1LjQ2OSAwIDAgMSAxMiA2YzIuNjIgMCA0Ljg4IDEuODYgNS4zOSA0LjQzbC4zIDEuNSAxLjUzLjExQTIuOTggMi45OCAwIDAgMSAyMiAxNWMwIDEuNjUtMS4zNSAzLTMgM3ptLTUuNTUtOGgtMi45djNIOGw0IDQgNC00aC0yLjU1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2xvdWRPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0IDE1YzAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2QTcuNDkgNy40OSAwIDAgMCAxMiA0Yy0xLjMzIDAtMi41Ny4zNi0zLjY1Ljk3bDEuNDkgMS40OUMxMC41MSA2LjE3IDExLjIzIDYgMTIgNmMzLjA0IDAgNS41IDIuNDYgNS41IDUuNXYuNUgxOWEyLjk5NiAyLjk5NiAwIDAgMSAxLjc5IDUuNGwxLjQxIDEuNDFjMS4wOS0uOTIgMS44LTIuMjcgMS44LTMuODF6TTQuNDEgMy44NiAzIDUuMjdsMi43NyAyLjc3aC0uNDJBNS45OTQgNS45OTQgMCAwIDAgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxMS43M2wyIDIgMS40MS0xLjQxTDQuNDEgMy44NnpNNiAxOGMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNGgxLjczbDggOEg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2xvdWRRdWV1ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMzUgMTAuMDRBNy40OSA3LjQ5IDAgMCAwIDEyIDRDOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNEE1Ljk5NCA1Ljk5NCAwIDAgMCAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xOSAxOEg2Yy0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00aC43MUM3LjM3IDcuNjkgOS40OCA2IDEyIDZjMy4wNCAwIDUuNSAyLjQ2IDUuNSA1LjV2LjVIMTljMS42NiAwIDMgMS4zNCAzIDNzLTEuMzQgMy0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDbG91ZFN5bmMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS41IDE0Ljk4Yy0uMDIgMC0uMDMgMC0uMDUuMDFBMy40OSAzLjQ5IDAgMCAwIDE4IDEyYy0xLjQgMC0yLjYuODMtMy4xNiAyLjAyQTIuOTg4IDIuOTg4IDAgMCAwIDEyIDE3YzAgMS42NiAxLjM0IDMgMyAzbDYuNS0uMDJhMi41IDIuNSAwIDAgMCAwLTV6bS4wMSAzLjAySDE1Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xaDEuMjV2LS4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NXMxLjc1Ljc4IDEuNzUgMS43NVYxN2gxLjc2Yy4yOCAwIC41LjIyLjUuNS0uMDEuMjctLjIzLjUtLjUuNXpNMTAgNC4yNnYyLjA5QzcuNjcgNy4xOCA2IDkuMzkgNiAxMmMwIDEuNzcuNzggMy4zNCAyIDQuNDRWMTRoMnY2SDR2LTJoMi43M0E3Ljk0MiA3Ljk0MiAwIDAgMSA0IDEyYzAtMy43MyAyLjU1LTYuODUgNi03Ljc0ek0yMCA2aC0yLjczYTcuOTggNy45OCAwIDAgMSAyLjY2IDVoLTIuMDJjLS4yMy0xLjM2LS45My0yLjU1LTEuOTEtMy40NFYxMGgtMlY0aDZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNsb3VkVXBsb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS4zNSAxMC4wNEE3LjQ5IDcuNDkgMCAwIDAgMTIgNEM5LjExIDQgNi42IDUuNjQgNS4zNSA4LjA0QTUuOTk0IDUuOTk0IDAgMCAwIDAgMTRjMCAzLjMxIDIuNjkgNiA2IDZoMTNjMi43NiAwIDUtMi4yNCA1LTUgMC0yLjY0LTIuMDUtNC43OC00LjY1LTQuOTZ6TTE5IDE4SDZjLTIuMjEgMC00LTEuNzktNC00IDAtMi4wNSAxLjUzLTMuNzYgMy41Ni0zLjk3bDEuMDctLjExLjUtLjk1QTUuNDY5IDUuNDY5IDAgMCAxIDEyIDZjMi42MiAwIDQuODggMS44NiA1LjM5IDQuNDNsLjMgMS41IDEuNTMuMTFBMi45OCAyLjk4IDAgMCAxIDIyIDE1YzAgMS42NS0xLjM1IDMtMyAzek04IDEzaDIuNTV2M2gyLjl2LTNIMTZsLTQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNsb3VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2YzIuNjIgMCA0Ljg4IDEuODYgNS4zOSA0LjQzbC4zIDEuNSAxLjUzLjExQTIuOTggMi45OCAwIDAgMSAyMiAxNWMwIDEuNjUtMS4zNSAzLTMgM0g2Yy0yLjIxIDAtNC0xLjc5LTQtNCAwLTIuMDUgMS41My0zLjc2IDMuNTYtMy45N2wxLjA3LS4xMS41LS45NUE1LjQ2OSA1LjQ2OSAwIDAgMSAxMiA2bTAtMkM5LjExIDQgNi42IDUuNjQgNS4zNSA4LjA0QTUuOTk0IDUuOTk0IDAgMCAwIDAgMTRjMCAzLjMxIDIuNjkgNiA2IDZoMTNjMi43NiAwIDUtMi4yNCA1LTUgMC0yLjY0LTIuMDUtNC43OC00LjY1LTQuOTZBNy40OSA3LjQ5IDAgMCAwIDEyIDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDcmVhdGVOZXdGb2xkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLThsLTItMkg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY4YzAtMS4xMS0uODktMi0yLTJ6bTAgMTJINFY2aDUuMTdsMiAySDIwdjEwem0tOC00aDJ2Mmgydi0yaDJ2LTJoLTJ2LTJoLTJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURpZmZlcmVuY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAyM0g0Yy0xLjEgMC0yLS45LTItMlY3aDJ2MTRoMTR2MnpNMTQuNSA3VjVoLTJ2MmgtMnYyaDJ2MmgyVjloMlY3aC0yem0yIDZoLTZ2Mmg2di0yek0xNSAxSDhjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNiAxN2MwIDEuMS44OSAyIDEuOTkgMkgxOWMxLjEgMCAyLS45IDItMlY3bC02LTZ6bTQgMTZIOFYzaDYuMTdMMTkgNy44M1YxN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvd25sb2FkRG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxOGgxNHYySDV2LTJ6bTQuNi0yLjdMNSAxMC43bDItMS45IDIuNiAyLjZMMTcgNGwyIDItOS40IDkuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvd25sb2FkRm9yT2ZmbGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OSAyIDIgNi40OSAyIDEyczQuNDkgMTAgMTAgMTAgMTAtNC40OSAxMC0xMFMxNy41MSAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em0yLjU5LTExLjQxTDE2IDEwbC00IDQtNC00IDEuNDEtMS40MUwxMSAxMC4xN1Y2aDJ2NC4xN2wxLjU5LTEuNTh6TTE3IDE3SDd2LTJoMTB2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvd25sb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA5aC00VjNIOXY2SDVsNyA3IDctN3ptLTggMlY1aDJ2NmgxLjE3TDEyIDEzLjE3IDkuODMgMTFIMTF6bS02IDdoMTR2Mkg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG93bmxvYWRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC4zMiA0LjI2QTkuOTQ5IDkuOTQ5IDAgMCAwIDEzIDIuMDV2Mi4wMmMxLjQ2LjE4IDIuNzkuNzYgMy45IDEuNjJsMS40Mi0xLjQzek0xOS45MyAxMWgyLjAyYy0uMi0yLjAxLTEtMy44NC0yLjIxLTUuMzJMMTguMzEgNy4xYTcuOTQxIDcuOTQxIDAgMCAxIDEuNjIgMy45em0tMS42MiA1LjkgMS40MyAxLjQzYTkuOTgxIDkuOTgxIDAgMCAwIDIuMjEtNS4zMmgtMi4wMmE3Ljk0NSA3Ljk0NSAwIDAgMS0xLjYyIDMuODl6TTEzIDE5LjkzdjIuMDJjMi4wMS0uMiAzLjg0LTEgNS4zMi0yLjIxbC0xLjQzLTEuNDNjLTEuMS44Ni0yLjQzIDEuNDQtMy44OSAxLjYyem0yLjU5LTkuMzRMMTMgMTMuMTdWN2gtMnY2LjE3bC0yLjU5LTIuNTlMNyAxMmw1IDUgNS01LTEuNDEtMS40MXpNMTEgMTkuOTN2Mi4wMmMtNS4wNS0uNS05LTQuNzYtOS05Ljk1czMuOTUtOS40NSA5LTkuOTV2Mi4wMkM3LjA1IDQuNTYgNCA3LjkyIDQgMTJzMy4wNSA3LjQ0IDcgNy45M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURyaXZlRmlsZU1vdmVSdGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC04bC0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0wIDEySDRWNmg1LjE3bDIgMkgyMHYxMHptLTYuNTktMi40MUwxMiAxN2wtNC00IDQtNCAxLjQxIDEuNDFMMTEuODMgMTJIMTZ2MmgtNC4xN2wxLjU4IDEuNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEcml2ZUZpbGVNb3ZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtOGwtMi0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptMCAxMkg0VjZoNS4xN2wxLjQxIDEuNDEuNTkuNTlIMjB2MTB6bS03Ljg0LTZIOHYyaDQuMTZsLTEuNTkgMS41OUwxMS45OSAxNyAxNiAxMy4wMSAxMS45OSA5bC0xLjQxIDEuNDFMMTIuMTYgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEcml2ZUZpbGVSZW5hbWVPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUgMTYtNCA0aDEwdi00ek0xMi4wNiA3LjE5IDMgMTYuMjVWMjBoMy43NWw5LjA2LTkuMDYtMy43NS0zLjc1ek01LjkyIDE4SDV2LS45Mmw3LjA2LTcuMDYuOTIuOTJMNS45MiAxOHpNMTguNzEgOC4wNGEuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLTIuMzQtMi4zNGExLjAwMSAxLjAwMSAwIDAgMC0xLjQxIDBsLTEuODMgMS44MyAzLjc1IDMuNzUgMS44My0xLjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRHJpdmVGb2xkZXJVcGxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC04bC0yLTJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptMCAxMkg0VjZoNS4xN2wyIDJIMjB2MTB6TTkuNDEgMTQuNDIgMTEgMTIuODRWMTdoMnYtNC4xNmwxLjU5IDEuNTlMMTYgMTMuMDEgMTIuMDEgOSA4IDEzLjAxbDEuNDEgMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbGVEb3dubG9hZERvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC4xMyA1LjQxIDE4LjcyIDRsLTkuMTkgOS4xOS00LjI1LTQuMjQtMS40MSAxLjQxIDUuNjYgNS42NnpNNSAxOGgxNHYySDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWxlRG93bmxvYWRPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxNS4xN1YxNWgydjIuMTdsLTItMnptLTIuNTktMi41OEwxNyAxMWwtMS40MS0xLjQxTDE0IDExLjE3bDEuNDEgMS40MnpNMTMgMTAuMTdWNGgtMnY0LjE3bDIgMnptOC4xOSAxMS4wMi0xLjc4LTEuNzgtMTYuNi0xNi42LTEuNDIgMS40MSA2LjE5IDYuMTlMNyAxMWw1IDUgLjU5LS41OUwxNS4xNyAxOEg2di0zSDR2M2MwIDEuMS45IDIgMiAyaDExLjE3bDIuNjEgMi42MSAxLjQxLTEuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWxlRG93bmxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxNXYzSDZ2LTNINHYzYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJ2LTNoLTJ6bS0xLTQtMS40MS0xLjQxTDEzIDEyLjE3VjRoLTJ2OC4xN0w4LjQxIDkuNTkgNyAxMWw1IDUgNS01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmlsZU9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAyMkg2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoOGw2IDZ2NmgtMlY5aC01VjRINnYxNmg5djJ6bTQtLjM0di0yLjI0bDIuOTUgMi45NSAxLjQxLTEuNDFMMjAuNDEgMThoMi4yNHYtMkgxN3Y1LjY2aDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWxlVXBsb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTV2M0g2di0zSDR2M2MwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0ydi0zaC0yek03IDlsMS40MSAxLjQxTDExIDcuODNWMTZoMlY3LjgzbDIuNTkgMi41OEwxNyA5bC01LTUtNSA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9sZGVyQ29weSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTloMTd2MkgzYy0xLjEgMC0yLS45LTItMlY2aDJ2MTN6TTIzIDZ2OWMwIDEuMS0uOSAyLTIgMkg3Yy0xLjEgMC0yLS45LTItMmwuMDEtMTFjMC0xLjEuODktMiAxLjk5LTJoNWwyIDJoN2MxLjEgMCAyIC45IDIgMnpNNyAxNWgxNFY2aC03LjgzbC0yLTJIN3YxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvbGRlckRlbGV0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjUgMTBWOWgtMnYxSDEydjEuNWgxdjRjMCAuODMuNjcgMS41IDEuNSAxLjVoMmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTRoMVYxMGgtMi41em0wIDUuNWgtMnYtNGgydjR6TTIwIDZoLThsLTItMkg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY4YzAtMS4xMS0uODktMi0yLTJ6bTAgMTJINFY2aDUuMTdsMiAySDIwdjEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9sZGVyT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtOGwtMi0ySDcuMTdsNCA0SDIwdjkuMTdsMS43NiAxLjc2Yy4xNS0uMjguMjQtLjU5LjI0LS45M1Y4YzAtMS4xLS45LTItMi0yek0yLjEgMi4xLjY5IDMuNTFsMS41NiAxLjU2Yy0uMTUuMjgtLjI0LjU5LS4yNC45M0wyIDE4YzAgMS4xLjkgMiAyIDJoMTMuMTdsMy4zMSAzLjMxIDEuNDEtMS40MUwyLjEgMi4xek00IDE4VjYuODNMMTUuMTcgMThINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvbGRlck9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0wIDEySDRWOGgxNnYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvbGRlclNoYXJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtOGwtMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bTAgMTJINFY2aDUuMTdsMiAySDIwdjEwem0tNS01YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptLTQgNGg4di0xYzAtMS4zMy0yLjY3LTItNC0ycy00IC42Ny00IDJ2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvbGRlclppcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0tNCAxMGgydi0yaC0ydi0yaDJ2LTJoLTJWOGg0djEwaC00di0yem0wIDBoLTJ2Mkg0VjZoNS4xN2wyIDJIMTR2MmgydjJoLTJ2MmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb2xkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTkuMTcgNiAyIDJIMjB2MTBINFY2aDUuMTdNMTAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yaC04bC0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JtYXRPdmVybGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDN2Mkg1VjNoMTR6bS03IDRjLTMuODcgMC03IDMuMTMtNyA3czMuMTMgNyA3IDcgNy0zLjEzIDctNy0zLjEzLTctNy03em0wIDExLjVjLTIuNDkgMC00LjUtMi4wMS00LjUtNC41UzkuNTEgOS41IDEyIDkuNXM0LjUgMi4wMSA0LjUgNC41LTIuMDEgNC41LTQuNSA0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHcmlkVmlldyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgM3Y4aDhWM0gzem02IDZINVY1aDR2NHptLTYgNHY4aDh2LThIM3ptNiA2SDV2LTRoNHY0em00LTE2djhoOFYzaC04em02IDZoLTRWNWg0djR6bS02IDR2OGg4di04aC04em02IDZoLTR2LTRoNHY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmV3c3BhcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgMy0xLjY3IDEuNjdMMTguNjcgMyAxNyA0LjY3IDE1LjMzIDNsLTEuNjYgMS42N0wxMiAzbC0xLjY3IDEuNjdMOC42NyAzIDcgNC42NyA1LjMzIDMgMy42NyA0LjY3IDIgM3YxNmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjN6TTExIDE5SDR2LTZoN3Y2em05IDBoLTd2LTJoN3Yyem0wLTRoLTd2LTJoN3Yyem0wLTRINFY4aDE2djN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXF1ZXN0UXVvdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWOGwtNi02ek02IDIwVjRoN3Y0aDV2MTJINnptNS0xaDJ2LTFoMWMuNTUgMCAxLS40NSAxLTF2LTNjMC0uNTUtLjQ1LTEtMS0xaC0zdi0xaDR2LTJoLTJWOWgtMnYxaC0xYy0uNTUgMC0xIC40NS0xIDF2M2MwIC41NS40NSAxIDEgMWgzdjFIOXYyaDJ2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJ1bGVGb2xkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjgzIDE2IDUgMTMuMTdsMS40MS0xLjQxIDEuNDEgMS40MSAzLjU0LTMuNTQgMS40MSAxLjQxTDcuODMgMTZ6bTkuNTgtM0wxOSAxNC41OSAxNy41OSAxNiAxNiAxNC40MSAxNC40MSAxNiAxMyAxNC41OSAxNC41OSAxMyAxMyAxMS40MSAxNC40MSAxMCAxNiAxMS41OSAxNy41OSAxMCAxOSAxMS40MSAxNy40MSAxM3pNMjAgNmgtOGwtMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bTAgMTJINFY2aDUuMTdsMiAySDIwdjEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU25pcHBldEZvbGRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0wIDEySDRWNmg1LjE3bDIgMkgyMHYxMHptLTIuNS01Ljg4djMuMzhoLTN2LTVoMS4zOGwxLjYyIDEuNjJ6TTEzIDl2OGg2di01LjVMMTYuNSA5SDEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGV4dFNuaXBwZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC4xNyA1IDE5IDkuODNWMTlINVY1aDkuMTdtMC0ySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWOS44M2MwLS41My0uMjEtMS4wNC0uNTktMS40MWwtNC44My00LjgzYy0uMzctLjM4LS44OC0uNTktMS40MS0uNTl6TTcgMTVoMTB2Mkg3di0yem0wLTRoMTB2Mkg3di0yem0wLTRoN3YySDdWN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRvcGljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtOGwtMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2Ljc3Yy42OCAwIDEuMjMtLjU2IDEuMjMtMS4yM1Y4YzAtMS4xLS45LTItMi0yem0wIDEySDRWNmg1LjE3bDIgMkgyMHYxMHptLTItNkg2di0yaDEydjJ6bS00IDRINnYtMmg4djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVVcGxvYWRGaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMjBjMCAxLjEuODkgMiAxLjk5IDJIMThjMS4xIDAgMi0uOSAyLTJWOGwtNi02em00IDE4SDZWNGg3djVoNXYxMXpNOCAxNS4wMWwxLjQxIDEuNDFMMTEgMTQuODRWMTloMnYtNC4xNmwxLjU5IDEuNTlMMTYgMTUuMDEgMTIuMDEgMTEgOCAxNS4wMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVVwbG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxNmg2di02aDRsLTctNy03IDdoNHY2em0zLTEwLjE3TDE0LjE3IDhIMTN2NmgtMlY4SDkuODNMMTIgNS44M3pNNSAxOGgxNHYySDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXb3Jrc3BhY2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxNWMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJtMC0yYy0yLjIgMC00IDEuOC00IDRzMS44IDQgNCA0IDQtMS44IDQtNC0xLjgtNC00LTR6bTYtOGMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJtMC0yQzkuOCAzIDggNC44IDggN3MxLjggNCA0IDQgNC0xLjggNC00LTEuOC00LTQtNHptNiAxMmMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJtMC0yYy0yLjIgMC00IDEuOC00IDRzMS44IDQgNCA0IDQtMS44IDQtNC0xLjgtNC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBZGZTY2FubmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTJoLTFWNEg2djhINWMtMS42NiAwLTMgMS4zNC0zIDN2NWgyMHYtNWMwLTEuNjYtMS4zNC0zLTMtM3pNOCA2aDh2Nkg4VjZ6bTEyIDEySDR2LTNjMC0uNTUuNDUtMSAxLTFoMTRjLjU1IDAgMSAuNDUgMSAxdjN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMThcIixcImN5XCI6XCIxNlwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnJvd3Nlck5vdFN1cHBvcnRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDZ2MTAuNWwxLjk1IDEuOTVjLjAzLS4xNS4wNS0uMy4wNS0uNDVWNmMwLTEuMS0uOS0yLTItMkg2LjVsMiAySDE5ek0zLjIyIDMuMzIgMS45NSA0LjU5IDMgNS42NFYxOGMwIDEuMS45IDIgMiAyaDEyLjM2bDIuMDYgMi4wNiAxLjI3LTEuMjdMMy4yMiAzLjMyek0xNSAxOEg1VjcuNjRMMTUuMzYgMThIMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCcm93c2VyVXBkYXRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDEzdjNjMCAxLjEtLjkgMi0yIDJoLTNsMSAxdjJINnYtMmwxLTFINGMtMS4xIDAtMi0uOS0yLTJWNWMwLTEuMS45LTIgMi0yaDh2Mkg0djExaDE2di0zaDJ6bS03IDItNS01IDEuNDEtMS40MUwxNCAxMS4xN1YzaDJ2OC4xN2wyLjU5LTIuNThMMjAgMTBsLTUgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhc3RDb25uZWN0ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMTh2M2gzYzAtMS42Ni0xLjM0LTMtMy0zem0wLTR2MmMyLjc2IDAgNSAyLjI0IDUgNWgyYzAtMy44Ny0zLjEzLTctNy03em0wLTR2MmE5IDkgMCAwIDEgOSA5aDJjMC02LjA4LTQuOTMtMTEtMTEtMTF6bTIwLTdIM2MtMS4xIDAtMiAuOS0yIDJ2M2gyVjVoMTh2MTRoLTd2Mmg3YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTUgN3YyaDEydjZoLTN2Mmg1Vjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYXN0Rm9yRWR1Y2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjNoMlY1aDE4djE0aC03djJoN2MxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek0xIDE4djNoM2MwLTEuNjYtMS4zNC0zLTMtM3ptMC00djJjMi43NiAwIDUgMi4yNCA1IDVoMmMwLTMuODctMy4xMy03LTctN3ptMC00djJhOSA5IDAgMCAxIDkgOWgyYzAtNi4wOC00LjkzLTExLTExLTExem0xMCAxLjA5djJMMTQuNSAxNWwzLjUtMS45MXYtMkwxNC41IDEzIDExIDExLjA5ek0xNC41IDYgOSA5bDUuNSAzTDIwIDlsLTUuNS0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYzaDJWNWgxOHYxNGgtN3YyaDdjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNMSAxOHYzaDNjMC0xLjY2LTEuMzQtMy0zLTN6bTAtNHYyYzIuNzYgMCA1IDIuMjQgNSA1aDJjMC0zLjg3LTMuMTMtNy03LTd6bTAtNHYyYTkgOSAwIDAgMSA5IDloMmMwLTYuMDgtNC45My0xMS0xMS0xMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbXB1dGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOGMxLjEgMCAxLjk5LS45IDEuOTktMkwyMiA2YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJIMHYyaDI0di0yaC00ek00IDZoMTZ2MTBINFY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29ubmVjdGVkVHYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAzSDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoNHYyaDh2LTJoNGMxLjEgMCAxLjk5LS45IDEuOTktMkwyMiA1YzAtMS4xLS45LTItMi0yem0wIDE0SDRWNWgxNnYxMnpNNSAxNHYyaDJjMC0xLjExLS44OS0yLTItMnptMC0zdjEuNDNjMS45NyAwIDMuNTcgMS42IDMuNTcgMy41N0gxMGMwLTIuNzYtMi4yNC01LTUtNXptMC0zdjEuNDVjMy42MSAwIDYuNTUgMi45MyA2LjU1IDYuNTVIMTNjMC00LjQyLTMuNTktOC04LTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEZXNrdG9wTWFjIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAySDNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoN2wtMiAzdjFoOHYtMWwtMi0zaDdjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxMkgzVjRoMTh2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEZXNrdG9wV2luZG93cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMkgzYy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDd2Mkg4djJoOHYtMmgtMnYtMmg3YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTRIM1Y0aDE4djEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGV2ZWxvcGVyQm9hcmRPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjgzIDVIMTh2MTAuMTdMMTkuODMgMTdIMjJ2LTJoLTJ2LTJoMnYtMmgtMlY5aDJWN2gtMlY1YzAtMS4xLS45LTItMi0ySDUuODNsMiAyek0xMiA5LjE3VjdoNHYzaC0zLjE3TDEyIDkuMTd6TTkuODMgN0gxMXYxLjE3TDkuODMgN3ptNCA0SDE2djIuMTdMMTMuODMgMTF6TTE4IDIxYy4wNiAwIC4xMSAwIC4xNi0uMDFsMi4zMiAyLjMyIDEuNDEtMS40MUwyLjEgMi4xLjY5IDMuNTFsMS4zMiAxLjMyQzIgNC44OSAyIDQuOTQgMiA1djE0YzAgMS4xLjkgMiAyIDJoMTR6TTQgMTlWNi44M2wyIDJWMTJoMy4xN2wxIDFINnY0aDV2LTMuMTdsMSAxVjE3aDIuMTdsMiAySDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEZXZlbG9wZXJCb2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgOVY3aC0yVjVjMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtMmgydi0yaC0ydi0yaDJ2LTJoLTJWOWgyem0tNCAxMEg0VjVoMTR2MTR6TTYgMTNoNXY0SDZ2LTR6bTYtNmg0djNoLTRWN3pNNiA3aDV2NUg2Vjd6bTYgNGg0djZoLTR2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEZXZpY2VIdWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3IDE2LTQtNFY4LjgyQzE0LjE2IDguNCAxNSA3LjMgMTUgNmMwLTEuNjYtMS4zNC0zLTMtM1M5IDQuMzQgOSA2YzAgMS4zLjg0IDIuNCAyIDIuODJWMTJsLTQgNEgzdjVoNXYtMy4wNWw0LTQuMiA0IDQuMlYyMWg1di01aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGV2aWNlVW5rbm93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMUg3Yy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMThIN1Y1aDEwdjE0ek0xMiA2LjcyYy0xLjk2IDAtMy41IDEuNTItMy41IDMuNDdoMS43NWMwLS45My44Mi0xLjc1IDEuNzUtMS43NXMxLjc1LjgyIDEuNzUgMS43NWMwIDEuNzUtMi42MyAxLjU3LTIuNjMgNC40NWgxLjc2YzAtMS45NiAyLjYyLTIuMTkgMi42Mi00LjQ1IDAtMS45Ni0xLjU0LTMuNDctMy41LTMuNDd6TTExIDE2aDJ2MmgtMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURldmljZXNPdGhlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA2aDE4VjRIM2MtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg0di0ySDNWNnptMTAgNkg5djEuNzhjLS42MS41NS0xIDEuMzMtMSAyLjIyIDAgLjg5LjM5IDEuNjcgMSAyLjIyVjIwaDR2LTEuNzhjLjYxLS41NSAxLTEuMzQgMS0yLjIycy0uMzktMS42Ny0xLTIuMjJWMTJ6bS0yIDUuNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6TTIyIDhoLTZjLS41IDAtMSAuNS0xIDF2MTBjMCAuNS41IDEgMSAxaDZjLjUgMCAxLS41IDEtMVY5YzAtLjUtLjUtMS0xLTF6bS0xIDEwaC00di04aDR2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMjNoOHYtMkg4djJ6bTgtMjEuOTlMOCAxYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTYgMTVIOFY1aDh2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFYXJidWRzQmF0dGVyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDdoLTFWNmgtMnYxaC0xYy0uNTUgMC0xIC40NS0xIDF2OWMwIC41NS40NSAxIDEgMWg0Yy41NSAwIDEtLjQ1IDEtMVY4YzAtLjU1LS40NS0xLTEtMXptLTEgOWgtMlY5aDJ2N3ptLTYtNi42MkMxNCA3LjUxIDEyLjQ5IDYgMTAuNjIgNlM3LjI1IDcuNTEgNy4yNSA5LjM4djUuMjVjMCAxLjA0LS44NCAxLjg4LTEuODggMS44OHMtMS44Ny0uODUtMS44Ny0xLjg5di00LjdjLjE2LjA1LjMzLjA4LjUuMDggMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAydjYuNjJDMiAxNi40OSAzLjUxIDE4IDUuMzggMThzMy4zOC0xLjUxIDMuMzgtMy4zOFY5LjM4YzAtMS4wNC44NC0xLjg4IDEuODgtMS44OHMxLjg4Ljg0IDEuODggMS44OHY0LjdjLS4xOC0uMDUtLjM1LS4wOC0uNTItLjA4LTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yVjkuMzh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFYXJidWRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgM2MtMi43NiAwLTUgMi4yNC01IDV2OGMwIDEuNjYtMS4zNCAzLTMgM3MtMy0xLjM0LTMtM1Y5aC44M0M3LjQ0IDkgOC44OSA3LjgyIDkgNi4yMUEzIDMgMCAwIDAgNi4yIDNDNC40NCAyLjg5IDMgNC40MiAzIDYuMTlWMTZjMCAyLjc2IDIuMjQgNSA1IDVzNS0yLjI0IDUtNVY4YzAtMS42NiAxLjM0LTMgMy0zczMgMS4zNCAzIDN2N2gtLjgzYy0xLjYxIDAtMy4wNiAxLjE4LTMuMTcgMi43OUEzIDMgMCAwIDAgMTcuOCAyMWMxLjc2LjEyIDMuMi0xLjQyIDMuMi0zLjE4VjhjMC0yLjc2LTIuMjQtNS01LTV6TTUgNmMwLS41NS40NS0xIDEtMXMxIC40NSAxIDEtLjQ1IDEtMSAxSDVWNnptMTQgMTJjMCAuNTUtLjQ1IDEtMSAxcy0xLS40NS0xLTEgLjQ1LTEgMS0xaDF2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdhbWVwYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDR2Mi42N2wtMSAxLTEtMVY0aDJtNyA3djJoLTIuNjdsLTEtMSAxLTFIMjBNNi42NyAxMWwxIDEtMSAxSDR2LTJoMi42N00xMiAxNi4zM2wxIDFWMjBoLTJ2LTIuNjdsMS0xTTE1IDJIOXY1LjVsMyAzIDMtM1Yyem03IDdoLTUuNWwtMyAzIDMgM0gyMlY5ek03LjUgOUgydjZoNS41bDMtMy0zLTN6bTQuNSA0LjUtMyAzVjIyaDZ2LTUuNWwtMy0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGVhZHBob25lc0JhdHRlcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA3aC0xVjZoLTJ2MWgtMWMtLjU1IDAtMSAuNDUtMSAxdjljMCAuNTUuNDUgMSAxIDFoNGMuNTUgMCAxLS40NSAxLTFWOGMwLS41NS0uNDUtMS0xLTF6bS0xIDloLTJWOWgydjd6TTggNmMtMy4zMSAwLTYgMi42OS02IDZ2NGMwIDEuMS45IDIgMiAyaDJ2LTVIMy41di0xYzAtMi40OCAyLjAyLTQuNSA0LjUtNC41czQuNSAyLjAyIDQuNSA0LjV2MUgxMHY1aDJjMS4xIDAgMi0uOSAyLTJ2LTRjMC0zLjMxLTIuNjktNi02LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIZWFkcGhvbmVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgM2E5IDkgMCAwIDAtOSA5djdjMCAxLjEuOSAyIDIgMmg0di04SDV2LTFjMC0zLjg3IDMuMTMtNyA3LTdzNyAzLjEzIDcgN3YxaC00djhoNGMxLjEgMCAyLS45IDItMnYtN2E5IDkgMCAwIDAtOS05ek03IDE1djRINXYtNGgyem0xMiA0aC0ydi00aDJ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhlYWRzZXRNaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDE0djRoLTJ2LTRoMk03IDE0djRINmMtLjU1IDAtMS0uNDUtMS0xdi0zaDJtNS0xM2E5IDkgMCAwIDAtOSA5djdjMCAxLjY2IDEuMzQgMyAzIDNoM3YtOEg1di0yYzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDd2MmgtNHY4aDR2MWgtN3YyaDZjMS42NiAwIDMtMS4zNCAzLTNWMTBhOSA5IDAgMCAwLTktOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhlYWRzZXRPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0YzMuODcgMCA3IDMuMTMgNyA3djFoLTR2LjE3TDE2LjgzIDE0SDE5djIuMTdsMiAyVjExYTkgOSAwIDAgMC05LTljLTIuMDIgMC0zLjg4LjY3LTUuMzggMS44bDEuNDMgMS40M0E2Ljg3OCA2Ljg3OCAwIDAgMSAxMiA0ek0yLjEgMi4xLjY5IDMuNTFsMy4zMyAzLjMzQTguOTggOC45OCAwIDAgMCAzIDExdjdjMCAxLjEuOSAyIDIgMmg0di04SDV2LTFjMC0uOTQuMTktMS44My41Mi0yLjY1TDE1IDE3LjgzVjIwaDIuMTdsMSAxSDEydjJoN2MuMzQgMCAuNjUtLjA5LjkzLS4yNGwuNTUuNTUgMS40MS0xLjQxTDIuMSAyLjF6TTcgMTR2NEg1di00aDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIZWFkc2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxNHYzYzAgLjU1LS40NSAxLTEgMWgtMXYtNGgyTTcgMTR2NEg2Yy0uNTUgMC0xLS40NS0xLTF2LTNoMm01LTEzYTkgOSAwIDAgMC05IDl2N2MwIDEuNjYgMS4zNCAzIDMgM2gzdi04SDV2LTJjMC0zLjg3IDMuMTMtNyA3LTdzNyAzLjEzIDcgN3YyaC00djhoM2MxLjY2IDAgMy0xLjM0IDMtM3YtN2E5IDkgMCAwIDAtOS05elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSG9tZU1heCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDVINUMyLjc5IDUgMSA2Ljc5IDEgOXY1YzAgMi4yMSAxLjc5IDQgNCA0aDJ2MWgxMHYtMWgyYzIuMjEgMCA0LTEuNzkgNC00VjljMC0yLjIxLTEuNzktNC00LTR6bTIgOWMwIDEuMS0uOSAyLTIgMkg1Yy0xLjEgMC0yLS45LTItMlY5YzAtMS4xLjktMiAyLTJoMTRjMS4xIDAgMiAuOSAyIDJ2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhvbWVNaW5pIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNUM0LjE5IDUgMiA5LjQ4IDIgMTJjMCAzLjg2IDMuMTMgNyA2Ljk5IDdoNi4wMkMxNy43IDE5IDIyIDE2LjkyIDIyIDEyYzAgMCAwLTctMTAtN3ptMCAyYzcuNjQgMCA3Ljk5IDQuNTEgOCA1SDRjMC0uMi4wOS01IDgtNXptMi44NiAxMEg5LjE0Yy0yLjEgMC0zLjkyLTEuMjQtNC43MS0zaDE1LjE1Yy0uOCAxLjc2LTIuNjIgMy00LjcyIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVLZXlib2FyZEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDRIM2MtMS4xIDAtMiAuOS0yIDJ2MTNjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE1SDNWNmgxOHYxM3pNOSA4aDJ2Mkg5Vjh6TTUgOGgydjJINVY4em0zIDhoOHYxSDh2LTF6bTUtOGgydjJoLTJWOHptLTQgNGgydjJIOXYtMnptLTQgMGgydjJINXYtMnptOCAwaDJ2MmgtMnYtMnptNC00aDJ2MmgtMlY4em0wIDRoMnYyaC0ydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lS2V5Ym9hcmRBcnJvd0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNDEgOC41OSAxMiAxMy4xN2w0LjU5LTQuNThMMTggMTBsLTYgNi02LTYgMS40MS0xLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lS2V5Ym9hcmRBcnJvd0xlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjQxIDE2LjU5IDEwLjgzIDEybDQuNTgtNC41OUwxNCA2bC02IDYgNiA2IDEuNDEtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUtleWJvYXJkQXJyb3dSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41OSAxNi41OSAxMy4xNyAxMiA4LjU5IDcuNDEgMTAgNmw2IDYtNiA2LTEuNDEtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUtleWJvYXJkQXJyb3dVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy40MSAxNS40MSAxMiAxMC44M2w0LjU5IDQuNThMMTggMTRsLTYtNi02IDYgMS40MSAxLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lS2V5Ym9hcmRCYWNrc3BhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDExSDYuODNsMy41OC0zLjU5TDkgNmwtNiA2IDYgNiAxLjQxLTEuNDFMNi44MyAxM0gyMXYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUtleWJvYXJkQ2Fwc2xvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDguNDEgMTYuNTkgMTMgMTggMTEuNTlsLTYtNi02IDZMNy40MSAxMyAxMiA4LjQxek02IDE4aDEydi0ySDZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUtleWJvYXJkQ29tbWFuZEtleSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjUgM0MxNS41NyAzIDE0IDQuNTcgMTQgNi41VjhoLTRWNi41QzEwIDQuNTcgOC40MyAzIDYuNSAzUzMgNC41NyAzIDYuNSA0LjU3IDEwIDYuNSAxMEg4djRINi41QzQuNTcgMTQgMyAxNS41NyAzIDE3LjVTNC41NyAyMSA2LjUgMjFzMy41LTEuNTcgMy41LTMuNVYxNmg0djEuNWMwIDEuOTMgMS41NyAzLjUgMy41IDMuNXMzLjUtMS41NyAzLjUtMy41LTEuNTctMy41LTMuNS0zLjVIMTZ2LTRoMS41YzEuOTMgMCAzLjUtMS41NyAzLjUtMy41UzE5LjQzIDMgMTcuNSAzek0xNiA4VjYuNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNVMxOC4zMyA4IDE3LjUgOEgxNnpNNi41IDhDNS42NyA4IDUgNy4zMyA1IDYuNVM1LjY3IDUgNi41IDUgOCA1LjY3IDggNi41VjhINi41em0zLjUgNnYtNGg0djRoLTR6bTcuNSA1Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVWMTZoMS41Yy44MyAwIDEuNS42NyAxLjUgMS41cy0uNjcgMS41LTEuNSAxLjV6bS0xMSAwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyAxNiA2LjUgMTZIOHYxLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lS2V5Ym9hcmRDb250cm9sS2V5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNSAxMiAxLjQxIDEuNDFMMTIgNy44M2w1LjU5IDUuNThMMTkgMTJsLTctN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUtleWJvYXJkRG91YmxlQXJyb3dEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNi40MSAxNi41OSA1IDEyIDkuNTggNy40MSA1IDYgNi40MWw2IDZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4IDEzLTEuNDEtMS40MUwxMiAxNi4xN2wtNC41OS00LjU4TDYgMTNsNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lS2V5Ym9hcmREb3VibGVBcnJvd0xlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy41OSAxOCAxOSAxNi41OSAxNC40MiAxMiAxOSA3LjQxIDE3LjU5IDZsLTYgNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTEgMTggMS40MS0xLjQxTDcuODMgMTJsNC41OC00LjU5TDExIDZsLTYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUtleWJvYXJkRG91YmxlQXJyb3dSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNDEgNiA1IDcuNDEgOS41OCAxMiA1IDE2LjU5IDYuNDEgMThsNi02elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMyA2LTEuNDEgMS40MUwxNi4xNyAxMmwtNC41OCA0LjU5TDEzIDE4bDYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUtleWJvYXJkRG91YmxlQXJyb3dVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTcuNTkgNy40MSAxOSAxMiAxNC40MiAxNi41OSAxOSAxOCAxNy41OWwtNi02elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm02IDExIDEuNDEgMS40MUwxMiA3LjgzbDQuNTkgNC41OEwxOCAxMWwtNi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lS2V5Ym9hcmRIaWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAzSDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxNWMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTJINFY1aDE2djEwem0tOS05aDJ2MmgtMnptMCAzaDJ2MmgtMnpNOCA2aDJ2Mkg4em0wIDNoMnYySDh6TTUgOWgydjJINXptMC0zaDJ2Mkg1em0zIDZoOHYySDh6bTYtM2gydjJoLTJ6bTAtM2gydjJoLTJ6bTMgM2gydjJoLTJ6bTAtM2gydjJoLTJ6bS01IDE3IDQtNEg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lS2V5Ym9hcmRPcHRpb25LZXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA1aDZ2MmgtNnpNOSA1SDN2Mmg0Ljg1bDYuOTIgMTJIMjF2LTJoLTUuMDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVLZXlib2FyZFJldHVybiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgN3Y0SDUuODNsMy41OC0zLjU5TDggNmwtNiA2IDYgNiAxLjQxLTEuNDFMNS44MyAxM0gyMVY3aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lS2V5Ym9hcmRUYWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjU5IDcuNDEgMTUuMTcgMTFIMXYyaDE0LjE3bC0zLjU5IDMuNTlMMTMgMThsNi02LTYtNi0xLjQxIDEuNDF6TTIwIDZ2MTJoMlY2aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lS2V5Ym9hcmRWb2ljZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTVjMS42NiAwIDIuOTktMS4zNCAyLjk5LTNMMTUgNmMwLTEuNjYtMS4zNC0zLTMtM1M5IDQuMzQgOSA2djZjMCAxLjY2IDEuMzQgMyAzIDN6bS0xLjItOS4xYzAtLjY2LjU0LTEuMiAxLjItMS4yczEuMi41NCAxLjIgMS4ybC0uMDEgNi4yYzAgLjY2LS41MyAxLjItMS4xOSAxLjJzLTEuMi0uNTQtMS4yLTEuMlY1Ljl6bTYuNSA2LjFjMCAzLTIuNTQgNS4xLTUuMyA1LjFTNi43IDE1IDYuNyAxMkg1YzAgMy40MSAyLjcyIDYuMjMgNiA2LjcyVjIyaDJ2LTMuMjhjMy4yOC0uNDggNi0zLjMgNi02LjcyaC0xLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVLZXlib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgN3YxMEg0VjdoMTZtMC0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxN2MwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bS05IDNoMnYyaC0yem0wIDNoMnYyaC0yek04IDhoMnYySDh6bTAgM2gydjJIOHptLTMgMGgydjJINXptMC0zaDJ2Mkg1em0zIDZoOHYySDh6bTYtM2gydjJoLTJ6bTAtM2gydjJoLTJ6bTMgM2gydjJoLTJ6bTAtM2gydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMYXB0b3BDaHJvbWVib29rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxOFYzSDJ2MTVIMHYyaDI0di0yaC0yem0tOCAwaC00di0xaDR2MXptNi0zSDRWNWgxNnYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxhcHRvcE1hYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMThjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjIgNWMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxMWMwIDEuMS45IDIgMiAySDBjMCAxLjEuOSAyIDIgMmgyMGMxLjEgMCAyLS45IDItMmgtNHpNNCA1aDE2djExSDRWNXptOCAxNGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGFwdG9wV2luZG93cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTh2LTFjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjIgNWMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAydjFIMHYyaDI0di0yaC00ek00IDVoMTZ2MTBINFY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGFwdG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMThjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAySDB2MmgyNHYtMmgtNHpNNCA2aDE2djEwSDRWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1lbW9yeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgOUg5djZoNlY5em0tMiA0aC0ydi0yaDJ2MnptOC0yVjloLTJWN2MwLTEuMS0uOS0yLTItMmgtMlYzaC0ydjJoLTJWM0g5djJIN2MtMS4xIDAtMiAuOS0yIDJ2MkgzdjJoMnYySDN2MmgydjJjMCAxLjEuOSAyIDIgMmgydjJoMnYtMmgydjJoMnYtMmgyYzEuMSAwIDItLjkgMi0ydi0yaDJ2LTJoLTJ2LTJoMnptLTQgNkg3VjdoMTB2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb25pdG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM0g0Yy0xLjEgMC0yIC45LTIgMnYxMWMwIDEuMS45IDIgMiAyaDNsLTEgMXYyaDEydi0ybC0xLTFoM2MxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDEzSDRWNWgxNnYxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vdXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA5Yy0uMDQtNC4zOS0zLjYtNy45My04LTcuOTNTNC4wNCA0LjYxIDQgOXY2YzAgNC40MiAzLjU4IDggOCA4czgtMy41OCA4LThWOXptLTIgMGgtNVYzLjE2YzIuODEuNDcgNC45NiAyLjkgNSA1Ljg0em0tNy01Ljg0VjlINmE2LjAwNSA2LjAwNSAwIDAgMSA1LTUuODR6TTE4IDE1YzAgMy4zMS0yLjY5IDYtNiA2cy02LTIuNjktNi02di00aDEydjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaG9uZUFuZHJvaWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDFIOEM2LjM0IDEgNSAyLjM0IDUgNHYxNmMwIDEuNjYgMS4zNCAzIDMgM2g4YzEuNjYgMCAzLTEuMzQgMy0zVjRjMC0xLjY2LTEuMzQtMy0zLTN6bTEgMTdIN1Y0aDEwdjE0em0tMyAzaC00di0xaDR2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBob25lSXBob25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDFoLThBMi41IDIuNSAwIDAgMCA1IDMuNXYxN0EyLjUgMi41IDAgMCAwIDcuNSAyM2g4YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTdBMi41IDIuNSAwIDAgMCAxNS41IDF6bS00IDIxYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXptNC41LTRIN1Y0aDl2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaG9uZWxpbmtPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDZWNEg3LjM5bDIgMnptMiAxM1Y5YzAtLjU1LS40NS0xLTEtMWgtNmMtLjU1IDAtMSAuNDUtMSAxdjMuNjFsMiAyVjEwaDR2N2gtMS42MWwyLjkzIDIuOTNjLjM5LS4xMy42OC0uNDkuNjgtLjkzek0yLjA2IDEuNTEuNjUgMi45MmwxLjgyIDEuODJDMi4xOCA1LjA4IDIgNS41MiAyIDZ2MTFIMHYzaDE3LjczbDIuMzUgMi4zNSAxLjQxLTEuNDFMMi4wNiAxLjUxek00IDE3VjYuMjdMMTQuNzMgMTdINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBob25lbGluayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2aDE4VjRINGMtMS4xIDAtMiAuOS0yIDJ2MTFIMHYzaDE0di0zSDRWNnptMTkgMmgtNmMtLjU1IDAtMSAuNDUtMSAxdjEwYzAgLjU1LjQ1IDEgMSAxaDZjLjU1IDAgMS0uNDUgMS0xVjljMC0uNTUtLjQ1LTEtMS0xem0tMSA5aC00di03aDR2N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBvaW50T2ZTYWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMkg3Yy0xLjEgMC0yIC45LTIgMnYyYzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCA0SDdWNGgxMHYyem0zIDE2SDRjLTEuMSAwLTItLjktMi0ydi0xaDIwdjFjMCAxLjEtLjkgMi0yIDJ6bS0xLjQ3LTExLjgxQTIuMDA4IDIuMDA4IDAgMCAwIDE2LjcgOUg3LjNjLS43OSAwLTEuNTEuNDctMS44MyAxLjE5TDIgMThoMjBsLTMuNDctNy44MXpNOS41IDE2aC0xYy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjVoMWMuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjV6bTAtMmgtMWMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41aDFjLjI4IDAgLjUuMjIuNS41cy0uMjIuNS0uNS41em0wLTJoLTFjLS4yOCAwLS41LS4yMi0uNS0uNXMuMjItLjUuNS0uNWgxYy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNXptMyA0aC0xYy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjVoMWMuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjV6bTAtMmgtMWMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41aDFjLjI4IDAgLjUuMjIuNS41cy0uMjIuNS0uNS41em0wLTJoLTFjLS4yOCAwLS41LS4yMi0uNS0uNXMuMjItLjUuNS0uNWgxYy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNXptMyA0aC0xYy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjVoMWMuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjV6bTAtMmgtMWMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41aDFjLjI4IDAgLjUuMjIuNS41cy0uMjIuNS0uNS41em0wLTJoLTFjLS4yOCAwLS41LS4yMi0uNS0uNXMuMjItLjUuNS0uNWgxYy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBvd2VySW5wdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgOXYyaDE5VjlIMnptMCA2aDV2LTJIMnYyem03IDBoNXYtMkg5djJ6bTcgMGg1di0yaC01djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSb3V0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDQuMmMxLjUgMCAzIC42IDQuMiAxLjdsLjgtLjhDMTkuNiAzLjcgMTcuOCAzIDE2IDNzLTMuNi43LTUgMi4xbC44LjhDMTMgNC44IDE0LjUgNC4yIDE2IDQuMnptLTMuMyAyLjUuOC44Yy43LS43IDEuNi0xIDIuNS0xczEuOC4zIDIuNSAxbC44LS44Yy0uOS0uOS0yLjEtMS40LTMuMy0xLjRzLTIuNC41LTMuMyAxLjR6TTE5IDEzaC0yVjloLTJ2NEg1Yy0xLjEgMC0yIC45LTIgMnY0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTRjMC0xLjEtLjktMi0yLTJ6bTAgNkg1di00aDE0djR6TTYgMTZoMnYySDZ6bTMuNSAwaDJ2MmgtMnptMy41IDBoMnYyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2Nhbm5lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuOCAxMC43IDQuMiA1bC0uNyAxLjlMMTcuNiAxMkg1Yy0xLjEgMC0yIC45LTIgMnY0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTUuNWMwLS44LS41LTEuNi0xLjItMS44ek0xOSAxOEg1di00aDE0djR6TTYgMTVoMnYySDZ6bTQgMGg4djJoLTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZWN1cml0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMSAzIDV2NmMwIDUuNTUgMy44NCAxMC43NCA5IDEyIDUuMTYtMS4yNiA5LTYuNDUgOS0xMlY1bC05LTR6bTAgMTAuOTloN2MtLjUzIDQuMTItMy4yOCA3Ljc5LTcgOC45NFYxMkg1VjYuM2w3LTMuMTF2OC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2ltQ2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMmgtOEw0IDh2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDJ2MTZINlY4LjgzTDEwLjgzIDRIMTh6TTcgMTdoMnYySDd6bTggMGgydjJoLTJ6bS04LTZoMnY0SDd6bTQgNGgydjRoLTJ6bTAtNGgydjJoLTJ6bTQgMGgydjRoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTbWFydERpc3BsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgNy41djlsNy00LjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE0LjAxSDRWNS45OWgxNnYxMi4wMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNtYXJ0U2NyZWVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSAxMS4yNUgxNHYxLjVoLTEuNXpNMTUgMTEuMjVoMS41djEuNUgxNXpNMTAgMTEuMjVoMS41djEuNUgxMHpNNy41IDExLjI1SDl2MS41SDcuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNUgzYy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6TTQgMTdIM1Y3aDF2MTB6bTE0IDBINlY3aDEydjEwem0zIDBoLTFWN2gxdjEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU21hcnRUb3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA5VjdjMC0xLjEtLjktMi0yLTJoLTNjMC0xLjY2LTEuMzQtMy0zLTNTOSAzLjM0IDkgNUg2Yy0xLjEgMC0yIC45LTIgMnYyYy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzdjRjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMnYtNGMxLjY2IDAgMy0xLjM0IDMtM3MtMS4zNC0zLTMtM3ptLTIgMTBINlY3aDEydjEyem0tOS02Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTOC4xNyAxMCA5IDEwczEuNS42NyAxLjUgMS41UzkuODMgMTMgOSAxM3ptNy41LTEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVzLTEuNS0uNjctMS41LTEuNS42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNXpNOCAxNWg4djJIOHYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNtYXJ0cGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEuMDEgNyAxYy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMS45OS0yLTEuOTl6TTE3IDE5SDdWNWgxMHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwZWFrZXJHcm91cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguMiAxSDkuOEM4LjgxIDEgOCAxLjgxIDggMi44djE0LjRjMCAuOTkuODEgMS43OSAxLjggMS43OWw4LjQuMDFjLjk5IDAgMS44LS44MSAxLjgtMS44VjIuOGMwLS45OS0uODEtMS44LTEuOC0xLjh6TTE4IDE3bC04LS4wMVYzaDh2MTR6bS00LTljMS4xIDAgMi0uODkgMi0ycy0uOS0yLTItMi0yIC44OS0yIDIgLjkgMiAyIDJ6bTAgOGMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVMxNS45MyA5IDE0IDlzLTMuNSAxLjU3LTMuNSAzLjVTMTIuMDcgMTYgMTQgMTZ6bTAtNWMuODMgMCAxLjUuNjcgMS41IDEuNVMxNC44MyAxNCAxNCAxNHMtMS41LS42Ny0xLjUtMS41LjY3LTEuNSAxLjUtMS41ek02IDVINHYxNmEyIDIgMCAwIDAgMiAyaDEwdi0ySDZWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwZWFrZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDJIN2MtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAxLjk5IDIgMS45OUwxNyAyMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek03IDIwVjRoMTB2MTZIN3ptNS0xMWMxLjEgMCAyLS45IDItMnMtLjktMi0yLTJhMiAyIDAgMSAwIDAgNHptMCAyYy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMCA2Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0YXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNTkgNy40MSAxOC4xNyAxMUg2djJoMTIuMTdsLTMuNTkgMy41OUwxNiAxOGw2LTYtNi02LTEuNDEgMS40MXpNMiA2djEyaDJWNkgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGFibGV0QW5kcm9pZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMEg2QzQuMzQgMCAzIDEuMzQgMyAzdjE4YzAgMS42NiAxLjM0IDMgMyAzaDEyYzEuNjYgMCAzLTEuMzQgMy0zVjNjMC0xLjY2LTEuMzQtMy0zLTN6bS00IDIyaC00di0xaDR2MXptNS4yNS0zSDQuNzVWM2gxNC41djE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGFibGV0TWFjIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC41IDBoLTE0QTIuNSAyLjUgMCAwIDAgMiAyLjV2MTlBMi41IDIuNSAwIDAgMCA0LjUgMjRoMTRhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xOUEyLjUgMi41IDAgMCAwIDE4LjUgMHptLTcgMjNjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41em03LjUtNEg0VjNoMTV2MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUYWJsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDRIM2MtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAxLjk5LS45IDEuOTktMkwyMyA2YzAtMS4xLS45LTItMi0yem0tMiAxNEg1VjZoMTR2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUb3lzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC43NSAxMC4wOCAxNy40IDYuMDVBMi45NzggMi45NzggMCAwIDAgMTQuNTYgNEg5LjQ0QzguMTUgNCA3IDQuODIgNi42IDYuMDVMNS44MSA4LjQgNC40MSA3bC4yOS0uMjlBLjk5Ni45OTYgMCAxIDAgMy4yOSA1LjNsLTIgMkEuOTk2Ljk5NiAwIDEgMCAyLjcgOC43MWwuMy0uMyAxLjc5IDEuNzlDMy4xOCAxMC43MiAyIDEyLjIyIDIgMTRjMCAxLjQ5LjgzIDIuNzggMi4wNSAzLjQ3QTIuOTkxIDIuOTkxIDAgMCAwIDcgMjBjMS4zIDAgMi40LS44NCAyLjgyLTJoNC4zN2MuNDEgMS4xNiAxLjUxIDIgMi44MiAyIDEuNDkgMCAyLjczLTEuMSAyLjk1LTIuNTNDMjEuMTcgMTYuNzggMjIgMTUuNDkgMjIgMTRjMC0xLjk1LTEuNC0zLjU3LTMuMjUtMy45MnpNMTMgNmgxLjU2YTEgMSAwIDAgMSAuOTUuNjhsMS4xIDMuMzJIMTNWNnptLTQuNTEuNjhBMSAxIDAgMCAxIDkuNDQgNkgxMXY0SDcuNDFsLS4wMi0uMDIgMS4xLTMuM3pNNyAxOGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0xMCAwYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTIuNDktMi42OEEzLjAyOCAzLjAyOCAwIDAgMCAxNyAxNGMtMS4zIDAtMi40Ljg0LTIuODIgMkg5LjgyQzkuNCAxNC44NCA4LjMgMTQgNyAxNGMtMS4wMyAwLTEuOTUuNTMtMi40OSAxLjMyQzQuMiAxNC45NyA0IDE0LjUxIDQgMTRjMC0xLjEuOS0yIDItMmgxMmMxLjEgMCAyIC45IDIgMiAwIC41MS0uMi45Ny0uNTEgMS4zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVR2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoNXYyaDh2LTJoNWMxLjEgMCAxLjk5LS45IDEuOTktMkwyMyA1YzAtMS4xLS45LTItMi0yem0wIDE0SDNWNWgxOHYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpZGVvZ2FtZUFzc2V0T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNSA5Yy44MyAwIDEuNS42NyAxLjUgMS41cy0uNjcgMS41LTEuNSAxLjUtMS41LS42Ny0xLjUtMS41LjY3LTEuNSAxLjUtMS41em0tNi42Ny0xSDIwdjhoLTEuMTdsMS44NyAxLjg3Yy43NS0uMjkgMS4zLTEuMDIgMS4zLTEuODdWOGMwLTEuMS0uOS0yLTItMkg4LjgzbDIgMnptOC45NSAxNC42MUwxNS4xNyAxOEg0Yy0xLjEgMC0yLS45LTItMlY4YzAtLjg1LjU1LTEuNTggMS4zLTEuODdMMS4zOSA0LjIyIDIuOCAyLjgxbDE4LjM4IDE4LjM4LTEuNCAxLjQyek0xMy4xNyAxNmwtMy0zSDl2Mkg3di0ySDV2LTJoMlY5LjgzTDUuMTcgOEg0djhoOS4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpZGVvZ2FtZUFzc2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA2SDNjLTEuMSAwLTIgLjktMiAydjhjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0wIDEwSDNWOGgxOHY4ek02IDE1aDJ2LTJoMnYtMkg4VjlINnYySDR2MmgyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE0LjVcIixcImN5XCI6XCIxMy41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxOC41XCIsXCJjeVwiOlwiMTAuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXYXRjaE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDdjMi43NiAwIDUgMi4yNCA1IDUgMCAuNjQtLjEzIDEuMjUtLjM1IDEuODJsMS41IDEuNWE2Ljk2MyA2Ljk2MyAwIDAgMC0xLjc5LTguNzlMMTUgMkg5bC0uOTYgMy4yMSAyLjE0IDIuMTRDMTAuNzUgNy4xMyAxMS4zNiA3IDEyIDd6bS0xLjUxLTNoMy4wMmwuMzggMS4yN2MtLjU1LS4xNi0xLjk3LS41MS0zLjc4IDBMMTAuNDkgNHpNMi44MSAyLjgxIDEuMzkgNC4yMmw0LjQ2IDQuNDZhNi45NjMgNi45NjMgMCAwIDAgMS43OSA4Ljc5TDkgMjJoNmwuOTYtMy4yMSAzLjgyIDMuODIgMS40MS0xLjQxTDIuODEgMi44MXpNMTMuNTEgMjBoLTMuMDJsLS4zOC0xLjI3Yy41NS4xNSAxLjk3LjUxIDMuNzggMEwxMy41MSAyMHpNMTIgMTdjLTIuNzYgMC01LTIuMjQtNS01IDAtLjY0LjEzLTEuMjUuMzUtMS44Mmw2LjQ3IDYuNDdjLS41Ny4yMi0xLjE4LjM1LTEuODIuMzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXYXRjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQuMzEgMiAuNDEgMi40OEMxMy44NyA0LjE3IDEyLjk2IDQgMTIgNGMtLjk1IDAtMS44Ny4xNy0yLjcxLjQ3TDkuNyAyaDQuNjFtLjQxIDE3LjUyTDE0LjMxIDIySDkuN2wtLjQxLTIuNDdjLjg0LjMgMS43Ni40NyAyLjcxLjQ3Ljk2IDAgMS44Ny0uMTcgMi43Mi0uNDhNMTYgMEg4bC0uOTUgNS43M0M1LjE5IDcuMTkgNCA5LjQ1IDQgMTJzMS4xOSA0LjgxIDMuMDUgNi4yN0w4IDI0aDhsLjk2LTUuNzNDMTguODEgMTYuODEgMjAgMTQuNTQgMjAgMTJzLTEuMTktNC44MS0zLjA0LTYuMjdMMTYgMHptLTQgMThjLTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTYgNiAyLjY5IDYgNi0yLjY5IDYtNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXV0b01vZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS4wMyAzLjU2Yy0xLjY3LTEuMzktMy43NC0yLjMtNi4wMy0yLjUxdjIuMDFjMS43My4xOSAzLjMxLjg4IDQuNjEgMS45MmwxLjQyLTEuNDJ6TTExIDMuMDZWMS4wNWMtMi4yOS4yLTQuMzYgMS4xMi02LjAzIDIuNTFsMS40MiAxLjQyQTguOTI4IDguOTI4IDAgMCAxIDExIDMuMDZ6TTQuOTggNi4zOSAzLjU2IDQuOTdDMi4xNyA2LjY0IDEuMjYgOC43MSAxLjA1IDExaDIuMDFjLjE5LTEuNzMuODgtMy4zMSAxLjkyLTQuNjF6TTIwLjk0IDExaDIuMDFjLS4yMS0yLjI5LTEuMTItNC4zNi0yLjUxLTYuMDNsLTEuNDIgMS40MkE4LjkyOCA4LjkyOCAwIDAgMSAyMC45NCAxMXpNNyAxMmwzLjQ0IDEuNTZMMTIgMTdsMS41Ni0zLjQ0TDE3IDEybC0zLjQ0LTEuNTZMMTIgN2wtMS41NiAzLjQ0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyMWE4Ljk2IDguOTYgMCAwIDEtNy40Ni00SDd2LTJIMXY2aDJ2LTIuN2MxLjk5IDIuODQgNS4yNyA0LjcgOSA0LjcgNC44NyAwIDktMy4xNyAxMC40NC03LjU2bC0xLjk2LS40NUMxOS4yNSAxOC40OCAxNS45MiAyMSAxMiAyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJsaW5kc0Nsb3NlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE5VjNINHYxNkgydjJoMTEuMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVzMS43NS0uNzggMS43NS0xLjc1SDIydi0yaC0yem0tMi04aC0yVjloMnYyem0tNCAwSDZWOWg4djJ6bTAgMnYySDZ2LTJoOHptMiAwaDJ2MmgtMnYtMnptMi02aC0yVjVoMnYyem0tNC0ydjJINlY1aDh6TTYgMTl2LTJoOHYySDZ6bTEwIDB2LTJoMnYyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmxpbmRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTlWM0g0djE2SDJ2MmgyMHYtMmgtMnpNMTYgOWgydjJoLTJWOXptLTIgMkg2VjloOHYyem00LTRoLTJWNWgydjJ6bS00LTJ2Mkg2VjVoOHpNNiAxOXYtNmg4djEuODJBMS43NDYgMS43NDYgMCAwIDAgMTUgMThhMS43NDYgMS43NDYgMCAwIDAgMS0zLjE4VjEzaDJ2Nkg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnJvYWRjYXN0T25Ib21lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNmMwLTEuMS0uOS0yLTItMkg0djJoMTZ2Mi41OWMuNzMuMjkgMS40LjY5IDIgMS4xN1Y2ek04IDlIM2MtLjUgMC0xIC41LTEgMXY5YzAgLjUuNSAxIDEgMWg1Yy41IDAgMS0uNSAxLTF2LTljMC0uNS0uNS0xLTEtMXptLTEgOUg0di03aDN2N3pNMTcuNzUgMTYuOTdjLjMtLjIzLjUtLjU3LjUtLjk3YTEuMjUgMS4yNSAwIDAgMC0yLjUgMGMwIC40LjIuNzUuNS45N1YyMmgxLjV2LTUuMDN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEzLjVhMi41IDIuNSAwIDAgMSAyLjUgMi41YzAgLjY5LS4yOCAxLjMxLS43MyAxLjc2bDEuMDYgMS4wNkMyMC41NSAxOC4xIDIxIDE3LjEgMjEgMTZjMC0yLjIxLTEuNzktNC00LTRzLTQgMS43OS00IDRjMCAxLjEuNDUgMi4xIDEuMTcgMi44M2wxLjA2LTEuMDZBMi41IDIuNSAwIDAgMSAxNyAxMy41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA5LjVhNi41IDYuNSAwIDAgMC02LjUgNi41YzAgMS43OS43MyAzLjQyIDEuOSA0LjZsMS4wNi0xLjA2QzEyLjU2IDE4LjYzIDEyIDE3LjM4IDEyIDE2YzAtMi43NiAyLjI0LTUgNS01czUgMi4yNCA1IDVjMCAxLjM3LS41NiAyLjYyLTEuNDYgMy41MmwxLjA3IDEuMDZBNi41IDYuNSAwIDAgMCAxNyA5LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCcm9hZGNhc3RPblBlcnNvbmFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxOXYtOWw2LTQuNSA0LjA4IDMuMDZjLjgxLS4zMiAxLjY5LS41MSAyLjYxLS41NEwxMCAzIDIgOXYxMmg4Ljc2Yy0uNDgtLjYtLjg4LTEuMjctMS4xNy0ySDR6TTE3IDE0Ljc1Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNSAwIC40LjIuNzUuNS45N1YyMmgxLjV2LTUuMDNjLjMtLjIzLjUtLjU3LjUtLjk3IDAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTJjLTIuMjEgMC00IDEuNzktNCA0IDAgMS4xLjQ1IDIuMSAxLjE3IDIuODNsMS4wNi0xLjA2QTIuNSAyLjUgMCAxIDEgMTkuNSAxNmMwIC42OS0uMjggMS4zMS0uNzMgMS43NmwxLjA2IDEuMDZDMjAuNTUgMTguMSAyMSAxNy4xIDIxIDE2YzAtMi4yMS0xLjc5LTQtNC00elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA5LjVhNi41IDYuNSAwIDAgMC02LjUgNi41YzAgMS43OS43MyAzLjQyIDEuOSA0LjZsMS4wNi0xLjA2QzEyLjU2IDE4LjYzIDEyIDE3LjM4IDEyIDE2YzAtMi43NiAyLjI0LTUgNS01czUgMi4yNCA1IDVjMCAxLjM3LS41NiAyLjYyLTEuNDYgMy41MmwxLjA3IDEuMDZBNi41IDYuNSAwIDAgMCAxNyA5LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDdXJ0YWluc0Nsb3NlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE5VjNINHYxNkgydjJoMjB2LTJoLTJ6TTEzIDV2MTRoLTJWNWgyek02IDVoM3YxNEg2VjV6bTkgMTRWNWgzdjE0aC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ3VydGFpbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOVYzSDR2MTZIMnYyaDIwdi0yaC0yem0tMi04LjE0Yy0yLjA1LS41OC0zLjY0LTIuOTMtMy45NC01Ljg2SDE4djUuODZ6TTE1LjgxIDEyYy0yLjA0IDEuMzUtMy41IDMuOTQtMy43NiA3aC0uMDljLS4yNi0zLjA2LTEuNzItNS42NS0zLjc2LTcgMi4wNC0xLjM1IDMuNS0zLjk0IDMuNzYtN2guMDljLjI2IDMuMDYgMS43MiA1LjY1IDMuNzYgN3pNOS45NCA1Yy0uMyAyLjkzLTEuODkgNS4yNy0zLjk0IDUuODZWNWgzLjk0ek02IDEzLjE0YzIuMDUuNTggMy42NCAyLjkzIDMuOTQgNS44Nkg2di01Ljg2ek0xNC4wNiAxOWMuMy0yLjkzIDEuODktNS4yNyAzLjk0LTUuODZWMTloLTMuOTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFbGVjdHJpY0JvbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC42OSAyLjIxIDQuMzMgMTEuNDljLS42NC41OC0uMjggMS42NS41OCAxLjczTDEzIDE0bC00Ljg1IDYuNzZjLS4yMi4zMS0uMTkuNzQuMDggMS4wMS4zLjMuNzcuMzEgMS4wOC4wMmwxMC4zNi05LjI4Yy42NC0uNTguMjgtMS42NS0uNTgtMS43M0wxMSAxMGw0Ljg1LTYuNzZjLjIyLS4zMS4xOS0uNzQtLjA4LTEuMDFhLjc3Ljc3IDAgMCAwLTEuMDgtLjAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWxlY3RyaWNNZXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDExYTkgOSAwIDAgMC0xOCAwYzAgMy45MiAyLjUxIDcuMjQgNiA4LjQ4VjIyaDJ2LTIuMDZhOC4yNjIgOC4yNjIgMCAwIDAgMiAwVjIyaDJ2LTIuNTJjMy40OS0xLjI0IDYtNC41NiA2LTguNDh6bS05IDdjLTMuODYgMC03LTMuMTQtNy03czMuMTQtNyA3LTcgNyAzLjE0IDcgNy0zLjE0IDctNyA3elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDdoOHYySDh6TTEyLjc1IDEwbC0zIDNMMTEgMTQuMjUgOS43NSAxNS41bDEuNSAxLjUgMy0zTDEzIDEyLjc1bDEuMjUtMS4yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVuZXJneVNhdmluZ3NMZWFmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgM2MtNC44IDAtOSAzLjg2LTkgOSAwIDIuMTIuNzQgNC4wNyAxLjk3IDUuNjFMMyAxOS41OSA0LjQxIDIxbDEuOTctMS45N0E5LjAxMiA5LjAxMiAwIDAgMCAxMiAyMWMyLjMgMCA0LjYxLS44OCA2LjM2LTIuNjRBOC45NSA4Ljk1IDAgMCAwIDIxIDEyVjNoLTl6bTcgOWMwIDEuODctLjczIDMuNjMtMi4wNSA0Ljk1QTYuOTYgNi45NiAwIDAgMSAxMiAxOWMtMy44NiAwLTctMy4xNC03LTcgMC0xLjkuNzQtMy42OCAyLjEtNC45OUE2Ljk0IDYuOTQgMCAwIDEgMTIgNWg3djd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTguNDYgMTIuNjMgNC4wNS40LTIuNDQgMy4zM2MtLjExLjE2LS4xLjM4LjA0LjUyLjE1LjE1LjQuMTYuNTYuMDFsNS4xNi00LjYzYy4zMy0uMy4xNS0uODUtLjMtLjg5bC00LjA1LS40IDIuNDQtMy4zM2MuMTEtLjE2LjEtLjM4LS4wNC0uNTJhLjQwNS40MDUgMCAwIDAtLjU2LS4wMWwtNS4xNiA0LjYzYy0uMzIuMy0uMTQuODUuMy44OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdhc01ldGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgNGgtMVYyaC0ydjJoLTJWMkg5djJIOEM1Ljc5IDQgNCA1Ljc5IDQgOHYxMGMwIDIuMjEgMS43OSA0IDQgNGg4YzIuMjEgMCA0LTEuNzkgNC00VjhjMC0yLjIxLTEuNzktNC00LTR6bTIgMTRjMCAxLjEtLjkgMi0yIDJIOGMtMS4xIDAtMi0uOS0yLTJWOGMwLTEuMS45LTIgMi0yaDhjMS4xIDAgMiAuOSAyIDJ2MTB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNSAxNS41NEM5LjUgMTYuOSAxMC42MiAxOCAxMiAxOHMyLjUtMS4xIDIuNS0yLjQ2YzAtMS4wOS0uNDUtMS40MS0yLjUtMy43OS0yLjA3IDIuNC0yLjUgMi43MS0yLjUgMy43OXpNOCA4aDh2Mkg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGVhdFB1bXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE4YzMuMzEgMCA2LTIuNjkgNi02cy0yLjY5LTYtNi02LTYgMi42OS02IDYgMi42OSA2IDYgNnptLS43NS0yLjA4Yy0uNTUtLjEtMS4wNS0uMzItMS41LS42MmwxLjUtMS41djIuMTJ6bTEuNSAwdi0yLjExbDEuNSAxLjVjLS40NS4zLS45NS41MS0xLjUuNjF6bTIuNTYtMS42Ny0xLjUtMS41aDIuMTFjLS4xLjU1LS4zMSAxLjA1LS42MSAxLjV6bS42MS0zaC0yLjExbDEuNS0xLjVjLjMuNDUuNTEuOTUuNjEgMS41em0tMy4xNy0zLjE3Yy41NS4xIDEuMDUuMzIgMS41LjYybC0xLjUgMS41VjguMDh6TTEyIDExYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bS0uNzUtMi45MnYyLjExbC0xLjUtMS41Yy40NS0uMy45NS0uNTEgMS41LS42MXpNOC42OSA5Ljc1bDEuNSAxLjVIOC4wOGMuMS0uNTUuMzEtMS4wNS42MS0xLjV6bTEuNSAzLTEuNSAxLjVjLS4zLS40NC0uNTEtLjk1LS42Mi0xLjVoMi4xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vZGVGYW5PZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA4Yy0xLjA2IDAtMS42NC4yOS0zLjkxIDEuMTktLjE5LS4xNC0uNC0uMjctLjYyLS4zNy4yNS0xLjAzLjYxLTEuNTMgMS4zMy0yLjA0LjgxLS41NyAxLjItMS4zNCAxLjItMi4yOCAwLTEuMjItLjk1LTIuNS0yLjYtMi41LTMuMDggMC00LjkyIDEuNDctNS4zMiAzLjI2bDIuMzMgMi4zM0MxMC4wNyA2LjY5IDEwIDYuMzggMTAgNmMwLTEuMTggMS40LTIgMy40LTIgLjU3IDAgLjYuNDIuNi41IDAgLjI3LS4wNS40My0uMzUuNjUtMS4yNy45LTEuODMgMS45MS0yLjE2IDMuMzlsLS4wMi4xIDcuMjUgNy4yNWMuMjQuMDYuNS4xMS43OC4xMSAxLjIyIDAgMi41LS45NSAyLjUtMi42QzIyIDkuOTEgMjAuMTEgOCAxOCA4em0xLjUgNmMtLjI3IDAtLjQzLS4wNS0uNjUtLjM1LS45LTEuMjctMS45MS0xLjgzLTMuMzktMi4xNmEzLjEyIDMuMTIgMCAwIDAtLjE1LS42MmMxLjgtLjc1IDIuMTgtLjg3IDIuNjktLjg3IDEuMTggMCAyIDEuNCAyIDMuNCAwIC41Ny0uNDIuNi0uNS42ek0xLjM5IDQuMjJsMy44OSAzLjg5QzUuMDQgOC4wNSA0Ljc4IDggNC41IDggMy4yOCA4IDIgOC45NSAyIDEwLjYgMiAxNC4wOSAzLjg5IDE2IDYgMTZjMS4wNiAwIDEuNjQtLjI5IDMuOTEtMS4xOS4xOS4xNC40LjI3LjYyLjM3LS4yNSAxLjAzLS42MSAxLjUzLTEuMzMgMi4wNC0uODEuNTctMS4yIDEuMzQtMS4yIDIuMjggMCAxLjIyLjk1IDIuNSAyLjYgMi41IDMuMDggMCA0LjkyLTEuNDcgNS4zMi0zLjI2bDMuODYgMy44NiAxLjQxLTEuNDFMMi44MSAyLjgxIDEuMzkgNC4yMnptMTEuMTMgMTEuMjRjLjAzIDAgLjA2LS4wMi4wOS0uMDJsLjk3Ljk3Yy4zNS45LjQyIDEuMjEuNDIgMS41OSAwIDEuMTgtMS40IDItMy40IDItLjU3IDAtLjYtLjQyLS42LS41IDAtLjI3LjA1LS40My4zNS0uNjUgMS4yOC0uODkgMS44My0xLjkxIDIuMTctMy4zOXptLTMuOTgtMi45NGMuMDMuMjIuMDguNDIuMTUuNjItMS44Ljc0LTIuMTguODYtMi42OS44Ni0xLjE4IDAtMi0xLjQtMi0zLjQgMC0uNTcuNDItLjYuNS0uNi4yNyAwIC40My4wNS42NS4zNS44OSAxLjI4IDEuOTEgMS44MyAzLjM5IDIuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOZXN0Q2FtV2lyZWRTdGFuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDFjLS4xNSAwIC4xMS0uMDItNC4yOC40MkM4LjQ3IDEuNzUgNiA0LjQ4IDYgNy43NXMyLjQ3IDYgNS43MiA2LjMzbDEuOS4xOS0uNTYuODVjLS4zNS0uMDgtLjctLjEyLTEuMDYtLjEyLTIuNzYgMC01IDIuMjQtNSA1djJjMCAuNTUuNDUgMSAxIDFoOGMuNTUgMCAxLS40NSAxLTF2LTJjMC0xLjY3LS44My0zLjE1LTIuMDktNC4wNmwuOTctMS40NWMuMDQgMCAuMDkuMDEuMTMuMDEgMS4wOSAwIDItLjg5IDItMlYzQzE4IDEuODkgMTcuMDkgMSAxNiAxem0tMSAyMEg5di0xYzAtMS42NSAxLjM1LTMgMy0zczMgMS4zNSAzIDN2MXpNOCA3Ljc1YzAtMi4yNSAxLjY5LTQuMTEgMy45Mi00LjM0TDE2IDNsLjAzIDkuNS00LjExLS40MkE0LjMzNiA0LjMzNiAwIDAgMSA4IDcuNzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVPaWxCYXJyZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDEzLjA1QzkgMTQuNjggMTAuMzQgMTYgMTIgMTZzMy0xLjMyIDMtMi45NWMwLTEuMzEtLjUzLTEuNjktMy00LjU1LTIuNDggMi44OC0zIDMuMjUtMyA0LjU1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxM2MuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMWgtMVY1aDFjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMWgxdjZINGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMWgxdjZINGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMWgxNmMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMWgtMXYtNmgxem0tMyA2SDd2LTZjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTFWNWgxMHY2Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxdjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQcm9wYW5lVGFuayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDYuMTRWNGMwLTEuMS0uOS0yLTItMkg5Yy0xLjEgMC0yIC45LTIgMnYyLjE0Yy0xLjcyLjQ1LTMgMi0zIDMuODZ2OGMwIDIuMjEgMS43OSA0IDQgNGg4YzIuMjEgMCA0LTEuNzkgNC00di04YzAtMS44Ni0xLjI4LTMuNDEtMy0zLjg2ek05IDRoNnYyaC0yYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxSDlWNHpNOCA4aDhjMS4xIDAgMiAuOSAyIDJ2M0g2di0zYzAtMS4xLjktMiAyLTJ6bTggMTJIOGMtMS4xIDAtMi0uOS0yLTJ2LTNoMTJ2M2MwIDEuMS0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVByb3BhbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA2aC0xVjVjMC0xLjEtLjktMi0yLTJoLTRjLTEuMSAwLTIgLjktMiAydjFIN2MtMy4zMSAwLTYgMi42OS02IDZzMi42OSA2IDYgNnYzaDJ2LTNoNnYzaDJ2LTNjMy4zMSAwIDYtMi42OSA2LTZzLTIuNjktNi02LTZ6bS03LTFoNHYxaC00VjV6bTcgMTFIN2MtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNGgxMGMyLjIxIDAgNCAxLjc5IDQgNHMtMS43OSA0LTQgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJvbGxlclNoYWRlc0Nsb3NlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE5VjNINHYxNkgydjJoOC4yNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NXMxLjc1LS43OCAxLjc1LTEuNzVIMjJ2LTJoLTJ6TTE4IDV2MTBINlY1aDEyek02IDE5di0yaDV2Mkg2em03IDB2LTJoNXYyaC01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUm9sbGVyU2hhZGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTlWM0g0djE2SDJ2MmgyMHYtMmgtMnpNMTggNXY2SDZWNWgxMnpNNiAxOXYtNmg1djEuODJBMS43NDYgMS43NDYgMCAwIDAgMTIgMThhMS43NDYgMS43NDYgMCAwIDAgMS0zLjE4VjEzaDV2Nkg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2Vuc29yRG9vciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDR2MTZINlY0aDEybTAtMkg2Yy0xLjEgMC0yIC45LTIgMnYxOGgxNlY0YzAtMS4xLS45LTItMi0yem0tMi41IDguNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41UzE3IDEyLjgzIDE3IDEycy0uNjctMS41LTEuNS0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZW5zb3JPY2N1cGllZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDExYzEuNjYgMCAzLTEuMzQgMy0zcy0xLjM0LTMtMy0zLTMgMS4zNC0zIDMgMS4zNCAzIDMgM3ptMC00Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6TTEyIDEyYy0xLjg0IDAtMy41Ni41LTUuMDMgMS4zNy0uNjEuMzUtLjk3IDEuMDItLjk3IDEuNzJWMTdoMTJ2LTEuOTFjMC0uNy0uMzYtMS4zNi0uOTctMS43MkE5Ljg0NCA5Ljg0NCAwIDAgMCAxMiAxMnptLTMuODYgM2MxLjE4LS42NSAyLjUxLTEgMy44Ni0xczIuNjguMzUgMy44NSAxSDguMTR6TTIxLjIzIDguMTVsMS44NS0uNzdBMTIuMDU2IDEyLjA1NiAwIDAgMCAxNi42Mi45MmwtLjc3IDEuODVjMi40MiAxLjAyIDQuMzYgMi45NiA1LjM4IDUuMzh6TTguMTUgMi43NyA3LjM4LjkyQTEyLjA4OSAxMi4wODkgMCAwIDAgLjkyIDcuMzhsMS44NS43N2MxLjAyLTIuNDIgMi45Ni00LjM2IDUuMzgtNS4zOHpNMi43NyAxNS44NWwtMS44NS43N2MxLjIyIDIuOTEgMy41NSA1LjI1IDYuNDYgNi40NmwuNzctMS44NWExMC4xMTcgMTAuMTE3IDAgMCAxLTUuMzgtNS4zOHpNMTUuODUgMjEuMjNsLjc3IDEuODVjMi45MS0xLjIyIDUuMjUtMy41NSA2LjQ2LTYuNDZsLTEuODUtLjc3YTEwLjExNyAxMC4xMTcgMCAwIDEtNS4zOCA1LjM4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2Vuc29yV2luZG93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMkg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMnY3aC00di0xaC00djFINlY0aDEyek02IDIwdi03aDEydjdINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNoaWVsZE1vb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyIDQgNXY2LjA5YzAgNS4wNSAzLjQxIDkuNzYgOCAxMC45MSA0LjU5LTEuMTUgOC01Ljg2IDgtMTAuOTFWNWwtOC0zem02IDkuMDljMCA0LTIuNTUgNy43LTYgOC44My0zLjQ1LTEuMTMtNi00LjgyLTYtOC44M3YtNC43bDYtMi4yNSA2IDIuMjV2NC43elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjAxIDE0LjMzYzEuNzUgMi4xNyA1LjEyIDIuMjQgNi45Ni4wNy4yMy0uMjcuMDgtLjY4LS4yNi0uNzRhNC40OTEgNC40OTEgMCAwIDEtMy4xOC0yLjIgNC41MDMgNC41MDMgMCAwIDEtLjMyLTMuODYuNDUzLjQ1MyAwIDAgMC0uNTEtLjZjLTMuMzQuNjItNC44OSA0LjYxLTIuNjkgNy4zM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNvbGFyUG93ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxMkg0TDIgMjJoMjBsLTItMTB6bS0xLjY0IDIgLjQgMkgxM3YtMmg1LjM2ek0xMSAxNHYySDUuMjRsLjQtMkgxMXptLTYuMTYgNEgxMXYySDQuNDRsLjQtMnpNMTMgMjB2LTJoNi4xNmwuNCAySDEzek0xMSA4aDJ2M2gtMnpNMTUuNzY0IDcuMjA1bDEuNDE1LTEuNDE0TDE5LjMgNy45MTJsLTEuNDE0IDEuNDE0ek00LjcwNSA3LjkxMyA2LjgyNiA1Ljc5IDguMjQgNy4yMDYgNi4xMiA5LjMyN3pNMyAyaDN2Mkgzek0xOCAyaDN2MmgtM3pNMTIgN2MyLjc2IDAgNS0yLjI0IDUtNWgtMmMwIDEuNjUtMS4zNSAzLTMgM1M5IDMuNjUgOSAySDdjMCAyLjc2IDIuMjQgNSA1IDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWZXJ0aWNhbFNoYWRlc0Nsb3NlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE5VjNINHYxNkgydjJoMjB2LTJoLTJ6TTEzIDVoMS41djE0SDEzVjV6bS0yIDE0SDkuNVY1SDExdjE0ek02IDVoMS41djE0SDZWNXptMTAuNSAxNFY1SDE4djE0aC0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWZXJ0aWNhbFNoYWRlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE5VjNINHYxNkgydjJoMjB2LTJoLTJ6TTE0IDV2MTRoLTRWNWg0ek02IDVoMnYxNEg2VjV6bTEwIDE0VjVoMnYxNGgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdpbmRQb3dlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgM2g2djJINHpNMSA3aDV2Mkgxek0zIDE5aDV2MkgzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMi4yMSAxOC42MS0yLjI4LTQuMWEyLjA1IDIuMDUgMCAwIDAtMS4yNi0uOTdsLTIuNjktLjY3YTIuOTUgMi45NSAwIDAgMC0uMzctMS4zM2wzLjk2LTYuNTljLjY1LTEuMDguMy0yLjQ4LS43OC0zLjEzYTIuMjg4IDIuMjg4IDAgMCAwLTIuNzMuM2wtMy40MyAzLjIxYy0uNC4zNy0uNjMuOS0uNjMgMS40NXYzLjRjLS40Ny4xNy0uODkuNDUtMS4yMy44MkgzLjI4YTIuMjc5IDIuMjc5IDAgMCAwLS42MyA0LjQ3bDQuNTEgMS4yOWMuMTguMDUuMzcuMDguNTUuMDguMzYgMCAuNzItLjEgMS4wMy0uMjlsMi4yNC0xLjM0Yy4yOS4yNi42My40NyAxLjAyLjYxVjIxYy0xLjEgMC0yIC45LTIgMmg2YzAtMS4xLS45LTItMi0ydi00LjI4bDQuNjEgNC42MWMuNDUuNDUgMS4wMy42NyAxLjYxLjY3LjU4IDAgMS4xNy0uMjIgMS42MS0uNjcuNzItLjcyLjg4LTEuODMuMzgtMi43MnpNNy43MiAxNC44NCAzLjIgMTMuNTVhLjI3OS4yNzkgMCAwIDEtLjItLjI3YzAtLjE1LjEzLS4yOC4yOC0uMjhoNi43M2MwIC4xNS4wMS4zLjAzLjQ0bC0yLjMyIDEuNHpNMTMgMTRjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMS0zLjg2VjYuNzhsMy40My0zLjIxYy4wNS0uMDUuMTktLjEyLjM0LS4wNC4xMy4wOC4xOC4yNS4xLjM4bC0zLjc0IDYuMjQtLjEzLS4wMXptNi40MiA5Ljc4Yy0uMDUuMDUtLjI0LjE2LS40IDBsLTQuODUtNC44NWMuMDgtLjA5LjE2LS4xOC4yNC0uMjhsMi43OC42OSAyLjI4IDQuMWMuMDYuMTEuMDQuMjUtLjA1LjM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lMTBNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDExLjVoMi41Yy41NSAwIDEtLjQ1IDEtMXYtNGMwLS41NS0uNDUtMS0xLTFIMTNjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxem0uNS00LjVIMTV2M2gtMS41Vjd6TTcuNSAxNGgxdjNIMTB2LTNoMXY0LjVoMS41di01YzAtLjU1LS40NS0xLTEtMUg3Yy0uNTUgMC0xIC40NS0xIDF2NWgxLjVWMTR6TTguNSAxMS41SDEwdi02SDdWN2gxLjV6TTEzLjUgMTguNUgxNVYxN2gyYy41NSAwIDEtLjQ1IDEtMXYtMi41YzAtLjU1LS40NS0xLTEtMWgtMy41djZ6TTE1IDE0aDEuNXYxLjVIMTVWMTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTExTXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMTRoMXYzSDEwdi0zaDF2NC41aDEuNXYtNWMwLS41NS0uNDUtMS0xLTFIN2MtLjU1IDAtMSAuNDUtMSAxdjVoMS41VjE0ek0xMy41IDE4LjVIMTVWMTdoMmMuNTUgMCAxLS40NSAxLTF2LTIuNWMwLS41NS0uNDUtMS0xLTFoLTMuNXY2ek0xNSAxNGgxLjV2MS41SDE1VjE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNSAxMS41SDExdi02SDhWN2gxLjV6TTE0LjUgMTEuNUgxNnYtNmgtM1Y3aDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTEyTXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMTRoMXYzSDEwdi0zaDF2NC41aDEuNXYtNWMwLS41NS0uNDUtMS0xLTFIN2MtLjU1IDAtMSAuNDUtMSAxdjVoMS41VjE0ek0xMy41IDE4LjVIMTVWMTdoMmMuNTUgMCAxLS40NSAxLTF2LTIuNWMwLS41NS0uNDUtMS0xLTFoLTMuNXY2ek0xNSAxNGgxLjV2MS41SDE1VjE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNSAxMS41SDEwdi02SDdWN2gxLjV6TTE2LjUgMTBoLTNWOWgyYy41NSAwIDEtLjQ1IDEtMVY2LjVjMC0uNTUtLjQ1LTEtMS0xSDEyVjdoM3YxaC0yYy0uNTUgMC0xIC40NS0xIDF2Mi41aDQuNVYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTEzTXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgMTEuNUgxMHYtNkg3VjdoMS41ek0xNi41IDEwLjV2LTRjMC0uNTUtLjQ1LTEtMS0xSDEyVjdoM3YxaC0ydjFoMnYxaC0zdjEuNWgzLjVjLjU1IDAgMS0uNDUgMS0xek03LjUgMTRoMXYzSDEwdi0zaDF2NC41aDEuNXYtNWMwLS41NS0uNDUtMS0xLTFIN2MtLjU1IDAtMSAuNDUtMSAxdjVoMS41VjE0ek0xMy41IDE4LjVIMTVWMTdoMmMuNTUgMCAxLS40NSAxLTF2LTIuNWMwLS41NS0uNDUtMS0xLTFoLTMuNXY2ek0xNSAxNGgxLjV2MS41SDE1VjE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUxNE1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDE0aDF2M0gxMHYtM2gxdjQuNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNVYxNHpNMTMuNSAxMi41djZIMTVWMTdoMmMuNTUgMCAxLS40NSAxLTF2LTIuNWMwLS41NS0uNDUtMS0xLTFoLTMuNXptMyAzSDE1VjE0aDEuNXYxLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDExLjVIMTB2LTZIN1Y3aDEuNXpNMTUgMTEuNWgxLjVWMTBoMVY4LjVoLTF2LTNIMTV2M2gtMS41di0zSDEyVjEwaDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUxNU1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDE0aDF2M0gxMHYtM2gxdjQuNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNVYxNHpNMTMuNSAxOC41SDE1VjE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xaC0zLjV2NnpNMTUgMTRoMS41djEuNUgxNVYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgMTEuNUgxMHYtNkg3VjdoMS41ek0xNi41IDEwLjVWOWMwLS41NS0uNDUtMS0xLTFoLTJWN2gzVjUuNUgxMlY5aDN2MWgtM3YxLjVoMy41Yy41NSAwIDEtLjQ1IDEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTE2TXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMTRoMXYzSDEwdi0zaDF2NC41aDEuNXYtNWMwLS41NS0uNDUtMS0xLTFIN2MtLjU1IDAtMSAuNDUtMSAxdjVoMS41VjE0ek0xMy41IDE4LjVIMTVWMTdoMmMuNTUgMCAxLS40NSAxLTF2LTIuNWMwLS41NS0uNDUtMS0xLTFoLTMuNXY2ek0xNSAxNGgxLjV2MS41SDE1VjE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDExLjVoMi41Yy41NSAwIDEtLjQ1IDEtMVY5YzAtLjU1LS40NS0xLTEtMWgtMlY3aDNWNS41SDEzYy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMXptLjUtMi41SDE1djEuNWgtMS41Vjl6TTguNSAxMS41SDEwdi02SDdWN2gxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUxN01wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDE0aDF2M0gxMHYtM2gxdjQuNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNVYxNHpNMTMuNSAxOC41SDE1VjE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xaC0zLjV2NnpNMTUgMTRoMS41djEuNUgxNVYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgMTEuNUgxMHYtNkg3VjdoMS41ek0xMy4yNSAxMS41SDE1bDEuNDYtNC43MWMuMTktLjY0LS4yOS0xLjI5LS45Ni0xLjI5SDEyVjdoMi42MmwtMS4zNyA0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUxOE1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDE0aDF2M0gxMHYtM2gxdjQuNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNVYxNHpNMTMuNSAxOC41SDE1VjE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xaC0zLjV2NnpNMTUgMTRoMS41djEuNUgxNVYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgMTEuNUgxMHYtNkg3VjdoMS41ek0xMyAxMS41aDIuNWMuNTUgMCAxLS40NSAxLTF2LTRjMC0uNTUtLjQ1LTEtMS0xSDEzYy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMXptLjUtNUgxNVY4aC0xLjVWNi41em0wIDIuNUgxNXYxLjVoLTEuNVY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lMTlNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNSAxNGgxdjNIMTB2LTNoMXY0LjVoMS41di01YzAtLjU1LS40NS0xLTEtMUg3Yy0uNTUgMC0xIC40NS0xIDF2NWgxLjVWMTR6TTEzLjUgMTguNUgxNVYxN2gyYy41NSAwIDEtLjQ1IDEtMXYtMi41YzAtLjU1LS40NS0xLTEtMWgtMy41djZ6TTE1IDE0aDEuNXYxLjVIMTVWMTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDExLjVIMTB2LTZIN1Y3aDEuNXpNMTYuNSAxMC41di00YzAtLjU1LS40NS0xLTEtMUgxM2MtLjU1IDAtMSAuNDUtMSAxVjhjMCAuNTUuNDUgMSAxIDFoMnYxaC0zdjEuNWgzLjVjLjU1IDAgMS0uNDUgMS0xek0xNSA4aC0xLjVWNi41SDE1Vjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUyME1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDE0aDF2M0gxMHYtM2gxdjQuNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNVYxNHpNMTMuNSAxMi41djZIMTVWMTdoMmMuNTUgMCAxLS40NSAxLTF2LTIuNWMwLS41NS0uNDUtMS0xLTFoLTMuNXptMyAzSDE1VjE0aDEuNXYxLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTEuNWgyLjVjLjU1IDAgMS0uNDUgMS0xdi00YzAtLjU1LS40NS0xLTEtMUgxNGMtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDF6bS41LTQuNUgxNnYzaC0xLjVWN3pNMTEgMTBIOFY5aDJjLjU1IDAgMS0uNDUgMS0xVjYuNWMwLS41NS0uNDUtMS0xLTFINi41VjdoM3YxaC0yYy0uNTUgMC0xIC40NS0xIDF2Mi41SDExVjEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lMjFNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNSAxMS41SDE2di02aC0zVjdoMS41ek0xMiAxMEg5VjloMmMuNTUgMCAxLS40NSAxLTFWNi41YzAtLjU1LS40NS0xLTEtMUg3LjVWN2gzdjFoLTJjLS41NSAwLTEgLjQ1LTEgMXYyLjVIMTJWMTB6TTcuNSAxNGgxdjNIMTB2LTNoMXY0LjVoMS41di01YzAtLjU1LS40NS0xLTEtMUg3Yy0uNTUgMC0xIC40NS0xIDF2NWgxLjVWMTR6TTE1IDE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xaC0zLjV2NkgxNVYxN3ptMC0zaDEuNXYxLjVIMTVWMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUyMk1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDE0aDF2M0gxMHYtM2gxdjQuNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNVYxNHpNMTMuNSAxMi41djZIMTVWMTdoMmMuNTUgMCAxLS40NSAxLTF2LTIuNWMwLS41NS0uNDUtMS0xLTFoLTMuNXptMyAzSDE1VjE0aDEuNXYxLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTBIOFY5aDJjLjU1IDAgMS0uNDUgMS0xVjYuNWMwLS41NS0uNDUtMS0xLTFINi41VjdoM3YxaC0yYy0uNTUgMC0xIC40NS0xIDF2Mi41SDExVjEwek0xNy41IDEwaC0zVjloMmMuNTUgMCAxLS40NSAxLTFWNi41YzAtLjU1LS40NS0xLTEtMUgxM1Y3aDN2MWgtMmMtLjU1IDAtMSAuNDUtMSAxdjIuNWg0LjVWMTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUyM01wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDE0aDF2M0gxMHYtM2gxdjQuNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNVYxNHpNMTMuNSAxMi41djZIMTVWMTdoMmMuNTUgMCAxLS40NSAxLTF2LTIuNWMwLS41NS0uNDUtMS0xLTFoLTMuNXptMyAzSDE1VjE0aDEuNXYxLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTBIOFY5aDJjLjU1IDAgMS0uNDUgMS0xVjYuNWMwLS41NS0uNDUtMS0xLTFINi41VjdoM3YxaC0yYy0uNTUgMC0xIC40NS0xIDF2Mi41SDExVjEwek0xNy41IDEwLjV2LTRjMC0uNTUtLjQ1LTEtMS0xSDEzVjdoM3YxaC0ydjFoMnYxaC0zdjEuNWgzLjVjLjU1IDAgMS0uNDUgMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lMjRNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNSAxNGgxdjNIMTB2LTNoMXY0LjVoMS41di01YzAtLjU1LS40NS0xLTEtMUg3Yy0uNTUgMC0xIC40NS0xIDF2NWgxLjVWMTR6TTE3IDEyLjVoLTMuNXY2SDE1VjE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xem0tLjUgM0gxNVYxNGgxLjV2MS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDEwSDhWOWgyYy41NSAwIDEtLjQ1IDEtMVY2LjVjMC0uNTUtLjQ1LTEtMS0xSDYuNVY3aDN2MWgtMmMtLjU1IDAtMSAuNDUtMSAxdjIuNUgxMVYxMHpNMTYgMTEuNWgxLjVWMTBoMVY4LjVoLTF2LTNIMTZ2M2gtMS41di0zSDEzVjEwaDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUyTXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMTRoMXYzSDEwdi0zaDF2NC41aDEuNXYtNWMwLS41NS0uNDUtMS0xLTFIN2MtLjU1IDAtMSAuNDUtMSAxdjVoMS41VjE0ek0xMy41IDE4LjVIMTVWMTdoMmMuNTUgMCAxLS40NSAxLTF2LTIuNWMwLS41NS0uNDUtMS0xLTFoLTMuNXY2ek0xNSAxNGgxLjV2MS41SDE1VjE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgMTBoLTNWOWgyYy41NSAwIDEtLjQ1IDEtMVY2LjVjMC0uNTUtLjQ1LTEtMS0xSDEwVjdoM3YxaC0yYy0uNTUgMC0xIC40NS0xIDF2Mi41aDQuNVYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTMwRnBzU2VsZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA0djJoNXYySDV2Mmg0djJINHYyaDVjMS4xIDAgMi0uOSAyLTJ2LTEuNWMwLS44My0uMTctMS41LTEtMS41LjgzIDAgMS0uNjcgMS0xLjVWNmMwLTEuMS0uOS0yLTItMkg0em0xNCAwYzEuMSAwIDIgLjkgMiAydjZjMCAxLjEtLjkgMi0yIDJoLTNjLTEuMSAwLTItLjktMi0yVjZjMC0xLjEuOS0yIDItMmgzem0wIDJoLTN2NmgzVjZ6TTUgMjJIM3YtNWgydjV6bTQgMEg3di01aDJ2NXptNCAwaC0ydi01aDJ2NXptOCAwaC02di01aDZ2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTNNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNSAxNGgxdjNIMTB2LTNoMXY0LjVoMS41di01YzAtLjU1LS40NS0xLTEtMUg3Yy0uNTUgMC0xIC40NS0xIDF2NWgxLjVWMTR6TTEzLjUgMTIuNXY2SDE1VjE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xaC0zLjV6bTMgM0gxNVYxNGgxLjV2MS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgMTAuNXYtNGMwLS41NS0uNDUtMS0xLTFIMTBWN2gzdjFoLTJ2MWgydjFoLTN2MS41aDMuNWMuNTUgMCAxLS40NSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmU0TXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMTRoMXYzSDEwdi0zaDF2NC41aDEuNXYtNWMwLS41NS0uNDUtMS0xLTFIN2MtLjU1IDAtMSAuNDUtMSAxdjVoMS41VjE0ek0xMy41IDE4LjVIMTVWMTdoMmMuNTUgMCAxLS40NSAxLTF2LTIuNWMwLS41NS0uNDUtMS0xLTFoLTMuNXY2ek0xNSAxNGgxLjV2MS41SDE1VjE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjUgMTEuNUgxNFYxMGgxVjguNWgtMXYtM2gtMS41djNIMTF2LTNIOS41VjEwaDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmU1TXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMTRoMXYzSDEwdi0zaDF2NC41aDEuNXYtNWMwLS41NS0uNDUtMS0xLTFIN2MtLjU1IDAtMSAuNDUtMSAxdjVoMS41VjE0ek0xMy41IDE4LjVIMTVWMTdoMmMuNTUgMCAxLS40NSAxLTF2LTIuNWMwLS41NS0uNDUtMS0xLTFoLTMuNXY2ek0xNSAxNGgxLjV2MS41SDE1VjE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgMTAuNVY5YzAtLjU1LS40NS0xLTEtMWgtMlY3aDNWNS41SDEwVjloM3YxaC0zdjEuNWgzLjVjLjU1IDAgMS0uNDUgMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lNjBGcHNTZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA2djZoLTNWNmgzem0wLTJoLTNjLTEuMSAwLTIgLjktMiAydjZjMCAxLjEuOSAyIDIgMmgzYzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bS03IDJWNEg2Yy0xLjEgMC0yIC45LTIgMnY2YzAgMS4xLjkgMiAyIDJoM2MxLjEgMCAyLS45IDItMnYtMmMwLTEuMS0uOS0yLTItMkg2VjZoNXptLTIgNHYySDZ2LTJoM3pNNSAyMkgzdi01aDJ2NXptNCAwSDd2LTVoMnY1em00IDBoLTJ2LTVoMnY1em04IDBoLTZ2LTVoNnY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lNk1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDE0aDF2M0gxMHYtM2gxdjQuNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNVYxNHpNMTMuNSAxOC41SDE1VjE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xaC0zLjV2NnpNMTUgMTRoMS41djEuNUgxNVYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxMS41aDIuNWMuNTUgMCAxLS40NSAxLTFWOWMwLS41NS0uNDUtMS0xLTFoLTJWN2gzVjUuNUgxMWMtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDF6bS41LTIuNUgxM3YxLjVoLTEuNVY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lN01wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDE0aDF2M0gxMHYtM2gxdjQuNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNVYxNHpNMTMuNSAxOC41SDE1VjE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xaC0zLjV2NnpNMTUgMTRoMS41djEuNUgxNVYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4yNSAxMS41SDEzbDEuNDYtNC43MWMuMTktLjY0LS4yOS0xLjI5LS45Ni0xLjI5SDEwVjdoMi42MmwtMS4zNyA0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmU4TXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMTRoMXYzSDEwdi0zaDF2NC41aDEuNXYtNWMwLS41NS0uNDUtMS0xLTFIN2MtLjU1IDAtMSAuNDUtMSAxdjVoMS41VjE0ek0xMy41IDE4LjVIMTVWMTdoMmMuNTUgMCAxLS40NSAxLTF2LTIuNWMwLS41NS0uNDUtMS0xLTFoLTMuNXY2ek0xNSAxNGgxLjV2MS41SDE1VjE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDExLjVoMi41Yy41NSAwIDEtLjQ1IDEtMXYtNGMwLS41NS0uNDUtMS0xLTFIMTFjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxem0uNS01SDEzVjhoLTEuNVY2LjV6bTAgMi41SDEzdjEuNWgtMS41Vjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmU5TXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMTRoMXYzSDEwdi0zaDF2NC41aDEuNXYtNWMwLS41NS0uNDUtMS0xLTFIN2MtLjU1IDAtMSAuNDUtMSAxdjVoMS41VjE0ek0xMy41IDE4LjVIMTVWMTdoMmMuNTUgMCAxLS40NSAxLTF2LTIuNWMwLS41NS0uNDUtMS0xLTFoLTMuNXY2ek0xNSAxNGgxLjV2MS41SDE1VjE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgMTAuNXYtNGMwLS41NS0uNDUtMS0xLTFIMTFjLS41NSAwLTEgLjQ1LTEgMVY4YzAgLjU1LjQ1IDEgMSAxaDJ2MWgtM3YxLjVoMy41Yy41NSAwIDEtLjQ1IDEtMXpNMTMgOGgtMS41VjYuNUgxM1Y4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRkQVBob3RvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNmgtMy4xN0wxNiA0aC02djJoNS4xMmwxLjgzIDJIMjF2MTJINXYtOUgzdjljMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yek04IDE0YzAgMi43NiAyLjI0IDUgNSA1czUtMi4yNCA1LTUtMi4yNC01LTUtNS01IDIuMjQtNSA1em01LTNjMS42NSAwIDMgMS4zNSAzIDNzLTEuMzUgMy0zIDMtMy0xLjM1LTMtMyAxLjM1LTMgMy0zek01IDZoM1Y0SDVWMUgzdjNIMHYyaDN2M2gyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRkUGhvdG9BbHRlcm5hdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDIwSDRWNmg5VjRINGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtOWgtMnY5em0tNy43OS0zLjE3LTEuOTYtMi4zNkw1LjUgMThoMTFsLTMuNTQtNC43MXpNMjAgNFYxaC0ydjNoLTNjLjAxLjAxIDAgMiAwIDJoM3YyLjk5Yy4wMS4wMSAyIDAgMiAwVjZoM1Y0aC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRkVG9QaG90b3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2em0xNi00SDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNEg4VjRoMTJ2MTJ6bS03LTFoMnYtNGg0VjloLTRWNWgtMnY0SDl2Mmg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRqdXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDkgMiAyIDYuNDkgMiAxMnM0LjQ5IDEwIDEwIDEwIDEwLTQuNDkgMTAtMTBTMTcuNTEgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptMy04YzAgMS42Ni0xLjM0IDMtMyAzcy0zLTEuMzQtMy0zIDEuMzQtMyAzLTMgMyAxLjM0IDMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFuaW1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDJjLTIuNzEgMC01LjA1IDEuNTQtNi4yMiAzLjc4YTcuMDYyIDcuMDYyIDAgMCAwLTMgM0E3LjAxNCA3LjAxNCAwIDAgMCAyIDE1YzAgMy44NyAzLjEzIDcgNyA3IDIuNzEgMCA1LjA1LTEuNTQgNi4yMi0zLjc4YTcuMDYyIDcuMDYyIDAgMCAwIDMtM0E3LjAxNCA3LjAxNCAwIDAgMCAyMiA5YzAtMy44Ny0zLjEzLTctNy03ek05IDIwYTUuMDAyIDUuMDAyIDAgMCAxLTQtOGMwIDMuODcgMy4xMyA3IDcgNy0uODQuNjMtMS44OCAxLTMgMXptMy0zYTUuMDAyIDUuMDAyIDAgMCAxLTQtOGMwIDMuODYgMy4xMyA2Ljk5IDcgNy0uODQuNjMtMS44OCAxLTMgMXptNC43LTMuM2MtLjUzLjE5LTEuMS4zLTEuNy4zLTIuNzYgMC01LTIuMjQtNS01IDAtLjYuMTEtMS4xNy4zLTEuNy41My0uMTkgMS4xLS4zIDEuNy0uMyAyLjc2IDAgNSAyLjI0IDUgNSAwIC42LS4xMSAxLjE3LS4zIDEuN3pNMTkgMTJjMC0zLjg2LTMuMTMtNi45OS03LTdhNS4wMDIgNS4wMDIgMCAwIDEgNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXNzaXN0YW50UGhvdG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyLjM2IDYgLjA4LjM5LjMyIDEuNjFIMTh2NmgtMy4zNmwtLjA4LS4zOS0uMzItMS42MUg3VjZoNS4zNk0xNCA0SDV2MTdoMnYtN2g1LjZsLjQgMmg3VjZoLTUuNkwxNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXNzaXN0YW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoNGwzIDMgMy0zaDRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNmgtNC44M2wtLjU5LjU5TDEyIDIwLjE3bC0xLjU5LTEuNTktLjU4LS41OEg1VjRoMTR2MTR6bS03LTEgMS44OC00LjEyTDE4IDExbC00LjEyLTEuODhMMTIgNWwtMS44OCA0LjEyTDYgMTFsNC4xMiAxLjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXVkaW90cmFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgM3YxMC41NWMtLjU5LS4zNC0xLjI3LS41NS0yLS41NS0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTRWN2g0VjNoLTZ6bS0yIDE2Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUF1dG9Bd2Vzb21lTW9zYWljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA1djE0YTIgMiAwIDAgMCAyIDJoNlYzSDVhMiAyIDAgMCAwLTIgMnptNiAxNEg1VjVoNHYxNHpNMTkgM2gtNnY4aDhWNWMwLTEuMS0uOS0yLTItMnptMCA2aC00VjVoNHY0ek0xMyAyMWg2YzEuMSAwIDItLjkgMi0ydi02aC04djh6bTItNmg0djRoLTR2LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBdXRvQXdlc29tZU1vdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDJINGMtMS4xIDAtMiAuOS0yIDJ2MTBoMlY0aDEwVjJ6bTQgNEg4Yy0xLjEgMC0yIC45LTIgMnYxMGgyVjhoMTBWNnptMiA0aC04Yy0xLjEgMC0yIC45LTIgMnY4YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMnYtOGMwLTEuMS0uOS0yLTItMnptMCAxMGgtOHYtOGg4djh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBdXRvQXdlc29tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5IDkgMS4yNS0yLjc1TDIzIDVsLTIuNzUtMS4yNUwxOSAxbC0xLjI1IDIuNzVMMTUgNWwyLjc1IDEuMjV6TTE5IDE1bC0xLjI1IDIuNzVMMTUgMTlsMi43NSAxLjI1TDE5IDIzbDEuMjUtMi43NUwyMyAxOWwtMi43NS0xLjI1ek0xMS41IDkuNSA5IDQgNi41IDkuNSAxIDEybDUuNSAyLjVMOSAyMGwyLjUtNS41TDE3IDEybC01LjUtMi41em0tMS41MSAzLjQ5TDkgMTUuMTdsLS45OS0yLjE4TDUuODMgMTJsMi4xOC0uOTlMOSA4LjgzbC45OSAyLjE4IDIuMTguOTktMi4xOC45OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUF1dG9GaXhIaWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAgNyAuOTQtMi4wNkwyMyA0bC0yLjA2LS45NEwyMCAxbC0uOTQgMi4wNkwxNyA0bDIuMDYuOTR6TTguNSA3bC45NC0yLjA2TDExLjUgNGwtMi4wNi0uOTRMOC41IDFsLS45NCAyLjA2TDUuNSA0bDIuMDYuOTR6TTIwIDEyLjVsLS45NCAyLjA2LTIuMDYuOTQgMi4wNi45NC45NCAyLjA2Ljk0LTIuMDZMMjMgMTUuNWwtMi4wNi0uOTR6TTE3LjcxIDkuMTJsLTIuODMtMi44M2MtLjItLjE5LS40NS0uMjktLjcxLS4yOS0uMjYgMC0uNTEuMS0uNzEuMjlMMi4yOSAxNy40NmEuOTk2Ljk5NiAwIDAgMCAwIDEuNDFsMi44MyAyLjgzYy4yLjIuNDUuMy43MS4zcy41MS0uMS43MS0uMjlsMTEuMTctMTEuMTdjLjM5LS4zOS4zOS0xLjAzIDAtMS40MnptLTMuNTQtLjcgMS40MSAxLjQxTDE0LjQxIDExIDEzIDkuNTlsMS4xNy0xLjE3ek01LjgzIDE5LjU5bC0xLjQxLTEuNDFMMTEuNTkgMTEgMTMgMTIuNDFsLTcuMTcgNy4xOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUF1dG9GaXhOb3JtYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMCA3IC45NC0yLjA2TDIzIDRsLTIuMDYtLjk0TDIwIDFsLS45NCAyLjA2TDE3IDRsMi4wNi45NHpNMTcuNzEgOS4xMmwtMi44My0yLjgzYy0uMi0uMTktLjQ1LS4yOS0uNzEtLjI5LS4yNiAwLS41MS4xLS43MS4yOUwyLjI5IDE3LjQ2YS45OTYuOTk2IDAgMCAwIDAgMS40MWwyLjgzIDIuODNjLjIuMi40NS4zLjcxLjNzLjUxLS4xLjcxLS4yOWwxMS4xNy0xMS4xN2MuMzktLjM5LjM5LTEuMDMgMC0xLjQyem0tMy41NC0uNyAxLjQxIDEuNDFMMTQuNDEgMTEgMTMgOS41OWwxLjE3LTEuMTd6TTUuODMgMTkuNTlsLTEuNDEtMS40MUwxMS41OSAxMSAxMyAxMi40MWwtNy4xNyA3LjE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXV0b0ZpeE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwIDcgLjk0LTIuMDZMMjMgNGwtMi4wNi0uOTRMMjAgMWwtLjk0IDIuMDZMMTcgNGwyLjA2Ljk0ek0xNC4xNyA4LjQybDEuNDEgMS40MS0xLjQ2IDEuNDYgMS40MSAxLjQxIDIuMTctMi4xN2EuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLTIuODMtMi44M2EuOTg0Ljk4NCAwIDAgMC0uNy0uMjljLS4yNiAwLS41MS4xLS43MS4yOWwtMi4xNyAyLjE3IDEuNDEgMS40MSAxLjQ3LTEuNDV6TTEuMzkgNC4yMmw3LjA3IDcuMDctNi4xNyA2LjE3YS45OTYuOTk2IDAgMCAwIDAgMS40MWwyLjgzIDIuODNjLjIuMi40NS4zLjcxLjNzLjUxLS4xLjcxLS4yOWw2LjE3LTYuMTcgNy4wNyA3LjA3IDEuNDEtMS40MUwyLjgxIDIuODEgMS4zOSA0LjIyem05LjkgOS45LTUuNDYgNS40Ni0xLjQxLTEuNDEgNS40Ni01LjQ2IDEuNDEgMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUF1dG9TdG9yaWVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIuNDcgNS4yYy0uNDctLjI0LS45Ni0uNDQtMS40Ny0uNjF2MTIuMDNjLTEuMTQtLjQxLTIuMzEtLjYyLTMuNS0uNjItMS45IDAtMy43OC41NC01LjUgMS41OFY1LjQ4QzEwLjM4IDQuNTUgOC41MSA0IDYuNSA0Yy0xLjc5IDAtMy40OC40NC00Ljk3IDEuMi0uMzMuMTYtLjUzLjUxLS41My44OHYxMi4wOGMwIC41OC40Ny45OSAxIC45OS4xNiAwIC4zMi0uMDQuNDgtLjEyQzMuNjkgMTguNCA1LjA1IDE4IDYuNSAxOGMyLjA3IDAgMy45OC44MiA1LjUgMiAxLjUyLTEuMTggMy40My0yIDUuNS0yIDEuNDUgMCAyLjgxLjQgNC4wMiAxLjA0LjE2LjA4LjMyLjEyLjQ4LjEyLjUyIDAgMS0uNDEgMS0uOTlWNi4wOGMwLS4zNy0uMi0uNzItLjUzLS44OHpNMTAgMTYuNjJDOC44NiAxNi4yMSA3LjY5IDE2IDYuNSAxNnMtMi4zNi4yMS0zLjUuNjJWNi43MUM0LjExIDYuMjQgNS4yOCA2IDYuNSA2YzEuMiAwIDIuMzkuMjUgMy41LjcydjkuOXpNMTkgLjVsLTUgNVYxNWw1LTQuNVYuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUF1dG9mcHNTZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4wMyA2LjNoLS4wNmwtMS4wMiAyLjg5aDIuMXpNMyAxN2gydjVIM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTVjMy4zMSAwIDYtMi42OSA2LTZzLTIuNjktNi02LTYtNiAyLjY5LTYgNiAyLjY5IDYgNiA2em0tLjYzLTEwaDEuMjVsMi42MyA3aC0xLjIxbC0uNjMtMS43OWgtMi44M0w5Ljk2IDEySDguNzRsMi42My03ek03IDE3aDJ2NUg3ek0xMSAxN2gydjVoLTJ6TTE1IDE3aDZ2NWgtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJlZHRpbWVPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjI3IDQuNDljLS4xMy41OS0uMiAxLjE1LS4yNCAxLjcxbDIuMDUgMi4wNWMtLjI3LTIuMDUuMS00LjIyIDEuMjYtNi4yMy0uMTIgMC0uMjMtLjAxLS4zNS0uMDFhOS45IDkuOSAwIDAgMC01LjUgMS42NWwxLjQ2IDEuNDZjLjQyLS4yNC44Ni0uNDYgMS4zMi0uNjN6bS03Ljg4LS4yNyAyLjI3IDIuMjdBOS45MzQgOS45MzQgMCAwIDAgMiAxMmMwIDUuNTIgNC40OCAxMCAxMCAxMCAyLjA0IDAgMy45Mi0uNjMgNS41LTEuNjdsMi4yOCAyLjI4IDEuNDEtMS40MUwyLjgxIDIuODEgMS4zOSA0LjIyem0zLjc0IDMuNzQgMTAuOTIgMTAuOTJDMTQuODQgMTkuNiAxMy40NSAyMCAxMiAyMGMtNC40MSAwLTgtMy41OS04LTggMC0xLjQ4LjQyLTIuODUgMS4xMy00LjA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmVkdGltZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjcgNC40OWMtMS42MyA3LjU0IDMuNzUgMTIuNDEgNy42NiAxMy44QTcuOTkzIDcuOTkzIDAgMCAxIDEyIDIwYy00LjQxIDAtOC0zLjU5LTgtOCAwLTMuNDUgMi4yLTYuNCA1LjI3LTcuNTFtMi43Mi0yLjQ4QzYuNCAyLjAxIDIgNi41NCAyIDEyYzAgNS41MiA0LjQ4IDEwIDEwIDEwIDMuNzEgMCA2LjkzLTIuMDIgOC42Ni01LjAyLTcuNTEtLjI1LTEyLjA5LTguNDMtOC4zMi0xNC45N2gtLjM1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmx1ckNpcmN1bGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA5Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAgNGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xek03IDkuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTMgN2MtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bS0zLTNjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0zLTZjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41ek0xNCA5Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAtMS41Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXptMyA2Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptMC00Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXpNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bTItMy41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptMC0zLjVjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJsdXJMaW5lYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTcuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVzLS42Ny0xLjUtMS41LTEuNS0xLjUuNjctMS41IDEuNS42NyAxLjUgMS41IDEuNXpNOSAxM2MuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wLTRjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXpNMyAyMWgxOHYtMkgzdjJ6TTUgOS41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVM1LjgzIDYuNSA1IDYuNSAzLjUgNy4xNyAzLjUgOCA0LjE3IDkuNSA1IDkuNXptMCA0Yy44MyAwIDEuNS0uNjcgMS41LTEuNXMtLjY3LTEuNS0xLjUtMS41LTEuNS42Ny0xLjUgMS41LjY3IDEuNSAxLjUgMS41ek05IDE3Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTgtLjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41ek0zIDN2MmgxOFYzSDN6bTE0IDUuNWMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6bTAgNGMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6TTEzIDljLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMCA0Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAgNGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmx1ck9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNFwiLFwiY3lcIjpcIjZcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMuOCAxMS40OC4yLjAyYy44MyAwIDEuNS0uNjcgMS41LTEuNXMtLjY3LTEuNS0xLjUtMS41LTEuNS42Ny0xLjUgMS41bC4wMi4yYy4wOS42Ny42MSAxLjE5IDEuMjggMS4yOHpNMTQgMy41Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXptLTQgMGMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMThcIixcImN5XCI6XCIxMFwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE4XCIsXCJjeVwiOlwiNlwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMC41Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMFwiLFwiY3lcIjpcIjZcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxOFwiLFwiY3lcIjpcIjE0XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNlwiLFwiY3lcIjpcIjE4XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDIwLjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em03LTdjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0tMTggMGMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTBcIixcImN5XCI6XCIxOFwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDkuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTcgMTFjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjZcIixcImN5XCI6XCIxNFwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjUgNS4yNyA2IDguNzdsLjI4LjI4TDYgOWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTFjMC0uMS0uMDMtLjE5LS4wNi0uMjhsMi44MSAyLjgxYy0uNzEuMTEtMS4yNS43My0xLjI1IDEuNDcgMCAuODMuNjcgMS41IDEuNSAxLjUuNzQgMCAxLjM2LS41NCAxLjQ3LTEuMjVsMi44MSAyLjgxQS44NzUuODc1IDAgMCAwIDE0IDE3Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMWMwLS4xLS4wMy0uMTktLjA2LS4yOGwzLjc4IDMuNzhoLjAxbDEuNDEtMS40MUwzLjkxIDMuODYgMi41IDUuMjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCbHVyT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDEzYy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAgNGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wLThjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptLTMgLjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41ek02IDVjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMTUgNS41Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXpNMTQgN2MuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wLTMuNWMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6bS0xMSAxMGMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTcgN2MtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTAtMTdjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41ek0xMCA3Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAgNS41Yy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXptOCAuNWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wIDRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMC04Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAtNGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0zIDguNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6TTE0IDE3Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAgMy41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptLTQtMTJjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41em0wIDguNWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem00LTQuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6bTAtNGMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCcmlnaHRuZXNzMSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNGM0LjQxIDAgOCAzLjU5IDggOHMtMy41OSA4LTggOC04LTMuNTktOC04IDMuNTktOCA4LThtMC0yQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnJpZ2h0bmVzczIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDRjNC40MSAwIDggMy41OSA4IDhzLTMuNTkgOC04IDhjLS4zNCAwLS42OC0uMDItMS4wMS0uMDdDMTAuOSAxNy43NyAxMiAxNC45NSAxMiAxMnMtMS4xLTUuNzctMy4wMS03LjkzQzkuMzIgNC4wMiA5LjY2IDQgMTAgNG0wLTJjLTEuODIgMC0zLjUzLjUtNSAxLjM1QzcuOTkgNS4wOCAxMCA4LjMgMTAgMTJzLTIuMDEgNi45Mi01IDguNjVDNi40NyAyMS41IDguMTggMjIgMTAgMjJjNS41MiAwIDEwLTQuNDggMTAtMTBTMTUuNTIgMiAxMCAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnJpZ2h0bmVzczMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjcgNC45MUE4IDggMCAwIDEgMTcgMTJhOCA4IDAgMCAxLTQuMyA3LjA5YzEuNDYtMiAyLjMtNC40NiAyLjMtNy4wOXMtLjg0LTUuMDktMi4zLTcuMDlNOSAyYy0xLjA1IDAtMi4wNS4xNi0zIC40NiA0LjA2IDEuMjcgNyA1LjA2IDcgOS41NHMtMi45NCA4LjI3LTcgOS41NGMuOTUuMyAxLjk1LjQ2IDMgLjQ2IDUuNTIgMCAxMC00LjQ4IDEwLTEwUzE0LjUyIDIgOSAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnJpZ2h0bmVzczQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDguNjlWNGgtNC42OUwxMiAuNjkgOC42OSA0SDR2NC42OUwuNjkgMTIgNCAxNS4zMVYyMGg0LjY5TDEyIDIzLjMxIDE1LjMxIDIwSDIwdi00LjY5TDIzLjMxIDEyIDIwIDguNjl6bS0yIDUuNzlWMThoLTMuNTJMMTIgMjAuNDggOS41MiAxOEg2di0zLjUyTDMuNTIgMTIgNiA5LjUyVjZoMy41MkwxMiAzLjUyIDE0LjQ4IDZIMTh2My41MkwyMC40OCAxMiAxOCAxNC40OHpNMTIuMjkgN2MtLjc0IDAtMS40NS4xNy0yLjA4LjQ2IDEuNzIuNzkgMi45MiAyLjUzIDIuOTIgNC41NHMtMS4yIDMuNzUtMi45MiA0LjU0Yy42My4yOSAxLjM0LjQ2IDIuMDguNDYgMi43NiAwIDUtMi4yNCA1LTVzLTIuMjQtNS01LTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCcmlnaHRuZXNzNSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOC42OVY0aC00LjY5TDEyIC42OSA4LjY5IDRINHY0LjY5TC42OSAxMiA0IDE1LjMxVjIwaDQuNjlMMTIgMjMuMzEgMTUuMzEgMjBIMjB2LTQuNjlMMjMuMzEgMTIgMjAgOC42OXptLTIgNS43OVYxOGgtMy41MkwxMiAyMC40OCA5LjUyIDE4SDZ2LTMuNTJMMy41MiAxMiA2IDkuNTJWNmgzLjUyTDEyIDMuNTIgMTQuNDggNkgxOHYzLjUyTDIwLjQ4IDEyIDE4IDE0LjQ4ek0xMiA2LjVjLTMuMDMgMC01LjUgMi40Ny01LjUgNS41czIuNDcgNS41IDUuNSA1LjUgNS41LTIuNDcgNS41LTUuNS0yLjQ3LTUuNS01LjUtNS41em0wIDljLTEuOTMgMC0zLjUtMS41Ny0zLjUtMy41czEuNTctMy41IDMuNS0zLjUgMy41IDEuNTcgMy41IDMuNS0xLjU3IDMuNS0zLjUgMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnJpZ2h0bmVzczYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDguNjlWNGgtNC42OUwxMiAuNjkgOC42OSA0SDR2NC42OUwuNjkgMTIgNCAxNS4zMVYyMGg0LjY5TDEyIDIzLjMxIDE1LjMxIDIwSDIwdi00LjY5TDIzLjMxIDEyIDIwIDguNjl6bS0yIDUuNzlWMThoLTMuNTJMMTIgMjAuNDggOS41MiAxOEg2di0zLjUyTDMuNTIgMTIgNiA5LjUyVjZoMy41MkwxMiAzLjUyIDE0LjQ4IDZIMTh2My41MkwyMC40OCAxMiAxOCAxNC40OHpNMTIgNi41djExYzMuMDMgMCA1LjUtMi40NyA1LjUtNS41UzE1LjAzIDYuNSAxMiA2LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCcmlnaHRuZXNzNyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOC42OVY0aC00LjY5TDEyIC42OSA4LjY5IDRINHY0LjY5TC42OSAxMiA0IDE1LjMxVjIwaDQuNjlMMTIgMjMuMzEgMTUuMzEgMjBIMjB2LTQuNjlMMjMuMzEgMTIgMjAgOC42OXptLTIgNS43OVYxOGgtMy41MkwxMiAyMC40OCA5LjUyIDE4SDZ2LTMuNTJMMy41MiAxMiA2IDkuNTJWNmgzLjUyTDEyIDMuNTIgMTQuNDggNkgxOHYzLjUyTDIwLjQ4IDEyIDE4IDE0LjQ4ek0xMiA2LjVjLTMuMDMgMC01LjUgMi40Ny01LjUgNS41czIuNDcgNS41IDUuNSA1LjUgNS41LTIuNDcgNS41LTUuNS0yLjQ3LTUuNS01LjUtNS41em0wIDljLTEuOTMgMC0zLjUtMS41Ny0zLjUtMy41czEuNTctMy41IDMuNS0zLjUgMy41IDEuNTcgMy41IDMuNS0xLjU3IDMuNS0zLjUgMy41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJyb2tlbkltYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1di00LjU4bC45OS45OSA0LTQgNCA0IDQtMy45OUwxOSAxMi40M1YxOXptMC05LjQxLTEuMDEtMS4wMS00IDQuMDEtNC00LTQgNC0uOTktMVY1aDE0djQuNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCcnVzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxNmMuNTUgMCAxIC40NSAxIDEgMCAxLjEtLjkgMi0yIDItLjE3IDAtLjMzLS4wMi0uNS0uMDUuMzEtLjU1LjUtMS4yMS41LTEuOTUgMC0uNTUuNDUtMSAxLTFNMTguNjcgM2MtLjI2IDAtLjUxLjEtLjcxLjI5TDkgMTIuMjUgMTEuNzUgMTVsOC45Ni04Ljk2YS45OTYuOTk2IDAgMCAwIDAtMS40MWwtMS4zNC0xLjM0Yy0uMi0uMi0uNDUtLjI5LS43LS4yOXpNNyAxNGMtMS42NiAwLTMgMS4zNC0zIDMgMCAxLjMxLTEuMTYgMi0yIDIgLjkyIDEuMjIgMi40OSAyIDQgMiAyLjIxIDAgNC0xLjc5IDQtNCAwLTEuNjYtMS4zNC0zLTMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJ1cnN0TW9kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgNWgydjE0SDF6bTQgMGgydjE0SDV6bTE3IDBIMTBjLS41NSAwLTEgLjQ1LTEgMXYxMmMwIC41NS40NSAxIDEgMWgxMmMuNTUgMCAxLS40NSAxLTFWNmMwLS41NS0uNDUtMS0xLTF6bS0xIDEySDExVjdoMTB2MTB6bS0zLjU3LTQuMzgtMiAyLjU3TDE0IDEzLjQ3bC0yIDIuNTJoOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbWVyYUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNGgtMy4xN0wxNSAySDlMNy4xNyA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNEg0VjZoNC4wNWwxLjgzLTJoNC4yNGwxLjgzIDJIMjB2MTJ6TTEyIDdjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0wIDhjLTEuNjUgMC0zLTEuMzUtMy0zczEuMzUtMyAzLTMgMyAxLjM1IDMgMy0xLjM1IDMtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FtZXJhRnJvbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMjB2Mmg1djJsMy0zLTMtM3Yyem05IDBoNXYyaC01ek0xMS45OSA4QzEzLjEgOCAxNCA3LjEgMTQgNnMtLjktMi0yLjAxLTJTMTAgNC45IDEwIDZzLjg5IDIgMS45OSAyek0xNyAwSDdDNS45IDAgNSAuOSA1IDJ2MTRjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYyYzAtMS4xLS45LTItMi0yem0wIDE2SDd2LTJoMTB2MnptMC0zLjVjMC0xLjY3LTMuMzMtMi41LTUtMi41cy01IC44My01IDIuNVYyaDEwdjEwLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYW1lcmFSZWFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDIwdjJoNXYybDMtMy0zLTN2MnptOSAwaDV2MmgtNXptMy0yMEg3QzUuOSAwIDUgLjkgNSAydjE0YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWMmMwLTEuMS0uOS0yLTItMnptMCAxNkg3VjJoMTB2MTR6bS01LTljMS4xIDAgMi0uOSAxLjk5LTIgMC0xLjEtLjktMi0yLTJTMTAgMy45IDEwIDVzLjg5IDIgMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FtZXJhUm9sbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgNWMwLTEuMS0uOS0yLTItMmgtMVYyYzAtLjU1LS40NS0xLTEtMUg2Yy0uNTUgMC0xIC40NS0xIDF2MUg0Yy0xLjEgMC0yIC45LTIgMnYxNWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJoOFY1aC04em02IDEzaC04djJINFY1aDNWM2gydjJoM3YyaDh2MTF6TTkgMTVoMnYySDl6bTAtN2gydjJIOXptNCA3aDJ2MmgtMnptMC03aDJ2MmgtMnptNCA3aDJ2MmgtMnptMC03aDJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbWVyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQuMjUgMi4yNi0uMDgtLjA0LS4wMS4wMkMxMy40NiAyLjA5IDEyLjc0IDIgMTIgMiA2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwYzAtNC43NS0zLjMxLTguNzItNy43NS05Ljc0ek0xOS40MSA5aC03Ljk5bDIuNzEtNC43YzIuNC42NiA0LjM1IDIuNDIgNS4yOCA0Ljd6TTEzLjEgNC4wOCAxMC4yNyA5bC0xLjE1IDJMNi40IDYuM0E3Ljk1OCA3Ljk1OCAwIDAgMSAxMiA0Yy4zNyAwIC43NC4wMyAxLjEuMDh6TTUuNyA3LjA5IDguNTQgMTJsMS4xNSAySDQuMjZDNC4xIDEzLjM2IDQgMTIuNjkgNCAxMmMwLTEuODUuNjQtMy41NSAxLjctNC45MXpNNC41OSAxNWg3Ljk4bC0yLjcxIDQuN0E4LjAzMyA4LjAzMyAwIDAgMSA0LjU5IDE1em02LjMxIDQuOTFMMTQuODkgMTNsMi43MiA0LjdBOCA4IDAgMCAxIDEyIDIwYy0uMzggMC0uNzQtLjA0LTEuMS0uMDl6bTcuNC0zLTQtNi45MWg1LjQzYy4xNy42NC4yNyAxLjMxLjI3IDIgMCAxLjg1LS42NCAzLjU1LTEuNyA0LjkxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FzZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDlIMXYxMWMwIDEuMTEuODkgMiAyIDJoMTd2LTJIM1Y5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA1VjNjMC0xLjEtLjktMi0yLTJoLTRjLTEuMSAwLTIgLjktMiAydjJINXYxMWMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVoLTV6bS02LTJoNHYyaC00VjN6bTkgMTNIN1Y3aDE0djl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDZW50ZXJGb2N1c1N0cm9uZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTJjMC0yLjc2LTIuMjQtNS01LTVzLTUgMi4yNC01IDUgMi4yNCA1IDUgNSA1LTIuMjQgNS01em0tNSAzYy0xLjY1IDAtMy0xLjM1LTMtM3MxLjM1LTMgMy0zIDMgMS4zNSAzIDMtMS4zNSAzLTMgM3ptLTcgMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6TTUgNWg0VjNINWMtMS4xIDAtMiAuOS0yIDJ2NGgyVjV6bTE0LTJoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yem0wIDE2aC00djJoNGMxLjEgMCAyLS45IDItMnYtNGgtMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2VudGVyRm9jdXNXZWFrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE1SDN2NGMwIDEuMS45IDIgMiAyaDR2LTJINXYtNHpNNSA1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnY0aDJWNXptNyAzYy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMCA2Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnptNy0xMWgtNHYyaDR2NGgyVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDcgMiAyIDYuNDcgMiAxMnM0LjQ3IDEwIDEwIDEwIDEwLTQuNDcgMTAtMTBTMTcuNTMgMiAxMiAyem0wIDE4Yy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbGxlY3Rpb25zQm9va21hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2em0xNi00SDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTMgMnY1bC0xLS43NUwxNSA5VjRoMnptMyAxMkg4VjRoNXY5bDMtMi4yNUwxOSAxM1Y0aDF2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb2xsZWN0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNHYxMkg4VjRoMTJtMC0ySDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTguNSA5LjY3IDEuNjkgMi4yNiAyLjQ4LTMuMUwxOSAxNUg5ek0yIDZ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZIMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbG9yTGVucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIyQzYuNDkgMjIgMiAxNy41MSAyIDEyUzYuNDkgMiAxMiAyczEwIDQuMDQgMTAgOWMwIDMuMzEtMi42OSA2LTYgNmgtMS43N2MtLjI4IDAtLjUuMjItLjUuNSAwIC4xMi4wNS4yMy4xMy4zMy40MS40Ny42NCAxLjA2LjY0IDEuNjdBMi41IDIuNSAwIDAgMSAxMiAyMnptMC0xOGMtNC40MSAwLTggMy41OS04IDhzMy41OSA4IDggOGMuMjggMCAuNS0uMjIuNS0uNWEuNTQuNTQgMCAwIDAtLjE0LS4zNWMtLjQxLS40Ni0uNjMtMS4wNS0uNjMtMS42NWEyLjUgMi41IDAgMCAxIDIuNS0yLjVIMTZjMi4yMSAwIDQtMS43OSA0LTQgMC0zLjg2LTMuNTktNy04LTd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNi41XCIsXCJjeVwiOlwiMTEuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOS41XCIsXCJjeVwiOlwiNy41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNC41XCIsXCJjeVwiOlwiNy41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNy41XCIsXCJjeVwiOlwiMTEuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb2xvcml6ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcuNjYgNS40MS45Mi45Mi0yLjY5IDIuNjktLjkyLS45MiAyLjY5LTIuNjlNMTcuNjcgM2MtLjI2IDAtLjUxLjEtLjcxLjI5bC0zLjEyIDMuMTItMS45My0xLjkxLTEuNDEgMS40MSAxLjQyIDEuNDJMMyAxNi4yNVYyMWg0Ljc1bDguOTItOC45MiAxLjQyIDEuNDIgMS40MS0xLjQxLTEuOTItMS45MiAzLjEyLTMuMTJjLjQtLjQuNC0xLjAzLjAxLTEuNDJsLTIuMzQtMi4zNGMtLjItLjE5LS40NS0uMjktLjctLjI5ek02LjkyIDE5IDUgMTcuMDhsOC4wNi04LjA2IDEuOTIgMS45Mkw2LjkyIDE5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29tcGFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDV2MmgyVjFoLTJ2MnptMCAxNUg1bDUtNnY2em05LTE1aC01djJoNXYxM2wtNS02djloNWMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29udHJhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyMmM1LjUyIDAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMHptMS0xNy45M2MzLjk0LjQ5IDcgMy44NSA3IDcuOTNzLTMuMDUgNy40NC03IDcuOTNWNC4wN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbnRyb2xQb2ludER1cGxpY2F0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOGgtMnYzaC0zdjJoM3YzaDJ2LTNoM3YtMmgtM1Y4ek0yIDEyYzAtMi43OSAxLjY0LTUuMiA0LjAxLTYuMzJWMy41MkMyLjUyIDQuNzYgMCA4LjA5IDAgMTJzMi41MiA3LjI0IDYuMDEgOC40OHYtMi4xNkE2Ljk5IDYuOTkgMCAwIDEgMiAxMnptMTMtOWMtNC45NiAwLTkgNC4wNC05IDlzNC4wNCA5IDkgOSA5LTQuMDQgOS05LTQuMDQtOS05LTl6bTAgMTZjLTMuODYgMC03LTMuMTQtNy03czMuMTQtNyA3LTcgNyAzLjE0IDcgNy0zLjE0IDctNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29udHJvbFBvaW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA3aC0ydjRIN3YyaDR2NGgydi00aDR2LTJoLTRWN3ptLTEtNUM2LjQ5IDIgMiA2LjQ5IDIgMTJzNC40OSAxMCAxMCAxMCAxMC00LjQ5IDEwLTEwUzE3LjUxIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDcm9wMTY5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgN0g1Yy0xLjEgMC0yIC45LTIgMnY2YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWOWMwLTEuMS0uOS0yLTItMnptMCA4SDVWOWgxNHY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ3JvcDMyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNkg1Yy0xLjEgMC0yIC45LTIgMnY4YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptMCAxMEg1VjhoMTR2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNyb3A1NCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDRINWMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE0SDVWNmgxNHYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNyb3A3NSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDVINWMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDEySDVWN2gxNHYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNyb3BEaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDcm9wRnJlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ3JvcExhbmRzY2FwZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNUg1Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bTAgMTJINVY3aDE0djEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ3JvcE9yaWdpbmFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6bS01LjA0LTYuNzEtMi43NSAzLjU0LTEuOTYtMi4zNkw2LjUgMTdoMTFsLTMuNTQtNC43MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNyb3BQb3J0cmFpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgM0g3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1Y1aDEwdjE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ3JvcFJvdGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy40NyAyMS40OUM0LjIgMTkuOTMgMS44NiAxNi43NiAxLjUgMTNIMGMuNTEgNi4xNiA1LjY2IDExIDExLjk1IDExIC4yMyAwIC40NC0uMDIuNjYtLjAzTDguOCAyMC4xNWwtMS4zMyAxLjM0ek0xMi4wNSAwYy0uMjMgMC0uNDQuMDItLjY2LjA0bDMuODEgMy44MSAxLjMzLTEuMzNDMTkuOCA0LjA3IDIyLjE0IDcuMjQgMjIuNSAxMUgyNGMtLjUxLTYuMTYtNS42Ni0xMS0xMS45NS0xMXpNMTYgMTRoMlY4YTIgMiAwIDAgMC0yLTJoLTZ2Mmg2djZ6bS04IDJWNEg2djJINHYyaDJ2OGEyIDIgMCAwIDAgMiAyaDh2Mmgydi0yaDJ2LTJIOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNyb3BTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDRINmMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE0SDZWNmgxMnYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNyb3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDE1aDJWN2MwLTEuMS0uOS0yLTItMkg5djJoOHY4ek03IDE3VjFINXY0SDF2Mmg0djEwYzAgMS4xLjkgMiAyIDJoMTB2NGgydi00aDR2LTJIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUN1cnJlbmN5Qml0Y29pbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjA2IDExLjU3Yy41OS0uNjkuOTQtMS41OS45NC0yLjU3IDAtMS44Ni0xLjI3LTMuNDMtMy0zLjg3VjNoLTJ2MmgtMlYzSDl2Mkg2djJoMnYxMEg2djJoM3YyaDJ2LTJoMnYyaDJ2LTJjMi4yMSAwIDQtMS43OSA0LTQgMC0xLjQ1LS43OC0yLjczLTEuOTQtMy40M3pNMTAgN2g0YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMmgtNFY3em01IDEwaC01di00aDVjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ3VycmVuY3lGcmFuYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDVWM0g3djEzSDV2MmgydjNoMnYtM2g0di0ySDl2LTNoOHYtMkg5VjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDdXJyZW5jeUxpcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDguNzZWM2gydjQuNTFMMTUgNXYyLjM2bC00IDIuNTEuMDEgMi4zNUwxNSA5LjcydjIuMzZsLTQgMi41MVYxOWMyLjc2IDAgNS0yLjI0IDUtNWgyYzAgMy44Ny0zLjEzIDctNyA3SDl2LTUuMTZsLTMgMS44OHYtMi4zNmwzLTEuODh2LTIuMzZMNiAxM3YtMi4zNmwzLTEuODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDdXJyZW5jeVBvdW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMjFjMS45MyAwIDMuNjItMS4xNyA0LTNsLTEuNzUtLjg4QzE2IDE4LjIxIDE1LjMzIDE5IDE0IDE5SDkuMWMuODMtMSAxLjUtMi4zNCAxLjUtNCAwLS4zNS0uMDMtLjY5LS4wOC0xSDE0di0ySDkuODJDOSAxMC40MiA4IDkuNiA4IDhhMy41IDMuNSAwIDAgMSA2Ljc4LTEuMjJMMTYuNjMgNmMtLjgtMi4wNS0yLjc5LTMuNS01LjEzLTMuNUM4LjQ2IDIuNSA2IDQuOTYgNiA4YzAgMS43OC43OSAyLjkgMS40OSA0SDZ2MmgyLjQ3Yy4wOC4zMS4xMy42NC4xMyAxIDAgMi43LTIuNiA0LTIuNiA0djJoOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUN1cnJlbmN5UnVibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy41IDNIN3Y5SDV2MmgydjJINXYyaDJ2M2gydi0zaDR2LTJIOXYtMmg0LjVjMy4wNCAwIDUuNS0yLjQ2IDUuNS01LjVTMTYuNTQgMyAxMy41IDN6bTAgOUg5VjVoNC41QzE1LjQzIDUgMTcgNi41NyAxNyA4LjVTMTUuNDMgMTIgMTMuNSAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUN1cnJlbmN5UnVwZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy42NiA3Yy0uNTYtMS4xOC0xLjc2LTItMy4xNi0ySDZWM2gxMnYyaC0zLjI2Yy40OC41OC44NCAxLjI2IDEuMDUgMkgxOHYyaC0yLjAyYy0uMjUgMi44LTIuNjEgNS01LjQ4IDVoLS43M2w2LjczIDdoLTIuNzdMNyAxNHYtMmgzLjVjMS43NiAwIDMuMjItMS4zIDMuNDYtM0g2VjdoNy42NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUN1cnJlbmN5WWVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuOTIgMTFIMTh2MmgtNXYyaDV2MmgtNXY0aC0ydi00SDZ2LTJoNXYtMkg2di0yaDQuMDhMNSAzaDIuMzdMMTIgMTAuMjkgMTYuNjMgM0gxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUN1cnJlbmN5WXVhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjI4IDEySDE4djJoLTV2N2gtMnYtN0g2di0yaDQuNzJMNSAzaDIuMzdMMTIgMTAuMjkgMTYuNjMgM0gxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURlYmx1ciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNlwiLFwiY3lcIjpcIjE0XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNlwiLFwiY3lcIjpcIjE4XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNlwiLFwiY3lcIjpcIjEwXCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiM1wiLFwiY3lcIjpcIjEwXCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjZcIixcImN5XCI6XCI2XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiM1wiLFwiY3lcIjpcIjE0XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEwXCIsXCJjeVwiOlwiMjFcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTBcIixcImN5XCI6XCIzXCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEwXCIsXCJjeVwiOlwiNlwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEwXCIsXCJjeVwiOlwiMTRcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEwXCIsXCJjeVwiOlwiMTBcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEwXCIsXCJjeVwiOlwiMThcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgM3YyYzMuODYgMCA3IDMuMTQgNyA3cy0zLjE0IDctNyA3djJjNC45NiAwIDktNC4wNCA5LTlzLTQuMDQtOS05LTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEZWhhemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTZ2MmgyMHYtMkgyem0wLTV2MmgyMHYtMkgyem0wLTV2MmgyMFY2SDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEZXRhaWxzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMyAyIDIxaDIwTDEyIDN6bTEgNS45MkwxOC42IDE5SDEzVjguOTJ6bS0yIDBWMTlINS40TDExIDguOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaXJ0eUxlbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA1aC0zLjE3TDE1IDNIOUw3LjE3IDVINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDE0aC03LjAyYy0uMjItLjg0LS41Mi0xLjc2LS4xMy0yLjMzLjgxLTEuMTIgMi42NyAxLjc3IDMuODEtLjA5Ljc3LTEuNTctMS41OC0xLjI5LTEuNjQtMi4xMi0uMDUtLjg0IDMuNjguMTcgMy4wNC0xLjY2LS42MS0xLjczLTIuNDIuNDgtMi43Ni0uNTMtLjU4LTEuNzQgNC43LTEuNjggMi44NS00LjAxLTEuNzYtMi4yMi0yLjQ3IDIuODUtNC40MSAyLjMzLTEuMzQtLjM2LTEuMDEtMi44OC0yLjY1LTIuNDQtMS44OC41MSAxLjAzIDIuMiAwIDIuODYtLjk2LjYzLTEuNzItLjkyLTIuNTEtMS4xOS0uMi0uMDctLjY5LS4wNS0uOTEuMTktLjc4Ljg2LjI4IDEuMTYuMjUgMS45MS0uMDIuNzUtMS41OS40OS0xLjUxIDEuNDkuMTIgMS42IDIuMTguNDUgMi40IDEuMjQuNTUgMS45OC0xLjg5IDIuMTUtLjUgMy4yNyAxLjUzLjcxIDEuOTEtMS45NCAyLjgtMS4zNS41OC4zOC4zIDEuNDUuMTYgMi40M0g0VjdoNC4wNWwxLjgzLTJoNC4yNGwxLjgzIDJIMjB2MTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjI4IDE3LjE1YzAgLjQ4LjM5Ljg2Ljg2Ljg2LjQ4IDAgLjg2LS4zOC44Ni0uODZzLS4zOS0uODYtLjg2LS44NmMtLjQ4IDAtLjg2LjM4LS44Ni44NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVkaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0LjA2IDkuMDIuOTIuOTJMNS45MiAxOUg1di0uOTJsOS4wNi05LjA2TTE3LjY2IDNjLS4yNSAwLS41MS4xLS43LjI5bC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M2EuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLTIuMzQtMi4zNGMtLjItLjItLjQ1LS4yOS0uNzEtLjI5em0tMy42IDMuMTlMMyAxNy4yNVYyMWgzLjc1TDE3LjgxIDkuOTRsLTMuNzUtMy43NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUV1cm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxOC41QTYuNDggNi40OCAwIDAgMSA5LjI0IDE1SDE1bDEtMkg4LjU4Yy0uMDUtLjMzLS4wOC0uNjYtLjA4LTFzLjAzLS42Ny4wOC0xSDE1bDEtMkg5LjI0QTYuNDkxIDYuNDkxIDAgMCAxIDE1IDUuNWMxLjYxIDAgMy4wOS41OSA0LjIzIDEuNTdMMjEgNS4zQTguOTU1IDguOTU1IDAgMCAwIDE1IDNjLTMuOTIgMC03LjI0IDIuNTEtOC40OCA2SDNsLTEgMmg0LjA2YTguMjYyIDguMjYyIDAgMCAwIDAgMkgzbC0xIDJoNC41MmMxLjI0IDMuNDkgNC41NiA2IDguNDggNiAyLjMxIDAgNC40MS0uODcgNi0yLjNsLTEuNzgtMS43N2MtMS4xMy45OC0yLjYgMS41Ny00LjIyIDEuNTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFeHBvc3VyZU5lZzEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTF2Mmg4di0ySDR6bTE1IDdoLTJWNy4zOEwxNCA4LjRWNi43TDE4LjcgNWguM3YxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUV4cG9zdXJlTmVnMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUuMDUgMTYuMjkgMi44Ni0zLjA3Yy4zOC0uMzkuNzItLjc5IDEuMDQtMS4xOC4zMi0uMzkuNTktLjc4LjgyLTEuMTdzLjQxLS43OC41NC0xLjE3LjE5LS43OS4xOS0xLjE4YzAtLjUzLS4wOS0xLjAyLS4yNy0xLjQ2cy0uNDQtLjgxLS43OC0xLjExYy0uMzQtLjMxLS43Ny0uNTQtMS4yNi0uNzFBNS43MiA1LjcyIDAgMCAwIDE2LjQ3IDVjLS42OSAwLTEuMzEuMTEtMS44NS4zMi0uNTQuMjEtMSAuNTEtMS4zNi44OC0uMzcuMzctLjY1LjgtLjg0IDEuMy0uMTguNDctLjI3Ljk3LS4yOCAxLjVoMi4xNGMuMDEtLjMxLjA1LS42LjEzLS44Ny4wOS0uMjkuMjMtLjU0LjQtLjc1LjE4LS4yMS40MS0uMzcuNjgtLjQ5cy42LS4xOC45Ni0uMThjLjMxIDAgLjU4LjA1LjgxLjE1cy40My4yNS41OS40My4yOC40LjM3LjY1Yy4wOC4yNS4xMy41Mi4xMy44MSAwIC4yMi0uMDMuNDMtLjA4LjY1LS4wNi4yMi0uMTUuNDUtLjI5LjctLjE0LjI1LS4zMi41My0uNTYuODMtLjIzLjMtLjUyLjY1LS44OCAxLjAzbC00LjE3IDQuNTVWMThIMjF2LTEuNzFoLTUuOTV6TTIgMTF2Mmg4di0ySDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFeHBvc3VyZVBsdXMxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA3SDh2NEg0djJoNHY0aDJ2LTRoNHYtMmgtNFY3em0xMCAxMWgtMlY3LjM4TDE1IDguNFY2LjdMMTkuNyA1aC4zdjEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRXhwb3N1cmVQbHVzMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYuMDUgMTYuMjkgMi44Ni0zLjA3Yy4zOC0uMzkuNzItLjc5IDEuMDQtMS4xOC4zMi0uMzkuNTktLjc4LjgyLTEuMTdzLjQxLS43OC41NC0xLjE3Yy4xMy0uMzkuMTktLjc5LjE5LTEuMTggMC0uNTMtLjA5LTEuMDItLjI3LTEuNDZzLS40NC0uODEtLjc4LTEuMTFjLS4zNC0uMzEtLjc3LS41NC0xLjI2LS43MUE1LjcyIDUuNzIgMCAwIDAgMTcuNDcgNWMtLjY5IDAtMS4zMS4xMS0xLjg1LjMyLS41NC4yMS0xIC41MS0xLjM2Ljg4LS4zNy4zNy0uNjUuOC0uODQgMS4zLS4xOC40Ny0uMjcuOTctLjI4IDEuNWgyLjE0Yy4wMS0uMzEuMDUtLjYuMTMtLjg3LjA5LS4yOS4yMy0uNTQuNC0uNzUuMTgtLjIxLjQxLS4zNy42OC0uNDlzLjYtLjE4Ljk2LS4xOGMuMzEgMCAuNTguMDUuODEuMTVzLjQzLjI1LjU5LjQzLjI4LjQuMzcuNjVjLjA4LjI1LjEzLjUyLjEzLjgxIDAgLjIyLS4wMy40My0uMDguNjUtLjA2LjIyLS4xNS40NS0uMjkuNy0uMTQuMjUtLjMyLjUzLS41Ni44My0uMjMuMy0uNTIuNjUtLjg4IDEuMDNsLTQuMTcgNC41NVYxOEgyMnYtMS43MWgtNS45NXpNOCA3SDZ2NEgydjJoNHY0aDJ2LTRoNHYtMkg4Vjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFeHBvc3VyZVplcm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjE0IDEyLjVjMCAxLS4xIDEuODUtLjMgMi41NXMtLjQ4IDEuMjctLjgzIDEuN2MtLjM2LjQ0LS43OS43NS0xLjMuOTVzLTEuMDcuMy0xLjcuM2MtLjYyIDAtMS4xOC0uMS0xLjY5LS4zLS41MS0uMi0uOTUtLjUxLTEuMzEtLjk1cy0uNjUtMS4wMS0uODUtMS43Yy0uMi0uNy0uMy0xLjU1LS4zLTIuNTV2LTIuMDRjMC0xIC4xLTEuODUuMy0yLjU1LjItLjcuNDgtMS4yNi44NC0xLjY5LjM2LS40My44LS43NCAxLjMxLS45M0MxMC44MSA1LjEgMTEuMzggNSAxMiA1Yy42MyAwIDEuMTkuMSAxLjcuMjkuNTEuMTkuOTUuNSAxLjMxLjkzLjM2LjQzLjY0Ljk5Ljg0IDEuNjkuMi43LjMgMS41NC4zIDIuNTV2Mi4wNGgtLjAxem0tMi4xMS0yLjM2YzAtLjY0LS4wNS0xLjE4LS4xMy0xLjYyLS4wOS0uNDQtLjIyLS43OS0uNC0xLjA2LS4xNy0uMjctLjM5LS40Ni0uNjQtLjU4LS4yNS0uMTMtLjU0LS4xOS0uODYtLjE5cy0uNjEuMDYtLjg2LjE4LS40Ny4zMS0uNjQuNTgtLjMxLjYyLS40IDEuMDYtLjEzLjk4LS4xMyAxLjYydjIuNjdjMCAuNjQuMDUgMS4xOC4xNCAxLjYyLjA5LjQ1LjIzLjgxLjQgMS4wOXMuMzkuNDguNjQuNjEuNTQuMTkuODcuMTkuNjItLjA2Ljg3LS4xOS40Ni0uMzMuNjMtLjYxLjMtLjY0LjM5LTEuMDkuMTMtLjk5LjEzLTEuNjJ2LTIuNjZoLS4wMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUV4cG9zdXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS0xLjQxIDJMNSAxNy41OVY1aDEyLjU5ek02LjQxIDE5IDE5IDYuNDFWMTlINi40MXpNNiA3aDV2MS41SDZ6bTEwIDUuNWgtMS41djJoLTJWMTZoMnYySDE2di0yaDJ2LTEuNWgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZhY2VSZXRvdWNoaW5nTmF0dXJhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5Ljg5IDEwLjc1Yy4wNy40MS4xMS44Mi4xMSAxLjI1IDAgNC40MS0zLjU5IDgtOCA4cy04LTMuNTktOC04YzAtLjA1LjAxLS4xIDAtLjE0IDIuNi0uOTggNC42OS0yLjk5IDUuNzQtNS41NSAzLjM4IDQuMTQgNy45NyAzLjczIDguOTkgMy42MWwtLjg5LTEuOTNjLS4xMy4wMS00LjYyLjM4LTcuMTgtMy44NiAxLjAxLS4xNiAxLjcxLS4xNSAyLjU5LS4wMSAyLjUyLTEuMTUgMS45My0uODkgMi43Ni0xLjI2QTkuNjIgOS42MiAwIDAgMCAxMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBjMC0xLjQzLS4zLTIuNzgtLjg0LTQuMDFsLTEuMjcgMi43NnpNOC4wOCA1LjAzYTguMDQ2IDguMDQ2IDAgMCAxLTMuNjYgNC40NCA4LjA0NiA4LjA0NiAwIDAgMSAzLjY2LTQuNDR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjlcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMyA0LjUtMi40LTEuMUwxOS41IDFsLTEuMSAyLjRMMTYgNC41bDIuNCAxLjFMMTkuNSA4bDEuMS0yLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGYWNlUmV0b3VjaGluZ09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxLjI1XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjUgMTBjLjc1IDAgMS40Ny0uMDkgMi4xNy0uMjQuMjEuNzEuMzMgMS40Ni4zMyAyLjI0IDAgMS4yMi0uMjggMi4zNy0uNzcgMy40bDEuNDkgMS40OUE5Ljk4MSA5Ljk4MSAwIDAgMCAyMiAxMmMwLTUuNTItNC40OC0xMC0xMC0xMC0xLjc4IDAtMy40NC40Ny00Ljg5IDEuMjhsNS4zMyA1LjMzYzEuNDkuODggMy4yMSAxLjM5IDUuMDYgMS4zOXptLTYuODQtNS44OGMuNDMtLjA3Ljg4LS4xMiAxLjM0LS4xMiAyLjkgMCA1LjQ0IDEuNTYgNi44NCAzLjg4LS40My4wNy0uODguMTItMS4zNC4xMi0yLjkgMC01LjQ0LTEuNTYtNi44NC0zLjg4ek0xLjg5IDMuNzJsMi4xOSAyLjE5QTkuOTU4IDkuOTU4IDAgMCAwIDIgMTJjMCA1LjUyIDQuNDggMTAgMTAgMTAgMi4yOSAwIDQuNC0uNzggNi4wOS0yLjA4bDIuMTkgMi4xOSAxLjQxLTEuNDFMMy4zMSAyLjMxIDEuODkgMy43MnptMTQuNzcgMTQuNzdBNy45MSA3LjkxIDAgMCAxIDEyIDIwYy00LjQxIDAtOC0zLjU5LTgtOCAwLS4wNS4wMS0uMSAwLS4xNGE5Ljk0NiA5Ljk0NiAwIDAgMCAzLjY0LTIuMzlsOS4wMiA5LjAyek02LjIzIDguMDZjLS41My41NS0xLjE0IDEuMDMtMS44MSAxLjQxLjI2LS43Ny42My0xLjQ4IDEuMDktMi4xM2wuNzIuNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWx0ZXIxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTEgMTBoMlY1aC00djJoMnY4em03LTE0SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWx0ZXIyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0em0tNC00aC00di0yaDJhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLTR2Mmg0djJoLTJhMiAyIDAgMCAwLTIgMnY0aDZ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWx0ZXIzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxSDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6TTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xNCA4di0xLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41LjgzIDAgMS41LS42NyAxLjUtMS41VjdhMiAyIDAgMCAwLTItMmgtNHYyaDR2MmgtMnYyaDJ2MmgtNHYyaDRhMiAyIDAgMCAwIDItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbHRlcjQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xMiAxMGgyVjVoLTJ2NGgtMlY1aC0ydjZoNHY0em02LTE0SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWx0ZXI1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMUg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0ek0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTQgOHYtMmEyIDIgMCAwIDAtMi0yaC0yVjdoNFY1aC02djZoNHYyaC00djJoNGEyIDIgMCAwIDAgMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmlsdGVyNiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTE4LTRIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE2SDdWM2gxNHYxNHptLTgtMmgyYTIgMiAwIDAgMCAyLTJ2LTJhMiAyIDAgMCAwLTItMmgtMlY3aDRWNWgtNGEyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMnptMC00aDJ2MmgtMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbHRlcjcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6bS04LTIgNC04VjVoLTZ2Mmg0bC00IDhoMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbHRlcjggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6bS04LTJoMmEyIDIgMCAwIDAgMi0ydi0xLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41LjgzIDAgMS41LS42NyAxLjUtMS41VjdhMiAyIDAgMCAwLTItMmgtMmEyIDIgMCAwIDAtMiAydjEuNWMwIC44My42NyAxLjUgMS41IDEuNS0uODMgMC0xLjUuNjctMS41IDEuNVYxM2EyIDIgMCAwIDAgMiAyem0wLThoMnYyaC0yVjd6bTAgNGgydjJoLTJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWx0ZXI5UGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTExIDdWOGEyIDIgMCAwIDAtMi0yaC0xYTIgMiAwIDAgMC0yIDJ2MWEyIDIgMCAwIDAgMiAyaDF2MUg5djJoM2EyIDIgMCAwIDAgMi0yem0tMy0zVjhoMXYxaC0xem0xMC04SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCA4aC0yVjdoLTJ2MmgtMnYyaDJ2Mmgydi0yaDJ2Nkg3VjNoMTR2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbHRlcjkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6TTE1IDVoLTJhMiAyIDAgMCAwLTIgMnYyYTIgMiAwIDAgMCAyIDJoMnYyaC00djJoNGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMnptMCA0aC0yVjdoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmlsdGVyQkFuZFcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2LTctOHY4SDVsNy04VjVoN3YxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbHRlckNlbnRlckZvY3VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE1SDN2NGMwIDEuMS45IDIgMiAyaDR2LTJINXYtNHpNNSA1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnY0aDJWNXptMTQtMmgtNHYyaDR2NGgyVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6TTEyIDljLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmlsdGVyRHJhbWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjM1IDEwLjA0QTcuNDkgNy40OSAwIDAgMCAxMiA0YTcuNDggNy40OCAwIDAgMC02LjY0IDQuMDRBNS45OTYgNS45OTYgMCAwIDAgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NnpNMTkgMThINmMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNCA0IDEuNzkgNCA0aDJjMC0yLjc2LTEuODYtNS4wOC00LjQtNS43OEM4LjYxIDYuODggMTAuMiA2IDEyIDZjMy4wMyAwIDUuNSAyLjQ3IDUuNSA1LjV2LjVIMTljMS42NSAwIDMgMS4zNSAzIDNzLTEuMzUgMy0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWx0ZXJGcmFtZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0aC00bC00LTQtNCA0SDRjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNkg0VjZoNC41MmwzLjUyLTMuNUwxNS41MiA2SDIwdjE0ek02IDE4aDEyVjhINnYxMHptMi04aDh2Nkg4di02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmlsdGVySGRyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNCA2LTQuMjIgNS42MyAxLjI1IDEuNjdMMTQgOS4zMyAxOSAxNmgtOC40NmwtNC4wMS01LjM3TDEgMThoMjJMMTQgNnpNNSAxNmwxLjUyLTIuMDNMOC4wNCAxNkg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmlsdGVyTm9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTE4LTRIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE2SDdWM2gxNHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbHRlclRpbHRTaGlmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNC4wN1YyLjA1Yy0yLjAxLjItMy44NCAxLTUuMzIgMi4yMUw3LjEgNS42OUE3Ljk0MSA3Ljk0MSAwIDAgMSAxMSA0LjA3em03LjMyLjE5QTkuOTQ5IDkuOTQ5IDAgMCAwIDEzIDIuMDV2Mi4wMmMxLjQ2LjE4IDIuNzkuNzYgMy45IDEuNjJsMS40Mi0xLjQzek0xOS45MyAxMWgyLjAyYy0uMi0yLjAxLTEtMy44NC0yLjIxLTUuMzJMMTguMzEgNy4xYTcuOTQxIDcuOTQxIDAgMCAxIDEuNjIgMy45ek01LjY5IDcuMSA0LjI2IDUuNjhBOS45NDkgOS45NDkgMCAwIDAgMi4wNSAxMWgyLjAyYy4xOC0xLjQ2Ljc2LTIuNzkgMS42Mi0zLjl6TTQuMDcgMTNIMi4wNWMuMiAyLjAxIDEgMy44NCAyLjIxIDUuMzJsMS40My0xLjQzQTcuODY4IDcuODY4IDAgMCAxIDQuMDcgMTN6TTE1IDEyYzAtMS42Ni0xLjM0LTMtMy0zcy0zIDEuMzQtMyAzIDEuMzQgMyAzIDMgMy0xLjM0IDMtM3ptMy4zMSA0LjkgMS40MyAxLjQzYTkuOTgxIDkuOTgxIDAgMCAwIDIuMjEtNS4zMmgtMi4wMmE3Ljk0NSA3Ljk0NSAwIDAgMS0xLjYyIDMuODl6TTEzIDE5LjkzdjIuMDJjMi4wMS0uMiAzLjg0LTEgNS4zMi0yLjIxbC0xLjQzLTEuNDNjLTEuMS44Ni0yLjQzIDEuNDQtMy44OSAxLjYyem0tNy4zMi0uMTlBOS45ODEgOS45ODEgMCAwIDAgMTEgMjEuOTV2LTIuMDJhNy45NDEgNy45NDEgMCAwIDEtMy45LTEuNjJsLTEuNDIgMS40M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbHRlclZpbnRhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjcgMTIuNGE2LjA2IDYuMDYgMCAwIDAtLjg2LS40Yy4yOS0uMTEuNTgtLjI0Ljg2LS40YTYuMDEyIDYuMDEyIDAgMCAwIDMtNS4xOWMtLjkxLS41Mi0xLjk1LS44LTMuMDEtLjgtMS4wMiAwLTIuMDUuMjYtMi45OS44LS4yOC4xNi0uNTQuMzUtLjc4LjU0LjA1LS4zMS4wOC0uNjMuMDgtLjk1IDAtMi4yMi0xLjIxLTQuMTUtMy01LjE5QzEwLjIxIDEuODUgOSAzLjc4IDkgNmMwIC4zMi4wMy42NC4wOC45NS0uMjQtLjItLjUtLjM5LS43OC0uNTUtLjk0LS41NC0xLjk3LS44LTIuOTktLjgtMS4wNSAwLTIuMS4yOC0zLjAxLjhhNS45NyA1Ljk3IDAgMCAwIDMgNS4xOWMuMjguMTYuNTcuMjkuODYuNC0uMjkuMTEtLjU4LjI0LS44Ni40YTYuMDEyIDYuMDEyIDAgMCAwLTMgNS4xOWMuOTEuNTIgMS45NS44IDMuMDEuOCAxLjAyIDAgMi4wNS0uMjYgMi45OS0uOC4yOC0uMTYuNTQtLjM1Ljc4LS41NC0uMDUuMzItLjA4LjY0LS4wOC45NiAwIDIuMjIgMS4yMSA0LjE1IDMgNS4xOSAxLjc5LTEuMDQgMy0yLjk3IDMtNS4xOSAwLS4zMi0uMDMtLjY0LS4wOC0uOTUuMjQuMi41LjM4Ljc4LjU0Ljk0LjU0IDEuOTcuOCAyLjk5LjggMS4wNSAwIDIuMS0uMjggMy4wMS0uOGE2LjAxMiA2LjAxMiAwIDAgMC0zLTUuMTl6bS0yLjU0LTMuODhjLjIxLS4xNy4zOC0uMjkuNTQtLjM3LjYxLS4zNSAxLjMtLjU0IDItLjU0LjI3IDAgLjUzLjAzLjc5LjA4LS4zMS45MS0uOTQgMS42OS0xLjc4IDIuMTgtLjE3LjEtLjM2LjE4LS41OC4yN2wtMS4zOC41MmMtLjE3LS40Ni0uNDEtLjg3LS43Mi0xLjI0bDEuMTMtLjl6TTEyIDMuMzdjLjYzLjcyIDEgMS42NiAxIDIuNjMgMCAuMTktLjAyLjQxLS4wNS42M2wtLjIzIDEuNDRDMTIuNDggOC4wMyAxMi4yNCA4IDEyIDhzLS40OC4wMy0uNzEuMDdsLS4yMy0xLjQ0QzExLjAyIDYuNDEgMTEgNi4xOSAxMSA2YzAtLjk4LjM3LTEuOTEgMS0yLjYzek00LjUxIDcuNjhjLjI2LS4wNi41My0uMDguOC0uMDguNjkgMCAxLjM4LjE4IDEuOTkuNTQuMTUuMDkuMzIuMi40OS4zNWwxLjE1Ljk2Yy0uMy4zNi0uNTMuNzYtLjcgMS4ybC0xLjM4LS41MmMtLjIxLS4wOS0uNC0uMTgtLjU2LS4yNy0uODctLjUtMS40OS0xLjI3LTEuNzktMi4xOHptMy4zMyA3Ljc5Yy0uMjEuMTctLjM4LjI5LS41NC4zNy0uNjEuMzUtMS4zLjU0LTIgLjU0LS4yNyAwLS41My0uMDMtLjc5LS4wOC4zMS0uOTEuOTQtMS42OSAxLjc4LTIuMTguMTctLjEuMzYtLjE4LjU4LS4yN2wxLjM4LS41MmMuMTYuNDYuNDEuODguNzIgMS4yNGwtMS4xMy45ek0xMiAyMC42M2MtLjYzLS43Mi0xLTEuNjYtMS0yLjYzIDAtLjIuMDItLjQxLjA2LS42NWwuMjItMS40MmMuMjMuMDQuNDcuMDcuNzIuMDcuMjQgMCAuNDgtLjAzLjcxLS4wN2wuMjMgMS40NGMuMDQuMjIuMDYuNDQuMDYuNjMgMCAuOTgtLjM3IDEuOTEtMSAyLjYzem02LjY5LTQuMjRhMy45MTYgMy45MTYgMCAwIDEtMi40OC0uODhsLTEuMTUtLjk2Yy4zLS4zNi41NC0uNzYuNy0xLjIxbDEuMzguNTJjLjIyLjA4LjQxLjE3LjU3LjI2Ljg1LjQ5IDEuNDcgMS4yNyAxLjc4IDIuMTgtLjI3LjA3LS41NC4wOS0uOC4wOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUuOTYgMTAuMjktMi43NSAzLjU0LTEuOTYtMi4zNkw4LjUgMTVoMTFsLTMuNTQtNC43MXpNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTE4LTRIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE2SDdWM2gxNHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZsYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDExSDF2Mmg2di0yem0yLjE3LTMuMjRMNy4wNSA1LjY0IDUuNjQgNy4wNWwyLjEyIDIuMTIgMS40MS0xLjQxek0xMyAxaC0ydjZoMlYxem01LjM2IDYuMDUtMS40MS0xLjQxLTIuMTIgMi4xMiAxLjQxIDEuNDEgMi4xMi0yLjEyek0xNyAxMXYyaDZ2LTJoLTZ6bS01LTJjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zem0yLjgzIDcuMjQgMi4xMiAyLjEyIDEuNDEtMS40MS0yLjEyLTIuMTItMS40MSAxLjQxem0tOS4xOS43MSAxLjQxIDEuNDEgMi4xMi0yLjEyLTEuNDEtMS40MS0yLjEyIDIuMTJ6TTExIDIzaDJ2LTZoLTJ2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZsYXNoQXV0byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAydjEyaDN2OWw3LTEySDlsNC05SDN6bTE2IDBoLTJsLTMuMiA5aDEuOWwuNy0yaDMuMmwuNyAyaDEuOUwxOSAyem0tMi4xNSA1LjY1TDE4IDRsMS4xNSAzLjY1aC0yLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbGFzaE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTBoLTMuNjFsMi4yOCAyLjI4em0wLThIN3YxLjYxbDYuMTMgNi4xM3ptLTEzLjU5Ljg2TDIgNC4yN2w1IDVWMTNoM3Y5bDMuNTgtNi4xNUwxNy43MyAyMGwxLjQxLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbGFzaE9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDJ2MTFoM3Y5bDctMTJoLTRsMy04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmxpcENhbWVyYUFuZHJvaWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDEyYzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTMtMS4zNC0zLTMtMy0zIDEuMzQtMyAzem00IDBjMCAuNTUtLjQ1IDEtMSAxcy0xLS40NS0xLTEgLjQ1LTEgMS0xIDEgLjQ1IDEgMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxMFY4SDUuMDlDNi40NyA1LjYxIDkuMDUgNCAxMiA0YzMuNzIgMCA2Ljg1IDIuNTYgNy43NCA2aDIuMDZjLS45My00LjU2LTQuOTYtOC05LjgtOC0zLjI3IDAtNi4xOCAxLjU4LTggNC4wMVY0SDJ2Nmg2ek0xNiAxNHYyaDIuOTFjLTEuMzggMi4zOS0zLjk2IDQtNi45MSA0LTMuNzIgMC02Ljg1LTIuNTYtNy43NC02SDIuMmMuOTMgNC41NiA0Ljk2IDggOS44IDggMy4yNyAwIDYuMTgtMS41OCA4LTQuMDFWMjBoMnYtNmgtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZsaXBDYW1lcmFJb3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA1aC0zLjE3TDE1IDNIOUw3LjE3IDVINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDE0SDRWN2g0LjA1bC41OS0uNjVMOS44OCA1aDQuMjRsMS4yNCAxLjM1LjU5LjY1SDIwdjEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxN2MtMi4yMSAwLTQtMS43OS00LTRoMmwtMi41LTIuNUw1IDEzaDJjMCAyLjc2IDIuMjQgNSA1IDUgLjg2IDAgMS42NS0uMjQgMi4zNi0uNjJsLS43NC0uNzRjLS40OS4yMy0xLjA0LjM2LTEuNjIuMzZ6TTEyIDhjLS44NiAwLTEuNjUuMjQtMi4zNi42MmwuNzQuNzNDMTAuODcgOS4xMyAxMS40MiA5IDEyIDljMi4yMSAwIDQgMS43OSA0IDRoLTJsMi41IDIuNUwxOSAxM2gtMmMwLTIuNzYtMi4yNC01LTUtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZsaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDIxaDJ2LTJoLTJ2MnptNC0xMmgyVjdoLTJ2MnpNMyA1djE0YzAgMS4xLjkgMiAyIDJoNHYtMkg1VjVoNFYzSDVjLTEuMSAwLTIgLjktMiAyem0xNi0ydjJoMmMwLTEuMS0uOS0yLTItMnptLTggMjBoMlYxaC0ydjIyem04LTZoMnYtMmgtMnYyek0xNSA1aDJWM2gtMnYyem00IDhoMnYtMmgtMnYyem0wIDhjMS4xIDAgMi0uOSAyLTJoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdyYWRpZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgOWgydjJoLTJWOXptLTIgMmgydjJIOXYtMnptNCAwaDJ2MmgtMnYtMnptMi0yaDJ2MmgtMlY5ek03IDloMnYySDdWOXptMTItNkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTkgMThIN3YtMmgydjJ6bTQgMGgtMnYtMmgydjJ6bTQgMGgtMnYtMmgydjJ6bTItN2gtMnYyaDJ2MmgtMnYtMmgtMnYyaC0ydi0yaC0ydjJIOXYtMkg3djJINXYtMmgydi0ySDVWNWgxNHY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR3JhaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDEyYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnpNNiA4Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMCA4Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMTItOGMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bS00IDhjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem00LTRjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0tNC00Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptLTQtNGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHcmlkT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDR2Ljg5bDIgMlY0aDR2NGgtMi44OWwyIDJIMTR2Ljg5bDIgMlYxMGg0djRoLTIuODlsMiAySDIwdi44OWwyIDJWNGMwLTEuMS0uOS0yLTItMkg1LjExbDIgMkg4em04IDBoNHY0aC00VjR6TTEuNDEgMS4xNCAwIDIuNTVsMiAyVjIwYzAgMS4xLjkgMiAyIDJoMTUuNDVsMi4wMSAyLjAxIDEuNDEtMS40MUwxLjQxIDEuMTR6TTEwIDEyLjU1IDExLjQ1IDE0SDEwdi0xLjQ1em0tNi02TDUuNDUgOEg0VjYuNTV6TTggMjBINHYtNGg0djR6bTAtNkg0di00aDMuNDVsLjU1LjU1VjE0em02IDZoLTR2LTRoMy40NWwuNTUuNTVWMjB6bTIgMHYtMS40NUwxNy40NSAyMEgxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdyaWRPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6TTggMjBINHYtNGg0djR6bTAtNkg0di00aDR2NHptMC02SDRWNGg0djR6bTYgMTJoLTR2LTRoNHY0em0wLTZoLTR2LTRoNHY0em0wLTZoLTRWNGg0djR6bTYgMTJoLTR2LTRoNHY0em0wLTZoLTR2LTRoNHY0em0wLTZoLTRWNGg0djR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIZHJFbmhhbmNlZFNlbGVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJjMy4zMSAwIDYgMi42OSA2IDZzLTIuNjkgNi02IDYtNi0yLjY5LTYtNiAyLjY5LTYgNi02em0wIDJDOS43OSA0IDggNS43OSA4IDhzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTEgN2gtMlY5SDlWN2gyVjVoMnYyaDJ2MmgtMnYyem0xMSA5aC0ydjJoLTEuNXYtMmgtMnYtMS41aDJ2LTJIMjJ2MmgyVjIwem0tNi0xLjVjMCAuNi0uNCAxLjEtLjkgMS40TDE4IDIyaC0xLjVsLS45LTJoLTEuMXYySDEzdi02aDMuNWMuOCAwIDEuNS43IDEuNSAxLjV2MXptLTEuNSAwdi0xaC0ydjFoMnptLTEzLS41di0ySDV2NkgzLjV2LTIuNWgtMlYyMkgwdi02aDEuNXYyaDJ6bTYuNS0yYy44IDAgMS41LjcgMS41IDEuNXYzYzAgLjgtLjcgMS41LTEuNSAxLjVINi41di02SDEwem0wIDQuNXYtM0g4djNoMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhkck9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNSAxNXYtMmgxLjFsLjkgMkgyMWwtLjktMi4xYy41LS4zLjktLjguOS0xLjR2LTFjMC0uOC0uNy0xLjUtMS41LTEuNUgxNnY0Ljg2TDE3LjE0IDE1aC4zNnptMC00LjVoMnYxaC0ydi0xem0tNC41IDB2LjM2bDEuNSAxLjVWMTAuNWMwLS44LS43LTEuNS0xLjUtMS41aC0xLjg2bDEuNSAxLjVIMTN6TTIuNTEgMi40OSAxLjQ1IDMuNTUgNi45IDloLS40djJoLTJWOUgzdjZoMS41di0yLjVoMlYxNUg4di00LjlsMS41IDEuNVYxNWgzLjRsNy42IDcuNiAxLjA2LTEuMDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIZHJPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTEuNXYtMWMwLS44LS43LTEuNS0xLjUtMS41SDE2djZoMS41di0yaDEuMWwuOSAySDIxbC0uOS0yLjFjLjUtLjMuOS0uOC45LTEuNHptLTEuNSAwaC0ydi0xaDJ2MXptLTEzLS41aC0yVjlIM3Y2aDEuNXYtMi41aDJWMTVIOFY5SDYuNXYyek0xMyA5SDkuNXY2SDEzYy44IDAgMS41LS43IDEuNS0xLjV2LTNjMC0uOC0uNy0xLjUtMS41LTEuNXptMCA0LjVoLTJ2LTNoMnYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGRyUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguMTMgMTljMS4xNS42NCAyLjQ3IDEgMy44NyAxIDQuNDEgMCA4LTMuNTkgOC04cy0zLjU5LTgtOC04LTggMy41OS04IDhjMCAyLjUyIDEuMTcgNC43NyAzIDYuMjRWMTNoMy41Yy44IDAgMS41LjcgMS41IDEuNXYxYzAgLjYtLjQgMS4xLS45IDEuNEwxMiAxOWgtMS41bC0uOS0ySDguNXYyaC0uMzd6TTEyIDJjNS41MiAwIDEwIDQuNDggMTAgMTBzLTQuNDggMTAtMTAgMTBTMiAxNy41MiAyIDEyIDYuNDggMiAxMiAyem01LjUgMTRIMTZ2MS41aC0xLjVWMTZIMTN2LTEuNWgxLjVWMTNIMTZ2MS40OWgxLjVWMTZ6bS03LS41di0xaC0ydjFoMnptMC03LjVWNkgxMnY2aC0xLjVWOS41aC0yVjEySDdWNmgxLjV2Mmgyek0xNiA2Yy44IDAgMS41LjcgMS41IDEuNXYzYzAgLjgtLjcgMS41LTEuNSAxLjVoLTNWNmgzem0wIDQuNXYtM2gtMS41djNIMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIZHJTdHJvbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDZjLTMuMzEgMC02IDIuNjktNiA2czIuNjkgNiA2IDYgNi0yLjY5IDYtNi0yLjY5LTYtNi02ek01IDhjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0wIDZjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGRyV2VhayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA4Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMTItMmMtMy4zMSAwLTYgMi42OS02IDZzMi42OSA2IDYgNiA2LTIuNjkgNi02LTIuNjktNi02LTZ6bTAgMTBjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTQgNCAxLjc5IDQgNC0xLjc5IDQtNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGVhbGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcuNzMgMTIuMDIgMy45OC0zLjk4YS45OTYuOTk2IDAgMCAwIDAtMS40MWwtNC4zNC00LjM0YS45OTYuOTk2IDAgMCAwLTEuNDEgMGwtMy45OCAzLjk4TDggMi4yOWExLjAwMSAxLjAwMSAwIDAgMC0xLjQxIDBMMi4yNSA2LjYzYS45OTYuOTk2IDAgMCAwIDAgMS40MWwzLjk4IDMuOThMMi4yNSAxNmEuOTk2Ljk5NiAwIDAgMCAwIDEuNDFsNC4zNCA0LjM0Yy4zOS4zOSAxLjAyLjM5IDEuNDEgMGwzLjk4LTMuOTggMy45OCAzLjk4Yy4yLjIuNDUuMjkuNzEuMjkuMjYgMCAuNTEtLjEuNzEtLjI5bDQuMzQtNC4zNGEuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLTMuOTktMy45OHpNMTIgOWMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0tNC43MSAxLjk2TDMuNjYgNy4zNGwzLjYzLTMuNjMgMy42MiAzLjYyLTMuNjIgMy42M3pNMTAgMTNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMiAyYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTItNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0yLjY2IDkuMzQtMy42My0zLjYyIDMuNjMtMy42MyAzLjYyIDMuNjItMy42MiAzLjYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGV2YyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNSAxMWgtMVY5SDN2NmgxLjV2LTIuNWgxVjE1SDdWOUg1LjV6TTIxIDExdi0xYzAtLjU1LS40NS0xLTEtMWgtMmMtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDFoMmMuNTUgMCAxLS40NSAxLTF2LTFoLTEuNXYuNWgtMXYtM2gxdi41SDIxek0xNC4yNSAxMy41IDEzLjUgOUgxMmwxIDZoMi41bDEtNkgxNXpNOCA5djZoMy41di0xLjVoLTJ2LTFoMlYxMWgtMnYtLjVoMlY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGlkZUltYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNXYxMS4xN2wyIDJWNWMwLTEuMS0uOS0yLTItMkg1LjgzbDIgMkgxOXpNMi44MSAyLjgxIDEuMzkgNC4yMiAzIDUuODNWMTljMCAxLjEuOSAyIDIgMmgxMy4xN2wxLjYxIDEuNjEgMS40MS0xLjQxTDIuODEgMi44MXpNNSAxOVY3LjgzbDcuMDcgNy4wNy0uODIgMS4xTDkgMTNsLTMgNGg4LjE3bDIgMkg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW1hZ2VBc3BlY3RSYXRpbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDEwaC0ydjJoMnYtMnptMCA0aC0ydjJoMnYtMnptLTgtNEg2djJoMnYtMnptNCAwaC0ydjJoMnYtMnptOC02SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNEg0VjZoMTZ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbWFnZU5vdFN1cHBvcnRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjkgMjEuOS02LjEtNi4xLTIuNjktMi42OUw1IDUgMy41OSAzLjU5IDIuMSAyLjEuNjkgMy41MSAzIDUuODNWMTljMCAxLjEuOSAyIDIgMmgxMy4xN2wyLjMxIDIuMzEgMS40Mi0xLjQxek01IDE5VjcuODNsNi44NCA2Ljg0LS44NCAxLjA1TDkgMTNsLTMgNGg4LjE3bDIgMkg1ek03LjgzIDVsLTItMkgxOWMxLjEgMCAyIC45IDIgMnYxMy4xN2wtMi0yVjVINy44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUltYWdlU2VhcmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM3Y3SDRWNmg1LjAyYy4wNS0uNzEuMjItMS4zOC40OC0ySDRjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTVsLTItMnptLTEuNSA1aC0xMWwyLjc1LTMuNTMgMS45NiAyLjM2IDIuNzUtMy41NEwxNi41IDE4em0yLjgtOS4xMWMuNDQtLjcuNy0xLjUxLjctMi4zOUMyMCA0LjAxIDE3Ljk5IDIgMTUuNSAyUzExIDQuMDEgMTEgNi41czIuMDEgNC41IDQuNDkgNC41Yy44OCAwIDEuNy0uMjYgMi4zOS0uN0wyMSAxMy40MiAyMi40MiAxMiAxOS4zIDguODl6TTE1LjUgOWEyLjUgMi41IDAgMCAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUltYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA1djE0SDVWNWgxNG0wLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNC44NiA4Ljg2LTMgMy44N0w5IDEzLjE0IDYgMTdoMTJsLTMuODYtNS4xNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUluY29tcGxldGVDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMmMwIDUuNTItNC40OCAxMC0xMCAxMFMyIDE3LjUyIDIgMTJjMC0yLjc2IDEuMTItNS4yNiAyLjkzLTcuMDdMMTIgMTJWMmM1LjUyIDAgMTAgNC40OCAxMCAxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUlzbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTUuNSA3LjVoMnYtMkg5djJoMlY5SDl2Mkg3LjVWOWgtMlY3LjV6TTE5IDE5SDVMMTkgNXYxNHptLTItMnYtMS41aC01VjE3aDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMYW5kc2NhcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0IDYtNC4yMiA1LjYzIDEuMjUgMS42N0wxNCA5LjMzIDE5IDE2aC04LjQ2bC00LjAxLTUuMzdMMSAxOGgyMkwxNCA2ek01IDE2bDEuNTItMi4wM0w4LjA0IDE2SDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMZWFrQWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDNIM3YzYzEuNjYgMCAzLTEuMzQgMy0zem04IDBoLTJhOSA5IDAgMCAxLTkgOXYyYzYuMDggMCAxMS00LjkzIDExLTExem0tNCAwSDhjMCAyLjc2LTIuMjQgNS01IDV2MmMzLjg3IDAgNy0zLjEzIDctN3ptMCAxOGgyYTkgOSAwIDAgMSA5LTl2LTJjLTYuMDcgMC0xMSA0LjkzLTExIDExem04IDBoM3YtM2MtMS42NiAwLTMgMS4zNC0zIDN6bS00IDBoMmMwLTIuNzYgMi4yNC01IDUtNXYtMmMtMy44NyAwLTcgMy4xMy03IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMZWFrUmVtb3ZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAzaC0yYzAgMS4zNS0uMzEgMi42My0uODQgMy43N2wxLjQ5IDEuNDlDMTMuNTEgNi43IDE0IDQuOTEgMTQgM3ptNyA5di0yYy0xLjkxIDAtMy43LjQ5LTUuMjcgMS4zNWwxLjQ5IDEuNDljMS4xNS0uNTMgMi40My0uODQgMy43OC0uODR6bTAgNHYtMmMtLjc5IDAtMS41NC4xMy0yLjI0LjM3bDEuNjggMS42OGMuMTktLjAxLjM3LS4wNS41Ni0uMDV6TTEwIDNIOGMwIC4xOS0uMDQuMzctLjA2LjU2bDEuNjggMS42OGMuMjUtLjcuMzgtMS40Ni4zOC0yLjI0em0tNS41OS0uMTRMMyA0LjI3bDIuODQgMi44NEM1LjAzIDcuNjcgNC4wNiA4IDMgOHYyYzEuNjEgMCAzLjA5LS41NSA0LjI3LTEuNDZMOC43IDkuOTdBOC45OSA4Ljk5IDAgMCAxIDMgMTJ2MmMyLjcyIDAgNS4yLS45OSA3LjExLTIuNjJsMi41MSAyLjUxQzEwLjk5IDE1LjgxIDEwIDE4LjI5IDEwIDIxaDJjMC0yLjE2Ljc2LTQuMTQgMi4wMy01LjdsMS40MyAxLjQzQTYuOTcyIDYuOTcyIDAgMCAwIDE0IDIxaDJjMC0xLjA2LjMzLTIuMDMuODktMi44NEwxOS43MyAyMWwxLjQxLTEuNDFMNC40MSAyLjg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGVucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNGM0LjQxIDAgOCAzLjU5IDggOHMtMy41OSA4LTggOC04LTMuNTktOC04IDMuNTktOCA4LThtMC0yQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGlua2VkQ2FtZXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA5djExSDRWOGg0LjA1bDEuODMtMkgxNVY0SDlMNy4xNyA2SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOWgtMnptLjY3LTEuMDFIMjJBNi4wMDMgNi4wMDMgMCAwIDAgMTYgMnYxLjMzYzIuNTggMCA0LjY2IDIuMDggNC42NyA0LjY2em0tMi42NyAwaDEuMzNBMy4zMjcgMy4zMjcgMCAwIDAgMTYgNC42N1Y2YzEuMTEgMCAxLjk5Ljg5IDIgMS45OXpNNyAxNGMwIDIuNzYgMi4yNCA1IDUgNXM1LTIuMjQgNS01LTIuMjQtNS01LTUtNSAyLjI0LTUgNXptOCAwYzAgMS42NS0xLjM1IDMtMyAzcy0zLTEuMzUtMy0zIDEuMzUtMyAzLTMgMyAxLjM0IDMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvZ29EZXYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNNy42OCAxNC45OEg2VjloMS43MWMxLjI4IDAgMS43MSAxLjAzIDEuNzEgMS43MXYyLjU2YzAgLjY4LS40MiAxLjcxLTEuNzQgMS43MXptNC43LTMuNTJ2MS4wN0gxMS4ydjEuMzloMS45M3YxLjA3aC0yLjI1Yy0uNC4wMS0uNzQtLjMxLS43NS0uNzFWOS43NWMtLjAxLS40LjMxLS43NC43MS0uNzVoMi4yOHYxLjA3SDExLjJ2MS4zOWgxLjE4em00LjUgMi43N2MtLjQ4IDEuMTEtMS4zMy44OS0xLjcxIDBMMTMuNzcgOWgxLjE4bDEuMDcgNC4xMUwxNy4wOSA5aDEuMThsLTEuMzkgNS4yM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy43NyAxMC4xMmgtLjYzdjMuNzdoLjYzYy4xNCAwIC4yOC0uMDUuNDItLjE2LjE0LS4xLjIxLS4yNi4yMS0uNDd2LTIuNTJjMC0uMjEtLjA3LS4zNy0uMjEtLjQ3YS43Mi43MiAwIDAgMC0uNDItLjE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9va3MzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6bS00LTR2LTEuNWMwLS44My0uNjctMS41LTEuNS0xLjUuODMgMCAxLjUtLjY3IDEuNS0xLjVWOWEyIDIgMCAwIDAtMi0ySDl2Mmg0djJoLTJ2MmgydjJIOXYyaDRhMiAyIDAgMCAwIDItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvb2tzNCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNLjA0IDBoMjR2MjRoLTI0VjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjA0IDNoLTE0Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZoLTE0VjVoMTR2MTR6bS02LTJoMlY3aC0ydjRoLTJWN2gtMnY2aDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb29rczUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHptLTQtNHYtMmEyIDIgMCAwIDAtMi0yaC0yVjloNFY3SDl2Nmg0djJIOXYyaDRhMiAyIDAgMCAwIDItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvb2tzNiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTdoMmEyIDIgMCAwIDAgMi0ydi0yYTIgMiAwIDAgMC0yLTJoLTJWOWg0VjdoLTRhMiAyIDAgMCAwLTIgMnY2YTIgMiAwIDAgMCAyIDJ6bTAtNGgydjJoLTJ2LTJ6bTgtMTBINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvb2tzT25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6bS03LTJoMlY3aC00djJoMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvb2tzVHdvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6bS00LTRoLTR2LTJoMmEyIDIgMCAwIDAgMi0yVjlhMiAyIDAgMCAwLTItMkg5djJoNHYyaC0yYTIgMiAwIDAgMC0yIDJ2NGg2di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9va3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEwYy0zLjg2IDAtNyAzLjE0LTcgN2gyYzAtMi43NiAyLjI0LTUgNS01czUgMi4yNCA1IDVoMmMwLTMuODYtMy4xNC03LTctN3ptMC00QzUuOTMgNiAxIDEwLjkzIDEgMTdoMmMwLTQuOTYgNC4wNC05IDktOXM5IDQuMDQgOSA5aDJjMC02LjA3LTQuOTMtMTEtMTEtMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb3VwZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgN2gtMnY0SDd2Mmg0djRoMnYtNGg0di0yaC00Vjd6bS0xLTVDNi40OSAyIDIgNi40OSAyIDEyczQuNDkgMTAgMTAgMTBoOGMxLjEgMCAyLS45IDItMnYtOGMwLTUuNTEtNC40OS0xMC0xMC0xMHptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNaWNFeHRlcm5hbE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDVjMC0xLjY2LTEuMzQtMy0zLTMtLjYyIDAtMS4xOS4xOS0xLjY3LjVsNC4xNSA0LjE1QzkuOCA2LjE4IDEwIDUuNjEgMTAgNXpNMTQgNmMwLTEuMS45LTIgMi0yczIgLjkgMiAydjkuMTdsMiAyVjZjMC0yLjIxLTEuNzktNC00LTRzLTQgMS43OS00IDR2My4xN2wyIDJWNnpNMi4xIDIuMS42OSAzLjUxIDUuMTcgOEg0bDEgMTBoMWMwIDIuMjEgMS43OSA0IDQgNHM0LTEuNzkgNC00di0xLjE3bDYuNDkgNi40OSAxLjQxLTEuNDFMMi4xIDIuMXpNNy4xOSAxNmgtLjM4bC0uNi02aC45NmwuNTYuNTZMNy4xOSAxNnpNMTIgMThjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yaDFsLjU2LTUuNjFMMTIgMTQuODNWMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNaWNFeHRlcm5hbE9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yMiA3Yy40OC0uNTMuNzgtMS4yMy43OC0yIDAtMS42Ni0xLjM0LTMtMy0zUzQgMy4zNCA0IDVjMCAuNzcuMyAxLjQ3Ljc4IDJoNC40NHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMmMtMi4yMSAwLTQgMS43OS00IDR2MTJjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yaDFsMS0xMEg0bDEgMTBoMWMwIDIuMjEgMS43OSA0IDQgNHM0LTEuNzkgNC00VjZjMC0xLjEuOS0yIDItMnMyIC45IDIgMnYxNmgyVjZjMC0yLjIxLTEuNzktNC00LTR6TTcuMTkgMTZoLS4zOGwtLjYtNmgxLjU4bC0uNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW9ub2Nocm9tZVBob3RvcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNWgtMy4yTDE1IDNIOUw3LjIgNUg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bTAgMTRoLTh2LTFjLTIuOCAwLTUtMi4yLTUtNXMyLjItNSA1LTVWN2g4djEyem0tMy02YzAtMi44LTIuMi01LTUtNXYxLjhjMS44IDAgMy4yIDEuNCAzLjIgMy4ycy0xLjQgMy4yLTMuMiAzLjJWMThjMi44IDAgNS0yLjIgNS01em0tOC4yIDBjMCAxLjggMS40IDMuMiAzLjIgMy4yVjkuOGMtMS44IDAtMy4yIDEuNC0zLjIgMy4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW90aW9uUGhvdG9zQXV0byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIuODggNy44OCAxLjU0IDEuNTRDNC4xNSAxMC4yMyA0IDExLjEgNCAxMmMwIDQuNDEgMy41OSA4IDggOHM4LTMuNTkgOC04LTMuNTktOC04LThjLS45IDAtMS43Ny4xNS0yLjU4LjQyTDcuODkgMi44OUM5LjE1IDIuMzIgMTAuNTQgMiAxMiAyYzUuNTIgMCAxMCA0LjQ4IDEwIDEwcy00LjQ4IDEwLTEwIDEwUzIgMTcuNTIgMiAxMmMwLTEuNDcuMzItMi44Ni44OC00LjEyek03IDUuNUM3IDYuMzMgNi4zMyA3IDUuNSA3UzQgNi4zMyA0IDUuNSA0LjY3IDQgNS41IDQgNyA0LjY3IDcgNS41em01LjAzIDMuNDloLS4wN0wxMC44IDEyLjNoMi4zOWwtMS4xNi0zLjMxem0tLjc0LTEuNDloMS40M2wzLjAxIDhoLTEuMzlsLS43Mi0yLjA0aC0zLjIzbC0uNzMgMi4wNEg4LjI4bDMuMDEtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vdGlvblBob3Rvc09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuODEgMi44MSAxLjM5IDQuMjJsMi4yNyAyLjI3QTkuOTEgOS45MSAwIDAgMCAyIDEyYzAgNS41MiA0LjQ4IDEwIDEwIDEwIDIuMDQgMCAzLjkzLS42MSA1LjUxLTEuNjZsMi4yNyAyLjI3IDEuNDEtMS40MkwyLjgxIDIuODF6TTEyIDIwYy00LjQxIDAtOC0zLjU5LTgtOCAwLTEuNDguNDEtMi44NiAxLjEyLTQuMDZsMTAuOTMgMTAuOTRBNy44NjkgNy44NjkgMCAwIDEgMTIgMjB6TTEyIDRjNC40MSAwIDggMy41OSA4IDggMCAxLjQ4LS40MSAyLjg2LTEuMTIgNC4wNWwxLjQ1IDEuNDVBOS43ODIgOS43ODIgMCAwIDAgMjIgMTJjMC01LjUyLTQuNDgtMTAtMTAtMTAtMi4wNCAwLTMuOTMuNjEtNS41MSAxLjY2bDEuNDUgMS40NUM5LjE0IDQuNDEgMTAuNTIgNCAxMiA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW90aW9uUGhvdG9zT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yLjg4IDcuODggMS41NCAxLjU0QzQuMTUgMTAuMjMgNCAxMS4xIDQgMTJjMCA0LjQxIDMuNTkgOCA4IDhzOC0zLjU5IDgtOC0zLjU5LTgtOC04Yy0uOSAwLTEuNzcuMTUtMi41OC40Mkw3Ljg5IDIuODlDOS4xNSAyLjMyIDEwLjU0IDIgMTIgMmM1LjUyIDAgMTAgNC40OCAxMCAxMHMtNC40OCAxMC0xMCAxMFMyIDE3LjUyIDIgMTJjMC0xLjQ3LjMyLTIuODYuODgtNC4xMnpNNyA1LjVDNyA2LjMzIDYuMzMgNyA1LjUgN1M0IDYuMzMgNCA1LjUgNC42NyA0IDUuNSA0IDcgNC42NyA3IDUuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vdGlvblBob3Rvc1BhdXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMi44OCA3Ljg4IDEuNTQgMS41NEM0LjE1IDEwLjIzIDQgMTEuMSA0IDEyYzAgNC40MSAzLjU5IDggOCA4czgtMy41OSA4LTgtMy41OS04LTgtOGMtLjkgMC0xLjc3LjE1LTIuNTguNDJMNy44OSAyLjg5QzkuMTUgMi4zMiAxMC41NCAyIDEyIDJjNS41MiAwIDEwIDQuNDggMTAgMTBzLTQuNDggMTAtMTAgMTBTMiAxNy41MiAyIDEyYzAtMS40Ny4zMi0yLjg2Ljg4LTQuMTJ6TTcgNS41QzcgNi4zMyA2LjMzIDcgNS41IDdTNCA2LjMzIDQgNS41IDQuNjcgNCA1LjUgNCA3IDQuNjcgNyA1LjV6bTQgOS41SDlWOWgydjZ6bTQgMGgtMlY5aDJ2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vdGlvblBob3Rvc1BhdXNlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDEyYzAgNS41Mi00LjQ4IDEwLTEwIDEwUzIgMTcuNTIgMiAxMmMwLTEuMTkuMjItMi4zMi42LTMuMzhsMS44OC42OEM0LjE3IDEwLjE0IDQgMTEuMDUgNCAxMmMwIDQuNDEgMy41OSA4IDggOHM4LTMuNTkgOC04LTMuNTktOC04LThjLS45NSAwLTEuODUuMTctMi42OS40OGwtLjY4LTEuODlDOS42OSAyLjIyIDEwLjgyIDIgMTIgMmM1LjUyIDAgMTAgNC40OCAxMCAxMHpNNS41IDRDNC42NyA0IDQgNC42NyA0IDUuNVM0LjY3IDcgNS41IDcgNyA2LjMzIDcgNS41IDYuMzMgNCA1LjUgNHpNMTEgMTZWOEg5djhoMnptNCAwVjhoLTJ2OGgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW92aWVDcmVhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS43NiAxMEgyMHY4SDRWNi40N00yMiA0aC00bDIgNGgtM2wtMi00aC0ybDIgNGgtM2wtMi00SDhsMiA0SDdMNSA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vdmllRmlsdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMCAxMS0uOTQgMi4wNkw3IDE0bDIuMDYuOTRMMTAgMTdsLjk0LTIuMDZMMTMgMTRsLTIuMDYtLjk0em04LjAxLTcgMiA0aC0zbC0yLTRoLTJsMiA0aC0zbC0yLTRoLTJsMiA0aC0zbC0yLTRoLTFjLTEuMSAwLTEuOTkuOS0xLjk5IDJsLS4wMSAxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDEuOTktLjkgMS45OS0yVjRoLTMuOTl6bTIgMTRoLTE2VjYuNDdMNS43NyAxMEgxNmwtLjYzIDEuMzdMMTQgMTJsMS4zNy42M0wxNiAxNGwuNjMtMS4zN0wxOCAxMmwtMS4zNy0uNjNMMTYgMTBoNC4wMXY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA5aC0zLjV2NkgxNXYtMS41aDJjLjU1IDAgMS0uNDUgMS0xVjEwYzAtLjU1LS40NS0xLTEtMXptLS41IDNIMTV2LTEuNWgxLjVWMTJ6TTExLjUgOUg3Yy0uNTUgMC0xIC40NS0xIDF2NWgxLjV2LTQuNWgxdjNIMTB2LTNoMVYxNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNNSAxOVY1aDE0djE0SDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNdXNpY05vdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDMgLjAxIDEwLjU1Yy0uNTktLjM0LTEuMjctLjU1LTItLjU1YTQuMDAxIDQuMDAxIDAgMSAwIDAgOGMyLjIyIDAgMy45OS0xLjc5IDMuOTktNFY3aDRWM2gtNnptLTEuOTkgMTZjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTXVzaWNPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDdoNFYzaC02djQuNjFsMiAyem0tMiAzLjQ0TDQuNDEgMi44NiAzIDQuMjdsOSA5di4yOGMtLjk0LS41NC0yLjEtLjc1LTMuMzMtLjMyLTEuMzQuNDgtMi4zNyAxLjY3LTIuNjEgMy4wN2E0LjAwNyA0LjAwNyAwIDAgMCA0LjU5IDQuNjVjMS45Ni0uMzEgMy4zNS0yLjExIDMuMzUtNC4xdi0xLjU4TDE5LjczIDIxbDEuNDEtMS40MUwxMiAxMC40NHpNMTAgMTljLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmF0dXJlUGVvcGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjQuNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyLjE3IDkuMTdjMC0zLjg3LTMuMTMtNy03LTdzLTcgMy4xMy03IDdBNi45OCA2Ljk4IDAgMCAwIDE0IDE2LjA2VjIwSDZ2LTNoMXYtNGMwLS41NS0uNDUtMS0xLTFIM2MtLjU1IDAtMSAuNDUtMSAxdjRoMXY1aDE2di0yaC0zdi0zLjg4YTcgNyAwIDAgMCA2LjE3LTYuOTV6bS03IDVjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmF0dXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxNi4xMmgtLjAzYzMuNDktLjQgNi4yLTMuMzYgNi4yLTYuOTUgMC0zLjg3LTMuMTMtNy03LTdzLTcgMy4xMy03IDdBNi45OCA2Ljk4IDAgMCAwIDExIDE2LjA2VjIwSDV2MmgxNHYtMmgtNnYtMy44OHpNNy4xNyA5LjE3YzAtMi43NiAyLjI0LTUgNS01czUgMi4yNCA1IDUtMi4yNCA1LTUgNS01LTIuMjQtNS01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmF2aWdhdGVCZWZvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjYxIDcuNDEgMTQuMiA2bC02IDYgNiA2IDEuNDEtMS40MUwxMS4wMyAxMmw0LjU4LTQuNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOYXZpZ2F0ZU5leHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjAyIDYgOC42MSA3LjQxIDEzLjE5IDEybC00LjU4IDQuNTlMMTAuMDIgMThsNi02LTYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBhbGV0dGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyMkM2LjQ5IDIyIDIgMTcuNTEgMiAxMlM2LjQ5IDIgMTIgMnMxMCA0LjA0IDEwIDljMCAzLjMxLTIuNjkgNi02IDZoLTEuNzdjLS4yOCAwLS41LjIyLS41LjUgMCAuMTIuMDUuMjMuMTMuMzMuNDEuNDcuNjQgMS4wNi42NCAxLjY3QTIuNSAyLjUgMCAwIDEgMTIgMjJ6bTAtMThjLTQuNDEgMC04IDMuNTktOCA4czMuNTkgOCA4IDhjLjI4IDAgLjUtLjIyLjUtLjVhLjU0LjU0IDAgMCAwLS4xNC0uMzVjLS40MS0uNDYtLjYzLTEuMDUtLjYzLTEuNjVhMi41IDIuNSAwIDAgMSAyLjUtMi41SDE2YzIuMjEgMCA0LTEuNzkgNC00IDAtMy44Ni0zLjU5LTctOC03elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjYuNVwiLFwiY3lcIjpcIjExLjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjkuNVwiLFwiY3lcIjpcIjcuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTQuNVwiLFwiY3lcIjpcIjcuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTcuNVwiLFwiY3lcIjpcIjExLjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGFub3JhbWFGaXNoRXllIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDcgMiAyIDYuNDcgMiAxMnM0LjQ3IDEwIDEwIDEwIDEwLTQuNDcgMTAtMTBTMTcuNTMgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBhbm9yYW1hSG9yaXpvbnRhbFNlbGVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDUuNWMtMy44OSAwLTYuOTUtLjg0LTguNjktMS40M0EuOTkzLjk5MyAwIDAgMCAyIDUuMDJWMTljMCAuNjguNjYgMS4xNyAxLjMxLjk1QzUuMzYgMTkuMjYgOC4xIDE4LjUgMTIgMTguNWMzLjg3IDAgNi42Ni43NiA4LjY5IDEuNDVBLjk5OS45OTkgMCAwIDAgMjIgMTlWNWMwLS42OC0uNjYtMS4xNy0xLjMxLS45NS0yLjAzLjY4LTQuODMgMS40NS04LjY5IDEuNDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQYW5vcmFtYUhvcml6b250YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDYuNTR2MTAuOTFjLTIuNi0uNzctNS4yOC0xLjE2LTgtMS4xNnMtNS40LjM5LTggMS4xNlY2LjU0YzIuNi43NyA1LjI4IDEuMTYgOCAxLjE2IDIuNzIuMDEgNS40LS4zOCA4LTEuMTZNMjEuNDMgNGMtLjEgMC0uMi4wMi0uMzEuMDZDMTguMTggNS4xNiAxNS4wOSA1LjcgMTIgNS43cy02LjE4LS41NS05LjEyLTEuNjRBLjk0Ljk0IDAgMCAwIDIuNTcgNGMtLjM0IDAtLjU3LjIzLS41Ny42M3YxNC43NWMwIC4zOS4yMy42Mi41Ny42Mi4xIDAgLjItLjAyLjMxLS4wNiAyLjk0LTEuMSA2LjAzLTEuNjQgOS4xMi0xLjY0czYuMTguNTUgOS4xMiAxLjY0Yy4xMS4wNC4yMS4wNi4zMS4wNi4zMyAwIC41Ny0uMjMuNTctLjYzVjQuNjNjMC0uNC0uMjQtLjYzLS41Ny0uNjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQYW5vcmFtYVBob3Rvc3BoZXJlU2VsZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuOTUgOC4xNWMtLjI5LS4xNi0uNjEtLjMxLS45My0uNDZDMTkuNCA0LjMzIDE1Ljk4IDIgMTIgMiA4LjAyIDIgNC42IDQuMzMgMi45OSA3LjY4Yy0uMzMuMTUtLjY0LjMtLjkzLjQ2QzEuNDEgOC41IDEgOS4xNyAxIDkuOTF2NC4xOGMwIC43NC40MSAxLjQxIDEuMDUgMS43Ny4yOS4xNi42MS4zMS45My40NkM0LjYgMTkuNjcgOC4wMiAyMiAxMiAyMmMzLjk4IDAgNy40LTIuMzMgOS4wMS01LjY4LjMzLS4xNS42NC0uMy45My0uNDYuNjUtLjM2IDEuMDYtMS4wMyAxLjA2LTEuNzdWOS45MWMwLS43NC0uNDEtMS40MS0xLjA1LTEuNzZ6TTEyIDRjMi4zNyAwIDQuNDkgMS4wNCA1Ljk1IDIuNjhDMTYuMTcgNi4yNSAxNC4xNSA2IDEyIDZjLTIuMTUgMC00LjE3LjI1LTUuOTUuNjhBNy45NDMgNy45NDMgMCAwIDEgMTIgNHptMCAxNmMtMi4zNyAwLTQuNDktMS4wNC01Ljk1LTIuNjggMS43OC40MyAzLjguNjggNS45NS42OHM0LjE3LS4yNSA1Ljk1LS42OEE3Ljk0MyA3Ljk0MyAwIDAgMSAxMiAyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBhbm9yYW1hUGhvdG9zcGhlcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS45NSA4LjE1Yy0uMjktLjE2LS42MS0uMzEtLjkzLS40NkMxOS40IDQuMzMgMTUuOTggMiAxMiAyIDguMDIgMiA0LjYgNC4zMyAyLjk5IDcuNjhjLS4zMy4xNS0uNjQuMy0uOTMuNDZDMS40MSA4LjUgMSA5LjE3IDEgOS45MXY0LjE4YzAgLjc0LjQxIDEuNDEgMS4wNSAxLjc3LjI5LjE2LjYxLjMxLjkzLjQ2QzQuNiAxOS42NyA4LjAyIDIyIDEyIDIyYzMuOTggMCA3LjQtMi4zMyA5LjAxLTUuNjguMzMtLjE1LjY0LS4zLjkzLS40Ni42NS0uMzYgMS4wNi0xLjAzIDEuMDYtMS43N1Y5LjkxYzAtLjc0LS40MS0xLjQxLTEuMDUtMS43NnpNMjEgOS45MXY0LjE5Yy0yLjE5IDEuMjEtNS40NyAxLjktOSAxLjktMy41MyAwLTYuODEtLjctOS0xLjkxVjkuOTFDNS4yIDguNjkgOC40NyA4IDEyIDhjMy41MyAwIDYuODEuNyA5IDEuOTF6TTEyIDRjMi4zNyAwIDQuNDkgMS4wNCA1Ljk1IDIuNjhDMTYuMTcgNi4yNSAxNC4xNSA2IDEyIDZjLTIuMTUgMC00LjE3LjI1LTUuOTUuNjhBNy45NDMgNy45NDMgMCAwIDEgMTIgNHptMCAxNmMtMi4zNyAwLTQuNDktMS4wNC01Ljk1LTIuNjggMS43OC40MyAzLjguNjggNS45NS42OHM0LjE3LS4yNSA1Ljk1LS42OEE3Ljk0MyA3Ljk0MyAwIDAgMSAxMiAyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBhbm9yYW1hVmVydGljYWxTZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC41IDEyYzAtMy44OS44NC02Ljk1IDEuNDMtOC42OUEuOTkzLjk5MyAwIDAgMCAxOC45OCAySDVjLS42OCAwLTEuMTYuNjYtLjk1IDEuMzFDNC43NCA1LjM2IDUuNSA4LjEgNS41IDEyYzAgMy44Ny0uNzYgNi42Ni0xLjQ1IDguNjktLjIxLjY1LjI3IDEuMzEuOTUgMS4zMWgxNGMuNjggMCAxLjE3LS42Ni45NS0xLjMxLS42OC0yLjAzLTEuNDUtNC44My0xLjQ1LTguNjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQYW5vcmFtYVZlcnRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS45NCAyMS4xMmMtMS4xLTIuOTQtMS42NC02LjAzLTEuNjQtOS4xMnMuNTUtNi4xOCAxLjY0LTkuMTJhLjk0Ljk0IDAgMCAwIC4wNi0uMzFjMC0uMzQtLjIzLS41Ny0uNjMtLjU3SDQuNjNjLS40IDAtLjYzLjIzLS42My41NyAwIC4xLjAyLjIuMDYuMzFDNS4xNiA1LjgyIDUuNzEgOC45MSA1LjcxIDEycy0uNTUgNi4xOC0xLjY0IDkuMTJjLS4wNS4xMS0uMDcuMjItLjA3LjMxIDAgLjMzLjIzLjU3LjYzLjU3aDE0Ljc1Yy4zOSAwIC42My0uMjQuNjMtLjU3LS4wMS0uMS0uMDMtLjItLjA3LS4zMXpNNi41NCAyMGMuNzctMi42IDEuMTYtNS4yOCAxLjE2LThzLS4zOS01LjQtMS4xNi04aDEwLjkxYy0uNzcgMi42LTEuMTYgNS4yOC0xLjE2IDhzLjM5IDUuNCAxLjE2IDhINi41NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBhbm9yYW1hV2lkZUFuZ2xlU2VsZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNGMtMy45NyAwLTYuODUuNjMtOSAxLS41NSAxLjk3LTEgMy45Mi0xIDcgMCAzLjAzLjQ1IDUuMDUgMSA3IDIuMTUuMzcgNC45OCAxIDkgMSAzLjk3IDAgNi44NS0uNjMgOS0xIC41Ny0yLjAyIDEtMy45OSAxLTcgMC0zLjAzLS40NS01LjA1LTEtNy0yLjE1LS4zNy00Ljk4LTEtOS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGFub3JhbWFXaWRlQW5nbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDZjMi40NSAwIDQuNzEuMiA3LjI5LjY0LjQ3IDEuNzguNzEgMy41OC43MSA1LjM2cy0uMjQgMy41OC0uNzEgNS4zNmMtMi41OC40NC00Ljg0LjY0LTcuMjkuNjRzLTQuNzEtLjItNy4yOS0uNjRDNC4yNCAxNS41OCA0IDEzLjc4IDQgMTJzLjI0LTMuNTguNzEtNS4zNkM3LjI5IDYuMiA5LjU1IDYgMTIgNm0wLTJjLTIuNzMgMC01LjIyLjI0LTcuOTUuNzJsLS45My4xNi0uMjUuOUMyLjI5IDcuODUgMiA5LjkzIDIgMTJzLjI5IDQuMTUuODcgNi4yMmwuMjUuODkuOTMuMTZjMi43My40OSA1LjIyLjczIDcuOTUuNzNzNS4yMi0uMjQgNy45NS0uNzJsLjkzLS4xNi4yNS0uODljLjU4LTIuMDguODctNC4xNi44Ny02LjIzcy0uMjktNC4xNS0uODctNi4yMmwtLjI1LS44OS0uOTMtLjE2QzE3LjIyIDQuMjQgMTQuNzMgNCAxMiA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGFub3JhbWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDRIM2MtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE0SDNWNmgxOHYxMnptLTYuNS03TDExIDE1LjUxIDguNSAxMi41IDUgMTdoMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaG90b0FsYnVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMkg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMThINlY0aDV2N2wyLjUtMS41TDE2IDExVjRoMnYxNnptLTQuMzgtNi41TDE3IDE4SDdsMi4zOC0zLjE3TDExIDE3bDIuNjItMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvdG9DYW1lcmFCYWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNWgtMy4xN0wxNSAzSDlMNy4xNyA1SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMnptMCAxNEg0VjdoNC4wNWwxLjgzLTJoNC4yNGwxLjgzIDJIMjB2MTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjI1IDE2IDkgMTNsLTMgNGgxMmwtMy43NS01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvdG9DYW1lcmFGcm9udCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDVoLTMuMTdMMTUgM0g5TDcuMTcgNUg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bTAgMTRINFY3aDQuMDVsMS44My0yaDQuMjRsMS44MyAySDIwdjEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTFcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNzggMTQuNThhNi45NSA2Ljk1IDAgMCAwLTUuNTYgMEEyLjAxIDIuMDEgMCAwIDAgOCAxNi40M1YxN2g4di0uNTdjMC0uODEtLjQ4LTEuNTMtMS4yMi0xLjg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvdG9DYW1lcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0LjEyIDQgMS44MyAySDIwdjEySDRWNmg0LjA1bDEuODMtMmg0LjI0TTE1IDJIOUw3LjE3IDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yaC0zLjE3TDE1IDJ6bS0zIDdjMS42NSAwIDMgMS4zNSAzIDNzLTEuMzUgMy0zIDMtMy0xLjM1LTMtMyAxLjM1LTMgMy0zbTAtMmMtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaG90b0ZpbHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTB2OUg0Ljk4VjVoOVYzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTloLTJ6bS0yLjk0LTIuMDZMMTcgMTBsLjk0LTIuMDZMMjAgN2wtMi4wNi0uOTRMMTcgNGwtLjk0IDIuMDZMMTQgN3pNMTIgOGwtMS4yNSAyLjc1TDggMTJsMi43NSAxLjI1TDEyIDE2bDEuMjUtMi43NUwxNiAxMmwtMi43NS0xLjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvdG9MaWJyYXJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0djEySDhWNGgxMm0wLTJIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tOC41IDkuNjcgMS42OSAyLjI2IDIuNDgtMy4xTDE5IDE1SDl6TTIgNnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNkgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvdG9TaXplU2VsZWN0QWN0dWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNDMiAzIDEgNCAxIDV2MTRjMCAxLjEuOSAyIDIgMmgxOGMxIDAgMi0xIDItMlY1YzAtMS0xLTItMi0yem0wIDE1LjkyYy0uMDIuMDMtLjA2LjA2LS4wOC4wOEgzVjUuMDhMMy4wOCA1aDE3LjgzYy4wMy4wMi4wNi4wNi4wOC4wOHYxMy44NHptLTEwLTMuNDFMOC41IDEyLjUgNSAxN2gxNGwtNC41LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaG90b1NpemVTZWxlY3RMYXJnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTVoMnYyaC0ydi0yem0wLTRoMnYyaC0ydi0yem0yIDhoLTJ2MmMxIDAgMi0xIDItMnpNMTMgM2gydjJoLTJWM3ptOCA0aDJ2MmgtMlY3em0wLTR2MmgyYzAtMS0xLTItMi0yek0xIDdoMnYySDFWN3ptMTYtNGgydjJoLTJWM3ptMCAxNmgydjJoLTJ2LTJ6TTMgM0MyIDMgMSA0IDEgNWgyVjN6bTYgMGgydjJIOVYzek01IDNoMnYySDVWM3ptLTQgOHY4YzAgMS4xLjkgMiAyIDJoMTJWMTFIMXptMiA4IDIuNS0zLjIxIDEuNzkgMi4xNSAyLjUtMy4yMkwxMyAxOUgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvdG9TaXplU2VsZWN0U21hbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzIDE1aC0ydjJoMnYtMnptMC00aC0ydjJoMnYtMnptMCA4aC0ydjJjMSAwIDItMSAyLTJ6TTE1IDNoLTJ2MmgyVjN6bTggNGgtMnYyaDJWN3ptLTItNHYyaDJjMC0xLTEtMi0yLTJ6TTMgMjFoOHYtNkgxdjRjMCAxLjEuOSAyIDIgMnpNMyA3SDF2MmgyVjd6bTEyIDEyaC0ydjJoMnYtMnptNC0xNmgtMnYyaDJWM3ptMCAxNmgtMnYyaDJ2LTJ6TTMgM0MyIDMgMSA0IDEgNWgyVjN6bTAgOEgxdjJoMnYtMnptOC04SDl2MmgyVjN6TTcgM0g1djJoMlYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvdG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDV2MTRINVY1aDE0bTAtMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS00Ljg2IDguODYtMyAzLjg3TDkgMTMuMTQgNiAxN2gxMmwtMy44Ni01LjE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGljdHVyZUFzUGRmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNEg4VjRoMTJ2MTJ6TTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2em0xMiA2VjljMC0uNTUtLjQ1LTEtMS0xaC0ydjVoMmMuNTUgMCAxLS40NSAxLTF6bS0yLTNoMXYzaC0xVjl6bTQgMmgxdi0xaC0xVjloMVY4aC0ydjVoMXptLTggMGgxYy41NSAwIDEtLjQ1IDEtMVY5YzAtLjU1LS40NS0xLTEtMUg5djVoMXYtMnptMC0yaDF2MWgtMVY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUG9ydHJhaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEyYzEuNjUgMCAzLTEuMzUgMy0zcy0xLjM1LTMtMy0zLTMgMS4zNS0zIDMgMS4zNSAzIDMgM3ptMC00Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTYgOC41OGMwLTIuNS0zLjk3LTMuNTgtNi0zLjU4cy02IDEuMDgtNiAzLjU4VjE4aDEydi0xLjQyek04LjQ4IDE2Yy43NC0uNTEgMi4yMy0xIDMuNTItMXMyLjc4LjQ5IDMuNTIgMUg4LjQ4ek0xOSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmF3T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcuMTUgMTQuMzIuNTktMi4zNi43NiAzLjA0aDEuNDhsMS41LTZoLTEuNWwtLjc0IDMtLjc0LTNoLTEuNTJsLS43NCAzLS43NC0zSDE0bC43MiAyLjl6TTEuMzkgNC4yMiA2LjE3IDlIM3Y2aDEuNXYtMmgxLjFsLjkgMkg4bC0uOS0yLjFjLjUtLjMuOS0uOC45LTEuNHYtLjY3bDEuNDMgMS40M0w4Ljc1IDE1aDEuNWwuMzgtMS41aC4wNGw5LjExIDkuMTEgMS40MS0xLjQxTDIuODEgMi44MSAxLjM5IDQuMjJ6TTYuNSAxMS41aC0ydi0xaDJ2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJhd09uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41IDlIM3Y2aDEuNXYtMmgxLjFsLjkgMkg4bC0uOS0yLjFjLjUtLjMuOS0uOC45LTEuNHYtMUM4IDkuNyA3LjMgOSA2LjUgOXptMCAyLjVoLTJ2LTFoMnYxek0xMC4yNSA5bC0xLjUgNmgxLjVsLjM4LTEuNWgxLjc1bC4zNyAxLjVoMS41bC0xLjUtNmgtMi41em0uNzUgMyAuMjUtMWguNWwuMjUgMWgtMXpNMTkuOTggOWwtLjc0IDMtLjc0LTNoLTEuNTJsLS43NCAzLS43NC0zSDE0bDEuNSA2aDEuNDhsLjc2LTMuMDQuNzYgMy4wNGgxLjQ4bDEuNS02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVjZWlwdExvbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjUgMy41IDE4IDJsLTEuNSAxLjVMMTUgMmwtMS41IDEuNUwxMiAybC0xLjUgMS41TDkgMiA3LjUgMy41IDYgMnYxNEgzdjNjMCAxLjY2IDEuMzQgMyAzIDNoMTJjMS42NiAwIDMtMS4zNCAzLTNWMmwtMS41IDEuNXpNMTUgMjBINmMtLjU1IDAtMS0uNDUtMS0xdi0xaDEwdjJ6bTQtMWMwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMXYtM0g4VjVoMTF2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgN2g2djJIOXpNMTYgN2gydjJoLTJ6TTkgMTBoNnYySDl6TTE2IDEwaDJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlbW92ZVJlZEV5ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNi41YTkuNzcgOS43NyAwIDAgMSA4LjgyIDUuNWMtMS42NSAzLjM3LTUuMDIgNS41LTguODIgNS41UzQuODMgMTUuMzcgMy4xOCAxMkE5Ljc3IDkuNzcgMCAwIDEgMTIgNi41bTAtMkM3IDQuNSAyLjczIDcuNjEgMSAxMmMxLjczIDQuMzkgNiA3LjUgMTEgNy41czkuMjctMy4xMSAxMS03LjVjLTEuNzMtNC4zOS02LTcuNS0xMS03LjV6bTAgNWEyLjUgMi41IDAgMCAxIDAgNSAyLjUgMi41IDAgMCAxIDAtNW0wLTJjLTIuNDggMC00LjUgMi4wMi00LjUgNC41czIuMDIgNC41IDQuNSA0LjUgNC41LTIuMDIgNC41LTQuNS0yLjAyLTQuNS00LjUtNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUm90YXRlOTBEZWdyZWVzQ2N3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjM0IDYuNDEuODYgMTIuOWw2LjQ5IDYuNDggNi40OS02LjQ4LTYuNS02LjQ5ek0zLjY5IDEyLjlsMy42Ni0zLjY2TDExIDEyLjlsLTMuNjYgMy42Ni0zLjY1LTMuNjZ6bTE1LjY3LTYuMjZBOC45NSA4Ljk1IDAgMCAwIDEzIDRWLjc2TDguNzYgNSAxMyA5LjI0VjZjMS43OSAwIDMuNTguNjggNC45NSAyLjA1YTcuMDA3IDcuMDA3IDAgMCAxIDAgOS45IDYuOTczIDYuOTczIDAgMCAxLTcuNzkgMS40NGwtMS40OSAxLjQ5QzEwLjAyIDIxLjYyIDExLjUxIDIyIDEzIDIyYzIuMyAwIDQuNjEtLjg4IDYuMzYtMi42NGE4Ljk4IDguOTggMCAwIDAgMC0xMi43MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJvdGF0ZTkwRGVncmVlc0N3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxM2E5IDkgMCAwIDAgMTMuNzkgNy42MmwtMS40Ni0xLjQ2Yy0uOTkuNTMtMi4xMy44NC0zLjMzLjg0LTMuODYgMC03LTMuMTQtNy03czMuMTQtNyA3LTdoLjE3TDkuNTkgNy41OSAxMSA5bDQtNC00LTQtMS40MiAxLjQxTDExLjE3IDRIMTFhOSA5IDAgMCAwLTkgOXptOSAwIDYgNiA2LTYtNi02LTYgNnptNiAzLjE3TDEzLjgzIDEzIDE3IDkuODMgMjAuMTcgMTMgMTcgMTYuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSb3RhdGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjExIDguNTMgNS43IDcuMTFDNC44IDguMjcgNC4yNCA5LjYxIDQuMDcgMTFoMi4wMmMuMTQtLjg3LjQ5LTEuNzIgMS4wMi0yLjQ3ek02LjA5IDEzSDQuMDdjLjE3IDEuMzkuNzIgMi43MyAxLjYyIDMuODlsMS40MS0xLjQyYy0uNTItLjc1LS44Ny0xLjU5LTEuMDEtMi40N3ptMS4wMSA1LjMyYzEuMTYuOSAyLjUxIDEuNDQgMy45IDEuNjFWMTcuOWMtLjg3LS4xNS0xLjcxLS40OS0yLjQ2LTEuMDNMNy4xIDE4LjMyek0xMyA0LjA3VjFMOC40NSA1LjU1IDEzIDEwVjYuMDljMi44NC40OCA1IDIuOTQgNSA1Ljkxcy0yLjE2IDUuNDMtNSA1LjkxdjIuMDJjMy45NS0uNDkgNy0zLjg1IDctNy45M3MtMy4wNS03LjQ0LTctNy45M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJvdGF0ZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41NSA1LjU1IDExIDF2My4wN0M3LjA2IDQuNTYgNCA3LjkyIDQgMTJzMy4wNSA3LjQ0IDcgNy45M3YtMi4wMmMtMi44NC0uNDgtNS0yLjk0LTUtNS45MXMyLjE2LTUuNDMgNS01LjkxVjEwbDQuNTUtNC40NXpNMTkuOTMgMTFhNy45MDYgNy45MDYgMCAwIDAtMS42Mi0zLjg5bC0xLjQyIDEuNDJjLjU0Ljc1Ljg4IDEuNiAxLjAyIDIuNDdoMi4wMnpNMTMgMTcuOXYyLjAyYzEuMzktLjE3IDIuNzQtLjcxIDMuOS0xLjYxbC0xLjQ0LTEuNDRjLS43NS41NC0xLjU5Ljg5LTIuNDYgMS4wM3ptMy44OS0yLjQyIDEuNDIgMS40MWMuOS0xLjE2IDEuNDUtMi41IDEuNjItMy44OWgtMi4wMmMtLjE0Ljg3LS40OCAxLjcyLTEuMDIgMi40OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNodXR0ZXJTcGVlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMUg5djJoNlYxem00LjAzIDYuMzkgMS40Mi0xLjQyYy0uNDMtLjUxLS45LS45OS0xLjQxLTEuNDFsLTEuNDIgMS40MkE4Ljk2MiA4Ljk2MiAwIDAgMCAxMiA0Yy00Ljk3IDAtOSA0LjAzLTkgOXM0LjAyIDkgOSA5YTguOTk0IDguOTk0IDAgMCAwIDcuMDMtMTQuNjF6TTEyIDIwYy0zLjg3IDAtNy0zLjEzLTctN3MzLjEzLTcgNy03IDcgMy4xMyA3IDctMy4xMyA3LTcgN3ptLS4zMi01SDYuMzVhNS45OTIgNS45OTIgMCAwIDAgMy40MSAzLjU2bC0uMTEtLjA2IDIuMDMtMy41em01Ljk3LTRhNi4wMTIgNi4wMTIgMCAwIDAtMy4zNC0zLjU0TDEyLjI2IDExaDUuMzl6bS03LjA0IDcuODNjLjQ1LjExLjkxLjE3IDEuMzkuMTcgMS4zNCAwIDIuNTctLjQ1IDMuNTctMS4xOWwtMi4xMS0zLjktMi44NSA0Ljkyek03LjU1IDguOTlBNS45NjUgNS45NjUgMCAwIDAgNiAxM2MwIC4zNC4wNC42Ny4wOSAxaDQuNzJMNy41NSA4Ljk5em04Ljc5IDguMTRBNS45NCA1Ljk0IDAgMCAwIDE4IDEzYzAtLjM0LS4wNC0uNjctLjA5LTFoLTQuMzRsMi43NyA1LjEzem0tMy4wMS05Ljk4QzEyLjkgNy4wNiAxMi40NiA3IDEyIDdjLTEuNCAwLTIuNjkuNDktMy43MSAxLjI5bDIuMzIgMy41NiAyLjcyLTQuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNsaWRlc2hvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgOHY4bDUtNC01LTR6bTktNUg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3RyYWlnaHRlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNkgzYy0xLjEgMC0yIC45LTIgMnY4YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptMCAxMEgzVjhoMnY0aDJWOGgydjRoMlY4aDJ2NGgyVjhoMnY0aDJWOGgydjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdHlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMi41MyAxOS42NSAxLjM0LjU2di05LjAzbC0yLjQzIDUuODZjLS40MSAxLjAyLjA4IDIuMTkgMS4wOSAyLjYxem0xOS41LTMuN0wxNy4wNyAzLjk4YTIuMDEzIDIuMDEzIDAgMCAwLTEuODEtMS4yM2MtLjI2IDAtLjUzLjA0LS43OS4xNUw3LjEgNS45NWExLjk5OSAxLjk5OSAwIDAgMC0xLjA4IDIuNmw0Ljk2IDExLjk3YTEuOTk4IDEuOTk4IDAgMCAwIDIuNiAxLjA4bDcuMzYtMy4wNWExLjk5NCAxLjk5NCAwIDAgMCAxLjA5LTIuNnptLTkuMiAzLjhMNy44NyA3Ljc5bDcuMzUtMy4wNGguMDFsNC45NSAxMS45NS03LjM1IDMuMDV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTFcIixcImN5XCI6XCI5XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuODggMTkuNzVjMCAxLjEuOSAyIDIgMmgxLjQ1bC0zLjQ1LTguMzR2Ni4zNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN3aXRjaENhbWVyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNGgtMy4xN0wxNSAySDlMNy4xNyA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNOS44OCA0aDQuMjRsMS44MyAySDIwdjEySDRWNmg0LjA1XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDExSDlWOC41TDUuNSAxMiA5IDE1LjVWMTNoNnYyLjVsMy41LTMuNUwxNSA4LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTd2l0Y2hWaWRlbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxM2g0djJsMy0zLTMtM3YySDhWOWwtMyAzIDMgM3ptMTAtMy41VjZjMC0uNTUtLjQ1LTEtMS0xSDNjLS41NSAwLTEgLjQ1LTEgMXYxMmMwIC41NS40NSAxIDEgMWgxNGMuNTUgMCAxLS40NSAxLTF2LTMuNWw0IDR2LTEzbC00IDR6TTE2IDE3SDRWN2gxMnYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRhZ0ZhY2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bTMuNS05Yy44MyAwIDEuNS0uNjcgMS41LTEuNVMxNi4zMyA4IDE1LjUgOCAxNCA4LjY3IDE0IDkuNXMuNjcgMS41IDEuNSAxLjV6bS03IDBjLjgzIDAgMS41LS42NyAxLjUtMS41UzkuMzMgOCA4LjUgOCA3IDguNjcgNyA5LjUgNy42NyAxMSA4LjUgMTF6bTMuNSA2LjVjMi4zMyAwIDQuMzEtMS40NiA1LjExLTMuNUg2Ljg5Yy44IDIuMDQgMi43OCAzLjUgNS4xMSAzLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUZXh0dXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS41MSAzLjA4IDMuMDggMTkuNTFjLjA5LjM0LjI3LjY1LjUxLjkuMjUuMjQuNTYuNDIuOS41MUwyMC45MyA0LjQ5Yy0uMTktLjY5LS43My0xLjIzLTEuNDItMS40MXpNMTEuODggMyAzIDExLjg4djIuODNMMTQuNzEgM2gtMi44M3pNNSAzYy0xLjEgMC0yIC45LTIgMnYybDQtNEg1em0xNCAxOGMuNTUgMCAxLjA1LS4yMiAxLjQxLS41OS4zNy0uMzYuNTktLjg2LjU5LTEuNDF2LTJsLTQgNGgyem0tOS43MSAwaDIuODNMMjEgMTIuMTJWOS4yOUw5LjI5IDIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGhlcm1vc3RhdEF1dG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxMlY2YzAtMS42Ni0xLjM0LTMtMy0zUzUgNC4zNCA1IDZ2NmMtMS4yMS45MS0yIDIuMzctMiA0IDAgMS4xMi4zOCAyLjE0IDEgMi45N1YxOWguMDJjLjkxIDEuMjEgMi4zNSAyIDMuOTggMnMzLjA2LS43OSAzLjk4LTJIMTJ2LS4wM2MuNjItLjgzIDEtMS44NSAxLTIuOTcgMC0xLjYzLS43OS0zLjA5LTItNHptLTYgNGMwLS45NC40NS0xLjg0IDEuMi0yLjRMNyAxM1Y2YzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXY3bC44LjZjLjc1LjU3IDEuMiAxLjQ2IDEuMiAyLjRINXpNMTguNjIgNGgtMS42MWwtMy4zOCA5aDEuNTZsLjgxLTIuM2gzLjYzbC44IDIuM0gyMmwtMy4zOC05em0tMi4xNSA1LjM5IDEuMzEtMy43MmguMDhsMS4zMSAzLjcyaC0yLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUaW1lbGFwc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjI0IDcuNzVBNS45NzQgNS45NzQgMCAwIDAgMTIgNS45OXY2bC00LjI0IDQuMjRjMi4zNCAyLjM0IDYuMTQgMi4zNCA4LjQ5IDBhNS45OSA1Ljk5IDAgMCAwLS4wMS04LjQ4ek0xMiAxLjk5Yy01LjUyIDAtMTAgNC40OC0xMCAxMHM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTAtNC40OC0xMC0xMC0xMHptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUaW1lcjEwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0tLjAxIDcuNzJWOS40bDMtMVYxOGgyVjZoLS4yNUwtLjAxIDcuNzJ6bTIzLjc4IDYuNjVjLS4xNC0uMjgtLjM1LS41My0uNjMtLjc0LS4yOC0uMjEtLjYxLS4zOS0xLjAxLS41M3MtLjg1LS4yNy0xLjM1LS4zOGE2LjY0IDYuNjQgMCAwIDEtLjg3LS4yM2MtLjIzLS4wOC0uNDEtLjE2LS41NS0uMjVzLS4yMy0uMTktLjI4LS4zYS45NzguOTc4IDAgMCAxIC4wMS0uOGMuMDYtLjEzLjE1LS4yNS4yNy0uMzQuMTItLjEuMjctLjE4LjQ1LS4yNHMuNC0uMDkuNjQtLjA5Yy4yNSAwIC40Ny4wNC42Ni4xMXMuMzUuMTcuNDguMjkuMjIuMjYuMjkuNDJjLjA2LjE2LjEuMzIuMS40OWgxLjk1QTIuNTE3IDIuNTE3IDAgMCAwIDIzIDkuODFjLS4zLS4yNS0uNjYtLjQ0LTEuMDktLjU5LS40My0uMTUtLjkyLS4yMi0xLjQ2LS4yMi0uNTEgMC0uOTguMDctMS4zOS4yMXMtLjc3LjMzLTEuMDYuNTdjLS4yOS4yNC0uNTEuNTItLjY3Ljg0LS4xNi4zMi0uMjMuNjUtLjIzIDEuMDFzLjA4LjY5LjIzLjk2Yy4xNS4yOC4zNi41Mi42NC43My4yNy4yMS42LjM4Ljk4LjUzLjM4LjE0LjgxLjI2IDEuMjcuMzYuMzkuMDguNzEuMTcuOTUuMjZzLjQzLjE5LjU3LjI5Yy4xMy4xLjIyLjIyLjI3LjM0LjA1LjEyLjA3LjI1LjA3LjM5IDAgLjMyLS4xMy41Ny0uNC43N3MtLjY2LjI5LTEuMTcuMjljLS4yMiAwLS40My0uMDItLjY0LS4wOC0uMjEtLjA1LS40LS4xMy0uNTYtLjI0YTEuMzMzIDEuMzMzIDAgMCAxLS41OS0xLjExaC0xLjg5YzAgLjM2LjA4LjcxLjI0IDEuMDVzLjM5LjY1LjcuOTNjLjMxLjI3LjY5LjQ5IDEuMTUuNjZzLjk4LjI1IDEuNTguMjVjLjUzIDAgMS4wMS0uMDYgMS40NC0uMTkuNDMtLjEzLjgtLjMxIDEuMTEtLjU0LjMxLS4yMy41NC0uNTEuNzEtLjgzLjE3LS4zMi4yNS0uNjcuMjUtMS4wNi0uMDItLjQtLjA5LS43NC0uMjQtMS4wMnptLTkuOTYtNy4zMmMtLjM0LS40LS43NS0uNy0xLjIzLS44OC0uNDctLjE4LTEuMDEtLjI3LTEuNTktLjI3cy0xLjExLjA5LTEuNTkuMjdjLS40OC4xOC0uODkuNDctMS4yMy44OC0uMzQuNDEtLjYuOTMtLjc5IDEuNTktLjE4LjY1LS4yOCAxLjQ1LS4yOCAyLjM5djEuOTJjMCAuOTQuMDkgMS43NC4yOCAyLjM5LjE5LjY2LjQ1IDEuMTkuOCAxLjYuMzQuNDEuNzUuNzEgMS4yMy44OXMxLjAxLjI4IDEuNTkuMjhjLjU5IDAgMS4xMi0uMDkgMS41OS0uMjguNDgtLjE4Ljg4LS40OCAxLjIyLS44OXMuNi0uOTQuNzgtMS42Yy4xOC0uNjUuMjgtMS40NS4yOC0yLjM5di0xLjkyYzAtLjk0LS4wOS0xLjc0LS4yOC0yLjM5LS4xOC0uNjYtLjQ0LTEuMTktLjc4LTEuNTl6bS0uOTIgNi4xN2MwIC42LS4wNCAxLjExLS4xMiAxLjUzcy0uMi43Ni0uMzYgMS4wMmMtLjE2LjI2LS4zNi40NS0uNTkuNTctLjIzLjEyLS41MS4xOC0uODIuMTgtLjMgMC0uNTgtLjA2LS44Mi0uMThzLS40NC0uMzEtLjYtLjU3Yy0uMTYtLjI2LS4yOS0uNi0uMzgtMS4wMnMtLjEzLS45My0uMTMtMS41M3YtMi41YzAtLjYuMDQtMS4xMS4xMy0xLjUycy4yMS0uNzQuMzgtMWMuMTYtLjI1LjM2LS40My42LS41NS4yNC0uMTEuNTEtLjE3LjgxLS4xNy4zMSAwIC41OC4wNi44MS4xNy4yNC4xMS40NC4yOS42LjU1LjE2LjI1LjI5LjU4LjM3Ljk5cy4xMy45Mi4xMyAxLjUydjIuNTFoLS4wMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRpbWVyMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNjEgMTIuOTdjLS4xNi0uMjQtLjM2LS40Ni0uNjItLjY1YTMuMzggMy4zOCAwIDAgMC0uOTMtLjQ4Yy4zLS4xNC41Ny0uMy44LS41LjIzLS4yLjQyLS40MS41Ny0uNjQuMTUtLjIzLjI3LS40Ni4zNC0uNzEuMDgtLjI0LjExLS40OS4xMS0uNzMgMC0uNTUtLjA5LTEuMDQtLjI4LTEuNDYtLjE4LS40Mi0uNDQtLjc3LS43OC0xLjA2LS4zMy0uMjgtLjczLS41LTEuMi0uNjQtLjQ1LS4xMy0uOTctLjItMS41My0uMi0uNTUgMC0xLjA2LjA4LTEuNTIuMjQtLjQ3LjE3LS44Ny40LTEuMi42OS0uMzMuMjktLjYuNjMtLjc4IDEuMDMtLjIuMzktLjI5LjgzLS4yOSAxLjI5aDEuOThjMC0uMjYuMDUtLjQ5LjE0LS42OS4wOS0uMi4yMi0uMzguMzgtLjUyLjE3LS4xNC4zNi0uMjUuNTgtLjMzcy40Ni0uMTIuNzMtLjEyYy42MSAwIDEuMDYuMTYgMS4zNi40Ny4zLjMxLjQ0Ljc1LjQ0IDEuMzIgMCAuMjctLjA0LjUyLS4xMi43NC0uMDguMjItLjIxLjQxLS4zOC41N3MtLjM4LjI4LS42My4zNy0uNTUuMTMtLjg5LjEzSDYuNzJ2MS41N0g3LjljLjM0IDAgLjY0LjA0LjkxLjExLjI3LjA4LjUuMTkuNjkuMzUuMTkuMTYuMzQuMzYuNDQuNjEuMS4yNC4xNi41NC4xNi44NyAwIC42Mi0uMTggMS4wOS0uNTMgMS40Mi0uMzUuMzMtLjg0LjQ5LTEuNDUuNDktLjI5IDAtLjU2LS4wNC0uOC0uMTMtLjI0LS4wOC0uNDQtLjItLjYxLS4zNnMtLjMtLjM0LS4zOS0uNTZjLS4wOS0uMjItLjE0LS40Ni0uMTQtLjcySDQuMTljMCAuNTUuMTEgMS4wMy4zMiAxLjQ1LjIxLjQyLjUuNzcuODYgMS4wNXMuNzcuNDkgMS4yNC42My45Ni4yMSAxLjQ4LjIxYy41NyAwIDEuMDktLjA4IDEuNTgtLjIzcy45MS0uMzggMS4yNi0uNjhjLjM2LS4zLjY0LS42Ni44NC0xLjEuMi0uNDMuMy0uOTMuMy0xLjQ4IDAtLjI5LS4wNC0uNTgtLjExLS44Ni0uMDgtLjI1LS4xOS0uNTEtLjM1LS43NnptOS4yNiAxLjRjLS4xNC0uMjgtLjM1LS41My0uNjMtLjc0LS4yOC0uMjEtLjYxLS4zOS0xLjAxLS41M3MtLjg1LS4yNy0xLjM1LS4zOGE2LjY0IDYuNjQgMCAwIDEtLjg3LS4yM2MtLjIzLS4wOC0uNDEtLjE2LS41NS0uMjVzLS4yMy0uMTktLjI4LS4zYy0uMDUtLjExLS4wOC0uMjQtLjA4LS4zOXMuMDMtLjI4LjA5LS40MS4xNS0uMjUuMjctLjM0Yy4xMi0uMS4yNy0uMTguNDUtLjI0cy40LS4wOS42NC0uMDljLjI1IDAgLjQ3LjA0LjY2LjExcy4zNS4xNy40OC4yOS4yMi4yNi4yOS40MmMuMDYuMTYuMS4zMi4xLjQ5aDEuOTVhMi41MTcgMi41MTcgMCAwIDAtLjkzLTEuOTdjLS4zLS4yNS0uNjYtLjQ0LTEuMDktLjU5LS40My0uMTUtLjkyLS4yMi0xLjQ2LS4yMi0uNTEgMC0uOTguMDctMS4zOS4yMXMtLjc3LjMzLTEuMDYuNTdjLS4yOS4yNC0uNTEuNTItLjY3Ljg0cy0uMjMuNjUtLjIzIDEuMDEuMDguNjguMjMuOTYuMzcuNTIuNjQuNzNjLjI3LjIxLjYuMzguOTguNTMuMzguMTQuODEuMjYgMS4yNy4zNi4zOS4wOC43MS4xNy45NS4yNnMuNDMuMTkuNTcuMjljLjEzLjEuMjIuMjIuMjcuMzQuMDUuMTIuMDcuMjUuMDcuMzkgMCAuMzItLjEzLjU3LS40Ljc3cy0uNjYuMjktMS4xNy4yOWMtLjIyIDAtLjQzLS4wMi0uNjQtLjA4LS4yMS0uMDUtLjQtLjEzLS41Ni0uMjRhMS4zMzMgMS4zMzMgMCAwIDEtLjU5LTEuMTFoLTEuODljMCAuMzYuMDguNzEuMjQgMS4wNXMuMzkuNjUuNy45M2MuMzEuMjcuNjkuNDkgMS4xNS42Ni40Ni4xNy45OC4yNSAxLjU4LjI1LjUzIDAgMS4wMS0uMDYgMS40NC0uMTkuNDMtLjEzLjgtLjMxIDEuMTEtLjU0LjMxLS4yMy41NC0uNTEuNzEtLjgzLjE3LS4zMi4yNS0uNjcuMjUtMS4wNi0uMDItLjQtLjA5LS43NC0uMjQtMS4wMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRpbWVyT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxaDZ2Mkg5ek0xMiA2YzMuODcgMCA3IDMuMTMgNyA3IDAgLjk0LS4xOSAxLjgzLS41MiAyLjY1bDEuNSAxLjVhOC45NjMgOC45NjMgMCAwIDAtLjk1LTkuNzZsMS40Mi0xLjQyYy0uNDMtLjUxLS45LS45OS0xLjQxLTEuNDFsLTEuNDIgMS40MmE4Ljk2MiA4Ljk2MiAwIDAgMC05Ljc3LS45NmwxLjUgMS41QTcuMDcgNy4wNyAwIDAgMSAxMiA2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMSA4LjE3IDIgMlY4aC0yek0yLjgxIDIuODEgMS4zOSA0LjIybDMuNCAzLjRhOC45OTQgOC45OTQgMCAwIDAgMTIuNTkgMTIuNTlsMi40IDIuNCAxLjQxLTEuNDFMMi44MSAyLjgxek0xMiAyMGMtMy44NyAwLTctMy4xMy03LTcgMC0xLjQ3LjQ1LTIuODMgMS4yMi0zLjk1bDkuNzMgOS43M0E2Ljk0NSA2Ljk0NSAwIDAgMSAxMiAyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRpbWVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMUg5djJoNlYxem0tNCAxM2gyVjhoLTJ2NnptOC4wMy02LjYxIDEuNDItMS40MmMtLjQzLS41MS0uOS0uOTktMS40MS0xLjQxbC0xLjQyIDEuNDJBOC45NjIgOC45NjIgMCAwIDAgMTIgNGMtNC45NyAwLTkgNC4wMy05IDlzNC4wMiA5IDkgOWE4Ljk5NCA4Ljk5NCAwIDAgMCA3LjAzLTE0LjYxek0xMiAyMGMtMy44NyAwLTctMy4xMy03LTdzMy4xMy03IDctNyA3IDMuMTMgNyA3LTMuMTMgNy03IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUb25hbGl0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptLTEgMTcuOTNjLTMuOTQtLjQ5LTctMy44NS03LTcuOTNzMy4wNS03LjQ0IDctNy45M3YxNS44NnptMi0xNS44NmMxLjAzLjEzIDIgLjQ1IDIuODcuOTNIMTN2LS45M3pNMTMgN2g1LjI0Yy4yNS4zMS40OC42NS42OCAxSDEzVjd6bTAgM2g2Ljc0Yy4wOC4zMy4xNS42Ni4xOSAxSDEzdi0xem0wIDkuOTNWMTloMi44N2MtLjg3LjQ4LTEuODQuOC0yLjg3Ljkzek0xOC4yNCAxN0gxM3YtMWg1LjkyYy0uMi4zNS0uNDMuNjktLjY4IDF6bTEuNS0zSDEzdi0xaDYuOTNjLS4wNC4zNC0uMTEuNjctLjE5IDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUcmFuc2Zvcm0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDE4di0ySDhWNGgyTDcgMSA0IDRoMnYySDJ2Mmg0djhjMCAxLjEuOSAyIDIgMmg4djJoLTJsMyAzIDMtM2gtMnYtMmg0ek0xMCA4aDZ2NmgyVjhjMC0xLjEtLjktMi0yLTJoLTZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVR1bmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTd2Mmg2di0ySDN6TTMgNXYyaDEwVjVIM3ptMTAgMTZ2LTJoOHYtMmgtOHYtMmgtMnY2aDJ6TTcgOXYySDN2Mmg0djJoMlY5SDd6bTE0IDR2LTJIMTF2MmgxMHptLTYtNGgyVjdoNFY1aC00VjNoLTJ2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpZGVvQ2FtZXJhQmFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDEwLjQ4VjZjMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMnYtNC40OGw0IDMuOTh2LTExbC00IDMuOTh6TTE2IDE4SDRWNmgxMnYxMnptLTQuMzgtNi41TDkgMTVsLTEuNjItMi4xN0w1IDE2aDEwbC0zLjM4LTQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpZGVvQ2FtZXJhRnJvbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxMC40OFY2YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJ2LTQuNDhsNCAzLjk4di0xMWwtNCAzLjk4em0tMi0uNzlWMThINFY2aDEydjMuNjl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTBcIixcImN5XCI6XCIxMFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxNS40M2MwLS44MS0uNDgtMS41My0xLjIyLTEuODVhNi45NSA2Ljk1IDAgMCAwLTUuNTYgMEEyLjAxIDIuMDEgMCAwIDAgNiAxNS40M1YxNmg4di0uNTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWRlb1N0YWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yek00IDE4VjZoMi45NWwtMi4zMyA4LjczTDE2LjgyIDE4SDR6bTExLjYyLTIuMzktOC41NS0yLjI5TDguMzggOC40bDguNTYgMi4yOS0xLjMyIDQuOTJ6TTIwIDE4aC0yLjk1bDIuMzQtOC43M0w3LjE4IDZIMjB2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWV3Q29tZnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDR2MTZoMjBWNEgyem0yIDJoMTZ2NUg0VjZ6bTAgMTJ2LTVoNHY1SDR6bTYgMHYtNWgxMHY1SDEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlld0NvbXBhY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDR2MTZoMjBWNEgyem00LjUgMTRINHYtMi41aDIuNVYxOHptMC00Ljc1SDR2LTIuNWgyLjV2Mi41em0wLTQuNzVINFY2aDIuNXYyLjV6TTExIDE4SDguNXYtMi41SDExVjE4em0wLTQuNzVIOC41di0yLjVIMTF2Mi41em0wLTQuNzVIOC41VjZIMTF2Mi41em00LjUgOS41SDEzdi0yLjVoMi41VjE4em0wLTQuNzVIMTN2LTIuNWgyLjV2Mi41em0wLTQuNzVIMTNWNmgyLjV2Mi41ek0yMCAxOGgtMi41di0yLjVIMjBWMTh6bTAtNC43NWgtMi41di0yLjVIMjB2Mi41em0wLTQuNzVoLTIuNVY2SDIwdjIuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpZ25ldHRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA1djE0SDNWNWgxOG0wLTJIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tOSA1YzMuMjUgMCA2IDEuODMgNiA0cy0yLjc1IDQtNiA0LTYtMS44My02LTQgMi43NS00IDYtNG0wLTJjLTQuNDIgMC04IDIuNjktOCA2czMuNTggNiA4IDYgOC0yLjY5IDgtNi0zLjU4LTYtOC02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVnJwYW5vIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuMDEgNEMyMC40NSA0IDE3LjQgNS41IDEyIDUuNWMtNS4zMSAwLTguNDktMS40OS05LjAxLTEuNDktLjUzIDAtLjk5LjQ0LS45OSAxLjAxVjE5YzAgLjU3LjQ2IDEgLjk5IDEgLjU3IDAgMy41NS0xLjUgOS4wMS0xLjUgNS40MiAwIDguNDQgMS41IDkuMDEgMS41LjUzIDAgLjk5LS40My45OS0xVjVjMC0uNTctLjQ2LTEtLjk5LTF6TTIwIDE3LjYzYy0yLjAxLS41OS00LjYyLTEuMTMtOC0xLjEzLTMuMzkgMC01Ljk5LjU0LTggMS4xM1Y2LjM4YzIuNTguNzMgNS4zMiAxLjEyIDggMS4xMiAzLjM4IDAgNS45OS0uNTQgOC0xLjEzdjExLjI2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm05LjE3IDEwLjk5LTMuNjkgNC40MmMyLS4yNiA0LjE4LS40MSA2LjUyLS40MSAyLjMgMCA0LjUyLjE1IDYuNTEuNEwxNCAxMGwtMi44MyAzLjM5LTItMi40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2JBdXRvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm03IDctMy4yIDloMS45bC43LTJoMy4ybC43IDJoMS45TDkgN0g3em0tLjE1IDUuNjVMOCA5bDEuMTUgMy42NWgtMi4zek0yMiA3bC0xLjIgNi4yOUwxOS4zIDdoLTEuNmwtMS40OSA2LjI5TDE1IDdoLS43NmwtLjAxLjAxQzEyLjc2IDUuMTggMTAuNTMgNCA4IDRjLTQuNDIgMC04IDMuNTgtOCA4czMuNTggOCA4IDhjMi45NiAwIDUuNTUtMS42MSA2LjkzLTQgLjAzLS4wNi4wNS0uMTIuMDgtLjE4LjA1LS4wOC4wOS0uMTcuMTQtLjI1bC4xLjQzSDE3bDEuNS02LjFMMjAgMTZoMS43NWwyLjA1LTlIMjJ6bS04LjYzIDcuNjdDMTIuMzggMTYuNjQgMTAuMzUgMTggOCAxOGMtMy4zMSAwLTYtMi42OS02LTZzMi42OS02IDYtNiA2IDIuNjkgNiA2YzAgLjk2LS4yMyAxLjg2LS42MyAyLjY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2JDbG91ZHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjAxIDZjMi42MSAwIDQuODkgMS44NiA1LjQgNC40M2wuMyAxLjUgMS41Mi4xMWMxLjU2LjExIDIuNzggMS40MSAyLjc4IDIuOTYgMCAxLjY1LTEuMzUgMy0zIDNoLTEzYy0yLjIxIDAtNC0xLjc5LTQtNCAwLTIuMDUgMS41My0zLjc2IDMuNTYtMy45N2wxLjA3LS4xMS41LS45NUE1LjQ1NyA1LjQ1NyAwIDAgMSAxMi4wMSA2bTAtMkM5LjEyIDQgNi42IDUuNjQgNS4zNSA4LjA0IDIuMzUgOC4zNi4wMSAxMC45MS4wMSAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjQtNC45NkMxOC42OCA2LjU5IDE1LjY1IDQgMTIuMDEgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdiSW5jYW5kZXNjZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0zLjU1IDE5LjA5IDEuNDEgMS40MSAxLjc5LTEuOC0xLjQxLTEuNDF6TTExIDIwaDJ2M2gtMnpNMSAxMWgzdjJIMXptMTItNi45NXYzLjk2bDEgLjU4YzEuMjQuNzIgMiAyLjA0IDIgMy40NiAwIDIuMjEtMS43OSA0LTQgNHMtNC0xLjc5LTQtNGMwLTEuNDIuNzctMi43NCAyLTMuNDZsMS0uNThWNC4wNWgybTItMkg5djQuODFDNy4yMSA3LjkgNiA5LjgzIDYgMTIuMDVjMCAzLjMxIDIuNjkgNiA2IDZzNi0yLjY5IDYtNmMwLTIuMjItMS4yMS00LjE1LTMtNS4xOVYyLjA1ek0yMCAxMWgzdjJoLTN6bS0yLjc2IDcuNzEgMS43OSAxLjggMS40MS0xLjQxLTEuOC0xLjc5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2JJcmlkZXNjZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE1aDE0VjlINXY2em0yLTRoMTB2Mkg3di0yem00LTEwaDJ2M2gtMnptOS40NiA0LjAxTDE5LjA0IDMuNmwtMS43OSAxLjc5IDEuNDEgMS40MXpNMTEgMjBoMnYzaC0yem02LjI0LTEuMjkgMS43OSAxLjggMS40Mi0xLjQyLTEuOC0xLjc5ek00Ljk2IDMuNTk1bDEuNzg4IDEuNzlMNS4zNCA2Ljc5IDMuNTUzIDUuMDAzek0zLjU1IDE5LjA4bDEuNDEgMS40MiAxLjc5LTEuOC0xLjQxLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXYlNoYWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTJ2Mi41bDUuNSA1LjVIMjJsLTgtOHptMCA4aDNsLTMtM3Yzek04IDRsLTYgNmgydjEwaDhWMTBoMkw4IDR6bTEgMTBIN3YtNGgydjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXYlN1bm55IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm02Ljc2IDQuODQtMS44LTEuNzktMS40MSAxLjQxIDEuNzkgMS43OXpNMSAxMC41aDN2Mkgxek0xMSAuNTVoMlYzLjVoLTJ6bTguMDQgMi40OTUgMS40MDggMS40MDctMS43OSAxLjc5LTEuNDA3LTEuNDA4em0tMS44IDE1LjExNSAxLjc5IDEuOCAxLjQxLTEuNDEtMS44LTEuNzl6TTIwIDEwLjVoM3YyaC0zem0tOC01Yy0zLjMxIDAtNiAyLjY5LTYgNnMyLjY5IDYgNiA2IDYtMi42OSA2LTYtMi42OS02LTYtNnptMCAxMGMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNCA0IDEuNzkgNCA0LTEuNzkgNC00IDR6bS0xIDRoMnYyLjk1aC0yem0tNy40NS0uOTYgMS40MSAxLjQxIDEuNzktMS44LTEuNDEtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdiVHdpbGlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNi45NTUgOC42NjIgMi4xMi0yLjEyMiAxLjQxNiAxLjQxNC0yLjEyMSAyLjEyMnpNMiAxOGgyMHYySDJ6TTExIDRoMnYzaC0yek0zLjU0MyA3LjkyNSA0Ljk1NyA2LjUxbDIuMTIxIDIuMTItMS40MTQgMS40MTV6TTUgMTZoMTRjMC0zLjg3LTMuMTMtNy03LTdzLTcgMy4xMy03IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUzNjAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDdDNi40OCA3IDIgOS4yNCAyIDEyYzAgMi4yNCAyLjk0IDQuMTMgNyA0Ljc3VjIwbDQtNC00LTR2Mi43M2MtMy4xNS0uNTYtNS0xLjktNS0yLjczIDAtMS4wNiAzLjA0LTMgOC0zczggMS45NCA4IDNjMCAuNzMtMS40NiAxLjg5LTQgMi41M3YyLjA1YzMuNTMtLjc3IDYtMi41MyA2LTQuNTggMC0yLjc2LTQuNDgtNS0xMC01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRkQnVzaW5lc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDRoMTV2Mkgyek0xNSAxN2gydi0zaDF2LTJsLTEtNUgybC0xIDV2MmgxdjZoOXYtNmg0djN6bS02IDFINHYtNGg1djR6bS01Ljk2LTYgLjYtM2gxMS43MmwuNiAzSDMuMDR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzIDE4aC0zdi0zaC0ydjNoLTN2MmgzdjNoMnYtM2gzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRkTG9jYXRpb25BbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxdjNoM3YyaC0zdjNoLTJWNmgtM1Y0aDNWMWgyem0tOCAxMmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6bTEtOS45NHYyLjAyQTYuNTMgNi41MyAwIDAgMCAxMiA1Yy0zLjM1IDAtNiAyLjU3LTYgNi4yIDAgMi4zNCAxLjk1IDUuNDQgNiA5LjE0IDQuMDUtMy43IDYtNi43OSA2LTkuMTRWMTFoMnYuMmMwIDMuMzItMi42NyA3LjI1LTggMTEuOC01LjMzLTQuNTUtOC04LjQ4LTgtMTEuOEM0IDYuMjIgNy44IDMgMTIgM2MuMzQgMCAuNjcuMDIgMSAuMDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBZGRMb2NhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDZ2M2gzdjJoLTN2M2gtMnYtM0g4VjloM1Y2aDJ6bTUgNC4yQzE4IDYuNTcgMTUuMzUgNCAxMiA0cy02IDIuNTctNiA2LjJjMCAyLjM0IDEuOTUgNS40NCA2IDkuMTQgNC4wNS0zLjcgNi02LjggNi05LjE0ek0xMiAyYzQuMiAwIDggMy4yMiA4IDguMiAwIDMuMzItMi42NyA3LjI1LTggMTEuOC01LjMzLTQuNTUtOC04LjQ4LTgtMTEuOEM0IDUuMjIgNy44IDIgMTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZFJvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOHYtM2gtMnYzaC0zdjJoM3YzaDJ2LTNoM3YtMnpNMTggNGgydjloLTJ6TTQgNGgydjE2SDR6TTExIDRoMnY0aC0yek0xMSAxMGgydjRoLTJ6TTExIDE2aDJ2NGgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFncmljdWx0dXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA5aDVjMC0xLjEtLjktMi0yLTJINGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTQuMDZWOGMwLTEuMS0uOS0yLTItMmgtNi4yOWwtMS4wNi0xLjA2IDEuNDEtMS40MS0uNzEtLjcxLTMuNTMgMy41My43MS43MSAxLjQxLTEuNDFMMTMgNi43MVY5YzAgMS4xLS45IDItMiAySDguOTZjLS4yMi0uMTYtLjQ1LS4zLS42OS0uNDNsLS40Ljg5LS40Ni0uMjEuNC0uOUM3LjI2IDEwLjEzIDYuNjQgMTAgNiAxMGMtLjUzIDAtMS4wNC4xMS0xLjUyLjI2bC4zNC45MS0uNDcuMTgtLjM1LS45M2E0LjkyIDQuOTIgMCAwIDAtMi40MyAyLjMxbC44OS40LS4yMS40Ni0uOS0uNEMxLjEzIDEzLjc0IDEgMTQuMzYgMSAxNWMwIC41My4xMSAxLjA0LjI2IDEuNTJsLjkxLS4zNC4xOC40Ny0uOTMuMzVhNC45MiA0LjkyIDAgMCAwIDIuMzEgMi40M2wuNC0uODkuNDYuMjEtLjQuOWMuNTUuMjIgMS4xNy4zNSAxLjgxLjM1LjUzIDAgMS4wNC0uMTEgMS41Mi0uMjZsLS4zNC0uOTEuNDctLjE4LjM1LjkzYTQuOTIgNC45MiAwIDAgMCAyLjQzLTIuMzFsLS44OS0uNC4yMS0uNDYuOS40Yy4xLS4yNi4xOC0uNTQuMjQtLjgyaDUuMTZjLS4wMi4xNy0uMDUuMzQtLjA1LjUxIDAgMS45MyAxLjU3IDMuNSAzLjUgMy41czMuNS0xLjU3IDMuNS0zLjVjMC0uOTUtLjM4LTEuODEtMS0yLjQ0ek02IDE4Yy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zIDMgMS4zNCAzIDMtMS4zNCAzLTMgM3ptNC44Ny00Yy0uMDQtLjE4LS4wOC0uMzUtLjEzLS41MmwtLjkxLjM0LS4xOC0uNDcuOTMtLjM1SDExYzIuMjEgMCA0LTEuNzkgNC00VjhoNXY1LjA1Yy0uMTYtLjAyLS4zMy0uMDUtLjUtLjA1LS45NSAwLTEuODEuMzgtMi40NCAxaC02LjE5em04LjYzIDRjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWlybGluZVN0b3BzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgOC43Yy0yLjQ2IDEuNS01LjUgNC4xNy02IDguM2gydjJIOXYtMmgyYy0uNS00LjUtNC4zNy04LTktOFY3YzQuMzkgMCA4LjIyIDIuNTUgMTAgNi4zIDEuMzgtMi45NyAzLjg2LTUuMDMgNS45Ni02LjMxTDE0IDdWNWg3djdoLTJWOC43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWlybGluZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy4zNCAxOEg1LjhsOC4yNS0xMmg1LjU0bC0yLjI1IDEyek0xMyA0IDIgMjBoMTdsMy0xNmgtOXptMS41IDVhMi41IDIuNSAwIDAgMCAwIDUgMi41IDIuNSAwIDAgMCAwLTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBbHRSb3V0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTkuNzggMTEuMTYtMS40MiAxLjQyYTcuMjgyIDcuMjgyIDAgMCAxLTEuNzktMi45NGwxLjk0LS40OWMuMzIuODkuNzcgMS41IDEuMjcgMi4wMXpNMTEgNiA3IDIgMyA2aDMuMDJjLjAyLjgxLjA4IDEuNTQuMTkgMi4xN2wxLjk0LS40OUM4LjA4IDcuMiA4LjAzIDYuNjMgOC4wMiA2SDExem0xMCAwLTQtNC00IDRoMi45OWMtLjEgMy42OC0xLjI4IDQuNzUtMi41NCA1Ljg4LS41LjQ0LTEuMDEuOTItMS40NSAxLjU1LS4zNC0uNDktLjczLS44OC0xLjEzLTEuMjRMOS40NiAxMy42Yy45My44NSAxLjU0IDEuNTQgMS41NCAzLjR2NWgydi01YzAtMi4wMi43MS0yLjY2IDEuNzktMy42MyAxLjM4LTEuMjQgMy4wOC0yLjc4IDMuMi03LjM3SDIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXRtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDl2MS41aDIuMjVWMTVoMS41di00LjVIMTRWOUg4ek02IDlIM2MtLjU1IDAtMSAuNDUtMSAxdjVoMS41di0xLjVoMlYxNUg3di01YzAtLjU1LS40NS0xLTEtMXptLS41IDNoLTJ2LTEuNWgyVjEyek0yMSA5aC00LjVjLS41NSAwLTEgLjQ1LTEgMXY1SDE3di00LjVoMVYxNGgxLjV2LTMuNTFoMVYxNUgyMnYtNWMwLS41NS0uNDUtMS0xLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBdHRyYWN0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjE1IDE0LjQyYy4yMy0uNzcuMzUtMS41OC4zNS0yLjQycy0uMTItMS42NS0uMzUtMi40MmMuNzgtLjYgMS4wMi0xLjcuNTEtMi41OHMtMS41OC0xLjIzLTIuNDktLjg1YTguNTMgOC41MyAwIDAgMC00LjE4LTIuNDJDMTMuODUgMi43NSAxMy4wMSAyIDEyIDJzLTEuODUuNzUtMS45OCAxLjczYTguNTYxIDguNTYxIDAgMCAwLTQuMTkgMi40MmMtLjkxLS4zOC0xLjk4LS4wMy0yLjQ5Ljg1cy0uMjcgMS45OC41MSAyLjU4Yy0uMjMuNzctLjM1IDEuNTgtLjM1IDIuNDJzLjEyIDEuNjUuMzUgMi40MmMtLjc4LjYtMS4wMiAxLjctLjUxIDIuNThzMS41OCAxLjIzIDIuNDkuODVjLjQuNDIuODMuNzkgMS4zIDEuMTJMNS43OCAyMmgxLjg4bC45OC0yLjE5Yy40NC4xOS45LjM0IDEuMzguNDYuMTMuOTguOTcgMS43MyAxLjk4IDEuNzNzMS44NS0uNzUgMS45OC0xLjczYy40Ni0uMTEuOTEtLjI2IDEuMzQtLjQ0TDE2LjMgMjJoMS44OGwtMS4zNC0zYy40OC0uMzQuOTMtLjcyIDEuMzQtMS4xNS45MS4zOCAxLjk5LjAzIDIuNDktLjg1LjUtLjg4LjI2LTEuOTgtLjUyLTIuNTh6bS02LjU5IDQuMzNjLS4zNy0uNDYtLjkzLS43NS0xLjU2LS43NXMtMS4yLjI5LTEuNTcuNzVjLS40LS4wOS0uNzktLjIxLTEuMTYtLjM3bDEuNDMtMy4xOWEzLjUyMiAzLjUyMiAwIDAgMCAyLjU2LjAybDEuNDIgMy4xOGMtLjM2LjE1LS43My4yNy0xLjEyLjM2em0tMy4wOC02LjczYzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNS0xLjUtLjY3LTEuNS0xLjV6bTguMjMgMS45OWMtLjYxLjA3LTEuMTguNDEtMS41Mi45OS0uMzIuNTYtLjM0IDEuMi0uMTIgMS43NS0uMjguMjktLjU4LjU1LS45Ljc5bC0xLjUtMy4zNWMuNDktLjU5Ljc4LTEuMzQuNzgtMi4xNiAwLTEuODktMS41NS0zLjQxLTMuNDYtMy40MXMtMy40NiAxLjUzLTMuNDYgMy40MWMwIC44LjI4IDEuNTQuNzUgMi4xM2wtMS41MiAzLjM5Yy0uMzEtLjIzLS42LS40OC0uODctLjc2LjI2LS41Ni4yNC0xLjIyLS4wOS0xLjc5LS4zNC0uNTktLjkzLS45NC0xLjU2LS45OS0uMjItLjY4LS4zMy0xLjQtLjMzLTIuMTUgMC0uNjQuMDktMS4yNi4yNS0xLjg1LjY2LS4wMyAxLjMtLjM4IDEuNjUtMSAuMzctLjYzLjM1LTEuMzguMDEtMS45OC45Mi0uOTggMi4xMS0xLjY5IDMuNDUtMi4wMy4zNC41OS45OSAxIDEuNzMgMXMxLjM5LS40IDEuNzMtMWMxLjM0LjM0IDIuNTMgMS4wNyAzLjQ0IDIuMDUtLjMyLjU5LS4zMyAxLjMzLjAzIDEuOTUuMzUuNi45Ni45NSAxLjYgMSAuMTYuNTkuMjUgMS4yMS4yNSAxLjg2IDAgLjc1LS4xMiAxLjQ3LS4zNCAyLjE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmFkZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxMmg0djEuNWgtNHpNMTQgMTVoNHYxLjVoLTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDdoLTVWNGMwLTEuMS0uOS0yLTItMmgtMmMtMS4xIDAtMiAuOS0yIDJ2M0g0Yy0xLjEgMC0yIC45LTIgMnYxMWMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjljMC0xLjEtLjktMi0yLTJ6bS05IDBWNGgydjVoLTJWN3ptOSAxM0g0VjloNWMwIDEuMS45IDIgMiAyaDJjMS4xIDAgMi0uOSAyLTJoNXYxMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTMuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjA4IDE2LjE4Yy0uNjQtLjI4LTEuMzQtLjQzLTIuMDgtLjQzcy0xLjQ0LjE1LTIuMDguNDNjLS41Ni4yNC0uOTIuNzgtLjkyIDEuMzlWMThoNnYtLjQzYzAtLjYxLS4zNi0xLjE1LS45Mi0xLjM5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmFrZXJ5RGluaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNSAxMC45NGMuMTMtLjMyLjEtLjIzLjE1LS4zOS4zLTEuMjEtLjM0LTIuNDctMS41LTIuOTNsLTIuMDEtLjhjLS40Ni0uMTgtLjk1LS4yMS0xLjQxLS4xMi0uMTEtLjMzLS4yOS0uNjMtLjUyLS44OS0uNDgtLjUyLTEuMTUtLjgxLTEuODUtLjgxaC0yLjcxYy0uNzEgMC0xLjM4LjI5LTEuODUuODEtLjI0LjI2LS40Mi41Ni0uNTMuODgtLjQ2LS4wOS0uOTUtLjA2LTEuNDEuMTJsLTIuMDEuOGMtMS4xNi40Ni0xLjggMS43Mi0xLjUgMi45M2wuMTUuMzhDMS4xIDE1LjU1IDEgMTUuNTUgMSAxNi4zOGMwIC45MS40NiAxLjc0IDEuMjQgMi4yMiAxLjQyLjg4IDIuNDkuMTQgNC0uNjFoMTEuNTNjMS41Mi43NiAxLjg2IDEuMDEgMi42MyAxLjAxIDEgMCAyLjYxLS43NyAyLjYxLTIuNjEtLjAxLS44NS0uMTMtLjg4LTIuNTEtNS40NXptLS4zOCA1Ljk5LTEuNjgtLjg0IDEuMDgtMi43IDEuNDEgMi43MWMuMjguNTMtLjI5IDEuMDktLjgxLjgzem0tNS4wMy0uOTQuNjItNi45Yy4wMy0uMzMuMzctLjU0LjY4LS40MmwyLjAxLjhjLjIyLjA5LjM0LjMxLjMxLjU0bC0yLjQgNS45OGgtMS4yMnptLTcuNDEgMC0yLjQtNS45OGMtLjAzLS4yMy4wOS0uNDUuMzEtLjU0bDIuMDEtLjhjLjMxLS4xMi42NS4wOC42OC40MmwuNjIgNi45SDcuNjh6bS00LjYxLjExIDEuNDEtMi43MiAxLjA4IDIuNzEtMS42OC44NGMtLjUyLjI2LTEuMDktLjMtLjgxLS44M3ptNy4wOC04LjU2YS41LjUgMCAwIDEgLjUtLjU0aDIuNzFhLjUuNSAwIDAgMSAuNS41NGwtLjc3IDguNDVoLTIuMTdsLS43Ny04LjQ1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmVlbmhlcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDFINWMtMS4xIDAtMS45OS45LTEuOTkgMkwzIDE1LjkzYzAgLjY5LjM1IDEuMy44OCAxLjY2TDEyIDIzbDguMTEtNS40MWMuNTMtLjM2Ljg4LS45Ny44OC0xLjY2TDIxIDNjMC0xLjEtLjktMi0yLTJ6bS03IDE5LjYtNy00LjY2VjNoMTR2MTIuOTNsLTcgNC42N3ptLTIuMDEtNy40Mi0yLjU4LTIuNTlMNiAxMmw0IDQgOC04LTEuNDItMS40MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJpa2VTY29vdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTRoLjc0TDguODIgNS41NkEyLjAwOSAyLjAwOSAwIDAgMCA2Ljg3IDRIM3YyaDMuODdsMS40MiA2LjI1aC0uMDFBNi4wMDggNi4wMDggMCAwIDAgNC4wOSAxN0gwdjJoNnYtMWMwLTIuMjEgMS43OS00IDQtNHpNMTkgOGgtLjgybC0xLjM1LTMuNjlBMS45NzYgMS45NzYgMCAwIDAgMTQuOTYgM0gxMXYyaDMuOTZsMS4xIDNIMTAuNGwuNDYgMkgxNWMtLjQzLjU4LS43NSAxLjI1LS45IDJoLTIuNzlsLjQ2IDJoMi4zM2MuNDQgMi4yMyAyLjMxIDMuODggNC42NSAzLjk5IDIuOC4xMyA1LjI1LTIuMTkgNS4yNS01QzI0IDEwLjIgMjEuOCA4IDE5IDh6bTAgOGMtMS42OCAwLTMtMS4zMi0zLTMgMC0uOTMuNDEtMS43MyAxLjA1LTIuMjhsLjk2IDIuNjQgMS44OC0uNjgtLjk3LTIuNjdjLjAzIDAgLjA2LS4wMS4wOS0uMDEgMS42OCAwIDMgMS4zMiAzIDNzLTEuMzMgMy0zLjAxIDN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDE1Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3ptMCA0Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCcmVha2Zhc3REaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAzSDZDMy43OSAzIDIgNC43OSAyIDdjMCAxLjQ4LjgxIDIuNzUgMiAzLjQ1VjE5YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJ2LTguNTVjMS4xOS0uNjkgMi0xLjk3IDItMy40NSAwLTIuMjEtMS43OS00LTQtNHptMSA1LjcyLTEgLjU4VjE5SDZWOS4zMWwtLjk5LS41OEM0LjM4IDguMzUgNCA3LjcxIDQgN2MwLTEuMS45LTIgMi0yaDEyYzEuMSAwIDIgLjkgMiAyIDAgLjcxLS4zOCAxLjM2LTEgMS43MnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNzEgOS4yOUMxMi41MSA5LjEgMTIuMjYgOSAxMiA5cy0uNTEuMS0uNzEuMjlsLTMgM2EuOTk2Ljk5NiAwIDAgMCAwIDEuNDFsMyAzYy4yLjIuNDUuMy43MS4zcy41MS0uMS43MS0uMjlsMy0zYS45OTYuOTk2IDAgMCAwIDAtMS40MWwtMy0zLjAxek0xMiAxNC41OCAxMC40MSAxMyAxMiAxMS40MSAxMy41OSAxMyAxMiAxNC41OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJydW5jaERpbmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMjEuNWMwIC4yOC4yMi41LjQ5LjVoMTMuMDJjLjI3IDAgLjQ5LS4yMi40OS0uNVYyMEgydjEuNXpNMTUuNSAxNkgxMXYtMkg3djJIMi41Yy0uMjggMC0uNS4yMi0uNS41VjE4aDE0di0xLjVjMC0uMjgtLjIyLS41LS41LS41ek0yMC40NyAxNS40NUE1Ljc5NiA1Ljc5NiAwIDAgMCAyMiAxMS41MVYyaC02djkuNDdjMCAxLjQ4LjU4IDIuOTIgMS42IDRsLjQuNDJWMjJoNHYtMmgtMnYtNC4wM2wuNDctLjUyek0xOCA0aDJ2NGgtMlY0em0xLjAzIDEwLjA3YTMuODkzIDMuODkzIDAgMCAxLTEuMDMtMi42VjEwaDJ2MS41MWMwIC45NS0uMzQgMS44NS0uOTcgMi41NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJ1c0FsZXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI2LjVcIixcImN5XCI6XCIxNS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMy41XCIsXCJjeVwiOlwiMTUuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTFWOGg3LjI5QzExLjEgNy4zNyAxMSA2LjcgMTEgNkg0LjQzYy44My0uNzEgMi45OC0xLjA5IDYuNjUtLjk4LjEtLjcuMy0xLjM3LjU5LTEuOTlDMi45NyAyLjY3IDIgNS4wMiAyIDd2OS41YzAgLjk1LjM4IDEuODEgMSAyLjQ0VjIxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaDh2MWMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMi4wNmMuNjItLjYzIDEtMS40OSAxLTIuNDRWMTNjLTEuOTEgMC0zLjYzLS43Ni00Ljg5LTJINHptMTIgNWMwIDEuMS0uOSAyLTIgMkg2Yy0xLjEgMC0yLS45LTItMnYtM2gxMnYzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxYy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXptLjUgOGgtMVY4aDF2MXptMC0yaC0xVjNoMXY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FyQ3Jhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxYy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXptLjUgNmgtMVYzaDF2NHptMCAxdjFoLTFWOGgxek02IDEzLjVjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjVTOC4zMyAxNSA3LjUgMTUgNiAxNC4zMyA2IDEzLjV6bTEzLS41N2E2LjcyIDYuNzIgMCAwIDAgMi0uNlYxOWMwIC41NS0uNDUgMS0xIDFoLTFjLS41NSAwLTEtLjQ1LTEtMXYtMUg2djFjMCAuNTUtLjQ1IDEtMSAxSDRjLS41NSAwLTEtLjQ1LTEtMXYtOGwyLjA4LTUuOTlDNS4yOSA0LjQyIDUuODQgNCA2LjUgNGg0Ljc5Yy0uMTkuNjMtLjI5IDEuMzEtLjI5IDJINi44NUw1LjgxIDloNS44NmMuMzYuNzUuODQgMS40MyAxLjQzIDJINXY1aDE0di0zLjA3em0tMS4wOS4wN2E2LjkyIDYuOTIgMCAwIDEtMi41My0uNTFjLS4yMy4yNy0uMzguNjItLjM4IDEuMDEgMCAuODMuNjcgMS41IDEuNSAxLjVzMS41LS42NyAxLjUtMS41YzAtLjE4LS4wMy0uMzQtLjA5LS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FyUmVudGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTYuNVwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiMTYuNVwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy4yNSA5LjZjLS4wMi0uMDItLjAzLS4wNC0uMDUtLjA3LS4zOC0uNTItLjkyLS41My0uOTItLjUzSDcuNzJzLS41NC4wMS0uOTIuNTRjLS4wMi4wMi0uMDMuMDQtLjA1LjA2LS4wNy4xMS0uMTQuMjQtLjE5LjQtLjIyLjY2LS43NCAyLjIyLTEuNTYgNC42OXY2LjVjMCAuNDUuMzUuODEuNzguODFoLjQ0Yy40MyAwIC43OC0uMzYuNzgtLjgxVjIwaDEwdjEuMTljMCAuNDUuMzQuODEuNzguODFoLjQ0Yy40MyAwIC43OC0uMzYuNzgtLjgxdi02LjVjLS44Mi0yLjQ2LTEuMzQtNC4wMy0xLjU2LTQuNjktLjA1LS4xNi0uMTItLjI5LS4xOS0uNHpNOC4zMyAxMWg3LjM0bC4yMy42OS40MyAxLjMxSDcuNjdsLjY2LTJ6TTE3IDE4SDd2LTNoMTB2M3pNMTAuODMgM0EzLjAxIDMuMDEgMCAwIDAgOCAxQzYuMzQgMSA1IDIuMzQgNSA0YzAgMS42NSAxLjM0IDMgMyAzIDEuMyAwIDIuNDEtLjg0IDIuODMtMkgxNnYyaDJWNWgxVjNoLTguMTd6TTggNWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FyUmVwYWlyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTAuNVwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiMTAuNVwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01Ljc4IDE2aC40NGMuNDMgMCAuNzgtLjM2Ljc4LS44MVYxNGgxMHYxLjE5YzAgLjQ1LjM0LjgxLjc4LjgxaC40NGMuNDMgMCAuNzgtLjM2Ljc4LS44MXYtNi41TDE3LjQ0IDRjLS4wNS0uMTYtLjEyLS4yOS0uMTktLjQtLjAyLS4wMi0uMDMtLjA0LS4wNS0uMDctLjM4LS41Mi0uOTItLjUzLS45Mi0uNTNINy43MnMtLjU0LjAxLS45Mi41NGMtLjAyLjAyLS4wMy4wNC0uMDUuMDYtLjA3LjExLS4xNC4yNC0uMTkuNEw1IDguNjl2Ni41YzAgLjQ1LjM1LjgxLjc4Ljgxek04LjMzIDVoNy4zNGwuMjMuNjkuNDMgMS4zMUg3LjY3bC42Ni0yek03IDkuMDFWOWgxMHYzSDdWOS4wMXpNNCAxNy4wMVYxOWg3djNoMnYtM2g3di0xLjk5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FzdGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgOXYyaC0yVjNoLTJ2MmgtMlYzaC0ydjJoLTJWM0g5djJIN1YzSDV2OEgzVjlIMXYxMmg5di0zYzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ2M2g5VjloLTJ6bTAgMTBoLTV2LTFjMC0yLjIxLTEuNzktNC00LTRzLTQgMS43OS00IDR2MUgzdi02aDRWN2gxMHY2aDR2NnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA5aDJ2M0g5ek0xMyA5aDJ2M2gtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhdGVnb3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiAyLTUuNSA5aDExTDEyIDJ6bTAgMy44NEwxMy45MyA5aC0zLjg3TDEyIDUuODR6TTE3LjUgMTNjLTIuNDkgMC00LjUgMi4wMS00LjUgNC41czIuMDEgNC41IDQuNSA0LjUgNC41LTIuMDEgNC41LTQuNS0yLjAxLTQuNS00LjUtNC41em0wIDdhMi41IDIuNSAwIDAgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDV6TTMgMjEuNWg4di04SDN2OHptMi02aDR2NEg1di00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2VsZWJyYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yIDIyIDE0LTUtOS05LTUgMTR6bTEwLjM1LTUuODJMNS4zIDE4LjdsMi41Mi03LjA1IDQuNTMgNC41M3pNMTQuNTMgMTIuNTNsNS41OS01LjU5YTEuMjUgMS4yNSAwIDAgMSAxLjc3IDBsLjU5LjU5IDEuMDYtMS4wNi0uNTktLjU5YTIuNzU4IDIuNzU4IDAgMCAwLTMuODkgMGwtNS41OSA1LjU5IDEuMDYgMS4wNnpNMTAuMDYgNi44OGwtLjU5LjU5IDEuMDYgMS4wNi41OS0uNTlhMi43NTggMi43NTggMCAwIDAgMC0zLjg5bC0uNTktLjU5LTEuMDYgMS4wNy41OS41OWMuNDguNDguNDggMS4yOCAwIDEuNzZ6TTE3LjA2IDExLjg4bC0xLjU5IDEuNTkgMS4wNiAxLjA2IDEuNTktMS41OWExLjI1IDEuMjUgMCAwIDEgMS43NyAwbDEuNjEgMS42MSAxLjA2LTEuMDYtMS42MS0xLjYxYTIuNzU4IDIuNzU4IDAgMCAwLTMuODkgMHpNMTUuMDYgNS44OGwtMy41OSAzLjU5IDEuMDYgMS4wNiAzLjU5LTMuNTlhMi43NTggMi43NTggMCAwIDAgMC0zLjg5bC0xLjU5LTEuNTktMS4wNiAxLjA2IDEuNTkgMS41OWMuNDguNDkuNDggMS4yOSAwIDEuNzd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDaHVyY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxMi4yMlY5bC01LTIuNVY1aDJWM2gtMlYxaC0ydjJIOXYyaDJ2MS41TDYgOXYzLjIyTDIgMTR2OGg5di00YzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXY0aDl2LThsLTQtMS43OHpNMjAgMjBoLTV2LTIuMDRjMC0xLjY5LTEuMzUtMy4wNi0zLTMuMDZzLTMgMS4zNy0zIDMuMDZWMjBINHYtNC43OWw0LTEuODF2LTMuMzVMMTIgOGw0IDIuMDR2My4zNWw0IDEuODFWMjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDbGVhbmluZ1NlcnZpY2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTFoLTFWM2MwLTEuMS0uOS0yLTItMmgtMmMtMS4xIDAtMiAuOS0yIDJ2OEg4Yy0yLjc2IDAtNSAyLjI0LTUgNXY3aDE4di03YzAtMi43Ni0yLjI0LTUtNS01em0tNS04aDJ2OGgtMlYzem04IDE4aC0ydi0zYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxdjNoLTJ2LTNjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2M0g5di0zYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxdjNINXYtNWMwLTEuNjUgMS4zNS0zIDMtM2g4YzEuNjUgMCAzIDEuMzUgMyAzdjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb21wYXNzQ2FsaWJyYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEyYy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXptMCA4Yy0xLjY1IDAtMy0xLjM1LTMtM3MxLjM1LTMgMy0zIDMgMS4zNSAzIDMtMS4zNSAzLTMgM3ptMC0xN0M4LjEgMyA0LjU2IDQuNTkgMiA3LjE1bDUgNWE3LjA2IDcuMDYgMCAwIDEgMTAtLjAxbDUtNUMxOS40NCA0LjU5IDE1LjkgMyAxMiAzem00Ljg0IDYuNDdjLTEuNDQtLjkxLTMuMS0xLjQtNC44NC0xLjQtMS43NCAwLTMuNDEuNDktNC44NSAxLjQxTDQuOTQgNy4yNkM2Ljk5IDUuNzkgOS40NCA1IDEyIDVjMi41NiAwIDUgLjc5IDcuMDUgMi4yNmwtMi4yMSAyLjIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29ubmVjdGluZ0FpcnBvcnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUuNCAxNyAxLjMgNC40aC0xLjFMMTMgMTdoLTNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTFoM2wyLjYtNC40aDEuMUwxNS40IDE1aDIuODVsLjc1LTFoMWwtLjYgMiAuNiAyaC0xbC0uNzUtMUgxNS40ek01Ljc1IDcgNSA2SDRsLjYgMi0uNiAyaDFsLjc1LTFIOC42bC0xLjMgNC40aDEuMUwxMSA5aDNjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTFoLTNMOC40IDIuNkg3LjNMOC42IDdINS43NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNyaXNpc0FsZXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNSAyLjVjMCAxLjUtMS41IDYtMS41IDZoLTJTOS41IDQgOS41IDIuNWEyLjUgMi41IDAgMCAxIDUgMHpNMTIgMTBjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem00LjA4LTQuODljLjE4LS43NS4zMy0xLjQ3LjM5LTIuMDZBOS45OTYgOS45OTYgMCAwIDEgMjIgMTJjMCA1LjUyLTQuNDggMTAtMTAgMTBTMiAxNy41MiAyIDEyYzAtMy45MiAyLjI1LTcuMzEgNS41My04Ljk1LjA3LjU5LjIxIDEuMzIuMzkgMi4wNkE4LjAyOCA4LjAyOCAwIDAgMCA0IDEyYzAgNC40MiAzLjU4IDggOCA4czgtMy41OCA4LThjMC0yLjkzLTEuNTgtNS40OS0zLjkyLTYuODl6TTE4IDEyYzAgMy4zMS0yLjY5IDYtNiA2cy02LTIuNjktNi02YzAtMiAuOTgtMy43NyAyLjQ4LTQuODYuMjMuODEuNjUgMi4wNy42NSAyLjA3QzguNDMgOS45MyA4IDEwLjkyIDggMTJjMCAyLjIxIDEuNzkgNCA0IDRzNC0xLjc5IDQtNGMwLTEuMDgtLjQzLTIuMDctMS4xMy0yLjc5IDAgMCAuNDEtMS4yMi42NS0yLjA3QTUuOTk4IDUuOTk4IDAgMCAxIDE4IDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGVsaXZlcnlEaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA3YzAtMS4xLS45LTItMi0yaC0zdjJoM3YyLjY1TDEzLjUyIDE0SDEwVjlINmMtMi4yMSAwLTQgMS43OS00IDR2M2gyYzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTNoNC40OEwxOSAxMC4zNVY3ek00IDE0di0xYzAtMS4xLjktMiAyLTJoMnYzSDR6bTMgM2MtLjU1IDAtMS0uNDUtMS0xaDJjMCAuNTUtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDZoNXYySDV6TTE5IDEzYy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3ptMCA0Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEZXBhcnR1cmVCb2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI1LjVcIixcImN5XCI6XCIxNi41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMi41XCIsXCJjeVwiOlwiMTYuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDFhNi45OCA2Ljk4IDAgMCAwLTUuNzUgMy4wMkM5Ljg0IDQuMDEgOS40MyA0IDkgNGMtNC40MiAwLTggLjUtOCA0djEwYzAgLjg4LjM5IDEuNjcgMSAyLjIyVjIyYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaDh2MWMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMS43OGMuNjEtLjU1IDEtMS4zNCAxLTIuMjJ2LTMuMDhjMy4zOS0uNDkgNi0zLjM5IDYtNi45MiAwLTMuODctMy4xMy03LTctN3pNOSA2aC4yOWMtLjA5LjMyLS4xNi42Ni0uMjEuOTlIMy4zNEMzLjg5IDYuNDYgNS4zMSA2IDkgNnpNMyA4Ljk5aDYuMDhjLjE2IDEuMTEuNTcgMi4xMyAxLjE4IDMuMDFIM1Y4Ljk5ek0xNSAxOGMwIC4zNy0uMjEuNjItLjM0LjczbC0uMjkuMjdIMy42M2wtLjI5LS4yN0EuOTY4Ljk2OCAwIDAgMSAzIDE4di00aDkuNDFjLjc4LjQ3IDEuNjUuNzkgMi41OS45MlYxOHptMS01Yy0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDUtMi4yNCA1LTUgNXptLjUtOUgxNXY1bDMuNjIgMi4xNi43NS0xLjIzLTIuODctMS42OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURlc2lnblNlcnZpY2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuOTcgNy4yN2EuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLTIuODMtMi44M2EuOTk2Ljk5NiAwIDAgMC0xLjQxIDBsLTQuNDkgNC40OS0zLjg5LTMuODljLS43OC0uNzgtMi4wNS0uNzgtMi44MyAwbC0xLjkgMS45Yy0uNzguNzgtLjc4IDIuMDUgMCAyLjgzbDMuODkgMy44OUwzIDE2Ljc2VjIxaDQuMjRsNC41Mi00LjUyIDMuODkgMy44OWMuOTUuOTUgMi4yMy42IDIuODMgMGwxLjktMS45Yy43OC0uNzguNzgtMi4wNSAwLTIuODNsLTMuODktMy44OSA0LjQ4LTQuNDh6TTUuMDQgNi45NGwxLjg5LTEuOUw4LjIgNi4zMSA3LjAyIDcuNWwxLjQxIDEuNDEgMS4xOS0xLjE5IDEuMiAxLjItMS45IDEuOS0zLjg4LTMuODh6bTExLjIzIDcuNDQtMS4xOSAxLjE5IDEuNDEgMS40MSAxLjE5LTEuMTkgMS4yNyAxLjI3LTEuOSAxLjktMy44OS0zLjg5IDEuOS0xLjkgMS4yMSAxLjIxek02LjQxIDE5SDV2LTEuNDFsOS42MS05LjYxIDEuMyAxLjMuMTEuMTFMNi40MSAxOXptOS42MS0xMi40NCAxLjQxLTEuNDEgMS40MSAxLjQxLTEuNDEgMS40MS0xLjQxLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaWFtb25kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1TDIgOWwxMCAxMkwyMiA5bC0zLTZ6TTkuNjIgOGwxLjUtM2gxLjc2bDEuNSAzSDkuNjJ6TTExIDEwdjYuNjhMNS40NCAxMEgxMXptMiAwaDUuNTZMMTMgMTYuNjhWMTB6bTYuMjYtMmgtMi42NWwtMS41LTNoMi42NWwxLjUgM3pNNi4yNCA1aDIuNjVsLTEuNSAzSDQuNzRsMS41LTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaW5uZXJEaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yIDE5IDIgMmgxNmwyLTJ6TTMgMThoMTYuOTdjLjI5LTMuMjYtMi4yOC02LTUuNDgtNi0yLjM1IDAtNC4zNSAxLjQ4LTUuMTQgMy41NS0uNDEtLjIzLS44Ny0uMzgtMS4zNS0uNDdWOWgxLjc1QzEwLjk5IDkgMTIgNy45OSAxMiA2Ljc1aDl2LTEuNWgtOUMxMiA0LjAxIDEwLjk5IDMgOS43NSAzSDN2MS41aDF2Ljc1SDN2MS41aDF2Ljc1SDNWOWgxdjcuMzljLS40NC40Ni0uNzggMS0xIDEuNjF6bTExLjUtNGMuOTkgMCAxLjkxLjQgMi41OCAxLjE0LjI0LjI2LjQ0LjU1LjU4Ljg2aC02LjMyYy41OC0xLjIxIDEuODEtMiAzLjE2LTJ6TTggNC41aDJ2Ljc1SDhWNC41em0wIDIuMjVoMnYuNzVIOHYtLjc1ek01LjUgNC41aDF2Ljc1aC0xVjQuNXptMCAyLjI1aDF2Ljc1aC0xdi0uNzV6TTUuNSA5aDF2Ni4wNmMtLjM1LjA2LS42OC4xNy0xIC4zVjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaXJlY3Rpb25zQmlrZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSA1LjVjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyek01IDEyYy0yLjggMC01IDIuMi01IDVzMi4yIDUgNSA1IDUtMi4yIDUtNS0yLjItNS01LTV6bTAgOC41Yy0xLjkgMC0zLjUtMS42LTMuNS0zLjVzMS42LTMuNSAzLjUtMy41IDMuNSAxLjYgMy41IDMuNS0xLjYgMy41LTMuNSAzLjV6bTUuOC0xMCAyLjQtMi40LjguOGMxLjMgMS4zIDMgMi4xIDUuMSAyLjFWOWMtMS41IDAtMi43LS42LTMuNi0xLjVsLTEuOS0xLjljLS41LS40LTEtLjYtMS42LS42cy0xLjEuMi0xLjQuNkw3LjggOC40Yy0uNC40LS42LjktLjYgMS40IDAgLjYuMiAxLjEuNiAxLjRMMTEgMTR2NWgydi02LjJsLTIuMi0yLjN6TTE5IDEyYy0yLjggMC01IDIuMi01IDVzMi4yIDUgNSA1IDUtMi4yIDUtNS0yLjItNS01LTV6bTAgOC41Yy0xLjkgMC0zLjUtMS42LTMuNS0zLjVzMS42LTMuNSAzLjUtMy41IDMuNSAxLjYgMy41IDMuNS0xLjYgMy41LTMuNSAzLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaXJlY3Rpb25zQm9hdEZpbGxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5Ljc3IDEyLjY2LTEuMTIgMy45N2MtLjc4LS40My0xLjA3LS44Ni0yLjY1LTIuNjctMS42IDEuODItMi40MyAzLjA0LTQgMy4wNC0xLjUzIDAtMi4zNC0xLjE1LTQtMy4wNC0xLjYgMS44Mi0xLjg3IDIuMjEtMi42NSAyLjY1bC0xLjEzLTMuOTZMMTIgMTAuMTFsNy43NyAyLjU1ek0xNSAxSDl2M0g2Yy0xLjEgMC0yIC45LTIgMnY0LjYybC0xLjI5LjQyYy0uNjMuMTktLjgxLjg0LS42NiAxLjI4TDMuOTUgMTlINGMxLjYgMCAzLjAyLS44OCA0LTIgLjk4IDEuMTIgMi40IDIgNCAyczMuMDItLjg4IDQtMmMuOTggMS4xMiAyLjQgMiA0IDJoLjA1bDEuOTEtNi42OGMuMTEtLjM3LjA0LTEuMDYtLjY2LTEuMjhsLTEuMy0uNDJWNmMwLTEuMS0uOS0yLTItMmgtM1Yxek02IDkuOTdWNmgxMnYzLjk3TDEyIDggNiA5Ljk3em0xMCA5LjcxYy0xLjIyLjg1LTIuNjEgMS4yOC00IDEuMjhzLTIuNzgtLjQzLTQtMS4yOEM2Ljc4IDIwLjUzIDUuMzkgMjEgNCAyMUgydjJoMmMxLjM4IDAgMi43NC0uMzUgNC0uOTkgMS4yNi42NCAyLjYzLjk3IDQgLjk3czIuNzQtLjMyIDQtLjk3YzEuMjYuNjUgMi42Mi45OSA0IC45OWgydi0yaC0yYy0xLjM5IDAtMi43OC0uNDctNC0xLjMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlyZWN0aW9uc0JvYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDN2MWgtMlYzaDJtLTEgNy4xMSA1LjM4IDEuNzcgMi4zOS43OC0xLjEyIDMuOTdjLS41NC0uMy0uOTQtLjcxLTEuMTQtLjk0TDE2IDEzLjk2bC0xLjUxIDEuNzJjLS4zNC40LTEuMjggMS4zMi0yLjQ5IDEuMzJzLTIuMTUtLjkyLTIuNDktMS4zMkw4IDEzLjk2bC0xLjUxIDEuNzJjLS4yLjIzLS42LjYzLTEuMTQuOTNsLTEuMTMtMy45NiAyLjQtLjc5TDEyIDEwLjExTTE1IDFIOXYzSDZjLTEuMSAwLTIgLjktMiAydjQuNjJsLTEuMjkuNDJhMS4wMDcgMS4wMDcgMCAwIDAtLjY2IDEuMjhMMy45NSAxOUg0YzEuNiAwIDMuMDItLjg4IDQtMiAuOTggMS4xMiAyLjQgMiA0IDJzMy4wMi0uODggNC0yYy45OCAxLjEyIDIuNCAyIDQgMmguMDVsMS44OS02LjY4Yy4wOC0uMjYuMDYtLjU0LS4wNi0uNzhzLS4zNC0uNDItLjYtLjVMMjAgMTAuNjJWNmMwLTEuMS0uOS0yLTItMmgtM1Yxek02IDkuOTdWNmgxMnYzLjk3TDEyIDggNiA5Ljk3em0xMCA5LjcxYy0xLjIyLjg1LTIuNjEgMS4yOC00IDEuMjhzLTIuNzgtLjQzLTQtMS4yOEM2Ljc4IDIwLjUzIDUuMzkgMjEgNCAyMUgydjJoMmMxLjM4IDAgMi43NC0uMzUgNC0uOTkgMS4yNi42NCAyLjYzLjk3IDQgLjk3czIuNzQtLjMyIDQtLjk3YzEuMjYuNjUgMi42Mi45OSA0IC45OWgydi0yaC0yYy0xLjM5IDAtMi43OC0uNDctNC0xLjMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlyZWN0aW9uc0J1c0ZpbGxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJjLTQgMC04IC41LTggNHY5LjVjMCAuOTUuMzggMS44MSAxIDIuNDRWMjBjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTFoOHYxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0yLjA2Yy42Mi0uNjMgMS0xLjQ5IDEtMi40NFY2YzAtMy41LTMuNTgtNC04LTR6bTAgMmMzLjcxIDAgNS4xMy40NiA1LjY3IDFINi40M2MuNi0uNTIgMi4wNS0xIDUuNTctMXptNiAxMWMwIDEuMS0uOSAyLTIgMkg4Yy0xLjEgMC0yLS45LTItMnYtM2gxMnYzem0wLTVINlY3aDEydjN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiMTQuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlyZWN0aW9uc0J1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmMtNC40MiAwLTggLjUtOCA0djEwYzAgLjg4LjM5IDEuNjcgMSAyLjIyVjIwYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaDh2MWMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMS43OGMuNjEtLjU1IDEtMS4zNCAxLTIuMjJWNmMwLTMuNS0zLjU4LTQtOC00em01LjY2IDIuOTlINi4zNEM2Ljg5IDQuNDYgOC4zMSA0IDEyIDRzNS4xMS40NiA1LjY2Ljk5em0uMzQgMlYxMEg2VjYuOTloMTJ6bS0uMzQgOS43NC0uMjkuMjdINi42M2wtLjI5LS4yN0EuOTY4Ljk2OCAwIDAgMSA2IDE2di00aDEydjRjMCAuMzctLjIxLjYyLS4zNC43M3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4LjVcIixcImN5XCI6XCIxNC41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNS41XCIsXCJjeVwiOlwiMTQuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaXJlY3Rpb25zQ2FyRmlsbGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguOTIgNi4wMUMxOC43MiA1LjQyIDE4LjE2IDUgMTcuNSA1aC0xMWMtLjY2IDAtMS4yMS40Mi0xLjQyIDEuMDFMMyAxMnY4YzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaDEydjFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LThsLTIuMDgtNS45OXpNNi44NSA3aDEwLjI5bDEuMDQgM0g1LjgxbDEuMDQtM3pNMTkgMTdINXYtNWgxNHY1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjcuNVwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE2LjVcIixcImN5XCI6XCIxNC41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURpcmVjdGlvbnNDYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjkyIDYuMDFDMTguNzIgNS40MiAxOC4xNiA1IDE3LjUgNWgtMTFjLS42NiAwLTEuMjEuNDItMS40MiAxLjAxTDMgMTJ2OGMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWgxMnYxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi04bC0yLjA4LTUuOTl6TTYuODUgN2gxMC4yOWwxLjA4IDMuMTFINS43N0w2Ljg1IDd6TTE5IDE3SDV2LTVoMTR2NXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI3LjVcIixcImN5XCI6XCIxNC41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNi41XCIsXCJjeVwiOlwiMTQuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaXJlY3Rpb25zUmFpbHdheUZpbGxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJjLTQgMC04IC41LTggNHY5LjVDNCAxNy40MyA1LjU3IDE5IDcuNSAxOUw2IDIwdjFoMTJ2LTFsLTEuNS0xYzEuOTMgMCAzLjUtMS41NyAzLjUtMy41VjZjMC0zLjUtMy41OC00LTgtNHptMCAyYzMuNzEgMCA1LjEzLjQ2IDUuNjcgMUg2LjQzYy42LS41MiAyLjA1LTEgNS41Ny0xem02IDExLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC05Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVWMTJoMTJ2My41em0wLTUuNUg2VjdoMTJ2M3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlyZWN0aW9uc1JhaWx3YXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDFjLTQuNDIgMC04IC41LTggNHYxMC41QzQgMTcuNDMgNS41NyAxOSA3LjUgMTlMNiAyMC41di41aDEydi0uNUwxNi41IDE5YzEuOTMgMCAzLjUtMS41NyAzLjUtMy41VjVjMC0zLjUtMy41OC00LTgtNHptMCAyYzYgMCA2IDEuMiA2IDJINmMwLS44IDAtMiA2LTJ6bTYgNHYzSDZWN2gxMnptLTEuNSAxMGgtOWMtLjgzIDAtMS41LS42Ny0xLjUtMS41VjEyaDEydjMuNWMwIC44My0uNjcgMS41LTEuNSAxLjV6TTEyIDEyLjVjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlyZWN0aW9uc1J1biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNDkgNS40OGMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bS0zLjYgMTMuOSAxLTQuNCAyLjEgMnY2aDJ2LTcuNWwtMi4xLTIgLjYtM2MxLjMgMS41IDMuMyAyLjUgNS41IDIuNXYtMmMtMS45IDAtMy41LTEtNC4zLTIuNGwtMS0xLjZjLS40LS42LTEtMS0xLjctMS0uMyAwLS41LjEtLjguMWwtNS4yIDIuMnY0LjdoMnYtMy40bDEuOC0uNy0xLjYgOC4xLTQuOS0xLS40IDIgNyAxLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaXJlY3Rpb25zU3Vid2F5RmlsbGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmMtNCAwLTggLjUtOCA0djkuNUM0IDE3LjQzIDUuNTcgMTkgNy41IDE5TDYgMjB2MWgxMnYtMWwtMS41LTFjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVWNmMwLTMuNS0zLjU4LTQtOC00em0wIDJjMy43MSAwIDUuMTMuNDYgNS42NyAxSDYuNDNjLjYtLjUyIDIuMDUtMSA1LjU3LTF6TTYgN2g1djNINlY3em0xMiA4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC05Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVWMTJoMTJ2My41em0wLTUuNWgtNVY3aDV2M3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4LjVcIixcImN5XCI6XCIxNC41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNS41XCIsXCJjeVwiOlwiMTQuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaXJlY3Rpb25zU3Vid2F5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYy00IDAtOCAuNS04IDR2OS41QzQgMTcuNDMgNS41NyAxOSA3LjUgMTlMNiAyMC41di41aDEydi0uNUwxNi41IDE5YzEuOTMgMCAzLjUtMS41NyAzLjUtMy41VjZjMC0zLjUtMy41OC00LTgtNHptNS42NiAzSDYuNDNjLjYxLS41MiAyLjA2LTEgNS41Ny0xIDMuNzEgMCA1LjEyLjQ2IDUuNjYgMXpNMTEgN3YzSDZWN2g1em0yIDBoNXYzaC01Vjd6bTMuNSAxMGgtOWMtLjgzIDAtMS41LS42Ny0xLjUtMS41VjEyaDEydjMuNWMwIC44My0uNjcgMS41LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiMTQuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlyZWN0aW9uc1RyYW5zaXRGaWxsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYy00IDAtOCAuNS04IDR2OS41QzQgMTcuNDMgNS41NyAxOSA3LjUgMTlMNiAyMHYxaDEydi0xbC0xLjUtMWMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVY2YzAtMy41LTMuNTgtNC04LTR6bTAgMmMzLjcxIDAgNS4xMy40NiA1LjY3IDFINi40M2MuNi0uNTIgMi4wNS0xIDUuNTctMXpNNiA3aDV2M0g2Vjd6bTEyIDguNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTljLS44MyAwLTEuNS0uNjctMS41LTEuNVYxMmgxMnYzLjV6bTAtNS41aC01VjdoNXYzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjguNVwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1LjVcIixcImN5XCI6XCIxNC41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURpcmVjdGlvbnNUcmFuc2l0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYy00IDAtOCAuNS04IDR2OS41QzQgMTcuNDMgNS41NyAxOSA3LjUgMTlMNiAyMC41di41aDEydi0uNUwxNi41IDE5YzEuOTMgMCAzLjUtMS41NyAzLjUtMy41VjZjMC0zLjUtMy41OC00LTgtNHptNS42NiAzSDYuNDNjLjYxLS41MiAyLjA2LTEgNS41Ny0xIDMuNzEgMCA1LjEyLjQ2IDUuNjYgMXpNMTEgN3YzSDZWN2g1em0yIDBoNXYzaC01Vjd6bTMuNSAxMGgtOWMtLjgzIDAtMS41LS42Ny0xLjUtMS41VjEyaDEydjMuNWMwIC44My0uNjcgMS41LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiMTQuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlyZWN0aW9uc1dhbGsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjUgNS41YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnpNOS44IDguOSA3IDIzaDIuMWwxLjgtOCAyLjEgMnY2aDJ2LTcuNWwtMi4xLTIgLjYtM0MxNC44IDEyIDE2LjggMTMgMTkgMTN2LTJjLTEuOSAwLTMuNS0xLTQuMy0yLjRsLTEtMS42YTIuMTQ1IDIuMTQ1IDAgMCAwLTIuNjUtLjg0TDYgOC4zVjEzaDJWOS42bDEuOC0uN1wifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlyZWN0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIuNDMgMTAuNTktOS4wMS05LjAxYy0uNzUtLjc1LTIuMDctLjc2LTIuODMgMGwtOSA5Yy0uNzguNzgtLjc4IDIuMDQgMCAyLjgybDkgOWMuMzkuMzkuOS41OCAxLjQxLjU4LjUxIDAgMS4wMi0uMTkgMS40MS0uNThsOC45OS04Ljk5Yy43OS0uNzYuOC0yLjAyLjAzLTIuODJ6bS0xMC40MiAxMC40LTktOSA5LTkgOSA5LTkgOXpNOCAxMXY0aDJ2LTNoNHYyLjVsMy41LTMuNUwxNCA3LjVWMTBIOWMtLjU1IDAtMSAuNDUtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRHJ5Q2xlYW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS41NiAxMS4zNiAxMyA4LjQ0VjdjMC0uNTUtLjQ1LTEtMS0xcy0xLS40NS0xLTEgLjQ1LTEgMS0xIDEgLjQ1IDEgMWgyYzAtMS44NC0xLjY2LTMuMy0zLjU2LTIuOTUtMS4xOC4yMi0yLjE1IDEuMTctMi4zOCAyLjM1LS4zIDEuNTYuNiAyLjk0IDEuOTQgMy40MnYuNjNsLTYuNTYgMi45MmMtLjg4LjM4LTEuNDQgMS4yNS0xLjQ0IDIuMnYuMDFDMyAxNC45MiA0LjA4IDE2IDUuNDIgMTZIN3Y2aDEwdi02aDEuNThjMS4zNCAwIDIuNDItMS4wOCAyLjQyLTIuNDJ2LS4wMWMwLS45NS0uNTYtMS44Mi0xLjQ0LTIuMjF6TTE1IDIwSDl2LTVoNnY1em0zLjU4LTZIMTd2LTFIN3YxSDUuNDJjLS40NiAwLS41OC0uNjUtLjE3LS44MWw2Ljc1LTMgNi43NSAzYy40Mi4xOS4yOC44MS0uMTcuODF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFZGl0QXR0cmlidXRlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNjMgN0g2LjM3QzMuOTYgNyAyIDkuMjQgMiAxMnMxLjk2IDUgNC4zNyA1aDExLjI2YzIuNDEgMCA0LjM3LTIuMjQgNC4zNy01cy0xLjk2LTUtNC4zNy01em0wIDhINi4zN0M1LjA5IDE1IDQgMTMuNjMgNCAxMnMxLjA5LTMgMi4zNy0zaDExLjI2QzE4LjkxIDkgMjAgMTAuMzcgMjAgMTJzLTEuMDkgMy0yLjM3IDN6TTcuMjQgMTMuMDZsLTEuODctMS44Ny0uNy43IDIuNTcgMi41NyA0LjIyLTQuMjItLjctLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFZGl0TG9jYXRpb25BbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxMWgyLjEybDYuMTYtNi4xNi0yLjEyLTIuMTJMMTEgOC44OFYxMXptOS43MS05TDIwIDEuMjlhLjk5Ni45OTYgMCAwIDAtMS40MSAwbC0uNzIuNzIgMi4xMiAyLjEyLjcyLS43MmEuOTk2Ljk5NiAwIDAgMCAwLTEuNDF6TTE3LjkgOS4wNWMuMDYuMzYuMS43NC4xIDEuMTUgMCAxLjcxLTEuMDggNC42NC02IDkuMTQtNC45Mi00LjQ5LTYtNy40My02LTkuMTRDNiA2LjE3IDkuMDkgNCAxMiA0Yy4zMiAwIC42NS4wMy45Ny4wOGwxLjY1LTEuNjVBOC41NiA4LjU2IDAgMCAwIDEyIDJjLTQuMiAwLTggMy4yMi04IDguMiAwIDMuMzIgMi42NyA3LjI1IDggMTEuOCA1LjMzLTQuNTUgOC04LjQ4IDgtMTEuOCAwLTEuMDEtLjE2LTEuOTQtLjQ1LTIuOEwxNy45IDkuMDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFZGl0TG9jYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC4xNyA0LjkxIDE3LjEgMy44NGwtNS41NSA1LjU1djEuMDhoMS4wOGw1LjU0LTUuNTZ6TTE2IDIuNzRsMS4yOS0xLjI5YTEuNDkgMS40OSAwIDAgMSAyLjEyIDBsMS4xNSAxLjE1Yy41OS41OS41OSAxLjU0IDAgMi4xMmwtLjY4LjY4LS4wMi4wMi0uNTguNTgtNiA2SDEwVjguNzRsNi02em0tMi4yOC0uNTUtLjU1LjU1LTEuMjcgMS4yN2MtMy4zLjA1LTUuOSAyLjYtNS45IDYuMiAwIDIuMzQgMS45NSA1LjQ0IDYgOS4xNCA0LjA1LTMuNyA2LTYuNzkgNi05LjE0di0uMWwxLjgtMS44Yy4xMy42LjIgMS4yNC4yIDEuOSAwIDMuMzItMi42NyA3LjI1LTggMTEuOC01LjMzLTQuNTUtOC04LjQ4LTgtMTEuOCAwLTQuOTggMy44LTguMiA4LTguMi41OCAwIDEuMTYuMDYgMS43Mi4xOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVkaXRSb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNGgtMnY3LjlsMi0yek00IDRoMnYxNkg0ek0xMCA0aDJ2NGgtMnpNMTAgMTBoMnY0aC0yek0xMCAxNmgydjRoLTJ6TTIyLjU2IDEyLjU5bC0xLjE1LTEuMTVhMS40OSAxLjQ5IDAgMCAwLTIuMTIgMEwxNCAxNi43M1YyMGgzLjI3bDUuMjktNS4yOWMuNTktLjU5LjU5LTEuNTQgMC0yLjEyem0tNS45OCA1Ljg2aC0xLjAzdi0xLjAzTDE5IDEzLjk3IDIwLjAzIDE1bC0zLjQ1IDMuNDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFZ2dBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA5Yy0yLTItMy4wMS03LTkuMDMtN0M0Ljk1IDIgMS45NCA2IDIgMTEuNTIgMi4wNiAxNy4wNCA2Ljk2IDE5IDkuOTcgMTljMi4wMSAwIDIuMDEgMyA2LjAyIDNDMTkgMjIgMjIgMTkgMjIgMTUuMDIgMjIgMTIgMjEuMDEgMTEgMTkgOXptLTMuMDEgMTFjLTEuNDkgMC0xLjk2LS41LTIuNjgtMS4yNi0uNjUtLjY5LTEuNjUtMS43NC0zLjM0LTEuNzQtMS42NCAwLTUuOTItLjk5LTUuOTctNS41LS4wMy0yLjUxLjY4LTQuNjIgMS45OS01Ljk1QzcuMDEgNC41MiA4LjM1IDQgOS45NyA0YzMuMzQgMCA0LjUxIDEuODYgNS44NiA0LjAyLjU1Ljg4IDEuMDcgMS43MSAxLjc2IDIuMzkgMS45IDEuODkgMi40MSAyLjQgMi40MSA0LjYxIDAgMi44NS0yLjEyIDQuOTgtNC4wMSA0Ljk4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjMuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWdnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgM0M4LjUgMyA1IDkuMzMgNSAxNGMwIDMuODcgMy4xMyA3IDcgN3M3LTMuMTMgNy03YzAtNC42Ny0zLjUtMTEtNy0xMXptMCAxNmMtMi43NiAwLTUtMi4yNC01LTUgMC00LjA5IDMuMDctOSA1LTlzNSA0LjkxIDUgOWMwIDIuNzYtMi4yNCA1LTUgNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTZjLS41OCAwLTMtLjA4LTMtMyAwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMWMwIDMgMS45OSA1IDUgNSAuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVsZWN0cmljQmlrZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDdoLS44MmwtMS43LTQuNjhBMi4wMDggMi4wMDggMCAwIDAgMTQuNiAxSDEydjJoMi42bDEuNDYgNGgtNC44MWwtLjM2LTFIMTJWNEg3djJoMS43NWwxLjgyIDVIOS45Yy0uNDQtMi4yMy0yLjMxLTMuODgtNC42NS0zLjk5QzIuNDUgNi44NyAwIDkuMiAwIDEyYzAgMi44IDIuMiA1IDUgNSAyLjQ2IDAgNC40NS0xLjY5IDQuOS00aDQuMmMuNDQgMi4yMyAyLjMxIDMuODggNC42NSAzLjk5IDIuOC4xMyA1LjI1LTIuMTkgNS4yNS01QzI0IDkuMiAyMS44IDcgMTkgN3pNNy44MiAxM2MtLjQgMS4xNy0xLjQ5IDItMi44MiAyLTEuNjggMC0zLTEuMzItMy0zczEuMzItMyAzLTNjMS4zMyAwIDIuNDIuODMgMi44MiAySDV2MmgyLjgyem02LjI4LTJoLTEuNGwtLjczLTJIMTVjLS40NC41OC0uNzYgMS4yNS0uOSAyem00LjkgNGMtMS42OCAwLTMtMS4zMi0zLTMgMC0uOTMuNDEtMS43MyAxLjA1LTIuMjhsLjk2IDIuNjQgMS44OC0uNjgtLjk3LTIuNjdjLjAyIDAgLjA1LS4wMS4wOC0uMDEgMS42OCAwIDMgMS4zMiAzIDNzLTEuMzIgMy0zIDN6TTExIDIwSDdsNiAzdi0yaDRsLTYtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVsZWN0cmljQ2FyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguOTIgMi4wMUMxOC43MiAxLjQyIDE4LjE2IDEgMTcuNSAxaC0xMWMtLjY2IDAtMS4yMS40Mi0xLjQyIDEuMDFMMyA4djhjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTFoMTJ2MWMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMVY4bC0yLjA4LTUuOTl6TTYuODUgM2gxMC4yOWwxLjA4IDMuMTFINS43N0w2Ljg1IDN6TTE5IDEzSDVWOGgxNHY1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjcuNVwiLFwiY3lcIjpcIjEwLjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE2LjVcIixcImN5XCI6XCIxMC41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAyMGg0di0ybDYgM2gtNHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWxlY3RyaWNNb3BlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDVjMC0xLjEtLjktMi0yLTJoLTN2MmgzdjIuNjVMMTMuNTIgMTJIMTBWN0g2Yy0yLjIxIDAtNCAxLjc5LTQgNHYzaDJjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtM2g0LjQ4TDE5IDguMzVWNXpNNCAxMnYtMWMwLTEuMS45LTIgMi0yaDJ2M0g0em0zIDNjLS41NSAwLTEtLjQ1LTEtMWgyYzAgLjU1LS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA0aDV2Mkg1ek0xOSAxMWMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6bTAgNGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxek03IDIwaDR2LTJsNiAzaC00djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFbGVjdHJpY1JpY2tzaGF3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTEuMThWOS43MmMwLS40Ny0uMTYtLjkyLS40Ni0xLjI4TDE2LjYgMy43MmMtLjM4LS40Ni0uOTQtLjcyLTEuNTQtLjcySDNjLTEuMSAwLTIgLjktMiAydjhjMCAxLjEuOSAyIDIgMmguMThDMy42IDE2LjE2IDQuNyAxNyA2IDE3czIuNC0uODQgMi44Mi0yaDguMzdhMi45OTYgMi45OTYgMCAwIDAgNS44Mi0xYy0uMDEtMS4zLS44NS0yLjQtMi4wMS0yLjgyek02IDE1Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTEtMy44M0EzLjAxNCAzLjAxNCAwIDAgMCAzLjE3IDEzSDN2LTNoNHYxLjE3ek03IDhIM1Y1aDR2M3ptNyA1SDl2LTNoM1Y4SDlWNWg1djh6bTItNi44OEwxOC40IDlIMTZWNi4xMnpNMTcuMTcgMTNIMTZ2LTJoM3YuMTdjLS44NS4zLTEuNTMuOTgtMS44MyAxLjgzek0yMCAxNWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxek03IDIwaDR2LTJsNiAzaC00djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFbGVjdHJpY1Njb290ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjgyIDE2SDE1di0xYzAtMi4yMSAxLjc5LTQgNC00aC43NGwtMS45LTguNDRBMi4wMDkgMi4wMDkgMCAwIDAgMTUuODkgMUgxMnYyaDMuODlsMS40IDYuMjVoLS4wMUE2LjAwOCA2LjAwOCAwIDAgMCAxMy4wOSAxNEg3LjgyYTIuOTk2IDIuOTk2IDAgMCAwLTMuNDItMS45NGMtMS4xOC4yMy0yLjEzIDEuMi0yLjM1IDIuMzhBMy4wMDIgMy4wMDIgMCAwIDAgNSAxOGMxLjMgMCAyLjQtLjg0IDIuODItMnpNNSAxNmMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxMmMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6bTAgNGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxek0xMSAyMEg3bDYgM3YtMmg0bC02LTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFbGVjdHJpY2FsU2VydmljZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxNGMwLS41NS0uNDUtMS0xLTFoLTJ2MmgyYy41NSAwIDEtLjQ1IDEtMXpNMjAgMTdoLTJ2MmgyYy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xek0xMiAxNGgtMnY0aDJjMCAxLjEuOSAyIDIgMmgzdi04aC0zYy0xLjEgMC0yIC45LTIgMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxM2MwLTEuMS45LTIgMi0yaDEuNWMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVMxMC40MyA0IDguNSA0SDVjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDFoMy41Yy44MyAwIDEuNS42NyAxLjUgMS41UzkuMzMgOSA4LjUgOUg3Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0aDJ2LTJIN2MtMS4xIDAtMi0uOS0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFbWVyZ2VuY3lSZWNvcmRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxMC40OFY2YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJ2LTQuNDhsNCAzLjk4di0xMWwtNCAzLjk4ek0xNiAxOEg0VjZoMTJ2MTJ6bS00LTYgMyAxLjczLTEgMS43My0zLTEuNzNWMTdIOXYtMy4yN2wtMyAxLjczLTEtMS43M0w4IDEybC0zLTEuNzMgMS0xLjczIDMgMS43M1Y3aDJ2My4yN2wzLTEuNzMgMSAxLjczTDEyIDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRW1lcmdlbmN5U2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0YzEuOTMgMCAzLjY4Ljc4IDQuOTUgMi4wNWwtMS40MSAxLjQxYTUuMDIyIDUuMDIyIDAgMCAwLTcuMDggMEw3LjA1IDYuMDVBNi45NzYgNi45NzYgMCAwIDEgMTIgNHptNy43OC0uNzctMS40MSAxLjQxQzE2Ljc0IDMuMDEgMTQuNDkgMiAxMi4wMSAyUzcuMjcgMy4wMSA1LjY0IDQuNjNMNC4yMiAzLjIyQzYuMjIgMS4yMyA4Ljk3IDAgMTIuMDEgMHM1Ljc4IDEuMjMgNy43NyAzLjIzek0xMiAxMWMxLjk0IDAgNCAxLjQ1IDQgNC4xNSAwIC45NC0uNTUgMi45My00IDYuMTctMy40NS0zLjI0LTQtNS4yMy00LTYuMTcgMC0yLjcgMi4wNi00LjE1IDQtNC4xNXptMC0yYy0zLjE1IDAtNiAyLjQxLTYgNi4xNSAwIDIuNDkgMiA1LjQ0IDYgOC44NSA0LTMuNDEgNi02LjM2IDYtOC44NUMxOCAxMS40MSAxNS4xNSA5IDEyIDl6bTEuNSA2YzAtLjgzLS42Ny0xLjUtMS41LTEuNXMtMS41LjY3LTEuNSAxLjUuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRW1lcmdlbmN5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuMjkgMTMuOSAxOCAxMmwzLjI5LTEuOWMuNDgtLjI4LjY0LS44OS4zNy0xLjM3bC0yLTMuNDZhMS4wMSAxLjAxIDAgMCAwLTEuMzctLjM3TDE1IDYuOFYzYzAtLjU1LS40NS0xLTEtMWgtNGMtLjU1IDAtMSAuNDUtMSAxdjMuOEw1LjcxIDQuOWExLjAxIDEuMDEgMCAwIDAtMS4zNy4zN2wtMiAzLjQ2Yy0uMjguNDgtLjExIDEuMDkuMzcgMS4zN0w2IDEybC0zLjI5IDEuOWMtLjQ4LjI4LS42NC44OS0uMzcgMS4zN2wyIDMuNDZjLjI4LjQ4Ljg5LjY0IDEuMzcuMzdMOSAxNy4yVjIxYzAgLjU1LjQ1IDEgMSAxaDRjLjU1IDAgMS0uNDUgMS0xdi0zLjhsMy4yOSAxLjljLjQ4LjI4IDEuMDkuMTEgMS4zNy0uMzdsMi0zLjQ2Yy4yOC0uNDguMTEtMS4wOS0uMzctMS4zN3ptLTIuODYgMi45Ny00LjY4LTIuN2MtLjMzLS4yLS43NS4wNC0uNzUuNDNWMjBoLTJ2LTUuNGMwLS4zOC0uNDItLjYzLS43NS0uNDNsLTQuNjggMi43LTEtMS43MyA0LjY4LTIuN2MuMzMtLjE5LjMzLS42NyAwLS44N2wtNC42OC0yLjcgMS0xLjczIDQuNjggMi43Yy4zMy4xOS43NS0uMDUuNzUtLjQ0VjRoMnY1LjRjMCAuMzguNDIuNjMuNzUuNDNsNC42OC0yLjcgMSAxLjczLTQuNjggMi43Yy0uMzMuMTktLjMzLjY3IDAgLjg3bDQuNjggMi43LTEgMS43NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUV2U3RhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkuNzcgNy4yMy4wMS0uMDEtMy43Mi0zLjcyTDE1IDQuNTZsMi4xMSAyLjExYy0uOTQuMzYtMS42MSAxLjI2LTEuNjEgMi4zM2EyLjUgMi41IDAgMCAwIDIuNSAyLjVjLjM2IDAgLjY5LS4wOCAxLS4yMXY3LjIxYzAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xVjE0YzAtMS4xLS45LTItMi0yaC0xVjVjMC0xLjEtLjktMi0yLTJINmMtMS4xIDAtMiAuOS0yIDJ2MTZoMTB2LTcuNWgxLjV2NWEyLjUgMi41IDAgMCAwIDUgMFY5YzAtLjY5LS4yOC0xLjMyLS43My0xLjc3ek0xMiAxMXY4SDZWNWg2djZ6bTYtMWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0tOC00LTQgNy41aDJWMThsNC03aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmFjdG9yeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDIySDJWMTBsNy0zdjJsNS0ydjNoM2wxLThoM2wxIDh2MTJ6TTEyIDkuOTVsLTUgMlYxMGwtMyAxLjMyVjIwaDE2di04aC04VjkuOTV6TTExIDE4aDJ2LTRoLTJ2NHptLTQgMGgydi00SDd2NHptMTAtNGgtMnY0aDJ2LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGYXN0Zm9vZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAyMS45OGMwIC41Ni40NSAxLjAxIDEuMDEgMS4wMUgxNWMuNTYgMCAxLjAxLS40NSAxLjAxLTEuMDFWMjFIMXYuOTh6TTguNSA4Ljk5QzQuNzUgOC45OSAxIDExIDEgMTVoMTVjMC00LTMuNzUtNi4wMS03LjUtNi4wMXpNMy42MiAxM2MxLjExLTEuNTUgMy40Ny0yLjAxIDQuODgtMi4wMXMzLjc3LjQ2IDQuODggMi4wMUgzLjYyek0xIDE3aDE1djJIMXpNMTggNVYxaC0ydjRoLTVsLjIzIDJoOS41NmwtMS40IDE0SDE4djJoMS43MmMuODQgMCAxLjUzLS42NSAxLjYzLTEuNDdMMjMgNWgtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZlc3RpdmFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMgMTFWOWMtNi0yLTExLTctMTEtN1M3IDcgMSA5djJjMCAxLjQ5LjkzIDIuNzUgMi4yNCAzLjI2QzMuMiAxNi43NiAyLjkyIDE5LjY5IDIgMjJoMjBjLS45Mi0yLjMxLTEuMi01LjI0LTEuMjQtNy43NEEzLjQ5NiAzLjQ5NiAwIDAgMCAyMyAxMXpNMTIgNC43MWMxLjMzIDEuMTQgMy40OSAyLjg0IDYuMTEgNC4yOUg1Ljg5QzguNTEgNy41NSAxMC42NyA1Ljg1IDEyIDQuNzF6TTEzIDExaDNjMCAuODMtLjY3IDEuNS0xLjUgMS41UzEzIDExLjgzIDEzIDExem0tMy41IDEuNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41aDNjMCAuODMtLjY3IDEuNS0xLjUgMS41ek02IDExYzAgLjgzLS42NyAxLjUtMS41IDEuNVMzIDExLjgzIDMgMTFoM3ptLTEuMzQgOWMuMzktMS44Ni41NC0zLjgyLjU3LTUuNTguNjgtLjE1IDEuMjktLjQ5IDEuNzYtLjk4LjI1LjI1LjU0LjQ1Ljg1LjYyLS4xIDEuODctLjI2IDQtLjUyIDUuOTNINC42NnptNC42OSAwYy4yNC0xLjgzLjM5LTMuNzguNDgtNS41My44NC0uMDggMS42MS0uNDUgMi4xNy0xLjAyLjU2LjU3IDEuMzIuOTQgMi4xNyAxLjAyLjEgMS43NS4yNCAzLjcuNDggNS41M2gtNS4zem03LjMyIDBjLS4yNy0xLjk0LS40My00LjA3LS41Mi01LjkzLjMxLS4xNy42MS0uMzcuODUtLjYyLjQ3LjQ4IDEuMDguODMgMS43Ni45OC4wMyAxLjc2LjE4IDMuNzIuNTcgNS41OGgtMi42NnptMi44My03LjVjLS44MyAwLTEuNS0uNjctMS41LTEuNWgzYzAgLjgzLS42NyAxLjUtMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpcmVIeWRyYW50QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTAuNWMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNSAzLjUtMS41NyAzLjUtMy41LTEuNTctMy41LTMuNS0zLjV6bTAgNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDExaC0xVjhoMlY2aC0yLjM1YTUuOTkgNS45OSAwIDAgMC0xMS4zIDBINHYyaDJ2M0g1Yy0xLjEgMC0yIC45LTIgMnYyYzAgMS4xLjkgMiAyIDJoMXYzSDR2MmgxNnYtMmgtMnYtM2gxYzEuMSAwIDItLjkgMi0ydi0yYzAtMS4xLS45LTItMi0yem0tNy03YzEuNDcgMCAyLjc1LjgxIDMuNDQgMkg4LjU2Yy42OS0xLjE5IDEuOTctMiAzLjQ0LTJ6bTcgMTFoLTN2NUg4di01SDV2LTJoM1Y4aDh2NWgzdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaXJlVHJ1Y2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMi45IDEwLjY5LTEuNDQtNC4zMkEyLjAxIDIuMDEgMCAwIDAgMTkuNTYgNUgxOVY0YzAtLjU1LS40NS0xLTEtMWgtMWMtLjU1IDAtMSAuNDUtMSAxdjFoLTJjLTEuMSAwLTIgLjktMiAydjRIMXY1YzAgMS4xLjkgMiAyIDJoMWMwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zaDRjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtM2gzdi02LjY4YzAtLjIxLS4wMy0uNDItLjEtLjYzek0xNCA3aDUuNTZsMS4zMyA0SDE0Vjd6TTcgMTljLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptNS0zSDkuMjJjLS41NS0uNjEtMS4zMy0xLTIuMjItMXMtMS42Ny4zOS0yLjIyIDFIM3YtM2g5djN6bTUgM2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0yLjIyLTNjLS41NS0uNjEtMS4zNC0xLTIuMjItMXMtMS42Ny4zOS0yLjIyIDFIMTR2LTNoN3YzaC0xLjc4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA4LjVoLTF2LTJoMVY1SDF2MS41aDF2MkgxVjEwaDEwVjguNXptLTIuNSAwSDYuNzV2LTJIOC41djJ6bS01LTJoMS43NXYySDMuNXYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZsaWdodENsYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgNGgtMmMtMS4xIDAtMiAuOS0yIDJ2NWMwIDEuMS45IDIgMiAyaDJjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCA3aC0yVjZoMnY1em0tNi41IDVIMTh2Mkg5LjQ5Yy0uODggMC0xLjY2LS41OC0xLjkyLTEuNDNMNSA4VjRoMnY0bDIuNSA4ek04IDE5aDEwdjJIOHYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZsaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTZ2LTJsLTgtNVYzLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41UzEwIDIuNjcgMTAgMy41VjlsLTggNXYybDgtMi41VjE5bC0yIDEuNVYyMmwzLjUtMSAzLjUgMXYtMS41TDEzIDE5di01LjVsOCAyLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3Jlc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yNCAxOC0zLjg2LTZIMjJMMTUgMmwtMyA0LjI5TDkgMiAyIDEyaDEuODZMMCAxOGg3djRoNHYtNGgydjRoNHYtNGg3ek0xNSA1LjQ5IDE4LjE2IDEwaC0xLjY4bDMuODYgNmgtMy42MmwtMi41Ny00SDE2bC0yLjc4LTMuOTdMMTUgNS40OXpNMy42NiAxNmwzLjg2LTZINS44NEw5IDUuNDkgMTIuMTYgMTBoLTEuNjhsMy44NiA2SDMuNjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JrTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNDEgMTUuNTkgOCAxN2wtNC00IDQtNCAxLjQxIDEuNDFMNy44MyAxMmMxLjUxLS4zMyAzLjczLjA4IDUuMTcgMS4zNlY2LjgzbC0xLjU5IDEuNTlMMTAgN2w0LTQgNCA0LTEuNDEgMS40MUwxNSA2LjgzVjIxaC0ydi00Yy0uNzMtMi41OC0zLjA3LTMuNDctNS4xNy0zbDEuNTggMS41OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvcmtSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjU5IDE1LjU5IDE2IDE3bDQtNC00LTQtMS40MSAxLjQxTDE2LjE3IDEyYy0xLjUxLS4zMy0zLjczLjA4LTUuMTcgMS4zNlY2LjgzbDEuNTkgMS41OUwxNCA3bC00LTQtNCA0IDEuNDEgMS40MUw5IDYuODNWMjFoMnYtNGMuNzMtMi41OCAzLjA3LTMuNDcgNS4xNy0zbC0xLjU4IDEuNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM3YyaC0yVjNoLTJ2MmgtMlYzaC0ydjRsMiAydjFIOVY5bDItMlYzSDl2Mkg3VjNINXYySDNWM0gxdjRsMiAydjZsLTIgMnY0aDl2LTNjMC0xLjEuOS0yIDItMnMyIC45IDIgMnYzaDl2LTRsLTItMlY5bDItMlYzaC0yem0wIDE2aC01di0xYzAtMi4yMS0xLjc5LTQtNC00cy00IDEuNzktNCA0djFIM3YtMS4xN2wyLTJWOC4xN0wzLjgzIDdoNC4zNEw3IDguMTdWMTJoMTBWOC4xN0wxNS44MyA3aDQuMzRMMTkgOC4xN3Y3LjY2bDIgMlYxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhhaWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnptNS00aDJjMCAyLjctLjkzIDQuNDEtMi4zIDUuNS0uNS40LTEuMS43LTEuNy45VjIyaC0ydi02aC0ydjZIOVYxMC4xYy0uMy4xLS41LjItLjYuMy0uNTMuNDEtMS40IDEuMDMtMS40IDMuNkg1YzAtMi4wNi4zNS0zLjc4IDIuMTEtNS4yOUM4LjIxIDcuODEgMTAgNyAxMiA3czIuNjgtLjQ2IDMuNDgtMS4wNkMxNS45NiA1LjU1IDE3IDQuNzYgMTcgMnpNNCAxNmgzdjZINHYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhhbmR5bWFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuNjcgMTguMTctNS4zLTUuM2gtLjk5bC0yLjU0IDIuNTR2Ljk5bDUuMyA1LjNjLjM5LjM5IDEuMDIuMzkgMS40MSAwbDIuMTItMi4xMmEuOTk2Ljk5NiAwIDAgMCAwLTEuNDF6bS0yLjgzIDEuNDItNC4yNC00LjI0LjcxLS43MSA0LjI0IDQuMjQtLjcxLjcxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNy4zNCAxMC4xOSAxLjQxLTEuNDEgMi4xMiAyLjEyYTMgMyAwIDAgMCAwLTQuMjRsLTMuNTQtMy41NC0xLjQxIDEuNDFWMS43MWwtLjctLjcxLTMuNTQgMy41NC43MS43MWgyLjgzbC0xLjQxIDEuNDEgMS4wNiAxLjA2LTIuODkgMi44OS00LjEzLTQuMTNWNS4wNkw0LjgzIDIuMDQgMiA0Ljg3IDUuMDMgNy45aDEuNDFsNC4xMyA0LjEzLS44NS44NUg3LjZsLTUuMyA1LjNhLjk5Ni45OTYgMCAwIDAgMCAxLjQxbDIuMTIgMi4xMmMuMzkuMzkgMS4wMi4zOSAxLjQxIDBsNS4zLTUuM3YtMi4xMmw1LjE1LTUuMTUgMS4wNiAxLjA1em0tNy45OCA1LjE1LTQuMjQgNC4yNC0uNzEtLjcxIDQuMjQtNC4yNC43MS43MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhhcmR3YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTggMy0zIDNWM0g5QzYuMjQgMyA0IDUuMjQgNCA4aDV2MTJjMCAuNTUuNDUgMSAxIDFoNGMuNTUgMCAxLS40NSAxLTFWOGwzIDNoMlYzaC0yem0tNSAxNmgtMnYtNmgydjZ6bS0yLThWNkg2Ljc3QzcuMzIgNS4zOSA4LjExIDUgOSA1aDR2NmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhvbWVSZXBhaXJTZXJ2aWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOGgtM1Y2YzAtMS4xLS45LTItMi0ySDljLTEuMSAwLTIgLjktMiAydjJINGMtMS4xIDAtMiAuOS0yIDJ2MTBoMjBWMTBjMC0xLjEtLjktMi0yLTJ6TTkgNmg2djJIOVY2em0xMSAxMkg0di0zaDJ2MWgydi0xaDh2MWgydi0xaDJ2M3ptLTItNXYtMWgtMnYxSDh2LTFINnYxSDR2LTNoMTZ2M2gtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhvdGVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE0YzEuNjYgMCAzLTEuMzQgMy0zUzguNjYgOCA3IDhzLTMgMS4zNC0zIDMgMS4zNCAzIDMgM3ptMC00Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTEyLTNoLTh2OEgzVjVIMXYxNWgydi0zaDE4djNoMnYtOWMwLTIuMjEtMS43OS00LTQtNHptMiA4aC04VjloNmMxLjEgMCAyIC45IDIgMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSHZhYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMThjMy4zMSAwIDYtMi42OSA2LTZzLTIuNjktNi02LTYtNiAyLjY5LTYgNiAyLjY5IDYgNiA2em0zLjQ0LThjLjI2LjQ1LjQ0Ljk2LjUxIDEuNWgtNy45Yy4wNy0uNTQuMjQtMS4wNS41MS0xLjVoNi44OHptLjUxIDIuNWMtLjA3LjU0LS4yNCAxLjA1LS41MSAxLjVIOC41NmMtLjI2LS40NS0uNDQtLjk2LS41MS0xLjVoNy45ek05LjM4IDE1aDUuMjRjLS43LjYxLTEuNjEgMS0yLjYyIDFzLTEuOTEtLjM5LTIuNjItMXptNS4yNC02SDkuMzhjLjctLjYxIDEuNjEtMSAyLjYyLTFzMS45MS4zOSAyLjYyIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJY2VjcmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjM4IDYuMjRDMTcuNzkgMy4yNCAxNS4xNCAxIDEyIDFTNi4yMSAzLjI0IDUuNjIgNi4yNEE0LjAxNCA0LjAxNCAwIDAgMCAzIDEwYzAgMi4yMSAxLjc5IDQgNCA0IC4xMiAwIC4yMy0uMDIuMzQtLjAyTDEyLjA3IDIzbDQuNjEtOS4wM2MuMTEuMDEuMjEuMDMuMzIuMDMgMi4yMSAwIDQtMS43OSA0LTQgMC0xLjcxLTEuMDgtMy4xOS0yLjYyLTMuNzZ6bS02LjMzIDEyLjM5LTIuNzMtNS4yMWE2LjQ2OCA2LjQ2OCAwIDAgMCA1LjQtLjAybC0yLjY3IDUuMjN6TTE3IDEyYy0uNTIgMC0xLjAxLS4yLTEuMzktLjU2bC0uNTYtLjU0LS42Ni40MmE0LjUyIDQuNTIgMCAwIDEtNC43OC0uMDFsLS42Ni0uNDEtLjU2LjU0Yy0uMzguMzUtLjg3LjU2LTEuMzkuNTZhMS45OTkgMS45OTkgMCAwIDEtLjMyLTMuOTdsLjc3LS4xMy4wNi0uNzhDNy43MSA0LjggOS42NiAzIDEyIDNzNC4yOSAxLjggNC40OCA0LjEybC4wNi43OC43Ny4xMmMuOTcuMTYgMS42OS45OSAxLjY5IDEuOTggMCAxLjEtLjkgMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVLZWJhYkRpbmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3Ljc1IDdoLjc1YTIuNSAyLjUgMCAwIDAgMC01aC0uNzVWMWgtMS41djFoLS43NWEyLjUgMi41IDAgMCAwIDAgNWguNzV2MUgxM3Y1aDMuMjV2MWgtLjc1YTIuNSAyLjUgMCAwIDAgMCA1aC43NXY0aDEuNXYtNGguNzVhMi41IDIuNSAwIDAgMCAwLTVoLS43NXYtMUgyMVY4aC0zLjI1Vjd6TTE1LjUgNWMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41aDNjLjI4IDAgLjUuMjIuNS41cy0uMjIuNS0uNS41aC0zem0zIDExYy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNWgtM2MtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41aDN6bS41LTZ2MWgtNHYtMWg0ek03Ljc1IDdoLjc1YTIuNSAyLjUgMCAwIDAgMC01aC0uNzVWMWgtMS41djFINS41YTIuNSAyLjUgMCAwIDAgMCA1aC43NXYxSDN2NWgzLjI1djFINS41YTIuNSAyLjUgMCAwIDAgMCA1aC43NXY0aDEuNXYtNGguNzVhMi41IDIuNSAwIDAgMCAwLTVoLS43NXYtMUgxMVY4SDcuNzVWN3pNNS41IDVjLS4yOCAwLS41LS4yMi0uNS0uNXMuMjItLjUuNS0uNWgzYy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNWgtM3ptMyAxMWMuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjVoLTNjLS4yOCAwLS41LS4yMi0uNS0uNXMuMjItLjUuNS0uNWgzem0uNS02djFINXYtMWg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGF5ZXJzQ2xlYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDQuNTMgMTcuNzQgOWwtMS44OSAxLjQ3IDEuNDMgMS40MkwyMSA5bC05LTctMi41OSAyLjAyIDEuNDIgMS40MnptOSA5LjU0LTEuNjMtMS4yNy0uNjcuNTIgMS40MyAxLjQzek0zLjQxLjg2IDIgMi4yN2w0LjIyIDQuMjJMMyA5bDkgNyAyLjEtMS42MyAxLjQyIDEuNDItMy41MyAyLjc1LTcuMzctNS43M0wzIDE0LjA3bDkgNyA0Ljk1LTMuODVMMjAuNzMgMjFsMS40MS0xLjQxTDMuNDEuODZ6TTEyIDEzLjQ3IDYuMjYgOWwxLjM5LTEuMDggNS4wMiA1LjAyLS42Ny41M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxheWVycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTEuOTkgMTguNTQtNy4zNy01LjczTDMgMTQuMDdsOSA3IDktNy0xLjYzLTEuMjd6TTEyIDE2bDcuMzYtNS43M0wyMSA5bC05LTctOSA3IDEuNjMgMS4yN0wxMiAxNnptMC0xMS40N0wxNy43NCA5IDEyIDEzLjQ3IDYuMjYgOSAxMiA0LjUzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGlxdW9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxNGMwIDEuMy44NCAyLjQgMiAyLjgyVjIwSDN2Mmg2di0ySDd2LTMuMThDOC4xNiAxNi40IDkgMTUuMyA5IDE0VjZIM3Y4em0yLTZoMnYzSDVWOHptMCA1aDJ2MWMwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMXYtMXpNMjAuNjQgOC41NGwtLjk2LS4zMmExIDEgMCAwIDEtLjY4LS45NVYzYzAtLjU1LS40NS0xLTEtMWgtM2MtLjU1IDAtMSAuNDUtMSAxdjQuMjhhMSAxIDAgMCAxLS42OC45NWwtLjk2LjMyYy0uODEuMjgtMS4zNiAxLjA0LTEuMzYgMS45VjIwYzAgMS4xLjkgMiAyIDJoN2MxLjEgMCAyLS45IDItMnYtOS41NmMwLS44Ni0uNTUtMS42Mi0xLjM2LTEuOXpNMTYgNGgxdjFoLTFWNHptNCAxNmgtN3YtMmg3djJ6bTAtNGgtN3YtMmg3djJ6bTAtNGgtN3YtMS41NmwuOTUtLjMyQzE1LjE4IDkuNzIgMTYgOC41NyAxNiA3LjI4VjdoMXYuMjhhMyAzIDAgMCAwIDIuMDUgMi44NWwuOTUuMzFWMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbEFjdGl2aXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMFY2YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJ2NGMxLjEgMCAxLjk5LjkgMS45OSAycy0uODkgMi0yIDJ2NGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0ydi00Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMnptLTItMS40NmMtMS4xOS42OS0yIDEuOTktMiAzLjQ2cy44MSAyLjc3IDIgMy40NlYxOEg0di0yLjU0YzEuMTktLjY5IDItMS45OSAyLTMuNDYgMC0xLjQ4LS44LTIuNzctMS45OS0zLjQ2TDQgNmgxNnYyLjU0ek05LjA3IDE2IDEyIDE0LjEyIDE0LjkzIDE2bC0uODktMy4zNiAyLjY5LTIuMi0zLjQ3LS4yMUwxMiA3bC0xLjI3IDMuMjItMy40Ny4yMSAyLjY5IDIuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2FsQWlycG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTZ2LTJsLTguNS01VjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVzLTEuNS42Ny0xLjUgMS41VjlMMiAxNHYybDguNS0yLjVWMTlMOCAyMC41VjIybDQtMSA0IDF2LTEuNUwxMy41IDE5di01LjVMMjIgMTZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbEF0bSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTdoMnYtMWgxYy41NSAwIDEtLjQ1IDEtMXYtM2MwLS41NS0uNDUtMS0xLTFoLTN2LTFoNFY4aC0yVjdoLTJ2MWgtMWMtLjU1IDAtMSAuNDUtMSAxdjNjMCAuNTUuNDUgMSAxIDFoM3YxSDl2MmgydjF6bTktMTNINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMThjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWNmMwLTEuMTEtLjg5LTItMi0yem0wIDE0SDRWNmgxNnYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2FsQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC43NyA5IDEyIDEyLjExIDkuMjMgOWg1LjU0TTIxIDNIM3YybDggOXY1SDZ2MmgxMnYtMmgtNXYtNWw4LTlWM3pNNy40MyA3IDUuNjYgNWgxMi42OWwtMS43OCAySDcuNDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbENhZmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDV2OGMwIDEuMS0uOSAyLTIgMkg4Yy0xLjEgMC0yLS45LTItMlY1aDEwbTQtMkg0djEwYzAgMi4yMSAxLjc5IDQgNCA0aDZjMi4yMSAwIDQtMS43OSA0LTR2LTNoMmMxLjExIDAgMi0uODkgMi0yVjVjMC0xLjExLS44OS0yLTItMnptLTIgNVY1aDJ2M2gtMnptMiAxMUgydjJoMTh2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbENhcldhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDVjLjgzIDAgMS41LS42NyAxLjUtMS41IDAtMS0xLjUtMi43LTEuNS0yLjdzLTEuNSAxLjctMS41IDIuN2MwIC44My42NyAxLjUgMS41IDEuNXptLTUgMGMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0xLTEuNS0yLjctMS41LTIuN3MtMS41IDEuNy0xLjUgMi43YzAgLjgzLjY3IDEuNSAxLjUgMS41ek03IDVjLjgzIDAgMS41LS42NyAxLjUtMS41QzguNSAyLjUgNyAuOCA3IC44UzUuNSAyLjUgNS41IDMuNUM1LjUgNC4zMyA2LjE3IDUgNyA1em0xMS45MiAzLjAxQzE4LjcyIDcuNDIgMTguMTYgNyAxNy41IDdoLTExYy0uNjYgMC0xLjIxLjQyLTEuNDIgMS4wMUwzIDE0djhjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTFoMTJ2MWMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtOGwtMi4wOC01Ljk5ek02Ljg1IDloMTAuMjlsMS4wNCAzSDUuODFsMS4wNC0zek0xOSAxOUg1di00LjY2bC4xMi0uMzRoMTMuNzdsLjExLjM0VjE5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjcuNVwiLFwiY3lcIjpcIjE2LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE2LjVcIixcImN5XCI6XCIxNi41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2FsQ29udmVuaWVuY2VTdG9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgN1Y0SDV2M0gydjEzaDh2LTRoNHY0aDhWN2gtM3ptMSAxMWgtNHYtNEg4djRINFY5aDNWNmgxMHYzaDN2OXpNOCA4aDJ2MUg4djNoM3YtMUg5di0xaDJWN0g4em03IDFoLTFWN2gtMXYzaDJ2MmgxVjdoLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbERpbmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOC4xIDEzLjM0IDIuODMtMi44M0wzLjkxIDMuNWE0LjAwOCA0LjAwOCAwIDAgMCAwIDUuNjZsNC4xOSA0LjE4em02Ljc4LTEuODFjMS41My43MSAzLjY4LjIxIDUuMjctMS4zOCAxLjkxLTEuOTEgMi4yOC00LjY1LjgxLTYuMTItMS40Ni0xLjQ2LTQuMi0xLjEtNi4xMi44MS0xLjU5IDEuNTktMi4wOSAzLjc0LTEuMzggNS4yN0wzLjcgMTkuODdsMS40MSAxLjQxTDEyIDE0LjQxbDYuODggNi44OCAxLjQxLTEuNDFMMTMuNDEgMTNsMS40Ny0xLjQ3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxEcmluayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMyAyIDIuMDEgMTguMjNDNS4xMyAyMS4yMyA1Ljk3IDIyIDcgMjJoMTBjMS4wMyAwIDEuODctLjc3IDEuOTktMS43N0wyMSAySDN6bTE0IDE4LTEwIC4wMUw1Ljg5IDEwSDE4LjFMMTcgMjB6bTEuMzMtMTJINS42N2wtLjQ0LTRoMTMuNTNsLS40MyA0ek0xMiAxOWMxLjY2IDAgMy0xLjM0IDMtMyAwLTItMy01LjQtMy01LjRTOSAxNCA5IDE2YzAgMS42NiAxLjM0IDMgMyAzem0wLTUuMDljLjU5LjkxIDEgMS43MyAxIDIuMDkgMCAuNTUtLjQ1IDEtMSAxcy0xLS40NS0xLTFjMC0uMzcuNDEtMS4xOSAxLTIuMDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbEZpcmVEZXBhcnRtZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYgNi0uNDQuNTVjLS40Mi41Mi0uOTguNzUtMS41NC43NUMxMyA3LjMgMTIgNi41MiAxMiA1LjNWMlM0IDYgNCAxM2MwIDQuNDIgMy41OCA4IDggOHM4LTMuNTggOC04YzAtMi45Ni0xLjYxLTUuNjItNC03em0tNCAxM2MtMS4xIDAtMi0uODctMi0xLjk0IDAtLjUxLjItLjk5LjU4LTEuMzZMMTIgMTQuM2wxLjQzIDEuNGMuMzcuMzcuNTcuODUuNTcgMS4zNiAwIDEuMDctLjkgMS45NC0yIDEuOTR6bTMuOTYtMS41Yy4wNC0uMzYuMjItMS44OS0xLjEzLTMuMjJMMTIgMTEuNWwtMi44MyAyLjc4QzcuODEgMTUuNjIgOCAxNy4xNiA4LjA0IDE3LjVBNS45ODIgNS45ODIgMCAwIDEgNiAxM2MwLTMuMTYgMi4xMy01LjY1IDQuMDMtNy4yNWE0LjAyNCA0LjAyNCAwIDAgMCAzLjk5IDMuNTVjLjc4IDAgMS41NC0uMjMgMi4xOC0uNjZBNi4xNzUgNi4xNzUgMCAwIDEgMTggMTNjMCAxLjc5LS43OSAzLjQtMi4wNCA0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbEZsb3Jpc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNjYgMTMuMDdjLjE1IDAgLjI5LS4wMS40My0uMDNDOS41NiAxNC4xOSAxMC42OSAxNSAxMiAxNXMyLjQ0LS44MSAyLjkxLTEuOTZhMy4xNDUgMy4xNDUgMCAwIDAgMy41Ny0zLjExYzAtLjcxLS4yNS0xLjM5LS42Ny0xLjkzLjQzLS41NC42Ny0xLjIyLjY3LTEuOTNhMy4xNDUgMy4xNDUgMCAwIDAtMy41Ny0zLjExQzE0LjQ0IDEuODEgMTMuMzEgMSAxMiAxcy0yLjQ0LjgxLTIuOTEgMS45NmEzLjE0NSAzLjE0NSAwIDAgMC0zLjU3IDMuMTFjMCAuNzEuMjUgMS4zOS42NyAxLjkzLS40My41NC0uNjggMS4yMi0uNjggMS45MyAwIDEuNzMgMS40MSAzLjE0IDMuMTUgMy4xNHpNMTIgMTNjLS42MiAwLTEuMTItLjQ5LTEuMTQtMS4xbC4xMi0xLjA5Yy4zMi4xMi42Ni4xOSAxLjAyLjE5cy43MS0uMDcgMS4wMy0uMTlsLjExIDEuMDljLS4wMi42MS0uNTIgMS4xLTEuMTQgMS4xem0zLjM0LTEuOTNjLS4yNCAwLS40Ni0uMDctLjY0LS4ybC0uODEtLjU3Yy41NS0uNDUuOTQtMS4wOSAxLjA2LTEuODNsLjg4LjQyYy40LjE5LjY2LjU5LjY2IDEuMDMgMCAuNjQtLjUyIDEuMTUtMS4xNSAxLjE1em0tLjY1LTUuOTRjLjItLjEzLjQyLS4yLjY1LS4yLjYzIDAgMS4xNC41MSAxLjE0IDEuMTQgMCAuNDQtLjI1LjgzLS42NiAxLjAzbC0uODguNDJjLS4xMi0uNzQtLjUxLTEuMzgtMS4wNy0xLjgzbC44Mi0uNTZ6TTEyIDNjLjYyIDAgMS4xMi40OSAxLjE0IDEuMWwtLjExIDEuMDlDMTIuNzEgNS4wNyAxMi4zNiA1IDEyIDVzLS43LjA3LTEuMDIuMTlsLS4xMi0xLjA5Yy4wMi0uNjEuNTItMS4xIDEuMTQtMS4xek04LjY2IDQuOTNjLjI0IDAgLjQ2LjA3LjY0LjJsLjgxLjU2Yy0uNTUuNDUtLjk0IDEuMDktMS4wNiAxLjgzbC0uODgtLjQyYy0uNC0uMi0uNjYtLjU5LS42Ni0xLjAzIDAtLjYzLjUyLTEuMTQgMS4xNS0xLjE0ek04LjE3IDguOWwuODgtLjQyYy4xMi43NC41MSAxLjM4IDEuMDcgMS44M2wtLjgxLjU1Yy0uMi4xMy0uNDIuMi0uNjUuMi0uNjMgMC0xLjE0LS41MS0xLjE0LTEuMTQtLjAxLS40My4yNS0uODIuNjUtMS4wMnpNMTIgMjJhOSA5IDAgMCAwIDktOSA5IDkgMCAwIDAtOSA5em0yLjQ0LTIuNDRjLjcxLTEuOSAyLjIyLTMuNDIgNC4xMi00LjEyYTcuMDQgNy4wNCAwIDAgMS00LjEyIDQuMTJ6TTMgMTNhOSA5IDAgMCAwIDkgOSA5IDkgMCAwIDAtOS05em0yLjQ0IDIuNDRjMS45LjcxIDMuNDIgMi4yMiA0LjEyIDQuMTJhNy4wNCA3LjA0IDAgMCAxLTQuMTItNC4xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2FsR2FzU3RhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkuNzcgNy4yMy4wMS0uMDEtMy43Mi0zLjcyTDE1IDQuNTZsMi4xMSAyLjExYy0uOTQuMzYtMS42MSAxLjI2LTEuNjEgMi4zM2EyLjUgMi41IDAgMCAwIDIuNSAyLjVjLjM2IDAgLjY5LS4wOCAxLS4yMXY3LjIxYzAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xVjE0YzAtMS4xLS45LTItMi0yaC0xVjVjMC0xLjEtLjktMi0yLTJINmMtMS4xIDAtMiAuOS0yIDJ2MTZoMTB2LTcuNWgxLjV2NWEyLjUgMi41IDAgMCAwIDUgMFY5YzAtLjY5LS4yOC0xLjMyLS43My0xLjc3ek0xMiAxMy41VjE5SDZ2LTdoNnYxLjV6bTAtMy41SDZWNWg2djV6bTYgMGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxHcm9jZXJ5U3RvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMThjLTEuMSAwLTEuOTkuOS0xLjk5IDJTNS45IDIyIDcgMjJzMi0uOSAyLTItLjktMi0yLTJ6bTEwIDBjLTEuMSAwLTEuOTkuOS0xLjk5IDJzLjg5IDIgMS45OSAyIDItLjkgMi0yLS45LTItMi0yem0tMS40NS01Yy43NSAwIDEuNDEtLjQxIDEuNzUtMS4wM2wzLjU4LTYuNDlBLjk5Ni45OTYgMCAwIDAgMjAuMDEgNEg1LjIxbC0uOTQtMkgxdjJoMmwzLjYgNy41OS0xLjM1IDIuNDRDNC41MiAxNS4zNyA1LjQ4IDE3IDcgMTdoMTJ2LTJIN2wxLjEtMmg3LjQ1ek02LjE2IDZoMTIuMTVsLTIuNzYgNUg4LjUzTDYuMTYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2FsSG9zcGl0YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMS45OS45LTEuOTkgMkwzIDE5YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6bS04LjUtMmgzdi0zLjVIMTd2LTNoLTMuNVY3aC0zdjMuNUg3djNoMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxIb3RlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxNGMxLjY2IDAgMy0xLjM0IDMtM1M4LjY2IDggNyA4cy0zIDEuMzQtMyAzIDEuMzQgMyAzIDN6bTAtNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0xMi0zaC04djhIM1Y1SDF2MTVoMnYtM2gxOHYzaDJ2LTljMC0yLjIxLTEuNzktNC00LTR6bTIgOGgtOFY5aDZjMS4xIDAgMiAuOSAyIDJ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2FsTGF1bmRyeVNlcnZpY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDIuMDEgNiAyYy0xLjExIDAtMiAuODktMiAydjE2YzAgMS4xMS44OSAyIDIgMmgxMmMxLjExIDAgMi0uODkgMi0yVjRjMC0xLjExLS44OS0xLjk5LTItMS45OXpNMTggMjBINkw1Ljk5IDRIMTh2MTZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOFwiLFwiY3lcIjpcIjZcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMVwiLFwiY3lcIjpcIjZcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTljMi43NiAwIDUtMi4yNCA1LTVzLTIuMjQtNS01LTUtNSAyLjI0LTUgNSAyLjI0IDUgNSA1em0yLjM2LTcuMzZjMS4zIDEuMyAxLjMgMy40MiAwIDQuNzItMS4zIDEuMy0zLjQyIDEuMy00LjcyIDBsNC43Mi00LjcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxMaWJyYXJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA5YzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptMC02YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnptMCA4LjU1QzkuNjQgOS4zNSA2LjQ4IDggMyA4djExYzMuNDggMCA2LjY0IDEuMzUgOSAzLjU1IDIuMzYtMi4xOSA1LjUyLTMuNTUgOS0zLjU1VjhjLTMuNDggMC02LjY0IDEuMzUtOSAzLjU1em03IDUuNThjLTIuNTMuMzQtNC45MyAxLjMtNyAyLjgyYTE1LjIgMTUuMiAwIDAgMC03LTIuODN2LTYuOTVjMi4xLjM4IDQuMDUgMS4zNSA1LjY0IDIuODNMMTIgMTQuMjhsMS4zNi0xLjI3QTExLjE4IDExLjE4IDAgMCAxIDE5IDEwLjE4djYuOTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbE1hbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDZoLTJjMC0yLjc2LTIuMjQtNS01LTVTNyAzLjI0IDcgNkg1Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bS03LTNjMS42NiAwIDMgMS4zNCAzIDNIOWMwLTEuNjYgMS4zNC0zIDMtM3ptNyAxN0g1VjhoMTR2MTJ6bS03LThjLTEuNjYgMC0zLTEuMzQtMy0zSDdjMCAyLjc2IDIuMjQgNSA1IDVzNS0yLjI0IDUtNWgtMmMwIDEuNjYtMS4zNCAzLTMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2FsTW92aWVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA1djE0aC00VjVoNG02LTJoLTJ2MmgtMlYzSDh2Mkg2VjNINHYxOGgydi0yaDJ2Mmg4di0yaDJ2MmgyVjN6bS00IDZWN2gydjJoLTJ6TTYgOVY3aDJ2Mkg2em0xMCA0di0yaDJ2MmgtMnpNNiAxM3YtMmgydjJINnptMTAgNHYtMmgydjJoLTJ6TTYgMTd2LTJoMnYySDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbE9mZmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS40MSAxMS41OC05LTlDMTIuMDUgMi4yMiAxMS41NSAyIDExIDJINGMtMS4xIDAtMiAuOS0yIDJ2N2MwIC41NS4yMiAxLjA1LjU5IDEuNDJsOSA5Yy4zNi4zNi44Ni41OCAxLjQxLjU4czEuMDUtLjIyIDEuNDEtLjU5bDctN2MuMzctLjM2LjU5LS44Ni41OS0xLjQxcy0uMjMtMS4wNi0uNTktMS40MnpNMTMgMjAuMDEgNCAxMVY0aDd2LS4wMWw5IDktNyA3LjAyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjYuNVwiLFwiY3lcIjpcIjYuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbFBhcmtpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDNINnYxOGg0di02aDNjMy4zMSAwIDYtMi42OSA2LTZzLTIuNjktNi02LTZ6bS4yIDhIMTBWN2gzLjJjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxQaGFybWFjeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNWgtMi42NGwxLjE0LTMuMTRMMTcuMTUgMWwtMS40NiA0SDN2MmwyIDYtMiA2djJoMTh2LTJsLTItNiAyLTZWNXptLTMuOSA4LjYzTDE4Ljg5IDE5SDUuMTFsMS43OS01LjM3LjIxLS42My0uMjEtLjYzTDUuMTEgN2gxMy43OGwtMS43OSA1LjM3LS4yMS42My4yMS42M3pNMTMgOWgtMnYzSDh2MmgzdjNoMnYtM2gzdi0yaC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxQaG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41NCA1Yy4wNi44OS4yMSAxLjc2LjQ1IDIuNTlsLTEuMiAxLjJjLS40MS0xLjItLjY3LTIuNDctLjc2LTMuNzloMS41MW05Ljg2IDEyLjAyYy44NS4yNCAxLjcyLjM5IDIuNi40NXYxLjQ5Yy0xLjMyLS4wOS0yLjU5LS4zNS0zLjgtLjc1bDEuMi0xLjE5TTcuNSAzSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNDljMC0uNTUtLjQ1LTEtMS0xLTEuMjQgMC0yLjQ1LS4yLTMuNTctLjU3YS44NC44NCAwIDAgMC0uMzEtLjA1Yy0uMjYgMC0uNTEuMS0uNzEuMjlsLTIuMiAyLjJhMTUuMTQ5IDE1LjE0OSAwIDAgMS02LjU5LTYuNTlsMi4yLTIuMmMuMjgtLjI4LjM2LS42Ny4yNS0xLjAyQTExLjM2IDExLjM2IDAgMCAxIDguNSA0YzAtLjU1LS40NS0xLTEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2FsUGl6emEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDOC40MyAyIDUuMjMgMy41NCAzLjAxIDZMMTIgMjJsOC45OS0xNkMxOC43OCAzLjU1IDE1LjU3IDIgMTIgMnptMCAxNS45Mkw1LjUxIDYuMzZDNy4zMiA0Ljg1IDkuNjIgNCAxMiA0czQuNjguODUgNi40OSAyLjM2TDEyIDE3Ljkyek05IDUuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVTOC4xNyA4LjUgOSA4LjVzMS41LS42NyAxLjUtMS41UzkuODIgNS41IDkgNS41em0xLjUgNy41YzAgLjgzLjY3IDEuNSAxLjUgMS41LjgyIDAgMS41LS42NyAxLjUtMS41cy0uNjgtMS41LTEuNS0xLjUtMS41LjY3LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbFBsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDEwVjZjMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMS45OS45LTEuOTkgMnY0YzEuMSAwIDEuOTkuOSAxLjk5IDJzLS44OSAyLTIgMnY0YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJ2LTRjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yem0tMi0xLjQ2Yy0xLjE5LjY5LTIgMS45OS0yIDMuNDZzLjgxIDIuNzcgMiAzLjQ2VjE4SDR2LTIuNTRjMS4xOS0uNjkgMi0xLjk5IDItMy40NiAwLTEuNDgtLjgtMi43Ny0xLjk5LTMuNDZMNCA2aDE2djIuNTR6TTkuMDcgMTYgMTIgMTQuMTIgMTQuOTMgMTZsLS44OS0zLjM2IDIuNjktMi4yLTMuNDctLjIxTDEyIDdsLTEuMjcgMy4yMi0zLjQ3LjIxIDIuNjkgMi4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxQb2xpY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNC41IDEyLjU5LjkgMy44OC0zLjQtMi4wNS0zLjQgMi4wNS45LTMuODctMy0yLjU5IDMuOTYtLjM0TDEyIDYuMDJsMS41NCAzLjY0IDMuOTYuMzQtMyAyLjU5ek0xMiAzLjE5bDcgMy4xMVYxMWMwIDQuNTItMi45OCA4LjY5LTcgOS45My00LjAyLTEuMjQtNy01LjQxLTctOS45M1Y2LjNsNy0zLjExTTEyIDEgMyA1djZjMCA1LjU1IDMuODQgMTAuNzQgOSAxMiA1LjE2LTEuMjYgOS02LjQ1IDktMTJWNWwtOS00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxQb3N0T2ZmaWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA2YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNnptLTIgMC04IDUtOC01aDE2em0wIDEySDRWOGw4IDUgOC01djEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxQcmludHNob3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDhoLTFWM0g2djVINWMtMS42NiAwLTMgMS4zNC0zIDN2Nmg0djRoMTJ2LTRoNHYtNmMwLTEuNjYtMS4zNC0zLTMtM3pNOCA1aDh2M0g4VjV6bTggMTRIOHYtNGg4djR6bTItNHYtMkg2djJINHYtNGMwLS41NS40NS0xIDEtMWgxNGMuNTUgMCAxIC40NSAxIDF2NGgtMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxOFwiLFwiY3lcIjpcIjExLjVcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2FsU2VlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0aC0zLjE3TDE1IDJIOUw3LjE3IDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE0SDRWNmg0LjA1bC41OS0uNjVMOS44OCA0aDQuMjRsMS4yNCAxLjM1LjU5LjY1SDIwdjEyek0xMiA3Yy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXptMCA4LjJjLTEuNzcgMC0zLjItMS40My0zLjItMy4yIDAtMS43NyAxLjQzLTMuMiAzLjItMy4yczMuMiAxLjQzIDMuMiAzLjJjMCAxLjc3LTEuNDMgMy4yLTMuMiAzLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbFNoaXBwaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA4aC0zVjRIM2MtMS4xIDAtMiAuOS0yIDJ2MTFoMmMwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zaDZjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtM2gydi01bC0zLTR6bS0uNSAxLjUgMS45NiAyLjVIMTdWOS41aDIuNXpNNiAxOGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0yLjIyLTNjLS41NS0uNjEtMS4zMy0xLTIuMjItMXMtMS42Ny4zOS0yLjIyIDFIM1Y2aDEydjlIOC4yMnpNMTggMThjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2FsVGF4aSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguOTIgNi4wMUMxOC43MiA1LjQyIDE4LjE2IDUgMTcuNSA1SDE1VjNIOXYySDYuNWMtLjY2IDAtMS4yMS40Mi0xLjQyIDEuMDFMMyAxMnY4YzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaDEydjFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LThsLTIuMDgtNS45OXpNNi44NSA3aDEwLjI5bDEuMDQgM0g1LjgxbDEuMDQtM3pNMTkgMTdINXYtNC42NmwuMTItLjM0aDEzLjc3bC4xMS4zNFYxN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI3LjVcIixcImN5XCI6XCIxNC41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNi41XCIsXCJjeVwiOlwiMTQuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMdW5jaERpbmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTljMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMnYtM0gydjN6bTItMWgxNnYxSDR2LTF6TTE4LjY2IDExLjVjLTEuOTUgMC0yLjA5IDEtMy4zMyAxLTEuMTkgMC0xLjQyLTEtMy4zMy0xLTEuOTUgMC0yLjA5IDEtMy4zMyAxLTEuMTkgMC0xLjQyLTEtMy4zMy0xLTEuOTUgMC0yLjA5IDEtMy4zMyAxdjJjMS45IDAgMi4xNy0xIDMuMzUtMSAxLjE5IDAgMS40MiAxIDMuMzMgMSAxLjk1IDAgMi4wOS0xIDMuMzMtMSAxLjE5IDAgMS40MiAxIDMuMzMgMSAxLjk1IDAgMi4wOS0xIDMuMzMtMSAxLjE5IDAgMS40Ljk4IDMuMzIgMWwtLjAxLTEuOThjLTEuNjEtLjMzLTEuNjItMS4wMi0zLjMzLTEuMDJ6TTIyIDljLjAyLTQtNC4yOC02LTEwLTZDNi4yOSAzIDIgNSAyIDl2MWgyMFY5ek00LjE4IDhDNS4wMSA1LjgxIDguNjEgNSAxMiA1YzMuMzEgMCA1LjkzLjczIDcuMTkgMS45OS4zLjMxLjUyLjY0LjY1IDEuMDFINC4xOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1hcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuNSAzLS4xNi4wM0wxNSA1LjEgOSAzIDMuMzYgNC45Yy0uMjEuMDctLjM2LjI1LS4zNi40OFYyMC41YzAgLjI4LjIyLjUuNS41bC4xNi0uMDNMOSAxOC45bDYgMi4xIDUuNjQtMS45Yy4yMS0uMDcuMzYtLjI1LjM2LS40OFYzLjVjMC0uMjgtLjIyLS41LS41LS41ek0xMCA1LjQ3bDQgMS40djExLjY2bC00LTEuNFY1LjQ3em0tNSAuOTkgMy0xLjAxdjExLjdsLTMgMS4xNlY2LjQ2em0xNCAxMS4wOC0zIDEuMDFWNi44NmwzLTEuMTZ2MTEuODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNYXBzVWdjIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNGM0LjQxIDAgOCAzLjU5IDggOHMtMy41OSA4LTggOGMtMS4xOCAwLTIuMzQtLjI2LTMuNDMtLjc4LS4yNy0uMTMtLjU2LS4xOS0uODYtLjE5LS4xOSAwLS4zOC4wMy0uNTYuMDhsLTMuMi45NC45NC0zLjJjLjE0LS40Ny4xLS45OC0uMTEtMS40MkE3LjkyNSA3LjkyNSAwIDAgMSA0IDEyYzAtNC40MSAzLjU5LTggOC04bTAtMkM2LjQ4IDIgMiA2LjQ4IDIgMTJjMCAxLjU0LjM2IDIuOTguOTcgNC4yOUwxIDIzbDYuNzEtMS45N2MxLjMxLjYxIDIuNzUuOTcgNC4yOS45NyA1LjUyIDAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMyA4aC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNZWRpY2FsSW5mb3JtYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA3aC01VjRjMC0xLjEtLjktMi0yLTJoLTJjLTEuMSAwLTIgLjktMiAydjNINGMtMS4xIDAtMiAuOS0yIDJ2MTFjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY5YzAtMS4xLS45LTItMi0yem0tOS0zaDJ2NWgtMlY0em05IDE2SDRWOWg1YzAgMS4xLjkgMiAyIDJoMmMxLjEgMCAyLS45IDItMmg1djExem0tOS00SDl2Mkg3di0ySDV2LTJoMnYtMmgydjJoMnYyem0yLTEuNVYxM2g2djEuNWgtNnptMCAzVjE2aDR2MS41aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWVkaWNhbFNlcnZpY2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtNFY0YzAtMS4xLS45LTItMi0yaC00Yy0xLjEgMC0yIC45LTIgMnYySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnpNMTAgNGg0djJoLTRWNHptMTAgMTZINFY4aDE2djEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxMGgtMnYzSDh2MmgzdjNoMnYtM2gzdi0yaC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWVudUJvb2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA1Yy0xLjExLS4zNS0yLjMzLS41LTMuNS0uNS0xLjk1IDAtNC4wNS40LTUuNSAxLjUtMS40NS0xLjEtMy41NS0xLjUtNS41LTEuNVMyLjQ1IDQuOSAxIDZ2MTQuNjVjMCAuMjUuMjUuNS41LjUuMSAwIC4xNS0uMDUuMjUtLjA1QzMuMSAyMC40NSA1LjA1IDIwIDYuNSAyMGMxLjk1IDAgNC4wNS40IDUuNSAxLjUgMS4zNS0uODUgMy44LTEuNSA1LjUtMS41IDEuNjUgMCAzLjM1LjMgNC43NSAxLjA1LjEuMDUuMTUuMDUuMjUuMDUuMjUgMCAuNS0uMjUuNS0uNVY2Yy0uNi0uNDUtMS4yNS0uNzUtMi0xem0wIDEzLjVjLTEuMS0uMzUtMi4zLS41LTMuNS0uNS0xLjcgMC00LjE1LjY1LTUuNSAxLjVWOGMxLjM1LS44NSAzLjgtMS41IDUuNS0xLjUgMS4yIDAgMi40LjE1IDMuNS41djExLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjUgMTAuNWMuODggMCAxLjczLjA5IDIuNS4yNlY5LjI0Yy0uNzktLjE1LTEuNjQtLjI0LTIuNS0uMjQtMS43IDAtMy4yNC4yOS00LjUuODN2MS42NmMxLjEzLS42NCAyLjctLjk5IDQuNS0uOTl6TTEzIDEyLjQ5djEuNjZjMS4xMy0uNjQgMi43LS45OSA0LjUtLjk5Ljg4IDAgMS43My4wOSAyLjUuMjZWMTEuOWMtLjc5LS4xNS0xLjY0LS4yNC0yLjUtLjI0LTEuNyAwLTMuMjQuMy00LjUuODN6TTE3LjUgMTQuMzNjLTEuNyAwLTMuMjQuMjktNC41LjgzdjEuNjZjMS4xMy0uNjQgMi43LS45OSA0LjUtLjk5Ljg4IDAgMS43My4wOSAyLjUuMjZ2LTEuNTJjLS43OS0uMTYtMS42NC0uMjQtMi41LS4yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1lcmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi40MSAyMSA1IDE5LjU5bDQuODMtNC44M2MuNzUtLjc1IDEuMTctMS43NyAxLjE3LTIuODN2LTUuMUw5LjQxIDguNDEgOCA3bDQtNCA0IDQtMS40MSAxLjQxTDEzIDYuODN2NS4xYzAgMS4wNi40MiAyLjA4IDEuMTcgMi44M0wxOSAxOS41OSAxNy41OSAyMSAxMiAxNS40MSA2LjQxIDIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWlub3JDcmFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjkyIDkuMDFDMTguNzIgOC40MiAxOC4xNiA4IDE3LjUgOGgtMTFjLS42NiAwLTEuMjEuNDItMS40MiAxLjAxTDMgMTV2OGMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWgxMnYxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi04bC0yLjA4LTUuOTl6TTYuODUgMTBoMTAuMjlsMS4wNCAzSDUuODFsMS4wNC0zek0xOSAyMEg1di01aDE0djV6TTYgMTcuNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNVM4LjMzIDE5IDcuNSAxOSA2IDE4LjMzIDYgMTcuNXptOSAwYzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNS0xLjUtLjY3LTEuNS0xLjV6TTkuNDEgNSA4IDYuNDFsLTMtM0w2LjQxIDJsMyAzek0xNiA2LjQxIDE0LjU5IDVsMy0zTDE5IDMuNDFsLTMgM3pNMTMgNWgtMlYwaDJ2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1pc2NlbGxhbmVvdXNTZXJ2aWNlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0LjE3IDEzLjcxIDEuNC0yLjQyYy4wOS0uMTUuMDUtLjM0LS4wOC0uNDVsLTEuNDgtMS4xNmMuMDMtLjIyLjA1LS40NS4wNS0uNjhzLS4wMi0uNDYtLjA1LS42OWwxLjQ4LTEuMTZjLjEzLS4xMS4xNy0uMy4wOC0uNDVsLTEuNC0yLjQyYy0uMDktLjE1LS4yNy0uMjEtLjQzLS4xNWwtMS43NC43Yy0uMzYtLjI4LS43NS0uNTEtMS4xOC0uNjlsLS4yNi0xLjg1YS4zNjQuMzY0IDAgMCAwLS4zNS0uMjloLTIuOGMtLjE3IDAtLjMyLjEzLS4zNS4zTDYuOCA0LjE1Yy0uNDIuMTgtLjgyLjQxLTEuMTguNjlsLTEuNzQtLjdjLS4xNi0uMDYtLjM0IDAtLjQzLjE1bC0xLjQgMi40MmMtLjA5LjE1LS4wNS4zNC4wOC40NWwxLjQ4IDEuMTZjLS4wMy4yMi0uMDUuNDUtLjA1LjY4cy4wMi40Ni4wNS42OWwtMS40OCAxLjE2Yy0uMTMuMTEtLjE3LjMtLjA4LjQ1bDEuNCAyLjQyYy4wOS4xNS4yNy4yMS40My4xNWwxLjc0LS43Yy4zNi4yOC43NS41MSAxLjE4LjY5bC4yNiAxLjg1Yy4wMy4xNi4xOC4yOS4zNS4yOWgyLjhjLjE3IDAgLjMyLS4xMy4zNS0uM2wuMjYtMS44NWMuNDItLjE4LjgyLS40MSAxLjE4LS42OWwxLjc0LjdjLjE2LjA2LjM0IDAgLjQzLS4xNXpNOC44MSAxMWMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6TTIxLjkyIDE4LjY3bC0uOTYtLjc0Yy4wMi0uMTQuMDQtLjI5LjA0LS40NCAwLS4xNS0uMDEtLjMtLjA0LS40NGwuOTUtLjc0Yy4wOC0uMDcuMTEtLjE5LjA1LS4yOWwtLjktMS41NWMtLjA1LS4xLS4xNy0uMTMtLjI4LS4xbC0xLjExLjQ1Yy0uMjMtLjE4LS40OC0uMzMtLjc2LS40NGwtLjE3LTEuMThhLjIxNi4yMTYgMCAwIDAtLjIxLS4yaC0xLjc5Yy0uMTEgMC0uMjEuMDgtLjIyLjE5bC0uMTcgMS4xOGMtLjI3LjEyLS41My4yNi0uNzYuNDRsLTEuMTEtLjQ1YS4yMy4yMyAwIDAgMC0uMjguMWwtLjkgMS41NWMtLjA1LjEtLjA0LjIyLjA1LjI5bC45NS43NGEzLjE0NSAzLjE0NSAwIDAgMCAwIC44OGwtLjk1Ljc0Yy0uMDguMDctLjExLjE5LS4wNS4yOWwuOSAxLjU1Yy4wNS4xLjE3LjEzLjI4LjFsMS4xMS0uNDVjLjIzLjE4LjQ4LjMzLjc2LjQ0bC4xNyAxLjE4Yy4wMi4xMS4xMS4xOS4yMi4xOWgxLjc5Yy4xMSAwIC4yMS0uMDguMjItLjE5bC4xNy0xLjE4Yy4yNy0uMTIuNTMtLjI2Ljc1LS40NGwxLjEyLjQ1Yy4xLjA0LjIyIDAgLjI4LS4xbC45LTEuNTVjLjA2LS4wOS4wMy0uMjEtLjA1LS4yOHptLTQuMjkuMTZhMS4zNSAxLjM1IDAgMSAxIC4wMDEtMi43MDEgMS4zNSAxLjM1IDAgMCAxLS4wMDEgMi43MDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb2RlT2ZUcmF2ZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS4zMSAxOC45Yy0uOTYgMS0yLjA2IDIuMDMtMy4zMSAzLjEtNS4zMy00LjU1LTgtOC40OC04LTExLjhDNCA1LjIyIDcuOCAyIDEyIDJjNC4xOSAwIDcuOTkgMy4yMSA4IDguMTdsMi4wOS0yLjA5TDIzLjUgOS41IDE5IDE0bC00LjUtNC41IDEuNDEtMS40MUwxOCAxMC4xN0MxNy45OSA2LjU1IDE1LjM0IDQgMTIgNGMtMy4zNSAwLTYgMi41Ny02IDYuMiAwIDIuMzQgMS45NSA1LjQ0IDYgOS4xNC42NC0uNTkgMS4yMy0xLjE2IDEuNzctMS43MWEyLjUgMi41IDAgMCAxLS4yNy0xLjEyIDIuNSAyLjUgMCAwIDEgNSAwIDIuNDkyIDIuNDkyIDAgMCAxLTMuMTkgMi4zOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vbmV5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxNmgzYy41NSAwIDEtLjQ1IDEtMVY5YzAtLjU1LS40NS0xLTEtMWgtM2MtLjU1IDAtMSAuNDUtMSAxdjZjMCAuNTUuNDUgMSAxIDF6bTEtNmgxdjRoLTF2LTR6bS03IDZoM2MuNTUgMCAxLS40NSAxLTFWOWMwLS41NS0uNDUtMS0xLTFIOWMtLjU1IDAtMSAuNDUtMSAxdjZjMCAuNTUuNDUgMSAxIDF6bTEtNmgxdjRoLTF2LTR6TTUgOGgydjhINXpNMiA0djE2aDIwVjRIMnptMTggMTRINFY2aDE2djEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW9wZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA3YzAtMS4xLS45LTItMi0yaC0zdjJoM3YyLjY1TDEzLjUyIDE0SDEwVjlINmMtMi4yMSAwLTQgMS43OS00IDR2M2gyYzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTNoNC40OEwxOSAxMC4zNVY3ek00IDE0di0xYzAtMS4xLjktMiAyLTJoMnYzSDR6bTMgM2MtLjU1IDAtMS0uNDUtMS0xaDJjMCAuNTUtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDZoNXYySDV6TTE5IDEzYy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3ptMCA0Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb3NxdWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNCA3YzAtMS4xLTItMy0yLTNzLTIgMS45LTIgM2MwIC43NC40IDEuMzggMSAxLjcyVjEzaC0ydi0yYzAtLjk1LS42Ni0xLjc0LTEuNTUtMS45NC4zNC0uNTguNTUtMS4yNS41NS0xLjk3IDAtMS4zMS0uNjUtMi41My0xLjc0LTMuMjVMMTIgMSA3Ljc0IDMuODRBMy44ODcgMy44ODcgMCAwIDAgNiA3LjA5YzAgLjcyLjIxIDEuMzkuNTUgMS45NkM1LjY2IDkuMjYgNSAxMC4wNSA1IDExdjJIM1Y4LjcyYy42LS4zNCAxLS45OCAxLTEuNzIgMC0xLjEtMi0zLTItM1MwIDUuOSAwIDdjMCAuNzQuNCAxLjM4IDEgMS43MlYyMWgxMHYtNGMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2NGgxMFY4LjcyYy42LS4zNCAxLS45OCAxLTEuNzJ6TTguODUgNS41IDEyIDMuNGwzLjE1IDIuMWMuNTMuMzYuODUuOTUuODUgMS41OUMxNiA4LjE0IDE1LjE0IDkgMTQuMDkgOUg5LjkxQzguODYgOSA4IDguMTQgOCA3LjA5YzAtLjY0LjMyLTEuMjMuODUtMS41OXpNMjEgMTloLTZ2LTJjMC0xLjY1LTEuMzUtMy0zLTNzLTMgMS4zNS0zIDN2Mkgzdi00aDR2LTRoMTB2NGg0djR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb3ZpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA5LjQyVjEyaDJWNmgtNnYyaDIuNThsLTQuNDYgNC40NmEuOTk2Ljk5NiAwIDAgMS0xLjQxIDBsLTEuMTctMS4xN2EzIDMgMCAwIDAtNC4yNCAwTDIgMTYuNTkgMy40MSAxOGw1LjI5LTUuMjlhLjk5Ni45OTYgMCAwIDEgMS40MSAwbDEuMTcgMS4xN2EzIDMgMCAwIDAgNC4yNCAwTDIwIDkuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNdWx0aXBsZVN0b3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNyA0IDQgNC00IDRWOWgtNFY3aDRWNHptLTcgM2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xek02IDdjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMSAxMGg0di0ySDd2LTNsLTQgNCA0IDR2LTN6bTcgMGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem00IDBjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU11c2V1bSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDExVjlMMTIgMiAyIDl2MmgydjlIMnYyaDIwdi0yaC0ydi05aDJ6bS00IDlINlY5aDEydjExelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMCAxNCAyIDMgMi0zdjRoMnYtN2gtMmwtMiAzLTItM0g4djdoMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU15TG9jYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDhjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em04Ljk0IDNBOC45OTQgOC45OTQgMCAwIDAgMTMgMy4wNlYxaC0ydjIuMDZBOC45OTQgOC45OTQgMCAwIDAgMy4wNiAxMUgxdjJoMi4wNkE4Ljk5NCA4Ljk5NCAwIDAgMCAxMSAyMC45NFYyM2gydi0yLjA2QTguOTk0IDguOTk0IDAgMCAwIDIwLjk0IDEzSDIzdi0yaC0yLjA2ek0xMiAxOWMtMy44NyAwLTctMy4xMy03LTdzMy4xMy03IDctNyA3IDMuMTMgNyA3LTMuMTMgNy03IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOYXZpZ2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiA3LjI3IDQuMjggMTAuNDMtMy40Ny0xLjUzLS44MS0uMzYtLjgxLjM2LTMuNDcgMS41M0wxMiA3LjI3TTEyIDIgNC41IDIwLjI5bC43MS43MUwxMiAxOGw2Ljc5IDMgLjcxLS43MUwxMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmVhck1lRGlzYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2LjM0IDIxIDNsLTMuMzQgOS0xLjU2LTEuNTYgMS41LTQuMDUtNC4wNSAxLjVMMTIgNi4zNHptOS4xOSAxNC44NS01LjA3LTUuMDdMMTQuMzEgMjFIMTIuOWwtMi44My03LjA3TDMgMTEuMVY5LjY5bDQuODgtMS44MS01LjA3LTUuMDdMNC4yMiAxLjQgMjIuNiAxOS43OGwtMS40MSAxLjQxem0tNi42Mi02LjYyTDkuNDMgOS40M2wtMi43MSAxLjAxIDQuODkgMS45NSAxLjk1IDQuODkgMS4wMS0yLjcxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmVhck1lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNy4yNyA2LjczLTQuMjQgMTAuMTMtMS4zMi0zLjQyLS4zMi0uODMtLjgyLS4zMi0zLjQzLTEuMzMgMTAuMTMtNC4yM00yMSAzIDMgMTAuNTN2Ljk4bDYuODQgMi42NUwxMi40OCAyMWguOThMMjEgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5pZ2h0bGlmZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgNWgxNGwtNiA5djRoMnYySDV2LTJoMnYtNEwxIDV6bTkuMSA0IDEuNC0ySDQuNDlsMS40IDJoNC4yMXpNMTcgNWg1djNoLTN2OWMwIDEuNjYtMS4zNCAzLTMgM3MtMy0xLjM0LTMtMyAxLjM0LTMgMy0zYTMgMyAwIDAgMSAxIC4xN1Y1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm9DcmFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjkyIDkuMDFDMTguNzIgOC40MiAxOC4xNiA4IDE3LjUgOGgtMTFjLS42NiAwLTEuMjEuNDItMS40MiAxLjAxTDMgMTV2OGMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWgxMnYxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi04bC0yLjA4LTUuOTl6TTYuODUgMTBoMTAuMjlsMS4wNCAzSDUuODFsMS4wNC0zek0xOSAyMEg1di01aDE0djV6TTYgMTcuNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNVM4LjMzIDE5IDcuNSAxOSA2IDE4LjMzIDYgMTcuNXptOSAwYzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNS0xLjUtLjY3LTEuNS0xLjV6TTEyIDYuMzYgOS4xNyAzLjU0bDEuNDEtMS40MUwxMiAzLjU0IDE1LjU0IDBsMS40MSAxLjQxTDEyIDYuMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb01lYWxzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTRWNmMwLTEuNzYgMi4yNC00IDUtNHYxNi4xN2wtMi0yVjE0aC0zem00LjQ5IDkuMzFMMTAuMDIgMTIuODVjLS4zMy4wOS0uNjYuMTUtMS4wMi4xNXY5SDd2LTljLTIuMjEgMC00LTEuNzktNC00VjUuODNMLjY5IDMuNTEgMi4xIDIuMWwxOS44IDE5LjgtMS40MSAxLjQxek02LjE3IDkgNSA3LjgzVjloMS4xN3pNOSAySDd2Mi4xN2wyIDJWMnptNCA3VjJoLTJ2Ni4xN2wxLjg1IDEuODVjLjA5LS4zMy4xNS0uNjYuMTUtMS4wMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vVHJhbnNmZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgMTNjLjgzIDAgMS41LjY3IDEuNSAxLjVTOS4zMyAxNiA4LjUgMTYgNyAxNS4zMyA3IDE0LjUgNy42NyAxMyA4LjUgMTN6bTExLjI4IDkuNjEtMS42NC0xLjY0Yy0uMDUuMDEtLjA5LjAzLS4xNC4wM2gtMWMtLjU1IDAtMS0uNDUtMS0xdi0xSDh2MWMwIC41NS0uNDUgMS0xIDFINmMtLjU1IDAtMS0uNDUtMS0xdi0xLjc4Yy0uNjEtLjU1LTEtMS4zNC0xLTIuMjJWNi44M0wxLjM5IDQuMjIgMi44IDIuODFsMTguMzggMTguMzgtMS40IDEuNDJ6TTYgOC44M1YxMGgxLjE3TDYgOC44M3pNMTQuMTcgMTdsLTUtNUg2djRjMCAuMzcuMjEuNjIuMzQuNzNsLjI5LjI3aDcuNTR6TTEyIDRjMy42OSAwIDUuMTEuNDYgNS42Ni45OUg3LjgybDIgMkgxOFYxMGgtNS4xN2wyIDJIMTh2My4xN2wxLjgxIDEuODFjLjExLS4zMS4xOS0uNjMuMTktLjk4VjZjMC0zLjUtMy41OC00LTgtNC0yLjUyIDAtNC43Ni4xNi02LjIyLjk1bDEuNTMgMS41M0M4LjE3IDQuMiA5LjYgNCAxMiA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm90TGlzdGVkTG9jYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjAxIDE2YS45OS45OSAwIDAgMS0uNzEtLjI5Ljk1Ljk1IDAgMCAxLS4yOS0uNzFjLS4wMS0uNTUuNDMtLjk5Ljk4LTFoLjAyYy4yOCAwIC41MS4xLjcxLjI5LjE4LjE5LjI4LjQzLjI4LjdzLS4xLjUxLS4yOS43MS0uNDMuMy0uNy4zem0tLjg4LTMuNjZjMC0uNDUuMS0uODQuMjktMS4xNi4xOS0uMzMuNTMtLjcgMS0xLjEyLjI4LS4yNS40OC0uNDcuNjEtLjY2cy4xOS0uNC4xOS0uNjRjMC0uMjktLjExLS41My0uMzItLjc0LS4yMS0uMi0uNS0uMy0uODUtLjMtLjM3IDAtLjc0LjEtLjk2LjMtLjIxLjItLjQuNDUtLjQuOThIOWMwLTEuMDEuNDYtMS43My45Ny0yLjIxQzEwLjUzIDYuMjggMTEuMjUgNiAxMiA2Yy41OSAwIDEuMTEuMTIgMS41Ny4zNXMuNzkuNTUgMS4wNS45Ni4zOC44Ni4zOCAxLjM1LS4xLjktLjMxIDEuMjUtLjQ4LjcxLS44OSAxLjA5Yy0uMzIuMy0uNTMuNTYtLjY1Ljc3cy0uMTguNDktLjE4LjgxVjEzaC0xLjg1di0uNjZoLjAxek0xOCAxMC4yQzE4IDYuNTcgMTUuMzUgNCAxMiA0cy02IDIuNTctNiA2LjJjMCAyLjM0IDEuOTUgNS40NCA2IDkuMTQgNC4wNS0zLjcgNi02LjggNi05LjE0ek0xMiAyYzQuMiAwIDggMy4yMiA4IDguMiAwIDMuMzItMi42NyA3LjI1LTggMTEuOC01LjMzLTQuNTUtOC04LjQ4LTgtMTEuOEM0IDUuMjIgNy44IDIgMTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBhcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMmgyTDEyIDIgNS4wNSAxMkg3bC0zLjkgNmg2LjkydjRoMy45NXYtNEgyMWwtNC02ek02Ljc5IDE2bDMuOS02SDguODhsMy4xMy00LjUgMy4xNSA0LjVoLTEuOWw0IDZINi43OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlZGFsQmlrZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4LjE4IDEwLTEuNy00LjY4QTIuMDA4IDIuMDA4IDAgMCAwIDE0LjYgNEgxMnYyaDIuNmwxLjQ2IDRoLTQuODFsLS4zNi0xSDEyVjdIN3YyaDEuNzVsMS44MiA1SDkuOWMtLjQ0LTIuMjMtMi4zMS0zLjg4LTQuNjUtMy45OUMyLjQ1IDkuODcgMCAxMi4yIDAgMTVjMCAyLjggMi4yIDUgNSA1IDIuNDYgMCA0LjQ1LTEuNjkgNC45LTRoNC4yYy40NCAyLjIzIDIuMzEgMy44OCA0LjY1IDMuOTkgMi44LjEzIDUuMjUtMi4xOSA1LjI1LTUgMC0yLjgtMi4yLTUtNS01aC0uODJ6TTcuODIgMTZjLS40IDEuMTctMS40OSAyLTIuODIgMi0xLjY4IDAtMy0xLjMyLTMtM3MxLjMyLTMgMy0zYzEuMzMgMCAyLjQyLjgzIDIuODIgMkg1djJoMi44MnptNi4yOC0yaC0xLjRsLS43My0ySDE1Yy0uNDQuNTgtLjc2IDEuMjUtLjkgMnptNC45IDRjLTEuNjggMC0zLTEuMzItMy0zIDAtLjkzLjQxLTEuNzMgMS4wNS0yLjI4bC45NiAyLjY0IDEuODgtLjY4LS45Ny0yLjY3Yy4wMyAwIC4wNi0uMDEuMDktLjAxIDEuNjggMCAzIDEuMzIgMyAzcy0xLjMzIDMtMy4wMSAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGVyc29uUGluQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTFjMS4zMyAwIDQgLjY3IDQgMnYuMTZjLS45NyAxLjEyLTIuNCAxLjg0LTQgMS44NHMtMy4wMy0uNzItNC0xLjg0VjEzYzAtMS4zMyAyLjY3LTIgNC0yem0wLTFjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyem02IC4yQzE4IDYuNTcgMTUuMzUgNCAxMiA0cy02IDIuNTctNiA2LjJjMCAyLjM0IDEuOTUgNS40NCA2IDkuMTQgNC4wNS0zLjcgNi02LjggNi05LjE0ek0xMiAyYzQuMiAwIDggMy4yMiA4IDguMiAwIDMuMzItMi42NyA3LjI1LTggMTEuOC01LjMzLTQuNTUtOC04LjQ4LTgtMTEuOEM0IDUuMjIgNy44IDIgMTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlcnNvblBpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg0bDMgMyAzLTNoNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE2aC00LjgzbC0uNTkuNTlMMTIgMjAuMTdsLTEuNTktMS41OS0uNTgtLjU4SDVWNGgxNHYxNHptLTctN2MxLjY1IDAgMy0xLjM1IDMtM3MtMS4zNS0zLTMtMy0zIDEuMzUtMyAzIDEuMzUgMyAzIDN6bTAtNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem02IDguNThjMC0yLjUtMy45Ny0zLjU4LTYtMy41OHMtNiAxLjA4LTYgMy41OFYxN2gxMnYtMS40MnpNOC40OCAxNWMuNzQtLjUxIDIuMjMtMSAzLjUyLTFzMi43OC40OSAzLjUyIDFIOC40OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlc3RDb250cm9sUm9kZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxN1wiLFwiY3lcIjpcIjE3XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwLjg2IDE0Ljk3LS45My0uODRjLjQ4LTMuNDUtMi44Ny02LjA0LTYuMDUtNC44MkE1Ljc5IDUuNzkgMCAwIDAgMTIgOWMtNC4yNiAwLTUuNjUgMy41OC01Ljg5IDQuODVBMi45ODMgMi45ODMgMCAwIDEgNCAxMWMwLTEuNjYgMS4zNC0zIDMtM2gyLjVhMi41IDIuNSAwIDAgMCAwLTVIOGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMWgxLjVjLjI4IDAgLjUuMjIuNS41cy0uMjIuNS0uNS41SDdjLTIuNzYgMC01IDIuMjQtNSA1IDAgMi40NCAxLjc2IDQuNDcgNC4wNyA0LjkxQTUuOTk4IDUuOTk4IDAgMCAwIDEyIDIxaDYuNTNjMy4xMSAwIDQuNy0zLjg5IDIuMzMtNi4wM3pNMTguNTMgMTlIMTJjLTEuMjEgMC0yLjM0LS41NC0zLjExLTEuNDgtLjc4LS45NS0xLjA2LTIuMTYtLjgtMy40MWEzLjk1IDMuOTUgMCAwIDEgMi45OS0zLjAxYy4yMi0uMDUuNDUtLjA2LjY3LS4wNy0uNDcuNzEtLjc1IDEuNTUtLjc1IDIuNDcgMCAxLjI0LjUgMi4zNyAxLjMyIDMuMThsMS40MS0xLjQxYy0uNDUtLjQ1LS43My0xLjA4LS43My0xLjc3IDAtMS40MiAxLjItMi41IDIuNS0yLjVhMi41IDIuNSAwIDAgMSAyLjUgMi41YzAgLjQ2LS4xMy44OC0uMzUgMS4yNWwxLjg3IDEuN2MuMzEuMjguNDguNjcuNDggMS4wOSAwIC44LS42NiAxLjQ2LTEuNDcgMS40NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlc3RDb250cm9sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTV2LTJoLTMuMDdjLS4wNS0uMzktLjEyLS43Ny0uMjItMS4xNGwyLjU4LTEuNDktMS0xLjczTDE2LjkyIDEwYy0uMjgtLjQ4LS42Mi0uOTEtLjk5LTEuMjkuMS0uNTYuMi0xLjY5LS41OC0yLjg5TDE3IDQuMTdsLTEuNDEtMS40MS0xLjcyIDEuNzJjLTEuNjgtLjg5LTMuMS0uMzMtMy43MyAwTDguNDEgMi43NiA3IDQuMTdsMS42NSAxLjY1Yy0uNzggMS4yLS42OCAyLjM0LS41OCAyLjg5LS4zNy4zOS0uNzEuODItLjk5IDEuMjlMNC43MSA4LjYzbC0xIDEuNzMgMi41OCAxLjQ5Yy0uMS4zNy0uMTcuNzUtLjIyIDEuMTRIM3YyaDMuMDdjLjA1LjM5LjEyLjc3LjIyIDEuMTRsLTIuNTggMS40OSAxIDEuNzNMNy4wOCAxOGMxLjA4IDEuODEgMi44OCAzIDQuOTIgM3MzLjg0LTEuMTkgNC45Mi0zbDIuMzcgMS4zNyAxLTEuNzMtMi41OC0xLjQ5Yy4xLS4zNy4xNy0uNzUuMjItMS4xNEgyMXptLTktOWMuODggMCAxLjYyLjU3IDEuODggMS4zNkMxMy4yOSA3LjEzIDEyLjY2IDcgMTIgN3MtMS4yOS4xMy0xLjg4LjM2QzEwLjM4IDYuNTcgMTEuMTIgNiAxMiA2em0wIDEzYy0yLjIxIDAtNC0yLjI0LTQtNXMxLjc5LTUgNC01IDQgMi4yNCA0IDUtMS43OSA1LTQgNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTFoMnY2aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGluRHJvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRjMS45MyAwIDUgMS40IDUgNS4xNSAwIDIuMTYtMS43MiA0LjY3LTUgNy4zMi0zLjI4LTIuNjUtNS01LjE3LTUtNy4zMkM3IDUuNCAxMC4wNyA0IDEyIDRtMC0yQzguNzMgMiA1IDQuNDYgNSA5LjE1YzAgMy4xMiAyLjMzIDYuNDEgNyA5Ljg1IDQuNjctMy40NCA3LTYuNzMgNy05Ljg1QzE5IDQuNDYgMTUuMjcgMiAxMiAyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMmEyIDIgMCAxIDAgMC00ek01IDIwaDE0djJINXYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBsYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTJjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyem02LTEuOEMxOCA2LjU3IDE1LjM1IDQgMTIgNHMtNiAyLjU3LTYgNi4yYzAgMi4zNCAxLjk1IDUuNDQgNiA5LjE0IDQuMDUtMy43IDYtNi44IDYtOS4xNHpNMTIgMmM0LjIgMCA4IDMuMjIgOCA4LjIgMCAzLjMyLTIuNjcgNy4yNS04IDExLjgtNS4zMy00LjU1LTgtOC40OC04LTExLjhDNCA1LjIyIDcuOCAyIDEyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQbHVtYmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5LjI4IDQuOTMtMi4xMi0yLjEyYy0uNzgtLjc4LTIuMDUtLjc4LTIuODMgMEwxMS41IDUuNjRsMi4xMiAyLjEyIDIuMTItMi4xMiAzLjU0IDMuNTRhMy4wMTIgMy4wMTIgMCAwIDAgMC00LjI1ek01LjQ5IDEzLjc3Yy41OS41OSAxLjU0LjU5IDIuMTIgMGwyLjQ3LTIuNDctMi4xMi0yLjEzLTIuNDcgMi40N2MtLjU5LjU5LS41OSAxLjU0IDAgMi4xM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUuMDQgNy43Ni0uNzEuNzEtLjcxLjcxTDEwLjQ0IDZjLS41OS0uNi0xLjU0LS42LTIuMTItLjAxYTEuNDkgMS40OSAwIDAgMCAwIDIuMTJsMy4xOCAzLjE4LS43MS43MS02LjM2IDYuMzZjLS43OC43OC0uNzggMi4wNSAwIDIuODMuNzguNzggMi4wNS43OCAyLjgzIDBMMTYuNDUgMTJhLjk5Ni45OTYgMCAxIDAgMS40MS0xLjQxbC0yLjgyLTIuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSYWlsd2F5QWxlcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEwXCIsXCJjeVwiOlwiMTUuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTFWOGg3LjI5QzExLjEgNy4zNyAxMSA2LjcgMTEgNkg0LjQzYy45LS43NyAzLjI4LTEuMDggNi42NS0uOTguMS0uNy4zLTEuMzcuNTktMS45OUMyLjk3IDIuNjcgMiA1LjAyIDIgN3Y5LjVDMiAxOC40MyAzLjU3IDIwIDUuNSAyMEw0IDIxdjFoMTJ2LTFsLTEuNS0xYzEuOTMgMCAzLjUtMS41NyAzLjUtMy41VjEzYy0xLjkxIDAtMy42My0uNzYtNC44OS0ySDR6bTEyIDUuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTljLS44MyAwLTEuNS0uNjctMS41LTEuNVYxM2gxMnYzLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDFjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0uNSA4aC0xVjhoMXYxem0wLTJoLTFWM2gxdjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSYW1lbkRpbmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjY2IDE0Yy0uNjYgMS45Mi0yLjI0IDMuNTQtNC40IDQuMzlsLTEuMjYuNVYyMGgtNHYtMS4xMWwtMS4yNy0uNWMtMi4xNi0uODUtMy43NC0yLjQ3LTQuNC00LjM5aDE1LjMzTTIyIDIgNCAzLjk5VjEySDJjMCAzLjY5IDIuNDcgNi44NiA2IDguMjVWMjJoOHYtMS43NWMzLjUzLTEuMzkgNi00LjU2IDYtOC4yNUgxMC41VjhIMjJWNi41SDEwLjVWNC43OEwyMiAzLjUxVjJ6TTggNi41VjUuMDZsMS0uMTFWNi41SDh6bS0yLjUgMFY1LjM0bDEtLjExVjYuNWgtMXpNOCAxMlY4aDF2NEg4em0tMi41IDBWOGgxdjRoLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSYW1wTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDIxaC0yVjYuODNMOS40MSA4LjQxIDggN2w0LTQgNCA0LTEuNDEgMS40MUwxMyA2LjgzVjljMCA0LjI3IDQuMDMgNy4xMyA2IDguMjdsLTEuNDYgMS40NmMtMS45MS0xLjE2LTMuNDQtMi41My00LjU0LTQuMDJWMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSYW1wUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAyMWgyVjYuODNsMS41OSAxLjU5TDE2IDdsLTQtNC00IDQgMS40MSAxLjQxTDExIDYuODNWOWMwIDQuMjctNC4wMyA3LjEzLTYgOC4yN2wxLjQ2IDEuNDZDOC4zNyAxNy41NiA5LjkgMTYuMTkgMTEgMTQuN1YyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJhdGVSZXZpZXcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDIybDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDUuMTdsLS41OS41OS0uNTguNThWNGgxNnYxMnptLTkuNS0ySDE4di0yaC01LjV6bTMuODYtNS44N2MuMi0uMi4yLS41MSAwLS43MWwtMS43Ny0xLjc3Yy0uMi0uMi0uNTEtLjItLjcxIDBMNiAxMS41M1YxNGgyLjQ3bDUuODktNS44N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlbW92ZVJvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA0aDJ2OWgtMnpNNCA0aDJ2MTZINHpNMTEgNGgydjRoLTJ6TTExIDEwaDJ2NGgtMnpNMTEgMTZoMnY0aC0yek0yMi41IDE2LjQxIDIxLjA5IDE1IDE5IDE3LjA5IDE2LjkxIDE1bC0xLjQxIDEuNDEgMi4wOSAyLjA5LTIuMDkgMi4wOUwxNi45MSAyMiAxOSAxOS45MSAyMS4wOSAyMmwxLjQxLTEuNDEtMi4wOS0yLjA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVzdGF1cmFudE1lbnUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTguMSAxMy4zNCAyLjgzLTIuODNMMy45MSAzLjVhNC4wMDggNC4wMDggMCAwIDAgMCA1LjY2bDQuMTkgNC4xOHptNi43OC0xLjgxYzEuNTMuNzEgMy42OC4yMSA1LjI3LTEuMzggMS45MS0xLjkxIDIuMjgtNC42NS44MS02LjEyLTEuNDYtMS40Ni00LjItMS4xLTYuMTIuODEtMS41OSAxLjU5LTIuMDkgMy43NC0xLjM4IDUuMjdMMy43IDE5Ljg3bDEuNDEgMS40MUwxMiAxNC40MWw2Ljg4IDYuODggMS40MS0xLjQxTDEzLjQxIDEzbDEuNDctMS40N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlc3RhdXJhbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDZ2OGgzdjhoMlYyYy0yLjc2IDAtNSAyLjI0LTUgNHptLTUgM0g5VjJIN3Y3SDVWMkgzdjdjMCAyLjIxIDEuNzkgNCA0IDR2OWgydi05YzIuMjEgMCA0LTEuNzkgNC00VjJoLTJ2N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJvdW5kYWJvdXRMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMDggOEE2IDYgMCAwIDEgMTYgM2MzLjMxIDAgNiAyLjY5IDYgNiAwIDIuOTctMi4xNiA1LjQ0LTUgNS45MlYyMWgtMnYtNi4wOWMwLS45OC43MS0xLjggMS42Ny0xLjk3YTMuOTk5IDMuOTk5IDAgMSAwLTQuNjEtNC42MWMtLjE3Ljk2LS45OSAxLjY3LTEuOTcgMS42N0g1LjgzbDEuNTkgMS41OUw2IDEzIDIgOWw0LTQgMS40MSAxLjQxTDUuODMgOGg0LjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUm91bmRhYm91dFJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuOTIgOEMxMy40NCA1LjE2IDEwLjk3IDMgOCAzIDQuNjkgMyAyIDUuNjkgMiA5YzAgMi45NyAyLjE2IDUuNDQgNSA1LjkyVjIxaDJ2LTYuMDljMC0uOTgtLjcxLTEuOC0xLjY3LTEuOTdhMy45OTkgMy45OTkgMCAxIDEgNC42MS00LjYxYy4xNy45Ni45OSAxLjY3IDEuOTcgMS42N2g0LjI2bC0xLjU5IDEuNTlMMTggMTNsNC00LTQtNC0xLjQxIDEuNDFMMTguMTcgOGgtNC4yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJvdXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTUuMThWN2MwLTIuMjEtMS43OS00LTQtNHMtNCAxLjc5LTQgNHYxMGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTJWOC44MkM4LjE2IDguNCA5IDcuMyA5IDZjMC0xLjY2LTEuMzQtMy0zLTNTMyA0LjM0IDMgNmMwIDEuMy44NCAyLjQgMiAyLjgyVjE3YzAgMi4yMSAxLjc5IDQgNCA0czQtMS43OSA0LTRWN2MwLTEuMS45LTIgMi0yczIgLjkgMiAydjguMThBMi45OTYgMi45OTYgMCAwIDAgMTggMjFjMS42NiAwIDMtMS4zNCAzLTMgMC0xLjMtLjg0LTIuNC0yLTIuODJ6TTYgN2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0xMiAxMmMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUnVuQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjU0IDguOTdjLS4yMy0uNDctLjc2LS43MS0xLjI2LS41M0w5IDkuNjVWMTJoMXYtMS42NWwxLjU0LS41Ny0uOTYgNC44OS0yLjc4LS41Ny0uMi45OCAzLjc2Ljc3LjUyLTIuNjRMMTMgMTQuNDJWMThoMXYtMy45N2wtMS4zMi0xLjQ0LjQxLTIuMzVDMTMuOTkgMTEuNDYgMTUuMyAxMiAxNiAxMnYtMWMtLjQxIDAtMS42My0uMzMtMi40Ni0yLjAzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEzLjVcIixcImN5XCI6XCI3XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTYWZldHlDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIgNCA1djYuMDljMCA1LjA1IDMuNDEgOS43NiA4IDEwLjkxIDQuNTktMS4xNSA4LTUuODYgOC0xMC45MVY1bC04LTN6bTYgOS4wOWMwIDQtMi41NSA3LjctNiA4LjgzLTMuNDUtMS4xMy02LTQuODItNi04Ljgzdi00LjdsNi0yLjI1IDYgMi4yNXY0Ljd6TTEyIDdjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0xLjY1IDcuMzVMMTEuNSAxMi4yVjloMXYyLjc5bDEuODUgMS44NS0uNy43MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNhaWxpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxMy41VjJMMyAxMy41aDh6bS0yLTJINi44M0w5IDguMzh2My4xMnptMTIgMkMyMSA2LjUgMTQuNSAxIDEyLjUgMWMwIDAgMSAzIDEgNi41cy0xIDYtMSA2SDIxem0tNS42Mi04LjI2YzEuNDIgMS41MiAyLjg4IDMuNzIgMy40MSA2LjI2aC0zLjY4Yy4yMS0xLjEuMzktMi40Ni4zOS00IDAtLjc5LS4wNS0xLjU1LS4xMi0yLjI2ek0yMiAxNUgyYTYuMjMzIDYuMjMzIDAgMCAwIDIuMzMgMy43M2MuNjUtLjI3IDEuMjItLjcyIDEuNjctMS4yMy43My44NCAxLjggMS41IDMgMS41czIuMjctLjY2IDMtMS41Yy43My44NCAxLjggMS41IDMgMS41czIuMjYtLjY2IDMtMS41Yy40NS41MSAxLjAyLjk2IDEuNjcgMS4yMyAxLjE3LS44OSAyLjAyLTIuMiAyLjMzLTMuNzN6bTAgOHYtMmgtMWMtMS4wNCAwLTIuMDgtLjM1LTMtMS0xLjgzIDEuMy00LjE3IDEuMy02IDAtMS44MyAxLjMtNC4xNyAxLjMtNiAwLS45MS42NS0xLjk2IDEtMyAxSDJ2MmgxYzEuMDMgMCAyLjA1LS4yNSAzLS43NSAxLjg5IDEgNC4xMSAxIDYgMCAxLjg5IDEgNC4xMSAxIDYgMCAuOTUuNSAxLjk3Ljc1IDMgLjc1aDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTYXRlbGxpdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpNOC41NyA2SDZ2Mi41OGMxLjQyIDAgMi41Ny0xLjE2IDIuNTctMi41OHpNMTIgNmgtMS43MWMwIDIuMzYtMS45MiA0LjI5LTQuMjkgNC4yOVYxMmMzLjMyIDAgNi0yLjY5IDYtNnptMi4xNCA1Ljg2LTMgMy44N0w5IDEzLjE1IDYgMTdoMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTY3JlZW5Sb3RhdGlvbkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTQgNy41OSA1LTVjLjc4LS43OCAyLjA1LS43OCAyLjgzIDBMMjAuMjQgMTFoLTIuODNMMTAuNCA0IDUuNDEgOUg4djJIMlY1aDJ2Mi41OXpNMjAgMTloMnYtNmgtNnYyaDIuNTlsLTQuOTkgNS03LjAxLTdIMy43Nmw4LjQxIDguNDFjLjc4Ljc4IDIuMDUuNzggMi44MyAwbDUtNVYxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNldE1lYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS4wNSAxNy41Ni0xNy45Ny45NEwzIDE3bDE3Ljk4LS45NC4wNyAxLjV6TTIxIDE5LjQ4SDN2MS41aDE4di0xLjV6TTIzIDEzVjRjMC0xLjEtLjktMi0yLTJIM2MtMS4xIDAtMiAuOS0yIDJ2OWMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yem0tMiAwSDNWNGgxOHY5em0tMS03Yy0xLjY4IDAtMy4wNC45OC0zLjIxIDIuMjMtLjY0LS43My0yLjczLTIuNzMtNi41NC0yLjczLTQuNjcgMC02Ljc1IDMtNi43NSAzczIuMDggMyA2Ljc1IDNjMy44MSAwIDUuOS0yIDYuNTQtMi43M0MxNi45NiAxMC4wMiAxOC4zMiAxMSAyMCAxMVY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2lnbnBvc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxMGg1bDMtMy0zLTNoLTVWMmgtMnYySDR2Nmg3djJINmwtMyAzIDMgM2g1djRoMnYtNGg3di02aC03di0yek02IDZoMTEuMTdsMSAxLTEgMUg2VjZ6bTEyIDEwSDYuODNsLTEtMSAxLTFIMTh2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNub3dtb2JpbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxN2MwIC41NS0uNDUgMS0xIDFoLS4xN2wtMi4yLTIuMkMyMC41OCAxNS4zNyAyMiAxNC40IDIyIDEzYzAtMS04LTgtOC04aC0zdjJoMi4yNWwuOC43MkwxMSAxMCAyIDlsLTIgNCA0LjU0IDEuMzYtMy40OSAxLjg4Qy0uNzcgMTcuMjItLjA3IDIwIDIgMjBoNmMyLjIxIDAgNC0xLjc5IDQtNGg0bDIgMmgtM3YyaDZjMS42NiAwIDMtMS4zNCAzLTNoLTJ6TTggMThIMmw1LjI1LTIuODNMMTAgMTZhMiAyIDAgMCAxLTIgMnptOS00aC02LjdsLTcuNDUtMi4yMy4zMS0uNjIgOC40NC44NSAzLjkzLTIuOTRzMy43NyAzLjQ0IDQuMjcgNC4xNGMwIDAtMS4xLjgtMi44Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTb3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy41IDdoLTNjLTEuMSAwLTIgLjktMiAydjZjMCAxLjEuOSAyIDIgMmgzYzEuMSAwIDItLjkgMi0yVjljMC0xLjEtLjktMi0yLTJ6bTAgOGgtM1Y5aDN2NnpNMSAxNWg0di0ySDNjLTEuMSAwLTItLjktMi0yVjljMC0xLjEuOS0yIDItMmg0djJIM3YyaDJjMS4xIDAgMiAuOSAyIDJ2MmMwIDEuMS0uOSAyLTIgMkgxdi0yem0xNiAwaDR2LTJoLTJjLTEuMSAwLTItLjktMi0yVjljMC0xLjEuOS0yIDItMmg0djJoLTR2MmgyYzEuMSAwIDIgLjkgMiAydjJjMCAxLjEtLjkgMi0yIDJoLTR2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTb3VwS2l0Y2hlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNCA3Yy0uMzQuNTUtLjQuOTctLjQgMS4zOEM2IDkuMTUgNyAxMSA3IDEyYzAgLjk1LS40IDEuNS0uNCAxLjVINS4xcy40LS41NS40LTEuNWMwLTEtMS0yLjg1LTEtMy42MiAwLS40MS4wNi0uODMuNC0xLjM4aDEuNXptNSAwYy0uMzQuNTUtLjQuOTctLjQgMS4zOCAwIC43NyAxIDIuNjIgMSAzLjYyIDAgLjk1LS40IDEuNS0uNCAxLjVoMS41cy40LS41NS40LTEuNWMwLTEtMS0yLjg1LTEtMy42MiAwLS40MS4wNi0uODMuNC0xLjM4aC0xLjV6TTguMTUgN2MtLjM0LjU1LS40Ljk3LS40IDEuMzggMCAuNzcgMSAyLjYzIDEgMy42MiAwIC45NS0uNCAxLjUtLjQgMS41aDEuNXMuNC0uNTUuNC0xLjVjMC0xLTEtMi44NS0xLTMuNjIgMC0uNDEuMDYtLjgzLjQtMS4zOGgtMS41ek0xOC42IDJjLTEuNTQgMC0yLjgxIDEuMTYtMi45OCAyLjY1TDE0LjUzIDE1SDQuMDFjLS42IDAtMS4wOS41My0xIDEuMTNDMy41MyAxOS40NiA2LjM5IDIyIDkuNzUgMjJjMy40OCAwIDYuMzQtMi43MyA2LjcxLTYuMjNMMTcuNjEgNC45Yy4wNS0uNTEuNDctLjkuOTktLjkuNTUgMCAxIC40NSAxIDEgMCAuMy0uMSAxLjI1LS4xIDEuMjVsMS45Ny4yNXMuMTMtMS4wNi4xMy0xLjVjMC0xLjY1LTEuMzUtMy0zLTN6TTkuNzUgMjBjLTEuOTQgMC0zLjY3LTEuMjMtNC40My0zaDguNzljLS43MiAxLjc4LTIuNDIgMy00LjM2IDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdGFkaXVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA1IDMgN1YzbDQgMnptMTEtMnY0bDQtMi00LTJ6bS03LTF2NGw0LTItNC0yem0yIDE2aC0ydjRjLTUuMDUtLjE1LTktMS40NC05LTN2LTljMC0xLjY2IDQuNDgtMyAxMC0zczEwIDEuMzQgMTAgM3Y5YzAgMS41Ni0zLjk1IDIuODUtOSAzdi00em0tOC03Ljk2YzEuMzguNDkgMy43Ny45NiA3IC45NnM1LjYyLS40NyA3LS45NkMxOSA5Ljg2IDE2LjIyIDkgMTIgOXMtNyAuODYtNyAxLjA0em0xNSAxLjc2Yy0xLjgyLjczLTQuNzMgMS4yLTggMS4ycy02LjE4LS40Ny04LTEuMnY2Ljc4Yy42MS40MSAyLjM2IDEuMDEgNSAxLjI4VjE2aDZ2My44NmMyLjY0LS4yNyA0LjM5LS44NyA1LTEuMjhWMTEuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0b3JlTWFsbERpcmVjdG9yeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTguMzYgOSAuNiAzSDUuMDRsLjYtM2gxMi43Mk0yMCA0SDR2MmgxNlY0em0wIDNINGwtMSA1djJoMXY2aDEwdi02aDR2Nmgydi02aDF2LTJsLTEtNXpNNiAxOHYtNGg2djRINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0cmFpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNi44MyA5LjQxIDguNDEgOCA3bDQtNCA0IDQtMS40MSAxLjQxTDEzIDYuODNWMjFoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdHJlZXR2aWV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi41NiAxNC4zM2MtLjM0LjI3LS41Ni43LS41NiAxLjE3VjIxaDdjMS4xIDAgMi0uOSAyLTJ2LTUuOThjLS45NC0uMzMtMS45NS0uNTItMy0uNTItMi4wMyAwLTMuOTMuNy01LjQ0IDEuODN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMThcIixcImN5XCI6XCI2XCIsXCJyXCI6XCI1XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjUgNmMwLTEuMDguMjctMi4xLjc0LTNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAuNTUuMjMgMS4wNS41OSAxLjQxbDkuODItOS44MkE2LjQzNSA2LjQzNSAwIDAgMSAxMS41IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdWJ3YXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjggMi44QzE2IDIuMDkgMTMuODYgMiAxMiAycy00IC4wOS01LjguOEMzLjUzIDMuODQgMiA2LjA1IDIgOC44NlYyMmgyMFY4Ljg2YzAtMi44MS0xLjUzLTUuMDItNC4yLTYuMDZ6TTkuMTcgMjBsMS41LTEuNWgyLjY2bDEuNSAxLjVIOS4xN3ptLTIuMTYtNlY5aDEwdjVoLTEwem05LjQ5IDJjMCAuNTUtLjQ1IDEtMSAxcy0xLS40NS0xLTEgLjQ1LTEgMS0xIDEgLjQ1IDEgMXptLTgtMWMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xek0yMCAyMGgtMy41di0uMzhsLTEuMTUtMS4xNkEyLjk3OSAyLjk3OSAwIDAgMCAxOCAxNS41VjljMC0yLjYzLTMtMy02LTNzLTYgLjM3LTYgM3Y2LjVjMCAxLjU0IDEuMTYgMi43OSAyLjY1IDIuOTZMNy41IDE5LjYyVjIwSDRWOC44NmMwLTIgMS4wMS0zLjQ1IDIuOTMtNC4yQzguNDEgNC4wOCAxMC4zMiA0IDEyIDRzMy41OS4wOCA1LjA3LjY2YzEuOTIuNzUgMi45MyAyLjIgMi45MyA0LjJWMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTeW5hZ29ndWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0Yy0xLjY2IDAtMyAxLjM0LTMgM3YuMjlMMTIgMyA3IDcuMjlWN2MwLTEuNjYtMS4zNC0zLTMtM1MxIDUuMzQgMSA3djE0aDEwdi01YzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXY1aDEwVjdjMC0xLjY2LTEuMzQtMy0zLTN6bTAgMmMuNTUgMCAxIC40NSAxIDF2MWgtMlY3YzAtLjU1LjQ1LTEgMS0xek00IDZjLjU1IDAgMSAuNDUgMSAxdjFIM1Y3YzAtLjU1LjQ1LTEgMS0xek0zIDE5di05aDJ2OUgzem0xNCAwaC0ydi0zYzAtMS42NS0xLjM1LTMtMy0zcy0zIDEuMzUtMyAzdjNIN1Y5LjkybDUtNC4yOSA1IDQuMjlWMTl6bTIgMHYtOWgydjloLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMFwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUYWtlb3V0RGluaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNy43OSAxOC0uNTEtN2g5LjQ2bC0uNTEgN0g3Ljc5ek05LjgzIDVoNC4zM2wyLjggMi43M0wxNi44NyA5SDcuMTJsLS4wOS0xLjI3TDkuODMgNXpNMjIgNy40NmwtMS40MS0xLjQxTDE5IDcuNjNsLjAzLS41NkwxNC45OCAzSDkuMDJMNC45NyA3LjA3bC4wMy41LTEuNTktMS41NkwyIDcuNDRsMy4yMyAzLjExLjcgOS40NWgxMi4xNGwuNy05LjQ0TDIyIDcuNDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUYXhpQWxlcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjYuNVwiLFwiY3lcIjpcIjE1LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1LjVcIixcImN5XCI6XCIxNS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTN2NUg0di01aDE0Yy0xLjkxIDAtMy42My0uNzYtNC44OS0yaC04LjNsMS4wNC0zaDUuNDRDMTEuMSA3LjM3IDExIDYuNyAxMSA2cy4xLTEuMzcuMjktMkg4djJINS41Yy0uNjYgMC0xLjIxLjQyLTEuNDIgMS4wMUwyIDEzdjhjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTFoMTJ2MWMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtOGwtLjA5LS4yN2MtLjYxLjE3LTEuMjUuMjctMS45MS4yN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMWMtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bS41IDhoLTFWOGgxdjF6bTAtMmgtMVYzaDF2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRlbXBsZUJ1ZGRoaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgOS4wMmMwIDEuMDktLjg5IDEuOTgtMS45OCAxLjk4SDE4VjguODZjMS43Mi0uNDQgMy0xLjk5IDMtMy44NFY1bC0yIC4wMkMxOSA2LjExIDE4LjExIDcgMTcuMDIgN2gtLjUyTDEyIDEgNy41IDdoLS41MkM1Ljg5IDcgNSA2LjExIDUgNS4wMkgzYzAgMS44NiAxLjI4IDMuNCAzIDMuODRWMTFINC45OEMzLjg5IDExIDMgMTAuMTEgMyA5LjAySDFjMCAxLjg2IDEuMjggMy40IDMgMy44NFYyMmg3di00YzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXY0aDd2LTkuMTRjMS43Mi0uNDQgMy0xLjk5IDMtMy44NFY5bC0yIC4wMnptLTktNC42OUwxNCA3aC00bDItMi42N3pNOCA5aDh2Mkg4Vjl6bTEwIDExaC0zdi0yYzAtMS42NS0xLjM1LTMtMy0zcy0zIDEuMzUtMyAzdjJINnYtN2gxMnY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGVtcGxlSGluZHUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxMXYyaC0yTDE1IDNWMWgtMnYyaC0yLjAzVjFoLTJ2Mi4xMkw2IDEzSDR2LTJIMnYxMWg5di01aDJ2NWg5VjExaC0yem0tNC42OSAwSDguNjlsLjYtMmg1LjQybC42IDJ6bS0xLjItNEg5Ljg5bC42LTJoMy4wMmwuNiAyek0yMCAyMGgtNXYtNUg5djVINHYtNWgzLjQ5bC42LTJoNy44MmwuNiAySDIwdjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUZXJyYWluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNCA2LTQuMjIgNS42MyAxLjI1IDEuNjdMMTQgOS4zMyAxOSAxNmgtOC40NmwtNC4wMS01LjM3TDEgMThoMjJMMTQgNnpNNSAxNmwxLjUyLTIuMDNMOC4wNCAxNkg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGhlYXRlckNvbWVkeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTlcIixcImN5XCI6XCI2LjVcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjYuNVwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi45OSA5Yy0xLjM4IDAtMi41Ljg0LTIuNSAxLjg4aDVjMC0xLjA0LTEuMTItMS44OC0yLjUtMS44OHpNMSAxNmMwIDMuMzEgMi42OSA2IDYgNnM2LTIuNjkgNi02VjlIMXY3em0yLTVoOHY1YzAgMi4yMS0xLjc5IDQtNCA0cy00LTEuNzktNC00di01elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAydjUuNWgyVjRoOHY1YzAgMi4yMS0xLjc5IDQtNCA0LS45NSAwLTEuODEtLjM1LTIuNS0uOXYyLjM1Yy43Ni4zNSAxLjYxLjU1IDIuNS41NSAzLjMxIDAgNi0yLjY5IDYtNlYySDExelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjVcIixcImN5XCI6XCIxMy41XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjEzLjVcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxNy44OGMxLjM4IDAgMi41LS44NCAyLjUtMS44OGgtNWMwIDEuMDQgMS4xMiAxLjg4IDIuNSAxLjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGlyZVJlcGFpciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDhhMS4wMDMgMS4wMDMgMCAwIDEtLjcxLTEuNzFjLjQtLjQgMi40Ni0xLjA0IDIuNDYtMS4wNHMtLjY0IDIuMDYtMS4wNCAyLjQ2Yy0uMTguMTgtLjQzLjI5LS43MS4yOXptMSA1djVjMCAxLjY1LTEuMzUgMy0zIDNzLTMtMS4zNS0zLTN2LTJjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2M2MwIDEuMS0uOSAyLTIgMkg0Yy0xLjEgMC0yLS45LTItMlY1YzAtMS4xLjktMiAyLTJoNmMxLjEgMCAyIC45IDIgMnY4LjE3QTMuMDA5IDMuMDA5IDAgMCAxIDE2IDE2djJjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xdi01aC0xdi0xLjQyYy0xLjc3LS43Ny0zLTIuNTMtMy00LjU4IDAtMi43NiAyLjI0LTUgNS01czUgMi4yNCA1IDVjMCAyLjA1LTEuMjMgMy44MS0zIDQuNThWMTNoLTF6bTItNmMwLTEuNjYtMS4zNC0zLTMtM3MtMyAxLjM0LTMgMyAxLjM0IDMgMyAzIDMtMS4zNCAzLTN6TTEwIDcgOCA5VjYuMTdMOS4xNyA1SDQuODNMNiA2LjE3VjlMNCA3djIuMTdsMiAyVjE0bC0yLTJ2Mi4xN2wyIDJWMTlsLTItMnYyaDZ2LTJsLTIgMnYtMi44M2wyLTJWMTJsLTIgMnYtMi44M2wyLTJWN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRyYWZmaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDEwaC0zVjguODZjMS43Mi0uNDUgMy0yIDMtMy44NmgtM1Y0YzAtLjU1LS40NS0xLTEtMUg4Yy0uNTUgMC0xIC40NS0xIDF2MUg0YzAgMS44NiAxLjI4IDMuNDEgMyAzLjg2VjEwSDRjMCAxLjg2IDEuMjggMy40MSAzIDMuODZWMTVINGMwIDEuODYgMS4yOCAzLjQxIDMgMy44NlYyMGMwIC41NS40NSAxIDEgMWg4Yy41NSAwIDEtLjQ1IDEtMXYtMS4xNGMxLjcyLS40NSAzLTIgMy0zLjg2aC0zdi0xLjE0YzEuNzItLjQ1IDMtMiAzLTMuODZ6bS01IDlIOVY1aDZ2MTR6bS0zLTFjLjgzIDAgMS41LS42NyAxLjUtMS41UzEyLjgzIDE1IDEyIDE1cy0xLjUuNjctMS41IDEuNS42NyAxLjUgMS41IDEuNXptMC00LjVjLjgzIDAgMS41LS42NyAxLjUtMS41cy0uNjctMS41LTEuNS0xLjUtMS41LjY3LTEuNSAxLjUuNjcgMS41IDEuNSAxLjV6TTEyIDljLjgzIDAgMS41LS42NyAxLjUtMS41UzEyLjgzIDYgMTIgNnMtMS41LjY3LTEuNSAxLjVTMTEuMTcgOSAxMiA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHJhaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiMTQuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYy00IDAtOCAuNS04IDR2OS41QzQgMTcuNDMgNS41NyAxOSA3LjUgMTlMNiAyMC41di41aDJsMi0yaDRsMiAyaDJ2LS41TDE2LjUgMTljMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVWNmMwLTMuNS00LTQtOC00em0wIDJjMy41MSAwIDQuOTYuNDggNS41NyAxSDYuNDNjLjYxLS41MiAyLjA2LTEgNS41Ny0xek02IDdoNXYzSDZWN3ptMTIgOC41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOWMtLjgzIDAtMS41LS42Ny0xLjUtMS41VjEyaDEydjMuNXptMC01LjVoLTVWN2g1djN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUcmFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMyA1IC43NS0xLjVIMTdWMkg3djEuNWg0Ljc1TDExIDVjLTMuMTMuMDktNiAuNzMtNiAzLjVWMTdjMCAxLjUgMS4xMSAyLjczIDIuNTUgMi45NUw2IDIxLjV2LjVoMmwyLTJoNGwyIDJoMnYtLjVsLTEuNTUtMS41NWgtLjAxLjAxQzE3Ljg5IDE5LjczIDE5IDE4LjUgMTkgMTdWOC41YzAtMi43Ny0yLjg3LTMuNDEtNi0zLjV6bS0xLjk3IDJoMS45NGMyLjc1LjA4IDMuNjIuNTggMy45IDFINy4xM2MuMjgtLjQyIDEuMTUtLjkyIDMuOS0xem0tLjE4IDEwLjk1SDcuNzRBLjk3NC45NzQgMCAwIDEgNyAxN3YtMWgzLjg5Yy0uMjQuMjctLjM5LjYxLS4zOSAxIDAgLjM2LjEzLjY5LjM1Ljk1ek0xNyAxN2MwIC40NS0uMy44NC0uNzQuOTVoLTMuMTFjLjIyLS4yNi4zNS0uNTkuMzUtLjk1IDAtLjM5LS4xNS0uNzMtLjM5LTFIMTd2MXptMC0zSDd2LTRoMTB2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRyYW5zZmVyV2l0aGluQVN0YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjQ5IDE1LjV2LTEuNzVMMTQgMTYuMjVsMi40OSAyLjVWMTdIMjJ2LTEuNWgtNS41MXptMy4wMiA0LjI1SDE0djEuNWg1LjUxVjIzTDIyIDIwLjUgMTkuNTEgMTh2MS43NXpNOS41IDUuNWMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6TTUuNzUgOC45IDMgMjNoMi4xbDEuNzUtOEw5IDE3djZoMnYtNy41NUw4Ljk1IDEzLjRsLjYtM0MxMC44NSAxMiAxMi44IDEzIDE1IDEzdi0yYy0xLjg1IDAtMy40NS0xLTQuMzUtMi40NWwtLjk1LTEuNkM5LjM1IDYuMzUgOC43IDYgOCA2Yy0uMjUgMC0uNS4wNS0uNzUuMTVMMiA4LjNWMTNoMlY5LjY1bDEuNzUtLjc1XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUcmFuc2l0RW50ZXJleGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxOEg2VjhoM3Y0Ljc3TDE1Ljk4IDYgMTggOC4wMyAxMS4xNSAxNUgxNnYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHJpcE9yaWdpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxMkMyIDYuNDggNi40OCAyIDEyIDJzMTAgNC40OCAxMCAxMC00LjQ4IDEwLTEwIDEwUzIgMTcuNTIgMiAxMnptMTAgNmMzLjMxIDAgNi0yLjY5IDYtNnMtMi42OS02LTYtNi02IDIuNjktNiA2IDIuNjkgNiA2IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUdXJuTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTYuODMgMTEgMS41OSAxLjU5TDcgMTRsLTQtNCA0LTQgMS40MSAxLjQxTDYuODMgOUgxNWMxLjEgMCAyIC45IDIgMnY5aC0ydi05SDYuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUdXJuUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNy4xNyAxMS0xLjU5IDEuNTlMMTcgMTRsNC00LTQtNC0xLjQxIDEuNDFMMTcuMTcgOUg5Yy0xLjEgMC0yIC45LTIgMnY5aDJ2LTloOC4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVR1cm5TaGFycExlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDYuODMgNC40MSA4LjQxIDMgN2w0LTQgNCA0LTEuNDEgMS40MUw4IDYuODNWMTNoOGMxLjEgMCAyIC45IDIgMnY2aC0ydi02SDhjLTEuMSAwLTItLjktMi0yVjYuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUdXJuU2hhcnBSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4IDYuODMgMS41OSAxLjU5TDIxIDdsLTQtNC00IDQgMS40MSAxLjQxTDE2IDYuODNWMTNIOGMtMS4xIDAtMiAuOS0yIDJ2Nmgydi02aDhjMS4xIDAgMi0uOSAyLTJWNi44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVR1cm5TbGlnaHRMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNjYgNlY0SDZ2NS42NmgyVjcuNDFsNSA1VjIwaDJ2LTcuNThjMC0uNTMtLjIxLTEuMDQtLjU5LTEuNDFsLTUtNWgyLjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHVyblNsaWdodFJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMzQgNlY0SDE4djUuNjZoLTJWNy40MWwtNSA1VjIwSDl2LTcuNThjMC0uNTMuMjEtMS4wNC41OS0xLjQxbDUtNWgtMi4yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVR3b1doZWVsZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjE3IDExSDRoLjE3bTkuMjQtNkg5djJoMy41OWwyIDJIMTFsLTQgMi0yLTJIMHYyaDRjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNGwyIDJoM2wzLjQ5LTYuMSAxLjAxIDEuMDFjLS45MS43My0xLjUgMS44NC0xLjUgMy4wOSAwIDIuMjEgMS43OSA0IDQgNHM0LTEuNzkgNC00LTEuNzktNC00LTRjLS4xOCAwLS4zNi4wMy0uNTMuMDVMMTcuNDEgOUgyMFY2bC0zLjcyIDEuODZMMTMuNDEgNXpNMjAgMTdjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyek00IDE3Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVVUdXJuTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDl2MTJoLTJWOWMwLTIuMjEtMS43OS00LTQtNFM4IDYuNzkgOCA5djQuMTdsMS41OS0xLjU5TDExIDEzbC00IDQtNC00IDEuNDEtMS40MUw2IDEzLjE3VjljMC0zLjMxIDIuNjktNiA2LTZzNiAyLjY5IDYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVVUdXJuUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDl2MTJoMlY5YzAtMi4yMSAxLjc5LTQgNC00czQgMS43OSA0IDR2NC4xN2wtMS41OS0xLjU5TDEzIDEzbDQgNCA0LTQtMS40MS0xLjQxTDE4IDEzLjE3VjljMC0zLjMxLTIuNjktNi02LTZTNiA1LjY5IDYgOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZvbHVudGVlckFjdGl2aXNtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTNjMy4wOS0yLjgxIDYtNS40NCA2LTcuN0MyMiAzLjQ1IDIwLjU1IDIgMTguNyAyYy0xLjA0IDAtMi4wNS40OS0yLjcgMS4yNUMxNS4zNCAyLjQ5IDE0LjM0IDIgMTMuMyAyIDExLjQ1IDIgMTAgMy40NSAxMCA1LjNjMCAyLjI2IDIuOTEgNC44OSA2IDcuN3ptLTIuNy05Yy40NCAwIC44OS4yMSAxLjE4LjU1TDE2IDYuMzRsMS41Mi0xLjc5Yy4yOS0uMzQuNzQtLjU1IDEuMTgtLjU1Ljc0IDAgMS4zLjU2IDEuMyAxLjMgMCAxLjEyLTIuMDQgMy4xNy00IDQuOTktMS45Ni0xLjgyLTQtMy44OC00LTQuOTkgMC0uNzQuNTYtMS4zIDEuMy0xLjN6TTE5IDE2aC0yYzAtMS4yLS43NS0yLjI4LTEuODctMi43TDguOTcgMTFIMXYxMWg2di0xLjQ0bDcgMS45NCA4LTIuNXYtMWMwLTEuNjYtMS4zNC0zLTMtM3pNMyAyMHYtN2gydjdIM3ptMTAuOTcuNDFMNyAxOC40OFYxM2gxLjYxbDUuODIgMi4xN2MuMzQuMTMuNTcuNDYuNTcuODMgMCAwLTEuOTktLjA1LTIuMy0uMTVsLTIuMzgtLjc5LS42MyAxLjkgMi4zOC43OWMuNTEuMTcgMS4wNC4yNiAxLjU4LjI2SDE5Yy4zOSAwIC43NC4yMy45LjU2bC01LjkzIDEuODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXYXJlaG91c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA4LjM1VjE5aC0ydi04SDZ2OEg0VjguMzVsOC0zLjIgOCAzLjJ6TTIyIDIxVjdMMTIgMyAyIDd2MTRoNnYtOGg4djhoNnptLTExLTJIOXYyaDJ2LTJ6bTItM2gtMnYyaDJ2LTJ6bTIgM2gtMnYyaDJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXaW5lQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAzdjZjMCAyLjk3IDIuMTYgNS40MyA1IDUuOTFWMTlIOHYyaDh2LTJoLTN2LTQuMDljMi44NC0uNDggNS0yLjk0IDUtNS45MVYzSDZ6bTYgMTBjLTEuODYgMC0zLjQxLTEuMjgtMy44Ni0zaDcuNzJjLS40NSAxLjcyLTIgMy0zLjg2IDN6bTQtNUg4VjVoOHYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV3JvbmdMb2NhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDExdi4yYzAgMi4zNC0xLjk1IDUuNDQtNiA5LjE0LTQuMDUtMy43LTYtNi43OS02LTkuMTRDNiA3LjU3IDguNjUgNSAxMiA1Yy4zNCAwIC42OC4wMyAxIC4wOFYzLjA2Yy0uMzMtLjA0LS42Ni0uMDYtMS0uMDYtNC4yIDAtOCAzLjIyLTggOC4yIDAgMy4zMiAyLjY3IDcuMjUgOCAxMS44IDUuMzMtNC41NSA4LTguNDggOC0xMS44VjExaC0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTFcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIuNTQgMi44OC0xLjQyLTEuNDJMMTkgMy41OWwtMi4xMi0yLjEzLTEuNDIgMS40MkwxNy41OSA1bC0yLjEzIDIuMTIgMS40MiAxLjQyTDE5IDYuNDFsMi4xMiAyLjEzIDEuNDItMS40MkwyMC40MSA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lWm9vbUluTWFwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA5VjNIN3YyLjU5TDMuOTEgMi41IDIuNSAzLjkxIDUuNTkgN0gzdjJoNnptMTIgMFY3aC0yLjU5bDMuMDktMy4wOS0xLjQxLTEuNDFMMTcgNS41OVYzaC0ydjZoNnpNMyAxNXYyaDIuNTlMMi41IDIwLjA5bDEuNDEgMS40MUw3IDE4LjQxVjIxaDJ2LTZIM3ptMTIgMHY2aDJ2LTIuNTlsMy4wOSAzLjA5IDEuNDEtMS40MUwxOC40MSAxN0gyMXYtMmgtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVpvb21PdXRNYXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1IDMgMi4zIDIuMy0yLjg5IDIuODcgMS40MiAxLjQyTDE4LjcgNi43IDIxIDlWM2gtNnpNMyA5bDIuMy0yLjMgMi44NyAyLjg5IDEuNDItMS40Mkw2LjcgNS4zIDkgM0gzdjZ6bTYgMTItMi4zLTIuMyAyLjg5LTIuODctMS40Mi0xLjQyTDUuMyAxNy4zIDMgMTV2Nmg2em0xMi02LTIuMyAyLjMtMi44Ny0yLjg5LTEuNDIgMS40MiAyLjg5IDIuODdMMTUgMjFoNnYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZEhvbWVXb3JrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTRINXY1SDN2LTYuOTdsNS0zLjU3IDUgMy41N3YxLjA4Yy41Ny0uNTkgMS4yNS0xLjA3IDItMS40MlYxMUw4IDZsLTcgNXYxMGg2di01aDJ2NWgyLjY4Yy0uNDMtLjkxLS42OC0xLjkyLS42OC0zdi00ek0xNyA3aDJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMgMTMuMTFWM0gxMHYxLjk3bDIgMS40M1Y1aDl2Ni42OGMuNzUuMzYgMS40My44NCAyIDEuNDN6TTIzIDE4YzAtMi43Ni0yLjI0LTUtNS01cy01IDIuMjQtNSA1IDIuMjQgNSA1IDUgNS0yLjI0IDUtNXptLTUuNSAzdi0yLjVIMTV2LTFoMi41VjE1aDF2Mi41SDIxdjFoLTIuNVYyMWgtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFwcFNldHRpbmdzQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNNyAyMGgxMHYxSDd6TTcgM2gxMHYxSDd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjgxIDEyLjc0LS44Mi0uNjN2LS4yMmwuOC0uNjNjLjE2LS4xMi4yLS4zNC4xLS41MWwtLjg1LTEuNDhhLjM5NS4zOTUgMCAwIDAtLjM1LS4yYy0uMDUgMC0uMS4wMS0uMTUuMDNsLS45NS4zOGMtLjA4LS4wNS0uMTEtLjA3LS4xOS0uMTFsLS4xNS0xLjAxYS40MDguNDA4IDAgMCAwLS40LS4zNmgtMS43MWMtLjIgMC0uMzcuMTUtLjQuMzRsLS4xNCAxLjAxYy0uMDMuMDItLjA3LjAzLS4xLjA1bC0uMDkuMDYtLjk1LS4zOGEuNDAxLjQwMSAwIDAgMC0uNS4xN2wtLjg1IDEuNDhjLS4xLjE3LS4wNi4zOS4xLjUxbC44LjYzdi4yM2wtLjguNjNhLjM5LjM5IDAgMCAwLS4xLjUxbC44NSAxLjQ4Yy4wNy4xMy4yMS4yLjM1LjIuMDUgMCAuMS0uMDEuMTUtLjAzbC45NS0uMzdjLjA4LjA1LjEyLjA3LjIuMTFsLjE1IDEuMDFjLjAzLjIuMi4zNC40LjM0aDEuNzFjLjIgMCAuMzctLjE1LjQtLjM0bC4xNS0xLjAxYy4wMy0uMDIuMDctLjAzLjEtLjA1bC4wOS0uMDYuOTUuMzhhLjQwMS40MDEgMCAwIDAgLjUtLjE3bC44NS0xLjQ4YS4zOS4zOSAwIDAgMC0uMS0uNTF6TTE4IDEzLjVjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41ek0xNyAxOEg3VjZoMTB2MWgyVjNjMC0xLjEtLjktMi0yLTJIN2MtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMnYtNGgtMnYxek03IDNoMTB2MUg3VjN6bTEwIDE4SDd2LTFoMTB2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFwcHNPdXRhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDhoNFY0SDR2NHptNiAxMmg0di00aC00djR6bS02IDBoNHYtNEg0djR6bTAtNmg0di00SDR2NHptNiAwaDR2LTRoLTR2NHptNiA2aDR2LTRoLTR2NHptMy0yMGMtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bS41IDhoLTFWN2gxdjF6bTAtMmgtMVYyaDF2NHpNMTYgMTRoNHYtMi4wN2MtLjMzLjA1LS42Ni4wNy0xIC4wNy0xLjA3IDAtMi4wOS0uMjQtMy0uNjhWMTR6TTEwIDR2NGgyLjY4Yy0uNDQtLjkxLS42OC0xLjkzLS42OC0zIDAtLjM0LjAyLS42Ny4wNy0xSDEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXBwcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA4aDRWNEg0djR6bTYgMTJoNHYtNGgtNHY0em0tNiAwaDR2LTRINHY0em0wLTZoNHYtNEg0djR6bTYgMGg0di00aC00djR6bTYtMTB2NGg0VjRoLTR6bS02IDRoNFY0aC00djR6bTYgNmg0di00aC00djR6bTAgNmg0di00aC00djR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcnJvd0JhY2tJb3NOZXcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy43NyAzLjc3IDE2IDIgNiAxMmwxMCAxMCAxLjc3LTEuNzdMOS41NCAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFycm93QmFja0lvcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIixcIm9wYWNpdHlcIjpcIi44N1wifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy41MSAzLjg3IDE1LjczIDIuMSA1Ljg0IDEybDkuOSA5LjkgMS43Ny0xLjc3TDkuMzggMTJsOC4xMy04LjEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXJyb3dCYWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxMUg3LjgzbDUuNTktNS41OUwxMiA0bC04IDggOCA4IDEuNDEtMS40MUw3LjgzIDEzSDIwdi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXJyb3dEb3dud2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAgMTItMS40MS0xLjQxTDEzIDE2LjE3VjRoLTJ2MTIuMTdsLTUuNTgtNS41OUw0IDEybDggOCA4LTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcnJvd0Ryb3BEb3duQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0YzQuNDEgMCA4IDMuNTkgOCA4cy0zLjU5IDgtOCA4LTgtMy41OS04LTggMy41OS04IDgtOG0wLTJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMTMtNC00aDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcnJvd0Ryb3BEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm03IDEwIDUgNSA1LTVIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFycm93RHJvcFVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm03IDE0IDUtNSA1IDVIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFycm93Rm9yd2FyZElvcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi4yMyAyMC4yMyA4IDIybDEwLTEwTDggMiA2LjIzIDMuNzcgMTQuNDYgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcnJvd0ZvcndhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDQtMS40MSAxLjQxTDE2LjE3IDExSDR2MmgxMi4xN2wtNS41OCA1LjU5TDEyIDIwbDgtOC04LTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcnJvd0xlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTI0IDB2MjRIMFYwaDI0elwiLFwib3BhY2l0eVwiOlwiLjg3XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0IDctNSA1IDUgNVY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXJyb3dSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAgMTcgNS01LTUtNXYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFycm93VXB3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm00IDEyIDEuNDEgMS40MUwxMSA3LjgzVjIwaDJWNy44M2w1LjU4IDUuNTlMMjAgMTJsLTgtOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBc3Npc3RhbnREaXJlY3Rpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDFDNS45IDEgMSA1LjkgMSAxMnM0LjkgMTEgMTEgMTEgMTEtNC45IDExLTExUzE4LjEgMSAxMiAxem0wIDIwYy00Ljk5IDAtOS00LjAxLTktOXM0LjAxLTkgOS05IDkgNC4wMSA5IDktNC4wMSA5LTkgOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuNzMgMTEuNDIgMTIuNTQgNC4yYy0uMzYtLjI3LS44LS4yNy0xLjE1IDBMNC4yIDExLjQyYy0uMjcuMzYtLjI3LjggMCAxLjE2bDcuMTkgNy4yMmMuMzYuMjcuOC4yNyAxLjE1IDBsNy4xOS03LjIyYy4zNi0uMzYuMzYtLjg5IDAtMS4xNnpNMTMuNSAxNC41bC0xLjQxLTEuNDFMMTMuMTcgMTJIMTB2M0g4di00YzAtLjYuNC0xIDEtMWg0LjE3bC0xLjA5LTEuMDlMMTMuNSA3LjUgMTcgMTFsLTMuNSAzLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYW1wYWlnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDExdjJoNHYtMmgtNHpNMTYgMTcuNjFjLjk2LjcxIDIuMjEgMS42NSAzLjIgMi4zOS40LS41My44LTEuMDcgMS4yLTEuNi0uOTktLjc0LTIuMjQtMS42OC0zLjItMi40LS40LjU0LS44IDEuMDgtMS4yIDEuNjF6TTIwLjQgNS42Yy0uNC0uNTMtLjgtMS4wNy0xLjItMS42LS45OS43NC0yLjI0IDEuNjgtMy4yIDIuNC40LjUzLjggMS4wNyAxLjIgMS42Ljk2LS43MiAyLjIxLTEuNjUgMy4yLTIuNHpNNCA5Yy0xLjEgMC0yIC45LTIgMnYyYzAgMS4xLjkgMiAyIDJoMXY0aDJ2LTRoMWw1IDNWNkw4IDlINHptNS4wMyAxLjcxTDExIDkuNTN2NC45NGwtMS45Ny0xLjE4LS40OC0uMjlINHYtMmg0LjU1bC40OC0uMjl6TTE1LjUgMTJjMC0xLjMzLS41OC0yLjUzLTEuNS0zLjM1djYuNjljLjkyLS44MSAxLjUtMi4wMSAxLjUtMy4zNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbmNlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIixcIm9wYWNpdHlcIjpcIi44N1wifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDcgMiAyIDYuNDcgMiAxMnM0LjQ3IDEwIDEwIDEwIDEwLTQuNDcgMTAtMTBTMTcuNTMgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptMy41OS0xM0wxMiAxMC41OSA4LjQxIDcgNyA4LjQxIDEwLjU5IDEyIDcgMTUuNTkgOC40MSAxNyAxMiAxMy40MSAxNS41OSAxNyAxNyAxNS41OSAxMy40MSAxMiAxNyA4LjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTYuMTcgNC44MyAxMmwtMS40MiAxLjQxTDkgMTkgMjEgN2wtMS40MS0xLjQxTDkgMTYuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDaGV2cm9uTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNDEgNy40MSAxNCA2bC02IDYgNiA2IDEuNDEtMS40MUwxMC44MyAxMmw0LjU4LTQuNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDaGV2cm9uUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDYgOC41OSA3LjQxIDEzLjE3IDEybC00LjU4IDQuNTlMMTAgMThsNi02LTYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNsb3NlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA2LjQxIDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTIgMTkgNi40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvdWJsZUFycm93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSA1SDExbDUgNy01IDdoNC41bDUtN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDVINGw1IDctNSA3aDQuNWw1LTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUgNS0xLjQxIDEuNDFMMTguMTcgMTFIMnYyaDE2LjE3bC00LjU5IDQuNTlMMTUgMTlsNy03LTctN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUV4cGFuZENpcmNsZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS4wOCA5LjU5IDEyIDEyLjY3IDguOTIgOS41OSA3LjUgMTFsNC41IDQuNSA0LjUtNC41LTEuNDItMS40MXpNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFeHBhbmRMZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiA4LTYgNiAxLjQxIDEuNDFMMTIgMTAuODNsNC41OSA0LjU4TDE4IDE0bC02LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFeHBhbmRNb3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0yNCAyNEgwVjBoMjR2MjR6XCIsXCJvcGFjaXR5XCI6XCIuODdcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNTkgOC41OSAxMiAxMy4xNyA3LjQxIDguNTkgNiAxMGw2IDYgNi02LTEuNDEtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpcnN0UGFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMjQgMHYyNEgwVjBoMjR6XCIsXCJvcGFjaXR5XCI6XCIuODdcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNDEgMTYuNTkgMTMuODIgMTJsNC41OS00LjU5TDE3IDZsLTYgNiA2IDYgMS40MS0xLjQxek02IDZoMnYxMkg2VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGdWxsc2NyZWVuRXhpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxNmgzdjNoMnYtNUg1djJ6bTMtOEg1djJoNVY1SDh2M3ptNiAxMWgydi0zaDN2LTJoLTV2NXptMi0xMVY1aC0ydjVoNVY4aC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRnVsbHNjcmVlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxNEg1djVoNXYtMkg3di0zem0tMi00aDJWN2gzVjVINXY1em0xMiA3aC0zdjJoNXYtNWgtMnYzek0xNCA1djJoM3YzaDJWNWgtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhvbWVXb3JrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAxMXYxMGg2di01aDJ2NWg2VjExTDggNmwtNyA1em0xMiA4aC0ydi01SDV2NUgzdi02Ljk3bDUtMy41NyA1IDMuNTdWMTl6TTE3IDdoMnYyaC0yek0xNyAxMWgydjJoLTJ6TTE3IDE1aDJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgM3YxLjk3bDIgMS40M1Y1aDl2MTRoLTR2Mmg2VjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMYXN0UGFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIixcIm9wYWNpdHlcIjpcIi44N1wifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjU5IDcuNDEgMTAuMTggMTJsLTQuNTkgNC41OUw3IDE4bDYtNi02LTYtMS40MSAxLjQxek0xNiA2aDJ2MTJoLTJWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxlZ2VuZFRvZ2dsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE1SDR2LTJoMTZ2MnptMCAySDR2MmgxNnYtMnptLTUtNiA1LTMuNTVWNWwtNSAzLjU1TDEwIDUgNCA4LjY2VjExbDUuOTItMy42MUwxNSAxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1hcHNIb21lV29yayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgN2gydjJoLTJ6TTE3IDExaDJ2MmgtMnpNMTcgMTVoMnYyaC0yek0xIDExdjEwaDZ2LTVoMnY1aDZWMTFMOCA2bC03IDV6bTEyIDhoLTJ2LTVINXY1SDN2LTdsNS0zLjUgNSAzLjV2N3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgM3YxLjk3bDIgMS40M1Y1aDl2MTRoLTR2Mmg2VjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNZW51T3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxOGgxM3YtMkgzdjJ6bTAtNWgxMHYtMkgzdjJ6bTAtN3YyaDEzVjZIM3ptMTggOS41OUwxNy40MiAxMiAyMSA4LjQxIDE5LjU5IDdsLTUgNSA1IDVMMjEgMTUuNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNZW51IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE4aDE4di0ySDN2MnptMC01aDE4di0ySDN2MnptMC03djJoMThWNkgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW9yZUhvcml6IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDEwYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMTIgMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bS02IDBjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW9yZVZlcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDhjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0wIDJjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0wIDZjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm9ydGhFYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA1djJoNi41OUw0IDE4LjU5IDUuNDEgMjAgMTcgOC40MVYxNWgyVjVIOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vcnRoV2VzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTVoMlY4LjQxTDE4LjU5IDIwIDIwIDE4LjU5IDguNDEgN0gxNVY1SDV2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb3J0aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTUgOSAxLjQxIDEuNDFMMTEgNS44M1YyMmgyVjUuODNsNC41OSA0LjU5TDE5IDlsLTctNy03IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVPZmZsaW5lU2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgNUg0djE2YzAgMS4xLjkgMiAyIDJoMTB2LTJINlY1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxaC04Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNmgtOHYtMWg4djF6bTAtM2gtOFY2aDh2OHptMC0xMGgtOFYzaDh2MXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSAxMC4yNWgxLjYzbC0uNjkuNjlMMTQuNSAxMiAxNyA5LjUgMTQuNSA3bC0xLjA2IDEuMDYuNjkuNjlIMTJjLS41NSAwLTEgLjQ1LTEgMVYxMmgxLjV2LTEuNzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQYXltZW50cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDE0VjZjMC0xLjEtLjktMi0yLTJIM2MtMS4xIDAtMiAuOS0yIDJ2OGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yem0tMiAwSDNWNmgxNHY4em0tNy03Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3ptMTMgMHYxMWMwIDEuMS0uOSAyLTIgMkg0di0yaDE3VjdoMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBpdm90VGFibGVDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNWMwLTEuMS0uOS0yLTItMmgtOXY1aDExVjV6TTMgMTljMCAxLjEuOSAyIDIgMmgzVjEwSDN2OXpNMyA1djNoNVYzSDVjLTEuMSAwLTIgLjktMiAyem0xNSAzLjk5TDE0IDEzbDEuNDEgMS40MSAxLjU5LTEuNlYxNWMwIDEuMS0uOSAyLTIgMmgtMi4xN2wxLjU5LTEuNTlMMTMgMTRsLTQgNCA0IDQgMS40MS0xLjQxTDEyLjgzIDE5SDE1YzIuMjEgMCA0LTEuNzkgNC00di0yLjE4bDEuNTkgMS42TDIyIDEzbC00LTQuMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZWZyZXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy42NSA2LjM1QTcuOTU4IDcuOTU4IDAgMCAwIDEyIDRjLTQuNDIgMC03Ljk5IDMuNTgtNy45OSA4czMuNTcgOCA3Ljk5IDhjMy43MyAwIDYuODQtMi41NSA3LjczLTZoLTIuMDhBNS45OSA1Ljk5IDAgMCAxIDEyIDE4Yy0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02YzEuNjYgMCAzLjE0LjY5IDQuMjIgMS43OEwxMyAxMWg3VjRsLTIuMzUgMi4zNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNvdXRoRWFzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDloLTJ2Ni41OUw1LjQxIDQgNCA1LjQxIDE1LjU5IDE3SDl2MmgxMFY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU291dGhXZXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTl2LTJIOC40MUwyMCA1LjQxIDE4LjU5IDQgNyAxNS41OVY5SDV2MTBoMTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTb3V0aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5IDE1LTEuNDEtMS40MUwxMyAxOC4xN1YyaC0ydjE2LjE3bC00LjU5LTQuNTlMNSAxNWw3IDcgNy03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3ViZGlyZWN0b3J5QXJyb3dMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMSA5IDEuNDIgMS40Mkw4LjgzIDE0SDE4VjRoMnYxMkg4LjgzbDMuNTkgMy41OEwxMSAyMWwtNi02IDYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN1YmRpcmVjdG9yeUFycm93UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTI0IDI0SDBWMGgyNHYyNHpcIixcIm9wYWNpdHlcIjpcIi44N1wifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOSAxNS02IDYtMS40Mi0xLjQyTDE1LjE3IDE2SDRWNGgydjEwaDkuMTdsLTMuNTktMy41OEwxMyA5bDYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN3aXRjaExlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgOC42MnY2Ljc2TDUuMTIgMTIgOC41IDguNjJNMTAgNWwtNyA3IDcgN1Y1em00IDB2MTRsNy03LTctN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN3aXRjaFJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0yNCAyNEgwVjBoMjR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgMTUuMzhWOC42MkwxOC44OCAxMmwtMy4zOCAzLjM4TTE0IDE5bDctNy03LTd2MTR6bS00IDBWNWwtNyA3IDcgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVVuZm9sZExlc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTI0IDB2MjRIMFYwaDI0elwiLFwib3BhY2l0eVwiOlwiLjg3XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNDEgMTguNTkgOC44MyAyMCAxMiAxNi44MyAxNS4xNyAyMGwxLjQxLTEuNDFMMTIgMTRsLTQuNTkgNC41OXptOS4xOC0xMy4xOEwxNS4xNyA0IDEyIDcuMTcgOC44MyA0IDcuNDEgNS40MSAxMiAxMGw0LjU5LTQuNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVVbmZvbGRNb3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA1LjgzIDE1LjE3IDlsMS40MS0xLjQxTDEyIDMgNy40MSA3LjU5IDguODMgOSAxMiA1Ljgzem0wIDEyLjM0TDguODMgMTVsLTEuNDEgMS40MUwxMiAyMWw0LjU5LTQuNTlMMTUuMTcgMTUgMTIgMTguMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXYXRlcmZhbGxDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNGgzdjE2aC0zVjR6TTMgMTNoM3Y3SDN2LTd6bTExLTloM3YzaC0zVjR6bS00IDFoM3Y0aC0zVjV6bS0zIDVoM3Y0SDd2LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXZXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOSAxOSAxLjQxLTEuNDFMNS44MyAxM0gyMnYtMkg1LjgzbDQuNTktNC41OUw5IDVsLTcgNyA3IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBY2NvdW50VHJlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDExVjNoLTd2M0g5VjNIMnY4aDdWOGgydjEwaDR2M2g3di04aC03djNoLTJWOGgydjNoN3pNNyA5SDRWNWgzdjR6bTEwIDZoM3Y0aC0zdi00em0wLTEwaDN2NGgtM1Y1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE2YzAgMy44NyAzLjEzIDcgNyA3czctMy4xMyA3LTd2LTRINXY0ek0xNi4xMiA0LjM3bDIuMS0yLjEtLjgyLS44My0yLjMgMi4zMUMxNC4xNiAzLjI4IDEzLjEyIDMgMTIgM3MtMi4xNi4yOC0zLjA5Ljc1TDYuNiAxLjQ0bC0uODIuODMgMi4xIDIuMUM2LjE0IDUuNjQgNSA3LjY4IDUgMTB2MWgxNHYtMWMwLTIuMzItMS4xNC00LjM2LTIuODgtNS42M3pNOSA5Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTYgMGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWlybGluZVNlYXRGbGF0QW5nbGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDYuNWMuMzEgMCAuNy4xNS45LjU2LjI0LjUuMDIgMS4xLS40NyAxLjM0YS45NzkuOTc5IDAgMCAxLTEuMzItLjQ2Ljk4Ni45ODYgMCAwIDEgLjQ2LTEuMzRjLjE0LS4wNi4yOC0uMS40My0uMW02LjQ3IDIuMTEgNi42OSAyLjQxYy41Mi4xOS45My41NiAxLjE1IDEuMDUuMjIuNDguMjUgMS4wMy4wNiAxLjUzbC0uMDEuMDItOC41OS0zLjExLjctMS45TTEwIDE1LjE5bDQgMS40NFYxN2gtNHYtMS44MU02IDQuNWMtLjQ0IDAtLjg4LjEtMS4zLjNhMi45OSAyLjk5IDAgMCAwLTEuNCA0IDIuOTg4IDIuOTg4IDAgMCAwIDQgMS40IDMuMDEgMy4wMSAwIDAgMCAxLjQxLTRBMy4wMTMgMy4wMTMgMCAwIDAgNiA0LjV6bTUuMjggMS41NUw5LjIgMTEuNzFsMTIuMzYgNC40Ny42OS0xLjg5YTQgNCAwIDAgMC0yLjQxLTUuMTVsLTguNTYtMy4wOXptLTkuMDkgNC4yLS42OSAxLjg5TDggMTQuNDhWMTloOHYtMS42M0wyMC41MiAxOWwuNjktMS44OS0xOS4wMi02Ljg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWlybGluZVNlYXRGbGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDEzYTMgMyAwIDAgMCAyLjEtNS4xNEM2LjUxIDcuMjkgNS43NSA3IDUgN2EzIDMgMCAwIDAtMi4xIDUuMTRjLjU5LjU3IDEuMzUuODYgMi4xLjg2em0tLjcxLTMuN2ExIDEgMCAwIDEgMS40MS0uMDJjLjQuMzkuNCAxLjAxLjAyIDEuNDEtLjIuMi0uNDUuMzEtLjcyLjMxLS4yNiAwLS41MS0uMS0uNy0uMjgtLjQtLjQtLjQtMS4wMi0uMDEtMS40MnpNMTggN0g5djZoMTN2LTJjMC0yLjIxLTEuNzktNC00LTR6bS03IDRWOWg3YzEuMSAwIDIgLjkgMiAyaC05em0tOSA1aDZ2Mmg4di0yaDZ2LTJIMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFpcmxpbmVTZWF0SW5kaXZpZHVhbFN1aXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE0YzEuNjYgMCAzLTEuMzQgMy0zUzguNjYgOCA3IDhzLTMgMS4zNC0zIDMgMS4zNCAzIDMgM3ptMC00Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTEyLTNoLTh2OEgzVjdIMXYxMGgyMnYtNmMwLTIuMjEtMS43OS00LTQtNHptMiA4aC04VjloNmMxLjEgMCAyIC45IDIgMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWlybGluZVNlYXRMZWdyb29tRXh0cmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTJWM0gydjljMCAyLjc2IDIuMjQgNSA1IDVoNnYtMkg3Yy0xLjY2IDAtMy0xLjM0LTMtM3ptMTguODMgNS4yNGMtLjM4LS43Mi0xLjI5LS45Ny0yLjAzLS42M2wtMS4wOS41LTMuNDEtNi45OEEyLjAxOSAyLjAxOSAwIDAgMCAxNC41MSA5SDExVjNINXY4YzAgMS42NiAxLjM0IDMgMyAzaDdsMy40MSA3IDMuNzItMS43Yy43Ny0uMzYgMS4xLTEuMy43LTIuMDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBaXJsaW5lU2VhdExlZ3Jvb21Ob3JtYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTJWM0gzdjljMCAyLjc2IDIuMjQgNSA1IDVoNnYtMkg4Yy0xLjY2IDAtMy0xLjM0LTMtM3ptMTUuNSA2SDE5di03YzAtMS4xLS45LTItMi0yaC01VjNINnY4YzAgMS42NSAxLjM1IDMgMyAzaDd2N2g0LjVjLjgzIDAgMS41LS42NyAxLjUtMS41cy0uNjctMS41LTEuNS0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBaXJsaW5lU2VhdExlZ3Jvb21SZWR1Y2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS45NyAxOS4yYy4xOC45Ni0uNTUgMS44LTEuNDcgMS44SDE0di0zbDEtNEg5Yy0xLjY1IDAtMy0xLjM1LTMtM1YzaDZ2Nmg1YzEuMSAwIDIgLjkgMiAybC0yIDdoMS40NGMuNzMgMCAxLjM5LjQ5IDEuNTMgMS4yek01IDEyVjNIM3Y5YzAgMi43NiAyLjI0IDUgNSA1aDR2LTJIOGMtMS42NiAwLTMtMS4zNC0zLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBaXJsaW5lU2VhdFJlY2xpbmVFeHRyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS4zNSA1LjY0Yy0uOS0uNjQtMS4xMi0xLjg4LS40OS0yLjc5LjYzLS45IDEuODgtMS4xMiAyLjc5LS40OS45LjY0IDEuMTIgMS44OC40OSAyLjc5LS42NC45LTEuODggMS4xMi0yLjc5LjQ5ek0xNiAxOUg4LjkzYy0xLjQ4IDAtMi43NC0xLjA4LTIuOTYtMi41NEw0IDdIMmwxLjk5IDkuNzZBNS4wMSA1LjAxIDAgMCAwIDguOTQgMjFIMTZ2LTJ6bS4yMy00aC00Ljg4bC0xLjAzLTQuMWMxLjU4Ljg5IDMuMjggMS41NCA1LjE1IDEuMjJWOS45OWMtMS42My4zMS0zLjQ0LS4yNy00LjY5LTEuMjVMOS4xNCA3LjQ3Yy0uMjMtLjE4LS40OS0uMy0uNzYtLjM4YTIuMjEgMi4yMSAwIDAgMC0uOTktLjA2aC0uMDJhMi4yNjggMi4yNjggMCAwIDAtMS44NCAyLjYxbDEuMzUgNS45MkEzLjAwOCAzLjAwOCAwIDAgMCA5LjgzIDE4aDYuODVsMy44MiAzIDEuNS0xLjUtNS43Ny00LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBaXJsaW5lU2VhdFJlY2xpbmVOb3JtYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNTkgNS40MWMtLjc4LS43OC0uNzgtMi4wNSAwLTIuODNzMi4wNS0uNzggMi44MyAwIC43OCAyLjA1IDAgMi44M2MtLjc5Ljc5LTIuMDUuNzktMi44MyAwek02IDE2VjdINHY5YzAgMi43NiAyLjI0IDUgNSA1aDZ2LTJIOWMtMS42NiAwLTMtMS4zNC0zLTN6bTE0IDQuMDdMMTQuOTMgMTVIMTEuNXYtMy42OGMxLjQgMS4xNSAzLjYgMi4xNiA1LjUgMi4xNnYtMi4xNmMtMS42Ni4wMi0zLjYxLS44Ny00LjY3LTIuMDRsLTEuNC0xLjU1Yy0uMTktLjIxLS40My0uMzgtLjY5LS41LS4yOS0uMTQtLjYyLS4yMy0uOTYtLjIzaC0uMDNDOC4wMSA3IDcgOC4wMSA3IDkuMjVWMTVjMCAxLjY2IDEuMzQgMyAzIDNoNS4wN2wzLjUgMy41TDIwIDIwLjA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmx1ZXRvb3RoQXVkaW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0LjI0IDEyLjAxIDIuMzIgMi4zMmMuMjgtLjcyLjQ0LTEuNTEuNDQtMi4zM3MtLjE2LTEuNTktLjQzLTIuMzFsLTIuMzMgMi4zMnptNS4yOS01LjMtMS4yNiAxLjI2Yy42MyAxLjIxLjk4IDIuNTcuOTggNC4wMnMtLjM2IDIuODItLjk4IDQuMDJsMS4yIDEuMmE5LjkzNiA5LjkzNiAwIDAgMCAxLjU0LTUuMzFjLS4wMS0xLjg5LS41NS0zLjY3LTEuNDgtNS4xOXptLTMuODIgMUwxMCAySDl2Ny41OUw0LjQxIDUgMyA2LjQxIDguNTkgMTIgMyAxNy41OSA0LjQxIDE5IDkgMTQuNDFWMjJoMWw1LjcxLTUuNzEtNC4zLTQuMjkgNC4zLTQuMjl6TTExIDUuODNsMS44OCAxLjg4TDExIDkuNTlWNS44M3ptMS44OCAxMC40NkwxMSAxOC4xN3YtMy43NmwxLjg4IDEuODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb25maXJtYXRpb25OdW1iZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMFY2YTIgMiAwIDAgMC0yLTJINGMtMS4xIDAtMS45OS44OS0xLjk5IDJ2NGMxLjEgMCAxLjk5LjkgMS45OSAycy0uODkgMi0yIDJ2NGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0ydi00Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMnptLTItMS40NmMtMS4xOS42OS0yIDEuOTktMiAzLjQ2cy44MSAyLjc3IDIgMy40NlYxOEg0di0yLjU0YzEuMTktLjY5IDItMS45OSAyLTMuNDYgMC0xLjQ4LS44LTIuNzctMS45OS0zLjQ2TDQgNmgxNnYyLjU0ek0xMSAxNWgydjJoLTJ6bTAtNGgydjJoLTJ6bTAtNGgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaXJlY3Rpb25zT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuNzEgMTEuMjktOS05YS45OTYuOTk2IDAgMCAwLTEuNDEgMEw4LjIxIDUuMzhsMS40MSAxLjQxTDEyIDQuNDIgMTkuNTggMTJsLTIuMzggMi4zOCAxLjQxIDEuNDEgMy4wOS0zLjA5Yy40LS4zNy40LTEgLjAxLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDcuNXYyLjY3bDIuMTcgMi4xN0wxNi41IDExek0xLjM5IDQuMjJsMy45OSAzLjk5LTMuMDkgMy4wOWEuOTk2Ljk5NiAwIDAgMCAwIDEuNDFsOSA5Yy4zOS4zOSAxLjAyLjM5IDEuNDEgMGwzLjA5LTMuMDkgMy45OSAzLjk5IDEuNDEtMS40MUwyLjgxIDIuODEgMS4zOSA0LjIyem02LjY0IDYuNjNjLS4wMS4wNS0uMDQuMS0uMDQuMTV2NGgydi0yLjE4bDQuMzggNC4zOEwxMiAxOS41OCA0LjQyIDEyIDYuOCA5LjYybDEuMjMgMS4yM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURpc2NGdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA3aDJ2NWgtMnpNMTAgNGMtNC40MiAwLTggMy41OC04IDhzMy41OCA4IDggOCA4LTMuNTggOC04LTMuNTgtOC04LTh6bTAgMTRjLTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTYgNiAyLjY5IDYgNi0yLjY5IDYtNiA2em0xMC00aDJ2MmgtMnptLTEwLTRjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG9EaXN0dXJiQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjUgMiAyIDYuNSAyIDEyczQuNSAxMCAxMCAxMCAxMC00LjUgMTAtMTBTMTcuNSAyIDEyIDJ6TTQgMTJjMC00LjQgMy42LTggOC04IDEuOCAwIDMuNS42IDQuOSAxLjdMNS43IDE2LjlDNC42IDE1LjUgNCAxMy44IDQgMTJ6bTggOGMtMS44IDAtMy41LS42LTQuOS0xLjdMMTguMyA3LjFDMTkuNCA4LjUgMjAgMTAuMiAyMCAxMmMwIDQuNC0zLjYgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEb0Rpc3R1cmJPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRjNC40MSAwIDggMy41OSA4IDggMCAxLjQxLS4zNyAyLjczLTEuMDEgMy44OGwxLjQ2IDEuNDZBOS45NiA5Ljk2IDAgMCAwIDIyIDEyYzAtNS41Mi00LjQ4LTEwLTEwLTEwYTkuOSA5LjkgMCAwIDAtNS4zMyAxLjU1bDEuNDYgMS40NkE3Ljg4MyA3Ljg4MyAwIDAgMSAxMiA0em01IDdoLTIuODhsMiAySDE3ek0yLjQxIDIuMTMgMSAzLjU0bDIuNzggMi43OEE5LjkyIDkuOTIgMCAwIDAgMiAxMmMwIDUuNTIgNC40OCAxMCAxMCAxMCAyLjExIDAgNC4wNy0uNjYgNS42OC0xLjc4TDIwLjQ2IDIzbDEuNDEtMS40MUwyLjQxIDIuMTN6TTEyIDIwYy00LjQxIDAtOC0zLjU5LTgtOCAwLTEuNTYuNDUtMyAxLjIzLTQuMjNMOC40NiAxMUg3djJoMy40Nmw1Ljc3IDUuNzdBNy44NDYgNy44NDYgMCAwIDEgMTIgMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEb0Rpc3R1cmJPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bS01LTloMTB2Mkg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG9EaXN0dXJiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQyIDAtOC0zLjU4LTgtOCAwLTEuODUuNjMtMy41NSAxLjY5LTQuOUwxNi45IDE4LjMxQTcuOTAyIDcuOTAyIDAgMCAxIDEyIDIwem02LjMxLTMuMUw3LjEgNS42OUE3LjkwMiA3LjkwMiAwIDAgMSAxMiA0YzQuNDIgMCA4IDMuNTggOCA4IDAgMS44NS0uNjMgMy41NS0xLjY5IDQuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvTm90RGlzdHVyYkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi41IDIgMiA2LjUgMiAxMnM0LjUgMTAgMTAgMTAgMTAtNC41IDEwLTEwUzE3LjUgMiAxMiAyek00IDEyYzAtNC40IDMuNi04IDgtOCAxLjggMCAzLjUuNiA0LjkgMS43TDUuNyAxNi45QzQuNiAxNS41IDQgMTMuOCA0IDEyem04IDhjLTEuOCAwLTMuNS0uNi00LjktMS43TDE4LjMgNy4xQzE5LjQgOC41IDIwIDEwLjIgMjAgMTJjMCA0LjQtMy42IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG9Ob3REaXN0dXJiT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy45NCA1LjEyQzkuMTQgNC40MSAxMC41MiA0IDEyIDRjNC40MSAwIDggMy41OSA4IDggMCAxLjQ4LS40MSAyLjg2LTEuMTIgNC4wNmwxLjQ2IDEuNDZBOS45NjcgOS45NjcgMCAwIDAgMjIgMTJjMC01LjUyLTQuNDgtMTAtMTAtMTAtMi4wNCAwLTMuOTMuNjEtNS41MSAxLjY2bDEuNDUgMS40NnpNMi44MSAyLjgxIDEuMzkgNC4yMmwyLjI3IDIuMjdBOS45MSA5LjkxIDAgMCAwIDIgMTJjMCA1LjUyIDQuNDggMTAgMTAgMTAgMi4wNCAwIDMuOTMtLjYxIDUuNTEtMS42NmwyLjI3IDIuMjcgMS40MS0xLjQxTDIuODEgMi44MXpNMTIgMjBjLTQuNDEgMC04LTMuNTktOC04IDAtMS40OC40MS0yLjg2IDEuMTItNC4wNkw4LjE3IDExSDd2MmgzLjE3bDUuODggNS44OEE3Ljg2OSA3Ljg2OSAwIDAgMSAxMiAyMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMuODMgMTEgMiAySDE3di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG9Ob3REaXN0dXJiT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDExdjJoMTB2LTJIN3ptNS05QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvTm90RGlzdHVyYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04IDAtMS44NS42My0zLjU1IDEuNjktNC45TDE2LjkgMTguMzFBNy45MDIgNy45MDIgMCAwIDEgMTIgMjB6bTYuMzEtMy4xTDcuMSA1LjY5QTcuOTAyIDcuOTAyIDAgMCAxIDEyIDRjNC40MiAwIDggMy41OCA4IDggMCAxLjg1LS42MyAzLjU1LTEuNjkgNC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRHJpdmVFdGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjkyIDUuMDFDMTguNzIgNC40MiAxOC4xNiA0IDE3LjUgNGgtMTFjLS42NiAwLTEuMjEuNDItMS40MiAxLjAxTDMgMTF2OGMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWgxMnYxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi04bC0yLjA4LTUuOTl6TTYuODUgNmgxMC4yOWwxLjA0IDNINS44MWwxLjA0LTN6TTE5IDE2SDV2LTQuNjZsLjEyLS4zNGgxMy43N2wuMTEuMzRWMTZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNy41XCIsXCJjeVwiOlwiMTMuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTYuNVwiLFwiY3lcIjpcIjEzLjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRW5oYW5jZWRFbmNyeXB0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA4aC0xVjZjMC0yLjc2LTIuMjQtNS01LTVTNyAzLjI0IDcgNnYySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWMTBjMC0xLjEtLjktMi0yLTJ6TTguOSA2YzAtMS43MSAxLjM5LTMuMSAzLjEtMy4xIDEuNzEgMCAzLjEgMS4zOSAzLjEgMy4xdjJIOC45VjZ6TTE4IDIwSDZWMTBoMTJ2MTB6bS01LTloLTJ2M0g4djJoM3YzaDJ2LTNoM3YtMmgtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUV2ZW50QXZhaWxhYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzaC0xVjFoLTJ2Mkg4VjFINnYySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjloMTR2MTB6TTUgN1Y1aDE0djJINXptNS41NiAxMC40NiA1LjkzLTUuOTMtMS4wNi0xLjA2LTQuODcgNC44Ny0yLjExLTIuMTEtMS4wNiAxLjA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRXZlbnRCdXN5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzaC0xVjFoLTJ2Mkg4VjFINnYySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjloMTR2MTB6TTUgN1Y1aDE0djJINXptMy4yMyA5LjQxIDEuMDYgMS4wNiAyLjQ0LTIuNDQgMi40NCAyLjQ0IDEuMDYtMS4wNi0yLjQ0LTIuNDQgMi40NC0yLjQ0LTEuMDYtMS4wNi0yLjQ0IDIuNDQtMi40NC0yLjQ0LTEuMDYgMS4wNiAyLjQ0IDIuNDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFdmVudE5vdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNoLTFWMWgtMnYySDhWMUg2djJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWOWgxNHYxMHpNNSA3VjVoMTR2Mkg1em0yIDRoMTB2Mkg3em0wIDRoN3YySDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb2xkZXJTcGVjaWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC04bC0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0wIDEySDRWNmg1LjE3bDIgMkgyMHYxMHptLTYuOTItMy45NkwxMi4zOSAxNyAxNSAxNS40NyAxNy42MSAxN2wtLjY5LTIuOTYgMi4zLTEuOTktMy4wMy0uMjZMMTUgOWwtMS4xOSAyLjc5LTMuMDMuMjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbWFnZXNlYXJjaFJvbGxlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDdWM2MwLS41NS0uNDUtMS0xLTFIN2MtLjU1IDAtMSAuNDUtMSAxdjFINGMtMS4xIDAtMiAuOS0yIDJ2NGMwIDEuMS45IDIgMiAyaDh2M2gtMWMtLjU1IDAtMSAuNDUtMSAxdjZjMCAuNTUuNDUgMSAxIDFoNGMuNTUgMCAxLS40NSAxLTF2LTZjMC0uNTUtLjQ1LTEtMS0xaC0xdi0zYzAtMS4xLS45LTItMi0ySDRWNmgydjFjMCAuNTUuNDUgMSAxIDFoMTJjLjU1IDAgMS0uNDUgMS0xek04IDRoMTB2Mkg4VjR6bTYgMTdoLTJ2LTRoMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGl2ZVR2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDEwdjhsNy00em0xMi00aC03LjU4bDMuMjktMy4yOUwxNiAybC00IDRoLS4wM2wtNC00LS42OS43MUwxMC41NiA2SDNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptMCAxNEgzVjhoMTh2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNbXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MThsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTRINS4xN0w0IDE3LjE3VjRoMTZ2MTJ6bS01LjUtOEwxMSAxMi41MSA4LjUgOS41IDUgMTRoMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAzSDdjLS42OSAwLTEuMjMuMzUtMS41OS44OEwwIDEybDUuNDEgOC4xMWMuMzYuNTMuOTcuODkgMS42Ni44OUgyMmMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDcuMDdMMi40IDEybDQuNjYtN0gyMnYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE0XCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE5XCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmV0d29ya0NoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS45IDVjLS4xNyAwLS4zMi4wOS0uNDEuMjNsLS4wNy4xNS01LjE4IDExLjY1Yy0uMTYuMjktLjI2LjYxLS4yNi45NiAwIDEuMTEuOSAyLjAxIDIuMDEgMi4wMS45NiAwIDEuNzctLjY4IDEuOTYtMS41OWwuMDEtLjAzTDE2LjQgNS41YzAtLjI4LS4yMi0uNS0uNS0uNXpNMSA5bDIgMmMyLjg4LTIuODggNi43OS00LjA4IDEwLjUzLTMuNjJsMS4xOS0yLjY4QzkuODkgMy44NCA0Ljc0IDUuMjcgMSA5em0yMCAyIDItMmExNS4zNjcgMTUuMzY3IDAgMCAwLTUuNTktMy41N2wtLjUzIDIuODJjMS41LjYyIDIuOSAxLjUzIDQuMTIgMi43NXptLTQgNCAyLTJjLS44LS44LTEuNy0xLjQyLTIuNjYtMS44OWwtLjU1IDIuOTJjLjQyLjI3LjgzLjU5IDEuMjEuOTd6TTUgMTNsMiAyYTcuMSA3LjEgMCAwIDEgNC4wMy0ybDEuMjgtMi44OGMtMi42My0uMDgtNS4zLjg3LTcuMzEgMi44OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5ldHdvcmtMb2NrZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDE2di0uNWEyLjUgMi41IDAgMCAwLTUgMHYuNWMtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDFoNWMuNTUgMCAxLS40NSAxLTF2LTRjMC0uNTUtLjQ1LTEtMS0xem0tMSAwaC0zdi0uNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNXYuNXpNMTggNS44M3Y1LjQzYy40Ny0uMTYuOTctLjI2IDEuNS0uMjYuMTcgMCAuMzMuMDMuNS4wNVYxTDEgMjBoMTN2LTJINS44M0wxOCA1LjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm9FbmNyeXB0aW9uR21haWxlcnJvcnJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC45IDZjMC0xLjcxIDEuMzktMy4xIDMuMS0zLjFzMy4xIDEuMzkgMy4xIDMuMXYyaC00LjY2bDIgMkgxOHY1LjU2bDIgMlYxMGMwLTEuMS0uOS0yLTItMmgtMVY2YzAtMi43Ni0yLjI0LTUtNS01LTIuMzIgMC00LjI2IDEuNTktNC44MiAzLjc0TDguOSA2LjQ2VjZ6TTQuNDEgNC44MSAzIDYuMjJsMi4wNCAyLjA0QzQuNDIgOC42IDQgOS4yNSA0IDEwdjEwYzAgMS4xLjkgMiAyIDJoMTIuNzhsMSAxIDEuNDEtMS40MUw0LjQxIDQuODF6TTYgMjBWMTBoLjc4bDEwIDEwSDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb0VuY3J5cHRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguOSA2YzAtMS43MSAxLjM5LTMuMSAzLjEtMy4xczMuMSAxLjM5IDMuMSAzLjF2MmgtNC42NmwyIDJIMTh2NS41NmwyIDJWMTBjMC0xLjEtLjktMi0yLTJoLTFWNmMwLTIuNzYtMi4yNC01LTUtNS0yLjMyIDAtNC4yNiAxLjU5LTQuODIgMy43NEw4LjkgNi40NlY2ek00LjQxIDQuODEgMyA2LjIybDIuMDQgMi4wNEM0LjQyIDguNiA0IDkuMjUgNCAxMHYxMGMwIDEuMS45IDIgMiAyaDEyLjc4bDEgMSAxLjQxLTEuNDFMNC40MSA0Ljgxek02IDIwVjEwaC43OGwxMCAxMEg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lT25kZW1hbmRWaWRlbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA3djhsNy00em0xMi00SDNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoNXYyaDh2LTJoNWMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE0SDNWNWgxOHYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlcnNvbmFsVmlkZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xMSAwLTIgLjg5LTIgMnYxMmEyIDIgMCAwIDAgMiAyaDV2Mmg4di0yaDVjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjMgNWEyIDIgMCAwIDAtMi0yem0wIDE0SDNWNWgxOHYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBob25lQmx1ZXRvb3RoU3BlYWtlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTUuNWMtMS4yNSAwLTIuNDUtLjItMy41Ny0uNTctLjEtLjAzLS4yMS0uMDUtLjMxLS4wNS0uMjYgMC0uNTEuMS0uNzEuMjlsLTIuMiAyLjJhMTUuMDQ1IDE1LjA0NSAwIDAgMS02LjU5LTYuNTlsMi4yLTIuMjFhLjk2Ljk2IDAgMCAwIC4yNS0xQTExLjM2IDExLjM2IDAgMCAxIDguNSA0YzAtLjU1LS40NS0xLTEtMUg0Yy0uNTUgMC0xIC40NS0xIDEgMCA5LjM5IDcuNjEgMTcgMTcgMTcgLjU1IDAgMS0uNDUgMS0xdi0zLjVjMC0uNTUtLjQ1LTEtMS0xek01LjAzIDVoMS41Yy4wNy44OC4yMiAxLjc1LjQ1IDIuNThsLTEuMiAxLjIxYy0uNC0xLjIxLS42Ni0yLjQ3LS43NS0zLjc5ek0xOSAxOC45N2MtMS4zMi0uMDktMi42LS4zNS0zLjgtLjc2bDEuMi0xLjJjLjg1LjI0IDEuNzIuMzkgMi42LjQ1djEuNTF6TTE0LjcxIDkuNSAxNyA3LjIxVjExaC41bDIuODUtMi44NUwxOC4yMSA2bDIuMTUtMi4xNUwxNy41IDFIMTd2My43OUwxNC43MSAyLjVsLS43MS43MUwxNi43OSA2IDE0IDguNzlsLjcxLjcxek0xOCAyLjkxbC45NC45NC0uOTQuOTRWMi45MXptMCA0LjMuOTQuOTQtLjk0Ljk0VjcuMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaG9uZUNhbGxiYWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxNS41MWMtMS4yNCAwLTIuNDUtLjItMy41Ny0uNTdhLjg0Ljg0IDAgMCAwLS4zMS0uMDVjLS4yNiAwLS41MS4xLS43MS4yOWwtMi4yIDIuMmExNS4xNDkgMTUuMTQ5IDAgMCAxLTYuNTktNi41OWwyLjItMi4yYy4yOC0uMjguMzYtLjY3LjI1LTEuMDJBMTEuMzYgMTEuMzYgMCAwIDEgOC41IDRjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNDljMC0uNTUtLjQ1LTEtMS0xek01LjAzIDVoMS41YTEzIDEzIDAgMCAwIC40NiAyLjU5bC0xLjIgMS4yYy0uNDEtMS4yLS42Ny0yLjQ3LS43Ni0zLjc5ek0xOSAxOC45N2MtMS4zMi0uMDktMi41OS0uMzUtMy44LS43NWwxLjE5LTEuMTljLjg1LjI0IDEuNzIuMzkgMi42LjQ1djEuNDl6TTE4IDloLTIuNTlsNS4wMi01LjAyLTEuNDEtMS40MUwxNCA3LjU5VjVoLTJ2Nmg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvbmVGb3J3YXJkZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE1LjVjLTEuMjUgMC0yLjQ1LS4yLTMuNTctLjU3LS4xLS4wMy0uMjEtLjA1LS4zMS0uMDUtLjI2IDAtLjUxLjEtLjcxLjI5bC0yLjIgMi4yYTE1LjA0NSAxNS4wNDUgMCAwIDEtNi41OS02LjU5bDIuMi0yLjIxYS45Ni45NiAwIDAgMCAuMjUtMUExMS4zNiAxMS4zNiAwIDAgMSA4LjUgNGMwLS41NS0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxIDAgOS4zOSA3LjYxIDE3IDE3IDE3IC41NSAwIDEtLjQ1IDEtMXYtMy41YzAtLjU1LS40NS0xLTEtMXpNNS4wMyA1aDEuNWMuMDcuODguMjIgMS43NS40NSAyLjU4bC0xLjIgMS4yMWMtLjQtMS4yMS0uNjYtMi40Ny0uNzUtMy43OXpNMTkgMTguOTdjLTEuMzItLjA5LTIuNi0uMzUtMy44LS43NmwxLjItMS4yYy44NS4yNCAxLjcyLjM5IDIuNi40NXYxLjUxek0xOCAxMWw1LTUtNS01djNoLTR2NGg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvbmVJblRhbGsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDEyaDJjMC0yLjc2LTIuMjQtNS01LTV2MmMxLjY2IDAgMyAxLjM0IDMgM3ptNCAwaDJhOSA5IDAgMCAwLTktOXYyYzMuODcgMCA3IDMuMTMgNyA3em0xIDMuNWMtMS4yNSAwLTIuNDUtLjItMy41Ny0uNTctLjEtLjAzLS4yMS0uMDUtLjMxLS4wNS0uMjYgMC0uNTEuMS0uNzEuMjlsLTIuMiAyLjJhMTUuMDQ1IDE1LjA0NSAwIDAgMS02LjU5LTYuNTlsMi4yLTIuMjFhLjk2Ljk2IDAgMCAwIC4yNS0xQTExLjM2IDExLjM2IDAgMCAxIDguNSA0YzAtLjU1LS40NS0xLTEtMUg0Yy0uNTUgMC0xIC40NS0xIDEgMCA5LjM5IDcuNjEgMTcgMTcgMTcgLjU1IDAgMS0uNDUgMS0xdi0zLjVjMC0uNTUtLjQ1LTEtMS0xek01LjAzIDVoMS41Yy4wNy44OC4yMiAxLjc1LjQ1IDIuNThsLTEuMiAxLjIxYy0uNC0xLjIxLS42Ni0yLjQ3LS43NS0zLjc5ek0xOSAxOC45N2MtMS4zMi0uMDktMi42LS4zNS0zLjgtLjc2bDEuMi0xLjJjLjg1LjI0IDEuNzIuMzkgMi42LjQ1djEuNTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaG9uZUxvY2tlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDVWNGMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDJ2MWgtMXY1aDZWNWgtMXptLTEgMGgtMlY0YzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXYxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMC4yIDE0Ljg3LTMuNjctLjczYy0uNS0uMS0uODMuMi0uOS4yN2wtMi41MiAyLjVjLTIuNS0xLjQzLTQuNTctMy41LTYtNmwyLjUtMi41MmMuMjMtLjI0LjMzLS41Ny4yNy0uOUw5LjEzIDMuOGMtLjA5LS40Ni0uNS0uOC0uOTgtLjhINGMtLjU2IDAtMS4wMy40Ny0xIDEuMDMuMTcgMi44OSAxLjA1IDUuNiAyLjQzIDcuOTcgMS41OCAyLjczIDMuODUgNC45OSA2LjU3IDYuNTcgMi4zNyAxLjM3IDUuMDggMi4yNiA3Ljk3IDIuNDMuNTUuMDMgMS4wMy0uNDMgMS4wMy0xdi00LjE1YzAtLjQ4LS4zNC0uODktLjgtLjk4ek01LjEgNWgyLjIzbC40NyAyLjM1TDYuMTcgOWMtLjU0LTEuMy0uOS0yLjYzLTEuMDctNHpNMTkgMTguOWMtMS4zNy0uMTgtMi43LS41My00LTEuMDdsMS42NS0xLjYzIDIuMzUuNDd2Mi4yM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBob25lTWlzc2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMy43MSAxNi42N0MyMC42NiAxMy43OCAxNi41NCAxMiAxMiAxMlMzLjM0IDEzLjc4LjI5IDE2LjY3Yy0uMTguMTgtLjI5LjQzLS4yOS43MSAwIC4yOC4xMS41My4yOS43MWwyLjQ4IDIuNDhjLjE4LjE4LjQzLjI5LjcxLjI5LjI3IDAgLjUyLS4xMS43LS4yOC43OS0uNzQgMS42OS0xLjM2IDIuNjYtMS44NS4zMy0uMTYuNTYtLjUuNTYtLjl2LTMuMWMxLjQ1LS40OCAzLS43MyA0LjYtLjczczMuMTUuMjUgNC42LjcydjMuMWMwIC4zOS4yMy43NC41Ni45Ljk4LjQ5IDEuODcgMS4xMiAyLjY3IDEuODUuMTguMTguNDMuMjguNy4yOC4yOCAwIC41My0uMTEuNzEtLjI5bDIuNDgtMi40OGMuMTgtLjE4LjI5LS40My4yOS0uNzEgMC0uMjgtLjEyLS41Mi0uMy0uN3ptLTE4LjMxLjU2Yy0uNjYuMzctMS4yOS44LTEuODcgMS4yN2wtMS4wNy0xLjA3Yy45MS0uNzUgMS45LTEuMzkgMi45NS0xLjl2MS43em0xNS4wOCAxLjI2Yy0uNi0uNDgtMS4yMi0uOS0xLjg4LTEuMjd2LTEuN2MxLjA1LjUxIDIuMDMgMS4xNSAyLjk1IDEuOWwtMS4wNyAxLjA3ek03IDYuNDNsNC45NCA0Ljk0IDcuMDctNy4wNy0xLjQxLTEuNDItNS42NiA1LjY2TDguNCA1SDExVjNINXY2aDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaG9uZVBhdXNlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41NCA1Yy4wNi44OC4yMSAxLjc1LjQ0IDIuNThsLTEuMiAxLjIxYy0uNC0xLjIxLS42Ni0yLjQ3LS43NS0zLjc5aDEuNTFtOS44NiAxMi4wMWMuODUuMjQgMS43Mi4zOSAyLjYuNDV2MS41Yy0xLjMyLS4wOS0yLjYtLjM1LTMuOC0uNzZsMS4yLTEuMTlNNy41IDNINGMtLjU1IDAtMSAuNDUtMSAxIDAgOS4zOSA3LjYxIDE3IDE3IDE3IC41NSAwIDEtLjQ1IDEtMXYtMy41YzAtLjU1LS40NS0xLTEtMS0xLjI1IDAtMi40NS0uMi0zLjU3LS41Ny0uMS0uMDMtLjIxLS4wNS0uMzEtLjA1LS4yNiAwLS41MS4xLS43MS4yOWwtMi4yIDIuMmExNS4wNDUgMTUuMDQ1IDAgMCAxLTYuNTktNi41OWwyLjItMi4yMWEuOTYuOTYgMCAwIDAgLjI1LTFBMTEuMzYgMTEuMzYgMCAwIDEgOC41IDRjMC0uNTUtLjQ1LTEtMS0xek0xNSAzaDJ2N2gtMnptNCAwaDJ2N2gtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBvd2VyT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAzSDh2MS44OGwyIDJ6bTYgNnYzLjg4bDEuOCAxLjguMi0uMlY5YzAtMS4xLS45LTItMi0yVjNoLTJ2NGgtMy44OGwyIDJIMTZ6TTQuMTIgMy44NCAyLjcxIDUuMjUgNiA4LjU0djUuOTZMOS41IDE4djNoNXYtM2wuNDgtLjQ4IDQuNDcgNC40NyAxLjQxLTEuNDFMNC4xMiAzLjg0em04LjM4IDEzLjMzVjE5aC0xdi0xLjgzTDggMTMuNjV2LTMuMTFsNS41NyA1LjU3LTEuMDcgMS4wNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBvd2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA5djQuNjZsLTMuNSAzLjUxVjE5aC0xdi0xLjgzTDggMTMuNjVWOWg4bTAtNmgtMnY0aC00VjNIOHY0aC0uMDFDNi45IDYuOTkgNiA3Ljg5IDYgOC45OHY1LjUyTDkuNSAxOHYzaDV2LTNsMy41LTMuNTFWOWMwLTEuMS0uOS0yLTItMlYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUHJpb3JpdHlIaWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTlcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgM2g0djEyaC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUnVubmluZ1dpdGhFcnJvcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMHY4aC0ydi04aDJ6bS0yIDEwdjJoMnYtMmgtMnptLTItMi43MUE3Ljk5IDcuOTkgMCAwIDEgMTIgMjBjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTh2OWw3LjU1LTcuNTVBOS45NjUgOS45NjUgMCAwIDAgMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMGMyLjI1IDAgNC4zMy0uNzQgNi0ydi0yLjcxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2RDYXJkQWxlcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDJoLThMNC4wMiA4IDQgMjBjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE4SDZWOC44M0wxMC44MyA0SDE4djE2em0tNy01aDJ2MmgtMnptMC03aDJ2NWgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNkQ2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMmgtOEw0IDh2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE4SDZWOC44M0wxMC44MyA0SDE4djE2ek05IDdoMnY0SDl6bTMgMGgydjRoLTJ6bTMgMGgydjRoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaW1DYXJkQWxlcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAyaC04TDQuMDIgOCA0IDIwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxOEg2VjguODNMMTAuODMgNEgxOHYxNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTVoMnYyaC0yek0xMSA4aDJ2NWgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNtc0ZhaWxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxOGw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNEg1LjE3TDQgMTcuMTdWNGgxNnYxMnptLTktNGgydjJoLTJ6bTAtNmgydjRoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTbXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MThsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTRINS4xN0w0IDE3LjE3VjRoMTZ2MTJ6TTcgOWgydjJIN3ptOCAwaDJ2MmgtMnptLTQgMGgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdXBwb3J0QWdlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMi4yMkMyMSA2LjczIDE2Ljc0IDMgMTIgM2MtNC42OSAwLTkgMy42NS05IDkuMjgtLjYuMzQtMSAuOTgtMSAxLjcydjJjMCAxLjEuOSAyIDIgMmgxdi02LjFjMC0zLjg3IDMuMTMtNyA3LTdzNyAzLjEzIDcgN1YxOWgtOHYyaDhjMS4xIDAgMi0uOSAyLTJ2LTEuMjJjLjU5LS4zMSAxLS45MiAxLTEuNjR2LTIuM2MwLS43LS40MS0xLjMxLTEtMS42MnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDExLjAzQTYuMDQgNi4wNCAwIDAgMCAxMi4wNSA2Yy0zLjAzIDAtNi4yOSAyLjUxLTYuMDMgNi40NWE4LjA3NSA4LjA3NSAwIDAgMCA0Ljg2LTUuODljMS4zMSAyLjYzIDQgNC40NCA3LjEyIDQuNDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTeW5jRGlzYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDYuMzVWNC4yNmMtLjY2LjE3LTEuMjkuNDMtMS44OC43NWwxLjUgMS41Yy4xMy0uMDUuMjUtLjExLjM4LS4xNnpNMjAgMTJjMC0yLjIxLS45MS00LjItMi4zNi01LjY0TDIwIDRoLTZ2NmwyLjI0LTIuMjRBNi4wMDMgNi4wMDMgMCAwIDEgMTggMTJjMCAuODUtLjE5IDEuNjUtLjUxIDIuMzhsMS41IDEuNUE3LjkyMSA3LjkyMSAwIDAgMCAyMCAxMnpNNC4yNyA0IDIuODYgNS40MWwyLjM2IDIuMzZhNy45MjUgNy45MjUgMCAwIDAgMS4xNCA5Ljg3TDQgMjBoNnYtNmwtMi4yNCAyLjI0QTYuMDAzIDYuMDAzIDAgMCAxIDYgMTJjMC0xIC4yNS0xLjk0LjY4LTIuNzdsOC4wOCA4LjA4Yy0uMjUuMTMtLjUuMjQtLjc2LjM0djIuMDljLjgtLjIxIDEuNTUtLjU0IDIuMjMtLjk2bDIuNTggMi41OCAxLjQxLTEuNDFMNC4yNyA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3luY0xvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA0LjI2djIuMDlDNy42NyA3LjE4IDYgOS4zOSA2IDEyYzAgMS43Ny43OCAzLjM0IDIgNC40NFYxNGgydjZINHYtMmgyLjczQTcuOTQyIDcuOTQyIDAgMCAxIDQgMTJjMC0zLjczIDIuNTUtNi44NSA2LTcuNzR6TTIwIDRoLTZ2NmgyVjcuNTZjMS4yMiAxLjEgMiAyLjY3IDIgNC40NGgyYzAtMi40LTEuMDYtNC41NC0yLjczLTZIMjBWNHptMCAxM3YtMWMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDJ2MWMtLjU1IDAtMSAuNDUtMSAxdjNjMCAuNTUuNDUgMSAxIDFoNGMuNTUgMCAxLS40NSAxLTF2LTNjMC0uNTUtLjQ1LTEtMS0xem0tMSAwaC0ydi0xYzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3luY1Byb2JsZW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTJjMCAyLjIxLjkxIDQuMiAyLjM2IDUuNjRMMyAyMGg2di02bC0yLjI0IDIuMjRBNi4wMDMgNi4wMDMgMCAwIDEgNSAxMmE1Ljk5IDUuOTkgMCAwIDEgNC01LjY1VjQuMjZDNS41NSA1LjE1IDMgOC4yNyAzIDEyem04IDVoMnYtMmgtMnYyek0yMSA0aC02djZsMi4yNC0yLjI0QTYuMDAzIDYuMDAzIDAgMCAxIDE5IDEyYTUuOTkgNS45OSAwIDAgMS00IDUuNjV2Mi4wOWMzLjQ1LS44OSA2LTQuMDEgNi03Ljc0IDAtMi4yMS0uOTEtNC4yLTIuMzYtNS42NEwyMSA0em0tMTAgOWgyVjdoLTJ2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN5bmMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTS4wMSAwaDI0djI0aC0yNFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0VjFMOCA1bDQgNFY2YzMuMzEgMCA2IDIuNjkgNiA2IDAgMS4wMS0uMjUgMS45Ny0uNyAyLjhsMS40NiAxLjQ2QTcuOTMgNy45MyAwIDAgMCAyMCAxMmMwLTQuNDItMy41OC04LTgtOHptMCAxNGMtMy4zMSAwLTYtMi42OS02LTYgMC0xLjAxLjI1LTEuOTcuNy0yLjhMNS4yNCA3Ljc0QTcuOTMgNy45MyAwIDAgMCA0IDEyYzAgNC40MiAzLjU4IDggOCA4djNsNC00LTQtNHYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3lzdGVtVXBkYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxLjAxIDcgMWMtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNyAxOUg3VjVoMTB2MTR6bS0xLTZoLTNWOGgtMnY1SDhsNCA0IDQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRhcEFuZFBsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTZ2MmMyLjc2IDAgNSAyLjI0IDUgNWgyYzAtMy44Ny0zLjEzLTctNy03em0wIDR2M2gzYzAtMS42Ni0xLjM0LTMtMy0zem0wLTh2MmE5IDkgMCAwIDEgOSA5aDJjMC02LjA4LTQuOTItMTEtMTEtMTF6TTE3IDEuMDEgNyAxYy0xLjEgMC0yIC45LTIgMnY3LjM3Yy42OS4xNiAxLjM2LjM3IDIgLjY0VjVoMTB2MTNoLTMuMDNjLjUyIDEuMjUuODQgMi41OS45NSA0SDE3YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMS45OS0yLTEuOTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUaW1lVG9MZWF2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguOTIgNS4wMUMxOC43MiA0LjQyIDE4LjE2IDQgMTcuNSA0aC0xMWMtLjY2IDAtMS4yMS40Mi0xLjQyIDEuMDFMMyAxMXY4YzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaDEydjFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LThsLTIuMDgtNS45OXpNNi44NSA2aDEwLjI5bDEuMDQgM0g1LjgxbDEuMDQtM3pNMTkgMTZINXYtNC42NmwuMTItLjM0aDEzLjc3bC4xMS4zNFYxNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI3LjVcIixcImN5XCI6XCIxMy41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNi41XCIsXCJjeVwiOlwiMTMuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUdk9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgN3YxMC44OGwxLjg1IDEuODVjLjA5LS4yMy4xNS0uNDcuMTUtLjczVjdjMC0xLjExLS44OS0yLTItMmgtNy41OGwzLjI5LTMuM0wxNiAxbC00IDQtNC00LS43LjdMMTAuNTggNUg4LjEybDIgMkgyMXptLS41NCAxNiAxLjI2LTEuMjctMS4yNiAxLjI2ek0yLjQxIDIuMTNsLS4xNC4xNEwxIDMuNTRsMS41MyAxLjUzQzEuNjUgNS4yOCAxIDYuMDYgMSA3djEyYzAgMS4xLjkgMiAyIDJoMTUuNDZsMS45OSAxLjk5IDEuMjYtMS4yNi4xNS0uMTVMMi40MSAyLjEzek0zIDE5VjdoMS40NmwxMiAxMkgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlicmF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDE1aDJWOUgwdjZ6bTMgMmgyVjdIM3YxMHptMTktOHY2aDJWOWgtMnptLTMgOGgyVjdoLTJ2MTB6TTE2LjUgM2gtOUM2LjY3IDMgNiAzLjY3IDYgNC41djE1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41di0xNWMwLS44My0uNjctMS41LTEuNS0xLjV6TTE2IDE5SDhWNWg4djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlkZW9DaGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTRINS4xN0w0IDE3LjE3VjRoMTZ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTRoNmMuNTUgMCAxLS40NSAxLTF2LTEuOTlMMTcgMTNWN2wtMiAxLjk5VjdjMC0uNTUtLjQ1LTEtMS0xSDhjLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVm9pY2VDaGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAyMmw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNEg1LjE3TDQgMTcuMTdWNGgxNnYxMnptLTYtNS40IDMgMi40VjdsLTMgMi40VjdIN3Y2aDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWcG5Mb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC45MiAxMmMuMDQuMzMuMDguNjYuMDggMSAwIDIuMDgtLjggMy45Ny0yLjEgNS4zOS0uMjYtLjgxLTEtMS4zOS0xLjktMS4zOWgtMXYtM2MwLS41NS0uNDUtMS0xLTFIN3YtMmgyYy41NSAwIDEtLjQ1IDEtMVY4aDJjMS4xIDAgMi0uOSAyLTJWMy40NmMtLjk1LS4zLTEuOTUtLjQ2LTMtLjQ2QzUuNDggMyAxIDcuNDggMSAxM3M0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBjMC0uMzQtLjAyLS42Ny0uMDUtMWgtMi4wM3pNMTAgMjAuOTNjLTMuOTUtLjQ5LTctMy44NS03LTcuOTMgMC0uNjIuMDgtMS4yMS4yMS0xLjc5TDggMTZ2MWMwIDEuMS45IDIgMiAydjEuOTN6TTIyIDR2LS41YTIuNSAyLjUgMCAwIDAtNSAwVjRjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxaDVjLjU1IDAgMS0uNDUgMS0xVjVjMC0uNTUtLjQ1LTEtMS0xem0tMSAwaC0zdi0uNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNVY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTS4wMSAwaDI0djI0aC0yNFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUgMjJ2LTcuNUg0VjljMC0xLjEuOS0yIDItMmgzYzEuMSAwIDIgLjkgMiAydjUuNUg5LjVWMjJoLTR6TTE4IDIydi02aDNsLTIuNTQtNy42M0EyLjAxIDIuMDEgMCAwIDAgMTYuNTYgN2gtLjEyYTIgMiAwIDAgMC0xLjkgMS4zN0wxMiAxNmgzdjZoM3pNNy41IDZjMS4xMSAwIDItLjg5IDItMnMtLjg5LTItMi0yLTIgLjg5LTIgMiAuODkgMiAyIDJ6bTkgMGMxLjExIDAgMi0uODkgMi0ycy0uODktMi0yLTItMiAuODktMiAyIC44OSAyIDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdpZmlPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxIDExIDItMmMtMy43My0zLjczLTguODctNS4xNS0xMy43LTQuMzFsMi41OCAyLjU4YzMuMy0uMDIgNi42MSAxLjIyIDkuMTIgMy43M3ptLTIgMmE5Ljg5NSA5Ljg5NSAwIDAgMC0zLjcyLTIuMzNsMy4wMiAzLjAyLjctLjY5ek05IDE3bDMgMyAzLTNhNC4yMzcgNC4yMzcgMCAwIDAtNiAwek0zLjQxIDEuNjQgMiAzLjA1IDUuMDUgNi4xQzMuNTkgNi44MyAyLjIyIDcuNzkgMSA5bDIgMmMxLjIzLTEuMjMgMi42NS0yLjE2IDQuMTctMi43OGwyLjI0IDIuMjRBOS44MjMgOS44MjMgMCAwIDAgNSAxM2wyIDJhNi45OTkgNi45OTkgMCAwIDEgNC44OS0yLjA2bDcuMDggNy4wOCAxLjQxLTEuNDFMMy40MSAxLjY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2lmaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMSA5IDIgMmM0Ljk3LTQuOTcgMTMuMDMtNC45NyAxOCAwbDItMkMxNi45MyAyLjkzIDcuMDggMi45MyAxIDl6bTggOCAzIDMgMy0zYTQuMjM3IDQuMjM3IDAgMCAwLTYgMHptLTQtNCAyIDJhNy4wNzQgNy4wNzQgMCAwIDEgMTAgMGwyLTJDMTUuMTQgOS4xNCA4Ljg3IDkuMTQgNSAxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFjVW5pdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTFoLTQuMTdsMy4yNC0zLjI0LTEuNDEtMS40MkwxNSAxMWgtMlY5bDQuNjYtNC42Ni0xLjQyLTEuNDFMMTMgNi4xN1YyaC0ydjQuMTdMNy43NiAyLjkzIDYuMzQgNC4zNCAxMSA5djJIOUw0LjM0IDYuMzQgMi45MyA3Ljc2IDYuMTcgMTFIMnYyaDQuMTdsLTMuMjQgMy4yNCAxLjQxIDEuNDJMOSAxM2gydjJsLTQuNjYgNC42NiAxLjQyIDEuNDFMMTEgMTcuODNWMjJoMnYtNC4xN2wzLjI0IDMuMjQgMS40Mi0xLjQxTDEzIDE1di0yaDJsNC42NiA0LjY2IDEuNDEtMS40MkwxNy44MyAxM0gyMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFpcnBvcnRTaHV0dGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA1SDNhMiAyIDAgMCAwLTIgMnY5aDJjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtM2g2YzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTNoMnYtNWwtNi02em0tMiAyaDFsMyAzaC00Vjd6TTkgN2g0djNIOVY3ek0zIDdoNHYzSDNWN3ptMyAxMC4yNWExLjI1IDEuMjUgMCAxIDEgMC0yLjUgMS4yNSAxLjI1IDAgMCAxIDAgMi41em0xMiAwYTEuMjUgMS4yNSAwIDEgMSAwLTIuNSAxLjI1IDEuMjUgMCAwIDEgMCAyLjV6TTIxIDE0aC0uNzhjLS41NS0uNjEtMS4zNC0xLTIuMjItMXMtMS42Ny4zOS0yLjIyIDFIOC4yMmMtLjU1LS42MS0xLjMzLTEtMi4yMi0xcy0xLjY3LjM5LTIuMjIgMUgzdi0yaDE4djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBbGxJbmNsdXNpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjYgNi42MmMtMS40NCAwLTIuOC41Ni0zLjc3IDEuNTNMNy44IDE0LjM5Yy0uNjQuNjQtMS40OS45OS0yLjQuOTktMS44NyAwLTMuMzktMS41MS0zLjM5LTMuMzhTMy41MyA4LjYyIDUuNCA4LjYyYy45MSAwIDEuNzYuMzUgMi40NCAxLjAzbDEuMTMgMSAxLjUxLTEuMzRMOS4yMiA4LjJBNS4zNyA1LjM3IDAgMCAwIDUuNCA2LjYyQzIuNDIgNi42MiAwIDkuMDQgMCAxMnMyLjQyIDUuMzggNS40IDUuMzhjMS40NCAwIDIuOC0uNTYgMy43Ny0xLjUzbDcuMDMtNi4yNGMuNjQtLjY0IDEuNDktLjk5IDIuNC0uOTkgMS44NyAwIDMuMzkgMS41MSAzLjM5IDMuMzhzLTEuNTIgMy4zOC0zLjM5IDMuMzhjLS45IDAtMS43Ni0uMzUtMi40NC0xLjAzbC0xLjE0LTEuMDEtMS41MSAxLjM0IDEuMjcgMS4xMmE1LjM4NiA1LjM4NiAwIDAgMCAzLjgyIDEuNTdjMi45OCAwIDUuNC0yLjQxIDUuNC01LjM4cy0yLjQyLTUuMzctNS40LTUuMzd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcGFydG1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMVYzSDd2NEgzdjE0aDh2LTRoMnY0aDhWMTFoLTR6TTcgMTlINXYtMmgydjJ6bTAtNEg1di0yaDJ2MnptMC00SDVWOWgydjJ6bTQgNEg5di0yaDJ2MnptMC00SDlWOWgydjJ6bTAtNEg5VjVoMnYyem00IDhoLTJ2LTJoMnYyem0wLTRoLTJWOWgydjJ6bTAtNGgtMlY1aDJ2MnptNCAxMmgtMnYtMmgydjJ6bTAtNGgtMnYtMmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCYWJ5Q2hhbmdpbmdTdGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgOHYyaC0zTDguMzEgOC44MiA3IDEyLjc1VjIySDNWMTJsMS41OC00LjYzQTIuMDAzIDIuMDAzIDAgMCAxIDcuMyA2LjE4bDQuMTUgMS44M0wxNCA4ek04IDFjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0xIDE4aDEydi0ySDl2MnptMTAuNS0zYy44MyAwIDEuNS0uNjcgMS41LTEuNXMtLjY3LTEuNS0xLjUtMS41LTEuNS42Ny0xLjUgMS41LjY3IDEuNSAxLjUgMS41ek0xMyAxMmMwLS41NS0uNDUtMS0xLTFIOXYyaDJ2MWMwIDEuMS45IDIgMiAyaDJjMS4xIDAgMi0uOSAyLTJ2LTNoLTJ2MmgtMnYtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJhY2twYWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA0LjE0VjJoLTN2MmgtNFYySDd2Mi4xNGMtMS43Mi40NS0zIDItMyAzLjg2djEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWOGMwLTEuODYtMS4yOC0zLjQxLTMtMy44NnpNMTggMjBINlY4YzAtMS4xLjktMiAyLTJoOGMxLjEgMCAyIC45IDIgMnYxMnptLTEuNS04djRoLTJ2LTJoLTd2LTJoOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwdjI0aDI0VjBIMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJhbGNvbnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxMHYySDh2LTJoMnptNiAydi0yaC0ydjJoMnptNSAydjhIM3YtOGgxdi00YzAtNC40MiAzLjU4LTggOC04czggMy41OCA4IDh2NGgxek03IDE2SDV2NGgydi00em00IDBIOXY0aDJ2LTR6bTAtMTEuOTJDOC4xNiA0LjU2IDYgNy4wMyA2IDEwdjRoNVY0LjA4ek0xMyAxNGg1di00YzAtMi45Ny0yLjE2LTUuNDQtNS01LjkyVjE0em0yIDJoLTJ2NGgydi00em00IDBoLTJ2NGgydi00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmF0aHR1YiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiN1wiLFwiY3lcIjpcIjdcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTNWNC44M0MyMCAzLjI3IDE4LjczIDIgMTcuMTcgMmMtLjc1IDAtMS40Ny4zLTIgLjgzbC0xLjI1IDEuMjVjLS4xNi0uMDUtLjMzLS4wOC0uNTEtLjA4LS40IDAtLjc3LjEyLTEuMDguMzJsMi43NiAyLjc2Yy4yLS4zMS4zMi0uNjguMzItMS4wOCAwLS4xOC0uMDMtLjM0LS4wNy0uNTFsMS4yNS0xLjI1YS44MjguODI4IDAgMCAxIDEuNDEuNTlWMTNoLTYuODVjLS4zLS4yMS0uNTctLjQ1LS44Mi0uNzJsLTEuNC0xLjU1Yy0uMTktLjIxLS40My0uMzgtLjY5LS41QTIuMjUxIDIuMjUxIDAgMCAwIDUgMTIuMjVWMTNIMnY2YzAgMS4xLjkgMiAyIDIgMCAuNTUuNDUgMSAxIDFoMTRjLjU1IDAgMS0uNDUgMS0xIDEuMSAwIDItLjkgMi0ydi02aC0yem0wIDZINHYtNGgxNnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmVhY2hBY2Nlc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxIDE5LjU3LTEuNDI3IDEuNDI4LTYuNDQyLTYuNDQyIDEuNDMtMS40Mjh6TTEzLjEyIDNjLTIuNTggMC01LjE2Ljk4LTcuMTQgMi45NWwtLjAxLjAxYy0zLjk1IDMuOTUtMy45NSAxMC4zNiAwIDE0LjMxbDE0LjMtMTQuMzFBMTAuMDg2IDEwLjA4NiAwIDAgMCAxMy4xMiAzek02LjE0IDE3LjI3YTguMDYzIDguMDYzIDAgMCAxLS42OC02LjgyYy4xOSAxLjkxLjg5IDMuNzkgMi4wNyA1LjQ0bC0xLjM5IDEuMzh6bTIuODQtMi44NEM3LjYzIDEyLjM4IDcuMTIgOS45MyA3LjYgNy42Yy41OC0uMTIgMS4xNi0uMTggMS43NS0uMTggMS44IDAgMy41NS41NSA1LjA4IDEuNTZsLTUuNDUgNS40NXptMS40Ny04Ljk3YTguMDYzIDguMDYzIDAgMCAxIDYuODIuNjhsLTEuMzkgMS4zOWExMS4yNSAxMS4yNSAwIDAgMC01LjQzLTIuMDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCZW50byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDVINGMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDZoLTZWN2g2djR6TTQgN2g4djEwSDRWN3ptMTAgMTB2LTRoNnY0aC02em0tNC41LTVjMCAuODMtLjY3IDEuNS0xLjUgMS41cy0xLjUtLjY3LTEuNS0xLjUuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCdW5nYWxvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDE0aC0ydi0yaDJ2MnptNS4xIDIuNTZMMTcgMTQuNzlWMjFIN3YtNi4ybC0xLjEgMS43Ni0xLjctMS4wNkwxMiAzbDcuOCAxMi41LTEuNyAxLjA2ek0xNSAxMS41OWwtMy00LjgtMyA0LjhWMTloMnYtM2gydjNoMnYtNy40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJ1c2luZXNzQ2VudGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA3aC00VjVsLTItMmgtNEw4IDV2Mkg0Yy0xLjEgMC0yIC45LTIgMnY1YzAgLjc1LjQgMS4zOCAxIDEuNzNWMTljMCAxLjExLjg5IDIgMiAyaDE0YzEuMTEgMCAyLS44OSAyLTJ2LTMuMjhjLjU5LS4zNSAxLS45OSAxLTEuNzJWOWMwLTEuMS0uOS0yLTItMnpNMTAgNWg0djJoLTRWNXpNNCA5aDE2djVoLTV2LTNIOXYzSDRWOXptOSA2aC0ydi0yaDJ2MnptNiA0SDV2LTNoNHYxaDZ2LTFoNHYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FiaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxYzAgMS42Ni0xLjM0IDMtMyAzLS41NSAwLTEgLjQ1LTEgMUg0YzAtMS42NiAxLjM0LTMgMy0zIC41NSAwIDEtLjQ1IDEtMWgyem0yIDJMNiA3LjU4VjZINHYzLjExTDEgMTEuNGwxLjIxIDEuNTlMNCAxMS42MlYyMWgxNnYtOS4zOGwxLjc5IDEuMzZMMjMgMTEuNCAxMiAzem0xLjk0IDRoLTMuODlMMTIgNS41MiAxMy45NCA3em0tNi41IDJoOS4xMkwxOCAxMC4xdi45SDZ2LS45TDcuNDQgOXpNMTggMTN2Mkg2di0yaDEyek02IDE5di0yaDEydjJINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhcnBlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjczIDE0LjIzIDcgMS41IDMuMTEgNS4zOWw4LjEzIDExLjY3Yy0uNzguNzgtLjc4IDIuMDUgMCAyLjgzbDEuNDEgMS40MWMuNzguNzggMi4wNS43OCAyLjgzIDBsNC4yNC00LjI0Yy43OS0uNzguNzktMi4wNS4wMS0yLjgzek01LjcxIDUuNjIgNyA0LjMzbDguNDkgOC40OS0yLjgxIDIuODFMNS43MSA1LjYyem04LjM2IDE0LjI2LTEuNDEtMS40MSA0LjI0LTQuMjQgMS40MSAxLjQxLTQuMjQgNC4yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhc2lubyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI3LjVcIixcImN5XCI6XCIxNi41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI3LjVcIixcImN5XCI6XCI3LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE2LjVcIixcImN5XCI6XCIxNi41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNi41XCIsXCJjeVwiOlwiNy41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNoYWxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjUgMTUgMTAgNy41IDIuNSAxNWwxLjQxIDEuNDFMNSAxNS4zM1YyMGgxMHYtNC42N2wxLjA5IDEuMDlMMTcuNSAxNXpNMTMgMThoLTJ2LTNIOXYzSDd2LTQuNjdsMy0zIDMgM1YxOHptOS0xMC41aC0xLjE5bC43NS43NS0uNzEuNzEtMS40Ni0xLjQ2aC0uODl2Ljg5bDEuNDUgMS40NS0uNzEuNzEtLjc0LS43NFYxMWgtMVY5LjgxbC0uNzUuNzUtLjcxLS43MSAxLjQ1LTEuNDV2LS45aC0uODlsLTEuNDUgMS40NS0uNzEtLjcxLjc1LS43NUgxNHYtMWgxLjE5bC0uNzUtLjc1LjcxLS43MSAxLjQ1IDEuNDVoLjg5di0uODdsLTEuNDUtMS40NS43MS0uNzEuNzUuNzVWM2gxdjEuMTlsLjc1LS43NS43MS43MS0xLjQ2IDEuNDZ2Ljg5aC44OWwxLjQ1LTEuNDUuNzEuNzEtLjc0Ljc0SDIydjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDaGFyZ2luZ1N0YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNC41IDExLTMgNnYtNGgtMmwzLTZ2NGgyek0xNyAzSDd2MWgxMFYzbTAgMTdIN3YxaDEwdi0xbTAtMTljMS4xIDAgMiAuOSAyIDJ2MThjMCAxLjEtLjkgMi0yIDJIN2MtMS4xIDAtMi0uOS0yLTJWM2MwLTEuMS45LTIgMi0yaDEwek03IDE4aDEwVjZIN3YxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNoZWNrcm9vbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjYgMTguMiAxMyAxMS43NXYtLjkxYTMuNDk2IDMuNDk2IDAgMCAwLS4xOC02Ljc1QTMuNTEgMy41MSAwIDAgMCA4LjUgNy41aDJjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjVjMCAuODQtLjY5IDEuNTItMS41MyAxLjUtLjU0LS4wMS0uOTcuNDUtLjk3Ljk5djEuNzZMMi40IDE4LjJjLS43Ny41OC0uMzYgMS44LjYgMS44aDE4Yy45NiAwIDEuMzctMS4yMi42LTEuOHpNNiAxOGw2LTQuNSA2IDQuNUg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2hpbGRDYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE0LjVcIixcImN5XCI6XCIxMC41XCIsXCJyXCI6XCIxLjI1XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOS41XCIsXCJjeVwiOlwiMTAuNVwiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMi45NCAxMS4zNGE0LjAwOCA0LjAwOCAwIDAgMC0yLjgxLTMuMTcgOS4xMTQgOS4xMTQgMCAwIDAtMi4xOS0yLjkxQzE2LjM2IDMuODUgMTQuMjggMyAxMiAzcy00LjM2Ljg1LTUuOTQgMi4yNmMtLjkyLjgxLTEuNjcgMS44LTIuMTkgMi45MWEzLjk5NCAzLjk5NCAwIDAgMC0yLjgxIDMuMTdjLS4wNC4yMS0uMDYuNDMtLjA2LjY2IDAgLjIzLjAyLjQ1LjA2LjY2YTQuMDA4IDQuMDA4IDAgMCAwIDIuODEgMy4xNyA4Ljk3NyA4Ljk3NyAwIDAgMCAyLjE3IDIuODlDNy42MiAyMC4xNCA5LjcxIDIxIDEyIDIxczQuMzgtLjg2IDUuOTctMi4yOGMuOS0uOCAxLjY1LTEuNzkgMi4xNy0yLjg5YTMuOTk4IDMuOTk4IDAgMCAwIDIuOC0zLjE3Yy4wNC0uMjEuMDYtLjQzLjA2LS42NiAwLS4yMy0uMDItLjQ1LS4wNi0uNjZ6TTE5IDE0Yy0uMSAwLS4xOS0uMDItLjI5LS4wMy0uMi42Ny0uNDkgMS4yOS0uODYgMS44NkMxNi42IDE3Ljc0IDE0LjQ1IDE5IDEyIDE5cy00LjYtMS4yNi01Ljg1LTMuMTdjLS4zNy0uNTctLjY2LTEuMTktLjg2LTEuODYtLjEuMDEtLjE5LjAzLS4yOS4wMy0xLjEgMC0yLS45LTItMnMuOS0yIDItMmMuMSAwIC4xOS4wMi4yOS4wMy4yLS42Ny40OS0xLjI5Ljg2LTEuODZDNy40IDYuMjYgOS41NSA1IDEyIDVzNC42IDEuMjYgNS44NSAzLjE3Yy4zNy41Ny42NiAxLjE5Ljg2IDEuODYuMS0uMDEuMTktLjAzLjI5LS4wMyAxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDJ6bS03IDNjMi4wMSAwIDMuNzQtMS4yMyA0LjUtM2gtOWMuNzYgMS43NyAyLjQ5IDMgNC41IDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDaGlsZEZyaWVuZGx5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAydjhoOGMwLTQuNDItMy41OC04LTgtOHptMiA2VjQuMzRjMS43LjYgMy4wNSAxLjk1IDMuNjYgMy42NkgxNXptLTguNTYgMy0uOTUtMkgydjJoMi4yMnMxLjg5IDQuMDcgMi4xMiA0LjQyYy0xLjEuNTktMS44NCAxLjc1LTEuODQgMy4wOEM0LjUgMjAuNDMgNi4wNyAyMiA4IDIyYzEuNzYgMCAzLjIyLTEuMyAzLjQ2LTNoMi4wOGMuMjQgMS43IDEuNyAzIDMuNDYgMyAxLjkzIDAgMy41LTEuNTcgMy41LTMuNSAwLTEuMDQtLjQ2LTEuOTctMS4xOC0yLjYxQTcuOTQ4IDcuOTQ4IDAgMCAwIDIxIDExSDYuNDR6TTggMjBjLS44MyAwLTEuNS0uNjctMS41LTEuNVM3LjE3IDE3IDggMTdzMS41LjY3IDEuNSAxLjVTOC44MyAyMCA4IDIwem05IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxNi4xNyAxNyAxNyAxN3MxLjUuNjcgMS41IDEuNVMxNy44MyAyMCAxNyAyMHptLjc0LTUuMzQtLjI5LjM3QTMuNTA1IDMuNTA1IDAgMCAwIDEzLjg0IDE3aC0yLjY4Yy0uNS0xLjA0LTEuNS0xLjgtMi42OC0xLjk3bC0uNDQtLjY3Yy0uMS0uMTctLjM0LS42OS0uNjctMS4zNmgxMS4yOWMtLjIxLjU5LS41MiAxLjE1LS45MiAxLjY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29ycG9yYXRlRmFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDdWM0gydjE4aDIwVjdIMTJ6bS0yIDEySDR2LTJoNnYyem0wLTRINHYtMmg2djJ6bTAtNEg0VjloNnYyem0wLTRINFY1aDZ2MnptMTAgMTJoLThWOWg4djEwem0tMi04aC00djJoNHYtMnptMCA0aC00djJoNHYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvdHRhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAzIDYgNy41OFY2SDR2My4xMUwxIDExLjRsMS4yMSAxLjU5TDQgMTEuNjJWMjFoMTZ2LTkuMzhsMS43OSAxLjM2TDIzIDExLjQgMTIgM3ptNiAxNmgtNXYtNGgtMnY0SDZ2LTguOWw2LTQuNTggNiA0LjU4VjE5ek0xMCAxYzAgMS42Ni0xLjM0IDMtMyAzLS41NSAwLTEgLjQ1LTEgMUg0YzAtMS42NiAxLjM0LTMgMy0zIC41NSAwIDEtLjQ1IDEtMWgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ291bnRlcnRvcHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMGgtNFY3YzAtMS42Ni0xLjM0LTMtMy0zcy0zIDEuMzQtMyAzaDJjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjNIOGMxLjEgMCAyLS45IDItMlY0SDR2NGMwIDEuMS45IDIgMiAySDJ2MmgydjhoMTZ2LThoMnYtMnpNNiA2aDJ2Mkg2VjZ6bTAgMTJ2LTZoNXY2SDZ6bTEyIDBoLTV2LTZoNXY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ3JpYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDloLTZWNEg4QzUuNzkgNCA0IDUuNzkgNCA4djZjMCAxLjEuOSAyIDIgMmgydjIuOTNjLS42MS0uMzUtMS4xNi0uNzgtMS42NS0xLjI3bC0xLjQyIDEuNDJDNi43NCAyMC44OCA5LjI0IDIyIDEyIDIyYzIuNzYgMCA1LjI2LTEuMTIgNy4wNy0yLjkzbC0xLjQyLTEuNDJjLS40OS40OS0xLjA1LjkyLTEuNjUgMS4yN1YxNmgyYzEuMSAwIDItLjkgMi0ydi0zYzAtMS4xLS45LTItMi0yem0tNCAxMC43NWMtLjY0LjE2LTEuMzEuMjUtMiAuMjVzLTEuMzYtLjA5LTItLjI1VjE2aDR2My43NXpNMTggMTRINlY4YzAtMS4xLjktMiAyLTJoMnY1aDh2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURlc2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDZ2MTJoMlY4aDEwdjEwaDJ2LTJoNHYyaDJWNkgyem0xOCAydjJoLTRWOGg0em0tNCA2di0yaDR2MmgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvTm90U3RlcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4LjUxIDE1LjY4LTEuNDEtMS40MSA0LjQ4LTQuNDhMMjMgMTEuMmwtNC40OSA0LjQ4em0tMy41My0zLjUzIDMuMDctMy4wNy00LjI1LTQuMjYtMy4wOCAzLjA3TDkuMyA2LjQ3IDEzLjggMmw3LjA4IDcuMDgtNC40OCA0LjQ4LTEuNDItMS40MXptNi4yIDkuMDUtMS40MSAxLjQxLTUuOTQtNS45NEwxMC41IDIwSDF2LTIuNjNjMC0uODQuNTItMS41NyAxLjMtMS44OC41OC0uMjMgMS4yOC0uNTYgMS45Ny0xLjAybDEuMzggMS4zOGMuMDkuMS4yMi4xNS4zNS4xNXMuMjYtLjA1LjM2LS4xNWMuMi0uMi4yLS41MSAwLS43MWwtMS4yOC0xLjI4Yy4yNy0uMjQuNTMtLjUxLjc3LS44bDEuMjcgMS4yN2EuNDg1LjQ4NSAwIDAgMCAuNyAwYy4yLS4yLjItLjUxIDAtLjcxbC0xLjQtMS40Yy4xOS0uMzQuMzQtLjcyLjQ1LTEuMTJsMS43MSAxLjcyYS40ODUuNDg1IDAgMCAwIC43IDBjLjE5LS4yLjE5LS41LjAxLS43bC03LjktNy45IDEuNDItMS40MUwyMS4xOCAyMS4yem0tOC43Ni01Ljk0LTEuNjctMS42OC0zLjMzIDMuMzJjLS43OC43OC0yLjA1Ljc4LTIuODMtLjAxbC0uMTktLjE3LS40Ny4yNGMtLjI5LjE0LS41OS4yNy0uODkuMzlsLS4wMS42NWg2LjY0bDIuNzUtMi43NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvTm90VG91Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjgxIDIuODEgMS4zOSA0LjIyIDcgOS44M3Y0LjNsLTIuNi0xLjQ4Yy0uMTctLjA5LS4zNC0uMTQtLjU0LS4xNC0uMjYgMC0uNS4wOS0uNy4yNkwyIDEzLjg4bDYuOCA3LjE4Yy41Ny42IDEuMzUuOTQgMi4xOC45NEgxN2MuNjIgMCAxLjE4LS4xOSAxLjY2LS41MmwxLjEyIDEuMTIgMS40MS0xLjQxTDIuODEgMi44MXpNMTcgMjBoLTZjLS4zOSAwLS42NC0uMjMtLjc1LS4zNkw2Ljg3IDE2SDl2LTQuMTdsOC4xNCA4LjE0Yy0uMDUuMDEtLjA5LjAzLS4xNC4wM3ptLTMuMTctOUgxNFYzLjI1YTEuMjUgMS4yNSAwIDAgMSAyLjUgMFYxMWgxVjUuMjVhMS4yNSAxLjI1IDAgMCAxIDIuNSAwdjExLjkybC0yLTJWMTNoLTIuMTdsLTItMnptLS44My0uODNWMi4yNWExLjI1IDEuMjUgMCAwIDAtMi41IDB2NS40MmwyLjUgMi41em0tMy41LTMuNVY0LjI1QzkuNSAzLjU2IDguOTQgMyA4LjI1IDNjLS42NyAwLTEuMi41My0xLjI0IDEuMThMOS41IDYuNjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC43NSAxNmExLjI1IDEuMjUgMCAwIDAgMC0yLjVIMTJ2LTFoNi43NWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjUgMC0uNjctLjUzLTEuMi0xLjE4LTEuMjRMOC44NyAxMGwxLjQ4LTIuNmMuMDktLjE3LjE0LS4zNC4xNC0uNTQgMC0uMjYtLjA5LS41LS4yNi0uN0w5LjEyIDVsLTcuMTggNi44Yy0uNi41Ni0uOTQgMS4zNS0uOTQgMi4xN1YyMGMwIDEuNjYgMS4zNCAzIDMgM2gxMy43NWExLjI1IDEuMjUgMCAwIDAgMC0yLjVIMTJ2LTFoNy43NWExLjI1IDEuMjUgMCAwIDAgMC0yLjVIMTJ2LTFoOC43NXpNMTAgMjFINGMtLjU1IDAtMS0uNDUtMS0xdi02YzAtLjM5LjIzLS42NC4zNi0uNzVMNyA5Ljg3VjEyaDN2OXptNS42NS0xNi4xNC0uMDctLjA3Yy0uNTctLjYyLS44Mi0xLjQxLS42Ny0yLjJMMTUgMmgtMS44OWwtLjA2LjQzYy0uMiAxLjM2LjI3IDIuNzEgMS4zIDMuNzJsLjA3LjA2Yy41Ny42Mi44MiAxLjQxLjY3IDIuMmwtLjExLjU5aDEuOTFsLjA2LS40M2MuMjEtMS4zNi0uMjctMi43MS0xLjMtMy43MXptNCAwLS4wNy0uMDdjLS41Ny0uNjItLjgyLTEuNDEtLjY3LTIuMkwxOSAyaC0xLjg5bC0uMDYuNDNjLS4yIDEuMzYuMjcgMi43MSAxLjMgMy43MmwuMDcuMDZjLjU3LjYyLjgyIDEuNDEuNjcgMi4ybC0uMTEuNTloMS45MWwuMDYtLjQzYy4yMS0xLjM2LS4yNy0yLjcxLTEuMy0zLjcxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWxldmF0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA1djE0SDVWNWgxNG0wLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tOSAxNXYtNGgxdi0yLjVjMC0xLjEtLjktMi0yLTJIOGMtMS4xIDAtMiAuOS0yIDJWMTRoMXY0aDN6TTguNSA4LjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNXpNMTggMTFsLTIuNS00LTIuNSA0aDV6bS01IDIgMi41IDQgMi41LTRoLTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFc2NhbGF0b3JXYXJuaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41IDJjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0yem05IDcuNWMwIC44My42NyAxLjUgMS41IDEuNXMxLjUtLjY3IDEuNS0xLjVTMTcuODMgOCAxNyA4cy0xLjUuNjctMS41IDEuNXptMyAyLjVoLTIuODRjLS41OC4wMS0xLjE0LjMyLTEuNDUuODZsLS45MiAxLjMyTDkuNzIgOGEyLjAyIDIuMDIgMCAwIDAtMS43MS0xSDVjLTEuMSAwLTIgLjktMiAydjZoMS41djdoNVYxMS42MUwxMi4wMyAxNmgyLjJsLjc3LTEuMVYyMmg0di01aDF2LTMuNWMwLS44Mi0uNjctMS41LTEuNS0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFc2NhbGF0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA1djE0SDVWNWgxNG0wLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tMiAzaC0zLjNsLTUgOUg3Yy0uODMgMC0xLjUuNjctMS41IDEuNVM2LjE3IDE4IDcgMThoMy4zbDUtOUgxN2MuODMgMCAxLjUtLjY3IDEuNS0xLjVTMTcuODMgNiAxNyA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmFtaWx5UmVzdHJvb20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA0YzAtMS4xMS44OS0yIDItMnMyIC44OSAyIDItLjg5IDItMiAyLTItLjg5LTItMnptNCAxOHYtNmgyLjVsLTIuNTQtNy42M0EyLjAxIDIuMDEgMCAwIDAgMTguMDYgN2gtLjEyYTIgMiAwIDAgMC0xLjkgMS4zN2wtLjg2IDIuNThjMS4wOC42IDEuODIgMS43MyAxLjgyIDMuMDV2OGgzem0tNy41LTEwLjVjLjgzIDAgMS41LS42NyAxLjUtMS41cy0uNjctMS41LTEuNS0xLjVTMTEgOS4xNyAxMSAxMHMuNjcgMS41IDEuNSAxLjV6TTUuNSA2YzEuMTEgMCAyLS44OSAyLTJzLS44OS0yLTItMi0yIC44OS0yIDIgLjg5IDIgMiAyem0yIDE2di03SDlWOWMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0yIC45LTIgMnY2aDEuNXY3aDR6bTYuNSAwdi00aDF2LTRjMC0uODItLjY4LTEuNS0xLjUtMS41aC0yYy0uODIgMC0xLjUuNjgtMS41IDEuNXY0aDF2NGgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmVuY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMnYtMmgtMlY3bC0zLTMtMiAyLTItMi0yIDItMi0yLTMgM3YzSDN2MmgydjJIM3YyaDJ2NGgxNHYtNGgydi0yaC0ydi0yaDJ6bS01LTUuMTcgMSAxVjEwaC0yVjcuODNsLjQxLS40MS41OS0uNTl6bS00IDAgLjU5LjU5LjQxLjQxVjEwaC0yVjcuODNsLjQxLS40MS41OS0uNTl6TTExIDE0di0yaDJ2MmgtMnptMiAydjJoLTJ2LTJoMnpNNyA3LjgzbDEtMSAuNTkuNTkuNDEuNDFWMTBIN1Y3Ljgzek03IDEyaDJ2Mkg3di0yem0wIDRoMnYySDd2LTJ6bTEwIDJoLTJ2LTJoMnYyem0wLTRoLTJ2LTJoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmlyZUV4dGluZ3Vpc2hlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTloMTB2MWMwIDEuMS0uOSAyLTIgMkg5Yy0xLjEgMC0yLS45LTItMnYtMXptMC0xaDEwdi01SDd2NXpNMTcgM3Y2bC0zLjE1LS42NmMtLjAxIDAtLjAxLjAxLS4wMi4wMiAxLjU1LjYyIDIuNzIgMS45OCAzLjA3IDMuNjRINy4xYy4zNC0xLjY2IDEuNTItMy4wMiAzLjA3LTMuNjQtLjMzLS4yNi0uNi0uNTgtLjgtLjk1TDUgNi41di0xbDQuMzctLjkxQzkuODcgMy42NSAxMC44NiAzIDEyIDNjLjcgMCAxLjM0LjI1IDEuODUuNjZMMTcgM3ptLTQgM2MtLjAzLS41OS0uNDUtMS0xLTFzLTEgLjQ1LTEgMSAuNDUgMSAxIDEgMS0uNDUgMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRml0bmVzc0NlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNTcgMTQuODYgMjIgMTMuNDMgMjAuNTcgMTIgMTcgMTUuNTcgOC40MyA3IDEyIDMuNDMgMTAuNTcgMiA5LjE0IDMuNDMgNy43MSAyIDUuNTcgNC4xNCA0LjE0IDIuNzEgMi43MSA0LjE0bDEuNDMgMS40M0wyIDcuNzFsMS40MyAxLjQzTDIgMTAuNTcgMy40MyAxMiA3IDguNDMgMTUuNTcgMTcgMTIgMjAuNTcgMTMuNDMgMjJsMS40My0xLjQzTDE2LjI5IDIybDIuMTQtMi4xNCAxLjQzIDEuNDMgMS40My0xLjQzLTEuNDMtMS40M0wyMiAxNi4yOWwtMS40My0xLjQzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9vZEJhbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiA1LjUgNiA0LjV2OUg2di05bDYtNC41TTEyIDMgNCA5djEyaDE2VjlsLTgtNnptLS41IDYuNXYzSDExdi0zaC0xdjNoLS41di0zaC0xdjNjMCAuODMuNjcgMS41IDEuNSAxLjV2NGgxdi00Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtM2gtMXptMS41IDJ2M2gxVjE4aDFWOS41Yy0xLjEgMC0yIC45LTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvdW5kYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxMmgzTDEyIDMgMiAxMmgzdjNIM3YyaDJ2M2gydi0zaDR2M2gydi0zaDR2M2gydi0zaDJ2LTJoLTJ2LTN6TTcgMTV2LTQuODFsNC0zLjZWMTVIN3ptNiAwVjYuNTlsNCAzLjZWMTVoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGcmVlQnJlYWtmYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDE5aDE2djJINHpNMjAgM0g0djEwYzAgMi4yMSAxLjc5IDQgNCA0aDZjMi4yMSAwIDQtMS43OSA0LTR2LTNoMmEyIDIgMCAwIDAgMi0yVjVjMC0xLjExLS44OS0yLTItMnptLTQgMTBjMCAxLjEtLjkgMi0yIDJIOGMtMS4xIDAtMi0uOS0yLTJWNWgxMHY4em00LTVoLTJWNWgydjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHaXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNkg5VjRIN3YySDZsLTQgNHY5aDIwdi05bC00LTR6TTQgMTJoMTB2NUg0di01em0xNiA1aC00di02LjE3bDItMiAyIDJWMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHb2xmQ291cnNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE5LjVcIixcImN5XCI6XCIxOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNS45MiA5IDJ2MThIN3YtMS43M2MtMS43OS4zNS0zIC45OS0zIDEuNzMgMCAxLjEgMi42OSAyIDYgMnM2LS45IDYtMmMwLS45OS0yLjE2LTEuODEtNS0xLjk3VjguOThsNi0zLjA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR3Jhc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyMEgydi0yaDUuNzVBOC4wMzIgOC4wMzIgMCAwIDAgMiAxMi4yNmMuNjQtLjE2IDEuMzEtLjI2IDItLjI2IDQuNDIgMCA4IDMuNTggOCA4em0xMC03Ljc0Yy0uNjQtLjE2LTEuMzEtLjI2LTItLjI2LTIuOTMgMC01LjQ4IDEuNTgtNi44OCAzLjkzYTkuODIgOS44MiAwIDAgMSAuODcgNC4wN2g4di0yaC01Ljc1QTguMDYxIDguMDYxIDAgMCAxIDIyIDEyLjI2em0tNi4zNi0xLjI0YTEwLjAzIDEwLjAzIDAgMCAxIDQuMDktNUMxNS40NCA2LjE2IDEyIDkuNjcgMTIgMTR2LjAyYy45NS0xLjI3IDIuMi0yLjMgMy42NC0zem0tNC4yMi0yLjE3QTguNTI3IDguNTI3IDAgMCAwIDYuNyA0QzguMTQgNS44NiA5IDguMTggOSAxMC43MWMwIC4yMS0uMDMuNDEtLjA0LjYxLjQzLjI0LjgzLjUyIDEuMjIuODJhOS45MSA5LjkxIDAgMCAxIDEuMjQtMy4yOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhvbGlkYXlWaWxsYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOCA0LTYgNnYxMGgxMlYxMEw4IDR6bTQgMTRIOXYtM0g3djNINHYtNy4xN2w0LTQgNCA0VjE4em0tMy01SDd2LTJoMnYyem05IDdWOC4zNUwxMy42NSA0aC0yLjgzTDE2IDkuMThWMjBoMnptNCAwVjYuNjlMMTkuMzEgNGgtMi44M0wyMCA3LjUyVjIwaDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIb3RUdWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiN1wiLFwiY3lcIjpcIjZcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMTUgMTJjLS4zMS0uMjItLjU5LS40Ni0uODItLjcybC0xLjQtMS41NWMtLjE5LS4yMS0uNDMtLjM4LS42OS0uNS0uMjktLjE0LS42Mi0uMjMtLjk2LS4yM2gtLjAzQzYuMDEgOSA1IDEwLjAxIDUgMTEuMjVWMTJIMnY4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJ2LThIMTEuMTV6TTcgMjBINXYtNmgydjZ6bTQgMEg5di02aDJ2NnptNCAwaC0ydi02aDJ2NnptNCAwaC0ydi02aDJ2NnpNMTcuNDIgNy4yMWMuNTcuNjIuODIgMS40MS42NyAyLjJsLS4xMS41OWgxLjkxbC4wNi0uNDNjLjIxLTEuMzYtLjI3LTIuNzEtMS4zLTMuNzFsLS4wNy0uMDdjLS41Ny0uNjItLjgyLTEuNDEtLjY3LTIuMkwxOCAzaC0xLjg5bC0uMDYuNDNjLS4yIDEuMzYuMjcgMi43MSAxLjMgMy43MmwuMDcuMDZ6bS00IDBjLjU3LjYyLjgyIDEuNDEuNjcgMi4ybC0uMTEuNTloMS45MWwuMDYtLjQzYy4yMS0xLjM2LS4yNy0yLjcxLTEuMy0zLjcxbC0uMDctLjA3Yy0uNTctLjYyLS44Mi0xLjQxLS42Ny0yLjJMMTQgM2gtMS44OWwtLjA2LjQzYy0uMiAxLjM2LjI3IDIuNzEgMS4zIDMuNzJsLjA3LjA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSG91c2VTaWRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxMmgzTDEyIDMgMiAxMmgzdjhoMnYtMmgxMHYyaDJ2LTh6TTcuMjEgMTBoOS41OGwuMjEuMTlWMTJIN3YtMS44MWwuMjEtLjE5em03LjM2LTJIOS40M0wxMiA1LjY5IDE0LjU3IDh6TTcgMTZ2LTJoMTB2Mkg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSG91c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA5LjNWNGgtM3YyLjZMMTIgMyAyIDEyaDN2OGg2di02aDJ2Nmg2di04aDNsLTMtMi43ek0xNyAxOGgtMnYtNkg5djZIN3YtNy44MWw1LTQuNSA1IDQuNVYxOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTBoNGMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIb3VzZWJvYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNmMtMS45NSAwLTIuMSAxLTMuMzQgMS0xLjE5IDAtMS40Mi0xLTMuMzMtMS0xLjk1IDAtMi4wOSAxLTMuMzMgMXYyYzEuOSAwIDIuMTctMSAzLjM1LTEgMS4xOSAwIDEuNDIgMSAzLjMzIDEgMS45NSAwIDIuMDgtMSAzLjMyLTFzMS4zNyAxIDMuMzIgMWMxLjkxIDAgMi4xNC0xIDMuMzMtMSAxLjE4IDAgMS40NSAxIDMuMzUgMXYtMmMtMS4yNCAwLTEuMzgtMS0zLjMzLTEtMS45MSAwLTIuMTQgMS0zLjMzIDEtMS4yNCAwLTEuMzktMS0zLjM0LTF6bTguMzQtNC42Ni0xLjM3IDEuMzdjLS4xOS4xOC0uNDUuMjktLjcxLjI5SDE3VjkuNjVsMS4zMi45N0wxOS41IDkgMTIgMy41IDQuNSA5bDEuMTggMS42MUw3IDkuNjVWMTNINS43NGMtLjI3IDAtLjUyLS4xMS0uNzEtLjI5bC0xLjM3LTEuMzctMS40MSAxLjQxIDEuMzcgMS4zN2MuNTYuNTYgMS4zMy44OCAyLjEyLjg4aDEyLjUxYy44IDAgMS41Ni0uMzIgMi4xMi0uODhsMS4zNy0xLjM3LTEuNC0xLjQxek0xMyAxM3YtMmgtMnYySDlWOC4xOGwzLTIuMiAzIDIuMlYxM2gtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUlyb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA2Yy0xLjY2IDAtMyAxLjM0LTMgM3Y0YzAgLjU1LS40NSAxLTEgMXYtNGMwLTEuNjYtMS4zNC0zLTMtM2gtNGMtMS42NiAwLTMgMS4zNC0zIDNoMmMwLS41NS40NS0xIDEtMWg0Yy41NSAwIDEgLjQ1IDEgMXYxSDZjLTIuMjEgMC00IDEuNzktNCA0djNoMTV2LTJjMS42NiAwIDMtMS4zNCAzLTNWOWMwLS41NS40NS0xIDEtMWgxVjZoLTF6bS02IDEwSDR2LTFjMC0xLjEuOS0yIDItMmg5djN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVLaXRjaGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDVoMnYzSDh6bTAgN2gydjVIOHptMTAtOS45OUw2IDJhMiAyIDAgMCAwLTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjExLS45LTEuOTktMi0xLjk5ek0xOCAyMEg2di05LjAyaDEyVjIwem0wLTExSDZWNGgxMnY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWVldGluZ1Jvb20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDE5VjRoLTRWM0g1djE2SDN2MmgxMlY2aDJ2MTVoNHYtMmgtMnptLTYgMEg3VjVoNnYxNHptLTMtOGgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNaWNyb3dhdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNNCA2aDEwdjEySDRWNnptMTYgMTJoLTRWNmg0djEyem0tMS05aC0yVjdoMnYyem0tMSA0Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTAgNGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0tNy43NS0xYy0uNzkgMC0xLjM3LS4zOC0xLjc5LS42Ni0uMzMtLjIyLS41Mi0uMzQtLjcxLS4zNC0uMzcgMC0uOC40MS0uOTUuNjFsLTEuNDItMS40MmMuMzUtLjQgMS4yMS0xLjE5IDIuMzctMS4xOS44IDAgMS4zOS4zOSAxLjgxLjY3LjMxLjIxLjUxLjMzLjY5LjMzLjM3IDAgLjgtLjQxLjk1LS42MWwxLjQyIDEuNDJjLS4zNi40LTEuMjEgMS4xOS0yLjM3IDEuMTl6bTAtNWMtLjc5IDAtMS4zNy0uMzgtMS43OS0uNjYtLjMzLS4yMi0uNTItLjM0LS43MS0uMzQtLjM3IDAtLjguNDEtLjk1LjYxTDUuMzcgOS4xOUM1LjczIDguNzkgNi41OSA4IDcuNzUgOGMuOCAwIDEuMzkuMzkgMS44MS42Ny4zMS4yMS41MS4zMy42OS4zMy4zNyAwIC44LS40MS45NS0uNjFsMS40MiAxLjQyYy0uMzYuNC0xLjIxIDEuMTktMi4zNyAxLjE5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmlnaHRTaGVsdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgNS41IDYgNC41djlINnYtOWw2LTQuNU0xMiAzIDQgOXYxMmgxNlY5bC04LTZ6bTMgOWgtMy41djMuNUg4VjExSDd2N2gxdi0xLjVoOFYxOGgxdi00YzAtMS4xLS45LTItMi0yem0tNS4yNS41YTEuMjUgMS4yNSAwIDEgMCAwIDIuNSAxLjI1IDEuMjUgMCAwIDAgMC0yLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb0JhY2twYWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi45OCA0LjE1Yy4wMSAwIC4wMS0uMDEuMDItLjAxVjJoM3YyaDRWMmgzdjIuMTRjMS43Mi40NSAzIDIgMyAzLjg2djkuMTdsLTItMlY4YzAtMS4xLS45LTItMi0ySDguODNMNi45OCA0LjE1ek0xNC44MyAxMmwxLjY3IDEuNjdWMTJoLTEuNjd6bTQuOTUgMTAuNjEtLjg1LS44NWMtLjI4LjE1LS41OS4yNC0uOTMuMjRINmMtMS4xIDAtMi0uOS0yLTJWOGMwLS4zNi4wNi0uNjkuMTUtMS4wMkwxLjM5IDQuMjIgMi44IDIuODFsMTguMzggMTguMzgtMS40IDEuNDJ6TTE3LjE3IDIwbC02LTZINy41di0yaDEuNjdMNiA4LjgzVjIwaDExLjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm9DZWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNnY4LjE3bDIgMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5TDcgMWMtLjg1IDAtMS41OC41NS0xLjg3IDEuM0w4LjgzIDZIMTd6TTcgM2gxMHYxSDdWM3ptMTQuMTkgMTguMTlMMTkgMTlsLTItMkw3IDcgNSA1IDIuODEgMi44MSAxLjM5IDQuMjIgNSA3LjgzVjIxYzAgMS4xLjkgMiAyIDJoMTBjLjg1IDAgMS41OC0uNTUgMS44Ny0xLjNsLjkxLjkxIDEuNDEtMS40MnpNMTcgMjFIN3YtMWgxMHYxek03IDE4VjkuODNMMTUuMTcgMThIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vRHJpbmtzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuMTkgMjEuMTkgMi44MSAyLjgxIDEuMzkgNC4yMmw4LjIzIDguMjNMMTEgMTR2NUg2djJoMTJ2LS4xN2wxLjc4IDEuNzggMS40MS0xLjQyek0xMyAxOXYtMy4xN0wxNi4xNyAxOUgxM3pNNy44MyA1bC0yLTJIMjF2MmwtNi4yIDYuOTctMS40Mi0xLjQyTDE0Ljc3IDloLTIuOTRsLTItMmg2Ljc0bDEuNzgtMkg3LjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm9GbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNCA1LjZIMjJMMTkgMTFWN2gtMVYyaDRsLTEuNiAzLjZ6TTE2IDExLjR2MS43N2wyIDJWMTFjMC0uODgtLjcyLTEuNi0xLjYtMS42aC0yLjU0TDEyLjU4IDhoLTEuNzVsMy40IDMuNEgxNnpNMi4xIDIuMS42OSAzLjUxbDUuNjYgNS42Ni0uMjEuMjNIMy42Yy0uODggMC0xLjYuNzItMS42IDEuNnY5LjRjMCAuODguNzIgMS42IDEuNiAxLjZoMTIuOGMuNzUgMCAxLjM4LS41MiAxLjU1LTEuMjJsMi41NCAyLjU0IDEuNDEtMS40MUwyLjEgMi4xem05LjQgMTMuNGMwIC44My0uNjcgMS41LTEuNSAxLjVzLTEuNS0uNjctMS41LTEuNVM5LjE3IDE0IDEwIDE0czEuNS42NyAxLjUgMS41em00LjQ2IDQuNUg0di04LjZoMy4wMmwuNTktLjY1LjE1LS4xNiAxLjUgMS41QTMuNDg2IDMuNDg2IDAgMCAwIDYuNSAxNS41YzAgMS45MyAxLjU3IDMuNSAzLjUgMy41IDEuNjggMCAzLjA3LTEuMTggMy40Mi0yLjc2bDIuNTUgMi41NS0uMDEgMS4yMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vRm9vZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMjFoMTUuMDF2Ljk4YzAgLjU2LS40NSAxLjAxLTEuMDEgMS4wMUgyLjAxYy0uNTYgMC0xLjAxLS40NS0xLjAxLTEuMDFWMjF6bTE5LjQ5IDIuMzFMMTYgMTguODNWMTlIMXYtMmgxMy4xN2wtMi0ySDFjMC0zLjI0IDIuNDYtNS4xNyA1LjM4LTUuNzlsLTUuNy01LjdMMi4xIDIuMSAxMyAxM2wyIDIgNi45IDYuOS0xLjQxIDEuNDF6TTEwLjE3IDEzbC0yLTJjLTEuNDIuMDYtMy41Mi41Ni00LjU1IDJoNi41NXpNMjMgNWgtNVYxaC0ydjRoLTVsLjIzIDJoOS41NmwtMSA5Ljk3IDEuODMgMS44M0wyMyA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm9NZWV0aW5nUm9vbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNXYzLjg4bDIgMlY2aDN2Ny44OGwyIDJWNGgtNVYzSDYuMTJsMiAyek0yLjQxIDIuMTMgMSAzLjU0bDQgNFYxOUgzdjJoMTF2LTQuNDZMMjAuNDYgMjNsMS40MS0xLjQxTDIuNDEgMi4xM3pNMTIgMTlIN1Y5LjU0bDUgNVYxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vUGhvdG9ncmFwaHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjkgNi4wNyA3LjQ4IDQuNjYgOSAzaDZsMS44MyAySDIwYzEuMSAwIDIgLjkgMiAydjEyYzAgLjA1LS4wMS4xLS4wMi4xNkwyMCAxNy4xN1Y3aC00LjA1bC0xLjgzLTJIOS44OEw4LjkgNi4wN3ptMTEuNTkgMTcuMjRMMTguMTcgMjFINGMtMS4xIDAtMi0uOS0yLTJWN2MwLS41OS4yNy0xLjEyLjY4LTEuNDlsLTItMkwyLjEgMi4xbDE5LjggMTkuOC0xLjQxIDEuNDF6TTkuMTkgMTIuMDJjLS4xMS4zMS0uMTkuNjMtLjE5Ljk4IDAgMS42NiAxLjM0IDMgMyAzIC4zNSAwIC42Ny0uMDguOTgtLjE5bC0zLjc5LTMuNzl6TTE2LjE3IDE5bC0xLjY4LTEuNjhjLS43My40My0xLjU4LjY4LTIuNDkuNjgtMi43NiAwLTUtMi4yNC01LTUgMC0uOTEuMjUtMS43Ni42OC0yLjQ5TDQuMTcgN0g0djEyaDEyLjE3em0tMS4zNi03LjAyIDIuMDcgMi4wN2MuMDgtLjM0LjEyLS42OS4xMi0xLjA1IDAtMi43Ni0yLjI0LTUtNS01LS4zNiAwLS43MS4wNC0xLjA2LjEybDIuMDcgMi4wN2MuODQuMyAxLjUuOTYgMS44IDEuNzl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb1N0cm9sbGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAyMGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgLjktMiAyLTIgMiAuOSAyIDJ6bTctMTEuMzR2My41MWwyIDJ2LTcuOWMuNTgtLjY4Ljk3LTEuMjcgMS42NS0xLjI3Ljc3IDAgMS4zNS42NiAxLjM1IDEuNDhWN2gydi0uNTJDMjIgNC41NiAyMC41MiAzIDE4LjY1IDNjLTEuNjYgMC0yLjU0IDEuMjctMy4xOCAyLjAzbC0zLjUgNC4xMSAxLjQyIDEuNDJMMTUgOC42NnptNC43OCAxMy45NS0xLjkxLTEuOTFjLS4yOS43Ni0xLjAxIDEuMy0xLjg3IDEuMy0xLjEgMC0yLS45LTItMiAwLS44Ni41NC0xLjU4IDEuMy0xLjg3TDE0LjE3IDE3SDcuNDNjLS44NSAwLTEuMzEtMS0uNzYtMS42NWwyLjY5LTMuMTYtNy45Ny03Ljk3TDIuOCAyLjgxbDcuODYgNy44NiAxLjQyIDEuNDIgOS4xMSA5LjExLTEuNDEgMS40MXpNMTIuMTcgMTVsLTEuMzktMS4zOUw5LjYgMTVoMi41N3pNMTAgNWMuMjkgMCAuNTguMDIuODYuMDVMOS40OSA2LjY3bDEuNDIgMS40MkwxNC4zIDQuMUMxMy4wMyAzLjQgMTEuNTYgMyAxMCAzYy0xLjIzIDAtMi40LjI1LTMuNDcuN0w4LjEgNS4yN0E3LjA5IDcuMDkgMCAwIDEgMTAgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU90aGVySG91c2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMyAxIDExLjRsMS4yMSAxLjU5TDQgMTEuNjJWMjFoMTZ2LTkuMzhsMS43OSAxLjM2TDIzIDExLjQgMTIgM3ptNiAxNkg2di04LjlsNi00LjU4IDYgNC41OFYxOXptLTktNWMwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMSAuNDUtMSAxLTEgMSAuNDUgMSAxem0zLTFjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptMyAxYzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMS0uNDUgMS0xIDEtMS0uNDUtMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUG9vbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAgOC0zLjI1IDMuMjVjLjMxLjEyLjU2LjI3Ljc3LjM5LjM3LjIzLjU5LjM2IDEuMTUuMzZzLjc4LS4xMyAxLjE1LS4zNmMuNDYtLjI3IDEuMDgtLjY0IDIuMTktLjY0czEuNzMuMzcgMi4xOC42NGMuMzcuMjIuNi4zNiAxLjE1LjM2LjU1IDAgLjc4LS4xMyAxLjE1LS4zNi4xMi0uMDcuMjYtLjE1LjQxLS4yM0wxMC40OCA1QzguOTMgMy40NSA3LjUgMi45OSA1IDN2Mi41YzEuODItLjAxIDIuODkuMzkgNCAxLjVsMSAxem0xMiA4LjVoLS4wMi4wMnptLTE2LjY1LTFjLjU1IDAgLjc4LjE0IDEuMTUuMzYuNDUuMjcgMS4wNy42NCAyLjE4LjY0czEuNzMtLjM3IDIuMTgtLjY0Yy4zNy0uMjMuNTktLjM2IDEuMTUtLjM2LjU1IDAgLjc4LjE0IDEuMTUuMzYuNDUuMjcgMS4wNy42NCAyLjE4LjY0czEuNzMtLjM3IDIuMTgtLjY0Yy4zNy0uMjMuNTktLjM2IDEuMTUtLjM2LjU1IDAgLjc4LjE0IDEuMTUuMzYuNDUuMjcgMS4wNi42MyAyLjE2LjY0di0yYy0uNTUgMC0uNzgtLjE0LTEuMTUtLjM2LS40NS0uMjctMS4wNy0uNjQtMi4xOC0uNjRzLTEuNzMuMzctMi4xOC42NGMtLjM3LjIzLS42LjM2LTEuMTUuMzZzLS43OC0uMTQtMS4xNS0uMzZjLS40NS0uMjctMS4wNy0uNjQtMi4xOC0uNjRzLTEuNzMuMzctMi4xOC42NGMtLjM3LjIzLS41OS4zNi0xLjE1LjM2LS41NSAwLS43OC0uMTQtMS4xNS0uMzYtLjQ1LS4yNy0xLjA3LS42NC0yLjE4LS42NHMtMS43My4zNy0yLjE4LjY0Yy0uMzcuMjMtLjU5LjM2LTEuMTUuMzZ2MmMxLjExIDAgMS43My0uMzcgMi4yLS42NC4zNy0uMjMuNi0uMzYgMS4xNS0uMzZ6TTE4LjY3IDE4Yy0xLjExIDAtMS43My4zNy0yLjE4LjY0LS4zNy4yMy0uNi4zNi0xLjE1LjM2LS41NSAwLS43OC0uMTQtMS4xNS0uMzYtLjQ1LS4yNy0xLjA3LS42NC0yLjE4LS42NHMtMS43My4zNy0yLjE5LjY0Yy0uMzcuMjMtLjU5LjM2LTEuMTUuMzZzLS43OC0uMTMtMS4xNS0uMzZjLS40NS0uMjctMS4wNy0uNjQtMi4xOC0uNjRzLTEuNzMuMzctMi4xOS42NGMtLjM3LjIzLS41OS4zNi0xLjE1LjM2djJjMS4xMSAwIDEuNzMtLjM3IDIuMTktLjY0LjM3LS4yMy42LS4zNiAxLjE1LS4zNi41NSAwIC43OC4xMyAxLjE1LjM2LjQ1LjI3IDEuMDcuNjQgMi4xOC42NHMxLjczLS4zNyAyLjE5LS42NGMuMzctLjIzLjU5LS4zNiAxLjE1LS4zNi41NSAwIC43OC4xNCAxLjE1LjM2LjQ1LjI3IDEuMDcuNjQgMi4xOC42NHMxLjcyLS4zNyAyLjE4LS42NGMuMzctLjIzLjU5LS4zNiAxLjE1LS4zNi41NSAwIC43OC4xNCAxLjE1LjM2LjQ1LjI3IDEuMDcuNjQgMi4xOC42NHYtMmMtLjU2IDAtLjc4LS4xMy0xLjE1LS4zNi0uNDUtLjI3LTEuMDctLjY0LTIuMTgtLjY0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE2LjVcIixcImN5XCI6XCI1LjVcIixcInJcIjpcIjIuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmljZUJvd2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS42NiAxNGMtLjY2IDEuOTItMi4yNCAzLjU0LTQuNCA0LjM5bC0xLjI2LjQ5VjIwaC00di0xLjEybC0xLjI3LS41Yy0yLjE2LS44NS0zLjc0LTIuNDctNC40LTQuMzloMTUuMzNNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJjMCAzLjY5IDIuNDcgNi44NiA2IDguMjVWMjJoOHYtMS43NWMzLjUzLTEuMzkgNi00LjU2IDYtOC4yNSAwLTUuNTItNC40OC0xMC0xMC0xMHptLTIgMTBWNC4yNmMuNjQtLjE2IDEuMzEtLjI2IDItLjI2czEuMzYuMSAyIC4yNlYxMmgtNHptNiAwVjUuMDhjMi4zOSAxLjM5IDQgMy45NiA0IDYuOTJoLTR6TTQgMTJjMC0yLjk1IDEuNjEtNS41MyA0LTYuOTJWMTJINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJvb2ZpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxOGgtMnYtMmgydjJ6bTItNEg5djZoNnYtNnptNC00LjdWNGgtM3YyLjZMMTIgMyAyIDEyaDNsNy02LjMxTDE5IDEyaDNsLTMtMi43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUm9vbVByZWZlcmVuY2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuNjkgMTYuMzcgMS4xNC0xLTEtMS43My0xLjQ1LjQ5Yy0uMzItLjI3LS42OC0uNDgtMS4wOC0uNjNMMTkgMTJoLTJsLS4zIDEuNDljLS40LjE1LS43Ni4zNi0xLjA4LjYzbC0xLjQ1LS40OS0xIDEuNzMgMS4xNCAxYy0uMDguNS0uMDguNzYgMCAxLjI2bC0xLjE0IDEgMSAxLjczIDEuNDUtLjQ5Yy4zMi4yNy42OC40OCAxLjA4LjYzTDE3IDIyaDJsLjMtMS40OWMuNC0uMTUuNzYtLjM2IDEuMDgtLjYzbDEuNDUuNDkgMS0xLjczLTEuMTQtMWMuMDgtLjUxLjA4LS43NyAwLTEuMjd6TTE4IDE5Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnptMS0xNXY2aC0yVjZoLTJ2NmgtMlY1SDd2MTRoNXYySDN2LTJoMlYzaDEwdjFoNHptLTcgOWgtMnYtMmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSb29tU2VydmljZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguOTggMTdIMnYyaDIwdi0yek0yMSAxNmMtLjI3LTQuMDctMy4yNS03LjQtNy4xNi04LjIxQTIuMDA2IDIuMDA2IDAgMCAwIDEyIDVhMi4wMDYgMi4wMDYgMCAwIDAtMS44NCAyLjc5QzYuMjUgOC42IDMuMjcgMTEuOTMgMyAxNmgxOHptLTktNi40MmMyLjk1IDAgNS40NyAxLjgzIDYuNSA0LjQxaC0xM0E3LjAwMiA3LjAwMiAwIDAgMSAxMiA5LjU4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUnZIb29rdXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE3di02YzAtMS4xLS45LTItMi0ySDdWN2wtMyAzIDMgM3YtMmg0djNINHYzYzAgMS4xLjkgMiAyIDJoMmMwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zaDh2LTJoLTJ6bS05IDNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptNy02aC00di0zaDR2M3pNMTcgMnYySDl2Mmg4djJsMy0zLTMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNtb2tlRnJlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNSAxM0gyMnYzaC0xLjV6TTE4IDEzaDEuNXYzSDE4em0tMSAwaC0yLjM0TDE3IDE1LjM0em0tMi41LTQuMzVoMS41M2MxLjA1IDAgMS45Ny43NCAxLjk3IDIuMDVWMTJoMS41di0xLjY0YzAtMS44MS0xLjYtMy4xNi0zLjQ3LTMuMTZIMTQuNWMtMS4wMiAwLTEuODUtLjk4LTEuODUtMnMuODMtMS43NSAxLjg1LTEuNzV2LTEuNWEzLjM1IDMuMzUgMCAwIDAgMCA2Ljd6bTQuMzUtMy45MmMuNjItLjYxIDEtMS40NSAxLTIuMzhoLTEuNWMwIDEuMDItLjgzIDEuODUtMS44NSAxLjg1djEuNWMyLjI0IDAgNCAxLjgzIDQgNC4wN1YxMkgyMlY5Ljc2YzAtMi4yMi0xLjI4LTQuMTQtMy4xNS01LjAzek0zLjQxIDQuNTkgMiA2bDcgN0gydjNoMTBsNyA3IDEuNDEtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNtb2tpbmdSb29tcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTZoMS41djNIMTh6TTIgMTZoMTV2M0gyem0xNC4wMy01LjhIMTQuNWMtMS4wMiAwLTEuODUtLjk4LTEuODUtMnMuODMtMS43NSAxLjg1LTEuNzV2LTEuNWEzLjM1IDMuMzUgMCAwIDAgMCA2LjdoMS41M2MxLjA1IDAgMS45Ny43NCAxLjk3IDIuMDVWMTVoMS41di0xLjY0YzAtMS44MS0xLjYtMy4xNi0zLjQ3LTMuMTZ6TTIwLjUgMTZIMjJ2M2gtMS41em0tMS42NS04LjI3Yy42Mi0uNjEgMS0xLjQ1IDEtMi4zOEMxOS44NSAzLjUgMTguMzUgMiAxNi41IDJ2MS41YzEuMDIgMCAxLjg1LjgzIDEuODUgMS44NVMxNy41MiA3LjIgMTYuNSA3LjJ2MS41YzIuMjQgMCA0IDEuODMgNCA0LjA3VjE1SDIydi0yLjI0YzAtMi4yMi0xLjI4LTQuMTQtMy4xNS01LjAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU29hcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjI1IDZjLjQxIDAgLjc1LjM0Ljc1Ljc1cy0uMzQuNzUtLjc1Ljc1LS43NS0uMzQtLjc1LS43NS4zNC0uNzUuNzUtLjc1bTAtMS41QzEzLjAxIDQuNSAxMiA1LjUxIDEyIDYuNzVTMTMuMDEgOSAxNC4yNSA5czIuMjUtMS4wMSAyLjI1LTIuMjUtMS4wMS0yLjI1LTIuMjUtMi4yNXptNS43NSAxYy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNS0uNS0uMjItLjUtLjUuMjItLjUuNS0uNU0yMCA0Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptLTMuNS0zYy0uODMgMC0xLjUuNjctMS41IDEuNVMxNS42NyA0IDE2LjUgNCAxOCAzLjMzIDE4IDIuNSAxNy4zMyAxIDE2LjUgMXptNC4yNSAxNWExLjI1IDEuMjUgMCAwIDAgMC0yLjVIMTJ2LTFoNi43NWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjUgMC0uNjctLjUzLTEuMi0xLjE4LTEuMjRMOC44NyAxMGwxLjQ4LTIuNmMuMDktLjE3LjE0LS4zNC4xNC0uNTQgMC0uMjYtLjA5LS41LS4yNi0uN0w5LjEyIDVsLTcuMTggNi44Yy0uNi41Ni0uOTQgMS4zNS0uOTQgMi4xN1YyMGMwIDEuNjYgMS4zNCAzIDMgM2gxMy43NWExLjI1IDEuMjUgMCAwIDAgMC0yLjVIMTJ2LTFoNy43NWExLjI1IDEuMjUgMCAwIDAgMC0yLjVIMTJ2LTFoOC43NXpNMTAgMjFINGMtLjU1IDAtMS0uNDUtMS0xdi02YzAtLjM5LjIzLS42NC4zNi0uNzVMNyA5Ljg3VjEyaDN2OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNDkgOS42M2MtLjE4LTIuNzktMS4zMS01LjUxLTMuNDMtNy42M2ExMi4xODggMTIuMTg4IDAgMCAwLTMuNTUgNy42M2MxLjI4LjY4IDIuNDYgMS41NiAzLjQ5IDIuNjMgMS4wMy0xLjA2IDIuMjEtMS45NCAzLjQ5LTIuNjN6bS0zLjQ0LTQuNDRjLjYzIDEuMDMgMS4wNyAyLjE4IDEuMyAzLjM4LS40Ny4zLS45MS42My0xLjM0Ljk4LS40Mi0uMzQtLjg3LS42Ny0xLjMzLS45Ny4yNS0xLjIuNzEtMi4zNSAxLjM3LTMuMzl6TTEyIDE1LjQ1YTEyLjExIDEyLjExIDAgMCAwLTMuMDYtMy4yYy0uMTMtLjA5LS4yNy0uMTYtLjQtLjI2LjEzLjA5LjI3LjE3LjM5LjI1QTExLjc3NyAxMS43NzcgMCAwIDAgMiAxMGMwIDUuMzIgMy4zNiA5LjgyIDguMDMgMTEuNDkuNjMuMjMgMS4yOS40IDEuOTcuNTEuNjgtLjEyIDEuMzMtLjI5IDEuOTctLjUxQzE4LjY0IDE5LjgyIDIyIDE1LjMyIDIyIDEwYy00LjE4IDAtNy44NSAyLjE3LTEwIDUuNDV6bTEuMzIgNC4xNWMtLjQ0LjE1LS44OC4yNy0xLjMzLjM3LS40NC0uMDktLjg3LS4yMS0xLjI4LS4zNi0zLjI5LTEuMTgtNS43LTMuOTktNi40NS03LjM1IDEuMS4yNiAyLjE1LjcxIDMuMTIgMS4zM2wtLjAyLjAxYy4xMy4wOS4yNi4xOC4zOS4yNWwuMDcuMDRjLjk5LjcyIDEuODQgMS42MSAyLjUxIDIuNjVMMTIgMTkuMWwxLjY3LTIuNTVhMTAuMTkgMTAuMTkgMCAwIDEgMi41My0yLjY2bC4wNy0uMDVjLjA5LS4wNS4xOC0uMTEuMjctLjE3bC0uMDEtLjAyYy45OC0uNjUgMi4wNy0xLjEzIDMuMjEtMS40LS43NSAzLjM3LTMuMTUgNi4xOC02LjQyIDcuMzV6bS00LjMzLTcuMzJjLS4wMi0uMDEtLjA0LS4wMy0uMDUtLjA0IDAgMCAuMDEgMCAuMDEuMDEuMDEuMDEuMDIuMDIuMDQuMDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcG9ydHNCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxOUg4di02LjYzYzEuMjYtLjM0IDIuMTEtMS4yNyAyLjc3LTEuOTlDMTEuNiA5LjQ3IDEyLjA4IDkgMTMgOWgydjEwek0xMCAyLjAyYy0xLjg5IDAtMy41MSAxLjExLTQuMjcgMi43MUM0LjE1IDUuMjYgMyA2Ljc0IDMgOC41YzAgMS44NiAxLjI4IDMuNDEgMyAzLjg2VjIxaDExdi0yaDJjMS4xIDAgMi0uOSAyLTJ2LTZjMC0xLjEtLjktMi0yLTJoLTEuNTZjLjM1LS41OS41Ni0xLjI3LjU2LTIgMC0yLjIxLTEuNzktNC00LTQtLjM0IDAtLjY2LjA1LS45OC4xM0E0LjcwNyA0LjcwNyAwIDAgMCAxMCAyLjAyek03IDEwLjVjLTEuMSAwLTItLjktMi0yIDAtLjg1LjU1LTEuNiAxLjM3LTEuODhsLjgtLjI3LjM2LS43NkM4IDQuNjIgOC45NCA0LjAyIDEwIDQuMDJjLjc5IDAgMS4zOS4zNSAxLjc0LjY1bC43OC42NVMxMy4xNiA1IDEzLjk5IDVjMS4xIDAgMiAuOSAyIDJoLTNDOS42NyA3IDkuMTUgMTAuNSA3IDEwLjV6TTE3IDE3di02aDJ2NmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0YWlycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDV2MTRINVY1aDE0bTAtMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS0xIDNoLTQuNDJ2My4zM0gxMXYzLjMzSDguNDJWMTZINnYyaDQuNDJ2LTMuMzNIMTN2LTMuMzNoMi41OFY4SDE4VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdG9yZWZyb250IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuOSA4Ljg5LTEuMDUtNC4zN2MtLjIyLS45LTEtMS41Mi0xLjkxLTEuNTJINS4wNWMtLjkgMC0xLjY5LjYzLTEuOSAxLjUyTDIuMSA4Ljg5Yy0uMjQgMS4wMi0uMDIgMi4wNi42MiAyLjg4LjA4LjExLjE5LjE5LjI4LjI5VjE5YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTYuOTRjLjA5LS4wOS4yLS4xOC4yOC0uMjguNjQtLjgyLjg3LTEuODcuNjItMi44OXptLTIuOTktMy45IDEuMDUgNC4zN2MuMS40Mi4wMS44NC0uMjUgMS4xNy0uMTQuMTgtLjQ0LjQ3LS45NC40Ny0uNjEgMC0xLjE0LS40OS0xLjIxLTEuMTRMMTYuOTggNWwxLjkzLS4wMXpNMTMgNWgxLjk2bC41NCA0LjUyYy4wNS4zOS0uMDcuNzgtLjMzIDEuMDctLjIyLjI2LS41NC40MS0uOTUuNDEtLjY3IDAtMS4yMi0uNTktMS4yMi0xLjMxVjV6TTguNDkgOS41MiA5LjA0IDVIMTF2NC42OWMwIC43Mi0uNTUgMS4zMS0xLjI5IDEuMzEtLjM0IDAtLjY1LS4xNS0uODktLjQxYTEuNDIgMS40MiAwIDAgMS0uMzMtMS4wN3ptLTQuNDUtLjE2TDUuMDUgNWgxLjk3bC0uNTggNC44NmMtLjA4LjY1LS42IDEuMTQtMS4yMSAxLjE0LS40OSAwLS44LS4yOS0uOTMtLjQ3LS4yNy0uMzItLjM2LS43NS0uMjYtMS4xN3pNNSAxOXYtNi4wM2MuMDguMDEuMTUuMDMuMjMuMDMuODcgMCAxLjY2LS4zNiAyLjI0LS45NS42LjYgMS40Ljk1IDIuMzEuOTUuODcgMCAxLjY1LS4zNiAyLjIzLS45My41OS41NyAxLjM5LjkzIDIuMjkuOTMuODQgMCAxLjY0LS4zNSAyLjI0LS45NS41OC41OSAxLjM3Ljk1IDIuMjQuOTUuMDggMCAuMTUtLjAyLjIzLS4wM1YxOUg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3Ryb2xsZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAyMGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgLjktMiAyLTIgMiAuOSAyIDJ6TTYgMThjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem05LTkuMzRMOS42IDE1SDE1VjguNjZNMTguNjUgM0MyMC41MiAzIDIyIDQuNTYgMjIgNi40OFY3aC0ydi0uNTJDMjAgNS42NiAxOS40MiA1IDE4LjY1IDVjLS42OCAwLTEuMDcuNTktMS42NSAxLjI3VjE1YzAgMS4xLS45IDItMiAySDcuNDNjLS44NSAwLTEuMzEtMS0uNzYtMS42NWw4LjgtMTAuMzJDMTYuMTEgNC4yNyAxNi45OSAzIDE4LjY1IDN6TTEwIDVjLS42NSAwLTEuMjkuMDktMS45MS4yN2wxLjQgMS40IDEuMzctMS42MUE2LjExIDYuMTEgMCAwIDAgMTAgNW0wLTJjMS41NiAwIDMuMDMuNCA0LjMgMS4xTDkuNiA5LjYxIDQuNzIgNC43MkE4Ljk2MiA4Ljk2MiAwIDAgMSAxMCAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGFwYXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMFYxaC04djljMCAxLjg2IDEuMjggMy40MSAzIDMuODZWMjFoLTJ2Mmg2di0yaC0ydi03LjE0YzEuNzItLjQ1IDMtMiAzLTMuODZ6bS0yLTd2M2gtNFYzaDR6bS00IDdWOGg0djJjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yem0tNi0xSDhWOGgyYTIuNSAyLjUgMCAwIDAgMC01SDhWMUg2djJINGEyLjUgMi41IDAgMCAwIDAgNWgydjFINGEyLjUgMi41IDAgMCAwIDAgNWgydjloMnYtOWgyYTIuNSAyLjUgMCAwIDAgMC01ek00IDZjLS4yOCAwLS41LS4yMi0uNS0uNVMzLjcyIDUgNCA1aDZjLjI4IDAgLjUuMjIuNS41cy0uMjIuNS0uNS41SDR6bTYgNkg0Yy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjVoNmMuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA2aC0yVjRoMnYyem0yIDFoLTJ2MmgyVjd6bTEgMmgyVjdoLTJ2MnptMC01aC0ydjJoMlY0em0tNCAzaC0ydjJoMlY3em00IDNoLTJ2Mmgydi0yem0tMyAwaC0ydjJoMnYtMnptLTMtNmgtMnYyaDJWNHptNyAxMS44MnY0LjE1YzAgLjU2LS40NyAxLjAzLTEuMDMgMS0yLjg5LS4xNy01LjYtMS4wMy03Ljk3LTIuNEExNy45OTkgMTcuOTk5IDAgMCAxIDQuNDMgMTJhMTcuODkgMTcuODkgMCAwIDEtMi40LTcuOTdDMiAzLjQ3IDIuNDcgMyAzLjAzIDNoNC4xNWMuNDggMCAuODkuMzQuOTguOGwuNzQgMy42OGEuOTkuOTkgMCAwIDEtLjI3LjlMNi4xIDEwLjljMS40MyAyLjUgMy41IDQuNTcgNiA2bDIuNTItMi41MmEuOTguOTggMCAwIDEgLjktLjI3bDMuNjcuNzNjLjQ3LjA5LjgxLjUuODEuOTh6TTUuMTggOC45OWwxLjY1LTEuNjVMNi4zNiA1SDQuMTNjLjE3IDEuMzcuNTMgMi43MSAxLjA1IDMuOTl6TTE4IDE2LjY0bC0yLjM0LS40Ny0xLjY1IDEuNjVjMS4yOC41MiAyLjYzLjg3IDMuOTkgMS4wNXYtMi4yM3pNMjAgNHYyaDJWNGgtMnptMCA4aDJ2LTJoLTJ2MnptLTctMmgtMnYyaDJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVVbWJyZWxsYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgNi45MiAxMyA1Ljc3VjMuNGMwLS4yNi4yMi0uNDguNS0uNDhzLjUuMjEuNS40OFY0aDJ2LS42QzE2IDIuMDcgMTQuODggMSAxMy41IDFTMTEgMi4wNyAxMSAzLjR2Mi4zN0w5LjUgNi45MiA2IDYuMDdsNS4wNSAxNS4yNWMuMTUuNDUuNTUuNjguOTUuNjhzLjgtLjIzLjk1LS42OUwxOCA2LjA3bC0zLjUuODV6TTEzLjI4IDguNWwuNzYuNTguOTItLjIzTDEzIDE0LjhWOC4yOWwuMjguMjF6bS0zLjMyLjU5Ljc2LS41OC4yOC0uMjJ2Ni41MUw5LjAzIDguODZsLjkzLjIzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmFwZUZyZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDE2LjVoMWMxLjMzIDAgMi43MS0uMTggNC0uNXYzYy0xLjI5LS4zMi0yLjY3LS41LTQtLjVIMnYtMnpNMTYuMTcgMTlIOHYtM2g1LjE3TDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOCAxOC4zOC0xLjQxIDEuNDEtMy42LTMuNnptMi42Ni0zSDIydjNoLS4xN2wtMy0zek0xMSAxNy41YzAtLjI4LS4yMi0uNS0uNS0uNXMtLjUuMjItLjUuNS4yMi41LjUuNS41LS4yMi41LS41em0xMS00Ljc0VjE1aC0xLjV2LTIuMjNjMC0yLjI0LTEuNzYtNC4wNy00LTQuMDdWNy4yYzEuMDIgMCAxLjg1LS44MyAxLjg1LTEuODVTMTcuNTIgMy41IDE2LjUgMy41VjJjMS44NSAwIDMuMzUgMS41IDMuMzUgMy4zNSAwIC45My0uMzggMS43Ny0xIDIuMzggMS44Ny44OSAzLjE1IDIuODEgMy4xNSA1LjAzek0xMS4xNSA4LjMyVjguM2MwLTEuODUgMS41LTMuMzUgMy4zNS0zLjM1djEuNWMtMS4wMiAwLTEuODUuNzMtMS44NSAxLjc1cy44MyAyIDEuODUgMmgxLjUzYzEuODcgMCAzLjQ3IDEuMzUgMy40NyAzLjE2VjE1SDE4di0xLjNjMC0xLjMxLS45Mi0yLjA1LTEuOTctMi4wNWgtMS41NWwtMy4zMy0zLjMzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmFwaW5nUm9vbXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDE2LjVoMWMxLjMzIDAgMi43MS0uMTggNC0uNXYzYy0xLjI5LS4zMi0yLjY3LS41LTQtLjVIMnYtMnptMjAtLjV2M0g4di0zaDE0em0tMTEgMS41YzAtLjI4LS4yMi0uNS0uNS0uNXMtLjUuMjItLjUuNS4yMi41LjUuNS41LS4yMi41LS41em0xMS00Ljc0VjE1aC0xLjV2LTIuMjNjMC0yLjI0LTEuNzYtNC4wNy00LTQuMDdWNy4yYzEuMDIgMCAxLjg1LS44MyAxLjg1LTEuODVTMTcuNTIgMy41IDE2LjUgMy41VjJjMS44NSAwIDMuMzUgMS41IDMuMzUgMy4zNSAwIC45My0uMzggMS43Ny0xIDIuMzggMS44Ny44OSAzLjE1IDIuODEgMy4xNSA1LjAzem0tMi41LjZWMTVIMTh2LTEuM2MwLTEuMzEtLjkyLTIuMDUtMS45Ny0yLjA1SDE0LjVhMy4zNSAzLjM1IDAgMCAxIDAtNi43djEuNWMtMS4wMiAwLTEuODUuNzMtMS44NSAxLjc1cy44MyAyIDEuODUgMmgxLjUzYzEuODcgMCAzLjQ3IDEuMzUgMy40NyAzLjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlsbGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxMGMtMS4xIDAtMiAuOS0yIDJoLTFWM0wzIDh2MTNoMTh2LTljMC0xLjEtLjktMi0yLTJ6TTUgOS4zN2w5LTMuNDZWMTJIOXY3SDVWOS4zN3pNMTkgMTloLTN2LTNoLTJ2M2gtM3YtNWg4djV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNzUgMTZhMS4yNSAxLjI1IDAgMCAwIDAtMi41SDEydi0xaDYuNzVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1IDAtLjY3LS41My0xLjItMS4xOC0xLjI0TDguODcgMTBsMS40OC0yLjZjLjA5LS4xNy4xNC0uMzQuMTQtLjU0IDAtLjI2LS4wOS0uNS0uMjYtLjdMOS4xMiA1bC03LjE4IDYuOGMtLjYuNTYtLjk0IDEuMzUtLjk0IDIuMTdWMjBjMCAxLjY2IDEuMzQgMyAzIDNoMTMuNzVhMS4yNSAxLjI1IDAgMCAwIDAtMi41SDEydi0xaDcuNzVhMS4yNSAxLjI1IDAgMCAwIDAtMi41SDEydi0xaDguNzV6TTEwIDIxSDRjLS41NSAwLTEtLjQ1LTEtMXYtNmMwLS4zOS4yMy0uNjQuMzYtLjc1TDcgOS44N1YxMmgzdjl6bTMuNS0xMmMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uODQtMS41LTIuNS0xLjUtMi41UzEyIDYuNjYgMTIgNy41YzAgLjgzLjY3IDEuNSAxLjUgMS41em01LThTMTYgMy44MyAxNiA1LjVhMi41IDIuNSAwIDAgMCA1IDBDMjEgMy44MyAxOC41IDEgMTguNSAxem0wIDUuNWMtLjU1IDAtMS0uNDUtMS0xIDAtLjQuNDMtMS4yMiAxLTIuMDUuNTcuODMgMSAxLjY1IDEgMi4wNSAwIC41NS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXYXRlckRhbWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDMgMiAxMmgzdjhoMTR2LThoM0wxMiAzek03IDE4di03LjgxbDUtNC41IDUgNC41VjE4SDd6bTctNGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgMi00IDItNCAyIDIuOSAyIDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXaGVlbGNoYWlyUGlja3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC41IDRjMC0xLjExLjg5LTIgMi0yczIgLjg5IDIgMi0uODkgMi0yIDItMi0uODktMi0yem01LjUgNi45NVY5YzAtMS4xLS45LTItMi0ySDVjLTEuMSAwLTIgLjktMiAydjZoMnY3aDMuNXYtLjExYy0xLjI0LTEuMjYtMi0yLjk5LTItNC44OSAwLTIuNTggMS40MS00Ljg0IDMuNS02LjA1ek0xNi41IDE3YzAgMS42NS0xLjM1IDMtMyAzcy0zLTEuMzUtMy0zYzAtMS4xMS42MS0yLjA2IDEuNS0yLjU4di0yLjE2Yy0yLjAyLjY0LTMuNSAyLjUxLTMuNSA0Ljc0IDAgMi43NiAyLjI0IDUgNSA1czUtMi4yNCA1LTVoLTJ6bTMuMDQtM0gxNVY4aC0ydjhoNS40NmwyLjQ3IDMuNzEgMS42Ni0xLjExLTMuMDUtNC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmF0aHJvb20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTRjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxLS40NSAxLTEgMS0xLS40NS0xLTF6bTQgMWMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0zIDBjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptLTMtNy41Yy0xLjc2IDAtMy4yMiAxLjMxLTMuNDYgM2g2LjkzYTMuNTIgMy41MiAwIDAgMC0zLjQ3LTNNMTIgNmMyLjc2IDAgNSAyLjI0IDUgNXYxSDd2LTFjMC0yLjc2IDIuMjQtNSA1LTV6TTkgMThjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMyAwYy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTMgMGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem01LTE0SDR2MTZoMTZWNG0wLTJjMS4xIDAgMiAuOSAyIDJ2MTZjMCAxLjEtLjkgMi0yIDJINGMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMC43OFY4YzAtMS42NS0xLjM1LTMtMy0zaC00Yy0uNzcgMC0xLjQ3LjMtMiAuNzgtLjUzLS40OC0xLjIzLS43OC0yLS43OEg2QzQuMzUgNSAzIDYuMzUgMyA4djIuNzhjLS42MS41NS0xIDEuMzQtMSAyLjIydjZoMnYtMmgxNnYyaDJ2LTZjMC0uODgtLjM5LTEuNjctMS0yLjIyek0xNCA3aDRjLjU1IDAgMSAuNDUgMSAxdjJoLTZWOGMwLS41NS40NS0xIDEtMXpNNSA4YzAtLjU1LjQ1LTEgMS0xaDRjLjU1IDAgMSAuNDUgMSAxdjJINVY4em0tMSA3di0yYzAtLjU1LjQ1LTEgMS0xaDE0Yy41NSAwIDEgLjQ1IDEgMXYySDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCZWRyb29tQmFieSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuOTQgMTQuMDRjLS4zNC4zNC0uNzEuNjQtMS4xLjkyTDE2IDEzLjVWMTFoMXYtMWgtNS42Mkw5LjY1IDdINmwxIC43Nkw1LjUgOS41bC45NSAxTDggOS41MXYzLjk5bC0uODQgMS40NmMtLjM5LS4yNy0uNzYtLjU4LTEuMS0uOTJMNSAxNS4xYzEuODcgMS44NyA0LjM2IDIuOSA3IDIuOXM1LjEzLTEuMDMgNy0yLjlsLTEuMDYtMS4wNnptLTkuNDkgMS42Ny4wMy0uMDYuODEtMS40MWMxLjc0LjY1IDMuNjYuNjUgNS40IDBsLjgxIDEuNDEuMDMuMDZjLTEuMS41MS0yLjMuNzktMy41NS43OXMtMi40My0uMjctMy41My0uNzl6TTIwIDR2MTZINFY0aDE2bTAtMkg0Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCZWRyb29tQ2hpbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDR2MTZINFY0aDE2bTAtMkg0Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS0zLjUgOC42N1Y5YzAtMS4xLS45LTItMi0yaC01Yy0xLjEgMC0yIC45LTIgMnYxLjY3Yy0uODguMzUtMS41IDEuMi0xLjUgMi4yVjE3aDEuNXYtMS41aDlWMTdIMTh2LTQuMTNjMC0xLS42Mi0xLjg1LTEuNS0yLjJ6TTE1IDguNXYySDl2LTJoNnptLTcuNSA0LjM3YzAtLjQ4LjM5LS44Ny44Ny0uODdoNy4yN2MuNDggMCAuODcuMzkuODcuODdWMTRoLTl2LTEuMTNINy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmVkcm9vbVBhcmVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguMzUgMTEuNDVWOWMwLTEuMS0uOS0yLTItMkgxM2MtLjM3IDAtLjcyLjEyLTEgLjMyLS4yOC0uMi0uNjMtLjMyLTEtLjMySDcuNjVjLTEuMSAwLTIgLjktMiAydjIuNDVjLS40LjQ2LS42NSAxLjA2LS42NSAxLjcyVjE3aDEuNXYtMS41aDExVjE3SDE5di0zLjgzYzAtLjY2LS4yNS0xLjI2LS42NS0xLjcyem0tMS42LS45NWgtNHYtMmg0djJ6bS05LjUtMmg0djJoLTR2LTJ6TTE3LjUgMTRoLTExdi0xYzAtLjU1LjQ1LTEgMS0xaDljLjU1IDAgMSAuNDUgMSAxdjF6TTIwIDR2MTZINFY0aDE2bTAtMkg0Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCbGVuZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi4xMyAxNS4xMyAxOCAzaC00VjJoLTR2MUg1Yy0xLjEgMC0yIC45LTIgMnY0YzAgMS4xLjkgMiAyIDJoMi4yM2wuNjQgNC4xM0M2Ljc0IDE2LjA1IDYgMTcuNDMgNiAxOXYxYzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMnYtMWMwLTEuNTctLjc0LTIuOTUtMS44Ny0zLjg3ek01IDlWNWgxLjMxbC42MiA0SDV6bTEwLjY3LTQtMS4zOCA5SDkuNzJMOC4zMyA1aDcuMzR6TTE2IDIwSDh2LTFjMC0xLjY1IDEuMzUtMyAzLTNoMmMxLjY1IDAgMyAxLjM1IDMgM3YxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMThcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbWVyYUluZG9vciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTN2LTFjMC0uNTUtLjQ1LTEtMS0xSDljLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxaDRjLjU1IDAgMS0uNDUgMS0xdi0xbDIgMS4wNnYtNC4xMkwxNCAxM3ptLTItNy41IDYgNC41djlINnYtOWw2LTQuNU0xMiAzIDQgOXYxMmgxNlY5bC04LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYW1lcmFPdXRkb29yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM2MwLS41NS0uNDUtMS0xLTFoLTRjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxaDRjLjU1IDAgMS0uNDUgMS0xdi0xbDIgMS4wNnYtNC4xMkwxOCAxNHYtMXpNMTIgMyA0IDl2MTJoMTZ2LTJINnYtOWw2LTQuNSA2IDQuNXYxaDJWOWwtOC02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2hhaXJBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEwYzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJIN2MtMS4xIDAtMiAuOS0yIDJ2M2MwIDEuMS45IDIgMiAyaDF2Mkg3Yy0xLjEgMC0yIC45LTIgMnY3aDJ2LTNoMTB2M2gydi03YzAtMS4xLS45LTItMi0yaC0xdi0yaDF6TTcgOFY1aDEwdjNIN3ptMTAgOEg3di0yaDEwdjJ6bS0zLTRoLTR2LTJoNHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2hhaXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDhWNmMwLTEuNjUtMS4zNS0zLTMtM0g3QzUuMzUgMyA0IDQuMzUgNCA2djJjLTEuNjUgMC0zIDEuMzUtMyAzdjVjMCAxLjY1IDEuMzUgMyAzIDN2MWMwIC41NS40NSAxIDEgMXMxLS40NSAxLTF2LTFoMTJ2MWMwIC41NS40NSAxIDEgMXMxLS40NSAxLTF2LTFjMS42NSAwIDMtMS4zNSAzLTN2LTVjMC0xLjY1LTEuMzUtMy0zLTN6TTYgNmMwLS41NS40NS0xIDEtMWgxMGMuNTUgMCAxIC40NSAxIDF2Mi43OGMtLjYxLjU1LTEgMS4zNC0xIDIuMjJ2Mkg3di0yYzAtLjg4LS4zOS0xLjY3LTEtMi4yMlY2em0xNSAxMGMwIC41NS0uNDUgMS0xIDFINGMtLjU1IDAtMS0uNDUtMS0xdi01YzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXY0aDE0di00YzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29mZmVlTWFrZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDZWNGgyVjJINmMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNHYtMmgtNC4wM0E0Ljk2NiA0Ljk2NiAwIDAgMCAxOCAxNnYtNUg4djVjMCAxLjY0LjgxIDMuMDkgMi4wMyA0SDZWNGgydjJjMCAuNTUuNDUgMSAxIDFoOGMuNTUgMCAxLS40NSAxLTF6bS04IDEwdi0zaDZ2M2MwIDEuNjUtMS4zNSAzLTMgM3MtMy0xLjM1LTMtM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxM1wiLFwiY3lcIjpcIjlcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvZmZlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNSAzSDZjLTEuMSAwLTIgLjktMiAydjUuNzFjMCAzLjgzIDIuOTUgNy4xOCA2Ljc4IDcuMjkgMy45Ni4xMiA3LjIyLTMuMDYgNy4yMi03di0xaC41YzEuOTMgMCAzLjUtMS41NyAzLjUtMy41UzIwLjQzIDMgMTguNSAzek0xNiA1djNINlY1aDEwem0wIDV2MWMwIDIuNzYtMi4yNCA1LTUgNXMtNS0yLjI0LTUtNXYtMW0xMi41LTJIMThWNWguNWMuODMgMCAxLjUuNjcgMS41IDEuNVMxOS4zMyA4IDE4LjUgOHpNNCAxOWgxNnYySDR2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0Ljc1IDZjLTEuMzcgMC0yLjUgMS41Mi0yLjUgMy40IDAgMS40OC43IDIuNzEgMS42NyAzLjE4bC4wOC4wNFYxOWgxLjV2LTYuMzhsLjA4LS4wM2MuOTctLjQ3IDEuNjctMS43IDEuNjctMy4xOCAwLTEuODgtMS4xMi0zLjQxLTIuNS0zLjQxTTEwLjUgNmMtLjI3IDAtLjUuMjItLjUuNVY5aC0uNzVWNi41YzAtLjI4LS4yMi0uNS0uNS0uNXMtLjUuMjItLjUuNVY5SDcuNVY2LjVjMC0uMjgtLjIyLS41LS41LS41cy0uNS4yMi0uNS41djMuOGMwIC45My42NCAxLjcxIDEuNSAxLjkzVjE5aDEuNXYtNi43N2MuODYtLjIyIDEuNS0xIDEuNS0xLjkzVjYuNWMwLS4yOC0uMjItLjUtLjUtLjV6TTIwIDRINHYxNmgxNlY0bTAtMmMxLjEgMCAyIC45IDIgMnYxNmMwIDEuMS0uOSAyLTIgMkg0Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEb29yQmFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTlWNWMwLTEuMS0uOS0yLTItMkg3Yy0xLjEgMC0yIC45LTIgMnYxNEgzdjJoMTh2LTJoLTJ6bS0yIDBIN1Y1aDEwdjE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDExaDJ2Mkg5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG9vckZyb250IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxOVY1YzAtMS4xLS45LTItMi0ySDdjLTEuMSAwLTIgLjktMiAydjE0SDN2MmgxOHYtMmgtMnptLTIgMEg3VjVoMTB2MTR6bS00LThoMnYyaC0ydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG9vclNsaWRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDEzSDh2LTJoMnYyem02LTJoLTJ2Mmgydi0yem01IDh2Mkgzdi0yaDFWNWMwLTEuMS45LTIgMi0yaDEyYzEuMSAwIDIgLjkgMiAydjE0aDF6TTExIDVINnYxNGg1VjV6bTcgMGgtNXYxNGg1VjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEb29yYmVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTYuNWgyYzAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xem00LTEuNXYtMi4zNGMwLTEuNTQtLjgxLTIuODItMi4yNS0zLjE2di0uMjVjMC0uNDEtLjM0LS43NS0uNzUtLjc1cy0uNzUuMzQtLjc1Ljc1di4yNUM5LjgyIDkuODQgOSAxMS4xMiA5IDEyLjY2VjE1SDh2MWg4di0xaC0xem0tMy05LjVMNiAxMHY5aDEydi05bC02LTQuNU0xMiAzbDggNnYxMkg0VjlsOC02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmVlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjhsLTUtNXptMyAxNkg1VjVoMTB2NGg0djEwek03IDE3aDEwdi0ySDd2MnptNS0xMEg3djJoNVY3em0tNSA2aDEwdi0ySDd2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZsYXR3YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA3LjA4YzAgMS43Ny0uODQgMy4yNS0yIDMuODJWMjFoLTJWMTAuOWMtMS4xNi0uNTctMi0yLjA1LTItMy44MkMxMC4wMSA0LjgzIDExLjM1IDMgMTMgM2MxLjY2IDAgMyAxLjgzIDMgNC4wOHpNMTcgM3YxOGgydi04aDJWN2MwLTEuNzYtMS4yNC00LTQtNHpNOC4yOCAzYy0uNCAwLS43Mi4zMi0uNzIuNzJWN2gtLjg0VjMuNzJDNi43MiAzLjMyIDYuNCAzIDYgM3MtLjcyLjMyLS43Mi43MlY3aC0uODRWMy43MmMwLS40LS4zMi0uNzItLjcyLS43MlMzIDMuMzIgMyAzLjcyVjljMCAxLjEuOSAyIDIgMnYxMGgyVjExYzEuMSAwIDItLjkgMi0yVjMuNzJjMC0uNC0uMzItLjcyLS43Mi0uNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHYXJhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE4SDRWNGgxNnYxNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNzggMTguNWguNDRjLjQzIDAgLjc4LS4zNi43OC0uODFWMTYuNWgxMHYxLjE5YzAgLjQ1LjM0LjgxLjc4LjgxaC40NGMuNDMgMCAuNzgtLjM2Ljc4LS44MXYtNi41Yy0uODItMi40Ni0xLjM0LTQuMDMtMS41Ni00LjY5LS4wNS0uMTYtLjEyLS4yOS0uMTktLjQtLjAyLS4wMi0uMDMtLjA0LS4wNS0uMDctLjM4LS41Mi0uOTItLjUzLS45Mi0uNTNINy43MnMtLjU0LjAxLS45Mi41NGMtLjAyLjAyLS4wMy4wNC0uMDUuMDYtLjA3LjExLS4xNC4yNC0uMTkuNC0uMjIuNjYtLjc0IDIuMjItMS41NiA0LjY5djYuNWMwIC40NS4zNS44MS43OC44MXptMi41NS0xMWg3LjM0bC4yMy42OS40MyAxLjMxSDcuNjdsLjY2LTJ6TTcgMTEuNTF2LS4wMWgxMHYzSDd2LTIuOTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgNi4wNlYzaC0ydjMuMDZjLTQuNS41LTggNC4zMS04IDguOTNDMyAxNi4xIDMuOSAxNyA1LjAxIDE3SDhjMCAyLjIxIDEuNzkgNCA0IDRzNC0xLjc5IDQtNGgyLjk5YzEuMTEgMCAyLjAxLS45IDIuMDEtMi4wMSAwLTQuNjItMy41LTguNDMtOC04Ljkzek0xMiAxOWMtMS4xIDAtMi0uOS0yLTJoNGMwIDEuMS0uOSAyLTIgMnptMC00SDVjMC0zLjg2IDMuMTQtNyA3LTdzNyAzLjE0IDcgN2gtN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxpdmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNzUgMTAuMzVWOWMwLTEuNjYtMS4zNC0zLTMtM2gtNS41Yy0xLjY2IDAtMyAxLjM0LTMgM3YxLjM1QzUuNTEgMTAuNzggNSAxMS41OCA1IDEyLjVWMTZjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMnYtMy41YzAtLjkyLS41MS0xLjcyLTEuMjUtMi4xNXpNOS4yNSA3LjVoNS41Yy44MyAwIDEuNS42NyAxLjUgMS41djEuMDNBMi40OCAyLjQ4IDAgMCAwIDE0IDEyLjV2LjVoLTR2LS41YzAtMS4zLS45OS0yLjM1LTIuMjUtMi40N1Y5YzAtLjgzLjY3LTEuNSAxLjUtMS41ek0xNy41IDE2YzAgLjI4LS4yMi41LS41LjVIN2MtLjI4IDAtLjUtLjIyLS41LS41di0zLjVjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjJoN3YtMmMwLS41NS40NS0xIDEtMXMxIC40NSAxIDFWMTZ6TTIwIDR2MTZINFY0aDE2bTAtMkg0Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNYW5hZ2VTZWFyY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgOUgyVjdoNXYyem0wIDNIMnYyaDV2LTJ6bTEzLjU5IDctMy44My0zLjgzYy0uOC41Mi0xLjc0LjgzLTIuNzYuODMtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNSA1IDIuMjQgNSA1YzAgMS4wMi0uMzEgMS45Ni0uODMgMi43NUwyMiAxNy41OSAyMC41OSAxOXpNMTcgMTFjMC0xLjY1LTEuMzUtMy0zLTNzLTMgMS4zNS0zIDMgMS4zNSAzIDMgMyAzLTEuMzUgMy0zek0yIDE5aDEwdi0ySDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBvZGNhc3RzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxMmMwIC43NC0uNCAxLjM4LTEgMS43MlYyMmgtMnYtOC4yOGMtLjYtLjM1LTEtLjk4LTEtMS43MiAwLTEuMS45LTIgMi0yczIgLjkgMiAyem0tMi02Yy0zLjMxIDAtNiAyLjY5LTYgNiAwIDEuNzQuNzUgMy4zMSAxLjk0IDQuNGwxLjQyLTEuNDJBMy45NTcgMy45NTcgMCAwIDEgOCAxMmMwLTIuMjEgMS43OS00IDQtNHM0IDEuNzkgNCA0YzAgMS4xOS0uNTMgMi4yNS0xLjM2IDIuOThsMS40MiAxLjQyQTUuOTU3IDUuOTU3IDAgMCAwIDE4IDEyYzAtMy4zMS0yLjY5LTYtNi02em0wLTRDNi40OCAyIDIgNi40OCAyIDEyYzAgMi44NSAxLjIgNS40MSAzLjExIDcuMjRsMS40Mi0xLjQyQTcuOTg3IDcuOTg3IDAgMCAxIDQgMTJjMC00LjQxIDMuNTktOCA4LThzOCAzLjU5IDggOGMwIDIuMjktLjk4IDQuMzYtMi41MyA1LjgybDEuNDIgMS40MkMyMC44IDE3LjQxIDIyIDE0Ljg1IDIyIDEyYzAtNS41Mi00LjQ4LTEwLTEwLTEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2hvd2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDE3YzAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xIC40NS0xIDEtMSAxIC40NSAxIDF6bTMtMWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem00IDBjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMy00djJINXYtMmMwLTMuNTMgMi42MS02LjQzIDYtNi45MlYzaDJ2Mi4wOGMzLjM5LjQ5IDYgMy4zOSA2IDYuOTJ6bS0yIDBjMC0yLjc2LTIuMjQtNS01LTVzLTUgMi4yNC01IDVoMTB6bS05IDdjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptNCAwYy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTQgMGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGFibGVCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA3LjVDMjIgNS41NyAxNy41MiA0IDEyIDRTMiA1LjU3IDIgNy41YzAgMS44MSAzLjk1IDMuMzEgOSAzLjQ4VjE1SDkuMzVjLS44MiAwLTEuNTUuNS0xLjg2IDEuMjZMNiAyMGgybDEuMi0zaDUuNmwxLjIgM2gybC0xLjUtMy43NGMtLjMtLjc2LTEuMDQtMS4yNi0xLjg1LTEuMjZIMTN2LTQuMDJjNS4wNS0uMTcgOS0xLjY3IDktMy40OHpNMTIgNmM0LjA1IDAgNi43NC44NiA3LjcyIDEuNUMxOC43NCA4LjE0IDE2LjA1IDkgMTIgOXMtNi43NC0uODYtNy43Mi0xLjVDNS4yNiA2Ljg2IDcuOTUgNiAxMiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGFibGVSZXN0YXVyYW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuOTYgOS43My0xLjQzLTVhLjk5Ni45OTYgMCAwIDAtLjk2LS43M0g0LjQzYy0uNDUgMC0uODQuMy0uOTYuNzNsLTEuNDMgNWMtLjE4LjYzLjMgMS4yNy45NiAxLjI3aDIuMkw0IDIwaDJsLjY3LTVoMTAuNjdsLjY2IDVoMmwtMS4yLTlIMjFjLjY2IDAgMS4xNC0uNjQuOTYtMS4yN3pNNi45MyAxM2wuMjctMmg5LjZsLjI3IDJINi45M3ptLTIuNi00IC44Ni0zaDEzLjYzbC44NiAzSDQuMzN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXaW5kb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCA4aC02VjVoNnY2em0tOC02djZINVY1aDZ6bS02IDhoNnY2SDV2LTZ6bTggNnYtNmg2djZoLTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVZYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM2MtMy4zMSAwLTYgMi42OS02IDYgMy4zMSAwIDYtMi42OSA2LTZ6TTYgMTNjMCAzLjMxIDIuNjkgNiA2IDYgMC0zLjMxLTIuNjktNi02LTZ6bTItMS45N2ExLjU2MiAxLjU2MiAwIDAgMCAyLjQ1IDEuMjhsLS4wMS4xMmMwIC44Ni43IDEuNTYgMS41NiAxLjU2czEuNTYtLjcgMS41Ni0xLjU2bC0uMDEtLjEyYy4yNS4xNy41Ni4yOC44OS4yOC44NiAwIDEuNTYtLjcgMS41Ni0xLjU2IDAtLjYyLS4zNy0xLjE2LS44OS0xLjQxLjUyLS4yNC44OS0uNzguODktMS40YTEuNTYyIDEuNTYyIDAgMCAwLTIuNDUtMS4yOGwuMDEtLjEyYzAtLjg2LS43LTEuNTYtMS41Ni0xLjU2cy0xLjU2LjctMS41NiAxLjU2bC4wMS4xMkExLjU2MiAxLjU2MiAwIDAgMCA4IDguMjJjMCAuNjIuMzcgMS4xNi44OSAxLjQxLS41Mi4yNC0uODkuNzgtLjg5IDEuNHptNC0yLjk3Yy44NiAwIDEuNTYuNyAxLjU2IDEuNTZzLS43IDEuNTYtMS41NiAxLjU2LTEuNTYtLjctMS41Ni0xLjU2LjctMS41NiAxLjU2LTEuNTZ6TTIwIDR2MTZINFY0aDE2bTAtMkg0Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUxOFVwUmF0aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDE1SDEwVjlIN3YxLjVoMS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjUgMTVIMTVjLjU1IDAgMS0uNDUgMS0xdi00YzAtLjU1LS40NS0xLTEtMWgtMi41Yy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMXptLjUtNWgxLjV2MS41SDEzVjEwem0wIDIuNWgxLjVWMTRIMTN2LTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTZGdEFwYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA2YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptNCAzLjQzYzAtLjgxLS40OC0xLjUzLTEuMjItMS44NWE2Ljk1IDYuOTUgMCAwIDAtNS41NiAwQTIuMDEgMi4wMSAwIDAgMCAyIDkuNDNWMTBoOHYtLjU3ek0xOCA2YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptNCAzLjQzYzAtLjgxLS40OC0xLjUzLTEuMjItMS44NWE2Ljk1IDYuOTUgMCAwIDAtNS41NiAwQTIuMDEgMi4wMSAwIDAgMCAxNCA5LjQzVjEwaDh2LS41N3pNMTkgMTd2LTIuMDFMNSAxNXYybC0zLTMgMy0zdjIuMDFMMTkgMTN2LTJsMyAzLTMgM3ptLTkgMnYtMUg3LjVjLS4yOCAwLS41LjIyLS41LjV2M2MwIC4yOC4yMi41LjUuNWgyYy4yOCAwIC41LS4yMi41LS41VjIwYzAtLjI4LS4yMi0uNS0uNS0uNUg4VjE5aDJ6bS0xIDEuNXYuNUg4di0uNWgxem04LjUtMS41aC0xdjNoLTF2LTNoLTF2LTFoM3Yxem0tNSAwdi41aDF2MWgtMVYyMmgtMXYtNEgxNHYxaC0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBZGRNb2RlcmF0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDExLjA5di00LjdsNi0yLjI1IDYgMi4yNXYzLjY5Yy43MS4xIDEuMzguMzEgMiAuNlY1bC04LTMtOCAzdjYuMDljMCA1LjA1IDMuNDEgOS43NiA4IDEwLjkxLjAzLS4wMS4wNS0uMDIuMDgtLjAyLS43OS0uNzgtMS40LTEuNzYtMS43NS0yLjg0QzcuNzYgMTcuNTMgNiAxNC40MiA2IDExLjA5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMmMtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bTMgNS41aC0yLjVWMjBoLTF2LTIuNUgxNHYtMWgyLjVWMTRoMXYyLjVIMjB2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZFJlYWN0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA5LjVDNyA4LjY3IDcuNjcgOCA4LjUgOHMxLjUuNjcgMS41IDEuNVM5LjMzIDExIDguNSAxMSA3IDEwLjMzIDcgOS41em01IDhjMi4zMyAwIDQuMzEtMS40NiA1LjExLTMuNUg2Ljg5Yy44IDIuMDQgMi43OCAzLjUgNS4xMSAzLjV6bTMuNS02LjVjLjgzIDAgMS41LS42NyAxLjUtMS41UzE2LjMzIDggMTUuNSA4IDE0IDguNjcgMTQgOS41cy42NyAxLjUgMS41IDEuNXpNMjIgMWgtMnYyaC0ydjJoMnYyaDJWNWgyVjNoLTJWMXptLTIgMTFjMCA0LjQyLTMuNTggOC04IDhzLTgtMy41OC04LTggMy41OC04IDgtOGMxLjQ2IDAgMi44Mi40IDQgMS4wOFYyLjg0QTkuOTI5IDkuOTI5IDAgMCAwIDExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMmMwLTEuMDUtLjE3LTIuMDUtLjQ3LTNIMTkuNGMuMzguOTMuNiAxLjk0LjYgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFyY2hpdGVjdHVyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMzYgMTguNzggNi42MSAyMWwxLjYyLTEuNTQgMi43Ny03LjZjLS42OC0uMTctMS4yOC0uNTEtMS43Ny0uOThsLTIuODcgNy45ek0xNC43NyAxMC44OGMtLjQ5LjQ3LTEuMS44MS0xLjc3Ljk4bDIuNzcgNy42TDE3LjM5IDIxbC4yNi0yLjIyLTIuODgtNy45ek0xNSA4YzAtMS4zLS44NC0yLjQtMi0yLjgyVjNoLTJ2Mi4xOEM5Ljg0IDUuNiA5IDYuNyA5IDhjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtM3ptLTMgMWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXNzaXN0V2Fsa2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMi41XCIsXCJjeVwiOlwiNC41XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5Ljc3IDE3LjcyLS42NC02LjM3QTEuNDkgMS40OSAwIDAgMCAxNy42NCAxMEgxNmMtMS41LS4wMi0yLjg2LS41NC0zLjc2LTEuNDRsLTItMS45OEExLjk1IDEuOTUgMCAwIDAgOC44MyA2Yy0uNTEgMC0xLjAyLjItMS40MS41OUw0LjA4IDkuOTFjLS41My42OC0uNTEgMS41Ny0uMjEgMi4xM2wxLjQzIDIuOC0zLjE1IDQuMDUgMS41NyAxLjI0TDcuNCAxNS40bC0uMTctMS4zNi43Ny43MVYyMGgydi02LjEybC0yLjEyLTIuMTIgMi4zNi0yLjM2Yy45NC45NCAxLjcyIDEuODIgMy41OSAyLjMyTDEzIDIwaDEuNWwuNDEtMy41aDMuMThsLjE0IDEuMjJjLS40NC4yNi0uNzMuNzQtLjczIDEuMjggMCAuODMuNjcgMS41IDEuNSAxLjVzMS41LS42NyAxLjUtMS41YzAtLjU0LS4yOS0xLjAyLS43My0xLjI4ek0xNS4wOSAxNWwuNDEtMy41aDJsLjQxIDMuNWgtMi44MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJhY2tIYW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgN2EyLjUgMi41IDAgMCAwLTMtMi40NVY0YTIuNSAyLjUgMCAwIDAtMy4xNy0yLjQxQTIuNTA5IDIuNTA5IDAgMCAwIDEyLjUgMGMtMS4yMyAwLTIuMjUuODktMi40NiAyLjA2QTIuNSAyLjUgMCAwIDAgNyA0LjV2NS44OWMtLjM0LS4zMS0uNzYtLjU0LTEuMjItLjY2bC0uNzctLjIxYy0uODMtLjIzLTEuNy4wOS0yLjE5LjgzLS4zOC41Ny0uNCAxLjMxLS4xNSAxLjk1bDIuNTYgNi40M0E4LjM1NCA4LjM1NCAwIDAgMCAxMyAyNGM0LjQyIDAgOC0zLjU4IDgtOFY3em0tMiA5YzAgMy4zMS0yLjY5IDYtNiA2LTIuNjEgMC00Ljk1LTEuNTktNS45MS00LjAxbC0yLjYtNi41NC41My4xNGMuNDYuMTIuODMuNDYgMSAuOUw3IDE1aDJWNC41YzAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41VjEyaDJWMi41YzAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41VjEyaDJWNGMwLS4yOC4yMi0uNS41LS41cy41LjIyLjUuNXY4aDJWN2MwLS4yOC4yMi0uNS41LS41cy41LjIyLjUuNXY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmxpbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjExLjVcIixcImN5XCI6XCIzLjVcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMTMgNy4xMmMtLjE3LS4zNS0uNDQtLjY1LS44LS44NWExLjk4IDEuOTggMCAwIDAtMS45My0uMDN2LS4wMUw0IDkuM1YxNGgydi0zLjU0bDEuNS0uODVDNy4xOCAxMC43MSA3IDExLjg1IDcgMTN2NS4zM0w0LjQgMjEuOCA2IDIzbDMtNCAuMjItMy41NEwxMSAxOHY1aDJ2LTYuNWwtMS45Ny0yLjgxYy0uMDQtLjUyLS4xNC0xLjc2LjQ1LTMuNC43NSAxLjE0IDEuODggMS45OCAzLjIgMi40MUwyMC42MyAyM2wuODctLjUtNS40OC05LjVIMTd2LTJjLS40OSAwLTIuODguMTctNC4wOC0yLjIxXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCb3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3LjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1UzEyLjk3IDQgMTIgNHMtMS43NS43OC0xLjc1IDEuNzVTMTEuMDMgNy41IDEyIDcuNXpNMTQgMjB2LTVoMXYtNC41YzAtMS4xLS45LTItMi0yaC0yYy0xLjEgMC0yIC45LTIgMlYxNWgxdjVoNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNha2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDZhMiAyIDAgMCAwIDItMmMwLS4zOC0uMS0uNzMtLjI5LTEuMDNMMTIgMGwtMS43MSAyLjk3Yy0uMTkuMy0uMjkuNjUtLjI5IDEuMDMgMCAxLjEuOSAyIDIgMnptNiAzaC01VjdoLTJ2Mkg2Yy0xLjY2IDAtMyAxLjM0LTMgM3Y5YzAgLjU1LjQ1IDEgMSAxaDE2Yy41NSAwIDEtLjQ1IDEtMXYtOWMwLTEuNjYtMS4zNC0zLTMtM3ptMSAxMUg1di0zYy45LS4wMSAxLjc2LS4zNyAyLjQtMS4wMWwxLjA5LTEuMDcgMS4wNyAxLjA3YzEuMzEgMS4zMSAzLjU5IDEuMyA0Ljg5IDBsMS4wOC0xLjA3IDEuMDcgMS4wN2MuNjQuNjQgMS41IDEgMi40IDEuMDF2M3ptMC00LjVjLS41MS0uMDEtLjk5LS4yLTEuMzUtLjU3bC0yLjEzLTIuMTMtMi4xNCAyLjEzYy0uNzQuNzQtMi4wMy43NC0yLjc3IDBMOC40OCAxMi44bC0yLjE0IDIuMTNjLS4zNS4zNi0uODMuNTYtMS4zNC41N1YxMmMwLS41NS40NS0xIDEtMWgxMmMuNTUgMCAxIC40NSAxIDF2My41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2F0Y2hpbmdQb2tlbW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNSAxMmEyLjUgMi41IDAgMCAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMHptNy41IDBjMCA1LjUyLTQuNDggMTAtMTAgMTBTMiAxNy41MiAyIDEyIDYuNDggMiAxMiAyczEwIDQuNDggMTAgMTB6bS0yIDBoLTRjMC0yLjIxLTEuNzktNC00LTRzLTQgMS43OS00IDRINGMwIDQuNDEgMy41OSA4IDggOHM4LTMuNTkgOC04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2xlYW5IYW5kcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2Ljk5IDUgLjYzIDEuMzcgMS4zNy42My0xLjM3LjYzTDE2Ljk5IDlsLS42My0xLjM3TDE0Ljk5IDdsMS4zNy0uNjMuNjMtMS4zN00yMCAxNGMxLjEgMCAyLS45IDItMnMtMi00LTItNC0yIDIuOS0yIDQgLjkgMiAyIDJ6bS05LTcuOVY0aDJjLjU3IDAgMS4xLjE3IDEuNTUuNDVsMS40My0xLjQzQTQuODk5IDQuODk5IDAgMCAwIDEzIDJINy41djJIOXYyLjExYy0xLjc4LjM3LTMuMiAxLjY4LTMuNzUgMy4zOWgyLjE2QzcuOTQgOC42MSA4Ljg5IDggMTAgOGMxLjYyIDAgMi45NCAxLjI5IDIuOTkgMi45bDIuMDEuNzVWMTFhNSA1IDAgMCAwLTQtNC45ek0yMiAxOXYxbC04IDIuNS03LTEuOTRWMjJIMVYxMWg3Ljk3bDYuMTYgMi4zQTIuODkgMi44OSAwIDAgMSAxNyAxNmgyYzEuNjYgMCAzIDEuMzQgMyAzek01IDIwdi03SDN2N2gyem0xNC45LTEuNDNjLS4xNi0uMzMtLjUxLS41Ni0uOS0uNTZoLTUuMzVjLS41NCAwLTEuMDctLjA5LTEuNTgtLjI2bC0yLjM4LS43OS42My0xLjkgMi4zOC43OWMuMzEuMSAyLjMuMTUgMi4zLjE1IDAtLjM3LS4yMy0uNy0uNTctLjgzTDguNjEgMTNIN3Y1LjQ4bDYuOTcgMS45MyA1LjkzLTEuODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDbzIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA5aC0zYy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMWgzYy41NSAwIDEtLjQ1IDEtMXYtNGMwLS41NS0uNDUtMS0xLTF6bS0uNSA0LjVoLTJ2LTNoMnYzek04IDEzdjFjMCAuNTUtLjQ1IDEtMSAxSDRjLS41NSAwLTEtLjQ1LTEtMXYtNGMwLS41NS40NS0xIDEtMWgzYy41NSAwIDEgLjQ1IDEgMXYxSDYuNXYtLjVoLTJ2M2gyVjEzSDh6bTEyLjUgMi41aC0ydjFoM1YxOEgxN3YtMi41YzAtLjU1LjQ1LTEgMS0xaDJ2LTFoLTNWMTJoMy41Yy41NSAwIDEgLjQ1IDEgMXYxLjVjMCAuNTUtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29tcG9zdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjg3IDExLjgxQTIuNSAyLjUgMCAwIDEgMTUgOGgxYzEuNTEgMCAyLTEgMi0xcy41NSA2LTMgNmMtLjQ5IDAtLjk0LS4xNC0xLjMyLS4zOC0uMjQuNjQtLjU5IDEuNzYtLjc2IDIuOTYgMS4yNi4yMiAyLjI4Ljg5IDIuNzcgMS43N0E2LjUwNSA2LjUwNSAwIDAgMCAxOC41IDEyaDNjMCA1LjI0LTQuMjYgOS41LTkuNSA5LjVTMi41IDE3LjI0IDIuNSAxMiA2Ljc2IDIuNSAxMiAyLjVWMGw0IDQtNCA0VjUuNWMtMy41OCAwLTYuNSAyLjkyLTYuNSA2LjUgMCAyLjIxIDEuMTEgNC4xNyAyLjgxIDUuMzUuNTEtLjkyIDEuNjMtMS42MiAyLjk4LTEuOC0uMDktLjY5LS4yNi0xLjQyLS40OS0yLjAzLS4zNS4zLS44LjQ4LTEuMy40OC0xLjEgMC0yLS45LTItMnYtLjk5YzAtLjU2LS4xOS0xLjA5LS41LTEuNTEgMCAwIDQuNDUtLjIzIDQuNSAyLjUgMCAuMjktLjA2LjU2LS4xNy44LS40Mi0uMzItLjg2LS42LTEuMzMtLjguNTguNDMgMS4zNyAxLjM3IDIgMi42LjY3LTEuNjIgMS42OC0zLjI3IDMtNC42LS43Ni41Mi0xLjQ3IDEuMTItMi4xMyAxLjgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29ubmVjdFdpdGhvdXRDb250YWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTRIOWE5IDkgMCAwIDEgOS05djJjLTMuODcgMC03IDMuMTMtNyA3em03LTNWOWMtMi43NiAwLTUgMi4yNC01IDVoMmMwLTEuNjYgMS4zNC0zIDMtM3pNNyA0YzAtMS4xMS0uODktMi0yLTJzLTIgLjg5LTIgMiAuODkgMiAyIDIgMi0uODkgMi0yem00LjQ1LjVoLTJBMi45OSAyLjk5IDAgMCAxIDYuNSA3aC0zQzIuNjcgNyAyIDcuNjcgMiA4LjVWMTFoNlY4Ljc0YTQuOTcgNC45NyAwIDAgMCAzLjQ1LTQuMjR6TTE5IDE3YzEuMTEgMCAyLS44OSAyLTJzLS44OS0yLTItMi0yIC44OS0yIDIgLjg5IDIgMiAyem0xLjUgMWgtM2EyLjk5IDIuOTkgMCAwIDEtMi45NS0yLjVoLTJBNC45NyA0Ljk3IDAgMCAwIDE2IDE5Ljc0VjIyaDZ2LTIuNWMwLS44My0uNjctMS41LTEuNS0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb25zdHJ1Y3Rpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMy43ODMgMTUuMTcyIDIuMTIxLTIuMTIxIDUuOTk2IDUuOTk2LTIuMTIxIDIuMTIxek0xNy41IDEwYzEuOTMgMCAzLjUtMS41NyAzLjUtMy41IDAtLjU4LS4xNi0xLjEyLS40MS0xLjZsLTIuNyAyLjctMS40OS0xLjQ5IDIuNy0yLjdjLS40OC0uMjUtMS4wMi0uNDEtMS42LS40MUMxNS41NyAzIDE0IDQuNTcgMTQgNi41YzAgLjQxLjA4LjguMjEgMS4xNmwtMS44NSAxLjg1LTEuNzgtMS43OC43MS0uNzEtMS40MS0xLjQxTDEyIDMuNDlhMyAzIDAgMCAwLTQuMjQgMEw0LjIyIDcuMDNsMS40MSAxLjQxSDIuODFsLS43MS43MSAzLjU0IDMuNTQuNzEtLjcxVjkuMTVsMS40MSAxLjQxLjcxLS43MSAxLjc4IDEuNzgtNy40MSA3LjQxIDIuMTIgMi4xMkwxNi4zNCA5Ljc5Yy4zNi4xMy43NS4yMSAxLjE2LjIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29va2llIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMC41XCIsXCJjeVwiOlwiOC41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4LjVcIixcImN5XCI6XCIxMy41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjE1XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjk1IDEwLjk5Yy0xLjc5LS4wMy0zLjctMS45NS0yLjY4LTQuMjItMi45NyAxLTUuNzgtMS41OS01LjE5LTQuNTZDNy4xMS43NCAyIDYuNDEgMiAxMmMwIDUuNTIgNC40OCAxMCAxMCAxMCA1Ljg5IDAgMTAuNTQtNS4wOCA5Ljk1LTExLjAxek0xMiAyMGMtNC40MSAwLTgtMy41OS04LTggMC0zLjMxIDIuNzMtOC4xOCA4LjA4LTguMDIuNDIgMi41NCAyLjQ0IDQuNTYgNC45OSA0Ljk0LjA3LjM2LjUyIDIuNTUgMi45MiAzLjYzQzE5LjcgMTYuODYgMTYuMDYgMjAgMTIgMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb3JvbmF2aXJ1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNSAxMmMwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMSAuNDUtMSAxLTEgMSAuNDUgMSAxem00LjI1LTJjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptLTMuNSAwYy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAgNGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xek0yMiAxMS4yNXYxLjVjMCAuNDEtLjM0Ljc1LS43NS43NXMtLjc1LS4zNC0uNzUtLjc1aC0xLjU0YTYuOTc4IDYuOTc4IDAgMCAxLTEuNTIgMy42NWwxLjA5IDEuMDkuMDEtLjAxYy4yOS0uMjkuNzctLjI5IDEuMDYgMCAuMjkuMjkuMjkuNzcgMCAxLjA2bC0xLjA2IDEuMDZjLS4yOS4yOS0uNzcuMjktMS4wNiAwYS43NTIuNzUyIDAgMCAxLS4wMS0xLjA1bC0xLjA5LTEuMDlhNy4wMTUgNy4wMTUgMCAwIDEtMy42NCAxLjUxdjEuNTRoLjAxYy40MSAwIC43NS4zNC43NS43NXMtLjM0Ljc1LS43NS43NWgtMS41Yy0uNDEgMC0uNzUtLjM0LS43NS0uNzVzLjMzLS43NC43NC0uNzV2LTEuNTVhNi45NDggNi45NDggMCAwIDEtMy42My0xLjUxbC0xLjA5IDEuMDkuMDEuMDFjLjI5LjI5LjI5Ljc3IDAgMS4wNi0uMjkuMjktLjc3LjI5LTEuMDYgMEw0LjQgMTguNTRhLjc1NC43NTQgMCAwIDEgMC0xLjA2Yy4yOS0uMjkuNzYtLjI5IDEuMDUtLjAxbDEuMDktMS4wOWE2Ljg5IDYuODkgMCAwIDEtMS41LTMuNjNIMy41YzAgLjQxLS4zNC43NS0uNzUuNzVTMiAxMy4xNiAyIDEyLjc1di0xLjVjMC0uNDEuMzQtLjc1Ljc1LS43NXMuNzUuMzQuNzUuNzVoMS41NGMuMTUtMS4zNy42OS0yLjYxIDEuNS0zLjYzTDUuNDUgNi41M2MtLjI5LjI4LS43Ni4yOC0xLjA1LS4wMWEuNzU0Ljc1NCAwIDAgMSAwLTEuMDZMNS40NiA0LjRjLjI5LS4yOS43Ny0uMjkgMS4wNiAwIC4yOS4yOS4yOS43NyAwIDEuMDZsLS4wMS4wMUw3LjYgNi41NmE2Ljk4MiA2Ljk4MiAwIDAgMSAzLjYzLTEuNTFWMy41YS43NTMuNzUzIDAgMCAxLS43NC0uNzUuNzcuNzcgMCAwIDEgLjc2LS43NWgxLjVjLjQxIDAgLjc1LjM0Ljc1Ljc1cy0uMzQuNzUtLjc1Ljc1aC0uMDF2MS41NGMxLjM3LjE0IDIuNjIuNjkgMy42NCAxLjUxbDEuMDktMS4wOWEuNzQyLjc0MiAwIDAgMSAuMDEtMS4wNWMuMjktLjI5Ljc3LS4yOSAxLjA2IDBsMS4wNiAxLjA2Yy4yOS4yOS4yOS43NyAwIDEuMDZzLS43Ny4yOS0xLjA2IDBsLS4wMS0uMDEtMS4wOSAxLjA4YTcuMDI1IDcuMDI1IDAgMCAxIDEuNTIgMy42NWgxLjU0YzAtLjQxLjM0LS43NS43NS0uNzVzLjc1LjM0Ljc1Ljc1ek0xNyAxMmMwLTIuNzYtMi4yNC01LTUtNXMtNSAyLjI0LTUgNSAyLjI0IDUgNSA1IDUtMi4yNCA1LTV6bS01LTFjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMy41IDBjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptLTEuNzUgM2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ3J1ZWx0eUZyZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxNGMtLjI0LS4yNC0uNDQtLjQ5LS42NS0uNzVDMTcuNTEgMTEuNSAxOSA4LjU2IDE5IDVjMC0xLjk1LS43NC0zLTItMy0xLjU0IDAtMy45NiAyLjA2LTUgNS45N0MxMC45NiA0LjA2IDguNTQgMiA3IDIgNS43NCAyIDUgMy4wNSA1IDVjMCAzLjU2IDEuNDkgNi41IDIuNjUgOC4yNS0uMjEuMjYtLjQxLjUxLS42NS43NS0uMjUuMjUtMiAxLjM5LTIgMy41QzUgMTkuOTggNy4wMiAyMiA5LjUgMjJjMS41IDAgMi41LS41IDIuNS0uNXMxIC41IDIuNS41YzIuNDggMCA0LjUtMi4wMiA0LjUtNC41IDAtMi4xMS0xLjc1LTMuMjUtMi0zLjV6bS0uMTItOS45N2MuMDYuMTcuMTIuNDguMTIuOTcgMCAyLjg0LTEuMTEgNS4yNC0yLjA3IDYuNzgtLjM4LS4yNi0uODMtLjQ4LTEuNC0uNjIuMjQtNC41MiAyLjQ0LTYuODMgMy4zNS03LjEzek03IDVjMC0uNDkuMDYtLjguMTItLjk3LjkxLjMgMy4xMSAyLjYxIDMuMzYgNy4xMy0uNTguMTQtMS4wMy4zNS0xLjQuNjJDOC4xMSAxMC4yNCA3IDcuODQgNyA1em03LjUgMTVjLTEgMC0xLjgtLjMzLTIuMjItLjU2LjQyLS4xOC43Mi0uNzEuNzItLjk0IDAtLjI4LS40NS0uNS0xLS41cy0xIC4yMi0xIC41YzAgLjIzLjMuNzYuNzIuOTQtLjQyLjIzLTEuMjIuNTYtMi4yMi41NkEyLjUgMi41IDAgMCAxIDcgMTcuNWMwLS43LjQzLTEuMjQgMS0xLjczLjQ0LS4zNi42MS0uNTIgMS4zLTEuMzcuNzYtLjk1IDEuMDktMS40IDIuNy0xLjRzMS45NC40NSAyLjcgMS40Yy42OS44NS44NiAxLjAxIDEuMyAxLjM3LjU3LjQ5IDEgMS4wMyAxIDEuNzNhMi41IDIuNSAwIDAgMS0yLjUgMi41em0tLjUtNGMwIC40MS0uMjIuNzUtLjUuNzVzLS41LS4zNC0uNS0uNzUuMjItLjc1LjUtLjc1LjUuMzQuNS43NXptLTMgMGMwIC40MS0uMjIuNzUtLjUuNzVzLS41LS4zNC0uNS0uNzUuMjItLjc1LjUtLjc1LjUuMzQuNS43NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUN5Y2xvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA4Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMCA2Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNy40N1Y1LjM1QzIwLjA1IDQuNzcgMTYuNTYgNCAxMiA0Yy0yLjE1IDAtNC4xMS44Ni01LjU0IDIuMjQuMTMtLjg1LjQtMi40IDEuMDEtNC4yNEg1LjM1QzQuNzcgMy45NSA0IDcuNDQgNCAxMmMwIDIuMTUuODYgNC4xMSAyLjI0IDUuNTQtLjg1LS4xNC0yLjQtLjQtNC4yNC0xLjAxdjIuMTJDMy45NSAxOS4yMyA3LjQ0IDIwIDEyIDIwYzIuMTUgMCA0LjExLS44NiA1LjU0LTIuMjQtLjE0Ljg1LS40IDIuNC0xLjAxIDQuMjRoMi4xMmMuNTgtMS45NSAxLjM1LTUuNDQgMS4zNS0xMCAwLTIuMTUtLjg2LTQuMTEtMi4yNC01LjU0Ljg1LjEzIDIuNC40IDQuMjQgMS4wMXpNMTIgMThjLTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTYgNiAyLjY5IDYgNi0yLjY5IDYtNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDkgMTIgMiAyIDloOXYxM2gyVjloOXpNMTIgNC40NCAxNS42NiA3SDguMzRMMTIgNC40NHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNC4xNCAxMi0xLjk2LjM3LjgyIDQuMzdWMjJoMmwuMDItNEg3djRoMnYtNkg0Ljl6TTE5LjEgMTZIMTV2Nmgydi00aDEuOThsLjAyIDRoMnYtNS4yNmwuODItNC4zNy0xLjk2LS4zN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURpdmVyc2l0eTEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjRcIixcImN5XCI6XCIxNFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xLjIyIDE3LjU4QTIuMDEgMi4wMSAwIDAgMCAwIDE5LjQzVjIxaDQuNXYtMS42MWMwLS44My4yMy0xLjYxLjYzLTIuMjktLjM3LS4wNi0uNzQtLjEtMS4xMy0uMS0uOTkgMC0xLjkzLjIxLTIuNzguNTh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMjBcIixcImN5XCI6XCIxNFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMi43OCAxNy41OEE2Ljk1IDYuOTUgMCAwIDAgMjAgMTdjLS4zOSAwLS43Ni4wNC0xLjEzLjEuNC42OC42MyAxLjQ2LjYzIDIuMjlWMjFIMjR2LTEuNTdjMC0uODEtLjQ4LTEuNTMtMS4yMi0xLjg1ek0xNi4yNCAxNi42NWMtMS4xNy0uNTItMi42MS0uOS00LjI0LS45LTEuNjMgMC0zLjA3LjM5LTQuMjQuOUEyLjk4OCAyLjk4OCAwIDAgMCA2IDE5LjM5VjIxaDEydi0xLjYxYzAtMS4xOC0uNjgtMi4yNi0xLjc2LTIuNzR6TTguMDcgMTlhLjk2Ljk2IDAgMCAxIC40OS0uNTJjMS4xLS40OSAyLjI2LS43MyAzLjQzLS43MyAxLjE4IDAgMi4zMy4yNSAzLjQzLjczLjIzLjEuNC4yOS40OS41Mkg4LjA3ek05IDEyYzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTMtMS4zNC0zLTMtMy0zIDEuMzQtMyAzem00IDBjMCAuNTUtLjQ1IDEtMSAxcy0xLS40NS0xLTEgLjQ1LTEgMS0xIDEgLjQ1IDEgMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi40OCAxMC44NkMyLjE3IDEwLjEgMiA5LjM2IDIgOC42IDIgNi4wMiA0LjAyIDQgNi42IDRjMi42OCAwIDMuODIgMS43NCA1LjQgMy41OUMxMy41NyA1Ljc2IDE0LjcgNCAxNy40IDQgMTkuOTggNCAyMiA2LjAyIDIyIDguNmMwIC43Ni0uMTcgMS41LS40OCAyLjI2LjY1LjMxIDEuMTguODIgMS41MyAxLjQ0LjYtMS4yLjk1LTIuNDIuOTUtMy43QzI0IDQuOSAyMS4xIDIgMTcuNCAyYy0yLjA5IDAtNC4wOS45Ny01LjQgMi41MUMxMC42OSAyLjk3IDguNjkgMiA2LjYgMiAyLjkgMiAwIDQuOSAwIDguNmMwIDEuMjguMzUgMi41Ljk2IDMuNy4zNS0uNjIuODgtMS4xMyAxLjUyLTEuNDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaXZlcnNpdHkyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAuMSAxNS45IDEuNDItMS40MkM4Ljc5IDEyLjA1IDcgMTAuNDEgNyA4Ljg1IDcgNy44IDcuOCA3IDguODUgN2MxLjExIDAgMS41NC42NSAyLjY4IDJoLjkzYzEuMTItMS4zMSAxLjUzLTIgMi42OC0yIC44NyAwIDEuNTUuNTQgMS43NyAxLjMyLjM1LS4wNC42OC0uMDYgMS0uMDYuMzYgMCAuNy4wMyAxLjAzLjA4QzE4LjcgNi40MyAxNy4xMyA1IDE1LjE1IDVjLS4xMiAwLS4yMy4wMy0uMzUuMDQuMTItLjMzLjItLjY3LjItMS4wNCAwLTEuNjYtMS4zNC0zLTMtM1M5IDIuMzQgOSA0YzAgLjM3LjA4LjcxLjIgMS4wNC0uMTItLjAxLS4yMy0uMDQtLjM1LS4wNEM2LjY5IDUgNSA2LjY5IDUgOC44NWMwIDIuNDIgMi4wNCA0LjMxIDUuMSA3LjA1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMi41IDE2LjI0Yy0uMzItLjE4LS42Ni0uMjktMS0uMzUuMDctLjEuMTUtLjE4LjIxLS4yOCAxLjA4LTEuODcuNDYtNC4xOC0xLjQxLTUuMjYtMi4wOS0xLjIxLTQuNzYtLjM5LTguNjUuOWwuNTIgMS45NGMzLjQ3LTEuMTQgNS43OS0xLjg4IDcuMTQtMS4xLjkxLjUzIDEuMiAxLjYxLjY4IDIuNTMtLjU2Ljk2LTEuMzMgMS0zLjA3IDEuMzJsLS40Ny44MWMuNTggMS42Mi45NyAyLjMzLjM5IDMuMzItLjUzLjkxLTEuNjEgMS4yLTIuNTMuNjgtLjA2LS4wMy0uMTEtLjA5LS4xNy0uMTMtLjMuNjctLjY0IDEuMjQtMS4wMyAxLjczLjA3LjA0LjEzLjA5LjIuMTQgMS44NyAxLjA4IDQuMTguNDYgNS4yNi0xLjQxLjA2LS4xLjA5LS4yMS4xNC0uMzIuMjIuMjcuNDguNTEuOC42OSAxLjQzLjgzIDMuMjcuMzQgNC4xLTEuMXMuMzItMy4yOS0xLjExLTQuMTF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjMyIDE0LjAxYy0uNzQgMy41OC0xLjI3IDUuOTUtMi42MiA2LjczLS45MS41My0yIC4yNC0yLjUzLS42OC0uNTYtLjk2LS4yLTEuNjYuMzktMy4zMmwtLjQ2LS44MWMtMS43LS4zMS0yLjUtLjMzLTMuMDctMS4zMi0uNTMtLjkxLS4yNC0yIC42OC0yLjUzLjA5LS4wNS4xOS0uMDguMjktLjExLS4zNS0uNTYtLjY0LTEuMTctLjgyLTEuODUtLjE2LjA3LS4zMi4xNC0uNDguMjMtMS44NyAxLjA4LTIuNDkgMy4zOS0xLjQxIDUuMjYuMDYuMS4xNC4xOC4yMS4yOC0uMzQuMDYtLjY4LjE3LTEgLjM1LTEuNDMuODMtMS45MyAyLjY2LTEuMSA0LjFzMi42NiAxLjkzIDQuMSAxLjFjLjMyLS4xOC41OC0uNDIuOC0uNjkuMDUuMTEuMDguMjIuMTQuMzIgMS4wOCAxLjg3IDMuMzkgMi40OSA1LjI2IDEuNDEgMi4wOS0xLjIxIDIuNzEtMy45MyAzLjU1LTcuOTRsLTEuOTMtLjUzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGl2ZXJzaXR5MyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMzIgMTMuMDFjLjk2LjAyIDEuODUuNSAyLjQ1IDEuMzRBMy45NjEgMy45NjEgMCAwIDAgMTIgMTZjMS4yOSAwIDIuNS0uNjIgMy4yMy0xLjY2LjYtLjg0IDEuNDktMS4zMiAyLjQ1LTEuMzQtLjcyLTEuMjItMy42LTItNS42OC0yLTIuMDcgMC00Ljk2Ljc4LTUuNjggMi4wMXpNNCAxM2MxLjY2IDAgMy0xLjM0IDMtM1M1LjY2IDcgNCA3cy0zIDEuMzQtMyAzIDEuMzQgMyAzIDN6TTIwIDEzYzEuNjYgMCAzLTEuMzQgMy0zcy0xLjM0LTMtMy0zLTMgMS4zNC0zIDMgMS4zNCAzIDMgM3pNMTIgMTBjMS42NiAwIDMtMS4zNCAzLTNzLTEuMzQtMy0zLTMtMyAxLjM0LTMgMyAxLjM0IDMgMyAzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxNGgtMy4yN2MtLjc3IDAtMS4zNS40NS0xLjY4LjkyLS4wNC4wNi0xLjM2IDIuMDgtNC4wNSAyLjA4LTEuNDMgMC0zLjAzLS42NC00LjA1LTIuMDgtLjM5LS41NS0xLS45Mi0xLjY4LS45MkgzYy0xLjEgMC0yIC45LTIgMnY0aDd2LTIuMjZjMS4xNS44IDIuNTQgMS4yNiA0IDEuMjZzMi44NS0uNDYgNC0xLjI2VjIwaDd2LTRjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEb21haW5BZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3VjNIMnYxOGgxNHYtMmgtNHYtMmgydi0yaC0ydi0yaDJ2LTJoLTJWOWg4djZoMlY3SDEyek02IDE5SDR2LTJoMnYyem0wLTRINHYtMmgydjJ6bTAtNEg0VjloMnYyem0wLTRINFY1aDJ2MnptNCAxMkg4di0yaDJ2MnptMC00SDh2LTJoMnYyem0wLTRIOFY5aDJ2MnptMC00SDhWNWgydjJ6bTE0IDEydjJoLTJ2MmgtMnYtMmgtMnYtMmgydi0yaDJ2Mmgyem0tNi04aC0ydjJoMnYtMnptMCA0aC0ydjJoMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvbWFpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgN1YzSDJ2MThoMjBWN0gxMnpNNiAxOUg0di0yaDJ2MnptMC00SDR2LTJoMnYyem0wLTRINFY5aDJ2MnptMC00SDRWNWgydjJ6bTQgMTJIOHYtMmgydjJ6bTAtNEg4di0yaDJ2MnptMC00SDhWOWgydjJ6bTAtNEg4VjVoMnYyem0xMCAxMmgtOHYtMmgydi0yaC0ydi0yaDJ2LTJoLTJWOWg4djEwem0tMi04aC0ydjJoMnYtMnptMCA0aC0ydjJoMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvd25oaWxsU2tpaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNSA0LjVjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yIC45LTIgMi0yIDIgLjkgMiAyem0tMi43MiAxNi40Ljc2LjI3YTUuOTMzIDUuOTMzIDAgMCAwIDQuMzQtLjE3TDIyIDIyLjEzYy0xLjA1LjU1LTIuMjQuODctMy41Ljg3LS44NiAwLTEuNjgtLjE0LTIuNDUtLjQxTDIgMTcuNDdsLjUtMS40MSA2LjkgMi41MSAxLjcyLTQuNDQtMy41Ny0zLjczYy0uODktLjk0LS42Ny0yLjQ3LjQ1LTMuMTJsMy40OC0yLjAxYzEuMS0uNjQgMi41Mi0uMSAyLjkxIDEuMTFsLjMzIDEuMDhhNS4wMTcgNS4wMTcgMCAwIDAgMi44MyAzLjE0bC41Mi0xLjYgMS40My40Ni0xLjEyIDMuNDVBNy4wMjkgNy4wMjkgMCAwIDEgMTMgOC41OWwtMi41MyAxLjQ1IDMuMDMgMy40Ni0yLjIyIDUuNzYgMy4wOSAxLjEyIDIuMS02LjQ0Yy40Ni4xOC45NC4zMSAxLjQ0LjQxbC0yLjEzIDYuNTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFZGl0Tm90aWZpY2F0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3LjU4IDYuMjUgMS43NyAxLjc3TDE0LjM3IDEzSDEyLjZ2LTEuNzdsNC45OC00Ljk4em0zLjI3LS40NC0xLjA2LTEuMDZjLS4yLS4yLS41MS0uMi0uNzEgMGwtLjg1Ljg1TDIwIDcuMzdsLjg1LS44NWMuMi0uMi4yLS41MiAwLS43MXpNMTggMTIuMlYxN2gydjJINHYtMmgydi03YzAtMi43OSAxLjkxLTUuMTQgNC41LTUuOHYtLjdjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjV2LjdjLjgyLjIxIDEuNTcuNTkgMi4yMSAxLjA5bC0xLjQzIDEuNDNBMy44OSAzLjg5IDAgMCAwIDEyIDZjLTIuMjEgMC00IDEuNzktNCA0djdoOHYtMi44bDItMnpNMTAgMjBoNGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFbGRlcmx5V29tYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC41IDExYy0xLjU2IDAtMi45Mi0uOS0zLjU4LTIuMjFsLS43OS0xLjY3QzE0LjEyIDcuMSAxMy42MyA2IDEyLjM0IDYgOC43MiA2IDYgMTYuNjkgNiAxOWgyLjVsLTIuMSAyLjhMOCAyM2wzLTRoMnY0aDJ2LTQuMDNMMTMgMTNsLjQ5LTIuNzFBNi4wMiA2LjAyIDAgMCAwIDE3IDEyLjgxdi42OWgxdi0xYzAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41VjIzaDFWMTIuNWMwLS44My0uNjctMS41LTEuNS0xLjV6TTExLjYgMi45MWMtLjA2LjE5LS4xLjM4LS4xLjU5IDAgMS4xLjkgMiAyIDJzMi0uOSAyLTItLjktMi0yLTJjLS4yMSAwLS40LjA0LS41OS4xLS4xNS0uMzUtLjUtLjYtLjkxLS42LS41NSAwLTEgLjQ1LTEgMSAwIC40MS4yNS43Ni42LjkxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWxkZXJseSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjUgNS41YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptNi41IDdWMjNoLTFWMTIuNWMwLS4yOC0uMjItLjUtLjUtLjVzLS41LjIyLS41LjV2MWgtMXYtLjY5YTYuMDIgNi4wMiAwIDAgMS0zLjUxLTIuNTJjLS4zMS44Ny0uNDkgMS43OC0uNDkgMi43MSAwIC4yMy4wMi40Ni4wMy42OUwxNSAxNi41VjIzaC0ydi01bC0xLjc4LTIuNTRMMTEgMTlsLTMgNC0xLjYtMS4yTDkgMTguMzNWMTNjMC0xLjE1LjE4LTIuMjkuNS0zLjM5bC0xLjUuODVWMTRINlY5LjNsNS40LTMuMDd2LjAxYTIgMiAwIDAgMSAxLjk0LjAzYy4zNi4yMS42My41MS44Ljg1bC43OSAxLjY3QTMuOTg3IDMuOTg3IDAgMCAwIDE4LjUgMTFjLjgzIDAgMS41LjY3IDEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFbW9qaUVtb3Rpb25zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNS41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4LjVcIixcImN5XCI6XCI5LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxOGMyLjI4IDAgNC4yMi0xLjY2IDUtNEg3Yy43OCAyLjM0IDIuNzIgNCA1IDR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVtb2ppRXZlbnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNWgtMlYzSDd2Mkg1Yy0xLjEgMC0yIC45LTIgMnYxYzAgMi41NSAxLjkyIDQuNjMgNC4zOSA0Ljk0QTUuMDEgNS4wMSAwIDAgMCAxMSAxNS45VjE5SDd2MmgxMHYtMmgtNHYtMy4xYTUuMDEgNS4wMSAwIDAgMCAzLjYxLTIuOTZDMTkuMDggMTIuNjMgMjEgMTAuNTUgMjEgOFY3YzAtMS4xLS45LTItMi0yek01IDhWN2gydjMuODJDNS44NCAxMC40IDUgOS4zIDUgOHptNyA2Yy0xLjY1IDAtMy0xLjM1LTMtM1Y1aDZ2NmMwIDEuNjUtMS4zNSAzLTMgM3ptNy02YzAgMS4zLS44NCAyLjQtMiAyLjgyVjdoMnYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRW1vamlGbGFncyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0IDktMS0ySDdWNS43MmMuNi0uMzQgMS0uOTggMS0xLjcyIDAtMS4xLS45LTItMi0ycy0yIC45LTIgMmMwIC43NC40IDEuMzggMSAxLjcyVjIxaDJ2LTRoNWwxIDJoN1Y5aC02em00IDhoLTRsLTEtMkg3VjloNWwxIDJoNXY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRW1vamlGb29kQmV2ZXJhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDE5aDE4djJIMnpNMjAgM0g0djEwYzAgMi4yMSAxLjc5IDQgNCA0aDZjMi4yMSAwIDQtMS43OSA0LTR2LTNoMmMxLjExIDAgMi0uODkgMi0yVjVjMC0xLjExLS44OS0yLTItMnptLTQgMTBjMCAxLjEtLjkgMi0yIDJIOGMtMS4xIDAtMi0uOS0yLTJWNWgzdjEuNEw3LjE5IDcuODVjLS4xMi4wOS0uMTkuMjQtLjE5LjM5djQuMjZjMCAuMjguMjIuNS41LjVoNGMuMjggMCAuNS0uMjIuNS0uNVY4LjI0YzAtLjE1LS4wNy0uMy0uMTktLjM5TDEwIDYuNFY1aDZ2OHpNOS41IDcuMjhsMS41IDEuMlYxMkg4VjguNDhsMS41LTEuMnpNMjAgOGgtMlY1aDJ2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVtb2ppTmF0dXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuOTQgNC44OEExLjMyIDEuMzIgMCAwIDAgMjAuNjggNEgxOS42bC0uMzEtLjk3QzE5LjE1IDIuNDMgMTguNjEgMiAxOCAycy0xLjE1LjQzLTEuMjkgMS4wNEwxNi40IDRoLTEuMDdjLS41NyAwLTEuMDguMzUtMS4yNi44OC0uMTkuNTYuMDQgMS4xNy41NiAxLjQ4bC44Ny41Mi0uNCAxLjI0Yy0uMjMuNTgtLjA0IDEuMjUuNDUgMS42Mi4yMy4xNy41MS4yNi43OC4yNi4zMSAwIC42MS0uMTEuODYtLjMybC44MS0uNy44MS43Yy4yNS4yMS41NS4zMi44Ni4zMi4yNyAwIC41NS0uMDkuNzgtLjI2LjUtLjM3LjY4LTEuMDQuNDUtMS42MmwtLjM5LTEuMjQuODctLjUyYy41MS0uMzEuNzQtLjkyLjU2LTEuNDh6TTE4IDdjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpNMTMuNDkgMTAuNTFjLS40My0uNDMtLjk0LS43My0xLjQ5LS45M1Y4aC0xdjEuMzhjLS4xMS0uMDEtLjIzLS4wMy0uMzQtLjAzLTEuMDIgMC0yLjA1LjM5LTIuODMgMS4xN2wtLjUuNS0xLjMzLS41YTMuMDEgMy4wMSAwIDAgMC0zLjgzIDEuODJjLS4yNy43NS0uMjMgMS41Ny4xMiAyLjI5LjIzLjQ4LjU4Ljg3IDEgMS4xNi0uMzggMS4zNS0uMDYgMi44NSAxIDMuOTEuNzguNzggMS44IDEuMTcgMi44MyAxLjE3LjM3IDAgLjczLS4wNyAxLjA5LS4xNy4yOS40Mi42OC43NyAxLjE2IDEgLjQxLjIuODQuMyAxLjI4LjMuMzQgMCAuNjgtLjA2IDEuMDEtLjE3YTMuMDA3IDMuMDA3IDAgMCAwIDEuODItMy44NWwtLjQ5LTEuMy41LS41Yy44Ny0uODcgMS4yNC0yLjA0IDEuMTQtMy4xN0gxNnYtMWgtMS41OWMtLjE5LS41NS0uNDktMS4wNi0uOTItMS41em0tNS45MSA4LjMxYy0uMTUuMDQtLjMuMDYtLjQ2LjA2LS41MyAwLTEuMDQtLjIxLTEuNDEtLjU5LS4zOC0uMzgtLjU5LS44OC0uNTktMS40MSAwLS4xNi4wMy0uMzIuMDYtLjQ3LjE0LjAxLjI4LjAzLjQyLjAzLjg1IDAgMS42OC0uMiAyLjQ0LS40OC0uMzIuODktLjU0IDEuODctLjQ2IDIuODZ6bS0yLjkxLTQuNTNjLS4yNS0uMDktLjQ1LS4yNy0uNTctLjUxcy0uMTMtLjUxLS4wNC0uNzZjLjE5LS41Mi43Ni0uNzkgMS4yNi0uNjFsMy4xNiAxLjE5Yy0xLjE1LjYtMi42MyAxLjExLTMuODEuNjl6bTYuMzIgNS42NWMtLjI1LjA5LS41Mi4wOC0uNzYtLjA0YS45ODkuOTg5IDAgMCAxLS41MS0uNTdjLS40Mi0xLjE4LjA5LTIuNjUuNy0zLjhsMS4xOCAzLjEzYy4xOC41Mi0uMDkgMS4xLS42MSAxLjI4em0xLjIxLTUuMzQtLjYxLTEuNjFjMC0uMDEtLjAxLS4wMi0uMDItLjAzbC0uMDYtLjEyYS42NzMuNjczIDAgMCAwLS4wNy0uMTFsLS4wOS0uMDktLjA5LS4wOWMtLjAzLS4wMy0uMDctLjA1LS4xMS0uMDctLjA0LS4wMi0uMDctLjA1LS4xMi0uMDYtLjAxIDAtLjAyLS4wMS0uMDMtLjAybC0xLjYtLjZhMS45NjYgMS45NjYgMCAwIDEgMi42Ny4xM2MuNzMuNzMuNzcgMS44OC4xMyAyLjY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRW1vamlPYmplY3RzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgM2MtLjQ2IDAtLjkzLjA0LTEuNC4xNC0yLjc2LjUzLTQuOTYgMi43Ni01LjQ4IDUuNTItLjQ4IDIuNjEuNDggNS4wMSAyLjIyIDYuNTYuNDMuMzguNjYuOTEuNjYgMS40N1YxOWMwIDEuMS45IDIgMiAyaC4yOGExLjk4IDEuOTggMCAwIDAgMy40NCAwSDE0YzEuMSAwIDItLjkgMi0ydi0yLjMxYzAtLjU1LjIyLTEuMDkuNjQtMS40NkE2Ljk1NiA2Ljk1NiAwIDAgMCAxOSAxMGMwLTMuODctMy4xMy03LTctN3ptMiAxNGgtNHYtMWg0djF6bS00IDJ2LTFoNHYxaC00em01LjMxLTUuMjZjLS4wOS4wOC0uMTYuMTgtLjI0LjI2SDguOTJjLS4wOC0uMDktLjE1LS4xOS0uMjQtLjI3LTEuMzItMS4xOC0xLjkxLTIuOTQtMS41OS00LjcuMzYtMS45NCAxLjk2LTMuNTUgMy44OS0zLjkzLjM0LS4wNy42OC0uMSAxLjAyLS4xIDIuNzYgMCA1IDIuMjQgNSA1IDAgMS40My0uNjEgMi43OS0xLjY5IDMuNzR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjUgMTFoMXYzaC0xelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm05LjY3MiA5LjU4LjcwNy0uNzA2IDIuMTIyIDIuMTIxLS43MDcuNzA3elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMi4yMDggMTEuNzEyLS43MDctLjcwNyAyLjEyMS0yLjEyMS43MDcuNzA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRW1vamlQZW9wbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiNFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS44OSA4LjExQzE1LjUgNy43MiAxNC44MyA3IDEzLjUzIDdoLTIuNTRDOC4yNCA2Ljk5IDYgNC43NSA2IDJINGMwIDMuMTYgMi4xMSA1Ljg0IDUgNi43MVYyMmgydi02aDJ2NmgyVjEwLjA1TDE4Ljk1IDE0bDEuNDEtMS40MS00LjQ3LTQuNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFbW9qaVN5bWJvbHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDJoOHYySDN6TTYgMTFoMlY3aDNWNUgzdjJoM3pNMTIuNDA0IDIwLjE4Mmw3Ljc3OC03Ljc3OCAxLjQxNCAxLjQxNC03Ljc3OCA3Ljc3OHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNC41XCIsXCJjeVwiOlwiMTQuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTkuNVwiLFwiY3lcIjpcIjE5LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDExQTIuNSAyLjUgMCAwIDAgMTggOC41VjRoM1YyaC00djQuNTFjLS40Mi0uMzItLjkzLS41MS0xLjUtLjUxYTIuNSAyLjUgMCAwIDAgMCA1ek05Ljc0IDE1Ljk2bC0xLjQxIDEuNDEtLjcxLS43MS4zNS0uMzVhMi40OTkgMi40OTkgMCAwIDAtMS43Ny00LjI3IDIuNDk5IDIuNDk5IDAgMCAwLTEuNzcgNC4yN2wuMzUuMzUtMS4wNiAxLjA2Yy0uOTguOTgtLjk4IDIuNTYgMCAzLjU0LjUuNSAxLjE0Ljc0IDEuNzguNzRzMS4yOC0uMjQgMS43Ny0uNzNsMS4wNi0xLjA2IDEuNDEgMS40MSAxLjQxLTEuNDEtMS40MS0xLjQxIDEuNDEtMS40MS0xLjQxLTEuNDN6TTUuODUgMTQuMmMuMTItLjEyLjI2LS4xNS4zNS0uMTVzLjIzLjAzLjM1LjE1Yy4xOS4yLjE5LjUxIDAgLjcxbC0uMzUuMzUtLjM1LS4zNmEuNTAxLjUwMSAwIDAgMSAwLS43em0wIDUuNjVjLS4xMi4xMi0uMjYuMTUtLjM1LjE1cy0uMjMtLjAzLS4zNS0uMTVhLjUxMy41MTMgMCAwIDEgMC0uNzFsMS4wNi0xLjA2LjcxLjcxLTEuMDcgMS4wNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVtb2ppVHJhbnNwb3J0YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC41NyAxMC42NmMtLjE0LS40LS41Mi0uNjYtLjk3LS42NmgtNy4xOWMtLjQ2IDAtLjgzLjI2LS45OC42NkwxMCAxNC43N2wuMDEgNS41MWMwIC4zOC4zMS43Mi42OS43MmguNjJjLjM4IDAgLjY4LS4zOC42OC0uNzZWMTloOHYxLjI0YzAgLjM4LjMxLjc2LjY5Ljc2aC42MWMuMzggMCAuNjktLjM0LjY5LS43MmwuMDEtMS4zN3YtNC4xNGwtMS40My00LjExem0tOC4xNi4zNGg3LjE5bDEuMDMgM2gtOS4yNWwxLjAzLTN6TTEyIDE3Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTggMGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA5aDFWM0g3djVIMnYxM2gxVjloNVY0aDZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTFoMnYySDV6TTEwIDVoMnYyaC0yek01IDE1aDJ2Mkg1ek01IDE5aDJ2Mkg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRW5naW5lZXJpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDE1Yy0yLjY3IDAtOCAxLjM0LTggNHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00em0tNiA0Yy4yMi0uNzIgMy4zMS0yIDYtMiAyLjcgMCA1LjggMS4yOSA2IDJIM3pNNC43NCA5SDVjMCAyLjIxIDEuNzkgNCA0IDRzNC0xLjc5IDQtNGguMjZjLjI3IDAgLjQ5LS4yMi40OS0uNDl2LS4wMmEuNDkuNDkgMCAwIDAtLjQ5LS40OUgxM2MwLTEuNDgtLjgxLTIuNzUtMi0zLjQ1di45NWMwIC4yOC0uMjIuNS0uNS41cy0uNS0uMjItLjUtLjVWNC4xNEM5LjY4IDQuMDYgOS4zNSA0IDkgNHMtLjY4LjA2LTEgLjE0VjUuNWMwIC4yOC0uMjIuNS0uNS41UzcgNS43OCA3IDUuNXYtLjk1QzUuODEgNS4yNSA1IDYuNTIgNSA4aC0uMjZhLjQ5LjQ5IDAgMCAwLS40OS40OXYuMDNjMCAuMjYuMjIuNDguNDkuNDh6TTExIDljMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yaDR6TTIxLjk4IDYuMjNsLjkzLS44My0uNzUtMS4zLTEuMTkuMzljLS4xNC0uMTEtLjMtLjItLjQ3LS4yN0wyMC4yNSAzaC0xLjVsLS4yNSAxLjIyYy0uMTcuMDctLjMzLjE2LS40OC4yN2wtMS4xOC0uMzktLjc1IDEuMy45My44M2MtLjAyLjE3LS4wMi4zNSAwIC41MmwtLjkzLjg1Ljc1IDEuMyAxLjItLjM4Yy4xMy4xLjI4LjE4LjQzLjI1bC4yOCAxLjIzaDEuNWwuMjctMS4yMmMuMTYtLjA3LjMtLjE1LjQ0LS4yNWwxLjE5LjM4Ljc1LTEuMy0uOTMtLjg1Yy4wMy0uMTkuMDItLjM2LjAxLS41M3pNMTkuNSA3Ljc1YTEuMjUgMS4yNSAwIDEgMSAwLTIuNSAxLjI1IDEuMjUgMCAwIDEgMCAyLjV6TTE5LjQgMTAuNzlsLS44NS4yOGMtLjEtLjA4LS4yMS0uMTQtLjMzLS4xOWwtLjE4LS44OGgtMS4wN2wtLjE4Ljg3Yy0uMTIuMDUtLjI0LjEyLS4zNC4xOWwtLjg0LS4yOC0uNTQuOTMuNjYuNTljLS4wMS4xMy0uMDEuMjUgMCAuMzdsLS42Ni42MS41NC45My44Ni0uMjdjLjEuMDcuMi4xMy4zMS4xOGwuMTguODhoMS4wN2wuMTktLjg3Yy4xMS0uMDUuMjItLjExLjMyLS4xOGwuODUuMjcuNTQtLjkzLS42Ni0uNjFjLjAxLS4xMy4wMS0uMjUgMC0uMzdsLjY2LS41OS0uNTMtLjkzem0tMS45IDIuNmMtLjQ5IDAtLjg5LS40LS44OS0uODlzLjQtLjg5Ljg5LS44OS44OS40Ljg5Ljg5LS40Ljg5LS44OS44OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZhY2UyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuOTcgMTMuNTJ2LS4wNEMyMy4yMSAxMi4zOCAyNCAxMC43OCAyNCA5YzAtMy4zMS0yLjY5LTYtNi02LS4yNiAwLS41Mi4wMi0uNzguMDZhNS45OCA1Ljk4IDAgMCAwLTEwLjQ0IDBDNi41MiAzLjAyIDYuMjYgMyA2IDMgMi42OSAzIDAgNS42OSAwIDljMCAxLjc4Ljc5IDMuMzggMi4wMiA0LjQ4di4wNEE2LjAwOCA2LjAwOCAwIDAgMCAwIDE4YzAgMy4zMSAyLjY5IDYgNiA2IDEuMzkgMCAyLjY3LS40OCAzLjY5LTEuMjguNzQuMTggMS41MS4yOCAyLjMxLjI4czEuNTctLjEgMi4zMS0uMjhjMS4wMi44IDIuMyAxLjI4IDMuNjkgMS4yOCAzLjMxIDAgNi0yLjY5IDYtNiAwLTEuNzgtLjc5LTMuMzgtMi4wMy00LjQ4ek0yMiA5YzAgLjU1LS4xMiAxLjA3LS4zMiAxLjU0QTEwIDEwIDAgMCAwIDE3Ljk4IDVIMThjMi4yMSAwIDQgMS43OSA0IDR6bS05Ljk3LTRjMi43My4wMSA1LjEzIDEuMzkgNi41NyAzLjQ4LS43MS41Ny0xLjYuODktMi41My44OUE0LjA1OSA0LjA1OSAwIDAgMSAxMiA1LjMxYzAtLjEuMDItLjIuMDMtLjMxek0xMiAyYzEuMjUgMCAyLjM2LjU5IDMuMSAxLjUtLjk4LS4zMi0yLjAyLS41LTMuMS0uNXMtMi4xMi4xOC0zLjEuNUM5LjY0IDIuNTkgMTAuNzUgMiAxMiAyek02IDVoLjAyYTEwIDEwIDAgMCAwLTMuNyA1LjU0QzIuMTIgMTAuMDcgMiA5LjU1IDIgOWMwLTIuMjEgMS43OS00IDQtNHptMCAxN2MtMi4yMSAwLTQtMS43OS00LTQgMC0uNjkuMTktMS4zMi41LTEuODguOCAyLjQ0IDIuNTIgNC40NyA0Ljc0IDUuNjgtLjM5LjEzLS44LjItMS4yNC4yem0tMi05YzAtMy43MiAyLjU2LTYuODUgNi03Ljc0di4wNWMwIDMuMzQgMi43MiA2LjA2IDYuMDYgNi4wNiAxLjI2IDAgMi40NS0uMzkgMy40NS0xLjA5LjMxLjg2LjQ5IDEuNzcuNDkgMi43MiAwIDQuNDEtMy41OSA4LTggOHMtOC0zLjU5LTgtOHptMTQgOWMtLjQ0IDAtLjg1LS4wNy0xLjI1LS4yIDIuMjMtMS4yMSAzLjk0LTMuMjQgNC43NC01LjY4LjMxLjU2LjUgMS4yLjUgMS44OC4wMSAyLjIxLTEuNzggNC0zLjk5IDR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjE0XCIsXCJyXCI6XCIxLjI1XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCIxNFwiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmFjZTMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjlcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjEuMjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIuOTEgMTEuOTZDMjIuMzkgNi4zMiAxNy42NiAyIDEyIDJTMS42MSA2LjMyIDEuMDkgMTEuOTZsLS45IDkuODZjLS4xIDEuMTcuODIgMi4xOCAyIDIuMThoMTkuNjJjMS4xOCAwIDIuMS0xLjAxIDEuOTktMi4xOGwtLjg5LTkuODZ6TTEzIDQuMDdjMi4yNi4yOCA0LjIyIDEuNTEgNS40OSAzLjI4LS41OC40LTEuMjYuNjUtMS45OS42NUMxNC41NyA4IDEzIDYuNDMgMTMgNC41di0uNDN6bS0yIDB2LjQzQzExIDYuNDMgOS40MyA4IDcuNSA4Yy0uNzMgMC0xLjQxLS4yNS0xLjk5LS42NSAxLjI3LTEuNzcgMy4yMy0zIDUuNDktMy4yOHpNNC41NCA5LjEzYy44Ny41NSAxLjg5Ljg3IDIuOTYuODcgMS44NiAwIDMuNS0uOTMgNC41LTIuMzVDMTMgOS4wNyAxNC42NCAxMCAxNi41IDEwYzEuMDcgMCAyLjA5LS4zMiAyLjk2LS44Ny4zNC44OS41NCAxLjg2LjU0IDIuODcgMCA0LjQxLTMuNTkgOC04IDhzLTgtMy41OS04LThjMC0xLjAxLjItMS45OC41NC0yLjg3ek0xMiAyMkgyLjE5bC41Ni02LjJDNC4yNSAxOS40NCA3LjgyIDIyIDEyIDIyczcuNzUtMi41NiA5LjI1LTYuMmwuNTYgNi4ySDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmFjZTQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYy0uOTYgMC0xLjg4LjE0LTIuNzUuMzlBNC45ODYgNC45ODYgMCAwIDAgNSAwQzIuMjQgMCAwIDIuMjQgMCA1YzAgMS44Ljk2IDMuMzcgMi4zOSA0LjI1QzIuMTQgMTAuMTIgMiAxMS4wNCAyIDEyYzAgNS41MiA0LjQ4IDEwIDEwIDEwczEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDJjMi45IDAgNS40NCAxLjU2IDYuODQgMy44OC0uNDMuMDctLjg4LjEyLTEuMzQuMTItMi45IDAtNS40NC0xLjU2LTYuODQtMy44OC40My0uMDcuODgtLjEyIDEuMzQtLjEyek00LjQyIDkuNDdhOC4wNDYgOC4wNDYgMCAwIDEgMy42Ni00LjQ0IDguMDQ2IDguMDQ2IDAgMCAxLTMuNjYgNC40NHpNMiA1YzAtMS42NSAxLjM1LTMgMy0zIC45NSAwIDEuOC40NiAyLjM1IDEuMTUtMS43OS45NC0zLjI2IDIuNDEtNC4yIDQuMkMyLjQ2IDYuOCAyIDUuOTUgMiA1em0xMCAxNWMtNC40MSAwLTgtMy41OS04LTggMC0uMDUuMDEtLjEuMDEtLjE1IDIuNi0uOTggNC42OC0yLjk5IDUuNzQtNS41NWE5Ljk0MiA5Ljk0MiAwIDAgMCA5LjkyIDMuNDZjLjIxLjcxLjMzIDEuNDYuMzMgMi4yNCAwIDQuNDEtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjEuMjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxLjI1XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGYWNlNSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04IDAtMS4xMi4yMy0yLjE4LjY1LTMuMTVhLjQ5NS40OTUgMCAwIDAgLjg1LS4zNWMwLS4yNS0uMTktLjQ1LS40My0uNDkuMTUtLjI2LjMyLS41MS40OS0uNzUtLjAzLjA4LS4wNi4xNS0uMDYuMjQgMCAuMjguMjIuNS41LjVzLjUtLjIyLjUtLjVTNi4yOCA3IDYgN2MtLjEzIDAtLjI1LjA1LS4zNC4xMy41Mi0uNjggMS4xNS0xLjI4IDEuODYtMS43NkEuNDk1LjQ5NSAwIDAgMCA4IDZhLjQ5NS40OTUgMCAwIDAgLjEtLjk4Yy4xNi0uMDkuMzItLjE3LjQ5LS4yNS4wOS4xNC4yNC4yMy40MS4yMy4yOCAwIC41LS4yMi41LS41IDAtLjAzLS4wMS0uMDYtLjAyLS4wOS4zOS0uMTMuNzktLjIzIDEuMjEtLjMtLjExLjEtLjE5LjIzLS4xOS4zOSAwIC4yOC4yMi41LjUuNXMuNS0uMjIuNS0uNWEuNTEuNTEgMCAwIDAtLjMtLjQ2Yy4yNi0uMDMuNTMtLjA0LjgtLjA0cy41NC4wMS44LjA0Yy0uMTguMDgtLjMuMjUtLjMuNDYgMCAuMjguMjIuNS41LjVzLjUtLjIyLjUtLjVjMC0uMTYtLjA4LS4yOS0uMTktLjM4LjQxLjA3LjgyLjE3IDEuMjEuMy0uMDEuMDItLjAyLjA1LS4wMi4wOCAwIC4yOC4yMi41LjUuNS4xNyAwIC4zMi0uMDkuNDEtLjIzLjE3LjA4LjMzLjE2LjQ5LjI1QS40OTUuNDk1IDAgMCAwIDE2IDZjLjI4IDAgLjUtLjIyLjUtLjUgMC0uMDUtLjAxLS4wOS0uMDMtLjEzLjcxLjQ4IDEuMzQgMS4wOCAxLjg2IDEuNzZhLjQ5NS40OTUgMCAwIDAtLjgzLjM3YzAgLjI4LjIyLjUuNS41cy41LS4yMi41LS41YzAtLjA5LS4wMy0uMTYtLjA3LS4yMy4xOC4yNC4zNC40OS40OS43NS0uMjMuMDMtLjQyLjIzLS40Mi40OGEuNDk1LjQ5NSAwIDAgMCAuODUuMzVjLjQyLjk3LjY1IDIuMDMuNjUgMy4xNSAwIDQuNDEtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjEuMjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjUuNVwiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNFwiLFwiY3lcIjpcIjUuNVwiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMFwiLFwiY3lcIjpcIjUuNVwiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxN1wiLFwiY3lcIjpcIjYuNVwiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiNi41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjdcIixcImN5XCI6XCI2LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTFcIixcImN5XCI6XCI2LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTNcIixcImN5XCI6XCI2LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCI2LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI3LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTRcIixcImN5XCI6XCI3LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTZcIixcImN5XCI6XCI3LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTBcIixcImN5XCI6XCI3LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOFwiLFwiY3lcIjpcIjcuNVwiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiOC41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjdcIixcImN5XCI6XCI4LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTFcIixcImN5XCI6XCI4LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTNcIixcImN5XCI6XCI4LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCI4LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTdcIixcImN5XCI6XCI4LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmFjZTYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDJjMy42OCAwIDYuNzggMi41MSA3LjcxIDUuOS0uNi0uMTYtMS4zMy0uMzctMi4yNi0yLjI0QTIuOTkyIDIuOTkyIDAgMCAwIDE0Ljc2IDZIOS4yNGMtMS4xNSAwLTIuMTguNjQtMi42OSAxLjY2LS45MyAxLjg2LTEuNTggMi4wNi0yLjI2IDIuMjRDNS4yMiA2LjUxIDguMzIgNCAxMiA0em0wIDE2Yy00LjQxIDAtOC0zLjU5LTgtOHYtLjAzYzIuMzEtLjIyIDMuNDMtMS41OSA0LjM0LTMuNDEuMTctLjM1LjUxLS41Ni45LS41Nmg1LjUzYy4zOCAwIC43Mi4yMS44OS41NS45IDEuOCAxLjk5IDMuMTkgNC4zNCAzLjQxdi4wM2MwIDQuNDItMy41OSA4LjAxLTggOC4wMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjEuMjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxLjI1XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGYWNlYm9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDEyYzAtNS41Mi00LjQ4LTEwLTEwLTEwUzIgNi40OCAyIDEyYzAgNC44NCAzLjQ0IDguODcgOCA5LjhWMTVIOHYtM2gyVjkuNUMxMCA3LjU3IDExLjU3IDYgMTMuNSA2SDE2djNoLTJjLS41NSAwLTEgLjQ1LTEgMXYyaDN2M2gtM3Y2Ljk1YzUuMDUtLjUgOS00Ljc2IDktOS45NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZlbWFsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjUgOS41QzE3LjUgNi40NiAxNS4wNCA0IDEyIDRTNi41IDYuNDYgNi41IDkuNWMwIDIuNyAxLjk0IDQuOTMgNC41IDUuNFYxN0g5djJoMnYyaDJ2LTJoMnYtMmgtMnYtMi4xYzIuNTYtLjQ3IDQuNS0yLjcgNC41LTUuNHptLTkgMEM4LjUgNy41NyAxMC4wNyA2IDEyIDZzMy41IDEuNTcgMy41IDMuNVMxMy45MyAxMyAxMiAxM3MtMy41LTEuNTctMy41LTMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpcmVwbGFjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjAxIDEyLjQ2Yy0uMTUuNDItLjE1LjgyLS4wOCAxLjI4LjEuNTUuMzMgMS4wNC4yIDEuNi0uMTMuNTktLjc3IDEuMzgtMS41MyAxLjYzIDEuMjggMS4wNSAzLjIuMzcgMy4zOS0xLjMyLjE3LTEuNTQtMS40NC0xLjk4LTEuOTgtMy4xOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAydjIwaDIwVjJIMnptMTAgMTZjLTEuNTggMC0yLjk3LTEuODgtMy0zLjA2IDAtLjA1LS4wMS0uMTMtLjAxLS4yMi0uMTMtMS43MyAxLTMuMiAyLjQ3LTQuMzcuNDcgMS4wMSAxLjI3IDIuMDMgMi41NyAyLjkyLjU4LjQyLjk3Ljg2Ljk3IDEuNzMgMCAxLjY1LTEuMzUgMy0zIDN6bTggMmgtMnYtMmgtMi4wMkE0Ljk4IDQuOTggMCAwIDAgMTcgMTVjMC0xLjg5LTEuMDktMi44NS0xLjg1LTMuMzdDMTIuMiA5LjYxIDEzIDcgMTMgN2MtNi43MyAzLjU3LTYuMDIgNy40Ny02IDggLjAzLjk2LjQ5IDIuMDcgMS4yMyAzSDZ2Mkg0VjRoMTZ2MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaXRiaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS44OSAxMy44OWMxLjA0IDAgMS44OS0uODUgMS44OS0xLjg5cy0uODUtMS44OS0xLjg5LTEuODlTMTggMTAuOTYgMTggMTJzLjg1IDEuODkgMS44OSAxLjg5em0tNC4yNC0uMjFjLjkzIDAgMS42OC0uNzUgMS42OC0xLjY4cy0uNzUtMS42OC0xLjY4LTEuNjhjLS45MyAwLTEuNjguNzUtMS42OCAxLjY4cy43NSAxLjY4IDEuNjggMS42OHptMC00LjI2Yy45MyAwIDEuNjgtLjc1IDEuNjgtMS42OCAwLS45My0uNzUtMS42OC0xLjY4LTEuNjgtLjkzIDAtMS42OC43NS0xLjY4IDEuNjggMCAuOTMuNzUgMS42OCAxLjY4IDEuNjh6bTAgOC41MWMuOTMgMCAxLjY4LS43NSAxLjY4LTEuNjggMC0uOTMtLjc1LTEuNjgtMS42OC0xLjY4LS45MyAwLTEuNjguNzUtMS42OCAxLjY4IDAgLjkyLjc1IDEuNjggMS42OCAxLjY4em0tNC4yNC00LjQ2Yy44MSAwIDEuNDctLjY2IDEuNDctMS40N3MtLjY2LTEuNDctMS40Ny0xLjQ3Yy0uODEgMC0xLjQ3LjY2LTEuNDcgMS40N3MuNjUgMS40NyAxLjQ3IDEuNDd6bTAtNC4yNmMuODEgMCAxLjQ3LS42NiAxLjQ3LTEuNDdzLS42Ni0xLjQ3LTEuNDctMS40N2MtLjgxIDAtMS40Ny42Ni0xLjQ3IDEuNDdzLjY1IDEuNDcgMS40NyAxLjQ3em0wIDguNTJjLjgxIDAgMS40Ny0uNjYgMS40Ny0xLjQ3IDAtLjgxLS42Ni0xLjQ3LTEuNDctMS40Ny0uODEgMC0xLjQ3LjY2LTEuNDcgMS40Ny0uMDEuODEuNjUgMS40NyAxLjQ3IDEuNDd6bTAgNC4yN2MuODEgMCAxLjQ3LS42NiAxLjQ3LTEuNDcgMC0uODEtLjY2LTEuNDctMS40Ny0xLjQ3LS44MSAwLTEuNDcuNjYtMS40NyAxLjQ3LS4wMS44MS42NSAxLjQ3IDEuNDcgMS40N3ptMC0xNy4wNmMuODEgMCAxLjQ3LS42NiAxLjQ3LTEuNDdTMTIuMjIgMiAxMS40MSAyYy0uODEgMC0xLjQ3LjY2LTEuNDcgMS40N3MuNjUgMS40NyAxLjQ3IDEuNDd6bS00LjI1IDguMzJjLjcgMCAxLjI2LS41NyAxLjI2LTEuMjZzLS41Ny0xLjI2LTEuMjYtMS4yNmExLjI2MSAxLjI2MSAwIDAgMCAwIDIuNTJ6bTAgNC4yNWExLjI2MSAxLjI2MSAwIDAgMCAwLTIuNTIgMS4yNjEgMS4yNjEgMCAwIDAgMCAyLjUyem0wLTguNDlhMS4yNjEgMS4yNjEgMCAwIDAgMC0yLjUyIDEuMjYxIDEuMjYxIDAgMCAwIDAgMi41MnptLTMuODcgNC4wM2ExLjA1IDEuMDUgMCAxIDAgMC0yLjEgMS4wNSAxLjA1IDAgMCAwIDAgMi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmxvb2QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC42NyAxOWMtMS45NSAwLTIuMDkgMS0zLjMzIDEtMS4xOSAwLTEuNDItMS0zLjMzLTEtMS45NSAwLTIuMSAxLTMuMzQgMS0xLjI0IDAtMS4zOC0xLTMuMzMtMS0xLjk1IDAtMi4xIDEtMy4zNCAxdjJjMS45NSAwIDIuMTEtMSAzLjM0LTEgMS4yNCAwIDEuMzggMSAzLjMzIDEgMS45NSAwIDIuMS0xIDMuMzQtMSAxLjIyIDAgMS40IDEgMy4zMyAxIDEuOTMgMCAyLjEtMSAzLjMzLTEgMS4yMiAwIDEuNCAxIDMuMzMgMXYtMmMtMS4yNCAwLTEuMzgtMS0zLjMzLTF6TTguNjggMTcuNWMxLjk1IDAgMi4wOS0xIDMuMzMtMSAxLjE5IDAgMS40MiAxIDMuMzMgMSAxLjk1IDAgMi4wOS0xIDMuMzMtMSAxLjE5IDAgMS40Ljk4IDMuMzEgMXYtMmMtLjYzIDAtMS0uMjgtMS40OC0uNTVsLTIuMDItNy41MyAyLjA5Ljg1Ljc0LTEuODZMOS43OCAyIDIgMTEuNjFsMS41NyAxLjIzIDEuMzktMS43OC45MyAzLjQ4Yy0uMTgtLjAyLS4zNS0uMDUtLjU2LS4wNS0xLjk1IDAtMi4wOSAxLTMuMzMgMXYyYzEuOSAwIDIuMTctMSAzLjM1LTEgMS4xOS4wMSAxLjQyIDEuMDEgMy4zMyAxLjAxem0xLjc0LTEzLjA5IDUuNzQgMi4wOSAyLjE1IDguMDJjLTEuNTQuMTEtMS44Mi44OS0yLjg1Ljk2bC0xLjQyLTUuMzEtMy44NiAxLjA0LjkxIDMuMzljLTEuMTIuMjUtMS40MS45LTIuNDIuOS0uMTggMC0uMzMtLjAyLS40NS0uMDVMNi41IDkuMDlsMy45Mi00LjY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9sbG93VGhlU2lnbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgNS41YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnpNNS43NSA4LjkgMyAyM2gyLjFsMS43NS04TDkgMTd2Nmgydi03LjU1TDguOTUgMTMuNGwuNi0zQzEwLjg1IDEyIDEyLjggMTMgMTUgMTN2LTJjLTEuODUgMC0zLjQ1LTEtNC4zNS0yLjQ1bC0uOTUtMS42QzkuMzUgNi4zNSA4LjcgNiA4IDZjLS4yNSAwLS41LjA1LS43NS4xNUwyIDguM1YxM2gyVjkuNjVsMS43NS0uNzVNMTMgMnY3aDMuNzV2MTRoMS41VjlIMjJWMmgtOXptNS4wMSA2VjYuMjVIMTQuNXYtMS41aDMuNTFWM2wyLjQ5IDIuNUwxOC4wMSA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRnJvbnRIYW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNSA4Yy0uMTcgMC0uMzQuMDItLjUuMDVWNC41YTIuNSAyLjUgMCAwIDAtMy4wNC0yLjQ0QTIuNTAyIDIuNTAyIDAgMCAwIDEyLjUgMGMtMS4wNiAwLTEuOTYuNjYtMi4zMyAxLjU5QTIuNSAyLjUgMCAwIDAgNyA0di41NUEyLjUgMi41IDAgMCAwIDQgN3Y4LjVjMCA0LjY5IDMuODEgOC41IDguNSA4LjVzOC41LTMuODEgOC41LTguNXYtNUEyLjUgMi41IDAgMCAwIDE4LjUgOHptLjUgNy41YTYuNSA2LjUgMCAxIDEtMTMgMFY3YzAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41djVoMlY0YzAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41djdoMlYyLjVjMC0uMjguMjItLjUuNS0uNXMuNS4yMi41LjVWMTFoMlY0LjVjMC0uMjguMjItLjUuNS0uNXMuNS4yMi41LjV2OC45MmMtMS43Ny43Ny0zIDIuNTMtMyA0LjU4aDJjMC0xLjY2IDEuMzQtMyAzLTN2LTQuNWMwLS4yOC4yMi0uNS41LS41cy41LjIyLjUuNXY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR2lybCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDcuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVTMTIuOTcgNCAxMiA0cy0xLjc1Ljc4LTEuNzUgMS43NVMxMS4wMyA3LjUgMTIgNy41em0yIDguNXY0aC00di00SDhsMi4zOC02LjM4YTEuNzMzIDEuNzMzIDAgMCAxIDMuMjQgMEwxNiAxNmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdyb3VwQWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiZ1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119XX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDlWN2gtMnYyaC0ydjJoMnYyaDJ2LTJoMlY5ek04IDEyYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptMC02YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnpNOCAxM2MtMi42NyAwLTggMS4zNC04IDR2M2gxNnYtM2MwLTIuNjYtNS4zMy00LTgtNHptNiA1SDJ2LS45OUMyLjIgMTYuMjkgNS4zIDE1IDggMTVzNS44IDEuMjkgNiAydjF6TTEyLjUxIDQuMDVDMTMuNDMgNS4xMSAxNCA2LjQ5IDE0IDhzLS41NyAyLjg5LTEuNDkgMy45NUMxNC40NyAxMS43IDE2IDEwLjA0IDE2IDhzLTEuNTMtMy43LTMuNDktMy45NXpNMTYuNTMgMTMuODNDMTcuNDIgMTQuNjYgMTggMTUuNyAxOCAxN3YzaDJ2LTNjMC0xLjQ1LTEuNTktMi41MS0zLjQ3LTMuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHcm91cE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDhjMC0xLjQyLS41LTIuNzMtMS4zMy0zLjc2LjQyLS4xNC44Ni0uMjQgMS4zMy0uMjQgMi4yMSAwIDQgMS43OSA0IDRzLTEuNzkgNC00IDRoLS4xOGwtLjc3LS43N2MuNi0uOTQuOTUtMi4wNS45NS0zLjIzem03LjgzIDEySDIzdi0zYzAtMi4xOC0zLjU4LTMuNDctNi4zNC0zLjg3IDEuMS43NSAxLjk1IDEuNzEgMi4yMyAyLjk0TDIyLjgzIDIwek05IDZjLS4wNiAwLS4xMSAwLS4xNi4wMWwtMS42LTEuNmEzLjk5NiAzLjk5NiAwIDAgMSA1LjM1IDUuMzVsLTEuNi0xLjZjLjAxLS4wNS4wMS0uMS4wMS0uMTYgMC0xLjEtLjktMi0yLTJ6bS4xNyA2SDljLTIuMjEgMC00LTEuNzktNC00di0uMTdMLjY5IDMuNTEgMi4xIDIuMWwxOS44IDE5LjgtMS40MSAxLjQxTDE3IDE5LjgzVjIwSDF2LTNjMC0yLjY2IDUuMzMtNCA4LTQgLjM3IDAgLjguMDMgMS4yNS4wOEw5LjE3IDEyek05IDE1Yy0yLjcgMC01LjggMS4yOS02IDIuMDFWMThoMTJ2LS4xN2wtMi4xMS0yLjExQzExLjc2IDE1LjMxIDEwLjMzIDE1IDkgMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHcm91cFJlbW92ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0IDl2MmgtNlY5aDZ6TTggNEM1Ljc5IDQgNCA1Ljc5IDQgOHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMCA2Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnptMCAzYy0yLjY3IDAtOCAxLjM0LTggNHYzaDE2di0zYzAtMi42Ni01LjMzLTQtOC00em02IDVIMnYtLjk5QzIuMiAxNi4yOSA1LjMgMTUgOCAxNXM1LjggMS4yOSA2IDJ2MXpNMTIuNTEgNC4wNUMxMy40MyA1LjExIDE0IDYuNDkgMTQgOHMtLjU3IDIuODktMS40OSAzLjk1QzE0LjQ3IDExLjcgMTYgMTAuMDQgMTYgOHMtMS41My0zLjctMy40OS0zLjk1em00LjAyIDkuNzhDMTcuNDIgMTQuNjYgMTggMTUuNyAxOCAxN3YzaDJ2LTNjMC0xLjQ1LTEuNTktMi41MS0zLjQ3LTMuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHcm91cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxMy43NWMtMi4zNCAwLTcgMS4xNy03IDMuNVYxOWgxNHYtMS43NWMwLTIuMzMtNC42Ni0zLjUtNy0zLjV6TTQuMzQgMTdjLjg0LS41OCAyLjg3LTEuMjUgNC42Ni0xLjI1czMuODIuNjcgNC42NiAxLjI1SDQuMzR6TTkgMTJjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVTMTAuOTMgNSA5IDUgNS41IDYuNTcgNS41IDguNSA3LjA3IDEyIDkgMTJ6bTAtNWMuODMgMCAxLjUuNjcgMS41IDEuNVM5LjgzIDEwIDkgMTBzLTEuNS0uNjctMS41LTEuNVM4LjE3IDcgOSA3em03LjA0IDYuODFjMS4xNi44NCAxLjk2IDEuOTYgMS45NiAzLjQ0VjE5aDR2LTEuNzVjMC0yLjAyLTMuNS0zLjE3LTUuOTYtMy40NHpNMTUgMTJjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVTMTYuOTMgNSAxNSA1Yy0uNTQgMC0xLjA0LjEzLTEuNS4zNS42My44OSAxIDEuOTggMSAzLjE1cy0uMzcgMi4yNi0xIDMuMTVjLjQ2LjIyLjk2LjM1IDEuNS4zNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdyb3VwczIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4yNyAxMmgzLjQ2YTEuNSAxLjUgMCAwIDAgMS40OC0xLjc1bC0uMy0xLjc5YTIuOTUxIDIuOTUxIDAgMCAwLTUuODIuMDFsLS4zIDEuNzljLS4xNS45MS41NSAxLjc0IDEuNDggMS43NHptLjc5LTMuMjFjLjA4LS40Ni40Ny0uNzkuOTQtLjc5cy44Ni4zMy45NC43OWwuMiAxLjIxaC0yLjI4bC4yLTEuMjF6TTEuNjYgMTEuMTFjLS4xMy4yNi0uMTguNTctLjEuODguMTYuNjkuNzYgMS4wMyAxLjUzIDFoMS45NWMuODMgMCAxLjUxLS41OCAxLjUxLTEuMjkgMC0uMTQtLjAzLS4yNy0uMDctLjQtLjAxLS4wMy0uMDEtLjA1LjAxLS4wOC4wOS0uMTYuMTQtLjM0LjE0LS41MyAwLS4zMS0uMTQtLjYtLjM2LS44Mi0uMDMtLjAzLS4wMy0uMDYtLjAyLS4xLjA3LS4yLjA3LS40My4wMS0uNjVhMS4xMiAxLjEyIDAgMCAwLS45OS0uNzQuMDkuMDkgMCAwIDEtLjA3LS4wM0M1LjAzIDguMTQgNC43MiA4IDQuMzcgOGMtLjMgMC0uNTcuMS0uNzUuMjYtLjAzLjAzLS4wNi4wMy0uMDkuMDJhMS4yNCAxLjI0IDAgMCAwLTEuNyAxLjAzYzAgLjAyLS4wMS4wNC0uMDMuMDYtLjI5LjI2LS40Ni42NS0uNDEgMS4wNS4wMy4yMi4xMi40My4yNS42LjAzLjAyLjAzLjA2LjAyLjA5ek0xNi4yNCAxMy42NWMtMS4xNy0uNTItMi42MS0uOS00LjI0LS45LTEuNjMgMC0zLjA3LjM5LTQuMjQuOUEyLjk4OCAyLjk4OCAwIDAgMCA2IDE2LjM5VjE4aDEydi0xLjYxYzAtMS4xOC0uNjgtMi4yNi0xLjc2LTIuNzR6TTguMDcgMTZhLjk2Ljk2IDAgMCAxIC40OS0uNTJjMS4xLS40OSAyLjI2LS43MyAzLjQzLS43MyAxLjE4IDAgMi4zMy4yNSAzLjQzLjczLjIzLjEuNC4yOS40OS41Mkg4LjA3ek0xLjIyIDE0LjU4QTIuMDEgMi4wMSAwIDAgMCAwIDE2LjQzVjE4aDQuNXYtMS42MWMwLS44My4yMy0xLjYxLjYzLTIuMjktLjM3LS4wNi0uNzQtLjEtMS4xMy0uMS0uOTkgMC0xLjkzLjIxLTIuNzguNTh6TTIyLjc4IDE0LjU4QTYuOTUgNi45NSAwIDAgMCAyMCAxNGMtLjM5IDAtLjc2LjA0LTEuMTMuMS40LjY4LjYzIDEuNDYuNjMgMi4yOVYxOEgyNHYtMS41N2MwLS44MS0uNDgtMS41My0xLjIyLTEuODV6TTIyIDExdi0uNWMwLTEuMS0uOS0yLTItMmgtMmMtLjQyIDAtLjY1LjQ4LS4zOS44MWwuNy42M2MtLjE5LjMxLS4zMS42Ny0uMzEgMS4wNiAwIDEuMS45IDIgMiAyczItLjkgMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR3JvdXBzMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjI0IDEzLjY1Yy0xLjE3LS41Mi0yLjYxLS45LTQuMjQtLjktMS42MyAwLTMuMDcuMzktNC4yNC45QTIuOTg4IDIuOTg4IDAgMCAwIDYgMTYuMzlWMThoMTJ2LTEuNjFjMC0xLjE4LS42OC0yLjI2LTEuNzYtMi43NHpNOC4wNyAxNmEuOTYuOTYgMCAwIDEgLjQ5LS41MmMxLjEtLjQ5IDIuMjYtLjczIDMuNDMtLjczIDEuMTggMCAyLjMzLjI1IDMuNDMuNzMuMjMuMS40LjI5LjQ5LjUySDguMDd6TTEuMjIgMTQuNThBMi4wMSAyLjAxIDAgMCAwIDAgMTYuNDNWMThoNC41di0xLjYxYzAtLjgzLjIzLTEuNjEuNjMtMi4yOS0uMzctLjA2LS43NC0uMS0xLjEzLS4xLS45OSAwLTEuOTMuMjEtMi43OC41OHpNMjIuNzggMTQuNThBNi45NSA2Ljk1IDAgMCAwIDIwIDE0Yy0uMzkgMC0uNzYuMDQtMS4xMy4xLjQuNjguNjMgMS40Ni42MyAyLjI5VjE4SDI0di0xLjU3YzAtLjgxLS40OC0xLjUzLTEuMjItMS44NXpNMTIgMTJjMS42NiAwIDMtMS4zNCAzLTNzLTEuMzQtMy0zLTMtMyAxLjM0LTMgMyAxLjM0IDMgMyAzem0wLTRjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXpNMS40OTcgMTEgNCA4LjQ5NyA2LjUwMyAxMSA0IDEzLjUwM3pNMjAgOWwtMi41IDRoNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdyb3VwcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTNjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0xLjEzIDEuMWMtLjM3LS4wNi0uNzQtLjEtMS4xMy0uMS0uOTkgMC0xLjkzLjIxLTIuNzguNThBMi4wMSAyLjAxIDAgMCAwIDAgMTYuNDNWMThoNC41di0xLjYxYzAtLjgzLjIzLTEuNjEuNjMtMi4yOXpNMjAgMTNjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem00IDMuNDNjMC0uODEtLjQ4LTEuNTMtMS4yMi0xLjg1QTYuOTUgNi45NSAwIDAgMCAyMCAxNGMtLjM5IDAtLjc2LjA0LTEuMTMuMS40LjY4LjYzIDEuNDYuNjMgMi4yOVYxOEgyNHYtMS41N3ptLTcuNzYtMi43OGMtMS4xNy0uNTItMi42MS0uOS00LjI0LS45LTEuNjMgMC0zLjA3LjM5LTQuMjQuOUEyLjk4OCAyLjk4OCAwIDAgMCA2IDE2LjM5VjE4aDEydi0xLjYxYzAtMS4xOC0uNjgtMi4yNi0xLjc2LTIuNzR6TTguMDcgMTZjLjA5LS4yMy4xMy0uMzkuOTEtLjY5Ljk3LS4zOCAxLjk5LS41NiAzLjAyLS41NnMyLjA1LjE4IDMuMDIuNTZjLjc3LjMuODEuNDYuOTEuNjlIOC4wN3pNMTIgOGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xbTAtMmMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIYW5kc2hha2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4yMiAxOS44NWMtLjE4LjE4LS41LjIxLS43MSAwYS41MDQuNTA0IDAgMCAxIDAtLjcxbDMuMzktMy4zOS0xLjQxLTEuNDEtMy4zOSAzLjM5Yy0uMTkuMi0uNTEuMTktLjcxIDBhLjUwNC41MDQgMCAwIDEgMC0uNzFsMy4zOS0zLjM5LTEuNDEtMS40MS0zLjM5IDMuMzljLS4xOC4xOC0uNS4yMS0uNzEgMGEuNTEzLjUxMyAwIDAgMSAwLS43MWwzLjM5LTMuMzktMS40Mi0xLjQxLTMuMzkgMy4zOWMtLjE4LjE4LS41LjIxLS43MSAwYS41MTMuNTEzIDAgMCAxIDAtLjcxTDkuNTIgOC40bDEuODcgMS44NmMuOTUuOTUgMi41OS45NCAzLjU0IDAgLjk4LS45OC45OC0yLjU2IDAtMy41NGwtMS44Ni0xLjg2LjI4LS4yOGMuNzgtLjc4IDIuMDUtLjc4IDIuODMgMGw0LjI0IDQuMjRjLjc4Ljc4Ljc4IDIuMDUgMCAyLjgzbC04LjIgOC4yem05LjYxLTYuNzhhNC4wMDggNC4wMDggMCAwIDAgMC01LjY2bC00LjI0LTQuMjRhNC4wMDggNC4wMDggMCAwIDAtNS42NiAwbC0uMjguMjgtLjI4LS4yOGE0LjAwOCA0LjAwOCAwIDAgMC01LjY2IDBMMi4xNyA2LjcxYTMuOTkyIDMuOTkyIDAgMCAwLS40IDUuMTlsMS40NS0xLjQ1YTIgMiAwIDAgMSAuMzctMi4zM2wzLjU0LTMuNTRjLjc4LS43OCAyLjA1LS43OCAyLjgzIDBsMy41NiAzLjU2Yy4xOC4xOC4yMS41IDAgLjcxLS4yMS4yMS0uNTMuMTgtLjcxIDBMOS41MiA1LjU3bC01LjggNS43OWMtLjk4Ljk3LS45OCAyLjU2IDAgMy41NC4zOS4zOS44OS42MyAxLjQyLjdhMi40NTggMi40NTggMCAwIDAgMi4xMiAyLjEyIDIuNDU4IDIuNDU4IDAgMCAwIDIuMTIgMi4xMmMuMDcuNTQuMzEgMS4wMy43IDEuNDIuNDcuNDcgMS4xLjczIDEuNzcuNzMuNjcgMCAxLjMtLjI2IDEuNzctLjczbDguMjEtOC4xOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhlYWx0aEFuZFNhZmV0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjUgMTNIOHYtM2gyLjVWNy41aDNWMTBIMTZ2M2gtMi41djIuNWgtM1YxM3pNMTIgMiA0IDV2Ni4wOWMwIDUuMDUgMy40MSA5Ljc2IDggMTAuOTEgNC41OS0xLjE1IDgtNS44NiA4LTEwLjkxVjVsLTgtM3ptNiA5LjA5YzAgNC0yLjU1IDcuNy02IDguODMtMy40NS0xLjEzLTYtNC44Mi02LTguODN2LTQuN2w2LTIuMjUgNiAyLjI1djQuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhlYXJ0QnJva2VuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNSAzYy0uOTYgMC0xLjkuMjUtMi43My42OUwxMiA5aDNsLTMgMTAgMS05aC0zbDEuNTQtNS4zOUMxMC40NyAzLjYxIDkuMDEgMyA3LjUgMyA0LjQyIDMgMiA1LjQyIDIgOC41YzAgNC4xMyA0LjE2IDcuMTggMTAgMTIuNSA1LjQ3LTQuOTQgMTAtOC4yNiAxMC0xMi41QzIyIDUuNDIgMTkuNTggMyAxNi41IDN6bS02LjI2IDEzLjczQzYuNDUgMTMuMzQgNCAxMSA0IDguNSA0IDYuNTQgNS41NCA1IDcuNSA1Yy41OSAwIDEuMTkuMTUgMS43My40Mkw3LjM1IDEyaDMuNDJsLS41MyA0Ljczem00Ljg5LTEuMkwxNy42OSA3aC0yLjkxbC42MS0xLjgyYy4zNi0uMTIuNzQtLjE4IDEuMTEtLjE4QzE4LjQ2IDUgMjAgNi41NCAyMCA4LjVjMCAyLjIxLTIuMDIgNC40My00Ljg3IDcuMDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIaWtpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy41IDUuNWMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTQgNS4yOGMtMS4yMy0uMzctMi4yMi0xLjE3LTIuOC0yLjE4bC0xLTEuNmMtLjQxLS42NS0xLjExLTEtMS44NC0xLS43OCAwLTEuNTkuNS0xLjc4IDEuNDRTNyAyMyA3IDIzaDIuMWwxLjgtOCAyLjEgMnY2aDJ2LTcuNWwtMi4xLTIgLjYtM2MxIDEuMTUgMi40MSAyLjAxIDQgMi4zNFYyM0gxOVY5aC0xLjV2MS43OHpNNy40MyAxMy4xM2wtMi4xMi0uNDFhLjk5OS45OTkgMCAwIDEtLjc5LTEuMTdsLjc2LTMuOTNhMiAyIDAgMCAxIDIuMzQtMS41OGwxLjE2LjIzLTEuMzUgNi44NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhpc3RvcnlFZHUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDR2MS4zOGMtLjgzLS4zMy0xLjcyLS41LTIuNjEtLjUtMS43OSAwLTMuNTguNjgtNC45NSAyLjA1bDMuMzMgMy4zM2gxLjExdjEuMTFjLjg2Ljg2IDEuOTggMS4zMSAzLjExIDEuMzZWMTVINnYzYzAgMS4xLjkgMiAyIDJoMTBjMS42NiAwIDMtMS4zNCAzLTNWNEg5em0tMS4xMSA2LjQxVjguMjZINS42MUw0LjU3IDcuMjJhNS4wNyA1LjA3IDAgMCAxIDEuODItLjM0YzEuMzQgMCAyLjU5LjUyIDMuNTQgMS40NmwxLjQxIDEuNDEtLjIuMmEyLjcgMi43IDAgMCAxLTEuOTIuOGMtLjQ3IDAtLjkzLS4xMi0xLjMzLS4zNHpNMTkgMTdjMCAuNTUtLjQ1IDEtMSAxcy0xLS40NS0xLTF2LTJoLTZ2LTIuNTljLjU3LS4yMyAxLjEtLjU3IDEuNTYtMS4wM2wuMi0uMkwxNS41OSAxNEgxN3YtMS40MWwtNi01Ljk3VjZoOHYxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS41IDktMi4yNS00aC0zLjMxbC0xLjY5LTNoLTQuNUw4LjA2IDVINC43NUwyLjUgOWwxLjY5IDMtMS42OSAzIDIuMjUgNGgzLjMxbDEuNjkgM2g0LjVsMS42OS0zaDMuMzFsMi4yNS00LTEuNjktMyAxLjY5LTN6bS0yLjI5IDAtMS4xMiAyaC0yLjE0bC0xLjEyLTIgMS4xMi0yaDIuMTRsMS4xMiAyem0tOC4yNyA1LTEuMTItMiAxLjEyLTJoMi4xMmwxLjEyIDItMS4xMiAyaC0yLjEyem0yLjE0LTEwIDEuMTIgMS45OEwxMy4wNiA4aC0yLjEyTDkuOCA1Ljk4IDEwLjkyIDRoMi4xNnpNNS45MiA3aDIuMTRsMS4xMiAyLTEuMTIgMkg1LjkyTDQuNzkgOWwxLjEzLTJ6bS0xLjEzIDggMS4xMi0yaDIuMTRsMS4xMiAyLTEuMTIgMkg1LjkybC0xLjEzLTJ6bTYuMTMgNUw5LjggMTguMDIgMTAuOTQgMTZoMi4xMmwxLjEzIDIuMDJMMTMuMDggMjBoLTIuMTZ6bTcuMTYtM2gtMi4xNGwtMS4xMi0yIDEuMTItMmgyLjE0bDEuMTIgMi0xLjEyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJY2VTa2F0aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTdjMCAxLjY2LTEuMzQgMy0zIDNoLTJ2LTJoM3YtNGEzLjk2IDMuOTYgMCAwIDAtMi45MS0zLjgybC0yLjYyLS43NEMxMi42MiA5LjE5IDEyIDguMzkgMTIgNy41VjNIM3YxNWgzdjJIMnYyaDE2YzIuNzYgMCA1LTIuMjQgNS01aC0yek01IDE2VjVoNXYxSDguNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjVIMTBsLjEgMUg4LjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41aDEuODFjLjQ1IDEuMTIgMS40IDIuMDEgMi42IDIuMzZsMi42Mi43M0MxNi40IDEyLjMzIDE3IDEzLjEgMTcgMTR2Mkg1em05IDRIOHYtMmg2djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbnRlcmVzdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjAyIDEzYy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMCA2Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpNMTMgMTN2OGg4di04aC04em02IDZoLTR2LTRoNHY0ek03IDJsLTUgOWgxMEw3IDJ6bTAgNC4xMkw4LjYgOUg1LjRMNyA2LjEyek0xOS4yNSAyLjVjLTEuMDYgMC0xLjgxLjU2LTIuMjUgMS4xNy0uNDQtLjYxLTEuMTktMS4xNy0yLjI1LTEuMTdDMTMuMTkgMi41IDEyIDMuNzggMTIgNS4yNWMwIDIgMi40MiAzLjQyIDUgNS43NSAyLjU4LTIuMzMgNS0zLjc1IDUtNS43NSAwLTEuNDctMS4xOS0yLjc1LTIuNzUtMi43NXpNMTcgOC4zNWMtMS40NS0xLjIyLTMtMi40LTMtMy4xIDAtLjQzLjM1LS43NS43NS0uNzUuMzEgMCAuNTIuMTcuNzMuMzdMMTcgNi4zbDEuNTItMS40M2MuMjEtLjIuNDItLjM3LjczLS4zNy40IDAgLjc1LjMyLjc1Ljc1IDAgLjctMS41NSAxLjg4LTMgMy4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW9zU2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNiA1LTEuNDIgMS40Mi0xLjU5LTEuNTlWMTZoLTEuOThWNC44M0w5LjQyIDYuNDIgOCA1bDQtNCA0IDR6bTQgNXYxMWMwIDEuMS0uOSAyLTIgMkg2YTIgMiAwIDAgMS0yLTJWMTBjMC0xLjExLjg5LTIgMi0yaDN2Mkg2djExaDEyVjEwaC0zVjhoM2EyIDIgMCAwIDEgMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lS2F5YWtpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAyM2MtMS4wMyAwLTIuMDYtLjI1LTMtLjc1LTEuODkgMS00LjExIDEtNiAwLTEuODkgMS00LjExIDEtNiAwLS45NS41LTEuOTcuNzUtMyAuNzVIMnYtMmgxYzEuMDQgMCAyLjA4LS4zNSAzLTEgMS44MyAxLjMgNC4xNyAxLjMgNiAwIDEuODMgMS4zIDQuMTcgMS4zIDYgMCAuOTEuNjUgMS45NiAxIDMgMWgxdjJoLTF6TTEyIDUuNWMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTEyIDEycy0xLjUyLjcxLTMuOTMgMS4zN2MtLjgyLS4yMy0xLjUzLS43NS0yLjA3LTEuMzctLjczLjg0LTEuOCAxLjUtMyAxLjVzLTIuMjctLjY2LTMtMS41Yy0uNzMuODQtMS44IDEuNS0zIDEuNXMtMi4yNy0uNjYtMy0xLjVjLS41NC42MS0xLjI1IDEuMTMtMi4wNyAxLjM3QzEuNTIgMTguMjEgMCAxNy41IDAgMTcuNXMyLjkzLTEuMzYgNy4xMy0yLjA4bDEuMzUtNC4xN2MuMzEtLjk1IDEuMzItMS40NyAyLjI3LTEuMTYuMDkuMDMuMTkuMDcuMjcuMTFsMi40NyAxLjMgMi44NC0xLjUgMS42NS0zLjcxLS41MS0xLjMyTDE4LjggMiAyMiAzLjQzIDIwLjY3IDYuNGwtMS4zMS41LTMuNzIgOC4zNGM0Ljg1LjYzIDguMzYgMi4yNiA4LjM2IDIuMjZ6bS04Ljk4LTQuNTQtMS41Mi44LTEuNzUtLjkyLS43MSAyLjE3Yy4zMiAwIC42NC0uMDEuOTYtLjAxLjcxIDAgMS40LjAzIDIuMDcuMDhsLjk1LTIuMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVLaW5nQmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTJjMC0xLjEtLjktMi0yLTJWN2MwLTEuMS0uOS0yLTItMkg2Yy0xLjEgMC0yIC45LTIgMnYzYy0xLjEgMC0yIC45LTIgMnY1aDEuMzNMNCAxOWgxbC42Ny0yaDEyLjY3bC42NiAyaDFsLjY3LTJIMjJ2LTV6bS00LTJoLTVWN2g1djN6TTYgN2g1djNINlY3em0tMiA1aDE2djNINHYtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUtpdGVzdXJmaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAzYzAtMS4xLjktMiAyLTJzMiAuOSAyIDItLjkgMi0yIDItMi0uOS0yLTJ6bTE0LjA2LTJoLTIuMTJMMTUuNSAzLjQ0bDEuMDYgMS4wNiAzLjUtMy41ek0yMiAyM3YtMmgtMWMtMS4wNCAwLTIuMDgtLjM1LTMtMS0xLjgzIDEuMy00LjE3IDEuMy02IDAtMS44MyAxLjMtNC4xNyAxLjMtNiAwLS45MS42NS0xLjk2IDEtMyAxSDJ2MmgxYzEuMDMgMCAyLjA1LS4yNSAzLS43NSAxLjg5IDEgNC4xMSAxIDYgMCAxLjg5IDEgNC4xMSAxIDYgMCAuOTUuNSAxLjk3Ljc1IDMgLjc1aDF6bS0xLTkuNzJjMCAxLjQ0LTIuMTkgMy42Mi01LjA0IDUuNTgtLjMxLjA5LS42My4xNC0uOTYuMTQtMS4yIDAtMi4yNy0uNjYtMy0xLjUtLjczLjg0LTEuOCAxLjUtMyAxLjUtLjk0IDAtMS44MS0uNDEtMi40OS0uOTkuNDYtLjM5Ljk2LS43OCAxLjQ5LTEuMTdsLTEuNTUtMi45N0E0LjA2IDQuMDYgMCAwIDEgNiAxMlY4YzAtMS4xLjktMiAyLTJoM2MxLjM4IDAgMi42My0uNTYgMy41NC0xLjQ2bDEuNDEgMS40MUE3LjAxOCA3LjAxOCAwIDAgMSAxMSA4SDkuNnYzLjVoMi44bDEuNjkgMS44OGMxLjk1LS44NCAzLjc3LTEuMzggNS4wNi0xLjM4Ljg0IDAgMS44NS4yNSAxLjg1IDEuMjh6bS04LjguOTktLjctLjc3LTIuNS4xLjgzIDIuMDFjLjU5LS4zOCAxLjgxLTEuMDYgMi4zNy0xLjM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGFuZHNsaWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTIgOCA4SDJ2MTRoMjBsLTYtOC01LTJ6bTEuNTMgMi43N0w2IDE2Ljk1bC0yLS42N3YtMS44OWwyIC42NyAzLjk1LTEuMzIgMi41OCAxLjAzek03IDEwbDEuNTcgMi4wOS0yLjU3Ljg2LTItLjY3VjEwaDN6TTQgMjB2LTEuNjFsMiAuNjcgOS4wMy0zLjAxTDE4IDIwSDR6TTE3IDZWMWwtNS0xLTMgMnY0bDMgMiA1LTJ6bS02LTIuOTMgMS40Mi0uOTUgMi41OC41MnYyLjAxbC0yLjc3IDEuMTFMMTEgNC45M1YzLjA3ek0xOC41IDcgMTYgOXYzbDIuNSAyIDQuNS0yVjhsLTQuNS0xem0yLjUgMy43LTIuMi45OC0uOC0uNjRWOS45NmwxLS44IDIgLjQ0djEuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2F0aW9uQ2l0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTFWNWwtMy0zLTMgM3YySDN2MTRoMThWMTFoLTZ6bS04IDhINXYtMmgydjJ6bTAtNEg1di0yaDJ2MnptMC00SDVWOWgydjJ6bTYgOGgtMnYtMmgydjJ6bTAtNGgtMnYtMmgydjJ6bTAtNGgtMlY5aDJ2MnptMC00aC0yVjVoMnYyem02IDEyaC0ydi0yaDJ2MnptMC00aC0ydi0yaDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUx1Z2dhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgMThIOFY5aDEuNXY5em0zLjI1IDBoLTEuNVY5aDEuNXY5ek0xNiAxOGgtMS41VjlIMTZ2OXptMS0xMmgtMlYzYzAtLjU1LS40NS0xLTEtMWgtNGMtLjU1IDAtMSAuNDUtMSAxdjNIN2MtMS4xIDAtMiAuOS0yIDJ2MTFjMCAxLjEuOSAyIDIgMiAwIC41NS40NSAxIDEgMXMxLS40NSAxLTFoNmMwIC41NS40NSAxIDEgMXMxLS40NSAxLTFjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptLTYuNS0yLjVoM1Y2aC0zVjMuNXpNMTcgMTlIN1Y4aDEwdjExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWFsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNSAxMWMxLjkzIDAgMy41IDEuNTcgMy41IDMuNVMxMS40MyAxOCA5LjUgMTggNiAxNi40MyA2IDE0LjUgNy41NyAxMSA5LjUgMTF6bTAtMkM2LjQ2IDkgNCAxMS40NiA0IDE0LjVTNi40NiAyMCA5LjUgMjBzNS41LTIuNDYgNS41LTUuNWMwLTEuMTYtLjM2LTIuMjMtLjk3LTMuMTJMMTggNy40MlYxMGgyVjRoLTZ2MmgyLjU4bC0zLjk3IDMuOTdDMTEuNzMgOS4zNiAxMC42NiA5IDkuNSA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWFuMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDdoLTRjLTEuMSAwLTIgLjktMiAydjZoMi41djdoM3YtN0gxNlY5YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiNFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWFuMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDdoLTRjLTEuMSAwLTIgLjktMiAydjZoMnY3aDR2LTdoMlY5YzAtMS4xLS45LTItMi0yek0xMiAxLjc1MSAxNC4yNDggNCAxMiA2LjI0OCA5Ljc1IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNYW40IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNzUgN2gtMy41QzkuMDQgNyA4LjExIDguMDcgOC4yNyA5LjI2TDEwIDIyaDRsMS43My0xMi43NEMxNS44OSA4LjA3IDE0Ljk2IDcgMTMuNzUgN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjRcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1hbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDdoLTRjLTEuMSAwLTIgLjktMiAydjZoMnY3aDR2LTdoMlY5YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiNFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWFza3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS41IDZjLTEuMzEgMC0yLjM3IDEuMDEtMi40OCAyLjMtMS44OC0uNS0yLjg0LTEuOC01LjAyLTEuOC0yLjE5IDAtMy4xNCAxLjMtNS4wMiAxLjhDNi44NyA3LjAyIDUuODEgNiA0LjUgNkEyLjUgMi41IDAgMCAwIDIgOC41VjljMCA2IDMuNiA3LjgxIDYuNTIgNy45OEM5LjUzIDE3LjYyIDEwLjcyIDE4IDEyIDE4czIuNDctLjM4IDMuNDgtMS4wMkMxOC40IDE2LjgxIDIyIDE1IDIyIDl2LS41QTIuNSAyLjUgMCAwIDAgMTkuNSA2em0tMTYgM3YtLjVjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjNjMCAxLjI4LjM4IDIuNDcgMS4wMSAzLjQ4QzQuOTkgMTQuMjcgMy41IDEyLjY1IDMuNSA5ek03IDExLjVWOS44NWMxLjEyLS4yMyAxLjk1LS42OSAyLjY2LTEuMDhDMTAuNDggOC4zMyAxMS4wNyA4IDEyIDhjLjkzIDAgMS41Mi4zMyAyLjM0Ljc4LjcxLjM5IDEuNTQuODQgMi42NiAxLjA4djEuNjVjMCAyLjc2LTIuMjQgNS01IDVzLTUtMi4yNS01LTUuMDF6TTIwLjUgOWMwIDMuNjUtMS40OSA1LjI3LTMuMDEgNS45OC42NC0xLjAxIDEuMDEtMi4yIDEuMDEtMy40OHYtM2MwLS41NS40NS0xIDEtMXMxIC40NSAxIDFWOXptLTkuODEgMS40OGMtLjQ0LjI2LS45Ni41Ni0xLjY5Ljc2VjEwLjJjLjQ4LS4xNy44NC0uMzggMS4xOC0uNThDMTAuNzIgOS4zIDExLjIzIDkgMTIgOXMxLjI3LjMgMS44LjYyYy4zNC4yLjcxLjQyIDEuMi41OXYxLjA0Yy0uNzUtLjIxLTEuMjYtLjUxLTEuNzEtLjc4LS40Ni0uMjctLjgtLjQ3LTEuMjktLjQ3cy0uODQuMi0xLjMxLjQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWlsaXRhcnlUZWNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTAuNDNWMkg3djguNDNjMCAuMzUuMTguNjguNDkuODZsNC4xOCAyLjUxLS45OSAyLjM0LTMuNDEuMjkgMi41OSAyLjI0TDkuMDcgMjIgMTIgMjAuMjMgMTQuOTMgMjJsLS43OC0zLjMzIDIuNTktMi4yNC0zLjQxLS4yOS0uOTktMi4zNCA0LjE4LTIuNTFjLjMtLjE4LjQ4LS41LjQ4LS44NnptLTYgLjY0LTItMS4yVjRoMnY3LjA3em00LTEuMi0yIDEuMlY0aDJ2NS44N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vb2RCYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHptMy41LTljLjgzIDAgMS41LS42NyAxLjUtMS41UzE2LjMzIDggMTUuNSA4IDE0IDguNjcgMTQgOS41cy42NyAxLjUgMS41IDEuNXptLTcgMGMuODMgMCAxLjUtLjY3IDEuNS0xLjVTOS4zMyA4IDguNSA4IDcgOC42NyA3IDkuNSA3LjY3IDExIDguNSAxMXptMy41IDIuNWMtMi4zMyAwLTQuMzEgMS40Ni01LjExIDMuNWgxMC4yMmMtLjgtMi4wNC0yLjc4LTMuNS01LjExLTMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vb2QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHptMy41LTljLjgzIDAgMS41LS42NyAxLjUtMS41UzE2LjMzIDggMTUuNSA4IDE0IDguNjcgMTQgOS41cy42NyAxLjUgMS41IDEuNXptLTcgMGMuODMgMCAxLjUtLjY3IDEuNS0xLjVTOS4zMyA4IDguNSA4IDcgOC42NyA3IDkuNSA3LjY3IDExIDguNSAxMXptMy41IDYuNWMyLjMzIDAgNC4zMS0xLjQ2IDUuMTEtMy41SDYuODljLjggMi4wNCAyLjc4IDMuNSA1LjExIDMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5pZ2h0c1N0YXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS43OCAxNy41MWMtMi40NyAwLTYuNTctMS4zMy04LjY4LTUuNDMtMi4zMy00LjUxLS41LTguNDguNTMtMTAuMDdDNi4yNyAyLjIgMS45OCA2LjU5IDEuOTggMTJjMCAuMTQuMDIuMjguMDIuNDIuNjEtLjI2IDEuMjgtLjQyIDEuOTgtLjQyIDAtMy4wOSAxLjczLTUuNzcgNC4zLTcuMS0uNSAyLjE5LS41NCA1LjA0IDEuMDQgOC4xIDEuNTcgMy4wNCA0LjE4IDQuOTUgNi44IDUuODZhOCA4IDAgMCAxLTUuNjEgMS4wMWMtLjM3LjctLjk0IDEuMjctMS42NCAxLjY0Ljk4LjMyIDIuMDMuNSAzLjExLjUgMy41IDAgNi41OC0xLjggOC4zNy00LjUyLS4xNy4wMS0uMzcuMDItLjU3LjAyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE2aC0uMThDNi40IDE0Ljg0IDUuMyAxNCA0IDE0Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzaDNjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm9BZHVsdENvbnRlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyek00IDEyYzAtMS44NS42My0zLjU0IDEuNjktNC45TDcuNTkgOWgyLjgzTDcuMSA1LjY5QTcuOTI0IDcuOTI0IDAgMCAxIDEyIDRjNC40MSAwIDggMy41OSA4IDggMCAxLjg1LS42MyAzLjU0LTEuNjkgNC45bC0xLjktMS45aC0yLjgzbDMuMzEgMy4zMUE3Ljg3NCA3Ljg3NCAwIDAgMSAxMiAyMGMtNC40MSAwLTgtMy41OS04LTh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0LjI1IDE0LTEuNS0yIDEuNS0yaC0xLjVMMTIgMTFsLS43NS0xaC0xLjVsMS41IDItMS41IDJoMS41bC43NS0xIC43NSAxek04IDEwbC0uNzUgMS0uNzUtMUg1bDEuNSAyTDUgMTRoMS41bC43NS0xTDggMTRoMS41TDggMTJsMS41LTJ6TTE2IDE0bC43NS0xIC43NSAxSDE5bC0xLjUtMiAxLjUtMmgtMS41bC0uNzUgMS0uNzUtMWgtMS41bDEuNSAyLTEuNSAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm9MdWdnYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYgMTMuMTctMS41LTEuNVY5SDE2djQuMTd6bTMuNzggOS40NC0xLjg1LTEuODVjLS4yOC4xNS0uNTkuMjQtLjkzLjI0IDAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xSDljMCAuNTUtLjQ1IDEtMSAxcy0xLS40NS0xLTFjLTEuMSAwLTItLjktMi0yVjhjMC0uMDUuMDItLjEuMDItLjE1TDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOCAxOC4zOC0xLjQgMS40MnpNMTYuMTcgMTlsLTMuNDItMy40MlYxOGgtMS41di0zLjkyTDkuNSAxMi4zM1YxOEg4di03LjE3bC0xLTFWMTloOS4xN3pNMTIuNzUgOWgtLjkybC45Mi45MlY5ek0xOSA4djguMTdsLTItMlY4aC02LjE3bC0uOTktLjk5TDkgNi4xN1YzYzAtLjU1LjQ1LTEgMS0xaDRjLjU1IDAgMSAuNDUgMSAxdjNoMmMxLjEgMCAyIC45IDIgMnptLTguNS0yaDNWMy41aC0zVjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb3JkaWNXYWxraW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMjNoLTEuNXYtOUgxOXY5ek03LjUzIDE0SDZsLTIgOWgxLjUzbDItOXptNS45Ny04LjVjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyek05LjggOC45IDcgMjNoMi4xbDEuOC04IDIuMSAydjZoMnYtNy41bC0yLjEtMiAuNi0zQzE0LjggMTIgMTYuOCAxMyAxOSAxM3YtMmMtMS45IDAtMy41LTEtNC4zLTIuNGwtMS0xLjZhMi4xNDUgMi4xNDUgMCAwIDAtMi42NS0uODRMNiA4LjNWMTNoMlY5LjZsMS44LS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm90aWZpY2F0aW9uQWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTR2M0g4di03YzAtMi4yMSAxLjc5LTQgNC00IC44NSAwIDEuNjQuMjYgMi4yOC43MmwxLjQzLTEuNDNBNS44NyA1Ljg3IDAgMCAwIDEzLjUgNC4ydi0uN2MwLS44My0uNjctMS41LTEuNS0xLjVzLTEuNS42Ny0xLjUgMS41di43QzcuOTEgNC44NiA2IDcuMjEgNiAxMHY3SDR2MmgxNnYtMmgtMnYtM2gtMnptLTQgOGMxLjEgMCAyLS45IDItMmgtNGMwIDEuMS45IDIgMiAyek0yNCA4aC0zVjVoLTJ2M2gtM3YyaDN2M2gydi0zaDNWOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vdGlmaWNhdGlvbnNBY3RpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIyYzEuMSAwIDItLjkgMi0yaC00YzAgMS4xLjkgMiAyIDJ6bTYtNnYtNWMwLTMuMDctMS42My01LjY0LTQuNS02LjMyVjRjMC0uODMtLjY3LTEuNS0xLjUtMS41cy0xLjUuNjctMS41IDEuNXYuNjhDNy42NCA1LjM2IDYgNy45MiA2IDExdjVsLTIgMnYxaDE2di0xbC0yLTJ6bS0yIDFIOHYtNmMwLTIuNDggMS41MS00LjUgNC00LjVzNCAyLjAyIDQgNC41djZ6TTcuNTggNC4wOCA2LjE1IDIuNjVDMy43NSA0LjQ4IDIuMTcgNy4zIDIuMDMgMTAuNWgyYTguNDQ1IDguNDQ1IDAgMCAxIDMuNTUtNi40MnptMTIuMzkgNi40MmgyYy0uMTUtMy4yLTEuNzMtNi4wMi00LjEyLTcuODVsLTEuNDIgMS40M2E4LjQ5NSA4LjQ5NSAwIDAgMSAzLjU0IDYuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb3RpZmljYXRpb25zTm9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjJjMS4xIDAgMi0uOSAyLTJoLTRjMCAxLjEuOSAyIDIgMnptNi02di01YzAtMy4wNy0xLjYzLTUuNjQtNC41LTYuMzJWNGMwLS44My0uNjctMS41LTEuNS0xLjVzLTEuNS42Ny0xLjUgMS41di42OEM3LjY0IDUuMzYgNiA3LjkyIDYgMTF2NWwtMiAydjFoMTZ2LTFsLTItMnptLTIgMUg4di02YzAtMi40OCAxLjUxLTQuNSA0LTQuNXM0IDIuMDIgNCA0LjV2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vdGlmaWNhdGlvbnNPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIyYzEuMSAwIDItLjkgMi0yaC00YzAgMS4xLjkgMiAyIDJ6bTAtMTUuNWMyLjQ5IDAgNCAyLjAyIDQgNC41di4xbDIgMlYxMWMwLTMuMDctMS42My01LjY0LTQuNS02LjMyVjRjMC0uODMtLjY3LTEuNS0xLjUtMS41cy0xLjUuNjctMS41IDEuNXYuNjhjLS4yNC4wNi0uNDcuMTUtLjY5LjIzbDEuNjQgMS42NGMuMTgtLjAyLjM2LS4wNS41NS0uMDV6TTUuNDEgMy4zNSA0IDQuNzZsMi44MSAyLjgxQzYuMjkgOC41NyA2IDkuNzQgNiAxMXY1bC0yIDJ2MWgxNC4yNGwxLjc0IDEuNzQgMS40MS0xLjQxTDUuNDEgMy4zNXpNMTYgMTdIOHYtNmMwLS42OC4xMi0xLjMyLjM0LTEuOUwxNiAxNi43NlYxN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vdGlmaWNhdGlvbnNQYXVzZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNSA5LjhoMi44bC0yLjggMy40VjE1aDV2LTEuOGgtMi44bDIuOC0zLjRWOGgtNXpNMTggMTZ2LTVjMC0zLjA3LTEuNjMtNS42NC00LjUtNi4zMlY0YzAtLjgzLS42Ny0xLjUtMS41LTEuNXMtMS41LjY3LTEuNSAxLjV2LjY4QzcuNjQgNS4zNiA2IDcuOTIgNiAxMXY1bC0yIDJ2MWgxNnYtMWwtMi0yem0tMiAxSDh2LTZjMC0yLjQ4IDEuNTEtNC41IDQtNC41czQgMi4wMiA0IDQuNXY2em0tNCA1YzEuMSAwIDItLjkgMi0yaC00YzAgMS4xLjkgMiAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb3RpZmljYXRpb25zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyMmMxLjEgMCAyLS45IDItMmgtNGMwIDEuMS45IDIgMiAyem02LTZ2LTVjMC0zLjA3LTEuNjMtNS42NC00LjUtNi4zMlY0YzAtLjgzLS42Ny0xLjUtMS41LTEuNXMtMS41LjY3LTEuNSAxLjV2LjY4QzcuNjQgNS4zNiA2IDcuOTIgNiAxMXY1bC0yIDJ2MWgxNnYtMWwtMi0yem0tMiAxSDh2LTZjMC0yLjQ4IDEuNTEtNC41IDQtNC41czQgMi4wMiA0IDQuNXY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lT3V0ZG9vckdyaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMjJjMS42NiAwIDMtMS4zNCAzLTNzLTEuMzQtMy0zLTNjLTEuMyAwLTIuNC44NC0yLjgyIDJIOS4xNGwxLjk5LTMuMDZhNi4zNiA2LjM2IDAgMCAwIDEuNzQgMGwxLjAyIDEuNTdjLjQyLS41My45Ni0uOTUgMS42LTEuMjFsLS42LS45M0E2Ljk5MiA2Ljk5MiAwIDAgMCAxOSA4SDVjMCAyLjg0IDEuNjkgNS4yNyA0LjEyIDYuMzdsLTMuOTUgNi4wOGExIDEgMCAwIDAgLjI5IDEuMzggMSAxIDAgMCAwIDEuMzgtLjI5bDEtMS41NWg2LjM0QzE0LjYgMjEuMTYgMTUuNyAyMiAxNyAyMnptMC00Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bS05LjU4LThoOS4xNmMtLjc3IDEuNzYtMi41NCAzLTQuNTggM3MtMy44MS0xLjI0LTQuNTgtM3pNOS40MSA3aDFjLjE1LTEuMTUuMjMtMS42NC0uODktMi45Ni0uNDItLjUtLjY4LS43Ny0uNDYtMi4wNGgtLjk5Yy0uMjEgMS4xMS4wMyAyLjA1Ljg5IDIuOTYuMjIuMjQuNzkuNjcuNDUgMi4wNHpNMTEuODkgN2gxYy4xNS0xLjE1LjIzLTEuNjQtLjg5LTIuOTYtLjQyLS41LS42OC0uNzgtLjQ2LTIuMDRoLS45OWMtLjIxIDEuMTEuMDMgMi4wNS44OSAyLjk2LjIzLjI0LjguNjcuNDUgMi4wNHpNMTQuNDEgN2gxYy4xNS0xLjE1LjIzLTEuNjQtLjg5LTIuOTYtLjQyLS41LS42OC0uNzctLjQ2LTIuMDRoLS45OWMtLjIxIDEuMTEuMDMgMi4wNS44OSAyLjk2LjIyLjI0Ljc5LjY3LjQ1IDIuMDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQYWdlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS02IDJoNnY2aC0zbDEtNC00IDFWNXpNNSA1aDZ2M0w3IDdsMSA0SDVWNXptNiAxNEg1di02aDNsLTEgNCA0LTF2M3ptOCAwaC02di0zbDQgMS0xLTRoM3Y2em0tNC4zNy00LjM3TDEyIDEzLjcybC0yLjYzLjkxLjkxLTIuNjMtLjkxLTIuNjMgMi42My45MSAyLjYzLS45MS0uOTEgMi42My45MSAyLjYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGFyYWdsaWRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxN2MtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6bTMuNDguOTRDMTQuNjggMTguNTQgMTQgMTkgMTIgMTlzLTIuNjgtLjQ2LTMuNDgtMS4wNkM4LjA0IDE3LjU1IDcgMTYuNzYgNyAxNEg1YzAgMi43LjkzIDQuNDEgMi4zIDUuNS41LjQgMS4xLjcgMS43LjlWMjRoNnYtMy42Yy42LS4yIDEuMi0uNSAxLjctLjkgMS4zNy0xLjA5IDIuMy0yLjggMi4zLTUuNWgtMmMwIDIuNzYtMS4wNCAzLjU1LTEuNTIgMy45NHpNMjMgNC4yNXYzLjQ5YzAgLjgtLjg4IDEuMjYtMS41Ni44My0uMTQtLjA5LS4yOC0uMTgtLjQ0LS4yNkwxOSAxM2gtMmwtMS41LTYuMjhhMjcuODUyIDI3Ljg1MiAwIDAgMC03IDBMNyAxM0g1TDMgOC4zMWMtLjE2LjA4LS4zLjE3LS40NC4yNkMxLjg4IDkgMSA4LjU1IDEgNy43NFY0LjI1QzEgMS45IDUuOTIgMCAxMiAwczExIDEuOSAxMSA0LjI1ek02LjkgNi45OGMtLjkzLjE5LTEuNzguNDMtMi41My43MWwxLjUxIDMuNTVMNi45IDYuOTh6bTEyLjczLjcxYy0uNzUtLjI4LTEuNi0uNTItMi41My0uNzFsMS4wMiA0LjI1IDEuNTEtMy41NHpNMjEgNC4zMUMyMC42NSAzLjYzIDE3LjU3IDIgMTIgMlMzLjM1IDMuNjMgMyA0LjMxdjEuNzdDNS4zNCA1LjA3IDguNTYgNC41IDEyIDQuNXM2LjY2LjU3IDkgMS41OFY0LjMxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGFydHlNb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0aC0zLjE3TDE1IDJIOUw3LjE3IDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE0SDRWNmg0LjA1bC41OS0uNjVMOS44OCA0aDQuMjRsMS4yNCAxLjM1LjU5LjY1SDIwdjEyek05IDEyYzAtMS42NiAxLjM0LTMgMy0zaDMuOThjLS45Mi0xLjIxLTIuMzUtMi0zLjk4LTJhNS4wMDIgNS4wMDIgMCAwIDAtNC45IDZoMi4wOGMtLjExLS4zMS0uMTgtLjY1LS4xOC0xem02IDBjMCAxLjY2LTEuMzQgMy0zIDNIOC4wMmMuOTIgMS4yMSAyLjM1IDIgMy45OCAyYTUuMDAyIDUuMDAyIDAgMCAwIDQuOS02aC0yLjA4Yy4xMS4zMS4xOC42NS4xOCAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGVvcGxlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNjcgMTMuMTNDMTguMDQgMTQuMDYgMTkgMTUuMzIgMTkgMTd2M2g0di0zYzAtMi4xOC0zLjU3LTMuNDctNi4zMy0zLjg3ek0xNSAxMmMyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNGMtLjQ3IDAtLjkxLjEtMS4zMy4yNGE1Ljk4IDUuOTggMCAwIDEgMCA3LjUyYy40Mi4xNC44Ni4yNCAxLjMzLjI0ek05IDEyYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptMC02YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnpNOSAxM2MtMi42NyAwLTggMS4zNC04IDR2M2gxNnYtM2MwLTIuNjYtNS4zMy00LTgtNHptNiA1SDN2LS45OUMzLjIgMTYuMjkgNi4zIDE1IDkgMTVzNS44IDEuMjkgNiAydjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZW9wbGVPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDEzLjc1Yy0yLjM0IDAtNyAxLjE3LTcgMy41VjE5aDE0di0xLjc1YzAtMi4zMy00LjY2LTMuNS03LTMuNXpNNC4zNCAxN2MuODQtLjU4IDIuODctMS4yNSA0LjY2LTEuMjVzMy44Mi42NyA0LjY2IDEuMjVINC4zNHpNOSAxMmMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVMxMC45MyA1IDkgNSA1LjUgNi41NyA1LjUgOC41IDcuMDcgMTIgOSAxMnptMC01Yy44MyAwIDEuNS42NyAxLjUgMS41UzkuODMgMTAgOSAxMHMtMS41LS42Ny0xLjUtMS41UzguMTcgNyA5IDd6bTcuMDQgNi44MWMxLjE2Ljg0IDEuOTYgMS45NiAxLjk2IDMuNDRWMTloNHYtMS43NWMwLTIuMDItMy41LTMuMTctNS45Ni0zLjQ0ek0xNSAxMmMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVMxNi45MyA1IDE1IDVjLS41NCAwLTEuMDQuMTMtMS41LjM1LjYzLjg5IDEgMS45OCAxIDMuMTVzLS4zNyAyLjI2LTEgMy4xNWMuNDYuMjIuOTYuMzUgMS41LjM1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGVvcGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDEzLjc1Yy0yLjM0IDAtNyAxLjE3LTcgMy41VjE5aDE0di0xLjc1YzAtMi4zMy00LjY2LTMuNS03LTMuNXpNNC4zNCAxN2MuODQtLjU4IDIuODctMS4yNSA0LjY2LTEuMjVzMy44Mi42NyA0LjY2IDEuMjVINC4zNHpNOSAxMmMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVMxMC45MyA1IDkgNSA1LjUgNi41NyA1LjUgOC41IDcuMDcgMTIgOSAxMnptMC01Yy44MyAwIDEuNS42NyAxLjUgMS41UzkuODMgMTAgOSAxMHMtMS41LS42Ny0xLjUtMS41UzguMTcgNyA5IDd6bTcuMDQgNi44MWMxLjE2Ljg0IDEuOTYgMS45NiAxLjk2IDMuNDRWMTloNHYtMS43NWMwLTIuMDItMy41LTMuMTctNS45Ni0zLjQ0ek0xNSAxMmMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVMxNi45MyA1IDE1IDVjLS41NCAwLTEuMDQuMTMtMS41LjM1LjYzLjg5IDEgMS45OCAxIDMuMTVzLS4zNyAyLjI2LTEgMy4xNWMuNDYuMjIuOTYuMzUgMS41LjM1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGVyc29uMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjM5IDE0LjU2QzE2LjcxIDEzLjcgMTQuNTMgMTMgMTIgMTNzLTQuNzEuNy02LjM5IDEuNTZBMi45NyAyLjk3IDAgMCAwIDQgMTcuMjJWMjBoMTZ2LTIuNzhjMC0xLjEyLS42MS0yLjE1LTEuNjEtMi42NnpNMTggMThINnYtLjc4YzAtLjM4LjItLjcyLjUyLS44OEM3LjcxIDE1LjczIDkuNjMgMTUgMTIgMTVjMi4zNyAwIDQuMjkuNzMgNS40OCAxLjM0LjMyLjE2LjUyLjUuNTIuODhWMTh6TTkuNzggMTJoNC40NGMxLjIxIDAgMi4xNC0xLjA2IDEuOTgtMi4yNmwtLjMyLTIuNDVDMTUuNTcgNS4zOSAxMy45MiA0IDEyIDRTOC40MyA1LjM5IDguMTIgNy4yOUw3LjggOS43NGMtLjE2IDEuMi43NyAyLjI2IDEuOTggMi4yNnptLjMyLTQuNDFDMTAuMjYgNi42NyAxMS4wNiA2IDEyIDZzMS43NC42NyAxLjkgMS41OWwuMzIgMi40MUg5Ljc4bC4zMi0yLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGVyc29uMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjM5IDE0LjU2QzE2LjcxIDEzLjcgMTQuNTMgMTMgMTIgMTNzLTQuNzEuNy02LjM5IDEuNTZBMi45NyAyLjk3IDAgMCAwIDQgMTcuMjJWMjBoMTZ2LTIuNzhjMC0xLjEyLS42MS0yLjE1LTEuNjEtMi42NnpNMTggMThINnYtLjc4YzAtLjM4LjItLjcyLjUyLS44OEM3LjcxIDE1LjczIDkuNjMgMTUgMTIgMTVjMi4zNyAwIDQuMjkuNzMgNS40OCAxLjM0LjMyLjE2LjUyLjUuNTIuODhWMTh6TTEwIDEyaDRjMS42NiAwIDMtMS4zNCAzLTMgMC0uNzMtLjI3LTEuNC0uNzEtMS45Mi4xMy0uMzMuMjEtLjcuMjEtMS4wOGEzIDMgMCAwIDAtMS44Ni0yLjc3QzE0IDIuNDggMTMuMDYgMiAxMiAycy0yIC40OC0yLjY0IDEuMjNBMyAzIDAgMCAwIDcuNSA2YzAgLjM4LjA4Ljc1LjIxIDEuMDhDNy4yNyA3LjYgNyA4LjI3IDcgOWMwIDEuNjYgMS4zNCAzIDMgM3ptLS43Ni0zLjYzYy44Ny0xLjA0LjI2LTIgLjI2LTIuMzcgMC0uNDEuMjQtLjc3LjYyLS45Mi4yOS0uMTIuNTUtLjMxLjc1LS41NC4xNy0uMjEuNTUtLjU0IDEuMTMtLjU0cy45Ni4zMyAxLjEzLjUzYy4yLjI0LjQ2LjQyLjc1LjU0YTEgMSAwIDAgMSAuNjIuOTNjMCAuMzctLjYxIDEuMzMuMjYgMi4zNy41OC42OS4wNCAxLjYzLS43NiAxLjYzaC00Yy0uOCAwLTEuMzQtLjk0LS43Ni0xLjYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGVyc29uNCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjM5IDE0LjU2QzE2LjcxIDEzLjcgMTQuNTMgMTMgMTIgMTNzLTQuNzEuNy02LjM5IDEuNTZBMi45NyAyLjk3IDAgMCAwIDQgMTcuMjJWMjBoMTZ2LTIuNzhjMC0xLjEyLS42MS0yLjE1LTEuNjEtMi42NnpNMTggMThINnYtLjc4YzAtLjM4LjItLjcyLjUyLS44OEM3LjcxIDE1LjczIDkuNjMgMTUgMTIgMTVjMi4zNyAwIDQuMjkuNzMgNS40OCAxLjM0LjMyLjE2LjUyLjUuNTIuODhWMTh6TTEyIDEyYzIuMjEgMCA0LTEuNzkgNC00VjQuNWMwLS44My0uNjctMS41LTEuNS0xLjUtLjUyIDAtLjk4LjI3LTEuMjUuNjctLjI3LS40LS43My0uNjctMS4yNS0uNjdzLS45OC4yNy0xLjI1LjY3Yy0uMjctLjQtLjczLS42Ny0xLjI1LS42N0M4LjY3IDMgOCAzLjY3IDggNC41VjhjMCAyLjIxIDEuNzkgNCA0IDR6bS0yLTYuNWg0VjhjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yVjUuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlcnNvbkFkZEFsdDEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA4YzAtMi4yMS0xLjc5LTQtNC00UzUgNS43OSA1IDhzMS43OSA0IDQgNCA0LTEuNzkgNC00em0tMiAwYzAgMS4xLS45IDItMiAycy0yLS45LTItMiAuOS0yIDItMiAyIC45IDIgMnpNMSAxOHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00cy04IDEuMzQtOCA0em0yIDBjLjItLjcxIDMuMy0yIDYtMiAyLjY5IDAgNS43OCAxLjI4IDYgMkgzem0xNy0zdi0zaDN2LTJoLTNWN2gtMnYzaC0zdjJoM3YzaDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXJzb25BZGRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA5VjZoLTJ2M2gtM3YyaDN2M2gydi0zaDNWOWgtM3pNOSAxMmMyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNC00IDEuNzktNCA0IDEuNzkgNCA0IDR6bTAtNmMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6bTYuMzkgOC41NkMxMy43MSAxMy43IDExLjUzIDEzIDkgMTNzLTQuNzEuNy02LjM5IDEuNTZBMi45NyAyLjk3IDAgMCAwIDEgMTcuMjJWMjBoMTZ2LTIuNzhjMC0xLjEyLS42MS0yLjE1LTEuNjEtMi42NnpNMTUgMThIM3YtLjc4YzAtLjM4LjItLjcyLjUyLS44OEM0LjcxIDE1LjczIDYuNjMgMTUgOSAxNWMyLjM3IDAgNC4yOS43MyA1LjQ4IDEuMzQuMzIuMTYuNTIuNS41Mi44OFYxOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlcnNvbkFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTJjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTQtNCAxLjc5LTQgNCAxLjc5IDQgNCA0em0wLTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0yem0wIDhjLTIuNjcgMC04IDEuMzQtOCA0djJoMTZ2LTJjMC0yLjY2LTUuMzMtNC04LTR6bS02IDRjLjIyLS43MiAzLjMxLTIgNi0yIDIuNyAwIDUuOCAxLjI5IDYgMkg5em0tMy0zdi0zaDN2LTJINlY3SDR2M0gxdjJoM3YzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGVyc29uT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAgMTcuMTctMy4zNy0zLjM4Yy42NC4yMiAxLjIzLjQ4IDEuNzcuNzYuOTcuNTEgMS41OCAxLjUyIDEuNiAyLjYyem0xLjE5IDQuMDItMS40MSAxLjQxLTIuNjEtMi42SDR2LTIuNzhjMC0xLjEyLjYxLTIuMTUgMS42MS0yLjY2IDEuMjktLjY2IDIuODctMS4yMiA0LjY3LTEuNDVMMS4zOSA0LjIyIDIuOCAyLjgxbDE4LjM5IDE4LjM4ek0xNS4xNyAxOGwtMy0zSDEyYy0yLjM3IDAtNC4yOS43My01LjQ4IDEuMzQtLjMyLjE2LS41Mi41LS41Mi44OFYxOGg5LjE3ek0xMiA2YzEuMSAwIDIgLjkgMiAyIDAgLjg2LS41NCAxLjU5LTEuMyAxLjg3bDEuNDggMS40OGEzLjk5OSAzLjk5OSAwIDEgMC01LjUzLTUuNTNsMS40OCAxLjQ4QTEuOTkgMS45OSAwIDAgMSAxMiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGVyc29uT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNS45YTIuMSAyLjEgMCAxIDEgMCA0LjIgMi4xIDIuMSAwIDAgMSAwLTQuMm0wIDljMi45NyAwIDYuMSAxLjQ2IDYuMSAyLjF2MS4xSDUuOVYxN2MwLS42NCAzLjEzLTIuMSA2LjEtMi4xTTEyIDRDOS43OSA0IDggNS43OSA4IDhzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTAgOWMtMi42NyAwLTggMS4zNC04IDR2M2gxNnYtM2MwLTIuNjYtNS4zMy00LTgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlcnNvblJlbW92ZUFsdDEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA4YzAtMi4yMS0xLjc5LTQtNC00UzYgNS43OSA2IDhzMS43OSA0IDQgNCA0LTEuNzkgNC00em0tMiAwYzAgMS4xLS45IDItMiAycy0yLS45LTItMiAuOS0yIDItMiAyIC45IDIgMnpNMiAxOHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00cy04IDEuMzQtOCA0em0yIDBjLjItLjcxIDMuMy0yIDYtMiAyLjY5IDAgNS43NyAxLjI4IDYgMkg0ek0xNyAxMGg2djJoLTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXJzb25SZW1vdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA4YzAtMi4yMS0xLjc5LTQtNC00UzYgNS43OSA2IDhzMS43OSA0IDQgNCA0LTEuNzkgNC00em0tMiAwYzAgMS4xLS45IDItMiAycy0yLS45LTItMiAuOS0yIDItMiAyIC45IDIgMnpNMiAxOHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00cy04IDEuMzQtOCA0em0yIDBjLjItLjcxIDMuMy0yIDYtMiAyLjY5IDAgNS43NyAxLjI4IDYgMkg0ek0xNyAxMGg2djJoLTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXJzb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0ybTAgMTBjMi43IDAgNS44IDEuMjkgNiAySDZjLjIzLS43MiAzLjMxLTIgNi0ybTAtMTJDOS43OSA0IDggNS43OSA4IDhzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTAgMTBjLTIuNjcgMC04IDEuMzQtOCA0djJoMTZ2LTJjMC0yLjY2LTUuMzMtNC04LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXJzb25hbEluanVyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEwYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptMC02YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnptNi4zOSA4LjU2QzE2LjcxIDExLjcgMTQuNTMgMTEgMTIgMTFzLTQuNzEuNy02LjM5IDEuNTZBMi45NyAyLjk3IDAgMCAwIDQgMTUuMjJWMjJoMnYtNi43OGMwLS4zOC4yLS43Mi41Mi0uODhDNy43MSAxMy43MyA5LjYzIDEzIDEyIDEzYy43NiAwIDEuNDcuMDcgMi4xMy4ybC0xLjU1IDMuM0g5Ljc1QzguMjMgMTYuNSA3IDE3LjczIDcgMTkuMjVTOC4yMyAyMiA5Ljc1IDIySDE4YzEuMSAwIDItLjkgMi0ydi00Ljc4YzAtMS4xMi0uNjEtMi4xNS0xLjYxLTIuNjZ6TTEwLjk0IDIwSDkuNzVjLS40MSAwLS43NS0uMzQtLjc1LS43NXMuMzQtLjc1Ljc1LS43NWgxLjg5bC0uNyAxLjV6TTE4IDIwaC00Ljg1bDIuOTQtNi4yN2MuNTQuMiAxLjAxLjQxIDEuNC42MS4zMS4xNi41MS41LjUxLjg4VjIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGlhbm9PZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS4xOSAyMS4xOSAyLjgxIDIuODEgMS4zOSA0LjIyIDMgNS44M1YxOWMwIDEuMS45IDIgMiAyaDEzLjE3bDEuNjEgMS42MSAxLjQxLTEuNDJ6TTguMjUgMTlINVY3LjgzbDIgMnYzLjY3YzAgLjU1LjQ1IDEgMSAxaC4yNVYxOXptMS41IDB2LTQuNUgxMGMuNDYgMCAuODItLjMxLjk0LS43M2wzLjMxIDMuMzFWMTloLTQuNXpNMTEgOC4xNyA1LjgzIDNIMTljMS4xIDAgMiAuOSAyIDJ2MTMuMTdsLTItMlY1aC0ydjguNWMwIC4xOS0uMDcuMzYtLjE2LjUxTDEzIDEwLjE3VjVoLTJ2My4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBpYW5vIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS01IDExLjVoLjI1VjE5aC00LjV2LTQuNUgxMGMuNTUgMCAxLS40NSAxLTFWNWgydjguNWMwIC41NS40NSAxIDEgMXpNNSA1aDJ2OC41YzAgLjU1LjQ1IDEgMSAxaC4yNVYxOUg1VjV6bTE0IDE0aC0zLjI1di00LjVIMTZjLjU1IDAgMS0uNDUgMS0xVjVoMnYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBpeCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1LjQ1IDE2LjUyLTMuMDEtMy4wMWMtLjExLS4xMS0uMjQtLjEzLS4zMS0uMTNzLS4yLjAyLS4zMS4xM0w4LjggMTYuNTNjLS4zNC4zNC0uODcuODktMi42NC44OWwzLjcxIDMuN2EzIDMgMCAwIDAgNC4yNCAwbDMuNzItMy43MWMtLjkxIDAtMS42Ny0uMTgtMi4zOC0uODl6TTguOCA3LjQ3bDMuMDIgMy4wMmMuMDguMDguMi4xMy4zMS4xM3MuMjMtLjA1LjMxLS4xM2wyLjk5LTIuOTljLjcxLS43NCAxLjUyLS45MSAyLjQzLS45MWwtMy43Mi0zLjcxYTMgMyAwIDAgMC00LjI0IDBsLTMuNzEgMy43YzEuNzYgMCAyLjMuNTggMi42MS44OXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuMTEgOS44NS0yLjI1LTIuMjZIMTcuNmMtLjU0IDAtMS4wOC4yMi0xLjQ1LjYxbC0zIDNjLS4yOC4yOC0uNjUuNDItMS4wMi40MmExLjUgMS41IDAgMCAxLTEuMDItLjQyTDguMDkgOC4xN2MtLjM4LS4zOC0uOS0uNi0xLjQ1LS42SDUuMTdsLTIuMjkgMi4zYTMgMyAwIDAgMCAwIDQuMjRsMi4yOSAyLjNoMS40OGMuNTQgMCAxLjA2LS4yMiAxLjQ1LS42bDMuMDItMy4wMmMuMjgtLjI4LjY1LS40MiAxLjAyLS40MnMuNzQuMTQgMS4wMi40MmwzLjAxIDMuMDFjLjM4LjM4LjkuNiAxLjQ1LjZoMS4yNmwyLjI1LTIuMjZhMy4wNDIgMy4wNDIgMCAwIDAtLjAyLTQuMjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQbHVzT25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA4SDh2NEg0djJoNHY0aDJ2LTRoNHYtMmgtNFY4em00LjUtMS45MlY3LjlsMi41LS41VjE4aDJWNWwtNC41IDEuMDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQb2xsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6TTcgMTBoMnY3SDd6bTQtM2gydjEwaC0yem00IDZoMnY0aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUHJlY2lzaW9uTWFudWZhY3R1cmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5LjkzIDguMzUtMy42IDEuNjhMMTQgNy43VjYuM2wyLjMzLTIuMzMgMy42IDEuNjhjLjM4LjE4LjgyLjAxIDEtLjM2LjE4LS4zOC4wMS0uODItLjM2LTFsLTMuOTItMS44M2EuOTkzLjk5MyAwIDAgMC0xLjEzLjJMMTMuNzggNC40QS45NzUuOTc1IDAgMCAwIDEzIDRjLS41NSAwLTEgLjQ1LTEgMXYxSDguODJDOC40IDQuODQgNy4zIDQgNiA0IDQuMzQgNCAzIDUuMzQgMyA3YzAgMS4xLjYgMi4wNSAxLjQ4IDIuNThMNy4wOCAxOEg2Yy0xLjEgMC0yIC45LTIgMnYxaDEzdi0xYzAtMS4xLS45LTItMi0yaC0xLjYyTDguNDEgOC43N2MuMTctLjI0LjMxLS40OS40MS0uNzdIMTJ2MWMwIC41NS40NSAxIDEgMSAuMzIgMCAuNi0uMTYuNzgtLjRsMS43NCAxLjc0Yy4zLjMuNzUuMzggMS4xMy4ybDMuOTItMS44M2MuMzgtLjE4LjU0LS42Mi4zNi0xYS43NTMuNzUzIDAgMCAwLTEtLjM2ek02IDhjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptNS4xMSAxMEg5LjE3bC0yLjQ2LThoLjFsNC4zIDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQc3ljaG9sb2d5QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuOTQgOS4wNkMxOS41IDUuNzMgMTYuNTcgMyAxMyAzIDkuNDcgMyA2LjU3IDUuNjEgNi4wOCA5bC0xLjkzIDMuNDhjLS40MS42Ni4wNyAxLjUyLjg1IDEuNTJoMXYyYzAgMS4xLjkgMiAyIDJoMXYzaDd2LTQuNjhhNy4wMTYgNy4wMTYgMCAwIDAgMy45NC03LjI2em0tNS4wNSA1LjU3LS44OS40MlYxOWgtM3YtM0g4di00SDYuN2wxLjMzLTIuMzNDOC4yMSA3LjA2IDEwLjM1IDUgMTMgNWMyLjc2IDAgNSAyLjI0IDUgNSAwIDIuMDktMS4yOSAzLjg4LTMuMTEgNC42M3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSAxMi41NGMtLjQxIDAtLjc0LjMxLS43NC43MyAwIC40MS4zMy43NC43NC43NC40MiAwIC43My0uMzMuNzMtLjc0YS43MS43MSAwIDAgMC0uNzMtLjczek0xMi41IDdjLTEuMDMgMC0xLjc0LjY3LTIgMS40NWwuOTYuNGMuMTMtLjM5LjQzLS44NiAxLjA1LS44Ni45NSAwIDEuMTMuODkuOCAxLjM2LS4zMi40NS0uODYuNzUtMS4xNCAxLjI2LS4yMy40LS4xOC44Ny0uMTggMS4xNmgxLjA2YzAtLjU1LjA0LS42NS4xMy0uODIuMjMtLjQyLjY1LS42MiAxLjA5LTEuMjcuNC0uNTkuMjUtMS4zOC0uMDEtMS44LS4zMS0uNDktLjktLjg4LTEuNzYtLjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUHN5Y2hvbG9neSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1LjgyIDcuMjItMSAuNGMtLjIxLS4xNi0uNDMtLjI5LS42Ny0uMzlMMTQgNi4xN2MtLjAyLS4xLS4xLS4xNy0uMi0uMTdoLTEuNmMtLjEgMC0uMTguMDctLjE5LjE3bC0uMTUgMS4wNmMtLjI0LjEtLjQ3LjIzLS42Ny4zOWwtMS0uNGMtLjA5LS4wMy0uMiAwLS4yNC4wOWwtLjggMS4zOGEuMi4yIDAgMCAwIC4wNS4yNmwuODUuNjZjLS4wMy4xMi0uMDUuMjYtLjA1LjM5cy4wMS4yNi4wMy4zOWwtLjg0LjY2YS4xOS4xOSAwIDAgMC0uMDUuMjVsLjggMS4zOWMuMDUuMDkuMTUuMTIuMjUuMDlsLjk5LS40Yy4yMS4xNi40My4yOS42OC4zOWwuMTQgMS4wNmMuMDIuMS4xLjE3LjIuMTdoMS42Yy4xIDAgLjE4LS4wNy4yLS4xN2wuMTUtMS4wNmMuMjQtLjEuNDctLjIzLjY3LS4zOWwuOTkuNGMuMDkuMDQuMiAwIC4yNC0uMDlsLjgtMS4zOWMuMDUtLjA5LjAzLS4xOS0uMDUtLjI1bC0uODMtLjY2YTIuNTYxIDIuNTYxIDAgMCAwIDAtLjc4bC44NS0uNjZhLjIuMiAwIDAgMCAuMDUtLjI2bC0uOC0xLjM4Yy0uMDUtLjA5LS4xNi0uMTItLjI1LS4wOXpNMTMgMTEuNDNhMS40MyAxLjQzIDAgMSAxIDAtMi44NiAxLjQzIDEuNDMgMCAwIDEgMCAyLjg2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS45NCA5LjA2Yy0uNDMtMy4yNy0zLjIzLTUuODYtNi41My02LjA1QzEzLjI3IDMgMTMuMTQgMyAxMyAzIDkuNDcgMyA2LjU3IDUuNjEgNi4wOCA5bC0xLjkzIDMuNDhjLS40MS42Ni4wNyAxLjUyLjg1IDEuNTJoMXYyYzAgMS4xLjkgMiAyIDJoMXYzaDd2LTQuNjhhNy4wMTYgNy4wMTYgMCAwIDAgMy45NC03LjI2em0tNS4wNSA1LjU3LS44OS40MlYxOWgtM3YtM0g4di00SDYuN2wxLjMzLTIuMzNDOC4yMSA3LjA2IDEwLjM1IDUgMTMgNWMyLjc2IDAgNSAyLjI0IDUgNSAwIDIuMDktMS4yOSAzLjg4LTMuMTEgNC42M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVB1YmxpY09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDguMTcgNi40OSAzLjY2QTkuOTEgOS45MSAwIDAgMSAxMiAyYzUuNTIgMCAxMCA0LjQ4IDEwIDEwIDAgMi4wNC0uNjEgMy45My0xLjY2IDUuNTFsLTEuNDYtMS40NkE3Ljg0MiA3Ljg0MiAwIDAgMCAyMCAxMmMwLTMuMzUtMi4wNy02LjIyLTUtNy40MVY1YzAgMS4xLS45IDItMiAyaC0ydjEuMTd6bTEwLjE5IDEzLjAyLTEuNDEgMS40MS0yLjI3LTIuMjdBOS44MzkgOS44MzkgMCAwIDEgMTIgMjJDNi40OCAyMiAyIDE3LjUyIDIgMTJjMC0yLjA0LjYxLTMuOTMgMS42Ni01LjUxTDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOSAxOC4zOHpNMTEgMThjLTEuMSAwLTItLjktMi0ydi0xbC00Ljc5LTQuNzlDNC4wOCAxMC43OSA0IDExLjM4IDQgMTJjMCA0LjA4IDMuMDUgNy40NCA3IDcuOTNWMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQdWJsaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTQgMTJjMC0uNjEuMDgtMS4yMS4yMS0xLjc4TDguOTkgMTV2MWMwIDEuMS45IDIgMiAydjEuOTNDNy4wNiAxOS40MyA0IDE2LjA3IDQgMTJ6bTEzLjg5IDUuNGMtLjI2LS44MS0xLTEuNC0xLjktMS40aC0xdi0zYzAtLjU1LS40NS0xLTEtMWgtNnYtMmgyYy41NSAwIDEtLjQ1IDEtMVY3aDJjMS4xIDAgMi0uOSAyLTJ2LS40MUMxNy45MiA1Ljc3IDIwIDguNjUgMjAgMTJjMCAyLjA4LS44MSAzLjk4LTIuMTEgNS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVhbEVzdGF0ZUFnZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNi41VjE0aC0yVjcuNUwxNCA0IDkgNy41VjlIN1Y2LjVsNy01IDcgNXptLTUuNS41aC0xdjFoMVY3em0tMiAwaC0xdjFoMVY3em0yIDJoLTF2MWgxVjl6bS0yIDBoLTF2MWgxVjl6bTUuNSA3aC0yYzAtMS4yLS43NS0yLjI4LTEuODctMi43TDguOTcgMTFIMXYxMWg2di0xLjQ0bDcgMS45NCA4LTIuNXYtMWMwLTEuNjYtMS4zNC0zLTMtM3pNMyAyMHYtN2gydjdIM3ptMTAuOTcuNDFMNyAxOC40OFYxM2gxLjYxbDUuODIgMi4xN2MuMzQuMTMuNTcuNDYuNTcuODMgMCAwLTEuOTktLjA1LTIuMy0uMTVsLTIuMzgtLjc5LS42MyAxLjkgMi4zOC43OWMuNTEuMTcgMS4wNC4yNiAxLjU4LjI2SDE5Yy4zOSAwIC43NC4yMy45LjU2bC01LjkzIDEuODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZWNvbW1lbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTBoLTQuNTlsLjU4LTMuNDF2LS4yYy0uMDEtLjI2LS4xMi0uNTEtLjMtLjdMMTIgNWwtNC42IDVjLS4yNy4yNi0uNDIuNjItLjQgMXY1YzAgMS4xLjkgMiAyIDJoNS41Yy41Ni4wMyAxLjA4LS4yOSAxLjMtLjhsMi4xLTQuOWMuMDgtLjE1LjEyLS4zMy4xLS41VjExYzAtLjU1LS40NS0xLTEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlY3ljbGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNzcgNy4xNSA3LjIgNC43OGwxLjAzLTEuNzFjLjM5LS42NSAxLjMzLS42NSAxLjcyIDBsMS40OCAyLjQ2LTEuMjMgMi4wNi0xIDEuNjItMy40My0yLjA2em0xNS45NSA1LjgyLTEuNi0yLjY2LTMuNDYgMkwxOC44NyAxNkgyMGEyIDIgMCAwIDAgMi0yYzAtLjM2LS4xLS43MS0uMjgtMS4wM3pNMTYgMjFoMS41YTIgMiAwIDAgMCAxLjc5LTEuMTFMMjAuNzQgMTdIMTZ2LTJsLTQgNCA0IDR2LTJ6bS02LTRINS43bC0uODQgMS40MWMtLjMuNS0uMzIgMS4xMi0uMDYgMS42NS4yOC41Ny44Ny45NCAxLjUyLjk0SDEwdi00em0tMy44OC0yLjY1IDEuNzMgMS4wNEw2LjQ4IDkuOSAxIDExLjI3bDEuNyAxLjAyLS40MS42OWMtLjM1LjU5LS4zOCAxLjMxLS4wNyAxLjkybDEuNjMgMy4yNiAyLjI3LTMuODF6bTEwLjktOS4yMS0xLjMtMi4xN0MxNS4zNSAyLjM3IDE0LjcgMiAxNCAyaC0zLjUzbDMuMTIgNS4yLTEuNzIgMS4wMyA1LjQ5IDEuMzcgMS4zNy01LjQ5LTEuNzEgMS4wM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlZHVjZUNhcGFjaXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgNGMwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yem00Ljc4IDMuNThBNi45NSA2Ljk1IDAgMCAwIDE4IDdjLS42NyAwLTEuMzEuMS0xLjkyLjI4LjU4LjU1LjkyIDEuMzIuOTIgMi4xNVYxMGg1di0uNTdjMC0uODEtLjQ4LTEuNTMtMS4yMi0xLjg1ek02IDZjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0xLjkyIDEuMjhDNy4zMSA3LjEgNi42NyA3IDYgN2MtLjk5IDAtMS45My4yMS0yLjc4LjU4QTIuMDEgMi4wMSAwIDAgMCAyIDkuNDNWMTBoNXYtLjU3YzAtLjgzLjM0LTEuNi45Mi0yLjE1ek0xMCA0YzAtMS4xLjktMiAyLTJzMiAuOSAyIDItLjkgMi0yIDItMi0uOS0yLTJ6bTYgNkg4di0uNTdjMC0uODEuNDgtMS41MyAxLjIyLTEuODVhNi45NSA2Ljk1IDAgMCAxIDUuNTYgMEEyLjAxIDIuMDEgMCAwIDEgMTYgOS40M1YxMHptLTEgNmMwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yem02IDZoLTh2LS41N2MwLS44MS40OC0xLjUzIDEuMjItMS44NWE2Ljk1IDYuOTUgMCAwIDEgNS41NiAwQTIuMDEgMi4wMSAwIDAgMSAyMSAyMS40M1YyMnpNNSAxNmMwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yem02IDZIM3YtLjU3YzAtLjgxLjQ4LTEuNTMgMS4yMi0xLjg1YTYuOTUgNi45NSAwIDAgMSA1LjU2IDBBMi4wMSAyLjAxIDAgMCAxIDExIDIxLjQzVjIyem0xLjc1LTl2LTJoLTEuNXYySDlsMyAzIDMtM2gtMi4yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlbW92ZU1vZGVyYXRvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfV19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiA0LjE0IDYgMi4yNXY0LjdjMCAxLjE5LS4yMyAyLjM2LS42NCAzLjQ0bDEuNTEgMS41MWMuNzItMS41MyAxLjEzLTMuMjIgMS4xMy00Ljk1VjVsLTgtMy01LjIyIDEuOTYgMS41NSAxLjU1TDEyIDQuMTR6TTIuODEgMi44MSAxLjM5IDQuMjIgNCA2LjgzdjQuMjZjMCA1LjA1IDMuNDEgOS43NiA4IDEwLjkxIDEuNzItLjQzIDMuMjgtMS4zNiA0LjU1LTIuNjJsMy4yMyAzLjIzIDEuNDEtMS40MUwyLjgxIDIuODF6TTEyIDE5LjkyYy0zLjQ1LTEuMTMtNi00LjgyLTYtOC44M1Y4LjgzbDkuMTQgOS4xNGMtLjkuODgtMS45NyAxLjU3LTMuMTQgMS45NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJvbGxlclNrYXRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxMmEzLjk2IDMuOTYgMCAwIDAtMi45MS0zLjgybC0yLjYyLS43NEMxMy42MiA3LjE5IDEzIDYuMzkgMTMgNS41VjFINHYxNWgxNnYtNHptLTIgMkg2VjNoNXYxSDkuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjVIMTFsLjEgMUg5LjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41aDEuODFjLjQ1IDEuMTIgMS40IDIuMDEgMi42IDIuMzZsMi42Mi43M0MxNy40IDEwLjMzIDE4IDExLjEgMTggMTJ2MnpNNSAxN2MtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6bTAgNGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0xNC00Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3ptMCA0Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bS03LTRjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zem0wIDRjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNhZmV0eURpdmlkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA1aDJ2MTRoLTJWNXptLTYgN2MxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTIuNzggMS41OGE2Ljk1IDYuOTUgMCAwIDAtNS41NiAwQTIuMDEgMi4wMSAwIDAgMCAxIDE1LjQzVjE2aDh2LS41N2MwLS44MS0uNDgtMS41My0xLjIyLTEuODV6TTE5IDEyYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptMi43OCAxLjU4YTYuOTUgNi45NSAwIDAgMC01LjU2IDBBMi4wMSAyLjAxIDAgMCAwIDE1IDE1LjQzVjE2aDh2LS41N2MwLS44MS0uNDgtMS41My0xLjIyLTEuODV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTYW5pdGl6ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDYuNUMxNS41IDUuNjYgMTcgNCAxNyA0czEuNSAxLjY2IDEuNSAyLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41cy0xLjUtLjY3LTEuNS0xLjV6bTQgOC41YTIuNSAyLjUgMCAwIDAgMi41LTIuNWMwLTEuNjctMi41LTQuNS0yLjUtNC41UzE3IDEwLjgzIDE3IDEyLjVhMi41IDIuNSAwIDAgMCAyLjUgMi41ek0xMyAxNGgtMnYtMkg5djJIN3YyaDJ2Mmgydi0yaDJ2LTJ6bTMtMnY4YzAgMS4xLS45IDItMiAySDZjLTEuMSAwLTItLjktMi0ydi04YzAtMi45NyAyLjE2LTUuNDMgNS01LjkxVjRIN1YyaDZjMS4xMyAwIDIuMTUuMzkgMi45OSAxLjAxbC0xLjQzIDEuNDNDMTQuMSA0LjE3IDEzLjU3IDQgMTMgNGgtMnYyLjA5YzIuODQuNDggNSAyLjk0IDUgNS45MXptLTIgMGMwLTIuMjEtMS43OS00LTQtNHMtNCAxLjc5LTQgNHY4aDh2LTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTY2FsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDExVjhjNC41Ni0uNTggOC0zLjEgOC02SDJjMCAyLjkgMy40NCA1LjQyIDggNnYzYy0zLjY4LjczLTggMy42MS04IDExaDZ2LTJINC4xM2MuOTMtNi44MyA2LjY1LTcuMiA3Ljg3LTcuMnM2Ljk0LjM3IDcuODcgNy4ySDE2djJoNmMwLTcuMzktNC4zMi0xMC4yNy04LTExem00Ljg3LTdDMTcuNSA1LjE5IDE1IDYuMTIgMTIgNi4xMlM2LjUgNS4xOSA1LjEzIDRoMTMuNzR6TTEyIDIyYy0xLjEgMC0yLS45LTItMiAwLS41NS4yMi0xLjA1LjU5LTEuNDFDMTEuMzkgMTcuNzkgMTYgMTYgMTYgMTZzLTEuNzkgNC42MS0yLjU5IDUuNDFjLS4zNi4zNy0uODYuNTktMS40MS41OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNjaG9vbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMyAxIDlsNCAyLjE4djZMMTIgMjFsNy0zLjgydi02bDItMS4wOVYxN2gyVjlMMTIgM3ptNi44MiA2TDEyIDEyLjcyIDUuMTggOSAxMiA1LjI4IDE4LjgyIDl6TTE3IDE1Ljk5bC01IDIuNzMtNS0yLjczdi0zLjcyTDEyIDE1bDUtMi43M3YzLjcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2NpZW5jZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDExLjMzIDE4IDE4SDZsNS02LjY3VjZoMm0yLjk2LTJIOC4wNGMtLjQyIDAtLjY1LjQ4LS4zOS44MUw5IDYuNXY0LjE3TDMuMiAxOC40Yy0uNDkuNjYtLjAyIDEuNi44IDEuNmgxNmMuODIgMCAxLjI5LS45NC44LTEuNkwxNSAxMC42N1Y2LjVsMS4zNS0xLjY5Yy4yNi0uMzMuMDMtLjgxLS4zOS0uODF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTY29yZWJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggOWgtMi41Yy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMUgxOGMuNTUgMCAxLS40NSAxLTF2LTRjMC0uNTUtLjQ1LTEtMS0xem0tLjUgNC41SDE2di0zaDEuNXYzem0tOCAxLjVINXYtMi41YzAtLjU1LjQ1LTEgMS0xaDJ2LTFINVY5aDMuNWMuNTUgMCAxIC40NSAxIDF2MS41YzAgLjU1LS40NSAxLTEgMWgtMnYxaDNWMTV6bTMuMjUtNGgtMS41VjkuNWgxLjVWMTF6bTAgMy41aC0xLjVWMTNoMS41djEuNXpNMjIgNnYxMmMwIDEuMS0uOSAyLTIgMkg0Yy0xLjEgMC0yLS45LTItMlY2YzAtMS4xLjktMiAyLTJoM1YyaDJ2Mmg2VjJoMnYyaDNjMS4xIDAgMiAuOSAyIDJ6bS0yIDEyVjZoLTcuMjV2MS41aC0xLjVWNkg0djEyaDcuMjV2LTEuNWgxLjVWMThIMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTY3ViYURpdmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMTNjMC0xLjEuOS0yIDItMnMyIC45IDIgMi0uOSAyLTIgMi0yLS45LTItMnptNy44OS0yLjg5IDQuNTMtMS4yMS0uNzgtMi45LTQuNTMgMS4yMWMtLjguMjEtMS4yOCAxLjA0LTEuMDYgMS44NC4yMi44IDEuMDQgMS4yOCAxLjg0IDEuMDZ6TTIwLjUgNS45IDIzIDNsLTEtMS0zIDMtMiA0LTkuNDggMi44N2MtLjgyLjItMS4zOS44OS0xLjUgMS42OEw1LjI0IDE4IDIuNCAyMS44IDQgMjNsMy00IDEuMTQtMy4xNEwxNCAxNGw1LTMuNSAxLjUtNC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2VsZkltcHJvdmVtZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjZcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTZ2LTJjLTIuMjQgMC00LjE2LS45Ni01LjYtMi42OGwtMS4zNC0xLjZBMS45OCAxLjk4IDAgMCAwIDEyLjUzIDloLTEuMDVjLS41OSAwLTEuMTUuMjYtMS41My43MmwtMS4zNCAxLjZDNy4xNiAxMy4wNCA1LjI0IDE0IDMgMTR2MmMyLjc3IDAgNS4xOS0xLjE3IDctMy4yNVYxNWwtMy44OCAxLjU1Yy0uNjcuMjctMS4xMi45My0xLjEyIDEuNjZDNSAxOS4yIDUuOCAyMCA2Ljc5IDIwSDl2LS41YTIuNSAyLjUgMCAwIDEgMi41LTIuNWgzYy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNWgtM2MtLjgzIDAtMS41LjY3LTEuNSAxLjV2LjVoNy4yMWMuOTkgMCAxLjc5LS44IDEuNzktMS43OSAwLS43My0uNDUtMS4zOS0xLjEyLTEuNjZMMTQgMTV2LTIuMjVjMS44MSAyLjA4IDQuMjMgMy4yNSA3IDMuMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZW50aW1lbnREaXNzYXRpc2ZpZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTRjLTIuMzMgMC00LjMyIDEuNDUtNS4xMiAzLjVoMS42N2MuNjktMS4xOSAxLjk3LTIgMy40NS0yczIuNzUuODEgMy40NSAyaDEuNjdjLS44LTIuMDUtMi43OS0zLjUtNS4xMi0zLjV6bS0uMDEtMTJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNlbnRpbWVudE5ldXRyYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTRoNnYxLjVIOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNS41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4LjVcIixcImN5XCI6XCI5LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZW50aW1lbnRTYXRpc2ZpZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTZjLTEuNDggMC0yLjc1LS44MS0zLjQ1LTJINi44OGE1LjQ5NSA1LjQ5NSAwIDAgMCAxMC4yNCAwaC0xLjY3Yy0uNyAxLjE5LTEuOTcgMi0zLjQ1IDJ6bS0uMDEtMTRDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNlbnRpbWVudFZlcnlEaXNzYXRpc2ZpZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEzLjVjLTIuMzMgMC00LjMxIDEuNDYtNS4xMSAzLjVoMTAuMjJjLS44LTIuMDQtMi43OC0zLjUtNS4xMS0zLjV6TTcuODIgMTJsMS4wNi0xLjA2TDkuOTQgMTIgMTEgMTAuOTQgOS45NCA5Ljg4IDExIDguODIgOS45NCA3Ljc2IDguODggOC44MiA3LjgyIDcuNzYgNi43NiA4LjgybDEuMDYgMS4wNi0xLjA2IDEuMDZ6bTQuMTctMTBDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgOS45OSAxMFMyMiAxNy41MyAyMiAxMiAxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHptNC4xOC0xMi4yNC0xLjA2IDEuMDYtMS4wNi0xLjA2TDEzIDguODJsMS4wNiAxLjA2TDEzIDEwLjk0IDE0LjA2IDEybDEuMDYtMS4wNkwxNi4xOCAxMmwxLjA2LTEuMDYtMS4wNi0xLjA2IDEuMDYtMS4wNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNlbnRpbWVudFZlcnlTYXRpc2ZpZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk5IDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgOS45OSAxMFMyMiAxNy41MyAyMiAxMiAxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHptMS0xMC4wNkwxNC4wNiAxMWwxLjA2LTEuMDZMMTYuMTggMTFsMS4wNi0xLjA2LTIuMTItMi4xMkwxMyA5Ljk0em0tNC4xMiAwTDkuOTQgMTEgMTEgOS45NCA4Ljg4IDcuODIgNi43NiA5Ljk0IDcuODIgMTFsMS4wNi0xLjA2ek0xMiAxNy41YzIuMzMgMCA0LjMxLTEuNDYgNS4xMS0zLjVINi44OWMuOCAyLjA0IDIuNzggMy41IDUuMTEgMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2V2ZXJlQ29sZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDEwLjQxIDQtNEwxNC41OSA1IDEyIDcuNTlWNGgtMnYzLjU5TDcuNDEgNSA2IDYuNDFsNCA0VjEySDguNDFsLTQtNEwzIDkuNDEgNS41OSAxMkgydjJoMy41OUwzIDE2LjU5IDQuNDEgMThsNC00SDEwdjEuNTlsLTQgNEw3LjQxIDIxIDEwIDE4LjQxVjIyaDJ2LTMuNTlMMTQuNTkgMjEgMTYgMTkuNTlsLTQtNFYxNGgxLjU5bDQgNEwxOSAxNi41OSAxNi40MSAxNEgyMHYtMmgtOHpNMTkgMmgydjVoLTJ6TTE5IDhoMnYyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDE2LjA4Yy0uNzYgMC0xLjQ0LjMtMS45Ni43N0w4LjkxIDEyLjdjLjA1LS4yMy4wOS0uNDYuMDktLjdzLS4wNC0uNDctLjA5LS43bDcuMDUtNC4xMWMuNTQuNSAxLjI1LjgxIDIuMDQuODEgMS42NiAwIDMtMS4zNCAzLTNzLTEuMzQtMy0zLTMtMyAxLjM0LTMgM2MwIC4yNC4wNC40Ny4wOS43TDguMDQgOS44MUM3LjUgOS4zMSA2Ljc5IDkgNiA5Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzYy43OSAwIDEuNS0uMzEgMi4wNC0uODFsNy4xMiA0LjE2Yy0uMDUuMjEtLjA4LjQzLS4wOC42NSAwIDEuNjEgMS4zMSAyLjkyIDIuOTIgMi45MnMyLjkyLTEuMzEgMi45Mi0yLjkyYzAtMS42MS0xLjMxLTIuOTItMi45Mi0yLjkyek0xOCA0Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6TTYgMTNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMTIgNy4wMmMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2ljayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMzIgMTAuNTYgOC4zOCA5LjUgNy4zMiA4LjQ0bDEuMDYtMS4wNkwxMC41IDkuNWwtMi4xMiAyLjEyLTEuMDYtMS4wNnpNNC41IDljLjAzIDAgLjA1LjAxLjA4LjAxQTguMDAyIDguMDAyIDAgMCAxIDEyIDRjMi4xOSAwIDQuMTYuODggNS42MSAyLjMuMTUtLjYuNDUtMS4yOS44MS0xLjk2QTkuOTY1IDkuOTY1IDAgMCAwIDExLjk5IDJjLTQuODggMC04Ljk0IDMuNTEtOS44MSA4LjE0QzIuNzQgOS40NCAzLjU5IDkgNC41IDl6TTIxIDEwLjVjLS40MiAwLS44Mi0uMDktMS4xOS0uMjIuMTIuNTUuMTkgMS4xMy4xOSAxLjcyIDAgNC40Mi0zLjU4IDgtOCA4LTMuMzYgMC02LjIzLTIuMDctNy40Mi01LjAxLS4wMyAwLS4wNS4wMS0uMDguMDEtLjUyIDAtMS4wNC0uMTQtMS41LS40LS4zMi0uMTgtLjU5LS40Mi0uODItLjcuODkgNC42MSA0LjkzIDguMSA5LjggOC4xQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyYzAtLjU1LS4wNi0xLjA5LS4xNC0xLjYyYTMuNSAzLjUgMCAwIDEtLjg2LjEyek0yMSAzcy0yIDIuOS0yIDQgLjkgMiAyIDIgMi0uOSAyLTItMi00LTItNHptLTUuMzggNC4zOEwxMy41IDkuNWwyLjEyIDIuMTIgMS4wNi0xLjA2LTEuMDYtMS4wNiAxLjA2LTEuMDYtMS4wNi0xLjA2ek04LjU2IDE3Yy42OS0xLjE5IDEuOTctMiAzLjQ0LTJzMi43NS44MSAzLjQ0IDJoMS42OGMtLjgtMi4wNS0yLjc5LTMuNS01LjEyLTMuNS0uODcgMC0xLjcuMi0yLjQzLjU3TDUuOTkgMTJjMC0uNTItLjI2LTEuMDItLjc0LTEuMjktLjcyLS40MS0xLjYzLS4xNy0yLjA1LjU1LS40MS43Mi0uMTcgMS42My41NSAyLjA1LjQ4LjI4IDEuMDUuMjUgMS40OSAwbDIuOTcgMS43MmMtLjU3LjUzLTEuMDMgMS4yMS0xLjMzIDEuOTdoMS42OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNpZ25MYW5ndWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyLjQ5IDEzLS45My0xLjg2Yy0uMzctLjc0LS4wNy0xLjY0LjY3LTIuMDFsLjI2LS4xMyA1LjczIDUuNDZjLjUuNDcuNzggMS4xMy43OCAxLjgxdjUuMjNhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMUgxMHYtMUg0Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xaDZ2LTFIM2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMWg3di0xSDQuNWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMWg3Ljk5em0xLjUxLjJWMTVoLTJ2N2g0Yy41NSAwIDEtLjQ1IDEtMXYtNC41M2MwLS4yNy0uMTEtLjU0LS4zMS0uNzNMMTQgMTMuMnptLTIuMjItNi4wOGMtLjg0LjQtMS4xNy42Mi0xLjYzIDEuMTlsLTIuNy0yLjg1QS45OTYuOTk2IDAgMSAxIDguOSA0LjA5bDIuODggMy4wM3pNOS42NCA5LjIxYTMuNDYgMy40NiAwIDAgMC0uMiAxLjc5aC0uODZMNi4zMSA4LjYxYS45ODcuOTg3IDAgMCAxIC4wNC0xLjQxLjk5Ni45OTYgMCAwIDEgMS40MS4wNGwxLjg4IDEuOTd6bTEwLjY5IDQuNy44OC0uODNjLjUtLjQ3Ljc5LTEuMTMuNzktMS44MlYzLjM1bC0uMjctLjFjLS43OC0uMjgtMS42NC4xMi0xLjkyLjlsLS43MSAxLjk2LTUuNS01LjhhLjk5Ni45OTYgMCAxIDAtMS40NSAxLjM3bDMuNzkgMy45OS0uNzMuNjktNC44Mi01LjA4YS45OTYuOTk2IDAgMSAwLTEuNDUgMS4zN2wzLjc4IDMuOThMMTUuMzggOWwxLjkzLTEuODcgMS4zOCAxLjQ1TDIwIDcuMzR2My43YzAgLjI4LS4xMS41NC0uMzEuNzNsLS43LjY2LjYxLjU4Yy4yOS4yNy41My41Ny43My45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2luZ2xlQmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTJjMC0xLjEtLjktMi0yLTJWN2MwLTEuMS0uOS0yLTItMkg4Yy0xLjEgMC0yIC45LTIgMnYzYy0xLjEgMC0yIC45LTIgMnY1aDEuMzNMNiAxOWgxbC42Ny0yaDguNjdsLjY2IDJoMWwuNjctMkgyMHYtNXptLTQtMmgtM1Y3aDN2M3pNOCA3aDN2M0g4Vjd6bS0yIDVoMTJ2M0g2di0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2thdGVib2FyZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDNjMC0xLjEuOS0yIDItMnMyIC45IDIgMi0uOSAyLTIgMi0yLS45LTItMnpNNy4yNSAyMi41Yy0uNDEgMC0uNzUuMzQtLjc1Ljc1cy4zNC43NS43NS43NS43NS0uMzQuNzUtLjc1LS4zNC0uNzUtLjc1LS43NXptOC41IDBjLS40MSAwLS43NS4zNC0uNzUuNzVzLjM0Ljc1Ljc1Ljc1Ljc1LS4zNC43NS0uNzUtLjM0LS43NS0uNzUtLjc1em0zLjQ5LTMuNWEuNzIuNzIgMCAwIDAtLjU5LjNjLS41NS43My0xLjQyIDEuMi0yLjQgMS4ySDE2di02bC00LjMyLTIuNjcgMS44LTIuODlBNi41MDcgNi41MDcgMCAwIDAgMTkgMTJ2LTJjLTEuODUgMC0zLjQ0LTEuMTItNC4xMy0yLjcybC0uNTItMS4yMUMxNC4xNiA1LjY0IDEzLjYxIDUgMTIuNyA1SDdMNC41IDlsMS43IDEuMDZMOC4xIDdoMi4zNWwtMi40IDMuODRjLS4zMS41LS4zOSAxLjExLS4yMSAxLjY3bDEuMzQgNC4xNS0zLjEyIDMuNzZjLS43LS4xNi0xLjMtLjU3LTEuNzEtMS4xMmEuNzQ5Ljc0OSAwIDEgMC0xLjIuOWMuODIgMS4xIDIuMTMgMS44IDMuNiAxLjhoOS41YzEuNDcgMCAyLjc4LS43IDMuNi0xLjguMS0uMTQuMTUtLjMuMTUtLjQ1IDAtLjM5LS4zMi0uNzUtLjc2LS43NXpNMTQgMjAuNUg4LjZsMi45LTMuNS0xLTMuMyAzLjUgMi4ydjQuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNsZWRkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgNC41YzAgMS4xLS45IDItMiAycy0yLS45LTItMiAuOS0yIDItMiAyIC45IDIgMnptOC44IDE1Ljc0YTQuMDAzIDQuMDAzIDAgMCAxLTUuMDQgMi41N0wxIDE3LjM2bC40Ni0xLjQzIDMuOTMgMS4yOC40Ni0xLjQzLTMuOTItMS4yOC40Ni0xLjQzTDQgMTMuNlY5LjVsNS40Ny0yLjM1Yy4zOS0uMTcuODQtLjIxIDEuMjgtLjA3Ljk1LjMxIDEuNDYgMS4zMiAxLjE2IDIuMjdsLTEuMDUgMy4yNCAyLjE0LS4zNGMuODktLjE1IDEuNzYuMzIgMi4xNCAxLjE0bDIuMDggNC41MSAxLjkzLjYzLS40NiAxLjQzLTMuMzItMS4wOC0uNDcgMS40MiAzLjMyIDEuMDhjMS4zMS40MyAyLjcyLS4yOSAzLjE1LTEuNjEuNDMtMS4zMS0uMjktMi43Mi0xLjYxLTMuMTVsLjQ2LTEuNDNjMi4xMS42OSAzLjI3IDIuOTUgMi41OCA1LjA1ek02IDE0LjI1bDEuMDEuMzNjLS4yMi0uNDItLjI4LS45Mi0uMTItMS40TDcuOTIgMTAgNiAxMC44MnYzLjQzem03Ljk0IDQuMTYtNi42Ni0yLjE2LS40NiAxLjQzIDYuNjYgMi4xNi40Ni0xLjQzem0uNjktMS4zNi0xLjE4LTIuNTYtMy45Ny44OSA1LjE1IDEuNjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTbm93Ym9hcmRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAzYzAtMS4xLjktMiAyLTJzMiAuOSAyIDItLjkgMi0yIDItMi0uOS0yLTJ6bTcuNCAxNy4wOWEuNzQ4Ljc0OCAwIDAgMC0uNjQuMTdjLS42OS42LTEuNjQuODgtMi42LjY3TDE3IDIwLjY5bC0xLTYuMTktMy4zMi0yLjY3IDEuOC0yLjg5QTYuNTA3IDYuNTA3IDAgMCAwIDIwIDEydi0yYy0xLjg1IDAtMy40NC0xLjEyLTQuMTMtMi43MmwtLjUyLTEuMjFDMTUuMTYgNS42NCAxNC42MSA1IDEzLjcgNUg4TDUuNSA5bDEuNyAxLjA2TDkuMSA3aDIuMzVsLTIuNTEgMy45OWMtLjI4LjQ1LS4zNyAxLS4yNSAxLjUyTDkuNSAxNiA2IDE4LjM1bC0uNDctLjFjLS45Ni0uMi0xLjcxLS44NS0yLjEtMS42N2EuNzQ0Ljc0NCAwIDAgMC0uNTEtLjQyYy0uNDMtLjA5LS44Mi4yLS45LjU4LS4wNC4xNC0uMDIuMzEuMDUuNDYuNTggMS4yNCAxLjcxIDIuMiAzLjE1IDIuNTFsMTIuNjMgMi42OWMxLjQ0LjMxIDIuODYtLjExIDMuOS0xLjAxLjEzLS4xMS4yMS0uMjYuMjQtLjQxLjA3LS4zOC0uMTYtLjgtLjU5LS44OXpNOC43MyAxOC45M2wzLjAyLTIuMDMtLjQ0LTMuMzIgMi44NCAyLjAyLjc1IDQuNjQtNi4xNy0xLjMxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU25vd3Nob2VpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi41IDMuNWMwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yek02LjMyIDE5LjAzbC0xLjE0LTEuNDdMNCAxOC41bDIuMzggMy4wNGMuNTEuNjUgMS4xNiAxLjE1IDEuODggMS40MS4yOC4xLjUzLjA0LjcyLS4xMS4zLS4yMy40Mi0uNy4xMi0xLjA3YS44NC44NCAwIDAgMC0uMzEtLjIyIDIuOTcgMi45NyAwIDAgMS0xLjE0LS44M2wtLjA4LS4xTDExIDE4LjJsLjg5LTMuMjIgMi4xMSAydjQuNTJoLTJWMjNoMy44N2MuODIgMCAxLjYxLS4yMSAyLjI2LS42MS4yNi0uMTYuMzctLjM5LjM3LS42NCAwLS4zOC0uMy0uNzUtLjc3LS43NS0uMTMgMC0uMjYuMDQtLjM3LjEtLjQuMjMtLjg3LjM3LTEuMzYuNHYtNi4wMmwtMi4xMS0yIC42LTNDMTUuNzkgMTEuOTggMTcuOCAxMyAyMCAxM3YtMmMtMS45IDAtMy41MS0xLjAyLTQuMzEtMi40MmwtMS0xLjU4Yy0uNC0uNi0xLTEtMS43LTEtLjc1IDAtMS40MS4zNC01Ljk5IDIuMjhWMTNoMlY5LjU4bDEuNzktLjdMOS4yIDE3bC0yLjg4IDIuMDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTb2NpYWxEaXN0YW5jZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNWMwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yem00Ljc4IDMuNThhNi45NSA2Ljk1IDAgMCAwLTUuNTYgMEEyLjAxIDIuMDEgMCAwIDAgMiAxMC40M1YxMWg4di0uNTdjMC0uODEtLjQ4LTEuNTMtMS4yMi0xLjg1ek0xOCA3YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptMi43OCAxLjU4YTYuOTUgNi45NSAwIDAgMC01LjU2IDBBMi4wMSAyLjAxIDAgMCAwIDE0IDEwLjQzVjExaDh2LS41N2MwLS44MS0uNDgtMS41My0xLjIyLTEuODV6bS0yLjc3IDQuNDMtMS40MSAxLjQxTDE4LjE3IDE2SDUuODNsMS41OC0xLjU5TDYgMTNsLTQgNCAzLjk5IDMuOTkgMS40MS0xLjQxTDUuODMgMThoMTIuMzRsLTEuNTggMS41OEwxOCAyMC45OSAyMiAxN2wtMy45OS0zLjk5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU291dGhBbWVyaWNhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnpNNCAxMmMwLTEuOTUuNy0zLjc0IDEuODctNS4xM0w5IDEwdjFjMCAxLjEuOSAyIDIgMnY1LjU5YzAgLjI3LjExLjUyLjI5LjcxbC43MS43Yy00LjQyIDAtOC0zLjU4LTgtOHptOSA3Ljk0VjE4bDMuNzUtNS42MmMuMTYtLjI1LjI1LS41NC4yNS0uODNWMTAuNWMwLS41NS0uNDUtMS0xLTFoLTEuNWwtMS40LTEuNzVjLS4zOC0uNDctLjk1LS43NS0xLjU2LS43NUg4VjUuMDdBNy45NzEgNy45NzEgMCAwIDEgMTIgNGM0LjQxIDAgOCAzLjU5IDggOCAwIDQuMDctMy4wNiA3LjQ0LTcgNy45NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwb3J0c0Jhc2ViYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnpNNS42MSAxNi43OEM0LjYgMTUuNDUgNCAxMy44IDQgMTJzLjYtMy40NSAxLjYxLTQuNzhhNS45NzUgNS45NzUgMCAwIDEgMCA5LjU2ek0xMiAyMGMtMS44OSAwLTMuNjMtLjY2LTUtMS43NiAxLjgzLTEuNDcgMy0zLjcxIDMtNi4yNFM4LjgzIDcuMjMgNyA1Ljc2QzguMzcgNC42NiAxMC4xMSA0IDEyIDRzMy42My42NiA1IDEuNzZjLTEuODMgMS40Ny0zIDMuNzEtMyA2LjI0czEuMTcgNC43NyAzIDYuMjRBNy45NjMgNy45NjMgMCAwIDEgMTIgMjB6bTYuMzktMy4yMmE1Ljk3NSA1Ljk3NSAwIDAgMSAwLTkuNTZDMTkuNCA4LjU1IDIwIDEwLjIgMjAgMTJzLS42IDMuNDUtMS42MSA0Ljc4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BvcnRzQmFza2V0YmFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTUuMjMgNy43NUM2LjEgOC42MiA2LjcgOS43NCA2LjkxIDExSDQuMDdhOC4xMiA4LjEyIDAgMCAxIDEuMTYtMy4yNXpNNC4wNyAxM2gyLjg0YTUuOTcyIDUuOTcyIDAgMCAxLTEuNjggMy4yNUE4LjEyIDguMTIgMCAwIDEgNC4wNyAxM3pNMTEgMTkuOTNjLTEuNzMtLjIyLTMuMjktMS00LjQ5LTIuMTRBNy45NTIgNy45NTIgMCAwIDAgOC45MyAxM0gxMXY2Ljkzek0xMSAxMUg4LjkzQTcuOTkgNy45OSAwIDAgMCA2LjUgNi4yIDguMDM1IDguMDM1IDAgMCAxIDExIDQuMDdWMTF6bTguOTMgMGgtMi44NGMuMjEtMS4yNi44MS0yLjM4IDEuNjgtMy4yNS42Ljk3IDEuMDEgMi4wNyAxLjE2IDMuMjV6TTEzIDQuMDdjMS43My4yMiAzLjI5Ljk5IDQuNSAyLjEzYTcuOTkgNy45OSAwIDAgMC0yLjQzIDQuOEgxM1Y0LjA3em0wIDE1Ljg2VjEzaDIuMDdhOC4wMDYgOC4wMDYgMCAwIDAgMi40MiA0Ljc5QTcuOTg4IDcuOTg4IDAgMCAxIDEzIDE5Ljkzem01Ljc3LTMuNjhBNi4wMDQgNi4wMDQgMCAwIDEgMTcuMDkgMTNoMi44NGE4LjEyIDguMTIgMCAwIDEtMS4xNiAzLjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BvcnRzQ3JpY2tldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1LjA0IDEyLjc5LTguNS04LjVDNi4zNSA0LjEgNi4wOSA0IDUuODMgNHMtLjUxLjEtLjcuMjlMMi4yOSA3LjEzYy0uMzkuMzktLjM5IDEuMDMgMCAxLjQybDguNSA4LjVjLjIuMi40NS4yOS43MS4yOS4yNiAwIC41MS0uMS43MS0uMjlsMi44My0yLjgzYy4zOS0uNC4zOS0xLjA0IDAtMS40M3ptLTMuNTQgMi4xM0w0LjQxIDcuODNsMS40Mi0xLjQyIDcuMDkgNy4wOS0xLjQyIDEuNDJ6TTE0LjM0MSAxNy43NTZsMS40MTQtMS40MTQgNC4yNDMgNC4yNDMtMS40MTQgMS40MTR6TTE4LjUgMkMxNi41NyAyIDE1IDMuNTcgMTUgNS41UzE2LjU3IDkgMTguNSA5IDIyIDcuNDMgMjIgNS41IDIwLjQzIDIgMTguNSAyem0wIDVjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxNy42NyA0IDE4LjUgNHMxLjUuNjcgMS41IDEuNVMxOS4zMyA3IDE4LjUgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwb3J0c0VzcG9ydHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS41OCAxNi4wOS0xLjA5LTcuNjZBMy45OTYgMy45OTYgMCAwIDAgMTYuNTMgNUg3LjQ3QzUuNDggNSAzLjc5IDYuNDYgMy41MSA4LjQzbC0xLjA5IDcuNjZDMi4yIDE3LjYzIDMuMzkgMTkgNC45NCAxOWMuNjggMCAxLjMyLS4yNyAxLjgtLjc1TDkgMTZoNmwyLjI1IDIuMjVjLjQ4LjQ4IDEuMTMuNzUgMS44Ljc1IDEuNTYgMCAyLjc1LTEuMzcgMi41My0yLjkxem0tMi4xLjcyYS41NC41NCAwIDAgMS0uNDIuMTljLS4xNSAwLS4yOS0uMDYtLjM5LS4xNkwxNS44MyAxNEg4LjE3bC0yLjg0IDIuODRjLS4xLjEtLjI0LjE2LS4zOS4xNmEuNTQuNTQgMCAwIDEtLjQyLS4xOS41Mi41MiAwIDAgMS0uMTMtLjQ0bDEuMDktNy42NkM1LjYzIDcuNzQgNi40OCA3IDcuNDcgN2g5LjA2Yy45OSAwIDEuODQuNzQgMS45OCAxLjcybDEuMDkgNy42NmMuMDMuMi0uMDUuMzQtLjEyLjQzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDhIOHYySDZ2MWgydjJoMXYtMmgydi0xSDl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTdcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiOVwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BvcnRzRm9vdGJhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC4zMSAzLjY5Yy0uMzItLjMzLTEuOTQtLjY5LTQuMDUtLjY5LTMuMDMgMC03LjA5Ljc1LTkuOCAzLjQ2LTQuNTkgNC41OS0zLjU2IDEzLjA2LTIuNzcgMTMuODUuMzIuMzMgMS45NC42OSA0LjA1LjY5IDMuMDMgMCA3LjA5LS43NSA5LjgtMy40NiA0LjU5LTQuNTkgMy41Ni0xMy4wNiAyLjc3LTEzLjg1ek03Ljc0IDE5Yy0xLjE0IDAtMi4wMi0uMTItMi41My0uMjMtLjE4LS43OS0uMy0yLjIxLS4xNy0zLjgzbDQuMDEgNC4wMWMtLjUyLjA0LS45Ny4wNS0xLjMxLjA1em04LjM5LTIuODdjLTEuMzMgMS4zMy0zLjA2IDIuMDUtNC42NiAyLjQ0bC02LjA0LTYuMDRjLjQyLTEuNjggMS4xNi0zLjM3IDIuNDUtNC42NSAxLjMyLTEuMzIgMy4wNS0yLjA0IDQuNjQtMi40M2w2LjA1IDYuMDVjLS40MiAxLjY3LTEuMTcgMy4zNS0yLjQ0IDQuNjN6bTIuODMtNy4wNC00LjAzLTQuMDNjLjUyLS4wNS45OC0uMDYgMS4zMy0uMDYgMS4xNCAwIDIuMDIuMTIgMi41My4yMy4xOC43OS4zIDIuMjIuMTcgMy44NnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOC41IDE0LjEgNS42LTUuNiAxLjQgMS40LTUuNiA1LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcG9ydHNHb2xmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTZjMy44NyAwIDctMy4xMyA3LTdzLTMuMTMtNy03LTctNyAzLjEzLTcgNyAzLjEzIDcgNyA3em0wLTEyYzIuNzYgMCA1IDIuMjQgNSA1cy0yLjI0IDUtNSA1LTUtMi4yNC01LTUgMi4yNC01IDUtNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMFwiLFwiY3lcIjpcIjhcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNFwiLFwiY3lcIjpcIjhcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjZcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxOWgyYzEuMSAwIDIgLjkgMiAydjFoMnYtMWMwLTEuMS45LTIgMi0yaDJ2LTJIN3YyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BvcnRzR3ltbmFzdGljcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNmMwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yek0xIDloNmw3LTUgMS4zMSAxLjUyLTQuMTcgMi45OEgxNEwyMS44IDQgMjMgNS40IDE0LjUgMTIgMTQgMjJoLTJsLS41LTEwTDggMTFIMVY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BvcnRzSGFuZGJhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC4yNyA2Yy0uNTUuOTUtLjIyIDIuMTguNzMgMi43My45NS41NSAyLjE4LjIyIDIuNzMtLjczLjU1LS45NS4yMi0yLjE4LS43My0yLjczLS45NS0uNTUtMi4xOC0uMjItMi43My43M3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUuODQgMTAuNDEtMi42LTEuNWMtMi4zOC0xLjM4LTMuMi00LjQ0LTEuODItNi44MmwtMS43My0xQzguMSAzLjgzIDguNiA3LjIxIDEwLjY2IDkuNGwtNS4xNSA4LjkyIDEuNzMgMSAxLjUtMi42IDEuNzMgMS0zIDUuMiAxLjczIDEgNi4yOS0xMC44OWE1LjAwMiA1LjAwMiAwIDAgMSAuMzEgNS40NmwxLjczIDFjMS42LTIuNzUgMS4yOC02LjU4LTEuNjktOS4wOHpNMTIuNzUgMy44Yy43Mi40MSAxLjYzLjE3IDIuMDUtLjU1LjQxLS43Mi4xNy0xLjYzLS41NS0yLjA1YTEuNTAxIDEuNTAxIDAgMCAwLTEuNSAyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcG9ydHNIb2NrZXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDE3djNoMnYtNEgzYy0uNTUgMC0xIC40NS0xIDF6TTkgMTZINXY0bDQuNjktLjAxYy4zOCAwIC43Mi0uMjEuODktLjU1bC44Ny0xLjktMS41OS0zLjQ4TDkgMTZ6TTIxLjcxIDE2LjI5QS45OTcuOTk3IDAgMCAwIDIxIDE2aC0xdjRoMnYtM2MwLS4yOC0uMTEtLjUzLS4yOS0uNzF6TTEzLjYgMTIuODQgMTcuNjUgNEgxNC4zbC0xLjc2IDMuOTctLjQ5IDEuMS0uMDUuMTRMOS43IDRINi4zNWw0LjA1IDguODQgMS41MiAzLjMyLjA4LjE4IDEuNDIgMy4xYy4xNy4zNC41MS41NS44OS41NUwxOSAyMHYtNGgtNGwtMS40LTMuMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcG9ydHNLYWJhZGRpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNi41XCIsXCJjeVwiOlwiMi4zOFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNCAxMS44OHYtNC43bC01LjA1LTIuMTRjLS45Ny0uNDEtMi4wOS0uMDYtMi42NS44NGwtMSAxLjZjLS42NyAxLjE4LTEuOTEgMi4wNi0zLjQxIDIuMzJsLjA2LjA2Yy42OS42OSAxLjUyIDEuMDcgMi40NiAxLjE3LjgtLjQyIDEuNTItLjk4IDIuMDktMS42NGwuNiAzLTEuMTYgMS4xLS45NC44OXY3LjVoMnYtNmwyLjEtMiAxLjggOEgyM2wtMi4xOC0xMS0uNjItMy4xIDEuOC43djMuNGgyek0xMC4yOSA4LjA5Yy4yMi4xNS40Ny4yNC43Mi4yOS4xMy4wMi4yNS4wNC4zOC4wNHMuMjYtLjAxLjM4LS4wNGMuMTMtLjAyLjI1LS4wNi4zNy0uMTEuMjQtLjEuNDctLjI0LjY2LS40NC40OS0uNDkuNjctMS4xNy41NS0xLjgtLjA3LS4zNy0uMjUtLjc0LS41NS0xLjAzLS4xOS0uMTktLjQyLS4zNC0uNjYtLjQ0LS4xMi0uMDUtLjI0LS4wOS0uMzctLjExcy0uMjUtLjA0LS4zOC0uMDRjLS4xMiAwLS4yMy4wMS0uMzUuMDMtLjE0LjAyLS4yOC4wNi0uNDEuMTEtLjIzLjExLS40Ni4yNi0uNjUuNDUtLjMuMjktLjQ4LjY2LS41NSAxLjAzLS4xMi42My4wNiAxLjMxLjU1IDEuOC4wOS4xLjIuMTguMzEuMjZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTExLjI0IDEwLjU2LTItMmMtLjEtLjEtLjItLjE4LS4zMS0uMjZhMS45MyAxLjkzIDAgMCAwLS43Mi0uMjhjLS4xMy0uMDMtLjI1LS4wNC0uMzgtLjA0LS41MSAwLTEuMDIuMi0xLjQxLjU5bC0zLjM0IDMuMzRjLS40MS40MS0uNjIuOTgtLjU4IDEuNTQgMCAuMTguMDQuMzcuMTEuNTVsMS4wNyAyLjk1LTMuNjMgMy42M0wxLjQ2IDIybDQuMjQtNC4yNHYtMi4yMkw3IDE2Ljc1djUuMTNoMnYtNmwtMi4xMi0yLjEyIDIuMzYtMi4zNi43MS43MWMxLjI5IDEuMjYgMi45NyAyLjA0IDUuMDMgMi4wNGwtLjE0LTIuMDdjLTEuNS0uMDItMi43LS42Mi0zLjYtMS41MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwb3J0c01hcnRpYWxBcnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkuOCAyLTguMiA2LjctMS4yMS0xLjA0IDMuNi0yLjA4TDkuNDEgMSA4IDIuNDFsMi43NCAyLjc0TDUgOC40NmwtMS4xOSA0LjI5TDYuMjcgMTcgOCAxNmwtMi4wMy0zLjUyLjM1LTEuM0w5LjUgMTNsLjUgOWgybC41LTEwTDIxIDMuNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI1XCIsXCJjeVwiOlwiNVwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BvcnRzTW1hIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAyMGMwIC41NS40NSAxIDEgMWg4Yy41NSAwIDEtLjQ1IDEtMXYtM0g3djN6TTE4IDdjLS41NSAwLTEgLjQ1LTEgMVY1YzAtMS4xLS45LTItMi0ySDdjLTEuMSAwLTIgLjktMiAydjUuOGMwIC4xMy4wMS4yNi4wNC4zOWwuOCA0Yy4wOS40Ny41LjguOTguOEgxN2MuNTUgMCAxLjA5LS40NCAxLjItLjk4bC43Ny0zLjgzYy4wMi0uMTIuMDMtLjI1LjAzLS4zOFY4YzAtLjU1LS40NS0xLTEtMXptLTEgMy42YzAgLjEzLS42NCAzLjQtLjY0IDMuNEg3LjY0UzcgMTAuNzQgNyAxMC42VjVoOHY1aDJ2LjZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggN2g2djNIOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwb3J0c01vdG9yc3BvcnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuOTYgMTEuMjJDMjEuNTcgNy4wMSAxNy43NiA0IDEzLjU2IDRjLS4xOSAwLS4zOC4wMS0uNTcuMDJDMiA0Ljc0IDIgMTcuMiAyIDE3LjJ2LjhjMCAxLjEuOSAyIDIgMmgxMGM0LjY3IDAgOC40MS00LjAxIDcuOTYtOC43OHptLTE2LjcuMzRjLjU3LTEuMjkgMS4yOC0yLjM1IDIuMTQtMy4xOWwzLjYyIDEuNTNjLjYuMjUuOTguODMuOTggMS40OCAwIC44OS0uNzIgMS42MS0xLjYxIDEuNjFINC43MmMuMTUtLjQ2LjMyLS45NC41NC0xLjQzem0xMy4xOCA0LjQ4QTYuMDIyIDYuMDIyIDAgMCAxIDE0IDE4SDR2LS44YzAtLjAyLjAxLS45Mi4yNC0yLjJoNi4xNWMxLjk5IDAgMy42MS0xLjYyIDMuNjEtMy42MSAwLTEuNDUtLjg3LTIuNzYtMi4yLTMuMzJMOS4zIDcuMDFjMS4xLS41NyAyLjM3LS45IDMuODItLjk5LjE1LS4wMi4zLS4wMi40NC0uMDIgMy4zMSAwIDYuMTMgMi4zNyA2LjQxIDUuNDEuMTYgMS43Mi0uMzggMy4zNi0xLjUzIDQuNjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcG9ydHNSdWdieSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjQ5IDMuNTFjLS41Ni0uNTYtMi4xNS0uOTctNC4xNi0uOTctMy4wOCAwLTcuMTUuOTYtOS45OCAzLjc5LTQuNjkgNC43LTQuMjUgMTIuNzQtMi44NCAxNC4xNi41Ni41NiAyLjE1Ljk3IDQuMTYuOTcgMy4wOCAwIDcuMTUtLjk2IDkuOTgtMy43OSA0LjY5LTQuNyA0LjI1LTEyLjc0IDIuODQtMTQuMTZ6TTUuNzEgMTguMjljLjYzLTEuODkgMi4xNi00Ljk5IDQuODctNy43IDIuNjgtMi42OCA1Ljc4LTQuMjMgNy43LTQuODgtLjYzIDEuODktMi4xNiA0Ljk5LTQuODggNy43LTIuNjYgMi42OC01Ljc2IDQuMjMtNy42OSA0Ljg4ek03Ljc2IDcuNzZjMi42NC0yLjY0IDYuMzQtMy4xMiA4LjAzLTMuMTktMi4wNS45NC00LjQ2IDIuNDYtNi42MSA0LjYxYTIzLjIwNiAyMy4yMDYgMCAwIDAtNC42MSA2LjYzYy4wOS0yLjQ4Ljg3LTUuNzQgMy4xOS04LjA1em04LjQ4IDguNDhjLTIuNjQgMi42NC02LjM0IDMuMTItOC4wMyAzLjE5IDIuMDUtLjk0IDQuNDYtMi40NiA2LjYxLTQuNjEgMi4xNi0yLjE2IDMuNjctNC41OCA0LjYyLTYuNjMtLjEgMi40OC0uODggNS43NC0zLjIgOC4wNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwb3J0c1NvY2NlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEgMy4zIDEuMzUtLjk1YTguMDEgOC4wMSAwIDAgMSA0LjM4IDMuMzRsLS4zOSAxLjM0LTEuMzUuNDZMMTMgNi43VjUuM3ptLTMuMzUtLjk1TDExIDUuM3YxLjRMNy4wMSA5LjQ5bC0xLjM1LS40Ni0uMzktMS4zNGE4LjEwMyA4LjEwMyAwIDAgMSA0LjM4LTMuMzR6TTcuMDggMTcuMTFsLTEuMTQuMUE3LjkzOCA3LjkzOCAwIDAgMSA0IDEyYzAtLjEyLjAxLS4yMy4wMi0uMzVsMS0uNzMgMS4zOC40OCAxLjQ2IDQuMzQtLjc4IDEuMzd6bTcuNDIgMi40OGMtLjc5LjI2LTEuNjMuNDEtMi41LjQxcy0xLjcxLS4xNS0yLjUtLjQxbC0uNjktMS40OS42NC0xLjFoNS4xMWwuNjQgMS4xMS0uNyAxLjQ4ek0xNC4yNyAxNUg5LjczbC0xLjM1LTQuMDJMMTIgOC40NGwzLjYzIDIuNTRMMTQuMjcgMTV6bTMuNzkgMi4yMS0xLjE0LS4xLS43OS0xLjM3IDEuNDYtNC4zNCAxLjM5LS40NyAxIC43M2MuMDEuMTEuMDIuMjIuMDIuMzQgMCAxLjk5LS43MyAzLjgxLTEuOTQgNS4yMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwb3J0c1Rlbm5pcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjUyIDIuNDlDMTcuMTguMTUgMTIuOS42MiA5Ljk3IDMuNTVjLTEuNiAxLjYtMi41MiAzLjg3LTIuNTQgNS40Ni0uMDIgMS41OC4yNiAzLjg5LTEuMzUgNS41bC00LjI0IDQuMjQgMS40MiAxLjQyIDQuMjQtNC4yNGMxLjYxLTEuNjEgMy45Mi0xLjMzIDUuNS0xLjM1czMuODYtLjk0IDUuNDYtMi41NGMyLjkyLTIuOTMgMy40LTcuMjEgMS4wNi05LjU1em0tOS4yIDkuMTljLTEuNTMtMS41My0xLjA1LTQuNjEgMS4wNi02LjcyczUuMTgtMi41OSA2LjcyLTEuMDZjMS41MyAxLjUzIDEuMDUgNC42MS0xLjA2IDYuNzJzLTUuMTggMi41OS02LjcyIDEuMDZ6TTE4IDE3Yy41MyAwIDEuMDQuMjEgMS40MS41OS43OC43OC43OCAyLjA1IDAgMi44My0uMzcuMzctLjg4LjU4LTEuNDEuNThzLTEuMDQtLjIxLTEuNDEtLjU5Yy0uNzgtLjc4LS43OC0yLjA1IDAtMi44My4zNy0uMzcuODgtLjU4IDEuNDEtLjU4bTAtMmEzLjk5OCAzLjk5OCAwIDAgMC0yLjgzIDYuODNjLjc4Ljc4IDEuODEgMS4xNyAyLjgzIDEuMTdhMy45OTggMy45OTggMCAwIDAgMi44My02LjgzQTMuOTk4IDMuOTk4IDAgMCAwIDE4IDE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BvcnRzVm9sbGV5YmFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEgMi4wN2MzLjA3LjM4IDUuNTcgMi41MiA2LjU0IDUuMzZMMTMgNS42NVY0LjA3ek04IDUuMDhjMS4xOC0uNjkgMy4zMy0xLjA2IDMtMS4wMnY3LjM1bC0zIDEuNzNWNS4wOHpNNC42MyAxNS4xYy0uNC0uOTYtLjYzLTItLjYzLTMuMSAwLTIuMDIuNzYtMy44NiAyLTUuMjd2Ny41OGwtMS4zNy43OXptMS4wMSAxLjczTDEyIDEzLjE1bDMgMS43My02Ljk4IDQuMDNhNy43OTQgNy43OTQgMCAwIDEtMi4zOC0yLjA4ek0xMiAyMGMtLjU0IDAtMS4wNy0uMDYtMS41OC0uMTZsNi41OC0zLjggMS4zNi43OEMxNi45IDE4Ljc1IDE0LjYgMjAgMTIgMjB6bTEtOC41OFY3Ljk2bDcgNC4wNWMwIDEuMS0uMjMgMi4xNC0uNjMgMy4wOUwxMyAxMS40MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwb3J0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjIzIDZjLTEuNjYgMC0zLjIyLjY2LTQuMzYgMS43M0M2LjU0IDYuNzMgNS42MSA2IDQuNSA2YTIuNSAyLjUgMCAwIDAgMCA1Yy4yMSAwIC40MS0uMDMuNjEtLjA4LS4wNS4yNS0uMDkuNTEtLjEuNzhhNi4wMDYgNi4wMDYgMCAwIDAgNi42OCA2LjI3YzIuNTUtLjI4IDQuNjgtMi4yNiA1LjE5LTQuNzcuMTUtLjcxLjE1LTEuNC4wNi0yLjA2LS4wOS0uNi4zOC0xLjEzLjk5LTEuMTNIMjJWNkgxMS4yM3pNNC41IDljLS4yOCAwLS41LS4yMi0uNS0uNXMuMjItLjUuNS0uNS41LjIyLjUuNS0uMjIuNS0uNS41em02LjUgNmMtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtMyAzIDEuMzQgMyAzLTEuMzQgMy0zIDN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTFcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3VyZmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDIzYy0xLjAzIDAtMi4wNi0uMjUtMy0uNzUtMS44OSAxLTQuMTEgMS02IDAtMS44OSAxLTQuMTEgMS02IDAtLjk1LjUtMS45Ny43NS0zIC43NUgydi0yaDFjMS4wNCAwIDIuMDgtLjM1IDMtMSAxLjgzIDEuMyA0LjE3IDEuMyA2IDAgMS44MyAxLjMgNC4xNyAxLjMgNiAwIC45MS42NSAxLjk2IDEgMyAxaDF2MmgtMXpNMTcgMS41Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptLTIuNTcgNi45OEwxMi4xOCAxMCAxNiAxM3YzLjg0Yy41My4zOCAxLjAzLjc4IDEuNDkgMS4xNy0uNjguNTgtMS41NS45OS0yLjQ5Ljk5LTEuMiAwLTIuMjctLjY2LTMtMS41LS43My44NC0xLjggMS41LTMgMS41LS4zMyAwLS42NS0uMDUtLjk2LS4xNEM1LjE5IDE2LjkgMyAxNC43MiAzIDEzLjI4IDMgMTIuMjUgNC4wMSAxMiA0Ljg1IDEyYy45OCAwIDIuMjguMzEgMy43LjgzbC0uNTMtMy4xYy0uMTEtLjY3LjE4LTEuMzguNzgtMS43OWwyLjE1LTEuNDUtMi0uMzctMi44MiAxLjkzTDUgNi40IDguNSA0bDUuNTUgMS4wM2MuNDUuMDkuOTMuMzcgMS4yMi44OWwuODggMS41NUE1LjAwNyA1LjAwNyAwIDAgMCAyMC41IDEwdjJhNy4wMSA3LjAxIDAgMCAxLTYuMDctMy41MnpNMTAuMyAxMS4xbC40NCAyLjY1Yy45Mi40MiAyLjQ4IDEuMjcgMy4yNiAxLjc1VjE0bC0zLjctMi45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3dpdGNoQWNjb3VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2em0xMCA1YzEuNjYgMCAzLTEuMzQgMy0zcy0xLjM0LTMtMy0zLTMgMS4zNC0zIDMgMS4zNCAzIDMgM3ptMC00Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTYtNUg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS05LjMxIDE0YTUuOTc3IDUuOTc3IDAgMCAxIDYuNjIgMGgtNi42MnptOS4zMS0uMjdDMTguNTMgMTQuMDYgMTYuNCAxMyAxNCAxM3MtNC41MyAxLjA2LTYgMi43M1Y0aDEydjExLjczelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGh1bWJEb3duQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwiLFwib3BhY2l0eVwiOlwiLjg3XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDNINmMtLjgzIDAtMS41NC41LTEuODQgMS4yMmwtMy4wMiA3LjA1Yy0uMDkuMjMtLjE0LjQ3LS4xNC43M3YyYzAgMS4xLjkgMiAyIDJoNi4zMWwtLjk1IDQuNTctLjAzLjMyYzAgLjQxLjE3Ljc5LjQ0IDEuMDZMOS44MyAyM2w2LjU4LTYuNTljLjM3LS4zNi41OS0uODYuNTktMS40MVY1YzAtMS4xLS45LTItMi0yem0wIDEyLTQuMzQgNC4zNEwxMS43NyAxNEgzdi0ybDMtN2g5djEwem00LTEyaDR2MTJoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUaHVtYlVwQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwiLFwib3BhY2l0eVwiOlwiLjg3XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDhoLTYuMzFsLjk1LTQuNTcuMDMtLjMyYzAtLjQxLS4xNy0uNzktLjQ0LTEuMDZMMTQuMTcgMSA3LjU5IDcuNTlDNy4yMiA3Ljk1IDcgOC40NSA3IDl2MTBjMCAxLjEuOSAyIDIgMmg5Yy44MyAwIDEuNTQtLjUgMS44NC0xLjIybDMuMDItNy4wNWMuMDktLjIzLjE0LS40Ny4xNC0uNzN2LTJjMC0xLjEtLjktMi0yLTJ6bTAgNC0zIDdIOVY5bDQuMzQtNC4zNEwxMi4yMyAxMEgyMXYyek0xIDloNHYxMkgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGh1bmRlcnN0b3JtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuOTIgNy4wMkMxNy40NSA0LjE4IDE0Ljk3IDIgMTIgMiA5LjgyIDIgNy44MyAzLjE4IDYuNzggNS4wNiA0LjA5IDUuNDEgMiA3Ljc0IDIgMTAuNSAyIDEzLjUzIDQuNDcgMTYgNy41IDE2aDEwYzIuNDggMCA0LjUtMi4wMiA0LjUtNC41YTQuNSA0LjUgMCAwIDAtNC4wOC00LjQ4ek0xNy41IDE0aC0xMEM1LjU3IDE0IDQgMTIuNDMgNCAxMC41YTMuNTEgMy41MSAwIDAgMSAzLjA0LTMuNDZsLjk5LS4xMy40OS0uODdBMy45OTggMy45OTggMCAwIDEgMTIgNGMxLjk0IDAgMy42MyAxLjQ0IDMuOTUgMy4zNWwuMjUgMS41MiAxLjU0LjE0YzEuMjcuMTIgMi4yNiAxLjIxIDIuMjYgMi40OWEyLjUgMi41IDAgMCAxLTIuNSAyLjV6TTE0LjggMTdsLTIuOSAzLjMyIDIgMUwxMS41NSAyNGgyLjY1bDIuOS0zLjMyLTItMUwxNy40NSAxN3pNOC44IDE3bC0yLjkgMy4zMiAyIDFMNS41NSAyNEg4LjJsMi45LTMuMzItMi0xTDExLjQ1IDE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVG9ybmFkbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzIDNIMWwxMSAxOUwyMyAzem0tMy40NyAyLTEuNzQgM0g2LjIxTDQuNDcgNWgxNS4wNnptLTkuMjcgMTBoMy40OEwxMiAxOC4wMSAxMC4yNiAxNXptNC42NC0ySDkuMWwtMS43NC0zaDkuMjdsLTEuNzMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRyYW5zZ2VuZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgOGMxLjkzIDAgMy41IDEuNTcgMy41IDMuNVMxMy45MyAxNSAxMiAxNXMtMy41LTEuNTctMy41LTMuNVMxMC4wNyA4IDEyIDh6bTQuNTMuMzggMy45Ny0zLjk2VjdoMlYxaC02djJoMi41OGwtMy45NyAzLjk3QzE0LjIzIDYuMzYgMTMuMTYgNiAxMiA2cy0yLjIzLjM2LTMuMTEuOTdsLS42NS0uNjUgMS40MS0xLjQxLTEuNDEtMS40Mkw2LjgyIDQuOSA0LjkyIDNINy41VjFoLTZ2NmgyVjQuNDJsMS45MSAxLjktMS40MiAxLjQyTDUuNCA5LjE1bDEuNDEtMS40MS42NS42NWMtLjYuODgtLjk2IDEuOTUtLjk2IDMuMTFhNS41IDUuNSAwIDAgMCA0LjUgNS40MVYxOUg5djJoMnYyaDJ2LTJoMnYtMmgtMnYtMi4wOWE1LjUgNS41IDAgMCAwIDMuNTMtOC41M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRyYXZlbEV4cGxvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS4zIDE2LjljLjQtLjcuNy0xLjUuNy0yLjQgMC0yLjUtMi00LjUtNC41LTQuNVMxMSAxMiAxMSAxNC41czIgNC41IDQuNSA0LjVjLjkgMCAxLjctLjMgMi40LS43bDMuMiAzLjIgMS40LTEuNC0zLjItMy4yem0tMy44LjFjLTEuNCAwLTIuNS0xLjEtMi41LTIuNXMxLjEtMi41IDIuNS0yLjUgMi41IDEuMSAyLjUgMi41LTEuMSAyLjUtMi41IDIuNXpNMTIgMjB2MkM2LjQ4IDIyIDIgMTcuNTIgMiAxMlM2LjQ4IDIgMTIgMmM0Ljg0IDAgOC44NyAzLjQ0IDkuOCA4aC0yLjA3QTggOCAwIDAgMCAxNSA0LjU5VjVjMCAxLjEtLjkgMi0yIDJoLTJ2MmMwIC41NS0uNDUgMS0xIDFIOHYyaDJ2M0g5bC00Ljc5LTQuNzlDNC4wOCAxMC43OSA0IDExLjM4IDQgMTJjMCA0LjQxIDMuNTkgOCA4IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUc3VuYW1pIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNjcgMTcuNjNjLTMuOCAyLjgtNi4xMi40LTYuNjcgMC0uNjYuNDktMi45MiAyLjc2LTYuNjcgMEMzLjQzIDE5LjAzIDIuNjUgMTkgMiAxOXYyYzEuMTYgMCAyLjMtLjMyIDMuMzMtLjkzYTYuNTM1IDYuNTM1IDAgMCAwIDYuNjcgMCA2LjUzNSA2LjUzNSAwIDAgMCA2LjY3IDBjMS4wMy42MSAyLjE3LjkzIDMuMzMuOTN2LTJjLS42NiAwLTEuNS0uMDItMy4zMy0xLjM3ek0xOS4zMyAxMkgyMnYtMmgtMi42N0MxNy41IDEwIDE2IDguNSAxNiA2LjY3YzAtMS4wMi4zOC0xLjc0IDEuMDktMy4zNC0xLjM3LS4yMS0yLS4zMy0zLjA5LS4zM0M3LjM2IDMgMi4xNSA4LjAzIDIuMDEgMTQuNWwtLjAxIDJjMS4xNiAwIDIuMy0uMzIgMy4zMy0uOTNhNi41MzUgNi41MzUgMCAwIDAgNi42NyAwIDYuNTM1IDYuNTM1IDAgMCAwIDYuNjcgMGMxLjAzLjYxIDIuMTcuOTMgMy4zMy45M3YtMmMtLjY2IDAtMS41LS4wMi0zLjMzLTEuMzctMy44IDIuOC02LjEyLjQtNi42NyAwLS45LjY3LS41NC40MS0uOTEuNjMtLjctLjk0LTEuMDktMi4wNi0xLjA5LTMuMjYgMC0yLjU4IDEuNzctNC43NCA0LjIxLTUuMzMtLjEzLjUxLS4yMSAxLjAyLS4yMSAxLjVDMTQgOS42MSAxNi4zOSAxMiAxOS4zMyAxMnptLTE0IDEuMTNjLS42Mi40Ni0uODIuNjMtMS4zLjg3LjI3LTMuNTMgMi4zOC02LjQ4IDUuNDMtNy45NkE3LjQ5IDcuNDkgMCAwIDAgOCAxMC41YzAgMS40Mi40IDIuNzcgMS4xMyAzLjk1LS43Mi4wNy0xLjc5LjE1LTMuOC0xLjMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmFjY2luZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA1LjVIOFY0aC41Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xaC0zYy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxSDZ2MS41SDNjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDFWMTVjMCAxLjEuOSAyIDIgMmgxdjRsMiAxLjVWMTdoMWMxLjEgMCAyLS45IDItMlY3LjVjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTF6TTkgOUg3LjI1Yy0uNDEgMC0uNzUuMzQtLjc1Ljc1cy4zNC43NS43NS43NUg5VjEySDcuMjVjLS40MSAwLS43NS4zNC0uNzUuNzVzLjM0Ljc1Ljc1Ljc1SDlWMTVINVY3LjVoNFY5em0xMC41IDEuNVYxMGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMWgtNWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMXYuNWMwIC41LTEuNSAxLjE2LTEuNSAzVjIwYzAgMS4xLjkgMiAyIDJoNGMxLjEgMCAyLS45IDItMnYtNi41YzAtMS44NC0xLjUtMi41LTEuNS0zem0tMyAwVjEwaDF2LjVjMCAxLjYgMS41IDIgMS41IDN2LjVoLTR2LS41YzAtMSAxLjUtMS40IDEuNS0zem0yLjUgNVYxN2gtNHYtMS41aDR6TTE1IDIwdi0xLjVoNFYyMGgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZvbGNhbm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA4aC03bC0yIDVINmwtNCA5aDIwTDE4IDh6TTcuMyAxNWgzLjA1bC41LTEuMjYgMS41LTMuNzRoNC4xNGwyLjg2IDEwSDUuMDhsMi4yMi01ek0xMyAxaDJ2NGgtMnpNMTYuMTIxIDUuNDY4IDE4Ljk1IDIuNjRsMS40MTQgMS40MTQtMi44MjkgMi44Mjh6TTcuNjQgNC4wNWwxLjQxNC0xLjQxNCAyLjgyOCAyLjgyOS0xLjQxNCAxLjQxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdhbGxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDRINkMzLjc5IDQgMiA1Ljc5IDIgOHY4YzAgMi4yMSAxLjc5IDQgNCA0aDEyYzIuMjEgMCA0LTEuNzkgNC00VjhjMC0yLjIxLTEuNzktNC00LTR6bS0xLjg2IDkuNzdjLS4yNC4yLS41Ny4yOC0uODguMkw0LjE1IDExLjI1QzQuNDUgMTAuNTIgNS4xNiAxMCA2IDEwaDEyYy42NyAwIDEuMjYuMzQgMS42My44NGwtMy40OSAyLjkzek02IDZoMTJjMS4xIDAgMiAuOSAyIDJ2LjU1Yy0uNTktLjM0LTEuMjctLjU1LTItLjU1SDZjLS43MyAwLTEuNDEuMjEtMiAuNTVWOGMwLTEuMS45LTIgMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2F0ZXJEcm9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmMtNS4zMyA0LjU1LTggOC40OC04IDExLjggMCA0Ljk4IDMuOCA4LjIgOCA4LjJzOC0zLjIyIDgtOC4yYzAtMy4zMi0yLjY3LTcuMjUtOC0xMS44em0wIDE4Yy0zLjM1IDAtNi0yLjU3LTYtNi4yIDAtMi4zNCAxLjk1LTUuNDQgNi05LjE0IDQuMDUgMy43IDYgNi43OSA2IDkuMTQgMCAzLjYzLTIuNjUgNi4yLTYgNi4yem0tNC4xNy02Yy4zNyAwIC42Ny4yNi43NC42Mi40MSAyLjIyIDIuMjggMi45OCAzLjY0IDIuODcuNDMtLjAyLjc5LjMyLjc5Ljc1IDAgLjQtLjMyLjczLS43Mi43NS0yLjEzLjEzLTQuNjItMS4wOS01LjE5LTQuMTJhLjc1Ljc1IDAgMCAxIC43NC0uODd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXYXZpbmdIYW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4wMyA0Ljk1IDMuNDkgOC40OWMtMy4zMiAzLjMyLTMuMzIgOC43IDAgMTIuMDJzOC43IDMuMzIgMTIuMDIgMGw2LjAxLTYuMDFhMi41MTcgMi41MTcgMCAwIDAtLjM5LTMuODZsLjM5LS4zOWMuOTctLjk3Ljk3LTIuNTYgMC0zLjU0LS4xNi0uMTYtLjM1LS4zLS41NC0uNDFhMi40OTcgMi40OTcgMCAwIDAtMy43Mi0zLjA1IDIuNTE3IDIuNTE3IDAgMCAwLTMuODgtLjQybC0yLjUxIDIuNTFhMi40OTMgMi40OTMgMCAwIDAtMy44NC0uMzl6bTEuNDEgMS40MmMuMi0uMi41MS0uMi43MSAwIC4yLjIuMi41MSAwIC43MWwtMy4xOCAzLjE4YTMgMyAwIDAgMSAwIDQuMjRsMS40MSAxLjQxYTUuMDA0IDUuMDA0IDAgMCAwIDEuMTItNS4zNmw2LjMtNi4zYy4yLS4yLjUxLS4yLjcxIDBzLjIuNTEgMCAuNzFsLTQuNiA0LjYgMS40MSAxLjQxIDYuMDEtNi4wMWMuMi0uMi41MS0uMi43MSAwIC4yLjIuMi41MSAwIC43MWwtNi4wMSA2LjAxIDEuNDEgMS40MSA0Ljk1LTQuOTVjLjItLjIuNTEtLjIuNzEgMCAuMi4yLjIuNTEgMCAuNzFsLTUuNjYgNS42NiAxLjQxIDEuNDEgMy41NC0zLjU0Yy4yLS4yLjUxLS4yLjcxIDAgLjIuMi4yLjUxIDAgLjcxbC02IDYuMDFjLTIuNTQgMi41NC02LjY1IDIuNTQtOS4xOSAwcy0yLjU0LTYuNjUgMC05LjE5bDMuNTMtMy41NHpNMjMgMTdjMCAzLjMxLTIuNjkgNi02IDZ2LTEuNWMyLjQ4IDAgNC41LTIuMDIgNC41LTQuNUgyM3pNMSA3YzAtMy4zMSAyLjY5LTYgNi02djEuNUM0LjUyIDIuNSAyLjUgNC41MiAyLjUgN0gxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2hhdHNhcHAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS4wNSA0LjkxQTkuODE2IDkuODE2IDAgMCAwIDEyLjA0IDJjLTUuNDYgMC05LjkxIDQuNDUtOS45MSA5LjkxIDAgMS43NS40NiAzLjQ1IDEuMzIgNC45NUwyLjA1IDIybDUuMjUtMS4zOGMxLjQ1Ljc5IDMuMDggMS4yMSA0Ljc0IDEuMjEgNS40NiAwIDkuOTEtNC40NSA5LjkxLTkuOTEgMC0yLjY1LTEuMDMtNS4xNC0yLjktNy4wMXptLTcuMDEgMTUuMjRjLTEuNDggMC0yLjkzLS40LTQuMi0xLjE1bC0uMy0uMTgtMy4xMi44Mi44My0zLjA0LS4yLS4zMWE4LjI2NCA4LjI2NCAwIDAgMS0xLjI2LTQuMzhjMC00LjU0IDMuNy04LjI0IDguMjQtOC4yNCAyLjIgMCA0LjI3Ljg2IDUuODIgMi40MmE4LjE4MyA4LjE4MyAwIDAgMSAyLjQxIDUuODNjLjAyIDQuNTQtMy42OCA4LjIzLTguMjIgOC4yM3ptNC41Mi02LjE2Yy0uMjUtLjEyLTEuNDctLjcyLTEuNjktLjgxLS4yMy0uMDgtLjM5LS4xMi0uNTYuMTItLjE3LjI1LS42NC44MS0uNzguOTctLjE0LjE3LS4yOS4xOS0uNTQuMDYtLjI1LS4xMi0xLjA1LS4zOS0xLjk5LTEuMjMtLjc0LS42Ni0xLjIzLTEuNDctMS4zOC0xLjcyLS4xNC0uMjUtLjAyLS4zOC4xMS0uNTEuMTEtLjExLjI1LS4yOS4zNy0uNDNzLjE3LS4yNS4yNS0uNDFjLjA4LS4xNy4wNC0uMzEtLjAyLS40M3MtLjU2LTEuMzQtLjc2LTEuODRjLS4yLS40OC0uNDEtLjQyLS41Ni0uNDNoLS40OGMtLjE3IDAtLjQzLjA2LS42Ni4zMS0uMjIuMjUtLjg2Ljg1LS44NiAyLjA3IDAgMS4yMi44OSAyLjQgMS4wMSAyLjU2LjEyLjE3IDEuNzUgMi42NyA0LjIzIDMuNzQuNTkuMjYgMS4wNS40MSAxLjQxLjUyLjU5LjE5IDEuMTMuMTYgMS41Ni4xLjQ4LS4wNyAxLjQ3LS42IDEuNjctMS4xOC4yMS0uNTguMjEtMS4wNy4xNC0xLjE4cy0uMjItLjE2LS40Ny0uMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXaGF0c2hvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNTcgMTMuMTZjLTEuMzYuMjgtMi4xNyAxLjE2LTIuMTcgMi40MSAwIDEuMzQgMS4xMSAyLjQyIDIuNDkgMi40MiAyLjA1IDAgMy43MS0xLjY2IDMuNzEtMy43MSAwLTEuMDctLjE1LTIuMTItLjQ2LTMuMTItLjc5IDEuMDctMi4yIDEuNzItMy41NyAyek0xMy41LjY3cy43NCAyLjY1Ljc0IDQuOGMwIDIuMDYtMS4zNSAzLjczLTMuNDEgMy43My0yLjA3IDAtMy42My0xLjY3LTMuNjMtMy43M2wuMDMtLjM2QzUuMjEgNy41MSA0IDEwLjYyIDQgMTRjMCA0LjQyIDMuNTggOCA4IDhzOC0zLjU4IDgtOEMyMCA4LjYxIDE3LjQxIDMuOCAxMy41LjY3ek0xMiAyMGMtMy4zMSAwLTYtMi42OS02LTYgMC0xLjUzLjMtMy4wNC44Ni00LjQzYTUuNTgyIDUuNTgyIDAgMCAwIDMuOTcgMS42M2MyLjY2IDAgNC43NS0xLjgzIDUuMjgtNC40M0ExNC43NyAxNC43NyAwIDAgMSAxOCAxNGMwIDMuMzEtMi42OSA2LTYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdvbWFuMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjk0IDguMzFDMTMuNjIgNy41MiAxMi44NSA3IDEyIDdzLTEuNjIuNTItMS45NCAxLjMxTDcgMTZoMy41djZoM3YtNkgxN2wtMy4wNi03LjY5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiNFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV29tYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy45NCA4LjMxQzEzLjYyIDcuNTIgMTIuODUgNyAxMiA3cy0xLjYyLjUyLTEuOTQgMS4zMUw3IDE2aDN2Nmg0di02aDNsLTMuMDYtNy42OXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjRcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdvcmtzcGFjZVByZW1pdW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjY4IDEzLjY5IDEyIDExLjkzbDIuMzEgMS43Ni0uODgtMi44NUwxNS43NSA5aC0yLjg0TDEyIDYuMTkgMTEuMDkgOUg4LjI1bDIuMzEgMS44NC0uODggMi44NXpNMjAgMTBjMC00LjQyLTMuNTgtOC04LThzLTggMy41OC04IDhjMCAyLjAzLjc2IDMuODcgMiA1LjI4VjIzbDYtMiA2IDJ2LTcuNzJBNy45NiA3Ljk2IDAgMCAwIDIwIDEwem0tOC02YzMuMzEgMCA2IDIuNjkgNiA2cy0yLjY5IDYtNiA2LTYtMi42OS02LTYgMi42OS02IDYtNnptMCAxNS00IDEuMDJ2LTMuMWMxLjE4LjY4IDIuNTQgMS4wOCA0IDEuMDhzMi44Mi0uNCA0LTEuMDh2My4xTDEyIDE5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2hlY2tCb3hPdXRsaW5lQmxhbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDV2MTRINVY1aDE0bTAtMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDaGVja0JveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0ek0xNy45OSA5bC0xLjQxLTEuNDItNi41OSA2LjU5LTIuNTgtMi41Ny0xLjQyIDEuNDEgNCAzLjk5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW5kZXRlcm1pbmF0ZUNoZWNrQm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0ek03IDExaDEwdjJIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJhZGlvQnV0dG9uQ2hlY2tlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmFkaW9CdXR0b25VbmNoZWNrZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3RhckJvcmRlclB1cnBsZTUwMCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgOS4yNC03LjE5LS42MkwxMiAyIDkuMTkgOC42MyAyIDkuMjRsNS40NiA0LjczTDUuODIgMjEgMTIgMTcuMjcgMTguMTggMjFsLTEuNjMtNy4wM0wyMiA5LjI0ek0xMiAxNS40bC0zLjc2IDIuMjcgMS00LjI4LTMuMzItMi44OCA0LjM4LS4zOEwxMiA2LjFsMS43MSA0LjA0IDQuMzguMzgtMy4zMiAyLjg4IDEgNC4yOEwxMiAxNS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3RhckJvcmRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgOS4yNC03LjE5LS42MkwxMiAyIDkuMTkgOC42MyAyIDkuMjRsNS40NiA0LjczTDUuODIgMjEgMTIgMTcuMjcgMTguMTggMjFsLTEuNjMtNy4wM0wyMiA5LjI0ek0xMiAxNS40bC0zLjc2IDIuMjcgMS00LjI4LTMuMzItMi44OCA0LjM4LS4zOEwxMiA2LjFsMS43MSA0LjA0IDQuMzguMzgtMy4zMiAyLjg4IDEgNC4yOEwxMiAxNS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3RhckhhbGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMiA5LjI0LTcuMTktLjYyTDEyIDIgOS4xOSA4LjYzIDIgOS4yNGw1LjQ2IDQuNzNMNS44MiAyMSAxMiAxNy4yNyAxOC4xOCAyMWwtMS42My03LjAzTDIyIDkuMjR6TTEyIDE1LjRWNi4xbDEuNzEgNC4wNCA0LjM4LjM4LTMuMzIgMi44OCAxIDQuMjhMMTIgMTUuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0YXJPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMiA5LjI0LTcuMTktLjYyTDEyIDIgOS4xOSA4LjYzIDIgOS4yNGw1LjQ2IDQuNzNMNS44MiAyMSAxMiAxNy4yNyAxOC4xOCAyMWwtMS42My03LjAzTDIyIDkuMjR6TTEyIDE1LjRsLTMuNzYgMi4yNyAxLTQuMjgtMy4zMi0yLjg4IDQuMzgtLjM4TDEyIDYuMWwxLjcxIDQuMDQgNC4zOC4zOC0zLjMyIDIuODggMSA0LjI4TDEyIDE1LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdGFyUHVycGxlNTAwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNy4yNyAxOC4xOCAyMWwtMS42NC03LjAzTDIyIDkuMjRsLTcuMTktLjYxTDEyIDIgOS4xOSA4LjYzIDIgOS4yNGw1LjQ2IDQuNzNMNS44MiAyMSAxMiAxNy4yN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0YXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119XX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE3LjI3IDE4LjE4IDIxbC0xLjY0LTcuMDNMMjIgOS4yNGwtNy4xOS0uNjFMMTIgMiA5LjE5IDguNjMgMiA5LjI0bDUuNDYgNC43M0w1LjgyIDIxIDEyIDE3LjI3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVG9nZ2xlT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA2SDdjLTMuMzEgMC02IDIuNjktNiA2czIuNjkgNiA2IDZoMTBjMy4zMSAwIDYtMi42OSA2LTZzLTIuNjktNi02LTZ6bTAgMTBIN2MtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNGgxMGMyLjIxIDAgNCAxLjc5IDQgNHMtMS43OSA0LTQgNHpNNyA5Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRvZ2dsZU9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNkg3Yy0zLjMxIDAtNiAyLjY5LTYgNnMyLjY5IDYgNiA2aDEwYzMuMzEgMCA2LTIuNjkgNi02cy0yLjY5LTYtNi02em0wIDEwSDdjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTRoMTBjMi4yMSAwIDQgMS43OSA0IDRzLTEuNzkgNC00IDR6bTAtN2MtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeHMsIGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTWRDbG9zZSwgTWRIb21lIH0gZnJvbSAncmVhY3QtaWNvbnMvbWQnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyB1c2VEcmF3ZXJDb250ZXh0IH0gZnJvbSAnLi9EcmF3ZXJDb250ZXh0Lm1qcyc7XG5cbmNvbnN0IERyYXdlckhlYWRlciA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGNsb3NlSWNvbjogQ2xvc2VJY29uID0gTWRDbG9zZSxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIHRpdGxlLFxuICB0aXRsZUljb246IFRpdGxlSWNvbiA9IE1kSG9tZSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgaWQgPSB1c2VJZCgpO1xuICBjb25zdCB7IGlkOiBtYWluRGl2SWQsIGlzT3Blbiwgb25DbG9zZSwgdGhlbWU6IHJvb3RUaGVtZSB9ID0gdXNlRHJhd2VyQ29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChyb290VGhlbWUuaGVhZGVyLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZSwgLi4ucHJvcHMsIGNoaWxkcmVuOiBbXG4gICAgLyogQF9fUFVSRV9fICovIGpzeHMoXCJoNVwiLCB7IGNsYXNzTmFtZTogdGhlbWUuaW5uZXIudGl0bGVUZXh0LCBpZDogbWFpbkRpdklkLCBjaGlsZHJlbjogW1xuICAgICAgLyogQF9fUFVSRV9fICovIGpzeChUaXRsZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBjbGFzc05hbWU6IHRoZW1lLmlubmVyLnRpdGxlSWNvbiB9KSxcbiAgICAgIHRpdGxlXG4gICAgXSB9KSxcbiAgICAvKiBAX19QVVJFX18gKi8ganN4cyhcImJ1dHRvblwiLCB7IG9uQ2xpY2s6IG9uQ2xvc2UsIFwiZGF0YS10ZXN0aWRcIjogXCJjbG9zZS1kcmF3ZXJcIiwgY2xhc3NOYW1lOiB0aGVtZS5pbm5lci5jbG9zZUJ1dHRvbiwgY2hpbGRyZW46IFtcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goQ2xvc2VJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgY2xhc3NOYW1lOiB0aGVtZS5pbm5lci5jbG9zZUljb24gfSksXG4gICAgICAvKiBAX19QVVJFX18gKi8ganN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogXCJzci1vbmx5XCIsIGNoaWxkcmVuOiBcIkNsb3NlIG1lbnVcIiB9KVxuICAgIF0gfSksXG4gICAgLyogQF9fUFVSRV9fICovIGpzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IHRoZW1lLmNvbGxhcHNlZFtpc09wZW4gPyBcIm9uXCIgOiBcIm9mZlwiXSwgaWQ6IGBmbG93Yml0ZS1kcmF3ZXItaGVhZGVyLSR7aWR9YCwgY2hpbGRyZW4gfSlcbiAgXSB9KTtcbn07XG5EcmF3ZXJIZWFkZXIuZGlzcGxheU5hbWUgPSBcIkRyYXdlci5IZWFkZXJcIjtcblxuZXhwb3J0IHsgRHJhd2VySGVhZGVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1EcmF3ZXJIZWFkZXIubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlRHJhd2VyQ29udGV4dCB9IGZyb20gJy4vRHJhd2VyQ29udGV4dC5tanMnO1xuXG5jb25zdCBEcmF3ZXJJdGVtcyA9ICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IHsgdGhlbWU6IHJvb3RUaGVtZSB9ID0gdXNlRHJhd2VyQ29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChyb290VGhlbWUuaXRlbXMsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtZHJhd2VyLWl0ZW1zXCIsIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgY2hpbGRyZW4gfSk7XG59O1xuRHJhd2VySXRlbXMuZGlzcGxheU5hbWUgPSBcIkRyYXdlci5JdGVtc1wiO1xuXG5leHBvcnQgeyBEcmF3ZXJJdGVtcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RHJhd2VySXRlbXMubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4cywganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdXNlSWQsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcbmltcG9ydCB7IERyYXdlckNvbnRleHQgfSBmcm9tICcuL0RyYXdlckNvbnRleHQubWpzJztcbmltcG9ydCB7IERyYXdlckhlYWRlciB9IGZyb20gJy4vRHJhd2VySGVhZGVyLm1qcyc7XG5pbXBvcnQgeyBEcmF3ZXJJdGVtcyB9IGZyb20gJy4vRHJhd2VySXRlbXMubWpzJztcblxuY29uc3QgRHJhd2VyQ29tcG9uZW50ID0gKHtcbiAgYmFja2Ryb3AgPSB0cnVlLFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBlZGdlID0gZmFsc2UsXG4gIHBvc2l0aW9uID0gXCJsZWZ0XCIsXG4gIG9uQ2xvc2UsXG4gIG9wZW46IGlzT3BlbiA9IGZhbHNlLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgaWQgPSB1c2VJZCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmRyYXdlciwgY3VzdG9tVGhlbWUpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUVzY2FwZUtleSA9IChldmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFc2NhcGVcIiAmJiBpc09wZW4gJiYgb25DbG9zZSkge1xuICAgICAgICBvbkNsb3NlKCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBoYW5kbGVFc2NhcGVLZXkpO1xuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBoYW5kbGVFc2NhcGVLZXkpO1xuICB9LCBbb25DbG9zZSwgaXNPcGVuXSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhEcmF3ZXJDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IHRoZW1lLCBvbkNsb3NlLCBpc09wZW4sIGlkIH0sIGNoaWxkcmVuOiBbXG4gICAgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFwiZGl2XCIsXG4gICAgICB7XG4gICAgICAgIFwiYXJpYS1tb2RhbFwiOiB0cnVlLFxuICAgICAgICBcImFyaWEtZGVzY3JpYmVkYnlcIjogYGRyYXdlci1kaWFsb2ctJHtpZH1gLFxuICAgICAgICByb2xlOiBcImRpYWxvZ1wiLFxuICAgICAgICB0YWJJbmRleDogLTEsXG4gICAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1kcmF3ZXJcIixcbiAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKFxuICAgICAgICAgIHRoZW1lLnJvb3QuYmFzZSxcbiAgICAgICAgICB0aGVtZS5yb290LnBvc2l0aW9uW3Bvc2l0aW9uXVtpc09wZW4gPyBcIm9uXCIgOiBcIm9mZlwiXSxcbiAgICAgICAgICBlZGdlICYmICFpc09wZW4gJiYgdGhlbWUucm9vdC5lZGdlLFxuICAgICAgICAgIGNsYXNzTmFtZVxuICAgICAgICApLFxuICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgY2hpbGRyZW5cbiAgICAgIH1cbiAgICApLFxuICAgIGlzT3BlbiAmJiBiYWNrZHJvcCAmJiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgb25DbGljazogKCkgPT4gb25DbG9zZSgpLCBjbGFzc05hbWU6IHRoZW1lLnJvb3QuYmFja2Ryb3AgfSlcbiAgXSB9KTtcbn07XG5EcmF3ZXJDb21wb25lbnQuZGlzcGxheU5hbWUgPSBcIkRyYXdlclwiO1xuY29uc3QgRHJhd2VyID0gT2JqZWN0LmFzc2lnbihEcmF3ZXJDb21wb25lbnQsIHtcbiAgSGVhZGVyOiBEcmF3ZXJIZWFkZXIsXG4gIEl0ZW1zOiBEcmF3ZXJJdGVtc1xufSk7XG5cbmV4cG9ydCB7IERyYXdlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RHJhd2VyLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IERyb3Bkb3duQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQodm9pZCAwKTtcbmZ1bmN0aW9uIHVzZURyb3Bkb3duQ29udGV4dCgpIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoRHJvcGRvd25Db250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwidXNlRHJvcGRvd25Db250ZXh0IHNob3VsZCBiZSB1c2VkIHdpdGhpbiB0aGUgRHJvcGRvd25Db250ZXh0IHByb3ZpZGVyIVwiKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn1cblxuZXhwb3J0IHsgRHJvcGRvd25Db250ZXh0LCB1c2VEcm9wZG93bkNvbnRleHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURyb3Bkb3duQ29udGV4dC5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgdXNlRHJvcGRvd25Db250ZXh0IH0gZnJvbSAnLi9Ecm9wZG93bkNvbnRleHQubWpzJztcblxuY29uc3QgRHJvcGRvd25EaXZpZGVyID0gKHsgY2xhc3NOYW1lLCB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgLi4ucHJvcHMgfSkgPT4ge1xuICBjb25zdCB7IHRoZW1lOiByb290VGhlbWUgfSA9IHVzZURyb3Bkb3duQ29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IGN1c3RvbVRoZW1lLmRpdmlkZXIgPz8gcm9vdFRoZW1lLmZsb2F0aW5nLmRpdmlkZXI7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLCBjbGFzc05hbWUpLCAuLi5wcm9wcyB9KTtcbn07XG5cbmV4cG9ydCB7IERyb3Bkb3duRGl2aWRlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RHJvcGRvd25EaXZpZGVyLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeHMsIEZyYWdtZW50LCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgdXNlRHJvcGRvd25Db250ZXh0IH0gZnJvbSAnLi9Ecm9wZG93bkNvbnRleHQubWpzJztcbmltcG9ydCB7IERyb3Bkb3duRGl2aWRlciB9IGZyb20gJy4vRHJvcGRvd25EaXZpZGVyLm1qcyc7XG5cbmNvbnN0IERyb3Bkb3duSGVhZGVyID0gKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3QgeyB0aGVtZTogcm9vdFRoZW1lIH0gPSB1c2VEcm9wZG93bkNvbnRleHQoKTtcbiAgY29uc3QgdGhlbWUgPSBjdXN0b21UaGVtZS5oZWFkZXIgPz8gcm9vdFRoZW1lLmZsb2F0aW5nLmhlYWRlcjtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKEZyYWdtZW50LCB7IGNoaWxkcmVuOiBbXG4gICAgLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZSwgY2xhc3NOYW1lKSwgLi4ucHJvcHMsIGNoaWxkcmVuIH0pLFxuICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goRHJvcGRvd25EaXZpZGVyLCB7fSlcbiAgXSB9KTtcbn07XG5cbmV4cG9ydCB7IERyb3Bkb3duSGVhZGVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Ecm9wZG93bkhlYWRlci5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3gsIGpzeHMgfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB1c2VMaXN0SXRlbSwgdXNlTWVyZ2VSZWZzIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBCdXR0b25CYXNlIH0gZnJvbSAnLi4vQnV0dG9uL0J1dHRvbkJhc2UubWpzJztcbmltcG9ydCB7IHVzZURyb3Bkb3duQ29udGV4dCB9IGZyb20gJy4vRHJvcGRvd25Db250ZXh0Lm1qcyc7XG5cbmNvbnN0IERyb3Bkb3duSXRlbSA9IGZvcndhcmRSZWYoXG4gICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGljb246IEljb24sIG9uQ2xpY2ssIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IHJlZjogbGlzdEl0ZW1SZWYsIGluZGV4IH0gPSB1c2VMaXN0SXRlbSh7IGxhYmVsOiB0eXBlb2YgY2hpbGRyZW4gPT09IFwic3RyaW5nXCIgPyBjaGlsZHJlbiA6IHZvaWQgMCB9KTtcbiAgICBjb25zdCByZWYgPSB1c2VNZXJnZVJlZnMoW2ZvcndhcmRlZFJlZiwgbGlzdEl0ZW1SZWZdKTtcbiAgICBjb25zdCB7IHRoZW1lOiByb290VGhlbWUsIGFjdGl2ZUluZGV4LCBkaXNtaXNzT25DbGljaywgZ2V0SXRlbVByb3BzLCBoYW5kbGVTZWxlY3QgfSA9IHVzZURyb3Bkb3duQ29udGV4dCgpO1xuICAgIGNvbnN0IGlzQWN0aXZlID0gYWN0aXZlSW5kZXggPT09IGluZGV4O1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKHJvb3RUaGVtZS5mbG9hdGluZy5pdGVtLCBjdXN0b21UaGVtZSk7XG4gICAgY29uc3QgdGhlaXJQcm9wcyA9IHByb3BzO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwibGlcIiwgeyByb2xlOiBcIm1lbnVpdGVtXCIsIGNsYXNzTmFtZTogdGhlbWUuY29udGFpbmVyLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoXG4gICAgICBCdXR0b25CYXNlLFxuICAgICAge1xuICAgICAgICByZWYsXG4gICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLFxuICAgICAgICAuLi50aGVpclByb3BzLFxuICAgICAgICAuLi5nZXRJdGVtUHJvcHMoe1xuICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgIG9uQ2xpY2s/LigpO1xuICAgICAgICAgICAgZGlzbWlzc09uQ2xpY2sgJiYgaGFuZGxlU2VsZWN0KG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIHRhYkluZGV4OiBpc0FjdGl2ZSA/IDAgOiAtMSxcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICBJY29uICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goSWNvbiwgeyBjbGFzc05hbWU6IHRoZW1lLmljb24gfSksXG4gICAgICAgICAgY2hpbGRyZW5cbiAgICAgICAgXVxuICAgICAgfVxuICAgICkgfSk7XG4gIH1cbik7XG5Ecm9wZG93bkl0ZW0uZGlzcGxheU5hbWUgPSBcIkRyb3Bkb3duSXRlbVwiO1xuXG5leHBvcnQgeyBEcm9wZG93bkl0ZW0gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURyb3Bkb3duSXRlbS5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3hzLCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB1c2VMaXN0TmF2aWdhdGlvbiwgdXNlVHlwZWFoZWFkLCBGbG9hdGluZ0ZvY3VzTWFuYWdlciwgRmxvYXRpbmdMaXN0IH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VSZWYsIHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VFZmZlY3QsIGNsb25lRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEhpT3V0bGluZUNoZXZyb25Eb3duLCBIaU91dGxpbmVDaGV2cm9uVXAsIEhpT3V0bGluZUNoZXZyb25SaWdodCwgSGlPdXRsaW5lQ2hldnJvbkxlZnQgfSBmcm9tICdyZWFjdC1pY29ucy9oaSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyB1c2VCYXNlRkxvYXRpbmcsIHVzZUZsb2F0aW5nSW50ZXJhY3Rpb25zIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlLWZsb2F0aW5nLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24vQnV0dG9uLm1qcyc7XG5pbXBvcnQgJy4uL0J1dHRvbi9CdXR0b25Hcm91cC5tanMnO1xuaW1wb3J0IHsgRHJvcGRvd25Db250ZXh0IH0gZnJvbSAnLi9Ecm9wZG93bkNvbnRleHQubWpzJztcbmltcG9ydCB7IERyb3Bkb3duRGl2aWRlciB9IGZyb20gJy4vRHJvcGRvd25EaXZpZGVyLm1qcyc7XG5pbXBvcnQgeyBEcm9wZG93bkhlYWRlciB9IGZyb20gJy4vRHJvcGRvd25IZWFkZXIubWpzJztcbmltcG9ydCB7IERyb3Bkb3duSXRlbSB9IGZyb20gJy4vRHJvcGRvd25JdGVtLm1qcyc7XG5cbmNvbnN0IGljb25zID0ge1xuICB0b3A6IEhpT3V0bGluZUNoZXZyb25VcCxcbiAgcmlnaHQ6IEhpT3V0bGluZUNoZXZyb25SaWdodCxcbiAgYm90dG9tOiBIaU91dGxpbmVDaGV2cm9uRG93bixcbiAgbGVmdDogSGlPdXRsaW5lQ2hldnJvbkxlZnRcbn07XG5jb25zdCBUcmlnZ2VyID0gKHtcbiAgcmVmcyxcbiAgY2hpbGRyZW4sXG4gIGlubGluZSxcbiAgdGhlbWUsXG4gIGRpc2FibGVkLFxuICBzZXRCdXR0b25XaWR0aCxcbiAgZ2V0UmVmZXJlbmNlUHJvcHMsXG4gIHJlbmRlclRyaWdnZXIsXG4gIC4uLmJ1dHRvblByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHJlZiA9IHJlZnMucmVmZXJlbmNlO1xuICBjb25zdCBhMTF5UHJvcHMgPSBnZXRSZWZlcmVuY2VQcm9wcygpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyZWYuY3VycmVudCkge1xuICAgICAgc2V0QnV0dG9uV2lkdGg/LihyZWYuY3VycmVudC5jbGllbnRXaWR0aCk7XG4gICAgfVxuICB9LCBbcmVmLCBzZXRCdXR0b25XaWR0aF0pO1xuICBpZiAocmVuZGVyVHJpZ2dlcikge1xuICAgIGNvbnN0IHRyaWdnZXJFbGVtZW50ID0gcmVuZGVyVHJpZ2dlcih0aGVtZSk7XG4gICAgcmV0dXJuIGNsb25lRWxlbWVudCh0cmlnZ2VyRWxlbWVudCwgeyByZWY6IHJlZnMuc2V0UmVmZXJlbmNlLCBkaXNhYmxlZCwgLi4uYTExeVByb3BzLCAuLi50cmlnZ2VyRWxlbWVudC5wcm9wcyB9KTtcbiAgfVxuICByZXR1cm4gaW5saW5lID8gLyogQF9fUFVSRV9fICovIGpzeChcImJ1dHRvblwiLCB7IHR5cGU6IFwiYnV0dG9uXCIsIHJlZjogcmVmcy5zZXRSZWZlcmVuY2UsIGNsYXNzTmFtZTogdGhlbWU/LmlubGluZVdyYXBwZXIsIGRpc2FibGVkLCAuLi5hMTF5UHJvcHMsIGNoaWxkcmVuIH0pIDogLyogQF9fUFVSRV9fICovIGpzeChCdXR0b24sIHsgLi4uYnV0dG9uUHJvcHMsIGRpc2FibGVkLCB0eXBlOiBcImJ1dHRvblwiLCByZWY6IHJlZnMuc2V0UmVmZXJlbmNlLCAuLi5hMTF5UHJvcHMsIGNoaWxkcmVuIH0pO1xufTtcbmNvbnN0IERyb3Bkb3duQ29tcG9uZW50ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgZGlzbWlzc09uQ2xpY2sgPSB0cnVlLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgZW5hYmxlVHlwZUFoZWFkID0gdHJ1ZSxcbiAgcmVuZGVyVHJpZ2dlcixcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbYWN0aXZlSW5kZXgsIHNldEFjdGl2ZUluZGV4XSA9IHVzZVN0YXRlKG51bGwpO1xuICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZShudWxsKTtcbiAgY29uc3QgW2J1dHRvbldpZHRoLCBzZXRCdXR0b25XaWR0aF0gPSB1c2VTdGF0ZSh2b2lkIDApO1xuICBjb25zdCBlbGVtZW50c1JlZiA9IHVzZVJlZihbXSk7XG4gIGNvbnN0IGxhYmVsc1JlZiA9IHVzZVJlZihbXSk7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuZHJvcGRvd24sIGN1c3RvbVRoZW1lKTtcbiAgY29uc3QgdGhlaXJQcm9wcyA9IHByb3BzO1xuICBjb25zdCBkYXRhVGVzdElkID0gcHJvcHNbXCJkYXRhLXRlc3RpZFwiXSB8fCBcImZsb3diaXRlLWRyb3Bkb3duLXRhcmdldFwiO1xuICBjb25zdCB7XG4gICAgcGxhY2VtZW50ID0gcHJvcHMuaW5saW5lID8gXCJib3R0b20tc3RhcnRcIiA6IFwiYm90dG9tXCIsXG4gICAgdHJpZ2dlciA9IFwiY2xpY2tcIixcbiAgICBsYWJlbCxcbiAgICBpbmxpbmUsXG4gICAgYXJyb3dJY29uID0gdHJ1ZSxcbiAgICAuLi5idXR0b25Qcm9wc1xuICB9ID0gdGhlaXJQcm9wcztcbiAgY29uc3QgaGFuZGxlU2VsZWN0ID0gdXNlQ2FsbGJhY2soKGluZGV4KSA9PiB7XG4gICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgc2V0T3BlbihmYWxzZSk7XG4gIH0sIFtdKTtcbiAgY29uc3QgaGFuZGxlVHlwZWFoZWFkTWF0Y2ggPSB1c2VDYWxsYmFjayhcbiAgICAoaW5kZXgpID0+IHtcbiAgICAgIGlmIChvcGVuKSB7XG4gICAgICAgIHNldEFjdGl2ZUluZGV4KGluZGV4KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGhhbmRsZVNlbGVjdChpbmRleCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbb3BlbiwgaGFuZGxlU2VsZWN0XVxuICApO1xuICBjb25zdCB7IGNvbnRleHQsIGZsb2F0aW5nU3R5bGVzLCByZWZzIH0gPSB1c2VCYXNlRkxvYXRpbmcoe1xuICAgIG9wZW4sXG4gICAgc2V0T3BlbixcbiAgICBwbGFjZW1lbnRcbiAgfSk7XG4gIGNvbnN0IGxpc3ROYXYgPSB1c2VMaXN0TmF2aWdhdGlvbihjb250ZXh0LCB7XG4gICAgbGlzdFJlZjogZWxlbWVudHNSZWYsXG4gICAgYWN0aXZlSW5kZXgsXG4gICAgc2VsZWN0ZWRJbmRleCxcbiAgICBvbk5hdmlnYXRlOiBzZXRBY3RpdmVJbmRleFxuICB9KTtcbiAgY29uc3QgdHlwZWFoZWFkID0gdXNlVHlwZWFoZWFkKGNvbnRleHQsIHtcbiAgICBsaXN0UmVmOiBsYWJlbHNSZWYsXG4gICAgYWN0aXZlSW5kZXgsXG4gICAgc2VsZWN0ZWRJbmRleCxcbiAgICBvbk1hdGNoOiBoYW5kbGVUeXBlYWhlYWRNYXRjaCxcbiAgICBlbmFibGVkOiBlbmFibGVUeXBlQWhlYWRcbiAgfSk7XG4gIGNvbnN0IHsgZ2V0UmVmZXJlbmNlUHJvcHMsIGdldEZsb2F0aW5nUHJvcHMsIGdldEl0ZW1Qcm9wcyB9ID0gdXNlRmxvYXRpbmdJbnRlcmFjdGlvbnMoe1xuICAgIGNvbnRleHQsXG4gICAgcm9sZTogXCJtZW51XCIsXG4gICAgdHJpZ2dlcixcbiAgICBpbnRlcmFjdGlvbnM6IFtsaXN0TmF2LCB0eXBlYWhlYWRdXG4gIH0pO1xuICBjb25zdCBJY29uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgW3BdID0gcGxhY2VtZW50LnNwbGl0KFwiLVwiKTtcbiAgICByZXR1cm4gaWNvbnNbcF0gPz8gSGlPdXRsaW5lQ2hldnJvbkRvd247XG4gIH0sIFtwbGFjZW1lbnRdKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKERyb3Bkb3duQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogeyB0aGVtZSwgYWN0aXZlSW5kZXgsIGRpc21pc3NPbkNsaWNrLCBnZXRJdGVtUHJvcHMsIGhhbmRsZVNlbGVjdCB9LCBjaGlsZHJlbjogW1xuICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFxuICAgICAgVHJpZ2dlcixcbiAgICAgIHtcbiAgICAgICAgLi4uYnV0dG9uUHJvcHMsXG4gICAgICAgIHJlZnMsXG4gICAgICAgIGlubGluZSxcbiAgICAgICAgdGhlbWUsXG4gICAgICAgIFwiZGF0YS10ZXN0aWRcIjogZGF0YVRlc3RJZCxcbiAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmZsb2F0aW5nLnRhcmdldCwgYnV0dG9uUHJvcHMuY2xhc3NOYW1lKSxcbiAgICAgICAgc2V0QnV0dG9uV2lkdGgsXG4gICAgICAgIGdldFJlZmVyZW5jZVByb3BzLFxuICAgICAgICByZW5kZXJUcmlnZ2VyLFxuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgIGFycm93SWNvbiAmJiAvKiBAX19QVVJFX18gKi8ganN4KEljb24sIHsgY2xhc3NOYW1lOiB0aGVtZS5hcnJvd0ljb24gfSlcbiAgICAgICAgXVxuICAgICAgfVxuICAgICksXG4gICAgb3BlbiAmJiAvKiBAX19QVVJFX18gKi8ganN4KEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCB7IGNvbnRleHQsIG1vZGFsOiBmYWxzZSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBcImRpdlwiLFxuICAgICAge1xuICAgICAgICByZWY6IHJlZnMuc2V0RmxvYXRpbmcsXG4gICAgICAgIHN0eWxlOiB7IC4uLmZsb2F0aW5nU3R5bGVzLCBtaW5XaWR0aDogYnV0dG9uV2lkdGggfSxcbiAgICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLWRyb3Bkb3duXCIsXG4gICAgICAgIFwiYXJpYS1leHBhbmRlZFwiOiBvcGVuLFxuICAgICAgICAuLi5nZXRGbG9hdGluZ1Byb3BzKHtcbiAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgICAgICB0aGVtZS5mbG9hdGluZy5iYXNlLFxuICAgICAgICAgICAgdGhlbWUuZmxvYXRpbmcuYW5pbWF0aW9uLFxuICAgICAgICAgICAgXCJkdXJhdGlvbi0xMDBcIixcbiAgICAgICAgICAgICFvcGVuICYmIHRoZW1lLmZsb2F0aW5nLmhpZGRlbixcbiAgICAgICAgICAgIHRoZW1lLmZsb2F0aW5nLnN0eWxlLmF1dG8sXG4gICAgICAgICAgICBjbGFzc05hbWVcbiAgICAgICAgICApXG4gICAgICAgIH0pLFxuICAgICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChGbG9hdGluZ0xpc3QsIHsgZWxlbWVudHNSZWYsIGxhYmVsc1JlZiwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJ1bFwiLCB7IGNsYXNzTmFtZTogdGhlbWUuY29udGVudCwgdGFiSW5kZXg6IC0xLCBjaGlsZHJlbiB9KSB9KVxuICAgICAgfVxuICAgICkgfSlcbiAgXSB9KTtcbn07XG5Ecm9wZG93bkNvbXBvbmVudC5kaXNwbGF5TmFtZSA9IFwiRHJvcGRvd25cIjtcbkRyb3Bkb3duSGVhZGVyLmRpc3BsYXlOYW1lID0gXCJEcm9wZG93bi5IZWFkZXJcIjtcbkRyb3Bkb3duRGl2aWRlci5kaXNwbGF5TmFtZSA9IFwiRHJvcGRvd24uRGl2aWRlclwiO1xuY29uc3QgRHJvcGRvd24gPSBPYmplY3QuYXNzaWduKERyb3Bkb3duQ29tcG9uZW50LCB7XG4gIEl0ZW06IERyb3Bkb3duSXRlbSxcbiAgSGVhZGVyOiBEcm9wZG93bkhlYWRlcixcbiAgRGl2aWRlcjogRHJvcGRvd25EaXZpZGVyXG59KTtcblxuZXhwb3J0IHsgRHJvcGRvd24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURyb3Bkb3duLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeHMsIEZyYWdtZW50LCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgSGVscGVyVGV4dCB9IGZyb20gJy4uL0hlbHBlclRleHQvSGVscGVyVGV4dC5tanMnO1xuXG5jb25zdCBGaWxlSW5wdXQgPSBmb3J3YXJkUmVmKFxuICAoeyBjbGFzc05hbWUsIGNvbG9yID0gXCJncmF5XCIsIGhlbHBlclRleHQsIHNpemluZyA9IFwibWRcIiwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuZmlsZUlucHV0LCBjdXN0b21UaGVtZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKEZyYWdtZW50LCB7IGNoaWxkcmVuOiBbXG4gICAgICAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLnJvb3QuYmFzZSwgY2xhc3NOYW1lKSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHRoZW1lLmZpZWxkLmJhc2UsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICBcImlucHV0XCIsXG4gICAgICAgIHtcbiAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgICAgICB0aGVtZS5maWVsZC5pbnB1dC5iYXNlLFxuICAgICAgICAgICAgdGhlbWUuZmllbGQuaW5wdXQuY29sb3JzW2NvbG9yXSxcbiAgICAgICAgICAgIHRoZW1lLmZpZWxkLmlucHV0LnNpemVzW3NpemluZ11cbiAgICAgICAgICApLFxuICAgICAgICAgIC4uLnByb3BzLFxuICAgICAgICAgIHR5cGU6IFwiZmlsZVwiLFxuICAgICAgICAgIHJlZlxuICAgICAgICB9XG4gICAgICApIH0pIH0pLFxuICAgICAgaGVscGVyVGV4dCAmJiAvKiBAX19QVVJFX18gKi8ganN4KEhlbHBlclRleHQsIHsgY29sb3IsIGNoaWxkcmVuOiBoZWxwZXJUZXh0IH0pXG4gICAgXSB9KTtcbiAgfVxuKTtcbkZpbGVJbnB1dC5kaXNwbGF5TmFtZSA9IFwiRmlsZUlucHV0XCI7XG5cbmV4cG9ydCB7IEZpbGVJbnB1dCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RmlsZUlucHV0Lm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeHMsIGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IGZvcndhcmRSZWYsIHVzZUlkIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBGbG9hdGluZ0xhYmVsID0gZm9yd2FyZFJlZihcbiAgKHtcbiAgICBsYWJlbCxcbiAgICBoZWxwZXJUZXh0LFxuICAgIGNvbG9yID0gXCJkZWZhdWx0XCIsXG4gICAgc2l6aW5nID0gXCJtZFwiLFxuICAgIHZhcmlhbnQsXG4gICAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgICBjbGFzc05hbWUsXG4gICAgLi4ucHJvcHNcbiAgfSwgcmVmKSA9PiB7XG4gICAgY29uc3QgcmFuZG9tSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuZmxvYXRpbmdMYWJlbCwgY3VzdG9tVGhlbWUpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhcImRpdlwiLCB7IGNoaWxkcmVuOiBbXG4gICAgICAvKiBAX19QVVJFX18gKi8ganN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZShcInJlbGF0aXZlXCIsIHZhcmlhbnQgPT09IFwic3RhbmRhcmRcIiA/IFwiei0wXCIgOiBcIlwiKSwgY2hpbGRyZW46IFtcbiAgICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICBcImlucHV0XCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICBpZDogcHJvcHMuaWQgPyBwcm9wcy5pZCA6IFwiZmxvYXRpbmdMYWJlbFwiICsgcmFuZG9tSWQsXG4gICAgICAgICAgICBcImFyaWEtZGVzY3JpYmVkYnlcIjogXCJvdXRsaW5lZF9zdWNjZXNzX2hlbHBcIixcbiAgICAgICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5pbnB1dFtjb2xvcl1bdmFyaWFudF1bc2l6aW5nXSwgY2xhc3NOYW1lKSxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIiBcIixcbiAgICAgICAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG9hdGluZy1sYWJlbFwiLFxuICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgICAgIHJlZlxuICAgICAgICAgIH1cbiAgICAgICAgKSxcbiAgICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICBcImxhYmVsXCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaHRtbEZvcjogcHJvcHMuaWQgPyBwcm9wcy5pZCA6IFwiZmxvYXRpbmdMYWJlbFwiICsgcmFuZG9tSWQsXG4gICAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUubGFiZWxbY29sb3JdW3ZhcmlhbnRdW3NpemluZ10sIGNsYXNzTmFtZSksXG4gICAgICAgICAgICBjaGlsZHJlbjogbGFiZWxcbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgIF0gfSksXG4gICAgICAvKiBAX19QVVJFX18gKi8ganN4KFwicFwiLCB7IGlkOiBcIm91dGxpbmVkX2hlbHBlcl90ZXh0XCIgKyByYW5kb21JZCwgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmhlbHBlclRleHRbY29sb3JdLCBjbGFzc05hbWUpLCBjaGlsZHJlbjogaGVscGVyVGV4dCB9KVxuICAgIF0gfSk7XG4gIH1cbik7XG5GbG9hdGluZ0xhYmVsLmRpc3BsYXlOYW1lID0gXCJGbG9hdGluZ0xhYmVsXCI7XG5cbmV4cG9ydCB7IEZsb2F0aW5nTGFiZWwgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUZsb2F0aW5nTGFiZWwubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBGb290ZXJCcmFuZCA9ICh7XG4gIGFsdCxcbiAgY2xhc3NOYW1lLFxuICBjaGlsZHJlbixcbiAgaHJlZixcbiAgbmFtZSxcbiAgc3JjLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5mb290ZXIuYnJhbmQsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjaGlsZHJlbjogaHJlZiA/IC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwiYVwiLCB7IFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1mb290ZXItYnJhbmRcIiwgaHJlZiwgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksIC4uLnByb3BzLCBjaGlsZHJlbjogW1xuICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJpbWdcIiwgeyBhbHQsIHNyYywgY2xhc3NOYW1lOiB0aGVtZS5pbWcgfSksXG4gICAgLyogQF9fUFVSRV9fICovIGpzeChcInNwYW5cIiwgeyBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtZm9vdGVyLWJyYW5kLXNwYW5cIiwgY2xhc3NOYW1lOiB0aGVtZS5zcGFuLCBjaGlsZHJlbjogbmFtZSB9KSxcbiAgICBjaGlsZHJlblxuICBdIH0pIDogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBcImltZ1wiLFxuICAgIHtcbiAgICAgIGFsdCxcbiAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1mb290ZXItYnJhbmRcIixcbiAgICAgIHNyYyxcbiAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5pbWcsIGNsYXNzTmFtZSksXG4gICAgICAuLi5wcm9wc1xuICAgIH1cbiAgKSB9KTtcbn07XG5cbmV4cG9ydCB7IEZvb3RlckJyYW5kIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Gb290ZXJCcmFuZC5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3hzLCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5cbmNvbnN0IEZvb3RlckNvcHlyaWdodCA9ICh7XG4gIGJ5LFxuICBjbGFzc05hbWUsXG4gIGhyZWYsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICB5ZWFyLFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmZvb3Rlci5jb3B5cmlnaHQsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwiZGl2XCIsIHsgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLWZvb3Rlci1jb3B5cmlnaHRcIiwgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksIC4uLnByb3BzLCBjaGlsZHJlbjogW1xuICAgIFwiXFx4QTkgXCIsXG4gICAgeWVhcixcbiAgICBocmVmID8gLyogQF9fUFVSRV9fICovIGpzeChcImFcIiwgeyBocmVmLCBjbGFzc05hbWU6IHRoZW1lLmhyZWYsIGNoaWxkcmVuOiBieSB9KSA6IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJzcGFuXCIsIHsgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLWZvb3Rlci1jb3B5cmlnaHQtc3BhblwiLCBjbGFzc05hbWU6IHRoZW1lLnNwYW4sIGNoaWxkcmVuOiBieSB9KVxuICBdIH0pO1xufTtcblxuZXhwb3J0IHsgRm9vdGVyQ29weXJpZ2h0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Gb290ZXJDb3B5cmlnaHQubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBGb290ZXJEaXZpZGVyID0gKHsgY2xhc3NOYW1lLCB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgLi4ucHJvcHMgfSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmZvb3Rlci5kaXZpZGVyLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwiaHJcIiwgeyBcImRhdGEtdGVzdGlkXCI6IFwiZm9vdGVyLWRpdmlkZXJcIiwgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksIC4uLnByb3BzIH0pO1xufTtcblxuZXhwb3J0IHsgRm9vdGVyRGl2aWRlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Rm9vdGVyRGl2aWRlci5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5cbmNvbnN0IEZvb3Rlckljb24gPSAoe1xuICBhcmlhTGFiZWwsXG4gIGNsYXNzTmFtZSxcbiAgaHJlZixcbiAgaWNvbjogSWNvbixcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuZm9vdGVyLmljb24sIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjaGlsZHJlbjogaHJlZiA/IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgXCJhXCIsXG4gICAge1xuICAgICAgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCxcbiAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1mb290ZXItaWNvblwiLFxuICAgICAgaHJlZixcbiAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChJY29uLCB7IGNsYXNzTmFtZTogdGhlbWUuc2l6ZSB9KVxuICAgIH1cbiAgKSA6IC8qIEBfX1BVUkVfXyAqLyBqc3goSWNvbiwgeyBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtZm9vdGVyLWljb25cIiwgY2xhc3NOYW1lOiB0aGVtZS5zaXplLCAuLi5wcm9wcyB9KSB9KTtcbn07XG5cbmV4cG9ydCB7IEZvb3Rlckljb24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUZvb3Rlckljb24ubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBGb290ZXJMaW5rID0gKHtcbiAgYXM6IENvbXBvbmVudCA9IFwiYVwiLFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBocmVmLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5mb290ZXIuZ3JvdXBMaW5rLmxpbmssIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJsaVwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChDb21wb25lbnQsIHsgaHJlZiwgY2xhc3NOYW1lOiB0aGVtZS5ocmVmLCAuLi5wcm9wcywgY2hpbGRyZW4gfSkgfSk7XG59O1xuXG5leHBvcnQgeyBGb290ZXJMaW5rIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Gb290ZXJMaW5rLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcblxuY29uc3QgRm9vdGVyTGlua0dyb3VwID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgY29sID0gZmFsc2UsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmZvb3Rlci5ncm91cExpbmssIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJ1bFwiLCB7IFwiZGF0YS10ZXN0aWRcIjogXCJmb290ZXItZ3JvdXBMaW5rXCIsIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjb2wgJiYgdGhlbWUuY29sLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgY2hpbGRyZW4gfSk7XG59O1xuXG5leHBvcnQgeyBGb290ZXJMaW5rR3JvdXAgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUZvb3RlckxpbmtHcm91cC5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5cbmNvbnN0IEZvb3RlclRpdGxlID0gKHtcbiAgYXM6IENvbXBvbmVudCA9IFwiaDJcIixcbiAgY2xhc3NOYW1lLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgdGl0bGUsXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuZm9vdGVyLnRpdGxlLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KENvbXBvbmVudCwgeyBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtZm9vdGVyLXRpdGxlXCIsIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgY2hpbGRyZW46IHRpdGxlIH0pO1xufTtcblxuZXhwb3J0IHsgRm9vdGVyVGl0bGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUZvb3RlclRpdGxlLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcbmltcG9ydCB7IEZvb3RlckJyYW5kIH0gZnJvbSAnLi9Gb290ZXJCcmFuZC5tanMnO1xuaW1wb3J0IHsgRm9vdGVyQ29weXJpZ2h0IH0gZnJvbSAnLi9Gb290ZXJDb3B5cmlnaHQubWpzJztcbmltcG9ydCB7IEZvb3RlckRpdmlkZXIgfSBmcm9tICcuL0Zvb3RlckRpdmlkZXIubWpzJztcbmltcG9ydCB7IEZvb3Rlckljb24gfSBmcm9tICcuL0Zvb3Rlckljb24ubWpzJztcbmltcG9ydCB7IEZvb3RlckxpbmsgfSBmcm9tICcuL0Zvb3RlckxpbmsubWpzJztcbmltcG9ydCB7IEZvb3RlckxpbmtHcm91cCB9IGZyb20gJy4vRm9vdGVyTGlua0dyb3VwLm1qcyc7XG5pbXBvcnQgeyBGb290ZXJUaXRsZSB9IGZyb20gJy4vRm9vdGVyVGl0bGUubWpzJztcblxuY29uc3QgRm9vdGVyQ29tcG9uZW50ID0gKHtcbiAgYmdEYXJrID0gZmFsc2UsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGNvbnRhaW5lciA9IGZhbHNlLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5mb290ZXIsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgXCJmb290ZXJcIixcbiAgICB7XG4gICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtZm9vdGVyXCIsXG4gICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUucm9vdC5iYXNlLCBiZ0RhcmsgJiYgdGhlbWUucm9vdC5iZ0RhcmssIGNvbnRhaW5lciAmJiB0aGVtZS5yb290LmNvbnRhaW5lciwgY2xhc3NOYW1lKSxcbiAgICAgIC4uLnByb3BzLFxuICAgICAgY2hpbGRyZW5cbiAgICB9XG4gICk7XG59O1xuRm9vdGVyQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJGb290ZXJcIjtcbkZvb3RlckNvcHlyaWdodC5kaXNwbGF5TmFtZSA9IFwiRm9vdGVyLkNvcHlyaWdodFwiO1xuRm9vdGVyTGluay5kaXNwbGF5TmFtZSA9IFwiRm9vdGVyLkxpbmtcIjtcbkZvb3RlckJyYW5kLmRpc3BsYXlOYW1lID0gXCJGb290ZXIuQnJhbmRcIjtcbkZvb3RlckxpbmtHcm91cC5kaXNwbGF5TmFtZSA9IFwiRm9vdGVyLkxpbmtHcm91cFwiO1xuRm9vdGVySWNvbi5kaXNwbGF5TmFtZSA9IFwiRm9vdGVyLkljb25cIjtcbkZvb3RlclRpdGxlLmRpc3BsYXlOYW1lID0gXCJGb290ZXIuVGl0bGVcIjtcbkZvb3RlckRpdmlkZXIuZGlzcGxheU5hbWUgPSBcIkZvb3Rlci5EaXZpZGVyXCI7XG5jb25zdCBGb290ZXIgPSBPYmplY3QuYXNzaWduKEZvb3RlckNvbXBvbmVudCwge1xuICBDb3B5cmlnaHQ6IEZvb3RlckNvcHlyaWdodCxcbiAgTGluazogRm9vdGVyTGluayxcbiAgTGlua0dyb3VwOiBGb290ZXJMaW5rR3JvdXAsXG4gIEJyYW5kOiBGb290ZXJCcmFuZCxcbiAgSWNvbjogRm9vdGVySWNvbixcbiAgVGl0bGU6IEZvb3RlclRpdGxlLFxuICBEaXZpZGVyOiBGb290ZXJEaXZpZGVyXG59KTtcblxuZXhwb3J0IHsgRm9vdGVyLCBGb290ZXJDb21wb25lbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUZvb3Rlci5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3hzLCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRmFRdW90ZVJpZ2h0IH0gZnJvbSAncmVhY3QtaWNvbnMvZmE2JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcblxuY29uc3QgSFJJY29uID0gZm9yd2FyZFJlZihcbiAgKHsgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIGljb246IEljb24gPSBGYVF1b3RlUmlnaHQsIGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiB7XG4gICAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5oci5pY29uLCBjdXN0b21UaGVtZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5iYXNlLCBjaGlsZHJlbjogW1xuICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgXCJoclwiLFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmhyTGluZSwgY2xhc3NOYW1lKSxcbiAgICAgICAgICByb2xlOiBcInNlcGFyYXRvclwiLFxuICAgICAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1oci1pY29uXCIsXG4gICAgICAgICAgcmVmLFxuICAgICAgICAgIC4uLnByb3BzXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5pY29uLmJhc2UsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBjbGFzc05hbWU6IHRoZW1lLmljb24uaWNvbiB9KSB9KVxuICAgIF0gfSk7XG4gIH1cbik7XG5cbmV4cG9ydCB7IEhSSWNvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SFJJY29uLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5cbmNvbnN0IEhSU3F1YXJlID0gZm9yd2FyZFJlZihcbiAgKHsgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiB7XG4gICAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5oci5zcXVhcmUsIGN1c3RvbVRoZW1lKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFwiaHJcIixcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksXG4gICAgICAgIHJvbGU6IFwic2VwYXJhdG9yXCIsXG4gICAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1oci1zcXVhcmVcIixcbiAgICAgICAgcmVmLFxuICAgICAgICAuLi5wcm9wc1xuICAgICAgfVxuICAgICk7XG4gIH1cbik7XG5cbmV4cG9ydCB7IEhSU3F1YXJlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1IUlNxdWFyZS5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3hzLCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBIUlRleHQgPSBmb3J3YXJkUmVmKFxuICAoeyB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgdGV4dCwgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IHtcbiAgICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmhyLnRleHQsIGN1c3RvbVRoZW1lKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IHRoZW1lLmJhc2UsIGNoaWxkcmVuOiBbXG4gICAgICAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICBcImhyXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuaHJMaW5lLCBjbGFzc05hbWUpLFxuICAgICAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1oci10ZXh0XCIsXG4gICAgICAgICAgcm9sZTogXCJzZXBhcmF0b3JcIixcbiAgICAgICAgICByZWYsXG4gICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiB0aGVtZS50ZXh0LCBjaGlsZHJlbjogdGV4dCB9KVxuICAgIF0gfSk7XG4gIH1cbik7XG5cbmV4cG9ydCB7IEhSVGV4dCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SFJUZXh0Lm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5cbmNvbnN0IEhSVHJpbW1lZCA9IGZvcndhcmRSZWYoXG4gICh7IHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuaHIudHJpbW1lZCwgY3VzdG9tVGhlbWUpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgXCJoclwiLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSxcbiAgICAgICAgcm9sZTogXCJzZXBhcmF0b3JcIixcbiAgICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLWhyLXRyaW1tZWRcIixcbiAgICAgICAgcmVmLFxuICAgICAgICAuLi5wcm9wc1xuICAgICAgfVxuICAgICk7XG4gIH1cbik7XG5cbmV4cG9ydCB7IEhSVHJpbW1lZCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SFJUcmltbWVkLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBIUkljb24gfSBmcm9tICcuL0hSSWNvbi5tanMnO1xuaW1wb3J0IHsgSFJTcXVhcmUgfSBmcm9tICcuL0hSU3F1YXJlLm1qcyc7XG5pbXBvcnQgeyBIUlRleHQgfSBmcm9tICcuL0hSVGV4dC5tanMnO1xuaW1wb3J0IHsgSFJUcmltbWVkIH0gZnJvbSAnLi9IUlRyaW1tZWQubWpzJztcblxuY29uc3QgSFJDb21wb25lbnQgPSBmb3J3YXJkUmVmKCh7IHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmhyLnJvb3QsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJoclwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLCByb2xlOiBcInNlcGFyYXRvclwiLCBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtaHJcIiwgcmVmLCAuLi5wcm9wcyB9KTtcbn0pO1xuSFJDb21wb25lbnQuZGlzcGxheU5hbWUgPSBcIkhSXCI7XG5IUlRyaW1tZWQuZGlzcGxheU5hbWUgPSBcIkhSLlRyaW1tZWRcIjtcbkhSSWNvbi5kaXNwbGF5TmFtZSA9IFwiSFIuSWNvblwiO1xuSFJUZXh0LmRpc3BsYXlOYW1lID0gXCJIUi5UZXh0XCI7XG5IUlNxdWFyZS5kaXNwbGF5TmFtZSA9IFwiSFIuU3F1YXJlXCI7XG5jb25zdCBIUiA9IE9iamVjdC5hc3NpZ24oSFJDb21wb25lbnQsIHtcbiAgVHJpbW1lZDogSFJUcmltbWVkLFxuICBJY29uOiBIUkljb24sXG4gIFRleHQ6IEhSVGV4dCxcbiAgU3F1YXJlOiBIUlNxdWFyZVxufSk7XG5cbmV4cG9ydCB7IEhSIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1IUi5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3hzLCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5cbmNvbnN0IExpc3RJdGVtID0gKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgaWNvbjogSWNvbiwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5saXN0Lml0ZW0sIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwibGlcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUud2l0aEljb25bSWNvbiA/IFwib25cIiA6IFwib2ZmXCJdLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgY2hpbGRyZW46IFtcbiAgICBJY29uICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goSWNvbiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuaWNvbikgfSksXG4gICAgY2hpbGRyZW5cbiAgXSB9KTtcbn07XG5cbmV4cG9ydCB7IExpc3RJdGVtIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1MaXN0SXRlbS5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBMaXN0SXRlbSB9IGZyb20gJy4vTGlzdEl0ZW0ubWpzJztcblxuY29uc3QgTGlzdENvbXBvbmVudCA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIHVuc3R5bGVkLFxuICBuZXN0ZWQsXG4gIG9yZGVyZWQsXG4gIGhvcml6b250YWwsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmxpc3QsIGN1c3RvbVRoZW1lKTtcbiAgY29uc3QgQ29tcG9uZW50ID0gb3JkZXJlZCA/IFwib2xcIiA6IFwidWxcIjtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgQ29tcG9uZW50LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogdHdNZXJnZShcbiAgICAgICAgdGhlbWUucm9vdC5iYXNlLFxuICAgICAgICB0aGVtZS5yb290Lm9yZGVyZWRbb3JkZXJlZCA/IFwib25cIiA6IFwib2ZmXCJdLFxuICAgICAgICB1bnN0eWxlZCAmJiB0aGVtZS5yb290LnVuc3R5bGVkLFxuICAgICAgICBuZXN0ZWQgJiYgdGhlbWUucm9vdC5uZXN0ZWQsXG4gICAgICAgIGhvcml6b250YWwgJiYgdGhlbWUucm9vdC5ob3Jpem9udGFsLFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICksXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuXG4gICAgfVxuICApO1xufTtcbkxpc3RDb21wb25lbnQuZGlzcGxheU5hbWUgPSBcIkxpc3RcIjtcbkxpc3RJdGVtLmRpc3BsYXlOYW1lID0gXCJMaXN0Lkl0ZW1cIjtcbmNvbnN0IExpc3QgPSBPYmplY3QuYXNzaWduKExpc3RDb21wb25lbnQsIHsgSXRlbTogTGlzdEl0ZW0gfSk7XG5cbmV4cG9ydCB7IExpc3QgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUxpc3QubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBMaXN0R3JvdXBJdGVtID0gKHtcbiAgYWN0aXZlOiBpc0FjdGl2ZSxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgaHJlZixcbiAgaWNvbjogSWNvbixcbiAgb25DbGljayxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIGRpc2FibGVkLFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmxpc3RHcm91cC5pdGVtLCBjdXN0b21UaGVtZSk7XG4gIGNvbnN0IGlzTGluayA9IHR5cGVvZiBocmVmICE9PSBcInVuZGVmaW5lZFwiO1xuICBjb25zdCBDb21wb25lbnQgPSBpc0xpbmsgPyBcImFcIiA6IFwiYnV0dG9uXCI7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwibGlcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3hzKFxuICAgIENvbXBvbmVudCxcbiAgICB7XG4gICAgICBocmVmLFxuICAgICAgb25DbGljayxcbiAgICAgIHR5cGU6IGlzTGluayA/IHZvaWQgMCA6IFwiYnV0dG9uXCIsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGNsYXNzTmFtZTogdHdNZXJnZShcbiAgICAgICAgdGhlbWUubGluay5hY3RpdmVbaXNBY3RpdmUgPyBcIm9uXCIgOiBcIm9mZlwiXSxcbiAgICAgICAgdGhlbWUubGluay5kaXNhYmxlZFtkaXNhYmxlZCA/IFwib25cIiA6IFwib2ZmXCJdLFxuICAgICAgICB0aGVtZS5saW5rLmJhc2UsXG4gICAgICAgIHRoZW1lLmxpbmsuaHJlZltpc0xpbmsgPyBcIm9uXCIgOiBcIm9mZlwiXVxuICAgICAgKSxcbiAgICAgIC4uLnByb3BzLFxuICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgSWNvbiAmJiAvKiBAX19QVVJFX18gKi8ganN4KEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtbGlzdC1ncm91cC1pdGVtLWljb25cIiwgY2xhc3NOYW1lOiB0aGVtZS5saW5rLmljb24gfSksXG4gICAgICAgIGNoaWxkcmVuXG4gICAgICBdXG4gICAgfVxuICApIH0pO1xufTtcblxuZXhwb3J0IHsgTGlzdEdyb3VwSXRlbSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TGlzdEdyb3VwSXRlbS5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBMaXN0R3JvdXBJdGVtIH0gZnJvbSAnLi9MaXN0R3JvdXBJdGVtLm1qcyc7XG5cbmNvbnN0IExpc3RHcm91cENvbXBvbmVudCA9ICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkubGlzdEdyb3VwLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwidWxcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUucm9vdC5iYXNlLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgY2hpbGRyZW4gfSk7XG59O1xuTGlzdEdyb3VwQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJMaXN0R3JvdXBcIjtcbkxpc3RHcm91cEl0ZW0uZGlzcGxheU5hbWUgPSBcIkxpc3RHcm91cC5JdGVtXCI7XG5jb25zdCBMaXN0R3JvdXAgPSBPYmplY3QuYXNzaWduKExpc3RHcm91cENvbXBvbmVudCwge1xuICBJdGVtOiBMaXN0R3JvdXBJdGVtXG59KTtcblxuZXhwb3J0IHsgTGlzdEdyb3VwIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1MaXN0R3JvdXAubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgTmF2YmFyQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQodm9pZCAwKTtcbmZ1bmN0aW9uIHVzZU5hdmJhckNvbnRleHQoKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KE5hdmJhckNvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1c2VOYXZCYXJDb250ZXh0IHNob3VsZCBiZSB1c2VkIHdpdGhpbiB0aGUgTmF2YmFyQ29udGV4dCBwcm92aWRlciFcIik7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbmV4cG9ydCB7IE5hdmJhckNvbnRleHQsIHVzZU5hdmJhckNvbnRleHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU5hdmJhckNvbnRleHQubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlTmF2YmFyQ29udGV4dCB9IGZyb20gJy4vTmF2YmFyQ29udGV4dC5tanMnO1xuXG5jb25zdCBOYXZiYXJCcmFuZCA9ICh7XG4gIGFzOiBDb21wb25lbnQgPSBcImFcIixcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHsgdGhlbWU6IHJvb3RUaGVtZSB9ID0gdXNlTmF2YmFyQ29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChyb290VGhlbWUuYnJhbmQsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goQ29tcG9uZW50LCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgY2hpbGRyZW4gfSk7XG59O1xuXG5leHBvcnQgeyBOYXZiYXJCcmFuZCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TmF2YmFyQnJhbmQubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlTmF2YmFyQ29udGV4dCB9IGZyb20gJy4vTmF2YmFyQ29udGV4dC5tanMnO1xuXG5jb25zdCBOYXZiYXJDb2xsYXBzZSA9ICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IHsgdGhlbWU6IHJvb3RUaGVtZSwgaXNPcGVuIH0gPSB1c2VOYXZiYXJDb250ZXh0KCk7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKHJvb3RUaGVtZS5jb2xsYXBzZSwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBcImRpdlwiLFxuICAgIHtcbiAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1uYXZiYXItY29sbGFwc2VcIixcbiAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCB0aGVtZS5oaWRkZW5bIWlzT3BlbiA/IFwib25cIiA6IFwib2ZmXCJdLCBjbGFzc05hbWUpLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcInVsXCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5saXN0LCBjaGlsZHJlbiB9KVxuICAgIH1cbiAgKTtcbn07XG5cbmV4cG9ydCB7IE5hdmJhckNvbGxhcHNlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1OYXZiYXJDb2xsYXBzZS5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyB1c2VOYXZiYXJDb250ZXh0IH0gZnJvbSAnLi9OYXZiYXJDb250ZXh0Lm1qcyc7XG5cbmNvbnN0IE5hdmJhckxpbmsgPSAoe1xuICBhY3RpdmUsXG4gIGFzOiBDb21wb25lbnQgPSBcImFcIixcbiAgZGlzYWJsZWQsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICBvbkNsaWNrLFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB7IHRoZW1lOiByb290VGhlbWUsIHNldElzT3BlbiB9ID0gdXNlTmF2YmFyQ29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChyb290VGhlbWUubGluaywgY3VzdG9tVGhlbWUpO1xuICBjb25zdCBoYW5kbGVDbGljayA9IChldmVudCkgPT4ge1xuICAgIHNldElzT3BlbihmYWxzZSk7XG4gICAgb25DbGljaz8uKGV2ZW50KTtcbiAgfTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJsaVwiLCB7IGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIENvbXBvbmVudCxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgIHRoZW1lLmJhc2UsXG4gICAgICAgIGFjdGl2ZSAmJiB0aGVtZS5hY3RpdmUub24sXG4gICAgICAgICFhY3RpdmUgJiYgIWRpc2FibGVkICYmIHRoZW1lLmFjdGl2ZS5vZmYsXG4gICAgICAgIHRoZW1lLmRpc2FibGVkW2Rpc2FibGVkID8gXCJvblwiIDogXCJvZmZcIl0sXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKSxcbiAgICAgIG9uQ2xpY2s6IGhhbmRsZUNsaWNrLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBjaGlsZHJlblxuICAgIH1cbiAgKSB9KTtcbn07XG5cbmV4cG9ydCB7IE5hdmJhckxpbmsgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU5hdmJhckxpbmsubWpzLm1hcFxuIiwiLy8gVEhJUyBGSUxFIElTIEFVVE8gR0VORVJBVEVEXG5pbXBvcnQgeyBHZW5JY29uIH0gZnJvbSAnLi4vbGliL2luZGV4Lm1qcyc7XG5leHBvcnQgZnVuY3Rpb24gRmE1MDBQeCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDMuMyAzNDQuM2MtNi41LTE0LjItNi45LTE4LjMgNy40LTIzLjEgMjUuNi04IDggOS4yIDQzLjIgNDkuMmguM3YtOTMuOWMxLjItNTAuMiA0NC05Mi4yIDk3LjctOTIuMiA1My45IDAgOTcuNyA0My41IDk3LjcgOTYuOCAwIDYzLjQtNjAuOCAxMTMuMi0xMjguNSA5My4zLTEwLjUtNC4yLTIuMS0zMS43IDguNS0yOC42IDUzIDAgODkuNC0xMC4xIDg5LjQtNjQuNCAwLTYxLTc3LjEtODkuNi0xMTYuOS00NC42LTIzLjUgMjYuNC0xNy42IDQyLjEtMTcuNiAxNTcuNiA1MC43IDMxIDExOC4zIDIyIDE2MC40LTIwLjEgMjQuOC0yNC44IDM4LjUtNTggMzguNS05MyAwLTM1LjItMTMuOC02OC4yLTM4LjgtOTMuMy0yNC44LTI0LjgtNTcuOC0zOC41LTkzLjMtMzguNXMtNjguOCAxMy44LTkzLjUgMzguNWMtLjMuMy0xNiAxNi41LTIxLjIgMjMuOWwtLjUuNmMtMy4zIDQuNy02LjMgOS4xLTIwLjEgNi4xLTYuOS0xLjctMTQuMy01LjgtMTQuMy0xMS44VjIwYzAtNSAzLjktMTAuNSAxMC41LTEwLjVoMjQxLjNjOC4zIDAgOC4zIDExLjYgOC4zIDE1LjEgMCAzLjkgMCAxNS4xLTguMyAxNS4xSDEzMC4zdjEzMi45aC4zYzEwNC4yLTEwOS44IDI4Mi44LTM2IDI4Mi44IDEwOC45IDAgMTc4LjEtMjQ0LjggMjIwLjMtMzEwLjEgNjIuOHptNjMuMy0yNjAuOGMtLjUgNC4yIDQuNiAyNC41IDE0LjYgMjAuNkMzMDYgNTYuNiAzODQgMTQ0LjUgMzkwLjYgMTQ0LjVjNC44IDAgMjIuOC0xNS4zIDE0LjMtMjIuOC05My4yLTg5LTIzNC41LTU3LTIzOC4zLTM4LjJ6TTM5MyA0MTQuN0MyODMgNTI0LjYgOTQgNDc1LjUgNjEgMzEwLjVjMC0xMi4yLTMwLjQtNy40LTI4LjkgMy4zIDI0IDE3My40IDI0NiAyNTYuOSAzODEuNiAxMjEuMyA2LjktNy44LTEyLjYtMjguNC0yMC43LTIwLjR6TTIxMy42IDMwNi42YzAgNCA0LjMgNy4zIDUuNSA4LjUgMyAzIDYuMSA0LjQgOC41IDQuNCAzLjggMCAyLjYuMiAyMi4zLTE5LjUgMTkuNiAxOS4zIDE5LjEgMTkuNSAyMi4zIDE5LjUgNS40IDAgMTguNS0xMC40IDEwLjctMTguMkwyNjUuNiAyODRsMTguMi0xOC4yYzYuMy02LjgtMTAuMS0yMS44LTE2LjItMTUuN0wyNDkuNyAyNjhjLTE4LjYtMTguOC0xOC40LTE5LjUtMjEuNS0xOS41LTUgMC0xOCAxMS43LTEyLjQgMTcuM0wyMzQgMjg0Yy0xOC4xIDE3LjktMjAuNCAxOS4yLTIwLjQgMjIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWNjZXNzaWJsZUljb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDIzLjkgMjU1LjhMNDExIDQxMy4xYy0zLjMgNDAuNy02My45IDM1LjEtNjAuNi00LjlsMTAtMTIyLjUtNDEuMSAyLjNjMTAuMSAyMC43IDE1LjggNDMuOSAxNS44IDY4LjUgMCA0MS4yLTE2LjEgNzguNy00Mi4zIDEwNi41bC0zOS4zLTM5LjNjNTcuOS02My43IDEzLjEtMTY3LjItNzQtMTY3LjItMjUuOSAwLTQ5LjUgOS45LTY3LjIgMjZMNzMgMjQzLjJjMjItMjAuNyA1MC4xLTM1LjEgODEuNC00MC4ybDc1LjMtODUuNy00Mi42LTI0LjgtNTEuNiA0NmMtMzAgMjYuOC03MC42LTE4LjUtNDAuNS00NS40bDY4LTYwLjdjOS44LTguOCAyNC4xLTEwLjIgMzUuNS0zLjYgMCAwIDEzOS4zIDgwLjkgMTM5LjUgODEuMSAxNi4yIDEwLjEgMjAuNyAzNiA2LjEgNTIuNkwyODUuNyAyMjlsMTA2LjEtNS45YzE4LjUtMS4xIDMzLjYgMTQuNCAzMi4xIDMyLjd6bS02NC45LTE1NGMyOC4xIDAgNTAuOS0yMi44IDUwLjktNTAuOUM0MDkuOSAyMi44IDM4Ny4xIDAgMzU5IDBjLTI4LjEgMC01MC45IDIyLjgtNTAuOSA1MC45IDAgMjguMSAyMi44IDUwLjkgNTAuOSA1MC45ek0xNzkuNiA0NTYuNWMtODAuNiAwLTEyNy40LTkwLjYtODIuNy0xNTYuMWwtMzkuNy0zOS43QzM2LjQgMjg3IDI0IDMyMC4zIDI0IDM1Ni40YzAgMTMwLjcgMTUwLjcgMjAxLjQgMjUxLjQgMTIyLjVsLTM5LjctMzkuN2MtMTYgMTAuOS0zNS4zIDE3LjMtNTYuMSAxNy4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBY2N1c29mdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjIuMSAyNTJ2LTFsLTUxLjItNjUuOHMtMTIgMS42LTI1IDE1LjFjLTkgOS4zLTI0Mi4xIDIzOS4xLTI0My40IDI0MC45LTcgMTAgMS42IDYuOCAxNS43IDEuNy44IDAgMTE0LjUtMzYuNiAxMTQuNS0zNi42LjUtLjYtLjEtLjEuNi0uNi0uNC01LjEtLjgtMjYuMi0xLTI3LjctLjYtNS4yIDIuMi02LjkgNy04LjlsOTIuNi0zMy44Yy42LS44IDg4LjUtODEuNyA5MC4yLTgzLjN6bTE2MC4xIDEyMC4xYzEzLjMgMTYuMSAyMC43IDEzLjMgMzAuOCA5LjMgMy4yLTEuMiAxMTUuNC00Ny42IDExNy44LTQ4LjkgOC00LjMtMS43LTE2LjctNy4yLTIzLjQtMi4xLTIuNS0yMDUuMS0yNDUuNi0yMDcuMi0yNDguMy05LjctMTIuMi0xNC4zLTEyLjktMzguNC0xMi44LTEwLjIgMC0xMDYuOC41LTExNi41LjYtMTkuMi4xLTMyLjktLjMtMTkuMiAxNi45QzI1MCA3NSA0NzYuNSAzNjUuMiA0ODIuMiAzNzIuMXptMTUyLjcgMS42Yy0yLjMtLjMtMjQuNi00LjctMzgtNy4yIDAgMC0xMTUgNTAuNC0xMTcuNSA1MS42LTE2IDcuMy0yNi45LTMuMi0zNi43LTE0LjZsLTU3LjEtNzRjLTUuNC0uOS02MC40LTkuNi02NS4zLTkuMy0zLjEuMi05LjYuOC0xNC40IDIuOS00LjkgMi4xLTE0NS4yIDUyLjgtMTUwLjIgNTQuNy01LjEgMi0xMS40IDMuNi0xMS4xIDcuNi4yIDIuNSAyIDIuNiA0LjYgMy41IDIuNy44IDMwMC45IDY3LjYgMzA4IDY5LjEgMTUuNiAzLjMgMzguNSAxMC41IDUzLjYgMS43IDIuMS0xLjIgMTIzLjgtNzYuNCAxMjUuOC03Ny44IDUuNC00IDQuMy02LjgtMS43LTguMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWNxdWlzaXRpb25zSW5jb3Jwb3JhdGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1Ny40NSA0NjguMmMtMS4yLTcuNy0xLjMtNy42LTkuNi03LjYtOTkuOC4yLTExMS44LTIuNC0xMTIuNy0yLjYtMTIuMy0xLjctMjAuNi0xMC41LTIxLTIzLjEtLjEtMS42LS4yLTcxLjYtMS0xMjkuMS0uMS00LjcgMS42LTYuNCA1LjktNy41IDEyLjUtMyAyNC45LTYuMSAzNy4zLTkuNyA0LjMtMS4zIDYuOC0uMiA4LjQgMy41IDQuNSAxMC4zIDguOCAyMC42IDEzLjIgMzAuOSAxLjYgMy43LjEgNC40LTMuNCA0LjQtMTAtLjItMjAtLjEtMzAuNC0uMXYyN2gxMTZjLTEuNC05LjUtMi43LTE4LjEtNC0yNy41LTcgMC0xMy44LjQtMjAuNC0uMS0yMi42LTEuNi0xOC4zLTQuNC04NC0xNTguNi04LjgtMjAuMS0yNy45LTYyLjEtMzYuNS04OS4yLTQuNC0xNCA1LjUtMjUuNCAxOC45LTI2LjYgMTguNi0xLjcgMzcuNS0xLjYgNTYuMi0yIDIwLjYtLjQgNDEuMi0uNCA2MS44LS41IDMuMSAwIDQtMS40IDQuMy00LjMgMS4yLTkuOCAyLjctMTkuNSA0LTI5LjIuOC01LjMgMS42LTEwLjcgMi40LTE2LjFMMjMuNzUgMGMtMy42IDAtNS4zIDEuMS00LjYgNS4zIDIuMiAxMy4yLS44LjggNi40IDQ1LjMgNjMuNCAwIDcxLjguOSAxMDEuOC41IDEyLjMtLjIgMzcgMy41IDM3LjcgMjIuMS40IDExLjQtMS4xIDExLjMtMzIuNiA4Ny40LTUzLjggMTI5LjgtNTAuNyAxMjAuMy02Ny4zIDE2MS0xLjcgNC4xLTMuNiA1LjItNy42IDUuMi04LjUtLjItMTctLjMtMjUuNC4xLTEuOS4xLTUuMiAxLjgtNS41IDMuMi0xLjUgOC4xLTIuMiAxNi4zLTMuMiAyNC45aDExNC4zdi0yNy42Yy02LjkgMC0zMy41LjQtMzUuMy0yLjkgNS4zLTEyLjMgMTAuNC0yNC40IDE1LjctMzYuNyAxNi4zIDQgMzEuOSA3LjggNDcuNiAxMS43IDMuNC45IDQuNiAzIDQuNiA2LjgtLjEgNDIuOS4xIDg1LjkuMiAxMjguOCAwIDEwLjItNS41IDE5LjEtMTQuOSAyMy4xLTYuNSAyLjctMy4zIDMuNC0xMjEuNCAyLjQtNS4zIDAtNy4xIDItNy42IDYuOC0xLjUgMTIuOS0yLjkgMjUuOS01IDM4LjgtLjggNSAxLjMgNS43IDUuMyA1LjcgMTgzLjIuNi0zMC43IDAgMzM3LjEgMC0yLjUtMTUtNC40LTI5LjQtNi42LTQzLjd6bS0xNzQuOS0yMDUuN2MtMTMuMy00LjItMjYuNi04LjItMzkuOS0xMi41YTQ0LjUzIDQ0LjUzIDAgMCAxLTUuOC0yLjljMTcuMi00NC4zIDM0LjItODguMSA1MS4zLTEzMi4xIDcuNSAyLjQgNy45LS44IDkuNCAwIDkuMyAyMi41IDE4LjEgNjAuMSAyNyA4Mi44IDYuNiAxNi43IDEzIDMzLjUgMTkuNyA1MC45YTM1Ljc4IDM1Ljc4IDAgMCAxLTMuOSAyLjFjLTEzLjEgMy45LTI2LjQgNy41LTM5LjQgMTEuN2EyNy42NiAyNy42NiAwIDAgMS0xOC40IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFkbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggMTY3LjVsNjQuOSA5OC44SDE4My4xbDY0LjktOTguOHpNNDk2IDI1NmMwIDEzNi45LTExMS4xIDI0OC0yNDggMjQ4UzAgMzkyLjkgMCAyNTYgMTExLjEgOCAyNDggOHMyNDggMTExLjEgMjQ4IDI0OHptLTk5LjggODIuN0wyNDggMTE1LjUgOTkuOCAzMzguN2gzMC40bDMzLjYtNTEuN2gxNjguNmwzMy42IDUxLjdoMzAuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWR2ZXJzYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgyLjEgMzJIMjguN0M1LjggMzIgMCAzNy45IDAgNjAuOXYzOTAuMkMwIDQ3NC40IDUuOCA0ODAgMjguNyA0ODBoNDUzLjRjMjQuNCAwIDI5LjktNS4yIDI5LjktMjkuN1Y2Mi4yYzAtMjQuNi01LjQtMzAuMi0yOS45LTMwLjJ6TTE3OC40IDIyMC4zYy0yNy41LTIwLjItNzIuMS04LjctODQuMiAyMy40LTQuMyAxMS4xLTkuMyA5LjUtMTcuNSA4LjMtOS43LTEuNS0xNy4yLTMuMi0yMi41LTUuNS0yOC44LTExLjQgOC42LTU1LjMgMjQuOS02NC4zIDQxLjEtMjEuNCA4My40LTIyLjIgMTI1LjMtNC44IDQwLjkgMTYuOCAzNC41IDU5LjIgMzQuNSAxMjguNSAyLjcgMjUuOC00LjMgNTguMyA5LjMgODguOCAxLjkgNC40LjQgNy45LTIuNyAxMC43LTguNCA2LjctMzkuMyAyLjItNDYuNi03LjQtMS45LTIuMi0xLjgtMy42LTMuOS02LjItMy42LTMuOS03LjMtMi4yLTExLjkgMS01Ny40IDM2LjQtMTQwLjMgMjEuNC0xNDctNDMuMy0zLjEtMjkuMyAxMi40LTU3LjEgMzkuNi03MSAzOC4yLTE5LjUgMTEyLjItMTEuOCAxMTQtMzAuOSAxLjEtMTAuMi0xLjktMjAuMS0xMS4zLTI3LjN6bTI4Ni43IDIyMmMwIDE1LjEtMTEuMSA5LjktMTcuOCA5LjlINTIuNGMtNy40IDAtMTguMiA0LjgtMTcuOC0xMC43LjQtMTMuOSAxMC41LTkuMSAxNy4xLTkuMSAxMzIuMy0uNCAyNjQuNS0uNCAzOTYuOCAwIDYuOCAwIDE2LjYtNC40IDE2LjYgOS45em0zLjgtMzQwLjV2MjkxYzAgNS43LS43IDEzLjktOC4xIDEzLjktMTIuNC0uNC0yNy41IDcuMS0zNi4xLTUuNi01LjgtOC43LTcuOC00LTEyLjQtMS4yLTUzLjQgMjkuNy0xMjguMSA3LjEtMTQ0LjQtODUuMi02LjEtMzMuNC0uNy02Ny4xIDE1LjctMTAwIDExLjgtMjMuOSA1Ni45LTc2LjEgMTM2LjEtMzAuNXYtNzFjMC0yNi4yLS4xLTI2LjIgMjYtMjYuMiAzLjEgMCA2LjYuNCA5LjcgMCAxMC4xLS44IDEzLjYgNC40IDEzLjYgMTQuMy0uMS4yLS4xLjMtLjEuNXptLTUxLjUgMjMyLjNjLTE5LjUgNDcuNi03Mi45IDQzLjMtOTAgNS4yLTE1LjEtMzMuMy0xNS41LTY4LjIuNC0xMDEuNSAxNi4zLTM0LjEgNTkuNy0zNS43IDgxLjUtNC44IDIwLjYgMjguOCAxNC45IDg0LjYgOC4xIDEwMS4xem0tMjk0LjggMzUuM2MtNy41LTEuMy0zMy0zLjMtMzMuNy0yNy44LS40LTEzLjkgNy44LTIzIDE5LjgtMjUuOCAyNC40LTUuOSA0OS4zLTkuOSA3My43LTE0LjcgOC45LTIgNy40IDQuNCA3LjggOS41IDEuNCAzMy0yNi4xIDU5LjItNjcuNiA1OC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBZmZpbGlhdGV0aGVtZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTkuNyAyMzcuNEMxMDguNCAzMDguMyA0My4xIDM0OC4yIDE0IDMyNi42LTE1LjIgMzA0LjkgMi44IDIzMCA1NC4yIDE1OS4xYzUxLjMtNzAuOSAxMTYuNi0xMTAuOCAxNDUuNy04OS4yIDI5LjEgMjEuNiAxMS4xIDk2LjYtNDAuMiAxNjcuNXptMzUxLjItNTcuM0M0MzcuMSAzMDMuNSAzMTkgMzY3LjggMjQ2LjQgMzIzLjdjLTI1LTE1LjItNDEuMy00MS4yLTQ5LTczLjgtMzMuNiA2NC44LTkyLjggMTEzLjgtMTY0LjEgMTMzLjIgNDkuOCA1OS4zIDEyNC4xIDk2LjkgMjA3IDk2LjkgMTUwIDAgMjcxLjYtMTIzLjEgMjcxLjYtMjc0LjkuMS04LjUtLjMtMTYuOC0xLTI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBaXJibmIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDM3My4xMmMtMjUuMjQtMzEuNjctNDAuMDgtNTkuNDMtNDUtODMuMTgtMjIuNTUtODggMTEyLjYxLTg4IDkwLjA2IDAtNS40NSAyNC4yNS0yMC4yOSA1Mi00NSA4My4xOHptMTM4LjE1IDczLjIzYy00Mi4wNiAxOC4zMS04My42Ny0xMC44OC0xMTkuMy01MC40NyAxMDMuOS0xMzAuMDcgNDYuMTEtMjAwLTE4Ljg1LTIwMC01NC45MiAwLTg1LjE2IDQ2LjUxLTczLjI4IDEwMC41IDYuOTMgMjkuMTkgMjUuMjMgNjIuMzkgNTQuNDMgOTkuNS0zMi41MyAzNi4wNS02MC41NSA1Mi42OS04NS4xNSA1NC45Mi01MCA3LjQzLTg5LjExLTQxLjA2LTcxLjMtOTEuMDkgMTUuMS0zOS4xNiAxMTEuNzItMjMxLjE4IDExNS44Ny0yNDEuNTYgMTUuNzUtMzAuMDcgMjUuNTYtNTcuNCA1OS4zOC01Ny40IDMyLjM0IDAgNDMuNCAyNS45NCA2MC4zNyA1OS44NyAzNiA3MC42MiA4OS4zNSAxNzcuNDggMTE0Ljg0IDIzOS4wOSAxMy4xNyAzMy4wNy0xLjM3IDcxLjI5LTM3LjAxIDg2LjY0em00Ny0xMzYuMTJDMjgwLjI3IDM1LjkzIDI3My4xMyAzMiAyMjQgMzJjLTQ1LjUyIDAtNjQuODcgMzEuNjctODQuNjYgNzIuNzlDMzMuMTggMzE3LjEgMjIuODkgMzQ3LjE5IDIyIDM0OS44MS0zLjIyIDQxOS4xNCA0OC43NCA0ODAgMTExLjYzIDQ4MGMyMS43MSAwIDYwLjYxLTYuMDYgMTEyLjM3LTYyLjQgNTguNjggNjMuNzggMTAxLjI2IDYyLjQgMTEyLjM3IDYyLjQgNjIuODkuMDUgMTE0Ljg1LTYwLjg2IDg5LjYxLTEzMC4xOS4wMi0zLjg5LTE2LjgyLTM4LjktMTYuODItMzkuNTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFsZ29saWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI5LjMgMTgyLjZjLTQ5LjMgMC04OS4yIDM5LjktODkuMiA4OS4yIDAgNDkuMyAzOS45IDg5LjIgODkuMiA4OS4yczg5LjItMzkuOSA4OS4yLTg5LjJjMC00OS4zLTQwLTg5LjItODkuMi04OS4yem02Mi43IDU2LjZsLTU4LjkgMzAuNmMtMS44LjktMy44LS40LTMuOC0yLjNWMjAxYzAtMS41IDEuMy0yLjcgMi43LTIuNiAyNi4yIDEgNDguOSAxNS43IDYxLjEgMzcuMS43IDEuMy4yIDMtMS4xIDMuN3pNMzg5LjEgMzJINTguOUMyNi40IDMyIDAgNTguNCAwIDkwLjlWNDIxYzAgMzIuNiAyNi40IDU5IDU4LjkgNTlIMzg5YzMyLjYgMCA1OC45LTI2LjQgNTguOS01OC45VjkwLjlDNDQ4IDU4LjQgNDIxLjYgMzIgMzg5LjEgMzJ6bS0yMDIuNiA4NC43YzAtMTAuOCA4LjctMTkuNSAxOS41LTE5LjVoNDUuM2MxMC44IDAgMTkuNSA4LjcgMTkuNSAxOS41djE1LjRjMCAxLjgtMS43IDMtMy4zIDIuNS0xMi4zLTMuNC0yNS4xLTUuMS0zOC4xLTUuMS0xMy41IDAtMjYuNyAxLjgtMzkuNCA1LjUtMS43LjUtMy40LS44LTMuNC0yLjV2LTE1Ljh6bS04NC40IDM3bDkuMi05LjJjNy42LTcuNiAxOS45LTcuNiAyNy41IDBsNy43IDcuN2MxLjEgMS4xIDEgMy0uMyA0LTYuMiA0LjUtMTIuMSA5LjQtMTcuNiAxNC45LTUuNCA1LjQtMTAuNCAxMS4zLTE0LjggMTcuNC0xIDEuMy0yLjkgMS41LTQgLjNsLTcuNy03LjdjLTcuNi03LjUtNy42LTE5LjggMC0yNy40em0xMjcuMiAyNDQuOGMtNzAgMC0xMjYuNi01Ni43LTEyNi42LTEyNi42czU2LjctMTI2LjYgMTI2LjYtMTI2LjZjNzAgMCAxMjYuNiA1Ni42IDEyNi42IDEyNi42IDAgNjkuOC01Ni43IDEyNi42LTEyNi42IDEyNi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbGlwYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzc3Ljc0IDMySDcwLjI2QzMxLjQxIDMyIDAgNjMuNDEgMCAxMDIuMjZ2MzA3LjQ4QzAgNDQ4LjU5IDMxLjQxIDQ4MCA3MC4yNiA0ODBoMzA3LjQ4YzM4LjUyIDAgNjkuNzYtMzEuMDggNzAuMjYtNjkuNi00NS45Ni0yNS42Mi0xMTAuNTktNjAuMzQtMTcxLjYtODguNDQtMzIuMDcgNDMuOTctODQuMTQgODEtMTQ4LjYyIDgxLTcwLjU5IDAtOTMuNzMtNDUuMy05Ny4wNC03Ni4zNy0zLjk3LTM5LjAxIDE0Ljg4LTgxLjUgOTkuNTItODEuNSAzNS4zOCAwIDc5LjM1IDEwLjI1IDEyNy4xMyAyNC45NiAxNi41My0zMC4wOSAyNi40NS02MC4zNCAyNi40NS02MC4zNGgtMTc4LjJ2LTE2LjdoOTIuMDh2LTMxLjI0SDg4LjI4di0xOS4wMWgxMDkuNDRWOTIuMzRoNTAuOTJ2NTAuNDJoMTA5LjQ0djE5LjAxSDI0OC42M3YzMS4yNGg4OC43N3MtMTUuMjEgNDYuNjItMzguMzUgOTAuOTJjNDguOTMgMTYuNyAxMDAuMDEgMzYuMDQgMTQ4LjYyIDUyLjc0VjEwMi4yNkM0NDcuODMgNjMuNTcgNDE2LjQzIDMyIDM3Ny43NCAzMnpNNDcuMjggMzIyLjk1Yy45OSAyMC4xNyAxMC4yNSA1My43MyA2OS45MyA1My43MyA1Mi4wNyAwIDkyLjU4LTM5LjY4IDExNy44Ny03Mi45LTQ0LjYzLTE4LjY4LTg0LjQ4LTMxLjQxLTEwOS40NC0zMS40MS02Ny40NSAwLTc5LjM1IDMzLjA2LTc4LjM2IDUwLjU4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbWF6b25QYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMzI1LjNjMi4zLTQuMiA1LjItNC45IDkuNy0yLjUgMTAuNCA1LjYgMjAuNiAxMS40IDMxLjIgMTYuN2E1OTUuODggNTk1Ljg4IDAgMCAwIDEyNy40IDQ2LjMgNjE2LjYxIDYxNi42MSAwIDAgMCA2My4yIDExLjggNjAzLjMzIDYwMy4zMyAwIDAgMCA5NSA1LjJjMTcuNC0uNCAzNC44LTEuOCA1Mi4xLTMuOGE2MDMuNjYgNjAzLjY2IDAgMCAwIDE2My4zLTQyLjhjMi45LTEuMiA1LjktMiA5LjEtMS4yIDYuNyAxLjggOSA5IDQuMSAxMy45YTcwIDcwIDAgMCAxLTkuNiA3LjRjLTMwLjcgMjEuMS02NC4yIDM2LjQtOTkuNiA0Ny45YTQ3My4zMSA0NzMuMzEgMCAwIDEtNzUuMSAxNy42IDQzMSA0MzEgMCAwIDEtNTMuMiA0LjggMjEuMyAyMS4zIDAgMCAwLTIuNS4zSDMwOGEyMS4zIDIxLjMgMCAwIDAtMi41LS4zYy0zLjYtLjItNy4yLS4zLTEwLjctLjRhNDI2LjMgNDI2LjMgMCAwIDEtNTAuNC01LjNBNDQ4LjQgNDQ4LjQgMCAwIDEgMTY0IDQyMGE0NDMuMzMgNDQzLjMzIDAgMCAxLTE0NS42LTg3Yy0xLjgtMS42LTMtMy44LTQuNC01Ljd6TTE3MiA2NS4xbC00LjMuNmE4MC45MiA4MC45MiAwIDAgMC0zOCAxNS4xYy0yLjQgMS43LTQuNiAzLjUtNy4xIDUuNGE0LjI5IDQuMjkgMCAwIDEtLjQtMS40Yy0uNC0yLjctLjgtNS41LTEuMy04LjItLjctNC42LTMtNi42LTcuNi02LjZoLTExLjVjLTYuOSAwLTguMiAxLjMtOC4yIDguMnYyMDkuM2MwIDEgMCAyIC4xIDMgLjIgMyAyIDQuOSA0LjkgNSA3IC4xIDE0LjEuMSAyMS4xIDAgMi45IDAgNC43LTIgNS01IC4xLTEgLjEtMiAuMS0zdi03Mi40YzEuMS45IDEuNyAxLjQgMi4yIDEuOSAxNy45IDE0LjkgMzguNSAxOS44IDYxIDE1LjQgMjAuNC00IDM0LjYtMTYuNSA0My44LTM0LjkgNy0xMy45IDkuOS0yOC43IDEwLjMtNDQuMS41LTE3LjEtMS4yLTMzLjktOC4xLTQ5LjgtOC41LTE5LjYtMjIuNi0zMi41LTQzLjktMzYuOS0zLjItLjctNi41LTEtOS44LTEuNS0yLjgtLjEtNS41LS4xLTguMy0uMXpNMTI0LjYgMTA3YTMuNDggMy40OCAwIDAgMSAxLjctMy4zYzEzLjctOS41IDI4LjgtMTQuNSA0NS42LTEzLjIgMTQuOSAxLjEgMjcuMSA4LjQgMzMuNSAyNS45IDMuOSAxMC43IDQuOSAyMS44IDQuOSAzMyAwIDEwLjQtLjggMjAuNi00IDMwLjYtNi44IDIxLjMtMjIuNCAyOS40LTQyLjYgMjguNS0xNC0uNi0yNi4yLTYtMzcuNC0xMy45YTMuNTcgMy41NyAwIDAgMS0xLjctMy4zYy4xLTE0LjEgMC0yOC4xIDAtNDIuMnMuMS0yOCAwLTQyLjF6bTIwNS43LTQxLjljLTEgLjEtMiAuMy0yLjkuNGExNDggMTQ4IDAgMCAwLTI4LjkgNC4xYy02LjEgMS42LTEyIDMuOC0xNy45IDUuOC0zLjYgMS4yLTUuNCAzLjgtNS4zIDcuNy4xIDMuMy0uMSA2LjYgMCA5LjkuMSA0LjggMi4xIDYuMSA2LjggNC45IDcuOC0yIDE1LjYtNC4yIDIzLjUtNS43IDEyLjMtMi4zIDI0LjctMy4zIDM3LjItMS40IDYuNSAxIDEyLjYgMi45IDE2LjggOC40IDMuNyA0LjggNS4xIDEwLjUgNS4zIDE2LjQuMyA4LjMuMiAxNi42LjMgMjQuOWE3Ljg0IDcuODQgMCAwIDEtLjIgMS40Yy0uNS0uMS0uOSAwLTEuMy0uMWExODAuNTYgMTgwLjU2IDAgMCAwLTMyLTQuOWMtMTEuMy0uNi0yMi41LjEtMzMuMyAzLjktMTIuOSA0LjUtMjMuMyAxMi4zLTI5LjQgMjQuOS00LjcgOS44LTUuNCAyMC4yLTMuOSAzMC43IDIgMTQgOSAyNC44IDIxLjQgMzEuNyAxMS45IDYuNiAyNC44IDcuNCAzNy45IDUuNCAxNS4xLTIuMyAyOC41LTguNyA0MC4zLTE4LjRhNy4zNiA3LjM2IDAgMCAxIDEuNi0xLjFjLjYgMy44IDEuMSA3LjQgMS44IDExIC42IDMuMSAyLjUgNS4xIDUuNCA1LjIgNS40LjEgMTAuOS4xIDE2LjMgMGE0Ljg0IDQuODQgMCAwIDAgNC44LTQuNyAyNi4yIDI2LjIgMCAwIDAgLjEtMi44di0xMDZhODAgODAgMCAwIDAtLjktMTIuOWMtMS45LTEyLjktNy40LTIzLjUtMTktMzAuNC02LjctNC0xNC4xLTYtMjEuOC03LjEtMy42LS41LTcuMi0uOC0xMC44LTEuMy0zLjkuMS03LjkuMS0xMS45LjF6bTM1IDEyNy43YTMuMzMgMy4zMyAwIDAgMS0xLjUgM2MtMTEuMiA4LjEtMjMuNSAxMy41LTM3LjQgMTQuOS01LjcuNi0xMS40LjQtMTYuOC0xLjhhMjAuMDggMjAuMDggMCAwIDEtMTIuNC0xMy4zIDMyLjkgMzIuOSAwIDAgMS0uMS0xOS40YzIuNS04LjMgOC40LTEzIDE2LjQtMTUuNmE2MS4zMyA2MS4zMyAwIDAgMSAyNC44LTIuMmM4LjQuNyAxNi42IDIuMyAyNSAzLjQgMS42LjIgMi4xIDEgMi4xIDIuNi0uMSA0LjggMCA5LjUgMCAxNC4zcy0uMiA5LjQtLjEgMTQuMXptMjU5LjkgMTI5LjRjLTEtNS00LjgtNi45LTkuMS04LjNhODguNDIgODguNDIgMCAwIDAtMjEtMy45IDE0Ny4zMiAxNDcuMzIgMCAwIDAtMzkuMiAxLjljLTE0LjMgMi43LTI3LjkgNy4zLTQwIDE1LjZhMTMuNzUgMTMuNzUgMCAwIDAtMy43IDMuNSA1LjExIDUuMTEgMCAwIDAtLjUgNGMuNCAxLjUgMi4xIDEuOSAzLjYgMS44YTE2LjIgMTYuMiAwIDAgMCAyLjItLjFjNy44LS44IDE1LjUtMS43IDIzLjMtMi41IDExLjQtMS4xIDIyLjktMS44IDM0LjMtLjlhNzEuNjQgNzEuNjQgMCAwIDEgMTQuNCAyLjdjNS4xIDEuNCA3LjQgNS4yIDcuNiAxMC40LjQgOC0xLjQgMTUuNy0zLjUgMjMuMy00LjEgMTUuNC0xMCAzMC4zLTE1LjggNDUuMWExNy42IDE3LjYgMCAwIDAtMSAzYy0uNSAyLjkgMS4yIDQuOCA0LjEgNC4xYTEwLjU2IDEwLjU2IDAgMCAwIDQuOC0yLjUgMTQ1LjkxIDE0NS45MSAwIDAgMCAxMi43LTEzLjRjMTIuOC0xNi40IDIwLjMtMzUuMyAyNC43LTU1LjYuOC0zLjYgMS40LTcuMyAyLjEtMTAuOXYtMTcuM3pNNDkzLjEgMTk5cS0xOS4zNS01My41NS0zOC43LTEwNy4yYy0yLTUuNy00LjItMTEuMy02LjMtMTYuOS0xLjEtMi45LTMuMi00LjgtNi40LTQuOC03LjYtLjEtMTUuMi0uMi0yMi45LS4xLTIuNSAwLTMuNyAyLTMuMiA0LjVhNDMuMSA0My4xIDAgMCAwIDEuOSA2LjFxMjkuNCA3Mi43NSA1OS4xIDE0NS41YzEuNyA0LjEgMi4xIDcuNi4yIDExLjgtMy4zIDcuMy01LjkgMTUtOS4zIDIyLjMtMyA2LjUtOCAxMS40LTE1LjIgMTMuM2E0Mi4xMyA0Mi4xMyAwIDAgMS0xNS40IDEuMWMtMi41LS4yLTUtLjgtNy41LTEtMy40LS4yLTUuMSAxLjMtNS4yIDQuOHEtLjE1IDUgMCA5LjljLjEgNS41IDIgOCA3LjQgOC45YTEwOC4xOCAxMDguMTggMCAwIDAgMTYuOSAyYzE3LjEuNCAzMC43LTYuNSAzOS41LTIxLjRhMTMxLjYzIDEzMS42MyAwIDAgMCA5LjItMTguNHEzNS41NS04OS43IDcwLjYtMTc5LjZhMjYuNjIgMjYuNjIgMCAwIDAgMS42LTUuNWMuNC0yLjgtLjktNC40LTMuNy00LjQtNi42LS4xLTEzLjMgMC0xOS45IDBhNy41NCA3LjU0IDAgMCAwLTcuNyA1LjJjLS41IDEuNC0xLjEgMi43LTEuNiA0LjFsLTM0LjggMTAwYy0yLjUgNy4yLTUuMSAxNC41LTcuNyAyMi4yLS40LTEuMS0uNi0xLjctLjktMi40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbWF6b24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU3LjIgMTYyLjdjLTQ4LjcgMS44LTE2OS41IDE1LjUtMTY5LjUgMTE3LjUgMCAxMDkuNSAxMzguMyAxMTQgMTgzLjUgNDMuMiA2LjUgMTAuMiAzNS40IDM3LjUgNDUuMyA0Ni44bDU2LjgtNTZTMzQxIDI4OC45IDM0MSAyNjEuNFYxMTQuM0MzNDEgODkgMzE2LjUgMzIgMjI4LjcgMzIgMTQwLjcgMzIgOTQgODcgOTQgMTM2LjNsNzMuNSA2LjhjMTYuMy00OS41IDU0LjItNDkuNSA1NC4yLTQ5LjUgNDAuNy0uMSAzNS41IDI5LjggMzUuNSA2OS4xem0wIDg2LjhjMCA4MC04NC4yIDY4LTg0LjIgMTcuMiAwLTQ3LjIgNTAuNS01Ni43IDg0LjItNTcuOHY0MC42em0xMzYgMTYzLjVjLTcuNyAxMC03MCA2Ny0xNzQuNSA2N1MzNC4yIDQwOC41IDkuNyAzNzljLTYuOC03LjcgMS0xMS4zIDUuNS04LjNDODguNSA0MTUuMiAyMDMgNDg4LjUgMzg3LjcgNDAxYzcuNS0zLjcgMTMuMyAyIDUuNSAxMnptMzkuOCAyLjJjLTYuNSAxNS44LTE2IDI2LjgtMjEuMiAzMS01LjUgNC41LTkuNSAyLjctNi41LTMuOHMxOS4zLTQ2LjUgMTIuNy01NWMtNi41LTguMy0zNy00LjMtNDgtMy4yLTEwLjggMS0xMyAyLTE0LS4zLTIuMy01LjcgMjEuNy0xNS41IDM3LjUtMTcuNSAxNS43LTEuOCA0MS0uOCA0NiA1LjcgMy43IDUuMSAwIDI3LjEtNi41IDQzLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFtaWxpYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDAuMSAzMmMtNjEuOSAwLTEzMS41IDE2LjktMTg0LjIgNTUuNC01LjEgMy4xLTkuMSA5LjItNy4yIDE5LjQgMS4xIDUuMSA1LjEgMjcuNCAxMC4yIDM5LjYgNC4xIDEwLjIgMTQuMiAxMC4yIDIwLjMgNi4xIDMyLjUtMjIuMyA5Ni41LTQ3LjcgMTUyLjMtNDcuNyA1Ny45IDAgNTguOSAyOC40IDU4LjkgNzMuMXYzOC41QzIwMyAyMjcuNyA3OC4yIDI1MSA0Ni43IDI2NC4yIDExLjIgMjgwLjUgMTYuMyAzNTcuNyAxNi4zIDM3NnMxNS4yIDEwNCAxMjQuOSAxMDRjNDcuOCAwIDExMy43LTIwLjcgMTUzLjMtNDIuMXYyNS40YzAgMyAyLjEgOC4yIDYuMSA5LjEgMy4xIDEgNTAuNyAyIDU5LjkgMnM2Mi41LjMgNjYuNS0uN2M0LjEtMSA1LjEtNi4xIDUuMS05LjFWMTY4Yy0uMS04MC4zLTU3LjktMTM2LTE5Mi0xMzZ6bTUwLjIgMzQ4Yy0yMS40IDEzLjItNDguNyAyNC40LTc5LjEgMjQuNC01Mi44IDAtNTguOS0zMy41LTU5LTQ0LjcgMC0xMi4yLTMtNDIuNyAxOC4zLTUyLjkgMjQuMy0xMy4yIDc1LjEtMjkuNCAxMTkuOC0zMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmRyb2lkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyMC41NSwzMDEuOTNhMjQsMjQsMCwxLDEsMjQtMjQsMjQsMjQsMCwwLDEtMjQsMjRtLTI2NS4xLDBhMjQsMjQsMCwxLDEsMjQtMjQsMjQsMjQsMCwwLDEtMjQsMjRtMjczLjctMTQ0LjQ4LDQ3Ljk0LTgzYTEwLDEwLDAsMSwwLTE3LjI3LTEwaDBsLTQ4LjU0LDg0LjA3YTMwMS4yNSwzMDEuMjUsMCwwLDAtMjQ2LjU2LDBMMTE2LjE4LDY0LjQ1YTEwLDEwLDAsMSwwLTE3LjI3LDEwaDBsNDcuOTQsODNDNjQuNTMsMjAyLjIyLDguMjQsMjg1LjU1LDAsMzg0SDU3NmMtOC4yNC05OC40NS02NC41NC0xODEuNzgtMTQ2Ljg1LTIyNi41NVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmdlbGxpc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ3LjEgMjE1LjRjMTEuNy0zMi42IDQ1LjQtMTI2LjkgNDUuNC0xNTcuMSAwLTI2LjYtMTUuNy00OC45LTQzLjctNDguOS00NC42IDAtODQuNiAxMzEuNy05Ny4xIDE2My4xQzI0MiAxNDQgMTk2LjYgMCAxNTYuNiAwYy0zMS4xIDAtNDUuNyAyMi45LTQ1LjcgNTEuNyAwIDM1LjMgMzQuMiAxMjYuOCA0Ni42IDE2Mi02LjMtMi4zLTEzLjEtNC4zLTIwLTQuMy0yMy40IDAtNDguMyAyOS4xLTQ4LjMgNTIuNiAwIDguOSA0LjkgMjEuNCA4IDI5LjctMzYuOSAxMC01MS4xIDM0LjYtNTEuMSA3MS43QzQ2IDQzNS42IDExNC40IDUxMiAyMTAuNiA1MTJjMTE4IDAgMTkxLjQtODguNiAxOTEuNC0yMDIuOSAwLTQzLjEtNi45LTgyLTU0LjktOTMuN3pNMzExLjcgMTA4YzQtMTIuMyAyMS4xLTY0LjMgMzcuMS02NC4zIDguNiAwIDEwLjkgOC45IDEwLjkgMTYgMCAxOS4xLTM4LjYgMTI0LjYtNDcuMSAxNDhsLTM0LTYgMzMuMS05My43ek0xNDIuMyA0OC4zYzAtMTEuOSAxNC41LTQ1LjcgNDYuMyA0Ny4xbDM0LjYgMTAwLjNjLTE1LjYtMS4zLTI3LjctMy0zNS40IDEuNC0xMC45LTI4LjgtNDUuNS0xMTkuNy00NS41LTE0OC44ek0xNDAgMjQ0YzI5LjMgMCA2Ny4xIDk0LjYgNjcuMSAxMDcuNCAwIDUuMS00LjkgMTEuNC0xMC42IDExLjQtMjAuOSAwLTc2LjktNzYuOS03Ni45LTk3LjcuMS03LjcgMTIuNy0yMS4xIDIwLjQtMjEuMXptMTg0LjMgMTg2LjNjLTI5LjEgMzItNjYuMyA0OC42LTEwOS43IDQ4LjYtNTkuNCAwLTEwNi4zLTMyLjYtMTI4LjktODguMy0xNy4xLTQzLjQgMy44LTY4LjMgMjAuNi02OC4zIDExLjQgMCA1NC4zIDYwLjMgNTQuMyA3My4xIDAgNC45LTcuNyA4LjMtMTEuNyA4LjMtMTYuMSAwLTIyLjQtMTUuNS01MS4xLTUxLjQtMjkuNyAyOS43IDIwLjUgODYuOSA1OC4zIDg2LjkgMjYuMSAwIDQzLjEtMjQuMiAzOC00MiAzLjcgMCA4LjMuMyAxMS43LS42IDEuMSAyNy4xIDkuMSA1OS40IDQxLjcgNjEuNyAwLS45IDItNy4xIDItNy40IDAtMTcuNC0xMC42LTMyLjYtMTAuNi01MC4zIDAtMjguMyAyMS43LTU1LjcgNDMuNy03MS43IDgtNiAxNy43LTkuNyAyNy4xLTEzLjEgOS43LTMuNyAyMC04IDI3LjQtMTUuNC0xLjEtMTEuMi01LjctMjEuMS0xNi45LTIxLjEtMjcuNyAwLTEyMC42IDQtMTIwLjYtMzkuNyAwLTYuNy4xLTEzLjEgMTcuNC0xMy4xIDMyLjMgMCAxMTQuMyA4IDEzOC4zIDI5LjEgMTguMSAxNi4xIDI0LjMgMTEzLjItMzEgMTc0Ljd6bS05OC42LTEyNmM5LjcgMy4xIDE5LjcgNCAyOS43IDYtNy40IDUuNC0xNCAxMi0yMC4zIDE5LjEtMi44LTguNS02LjItMTYuOC05LjQtMjUuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5ncnljcmVhdGl2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NDAgMjM4LjJsLTMuMiAyOC4yLTM0LjUgMi4zLTIgMTguMSAzNC41LTIuMy0zLjIgMjguMi0zNC40IDIuMi0yLjMgMjAuMSAzNC40LTIuMi0zIDI2LjEtNjQuNyA0LjEgMTIuNy0xMTMuMkw1MjcgMzY1LjJsLTMxLjkgMi0yMy44LTExNy44IDMwLjMtMiAxMy42IDc5LjQgMzEuNy04Mi40IDkzLjEtNi4yek00MjYuOCAzNzEuNWwyOC4zLTEuOEw0NjggMjQ5LjZsLTI4LjQgMS45LTEyLjggMTIwek0xNjIgMzg4LjFsLTE5LjQtMzYtMy41IDM3LjQtMjguMiAxLjcgMi43LTI5LjFjLTExIDE4LTMyIDM0LjMtNTYuOSAzNS44QzIzLjkgMzk5LjktMyAzNzcgLjMgMzM5LjdjMi42LTI5LjMgMjYuNy02Mi44IDY3LjUtNjUuNCAzNy43LTIuNCA0Ny42IDIzLjIgNTEuMyAyOC44bDIuOC0zMC44IDM4LjktMi41YzIwLjEtMS4zIDM4LjcgMy43IDQyLjUgMjMuN2wyLjYtMjYuNiA2NC44LTQuMi0yLjcgMjcuOS0zNi40IDIuNC0xLjcgMTcuOSAzNi40LTIuMy0yLjcgMjcuOS0zNi40IDIuMy0xLjkgMTkuOSAzNi4zLTIuMy0yLjEgMjAuOCA1NS0xMTcuMiAyMy44LTEuNkwzNzAuNCAzNjlsOC45LTg1LjYtMjIuMyAxLjQgMi45LTI3LjkgNzUtNC45LTMgMjgtMjQuMyAxLjYtOS43IDkxLjktNTggMy43LTQuMy0xNS42LTM5LjQgMi41LTggMTYuMy0xMjYuMiA3Ljd6bS00NC4zLTcwLjJsLTI2LjQgMS43Qzg0LjYgMzA3LjIgNzYuOSAzMDMgNjUgMzAzLjhjLTE5IDEuMi0zMy4zIDE3LjUtMzQuNiAzMy4zLTEuNCAxNiA3LjMgMzIuNSAyOC43IDMxLjIgMTIuOC0uOCAyMS4zLTguNiAyOC45LTE4LjlsMjctMS43IDIuNy0yOS44em01Ni4xLTcuN2MxLjItMTIuOS03LjYtMTMuNi0yNi4xLTEyLjRsLTIuNyAyOC41YzE0LjItLjkgMjcuNS0yLjEgMjguOC0xNi4xem0yMS4xIDcwLjhsNS44LTYwYy01IDEzLjUtMTQuNyAyMS4xLTI3LjkgMjYuNmwyMi4xIDMzLjR6bTEzNS40LTQ1bC03LjktMzcuOC0xNS44IDM5LjMgMjMuNy0xLjV6bS0xNzAuMS03NC42bC00LjMtMTcuNS0zOS42IDIuNi04LjEgMTguMi0zMS45IDIuMSA1Ny0xMjEuOSAyMy45LTEuNiAzMC43IDEwMiA5LjktMTA0LjcgMjctMS44IDM3LjggNjMuNiA2LjUtNjYuNiAyOC41LTEuOS00IDQxLjJjNy40LTEzLjUgMjIuOS00NC43IDYzLjYtNDcuNSA0MC41LTIuOCA1Mi40IDI5LjMgNTMuNCAzMC4zbDMuMy0zMiAzOS4zLTIuN2MxMi43LS45IDI3LjguMyAzNi4zIDkuN2wtNC40LTExLjkgMzIuMi0yLjIgMTIuOSA0My4yIDIzLTQ1LjcgMzEtMi4yLTQzLjYgNzguNC00LjggNDQuMy0yOC40IDEuOSA0LjgtNDQuMy0xNS44LTQzYzEgMjIuMy05LjIgNDAuMS0zMiA0OS42bDI1LjIgMzguOC0zNi40IDIuNC0xOS4yLTM2LjgtNCAzOC4zLTI4LjQgMS45IDMuMy0zMS41Yy02LjcgOS4zLTE5LjcgMzUuNC01OS42IDM4LTI2LjIgMS43LTQ1LjYtMTAuMy01NS40LTM5LjJsLTQgNDAuMy0yNSAxLjYtMzcuNi02My4zLTYuMyA2Ni4yLTU2LjggMy43em0yNzYuNi04Mi4xYzEwLjItLjcgMTcuNS0yLjEgMjEuNi00LjMgNC41LTIuNCA3LTYuNCA3LjYtMTIuMS42LTUuMy0uNi04LjgtMy40LTEwLjQtMy42LTIuMS0xMC42LTIuOC0yMi45LTJsLTIuOSAyOC44ek0zMjcuNyAyMTRjNS42IDUuOSAxMi43IDguNSAyMS4zIDcuOSA0LjctLjMgOS4xLTEuOCAxMy4zLTQuMSA1LjUtMyAxMC42LTggMTUuMS0xNC4zbC0zNC4yIDIuMyAyLjQtMjMuOSA2My4xLTQuMyAxLjItMTItMzEuMiAyLjFjLTQuMS0zLjctNy44LTYuNi0xMS4xLTguMS00LTEuNy04LjEtMi44LTEyLjItMi41LTggLjUtMTUuMyAzLjYtMjIgOS4yLTcuNyA2LjQtMTIgMTQuNS0xMi45IDI0LjQtMS4xIDkuNiAxLjQgMTcuMyA3LjIgMjMuM3ptLTIwMS4zIDguMmwyMy44LTEuNi04LjMtMzcuNi0xNS41IDM5LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuZ3VsYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg1LjcgMjY4LjFoNzYuMmwtMzguMS05MS42LTM4LjEgOTEuNnpNMjIzLjggMzJMMTYgMTA2LjRsMzEuOCAyNzUuNyAxNzYgOTcuOSAxNzYtOTcuOSAzMS44LTI3NS43ek0zNTQgMzczLjhoLTQ4LjZsLTI2LjItNjUuNEgxNjguNmwtMjYuMiA2NS40SDkzLjdMMjIzLjggODEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXBwU3RvcmVJb3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNMTI3IDM4NC41Yy01LjUgOS42LTE3LjggMTIuOC0yNy4zIDcuMy05LjYtNS41LTEyLjgtMTcuOC03LjMtMjcuM2wxNC4zLTI0LjdjMTYuMS00LjkgMjkuMy0xLjEgMzkuNiAxMS40TDEyNyAzODQuNXptMTM4LjktNTMuOUg4NGMtMTEgMC0yMC05LTIwLTIwczktMjAgMjAtMjBoNTFsNjUuNC0xMTMuMi0yMC41LTM1LjRjLTUuNS05LjYtMi4yLTIxLjggNy4zLTI3LjMgOS42LTUuNSAyMS44LTIuMiAyNy4zIDcuM2w4LjkgMTUuNCA4LjktMTUuNGM1LjUtOS42IDE3LjgtMTIuOCAyNy4zLTcuMyA5LjYgNS41IDEyLjggMTcuOCA3LjMgMjcuM2wtODUuOCAxNDguNmg2Mi4xYzIwLjIgMCAzMS41IDIzLjcgMjIuNyA0MHptOTguMSAwaC0yOWwxOS42IDMzLjljNS41IDkuNiAyLjIgMjEuOC03LjMgMjcuMy05LjYgNS41LTIxLjggMi4yLTI3LjMtNy4zLTMyLjktNTYuOS01Ny41LTk5LjctNzQtMTI4LjEtMTYuNy0yOS00LjgtNTggNy4xLTY3LjggMTMuMSAyMi43IDMyLjcgNTYuNyA1OC45IDEwMmg1MmMxMSAwIDIwIDkgMjAgMjAgMCAxMS4xLTkgMjAtMjAgMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFwcFN0b3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NS45IDEyMC45bDkuMS0xNS43YzUuNi05LjggMTguMS0xMy4xIDI3LjktNy41IDkuOCA1LjYgMTMuMSAxOC4xIDcuNSAyNy45bC04Ny41IDE1MS41aDYzLjNjMjAuNSAwIDMyIDI0LjEgMjMuMSA0MC44SDExMy44Yy0xMS4zIDAtMjAuNC05LjEtMjAuNC0yMC40IDAtMTEuMyA5LjEtMjAuNCAyMC40LTIwLjRoNTJsNjYuNi0xMTUuNC0yMC44LTM2LjFjLTUuNi05LjgtMi4zLTIyLjIgNy41LTI3LjkgOS44LTUuNiAyMi4yLTIuMyAyNy45IDcuNWw4LjkgMTUuN3ptLTc4LjcgMjE4bC0xOS42IDM0Yy01LjYgOS44LTE4LjEgMTMuMS0yNy45IDcuNS05LjgtNS42LTEzLjEtMTguMS03LjUtMjcuOWwxNC42LTI1LjJjMTYuNC01LjEgMjkuOC0xLjIgNDAuNCAxMS42em0xNjguOS02MS43aDUzLjFjMTEuMyAwIDIwLjQgOS4xIDIwLjQgMjAuNCAwIDExLjMtOS4xIDIwLjQtMjAuNCAyMC40aC0yOS41bDE5LjkgMzQuNWM1LjYgOS44IDIuMyAyMi4yLTcuNSAyNy45LTkuOCA1LjYtMjIuMiAyLjMtMjcuOS03LjUtMzMuNS01OC4xLTU4LjctMTAxLjYtNzUuNC0xMzAuNi0xNy4xLTI5LjUtNC45LTU5LjEgNy4yLTY5LjEgMTMuNCAyMyAzMy40IDU3LjcgNjAuMSAxMDR6TTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTIxNiAyNDhjMCAxMTguNy05Ni4xIDIxNi0yMTYgMjE2LTExOC43IDAtMjE2LTk2LjEtMjE2LTIxNiAwLTExOC43IDk2LjEtMjE2IDIxNi0yMTYgMTE4LjcgMCAyMTYgOTYuMSAyMTYgMjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcHBlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00Mi4xIDIzOS4xYzIyLjIgMCAyOSAyLjggMzMuNSAxNC42aC44di0yMi45YzAtMTEuMy00LjgtMTUuNC0xNy45LTE1LjQtMTEuMyAwLTE0LjQgMi41LTE1LjEgMTIuOEg0LjhjLjMtMTMuOSAxLjUtMTkuMSA1LjgtMjQuNEMxNy45IDE5NSAyOS41IDE5MiA1Ni43IDE5MmMzMyAwIDQ3LjEgNSA1My45IDE4LjkgMiA0LjMgNCAxNS42IDQgMjMuN3Y3Ni4zSDc2LjNsMS4zLTE5LjFoLTFjLTUuMyAxNS42LTEzLjYgMjAuNC0zNS41IDIwLjQtMzAuMyAwLTQxLjEtMTAuMS00MS4xLTM3LjMgMC0yNS4yIDEyLjMtMzUuOCA0Mi4xLTM1Ljh6bTE3LjEgNDguMWMxMy4xIDAgMTYuOS0zIDE2LjktMTMuNCAwLTkuMS00LjMtMTEuNi0xOS42LTExLjYtMTMuMSAwLTE3LjkgMy0xNy45IDEyLjEtLjEgMTAuNCAzLjcgMTIuOSAyMC42IDEyLjl6bTc3LjgtOTQuOWgzOC4zbC0xLjUgMjAuNmguOGM5LjEtMTcuMSAxNS45LTIwLjkgMzcuNS0yMC45IDE0LjQgMCAyNC43IDMgMzEuNSA5LjEgOS44IDguNiAxMi44IDIwLjQgMTIuOCA0OC4xIDAgMzAtMyA0My4xLTEyLjEgNTIuOS02LjggNy4zLTE2LjQgMTAuMS0zMy4yIDEwLjEtMjAuNCAwLTI5LjItNS41LTMzLjgtMjEuMmgtLjh2NzAuM0gxMzd2LTE2OXptODAuOSA2MC43YzAtMjcuNS0zLjMtMzIuNS0yMC43LTMyLjUtMTYuOSAwLTIwLjcgNS0yMC43IDI4LjcgMCAyOCAzLjUgMzMuNSAyMS4yIDMzLjUgMTYuNCAwIDIwLjItNS42IDIwLjItMjkuN3ptNTcuOS02MC43aDM4LjNsLTEuNSAyMC42aC44YzkuMS0xNy4xIDE1LjktMjAuOSAzNy41LTIwLjkgMTQuNCAwIDI0LjcgMyAzMS41IDkuMSA5LjggOC42IDEyLjggMjAuNCAxMi44IDQ4LjEgMCAzMC0zIDQzLjEtMTIuMSA1Mi45LTYuOCA3LjMtMTYuNCAxMC4xLTMzLjMgMTAuMS0yMC40IDAtMjkuMi01LjUtMzMuOC0yMS4yaC0uOHY3MC4zaC0zOS41di0xNjl6bTgwLjkgNjAuN2MwLTI3LjUtMy4zLTMyLjUtMjAuNy0zMi41LTE2LjkgMC0yMC43IDUtMjAuNyAyOC43IDAgMjggMy41IDMzLjUgMjEuMiAzMy41IDE2LjQgMCAyMC4yLTUuNiAyMC4yLTI5Ljd6bTUzLjgtMy44YzAtMjUuNCAzLjMtMzcuOCAxMi4zLTQ1LjggOC44LTguMSAyMi4yLTExLjMgNDUuMS0xMS4zIDQyLjggMCA1NS43IDEyLjggNTUuNyA1NS43djExLjFoLTc1LjNjLS4zIDItLjMgNC0uMyA0LjggMCAxNi45IDQuNSAyMS45IDIwLjEgMjEuOSAxMy45IDAgMTcuOS0zIDE3LjktMTMuOWgzNy41djIuM2MwIDkuOC0yLjUgMTguOS02LjggMjQuNy03LjMgOS44LTE5LjYgMTMuNi00NC4zIDEzLjYtMjcuNSAwLTQxLjYtMy4zLTUwLjYtMTIuMy04LjUtOC41LTExLjMtMjEuMy0xMS4zLTUwLjh6bTc2LjQtMTEuNmMtLjMtMS44LS4zLTMuMy0uMy0zLjggMC0xMi4zLTMuMy0xNC42LTE5LjYtMTQuNi0xNC40IDAtMTcuMSAzLTE4LjEgMTUuMWwtLjMgMy4zaDM4LjN6bTU1LjYtNDUuM2gzOC4zbC0xLjggMTkuOWguN2M2LjgtMTQuOSAxNC40LTIwLjIgMjkuNy0yMC4yIDEwLjggMCAxOS4xIDMuMyAyMy40IDkuMyA1LjMgNy4zIDYuOCAxNC40IDYuOCAzNCAwIDEuNSAwIDUgLjIgOS4zaC0zNWMuMy0xLjguMy0zLjMuMy00IDAtMTUuNC0yLTE5LjQtMTAuMy0xOS40LTYuMyAwLTEwLjggMy4zLTEzLjEgOS4zLTEgMy0xIDQuMy0xIDEyLjN2NjhoLTM4LjNWMTkyLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFwcGxlUGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExNi45IDE1OC41Yy03LjUgOC45LTE5LjUgMTUuOS0zMS41IDE0LjktMS41LTEyIDQuNC0yNC44IDExLjMtMzIuNiA3LjUtOS4xIDIwLjYtMTUuNiAzMS4zLTE2LjEgMS4yIDEyLjQtMy43IDI0LjctMTEuMSAzMy44bTEwLjkgMTcuMmMtMTcuNC0xLTMyLjMgOS45LTQwLjUgOS45LTguNCAwLTIxLTkuNC0zNC44LTkuMS0xNy45LjMtMzQuNSAxMC40LTQzLjYgMjYuNS0xOC44IDMyLjMtNC45IDgwIDEzLjMgMTA2LjMgOC45IDEzIDE5LjUgMjcuMyAzMy41IDI2LjggMTMuMy0uNSAxOC41LTguNiAzNC41LTguNiAxNi4xIDAgMjAuOCA4LjYgMzQuOCA4LjQgMTQuNS0uMyAyMy42LTEzIDMyLjUtMjYgMTAuMS0xNC44IDE0LjMtMjkuMSAxNC41LTI5LjktLjMtLjMtMjgtMTAuOS0yOC4zLTQyLjktLjMtMjYuOCAyMS45LTM5LjUgMjIuOS00MC4zLTEyLjUtMTguNi0zMi0yMC42LTM4LjgtMjEuMW0xMDAuNC0zNi4ydjE5NC45aDMwLjN2LTY2LjZoNDEuOWMzOC4zIDAgNjUuMS0yNi4zIDY1LjEtNjQuM3MtMjYuNC02NC02NC4xLTY0aC03My4yem0zMC4zIDI1LjVoMzQuOWMyNi4zIDAgNDEuMyAxNCA0MS4zIDM4LjZzLTE1IDM4LjgtNDEuNCAzOC44aC0zNC44VjE2NXptMTYyLjIgMTcwLjljMTkgMCAzNi42LTkuNiA0NC42LTI0LjloLjZ2MjMuNGgyOHYtOTdjMC0yOC4xLTIyLjUtNDYuMy01Ny4xLTQ2LjMtMzIuMSAwLTU1LjkgMTguNC01Ni44IDQzLjZoMjcuM2MyLjMtMTIgMTMuNC0xOS45IDI4LjYtMTkuOSAxOC41IDAgMjguOSA4LjYgMjguOSAyNC41djEwLjhsLTM3LjggMi4zYy0zNS4xIDIuMS01NC4xIDE2LjUtNTQuMSA0MS41LjEgMjUuMiAxOS43IDQyIDQ3LjggNDJ6bTguMi0yMy4xYy0xNi4xIDAtMjYuNC03LjgtMjYuNC0xOS42IDAtMTIuMyA5LjktMTkuNCAyOC44LTIwLjVsMzMuNi0yLjF2MTFjMCAxOC4yLTE1LjUgMzEuMi0zNiAzMS4yem0xMDIuNSA3NC42YzI5LjUgMCA0My40LTExLjMgNTUuNS00NS40TDY0MCAxOTNoLTMwLjhsLTM1LjYgMTE1LjFoLS42TDUzNy40IDE5M2gtMzEuNkw1NTcgMzM0LjlsLTIuOCA4LjZjLTQuNiAxNC42LTEyLjEgMjAuMy0yNS41IDIwLjMtMi40IDAtNy0uMy04LjktLjV2MjMuNGMxLjguNCA5LjMuNyAxMS42Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFwcGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxOC43IDI2OC43Yy0uMi0zNi43IDE2LjQtNjQuNCA1MC04NC44LTE4LjgtMjYuOS00Ny4yLTQxLjctODQuNy00NC42LTM1LjUtMi44LTc0LjMgMjAuNy04OC41IDIwLjctMTUgMC00OS40LTE5LjctNzYuNC0xOS43QzYzLjMgMTQxLjIgNCAxODQuOCA0IDI3My41cTAgMzkuMyAxNC40IDgxLjJjMTIuOCAzNi43IDU5IDEyNi43IDEwNy4yIDEyNS4yIDI1LjItLjYgNDMtMTcuOSA3NS44LTE3LjkgMzEuOCAwIDQ4LjMgMTcuOSA3Ni40IDE3LjkgNDguNi0uNyA5MC40LTgyLjUgMTAyLjYtMTE5LjMtNjUuMi0zMC43LTYxLjctOTAtNjEuNy05MS45em0tNTYuNi0xNjQuMmMyNy4zLTMyLjQgMjQuOC02MS45IDI0LTcyLjUtMjQuMSAxLjQtNTIgMTYuNC02Ny45IDM0LjktMTcuNSAxOS44LTI3LjggNDQuMy0yNS42IDcxLjkgMjYuMSAyIDQ5LjktMTEuNCA2OS41LTM0LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFydHN0YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAzNzcuNGw0MyA3NC4zQTUxLjM1IDUxLjM1IDAgMCAwIDkwLjkgNDgwaDI4NS40bC01OS4yLTEwMi42ek01MDEuOCAzNTBMMzM1LjYgNTkuM0E1MS4zOCA1MS4zOCAwIDAgMCAyOTAuMiAzMmgtODguNGwyNTcuMyA0NDcuNiA0MC43LTcwLjVjMS45LTMuMiAyMS0yOS43IDItNTkuMXpNMjc1IDMwNC41bC0xMTUuNS0yMDBMNDQgMzA0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFzeW1tZXRyaWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTE3LjUgMzA5LjJjMzguOC00MCA1OC4xLTgwIDU4LjUtMTE2LjEuOC02NS41LTU5LjQtMTE4LjItMTY5LjQtMTM1QzI3Ny45IDM4LjQgMTE4LjEgNzMuNiAwIDE0MC41IDUyIDExNCAxMTAuNiA5Mi4zIDE3MC43IDgyLjNjNzQuNS0yMC41IDE1My0yNS40IDIyMS4zLTE0LjhDNTQ0LjUgOTEuMyA1ODguOCAxOTUgNDkwLjggMjk5LjJjLTEwLjIgMTAuOC0yMiAyMS4xLTM1IDMwLjZMMzA0LjkgMTAzLjQgMTE0LjcgMzg4LjljLTY1LjYtMjkuNC03Ni41LTkwLjItMTkuMS0xNTEuMiAyMC44LTIyLjIgNDguMy00MS45IDc5LjUtNTguMSAyMC0xMi4yIDM5LjctMjIuNiA2Mi0zMC43LTY1LjEgMjAuMy0xMjIuNyA1Mi45LTE2MS42IDkyLjktMjcuNyAyOC42LTQxLjQgNTcuMS00MS43IDgyLjktLjUgMzUuMSAyMy40IDY1LjEgNjguNCA4M2wtMzQuNSA1MS43aDEwMS42bDIyLTM0LjRjMjIuMiAxIDQ1LjMgMCA2OC42LTIuN2wtMjIuOCAzNy4xaDEzNS41TDM0MCA0MDYuM2MxOC42LTUuMyAzNi45LTExLjUgNTQuNS0xOC43bDQ1LjkgNzEuOEg1NDJMNDY4LjYgMzQ5YzE4LjUtMTIuMSAzNS0yNS41IDQ4LjktMzkuOHptLTE4Ny42IDgwLjVsLTI1LTQwLjYtMzIuNyA1My4zYy0yMy40IDMuNS00Ni43IDUuMS02OS4yIDQuNGwxMDEuOS0xNTkuMyA3OC43IDEyM2MtMTcuMiA3LjQtMzUuMyAxMy45LTUzLjcgMTkuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXRsYXNzaWFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1Mi4yIDIzNi40Yy03LjctOC4yLTE5LjctNy43LTI0LjggMi44TDEuNiA0OTAuMmMtNSAxMCAyLjQgMjEuNyAxMy40IDIxLjdoMTc1YzUuOC4xIDExLTMuMiAxMy40LTguNCAzNy45LTc3LjggMTUuMS0xOTYuMy01MS4yLTI2Ny4xek0yNDQuNCA4LjFjLTEyMi4zIDE5My40LTguNSAzNDguNiA2NSA0OTUuNSAyLjUgNS4xIDcuNyA4LjQgMTMuNCA4LjRINDk3YzExLjIgMCAxOC40LTExLjggMTMuNC0yMS43IDAgMC0yMzQuNS00NzAuNi0yNDAuNC00ODIuMy01LjMtMTAuNi0xOC44LTEwLjgtMjUuNi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBdWRpYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MCAxOTkuOXY1NGwtMzIwIDIwMEwwIDI1NHYtNTRsMzIwIDIwMCAzMjAtMjAwLjF6bS0xOTQuNSA3Mmw0Ny4xLTI5LjRjLTM3LjItNTUuOC0xMDAuNy05Mi42LTE3Mi43LTkyLjYtNzIgMC0xMzUuNSAzNi43LTE3Mi42IDkyLjRoLjNjMi41LTIuMyA1LjEtNC41IDcuNy02LjcgODkuNy03NC40IDIxOS40LTU4LjEgMjkwLjIgMzYuM3ptLTIyMC4xIDE4LjhjMTYuOS0xMS45IDM2LjUtMTguNyA1Ny40LTE4LjcgMzQuNCAwIDY1LjIgMTguNCA4Ni40IDQ3LjZsNDUuNC0yOC40Yy0yMC45LTI5LjktNTUuNi00OS41LTk0LjgtNDkuNS0zOC45IDAtNzMuNCAxOS40LTk0LjQgNDl6TTEwMy42IDE2MS4xYzEzMS44LTEwNC4zIDMxOC4yLTc2LjQgNDE3LjUgNjIuMWwuNyAxIDQ4LjgtMzAuNEM1MTcuMSAxMTIuMSA0MjQuOCA1OC4xIDMxOS45IDU4LjFjLTEwMy41IDAtMTk2LjYgNTMuNS0yNTAuNSAxMzUuNiA5LjktMTAuNSAyMi43LTIzLjUgMzQuMi0zMi42em00NjcgMzIuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXV0b3ByZWZpeGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxOC40IDE2bC0xNjEgNDgwaDc3LjVsMjUuNC04MS40aDExOS41TDQwNSA0OTZoNzcuNUwzMTguNCAxNnptLTQwLjMgMzQxLjlsNDEuMi0xMzAuNGgxLjVsNDAuOSAxMzAuNGgtODMuNnpNNjQwIDQwNWwtMTAtMzEuNEw0NjIuMSAzNThsMTkuNCA1Ni41TDY0MCA0MDV6bS00NjIuMS00N0wxMCAzNzMuNyAwIDQwNWwxNTguNSA5LjQgMTkuNC01Ni40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBdmlhbmV4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1My4xIDMyaC0zMTJjLTM4LjkgMC03Ni4yIDMxLjItODMuMyA2OS43TDEuMiA0MTAuM0MtNS45IDQ0OC44IDE5LjkgNDgwIDU4LjkgNDgwaDMxMmMzOC45IDAgNzYuMi0zMS4yIDgzLjMtNjkuN2w1Ni43LTMwOC41YzctMzguNi0xOC44LTY5LjgtNTcuOC02OS44em0tNTguMiAzNDcuM2wtMzIgMTMuNS0xMTUuNC0xMTBjLTE0LjcgMTAtMjkuMiAxOS41LTQxLjcgMjcuMWwyMi4xIDY0LjItMTcuOSAxMi43LTQwLjYtNjEtNTIuNC00OC4xIDE1LjctMTUuNCA1OCAzMS4xYzkuMy0xMC41IDIwLjgtMjIuNiAzMi44LTM0LjlMMjAzIDIyOC45bC02OC44LTk5LjggMTguOC0yOC45IDguOS00LjhMMjY1IDIwNy44bDQuOSA0LjVjMTkuNC0xOC44IDMzLjgtMzIuNCAzMy44LTMyLjQgNy43LTYuNSAyMS41LTIuOSAzMC43IDcuOSA5IDEwLjUgMTAuNiAyNC43IDIuNyAzMS4zLTEuOCAxLjMtMTUuNSAxMS40LTM1LjMgMjUuNmw0LjUgNy4zIDk0LjkgMTE5LjQtNi4zIDcuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXZpYXRvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwNy4yIDI4My41bC0xOS00MS44SDM2LjFsLTE5IDQxLjhIMGw2Mi4yLTEzMS40IDYyLjIgMTMxLjRoLTE3LjJ6bS00NS05OC4xbC0xOS42IDQyLjVoMzkuMmwtMTkuNi00Mi41em0xMTIuNyAxMDIuNGwtNjIuMi0xMzEuNGgxNy4xbDQ1LjEgOTYgNDUuMS05NmgxN2wtNjIuMSAxMzEuNHptODAuNi00LjNWMTU2LjRIMjcxdjEyNy4xaC0xNS41em0yMDkuMS0xMTUuNnYxMTUuNmgtMTcuM1YxNjcuOWgtNDEuMnYtMTEuNWg5OS42djExLjVoLTQxLjF6TTY0MCAyMTguOGMwIDkuMi0xLjcgMTcuOC01LjEgMjUuOC0zLjQgOC04LjIgMTUuMS0xNC4yIDIxLjEtNiA2LTEzLjEgMTAuOC0yMS4xIDE0LjItOCAzLjQtMTYuNiA1LjEtMjUuOCA1LjFzLTE3LjgtMS43LTI1LjgtNS4xYy04LTMuNC0xNS4xLTguMi0yMS4xLTE0LjItNi02LTEwLjgtMTMtMTQuMi0yMS4xLTMuNC04LTUuMS0xNi42LTUuMS0yNS44czEuNy0xNy44IDUuMS0yNS44YzMuNC04IDguMi0xNS4xIDE0LjItMjEuMSA2LTYgMTMtOC40IDIxLjEtMTEuOSA4LTMuNCAxNi42LTUuMSAyNS44LTUuMXMxNy44IDEuNyAyNS44IDUuMWM4IDMuNCAxNS4xIDUuOCAyMS4xIDExLjkgNiA2IDEwLjcgMTMuMSAxNC4yIDIxLjEgMy40IDggNS4xIDE2LjYgNS4xIDI1Ljh6bS0xNS41IDBjMC03LjMtMS4zLTE0LTMuOS0yMC4zLTIuNi02LjMtNi4yLTExLjctMTAuOC0xNi4zLTQuNi00LjYtMTAtOC4yLTE2LjItMTAuOS02LjItMi43LTEyLjgtNC0xOS44LTRzLTEzLjYgMS4zLTE5LjggNGMtNi4yIDIuNy0xMS42IDYuMy0xNi4yIDEwLjktNC42IDQuNi04LjIgMTAtMTAuOCAxNi4zLTIuNiA2LjMtMy45IDEzLjEtMy45IDIwLjMgMCA3LjMgMS4zIDE0IDMuOSAyMC4zIDIuNiA2LjMgNi4yIDExLjcgMTAuOCAxNi4zIDQuNiA0LjYgMTAgOC4yIDE2LjIgMTAuOSA2LjIgMi43IDEyLjggNCAxOS44IDRzMTMuNi0xLjMgMTkuOC00YzYuMi0yLjcgMTEuNi02LjMgMTYuMi0xMC45IDQuNi00LjYgOC4yLTEwIDEwLjgtMTYuMyAyLjYtNi4zIDMuOS0xMy4xIDMuOS0yMC4zem0tOTQuOCA5Ni43di02LjNsODguOS0xMC0yNDIuOSAxMy40Yy42LTIuMiAxLjEtNC42IDEuNC03LjIuMy0yIC41LTQuMi42LTYuNWw2NC44LTguMS02NC45IDEuOWMwLS40LS4xLS43LS4xLTEuMS0yLjgtMTcuMi0yNS41LTIzLjctMjUuNS0yMy43bC0xLjEtMjYuM2gyMy44bDE5IDQxLjhoMTcuMUwzNDguNiAxNTJsLTYyLjIgMTMxLjRoMTcuMWwxOS00MS44aDIzLjZMMzQ1IDI2OHMtMjIuNyA2LjUtMjUuNSAyMy43Yy0uMS4zLS4xLjctLjEgMS4xbC02NC45LTEuOSA2NC44IDguMWMuMSAyLjMuMyA0LjQuNiA2LjUuMyAyLjYuOCA1IDEuNCA3LjJMNzguNCAyOTkuMmw4OC45IDEwdjYuM2MtNS45LjktMTAuNSA2LTEwLjUgMTIuMiAwIDYuOCA1LjYgMTIuNCAxMi40IDEyLjQgNi44IDAgMTIuNC01LjYgMTIuNC0xMi40IDAtNi4yLTQuNi0xMS4zLTEwLjUtMTIuMnYtNS44bDgwLjMgOXY1LjRjLTUuNyAxLjEtOS45IDYuMi05LjkgMTIuMSAwIDYuOCA1LjYgMTAuMiAxMi40IDEwLjIgNi44IDAgMTIuNC0zLjQgMTIuNC0xMC4yIDAtNi00LjMtMTEtOS45LTEyLjF2LTQuOWwyOC40IDMuMnYyMy43aC01LjlWMzYwaDUuOXYtNi42aDV2Ni42aDUuOXYtMTMuOGgtNS45VjMyM2wzOC4zIDQuM2M4LjEgMTEuNCAxOSAxMy42IDE5IDEzLjZsLS4xIDYuNy01LjEuMi0uMSAxMi4xaDQuMWwuMS01aDUuMmwuMSA1aDQuMWwtLjEtMTIuMS01LjEtLjItLjEtNi43czEwLjktMi4xIDE5LTEzLjZsMzguMy00LjN2MjMuMmgtNS45VjM2MGg1Ljl2LTYuNmg1djYuNmg1Ljl2LTEzLjhoLTUuOXYtMjMuN2wyOC40LTMuMnY0LjljLTUuNyAxLjEtOS45IDYuMi05LjkgMTIuMSAwIDYuOCA1LjYgMTAuMiAxMi40IDEwLjIgNi44IDAgMTIuNC0zLjQgMTIuNC0xMC4yIDAtNi00LjMtMTEtOS45LTEyLjF2LTUuNGw4MC4zLTl2NS44Yy01LjkuOS0xMC41IDYtMTAuNSAxMi4yIDAgNi44IDUuNiAxMi40IDEyLjQgMTIuNCA2LjggMCAxMi40LTUuNiAxMi40LTEyLjQtLjItNi4zLTQuNy0xMS40LTEwLjctMTIuM3ptLTIwMC44LTg3LjZsMTkuNi00Mi41IDE5LjYgNDIuNWgtMTcuOWwtMS43LTQwLjMtMS43IDQwLjNoLTE3Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUF3cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODAuNDEgMjAzLjAxYy0uNzIgMjIuNjUgMTAuNiAzMi42OCAxMC44OCAzOS4wNWE4LjE2NCA4LjE2NCAwIDAgMS00LjEgNi4yN2wtMTIuOCA4Ljk2YTEwLjY2IDEwLjY2IDAgMCAxLTUuNjMgMS45MmMtLjQzLS4wMi04LjE5IDEuODMtMjAuNDgtMjUuNjFhNzguNjA4IDc4LjYwOCAwIDAgMS02Mi42MSAyOS40NWMtMTYuMjguODktNjAuNC05LjI0LTU4LjEzLTU2LjIxLTEuNTktMzguMjggMzQuMDYtNjIuMDYgNzAuOTMtNjAuMDUgNy4xLjAyIDIxLjYuMzcgNDYuOTkgNi4yN3YtMTUuNjJjMi42OS0yNi40Ni0xNC43LTQ2Ljk5LTQ0LjgxLTQzLjkxLTIuNC4wMS0xOS40LS41LTQ1Ljg0IDEwLjExLTcuMzYgMy4zOC04LjMgMi44Mi0xMC43NSAyLjgyLTcuNDEgMC00LjM2LTIxLjQ4LTIuOTQtMjQuMiA1LjIxLTYuNCAzNS44Ni0xOC4zNSA2NS45NC0xOC4xOGE3Ni44NTcgNzYuODU3IDAgMCAxIDU1LjY5IDE3LjI4IDcwLjI4NSA3MC4yODUgMCAwIDEgMTcuNjcgNTIuMzZsLS4wMSA2OS4yOXpNOTMuOTkgMjM1LjRjMzIuNDMtLjQ3IDQ2LjE2LTE5Ljk3IDQ5LjI5LTMwLjQ3IDIuNDYtMTAuMDUgMi4wNS0xNi40MSAyLjA1LTI3LjQtOS42Ny0yLjMyLTIzLjU5LTQuODUtMzkuNTYtNC44Ny0xNS4xNS0xLjE0LTQyLjgyIDUuNjMtNDEuNzQgMzIuMjYtMS4yNCAxNi43OSAxMS4xMiAzMS40IDI5Ljk2IDMwLjQ4em0xNzAuOTIgMjMuMDVjLTcuODYuNzItMTEuNTItNC44Ni0xMi42OC0xMC4zN2wtNDkuOC0xNjQuNjVjLS45Ny0yLjc4LTEuNjEtNS42NS0xLjkyLTguNThhNC42MSA0LjYxIDAgMCAxIDMuODYtNS4yNWMuMjQtLjA0LTIuMTMgMCAyMi4yNSAwIDguNzgtLjg4IDExLjY0IDYuMDMgMTIuNTUgMTAuMzdsMzUuNzIgMTQwLjgzIDMzLjE2LTE0MC44M2MuNTMtMy4yMiAyLjk0LTExLjA3IDEyLjgtMTAuMjRoMTcuMTZjMi4xNy0uMTggMTEuMTEtLjUgMTIuNjggMTAuMzdsMzMuNDIgMTQyLjYzTDQyMC45OCA4MC4xYy40OC0yLjE4IDIuNzItMTEuMzcgMTIuNjgtMTAuMzdoMTkuNzJjLjg1LS4xMyA2LjE1LS44MSA1LjI1IDguNTgtLjQzIDEuODUgMy40MS0xMC42Ni01Mi43NSAxNjkuOS0xLjE1IDUuNTEtNC44MiAxMS4wOS0xMi42OCAxMC4zN2gtMTguNjljLTEwLjk0IDEuMTUtMTIuNTEtOS42Ni0xMi42OC0xMC43NUwzMjguNjcgMTEwLjdsLTMyLjc4IDEzNi45OWMtLjE2IDEuMDktMS43MyAxMS45LTEyLjY4IDEwLjc1aC0xOC4zem0yNzMuNDggNS42M2MtNS44OC4wMS0zMy45Mi0uMy01Ny4zNi0xMi4yOWExMi44MDIgMTIuODAyIDAgMCAxLTcuODEtMTEuOTF2LTEwLjc1YzAtOC40NSA2LjItNi45IDguODMtNS44OSAxMC4wNCA0LjA2IDE2LjQ4IDcuMTQgMjguODEgOS42IDM2LjY1IDcuNTMgNTIuNzctMi4zIDU2LjcyLTQuNDggMTMuMTUtNy44MSAxNC4xOS0yNS42OCA1LjI1LTM0Ljk1LTEwLjQ4LTguNzktMTUuNDgtOS4xMi01My4xMy0yMS00LjY0LTEuMjktNDMuNy0xMy42MS00My43OS01Mi4zNi0uNjEtMjguMjQgMjUuMDUtNTYuMTggNjkuNTItNTUuOTUgMTIuNjctLjAxIDQ2LjQzIDQuMTMgNTUuNTcgMTUuNjIgMS4zNSAyLjA5IDIuMDIgNC41NSAxLjkyIDcuMDR2MTAuMTFjMCA0LjQ0LTEuNjIgNi42Ni00Ljg3IDYuNjYtNy43MS0uODYtMjEuMzktMTEuMTctNDkuMTYtMTAuNzUtNi44OS0uMzYtMzkuODkuOTEtMzguNDEgMjQuOTctLjQzIDE4Ljk2IDI2LjYxIDI2LjA3IDI5LjcgMjYuODkgMzYuNDYgMTAuOTcgNDguNjUgMTIuNzkgNjMuMTIgMjkuNTggMTcuMTQgMjIuMjUgNy45IDQ4LjMgNC4zNSA1NS40NC0xOS4wOCAzNy40OS02OC40MiAzNC40NC02OS4yNiAzNC40MnptNDAuMiAxMDQuODZjLTcwLjAzIDUxLjcyLTE3MS42OSA3OS4yNS0yNTguNDkgNzkuMjVBNDY5LjEyNyA0NjkuMTI3IDAgMCAxIDIuODMgMzI3LjQ2Yy02LjUzLTUuODktLjc3LTEzLjk2IDcuMTctOS40N2E2MzcuMzcgNjM3LjM3IDAgMCAwIDMxNi44OCA4NC4xMiA2MzAuMjIgNjMwLjIyIDAgMCAwIDI0MS41OS00OS41NWMxMS43OC01IDIxLjc3IDcuOCAxMC4xMiAxNi4zOHptMjkuMTktMzMuMjljLTguOTYtMTEuNTItNTkuMjgtNS4zOC04MS44MS0yLjY5LTYuNzkuNzctNy45NC01LjEyLTEuNzktOS40NyA0MC4wNy0yOC4xNyAxMDUuODgtMjAuMSAxMTMuNDQtMTAuNjMgNy41NSA5LjQ3LTIuMDUgNzUuNDEtMzkuNTYgMTA2LjkxLTUuNzYgNC44Ny0xMS4yNyAyLjMtOC43MS00LjEgOC40NC0yMS4yNSAyNy4zOS02OC40OSAxOC40My04MC4wMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFuZGNhbXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2LDhDMTE5LDgsOCwxMTksOCwyNTZTMTE5LDUwNCwyNTYsNTA0LDUwNCwzOTMsNTA0LDI1NiwzOTMsOCwyNTYsOFptNDguMiwzMjYuMWgtMTgxTDIwNy45LDE3OGgxODFaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhdHRsZU5ldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDguNjEgMjI1LjYyYzI2Ljg3LjE4IDM1LjU3LTcuNDMgMzguOTItMTIuMzcgMTIuNDctMTYuMzItNy4wNi00Ny42LTUyLjg1LTcxLjMzIDE3Ljc2LTMzLjU4IDMwLjExLTYzLjY4IDM2LjM0LTg1LjMgMy4zOC0xMS44MyAxLjA5LTE5IC40NS0yMC4yNS0xLjcyIDEwLjUyLTE1Ljg1IDQ4LjQ2LTQ4LjIgMTAwLjA1LTI1LTExLjIyLTU2LjUyLTIwLjEtOTMuNzctMjMuOC04Ljk0LTE2Ljk0LTM0Ljg4LTYzLjg2LTYwLjQ4LTg4LjkzQzI1Mi4xOCA3LjE0IDIzOC43IDEuMDcgMjI4LjE4LjIyaC0uMDVjLTEzLjgzLTEuNTUtMjIuNjcgNS44NS0yNy40IDExLTE3LjIgMTguNTMtMjQuMzMgNDguODctMjUgODQuMDctNy4yNC0xMi4zNS0xNy4xNy0yNC42My0yOC41LTI1LjkzaC0uMThjLTIwLjY2LTMuNDgtMzguMzkgMjkuMjItMzYgODEuMjktMzguMzYgMS4zOC03MSA1Ljc1LTkzIDExLjIzLTkuOSAyLjQ1LTE2LjIyIDcuMjctMTcuNzYgOS43MiAxLS4zOCAyMi40LTkuMjIgMTExLjU2LTkuMjIgNS4yMiA1MyAyOS43NSAxMDEuODIgMjYgOTMuMTktOS43MyAxNS40LTM4LjI0IDYyLjM2LTQ3LjMxIDk3LjctNS44NyAyMi44OC00LjM3IDM3LjYxLjE1IDQ3LjE0IDUuNTcgMTIuNzUgMTYuNDEgMTYuNzIgMjMuMiAxOC4yNiAyNSA1LjcxIDU1LjM4LTMuNjMgODYuNy0yMS4xNC03LjUzIDEyLjg0LTEzLjkgMjguNTEtOS4wNiAzOS4zNCA3LjMxIDE5LjY1IDQ0LjQ5IDE4LjY2IDg4LjQ0LTkuNDUgMjAuMTggMzIuMTggNDAuMDcgNTcuOTQgNTUuNyA3NC4xMmEzOS43OSAzOS43OSAwIDAgMCA4Ljc1IDcuMDljNS4xNCAzLjIxIDguNTggMy4zNyA4LjU4IDMuMzctOC4yNC02Ljc1LTM0LTM4LTYyLjU0LTkxLjc4IDIyLjIyLTE2IDQ1LjY1LTM4Ljg3IDY3LjQ3LTY5LjI3IDEyMi44MiA0LjYgMTQzLjI5LTI0Ljc2IDE0OC0zMS42NCAxNC42Ny0xOS44OCAzLjQzLTU3LjQ0LTU3LjMyLTkzLjY5em0tNzcuODUgMTA2LjIyYzIzLjgxLTM3LjcxIDMwLjM0LTY3Ljc3IDI5LjQ1LTkyLjMzIDI3Ljg2IDE3LjU3IDQ3LjE4IDM3LjU4IDQ5LjA2IDU4LjgzIDEuMTQgMTIuOTMtOC4xIDI5LjEyLTc4LjUxIDMzLjV6TTIxNi45IDM4Ny42OWM5Ljc2LTYuMjMgMTkuNTMtMTMuMTIgMjkuMi0yMC40OSA2LjY4IDEzLjMzIDEzLjYgMjYuMSAyMC42IDM4LjE5LTQwLjYgMjEuODYtNjguODQgMTIuNzYtNDkuOC0xNy43em0yMTUtMTcxLjM1Yy0xMC4yOS01LjM0LTIxLjE2LTEwLjM0LTMyLjM4LTE1LjA1YTcyMi40NTkgNzIyLjQ1OSAwIDAgMCAyMi43NC0zNi45YzM5LjA2IDI0LjEgNDUuOSA1My4xOCA5LjY0IDUxLjk1ek0yNzkuMTggMzk4Yy01LjUxLTExLjM1LTExLTIzLjUtMTYuNS0zNi40NCA0My4yNSAxLjI3IDYyLjQyLTE4LjczIDYzLjI4LTIwLjQxIDAgLjA3LTI1IDE1LjY0LTYyLjUzIDEyLjI1YTcxOC43OCA3MTguNzggMCAwIDAgODUuMDYtODRxMTMuMDYtMTUuMzEgMjQuOTMtMzEuMTFjLS4zNi0uMjktMS41NC0zLTE2LjUxLTEyLTUxLjcgNjAuMjctMTAyLjM0IDk4LTEzMi43NSAxMTUuOTItMjAuNTktMTEuMTgtNDAuODQtMzEuNzgtNTUuNzEtNjEuNDktMjAtMzkuOTItMzAtODIuMzktMzEuNTctMTE2LjA3IDEyLjMuOTEgMjUuMjcgMi4xNyAzOC44NSAzLjg4LTIyLjI5IDM2LjgtMTQuMzkgNjMtMTMuNDcgNjQuMjMgMC0uMDctLjk1LTI5LjE3IDIwLjE0LTU5LjU3YTY5NS4yMyA2OTUuMjMgMCAwIDAgNDQuNjcgMTUyLjg0Yy45My0uMzggMS44NC44OCAxOC42Ny04LjI1LTI2LjMzLTc0LjQ3LTMzLjc2LTEzOC4xNy0zNC0xNzMuNDMgMjAtMTIuNDIgNDguMTgtMTkuOCA4MS42My0xNy44MSA0NC41NyAyLjY3IDg2LjM2IDE1LjI1IDExNi4zMiAzMC43MXEtMTAuNjkgMTUuNjYtMjMuMzMgMzIuNDdDMzY1LjYzIDE1MiAzMzkuMSAxNDUuODQgMzM3LjUgMTQ2Yy4xMSAwIDI1LjkgMTQuMDcgNDEuNTIgNDcuMjJhNzE3LjYzIDcxNy42MyAwIDAgMC0xMTUuMzQtMzEuNzEgNjQ2LjYwOCA2NDYuNjA4IDAgMCAwLTM5LjM5LTYuMDVjLS4wNy40NS0xLjgxIDEuODUtMi4xNiAyMC4zM0MzMDAgMTkwLjI4IDM1OC43OCAyMTUuNjggMzg5LjM2IDIzM2MuNzQgMjMuNTUtNi45NSA1MS42MS0yNS40MSA3OS41Ny0yNC42IDM3LjMxLTU2LjM5IDY3LjIzLTg0Ljc3IDg1LjQzem0yNy40LTI4N2MtNDQuNTYtMS42Ni03My41OCA3LjQzLTk0LjY5IDIwLjY3IDItNTIuMyAyMS4zMS03Ni4zOCAzOC4yMS03NS4yOEMyNjcgNTIuMTUgMzA1IDEwOC41NSAzMDYuNTggMTExem0tMTMwLjY1IDMuMWMuNDggMTIuMTEgMS41OSAyNC42MiAzLjIxIDM3LjI4LTE0LjU1LS44NS0yOC43NC0xLjI1LTQyLjQtMS4yNi0uMDggMy4yNC0uMTItNTEgMjQuNjctNDkuNTloLjA5YzUuNzYgMS4wOSAxMC42MyA2Ljg4IDE0LjQzIDEzLjU3em0tMjguMDYgMTYyYzIwLjc2IDM5LjcgNDMuMyA2MC41NyA2NS4yNSA3Mi4zMS00Ni43OSAyNC43Ni03Ny41MyAyMC04NC45MiA0LjUxLS4yLS4yMS0xMS4xMy0xNS4zIDE5LjY3LTc2Ljgxem0yMTAuMDYgNzQuOFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCZWhhbmNlU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ni41IDI5M2MwIDE5LjMtMTQgMjUuNC0zMS4yIDI1LjRoLTQ1LjF2LTUyLjloNDZjMTguNi4xIDMwLjMgNy44IDMwLjMgMjcuNXptLTcuNy04Mi4zYzAtMTcuNy0xMy43LTIxLjktMjguOS0yMS45aC0zOS42djQ0LjhIMTUzYzE1LjEgMCAyNS44LTYuNiAyNS44LTIyLjl6bTEzMi4zIDIzLjJjLTE4LjMgMC0zMC41IDExLjQtMzEuNyAyOS43aDYyLjJjLTEuNy0xOC41LTExLjMtMjkuNy0zMC41LTI5Ljd6TTQ0OCA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDM1MmMyNi41IDAgNDggMjEuNSA0OCA0OHpNMjcxLjcgMTg1aDc3Ljh2LTE4LjloLTc3LjhWMTg1em0tNDMgMTEwLjNjMC0yNC4xLTExLjQtNDQuOS0zNS01MS42IDE3LjItOC4yIDI2LjItMTcuNyAyNi4yLTM3IDAtMzguMi0yOC41LTQ3LjUtNjEuNC00Ny41SDY4djE5Mmg5My4xYzM0LjktLjIgNjcuNi0xNi45IDY3LjYtNTUuOXpNMzgwIDI4MC41YzAtNDEuMS0yNC4xLTc1LjQtNjcuNi03NS40LTQyLjQgMC03MS4xIDMxLjgtNzEuMSA3My42IDAgNDMuMyAyNy4zIDczIDcxLjEgNzMgMzMuMiAwIDU0LjctMTQuOSA2NS4xLTQ2LjhoLTMzLjdjLTMuNyAxMS45LTE4LjYgMTguMS0zMC4yIDE4LjEtMjIuNCAwLTM0LjEtMTMuMS0zNC4xLTM1LjNoMTAwLjJjLjEtMi4zLjMtNC44LjMtNy4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCZWhhbmNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzMiAyMzcuMmMzMS44LTE1LjIgNDguNC0zOC4yIDQ4LjQtNzQgMC03MC42LTUyLjYtODcuOC0xMTMuMy04Ny44SDB2MzU0LjRoMTcxLjhjNjQuNCAwIDEyNC45LTMwLjkgMTI0LjktMTAyLjkgMC00NC41LTIxLjEtNzcuNC02NC43LTg5Ljd6TTc3LjkgMTM1LjlIMTUxYzI4LjEgMCA1My40IDcuOSA1My40IDQwLjUgMCAzMC4xLTE5LjcgNDIuMi00Ny41IDQyLjJoLTc5di04Mi43em04My4zIDIzMy43SDc3LjlWMjcyaDg0LjljMzQuMyAwIDU2IDE0LjMgNTYgNTAuNiAwIDM1LjgtMjUuOSA0Ny01Ny42IDQ3em0zNTguNS0yNDAuN0gzNzZWOTRoMTQzLjd2MzQuOXpNNTc2IDMwNS4yYzAtNzUuOS00NC40LTEzOS4yLTEyNC45LTEzOS4yLTc4LjIgMC0xMzEuMyA1OC44LTEzMS4zIDEzNS44IDAgNzkuOSA1MC4zIDEzNC43IDEzMS4zIDEzNC43IDYxLjMgMCAxMDEtMjcuNiAxMjAuMS04Ni4zSDUwOWMtNi43IDIxLjktMzQuMyAzMy41LTU1LjcgMzMuNS00MS4zIDAtNjMtMjQuMi02My02NS4zaDE4NS4xYy4zLTQuMi42LTguNy42LTEzLjJ6TTM5MC40IDI3NGMyLjMtMzMuNyAyNC43LTU0LjggNTguNS01NC44IDM1LjQgMCA1My4yIDIwLjggNTYuMiA1NC44SDM5MC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCaW1vYmplY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDMySDMyQzE0LjQgMzIgMCA0Ni40IDAgNjR2Mzg0YzAgMTcuNiAxNC40IDMyIDMyIDMyaDM4NGMxNy42IDAgMzItMTQuNCAzMi0zMlY2NGMwLTE3LjYtMTQuNC0zMi0zMi0zMnptLTY0IDI1Ny40YzAgNDkuNC0xMS40IDgyLjYtMTAzLjggODIuNmgtMTYuOWMtNDQuMSAwLTYyLjQtMTQuOS03MC40LTM4LjhoLS45VjM2OEg5NlYxMzZoNjR2NzQuN2gxLjFjNC42LTMwLjUgMzkuNy0zOC44IDY5LjctMzguOGgxNy4zYzkyLjQgMCAxMDMuOCAzMy4xIDEwMy44IDgyLjV2MzV6bS02NC0yOC45djIyLjljMCAyMS43LTMuNCAzMy44LTM4LjQgMzMuOGgtNDUuM2MtMjguOSAwLTQ0LjEtNi41LTQ0LjEtMzUuN3YtMTljMC0yOS4zIDE1LjItMzUuNyA0NC4xLTM1LjdoNDUuM2MzNS0uMiAzOC40IDEyIDM4LjQgMzMuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQml0YnVja2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyLjIgMzJBMTYgMTYgMCAwIDAgNiA0Ny44YTI2LjM1IDI2LjM1IDAgMCAwIC4yIDIuOGw2Ny45IDQxMi4xYTIxLjc3IDIxLjc3IDAgMCAwIDIxLjMgMTguMmgzMjUuN2ExNiAxNiAwIDAgMCAxNi0xMy40TDUwNSA1MC43YTE2IDE2IDAgMCAwLTEzLjItMTguMyAyNC41OCAyNC41OCAwIDAgMC0yLjgtLjJMMjIuMiAzMnptMjg1LjkgMjk3LjhoLTEwNGwtMjguMS0xNDdoMTU3LjNsLTI1LjIgMTQ3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCaXRjb2luIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNCAyNTZjMCAxMzYuOTY3LTExMS4wMzMgMjQ4LTI0OCAyNDhTOCAzOTIuOTY3IDggMjU2IDExOS4wMzMgOCAyNTYgOHMyNDggMTExLjAzMyAyNDggMjQ4em0tMTQxLjY1MS0zNS4zM2M0LjkzNy0zMi45OTktMjAuMTkxLTUwLjczOS01NC41NS02Mi41NzNsMTEuMTQ2LTQ0LjcwMi0yNy4yMTMtNi43ODEtMTAuODUxIDQzLjUyNGMtNy4xNTQtMS43ODMtMTQuNTAyLTMuNDY0LTIxLjgwMy01LjEzbDEwLjkyOS00My44MS0yNy4xOTgtNi43ODEtMTEuMTUzIDQ0LjY4NmMtNS45MjItMS4zNDktMTEuNzM1LTIuNjgyLTE3LjM3Ny00LjA4NGwuMDMxLS4xNC0zNy41My05LjM3LTcuMjM5IDI5LjA2MnMyMC4xOTEgNC42MjcgMTkuNzY1IDQuOTEzYzExLjAyMiAyLjc1MSAxMy4wMTQgMTAuMDQ0IDEyLjY4IDE1LjgyNWwtMTIuNjk2IDUwLjkyNWMuNzYuMTk0IDEuNzQ0LjQ3MyAyLjgyOS45MDctLjkwNy0uMjI1LTEuODc2LS40NzMtMi44NzYtLjcxM2wtMTcuNzk2IDcxLjMzOGMtMS4zNDkgMy4zNDgtNC43NjcgOC4zNy0xMi40NzEgNi40NjQuMjcxLjM5NS0xOS43OC00LjkzNy0xOS43OC00LjkzN2wtMTMuNTEgMzEuMTQ3IDM1LjQxNCA4LjgyN2M2LjU4OCAxLjY1MSAxMy4wNDUgMy4zNzkgMTkuNCA1LjAwNmwtMTEuMjYyIDQ1LjIxMyAyNy4xODIgNi43ODEgMTEuMTUzLTQ0LjczM2ExMDM4LjIwOSAxMDM4LjIwOSAwIDAgMCAyMS42ODcgNS42MjdsLTExLjExNSA0NC41MjMgMjcuMjEzIDYuNzgxIDExLjI2Mi00NS4xMjhjNDYuNDA0IDguNzgxIDgxLjI5OSA1LjIzOSA5NS45ODYtMzYuNzI3IDExLjgzNi0zMy43OS0uNTg5LTUzLjI4MS0yNS4wMDQtNjUuOTkxIDE3Ljc4LTQuMDk4IDMxLjE3NC0xNS43OTIgMzQuNzQ3LTM5Ljk0OXptLTYyLjE3NyA4Ny4xNzljLTguNDEgMzMuNzktNjUuMzA4IDE1LjUyMy04My43NTUgMTAuOTQzbDE0Ljk0NC01OS44OTljMTguNDQ2IDQuNjAzIDc3LjYgMTMuNzE3IDY4LjgxMSA0OC45NTZ6bTguNDE3LTg3LjY2N2MtNy42NzMgMzAuNzM2LTU1LjAzMSAxNS4xMi03MC4zOTMgMTEuMjkybDEzLjU0OC01NC4zMjdjMTUuMzYzIDMuODI4IDY0LjgzNiAxMC45NzMgNTYuODQ1IDQzLjAzNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQml0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03OC40IDY3LjJDMTczLjgtMjIgMzI0LjUtMjQgNDIxLjUgNzFjMTQuMyAxNC4xLTYuNCAzNy4xLTIyLjQgMjEuNS04NC44LTgyLjQtMjE1LjgtODAuMy0yOTguOS0zLjItMTYuMyAxNS4xLTM2LjUtOC4zLTIxLjgtMjIuMXptOTguOSA0MTguNmMxOS4zIDUuNyAyOS4zLTIzLjYgNy45LTMwQzczIDQyMS45IDkuNCAzMDYuMSAzNy43IDE5NC44YzUtMTkuNi0yNC45LTI4LjEtMzAuMi03LjEtMzIuMSAxMjcuNCA0MS4xIDI1OS44IDE2OS44IDI5OC4xem0xNDguMS0yYzEyMS45LTQwLjIgMTkyLjktMTY2LjkgMTY0LjQtMjkxLTQuNS0xOS43LTM0LjktMTMuOC0zMCA3LjkgMjQuMiAxMDcuNy0zNy4xIDIxNy45LTE0My4yIDI1My40LTIxLjIgNy0xMC40IDM2IDguOCAyOS43em0tNjIuOS03OWwuMi03MS44YzAtOC4yLTYuNi0xNC44LTE0LjgtMTQuOC04LjIgMC0xNC44IDYuNy0xNC44IDE0LjhsLS4yIDcxLjhjMCA4LjIgNi42IDE0LjggMTQuOCAxNC44czE0LjgtNi42IDE0LjgtMTQuOHptNzEtMjY5YzIuMSA5MC45IDQuNyAxMzEuOS04NS41IDEzMi41LTkyLjUtLjctODYuOS00NC4zLTg1LjUtMTMyLjUgMC0yMS44LTMyLjUtMTkuNi0zMi41IDB2NzEuNmMwIDY5LjMgNjAuNyA5MC45IDExOCA5MC4xIDU3LjMuOCAxMTgtMjAuOCAxMTgtOTAuMXYtNzEuNmMwLTE5LjYtMzIuNS0yMS44LTMyLjUgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmxhY2tUaWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnY0NDhoNDQ4VjMySDB6bTMxNi41IDMyNS4yTDIyNCA0NDUuOWwtOTIuNS04OC43IDY0LjUtMTg0LTY0LjUtODYuNmgxODQuOUwyNTIgMTczLjJsNjQuNSAxODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJsYWNrYmVycnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTY2IDExNi45YzAgMjMuNC0xNi40IDQ5LjEtNzIuNSA0OS4xSDIzLjRsMjEtODguOGg2Ny44YzQyLjEgMCA1My44IDIzLjMgNTMuOCAzOS43em0xMjYuMi0zOS43aC02Ny44TDIwNS43IDE2Nmg3MC4xYzUzLjggMCA3MC4xLTI1LjcgNzAuMS00OS4xLjEtMTYuNC0xMS42LTM5LjctNTMuNy0zOS43ek04OC44IDIwOC4xSDIxTDAgMjk2LjloNzAuMWM1Ni4xIDAgNzIuNS0yMy40IDcyLjUtNDkuMSAwLTE2LjMtMTEuNy0zOS43LTUzLjgtMzkuN3ptMTgwLjEgMGgtNjcuOGwtMTguNyA4OC44aDcwLjFjNTMuOCAwIDcwLjEtMjMuNCA3MC4xLTQ5LjEgMC0xNi4zLTExLjctMzkuNy01My43LTM5Ljd6bTE4OS4zLTUzLjhoLTY3LjhsLTE4LjcgODguOGg3MC4xYzUzLjggMCA3MC4xLTIzLjQgNzAuMS00OS4xLjEtMTYuMy0xMS42LTM5LjctNTMuNy0zOS43em0tMjggMTM3LjloLTY3LjhMMzQzLjcgMzgxaDcwLjFjNTYuMSAwIDcwLjEtMjMuNCA3MC4xLTQ5LjEgMC0xNi4zLTExLjYtMzkuNy01My43LTM5Ljd6TTI0MC44IDM0NkgxNzNsLTE4LjcgODguOGg3MC4xYzU2LjEgMCA3MC4xLTI1LjcgNzAuMS00OS4xLjEtMTYuMy0xMS42LTM5LjctNTMuNy0zOS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCbG9nZ2VyQiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDYuNiAyMjIuN2MtMS44LTgtNi44LTE1LjQtMTIuNS0xOC41LTEuOC0xLTEzLTIuMi0yNS0yLjctMjAuMS0uOS0yMi4zLTEuMy0yOC43LTUtMTAuMS01LjktMTIuOC0xMi4zLTEyLjktMjkuNS0uMS0zMy0xMy44LTYzLjctNDAuOS05MS4zLTE5LjMtMTkuNy00MC45LTMzLTY1LjUtNDAuNS01LjktMS44LTE5LjEtMi40LTYzLjMtMi45LTY5LjQtLjgtODQuOC42LTEwOC40IDEwQzQ1LjkgNTkuNSAxNC43IDk2LjEgMy4zIDE0Mi45IDEuMiAxNTEuNy43IDE2NS44LjIgMjQ2LjhjLS42IDEwMS41LjEgMTE2LjQgNi40IDEzNi41IDE1LjYgNDkuNiA1OS45IDg2LjMgMTA0LjQgOTQuMyAxNC44IDIuNyAxOTcuMyAzLjMgMjE2IC44IDMyLjUtNC40IDU4LTE3LjUgODEuOS00MS45IDE3LjMtMTcuNyAyOC4xLTM2LjggMzUuMi02Mi4xIDQuOS0xNy42IDQuNS0xNDIuOCAyLjUtMTUxLjd6bS0zMjIuMS02My42YzcuOC03LjkgMTAtOC4yIDU4LjgtOC4yIDQzLjkgMCA0NS40LjEgNTEuOCAzLjQgOS4zIDQuNyAxMy40IDExLjMgMTMuNCAyMS45IDAgOS41LTMuOCAxNi4yLTEyLjMgMjEuNi00LjYgMi45LTcuMyAzLjEtNTAuMyAzLjMtMjYuNS4yLTQ3LjctLjQtNTAuOC0xLjItMTYuNi00LjctMjIuOC0yOC41LTEwLjYtNDAuOHptMTkxLjggMTk5LjhsLTE0LjkgMi40LTc3LjUuOWMtNjguMS44LTg3LjMtLjQtOTAuOS0yLTcuMS0zLjEtMTMuOC0xMS43LTE0LjktMTkuNC0xLjEtNy4zIDIuNi0xNy4zIDguMi0yMi40IDcuMS02LjQgMTAuMi02LjYgOTcuMy02LjcgODkuNi0uMSA4OS4xLS4xIDk3LjYgNy44IDEyLjEgMTEuMyA5LjUgMzEuMi00LjkgMzkuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmxvZ2dlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjIuNCAxOTZjNC44LTQuOSA2LjItNS4xIDM2LjQtNS4xIDI3LjIgMCAyOC4xLjEgMzIuMSAyLjEgNS44IDIuOSA4LjMgNyA4LjMgMTMuNiAwIDUuOS0yLjQgMTAtNy42IDEzLjQtMi44IDEuOC00LjUgMS45LTMxLjEgMi4xLTE2LjQuMS0yOS41LS4yLTMxLjUtLjgtMTAuMy0yLjktMTQuMS0xNy43LTYuNi0yNS4zem02MS40IDk0LjVjLTUzLjkgMC01NS44LjItNjAuMiA0LjEtMy41IDMuMS01LjcgOS40LTUuMSAxMy45LjcgNC43IDQuOCAxMC4xIDkuMiAxMiAyLjIgMSAxNC4xIDEuNyA1Ni4zIDEuMmw0Ny45LS42IDkuMi0xLjVjOS01LjEgMTAuNS0xNy40IDMuMS0yNC40LTUuMy00LjctNS00LjctNjAuNC00Ljd6bTIyMy40IDEzMC4xYy0zLjUgMjguNC0yMyA1MC40LTUxLjEgNTcuNS03LjIgMS44LTkuNyAxLjktMTcyLjkgMS44LTE1Ny44IDAtMTY1LjktLjEtMTcyLTEuOC04LjQtMi4yLTE1LjYtNS41LTIyLjMtMTAtNS42LTMuOC0xMy45LTExLjgtMTctMTYuNC0zLjgtNS42LTguMi0xNS4zLTEwLTIyQy4xIDQyMyAwIDQyMC4zIDAgMjU2LjMgMCA5My4yIDAgODkuNyAxLjggODIuNiA4LjEgNTcuOSAyNy43IDM5IDUzIDMzLjRjNy4zLTEuNiAzMzIuMS0xLjkgMzQwLS4zIDIxLjIgNC4zIDM3LjkgMTcuMSA0Ny42IDM2LjQgNy43IDE1LjMgNy0xLjUgNy4zIDE4MC42LjIgMTE1LjggMCAxNjQuNS0uNyAxNzAuNXptLTg1LjQtMTg1LjJjLTEuMS01LTQuMi05LjYtNy43LTExLjUtMS4xLS42LTgtMS4zLTE1LjUtMS43LTEyLjQtLjYtMTMuOC0uOC0xNy44LTMuMS02LjItMy42LTcuOS03LjYtOC0xOC4zIDAtMjAuNC04LjUtMzkuNC0yNS4zLTU2LjUtMTItMTIuMi0yNS4zLTIwLjUtNDAuNi0yNS4xLTMuNi0xLjEtMTEuOC0xLjUtMzkuMi0xLjgtNDIuOS0uNS01Mi41LjQtNjcuMSA2LjItMjcgMTAuNy00Ni4zIDMzLjQtNTMuNCA2Mi40LTEuMyA1LjQtMS42IDE0LjItMS45IDY0LjMtLjQgNjIuOCAwIDcyLjEgNCA4NC41IDkuNyAzMC43IDM3LjEgNTMuNCA2NC42IDU4LjQgOS4yIDEuNyAxMjIuMiAyLjEgMTMzLjcuNSAyMC4xLTIuNyAzNS45LTEwLjggNTAuNy0yNS45IDEwLjctMTAuOSAxNy40LTIyLjggMjEuOC0zOC41IDMuMi0xMC45IDIuOS04OC40IDEuNy05My45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCbHVldG9vdGhCIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5Ni40OCAyNjAuMDIzbDkyLjYyNi0xMDMuMzMzTDE0My4xMjUgMHYyMDYuMzNsLTg2LjExMS04Ni4xMTEtMzEuNDA2IDMxLjQwNSAxMDguMDYxIDEwOC4zOTlMMjUuNjA4IDM2OC40MjJsMzEuNDA2IDMxLjQwNSA4Ni4xMTEtODYuMTExTDE0NS44NCA1MTJsMTQ4LjU1Mi0xNDguNjQ0LTk3LjkxMi0xMDMuMzMzem00MC44Ni0xMDIuOTk2bC00OS45NzcgNDkuOTc4LS4zMzgtMTAwLjI5NSA1MC4zMTUgNTAuMzE3ek0xODcuMzYzIDMxMy4wNGw0OS45NzcgNDkuOTc4LTUwLjMxNSA1MC4zMTYuMzM4LTEwMC4yOTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJsdWV0b290aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTIuNiAxNzEuMUwyNDkuNyAyMTRsLS4zLTg2IDQzLjIgNDMuMW0tNDMuMiAyMTkuOGw0My4xLTQzLjEtNDIuOS00Mi45LS4yIDg2ek00MTYgMjU5LjRDNDE2IDQ2NSAzNDQuMSA1MTIgMjMwLjkgNTEyUzMyIDQ2NSAzMiAyNTkuNCAxMTUuNCAwIDIyOC42IDAgNDE2IDUzLjkgNDE2IDI1OS40em0tMTU4LjUgMGw3OS40LTg4LjZMMjExLjggMzYuNXYxNzYuOUwxMzggMTM5LjZsLTI3IDI2LjkgOTIuNyA5My05Mi43IDkzIDI2LjkgMjYuOSA3My44LTczLjggMi4zIDE3MCAxMjcuNC0xMjcuNS04My45LTg4Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvb3RzdHJhcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzMuNSwyMDEuNGMwLTIyLjEtMTUuNi0zNC4zLTQzLTM0LjNoLTUwLjR2NzEuMmg0Mi41QzMxNS40LDIzOC4yLDMzMy41LDIyNSwzMzMuNSwyMDEuNHogTTUxNywxODguNiBjLTkuNS0zMC45LTEwLjktNjguOC05LjgtOTguMWMxLjEtMzAuNS0yMi43LTU4LjUtNTQuNy01OC41SDEyMy43Yy0zMi4xLDAtNTUuOCwyOC4xLTU0LjcsNTguNWMxLDI5LjMtMC4zLDY3LjItOS44LDk4LjEgYy05LjYsMzEtMjUuNyw1MC42LTUyLjIsNTMuMXYyOC41YzI2LjQsMi41LDQyLjYsMjIuMSw1Mi4yLDUzLjFjOS41LDMwLjksMTAuOSw2OC44LDkuOCw5OC4xYy0xLjEsMzAuNSwyMi43LDU4LjUsNTQuNyw1OC41aDMyOC43IGMzMi4xLDAsNTUuOC0yOC4xLDU0LjctNTguNWMtMS0yOS4zLDAuMy02Ny4yLDkuOC05OC4xYzkuNi0zMSwyNS43LTUwLjYsNTIuMS01My4xdi0yOC41QzU0Mi43LDIzOS4yLDUyNi41LDIxOS42LDUxNywxODguNnogTTMwMC4yLDM3NS4xaC05Ny45VjEzNi44aDk3LjRjNDMuMywwLDcxLjcsMjMuNCw3MS43LDU5LjRjMCwyNS4zLTE5LjEsNDcuOS00My41LDUxLjh2MS4zYzMzLjIsMy42LDU1LjUsMjYuNiw1NS41LDU4LjMgQzM4My40LDM0OS43LDM1Mi4xLDM3NS4xLDMwMC4yLDM3NS4xeiBNMjkwLjIsMjY2LjRoLTUwLjF2NzguNGg1Mi4zYzM0LjIsMCw1Mi4zLTEzLjcsNTIuMy0zOS41IEMzNDQuNywyNzkuNiwzMjYuMSwyNjYuNCwyOTAuMiwyNjYuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnRjIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMC4yMDQgMjQyLjYzOGMyNy43My0xNC4xOCA0NS4zNzctMzkuMzkgNDEuMjgtODEuMy01LjM1OC01Ny4zNTEtNTIuNDU4LTc2LjU3My0xMTQuODUtODEuOTI5VjBoLTQ4LjUyOHY3Ny4yMDNjLTEyLjYwNSAwLTI1LjUyNS4zMTUtMzguNDQ0LjYzVjBoLTQ4LjUyOHY3OS40MDljLTE3Ljg0Mi41MzktMzguNjIyLjI3Ni05Ny4zNyAwdjUxLjY3OGMzOC4zMTQtLjY3OCA1OC40MTctMy4xNCA2My4wMjMgMjEuNDI3djIxNy40MjljLTIuOTI1IDE5LjQ5Mi0xOC41MjQgMTYuNjg1LTUzLjI1NSAxNi4wNzFMMy43NjUgNDQzLjY4Yzg4LjQ4MSAwIDk3LjM3LjMxNSA5Ny4zNy4zMTVWNTEyaDQ4LjUyOHYtNjcuMDZjMTMuMjM0LjMxNSAyNi4xNTQuMzE1IDM4LjQ0NC4zMTVWNTEyaDQ4LjUyOHYtNjguMDA1YzgxLjI5OS00LjQxMiAxMzUuNjQ3LTI0Ljg5NCAxNDIuODk1LTEwMS40NjcgNS42NzEtNjEuNDQ2LTIzLjMyLTg4Ljg2Mi02OS4zMjYtOTkuODl6TTE1MC42MDggMTM0LjU1M2MyNy40MTUgMCAxMTMuMTI2LTguNTA3IDExMy4xMjYgNDguNTI4IDAgNTQuNTE1LTg1LjcxIDQ4LjIxMi0xMTMuMTI2IDQ4LjIxMnYtOTYuNzR6bTAgMjUxLjc3NlYyNzkuODIxYzMyLjc3MiAwIDEzMy4xMjctOS4xMzggMTMzLjEyNyA1My4yNTUtLjAwMSA2MC4xODYtMTAwLjM1NSA1My4yNTMtMTMzLjEyNyA1My4yNTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1ZmZlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjcuODQgMzgwLjY3bC0xOTYuNSA5Ny44MmExOC42IDE4LjYgMCAwIDEtMTQuNjcgMEwyMC4xNiAzODAuNjdjLTQtMi00LTUuMjggMC03LjI5TDY3LjIyIDM1MGExOC42NSAxOC42NSAwIDAgMSAxNC42OSAwbDEzNC43NiA2N2ExOC41MSAxOC41MSAwIDAgMCAxNC42NyAwbDEzNC43Ni02N2ExOC42MiAxOC42MiAwIDAgMSAxNC42OCAwbDQ3LjA2IDIzLjQzYzQuMDUgMS45NiA0LjA1IDUuMjQgMCA3LjI0em0wLTEzNi41M2wtNDcuMDYtMjMuNDNhMTguNjIgMTguNjIgMCAwIDAtMTQuNjggMGwtMTM0Ljc2IDY3LjA4YTE4LjY4IDE4LjY4IDAgMCAxLTE0LjY3IDBMODEuOTEgMjIwLjcxYTE4LjY1IDE4LjY1IDAgMCAwLTE0LjY5IDBsLTQ3LjA2IDIzLjQzYy00IDItNCA1LjI5IDAgNy4zMWwxOTYuNTEgOTcuOGExOC42IDE4LjYgMCAwIDAgMTQuNjcgMGwxOTYuNS05Ny44YzQuMDUtMi4wMiA0LjA1LTUuMyAwLTcuMzF6TTIwLjE2IDEzMC40MmwxOTYuNSA5MC4yOWEyMC4wOCAyMC4wOCAwIDAgMCAxNC42NyAwbDE5Ni41MS05MC4yOWM0LTEuODYgNC00Ljg5IDAtNi43NEwyMzEuMzMgMzMuNGExOS44OCAxOS44OCAwIDAgMC0xNC42NyAwbC0xOTYuNSA5MC4yOGMtNC4wNSAxLjg1LTQuMDUgNC44OCAwIDYuNzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1cm9tb2JlbGV4cGVydGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnYxMjhoMTI4VjMySDB6bTEyMCAxMjBIOFY0MGgxMTJ2MTEyem00MC0xMjB2MTI4aDEyOFYzMkgxNjB6bTEyMCAxMjBIMTY4VjQwaDExMnYxMTJ6bTQwLTEyMHYxMjhoMTI4VjMySDMyMHptMTIwIDEyMEgzMjhWNDBoMTEydjExMnpNMCAxOTJ2MTI4aDEyOFYxOTJIMHptMTIwIDEyMEg4VjIwMGgxMTJ2MTEyem00MC0xMjB2MTI4aDEyOFYxOTJIMTYwem0xMjAgMTIwSDE2OFYyMDBoMTEydjExMnptNDAtMTIwdjEyOGgxMjhWMTkySDMyMHptMTIwIDEyMEgzMjhWMjAwaDExMnYxMTJ6TTAgMzUydjEyOGgxMjhWMzUySDB6bTEyMCAxMjBIOFYzNjBoMTEydjExMnptNDAtMTIwdjEyOGgxMjhWMzUySDE2MHptMTIwIDEyMEgxNjhWMzYwaDExMnYxMTJ6bTQwLTEyMHYxMjhoMTI4VjM1MkgzMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1eU5MYXJnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMzJDMTMzLjI3IDMyIDcuNzkgMTMyLjMyIDcuNzkgMjU2UzEzMy4yNyA0ODAgMjg4IDQ4MHMyODAuMjEtMTAwLjMyIDI4MC4yMS0yMjRTNDQyLjczIDMyIDI4OCAzMnptLTg1LjM5IDM1Ny4xOUw2NC4xIDM5MC41NWw3Ny4yNS0yOTAuNzRoMTMzLjQ0YzYzLjE1IDAgODQuOTMgMjguNjUgNzggNzIuODRhNjAuMjQgNjAuMjQgMCAwIDEtMS41IDYuODUgNzcuMzkgNzcuMzkgMCAwIDAtMTcuMjEtMS45M2MtNDIuMzUgMC03Ni42OSAzMy44OC03Ni42OSA3NS42NSAwIDM3LjE0IDI3LjE0IDY4IDYyLjkzIDc0LjQ1LTE4LjI0IDM3LjE2LTU2LjE2IDYwLjkyLTExNy43MSA2MS41MnpNMzU4IDIwNy4xMWgzMmwtMjIuMTYgOTAuMzFoLTM1LjQxbC0xMS4xOS0zNS42My03LjgzIDM1LjYzaC0zNy44M2wyNi42My05MC4zMWgzMS4zNGwxNSAzNi43NXptMTQ1Ljg2IDE4Mi4wOEgzMDYuNzlMMzIyLjYzIDMyOGE3OC44IDc4LjggMCAwIDAgMTEuNDcuODNjNDIuMzQgMCA3Ni42OS0zMy44NyA3Ni42OS03NS42NSAwLTMyLjY1LTIxLTYwLjQ2LTUwLjM4LTcxLjA2bDIxLjMzLTgyLjM1aDkyLjVsLTUzLjA1IDIwNS4zNmgxMDMuODd6TTIxMS43IDI2OS4zOUgxODdsLTEzLjggNTYuNDdoMjQuN2MxNi4xNCAwIDMyLjExLTMuMTggMzcuOTQtMjYuNjUgNS41Ni0yMi4zMS03Ljk5LTI5LjgyLTI0LjE0LTI5Ljgyek0yMzMgMTcwaC0yMS4zNEwyMDAgMjE3LjcxaDIxLjM3YzE4IDAgMzUuMzgtMTQuNjQgMzkuMjEtMzAuMTRDMjY1LjIzIDE2OC43MSAyNTEuMDcgMTcwIDIzMyAxNzB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1eXNlbGxhZHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDE1MC43bDQyLjkgMTYwLjdoLTg1LjhMMjI0IDE1MC43ek00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS02NS4zIDMyNS4zbC05NC41LTI5OC43SDE1OS44TDY1LjMgNDA1LjNIMTU2bDExMS43LTkxLjYgMjQuMiA5MS42aDkwLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbmFkaWFuTWFwbGVMZWFmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4My44IDM1MS43YzIuNS0yLjUgMTA1LjItOTIuNCAxMDUuMi05Mi40bC0xNy41LTcuNWMtMTAtNC45LTcuNC0xMS41LTUtMTcuNCAyLjQtNy42IDIwLjEtNjcuMyAyMC4xLTY3LjNzLTQ3LjcgMTAtNTcuNyAxMi41Yy03LjUgMi40LTEwLTIuNS0xMi41LTcuNXMtMTUtMzIuNC0xNS0zMi40LTUyLjYgNTkuOS01NS4xIDYyLjNjLTEwIDcuNS0yMC4xIDAtMTcuNi0xMCAwLTEwIDI3LjYtMTI5LjYgMjcuNi0xMjkuNnMtMzAuMSAxNy40LTQwLjEgMjIuNGMtNy41IDUtMTIuNiA1LTE3LjYtNUMyOTMuNSA3Mi4zIDI1NS45IDAgMjU1LjkgMHMtMzcuNSA3Mi4zLTQyLjUgNzkuOGMtNSAxMC0xMCAxMC0xNy42IDUtMTAtNS00MC4xLTIyLjQtNDAuMS0yMi40UzE4My4zIDE4MiAxODMuMyAxOTJjMi41IDEwLTcuNSAxNy41LTE3LjYgMTAtMi41LTIuNS01NS4xLTYyLjMtNTUuMS02Mi4zUzk4LjEgMTY3IDk1LjYgMTcycy01IDkuOS0xMi41IDcuNUM3MyAxNzcgMjUuNCAxNjcgMjUuNCAxNjdzMTcuNiA1OS43IDIwLjEgNjcuM2MyLjQgNiA1IDEyLjUtNSAxNy40TDIzIDI1OS4zczEwMi42IDg5LjkgMTA1LjIgOTIuNGM1LjEgNSAxMCA3LjUgNS4xIDIyLjUtNS4xIDE1LTEwLjEgMzUuMS0xMC4xIDM1LjFzOTUuMi0yMC4xIDEwNS4zLTIyLjZjOC43LS45IDE4LjMgMi41IDE4LjMgMTIuNVMyNDEgNTEyIDI0MSA1MTJoMzBzLTUuOC0xMDIuNy01LjgtMTEyLjggOS41LTEzLjQgMTguNC0xMi41YzEwIDIuNSAxMDUuMiAyMi42IDEwNS4yIDIyLjZzLTUtMjAuMS0xMC0zNS4xIDAtMTcuNSA1LTIyLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNjQW1hem9uUGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyNC43IDIwMS44Yy4xLTExLjggMC0yMy41IDAtMzUuM3YtMzUuM2MwLTEuMy40LTIgMS40LTIuNyAxMS41LTggMjQuMS0xMi4xIDM4LjItMTEuMSAxMi41LjkgMjIuNyA3IDI4LjEgMjEuNyAzLjMgOC45IDQuMSAxOC4yIDQuMSAyNy43IDAgOC43LS43IDE3LjMtMy40IDI1LjYtNS43IDE3LjgtMTguNyAyNC43LTM1LjcgMjMuOS0xMS43LS41LTIxLjktNS0zMS40LTExLjctLjktLjgtMS40LTEuNi0xLjMtMi44em0xNTQuOSAxNC42YzQuNiAxLjggOS4zIDIgMTQuMSAxLjUgMTEuNi0xLjIgMjEuOS01LjcgMzEuMy0xMi41LjktLjYgMS4zLTEuMyAxLjMtMi41LS4xLTMuOSAwLTcuOSAwLTExLjggMC00LS4xLTggMC0xMiAwLTEuNC0uNC0yLTEuOC0yLjItNy0uOS0xMy45LTIuMi0yMC45LTIuOS03LS42LTE0LS4zLTIwLjggMS45LTYuNyAyLjItMTEuNyA2LjItMTMuNyAxMy4xLTEuNiA1LjQtMS42IDEwLjguMSAxNi4yIDEuNiA1LjUgNS4yIDkuMiAxMC40IDExLjJ6TTU3NiA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4MGMyNi41IDAgNDggMjEuNSA0OCA0OHptLTIwNy41IDIzLjljLjQgMS43LjkgMy40IDEuNiA1LjEgMTYuNSA0MC42IDMyLjkgODEuMyA0OS41IDEyMS45IDEuNCAzLjUgMS43IDYuNC4yIDkuOS0yLjggNi4yLTQuOSAxMi42LTcuOCAxOC43LTIuNiA1LjUtNi43IDkuNS0xMi43IDExLjItNC4yIDEuMS04LjUgMS4zLTEyLjkuOS0yLjEtLjItNC4yLS43LTYuMy0uOC0yLjgtLjItNC4yIDEuMS00LjMgNC0uMSAyLjgtLjEgNS42IDAgOC4zLjEgNC42IDEuNiA2LjcgNi4yIDcuNSA0LjcuOCA5LjQgMS42IDE0LjIgMS43IDE0LjMuMyAyNS43LTUuNCAzMy4xLTE3LjkgMi45LTQuOSA1LjYtMTAuMSA3LjctMTUuNCAxOS44LTUwLjEgMzkuNS0xMDAuMyA1OS4yLTE1MC41LjYtMS41IDEuMS0zIDEuMy00LjYuNC0yLjQtLjctMy42LTMuMS0zLjctNS42LS4xLTExLjEgMC0xNi43IDAtMy4xIDAtNS4zIDEuNC02LjQgNC4zLS40IDEuMS0uOSAyLjMtMS4zIDMuNGwtMjkuMSA4My43Yy0yLjEgNi4xLTQuMiAxMi4xLTYuNSAxOC42LS40LS45LS42LTEuNC0uOC0xLjktMTAuOC0yOS45LTIxLjYtNTkuOS0zMi40LTg5LjgtMS43LTQuNy0zLjUtOS41LTUuMy0xNC4yLS45LTIuNS0yLjctNC01LjQtNC02LjQtLjEtMTIuOC0uMi0xOS4yLS4xLTIuMiAwLTMuMyAxLjYtMi44IDMuN3pNMjQyLjQgMjA2YzEuNyAxMS43IDcuNiAyMC44IDE4IDI2LjYgOS45IDUuNSAyMC43IDYuMiAzMS43IDQuNiAxMi43LTEuOSAyMy45LTcuMyAzMy44LTE1LjUuNC0uMy44LS42IDEuNC0xIC41IDMuMi45IDYuMiAxLjUgOS4yLjUgMi42IDIuMSA0LjMgNC41IDQuNCA0LjYuMSA5LjEuMSAxMy43IDAgMi4zLS4xIDMuOC0xLjYgNC0zLjkuMS0uOC4xLTEuNi4xLTIuM3YtODguOGMwLTMuNi0uMi03LjItLjctMTAuOC0xLjYtMTAuOC02LjItMTkuNy0xNS45LTI1LjQtNS42LTMuMy0xMS44LTUtMTguMi01LjktMy0uNC02LS43LTkuMS0xLjFoLTEwYy0uOC4xLTEuNi4zLTIuNS4zLTguMi40LTE2LjMgMS40LTI0LjIgMy41LTUuMSAxLjMtMTAgMy4yLTE1IDQuOS0zIDEtNC41IDMuMi00LjQgNi41LjEgMi44LS4xIDUuNiAwIDguMy4xIDQuMSAxLjggNS4yIDUuNyA0LjEgNi41LTEuNyAxMy4xLTMuNSAxOS43LTQuOCAxMC4zLTEuOSAyMC43LTIuNyAzMS4xLTEuMiA1LjQuOCAxMC41IDIuNCAxNC4xIDcgMy4xIDQgNC4yIDguOCA0LjQgMTMuNy4zIDYuOS4yIDEzLjkuMyAyMC44IDAgLjQtLjEuNy0uMiAxLjItLjQgMC0uOCAwLTEuMS0uMS04LjgtMi4xLTE3LjctMy42LTI2LjgtNC4xLTkuNS0uNS0xOC45LjEtMjcuOSAzLjItMTAuOCAzLjgtMTkuNSAxMC4zLTI0LjYgMjAuOC00LjEgOC4zLTQuNiAxNy0zLjQgMjUuOHpNOTguNyAxMDYuOXYxNzUuM2MwIC44IDAgMS43LjEgMi41LjIgMi41IDEuNyA0LjEgNC4xIDQuMiA1LjkuMSAxMS44LjEgMTcuNyAwIDIuNSAwIDQtMS43IDQuMS00LjEuMS0uOC4xLTEuNy4xLTIuNXYtNjAuN2MuOS43IDEuNCAxLjIgMS45IDEuNiAxNSAxMi41IDMyLjIgMTYuNiA1MS4xIDEyLjkgMTcuMS0zLjQgMjguOS0xMy45IDM2LjctMjkuMiA1LjgtMTEuNiA4LjMtMjQuMSA4LjctMzcgLjUtMTQuMy0xLTI4LjQtNi44LTQxLjctNy4xLTE2LjQtMTguOS0yNy4zLTM2LjctMzAuOS0yLjctLjYtNS41LS44LTguMi0xLjJoLTdjLTEuMi4yLTIuNC4zLTMuNi41LTExLjcgMS40LTIyLjMgNS44LTMxLjggMTIuNy0yIDEuNC0zLjkgMy01LjkgNC41LS4xLS41LS4zLS44LS40LTEuMi0uNC0yLjMtLjctNC42LTEuMS02LjktLjYtMy45LTIuNS01LjUtNi40LTUuNmgtOS43Yy01LjktLjEtNi45IDEtNi45IDYuOHpNNDkzLjYgMzM5Yy0yLjctLjctNS4xIDAtNy42IDEtNDMuOSAxOC40LTg5LjUgMzAuMi0xMzYuOCAzNS44LTE0LjUgMS43LTI5LjEgMi44LTQzLjcgMy4yLTI2LjYuNy01My4yLS44LTc5LjYtNC4zLTE3LjgtMi40LTM1LjUtNS43LTUzLTkuOS0zNy04LjktNzIuNy0yMS43LTEwNi43LTM4LjgtOC44LTQuNC0xNy40LTkuMy0yNi4xLTE0LTMuOC0yLjEtNi4yLTEuNS04LjIgMi4xdjEuN2MxLjIgMS42IDIuMiAzLjQgMy43IDQuOCAzNiAzMi4yIDc2LjYgNTYuNSAxMjIgNzIuOSAyMS45IDcuOSA0NC40IDEzLjcgNjcuMyAxNy41IDE0IDIuMyAyOCAzLjggNDIuMiA0LjUgMyAuMSA2IC4yIDkgLjQuNyAwIDEuNC4yIDIuMS4zaDE3LjdjLjctLjEgMS40LS4zIDIuMS0uMyAxNC45LS40IDI5LjgtMS44IDQ0LjYtNCAyMS40LTMuMiA0Mi40LTguMSA2Mi45LTE0LjcgMjkuNi05LjYgNTcuNy0yMi40IDgzLjQtNDAuMSAyLjgtMS45IDUuNy0zLjggOC02LjIgNC4zLTQuNCAyLjMtMTAuNC0zLjMtMTEuOXptNTAuNC0yNy43Yy0uOC00LjItNC01LjgtNy42LTctNS43LTEuOS0xMS42LTIuOC0xNy42LTMuMy0xMS0uOS0yMi0uNC0zMi44IDEuNi0xMiAyLjItMjMuNCA2LjEtMzMuNSAxMy4xLTEuMi44LTIuNCAxLjgtMy4xIDMtLjYuOS0uNyAyLjMtLjUgMy40LjMgMS4zIDEuNyAxLjYgMyAxLjUuNiAwIDEuMiAwIDEuOC0uMWwxOS41LTIuMWM5LjYtLjkgMTkuMi0xLjUgMjguOC0uOCA0LjEuMyA4LjEgMS4yIDEyIDIuMiA0LjMgMS4xIDYuMiA0LjQgNi40IDguNy4zIDYuNy0xLjIgMTMuMS0yLjkgMTkuNS0zLjUgMTIuOS04LjMgMjUuNC0xMy4zIDM3LjgtLjMuOC0uNyAxLjctLjggMi41LS40IDIuNSAxIDQgMy40IDMuNSAxLjQtLjMgMy0xLjEgNC0yLjEgMy43LTMuNiA3LjUtNy4yIDEwLjYtMTEuMiAxMC43LTEzLjggMTctMjkuNiAyMC43LTQ2LjYuNy0zIDEuMi02LjEgMS43LTkuMS4yLTQuNy4yLTkuNi4yLTE0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNjQW1leCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjUuMSAxNjcuOGMwLTE2LjQtMTQuMS0xOC40LTI3LjQtMTguNGwtMzkuMS0uM3Y2OS4zSDI3NXYtMjUuMWgxOGMxOC40IDAgMTQuNSAxMC4zIDE0LjggMjUuMWgxNi42di0xMy41YzAtOS4yLTEuNS0xNS4xLTExLTE4LjQgNy40LTMgMTEuOC0xMC43IDExLjctMTguN3ptLTI5LjQgMTEuM0gyNzV2LTE1LjNoMjFjNS4xIDAgMTAuNyAxIDEwLjcgNy40IDAgNi42LTUuMyA3LjktMTEgNy45ek0yNzkgMjY4LjZoLTUyLjdsLTIxIDIyLjgtMjAuNS0yMi44aC02Ni41bC0uMSA2OS4zaDY1LjRsMjEuMy0yMyAyMC40IDIzaDMyLjJsLjEtMjMuM2MxOC45IDAgNDkuMyA0LjYgNDkuMy0yMy4zIDAtMTcuMy0xMi4zLTIyLjctMjcuOS0yMi43em0tMTAzLjggNTQuN2gtNDAuNnYtMTMuOGgzNi4zdi0xNC4xaC0zNi4zdi0xMi41aDQxLjdsMTcuOSAyMC4yem02NS44IDguMmwtMjUuMy0yOC4xTDI0MSAyNzZ6bTM3LjgtMzFoLTIxLjJ2LTE3LjZoMjEuNWM1LjYgMCAxMC4yIDIuMyAxMC4yIDguNCAwIDYuNC00LjYgOS4yLTEwLjUgOS4yem0tMzEuNi0xMzYuN3YtMTQuNmgtNTUuNXY2OS4zaDU1LjV2LTE0LjNoLTM4Ljl2LTEzLjhoMzcuOHYtMTQuMWgtMzcuOHYtMTIuNXpNNTc2IDI1NS40aC0uMnptLTE5NC42IDMxLjljMC0xNi40LTE0LjEtMTguNy0yNy4xLTE4LjdoLTM5LjRsLS4xIDY5LjNoMTYuNmwuMS0yNS4zaDE3LjZjMTEgMCAxNC44IDIgMTQuOCAxMy44bC0uMSAxMS41aDE2LjZsLjEtMTMuOGMwLTguOS0xLjgtMTUuMS0xMS0xOC40IDcuNy0zLjEgMTEuOC0xMC44IDExLjktMTguNHptLTI5LjIgMTEuMmgtMjAuN3YtMTUuNmgyMWM1LjEgMCAxMC43IDEgMTAuNyA3LjQgMCA2LjktNS40IDguMi0xMSA4LjJ6bS0xNzIuOC04MHYtNjkuM2gtMjcuNmwtMTkuNyA0Ny0yMS43LTQ3SDgzLjN2NjUuN2wtMjguMS02NS43SDMwLjdMMSAyMTguNWgxNy45bDYuNC0xNS4zaDM0LjVsNi40IDE1LjNIMTAwdi01NC4ybDI0IDU0LjJoMTQuNmwyNC01NC4ydjU0LjJ6TTMxLjIgMTg4LjhsMTEuMi0yNy42IDExLjUgMjcuNnptNDc3LjQgMTU4Ljl2LTQuNWMtMTAuOCA1LjYtMy45IDQuNS0xNTYuNyA0LjUgMC0yNS4yLjEtMjMuOSAwLTI1LjItMS43LS4xLTMuMi0uMS05LjQtLjEgMCAxNy45LS4xIDYuOC0uMSAyNS4zaC0zOS42YzAtMTIuMS4xLTE1LjMuMS0yOS4yLTEwIDYtMjIuOCA2LjQtMzQuMyA2LjIgMCAxNC43LS4xIDguMy0uMSAyM2gtNDguOWMtNS4xLTUuNy0yLjctMy4xLTE1LjQtMTcuNC0zLjIgMy41LTEyLjggMTMuOS0xNi4xIDE3LjRoLTgydi05Mi4zaDgzLjFjNSA1LjYgMi44IDMuMSAxNS41IDE3LjIgMy4yLTMuNSAxMi4yLTEzLjQgMTUuNy0xNy4yaDU4YzkuOCAwIDE4IDEuOSAyNC4zIDUuNnYtNS42YzU0LjMgMCA2NC4zLTEuNCA3NS43IDUuMXYtNS4xaDc4LjJ2NS4yYzExLjQtNi45IDE5LjYtNS4yIDY0LjktNS4ydjVjMTAuMy01LjkgMTYuNi01LjIgNTQuMy01VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4aC00ODBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djEwOS44YzkuNC0yMS45IDE5LjctNDYgMjMuMS01My45aDM5LjdjNC4zIDEwLjEgMS42IDMuNyA5IDIxLjF2LTIxLjFoNDZjMi45IDYuMiAxMS4xIDI0IDEzLjkgMzAgNS44LTEzLjYgMTAuMS0yMy45IDEyLjYtMzBoMTAzYzAtLjEgMTEuNSAwIDExLjYgMCA0My43LjIgNTMuNi0uOCA2NC40IDUuM3YtNS4zSDM2M3Y5LjNjNy42LTYuMSAxNy45LTkuMyAzMC43LTkuM2gyNy42YzAgLjUgMS45LjMgMi4zLjNINDU2YzQuMiA5LjggMi42IDYgOC44IDIwLjZ2LTIwLjZoNDMuM2M0LjkgOC0xLTEuOCAxMS4yIDE4LjR2LTE4LjRoMzkuOXY5MmgtNDEuNmMtNS40LTktMS40LTIuMi0xMy4yLTIxLjl2MjEuOWgtNTIuOGMtNi40LTE0LjgtLjEtLjMtNi42LTE1LjNoLTE5Yy00LjIgMTAtMi4yIDUuMi02LjQgMTUuM2gtMjYuOGMtMTIuMyAwLTIyLjMtMy0yOS43LTguOXY4LjloLTY2LjVjLS4zLTEzLjktLjEtMjQuOC0uMS0yNC44LTEuOC0uMy0zLjQtLjItOS44LS4ydjI1LjFIMTUxLjJ2LTExLjRjLTIuNSA1LjYtMi43IDUuOS01LjEgMTEuNGgtMjkuNWMtNC04LjktMi45LTYuNC01LjEtMTEuNHYxMS40SDU4LjZjLTQuMi0xMC4xLTIuMi01LjMtNi40LTE1LjNIMzNjLTQuMiAxMC0yLjIgNS4yLTYuNCAxNS4zSDBWNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQ4MC4xYzI2LjUgMCA0OC0yMS41IDQ4LTQ4di05MC40Yy0xMi43IDguMy0zMi43IDYuMS02Ny41IDYuMXptMzYuMy02NC41SDU3NXYtMTQuNmgtMzIuOWMtMTIuOCAwLTIzLjggNi42LTIzLjggMjAuNyAwIDMzIDQyLjcgMTIuOCA0Mi43IDI3LjQgMCA1LjEtNC4zIDYuNC04LjQgNi40aC0zMmwtLjEgMTQuOGgzMmM4LjQgMCAxNy42LTEuOCAyMi41LTguOXYtMjUuOGMtMTAuNS0xMy44LTM5LjMtMS4zLTM5LjMtMTMuNSAwLTUuOCA0LjYtNi41IDkuMi02LjV6bS01NyAzOS44aC0zMi4ybC0uMSAxNC44aDMyLjJjMTQuOCAwIDI2LjItNS42IDI2LjItMjIgMC0zMy4yLTQyLjktMTEuMi00Mi45LTI2LjMgMC01LjYgNC45LTYuNCA5LjItNi40aDMwLjR2LTE0LjZoLTMzLjJjLTEyLjggMC0yMy41IDYuNi0yMy41IDIwLjcgMCAzMyA0Mi43IDEyLjUgNDIuNyAyNy40LS4xIDUuNC00LjcgNi40LTguOCA2LjR6bS00Mi4yLTQwLjF2LTE0LjNoLTU1LjJsLS4xIDY5LjNoNTUuMmwuMS0xNC4zLTM4LjYtLjN2LTEzLjhINDQ1di0xNC4xaC0zNy44di0xMi41em0tNTYuMy0xMDguMWMtLjMuMi0xLjQgMi4yLTEuNCA3LjYgMCA2IC45IDcuNyAxLjEgNy45LjIuMSAxLjEuNSAzLjQuNWw3LjMtMTYuOWMtMS4xIDAtMi4xLS4xLTMuMS0uMS01LjYgMC03IC43LTcuMyAxem0yMC40LTEwLjVoLS4xem0tMTYuMi0xNS4yYy0yMy41IDAtMzQgMTItMzQgMzUuMyAwIDIyLjIgMTAuMiAzNCAzMyAzNGgxOS4ybDYuNC0xNS4zaDM0LjNsNi42IDE1LjNoMzMuN3YtNTEuOWwzMS4yIDUxLjloMjMuNnYtNjloLTE2Ljl2NDguMWwtMjkuMS00OC4xaC0yNS4zdjY1LjRsLTI3LjktNjUuNGgtMjQuOGwtMjMuNSA1NC41aC03LjRjLTEzLjMgMC0xNi4xLTguMS0xNi4xLTE5LjkgMC0yMy44IDE1LjctMjAgMzMuMS0xOS43di0xNS4yem00Mi4xIDEyLjFsMTEuMiAyNy42aC0yMi44em0tMTAxLjEtMTJ2NjkuM2gxNi45di02OS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDY0FwcGxlUGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwMi4yIDIxOC40YzAgMTcuMi0xMC41IDI3LjEtMjkgMjcuMWgtMjQuM3YtNTQuMmgyNC40YzE4LjQgMCAyOC45IDkuOCAyOC45IDI3LjF6bTQ3LjUgNjIuNmMwIDguMyA3LjIgMTMuNyAxOC41IDEzLjcgMTQuNCAwIDI1LjItOS4xIDI1LjItMjEuOXYtNy43bC0yMy41IDEuNWMtMTMuMy45LTIwLjIgNS44LTIwLjIgMTQuNHpNNTc2IDc5djM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWNzljMC0yNi41IDIxLjUtNDggNDgtNDhoNDgwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xMjcuOCAxOTcuMmM4LjQuNyAxNi44LTQuMiAyMi4xLTEwLjQgNS4yLTYuNCA4LjYtMTUgNy43LTIzLjctNy40LjMtMTYuNiA0LjktMjEuOSAxMS4zLTQuOCA1LjUtOC45IDE0LjQtNy45IDIyLjh6bTYwLjYgNzQuNWMtLjItLjItMTkuNi03LjYtMTkuOC0zMC0uMi0xOC43IDE1LjMtMjcuNyAxNi0yOC4yLTguOC0xMy0yMi40LTE0LjQtMjcuMS0xNC43LTEyLjItLjctMjIuNiA2LjktMjguNCA2LjktNS45IDAtMTQuNy02LjYtMjQuMy02LjQtMTIuNS4yLTI0LjIgNy4zLTMwLjUgMTguNi0xMy4xIDIyLjYtMy40IDU2IDkuMyA3NC40IDYuMiA5LjEgMTMuNyAxOS4xIDIzLjUgMTguNyA5LjMtLjQgMTMtNiAyNC4yLTYgMTEuMyAwIDE0LjUgNiAyNC4zIDUuOSAxMC4yLS4yIDE2LjUtOS4xIDIyLjgtMTguMiA2LjktMTAuNCA5LjgtMjAuNCAxMC0yMXptMTM1LjQtNTMuNGMwLTI2LjYtMTguNS00NC44LTQ0LjktNDQuOGgtNTEuMnYxMzYuNGgyMS4ydi00Ni42aDI5LjNjMjYuOCAwIDQ1LjYtMTguNCA0NS42LTQ1em05MCAyMy43YzAtMTkuNy0xNS44LTMyLjQtNDAtMzIuNC0yMi41IDAtMzkuMSAxMi45LTM5LjcgMzAuNWgxOS4xYzEuNi04LjQgOS40LTEzLjkgMjAtMTMuOSAxMyAwIDIwLjIgNiAyMC4yIDE3LjJ2Ny41bC0yNi40IDEuNmMtMjQuNiAxLjUtMzcuOSAxMS42LTM3LjkgMjkuMSAwIDE3LjcgMTMuNyAyOS40IDMzLjQgMjkuNCAxMy4zIDAgMjUuNi02LjcgMzEuMi0xNy40aC40VjMxMGgxOS42di02OHpNNTE2IDIxMC45aC0yMS41bC0yNC45IDgwLjZoLS40bC0yNC45LTgwLjZINDIybDM1LjkgOTkuMy0xLjkgNmMtMy4yIDEwLjItOC41IDE0LjItMTcuOSAxNC4yLTEuNyAwLTQuOS0uMi02LjItLjN2MTYuNGMxLjIuNCA2LjUuNSA4LjEuNSAyMC43IDAgMzAuNC03LjkgMzguOS0zMS44TDUxNiAyMTAuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2NEaW5lcnNDbHViIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzOS43IDc5LjljLTk2LjkgMC0xNzUuOCA3OC42LTE3NS44IDE3NS44IDAgOTYuOSA3OC45IDE3NS44IDE3NS44IDE3NS44IDk3LjIgMCAxNzUuOC03OC45IDE3NS44LTE3NS44IDAtOTcuMi03OC42LTE3NS44LTE3NS44LTE3NS44em0tMzkuOSAyNzkuNmMtNDEuNy0xNS45LTcxLjQtNTYuNC03MS40LTEwMy44czI5LjctODcuOSA3MS40LTEwNC4xdjIwNy45em03OS44LjNWMTUxLjZjNDEuNyAxNi4yIDcxLjQgNTYuNyA3MS40IDEwNC4xcy0yOS43IDg3LjktNzEuNCAxMDQuMXpNNTI4IDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQ4MGMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNMzI5LjcgNDQ4aC05MC4zYy0xMDYuMiAwLTE5My44LTg1LjUtMTkzLjgtMTkwLjJDNDUuNiAxNDMuMiAxMzMuMiA2NCAyMzkuNCA2NGg5MC4zYzEwNSAwIDIwMC43IDc5LjIgMjAwLjcgMTkzLjggMCAxMDQuNy05NS43IDE5MC4yLTIwMC43IDE5MC4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDY0Rpc2NvdmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyMC40IDE5Ni4xYzAtNy45LTUuNS0xMi4xLTE1LjYtMTIuMWgtNC45djI0LjloNC43YzEwLjMgMCAxNS44LTQuNCAxNS44LTEyLjh6TTUyOCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0ODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS00NC4xIDEzOC45YzIyLjYgMCA1Mi45LTQuMSA1Mi45IDI0LjQgMCAxMi42LTYuNiAyMC43LTE4LjcgMjMuMmwyNS44IDM0LjRoLTE5LjZsLTIyLjItMzIuOGgtMi4ydjMyLjhoLTE2em0tNTUuOS4xaDQ1LjN2MTRINDQ0djE4LjJoMjguM1YyMTdINDQ0djIyLjJoMjkuM1YyNTNINDI4em0tNjguNyAwbDIxLjkgNTUuMiAyMi4yLTU1LjJoMTcuNWwtMzUuNSA4NC4yaC04LjZsLTM1LTg0LjJ6bS01NS45LTNjMjQuNyAwIDQ0LjYgMjAgNDQuNiA0NC42IDAgMjQuNy0yMCA0NC42LTQ0LjYgNDQuNi0yNC43IDAtNDQuNi0yMC00NC42LTQ0LjYgMC0yNC43IDIwLTQ0LjYgNDQuNi00NC42em0tNDkuMyA2LjF2MTljLTIwLjEtMjAuMS00Ni44LTQuNy00Ni44IDE5IDAgMjUgMjcuNSAzOC41IDQ2LjggMTkuMnYxOWMtMjkuNyAxNC4zLTYzLjMtNS43LTYzLjMtMzguMiAwLTMxLjIgMzMuMS01MyA2My4zLTM4em0tOTcuMiA2Ni4zYzExLjQgMCAyMi40LTE1LjMtMy4zLTI0LjQtMTUtNS41LTIwLjItMTEuNC0yMC4yLTIyLjcgMC0yMy4yIDMwLjYtMzEuNCA0OS43LTE0LjNsLTguNCAxMC44Yy0xMC40LTExLjYtMjQuOS02LjItMjQuOSAyLjUgMCA0LjQgMi43IDYuOSAxMi4zIDEwLjMgMTguMiA2LjYgMjMuNiAxMi41IDIzLjYgMjUuNiAwIDI5LjUtMzguOCAzNy40LTU2LjYgMTEuM2wxMC4zLTkuOWMzLjcgNy4xIDkuOSAxMC44IDE3LjUgMTAuOHpNNTUuNCAyNTNIMzJ2LTgyaDIzLjRjMjYuMSAwIDQ0LjEgMTcgNDQuMSA0MS4xIDAgMTguNS0xMy4yIDQwLjktNDQuMSA0MC45em02Ny41IDBoLTE2di04MmgxNnpNNTQ0IDQzM2MwIDguMi02LjggMTUtMTUgMTVIMTI4YzE4OS42LTM1LjYgMzgyLjctMTM5LjIgNDE2LTE2MHpNNzQuMSAxOTEuNmMtNS4yLTQuOS0xMS42LTYuNi0yMS45LTYuNkg0OHY1NC4yaDQuMmMxMC4zIDAgMTctMiAyMS45LTYuNCA1LjctNS4yIDguOS0xMi44IDguOS0yMC43cy0zLjItMTUuNS04LjktMjAuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2NKY2IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMxLjUgMjQ0LjNWMjEyYzQxLjIgMCAzOC41LjIgMzguNS4yIDcuMyAxLjMgMTMuMyA3LjMgMTMuMyAxNiAwIDguOC02IDE0LjUtMTMuMyAxNS44LTEuMi40LTMuMy4zLTM4LjUuM3ptNDIuOCAyMC4yYy0yLjgtLjctMy4zLS41LTQyLjgtLjV2MzVjMzkuNiAwIDQwIC4yIDQyLjgtLjUgNy41LTEuNSAxMy41LTggMTMuNS0xNyAwLTguNy02LTE1LjUtMTMuNS0xN3pNNTc2IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoNDgwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xODIgMTkyLjNoLTU3YzAgNjcuMSAxMC43IDEwOS43LTM1LjggMTA5LjctMTkuNSAwLTM4LjgtNS43LTU3LjItMTQuOHYyOGMzMCA4LjMgNjggOC4zIDY4IDguMyA5Ny45IDAgODItNDcuNyA4Mi0xMzEuMnptMTc4LjUgNC41Yy02My40LTE2LTE2NS0xNC45LTE2NSA1OS4zIDAgNzcuMSAxMDguMiA3My42IDE2NSA1OS4yVjI4N0MzMTIuOSAzMTEuNyAyNTMgMzA5IDI1MyAyNTZzNTkuOC01NS42IDEwNy41LTMxLjJ2LTI4ek01NDQgMjg2LjVjMC0xOC41LTE2LjUtMzAuNS0zOC0zMnYtLjhjMTkuNS0yLjcgMzAuMy0xNS41IDMwLjMtMzAuMiAwLTE5LTE1LjctMzAtMzctMzEgMCAwIDYuMy0uMy0xMjAuMy0uM3YxMjcuNWgxMjIuN2MyNC4zLjEgNDIuMy0xMi45IDQyLjMtMzMuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2NNYXN0ZXJjYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4Mi45IDQxMC4zYzAgNi44LTQuNiAxMS43LTExLjIgMTEuNy02LjggMC0xMS4yLTUuMi0xMS4yLTExLjcgMC02LjUgNC40LTExLjcgMTEuMi0xMS43IDYuNiAwIDExLjIgNS4yIDExLjIgMTEuN3ptLTMxMC44LTExLjdjLTcuMSAwLTExLjIgNS4yLTExLjIgMTEuNyAwIDYuNSA0LjEgMTEuNyAxMS4yIDExLjcgNi41IDAgMTAuOS00LjkgMTAuOS0xMS43LS4xLTYuNS00LjQtMTEuNy0xMC45LTExLjd6bTExNy41LS4zYy01LjQgMC04LjcgMy41LTkuNSA4LjdoMTkuMWMtLjktNS43LTQuNC04LjctOS42LTguN3ptMTA3LjguM2MtNi44IDAtMTAuOSA1LjItMTAuOSAxMS43IDAgNi41IDQuMSAxMS43IDEwLjkgMTEuNyA2LjggMCAxMS4yLTQuOSAxMS4yLTExLjcgMC02LjUtNC40LTExLjctMTEuMi0xMS43em0xMDUuOSAyNi4xYzAgLjMuMy41LjMgMS4xIDAgLjMtLjMuNS0uMyAxLjEtLjMuMy0uMy41LS41LjgtLjMuMy0uNS41LTEuMS41LS4zLjMtLjUuMy0xLjEuMy0uMyAwLS41IDAtMS4xLS4zLS4zIDAtLjUtLjMtLjgtLjUtLjMtLjMtLjUtLjUtLjUtLjgtLjMtLjUtLjMtLjgtLjMtMS4xIDAtLjUgMC0uOC4zLTEuMSAwLS41LjMtLjguNS0xLjEuMy0uMy41LS4zLjgtLjUuNS0uMy44LS4zIDEuMS0uMy41IDAgLjggMCAxLjEuMy41LjMuOC4zIDEuMS41cy4yLjYuNSAxLjF6bS0yLjIgMS40Yy41IDAgLjUtLjMuOC0uMy4zLS4zLjMtLjUuMy0uOCAwLS4zIDAtLjUtLjMtLjgtLjMgMC0uNS0uMy0xLjEtLjNoLTEuNnYzLjVoLjhWNDI2aC4zbDEuMSAxLjRoLjhsLTEuMS0xLjN6TTU3NiA4MXYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgxYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4MGMyNi41IDAgNDggMjEuNSA0OCA0OHpNNjQgMjIwLjZjMCA3Ni41IDYyLjEgMTM4LjUgMTM4LjUgMTM4LjUgMjcuMiAwIDUzLjktOC4yIDc2LjUtMjMuMS03Mi45LTU5LjMtNzIuNC0xNzEuMiAwLTIzMC41LTIyLjYtMTUtNDkuMy0yMy4xLTc2LjUtMjMuMS03Ni40LS4xLTEzOC41IDYyLTEzOC41IDEzOC4yem0yMjQgMTA4LjhjNzAuNS01NSA3MC4yLTE2Mi4yIDAtMjE3LjUtNzAuMiA1NS4zLTcwLjUgMTYyLjYgMCAyMTcuNXptLTE0Mi4zIDc2LjNjMC04LjctNS43LTE0LjQtMTQuNy0xNC43LTQuNiAwLTkuNSAxLjQtMTIuOCA2LjUtMi40LTQuMS02LjUtNi41LTEyLjItNi41LTMuOCAwLTcuNiAxLjQtMTAuNiA1LjRWMzkyaC04LjJ2MzYuN2g4LjJjMC0xOC45LTIuNS0zMC4yIDktMzAuMiAxMC4yIDAgOC4yIDEwLjIgOC4yIDMwLjJoNy45YzAtMTguMy0yLjUtMzAuMiA5LTMwLjIgMTAuMiAwIDguMiAxMCA4LjIgMzAuMmg4LjJ2LTIzem00NC45LTEzLjdoLTcuOXY0LjRjLTIuNy0zLjMtNi41LTUuNC0xMS43LTUuNC0xMC4zIDAtMTguMiA4LjItMTguMiAxOS4zIDAgMTEuMiA3LjkgMTkuMyAxOC4yIDE5LjMgNS4yIDAgOS0xLjkgMTEuNy01LjR2NC42aDcuOVYzOTJ6bTQwLjUgMjUuNmMwLTE1LTIyLjktOC4yLTIyLjktMTUuMiAwLTUuNyAxMS45LTQuOCAxOC41LTEuMWwzLjMtNi41Yy05LjQtNi4xLTMwLjItNi0zMC4yIDguMiAwIDE0LjMgMjIuOSA4LjMgMjIuOSAxNSAwIDYuMy0xMy41IDUuOC0yMC43LjhsLTMuNSA2LjNjMTEuMiA3LjYgMzIuNiA2IDMyLjYtNy41em0zNS40IDkuM2wtMi4yLTYuOGMtMy44IDIuMS0xMi4yIDQuNC0xMi4yLTQuMXYtMTYuNmgxMy4xVjM5MmgtMTMuMXYtMTEuMmgtOC4yVjM5MmgtNy42djcuM2g3LjZWNDE2YzAgMTcuNiAxNy4zIDE0LjQgMjIuNiAxMC45em0xMy4zLTEzLjRoMjcuNWMwLTE2LjItNy40LTIyLjYtMTcuNC0yMi42LTEwLjYgMC0xOC4yIDcuOS0xOC4yIDE5LjMgMCAyMC41IDIyLjYgMjMuOSAzMy44IDE0LjJsLTMuOC02Yy03LjggNi40LTE5LjYgNS44LTIxLjktNC45em01OS4xLTIxLjVjLTQuNi0yLTExLjYtMS44LTE1LjIgNC40VjM5MmgtOC4ydjM2LjdoOC4yVjQwOGMwLTExLjYgOS41LTEwLjEgMTIuOC04LjRsMi40LTcuNnptMTAuNiAxOC4zYzAtMTEuNCAxMS42LTE1LjEgMjAuNy04LjRsMy44LTYuNWMtMTEuNi05LjEtMzIuNy00LjEtMzIuNyAxNSAwIDE5LjggMjIuNCAyMy44IDMyLjcgMTVsLTMuOC02LjVjLTkuMiA2LjUtMjAuNyAyLjYtMjAuNy04LjZ6bTY2LjctMTguM0g0MDh2NC40Yy04LjMtMTEtMjkuOS00LjgtMjkuOSAxMy45IDAgMTkuMiAyMi40IDI0LjcgMjkuOSAxMy45djQuNmg4LjJWMzkyem0zMy43IDBjLTIuNC0xLjItMTEtMi45LTE1LjIgNC40VjM5MmgtNy45djM2LjdoNy45VjQwOGMwLTExIDktMTAuMyAxMi44LTguNGwyLjQtNy42em00MC4zLTE0LjloLTcuOXYxOS4zYy04LjItMTAuOS0yOS45LTUuMS0yOS45IDEzLjkgMCAxOS40IDIyLjUgMjQuNiAyOS45IDEzLjl2NC42aDcuOXYtNTEuN3ptNy42LTc1LjF2NC42aC44VjMwMmgxLjl2LS44aC00LjZ2LjhoMS45em02LjYgMTIzLjhjMC0uNSAwLTEuMS0uMy0xLjYtLjMtLjMtLjUtLjgtLjgtMS4xLS4zLS4zLS44LS41LTEuMS0uOC0uNSAwLTEuMS0uMy0xLjYtLjMtLjMgMC0uOC4zLTEuNC4zLS41LjMtLjguNS0xLjEuOC0uNS4zLS44LjgtLjggMS4xLS4zLjUtLjMgMS4xLS4zIDEuNiAwIC4zIDAgLjguMyAxLjQgMCAuMy4zLjguOCAxLjEuMy4zLjUuNSAxLjEuOC41LjMgMS4xLjMgMS40LjMuNSAwIDEuMSAwIDEuNi0uMy4zLS4zLjgtLjUgMS4xLS44LjMtLjMuNS0uOC44LTEuMS4zLS42LjMtMS4xLjMtMS40em0zLjItMTI0LjdoLTEuNGwtMS42IDMuNS0xLjYtMy41aC0xLjR2NS40aC44di00LjFsMS42IDMuNWgxLjFsMS40LTMuNXY0LjFoMS4xdi01LjR6bTQuNC04MC41YzAtNzYuMi02Mi4xLTEzOC4zLTEzOC41LTEzOC4zLTI3LjIgMC01My45IDguMi03Ni41IDIzLjEgNzIuMSA1OS4zIDczLjIgMTcxLjUgMCAyMzAuNSAyMi42IDE1IDQ5LjUgMjMuMSA3Ni41IDIzLjEgNzYuNC4xIDEzOC41LTYxLjkgMTM4LjUtMTM4LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNjUGF5cGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ni4zIDI1OC4yYzAgMTIuMi05LjcgMjEuNS0yMiAyMS41LTkuMiAwLTE2LTUuMi0xNi0xNSAwLTEyLjIgOS41LTIyIDIxLjctMjIgOS4zIDAgMTYuMyA1LjcgMTYuMyAxNS41ek04MC41IDIwOS43aC00LjdjLTEuNSAwLTMgMS0zLjIgMi43bC00LjMgMjYuNyA4LjItLjNjMTEgMCAxOS41LTEuNSAyMS41LTE0LjIgMi4zLTEzLjQtNi4yLTE0LjktMTcuNS0xNC45em0yODQgMEgzNjBjLTEuOCAwLTMgMS0zLjIgMi43bC00LjIgMjYuNyA4LS4zYzEzIDAgMjItMyAyMi0xOC0uMS0xMC42LTkuNi0xMS4xLTE4LjEtMTEuMXpNNTc2IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoNDgwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xMjguMyAyMTUuNGMwLTIxLTE2LjItMjgtMzQuNy0yOGgtNDBjLTIuNSAwLTUgMi01LjIgNC43TDMyIDI5NC4yYy0uMyAyIDEuMiA0IDMuMiA0aDE5YzIuNyAwIDUuMi0yLjkgNS41LTUuN2w0LjUtMjYuNmMxLTcuMiAxMy4yLTQuNyAxOC00LjcgMjguNiAwIDQ2LjEtMTcgNDYuMS00NS44em04NC4yIDguOGgtMTljLTMuOCAwLTQgNS41LTQuMiA4LjItNS44LTguNS0xNC4yLTEwLTIzLjctMTAtMjQuNSAwLTQzLjIgMjEuNS00My4yIDQ1LjIgMCAxOS41IDEyLjIgMzIuMiAzMS43IDMyLjIgOSAwIDIwLjItNC45IDI2LjUtMTEuOS0uNSAxLjUtMSA0LjctMSA2LjIgMCAyLjMgMSA0IDMuMiA0SDIwMGMyLjcgMCA1LTIuOSA1LjUtNS43bDEwLjItNjQuM2MuMy0xLjktMS4yLTMuOS0zLjItMy45em00MC41IDk3LjlsNjMuNy05Mi42Yy41LS41LjUtMSAuNS0xLjcgMC0xLjctMS41LTMuNS0zLjItMy41aC0xOS4yYy0xLjcgMC0zLjUgMS00LjUgMi41bC0yNi41IDM5LTExLTM3LjVjLS44LTIuMi0zLTQtNS41LTRoLTE4LjdjLTEuNyAwLTMuMiAxLjgtMy4yIDMuNSAwIDEuMiAxOS41IDU2LjggMjEuMiA2Mi4xLTIuNyAzLjgtMjAuNSAyOC42LTIwLjUgMzEuNiAwIDEuOCAxLjUgMy4yIDMuMiAzLjJoMTkuMmMxLjgtLjEgMy41LTEuMSA0LjUtMi42em0xNTkuMy0xMDYuN2MwLTIxLTE2LjItMjgtMzQuNy0yOGgtMzkuN2MtMi43IDAtNS4yIDItNS41IDQuN2wtMTYuMiAxMDJjLS4yIDIgMS4zIDQgMy4yIDRoMjAuNWMyIDAgMy41LTEuNSA0LTMuMmw0LjUtMjljMS03LjIgMTMuMi00LjcgMTgtNC43IDI4LjQgMCA0NS45LTE3IDQ1LjktNDUuOHptODQuMiA4LjhoLTE5Yy0zLjggMC00IDUuNS00LjMgOC4yLTUuNS04LjUtMTQtMTAtMjMuNy0xMC0yNC41IDAtNDMuMiAyMS41LTQzLjIgNDUuMiAwIDE5LjUgMTIuMiAzMi4yIDMxLjcgMzIuMiA5LjMgMCAyMC41LTQuOSAyNi41LTExLjktLjMgMS41LTEgNC43LTEgNi4yIDAgMi4zIDEgNCAzLjIgNEg0ODRjMi43IDAgNS0yLjkgNS41LTUuN2wxMC4yLTY0LjNjLjMtMS45LTEuMi0zLjktMy4yLTMuOXptNDcuNS0zMy4zYzAtMi0xLjUtMy41LTMuMi0zLjVoLTE4LjVjLTEuNSAwLTMgMS4yLTMuMiAyLjdsLTE2LjIgMTA0LS4zLjVjMCAxLjggMS41IDMuNSAzLjUgMy41aDE2LjVjMi41IDAgNS0yLjkgNS4yLTUuN0w1NDQgMTkxLjJ2LS4zem0tOTAgNTEuOGMtMTIuMiAwLTIxLjcgOS43LTIxLjcgMjIgMCA5LjcgNyAxNSAxNi4yIDE1IDEyIDAgMjEuNy05LjIgMjEuNy0yMS41LjEtOS44LTYuOS0xNS41LTE2LjItMTUuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2NTdHJpcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDkyLjQgMjIwLjhjLTguOSAwLTE4LjcgNi43LTE4LjcgMjIuN2gzNi43YzAtMTYtOS4zLTIyLjctMTgtMjIuN3pNMzc1IDIyMy40Yy04LjIgMC0xMy4zIDIuOS0xNyA3bC4yIDUyLjhjMy41IDMuNyA4LjUgNi43IDE2LjggNi43IDEzLjEgMCAyMS45LTE0LjMgMjEuOS0zMy40IDAtMTguNi05LTMzLjItMjEuOS0zMy4xek01MjggMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoNDgwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xMjIuMiAyODEuMWMwIDI1LjYtMjAuMyA0MC4xLTQ5LjkgNDAuMy0xMi4yIDAtMjUuNi0yLjQtMzguOC04LjF2LTMzLjljMTIgNi40IDI3LjEgMTEuMyAzOC45IDExLjMgNy45IDAgMTMuNi0yLjEgMTMuNi04LjcgMC0xNy01NC0xMC42LTU0LTQ5LjkgMC0yNS4yIDE5LjItNDAuMiA0OC00MC4yIDExLjggMCAyMy41IDEuOCAzNS4zIDYuNXYzMy40Yy0xMC44LTUuOC0yNC41LTkuMS0zNS4zLTkuMS03LjUgMC0xMi4xIDIuMi0xMi4xIDcuNyAwIDE2IDU0LjMgOC40IDU0LjMgNTAuN3ptNjguOC01Ni42aC0yN1YyNzVjMCAyMC45IDIyLjUgMTQuNCAyNyAxMi42djI4LjljLTQuNyAyLjYtMTMuMyA0LjctMjQuOSA0LjctMjEuMSAwLTM2LjktMTUuNS0zNi45LTM2LjVsLjItMTEzLjkgMzQuNy03LjR2MzAuOEgxOTF6bTc0IDIuNGMtNC41LTEuNS0xOC43LTMuNi0yNy4xIDcuNHY4NC40aC0zNS41VjE5NC4yaDMwLjdsMi4yIDEwLjVjOC4zLTE1LjMgMjQuOS0xMi4yIDI5LjYtMTAuNWguMXptNDQuMSA5MS44aC0zNS43VjE5NC4yaDM1Ljd6bTAtMTQyLjlsLTM1LjcgNy42di0yOC45bDM1LjctNy42em03NC4xIDE0NS41Yy0xMi40IDAtMjAtNS4zLTI1LjEtOWwtLjEgNDAuMi0zNS41IDcuNVYxOTQuMmgzMS4zbDEuOCA4LjhjNC45LTQuNSAxMy45LTExLjEgMjcuOC0xMS4xIDI0LjkgMCA0OC40IDIyLjUgNDguNCA2My44IDAgNDUuMS0yMy4yIDY1LjUtNDguNiA2NS42em0xNjAuNC01MS41aC02OS41YzEuNiAxNi42IDEzLjggMjEuNSAyNy42IDIxLjUgMTQuMSAwIDI1LjItMyAzNC45LTcuOVYzMTJjLTkuNyA1LjMtMjIuNCA5LjItMzkuNCA5LjItMzQuNiAwLTU4LjgtMjEuNy01OC44LTY0LjUgMC0zNi4yIDIwLjUtNjQuOSA1NC4zLTY0LjkgMzMuNyAwIDUxLjMgMjguNyA1MS4zIDY1LjEgMCAzLjUtLjMgMTAuOS0uNCAxMi45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDY1Zpc2EgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDcwLjEgMjMxLjNzNy42IDM3LjIgOS4zIDQ1SDQ0NmMzLjMtOC45IDE2LTQzLjUgMTYtNDMuNS0uMi4zIDMuMy05LjEgNS4zLTE0LjlsMi44IDEzLjR6TTU3NiA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4MGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTUyLjUgMzMxLjJMMjE1LjcgMTc2aC00Mi41bC0zOS4zIDEwNi00LjMtMjEuNS0xNC03MS40Yy0yLjMtOS45LTkuNC0xMi43LTE4LjItMTMuMUgzMi43bC0uNyAzLjFjMTUuOCA0IDI5LjkgOS44IDQyLjIgMTcuMWwzNS44IDEzNWg0Mi41em05NC40LjJMMjcyLjEgMTc2aC00MC4ybC0yNS4xIDE1NS40aDQwLjF6bTEzOS45LTUwLjhjLjItMTcuNy0xMC42LTMxLjItMzMuNy00Mi4zLTE0LjEtNy4xLTIyLjctMTEuOS0yMi43LTE5LjIuMi02LjYgNy4zLTEzLjQgMjMuMS0xMy40IDEzLjEtLjMgMjIuNyAyLjggMjkuOSA1LjlsMy42IDEuNyA1LjUtMzMuNmMtNy45LTMuMS0yMC41LTYuNi0zNi02LjYtMzkuNyAwLTY3LjYgMjEuMi02Ny44IDUxLjQtLjMgMjIuMyAyMCAzNC43IDM1LjIgNDIuMiAxNS41IDcuNiAyMC44IDEyLjYgMjAuOCAxOS4zLS4yIDEwLjQtMTIuNiAxNS4yLTI0LjEgMTUuMi0xNiAwLTI0LjYtMi41LTM3LjctOC4zbC01LjMtMi41LTUuNiAzNC45YzkuNCA0LjMgMjYuOCA4LjEgNDQuOCA4LjMgNDIuMi4xIDY5LjctMjAuOCA3MC01M3pNNTI4IDMzMS40TDQ5NS42IDE3NmgtMzEuMWMtOS42IDAtMTYuOSAyLjgtMjEgMTIuOWwtNTkuNyAxNDIuNUg0MjZzNi45LTE5LjIgOC40LTIzLjNINDg2YzEuMiA1LjUgNC44IDIzLjMgNC44IDIzLjNINTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDZW50ZXJjb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyOS4yIDI2OC42Yy0zLjggMzUuMi0zNS40IDYwLjYtNzAuNiA1Ni44LTM1LjItMy44LTYwLjYtMzUuNC01Ni44LTcwLjYgMy44LTM1LjIgMzUuNC02MC42IDcwLjYtNTYuOCAzNS4xIDMuOCA2MC42IDM1LjQgNTYuOCA3MC42em0tODUuOCAyMzUuMUM5Ni43IDQ5Ni04LjIgMzY1LjUgMTAuMSAyMjQuM2MxMS4yLTg2LjYgNjUuOC0xNTYuOSAxMzkuMS0xOTIgMTYxLTc3LjEgMzQ5LjcgMzcuNCAzNTQuNyAyMTYuNiA0LjEgMTQ3LTExOC40IDI2Mi4yLTI2MC41IDI1NC44em0xNzkuOS0xODBjMjcuOS0xMTgtMTYwLjUtMjA1LjktMjM3LjItMjM0LjItNTcuNSA1Ni4zLTY5LjEgMTg4LjYtMzMuOCAzNDQuNCA2OC44IDE1LjggMTY5LjEtMjYuNCAyNzEtMTEwLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNlbnRvcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODkuNiA5Ny41bDMxLjYgMzEuNy03Ni4zIDc2LjVWOTcuNXptLTE2Mi40IDMxLjdsNzYuMyA3Ni41Vjk3LjVoLTQ0Ljd6bTQxLjUtNDEuNmg0NC43djEyNy45bDEwLjggMTAuOCAxMC44LTEwLjhWODcuNmg0NC43TDIyNC4yIDMyem0yNi4yIDE2OC4xbC0xMC44LTEwLjhINTUuNXYtNDQuOEwwIDI1NS43bDU1LjUgNTUuNnYtNDQuOGgxMjguNmwxMC44LTEwLjh6bTc5LjMtMjAuN2gxMDcuOXYtNDQuOGwtMzEuNi0zMS43em0xNzMuMyAyMC43TDM5MiAyMDAuMXY0NC44SDI2NC4zbC0xMC44IDEwLjggMTAuOCAxMC44SDM5MnY0NC44bDU1LjUtNTUuNnpNNjUuNCAxNzYuMmwzMi41LTMxLjcgOTAuMyA5MC41aDE1LjN2LTE1LjNsLTkwLjMtOTAuNSAzMS42LTMxLjdINjUuNHptMzE2LjctNzguN2gtNzguNWwzMS42IDMxLjctOTAuMyA5MC41VjIzNWgxNS4zbDkwLjMtOTAuNSAzMS42IDMxLjd6TTIwMy41IDQxMy45VjMwNS44bC03Ni4zIDc2LjUgMzEuNiAzMS43aDQ0Ljd6TTY1LjQgMjM1aDEwOC44bC03Ni4zLTc2LjUtMzIuNSAzMS43em0zMTYuNyAxMDAuMmwtMzEuNiAzMS43LTkwLjMtOTAuNWgtMTUuM3YxNS4zbDkwLjMgOTAuNS0zMS42IDMxLjdoNzguNXptMC01OC44SDI3NC4ybDc2LjMgNzYuNSAzMS42LTMxLjd6bS02MC45IDEwNS44bC03Ni4zLTc2LjV2MTA4LjFoNDQuN3pNOTcuOSAzNTIuOWw3Ni4zLTc2LjVINjUuNHY0NC44em0xODEuOCA3MC45SDIzNVYyOTUuOWwtMTAuOC0xMC44LTEwLjggMTAuOHYxMjcuOWgtNDQuN2w1NS41IDU1LjZ6bS0xNjYuNS00MS42bDkwLjMtOTAuNXYtMTUuM2gtMTUuM2wtOTAuMyA5MC41LTMyLjUtMzEuN3Y3OC43aDc5LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNocm9tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMzEuNSAyMTcuNUw1NS4xIDEwMC4xYzQ3LjYtNTkuMiAxMTktOTEuOCAxOTItOTIuMSA0Mi4zLS4zIDg1LjUgMTAuNSAxMjQuOCAzMy4yIDQzLjQgMjUuMiA3Ni40IDYxLjQgOTcuNCAxMDNMMjY0IDEzMy40Yy01OC4xLTMuNC0xMTMuNCAyOS4zLTEzMi41IDg0LjF6bTMyLjkgMzguNWMwIDQ2LjIgMzcuNCA4My42IDgzLjYgODMuNnM4My42LTM3LjQgODMuNi04My42LTM3LjQtODMuNi04My42LTgzLjYtODMuNiAzNy4zLTgzLjYgODMuNnptMzE0LjktODkuMkwzMzkuNiAxNzRjMzcuOSA0NC4zIDM4LjUgMTA4LjIgNi42IDE1Ny4yTDIzNC4xIDUwMy42YzQ2LjUgMi41IDk0LjQtNy43IDEzNy44LTMyLjkgMTA3LjQtNjIgMTUwLjktMTkyIDEwNy40LTMwMy45ek0xMzMuNyAzMDMuNkw0MC40IDEyMC4xQzE0LjkgMTU5LjEgMCAyMDUuOSAwIDI1NmMwIDEyNCA5MC44IDIyNi43IDIwOS41IDI0NC45bDYzLjctMTI0LjhjLTU3LjYgMTAuOC0xMTMuMi0yMC44LTEzOS41LTcyLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNocm9tZWNhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ3LjgsNjRINjRjLTIzLjYsMC00Mi43LDE5LjEtNDIuNyw0Mi43djYzLjlINjR2LTYzLjloMzgzLjh2Mjk4LjZIMjk4LjZWNDQ4SDQ0OGMyMy42LDAsNDIuNy0xOS4xLDQyLjctNDIuN1YxMDYuNyBDNDkwLjcsODMuMSw0NzEuNCw2NCw0NDcuOCw2NHogTTIxLjMsMzgzLjZMMjEuMywzODMuNmwwLDYzLjloNjMuOUM4NS4yLDQxMi4yLDU2LjYsMzgzLjYsMjEuMywzODMuNkwyMS4zLDM4My42eiBNMjEuMywyOTguNlYzNDEgYzU4LjksMCwxMDYuNiw0OC4xLDEwNi42LDEwN2g0Mi43QzE3MC43LDM2NS42LDEwMy43LDI5OC43LDIxLjMsMjk4LjZ6IE0yMTMuNCw0NDhoNDIuN2MtMC41LTEyOS41LTEwNS4zLTIzNC4zLTIzNC44LTIzNC42bDAsNDIuNCBDMTI3LjMsMjU1LjYsMjEzLjMsMzQyLDIxMy40LDQ0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRmbGFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDcuOTA2LDMxOS45MTNsLTIzMC44LTIuOTI4YTQuNTgsNC41OCwwLDAsMS0zLjYzMi0xLjkyNiw0LjY0OCw0LjY0OCwwLDAsMS0uNDk0LTQuMTQ3LDYuMTQzLDYuMTQzLDAsMCwxLDUuMzYxLTQuMDc2TDQxMS4yODEsMzAzLjljMjcuNjMxLTEuMjYsNTcuNTQ2LTIzLjU3NCw2OC4wMjItNTAuNzg0bDEzLjI4Ni0zNC41NDJhNy45NDQsNy45NDQsMCwwLDAsLjUyNC0yLjkzNiw3LjczNSw3LjczNSwwLDAsMC0uMTY0LTEuNjMxQTE1MS45MSwxNTEuOTEsMCwwLDAsMjAxLjI1NywxOTguNCw2OC4xMiw2OC4xMiwwLDAsMCw5NC4yLDI2OS41OUM0MS45MjQsMjcxLjEwNiwwLDMxMy43MjgsMCwzNjYuMTJhOTYuMDU0LDk2LjA1NCwwLDAsMCwxLjAyOSwxMy45NTgsNC41MDgsNC41MDgsMCwwLDAsNC40NDUsMy44NzFsNDI2LjEuMDUxYy4wNDMsMCwuMDgtLjAxOS4xMjItLjAyYTUuNjA2LDUuNjA2LDAsMCwwLDUuMjcxLTRsMy4yNzMtMTEuMjY1YzMuOS0xMy40LDIuNDQ4LTI1LjgtNC4xLTM0LjlDNDMwLjEyNCwzMjUuNDIzLDQyMC4wOSwzMjAuNDg3LDQwNy45MDYsMzE5LjkxM1pNNTEzLjg1NiwyMjEuMWMtMi4xNDEsMC00LjI3MS4wNjItNi4zOTEuMTY0YTMuNzcxLDMuNzcxLDAsMCwwLTMuMzI0LDIuNjUzbC05LjA3NywzMS4xOTNjLTMuOSwxMy40LTIuNDQ5LDI1Ljc4Niw0LjEsMzQuODksNi4wMiw4LjQsMTYuMDU0LDEzLjMyMywyOC4yMzgsMTMuOWw0OS4yLDIuOTM5YTQuNDkxLDQuNDkxLDAsMCwxLDMuNTEsMS44OTQsNC42NCw0LjY0LDAsMCwxLC41MTQsNC4xNjksNi4xNTMsNi4xNTMsMCwwLDEtNS4zNTEsNC4wNzVsLTUxLjEyNSwyLjkzOWMtMjcuNzU0LDEuMjctNTcuNjY5LDIzLjU3NC02OC4xNDUsNTAuNzg0bC0zLjY5NSw5LjYwNmEyLjcxNiwyLjcxNiwwLDAsMCwyLjQyNywzLjY4Yy4wNDYsMCwuMDg4LjAxNy4xMzYuMDE3aDE3NS45MWE0LjY5LDQuNjksMCwwLDAsNC41MzktMy4zNywxMjQuODA3LDEyNC44MDcsMCwwLDAsNC42ODItMzRDNjQwLDI3Ny4zLDU4My41MjQsMjIxLjEsNTEzLjg1NiwyMjEuMVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRzY2FsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTguMSAxNTRsLTkuNCA3LjZjLTIyLjUtMTkuMy01MS41LTMzLjYtODMuMy0zMy42QzE1My44IDEyOCA5NiAxODguOCA5NiAyNjAuM2MwIDYuNi40IDEzLjEgMS40IDE5LjQtMi01NiA0MS44LTk3LjQgOTIuNi05Ny40IDI0LjIgMCA0Ni4yIDkuNCA2Mi42IDI0LjdsLTI1LjIgMjAuNGMtOC4zLS45LTE2LjggMS44LTIzLjEgOC4xLTExLjEgMTEtMTEuMSAyOC45IDAgNDAgMTEuMSAxMSAyOC45IDExIDQwIDAgNi4zLTYuMyA5LTE0LjkgOC4xLTIzLjFsNzUuMi04OC44YzYuMy02LjUtMy4zLTE1LjktOS41LTkuNnptLTgzLjggMTExLjVjLTUuNiA1LjUtMTQuNiA1LjUtMjAuMiAwLTUuNi01LjYtNS42LTE0LjYgMC0yMC4yczE0LjYtNS42IDIwLjIgMCA1LjYgMTQuNyAwIDIwLjJ6TTIyNCAzMkMxMDAuNSAzMiAwIDEzMi41IDAgMjU2czEwMC41IDIyNCAyMjQgMjI0IDIyNC0xMDAuNSAyMjQtMjI0UzM0Ny41IDMyIDIyNCAzMnptMCAzODRjLTg4LjIgMC0xNjAtNzEuOC0xNjAtMTYwUzEzNS44IDk2IDIyNCA5NnMxNjAgNzEuOCAxNjAgMTYwLTcxLjggMTYwLTE2MCAxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3Vkc21pdGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMzMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzMyLjUgNDE5LjljMCA0Ni40LTM3LjYgODQuMS04NCA4NC4xcy04NC0zNy43LTg0LTg0LjEgMzcuNi04NCA4NC04NCA4NCAzNy42IDg0IDg0em0tODQtMjQzLjljNDYuNCAwIDgwLTM3LjYgODAtODRzLTMzLjYtODQtODAtODQtODggMzcuNi04OCA4NC0yOS42IDc2LTc2IDc2LTg0IDQxLjYtODQgODggMzcuNiA4MCA4NCA4MCA4NC0zMy42IDg0LTgwIDMzLjYtODAgODAtODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkdmVyc2lmeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjE2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDguNiAzMDRjOC4yIDY4LjUgNjcuNCAxMTUuNSAxNDYgMTExLjMgNTEuMiA0My4zIDEzNi44IDQ1LjggMTg2LjQtNS42IDY5LjIgMS4xIDExOC41LTQ0LjYgMTMxLjUtOTkuNSAxNC44LTYyLjUtMTguMi0xMzIuNS05Mi4xLTE1NS4xLTMzLTg4LjEtMTMxLjQtMTAxLjUtMTg2LjUtODUtNTcuMyAxNy4zLTg0LjMgNTMuMi05OS4zIDEwOS43LTcuOCAyLjctMjYuNSA4LjktNDUgMjQuMSAxMS43IDAgMTUuMiA4LjkgMTUuMiAxOS41djIwLjRjMCAxMC43LTguNyAxOS41LTE5LjUgMTkuNWgtMjAuMmMtMTAuNyAwLTE5LjUtNi0xOS41LTE2LjdWMjQwSDk4LjhDOTUgMjQwIDg4IDI0NC4zIDg4IDI1MS45djQwLjRjMCA2LjQgNS4zIDExLjggMTEuNyAxMS44aDQ4Ljl6bTIyNy40IDhjLTEwLjcgNDYuMyAyMS43IDcyLjQgNTUuMyA4Ni44QzMyNC4xIDQzMi42IDI1OS43IDM0OCAyOTYgMjg4Yy0zMy4yIDIxLjYtMzMuNyA3MS4yLTI5LjIgOTIuOS0xNy45LTEyLjQtNTMuOC0zMi40LTU3LjQtNzkuOC0zLTM5LjkgMjEuNS03NS43IDU3LTkzLjlDMjk3IDE5MS40IDM2OS45IDE5OC43IDQwMCAyNDhjLTE0LjEtNDgtNTMuOC03MC4xLTEwMS44LTc0LjggMzAuOS0zMC43IDY0LjQtNTAuMyAxMTQuMi00My43IDY5LjggOS4zIDEzMy4yIDgyLjggNjcuNyAxNTAuNSAzNS0xNi4zIDQ4LjctNTQuNCA0Ny41LTc2LjlsMTAuNSAxOS42YzExLjggMjIgMTUuMiA0Ny42IDkuNCA3Mi05LjIgMzktNDAuNiA2OC44LTc5LjcgNzYuNS0zMi4xIDYuMy04My4xLTUuMS05MS44LTU5LjJ6TTEyOCAyMDhIODguMmMtOC45IDAtMTYuMi03LjMtMTYuMi0xNi4ydi0zOS42YzAtOC45IDcuMy0xNi4yIDE2LjItMTYuMkgxMjhjOC45IDAgMTYuMiA3LjMgMTYuMiAxNi4ydjM5LjZjMCA4LjktNy4zIDE2LjItMTYuMiAxNi4yek0xMC4xIDE2OEM0LjUgMTY4IDAgMTYzLjUgMCAxNTcuOXYtMjcuOGMwLTUuNiA0LjUtMTAuMSAxMC4xLTEwLjFoMjcuN2M1LjUgMCAxMC4xIDQuNSAxMC4xIDEwLjF2MjcuOGMwIDUuNi00LjUgMTAuMS0xMC4xIDEwLjFIMTAuMXpNMTY4IDE0Mi43di0yMS40YzAtNS4xIDQuMi05LjMgOS4zLTkuM2gyMS40YzUuMSAwIDkuMyA0LjIgOS4zIDkuM3YyMS40YzAgNS4xLTQuMiA5LjMtOS4zIDkuM2gtMjEuNGMtNS4xIDAtOS4zLTQuMi05LjMtOS4zek01NiAyMzUuNXYyNWMwIDYuMy01LjEgMTEuNS0xMS40IDExLjVIMTkuNEMxMy4xIDI3MiA4IDI2Ni44IDggMjYwLjV2LTI1YzAtNi4zIDUuMS0xMS41IDExLjQtMTEuNWgyNS4xYzYuNCAwIDExLjUgNS4yIDExLjUgMTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29kZXBlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDIuMjg1IDE1OS43MDRsLTIzNC0xNTZjLTcuOTg3LTQuOTE1LTE2LjUxMS00Ljk2LTI0LjU3MSAwbC0yMzQgMTU2QzMuNzE0IDE2My43MDMgMCAxNzAuODQ3IDAgMTc3Ljk4OXYxNTUuOTk5YzAgNy4xNDMgMy43MTQgMTQuMjg2IDkuNzE1IDE4LjI4NmwyMzQgMTU2LjAyMmM3Ljk4NyA0LjkxNSAxNi41MTEgNC45NiAyNC41NzEgMGwyMzQtMTU2LjAyMmM2LTMuOTk5IDkuNzE1LTExLjE0MyA5LjcxNS0xOC4yODZWMTc3Ljk4OWMtLjAwMS03LjE0Mi0zLjcxNS0xNC4yODYtOS43MTYtMTguMjg1ek0yNzggNjMuMTMxbDE3Mi4yODYgMTE0Ljg1OC03Ni44NTcgNTEuNDI5TDI3OCAxNjUuNzAzVjYzLjEzMXptLTQ0IDB2MTAyLjU3MmwtOTUuNDI5IDYzLjcxNS03Ni44NTctNTEuNDI5TDIzNCA2My4xMzF6TTQ0IDIxOS4xMzJsNTUuMTQzIDM2Ljg1N0w0NCAyOTIuODQ2di03My43MTR6bTE5MCAyMjkuNzE1TDYxLjcxNCAzMzMuOTg5bDc2Ljg1Ny01MS40MjlMMjM0IDM0Ni4yNzV2MTAyLjU3MnptMjItMTQwLjg1OGwtNzcuNzE1LTUyIDc3LjcxNS01MiA3Ny43MTUgNTItNzcuNzE1IDUyem0yMiAxNDAuODU4VjM0Ni4yNzVsOTUuNDI5LTYzLjcxNSA3Ni44NTcgNTEuNDI5TDI3OCA0NDguODQ3em0xOTAtMTU2LjAwMWwtNTUuMTQzLTM2Ljg1N0w0NjggMjE5LjEzMnY3My43MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvZGllcGllIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NzIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyMi41IDIwMi45YzMwLjcgMCAzMy41IDUzLjEtLjMgNTMuMWgtMTAuOHY0NC4zaC0yNi42di05Ny40aDM3Ljd6TTQ3MiAzNTIuNkM0MjkuOSA0NDQuNSAzNTAuNCA1MDQgMjQ4IDUwNCAxMTEgNTA0IDAgMzkzIDAgMjU2UzExMSA4IDI0OCA4Yzk3LjQgMCAxNzIuOCA1My43IDIxOC4yIDEzOC40bC0xODYgMTA4LjhMNDcyIDM1Mi42em0tMzguNSAxMi41bC02MC4zLTMwLjdjLTI3LjEgNDQuMy03MC40IDcxLjQtMTIyLjQgNzEuNC04Mi41IDAtMTQ5LjItNjYuNy0xNDkuMi0xNDguOSAwLTgyLjUgNjYuNy0xNDkuMiAxNDkuMi0xNDkuMiA0OC40IDAgODguOSAyMy41IDExNi45IDYzLjRsNTkuNS0zNC42Yy00MC43LTYyLjYtMTA0LjctMTAwLTE3OS4yLTEwMC0xMjEuMiAwLTIxOS41IDk4LjMtMjE5LjUgMjE5LjVTMTI2LjggNDc1LjUgMjQ4IDQ3NS41Yzc4LjYgMCAxNDYuNS00Mi4xIDE4NS41LTExMC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb25mbHVlbmNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuMyA0MTIuMmMtNC41IDcuNi0yLjEgMTcuNSA1LjUgMjIuMmwxMDUuOSA2NS4yYzcuNyA0LjcgMTcuNyAyLjQgMjIuNC01LjMgMC0uMS4xLS4yLjEtLjIgNjcuMS0xMTIuMiA4MC41LTk1LjkgMjgwLjktLjcgOC4xIDMuOSAxNy44LjQgMjEuNy03LjcuMS0uMS4xLS4zLjItLjRsNTAuNC0xMTQuMWMzLjYtOC4xLS4xLTE3LjYtOC4xLTIxLjMtMjIuMi0xMC40LTY2LjItMzEuMi0xMDUuOS01MC4zQzEyNy41IDE3OSA0NC42IDM0NS4zIDIuMyA0MTIuMnptNTA3LjQtMzEyLjFjNC41LTcuNiAyLjEtMTcuNS01LjUtMjIuMkwzOTguNCAxMi44Yy03LjUtNS0xNy42LTMuMS0yMi42IDQuNC0uMi4zLS40LjYtLjYgMS02Ny4zIDExMi42LTgxLjEgOTUuNi0yODAuNi45LTguMS0zLjktMTcuOC0uNC0yMS43IDcuNy0uMS4xLS4xLjMtLjIuNEwyMi4yIDE0MS4zYy0zLjYgOC4xLjEgMTcuNiA4LjEgMjEuMyAyMi4yIDEwLjQgNjYuMyAzMS4yIDEwNiA1MC40IDI0OCAxMjAgMzMwLjgtNDUuNCAzNzMuNC0xMTIuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29ubmVjdGRldmVsb3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTUwLjUgMjQxbC01MC4wODktODYuNzg2YzEuMDcxLTIuMTQyIDEuODc1LTQuNTUzIDEuODc1LTcuMjMyIDAtOC4wMzYtNi42OTYtMTQuNzMzLTE0LjczMi0xNS4wMDFsLTU1LjQ0Ny05NS44OTNjLjUzNi0xLjYwNyAxLjA3MS0zLjIxNCAxLjA3MS00LjgyMSAwLTguNTcxLTYuOTY0LTE1LjI2OC0xNS4yNjgtMTUuMjY4LTQuODIxIDAtOC44MzkgMi4xNDMtMTEuNzg2IDUuNjI1SDI5OS41MThDMjk2LjgzOSAxOC4xNDMgMjkyLjgyMSAxNiAyODggMTZzLTguODM5IDIuMTQzLTExLjUxOCA1LjYyNUgxNzAuNDExQzE2Ny40NjQgMTguMTQzIDE2My40NDcgMTYgMTU4LjYyNSAxNmMtOC4zMDMgMC0xNS4yNjggNi42OTYtMTUuMjY4IDE1LjI2OCAwIDEuNjA3LjUzNiAzLjQ4MiAxLjA3MiA0LjgyMWwtNTUuOTgzIDk3LjIzM2MtNS4zNTYgMi40MS05LjEwNyA3LjUtOS4xMDcgMTMuNjYxIDAgLjUzNS4yNjggMS4wNzEuMjY4IDEuNjA3bC01My4zMDQgOTIuMTQzYy03LjIzMiAxLjMzOS0xMi41OSA3LjUtMTIuNTkgMTUgMCA3LjIzMiA1LjA4OSAxMy4zOTMgMTIuMDU0IDE1bDU1LjE3OSA5NS4zNThjLS41MzYgMS42MDctLjgwNCAyLjk0Ni0uODA0IDQuODIxIDAgNy4yMzIgNS4wODkgMTMuMzkzIDEyLjA1NCAxNC43MzJsNTEuNjk3IDg5LjczMmMtLjUzNiAxLjYwNy0xLjA3MSAzLjQ4Mi0xLjA3MSA1LjM1NyAwIDguNTcxIDYuOTY0IDE1LjI2OCAxNS4yNjggMTUuMjY4IDQuODIxIDAgOC44MzktMi4xNDMgMTEuNTE4LTUuMzU3aDEwNi44NzVDMjc5LjE2MSA0OTMuODU3IDI4My40NDcgNDk2IDI4OCA0OTZzOC44MzktMi4xNDMgMTEuNTE4LTUuMzU3aDEwNy4xNDNjMi42NzggMi45NDYgNi42OTYgNC44MjEgMTAuOTgyIDQuODIxIDguNTcxIDAgMTUuMjY4LTYuOTY0IDE1LjI2OC0xNS4yNjggMC0xLjYwNy0uMjY3LTIuOTQ2LS44MDMtNC4yODVsNTEuNjk3LTkwLjI2OGM2Ljk2NC0xLjMzOSAxMi4wNTQtNy41IDEyLjA1NC0xNC43MzIgMC0xLjYwNy0uMjY4LTMuMjE0LS44MDQtNC44MjFsNTQuOTExLTk1LjM1OGM2Ljk2NC0xLjMzOSAxMi4zMjItNy41IDEyLjMyMi0xNS0uMDAyLTcuMjMyLTUuMDkyLTEzLjM5My0xMS43ODgtMTQuNzMyek0xNTMuNTM1IDQ1MC43MzJsLTQzLjY2LTc1LjgwM2g0My42NnY3NS44MDN6bTAtODMuODM5aC00My42NmMtLjI2OC0xLjA3MS0uODA0LTIuMTQyLTEuMzM5LTMuMjE0bDQ0Ljk5OS00Ny40MXY1MC42MjR6bTAtNjIuNDExbC01MC4zNTcgNTMuMzA0Yy0xLjMzOS0uNTM2LTIuNjc5LTEuMzQtNC4wMTgtMS42MDdMNDMuNDQ3IDI1OS43NWMuNTM1LTEuMzM5LjUzNS0yLjY3OS41MzUtNC4wMThzMC0yLjQxLS4yNjgtMy40ODJsNTEuOTY1LTkwYzIuNjc5LS4yNjggNS4zNTctMS4wNzIgNy43NjgtMi42NzlsNTAuMDg5IDUxLjk2NXY5Mi45NDZ6bTAtMTAyLjMyMmwtNDUuODAzLTQ3LjQxYzEuMzM5LTIuMTQzIDIuMTQzLTQuODIxIDIuMTQzLTcuNzY3IDAtLjI2OC0uMjY4LS44MDQtLjI2OC0xLjA3Mmw0My45MjgtMTUuODA0djcyLjA1M3ptMC04MC42MjVsLTQzLjY2IDE1LjgwNCA0My42Ni03NS41MzZ2NTkuNzMyem0zMjYuNTE5IDM5LjEwOGwuODA0IDEuMzM5TDQ0NS41IDMyOS4xMjVsLTYzLjc1LTY3LjIzMiA5OC4wMzYtMTAxLjUxOC4yNjguMjY4ek0yOTEuNzUgMzU1LjEwN2wxMS41MTggMTEuNzg2SDI4MC41bDExLjI1LTExLjc4NnptLS4yNjgtMTEuMjVsLTgzLjMwMy04NS40NDYgNzkuNTUzLTg0LjM3NSA4My4wMzYgODcuNTg5LTc5LjI4NiA4Mi4yMzJ6bTUuMzU3IDUuODkzbDc5LjI4Ni04Mi4yMzIgNjcuNSA3MS4yNS01Ljg5MiAyOC4xMjVIMzEzLjcxNGwtMTYuODc1LTE3LjE0M3pNNDEwLjQxMSA0NC4zOTNjMS4wNzEuNTM2IDIuMTQyIDEuMDcyIDMuNDgyIDEuMzRsNTcuODU3IDEwMC43MTR2LjUzNmMwIDIuOTQ2LjgwMyA1LjYyNCAyLjE0MyA3Ljc2N0wzNzYuMzkzIDI1NmwtODMuMDM1LTg3LjU4OUw0MTAuNDExIDQ0LjM5M3ptLTkuMTA3LTIuMTQzTDI4Ny43MzIgMTYyLjUxOGwtNTcuMDU0LTYwLjI2OCAxNjYuMzM5LTYwaDQuMjg3em0tMTIzLjQ4MyAwYzIuNjc4IDIuNjc4IDYuMTYgNC4yODUgMTAuMTc5IDQuMjg1czcuNS0xLjYwNyAxMC4xNzktNC4yODVoNzVMMjI0Ljc4NiA5NS44MjEgMTczLjg5MyA0Mi4yNWgxMDMuOTI4em0tMTE2LjI0OSA1LjYyNWwxLjA3MS0yLjE0MmEzMy44MzQgMzMuODM0IDAgMCAwIDIuNjc5LS44MDRsNTEuMTYxIDUzLjg0LTU0LjkxMSAxOS44MjFWNDcuODc1em0wIDc5LjI4Nmw2MC44MDMtMjEuOTY0IDU5LjczMiA2My4yMTQtNzkuNTUzIDg0LjEwNy00MC45ODItNDIuMDUzdi04My4zMDR6bTAgOTIuNjc4TDE5OCAyNTcuNjA3bC0zNi40MjggMzguMzA0di03Ni4wNzJ6bTAgODcuODU4bDQyLjA1My00NC40NjQgODIuNzY4IDg1Ljk4Mi0xNy4xNDMgMTcuNjc4SDE2MS41NzJ2LTU5LjE5NnptNi45NjQgMTYyLjA1M2MtMS42MDctMS42MDctMy40ODItMi42NzgtNS44OTMtMy40ODJsLTEuMDcxLTEuNjA3di04OS43MzJoOTkuOTFsLTkxLjYwNyA5NC44MjFoLTEuMzM5em0xMjkuOTExIDBjLTIuNjc5LTIuNDEtNi40MjgtNC4yODUtMTAuNDQ3LTQuMjg1cy03Ljc2NyAxLjg3NS0xMC40NDcgNC4yODVoLTk2LjQyOWw5MS42MDctOTQuODIxaDM4LjMwNGw5MS42MDcgOTQuODIxSDI5OC40NDd6bTEyMC0xMS43ODZsLTQuMjg2IDcuNWMtMS4zMzkuMjY4LTIuNDEuODAzLTMuNDgyIDEuMzM5bC04OS4xOTYtOTEuODc1aDExNC4zNzZsLTE3LjQxMiA4My4wMzZ6bTEyLjg1Ni0yMi4yMzJsMTIuODU4LTYwLjgwM2gyMS45NjRsLTM0LjgyMiA2MC44MDN6bTM0LjgyMi02OC44MzloLTIwLjM1N2w0LjU1My0yMS4xNiAxNy4xNDMgMTguMjE0Yy0uNTM1LjgwMy0xLjA3MSAxLjg3NC0xLjMzOSAyLjk0NnptNjYuMTYxLTEwNy40MTFsLTU1LjQ0NyA5Ni42OTdjLTEuMzM5LjUzNS0yLjY3OSAxLjA3MS00LjAxOCAxLjg3NGwtMjAuNjI1LTIxLjk2NCAzNC41NTQtMTYzLjkyOCA0NS44MDMgNzkuMjg2Yy0uMjY3IDEuMzM5LS44MDMgMi42NzgtLjgwMyA0LjI4NSAwIDEuMzM5LjI2OCAyLjQxMS41MzYgMy43NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29udGFvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1LjQgMzA1YzE0LjQgNjcuMSAyNi40IDEyOSA2OC4yIDE3NUgzNGMtMTguNyAwLTM0LTE1LjItMzQtMzRWNjZjMC0xOC43IDE1LjItMzQgMzQtMzRoNTcuN0M3Ny45IDQ0LjYgNjUuNiA1OS4yIDU0LjggNzUuNmMtNDUuNCA3MC0yNyAxNDYuOC05LjQgMjI5LjR6TTQ3OCAzMmgtOTAuMmMyMS40IDIxLjQgMzkuMiA0OS41IDUyLjcgODQuMWwtMTM3LjEgMjkuM2MtMTQuOS0yOS0zNy44LTUzLjMtODIuNi00My45LTI0LjYgNS4zLTQxIDE5LjMtNDguMyAzNC42LTguOCAxOC43LTEzLjIgMzkuOCA4LjIgMTQwLjMgMjEuMSAxMDAuMiAzMy43IDExNy43IDQ5LjUgMTMxLjIgMTIuOSAxMS4xIDMzLjQgMTcgNTguMyAxMS43IDQ0LjUtOS40IDU1LjctNDAuNyA1Ny40LTczLjJsMTM3LjQtMjkuNmMzLjIgNzEuNS0xOC43IDEyNS4yLTU3LjQgMTYzLjZINDc4YzE4LjcgMCAzNC0xNS4yIDM0LTM0VjY2YzAtMTguOC0xNS4yLTM0LTM0LTM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb3R0b25CdXJlYXUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDc0LjMxIDMzMC40MWMtMjMuNjYgOTEuODUtOTQuMjMgMTQ0LjU5LTIwMS45IDE0OC4zNVY0MjkuNmMwLTQ4IDI2LjQxLTc0LjM5IDc0LjM5LTc0LjM5IDYyIDAgOTkuMi0zNy4yIDk5LjItOTkuMjEgMC02MS4zNy0zNi41My05OC4yOC05Ny4zOC05OS4wNi0zMy02OS4zMi0xNDYuNS02NC42NS0xNzcuMjQgMEMxMTAuNTIgMTU3LjcyIDc0IDE5NC42MyA3NCAyNTZjMCA2Mi4xMyAzNy4yNyA5OS40MSA5OS40IDk5LjQxIDQ4IDAgNzQuNTUgMjYuMjMgNzQuNTUgNzQuMzlWNDc5Yy0xMzQuNDMtNS0yMTEuMS04NS4wNy0yMTEuMS0yMjMgMC0xNDEuODIgODEuMzUtMjIzLjIgMjIzLjItMjIzLjIgMTE0Ljc3IDAgMTg5Ljg0IDUzLjIgMjE0LjY5IDE0OC44MUg1MDBDNDczLjg4IDcxLjUxIDM4OC4yMiA4IDI1OS44MiA4IDEwNSA4IDEyIDEwMS4xOSAxMiAyNTUuODIgMTIgNDExLjE0IDEwNS4xOSA1MDQuMzQgMjU5LjgyIDUwNGMxMjguMjcgMCAyMTMuODctNjMuODEgMjM5LjY3LTE3My41OXpNMzU3IDE4Mi4zM2M0MS4zNyAzLjQ1IDY0LjIgMjkgNjQuMiA3My42NyAwIDQ4LTI2LjQzIDc0LjQxLTc0LjQgNzQuNDEtMjguNjEgMC00OS4zMy05LjU5LTYxLjU5LTI3LjMzIDgzLjA2LTE2LjU1IDc1LjU5LTk5LjY3IDcxLjc5LTEyMC43NXptLTgxLjY4IDk3LjM2Yy0yLjQ2LTEwLjM0LTE2LjMzLTg3IDU2LjIzLTk3IDIuMjcgMTAuMDkgMTYuNTIgODcuMTEtNTYuMjYgOTd6TTI2MCAxMzJjMjguNjEgMCA0OSA5LjY3IDYxLjQ0IDI3LjYxLTI4LjM2IDUuNDgtNDkuMzYgMjAuNTktNjEuNTkgNDMuNDUtMTIuMjMtMjIuODYtMzMuMjMtMzgtNjEuNi00My40NSAxMi40MS0xNy42OSAzMy4yNy0yNy4zNSA2MS41Ny0yNy4zNXptLTcxLjUyIDUwLjcyYzczLjE3IDEwLjU3IDU4LjkxIDg2LjgxIDU2LjQ5IDk3LTcyLjQxLTkuODQtNTktODYuOTUtNTYuMjUtOTd6TTE3My4yIDMzMC40MWMtNDggMC03NC40LTI2LjQtNzQuNC03NC40MSAwLTQ0LjM2IDIyLjg2LTcwIDY0LjIyLTczLjY3LTYuNzUgMzcuMi0xLjM4IDEwNi41MyA3MS42NSAxMjAuNzUtMTIuMTQgMTcuNjMtMzIuODQgMjcuMy02MS4xNCAyNy4zem01My4yMSAxMi4zOUE4MC44IDgwLjggMCAwIDAgMjYwIDMwOS4yNWM3Ljc3IDE0LjQ5IDE5LjMzIDI1LjU0IDMzLjgyIDMzLjU1YTgwLjI4IDgwLjI4IDAgMCAwLTMzLjU4IDMzLjgzYy04LTE0LjUtMTkuMDctMjYuMjMtMzMuNTYtMzMuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNwYW5lbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTAuMyAyMjAuMmMtNS42LTI0LjgtMjYuOS00MS4yLTUxLTQxLjJoLTM3Yy03LjEgMC0xMi41IDQuNS0xNC4zIDEwLjlMNzMuMSAzMjBsMjQuNy0uMWM2LjggMCAxMi4zLTQuNSAxNC4yLTEwLjdsMjUuOC05NS43aDE5LjhjOC40IDAgMTYuMiA1LjYgMTguMyAxNC44IDIuNSAxMC45LTUuOSAyMi42LTE4LjMgMjIuNmgtMTAuM2MtNyAwLTEyLjUgNC42LTE0LjMgMTAuOGwtNi40IDIzLjhoMzJjMzcuMiAwIDU4LjMtMzYuMiA1MS43LTY1LjN6bS0xNTYuNSAyOGgxOC42YzYuOSAwIDEyLjQtNC40IDE0LjMtMTAuOWw2LjItMjMuNmgtNDBDMzAgMjEzLjcgOSAyMjcuOCAxLjcgMjU0LjgtNyAyODguNiAxOC41IDMyMCA1MiAzMjBoMTIuNGw3LjEtMjYuMWMxLjItNC40LTIuMi04LjMtNi40LTguM0g1My44Yy0yNC43IDAtMjQuOS0zNy40IDAtMzcuNHptMjQ3LjUtMzQuOGgtNzcuOWwtMy41IDEzLjRjLTIuNCA5LjYgNC41IDE4LjUgMTQuMiAxOC41aDU3LjVjNCAwIDIuNCA0LjMgMi4xIDUuM2wtOC42IDMxLjhjLS40IDEuNC0uOSA1LjMtNS41IDUuM2gtMzQuOWMtNS4zIDAtNS4zLTcuOSAwLTcuOWgyMS42YzYuOCAwIDEyLjMtNC42IDE0LjItMTAuOGwzLjUtMTMuMmgtNDguNGMtMzkuMiAwLTQzLjYgNjMuOC0uNyA2My44bDU3LjUuMmMxMS4yIDAgMjAuNi03LjIgMjMuNC0xNy44bDE0LTUxLjhjNC44LTE5LjItOS43LTM2LjgtMjguNS0zNi44ek02MzMuMSAxNzloLTE4LjljLTQuOSAwLTkuMiAzLjItMTAuNCA3LjlMNTY4LjIgMzIwYzIwLjcgMCAzOS44LTEzLjggNDQuOS0zNC41bDI2LjUtOTguMmMxLjItNC4zLTItOC4zLTYuNS04LjN6bS0yMzYuMyAzNC43di4xaC00OC4zbC0yNi4yIDk4Yy0xLjIgNC40IDIuMiA4LjMgNi40IDguM2gxOC45YzQuOCAwIDkuMi0zIDEwLjQtNy44bDE3LjItNjRIMzk1YzEyLjUgMCAyMS40IDExLjggMTguMSAyMy40bC0xMC42IDQwYy0xLjIgNC4zIDEuOSA4LjMgNi40IDguM0g0MjhjNC42IDAgOS4xLTIuOSAxMC4zLTcuOGw4LjgtMzMuMWM5LTMzLjEtMTUuOS02NS40LTUwLjMtNjUuNHptOTguMyA3NC42Yy0zLjYgMC02LTMuNC01LjEtNi43bDgtMzBjLjktMy45IDMuNy02IDcuOC02aDMyLjljMi42IDAgNC42IDIuNCAzLjkgNS4xbC0uNyAyLjZjLS42IDItMS45IDMtMy45IDNoLTIxLjZjLTcgMC0xMi42IDQuNi0xNC4yIDEwLjhsLTMuNSAxM2g1My40YzEwLjUgMCAyMC4zLTYuNiAyMy4yLTE3LjZsMy4yLTEyYzQuOS0xOS4xLTkuMy0zNi44LTI4LjMtMzYuOGgtNDcuM2MtMTcuOSAwLTMzLjggMTItMzguNiAyOS42bC0xMC44IDQwYy01IDE3LjcgOC4zIDM2LjcgMjguMyAzNi43aDY2LjdjNi44IDAgMTIuMy00LjUgMTQuMi0xMC43bDUuNy0yMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zQnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzE0LjkgMTk0LjR2MTAxLjRoLTI4LjN2MTIwLjVoLTc3LjFWMjk1LjloLTI4LjNWMTk0LjRjMC00LjQgMS42LTguMiA0LjYtMTEuMyAzLjEtMy4xIDYuOS00LjcgMTEuMy00LjdIMjk5YzQuMSAwIDcuOCAxLjYgMTEuMSA0LjcgMy4xIDMuMiA0LjggNi45IDQuOCAxMS4zem0tMTAxLjUtNjMuN2MwLTIzLjMgMTEuNS0zNSAzNC41LTM1czM0LjUgMTEuNyAzNC41IDM1YzAgMjMtMTEuNSAzNC41LTM0LjUgMzQuNXMtMzQuNS0xMS41LTM0LjUtMzQuNXpNMjQ3LjYgOEMzODkuNCA4IDQ5NiAxMTguMSA0OTYgMjU2YzAgMTQ3LjEtMTE4LjUgMjQ4LTI0OC40IDI0OEMxMTMuNiA1MDQgMCAzOTQuNSAwIDI1NiAwIDEyMy4xIDEwNC43IDggMjQ3LjYgOHptLjggNDQuN0MxMzAuMiA1Mi43IDQ0LjcgMTUwLjYgNDQuNyAyNTZjMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc05jRXUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjcgOEMxMDMuNiA4IDAgMTI0LjggMCAyNTZjMCAxMzYuMyAxMTEuNyAyNDggMjQ3LjcgMjQ4QzM3Ny45IDUwNCA0OTYgNDAzLjEgNDk2IDI1NiA0OTYgMTE3IDM4OC40IDggMjQ3LjcgOHptLjYgNDUwLjdjLTExMiAwLTIwMy42LTkyLjUtMjAzLjYtMjAyLjcgMC0yMy4yIDMuNy00NS4yIDEwLjktNjZsNjUuNyAyOS4xaC00Ljd2MjkuNWgyMy4zYzAgNi4yLS40IDMuMi0uNCAxOS41aC0yMi44djI5LjVoMjdjMTEuNCA2NyA2Ny4yIDEwMS4zIDEyNC42IDEwMS4zIDI2LjYgMCA1MC42LTcuOSA2NC44LTE1LjhsLTEwLTQ2LjFjLTguNyA0LjYtMjguMiAxMC44LTQ3LjMgMTAuOC0yOC4yIDAtNTguMS0xMC45LTY3LjMtNTAuMmg5MC4zbDEyOC4zIDU2LjhjLTEuNSAyLjEtNTYuMiAxMDQuMy0xNzguOCAxMDQuM3ptLTE2LjctMTkwLjZsLS41LS40LjkuNGgtLjR6bTc3LjItMTkuNWgzLjd2LTI5LjVoLTcwLjNsLTI4LjYtMTIuNmMyLjUtNS41IDUuNC0xMC41IDguOC0xNC4zIDEyLjktMTUuOCAzMS4xLTIyLjQgNTEuMS0yMi40IDE4LjMgMCAzNS4zIDUuNCA0Ni4xIDEwbDExLjYtNDcuM2MtMTUtNi42LTM3LTEyLjQtNjIuMy0xMi40LTM5IDAtNzIuMiAxNS44LTk1LjkgNDIuMy01LjMgNi4xLTkuOCAxMi45LTEzLjkgMjAuMWwtODEuNi0zNi4xYzY0LjYtOTYuOCAxNTcuNy05My42IDE3MC43LTkzLjYgMTEzIDAgMjAzIDkwLjIgMjAzIDIwMy40IDAgMTguNy0yLjEgMzYuMy02LjMgNTIuOWwtMTM2LjEtNjAuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zTmNKcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDcuNyA4QzEwMy42IDggMCAxMjQuOCAwIDI1NmMwIDEzNi40IDExMS44IDI0OCAyNDcuNyAyNDhDMzc3LjkgNTA0IDQ5NiA0MDMuMiA0OTYgMjU2IDQ5NiAxMTcuMiAzODguNSA4IDI0Ny43IDh6bS42IDQ1MC43Yy0xMTIgMC0yMDMuNi05Mi41LTIwMy42LTIwMi43IDAtMjEuMSAzLTQxLjIgOS02MC4zbDEyNyA1Ni41aC0yNy45djM4LjZoNTguMWw1LjcgMTEuOHYxOC43aC02My44VjM2MGg2My44djU2aDYxLjd2LTU2aDY0LjJ2LTM1LjdsODEgMzYuMWMtMS41IDIuMi01Ny4xIDk4LjMtMTc1LjIgOTguM3ptODcuNi0xMzcuM2gtNTcuNnYtMTguN2wyLjktNS42IDU0LjcgMjQuM3ptNi41LTUxLjR2LTE3LjhoLTM4LjZsNjMtMTE2SDMwMWwtNDMuNCA5Ni0yMy0xMC4yLTM5LjYtODUuN2gtNjUuOGwyNy4zIDUxLTgxLjktMzYuNWMyNy44LTQ0LjEgODIuNi05OC4xIDE3My43LTk4LjEgMTEyLjggMCAyMDMgOTAgMjAzIDIwMy40IDAgMjEtMi43IDQwLjYtNy45IDU5bC0xMDEtNDUuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zTmMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjYgOEMzODcuNCA4IDQ5NiAxMTUuOSA0OTYgMjU2YzAgMTQ3LjItMTE4LjUgMjQ4LTI0OC40IDI0OEMxMTMuMSA1MDQgMCAzOTMuMiAwIDI1NiAwIDEyMy4xIDEwNC43IDggMjQ3LjYgOHpNNTUuOCAxODkuMWMtNy40IDIwLjQtMTEuMSA0Mi43LTExLjEgNjYuOSAwIDExMC45IDkyLjEgMjAyLjQgMjAzLjcgMjAyLjQgMTIyLjQgMCAxNzcuMi0xMDEuOCAxNzguNS0xMDQuMWwtOTMuNC00MS42Yy03LjcgMzcuMS00MS4yIDUzLTY4LjIgNTUuNHYzOC4xaC0yOC44VjM2OGMtMjcuNS0uMy01Mi42LTEwLjItNzUuMy0yOS43bDM0LjEtMzQuNWMzMS43IDI5LjQgODYuNCAzMS44IDg2LjQtMi4yIDAtNi4yLTIuMi0xMS4yLTYuNi0xNS4xLTE0LjItNi0xLjgtLjEtMjE5LjMtOTcuNHpNMjQ4LjQgNTIuM2MtMzguNCAwLTExMi40IDguNy0xNzAuNSA5M2w5NC44IDQyLjVjMTAtMzEuMyA0MC40LTQyLjkgNjMuOC00NC4zdi0zOC4xaDI4Ljh2MzguMWMyMi43IDEuMiA0My40IDguOSA2MiAyM0wyOTUgMTk5LjdjLTQyLjctMjkuOS04My41LTgtNzAgMTEuMSA1My40IDI0LjEgNDMuOCAxOS44IDkzIDQxLjZsMTI3LjEgNTYuN2M0LjEtMTcuNCA2LjItMzUuMSA2LjItNTMuMSAwLTU3LTE5LjgtMTA1LTU5LjMtMTQzLjktMzkuMy0zOS45LTg3LjItNTkuOC0xNDMuNi01OS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcmVhdGl2ZUNvbW1vbnNOZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDcuNiA4QzM4OS40IDggNDk2IDExOC4xIDQ5NiAyNTZjMCAxNDcuMS0xMTguNSAyNDgtMjQ4LjQgMjQ4QzExMy42IDUwNCAwIDM5NC41IDAgMjU2IDAgMTIzLjEgMTA0LjcgOCAyNDcuNiA4em0uOCA0NC43QzEzMC4yIDUyLjcgNDQuNyAxNTAuNiA0NC43IDI1NmMwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44LjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptOTQgMTQ0LjN2NDIuNUgxNjIuMVYxOTdoMTgwLjN6bTAgNzkuOHY0Mi41SDE2Mi4xdi00Mi41aDE4MC4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcmVhdGl2ZUNvbW1vbnNQZEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDcuNiA4QzEwNC43IDggMCAxMjMuMSAwIDI1NmMwIDEzOC41IDExMy42IDI0OCAyNDcuNiAyNDhDMzc3LjUgNTA0IDQ5NiA0MDMuMSA0OTYgMjU2IDQ5NiAxMTguMSAzODkuNCA4IDI0Ny42IDh6bS44IDQ1MC44Yy0xMTIuNSAwLTIwMy43LTkzLTIwMy43LTIwMi44IDAtMTA1LjQgODUuNS0yMDMuMyAyMDMuNy0yMDMuMyAxMTIuNiAwIDIwMi45IDg5LjUgMjAyLjggMjAzLjMgMCAxMjEuNy05OS42IDIwMi44LTIwMi44IDIwMi44ek0zMTYuNyAxODZoLTUzLjJ2MTM3LjJoNTMuMmMyMS40IDAgNzAtNS4xIDcwLTY4LjYgMC02My40LTQ4LjYtNjguNi03MC02OC42em0uOCAxMDguNWgtMTkuOXYtNzkuN2wxOS40LS4xYzMuOCAwIDM1LTIuMSAzNSAzOS45IDAgMjQuNi0xMC41IDM5LjktMzQuNSAzOS45ek0yMDMuNyAxODZoLTY4LjJ2MTM3LjNoMzQuNlYyNzloMjdjNTQuMSAwIDU3LjEtMzcuNSA1Ny4xLTQ2LjUgMC0zMS0xNi44LTQ2LjUtNTAuNS00Ni41em0tNC45IDY3LjNoLTI5LjJ2LTQxLjZoMjguM2MzMC45IDAgMjguOCA0MS42LjkgNDEuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zUGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkuMSAwIDI1NmMwIDEzNyAxMTEgMjQ4IDI0OCAyNDhzMjQ4LTExMSAyNDgtMjQ4QzQ5NiAxMTkuMSAzODUgOCAyNDggOHptMCA0NDkuNWMtMTM5LjIgMC0yMzUuOC0xMzgtMTkwLjItMjY3LjlsNzguOCAzNS4xYy0yLjEgMTAuNS0zLjMgMjEuNS0zLjMgMzIuOSAwIDk5IDczLjkgMTI2LjkgMTIwLjQgMTI2LjkgMjIuOSAwIDUzLjUtNi43IDc5LjQtMjkuNUwyOTcgMzExLjFjLTUuNSA2LjMtMTcuNiAxNi43LTM2LjMgMTYuNy0zNy44IDAtNTMuNy0zOS45LTUzLjktNzEuOSAyMzAuNCAxMDIuNiAyMTYuNSA5Ni41IDIxNy45IDk2LjgtMzQuMyA2Mi40LTEwMC42IDEwNC44LTE3Ni43IDEwNC44em0xOTQuMi0xNTBsLTIyNC0xMDBjMTguOC0zNCA1NC45LTMwLjcgNzQuNy0xMWw0MC40LTQxLjZjLTI3LjEtMjMuMy01OC0yNy41LTc4LjEtMjcuNS00Ny40IDAtODAuOSAyMC41LTEwMC43IDUxLjZsLTc0LjktMzMuNGMzNi4xLTU0LjkgOTguMS05MS4yIDE2OC41LTkxLjIgMTExLjEgMCAyMDEuNSA5MC40IDIwMS41IDIwMS41IDAgMTgtMi40IDM1LjQtNi44IDUyLS4zLS4xLS40LS4yLS42LS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcmVhdGl2ZUNvbW1vbnNSZW1peCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDcuNiA4QzM4OS40IDggNDk2IDExOC4xIDQ5NiAyNTZjMCAxNDcuMS0xMTguNSAyNDgtMjQ4LjQgMjQ4QzExMy42IDUwNCAwIDM5NC41IDAgMjU2IDAgMTIzLjEgMTA0LjcgOCAyNDcuNiA4em0uOCA0NC43QzEzMC4yIDUyLjcgNDQuNyAxNTAuNiA0NC43IDI1NmMwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44LjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptMTYxLjcgMjA3LjdsNC45IDIuMnY3MGMtNy4yIDMuNi02My40IDI3LjUtNjcuMyAyOC44LTYuNS0xLjgtMTEzLjctNDYuOC0xMzcuMy01Ni4ybC02NC4yIDI2LjYtNjMuMy0yNy41di02My44bDU5LjMtMjQuOGMtLjctLjctLjQgNS0uNC03MC40bDY3LjMtMjkuN0wzNjEgMTc4LjV2NjEuNmw0OS4xIDIwLjN6bS03MC40IDgxLjV2LTQzLjhoLS40di0xLjhsLTExMy44LTQ2LjVWMjk1bDExMy44IDQ2Ljl2LS40bC40LjR6bTcuNS01Ny42bDM5LjktMTYuNC0zNi44LTE1LjUtMzkgMTYuNCAzNS45IDE1LjV6bTUyLjMgMzguMXYtNDNMMzU1LjIgMjk4djQzLjRsNDQuMy0xOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zU2EgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjYgOEMzODkuNCA4IDQ5NiAxMTguMSA0OTYgMjU2YzAgMTQ3LjEtMTE4LjUgMjQ4LTI0OC40IDI0OEMxMTMuNiA1MDQgMCAzOTQuNSAwIDI1NiAwIDEyMy4xIDEwNC43IDggMjQ3LjYgOHptLjggNDQuN0MxMzAuMiA1Mi43IDQ0LjcgMTUwLjYgNDQuNyAyNTZjMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6TTEzNy43IDIyMWMxMy04My45IDgwLjUtOTUuNyAxMDguOS05NS43IDk5LjggMCAxMjcuNSA4Mi41IDEyNy41IDEzNC4yIDAgNjMuNi00MSAxMzIuOS0xMjguOSAxMzIuOS0zOC45IDAtOTkuMS0yMC0xMDkuNC05N2g2Mi41YzEuNSAzMC4xIDE5LjYgNDUuMiA1NC41IDQ1LjIgMjMuMyAwIDU4LTE4LjIgNTgtODIuOCAwLTgyLjUtNDkuMS04MC42LTU2LjctODAuNi0zMy4xIDAtNTEuNyAxNC42LTU1LjggNDMuOGgxOC4ybC00OS4yIDQ5LjItNDktNDkuMmgxOS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcmVhdGl2ZUNvbW1vbnNTYW1wbGluZ1BsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjYgOEMzODkuNCA4IDQ5NiAxMTguMSA0OTYgMjU2YzAgMTQ3LjEtMTE4LjUgMjQ4LTI0OC40IDI0OEMxMTMuNiA1MDQgMCAzOTQuNSAwIDI1NiAwIDEyMy4xIDEwNC43IDggMjQ3LjYgOHptLjggNDQuN0MxMzAuMiA1Mi43IDQ0LjcgMTUwLjYgNDQuNyAyNTZjMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTEwNyAyMDUuNmMtNC43IDAtOSAyLjgtMTAuNyA3LjJsLTQgOS41LTExLTkyLjhjLTEuNy0xMy45LTIyLTEzLjQtMjMuMS40bC00LjMgNTEuNC01LjItNjguOGMtMS4xLTE0LjMtMjIuMS0xNC4yLTIzLjIgMGwtMy41IDQ0LjktNS45LTk0LjNjLS45LTE0LjUtMjIuMy0xNC40LTIzLjIgMGwtNS4xIDgzLjctNC4zLTY2LjNjLS45LTE0LjQtMjIuMi0xNC40LTIzLjIgMGwtNS4zIDgwLjItNC4xLTU3Yy0xLjEtMTQuMy0yMi0xNC4zLTIzLjItLjJsLTcuNyA4OS44LTEuOC0xMi4yYy0xLjctMTEuNC0xNy4xLTEzLjYtMjItMy4zbC0xMy4yIDI3LjdIODcuNXYyMy4yaDUxLjNjNC40IDAgOC40LTIuNSAxMC40LTYuNGwxMC43IDczLjFjMiAxMy41IDIxLjkgMTMgMjMuMS0uN2wzLjgtNDMuNiA1LjcgNzguM2MxLjEgMTQuNCAyMi4zIDE0LjIgMjMuMi0uMWw0LjYtNzAuNCA0LjggNzMuM2MuOSAxNC40IDIyLjMgMTQuNCAyMy4yLS4xbDQuOS04MC41IDQuNSA3MS44Yy45IDE0LjMgMjIuMSAxNC41IDIzLjIuMmw0LjYtNTguNiA0LjkgNjQuNGMxLjEgMTQuMyAyMiAxNC4yIDIzLjEuMWw2LjgtODMgMi43IDIyLjNjMS40IDExLjggMTcuNyAxNC4xIDIyLjMgMy4xbDE4LTQzLjRoNTAuNVYyNThsLTU4LjQuM3ptLTc4IDUuMmgtMjEuOXYyMS45YzAgNC4xLTMuMyA3LjUtNy41IDcuNS00LjEgMC03LjUtMy4zLTcuNS03LjV2LTIxLjloLTIxLjljLTQuMSAwLTcuNS0zLjMtNy41LTcuNSAwLTQuMSAzLjQtNy41IDcuNS03LjVoMjEuOXYtMjEuOWMwLTQuMSAzLjQtNy41IDcuNS03LjVzNy41IDMuMyA3LjUgNy41djIxLjloMjEuOWM0LjEgMCA3LjUgMy4zIDcuNSA3LjUgMCA0LjEtMy40IDcuNS03LjUgNy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcmVhdGl2ZUNvbW1vbnNTYW1wbGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDcuNiA4QzM4OS40IDggNDk2IDExOC4xIDQ5NiAyNTZjMCAxNDcuMS0xMTguNSAyNDgtMjQ4LjQgMjQ4QzExMy42IDUwNCAwIDM5NC41IDAgMjU2IDAgMTIzLjEgMTA0LjcgOCAyNDcuNiA4em0uOCA0NC43QzEzMC4yIDUyLjcgNDQuNyAxNTAuNiA0NC43IDI1NmMwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44LjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptMy42IDUzLjJjMi44LS4zIDExLjUgMSAxMS41IDExLjVsNi42IDEwNy4yIDQuOS01OS4zYzAtNiA0LjctMTAuNiAxMC42LTEwLjYgNS45IDAgMTAuNiA0LjcgMTAuNiAxMC42IDAgMi41LS41LTUuNyA1LjcgODEuNWw1LjgtNjQuMmMuMy0yLjkgMi45LTkuMyAxMC4yLTkuMyAzLjggMCA5LjkgMi4zIDEwLjYgOC45bDExLjUgOTYuNSA1LjMtMTIuOGMxLjgtNC40IDUuMi02LjYgMTAuMi02LjZoNTh2MjEuM2gtNTAuOWwtMTguMiA0NC4zYy0zLjkgOS45LTE5LjUgOS4xLTIwLjgtMy4xbC00LTMxLjktNy41IDkyLjZjLS4zIDMtMyA5LjMtMTAuMiA5LjMtMyAwLTkuOC0yLjEtMTAuNi05LjMgMC0xLjkuNiA1LjgtNi4yLTc3LjlsLTUuMyA3Mi4yYy0xLjEgNC44LTQuOCA5LjMtMTAuNiA5LjMtMi45IDAtOS44LTItMTAuNi05LjMgMC0xLjkuNSA2LjctNS44LTg3LjdsLTUuOCA5NC44YzAgNi4zLTMuNiAxMi40LTEwLjYgMTIuNC01LjIgMC0xMC42LTQuMS0xMC42LTEybC01LjgtODcuN2MtNS44IDkyLjUtNS4zIDg0LTUuMyA4NS45LTEuMSA0LjgtNC44IDkuMy0xMC42IDkuMy0zIDAtOS44LTIuMS0xMC42LTkuMyAwLS43LS40LTEuMS0uNC0yLjZsLTYuMi04OC42TDE4MiAzNDhjLS43IDYuNS02LjcgOS4zLTEwLjYgOS4zLTUuOCAwLTkuNi00LjEtMTAuNi04LjlMMTQ5LjcgMjcyYy0yIDQtMy41IDguNC0xMS4xIDguNEg4Ny4ydi0yMS4zSDEzMmwxMy43LTI3LjljNC40LTkuOSAxOC4yLTcuMiAxOS45IDIuN2wzLjEgMjAuNCA4LjQtOTcuOWMwLTYgNC44LTEwLjYgMTAuNi0xMC42LjUgMCAxMC42LS4yIDEwLjYgMTIuNGw0LjkgNjkuMSA2LjYtOTIuNmMwLTEwLjEgOS41LTEwLjYgMTAuMi0xMC42LjYgMCAxMC42LjcgMTAuNiAxMC42bDUuMyA4MC42IDYuMi05Ny45Yy4xLTEuMS0uNi0xMC4zIDkuOS0xMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcmVhdGl2ZUNvbW1vbnNTaGFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDcuNiA4QzM4OS40IDggNDk2IDExOC4xIDQ5NiAyNTZjMCAxNDcuMS0xMTguNSAyNDgtMjQ4LjQgMjQ4QzExMy42IDUwNCAwIDM5NC41IDAgMjU2IDAgMTIzLjEgMTA0LjcgOCAyNDcuNiA4em0uOCA0NC43QzEzMC4yIDUyLjcgNDQuNyAxNTAuNiA0NC43IDI1NmMwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44LjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptMTAxIDEzMi40YzcuOCAwIDEzLjcgNi4xIDEzLjcgMTMuN3YxODIuNWMwIDcuNy02LjEgMTMuNy0xMy43IDEzLjdIMjE0LjNjLTcuNyAwLTEzLjctNi0xMy43LTEzLjd2LTU0aC01NGMtNy44IDAtMTMuNy02LTEzLjctMTMuN1YxMzEuMWMwLTguMiA2LjYtMTIuNyAxMi40LTEzLjdoMTM2LjRjNy43IDAgMTMuNyA2IDEzLjcgMTMuN3Y1NGg1NHpNMTU5LjkgMzAwLjNoNDAuN1YxOTguOWMwLTcuNCA1LjgtMTIuNiAxMi0xMy43aDU1Ljh2LTQwLjNIMTU5Ljl2MTU1LjR6bTE3Ni4yLTg4LjFIMjI3LjZ2MTU1LjRoMTA4LjVWMjEyLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc1plcm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjYgOEMzODkuNCA4IDQ5NiAxMTguMSA0OTYgMjU2YzAgMTQ3LjEtMTE4LjUgMjQ4LTI0OC40IDI0OEMxMTMuNiA1MDQgMCAzOTQuNSAwIDI1NiAwIDEyMy4xIDEwNC43IDggMjQ3LjYgOHptLjggNDQuN0MxMzAuMiA1Mi43IDQ0LjcgMTUwLjYgNDQuNyAyNTZjMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bS0uNCA2MC41Yy04MS45IDAtMTAyLjUgNzcuMy0xMDIuNSAxNDIuOCAwIDY1LjUgMjAuNiAxNDIuOCAxMDIuNSAxNDIuOFMzNTAuNSAzMjEuNSAzNTAuNSAyNTZjMC02NS41LTIwLjYtMTQyLjgtMTAyLjUtMTQyLjh6bTAgNTMuOWMzLjMgMCA2LjQuNSA5LjIgMS4yIDUuOSA1LjEgOC44IDEyLjEgMy4xIDIxLjlsLTU0LjUgMTAwLjJjLTEuNy0xMi43LTEuOS0yNS4xLTEuOS0zNC40IDAtMjguOCAyLTg4LjkgNDQuMS04OC45em00MC44IDQ2LjJjMi45IDE1LjQgMy4zIDMxLjQgMy4zIDQyLjcgMCAyOC45LTIgODguOS00NC4xIDg4LjktMTMuNSAwLTMyLjYtNy43LTIwLjEtMjYuNGw2MC45LTEwNS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcmVhdGl2ZUNvbW1vbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ1LjgzIDIxNC44N2wtMzMuMjIgMTcuMjhjLTkuNDMtMTkuNTgtMjUuMjQtMTkuOTMtMjcuNDYtMTkuOTMtMjIuMTMgMC0zMy4yMiAxNC42MS0zMy4yMiA0My44NCAwIDIzLjU3IDkuMjEgNDMuODQgMzMuMjIgNDMuODQgMTQuNDcgMCAyNC42NS03LjA5IDMwLjU3LTIxLjI2bDMwLjU1IDE1LjVjLTYuMTcgMTEuNTEtMjUuNjkgMzguOTgtNjUuMSAzOC45OC0yMi42IDAtNzMuOTYtMTAuMzItNzMuOTYtNzcuMDUgMC01OC42OSA0My03Ny4wNiA3Mi42My03Ny4wNiAzMC43Mi0uMDEgNTIuNyAxMS45NSA2NS45OSAzNS44NnptMTQzLjA1IDBsLTMyLjc4IDE3LjI4Yy05LjUtMTkuNzctMjUuNzItMTkuOTMtMjcuOS0xOS45My0yMi4xNCAwLTMzLjIyIDE0LjYxLTMzLjIyIDQzLjg0IDAgMjMuNTUgOS4yMyA0My44NCAzMy4yMiA0My44NCAxNC40NSAwIDI0LjY1LTcuMDkgMzAuNTQtMjEuMjZsMzEgMTUuNWMtMi4xIDMuNzUtMjEuMzkgMzguOTgtNjUuMDkgMzguOTgtMjIuNjkgMC03My45Ni05Ljg3LTczLjk2LTc3LjA1IDAtNTguNjcgNDIuOTctNzcuMDYgNzIuNjMtNzcuMDYgMzAuNzEtLjAxIDUyLjU4IDExLjk1IDY1LjU2IDM1Ljg2ek0yNDcuNTYgOC4wNUMxMDQuNzQgOC4wNSAwIDEyMy4xMSAwIDI1Ni4wNWMwIDEzOC40OSAxMTMuNiAyNDggMjQ3LjU2IDI0OCAxMjkuOTMgMCAyNDguNDQtMTAwLjg3IDI0OC40NC0yNDggMC0xMzcuODctMTA2LjYyLTI0OC0yNDguNDQtMjQ4em0uODcgNDUwLjgxYy0xMTIuNTQgMC0yMDMuNy05My4wNC0yMDMuNy0yMDIuODEgMC0xMDUuNDIgODUuNDMtMjAzLjI3IDIwMy43Mi0yMDMuMjcgMTEyLjUzIDAgMjAyLjgyIDg5LjQ2IDIwMi44MiAyMDMuMjYtLjAxIDEyMS42OS05OS42OCAyMDIuODItMjAyLjg0IDIwMi44MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JpdGljYWxSb2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNS44MiAwYy4yNi4xNSAyMTYuNTcgMTI0LjUxIDIxNy4xMiAxMjQuNzIgMyAxLjE4IDMuNyAzLjQ2IDMuNyA2LjU2cS0uMTEgMTI1LjE3IDAgMjUwLjM2YTUuODggNS44OCAwIDAgMS0zLjM4IDUuNzhjLTIxLjM3IDEyLTIwNy44NiAxMTguMjktMjE4LjkzIDEyNC41OGgtM0MxNDIgNDY2LjM0IDMuMDggMzg2LjU2IDIuOTMgMzg2LjQ4YTMuMjkgMy4yOSAwIDAgMS0xLjg4LTMuMjRjMC0uODcgMC0yMjUuOTQtLjA1LTI1My4xYTUgNSAwIDAgMSAyLjkzLTQuOTNDMjcuMTkgMTEyLjExIDIxMy4yIDYgMjI0LjA3IDB6TTIxNS40IDIwLjQybC0uMjItLjE2UTExOC4wNiA3NS41NSAyMSAxMzAuODdjMCAuMTIuMDguMjMuMTMuMzVsMzAuODYgMTEuNjRjLTcuNzEgNi04LjMyIDYtMTAuNjUgNS4xMy0uMSAwLTI0LjE3LTkuMjgtMjYuOC0xMHYyMzAuNDNjLjg4LTEuNDEgNjQuMDctMTEwLjkxIDY0LjEzLTExMSAxLjYyLTIuODIgMy0xLjkyIDkuMTItMS41MiAxLjQuMDkgMS40OC4yMi43OCAxLjQyLTQxLjE5IDcxLjMzLTM2LjQgNjMtNjcuNDggMTE2Ljk0LS44MSAxLjQtLjYxIDEuMTMgMS4yNSAxLjEzaDE4Ni41YzEuNDQgMCAxLjY5LS4yMyAxLjctMS42NHYtOC44OGMwLTEuMzQgMi4zNi0uODEtMTguMzctMS03LjQ2LS4wNy0xNC4xNC0zLjIyLTIxLjM4LTEyLjctNy4zOC05LjY2LTE0LjYyLTE5LjQzLTIxLjg1LTI5LjIxLTIuMjgtMy4wOC0zLjQ1LTIuMzgtMTYuNzYtMi4zOC0xLjc1IDAtMS43OCAwLTEuNzYgMS44Mi4yOSAyNi4yMS4xNSAyNS4yNyAxIDMyLjY2LjUyIDQuMzcgMi4xNiA0LjIgOS42OSA0LjgxIDMuMTQuMjYgMy44OCA0LjA4LjUyIDQuOTItMS41Ny4zOS0zMS42LjUxLTMzLjY3LS4xYTIuNDIgMi40MiAwIDAgMSAuMy00LjczYzMuMjktLjc2IDYuMTYuODEgNi42Ni00LjQ0IDEuMy0xMy42NiAxLjE3LTkgMS4xLTc5LjQyIDAtMTAuODItLjM1LTEyLjU4LTUuMzYtMTMuNTUtMS4yMi0uMjQtMy41NC0uMTYtNC42OS0uNTUtMi44OC0xLTItNC44NCAxLjc3LTQuODUgMzMuNjcgMCA0Ni4wOC0xLjA3IDU2LjA2IDQuODYgNy43NCA0LjYxIDEyIDExLjQ4IDEyLjUxIDIwLjQuODggMTQuNTktNi41MSAyMi4zNS0xNSAzMi41OWExLjQ2IDEuNDYgMCAwIDAgMCAyLjIyYzIuNiAzLjI1IDUgNi42MyA3LjcxIDkuODMgMjcuNTYgMzMuMjMgMjQuMTEgMzAuNTQgNDEuMjggMzMuMDYuODkuMTMgMS0uNDIgMS0xLjE1di0xMWMwLTEgLjMyLTEuNDMgMS40MS0xLjI2YTcyLjM3IDcyLjM3IDAgMCAwIDIzLjU4LS4zYzEuMDgtLjE1IDEuNS4yIDEuNDggMS4zMyAwIC4xMS44OCAyNi42OS44NyAyNi44LS4wNSAxLjUyLjY3IDEuNjIgMS44OSAxLjYyaDE4Ni43MVEzODYuNTEgMzA0LjYgMzQ2IDIzNC4zM2MyLjI2LS42Ni0uNCAwIDYuNjktMS4zOSAyLS4zOSAyLjA1LS40MSAzLjExIDEuNDQgNy4zMSAxMi42NCA3Ny4zMSAxMzQgNzcuMzcgMTM0LjA2VjEzOGMtMS43Mi41LTEwMy4zIDM4LjcyLTEwNS43NiAzOS42OC0xLjA4LjQyLTEuNTUuMi0xLjkxLS44OC0uNjMtMS45LTEuMzQtMy43Ni0yLjA5LTUuNjItLjMyLS43OS0uMDktMS4xMy42NS0xLjM5LjEgMCA5NS41My0zNS44NSAxMDMtMzguNzctNjUuNDItMzcuNTctMTMwLjU2LTc1LTE5Ni0xMTIuNmw4Ni44MiAxNTAuMzktLjI4LjMzYy05LjU3LS45LTEwLjQ2LTEuNi0xMS44LTMuOTQtMS0xLjY5LTczLjUtMTI3LjcxLTgyLTE0Mi4xNi05LjEgMTQuNjctODMuNTYgMTQ2LjIxLTg1LjM3IDE0Ni4zMi0yLjkzLjE3LTUuODguMDgtOS4yNS4wOHE0My4yNS03NC43NCA4Ni4xOC0xNDl6bTUxLjkzIDEyOS45MmEzNy42OCAzNy42OCAwIDAgMCA1LjU0LS44NWMxLjY5LS4zIDIuNTMuMiAyLjYgMS45MiAwIC4xMS4wNyAxOS4wNi0uODYgMjAuNDVzLTEuODggMS4yMi0yLjYtLjE5Yy01LTkuNjkgNi4yMi05LjY2LTM5LjEyLTEyLS43IDAtMSAuMjMtMSAuOTMgMCAuMTMgMy43MiAxMjIgMy43MyAxMjIuMTEgMCAuODkuNTIgMS4yIDEuMjEgMS41MWE4My45MiA4My45MiAwIDAgMSA4LjcgNC4wNWM3LjMxIDQuMzMgMTEuMzggMTAuODQgMTIuNDEgMTkuMzEgMS40NCAxMS44LTIuNzcgMzUuNzctMzIuMjEgMzcuMTQtMi43NS4xMy0yOC4yNiAxLjA4LTM0LjE0LTIzLjI1LTQuNjYtMTkuMjYgOC4yNi0zMi43IDE5Ljg5LTM2LjRhMi40NSAyLjQ1IDAgMCAwIDItMi42NmMuMS01LjYzIDMtMTA3LjEgMy43MS0xMjEuMzUuMDUtMS4wOC0uNjItMS4xNi0xLjM1LTEuMTUtMzIuMzUuNTItMzYuNzUtLjM0LTQwLjIyIDguNTItMi40MiA2LjE4LTQuMTQgMS4zMi0zLjk1LjIzcTEuNTktOSAzLjMxLTE4Yy40LTIuMTEgMS40My0yLjYxIDMuNDMtMS44NiA1LjU5IDIuMTEgNi43MiAxLjcgMzcuMjUgMS45MiAxLjczIDAgMS43OC0uMDggMS44Mi0xLjg1LjY4LTI3LjQ5LjU4LTIyLjU5IDEtMjkuNTVhMi42OSAyLjY5IDAgMCAwLTEuNjMtMi44Yy01LjYtMi45MS04Ljc1LTcuNTUtOC45LTEzLjg3LS4zNS0xNC44MSAxNy43Mi0yMS42NyAyNy4zOC0xMS41MSA2Ljg0IDcuMTkgNS44IDE4LjkxLTIuNDUgMjQuMTVhNC4zNSA0LjM1IDAgMCAwLTIuMjIgNC4zNGMwIC41OS0uMTEtNC4zMSAxIDMwLjA1IDAgLjkuNDMgMS4xMiAxLjI0IDEuMTEuMSAwIDIzLS4wOSAzNC40Ny0uMzd6TTY4LjI3IDE0MS43YzE5Ljg0LTQuNTEgMzIuNjgtLjU2IDUyLjQ5IDEuNjkgMi43Ni4zMSAzLjc0IDEuMjIgMy42MiA0LS4yMSA1LTEuMTYgMjIuMzMtMS4yNCAyMy4xNWEyLjY1IDIuNjUgMCAwIDEtMS42MyAyLjM0Yy00LjA2IDEuNy0zLjYxLTQuNDUtNC03LjI5LTMuMTMtMjIuNDMtNzMuODctMzIuNy03NC42MyAyNS40LS4zMSAyMy45MiAxNyA1My42MyA1NC4wOCA1MC44OCAyNy4yNC0yIDE5LTIwLjE5IDI0Ljg0LTIwLjQ3YTIuNzIgMi43MiAwIDAgMSAzIDMuMzZjLTEuODMgMTAuODUtMy40MiAxOC45NS0zLjQ1IDE5LjE1LTEuNTQgOS4xNy04Ni43IDIyLjA5LTkzLjM1LTQyLjA2LTIuNzEtMjUuODUgMTAuNDQtNTMuMzcgNDAuMjctNjAuMTV6bTgwIDg3LjY3aC0xOS40OWEyLjU3IDIuNTcgMCAwIDEtMi42Ni0xLjc5YzIuMzgtMy43NSA1Ljg5LjkyIDUuODYtNi4xNC0uMDgtMjUuNzUuMjEtMzggLjIzLTQwLjEgMC0zLjQyLS41My00LjY1LTMuMzItNC45NC03LS43Mi0zLjExLTMuMzctMS4xMS0zLjM4IDExLjg0LS4xIDIyLjYyLS4xOCAzMC4wNS43MiA4Ljc3IDEuMDcgMTYuNzEgMTIuNjMgNy45MyAyMi42Mi0yIDIuMjUtNCA0LjQyLTYuMTQgNi43My45NSAxLjE1IDYuOSA4LjgyIDE3LjI4IDE5LjY4IDIuNjYgMi43OCA2LjE1IDMuNTEgOS44OCAzLjEzYTIuMjEgMi4yMSAwIDAgMCAyLjIzLTIuMTJjLjMtMy40Mi4yNiA0LjczLjQ1LTQwLjU4IDAtNS42NS0uMzQtNi41OC0zLjIzLTYuODMtMy45NS0uMzUtNC0yLjI2LS42OS0zLjM3bDE5LjA5LS4wOWMuMzIgMCA0LjQ5LjUzIDEgMy4zOCAwIC4wNS0uMTYgMC0uMjQgMC0zLjYxLjI2LTMuOTQgMS00IDQuNjItLjI3IDQzLjkzLjA3IDQwLjIzLjQxIDQyLjgyLjExLjg0LjI3IDIuMjMgNS4xIDIuMTQgMi40OSAwIDMuODYgMy4zNyAwIDMuNC0xMC4zNy4wOC0yMC43NCAwLTMxLjExLjA3LTEwLjY3IDAtMTMuNDctNi4yLTI0LjIxLTIwLjgyLTEuNi0yLjE4LTguMzEtMi4zNi04LjItLjM3Ljg4IDE2LjQ3IDAgMTcuNzggNCAxNy42NyA0Ljc1LS4xIDQuNzMgMy41Ny44MyAzLjU1em0yNzUtMTAuMTVjLTEuMjEgNy4xMy4xNyAxMC4zOC01LjMgMTAuMzQtNjEuNTUtLjQyLTQ3LjgyLS4yMi01MC43Mi0uMzFhMTguNCAxOC40IDAgMCAxLTMuNjMtLjczYy0yLjUzLS42IDEuNDgtMS4yMy0uMzgtNS42LTEuNDMtMy4zNy0yLjc4LTYuNzgtNC4xMS0xMC4xOWExLjk0IDEuOTQgMCAwIDAtMi0xLjQ0IDEzOCAxMzggMCAwIDAtMTQuNTguMDcgMi4yMyAyLjIzIDAgMCAwLTEuNjIgMS4wNmMtMS41OCAzLjYyLTMuMDcgNy4yOS00LjUxIDExLTEuMjcgMy4yMyA3Ljg2IDEuMzIgMTIuMTkgMi4xNiAzIC41NyA0LjUzIDMuNzIuNjYgMy43M0gzMjIuOWMtMi45MiAwLTMuMDktMy4xNS0uNzQtMy4yMWE2LjMgNi4zIDAgMCAwIDUuOTItMy40N2MxLjUtMyAyLjgtNiA0LjExLTkuMDkgMTguMTgtNDIuMTQgMTcuMDYtNDAuMTcgMTguNDItNDEuNjFhMS44MyAxLjgzIDAgMCAxIDMgMGMyLjkzIDMuMzQgMTguNCA0NC43MSAyMy42MiA1MS45MiAyIDIuNyA1Ljc0IDIgNi4zNiAyIDMuNjEuMTMgNC0xLjExIDQuMTMtNC4yOS4wOS0xLjg3LjA4IDEuMTcuMDctNDEuMjQgMC00LjQ2LTIuMzYtMy43NC01LjU1LTQuMjctLjI2IDAtMi41Ni0uNjMtLjA4LTMuMDYuMjEtLjItLjg5LS4yNCAyMS43LS4xNSAyLjMyIDAgNS4zMiAyLjc1LTEuMjEgMy40NWEyLjU2IDIuNTYgMCAwIDAtMi42NiAyLjgzYy0uMDcgMS42My0uMTkgMzguODkuMjkgNDEuMjFhMy4wNiAzLjA2IDAgMCAwIDMuMjMgMi40M2MxMy4yNS40MyAxNC45Mi40NCAxNi0zLjQxIDEuNjctNS43OCA0LjEzLTIuNTIgMy43My0uMTl6bS0xMDQuNzIgNjQuMzdjLTQuMjQgMC00LjQyLTMuMzktLjYxLTMuNDEgMzUuOTEtLjE2IDI4LjExLjM4IDM3LjE5LS42NSAxLjY4LS4xOSAyLjM4LjI0IDIuMjUgMS44OS0uMjYgMy4zOS0uNjQgNi43OC0xIDEwLjE2LS4yNSAyLjE2LTMuMiAyLjYxLTMuNC0uMTUtLjM4LTUuMzEtMi4xNS00LjQ1LTE1LjYzLTUuMDgtMS41OC0uMDctMS42NCAwLTEuNjQgMS41MlYzMDRjMCAxLjY1IDAgMS42IDEuNjIgMS40NyAzLjEyLS4yNSAxMC4zMS4zNCAxNS42OS0xLjUyLjQ3LS4xNiAzLjMtMS43OSAzLjA3IDEuNzYgMCAuMjEtLjc2IDEwLjM1LTEuMTggMTEuMzktLjUzIDEuMjktMS44OCAxLjUxLTIuNTguMzItMS4xNy0yIDAtNS4wOC0zLjcxLTUuMy0xNS40Mi0uOS0xMi45MS0yLjU1LTEyLjkxIDYgMCAxMi4yNS0uNzYgMTYuMTEgMy44OSAxNi4yNCAxNi42NC40OCAxNC40IDAgMTYuNDMtNS43MS44NC0yLjM3IDMuNS0xLjc3IDMuMTguNTgtLjQ0IDMuMjEtLjg1IDYuNDMtMS4yMyA5LjY0IDAgLjM2LS4xNiAyLjQtNC42NiAyLjM5LTM3LjE2LS4wOC0zNC41NC0uMTktMzUuMjEtLjMxLTIuNzItLjUxLTIuMi0zIC4yMi0zLjQ1IDEuMS0uMTkgNCAuNTQgNC4xNi0yLjU2IDIuNDQtNTYuMjItLjA3LTUxLjM0LTMuOTEtNTEuMzN6bS0uNDEtMTA5LjUyYzIuNDYuNjEgMy4xMyAxLjc2IDIuOTUgNC42NS0uMzMgNS4zLS4zNCA5LS41NSA5LjY5LS42NiAyLjIzLTMuMTUgMi4xMi0zLjM0LS4yNy0uMzgtNC44MS0zLjA1LTcuODItNy41Ny05LjE1LTI2LjI4LTcuNzMtMzIuODEgMTUuNDYtMjcuMTcgMzAuMjIgNS44OCAxNS40MSAyMiAxNS45MiAyOC44NiAxMy43OCA1LjkyLTEuODUgNS44OC02LjUgNi45MS03LjU4IDEuMjMtMS4zIDIuMjUtMS44NCAzLjEyIDEuMSAwIC4xLjU3IDExLjg5LTYgMTIuNzUtMS42LjIxLTE5LjM4IDMuNjktMzIuNjgtMy4zOS0yMS0xMS4xOS0xNi43NC0zNS40Ny02Ljg4LTQ1LjMzIDE0LTE0LjA2IDM5LjkxLTcuMDYgNDIuMzItNi40N3pNMjg5LjggMjgwLjE0YzMuMjggMCAzLjY2IDMgLjE2IDMuNDMtMi42MS4zMi01LS40Mi01IDUuNDYgMCAyLS4xOSAyOS4wNS40IDQxLjQ1LjExIDIuMjkgMS4xNSAzLjUyIDMuNDQgMy42NSAyMiAxLjIxIDE0Ljk1LTEuNjUgMTguNzktNi4zNCAxLjgzLTIuMjQgMi43Ni44NCAyLjc2IDEuMDguMzUgMTMuNjItNCAxMi4zOS01LjE5IDEyLjRsLTM4LjE2LS4xOWMtMS45My0uMjMtMi4wNi0zLS40Mi0zLjM4IDItLjQ4IDQuOTQuNCA1LjEzLTIuOCAxLTE1Ljg3LjU3LTQ0LjY1LjM0LTQ3LjgxLS4yNy0zLjc3LTIuOC0zLjI3LTUuNjgtMy43MS0yLjQ3LS4zOC0yLTMuMjIuMzQtMy4yMiAxLjQ1LS4wMiAxNy45Ny0uMDMgMjMuMDktLjAyem0tMzEuNjMtNTcuNzljLjA3IDQuMDggMi44NiAzLjQ2IDYgMy41OCAyLjYxLjEgMi41MyAzLjQxLS4wNyAzLjQzLTYuNDggMC0xMy43IDAtMjEuNjEtLjA2LTMuODQgMC0zLjM4LTMuMzUgMC0zLjM3IDQuNDkgMCAzLjI0IDEuNjEgMy40MS00NS41NCAwLTUuMDgtMy4yNy0zLjU0LTQuNzItNC4yMy0yLjU4LTEuMjMtMS4zNi0zLjA5LjQxLTMuMTUgMS4yOSAwIDIwLjE5LS40MSAyMS4xNy4yMXMxLjg3IDEuNjUtLjQyIDIuODZjLTEgLjUyLTMuODYtLjI4LTQuMTUgMi40NyAwIC4yMS0uODIgMS42My0uMDcgNDMuOHptLTM2LjkxIDI3NC4yN2EyLjkzIDIuOTMgMCAwIDAgMy4yNiAwYzE3LTkuNzkgMTgyLTEwMy41NyAxOTcuNDItMTEyLjUxLS4xNC0uNDMgMTEuMjYtLjE4LTE4MS41Mi0uMjctMS4yMiAwLTEuNTcuMzctMS41MyAxLjU2IDAgLjEgMS4yNSA0NC41MSAxLjIyIDUwLjM4YTI4LjMzIDI4LjMzIDAgMCAxLTEuMzYgNy43MWMtLjU1IDEuODMuMzgtLjUtMTMuNSAzMi4yMy0uNzMgMS43Mi0xIDIuMjEtMi0uMDgtNC4xOS0xMC4zNC04LjI4LTIwLjcyLTEyLjU3LTMxYTIzLjYgMjMuNiAwIDAgMS0yLTEwLjc5Yy4xNi0yLjQ2LjgtMTYuMTIgMS41MS00OCAwLTEuOTUgMC0yLTItMmgtMTgzYzIuNTggMS42MyAxNzguMzIgMTAyLjU3IDE5NiAxMTIuNzZ6bS05MC45LTE4OC43NWMwIDIuNC4zNiAyLjc5IDIuNzYgMyAxMS41NCAxLjE3IDIxIDMuNzQgMjUuNjQtNy4zMiA2LTE0LjQ2IDIuNjYtMzQuNDEtMTIuNDgtMzguODQtMi0uNTktMTYtMi43Ni0xNS45NCAxLjUxLjA1IDguMDQuMDEgMTEuNjEuMDIgNDEuNjV6bTEwNS43NS0xNS4wNWMwIDIuMTMgMS4wNyAzOC42OCAxLjA5IDM5LjEzLjM0IDkuOTQtMjUuNTggNS43Ny0yNS4yMy0yLjU5LjA4LTIgMS4zNy0zNy40MiAxLjEtMzkuNDMtMTQuMSA3LjQ0LTE0LjQyIDQwLjIxIDYuNDQgNDguOGExNy45IDE3LjkgMCAwIDAgMjIuMzktNy4wN2M0LjkxLTcuNzYgNi44NC0yOS40Ny01LjQzLTM5YTIuNTMgMi41MyAwIDAgMS0uMzYuMTJ6bS0xMi4yOC0xOThjLTkuODMgMC05LjczIDE0Ljc1LS4wNyAxNC44N3MxMC4xLTE0Ljg4LjA3LTE0Ljkxem0tODAuMTUgMTAzLjgzYzAgMS44LjQxIDIuNCAyLjE3IDIuNTggMTMuNjIgMS4zOSAxMi41MS0xMSAxMi4xNi0xMy4zNi0xLjY5LTExLjIyLTE0LjM4LTEwLjItMTQuMzUtNy44MS4wNSA0LjUtLjAzIDEzLjY4LjAyIDE4LjU5em0yMTIuMzIgNi40bC02LjEtMTUuODRjLTIuMTYgNS40OC00LjE2IDEwLjU3LTYuMjMgMTUuODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNzczNBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMmwzNC45IDM5NS44TDE5MiA0ODBsMTU3LjEtNTIuMkwzODQgMzJIMHptMzEzLjEgODBsLTQuOCA0Ny4zTDE5MyAyMDguNmwtLjMuMWgxMTEuNWwtMTIuOCAxNDYuNi05OC4yIDI4LjctOTguOC0yOS4yLTYuNC03My45aDQ4LjlsMy4yIDM4LjMgNTIuNiAxMy4zIDU0LjctMTUuNCAzLjctNjEuNi0xNjYuMy0uNXYtLjFsLS4yLjEtMy42LTQ2LjNMMTkzLjEgMTYybDYuNS0yLjdINzYuN0w3MC45IDExMmgyNDIuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3NzMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAgMzJsLTY0IDM2OC0yMjMuMyA4MEwwIDQwMGwxOS42LTk0LjhoODJsLTggNDAuNkwyMTAgMzkwLjJsMTM0LjEtNDQuNCAxOC44LTk3LjFIMjkuNWwxNi04MmgzMzMuN2wxMC41LTUyLjdINTYuM2wxNi4zLTgySDQ4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3V0dGxlZmlzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDQgMzA1LjVjLTE3LjUgMzEuNi01Ny40IDU0LjUtOTYgNTQuNS01Ni42IDAtMTA0LTQ3LjQtMTA0LTEwNHM0Ny40LTEwNCAxMDQtMTA0YzM4LjYgMCA3OC41IDIyLjkgOTYgNTQuNSAxMy43LTUwLjkgNDEuNy05My4zIDg3LTExNy44QzM4NS43IDM5LjEgMzIwLjUgOCAyNDggOCAxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDhjNzIuNSAwIDEzNy43LTMxLjEgMTgzLTgwLjctNDUuMy0yNC41LTczLjMtNjYuOS04Ny0xMTcuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhREFuZERCZXlvbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzEzLjggMjQxLjVjMTMuOCAwIDIxLTEwLjEgMjQuOC0xNy45LTEtMS4xLTUtNC4yLTcuNC02LjYtMi40IDQuMy04LjIgMTAuNy0xMy45IDEwLjctMTAuMiAwLTE1LjQtMTQuNy0zLjItMjYuNi0uNS0uMi00LjMtMS44LTggMi40IDAtMyAxLTUuMSAyLjEtNi42LTMuNSAxLjMtOS44IDUuNi0xMS40IDcuOS4yLTUuOCAxLjYtNy41LjYtOWwtLjItLjJzLTguNSA1LjYtOS4zIDE0LjdjMCAwIDEuMS0xLjYgMi4xLTEuOS42LS4zIDEuMyAwIC42IDEuOS0uMi42LTUuOCAxNS43IDUuMSAyNi0uNi0xLjYtMS45LTcuNiAyLjQtMS45LS4zLjEgNS44IDcuMSAxNS43IDcuMXptNTIuNC0yMS4xYzAtNC00LjktNC40LTUuNi00LjUgMiAzLjkuOSA3LjUuMiA5IDIuNS0uNCA1LjQtMS42IDUuNC00LjV6bTEwLjMgNS4yYzAtNi40LTYuMi0xMS40LTEzLjUtMTAuNyA4IDEuMyA1LjYgMTMuOC01IDExLjQgMy43LTIuNiAzLjItOS45LTEuMy0xMi41IDEuNCA0LjItMyA4LjItNy40IDQuNi0yLjQtMS45LTgtNi42LTEwLjYtOC42LTIuNC0yLjEtNS41LTEtNi42LTEuOC0xLjMtMS4xLS41LTMuOC0yLjItNS0xLjYtLjgtMy0uMy00LjgtMS0xLjYtLjYtMi43LTEuOS0yLjYtMy41LTIuNSA0LjQgMy40IDYuMyA0LjUgOC41IDEgMS45LS44IDQuOCA0IDguNSAxNC44IDExLjYgOS4xIDggMTAuNCAxOC4xLjYgNC4zIDQuMiA2LjcgNi40IDcuNC0yLjEtMS45LTIuOS02LjQgMC05LjMgMCAxMy45IDE5LjIgMTMuMyAyMy4xIDYuNC0yLjQgMS4xLTctLjItOS0xLjkgNy43IDEgMTQuMi00LjEgMTQuNi0xMC42em0tMzkuNC0xOC40YzIgLjggMS42LjcgNi40IDQuNSAxMC4yLTI0LjUgMjEuNy0xNS43IDIyLTE1LjUgMi4yLTEuOSA5LjgtMy44IDEzLjgtMi43LTIuNC0yLjctNy41LTYuMi0xMy4zLTYuMi00LjcgMC03LjQgMi4yLTggMS4zLS44LTEuNCAzLjItMy40IDMuMi0zLjQtNS40LjItOS42IDYuNy0xMS4yIDUuOS0xLjEtLjUgMS40LTMuNyAxLjQtMy43LTUuMSAyLjktOS4zIDkuMS0xMC4yIDEzIDQuNi01LjggMTMuOC05LjggMTkuNy05LTEwLjUuNS0xOS41IDkuNy0yMy44IDE1Ljh6bTI0Mi41IDUxLjljLTIwLjcgMC00MCAxLjMtNTAuMyAyLjFsNy40IDguMnY3Ny4ybC03LjQgOC4yYzEwLjQuOCAzMC45IDIuMSA1MS42IDIuMSA0Mi4xIDAgNTkuMS0yMC43IDU5LjEtNDguOSAwLTI5LjMtMjMuMi00OC45LTYwLjQtNDguOXptLTE1LjEgNzUuNnYtNTMuM2MzMC4xLTMuMyA0Ni44IDMuOCA0Ni44IDI2LjMgMCAyNS42LTIxLjQgMzAuMi00Ni44IDI3ek0zMDEuNiAxODFjLTEtMy40LS4yLTYuOSAxLjEtOS40IDEgMyAyLjYgNi40IDcuNSA5LS41LTIuNC0uMi01LjYuNS04LTEuNC01LjQgMi4xLTkuOSA2LjQtOS45IDYuOSAwIDguNSA4LjggNC43IDE0LjQgMi4xIDMuMiA1LjUgNS42IDcuNyA3LjggMy4yLTMuNyA1LjUtOS41IDUuNS0xMy44IDAtOC4yLTUuNS0xNS45LTE2LjctMTYuNS0yMC0uOS0yMC4yIDE2LjYtMjAgMTguOS41IDUuMiAzLjQgNy44IDMuMyA3LjV6bS0uNCA2Yy0uNSAxLjgtNyAzLjctMTAuMiA2LjkgNC44LTEgNy0uMiA3LjggMS44LjUgMS40LS4yIDMuNC0uNSA1LjYgMS42LTEuOCA3LTUuNSAxMS02LjItMS0uMy0zLjQtLjgtNC4zLS44IDIuOS0zLjQgOS4zLTQuNSAxMi44LTMuNy0yLjItLjItNi43IDEuMS04LjUgMi42IDEuNi4zIDMgLjYgNC4zIDEuMS0yLjEuOC00LjggMy40LTUuOCA2LjEgNy01IDEzLjEgNS4yIDcgOC4yLjguMiAyLjcgMCAzLjUtLjUtLjMgMS4xLTEuOSAzLTMgMy40IDIuOSAwIDctMS45IDguMi00LjYgMCAwLTEuOC42LTIuNi0uMnMuMy00LjMuMy00LjNjLTIuMyAyLjktMy40LTEuMy0xLjMtNC4yLTEtLjMtMy41LS42LTQuNi0uNSAzLjItMS4xIDEwLjQtMS44IDExLjItLjMuNiAxLjEtMSAzLjQtMSAzLjQgNC0uNSA4LjMgMS4xIDYuNyA1LjEgMi45LTEuNCA1LjUtNS45IDQuOC0xMC40LS4zIDEtMS42IDIuNC0yLjkgMi43LjItMS40LTEtMi4yLTEuOS0yLjYgMS43LTkuNi0xNC42LTE0LjItMTQuMS0yMy45LTEgMS4zLTEuOCA1LS44IDcuMSAyLjcgMy4yIDguNyA2LjcgMTAuMSAxMi4yLTIuNi02LjQtMTUuMS0xMS40LTE0LjYtMjAuMi0xLjYgMS42LTIuNiA3LjgtMS4zIDExIDIuNCAxLjQgNC41IDMuOCA0LjggNi4xLTIuMi01LjEtMTEuNC02LjEtMTMuOS0xMi4yLS42IDIuMi0uMyA1IDEgNi43IDAgMC0yLjItLjgtNy0uNiAxLjcuNiA1LjEgMy41IDQuOCA1LjJ6bTI1LjkgNy40Yy0yLjcgMC0zLjUtMi4xLTQuMi00LjMgMy4zIDEuMyA0LjIgNC4zIDQuMiA0LjN6bTM4LjkgMy43bC0xLS42Yy0xLjEtMS0yLjktMS40LTQuNy0xLjQtMi45IDAtNS44IDEuMy03LjUgMy40LS44LjgtMS40IDEuOC0yLjEgMi42djE1LjdjMy41IDIuNiA3LjEtMi45IDMtNy4yIDEuNS4zIDQuNiAyLjcgNS4xIDMuMiAwIDAgMi42LS41IDUtLjUgMi4xIDAgMy45LjMgNS42IDEuMVYxOTZjLTEuMS41LTIuMiAxLTIuNyAxLjR6TTc5LjkgMzA1LjljMTcuMi00LjYgMTYuMi0xOCAxNi4yLTE5LjkgMC0yMC42LTI0LjEtMjUtMzctMjVIM2w4LjMgOC42djI5LjVIMGwxMS40IDE0LjZWMzQ2TDMgMzU0LjZjNjEuNyAwIDczLjggMS41IDg2LjQtNS45IDYuNy00IDkuOS05LjggOS45LTE3LjYgMC01LjEgMi42LTE4LjgtMTkuNC0yNS4yem0tNDEuMy0yNy41YzIwIDAgMjkuNi0uOCAyOS42IDkuMXYzYzAgMTIuMS0xOSA4LjgtMjkuNiA4Ljh6bTAgNTkuMlYzMTVjMTIuMiAwIDMyLjctMi4zIDMyLjcgOC44djQuNWguMmMwIDExLjItMTIuNSA5LjMtMzIuOSA5LjN6bTEwMS4yLTE5LjNsMjMuMS4ydi0uMmwxNC4xLTIxLjJoLTM3LjJ2LTE0LjloNTIuNGwtMTQuMS0yMXYtLjJsLTczLjUuMiA3LjQgOC4ydjc3LjFsLTcuNCA4LjJoODEuMmwxNC4xLTIxLjItNjAuMS4yem0yMTQuNy02MC4xYy03My45IDAtNzcuNSA5OS4zLS4zIDk5LjMgNzcuOSAwIDc0LjEtOTkuMy4zLTk5LjN6bS0uMyA3Ny41Yy0zNy40IDAtMzYuOS01NS4zLjItNTUuMyAzNi44LjEgMzguOCA1NS4zLS4yIDU1LjN6bS05MS4zLTguM2w0NC4xLTY2LjJoLTQxLjdsNi4xIDcuMi0yMC41IDM3LjJoLS4zbC0yMS0zNy4yIDYuNC03LjJoLTQ0LjlsNDQuMSA2NS44LjIgMTkuNC03LjcgOC4yaDQyLjZsLTcuMi04LjJ6bS0yOC40LTE1MS4zYzEuNiAxLjMgMi45IDIuNCAyLjkgNi42djM4LjhjMCA0LjItLjggNS4zLTIuNyA2LjQtLjEuMS03LjUgNC41LTcuOSA0LjZoMzUuMWMxMCAwIDE3LjQtMS41IDI2LTguNi0uNi01IC4yLTkuNS44LTEyIDAtLjItMS44IDEuNC0yLjcgMy41IDAtNS43IDEuNi0xNS40IDkuNi0yMC41LS4xIDAtMy43LS44LTkgMS4xIDItMy4xIDEwLTcuOSAxMC40LTcuOS04LjItMjYtMzgtMjIuOS0zMi4yLTIyLjktMzAuOSAwLTMyLjYuMy0zOS45LTQgLjEuOC41IDguMiA5LjYgMTQuOXptMjEuNSA1LjVjNC42IDAgMjMuMS0zLjMgMjMuMSAxNy4zIDAgMjAuNy0xOC40IDE3LjMtMjMuMSAxNy4zem0yMjguOSA3OS42bDcgOC4zVjMxMmgtLjNjLTUuNC0xNC40LTQyLjMtNDEuNS00NS4yLTUwLjloLTMxLjZsNy40IDguNXY3Ni45bC03LjIgOC4zaDM5bC03LjQtOC4ydi00Ny40aC4zYzMuNyAxMC42IDQ0LjUgNDIuOSA0OC41IDU1LjZoMjEuM3YtODUuMmw3LjQtOC4zem0tMTA2LjctOTYuMWMtMzIuMiAwLTMyLjguMi0zOS45LTQgLjEuNy41IDguMyA5LjYgMTQuOSAzLjEgMiAyLjkgNC4zIDIuOSA5LjUgMS44LTEuMSAzLjgtMi4yIDYuMS0zLTEuMSAxLjEtMi43IDIuNy0zLjUgNC41IDEtMS4xIDcuNS01LjEgMTQuNi0zLjUtMS42LjMtNCAxLjEtNi4xIDIuOS4xIDAgMi4xLTEuMSA3LjUtLjN2LTQuM2M0LjcgMCAyMy4xLTMuNCAyMy4xIDE3LjMgMCAyMC41LTE4LjUgMTcuMy0xOS43IDE3LjMgNS43IDQuNCA1LjggMTIgMi4yIDE2LjNoLjNjMzMuNCAwIDM2LjctMjcuMyAzNi43LTM0IDAtMy44LTEuMS0zMi0zMy44LTMzLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURBbmREIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTgyLjUgOTguOWMtLjYtMTcuMiAyLTMzLjggMTIuNy00OC4yLjMgNy40IDEuMiAxNC41IDQuMiAyMS42IDUuOS0yNy41IDE5LjctNDkuMyA0Mi4zLTY1LjUtMS45IDUuOS0zLjUgMTEuOC0zIDE3LjcgOC43LTcuNCAxOC44LTE3LjggNDQuNC0yMi43IDE0LjctMi44IDI5LjctMiA0Mi4xIDEgMzguNSA5LjMgNjEgMzQuMyA2OS43IDcyLjMgNS4zIDIzLjEuNyA0NS04LjMgNjYuNC01LjIgMTIuNC0xMiAyNC40LTIwLjcgMzUuMS0yLTEuOS0zLjktMy44LTUuOC01LjYtNDIuOC00MC44LTI2LjgtMjUuMi0zNy40LTM3LjQtMS4xLTEuMi0xLTIuMi0uMS0zLjYgOC4zLTEzLjUgMTEuOC0yOC4yIDEwLTQ0LTEuMS05LjgtNC4zLTE4LjktMTEuMy0yNi4yLTE0LjUtMTUuMy0zOS4yLTE1LTUzLjUuNi0xMS40IDEyLjUtMTQuMSAyNy40LTEwLjkgNDMuNi4yIDEuMy40IDIuNyAwIDMuOS0zLjQgMTMuNy00LjYgMjcuNi0yLjUgNDEuNi4xLjUuMSAxLjEuMSAxLjYgMCAuMy0uMS41LS4yIDEuMS0yMS44LTExLTM2LTI4LjMtNDMuMi01Mi4yLTguMyAxNy44LTExLjEgMzUuNS02LjYgNTQuMS0xNS42LTE1LjItMjEuMy0zNC4zLTIyLTU1LjJ6bTQ2OS42IDEyMy4yYy0xMS42LTExLjYtMjUtMjAuNC00MC4xLTI2LjYtMTIuOC01LjItMjYtNy45LTM5LjktNy4xLTEwIC42LTE5LjYgMy4xLTI5IDYuNC0yLjUuOS01LjEgMS42LTcuNyAyLjItNC45IDEuMi03LjMtMy4xLTQuNy02LjggMy4yLTQuNiAzLjQtNC4yIDE1LTEyIC42LS40IDEuMi0uOCAyLjItMS41aC0yLjVjLS42IDAtMS4yLjItMS45LjMtMTkuMyAzLjMtMzAuNyAxNS41LTQ4LjkgMjkuNi0xMC40IDguMS0xMy44IDMuOC0xMi0uNSAxLjQtMy41IDMuMy02LjcgNS4xLTEwIDEtMS44IDIuMy0zLjQgMy41LTUuMS0uMi0uMi0uNS0uMy0uNy0uNS0yNyAxOC4zLTQ2LjcgNDIuNC01Ny43IDczLjMuMy4zLjcuNiAxIC45LjMtLjYuNS0xLjIuOS0xLjcgMTAuNC0xMi4xIDIyLjgtMjEuOCAzNi42LTI5LjggMTguMi0xMC42IDM3LjUtMTguMyA1OC43LTIwLjIgNC4zLS40IDguNy0uMSAxMy4xLS4xLTEuOC43LTMuNS45LTUuMyAxLjEtMTguNSAyLjQtMzUuNSA5LTUxLjUgMTguNS0zMC4yIDE3LjktNTQuNSA0Mi4yLTc1LjEgNzAuNC0uMy40LS40LjktLjcgMS4zIDE0LjUgNS4zIDI0IDE3LjMgMzYuMSAyNS42LjItLjEuMy0uMi40LS40bDEuMi0yLjdjMTIuMi0yNi45IDI3LTUyLjMgNDYuNy03NC41IDE2LjctMTguOCAzOC0yNS4zIDYyLjUtMjAgNS45IDEuMyAxMS40IDQuNCAxNy4yIDYuOCAyLjMtMS40IDUuMS0zLjIgOC00LjcgOC40LTQuMyAxNy40LTcgMjYuNy05IDE0LjctMy4xIDI5LjUtNC45IDQ0LjUtMS4zdi0uNWMtLjUtLjQtMS4yLS44LTEuNy0xLjR6TTMxNi43IDM5Ny42Yy0zOS40LTMzLTIyLjgtMTkuNS00Mi43LTM1LjYtLjguOSAwLS4yLTEuOSAzLTExLjIgMTkuMS0yNS41IDM1LjMtNDQgNDcuNi0xMC4zIDYuOC0yMS41IDExLjgtMzQuMSAxMS44LTIxLjYgMC0zOC4yLTkuNS00OS40LTI3LjgtMTItMTkuNS0xMy4zLTQwLjctOC4yLTYyLjYgNy44LTMzLjggMzAuMS01NS4yIDM4LjYtNjQuMy0xOC43LTYuMi0zMyAxLjctNDYuNCAxMy45LjgtMTMuOSA0LjMtMjYuMiAxMS44LTM3LjMtMjQuMyAxMC42LTQ1LjkgMjUtNjQuOCA0My45LS4zLTUuOCA1LjQtNDMuNyA1LjYtNDQuNy4zLTIuNy0uNi01LjMtMy03LjQtMjQuMiAyNC43LTQ0LjUgNTEuOC01Ni4xIDg0LjYgNy40LTUuOSAxNC45LTExLjQgMjMuNi0xNi4yLTguMyAyMi4zLTE5LjYgNTIuOC03LjggMTAxLjEgNC42IDE5IDExLjkgMzYuOCAyNC4xIDUyLjMgMi45IDMuNyA2LjMgNi45IDkuNSAxMC4zLjItLjIuNC0uMy42LS41LTEuNC03LTIuMi0xNC4xLTEuNS0yMS45IDIuMiAzLjIgMy45IDYgNS45IDguNiAxMi42IDE2IDI4LjcgMjcuNCA0Ny4yIDM1LjYgMjUgMTEuMyA1MS4xIDEzLjMgNzcuOSA4LjYgNTQuOS05LjcgOTAuNy00OC42IDExNi05OC44IDEtMS44LjYtMi45LS45LTQuMnptMTcyLTQ2LjRjLTkuNS0zLjEtMjIuMi00LjItMjguNy0yLjkgOS45IDQgMTQuMSA2LjYgMTguOCAxMiAxMi42IDE0LjQgMTAuNCAzNC43LTUuNCA0NS42LTExLjcgOC4xLTI0LjkgMTAuNS0zOC45IDkuMS0xLjItLjEtMi4zLS40LTMtLjYgMi44LTMuNyA2LTcgOC4xLTEwLjggOS40LTE2LjggNS40LTQyLjEtOC43LTU2LjEtMi4xLTIuMS00LjYtMy45LTctNS45LS4zIDEuMy0uMSAyLjEuMSAyLjggNC4yIDE2LjYtOC4xIDMyLjQtMjQuOCAzMS44LTcuNi0uMy0xMy45LTMuOC0xOS42LTguNS0xOS41LTE2LjEtMzkuMS0zMi4xLTU4LjUtNDguMy01LjktNC45LTEyLjUtOC4xLTIwLjEtOC43LTQuNi0uNC05LjMtLjYtMTMuOS0uOS01LjktLjQtOC44LTIuOC0xMC40LTguNC0uOS0zLjQtMS41LTYuOC0yLjItMTAuMi0xLjUtOC4xLTYuMi0xMy0xNC4zLTE0LjItNC40LS43LTguOS0xLTEzLjMtMS41LTEzLTEuNC0xOS44LTcuNC0yMi42LTIwLjMtNSAxMS0xLjYgMjIuNCA3LjMgMjkuOSA0LjUgMy44IDkuMyA3LjMgMTMuOCAxMS4yIDQuNiAzLjggNy40IDguNyA3LjkgMTQuOC40IDQuNy44IDkuNSAxLjggMTQuMSAyLjIgMTAuNiA4LjkgMTguNCAxNyAyNS4xIDE2LjUgMTMuNyAzMyAyNy4zIDQ5LjUgNDEuMSAxNy45IDE1IDEzLjkgMzIuOCAxMyA1Ni0uOSAyMi45IDEyLjIgNDIuOSAzMy41IDUxLjIgMSAuNCAyIC42IDMuNiAxLjEtMTUuNy0xOC4yLTEwLjEtNDQuMS43LTUyLjMuMyAyLjIuNCA0LjMuOSA2LjQgOS40IDQ0LjEgNDUuNCA2NC4yIDg1IDU2LjkgMTYtMi45IDMwLjYtOC45IDQyLjktMTkuOCAyLTEuOCAzLjctNC4xIDUuOS02LjUtMTkuMyA0LjYtMzUuOC4xLTUwLjktMTAuNi43LS4zIDEuMy0uMyAxLjktLjMgMjEuMyAxLjggNDAuNi0zLjQgNTctMTcuNCAxOS41LTE2LjYgMjYuNi00Mi45IDE3LjQtNjYtOC4zLTIwLjEtMjMuNi0zMi4zLTQzLjgtMzguOXpNOTkuNCAxNzkuM2MtNS4zLTkuMi0xMy4yLTE1LjYtMjIuMS0yMS4zIDEzLjctLjUgMjYuNi4yIDM5LjYgMy43LTctMTIuMi04LjUtMjQuNy01LTM4LjcgNS4zIDExLjkgMTMuNyAyMC4xIDIzLjYgMjYuOCAxOS43IDEzLjIgMzUuNyAxOS42IDQ2LjcgMzAuMiAzLjQgMy4zIDYuMyA3LjEgOS42IDEwLjktLjgtMi4xLTEuNC00LjEtMi4yLTYtNS0xMC42LTEzLTE4LjYtMjIuNi0yNS0xLjgtMS4yLTIuOC0yLjUtMy40LTQuNS0zLjMtMTIuNS0zLTI1LjEtLjctMzcuNiAxLTUuNSAyLjgtMTAuOSA0LjUtMTYuMy44LTIuNCAyLjMtNC42IDQtNi42LjYgNi45IDAgMjUuNSAxOS42IDQ2IDEwLjggMTEuMyAyMi40IDIxLjkgMzMuOSAzMi43IDkgOC41IDE4LjMgMTYuNyAyNS41IDI2LjggMS4xIDEuNiAyLjIgMy4zIDMuOCA0LjctNS0xMy0xNC4yLTI0LjEtMjQuMi0zMy44LTkuNi05LjMtMTkuNC0xOC40LTI5LjItMjcuNC0zLjMtMy00LjYtNi43LTUuMS0xMC45LTEuMi0xMC40IDAtMjAuNiA0LjMtMzAuMi41LTEgMS4xLTIgMS45LTMuMy41IDQuMi42IDcuOSAxLjQgMTEuNiA0LjggMjMuMSAyMC40IDM2LjMgNDkuMyA2My41IDEwIDkuNCAxOS4zIDE5LjIgMjUuNiAzMS42IDQuOCA5LjMgNy4zIDE5IDUuNyAyOS42LS4xLjYuNSAxLjcgMS4xIDIgNi4yIDIuNiAxMCA2LjkgOS43IDE0LjMgNy43LTIuNiAxMi41LTggMTYuNC0xNC41IDQuMiAyMC4yLTkuMSA1MC4zLTI3LjIgNTguNy40LTQuNSA1LTIzLjQtMTYuNS0yNy43LTYuOC0xLjMtMTIuOC0xLjMtMjIuOS0yLjEgNC43LTkgMTAuNC0yMC42LjUtMjIuNC0yNC45LTQuNi01Mi44IDEuOS01Ny44IDQuNiA4LjIuNCAxNi4zIDEgMjMuNSAzLjMtMiA2LjUtNCAxMi43LTUuOCAxOC45LTEuOSA2LjUgMi4xIDE0LjYgOS4zIDkuNiAxLjItLjkgMi4zLTEuOSAzLjMtMi43LTMuMSAxNy45LTIuOSAxNS45LTIuOCAxOC4zLjMgMTAuMiA5LjUgNy44IDE1LjcgNy4zLTIuNSAxMS44LTI5LjUgMjcuMy00NS40IDI1LjggNy00LjcgMTIuNy0xMC4zIDE1LjktMTcuOS02LjUuOC0xMi45IDEuNi0xOS4yIDIuNGwtLjMtLjljNC43LTMuNCA4LTcuOCAxMC4yLTEzLjEgOC43LTIxLjEtMy42LTM4LTI1LTM5LjktOS4xLS44LTE3LjguOC0yNS45IDUuNSA2LjItMTUuNiAxNy4yLTI2LjYgMzIuNi0zNC41LTE1LjItNC4zLTguOS0yLjctMjQuNi02LjMgMTQuNi05LjMgMzAuMi0xMy4yIDQ2LjUtMTQuNi01LjItMy4yLTQ4LjEtMy42LTcwLjIgMjAuOSA3LjkgMS40IDE1LjUgMi44IDIzLjIgNC4yLTIzLjggNy00NCAxOS43LTYyLjQgMzUuNiAxLjEtNC44IDIuNy05LjUgMy4zLTE0LjMuNi00LjUuOC05LjIuMS0xMy42LTEuNS05LjQtOC45LTE1LjEtMTkuNy0xNi4zLTcuOS0uOS0xNS42LjEtMjMuMyAxLjMtLjkuMS0xLjcuMy0yLjkgMCAxNS44LTE0LjggMzYtMjEuNyA1My4xLTMzLjUgNi00LjUgNi44LTguMiAzLTE0Ljl6bTEyOC40IDI2LjhjMy4zIDE2IDEyLjYgMjUuNSAyMy44IDI0LjMtNC42LTExLjMtMTIuMS0xOS41LTIzLjgtMjQuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGFpbHltb3Rpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk4LjkzLDI2N2E0OC40LDQ4LjQsMCwwLDAtMjQuMzYtNi4yMXEtMTkuODMsMC0zMy40NCwxMy4yN3QtMTMuNjEsMzMuNDJxMCwyMS4xNiwxMy4yOCwzNC42dDMzLjQzLDEzLjQ0cTIwLjUsMCwzNC4xMS0xMy43OFQzMjIsMzA3LjQ3QTQ3LjEzLDQ3LjEzLDAsMCwwLDMxNS45LDI4NCw0NC4xMyw0NC4xMywwLDAsMCwyOTguOTMsMjY3Wk0wLDMyVjQ4MEg0NDhWMzJaTTM3NC43MSw0MDUuMjZoLTUzLjFWMzgxLjM3aC0uNjdxLTE1Ljc5LDI2LjItNTUuNzgsMjYuMi0yNy41NiwwLTQ4Ljg5LTEzLjFhODguMjksODguMjksMCwwLDEtMzIuOTQtMzUuNzdxLTExLjYtMjIuNjgtMTEuNTktNTAuODksMC0yNy41NiwxMS43Ni01MC4yMmE4OS45LDg5LjksMCwwLDEsMzIuOTMtMzUuNzhxMjEuMTgtMTMuMDksNDcuNzItMTMuMWE4MC44Nyw4MC44NywwLDAsMSwyOS43NCw1LjIxcTEzLjI4LDUuMjEsMjUsMTdWMTUzbDU1Ljc5LTEyLjA5WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEYXNoY3ViZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjYuNiAxMDRIMTEwLjRjLTUxLjEgMC05MS4yIDQzLjMtOTEuMiA5My41VjQyN2MwIDUwLjUgNDAuMSA4NSA5MS4yIDg1aDIyNy4yYzUxLjEgMCA5MS4yLTM0LjUgOTEuMi04NVYwTDMyNi42IDEwNHpNMTUzLjkgNDE2LjVjLTE3LjcgMC0zMi40LTE1LjEtMzIuNC0zMi44VjI0MC44YzAtMTcuNyAxNC43LTMyLjUgMzIuNC0zMi41aDE0MC43YzE3LjcgMCAzMiAxNC44IDMyIDMyLjV2MTIzLjVsNTEuMSA1Mi4zSDE1My45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEZWV6ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDUxLjQ2LDI0NC43MUg1NzZWMTcySDQ1MS40NlptMC0xNzMuODl2NzIuNjdINTc2VjcwLjgyWm0wLDI3NS4wNkg1NzZWMjczLjJINDUxLjQ2Wk0wLDQ0Ny4wOUgxMjQuNTRWMzc0LjQySDBabTE1MC40NywwSDI3NVYzNzQuNDJIMTUwLjQ3Wm0xNTAuNTIsMEg0MjUuNTNWMzc0LjQySDMwMVptMTUwLjQ3LDBINTc2VjM3NC40Mkg0NTEuNDZaTTMwMSwzNDUuODhINDI1LjUzVjI3My4ySDMwMVptLTE1MC41MiwwSDI3NVYyNzMuMkgxNTAuNDdabTAtMTAxLjE3SDI3NVYxNzJIMTUwLjQ3WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEZWxpY2lvdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ2LjUgNjhjLS40LTEuNS0uOS0zLTEuNC00LjUtLjktMi41LTItNC44LTMuMy03LjEtMS40LTIuNC0zLTQuOC00LjctNi45LTIuMS0yLjUtNC40LTQuOC02LjktNi44LTEuMS0uOS0yLjItMS43LTMuMy0yLjUtMS4zLS45LTIuNi0xLjctNC0yLjQtMS44LTEtMy42LTEuOC01LjUtMi41LTEuNy0uNy0zLjUtMS4zLTUuNC0xLjctMy44LTEtNy45LTEuNS0xMi0xLjVINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCA0LjEuNSA4LjIgMS41IDEyIDIgNy43IDUuOCAxNC42IDExIDIwLjMgMSAxLjEgMi4xIDIuMiAzLjMgMy4zIDUuNyA1LjIgMTIuNiA5IDIwLjMgMTEgMy44IDEgNy45IDEuNSAxMiAxLjVoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYy0uMS00LjEtLjYtOC4yLTEuNi0xMnpNNDE2IDQzMmMwIDguOC03LjIgMTYtMTYgMTZIMjI0VjI1NkgzMlY4MGMwLTguOCA3LjItMTYgMTYtMTZoMTc2djE5MmgxOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURlcGxveWRvZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODIuMiAxMzZoNTEuN3YyMzkuNmgtNTEuN3YtMjAuN2MtMTkuOCAyNC44LTUyLjggMjQuMS03My44IDE0LjctMjYuMi0xMS43LTQ0LjMtMzguMS00NC4zLTcxLjggMC0yOS44IDE0LjgtNTcuOSA0My4zLTcwLjggMjAuMi05LjEgNTIuNy0xMC42IDc0LjggMTIuOVYxMzZ6bS02NC43IDE2MS44YzAgMTguMiAxMy42IDMzLjUgMzMuMiAzMy41IDE5LjggMCAzMy4yLTE2LjQgMzMuMi0zMi45IDAtMTcuMS0xMy43LTMzLjItMzMuMi0zMy4yLTE5LjYgMC0zMy4yIDE2LjQtMzMuMiAzMi42ek0xODguNSAxMzZoNTEuN3YyMzkuNmgtNTEuN3YtMjAuN2MtMTkuOCAyNC44LTUyLjggMjQuMS03My44IDE0LjctMjYuMi0xMS43LTQ0LjMtMzguMS00NC4zLTcxLjggMC0yOS44IDE0LjgtNTcuOSA0My4zLTcwLjggMjAuMi05LjEgNTIuNy0xMC42IDc0LjggMTIuOVYxMzZ6bS02NC43IDE2MS44YzAgMTguMiAxMy42IDMzLjUgMzMuMiAzMy41IDE5LjggMCAzMy4yLTE2LjQgMzMuMi0zMi45IDAtMTcuMS0xMy43LTMzLjItMzMuMi0zMy4yLTE5LjcgMC0zMy4yIDE2LjQtMzMuMiAzMi42ek00NDggOTZjMTcuNSAwIDMyIDE0LjQgMzIgMzJ2MjU2YzAgMTcuNS0xNC40IDMyLTMyIDMySDY0Yy0xNy41IDAtMzItMTQuNC0zMi0zMlYxMjhjMC0xNy41IDE0LjQtMzIgMzItMzJoMzg0bTAtMzJINjRDMjguOCA2NCAwIDkyLjggMCAxMjh2MjU2YzAgMzUuMiAyOC44IDY0IDY0IDY0aDM4NGMzNS4yIDAgNjQtMjguOCA2NC02NFYxMjhjMC0zNS4yLTI4LjgtNjQtNjQtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURlc2twcm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ4MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA1LjkgNTEybDMxLjEtMzguNGMxMi4zLS4yIDI1LjYtMS40IDM2LjUtNi42IDM4LjktMTguNiAzOC40LTYxLjkgMzguMy02My44LS4xLTUtLjgtNC40LTI4LjktMzcuNEgzNjJjLS4yIDUwLjEtNy4zIDY4LjUtMTAuMiA3NS43LTkuNCAyMy43LTQzLjkgNjIuOC05NS4yIDY5LjQtOC43IDEuMS0zMi44IDEuMi01MC43IDEuMXptMjAwLjQtMTY3LjdjMzguNiAwIDU4LjUtMTMuNiA3My43LTMwLjlsLTE3NS41LS4zLTE3LjQgMzEuMyAxMTkuMi0uMXptLTQzLjYtMjIzLjl2MTY4LjNoLTczLjVsLTMyLjcgNTUuNUgyNTBjLTUyLjMgMC01OC4xLTU2LjUtNTguMy01OC45LTEuMi0xMy4yLTIxLjMtMTEuNi0yMC4xIDEuOCAxLjQgMTUuOCA4LjggNDAgMjYuNCA1Ny4xaC05MWMtMjUuNSAwLTExMC44LTI2LjgtMTA3LTExNFYxNi45QzAgLjkgOS43LjMgMTUgLjFoODJjLjIgMCAuMy4xLjUuMSA0LjMtLjQgNTAuMS0yLjEgNTAuMSA0My43IDAgMTMuMyAyMC4yIDEzLjQgMjAuMiAwIDAtMTguMi01LjUtMzIuOC0xNS44LTQzLjdoODQuMmMxMDguNy0uNCAxMjYuNSA3OS40IDEyNi41IDEyMC4yem0tMTMyLjUgNTZsNjQgMjkuM2MxMy4zLTQ1LjUtNDIuMi03MS43LTY0LTI5LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURldiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjAuMTIgMjA4LjI5Yy0zLjg4LTIuOS03Ljc3LTQuMzUtMTEuNjUtNC4zNUg5MS4wM3YxMDQuNDdoMTcuNDVjMy44OCAwIDcuNzctMS40NSAxMS42NS00LjM1IDMuODgtMi45IDUuODItNy4yNSA1LjgyLTEzLjA2di02OS42NWMtLjAxLTUuOC0xLjk2LTEwLjE2LTUuODMtMTMuMDZ6TTQwNC4xIDMySDQzLjlDMTkuNyAzMiAuMDYgNTEuNTkgMCA3NS44djM2MC40Qy4wNiA0NjAuNDEgMTkuNyA0ODAgNDMuOSA0ODBoMzYwLjJjMjQuMjEgMCA0My44NC0xOS41OSA0My45LTQzLjhWNzUuOGMtLjA2LTI0LjIxLTE5LjctNDMuOC00My45LTQzLjh6TTE1NC4yIDI5MS4xOWMwIDE4LjgxLTExLjYxIDQ3LjMxLTQ4LjM2IDQ3LjI1aC00Ni40VjE3Mi45OGg0Ny4zOGMzNS40NCAwIDQ3LjM2IDI4LjQ2IDQ3LjM3IDQ3LjI4bC4wMSA3MC45M3ptMTAwLjY4LTg4LjY2SDIwMS42djM4LjQyaDMyLjU3djI5LjU3SDIwMS42djM4LjQxaDUzLjI5djI5LjU3aC02Mi4xOGMtMTEuMTYuMjktMjAuNDQtOC41My0yMC43Mi0xOS42OVYxOTMuN2MtLjI3LTExLjE1IDguNTYtMjAuNDEgMTkuNzEtMjAuNjloNjMuMTlsLS4wMSAyOS41MnptMTAzLjY0IDExNS4yOWMtMTMuMiAzMC43NS0zNi44NSAyNC42My00Ny40NCAwbC0zOC41My0xNDQuOGgzMi41N2wyOS43MSAxMTMuNzIgMjkuNTctMTEzLjcyaDMyLjU4bC0zOC40NiAxNDQuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGV2aWFudGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgOTMuMmwtOTguMiAxNzkuMSA3LjQgOS41SDMyMHYxMjcuN0gxNTkuMWwtMTMuNSA5LjItNDMuNyA4NGMtLjMgMC04LjYgOC42LTkuMiA5LjJIMHYtOTMuMmw5My4yLTE3OS40LTcuNC05LjJIMFYxMDIuNWgxNTZsMTMuNS05LjIgNDMuNy04NGMuMyAwIDguNi04LjYgOS4yLTkuMkgzMjB2OTMuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGhsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzOCAzMDEuMmg1OC43TDMxOSAyNzFoLTU4LjdMMjM4IDMwMS4yek0wIDI4Mi45djYuNGg4MS44bDQuNy02LjRIMHpNMTcyLjkgMjcxYy04LjcgMC02LTMuNi00LjYtNS41IDIuOC0zLjggNy42LTEwLjQgMTAuNC0xNC4xIDIuOC0zLjcgMi44LTUuOS0yLjgtNS45aC01MWwtNDEuMSA1NS44aDEwMC4xYzMzLjEgMCA1MS41LTIyLjUgNTcuMi0zMC4zaC02OC4yem0zMTcuNS02LjlsMzkuMy01My40aC02Mi4ybC0zOS4zIDUzLjRoNjIuMnpNOTUuMyAyNzFIMHY2LjRoOTAuNmw0LjctNi40em0xMTEtMjYuNmMtMi44IDMuOC03LjUgMTAuNC0xMC4zIDE0LjItMS40IDItNC4xIDUuNSA0LjYgNS41aDQ1LjZzNy4zLTEwIDEzLjUtMTguNGM4LjQtMTEuNC43LTM1LTI5LjItMzVIMTEyLjZsLTIwLjQgMjcuOGgxMTEuNGM1LjYgMCA1LjUgMi4yIDIuNyA1Ljl6TTAgMzAxLjJoNzMuMWw0LjctNi40SDB2Ni40em0zMjMgMGg1OC43TDQwNCAyNzFoLTU4LjdjLS4xIDAtMjIuMyAzMC4yLTIyLjMgMzAuMnptMjIyIC4xaDk1di02LjRoLTkwLjNsLTQuNyA2LjR6bTIyLjMtMzAuM2wtNC43IDYuNEg2NDBWMjcxaC03Mi43em0tMTMuNSAxOC4zSDY0MHYtNi40aC04MS41bC00LjcgNi40em0tMTY0LjItNzguNmwtMjIuNSAzMC42aC0yNi4ybDIyLjUtMzAuNmgtNTguN2wtMzkuMyA1My40SDQwOWwzOS4zLTUzLjRoLTU4Ljd6bTMzLjUgNjAuM3MtNC4zIDUuOS02LjQgOC43Yy03LjQgMTAtLjkgMjEuNiAyMy4yIDIxLjZoOTQuM2wyMi4zLTMwLjNINDIzLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpYXNwb3JhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1MS42NCAzNTQuNTVjLTEuNCAwLTg4IDExOS45LTg4LjcgMTE5LjlTNzYuMzQgNDE0IDc2IDQxMy4yNXM4Ni42LTEyNS43IDg2LjYtMTI3LjRjMC0yLjItMTI5LjYtNDQtMTM3LjYtNDcuMS0xLjMtLjUgMzEuNC0xMDEuOCAzMS43LTEwMi4xLjYtLjcgMTQ0LjQgNDcgMTQ1LjUgNDcgLjQgMCAuOS0uNiAxLTEuMy40LTIgMS0xNDguNiAxLjctMTQ5LjYuOC0xLjIgMTA0LjUtLjcgMTA1LjEtLjMgMS41IDEgMy41IDE1Ni4xIDYuMSAxNTYuMSAxLjQgMCAxMzguNy00NyAxMzkuMy00Ni4zLjguOSAzMS45IDEwMi4yIDMxLjUgMTAyLjYtLjkuOS0xNDAuMiA0Ny4xLTE0MC42IDQ4LjgtLjMgMS40IDgyLjggMTIyLjEgODIuNSAxMjIuOXMtODUuNSA2My41LTg2LjMgNjMuNWMtMS0uMi04OS0xMjUuNS05MC45LTEyNS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWdnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTgxLjcgMTcyLjNIMHYxNzQuNGgxMzIuN1Y5NmgtNTF2NzYuM3ptMCAxMzMuNEg1MC45di05Mi4zaDMwLjh2OTIuM3ptMjk3LjItMTMzLjR2MTc0LjRoODEuOHYyOC41aC04MS44VjQxNkg1MTJWMTcyLjNIMzc4Ljl6bTgxLjggMTMzLjRoLTMwLjh2LTkyLjNoMzAuOHY5Mi4zem0tMjM1LjYgNDFoODIuMXYyOC41aC04Mi4xVjQxNmgxMzMuM1YxNzIuM0gyMjUuMXYxNzQuNHptNTEuMi0xMzMuM2gzMC44djkyLjNoLTMwLjh2LTkyLjN6TTE1My4zIDk2aDUxLjN2NTFoLTUxLjNWOTZ6bTAgNzYuM2g1MS4zdjE3NC40aC01MS4zVjE3Mi4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWdpdGFsT2NlYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODcgNDgxLjhoNzMuN3YtNzMuNkg4N3pNMjUuNCAzNDYuNnY2MS42SDg3di02MS42em00NjYuMi0xNjkuN2MtMjMtNzQuMi04Mi40LTEzMy4zLTE1Ni42LTE1Ni42QzE2NC45LTMyLjggOCA5My43IDggMjU1LjloOTUuOGMwLTEwMS44IDEwMS0xODAuNSAyMDguMS0xNDEuNyAzOS43IDE0LjMgNzEuNSA0Ni4xIDg1LjggODUuNyAzOS4xIDEwNy0zOS43IDIwNy44LTE0MS40IDIwOHYuM2gtLjNWNTA0YzE2Mi42IDAgMjg4LjgtMTU2LjggMjM1LjYtMzI3LjF6bS0yMzUuMyAyMzF2LTk1LjNoLTk1LjZ2OTUuNkgyNTZ2LS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaXNjb3JkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyNC41MzEsNjkuODM2YTEuNSwxLjUsMCwwLDAtLjc2NC0uN0E0ODUuMDY1LDQ4NS4wNjUsMCwwLDAsNDA0LjA4MSwzMi4wM2ExLjgxNiwxLjgxNiwwLDAsMC0xLjkyMy45MSwzMzcuNDYxLDMzNy40NjEsMCwwLDAtMTQuOSwzMC42LDQ0Ny44NDgsNDQ3Ljg0OCwwLDAsMC0xMzQuNDI2LDAsMzA5LjU0MSwzMDkuNTQxLDAsMCwwLTE1LjEzNS0zMC42LDEuODksMS44OSwwLDAsMC0xLjkyNC0uOTFBNDgzLjY4OSw0ODMuNjg5LDAsMCwwLDExNi4wODUsNjkuMTM3YTEuNzEyLDEuNzEyLDAsMCwwLS43ODguNjc2QzM5LjA2OCwxODMuNjUxLDE4LjE4NiwyOTQuNjksMjguNDMsNDA0LjM1NGEyLjAxNiwyLjAxNiwwLDAsMCwuNzY1LDEuMzc1QTQ4Ny42NjYsNDg3LjY2NiwwLDAsMCwxNzYuMDIsNDc5LjkxOGExLjksMS45LDAsMCwwLDIuMDYzLS42NzZBMzQ4LjIsMzQ4LjIsMCwwLDAsMjA4LjEyLDQzMC40YTEuODYsMS44NiwwLDAsMC0xLjAxOS0yLjU4OCwzMjEuMTczLDMyMS4xNzMsMCwwLDEtNDUuODY4LTIxLjg1MywxLjg4NSwxLjg4NSwwLDAsMS0uMTg1LTMuMTI2YzMuMDgyLTIuMzA5LDYuMTY2LTQuNzExLDkuMTA5LTcuMTM3YTEuODE5LDEuODE5LDAsMCwxLDEuOS0uMjU2Yzk2LjIyOSw0My45MTcsMjAwLjQxLDQzLjkxNywyOTUuNSwwYTEuODEyLDEuODEyLDAsMCwxLDEuOTI0LjIzM2MyLjk0NCwyLjQyNiw2LjAyNyw0Ljg1MSw5LjEzMiw3LjE2YTEuODg0LDEuODg0LDAsMCwxLS4xNjIsMy4xMjYsMzAxLjQwNywzMDEuNDA3LDAsMCwxLTQ1Ljg5LDIxLjgzLDEuODc1LDEuODc1LDAsMCwwLTEsMi42MTEsMzkxLjA1NSwzOTEuMDU1LDAsMCwwLDMwLjAxNCw0OC44MTUsMS44NjQsMS44NjQsMCwwLDAsMi4wNjMuN0E0ODYuMDQ4LDQ4Ni4wNDgsMCwwLDAsNjEwLjcsNDA1LjcyOWExLjg4MiwxLjg4MiwwLDAsMCwuNzY1LTEuMzUyQzYyMy43MjksMjc3LjU5NCw1OTAuOTMzLDE2Ny40NjUsNTI0LjUzMSw2OS44MzZaTTIyMi40OTEsMzM3LjU4Yy0yOC45NzIsMC01Mi44NDQtMjYuNTg3LTUyLjg0NC01OS4yMzlTMTkzLjA1NiwyMTkuMSwyMjIuNDkxLDIxOS4xYzI5LjY2NSwwLDUzLjMwNiwyNi44Miw1Mi44NDMsNTkuMjM5QzI3NS4zMzQsMzEwLjk5MywyNTEuOTI0LDMzNy41OCwyMjIuNDkxLDMzNy41OFptMTk1LjM4LDBjLTI4Ljk3MSwwLTUyLjg0My0yNi41ODctNTIuODQzLTU5LjIzOVMzODguNDM3LDIxOS4xLDQxNy44NzEsMjE5LjFjMjkuNjY3LDAsNTMuMzA3LDI2LjgyLDUyLjg0NCw1OS4yMzlDNDcwLjcxNSwzMTAuOTkzLDQ0Ny41MzgsMzM3LjU4LDQxNy44NzEsMzM3LjU4WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaXNjb3Vyc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI1LjkgMzJDMTAzLjMgMzIgMCAxMzAuNSAwIDI1Mi4xIDAgMjU2IC4xIDQ4MCAuMSA0ODBsMjI1LjgtLjJjMTIyLjcgMCAyMjIuMS0xMDIuMyAyMjIuMS0yMjMuOUM0NDggMTM0LjMgMzQ4LjYgMzIgMjI1LjkgMzJ6TTIyNCAzODRjLTE5LjQgMC0zNy45LTQuMy01NC40LTEyLjFMODguNSAzOTJsMjIuOS03NWMtOS44LTE4LjEtMTUuNC0zOC45LTE1LjQtNjEgMC03MC43IDU3LjMtMTI4IDEyOC0xMjhzMTI4IDU3LjMgMTI4IDEyOC01Ny4zIDEyOC0xMjggMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb2NodWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQxNiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzk3LjkgMTYwSDI1NlYxOS42TDM5Ny45IDE2MHpNMzA0IDE5MnYxMzBjMCA2Ni44LTM2LjUgMTAwLjEtMTEzLjMgMTAwLjFIOTZWODQuOGg5NC43YzEyIDAgMjMuMS44IDMzLjEgMi41di04NEMyMTIuOSAxLjEgMjAxLjQgMCAxODkuMiAwSDB2NTEyaDE4OS4yQzMyOS43IDUxMiA0MDAgNDQ3LjQgNDAwIDMxOC4xVjE5MmgtOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURvY2tlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDkuOSAyMzYuM2gtNjYuMXYtNTkuNGg2Ni4xdjU5LjR6bTAtMjA0LjNoLTY2LjF2NjAuN2g2Ni4xVjMyem03OC4yIDE0NC44SDM2MnY1OS40aDY2LjF2LTU5LjR6bS0xNTYuMy03Mi4xaC02Ni4xdjYwLjFoNjYuMXYtNjAuMXptNzguMSAwaC02Ni4xdjYwLjFoNjYuMXYtNjAuMXptMjc2LjggMTAwYy0xNC40LTkuNy00Ny42LTEzLjItNzMuMS04LjQtMy4zLTI0LTE2LjctNDQuOS00MS4xLTYzLjdsLTE0LTkuMy05LjMgMTRjLTE4LjQgMjcuOC0yMy40IDczLjYtMy43IDEwMy44LTguNyA0LjctMjUuOCAxMS4xLTQ4LjQgMTAuN0gyLjRjLTguNyA1MC44IDUuOCAxMTYuOCA0NCAxNjIuMSAzNy4xIDQzLjkgOTIuNyA2Ni4yIDE2NS40IDY2LjIgMTU3LjQgMCAyNzMuOS03Mi41IDMyOC40LTIwNC4yIDIxLjQuNCA2Ny42LjEgOTEuMy00NS4yIDEuNS0yLjUgNi42LTEzLjIgOC41LTE3LjFsLTEzLjMtOC45em0tNTExLjEtMjcuOWgtNjZ2NTkuNGg2Ni4xdi01OS40em03OC4xIDBoLTY2LjF2NTkuNGg2Ni4xdi01OS40em03OC4xIDBoLTY2LjF2NTkuNGg2Ni4xdi01OS40em0tNzguMS03Mi4xaC02Ni4xdjYwLjFoNjYuMXYtNjAuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHJhZnQyRGlnaXRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDgwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAgMzk4LjFsLTE0NC04Mi4ydjY0LjdoLTkxLjNjMzAuOC0zNSA4MS44LTk1LjkgMTExLjgtMTQ5LjMgMzUuMi02Mi42IDE2LjEtMTIzLjQtMTIuOC0xNTMuMy00LjQtNC42LTYyLjItNjIuOS0xNjYtNDEuMi01OS4xIDEyLjQtODkuNCA0My40LTEwNC4zIDY3LjMtMTMuMSAyMC45LTE3IDM5LjgtMTguMiA0Ny43LTUuNSAzMyAxOS40IDY3LjEgNTYuNyA2Ny4xIDMxLjcgMCA1Ny4zLTI1LjcgNTcuMy01Ny40IDAtMjcuMS0xOS43LTUyLjEtNDgtNTYuOCAxLjgtNy4zIDE3LjctMjEuMSAyNi4zLTI0LjcgNDEuMS0xNy4zIDc4IDUuMiA4My4zIDMzLjUgOC4zIDQ0LjMtMzcuMSA5MC40LTY5LjcgMTI3LjZDODQuNSAzMjguMSAxOC4zIDM5Ni44IDAgNDE1LjlsMzM2LS4xVjQ4MHpNMzY5LjkgMzcxbDQ3LjEgMjcuMi00Ny4xIDI3LjJ6TTEzNC4yIDE2MS40YzAgMTIuNC0xMCAyMi40LTIyLjQgMjIuNHMtMjIuNC0xMC0yMi40LTIyLjQgMTAtMjIuNCAyMi40LTIyLjQgMjIuNCAxMC4xIDIyLjQgMjIuNHpNODIuNSAzODAuNWMyNS42LTI3LjQgOTcuNy0xMDQuNyAxNTAuOC0xNjkuOSAzNS4xLTQzLjEgNDAuMy04Mi40IDI4LjQtMTEyLjctNy40LTE4LjgtMTcuNS0zMC4yLTI0LjMtMzUuNyA0NS4zIDIuMSA2OCAyMy40IDgyLjIgMzguMyAwIDAgNDIuNCA0OC4yIDUuOCAxMTMuMy0zNyA2NS45LTExMC45IDE0Ny41LTEyOC41IDE2Ni43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEcmliYmJsZVNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05MC4yIDIyOC4yYzguOS00Mi40IDM3LjQtNzcuNyA3NS43LTk1LjcgMy42IDQuOSAyOCAzOC44IDUwLjcgNzktNjQgMTctMTIwLjMgMTYuOC0xMjYuNCAxNi43ek0zMTQuNiAxNTRjLTMzLjYtMjkuOC03OS4zLTQxLjEtMTIyLjYtMzAuNiAzLjggNS4xIDI4LjYgMzguOSA1MSA4MCA0OC42LTE4LjMgNjkuMS00NS45IDcxLjYtNDkuNHpNMTQwLjEgMzY0YzQwLjUgMzEuNiA5My4zIDM2LjcgMTM3LjMgMTgtMi0xMi0xMC01My44LTI5LjItMTAzLjYtNTUuMSAxOC44LTkzLjggNTYuNC0xMDguMSA4NS42em05OC44LTEwOC4yYy0zLjQtNy44LTcuMi0xNS41LTExLjEtMjMuMkMxNTkuNiAyNTMgOTMuNCAyNTIuMiA4Ny40IDI1MmMwIDEuNC0uMSAyLjgtLjEgNC4yIDAgMzUuMSAxMy4zIDY3LjEgMzUuMSA5MS40IDIyLjItMzcuOSA2Ny4xLTc3LjkgMTE2LjUtOTEuOHptMzQuOSAxNi4zYzE3LjkgNDkuMSAyNS4xIDg5LjEgMjYuNSA5Ny40IDMwLjctMjAuNyA1Mi41LTUzLjYgNTguNi05MS42LTQuNi0xLjUtNDIuMy0xMi43LTg1LjEtNS44em0tMjAuMy00OC40YzQuOCA5LjggOC4zIDE3LjggMTIgMjYuOCA0NS41LTUuNyA5MC43IDMuNCA5NS4yIDQuNC0uMy0zMi4zLTExLjgtNjEuOS0zMC45LTg1LjEtMi45IDMuOS0yNS44IDMzLjItNzYuMyA1My45ek00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS02NCAxNzZjMC04OC4yLTcxLjgtMTYwLTE2MC0xNjBTNjQgMTY3LjggNjQgMjU2czcxLjggMTYwIDE2MCAxNjAgMTYwLTcxLjggMTYwLTE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHJpYmJibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5LjI1MiA4IDggMTE5LjI1MiA4IDI1NnMxMTEuMjUyIDI0OCAyNDggMjQ4IDI0OC0xMTEuMjUyIDI0OC0yNDhTMzkyLjc0OCA4IDI1NiA4em0xNjMuOTcgMTE0LjM2NmMyOS41MDMgMzYuMDQ2IDQ3LjM2OSA4MS45NTcgNDcuODM1IDEzMS45NTUtNi45ODQtMS40NzctNzcuMDE4LTE1LjY4Mi0xNDcuNTAyLTYuODE4LTUuNzUyLTE0LjA0MS0xMS4xODEtMjYuMzkzLTE4LjYxNy00MS42MTQgNzguMzIxLTMxLjk3NyAxMTMuODE4LTc3LjQ4MiAxMTguMjg0LTgzLjUyM3pNMzk2LjQyMSA5Ny44N2MtMy44MSA1LjQyNy0zNS42OTcgNDguMjg2LTExMS4wMjEgNzYuNTE5LTM0LjcxMi02My43NzYtNzMuMTg1LTExNi4xNjgtNzkuMDQtMTI0LjAwOCA2Ny4xNzYtMTYuMTkzIDEzNy45NjYgMS4yNyAxOTAuMDYxIDQ3LjQ4OXptLTIzMC40OC0zMy4yNWM1LjU4NSA3LjY1OSA0My40MzggNjAuMTE2IDc4LjUzNyAxMjIuNTA5LTk5LjA4NyAyNi4zMTMtMTg2LjM2IDI1LjkzNC0xOTUuODM0IDI1LjgwOUM2Mi4zOCAxNDcuMjA1IDEwNi42NzggOTIuNTczIDE2NS45NDEgNjQuNjJ6TTQ0LjE3IDI1Ni4zMjNjMC0yLjE2Ni4wNDMtNC4zMjIuMTA4LTYuNDczIDkuMjY4LjE5IDExMS45MiAxLjUxMyAyMTcuNzA2LTMwLjE0NiA2LjA2NCAxMS44NjggMTEuODU3IDIzLjkxNSAxNy4xNzQgMzUuOTQ5LTc2LjU5OSAyMS41NzUtMTQ2LjE5NCA4My41MjctMTgwLjUzMSAxNDIuMzA2QzY0Ljc5NCAzNjAuNDA1IDQ0LjE3IDMxMC43MyA0NC4xNyAyNTYuMzIzem04MS44MDcgMTY3LjExM2MyMi4xMjctNDUuMjMzIDgyLjE3OC0xMDMuNjIyIDE2Ny41NzktMTMyLjc1NiAyOS43NCA3Ny4yODMgNDIuMDM5IDE0Mi4wNTMgNDUuMTg5IDE2MC42MzgtNjguMTEyIDI5LjAxMy0xNTAuMDE1IDIxLjA1My0yMTIuNzY4LTI3Ljg4MnptMjQ4LjM4IDguNDg5Yy0yLjE3MS0xMi44ODYtMTMuNDQ2LTc0Ljg5Ny00MS4xNTItMTUxLjAzMyA2Ni4zOC0xMC42MjYgMTI0LjcgNi43NjggMTMxLjk0NyA5LjA1NS05LjQ0MiA1OC45NDEtNDMuMjczIDEwOS44NDQtOTAuNzk1IDE0MS45Nzh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURyb3Bib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUyOCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjY0LjQgMTE2LjNsLTEzMiA4NC4zIDEzMiA4NC4zLTEzMiA4NC4zTDAgMjg0LjFsMTMyLjMtODQuM0wwIDExNi4zIDEzMi4zIDMybDEzMi4xIDg0LjN6TTEzMS42IDM5NS43bDEzMi04NC4zIDEzMiA4NC4zLTEzMiA4NC4zLTEzMi04NC4zem0xMzIuOC0xMTEuNmwxMzItODQuMy0xMzItODMuNkwzOTUuNyAzMiA1MjggMTE2LjNsLTEzMi4zIDg0LjNMNTI4IDI4NC44bC0xMzIuMyA4NC4zLTEzMS4zLTg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEcnVwYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzE5LjUgMTE0LjdjLTIyLjItMTQtNDMuNS0xOS41LTY0LjctMzMuNS0xMy04LjgtMzEuMy0zMC00Ni41LTQ4LjMtMi43IDI5LjMtMTEuNSA0MS4yLTIyIDQ5LjUtMjEuMyAxNy0zNC44IDIyLjItNTMuNSAzMi4zQzExNyAxMjMgMzIgMTgxLjUgMzIgMjkwLjUgMzIgMzk5LjcgMTIzLjggNDgwIDIyNS44IDQ4MCAzMjcuNSA0ODAgNDE2IDQwNiA0MTYgMjk0YzAtMTEyLjMtODMtMTcxLTk2LjUtMTc5LjN6bTIuNSAzMjUuNmMtMjAuMSAyMC4xLTkwLjEgMjguNy0xMTYuNyA0LjItNC44LTQuOC4zLTEyIDYuNS0xMiAwIDAgMTcgMTMuMyA1MS41IDEzLjMgMjcgMCA0Ni03LjcgNTQuNS0xNCA2LjEtNC42IDguNCA0LjMgNC4yIDguNXptLTU0LjUtNTIuNmM4LjctMy42IDI5LTMuOCAzNi44IDEuMyA0LjEgMi44IDE2LjEgMTguOCA2LjIgMjMuNy04LjQgNC4yLTEuMi0xNS43LTI2LjUtMTUuNy0xNC43IDAtMTkuNSA1LjItMjYuNyAxMS03IDYtOS44IDgtMTIuMiA0LjctNi04LjIgMTUuOS0yMi4zIDIyLjQtMjV6TTM2MCA0MDVjLTE1LjItMS00NS41LTQ4LjgtNjUtNDkuNS0zMC45LS45LTEwNC4xIDgwLjctMTYxLjMgNDItMzguOC0yNi42LTE0LjYtMTA0LjggNTEuOC0xMDUuMiA0OS41LS41IDgzLjggNDkgMTA4LjUgNDguNSAyMS4zLS4zIDYxLjgtNDEuOCA4MS44LTQxLjggNDguNyAwIDIzLjMgMTA5LjMtMTUuOCAxMDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUR5YWxvZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDE2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMydjExOS4yaDY0Vjk2aDEwNy4yQzI4NC42IDk2IDM1MiAxNzYuMiAzNTIgMjU1LjkgMzUyIDMzMiAyOTMuNCA0MTYgMTcxLjIgNDE2SDB2NjRoMTcxLjJDMzMxLjkgNDgwIDQxNiAzNjcuMyA0MTYgMjU1LjljMC01OC43LTIyLjEtMTEzLjQtNjIuMy0xNTQuM0MzMDguOSA1NiAyNDUuNyAzMiAxNzEuMiAzMkgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFYXJseWJpcmRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0ODAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMy4yIDQ3LjVjMS4yLTEzIDIxLjMtMTQgMzYuNi04LjcuOS4zIDI2LjIgOS43IDE5IDE1LjItMjcuOS03LjQtNTYuNCAxOC4yLTU1LjYtNi41em0tMjAxIDYuOWMzMC43LTguMSA2MiAyMCA2MS4xLTcuMS0xLjMtMTQuMi0yMy40LTE1LjMtNDAuMi05LjYtMSAuMy0yOC43IDEwLjUtMjAuOSAxNi43ek0zMTkuNCAxNjBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTYgMTYtNy4yIDE2LTE2LTcuMi0xNi0xNi0xNnptLTE1OS43IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTYgMTYtNy4yIDE2LTE2LTcuMi0xNi0xNi0xNnptMzE4LjUgMTYzLjJjLTkuOSAyNC00MC43IDExLTYzLjktMS4yLTEzLjUgNjkuMS01OC4xIDExMS40LTEyNi4zIDEyNC4yLjMuOS0yLS4xIDI0IDEgMzMuNiAxLjQgNjMuOC0zLjEgOTcuNC04LTE5LjgtMTMuOC0xMS40LTM3LjEtOS44LTM4LjEgMS40LS45IDE0LjcgMS43IDIxLjYgMTEuNSA4LjYtMTIuNSAyOC40LTE0LjggMzAuMi0xMy42IDEuNiAxLjEgNi42IDIwLjktNi45IDM0LjYgNC43LS45IDguMi0xLjYgOS44LTIuMSAyLjYtLjggMTcuNyAxMS4zIDMuMSAxMy4zLTE0LjMgMi4zLTIyLjYgNS4xLTQ3LjEgMTAuOC00NS45IDEwLjctODUuOSAxMS44LTExNy43IDEyLjhsMSAxMS42YzMuOCAxOC4xLTIzLjQgMjQuMy0yNy42IDYuMi44IDE3LjktMjcuMSAyMS44LTI4LjQtMWwtLjUgNS4zYy0uNyAxOC40LTI4LjQgMTcuOS0yOC4zLS42LTcuNSAxMy41LTI4LjEgNi44LTI2LjQtOC41bDEuMi0xMi40Yy0zNi43LjktNTkuNyAzLjEtNjEuOCAzLjEtMjAuOSAwLTIwLjktMzEuNiAwLTMxLjYgMi40IDAgMjcuNyAxLjMgNjMuMiAyLjgtNjEuMS0xNS41LTEwMy43LTU1LTExNC45LTExOC4yLTI1IDEyLjgtNTcuNSAyNi44LTY4LjIuOC0xMC41LTI1LjQgMjEuNS00Mi42IDY2LjgtNzMuNC43LTYuNiAxLjYtMTMuMyAyLjctMTkuOC0xNC40LTE5LjYtMTEuNi0zNi4zLTE2LjEtNjAuNC0xNi44IDIuNC0yMy4yLTkuMS0yMy42LTIzLjEuMy03LjMgMi4xLTE0LjkgMi40LTE1LjQgMS4xLTEuOCAxMC4xLTIgMTIuNy0yLjYgNi0zMS43IDUwLjYtMzMuMiA5MC45LTM0LjUgMTkuNy0yMS44IDQ1LjItNDEuNSA4MC45LTQ4LjNDMjAzLjMgMjkgMjE1LjIgOC41IDIxNi4yIDhjMS43LS44IDIxLjIgNC4zIDI2LjMgMjMuMiA1LjItOC44IDE4LjMtMTEuNCAxOS42LTEwLjcgMS4xLjYgNi40IDE1LTQuOSAyNS45IDQwLjMgMy41IDcyLjIgMjQuNyA5NiA1MC43IDM2LjEgMS41IDcxLjggNS45IDc3LjEgMzQgMi43LjYgMTEuNi44IDEyLjcgMi42LjMuNSAyLjEgOC4xIDIuNCAxNS40LS41IDEzLjktNi44IDI1LjQtMjMuNiAyMy4xLTMuMiAxNy4zLTIuNyAzMi45LTguNyA0Ny43IDIuNCAxMS43IDQgMjMuOCA0LjggMzYuNCAzNyAyNS40IDcwLjMgNDIuNSA2MC4zIDY2Ljl6TTIwNy40IDE1OS45Yy45LTQ0LTM3LjktNDIuMi03OC42LTQwLjMtMjEuNyAxLTM4LjkgMS45LTQ1LjUgMTMuOS0xMS40IDIwLjkgNS45IDkyLjkgMjMuMiAxMDEuMiA5LjggNC43IDczLjQgNy45IDg2LjMtNy4xIDguMi05LjQgMTUtNDkuNCAxNC42LTY3Ljd6bTUyIDU4LjNjLTQuMy0xMi40LTYtMzAuMS0xNS4zLTMyLjctMi0uNS05LS41LTExIDAtMTAgMi44LTEwLjggMjIuMS0xNyAzNy4yIDE1LjQgMCAxOS4zIDkuNyAyMy43IDkuNyA0LjMgMCA2LjMtMTEuMyAxOS42LTE0LjJ6bTEzNS43LTg0LjdjLTYuNi0xMi4xLTI0LjgtMTIuOS00Ni41LTEzLjktNDAuMi0xLjktNzguMi0zLjgtNzcuMyA0MC4zLS41IDE4LjMgNSA1OC4zIDEzLjIgNjcuOCAxMyAxNC45IDc2LjYgMTEuOCA4Ni4zIDcuMSAxNS44LTcuNiAzNi41LTc4LjkgMjQuMy0xMDEuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWJheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MDYgMTg5LjVsLTU0LjggMTA5LjktNTQuOS0xMDkuOWgtMzcuNWwxMC45IDIwLjZjLTExLjUtMTktMzUuOS0yNi02My4zLTI2LTMxLjggMC02Ny45IDguNy03MS41IDQzLjFoMzMuN2MxLjQtMTMuOCAxNS43LTIxLjggMzUtMjEuOCAyNiAwIDQxIDkuNiA0MSAzM3YzLjRjLTEyLjcgMC0yOCAuMS00MS43LjQtNDIuNC45LTY5LjYgMTAtNzYuNyAzNC40IDEtNS4yIDEuNS0xMC42IDEuNS0xNi4yIDAtNTIuMS0zOS43LTc2LjItNzUuNC03Ni4yLTIxLjMgMC00MyA1LjUtNTguNyAyNC4ydi04MC42aC0zMi4xdjE2OS41YzAgMTAuMy0uNiAyMi45LTEuMSAzMy4xaDMxLjVjLjctNi4zIDEuMS0xMi45IDEuMS0xOS41IDEzLjYgMTYuNiAzNS40IDI0LjkgNTguNyAyNC45IDM2LjkgMCA2NC45LTIxLjkgNzMuMy01NC4yLS41IDIuOC0uNyA1LjgtLjcgOSAwIDI0LjEgMjEuMSA0NSA2MC42IDQ1IDI2LjYgMCA0NS44LTUuNyA2MS45LTI1LjUgMCA2LjYuMyAxMy4zIDEuMSAyMC4yaDI5LjhjLS43LTguMi0xLTE3LjUtMS0yNi44di02NS42YzAtOS4zLTEuNy0xNy4yLTQuOC0yMy44bDYxLjUgMTE2LjEtMjguNSA1NC4xaDM1LjlMNjQwIDE4OS41ek0yNDMuNyAzMTMuOGMtMjkuNiAwLTUwLjItMjEuNS01MC4yLTUzLjggMC0zMi40IDIwLjYtNTMuOCA1MC4yLTUzLjggMjkuOCAwIDUwLjIgMjEuNCA1MC4yIDUzLjggMCAzMi4zLTIwLjQgNTMuOC01MC4yIDUzLjh6bTIwMC45LTQ3LjNjMCAzMC0xNy45IDQ4LjQtNTEuNiA0OC40LTI1LjEgMC0zNS0xMy40LTM1LTI1LjggMC0xOS4xIDE4LjEtMjQuNCA0Ny4yLTI1LjMgMTMuMS0uNSAyNy42LS42IDM5LjQtLjZ6bS00MTEuOSAxLjZoMTI4Ljh2LTguNWMwLTUxLjctMzMuMS03NS40LTc4LjQtNzUuNC01Ni44IDAtODMgMzAuOC04MyA3Ny42IDAgNDIuNSAyNS4zIDc0IDgyLjUgNzQgMzEuNCAwIDY4LTExLjcgNzQuNC00Ni4xaC0zMy4xYy0xMiAzNS44LTg3LjcgMzYuNy05MS4yLTIxLjZ6bTk1LTIxLjRIMzMuM2M2LjktNTYuNiA5Mi4xLTU0LjcgOTQuNCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFZGdlTGVnYWN5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1LjcxLDIyOC4xNmwuMzUtLjQ4YzAsLjE2LDAsLjMyLS4wNy40OFptNDYwLjU4LDE1LjUxYzAtNDQtNy43Ni04NC40Ni0yOC44MS0xMjIuNEM0MTYuNSw0Ny44OCwzNDMuOTEsOCwyNTguODksOCwxMTksNy43Miw0MC42MiwxMTMuMjEsMjYuMDYsMjI3LjY4YzQyLjQyLTYxLjMxLDExNy4wNy0xMjEuMzgsMjIwLjM3LTEyNSwwLDAsMTA5LjY3LDAsOTkuNDIsMTA1SDE3MGM2LjM3LTM3LjM5LDE4LjU1LTU5LDM0LjM0LTc4LjkzLTc1LjA1LDM0LjktMTIxLjg1LDk2LjEtMTIwLjc1LDE4OC4zMi44Myw3MS40NSw1MC4xMywxNDQuODQsMTIwLjc1LDE3Miw4My4zNSwzMS44NCwxOTIuNzcsNy4yLDI0MC4xMy0yMS4zM1YzNjMuMzFDMzYzLjYsNDE5LjgsMTczLjYsNDI0LjIzLDE3Mi4yMSwyOTUuNzRINDg2LjI5VjI0My42N1pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWRnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODEuOTIsMTM0LjQ4QzQ0MC44Nyw1NC4xOCwzNTIuMjYsOCwyNTUuOTEsOCwxMzcuMDUsOCwzNy41MSw5MS42OCwxMy40NywyMDMuNjZjMjYtNDYuNDksODYuMjItNzkuMTQsMTQ5LjQ2LTc5LjE0LDc5LjI3LDAsMTIxLjA5LDQ4LjkzLDEyMi4yNSw1MC4xOCwyMiwyMy44LDMzLDUwLjM5LDMzLDgzLjEsMCwxMC40LTUuMzEsMjUuODItMTUuMTEsMzguNTctMS41NywyLTYuMzksNC44NC02LjM5LDExLDAsNS4wNiwzLjI5LDkuOTIsOS4xNCwxNCwyNy44NiwxOS4zNyw4MC4zNywxNi44MSw4MC41MSwxNi44MUExMTUuMzksMTE1LjM5LDAsMCwwLDQ0NC45NCwzMjJhMTE4LjkyLDExOC45MiwwLDAsMCw1OC45NS0xMDIuNDRDNTA0LjM5LDE3Ni4xMyw0ODguMzksMTQ3LjI2LDQ4MS45MiwxMzQuNDhaTTIxMi43Nyw0NzUuNjdhMTU0Ljg4LDE1NC44OCwwLDAsMS00Ni42NC00NWMtMzIuOTQtNDcuNDItMzQuMjQtOTUuNi0yMC4xLTEzNkExNTUuNSwxNTUuNSwwLDAsMSwyMDMsMjE1Ljc1YzU5LTQ1LjIsOTQuODQtNS42NSw5OS4wNi0xYTgwLDgwLDAsMCwwLTQuODktMTAuMTRjLTkuMjQtMTUuOTMtMjQtMzYuNDEtNTYuNTYtNTMuNTEtMzMuNzItMTcuNjktNzAuNTktMTguNTktNzcuNjQtMTguNTktMzguNzEsMC03Ny45LDEzLTEwNy41MywzNS42OUMzNS42OCwxODMuMywxMi43NywyMDguNzIsOC42LDI0M2MtMS4wOCwxMi4zMS0yLjc1LDYyLjgsMjMsMTE4LjI3YTI0OCwyNDgsMCwwLDAsMjQ4LjMsMTQxLjYxQzI0MS43OCw0OTYuMjYsMjE0LjA1LDQ3Ni4yNCwyMTIuNzcsNDc1LjY3Wm0yNTAuNzItOTguMzNhNy43Niw3Ljc2LDAsMCwwLTcuOTItLjIzLDE4MS42NiwxODEuNjYsMCwwLDEtMjAuNDEsOS4xMiwxOTcuNTQsMTk3LjU0LDAsMCwxLTY5LjU1LDEyLjUyYy05MS42NywwLTE3MS41Mi02My4wNi0xNzEuNTItMTQ0QTYxLjEyLDYxLjEyLDAsMCwxLDIwMC42MSwyMjgsMTY4LjcyLDE2OC43MiwwLDAsMCwxNjEuODUsMjc4Yy0xNC45MiwyOS4zNy0zMyw4OC4xMywxMy4zMywxNTEuNjYsNi41MSw4LjkxLDIzLDMwLDU2LDQ3LjY3LDIzLjU3LDEyLjY1LDQ5LDE5LjYxLDcxLjcsMTkuNjEsMzUuMTQsMCwxMTUuNDMtMzMuNDQsMTYzLTEwOC44N0E3Ljc1LDcuNzUsMCwwLDAsNDYzLjQ5LDM3Ny4zNFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWxlbWVudG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyNS42IDMySDIyLjRDMTAgMzIgMCA0MiAwIDU0LjR2NDAzLjJDMCA0NzAgMTAgNDgwIDIyLjQgNDgwaDQwMy4yYzEyLjQgMCAyMi40LTEwIDIyLjQtMjIuNFY1NC40QzQ0OCA0MiA0MzggMzIgNDI1LjYgMzJNMTY0LjMgMzU1LjVoLTM5Ljh2LTE5OWgzOS44djE5OXptMTU5LjMgMEgyMDQuMXYtMzkuOGgxMTkuNXYzOS44em0wLTc5LjZIMjA0LjF2LTM5LjhoMTE5LjV2MzkuOHptMC03OS43SDIwNC4xdi0zOS44aDExOS41djM5Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVsbG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExLjAzIDggMCAxMTkuMDMgMCAyNTZzMTExLjAzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMgMjQ4LTI0OFMzODQuOTcgOCAyNDggOHptMTQzLjg0IDI4NS4yQzM3NS4zMSAzNTguNTEgMzE1Ljc5IDQwNC44IDI0OCA0MDQuOHMtMTI3LjMxLTQ2LjI5LTE0My44NC0xMTEuNmMtMS42NS03LjQ0IDIuNDgtMTUuNzEgOS45Mi0xNy4zNiA3LjQ0LTEuNjUgMTUuNzEgMi40OCAxNy4zNiA5LjkyIDE0LjA1IDUyLjkxIDYyIDkwLjExIDExNi41NiA5MC4xMXMxMDIuNTEtMzcuMiAxMTYuNTYtOTAuMTFjMS42NS03LjQ0IDkuOTItMTIuNCAxNy4zNi05LjkyIDcuNDQgMS42NSAxMi40IDkuOTIgOS45MiAxNy4zNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRW1iZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjM5LjkgMjU0LjZjLTEuMS0xMC43LTEwLjctNi44LTEwLjctNi44cy0xNS42IDEyLjEtMjkuMyAxMC43Yy0xMy43LTEuMy05LjQtMzItOS40LTMyczMtMjguMS01LjEtMzAuNGMtOC4xLTIuNC0xOCA3LjMtMTggNy4zcy0xMi40IDEzLjctMTguMyAzMS4ybC0xLjYuNXMxLjktMzAuNi0uMy0zNy42Yy0xLjYtMy41LTE2LjQtMy4yLTE4LjggM3MtMTQuMiA0OS4yLTE1IDY3LjJjMCAwLTIzLjEgMTkuNi00My4zIDIyLjhzLTI1LTkuNC0yNS05LjQgNTQuOC0xNS4zIDUyLjktNTkuMS00NC4yLTI3LjYtNDktMjRjLTQuNiAzLjUtMjkuNCAxOC40LTM2LjYgNTkuNy0uMiAxLjQtLjcgNy41LS43IDcuNXMtMjEuMiAxNC4yLTMzIDE4YzAgMCAzMy01NS42LTcuMy04MC45LTExLjQtNi44LTIxLjMtLjUtMjcuMiA1LjMgMTMuNi0xNy4zIDQ2LjQtNjQuMiAzNi45LTEwNS4yLTUuOC0yNC40LTE4LTI3LjEtMjkuMi0yMy4xLTE3IDYuNy0yMy41IDE2LjctMjMuNSAxNi43cy0yMiAzMi0yNy4xIDc5LjUtMTIuNiAxMDUuMS0xMi42IDEwNS4xLTEwLjUgMTAuMi0yMC4yIDEwLjctNS40LTI4LjctNS40LTI4LjcgNy41LTQ0LjYgNy01Mi4xLTEuMS0xMS42LTkuOS0xNC4yYy04LjktMi43LTE4LjUgOC42LTE4LjUgOC42cy0yNS41IDM4LjctMjcuNyA0NC42bC0xLjMgMi40LTEuMy0xLjZzMTgtNTIuNy44LTUzLjUtMjguNSAxOC44LTI4LjUgMTguOC0xOS42IDMyLjgtMjAuNCAzNi41bC0xLjMtMS42czguMS0zOC4yIDYuNC00Ny42Yy0xLjYtOS40LTEwLjUtNy41LTEwLjUtNy41cy0xMS4zLTEuMy0xNC4yIDUuOS0xMy43IDU1LjMtMTUgNzAuN2MwIDAtMjguMiAyMC4yLTQ2LjggMjAuNC0xOC41LjMtMTYuNy0xMS44LTE2LjctMTEuOHM2OC0yMy4zIDQ5LjQtNjkuMmMtOC4zLTExLjgtMTgtMTUuNS0zMS43LTE1LjMtMTMuNy4zLTMwLjMgOC42LTQxLjMgMzMuMy01LjMgMTEuOC02LjggMjMtNy44IDMxLjUgMCAwLTEyLjMgMi40LTE4LjgtMi45cy0xMCAwLTEwIDAtMTEuMiAxNC0uMSAxOC4zIDI4LjEgNi4xIDI4LjEgNi4xYzEuNiA3LjUgNi4yIDE5LjUgMTkuNiAyOS43IDIwLjIgMTUuMyA1OC44LTEuMyA1OC44LTEuM2wxNS45LTguOHMuNSAxNC42IDEyLjEgMTYuNyAxNi40IDEgMzYuNS00Ny45YzExLjgtMjUgMTIuNi0yMy42IDEyLjYtMjMuNmwxLjMtLjNzLTkuMSA0Ni44LTUuNiA1OS43QzE4Ny43IDMxOS40IDIwMyAzMTggMjAzIDMxOHM4LjMgMi40IDE1LTIxLjIgMTkuNi00OS45IDE5LjYtNDkuOWgxLjZzLTUuNiA0OC4xIDMgNjMuNyAzMC45IDUuMyAzMC45IDUuMyAxNS42LTcuOCAxOC0xMC4yYzAgMCAxOC41IDE1LjggNDQuNiAxMi45IDU4LjMtMTEuNSA3OS4xLTI1LjkgNzkuMS0yNS45czEwIDI0LjQgNDEuMSAyNi43YzM1LjUgMi43IDU0LjgtMTguNiA1NC44LTE4LjZzLS4zIDEzLjUgMTIuMSAxOC42IDIwLjctMjIuOCAyMC43LTIyLjhsMjAuNy01Ny4yaDEuOXMxLjEgMzcuMyAyMS41IDQzLjIgNDctMTMuNyA0Ny0xMy43IDYuNC0zLjUgNS4zLTE0LjN6bS01NzggNS4zYy44LTMyIDIxLjgtNDUuOSAyOS0zOSA3LjMgNyA0LjYgMjItOS4xIDMxLjQtMTMuNyA5LjUtMTkuOSA3LjYtMTkuOSA3LjZ6bTI3Mi44LTEyMy44czE5LjEtNDkuNyAyMy42LTI1LjUtNDAgOTYuMi00MCA5Ni4yYy41LTE2LjIgMTYuNC03MC43IDE2LjQtNzAuN3ptMjIuOCAxMzguNGMtMTIuNiAzMy00My4zIDE5LjYtNDMuMyAxOS42cy0zLjUtMTEuOCA2LjQtNDQuOSAzMy4zLTIwLjIgMzMuMy0yMC4yIDE2LjIgMTIuNCAzLjYgNDUuNXptODQuNi0xNC42cy0zLTEwLjUgOC4xLTMwLjZjMTEtMjAuMiAxOS42LTkuMSAxOS42LTkuMXM5LjQgMTAuMi0xLjMgMjUuNS0yNi40IDE0LjItMjYuNCAxNC4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFbXBpcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg3LjYgNTQuMmMtMTAuOC0yLjItMjIuMS0zLjMtMzMuNS0zLjZWMzIuNGM3OC4xIDIuMiAxNDYuMSA0NCAxODQuNiAxMDYuNmwtMTUuOCA5LjFjLTYuMS05LjctMTIuNy0xOC44LTIwLjItMjcuMWwtMTggMTUuNWMtMjYtMjkuNi02MS40LTUwLjctMTAxLjktNTguNGw0LjgtMjMuOXpNNTMuNCAzMjIuNGwyMy03LjdjLTYuNC0xOC4zLTEwLTM4LjItMTAtNTguN3MzLjMtNDAuNCA5LjctNTguN2wtMjIuNy03LjdjMy42LTEwLjggOC4zLTIxLjMgMTMuNi0zMWwtMTUuOC05LjFDMzQgMTgxIDI0LjEgMjE3LjUgMjQuMSAyNTZzMTAgNzUgMjcuMSAxMDYuNmwxNS44LTkuMWMtNS4zLTEwLTkuNy0yMC4zLTEzLjYtMzEuMXpNMjEzLjEgNDM0Yy00MC40LTgtNzUuOC0yOS4xLTEwMS45LTU4LjdsLTE4IDE1LjhjLTcuNS04LjYtMTQuNC0xNy43LTIwLjItMjcuNGwtMTYgOS40YzM4LjUgNjIuMyAxMDYuOCAxMDQuMyAxODQuOSAxMDYuNnYtMTguM2MtMTEuMy0uMy0yMi43LTEuNy0zMy41LTMuNmw0LjctMjMuOHpNOTMuMyAxMjAuOWwxOCAxNS41YzI2LTI5LjYgNjEuNC01MC43IDEwMS45LTU4LjRsLTQuNy0yMy44YzEwLjgtMi4yIDIyLjEtMy4zIDMzLjUtMy42VjMyLjRDMTYzLjkgMzQuNiA5NS45IDc2LjQgNTcuNCAxMzlsMTUuOCA5LjFjNi05LjcgMTIuNi0xOC45IDIwLjEtMjcuMnptMzA5LjQgMjcwLjJsLTE4LTE1LjhjLTI2IDI5LjYtNjEuNCA1MC43LTEwMS45IDU4LjdsNC43IDIzLjhjLTEwLjggMS45LTIyLjEgMy4zLTMzLjUgMy42djE4LjNjNzguMS0yLjIgMTQ2LjQtNDQuMyAxODQuOS0xMDYuNmwtMTYuMS05LjRjLTUuNyA5LjctMTIuNiAxOC44LTIwLjEgMjcuNHpNNDk2IDI1NmMwIDEzNy0xMTEgMjQ4LTI0OCAyNDhTMCAzOTMgMCAyNTYgMTExIDggMjQ4IDhzMjQ4IDExMSAyNDggMjQ4em0tMTIuMiAwYzAtMTMwLjEtMTA1LjctMjM1LjgtMjM1LjgtMjM1LjhTMTIuMiAxMjUuOSAxMi4yIDI1NiAxMTcuOSA0OTEuOCAyNDggNDkxLjggNDgzLjggMzg2LjEgNDgzLjggMjU2em0tMzktMTA2LjZsLTE1LjggOS4xYzUuMyA5LjcgMTAgMjAuMiAxMy42IDMxbC0yMi43IDcuN2M2LjQgMTguMyA5LjcgMzguMiA5LjcgNTguN3MtMy42IDQwLjQtMTAgNTguN2wyMyA3LjdjLTMuOSAxMC44LTguMyAyMS0xMy42IDMxbDE1LjggOS4xQzQ2MiAzMzEgNDcxLjkgMjk0LjUgNDcxLjkgMjU2cy05LjktNzUtMjcuMS0xMDYuNnptLTE4MyAxNzcuN2MxNi4zLTMuMyAzMC40LTExLjYgNDAuNy0yMy41bDUxLjIgNDQuOGMxMS45LTEzLjYgMjEuMy0yOS4zIDI3LjEtNDYuOGwtNjQuMi0yMi4xYzIuNS03LjUgMy45LTE1LjIgMy45LTIzLjVzLTEuNC0xNi4xLTMuOS0yMy41bDY0LjUtMjIuMWMtNi4xLTE3LjQtMTUuNS0zMy4yLTI3LjQtNDYuOGwtNTEuMiA0NC44Yy0xMC4yLTExLjktMjQuNC0yMC41LTQwLjctMjMuOGwxMy4zLTY2LjRjLTguNi0xLjktMTcuNy0yLjgtMjcuMS0yLjgtOS40IDAtMTguNS44LTI3LjEgMi44bDEzLjMgNjYuNGMtMTYuMyAzLjMtMzAuNCAxMS45LTQwLjcgMjMuOGwtNTEuMi00NC44Yy0xMS45IDEzLjYtMjEuMyAyOS4zLTI3LjQgNDYuOGw2NC41IDIyLjFjLTIuNSA3LjUtMy45IDE1LjItMy45IDIzLjVzMS40IDE2LjEgMy45IDIzLjVsLTY0LjIgMjIuMWM1LjggMTcuNCAxNS4yIDMzLjIgMjcuMSA0Ni44bDUxLjItNDQuOGMxMC4yIDExLjkgMjQuNCAyMC4yIDQwLjcgMjMuNWwtMTMuMyA2Ni43YzguNiAxLjcgMTcuNyAyLjggMjcuMSAyLjggOS40IDAgMTguNS0xLjEgMjcuMS0yLjhsLTEzLjMtNjYuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRW52aXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJjNDc3LjYgMCAzNjYuNiAzMTcuMyAzNjcuMSAzNjYuM0w0NDggNDgwaC0yNmwtNzAuNC03MS4yYy0zOSA0LjItMTI0LjQgMzQuNS0yMTQuNC0zN0M0NyAzMDAuMyA1MiAyMTQuNyAwIDMyem03OS43IDQ2Yy00OS43LTIzLjUtNS4yIDkuMi01LjIgOS4yIDQ1LjIgMzEuMiA2NiA3My43IDkwLjIgMTE5LjkgMzEuNSA2MC4yIDc5IDEzOS43IDE0NC4yIDE2Ny43IDY1IDI4IDM0LjIgMTIuNSA2LTguNS0yOC4yLTIxLjItNjguMi04Ny05MS0xMzAuMi0zMS43LTYwLTYxLTExOC42LTE0NC4yLTE1OC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFcmxhbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODcuMiA1My41SDB2NDA1aDEwMC40Yy00OS43LTUyLjYtNzguOC0xMjUuMy03OC43LTIxMi4xLS4xLTc2LjcgMjQtMTQyLjcgNjUuNS0xOTIuOXptMjM4LjIgOS43Yy00NS45LjEtODUuMSAzMy41LTg5LjIgODMuMmgxNjkuOWMtMS4xLTQ5LjctMzQuNS04My4xLTgwLjctODMuMnptMjMwLjctOS42aC4zbC0uMS0uMXptLjMgMGMzMS40IDQyLjcgNDguNyA5Ny41IDQ2LjIgMTYyLjcuNSA2IC41IDExLjcgMCAyNC4xSDIzMC4yYy0uMiAxMDkuNyAzOC45IDE5NC45IDEzOC42IDE5NS4zIDY4LjUtLjMgMTE4LTUxIDE1MS45LTEwNi4xbDk2LjQgNDguMmMtMTcuNCAzMC45LTM2LjUgNTcuOC01Ny45IDgwLjhINjQwdi00MDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV0aGVyZXVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMS45IDI2MC44TDE2MCAzNTMuNiA4IDI2MC44IDE2MCAwbDE1MS45IDI2MC44ek0xNjAgMzgzLjRMOCAyOTAuNiAxNjAgNTEybDE1Mi0yMjEuNC0xNTIgOTIuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXRzeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMzQ4Yy0xLjc1IDEwLjc1LTEzLjc1IDExMC0xNS41IDEzMi0xMTcuODc5LTQuMjk5LTIxOS44OTUtNC43NDMtMzY4LjUgMHYtMjUuNWM0NS40NTctOC45NDggNjAuNjI3LTguMDE5IDYxLTM1LjI1IDEuNzkzLTcyLjMyMiAzLjUyNC0yNDQuMTQzIDAtMzIyLTEuMDI5LTI4LjQ2LTEyLjEzLTI2Ljc2NS02MS0zNnYtMjUuNWM3My44ODYgMi4zNTggMjU1LjkzMyA4LjU1MSAzNjIuOTk5LTMuNzUtMy41IDM4LjI1LTcuNzUgMTI2LjUtNy43NSAxMjYuNUgzMzJDMzIwLjk0NyAxMTUuNjY1IDMxMy4yNDEgNjggMjc3LjI1IDY4aC0xMzdjLTEwLjI1IDAtMTAuNzUgMy41LTEwLjc1IDkuNzVWMjQxLjVjNTggLjUgODguNS0yLjUgODguNS0yLjUgMjkuNzctLjk1MSAyNy41Ni04LjUwMiA0MC43NS02NS4yNTFoMjUuNzVjLTQuNDA3IDEwMS4zNTEtMy45MSA2MS44MjktMS43NSAxNjAuMjVIMjU3Yy05LjE1NS00MC4wODYtOS4wNjUtNjEuMDQ1LTM5LjUwMS02MS41IDAgMC0yMS41LTItODgtMnYxMzljMCAyNiAxNC4yNSAzOC4yNSA0NC4yNSAzOC4yNUgyNjNjNjMuNjM2IDAgNjYuNTY0LTI0Ljk5NiA5OC43NTEtOTkuNzVIMzg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFdmVybm90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjAuODIgMTMyLjIxYzEuNiAyMi4zMS0xNy41NSAyMS41OS0yMS42MSAyMS41OS02OC45MyAwLTczLjY0LTEtODMuNTggMy4zNC0uNTYuMjItLjc0IDAtLjM3LS4zN0wxMjMuNzkgNDYuNDVjLjM4LS4zNy42LS4yMi4zOC4zNy00LjM1IDkuOTktMy4zNSAxNS4wOS0zLjM1IDg1LjM5em03OSAzMDhjLTE0LjY4LTM3LjA4IDEzLTc2LjkzIDUyLjUyLTc2LjYyIDE3LjQ5IDAgMjIuNiAyMy4yMSA3Ljk1IDMxLjQyLTYuMTkgMy4zLTI0Ljk1IDEuNzQtMjUuMTQgMTkuMi0uMDUgMTcuMDkgMTkuNjcgMjUgMzEuMiAyNC44OUE0NS42NCA0NS42NCAwIDAgMCAzMTIgMzkzLjQ1di0uMDhjMC0xMS42My03Ljc5LTQ3LjIyLTQ3LjU0LTU1LjM0LTcuNzItMS41NC02NS02LjM1LTY4LjM1LTUwLjUyLTMuNzQgMTYuOTMtMTcuNCA2My40OS00My4xMSA2OS4wOS04Ljc0IDEuOTQtNjkuNjggNy42NC0xMTIuOTItMzYuNzcgMCAwLTE4LjU3LTE1LjIzLTI4LjIzLTU3Ljk1LTMuMzgtMTUuNzUtOS4yOC0zOS43LTExLjE0LTYyIDAtMTggMTEuMTQtMzAuNDUgMjUuMDctMzIuMiA4MSAwIDkwIDIuMzIgMTAxLTcuOCA5LjgyLTkuMjQgNy44LTE1LjUgNy44LTEwMi43OCAxLTguMyA3Ljc5LTMwLjgxIDUzLjQxLTI0LjE0IDYgLjg2IDMxLjkxIDQuMTggMzcuNDggMzAuNjRsNjQuMjYgMTEuMTVjMjAuNDMgMy43MSA3MC45NCA3IDgwLjYgNTcuOTQgMjIuNjYgMTIxLjA5IDguOTEgMjM4LjQ2IDcuOCAyMzguNDZDMzYyLjE1IDQ4NS41MyAyNjcuMDYgNDgwIDI2Ny4wNiA0ODBjLTE4Ljk1LS4yMy01NC4yNS05LjQtNjcuMjctMzkuODN6bTgwLjk0LTIwNC44NGMtMSAxLjkyLTIuMiA2IC44NSA3IDE0LjA5IDQuOTMgMzkuNzUgNi44NCA0NS44OCA1LjUzIDMuMTEtLjI1IDMuMDUtNC40MyAyLjQ4LTYuNjUtMy41My0yMS44NS00MC44My0yNi41LTQ5LjI0LTUuOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV4cGVkaXRlZHNzbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggNDMuNEMxMzAuNiA0My40IDM1LjQgMTM4LjYgMzUuNCAyNTZTMTMwLjYgNDY4LjYgMjQ4IDQ2OC42IDQ2MC42IDM3My40IDQ2MC42IDI1NiAzNjUuNCA0My40IDI0OCA0My40em0tOTcuNCAxMzIuOWMwLTUzLjcgNDMuNy05Ny40IDk3LjQtOTcuNHM5Ny40IDQzLjcgOTcuNCA5Ny40djI2LjZjMCA1LTMuOSA4LjktOC45IDguOWgtMTcuN2MtNSAwLTguOS0zLjktOC45LTguOXYtMjYuNmMwLTgyLjEtMTI0LTgyLjEtMTI0IDB2MjYuNmMwIDUtMy45IDguOS04LjkgOC45aC0xNy43Yy01IDAtOC45LTMuOS04LjktOC45di0yNi42ek0zODkuNyAzODBjMCA5LjctOCAxNy43LTE3LjcgMTcuN0gxMjRjLTkuNyAwLTE3LjctOC0xNy43LTE3LjdWMjM4LjNjMC05LjcgOC0xNy43IDE3LjctMTcuN2gyNDhjOS43IDAgMTcuNyA4IDE3LjcgMTcuN1YzODB6bS0yNDgtMTM3LjN2MTMyLjljMCAyLjUtMS45IDQuNC00LjQgNC40aC04LjljLTIuNSAwLTQuNC0xLjktNC40LTQuNFYyNDIuN2MwLTIuNSAxLjktNC40IDQuNC00LjRoOC45YzIuNSAwIDQuNCAxLjkgNC40IDQuNHptMTQxLjcgNDguN2MwIDEzLTcuMiAyNC40LTE3LjcgMzAuNHYzMS42YzAgNS0zLjkgOC45LTguOSA4LjloLTE3LjdjLTUgMC04LjktMy45LTguOS04Ljl2LTMxLjZjLTEwLjUtNi4xLTE3LjctMTcuNC0xNy43LTMwLjQgMC0xOS43IDE1LjgtMzUuNCAzNS40LTM1LjRzMzUuNSAxNS44IDM1LjUgMzUuNHpNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NzguM0MxMjEgNDg2LjMgMTcuNyAzODMgMTcuNyAyNTZTMTIxIDI1LjcgMjQ4IDI1LjcgNDc4LjMgMTI5IDQ3OC4zIDI1NiAzNzUgNDg2LjMgMjQ4IDQ4Ni4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlYm9va0YgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc5LjE0IDI4OGwxNC4yMi05Mi42NmgtODguOTF2LTYwLjEzYzAtMjUuMzUgMTIuNDItNTAuMDYgNTIuMjQtNTAuMDZoNDAuNDJWNi4yNlMyNjAuNDMgMCAyMjUuMzYgMGMtNzMuMjIgMC0xMjEuMDggNDQuMzgtMTIxLjA4IDEyNC43MnY3MC42MkgyMi44OVYyODhoODEuMzl2MjI0aDEwMC4xN1YyODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2Vib29rTWVzc2VuZ2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1Ni41NSA4QzExNi41MiA4IDggMTEwLjM0IDggMjQ4LjU3YzAgNzIuMyAyOS43MSAxMzQuNzggNzguMDcgMTc3Ljk0IDguMzUgNy41MSA2LjYzIDExLjg2IDguMDUgNTguMjNBMTkuOTIgMTkuOTIgMCAwIDAgMTIyIDUwMi4zMWM1Mi45MS0yMy4zIDUzLjU5LTI1LjE0IDYyLjU2LTIyLjdDMzM3Ljg1IDUyMS44IDUwNCA0MjMuNyA1MDQgMjQ4LjU3IDUwNCAxMTAuMzQgMzk2LjU5IDggMjU2LjU1IDh6bTE0OS4yNCAxODUuMTNsLTczIDExNS41N2EzNy4zNyAzNy4zNyAwIDAgMS01My45MSA5LjkzbC01OC4wOC00My40N2ExNSAxNSAwIDAgMC0xOCAwbC03OC4zNyA1OS40NGMtMTAuNDYgNy45My0yNC4xNi00LjYtMTcuMTEtMTUuNjdsNzMtMTE1LjU3YTM3LjM2IDM3LjM2IDAgMCAxIDUzLjkxLTkuOTNsNTguMDYgNDMuNDZhMTUgMTUgMCAwIDAgMTggMGw3OC40MS01OS4zOGMxMC40NC03Ljk4IDI0LjE0IDQuNTQgMTcuMDkgMTUuNjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2Vib29rU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEE0OCA0OCAwIDAgMCAwIDgwdjM1MmE0OCA0OCAwIDAgMCA0OCA0OGgxMzcuMjVWMzI3LjY5aC02M1YyNTZoNjN2LTU0LjY0YzAtNjIuMTUgMzctOTYuNDggOTMuNjctOTYuNDggMjcuMTQgMCA1NS41MiA0Ljg0IDU1LjUyIDQuODR2NjFoLTMxLjI3Yy0zMC44MSAwLTQwLjQyIDE5LjEyLTQwLjQyIDM4LjczVjI1Nmg2OC43OGwtMTEgNzEuNjloLTU3Ljc4VjQ4MEg0MDBhNDggNDggMCAwIDAgNDgtNDhWODBhNDggNDggMCAwIDAtNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2Vib29rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNCAyNTZDNTA0IDExOSAzOTMgOCAyNTYgOFM4IDExOSA4IDI1NmMwIDEyMy43OCA5MC42OSAyMjYuMzggMjA5LjI1IDI0NVYzMjcuNjloLTYzVjI1Nmg2M3YtNTQuNjRjMC02Mi4xNSAzNy05Ni40OCA5My42Ny05Ni40OCAyNy4xNCAwIDU1LjUyIDQuODQgNTUuNTIgNC44NHY2MWgtMzEuMjhjLTMwLjggMC00MC40MSAxOS4xMi00MC40MSAzOC43M1YyNTZoNjguNzhsLTExIDcxLjY5aC01Ny43OFY1MDFDNDEzLjMxIDQ4Mi4zOCA1MDQgMzc5Ljc4IDUwNCAyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhbnRhc3lGbGlnaHRHYW1lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMzIuODZMMzIuODYgMjU2IDI1NiA0NzkuMTQgNDc5LjE0IDI1NiAyNTYgMzIuODZ6TTg4LjM0IDI1NS44M2MxLjk2LTIgMTEuOTItMTIuMyA5Ni40OS05Ny40OCA0MS40NS00MS43NSA4Ni4xOS00My43NyAxMTkuNzctMTguNjkgMjQuNjMgMTguNCA2Mi4wNiA1OC45IDYyLjE1IDU5IC42OC43NCAxLjA3IDIuODYuNTggMy4zOC0xMS4yNyAxMS44NC0yMi42OCAyMy41NC0zMy41IDM0LjY5LTM0LjIxLTMyLjMxLTQwLjUyLTM4LjI0LTQ4LjUxLTQzLjk1LTE3Ljc3LTEyLjY5LTQxLjQtMTAuMTMtNTYuOTggNS4xLTIuMTcgMi4xMy0xLjc5IDMuNDMuMTIgNS4zNSAyLjk0IDIuOTUgMjguMSAyOC4zMyAzNS4wOSAzNS43OC0xMS45NSAxMS42LTIzLjY2IDIyLjk3LTM1LjY5IDM0LjY2LTEyLjAyLTEyLjU0LTI0LjQ4LTI1LjUzLTM2LjU0LTM4LjExLTIxLjM5IDIxLjA5LTQxLjY5IDQxLjExLTYxLjg1IDYwLjk5YTQyNTY5LjAxIDQyNTY5LjAxIDAgMCAxLTQxLjEzLTQwLjcyem0yMzQuODIgMTAxLjZjLTM1LjQ5IDM1LjQzLTc4LjA5IDM4LjE0LTEwNi45OSAyMC40Ny0yMi4wOC0xMy41LTM5LjM4LTMyLjA4LTcyLjkzLTY2Ljg0IDEyLjA1LTEyLjM3IDIzLjc5LTI0LjQyIDM1LjM3LTM2LjMxIDMzLjAyIDMxLjkxIDM3LjA2IDM2LjAxIDQ0LjY4IDQyLjA5IDE4LjQ4IDE0Ljc0IDQyLjUyIDEzLjY3IDU5LjMyLTEuOCAzLjY4LTMuMzkgMy42OS0zLjY0LjE0LTcuMjQtMTAuNTktMTAuNzMtMjEuMTktMjEuNDQtMzEuNzctMzIuMTgtMS4zMi0xLjM0LTMuMDMtMi40OC0uOC00LjY5IDEwLjc5LTEwLjcxIDIxLjQ4LTIxLjUyIDMyLjIxLTMyLjI5LjI2LS4yNi42NS0uMzggMS45MS0xLjA3IDEyLjM3IDEyLjg3IDI0LjkyIDI1LjkyIDM3LjI1IDM4Ljc1IDIxLjAxLTIwLjczIDQxLjI0LTQwLjY4IDYxLjI1LTYwLjQyIDEzLjY4IDEzLjQgMjcuMTMgMjYuNTggNDAuODYgNDAuMDMtMjAuMTcgMjAuODYtODEuNjggODIuNzEtMTAwLjUgMTAxLjV6TTI1NiAwTDAgMjU2bDI1NiAyNTYgMjU2LTI1NkwyNTYgMHpNMTYgMjU2TDI1NiAxNmwyNDAgMjQwLTI0MCAyNDBMMTYgMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGZWRleCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01ODYgMjg0LjVsNTMuMy01OS45aC02Mi40bC0yMS43IDI0LjgtMjIuNS0yNC44SDQxNHYtMTZoNTYuMXYtNDguMUgzMTguOVYyMzZoLS41Yy05LjYtMTEtMjEuNS0xNC44LTM1LjQtMTQuOC0yOC40IDAtNDkuOCAxOS40LTU3LjMgNDQuOS0xOC01OS40LTk3LjQtNTcuNi0xMjEuOS0xNHYtMjQuMkg0OXYtMjYuMmg2MHYtNDEuMUgwVjM0NWg0OXYtNzcuNWg0OC45Yy0xLjUgNS43LTIuMyAxMS44LTIuMyAxOC4yIDAgNzMuMSAxMDIuNiA5MS40IDEzMC4yIDIzLjdoLTQyYy0xNC43IDIwLjktNDUuOCA4LjktNDUuOC0xNC42aDg1LjVjMy43IDMwLjUgMjcuNCA1Ni45IDYwLjEgNTYuOSAxNC4xIDAgMjctNi45IDM0LjktMTguNmguNVYzNDVoMjEyLjJsMjIuMS0yNSAyMi4zIDI1SDY0MGwtNTQtNjAuNXptLTQ0Ni43LTE2LjZjNi4xLTI2LjMgNDEuNy0yNS42IDQ2LjUgMGgtNDYuNXptMTUzLjQgNDguOWMtMzQuNiAwLTM0LTYyLjggMC02Mi44IDMyLjYgMCAzNC41IDYyLjggMCA2Mi44em0xNjcuOCAxOS4xaC05NC40VjE2OS40aDk1djMwLjJINDA1djMzLjloNTUuNXYyOC4xaC01Ni4xdjQ0LjdoNTYuMXYyOS42em0tNDUuOS0zOS44di0yNC40aDU2LjF2LTQ0bDUwLjcgNTctNTAuNyA1N3YtNDUuNmgtNTYuMXptMTM4LjYgMTAuM2wtMjYuMSAyOS41SDQ4OWw0NS42LTUxLjItNDUuNi01MS4yaDM5LjdsMjYuNiAyOS4zIDI1LjYtMjkuM2gzOC41bC00NS40IDUxIDQ2IDUxLjRoLTQwLjVsLTI2LjMtMjkuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmVkb3JhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNSAzMkMxMDEuMyAzMS43LjggMTMxLjcuNCAyNTUuNEwwIDQyNS43YTUzLjYgNTMuNiAwIDAgMCA1My42IDUzLjlsMTcwLjIuNGMxMjMuNy4zIDIyNC4zLTk5LjcgMjI0LjYtMjIzLjRTMzQ4LjcgMzIuMyAyMjUgMzJ6bTE2OS44IDE1Ny4yTDMzMyAxMjYuNmMyLjMtNC43IDMuOC05LjIgMy44LTE0LjN2LTEuNmw1NS4yIDU2LjFhMTAxIDEwMSAwIDAgMSAyLjggMjIuNHpNMzMxIDk0LjNhMTA2LjA2IDEwNi4wNiAwIDAgMSA1OC41IDYzLjhsLTU0LjMtNTQuNmEyNi40OCAyNi40OCAwIDAgMC00LjItOS4yek0xMTguMSAyNDcuMmE0OS42NiA0OS42NiAwIDAgMC03LjcgMTEuNGwtOC41LTguNWE4NS43OCA4NS43OCAwIDAgMSAxNi4yLTIuOXpNOTcgMjUxLjRsMTEuOCAxMS45LS45IDhhMzQuNzQgMzQuNzQgMCAwIDAgMi40IDEyLjVsLTI3LTI3LjJhODAuNiA4MC42IDAgMCAxIDEzLjctNS4yem0tMTguMiA3LjRsMzguMiAzOC40YTUzLjE3IDUzLjE3IDAgMCAwLTE0LjEgNC43TDY3LjYgMjY2YTEwNyAxMDcgMCAwIDEgMTEuMi03LjJ6bS0xNS4yIDkuOGwzNS4zIDM1LjVhNjcuMjUgNjcuMjUgMCAwIDAtMTAuNSA4LjVMNTMuNSAyNzhhNjQuMzMgNjQuMzMgMCAwIDEgMTAuMS05LjR6bS0xMy4zIDEyLjNsMzQuOSAzNWE1Ni44NCA1Ni44NCAwIDAgMC03LjcgMTEuNGwtMzUuOC0zNS45YzIuOC0zLjggNS43LTcuMiA4LjYtMTAuNXptLTExIDE0LjNsMzYuNCAzNi42YTQ4LjI5IDQ4LjI5IDAgMCAwLTMuNiAxNS4ybC0zOS41LTM5LjhhOTkuODEgOTkuODEgMCAwIDEgNi43LTEyem0tOC44IDE2LjNsNDEuMyA0MS44YTYzLjQ3IDYzLjQ3IDAgMCAwIDYuNyAyNi4yTDI1LjggMzI2YzEuNC00LjkgMi45LTkuNiA0LjctMTQuNXptLTcuOSA0M2w2MS45IDYyLjJhMzEuMjQgMzEuMjQgMCAwIDAtMy42IDE0LjN2MS4xbC01NS40LTU1LjdhODguMjcgODguMjcgMCAwIDEtMi45LTIxLjl6bTUuMyAzMC43bDU0LjMgNTQuNmEyOC40NCAyOC40NCAwIDAgMCA0LjIgOS4yIDEwNi4zMiAxMDYuMzIgMCAwIDEtNTguNS02My44em0tNS4zLTM3YTgwLjY5IDgwLjY5IDAgMCAxIDIuMS0xN2w3Mi4yIDcyLjVhMzcuNTkgMzcuNTkgMCAwIDAtOS45IDguN3ptMjUzLjMtNTEuOGwtNDIuNi0uMS0uMSA1NmMtLjIgNjkuMy02NC40IDExNS44LTEyNS43IDEwMi45LTUuNyAwLTE5LjktOC43LTE5LjktMjQuMmEyNC44OSAyNC44OSAwIDAgMSAyNC41LTI0LjZjNi4zIDAgNi4zIDEuNiAxNS43IDEuNmE1NS45MSA1NS45MSAwIDAgMCA1Ni4xLTU1LjlsLjEtNDdjMC00LjUtNC41LTktOC45LTlsLTMzLjYtLjFjLTMyLjYtLjEtMzIuNS00OS40LjEtNDkuM2w0Mi42LjEuMS01NmExMDUuMTggMTA1LjE4IDAgMCAxIDEwNS42LTEwNSA4Ni4zNSA4Ni4zNSAwIDAgMSAyMC4yIDIuM2MxMS4yIDEuOCAxOS45IDExLjkgMTkuOSAyNCAwIDE1LjUtMTQuOSAyNy44LTMwLjMgMjMuOS0yNy40LTUuOS02NS45IDE0LjQtNjYgNTQuOWwtLjEgNDdhOC45NCA4Ljk0IDAgMCAwIDguOSA5bDMzLjYuMWMzMi41LjIgMzIuNCA0OS41LS4yIDQ5LjR6bTIzLjUtLjNhMzUuNTggMzUuNTggMCAwIDAgNy42LTExLjRsOC41IDguNWExMDIgMTAyIDAgMCAxLTE2LjEgMi45em0yMS00LjJMMzA4LjYgMjgwbC45LTguMWEzNC43NCAzNC43NCAwIDAgMC0yLjQtMTIuNWwyNyAyNy4yYTc0Ljg5IDc0Ljg5IDAgMCAxLTEzLjcgNS4zem0xOC03LjRsLTM4LTM4LjRjNC45LTEuMSA5LjYtMi40IDEzLjctNC43bDM2LjIgMzUuOWMtMy44IDIuNS03LjkgNS0xMS45IDcuMnptMTUuNS05LjhsLTM1LjMtMzUuNWE2MS4wNiA2MS4wNiAwIDAgMCAxMC41LTguNWwzNC45IDM1YTEyNC41NiAxMjQuNTYgMCAwIDEtMTAuMSA5em0xMy4yLTEyLjNsLTM0LjktMzVhNjMuMTggNjMuMTggMCAwIDAgNy43LTExLjRsMzUuOCAzNS45YTEzMC4yOCAxMzAuMjggMCAwIDEtOC42IDEwLjV6bTExLTE0LjNsLTM2LjQtMzYuNmE0OC4yOSA0OC4yOSAwIDAgMCAzLjYtMTUuMmwzOS41IDM5LjhhODcuNzIgODcuNzIgMCAwIDEtNi43IDEyem0xMy41LTMwLjlhMTQwLjYzIDE0MC42MyAwIDAgMS00LjcgMTQuM0wzNDUuNiAxOTBhNTguMTkgNTguMTkgMCAwIDAtNy4xLTI2LjJ6bTEtNS42bC03MS45LTcyLjFhMzIgMzIgMCAwIDAgOS45LTkuMmw2NC4zIDY0LjdhOTAuOTMgOTAuOTMgMCAwIDEtMi4zIDE2LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpZ21hIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDk1Ljc5MjRDMTQgNDIuODg3NyA1Ni44ODc4IDAgMTA5Ljc5MyAwSDI3NC4xNjFDMzI3LjA2NiAwIDM2OS45NTQgNDIuODg3NyAzNjkuOTU0IDk1Ljc5MjRDMzY5Ljk1NCAxMjkuMjkyIDM1Mi43NTggMTU4Ljc3NiAzMjYuNzExIDE3NS44OTdDMzUyLjc1OCAxOTMuMDE5IDM2OS45NTQgMjIyLjUwMiAzNjkuOTU0IDI1Ni4wMDJDMzY5Ljk1NCAzMDguOTA3IDMyNy4wNjYgMzUxLjc5NSAyNzQuMTYxIDM1MS43OTVIMjcyLjA4MUMyNDcuMjc5IDM1MS43OTUgMjI0LjY3OCAzNDIuMzY5IDIwNy42NjYgMzI2LjkwNFY0MTUuMTY3QzIwNy42NjYgNDY4Ljc3NyAxNjMuNjU3IDUxMiAxMTAuMzA5IDUxMkM1Ny41MzYxIDUxMiAxNCA0NjkuMjQzIDE0IDQxNi4yMDdDMTQgMzgyLjcwOSAzMS4xOTQ1IDM1My4yMjcgNTcuMjM5MiAzMzYuMTA1QzMxLjE5NDUgMzE4Ljk4MyAxNCAyODkuNSAxNCAyNTYuMDAyQzE0IDIyMi41MDIgMzEuMTk2IDE5My4wMTkgNTcuMjQyNSAxNzUuODk3QzMxLjE5NiAxNTguNzc2IDE0IDEyOS4yOTIgMTQgOTUuNzkyNFpNMTc2LjI4OCAxOTEuNTg3SDEwOS43OTNDNzQuMjE3MiAxOTEuNTg3IDQ1LjM3NzggMjIwLjQyNyA0NS4zNzc4IDI1Ni4wMDJDNDUuMzc3OCAyOTEuNDQgNzMuOTk0OCAzMjAuMTk0IDEwOS4zODEgMzIwLjQxNkMxMDkuNTE4IDMyMC40MTUgMTA5LjY1NSAzMjAuNDE1IDEwOS43OTMgMzIwLjQxNUgxNzYuMjg4VjE5MS41ODdaTTIwNy42NjYgMjU2LjAwMkMyMDcuNjY2IDI5MS41NzcgMjM2LjUwNSAzMjAuNDE3IDI3Mi4wODEgMzIwLjQxN0gyNzQuMTYxQzMwOS43MzcgMzIwLjQxNyAzMzguNTc2IDI5MS41NzcgMzM4LjU3NiAyNTYuMDAyQzMzOC41NzYgMjIwLjQyNyAzMDkuNzM3IDE5MS41ODcgMjc0LjE2MSAxOTEuNTg3SDI3Mi4wODFDMjM2LjUwNSAxOTEuNTg3IDIwNy42NjYgMjIwLjQyNyAyMDcuNjY2IDI1Ni4wMDJaTTEwOS43OTMgMzUxLjc5NUMxMDkuNjU1IDM1MS43OTUgMTA5LjUxOCAzNTEuNzk0IDEwOS4zODEgMzUxLjc5NEM3My45OTQ4IDM1Mi4wMTUgNDUuMzc3OCAzODAuNzY5IDQ1LjM3NzggNDE2LjIwN0M0NS4zNzc4IDQ1MS42NTIgNzQuNjAyNSA0ODAuNjIyIDExMC4zMDkgNDgwLjYyMkMxNDYuNTkxIDQ4MC42MjIgMTc2LjI4OCA0NTEuMTg2IDE3Ni4yODggNDE1LjE2N1YzNTEuNzk1SDEwOS43OTNaTTEwOS43OTMgMzEuMzc3OEM3NC4yMTcyIDMxLjM3NzggNDUuMzc3OCA2MC4yMTczIDQ1LjM3NzggOTUuNzkyNEM0NS4zNzc4IDEzMS4zNjggNzQuMjE3MiAxNjAuMjA3IDEwOS43OTMgMTYwLjIwN0gxNzYuMjg4VjMxLjM3NzhIMTA5Ljc5M1pNMjA3LjY2NiAxNjAuMjA3SDI3NC4xNjFDMzA5LjczNyAxNjAuMjA3IDMzOC41NzYgMTMxLjM2OCAzMzguNTc2IDk1Ljc5MjRDMzM4LjU3NiA2MC4yMTczIDMwOS43MzcgMzEuMzc3OCAyNzQuMTYxIDMxLjM3NzhIMjA3LjY2NlYxNjAuMjA3WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaXJlZm94QnJvd3NlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODkuMzcsMTUyLjg2Wm0tNTguNzQtMjkuMzdDMTMwLjc5LDEyMy41LDEzMC43MSwxMjMuNSwxMzAuNjMsMTIzLjQ5Wm0zNTEuNDIsNDUuMzVjLTEwLjYxLTI1LjUtMzIuMDgtNTMtNDguOTQtNjEuNzMsMTMuNzIsMjYuODksMjEuNjcsNTMuODgsMjQuNyw3NCwwLDAsMCwuMTQuMDUuNDEtMjcuNTgtNjguNzUtNzQuMzUtOTYuNDctMTEyLjU1LTE1Ni44My0xLjkzLTMuMDUtMy44Ni02LjExLTUuNzQtOS4zMy0xLTEuNjUtMS44Ni0zLjM0LTIuNjktNS4wNUE0NC44OCw0NC44OCwwLDAsMSwzMzMuMjQuNjlhLjYzLjYzLDAsMCwwLS41NS0uNjYuOS45LDAsMCwwLS40NiwwbC0uMTIuMDctLjE4LjEuMS0uMTRjLTU0LjIzLDMxLjc3LTc2LjcyLDg3LjM4LTgyLjUsMTIyLjc4YTEzMCwxMzAsMCwwLDAtNDguMzMsMTIuMzMsNi4yNSw2LjI1LDAsMCwwLTMuMDksNy43NSw2LjEzLDYuMTMsMCwwLDAsNy43OSwzLjc5bC41Mi0uMjFhMTE3Ljg0LDExNy44NCwwLDAsMSw0Mi4xMS0xMWwxLjQyLS4xYzItLjEyLDQtLjIsNi0uMjJBMTIyLjYxLDEyMi42MSwwLDAsMSwyOTEsMTQwYy42Ny4yLDEuMzIuNDIsMiwuNjMsMS44OS41NywzLjc2LDEuMiw1LjYyLDEuODcsMS4zNi41LDIuNzEsMSw0LjA1LDEuNTgsMS4wOS40NCwyLjE4Ljg4LDMuMjUsMS4zNXEyLjUyLDEuMTMsNSwyLjM1Yy43NS4zNywxLjUuNzQsMi4yNSwxLjEzcTIuNCwxLjI2LDQuNzQsMi42MywxLjUxLjg3LDMsMS44YTEyNC44OSwxMjQuODksMCwwLDEsNDIuNjYsNDQuMTNjLTEzLTkuMTUtMzYuMzUtMTguMTktNTguODItMTQuMjgsODcuNzQsNDMuODYsNjQuMTgsMTk0LjktNTcuMzksMTg5LjJhMTA4LjQzLDEwOC40MywwLDAsMS0zMS43NC02LjEyYy0yLjQyLS45MS00LjgtMS44OS03LjE2LTIuOTMtMS4zOC0uNjMtMi43Ni0xLjI3LTQuMTItMkMxNzQuNSwzNDYsMTQ5LjksMzE2LjkyLDE0Ni44MywyODEuNTljMCwwLDExLjI1LTQxLjk1LDgwLjYyLTQxLjk1LDcuNSwwLDI4LjkzLTIwLjkyLDI5LjMzLTI3LS4wOS0yLTQyLjU0LTE4Ljg3LTU5LjA5LTM1LjE4LTguODUtOC43MS0xMy4wNS0xMi45MS0xNi43Ny0xNi4wNmE2OS41OCw2OS41OCwwLDAsMC02LjMxLTQuNzdBMTEzLjA1LDExMy4wNSwwLDAsMSwxNzMuOTIsOTdjLTI1LjA2LDExLjQxLTQ0LjU1LDI5LjQ1LTU4LjcxLDQ1LjM3aC0uMTJjLTkuNjctMTIuMjUtOS01Mi42NS04LjQzLTYxLjA4LS4xMi0uNTMtNy4yMiwzLjY4LTguMTUsNC4zMWExNzguNTQsMTc4LjU0LDAsMCwwLTIzLjg0LDIwLjQzQTIxNCwyMTQsMCwwLDAsNTEuOSwxMzMuMzZsMCwwYS4wOC4wOCwwLDAsMSwwLDAsMjA1Ljg0LDIwNS44NCwwLDAsMC0zMi43Myw3My45Yy0uMDYuMjctMi4zMywxMC4yMS00LDIyLjQ4cS0uNDIsMi44Ny0uNzgsNS43NGMtLjU3LDMuNjktMSw3LjcxLTEuNDQsMTQsMCwuMjQsMCwuNDgtLjA1LjcyLS4xOCwyLjcxLS4zNCw1LjQxLS40OSw4LjEyLDAsLjQxLDAsLjgyLDAsMS4yNCwwLDEzNC43LDEwOS4yMSwyNDMuODksMjQzLjkyLDI0My44OSwxMjAuNjQsMCwyMjAuODItODcuNTgsMjQwLjQzLTIwMi42Mi40MS0zLjEyLjc0LTYuMjYsMS4xMS05LjQxLDQuODUtNDEuODMtLjU0LTg1Ljc5LTE1LjgyLTEyMi41NVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlyZWZveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDMuNTIsMjQxLjQ4Yy0uMTItMS41Ni0uMjQtMy4xMi0uMjQtNC42OHYtLjEybC0uMzYtNC42OHYtLjEyYTI0NS44NiwyNDUuODYsMCwwLDAtNy4zMi00MS4xNWMwLS4xMiwwLS4xMi0uMTItLjI0bC0xLjA4LTRjLS4xMi0uMjQtLjEyLS40OC0uMjQtLjYtLjM2LTEuMi0uNzItMi41Mi0xLjA4LTMuNzItLjEyLS4yNC0uMTItLjYtLjI0LS44NC0uMzYtMS4yLS43Mi0yLjQtMS4wOC0zLjQ4LS4xMi0uMzYtLjI0LS42LS4zNi0xLS4zNi0xLjItLjcyLTIuMjgtMS4yLTMuNDhsLS4zNi0xLjA4Yy0uMzYtMS4wOC0uODQtMi4yOC0xLjItMy4zNmE4LjI3LDguMjcsMCwwLDAtLjM2LTFjLS40OC0xLjA4LS44NC0yLjI4LTEuMzItMy4zNi0uMTItLjI0LS4yNC0uNi0uMzYtLjg0LS40OC0xLjItMS0yLjI4LTEuNDQtMy40OCwwLS4xMi0uMTItLjI0LS4xMi0uMzYtMS41Ni0zLjg0LTMuMjQtNy42OC01LTExLjRsLS4zNi0uNzJjLS40OC0xLS44NC0xLjgtMS4zMi0yLjY0LS4yNC0uNDgtLjQ4LTEuMDgtLjcyLTEuNTYtLjM2LS44NC0uODQtMS41Ni0xLjItMi40LS4zNi0uNi0uNi0xLjItMS0xLjhzLS44NC0xLjQ0LTEuMi0yLjI4Yy0uMzYtLjYtLjcyLTEuMzItMS4wOC0xLjkycy0uODQtMS40NC0xLjItMi4xNmExOC4wNywxOC4wNywwLDAsMC0xLjItMmMtLjM2LS43Mi0uODQtMS4zMi0xLjItMnMtLjg0LTEuMzItMS4yLTItLjg0LTEuMzItMS4yLTEuOTItLjg0LTEuNDQtMS4zMi0yLjE2YTE1LjYzLDE1LjYzLDAsMCwwLTEuMi0xLjhMNDYzLjIsMTE5YTE1LjYzLDE1LjYzLDAsMCwwLTEuMi0xLjhjLS40OC0uNzItMS4wOC0xLjU2LTEuNTYtMi4yOC0uMzYtLjQ4LS43Mi0xLjA4LTEuMDgtMS41NmwtMS44LTIuNTJjLS4zNi0uNDgtLjYtLjg0LTEtMS4zMi0xLTEuMzItMS44LTIuNTItMi43Ni0zLjcyYTI0OC43NiwyNDguNzYsMCwwLDAtMjMuNTEtMjYuNjRBMTg2LjgyLDE4Ni44MiwwLDAsMCw0MTIsNjIuNDZjLTQtMy40OC04LjE2LTYuNzItMTIuNDgtOS44NGExNjIuNDksMTYyLjQ5LDAsMCwwLTI0LjYtMTUuMTJjLTIuNC0xLjMyLTQuOC0yLjUyLTcuMi0zLjcyYTI1NCwyNTQsMCwwLDAtNTUuNDMtMTkuNTZjLTEuOTItLjM2LTMuODQtLjg0LTUuNjQtMS4yaC0uMTJjLTEtLjEyLTEuOC0uMzYtMi43Ni0uNDhhMjM2LjM1LDIzNi4zNSwwLDAsMC0zOC00SDI1NS4xNGEyMzQuNjIsMjM0LjYyLDAsMCwwLTQ1LjQ4LDVjLTMzLjU5LDcuMDgtNjMuMjMsMjEuMjQtODIuOTEsMzktMS4wOCwxLTEuOTIsMS42OC0yLjQsMi4xNmwtLjQ4LjQ4SDEyNGwtLjEyLjEyLjEyLS4xMmEuMTIuMTIsMCwwLDAsLjEyLS4xMmwtLjEyLjEyYS40Mi40MiwwLDAsMSwuMjQtLjEyYzE0LjY0LTguNzYsMzQuOTItMTYsNDkuNDQtMTkuNTZsNS44OC0xLjQ0Yy4zNi0uMTIuODQtLjEyLDEuMi0uMjQsMS42OC0uMzYsMy4zNi0uNzIsNS4xNi0xLjA4LjI0LDAsLjYtLjEyLjg0LS4xMkMyNTAuOTQsMjAuOTQsMzE5LjM0LDQwLjE0LDM2Nyw4NS42MWExNzEuNDksMTcxLjQ5LDAsMCwxLDI2Ljg4LDMyLjc2YzMwLjM2LDQ5LjIsMjcuNDgsMTExLjExLDMuODQsMTQ3LjU5LTM0LjQ0LDUzLTExMS4zNSw3MS4yNy0xNTksMjQuODRhODQuMTksODQuMTksMCwwLDEtMjUuNTYtNTksNzQuMDUsNzQuMDUsMCwwLDEsNi4yNC0zMWMxLjY4LTMuODQsMTMuMDgtMjUuNjcsMTguMjQtMjQuNTktMTMuMDgtMi43Ni0zNy41NSwyLjY0LTU0LjcxLDI4LjE5LTE1LjM2LDIyLjkyLTE0LjUyLDU4LjItNSw4My4yOGExMzIuODUsMTMyLjg1LDAsMCwxLTEyLjEyLTM5LjI0Yy0xMi4yNC04Mi41NSw0My4zMS0xNTMsOTQuMzEtMTcwLjUxLTI3LjQ4LTI0LTk2LjQ3LTIyLjMxLTE0Ny43MSwxNS4zNi0yOS44OCwyMi01MS4yMyw1My4xNi02Mi41MSw5MC4zNiwxLjY4LTIwLjg4LDkuNi01Mi4wOCwyNS44LTgzLjg4LTE3LjE2LDguODgtMzksMzctNDkuOCw2Mi44OC0xNS42LDM3LjQzLTIxLDgyLjE5LTE2LjA4LDEyNC43OS4zNiwzLjI0LjcyLDYuMzYsMS4wOCw5LjYsMTkuOTIsMTE3LjExLDEyMiwyMDYuMzgsMjQ0Ljc4LDIwNi4zOEMzOTIuNzcsNTAzLjQyLDUwNCwzOTIuMTksNTA0LDI1NSw1MDMuODgsMjUwLjQ4LDUwMy43NiwyNDUuOTIsNTAzLjUyLDI0MS40OFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlyc3RPcmRlckFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEuMDMgOCAwIDExOS4wMyAwIDI1NnMxMTEuMDMgMjQ4IDI0OCAyNDggMjQ4LTExMS4wMyAyNDgtMjQ4UzM4NC45NyA4IDI0OCA4em0wIDQ4OC4yMUMxMTUuMzQgNDk2LjIxIDcuNzkgMzg4LjY2IDcuNzkgMjU2UzExNS4zNCAxNS43OSAyNDggMTUuNzkgNDg4LjIxIDEyMy4zNCA0ODguMjEgMjU2IDM4MC42NiA0OTYuMjEgMjQ4IDQ5Ni4yMXptMC00NTkuOTJDMTI2LjY2IDM2LjI5IDI4LjI5IDEzNC42NiAyOC4yOSAyNTZTMTI2LjY2IDQ3NS43MSAyNDggNDc1LjcxIDQ2Ny43MSAzNzcuMzQgNDY3LjcxIDI1NiAzNjkuMzQgMzYuMjkgMjQ4IDM2LjI5em0wIDQzMS4yMmMtMTE2LjgxIDAtMjExLjUxLTk0LjY5LTIxMS41MS0yMTEuNTFTMTMxLjE5IDQ0LjQ5IDI0OCA0NC40OSA0NTkuNTEgMTM5LjE5IDQ1OS41MSAyNTYgMzY0LjgxIDQ2Ny41MSAyNDggNDY3LjUxem0xODYuMjMtMTYyLjk4YTE5MS42MTMgMTkxLjYxMyAwIDAgMS0yMC4xMyA0OC42OWwtNzQuMTMtMzUuODggNjEuNDggNTQuODJhMTkzLjUxNSAxOTMuNTE1IDAgMCAxLTM3LjIgMzcuMjlsLTU0LjgtNjEuNTcgMzUuODggNzQuMjdhMTkwLjk0NCAxOTAuOTQ0IDAgMCAxLTQ4LjYzIDIwLjIzbC0yNy4yOS03OC40NyA0Ljc5IDgyLjkzYy04LjYxIDEuMTgtMTcuNCAxLjgtMjYuMzMgMS44cy0xNy43Mi0uNjItMjYuMzMtMS44bDQuNzYtODIuNDYtMjcuMTUgNzguMDNhMTkxLjM2NSAxOTEuMzY1IDAgMCAxLTQ4LjY1LTIwLjJsMzUuOTMtNzQuMzQtNTQuODcgNjEuNjRhMTkzLjg1IDE5My44NSAwIDAgMS0zNy4yMi0zNy4yOGw2MS41OS01NC45LTc0LjI2IDM1LjkzYTE5MS42MzggMTkxLjYzOCAwIDAgMS0yMC4xNC00OC42OWw3Ny44NC0yNy4xMS04Mi4yMyA0Ljc2Yy0xLjE2LTguNTctMS43OC0xNy4zMi0xLjc4LTI2LjIxIDAtOSAuNjMtMTcuODQgMS44Mi0yNi41MWw4Mi4zOCA0Ljc3LTc3Ljk0LTI3LjE2YTE5MS43MjYgMTkxLjcyNiAwIDAgMSAyMC4yMy00OC42N2w3NC4yMiAzNS45Mi02MS41Mi01NC44NmExOTMuODUgMTkzLjg1IDAgMCAxIDM3LjI4LTM3LjIybDU0Ljc2IDYxLjUzLTM1LjgzLTc0LjE3YTE5MS40OSAxOTEuNDkgMCAwIDEgNDguNjUtMjAuMTNsMjYuODcgNzcuMjUtNC43MS04MS42MWM4LjYxLTEuMTggMTcuMzktMS44IDI2LjMyLTEuOHMxNy43MS42MiAyNi4zMiAxLjhsLTQuNzQgODIuMTYgMjcuMDUtNzcuNzZjMTcuMjcgNC41IDMzLjYgMTEuMzUgNDguNjMgMjAuMTdsLTM1LjgyIDc0LjEyIDU0LjcyLTYxLjQ3YTE5My4xMyAxOTMuMTMgMCAwIDEgMzcuMjQgMzcuMjNsLTYxLjQ1IDU0Ljc3IDc0LjEyLTM1Ljg2YTE5MS41MTUgMTkxLjUxNSAwIDAgMSAyMC4yIDQ4LjY1bC03Ny44MSAyNy4xIDgyLjI0LTQuNzVjMS4xOSA4LjY2IDEuODIgMTcuNSAxLjgyIDI2LjQ5IDAgOC44OC0uNjEgMTcuNjMtMS43OCAyNi4xOWwtODIuMTItNC43NSA3Ny43MiAyNy4wOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlyc3RPcmRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi45IDIyOS4yYy4xLS4xLjItLjMuMy0uNCAwIC4xIDAgLjMtLjEuNGgtLjJ6TTIyNCA5Ni42Yy03LjEgMC0xNC42LjYtMjEuNCAxLjdsMy43IDY3LjQtMjItNjRjLTE0LjMgMy43LTI3LjcgOS40LTQwIDE2LjZsMjkuNCA2MS40LTQ1LjEtNTAuOWMtMTEuNCA4LjktMjEuNyAxOS4xLTMwLjYgMzAuOWw1MC42IDQ1LjQtNjEuMS0yOS43Yy03LjEgMTIuMy0xMi45IDI1LjctMTYuNiA0MGw2NC4zIDIyLjYtNjgtNGMtLjkgNy4xLTEuNCAxNC42LTEuNCAyMnMuNiAxNC42IDEuNCAyMS43bDY3LjctNC02NCAyMi42YzMuNyAxNC4zIDkuNCAyNy43IDE2LjYgNDAuM2w2MS4xLTI5LjdMOTcuNyAzNTJjOC45IDExLjcgMTkuMSAyMi4zIDMwLjkgMzAuOWw0NC45LTUwLjktMjkuNSA2MS40YzEyLjMgNy40IDI1LjcgMTMuMSA0MCAxNi45bDIyLjMtNjQuNi00IDY4YzcuMSAxLjEgMTQuNiAxLjcgMjEuNyAxLjcgNy40IDAgMTQuNi0uNiAyMS43LTEuN2wtNC02OC42IDIyLjYgNjUuMWMxNC4zLTQgMjcuNy05LjQgNDAtMTYuOUwyNzQuOSAzMzJsNDQuOSA1MC45YzExLjctOC45IDIyLTE5LjEgMzAuNi0zMC45bC01MC42LTQ1LjEgNjEuMSAyOS40YzcuMS0xMi4zIDEyLjktMjUuNyAxNi42LTQwLjNsLTY0LTIyLjMgNjcuNCA0YzEuMS03LjEgMS40LTE0LjMgMS40LTIxLjdzLS4zLTE0LjktMS40LTIybC02Ny43IDQgNjQtMjIuM2MtMy43LTE0LjMtOS4xLTI4LTE2LjYtNDAuM2wtNjAuOSAyOS43IDUwLjYtNDUuNGMtOC45LTExLjctMTkuMS0yMi0zMC42LTMwLjlsLTQ1LjEgNTAuOSAyOS40LTYxLjFjLTEyLjMtNy40LTI1LjctMTMuMS00MC0xNi45TDI0MS43IDE2Nmw0LTY3LjdjLTcuMS0xLjItMTQuMy0xLjctMjEuNy0xLjd6TTQ0My40IDEyOHYyNTZMMjI0IDUxMiA0LjYgMzg0VjEyOEwyMjQgMGwyMTkuNCAxMjh6bS0xNy4xIDEwLjNMMjI0IDIwLjkgMjEuNyAxMzguM3YyMzUuMUwyMjQgNDkxLjFsMjAyLjMtMTE3LjdWMTM4LjN6TTIyNCAzNy4xbDE4Ny43IDEwOS40djIxOC45TDIyNCA0NzQuOSAzNi4zIDM2NS40VjE0Ni42TDIyNCAzNy4xem0wIDUwLjljLTkyLjMgMC0xNjYuOSA3NS4xLTE2Ni45IDE2OCAwIDkyLjYgNzQuNiAxNjcuNyAxNjYuOSAxNjcuNyA5MiAwIDE2Ni45LTc1LjEgMTY2LjktMTY3LjcgMC05Mi45LTc0LjktMTY4LTE2Ni45LTE2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlyc3RkcmFmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMTkyaC02NHYxMjhIMTkydjEyOEgwdi0yNS42aDE2Ni40di0xMjhoMTI4di0xMjhIMzg0VjE5MnptLTI1LjYgMzguNHYxMjhoLTEyOHYxMjhINjRWNTEyaDE5MlYzODRoMTI4VjIzMC40aC0yNS42em0yNS42IDE5MmgtODkuNlY1MTJIMzIwdi02NGg2NHYtMjUuNnpNMCAwdjM4NGgxMjhWMjU2aDEyOFYxMjhoMTI4VjBIMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmxpY2tyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTE0NC41IDMxOWMtMzUuMSAwLTYzLjUtMjguNC02My41LTYzLjVzMjguNC02My41IDYzLjUtNjMuNSA2My41IDI4LjQgNjMuNSA2My41LTI4LjQgNjMuNS02My41IDYzLjV6bTE1OSAwYy0zNS4xIDAtNjMuNS0yOC40LTYzLjUtNjMuNXMyOC40LTYzLjUgNjMuNS02My41IDYzLjUgMjguNCA2My41IDYzLjUtMjguNCA2My41LTYzLjUgNjMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmxpcGJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJ2NDQ4aDQ0OFYzMkgwem0zNTguNCAxNzkuMmgtODkuNnY4OS42aC04OS42djg5LjZIODkuNlYxMjEuNmgyNjguOHY4OS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGbHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTk3LjggNDI3LjhjMTIuOSAxMS43IDMzLjcgMzMuMyAzMy4yIDUwLjcgMCAuOC0uMSAxLjYtLjEgMi41LTEuOCAxOS44LTE4LjggMzEuMS0zOS4xIDMxLTI1LS4xLTM5LjktMTYuOC0zOC43LTM1LjggMS0xNi4yIDIwLjUtMzYuNyAzMi40LTQ3LjYgMi4zLTIuMSAyLjctMi43IDUuNi0zLjYgMy40IDAgMy45LjMgNi43IDIuOHpNMzMxLjkgNjcuM2MtMTYuMy0yNS43LTM4LjYtNDAuNi02My4zLTUyLjFDMjQzLjEgNC41IDIxNC0uMiAxOTIgMGMtNDQuMSAwLTcxLjIgMTMuMi04MS4xIDE3LjNDNTcuMyA0NS4yIDI2LjUgODcuMiAyOCAxNTguNmM3LjEgODIuMiA5NyAxNzYgMTU1LjggMjMzLjggMS43IDEuNiA0LjUgNC41IDYuMiA1LjFsMy4zLjFjMi4xLS43IDEuOC0uNSAzLjUtMi4xIDUyLjMtNDkuMiAxNDAuNy0xNDUuOCAxNTUuOS0yMTUuNyA3LTM5LjIgMy4xLTcyLjUtMjAuOC0xMTIuNXpNMTg2LjggMzUxLjljLTI4LTUxLjEtNjUuMi0xMzAuNy02OS4zLTE4OS0zLjQtNDcuNSAxMS40LTEzMS4yIDY5LjMtMTM2Ljd2MzI1Ljd6TTMyOC43IDE4MGMtMTYuNCA1Ni44LTc3LjMgMTI4LTExOC45IDE3MC4zQzIzNy42IDI5OC40IDI3NSAyMTcgMjc3IDE1OC40YzEuNi00NS45LTkuOC0xMDUuOC00OC0xMzEuNCA4OC44IDE4LjMgMTE1LjUgOTguMSA5OS43IDE1M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9udEF3ZXNvbWVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QTQ4IDQ4IDAgMCAwIDAgODBWNDMyYTQ4IDQ4IDAgMCAwIDQ4IDQ4SDQwMGE0OCA0OCAwIDAgMCA0OC00OFY4MEE0OCA0OCAwIDAgMCA0MDAgMzJabTE2IDQwMGExNiAxNiAwIDAgMS0xNiAxNkg0OGExNiAxNiAwIDAgMS0xNi0xNlY4MEExNiAxNiAwIDAgMSA0OCA2NEg0MDBhMTYgMTYgMCAwIDEgMTYgMTZaTTIwMS42IDE1MmMtMjUuNCAwLTM3LjQgMTAuNC01Ny42IDE0LjRWMTYwYTE2IDE2IDAgMCAwLTMyIDBWMzUyYTE2IDE2IDAgMCAwIDMyIDBWMTk4LjRjMjAuMi00IDMyLjItMTQuNCA1Ny42LTE0LjQgMzEuNCAwIDQzLjIgMTYgNzQuNiAxNiAxMC4yIDAgMTcuOC0xLjQgMjcuOC00LjZ2OTZjLTEwIDMuMi0xNy42IDQuNi0yNy44IDQuNi0zMS40IDAtNDMuNC0xNi03NC42LTE2YTg1LjkgODUuOSAwIDAgMC0yNS42IDR2MzJhODAgODAgMCAwIDEgMjUuNi00YzMxLjQgMCA0My4yIDE2IDc0LjYgMTYgMTguNiAwIDI4LjItNC44IDU5LjgtMTZWMTUyYy0zMS42IDExLjItNDEuMiAxNi01OS44IDE2QzI0NC44IDE2OCAyMzIuOCAxNTIgMjAxLjYgMTUyWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb250QXdlc29tZUZsYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDQ4VjM4NGMtNjMgMjMtODIgMzItMTE5IDMyLTYzIDAtODctMzItMTUwLTMyLTIwIDAtMzYgNC01MSA4VjMyOGMxNS00IDMxLTggNTEtOCA2MyAwIDg3IDMyIDE1MCAzMiAyMCAwIDM1LTMgNTUtOVYxMzVjLTIwIDYtMzUgOS01NSA5LTYzIDAtODctMzItMTUwLTMyLTUxIDAtNzUgMjEtMTE1IDI5VjQ0OGEzMS42IDMxLjYgMCAwIDEtMzIgMzJBMzEuNiAzMS42IDAgMCAxIDAgNDQ4VjY0QTMxLjYgMzEuNiAwIDAgMSAzMiAzMiAzMS42IDMxLjYgMCAwIDEgNjQgNjRWNzdjNDAtOCA2NC0yOSAxMTUtMjkgNjMgMCA4NyAzMiAxNTAgMzJDMzY2IDgwIDM4NSA3MSA0NDggNDhaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvbnRBd2Vzb21lTG9nb0Z1bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM5OTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyMDkuNyAxNTYuNWMtNTcuOCAwLTEwMiA0My45LTEwMiA5OS4xIDAgNTYgNDQuNiA5OS4xIDEwMiA5OS4xIDU3LjQgMCAxMDItNDMuMSAxMDItOTkuMUMxMzExLjcgMjAwLjQgMTI2Ny41IDE1Ni41IDEyMDkuNyAxNTYuNVptMCAxNTIuN2MtMzUuMSAwLTUxLjgtMjcuNC01MS44LTUzLjIgMC0yNS44IDE2LjctNTMuMiA1MS44LTUzLjIgMzUuMSAwIDUxLjggMjcuOCA1MS44IDUzLjJDMTI2MS4xIDI4MS44IDEyNDQuOCAzMDkuMiAxMjA5LjcgMzA5LjJabTk2Mi4xLTEzNi4xYy00LjQtMTAuOS0xMi4zLTE2LjUtMjMuNS0xNi41cy0xOS4xIDUuNi0yMy41IDE2LjVsLTU5LjQgMTQ1LjhjLTcuMiAxNy43IDIuOCAyNy40IDQuNCAyOWEyNC42IDI0LjYgMCAwIDAgMTcuNSA2LjhjMTAuOCAwIDE4LjctNiAyMy4xLTE4LjFsNC0xMC4xaDY3LjdsNCAxMC4xYzQuOCAxMi4xIDEyLjMgMTguMSAyMy4xIDE4LjFhMjQuNiAyNC42IDAgMCAwIDE3LjUtNi44YzEwLTEwLjEgNi44LTIyLjYgNC40LTI5Wm0tNDMgMTEzLjYgMTkuMS01NiAxOS4xIDU2Wm0tNTc0LjUtMTMwLjFjLTE0LjMgMC0yNC43IDEwLjktMjQuNyAyNS40djc2LjVsLTY4LjUtODUuOGMtNC40LTUuNi0xMS42LTE2LjEtMjUuNS0xNi4xLTE5LjEgMC0yNC4zIDE3LjctMjQuMyAyNS40VjMyOS43YzAgMTQuMSAxMC40IDI1LjQgMjQuNyAyNS40IDE0LjMgMCAyNC43LTEwLjkgMjQuNy0yNS40VjI1Mi44bDY4LjkgODYuMmM0LjggNS42IDExLjYgMTYuMSAyNS41IDE2LjEgMTkuMSAwIDIzLjktMTcuMyAyMy45LTI1LjRWMTgxLjlDMTU3OSAxNjcuNCAxNTY4LjYgMTU2LjUgMTU1NC4zIDE1Ni41Wm0tNTU0LjEgMS42SDkxNi41Yy0xOS45IDAtMjUuMSAxNy4zLTI1LjEgMjUuNFYzMjguMWMwIDE5LjcgMTYuNyAyNS40IDI0LjcgMjUuNCA4IDAgMjQuNy01LjIgMjQuNy0yNS40VjI4NWg0NC42YzEyLjggMCAyMi43LTkuMyAyMi43LTIyLjYgMC0xNy43LTE1LjUtMjIuMS0yMi43LTIyLjFIOTQwLjhWMjAzLjZoNTkuNGMxMi44IDAgMjIuNy05LjMgMjIuNy0yMi42QzEwMjIuOSAxNjMgMTAwNy4zIDE1OC4xIDEwMDAuMiAxNTguMVptODE1LjEgMEgxNjkxLjdjLTcuMiAwLTIyLjcgNC40LTIyLjcgMjIuMiAwIDEzLjMgMTAgMjIuNiAyMi43IDIyLjZoMzdWMzI3LjdjMCAxNC4xIDEwLjQgMjUuNCAyNC43IDI1LjQgMTQuMyAwIDI0LjctMTAuOSAyNC43LTI1LjRWMjAyLjhoMzdjMTIuNyAwIDIyLjctOS4zIDIyLjctMjIuNkMxODM3LjkgMTYzIDE4MjIuNCAxNTguMSAxODE1LjIgMTU4LjFabTE3ODkuNS0xLjZjLTkuNiAwLTE3LjUgNi0yNS4xIDE4LjFsLTQ2LjYgNzYuMUwzNDg2LjQgMTc0LjZxLTEwLjgtMTguMS0yNS4xLTE4LjFjLTE5LjUgMC0yNC43IDE4LjEtMjQuNyAyNS44VjMyOS43YzAgMTQuMSAxMC40IDI1LjQgMjQuNyAyNS40czI0LjctMTAuOSAyNC43LTI1LjRWMjYyLjhMMzUxMC43IDMwMi43YzYuNCAxMC4xIDEzLjkgMTUuMyAyMi4zIDE1LjMgOC44IDAgMTUuOS01LjIgMjIuMy0xNS4zbDI0LjctMzkuOXY2Ni45YzAgMTQuMSAxMC4zIDI1LjQgMjQuNyAyNS40IDE0LjMgMCAyNC43LTEwLjkgMjQuNy0yNS40VjE4Mi4zQzM2MjkuNCAxNzQuMiAzNjI0LjYgMTU2LjUgMzYwNC43IDE1Ni41Wm0yNDguNiAxNDkuOGgtNjUuN1YyNzIuOWgzOS40YzExLjkgMCAyMS4xLTguOSAyMS4xLTIwLjkgMC0xMi4xLTkuMi0yMC45LTIxLjEtMjAuOWgtMzkuNFYyMDQuOGg2Mi4xYzEyLjggMCAyMi43LTkuMyAyMi43LTIyLjYgMC0xNy43LTE1LjYtMjIuMi0yMi43LTIyLjJoLTg2LjRjLTE5LjkgMC0yNS4xIDE3LjMtMjUuMSAyNS40VjMyNi41YzAgOC4xIDUuMiAyNS40IDI1LjEgMjUuNGg5MGMxMi44IDAgMjIuNy05LjMgMjIuNy0yMi42QzM4NzYgMzExLjIgMzg2MC41IDMwNi4zIDM4NTMuMyAzMDYuM1pNMzIzNSAxNTYuNWMtNTcuOCAwLTEwMiA0My45LTEwMiA5OS4xIDAgNTYgNDQuNiA5OS4xIDEwMiA5OS4xIDU3LjQgMCAxMDItNDMuMSAxMDItOTkuMUMzMzM3IDIwMC40IDMyOTIuOCAxNTYuNSAzMjM1IDE1Ni41Wm0wIDE1Mi43Yy0zNS4xIDAtNTEuOC0yNy40LTUxLjgtNTMuMiAwLTI1LjggMTYuNy01My4yIDUxLjgtNTMuMiAzNS4xIDAgNTEuOCAyNy44IDUxLjggNTMuMkMzMjg2LjggMjgxLjggMzI3MC4xIDMwOS4yIDMyMzUgMzA5LjJaTTI1NTAuMiAxNTYuNWMtMTEuMiAwLTE5LjEgNS42LTIzLjEgMTYuNWwtMzQuMyA5NC43LTMxLjUtOTIuMmMtNC40LTEyLjUtMTIuMy0xOC45LTI0LjMtMTguOS0xMS45IDAtMTkuOSA2LjQtMjQuMyAxOC45bC0zMS41IDkyLjItMzQuMy05NS41cS01LjQtMTUuNy0yMi43LTE1LjdjLTYuOCAwLTEyLjMgMi40LTE3LjUgNy4zLTUuMiA1LjItMTAuOCAxNC41LTQuOCAyOC42bDU1LjggMTQ1LjhjNCAxMS4zIDExLjYgMTYuOSAyMy4xIDE2LjlxMTYuNyAwIDIyLjctMTYuOWwzMy41LTkxLjggMzMuNSA5MS44cTYgMTYuOSAyMi43IDE2LjljMTEuMiAwIDE5LjEtNS42IDIzLjEtMTYuOWw1NS44LTE0NS44YzMuNi05LjMgNC40LTE5LjMtNC44LTI4LjZBMjMgMjMgMCAwIDAgMjU1MC4yIDE1Ni41Wm00NDQuMiA4MS0yMS45LTkuM2MtMTEuOS00LjgtMTYuMy04LjUtMTYuMy0xNS43cTAtMTIuMSAxNi43LTEyLjFjMTIuNyAwIDE5LjUgNy43IDI0LjMgMTAuOSA3LjIgNS4yIDE4LjMgNi44IDI3LjktMiAxMC44LTEwLjUgNi44LTIzLjggMS4yLTMwLjYtMTIuMy0xNC45LTMwLjMtMjIuMi01My44LTIyLjItMTkuMSAwLTM1LjEgNS4yLTQ3LjQgMTUuNy0xMi4zIDEwLjUtMTguNyAyNC4yLTE4LjcgNDEuMSAwIDI0LjIgMTUuOSA0My41IDQ3LjggNTcuNmwxOS41IDguOWMxNS45IDYuOCAxOS4xIDkuNyAxOS4xIDE3LjcgMCA5LjMtNi40IDE0LjEtMTkuNSAxNC4xLTE5LjEgMC0zNC43LTE0LjktMzYuMy0xNi4xLTEwLjgtNy4zLTIxLjUtMi0yNi4zIDIuOC02LjggNi40LTEyLjcgMjAuOSAzLjIgMzYuMiA2LjggNi40IDE1LjUgMTEuNyAyNi43IDE1LjNhOTQuNiA5NC42IDAgMCAwIDMyLjcgNS42YzE5LjkgMCAzNi43LTUuMiA0OS44LTE2LjEgMTMuMS0xMC45IDE5LjUtMjUuNCAxOS41LTQzLjVxMC0yMC41LTEyLTMzLjhDMzAyMi43IDI1My4yIDMwMTAuNyAyNDQuMyAyOTk0LjQgMjM3LjVabS0yMDYuNCA2OC45aC02NS43VjI3Mi45aDM5LjRjMTIgMCAyMS4xLTguOSAyMS4xLTIwLjkgMC0xMi4xLTkuMi0yMC45LTIxLjEtMjAuOWgtMzkuNFYyMDQuOGg2Mi4xYzEyLjggMCAyMi43LTkuMyAyMi43LTIyLjYgMC0xNy43LTE1LjUtMjIuMi0yMi43LTIyLjJoLTg2LjRjLTE5LjkgMC0yNS4xIDE3LjMtMjUuMSAyNS40VjMyNi41YzAgOC4xIDUuMiAyNS40IDI1LjEgMjUuNGg5MGMxMi43IDAgMjIuNy05LjMgMjIuNy0yMi42QzI4MTAuOCAzMTEuMiAyNzk1LjIgMzA2LjMgMjc4OCAzMDYuM1pNMTc4LjMgNDkuMWMtNTAuNSAwLTc0LjQgMjAuNy0xMTQuNiAyOC43VjY1QTMxLjggMzEuOCAwIDEgMCAwIDY1VjQ0N2EzMS44IDMxLjggMCAwIDAgNjMuNyAwVjE0MS40YzQwLjItOCA2NC4xLTI4LjcgMTE0LjYtMjguNyA2Mi41IDAgODYgMzEuOCAxNDguNCAzMS44IDIwLjMgMCAzNS40LTIuOCA1NS4zLTkuMnYxOTFjLTE5LjkgNi40LTM1IDkuMi01NS4zIDkuMi02Mi41IDAtODYuNC0zMS44LTE0OC40LTMxLjgtMjAuMyAwLTM2LjIgMy42LTUwLjkgOFYzNzUuNGExNTkuMSAxNTkuMSAwIDAgMSA1MC45LThjNjIuNSAwIDg2IDMxLjggMTQ4LjQgMzEuOCAzNyAwIDU2LjEtOS42IDExOS0zMS44VjQ5LjFDMzgyLjggNzEuNCAzNjMuNyA4MC45IDMyNi43IDgwLjkgMjY0LjIgODAuOSAyNDAuNCA0OS4xIDE3OC4zIDQ5LjFaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvbnRBd2Vzb21lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEE0OCA0OCAwIDAgMCAwIDgwVjQzMmE0OCA0OCAwIDAgMCA0OCA0OEg0MDBhNDggNDggMCAwIDAgNDgtNDhWODBBNDggNDggMCAwIDAgNDAwIDMyWk0zMzYgMzEyYy0zMS42IDExLjItNDEuMiAxNi01OS44IDE2LTMxLjQgMC00My4yLTE2LTc0LjYtMTZhODAgODAgMCAwIDAtMjUuNiA0VjI4NGE4NS45IDg1LjkgMCAwIDEgMjUuNi00YzMxLjIgMCA0My4yIDE2IDc0LjYgMTYgMTAuMiAwIDE3LjgtMS40IDI3LjgtNC42di05NmMtMTAgMy4yLTE3LjYgNC42LTI3LjggNC42LTMxLjQgMC00My4yLTE2LTc0LjYtMTYtMjUuNCAwLTM3LjQgMTAuNC01Ny42IDE0LjRWMzUyYTE2IDE2IDAgMCAxLTMyIDBWMTYwYTE2IDE2IDAgMCAxIDMyIDB2Ni40YzIwLjItNCAzMi4yLTE0LjQgNTcuNi0xNC40IDMxLjIgMCA0My4yIDE2IDc0LjYgMTYgMTguNiAwIDI4LjItNC44IDU5LjgtMTZaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvbnRpY29uc0ZpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExNC40IDIyNGg5Mi40bC0xNS4yIDUxLjJoLTc2LjRWNDMzYzAgOC0yLjggOS4yIDQuNCAxMGw1OS42IDUuNlY0ODNIMHYtMzUuMmwyOS4yLTIuOGM3LjItLjggOS4yLTMuMiA5LjItMTAuOFYyNzguNGMwLTMuMi00LTMuMi04LTMuMkgwVjIyNGgzOC40di0yOC44YzAtNjggMzYuNC05NiAxMDYtOTYgNDYuOCAwIDg4LjggMTEuMiA4OC44IDcyLjRsLTY5LjYgOC40Yy40LTI1LjYtNi0zMS42LTIyLjQtMzEuNi0yNS4yIDAtMjYgMTMuNi0yNiAzNy42djMyYzAgMy4yLTQuOCA2LS44IDZ6TTM4NCA0ODNIMjQzLjJ2LTM0LjRsMjgtMy42YzcuMi0uOCAxMC40LTIuNCAxMC40LTEwVjI4N2MwLTUuNi00LTkuMi05LjItMTAuOGwtMzMuMi04LjggOS4yLTQwLjRoMTEwdjIwOGMwIDgtMy42IDguOCA0IDEwbDIxLjYgMy42VjQ4M3ptLTMwLTM0Ny4ybDEyLjQgNDUuNi0xMCAxMC00Mi44LTIyLjgtNDIuOCAyMi44LTEwLTEwIDEyLjQtNDUuNi0zMC0zNi40IDQuOC0xMGgzOEwzMDcuMiA1MUgzMjBsMjEuMiAzOC40aDM4bDQuOCAxMy4yLTMwIDMzLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvbnRpY29ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMydjQ0OGg0NDhWMzJ6bTE4NyAxNDAuOWMtMTguNCAwLTE5IDkuOS0xOSAyNy40djIzLjNjMCAyLjQtMy41IDQuNC0uNiA0LjRoNjcuNGwtMTEuMSAzNy4zSDE2OHYxMTIuOWMwIDUuOC0yIDYuNyAzLjIgNy4zbDQzLjUgNC4xdjI1LjFIODRWMzg5bDIxLjMtMmM1LjItLjYgNi43LTIuMyA2LjctNy45VjI2Ny43YzAtMi4zLTIuOS0yLjMtNS44LTIuM0g4NFYyMjhoMjh2LTIxYzAtNDkuNiAyNi41LTcwIDc3LjMtNzAgMzQuMSAwIDY0LjcgOC4yIDY0LjcgNTIuOGwtNTAuNyA2LjFjLjMtMTguNy00LjQtMjMtMTYuMy0yM3ptNzQuMyAyNDEuOHYtMjUuMWwyMC40LTIuNmM1LjItLjYgNy42LTEuNyA3LjYtNy4zVjI3MS44YzAtNC4xLTIuOS02LjctNi43LTcuOWwtMjQuMi02LjQgNi43LTI5LjVoODAuMnYxNTEuN2MwIDUuOC0yLjYgNi40IDIuOSA3LjNsMTUuNyAyLjZ2MjUuMXptODAuOC0yNTUuNWw5IDMzLjItNy4zIDcuMy0zMS4yLTE2LjYtMzEuMiAxNi42LTcuMy03LjMgOS0zMy4yLTIxLjgtMjQuMiAzLjUtOS42aDI3LjdsMTUuNS0yOGg5LjNsMTUuNSAyOGgyNy43bDMuNSA5LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvcnRBd2Vzb21lQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOCAyMzcuNGgtMjIuMmMtMi4xIDAtMy43IDEuNi0zLjcgMy43djUxLjdjMCAyLjEgMS42IDMuNyAzLjcgMy43SDIwOGMyLjEgMCAzLjctMS42IDMuNy0zLjd2LTUxLjdjMC0yLjEtMS42LTMuNy0zLjctMy43em0xMTguMiAwSDMwNGMtMi4xIDAtMy43IDEuNi0zLjcgMy43djUxLjdjMCAyLjEgMS42IDMuNyAzLjcgMy43aDIyLjJjMi4xIDAgMy43LTEuNiAzLjctMy43di01MS43Yy0uMS0yLjEtMS43LTMuNy0zLjctMy43em0xMzItMTI1LjFjLTIuMy0zLjItNC42LTYuNC03LjEtOS41LTkuOC0xMi41LTIwLjgtMjQtMzIuOC0zNC40LTQuNS0zLjktOS4xLTcuNi0xMy45LTExLjItMS42LTEuMi0zLjItMi4zLTQuOC0zLjVDMzcyIDM0LjEgMzQwLjMgMjAgMzA2IDEzYy0xNi4yLTMuMy0zMi45LTUtNTAtNXMtMzMuOSAxLjctNTAgNWMtMzQuMyA3LjEtNjYgMjEuMi05My4zIDQwLjgtMS42IDEuMS0zLjIgMi4zLTQuOCAzLjUtNC44IDMuNi05LjQgNy4zLTEzLjkgMTEuMi0zIDIuNi01LjkgNS4zLTguOCA4cy01LjcgNS41LTguNCA4LjRjLTUuNSA1LjctMTAuNyAxMS44LTE1LjYgMTgtMi40IDMuMS00LjggNi4zLTcuMSA5LjVDMjUuMiAxNTMgOC4zIDIwMi41IDguMyAyNTZjMCAyIC4xIDQgLjEgNiAuMS43LjEgMS4zLjEgMiAuMSAxLjMuMSAyLjcuMiA0IDAgLjguMSAxLjUuMSAyLjMgMCAxLjMuMSAyLjUuMiAzLjcuMS44LjEgMS42LjIgMi40LjEgMS4xLjIgMi4zLjMgMy41IDAgLjguMSAxLjYuMiAyLjQuMSAxLjIuMyAyLjQuNCAzLjYuMS44LjIgMS41LjMgMi4zLjEgMS4zLjMgMi42LjUgMy45LjEuNi4yIDEuMy4zIDEuOWwuOSA1LjdjLjEuNi4yIDEuMS4zIDEuNy4zIDEuMy41IDIuNy44IDQgLjIuOC4zIDEuNi41IDIuNC4yIDEgLjUgMi4xLjcgMy4yLjIuOS40IDEuNy42IDIuNi4yIDEgLjQgMiAuNyAzIC4yLjkuNSAxLjguNyAyLjcuMyAxIC41IDEuOS44IDIuOS4zLjkuNSAxLjguOCAyLjcuMi45LjUgMS45LjggMi44cy41IDEuOC44IDIuN2MuMyAxIC42IDEuOS45IDIuOC42IDEuNiAxLjEgMy4zIDEuNyA0LjkuNCAxIC43IDEuOSAxIDIuOC4zIDEgLjcgMiAxLjEgMyAuMy44LjYgMS41LjkgMi4zbDEuMiAzYy4zLjcuNiAxLjUuOSAyLjIuNCAxIC45IDIgMS4zIDNsLjkgMi4xYy41IDEgLjkgMiAxLjQgMyAuMy43LjYgMS4zLjkgMiAuNSAxIDEgMi4xIDEuNSAzLjEuMi42LjUgMS4xLjggMS43LjYgMS4xIDEuMSAyLjIgMS43IDMuMy4xLjIuMi4zLjMuNSAyLjIgNC4xIDQuNCA4LjIgNi44IDEyLjIuMi40LjUuOC43IDEuMi43IDEuMSAxLjMgMi4yIDIgMy4zLjMuNS42LjkuOSAxLjQuNiAxLjEgMS4zIDIuMSAyIDMuMi4zLjUuNi45LjkgMS40LjcgMS4xIDEuNCAyLjEgMi4xIDMuMi4yLjQuNS44LjggMS4yLjcgMS4xIDEuNSAyLjIgMi4zIDMuMy4yLjIuMy41LjUuNyAzNy41IDUxLjcgOTQuNCA4OC41IDE2MCA5OS40LjkuMSAxLjcuMyAyLjYuNCAxIC4yIDIuMS40IDMuMS41czEuOS4zIDIuOC40YzEgLjIgMiAuMyAzIC40LjkuMSAxLjkuMiAyLjkuM3MxLjkuMiAyLjkuMyAyLjEuMiAzLjEuM2MuOS4xIDEuOC4xIDIuNy4yIDEuMS4xIDIuMy4xIDMuNC4yLjggMCAxLjcuMSAyLjUuMSAxLjMgMCAyLjYuMSAzLjkuMS43LjEgMS40LjEgMi4xLjEgMiAuMSA0IC4xIDYgLjFzNC0uMSA2LS4xYy43IDAgMS40LS4xIDIuMS0uMSAxLjMgMCAyLjYgMCAzLjktLjEuOCAwIDEuNy0uMSAyLjUtLjEgMS4xLS4xIDIuMy0uMSAzLjQtLjIuOSAwIDEuOC0uMSAyLjctLjIgMS0uMSAyLjEtLjIgMy4xLS4zczEuOS0uMiAyLjktLjNjLjktLjEgMS45LS4yIDIuOS0uM3MyLS4zIDMtLjQgMS45LS4zIDIuOC0uNGMxLS4yIDIuMS0uMyAzLjEtLjUuOS0uMSAxLjctLjMgMi42LS40IDY1LjYtMTEgMTIyLjUtNDcuNyAxNjAuMS0xMDIuNC4yLS4yLjMtLjUuNS0uNy44LTEuMSAxLjUtMi4yIDIuMy0zLjMuMi0uNC41LS44LjgtMS4yLjctMS4xIDEuNC0yLjEgMi4xLTMuMi4zLS41LjYtLjkuOS0xLjQuNi0xLjEgMS4zLTIuMSAyLTMuMi4zLS41LjYtLjkuOS0xLjQuNy0xLjEgMS4zLTIuMiAyLTMuMy4yLS40LjUtLjguNy0xLjIgMi40LTQgNC42LTguMSA2LjgtMTIuMi4xLS4yLjItLjMuMy0uNS42LTEuMSAxLjEtMi4yIDEuNy0zLjMuMi0uNi41LTEuMS44LTEuNy41LTEgMS0yLjEgMS41LTMuMS4zLS43LjYtMS4zLjktMiAuNS0xIDEtMiAxLjQtM2wuOS0yLjFjLjUtMSAuOS0yIDEuMy0zIC4zLS43LjYtMS41LjktMi4ybDEuMi0zYy4zLS44LjYtMS41LjktMi4zLjQtMSAuNy0yIDEuMS0zcy43LTEuOSAxLTIuOGMuNi0xLjYgMS4yLTMuMyAxLjctNC45LjMtMSAuNi0xLjkuOS0yLjhzLjUtMS44LjgtMi43Yy4yLS45LjUtMS45LjgtMi44cy42LTEuOC44LTIuN2MuMy0xIC41LTEuOS44LTIuOS4yLS45LjUtMS44LjctMi43LjItMSAuNS0yIC43LTMgLjItLjkuNC0xLjcuNi0yLjYuMi0xIC41LTIuMS43LTMuMi4yLS44LjMtMS42LjUtMi40LjMtMS4zLjYtMi43LjgtNCAuMS0uNi4yLTEuMS4zLTEuN2wuOS01LjdjLjEtLjYuMi0xLjMuMy0xLjkuMS0xLjMuMy0yLjYuNS0zLjkuMS0uOC4yLTEuNS4zLTIuMy4xLTEuMi4zLTIuNC40LTMuNiAwLS44LjEtMS42LjItMi40LjEtMS4xLjItMi4zLjMtMy41LjEtLjguMS0xLjYuMi0yLjQuMSAxLjcuMS41LjItLjcgMC0uOC4xLTEuNS4xLTIuMy4xLTEuMy4yLTIuNy4yLTQgLjEtLjcuMS0xLjMuMS0yIC4xLTIgLjEtNCAuMS02IDAtNTMuNS0xNi45LTEwMy00NS44LTE0My43ek00NDggMzcxLjVjLTkuNCAxNS41LTIwLjYgMjkuOS0zMy42IDQyLjktMjAuNiAyMC42LTQ0LjUgMzYuNy03MS4yIDQ4LTEzLjkgNS44LTI4LjIgMTAuMy00Mi45IDEzLjJ2LTc1LjhjMC01OC42LTg4LjYtNTguNi04OC42IDB2NzUuOGMtMTQuNy0yLjktMjktNy4zLTQyLjktMTMuMi0yNi43LTExLjMtNTAuNi0yNy40LTcxLjItNDgtMTMtMTMtMjQuMi0yNy40LTMzLjYtNDIuOXYtNzEuM2MwLTIuMSAxLjYtMy43IDMuNy0zLjdoMjIuMWMyLjEgMCAzLjcgMS42IDMuNyAzLjdWMzI2aDI5LjZWMTgyYzAtMi4xIDEuNi0zLjcgMy43LTMuN2gyMi4xYzIuMSAwIDMuNyAxLjYgMy43IDMuN3YyNS45aDI5LjVWMTgyYzAtMi4xIDEuNi0zLjcgMy43LTMuN0gyMDhjMi4xIDAgMy43IDEuNiAzLjcgMy43djI1LjloMjkuNVYxODJjMC00LjggNi41LTMuNyA5LjUtMy43Vjg4LjFjLTQuNC0yLTcuNC02LjctNy40LTExLjUgMC0xNi44IDI1LjQtMTYuOCAyNS40IDAgMCA0LjgtMyA5LjQtNy40IDExLjVWOTJjNi4zLTEuNCAxMi43LTIuMyAxOS4yLTIuMyA5LjQgMCAxOC40IDMuNSAyNi4zIDMuNSA3LjIgMCAxNS4yLTMuNSAxOS40LTMuNSAyLjEgMCAzLjcgMS42IDMuNyAzLjd2NDguNGMwIDUuNi0xOC43IDYuNS0yMi40IDYuNS04LjYgMC0xNi42LTMuNS0yNS40LTMuNS03IDAtMTQuMSAxLjItMjAuOCAyLjh2MzAuN2MzIDAgOS41LTEuMSA5LjUgMy43djI1LjloMjkuNVYxODJjMC0yLjEgMS42LTMuNyAzLjctMy43aDIyLjJjMi4xIDAgMy43IDEuNiAzLjcgMy43djI1LjloMjkuNVYxODJjMC0yLjEgMS42LTMuNyAzLjctMy43aDIyLjFjMi4xIDAgMy43IDEuNiAzLjcgMy43djE0NGgyOS41di0yNS44YzAtMi4xIDEuNi0zLjcgMy43LTMuN2gyMi4yYzIuMSAwIDMuNyAxLjYgMy43IDMuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9ydEF3ZXNvbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg5LjIgMjg3LjloLTI3LjRjLTIuNiAwLTQuNiAyLTQuNiA0LjZ2MzJoLTM2LjZWMTQ2LjJjMC0yLjYtMi00LjYtNC42LTQuNmgtMjcuNGMtMi42IDAtNC42IDItNC42IDQuNnYzMmgtMzYuNnYtMzJjMC0yLjYtMi00LjYtNC42LTQuNmgtMjcuNGMtMi42IDAtNC42IDItNC42IDQuNnYzMmgtMzYuNnYtMzJjMC02LTgtNC42LTExLjctNC42di0zOGM4LjMtMiAxNy4xLTMuNCAyNS43LTMuNCAxMC45IDAgMjAuOSA0LjMgMzEuNCA0LjMgNC42IDAgMjcuNy0xLjEgMjcuNy04di02MGMwLTIuNi0yLTQuNi00LjYtNC42LTUuMSAwLTE1LjEgNC4zLTI0IDQuMy05LjcgMC0yMC45LTQuMy0zMi42LTQuMy04IDAtMTYgMS4xLTIzLjcgMi45di00LjljNS40LTIuNiA5LjEtOC4zIDkuMS0xNC4zIDAtMjAuNy0zMS40LTIwLjgtMzEuNCAwIDAgNiAzLjcgMTEuNyA5LjEgMTQuM3YxMTEuN2MtMy43IDAtMTEuNy0xLjQtMTEuNyA0LjZ2MzJoLTM2LjZ2LTMyYzAtMi42LTItNC42LTQuNi00LjZoLTI3LjRjLTIuNiAwLTQuNiAyLTQuNiA0LjZ2MzJIMTI4di0zMmMwLTIuNi0yLTQuNi00LjYtNC42SDk2Yy0yLjYgMC00LjYgMi00LjYgNC42djE3OC4zSDU0Ljh2LTMyYzAtMi42LTItNC42LTQuNi00LjZIMjIuOGMtMi42IDAtNC42IDItNC42IDQuNlY1MTJoMTgyLjl2LTk2YzAtNzIuNiAxMDkuNy03Mi42IDEwOS43IDB2OTZoMTgyLjlWMjkyLjVjLjEtMi42LTEuOS00LjYtNC41LTQuNnptLTI4OC4xLTQuNWMwIDIuNi0yIDQuNi00LjYgNC42aC0yNy40Yy0yLjYgMC00LjYtMi00LjYtNC42di02NGMwLTIuNiAyLTQuNiA0LjYtNC42aDI3LjRjMi42IDAgNC42IDIgNC42IDQuNnY2NHptMTQ2LjQgMGMwIDIuNi0yIDQuNi00LjYgNC42aC0yNy40Yy0yLjYgMC00LjYtMi00LjYtNC42di02NGMwLTIuNiAyLTQuNiA0LjYtNC42aDI3LjRjMi42IDAgNC42IDIgNC42IDQuNnY2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9ydW1iZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS44IDMwOS43QzIgMjkyLjcgMCAyNzUuNSAwIDI1OC4zIDAgMTM1IDk5LjggMzUgMjIzLjEgMzVjMTYuNiAwIDMzLjMgMiA0OS4zIDUuNUMxNDkgODcuNSA1MS45IDE4NiA1LjggMzA5Ljd6bTM5Mi45LTE4OS4yQzM4NSAxMDMgMzY5IDg3LjggMzUwLjkgNzUuMmMtMTQ5LjYgNDQuMy0yNjYuMyAxNjIuMS0zMDkuNyAzMTIgMTIuNSAxOC4xIDI4IDM1LjYgNDUuMiA0OSA0My4xLTE1MS4zIDE2MS4yLTI3MS43IDMxMi4zLTMxNS43em0xNS44IDI1Mi43YzE1LjItMjUuMSAyNS40LTUzLjcgMjkuNS04Mi44LTc5LjQgNDIuOS0xNDUgMTEwLjYtMTg3LjYgMTkwLjMgMzAtNC40IDU4LjktMTUuMyA4NC42LTMxLjMgMzUgMTMuMSA3MC45IDI0LjMgMTA3IDMzLjYtOS4zLTM2LjUtMjAuNC03NC41LTMzLjUtMTA5Ljh6bTI5LjctMTQ1LjVjLTIuNi0xOS41LTcuOS0zOC43LTE1LjgtNTYuOEMyOTAuNSAyMTYuNyAxODIgMzI3LjUgMTM3LjEgNDY2YzE4LjEgNy42IDM3IDEyLjUgNTYuNiAxNS4yQzI0MCAzNjcuMSAzMzAuNSAyNzQuNCA0NDQuMiAyMjcuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm91cnNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzY4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjMuMSAzSDQ5LjlDMTIuNCAzIDAgMzEuMyAwIDQ5LjF2NDMzLjhjMCAyMC4zIDEyLjEgMjcuNyAxOC4yIDMwLjEgNi4yIDIuNSAyMi44IDQuNiAzMi45LTcuMUMxODAgMzU2LjUgMTgyLjIgMzU0IDE4Mi4yIDM1NGMzLjEtMy40IDMuNC0zLjEgNi44LTMuMWg4My40YzM1LjEgMCA0MC42LTI1LjIgNDQuMy0zOS43bDQ4LjYtMjQzQzM3My44IDI1LjggMzYzLjEgMyAzMjMuMSAzem0tMTYuMyA3My44bC0xMS40IDU5LjdjLTEuMiA2LjUtOS41IDEzLjItMTYuOSAxMy4ySDE3Mi4xYy0xMiAwLTIwLjYgOC4zLTIwLjYgMjAuM3YxM2MwIDEyIDguNiAyMC42IDIwLjYgMjAuNmg5MC40YzguMyAwIDE2LjYgOS4yIDE0LjggMTguMi0xLjggOC45LTEwLjUgNTMuOC0xMS40IDU4LjgtLjkgNC45LTYuOCAxMy41LTE2LjkgMTMuNWgtNzMuNWMtMTMuNSAwLTE3LjIgMS44LTI2LjUgMTIuNiAwIDAtOC45IDExLjQtODkuNSAxMDguMy0uOS45LTEuOC42LTEuOC0uM1Y3NS45YzAtNy43IDYuOC0xNi42IDE2LjYtMTYuNmgyMTljOC4yIDAgMTUuNiA3LjcgMTMuNSAxNy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGcmVlQ29kZUNhbXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTcuMjIsOTYuMjFjMTAuMzYtMTAuNjUsMTYtMTcuMTIsMTYtMjEuOSwwLTIuNzYtMS45Mi01LjUxLTMuODMtNy40MkExNC44MSwxNC44MSwwLDAsMCwxMDEsNjQuMDVjLTguNDgsMC0yMC45Miw4Ljc5LTM1Ljg0LDI1LjY5QzIzLjY4LDEzNywyLjUxLDE4Mi44MSwzLjM3LDI1MC4zNHMxNy40NywxMTcsNTQuMDYsMTYxLjg3Qzc2LjIyLDQzNS44Niw5MC42Miw0NDgsMTAwLjksNDQ4YTEzLjU1LDEzLjU1LDAsMCwwLDguMzctMy44NGMxLjkxLTIuNzYsMy44MS01LjYzLDMuODEtOC4zOCwwLTUuNjMtMy44Ni0xMi4yLTEzLjItMjAuNTUtNDQuNDUtNDIuMzMtNjcuMzItOTctNjcuNDgtMTY1QzMyLjI1LDE4OC44LDU0LDEzNy44Myw5Ny4yMiw5Ni4yMVpNMjM5LjQ3LDQyMC4wN2MuNTguMzcuOTEuNTUuOTEuNTVabTkzLjc5LjU1LjE3LS4xM0MzMzMuMjQsNDIwLjYyLDMzMy4xNyw0MjAuNjcsMzMzLjI2LDQyMC42MlptMy4xMy0xNTguMThjLTE2LjI0LTQuMTUsNTAuNDEtODIuODktNjguMDUtMTc3LjE3LDAsMCwxNS41NCw0OS4zOC02Mi44MywxNTkuNTctNzQuMjcsMTA0LjM1LDIzLjQ2LDE2OC43MywzNCwxNzUuMjMtNi43My00LjM1LTQ3LjQtMzUuNyw5LjU1LTEyOC42NCwxMS0xOC4zLDI1LjUzLTM0Ljg3LDQzLjUtNzIuMTYsMCwwLDE1LjkxLDIyLjQ1LDcuNiw3MS4xM0MyODcuNywzNjQsMzU0LDM0Mi45MSwzNTUsMzQzLjk0YzIyLjc1LDI2Ljc4LTE3LjcyLDczLjUxLTIxLjU4LDc2LjU1LDUuNDktMy42NSwxMTcuNzEtNzgsMzMtMTg4LjFDMzYwLjQzLDIzOC40LDM1Mi42MiwyNjYuNTksMzM2LjM5LDI2Mi40NFpNNTEwLjg4LDg5LjY5QzQ5Niw3Mi43OSw0ODMuNTIsNjQsNDc1LDY0YTE0LjgxLDE0LjgxLDAsMCwwLTguMzksMi44NGMtMS45MSwxLjkxLTMuODMsNC42Ni0zLjgzLDcuNDIsMCw0Ljc4LDUuNiwxMS4yNiwxNiwyMS45LDQzLjIzLDQxLjYxLDY1LDkyLjU5LDY0LjgyLDE1NC4wNi0uMTYsNjgtMjMsMTIyLjYzLTY3LjQ4LDE2NS05LjM0LDguMzUtMTMuMTgsMTQuOTItMTMuMiwyMC41NSwwLDIuNzUsMS45LDUuNjIsMy44MSw4LjM4QTEzLjYxLDEzLjYxLDAsMCwwLDQ3NS4xLDQ0OGMxMC4yOCwwLDI0LjY4LTEyLjEzLDQzLjQ3LTM1Ljc5LDM2LjU5LTQ0Ljg1LDUzLjE0LTk0LjM4LDU0LjA2LTE2MS44N1M1NTIuMzIsMTM3LDUxMC44OCw4OS42OVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRnJlZWJzZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDMuNyA5Ni4yYzExLjEtMTEuMSAxMTUuNS03NyAxMzkuMi01My4yIDIzLjcgMjMuNy00Mi4xIDEyOC4xLTUzLjIgMTM5LjItMTEuMSAxMS4xLTM5LjQuOS02My4xLTIyLjktMjMuOC0yMy43LTM0LjEtNTItMjIuOS02My4xek0xMDkuOSA2OC4xQzczLjYgNDcuNSAyMiAyNC42IDUuNiA0MS4xYy0xNi42IDE2LjYgNy4xIDY5LjQgMjcuOSAxMDUuNyAxOC41LTMyLjIgNDQuOC01OS4zIDc2LjQtNzguN3pNNDA2LjcgMTc0YzMuMyAxMS4zIDIuNyAyMC43LTIuNyAyNi4xLTIwLjMgMjAuMy04Ny41LTI3LTEwOS4zLTcwLjEtMTgtMzIuMy0xMS4xLTUzLjQgMTQuOS00OC43IDUuNy0zLjYgMTIuMy03LjYgMTkuNi0xMS42LTI5LjgtMTUuNS02My42LTI0LjMtOTkuNS0yNC4zLTExOS4xIDAtMjE1LjYgOTYuNS0yMTUuNiAyMTUuNiAwIDExOSA5Ni41IDIxNS42IDIxNS42IDIxNS42UzQ0NS4zIDM4MC4xIDQ0NS4zIDI2MWMwLTM4LjQtMTAuMS03NC41LTI3LjctMTA1LjgtMy45IDctNy42IDEzLjMtMTAuOSAxOC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGdWxjcnVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk1Ljc1IDE2NC4xNGwtMzUuMzggNDMuNTVMMjUgMTY0LjE0bDM1LjM4LTQzLjU1ek0xNDQuMjMgMGwtMjAuNTQgMTk4LjE4TDcyLjcyIDI1Nmw1MSA1Ny44MkwxNDQuMjMgNTEyVjMwMC44OUwxMDMuMTUgMjU2bDQxLjA4LTQ0Ljg5em03OS42NyAxNjQuMTRsMzUuMzggNDMuNTUgMzUuMzgtNDMuNTUtMzUuMzgtNDMuNTV6bS00OC40OCA0N0wyMTYuNSAyNTZsLTQxLjA4IDQ0Ljg5VjUxMkwxOTYgMzEzLjgyIDI0NyAyNTZsLTUxLTU3LjgyTDE3NS40MiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHYWxhY3RpY1JlcHVibGljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA1MDRDMTExLjI1IDUwNCAwIDM5Mi43NSAwIDI1NlMxMTEuMjUgOCAyNDggOHMyNDggMTExLjI1IDI0OCAyNDgtMTExLjI1IDI0OC0yNDggMjQ4em0wLTQ3OS40N0MxMjAuMzcgMjQuNTMgMTYuNTMgMTI4LjM3IDE2LjUzIDI1NlMxMjAuMzcgNDg3LjQ3IDI0OCA0ODcuNDcgNDc5LjQ3IDM4My42MyA0NzkuNDcgMjU2IDM3NS42MyAyNC41MyAyNDggMjQuNTN6bTI3LjYyIDIxLjgxdjI0LjYyYTE4NS45MzMgMTg1LjkzMyAwIDAgMSA4My41NyAzNC41NGwxNy4zOS0xNy4zNmMtMjguNzUtMjIuMDYtNjMuMy0zNi44OS0xMDAuOTYtNDEuOHptLTU1LjM3LjA3Yy0zNy42NCA0Ljk0LTcyLjE2IDE5LjgtMTAwLjg4IDQxLjg1bDE3LjI4IDE3LjM2aC4wOGMyNC4wNy0xNy44NCA1Mi41NS0zMC4wNiA4My41Mi0zNC42N1Y0Ni40MXptMTIuMjUgNTAuMTd2ODIuODdjLTEwLjA0IDIuMDMtMTkuNDIgNS45NC0yNy42NyAxMS40MmwtNTguNjItNTguNTktMjEuOTMgMjEuOTMgNTguNjcgNTguNjdjLTUuNDcgOC4yMy05LjQ1IDE3LjU5LTExLjQ3IDI3LjYyaC04Mi45djMxaDgyLjljMi4wMiAxMC4wMiA2LjAxIDE5LjMxIDExLjQ3IDI3LjU0bC01OC42NyA1OC42OSAyMS45MyAyMS45MyA1OC42Mi01OC42MmE3Ny44NzMgNzcuODczIDAgMCAwIDI3LjY3IDExLjQ3djgyLjloMzF2LTgyLjljMTAuMDUtMi4wMyAxOS4zNy02LjA2IDI3LjYyLTExLjU1bDU4LjY3IDU4LjY5IDIxLjkzLTIxLjkzLTU4LjY3LTU4LjY5YzUuNDYtOC4yMyA5LjQ3LTE3LjUyIDExLjUtMjcuNTRoODIuODd2LTMxaC04Mi44N2MtMi4wMi0xMC4wMi02LjAzLTE5LjM4LTExLjUtMjcuNjJsNTguNjctNTguNjctMjEuOTMtMjEuOTMtNTguNjcgNTguNjdjLTguMjUtNS40OS0xNy41Ny05LjQ3LTI3LjYyLTExLjVWOTYuNThoLTMxem0xODMuMjQgMzAuNzJsLTE3LjM2IDE3LjM2YTE4Ni4zMzcgMTg2LjMzNyAwIDAgMSAzNC42NyA4My42N2gyNC42MmMtNC45NS0zNy42OS0xOS44My03Mi4yOS00MS45My0xMDEuMDN6bS0zMzUuNTUuMTNjLTIyLjA2IDI4LjcyLTM2LjkxIDYzLjI2LTQxLjg1IDEwMC45MWgyNC42NWM0LjYtMzAuOTYgMTYuNzYtNTkuNDUgMzQuNTktODMuNTJsLTE3LjM5LTE3LjM5ek0zOC4zNCAyODMuNjdjNC45MiAzNy42NCAxOS43NSA3Mi4xOCA0MS44IDEwMC45bDE3LjM2LTE3LjM5Yy0xNy44MS0yNC4wNy0yOS45Mi01Mi41Ny0zNC41MS04My41MkgzOC4zNHptMzk0LjcgMGMtNC42MSAzMC45OS0xNi44IDU5LjUtMzQuNjcgODMuNmwxNy4zNiAxNy4zNmMyMi4wOC0yOC43NCAzNi45OC02My4yOSA0MS45My0xMDAuOTZoLTI0LjYyek0xMzYuNjYgNDA2LjM4bC0xNy4zNiAxNy4zNmMyOC43MyAyMi4wOSA2My4zIDM2Ljk4IDEwMC45NiA0MS45M3YtMjQuNjRjLTMwLjk5LTQuNjMtNTkuNTMtMTYuNzktODMuNi0zNC42NXptMjIyLjUzLjA1Yy0yNC4wOSAxNy44NC01Mi41OCAzMC4wOC04My41NyAzNC42N3YyNC41N2MzNy42Ny00LjkyIDcyLjIxLTE5Ljc5IDEwMC45Ni00MS44NWwtMTcuMzEtMTcuMzloLS4wOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2FsYWN0aWNTZW5hdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ5Ljg2IDMzLjQ4djI2LjA3QzIzNi4yOCA4MC4xNyAyMjYgMTY4LjE0IDIyNS4zOSAyNzQuOWMxMS43NC0xNS42MiAxOS4xMy0zMy4zMyAxOS4xMy00OC4yNHYtMTYuODhjLS4wMy01LjMyLjc1LTEwLjUzIDIuMTktMTUuNjUuNjUtMi4xNCAxLjM5LTQuMDggMi42Mi01LjgyIDEuMjMtMS43NSAzLjQzLTMuNzkgNi42OC0zLjc5IDMuMjQgMCA1LjQ1IDIuMDUgNi42OCAzLjc5IDEuMjMgMS43NSAxLjk3IDMuNjggMi42MiA1LjgyIDEuNDQgNS4xMiAyLjIyIDEwLjMzIDIuMTkgMTUuNjV2MTYuODhjMCAxNC45MSA3LjM5IDMyLjYyIDE5LjEzIDQ4LjI0LS42My0xMDYuNzYtMTAuOTEtMTk0LjczLTI0LjQ5LTIxNS4zNVYzMy40OGgtMTIuMjh6bS0yNi4zNCAxNDcuNzdjLTkuNTIgMi4xNS0xOC43IDUuMTktMjcuNDYgOS4wOCA4LjkgMTYuMTIgOS43NiAzMi42NCAxLjcxIDM3LjI5LTggNC42Mi0yMS44NS00LjIzLTMxLjM2LTE5LjgyLTExLjU4IDguNzktMjEuODggMTkuMzItMzAuNTYgMzEuMDkgMTQuNzMgOS42MiAyMi44OSAyMi45MiAxOC4zMiAzMC42Ni00LjU0IDcuNy0yMC4wMyA3LjE0LTM1LjQ3LS45Ni01Ljc4IDEzLjI1LTkuNzUgMjcuNTEtMTEuNjUgNDIuNDIgOS42OC4xOCAxOC42NyAyLjM4IDI2LjE4IDYuMDQgMTcuNzgtLjMgMzIuNzctMS45NiA0MC40OS00LjIyIDUuNTUtMjYuMzUgMjMuMDItNDguMjMgNDYuMzItNTkuNTEuNzMtMjUuNTUgMS44OC00OS42NyAzLjQ4LTcyLjA3em02NC45NiAwYzEuNTkgMjIuNCAyLjc1IDQ2LjUyIDMuNDcgNzIuMDcgMjMuMjkgMTEuMjggNDAuNzcgMzMuMTYgNDYuMzIgNTkuNTEgNy43MiAyLjI2IDIyLjcxIDMuOTIgNDAuNDkgNC4yMiA3LjUxLTMuNjYgMTYuNS01Ljg1IDI2LjE4LTYuMDQtMS45LTE0LjkxLTUuODYtMjkuMTctMTEuNjUtNDIuNDItMTUuNDQgOC4xLTMwLjkzIDguNjYtMzUuNDcuOTYtNC41Ny03Ljc0IDMuNi0yMS4wNSAxOC4zMi0zMC42Ni04LjY4LTExLjc3LTE4Ljk4LTIyLjMtMzAuNTYtMzEuMDktOS41MSAxNS41OS0yMy4zNiAyNC40NC0zMS4zNiAxOS44Mi04LjA1LTQuNjUtNy4xOS0yMS4xNiAxLjcxLTM3LjI5YTE0Ny40OSAxNDcuNDkgMCAwIDAtMjcuNDUtOS4wOHptLTMyLjQ4IDguNmMtMy4yMyAwLTUuODYgOC44MS02LjA5IDE5LjkzaC0uMDV2MTYuODhjMCA0MS40Mi00OS4wMSA5NS4wNC05My40OSA5NS4wNC01MiAwLTEyMi43NS0xLjQ1LTE1Ni4zNyAyOS4xN3YyLjUxYzkuNDIgMTcuMTIgMjAuNTggMzMuMTcgMzMuMTggNDcuOTdDNDUuNyAzODAuMjYgODQuNzcgMzYwLjQgMTQxLjIgMzYwYzQ1LjY4IDEuMDIgNzkuMDMgMjAuMzMgOTAuNzYgNDAuODcuMDEuMDEtLjAxLjA0IDAgLjA1IDcuNjcgMi4xNCAxNS44NSAzLjIzIDI0LjA0IDMuMjEgOC4xOS4wMiAxNi4zNy0xLjA3IDI0LjA0LTMuMjEuMDEtLjAxLS4wMS0uMDQgMC0uMDUgMTEuNzQtMjAuNTQgNDUuMDgtMzkuODUgOTAuNzYtNDAuODcgNTYuNDMuMzkgOTUuNDkgMjAuMjYgMTA4LjAyIDQxLjM1IDEyLjYtMTQuOCAyMy43Ni0zMC44NiAzMy4xOC00Ny45N3YtMi41MWMtMzMuNjEtMzAuNjItMTA0LjM3LTI5LjE3LTE1Ni4zNy0yOS4xNy00NC40OCAwLTkzLjQ5LTUzLjYyLTkzLjQ5LTk1LjA0di0xNi44OGgtLjA1Yy0uMjMtMTEuMTItMi44Ni0xOS45My02LjA5LTE5Ljkzem0wIDk2LjU5YzIyLjQyIDAgNDAuNiAxOC4xOCA0MC42IDQwLjZzLTE4LjE4IDQwLjY1LTQwLjYgNDAuNjUtNDAuNi0xOC4yMy00MC42LTQwLjY1YzAtMjIuNDIgMTguMTgtNDAuNiA0MC42LTQwLjZ6bTAgNy42NGMtMTguMTkgMC0zMi45NiAxNC43Ny0zMi45NiAzMi45NlMyMzcuODEgMzYwIDI1NiAzNjBzMzIuOTYtMTQuNzcgMzIuOTYtMzIuOTYtMTQuNzctMzIuOTYtMzIuOTYtMzIuOTZ6bTAgNi4xNGMxNC44MSAwIDI2LjgyIDEyLjAxIDI2LjgyIDI2Ljgycy0xMi4wMSAyNi44Mi0yNi44MiAyNi44Mi0yNi44Mi0xMi4wMS0yNi44Mi0yNi44MiAxMi4wMS0yNi44MiAyNi44Mi0yNi44MnptLTExNC44IDY2LjY3Yy0xMC4xOS4wNy0yMS42LjM2LTMwLjUgMS42Ni40MyA0LjQyIDEuNTEgMTguNjMgNy4xMSAyOS43NiA5LjExLTIuNTYgMTguMzYtMy45IDI3LjYyLTMuOSA0MS4yOC45NCA3MS40OCAzNC4zNSA3OC4yNiA3NC40N2wuMTEgNC43YzEwLjQgMS45MSAyMS4xOSAyLjk0IDMyLjIxIDIuOTQgMTEuMDMgMCAyMS44MS0xLjAyIDMyLjIxLTIuOTRsLjExLTQuN2M2Ljc4LTQwLjEyIDM2Ljk4LTczLjUzIDc4LjI2LTc0LjQ3IDkuMjYgMCAxOC41MSAxLjM0IDI3LjYyIDMuOSA1LjYtMTEuMTMgNi42OC0yNS4zNCA3LjExLTI5Ljc2LTguOS0xLjMtMjAuMzItMS41OC0zMC41LTEuNjYtMTguNzYuNDItMzUuMTkgNC4xNy00OC42MSA5LjY3LTEyLjU0IDE2LjAzLTI5LjE2IDMwLjAzLTQ5LjU4IDMzLjA3LS4wOS4wMi0uMTcuMDQtLjI3LjA1LS4wNS4wMS0uMTEuMDQtLjE2LjA1LTUuMjQgMS4wNy0xMC42MyAxLjYtMTYuMTkgMS42LTUuNTUgMC0xMC45NS0uNTMtMTYuMTktMS42LS4wNS0uMDEtLjExLS4wNC0uMTYtLjA1LS4xLS4wMi0uMTctLjA0LS4yNy0uMDUtMjAuNDItMy4wMy0zNy4wMy0xNy4wNC00OS41OC0zMy4wNy0xMy40Mi01LjQ5LTI5Ljg2LTkuMjUtNDguNjEtOS42N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2V0UG9ja2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwNy42IDY0aC0zNjdDMTguNSA2NCAwIDgyLjUgMCAxMDQuNnYxMzUuMkMwIDM2NC41IDk5LjcgNDY0IDIyNC4yIDQ2NGMxMjQgMCAyMjMuOC05OS41IDIyMy44LTIyNC4yVjEwNC42YzAtMjIuNC0xNy43LTQwLjYtNDAuNC00MC42em0tMTYyIDI2OC41Yy0xMi40IDExLjgtMzEuNCAxMS4xLTQyLjQgMEM4OS41IDIyMy42IDg4LjMgMjI3LjQgODguMyAyMDkuM2MwLTE2LjkgMTMuOC0zMC43IDMwLjctMzAuNyAxNyAwIDE2LjEgMy44IDEwNS4yIDg5LjMgOTAuNi04Ni45IDg4LjYtODkuMyAxMDUuNS04OS4zIDE2LjkgMCAzMC43IDEzLjggMzAuNyAzMC43IDAgMTcuOC0yLjkgMTUuNy0xMTQuOCAxMjMuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2dDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU3IDhDMTIwIDggOSAxMTkgOSAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTQgOCAyNTcgOHptLTQ5LjUgMzc0LjhMODEuOCAyNTcuMWwxMjUuNy0xMjUuNyAzNS4yIDM1LjQtMjQuMiAyNC4yLTExLjEtMTEuMS03Ny4yIDc3LjIgNzcuMiA3Ny4yIDI2LjYtMjYuNi01My4xLTUyLjkgMjQuNC0yNC40IDc3LjIgNzcuMi03NSA3NS4yem05OS0yLjJsLTM1LjItMzUuMiAyNC4xLTI0LjQgMTEuMSAxMS4xIDc3LjItNzcuMi03Ny4yLTc3LjItMjYuNSAyNi41IDUzLjEgNTIuOS0yNC40IDI0LjQtNzcuMi03Ny4yIDc1LTc1TDQzMi4yIDI1NSAzMDYuNSAzODAuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc5LjIgMjMwLjRsMTAyLjQgMTAyLjQtMTAyLjQgMTAyLjRMMCAyNTYgMTc5LjIgNzYuOGw0NC44IDQ0LjgtMjUuNiAyNS42LTE5LjItMTkuMi0xMjggMTI4IDEyOCAxMjggNTEuNS01MS41LTc3LjEtNzYuNSAyNS42LTI1LjZ6TTMzMi44IDc2LjhMMjMwLjQgMTc5LjJsMTAyLjQgMTAyLjQgMjUuNi0yNS42LTc3LjEtNzYuNSA1MS41LTUxLjUgMTI4IDEyOC0xMjggMTI4LTE5LjItMTkuMi0yNS42IDI1LjYgNDQuOCA0NC44TDUxMiAyNTYgMzMyLjggNzYuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2l0QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzOS41NSAyMzYuMDVMMjQ0IDQwLjQ1YTI4Ljg3IDI4Ljg3IDAgMCAwLTQwLjgxIDBsLTQwLjY2IDQwLjYzIDUxLjUyIDUxLjUyYzI3LjA2LTkuMTQgNTIuNjggMTYuNzcgNDMuMzkgNDMuNjhsNDkuNjYgNDkuNjZjMzQuMjMtMTEuOCA2MS4xOCAzMSAzNS40NyA1Ni42OS0yNi40OSAyNi40OS03MC4yMS0yLjg3LTU2LTM3LjM0TDI0MC4yMiAxOTl2MTIxLjg1YzI1LjMgMTIuNTQgMjIuMjYgNDEuODUgOS4wOCA1NWEzNC4zNCAzNC4zNCAwIDAgMS00OC41NSAwYy0xNy41Ny0xNy42LTExLjA3LTQ2LjkxIDExLjI1LTU2di0xMjNjLTIwLjgtOC41MS0yNC42LTMwLjc0LTE4LjY0LTQ1TDE0Mi41NyAxMDEgOC40NSAyMzUuMTRhMjguODYgMjguODYgMCAwIDAgMCA0MC44MWwxOTUuNjEgMTk1LjZhMjguODYgMjguODYgMCAwIDAgNDAuOCAwbDE5NC42OS0xOTQuNjlhMjguODYgMjguODYgMCAwIDAgMC00MC44MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2l0U3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwMC41OSAzMzQuMjRjNDguNTcgMy4zMSA1OC45NSAyLjExIDU4Ljk1IDExLjk0IDAgMjAtNjUuNTUgMjAuMDYtNjUuNTUgMS41Mi4wMS01LjA5IDMuMjktOS40IDYuNi0xMy40NnptMjcuOTUtMTE2LjY0Yy0zMi4yOSAwLTMzLjc1IDQ0LjQ3LS43NSA0NC40NyAzMi41MSAwIDMxLjcxLTQ0LjQ3Ljc1LTQ0LjQ3ek00NDggODB2MzUyYTQ4IDQ4IDAgMCAxLTQ4IDQ4SDQ4YTQ4IDQ4IDAgMCAxLTQ4LTQ4VjgwYTQ4IDQ4IDAgMCAxIDQ4LTQ4aDM1MmE0OCA0OCAwIDAgMSA0OCA0OHptLTIyNyA2OS4zMWMwIDE0LjQ5IDguMzggMjIuODggMjIuODYgMjIuODggMTQuNzQgMCAyMy4xMy04LjM5IDIzLjEzLTIyLjg4UzI1OC42MiAxMjcgMjQzLjg4IDEyN2MtMTQuNDggMC0yMi44OCA3Ljg0LTIyLjg4IDIyLjMxek0xOTkuMTggMTk1aC00OS41NWMtMjUtNi41NS04MS41Ni00Ljg1LTgxLjU2IDQ2Ljc1IDAgMTguOCA5LjQgMzIgMjEuODUgMzguMTFDNzQuMjMgMjk0LjIzIDY2LjggMzAxIDY2LjggMzEwLjZjMCA2Ljg3IDIuNzkgMTMuMjIgMTEuMTggMTYuNzYtOC45IDguNC0xNCAxNC40OC0xNCAyNS45MkM2NCAzNzMuMzUgODEuNTMgMzg1IDEyNy41MiAzODVjNDQuMjIgMCA2OS44Ny0xNi41MSA2OS44Ny00NS43MyAwLTM2LjY3LTI4LjIzLTM1LjMyLTk0Ljc3LTM5LjM4bDguMzgtMTMuNDNjMTcgNC43NCA3NC4xOSA2LjIzIDc0LjE5LTQyLjQzIDAtMTEuNjktNC44My0xOS44Mi05LjQtMjUuNjdsMjMuMzgtMS43OHptODQuMzQgMTA5Ljg0bC0xMy0xLjc4Yy0zLjgyLS41MS00LjA3LTEtNC4wNy01LjA5VjE5Mi41MmgtNTIuNmwtMi43OSAyMC41N2MxNS43NSA1LjU1IDE3IDQuODYgMTcgMTAuMTdWMjk4YzAgNS42Mi0uMzEgNC41OC0xNyA2Ljg3djIwLjA2aDcyLjQyek0zODQgMzE1bC02Ljg3LTIyLjM3Yy00MC45MyAxNS4zNy0zNy44NS0xMi40MS0zNy44NS0xNi43M3YtNjAuNzJoMzcuODV2LTI1LjQxaC0zNS44MmMtMi44NyAwLTIgMi41Mi0yLTM4LjYzaC0yNC4xOGMtMi43OSAyNy43LTExLjY4IDM4Ljg4LTM0IDQxLjQydjIyLjYyYzIwLjQ3IDAgMTkuODItLjg1IDE5LjgyIDIuNTR2NjYuNTdjMCAyOC43MiAxMS40MyA0MC45MSA0MS42NyA0MC45MSAxNC40NSAwIDMwLjQ1LTQuODMgNDEuMzgtMTAuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2l0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNi4yOSAxNTguMzlIMTM3Qzk3IDE0Ny45IDYuNTEgMTUwLjYzIDYuNTEgMjMzLjE4YzAgMzAuMDkgMTUgNTEuMjMgMzUgNjEtMjUuMSAyMy0zNyAzMy44NS0zNyA0OS4yMSAwIDExIDQuNDcgMjEuMTQgMTcuODkgMjYuODFDOC4xMyAzODMuNjEgMCAzOTMuMzUgMCA0MTEuNjVjMCAzMi4xMSAyOC4wNSA1MC44MiAxMDEuNjMgNTAuODIgNzAuNzUgMCAxMTEuNzktMjYuNDIgMTExLjc5LTczLjE4IDAtNTguNjYtNDUuMTYtNTYuNS0xNTEuNjMtNjNsMTMuNDMtMjEuNTVjMjcuMjcgNy41OCAxMTguNyAxMCAxMTguNy02Ny44OSAwLTE4LjctNy43My0zMS43MS0xNS00MS4wN2wzNy40MS0yLjg0em0tNjMuNDIgMjQxLjljMCAzMi4wNi0xMDQuODkgMzIuMS0xMDQuODkgMi40MyAwLTguMTQgNS4yNy0xNSAxMC41Ny0yMS41NCA3Ny43MSA1LjMgOTQuMzIgMy4zNyA5NC4zMiAxOS4xMXptLTUwLjgxLTEzNC41OGMtNTIuOCAwLTUwLjQ2LTcxLjE2IDEuMi03MS4xNiA0OS41NCAwIDUwLjgyIDcxLjE2LTEuMiA3MS4xNnptMTMzLjMgMTAwLjUxdi0zMi4xYzI2Ljc1LTMuNjYgMjcuMjQtMiAyNy4yNC0xMVYyMDMuNjFjMC04LjUtMi4wNS03LjM4LTI3LjI0LTE2LjI2bDQuNDctMzIuOTJIMzI0djE2OC43MWMwIDYuNTEuNCA3LjMyIDYuNTEgOC4xNGwyMC43MyAyLjg0djMyLjF6bTUyLjQ1LTI0NC4zMWMtMjMuMTcgMC0zNi41OS0xMy40My0zNi41OS0zNi42MXMxMy40Mi0zNS43NyAzNi41OS0zNS43N2MyMy41OCAwIDM3IDEyLjYyIDM3IDM1Ljc3cy0xMy40MiAzNi42MS0zNyAzNi42MXpNNTEyIDM1MC40NmMtMTcuNDkgOC41My00My4xIDE2LjI2LTY2LjI4IDE2LjI2LTQ4LjM4IDAtNjYuNjctMTkuNS02Ni42Ny02NS40NlYxOTQuNzVjMC01LjQyIDEuMDUtNC4wNi0zMS43MS00LjA2VjE1NC41YzM1Ljc4LTQuMDcgNTAtMjIgNTQuNDctNjYuMjdoMzguNjNjMCA2NS44My0xLjM0IDYxLjgxIDMuMjYgNjEuODFINTAxdjQwLjY1aC02MC41NnY5Ny4xNWMwIDYuOTItNC45MiA1MS40MSA2MC41NyAyNi44NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2l0aHViQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0ODAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ni4xIDMyOC43YzAgMjAuOS0xMC45IDU1LjEtMzYuNyA1NS4xcy0zNi43LTM0LjItMzYuNy01NS4xIDEwLjktNTUuMSAzNi43LTU1LjEgMzYuNyAzNC4yIDM2LjcgNTUuMXpNNDgwIDI3OC4yYzAgMzEuOS0zLjIgNjUuNy0xNy41IDk1LTM3LjkgNzYuNi0xNDIuMSA3NC44LTIxNi43IDc0LjgtNzUuOCAwLTE4Ni4yIDIuNy0yMjUuNi03NC44LTE0LjYtMjktMjAuMi02My4xLTIwLjItOTUgMC00MS45IDEzLjktODEuNSA0MS41LTExMy42LTUuMi0xNS44LTcuNy0zMi40LTcuNy00OC44IDAtMjEuNSA0LjktMzIuMyAxNC42LTUxLjggNDUuMyAwIDc0LjMgOSAxMDguOCAzNiAyOS02LjkgNTguOC0xMCA4OC43LTEwIDI3IDAgNTQuMiAyLjkgODAuNCA5LjIgMzQtMjYuNyA2My0zNS4yIDEwNy44LTM1LjIgOS44IDE5LjUgMTQuNiAzMC4zIDE0LjYgNTEuOCAwIDE2LjQtMi42IDMyLjctNy43IDQ4LjIgMjcuNSAzMi40IDM5IDcyLjMgMzkgMTE0LjJ6bS02NC4zIDUwLjVjMC00My45LTI2LjctODIuNi03My41LTgyLjYtMTguOSAwLTM3IDMuNC01NiA2LTE0LjkgMi4zLTI5LjggMy4yLTQ1LjEgMy4yLTE1LjIgMC0zMC4xLS45LTQ1LjEtMy4yLTE4LjctMi42LTM3LTYtNTYtNi00Ni44IDAtNzMuNSAzOC43LTczLjUgODIuNiAwIDg3LjggODAuNCAxMDEuMyAxNTAuNCAxMDEuM2g0OC4yYzcwLjMgMCAxNTAuNi0xMy40IDE1MC42LTEwMS4zem0tODIuNi01NS4xYy0yNS44IDAtMzYuNyAzNC4yLTM2LjcgNTUuMXMxMC45IDU1LjEgMzYuNyA1NS4xIDM2LjctMzQuMiAzNi43LTU1LjEtMTAuOS01NS4xLTM2LjctNTUuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2l0aHViU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTI3Ny4zIDQxNS43Yy04LjQgMS41LTExLjUtMy43LTExLjUtOCAwLTUuNC4yLTMzIC4yLTU1LjMgMC0xNS42LTUuMi0yNS41LTExLjMtMzAuNyAzNy00LjEgNzYtOS4yIDc2LTczLjEgMC0xOC4yLTYuNS0yNy4zLTE3LjEtMzkgMS43LTQuMyA3LjQtMjItMS43LTQ1LTEzLjktNC4zLTQ1LjcgMTcuOS00NS43IDE3LjktMTMuMi0zLjctMjcuNS01LjYtNDEuNi01LjYtMTQuMSAwLTI4LjQgMS45LTQxLjYgNS42IDAgMC0zMS44LTIyLjItNDUuNy0xNy45LTkuMSAyMi45LTMuNSA0MC42LTEuNyA0NS0xMC42IDExLjctMTUuNiAyMC44LTE1LjYgMzkgMCA2My42IDM3LjMgNjkgNzQuMyA3My4xLTQuOCA0LjMtOS4xIDExLjctMTAuNiAyMi4zLTkuNSA0LjMtMzMuOCAxMS43LTQ4LjMtMTMuOS05LjEtMTUuOC0yNS41LTE3LjEtMjUuNS0xNy4xLTE2LjItLjItMS4xIDEwLjItMS4xIDEwLjIgMTAuOCA1IDE4LjQgMjQuMiAxOC40IDI0LjIgOS43IDI5LjcgNTYuMSAxOS43IDU2LjEgMTkuNyAwIDEzLjkuMiAzNi41LjIgNDAuNiAwIDQuMy0zIDkuNS0xMS41IDgtNjYtMjIuMS0xMTIuMi04NC45LTExMi4yLTE1OC4zIDAtOTEuOCA3MC4yLTE2MS41IDE2Mi0xNjEuNVMzODggMTY1LjYgMzg4IDI1Ny40Yy4xIDczLjQtNDQuNyAxMzYuMy0xMTAuNyAxNTguM3ptLTk4LjEtNjEuMWMtMS45LjQtMy43LS40LTMuOS0xLjctLjItMS41IDEuMS0yLjggMy0zLjIgMS45LS4yIDMuNy42IDMuOSAxLjkuMyAxLjMtMSAyLjYtMyAzem0tOS41LS45YzAgMS4zLTEuNSAyLjQtMy41IDIuNC0yLjIuMi0zLjctLjktMy43LTIuNCAwLTEuMyAxLjUtMi40IDMuNS0yLjQgMS45LS4yIDMuNy45IDMuNyAyLjR6bS0xMy43LTEuMWMtLjQgMS4zLTIuNCAxLjktNC4xIDEuMy0xLjktLjQtMy4yLTEuOS0yLjgtMy4yLjQtMS4zIDIuNC0xLjkgNC4xLTEuNSAyIC42IDMuMyAyLjEgMi44IDMuNHptLTEyLjMtNS40Yy0uOSAxLjEtMi44LjktNC4zLS42LTEuNS0xLjMtMS45LTMuMi0uOS00LjEuOS0xLjEgMi44LS45IDQuMy42IDEuMyAxLjMgMS44IDMuMy45IDQuMXptLTkuMS05LjFjLS45LjYtMi42IDAtMy43LTEuNXMtMS4xLTMuMiAwLTMuOWMxLjEtLjkgMi44LS4yIDMuNyAxLjMgMS4xIDEuNSAxLjEgMy4zIDAgNC4xem0tNi41LTkuN2MtLjkuOS0yLjQuNC0zLjUtLjYtMS4xLTEuMy0xLjMtMi44LS40LTMuNS45LS45IDIuNC0uNCAzLjUuNiAxLjEgMS4zIDEuMyAyLjguNCAzLjV6bS02LjctNy40Yy0uNC45LTEuNyAxLjEtMi44LjQtMS4zLS42LTEuOS0xLjctMS41LTIuNi40LS42IDEuNS0uOSAyLjgtLjQgMS4zLjcgMS45IDEuOCAxLjUgMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHaXRodWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTY1LjkgMzk3LjRjMCAyLTIuMyAzLjYtNS4yIDMuNi0zLjMuMy01LjYtMS4zLTUuNi0zLjYgMC0yIDIuMy0zLjYgNS4yLTMuNiAzLS4zIDUuNiAxLjMgNS42IDMuNnptLTMxLjEtNC41Yy0uNyAyIDEuMyA0LjMgNC4zIDQuOSAyLjYgMSA1LjYgMCA2LjItMnMtMS4zLTQuMy00LjMtNS4yYy0yLjYtLjctNS41LjMtNi4yIDIuM3ptNDQuMi0xLjdjLTIuOS43LTQuOSAyLjYtNC42IDQuOS4zIDIgMi45IDMuMyA1LjkgMi42IDIuOS0uNyA0LjktMi42IDQuNi00LjYtLjMtMS45LTMtMy4yLTUuOS0yLjl6TTI0NC44IDhDMTA2LjEgOCAwIDExMy4zIDAgMjUyYzAgMTEwLjkgNjkuOCAyMDUuOCAxNjkuNSAyMzkuMiAxMi44IDIuMyAxNy4zLTUuNiAxNy4zLTEyLjEgMC02LjItLjMtNDAuNC0uMy02MS40IDAgMC03MCAxNS04NC43LTI5LjggMCAwLTExLjQtMjkuMS0yNy44LTM2LjYgMCAwLTIyLjktMTUuNyAxLjYtMTUuNCAwIDAgMjQuOSAyIDM4LjYgMjUuOCAyMS45IDM4LjYgNTguNiAyNy41IDcyLjkgMjAuOSAyLjMtMTYgOC44LTI3LjEgMTYtMzMuNy01NS45LTYuMi0xMTIuMy0xNC4zLTExMi4zLTExMC41IDAtMjcuNSA3LjYtNDEuMyAyMy42LTU4LjktMi42LTYuNS0xMS4xLTMzLjMgMi42LTY3LjkgMjAuOS02LjUgNjkgMjcgNjkgMjcgMjAtNS42IDQxLjUtOC41IDYyLjgtOC41czQyLjggMi45IDYyLjggOC41YzAgMCA0OC4xLTMzLjYgNjktMjcgMTMuNyAzNC43IDUuMiA2MS40IDIuNiA2Ny45IDE2IDE3LjcgMjUuOCAzMS41IDI1LjggNTguOSAwIDk2LjUtNTguOSAxMDQuMi0xMTQuOCAxMTAuNSA5LjIgNy45IDE3IDIyLjkgMTcgNDYuNCAwIDMzLjctLjMgNzUuNC0uMyA4My42IDAgNi41IDQuNiAxNC40IDE3LjMgMTIuMUM0MjguMiA0NTcuOCA0OTYgMzYyLjkgNDk2IDI1MiA0OTYgMTEzLjMgMzgzLjUgOCAyNDQuOCA4ek05Ny4yIDM1Mi45Yy0xLjMgMS0xIDMuMy43IDUuMiAxLjYgMS42IDMuOSAyLjMgNS4yIDEgMS4zLTEgMS0zLjMtLjctNS4yLTEuNi0xLjYtMy45LTIuMy01LjItMXptLTEwLjgtOC4xYy0uNyAxLjMuMyAyLjkgMi4zIDMuOSAxLjYgMSAzLjYuNyA0LjMtLjcuNy0xLjMtLjMtMi45LTIuMy0zLjktMi0uNi0zLjYtLjMtNC4zLjd6bTMyLjQgMzUuNmMtMS42IDEuMy0xIDQuMyAxLjMgNi4yIDIuMyAyLjMgNS4yIDIuNiA2LjUgMSAxLjMtMS4zLjctNC4zLTEuMy02LjItMi4yLTIuMy01LjItMi42LTYuNS0xem0tMTEuNC0xNC43Yy0xLjYgMS0xLjYgMy42IDAgNS45IDEuNiAyLjMgNC4zIDMuMyA1LjYgMi4zIDEuNi0xLjMgMS42LTMuOSAwLTYuMi0xLjQtMi4zLTQtMy4zLTUuNi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHaXRrcmFrZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU5MiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTY1LjcgMTE4LjFjLTIuMy02LjEtOS4zLTkuMi0xNS4zLTYuNi01LjcgMi40LTguNSA4LjktNi4zIDE0LjYgMTAuOSAyOSAxNi45IDYwLjUgMTYuOSA5My4zIDAgMTM0LjYtMTAwLjMgMjQ1LjctMjMwLjIgMjYyLjdWMzU4LjRjNy45LTEuNSAxNS41LTMuNiAyMy02LjJ2MTA0YzEwNi43LTI1LjkgMTg1LjktMTIyLjEgMTg1LjktMjM2LjggMC05MS44LTUwLjgtMTcxLjgtMTI1LjgtMjEzLjMtNS43LTMuMi0xMy0uOS0xNS45IDUtMi43IDUuNS0uNiAxMi4yIDQuNyAxNS4xIDY3LjkgMzcuNiAxMTMuOSAxMTAgMTEzLjkgMTkzLjIgMCA5My4zLTU3LjkgMTczLjEtMTM5LjggMjA1LjR2LTkyLjJjMTQuMi00LjUgMjQuOS0xNy43IDI0LjktMzMuNSAwLTEzLjEtNi44LTI0LjQtMTcuMy0zMC41IDguMy03OS41IDQ0LjUtNTguNiA0NC41LTgzLjlWMTcwYzAtMzgtODcuOS0xNjEuOC0xMjktMTY0LjctMi41LS4yLTUtLjItNy42IDBDMjUxLjEgOC4zIDE2My4yIDEzMiAxNjMuMiAxNzB2MTQuOGMwIDI1LjMgMzYuMyA0LjMgNDQuNSA4My45LTEwLjYgNi4xLTE3LjMgMTcuNC0xNy4zIDMwLjUgMCAxNS44IDEwLjYgMjkgMjQuOCAzMy41djkyLjJjLTgxLjktMzIuMi0xMzkuOC0xMTItMTM5LjgtMjA1LjQgMC04My4xIDQ2LTE1NS41IDExMy45LTE5My4yIDUuNC0zIDcuNC05LjYgNC43LTE1LjEtMi45LTUuOS0xMC4xLTguMi0xNS45LTUtNzUgNDEuNS0xMjUuOCAxMjEuNS0xMjUuOCAyMTMuMyAwIDExNC43IDc5LjIgMjEwLjggMTg1LjkgMjM2Ljh2LTEwNGM3LjYgMi41IDE1LjEgNC42IDIzIDYuMnYxMjMuN0MxMzEuNCA0NjUuMiAzMSAzNTQuMSAzMSAyMTkuNWMwLTMyLjggNi02NC4zIDE2LjktOTMuMyAyLjItNS44LS42LTEyLjItNi4zLTE0LjYtNi0yLjYtMTMgLjQtMTUuMyA2LjZDMTQuNSAxNDkuNyA4IDE4My44IDggMjE5LjVjMCAxNTUuMSAxMjIuNiAyODEuNiAyNzYuMyAyODcuOFYzNjEuNGM2LjguNCAxNSAuNSAyMy40IDB2MTQ1LjhDNDYxLjQgNTAxLjEgNTg0IDM3NC42IDU4NCAyMTkuNWMwLTM1LjctNi41LTY5LjgtMTguMy0xMDEuNHpNMzY1LjkgMjc1LjVjMTMgMCAyMy43IDEwLjUgMjMuNyAyMy43IDAgMTMuMS0xMC42IDIzLjctMjMuNyAyMy43LTEzIDAtMjMuNy0xMC41LTIzLjctMjMuNyAwLTEzLjEgMTAuNi0yMy43IDIzLjctMjMuN3ptLTEzOS44IDQ3LjNjLTEzLjIgMC0yMy43LTEwLjctMjMuNy0yMy43czEwLjUtMjMuNyAyMy43LTIzLjdjMTMuMSAwIDIzLjcgMTAuNiAyMy43IDIzLjcgMCAxMy0xMC41IDIzLjctMjMuNyAyMy43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHaXRsYWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTA1LjIgMjQuOWMtMy4xLTguOS0xNS43LTguOS0xOC45IDBMMjkuOCAxOTkuN2gxMzJjLS4xIDAtNTYuNi0xNzQuOC01Ni42LTE3NC44ek0uOSAyODcuN2MtMi42IDggLjMgMTYuOSA3LjEgMjJsMjQ3LjkgMTg0LTIyNi4yLTI5NHptMTYwLjgtODhsOTQuMyAyOTQgOTQuMy0yOTR6bTM0OS40IDg4bC0yOC44LTg4LTIyNi4zIDI5NCAyNDcuOS0xODRjNi45LTUuMSA5LjctMTQgNy4yLTIyek00MjUuNyAyNC45Yy0zLjEtOC45LTE1LjctOC45LTE4LjkgMGwtNTYuNiAxNzQuOGgxMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdpdHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02Ni40IDMyMi41SDE2VjBoNTAuNHYzMjIuNXpNMTY2LjkgNzYuMWgtNTAuNFY1MTJoNTAuNFY3Ni4xem0xMDAuNiAwaC01MC40VjUxMmg1MC40Vjc2LjF6TTM2OCA3NmgtNTAuNHYyNDdIMzY4Vjc2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHbGlkZUcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDA3LjEgMjExLjJjLTMuNS0xLjQtMTEuNi0zLjgtMTUuNC0zLjgtMzcuMSAwLTYyLjIgMTYuOC05My41IDM0LjVsLS45LS45YzctNDcuMyAyMy41LTkxLjkgMjMuNS0xNDAuNEMzMjAuOCAyOS4xIDI4Mi42IDAgMjEyLjQgMCA5Ny4zIDAgMzkgMTEzLjcgMzkgMTk4LjQgMzkgMjg2LjMgOTAuMyAzMzUgMTc3LjYgMzM1YzEyIDAgMTEtMSAxMSAzLjgtMTYuOSAxMjguOS05MC44IDEzMy4xLTkwLjggOTQuNiAwLTM5LjIgNDUtNTguNiA0NS41LTYxLS4zLTEyLjItNDctMjcuNi01OC45LTI3LjYtMzMuOS4xLTUyLjQgNTEuMi01Mi40IDc5LjNDMzIgNDc2IDY0LjggNTEyIDExNy41IDUxMmM3Ny40IDAgMTM0LTc3LjggMTUxLjQtMTQ1LjQgMTUuMS02MC41IDExLjItNjMuMyAxOS43LTY3LjYgMzIuMi0xNi4yIDU3LjUtMjcgOTMuOC0yNyAxNy44IDAgMzAuNSAzLjcgNTguOSA4LjQgMi45IDAgNi43LTIuOSA2LjctNS44IDAtOC0zMy40LTYwLjUtNDAuOS02My40em0tMTc1LjMtODQuNGMtOS4zIDQ0LjctMTguNiA4OS42LTI3LjggMTM0LjMtMi4zIDEwLjItMTMuMyA3LjgtMjIgNy44LTM4LjMgMC00OS00MS44LTQ5LTczLjEgMC00NyAxOC0xMDkuMyA2MS44LTEzMy40IDctNC4xIDE0LjgtNi43IDIyLjYtNi43IDE4LjYgMCAyMCAxMy4zIDIwIDI4LjctLjEgMTQuMy0yLjcgMjguNS01LjYgNDIuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2xpZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjUyLjggMTQ4LjZjMCA4LjgtMS42IDE3LjctMy40IDI2LjQtNS44IDI3LjgtMTEuNiA1NS44LTE3LjMgODMuNi0xLjQgNi4zLTguMyA0LjktMTMuNyA0LjktMjMuOCAwLTMwLjUtMjYtMzAuNS00NS41IDAtMjkuMyAxMS4yLTY4LjEgMzguNS04My4xIDQuMy0yLjUgOS4yLTQuMiAxNC4xLTQuMiAxMS40IDAgMTIuMyA4LjMgMTIuMyAxNy45ek00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS02NCAxODdjMC01LjEtMjAuOC0zNy43LTI1LjUtMzkuNS0yLjItLjktNy4yLTIuMy05LjYtMi4zLTIzLjEgMC0zOC43IDEwLjUtNTguMiAyMS41bC0uNS0uNWM0LjMtMjkuNCAxNC42LTU3LjIgMTQuNi04Ny40IDAtNDQuNi0yMy44LTYyLjctNjcuNS02Mi43LTcxLjcgMC0xMDggNzAuOC0xMDggMTIzLjUgMCA1NC43IDMyIDg1IDg2LjMgODUgNy41IDAgNi45LS42IDYuOSAyLjMtMTAuNSA4MC4zLTU2LjUgODIuOS01Ni41IDU4LjkgMC0yNC40IDI4LTM2LjUgMjguMy0zOC0uMi03LjYtMjkuMy0xNy4yLTM2LjctMTcuMi0yMS4xIDAtMzIuNyAzMy0zMi43IDUwLjYgMCAzMi4zIDIwLjQgNTQuNyA1My4zIDU0LjcgNDguMiAwIDgzLjQtNDkuNyA5NC4zLTkxLjcgOS40LTM3LjcgNy0zOS40IDEyLjMtNDIuMSAyMC0xMC4xIDM1LjgtMTYuOCA1OC40LTE2LjggMTEuMSAwIDE5IDIuMyAzNi43IDUuMiAxLjguMSA0LjEtMS43IDQuMS0zLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvZm9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDAwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjQgMzE5LjhoLTEzLjJ2MzQuN2MtMjQuNSAyMy4xLTU2LjMgMzUuOC04OS45IDM1LjgtNzMuMiAwLTEzMi40LTYwLjItMTMyLjQtMTM0LjQgMC03NC4xIDU5LjItMTM0LjQgMTMyLjQtMTM0LjQgMzUuMyAwIDY4LjYgMTQgOTMuNiAzOS40bDYyLjMtNjMuM0MzMzUgNTUuMyAyNzkuNyAzMiAyMjAuNyAzMiA5OCAzMiAwIDEzMi42IDAgMjU2YzAgMTIyLjUgOTcgMjI0IDIyMC43IDIyNCA2My4yIDAgMTI0LjUtMjYuMiAxNzEtODIuNS0yLTI3LjYtMTMuNC03Ny43LTY3LjctNzcuN3ptLTEyLjEtMTEyLjVIMjA1LjZ2ODlIMzI0YzMzLjUgMCA2MC41IDE1LjEgNzYgNDEuOHYtMzAuNmMwLTY1LjItNDAuNC0xMDAuMi04OC4xLTEwMC4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb29kcmVhZHNHIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyLjYgNDAzLjNoMi44YzEyLjcgMCAyNS41IDAgMzguMi4xIDEuNiAwIDMuMS0uNCAzLjYgMi4xIDcuMSAzNC45IDMwIDU0LjYgNjIuOSA2My45IDI2LjkgNy42IDU0LjEgNy44IDgxLjMgMS44IDMzLjgtNy40IDU2LTI4LjMgNjgtNjAuNCA4LTIxLjUgMTAuNy00My44IDExLTY2LjUuMS01LjguMy00Ny0uMi01Mi44bC0uOS0uM2MtLjggMS41LTEuNyAyLjktMi41IDQuNC0yMi4xIDQzLjEtNjEuMyA2Ny40LTEwNS40IDY5LjEtMTAzIDQtMTY5LjQtNTctMTcyLTE3Ni4yLS41LTIzLjcgMS44LTQ2LjkgOC4zLTY5LjdDNTguMyA0Ny43IDExMi4zLjYgMTkxLjYgMGM2MS4zLS40IDEwMS41IDM4LjcgMTE2LjIgNzAuMy41IDEuMSAxLjMgMi4zIDIuNCAxLjlWMTAuNmg0NC4zYzAgMjgwLjMuMSAzMzIuMi4xIDMzMi4yLS4xIDc4LjUtMjYuNyAxNDMuNy0xMDMgMTYyLjItNjkuNSAxNi45LTE1OSA0LjgtMTk2LTU3LjItOC0xMy41LTExLjgtMjguMy0xMy00NC41ek0xODguOSAzNi41Yy01Mi41LS41LTEwOC41IDQwLjctMTE1IDEzMy44LTQuMSA1OSAxNC44IDEyMi4yIDcxLjUgMTQ4LjYgMjcuNiAxMi45IDc0LjMgMTUgMTA4LjMtOC43IDQ3LjYtMzMuMiA2Mi43LTk3IDU0LjgtMTU0LTkuNy03MS4xLTQ3LjgtMTIwLTExOS42LTExOS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb29kcmVhZHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk5LjkgMTkxLjJjNS4xIDM3LjMtNC43IDc5LTM1LjkgMTAwLjctMjIuMyAxNS41LTUyLjggMTQuMS03MC44IDUuNy0zNy4xLTE3LjMtNDkuNS01OC42LTQ2LjgtOTcuMiA0LjMtNjAuOSA0MC45LTg3LjkgNzUuMy04Ny41IDQ2LjktLjIgNzEuOCAzMS44IDc4LjIgNzguM3pNNDQ4IDg4djMzNmMwIDMwLjktMjUuMSA1Ni01NiA1Nkg1NmMtMzAuOSAwLTU2LTI1LjEtNTYtNTZWODhjMC0zMC45IDI1LjEtNTYgNTYtNTZoMzM2YzMwLjkgMCA1NiAyNS4xIDU2IDU2ek0zMzAgMzEzLjJzLS4xLTM0LS4xLTIxNy4zaC0yOXY0MC4zYy0uOC4zLTEuMi0uNS0xLjYtMS4yLTkuNi0yMC43LTM1LjktNDYuMy03Ni00Ni01MS45LjQtODcuMiAzMS4yLTEwMC42IDc3LjgtNC4zIDE0LjktNS44IDMwLjEtNS41IDQ1LjYgMS43IDc3LjkgNDUuMSAxMTcuOCAxMTIuNCAxMTUuMiAyOC45LTEuMSA1NC41LTE3IDY5LTQ1LjIuNS0xIDEuMS0xLjkgMS43LTIuOS4yLjEuNC4xLjYuMi4zIDMuOC4yIDMwLjcuMSAzNC41LS4yIDE0LjgtMiAyOS41LTcuMiA0My41LTcuOCAyMS0yMi4zIDM0LjctNDQuNSAzOS41LTE3LjggMy45LTM1LjYgMy44LTUzLjItMS4yLTIxLjUtNi4xLTM2LjUtMTktNDEuMS00MS44LS4zLTEuNi0xLjMtMS4zLTIuMy0xLjNoLTI2LjhjLjggMTAuNiAzLjIgMjAuMyA4LjUgMjkuMiAyNC4yIDQwLjUgODIuNyA0OC41IDEyOC4yIDM3LjQgNDkuOS0xMi4zIDY3LjMtNTQuOSA2Ny40LTEwNi4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb29nbGVEcml2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzkgMzE0LjlMMTc1LjQgMzJoMTYxLjJsMTYzLjYgMjgyLjlIMzM5em0tMTM3LjUgMjMuNkwxMjAuOSA0ODBoMzEwLjVMNTEyIDMzOC41SDIwMS41ek0xNTQuMSA2Ny40TDAgMzM4LjUgODAuNiA0ODAgMjM3IDIwOC44IDE1NC4xIDY3LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2dsZVBheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDUuNzIsMjE1djQxLjI1aDU3LjFhNDkuNjYsNDkuNjYsMCwwLDEtMjEuMTQsMzIuNmMtOS41NCw2LjU1LTIxLjcyLDEwLjI4LTM2LDEwLjI4LTI3LjYsMC01MC45My0xOC45MS01OS4zLTQ0LjIyYTY1LjYxLDY1LjYxLDAsMCwxLDAtNDFsMCwwYzguMzctMjUuNDYsMzEuNy00NC4zNyw1OS4zLTQ0LjM3YTU2LjQzLDU2LjQzLDAsMCwxLDQwLjUxLDE2LjA4TDE3Ni40NywxNTVhMTAxLjI0LDEwMS4yNCwwLDAsMC03MC43NS0yNy44NCwxMDUuNTUsMTA1LjU1LDAsMCwwLTk0LjM4LDU5LjExLDEwNy42NCwxMDcuNjQsMCwwLDAsMCw5Ni4xOHYuMTVhMTA1LjQxLDEwNS40MSwwLDAsMCw5NC4zOCw1OWMyOC40NywwLDUyLjU1LTkuNTMsNzAtMjUuOTEsMjAtMTguNjEsMzEuNDEtNDYuMTUsMzEuNDEtNzguOTFBMTMzLjc2LDEzMy43NiwwLDAsMCwyMDUuMzgsMjE1Wm0zODkuNDEtNGMtMTAuMTMtOS4zOC0yMy45My0xNC4xNC00MS4zOS0xNC4xNC0yMi40NiwwLTM5LjM0LDguMzQtNTAuNSwyNC44NmwyMC44NSwxMy4yNnExMS40NS0xNywzMS4yNi0xN2EzNC4wNSwzNC4wNSwwLDAsMSwyMi43NSw4Ljc5QTI4LjE0LDI4LjE0LDAsMCwxLDQ4Ny43OSwyNDh2NS41MWMtOS4xLTUuMDctMjAuNTUtNy43NS0zNC42NC03Ljc1LTE2LjQ0LDAtMjkuNjUsMy44OC0zOS40OSwxMS43N3MtMTQuODIsMTguMzEtMTQuODIsMzEuNTZhMzkuNzQsMzkuNzQsMCwwLDAsMTMuOTQsMzEuMjdjOS4yNSw4LjM0LDIxLDEyLjUxLDM0Ljc5LDEyLjUxLDE2LjI5LDAsMjkuMjEtNy4zLDM5LTIxLjg5aDF2MTcuNzJoMjIuNjFWMjUwQzUxMC4yNSwyMzMuNDUsNTA1LjI2LDIyMC4zNCw0OTUuMTMsMjExWk00NzUuOSwzMDAuM2EzNy4zMiwzNy4zMiwwLDAsMS0yNi41NywxMS4xNkEyOC42MSwyOC42MSwwLDAsMSw0MzEsMzA1LjIxYTE5LjQxLDE5LjQxLDAsMCwxLTcuNzctMTUuNjNjMC03LDMuMjItMTIuODEsOS41NC0xNy40MnMxNC41My03LDI0LjA3LTdDNDcwLDI2NSw0ODAuMywyNjgsNDg3LjY0LDI3My45NCw0ODcuNjQsMjg0LjA3LDQ4My42OCwyOTIuODUsNDc1LjksMzAwLjNabS05My42NS0xNDJBNTUuNzEsNTUuNzEsMCwwLDAsMzQxLjc0LDE0MkgyNzkuMDdWMzI4Ljc0SDMwMi43VjI1My4xaDM5YzE2LDAsMjkuNS01LjM2LDQwLjUxLTE1LjkzLjg4LS44OSwxLjc2LTEuNzksMi42NS0yLjY4QTU0LjQ1LDU0LjQ1LDAsMCwwLDM4Mi4yNSwxNTguMjZabS0xNi41OCw2Mi4yM2EzMC42NSwzMC42NSwwLDAsMS0yMy4zNCw5LjY4SDMwMi43VjE2NWgzOS42M2EzMiwzMiwwLDAsMSwyMi42LDkuMjNBMzMuMTgsMzMuMTgsMCwwLDEsMzY1LjY3LDIyMC40OVpNNjE0LjMxLDIwMSw1NzcuNzcsMjkyLjdoLS40NUw1MzkuOSwyMDFINTE0LjIxTDU2NiwzMjAuNTVsLTI5LjM1LDY0LjMySDU2MUw2NDAsMjAxWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb29nbGVQbGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyNS4zIDIzNC4zTDEwNC42IDEzbDI4MC44IDE2MS4yLTYwLjEgNjAuMXpNNDcgMEMzNCA2LjggMjUuMyAxOS4yIDI1LjMgMzUuM3Y0NDEuM2MwIDE2LjEgOC43IDI4LjUgMjEuNyAzNS4zbDI1Ni42LTI1Nkw0NyAwem00MjUuMiAyMjUuNmwtNTguOS0zNC4xLTY1LjcgNjQuNSA2NS43IDY0LjUgNjAuMS0zNC4xYzE4LTE0LjMgMTgtNDYuNS0xLjItNjAuOHpNMTA0LjYgNDk5bDI4MC44LTE2MS4yLTYwLjEtNjAuMUwxMDQuNiA0OTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2dsZVBsdXNHIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4Ni4wNjEgMjI4LjQ5NmMxLjgzNCA5LjY5MiAzLjE0MyAxOS4zODQgMy4xNDMgMzEuOTU2QzM4OS4yMDQgMzcwLjIwNSAzMTUuNTk5IDQ0OCAyMDQuOCA0NDhjLTEwNi4wODQgMC0xOTItODUuOTE1LTE5Mi0xOTJzODUuOTE2LTE5MiAxOTItMTkyYzUxLjg2NCAwIDk1LjA4MyAxOC44NTkgMTI4LjYxMSA1MC4yOTJsLTUyLjEyNiA1MC4wM2MtMTQuMTQ1LTEzLjYyMS0zOS4wMjgtMjkuNTk5LTc2LjQ4NS0yOS41OTktNjUuNDg0IDAtMTE4LjkyIDU0LjIyMS0xMTguOTIgMTIxLjI3NyAwIDY3LjA1NiA1My40MzYgMTIxLjI3NyAxMTguOTIgMTIxLjI3NyA3NS45NjEgMCAxMDQuNTEzLTU0Ljc0NSAxMDguOTY1LTgyLjc3M0gyMDQuOHYtNjYuMDA5aDE4MS4yNjF6bTE4NS40MDYgNi40MzdWMTc5LjJoLTU2LjAwMXY1NS43MzNoLTU1LjczM3Y1Ni4wMDFoNTUuNzMzdjU1LjczM2g1Ni4wMDF2LTU1LjczM0g2MjcuMnYtNTYuMDAxaC01NS43MzN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2dsZVBsdXNTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNMTY0IDM1NmMtNTUuMyAwLTEwMC00NC43LTEwMC0xMDBzNDQuNy0xMDAgMTAwLTEwMGMyNyAwIDQ5LjUgOS44IDY3IDI2LjJsLTI3LjEgMjYuMWMtNy40LTcuMS0yMC4zLTE1LjQtMzkuOC0xNS40LTM0LjEgMC02MS45IDI4LjItNjEuOSA2My4yIDAgMzQuOSAyNy44IDYzLjIgNjEuOSA2My4yIDM5LjYgMCA1NC40LTI4LjUgNTYuOC00My4xSDE2NHYtMzQuNGg5NC40YzEgNSAxLjYgMTAuMSAxLjYgMTYuNiAwIDU3LjEtMzguMyA5Ny42LTk2IDk3LjZ6bTIyMC04MS44aC0yOXYyOWgtMjkuMnYtMjloLTI5VjI0NWgyOXYtMjlIMzU1djI5aDI5djI5LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2dsZVBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2LDhDMTE5LjEsOCw4LDExOS4xLDgsMjU2UzExOS4xLDUwNCwyNTYsNTA0LDUwNCwzOTIuOSw1MDQsMjU2LDM5Mi45LDgsMjU2LDhaTTE4NS4zLDM4MGExMjQsMTI0LDAsMCwxLDAtMjQ4YzMxLjMsMCw2MC4xLDExLDgzLDMyLjNsLTMzLjYsMzIuNmMtMTMuMi0xMi45LTMxLjMtMTkuMS00OS40LTE5LjEtNDIuOSwwLTc3LjIsMzUuNS03Ny4yLDc4LjFTMTQyLjMsMzM0LDE4NS4zLDMzNGMzMi42LDAsNjQuOS0xOS4xLDcwLjEtNTMuM0gxODUuM1YyMzguMUgzMDIuMmExMDkuMiwxMDkuMiwwLDAsMSwxLjksMjAuN2MwLDcwLjgtNDcuNSwxMjEuMi0xMTguOCwxMjEuMlpNNDE1LjUsMjczLjh2MzUuNUgzODBWMjczLjhIMzQ0LjVWMjM4LjNIMzgwVjIwMi44aDM1LjV2MzUuNWgzNS4ydjM1LjVaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2dsZVdhbGxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTYuOCAxMjYuOGMzNy42IDYwLjYgNjQuMiAxMTMuMSA4NC4zIDE2Mi41LTguMyAzMy44LTE4LjggNjYuNS0zMS4zIDk4LjMtMTMuMi01Mi4zLTI2LjUtMTAxLjMtNTYtMTQ4LjUgNi41LTM2LjQgMi4zLTczLjYgMy0xMTIuM3pNMTA5LjMgMjAwSDE2LjFjLTYuNSAwLTEwLjUgNy41LTYuNSAxMi43QzUxLjggMjY3IDgxLjMgMzMwLjUgMTAxLjMgNDAwaDEwMy41Yy0xNi4yLTY5LjctMzguNy0xMzMuNy04Mi41LTE5My41LTMtNC04LTYuNS0xMy02LjV6bTQ3LjgtODhjNjguNSAxMDggMTMwIDIzNC41IDEzOC4yIDM2OEg0MDljLTEyLTEzOC02OC40LTI2NS0xNDMuMi0zNjhIMTU3LjF6bTI1MS44LTY4LjVjLTEuOC02LjgtOC4yLTExLjUtMTUuMi0xMS41aC04OC4zYy01LjMgMC05IDUtNy44IDEwLjMgMTMuMiA0Ni41IDIyLjMgOTUuNSAyNi41IDE0NiA0OC4yIDg2LjIgNzkuNyAxNzguMyA5MC42IDI3MC44IDE1LjgtNjAuNSAyNS4zLTEzMy41IDI1LjMtMjAzIDAtNzMuNi0xMi4xLTE0NS4xLTMxLjEtMjEyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2dsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDg4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODggMjYxLjhDNDg4IDQwMy4zIDM5MS4xIDUwNCAyNDggNTA0IDExMC44IDUwNCAwIDM5My4yIDAgMjU2UzExMC44IDggMjQ4IDhjNjYuOCAwIDEyMyAyNC41IDE2Ni4zIDY0LjlsLTY3LjUgNjQuOUMyNTguNSA1Mi42IDk0LjMgMTE2LjYgOTQuMyAyNTZjMCA4Ni41IDY5LjEgMTU2LjYgMTUzLjcgMTU2LjYgOTguMiAwIDEzNS03MC40IDE0MC44LTEwNi45SDI0OHYtODUuM2gyMzYuMWMyLjMgMTIuNyAzLjkgMjQuOSAzLjkgNDEuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JhdGlwYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExLjEgOCAwIDExOS4xIDAgMjU2czExMS4xIDI0OCAyNDggMjQ4IDI0OC0xMTEuMSAyNDgtMjQ4UzM4NC45IDggMjQ4IDh6bTExNC42IDIyNi40bC0xMTMgMTUyLjctMTEyLjctMTUyLjdjLTguNy0xMS45LTE5LjEtNTAuNCAxMy42LTcyIDI4LjEtMTguMSA1NC42LTQuMiA2OC41IDExLjkgMTUuOSAxNy45IDQ2LjYgMTYuOSA2MS43IDAgMTMuOS0xNi4xIDQwLjQtMzAgNjguMS0xMS45IDMyLjkgMjEuNiAyMi42IDYwIDEzLjggNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyYXYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzAxLjEgMjEyYzQuNCA0LjQgNC40IDExLjkgMCAxNi4zbC05LjcgOS43Yy00LjQgNC43LTExLjkgNC43LTE2LjYgMGwtMTAuNS0xMC41Yy00LjQtNC43LTQuNC0xMS45IDAtMTYuNmw5LjctOS43YzQuNC00LjQgMTEuOS00LjQgMTYuNiAwbDEwLjUgMTAuOHptLTMwLjItMTkuN2MzLTMgMy03LjggMC0xMC41LTIuOC0zLTcuNS0zLTEwLjUgMC0yLjggMi44LTIuOCA3LjUgMCAxMC41IDMuMSAyLjggNy44IDIuOCAxMC41IDB6bS0yNiA1LjNjLTMgMi44LTMgNy41IDAgMTAuMiAyLjggMyA3LjUgMyAxMC41IDAgMi44LTIuOCAyLjgtNy41IDAtMTAuMi0zLTMtNy43LTMtMTAuNSAwem03Mi41LTEzLjNjLTE5LjktMTQuNC0zMy44LTQzLjItMTEuOS02OC4xIDIxLjYtMjQuOSA0MC43LTE3LjIgNTkuOC44IDExLjkgMTEuMyAyOS4zIDI0LjkgMTcuMiA0OC4yLTEyLjUgMjMuNS00NS4xIDMzLjItNjUuMSAxOS4xem00Ny43LTQ0LjVjLTguOS0xMC0yMy4zIDYuOS0xNS41IDE2LjEgNy40IDkgMzIuMSAyLjQgMTUuNS0xNi4xek01MDQgMjU2YzAgMTM3LTExMSAyNDgtMjQ4IDI0OFM4IDM5MyA4IDI1NiAxMTkgOCAyNTYgOHMyNDggMTExIDI0OCAyNDh6bS02Ni4yIDQyLjZjMi41LTE2LjEtMjAuMi0xNi42LTI1LjItMjUuNy0xMy42LTI0LjEtMjcuNy0zNi44LTU0LjUtMzAuNCAxMS42LTggMjMuNS02LjEgMjMuNS02LjEuMy02LjQgMC0xMy05LjQtMjQuOSAzLjktMTIuNS4zLTIyLjQuMy0yMi40IDE1LjUtOC42IDI2LjgtMjQuNCAyOS4xLTQzLjIgMy42LTMxLTE4LjgtNTkuMi00OS44LTYyLjgtMjIuMS0yLjUtNDMuNyA3LjctNTQuMyAyNS43LTIzLjIgNDAuMSAxLjQgNzAuOSAyMi40IDgxLjQtMTQuNC0xLjQtMzQuMy0xMS45LTQwLjEtMzQuMy02LjYtMjUuNyAyLjgtNDkuOCA4LjktNjEuNCAwIDAtNC40LTUuOC04LTguOSAwIDAtMTMuOCAwLTI0LjYgNS4zIDExLjktMTUuMiAyNS4yLTE0LjQgMjUuMi0xNC40IDAtNi40LS42LTE0LjktMy42LTIxLjYtNS40LTExLTIzLjgtMTIuOS0zMS43IDIuOC4xLS4yLjMtLjQuNC0uNS01IDExLjktMS4xIDU1LjkgMTYuOSA4Ny4yLTIuNSAxLjQtOS4xIDYuMS0xMyAxMC0yMS42IDkuNy01Ni4yIDYwLjMtNTYuMiA2MC4zLTI4LjIgMTAuOC03Ny4yIDUwLjktNzAuNiA3OS43LjMgMyAxLjQgNS41IDMgNy41LTIuOCAyLjItNS41IDUtOC4zIDguMy0xMS45IDEzLjgtNS4zIDM1LjIgMTcuNyAyNC40IDE1LjgtNy4yIDI5LjYtMjAuMiAzNi4zLTMwLjQgMCAwLTUuNS01LTE2LjMtNC40IDI3LjctNi42IDM0LjMtOS40IDQ2LjItOS4xIDggMy45IDgtMzQuMyA4LTM0LjMgMC0xNC43LTIuMi0zMS0xMS4xLTQxLjUgMTIuNSAxMi4yIDI5LjEgMzIuNyAyOCA2MC42LS44IDE4LjMtMTUuMiAyMy0xNS4yIDIzLTkuMSAxNi42LTQzLjIgNjUuOS0zMC40IDEwNiAwIDAtOS43LTE0LjktMTAuMi0yMi4xLTE3LjQgMTkuNC00Ni41IDUyLjMtMjQuNiA2NC41IDI2LjYgMTQuNyAxMDguOC04OC42IDEyNi4yLTE0Mi4zIDM0LjYtMjAuOCA1NS40LTQ3LjMgNjMuOS02NSAyMiA0My41IDk1LjMgOTQuNSAxMDEuMSA1OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JpcGZpcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEyLjUgMzAxLjRjMC03My44IDEwNS4xLTEyMi41IDEwNS4xLTIwMyAwLTQ3LjEtMzQtODgtMzkuMS05MC40LjQgMy4zLjYgNi43LjYgMTBDMTc5LjEgMTEwLjEgMzIgMTcxLjkgMzIgMjg2LjZjMCA0OS44IDMyLjIgNzkuMiA2Ni41IDEwOC4zIDY1LjEgNDYuNyA3OC4xIDcxLjQgNzguMSA4Ni42IDAgMTAuMS00LjggMTctNC44IDIyLjMgMTMuMS0xNi43IDE3LjQtMzEuOSAxNy41LTQ2LjQgMC0yOS42LTIxLjctNTYuMy00NC4yLTg2LjUtMTYtMjIuMy0zMi42LTQyLjYtMzIuNi02OS41em0yMDUuMy0zOWMtMTIuMS02Ni44LTc4LTEyNC40LTk0LjctMTMwLjlsNCA3LjJjMi40IDUuMSAzLjQgMTAuOSAzLjQgMTcuMSAwIDQ0LjctNTQuMiAxMTEuMi01Ni42IDExNi43LTIuMiA1LjEtMy4yIDEwLjUtMy4yIDE1LjggMCAyMC4xIDE1LjIgNDIuMSAxNy45IDQyLjEgMi40IDAgNTYuNi01NS40IDU4LjEtODcuNyA2LjQgMTEuNyA5LjEgMjIuNiA5LjEgMzMuNCAwIDQxLjItNDEuOCA5Ni45LTQxLjggOTYuOSAwIDExLjYgMzEuOSA1My4yIDM1LjUgNTMuMiAxIDAgMi4yLTEuNCAzLjItMi40IDM3LjktMzkuMyA2Ny4zLTg1IDY3LjMtMTM2LjggMC04LS43LTE2LjItMi4yLTI0LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdydW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYxLjMgMTg5LjNjLTEuMSAxMCA1LjIgMTkuMSA1LjIgMTkuMS43LTcuNSAyLjItMTIuOCA0LTE2LjYuNCAxMC4zIDMuMiAyMy41IDEyLjggMzQuMSA2LjkgNy42IDM1LjYgMjMuMyA1NC45IDYuMSAxIDIuNCAyLjEgNS4zIDMgOC41IDIuOSAxMC4zLTIuNyAyNS4zLTIuNyAyNS4zczE1LjEtMTcuMSAxMy45LTMyLjVjMTAuOC0uNSAyMS40LTguNCAyMS4xLTE5LjUgMCAwLTE4LjkgMTAuNC0zNS41LTguOC05LjctMTEuMi00MC45LTQyLTgzLjEtMzEuOCA0LjMgMSA4LjkgMi40IDEzLjUgNC4xaC0uMWMtNC4yIDItNi41IDcuMS03IDEyem0yOC4zLTEuOGMxOS41IDExIDM3LjQgMjUuNyA0NC45IDM3LTUuNyAzLjMtMjEuNyAxMC40LTM4LTEuNy0xMC4zLTcuNi05LjgtMjYuMi02LjktMzUuM3ptMTQyLjEgNDUuOGMtMS4yIDE1LjUgMTMuOSAzMi41IDEzLjkgMzIuNXMtNS42LTE1LTIuNy0yNS4zYy45LTMuMiAyLTYgMy04LjUgMTkuMyAxNy4zIDQ4IDEuNSA1NC44LTYuMSA5LjYtMTAuNiAxMi4zLTIzLjggMTIuOC0zNC4xIDEuOCAzLjggMy40IDkuMSA0IDE2LjYgMCAwIDYuNC05LjEgNS4yLTE5LjEtLjYtNS0yLjktMTAtNy0xMS44aC0uMWM0LjYtMS44IDkuMi0zLjIgMTMuNS00LjEtNDIuMy0xMC4yLTczLjQgMjAuNi04My4xIDMxLjgtMTYuNyAxOS4yLTM1LjUgOC44LTM1LjUgOC44LS4yIDEwLjkgMTAuNCAxOC45IDIxLjIgMTkuM3ptNjIuNy00NS44YzMgOS4xIDMuNCAyNy43LTcgMzUuNC0xNi4zIDEyLjEtMzIuMiA1LTM3LjkgMS42IDcuNS0xMS40IDI1LjQtMjYgNDQuOS0zN3pNMTYwIDQxOC41aC0yOS40Yy01LjUgMC04LjIgMS42LTkuNSAyLjktMS45IDItMi4yIDQuNy0uOSA4LjEgMy41IDkuMSAxMS40IDE2LjUgMTMuNyAxOC42IDMuMSAyLjcgNy41IDQuMyAxMS44IDQuMyA0LjQgMCA4LjMtMS43IDExLTQuNiA3LjUtOC4yIDExLjktMTcuMSAxMy0xOS44LjYtMS41IDEuMy00LjUtLjktNi44LTEuOC0xLjgtNC43LTIuNy04LjgtMi43em0xODkuMi0xMDEuMmMtMi40IDE3LjktMTMgMzMuOC0yNC42IDQzLjctMy4xLTIyLjctMy43LTU1LjUtMy43LTYyLjQgMC0xNC43IDkuNS0yNC41IDEyLjItMjYuMSAyLjUtMS41IDUuNC0zIDguMy00LjYgMTgtOS42IDQwLjQtMjEuNiA0MC40LTQzLjcgMC0xNi4yLTkuMy0yMy4yLTE1LjQtMjcuOC0uOC0uNi0xLjUtMS4xLTIuMi0xLjctMi4xLTEuNy0zLjctMy00LjMtNC40LTQuNC05LjgtMy42LTM0LjItMS43LTM3LjYuNi0uNiAxNi43LTIwLjkgMTEuOC0zOS4yLTItNy40LTYuOS0xMy4zLTE0LjEtMTctNS4zLTIuNy0xMS45LTQuMi0xOS41LTQuNS0uMS0yLS41LTMuOS0uOS01LjktLjYtMi42LTEuMS01LjMtLjktOC4xLjQtNC43LjgtOSAyLjItMTEuMyA4LjQtMTMuMyAyOC44LTE3LjYgMjktMTcuNmwxMi4zLTIuNC04LjEtOS41Yy0uMS0uMi0xNy4zLTE3LjUtNDYuMy0xNy41LTcuOSAwLTE2IDEuMy0yNC4xIDMuOS0yNC4yIDcuOC00Mi45IDMwLjUtNDkuNCAzOS4zLTMuMS0xLTYuMy0xLjktOS42LTIuNy00LjItMTUuOCA5LTM4LjUgOS0zOC41cy0xMy42LTMtMzMuNyAxNS4yYy0yLjYtNi41LTguMS0yMC41LTEuOC0zNy4yQzE4NC42IDEwLjEgMTc3LjIgMjYgMTc1IDQwLjRjLTcuNi01LjQtNi43LTIzLjEtNy4yLTI3LjYtNy41LjktMjkuMiAyMS45LTI4LjIgNDguMy0yIC41LTMuOSAxLjEtNS45IDEuNy02LjUtOC44LTI1LjEtMzEuNS00OS40LTM5LjMtNy45LTIuMi0xNi0zLjUtMjMuOS0zLjUtMjkgMC00Ni4xIDE3LjMtNDYuMyAxNy41TDYgNDYuOWwxMi4zIDIuNGMuMiAwIDIwLjYgNC4zIDI5IDE3LjYgMS40IDIuMiAxLjggNi42IDIuMiAxMS4zLjIgMi44LS40IDUuNS0uOSA4LjEtLjQgMS45LS44IDMuOS0uOSA1LjktNy43LjMtMTQuMiAxLjgtMTkuNSA0LjUtNy4yIDMuNy0xMi4xIDkuNi0xNC4xIDE3LTUgMTguMiAxMS4yIDM4LjUgMTEuOCAzOS4yIDEuOSAzLjQgMi43IDI3LjgtMS43IDM3LjYtLjYgMS40LTIuMiAyLjctNC4zIDQuNC0uNy41LTEuNCAxLjEtMi4yIDEuNy02LjEgNC42LTE1LjQgMTEuNy0xNS40IDI3LjggMCAyMi4xIDIyLjQgMzQuMSA0MC40IDQzLjcgMyAxLjYgNS44IDMuMSA4LjMgNC42IDIuNyAxLjYgMTIuMiAxMS40IDEyLjIgMjYuMSAwIDYuOS0uNiAzOS43LTMuNyA2Mi40LTExLjYtOS45LTIyLjItMjUuOS0yNC42LTQzLjggMCAwLTI5LjIgMjIuNi0yMC42IDcwLjggNS4yIDI5LjUgMjMuMiA0Ni4xIDQ3IDU0LjcgOC44IDE5LjEgMjkuNCA0NS43IDY3LjMgNDkuNkMxNDMgNTA0LjMgMTYzIDUxMiAxOTIuMiA1MTJoLjJjMjkuMSAwIDQ5LjEtNy43IDYzLjYtMTkuNSAzNy45LTMuOSA1OC41LTMwLjUgNjcuMy00OS42IDIzLjgtOC43IDQxLjctMjUuMiA0Ny01NC43IDguMi00OC40LTIxLjEtNzAuOS0yMS4xLTcwLjl6TTMwNS43IDM3LjdjNS42LTEuOCAxMS42LTIuNyAxNy43LTIuNyAxMSAwIDE5LjkgMyAyNC43IDUtMy4xIDEuNC02LjQgMy4yLTkuNyA1LjMtMi40LS40LTUuNi0uOC05LjItLjgtMTAuNSAwLTIwLjUgMy4xLTI4LjcgOC45LTEyLjMgOC43LTE4IDE2LjktMjAuNyAyMi40LTIuMi0xLjMtNC41LTIuNS03LjEtMy43LTEuNi0uOC0zLjEtMS41LTQuNy0yLjIgNi4xLTkuMSAxOS45LTI2LjUgMzcuNy0zMi4yem0yMSAxOC4yYy0uOCAxLTEuNiAyLjEtMi4zIDMuMi0zLjMgNS4yLTMuOSAxMS42LTQuNCAxNy44LS41IDYuNC0xLjEgMTIuNS00LjQgMTctNC4yLjgtOC4xIDEuNy0xMS41IDIuNy0yLjMtMy4xLTUuNi03LTEwLjUtMTEuMiAxLjQtNC44IDUuNS0xNi4xIDEzLjUtMjIuNSA1LjYtNC4zIDEyLjItNi43IDE5LjYtN3pNNDUuNiA0NS4zYy0zLjMtMi4yLTYuNi00LTkuNy01LjMgNC44LTIgMTMuNy01IDI0LjctNSA2LjEgMCAxMiAuOSAxNy43IDIuNyAxNy44IDUuOCAzMS42IDIzLjIgMzcuNyAzMi4xLTEuNi43LTMuMiAxLjQtNC44IDIuMi0yLjUgMS4yLTQuOSAyLjUtNy4xIDMuNy0yLjYtNS40LTguMy0xMy43LTIwLjctMjIuNC04LjMtNS44LTE4LjItOC45LTI4LjgtOC45LTMuNC4xLTYuNi41LTkgLjl6bTQ0LjcgNDAuMWMtNC45IDQuMi04LjMgOC0xMC41IDExLjItMy40LS45LTcuMy0xLjktMTEuNS0yLjdDNjUgODkuNSA2NC41IDgzLjQgNjQgNzdjLS41LTYuMi0xLjEtMTIuNi00LjQtMTcuOC0uNy0xLjEtMS41LTIuMi0yLjMtMy4yIDcuNC4zIDE0IDIuNiAxOS41IDcgOCA2LjMgMTIuMSAxNy42IDEzLjUgMjIuNHpNNTguMSAyNTkuOWMtMi43LTEuNi01LjYtMy4xLTguNC00LjYtMTQuOS04LTMwLjItMTYuMy0zMC4yLTMwLjUgMC0xMS4xIDQuMy0xNC42IDguOS0xOC4ybC41LS40Yy43LS42IDEuNC0xLjIgMi4yLTEuOC0uOSA3LjItMS45IDEzLjMtMi43IDE0LjkgMCAwIDEyLjEtMTUgMTUuNy00NC4zIDEuNC0xMS41LTEuMS0zNC4zLTUuMS00MyAuMiA0LjkgMCA5LjgtLjMgMTQuNC0uNC0uOC0uOC0xLjYtMS4zLTIuMi0zLjItNC0xMS44LTE3LjUtOS40LTI2LjYuOS0zLjUgMy4xLTYgNi43LTcuOCAzLjgtMS45IDguOC0yLjkgMTUuMS0yLjkgMTIuMyAwIDI1LjkgMy43IDMyLjkgNiAyNS4xIDggNTUuNCAzMC45IDY0LjEgMzcuNy4yLjIuNC4zLjQuM2w1LjYgMy45LTMuNS01LjhjLS4yLS4zLTE5LjEtMzEuNC01My4yLTQ2LjUgMi0yLjkgNy40LTguMSAyMS42LTE1LjEgMjEuNC0xMC41IDQ2LjUtMTUuOCA3NC4zLTE1LjggMjcuOSAwIDUyLjkgNS4zIDc0LjMgMTUuOCAxNC4yIDYuOSAxOS42IDEyLjIgMjEuNiAxNS4xLTM0IDE1LjEtNTIuOSA0Ni4yLTUzLjEgNDYuNWwtMy41IDUuOCA1LjYtMy45cy4yLS4xLjQtLjNjOC43LTYuOCAzOS0yOS44IDY0LjEtMzcuNyA3LTIuMiAyMC42LTYgMzIuOS02IDYuMyAwIDExLjMgMSAxNS4xIDIuOSAzLjUgMS44IDUuNyA0LjQgNi43IDcuOCAyLjUgOS4xLTYuMSAyMi42LTkuNCAyNi42LS41LjYtLjkgMS4zLTEuMyAyLjItLjMtNC42LS41LTkuNS0uMy0xNC40LTQgOC44LTYuNSAzMS41LTUuMSA0MyAzLjYgMjkuMyAxNS43IDQ0LjMgMTUuNyA0NC4zLS44LTEuNi0xLjgtNy43LTIuNy0xNC45LjcuNiAxLjUgMS4yIDIuMiAxLjhsLjUuNGM0LjYgMy43IDguOSA3LjEgOC45IDE4LjIgMCAxNC4yLTE1LjQgMjIuNS0zMC4yIDMwLjUtMi45IDEuNS01LjcgMy4xLTguNCA0LjYtOC43IDUtMTggMTYuNy0xOS4xIDM0LjItLjkgMTQuNi45IDQ5LjkgMy40IDc1LjktMTIuNCA0LjgtMjYuNyA2LjQtMzkuNyA2LjgtMi00LjEtMy45LTguNS01LjUtMTMuMS0uNy0yLTE5LjYtNTEuMS0yNi40LTYyLjIgNS41IDM5IDE3LjUgNzMuNyAyMy41IDg5LjYtMy41LS41LTcuMy0uNy0xMS43LS43aC0xMTdjLTQuNCAwLTguMy4zLTExLjcuNyA2LTE1LjkgMTguMS01MC42IDIzLjUtODkuNi02LjggMTEuMi0yNS43IDYwLjMtMjYuNCA2Mi4yLTEuNiA0LjYtMy41IDktNS41IDEzLjEtMTMtLjQtMjcuMi0yLTM5LjctNi44IDIuNS0yNiA0LjMtNjEuMiAzLjQtNzUuOS0uOS0xNy40LTEwLjMtMjkuMi0xOS0zNC4yek0zNC44IDQwNC42Yy0xMi4xLTIwLTguNy01NC4xLTMuNy01OS4xIDEwLjkgMzQuNCA0Ny4yIDQ0LjMgNzQuNCA0NS40LTIuNyA0LjItNS4yIDcuNi03IDEwbC0xLjQgMS40Yy03LjIgNy44LTguNiAxOC41LTQuMSAzMS44LTIyLjctLjEtNDYuMy05LjgtNTguMi0yOS41em00NS43IDQzLjVjNiAxLjEgMTIuMiAxLjkgMTguNiAyLjQgMy41IDggNy40IDE1LjkgMTIuMyAyMy4xLTE0LjQtNS45LTI0LjQtMTYtMzAuOS0yNS41ek0xOTIgNDk4LjJjLTYwLjYtLjEtNzguMy00NS44LTg0LjktNjQuNy0zLjctMTAuNS0zLjQtMTguMi45LTIzLjEgMi45LTMuMyA5LjUtNy4yIDI0LjYtNy4yaDExOC44YzE1LjEgMCAyMS44IDMuOSAyNC42IDcuMiA0LjIgNC44IDQuNSAxMi42LjkgMjMuMS02LjYgMTguOC0yNC4zIDY0LjYtODQuOSA2NC43em04MC42LTI0LjZjNC45LTcuMiA4LjgtMTUuMSAxMi4zLTIzLjEgNi40LS41IDEyLjYtMS4zIDE4LjYtMi40LTYuNSA5LjUtMTYuNSAxOS42LTMwLjkgMjUuNXptNzYuNi02OWMtMTIgMTkuNy0zNS42IDI5LjMtNTguMSAyOS43IDQuNS0xMy4zIDMuMS0yNC4xLTQuMS0zMS44LS40LS41LS45LTEtMS40LTEuNS0xLjgtMi40LTQuMy01LjgtNy0xMCAyNy4yLTEuMiA2My41LTExIDc0LjQtNDUuNCA1IDUgOC40IDM5LjEtMy44IDU5ek0xOTEuOSAxODcuN2guMmMxMi43LS4xIDI3LjItMTcuOCAyNy4yLTE3LjgtOS45IDYtMTguOCA4LjEtMjcuMyA4LjMtOC41LS4yLTE3LjQtMi4zLTI3LjMtOC4zIDAgMCAxNC41IDE3LjYgMjcuMiAxNy44em02MS43IDIzMC43aC0yOS40Yy00LjIgMC03LjIuOS04LjkgMi43LTIuMiAyLjMtMS41IDUuMi0uOSA2LjcgMSAyLjYgNS41IDExLjMgMTMgMTkuMyAyLjcgMi45IDYuNiA0LjUgMTEgNC41czguNy0xLjYgMTEuOC00LjJjMi4zLTIgMTAuMi05LjIgMTMuNy0xOC4xIDEuMy0zLjMgMS02LS45LTcuOS0xLjMtMS4zLTQtMi45LTkuNC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHdWlsZGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0My40MjcsNjRINC41NzFjMCwxMDMuMjYsMjIuMTkyLDE4MC4wNiw0My40MTgsMjIyLjM1OEMxMTIuMDQ2LDQxNC4xMzUsMjI0LDQ0OCwyMjUuMjU2LDQ0OGEzMTIuODI0LDMxMi44MjQsMCwwLDAsMTQwLjU1LTEwMy40NzdjMjUuOTA3LTMzLjkyMyw1My4xLTg3LjE5LDY1LjkxNi0xNDUuNzYxSDE3MS44MzNjNC4xNCwzNi40MjksMjIuMTc3LDY3Ljk0Niw0NS4xLDg2Ljk0NGg4OC41ODljLTE3LjAxMiwyOC4yMTMtNDguMTg2LDU0LjQtODAuNDU2LDY5LjQ4Mi0zMS4yMzItMTMuMjU5LTY5LjA5LTQ2LjU0NC05Ni41NDgtOTguMzYyLTI2LjcyNi01My44MzMtMjcuMDkyLTEwNS44ODMtMjcuMDkyLTEwNS44ODNINDM3LjU3M0E2MjUuOTEsNjI1LjkxLDAsMCwwLDQ0My40MjcsNjRaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUd1bHAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA5LjggMzkxLjFsLTE0LjEgMjQuNi00LjYgODAuMmMwIDguOS0yOC4zIDE2LjEtNjMuMSAxNi4xcy02My4xLTcuMi02My4xLTE2LjFsLTUuOC03OS40LTE0LjktMjUuNGM0MS4yIDE3LjMgMTI2IDE2LjcgMTY1LjYgMHptLTE5Ni0yNTMuM2wxMy42IDEyNS41YzUuOS0yMCAyMC44LTQ3IDQwLTU1LjIgNi4zLTIuNyAxMi43LTIuNyAxOC43LjkgNS4yIDMgOS42IDkuMyAxMC4xIDExLjggMS4yIDYuNS0yIDkuMS00LjUgOS4xLTMgMC01LjMtNC42LTYuOC03LjMtNC4xLTcuMy0xMC4zLTcuNi0xNi45LTIuOC02LjkgNS0xMi45IDEzLjQtMTcuMSAyMC43LTUuMSA4LjgtOS40IDE4LjUtMTIgMjguMi0xLjUgNS42LTIuOSAxNC42LS42IDE5LjkgMSAyLjIgMi41IDMuNiA0LjkgMy42IDUgMCAxMi4zLTYuNiAxNS44LTEwLjEgNC41LTQuNSAxMC4zLTExLjUgMTIuNS0xNmw1LjItMTUuNWMyLjYtNi44IDkuOS01LjYgOS45IDAgMCAxMC4yLTMuNyAxMy42LTEwIDM0LjctNS44IDE5LjUtNy42IDI1LjgtNy42IDI1LjgtLjcgMi44LTMuNCA3LjUtNi4zIDcuNS0xLjIgMC0yLjEtLjQtMi42LTEuMi0xLTEuNC0uOS01LjMtLjgtNi4zLjItMy4yIDYuMy0yMi4yIDcuMy0yNS4yLTIgMi4yLTQuMSA0LjQtNi40IDYuNi01LjQgNS4xLTE0LjEgMTEuOC0yMS41IDExLjgtMy40IDAtNS42LS45LTcuNy0yLjRsNy42IDc5LjZjMiA1IDM5LjIgMTcuMSA4OC4yIDE3LjEgNDkuMSAwIDg2LjMtMTIuMiA4OC4yLTE3LjFsMTAuOS05NC42Yy01LjcgNS4yLTEyLjMgMTEuNi0xOS42IDE0LjgtNS40IDIuMy0xNy40IDMuOC0xNy40LTUuNyAwLTUuMiA5LjEtMTQuOCAxNC40LTIxLjUgMS40LTEuNyA0LjctNS45IDQuNy04LjEgMC0yLjktNi0yLjItMTEuNyAyLjUtMy4yIDIuNy02LjIgNi4zLTguNyA5LjctNC4zIDYtNi42IDExLjItOC41IDE1LjUtNi4yIDE0LjItNC4xIDguNi05LjEgMjItNSAxMy4zLTQuMiAxMS44LTUuMiAxNC0uOSAxLjktMi4yIDMuNS00IDQuNS0xLjkgMS00LjUuOS02LjEtLjMtLjktLjYtMS4zLTEuOS0xLjMtMy43IDAtLjkuMS0xLjguMy0yLjcgMS41LTYuMSA3LjgtMTguMSAxNS0zNC4zIDEuNi0zLjcgMS0yLjYuOC0yLjMtNi4yIDYtMTAuOSA4LjktMTQuNCAxMC41LTUuOCAyLjYtMTMgMi42LTE0LjUtNC4xLS4xLS40LS4xLS44LS4yLTEuMi0xMS44IDkuMi0yNC4zIDExLjctMjAtOC4xLTQuNiA4LjItMTIuNiAxNC45LTIyLjQgMTQuOS00LjEgMC03LjEtMS40LTguNi01LjEtMi4zLTUuNSAxLjMtMTQuOSA0LjYtMjMuOCAxLjctNC41IDQtOS45IDcuMS0xNi4yIDEuNi0zLjQgNC4yLTUuNCA3LjYtNC41LjYuMiAxLjEuNCAxLjYuNyAyLjYgMS44IDEuNiA0LjUuMyA3LjItMy44IDcuNS03LjEgMTMtOS4zIDIwLjgtLjkgMy4zLTIgOSAxLjUgOSAyLjQgMCA0LjctLjggNi45LTIuNCA0LjYtMy40IDguMy04LjUgMTEuMS0xMy41IDItMy42IDQuNC04LjMgNS42LTEyLjMuNS0xLjcgMS4xLTMuMyAxLjgtNC44IDEuMS0yLjUgMi42LTUuMSA1LjItNS4xIDEuMyAwIDIuNC41IDMuMiAxLjUgMS43IDIuMiAxLjMgNC41LjQgNi45LTIgNS42LTQuNyAxMC42LTYuOSAxNi43LTEuMyAzLjUtMi43IDgtMi43IDExLjcgMCAzLjQgMy43IDIuNiA2LjggMS4yIDIuNC0xLjEgNC44LTIuOCA2LjgtNC41IDEuMi00LjkuOS0zLjggMjYuNC02OC4yIDEuMy0zLjMgMy43LTQuNyA2LjEtNC43IDEuMiAwIDIuMi40IDMuMiAxLjEgMS43IDEuMyAxLjcgNC4xIDEgNi4yLS43IDEuOS0uNiAxLjMtNC41IDEwLjUtNS4yIDEyLjEtOC42IDIwLjgtMTMuMiAzMS45LTEuOSA0LjYtNy43IDE4LjktOC43IDIyLjMtLjYgMi4yLTEuMyA1LjggMSA1LjggNS40IDAgMTkuMy0xMy4xIDIzLjEtMTcgLjItLjMuNS0uNC45LS42LjYtMS45IDEuMi0zLjcgMS43LTUuNSAxLjQtMy44IDIuNy04LjIgNS4zLTExLjMuOC0xIDEuNy0xLjYgMi43LTEuNiAyLjggMCA0LjIgMS4yIDQuMiA0IDAgMS4xLS43IDUuMS0xLjEgNi4yIDEuNC0xLjUgMi45LTMgNC41LTQuNSAxNS0xMy45IDI1LjctNi44IDI1LjcuMiAwIDcuNC04LjkgMTcuNy0xMy44IDIzLjQtMS42IDEuOS00LjkgNS40LTUgNi40IDAgMS4zLjkgMS44IDIuMiAxLjggMiAwIDYuNC0zLjUgOC00LjcgNS0zLjkgMTEuOC05LjkgMTYuNi0xNC4xbDE0LjgtMTM2LjhjLTMwLjUgMTcuMS0xOTcuNiAxNy4yLTIyOC4zLjJ6bTIyOS43LTguNWMwIDIxLTIzMS4yIDIxLTIzMS4yIDAgMC04LjggNTEuOC0xNS45IDExNS42LTE1LjkgOSAwIDE3LjguMSAyNi4zLjRsMTIuNi00OC43TDIyOC4xLjZjMS40LTEuNCA1LjgtLjIgOS45IDMuNXM2LjYgNy45IDUuMyA5LjNsLS4xLjFMMTg1LjkgNzRsLTEwIDQwLjdjMzkuOSAyLjYgNjcuNiA4LjEgNjcuNiAxNC42em0tNjkuNCA0LjZjMC0uOC0uOS0xLjUtMi41LTIuMWwtLjIuOGMwIDEuMy01IDIuNC0xMS4xIDIuNHMtMTEuMS0xLjEtMTEuMS0yLjRjMC0uMSAwLS4yLjEtLjNsLjItLjdjLTEuOC42LTMgMS40LTMgMi4zIDAgMi4xIDYuMiAzLjcgMTMuNyAzLjcgNy43LjEgMTMuOS0xLjYgMTMuOS0zLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhY2tlck5ld3NTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNMjEuMiAyMjkuMkgyMWMuMS0uMS4yLS4zLjMtLjQgMCAuMSAwIC4zLS4xLjR6bTIxOCA1My45VjM4NGgtMzEuNFYyODEuM0wxMjggMTI4aDM3LjNjNTIuNSA5OC4zIDQ5LjIgMTAxLjIgNTkuMyAxMjUuNiAxMi4zLTI3IDUuOC0yNC40IDYwLjYtMTI1LjZIMzIwbC04MC44IDE1NS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYWNrZXJOZXdzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJ2NDQ4aDQ0OFYzMkgwem0yMS4yIDE5Ny4ySDIxYy4xLS4xLjItLjMuMy0uNCAwIC4xIDAgLjMtLjEuNHptMjE4IDUzLjlWMzg0aC0zMS40VjI4MS4zTDEyOCAxMjhoMzcuM2M1Mi41IDk4LjMgNDkuMiAxMDEuMiA1OS4zIDEyNS42IDEyLjMtMjcgNS44LTI0LjQgNjAuNi0xMjUuNkgzMjBsLTgwLjggMTU1LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhY2tlcnJhbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDc3LjUgMTI4QzQ2MyAxMDMuMDUgMjg1LjEzIDAgMjU2LjE2IDBTNDkuMjUgMTAyLjc5IDM0Ljg0IDEyOHMtMTQuNDkgMjMwLjggMCAyNTYgMTkyLjM4IDEyOCAyMjEuMzIgMTI4UzQ2MyA0MDkuMDggNDc3LjQ5IDM4NHMxNC41MS0yMzEgLjAxLTI1NnpNMzE2LjEzIDQxNC4yMmMtNCAwLTQwLjkxLTM1Ljc3LTM4LTM4LjY5Ljg3LS44NyA2LjI2LTEuNDggMTcuNTUtMS44MyAwLTI2LjIzLjU5LTY4LjU5Ljk0LTg2LjMyIDAtMi0uNDQtMy40My0uNDQtNS44NWgtNzkuOTNjMCA3LjEtLjQ2IDM2LjIgMS4zNyA3Mi44OC4yMyA0LjU0LTEuNTggNi01Ljc0IDUuOTQtMTAuMTMgMC0yMC4yNy0uMTEtMzAuNDEtLjA4LTQuMSAwLTUuODctMS41My01Ljc0LTYuMTEuOTItMzMuNDQgMy04NC0uMTUtMjEyLjY3di0zLjE3Yy05LjY3LS4zNS0xNi4zOC0xLTE3LjI2LTEuODQtMi45Mi0yLjkyIDM0LjU0LTM4LjY5IDM4LjQ5LTM4LjY5czQxLjE3IDM1Ljc4IDM4LjI3IDM4LjY5Yy0uODcuODctNy45IDEuNDktMTYuNzcgMS44NHYzLjE2Yy0yLjQyIDI1Ljc1LTIgNzkuNTktMi42MyAxMDUuMzloODAuMjZjMC00LjU1LjM5LTM0Ljc0LTEuMi04My42NC0uMS0zLjM5Ljk1LTUuMTcgNC4yMS01LjIgMTEuMDctLjA4IDIyLjE1LS4xMyAzMy4yMy0uMDYgMy40NiAwIDQuNTcgMS43MiA0LjUgNS4zOEMzMzMgMzU0LjY0IDMzNiAzNDEuMjkgMzM2IDM3My42OWM4Ljg3LjM1IDE2LjgyIDEgMTcuNjkgMS44NCAyLjg4IDIuOTEtMzMuNjIgMzguNjktMzcuNTggMzguNjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhpcHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjUxLjYgMTU3LjZjMC0xLjktLjktMi44LTIuOC0yLjhoLTQwLjljLTEuNiAwLTIuNyAxLjQtMi43IDIuOHYyMDEuOGMwIDEuNCAxLjEgMi44IDIuNyAyLjhoNDAuOWMxLjkgMCAyLjgtLjkgMi44LTIuOHpNMTU2LjUgMTY4Yy0xNi4xLTExLjgtMzYuMy0xNy45LTYwLjMtMTgtMTguMS0uMS0zNC42IDMuNy00OS44IDExLjRWODAuMmMwLTEuOC0uOS0yLjctMi44LTIuN0gyLjdjLTEuOCAwLTIuNy45LTIuNyAyLjd2Mjc5LjJjMCAxLjkuOSAyLjggMi43IDIuOGg0MWMxLjkgMCAyLjgtLjkgMi44LTIuOFYyMjMuM2MwLS44LTIuOC0yNyA0NS44LTI3IDQ4LjUgMCA0NS44IDI2LjEgNDUuOCAyN3YxMjIuNmMwIDkgNy4zIDE2LjMgMTYuNCAxNi4zaDI3LjNjMS44IDAgMi43LS45IDIuNy0yLjhWMjIzLjNjMC0yMy40LTkuMy00MS44LTI4LTU1LjN6bTQ3OC40IDExMC4xYy02LjgtMTUuNy0xOC40LTI3LTM0LjktMzQuMWwtNTcuNi0yNS4zYy04LjYtMy42LTkuMi0xMS4yLTIuNi0xNi4xIDcuNC01LjUgNDQuMy0xMy45IDg0IDYuOCAxLjcgMSA0LS4zIDQtMi40di00NC43YzAtMS4zLS42LTIuMS0xLjktMi42LTE3LjctNi42LTM2LjEtOS45LTU1LjEtOS45LTI2LjUgMC00NS4zIDUuOC01OC41IDE1LjQtLjUuNC0yOC40IDIwLTIyLjcgNTMuNyAzLjQgMTkuNiAxNS44IDM0LjIgMzcuMiA0My42bDUzLjYgMjMuNWMxMS42IDUuMSAxNS4yIDEzLjMgMTIuMiAyMS4yLTMuNyA5LjEtMTMuMiAxMy42LTM2LjUgMTMuNi0yNC4zIDAtNDQuNy04LjktNTguNC0xOS4xLTIuMS0xLjQtNC40LjItNC40IDIuM3YzNC40YzAgMTAuNCA0LjkgMTcuMyAxNC42IDIwLjcgMTUuNiA1LjUgMzEuNiA4LjIgNDguMiA4LjIgMTIuNyAwIDI1LjgtMS4yIDM2LjMtNC4zLjctLjMgMzYtOC45IDQ1LjYtNDUuOCAzLjUtMTMuNSAyLjQtMjYuNS0zLjEtMzkuMXpNMzc2LjIgMTQ5LjhjLTMxLjcgMC0xMDQuMiAyMC4xLTEwNC4yIDEwMy41djE4My41YzAgLjguNiAyLjcgMi43IDIuN2g0MC45YzEuOSAwIDIuOC0uOSAyLjgtMi43VjM0OGMxNi41IDEyLjcgMzUuOCAxOS4xIDU3LjcgMTkuMSA2MC41IDAgMTA4LjctNDguNSAxMDguNy0xMDguNy4xLTYwLjMtNDguMi0xMDguNi0xMDguNi0xMDguNnptMCAxNzAuOWMtMTcuMiAwLTMxLjktNi4xLTQ0LTE4LjItMTIuMi0xMi4yLTE4LjItMjYuOC0xOC4yLTQ0IDAtMzQuNSAyNy42LTYyLjIgNjIuMi02Mi4yIDM0LjUgMCA2Mi4yIDI3LjYgNjIuMiA2Mi4yLjEgMzQuMy0yNy4zIDYyLjItNjIuMiA2Mi4yek0yMjguMyA3Mi41Yy0xNS45IDAtMjguOCAxMi45LTI4LjkgMjguOSAwIDE1LjYgMTIuNyAyOC45IDI4LjkgMjguOXMyOC45LTEzLjEgMjguOS0yOC45YzAtMTYuMi0xMy0yOC45LTI4LjktMjguOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGlyZUFIZWxwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQzLjEgMEg3MS45QzY3LjkgMzcuMyAzNy40IDY3LjggMCA3MS43djM3MS41YzM3LjQgNC45IDY2IDMyLjQgNzEuOSA2OC44aDM3Mi4yYzMtMzYuNCAzMi41LTY1LjggNjcuOS02OS44VjcxLjdjLTM2LjQtNS45LTY1LTM1LjMtNjguOS03MS43em0tMzcgNDA0LjljLTM2LjMgMC0xOC44LTItNTUuMS0yLTM1LjggMC0yMSAyLTU2LjEgMi01LjkgMC00LjktOC4yIDAtOS44IDIyLjgtNy42IDIyLjktMTAuMiAyNC42LTEyLjggMTAuNC0xNS42IDUuOS04MyA1LjktMTEzIDAtNS4zLTYuNC0xMi44LTEzLjgtMTIuOEgyMDAuNGMtNy40IDAtMTMuOCA3LjUtMTMuOCAxMi44IDAgMzAtNC41IDk3LjQgNS45IDExMyAxLjcgMi41IDEuOCA1LjIgMjQuNiAxMi44IDQuOSAxLjYgNiA5LjggMCA5LjgtMzUuMSAwLTIwLjMtMi01Ni4xLTItMzYuMyAwLTE4LjggMi01NS4xIDItNy45IDAtNS44LTEwLjggMC0xMC44IDEwLjItMy40IDEzLjUtMy41IDIxLjctMTMuOCA3LjctMTIuOSA3LjktNDQuNCA3LjktMTI3LjhWMTUxLjNjMC0yMi4yLTEyLjItMjguMy0yOC42LTMyLjQtOC44LTIuMi00LTExLjggMS0xMS44IDM2LjUgMCAyMC42IDIgNTcuMSAyIDMyLjcgMCAxNi41LTIgNDkuMi0yIDMuMyAwIDguNSA4LjMgMSAxMC44LTQuOSAxLjYtMjcuNiAzLjctMjcuNiAzOS4zIDAgNDUuNi0uMiA1NS44IDEgNjguOCAwIDEuMyAyLjMgMTIuOCAxMi44IDEyLjhoMTA5LjJjMTAuNSAwIDEyLjgtMTEuNSAxMi44LTEyLjggMS4yLTEzIDEtMjMuMiAxLTY4LjggMC0zNS42LTIyLjctMzcuNy0yNy42LTM5LjMtNy41LTIuNS0yLjMtMTAuOCAxLTEwLjggMzIuNyAwIDE2LjUgMiA0OS4yIDIgMzYuNSAwIDIwLjYtMiA1Ny4xLTIgNC45IDAgOS45IDkuNiAxIDExLjgtMTYuNCA0LjEtMjguNiAxMC4zLTI4LjYgMzIuNHYxMDEuMmMwIDgzLjQuMSAxMTQuOSA3LjkgMTI3LjggOC4yIDEwLjIgMTEuNCAxMC40IDIxLjcgMTMuOCA1LjggMCA3LjggMTAuOCAwIDEwLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjYwLjM1MywyNTQuODc4LDEzMS41MzgsMzMuMWEyLjIwOCwyLjIwOCwwLDAsMC0zLjgyOS4wMDlMLjMsMjU0Ljg4N0EyLjIzNCwyLjIzNCwwLDAsMCwuMywyNTcuMTIyTDEyOS4xMTYsNDc4LjlhMi4yMDgsMi4yMDgsMCwwLDAsMy44My0uMDA5TDI2MC4zNTgsMjU3LjExM0EyLjIzOSwyLjIzOSwwLDAsMCwyNjAuMzUzLDI1NC44NzhabTM5LjA3OC0yNS43MTNhMi4xOSwyLjE5LDAsMCwwLDEuOSwxLjExMWg2Ni41MDlhMi4yMjYsMi4yMjYsMCwwLDAsMS45LTMuMzQxTDI1OS4xMTUsMzMuMTExYTIuMTg3LDIuMTg3LDAsMCwwLTEuOS0xLjExMUgxOTAuNzA3YTIuMjI2LDIuMjI2LDAsMCwwLTEuOSwzLjM0MVpNNTExLjcsMjU0Ljg4NiwzODQuOSwzMy4xMTJBMi4yLDIuMiwwLDAsMCwzODIuOTksMzJoLTY2LjZhMi4yMjYsMi4yMjYsMCwwLDAtMS45MDYsMy4zNEw0NDAuNjUyLDI1NiwzMTQuNDgxLDQ3Ni42NmEyLjIyNiwyLjIyNiwwLDAsMCwxLjkwNiwzLjM0aDY2LjZhMi4yLDIuMiwwLDAsMCwxLjkwNi0xLjExMkw1MTEuNywyNTcuMTE0QTIuMjQzLDIuMjQzLDAsMCwwLDUxMS43LDI1NC44ODZaTTM2Ni4wMTYsMjg0LjkxN0gyOTkuNTA4YTIuMTg3LDIuMTg3LDAsMCwwLTEuOSwxLjExMWwtMTA4LjgsMTkwLjYzMWEyLjIyNiwyLjIyNiwwLDAsMCwxLjksMy4zNDFoNjYuNTA5YTIuMTg3LDIuMTg3LDAsMCwwLDEuOS0xLjExMWwxMDguOC0xOTAuNjMxQTIuMjI2LDIuMjI2LDAsMCwwLDM2Ni4wMTYsMjg0LjkxN1pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG9vbGkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ0LjUgMzUybDM4LjMuOGMtMTMuMi00LjYtMjYtMTAuMi0zOC4zLTE2Ljh6bTU3LjctNS4zdjUuM2wtMTkuNC44YzM2LjUgMTIuNSA2OS45IDE0LjIgOTQuNyA3LjItMTkuOS4yLTQ1LjgtMi42LTc1LjMtMTMuM3ptNDA4LjktMTE1LjJjMTUuOSAwIDI4LjktMTIuOSAyOC45LTI4LjlzLTEyLjktMjQuNS0yOC45LTI0LjVjLTE1LjkgMC0yOC45IDguNi0yOC45IDI0LjVzMTIuOSAyOC45IDI4LjkgMjguOXptLTI5IDEyMC41SDY0MFYyNDEuNWgtNTcuOXptLTczLjcgMGg1Ny45VjE1Ni43TDUwOC40IDE4NHptLTMxLTExOS40Yy0xOC4yLTE4LjItNTAuNC0xNy4xLTUwLjQtMTcuMXMtMzIuMy0xLjEtNTAuNCAxNy4xYy0xOC4yIDE4LjItMTYuOCAzMy45LTE2LjggNTIuNnMtMS40IDM0LjMgMTYuOCA1Mi41IDUwLjQgMTcuMSA1MC40IDE3LjEgMzIuMyAxLjEgNTAuNC0xNy4xYzE4LjItMTguMiAxNi44LTMzLjggMTYuOC01Mi41LS4xLTE4LjggMS4zLTM0LjUtMTYuOC01Mi42em0tMzkuOCA3MS45YzAgMy42LTEuOCAxMi41LTEwLjcgMTIuNXMtMTAuNy04LjktMTAuNy0xMi41di00MC40YzAtOC43IDcuMy0xMC45IDEwLjctMTAuOXMxMC43IDIuMSAxMC43IDEwLjl6bS0xMDYuMi03MS45Yy0xOC4yLTE4LjItNTAuNC0xNy4xLTUwLjQtMTcuMXMtMzIuMi0xLjEtNTAuNCAxNy4xYy0xLjkgMS45LTMuNyAzLjktNS4zIDYtMzguMi0yOS42LTcyLjUtNDYuNS0xMDIuMS02MS4xdi0yMC43bC0yMi41IDEwLjZjLTU0LjQtMjIuMS04OS0xOC4yLTk3LjMuMSAwIDAtMjQuOSAzMi44IDYxLjggMTEwLjhWMzUyaDU3Ljl2LTI4LjZjLTYuNS00LjItMTMtOC43LTE5LjQtMTMuNi0xNC44LTExLjItMjcuNC0yMS42LTM4LjQtMzEuNHYtMzFjMTMuMSAxNC43IDMwLjUgMzEuNCA1My40IDUwLjNsNC41IDMuNnYtMjkuOGMwLTYuOSAxLjctMTguMiAxMC44LTE4LjJzMTAuNiA2LjkgMTAuNiAxNVYzMTdjMTggMTIuMiAzNy4zIDIyLjEgNTcuNyAyOS42di05My45YzAtMTguNy0xMy40LTM3LjQtNDAuNi0zNy40LTE1LjgtLjEtMzAuNSA4LjItMzguNSAyMS45di01NC4zYzQxLjkgMjAuOSA4My45IDQ2LjUgOTkuOSA1OC4zLTEwLjIgMTQuNi05LjMgMjguMS05LjMgNDMuNyAwIDE4LjctMS40IDM0LjMgMTYuOCA1Mi41czUwLjQgMTcuMSA1MC40IDE3LjEgMzIuMyAxLjEgNTAuNC0xNy4xYzE4LjItMTguMiAxNi43LTMzLjggMTYuNy01Mi41IDAtMTguNSAxLjUtMzQuMi0xNi43LTUyLjN6TTY1LjIgMTg0djYzLjNjLTQ4LjctNTQuNS0zOC45LTc2LTM1LjItNzkuMSAxMy41LTExLjQgMzcuNS04IDY0LjQgMi4xem0yMjYuNSAxMjAuNWMwIDMuNi0xLjggMTIuNS0xMC43IDEyLjVzLTEwLjctOC45LTEwLjctMTIuNXYtNDAuNGMwLTguNyA3LjMtMTAuOSAxMC43LTEwLjlzMTAuNyAyLjEgMTAuNyAxMC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3JuYmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03Ni4zOCAzNzAuM2EzNy44IDM3LjggMCAxIDEtMzIuMDctMzIuNDJjLTc4LjI4LTExMS4zNSA1Mi0xOTAuNTMgNTItMTkwLjUzLTUuODYgNDMtOC4yNCA5MS4xNi04LjI0IDkxLjE2LTY3LjMxIDQxLjQ5LjkzIDY0LjA2IDM5LjgxIDcyLjg3YTE0MC4zOCAxNDAuMzggMCAwIDAgMTMxLjY2IDkxLjk0YzEuOTIgMCAzLjc3LS4yMSA1LjY3LS4yOGwuMTEgMTguODZjLTk5LjIyIDEuMzktMTU4LjctMjkuMTQtMTg4Ljk0LTUxLjZ6bTEwOC0zMjcuN0EzNy41NyAzNy41NyAwIDAgMCAxODEgMjEuNDVhMzcuOTUgMzcuOTUgMCAxIDAtMzEuMTcgNTQuMjJjLTIyLjU1IDI5LjkxLTUzLjgzIDg5LjU3LTUyLjQyIDE5MGwyMS44NC0uMTVjMC0uOS0uMTQtMS43Ny0uMTQtMi42OEExNDAuNDIgMTQwLjQyIDAgMCAxIDIwNyAxMzIuNzFjOC0zNy43MSAzMC43LTExNC4zIDczLjgtNDQuMjkgMCAwIDQ4LjE0IDIuMzggOTEuMTggOC4yNCAwIDAtNzcuODQtMTI4LTE4Ny41OS01NC4wNnptMzA0LjE5IDEzNC4xN2EzNy45NCAzNy45NCAwIDEgMC01My44NC0yOC43QzQwMyAxMjYuMTMgMzQ0Ljg5IDk5IDI1MS4yOCAxMDAuMzNsLjE0IDIyLjVjMi43LS4xNSA1LjM5LS40MSA4LjE0LS40MWExNDAuMzcgMTQwLjM3IDAgMCAxIDEzMC40OSA4OC43NmMzOS4xIDkgMTA1LjA2IDMxLjU4IDM4LjQ2IDcyLjU0IDAgMC0yLjM0IDQ4LjEzLTguMjEgOTEuMTYgMCAwIDEzMy40NS04MS4xNiA0OS0xOTQuNjFhMzcuNDUgMzcuNDUgMCAwIDAgMTkuMzEtMy41ek0zNzQuMDYgNDM2LjI0YzIxLjQzLTMyLjQ2IDQ2LjQyLTg5LjY5IDQ1LjE0LTE3OS42NmwtMTkuNTIuMTRjLjA4IDIuMDYuMyA0LjA3LjMgNi4xNWExNDAuMzQgMTQwLjM0IDAgMCAxLTkxLjM5IDEzMS40NWMtOC44NSAzOC45NS0zMS40NCAxMDYuNjYtNzIuNzcgMzkuNDkgMCAwLTQ4LjEyLTIuMzQtOTEuMTktOC4yMiAwIDAgNzkuOTIgMTMxLjM0IDE5MS45IDUxYTM3LjUgMzcuNSAwIDAgMCAzLjY0IDE0IDM3LjkzIDM3LjkzIDAgMSAwIDMzLjg5LTU0LjI5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3RqYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE0LjkgMTYxLjVDMzQwLjIgMjkgMTIxLjEgMCAxMjEuMSAwUzIyMi4yIDExMC40IDkzIDE5Ny43QzExLjMgMjUyLjgtMjEgMzI0LjQgMTQgNDAyLjZjMjYuOCA1OS45IDgzLjUgODQuMyAxNDQuNiA5My40LTI5LjItNTUuMS02LjYtMTIyLjQtNC4xLTEyOS42IDU3LjEgODYuNCAxNjUgMCAxMTAuOC05My45IDcxIDE1LjQgODEuNiAxMzguNiAyNy4xIDIxNS41IDgwLjUtMjUuMyAxMzQuMS04OC45IDE0OC44LTE0NS42IDE1LjUtNTkuMyAzLjctMTI3LjktMjYuMy0xODAuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG91enogKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc1LjkgMzMwLjdIMTcxLjNWNDgwSDE3VjMyaDEwOS41djEwNC41bDMwNS4xIDg1LjZWNDgwSDI3NS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIdG1sNSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMybDM0LjkgMzk1LjhMMTkxLjUgNDgwbDE1Ny42LTUyLjJMMzg0IDMySDB6bTMwOC4yIDEyNy45SDEyNC40bDQuMSA0OS40aDE3NS42bC0xMy42IDE0OC40LTk3LjkgMjd2LjNoLTEuMWwtOTguNy0yNy4zLTYtNzUuOGg0Ny43TDEzOCAzMjBsNTMuNSAxNC41IDUzLjctMTQuNSA2LTYyLjJIODQuM0w3MS41IDExMi4yaDI0MS4xbC00LjQgNDcuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSHVic3BvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNjcuNCAyMTEuNmMtMjUuMSAyMy43LTQwLjggNTcuMy00MC44IDk0LjYgMCAyOS4zIDkuNyA1Ni4zIDI2IDc4TDIwMy4xIDQzNGMtNC40LTEuNi05LjEtMi41LTE0LTIuNS0xMC44IDAtMjAuOSA0LjItMjguNSAxMS44LTcuNiA3LjYtMTEuOCAxNy44LTExLjggMjguNnM0LjIgMjAuOSAxMS44IDI4LjVjNy42IDcuNiAxNy44IDExLjYgMjguNSAxMS42IDEwLjggMCAyMC45LTMuOSAyOC42LTExLjYgNy42LTcuNiAxMS44LTE3LjggMTEuOC0yOC41IDAtNC4yLS42LTguMi0xLjktMTIuMWw1MC01MC4yYzIyIDE2LjkgNDkuNCAyNi45IDc5LjMgMjYuOSA3MS45IDAgMTMwLTU4LjMgMTMwLTEzMC4yIDAtNjUuMi00Ny43LTExOS4yLTExMC4yLTEyOC43VjExNmMxNy41LTcuNCAyOC4yLTIzLjggMjguMi00Mi45IDAtMjYuMS0yMC45LTQ3LjktNDctNDcuOVMzMTEuMiA0NyAzMTEuMiA3My4xYzAgMTkuMSAxMC43IDM1LjUgMjguMiA0Mi45djYxLjJjLTE1LjIgMi4xLTI5LjYgNi43LTQyLjcgMTMuNi0yNy42LTIwLjktMTE3LjUtODUuNy0xNjguOS0xMjQuOCAxLjItNC40IDItOSAyLTEzLjhDMTI5LjggMjMuNCAxMDYuMyAwIDc3LjQgMCA0OC42IDAgMjUuMiAyMy40IDI1LjIgNTIuMmMwIDI4LjkgMjMuNCA1Mi4zIDUyLjIgNTIuMyA5LjggMCAxOC45LTIuOSAyNi44LTcuNmwxNjMuMiAxMTQuN3ptODkuNSAxNjMuNmMtMzguMSAwLTY5LTMwLjktNjktNjlzMzAuOS02OSA2OS02OSA2OSAzMC45IDY5IDY5LTMwLjkgNjktNjkgNjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUlkZWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyNS42MSwxNjUuNDhhNDkuMDcsNDkuMDcsMCwxLDAsNDkuMDYsNDkuMDZBNDkuMDgsNDkuMDgsMCwwLDAsMTI1LjYxLDE2NS40OFpNODYuMTUsNDI1Ljg0aDc4Ljk0VjI4NS4zMkg4Ni4xNVptMTUxLjQ2LTIxMS42YzAtMjAtMTAtMjIuNTMtMTguNzQtMjIuNTNIMjA0LjgyVjIzNy41aDE0LjA1QzIyOC42MiwyMzcuNSwyMzcuNjEsMjM0LjY5LDIzNy42MSwyMTQuMjRabTIwMS42OSw0NlYxNjguOTNoMjIuNzVWMjM3LjVoMzMuNjlDNDg2LjUsMTEzLjA4LDM4OC42MSw4Ni4xOSwyOTkuNjcsODYuMTlIMjA0Ljg0VjE2OWgxNGMyNS42LDAsNDEuNSwxNy4zNSw0MS41LDQ1LjI2LDAsMjguODEtMTUuNTIsNDYtNDEuNSw0NmgtMTRWNDI1Ljg4aDk0LjgzYzE0NC42MSwwLDE5NC45NC02Ny4xNiwxOTYuNzItMTY1LjY0Wm0tMTA5Ljc1LDBIMjczLjNWMTY5aDU0LjQzdjIyLjczSDI5NnYxMC41OGgzMFYyMjVIMjk2VjIzNy41aDMzLjUxWm03NC42NiwwLTUuMTYtMTcuNjdIMzY5LjMxbC01LjE4LDE3LjY3SDM0MC40N0wzNjgsMTY4LjkyaDMyLjM1bDI3LjUzLDkxLjM0Wk0yOTkuNjUsMzJIMzJWNDgwSDI5OS42NWMxNjEuODUsMCwyNTEtNzkuNzMsMjUxLTIyNC41MkM1NTAuNjIsMTcyLDUxOCwzMiwyOTkuNjUsMzJabTAsNDI2LjkySDUzLjA3VjUzLjA3SDI5OS42NWMxNDIuMSwwLDIyOS45LDY0LjYxLDIyOS45LDIwMi40MUM1MjkuNTUsMzg5LjU3LDQ0OC41NSw0NTguOTIsMjk5LjY1LDQ1OC45MlptODMuODYtMjY0Ljg1TDM3NiwyMTkuODhIMzkyLjRsLTcuNTItMjUuODFaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUltZGIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNMjEuMyAyMjkuMkgyMWMuMS0uMS4yLS4zLjMtLjR6TTk3IDMxOS44SDY0VjE5MmgzM3ptMTEzLjIgMGgtMjguN3YtODYuNGwtMTEuNiA4Ni40aC0yMC42bC0xMi4yLTg0LjV2ODQuNWgtMjlWMTkyaDQyLjhjMy4zIDE5LjggNiAzOS45IDguNyA1OS45bDcuNi01OS45aDQzem0xMS40IDBWMTkyaDI0LjZjMTcuNiAwIDQ0LjctMS42IDQ5IDIwLjkgMS43IDcuNiAxLjQgMTYuMyAxLjQgMjQuNCAwIDg4LjUgMTEuMSA4Mi42LTc1IDgyLjV6bTE2MC45LTI5LjJjMCAxNS43LTIuNCAzMC45LTIyLjIgMzAuOS05IDAtMTUuMi0zLTIwLjktOS44bC0xLjkgOC4xaC0yOS44VjE5MmgzMS43djQxLjdjNi02LjUgMTItOS4yIDIwLjktOS4yIDIxLjQgMCAyMi4yIDEyLjggMjIuMiAzMC4xek0yNjUgMjI5LjljMC05LjcgMS42LTE2LTEwLjMtMTZ2ODMuN2MxMi4yLjMgMTAuMy04LjcgMTAuMy0xOC40em04NS41IDI2LjFjMC01LjQgMS4xLTEyLjctNi4yLTEyLjctNiAwLTQuOSA4LjktNC45IDEyLjcgMCAuNi0xLjEgMzkuNiAxLjEgNDQuNy44IDEuNiAyLjIgMi40IDMuOCAyLjQgNy44IDAgNi4yLTkgNi4yLTE0LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUlubm9zb2Z0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyMi41NTksMTU5LjcxYTI3LjM3OSwyNy4zNzksMCwwLDAtMTMuODY2LTIzLjMzNywyNi40MiwyNi40MiwwLDAsMC0yNi4yMTEuMTMzTDczLjk0MywzMTQuNjQ3VjE3Ni4yNjFhMTEuOTU1LDExLjk1NSwwLDAsMSw2LjA0Ny0xMC4zNEwyMTguMDY2LDg2LjIwOGExMi4xNTMsMTIuMTUzLDAsMCwxLDExLjkyMi4wMjVsMzIuNjU2LDE4Ljg1M0wxMTIuNTgxLDE5MS43MjN2NTZMMzU5LjY0MiwxMDUuMDg2LDI0MS4xMjksMzYuNjc5Yy0xMC45OTItNi4xMjktMjIuMy02LjI1NS0zMy44LS4yN2wtMTY0LjYsOTUuMDI2Yy0xMC42MzQsNi4xMi0xNi43NzEsMTYuMzktMTcuMjksMjkuMTI0bDAsMTkxLjVjLjE3LDEwLjEzNSw1LjA4LDE4LjY3MiwxMy40NzQsMjMuNDI4YTI3LjAzNywyNy4wMzcsMCwwLDAsMjYuNzM2LS4wNDVMMzc0LjA1NywxOTcuMzc2VjMzNS42NTdhMTEuOTc2LDExLjk3NiwwLDAsMS01LjkyLDEwLjM2OEwyMzAuMDI1LDQyNS43N2ExMi4xNzUsMTIuMTc1LDAsMCwxLTExLjkzNy4wNjJsLTMyLjcyMy0xOC45LDE1MC4wNTEtODYuNjI3di01Nkw4OC4zNjcsNDA2LjkzMmwxMTguNzk0LDY4LjU4M2EzMy44OCwzMy44OCwwLDAsMCwzNC4yNS0uMzI3bDE2NC41MjctOTQuOTk1YzEwLjc0Ni02LjYzMSwxNi42NDktMTcuMTE4LDE2LjYyNC0yOS41MjhaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUluc3RhZ3JhbVNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQsMjAyLjY2QTUzLjM0LDUzLjM0LDAsMSwwLDI3Ny4zNiwyNTYsNTMuMzgsNTMuMzgsMCwwLDAsMjI0LDIwMi42NlptMTI0LjcxLTQxYTU0LDU0LDAsMCwwLTMwLjQxLTMwLjQxYy0yMS04LjI5LTcxLTYuNDMtOTQuMy02LjQzcy03My4yNS0xLjkzLTk0LjMxLDYuNDNhNTQsNTQsMCwwLDAtMzAuNDEsMzAuNDFjLTguMjgsMjEtNi40Myw3MS4wNS02LjQzLDk0LjMzUzkxLDMyOS4yNiw5OS4zMiwzNTAuMzNhNTQsNTQsMCwwLDAsMzAuNDEsMzAuNDFjMjEsOC4yOSw3MSw2LjQzLDk0LjMxLDYuNDNzNzMuMjQsMS45Myw5NC4zLTYuNDNhNTQsNTQsMCwwLDAsMzAuNDEtMzAuNDFjOC4zNS0yMSw2LjQzLTcxLjA1LDYuNDMtOTQuMzNTMzU3LjEsMTgyLjc0LDM0OC43NSwxNjEuNjdaTTIyNCwzMzhhODIsODIsMCwxLDEsODItODJBODEuOSw4MS45LDAsMCwxLDIyNCwzMzhabTg1LjM4LTE0OC4zYTE5LjE0LDE5LjE0LDAsMSwxLDE5LjEzLTE5LjE0QTE5LjEsMTkuMSwwLDAsMSwzMDkuNDIsMTg5Ljc0Wk00MDAsMzJINDhBNDgsNDgsMCwwLDAsMCw4MFY0MzJhNDgsNDgsMCwwLDAsNDgsNDhINDAwYTQ4LDQ4LDAsMCwwLDQ4LTQ4VjgwQTQ4LDQ4LDAsMCwwLDQwMCwzMlpNMzgyLjg4LDMyMmMtMS4yOSwyNS42My03LjE0LDQ4LjM0LTI1Ljg1LDY3cy00MS40LDI0LjYzLTY3LDI1Ljg1Yy0yNi40MSwxLjQ5LTEwNS41OSwxLjQ5LTEzMiwwLTI1LjYzLTEuMjktNDguMjYtNy4xNS02Ny0yNS44NXMtMjQuNjMtNDEuNDItMjUuODUtNjdjLTEuNDktMjYuNDItMS40OS0xMDUuNjEsMC0xMzIsMS4yOS0yNS42Myw3LjA3LTQ4LjM0LDI1Ljg1LTY3czQxLjQ3LTI0LjU2LDY3LTI1Ljc4YzI2LjQxLTEuNDksMTA1LjU5LTEuNDksMTMyLDAsMjUuNjMsMS4yOSw0OC4zMyw3LjE1LDY3LDI1Ljg1czI0LjYzLDQxLjQyLDI1Ljg1LDY3LjA1QzM4NC4zNywyMTYuNDQsMzg0LjM3LDI5NS41NiwzODIuODgsMzIyWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbnN0YWdyYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0LjEgMTQxYy02My42IDAtMTE0LjkgNTEuMy0xMTQuOSAxMTQuOXM1MS4zIDExNC45IDExNC45IDExNC45UzMzOSAzMTkuNSAzMzkgMjU1LjkgMjg3LjcgMTQxIDIyNC4xIDE0MXptMCAxODkuNmMtNDEuMSAwLTc0LjctMzMuNS03NC43LTc0LjdzMzMuNS03NC43IDc0LjctNzQuNyA3NC43IDMzLjUgNzQuNyA3NC43LTMzLjYgNzQuNy03NC43IDc0Ljd6bTE0Ni40LTE5NC4zYzAgMTQuOS0xMiAyNi44LTI2LjggMjYuOC0xNC45IDAtMjYuOC0xMi0yNi44LTI2LjhzMTItMjYuOCAyNi44LTI2LjggMjYuOCAxMiAyNi44IDI2Ljh6bTc2LjEgMjcuMmMtMS43LTM1LjktOS45LTY3LjctMzYuMi05My45LTI2LjItMjYuMi01OC0zNC40LTkzLjktMzYuMi0zNy0yLjEtMTQ3LjktMi4xLTE4NC45IDAtMzUuOCAxLjctNjcuNiA5LjktOTMuOSAzNi4xcy0zNC40IDU4LTM2LjIgOTMuOWMtMi4xIDM3LTIuMSAxNDcuOSAwIDE4NC45IDEuNyAzNS45IDkuOSA2Ny43IDM2LjIgOTMuOXM1OCAzNC40IDkzLjkgMzYuMmMzNyAyLjEgMTQ3LjkgMi4xIDE4NC45IDAgMzUuOS0xLjcgNjcuNy05LjkgOTMuOS0zNi4yIDI2LjItMjYuMiAzNC40LTU4IDM2LjItOTMuOSAyLjEtMzcgMi4xLTE0Ny44IDAtMTg0Ljh6TTM5OC44IDM4OGMtNy44IDE5LjYtMjIuOSAzNC43LTQyLjYgNDIuNi0yOS41IDExLjctOTkuNSA5LTEzMi4xIDlzLTEwMi43IDIuNi0xMzIuMS05Yy0xOS42LTcuOC0zNC43LTIyLjktNDIuNi00Mi42LTExLjctMjkuNS05LTk5LjUtOS0xMzIuMXMtMi42LTEwMi43IDktMTMyLjFjNy44LTE5LjYgMjIuOS0zNC43IDQyLjYtNDIuNiAyOS41LTExLjcgOTkuNS05IDEzMi4xLTlzMTAyLjctMi42IDEzMi4xIDljMTkuNiA3LjggMzQuNyAyMi45IDQyLjYgNDIuNiAxMS43IDI5LjUgOSA5OS41IDkgMTMyLjFzMi43IDEwMi43LTkgMTMyLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUluc3RhbG9kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1My4zODQsNDgwSDM4Ny4xMTNMNTAyLjU1NCwyNzUuNzY1LDIwNC4yMjksMzMzLjIxMVpNNTA0LjcyNiwyNDAuMDc4LDM4Ny4xMTMsMzJIMTU1LjY2OUwzNjAuMjMsMjY3LjlaTTEyNC4zODYsNDguODA5LDcuMjc0LDI1NiwxMjMuMjM2LDQ2MS4xNTQsMjI1LjYyNywxNjUuNTYxWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbnRlcmNvbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTIgMzJINTZDMjUuMSAzMiAwIDU3LjEgMCA4OHYzMzZjMCAzMC45IDI1LjEgNTYgNTYgNTZoMzM2YzMwLjkgMCA1Ni0yNS4xIDU2LTU2Vjg4YzAtMzAuOS0yNS4xLTU2LTU2LTU2em0tMTA4LjMgODIuMWMwLTE5LjggMjkuOS0xOS44IDI5LjkgMHYxOTkuNWMwIDE5LjgtMjkuOSAxOS44LTI5LjkgMFYxMTQuMXptLTc0LjYtNy41YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwdjIxNi41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwVjEwNi42em0tNzQuNyA3LjVjMC0xOS44IDI5LjktMTkuOCAyOS45IDB2MTk5LjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBWMTE0LjF6TTU5LjcgMTQ0YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwdjEzNC4zYzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwVjE0NHptMzIzLjQgMjI3LjhjLTcyLjggNjMtMjQxLjcgNjUuNC0zMTguMSAwLTE1LTEyLjggNC40LTM1LjUgMTkuNC0yMi43IDY1LjkgNTUuMyAyMTYuMSA1My45IDI3OS4zIDAgMTQuOS0xMi45IDM0LjMgOS44IDE5LjQgMjIuN3ptNS4yLTkzLjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBWMTQ0YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwdjEzNC4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbnRlcm5ldEV4cGxvcmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4My4wNDkgMTU5LjcwNmMxMC44NTUtMjQuNTc1IDIxLjQyNC02MC40MzggMjEuNDI0LTg3Ljg3MSAwLTcyLjcyMi03OS42NDEtOTguMzcxLTIwOS42NzMtMzguNTc3LTEwNy42MzItNy4xODEtMjExLjIyMSA3My42Ny0yMzcuMDk4IDE4Ni40NTcgMzAuODUyLTM0Ljg2MiA3OC4yNzEtODIuMjk4IDEyMS45NzctMTAxLjE1OEMxMjUuNDA0IDE2Ni44NSA3OS4xMjggMjI4LjAwMiA0My45OTIgMjkxLjcyNSAyMy4yNDYgMzI5LjY1MSAwIDM5MC45NCAwIDQzNi43NDdjMCA5OC41NzUgOTIuODU0IDg2LjUgMTgwLjI1MSA0Mi4wMDYgMzEuNDIzIDE1LjQzIDY2LjU1OSAxNS41NzMgMTAxLjY5NSAxNS41NzMgOTcuMTI0IDAgMTg0LjI0OS01NC4yOTQgMjE2LjgxNC0xNDYuMDIySDM3Ny45MjdjLTUyLjUwOSA4OC41OTMtMTk2LjgxOSA1Mi45OTYtMTk2LjgxOS00Ny40MzZINTA5LjljNi40MDctNDMuNTgxLTEuNjU1LTk1LjcxNS0yNi44NTEtMTQxLjE2MnpNNjQuNTU5IDM0Ni44NzdjMTcuNzExIDUxLjE1IDUzLjcwMyA5NS44NzEgMTAwLjI2NiAxMjMuMzA0LTg4Ljc0MSA0OC45NC0xNzMuMjY3IDI5LjA5Ni0xMDAuMjY2LTEyMy4zMDR6bTExNS45NzctMTA4Ljg3M2MyLTU1LjE1MSA1MC4yNzYtOTQuODcxIDEwMy45OC05NC44NzEgNTMuNDE4IDAgMTAxLjk4MSAzOS43MiAxMDMuOTgxIDk0Ljg3MUgxODAuNTM2em0xODQuNTM2LTE4Ny42YzIxLjQyNS0xMC4yODcgNDguNTYzLTIyLjAwMyA3Mi41NTgtMjIuMDAzIDMxLjQyMiAwIDU0LjI3NCAyMS43MTcgNTQuMjc0IDUzLjcyMiAwIDIwLjAwMy03LjQyNyA0OS4wMDctMTQuNTY5IDY3Ljg2Ny0yNi4yOC00Mi4yOTItNjUuOTg2LTgxLjU4NC0xMTIuMjYzLTk5LjU4NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW52aXNpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDA3LjQgMzJINDAuNkMxOC4yIDMyIDAgNTAuMiAwIDcyLjZ2MzY2LjhDMCA0NjEuOCAxOC4yIDQ4MCA0MC42IDQ4MGgzNjYuOGMyMi40IDAgNDAuNi0xOC4yIDQwLjYtNDAuNlY3Mi42YzAtMjIuNC0xOC4yLTQwLjYtNDAuNi00MC42ek0xNzYuMSAxNDUuNmMuNCAyMy40LTIyLjQgMjcuMy0yNi42IDI3LjQtMTQuOSAwLTI3LjEtMTItMjcuMS0yNyAuMS0zNS4yIDUzLjEtMzUuNSA1My43LS40ek0zMzIuOCAzNzdjLTY1LjYgMC0zNC4xLTc0LTI1LTEwNi42IDE0LjEtNDYuNC00NS4yLTU5LTU5LjkuN2wtMjUuOCAxMDMuM0gxNzdsOC4xLTMyLjVjLTMxLjUgNTEuOC05NC42IDQ0LjQtOTQuNi00LjMuMS0xNC4zLjktMTQgMjMtMTA0LjFIODEuN2w5LjctMzUuNmg3Ni40Yy0zMy42IDEzMy43LTMyLjYgMTI2LjktMzIuOSAxMzguMiAwIDIwLjkgNDAuOSAxMy41IDU3LjQtMjMuMmwxOS44LTc5LjRoLTMyLjNsOS43LTM1LjZoNjguOGwtOC45IDQwLjVjNDAuNS03NS41IDEyNy45LTQ3LjggMTAxLjggMzgtMTQuMiA1MS4xLTE0LjYgNTAuNy0xNC45IDU4LjggMCAxNS41IDE3LjUgMjIuNiAzMS44LTE2LjlMMzg2IDMyNWMtMTAuNSAzNi43LTI5LjQgNTItNTMuMiA1MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW94aG9zdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MTYgMTYwaC02Ny4zQzUxMS4yIDcwLjcgNDIyLjkgOCAzMjAgOCAxODMgOCA3MiAxMTkgNzIgMjU2YzAgMTYuNCAxLjYgMzIuNSA0LjcgNDhIMjRjLTEzLjMgMC0yNCAxMC44LTI0IDI0IDAgMTMuMyAxMC43IDI0IDI0IDI0aDY3LjNjMzcuNSA4OS4zIDEyNS44IDE1MiAyMjguNyAxNTIgMTM3IDAgMjQ4LTExMSAyNDgtMjQ4IDAtMTYuNC0xLjYtMzIuNS00LjctNDhINjE2YzEzLjMgMCAyNC0xMC44IDI0LTI0IDAtMTMuMy0xMC43LTI0LTI0LTI0em0tOTYgOTZjMCAxMTAuNS04OS41IDIwMC0yMDAgMjAwLTc1LjcgMC0xNDEuNi00Mi0xNzUuNS0xMDRINDI0YzEzLjMgMCAyNC0xMC44IDI0LTI0IDAtMTMuMy0xMC43LTI0LTI0LTI0SDEyNS44Yy0zLjgtMTUuNC01LjgtMzEuNC01LjgtNDggMC0xMTAuNSA4OS41LTIwMCAyMDAtMjAwIDc1LjcgMCAxNDEuNiA0MiAxNzUuNSAxMDRIMjE2Yy0xMy4zIDAtMjQgMTAuOC0yNCAyNCAwIDEzLjMgMTAuNyAyNCAyNCAyNGgyOTguMmMzLjggMTUuNCA1LjggMzEuNCA1LjggNDh6bS0zMDQtMjRoMjA4YzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMTMuMi0xMC43IDI0LTI0IDI0SDIxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMy4yIDEwLjctMjQgMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUl0Y2hJbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03MS45MiAzNC43N0M1MC4yIDQ3LjY3IDcuNCA5Ni44NCA3IDEwOS43M3YyMS4zNGMwIDI3LjA2IDI1LjI5IDUwLjg0IDQ4LjI1IDUwLjg0IDI3LjU3IDAgNTAuNTQtMjIuODUgNTAuNTQtNTAgMCAyNy4xMiAyMi4xOCA1MCA0OS43NiA1MHM0OS0yMi44NSA0OS01MGMwIDI3LjEyIDIzLjU5IDUwIDUxLjE2IDUwaC41YzI3LjU3IDAgNTEuMTYtMjIuODUgNTEuMTYtNTAgMCAyNy4xMiAyMS40NyA1MCA0OSA1MHM0OS43Ni0yMi44NSA0OS43Ni01MGMwIDI3LjEyIDIzIDUwIDUwLjU0IDUwIDIzIDAgNDguMjUtMjMuNzggNDguMjUtNTAuODR2LTIxLjM0Yy0uNC0xMi45LTQzLjItNjIuMDctNjQuOTItNzVDMzcyLjU2IDMyLjQgMzI1Ljc2IDMyIDI1NiAzMlM5MS4xNCAzMy4xIDcxLjkyIDM0Ljc3em0xMzIuMzIgMTM0LjM5Yy0yMiAzOC40LTc3LjkgMzguNzEtOTkuODUuMjUtMTMuMTcgMjMuMTQtNDMuMTcgMzIuMDctNTYgMjcuNjYtMy44NyA0MC4xNS0xMy42NyAyMzcuMTMgMTcuNzMgMjY5LjE1IDgwIDE4LjY3IDMwMi4wOCAxOC4xMiAzNzkuNzYgMCAzMS42NS0zMi4yNyAyMS4zMi0yMzIgMTcuNzUtMjY5LjE1LTEyLjkyIDQuNDQtNDIuODgtNC42LTU2LTI3LjY2LTIyIDM4LjUyLTc3Ljg1IDM4LjEtOTkuODUtLjI0LTcuMSAxMi40OS0yMy4wNSAyOC45NC01MS43NiAyOC45NGE1Ny41NCA1Ny41NCAwIDAgMS01MS43NS0yOC45NHptLTQxLjU4IDUzLjc3YzE2LjQ3IDAgMzEuMDkgMCA0OS4yMiAxOS43OGE0MzYuOTEgNDM2LjkxIDAgMCAxIDg4LjE4IDBDMzE4LjIyIDIyMyAzMzIuODUgMjIzIDM0OS4zMSAyMjNjNTIuMzMgMCA2NS4yMiA3Ny41MyA4My44NyAxNDQuNDUgMTcuMjYgNjIuMTUtNS41MiA2My42Ny0zMy45NSA2My43My00Mi4xNS0xLjU3LTY1LjQ5LTMyLjE4LTY1LjQ5LTYyLjc5LTM5LjI1IDYuNDMtMTAxLjkzIDguNzktMTU1LjU1IDAgMCAzMC42MS0yMy4zNCA2MS4yMi02NS40OSA2Mi43OS0yOC40Mi0uMDYtNTEuMi0xLjU4LTMzLjk0LTYzLjczIDE4LjY3LTY3IDMxLjU2LTE0NC40NSA4My44OC0xNDQuNDV6TTI1NiAyNzAuNzlzLTQ0LjM4IDQwLjc3LTUyLjM1IDU1LjIxbDI5LTEuMTd2MjUuMzJjMCAxLjU1IDIxLjM0LjE2IDIzLjMzLjE2IDExLjY1LjU0IDIzLjMxIDEgMjMuMzEtLjE2di0yNS4yOGwyOSAxLjE3Yy04LTE0LjQ4LTUyLjM1LTU1LjI0LTUyLjM1LTU1LjI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJdHVuZXNOb3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4MS45IDM4OC4yYy02LjQgMjcuNC0yNy4yIDQyLjgtNTUuMSA0OC0yNC41IDQuNS00NC45IDUuNi02NC41LTEwLjItMjMuOS0yMC4xLTI0LjItNTMuNC0yLjctNzQuNCAxNy0xNi4yIDQwLjktMTkuNSA3Ni44LTI1LjggNi0xLjEgMTEuMi0yLjUgMTUuNi03LjQgNi40LTcuMiA0LjQtNC4xIDQuNC0xNjMuMiAwLTExLjItNS41LTE0LjMtMTctMTIuMy04LjIgMS40LTE4NS43IDM0LjYtMTg1LjcgMzQuNi0xMC4yIDIuMi0xMy40IDUuMi0xMy40IDE2LjcgMCAyMzQuNyAxLjEgMjIzLjktMi41IDIzOS41LTQuMiAxOC4yLTE1LjQgMzEuOS0zMC4yIDM5LjUtMTYuOCA5LjMtNDcuMiAxMy40LTYzLjQgMTAuNC00My4yLTguMS01OC40LTU4LTI5LjEtODYuNiAxNy0xNi4yIDQwLjktMTkuNSA3Ni44LTI1LjggNi0xLjEgMTEuMi0yLjUgMTUuNi03LjQgMTAuMS0xMS41IDEuOC0yNTYuNiA1LjItMjcwLjIuOC01LjIgMy05LjYgNy4xLTEyLjkgNC4yLTMuNSAxMS44LTUuNSAxMy40LTUuNSAyMDQtMzguMiAyMjguOS00My4xIDIzMi40LTQzLjEgMTEuNS0uOCAxOC4xIDYgMTguMSAxNy42LjIgMzQ0LjUgMS4xIDMyNi0xLjggMzM4LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUl0dW5lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjMuNiA4MC4zQzEyOSA4MC4zIDUyLjUgMTU3IDUyLjUgMjUxLjVTMTI5IDQyMi44IDIyMy42IDQyMi44czE3MS4yLTc2LjcgMTcxLjItMTcxLjJjMC05NC42LTc2LjctMTcxLjMtMTcxLjItMTcxLjN6bTc5LjQgMjQwYy0zLjIgMTMuNi0xMy41IDIxLjItMjcuMyAyMy44LTEyLjEgMi4yLTIyLjIgMi44LTMxLjktNS0xMS44LTEwLTEyLTI2LjQtMS40LTM2LjggOC40LTggMjAuMy05LjYgMzgtMTIuOCAzLS41IDUuNi0xLjIgNy43LTMuNyAzLjItMy42IDIuMi0yIDIuMi04MC44IDAtNS42LTIuNy03LjEtOC40LTYuMS00IC43LTkxLjkgMTcuMS05MS45IDE3LjEtNSAxLjEtNi43IDIuNi02LjcgOC4zIDAgMTE2LjEuNSAxMTAuOC0xLjIgMTE4LjUtMi4xIDktNy42IDE1LjgtMTQuOSAxOS42LTguMyA0LjYtMjMuNCA2LjYtMzEuNCA1LjItMjEuNC00LTI4LjktMjguNy0xNC40LTQyLjkgOC40LTggMjAuMy05LjYgMzgtMTIuOCAzLS41IDUuNi0xLjIgNy43LTMuNyA1LTUuNy45LTEyNyAyLjYtMTMzLjcuNC0yLjYgMS41LTQuOCAzLjUtNi40IDIuMS0xLjcgNS44LTIuNyA2LjctMi43IDEwMS0xOSAxMTMuMy0yMS40IDExNS4xLTIxLjQgNS43LS40IDkgMyA5IDguNy0uMSAxNzAuNi40IDE2MS40LTEgMTY3LjZ6TTM0NS4yIDMySDEwMi44QzQ1LjkgMzIgMCA3Ny45IDAgMTM0Ljh2MjQyLjRDMCA0MzQuMSA0NS45IDQ4MCAxMDIuOCA0ODBoMjQyLjRjNTcgMCAxMDIuOC00NS45IDEwMi44LTEwMi44VjEzNC44QzQ0OCA3Ny45IDQwMi4xIDMyIDM0NS4yIDMyek0yMjMuNiA0NDRjLTEwNi4zIDAtMTkyLjUtODYuMi0xOTIuNS0xOTIuNVMxMTcuMyA1OSAyMjMuNiA1OXMxOTIuNSA4Ni4yIDE5Mi41IDE5Mi41UzMyOS45IDQ0NCAyMjMuNiA0NDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUphdmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc3Ljc0IDMxMi45YzkuOC02LjcgMjMuNC0xMi41IDIzLjQtMTIuNXMtMzguNyA3LTc3LjIgMTAuMmMtNDcuMSAzLjktOTcuNyA0LjctMTIzLjEgMS4zLTYwLjEtOCAzMy0zMC4xIDMzLTMwLjFzLTM2LjEtMi40LTgwLjYgMTljLTUyLjUgMjUuNCAxMzAgMzcgMjI0LjUgMTIuMXptLTg1LjQtMzIuMWMtMTktNDIuNy04My4xLTgwLjIgMC0xNDUuOEMyOTYgNTMuMiAyNDIuODQgMCAyNDIuODQgMGMyMS41IDg0LjUtNzUuNiAxMTAuMS0xMTAuNyAxNjIuNi0yMy45IDM1LjkgMTEuNyA3NC40IDYwLjIgMTE4LjJ6bTExNC42LTE3Ni4yYy4xIDAtMTc1LjIgNDMuOC05MS41IDE0MC4yIDI0LjcgMjguNC02LjUgNTQtNi41IDU0czYyLjctMzIuNCAzMy45LTcyLjljLTI2LjktMzcuOC00Ny41LTU2LjYgNjQuMS0xMjEuM3ptLTYuMSAyNzAuNWExMi4xOSAxMi4xOSAwIDAgMS0yIDIuNmMxMjguMy0zMy43IDgxLjEtMTE4LjkgMTkuOC05Ny4zYTE3LjMzIDE3LjMzIDAgMCAwLTguMiA2LjMgNzAuNDUgNzAuNDUgMCAwIDEgMTEtM2MzMS02LjUgNzUuNSA0MS41LTIwLjYgOTEuNHpNMzQ4IDQzNy40czE0LjUgMTEuOS0xNS45IDIxLjJjLTU3LjkgMTcuNS0yNDAuOCAyMi44LTI5MS42LjctMTguMy03LjkgMTYtMTkgMjYuOC0yMS4zIDExLjItMi40IDE3LjctMiAxNy43LTItMjAuMy0xNC4zLTEzMS4zIDI4LjEtNTYuNCA0MC4yQzIzMi44NCA1MDkuNCA0MDEgNDYxLjMgMzQ4IDQzNy40ek0xMjQuNDQgMzk2Yy03OC43IDIyIDQ3LjkgNjcuNCAxNDguMSAyNC41YTE4NS44OSAxODUuODkgMCAwIDEtMjguMi0xMy44Yy00NC43IDguNS02NS40IDkuMS0xMDYgNC41LTMzLjUtMy44LTEzLjktMTUuMi0xMy45LTE1LjJ6bTE3OS44IDk3LjJjLTc4LjcgMTQuOC0xNzUuOCAxMy4xLTIzMy4zIDMuNiAwLS4xIDExLjggOS43IDcyLjQgMTMuNiA5Mi4yIDUuOSAyMzMuOC0zLjMgMjM3LjEtNDYuOSAwIDAtNi40IDE2LjUtNzYuMiAyOS43ek0yNjAuNjQgMzUzYy01OS4yIDExLjQtOTMuNSAxMS4xLTEzNi44IDYuNi0zMy41LTMuNS0xMS42LTE5LjctMTEuNi0xOS43LTg2LjggMjguOCA0OC4yIDYxLjQgMTY5LjUgMjUuOWE2MC4zNyA2MC4zNyAwIDAgMS0yMS4xLTEyLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUplZGlPcmRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTguNSAzNzMuNmM5NS45LTEyMi4xIDE3LjItMjMzLjEgMTcuMi0yMzMuMSA0NS40IDg1LjgtNDEuNCAxNzAuNS00MS40IDE3MC41IDEwNS0xNzEuNS02MC41LTI3MS41LTYwLjUtMjcxLjUgOTYuOSA3Mi43LTEwLjEgMTkwLjctMTAuMSAxOTAuNyA4NS44IDE1OC40LTY4LjYgMjMwLjEtNjguNiAyMzAuMXMtLjQtMTYuOS0yLjItODUuN2M0LjMgNC41IDM0LjUgMzYuMiAzNC41IDM2LjJsLTI0LjItNDcuNCA2Mi42LTkuMS02Mi42LTkuMSAyMC4yLTU1LjUtMzEuNCA0NS45Yy0yLjItODcuNy03LjgtMzA1LjEtNy45LTMwNi45di0yLjQgMS0xIDIuNGMwIDEtNS42IDIxOS03LjkgMzA2LjlsLTMxLjQtNDUuOSAyMC4yIDU1LjUtNjIuNiA5LjEgNjIuNiA5LjEtMjQuMiA0Ny40IDM0LjUtMzYuMmMtMS44IDY4LjgtMi4yIDg1LjctMi4yIDg1LjdzLTE1NC40LTcxLjctNjguNi0yMzAuMWMwIDAtMTA3LTExOC4xLTEwLjEtMTkwLjcgMCAwLTE2NS41IDk5LjktNjAuNSAyNzEuNSAwIDAtODYuOC04NC44LTQxLjQtMTcwLjUgMCAwLTc4LjcgMTExIDE3LjIgMjMzLjEgMCAwLTI2LjItMTYuMS00OS40LTc3LjcgMCAwIDE2LjkgMTgzLjMgMjIyIDE4NS43aDQuMWMyMDUtMi40IDIyMi0xODUuNyAyMjItMTg1LjctMjMuNiA2MS41LTQ5LjkgNzcuNy00OS45IDc3Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUplbmtpbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg3LjEgNDI1Yy0xLjQtMTEuMi0xOS0yMy4xLTI4LjItMzEuOS01LjEtNS0yOS0yMy4xLTMwLjQtMjkuOS0xLjQtNi42IDkuNy0yMS41IDEzLjMtMjguOSA1LjEtMTAuNyA4LjgtMjMuNyAxMS4zLTMyLjYgMTguOC02Ni4xIDIwLjctMTU2LjktNi4yLTIxMS4yLTEwLjItMjAuNi0zOC42LTQ5LTU2LjQtNjIuNS00Mi0zMS43LTExOS42LTM1LjMtMTcwLjEtMTYuNi0xNC4xIDUuMi0yNy44IDkuOC00MC4xIDE3LjEtMzMuMSAxOS40LTY4LjMgMzIuNS03OC4xIDcxLjYtMjQuMiAxMC44LTMxLjUgNDEuOC0zMC4zIDc3LjguMiA3IDQuMSAxNS44IDIuNyAyMi40LS43IDMuMy01LjIgNy42LTYuMSA5LjgtMTEuNiAyNy43LTIuMyA2NCAxMS4xIDgzLjcgOC4xIDExLjkgMjEuNSAyMi40IDM5LjIgMjUuMi43IDEwLjYgMy4zIDE5LjcgOC4yIDMwLjQgMy4xIDYuOCAxNC43IDE5IDEwLjQgMjcuNy0yLjIgNC40LTIxIDEzLjgtMjcuMyAxNy42Qzg5IDQwNy4yIDczLjcgNDE1IDU0LjIgNDI5Yy0xMi42IDktMzIuMyAxMC4yLTI5LjIgMzEuMSAyLjEgMTQuMSAxMC4xIDMxLjYgMTQuNyA0NS44LjcgMiAxLjQgNC4xIDIuMSA2aDQyMmM0LjktMTUuMyA5LjctMzAuOSAxNC42LTQ3LjIgMy40LTExLjQgMTAuMi0yNy44IDguNy0zOS43ek0yMDUuOSAzMy43YzEuOC0uNSAzLjQuNyA0LjkgMi40LS4yIDUuMi01LjQgNS4xLTguOSA2LjgtNS40IDYuNy0xMy40IDkuOC0yMCAxNy4yLTYuOCA3LjUtMTQuNCAyNy43LTIzLjQgMzAtNC41IDEuMS05LjctLjgtMTMuNi0uNS0xMC40LjctMTcuNyA2LTI4LjMgNy41IDEzLjYtMjkuOSA1Ni4xLTU0IDg5LjMtNjMuNHptLTEwNC44IDkzLjZjMTMuNS0xNC45IDMyLjEtMjQuMSA1NC44LTI1LjkgMTEuNyAyOS43LTguNCA2NS0uOSA5Ny42IDIuMyA5LjkgMTAuMiAyNS40LTIuNCAyNS43LjMtMjguMy0zNC44LTQ2LjMtNjEuMy0yOS42LTEuOC0yMS41LTQuOS01MS43IDkuOC02Ny44em0zNi43IDIwMC4yYy0xLTQuMS0yLjctMTIuOS0yLjMtMTUuMSAxLjYtOC43IDE3LjEtMTIuNSAxMS0yNC43LTExLjMtLjEtMTMuOCAxMC4yLTI0LjEgMTEuMy0yNi43IDIuNi00NS42LTM1LjQtNDQuNC01OC40IDEtMTkuNSAxNy42LTM4LjIgNDAuMS0zNS44IDE2IDEuOCAyMS40IDE5LjIgMjQuNSAzNC43IDkuMi41IDIyLjUtLjQgMjYuOS03LjYtLjYtMTcuNS04LjgtMzEuNi04LjItNDcuNyAxLTMwLjMgMTcuNS01Ny42IDQuOC04Ny40IDEzLjYtMzAuOSA1My41LTU1LjMgODMuMS03MCAzNi42LTE4LjMgOTQuOS0zLjcgMTI5LjMgMTUuOCAxOS43IDExLjEgMzQuNCAzMi43IDQ4LjMgNTAuNy0xOS41LTUuOC0zNi4xIDQuMi0zMy4xIDIwLjMgMTYuMy0xNC45IDQ0LjItLjIgNTIuNSAxNi40IDcuOSAxNS44IDcuOCAzOS4zIDkgNjIuOCAyLjkgNTctMTAuNCAxMTUuOS0zOS4xIDE1Ny4xLTcuNyAxMS0xNC4xIDIzLTI0LjkgMzAuNi0yNiAxOC4yLTY1LjQgMzQuNy05OS4yIDIzLjQtNDQuNy0xNS02NS00NC44LTg5LjUtNzguOC43IDE4LjcgMTMuOCAzNC4xIDI2LjggNDguNCAxMS4zIDEyLjUgMjUgMjYuNiAzOS43IDMyLjQtMTIuMy0yLjktMzEuMS0zLjgtMzYuMiA3LjItMjguNi0xLjktNTUuMS00LjgtNjguNy0yNC4yLTEwLjYtMTUuNC0yMS40LTQxLjQtMjYuMy02MS40em0yMjIgMTI0LjFjNC4xLTMgMTEuMS0yLjkgMTcuNC0zLjYtNS40LTIuNy0xMy0zLjctMTkuMy0yLjItLjEtNC4yLTItNi44LTMuMi0xMC4yIDEwLjYtMy44IDM1LjUtMjguNSA0OS42LTIwLjMgNi43IDMuOSA5LjUgMjYuMiAxMC4xIDM3IC40IDktLjggMTgtNC41IDIyLjgtMTguOC0uNi0zNS44LTIuOC01MC43LTcgLjktNi4xLTEtMTIuMS42LTE2LjV6bS0xNy4yLTIwYy0xNi44LjgtMjYtMS4yLTM4LjMtMTAuOC4yLS44IDEuNC0uNSAxLjUtMS40IDE4IDggNDAuOC0zLjMgNTktNC45LTcuOSA1LjEtMTQuNiAxMS42LTIyLjIgMTcuMXptLTEyLjEgMzMuMmMtMS42LTkuNC0zLjUtMTItMi44LTIwLjIgMjUtMTYuNiAyOS43IDI4LjYgMi44IDIwLjJ6TTIyNiA0MzguNmMtMTEuNi0uNy00OC4xLTE0LTM4LjUtMjMuNyA5LjQgNi41IDI3LjUgNC45IDQxLjMgNy4zLjggNC40LTIuOCAxMC4yLTIuOCAxNi40ek01Ny43IDQ5Ny4xYy00LjMtMTIuNy05LjItMjUuMS0xNC44LTM2LjkgMzAuOC0yMy44IDY1LjMtNDguOSAxMDIuMi02My41IDIuOC0xLjEgMjMuMiAyNS40IDI2LjIgMjcuNiAxNi41IDExLjcgMzcgMjEgNTYuMiAzMC4yIDEuMiA4LjggMy45IDIwLjIgOC43IDM1LjUuNyAyLjMgMS40IDQuNyAyLjIgNy4ySDU3Ljd6bTI0MC42IDUuN2gtLjhjLjMtLjIuNS0uNC44LS41di41em03LjUtNS43YzIuMS0xLjQgNC4zLTIuOCA2LjQtNC4zIDEuMSAxLjQgMi4yIDIuOCAzLjIgNC4zaC05LjZ6bTE1LjEtMjQuN2MtMTAuOCA3LjMtMjAuNiAxOC4zLTMzLjMgMjUuMi02IDMuMy0yNyAxMS43LTMzLjQgMTAuMi0zLjYtLjgtMy45LTUuMy01LjQtOS41LTMuMS05LTEwLjEtMjMuNC0xMC44LTM3LS44LTE3LjItMi41LTQ2IDE2LTQyLjQgMTQuOSAyLjkgMzIuMyA5LjcgNDMuOSAxNi4xIDcuMSAzLjkgMTEuMSA4LjYgMjEuOSA5LjUtLjEgMS40LS4xIDIuOC0uMiA0LjMtNS45IDMuOS0xNS4zIDMuOC0yMS44IDcuMSA5LjUuNCAxNyAyLjcgMjMuNSA1LjktLjEgMy40LS4zIDctLjQgMTAuNnptNTMuNCAyNC43aC0xNGMtLjEtMy4yLTIuOC01LjgtNi4xLTUuOHMtNS45IDIuNi02LjEgNS44aC0xNy40Yy0yLjgtNC40LTUuNy04LjYtOC45LTEyLjUgMi4xLTIuMiA0LTQuNyA2LTYuOSA5IDMuNyAxNC44LTQuOSAyMS43LTQuMiA3LjkuOCAxNC4yIDExLjcgMjUuNCAxMWwtLjYgMTIuNnptOC43IDBjLjItNCAuNC03LjguNi0xMS41IDE1LjYtNy4zIDI5IDEuMyAzNS43IDExLjVIMzgzem04My40LTM3Yy0yLjMgMTEuMi01LjggMjQtOS45IDM3LjEtLjItLjEtLjQtLjEtLjYtLjFINDI4Yy42LTEuMSAxLjItMi4yIDEuOS0zLjMtMi42LTYuMS05LTguNy0xMC45LTE1LjUgMTIuMS0yMi43IDYuNS05My40LTI0LjItNzguNSA0LjMtNi4zIDE1LjYtMTEuNSAyMC44LTE5LjMgMTMgMTAuNCAyMC44IDIwLjMgMzMuMiAzMS40IDYuOCA2IDIwIDEzLjMgMjEuNCAyMy4xLjggNS41LTIuNiAxOC45LTMuOCAyNS4xek0yMjIuMiAxMzAuNWM1LjQtMTQuOSAyNy4yLTM0LjcgNDUtMzIgNy43IDEuMiAxOCA4LjIgMTIuMiAxNy43LTMwLjItNy00NS4yIDEyLjYtNTQuNCAzMy4xLTguMS0yLTQuOS0xMy4xLTIuOC0xOC44em0xODQuMSA2My4xYzguMi0zLjYgMjIuNC0uNyAyOS42LTUuMy00LjItMTEuNS0xMC4zLTIxLjQtOS4zLTM3LjcuNSAwIDEgMCAxLjQuMSA2LjggMTQuMiAxMi43IDI5LjIgMjEuNCA0MS43LTUuNyAxMy41LTQzLjYgMjUuNC00My4xIDEuMnptMjAuNC00M3ptLTExNy4yIDQ1LjdjLTYuOC0xMC45LTE5LTMyLjUtMTQuNS00NS4zIDYuNSAxMS45IDguNiAyNC40IDE3LjggMzMuMyA0LjEgNCAxMi4yIDkgOC4yIDIwLjItLjkgMi43LTcuOCA4LjYtMTEuNyA5LjctMTQuNCA0LjMtNDcuOS45LTM2LjYtMTcuMSAxMS45LjcgMjcuOSA3LjggMzYuOC0uOHptMjcuMyA3MGMzLjggNi42IDEuNCAxOC43IDEyLjEgMjAuNiAyMC4yIDMuNCA0My42LTEyLjMgNTguMS0xNy44IDktMTUuMi0uOC0yMC43LTguOS0zMC41LTE2LjYtMjAtMzguOC00NC44LTM4LTc0LjcgNi43LTQuOSA3LjMgNy40IDguMiA5LjcgOC43IDIwLjMgMzAuNCA0Ni4yIDQ2LjMgNjMuNSAzLjkgNC4zIDEwLjMgOC40IDExIDExLjIgMi4xIDguMi01LjQgMTgtNC41IDIzLjUtMjEuNyAxMy45LTQ1LjggMjkuMS04MS40IDI1LjYtNy40LTYuNy0xMC4zLTIxLjQtMi45LTMxLjF6bS0yMDEuMy05LjJjLTYuOC0zLjktOC40LTIxLTE2LjQtMjEuNC0xMS40LS43LTkuMyAyMi4yLTkuMyAzNS41LTcuOC03LjEtOS4yLTI5LjEtMy41LTQwLjMtNi42LTMuMi05LjUgMy42LTEzLjEgNS45IDQuNy0zNC4xIDQ5LjgtMTUuOCA0Mi4zIDIwLjN6bTI5OS42IDI4LjhjLTEwLjEgMTkuMi0yNC40IDQwLjQtNTQgNDEtLjYtNi4yLTEuMS0xNS42IDAtMTkuNCAyMi43LTIuMiAzNi42LTEzLjcgNTQtMjEuNnptLTE0MS45IDEyLjRjMTguOSA5LjkgNTMuNiAxMSA3OS4zIDEwLjIgMS40IDUuNiAxLjMgMTIuNiAxLjQgMTkuNC0zMyAxLjgtNzItNi40LTgwLjctMjkuNnptOTIuMiA0Ni43Yy0xLjcgNC4zLTUuMyA5LjMtOS44IDExLjEtMTIuMSA0LjktNDUuNiA4LjctNjIuNC0uMy0xMC43LTUuNy0xNy41LTE4LjUtMjMuNC0yNi0yLjgtMy42LTE2LjktMTIuOS0uMi0xMi45IDEzLjEgMzIuNyA1OCAyOSA5NS44IDI4LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUppcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDkwIDI0MS43QzQxNy4xIDE2OSAzMjAuNiA3MS44IDI0OC41IDAgODMgMTY0LjkgNiAyNDEuNyA2IDI0MS43Yy03LjkgNy45LTcuOSAyMC43IDAgMjguN0MxMzguOCA0MDIuNyA2Ny44IDMzMS45IDI0OC41IDUxMmMzNzkuNC0zNzggMTUuNy0xNi43IDI0MS41LTI0MS43IDgtNy45IDgtMjAuNyAwLTI4LjZ6bS0yNDEuNSA5MGwtNzYtNzUuNyA3Ni03NS43IDc2IDc1LjctNzYgNzUuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSm9nZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzc4LjEgNDVDMzM3LjYgMTkuOSAyOTIuNiA4IDI0OC4yIDggMTY1IDggODMuOCA0OS45IDM2LjkgMTI1LjljLTcxLjkgMTE2LjYtMzUuNiAyNjkuMyA4MSAzNDEuMnMyNjkuMyAzNS42IDM0MS4yLTgwLjljNzEuOS0xMTYuNiAzNS42LTI2OS40LTgxLTM0MS4yem01MS44IDMyMy4yYy00MC40IDY1LjUtMTEwLjQgMTAxLjUtMTgyIDEwMS41LTYuOCAwLTEzLjYtLjQtMjAuNC0xLTktMTMuNi0xOS45LTMzLjMtMjMuNy00Mi40LTUuNy0xMy43LTI3LjItNDUuNiAzMS4yLTY3LjEgNTEuNy0xOS4xIDE3Ni43LTE2LjUgMjA4LjgtMTcuNi00IDktOC42IDE3LjktMTMuOSAyNi42em0tMjAwLjgtODYuM2MtNTUuNS0xLjQtODEuNy0yMC44LTU4LjUtNDguMnM1MS4xLTQwLjcgNjguOS01MS4yYzE3LjktMTAuNSAyNy4zLTMzLjctMjMuNi0yOS43Qzg3LjMgMTYxLjUgNDguNiAyNTIuMSAzNy42IDI5M2MtOC44LTQ5LjctLjEtMTAyLjcgMjguNS0xNDkuMUMxMjggNDMuNCAyNTkuNiAxMi4yIDM2MC4xIDc0LjFjNzQuOCA0Ni4xIDExMS4yIDEzMC45IDk5LjMgMjEyLjctMjQuOS0uNS0xNzkuMy0zLjYtMjMwLjMtNC45em0xODMuOC01NC44Yy0yMi43LTYtNTcgMTEuMy04Ni43IDI3LjItMjkuNyAxNS44LTMxLjEgOC4yLTMxLjEgOC4yczQwLjItMjguMSA1MC43LTM0LjUgMzEuOS0xNCAxMy40LTI0LjZjLTMuMi0xLjgtNi43LTIuNy0xMC40LTIuNy0xNy44IDAtNDEuNSAxOC43LTY3LjUgMzUuNi0zMS41IDIwLjUtNjUuMyAzMS4zLTY1LjMgMzEuM2wxNjkuNS0xLjYgNDYuNS0yMy40czMuNi05LjUtMTkuMS0xNS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKb29tbGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjYgOTIuMUMuNiA1OC44IDI3LjQgMzIgNjAuNCAzMmMzMCAwIDU0LjUgMjEuOSA1OS4yIDUwLjIgMzIuNi03LjYgNjcuMS42IDk2LjUgMzBsLTQ0LjMgNDQuM2MtMjAuNS0yMC41LTQyLjYtMTYuMy01NS40LTMuNS0xNC4zIDE0LjMtMTQuMyAzNy45IDAgNTIuMmw5OS41IDk5LjUtNDQgNDQuM2MtODcuNy04Ny4yLTQ5LjctNDkuNy05OS44LTk5LjctMjYuOC0yNi41LTM1LTY0LjgtMjQuOC05OC45QzIwLjQgMTQ0LjYuNiAxMjAuNy42IDkyLjF6bTEyOS41IDExNi40bDQ0LjMgNDQuM2MxMC0xMCA4OS43LTg5LjcgOTkuNy05OS44IDE0LjMtMTQuMyAzNy42LTE0LjMgNTEuOSAwIDEyLjggMTIuOCAxNyAzNS0zLjUgNTUuNGw0NCA0NC4zYzMxLjItMzEuMiAzOC41LTY3LjYgMjguOS0xMDEuMiAyOS4yLTQuMSA1MS45LTI5LjIgNTEuOS01OS41IDAtMzMuMi0yNi44LTYwLjEtNTkuOC02MC4xLTMwLjMgMC01NS40IDIyLjUtNTkuNSA1MS42LTMzLjgtOS45LTcxLjctMS41LTk4LjMgMjUuMS0xOC4zIDE5LjEtNzEuMSA3MS41LTk5LjYgOTkuOXptMjY2LjMgMTUyLjJjOC4yLTMyLjctLjktNjguNS0yNi4zLTkzLjktMTEuOC0xMi4yIDUgNC43LTk5LjUtOTkuN2wtNDQuMyA0NC4zIDk5LjcgOTkuN2MxNC4zIDE0LjMgMTQuMyAzNy42IDAgNTEuOS0xMi44IDEyLjgtMzUgMTctNTUuNC0zLjVsLTQ0IDQ0LjNjMjcuNiAzMC4yIDY4IDM4LjggMTAyLjcgMjggNS41IDI3LjQgMjkuNyA0OC4xIDU4LjkgNDguMSAzMyAwIDU5LjgtMjYuOCA1OS44LTYwLjEgMC0zMC4yLTIyLjUtNTUtNTEuNi01OS4xem0tODQuMy01My4xbC00NC00NC4zYy04NyA4Ni40LTUwLjQgNTAuNC05OS43IDk5LjgtMTQuMyAxNC4zLTM3LjYgMTQuMy01MS45IDAtMTMuMS0xMy40LTE2LjktMzUuMyAzLjItNTUuNGwtNDQtNDQuM2MtMzAuMiAzMC4yLTM4IDY1LjItMjkuNSA5OC4zLTI2LjcgNi00Ni4yIDI5LjktNDYuMiA1OC4yQzAgNDUzLjIgMjYuOCA0ODAgNTkuOCA0ODBjMjguNiAwIDUyLjUtMTkuOCA1OC42LTQ2LjcgMzIuNyA4LjIgNjguNS0uNiA5NC4yLTI2IDMyLjEtMzIgMTIuMi0xMi40IDk5LjUtOTkuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSnNTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNMjQzLjggMzgxLjRjMCA0My42LTI1LjYgNjMuNS02Mi45IDYzLjUtMzMuNyAwLTUzLjItMTcuNC02My4yLTM4LjVsMzQuMy0yMC43YzYuNiAxMS43IDEyLjYgMjEuNiAyNy4xIDIxLjYgMTMuOCAwIDIyLjYtNS40IDIyLjYtMjYuNVYyMzcuN2g0Mi4xdjE0My43em05OS42IDYzLjVjLTM5LjEgMC02NC40LTE4LjYtNzYuNy00M2wzNC4zLTE5LjhjOSAxNC43IDIwLjggMjUuNiA0MS41IDI1LjYgMTcuNCAwIDI4LjYtOC43IDI4LjYtMjAuOCAwLTE0LjQtMTEuNC0xOS41LTMwLjctMjhsLTEwLjUtNC41Yy0zMC40LTEyLjktNTAuNS0yOS4yLTUwLjUtNjMuNSAwLTMxLjYgMjQuMS01NS42IDYxLjYtNTUuNiAyNi44IDAgNDYgOS4zIDU5LjggMzMuN0wzNjggMjkwYy03LjItMTIuOS0xNS0xOC0yNy4xLTE4LTEyLjMgMC0yMC4xIDcuOC0yMC4xIDE4IDAgMTIuNiA3LjggMTcuNyAyNS45IDI1LjZsMTAuNSA0LjVjMzUuOCAxNS4zIDU1LjkgMzEgNTUuOSA2Ni4yIDAgMzcuOC0yOS44IDU4LjYtNjkuNyA1OC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMydjQ0OGg0NDhWMzJIMHptMjQzLjggMzQ5LjRjMCA0My42LTI1LjYgNjMuNS02Mi45IDYzLjUtMzMuNyAwLTUzLjItMTcuNC02My4yLTM4LjVsMzQuMy0yMC43YzYuNiAxMS43IDEyLjYgMjEuNiAyNy4xIDIxLjYgMTMuOCAwIDIyLjYtNS40IDIyLjYtMjYuNVYyMzcuN2g0Mi4xdjE0My43em05OS42IDYzLjVjLTM5LjEgMC02NC40LTE4LjYtNzYuNy00M2wzNC4zLTE5LjhjOSAxNC43IDIwLjggMjUuNiA0MS41IDI1LjYgMTcuNCAwIDI4LjYtOC43IDI4LjYtMjAuOCAwLTE0LjQtMTEuNC0xOS41LTMwLjctMjhsLTEwLjUtNC41Yy0zMC40LTEyLjktNTAuNS0yOS4yLTUwLjUtNjMuNSAwLTMxLjYgMjQuMS01NS42IDYxLjYtNTUuNiAyNi44IDAgNDYgOS4zIDU5LjggMzMuN0wzNjggMjkwYy03LjItMTIuOS0xNS0xOC0yNy4xLTE4LTEyLjMgMC0yMC4xIDcuOC0yMC4xIDE4IDAgMTIuNiA3LjggMTcuNyAyNS45IDI1LjZsMTAuNSA0LjVjMzUuOCAxNS4zIDU1LjkgMzEgNTUuOSA2Ni4yIDAgMzcuOC0yOS44IDU4LjYtNjkuNyA1OC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKc2ZpZGRsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTAuNjM0IDIzNy40NjJjLTQuNzI3LTIuNjIxLTUuNjY0LTUuNzQ4LTYuMzgxLTEwLjc3Ni0yLjM1Mi0xNi40ODgtMy41MzktMzMuNjE5LTkuMDk3LTQ5LjA5NS0zNS44OTUtOTkuOTU3LTE1My45OS0xNDMuMzg2LTI0Ni44NDktOTEuNjQ2LTI3LjM3IDE1LjI1LTQ4Ljk3MSAzNi4zNjktNjUuNDkzIDYzLjkwMy0zLjE4NC0xLjUwOC01LjQ1OC0yLjcxLTcuODI0LTMuNjg2LTMwLjEwMi0xMi40MjEtNTkuMDQ5LTEwLjEyMS04NS4zMzEgOS4xNjctMjUuNTMxIDE4LjczNy0zNi40MjIgNDQuNTQ4LTMyLjY3NiA3Ni40MDguMzU1IDMuMDI1LTEuOTY3IDcuNjIxLTQuNTE0IDkuNTQ1LTM5LjcxMiAyOS45OTItNTYuMDMxIDc4LjA2NS00MS45MDIgMTI0LjYxNSAxMy44MzEgNDUuNTY5IDU3LjUxNCA3OS43OTYgMTA1LjYwOCA4MS40MzMgMzAuMjkxIDEuMDMxIDYwLjYzNy41NDYgOTAuOTU5LjUzOSA4NC4wNDEtLjAyMSAxNjguMDkuNTMxIDI1Mi4xMi0uNDggNTIuNjY0LS42MzQgOTYuMTA4LTM2Ljg3MyAxMDguMjEyLTg3LjI5MyAxMS41NC00OC4wNzQtMTEuMTQ0LTk3LjMtNTYuODMyLTEyMi42MzR6bTIxLjEwNyAxNTYuODhjLTE4LjIzIDIyLjQzMi00Mi4zNDMgMzUuMjUzLTcxLjI4IDM1LjY1LTU2Ljg3NC43ODEtMTEzLjc2Ny4yMy0xNzAuNjUyLjIzIDAgLjctMTYzLjAyOC4xNTktMTYzLjcyOC4xNTQtNDMuODYxLS4zMzItNzYuNzM5LTE5Ljc2Ni05NS4xNzUtNTkuOTk1LTE4LjkwMi00MS4yNDUtNC4wMDQtOTAuODQ4IDM0LjE4Ni0xMTYuMTA2IDkuMTgyLTYuMDczIDEyLjUwNS0xMS41NjYgMTAuMDk2LTIzLjEzNi01LjQ5LTI2LjM2MSA0LjQ1My00Ny45NTYgMjYuNDItNjIuOTgxIDIyLjk4Ny0xNS43MjMgNDcuNDIyLTE2LjE0NiA3Mi4wMzQtMy4wODMgMTAuMjY5IDUuNDUgMTQuNjA3IDExLjU2NCAyMi4xOTgtMi41MjcgMTQuMjIyLTI2LjM5OSAzNC41NTctNDYuNzI3IDYwLjY3MS02MS4yOTQgOTcuNDYtNTQuMzY2IDIyOC4zNyA3LjU2OCAyMzAuMjQgMTMyLjY5Ny4xMjIgOC4xNSAyLjQxMiAxMi40MjggOS44NDggMTUuODk0IDU3LjU2IDI2LjgyOSA3NC40NTYgOTYuMTIyIDM1LjE0MiAxNDQuNDk3em0tODcuNzg5LTgwLjQ5OWMtNS44NDggMzEuMTU3LTM0LjYyMiA1NS4wOTYtNjYuNjY2IDU1LjA5NS0xNi45NTMtLjAwMS0zMi4wNTgtNi41NDUtNDQuMDc5LTE3LjcwNS0yNy42OTctMjUuNzEzLTcxLjE0MS03NC45OC05NS45MzctOTMuMzg3LTIwLjA1Ni0xNC44ODgtNDEuOTktMTIuMzMzLTYwLjI3MiAzLjc4Mi00OS45OTYgNDQuMDcxIDE1Ljg1OSAxMjEuNzc1IDY3LjA2MyA3Ny4xODggNC41NDgtMy45NiA3Ljg0LTkuNTQzIDEyLjc0NC0xMi44NDQgOC4xODQtNS41MDkgMjAuNzY2LS44ODQgMTMuMTY4IDEwLjYyMi0xNy4zNTggMjYuMjg0LTQ5LjMzIDM4LjE5Ny03OC44NjMgMjkuMzAxLTI4Ljg5Ny04LjcwNC00OC44NC0zNS45NjgtNDguNjI2LTcwLjE3OSAxLjIyNS0yMi40ODUgMTIuMzY0LTQzLjA2IDM1LjQxNC01NS45NjUgMjIuNTc1LTEyLjYzOCA0Ni4zNjktMTMuMTQ2IDY2Ljk5MSAyLjQ3NEMyOTUuNjggMjgwLjcgMzIwLjQ2NyAzMjMuOTcgMzUyLjE4NSAzNDMuNDdjMjQuNTU4IDE1LjA5OSA1NC4yNTQgNy4zNjMgNjguODIzLTE3LjUwNiAyOC44My00OS4yMDktMzQuNTkyLTEwNS4wMTYtNzguODY4LTYzLjQ2LTMuOTg5IDMuNzQ0LTYuOTE3IDguOTMyLTExLjQxIDExLjcyLTEwLjk3NSA2LjgxMS0xNy4zMzMtNC4xMTMtMTIuODA5LTEwLjM1MyAyMC43MDMtMjguNTU0IDUwLjQ2NC00MC40NCA4My4yNzEtMjguMjE0IDMxLjQyOSAxMS43MTQgNDkuMTA4IDQ0LjM2NiA0Mi43NiA3OC4xODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUthZ2dsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDQuMiA1MDEuNUwxNTguNCAzMjAuMyAyOTguMiAxODVjMi42LTIuNyAxLjctMTAuNS01LjMtMTAuNWgtNjkuMmMtMy41IDAtNyAxLjgtMTAuNSA1LjNMODAuOSAzMTMuNVY3LjVxMC03LjUtNy41LTcuNUgyMS41UTE0IDAgMTQgNy41djQ5N3EwIDcuNSA3LjUgNy41aDUxLjlxNy41IDAgNy41LTcuNXYtMTA5bDMwLjgtMjkuMyAxMTAuNSAxNDAuNmMzIDMuNSA2LjUgNS4zIDEwLjUgNS4zaDY2LjlxNS4yNSAwIDYtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS2V5YmFzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODYuMTcgNDE5YTE4IDE4IDAgMSAwIDE4IDE4IDE4IDE4IDAgMCAwLTE4LTE4em0xMTEuOTItMTQ3LjZjLTkuNS0xNC42Mi0zOS4zNy01Mi40NS04Ny4yNi03My43MXEtOS4xLTQuMDYtMTguMzgtNy4yN2E3OC40MyA3OC40MyAwIDAgMC00Ny44OC0xMDQuMTNjLTEyLjQxLTQuMS0yMy4zMy02LTMyLjQxLTUuNzctLjYtMi0xLjg5LTExIDkuNC0zNUwxOTguNjYgMzJsLTUuNDggNy41NmMtOC42OSAxMi4wNi0xNi45MiAyMy41NS0yNC4zNCAzNC44OWE1MSA1MSAwIDAgMC04LjI5LTEuMjVjLTQxLjUzLTIuNDUtMzktMi4zMy00MS4wNi0yLjMzLTUwLjYxIDAtNTAuNzUgNTIuMTItNTAuNzUgNDUuODhsLTIuMzYgMzYuNjhjLTEuNjEgMjcgMTkuNzUgNTAuMjEgNDcuNjMgNTEuODVsOC45My41NGEyMTQgMjE0IDAgMCAwLTQ2LjI5IDM1LjU0QzE0IDMwNC42NiAxNCAzNzQgMTQgNDI5Ljc3djMzLjY0bDIzLjMyLTI5LjhhMTQ4LjYgMTQ4LjYgMCAwIDAgMTQuNTYgMzcuNTZjNS43OCAxMC4xMyAxNC44NyA5LjQ1IDE5LjY0IDcuMzMgNC4yMS0xLjg3IDEwLTYuOTIgMy43NS0yMC4xMWExNzguMjkgMTc4LjI5IDAgMCAxLTE1Ljc2LTUzLjEzbDQ2LjgyLTU5LjgzLTI0LjY2IDc0LjExYzU4LjIzLTQyLjQgMTU3LjM4LTYxLjc2IDIzNi4yNS0zOC41OSAzNC4yIDEwLjA1IDY3LjQ1LjY5IDg0Ljc0LTIzLjg0LjcyLTEgMS4yLTIuMTYgMS44NS0zLjIyYTE1Ni4wOSAxNTYuMDkgMCAwIDEgMi44IDI4LjQzYzAgMjMuMy0zLjY5IDUyLjkzLTE0Ljg4IDgxLjY0LTIuNTIgNi40NiAxLjc2IDE0LjUgOC42IDE1Ljc0IDcuNDIgMS41NyAxNS4zMy0zLjEgMTguMzctMTEuMTVDNDI5IDQ0MyA0MzQgNDE0IDQzNCAzODIuMzJjMC0zOC41OC0xMy03Ny40Ni0zNS45MS0xMTAuOTJ6TTE0Mi4zNyAxMjguNThsLTE1LjctLjkzLTEuMzkgMjEuNzkgMTMuMTMuNzhhOTMgOTMgMCAwIDAgLjMyIDE5LjU3bC0yMi4zOC0xLjM0YTEyLjI4IDEyLjI4IDAgMCAxLTExLjc2LTEyLjc5TDEwNyAxMTljMS0xMi4xNyAxMy44Ny0xMS4yNyAxMy4yNi0xMS4zMmwyOS4xMSAxLjczYTE0NC4zNSAxNDQuMzUgMCAwIDAtNyAxOS4xN3ptMTQ4LjQyIDE3Mi4xOGExMC41MSAxMC41MSAwIDAgMS0xNC4zNS0xLjM5bC05LjY4LTExLjQ5LTM0LjQyIDI3YTguMDkgOC4wOSAwIDAgMS0xMS4xMy0xLjA4bC0xNS43OC0xOC42NGE3LjM4IDcuMzggMCAwIDEgMS4zNC0xMC4zNGwzNC41Ny0yNy4xOC0xNC4xNC0xNi43NC0xNy4wOSAxMy40NWE3Ljc1IDcuNzUgMCAwIDEtMTAuNTktMXMtMy43Mi00LjQyLTMuOC00LjUzYTcuMzggNy4zOCAwIDAgMSAxLjM3LTEwLjM0TDIxNCAyMjUuMTlzLTE4LjUxLTIyLTE4LjYtMjIuMTRhOS41NiA5LjU2IDAgMCAxIDEuNzQtMTMuNDIgMTAuMzggMTAuMzggMCAwIDEgMTQuMyAxLjM3bDgxLjA5IDk2LjMyYTkuNTggOS41OCAwIDAgMS0xLjc0IDEzLjQ0ek0xODcuNDQgNDE5YTE4IDE4IDAgMSAwIDE4IDE4IDE4IDE4IDAgMCAwLTE4LTE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLZXljZG4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjMuOCA0MDkuM2w2MC41LTU5YzMyLjEgNDIuOCA3MS4xIDY2IDEyNi42IDY3LjQgMzAuNS43IDYwLjMtNyA4Ni40LTIyLjQgNS4xIDUuMyAxOC41IDE5LjUgMjAuOSAyMi0zMi4yIDIwLjctNjkuNiAzMS4xLTEwOC4xIDMwLjItNDMuMy0xLjEtODQuNi0xNi43LTExNy43LTQ0LjQuMy0uNi0zOC4yIDM3LjUtMzguNiAzNy45IDkuNSAyOS44LTEzLjEgNjIuNC00Ni4zIDYyLjRDMjAuNyA1MDMuMyAwIDQ4MS43IDAgNDU0LjljMC0zNC4zIDMzLjEtNTYuNiA2My44LTQ1LjZ6bTM1NC45LTI1Mi40YzE5LjEgMzEuMyAyOS42IDY3LjQgMjguNyAxMDQtMS4xIDQ0LjgtMTkgODcuNS00OC42IDEyMSAuMy4zIDIzLjggMjUuMiAyNC4xIDI1LjUgOS42LTEuMyAxOS4yIDIgMjUuOSA5LjEgMTEuMyAxMiAxMC45IDMwLjktMS4xIDQyLjQtMTIgMTEuMy0zMC45IDEwLjktNDIuNC0xLjEtNi43LTctOS40LTE2LjgtNy42LTI2LjMtMjQuOS0yNi42LTQ0LjQtNDcuMi00NC40LTQ3LjIgNDIuNy0zNC4xIDYzLjMtNzkuNiA2NC40LTEyNC4yLjctMjguOS03LjItNTcuMi0yMS4xLTgyLjJsMjIuMS0yMXpNMTA0IDUzLjFjNi43IDcgOS40IDE2LjggNy42IDI2LjNsNDUuOSA0OC4xYy00LjcgMy44LTEzLjMgMTAuNC0yMi44IDIxLjMtMjUuNCAyOC41LTM5LjYgNjQuOC00MC43IDEwMi45LS43IDI4LjkgNi4xIDU3LjIgMjAgODIuNGwtMjIgMjEuNUM3Mi43IDMyNCA2My4xIDI4Ny45IDY0LjIgMjUwLjljMS00NC42IDE4LjMtODcuNiA0Ny41LTEyMS4xbC0yNS4zLTI2LjRjLTkuNiAxLjMtMTkuMi0yLTI1LjktOS4xLTExLjMtMTItMTAuOS0zMC45IDEuMS00Mi40QzczLjUgNDAuNyA5Mi4yIDQxIDEwNCA1My4xek00NjQuOSA4YzI2IDAgNDcuMSAyMi40IDQ3LjEgNDguM1M0OTAuOSAxMDQgNDY0LjkgMTA0Yy02LjMuMS0xNC0xLjEtMTUuOS0xLjhsLTYyLjkgNTkuN2MtMzIuNy00My42LTc2LjctNjUuOS0xMjYuOS02Ny4yLTMwLjUtLjctNjAuMyA2LjgtODYuMiAyMi40bC0yMS4xLTIyQzE4NC4xIDc0LjMgMjIxLjUgNjQgMjYwIDY0LjljNDMuMyAxLjEgODQuNiAxNi43IDExNy43IDQ0LjZsNDEuMS0zOC42Yy0xLjUtNC43LTIuMi05LjYtMi4yLTE0LjVDNDE2LjUgMjkuNyA0MzguOSA4IDQ2NC45IDh6TTI1Ni43IDExMy40YzUuNSAwIDEwLjkuNCAxNi40IDEuMSA3OC4xIDkuOCAxMzMuNCA4MS4xIDEyMy44IDE1OS4xLTkuOCA3OC4xLTgxLjEgMTMzLjQtMTU5LjEgMTIzLjgtNzguMS05LjgtMTMzLjQtODEuMS0xMjMuOC0xNTkuMiA5LjMtNzIuNCA3MC4xLTEyNC42IDE0Mi43LTEyNC44em0tNTkgMTE5LjRjLjYgMjIuNyAxMi4yIDQxLjggMzIuNCA1Mi4ybC0xMSA1MS43aDczLjdsLTExLTUxLjdjMjAuMS0xMC45IDMyLjEtMjkgMzIuNC01Mi4yLS40LTMyLjgtMjUuOC01Ny41LTU4LjMtNTguMy0zMi4xLjgtNTcuMyAyNC44LTU4LjIgNTguM3pNMjU2IDE2MFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLaWNrc3RhcnRlcksgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ3LjMgMTE0LjRjMC01Ni4yLTMyLjUtODIuNC03My40LTgyLjRDMjYuMiAzMiAwIDY4LjIgMCAxMTMuNHYyODNjMCA0Ny4zIDI1LjMgODMuNCA3NC45IDgzLjQgMzkuOCAwIDcyLjQtMjUuNiA3Mi40LTgzLjR2LTc2LjVsMTEyLjEgMTM4LjNjMjIuNyAyNy4yIDcyLjEgMzAuNyAxMDMuMiAwIDI3LTI3LjYgMjcuMy02Ny40IDcuNC05Mi4ybC05MC44LTExNC44IDc0LjktMTA3LjRjMTcuNC0yNC43IDE3LjUtNjMuMS0xMC40LTg5LjgtMzAuMy0yOS04Mi40LTMxLjYtMTEzLjYgMTIuOEwxNDcuMyAxODV2LTcwLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUtpY2tzdGFydGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCA0ODBINDhjLTI2LjQgMC00OC0yMS42LTQ4LTQ4VjgwYzAtMjYuNCAyMS42LTQ4IDQ4LTQ4aDM1MmMyNi40IDAgNDggMjEuNiA0OCA0OHYzNTJjMCAyNi40LTIxLjYgNDgtNDggNDh6TTE5OS42IDE3OC41YzAtMzAuNy0xNy42LTQ1LjEtMzkuNy00NS4xLTI1LjggMC00MCAxOS44LTQwIDQ0LjV2MTU0LjhjMCAyNS44IDEzLjcgNDUuNiA0MC41IDQ1LjYgMjEuNSAwIDM5LjItMTQgMzkuMi00NS42di00MS44bDYwLjYgNzUuN2MxMi4zIDE0LjkgMzkgMTYuOCA1NS44IDAgMTQuNi0xNS4xIDE0LjgtMzYuOCA0LTUwLjRsLTQ5LjEtNjIuOCA0MC41LTU4LjdjOS40LTEzLjUgOS41LTM0LjUtNS42LTQ5LjEtMTYuNC0xNS45LTQ0LjYtMTcuMy02MS40IDdsLTQ0LjggNjQuN3YtMzguOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS29ydnVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4Ni41IDM0aC0zMjdDMjYuOCAzNCAwIDYwLjggMCA5My41djMyNy4xQzAgNDUzLjIgMjYuOCA0ODAgNTkuNSA0ODBoMzI3LjFjMzMgMCA1OS41LTI2LjggNTkuNS01OS41di0zMjdDNDQ2IDYwLjggNDE5LjIgMzQgMzg2LjUgMzR6TTg3LjEgMTIwLjhoOTZ2MTE2bDYxLjgtMTE2aDExMC45bC04MS4yIDEzMkg4Ny4xdi0xMzJ6bTE2MS44IDI3Mi4xbC02NS43LTExMy42djExMy42aC05NlYyNjIuMWgxOTEuNWw4OC42IDEzMC44SDI0OC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYXJhdmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNC40LDExNS44M2E1LjcyLDUuNzIsMCwwLDAtLjI4LS42OCw4LjUyLDguNTIsMCwwLDAtLjUzLTEuMjUsNiw2LDAsMCwwLS41NC0uNzEsOS4zNiw5LjM2LDAsMCwwLS43Mi0uOTRjLS4yMy0uMjItLjUyLS40LS43Ny0uNmE4Ljg0LDguODQsMCwwLDAtLjktLjY4TDQwNC40LDU1LjU1YTgsOCwwLDAsMC04LDBMMzAwLjEyLDExMWgwYTguMDcsOC4wNywwLDAsMC0uODguNjksNy42OCw3LjY4LDAsMCwwLS43OC42LDguMjMsOC4yMywwLDAsMC0uNzIuOTNjLS4xNy4yNC0uMzkuNDUtLjU0LjcxYTkuNyw5LjcsMCwwLDAtLjUyLDEuMjVjLS4wOC4yMy0uMjEuNDQtLjI4LjY4YTguMDgsOC4wOCwwLDAsMC0uMjgsMi4wOFYyMjMuMThsLTgwLjIyLDQ2LjE5VjYzLjQ0YTcuOCw3LjgsMCwwLDAtLjI4LTIuMDljLS4wNi0uMjQtLjItLjQ1LS4yOC0uNjhhOC4zNSw4LjM1LDAsMCwwLS41Mi0xLjI0Yy0uMTQtLjI2LS4zNy0uNDctLjU0LS43MmE5LjM2LDkuMzYsMCwwLDAtLjcyLS45NCw5LjQ2LDkuNDYsMCwwLDAtLjc4LS42LDkuOCw5LjgsMCwwLDAtLjg4LS42OGgwTDExNS42MSwxLjA3YTgsOCwwLDAsMC04LDBMMTEuMzQsNTYuNDloMGE2LjUyLDYuNTIsMCwwLDAtLjg4LjY5LDcuODEsNy44MSwwLDAsMC0uNzkuNiw4LjE1LDguMTUsMCwwLDAtLjcxLjkzYy0uMTguMjUtLjQuNDYtLjU1LjcyYTcuODgsNy44OCwwLDAsMC0uNTEsMS4yNCw2LjQ2LDYuNDYsMCwwLDAtLjI5LjY3LDguMTgsOC4xOCwwLDAsMC0uMjgsMi4xdjMyOS43YTgsOCwwLDAsMCw0LDYuOTVsMTkyLjUsMTEwLjg0YTguODMsOC44MywwLDAsMCwxLjMzLjU0Yy4yMS4wOC40MS4yLjYzLjI2YTcuOTIsNy45MiwwLDAsMCw0LjEsMGMuMi0uMDUuMzctLjE2LjU1LS4yMmE4LjYsOC42LDAsMCwwLDEuNC0uNThMNDA0LjQsNDAwLjA5YTgsOCwwLDAsMCw0LTYuOTVWMjg3Ljg4bDkyLjI0LTUzLjExYTgsOCwwLDAsMCw0LTdWMTE3LjkyQTguNjMsOC42MywwLDAsMCw1MDQuNCwxMTUuODNaTTExMS42LDE3LjI4aDBsODAuMTksNDYuMTUtODAuMiw0Ni4xOEwzMS40MSw2My40NFptODguMjUsNjBWMjc4LjZsLTQ2LjUzLDI2Ljc5LTMzLjY5LDE5LjRWMTIzLjVsNDYuNTMtMjYuNzlabTAsNDEyLjc4TDIzLjM3LDM4OC41Vjc3LjMyTDU3LjA2LDk2LjdsNDYuNTIsMjYuOFYzMzguNjhhNi45NCw2Ljk0LDAsMCwwLC4xMi45LDgsOCwwLDAsMCwuMTYsMS4xOGgwYTUuOTIsNS45MiwwLDAsMCwuMzguOSw2LjM4LDYuMzgsMCwwLDAsLjQyLDF2MGE4LjU0LDguNTQsMCwwLDAsLjYuNzgsNy42Miw3LjYyLDAsMCwwLC42Ni44NGwwLDBjLjIzLjIyLjUyLjM4Ljc3LjU4YTguOTMsOC45MywwLDAsMCwuODYuNjZsMCwwLDAsMCw5Mi4xOSw1Mi4xOFptOC0xMDYuMTctODAuMDYtNDUuMzIsODQuMDktNDguNDEsOTIuMjYtNTMuMTEsODAuMTMsNDYuMTMtNTguOCwzMy41NlptMTg0LjUyLDQuNTdMMjE1Ljg4LDQ5MC4xMVYzOTcuOEwzNDYuNiwzMjMuMmw0NS43Ny0yNi4xNVptMC0xMTkuMTNMMzU4LjY4LDI1MGwtNDYuNTMtMjYuNzlWMTMxLjc5bDMzLjY5LDE5LjRMMzkyLjM3LDE3OFptOC0xMDUuMjgtODAuMi00Ni4xNyw4MC4yLTQ2LjE2LDgwLjE4LDQ2LjE1Wm04LDEwNS4yOFYxNzhMNDU1LDE1MS4xOWwzMy42OC0xOS40djkxLjM5aDBaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhc3RmbVNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tOTIuMiAzMTIuOWMtNjMuNCAwLTg1LjQtMjguNi05Ny4xLTY0LjEtMTYuMy01MS0yMS41LTg0LjMtNjMtODQuMy0yMi40IDAtNDUuMSAxNi4xLTQ1LjEgNjEuMiAwIDM1LjIgMTggNTcuMiA0My4zIDU3LjIgMjguNiAwIDQ3LjYtMjEuMyA0Ny42LTIxLjNsMTEuNyAzMS45cy0xOS44IDE5LjQtNjEuMiAxOS40Yy01MS4zIDAtNzkuOS0zMC4xLTc5LjktODUuOCAwLTU3LjkgMjguNi05MiA4Mi41LTkyIDczLjUgMCA4MC44IDQxLjQgMTAwLjggMTAxLjkgOC44IDI2LjggMjQuMiA0Ni4yIDYxLjIgNDYuMiAyNC45IDAgMzguMS01LjUgMzguMS0xOS4xIDAtMTkuOS0yMS44LTIyLTQ5LjktMjguNi0zMC40LTcuMy00Mi41LTIzLjEtNDIuNS00OCAwLTQwIDMyLjMtNTIuNCA2NS4yLTUyLjQgMzcuNCAwIDYwLjEgMTMuNiA2MyA0Ni42bC0zNi43IDQuNGMtMS41LTE1LjgtMTEtMjIuNC0yOC42LTIyLjQtMTYuMSAwLTI2IDcuMy0yNiAxOS44IDAgMTEgNC44IDE3LjYgMjAuOSAyMS4zIDMyLjcgNy4xIDcxLjggMTIgNzEuOCA1Ny41LjEgMzYuNy0zMC43IDUwLjYtNzYuMSA1MC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYXN0Zm0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI1LjggMzY3LjFsLTE4LjgtNTFzLTMwLjUgMzQtNzYuMiAzNGMtNDAuNSAwLTY5LjItMzUuMi02OS4yLTkxLjUgMC03Mi4xIDM2LjQtOTcuOSA3Mi4xLTk3LjkgNjYuNSAwIDc0LjggNTMuMyAxMDAuOSAxMzQuOSAxOC44IDU2LjkgNTQgMTAyLjYgMTU1LjQgMTAyLjYgNzIuNyAwIDEyMi0yMi4zIDEyMi04MC45IDAtNzIuOS02Mi43LTgwLjYtMTE1LTkyLjEtMjUuOC01LjktMzMuNC0xNi40LTMzLjQtMzQgMC0xOS45IDE1LjgtMzEuNyA0MS42LTMxLjcgMjguMiAwIDQzLjQgMTAuNiA0NS43IDM1LjhsNTguNi03Yy00LjctNTIuOC00MS4xLTc0LjUtMTAwLjktNzQuNS01Mi44IDAtMTA0LjQgMTkuOS0xMDQuNCA4My45IDAgMzkuOSAxOS40IDY1LjEgNjggNzYuOCA0NC45IDEwLjYgNzkuOCAxMy44IDc5LjggNDUuNyAwIDIxLjctMjEuMSAzMC41LTYxIDMwLjUtNTkuMiAwLTgzLjktMzEuMS05Ny45LTczLjktMzItOTYuOC00My42LTE2My0xNjEuMy0xNjNDNDUuNyAxMTMuOCAwIDE2OC4zIDAgMjYxYzAgODkuMSA0NS43IDEzNy4yIDEyNy45IDEzNy4yIDY2LjIgMCA5Ny45LTMxLjEgOTcuOS0zMS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMZWFucHViIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4Ni41MzkgMTExLjQ4NWwxNS4wOTYgMjQ4Ljk1NS0xMC45NzktLjI3NWMtMzYuMjMyLS44MjQtNzEuNjQgOC43ODMtMTAyLjY1NyAyNy45OTctMzEuMDE2LTE5LjIxNC02Ni40MjQtMjcuOTk3LTEwMi42NTctMjcuOTk3LTQ1LjU2NCAwLTgyLjA3IDEwLjcwNS0xMjMuNTE2IDI3LjcyM0w5My4xMTcgMTI5LjZjMjguNTQ2LTExLjgwMyA2MS40ODQtMTguMTE1IDkyLjIyNi0xOC4xMTUgNDEuMTczIDAgNzMuODM2IDEzLjE3NSAxMDIuNjU3IDQyLjU0NCAyNy43MjMtMjguMjcxIDU5LjAxMy00MS43MjEgOTguNTM5LTQyLjU0NHpNNTY5LjA3IDQ0OGMtMjUuNTI2IDAtNDcuNDg1LTUuMjE1LTcwLjU0Mi0xNS42NDUtMzQuMzEtMTUuNjQ1LTY5Ljk5My0yNC45NzgtMTA3Ljg3MS0yNC45NzgtMzguOTc3IDAtNzQuOTM0IDEyLjkwMS0xMDIuNjU3IDQwLjYyMy0yNy43MjMtMjcuNzIzLTYzLjY4LTQwLjYyMy0xMDIuNjU3LTQwLjYyMy0zNy44NzggMC03My41NjEgOS4zMzMtMTA3Ljg3MSAyNC45NzhDNTUuMjM5IDQ0Mi4yMzYgMzIuNzMxIDQ0OCA4LjMwMyA0NDhINi45M0w0OS40NzUgOTguODU5Qzg4LjcyNiA3Ni42MjYgMTM2LjQ4NiA2NCAxODEuNzc1IDY0IDIxOC44MyA2NCAyNTYuOTg0IDcxLjY4NSAyODggOTMuMDk1IDMxOS4wMTYgNzEuNjg1IDM1Ny4xNyA2NCAzOTQuMjI1IDY0YzQ1LjI4OSAwIDkzLjA0OSAxMi42MjYgMTMyLjMgMzQuODU5TDU2OS4wNyA0NDh6bS00My4zNjgtNDQuNzQxbC0zNC4wMzYtMjgwLjI0NmMtMzAuNzQyLTEzLjk5OS02Ny4yNDgtMjEuNDEtMTAxLjAwOS0yMS40MS0zOC40MjggMC03NC4zODUgMTIuMDc3LTEwMi42NTcgMzguNzAyLTI4LjI3Mi0yNi42MjUtNjQuMjI4LTM4LjcwMi0xMDIuNjU3LTM4LjcwMi0zMy43NjEgMC03MC4yNjcgNy40MTEtMTAxLjAwOSAyMS40MUw1MC4yOTggNDAzLjI1OWM0Ny4yMTEtMTkuNDg3IDgyLjg5NC0zMy40ODYgMTM1LjA0NS0zMy40ODYgMzcuNjA0IDAgNzAuODE3IDkuNjA2IDEwMi42NTcgMjkuNjQ0IDMxLjg0LTIwLjAzOCA2NS4wNTItMjkuNjQ0IDEwMi42NTctMjkuNjQ0IDUyLjE1MSAwIDg3LjgzNCAxMy45OTkgMTM1LjA0NSAzMy40ODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxlc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjEyLjcgMjE5YzAtMjAuNSAzLjItMzIuNiAzLjItNTQuNiAwLTM0LjItMTIuNi00NS4yLTQwLjUtNDUuMmgtMjAuNXYyNC4yaDYuM2MxNC4yIDAgMTcuMyA0LjcgMTcuMyAyMi4xIDAgMTYuMy0xLjYgMzIuNi0xLjYgNTEuNSAwIDI0LjIgNy45IDMzLjYgMjMuNiAzNy4zdjEuNmMtMTUuOCAzLjctMjMuNiAxMy4xLTIzLjYgMzcuMyAwIDE4LjkgMS42IDM0LjIgMS42IDUxLjUgMCAxNy45LTMuNyAyMi42LTE3LjMgMjIuNnYuNWgtNi4zVjM5M2gyMC41YzI3LjggMCA0MC41LTExIDQwLjUtNDUuMiAwLTIyLjYtMy4yLTM0LjItMy4yLTU0LjYgMC0xMSA2LjgtMjIuNiAyNy4zLTIzLjZ2LTI3LjNjLTIwLjUtLjctMjcuMy0xMi4zLTI3LjMtMjMuM3ptLTEwNS42IDMyYy0xNS44LTYuMy0zMC41LTEwLTMwLjUtMjAuNSAwLTcuOSA2LjMtMTIuNiAxNy45LTEyLjZzMjIuMSA0LjcgMzMuNiAxMy4xbDIxLTI3LjhjLTEzLjEtMTAtMzEtMjAuNS01NS4yLTIwLjUtMzUuNyAwLTU5LjkgMjAuNS01OS45IDQ5LjQgMCAyNS43IDIyLjYgMzguOSA0MS41IDQ2LjIgMTYuMyA2LjMgMzIuMSAxMS42IDMyLjEgMjIuMSAwIDcuOS02LjMgMTMuMS0yMC41IDEzLjEtMTMuMSAwLTI2LjMtNS4zLTQwLjUtMTYuM2wtMjEgMzAuNWMxNS44IDEzLjEgMzkuOSAyMi4xIDU5LjkgMjIuMSA0MiAwIDY0LjYtMjIuMSA2NC42LTUxcy0yMi41LTQxLTQzLTQ3Ljh6bS0zNTguOSA1OS40Yy0zLjcgMC04LjQtMy4yLTguNC0xMy4xVjExOS4xSDY1LjJjLTI4LjQgMC00MSAxMS00MSA0NS4yIDAgMjIuNiAzLjIgMzUuMiAzLjIgNTQuNiAwIDExLTYuOCAyMi42LTI3LjMgMjMuNnYyNy4zYzIwLjUuNSAyNy4zIDEyLjEgMjcuMyAyMy4xIDAgMTkuNC0zLjIgMzEtMy4yIDUzLjYgMCAzNC4yIDEyLjYgNDUuMiA0MC41IDQ1LjJoMjAuNXYtMjQuMmgtNi4zYy0xMy4xIDAtMTcuMy01LjMtMTcuMy0yMi42czEuNi0zMi4xIDEuNi01MS41YzAtMjQuMi03LjktMzMuNi0yMy42LTM3LjN2LTEuNmMxNS44LTMuNyAyMy42LTEzLjEgMjMuNi0zNy4zIDAtMTguOS0xLjYtMzQuMi0xLjYtNTEuNXMzLjctMjIuMSAxNy4zLTIyLjFIOTN2MTUwLjhjMCAzMi4xIDExIDUzLjEgNDMuMSA1My4xIDEwIDAgMTcuOS0xLjYgMjMuNi0zLjdsLTUuMy0zNC4yYy0zLjEuOC00LjYuOC02LjIuOHpNMzc5LjkgMjUxYy0xNi4zLTYuMy0zMS0xMC0zMS0yMC41IDAtNy45IDYuMy0xMi42IDE3LjktMTIuNiAxMS42IDAgMjIuMSA0LjcgMzMuNiAxMy4xbDIxLTI3LjhjLTEzLjEtMTAtMzEtMjAuNS01NS4yLTIwLjUtMzUuNyAwLTU5LjkgMjAuNS01OS45IDQ5LjQgMCAyNS43IDIyLjYgMzguOSA0MS41IDQ2LjIgMTYuMyA2LjMgMzIuMSAxMS42IDMyLjEgMjIuMSAwIDcuOS02LjMgMTMuMS0yMC41IDEzLjEtMTMuMSAwLTI2LjMtNS4zLTQwLjUtMTYuM2wtMjAuNSAzMC41YzE1LjggMTMuMSAzOS45IDIyLjEgNTkuOSAyMi4xIDQyIDAgNjQuNi0yMi4xIDY0LjYtNTEgLjEtMjguOS0yMi41LTQxLTQzLTQ3Ljh6bS0xNTUtNjguOGMtMzguNCAwLTc1LjEgMzIuMS03NC4xIDgyLjUgMCA1MiAzNC4yIDgyLjUgNzkuMyA4Mi41IDE4LjkgMCAzOS45LTYuOCA1Ni4yLTE3LjlsLTE1LjgtMjcuOGMtMTEuNiA2LjgtMjIuNiAxMC0zNC4yIDEwLTIxIDAtMzcuMy0xMC00MS41LTM0LjJIMjkwYy41LTMuNyAxLjYtMTEgMS42LTE5LjQuNi00Mi42LTIyLjYtNzUuNy02Ni43LTc1Ljd6bS0zMCA2Ni4yYzMuMi0yMSAxNS44LTMxIDMwLjUtMzEgMTguOSAwIDI2LjMgMTMuMSAyNi4zIDMxaC01Ni44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3Mi4xIDIwNC4ydjcxLjFjMCAxLjgtMS40IDMuMi0zLjIgMy4yaC0xMS40Yy0xLjEgMC0yLjEtLjYtMi42LTEuM2wtMzIuNi00NHY0Mi4yYzAgMS44LTEuNCAzLjItMy4yIDMuMmgtMTEuNGMtMS44IDAtMy4yLTEuNC0zLjItMy4ydi03MS4xYzAtMS44IDEuNC0zLjIgMy4yLTMuMkgyMTljMSAwIDIuMS41IDIuNiAxLjRsMzIuNiA0NHYtNDIuMmMwLTEuOCAxLjQtMy4yIDMuMi0zLjJoMTEuNGMxLjgtLjEgMy4zIDEuNCAzLjMgMy4xem0tODItMy4yaC0xMS40Yy0xLjggMC0zLjIgMS40LTMuMiAzLjJ2NzEuMWMwIDEuOCAxLjQgMy4yIDMuMiAzLjJoMTEuNGMxLjggMCAzLjItMS40IDMuMi0zLjJ2LTcxLjFjMC0xLjctMS40LTMuMi0zLjItMy4yem0tMjcuNSA1OS42aC0zMS4xdi01Ni40YzAtMS44LTEuNC0zLjItMy4yLTMuMmgtMTEuNGMtMS44IDAtMy4yIDEuNC0zLjIgMy4ydjcxLjFjMCAuOS4zIDEuNi45IDIuMi42LjUgMS4zLjkgMi4yLjloNDUuN2MxLjggMCAzLjItMS40IDMuMi0zLjJ2LTExLjRjMC0xLjctMS40LTMuMi0zLjEtMy4yek0zMzIuMSAyMDFoLTQ1LjdjLTEuNyAwLTMuMiAxLjQtMy4yIDMuMnY3MS4xYzAgMS43IDEuNCAzLjIgMy4yIDMuMmg0NS43YzEuOCAwIDMuMi0xLjQgMy4yLTMuMnYtMTEuNGMwLTEuOC0xLjQtMy4yLTMuMi0zLjJIMzAxdi0xMmgzMS4xYzEuOCAwIDMuMi0xLjQgMy4yLTMuMlYyMzRjMC0xLjgtMS40LTMuMi0zLjItMy4ySDMwMXYtMTJoMzEuMWMxLjggMCAzLjItMS40IDMuMi0zLjJ2LTExLjRjLS4xLTEuNy0xLjUtMy4yLTMuMi0zLjJ6TTQ0OCAxMTMuN1YzOTljLS4xIDQ0LjgtMzYuOCA4MS4xLTgxLjcgODFIODFjLTQ0LjgtLjEtODEuMS0zNi45LTgxLTgxLjdWMTEzYy4xLTQ0LjggMzYuOS04MS4xIDgxLjctODFIMzY3YzQ0LjguMSA4MS4xIDM2LjggODEgODEuN3ptLTYxLjYgMTIyLjZjMC03My03My4yLTEzMi40LTE2My4xLTEzMi40LTg5LjkgMC0xNjMuMSA1OS40LTE2My4xIDEzMi40IDAgNjUuNCA1OCAxMjAuMiAxMzYuNCAxMzAuNiAxOS4xIDQuMSAxNi45IDExLjEgMTIuNiAzNi44LS43IDQuMS0zLjMgMTYuMSAxNC4xIDguOCAxNy40LTcuMyA5My45LTU1LjMgMTI4LjItOTQuNyAyMy42LTI2IDM0LjktNTIuMyAzNC45LTgxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpbmtlZGluSW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAwLjI4IDQ0OEg3LjRWMTQ4LjloOTIuODh6TTUzLjc5IDEwOC4xQzI0LjA5IDEwOC4xIDAgODMuNSAwIDUzLjhhNTMuNzkgNTMuNzkgMCAwIDEgMTA3LjU4IDBjMCAyOS43LTI0LjEgNTQuMy01My43OSA1NC4zek00NDcuOSA0NDhoLTkyLjY4VjMwMi40YzAtMzQuNy0uNy03OS4yLTQ4LjI5LTc5LjItNDguMjkgMC01NS42OSAzNy43LTU1LjY5IDc2LjdWNDQ4aC05Mi43OFYxNDguOWg4OS4wOHY0MC44aDEuM2MxMi40LTIzLjUgNDIuNjktNDguMyA4Ny44OC00OC4zIDk0IDAgMTExLjI4IDYxLjkgMTExLjI4IDE0Mi4zVjQ0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlua2VkaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDMySDMxLjlDMTQuMyAzMiAwIDQ2LjUgMCA2NC4zdjM4My40QzAgNDY1LjUgMTQuMyA0ODAgMzEuOSA0ODBINDE2YzE3LjYgMCAzMi0xNC41IDMyLTMyLjNWNjQuM2MwLTE3LjgtMTQuNC0zMi4zLTMyLTMyLjN6TTEzNS40IDQxNkg2OVYyMDIuMmg2Ni41VjQxNnptLTMzLjItMjQzYy0yMS4zIDAtMzguNS0xNy4zLTM4LjUtMzguNVM4MC45IDk2IDEwMi4yIDk2YzIxLjIgMCAzOC41IDE3LjMgMzguNSAzOC41IDAgMjEuMy0xNy4yIDM4LjUtMzguNSAzOC41em0yODIuMSAyNDNoLTY2LjRWMzEyYzAtMjQuOC0uNS01Ni43LTM0LjUtNTYuNy0zNC42IDAtMzkuOSAyNy0zOS45IDU0LjlWNDE2aC02Ni40VjIwMi4yaDYzLjd2MjkuMmguOWM4LjktMTYuOCAzMC42LTM0LjUgNjIuOS0zNC41IDY3LjIgMCA3OS43IDQ0LjMgNzkuNyAxMDEuOVY0MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpbm9kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzcuNCAyMjYuM2MtLjMtLjktLjktMS40LTEuNC0ybC03MC0zOC42Yy0uOS0uNi0yLS42LTMuMSAwbC01OC45IDM2Yy0uOS42LTEuNCAxLjctMS40IDIuNmwtLjkgMzEuNC0yNC0xNmMtLjktLjYtMi4zLS42LTMuMSAwTDI0MCAyNjAuOWwtMS40LTM1LjFjMC0uOS0uNi0yLTEuNC0yLjNsLTM2LTI0LjMgMzMuNy0xNy40YzEuMS0uNiAxLjctMS43IDEuNy0yLjlsLTUuNy0xMzIuM2MwLS45LS45LTItMS43LTIuNkwxMzguNi4zYy0uOS0uMy0xLjctLjMtMi4zLS4zTDEyLjYgMzguNmMtMS40LjYtMi4zIDItMiAzLjdMMzggMTc1LjRjLjkgMy40IDM0IDI3LjQgMzguNiAzMC45bC0yNi45IDEyLjljLTEuNC45LTIgMi4zLTEuNyAzLjRsMjAuNiAxMDAuM2MuNiAyLjkgMjMuNyAyMy4xIDI3LjEgMjYuM2wtMTcuNCAxMC42Yy0uOS42LTEuNyAyLTEuNCAzLjEgMS40IDcuMSAxNS40IDc3LjcgMTYuOSA3OS4xbDY1LjEgNjkuMWMuNi42IDEuNC42IDIuMy45LjYgMCAxLjEtLjMgMS43LS42bDgzLjctNjYuOWMuOS0uNiAxLjEtMS40IDEuMS0yLjNsLTItNDYgMjggMjMuN2MxLjEuOSAyLjkuOSA0IDBsNjYuOS01My40Yy45LS42IDEuMS0xLjQgMS4xLTIuM2wyLjMtMzMuNCAyMC4zIDE0YzEuMS45IDIuNi45IDMuNyAwbDU0LjYtNDMuN2MuNi0uMyAxLjEtMS4xIDEuMS0yIC45LTYuNSAxMC4zLTcwLjggOS43LTcyLjh6bS0yMDQuOCA0LjhsNCA5Mi42LTkwLjYgNjEuMi0xNC05Ni42IDEwMC42LTU3LjJ6bS03LjctMTgwbDUuNCAxMjYtMTA2LjYgNTUuNEwxMDQgOTcuN2wxMjAuOS00Ni42ek00NCAxNzMuMUwxOCA0OGw3OS43IDQ5LjQgMTkuNCAxMzIuOUw0NCAxNzMuMXptMzAuNiAxNDcuOEw1NS43IDIzMGw3MCA1OC4zIDEzLjcgOTMuNC02NC44LTYwLjh6bTI0LjMgMTE3LjdsLTEzLjctNjcuMSA2MS43IDYwLjkgOS43IDY3LjQtNTcuNy02MS4yem02NC41IDY0LjVsLTEwLjYtNzAuOSA4NS43LTYxLjQgMy4xIDcwLTc4LjIgNjIuM3ptODItMTE1LjFjMC0zLjQuOS0yMi45LTItMjUuMWwtMjQuMy0yMCAyMi4zLTE0LjljMi4zLTEuNyAxLjEtNS43IDEuMS04bDI5LjQgMjIuNi42IDY4LjMtMjcuMS0yMi45em05NC4zLTI1LjRsLTYwLjkgNDguNi0uNi02OC42IDY1LjctNDYuOS00LjIgNjYuOXptMjcuNy0yNS43bC0xOS4xLTEzLjQgMi0zNGMuMy0uOS0uMy0yLTEuMS0yLjZMMzA4IDI1OS43bC42LTMwIDY0LjYgNDAuNi01LjggNjYuNnptNTQuNi0zOS44bC00OC4zIDM4LjMgNS43LTY1LjEgNTEuMS0zNi42LTguNSA2My40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaW51eCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjAuOCAxMjMuM2MxIC41IDEuOCAxLjcgMyAxLjcgMS4xIDAgMi44LS40IDIuOS0xLjUuMi0xLjQtMS45LTIuMy0zLjItMi45LTEuNy0uNy0zLjktMS01LjUtLjEtLjQuMi0uOC43LS42IDEuMS4zIDEuMyAyLjMgMS4xIDMuNCAxLjd6bS0yMS45IDEuN2MxLjIgMCAyLTEuMiAzLTEuNyAxLjEtLjYgMy4xLS40IDMuNS0xLjYuMi0uNC0uMi0uOS0uNi0xLjEtMS42LS45LTMuOC0uNi01LjUuMS0xLjMuNi0zLjQgMS41LTMuMiAyLjkuMSAxIDEuOCAxLjUgMi44IDEuNHpNNDIwIDQwMy44Yy0zLjYtNC01LjMtMTEuNi03LjItMTkuNy0xLjgtOC4xLTMuOS0xNi44LTEwLjUtMjIuNC0xLjMtMS4xLTIuNi0yLjEtNC0yLjktMS4zLS44LTIuNy0xLjUtNC4xLTIgOS4yLTI3LjMgNS42LTU0LjUtMy43LTc5LjEtMTEuNC0zMC4xLTMxLjMtNTYuNC00Ni41LTc0LjQtMTcuMS0yMS41LTMzLjctNDEuOS0zMy40LTcyQzMxMS4xIDg1LjQgMzE1LjcuMSAyMzQuOCAwIDEzMi40LS4yIDE1OCAxMDMuNCAxNTYuOSAxMzUuMmMtMS43IDIzLjQtNi40IDQxLjgtMjIuNSA2NC43LTE4LjkgMjIuNS00NS41IDU4LjgtNTguMSA5Ni43LTYgMTcuOS04LjggMzYuMS02LjIgNTMuMy02LjUgNS44LTExLjQgMTQuNy0xNi42IDIwLjItNC4yIDQuMy0xMC4zIDUuOS0xNyA4LjNzLTE0IDYtMTguNSAxNC41Yy0yLjEgMy45LTIuOCA4LjEtMi44IDEyLjQgMCAzLjkuNiA3LjkgMS4yIDExLjggMS4yIDguMSAyLjUgMTUuNy44IDIwLjgtNS4yIDE0LjQtNS45IDI0LjQtMi4yIDMxLjcgMy44IDcuMyAxMS40IDEwLjUgMjAuMSAxMi4zIDE3LjMgMy42IDQwLjggMi43IDU5LjMgMTIuNSAxOS44IDEwLjQgMzkuOSAxNC4xIDU1LjkgMTAuNCAxMS42LTIuNiAyMS4xLTkuNiAyNS45LTIwLjIgMTIuNS0uMSAyNi4zLTUuNCA0OC4zLTYuNiAxNC45LTEuMiAzMy42IDUuMyA1NS4xIDQuMS42IDIuMyAxLjQgNC42IDIuNSA2Ljd2LjFjOC4zIDE2LjcgMjMuOCAyNC4zIDQwLjMgMjMgMTYuNi0xLjMgMzQuMS0xMSA0OC4zLTI3LjkgMTMuNi0xNi40IDM2LTIzLjIgNTAuOS0zMi4yIDcuNC00LjUgMTMuNC0xMC4xIDEzLjktMTguMy40LTguMi00LjQtMTcuMy0xNS41LTI5Ljd6TTIyMy43IDg3LjNjOS44LTIyLjIgMzQuMi0yMS44IDQ0LS40IDYuNSAxNC4yIDMuNiAzMC45LTQuMyA0MC40LTEuNi0uOC01LjktMi42LTEyLjYtNC45IDEuMS0xLjIgMy4xLTIuNyAzLjktNC42IDQuOC0xMS44LS4yLTI3LTkuMS0yNy4zLTcuMy0uNS0xMy45IDEwLjgtMTEuOCAyMy00LjEtMi05LjQtMy41LTEzLTQuNC0xLTYuOS0uMy0xNC42IDIuOS0yMS44ek0xODMgNzUuOGMxMC4xIDAgMjAuOCAxNC4yIDE5LjEgMzMuNS0zLjUgMS03LjEgMi41LTEwLjIgNC42IDEuMi04LjktMy4zLTIwLjEtOS42LTE5LjYtOC40LjctOS44IDIxLjItMS44IDI4LjEgMSAuOCAxLjktLjItNS45IDUuNS0xNS42LTE0LjYtMTAuNS01Mi4xIDguNC01Mi4xem0tMTMuNiA2MC43YzYuMi00LjYgMTMuNi0xMCAxNC4xLTEwLjUgNC43LTQuNCAxMy41LTE0LjIgMjcuOS0xNC4yIDcuMSAwIDE1LjYgMi4zIDI1LjkgOC45IDYuMyA0LjEgMTEuMyA0LjQgMjIuNiA5LjMgOC40IDMuNSAxMy43IDkuNyAxMC41IDE4LjItMi42IDcuMS0xMSAxNC40LTIyLjcgMTguMS0xMS4xIDMuNi0xOS44IDE2LTM4LjIgMTQuOS0zLjktLjItNy0xLTkuNi0yLjEtOC0zLjUtMTIuMi0xMC40LTIwLTE1LTguNi00LjgtMTMuMi0xMC40LTE0LjctMTUuMy0xLjQtNC45IDAtOSA0LjItMTIuM3ptMy4zIDMzNGMtMi43IDM1LjEtNDMuOSAzNC40LTc1LjMgMTgtMjkuOS0xNS44LTY4LjYtNi41LTc2LjUtMjEuOS0yLjQtNC43LTIuNC0xMi43IDIuNi0yNi40di0uMmMyLjQtNy42LjYtMTYtLjYtMjMuOS0xLjItNy44LTEuOC0xNSAuOS0yMCAzLjUtNi43IDguNS05LjEgMTQuOC0xMS4zIDEwLjMtMy43IDExLjgtMy40IDE5LjYtOS45IDUuNS01LjcgOS41LTEyLjkgMTQuMy0xOCA1LjEtNS41IDEwLTguMSAxNy43LTYuOSA4LjEgMS4yIDE1LjEgNi44IDIxLjkgMTZsMTkuNiAzNS42YzkuNSAxOS45IDQzLjEgNDguNCA0MSA2OC45em0tMS40LTI1LjljLTQuMS02LjYtOS42LTEzLjYtMTQuNC0xOS42IDcuMSAwIDE0LjItMi4yIDE2LjctOC45IDIuMy02LjIgMC0xNC45LTcuNC0yNC45LTEzLjUtMTguMi0zOC4zLTMyLjUtMzguMy0zMi41LTEzLjUtOC40LTIxLjEtMTguNy0yNC42LTI5LjlzLTMtMjMuMy0uMy0zNS4yYzUuMi0yMi45IDE4LjYtNDUuMiAyNy4yLTU5LjIgMi4zLTEuNy44IDMuMi04LjcgMjAuOC04LjUgMTYuMS0yNC40IDUzLjMtMi42IDgyLjQuNi0yMC43IDUuNS00MS44IDEzLjgtNjEuNSAxMi0yNy40IDM3LjMtNzQuOSAzOS4zLTExMi43IDEuMS44IDQuNiAzLjIgNi4yIDQuMSA0LjYgMi43IDguMSA2LjcgMTIuNiAxMC4zIDEyLjQgMTAgMjguNSA5LjIgNDIuNCAxLjIgNi4yLTMuNSAxMS4yLTcuNSAxNS45LTkgOS45LTMuMSAxNy44LTguNiAyMi4zLTE1IDcuNyAzMC40IDI1LjcgNzQuMyAzNy4yIDk1LjcgNi4xIDExLjQgMTguMyAzNS41IDIzLjYgNjQuNiAzLjMtLjEgNyAuNCAxMC45IDEuNCAxMy44LTM1LjctMTEuNy03NC4yLTIzLjMtODQuOS00LjctNC42LTQuOS02LjYtMi42LTYuNSAxMi42IDExLjIgMjkuMiAzMy43IDM1LjIgNTkgMi44IDExLjYgMy4zIDIzLjcuNCAzNS43IDE2LjQgNi44IDM1LjkgMTcuOSAzMC43IDM0LjgtMi4yLS4xLTMuMiAwLTQuMiAwIDMuMi0xMC4xLTMuOS0xNy42LTIyLjgtMjYuMS0xOS42LTguNi0zNi04LjYtMzguMyAxMi41LTEyLjEgNC4yLTE4LjMgMTQuNy0yMS40IDI3LjMtMi44IDExLjItMy42IDI0LjctNC40IDM5LjktLjUgNy43LTMuNiAxOC02LjggMjktMzIuMSAyMi45LTc2LjcgMzIuOS0xMTQuMyA3LjJ6bTI1Ny40LTExLjVjLS45IDE2LjgtNDEuMiAxOS45LTYzLjIgNDYuNS0xMy4yIDE1LjctMjkuNCAyNC40LTQzLjYgMjUuNXMtMjYuNS00LjgtMzMuNy0xOS4zYy00LjctMTEuMS0yLjQtMjMuMSAxLjEtMzYuMyAzLjctMTQuMiA5LjItMjguOCA5LjktNDAuNi44LTE1LjIgMS43LTI4LjUgNC4yLTM4LjcgMi42LTEwLjMgNi42LTE3LjIgMTMuNy0yMS4xLjMtLjIuNy0uMyAxLS41LjggMTMuMiA3LjMgMjYuNiAxOC44IDI5LjUgMTIuNiAzLjMgMzAuNy03LjUgMzguNC0xNi4zIDktLjMgMTUuNy0uOSAyMi42IDUuMSA5LjkgOC41IDcuMSAzMC4zIDE3LjEgNDEuNiAxMC42IDExLjYgMTQgMTkuNSAxMy43IDI0LjZ6TTE3My4zIDE0OC43YzIgMS45IDQuNyA0LjUgOCA3LjEgNi42IDUuMiAxNS44IDEwLjYgMjcuMyAxMC42IDExLjYgMCAyMi41LTUuOSAzMS44LTEwLjggNC45LTIuNiAxMC45LTcgMTQuOC0xMC40czUuOS02LjMgMy4xLTYuNi0yLjYgMi42LTYgNS4xYy00LjQgMy4yLTkuNyA3LjQtMTMuOSA5LjgtNy40IDQuMi0xOS41IDEwLjItMjkuOSAxMC4ycy0xOC43LTQuOC0yNC45LTkuN2MtMy4xLTIuNS01LjctNS03LjctNi45LTEuNS0xLjQtMS45LTQuNi00LjMtNC45LTEuNC0uMS0xLjggMy43IDEuNyA2LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUx5ZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA4MS4xaDc3Ljh2MjA4LjdjMCAzMy4xIDE1IDUyLjggMjcuMiA2MS0xMi43IDExLjEtNTEuMiAyMC45LTgwLjItMi44QzcuOCAzMzQgMCAzMTAuNyAwIDI4OVY4MS4xem00ODUuOSAxNzMuNXYtMjJoMjMuOHYtNzYuOGgtMjYuMWMtMTAuMS00Ni4zLTUxLjItODAuNy0xMDAuMy04MC43LTU2LjYgMC0xMDIuNyA0Ni0xMDIuNyAxMDIuN1YzNTdjMTYgMi4zIDM1LjQtLjMgNTEuNy0xNCAxNy4xLTE0IDI0LjgtMzcuMiAyNC44LTU5di02LjdoMzguOHYtNzYuOGgtMzguOHYtMjMuM2MwLTM0LjYgNTIuMi0zNC42IDUyLjIgMHY3Ny4xYzAgNTYuNiA0NiAxMDIuNyAxMDIuNyAxMDIuN3YtNzYuNWMtMTQuNSAwLTI2LjEtMTEuNy0yNi4xLTI1Ljl6bS0yOTQuMy05OXYxMTNjMCAxNS40LTIzLjggMTUuNC0yMy44IDB2LTExM0g5MXYxMzIuN2MwIDIzLjggOCA1NCA0NSA2My45IDM3IDkuOCA1OC4yLTEwLjYgNTguMi0xMC42LTIuMSAxMy40LTE0LjUgMjMuMy0zNC45IDI1LjMtMTUuNSAxLjYtMzUuMi0zLjYtNDUtNy44djcwLjNjMjUuMSA3LjUgNTEuNSA5LjggNzcuNiA0LjcgNDcuMS05LjEgNzYuOC00OC40IDc2LjgtMTAwLjhWMTU1LjFoLTc3LjF2LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hZ2VudG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ1LjcgMTI3LjlWMzg0bC02My40IDM2LjVWMTY0LjdMMjIzLjggNzMuMSA2NS4yIDE2NC43bC40IDI1NS45TDIuMyAzODRWMTI4LjFMMjI0LjIgMGwyMjEuNSAxMjcuOXpNMjU1LjYgNDIwLjVMMjI0IDQzOC45bC0zMS44LTE4LjJ2LTI1NmwtNjMuMyAzNi42LjEgMjU1LjkgOTQuOSA1NC45IDk1LjEtNTQuOXYtMjU2bC02My40LTM2LjZ2MjU1Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1haWxjaGltcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzAuNjEgMjQzLjUyYTM2LjE1IDM2LjE1IDAgMCAxIDkuMyAwYzEuNjYtMy44MyAxLjk1LTEwLjQzLjQ1LTE3LjYxLTIuMjMtMTAuNjctNS4yNS0xNy4xNC0xMS40OC0xNi4xM3MtNi40NyA4Ljc0LTQuMjQgMTkuNDJjMS4yNiA2IDMuNDkgMTEuMTQgNiAxNC4zMnpNMjc3LjA1IDI1MmM0LjQ3IDIgNy4yIDMuMjYgOC4yOCAyLjEzIDEuODktMS45NC0zLjQ4LTkuMzktMTIuMTItMTMuMDlhMzEuNDQgMzEuNDQgMCAwIDAtMzAuNjEgMy42OGMtMyAyLjE4LTUuODEgNS4yMi01LjQxIDcuMDYuODUgMy43NCAxMC0yLjcxIDIyLjYtMy40OCA3LS40NCAxMi44IDEuNzUgMTcuMjYgMy43MXptLTkgNS4xM2MtOS4wNyAxLjQyLTE1IDYuNTMtMTMuNDcgMTAuMS45LjM0IDEuMTcuODEgNS4yMS0uODFhMzcgMzcgMCAwIDEgMTguNzItMS45NWMyLjkyLjM0IDQuMzEuNTIgNC45NC0uNDkgMS40Ni0yLjIyLTUuNzEtOC0xNS4zOS02Ljg1em01NC4xNyAxNy4xYzMuMzgtNi44Ny0xMC45LTEzLjkzLTE0LjMtN3MxMC45MiAxMy44OCAxNC4zMiA2Ljk3em0xNS42Ni0yMC40N2MtNy42Ni0uMTMtNy45NSAxNS44LS4yNiAxNS45M3M3Ljk4LTE1LjgxLjI4LTE1Ljk2em0tMjE4Ljc5IDc4LjljLTEuMzIuMzEtNiAxLjQ1LTguNDctMi4zNS01LjItOCAxMS4xMS0yMC4zOCAzLTM1Ljc3LTkuMS0xNy40Ny0yNy44Mi0xMy41NC0zNS4wNS01LjU0LTguNzEgOS42LTguNzIgMjMuNTQtNSAyNC4wOCA0LjI3LjU3IDQuMDgtNi40NyA3LjM4LTExLjYzYTEyLjgzIDEyLjgzIDAgMCAxIDE3Ljg1LTMuNzJjMTEuNTkgNy41OSAxLjM3IDE3Ljc2IDIuMjggMjguNjIgMS4zOSAxNi42OCAxOC40MiAxNi4zNyAyMS41OCA5YTIuMDggMi4wOCAwIDAgMC0uMi0yLjMzYy4wMy44OS42OC0xLjMtMy4zNS0uMzl6bTI5OS43Mi0xNy4wN2MtMy4zNS0xMS43My0yLjU3LTkuMjItNi43OC0yMC41MiAyLjQ1LTMuNjcgMTUuMjktMjQtMy4wNy00My4yNS0xMC40LTEwLjkyLTMzLjktMTYuNTQtNDEuMS0xOC41NC0xLjUtMTEuMzkgNC42NS01OC43LTIxLjUyLTgzIDIwLjc5LTIxLjU1IDMzLjc2LTQ1LjI5IDMzLjczLTY1LjY1LS4wNi0zOS4xNi00OC4xNS01MS0xMDcuNDItMjYuNDdsLTEyLjU1IDUuMzNjLS4wNi0uMDUtMjIuNzEtMjIuMjctMjMuMDUtMjIuNTdDMTY5LjUtMTgtNDEuNzcgMjE2LjgxIDI1Ljc4IDI3My44NWwxNC43NiAxMi41MWE3Mi40OSA3Mi40OSAwIDAgMC00LjEgMzMuNWMzLjM2IDMzLjQgMzYgNjAuNDIgNjcuNTMgNjAuMzggNTcuNzMgMTMzLjA2IDI2Ny45IDEzMy4yOCAzMjIuMjkgMyAxLjc0LTQuNDcgOS4xMS0yNC42MSA5LjExLTQyLjM4cy0xMC4wOS0yNS4yNy0xNi41My0yNS4yN3ptLTMxNiA0OC4xNmMtMjIuODItLjYxLTQ3LjQ2LTIxLjE1LTQ5LjkxLTQ1LjUxLTYuMTctNjEuMzEgNzQuMjYtNzUuMjcgODQtMTIuMzMgNC41NCAyOS42NC00LjY3IDU4LjQ5LTM0LjEyIDU3Ljgxek04NC4zIDI0OS41NUM2OS4xNCAyNTIuNSA1NS43OCAyNjEuMDkgNDcuNiAyNzNjLTQuODgtNC4wNy0xNC0xMi0xNS41OS0xNS0xMy4wMS0yNC44NSAxNC4yNC03MyAzMy4zLTEwMC4yMUMxMTIuNDIgOTAuNTYgMTg2LjE5IDM5LjY4IDIyMC4zNiA0OC45MWM1LjU1IDEuNTcgMjMuOTQgMjIuODkgMjMuOTQgMjIuODlzLTM0LjE1IDE4Ljk0LTY1LjggNDUuMzVjLTQyLjY2IDMyLjg1LTc0Ljg5IDgwLjU5LTk0LjIgMTMyLjR6TTMyMy4xOCAzNTAuN3MtMzUuNzQgNS4zLTY5LjUxLTcuMDdjNi4yMS0yMC4xNiAyNyA2LjEgOTYuNC0xMy44MSAxNS4yOS00LjM4IDM1LjM3LTEzIDUxLTI1LjM1YTEwMi44NSAxMDIuODUgMCAwIDEgNy4xMiAyNC4yOGMzLjY2LS42NiAxNC4yNS0uNTIgMTEuNDQgMTguMS0zLjI5IDE5Ljg3LTExLjczIDM2LTI1LjkzIDUwLjg0QTEwNi44NiAxMDYuODYgMCAwIDEgMzYyLjU1IDQyMWExMzIuNDUgMTMyLjQ1IDAgMCAxLTIwLjM0IDguNThjLTUzLjUxIDE3LjQ4LTEwOC4zLTEuNzQtMTI2LTQzYTY2LjMzIDY2LjMzIDAgMCAxLTMuNTUtOS43NGMtNy41My0yNy4yLTEuMTQtNTkuODMgMTguODQtODAuMzcgMS4yMy0xLjMxIDIuNDgtMi44NSAyLjQ4LTQuNzlhOC40NSA4LjQ1IDAgMCAwLTEuOTItNC41NGMtNy0xMC4xMy0zMS4xOS0yNy40LTI2LjMzLTYwLjgzIDMuNS0yNCAyNC40OS00MC45MSA0NC4wNy0zOS45MWw1IC4yOWM4LjQ4LjUgMTUuODkgMS41OSAyMi44OCAxLjg4IDExLjY5LjUgMjIuMi0xLjE5IDM0LjY0LTExLjU2IDQuMi0zLjUgNy41Ny02LjU0IDEzLjI2LTcuNTFhMTcuNDUgMTcuNDUgMCAwIDEgMTMuNiAyLjI0YzEwIDYuNjQgMTEuNCAyMi43MyAxMS45MiAzNC40OS4yOSA2LjcyIDEuMSAyMyAxLjM4IDI3LjYzLjYzIDEwLjY3IDMuNDMgMTIuMTcgOS4xMSAxNCAzLjE5IDEuMDUgNi4xNSAxLjgzIDEwLjUxIDMuMDYgMTMuMjEgMy43MSAyMSA3LjQ4IDI2IDEyLjMxYTE2LjM4IDE2LjM4IDAgMCAxIDQuNzQgOS4yOWMxLjU2IDExLjM3LTguODIgMjUuNC0zNi4zMSAzOC4xNi00Ni43MSAyMS42OC05My42OCAxNC40NS0xMDAuNDggMTMuNjgtMjAuMTUtMi43MS0zMS42MyAyMy4zMi0xOS41NSA0MS4xNSAyMi42NCAzMy40MSAxMjIuNCAyMCAxNTEuMzctMjEuMzUuNjktMSAuMTItMS41OS0uNzMtMS00MS43NyAyOC41OC05Ny4wNiAzOC4yMS0xMjguNDYgMjYtNC43Ny0xLjg1LTE0LjczLTYuNDQtMTUuOTQtMTYuNjcgNDMuNiAxMy40OSA3MSAuNzQgNzEgLjc0czIuMDMtMi43OS0uNTYtMi41M3ptLTY4LjQ3LTUuN3ptLTgzLjQtMTg3LjVjMTYuNzQtMTkuMzUgMzcuMzYtMzYuMTggNTUuODMtNDUuNjNhLjczLjczIDAgMCAxIDEgMWMtMS40NiAyLjY2LTQuMjkgOC4zNC01LjE5IDEyLjY1YS43NS43NSAwIDAgMCAxLjE2Ljc5YzExLjQ5LTcuODMgMzEuNDgtMTYuMjIgNDktMTcuM2EuNzcuNzcgMCAwIDEgLjUyIDEuMzggNDEuODYgNDEuODYgMCAwIDAtNy43MSA3Ljc0Ljc1Ljc1IDAgMCAwIC41OSAxLjE5YzEyLjMxLjA5IDI5LjY2IDQuNCA0MSAxMC43NC43Ni40My4yMiAxLjkxLS42NCAxLjcyLTY5LjU1LTE1Ljk0LTEyMy4wOCAxOC41My0xMzQuNSAyNi44M2EuNzYuNzYgMCAwIDEtMS0xLjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYW5kYWxvcmlhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzIuMjcgNTExLjg5Yy0xLTMuMjYtMS42OS0xNS44My0xLjM5LTI0LjU4LjU1LTE1Ljg5IDEtMjQuNzIgMS40LTI4Ljc2LjY0LTYuMiAyLjg3LTIwLjcyIDMuMjgtMjEuMzguNi0xIC40LTI3Ljg3LS4yNC0zMy4xMy0uMzEtMi41OC0uNjMtMTEuOS0uNjktMjAuNzMtLjEzLTE2LjQ3LS41My0yMC4xMi0yLjczLTI0Ljc2LTEuMS0yLjMyLTEuMjMtMy44NC0xLTExLjQzYTkyLjM4IDkyLjM4IDAgMCAwLS4zNC0xMi43MWMtMi0xMy0zLjQ2LTI3LjctMy4yNS0zMy45cy40My03LjE1IDIuMDYtOS42N2MzLjA1LTQuNzEgNi41MS0xNCA4LjYyLTIzLjI3IDIuMjYtOS44NiAzLjg4LTE3LjE4IDQuNTktMjAuNzRhMTA5LjU0IDEwOS41NCAwIDAgMSA0LjQyLTE1LjA1YzIuMjctNi4yNSAyLjQ5LTE1LjM5LjM3LTE1LjM5LS4zIDAtMS4zOCAxLjIyLTIuNDEgMi43MXMtNC43NiA0LjgtOC4yOSA3LjM2Yy04LjM3IDYuMDgtMTEuNyA5LjM5LTEyLjY2IDEyLjU4cy0xIDcuMjMtLjE2IDcuNzZjLjM0LjIxIDEuMjkgMi40IDIuMTEgNC44OGEyOC44MyAyOC44MyAwIDAgMSAuNzIgMTUuMzZjLS4zOSAxLjc3LTEgNS40Ny0xLjQ2IDguMjNzLTEgNi40Ni0xLjI1IDguMjJhOS44NSA5Ljg1IDAgMCAxLTEuNTUgNC4yNmMtMSAxLTEuMTQuOTEtMi4wNS0uNTNhMTQuODcgMTQuODcgMCAwIDEtMS40NC00Ljc1Yy0uMjUtMS43NC0xLjYzLTcuMTEtMy4wOC0xMS45My0zLjI4LTEwLjktMy41Mi0xNi4xNS0xLTIxYTE0LjI0IDE0LjI0IDAgMCAwIDEuNjctNC42MWMwLTIuMzktMi4yLTUuMzItNy40MS05Ljg5LTctNi4xOC04LjYzLTcuOTItMTAuMjMtMTEuMy0xLjcxLTMuNi0zLjA2LTQuMDYtNC41NC0xLjU0LTEuNzggMy0yLjYgOS4xMS0zIDIybC0uMzQgMTIuMTkgMiAyLjI1YzMuMjEgMy43IDEyLjA3IDE2LjQ1IDEzLjc4IDE5LjgzIDMuNDEgNi43NCA0LjM0IDExLjY5IDQuNDEgMjMuNTZzLjk1IDIyLjc1IDIgMjQuNzFjLjM2LjY2LjUxIDEuMzUuMzQgMS41MnMuNDEgMi4wOSAxLjI5IDQuMjdhMzguMTQgMzguMTQgMCAwIDEgMi4wNiA5IDkxIDkxIDAgMCAwIDEuNzEgMTAuMzdjMi4yMyA5LjU2IDIuNzcgMTQuMDggMi4zOSAyMC4xNC0uMiAzLjI3LS41MyAxMS4wNy0uNzMgMTcuMzItMS4zMSA0MS43Ni0xLjg1IDU4LTIgNjEuMjEtLjEyIDItLjM5IDExLjUxLS42IDIxLjA3LS4zNiAxNi4zLTEuMyAyNy4zNy0yLjQyIDI4LjY1LS42NC43My04LjA3LTQuOTEtMTIuNTItOS40OS0zLjc1LTMuODctNC00Ljc5LTIuODMtOS45NS43LTMgMi4yNi0xOC4yOSAzLjMzLTMyLjYyLjM2LTQuNzguODEtMTAuNSAxLTEyLjcxLjgzLTkuMzcgMS42Ni0yMC4zNSAyLjYxLTM0Ljc4LjU2LTguNDYgMS4zMy0xNi40NCAxLjcyLTE3Ljczcy44OS05Ljg5IDEuMTMtMTkuMTFsLjQzLTE2Ljc3LTIuMjYtNC4zYy0xLjcyLTMuMjgtNC44Ny02Ljk0LTEzLjIyLTE1LjM0LTYtNi4wNy0xMS44NC0xMi4zLTEyLjkxLTEzLjg1bC0xLjk1LTIuODEuNzUtMTAuOWMxLjA5LTE1LjcxIDEuMS00OC41NyAwLTU5LjA2bC0uODktOC43LTMuMjgtNC41MmMtNS44Ni04LjA4LTUuOC03Ljc1LTYuMjItMzMuMjctLjEtNi4wNy0uMzgtMTEuNS0uNjMtMTIuMDYtLjgzLTEuODctMy4wNS0yLjY2LTguNTQtMy4wNS04Ljg2LS42Mi0xMS0xLjktMjMuODUtMTQuNTUtNi4xNS02LTEyLjM0LTEyLTEzLjc1LTEzLjE5LTIuODEtMi40Mi0yLjc5LTItLjU2LTkuNjNsMS4zNS00LjY1LTEuNjktM2EzMi4yMiAzMi4yMiAwIDAgMC0yLjU5LTQuMDdjLTEuMzMtMS41MS01LjUtMTAuODktNi0xMy40OWE0LjI0IDQuMjQgMCAwIDEgLjg3LTMuOWMyLjIzLTIuODYgMy40LTUuNjggNC40NS0xMC43MyAyLjMzLTExLjE5IDcuNzQtMjYuMDkgMTAuNi0yOS4yMiAzLjE4LTMuNDcgNy43LTEgOS40MSA1IDEuMzQgNC43OSAxLjM3IDkuNzkuMSAxOC41NWExMDEuMiAxMDEuMiAwIDAgMC0xIDExLjExYzAgNCAuMTkgNC42OSAyLjI1IDcuMzkgMy4zMyA0LjM3IDcuNzMgNy40MSAxNS4yIDEwLjUyYTE4LjY3IDE4LjY3IDAgMCAxIDQuNzIgMi44NWMxMS4xNyAxMC43MiAxOC42MiAxNi4xOCAyMi45NSAxNi44NSA1LjE4LjggOCA0LjU0IDEwIDEzLjM5IDEuMzEgNS42NSA0IDExLjE0IDUuNDYgMTEuMTRhOS4zOCA5LjM4IDAgMCAwIDMuMzMtMS4zOWMyLTEuMjIgMi4yNS0xLjczIDIuMjUtNC4xOGExMzIuODggMTMyLjg4IDAgMCAwLTItMTcuODRjLS4zNy0xLjY2LS43OC00LjA2LS45My01LjM1cy0uNjEtMy44NS0xLTUuNjljLTIuNTUtMTEuMTYtMy42NS0xNS40Ni00LjEtMTYtMS41NS0yLTQuMDgtMTAuMi00LjkzLTE1LjkyLTEuNjQtMTEuMTEtNC0xNC4yMy0xMi45MS0xNy4zOUE0My4xNSA0My4xNSAwIDAgMSAxNjUuMjQgNzhjLTEuMTUtMS00LTMuMjItNi4zNS01LjA2cy00LjQxLTMuNTMtNC42LTMuNzZhMjIuNyAyMi43IDAgMCAwLTIuNjktMmMtNi4yNC00LjIyLTguODQtNy0xMS4yNi0xMmwtMi40NC01LS4yMi0xMy0uMjItMTMgNi45MS02LjU1YzMuOTUtMy43NSA4LjQ4LTcuMzUgMTAuNTktOC40MyAzLjMxLTEuNjkgNC40NS0xLjg5IDExLjM3LTIgOC41My0uMTkgMTAuMTIgMCAxMS42NiAxLjU2czEuMzYgNi40LS4yOSA4LjVhNi42NiA2LjY2IDAgMCAwLTEuMzQgMi4zMmMwIC41OC0yLjYxIDQuOTEtNS40MiA5YTMwLjM5IDMwLjM5IDAgMCAwLTIuMzcgNi44MmMyMC40NCAxMy4zOSAyMS41NSAzLjc3IDE0LjA3IDI5TDE5NCA2Ni45MmMzLjExLTguNjYgNi40Ny0xNy4yNiA4LjYxLTI2LjIyLjI5LTcuNjMtMTItNC4xOS0xNS40LTguNjgtMi4zMy01LjkzIDMuMTMtMTQuMTggNi4wNi0xOS4yIDEuNi0yLjM0IDYuNjItNC43IDguODItNC4xNS44OC4yMiA0LjE2LS4zNSA3LjM3LTEuMjhhNDUuMyA0NS4zIDAgMCAxIDcuNTUtMS42OCAyOS41NyAyOS41NyAwIDAgMCA2LTEuMjljMy42NS0xLjExIDQuNS0xLjE3IDYuMzUtLjRhMjkuNTQgMjkuNTQgMCAwIDAgNS44MiAxLjM2IDE4LjE4IDE4LjE4IDAgMCAxIDYgMS45MSAyMi42NyAyMi42NyAwIDAgMCA1IDIuMTdjMi41MS42OCAzIC41NyA3LjA1LTEuNjdsNC4zNS0yLjRMMjY4LjMyIDVjMTAuNDQtLjQgMTAuODEtLjQ3IDE1LjI2LTIuNjhMMjg4LjE2IDBsMi40NiAxLjQzYzEuNzYgMSAzLjE0IDIuNzMgNC44NSA2IDIuMzYgNC41MSAyLjM4IDQuNTggMS4zNyA3LjM3LS44OCAyLjQ0LS44OSAzLjMtLjEgNi4zOWEzNS43NiAzNS43NiAwIDAgMCAyLjEgNS45MSAxMy41NSAxMy41NSAwIDAgMSAxLjMxIDRjLjMxIDQuMzMgMCA1LjMtMi40MSA2LjkyLTIuMTcgMS40Ny03IDcuOTEtNyA5LjM0YTE0Ljc3IDE0Ljc3IDAgMCAxLTEuMDcgM2MtNSAxMS41MS02Ljc2IDEzLjU2LTE0LjI2IDE3LTkuMiA0LjItMTIuMyA1LjE5LTE2LjIxIDUuMTktMy4xIDAtNCAuMjUtNC41NCAxLjI2YTE4LjMzIDE4LjMzIDAgMCAxLTQuMDkgMy43MSAxMy42MiAxMy42MiAwIDAgMC00LjM4IDQuNzggNS44OSA1Ljg5IDAgMCAxLTIuNDkgMi45MSA2Ljg4IDYuODggMCAwIDAtMi40NSAxLjcxIDY3LjYyIDY3LjYyIDAgMCAxLTcgNS4zOGMtMy4zMyAyLjM0LTYuODcgNS03Ljg3IDZBNy4yNyA3LjI3IDAgMCAxIDIyNCAxMDBhNS43NiA1Ljc2IDAgMCAwLTIuMTMgMS42NWMtMS4zMSAxLjM5LTEuNDkgMi4xMS0xLjE0IDQuNmEzNi40NSAzNi40NSAwIDAgMCAxLjQyIDUuODhjMS4zMiAzLjggMS4zMSA3Ljg2IDAgMTAuNTdzLS44OSA2LjY1IDEuMzUgOS41OWMyIDIuNjMgMi4xNiA0LjU2LjcxIDguODRhMzMuNDUgMzMuNDUgMCAwIDAtMS4wNiA4LjkxYzAgNC44OC4yMiA2LjI4IDEuNDYgOC4zOHMxLjgyIDIuNDggMy4yNCAyLjMyYzItLjIzIDIuMy0xLjA1IDQuNzEtMTIuMTIgMi4xOC0xMCAzLjcxLTExLjkyIDEzLjc2LTE3LjA4IDIuOTQtMS41MSA3LjQ2LTQgMTAtNS40NHM2Ljc5LTMuNjkgOS4zNy00LjkxYTQwLjA5IDQwLjA5IDAgMCAwIDE1LjIyLTExLjY3YzcuMTEtOC43OSAxMC0xNi4yMiAxMi44NS0zMy4zYTE4LjM3IDE4LjM3IDAgMCAxIDIuODYtNy43MyAyMC4zOSAyMC4zOSAwIDAgMCAyLjg5LTcuMzFjMS01LjMgMi44NS05LjA4IDUuNTgtMTEuNTEgNC43LTQuMTggNi0xLjA5IDQuNTkgMTAuODctLjQ2IDMuODYtMS4xIDEwLjMzLTEuNDQgMTQuMzhsLS42MSA3LjM2IDQuNDUgNC4wOSA0LjQ1IDQuMDkuMTEgOC40MmMuMDYgNC42My40NyA5LjUzLjkyIDEwLjg5bC44MiAyLjQ3LTYuNDMgNi4yOGMtOC41NCA4LjMzLTEyLjg4IDEzLjkzLTE2Ljc2IDIxLjYxLTEuNzcgMy40OS0zLjc0IDcuMTEtNC4zOCA4LTIuMTggMy4xMS02LjQ2IDEzLTguNzYgMjAuMjZsLTIuMjkgNy4yMi03IDYuNDljLTMuODMgMy41Ny04IDcuMjUtOS4xNyA4LjE3LTMuMDUgMi4zMi00LjI2IDUuMTUtNC4yNiAxMGExNC42MiAxNC42MiAwIDAgMCAxLjU5IDcuMjYgNDIgNDIgMCAwIDEgMi4wOSA0LjgzIDkuMjggOS4yOCAwIDAgMCAxLjU3IDIuODljMS40IDEuNTkgMS45MiAxNi4xMi44MyAyMy4yMi0uNjggNC40OC0zLjYzIDEyLTQuNyAxMi0xLjc5IDAtNC4wNiA5LjI3LTUuMDcgMjAuNzQtLjE4IDItLjYyIDUuOTQtMSA4LjdzLTEgMTAtMS4zNSAxNi4wNWMtLjc3IDEyLjIyLS4xOSAxOC43NyAyIDIzLjE1IDMuNDEgNi42OS41MiAxMi42OS0xMSAyMi44NGwtNCAzLjQ5LjA3IDUuMTlhNDAuODEgNDAuODEgMCAwIDAgMS4xNCA4Ljg3YzQuNjEgMTYgNC43MyAxNi45MiA0LjM4IDM3LjEzLS40NiAyNi40LS4yNiA0MC4yNy42MyA0NC4xNWE2MS4zMSA2MS4zMSAwIDAgMSAxLjA4IDdjLjE3IDIgLjY2IDUuMzMgMS4wOCA3LjM2LjQ3IDIuMjYuNzggMTEgLjc5IDIyLjc0djE5LjA2bC0xLjgxIDIuNjNjLTIuNzEgMy45MS0xNS4xMSAxMy41NC0xNS40OSAxMi4yOXptMjkuNTMtNDUuMTFjLS4xOC0uMy0uMzMtNi44Ny0uMzMtMTQuNTkgMC0xNC4wNi0uODktMjcuNTQtMi4yNi0zNC40NS0uNC0yLS44MS05LjctLjktMTcuMDYtLjE1LTExLjkzLTEuNC0yNC4zNy0yLjY0LTI2LjM4LS42Ni0xLjA3LTMtMTcuNjYtMy0yMS4zIDAtNC4yMyAxLTYgNS4yOC05LjEzczQuODYtMy4xNCA1LjQ4LS43MmMuMjggMS4xIDEuNDUgNS42MiAyLjYgMTAgMy45MyAxNS4xMiA0LjE0IDE2LjI3IDQuMDUgMjEuNzQtLjEgNS43OC0uMTMgNi4xMy0xLjc0IDE3LjczLTEgNy4wNy0xLjE3IDEyLjM5LTEgMjguNDMuMTcgMTkuNC0uNjQgMzUuNzMtMiA0MS4yNy0uNzEgMi43OC0yLjggNS40OC0zLjQzIDQuNDN6bS03MS0zNy41OGExMDEgMTAxIDAgMCAxLTEuNzMtMTAuNzkgMTAwLjUgMTAwLjUgMCAwIDAtMS43My0xMC43OSAzNy41MyAzNy41MyAwIDAgMS0xLTYuNDljLS4zMS0zLjE5LS45MS03LjQ2LTEuMzMtOS40OC0xLTQuNzktMy4zNS0xOS4zNS0zLjQyLTIxLjA3IDAtLjc0LS4zNC00LjA1LS43LTcuMzYtLjY3LTYuMjEtLjg0LTI3LjY3LS4yMi0yOC4yOSAxLTEgNi42MyAyLjc2IDExLjMzIDcuNDNsNS4yOCA1LjI1LS40NSA2LjQ3Yy0uMjUgMy41Ni0uNiAxMC4yMy0uNzggMTQuODNzLS40OSA5Ljg3LS42NyAxMS43MS0uNjEgOS4zNi0uOTQgMTYuNzJjLS43OSAxNy40MS0xLjk0IDMxLjI5LTIuNjUgMzJhLjYyLjYyIDAgMCAxLTEtLjE0em0tODcuMTgtMjY2LjU5YzIxLjA3IDEyLjc5IDE3Ljg0IDE0LjE1IDI4LjQ5IDE3LjY2IDEzIDQuMjkgMTguODcgNy4xMyAyMy4xNSAxNi44N0MxMTEuNiAyMzMuMjggODYuMjUgMjU1IDc4LjU1IDI2OGMtMzEgNTItNiAxMDEuNTkgNjIuNzUgODcuMjEtMTQuMTggMjkuMjMtNzggMjguNjMtOTguNjgtNC45LTI0LjY4LTM5Ljk1LTIyLjA5LTExOC4zIDYxLTE4Ny42NnptMjEwLjc5IDE3OWM1Ni42NiA2Ljg4IDgyLjMyLTM3Ljc0IDQ2LjU0LTg5LjIzIDAgMC0yNi44Ny0yOS4zNC02NC4yOC02OCAzLTE1LjQ1IDkuNDktMzIuMTIgMzAuNTctNTMuODIgODkuMiA2My41MSA5MiAxNDEuNjEgOTIuNDYgMTQ5LjM2IDQuMyA3MC42NC03OC43IDkxLjE4LTEwNS4yOSA2MS43MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFya2Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTkzLjggNTkuMUg0Ni4yQzIwLjcgNTkuMSAwIDc5LjggMCAxMDUuMnYzMDEuNWMwIDI1LjUgMjAuNyA0Ni4yIDQ2LjIgNDYuMmg1NDcuN2MyNS41IDAgNDYuMi0yMC43IDQ2LjEtNDYuMVYxMDUuMmMwLTI1LjQtMjAuNy00Ni4xLTQ2LjItNDYuMXpNMzM4LjUgMzYwLjZIMjc3di0xMjBsLTYxLjUgNzYuOS02MS41LTc2Ljl2MTIwSDkyLjNWMTUxLjRoNjEuNWw2MS41IDc2LjkgNjEuNS03Ni45aDYxLjV2MjA5LjJ6bTEzNS4zIDMuMUwzODEuNSAyNTZINDQzVjE1MS40aDYxLjVWMjU2SDU2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFzdG9kb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMzIDE3OS4xMWMwLTk3LjItNjMuNzEtMTI1LjctNjMuNzEtMTI1LjctNjIuNTItMjguNy0yMjguNTYtMjguNC0yOTAuNDggMCAwIDAtNjMuNzIgMjguNS02My43MiAxMjUuNyAwIDExNS43LTYuNiAyNTkuNCAxMDUuNjMgMjg5LjEgNDAuNTEgMTAuNyA3NS4zMiAxMyAxMDMuMzMgMTEuNCA1MC44MS0yLjggNzkuMzItMTguMSA3OS4zMi0xOC4xbC0xLjctMzYuOXMtMzYuMzEgMTEuNC03Ny4xMiAxMC4xYy00MC40MS0xLjQtODMtNC40LTg5LjYzLTU0YTEwMi41NCAxMDIuNTQgMCAwIDEtLjktMTMuOWM4NS42MyAyMC45IDE1OC42NSA5LjEgMTc4Ljc1IDYuNyA1Ni4xMi02LjcgMTA1LTQxLjMgMTExLjIzLTcyLjkgOS44LTQ5LjggOS0xMjEuNSA5LTEyMS41em0tNzUuMTIgMTI1LjJoLTQ2LjYzdi0xMTQuMmMwLTQ5LjctNjQtNTEuNi02NCA2Ljl2NjIuNWgtNDYuMzNWMTk3YzAtNTguNS02NC01Ni42LTY0LTYuOXYxMTQuMkg5MC4xOWMwLTEyMi4xLTUuMi0xNDcuOSAxOC40MS0xNzUgMjUuOS0yOC45IDc5LjgyLTMwLjggMTAzLjgzIDYuMWwxMS42IDE5LjUgMTEuNi0xOS41YzI0LjExLTM3LjEgNzguMTItMzQuOCAxMDMuODMtNi4xIDIzLjcxIDI3LjMgMTguNCA1MyAxOC40IDE3NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWF4Y2RuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2MS4xIDQ0Mi43aC05Ny40TDQxNS42IDIwMGMyLjMtMTAuMi45LTE5LjUtNC40LTI1LjctNS02LjEtMTMuNy05LjYtMjQuMi05LjZoLTQ5LjNsLTU5LjUgMjc4aC05Ny40bDU5LjUtMjc4aC04My40bC01OS41IDI3OEgwbDU5LjUtMjc4LTQ0LjYtOTUuNEgzODdjMzkuNCAwIDc1LjMgMTYuMyA5OC4zIDQ0LjkgMjMuMyAyOC42IDMxLjggNjcuNCAyMy42IDEwNS45bC00Ny44IDIyMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZGIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuMzcgMTYwLjQxTDcgMzUyaDQzLjkxbDUuNTktNzkuODNMODQuNDMgMzUyaDQ0LjcxbDI1LjU0LTc3LjQzIDQuNzkgNzcuNDNIMjA1bC0xMi43OS0xOTEuNTlIMTQ2LjdMMTA2IDI3Ny43NCA2My42NyAxNjAuNDF6bTI4MSAwaC00Ny45VjM1Mmg0Ny45czk1IC44IDk0LjItOTUuNzljLS43OC05NC4yMS05NC4xOC05NS43OC05NC4xOC05NS43OHptLTEuMiAxNDYuNDZWMjA0Ljc4czQ2IDQuMjcgNDYuOCA1MC41Ny00Ni43OCA1MS41NC00Ni43OCA1MS41NHptMjM4LjI5LTc0LjI0YTU2LjE2IDU2LjE2IDAgMCAwIDgtMzguMzFjLTUuMzQtMzUuNzYtNTUuMDgtMzQuMzItNTUuMDgtMzQuMzJoLTUxLjl2MTkxLjU4SDQ4MnM4NyA0Ljc5IDg3LTYzLjg1YzAtNDMuMTQtMzMuNTItNTUuMDgtMzMuNTItNTUuMDh6bS01MS45LTMxLjk0czEzLjU3LTEuNTkgMTYgOS41OWMxLjQzIDYuNjYtNCAxMi00IDEyaC0xMnYtMjEuNTd6bS0uMSAxMDkuNDZsLjEtMjQuOTJWMjY3aC4wOHM0MS41OC00LjczIDQxLjE5IDIyLjQzYy0uMzMgMjUuNjUtNDEuMzUgMjAuNzQtNDEuMzUgMjAuNzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1lZGFwcHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTE4LjMgMjM4LjRjMy41LTEyLjUgNi45LTMzLjYgMTMuMi0zMy42IDguMyAxLjggOS42IDIzLjQgMTguNiAzNi42IDQuNi0yMy41IDUuMy04NS4xIDE0LjEtODYuNyA5LS43IDE5LjcgNjYuNSAyMiA3Ny41IDkuOSA0LjEgNDguOSA2LjYgNDguOSA2LjYgMS45IDcuMy0yNCA3LjYtNDAgNy44LTQuNiAxNC44LTUuNCAyNy43LTExLjQgMjgtNC43LjItOC4yLTI4LjgtMTcuNS00OS42bC05LjQgNjUuNWMtNC40IDEzLTE1LjUtMjIuNS0yMS45LTM5LjMtMy4zLS4xLTYyLjQtMS42LTQ3LjYtNy44bDMxLTV6TTIyOCA0NDhjMjEuMiAwIDIxLjItMzIgMC0zMkg5MmMtMjEuMiAwLTIxLjIgMzIgMCAzMmgxMzZ6bS0yNCA2NGMyMS4yIDAgMjEuMi0zMiAwLTMyaC04OGMtMjEuMiAwLTIxLjIgMzIgMCAzMmg4OHptMzQuMi0xNDEuNWMzLjItMTguOSA1LjItMzYuNCAxMS45LTQ4LjggNy45LTE0LjcgMTYuMS0yOC4xIDI0LTQxIDI0LjYtNDAuNCA0NS45LTc1LjIgNDUuOS0xMjUuNUMzMjAgNjkuNiAyNDguMiAwIDE2MCAwUzAgNjkuNiAwIDE1NS4yYzAgNTAuMiAyMS4zIDg1LjEgNDUuOSAxMjUuNSA3LjkgMTIuOSAxNiAyNi4zIDI0IDQxIDYuNyAxMi41IDguNyAyOS44IDExLjkgNDguOSAzLjUgMjEgMzYuMSAxNS43IDMyLjYtNS4xLTMuNi0yMS43LTUuNi00MC43LTE1LjMtNTguNkM2Ni41IDI0Ni41IDMzIDIxMS4zIDMzIDE1NS4yIDMzIDg3LjMgOTAgMzIgMTYwIDMyczEyNyA1NS4zIDEyNyAxMjMuMmMwIDU2LjEtMzMuNSA5MS4zLTY2LjEgMTUxLjYtOS43IDE4LTExLjcgMzcuNC0xNS4zIDU4LjYtMy40IDIwLjYgMjkgMjYuNCAzMi42IDUuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVkaXVtTSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03MS41IDE0Mi4zYy42LTUuOS0xLjctMTEuOC02LjEtMTUuOEwyMC4zIDcyLjFWNjRoMTQwLjJsMTA4LjQgMjM3LjdMMzY0LjIgNjRoMTMzLjd2OC4xbC0zOC42IDM3Yy0zLjMgMi41LTUgNi43LTQuMyAxMC44djI3MmMtLjcgNC4xIDEgOC4zIDQuMyAxMC44bDM3LjcgMzd2OC4xSDMwNy4zdi04LjFsMzkuMS0zNy45YzMuOC0zLjggMy44LTUgMy44LTEwLjhWMTcxLjJMMjQxLjUgNDQ3LjFoLTE0LjdMMTAwLjQgMTcxLjJ2MTg0LjljLTEuMSA3LjggMS41IDE1LjYgNyAyMS4ybDUwLjggNjEuNnY4LjFoLTE0NHYtOEw2NSAzNzcuM2M1LjQtNS42IDcuOS0xMy41IDYuNS0yMS4yVjE0Mi4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZWRpdW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnY0NDhoNDQ4VjMySDB6bTM3Mi4yIDEwNi4xbC0yNCAyM2MtMi4xIDEuNi0zLjEgNC4yLTIuNyA2Ljd2MTY5LjNjLS40IDIuNi42IDUuMiAyLjcgNi43bDIzLjUgMjN2NS4xaC0xMThWMzY3bDI0LjMtMjMuNmMyLjQtMi40IDIuNC0zLjEgMi40LTYuN1YxOTkuOGwtNjcuNiAxNzEuNmgtOS4xTDEyNSAxOTkuOHYxMTVjLS43IDQuOCAxIDkuNyA0LjQgMTMuMmwzMS42IDM4LjN2NS4xSDcxLjJ2LTUuMWwzMS42LTM4LjNjMy40LTMuNSA0LjktOC40IDQuMS0xMy4ydi0xMzNjLjQtMy43LTEtNy4zLTMuOC05LjhMNzUgMTM4LjFWMTMzaDg3LjNsNjcuNCAxNDhMMjg5IDEzMy4xaDgzLjJ2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVkcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU0NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEzLjcgMjU2YzAgMTIxLjggODMuOSAyMjIuOCAxOTMuNSAyNDEuMS0xOC43IDQuNS0zOC4yIDYuOS01OC4yIDYuOUMxMTEuNCA1MDQgMCAzOTMgMCAyNTZTMTExLjQgOCAyNDguOSA4YzIwLjEgMCAzOS42IDIuNCA1OC4yIDYuOUMxOTcuNSAzMy4yIDExMy43IDEzNC4yIDExMy43IDI1Nm0yOTcuNCAxMDAuM2MtNzcuNyA1NS40LTE3OS42IDQ3LjUtMjQwLjQtMTQuNiA1LjUgMTQuMSAxMi43IDI3LjcgMjEuNyA0MC41IDYxLjYgODguMiAxODIuNCAxMDkuMyAyNjkuNyA0NyA4Ny4zLTYyLjMgMTA4LjEtMTg0LjMgNDYuNS0yNzIuNi05LTEyLjktMTkuMy0yNC4zLTMwLjUtMzQuMiAzNy40IDc4LjggMTAuNyAxNzguNS02NyAyMzMuOW0tMjE4LjgtMjQ0Yy0xLjQgMS0yLjcgMi4xLTQgMy4xIDY0LjMtMTcuOCAxMzUuOSA0IDE3OC45IDYwLjUgMzUuNyA0NyA0Mi45IDEwNi42IDI0LjQgMTU4IDU2LjctNTYuMiA2Ny42LTE0Mi4xIDIyLjMtMjAxLjgtNTAtNjUuNS0xNDkuMS03NC40LTIyMS42LTE5LjhNMjk2IDIyNGMtNC40IDAtOC0zLjYtOC04di00MGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDBjMCA0LjQtMy42IDgtOCA4aC00MGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGg0MGM0LjQgMCA4IDMuNiA4IDh2NDBjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNDBjMC00LjQgMy42LTggOC04aDQwYzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04aC00MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVldHVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk5IDQxNC4zYzEuMSA1LjctMi4zIDExLjEtOCAxMi4zLTUuNCAxLjEtMTAuOS0yLjMtMTItOC0xLjEtNS40IDIuMy0xMS4xIDcuNy0xMi4zIDUuNC0xLjIgMTEuMSAyLjMgMTIuMyA4em0xNDMuMSA3MS40Yy02LjMgNC42LTggMTMuNC0zLjcgMjAgNC42IDYuNiAxMy40IDguMyAyMCAzLjcgNi4zLTQuNiA4LTEzLjQgMy40LTIwLTQuMi02LjUtMTMuMS04LjMtMTkuNy0zLjd6bS04Ni00NjIuM2M2LjMtMS40IDEwLjMtNy43IDguOS0xNC0xLjEtNi42LTcuNC0xMC42LTEzLjctOS4xLTYuMyAxLjQtMTAuMyA3LjctOS4xIDE0IDEuNCA2LjYgNy42IDEwLjYgMTMuOSA5LjF6TTM0LjQgMjI2LjNjLTEwLTYuOS0yMy43LTQuMy0zMC42IDYtNi45IDEwLTQuMyAyNCA1LjcgMzAuOSAxMCA3LjEgMjMuNyA0LjYgMzAuNi01LjcgNi45LTEwLjQgNC4zLTI0LjEtNS43LTMxLjJ6bTI3Mi0xNzAuOWMxMC42LTYuMyAxMy43LTIwIDcuNy0zMC4zLTYuMy0xMC42LTE5LjctMTQtMzAtNy43cy0xMy43IDIwLTcuNCAzMC42YzYgMTAuMyAxOS40IDEzLjcgMjkuNyA3LjR6bS0xOTEuMSA1OGM3LjctNS40IDkuNC0xNiA0LjMtMjMuN3MtMTUuNy05LjQtMjMuMS00LjNjLTcuNyA1LjQtOS40IDE2LTQuMyAyMy43IDUuMSA3LjggMTUuNiA5LjUgMjMuMSA0LjN6bTM3Mi4zIDE1NmMtNy40IDEuNy0xMi4zIDkuMS0xMC42IDE2LjkgMS40IDcuNCA4LjkgMTIuMyAxNi4zIDEwLjYgNy40LTEuNCAxMi4zLTguOSAxMC42LTE2LjYtMS41LTcuNC04LjktMTIuMy0xNi4zLTEwLjl6bTM5LjctNTYuOGMtMS4xLTUuNy02LjYtOS4xLTEyLTgtNS43IDEuMS05LjEgNi45LTggMTIuNiAxLjEgNS40IDYuNiA5LjEgMTIuMyA4IDUuNC0xLjUgOS4xLTYuOSA3LjctMTIuNnpNNDQ3IDEzOC45Yy04LjYgNi0xMC42IDE3LjctNC45IDI2LjMgNS43IDguNiAxNy40IDEwLjYgMjYgNC45IDguMy02IDEwLjMtMTcuNyA0LjYtMjYuMy01LjctOC43LTE3LjQtMTAuOS0yNS43LTQuOXptLTYuMyAxMzkuNGMyNi4zIDQzLjEgMTUuMSAxMDAtMjYuMyAxMjkuMS0xNy40IDEyLjMtMzcuMSAxNy43LTU2LjkgMTcuMS0xMiA0Ny4xLTY5LjQgNjQuNi0xMDUuMSAzMi42LTEuMS45LTIuNiAxLjctMy43IDIuOS0zOS4xIDI3LjEtOTIuMyAxNy40LTExOS40LTIyLjMtOS43LTE0LjMtMTQuNi0zMC42LTE1LjEtNDYuOS02NS40LTEwLjktOTAtOTQtNDEuMS0xMzkuNy0yOC4zLTQ2LjkuNi0xMDcuNCA1My40LTExNC45QzE1MS42IDcwIDIzNC4xIDM4LjYgMjkwLjEgODJjNjcuNC0yMi4zIDEzNi4zIDI5LjQgMTMwLjkgMTAxLjEgNDEuMSAxMi42IDUyLjggNjYuOSAxOS43IDk1LjJ6bS03MCA3NC4zYy0zLjEtMjAuNi00MC45LTQuNi00My4xLTI3LjEtMy4xLTMyIDQzLjctMTAxLjEgNDAtMTI4LTMuNC0yNC0xOS40LTI5LjEtMzMuNC0yOS40LTEzLjQtLjMtMTYuOSAyLTIxLjQgNC42LTIuOSAxLjctNi42IDQuOS0xMS43LS4zLTYuMy02LTExLjEtMTEuNy0xOS40LTEyLjktMTIuMy0yLTE3LjcgMi0yNi42IDkuNy0zLjQgMi45LTEyIDEyLjktMjAgOS4xLTMuNC0xLjctMTUuNC03LjctMjQtMTEuNC0xNi4zLTcuMS00MCA0LjYtNDguNiAyMC0xMi45IDIyLjktMzggMTEzLjEtNDEuNyAxMjUuMS04LjYgMjYuNiAxMC45IDQ4LjYgMzYuOSA0Ny4xIDExLjEtLjYgMTguMy00LjYgMjUuNC0xNy40IDQtNy40IDQxLjctMTA3LjcgNDQuNi0xMTIuNiAyLTMuNCA4LjktOCAxNC42LTUuMSA1LjcgMy4xIDYuOSA5LjQgNiAxNS4xLTEuMSA5LjctMjggNzAuOS0yOC45IDc3LjctMy40IDIyLjkgMjYuOSAyNi42IDM4LjYgNCAzLjctNy4xIDQ1LjctOTIuNiA0OS40LTk4LjMgNC4zLTYuMyA3LjQtOC4zIDExLjctOCAzLjEgMCA4LjMuOSA3LjEgMTAuOS0xLjQgOS40LTM1LjEgNzIuMy0zOC45IDg3LjctNC42IDIwLjYgNi42IDQxLjQgMjQuOSA1MC42IDExLjQgNS43IDYyLjUgMTUuNyA1OC41LTExLjF6bTUuNyA5Mi4zYy0xMC4zIDcuNC0xMi45IDIyLTUuNyAzMi42IDcuMSAxMC42IDIxLjQgMTMuMSAzMiA2IDEwLjYtNy40IDEzLjEtMjIgNi0zMi42LTcuNC0xMC42LTIxLjctMTMuNS0zMi4zLTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1lZ2Fwb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNC41IDIwOS42djY2LjJsMzMuNSAzMy41IDMzLjMtMzMuM3YtNjYuNGwtMzMuNC0zMy40ek0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0xNDUuMSA0MTQuNEwzNjcgNDQxLjZsLTI2LTE5LjJ2LTY1LjVsLTMzLjQtMzMuNC0zMy40IDMzLjR2NjUuNUwyNDggNDQxLjZsLTI2LjEtMTkuMnYtNjUuNWwtMzMuNC0zMy40LTMzLjUgMzMuNHY2NS41bC0yNi4xIDE5LjItMjYuMS0xOS4ydi04N2w1OS41LTU5LjVWMTg4bDU5LjUtNTkuNVY1Mi45bDI2LjEtMTkuMkwyNzQgNTIuOXY3NS42bDU5LjUgNTkuNXY4Ny42bDU5LjcgNTkuN3Y4Ny4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZW5kZWxleSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjQuNiAzMjUuMmMtMTIuMy0xMi40LTI5LjctMTkuMi00OC40LTE3LjItNDMuMy0xLTQ5LjctMzQuOS0zNy41LTk4LjggMjIuOC01Ny41LTE0LjktMTMxLjUtODcuNC0xMzAuOC03Ny40LjctODEuNyA4Mi0xMzAuOSA4Mi00OC4xIDAtNTQtODEuMy0xMzAuOS04Mi03Mi45LS44LTExMC4xIDczLjMtODcuNCAxMzAuOCAxMi4yIDYzLjkgNS44IDk3LjgtMzcuNSA5OC44LTIxLjItMi4zLTM3IDYuNS01MyAyMi41LTE5LjkgMTkuNy0xOS4zIDk0LjggNDIuNiAxMDIuNiA0Ny4xIDUuOSA4MS42LTQyLjkgNjEuMi04Ny44LTQ3LjMtMTAzLjcgMTg1LjktMTA2LjEgMTQ2LjUtOC4yLS4xLjEtLjIuMi0uMy40LTI2LjggNDIuOCA2LjggOTcuNCA1OC44IDk1LjIgNTIuMSAyLjEgODUuNC01Mi42IDU4LjgtOTUuMi0uMS0uMi0uMi0uMy0uMy0uNC0zOS40LTk3LjkgMTkzLjgtOTUuNSAxNDYuNSA4LjItNC42IDEwLTYuNyAyMS4zLTUuNyAzMyA0LjkgNTMuNCA2OC43IDc0LjEgMTA0LjkgMzUuMiAxNy44LTE0LjggMjMuMS02NS42IDAtODguM3ptLTMwMy45LTE5LjFoLS42Yy00My40IDAtNjIuOC0zNy41LTYyLjgtNjIuOCAwLTM0LjcgMjguMi02Mi44IDYyLjgtNjIuOGguNmMzNC43IDAgNjIuOCAyOC4xIDYyLjggNjIuOCAwIDI1LTE5LjIgNjIuOC02Mi44IDYyLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pY3JvYmxvZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTkuMzYsMzYyLjIzYzI5LjQ5LTM0LjY5LDQ3LjEtNzguMzQsNDcuMS0xMjUuNzlDNDQ2LjQ2LDEyMy40OSwzNDYuODYsMzIsMjI0LDMyUzEuNTQsMTIzLjQ5LDEuNTQsMjM2LjQ0LDEwMS4xNCw0NDAuODcsMjI0LDQ0MC44N2EyMzkuMjgsMjM5LjI4LDAsMCwwLDc5LjQ0LTEzLjQ0LDcuMTgsNy4xOCwwLDAsMSw4LjEyLDIuNTZjMTguNTgsMjUuMDksNDcuNjEsNDIuNzQsNzkuODksNDkuOTJhNC40Miw0LjQyLDAsMCwwLDUuMjItMy40Myw0LjM3LDQuMzcsMCwwLDAtLjg1LTMuNjIsODcsODcsMCwwLDEsMy42OS0xMTAuNjlaTTMyOS41MiwyMTIuNGwtNTcuMyw0My40OUwyOTMsMzI0Ljc1YTYuNSw2LjUsMCwwLDEtOS45NCw3LjIyTDIyNCwyOTAuOTIsMTY0Ljk0LDMzMmE2LjUxLDYuNTEsMCwwLDEtOS45NS03LjIybDIwLjc5LTY4Ljg2LTU3LjMtNDMuNDlhNi41LDYuNSwwLDAsMSwzLjgtMTEuNjhsNzEuODgtMS41MSwyMy42Ni02Ny45MmE2LjUsNi41LDAsMCwxLDEyLjI4LDBsMjMuNjYsNjcuOTIsNzEuODgsMS41MWE2LjUsNi41LDAsMCwxLDMuODgsMTEuNjhaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pY3Jvc29mdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMyaDIxNC42djIxNC42SDBWMzJ6bTIzMy40IDBINDQ4djIxNC42SDIzMy40VjMyek0wIDI2NS40aDIxNC42VjQ4MEgwVjI2NS40em0yMzMuNCAwSDQ0OFY0ODBIMjMzLjRWMjY1LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1peCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0djM0OC45YzAgNTYuMiA4OCA1OC4xIDg4IDBWMTc0LjNjNy45LTUyLjkgODgtNTAuNCA4OCA2LjV2MTc1LjNjMCA1Ny45IDk2IDU4IDk2IDBWMjQwYzUuMy01NC43IDg4LTUyLjUgODggNC4zdjIzLjhjMCA1OS45IDg4IDU2LjYgODggMFY2NEgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaXhjbG91ZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjQuNDMgMjE5LjcyOUM0MTYuMTI0IDEzNC43MjcgMzQ0LjEzNSA2OCAyNTYuOTE5IDY4Yy03Mi4yNjYgMC0xMzYuMjI0IDQ2LjUxNi0xNTkuMjA1IDExNC4wNzQtNTQuNTQ1IDguMDI5LTk2LjYzIDU0LjgyMi05Ni42MyAxMTEuNTgyIDAgNjIuMjk4IDUwLjY2OCAxMTIuOTY2IDExMy4yNDMgMTEyLjk2NmgyODkuNjE0YzUyLjMyOSAwIDk0Ljk2OS00Mi4zNjIgOTQuOTY5LTk0LjY5MyAwLTQ1LjEzMS0zMi4xMTgtODMuMDYzLTc0LjQ4LTkyLjJ6bS0yMC40ODkgMTQ0LjUzSDExNC4zMjdjLTM5LjA0IDAtNzAuODgxLTMxLjU2NC03MC44ODEtNzAuNjA0czMxLjg0MS03MC42MDQgNzAuODgxLTcwLjYwNGMxOC44MjcgMCAzNi41NDggNy40NzUgNDkuODM4IDIwLjc2NiAxOS45NjMgMTkuOTYzIDUwLjEzMy0xMC4yMjcgMzAuMTgtMzAuMTgtMTQuNjc1LTE0LjM5OC0zMi42NzItMjQuMzY1LTUyLjA1My0yOS4zNDkgMTkuOTM1LTQ0LjMgNjQuNzktNzMuOTI2IDExNC42MjgtNzMuOTI2IDY5LjQ5NiAwIDEyNS45NzkgNTYuNDgzIDEyNS45NzkgMTI1LjcwMiAwIDEzLjU2OC0yLjIxNSAyNi44NTctNi4zNjkgMzkuNTk0LTguOTQzIDI3LjUxNyAzMi4xMzMgMzguOTM5IDQwLjE0NyAxMy4yOSAyLjc2OS04LjMwNiA0Ljk4NC0xNi44ODkgNi4zNjktMjUuNDcyIDE5LjM4MSA3LjQ3NiAzMy41MDIgMjYuMzAzIDMzLjUwMiA0OC40NTMgMCAyOC43OTUtMjMuNTM1IDUyLjMzLTUyLjYwNyA1Mi4zM3ptMjM1LjA2OS01Mi4zM2MwIDQ0LjAyNC0xMi43MzcgODYuMzg2LTM3LjEwMiAxMjIuNjU3LTQuMTUzIDYuMDkyLTEwLjc5OCA5LjQxNC0xNy43MiA5LjQxNC0xNi4zMTcgMC0yNy4xMjctMTguODI2LTE3LjQ0My0zMi45NDkgMTkuMzgxLTI5LjM0OSAyOS45MDMtNjMuNjgyIDI5LjkwMy05OS4xMjJzLTEwLjUyMS02OS43NzMtMjkuOTAzLTk4Ljg0NWMtMTUuNjU1LTIyLjgzMSAxOS4zNjEtNDcuMjQgMzUuMTYzLTIzLjUzNCAyNC4zNjYgMzUuOTkzIDM3LjEwMiA3OC4zNTYgMzcuMTAyIDEyMi4zNzl6bS03MC44OCAwYzAgMzEuNTY1LTkuMTM3IDYyLjAyMS0yNi44NTcgODguMzI1LTQuMTUzIDYuMDkxLTEwLjc5OCA5LjEzNi0xNy43MiA5LjEzNi0xNy4yMDEgMC0yNy4wMjItMTguOTc5LTE3LjQ0My0zMi45NDggMTMuMDEzLTE5LjEwNCAxOS42NTgtNDEuMjU1IDE5LjY1OC02NC41MTMgMC0yMi45ODEtNi42NDUtNDUuNDA4LTE5LjY1OC02NC41MTItMTUuNzYxLTIyLjk4NiAxOS4wMDgtNDcuMDk1IDM1LjE2My0yMy41MzUgMTcuNzE5IDI2LjAyNiAyNi44NTcgNTYuNDgzIDI2Ljg1NyA4OC4wNDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1peGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExNC41Nyw3Ni4wN2E0NS43MSw0NS43MSwwLDAsMC02Ny41MS02LjQxYy0xNy41OCwxNi4xOC0xOSw0My41Mi00Ljc1LDYyLjc3bDkxLjc4LDEyM0w0MS43NiwzNzkuNThjLTE0LjIzLDE5LjI1LTEzLjExLDQ2LjU5LDQuNzQsNjIuNzdBNDUuNzEsNDUuNzEsMCwwLDAsMTE0LDQzNS45NEwyNDIuODksMjYyLjdhMTIuMTQsMTIuMTQsMCwwLDAsMC0xNC4yM1pNNDcwLjI0LDM3OS41OCwzNzcuOTEsMjU1LjQ1bDkxLjc4LTEyM2MxNC4yMi0xOS4yNSwxMi44My00Ni41OS00Ljc1LTYyLjc3YTQ1LjcxLDQ1LjcxLDAsMCwwLTY3LjUxLDYuNDFsLTEyOCwxNzIuMTJhMTIuMTQsMTIuMTQsMCwwLDAsMCwxNC4yM0wzOTgsNDM1Ljk0YTQ1LjcxLDQ1LjcxLDAsMCwwLDY3LjUxLDYuNDFDNDgzLjM1LDQyNi4xNyw0ODQuNDcsMzk4LjgzLDQ3MC4yNCwzNzkuNThaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1penVuaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOS4xIDAgMjU2YzAgMTM3IDExMSAyNDggMjQ4IDI0OHMyNDgtMTExIDI0OC0yNDhDNDk2IDExOS4xIDM4NSA4IDI0OCA4em0tODAgMzUxLjljLTMxLjQgMTAuNi01OC44IDI3LjMtODAgNDguMlYxMzZjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MHYyMjMuOXptMTIwLTkuOWMtMTIuOS0yLTI2LjItMy4xLTM5LjgtMy4xLTEzLjggMC0yNy4yIDEuMS00MC4yIDMuMVYxMzZjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MHYyMTR6bTEyMCA1Ny43Yy0yMS4yLTIwLjgtNDguNi0zNy40LTgwLTQ4VjEzNmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwdjI3MS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb2R4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1NiAyNDEuOGwzNi43IDIzLjdWNDgwbC0xMzMtODMuOEwzNTYgMjQxLjh6TTQ0MCA3NUgyMjYuM2wtMjMgMzcuOCAxNTMuNSA5Ni41TDQ0MCA3NXptLTg5IDE0Mi44TDU1LjIgMzJ2MjE0LjVsNDYgMjlMMzUxIDIxNy44ek05NyAyOTQuMkw4IDQzN2gyMTMuN2wxMjUtMjAwLjVMOTcgMjk0LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vbmVybyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIgMzg0aDEwOC40QzQxNyA0NTUuOSAzMzguMSA1MDQgMjQ4IDUwNFM3OSA0NTUuOSAzNS42IDM4NEgxNDRWMjU2LjJMMjQ4IDM2MWwxMDQtMTA1djEyOHpNODggMzM2VjEyOGwxNTkuNCAxNTkuNEw0MDggMTI4djIwOGg3NC44YzguNS0yNS4xIDEzLjItNTIgMTMuMi04MEM0OTYgMTE5IDM4NSA4IDI0OCA4UzAgMTE5IDAgMjU2YzAgMjggNC42IDU0LjkgMTMuMiA4MEg4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTmFwc3RlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTguMyAzNzMuNmMtMTQuMiAxMy42LTMxLjMgMjQuMS01MC40IDMwLjUtMTktNi40LTM2LjItMTYuOS01MC4zLTMwLjVoMTAwLjd6bTQ0LTE5OS42YzIwLTE2LjkgNDMuNi0yOS4yIDY5LjYtMzYuMlYyOTljMCAyMTkuNC0zMjggMjE3LjYtMzI4IC4zVjEzNy43YzI1LjkgNi45IDQ5LjYgMTkuNiA2OS41IDM2LjQgNTYuOC00MCAxMzIuNS0zOS45IDE4OC45LS4xem0tMjA4LjgtNTguNWM2NC40LTYwIDE2NC4zLTYwLjEgMjI4LjktLjItNy4xIDMuNS0xMy45IDcuMy0yMC42IDExLjUtNTguNy0zMC41LTEyOS4yLTMwLjQtMTg3LjkuMS02LjMtNC0xMy45LTguMi0yMC40LTExLjR6TTQzLjggOTMuMnY2OS4zYy01OC40IDM2LjUtNTguNCAxMjEuMS4xIDE1OC4zIDI2LjQgMjQ1LjEgMzgxLjcgMjQwLjMgNDA3LjYgMS41bC4zLTEuN2M1OC43LTM2LjMgNTguOS0xMjEuNy4yLTE1OC4yVjkzLjJjLTE3LjMuNS0zNCAzLTUwLjEgNy40LTgyLTkxLjUtMjI1LjUtOTEuNS0zMDcuNS4xLTE2LjMtNC40LTMzLjEtNy01MC42LTcuNXpNMjU5LjIgMzUyczM2LS4zIDYxLjMtMS41YzEwLjItLjUgMjEuMS00IDI1LjUtNi41IDI2LjMtMTUuMSAyNS40LTM5LjIgMjYuMi00Ny40LTc5LjUtLjYtOTkuOS0zLjktMTEzIDU1LjR6bS0xMzUuNS01NS4zYy44IDguMi0uMSAzMi4zIDI2LjIgNDcuNCA0LjQgMi41IDE1LjIgNiAyNS41IDYuNSAyNS4zIDEuMSA2MS4zIDEuNSA2MS4zIDEuNS0xMy4yLTU5LjQtMzMuNy01Ni4xLTExMy01NS40em0xNjkuMSAxMjMuNGMtMy4yLTUuMy02LjktNy4zLTYuOS03LjMtMjQuOCA3LjMtNTIuMiA2LjktNzUuOSAwIDAgMC0yLjkgMS41LTYuNCA2LjYtMi44IDQuMS0zLjcgOS42LTMuNyA5LjYgMjkuMSAxNy42IDY3LjEgMTcuNiA5Ni4yIDAtLjEtLjEtLjMtNC0zLjMtOC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOZW9zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNS40NCA1MTJoLTk1LjExTDIxMi4xMiAzNTcuNDZ2OTEuMUwxMjUuNjkgNTEySDI4VjI5LjgyTDY4LjQ3IDBoMTA4LjA1bDEyMy43NCAxNzYuMTNWNjMuNDVMMzg2LjY5IDBoOTcuNjl2NDYxLjV6TTM4Ljc3IDM1LjI3VjQ5Nmw3Mi01Mi44OFYxOTRsMjE1LjUgMzA3LjY0aDg0Ljc5bDUyLjM1LTM4LjE3aC03OC4yN0w2OSAxM3ptODIuNTQgNDY2LjYxbDgwLTU4Ljc4di0xMDFsLTc5Ljc2LTExNC40djIyMC45NEw0OSA1MDEuODloNzIuMzR6TTgwLjYzIDEwLjc3bDMxMC42IDQ0Mi41N2g4Mi4zN1YxMC43N2gtNzkuNzV2MzE3LjU2TDE3MC45MSAxMC43N3pNMzExIDE5MS42NWw3MiAxMDIuODFWMTUuOTNsLTcyIDUzdjEyMi43MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTmltYmxyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ni42IDI5OS4yOWMxNS41NyAwIDI3LjE1IDExLjQ2IDI3LjE1IDI3cy0xMS42MiAyNy0yNy4xNSAyN2MtMTUuNyAwLTI3LjE1LTExLjU3LTI3LjE1LTI3czExLjU1LTI3IDI3LjE1LTI3ek0xMTMgMzI2LjI1YzAtMTUuNjEgMTEuNjgtMjcgMjcuMTUtMjdzMjcuMTUgMTEuNDYgMjcuMTUgMjctMTEuNDcgMjctMjcuMTUgMjdjLTE1LjQ0IDAtMjcuMTUtMTEuMzEtMjcuMTUtMjdNMTkxLjc2IDE1OUMxNTcgMTU5IDg5LjQ1IDE3OC43NyA1OS4yNSAyMjdMMTQgMHYzMzUuNDhDMTQgNDMzLjEzIDkzLjYxIDUxMiAxOTEuNzYgNTEyczE3Ny43Ni03OC45NSAxNzcuNzYtMTc2LjUyUzI5MC4xMyAxNTkgMTkxLjc2IDE1OXptMCAzMDguMTJjLTczLjI3IDAtMTMyLjUxLTU4LjktMTMyLjUxLTEzMS41OXM1OS4yNC0xMzEuNTkgMTMyLjUxLTEzMS41OSAxMzIuNTEgNTguODYgMTMyLjUxIDEzMS41NFMyNjUgNDY3LjA3IDE5MS43NiA0NjcuMDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5vZGVKcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgNTA4Yy02LjcgMC0xMy41LTEuOC0xOS40LTUuMmwtNjEuNy0zNi41Yy05LjItNS4yLTQuNy03LTEuNy04IDEyLjMtNC4zIDE0LjgtNS4yIDI3LjktMTIuNyAxLjQtLjggMy4yLS41IDQuNi40bDQ3LjQgMjguMWMxLjcgMSA0LjEgMSA1LjcgMGwxODQuNy0xMDYuNmMxLjctMSAyLjgtMyAyLjgtNVYxNDkuM2MwLTIuMS0xLjEtNC0yLjktNS4xTDIyNi44IDM3LjdjLTEuNy0xLTQtMS01LjcgMEwzNi42IDE0NC4zYy0xLjggMS0yLjkgMy0yLjkgNS4xdjIxMy4xYzAgMiAxLjEgNCAyLjkgNC45bDUwLjYgMjkuMmMyNy41IDEzLjcgNDQuMy0yLjQgNDQuMy0xOC43VjE2Ny41YzAtMyAyLjQtNS4zIDUuNC01LjNoMjMuNGMyLjkgMCA1LjQgMi4zIDUuNCA1LjNWMzc4YzAgMzYuNi0yMCA1Ny42LTU0LjcgNTcuNi0xMC43IDAtMTkuMSAwLTQyLjUtMTEuNmwtNDguNC0yNy45QzguMSAzODkuMi43IDM3Ni4zLjcgMzYyLjRWMTQ5LjNjMC0xMy44IDcuNC0yNi44IDE5LjQtMzMuN0wyMDQuNiA5YzExLjctNi42IDI3LjItNi42IDM4LjggMGwxODQuNyAxMDYuN2MxMiA2LjkgMTkuNCAxOS44IDE5LjQgMzMuN3YyMTMuMWMwIDEzLjgtNy40IDI2LjctMTkuNCAzMy43TDI0My40IDUwMi44Yy01LjkgMy40LTEyLjYgNS4yLTE5LjQgNS4yem0xNDkuMS0yMTAuMWMwLTM5LjktMjctNTAuNS04My43LTU4LTU3LjQtNy42LTYzLjItMTEuNS02My4yLTI0LjkgMC0xMS4xIDQuOS0yNS45IDQ3LjQtMjUuOSAzNy45IDAgNTEuOSA4LjIgNTcuNyAzMy44LjUgMi40IDIuNyA0LjIgNS4yIDQuMmgyNGMxLjUgMCAyLjktLjYgMy45LTEuN3MxLjUtMi42IDEuNC00LjFjLTMuNy00NC4xLTMzLTY0LjYtOTIuMi02NC42LTUyLjcgMC04NC4xIDIyLjItODQuMSA1OS41IDAgNDAuNCAzMS4zIDUxLjYgODEuOCA1Ni42IDYwLjUgNS45IDY1LjIgMTQuOCA2NS4yIDI2LjcgMCAyMC42LTE2LjYgMjkuNC01NS41IDI5LjQtNDguOSAwLTU5LjYtMTIuMy02My4yLTM2LjYtLjQtMi42LTIuNi00LjUtNS4zLTQuNWgtMjMuOWMtMyAwLTUuMyAyLjQtNS4zIDUuMyAwIDMxLjEgMTYuOSA2OC4yIDk3LjggNjguMiA1OC40LS4xIDkyLTIzLjIgOTItNjMuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTm9kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTYuMyA0NTJjLTIuMSAwLTQuMi0uNi02LjEtMS42TDI5MSA0MzljLTIuOS0xLjYtMS41LTIuMi0uNS0yLjUgMy44LTEuMyA0LjYtMS42IDguNy00IC40LS4yIDEtLjEgMS40LjFsMTQuOCA4LjhjLjUuMyAxLjMuMyAxLjggMEwzNzUgNDA4Yy41LS4zLjktLjkuOS0xLjZ2LTY2LjdjMC0uNy0uMy0xLjMtLjktMS42bC01Ny44LTMzLjNjLS41LS4zLTEuMi0uMy0xLjggMGwtNTcuOCAzMy4zYy0uNi4zLS45IDEtLjkgMS42djY2LjdjMCAuNi40IDEuMi45IDEuNWwxNS44IDkuMWM4LjYgNC4zIDEzLjktLjggMTMuOS01Ljh2LTY1LjljMC0uOS43LTEuNyAxLjctMS43aDcuM2MuOSAwIDEuNy43IDEuNyAxLjd2NjUuOWMwIDExLjUtNi4yIDE4LTE3LjEgMTgtMy4zIDAtNiAwLTEzLjMtMy42bC0xNS4yLTguN2MtMy43LTIuMi02LjEtNi4yLTYuMS0xMC41di02Ni43YzAtNC4zIDIuMy04LjQgNi4xLTEwLjVsNTcuOC0zMy40YzMuNy0yLjEgOC41LTIuMSAxMi4xIDBsNTcuOCAzMy40YzMuNyAyLjIgNi4xIDYuMiA2LjEgMTAuNXY2Ni43YzAgNC4zLTIuMyA4LjQtNi4xIDEwLjVsLTU3LjggMzMuNGMtMS43IDEuMS0zLjggMS43LTYgMS43em00Ni43LTY1LjhjMC0xMi41LTguNC0xNS44LTI2LjItMTguMi0xOC0yLjQtMTkuOC0zLjYtMTkuOC03LjggMC0zLjUgMS41LTguMSAxNC44LTguMSAxMS45IDAgMTYuMyAyLjYgMTguMSAxMC42LjIuOC44IDEuMyAxLjYgMS4zaDcuNWMuNSAwIC45LS4yIDEuMi0uNS4zLS40LjUtLjguNC0xLjMtMS4yLTEzLjgtMTAuMy0yMC4yLTI4LjgtMjAuMi0xNi41IDAtMjYuMyA3LTI2LjMgMTguNiAwIDEyLjcgOS44IDE2LjEgMjUuNiAxNy43IDE4LjkgMS45IDIwLjQgNC42IDIwLjQgOC4zIDAgNi41LTUuMiA5LjItMTcuNCA5LjItMTUuMyAwLTE4LjctMy44LTE5LjgtMTEuNC0uMS0uOC0uOC0xLjQtMS43LTEuNGgtNy41Yy0uOSAwLTEuNy43LTEuNyAxLjcgMCA5LjcgNS4zIDIxLjMgMzAuNiAyMS4zIDE4LjUgMCAyOS03LjIgMjktMTkuOHptNTQuNS01MC4xYzAgNi4xLTUgMTEuMS0xMS4xIDExLjFzLTExLjEtNS0xMS4xLTExLjFjMC02LjMgNS4yLTExLjEgMTEuMS0xMS4xIDYtLjEgMTEuMSA0LjggMTEuMSAxMS4xem0tMS44IDBjMC01LjItNC4yLTkuMy05LjQtOS4zLTUuMSAwLTkuMyA0LjEtOS4zIDkuMyAwIDUuMiA0LjIgOS40IDkuMyA5LjQgNS4yLS4xIDkuNC00LjMgOS40LTkuNHptLTQuNSA2LjJoLTIuNmMtLjEtLjYtLjUtMy44LS41LTMuOS0uMi0uNy0uNC0xLjEtMS4zLTEuMWgtMi4ydjVoLTIuNHYtMTIuNWg0LjNjMS41IDAgNC40IDAgNC40IDMuMyAwIDIuMy0xLjUgMi44LTIuNCAzLjEgMS43LjEgMS44IDEuMiAyLjEgMi44LjEgMSAuMyAyLjcuNiAzLjN6bS0yLjgtOC44YzAtMS43LTEuMi0xLjctMS44LTEuN2gtMnYzLjVoMS45YzEuNiAwIDEuOS0xLjEgMS45LTEuOHpNMTM3LjMgMTkxYzAtMi43LTEuNC01LjEtMy43LTYuNGwtNjEuMy0zNS4zYy0xLS42LTIuMi0uOS0zLjQtMWgtLjZjLTEuMiAwLTIuMy40LTMuNCAxTDMuNyAxODQuNkMxLjQgMTg1LjkgMCAxODguNCAwIDE5MWwuMSA5NWMwIDEuMy43IDIuNSAxLjggMy4yIDEuMS43IDIuNS43IDMuNyAwTDQyIDI2OC4zYzIuMy0xLjQgMy43LTMuOCAzLjctNi40di00NC40YzAtMi42IDEuNC01LjEgMy43LTYuNGwxNS41LTguOWMxLjItLjcgMi40LTEgMy43LTEgMS4zIDAgMi42LjMgMy43IDFsMTUuNSA4LjljMi4zIDEuMyAzLjcgMy44IDMuNyA2LjR2NDQuNGMwIDIuNiAxLjQgNS4xIDMuNyA2LjRsMzYuNCAyMC45YzEuMS43IDIuNi43IDMuNyAwIDEuMS0uNiAxLjgtMS45IDEuOC0zLjJsLjItOTV6TTQ3Mi41IDg3LjN2MTc2LjRjMCAyLjYtMS40IDUuMS0zLjcgNi40bC02MS4zIDM1LjRjLTIuMyAxLjMtNS4xIDEuMy03LjQgMGwtNjEuMy0zNS40Yy0yLjMtMS4zLTMuNy0zLjgtMy43LTYuNHYtNzAuOGMwLTIuNiAxLjQtNS4xIDMuNy02LjRsNjEuMy0zNS40YzIuMy0xLjMgNS4xLTEuMyA3LjQgMGwxNS4zIDguOGMxLjcgMSAzLjktLjMgMy45LTIuMnYtOTRjMC0yLjggMy00LjYgNS41LTMuMmwzNi41IDIwLjRjMi4zIDEuMiAzLjggMy43IDMuOCA2LjR6bS00NiAxMjguOWMwLS43LS40LTEuMy0uOS0xLjZsLTIxLTEyLjJjLS42LS4zLTEuMy0uMy0xLjkgMGwtMjEgMTIuMmMtLjYuMy0uOS45LS45IDEuNnYyNC4zYzAgLjcuNCAxLjMuOSAxLjZsMjEgMTIuMWMuNi4zIDEuMy4zIDEuOCAwbDIxLTEyLjFjLjYtLjMuOS0uOS45LTEuNnYtMjQuM3ptMjA5LjgtLjdjMi4zLTEuMyAzLjctMy44IDMuNy02LjRWMTkyYzAtMi42LTEuNC01LjEtMy43LTYuNGwtNjAuOS0zNS40Yy0yLjMtMS4zLTUuMS0xLjMtNy40IDBsLTYxLjMgMzUuNGMtMi4zIDEuMy0zLjcgMy44LTMuNyA2LjR2NzAuOGMwIDIuNyAxLjQgNS4xIDMuNyA2LjRsNjAuOSAzNC43YzIuMiAxLjMgNSAxLjMgNy4zIDBsMzYuOC0yMC41YzIuNS0xLjQgMi41LTUgMC02LjRMNTUwIDI0MS42Yy0xLjItLjctMS45LTEuOS0xLjktMy4ydi0yMi4yYzAtMS4zLjctMi41IDEuOS0zLjJsMTkuMi0xMS4xYzEuMS0uNyAyLjYtLjcgMy43IDBsMTkuMiAxMS4xYzEuMS43IDEuOSAxLjkgMS45IDMuMnYxNy40YzAgMi44IDMuMSA0LjYgNS42IDMuMmwzNi43LTIxLjN6TTU1OSAyMTljLS40LjMtLjcuNy0uNyAxLjJ2MTMuNmMwIC41LjMgMSAuNyAxLjJsMTEuOCA2LjhjLjQuMyAxIC4zIDEuNCAwTDU4NCAyMzVjLjQtLjMuNy0uNy43LTEuMnYtMTMuNmMwLS41LS4zLTEtLjctMS4ybC0xMS44LTYuOGMtLjQtLjMtMS0uMy0xLjQgMEw1NTkgMjE5em0tMjU0LjIgNDMuNXYtNzAuNGMwLTIuNi0xLjYtNS4xLTMuOS02LjRsLTYxLjEtMzUuMmMtMi4xLTEuMi01LTEuNC03LjQgMGwtNjEuMSAzNS4yYy0yLjMgMS4zLTMuOSAzLjctMy45IDYuNHY3MC40YzAgMi44IDEuOSA1LjIgNCA2LjRsNjEuMiAzNS4yYzIuNCAxLjQgNS4yIDEuMyA3LjQgMGw2MS0zNS4yYzEuOC0xIDMuMS0yLjcgMy42LTQuNy4xLS41LjItMS4xLjItMS43em0tNzQuMy0xMjQuOWwtLjguNWgxLjFsLS4zLS41em03Ni4yIDEzMC4ybC0uNC0uN3YuOWwuNC0uMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTnBtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAyODhoLTMydi02NGgzMnY2NHptMjg4LTEyOHYxOTJIMjg4djMySDE2MHYtMzJIMFYxNjBoNTc2em0tNDE2IDMySDMydjEyOGg2NHYtOTZoMzJ2OTZoMzJWMTkyem0xNjAgMEgxOTJ2MTYwaDY0di0zMmg2NFYxOTJ6bTIyNCAwSDM1MnYxMjhoNjR2LTk2aDMydjk2aDMydi05NmgzMnY5NmgzMlYxOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5zOCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDQuMzI0LDI2OS4xNzJoMjYuMDY3VjI0Mi45OTRIMTA0LjMyNFptNTIuNDY2LTI2LjE3OC0uMDU1LTI2LjE3OHYtLjk0MWEzOS4zMjUsMzkuMzI1LDAsMCwwLTc4LjY0NC45NDF2LjE2NmgyNi40di0uMTY2YTEyLjk4LDEyLjk4LDAsMCwxLDI1Ljk1NiwwdjI2LjE3OFptNTIuMzU2LDI1Ljg0NmE5MS4xLDkxLjEsMCwwLDEtOTEuMSw5MS4xaC0uNjA5YTkxLjEsOTEuMSwwLDAsMS05MS4xLTkxLjFIMHYuMTY2QTExNy4zMywxMTcuMzMsMCwwLDAsMTE3LjQ0LDM4Ni4yOGguNzc1QTExNy4zMzEsMTE3LjMzMSwwLDAsMCwyMzUuNDksMjY4Ljg0VjI0Mi44MjhIMjA5LjE0NlptLTE1Ny4yMzMsMGE2NS4zNjIsNjUuMzYyLDAsMCwwLDEzMC43MjMsMEgxNTYuMjkyYTM5LjAyMywzOS4wMjMsMCwwLDEtNzguMDM1LDBWMjQyLjg4M0g1MS45Njh2LTI2LjYyQTY1LjQyLDY1LjQyLDAsMCwxLDE4Mi44LDIxNy40OHYyNS4yOTNoMjYuMzQ0VjIxNy40OGE5MS43NjEsOTEuNzYxLDAsMCwwLTE4My41MjIsMHYyNS40SDUxLjkxM1ptNDE4LjQtNzEuMTczYzEzLjY3LDAsMjQuNTczLDYuNjQyLDMwLjA1MiwxOC4yNjRsLjcxOSwxLjU0OSwyMy4yNDUtMTEuNTExLS42MDktMS40MzljLTguMDI1LTE5LjI2LTI4LjUtMzEuMjctNTMuNDA3LTMxLjI3LTIzLjEzNCwwLTQzLjYxMSwxMS40LTUwLjk3MiwyOC40NDctLjEyMywyNi44NzYtLjE1OCwyMy45LDAsMjQuODUsNC43LDExLjAxMywxNC41NTUsMTkuMzcsMjguNjY4LDI0LjI0MWExMDIuMDMzLDEwMi4wMzMsMCwwLDAsMTkuODEzLDMuOTg0YzUuNDc5LjcyLDEwLjYyNiwxLjM4NCwxNS44MjksMy4xLDYuMzY0LDIuMSwxMC40Niw1LjI1NywxMi44NCw5Ljg1MXY5Ljg1MWMtMy43MDgsNy41MjctMTMuNzgxLDEyLjM0Mi0yNS43OTEsMTIuMzQyLTE0LjMzNCwwLTI1Ljk1Ni02LjkxOC0zMS45MzMtMTkuMDM5bC0uNzItMS40OTRMNDE1LjAyNiwyODAuOWwuNTUzLDEuNDM5YzcuOTE1LDE5LjQyNiwyOS42MDksMzIuMDQ0LDU1LjI4OSwzMi4wNDQsMjMuNjMyLDAsNDQuNjA4LTExLjQsNTIuMy0yOC40NDdsLjE2Ni0yNS45LS4xNjYtLjY2NGMtNC44Ny0xMS4wMTQtMTUuMjE5LTE5LjY0Ny0yOC45NDQtMjQuMjQxLTcuNjkzLTIuNzEyLTE0LjMzNS0zLjYtMjAuNy00LjQyN2E4My43NzcsODMuNzc3LDAsMCwxLTE0LjgzMi0yLjg3OGMtNi4zMS0xLjkzNy0xMC40LTUuMDkyLTEyLjYxOS05LjYzdi04LjQxMkM0NDkuNDUsMjAyLjQyNyw0NTguOTY5LDE5Ny42NjcsNDcwLjMxNSwxOTcuNjY3Wk0yODcuNTY4LDMxMS4zNDRoMjYuMDY3di02OC40SDI4Ny41NjhabTM1Mi4yNjYtNTMuM2MtMi45MzMtNi4yNTQtOC4zLTEyLjAxLTE1LjQ0MS0xNi43MTRBMzcuOTksMzcuOTksMCwwLDAsNjM3LjQsMjI2bC4xNjYtMjUuMzQ3LS4xNjYtLjY2NEM2MzAuMDM4LDE4NCw2MTAuNjY3LDE3My4yNiw1ODkuMjUsMTczLjI2UzU0OC40NjEsMTg0LDU0MS4xLDE5OS45OTJsLS4xNjYsMjUuMzQ3LjE2Ni42NjRhMzkuNjQzLDM5LjY0MywwLDAsMCwxMy4wMDYsMTUuMzMxYy03LjIsNC43LTEyLjUwOCwxMC40Ni0xNS40NDEsMTYuNzE0bC0uMTY2LDI4Ljg4OS4xNjYuNzJjNy41ODIsMTUuOTk0LDI3Ljg5MywyNi43MzEsNTAuNTg1LDI2LjczMXM0My4wNTctMTAuNzM3LDUwLjU4NC0yNi43MzFsLjE2Ni0yOC44OVptLTczLjIyLTUwLjgwNmMzLjYtNi4zMSwxMi41NjMtMTAuNTE2LDIyLjU4LTEwLjUxNnMxOS4wMzgsNC4yMDYsMjIuNjM2LDEwLjUxNnYxMy43MjVjLTMuNTQyLDYuMi0xMi41NjMsMTAuMzQ5LTIyLjYzNiwxMC4zNDlzLTE5LjA5NC00LjE1LTIyLjU4LTEwLjM0OVptNDcuMzE5LDcyLjE2OWMtMy43NjQsNi42NDEtMTMuMzM4LDEwLjktMjQuNjgzLDEwLjktMTEuMTI1LDAtMjAuOTc2LTQuMzcyLTI0LjY4NC0xMC45VjI2My4yNWMzLjcwOC02LjMwOSwxMy41LTEwLjUxNSwyNC42ODQtMTAuNTE1LDExLjM0NSwwLDIwLjkxOSw0LjE1LDI0LjY4MywxMC41MTVaTTM3Ni40LDI2NS45NjJsLTU5LjgyNy04OS43MTNoLTI5djQwLjYyM2gyNi41MXYuMzg3bDYyLjUzOSw5NC4wODVINDAyLjNWMTc2LjI0OUgzNzYuNFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTnV0cml0aW9uaXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQwMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODggOC4xUzIyMS40LS4xIDIwOSAxMTIuNWMwIDAgMTkuMS03NC45IDEwMy00MC42IDAgMC0xNy43IDc0LTg4IDU2IDAgMCAxNC42LTU0LjYgNjYuMS01Ni42IDAgMC0zOS45LTEwLjMtODIuMSA0OC44IDAgMC0xOS44LTk0LjUtOTMuNi05OS43IDAgMCA3NS4yIDE5LjQgNzcuNiAxMDcuNSAwIC4xLTEwNi40IDctMTA0LTExOS44em0zMTIgMzE1LjZjMCA0OC41LTkuNyA5NS4zLTMyIDEzMi4zLTQyLjIgMzAuOS0xMDUgNDgtMTY4IDQ4LTYyLjkgMC0xMjUuOC0xNy4xLTE2OC00OEM5LjcgNDE5IDAgMzcyLjIgMCAzMjMuNyAwIDI3NS4zIDE3LjcgMjI5IDQwIDE5MmM0Mi4yLTMwLjkgOTcuMS00OC42IDE2MC00OC42IDYzIDAgMTE3LjggMTcuNiAxNjAgNDguNiAyMi4zIDM3IDQwIDgzLjMgNDAgMTMxLjd6TTEyMCA0MjhjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4em0wLTY2LjJjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4em0wLTY2LjJjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4ek0xOTIgNDI4YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHptMC02Ni4yYzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHptMC02Ni4yYzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHpNMjY0IDQyOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6bTAtNjYuMmMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6bTAtNjYuMmMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6TTMzNiA0MjhjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4em0wLTY2LjJjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4em0wLTY2LjJjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4em0yNC0zOS42Yy00LjgtMjIuMy03LjQtMzYuOS0xNi01Ni0zOC44LTE5LjktOTAuNS0zMi0xNDQtMzJTOTQuOCAxODAuMSA1NiAyMDBjLTguOCAxOS41LTExLjIgMzMuOS0xNiA1NiA0Mi4yLTcuOSA5OC43LTE0LjggMTYwLTE0LjhzMTE3LjggNi45IDE2MCAxNC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPY3RvcHVzRGVwbG95IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1NS42LDM0OS4yYy00NS44OTEtMzkuMDktMzYuNjctNzcuODc3LTE2LjA5NS0xMjguMTFDNDc1LjE2LDEzNC4wNCw0MTUuOTY3LDM0LjE0LDMyOS45Myw4LjMsMjM3LjA0LTE5LjYsMTM0LjI1MiwyNC4zNDEsOTkuNjc3LDExNy4xNDdhMTgwLjg2MiwxODAuODYyLDAsMCwwLTEwLjk4OCw3My41NDRjMS43MzMsMjkuNTQzLDE0LjcxNyw1Mi45NywyNC4wOSw4MC4zLDE3LjIsNTAuMTYxLTI4LjEsOTIuNzQzLTY2LjY2MiwxMTcuNTgyLTQ2LjgwNiwzMC4yLTM2LjMxOSwzOS44NTctOC40MjgsNDEuODU4LDIzLjM3OCwxLjY4LDQ0LjQ3OC00LjU0OCw2NS4yNjUtMTUuMDQ1LDkuMi00LjY0Nyw0MC42ODctMTguOTMxLDQ1LjEzLTI4LjU4OEMxMzUuOSw0MTMuMzg4LDExMS4xMjIsNDU5LjUsMTI2LjYyMSw0ODguOWMxOS4xLDM2LjIyOSw2Ny4xMTItMzEuNzcsNzYuNzA5LTQ1LjgxMiw4LjU5MS0xMi41NzIsNDIuOTYzLTgxLjI3OSw2My42MjctNDYuOTI2LDE4Ljg2NSwzMS4zNjEsOC42LDc2LjM5MSwzNS43MzgsMTA0LjYyMiwzMi44NTQsMzQuMiw1MS4xNTUtMTguMzEyLDUxLjQxMi00NC4yMjEuMTYzLTE2LjQxMS02LjEtOTUuODUyLDI5LjktNTkuOTQ0QzQwNS40MjgsNDE4LDQzNi45MTIsNDY3LjgsNDcyLjU2OCw0NjMuNjQyYzM4LjczNi00LjUxNi0yMi4xMjMtNjcuOTY3LTI4LjI2Mi03OC42OTUsNS4zOTMsNC4yNzksNTMuNjY1LDM0LjEyOCw1My44MTgsOS41MkM0OTguMjM0LDM3NS42NzgsNDY4LjAzOSwzNTkuOCw0NTUuNiwzNDkuMlpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT2Rub2tsYXNzbmlraVNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODQuMiAxNzcuMWMwLTIyLjEgMTcuOS00MCAzOS44LTQwczM5LjggMTcuOSAzOS44IDQwYzAgMjItMTcuOSAzOS44LTM5LjggMzkuOHMtMzkuOC0xNy45LTM5LjgtMzkuOHpNNDQ4IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4em0tMzA1LjEgOTcuMWMwIDQ0LjYgMzYuNCA4MC45IDgxLjEgODAuOXM4MS4xLTM2LjIgODEuMS04MC45YzAtNDQuOC0zNi40LTgxLjEtODEuMS04MS4xcy04MS4xIDM2LjItODEuMSA4MS4xem0xNzQuNSA5MC43Yy00LjYtOS4xLTE3LjMtMTYuOC0zNC4xLTMuNiAwIDAtMjIuNyAxOC01OS4zIDE4cy01OS4zLTE4LTU5LjMtMThjLTE2LjgtMTMuMi0yOS41LTUuNS0zNC4xIDMuNi03LjkgMTYuMSAxLjEgMjMuNyAyMS40IDM3IDE3LjMgMTEuMSA0MS4yIDE1LjIgNTYuNiAxNi44bC0xMi45IDEyLjljLTE4LjIgMTgtMzUuNSAzNS41LTQ3LjcgNDcuNy0xNy42IDE3LjYgMTAuNyA0NS44IDI4LjQgMjguNmw0Ny43LTQ3LjljMTguMiAxOC4yIDM1LjcgMzUuNyA0Ny43IDQ3LjkgMTcuNiAxNy4yIDQ2LTEwLjcgMjguNi0yOC42bC00Ny43LTQ3LjctMTMtMTIuOWMxNS41LTEuNiAzOS4xLTUuOSA1Ni4yLTE2LjggMjAuNC0xMy4zIDI5LjMtMjEgMjEuNS0zN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT2Rub2tsYXNzbmlraSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzUuMSAzMzRjLTI3LjQgMTcuNC02NS4xIDI0LjMtOTAgMjYuOWwyMC45IDIwLjYgNzYuMyA3Ni4zYzI3LjkgMjguNi0xNy41IDczLjMtNDUuNyA0NS43LTE5LjEtMTkuNC00Ny4xLTQ3LjQtNzYuMy03Ni42TDg0IDUwMy40Yy0yOC4yIDI3LjUtNzMuNi0xNy42LTQ1LjQtNDUuNyAxOS40LTE5LjQgNDcuMS00Ny40IDc2LjMtNzYuM2wyMC42LTIwLjZjLTI0LjYtMi42LTYyLjktOS4xLTkwLjYtMjYuOS0zMi42LTIxLTQ2LjktMzMuMy0zNC4zLTU5IDcuNC0xNC42IDI3LjctMjYuOSA1NC42LTUuNyAwIDAgMzYuMyAyOC45IDk0LjkgMjguOXM5NC45LTI4LjkgOTQuOS0yOC45YzI2LjktMjEuMSA0Ny4xLTguOSA1NC42IDUuNyAxMi40IDI1LjctMS45IDM4LTM0LjUgNTkuMXpNMzAuMyAxMjkuN0MzMC4zIDU4IDg4LjYgMCAxNjAgMHMxMjkuNyA1OCAxMjkuNyAxMjkuN2MwIDcxLjQtNTguMyAxMjkuNC0xMjkuNyAxMjkuNHMtMTI5LjctNTgtMTI5LjctMTI5LjR6bTY2IDBjMCAzNS4xIDI4LjYgNjMuNyA2My43IDYzLjdzNjMuNy0yOC42IDYzLjctNjMuN2MwLTM1LjQtMjguNi02NC02My43LTY0cy02My43IDI4LjYtNjMuNyA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT2xkUmVwdWJsaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjM1Ljc2IDEwLjIzYzcuNS0uMzEgMTUtLjI4IDIyLjUtLjA5IDMuNjEuMTQgNy4yLjQgMTAuNzkuNzMgNC45Mi4yNyA5Ljc5IDEuMDMgMTQuNjcgMS42MiAyLjkzLjQzIDUuODMuOTggOC43NSAxLjQ2IDcuOSAxLjMzIDE1LjY3IDMuMjggMjMuMzkgNS40IDEyLjI0IDMuNDcgMjQuMTkgNy45MiAzNS43NiAxMy4yMSAyNi41NiAxMi4yNCA1MC45NCAyOS4yMSA3MS42MyA0OS44OCAyMC4wMyAyMC4wOSAzNi43MiA0My41NSA0OC44OSA2OS4xOSAxLjEzIDIuNTkgMi40NCA1LjEgMy40NyA3Ljc0IDIuODEgNi40MyA1LjM5IDEyLjk3IDcuNTggMTkuNjMgNC4xNCAxMi4zMyA3LjM0IDI0Ljk5IDkuNDIgMzcuODMuNTcgMy4xNCAxLjA0IDYuMyAxLjQgOS40Ny41NSAzLjgzLjk0IDcuNjkgMS4xOCAxMS41Ni44MyA4LjM0Ljg0IDE2LjczLjc3IDI1LjEtLjA3IDQuOTctLjI2IDkuOTQtLjc1IDE0Ljg5LS4yNCAzLjM4LS41MSA2Ljc2LS45OCAxMC4xMi0uMzkgMi43Mi0uNjMgNS40Ni0xLjExIDguMTctLjkgNS4xNS0xLjcgMTAuMzEtMi44NyAxNS40MS00LjEgMTguNS0xMC4zIDM2LjU1LTE4LjUxIDUzLjYzLTE1Ljc3IDMyLjgzLTM4LjgzIDYyLjE3LTY3LjEyIDg1LjEyYTI0Ni41MDMgMjQ2LjUwMyAwIDAgMS01Ni45MSAzNC44NmMtNi4yMSAyLjY4LTEyLjQ2IDUuMjUtMTguODcgNy40MS0zLjUxIDEuMTYtNy4wMSAyLjM4LTEwLjU3IDMuMzktNi42MiAxLjg4LTEzLjI5IDMuNjQtMjAuMDQgNS00LjY2LjkxLTkuMzQgMS43My0xNC4wMyAyLjQ4LTUuMjUuNjYtMTAuNSAxLjQ0LTE1Ljc5IDEuNzQtNi42OS42Ni0xMy40MS44NC0yMC4xMi44MS02LjgyLjAzLTEzLjY1LS4xMi0yMC40NS0uNzktMy4yOS0uMjMtNi41Ny0uNS05LjgzLS45NS0yLjcyLS4zOS01LjQ2LS42My04LjE3LTEuMTEtNC4xMi0uNzItOC4yNS0xLjM3LTEyLjM1LTIuMjItNC4yNS0uOTQtOC40OS0xLjg5LTEyLjY5LTMuMDItOC42My0yLjE3LTE3LjA4LTUuMDEtMjUuNDEtOC4xMy0xMC40OS00LjEyLTIwLjc5LTguNzUtMzAuNjQtMTQuMjUtMi4xNC0xLjE1LTQuMjgtMi4yOS02LjM1LTMuNTctMTEuMjItNi41OC0yMS44Ni0xNC4xLTMxLjkyLTIyLjM0LTM0LjY4LTI4LjQxLTYxLjQxLTY2LjQzLTc2LjM1LTEwOC43LTMuMDktOC43NC01LjcxLTE3LjY1LTcuOC0yNi42OC0xLjQ4LTYuMTYtMi41Mi0xMi40Mi0zLjU4LTE4LjY2LS40LTIuMzUtLjYxLTQuNzMtLjk1LTcuMDktLjYtMy45Ni0uNzUtNy45Ni0xLjE3LTExLjk0LS44LTkuNDctLjcxLTE4Ljk5LS41MS0yOC40OS4xNC0zLjUxLjM0LTcuMDEuNy0xMC41MS4zMS0zLjE3LjQ2LTYuMzcuOTItOS41Mi40MS0yLjgxLjY1LTUuNjUgMS4xNi04LjQ0LjctMy45NCAxLjMtNy45IDIuMTItMTEuODIgMy40My0xNi41MiA4LjQ3LTMyLjczIDE1LjI2LTQ4LjE4IDEuMTUtMi45MiAyLjU5LTUuNzIgMy44Ni04LjU5IDguMDUtMTYuNzEgMTcuOS0zMi41NiAyOS40OS00Ny4wNiAyMC0yNS4zOCA0NS4xLTQ2LjY4IDczLjI3LTYyLjQ3IDcuNS00LjE1IDE1LjE2LTguMDUgMjMuMDctMTEuMzcgMTUuODItNi44OCAzMi40MS0xMS45NSA0OS4zMS0xNS4zOCAzLjUxLS42NyA3LjA0LTEuMjQgMTAuNTYtMS44NSAyLjYyLS40NyA1LjI4LS43IDcuOTEtMS4wOCAzLjUzLS41MyA3LjEtLjY4IDEwLjY1LTEuMDQgMi40Ni0uMjQgNC45MS0uMzYgNy4zNi0uNTFtOC42NCAyNC40MWMtOS4yMy4xLTE4LjQzLjk5LTI3LjU3IDIuMjMtNy4zIDEuMDgtMTQuNTMgMi42LTIxLjcxIDQuMy0xMy45MSAzLjUtMjcuNDggOC4zNC00MC40NiAxNC40Mi0xMC40NiA0Ljk5LTIwLjU5IDEwLjctMzAuMTggMTcuMjItNC4xOCAyLjkyLTguNCA1LjgtMTIuMzQgOS4wMy01LjA4IDMuOTctOS45OCA4LjE3LTE0LjY4IDEyLjU5LTIuNTEgMi4yNC00LjgxIDQuNy03LjIyIDcuMDYtMjguMjIgMjguNzktNDguNDQgNjUuMzktNTcuNSAxMDQuNjktMi4wNCA4LjQ0LTMuNTQgMTcuMDItNC40NCAyNS42NS0xLjEgOC44OS0xLjQ0IDE3Ljg1LTEuNDEgMjYuOC4xMSA3LjE0LjM4IDE0LjI4IDEuMjIgMjEuMzcuNjIgNy4xMiAxLjg3IDE0LjE2IDMuMiAyMS4xOCAxLjA3IDQuNjUgMi4wMyA5LjMyIDMuMzMgMTMuOTEgNi4yOSAyMy4zOCAxNi41IDQ1LjcgMzAuMDcgNjUuNzUgOC42NCAxMi45OCAxOC43OCAyNC45MyAyOS45OCAzNS43NyAxNi4yOCAxNS44MiAzNS4wNSAyOS4wNCA1NS4zNCAzOS4yMiA3LjI4IDMuNTIgMTQuNjYgNi44NyAyMi4yNyA5LjYzIDUuMDQgMS43NiAxMC4wNiAzLjU3IDE1LjIyIDQuOTggMTEuMjYgMy4yMyAyMi43NyA1LjYgMzQuMzkgNy4wNiAyLjkxLjI5IDUuODEuNjEgOC43Mi45IDEzLjgyIDEuMDggMjcuNzQgMSA0MS41NC0uNDMgNC40NS0uNiA4LjkyLS45OSAxMy4zNS0xLjc4IDMuNjMtLjY3IDcuMjgtMS4yNSAxMC44Ny0yLjEgNC4xMy0uOTggOC4yOC0xLjkxIDEyLjM2LTMuMDcgMjYuNS03LjM0IDUxLjU4LTE5LjcxIDczLjU4LTM2LjIgMTUuNzgtMTEuODIgMjkuOTYtMjUuNzYgNDIuMTItNDEuMjggMy4yNi00LjAyIDYuMTctOC4zMSA5LjEzLTEyLjU1IDMuMzktNS4wNiA2LjU4LTEwLjI1IDkuNi0xNS41NCAyLjQtNC40NCA0Ljc0LTguOTEgNi45NS0xMy40NSA1LjY5LTEyLjA1IDEwLjI4LTI0LjYyIDEzLjc1LTM3LjQ5IDIuNTktMTAuMDEgNC43NS0yMC4xNiA1LjktMzAuNDUgMS43Ny0xMy40NyAxLjk0LTI3LjEgMS4yOS00MC42NS0uMjktMy44OS0uNjctNy43Ny0xLTExLjY2LTIuMjMtMTkuMDgtNi43OS0zNy45MS0xMy44Mi01NS44LTUuOTUtMTUuMTMtMTMuNTMtMjkuNjMtMjIuNjEtNDMuMTMtMTIuNjktMTguOC0yOC4yNC0zNS42OC00NS45Ny00OS44My0yNS4wNS0yMC01NC40Ny0zNC41NS04NS42NS00Mi4wOC03Ljc4LTEuOTMtMTUuNjktMy4zNC0yMy42My00LjQ1LTMuOTEtLjU5LTcuODUtLjgyLTExLjc3LTEuMjQtNy4zOS0uNTctMTQuODEtLjcyLTIyLjIyLS41OHpNMTM5LjI2IDgzLjUzYzEzLjMtOC44OSAyOC4wOC0xNS4zOCA0My4zLTIwLjE4LTMuMTcgMS43Ny02LjQ0IDMuMzgtOS41MyA1LjI5LTExLjIxIDYuNjgtMjEuNTIgMTQuOS0zMC4zOCAyNC40OS02LjggNy40My0xMi43NiAxNS43My0xNy4wMSAyNC44OS0zLjI5IDYuODYtNS42NCAxNC4xOS02Ljg2IDIxLjcxLS45MyA0Ljg1LTEuMyA5LjgxLTEuMTcgMTQuNzUuMTMgMTMuNjYgNC40NCAyNy4wOCAxMS4yOSAzOC44MiA1LjkyIDEwLjIyIDEzLjYzIDE5LjMzIDIyLjM2IDI3LjI2IDQuODUgNC4zNiAxMC4yNCA4LjA5IDE0Ljk1IDEyLjYgMi4yNiAyLjE5IDQuNDkgNC40MiA2LjQzIDYuOTEgMi42MiAzLjMxIDQuODkgNi45OSA1Ljk5IDExLjEuOSAzLjAyLjY2IDYuMi42OSA5LjMxLjAyIDQuMS0uMDQgOC4yLjAzIDEyLjMuMTQgMy41NC0uMDIgNy4wOS4xMSAxMC42My4wOCAyLjM4LjAyIDQuNzYuMDUgNy4xNC4xNiA1Ljc3LjA2IDExLjUzLjE1IDE3LjMuMTEgMi45MS4wMiA1LjgyLjEzIDguNzQuMDMgMS42My4xMyAzLjI4LS4wMyA0LjkxLS45MS4xMi0xLjgyLjE4LTIuNzMuMTYtMTAuOTkgMC0yMS44OC0yLjYzLTMxLjk1LTYuOTMtNi0yLjctMTEuODEtNS44OS0xNy4wOS05LjgzLTUuNzUtNC4xOS0xMS4wOS04Ljk2LTE1Ljc5LTE0LjMxLTYuNTMtNy4yNC0xMS45OC0xNS4zOS0xNi42Mi0yMy45NS0xLjA3LTIuMDMtMi4yNC00LjAyLTMuMTgtNi4xMi0xLjE2LTIuNjQtMi42Mi01LjE0LTMuNjctNy44Mi00LjA1LTkuNjgtNi41Ny0xOS45NC04LjA4LTMwLjMxLS40OS00LjQ0LTEuMDktOC44OC0xLjItMTMuMzUtLjctMTUuNzMuODQtMzEuNTUgNC42Ny00Ni44MiAyLjEyLTguMTUgNC43Ny0xNi4xOCA4LjMxLTIzLjgzIDYuMzItMTQuMiAxNS4zNC0yNy4xOCAyNi4zLTM4LjE5IDYuMjgtNi4yIDEzLjEzLTExLjg0IDIwLjUzLTE2LjY3em0xNzUuMzctMjAuMTJjMi43NC43NCA1LjQxIDEuNzQgOC4wOSAyLjY4IDYuMzYgMi4zMyAxMi42OCA0Ljg0IDE4LjcxIDcuOTYgMTMuMTEgNi40NCAyNS4zMSAxNC44MSAzNS44MiAyNC45NyAxMC4yIDkuOTUgMTguNzQgMjEuNiAyNS4xNCAzNC4zNCAxLjI4IDIuNzUgMi42NCA1LjQ2IDMuODEgOC4yNiA2LjMxIDE1LjEgMTAgMzEuMjYgMTEuMjMgNDcuNTcuNDEgNC41NC40NCA5LjA5LjQ1IDEzLjY0LjA3IDExLjY0LTEuNDkgMjMuMjUtNC4zIDM0LjUzLTEuOTcgNy4yNy00LjM1IDE0LjQ5LTcuODYgMjEuMTgtMy4xOCA2LjY0LTYuNjggMTMuMTYtMTAuODQgMTkuMjQtNi45NCAxMC40Ny0xNS42IDE5Ljg3LTI1LjgyIDI3LjIyLTEwLjQ4IDcuNjQtMjIuNjQgMTMuMDItMzUuNCAxNS4zOC0zLjUxLjY5LTcuMDggMS4wOC0xMC42NiAxLjIxLTEuODUuMDYtMy43Mi4xNi01LjU2LS4xLS4yOC0yLjE1IDAtNC4zMS0uMDEtNi40Ni0uMDMtMy43My4xNC03LjQ1LjEtMTEuMTcuMTktNy4wMi4wMi0xNC4wNS4yMS0yMS4wNy4wMy0yLjM4LS4wMy00Ljc2LjAzLTcuMTQuMTctNS4wNy0uMDQtMTAuMTQuMTQtMTUuMjEuMS0yLjk5LS4yNC02LjA0LjUxLTguOTYuNjYtMi41IDEuNzgtNC44NiAzLjA5LTcuMDggNC40Ni03LjMxIDExLjA2LTEyLjk2IDE3LjY4LTE4LjI2IDUuMzgtNC4xOCAxMC40Ny04Ljc3IDE1LjAyLTEzLjg0IDcuNjgtOC4zNyAxNC4xNy0xNy44OCAxOC43OC0yOC4yNyAyLjUtNS45MyA0LjUyLTEyLjEgNS41NS0xOC40Ni44Ni00LjM3IDEuMDYtOC44MyAxLjAxLTEzLjI3LS4wMi03Ljg1LTEuNC0xNS42NS0zLjY0LTIzLjE3LTEuNzUtNS43My00LjI3LTExLjE4LTcuMDktMTYuNDUtMy44Ny02LjkzLTguNjUtMTMuMzEtMTMuOTYtMTkuMi05Ljk0LTEwLjg1LTIxLjc1LTE5Ljk0LTM0LjYtMjcuMS0xLjg1LTEuMDItMy44NC0xLjgyLTUuNjMtMi45N3ptLTEwMC44IDU4LjQ1Yy45OC0xLjE4IDEuOTktMi4zMyAzLjEyLTMuMzgtLjYxLjkzLTEuMjcgMS44MS0xLjk1IDIuNjgtMy4xIDMuODgtNS41NCA4LjMxLTcuMDMgMTMuMDYtLjg3IDMuMjctMS42OCA2LjYtMS43MyAxMC0uMDcgMi41Mi0uMDggNS4wNy4zMiA3LjU3IDEuMTMgNy42MyA0LjMzIDE0Ljg1IDguNzcgMjEuMTIgMiAyLjcgNC4yNSA1LjI3IDYuOTIgNy4zMyAxLjYyIDEuMjcgMy41MyAyLjA5IDUuMzQgMy4wNSAzLjExIDEuNjggNi4zMiAzLjIzIDkuMDcgNS40OCAyLjY3IDIuMDkgNC41NSA1LjMzIDQuNCA4Ljc5LS4wMSA3My42NyAwIDE0Ny4zNC0uMDEgMjIxLjAyIDAgMS4zNS0uMDggMi43LjA0IDQuMDQuMTMgMS40OC44MiAyLjgzIDEuNDcgNC4xNS44NiAxLjY2IDEuNzggMy4zNCAzLjE4IDQuNjIuODUuNzcgMS45NyAxLjQgMy4xNSAxLjI0IDEuNS0uMiAyLjY2LTEuMzUgMy40NS0yLjU3Ljk2LTEuNTEgMS42OC0zLjE2IDIuMjgtNC44NS43Ni0yLjEzLjQ0LTQuNDIuNTQtNi42My4xNC00LjAzLS4wMi04LjA2LjE0LTEyLjA5LjAzLTUuODkuMDMtMTEuNzcuMDYtMTcuNjYuMTQtMy42Mi4wMy03LjI0LjExLTEwLjg2LjE1LTQuMDMtLjAyLTguMDYuMTQtMTIuMDkuMDMtNS45OS4wMy0xMS45OC4wNy0xNy45Ny4xNC0zLjYyLjAyLTcuMjQuMTEtMTAuODYuMTQtMy45My0uMDItNy44Ni4xNC0xMS43OC4wMy01Ljk5LjAzLTExLjk4LjA2LTE3Ljk3LjE2LTMuOTQtLjAxLTcuODguMTktMTEuODIuMjkgMS40NC4xMyAyLjkyLjIyIDQuMzguMTkgMy42MS40MiA3LjIzLjc2IDEwLjg0LjMyIDMuNDQuNDQgNi44OS44NiAxMC4zMi4zNyAzLjEuNTEgNi4yMi45NSA5LjMxLjU3IDQuMDkuODcgOC4yMSAxLjU0IDEyLjI5IDEuNDYgOS4wNCAyLjgzIDE4LjExIDUuMDkgMjYuOTkgMS4xMyA0LjgyIDIuNCA5LjYxIDQgMTQuMyAyLjU0IDcuOSA1LjcyIDE1LjY3IDEwLjMxIDIyLjYyIDEuNzMgMi42NCAzLjg3IDQuOTggNi4xIDcuMjEuMjcuMjUuNTUuNTEuODguNzEuNi4yNSAxLjMxLS4wNyAxLjctLjU3LjcxLS44OCAxLjE3LTEuOTQgMS43LTIuOTMgNC4wNS03LjggOC4xOC0xNS41NiAxMi4zNC0yMy4zMS43LTEuMzEgMS40NC0yLjYyIDIuNTYtMy42MSAxLjc1LTEuNTcgMy44NC0yLjY5IDUuOTgtMy42MyAyLjg4LTEuMjIgNS45LTIuMTkgOS4wMy0yLjQyIDYuNTgtLjYyIDEzLjExLjc1IDE5LjU2IDEuODUgMy42OS41OCA3LjQgMS4xNyAxMS4xMyAxLjQxIDMuNzQuMSA3LjQ4LjA1IDExLjIxLS4yOCA4LjU1LS45MiAxNi45OS0yLjk2IDI0Ljk0LTYuMjUgNS4zLTIuMjQgMTAuNDYtNC44MyAxNS4zMS03LjkzIDExLjQ2LTcuMjEgMjEuNDYtMTYuNTcgMzAuMDQtMjcuMDEgMS4xNy0xLjQyIDIuMjUtMi45IDMuNDYtNC4yOC0xLjIgMy4yNC0yLjY3IDYuMzctNC4xNiA5LjQ4LTEuMjUgMi45LTIuODQgNS42MS00LjI3IDguNDItNS4xNiA5LjYzLTExLjAyIDE4LjkxLTE3Ljc1IDI3LjUyLTQuMDMgNS4yMS04LjUzIDEwLjA1LTEzLjMzIDE0LjU3LTYuNjQgNi4wNS0xNC4wNyAxMS4zNy0yMi40MyAxNC43Ni04LjIxIDMuMzctMTcuMzEgNC42My0yNi4wOSAzLjI5LTMuNTYtLjU4LTcuMDEtMS42OS0xMC40MS0yLjg4LTIuNzktLjk3LTUuMzktMi4zOC04LjAzLTMuNjktMy40My0xLjcxLTYuNjQtMy44MS05LjcxLTYuMDggMi43MSAzLjA2IDUuNjkgNS44NiA4LjcgOC42MSA0LjI3IDMuNzYgOC43NCA3LjMxIDEzLjYzIDEwLjIzIDMuOTggMi40NSA4LjI5IDQuNCAxMi44NCA1LjUxIDEuNDYuMzcgMi45Ni40NiA0LjQ1LjYtMS4yNSAxLjEtMi42MyAyLjA0LTMuOTkgMi45OC05LjYxIDYuNTQtMjAuMDEgMTEuODYtMzAuNjkgMTYuNDMtMjAuODYgOC43LTQzLjE3IDEzLjk3LTY1Ljc0IDE1LjM0LTQuNjYuMjQtOS4zMi4zNi0xMy45OC4zNi00Ljk4LS4xMS05Ljk3LS4xMy0xNC45Mi0uNjUtMTEuMi0uNzYtMjIuMjktMi43My0zMy4xNy01LjQzLTEwLjM1LTIuNzEtMjAuNTUtNi4xMi0zMC4zLTEwLjU1LTguNzEtMy44Ni0xNy4xMi04LjQyLTI0Ljk5LTEzLjc5LTEuODMtMS4zMS0zLjc0LTIuNTMtNS4zNy00LjA4IDYuNi0xLjE5IDEzLjAzLTMuMzkgMTguOTktNi40OCA1Ljc0LTIuODYgMTAuOTktNi42NiAxNS42My0xMS4wNyAyLjI0LTIuMTkgNC4yOS00LjU5IDYuMTktNy4wOS0zLjQzIDIuMTMtNi45MyA0LjE1LTEwLjYyIDUuNzgtNC40MSAyLjE2LTkuMDcgMy43Ny0xMy44MSA1LjAyLTUuNzMgMS41Mi0xMS43NCAxLjczLTE3LjYxIDEuMTQtOC4xMy0uOTUtMTUuODYtNC4yNy0yMi41MS04Ljk4LTQuMzItMi45NC04LjIyLTYuNDMtMTEuOTYtMTAuMDYtOS45My0xMC4xNi0xOC4yLTIxLjgxLTI1LjY2LTMzLjg2LTMuOTQtNi4yNy03LjUzLTEyLjc1LTExLjEyLTE5LjIyLTEuMDUtMi4wNC0yLjE1LTQuMDUtMy4xOC02LjEgMi44NSAyLjkyIDUuNTcgNS45NyA4LjQzIDguODggOC45OSA4Ljk3IDE4LjU2IDE3LjQ0IDI5LjE2IDI0LjQ4IDcuNTUgNC45IDE1LjY3IDkuMjMgMjQuNTYgMTEuMDMgMy4xMS43MyA2LjMyLjQ3IDkuNDcuODEgMi43Ny4yOCA1LjU2LjIgOC4zNC4zIDUuMDUuMDYgMTAuMTEuMDQgMTUuMTYtLjE2IDMuNjUtLjE2IDcuMjctLjY2IDEwLjg5LTEuMDkgMi4wNy0uMjUgNC4xMS0uNzEgNi4xNC0xLjIgMy44OC0uOTUgOC4xMS0uOTYgMTEuODMuNjEgNC43NiAxLjg1IDguNDQgNS42NCAxMS4zOCA5LjcxIDIuMTYgMy4wMiA0LjA2IDYuMjIgNS42NiA5LjU4IDEuMTYgMi40MyAyLjQ2IDQuNzkgMy41NSA3LjI2IDEgMi4yNCAyLjE1IDQuNDIgMy40MiA2LjUyLjY3IDEuMDIgMS40IDIuMTUgMi42MiAyLjU1IDEuMDYtLjc1IDEuNzEtMS45MSAyLjI4LTMuMDMgMi4xLTQuMTYgMy40Mi04LjY1IDQuODktMTMuMDUgMi4wMi02LjU5IDMuNzgtMTMuMjcgNS4xOS0yMC4wMiAyLjIxLTkuMjUgMy4yNS0xOC43MiA0LjU0LTI4LjEzLjU2LTMuOTguODMtNy45OSAxLjMxLTExLjk3Ljg3LTEwLjY0IDEuOS0yMS4yNyAyLjI0LTMxLjk0LjA4LTEuODYuMjQtMy43MS4yNS01LjU3LjAxLTQuMzUuMjUtOC42OS4yMi0xMy4wMy0uMDEtMi4zOC0uMDEtNC43NiAwLTcuMTMuMDUtNS4wNy0uMi0xMC4xNC0uMjItMTUuMjEtLjItNi42MS0uNzEtMTMuMi0xLjI5LTE5Ljc4LS43My01Ljg4LTEuNTUtMTEuNzgtMy4xMi0xNy41MS0yLjA1LTcuNzUtNS41OS0xNS4wMy05LjgtMjEuODItMy4xNi01LjA3LTYuNzktOS44OC0xMS4wOS0xNC4wMy0zLjg4LTMuODYtOC41OC03LjA4LTEzLjk0LTguNDUtMS41LS40MS0zLjA2LS40NS00LjU5LS42NC4wNy0yLjk5LjctNS45MyAxLjI2LTguODUgMS41OS03LjcxIDMuOC0xNS4zIDYuNzYtMjIuNiAxLjUyLTQuMDMgMy40MS03LjkgNS4zOS0xMS43MiAzLjQ1LTYuNTYgNy42Mi0xMi43OSAxMi40Ni0xOC40NnptMzEuMjcgMS43Yy4zNS0uMDYuNzEtLjEyIDEuMDctLjE5LjE5IDEuNzkuMDkgMy41OC4xIDUuMzd2MzguMTNjLS4wMSAxLjc0LjEzIDMuNDktLjE1IDUuMjItLjM2LS4wMy0uNzEtLjA1LTEuMDYtLjA1LS45NS0zLjc1LTEuNzItNy41NS0yLjYyLTExLjMxLS4zOC0xLjUzLS41OC0zLjA5LTEuMDctNC41OS0xLjctLjI0LTMuNDMtLjE3LTUuMTUtLjItNS4wNi0uMDEtMTAuMTMgMC0xNS4xOS0uMDEtMS42Ni0uMDEtMy4zMi4wOS00Ljk4LS4wMy0uMDMtLjM5LS4yNi0uOTEuMTYtMS4xOCAxLjI4LS42NSAyLjcyLS44OCA0LjA2LTEuMzUgMy40My0xLjE0IDYuODgtMi4xNiAxMC4zMS0zLjMxIDEuMzktLjQ4IDIuOS0uNzIgNC4xNi0xLjU0LjA0LS41Ni4wMi0xLjEzLS4wNS0xLjY4LTEuMjMtLjU1LTIuNTMtLjg3LTMuODEtMS4yOC0zLjEzLTEuMDMtNi4yOS0xLjk2LTkuNDEtMy4wMi0xLjc5LS42Mi0zLjY3LTEtNS40MS0xLjc5LS4wMy0uMzctLjA3LS43My0uMTEtMS4wOSA1LjA5LS4xOSAxMC4yLjA2IDE1LjMtLjEyIDMuMzYtLjEzIDYuNzMuMDggMTAuMDktLjA3LjEyLS4zOS4yNi0uNzcuMzctMS4xNiAxLjA4LTQuOTQgMi4zMy05LjgzIDMuMzktMTQuNzV6bTUuOTctLjJjLjM2LjA1LjcyLjEyIDEuMDguMi45OCAzLjg1IDEuNzMgNy43NiAyLjcxIDExLjYxLjM2IDEuNDIuNTYgMi44OCAxLjAzIDQuMjcgMi41My4xOCA1LjA3LS4wMSA3LjYxLjA1IDUuMTYuMTIgMTAuMzMuMTIgMTUuNDkuMDcuNzYtLjAxIDEuNTIuMDMgMi4yOC4wOC0uMDQuMzYtLjA3LjcyLS4xIDEuMDgtMS44Mi44My0zLjc4IDEuMjUtNS42NyAxLjg5LTMuNzMgMS4yMy03LjQ4IDIuMzktMTEuMjIgMy41Ny0uNTcuMTctMS4xMi40Mi0xLjY3LjY0LS4xNS41NS0uMTggMS4xMi0uMTIgMS42OS44Ny40OCAxLjgyLjgxIDIuNzcgMS4wOSA0Ljg4IDEuNTIgOS43MyAzLjE0IDE0LjYzIDQuNi4zOC4xMy43OC4yNyAxLjEzLjQ5LjQuMjcuMjMuNzkuMTUgMS4xOC0xLjY2LjEzLTMuMzEuMDMtNC45Ny4wNC01LjE3LjAxLTEwLjMzLS4wMS0xNS41LjAxLTEuNjEuMDMtMy4yMi0uMDItNC44Mi4yMS0uNTIgMS42Ny0uNzIgMy40Mi0xLjE3IDUuMTEtLjk0IDMuNTctMS41MiA3LjI0LTIuNTQgMTAuNzgtLjM2LjAxLS43MS4wMi0xLjA2LjA2LS4yOS0xLjczLS4xNS0zLjQ4LS4xNS01LjIydi0zOC4xM2MuMDItMS43OC0uMDgtMy41OC4xMS01LjM3ek02NS4wNSAxNjguMzNjMS4xMi0yLjE1IDIuMDgtNC40IDMuMzctNi40Ni0xLjgyIDcuNTYtMi45MSAxNS4yNy0zLjYyIDIzLS44IDcuNzEtLjg1IDE1LjQ5LS41NCAyMy4yMyAxLjA1IDE5Ljk0IDUuNTQgMzkuODMgMTQuMjMgNTcuODggMi45OSA1Ljk5IDYuMzUgMTEuODMgMTAuNSAxNy4xMSA2LjEyIDcuNDcgMTIuNTMgMTQuNzYgMTkuODQgMjEuMDkgNC44IDQuMSA5Ljk5IDcuNzggMTUuNTQgMTAuOCAzLjI3IDEuNjUgNi41MSAzLjM5IDkuOTQgNC42OCA1LjAxIDIuMDMgMTAuMTkgMy42MSAxNS40MiA0Ljk0IDMuODMuOTYgNy43OCAxLjQxIDExLjUyIDIuNzEgNSAxLjU3IDkuNDcgNC42MSAxMy4wMyA4LjQzIDQuOTMgNS4yMyA4LjA5IDExLjg3IDEwLjIgMTguNjcuOTkgMi45IDEuNTkgNS45MSAyLjE3IDguOTIuMTUuNzUuMjIgMS41Mi4xNiAyLjI5LTYuNSAyLjc4LTEzLjI2IDUuMDYtMjAuMjYgNi4xOC00LjExLjc4LTguMjkuOTktMTIuNDYgMS4wOC0xMC4yNS4yNC0yMC40Ny0xLjc2LTMwLjEyLTUuMTItMy43NC0xLjQyLTcuNDktMi44NS0xMS4wMy00LjcyLTguMDYtMy44NC0xNS42NC04LjctMjIuNDYtMTQuNDYtMi45Mi0yLjU1LTUuODMtNS4xMy04LjQtOC4wMy05LjE2LTkuODMtMTYuMy0yMS40MS0yMS43OS0zMy42NS0yLjM5LTUuNTUtNC42MS0xMS4xOC02LjM3LTE2Ljk2LTEuMTctMy45NC0yLjM2LTcuODktMy4yNi0xMS45MS0uNzUtMi45NC0xLjIyLTUuOTUtMS44Ny04LjkyLS40Ni0yLjE0LS42OS00LjMyLTEuMDMtNi40OC0uODUtNS40My0xLjI4LTEwLjkzLTEuMzMtMTYuNDMuMTEtNi4xOC4yNS0xMi4zNyAxLjA3LTE4LjUuNC0yLjg2LjY3LTUuNzQgMS4xNS04LjYuOTgtNS43IDIuMTQtMTEuMzcgMy43MS0xNi45MyAzLjA5LTExLjY1IDcuNDgtMjIuOTUgMTIuNjktMzMuODR6bTM2My43My02LjQ0YzEuMSAxLjY2IDEuOTEgMy40OCAyLjc4IDUuMjYgMi4xIDQuNDUgNC4yNCA4LjkgNi4wMiAxMy40OSA3LjYxIDE4Ljc2IDEyLjMgMzguNzkgMTMuMDQgNTkuMDUuMDIgMS43Ni4wNyAzLjUyLjExIDUuMjkuMTMgOS41Ny0xLjI3IDE5LjA5LTMuMTggMjguNDUtLjczIDMuNTktMS41NCA3LjE3LTIuNTggMTAuNjktNC4wNCAxNC43Mi0xMCAyOS0xOC40MSA0MS43OC04LjIxIDEyLjU3LTE5LjAxIDIzLjU1LTMxLjg0IDMxLjQxLTUuNzMgMy41OS0xMS43OSA2LjY0LTE4LjA1IDkuMTktNS43OCAyLjE5LTExLjcxIDQuMDMtMTcuOCA1LjExLTYuNCAxLjA1LTEyLjkxIDEuNTItMTkuNCAxLjIzLTcuOTItLjQ4LTE1Ljc4LTIuMDctMjMuMjEtNC44NS0xLjk0LS44LTMuOTQtMS40Ni01Ljg0LTIuMzMtLjIxLTEuNTEuMjUtMi45OS41My00LjQ2IDEuMTYtNS43NCAzLjAzLTExLjM2IDUuNy0xNi41OCAyLjM3LTQuNTEgNS41Mi04LjY1IDkuNDYtMTEuOSAyLjQzLTIuMDUgNS4yNC0zLjYxIDguMTYtNC44MyAzLjU4LTEuNSA3LjQ3LTEuOTcgMTEuMjQtMi44MyA3LjIzLTEuNzEgMTQuMzctMy45MyAyMS4xNS03IDEwLjM1LTQuNjUgMTkuNzEtMTEuMzggMjcuNjUtMTkuNDYgMS41OS0xLjYxIDMuMjMtMy4xOCA0Ljc0LTQuODcgMy4zNy0zLjc2IDYuNzEtNy41NyA5Ljg1LTExLjUzIDcuNDgtMTAuMDcgMTIuODItMjEuNTkgMTYuNzEtMzMuNDggMS41OC01LjMgMy4yMS0xMC42IDQuMjEtMTYuMDUuNjMtMi44NyAxLjA0LTUuNzggMS41Mi04LjY4Ljg3LTYuMDkgMS41OS0xMi4yMiAxLjY4LTE4LjM4LjEyLTYuNjUuMTQtMTMuMzItLjUzLTE5Ljk0LS43My03Ljk5LTEuODctMTUuOTYtMy43MS0yMy43OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT3BlbmNhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDIzLjMgNDQwLjdjMCAyNS4zLTIwLjMgNDUuNi00NS42IDQ1LjZzLTQ1LjgtMjAuMy00NS44LTQ1LjYgMjAuNi00NS44IDQ1LjgtNDUuOGMyNS40IDAgNDUuNiAyMC41IDQ1LjYgNDUuOHptLTI1My45LTQ1LjhjLTI1LjMgMC00NS42IDIwLjYtNDUuNiA0NS44czIwLjMgNDUuNiA0NS42IDQ1LjYgNDUuOC0yMC4zIDQ1LjgtNDUuNi0yMC41LTQ1LjgtNDUuOC00NS44em0yOTEuNy0yNzBDMTU4LjkgMTI0LjkgODEuOSAxMTIuMSAwIDI1LjdjMzQuNCA1MS43IDUzLjMgMTQ4LjkgMzczLjEgMTQ0LjIgMzMzLjMtNSAxMzAgODYuMSA3MC44IDE4OC45IDE4Ni43LTE2Ni43IDMxOS40LTIzMy45IDE3LjItMjMzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9wZW5pZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzEuNSA0MzJsLTY4IDMyQzg4LjUgNDUzLjcgMCAzOTIuNSAwIDMxOC4yYzAtNzEuNSA4Mi41LTEzMSAxOTEuNy0xNDQuM3Y0M2MtNzEuNSAxMi41LTEyNCA1My0xMjQgMTAxLjMgMCA1MSA1OC41IDkzLjMgMTM1LjcgMTAzdi0zNDBsNjgtMzMuMnYzODR6TTQ0OCAyOTFsLTEzMS4zLTI4LjUgMzYuOC0yMC43Yy0xOS41LTExLjUtNDMuNS0yMC03MC0yNC44di00M2M0Ni4yIDUuNSA4Ny43IDE5LjUgMTIwLjMgMzkuM2wzNS0xOS44TDQ0OCAyOTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9wZXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMy45IDMyLjdjLTE3MC4yIDAtMjUyLjYgMjIzLjgtMTQ3LjUgMzU1LjEgMzYuNSA0NS40IDg4LjYgNzUuNiAxNDcuNSA3NS42IDM2LjMgMCA3MC4zLTExLjEgOTkuNC0zMC40LTQzLjggMzkuMi0xMDEuOSA2My0xNjUuMyA2My0zLjkgMC04IDAtMTEuOS0uM0MxMDQuNiA0ODkuNiAwIDM4MS4xIDAgMjQ4IDAgMTExIDExMSAwIDI0OCAwaC44YzYzLjEuMyAxMjAuNyAyNC4xIDE2NC40IDYzLjEtMjktMTkuNC02My4xLTMwLjQtOTkuMy0zMC40em0xMDEuOCAzOTcuN2MtNDAuOSAyNC43LTkwLjcgMjMuNi0xMzItNS44IDU2LjItMjAuNSA5Ny43LTkxLjYgOTcuNy0xNzYuNiAwLTg0LjctNDEuMi0xNTUuOC05Ny40LTE3Ni42IDQxLjgtMjkuMiA5MS4yLTMwLjMgMTMyLjktNSAxMDUuOSA5OC43IDEwNS41IDI2NS43LTEuMiAzNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9wdGluTW9uc3RlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzIuNiA0MjEuNGM1LjYtOS41IDQuNy0xNS4yLTUuNC0xMS42LTMtNC45LTctOS41LTExLjEtMTMuOCAyLjktOS43LS43LTE0LjItMTAuOC05LjItNC42LTMuMi0xMC4zLTYuNS0xNS45LTkuMiAwLTE1LjEtMTEuNi0xMS42LTE3LjYtNS43LTEwLjQtMS41LTE4LjctLjMtMjYuOCA1LjcuMy02LjUuMy0xMyAuMy0xOS43IDEyLjYgMCA0MC4yLTExIDQ1LjktMzYuMiAxLjQtNi44IDEuNi0xMy44LS4zLTIxLjktMy0xMy41LTE0LjMtMjEuMy0yNS4xLTI1LjctLjgtNS45LTcuNi0xNC4zLTE0LjktMTUuOXMtMTIuNCA0LjktMTQuMSAxMC4zYy04LjUgMC0xOS4yIDIuOC0yMS4xIDguNC01LjQtLjUtMTEuMS0xLjQtMTYuOC0xLjkgMi43LTEuOSA1LjQtMy41IDguNC00LjYgNS40LTkuMiAxNC42LTExLjQgMjUuNy0xMS42VjI1NmMxOS41LS41IDQzLTUuOSA1My44LTE4LjEgMTIuNy0xMy44IDE0LjYtMzcuMyAxMi40LTU1LjEtMi40LTE3LjMtOS43LTM3LjYtMjQuNi00OC4xLTguNC01LjktMjEuNi0uOC0yMi43IDkuNS0yLjIgMTkuNiAxLjIgMzAtMzguNiAyNS4xLTEwLjMtMjMuOC0yNC42LTQ0LjYtNDIuNy02MEMzNDEgNDkuNiAyNDIuOSA1NS41IDE2Ni40IDcxLjdjMTkuNyA0LjYgNDEuMSA4LjYgNTkuNyAxNi41LTI2LjIgMi40LTUyLjcgMTEuMy03Ni4yIDIzLjItMzIuOCAxNy00NCAyOS45LTU2LjcgNDIuNCAxNC45LTIuMiAyOC45LTUuMSA0My44LTMuOC05LjcgNS40LTE4LjQgMTIuMi0yNi41IDIwLTI1LjguOS0yMy44LTUuMy0yNi4yLTI1LjktMS4xLTEwLjUtMTQuMy0xNS40LTIyLjctOS43LTI4LjEgMTkuOS0zMy41IDc5LjktMTIuMiAxMDMuNSAxMC44IDEyLjIgMzUuMSAxNy4zIDU0LjkgMTcuOC0uMyAxLjEtLjMgMS45LS4zIDIuNyAxMC44LjUgMTkuNSAyLjcgMjQuNiAxMS42IDMgMS4xIDUuNyAyLjcgOC4xIDQuNi01LjQuNS0xMS4xIDEuNC0xNi41IDEuOS0zLjMtNi42LTEzLjctOC4xLTIxLjEtOC4xLTEuNi01LjctNi41LTEyLjItMTQuMS0xMC4zLTYuOCAxLjktMTQuMSAxMC0xNC45IDE1LjktMjIuNSA5LjUtMzAuMSAyNi44LTI1LjEgNDcuNiA1LjMgMjQuOCAzMyAzNi4yIDQ1LjkgMzYuMnYxOS43Yy02LjYtNS0xNC4zLTcuNS0yNi44LTUuNy01LjUtNS41LTE3LjMtMTAuMS0xNy4zIDUuNy01LjkgMi43LTExLjQgNS45LTE1LjkgOS4yLTkuOC00LjktMTMuNi0xLjctMTEuMSA5LjItNC4xIDQuMy03LjggOC42LTExLjEgMTMuOC0xMC4yLTMuNy0xMSAyLjItNS40IDExLjYtMS4xIDMuNS0xLjYgNy0xLjkgMTAuOC0uNSAzMS42IDQ0LjYgNjQgNzMuNSA2NS4xIDE3LjMuNSAzNC42LTguNCA0My0yMy41IDExMy4yIDQuOSAyMjYuNyA0LjEgMzQwLjIgMCA4LjEgMTUuMSAyNS40IDI0LjMgNDIuNyAyMy41IDI5LjItMS4xIDc0LjMtMzMuNSA3My41LTY1LjEuMi0zLjctLjctNy4yLTEuNy0xMC43em0tNzMuOC0yNTRjMS4xLTMgMi40LTguNCAyLjQtMTQuNiAwLTUuOSA2LjgtOC4xIDE0LjEtLjggMTEuMSAxMS42IDE0LjkgNDAuNSAxMy44IDUxLjEtNC4xLTEzLjYtMTMtMjktMzAuMy0zNS43em0tNC42IDYuN2MxOS41IDYuMiAyOC42IDI3LjYgMjkuNyA0OC45LTEuMSAyLjctMyA1LjQtNC45IDcuNi01LjcgNS45LTE1LjQgMTAtMjYuMiAxMi4yIDQuMy0yMS4zLjMtNDcuMy0xMi43LTYzIDQuOS0uOCAxMC45LTIuNCAxNC4xLTUuN3ptLTI0LjEgNi44YzEzLjggMTEuOSAyMCAzOS4yIDE0LjEgNjMuNS00LjEuNS04LjEuOC0xMS42LjgtMS45LTIxLjktNi44LTQ0LTE0LjMtNjQuNiAzLjcuMyA4LjEuMyAxMS44LjN6TTQ3LjUgMjAzYy0xLjEtMTAuNSAyLjQtMzkuNSAxMy44LTUxLjEgNy03LjMgMTQuMS01LjEgMTQuMS44IDAgNi4yIDEuNCAxMS42IDIuNCAxNC42LTE3LjMgNi44LTI2LjIgMjIuMi0zMC4zIDM1Ljd6bTkuNyAyNy42Yy0xLjktMi4yLTMuNS00LjktNC45LTcuNiAxLjQtMjEuMyAxMC4zLTQyLjcgMjkuNy00OC45IDMuMiAzLjIgOS4yIDQuOSAxNC4xIDUuNy0xMyAxNS43LTE3IDQxLjYtMTIuNyA2My0xMC44LTIuMi0yMC41LTYtMjYuMi0xMi4yem00Ny45IDE0LjZjLTQuMSAwLTguMS0uMy0xMi43LS44LTQuNi0xOC42LTEuOS0zOC45IDUuNC01M3YuM2wxMi4yLTUuMWM0LjktMS45IDkuNy0zLjggMTQuOS00LjktMTAuNyAxOS43LTE3LjQgNDEuMy0xOS44IDYzLjV6bTE4NC0xNjIuN2M0MS45IDAgNzYuMiAzNCA3Ni4yIDc1LjkgMCA0Mi4yLTM0LjMgNzYuMi03Ni4yIDc2LjJzLTc2LjItMzQtNzYuMi03Ni4yYzAtNDEuOCAzNC4zLTc1LjkgNzYuMi03NS45em0xMTUuNiAxNzQuM2MtLjMgMTcuOC03IDQ4LjktMjMgNTctMTMuMiA2LjYtNi41LTcuNS0xNi41LTU4LjEgMTMuMy4zIDI2LjYuMyAzOS41IDEuMXptLTU0LTEuNmMuOCA0LjkgMy44IDQwLjMtMS42IDQxLjktMTEuNiAzLjUtNDAgNC4zLTUxLjEtMS4xLTQuMS0zLTQuNi0zNS45LTQuMy00MS4xdi4zYzE4LjktLjMgMzguMS0uMyA1NyAwek0yNzguMyAzMDljLTEzIDMuNS00MS42IDQuMS01NC42LTEuNi02LjUtMi43LTMuOC00Mi40LTEuOS01MS42IDE5LjItLjUgMzguNC0uNSA1Ny44LS44di4zYzEuMSA4LjMgMy4zIDUxLjItMS4zIDUzLjd6bS0xMDYuNS01MS4xYzEyLjItLjggMjQuNi0xLjQgMzYuOC0xLjYtMi40IDE1LjQtMyA0My41LTQuOSA1Mi4yLTEuMSA2LjgtNC4zIDYuOC05LjcgNC4zLTIxLjktOS44LTI3LjYtMzUuMi0yMi4yLTU0Ljl6bS0zNS40IDMxLjNjNy44LTEuMSAxNS43LTEuOSAyMy41LTIuNyAxLjYgNi4yIDMuOCAxMS45IDcgMTcuNiAxMCAxNyA0NCAzNS43IDQ1LjEgNyA2LjIgMTQuOSA0MC44IDEyLjIgNTQuOSAxMC44IDE1LjctMS40IDIzLjgtMS40IDI2LjgtMTQuMyAxMi40IDQuMyAzMC44IDQuMSA0NCAzIDExLjMtLjggMjAuOC0uNSAyNC42LTguOSAxLjEgNS4xIDEuOSAxMS42IDQuNiAxNi44IDEwLjggMjEuMyAzNy4zIDEuNCA0Ni44LTMxLjYgOC42LjggMTcuNiAxLjkgMjYuNSAyLjctLjQgMS4zLTMuOCA3LjMgNy4zIDExLjYtNDcuNiA0Ny05NS43IDg3LjgtMTYzLjIgMTA3LTYzLjItMjAuOC0xMTIuMS01OS41LTE1NS45LTEwNi41IDkuNi0zLjQgMTAuNC04LjggOC0xMi41em0tMjEuNiAxNzIuNWMtMy44IDE3LjgtMjEuOSAyOS43LTM5LjcgMjguOS0xOS4yLS44LTQ2LjUtMTctNTkuMi0zNi41LTIuNy0zMS4xIDQzLjgtNjEuMyA2Ni4yLTU0LjYgMTQuOSA0LjMgMjcuOCAzMC44IDMzLjUgNTQgMCAzLS4zIDUuNy0uOCA4LjJ6bS04LjctNjZjLS41LTEzLjUtLjUtMjctLjMtNDAuNWguM2MyLjctMS42IDUuNy0zLjggNy44LTYuNSA2LjUtMS42IDEzLTUuMSAxNS4xLTkuMiAzLjMtNy4xLTctNy41LTUuNC0xMi40IDIuNy0xLjEgNS43LTIuMiA3LjgtMy41IDI5LjIgMjkuMiA1OC42IDU2LjUgOTcuMyA3Ny0zNi44IDExLjMtNzIuNCAyNy42LTEwNS45IDQ3LTEuMi0xOC42LTcuNy0zNS45LTE2LjctNTEuOXptMzM3LjYgNjQuNmMtMTAzIDMuNS0yMDYuMiA0LjEtMzA5LjQgMCAwIC4zIDAgLjMtLjMuM3YtLjNoLjNjMzUuMS0yMS42IDcyLjItMzkuMiAxMTIuNC01MC44IDExLjYgNS4xIDIzIDkuNSAzNC45IDEzLjIgMi4yLjggMi4yLjggNC4zIDAgMTQuMy00LjEgMjguNC05LjIgNDIuMi0xNS40IDQxLjUgMTEuNyA3OC44IDMxLjcgMTE1LjYgNTN6bTEwLjUtMTIuNGMtMzUuOS0xOS41LTczLTM1LjktMTExLjktNDcuNiAzOC4xLTIwIDcxLjktNDcuMyAxMDMuNS03Ni43IDIuMiAxLjQgNC42IDIuNCA3LjYgMy4yIDAgLjguMyAxLjkuNSAyLjQtNC42IDIuNy03LjggNi4yLTUuOSAxMC4zIDIuMiAzLjggOC42IDcuNiAxNS4xIDguOSAyLjQgMi43IDUuMSA1LjEgOC4xIDYuOCAwIDEzLjgtLjMgMjcuNi0uOCA0MS4zbC4zLS4zYy05LjMgMTUuOS0xNS41IDM3LTE2LjUgNTEuN3ptMTA1LjkgNi4yYy0xMi43IDE5LjUtNDAgMzUuNy01OS4yIDM2LjUtMTkuMy45LTQwLjUtMTMuMi00MC41LTM3IDUuNy0yMy4yIDE4LjktNDkuNyAzMy41LTU0IDIyLjctNi45IDY5LjIgMjMuNCA2Ni4yIDU0LjV6TTM3Mi45IDc1LjJjLTMuOC03Mi4xLTEwMC44LTc5LjctMTI2LTIzLjUgNDQuNi0yNC4zIDkwLjMtMTUuNyAxMjYgMjMuNXpNNzQuOCA0MDcuMWMtMTUuNyAxLjYtNDkuNSAyNS40LTQ5LjUgNDMuMiAwIDExLjYgMTUuNyAxOS41IDMyLjIgMTQuOSAxMi4yLTMuMiAzMS4xLTE3LjYgMzUuOS0yNy4zIDYtMTEuNi0zLjctMzIuNy0xOC42LTMwLjh6bTIxNS45LTE3Ni4yYzI4LjYgMCA1MS45LTIxLjYgNTEuOS00OC40IDAtMzYuMS00MC41LTU4LjEtNzIuMi00NC4zIDkuNSAzIDE2LjUgMTEuNiAxNi41IDIxLjYgMCAyMy4zLTMzLjMgMzItNDYuNSAxMS4zLTcuMyAzNC4xIDE5LjQgNTkuOCA1MC4zIDU5Ljh6TTY4IDQ3NC4xYy41IDYuNSAxMi4yIDEyLjcgMjEuNiA5LjUgNi44LTIuNyAxNC42LTEwLjUgMTcuMy0xNi4yIDMtNy0xLjEtMjAtOS43LTE4LjQtOC45IDEuNi0yOS43IDE2LjctMjkuMiAyNS4xem00MzMuMi02N2MtMTQuOS0xLjktMjQuNiAxOS4yLTE4LjkgMzAuOCA0LjkgOS43IDI0LjEgMjQuMSAzNi4yIDI3LjMgMTYuNSA0LjYgMzIuMi0zLjIgMzIuMi0xNC45IDAtMTcuOC0zMy44LTQxLjYtNDkuNS00My4yek00NzguOCA0NDljLTguNC0xLjYtMTIuNCAxMS4zLTkuNSAxOC40IDIuNCA1LjcgMTAuMyAxMy41IDE3LjMgMTYuMiA5LjIgMy4yIDIxLjEtMyAyMS4zLTkuNS45LTguNC0yMC4yLTIzLjUtMjkuMS0yNS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPcmNpZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTQuNzUgMTg4LjE5aC00NS45MlYzNDJoNDcuNDdjNjcuNjIgMCA4My4xMi01MS4zNCA4My4xMi03Ni45MSAwLTQxLjY0LTI2LjU0LTc2LjktODQuNjctNzYuOXpNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptLTgwLjc5IDM2MC43NmgtMjkuODR2LTIwNy41aDI5Ljg0em0tMTQuOTItMjMxLjE0YTE5LjU3IDE5LjU3IDAgMSAxIDE5LjU3LTE5LjU3IDE5LjY0IDE5LjY0IDAgMCAxLTE5LjU3IDE5LjU3ek0zMDAgMzY5aC04MVYxNjEuMjZoODAuNmM3Ni43MyAwIDExMC40NCA1NC44MyAxMTAuNDQgMTAzLjg1QzQxMCAzMTguMzkgMzY4LjM4IDM2OSAzMDAgMzY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPc2kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAyNjYuNDRDMTAuMyAxMzAuNjQgMTA1LjQgMzQgMjIxLjggMTguMzRjMTM4LjgtMTguNiAyNTUuNiA3NS44IDI3OCAyMDEuMSAyMS4zIDExOC44LTQ0IDIzMC0xNTEuNiAyNzQtOS4zIDMuOC0xNC40IDEuNy0xOC03LjdxLTI2LjctNjkuNDUtNTMuNC0xMzljLTMuMS04LjEtMS0xMy4yIDctMTYuOCAyNC4yLTExIDM5LjMtMjkuNCA0My4zLTU1LjhhNzEuNDcgNzEuNDcgMCAwIDAtNjQuNS04Mi4yYy0zOS0zLjQtNzEuOCAyMy43LTc3LjUgNTkuNy01LjIgMzMgMTEuMSA2My43IDQxLjkgNzcuNyA5LjYgNC40IDExLjUgOC42IDcuOCAxOC40cS0yNi44NSA2OS45LTUzLjcgMTM5LjljLTIuNiA2LjktOC4zIDkuMy0xNS41IDYuNS01Mi42LTIwLjMtMTAxLjQtNjEtMTMwLjgtMTE5LTI0LjktNDkuMi0yNS4yLTg3LjctMjYuOC0xMDguN3ptMjAuOS0xLjljLjQgNi42LjYgMTQuMyAxLjMgMjIuMSA2LjMgNzEuOSA0OS42IDE0My41IDEzMSAxODMuMSAzLjIgMS41IDQuNC44IDUuNi0yLjNxMjIuMzUtNTguNjUgNDUtMTE3LjNjMS4zLTMuMy42LTQuOC0yLjQtNi43LTMxLjYtMTkuOS00Ny4zLTQ4LjUtNDUuNi04NiAxLTIxLjYgOS4zLTQwLjUgMjMuOC01Ni4zIDMwLTMyLjcgNzctMzkuOCAxMTUuNS0xNy42YTkxLjY0IDkxLjY0IDAgMCAxIDQ1LjIgOTAuNGMtMy42IDMwLjYtMTkuMyA1My45LTQ1LjcgNjkuOC0yLjcgMS42LTMuNSAyLjktMi4zIDZxMjIuOCA1OC44IDQ1LjIgMTE3LjdjMS4yIDMuMSAyLjQgMy44IDUuNiAyLjMgMzUuNS0xNi42IDY1LjItNDAuMyA4OC4xLTcyIDM0LjgtNDguMiA0OS4xLTEwMS45IDQyLjMtMTYxLTEzLjctMTE3LjUtMTE5LjQtMjE0LjgtMjU1LjUtMTk4LTEwNi4xIDEzLTE5NS4zIDEwMi41LTE5Ny4xIDIyNS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYWdlNCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggNTA0QzExMSA1MDQgMCAzOTMgMCAyNTZTMTExIDggMjQ4IDhjMjAuOSAwIDQxLjMgMi42IDYwLjcgNy41TDQyLjMgMzkySDI0OHYxMTJ6bTAtMTQzLjZWMTQ2LjhMOTguNiAzNjAuNEgyNDh6bTk2IDMxLjZ2OTIuN2M0NS43LTE5LjIgODQuNS01MS43IDExMS40LTkyLjdIMzQ0em01Ny40LTEzOC4ybC0yMS4yIDguNCAyMS4yIDguM3YtMTYuN3ptLTIwLjMgNTQuNWMtNi43IDAtOCA2LjMtOCAxMi45djcuN2gxNi4ydi0xMGMwLTUuOS0yLjMtMTAuNi04LjItMTAuNnpNNDk2IDI1NmMwIDM3LjMtOC4yIDcyLjctMjMgMTA0LjRIMzQ0VjI3LjNDNDMzLjMgNjQuOCA0OTYgMTUzLjEgNDk2IDI1NnpNMzYwLjQgMTQzLjZoNjguMlY5NmgtMTMuOXYzMi42aC0xMy45Vjk5aC0xMy45djI5LjZoLTEyLjdWOTZoLTEzLjl2NDcuNnptNjguMSAxODUuM0g0MDJ2LTExYzAtMTUuNC01LjYtMjUuMi0yMC45LTI1LjItMTUuNCAwLTIwLjcgMTAuNi0yMC43IDI1Ljl2MjUuM2g2OC4ydi0xNXptMC0xMDNsLTY4LjIgMjkuN1YyNjhsNjguMiAyOS41di0xNi42bC0xNC40LTUuN3YtMjYuNWwxNC40LTUuOXYtMTYuOXptLTQuOC02OC41aC0zNS42VjE4NEg0MDJ2LTEyLjJoMTFjOC42IDE1LjggMS4zIDM1LjMtMTguNiAzNS4zLTIyLjUgMC0yOC4zLTI1LjMtMTUuNS0zNy43bC0xMS42LTEwLjZjLTE2LjIgMTcuNS0xMi4yIDYzLjkgMjcuMSA2My45IDM0IDAgNDQuNy0zNS45IDI5LjMtNjUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFnZWxpbmVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAzMTIuN2MtNTUuMSAxMzYuNy0xODcuMSA1NC0xODcuMSA1NC00MC41IDgxLjgtMTA3LjQgMTM0LjQtMTg0LjYgMTM0LjctMTYuMSAwLTE2LjYtMjQuNCAwLTI0LjQgNjQuNC0uMyAxMjAuNS00Mi43IDE1Ny4yLTExMC4xLTQxLjEgMTUuOS0xMTguNiAyNy45LTE2MS42LTgyLjIgMTA5LTQ0LjkgMTU5LjEgMTEuMiAxNzguMyA0NS41IDkuOS0yNC40IDE3LTUwLjkgMjEuNi03OS43IDAgMC0xMzkuNyAyMS45LTE0OS41LTk4LjEgMTE5LjEtNDcuOSAxNTIuNiA3Ni43IDE1Mi42IDc2LjcgMS42LTE2LjcgMy4zLTUyLjYgMy4zLTUzLjQgMCAwLTEwNi4zLTczLjctMzguMS0xNjUuMiAxMjQuNiA0MyA2MS40IDE2Mi40IDYxLjQgMTYyLjQuNSAxLjYuNSAyMy44IDAgMzMuNCAwIDAgNDUuMi04OSAxMzYuNC01Ny41LTQuMiAxMzQtMTQxLjkgMTA2LjQtMTQxLjkgMTA2LjQtNC40IDI3LjQtMTEuMiA1My40LTIwIDc3LjUgMCAwIDgzLTkxLjggMTcyLTIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYWxmZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0LjkgMTkzLjljMC00Ny40LTU1LjItNDQuMi05NS40LTI5LjgtMS4zIDM5LjQtMi41IDgwLjctMyAxMTkuOC43IDIuOCAyLjYgNi4yIDE1LjEgNi4yIDM2LjggMCA4My40LTQyLjggODMuMy05Ni4yem0tMTk0LjUgNzIuMmMuMiAwIDYuNS0yLjcgMTEuMi0yLjcgMjYuNiAwIDIwLjcgNDQuMS0xNC40IDQ0LjEtMjEuNSAwLTM3LjEtMTguMS0zNy4xLTQzIDAtNDIgNDIuOS05NS42IDEwMC43LTEyNi41IDEtMTIuNCAzLTIyIDEwLjUtMjguMiAxMS4yLTkgMjYuNi0zLjUgMjkuNSAxMS4xIDcyLjItMjIuMiAxMzUuMiAxIDEzNS4yIDcyIDAgNzcuOS03OS4zIDE1Mi42LTE0MC4xIDEzOC4yLS4xIDM5LjQuOSA3NC40IDIuNyAxMDB2LjJjLjIgMy40LjYgMTIuNS01LjMgMTkuMS05LjYgMTAuNi0zMy40IDEwLTM2LjQtMjIuMy00LjEtNDQuNC4yLTIwNi4xIDEuNC0yNDIuNS0yMS41IDE1LTU4LjUgNTAuMy01OC41IDc1LjkuMiAyLjUuNCA0IC42IDQuNnpNOCAxODEuMXMtLjEgMzcuNCAzOC40IDM3LjRoMzBsMjIuNCAyMTcuMnMwIDQ0LjMgNDQuNyA0NC4zaDI4OC45czQ0LjctLjQgNDQuNy00NC4zbDIyLjQtMjE3LjJoMzBzMzguNCAxLjIgMzguNC0zNy40YzAgMCAuMS0zNy40LTM4LjQtMzcuNGgtMzAuMWMtNy4zLTI1LjYtMzAuMi03NC4zLTExOS40LTc0LjNoLTI4VjUwLjNzLTIuNy0xOC40LTIxLjEtMTguNGgtODUuOHMtMjEuMSAwLTIxLjEgMTguNHYxOS4xaC0yOC4xcy0xMDUgNC4yLTEyMC41IDc0LjNoLTI5UzggMTQyLjUgOCAxODEuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGF0cmVvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgMTk0LjhjMCAxMDEuMy04Mi40IDE4My44LTE4My44IDE4My44LTEwMS43IDAtMTg0LjQtODIuNC0xODQuNC0xODMuOCAwLTEwMS42IDgyLjctMTg0LjMgMTg0LjQtMTg0LjNDNDI5LjYgMTAuNSA1MTIgOTMuMiA1MTIgMTk0Ljh6TTAgNTAxLjVoOTB2LTQ5MUgwdjQ5MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGF5cGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMS40IDI5NS45Yy0zLjUgMTkuMi0xNy40IDEwOC43LTIxLjUgMTM0LS4zIDEuOC0xIDIuNS0zIDIuNUgxMi4zYy03LjYgMC0xMy4xLTYuNi0xMi4xLTEzLjlMNTguOCA0Ni42YzEuNS05LjYgMTAuMS0xNi45IDIwLTE2LjkgMTUyLjMgMCAxNjUuMS0zLjcgMjA0IDExLjQgNjAuMSAyMy4zIDY1LjYgNzkuNSA0NCAxNDAuMy0yMS41IDYyLjYtNzIuNSA4OS41LTE0MC4xIDkwLjMtNDMuNC43LTY5LjUtNy03NS4zIDI0LjJ6TTM1Ny4xIDE1MmMtMS44LTEuMy0yLjUtMS44LTMgMS4zLTIgMTEuNC01LjEgMjIuNS04LjggMzMuNi0zOS45IDExMy44LTE1MC41IDEwMy45LTIwNC41IDEwMy45LTYuMSAwLTEwLjEgMy4zLTEwLjkgOS40LTIyLjYgMTQwLjQtMjcuMSAxNjkuNy0yNy4xIDE2OS43LTEgNy4xIDMuNSAxMi45IDEwLjYgMTIuOWg2My41YzguNiAwIDE1LjctNi4zIDE3LjQtMTQuOS43LTUuNC0xLjEgNi4xIDE0LjQtOTEuMyA0LjYtMjIgMTQuMy0xOS43IDI5LjMtMTkuNyA3MSAwIDEyNi40LTI4LjggMTQyLjktMTEyLjMgNi41LTM0LjggNC42LTcxLjQtMjMuOC05Mi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW5ueUFyY2FkZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjEuOTEgMTY0LjI3Yy00LjQ5IDE5LjQ1LTEuNCA2LjA2LTE1LjEgNjUuMjlsMzkuNzMtMTAuNjFjLTIyLjM0LTQ5LjYxLTE3LjI5LTM4LjQxLTI0LjYzLTU0LjY4em0tMjA2LjA5IDUxLjExYy0yMC4xOSA1LjQtMTEuMzEgMy4wMy0zOS42MyAxMC41OGw0LjQ2IDQ2LjE5YzI4LjE3LTcuNTkgMjAuNjItNS41NyAzNC44Mi05LjM0IDQyLjMtOS43OSAzMi44NS01Ni40Mi4zNS00Ny40M3ptMzI2LjE2LTI2LjE5bC00NS40Ny05OS4yYy01LjY5LTEyLjM3LTE5LjQ2LTE4Ljg0LTMyLjYyLTE1LjMzLTcwLjI3IDE4Ljc1LTM4LjcyIDEwLjMyLTEzNS41OSAzNi4yM2EyNy42MTggMjcuNjE4IDAgMCAwLTE4Ljg5IDE3LjQxQzE0NC4yNiAxMTMuMjcgMCAxNTMuNzUgMCAyMjYuNjdjMCAzMy41IDMwLjY3IDY3LjExIDgwLjkgOTUuMzdsMS43NCAxNy44OGEyNy44OTEgMjcuODkxIDAgMCAwLTE3Ljc3IDI4LjY3bDQuMyA0NC40OGMxLjM5IDE0LjMxIDEzLjQzIDI1LjIxIDI3LjggMjUuMiA1LjE4LS4wMS0zLjAxIDEuNzggMTIyLjUzLTMxLjc2IDEyLjU3LTMuMzcgMjEuMTItMTUuMDIgMjAuNTgtMjguMDIgMjE2LjU5IDQ1LjUgNDAxLjk5LTUuOTggMzk5Ljg5LTg0LjgzLjAxLTI4LjE1LTIyLjE5LTY2LjU2LTk3Ljk5LTEwNC40N3pNMjU1LjE0IDI5OC4zbC0yMS45MSA1Ljg4LTQ4LjQ0IDEyLjkxIDIuNDYgMjMuNTUgMjAuNTMtNS41MSA0LjUxIDQ0LjUxLTExNS4zMSAzMC43OC00LjMtNDQuNTIgMjAuMDItNS4zNS0xMS4xMS0xMTQuNjQtMjAuMTIgNS4zOS00LjM1LTQ0LjVjMTc4LjE1LTQ3LjU0IDE3MC4xOC00Ni40MiAxODYuMjItNDYuNjUgNTYuNjYtMS4xMyA2NC4xNSA3MS44NCA0Mi41NSAxMDQuNDNhODYuNyA4Ni43IDAgMCAxLTUwLjc1IDMzLjcyem0xOTkuMTggMTYuNjJsLTMuODktMzkuNDkgMTQuOS0zLjk4LTYuNjEtMTQuNjgtNTcuNzYgMTUuNDItNC4xIDE3LjU0IDE5LjItNS4xMiA0LjA1IDM5LjU0LTExMi44NSAzMC4wNy00LjQ2LTQ0LjQzIDIwLjk5LTUuNTkgMzMuMDgtMTI2LjQ3LTE3LjE1IDQuNTYtNC4yLTQ0LjQ4YzkzLjM2LTI0Ljk5IDY1LjAxLTE3LjQxIDEzNS41OS0zNi4yNGw2Ni42NyAxNDUuNDcgMjAuNzktNS41NiA0LjMgNDQuNDgtMTA4LjU1IDI4Ljk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJieXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwNS4zMTQsMjg0LjU3OEgyNDYuNlYzODMuM2g1OC43MTFxMjQuNDIzLDAsMzguMTkzLTEzLjc3dDEzLjc3LTM2LjExcTAtMjEuODI2LTE0LjAzMi0zNS4zMzVUMzA1LjMxNCwyODQuNTc4Wk0xNDkuNDM1LDEyOC43SDkwLjcyNHY5OC43MjNoNTguNzExcTI0LjQyLDAsMzguMTktMTMuNzczdDEzLjc3LTM2LjEwN3EwLTIxLjgyNi0xNC4wMjktMzUuMzM4VDE0OS40MzUsMTI4LjdaTTM2Ni42NDcsMzJIODEuMzUzQTgxLjQ0NSw4MS40NDUsMCwwLDAsMCwxMTMuMzUyVjM5OC42NDdBODEuNDQ1LDgxLjQ0NSwwLDAsMCw4MS4zNTMsNDgwSDM2Ni42NDdBODEuNDQ1LDgxLjQ0NSwwLDAsMCw0NDgsMzk4LjY0N1YxMTMuMzUyQTgxLjQ0NSw4MS40NDUsMCwwLDAsMzY2LjY0NywzMlptNjMuNjM1LDM2Ni42NDdhNjMuNzA2LDYzLjcwNiwwLDAsMS02My42MzUsNjMuNjM1SDgxLjM1M2E2My43MDYsNjMuNzA2LDAsMCwxLTYzLjYzNS02My42MzVWMTEzLjM1MkE2My43MDYsNjMuNzA2LDAsMCwxLDgxLjM1Myw0OS43MThIMzY2LjY0N2E2My43MDYsNjMuNzA2LDAsMCwxLDYzLjYzNSw2My42MzRaTTMwNS4zMTQsMTI4LjdIMjQ2LjZ2OTguNzIzaDU4LjcxMXEyNC40MjMsMCwzOC4xOTMtMTMuNzczdDEzLjc3LTM2LjEwN3EwLTIxLjgyNi0xNC4wMzItMzUuMzM4VDMwNS4zMTQsMTI4LjdaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcmlzY29wZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzAgNjMuNkMzMzEuNCAyMi42IDI4MC41IDAgMjI2LjYgMCAxMTEuOSAwIDE4LjUgOTYuMiAxOC41IDIxNC40YzAgNzUuMSA1Ny44IDE1OS44IDgyLjcgMTkyLjdDMTM3LjggNDU1LjUgMTkyLjYgNTEyIDIyNi42IDUxMmM0MS42IDAgMTEyLjktOTQuMiAxMjAuOS0xMDUgMjQuNi0zMy4xIDgyLTExOC4zIDgyLTE5Mi42IDAtNTYuNS0yMS4xLTExMC4xLTU5LjUtMTUwLjh6TTIyNi42IDQ5My45Yy00Mi41IDAtMTkwLTE2Ny4zLTE5MC0yNzkuNCAwLTEwNy40IDgzLjktMTk2LjMgMTkwLTE5Ni4zIDEwMC44IDAgMTg0LjcgODkgMTg0LjcgMTk2LjMuMSAxMTIuMS0xNDcuNCAyNzkuNC0xODQuNyAyNzkuNHpNMzM4IDIwNi44YzAgNTkuMS01MS4xIDEwOS43LTExMC44IDEwOS43LTEwMC42IDAtMTUwLjctMTA4LjItOTIuOS0xODEuOHYuNGMwIDI0LjUgMjAuMSA0NC40IDQ0LjggNDQuNCAyNC43IDAgNDQuOC0xOS45IDQ0LjgtNDQuNCAwLTE4LjItMTEuMS0zMy44LTI2LjktNDAuNyA3Ni42LTE5LjIgMTQxIDM5LjMgMTQxIDExMi40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaGFicmljYXRvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjMgMjYyLjFsLS4xLTEzczIxLjctMTkuOCAyMS4xLTIxLjJsLTkuNS0yMGMtLjYtMS40LTI5LjUtLjUtMjkuNS0uNWwtOS40LTkuM3MuMi0yOC41LTEuMi0yOS4xbC0yMC4xLTkuMmMtMS40LS42LTIwLjcgMjEtMjAuNyAyMWwtMTMuMS0uMnMtMjAuNS0yMS40LTIxLjktMjAuOGwtMjAgOC4zYy0xLjQuNS4yIDI4LjkuMiAyOC45bC05LjEgOS4xcy0yOS4yLS45LTI5LjcuNGwtOC4xIDE5LjhjLS42IDEuNCAyMSAyMSAyMSAyMWwuMSAxMi45cy0yMS43IDE5LjgtMjEuMSAyMS4ybDkuNSAyMGMuNiAxLjQgMjkuNS41IDI5LjUuNWw5LjQgOS4zcy0uMiAzMS44IDEuMiAzMi4zbDIwLjEgOC4zYzEuNC42IDIwLjctMjMuNSAyMC43LTIzLjVsMTMuMS4yczIwLjUgMjMuOCAyMS44IDIzLjNsMjAtNy41YzEuNC0uNi0uMi0zMi4xLS4yLTMyLjFsOS4xLTkuMXMyOS4yLjkgMjkuNy0uNWw4LjEtMTkuOGMuNy0xLjEtMjAuOS0yMC43LTIwLjktMjAuN3ptLTQ0LjktOC43Yy43IDE3LjEtMTIuOCAzMS42LTMwLjEgMzIuNC0xNy4zLjgtMzIuMS0xMi41LTMyLjgtMjkuNi0uNy0xNy4xIDEyLjgtMzEuNiAzMC4xLTMyLjMgMTcuMy0uOCAzMi4xIDEyLjUgMzIuOCAyOS41em0yMDEuMi0zNy45bC05Ny05Ny0uMS4xYy03NS4xLTczLjMtMTk1LjQtNzIuOC0yNjkuOCAxLjYtNTAuOSA1MS0yNy44IDI3LjktOTUuNyA5NS4zLTIyLjMgMjIuMy0yMi4zIDU4LjcgMCA4MSA2OS45IDY5LjQgNDYuNCA0NiA5Ny40IDk3bC4xLS4xYzc1LjEgNzMuMyAxOTUuNCA3Mi45IDI2OS44LTEuNiA1MS01MC45IDI3LjktMjcuOSA5NS4zLTk1LjMgMjIuMy0yMi4zIDIyLjMtNTguNyAwLTgxek0xNDAuNCAzNjMuOGMtNTkuNi01OS41LTU5LjYtMTU2IDAtMjE1LjUgNTkuNS01OS42IDE1Ni01OS41IDIxNS42IDAgNTkuNSA1OS41IDU5LjYgMTU2IDAgMjE1LjYtNTkuNiA1OS41LTE1NiA1OS40LTIxNS42LS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaG9lbml4RnJhbWV3b3JrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxMi45IDM0NC4zYzMuOC0uMSAyMi44LTEuNCAyNS42LTIuMi0yLjQtMi42LTQzLjYtMS02OC00OS42LTQuMy04LjYtNy41LTE3LjYtNi40LTI3LjYgMi45LTI1LjUgMzIuOS0zMCA1Mi0xOC41IDM2IDIxLjYgNjMuMyA5MS4zIDExMy43IDk3LjUgMzcgNC41IDg0LjYtMTcgMTA4LjItNDUuNC0uNi0uMS0uOC0uMi0xLS4xLS40LjEtLjguMi0xLjEuMy0zMy4zIDEyLjEtOTQuMyA5LjctMTM0LjctMTQuOC0zNy42LTIyLjgtNTMuMS01OC43LTUxLjgtNzQuNiAxLjgtMjEuMyAyMi45LTIzLjIgMzUuOS0xOS42IDE0LjQgMy45IDI0LjQgMTcuNiAzOC45IDI3LjQgMTUuNiAxMC40IDMyLjkgMTMuNyA1MS4zIDEwLjMgMTQuOS0yLjcgMzQuNC0xMi4zIDM2LjUtMTQuNS0xLjEtLjEtMS44LS4xLTIuNS0uMi02LjItLjYtMTIuNC0uOC0xOC41LTEuN0MyNzkuOCAxOTQuNSAyNjIuMSA0Ny40IDEzOC41IDM3LjkgOTQuMiAzNC41IDM5LjEgNDYgMi4yIDcyLjljLS44LjYtMS41IDEuMi0yLjIgMS44LjEuMi4xLjMuMi41LjggMCAxLjYtLjEgMi40LS4yIDYuMy0xIDEyLjUtLjggMTguNy4zIDIzLjggNC4zIDQ3LjcgMjMuMSA1NS45IDc2LjUgNS4zIDM0LjMtLjcgNTAuOCA4IDg2LjEgMTkgNzcuMSA5MSAxMDcuNiAxMjcuNyAxMDYuNHpNNzUuMyA2NC45Yy0uOS0xLS45LTEuMi0xLjMtMiAxMi4xLTIuNiAyNC4yLTQuMSAzNi42LTQuOC0xLjEgMTQuNy0yMi4yIDIxLjMtMzUuMyA2Ljh6bTE5Ni45IDM1MC41Yy00Mi44IDEuMi05Mi0yNi43LTEyMy41LTYxLjQtNC42LTUtMTYuOC0yMC4yLTE4LjYtMjMuNGwuNC0uNGM2LjYgNC4xIDI1LjcgMTguNiA1NC44IDI3IDI0LjIgNyA0OC4xIDYuMyA3MS42LTMuMyAyMi43LTkuMyA0MS0uNSA0My4xIDIuOS0xOC41IDMuOC0yMC4xIDQuNC0yNCA3LjktNS4xIDQuNC00LjYgMTEuNyA3IDE3LjIgMjYuMiAxMi40IDYzLTIuOCA5Ny4yIDI1LjQgMi40IDIgOC4xIDcuOCAxMC4xIDEwLjctLjEuMi0uMy4zLS40LjUtNC44LTEuNS0xNi40LTcuNS00MC4yLTkuMy0yNC43LTItNDYuMyA1LjMtNzcuNSA2LjJ6bTE3NC44LTI1MmMxNi40LTUuMiA0MS4zLTEzLjQgNjYuNS0zLjMgMTYuMSA2LjUgMjYuMiAxOC43IDMyLjEgMzQuNiAzLjUgOS40IDUuMSAxOS43IDUuMSAyOC43LS4yIDAtLjQgMC0uNi4xLS4yLS40LS40LS45LS41LTEuMy01LTIyLTI5LjktNDMuOC02Ny42LTI5LjktNTAuMiAxOC42LTEzMC40IDkuNy0xNzYuOS00OC0uNy0uOS0yLjQtMS43LTEuMy0zLjIuMS0uMiAyLjEuNiAzIDEuMyAxOC4xIDEzLjQgMzguMyAyMS45IDYwLjMgMjYuMiAzMC41IDYuMSA1NC42IDIuOSA3OS45LTUuMnptMTAyLjcgMTE3LjVjLTMyLjQuMi0zMy44IDUwLjEtMTAzLjYgNjQuNC0xOC4yIDMuNy0zOC43IDQuNi00NC45IDQuMnYtLjRjMi44LTEuNSAxNC43LTIuNiAyOS43LTE2LjYgNy45LTcuMyAxNS4zLTE1LjEgMjIuOC0yMi45IDE5LjUtMjAuMiA0MS40LTQyLjIgODEuOS0zOSAyMy4xIDEuOCAyOS4zIDguMiAzNi4xIDEyLjcuMy4yLjQuNS43LjktLjUgMC0uNy4xLS45IDAtNy0yLjctMTQuMy0zLjMtMjEuOC0zLjN6bS0xMi4zLTI0LjFjLS4xLjItLjEuNC0uMi42LTI4LjktNC40LTQ4LTcuOS02OC41IDQtMTcgOS45LTMxLjQgMjAuNS02MiAyNC40LTI3LjEgMy40LTQ1LjEgMi40LTY2LjEtOC0uMy0uMi0uNi0uNC0xLS42IDAtLjIuMS0uMy4xLS41IDI0LjkgMy44IDM2LjQgNS4xIDU1LjUtNS44IDIyLjMtMTIuOSA0MC4xLTI2LjYgNzEuMy0zMSAyOS42LTQuMSA1MS4zIDIuNSA3MC45IDE2Ljl6TTI2OC42IDk3LjNjLS42LS42LTEuMS0xLjItMi4xLTIuMyA3LjYgMCAyOS43LTEuMiA1My40IDguNCAxOS43IDggMzIuMiAyMSA1MC4yIDMyLjkgMTEuMSA3LjMgMjMuNCA5LjMgMzYuNCA4LjEgNC4zLS40IDguNS0xLjIgMTIuOC0xLjcuNC0uMS45IDAgMS41LjMtLjYuNC0xLjIuOS0xLjggMS4yLTguMSA0LTE2LjcgNi4zLTI1LjYgNy4xLTI2LjEgMi42LTUwLjMtMy43LTczLjQtMTUuNC0xOS4zLTkuOS0zNi40LTIyLjktNTEuNC0zOC42ek02NDAgMzM1LjdjLTMuNSAzLjEtMjIuNyAxMS42LTQyLjcgNS4zLTEyLjMtMy45LTE5LjUtMTQuOS0zMS42LTI0LjEtMTAtNy42LTIwLjktNy45LTI4LjEtOC40LjYtLjguOS0xLjIgMS4yLTEuNCAxNC44LTkuMiAzMC41LTEyLjIgNDcuMy02LjUgMTIuNSA0LjIgMTkuMiAxMy41IDMwLjQgMjQuMiAxMC44IDEwLjQgMjEgOS45IDIzLjEgMTAuNS4xLS4xLjIgMCAuNC40em0tMjEyLjUgMTM3YzIuMiAxLjIgMS42IDEuNSAxLjUgMi0xOC41LTEuNC0zMy45LTcuNi00Ni44LTIyLjItMjEuOC0yNC43LTQxLjctMjcuOS00OC42LTI5LjcuNS0uMi44LS40IDEuMS0uNCAxMy4xLjEgMjYuMS43IDM4LjkgMy45IDI1LjMgNi40IDM1IDI1LjQgNDEuNiAzNS4zIDMuMiA0LjggNy4zIDguMyAxMi4zIDExLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBob2VuaXhTcXVhZHJvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiA2My4zOEMxNDIuNDkgMjcuMjUgMjAxLjU1IDcuMzEgMjYwLjUxIDguODFjMjkuNTgtLjM4IDU5LjExIDUuMzcgODYuOTEgMTUuMzMtMjQuMTMtNC42My00OS02LjM0LTczLjM4LTIuNDVDMjMxLjE3IDI3IDE5MSA0OC44NCAxNjIuMjEgODAuODdjNS42Ny0xIDEwLjc4LTMuNjcgMTYtNS44NiAxOC4xNC03Ljg3IDM3LjQ5LTEzLjI2IDU3LjIzLTE0LjgzIDE5Ljc0LTIuMTMgMzkuNjQtLjQzIDU5LjI4IDEuOTItMTQuNDIgMi43OS0yOS4xMiA0LjU3LTQzIDkuNTktMzQuNDMgMTEuMDctNjUuMjcgMzMuMTYtODYuMyA2Mi42My0xMy44IDE5LjcxLTIzLjYzIDQyLjg2LTI0LjY3IDY3LjEzLS4zNSAxNi40OSA1LjIyIDM0LjgxIDE5LjgzIDQ0YTUzLjI3IDUzLjI3IDAgMCAwIDM3LjUyIDYuNzRjMTUuNDUtMi40NiAzMC4wNy04LjY0IDQzLjYtMTYuMzMgMTEuNTItNi44MiAyMi42Ny0xNC41NSAzMi0yNC4yNSAzLjc5LTMuMjIgMi41My04LjQ1IDIuNjItMTIuNzktMi4xMi0uMzQtNC4zOC0xLjExLTYuMy4zYTIwMyAyMDMgMCAwIDEtMzUuODIgMTUuMzdjLTIwIDYuMTctNDIuMTYgOC40Ni02Mi4xLjc4IDEyLjc5IDEuNzMgMjYuMDYuMzEgMzcuNzQtNS40NCAyMC4yMy05LjcyIDM2LjgxLTI1LjIgNTQuNDQtMzguNzdhNTI2LjU3IDUyNi41NyAwIDAgMSA4OC45LTU1LjMxYzI1LjcxLTEyIDUyLjk0LTIyLjc4IDgxLjU3LTI0LjEyLTE1LjYzIDEzLjcyLTMyLjE1IDI2LjUyLTQ2Ljc4IDQxLjM4LTE0LjUxIDE0LTI3LjQ2IDI5LjUtNDAuMTEgNDUuMTgtMy41MiA0LjYtOC45NSA2Ljk0LTEzLjU4IDEwLjE2YTE1MC43IDE1MC43IDAgMCAwLTUxLjg5IDYwLjFjLTkuMzMgMTkuNjgtMTQuNSA0MS44NS0xMS43NyA2My42NSAxLjk0IDEzLjY5IDguNzEgMjcuNTkgMjAuOSAzNC45MSAxMi45IDggMjkuMDUgOC4wNyA0My40OCA1LjEgMzIuOC03LjQ1IDYxLjQzLTI4Ljg5IDgxLTU1Ljg0IDIwLjQ0LTI3LjUyIDMwLjUyLTYyLjIgMjkuMTYtOTYuMzUtLjUyLTcuNS0xLjU3LTE1LTEuNjYtMjIuNDkgOCAxOS40OCAxNC44MiAzOS43MSAxNi42NSA2MC44MyAyIDE0LjI4Ljc1IDI4Ljc2LTEuNjIgNDIuOS0xLjkxIDExLTUuNjcgMjEuNTEtNy43OCAzMi40M2ExNjUgMTY1IDAgMCAwIDM5LjM0LTgxLjA3IDE4My42NCAxODMuNjQgMCAwIDAtMTQuMjEtMTA0LjY0YzIwLjc4IDMyIDMyLjM0IDY5LjU4IDM1LjcxIDEwNy40OC40OSAxMi43My40OSAyNS41MSAwIDM4LjIzQTI0My4yMSAyNDMuMjEgMCAwIDEgNDgyIDM3MS4zNGMtMjYuMTIgNDcuMzQtNjggODUuNjMtMTE3LjE5IDEwOC03OC4yOSAzNi4yMy0xNzQuNjggMzEuMzItMjQ4LTE0LjY4QTI0OC4zNCAyNDguMzQgMCAwIDEgMjUuMzYgMzY2IDIzOC4zNCAyMzguMzQgMCAwIDEgMCAyNzMuMDh2LTMxLjM0QzMuOTMgMTcyIDQwLjg3IDEwNS44MiA5NiA2My4zOG0yMjIgODAuMzNhNzkuMTMgNzkuMTMgMCAwIDAgMTYtNC40OGM1LTEuNzcgOS4yNC01Ljk0IDEwLjMyLTExLjIyLTguOTYgNC45OS0xNy45OCA5LjkyLTI2LjMyIDE1Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBocCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMTA0LjVjMTcxLjQgMCAzMDMuMiA3Mi4yIDMwMy4yIDE1MS41UzQ5MS4zIDQwNy41IDMyMCA0MDcuNWMtMTcxLjQgMC0zMDMuMi03Mi4yLTMwMy4yLTE1MS41UzE0OC43IDEwNC41IDMyMCAxMDQuNW0wLTE2LjhDMTQzLjMgODcuNyAwIDE2MyAwIDI1NnMxNDMuMyAxNjguMyAzMjAgMTY4LjNTNjQwIDM0OSA2NDAgMjU2IDQ5Ni43IDg3LjcgMzIwIDg3Ljd6TTIxOC4yIDI0Mi41Yy03LjkgNDAuNS0zNS44IDM2LjMtNzAuMSAzNi4zbDEzLjctNzAuNmMzOCAwIDYzLjgtNC4xIDU2LjQgMzQuM3pNOTcuNCAzNTAuM2gzNi43bDguNy00NC44YzQxLjEgMCA2Ni42IDMgOTAuMi0xOS4xIDI2LjEtMjQgMzIuOS02Ni43IDE0LjMtODguMS05LjctMTEuMi0yNS4zLTE2LjctNDYuNS0xNi43aC03MC43TDk3LjQgMzUwLjN6bTE4NS43LTIxMy42aDM2LjVsLTguNyA0NC44YzMxLjUgMCA2MC43LTIuMyA3NC44IDEwLjcgMTQuOCAxMy42IDcuNyAzMS04LjMgMTEzLjFoLTM3YzE1LjQtNzkuNCAxOC4zLTg2IDEyLjctOTItNS40LTUuOC0xNy43LTQuNi00Ny40LTQuNmwtMTguOCA5Ni42aC0zNi41bDMyLjctMTY4LjZ6TTUwNSAyNDIuNWMtOCA0MS4xLTM2LjcgMzYuMy03MC4xIDM2LjNsMTMuNy03MC42YzM4LjIgMCA2My44LTQuMSA1Ni40IDM0LjN6TTM4NC4yIDM1MC4zSDQyMWw4LjctNDQuOGM0My4yIDAgNjcuMSAyLjUgOTAuMi0xOS4xIDI2LjEtMjQgMzIuOS02Ni43IDE0LjMtODguMS05LjctMTEuMi0yNS4zLTE2LjctNDYuNS0xNi43SDQxN2wtMzIuOCAxNjguN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGllZFBpcGVyQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0NCAyNDZjLTMuMi0yLTYuMy0yLjktMTAuMS0yLjktNi42IDAtMTIuNiAzLjItMTkuMyAzLjdsMS43IDQuOXptMTM1LjkgMTk3LjljLTE5IDAtNjQuMSA5LjUtNzkuOSAxOS44bDYuOSA0NS4xYzM1LjcgNi4xIDcwLjEgMy42IDEwNi05LjgtNC44LTEwLTIzLjUtNTUuMS0zMy01NS4xek0zNDAuOCAxNzdjNi42IDIuOCAxMS41IDkuMiAyMi43IDIyLjEgMi0xLjQgNy41LTUuMiA3LjUtOC42IDAtNC45LTExLjgtMTMuMi0xMy4yLTIzIDExLjItNS43IDI1LjItNiAzNy42LTguOSA2OC4xLTE2LjQgMTE2LjMtNTIuOSAxNDYuOC0xMTYuN0M1NDguMyAyOS4zIDU1NCAxNi4xIDU1NC42IDJsLTIgMi42Yy0yOC40IDUwLTMzIDYzLjItODEuMyAxMDAtMzEuOSAyNC40LTY5LjIgNDAuMi0xMDYuNiA1NC42bC02LjMtLjN2LTIxLjhjLTE5LjYgMS42LTE5LjctMTQuNi0zMS42LTIzLTE4LjcgMjAuNi0zMS42IDQwLjgtNTguOSA1MS4xLTEyLjcgNC44LTE5LjYgMTAtMjUuOSAyMS44IDM0LjktMTYuNCA5MS4yLTEzLjUgOTguOC0xMHpNNTU1LjUgMGwtLjYgMS4xLS4zLjkuNi0uNnptLTU5LjIgMzgyLjFjLTMzLjktNTYuOS03NS4zLTExOC40LTE1MC0xMTUuNWwtLjMtNmMtMS4xLTEzLjUgMzIuOCAzLjIgMzUuMS0zMWwtMTQuNCA3LjJjLTE5LjgtNDUuNy04LjYtNTQuMy02NS41LTU0LjMtMTQuNyAwLTI2LjcgMS43LTQxLjQgNC42IDIuOSAxOC42IDIuMiAzNi43LTEwLjkgNTAuM2wxOS41IDUuNWMtMS43IDMuMi0yLjkgNi4zLTIuOSA5LjggMCAyMSA0Mi44IDIuOSA0Mi44IDMzLjYgMCAxOC40LTM2LjggNjAuMS01NC45IDYwLjEtOCAwLTUzLjctNTAtNTMuNC02MC4xbC4zLTQuNiA1Mi4zLTExLjVjMTMtMi42IDEyLjMtMjIuNy0yLjktMjIuNy0zLjcgMC00My4xIDkuMi00OS40IDEwLjYtMi01LjItNy41LTE0LjEtMTMuOC0xNC4xLTMuMiAwLTYuMyAzLjItOS41IDQtOS4yIDIuNi0zMSAyLjktMjEuNSAyMC4xTDE1LjkgMjk4LjVjLTUuNSAxLjEtOC45IDYuMy04LjkgMTEuOCAwIDYgNS41IDEwLjkgMTEuNSAxMC45IDggMCAxMzEuMy0yOC40IDE0Ny40LTMyLjIgMi42IDMuMiA0LjYgNi4zIDcuOCA4LjYgMjAuMSAxNC40IDU5LjggODUuOSA3Ni40IDg1LjkgMjQuMSAwIDU4LTIyLjQgNzEuMy00MS45IDMuMi00LjMgNi45LTcuNSAxMi40LTYuOS42IDEzLjgtMzEuNiAzNC4yLTMzIDQzLjctMS40IDEwLjItMSAzNS4yLS4zIDQxLjEgMjYuNyA4LjEgNTItMy42IDc3LjktMi45IDQuMy0yMSAxMC42LTQxLjkgOS44LTYzLjVsLS4zLTkuNWMtMS40LTM0LjItMTAuOS0zOC41LTM0LjgtNTguNi0xLjEtMS4xLTIuNi0yLjYtMy43LTQgMi4yLTEuNCAxLjEtMSA0LjYtMS43IDg4LjUgMCA1Ni4zIDE4My42IDExMS41IDIyOS45IDMzLjEtMTUgNzIuNS0yNy45IDEwMy41LTQ3LjItMjktMjUuNi01Mi42LTQ1LjctNzIuNy03OS45em0tMTk2LjIgNDYuMXYyNy4ybDExLjgtMy40LTIuOS0yMy44em0tNjguNy0xNTAuNGwyNC4xIDYxLjIgMjEtMTMuOC0zMS4zLTUwLjl6bTg0LjQgMTU0LjlsMiAxMi40YzktMS41IDU4LjQtNi42IDU4LjQtMTQuMSAwLTEuNC0uNi0zLjItLjktNC42LTI2LjggMC0zNi45IDMuOC01OS41IDYuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGllZFBpcGVySGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MCAyNC45Yy04MC44IDUzLjYtODkuNCA5Mi41LTk2LjQgMTA0LjQtNi43IDEyLjItMTEuNyA2MC4zLTIzLjMgODMuNi0xMS43IDIzLjYtNTQuMiA0Mi4yLTY2LjEgNTAtMTEuNyA3LjgtMjguMyAzOC4xLTQxLjkgNjQuMi0xMDguMS00LjQtMTY3LjQgMzguOC0yNTkuMiA5My42IDI5LjQtOS43IDQzLjMtMTYuNyA0My4zLTE2LjcgOTQuMi0zNiAxMzkuMy02OC4zIDI4MS4xLTQ5LjIgMS4xIDAgMS45LjYgMi44LjggMy45IDIuMiA1LjMgNi45IDMuMSAxMC44bC01My45IDk1LjhjLTIuNSA0LjctNy44IDcuMi0xMy4xIDYuMS0xMjYuOC0yMy44LTIyNi45IDE3LjMtMzE4LjkgMTguNkMyNC4xIDQ4OCAwIDQ1My40IDAgNDUxLjhjMC0xLjEuNi0xLjcgMS43LTEuNyAwIDAgMzguMyAwIDEwMy4xLTE1LjNDMTc4LjQgMjk0LjUgMjQ0IDI0NS40IDMxNS40IDI0NS40YzAgMCA3MS43IDAgOTAuNiA2MS45IDIyLjgtMzkuNyAyOC4zLTQ5LjIgMjguMy00OS4yIDUuMy05LjQgMzUtNzcuMiA4Ni40LTE0MS40IDUxLjUtNjQgOTAuNC03OS45IDExOS4zLTkxLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpZWRQaXBlclBwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwNS4zIDE3NC42YzAgMjEuMS0xNC4yIDM4LjEtMzEuNyAzOC4xLTcuMSAwLTEyLjgtMS4yLTE3LjItMy43di02OGM0LjQtMi43IDEwLjEtNC4yIDE3LjItNC4yIDE3LjUgMCAzMS43IDE2LjkgMzEuNyAzNy44em01Mi42IDY3Yy03LjEgMC0xMi44IDEuNS0xNy4yIDQuMnY2OGM0LjQgMi41IDEwLjEgMy43IDE3LjIgMy43IDE3LjQgMCAzMS43LTE2LjkgMzEuNy0zNy44IDAtMjEuMS0xNC4zLTM4LjEtMzEuNy0zOC4xek00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTE4NSAyNTUuMWM0MSAwIDc0LjItMzUuNiA3NC4yLTc5LjYgMC00NC0zMy4yLTc5LjYtNzQuMi03OS42LTEyIDAtMjQuMSAzLjItMzQuNiA4LjhoLTQ1LjdWMzExbDUxLjgtMTAuMXYtNTAuNmM4LjYgMy4xIDE4LjEgNC44IDI4LjUgNC44em0xNTguNCAyNS4zYzAtNDQtMzMuMi03OS42LTczLjktNzkuNi0zLjIgMC02LjQuMi05LjYuNy0zLjcgMTIuNS0xMC4xIDIzLjgtMTkuMiAzMy40LTEzLjggMTUtMzIuMiAyMy44LTUxLjggMjQuOFY0MTZsNTEuOC0xMC4xdi01MC42YzguNiAzLjIgMTguMiA0LjcgMjguNyA0LjcgNDAuOCAwIDc0LTM1LjYgNzQtNzkuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGllZFBpcGVyU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDQxOUwwIDQ3OS4ybC44LTMyOEMuOCA4NS4zIDU0IDMyIDEyMCAzMmgzMjcuMmMtOTMgMjguOS0xODkuOSA5NC4yLTI1My45IDE2OC42QzEyMi43IDI4MiA4Mi42IDMzOCAzMiA0MTlNNDQ4IDMyUzMwNS4yIDk4LjggMjYxLjYgMTk5LjFjLTIzLjIgNTMuNi0yOC45IDExOC4xLTcxIDE1OC42LTI4LjkgMjcuOC02OS44IDM4LjItMTA1LjMgNTYuMy0yMy4yIDEyLTY2LjQgNDAuNS04NC45IDY2aDMyOC40YzY2IDAgMTE5LjMtNTMuMyAxMTkuMy0xMTkuMi0uMSAwLS4xLTMyOC44LS4xLTMyOC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaWVkUGlwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ4MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDU1LjkzLDIzLjJDNDI5LjIzLDMwLDM4Ny43OSw1MS42OSwzNDEuMzUsOTAuNjZBMjA2LDIwNiwwLDAsMCwyNDAsNjRDMTI1LjEzLDY0LDMyLDE1Ny4xMiwzMiwyNzJzOTMuMTMsMjA4LDIwOCwyMDgsMjA4LTkzLjEzLDIwOC0yMDhhMjA3LjI1LDIwNy4yNSwwLDAsMC01OC43NS0xNDQuODEsMTU1LjM1LDE1NS4zNSwwLDAsMC0xNywyNy40QTE3Ni4xNiwxNzYuMTYsMCwwLDEsNDE3LjEsMjcyYzAsOTcuNjYtNzkuNDQsMTc3LjExLTE3Ny4wOSwxNzcuMTFhMTc1LjgxLDE3NS44MSwwLDAsMS04Ny42My0yMy40YzgyLjk0LTEwNy4zMywxNTAuNzktMzcuNzcsMTg0LjMxLTIyNi42NSw1Ljc5LTMyLjYyLDI4LTk0LjI2LDEyNi4yMy0xNjAuMThDNDcxLDMzLjQ1LDQ2NS4zNSwyMC44LDQ1NS45MywyMy4yWk0xMjUsNDA2LjRBMTc2LjY2LDE3Ni42NiwwLDAsMSw2Mi45LDI3MkM2Mi45LDE3NC4zNCwxNDIuMzUsOTQuOSwyNDAsOTQuOWExNzQsMTc0LDAsMCwxLDc2LjYzLDE3Ljc1QzI1MC42NCwxNzQuNzYsMTg5Ljc3LDI2NS41MiwxMjUsNDA2LjRaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpbnRlcmVzdFAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA0IDYuNUMxMDEuNCA2LjUgMCA3NC45IDAgMTg1LjYgMCAyNTYgMzkuNiAyOTYgNjMuNiAyOTZjOS45IDAgMTUuNi0yNy42IDE1LjYtMzUuNCAwLTkuMy0yMy43LTI5LjEtMjMuNy02Ny44IDAtODAuNCA2MS4yLTEzNy40IDE0MC40LTEzNy40IDY4LjEgMCAxMTguNSAzOC43IDExOC41IDEwOS44IDAgNTMuMS0yMS4zIDE1Mi43LTkwLjMgMTUyLjctMjQuOSAwLTQ2LjItMTgtNDYuMi00My44IDAtMzcuOCAyNi40LTc0LjQgMjYuNC0xMTMuNCAwLTY2LjItOTMuOS01NC4yLTkzLjkgMjUuOCAwIDE2LjggMi4xIDM1LjQgOS42IDUwLjctMTMuOCA1OS40LTQyIDE0Ny45LTQyIDIwOS4xIDAgMTguOSAyLjcgMzcuNSA0LjUgNTYuNCAzLjQgMy44IDEuNyAzLjQgNi45IDEuNSA1MC40LTY5IDQ4LjYtODIuNSA3MS40LTE3Mi44IDEyLjMgMjMuNCA0NC4xIDM2IDY5LjMgMzYgMTA2LjIgMCAxNTMuOS0xMDMuNSAxNTMuOS0xOTYuOEMzODQgNzEuMyAyOTguMiA2LjUgMjA0IDYuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGludGVyZXN0U3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhIMTU0LjRjOS44LTE2LjQgMjIuNC00MCAyNy40LTU5LjMgMy0xMS41IDE1LjMtNTguNCAxNS4zLTU4LjQgOCAxNS4zIDMxLjQgMjguMiA1Ni4zIDI4LjIgNzQuMSAwIDEyNy40LTY4LjEgMTI3LjQtMTUyLjcgMC04MS4xLTY2LjItMTQxLjgtMTUxLjQtMTQxLjgtMTA2IDAtMTYyLjIgNzEuMS0xNjIuMiAxNDguNiAwIDM2IDE5LjIgODAuOCA0OS44IDk1LjEgNC43IDIuMiA3LjEgMS4yIDguMi0zLjMuOC0zLjQgNS0yMC4xIDYuOC0yNy44LjYtMi41LjMtNC42LTEuNy03LTEwLjEtMTIuMy0xOC4zLTM0LjktMTguMy01NiAwLTU0LjIgNDEtMTA2LjYgMTEwLjktMTA2LjYgNjAuMyAwIDEwMi42IDQxLjEgMTAyLjYgOTkuOSAwIDY2LjQtMzMuNSAxMTIuNC03Ny4yIDExMi40LTI0LjEgMC00Mi4xLTE5LjktMzYuNC00NC40IDYuOS0yOS4yIDIwLjMtNjAuNyAyMC4zLTgxLjggMC01My03NS41LTQ1LjctNzUuNSAyNSAwIDIxLjcgNy4zIDM2LjUgNy4zIDM2LjUtMzEuNCAxMzIuOC0zNi4xIDEzNC41LTI5LjYgMTkyLjZsMi4yLjhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDM1MmMyNi41IDAgNDggMjEuNSA0OCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGludGVyZXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiAyNTZjMCAxMzctMTExIDI0OC0yNDggMjQ4LTI1LjYgMC01MC4yLTMuOS03My40LTExLjEgMTAuMS0xNi41IDI1LjItNDMuNSAzMC44LTY1IDMtMTEuNiAxNS40LTU5IDE1LjQtNTkgOC4xIDE1LjQgMzEuNyAyOC41IDU2LjggMjguNSA3NC44IDAgMTI4LjctNjguOCAxMjguNy0xNTQuMyAwLTgxLjktNjYuOS0xNDMuMi0xNTIuOS0xNDMuMi0xMDcgMC0xNjMuOSA3MS44LTE2My45IDE1MC4xIDAgMzYuNCAxOS40IDgxLjcgNTAuMyA5Ni4xIDQuNyAyLjIgNy4yIDEuMiA4LjMtMy4zLjgtMy40IDUtMjAuMyA2LjktMjguMS42LTIuNS4zLTQuNy0xLjctNy4xLTEwLjEtMTIuNS0xOC4zLTM1LjMtMTguMy01Ni42IDAtNTQuNyA0MS40LTEwNy42IDExMi0xMDcuNiA2MC45IDAgMTAzLjYgNDEuNSAxMDMuNiAxMDAuOSAwIDY3LjEtMzMuOSAxMTMuNi03OCAxMTMuNi0yNC4zIDAtNDIuNi0yMC4xLTM2LjctNDQuOCA3LTI5LjUgMjAuNS02MS4zIDIwLjUtODIuNiAwLTE5LTEwLjItMzQuOS0zMS40LTM0LjktMjQuOSAwLTQ0LjkgMjUuNy00NC45IDYwLjIgMCAyMiA3LjQgMzYuOCA3LjQgMzYuOHMtMjQuNSAxMDMuOC0yOSAxMjMuMmMtNSAyMS40LTMgNTEuNi0uOSA3MS4yQzY1LjQgNDUwLjkgMCAzNjEuMSAwIDI1NiAwIDExOSAxMTEgOCAyNDggOHMyNDggMTExIDI0OCAyNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYXlzdGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3MC45IDM3Mi4zYy0xMS4zIDE0LjItMzguOCAyNC4zLTM4LjggMjQuM0wzMjcgNDcwLjJ2LTU0LjNsMTUwLjktNTMuOGMxNy4xLTYuMSAxOS44LTE0LjggNS44LTE5LjQtMTMuOS00LjYtMzkuMS0zLjMtNTYuMiAyLjlMMzI3IDM4MS4xdi01Ni40YzIzLjItNy44IDQ3LjEtMTMuNiA3NS43LTE2LjggNDAuOS00LjUgOTAuOS42IDEzMC4yIDE1LjUgNDQuMiAxNCA0OS4yIDM0LjcgMzggNDguOXptLTIyNC40LTkyLjV2LTEzOWMwLTE2LjMtMy0zMS4zLTE4LjMtMzUuNi0xMS43LTMuOC0xOSA3LjEtMTkgMjMuNHYzNDcuOWwtOTMuOC0yOS44VjMyYzM5LjkgNy40IDk4IDI0LjkgMTI5LjIgMzUuNEM0MjQuMSA5NC43IDQ1MSAxMjguNyA0NTEgMjA1LjJjMCA3NC41LTQ2IDEwMi44LTEwNC41IDc0LjZ6TTQzLjIgNDEwLjJjLTQ1LjQtMTIuOC01My0zOS41LTMyLjMtNTQuOCAxOS4xLTE0LjIgNTEuNy0yNC45IDUxLjctMjQuOWwxMzQuNS00Ny44djU0LjVsLTk2LjggMzQuNmMtMTcuMSA2LjEtMTkuNyAxNC44LTUuOCAxOS40IDEzLjkgNC42IDM5LjEgMy4zIDU2LjItMi45bDQ2LjQtMTYuOXY0OC44Yy01MS42IDkuMy0xMDEuNCA3LjMtMTUzLjktMTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVByb2R1Y3RIdW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyNi4zIDIxOC44YzAgMjAuNS0xNi43IDM3LjItMzcuMiAzNy4yaC03MC4zdi03NC40aDcwLjNjMjAuNSAwIDM3LjIgMTYuNyAzNy4yIDM3LjJ6TTUwNCAyNTZjMCAxMzctMTExIDI0OC0yNDggMjQ4UzggMzkzIDggMjU2IDExOSA4IDI1NiA4czI0OCAxMTEgMjQ4IDI0OHptLTEyOC4xLTM3LjJjMC00Ny45LTM4LjktODYuOC04Ni44LTg2LjhIMTY5LjJ2MjQ4aDQ5LjZ2LTc0LjRoNzAuM2M0Ny45IDAgODYuOC0zOC45IDg2LjgtODYuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHVzaGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0MzIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwNyAxMTEuOWwtOTguNS05IDE0LTMzLjRjMTAuNC0yMy41LTEwLjgtNDAuNC0yOC43LTM3TDIyLjUgNzYuOWMtMTUuMSAyLjctMjYgMTguMy0yMS40IDM2LjZsMTA1LjEgMzQ4LjNjNi41IDIxLjMgMzYuNyAyNC4yIDQ3LjcgN2wzNS4zLTgwLjggMjM1LjItMjMxLjNjMTYuNC0xNi44IDQuMy00Mi45LTE3LjQtNDQuOHpNMjk3LjYgNTMuNmM1LjEtLjcgNy41IDIuNSA1LjIgNy40TDI4NiAxMDAuOSAxMDguNiA4NC42bDE4OS0zMXpNMjIuNyAxMDcuOWMtMy4xLTUuMSAxLTEwIDYuMS05LjFsMjQ4LjcgMjIuNy05Ni45IDIzMC43TDIyLjcgMTA3Ljl6TTEzNiA0NTYuNGMtMi42IDQtNy45IDMuMS05LjQtMS4yTDQzLjUgMTc5LjdsMTI3LjcgMTk3LjZjLTcgMTUtMzUuMiA3OS4xLTM1LjIgNzkuMXptMjcyLjgtMzE0LjVMMjEwLjEgMzM3LjNsODkuNy0yMTMuNyAxMDYuNCA5LjdjNCAxLjEgNS43IDUuMyAyLjYgOC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQeXRob24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM5LjggMjAwLjVjLTcuNy0zMC45LTIyLjMtNTQuMi01My40LTU0LjJoLTQwLjF2NDcuNGMwIDM2LjgtMzEuMiA2Ny44LTY2LjggNjcuOEgxNzIuN2MtMjkuMiAwLTUzLjQgMjUtNTMuNCA1NC4zdjEwMS44YzAgMjkgMjUuMiA0NiA1My40IDU0LjMgMzMuOCA5LjkgNjYuMyAxMS43IDEwNi44IDAgMjYuOS03LjggNTMuNC0yMy41IDUzLjQtNTQuM3YtNDAuN0gyMjYuMnYtMTMuNmgxNjAuMmMzMS4xIDAgNDIuNi0yMS43IDUzLjQtNTQuMiAxMS4yLTMzLjUgMTAuNy02NS43IDAtMTA4LjZ6TTI4Ni4yIDQwNGMxMS4xIDAgMjAuMSA5LjEgMjAuMSAyMC4zIDAgMTEuMy05IDIwLjQtMjAuMSAyMC40LTExIDAtMjAuMS05LjItMjAuMS0yMC40LjEtMTEuMyA5LjEtMjAuMyAyMC4xLTIwLjN6TTE2Ny44IDI0OC4xaDEwNi44YzI5LjcgMCA1My40LTI0LjUgNTMuNC01NC4zVjkxLjljMC0yOS0yNC40LTUwLjctNTMuNC01NS42LTM1LjgtNS45LTc0LjctNS42LTEwNi44LjEtNDUuMiA4LTUzLjQgMjQuNy01My40IDU1LjZ2NDAuN2gxMDYuOXYxMy42aC0xNDdjLTMxLjEgMC01OC4zIDE4LjctNjYuOCA1NC4yLTkuOCA0MC43LTEwLjIgNjYuMSAwIDEwOC42IDcuNiAzMS42IDI1LjcgNTQuMiA1Ni44IDU0LjJIMTAxdi00OC44YzAtMzUuMyAzMC41LTY2LjQgNjYuOC02Ni40em0tNi43LTE0Mi42Yy0xMS4xIDAtMjAuMS05LjEtMjAuMS0yMC4zLjEtMTEuMyA5LTIwLjQgMjAuMS0yMC40IDExIDAgMjAuMSA5LjIgMjAuMSAyMC40cy05IDIwLjMtMjAuMSAyMC4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFRcSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzMuNzU0IDQyMC40NDVjLTExLjUyNiAxLjM5My00NC44Ni01Mi43NDEtNDQuODYtNTIuNzQxIDAgMzEuMzQ1LTE2LjEzNiA3Mi4yNDctNTEuMDUxIDEwMS43ODYgMTYuODQyIDUuMTkyIDU0Ljg0MyAxOS4xNjcgNDUuODAzIDM0LjQyMS03LjMxNiAxMi4zNDMtMTI1LjUxIDcuODgxLTE1OS42MzIgNC4wMzctMzQuMTIyIDMuODQ0LTE1Mi4zMTYgOC4zMDYtMTU5LjYzMi00LjAzNy05LjA0NS0xNS4yNSAyOC45MTgtMjkuMjE0IDQ1Ljc4My0zNC40MTUtMzQuOTItMjkuNTM5LTUxLjA1OS03MC40NDUtNTEuMDU5LTEwMS43OTIgMCAwLTMzLjMzNCA1NC4xMzQtNDQuODU5IDUyLjc0MS01LjM3LS42NS0xMi40MjQtMjkuNjQ0IDkuMzQ3LTk5LjcwNCAxMC4yNjEtMzMuMDI0IDIxLjk5NS02MC40NzggNDAuMTQ0LTEwNS43NzlDNjAuNjgzIDk4LjA2MyAxMDguOTgyLjAwNiAyMjQgMGMxMTMuNzM3LjAwNiAxNjMuMTU2IDk2LjEzMyAxNjAuMjY0IDIxNC45NjMgMTguMTE4IDQ1LjIyMyAyOS45MTIgNzIuODUgNDAuMTQ0IDEwNS43NzggMjEuNzY4IDcwLjA2IDE0LjcxNiA5OS4wNTMgOS4zNDYgOTkuNzA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFRdWluc2NhcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzEzLjYgNDc0LjZoLTFhMTU4LjEgMTU4LjEgMCAwIDEgMC0zMTYuMmM5NC45IDAgMTY4LjIgODMuMSAxNTcgMTc2LjYgNCA1LjEgOC4yIDkuNiAxMS4yIDE1LjMgMTMuNC0zMC4zIDIwLjMtNjIuNCAyMC4zLTk3LjdDNTAxLjEgMTE3LjUgMzkxLjYgOCAyNTYuNSA4UzEyIDExNy41IDEyIDI1Mi42czEwOS41IDI0NC42IDI0NC41IDI0NC42YTIzNy4zNiAyMzcuMzYgMCAwIDAgNzAuNC0xMC4xYy01LjItMy41LTguOS04LjEtMTMuMy0xMi41em0tLjEtLjFsLjQuMXptNzguNC0xNjguOWE5OS4yIDk5LjIgMCAxIDAgOTkuMiA5OS4yIDk5LjE4IDk5LjE4IDAgMCAwLTk5LjItOTkuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUXVvcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQwLjUgMzg2LjdoLTI5LjNjLTEuNSAxMy41LTEwLjUgMzAuOC0zMyAzMC44LTIwLjUgMC0zNS4zLTE0LjItNDkuNS0zNS44IDQ0LjItMzQuMiA3NC43LTg3LjUgNzQuNy0xNTNDNDAzLjUgMTExLjIgMzA2LjggMzIgMjA1IDMyIDEwNS4zIDMyIDcuMyAxMTEuNyA3LjMgMjI4LjdjMCAxMzQuMSAxMzEuMyAyMjEuNiAyNDkgMTg5QzI3NiA0NTEuMyAzMDIgNDgwIDM1MS41IDQ4MGM4MS44IDAgOTAuOC03NS4zIDg5LTkzLjN6TTI5NyAzMjkuMkMyNzcuNSAzMDAgMjUzLjMgMjc3IDIwNS41IDI3N2MtMzAuNSAwLTU0LjMgMTAtNjkgMjIuOGwxMi4yIDI0LjNjNi4yLTMgMTMtNCAxOS44LTQgMzUuNSAwIDUzLjcgMzAuOCA2OS4yIDYxLjMtMTAgMy0yMC43IDQuMi0zMi43IDQuMi03NSAwLTEwNy41LTUzLTEwNy41LTE1Ni43Qzk3LjUgMTI0LjUgMTMwIDcxIDIwNSA3MWM3Ni4yIDAgMTA4LjcgNTMuNSAxMDguNyAxNTcuNy4xIDQxLjgtNS40IDc1LjYtMTYuNyAxMDAuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUlByb2plY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU4MSA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTgxIDIyNi42QzU4MSAxMTkuMSA0NTAuOSAzMiAyOTAuNSAzMlMwIDExOS4xIDAgMjI2LjZDMCAzMjIuNCAxMDMuMyA0MDIgMjM5LjQgNDE4LjFWNDgwaDk5LjF2LTYxLjVjMjQuMy0yLjcgNDcuNi03LjQgNjkuNC0xMy45TDQ0OCA0ODBoMTEybC02Ny40LTExMy43YzU0LjUtMzUuNCA4OC40LTg0LjkgODguNC0xMzkuN3ptLTQ2Ni44IDE0LjVjMC03My41IDk4LjktMTMzIDIyMC44LTEzM3MyMTEuOSA0MC43IDIxMS45IDEzM2MwIDUwLjEtMjYuNSA4NS03MC4zIDEwNi40LTIuNC0xLjYtNC43LTIuOS02LjQtMy43LTEwLjItNS4yLTI3LjgtMTAuNS0yNy44LTEwLjVzODYuNi02LjQgODYuNi05Mi43LTkwLjYtODcuOS05MC42LTg3LjloLTE5OVYzNjFjLTc0LjEtMjEuNS0xMjUuMi02Ny4xLTEyNS4yLTExOS45em0yMjUuMSAzOC4zdi01NS42YzU3LjggMCA4Ny44LTYuOCA4Ny44IDI3LjMgMCAzNi41LTM4LjIgMjguMy04Ny44IDI4LjN6bS0uOSA3Mi41SDM2NWMxMC44IDAgMTguOSAxMS43IDI0IDE5LjItMTYuMSAxLjktMzMgMi44LTUwLjYgMi45di0yMi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSYXNwYmVycnlQaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDA3IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzIgMjMyLjVsLTMuNy02LjVjLjEtNDYuNC0yMS40LTY1LjMtNDYuNS03OS43IDcuNi0yIDE1LjQtMy42IDE3LjYtMTMuMiAxMy4xLTMuMyAxNS44LTkuNCAxNy4xLTE1LjggMy40LTIuMyAxNC44LTguNyAxMy42LTE5LjcgNi40LTQuNCAxMC0xMC4xIDguMS0xOC4xIDYuOS03LjUgOC43LTEzLjcgNS44LTE5LjQgOC4zLTEwLjMgNC42LTE1LjYgMS4xLTIwLjkgNi4yLTExLjIuNy0yMy4yLTE2LjYtMjEuMi02LjktMTAuMS0yMS45LTcuOC0yNC4yLTcuOC0yLjYtMy4yLTYtNi0xNi41LTQuNy02LjgtNi4xLTE0LjQtNS0yMi4zLTIuMS05LjMtNy4zLTE1LjUtMS40LTIyLjYuOEMyNzEuNi42IDI2OSA1LjUgMjYzLjUgNy42Yy0xMi4zLTIuNi0xNi4xIDMtMjIgOC45bC02LjktLjFjLTE4LjYgMTAuOC0yNy44IDMyLjgtMzEuMSA0NC4xLTMuMy0xMS4zLTEyLjUtMzMuMy0zMS4xLTQ0LjFsLTYuOS4xYy01LjktNS45LTkuNy0xMS41LTIyLTguOS01LjYtMi04LjEtNy0xOS40LTMuNC00LjYtMS40LTguOS00LjQtMTMuOS00LjMtMi42LjEtNS41IDEtOC43IDMuNS03LjktMy0xNS41LTQtMjIuMyAyLjEtMTAuNS0xLjMtMTQgMS40LTE2LjUgNC43LTIuMyAwLTE3LjMtMi4zLTI0LjIgNy44QzIxLjIgMTYgMTUuOCAyOCAyMiAzOS4yYy0zLjUgNS40LTcuMiAxMC43IDEuMSAyMC45LTIuOSA1LjctMS4xIDExLjkgNS44IDE5LjQtMS44IDggMS44IDEzLjcgOC4xIDE4LjEtMS4yIDExIDEwLjIgMTcuNCAxMy42IDE5LjcgMS4zIDYuNCA0IDEyLjQgMTcuMSAxNS44IDIuMiA5LjUgMTAgMTEuMiAxNy42IDEzLjItMjUuMSAxNC40LTQ2LjYgMzMuMy00Ni41IDc5LjdsLTMuNyA2LjVjLTI4LjggMTcuMi01NC43IDcyLjctMTQuMiAxMTcuNyAyLjYgMTQuMSA3LjEgMjQuMiAxMSAzNS40IDUuOSA0NS4yIDQ0LjUgNjYuMyA1NC42IDY4LjggMTQuOSAxMS4yIDMwLjggMjEuOCA1Mi4yIDI5LjJDMTU5IDUwNC4yIDE4MSA1MTIgMjAzIDUxMmgxYzIyLjEgMCA0NC03LjggNjQuMi0yOC40IDIxLjUtNy40IDM3LjMtMTggNTIuMi0yOS4yIDEwLjItMi41IDQ4LjctMjMuNiA1NC42LTY4LjggMy45LTExLjIgOC40LTIxLjMgMTEtMzUuNCA0MC42LTQ1LjEgMTQuNy0xMDAuNS0xNC0xMTcuN3ptLTIyLjItOGMtMS41IDE4LjctOTguOS02NS4xLTgyLjEtNjcuOSA0NS43LTcuNSA4My42IDE5LjIgODIuMSA2Ny45em0tNDMgOTMuMWMtMjQuNSAxNS44LTU5LjggNS42LTc4LjgtMjIuOHMtMTQuNi02NC4yIDkuOS04MGMyNC41LTE1LjggNTkuOC01LjYgNzguOCAyMi44czE0LjYgNjQuMi05LjkgODB6TTIzOC45IDI5LjNjLjggNC4yIDEuOCA2LjggMi45IDcuNiA1LjQtNS44IDkuOC0xMS43IDE2LjgtMTcuMyAwIDMuMy0xLjcgNi44IDIuNSA5LjQgMy43LTUgOC44LTkuNSAxNS41LTEzLjMtMy4yIDUuNi0uNiA3LjMgMS4yIDkuNiA1LjEtNC40IDEwLTguOCAxOS40LTEyLjMtMi42IDMuMS02LjIgNi4yLTIuNCA5LjggNS4zLTMuMyAxMC42LTYuNiAyMy4xLTguOS0yLjggMy4xLTguNyA2LjMtNS4xIDkuNCA2LjYtMi41IDE0LTQuNCAyMi4xLTUuNC0zLjkgMy4yLTcuMSA2LjMtMy45IDguOCA3LjEtMi4yIDE2LjktNS4xIDI2LjQtMi42bC02IDYuMWMtLjcuOCAxNC4xLjYgMjMuOS44LTMuNiA1LTcuMiA5LjctOS4zIDE4LjIgMSAxIDUuOC40IDEwLjQgMC00LjcgOS45LTEyLjggMTIuMy0xNC43IDE2LjYgMi45IDIuMiA2LjggMS42IDExLjIuMS0zLjQgNi45LTEwLjQgMTEuNy0xNiAxNy4zIDEuNCAxIDMuOSAxLjYgOS43LjktNS4yIDUuNS0xMS40IDEwLjUtMTguOCAxNSAxLjMgMS41IDUuOCAxLjUgMTAgMS42LTYuNyA2LjUtMTUuMyA5LjktMjMuNCAxNC4yIDQgMi43IDYuOSAyLjEgMTAgMi4xLTUuNyA0LjctMTUuNCA3LjEtMjQuNCAxMCAxLjcgMi43IDMuNCAzLjQgNy4xIDQuMS05LjUgNS4zLTIzLjIgMi45LTI3IDUuNi45IDIuNyAzLjYgNC40IDYuNyA1LjgtMTUuNC45LTU3LjMtLjYtNjUuNC0zMi4zIDE1LjctMTcuMyA0NC40LTM3LjUgOTMuNy02Mi42LTM4LjQgMTIuOC03MyAzMC0xMDIgNTMuNS0zNC4zLTE1LjktMTAuOC01NS45IDUuOC03MS44em0tMzQuNCAxMTQuNmMyNC4yLS4zIDU0LjEgMTcuOCA1NCAzNC43LS4xIDE1LTIxIDI3LjEtNTMuOCAyNi45LTMyLjEtLjQtNTMuNy0xNS4yLTUzLjYtMjkuOCAwLTExLjkgMjYuMi0zMi41IDUzLjQtMzEuOHptLTEyMy0xMi44YzMuNy0uNyA1LjQtMS41IDcuMS00LjEtOS0yLjgtMTguNy01LjMtMjQuNC0xMCAzLjEgMCA2IC43IDEwLTIuMS04LjEtNC4zLTE2LjctNy43LTIzLjQtMTQuMiA0LjItLjEgOC43IDAgMTAtMS42LTcuNC00LjUtMTMuNi05LjUtMTguOC0xNSA1LjguNyA4LjMuMSA5LjctLjktNS42LTUuNi0xMi43LTEwLjQtMTYtMTcuMyA0LjMgMS41IDguMyAyIDExLjItLjEtMS45LTQuMi0xMC02LjctMTQuNy0xNi42IDQuNi40IDkuNCAxIDEwLjQgMC0yLjEtOC41LTUuOC0xMy4zLTkuMy0xOC4yIDkuOC0uMSAyNC42IDAgMjMuOS0uOGwtNi02LjFjOS41LTIuNSAxOS4zLjQgMjYuNCAyLjYgMy4yLTIuNS0uMS01LjYtMy45LTguOCA4LjEgMS4xIDE1LjQgMi45IDIyLjEgNS40IDMuNS0zLjEtMi4zLTYuMy01LjEtOS40IDEyLjUgMi4zIDE3LjggNS42IDIzLjEgOC45IDMuOC0zLjYuMi02LjctMi40LTkuOCA5LjQgMy40IDE0LjMgNy45IDE5LjQgMTIuMyAxLjctMi4zIDQuNC00IDEuMi05LjYgNi43IDMuOCAxMS44IDguMyAxNS41IDEzLjMgNC4xLTIuNiAyLjUtNi4yIDIuNS05LjQgNyA1LjYgMTEuNCAxMS41IDE2LjggMTcuMyAxLjEtLjggMi0zLjQgMi45LTcuNiAxNi42IDE1LjkgNDAuMSA1NS45IDYgNzEuOC0yOS0yMy41LTYzLjYtNDAuNy0xMDItNTMuNSA0OS4zIDI1IDc4IDQ1LjMgOTMuNyA2Mi42LTggMzEuOC01MCAzMy4yLTY1LjQgMzIuMyAzLjEtMS40IDUuOC0zLjIgNi43LTUuOC00LTIuOC0xNy42LS40LTI3LjItNS42em02MC4xIDI0LjFjMTYuOCAyLjgtODAuNiA4Ni41LTgyLjEgNjcuOS0xLjUtNDguNyAzNi41LTc1LjUgODIuMS02Ny45ek0zOC4yIDM0MmMtMjMuNy0xOC44LTMxLjMtNzMuNyAxMi42LTk4LjMgMjYuNS03IDkgMTA3LjgtMTIuNiA5OC4zem05MSA5OC4yYy0xMy4zIDcuOS00NS44IDQuNy02OC44LTI3LjktMTUuNS0yNy40LTEzLjUtNTUuMi0yLjYtNjMuNCAxNi4zLTkuOCA0MS41IDMuNCA2MC45IDI1LjYgMTYuOSAyMCAyNC42IDU1LjMgMTAuNSA2NS43em0tMjYuNC0xMTkuN2MtMjQuNS0xNS44LTI4LjktNTEuNi05LjktODBzNTQuMy0zOC42IDc4LjgtMjIuOCAyOC45IDUxLjYgOS45IDgwYy0xOS4xIDI4LjQtNTQuNCAzOC42LTc4LjggMjIuOHpNMjA1IDQ5NmMtMjkuNCAxLjItNTguMi0yMy43LTU3LjgtMzIuMy0uNC0xMi43IDM1LjgtMjIuNiA1OS4zLTIyIDIzLjctMSA1NS42IDcuNSA1NS43IDE4LjkuNSAxMS0yOC44IDM1LjktNTcuMiAzNS40em01OC45LTEyNC45Yy4yIDI5LjctMjYuMiA1My44LTU4LjggNTQtMzIuNi4yLTU5LjItMjMuOC01OS40LTUzLjR2LS42Yy0uMi0yOS43IDI2LjItNTMuOCA1OC44LTU0IDMyLjYtLjIgNTkuMiAyMy44IDU5LjQgNTMuNHYuNnptODIuMiA0Mi43Yy0yNS4zIDM0LjYtNTkuNiAzNS45LTcyLjMgMjYuMy0xMy4zLTEyLjQtMy4yLTUwLjkgMTUuMS03MiAyMC45LTIzLjMgNDMuMy0zOC41IDU4LjktMjYuNiAxMC41IDEwLjMgMTYuNyA0OS4xLTEuNyA3Mi4zem0yMi45LTczLjJjLTIxLjUgOS40LTM5LTEwNS4zLTEyLjYtOTguMyA0My45IDI0LjcgMzYuMyA3OS42IDEyLjYgOTguM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmF2ZWxyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTguMjUyLDIzNC4yMjNjLTEuMjA4LTEwLjM0LTEuNy0yMC44MjYtMy43NDYtMzFhMzEwLjMwNiwzMTAuMzA2LDAsMCwwLTkuNjIyLTM2LjYsMTg0LjA2OCwxODQuMDY4LDAsMCwwLTMwLjg3NC01Ny41LDI1MS4xNTQsMjUxLjE1NCwwLDAsMC0xOC44MTgtMjEuNjg5LDIzNy4zNjIsMjM3LjM2MiwwLDAsMC00Ny4xMTMtMzYuMTE2QTI0MC44LDI0MC44LDAsMCwwLDMzMS4zNTYsMjYuNjVjLTExLjAxOC0zLjEtMjIuMjcyLTUuNDMxLTMzLjUxNS03LjYxNS02Ljc4LTEuMzE0LTEzLjc0OS0xLjY2Ny0yMC42MjctMi40ODItLjMxNi0uMDM2LS42LS4zNTgtLjktLjU1M3EtMTYuMTQzLjAwOS0zMi4yODguMDA2Yy0yLjQxLjM4OS00LjgwOC45MjUtNy4yMzYsMS4xNWExNzkuMzMxLDE3OS4zMzEsMCwwLDAtMzQuMjU2LDcuMSwyMjEuNSwyMjEuNSwwLDAsMC0zOS43NjgsMTYuMzU1LDI4MS4zODUsMjgxLjM4NSwwLDAsMC0zOC4wOCwyNC4xNThjLTYuMTY3LDQuNjEtMTIuMjY4LDkuMzYtMTcuOTc0LDE0LjUxOEM5Ni41MzksODguNDk0LDg2LjM0LDk3LjcyLDc2Ljc4NSwxMDcuNTU1YTI0My44NzgsMjQzLjg3OCwwLDAsMC0zMy42NDgsNDMuOTUsMjA2LjQ4OCwyMDYuNDg4LDAsMCwwLTIwLjQ5NCw0NC42LDE5OC4yLDE5OC4yLDAsMCwwLTcuNjkxLDM0Ljc1OUEyMDEuMTMsMjAxLjEzLDAsMCwwLDEzLjQsMjY2LjM4NWEyOTkuNzE2LDI5OS43MTYsMCwwLDAsNC40MjUsNDAuMjQsMjI2Ljg2NSwyMjYuODY1LDAsMCwwLDE2LjczLDUzLjMsMjEwLjU0MywyMTAuNTQzLDAsMCwwLDI0LDM5LjUyOCwyMTMuNTg5LDIxMy41ODksMCwwLDAsMjYuMzU4LDI4LjQxNkEyNTEuMzEzLDI1MS4zMTMsMCwwLDAsMTI2LjcsNDU4LjQ1NWEyODcuODMxLDI4Ny44MzEsMCwwLDAsNTUuOSwyNS4yNzcsMjY5LjUsMjY5LjUsMCwwLDAsNDAuNjQxLDkuODM1YzYuMDcxLDEuMDEsMTIuMjc1LDEuMjUzLDE4LjQxMiwxLjg3M2E0LjE0OSw0LjE0OSwwLDAsMSwxLjE5LjU2aDMyLjI4OWMyLjUwNy0uMzg5LDUtLjkzNyw3LjUyNy0xLjE0MywxNi4zMzYtMS4zMzIsMzIuMTA3LTUuMzM1LDQ3LjQ4OS0xMC43MTdBMjE5Ljk5MiwyMTkuOTkyLDAsMCwwLDM3OS4xLDQ2MC4zMjJjOS43NDktNi40NDcsMTkuMzk1LTEzLjA3NywyOC43MzctMjAuMSw1Ljc4NS00LjM0OCwxMC45ODgtOS41LDE2LjMtMTQuNDU3LDMuOTY0LTMuNyw3Ljc2NC03LjU3OCwxMS41MS0xMS41YTIzMi4xNjIsMjMyLjE2MiwwLDAsMCwzMS40MjctNDEuNjM5YzkuNTQyLTE2LjA0NSwxNy4zNTUtMzIuOTA1LDIyLjMtNTAuOTI2LDIuODU5LTEwLjQxMyw0Ljk0Ny0yMS4wNDUsNy4wMTctMzEuNjUyLDEuMDMyLTUuMjc5LDEuMjUxLTEwLjcyMywxLjg3LTE2LjA4Ny4wMzYtLjMxNy4zNTgtLjYuNTUyLS45VjIzNi4wMDVBOS43NTcsOS43NTcsMCwwLDEsNDk4LjI1MiwyMzQuMjIzWm0tMTYxLjExNy0xLjE1cy0xNi41NzItMi45OC0yOC40Ny0yLjk4Yy0yNy4yLDAtMzMuNTcsMTQuOS0zMy41NywzNy4wNFYzNjAuOEgyMDEuNTgyVjE3MC4wNjJIMjc1LjF2MzEuOTMxYzguOTI0LTI2LjgyMiwyNi43NzEtMzYuMTg5LDYyLjA0LTM2LjE4OVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVhY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE4LjIgMTc3LjJjLTUuNC0xLjgtMTAuOC0zLjUtMTYuMi01LjEuOS0zLjcgMS43LTcuNCAyLjUtMTEuMSAxMi4zLTU5LjYgNC4yLTEwNy41LTIzLjEtMTIzLjMtMjYuMy0xNS4xLTY5LjIuNi0xMTIuNiAzOC40LTQuMyAzLjctOC41IDcuNi0xMi41IDExLjUtMi43LTIuNi01LjUtNS4yLTguMy03LjctNDUuNS00MC40LTkxLjEtNTcuNC0xMTguNC00MS41LTI2LjIgMTUuMi0zNCA2MC4zLTIzIDExNi43IDEuMSA1LjYgMi4zIDExLjEgMy43IDE2LjctNi40IDEuOC0xMi43IDMuOC0xOC42IDUuOUMzOC4zIDE5Ni4yIDAgMjI1LjQgMCAyNTUuNmMwIDMxLjIgNDAuOCA2Mi41IDk2LjMgODEuNSA0LjUgMS41IDkgMyAxMy42IDQuMy0xLjUgNi0yLjggMTEuOS00IDE4LTEwLjUgNTUuNS0yLjMgOTkuNSAyMy45IDExNC42IDI3IDE1LjYgNzIuNC0uNCAxMTYuNi0zOS4xIDMuNS0zLjEgNy02LjMgMTAuNS05LjcgNC40IDQuMyA5IDguNCAxMy42IDEyLjQgNDIuOCAzNi44IDg1LjEgNTEuNyAxMTEuMiAzNi42IDI3LTE1LjYgMzUuOC02Mi45IDI0LjQtMTIwLjUtLjktNC40LTEuOS04LjktMy0xMy41IDMuMi0uOSA2LjMtMS45IDkuNC0yLjkgNTcuNy0xOS4xIDk5LjUtNTAgOTkuNS04MS43IDAtMzAuMy0zOS40LTU5LjctOTMuOC03OC40ek0yODIuOSA5Mi4zYzM3LjItMzIuNCA3MS45LTQ1LjEgODcuNy0zNiAxNi45IDkuNyAyMy40IDQ4LjkgMTIuOCAxMDAuNC0uNyAzLjQtMS40IDYuNy0yLjMgMTAtMjIuMi01LTQ0LjctOC42LTY3LjMtMTAuNi0xMy0xOC42LTI3LjItMzYuNC00Mi42LTUzLjEgMy45LTMuNyA3LjctNy4yIDExLjctMTAuN3pNMTY3LjIgMzA3LjVjNS4xIDguNyAxMC4zIDE3LjQgMTUuOCAyNS45LTE1LjYtMS43LTMxLjEtNC4yLTQ2LjQtNy41IDQuNC0xNC40IDkuOS0yOS4zIDE2LjMtNDQuNSA0LjYgOC44IDkuMyAxNy41IDE0LjMgMjYuMXptLTMwLjMtMTIwLjNjMTQuNC0zLjIgMjkuNy01LjggNDUuNi03LjgtNS4zIDguMy0xMC41IDE2LjgtMTUuNCAyNS40LTQuOSA4LjUtOS43IDE3LjItMTQuMiAyNi02LjMtMTQuOS0xMS42LTI5LjUtMTYtNDMuNnptMjcuNCA2OC45YzYuNi0xMy44IDEzLjgtMjcuMyAyMS40LTQwLjZzMTUuOC0yNi4yIDI0LjQtMzguOWMxNS0xLjEgMzAuMy0xLjcgNDUuOS0xLjdzMzEgLjYgNDUuOSAxLjdjOC41IDEyLjYgMTYuNiAyNS41IDI0LjMgMzguN3MxNC45IDI2LjcgMjEuNyA0MC40Yy02LjcgMTMuOC0xMy45IDI3LjQtMjEuNiA0MC44LTcuNiAxMy4zLTE1LjcgMjYuMi0yNC4yIDM5LTE0LjkgMS4xLTMwLjQgMS42LTQ2LjEgMS42cy0zMC45LS41LTQ1LjYtMS40Yy04LjctMTIuNy0xNi45LTI1LjctMjQuNi0zOXMtMTQuOC0yNi44LTIxLjUtNDAuNnptMTgwLjYgNTEuMmM1LjEtOC44IDkuOS0xNy43IDE0LjYtMjYuNyA2LjQgMTQuNSAxMiAyOS4yIDE2LjkgNDQuMy0xNS41IDMuNS0zMS4yIDYuMi00NyA4IDUuNC04LjQgMTAuNS0xNyAxNS41LTI1LjZ6bTE0LjQtNzYuNWMtNC43LTguOC05LjUtMTcuNi0xNC41LTI2LjItNC45LTguNS0xMC0xNi45LTE1LjMtMjUuMiAxNi4xIDIgMzEuNSA0LjcgNDUuOSA4LTQuNiAxNC44LTEwIDI5LjItMTYuMSA0My40ek0yNTYuMiAxMTguM2MxMC41IDExLjQgMjAuNCAyMy40IDI5LjYgMzUuOC0xOS44LS45LTM5LjctLjktNTkuNSAwIDkuOC0xMi45IDE5LjktMjQuOSAyOS45LTM1Ljh6TTE0MC4yIDU3YzE2LjgtOS44IDU0LjEgNC4yIDkzLjQgMzkgMi41IDIuMiA1IDQuNiA3LjYgNy0xNS41IDE2LjctMjkuOCAzNC41LTQyLjkgNTMuMS0yMi42IDItNDUgNS41LTY3LjIgMTAuNC0xLjMtNS4xLTIuNC0xMC4zLTMuNS0xNS41LTkuNC00OC40LTMuMi04NC45IDEyLjYtOTR6bS0yNC41IDI2My42Yy00LjItMS4yLTguMy0yLjUtMTIuNC0zLjktMjEuMy02LjctNDUuNS0xNy4zLTYzLTMxLjItMTAuMS03LTE2LjktMTcuOC0xOC44LTI5LjkgMC0xOC4zIDMxLjYtNDEuNyA3Ny4yLTU3LjYgNS43LTIgMTEuNS0zLjggMTcuMy01LjUgNi44IDIxLjcgMTUgNDMgMjQuNSA2My42LTkuNiAyMC45LTE3LjkgNDIuNS0yNC44IDY0LjV6bTExNi42IDk4Yy0xNi41IDE1LjEtMzUuNiAyNy4xLTU2LjQgMzUuMy0xMS4xIDUuMy0yMy45IDUuOC0zNS4zIDEuMy0xNS45LTkuMi0yMi41LTQ0LjUtMTMuNS05MiAxLjEtNS42IDIuMy0xMS4yIDMuNy0xNi43IDIyLjQgNC44IDQ1IDguMSA2Ny45IDkuOCAxMy4yIDE4LjcgMjcuNyAzNi42IDQzLjIgNTMuNC0zLjIgMy4xLTYuNCA2LjEtOS42IDguOXptMjQuNS0yNC4zYy0xMC4yLTExLTIwLjQtMjMuMi0zMC4zLTM2LjMgOS42LjQgMTkuNS42IDI5LjUuNiAxMC4zIDAgMjAuNC0uMiAzMC40LS43LTkuMiAxMi43LTE5LjEgMjQuOC0yOS42IDM2LjR6bTEzMC43IDMwYy0uOSAxMi4yLTYuOSAyMy42LTE2LjUgMzEuMy0xNS45IDkuMi00OS44LTIuOC04Ni40LTM0LjItNC4yLTMuNi04LjQtNy41LTEyLjctMTEuNSAxNS4zLTE2LjkgMjkuNC0zNC44IDQyLjItNTMuNiAyMi45LTEuOSA0NS43LTUuNCA2OC4yLTEwLjUgMSA0LjEgMS45IDguMiAyLjcgMTIuMiA0LjkgMjEuNiA1LjcgNDQuMSAyLjUgNjYuM3ptMTguMi0xMDcuNWMtMi44LjktNS42IDEuOC04LjUgMi42LTctMjEuOC0xNS42LTQzLjEtMjUuNS02My44IDkuNi0yMC40IDE3LjctNDEuNCAyNC41LTYyLjkgNS4yIDEuNSAxMC4yIDMuMSAxNSA0LjcgNDYuNiAxNiA3OS4zIDM5LjggNzkuMyA1OCAwIDE5LjYtMzQuOSA0NC45LTg0LjggNjEuNHptLTE0OS43LTE1YzI1LjMgMCA0NS44LTIwLjUgNDUuOC00NS44cy0yMC41LTQ1LjgtNDUuOC00NS44Yy0yNS4zIDAtNDUuOCAyMC41LTQ1LjggNDUuOHMyMC41IDQ1LjggNDUuOCA0NS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWFjdGV1cm9wZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTAuNiAyMTEuNzRsNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjEtMi4zLTYuOC0yLjMgNi44LTcuMi4xIDUuNyA0LjN6bTYzLjcgMGw1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMi0uMS0yLjMtNi44LTIuMyA2LjgtNy4yLjEgNS43IDQuM3ptLTkxLjMgNTAuNWgtMy40Yy00LjggMC0zLjggNC0zLjggMTIuMSAwIDQuNy0yLjMgNi4xLTUuOCA2LjFzLTUuOC0xLjQtNS44LTYuMXYtMzYuNmMwLTQuNyAyLjMtNi4xIDUuOC02LjFzNS44IDEuNCA1LjggNi4xYzAgNy4yLS43IDEwLjUgMy44IDEwLjVoMy40YzQuNy0uMSAzLjgtMy45IDMuOC0xMi4zIDAtOS45LTYuNy0xNC4xLTE2LjgtMTQuMWgtLjJjLTEwLjEgMC0xNi44IDQuMi0xNi44IDE0LjFWMjc2YzAgMTAuNCA2LjcgMTQuMSAxNi44IDE0LjFoLjJjMTAuMSAwIDE2LjgtMy44IDE2LjgtMTQuMSAwLTkuODYgMS4xLTEzLjc2LTMuOC0xMy43NnptLTgwLjcgMTcuNGgtMTQuN3YtMTkuM0gxMzljMi41IDAgMy44LTEuMyAzLjgtMy44di0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44aC0xMS40di0xOC4zSDE0MmMyLjUgMCAzLjgtMS4zIDMuOC0zLjh2LTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjhoLTIxLjdjLTIuNC0uMS0zLjcgMS4zLTMuNyAzLjh2NTkuMWMwIDIuNSAxLjMgMy44IDMuOCAzLjhoMjEuOWMyLjUgMCAzLjgtMS4zIDMuOC0zLjh2LTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjh6bS00Mi0xOC41YzQuNi0yIDcuMy02IDcuMy0xMi40di0xMS45YzAtMTAuMS02LjctMTQuMS0xNi44LTE0LjFINzcuNGMtMi41IDAtMy44IDEuMy0zLjggMy44djU5LjFjMCAyLjUgMS4zIDMuOCAzLjggMy44aDMuNGMyLjUgMCAzLjgtMS4zIDMuOC0zLjh2LTIyLjloNS42bDcuNCAyMy41YTQuMSA0LjEgMCAwIDAgNC4zIDMuMmgzLjNjMi44IDAgNC0xLjggMy4yLTQuNHptLTMuOC0xNGMwIDQuOC0yLjUgNi4xLTYuMSA2LjFoLTUuOHYtMjAuOWg1LjhjMy42IDAgNi4xIDEuMyA2LjEgNi4xek0xNzYgMjI2YTMuODIgMy44MiAwIDAgMC00LjItMy40aC02LjlhMy42OCAzLjY4IDAgMCAwLTQgMy40bC0xMSA1OS4yYy0uNSAyLjcuOSA0LjEgMy40IDQuMWgzYTMuNzQgMy43NCAwIDAgMCA0LjEtMy41bDEuOC0xMS4zaDEyLjJsMS44IDExLjNhMy43NCAzLjc0IDAgMCAwIDQuMSAzLjVoMy41YzIuNiAwIDMuOS0xLjQgMy40LTQuMXptLTEyLjMgMzkuM2w0LjctMjkuNyA0LjcgMjkuN3ptODkuMyAyMC4ydi01My4yaDcuNWMyLjUgMCAzLjgtMS4zIDMuOC0zLjh2LTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjhoLTI1LjhjLTIuNSAwLTMuOCAxLjMtMy44IDMuOHYyLjFjMCAyLjUgMS4zIDMuOCAzLjggMy44aDcuM3Y1My4yYzAgMi41IDEuMyAzLjggMy44IDMuOGgzLjRjMi41LjA0IDMuOC0xLjMgMy44LTMuNzZ6bTI0OC0uOGgtMTkuNFYyNThoMTYuMWExLjg5IDEuODkgMCAwIDAgMi0ydi0uOGExLjg5IDEuODkgMCAwIDAtMi0yaC0xNi4xdi0yNS44aDE5LjFhMS44OSAxLjg5IDAgMCAwIDItMnYtLjhhMS43NyAxLjc3IDAgMCAwLTItMS45aC0yMi4yYTEuNjIgMS42MiAwIDAgMC0yIDEuOHY2M2ExLjgxIDEuODEgMCAwIDAgMiAxLjlINTAxYTEuODEgMS44MSAwIDAgMCAyLTEuOXYtLjhhMS44NCAxLjg0IDAgMCAwLTItMS45NnptLTkzLjEtNjIuOWgtLjhjLTEwLjEgMC0xNS4zIDQuNy0xNS4zIDE0LjFWMjc2YzAgOS4zIDUuMiAxNC4xIDE1LjMgMTQuMWguOGMxMC4xIDAgMTUuMy00LjggMTUuMy0xNC4xdi00MC4xYzAtOS4zNi01LjItMTQuMDYtMTUuMy0xNC4wNnptMTAuMiA1Mi40Yy0uMSA4LTMgMTEuMS0xMC41IDExLjFzLTEwLjUtMy4xLTEwLjUtMTEuMXYtMzYuNmMwLTcuOSAzLTExLjEgMTAuNS0xMS4xczEwLjUgMy4yIDEwLjUgMTEuMXptLTQ2LjUtMTQuNWM2LjEtMS42IDkuMi02LjEgOS4yLTEzLjN2LTkuN2MwLTkuNC01LjItMTQuMS0xNS4zLTE0LjFoLTEzLjdhMS44MSAxLjgxIDAgMCAwLTIgMS45djYzYTEuODEgMS44MSAwIDAgMCAyIDEuOWgxLjJhMS43NCAxLjc0IDAgMCAwIDEuOS0xLjl2LTI2LjloMTEuNmwxMC40IDI3LjJhMi4zMiAyLjMyIDAgMCAwIDIuMyAxLjVoMS41YzEuNCAwIDItMSAxLjUtMi4zem0tNi40LTMuOUgzNTV2LTI4LjVoMTAuMmM3LjUgMCAxMC41IDMuMSAxMC41IDExLjF2Ni40YzAgNy44NC0zIDExLjA0LTEwLjUgMTEuMDR6bTg1LjktMzMuMWgtMTMuN2ExLjYyIDEuNjIgMCAwIDAtMiAxLjh2NjNhMS44MSAxLjgxIDAgMCAwIDIgMS45aDEuMmExLjc0IDEuNzQgMCAwIDAgMS45LTEuOXYtMjYuMWgxMC42YzEwLjEgMCAxNS4zLTQuOCAxNS4zLTE0LjF2LTEwLjVjMC05LjQtNS4yLTE0LjEtMTUuMy0xNC4xem0xMC4yIDIyLjhjMCA3LjktMyAxMS4xLTEwLjUgMTEuMWgtMTAuMnYtMjkuMmgxMC4yYzcuNS0uMSAxMC41IDMuMSAxMC41IDExek0yNTkuNSAzMDhsLTIuMy02LjgtMi4zIDYuOC03LjEuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuM3ptMjI3LjYtMTM2LjFhMzY0LjQyIDM2NC40MiAwIDAgMC0zNS42LTExLjNjMTkuNi03OCAxMS42LTEzNC43LTIyLjMtMTUzLjlDMzk0LjctMTIuNjYgMzQzLjMgMTEgMjkxIDYxLjk0cTUuMSA0Ljk1IDEwLjIgMTAuMmM4Mi41LTgwIDExOS42LTUzLjUgMTIwLjktNTIuOCAyMi40IDEyLjcgMzYgNTUuOCAxNS41IDEzNy44YTU4Ny44MyA1ODcuODMgMCAwIDAtODQuNi0xM0MyODEuMSA0My42NCAyMTIuNCAyIDE3MC44IDIgMTQwIDIgMTI3IDIzIDEyMy4yIDI5Ljc0Yy0xOC4xIDMyLTEzLjMgODQuMi4xIDEzMy44LTcwLjUgMjAuMy0xMjAuNyA1NC4xLTEyMC4zIDk1IC41IDU5LjYgMTAzLjIgODcuOCAxMjIuMSA5Mi44LTIwLjUgODEuOS0xMC4xIDEzNS42IDIyLjMgMTUzLjkgMjggMTUuOCA3NS4xIDYgMTM4LjItNTUuMnEtNS4xLTQuOTUtMTAuMi0xMC4yYy04Mi41IDgwLTExOS43IDUzLjUtMTIwLjkgNTIuOC0yMi4zLTEyLjYtMzYtNTUuNi0xNS41LTEzNy45IDEyLjQgMi45IDQxLjggOS41IDg0LjYgMTMgNzEuOSAxMDAuNCAxNDAuNiAxNDIgMTgyLjEgMTQyIDMwLjggMCA0My44LTIxIDQ3LjYtMjcuNyAxOC0zMS45IDEzLjMtODQuMS0uMS0xMzMuOCAxNTIuMy00My44IDE1Ni4yLTEzMC4yIDMzLjktMTc2LjN6TTEzNS45IDM2Ljg0YzIuOS01LjEgMTEuOS0yMC4zIDM0LjktMjAuMyAzNi44IDAgOTguOCAzOS42IDE2My4zIDEyNi4yYTcxNCA3MTQgMCAwIDAtOTMuOS45IDU0Ny43NiA1NDcuNzYgMCAwIDEgNDIuMi01Mi40UTI3Ny4zIDg2IDI3Mi4yIDgxYTU5OC4yNSA1OTguMjUgMCAwIDAtNTAuNyA2NC4yIDU2OS42OSA1NjkuNjkgMCAwIDAtODQuNCAxNC42Yy0uMi0xLjQtMjQuMy04Mi4yLTEuMi0xMjN6bTMwNC44IDQzOC4zYy0yLjkgNS4xLTExLjggMjAuMy0zNC45IDIwLjMtMzYuNyAwLTk4LjctMzkuNC0xNjMuMy0xMjYuMmE2OTUuMzggNjk1LjM4IDAgMCAwIDkzLjktLjkgNTQ3Ljc2IDU0Ny43NiAwIDAgMS00Mi4yIDUyLjRxNS4xIDUuMjUgMTAuMiAxMC4yYTU4OC40NyA1ODguNDcgMCAwIDAgNTAuNy02NC4yYzQ3LjMtNC43IDgwLjMtMTMuNSA4NC40LTE0LjYgMjIuNyA4NC40IDQuNSAxMTcgMS4yIDEyM3ptOS4xLTEzOC42Yy0zLjYtMTEuOS03LjctMjQuMS0xMi40LTM2LjRhMTIuNjcgMTIuNjcgMCAwIDEtMTAuNy01LjdsLS4xLjFhMTkuNjEgMTkuNjEgMCAwIDEtNS40IDMuNmM1LjcgMTQuMyAxMC42IDI4LjQgMTQuNyA0Mi4yYTUzNS4zIDUzNS4zIDAgMCAxLTcyIDEzYzMuNS01LjMgMTcuMi0yNi4yIDMyLjItNTQuMmEyNC42IDI0LjYgMCAwIDEtNi0zLjJjLTEuMSAxLjItMy42IDQuMi0xMC45IDQuMi02LjIgMTEuMi0xNy40IDMwLjktMzMuOSA1NS4yYTcxMS45MSA3MTEuOTEgMCAwIDEtMTEyLjQgMWMtNy45LTExLjItMjEuNS0zMS4xLTM2LjgtNTcuOGEyMSAyMSAwIDAgMS0zLTEuNWMtMS45IDEuNi0zLjkgMy4yLTEyLjYgMy4yIDYuMyAxMS4yIDE3LjUgMzAuNyAzMy44IDU0LjZhNTQ4LjgxIDU0OC44MSAwIDAgMS03Mi4yLTExLjdxNS44NS0yMSAxNC4xLTQyLjljLTMuMiAwLTUuNC4yLTguNC0xYTE3LjU4IDE3LjU4IDAgMCAxLTYuOSAxYy00LjkgMTMuNC05LjEgMjYuNS0xMi43IDM5LjRDLTMxLjcgMjk3LTEyLjEgMjE2IDEyNi43IDE3NS42NGMzLjYgMTEuOSA3LjcgMjQuMSAxMi40IDM2LjQgMTAuNCAwIDEyLjkgMy40IDE0LjQgNS4zYTEyIDEyIDAgMCAxIDIuMy0yLjJjLTUuOC0xNC43LTEwLjktMjkuMi0xNS4yLTQzLjMgNy0xLjggMzIuNC04LjQgNzItMTMtMTUuOSAyNC4zLTI2LjcgNDMuOS0zMi44IDU1LjNhMTQuMjIgMTQuMjIgMCAwIDEgNi40IDggMjMuNDIgMjMuNDIgMCAwIDEgMTAuMi04LjRjNi41LTExLjcgMTcuOS0zMS45IDM0LjgtNTYuOWE3MTEuNzIgNzExLjcyIDAgMCAxIDExMi40LTFjMzEuNSA0NC42IDI4LjkgNDguMSA0Mi41IDY0LjVhMjEuNDIgMjEuNDIgMCAwIDEgMTAuNC03LjRjLTYuNC0xMS40LTE3LjYtMzEtMzQuMy01NS41IDQwLjQgNC4xIDY1IDEwIDcyLjIgMTEuNy00IDE0LjQtOC45IDI5LjItMTQuNiA0NC4yYTIwLjc0IDIwLjc0IDAgMCAxIDYuOCA0LjNsLjEuMWExMi43MiAxMi43MiAwIDAgMSA4LjktNS42YzQuOS0xMy40IDkuMi0yNi42IDEyLjgtMzkuNWEzNTkuNzEgMzU5LjcxIDAgMCAxIDM0LjUgMTFjMTA2LjEgMzkuOSA3NCA4Ny45IDcyLjYgOTAuNC0xOS44IDM1LjEtODAuMSA1NS4yLTEwNS43IDYyLjV6bS0xMTQuNC0xMTRoLTEuMmExLjc0IDEuNzQgMCAwIDAtMS45IDEuOXY0OS44YzAgNy45LTIuNiAxMS4xLTEwLjEgMTEuMXMtMTAuMS0zLjEtMTAuMS0xMS4xdi00OS44YTEuNjkgMS42OSAwIDAgMC0xLjktMS45SDMwOWExLjgxIDEuODEgMCAwIDAtMiAxLjl2NTEuNWMwIDkuNiA1IDE0LjEgMTUuMSAxNC4xaC40YzEwLjEgMCAxNS4xLTQuNiAxNS4xLTE0LjF2LTUxLjVhMiAyIDAgMCAwLTIuMi0xLjl6TTMyMS43IDMwOGwtMi4zLTYuOC0yLjMgNi44LTcuMS4xIDUuNyA0LjMtMi4xIDYuOCA1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zem0tMzEuMSA3LjRsLTIuMy02LjgtMi4zIDYuOC03LjEuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuM3ptNS4xLTMwLjhoLTE5LjR2LTI2LjdoMTYuMWExLjg5IDEuODkgMCAwIDAgMi0ydi0uOGExLjg5IDEuODkgMCAwIDAtMi0yaC0xNi4xdi0yNS44aDE5LjFhMS44OSAxLjg5IDAgMCAwIDItMnYtLjhhMS43NyAxLjc3IDAgMCAwLTItMS45aC0yMi4yYTEuODEgMS44MSAwIDAgMC0yIDEuOXY2M2ExLjgxIDEuODEgMCAwIDAgMiAxLjloMjIuNWExLjc3IDEuNzcgMCAwIDAgMi0xLjl2LS44YTEuODMgMS44MyAwIDAgMC0yLTIuMDZ6bS03LjQtOTkuNEwyODYgMTkybC03LjEuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlYWRtZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjguMyA0Ni41SDM4OC41Yy00OC4xIDAtODkuOSAzMy4zLTEwMC40IDgwLjMtMTAuNi00Ny01Mi4zLTgwLjMtMTAwLjQtODAuM0g0OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2MjQ1LjhjMCAyNi41IDIxLjUgNDggNDggNDhoODkuN2MxMDIuMiAwIDEzMi43IDI0LjQgMTQ3LjMgNzUgLjcgMi44IDUuMiAyLjggNiAwIDE0LjctNTAuNiA0NS4yLTc1IDE0Ny4zLTc1SDUyOGMyNi41IDAgNDgtMjEuNSA0OC00OFY5NC42YzAtMjYuNC0yMS4zLTQ3LjktNDcuNy00OC4xek0yNDIgMzExLjljMCAxLjktMS41IDMuNS0zLjUgMy41SDc4LjJjLTEuOSAwLTMuNS0xLjUtMy41LTMuNVYyODljMC0xLjkgMS41LTMuNSAzLjUtMy41aDE2MC40YzEuOSAwIDMuNSAxLjUgMy41IDMuNXYyMi45em0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41SDc4LjJjLTEuOSAwLTMuNS0xLjUtMy41LTMuNXYtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVoMTYwLjRjMS45IDAgMy41IDEuNSAzLjUgMy41VjI1MXptMC02MC45YzAgMS45LTEuNSAzLjUtMy41IDMuNUg3OC4yYy0xLjkgMC0zLjUtMS41LTMuNS0zLjV2LTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41aDE2MC40YzEuOSAwIDMuNSAxLjUgMy41IDMuNXYyMi45em0yNTkuMyAxMjEuN2MwIDEuOS0xLjUgMy41LTMuNSAzLjVIMzM3LjVjLTEuOSAwLTMuNS0xLjUtMy41LTMuNXYtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVoMTYwLjRjMS45IDAgMy41IDEuNSAzLjUgMy41djIyLjl6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVIMzM3LjVjLTEuOSAwLTMuNS0xLjUtMy41LTMuNVYyMjhjMC0xLjkgMS41LTMuNSAzLjUtMy41aDE2MC40YzEuOSAwIDMuNSAxLjUgMy41IDMuNXYyMi45em0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41SDMzNy41Yy0xLjkgMC0zLjUtMS41LTMuNS0zLjV2LTIyLjhjMC0xLjkgMS41LTMuNSAzLjUtMy41aDE2MC40YzEuOSAwIDMuNSAxLjUgMy41IDMuNVYxOTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlYmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1Ni41IDUwNEMxMTcuMiA1MDQgOSAzODcuOCAxMy4yIDI0OS45IDE2IDE3MC43IDU2LjQgOTcuNyAxMjkuNyA0OS41Yy4zIDAgMS45LS42IDEuMS44LTUuOCA1LjUtMTExLjMgMTI5LjgtMTQuMSAyMjYuNCA0OS44IDQ5LjUgOTAgMi41IDkwIDIuNSAzOC41LTUwLjEtLjYtMTI1LjktLjYtMTI1LjktMTAtMjQuOS00NS43LTQwLjEtNDUuNy00MC4xbDI4LjgtMzEuOGMyNC40IDEwLjUgNDMuMiAzOC43IDQzLjIgMzguNy44LTI5LjYtMjEuOS02MS40LTIxLjktNjEuNEwyNTUuMSA4bDQ0LjMgNTAuMWMtMjAuNSAyOC44LTIxLjkgNjIuNi0yMS45IDYyLjYgMTMuOC0yMyA0My41LTM5LjMgNDMuNS0zOS4zbDI4LjUgMzEuOGMtMjcuNCA4LjktNDUuNCAzOS45LTQ1LjQgMzkuOS0xNS44IDI4LjUtMjcuMSA4OS40LjYgMTI3LjMgMzIuNCA0NC42IDg3LjctMi44IDg3LjctMi44IDEwMi43LTkxLjktMTAuNS0yMjUtMTAuNS0yMjUtNi4xLTUuNS44LTIuOC44LTIuOCA1MC4xIDM2LjUgMTE0LjYgODQuNCAxMTYuMiAyMDQuOEM1MDAuOSA0MDAuMiAzOTkgNTA0IDI1Ni41IDUwNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVkUml2ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUzLjIgMzJIOTQuOEM0Mi40IDMyIDAgNzQuNCAwIDEyNi44djI1OC40QzAgNDM3LjYgNDIuNCA0ODAgOTQuOCA0ODBoMjU4LjRjNTIuNCAwIDk0LjgtNDIuNCA5NC44LTk0LjhWMTI2LjhjMC01Mi40LTQyLjQtOTQuOC05NC44LTk0Ljh6TTE0NC45IDIwMC45djU2LjNjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45VjE1MS45YzAtMTMuMiAxMC43LTIzLjkgMjMuOS0yMy45aDE1NC4yYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOWgtNTYuM2MtMTIuMy0uNi0yNC42IDExLjYtMjQgMjR6bTE3Ni4zIDcyaC01Ni4zYy0xMi4zLS42LTI0LjYgMTEuNi0yNCAyNHY1Ni4zYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOVYyNDcuOWMwLTEzLjIgMTAuNy0yMy45IDIzLjktMjMuOWgxNTQuMmMwIDI3LTIxLjkgNDguOS00OC45IDQ4Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZGRpdEFsaWVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0MC4zIDIwMy41Yy0xNSAwLTI4LjIgNi4yLTM3LjkgMTUuOS0zNS43LTI0LjctODMuOC00MC42LTEzNy4xLTQyLjNMMjkzIDUyLjNsODguMiAxOS44YzAgMjEuNiAxNy42IDM5LjIgMzkuMiAzOS4yIDIyIDAgMzkuNy0xOC4xIDM5LjctMzkuN3MtMTcuNi0zOS43LTM5LjctMzkuN2MtMTUuNCAwLTI4LjcgOS4zLTM1LjMgMjJsLTk3LjQtMjEuNmMtNC45LTEuMy05LjcgMi4yLTExIDcuMUwyNDYuMyAxNzdjLTUyLjkgMi4yLTEwMC41IDE4LjEtMTM2LjMgNDIuOC05LjctMTAuMS0yMy40LTE2LjMtMzguNC0xNi4zLTU1LjYgMC03My44IDc0LjYtMjIuOSAxMDAuMS0xLjggNy45LTIuNiAxNi4zLTIuNiAyNC43IDAgODMuOCA5NC40IDE1MS43IDIxMC4zIDE1MS43IDExNi40IDAgMjEwLjgtNjcuOSAyMTAuOC0xNTEuNyAwLTguNC0uOS0xNy4yLTMuMS0yNS4xIDQ5LjktMjUuNiAzMS41LTk5LjctMjMuOC05OS43ek0xMjkuNCAzMDguOWMwLTIyIDE3LjYtMzkuNyAzOS43LTM5LjcgMjEuNiAwIDM5LjIgMTcuNiAzOS4yIDM5LjcgMCAyMS42LTE3LjYgMzkuMi0zOS4yIDM5LjItMjIgLjEtMzkuNy0xNy42LTM5LjctMzkuMnptMjE0LjMgOTMuNWMtMzYuNCAzNi40LTEzOS4xIDM2LjQtMTc1LjUgMC00LTMuNS00LTkuNyAwLTEzLjcgMy41LTMuNSA5LjctMy41IDEzLjIgMCAyNy44IDI4LjUgMTIwIDI5IDE0OSAwIDMuNS0zLjUgOS43LTMuNSAxMy4yIDAgNC4xIDQgNC4xIDEwLjIuMSAxMy43em0tLjgtNTQuMmMtMjEuNiAwLTM5LjItMTcuNi0zOS4yLTM5LjIgMC0yMiAxNy42LTM5LjcgMzkuMi0zOS43IDIyIDAgMzkuNyAxNy42IDM5LjcgMzkuNy0uMSAyMS41LTE3LjcgMzkuMi0zOS43IDM5LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZGRpdFNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODMuMiAzNDUuNWMyLjcgMi43IDIuNyA2LjggMCA5LjItMjQuNSAyNC41LTkzLjggMjQuNi0xMTguNCAwLTIuNy0yLjQtMi43LTYuNSAwLTkuMiAyLjQtMi40IDYuNS0yLjQgOC45IDAgMTguNyAxOS4yIDgxIDE5LjYgMTAwLjUgMCAyLjQtMi4zIDYuNi0yLjMgOSAwem0tOTEuMy01My44YzAtMTQuOS0xMS45LTI2LjgtMjYuNS0yNi44LTE0LjkgMC0yNi44IDExLjktMjYuOCAyNi44IDAgMTQuNiAxMS45IDI2LjUgMjYuOCAyNi41IDE0LjYgMCAyNi41LTExLjkgMjYuNS0yNi41em05MC43LTI2LjhjLTE0LjYgMC0yNi41IDExLjktMjYuNSAyNi44IDAgMTQuNiAxMS45IDI2LjUgMjYuNSAyNi41IDE0LjkgMCAyNi44LTExLjkgMjYuOC0yNi41IDAtMTQuOS0xMS45LTI2LjgtMjYuOC0yNi44ek00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS05OS43IDE0MC42Yy0xMC4xIDAtMTkgNC4yLTI1LjYgMTAuNy0yNC4xLTE2LjctNTYuNS0yNy40LTkyLjUtMjguNmwxOC43LTg0LjIgNTkuNSAxMy40YzAgMTQuNiAxMS45IDI2LjUgMjYuNSAyNi41IDE0LjkgMCAyNi44LTEyLjIgMjYuOC0yNi44IDAtMTQuNi0xMS45LTI2LjgtMjYuOC0yNi44LTEwLjQgMC0xOS4zIDYuMi0yMy44IDE0LjlsLTY1LjctMTQuNmMtMy4zLS45LTYuNSAxLjUtNy40IDQuOGwtMjAuNSA5Mi44Yy0zNS43IDEuNS02Ny44IDEyLjItOTEuOSAyOC45LTYuNS02LjgtMTUuOC0xMS0yNS45LTExLTM3LjUgMC00OS44IDUwLjQtMTUuNSA2Ny41LTEuMiA1LjQtMS44IDExLTEuOCAxNi43IDAgNTYuNSA2My43IDEwMi4zIDE0MS45IDEwMi4zIDc4LjUgMCAxNDIuMi00NS44IDE0Mi4yLTEwMi4zIDAtNS43LS42LTExLjYtMi4xLTE3IDMzLjYtMTcuMiAyMS4yLTY3LjItMTYuMS02Ny4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWRkaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAxLjUgMzA1LjVjLTEzLjggMC0yNC45LTExLjEtMjQuOS0yNC42IDAtMTMuOCAxMS4xLTI0LjkgMjQuOS0yNC45IDEzLjYgMCAyNC42IDExLjEgMjQuNiAyNC45IDAgMTMuNi0xMS4xIDI0LjYtMjQuNiAyNC42ek01MDQgMjU2YzAgMTM3LTExMSAyNDgtMjQ4IDI0OFM4IDM5MyA4IDI1NiAxMTkgOCAyNTYgOHMyNDggMTExIDI0OCAyNDh6bS0xMzIuMy00MS4yYy05LjQgMC0xNy43IDMuOS0yMy44IDEwLTIyLjQtMTUuNS01Mi42LTI1LjUtODYuMS0yNi42bDE3LjQtNzguMyA1NS40IDEyLjVjMCAxMy42IDExLjEgMjQuNiAyNC42IDI0LjYgMTMuOCAwIDI0LjktMTEuMyAyNC45LTI0LjlzLTExLjEtMjQuOS0yNC45LTI0LjljLTkuNyAwLTE4IDUuOC0yMi4xIDEzLjhsLTYxLjItMTMuNmMtMy0uOC02LjEgMS40LTYuOSA0LjRsLTE5LjEgODYuNGMtMzMuMiAxLjQtNjMuMSAxMS4zLTg1LjUgMjYuOC02LjEtNi40LTE0LjctMTAuMi0yNC4xLTEwLjItMzQuOSAwLTQ2LjMgNDYuOS0xNC40IDYyLjgtMS4xIDUtMS43IDEwLjItMS43IDE1LjUgMCA1Mi42IDU5LjIgOTUuMiAxMzIgOTUuMiA3My4xIDAgMTMyLjMtNDIuNiAxMzIuMy05NS4yIDAtNS4zLS42LTEwLjgtMS45LTE1LjggMzEuMy0xNiAxOS44LTYyLjUtMTQuOS02Mi41ek0zMDIuOCAzMzFjLTE4LjIgMTguMi03Ni4xIDE3LjktOTMuNiAwLTIuMi0yLjItNi4xLTIuMi04LjMgMC0yLjUgMi41LTIuNSA2LjQgMCA4LjYgMjIuOCAyMi44IDg3LjMgMjIuOCAxMTAuMiAwIDIuNS0yLjIgMi41LTYuMSAwLTguNi0yLjItMi4yLTYuMS0yLjItOC4zIDB6bTcuNy03NWMtMTMuNiAwLTI0LjYgMTEuMS0yNC42IDI0LjkgMCAxMy42IDExLjEgMjQuNiAyNC42IDI0LjYgMTMuOCAwIDI0LjktMTEuMSAyNC45LTI0LjYgMC0xMy44LTExLTI0LjktMjQuOS0yNC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWRoYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQxLjUyIDI4NS41NmMzMy42NSAwIDgyLjM0LTYuOTQgODIuMzQtNDcgLjIyLTYuNzQuODYtMS44Mi0yMC44OC05Ni4yNC00LjYyLTE5LjE1LTguNjgtMjcuODQtNDIuMzEtNDQuNjUtMjYuMDktMTMuMzQtODIuOTItMzUuMzctOTkuNzMtMzUuMzctMTUuNjYgMC0yMC4yIDIwLjE3LTM4Ljg3IDIwLjE3LTE4IDAtMzEuMzEtMTUuMDYtNDguMTItMTUuMDYtMTYuMTQgMC0yNi42NiAxMS0zNC43OCAzMy42Mi0yNy41IDc3LjU1LTI2LjI4IDc0LjI3LTI2LjEyIDc4LjI3IDAgMjQuOCA5Ny42NCAxMDYuMTEgMjI4LjQ3IDEwNi4xMU00MjkgMjU0Ljg0YzQuNjUgMjIgNC42NSAyNC4zNSA0LjY1IDI3LjI1IDAgMzcuNjYtNDIuMzMgNTguNTYtOTggNTguNTYtMTI1Ljc0LjA4LTIzNS45MS03My42NS0yMzUuOTEtMTIyLjMzYTQ5LjU1IDQ5LjU1IDAgMCAxIDQuMDYtMTkuNzJDNTguNTYgMjAwLjg2IDAgMjA4LjkzIDAgMjYwLjYzYzAgODQuNjcgMjAwLjYzIDE4OSAzNTkuNDkgMTg5IDEyMS43OSAwIDE1Mi41MS01NS4wOCAxNTIuNTEtOTguNTggMC0zNC4yMS0yOS41OS03My4wNS04Mi45My05Ni4yNFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZW5yZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE0IDE2OS4xYzAgMTEwLjQtNjEgMjA1LjQtMTQ3LjYgMjQ3LjRDMzAgMzczLjIgOCAzMTcuNyA4IDI1Ni42IDggMTMzLjkgOTcuMSAzMi4yIDIxNCAxMi41djE1Ni42ek0yNTUgNTA0Yy00Mi45IDAtODMuMy0xMS0xMTguNS0zMC40QzE5My43IDQzNy41IDIzOS45IDM4Mi45IDI1NSAzMTljMTUuNSA2My45IDYxLjcgMTE4LjUgMTE4LjggMTU0LjdDMzM4LjcgNDkzIDI5OC4zIDUwNCAyNTUgNTA0em0xOTAuNi04Ny41QzM1OSAzNzQuNSAyOTggMjc5LjYgMjk4IDE2OS4xVjEyLjVjMTE2LjkgMTkuNyAyMDYgMTIxLjQgMjA2IDI0NC4xIDAgNjEuMS0yMiAxMTYuNi01OC40IDE1OS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZXBseWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDQ4MEgxMjhDNTcuNiA0ODAgMCA0MjIuNCAwIDM1MlYxNjBDMCA4OS42IDU3LjYgMzIgMTI4IDMyaDE5MmM3MC40IDAgMTI4IDU3LjYgMTI4IDEyOHYxOTJjMCA3MC40LTU3LjYgMTI4LTEyOCAxMjh6TTE5My40IDI3My4yYy02LjEtMi0xMS42LTMuMS0xNi40LTMuMS03LjIgMC0xMy41IDEuOS0xOC45IDUuNi01LjQgMy43LTkuNiA5LTEyLjggMTUuOGgtMS4xbC00LjItMTguM2gtMjh2MTM4LjloMzYuMXYtODkuN2MxLjUtNS40IDQuNC05LjggOC43LTEzLjIgNC4zLTMuNCA5LjgtNS4xIDE2LjItNS4xIDQuNiAwIDkuOCAxIDE1LjYgMy4xbDQuOC0zNHptMTE1LjIgMTAzLjRjLTMuMiAyLjQtNy43IDQuOC0xMy43IDcuMS02IDIuMy0xMi44IDMuNS0yMC40IDMuNS0xMi4yIDAtMjEuMS0zLTI2LjUtOC45LTUuNS01LjktOC41LTE0LjctOS0yNi40aDgzLjNjLjktNC44IDEuNi05LjQgMi4xLTEzLjkuNS00LjQuNy04LjYuNy0xMi41IDAtMTAuNy0xLjYtMTkuNy00LjctMjYuOS0zLjItNy4yLTcuMy0xMy0xMi41LTE3LjItNS4yLTQuMy0xMS4xLTcuMy0xNy44LTkuMi02LjctMS44LTEzLjUtMi44LTIwLjYtMi44LTIxLjEgMC0zNy41IDYuMS00OS4yIDE4LjNzLTE3LjUgMzAuNS0xNy41IDU1YzAgMjIuOCA1LjIgNDAuNyAxNS42IDUzLjcgMTAuNCAxMy4xIDI2LjggMTkuNiA0OS4yIDE5LjYgMTAuNyAwIDIwLjktMS41IDMwLjQtNC42IDkuNS0zLjEgMTcuMS02LjggMjIuNi0xMS4ybC0xMi0yMy42em0tMjEuOC03MC4zYzMuOCA1LjQgNS4zIDEzLjEgNC42IDIzLjFoLTUxLjdjLjktOS40IDMuNy0xNyA4LjItMjIuNiA0LjUtNS42IDExLjUtOC41IDIxLTguNSA4LjItLjEgMTQuMSAyLjYgMTcuOSA4em03OS45IDIuNWM0LjEgMy45IDkuNCA1LjggMTYuMSA1LjggNyAwIDEyLjYtMS45IDE2LjctNS44czYuMS05LjEgNi4xLTE1LjYtMi0xMS42LTYuMS0xNS40Yy00LjEtMy44LTkuNi01LjctMTYuNy01LjctNi43IDAtMTIgMS45LTE2LjEgNS43LTQuMSAzLjgtNi4xIDguOS02LjEgMTUuNHMyIDExLjcgNi4xIDE1LjZ6bTAgMTAwLjVjNC4xIDMuOSA5LjQgNS44IDE2LjEgNS44IDcgMCAxMi42LTEuOSAxNi43LTUuOHM2LjEtOS4xIDYuMS0xNS42LTItMTEuNi02LjEtMTUuNGMtNC4xLTMuOC05LjYtNS43LTE2LjctNS43LTYuNyAwLTEyIDEuOS0xNi4xIDUuNy00LjEgMy44LTYuMSA4LjktNi4xIDE1LjQgMCA2LjYgMiAxMS43IDYuMSAxNS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZXNlYXJjaGdhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnY0NDhoNDQ4VjMySDB6bTI2Mi4yIDMzNC40Yy02LjYgMy0zMy4yIDYtNTAtMTQuMi05LjItMTAuNi0yNS4zLTMzLjMtNDIuMi02My42LTguOSAwLTE0LjcgMC0yMS40LS42djQ2LjRjMCAyMy41IDYgMjEuMiAyNS44IDIzLjl2OC4xYy02LjktLjMtMjMuMS0uOC0zNS42LS44LTEzLjEgMC0yNi4xLjYtMzMuNi44di04LjFjMTUuNS0yLjkgMjItMS4zIDIyLTIzLjlWMjI1YzAtMjIuNi02LjQtMjEtMjItMjMuOVYxOTNjMjUuOCAxIDUzLjEtLjYgNzAuOS0uNiAzMS43IDAgNTUuOSAxNC40IDU1LjkgNDUuNiAwIDIxLjEtMTYuNyA0Mi4yLTM5LjIgNDcuNSAxMy42IDI0LjIgMzAgNDUuNiA0Mi4yIDU4LjkgNy4yIDcuOCAxNy4yIDE0LjcgMjcuMiAxNC43djcuM3ptMjIuOS0xMzVjLTIzLjMgMC0zMi4yLTE1LjctMzIuMi0zMi4yVjE2N2MwLTEyLjIgOC44LTMwLjQgMzQtMzAuNHMzMC40IDE3LjkgMzAuNCAxNy45bC0xMC43IDcuMnMtNS41LTEyLjUtMTkuNy0xMi41Yy03LjkgMC0xOS43IDcuMy0xOS43IDE5Ljd2MjYuOGMwIDEzLjQgNi42IDIzLjMgMTcuOSAyMy4zIDE0LjEgMCAyMS41LTEwLjkgMjEuNS0yNi44aC0xNy45di0xMC43aDMwLjRjMCAyMC41IDQuNyA0OS45LTM0IDQ5Ljl6bS0xMTYuNSA0NC43Yy05LjQgMC0xMy42LS4zLTIwLS44di02OS43YzYuNC0uNiAxNS0uNiAyMi41LS42IDIzLjMgMCAzNy4yIDEyLjIgMzcuMiAzNC41IDAgMjEuOS0xNSAzNi42LTM5LjcgMzYuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVzb2x2aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4MS4yIDI3OC4yYzQ2LTEzLjMgNDkuNi0yMy41IDQ0LTQzLjRMMzE0IDE5NS41Yy02LjEtMjAuOS0xOC40LTI4LjEtNzEuMS0xMi44TDU0LjcgMjM2LjhsMjguNiA5OC42IDE5Ny45LTU3LjJ6TTI0OC41IDhDMTMxLjQgOCAzMy4yIDg4LjcgNy4yIDE5Ny41bDIyMS45LTYzLjljMzQuOC0xMC4yIDU0LjItMTEuNyA3OS4zLTguMiAzNi4zIDYuMSA1Mi43IDI1IDYxLjQgNTUuMmwxMC43IDM3LjhjOC4yIDI4LjEgMSA1MC42LTIzLjUgNzMuNi0xOS40IDE3LjQtMzEuMiAyNC41LTYxLjQgMzMuMkwyMDMgMzUxLjhsMjIwLjQgMjcuMSA5LjcgMzQuMi00OC4xIDEzLjMtMjg2LjgtMzcuMyAyMyA4MC4yYzM2LjggMjIgODAuMyAzNC43IDEyNi4zIDM0LjcgMTM3IDAgMjQ4LjUtMTExLjQgMjQ4LjUtMjQ4LjNDNDk3IDExOS40IDM4NS41IDggMjQ4LjUgOHpNMzguMyAzODguNkwwIDI1Ni44YzAgNDguNSAxNC4zIDkzLjQgMzguMyAxMzEuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmV2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OS42NyAyNzQuODlhNjUuNTcgNjUuNTcgMCAxIDEtNjUuNTYtNjUuNTYgNjUuNjQgNjUuNjQgMCAwIDEgNjUuNTYgNjUuNTZ6bTEzOS41NS01LjA1aC0uMTNhMjA0LjY5IDIwNC42OSAwIDAgMC03NC4zMi0xNTNsLTQ1LjM4IDI2LjJhMTU3LjA3IDE1Ny4wNyAwIDAgMSA3MS44MSAxMzEuODRDMzgxLjIgMzYxLjUgMzEwLjczIDQzMiAyMjQuMTEgNDMyUzY3IDM2MS41IDY3IDI3NC44OGMwLTgxLjg4IDYzLTE0OS4yNyAxNDMtMTU2LjQzdjM5LjEybDEwOC43Ny02Mi43OUwyMTAgMzJ2MzguMzJjLTEwNi43IDcuMjUtMTkxIDk2LTE5MSAyMDQuNTcgMCAxMTEuNTkgODkuMTIgMjAyLjI5IDIwMC4wNiAyMDV2LjExaDIxMC4xNlYyNjkuODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJvY2tldGNoYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg0LjA0NiwyMjQuOGEzNC4xMTQsMzQuMTE0LDAsMSwwLDM0LjMxNywzNC4xMTNBMzQuMjE3LDM0LjIxNywwLDAsMCwyODQuMDQ2LDIyNC44Wm0tMTEwLjQ1LDBhMzQuMTE0LDM0LjExNCwwLDEsMCwzNC4zMTcsMzQuMTEzQTM0LjIxNywzNC4yMTcsMCwwLDAsMTczLjYsMjI0LjhabTIyMC45MjMsMGEzNC4xMTQsMzQuMTE0LDAsMSwwLDM0LjMxNywzNC4xMTNBMzQuMjE1LDM0LjIxNSwwLDAsMCwzOTQuNTE5LDIyNC44Wm0xNTMuODA3LTU1LjMxOWMtMTUuNTM1LTI0LjE3Mi0zNy4zMS00NS41Ny02NC42ODEtNjMuNjE4LTUyLjg4Ni0zNC44MTctMTIyLjM3NC01NC0xOTUuNjY2LTU0YTQwNS45NzUsNDA1Ljk3NSwwLDAsMC03Mi4wMzIsNi4zNTcsMjM4LjUyNCwyMzguNTI0LDAsMCwwLTQ5LjUxLTM2LjU4OEM5OS42ODQtMTEuNyw0MC44NTkuNzExLDExLjEzNSwxMS40MjFBMTQuMjkxLDE0LjI5MSwwLDAsMCw1LjU4LDM0Ljc4MkMyNi41NDIsNTYuNDU4LDYxLjIyMiw5OS4zLDUyLjcsMTM4LjI1MmMtMzMuMTQyLDMzLjktNTEuMTEyLDc0Ljc3Ni01MS4xMTIsMTE3LjMzNywwLDQzLjM3MiwxNy45Nyw4NC4yNDgsNTEuMTEyLDExOC4xNDgsOC41MjYsMzguOTU2LTI2LjE1NCw4MS44MTYtNDcuMTE2LDEwMy40OTFhMTQuMjg0LDE0LjI4NCwwLDAsMCw1LjU1NSwyMy4zNGMyOS43MjQsMTAuNzA5LDg4LjU0OSwyMy4xNDcsMTU1LjMyNC0xMC4yYTIzOC42NzksMjM4LjY3OSwwLDAsMCw0OS41MS0zNi41ODlBNDA1Ljk3Miw0MDUuOTcyLDAsMCwwLDI4OCw0NjAuMTRjNzMuMzEzLDAsMTQyLjgtMTkuMTU5LDE5NS42NjctNTMuOTc1LDI3LjM3MS0xOC4wNDksNDkuMTQ1LTM5LjQyNiw2NC42NzktNjMuNjE5LDE3LjMwOS0yNi45MjMsMjYuMDctNTUuOTE2LDI2LjA3LTg2LjEyNUM1NzQuMzk0LDIyNS40LDU2NS42MzQsMTk2LjQzLDU0OC4zMjYsMTY5LjQ4NVpNMjg0Ljk4Nyw0MDkuOWEzNDUuNjUsMzQ1LjY1LDAsMCwxLTg5LjQ0Ni0xMS41bC0yMC4xMjksMTkuMzkzYTE4NC4zNjYsMTg0LjM2NiwwLDAsMS0zNy4xMzgsMjcuNTg1LDE0NS43NjcsMTQ1Ljc2NywwLDAsMS01Mi41MjIsMTQuODdjLjk4My0xLjc3MSwxLjg4MS0zLjU2MywyLjg0Mi01LjM1NnEzMC4yNTgtNTUuNjgsMTYuMzI1LTEwMC4wNzhjLTMyLjk5Mi0yNS45NjItNTIuNzc4LTU5LjItNTIuNzc4LTk1LjQsMC04My4xLDEwNC4yNTQtMTUwLjQ2OSwyMzIuODQ2LTE1MC40NjlzMjMyLjg2Nyw2Ny4zNzMsMjMyLjg2NywxNTAuNDY5QzUxNy44NTQsMzQyLjUyNSw0MTMuNiw0MDkuOSwyODQuOTg3LDQwOS45WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSb2Nrcm1zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTE1Ny40IDQxOS41aC05MGwtMTEyLTEzMS4zYy0xNy45LTIwLjQtMy45LTU2LjEgMjYuNi01Ni4xaDc1LjNsLTg0LjYtOTkuMy04NC4zIDk4LjloLTkwTDE5My41IDY3LjJjMTQuNC0xOC40IDQxLjMtMTcuMyA1NC41IDBsMTU3LjcgMTg1LjFjMTkgMjIuOCAyIDU3LjItMjcuNiA1Ni4xLS42IDAtNzQuMi4yLTc0LjIuMmwxMDEuNSAxMTguOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUnVzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDguNTIsMjQ5Ljc1LDQ4Ni43LDIzNi4yNGMtLjE3LTItLjM0LTMuOTMtLjU1LTUuODhsMTguNzItMTcuNWE3LjM1LDcuMzUsMCwwLDAtMi40NC0xMi4yNWwtMjQtOWMtLjU0LTEuODgtMS4wOC0zLjc4LTEuNjctNS42NGwxNS0yMC44M2E3LjM1LDcuMzUsMCwwLDAtNC43OS0xMS41NGwtMjUuNDItNC4xNWMtLjktMS43My0xLjc5LTMuNDUtMi43My01LjE1bDEwLjY4LTIzLjQyYTcuMzUsNy4zNSwwLDAsMC02Ljk1LTEwLjM5bC0yNS44Mi45MXEtMS43OS0yLjIyLTMuNjEtNC40TDQzOSw4MS44NEE3LjM2LDcuMzYsMCwwLDAsNDMwLjE2LDczTDQwNSw3OC45M3EtMi4xNy0xLjgzLTQuNC0zLjYxbC45MS0yNS44MmE3LjM1LDcuMzUsMCwwLDAtMTAuMzktN0wzNjcuNyw1My4yM2MtMS43LS45NC0zLjQzLTEuODQtNS4xNS0yLjczTDM1OC40LDI1LjA4YTcuMzUsNy4zNSwwLDAsMC0xMS41NC00Ljc5TDMyNiwzNS4yNmMtMS44Ni0uNTktMy43NS0xLjEzLTUuNjQtMS42N2wtOS0yNGE3LjM1LDcuMzUsMCwwLDAtMTIuMjUtMi40NGwtMTcuNSwxOC43MmMtMS45NS0uMjEtMy45MS0uMzgtNS44OC0uNTVMMjYyLjI1LDMuNDhhNy4zNSw3LjM1LDAsMCwwLTEyLjUsMEwyMzYuMjQsMjUuM2MtMiwuMTctMy45My4zNC01Ljg4LjU1TDIxMi44Niw3LjEzYTcuMzUsNy4zNSwwLDAsMC0xMi4yNSwyLjQ0bC05LDI0Yy0xLjg5LjU1LTMuNzksMS4wOC01LjY2LDEuNjhsLTIwLjgyLTE1YTcuMzUsNy4zNSwwLDAsMC0xMS41NCw0Ljc5bC00LjE1LDI1LjQxYy0xLjczLjktMy40NSwxLjc5LTUuMTYsMi43M0wxMjAuODgsNDIuNTVhNy4zNSw3LjM1LDAsMCwwLTEwLjM5LDdsLjkyLDI1LjgxYy0xLjQ5LDEuMTktMywyLjM5LTQuNDIsMy42MUw4MS44NCw3M0E3LjM2LDcuMzYsMCwwLDAsNzMsODEuODRMNzguOTMsMTA3Yy0xLjIzLDEuNDUtMi40MywyLjkzLTMuNjIsNC40MWwtMjUuODEtLjkxYTcuNDIsNy40MiwwLDAsMC02LjM3LDMuMjYsNy4zNSw3LjM1LDAsMCwwLS41Nyw3LjEzbDEwLjY2LDIzLjQxYy0uOTQsMS43LTEuODMsMy40My0yLjczLDUuMTZMMjUuMDgsMTUzLjZhNy4zNSw3LjM1LDAsMCwwLTQuNzksMTEuNTRsMTUsMjAuODJjLS41OSwxLjg3LTEuMTMsMy43Ny0xLjY4LDUuNjZsLTI0LDlhNy4zNSw3LjM1LDAsMCwwLTIuNDQsMTIuMjVsMTguNzIsMTcuNWMtLjIxLDEuOTUtLjM4LDMuOTEtLjU1LDUuODhMMy40OCwyNDkuNzVhNy4zNSw3LjM1LDAsMCwwLDAsMTIuNUwyNS4zLDI3NS43NmMuMTcsMiwuMzQsMy45Mi41NSw1Ljg3TDcuMTMsMjk5LjEzYTcuMzUsNy4zNSwwLDAsMCwyLjQ0LDEyLjI1bDI0LDljLjU1LDEuODksMS4wOCwzLjc4LDEuNjgsNS42NWwtMTUsMjAuODNhNy4zNSw3LjM1LDAsMCwwLDQuNzksMTEuNTRsMjUuNDIsNC4xNWMuOSwxLjcyLDEuNzksMy40NSwyLjczLDUuMTRMNDIuNTYsMzkxLjEyYTcuMzUsNy4zNSwwLDAsMCwuNTcsNy4xMyw3LjEzLDcuMTMsMCwwLDAsNi4zNywzLjI2bDI1LjgzLS45MXExLjc3LDIuMjIsMy42LDQuNEw3Myw0MzAuMTZBNy4zNiw3LjM2LDAsMCwwLDgxLjg0LDQzOUwxMDcsNDMzLjA3cTIuMTgsMS44Myw0LjQxLDMuNjFsLS45MiwyNS44MmE3LjM1LDcuMzUsMCwwLDAsMTAuMzksNi45NWwyMy40My0xMC42OGMxLjY5Ljk0LDMuNDIsMS44Myw1LjE0LDIuNzNsNC4xNSwyNS40MmE3LjM0LDcuMzQsMCwwLDAsMTEuNTQsNC43OGwyMC44My0xNWMxLjg2LjYsMy43NiwxLjEzLDUuNjUsMS42OGw5LDI0YTcuMzYsNy4zNiwwLDAsMCwxMi4yNSwyLjQ0bDE3LjUtMTguNzJjMS45NS4yMSwzLjkyLjM4LDUuODguNTVsMTMuNTEsMjEuODJhNy4zNSw3LjM1LDAsMCwwLDEyLjUsMGwxMy41MS0yMS44MmMyLS4xNywzLjkzLS4zNCw1Ljg4LS41NmwxNy41LDE4LjczYTcuMzYsNy4zNiwwLDAsMCwxMi4yNS0yLjQ0bDktMjRjMS44OS0uNTUsMy43OC0xLjA4LDUuNjUtMS42OGwyMC44MiwxNWE3LjM0LDcuMzQsMCwwLDAsMTEuNTQtNC43OGw0LjE1LTI1LjQyYzEuNzItLjksMy40NS0xLjc5LDUuMTUtMi43M2wyMy40MiwxMC42OGE3LjM1LDcuMzUsMCwwLDAsMTAuMzktNi45NWwtLjkxLTI1LjgycTIuMjItMS43OSw0LjQtMy42MUw0MzAuMTYsNDM5YTcuMzYsNy4zNiwwLDAsMCw4Ljg0LTguODRMNDMzLjA3LDQwNXExLjgzLTIuMTcsMy42MS00LjRsMjUuODIuOTFhNy4yMyw3LjIzLDAsMCwwLDYuMzctMy4yNiw3LjM1LDcuMzUsMCwwLDAsLjU4LTcuMTNMNDU4Ljc3LDM2Ny43Yy45NC0xLjcsMS44My0zLjQzLDIuNzMtNS4xNWwyNS40Mi00LjE1YTcuMzUsNy4zNSwwLDAsMCw0Ljc5LTExLjU0bC0xNS0yMC44M2MuNTktMS44NywxLjEzLTMuNzYsMS42Ny01LjY1bDI0LTlhNy4zNSw3LjM1LDAsMCwwLDIuNDQtMTIuMjVsLTE4LjcyLTE3LjVjLjIxLTEuOTUuMzgtMy45MS41NS01Ljg3bDIxLjgyLTEzLjUxYTcuMzUsNy4zNSwwLDAsMCwwLTEyLjVabS0xNTEsMTI5LjA4QTEzLjkxLDEzLjkxLDAsMCwwLDM0MSwzODkuNTFsLTcuNjQsMzUuNjdBMTg3LjUxLDE4Ny41MSwwLDAsMSwxNzcsNDI0LjQ0bC03LjY0LTM1LjY2YTEzLjg3LDEzLjg3LDAsMCwwLTE2LjQ2LTEwLjY4bC0zMS41MSw2Ljc2YTE4Ny4zOCwxODcuMzgsMCwwLDEtMTYuMjYtMTkuMjFIMjU4LjNjMS43MiwwLDIuODktLjI5LDIuODktMS45MVYzMDkuNTVjMC0xLjU3LTEuMTctMS45MS0yLjg5LTEuOTFIMjEzLjQ3bC4wNS0zNC4zNUgyNjJjNC40MSwwLDIzLjY2LDEuMjgsMjkuNzksMjUuODcsMS45MSw3LjU1LDYuMTcsMzIuMTQsOS4wNiw0MCwyLjg5LDguODIsMTQuNiwyNi40NiwyNy4xLDI2LjQ2SDQwN2ExODcuMywxODcuMywwLDAsMS0xNy4zNCwyMC4wOVptMjUuNzcsMzQuNDlBMTUuMjQsMTUuMjQsMCwxLDEsMzY4LDM5OC4wOGguNDRBMTUuMjMsMTUuMjMsMCwwLDEsMzgzLjI0LDQxMy4zMlptLTIyNS42Mi0uNjhhMTUuMjQsMTUuMjQsMCwxLDEtMTUuMjUtMTUuMjVoLjQ1QTE1LjI1LDE1LjI1LDAsMCwxLDE1Ny42Miw0MTIuNjRaTTY5LjU3LDIzNC4xNWwzMi44My0xNC42YTEzLjg4LDEzLjg4LDAsMCwwLDcuMDYtMTguMzNMMTAyLjY5LDE4NmgyNi41NlYzMDUuNzNINzUuNjVBMTg3LjY1LDE4Ny42NSwwLDAsMSw2OS41NywyMzQuMTVaTTU4LjMxLDE5OC4wOWExNS4yNCwxNS4yNCwwLDAsMSwxNS4yMy0xNS4yNUg3NGExNS4yNCwxNS4yNCwwLDEsMS0xNS42NywxNS4yNFptMTU1LjE2LDI0LjQ5LjA1LTM1LjMyaDYzLjI2YzMuMjgsMCwyMy4wNywzLjc3LDIzLjA3LDE4LjYyLDAsMTIuMjktMTUuMTksMTYuNy0yNy42OCwxNi43Wk0zOTksMzA2LjcxYy05LjgsMS4xMy0yMC42My00LjEyLTIyLTEwLjA5LTUuNzgtMzIuNDktMTUuMzktMzkuNC0zMC41Ny01MS40LDE4Ljg2LTExLjk1LDM4LjQ2LTI5LjY0LDM4LjQ2LTUzLjI2LDAtMjUuNTItMTcuNDktNDEuNTktMjkuNC00OS40OC0xNi43Ni0xMS0zNS4yOC0xMy4yMy00MC4yNy0xMy4yM0gxMTYuMzJBMTg3LjQ5LDE4Ny40OSwwLDAsMSwyMjEuMjEsNzAuMDZsMjMuNDcsMjQuNmExMy44MiwxMy44MiwwLDAsMCwxOS42LjQ0bDI2LjI2LTI1YTE4Ny41MSwxODcuNTEsMCwwLDEsMTI4LjM3LDkxLjQzbC0xOCw0MC41N0ExNCwxNCwwLDAsMCw0MDgsMjIwLjQzbDM0LjU5LDE1LjMzYTE4Ny4xMiwxODcuMTIsMCwwLDEsLjQsMzIuNTRINDIzLjcxYy0xLjkxLDAtMi42OSwxLjI3LTIuNjksMy4xM3Y4LjgyQzQyMSwzMDEsNDA5LjMxLDMwNS41OCwzOTksMzA2LjcxWk0yNDAsNjAuMjFBMTUuMjQsMTUuMjQsMCwwLDEsMjU1LjIxLDQ1aC40NUExNS4yNCwxNS4yNCwwLDEsMSwyNDAsNjAuMjFaTTQzNi44NCwyMTRhMTUuMjQsMTUuMjQsMCwxLDEsMC0zMC40OGguNDRhMTUuMjQsMTUuMjQsMCwwLDEtLjQ0LDMwLjQ4WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTYWZhcmkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc0LjY5LDI3NC42OWwtMzcuMzgtMzcuMzhMMTY2LDM0NlpNMjU2LDhDMTE5LDgsOCwxMTksOCwyNTZTMTE5LDUwNCwyNTYsNTA0LDUwNCwzOTMsNTA0LDI1NiwzOTMsOCwyNTYsOFpNNDExLjg1LDE4Mi43OWwxNC43OC02LjEzQTgsOCwwLDAsMSw0MzcuMDgsMTgxaDBhOCw4LDAsMCwxLTQuMzMsMTAuNDZMNDE4LDE5Ny41N2E4LDgsMCwwLDEtMTAuNDUtNC4zM2gwQTgsOCwwLDAsMSw0MTEuODUsMTgyLjc5Wk0zMTQuNDMsOTRsNi4xMi0xNC43OEE4LDgsMCwwLDEsMzMxLDc0LjkyaDBhOCw4LDAsMCwxLDQuMzMsMTAuNDVsLTYuMTMsMTQuNzhhOCw4LDAsMCwxLTEwLjQ1LDQuMzNoMEE4LDgsMCwwLDEsMzE0LjQzLDk0Wk0yNTYsNjBoMGE4LDgsMCwwLDEsOCw4Vjg0YTgsOCwwLDAsMS04LDhoMGE4LDgsMCwwLDEtOC04VjY4QTgsOCwwLDAsMSwyNTYsNjBaTTE4MSw3NC45MmE4LDgsMCwwLDEsMTAuNDYsNC4zM0wxOTcuNTcsOTRhOCw4LDAsMSwxLTE0Ljc4LDYuMTJsLTYuMTMtMTQuNzhBOCw4LDAsMCwxLDE4MSw3NC45MlptLTYzLjU4LDQyLjQ5aDBhOCw4LDAsMCwxLDExLjMxLDBMMTQwLDEyOC43MkE4LDgsMCwwLDEsMTQwLDE0MGgwYTgsOCwwLDAsMS0xMS4zMSwwbC0xMS4zMS0xMS4zMUE4LDgsMCwwLDEsMTE3LjQxLDExNy40MVpNNjAsMjU2aDBhOCw4LDAsMCwxLDgtOEg4NGE4LDgsMCwwLDEsOCw4aDBhOCw4LDAsMCwxLTgsOEg2OEE4LDgsMCwwLDEsNjAsMjU2Wm00MC4xNSw3My4yMS0xNC43OCw2LjEzQTgsOCwwLDAsMSw3NC45MiwzMzFoMGE4LDgsMCwwLDEsNC4zMy0xMC40Nkw5NCwzMTQuNDNhOCw4LDAsMCwxLDEwLjQ1LDQuMzNoMEE4LDgsMCwwLDEsMTAwLjE1LDMyOS4yMVptNC4zMy0xMzZoMEE4LDgsMCwwLDEsOTQsMTk3LjU3bC0xNC43OC02LjEyQTgsOCwwLDAsMSw3NC45MiwxODFoMGE4LDgsMCwwLDEsMTAuNDUtNC4zM2wxNC43OCw2LjEzQTgsOCwwLDAsMSwxMDQuNDgsMTkzLjI0Wk0xOTcuNTcsNDE4bC02LjEyLDE0Ljc4YTgsOCwwLDAsMS0xNC43OS02LjEybDYuMTMtMTQuNzhBOCw4LDAsMSwxLDE5Ny41Nyw0MThaTTI2NCw0NDRhOCw4LDAsMCwxLTgsOGgwYTgsOCwwLDAsMS04LThWNDI4YTgsOCwwLDAsMSw4LThoMGE4LDgsMCwwLDEsOCw4Wm02Ny02LjkyaDBhOCw4LDAsMCwxLTEwLjQ2LTQuMzNMMzE0LjQzLDQxOGE4LDgsMCwwLDEsNC4zMy0xMC40NWgwYTgsOCwwLDAsMSwxMC40NSw0LjMzbDYuMTMsMTQuNzhBOCw4LDAsMCwxLDMzMSw0MzcuMDhabTYzLjU4LTQyLjQ5aDBhOCw4LDAsMCwxLTExLjMxLDBMMzcyLDM4My4yOEE4LDgsMCwwLDEsMzcyLDM3MmgwYTgsOCwwLDAsMSwxMS4zMSwwbDExLjMxLDExLjMxQTgsOCwwLDAsMSwzOTQuNTksMzk0LjU5Wk0yODYuMjUsMjg2LjI1LDExMC4zNCw0MDEuNjYsMjI1Ljc1LDIyNS43NSw0MDEuNjYsMTEwLjM0Wk00MzcuMDgsMzMxaDBhOCw4LDAsMCwxLTEwLjQ1LDQuMzNsLTE0Ljc4LTYuMTNhOCw4LDAsMCwxLTQuMzMtMTAuNDVoMEE4LDgsMCwwLDEsNDE4LDMxNC40M2wxNC43OCw2LjEyQTgsOCwwLDAsMSw0MzcuMDgsMzMxWk00NDQsMjY0SDQyOGE4LDgsMCwwLDEtOC04aDBhOCw4LDAsMCwxLDgtOGgxNmE4LDgsMCwwLDEsOCw4aDBBOCw4LDAsMCwxLDQ0NCwyNjRaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNhbGVzZm9yY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4Ljg5IDI0NS42NGgtMjYuMzVjLjY5LTUuMTYgMy4zMi0xNC4xMiAxMy42NC0xNC4xMiA2Ljc1IDAgMTEuOTcgMy44MiAxMi43MSAxNC4xMnptMTM2LjY2LTEzLjg4Yy0uNDcgMC0xNC4xMS0xLjc3LTE0LjExIDIwczEzLjYzIDIwIDE0LjExIDIwYzEzIDAgMTQuMTEtMTMuNTQgMTQuMTEtMjAgMC0yMS43Ni0xMy42Ni0yMC0xNC4xMS0yMHptLTI0My4yMiAyMy43NmE4LjYzIDguNjMgMCAwIDAtMy4yOSA3LjI5YzAgNC43OCAyLjA4IDYuMDUgMy4yOSA3LjA1IDQuNyAzLjcgMTUuMDcgMi4xMiAyMC45My45NXYtMTYuOTRjLTUuMzItMS4wNy0xNi43My0xLjk2LTIwLjkzIDEuNjV6TTY0MCAyMzJjMCA4Ny41OC04MCAxNTQuMzktMTY1LjM2IDEzNi40My0xOC4zNyAzMy03MC43MyA3MC43NS0xMzIuMiA0MS42My00MS4xNiA5Ni4wNS0xNzcuODkgOTIuMTgtMjEzLjgxLTUuMTdDOC45MSA0MjguNzgtNTAuMTkgMjY2LjUyIDUzLjM2IDIwNS42MSAxOC42MSAxMjYuMTggNzYgMzIgMTY3LjY3IDMyYTEyNC4yNCAxMjQuMjQgMCAwIDEgOTguNTYgNDguN2MyMC43LTIxLjQgNDkuNC0zNC44MSA4MS4xNS0zNC44MSA0Mi4zNCAwIDc5IDIzLjUyIDk4LjggNTguNTdDNTM5IDYzLjc4IDY0MCAxMzIuNjkgNjQwIDIzMnptLTUxOS41NSAzMS44YzAtMTEuNzYtMTEuNjktMTUuMTctMTcuODctMTcuMTctNS4yNy0yLjExLTEzLjQxLTMuNTEtMTMuNDEtOC45NCAwLTkuNDYgMTctNi42NiAyNS4xNy0yLjEyIDAgMCAxLjE3LjcxIDEuNjQtLjQ3LjI0LS43IDIuMzYtNi41OCAyLjU5LTcuMjlhMS4xMyAxLjEzIDAgMCAwLS43LTEuNDFjLTEyLjMzLTcuNjMtNDAuNy04LjUxLTQwLjcgMTIuNyAwIDEyLjQ2IDExLjQ5IDE1LjQ0IDE3Ljg4IDE3LjE3IDQuNzIgMS41OCAxMy4xNyAzIDEzLjE3IDguNyAwIDQtMy41MyA3LjA2LTkuMTcgNy4wNmEzMS43NiAzMS43NiAwIDAgMS0xOS02LjM1Yy0uNDctLjIzLTEuNDItLjcxLTEuNjUuNzFsLTIuNCA3LjQ3Yy0uNDcuOTQuMjMgMS4xOC4yMyAxLjQxIDEuNzUgMS40IDEwLjMgNi41OSAyMi44MiA2LjU5IDEzLjE3IDAgMjEuNC03LjA2IDIxLjQtMTguMTF6bTMyLTQyLjU4Yy0xMC4xMyAwLTE4LjY2IDMuMTctMjEuNCA1LjE4YTEgMSAwIDAgMC0uMjQgMS40MWwyLjU5IDcuMDZhMSAxIDAgMCAwIDEuMTguN2MuNjUgMCA2LjgtNCAxNi45My00IDQgMCA3LjA2LjcxIDkuMTggMi4zNiAzLjYgMi44IDMuMDYgOC4yOSAzLjA2IDEwLjU4LTQuNzktLjMtMTkuMTEtMy40NC0yOS40MSAzLjc2YTE2LjkyIDE2LjkyIDAgMCAwLTcuMzQgMTQuNTRjMCA1LjkgMS41MSAxMC40IDYuNTkgMTQuMzUgMTIuMjQgOC4xNiAzNi4yOCAyIDM4LjEgMS40MSAxLjU4LS4zMiAzLjUzLS42NiAzLjUzLTEuODh2LTMzLjg4Yy4wNC00LjYxLjMyLTIxLjY0LTIyLjc4LTIxLjY0ek0xOTkgMjAwLjI0YTEuMTEgMS4xMSAwIDAgMC0xLjE4LTEuMThIMTg4YTEuMTEgMS4xMSAwIDAgMC0xLjE3IDEuMTh2NzlhMS4xMSAxLjExIDAgMCAwIDEuMTcgMS4xOGg5Ljg4YTEuMTEgMS4xMSAwIDAgMCAxLjE4LTEuMTh6bTU1Ljc1IDI4LjkzYy0yLjEtMi4zMS02Ljc5LTcuNTMtMTcuNjUtNy41My0zLjUxIDAtMTQuMTYuMjMtMjAuNyA4Ljk0LTYuMzUgNy42My02LjU4IDE4LjExLTYuNTggMjEuNDEgMCAzLjEyLjE1IDE0LjI2IDcuMDYgMjEuMTcgMi42NCAyLjkxIDkuMDYgOC4yMyAyMi44MSA4LjIzIDEwLjgyIDAgMTYuNDctMi4zNSAxOC41OC0zLjc2LjQ3LS4yNC43MS0uNzEuMjQtMS44OGwtMi4zNS02LjgzYTEuMjYgMS4yNiAwIDAgMC0xLjQxLS43Yy0yLjU5Ljk0LTYuMzUgMi44Mi0xNS4yOSAyLjgyLTE3LjQyIDAtMTYuODUtMTQuNzQtMTYuOTQtMTYuN2gzNy4xN2ExLjIzIDEuMjMgMCAwIDAgMS4xNy0uOTRjLS4yOSAwIDIuMDctMTQuNy02LjA5LTI0LjIzem0zNi42OSA1Mi42OWMxMy4xNyAwIDIxLjQxLTcuMDYgMjEuNDEtMTguMTEgMC0xMS43Ni0xMS43LTE1LjE3LTE3Ljg4LTE3LjE3LTQuMTQtMS42Ni0xMy40MS0zLjM4LTEzLjQxLTguOTQgMC0zLjc2IDMuMjktNi4zNSA4LjQ3LTYuMzVhMzguMTEgMzguMTEgMCAwIDEgMTYuNyA0LjIzczEuMTguNzEgMS42NS0uNDdjLjIzLS43IDIuMzUtNi41OCAyLjU4LTcuMjlhMS4xMyAxLjEzIDAgMCAwLS43LTEuNDFjLTcuOTEtNC45LTE2Ljc0LTQuOTQtMjAuMjMtNC45NC0xMiAwLTIwLjQ2IDcuMjktMjAuNDYgMTcuNjQgMCAxMi40NiAxMS40OCAxNS40NCAxNy44NyAxNy4xNyA2LjExIDIgMTMuMTcgMy4yNiAxMy4xNyA4LjcgMCA0LTMuNTIgNy4wNi05LjE3IDcuMDZhMzEuOCAzMS44IDAgMCAxLTE5LTYuMzUgMSAxIDAgMCAwLTEuNjUuNzFsLTIuMzUgNy41MmMtLjQ3Ljk0LjIzIDEuMTguMjMgMS40MSAxLjcyIDEuNCAxMC4zMyA2LjU5IDIyLjc5IDYuNTl6TTM1Ny4wOSAyMjRjMC0uNzEtLjI0LTEuMTgtMS4xOC0xLjE4aC0xMS43NmMwLS4xNC45NC04Ljk0IDQuNDctMTIuNDcgNC4xNi00LjE1IDExLjc2LTEuNjQgMTItMS42NCAxLjE3LjQ3IDEuNDEgMCAxLjY0LS40N2wyLjgzLTcuNzdjLjctLjk0IDAtMS4xNy0uMjQtMS40MS01LjA5LTItMTcuMzUtMi44Ny0yNC40NiA0LjI0LTUuNDggNS40OC03IDEzLjkyLTggMTkuNTJoLTguNDdhMS4yOCAxLjI4IDAgMCAwLTEuMTcgMS4xOGwtMS40MiA3Ljc2YzAgLjcuMjQgMS4xNyAxLjE4IDEuMTdoOC4yM2MtOC41MSA0Ny45LTguNzUgNTAuMjEtMTAuMzUgNTUuNTItMS4wOCAzLjYyLTMuMjkgNi45LTUuODggNy43Ni0uMDkgMC0zLjg4IDEuNjgtOS42NC0uMjQgMCAwLS45NC0uNDctMS40MS43MS0uMjQuNzEtMi41OSA2LjgyLTIuODMgNy41M3MwIDEuNDEuNDcgMS40MWM1LjExIDIgMTMgMS43NyAxNy44OCAwIDYuMjgtMi4yOCA5LjcyLTcuODkgMTEuNTMtMTIuOTQgMi43NS03LjcxIDIuODEtOS43OSAxMS43Ni01OS43NGgxMi4yM2ExLjI5IDEuMjkgMCAwIDAgMS4xOC0xLjE4em01My4zOSAxNmMtLjU2LTEuNjgtNS4xLTE4LjExLTI1LjE3LTE4LjExLTE1LjI1IDAtMjMgMTAtMjUuMTYgMTguMTEtMSAzLTMuMTggMTQgMCAyMy41Mi4wOS4zIDQuNDEgMTguMTIgMjUuMTYgMTguMTIgMTQuOTUgMCAyMi45LTkuNjEgMjUuMTctMTguMTIgMy4yMS05LjYxIDEuMDEtMjAuNTIgMC0yMy41MnptNDUuNC0xNi43Yy01LTEuNjUtMTYuNjItMS45LTIyLjExIDUuNDF2LTQuNDdhMS4xMSAxLjExIDAgMCAwLTEuMTgtMS4xN2gtOS40YTEuMTEgMS4xMSAwIDAgMC0xLjE4IDEuMTd2NTUuMjhhMS4xMiAxLjEyIDAgMCAwIDEuMTggMS4xOGg5LjY0YTEuMTIgMS4xMiAwIDAgMCAxLjE4LTEuMTh2LTI3Ljc3YzAtMi45MS4wNS0xMS4zNyA0LjQ2LTE1LjA1IDQuOS00LjkgMTItMy4zNiAxMy40MS0zLjA2YTEuNTcgMS41NyAwIDAgMCAxLjQxLS45NCA3NCA3NCAwIDAgMCAzLjA2LTggMS4xNiAxLjE2IDAgMCAwLS40Ny0xLjQxem00Ni44MSA1NC4xbC0yLjEyLTcuMjljLS40Ny0xLjE4LTEuNDEtLjcxLTEuNDEtLjcxLTQuMjMgMS44Mi0xMC4xNSAxLjg5LTExLjI5IDEuODktNC42NCAwLTE3LjE3LTEuMTMtMTcuMTctMTkuNzYgMC02LjIzIDEuODUtMTkuNzYgMTYuNDctMTkuNzZhMzQuODUgMzQuODUgMCAwIDEgMTEuNTIgMS42NXMuOTQuNDcgMS4xOC0uNzFjLjk0LTIuNTkgMS42NC00LjQ3IDIuNTktNy41My4yMy0uOTQtLjQ3LTEuMTctLjcxLTEuMTctMTEuNTktMy44Ny0yMi4zNC0yLjUzLTI3Ljc2IDAtMS41OS43NC0xNi4yMyA2LjQ5LTE2LjIzIDI3LjUyIDAgMi45LS41OCAzMC4xMSAyOC45NCAzMC4xMWE0NC40NSA0NC40NSAwIDAgMCAxNS41Mi0yLjgzIDEuMyAxLjMgMCAwIDAgLjQ3LTEuNDJ6bTUzLjg3LTM5LjUyYy0uOC0zLTUuMzctMTYuMjMtMjIuMzUtMTYuMjMtMTYgMC0yMy41MiAxMC4xMS0yNS42NCAxOC41OWEzOC41OCAzOC41OCAwIDAgMC0xLjY1IDExLjc2YzAgMjUuODcgMTguODQgMjkuNCAyOS44OCAyOS40IDEwLjgyIDAgMTYuNDYtMi4zNSAxOC41OC0zLjc2LjQ3LS4yNC43MS0uNzEuMjQtMS44OGwtMi4zNi02LjgzYTEuMjYgMS4yNiAwIDAgMC0xLjQxLS43Yy0yLjU5Ljk0LTYuMzUgMi44Mi0xNS4yOSAyLjgyLTE3LjQyIDAtMTYuODUtMTQuNzQtMTYuOTMtMTYuN2gzNy4xNmExLjI1IDEuMjUgMCAwIDAgMS4xOC0uOTRjLS4yNC0uMDEuOTQtNy4wNy0xLjQxLTE1LjU0em0tMjMuMjktNi4zNWMtMTAuMzMgMC0xMyA5LTEzLjY0IDE0LjEySDU0NmMtLjg4LTExLjkyLTcuNjItMTQuMTMtMTIuNzMtMTQuMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNhc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzAxLjg0IDM3OC45MmMtLjMuNi0uNiAxLjA4IDAgMHptMjQ5LjEzLTg3YTEzMS4xNiAxMzEuMTYgMCAwIDAtNTggMTMuNWMtNS45LTExLjktMTItMjIuMy0xMy0zMC4xLTEuMi05LjEtMi41LTE0LjUtMS4xLTI1LjNzNy43LTI2LjEgNy42LTI3LjItMS40LTYuNi0xNC4zLTYuNy0yNCAyLjUtMjUuMjkgNS45YTEyMi44MyAxMjIuODMgMCAwIDAtNS4zIDE5LjFjLTIuMyAxMS43LTI1Ljc5IDUzLjUtMzkuMDkgNzUuMy00LjQtOC41LTguMS0xNi04LjktMjItMS4yLTkuMS0yLjUtMTQuNS0xLjEtMjUuM3M3LjctMjYuMSA3LjYtMjcuMi0xLjQtNi42LTE0LjI5LTYuNy0yNCAyLjUtMjUuMyA1LjktMi43IDExLjQtNS4zIDE5LjEtMzMuODkgNzcuMy00Mi4wOCA5NS40Yy00LjIgOS4yLTcuOCAxNi42LTEwLjQgMjEuNi0uNC44LS43IDEuMy0uOSAxLjcuMy0uNS41LTEgLjUtLjgtMi4yIDQuMy0zLjUgNi43LTMuNSA2Ljd2LjFjLTEuNyAzLjItMy42IDYuMS00LjUgNi4xLS42IDAtMS45LTguNC4zLTE5LjkgNC43LTI0LjIgMTUuOC02MS44IDE1LjctNjMuMS0uMS0uNyAyLjEtNy4yLTcuMy0xMC43LTkuMS0zLjMtMTIuNCAyLjItMTMuMiAyLjJzLTEuNCAyLTEuNCAyIDEwLjEtNDIuNC0xOS4zOS00Mi40Yy0xOC40IDAtNDQgMjAuMi01Ni41OCAzOC41LTcuOSA0LjMtMjUgMTMuNi00MyAyMy41LTYuOSAzLjgtMTQgNy43LTIwLjcgMTEuNC0uNS0uNS0uOS0xLTEuNC0xLjUtMzUuNzktMzguMi0xMDEuODctNjUuMi05OS4wNy0xMTYuNSAxLTE4LjcgNy41LTY3LjggMTI3LjA3LTEyNy40IDk4LTQ4LjggMTc2LjM1LTM1LjQgMTg5Ljg0LTUuNiAxOS40IDQyLjUtNDEuODkgMTIxLjYtMTQzLjY2IDEzMy0zOC43OSA0LjMtNTkuMTgtMTAuNy02NC4yOC0xNi4zLTUuMy01LjktNi4xLTYuMi04LjEtNS4xLTMuMyAxLjgtMS4yIDcgMCAxMC4xIDMgNy45IDE1LjUgMjEuOSAzNi43OSAyOC45IDE4LjcgNi4xIDY0LjE4IDkuNSAxMTkuMTctMTEuOCA2MS43OC0yMy44IDEwOS44Ny05MC4xIDk1Ljc3LTE0NS42QzM4Ni41MiAxOC4zMiAyOTMtLjE4IDIwNC41NyAzMS4yMmMtNTIuNjkgMTguNy0xMDkuNjcgNDguMS0xNTAuNjYgODYuNC00OC42OSA0NS42LTU2LjQ4IDg1LjMtNTMuMjggMTAxLjkgMTEuMzkgNTguOSA5Mi41NyA5Ny4zIDEyNS4wNiAxMjUuNy0xLjYuOS0zLjEgMS43LTQuNSAyLjUtMTYuMjkgOC4xLTc4LjE4IDQwLjUtOTMuNjcgNzQuNy0xNy41IDM4LjggMi45IDY2LjYgMTYuMjkgNzAuNCA0MS43OSAxMS42IDg0LjU4LTkuMyAxMDcuNTctNDMuNnMyMC4yLTc5LjEgOS42LTk5LjVjLS4xLS4zLS4zLS41LS40LS44IDQuMi0yLjUgOC41LTUgMTIuOC03LjUgOC4yOS00LjkgMTYuMzktOS40IDIzLjQ5LTEzLjMtNCAxMC44LTYuOSAyMy44LTguNCA0Mi42LTEuOCAyMiA3LjMgNTAuNSAxOS4xIDYxLjcgNS4yIDQuOSAxMS40OSA1IDE1LjM5IDUgMTMuOCAwIDIwLTExLjQgMjYuODktMjUgOC41LTE2LjYgMTYtMzUuOSAxNi0zNS45cy05LjQgNTIuMiAxNi4zIDUyLjJjOS4zOSAwIDE4Ljc5LTEyLjEgMjMtMTguM3YuMXMuMi0uNC43LTEuMmMxLTEuNSAxLjUtMi40IDEuNS0yLjR2LS4zYzMuOC02LjUgMTIuMS0yMS40IDI0LjU5LTQ2IDE2LjItMzEuOCAzMS42OS03MS41IDMxLjY5LTcxLjVhMjAxLjI0IDIwMS4yNCAwIDAgMCA2LjIgMjUuOGMyLjggOS41IDguNyAxOS45IDEzLjQgMzAtMy44IDUuMi02LjEgOC4yLTYuMSA4LjJhLjMxLjMxIDAgMCAwIC4xLjJjLTMgNC02LjQgOC4zLTkuOSAxMi41LTEyLjc5IDE1LjItMjggMzIuNi0zMCAzNy42LTIuNCA1LjktMS44IDEwLjMgMi44IDEzLjcgMy40IDIuNiA5LjQgMyAxNS42OSAyLjUgMTEuNS0uOCAxOS42LTMuNiAyMy41LTUuNGE4Mi4yIDgyLjIgMCAwIDAgMjAuMTktMTAuNmMxMi41LTkuMiAyMC4xLTIyLjQgMTkuNC0zOS44LS40LTkuNi0zLjUtMTkuMi03LjMtMjguMiAxLjEtMS42IDIuMy0zLjMgMy40LTVDNDM0LjggMzAxLjcyIDQ1MC4xIDI3MCA0NTAuMSAyNzBhMjAxLjI0IDIwMS4yNCAwIDAgMCA2LjIgMjUuOGMyLjQgOC4xIDcuMDkgMTcgMTEuMzkgMjUuNy0xOC41OSAxNS4xLTMwLjA5IDMyLjYtMzQuMDkgNDQuMS03LjQgMjEuMy0xLjYgMzAuOSA5LjMgMzMuMSA0LjkgMSAxMS45LTEuMyAxNy4xLTMuNWE3OS40NiA3OS40NiAwIDAgMCAyMS41OS0xMS4xYzEyLjUtOS4yIDI0LjU5LTIyLjEgMjMuNzktMzkuNi0uMy03LjktMi41LTE1LjgtNS40LTIzLjQgMTUuNy02LjYgMzYuMDktMTAuMiA2Mi4wOS03LjIgNTUuNjggNi41IDY2LjU4IDQxLjMgNjQuNDggNTUuOHMtMTMuOCAyMi42LTE3LjcgMjUtNS4xIDMuMy00LjggNS4xYy41IDIuNiAyLjMgMi41IDUuNiAxLjkgNC42LS44IDI5LjE5LTExLjggMzAuMjktMzguNyAxLjYtMzQtMzEuMDktNzEuNC04OS03MS4xem0tNDI5LjE4IDE0NC43Yy0xOC4zOSAyMC4xLTQ0LjE5IDI3LjctNTUuMjggMjEuM0M1NC42MSA0NTEgNTkuMzEgNDIxLjQyIDgyIDQwMGMxMy44LTEzIDMxLjU5LTI1IDQzLjM5LTMyLjQgMi43LTEuNiA2LjYtNCAxMS40LTYuOS44LS41IDEuMi0uNyAxLjItLjcuOS0uNiAxLjktMS4xIDIuOS0xLjcgOC4yOSAzMC40LjMgNTcuMi0xOS4xIDc4LjN6bTEzNC4zNi05MS40Yy02LjQgMTUuNy0xOS44OSA1NS43LTI4LjA5IDUzLjYtNy0xLjgtMTEuMy0zMi4zLTEuNC02Mi4zIDUtMTUuMSAxNS42LTMzLjEgMjEuOS00MC4xIDEwLjA5LTExLjMgMjEuMTktMTQuOSAyMy43OS0xMC40IDMuNSA1LjktMTIuMiA0OS40LTE2LjIgNTkuMnptMTExIDUzYy0yLjcgMS40LTUuMiAyLjMtNi40IDEuNi0uOS0uNSAxLjEtMi40IDEuMS0yLjRzMTMuOS0xNC45IDE5LjQtMjEuN2MzLjItNCA2LjktOC43IDEwLjg5LTEzLjkgMCAuNS4xIDEgLjEgMS42LS4xMyAxNy45LTE3LjMyIDMwLTI1LjEyIDM0Ljh6bTg1LjU4LTE5LjVjLTItMS40LTEuNy02LjEgNS0yMC43IDIuNi01LjcgOC41OS0xNS4zIDE5LTI0LjVhMzYuMTggMzYuMTggMCAwIDEgMS45IDEwLjhjLS4xIDIyLjUtMTYuMiAzMC45LTI1Ljg5IDM0LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNjaGxpeCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTAuNSAxNTcuN2wtNTQuMi00Ni4xIDczLjQtMzkgNzguMyA0NC4yLTk3LjUgNDAuOXpNMTkyIDEyMi4xbDQ1LjctMjguMiAzNC43IDM0LjYtNTUuNCAyOS0yNS0zNS40em0tNjUuMSA2LjZsMzEuOS0yMi4xTDE3NiAxMzVsLTM2LjcgMjIuNS0xMi40LTI4Ljh6bS0yMy4zIDg4LjJsLTguOC0zNC44IDI5LjYtMTguMyAxMy4xIDM1LjMtMzMuOSAxNy44em0tMjEuMi04My43bDIzLjktMTguMSA4LjkgMjQtMjYuNyAxOC4zLTYuMS0yNC4yek01OSAyMDYuNWwtMy42LTI4LjQgMjIuMy0xNS41IDYuMSAyOC43TDU5IDIwNi41em0tMzAuNiAxNi42bDIwLjgtMTIuOCAzLjMgMzMuNC0yMi45IDEyLTEuMi0zMi42ek0xLjQgMjY4bDE5LjItMTAuMi40IDM4LjItMjEgOC44TDEuNCAyNjh6bTU5LjEgNTkuM2wtMjguMyA4LjMtMS42LTQ2LjggMjUuMS0xMC43IDQuOCA0OS4yek05OSAyNjMuMmwtMzEuMSAxMy01LjItNDAuOEw5MC4xIDIyMWw4LjkgNDIuMnpNMTIzLjIgMzc3bC00MS42IDUuOS04LjEtNjMuNSAzNS4yLTEwLjggMTQuNSA2OC40em0yOC41LTEzOS45bDIxLjIgNTcuMS00Ni4yIDEzLjYtMTMuNy01NC4xIDM4LjctMTYuNnptODUuNyAyMzAuNWwtNzAuOS0zLjMtMjQuMy05NS44IDU1LjItOC42IDQwIDEwNy43em0tODQuOS0yNzkuN2w0Mi4yLTIyLjQgMjggNDUuOS01MC44IDIxLjMtMTkuNC00NC44em00MSA5NC45bDYxLjMtMTguNyA1Mi44IDg2LjYtNzkuOCAxMS4zLTM0LjMtNzkuMnptNTEuNC04NS42bDY3LjMtMjguOCA2NS41IDY1LjQtODguNiAyNi4yLTQ0LjItNjIuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2NyaWJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyLjMgMjUyLjdjLTE2LjEtMTktMjQuNy00NS45LTI0LjgtNzkuOSAwLTEwMC40IDc1LjItMTUzLjEgMTY3LjItMTUzLjEgOTguNi0xLjYgMTU2LjggNDkgMTg0LjMgNzAuNmwtNTAuNSA3Mi4xLTM3LjMtMjQuNiAyNi45LTM4LjZjLTM2LjUtMjQtNzkuNC0zNi41LTEyMy0zNS44LTUwLjctLjgtMTExLjcgMjcuMi0xMTEuNyA3Ni4yIDAgMTguNyAxMS4yIDIwLjcgMjguNiAxNS42IDIzLjMtNS4zIDQxLjkuNiA1NS44IDE0IDI2LjQgMjQuMyAyMy4yIDY3LjYtLjcgOTEuOS0yOS4yIDI5LjUtODUuMiAyNy4zLTExNC44LTguNHptMzE3LjcgNS45Yy0xNS41LTE4LjgtMzguOS0yOS40LTYzLjItMjguNi0zOC4xLTItNzEuMSAyOC03MC41IDY3LjItLjcgMTYuOCA2IDMzIDE4LjQgNDQuMyAxNC4xIDEzLjkgMzMgMTkuNyA1Ni4zIDE0LjQgMTcuNC01LjEgMjguNi0zLjEgMjguNiAxNS42IDAgNC4zLS41IDguNS0xLjQgMTIuNy0xNi43IDQwLjktNTkuNSA2NC40LTEyMS40IDY0LjQtNTEuOS4yLTEwMi40LTE2LjQtMTQ0LjEtNDcuM2wzMy43LTM5LjQtMzUuNi0yNy40TDAgNDA2LjNsMTUuNCAxMy44YzUyLjUgNDYuOCAxMjAuNCA3Mi41IDE5MC43IDcyLjIgNTEuNCAwIDk0LjQtMTAuNSAxMzMuNi00NC4xIDU3LjEtNTEuNCA1NC4yLTE0OS4yIDIwLjMtMTg5LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNlYXJjaGVuZ2luIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyMC42IDEzMC4zbC02Ny4yIDI4LjJWNDMuMkw5OC43IDIzMy41bDU0LjctMjQuMnYxMzAuM2w2Ny4yLTIwOS4zem0tODMuMi05Ni43bC0xLjMgNC43LTE1LjIgNTIuOUM4MC42IDEwNi43IDUyIDE0NS44IDUyIDE5MS41YzAgNTIuMyAzNC4zIDk1LjkgODMuNCAxMDUuNXY1My42QzU3LjUgMzQwLjEgMCAyNzIuNCAwIDE5MS42YzAtODAuNSA1OS44LTE0Ny4yIDEzNy40LTE1OHptMzExLjQgNDQ3LjJjLTExLjIgMTEuMi0yMy4xIDEyLjMtMjguNiAxMC41LTUuNC0xLjgtMjcuMS0xOS45LTYwLjQtNDQuNC0zMy4zLTI0LjYtMzMuNi0zNS43LTQzLTU2LjctOS40LTIwLjktMzAuNC00Mi42LTU3LjUtNTIuNGwtOS43LTE0LjdjLTI0LjcgMTYuOS01MyAyNi45LTgxLjMgMjguN2wyLjEtNi42IDE1LjktNDkuNWM0Ni41LTExLjkgODAuOS01NCA4MC45LTEwNC4yIDAtNTQuNS0zOC40LTEwMi4xLTk2LTEwNy4xVjMyLjNDMjU0LjQgMzcuNCAzMjAgMTA2LjggMzIwIDE5MS42YzAgMzMuNi0xMS4yIDY0LjctMjkgOTAuNGwxNC42IDkuNmM5LjggMjcuMSAzMS41IDQ4IDUyLjQgNTcuNHMzMi4yIDkuNyA1Ni44IDQzYzI0LjYgMzMuMiA0Mi43IDU0LjkgNDQuNSA2MC4zcy43IDE3LjMtMTAuNSAyOC41em0tOS45LTE3LjljMC00LjQtMy42LTgtOC04cy04IDMuNi04IDggMy42IDggOCA4IDgtMy42IDgtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2VsbGNhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUzLjQgMzJIOTQuN0M0Mi42IDMyIDAgNzQuNiAwIDEyNi42djI1OC43QzAgNDM3LjQgNDIuNiA0ODAgOTQuNyA0ODBoMjU4LjdjNTIuMSAwIDk0LjctNDIuNiA5NC43LTk0LjZWMTI2LjZjMC01Mi00Mi42LTk0LjYtOTQuNy05NC42em0tNTAgMzE2LjRjLTI3LjkgNDguMi04OS45IDY0LjktMTM4LjIgMzcuMi0yMi45IDM5LjgtNTQuOSA4LjYtNDIuMy0xMy4ybDE1LjctMjcuMmM1LjktMTAuMyAxOS4yLTEzLjkgMjkuNS03LjkgMTguNiAxMC44LS4xLS4xIDE4LjUgMTAuNyAyNy42IDE1LjkgNjMuNCA2LjMgNzkuNC0yMS4zIDE1LjktMjcuNiA2LjMtNjMuNC0yMS4zLTc5LjQtMTcuOC0xMC4yLS42LS40LTE4LjYtMTAuNi0yNC42LTE0LjItMy40LTUxLjkgMjEuNi0zNy41IDE4LjYgMTAuOC0uMS0uMSAxOC41IDEwLjcgNDguNCAyOCA2NS4xIDkwLjMgMzcuMiAxMzguNXptMjEuOC0yMDguOGMtMTcgMjkuNS0xNi4zIDI4LjgtMTkgMzEuNS02LjUgNi41LTE2LjMgOC43LTI2LjUgMy42LTE4LjYtMTAuOC4xLjEtMTguNS0xMC43LTI3LjYtMTUuOS02My40LTYuMy03OS40IDIxLjNzLTYuMyA2My40IDIxLjMgNzkuNGMwIDAgMTguNSAxMC42IDE4LjYgMTAuNiAyNC42IDE0LjIgMy40IDUxLjktMjEuNiAzNy41LTE4LjYtMTAuOC4xLjEtMTguNS0xMC43LTQ4LjItMjcuOC02NC45LTkwLjEtMzcuMS0xMzguNCAyNy45LTQ4LjIgODkuOS02NC45IDEzOC4yLTM3LjJsNC44LTguNGMxNC4zLTI0LjkgNTItMy4zIDM3LjcgMjEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2VsbHN5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUzOS43MSAyMzcuMzA4YzMuMDY0LTEyLjI1NyA0LjI5LTI0LjgyMSA0LjI5LTM3LjM4NEM1NDQgMTA3LjM4MiA0NjguNjE4IDMyIDM3Ni4wNzYgMzJjLTc3LjIyIDAtMTQ0LjYzNCA1My4wMTItMTYzLjAyIDEyNy43ODEtMTUuMzIyLTEzLjE3Ni0zNC45MzQtMjAuNTMtNTUuMTU3LTIwLjUzLTQ2LjI3MSAwLTgzLjk2MiAzNy42OS04My45NjIgODMuOTYxIDAgNy4zNTQuOTIgMTUuMDE1IDMuMDY1IDIyLjM2OS00Mi45IDIwLjIyNS03MC43ODUgNjMuNzM4LTcwLjc4NSAxMTEuMjM0QzYuMjE2IDQyNC44NDMgNjEuNjggNDgwIDEyOS40MDEgNDgwaDM4MS4xOThjNjcuNzIgMCAxMjMuMTg0LTU1LjE1NyAxMjMuMTg0LTEyMy4xODQuMDAxLTU2LjM4NC0zOC45MTYtMTA2LjAyNS05NC4wNzMtMTE5LjUwOHpNMTk5Ljg4IDQwMS41NTRjMCA4LjI3NC03LjA0OCAxNS4zMjEtMTUuMzIxIDE1LjMyMUgxNTMuNjFjLTguMjc0IDAtMTUuMzIxLTcuMDQ4LTE1LjMyMS0xNS4zMjFWMjkwLjYyNmMwLTguMjczIDcuMDQ4LTE1LjMyMSAxNS4zMjEtMTUuMzIxaDMwLjk0OWM4LjI3NCAwIDE1LjMyMSA3LjA0OCAxNS4zMjEgMTUuMzIxdjExMC45Mjh6bTg5LjQ3NyAwYzAgOC4yNzQtNy4wNDggMTUuMzIxLTE1LjMyMiAxNS4zMjFoLTMwLjk0OWMtOC4yNzQgMC0xNS4zMjEtNy4wNDgtMTUuMzIxLTE1LjMyMVYyNzAuMDk2YzAtOC4yNzQgNy4wNDgtMTUuMzIxIDE1LjMyMS0xNS4zMjFoMzAuOTQ5YzguMjc0IDAgMTUuMzIyIDcuMDQ4IDE1LjMyMiAxNS4zMjF2MTMxLjQ1OHptODkuNDc3IDBjMCA4LjI3NC03LjA0NyAxNS4zMjEtMTUuMzIxIDE1LjMyMWgtMzAuOTQ5Yy04LjI3NCAwLTE1LjMyMi03LjA0OC0xNS4zMjItMTUuMzIxVjIzOC44NGMwLTguMjc0IDcuMDQ4LTE1LjMyMSAxNS4zMjItMTUuMzIxaDMwLjk0OWM4LjI3NCAwIDE1LjMyMSA3LjA0OCAxNS4zMjEgMTUuMzIxdjE2Mi43MTR6bTg3LjAyNyAwYzAgOC4yNzQtNy4wNDggMTUuMzIxLTE1LjMyMiAxNS4zMjFoLTI4LjQ5N2MtOC4yNzQgMC0xNS4zMjEtNy4wNDgtMTUuMzIxLTE1LjMyMVYxNzYuOTQxYzAtOC41NzkgNy4wNDctMTUuNjI4IDE1LjMyMS0xNS42MjhoMjguNDk3YzguMjc0IDAgMTUuMzIyIDcuMDQ4IDE1LjMyMiAxNS42Mjh2MjI0LjYxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2VydmljZXN0YWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTg4IDIxNmM4MS43IDEwLjIgMjczLjcgMTAyLjMgMzA0IDIzMkgwYzk5LjUtOC4xIDE4NC41LTEzNyA4OC0yMzJ6bTMyLTE1MmMzMi4zIDM1LjYgNDcuNyA4My45IDQ2LjQgMTMzLjZDMjQ5LjMgMjMxLjMgMzczLjcgMzIxLjMgNDAwIDQ0OGg5NkM0NTUuMyAyMzEuOSAyMjIuOCA3OS41IDEyMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hpcnRzaW5idWxrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwMCA0MTAuM2wzMC42IDEzLjQgNC40LTkuOS0zMC42LTEzLjR6bTM5LjQgMTcuNWwzMC42IDEzLjQgNC40LTkuOS0zMC42LTEzLjR6bTE3Mi4xLTE0bDQuNCA5LjkgMzAuNi0xMy40LTQuNC05Ljl6TTE3OS4xIDQ0NWwzMC4zIDEzLjcgNC40LTkuOS0zMC4zLTEzLjR6TTYwLjQgMzkyLjhMOTEgNDA2LjJsNC40LTkuNi0zMC42LTEzLjd6bTIxMS40IDM4LjVsNC40IDkuOSAzMC42LTEzLjQtNC40LTkuOXptLTM5LjMgMTcuNWw0LjQgOS45IDMwLjYtMTMuNy00LjQtOS42em0xMTguNC01Mi4ybDQuNCA5LjYgMzAuNi0xMy40LTQuNC05Ljl6TTE3MCA0Ni42aC0zMy41djEwLjVIMTcwem0tNDcuMiAwSDg5LjJ2MTAuNWgzMy41em0tNDcuMyAwSDQyLjN2MTAuNWgzMy4zem0xNDEuNSAwaC0zMy4ydjEwLjVIMjE3em05NC41IDBIMjc4djEwLjVoMzMuNXptNDcuMyAwaC0zMy41djEwLjVoMzMuNXptLTk0LjYgMEgyMzF2MTAuNWgzMy4yem0xNDEuNSAwaC0zMy4zdjEwLjVoMzMuM3pNNTIuOCAzNTEuMUg0MnYzMy41aDEwLjh6bTcwLTIxNS45SDg5LjJ2MTAuNWgzMy41em0tNzAgMTAuNmgyMi44di0xMC41SDQydjMzLjVoMTAuOHptMTY4LjkgMjI4LjZjNTAuNSAwIDkxLjMtNDAuOCA5MS4zLTkxLjMgMC01MC4yLTQwLjgtOTEuMy05MS4zLTkxLjMtNTAuMiAwLTkxLjMgNDEuMS05MS4zIDkxLjMgMCA1MC41IDQxLjEgOTEuMyA5MS4zIDkxLjN6bS00OC4yLTExMS4xYzAtMjUuNCAyOS41LTMxLjggNDkuNi0zMS44IDE2LjkgMCAyOS4yIDUuOCA0NC4zIDEybC04LjggMTYuOWgtLjljLTYuNC05LjktMjQuOC0xMy4xLTM1LjYtMTMuMS05IDAtMjkuOCAxLjgtMjkuOCAxNC45IDAgMjEuNiA3OC41LTEwLjIgNzguNSAzNy45IDAgMjUuNC0zMS41IDMxLjItNTEgMzEuMi0xOC4xIDAtMzIuNC0yLjktNDcuMi0xMi4ybDktMTguNGguOWM2LjEgMTIuMiAyMy42IDE0LjkgMzUuOSAxNC45IDguNyAwIDMyLjctMS4yIDMyLjctMTQuMyAwLTI2LjEtNzcuNiA2LjMtNzcuNi0zOHpNNTIuOCAxNzguNEg0MlYyMTJoMTAuOHptMzQyLjQgMjA2LjJINDA2di0zMy41aC0xMC44ek01Mi44IDMwNy45SDQydjMzLjVoMTAuOHpNMCAzLjd2NDA2bDIyMS43IDk4LjZMNDQ4IDQwOS43VjMuN3ptNDE4LjggMzg3LjFMMjIyIDQ3Ni41IDI5LjIgMzkwLjhWMTIwLjdoMzg5Ljd2MjcwLjF6bTAtMjk5LjNIMjkuMlYzMi45aDM4OS43djU4LjZ6bS0zNjYgMTMwLjFINDJ2MzMuNWgxMC44em0wIDQzLjJINDJ2MzMuNWgxMC44ek0xNzAgMTM1LjJoLTMzLjV2MTAuNUgxNzB6bTIyNS4yIDE2My4xSDQwNnYtMzMuNWgtMTAuOHptMC00My4ySDQwNnYtMzMuNWgtMTAuOHpNMjE3IDEzNS4yaC0zMy4ydjEwLjVIMjE3ek0zOTUuMiAyMTJINDA2di0zMy41aC0xMC44em0wIDEyOS41SDQwNlYzMDhoLTEwLjh6bS0xMzEtMjA2LjNIMjMxdjEwLjVoMzMuMnptNDcuMyAwSDI3OHYxMC41aDMzLjV6bTgzLjcgMzMuNkg0MDZ2LTMzLjVoLTMzLjV2MTAuNWgyMi44em0tMzYuNC0zMy42aC0zMy41djEwLjVoMzMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hvcGlmeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODguMzIsMTA0LjFhNC42Niw0LjY2LDAsMCwwLTQuNC00Yy0yLDAtMzcuMjMtLjgtMzcuMjMtLjhzLTIxLjYxLTIwLjgyLTI5LjYyLTI4LjgzVjUwMy4yTDQ0Mi43Niw0NzJTMzg4LjcyLDEwNi41LDM4OC4zMiwxMDQuMVpNMjg4LjY1LDcwLjQ3YTExNi42NywxMTYuNjcsMCwwLDAtNy4yMS0xNy42MUMyNzEsMzIuODUsMjU1LjQyLDIyLDIzNywyMmExNSwxNSwwLDAsMC00LC40Yy0uNC0uOC0xLjItMS4yLTEuNi0yQzIyMy40LDExLjYzLDIxMyw3LjYzLDIwMC41OCw4Yy0yNCwuOC00OCwxOC02Ny4yNSw0OC44My0xMy42MSwyMS42Mi0yNCw0OC44NC0yNi44Miw3MC4wNi0yNy42Miw4LjQtNDYuODMsMTQuNDEtNDcuMjMsMTQuODEtMTQsNC40LTE0LjQxLDQuOC0xNiwxOC0xLjIsMTAtMzgsMjkxLjgyLTM4LDI5MS44MkwzMDcuODYsNTA0VjY1LjY3YTQxLjY2LDQxLjY2LDAsMCwwLTQuNC40UzI5Ny44Niw2Ny42NywyODguNjUsNzAuNDdaTTIzMy40MSw4Ny42OWMtMTYsNC44LTMzLjYzLDEwLjQtNTAuODQsMTUuNjEsNC44LTE4LjgyLDE0LjQxLTM3LjYzLDI1LjYyLTUwLDQuNC00LjQsMTAuNDEtOS42MSwxNy4yMS0xMi44MUMyMzIuMjEsNTQuODYsMjMzLjgxLDc0LjQ4LDIzMy40MSw4Ny42OVpNMjAwLjU4LDI0LjQ0QTI3LjQ5LDI3LjQ5LDAsMCwxLDIxNSwyOGMtNi40LDMuMi0xMi44MSw4LjQxLTE4LjgxLDE0LjQxLTE1LjIxLDE2LjQyLTI2LjgyLDQyLTMxLjYyLDY2LjQ1LTE0LjQyLDQuNDEtMjguODMsOC44MS00MiwxMi44MUMxMzEuMzMsODMuMjgsMTYzLjc1LDI1LjI0LDIwMC41OCwyNC40NFpNMTU0LjE1LDI0NC42MWMxLjYsMjUuNjEsNjkuMjUsMzEuMjIsNzMuMjUsOTEuNjYsMi44LDQ3LjY0LTI1LjIyLDgwLjA2LTY1LjY1LDgyLjQ3LTQ4LjgzLDMuMi03NS42NS0yNS42Mi03NS42NS0yNS42MmwxMC40LTQ0czI2LjgyLDIwLjQyLDQ4LjQ0LDE4LjgyYzE0LS44LDE5LjIyLTEyLjQxLDE4LjgxLTIwLjQyLTItMzMuNjItNTcuMjQtMzEuNjItNjAuODQtODYuODYtMy4yLTQ2LjQ0LDI3LjIyLTkzLjI3LDk0LjQ3LTk3LjY4LDI2LTEuNiwzOS4yMyw0LjgxLDM5LjIzLDQuODFMMjIxLjQsMjI1LjM5cy0xNy4yMS04LTM3LjYzLTYuNEMxNTQuMTUsMjIxLDE1My43NSwyMzkuOCwxNTQuMTUsMjQ0LjYxWk0yNDkuNDIsODIuODhjMC0xMi0xLjYtMjkuMjItNy4yMS00My42MywxOC40MiwzLjYsMjcuMjIsMjQsMzEuMjMsMzYuNDNRMjYyLjYzLDc4LjY4LDI0OS40Miw4Mi44OFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hvcHdhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAzLjUgNDU1LjQxQTI0Ni4xNyAyNDYuMTcgMCAwIDEgMjU2IDUwNEMxMTguODEgNTA0IDggMzkzIDggMjU2IDggMTE4LjgxIDExOSA4IDI1NiA4YTI0Ny4zOSAyNDcuMzkgMCAwIDEgMTY1LjcgNjMuNSAzLjU3IDMuNTcgMCAwIDEtMi44NiA2LjE4QTQxOC42MiA0MTguNjIgMCAwIDAgMzYyLjEzIDc0Yy0xMjkuMzYgMC0yMjIuNCA1My40Ny0yMjIuNCAxNTUuMzUgMCAxMDkgOTIuMTMgMTQ1Ljg4IDE3Ni44MyAxNzguNzMgMzMuNjQgMTMgNjUuNCAyNS4zNiA4NyA0MS41OWEzLjU4IDMuNTggMCAwIDEgMCA1Ljcyek01MDMgMjMzLjA5YTMuNjQgMy42NCAwIDAgMC0xLjI3LTIuNDRjLTUxLjc2LTQzLTkzLjYyLTYwLjQ4LTE0NC40OC02MC40OC04NC4xMyAwLTgwLjI1IDUyLjE3LTgwLjI1IDUzLjYzIDAgNDIuNiA1Mi4wNiA2MiAxMTIuMzQgODQuNDkgMzEuMDcgMTEuNTkgNjMuMTkgMjMuNTcgOTIuNjggMzkuOTNhMy41NyAzLjU3IDAgMCAwIDUtMS44MkEyNDkgMjQ5IDAgMCAwIDUwMyAyMzMuMDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpbXBseWJ1aWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MS4yIDY0aC0xMDZjLTE0LjUgMC0yNi42IDExLjgtMjYuNiAyNi4zdjM5LjZIMTYzLjNWOTAuM2MwLTE0LjUtMTItMjYuMy0yNi42LTI2LjNoLTEwNkMxNi4xIDY0IDQuMyA3NS44IDQuMyA5MC4zdjMzMS40YzAgMTQuNSAxMS44IDI2LjMgMjYuNiAyNi4zaDQ1MC40YzE0LjggMCAyNi42LTExLjggMjYuNi0yNi4zVjkwLjNjLS4yLTE0LjUtMTItMjYuMy0yNi43LTI2LjN6TTE0OS44IDM1NS44Yy0zNi42IDAtNjYuNC0yOS43LTY2LjQtNjYuNCAwLTM2LjkgMjkuNy02Ni42IDY2LjQtNjYuNiAzNi45IDAgNjYuNiAyOS43IDY2LjYgNjYuNiAwIDM2LjctMjkuNyA2Ni40LTY2LjYgNjYuNHptMjEyLjQgMGMtMzYuOSAwLTY2LjYtMjkuNy02Ni42LTY2LjYgMC0zNi42IDI5LjctNjYuNCA2Ni42LTY2LjQgMzYuNiAwIDY2LjQgMjkuNyA2Ni40IDY2LjQgMCAzNi45LTI5LjggNjYuNi02Ni40IDY2LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpc3RyaXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDQ0OUwzMDEuMiAzMDAuMmMyMC0yNy45IDMxLjktNjIuMiAzMS45LTk5LjIgMC05My4xLTc0LjctMTY4LjktMTY2LjUtMTY4LjlDNzQuNyAzMiAwIDEwNy44IDAgMjAwLjlzNzQuNyAxNjguOSAxNjYuNSAxNjguOWMzOS44IDAgNzYuMy0xNC4yIDEwNS0zNy45bDE0NiAxNDguMSAzMC41LTMxek0xNjYuNSAzMzAuOGMtNzAuNiAwLTEyOC4xLTU4LjMtMTI4LjEtMTI5LjlTOTUuOSA3MSAxNjYuNSA3MXMxMjguMSA1OC4zIDEyOC4xIDEyOS45LTU3LjQgMTI5LjktMTI4LjEgMTI5Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpdGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMmw2OS43MSAxMTguNzUtNTguODYtMTEuNTIgNjkuODQgOTEuMDNhMTQ2Ljc0MSAxNDYuNzQxIDAgMCAwIDAgNTEuNDVsLTY5Ljg0IDkxLjAzIDU4Ljg2LTExLjUyTDAgNDgwbDExOC43NS02OS43MS0xMS41MiA1OC44NiA5MS4wMy02OS44NGMxNy4wMiAzLjA0IDM0LjQ3IDMuMDQgNTEuNDggMGw5MS4wMyA2OS44NC0xMS41Mi01OC44Nkw0NDggNDgwbC02OS43MS0xMTguNzggNTguODYgMTEuNTItNjkuODQtOTEuMDNjMy4wMy0xNy4wMSAzLjA0LTM0LjQ0IDAtNTEuNDVsNjkuODQtOTEuMDMtNTguODYgMTEuNTJMNDQ4IDMybC0xMTguNzUgNjkuNzEgMTEuNTItNTguOS05MS4wNiA2OS44N2MtOC41LTEuNTItMTcuMS0yLjI5LTI1LjcxLTIuMjlzLTE3LjIxLjc4LTI1LjcxIDIuMjlsLTkxLjA2LTY5Ljg3IDExLjUyIDU4LjlMMCAzMnptMjI0IDk5Ljc4YzMxLjggMCA2My42IDEyLjEyIDg3Ljg1IDM2LjM3IDQ4LjUgNDguNSA0OC40OSAxMjcuMjEgMCAxNzUuN3MtMTI3LjIgNDguNDYtMTc1LjctLjAzYy00OC41LTQ4LjUtNDguNDktMTI3LjIxIDAtMTc1LjcgMjQuMjQtMjQuMjUgNTYuMDUtMzYuMzQgODcuODUtMzYuMzR6bTAgMzYuNjZjLTIyLjQyIDAtNDQuODMgOC41Mi02MS45MiAyNS42MS0zNC4xOCAzNC4xOC0zNC4xOSA4OS42OCAwIDEyMy44N3M4OS42NSAzNC4xOCAxMjMuODQgMGMzNC4xOC0zNC4xOCAzNC4xOS04OS42OCAwLTEyMy44Ny0xNy4wOS0xNy4wOS0zOS41LTI1LjYxLTYxLjkyLTI1LjYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTa2V0Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcuNSAxNjIuMkw5IDE4Ny4xaDkwLjVsNi45LTEzMC43LTc4LjkgMTA1Ljh6TTM5Ni4zIDQ1LjdMMjY3LjcgMzJsMTM1LjcgMTQ3LjItNy4xLTEzMy41ek0xMTIuMiAyMTguM2wtMTEuMi0yMkg5LjlMMjM0LjggNDU4em0yLTMxLjJoMjg0bC04MS41LTg4LjVMMjU2LjMgMzN6bTI5Ny4zIDkuMUwyNzcuNiA0NThsMjI0LjgtMjYxLjdoLTkwLjl6TTQxNS40IDY5TDQwNiA1Ni40bC45IDE3LjMgNi4xIDExMy40aDkwLjN6TTExMy41IDkzLjVsLTQuNiA4NS42TDI0NC43IDMyIDExNi4xIDQ1Ljd6bTI4Ny43IDEwMi43aC0yOTBsNDIuNCA4Mi45TDI1Ni4zIDQ4MGwxNDQuOS0yODMuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2t5YXRsYXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQwIDMyOS4zYzAgNjUuOS01Mi41IDExNC40LTExNy41IDExNC40LTE2NS45IDAtMTk2LjYtMjQ5LjctMzU5LjctMjQ5LjctMTQ2LjkgMC0xNDcuMSAyMTIuMiA1LjYgMjEyLjIgNDIuNSAwIDkwLjktMTcuOCAxMjUuMy00Mi41IDUuNi00LjEgMTYuOS0xNi4zIDIyLjgtMTYuM3MxMC45IDUgMTAuOSAxMC45YzAgNy44LTEzLjEgMTkuMS0xOC43IDI0LjEtNDAuOSAzNS42LTEwMC4zIDYxLjItMTU0LjcgNjEuMi04My40LjEtMTU0LTU5LTE1NC0xNDQuOXM2Ny41LTE0OS4xIDE1Mi44LTE0OS4xYzE4NS4zIDAgMjIyLjUgMjQ1LjkgMzYxLjkgMjQ1LjkgOTkuOSAwIDk0LjgtMTM5LjcgMy40LTEzOS43LTE3LjUgMC0zNSAxMS42LTQ2LjkgMTEuNi04LjQgMC0xNS45LTcuMi0xNS45LTE1LjYgMC0xMS42IDUuMy0yMy43IDUuMy0zNi4zIDAtNjYuNi01MC45LTExNC43LTExNi45LTExNC43LTUzLjEgMC04MCAzNi45LTg4LjggMzYuOS02LjIgMC0xMS4yLTUtMTEuMi0xMS4yIDAtNS42IDQuMS0xMC4zIDcuOC0xNC40IDI1LjMtMjguOCA2NC43LTQzLjcgMTAyLjgtNDMuNyA3OS40IDAgMTM5LjEgNTguNCAxMzkuMSAxMzcuOCAwIDYuOS0uMyAxMy43LTEuMiAyMC42IDExLjktMy4xIDI0LjEtNC43IDM1LjktNC43IDYwLjcgMCAxMTEuOSA0NS4zIDExMS45IDEwNy4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTa3lwZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjQuNyAyOTkuOGMyLjktMTQgNC43LTI4LjkgNC43LTQzLjggMC0xMTMuNS05MS45LTIwNS4zLTIwNS4zLTIwNS4zLTE0LjkgMC0yOS43IDEuNy00My44IDQuN0MxNjEuMyA0MC43IDEzNy43IDMyIDExMiAzMiA1MC4yIDMyIDAgODIuMiAwIDE0NGMwIDI1LjcgOC43IDQ5LjMgMjMuMyA2OC4yLTIuOSAxNC00LjcgMjguOS00LjcgNDMuOCAwIDExMy41IDkxLjkgMjA1LjMgMjA1LjMgMjA1LjMgMTQuOSAwIDI5LjctMS43IDQzLjgtNC43IDE5IDE0LjYgNDIuNiAyMy4zIDY4LjIgMjMuMyA2MS44IDAgMTEyLTUwLjIgMTEyLTExMiAuMS0yNS42LTguNi00OS4yLTIzLjItNjguMXptLTE5NC42IDkxLjVjLTY1LjYgMC0xMjAuNS0yOS4yLTEyMC41LTY1IDAtMTYgOS0zMC42IDI5LjUtMzAuNiAzMS4yIDAgMzQuMSA0NC45IDg4LjEgNDQuOSAyNS43IDAgNDIuMy0xMS40IDQyLjMtMjYuMyAwLTE4LjctMTYtMjEuNi00Mi0yOC02Mi41LTE1LjQtMTE3LjgtMjItMTE3LjgtODcuMiAwLTU5LjIgNTguNi04MS4xIDEwOS4xLTgxLjEgNTUuMSAwIDExMC44IDIxLjkgMTEwLjggNTUuNCAwIDE2LjktMTEuNCAzMS44LTMwLjMgMzEuOC0yOC4zIDAtMjkuMi0zMy41LTc1LTMzLjUtMjUuNyAwLTQyIDctNDIgMjIuNSAwIDE5LjggMjAuOCAyMS44IDY5LjEgMzMgNDEuNCA5LjMgOTAuNyAyNi44IDkwLjcgNzcuNiAwIDU5LjEtNTcuMSA4Ni41LTExMiA4Ni41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbGFja0hhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ2LjIgMjcwLjRjLTYuMi0xOS0yNi45LTI5LjEtNDYtMjIuOWwtNDUuNCAxNS4xLTMwLjMtOTAgNDUuNC0xNS4xYzE5LjEtNi4yIDI5LjEtMjYuOCAyMy00NS45LTYuMi0xOS0yNi45LTI5LjEtNDYtMjIuOWwtNDUuNCAxNS4xLTE1LjctNDdjLTYuMi0xOS0yNi45LTI5LjEtNDYtMjIuOS0xOS4xIDYuMi0yOS4xIDI2LjgtMjMgNDUuOWwxNS43IDQ3LTkzLjQgMzEuMi0xNS43LTQ3Yy02LjItMTktMjYuOS0yOS4xLTQ2LTIyLjktMTkuMSA2LjItMjkuMSAyNi44LTIzIDQ1LjlsMTUuNyA0Ny00NS4zIDE1Yy0xOS4xIDYuMi0yOS4xIDI2LjgtMjMgNDUuOSA1IDE0LjUgMTkuMSAyNCAzMy42IDI0LjYgNi44IDEgMTItMS42IDU3LjctMTYuOGwzMC4zIDkwTDc4IDM1NC44Yy0xOSA2LjItMjkuMSAyNi45LTIzIDQ1LjkgNSAxNC41IDE5LjEgMjQgMzMuNiAyNC42IDYuOCAxIDEyLTEuNiA1Ny43LTE2LjhsMTUuNyA0N2M1LjkgMTYuOSAyNC43IDI5IDQ2IDIyLjkgMTkuMS02LjIgMjkuMS0yNi44IDIzLTQ1LjlsLTE1LjctNDcgOTMuNi0zMS4zIDE1LjcgNDdjNS45IDE2LjkgMjQuNyAyOSA0NiAyMi45IDE5LjEtNi4yIDI5LjEtMjYuOCAyMy00NS45bC0xNS43LTQ3IDQ1LjQtMTUuMWMxOS02IDI5LjEtMjYuNyAyMi45LTQ1Ljd6bS0yNTQuMSA0Ny4ybC0zMC4zLTkwLjIgOTMuNS0zMS4zIDMwLjMgOTAuMi05My41IDMxLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNsYWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk0LjEyIDMxNS4xYzAgMjUuOS0yMS4xNiA0Ny4wNi00Ny4wNiA0Ny4wNlMwIDM0MSAwIDMxNS4xYzAtMjUuOSAyMS4xNi00Ny4wNiA0Ny4wNi00Ny4wNmg0Ny4wNnY0Ny4wNnptMjMuNzIgMGMwLTI1LjkgMjEuMTYtNDcuMDYgNDcuMDYtNDcuMDZzNDcuMDYgMjEuMTYgNDcuMDYgNDcuMDZ2MTE3Ljg0YzAgMjUuOS0yMS4xNiA0Ny4wNi00Ny4wNiA0Ny4wNnMtNDcuMDYtMjEuMTYtNDcuMDYtNDcuMDZWMzE1LjF6bTQ3LjA2LTE4OC45OGMtMjUuOSAwLTQ3LjA2LTIxLjE2LTQ3LjA2LTQ3LjA2UzEzOSAzMiAxNjQuOSAzMnM0Ny4wNiAyMS4xNiA0Ny4wNiA0Ny4wNnY0Ny4wNkgxNjQuOXptMCAyMy43MmMyNS45IDAgNDcuMDYgMjEuMTYgNDcuMDYgNDcuMDZzLTIxLjE2IDQ3LjA2LTQ3LjA2IDQ3LjA2SDQ3LjA2QzIxLjE2IDI0My45NiAwIDIyMi44IDAgMTk2LjlzMjEuMTYtNDcuMDYgNDcuMDYtNDcuMDZIMTY0Ljl6bTE4OC45OCA0Ny4wNmMwLTI1LjkgMjEuMTYtNDcuMDYgNDcuMDYtNDcuMDYgMjUuOSAwIDQ3LjA2IDIxLjE2IDQ3LjA2IDQ3LjA2cy0yMS4xNiA0Ny4wNi00Ny4wNiA0Ny4wNmgtNDcuMDZWMTk2Ljl6bS0yMy43MiAwYzAgMjUuOS0yMS4xNiA0Ny4wNi00Ny4wNiA0Ny4wNi0yNS45IDAtNDcuMDYtMjEuMTYtNDcuMDYtNDcuMDZWNzkuMDZjMC0yNS45IDIxLjE2LTQ3LjA2IDQ3LjA2LTQ3LjA2IDI1LjkgMCA0Ny4wNiAyMS4xNiA0Ny4wNiA0Ny4wNlYxOTYuOXpNMjgzLjEgMzg1Ljg4YzI1LjkgMCA0Ny4wNiAyMS4xNiA0Ny4wNiA0Ny4wNiAwIDI1LjktMjEuMTYgNDcuMDYtNDcuMDYgNDcuMDYtMjUuOSAwLTQ3LjA2LTIxLjE2LTQ3LjA2LTQ3LjA2di00Ny4wNmg0Ny4wNnptMC0yMy43MmMtMjUuOSAwLTQ3LjA2LTIxLjE2LTQ3LjA2LTQ3LjA2IDAtMjUuOSAyMS4xNi00Ny4wNiA0Ny4wNi00Ny4wNmgxMTcuODRjMjUuOSAwIDQ3LjA2IDIxLjE2IDQ3LjA2IDQ3LjA2IDAgMjUuOS0yMS4xNiA0Ny4wNi00Ny4wNiA0Ny4wNkgyODMuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2xpZGVzaGFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODcuNyAxNTMuN2MtMzQgMC02MS43IDI1LjctNjEuNyA1Ny43IDAgMzEuNyAyNy43IDU3LjcgNjEuNyA1Ny43czYxLjctMjYgNjEuNy01Ny43YzAtMzItMjcuNy01Ny43LTYxLjctNTcuN3ptMTQzLjQgMGMtMzQgMC02MS43IDI1LjctNjEuNyA1Ny43IDAgMzEuNyAyNy43IDU3LjcgNjEuNyA1Ny43IDM0LjMgMCA2MS43LTI2IDYxLjctNTcuNy4xLTMyLTI3LjQtNTcuNy02MS43LTU3Ljd6bTE1Ni42IDkwbC02IDQuM1Y0OS43YzAtMjcuNC0yMC42LTQ5LjctNDYtNDkuN0g3Ni42Yy0yNS40IDAtNDYgMjIuMy00NiA0OS43VjI0OGMtMi0xLjQtNC4zLTIuOS02LjMtNC4zLTE1LjEtMTAuNi0yNS4xIDQtMTYgMTcuNyAxOC4zIDIyLjYgNTMuMSA1MC4zIDEwNi4zIDcyQzU4LjMgNTI1LjEgMjUyIDU1NS43IDI0OC45IDQ1Ny41YzAtLjcuMy01Ni42LjMtOTYuNiA1LjEgMS4xIDkuNCAyLjMgMTMuNyAzLjEgMCAzOS43LjMgOTIuOC4zIDkzLjUtMy4xIDk4LjMgMTkwLjYgNjcuNyAxMzQuMy0xMjQgNTMuMS0yMS43IDg4LTQ5LjQgMTA2LjMtNzIgOS4xLTEzLjgtLjktMjguMy0xNi4xLTE3Ljh6bS0zMC41IDE5LjJjLTY4LjkgMzcuNC0xMjguMyAzMS4xLTE2MC42IDI5LjctMjMuNy0uOS0zMi42IDkuMS0zMy43IDI0LjktMTAuMy03LjctMTguNi0xNS41LTIwLjMtMTcuMS01LjEtNS40LTEzLjctOC0yNy4xLTcuNy0zMS43IDEuMS04OS43IDcuNC0xNTcuNC0yOFY3Mi4zYzAtMzQuOSA4LjktNDUuNyA0MC42LTQ1LjdoMzE3LjdjMzAuMyAwIDQwLjkgMTIuOSA0MC45IDQ1Ljd2MTkwLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNuYXBjaGF0R2hvc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEwLjg0NiAzOTIuNjczYy01LjIxMSAxMi4xNTctMjcuMjM5IDIxLjA4OS02Ny4zNiAyNy4zMTgtMi4wNjQgMi43ODYtMy43NzUgMTQuNjg2LTYuNTA3IDIzLjk1Ni0xLjYyNSA1LjU2Ni01LjYyMyA4Ljg2OS0xMi4xMjggOC44NjlsLS4yOTctLjAwNWMtOS4zOTUgMC0xOS4yMDMtNC4zMjMtMzguODUyLTQuMzIzLTI2LjUyMSAwLTM1LjY2MiA2LjA0My01Ni4yNTQgMjAuNTg4LTIxLjgzMiAxNS40MzgtNDIuNzcxIDI4Ljc2NC03NC4wMjcgMjcuMzk5LTMxLjY0NiAyLjMzNC01OC4wMjUtMTYuOTA4LTcyLjg3MS0yNy40MDQtMjAuNzE0LTE0LjY0My0yOS44MjgtMjAuNTgyLTU2LjI0MS0yMC41ODItMTguODY0IDAtMzAuNzM2IDQuNzItMzguODUyIDQuNzItOC4wNzMgMC0xMS4yMTMtNC45MjItMTIuNDIyLTkuMDQtMi43MDMtOS4xODktNC40MDQtMjEuMjYzLTYuNTIzLTI0LjEzLTIwLjY3OS0zLjIwOS02Ny4zMS0xMS4zNDQtNjguNDk4LTMyLjE1YTEwLjYyNyAxMC42MjcgMCAwIDEgOC44NzctMTEuMDY5YzY5LjU4My0xMS40NTUgMTAwLjkyNC04Mi45MDEgMTAyLjIyNy04NS45MzQuMDc0LS4xNzYuMTU1LS4zNDQuMjM3LS41MTUgMy43MTMtNy41MzcgNC41NDQtMTMuODQ5IDIuNDYzLTE4Ljc1My01LjA1LTExLjg5Ni0yNi44NzItMTYuMTY0LTM2LjA1My0xOS43OTYtMjMuNzE1LTkuMzY2LTI3LjAxNS0yMC4xMjgtMjUuNjEyLTI3LjUwNCAyLjQzNy0xMi44MzYgMjEuNzI1LTIwLjczNSAzMy4wMDItMTUuNDUzIDguOTE5IDQuMTgxIDE2Ljg0MyA2LjI5NyAyMy41NDcgNi4yOTcgNS4wMjIgMCA4LjIxMi0xLjIwNCA5Ljk2LTIuMTcxLTIuMDQzLTM1LjkzNi03LjEwMS04Ny4yOSA1LjY4Ny0xMTUuOTY5QzE1OC4xMjIgMjEuMzA0IDIyOS43MDUgMTUuNDIgMjUwLjgyNiAxNS40MmMuOTQ0IDAgOS4xNDEtLjA4OSAxMC4xMS0uMDg5IDUyLjE0OCAwIDEwMi4yNTQgMjYuNzggMTI2LjcyMyA4MS42NDMgMTIuNzc3IDI4LjY1IDcuNzQ5IDc5Ljc5MiA1LjY5NSAxMTYuMDA5IDEuNTgyLjg3MiA0LjM1NyAxLjk0MiA4LjU5OSAyLjEzOSA2LjM5Ny0uMjg2IDEzLjgxNS0yLjM4OSAyMi4wNjktNi4yNTcgNi4wODUtMi44NDYgMTQuNDA2LTIuNDYxIDIwLjQ4LjA1OGwuMDI5LjAxYzkuNDc2IDMuMzg1IDE1LjQzOSAxMC4yMTUgMTUuNTg5IDE3Ljg3LjE4NCA5Ljc0Ny04LjUyMiAxOC4xNjUtMjUuODc4IDI1LjAxOC0yLjExOC44MzUtNC42OTQgMS42NTUtNy40MzQgMi41MjUtOS43OTcgMy4xMDYtMjQuNiA3LjgwNS0yOC42MTYgMTcuMjcxLTIuMDc5IDQuOTA0LTEuMjU2IDExLjIxMSAyLjQ2IDE4Ljc0OC4wODcuMTY4LjE2Ni4zNDIuMjM5LjUxNSAxLjMwMSAzLjAzIDMyLjYxNSA3NC40NiAxMDIuMjMgODUuOTM0IDYuNDI3IDEuMDU4IDExLjE2MyA3Ljg3NyA3LjcyNSAxNS44NTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNuYXBjaGF0U3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS02LjUgMzE0LjljLTMuNSA4LjEtMTguMSAxNC00NC44IDE4LjItMS40IDEuOS0yLjUgOS44LTQuMyAxNS45LTEuMSAzLjctMy43IDUuOS04LjEgNS45aC0uMmMtNi4yIDAtMTIuOC0yLjktMjUuOC0yLjktMTcuNiAwLTIzLjcgNC0zNy40IDEzLjctMTQuNSAxMC4zLTI4LjQgMTkuMS00OS4yIDE4LjItMjEgMS42LTM4LjYtMTEuMi00OC41LTE4LjItMTMuOC05LjctMTkuOC0xMy43LTM3LjQtMTMuNy0xMi41IDAtMjAuNCAzLjEtMjUuOCAzLjEtNS40IDAtNy41LTMuMy04LjMtNi0xLjgtNi4xLTIuOS0xNC4xLTQuMy0xNi0xMy44LTIuMS00NC44LTcuNS00NS41LTIxLjQtLjItMy42IDIuMy02LjggNS45LTcuNCA0Ni4zLTcuNiA2Ny4xLTU1LjEgNjgtNTcuMSAwLS4xLjEtLjIuMi0uMyAyLjUtNSAzLTkuMiAxLjYtMTIuNS0zLjQtNy45LTE3LjktMTAuNy0yNC0xMy4yLTE1LjgtNi4yLTE4LTEzLjQtMTctMTguMyAxLjYtOC41IDE0LjQtMTMuOCAyMS45LTEwLjMgNS45IDIuOCAxMS4yIDQuMiAxNS43IDQuMiAzLjMgMCA1LjUtLjggNi42LTEuNC0xLjQtMjMuOS00LjctNTggMy44LTc3LjFDMTU5LjEgMTAwIDIwNi43IDk2IDIyMC43IDk2Yy42IDAgNi4xLS4xIDYuNy0uMSAzNC43IDAgNjggMTcuOCA4NC4zIDU0LjMgOC41IDE5LjEgNS4yIDUzLjEgMy44IDc3LjEgMS4xLjYgMi45IDEuMyA1LjcgMS40IDQuMy0uMiA5LjItMS42IDE0LjctNC4yIDQtMS45IDkuNi0xLjYgMTMuNiAwIDYuMyAyLjMgMTAuMyA2LjggMTAuNCAxMS45LjEgNi41LTUuNyAxMi4xLTE3LjIgMTYuNi0xLjQuNi0zLjEgMS4xLTQuOSAxLjctNi41IDIuMS0xNi40IDUuMi0xOSAxMS41LTEuNCAzLjMtLjggNy41IDEuNiAxMi41LjEuMS4xLjIuMi4zLjkgMiAyMS43IDQ5LjUgNjggNTcuMSA0IDEgNy4xIDUuNSA0LjkgMTAuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU25hcGNoYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMTY5LjUgMzM4LjljLTMuNSA4LjEtMTguMSAxNC00NC44IDE4LjItMS40IDEuOS0yLjUgOS44LTQuMyAxNS45LTEuMSAzLjctMy43IDUuOS04LjEgNS45aC0uMmMtNi4yIDAtMTIuOC0yLjktMjUuOC0yLjktMTcuNiAwLTIzLjcgNC0zNy40IDEzLjctMTQuNSAxMC4zLTI4LjQgMTkuMS00OS4yIDE4LjItMjEgMS42LTM4LjYtMTEuMi00OC41LTE4LjItMTMuOC05LjctMTkuOC0xMy43LTM3LjQtMTMuNy0xMi41IDAtMjAuNCAzLjEtMjUuOCAzLjEtNS40IDAtNy41LTMuMy04LjMtNi0xLjgtNi4xLTIuOS0xNC4xLTQuMy0xNi0xMy44LTIuMS00NC44LTcuNS00NS41LTIxLjQtLjItMy42IDIuMy02LjggNS45LTcuNCA0Ni4zLTcuNiA2Ny4xLTU1LjEgNjgtNTcuMSAwLS4xLjEtLjIuMi0uMyAyLjUtNSAzLTkuMiAxLjYtMTIuNS0zLjQtNy45LTE3LjktMTAuNy0yNC0xMy4yLTE1LjgtNi4yLTE4LTEzLjQtMTctMTguMyAxLjYtOC41IDE0LjQtMTMuOCAyMS45LTEwLjMgNS45IDIuOCAxMS4yIDQuMiAxNS43IDQuMiAzLjMgMCA1LjUtLjggNi42LTEuNC0xLjQtMjMuOS00LjctNTggMy44LTc3LjFDMTgzLjEgMTAwIDIzMC43IDk2IDI0NC43IDk2Yy42IDAgNi4xLS4xIDYuNy0uMSAzNC43IDAgNjggMTcuOCA4NC4zIDU0LjMgOC41IDE5LjEgNS4yIDUzLjEgMy44IDc3LjEgMS4xLjYgMi45IDEuMyA1LjcgMS40IDQuMy0uMiA5LjItMS42IDE0LjctNC4yIDQtMS45IDkuNi0xLjYgMTMuNiAwIDYuMyAyLjMgMTAuMyA2LjggMTAuNCAxMS45LjEgNi41LTUuNyAxMi4xLTE3LjIgMTYuNi0xLjQuNi0zLjEgMS4xLTQuOSAxLjctNi41IDIuMS0xNi40IDUuMi0xOSAxMS41LTEuNCAzLjMtLjggNy41IDEuNiAxMi41LjEuMS4xLjIuMi4zLjkgMiAyMS43IDQ5LjUgNjggNTcuMSA0IDEgNy4xIDUuNSA0LjkgMTAuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU291bmRjbG91ZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTEuNCAyNTYuM2w1LjggNjUtNS44IDY4LjNjLS4zIDIuNS0yLjIgNC40LTQuNCA0LjRzLTQuMi0xLjktNC4yLTQuNGwtNS42LTY4LjMgNS42LTY1YzAtMi4yIDEuOS00LjIgNC4yLTQuMiAyLjIgMCA0LjEgMiA0LjQgNC4yem0yMS40LTQ1LjZjLTIuOCAwLTQuNyAyLjItNSA1bC01IDEwNS42IDUgNjguM2MuMyAyLjggMi4yIDUgNSA1IDIuNSAwIDQuNy0yLjIgNC43LTVsNS44LTY4LjMtNS44LTEwNS42YzAtMi44LTIuMi01LTQuNy01em0yNS41LTI0LjFjLTMuMSAwLTUuMyAyLjItNS42IDUuM2wtNC40IDEzMCA0LjQgNjcuOGMuMyAzLjEgMi41IDUuMyA1LjYgNS4zIDIuOCAwIDUuMy0yLjIgNS4zLTUuM2w1LjMtNjcuOC01LjMtMTMwYzAtMy4xLTIuNS01LjMtNS4zLTUuM3pNNy4yIDI4My4yYy0xLjQgMC0yLjIgMS4xLTIuNSAyLjVMMCAzMjEuM2w0LjcgMzVjLjMgMS40IDEuMSAyLjUgMi41IDIuNXMyLjItMS4xIDIuNS0yLjVsNS42LTM1LTUuNi0zNS42Yy0uMy0xLjQtMS4xLTIuNS0yLjUtMi41em0yMy42LTIxLjljLTEuNCAwLTIuNSAxLjEtMi41IDIuNWwtNi40IDU3LjUgNi40IDU2LjFjMCAxLjcgMS4xIDIuOCAyLjUgMi44czIuNS0xLjEgMi44LTIuNWw3LjItNTYuNC03LjItNTcuNWMtLjMtMS40LTEuNC0yLjUtMi44LTIuNXptMjUuMy0xMS40Yy0xLjcgMC0zLjEgMS40LTMuMyAzLjNMNDcgMzIxLjNsNS44IDY1LjhjLjMgMS43IDEuNyAzLjEgMy4zIDMuMSAxLjcgMCAzLjEtMS40IDMuMS0zLjFsNi45LTY1LjgtNi45LTY4LjFjMC0xLjktMS40LTMuMy0zLjEtMy4zem0yNS4zLTIuMmMtMS45IDAtMy42IDEuNC0zLjYgMy42bC01LjggNzAgNS44IDY3LjhjMCAyLjIgMS43IDMuNiAzLjYgMy42czMuNi0xLjQgMy45LTMuNmw2LjQtNjcuOC02LjQtNzBjLS4zLTIuMi0yLTMuNi0zLjktMy42em0yNDEuNC0xMTAuOWMtMS4xLS44LTIuOC0xLjQtNC4yLTEuNC0yLjIgMC00LjIuOC01LjYgMS45LTEuOSAxLjctMy4xIDQuMi0zLjMgNi43di44bC0zLjMgMTc2LjcgMS43IDMyLjUgMS43IDMxLjdjLjMgNC43IDQuMiA4LjYgOC45IDguNnM4LjYtMy45IDguNi04LjZsMy45LTY0LjItMy45LTE3Ny41Yy0uNC0zLTItNS44LTQuNS03LjJ6bS0yNi43IDE1LjNjLTEuNC0uOC0yLjgtMS40LTQuNC0xLjRzLTMuMS42LTQuNCAxLjRjLTIuMiAxLjQtMy42IDMuOS0zLjYgNi43bC0uMyAxLjctMi44IDE2MC44czAgLjMgMy4xIDY1LjZ2LjNjMCAxLjcuNiAzLjMgMS43IDQuNyAxLjcgMS45IDMuOSAzLjEgNi40IDMuMSAyLjIgMCA0LjItMS4xIDUuNi0yLjUgMS43LTEuNCAyLjUtMy4zIDIuNS01LjZsLjMtNi43IDMuMS01OC42LTMuMy0xNjIuOGMtLjMtMi44LTEuNy01LjMtMy45LTYuN3ptLTExMS40IDIyLjVjLTMuMSAwLTUuOCAyLjgtNS44IDYuMWwtNC40IDE0MC42IDQuNCA2Ny4yYy4zIDMuMyAyLjggNS44IDUuOCA1LjggMy4zIDAgNS44LTIuNSA2LjEtNS44bDUtNjcuMi01LTE0MC42Yy0uMi0zLjMtMi43LTYuMS02LjEtNi4xem0zNzYuNyA2Mi44Yy0xMC44IDAtMjEuMSAyLjItMzAuNiA2LjEtNi40LTcwLjgtNjUuOC0xMjYuNC0xMzguMy0xMjYuNC0xNy44IDAtMzUgMy4zLTUwLjMgOS40LTYuMSAyLjItNy44IDQuNC03LjggOS4ydjI0OS43YzAgNSAzLjkgOC42IDguNiA5LjJoMjE4LjNjNDMuMyAwIDc4LjYtMzUgNzguNi03OC4zLjEtNDMuNi0zNS4yLTc4LjktNzguNS03OC45em0tMjk2LjctNjAuM2MtNC4yIDAtNy41IDMuMy03LjggNy44bC0zLjMgMTM2LjcgMy4zIDY1LjZjLjMgNC4yIDMuNiA3LjUgNy44IDcuNSA0LjIgMCA3LjUtMy4zIDcuNS03LjVsMy45LTY1LjYtMy45LTEzNi43Yy0uMy00LjUtMy4zLTcuOC03LjUtNy44em0tNTMuNi03LjhjLTMuMyAwLTYuNCAzLjEtNi40IDYuN2wtMy45IDE0NS4zIDMuOSA2Ni45Yy4zIDMuNiAzLjEgNi40IDYuNCA2LjQgMy42IDAgNi40LTIuOCA2LjctNi40bDQuNC02Ni45LTQuNC0xNDUuM2MtLjMtMy42LTMuMS02LjctNi43LTYuN3ptMjYuNyAzLjRjLTMuOSAwLTYuOSAzLjEtNi45IDYuOUwyMjcgMzIxLjNsMy45IDY2LjRjLjMgMy45IDMuMSA2LjkgNi45IDYuOXM2LjktMy4xIDYuOS02LjlsNC4yLTY2LjQtNC4yLTE0MS43YzAtMy45LTMtNi45LTYuOS02Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvdXJjZXRyZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDI3LjIgMjAzYzAtMTEyLjEtOTAuOS0yMDMtMjAzLTIwM0MxMTIuMS0uMiAyMS4yIDkwLjYgMjEgMjAyLjZBMjAyLjg2IDIwMi44NiAwIDAgMCAxNjEuNSAzOTZ2MTAxLjdhMTQuMyAxNC4zIDAgMCAwIDE0LjMgMTQuM2g5Ni40YTE0LjMgMTQuMyAwIDAgMCAxNC4zLTE0LjNWMzk2LjFBMjAzLjE4IDIwMy4xOCAwIDAgMCA0MjcuMiAyMDN6bS0yNzEuNiAwYzAtOTAuOCAxMzcuMy05MC44IDEzNy4zIDAtLjEgODkuOS0xMzcuMyA5MS0xMzcuMyAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcGVha2FwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDM5MS43OEMtMTUuNDEgMzAzLjU5LTggMTY3LjQyIDgwLjY0IDg3LjY0czIyNC44LTczIDMwNC4yMSAxNS4yNCA3MiAyMjQuMzYtMTYuNjQgMzA0LjE0Yy0xOC43NCAxNi44NyA2NCA0My4wOSA0MiA1Mi4yNi04Mi4wNiAzNC4yMS0yNTMuOTEgMzUtMzQ2LjIzLTY3LjV6bTIxMy4zMS0yMTEuNmwzOC41LTQwLjg2Yy05LjYxLTguODktMzItMjYuODMtNzYuMTctMjcuNi01Mi4zMy0uOTEtOTUuODYgMjguMy05Ni43NyA4MC0uMiAxMS4zMy4yOSAzNi43MiAyOS40MiA1NC44MyAzNC40NiAyMS40MiA4Ni41MiAyMS41MSA4NiA1Mi4yNi0uMzcgMjEuMjgtMjYuNDIgMjUuODEtMzguNTkgMjUuNi0zLS4wNS0zMC4yMy0uNDYtNDcuNjEtMjQuNjJsLTQwIDQyLjYxYzI4LjE2IDI3IDU5IDMyLjYyIDgzLjQ5IDMzLjA1IDEwLjIzLjE4IDk2LjQyLjMzIDk3Ljg0LTgxIC4yOC0xNS44MS0yLjA3LTM5LjcyLTI4Ljg2LTU2LjU5LTM0LjM2LTIxLjY0LTg1LTE5LjQ1LTg0LjQzLTQ5Ljc1LjQxLTIzLjI1IDMxLTI1LjM3IDM3LjUzLTI1LjI2LjQzIDAgMjYuNjIuMjYgMzkuNjIgMTcuMzd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNwZWFrZXJEZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxMy44NiAyOTZIMTAwYTEwMCAxMDAgMCAwIDEgMC0yMDBoMTMyLjg0YTQwIDQwIDAgMCAxIDAgODBIOThjLTI2LjQ3IDAtMjYuNDUgNDAgMCA0MGgxMTMuODJhMTAwIDEwMCAwIDAgMSAwIDIwMEg0MGE0MCA0MCAwIDAgMSAwLTgwaDE3My44NmMyNi40OCAwIDI2LjQ2LTQwIDAtNDB6TTI5OCA0MTZhMTIwLjIxIDEyMC4yMSAwIDAgMCA1MS4xMS04MGg2NC41NWExOS44MyAxOS44MyAwIDAgMCAxOS42Ni0yMFYxOTZhMTkuODMgMTkuODMgMCAwIDAtMTkuNjYtMjBIMjk2LjQyYTYwLjc3IDYwLjc3IDAgMCAwIDAtODBoMTM2LjkzYzQzLjQ0IDAgNzguNjUgMzUuODIgNzguNjUgODB2MTYwYzAgNDQuMTgtMzUuMjEgODAtNzguNjUgODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNwb3RpZnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExLjEgOCAwIDExOS4xIDAgMjU2czExMS4xIDI0OCAyNDggMjQ4IDI0OC0xMTEuMSAyNDgtMjQ4UzM4NC45IDggMjQ4IDh6bTEwMC43IDM2NC45Yy00LjIgMC02LjgtMS4zLTEwLjctMy42LTYyLjQtMzcuNi0xMzUtMzkuMi0yMDYuNy0yNC41LTMuOSAxLTkgMi42LTExLjkgMi42LTkuNyAwLTE1LjgtNy43LTE1LjgtMTUuOCAwLTEwLjMgNi4xLTE1LjIgMTMuNi0xNi44IDgxLjktMTguMSAxNjUuNi0xNi41IDIzNyAyNi4yIDYuMSAzLjkgOS43IDcuNCA5LjcgMTYuNXMtNy4xIDE1LjQtMTUuMiAxNS40em0yNi45LTY1LjZjLTUuMiAwLTguNy0yLjMtMTIuMy00LjItNjIuNS0zNy0xNTUuNy01MS45LTIzOC42LTI5LjQtNC44IDEuMy03LjQgMi42LTExLjkgMi42LTEwLjcgMC0xOS40LTguNy0xOS40LTE5LjRzNS4yLTE3LjggMTUuNS0yMC43YzI3LjgtNy44IDU2LjItMTMuNiA5Ny44LTEzLjYgNjQuOSAwIDEyNy42IDE2LjEgMTc3IDQ1LjUgOC4xIDQuOCAxMS4zIDExIDExLjMgMTkuNy0uMSAxMC44LTguNSAxOS41LTE5LjQgMTkuNXptMzEtNzYuMmMtNS4yIDAtOC40LTEuMy0xMi45LTMuOS03MS4yLTQyLjUtMTk4LjUtNTIuNy0yODAuOS0yOS43LTMuNiAxLTguMSAyLjYtMTIuOSAyLjYtMTMuMiAwLTIzLjMtMTAuMy0yMy4zLTIzLjYgMC0xMy42IDguNC0yMS4zIDE3LjQtMjMuOSAzNS4yLTEwLjMgNzQuNi0xNS4yIDExNy41LTE1LjIgNzMgMCAxNDkuNSAxNS4yIDIwNS40IDQ3LjggNy44IDQuNSAxMi45IDEwLjcgMTIuOSAyMi42IDAgMTMuNi0xMSAyMy4zLTIzLjIgMjMuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlc3BhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg2LjEyIDM0My4zNGMtOS42NSA5LjY1LTkuNjUgMjUuMjkgMCAzNC45NCA5LjY1IDkuNjUgMjUuMjkgOS42NSAzNC45NCAwTDM3OC4yNCAyMjEuMWMxOS4yOS0xOS4yOSA1MC41Ny0xOS4yOSA2OS44NiAwczE5LjI5IDUwLjU3IDAgNjkuODZMMjkzLjk1IDQ0NS4xYzE5LjI3IDE5LjI5IDUwLjUzIDE5LjMxIDY5LjgyLjA0bC4wNC0uMDQgMTE5LjI1LTExOS4yNGMzOC41OS0zOC41OSAzOC41OS0xMDEuMTQgMC0xMzkuNzItMzguNTktMzguNTktMTAxLjE1LTM4LjU5LTEzOS43MiAwbC0xNTcuMjIgMTU3LjJ6bTI0NC41My0xMDQuOGMtOS42NS05LjY1LTI1LjI5LTkuNjUtMzQuOTMgMGwtMTU3LjIgMTU3LjE4Yy0xOS4yNyAxOS4yOS01MC41MyAxOS4zMS02OS44Mi4wNWwtLjA1LS4wNWMtOS42NC05LjY0LTI1LjI3LTkuNjUtMzQuOTItLjAxbC0uMDEuMDFjLTkuNjUgOS42NC05LjY2IDI1LjI4LS4wMiAzNC45M2wuMDIuMDJjMzguNTggMzguNTcgMTAxLjE0IDM4LjU3IDEzOS43MiAwbDE1Ny4yLTE1Ny4yYzkuNjUtOS42NSA5LjY1LTI1LjI5LjAxLTM0Ljkzem0tMjYxLjk5IDg3LjMzbDE1Ny4xOC0xNTcuMThjOS42NC05LjY1IDkuNjQtMjUuMjkgMC0zNC45NC05LjY0LTkuNjQtMjUuMjctOS42NC0zNC45MSAwTDEzMy43MiAyOTAuOTNjLTE5LjI4IDE5LjI5LTUwLjU2IDE5LjMtNjkuODUuMDFsLS4wMS0uMDFjLTE5LjI5LTE5LjI4LTE5LjMxLTUwLjU0LS4wMy02OS44NGwuMDMtLjAzTDIxOC4wMyA2Ni44OWMtMTkuMjgtMTkuMjktNTAuNTUtMTkuMy02OS44NS0uMDJsLS4wMi4wMkwyOC45MyAxODYuMTRjLTM4LjU4IDM4LjU5LTM4LjU4IDEwMS4xNCAwIDEzOS43MiAzOC42IDM4LjU5IDEwMS4xMyAzOC41OSAxMzkuNzMuMDF6bS04Ny4zMy01Mi40YzkuNjQgOS42NCAyNS4yNyA5LjY0IDM0LjkxIDBsMTU3LjIxLTE1Ny4xOWMxOS4yOC0xOS4yOSA1MC41NS0xOS4zIDY5Ljg0LS4wMmwuMDIuMDJjOS42NSA5LjY1IDI1LjI5IDkuNjUgMzQuOTMgMCA5LjY1LTkuNjUgOS42NS0yNS4yOSAwLTM0LjkzLTM4LjU5LTM4LjU5LTEwMS4xMy0zOC41OS0xMzkuNzIgMEw4MS4zMyAyMzguNTRjLTkuNjUgOS42NC05LjY1IDI1LjI4LS4wMSAzNC45M2guMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0YWNrRXhjaGFuZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNyAzMzIuM2g0MTIuN3YyMmMwIDM3LjctMjkuMyA2OC02NS4zIDY4aC0xOUwyNTkuMyA1MTJ2LTg5LjdIODNjLTM2IDAtNjUuMy0zMC4zLTY1LjMtNjh2LTIyem0wLTIzLjZoNDEyLjd2LTg1SDE3Ljd2ODV6bTAtMTA5LjRoNDEyLjd2LTg1SDE3Ljd2ODV6TTM2NSAwSDgzQzQ3IDAgMTcuNyAzMC4zIDE3LjcgNjcuN1Y5MGg0MTIuN1Y2Ny43QzQzMC4zIDMwLjMgNDAxIDAgMzY1IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0YWNrT3ZlcmZsb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjkwLjcgMzExTDk1IDI2OS43IDg2LjggMzA5bDE5NS43IDQxem01MS04N0wxODguMiA5NS43bC0yNS41IDMwLjggMTUzLjUgMTI4LjN6bS0zMS4yIDM5LjdMMTI5LjIgMTc5bC0xNi43IDM2LjVMMjkzLjcgMzAwek0yNjIgMzJsLTMyIDI0IDExOS4zIDE2MC4zIDMyLTI0em0yMC41IDMyOGgtMjAwdjM5LjdoMjAwem0zOS43IDgwSDQyLjdWMzIwaC00MHYxNjBoMzU5LjVWMzIwaC00MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RhY2twYXRoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0NC42IDIzMi40YzAgOC41LTQuMjYgMjAuNDktMjEuMzQgMjAuNDloLTE5LjYxdi00MS40N2gxOS42MWMxNy4xMyAwIDIxLjM0IDEyLjM2IDIxLjM0IDIwLjk4ek00NDggMzJ2NDQ4SDBWMzJ6TTE1MS4zIDI4Ny44NGMwLTIxLjI0LTEyLjEyLTM0LjU0LTQ2LjcyLTQ0Ljg1LTIwLjU3LTcuNDEtMjYtMTAuOTEtMjYtMTguNjNzNy0xNC42MSAyMC40MS0xNC42MWMxNC4wOSAwIDIwLjc5IDguNDUgMjAuNzkgMTguMzVoMzAuN2wuMTktLjU3Yy41LTE5LjU3LTE1LjA2LTQxLjY1LTUxLjEyLTQxLjY1LTIzLjM3IDAtNTIuNTUgMTAuNzUtNTIuNTUgMzguMjkgMCAxOS40IDkuMjUgMzEuMjkgNTAuNzQgNDQuMzcgMTcuMjYgNi4xNSAyMS45MSAxMC40IDIxLjkxIDE5LjQ4IDAgMTUuMi0xOS4xMyAxNC4yMy0xOS40NyAxNC4yMy0yMC40IDAtMjUuNjUtOS4xLTI1LjY1LTIxLjloLTMwLjhsLS4xOC41NmMtLjY4IDMxLjMyIDI4LjM4IDQ1LjIyIDU2LjYzIDQ1LjIyIDI5Ljk4IDAgNTEuMTItMTMuNTUgNTEuMTItMzguMjl6bTEyNS4zOC01NS42M2MwLTI1LjMtMTguNDMtNDUuNDYtNTMuNDItNDUuNDZoLTUxLjc4djEzOC4xOGgzMi4xN3YtNDcuMzZoMTkuNjFjMzAuMjUgMCA1My40Mi0xNS45NSA1My40Mi00NS4zNnpNMjk3Ljk0IDMyNUwzNDcgMTg2Ljc4aC0zMS4wOUwyNjggMzI1em0xMDYuNTItMTM4LjIyaC0zMS4wOUwzMjUuNDYgMzI1aDI5Ljk0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGF5bGlua2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4Mi43IDI5Mi41bDIuNyAyLjctMTcwLTE2Ny4zYy0zLjUtMy41LTkuNy0zLjctMTMuOC0uNUwxNDQuMyAxNzFjLTQuMiAzLjItNC42IDguNy0xLjEgMTIuMmw2OC4xIDY0LjNjMy42IDMuNSA5LjkgMy43IDE0IC41bC4xLS4xYzQuMS0zLjIgMTAuNC0zIDE0IC41bDg0IDgxLjNjMy42IDMuNSAzLjIgOS0uOSAxMi4ybC05My4yIDc0Yy00LjIgMy4zLTEwLjUgMy4xLTE0LjItLjRMNjMuMiAyNjhjLTMuNS0zLjUtOS43LTMuNy0xMy45LS41TDMuNSAzMDIuNGMtNC4yIDMuMi00LjcgOC43LTEuMiAxMi4yTDIxMSA1MTAuN3M3LjQgNi44IDE3LjMtLjhsMTk4LTE2My45YzQtMy4yIDQuNC04LjcuNy0xMi4yem01NC41LTgzLjRMMjI2LjcgMi41Yy0xLjUtMS4yLTgtNS41LTE2LjMgMS4xTDMuNiAxNjUuN2MtNC4yIDMuMi00LjggOC43LTEuMiAxMi4ybDQyLjMgNDEuNyAxNzEuNyAxNjUuMWMzLjcgMy41IDEwLjEgMy43IDE0LjMuNGw1MC4yLTM4LjgtLjMtLjMgNy43LTZjNC4yLTMuMiA0LjYtOC43LjktMTIuMmwtNTcuMS01NC40Yy0zLjYtMy41LTEwLTMuNy0xNC4yLS41bC0uMS4xYy00LjIgMy4yLTEwLjUgMy4xLTE0LjItLjRMMTA5IDE4MC44Yy0zLjYtMy41LTMuMS04LjkgMS4xLTEyLjJsOTIuMi03MS41YzQuMS0zLjIgMTAuMy0zIDEzLjkuNWwxNjAuNCAxNTljMy43IDMuNSAxMCAzLjcgMTQuMS41bDQ1LjgtMzUuOGM0LjEtMy4yIDQuNC04LjcuNy0xMi4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGVhbVNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODUuMiAzNTYuNWM3LjctMTguNS0xLTM5LjctMTkuNi00Ny40bC0yOS41LTEyLjJjMTEuNC00LjMgMjQuMy00LjUgMzYuNC41IDEyLjIgNS4xIDIxLjYgMTQuNiAyNi43IDI2LjcgNSAxMi4yIDUgMjUuNi0uMSAzNy43LTEwLjUgMjUuMS0zOS40IDM3LTY0LjYgMjYuNS0xMS42LTQuOC0yMC40LTEzLjYtMjUuNC0yNC4ybDI4LjUgMTEuOGMxOC42IDcuOCAzOS45LS45IDQ3LjYtMTkuNHpNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MTYwLjdsMTE2LjYgNDguMWMxMi04LjIgMjYuMi0xMi4xIDQwLjctMTEuM2w1NS40LTgwLjJ2LTEuMWMwLTQ4LjIgMzkuMy04Ny41IDg3LjYtODcuNXM4Ny42IDM5LjMgODcuNiA4Ny41YzAgNDkuMi00MC45IDg4LjctODkuNiA4Ny41bC03OSA1Ni4zYzEuNiAzOC41LTI5LjEgNjguOC02NS43IDY4LjgtMzEuOCAwLTU4LjUtMjIuNy02NC41LTUyLjdMMCAzMTkuMlY0MzJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tOTkuNyAyMjIuNWMtMzIuMiAwLTU4LjQtMjYuMS01OC40LTU4LjNzMjYuMi01OC4zIDU4LjQtNTguMyA1OC40IDI2LjIgNTguNCA1OC4zLTI2LjIgNTguMy01OC40IDU4LjN6bS4xLTE0LjZjMjQuMiAwIDQzLjktMTkuNiA0My45LTQzLjggMC0yNC4yLTE5LjYtNDMuOC00My45LTQzLjgtMjQuMiAwLTQzLjkgMTkuNi00My45IDQzLjggMCAyNC4yIDE5LjcgNDMuOCA0My45IDQzLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0ZWFtU3ltYm9sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM5NS41IDE3Ny41YzAgMzMuOC0yNy41IDYxLTYxIDYxLTMzLjggMC02MS0yNy4zLTYxLTYxczI3LjMtNjEgNjEtNjFjMzMuNSAwIDYxIDI3LjIgNjEgNjF6bTUyLjUuMmMwIDYzLTUxIDExMy44LTExMy43IDExMy44TDIyNSAzNzEuM2MtNCA0My00MC41IDc2LjgtODQuNSA3Ni44LTQwLjUgMC03NC43LTI4LjgtODMtNjdMMCAzNThWMjUwLjdMOTcuMiAyOTBjMTUuMS05LjIgMzIuMi0xMy4zIDUyLTExLjVsNzEtMTAxLjdjLjUtNjIuMyA1MS41LTExMi44IDExNC0xMTIuOEMzOTcgNjQgNDQ4IDExNSA0NDggMTc3Ljd6TTIwMyAzNjNjMC0zNC43LTI3LjgtNjIuNS02Mi41LTYyLjUtNC41IDAtOSAuNS0xMy41IDEuNWwyNiAxMC41YzI1LjUgMTAuMiAzOCAzOSAyNy43IDY0LjUtMTAuMiAyNS41LTM5LjIgMzgtNjQuNyAyNy41LTEwLjItNC0yMC41LTguMy0zMC43LTEyLjIgMTAuNSAxOS43IDMxLjIgMzMuMiA1NS4yIDMzLjIgMzQuNyAwIDYyLjUtMjcuOCA2Mi41LTYyLjV6bTIwNy41LTE4NS4zYzAtNDItMzQuMy03Ni4yLTc2LjItNzYuMi00Mi4zIDAtNzYuNSAzNC4yLTc2LjUgNzYuMiAwIDQyLjIgMzQuMyA3Ni4yIDc2LjUgNzYuMiA0MS45LjEgNzYuMi0zMy45IDc2LjItNzYuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2IDI1NmMwIDEzNy0xMTEuMiAyNDgtMjQ4LjQgMjQ4LTExMy44IDAtMjA5LjYtNzYuMy0yMzktMTgwLjRsOTUuMiAzOS4zYzYuNCAzMi4xIDM0LjkgNTYuNCA2OC45IDU2LjQgMzkuMiAwIDcxLjktMzIuNCA3MC4yLTczLjVsODQuNS02MC4yYzUyLjEgMS4zIDk1LjgtNDAuOSA5NS44LTkzLjUgMC01MS42LTQyLTkzLjUtOTMuNy05My41cy05My43IDQyLTkzLjcgOTMuNXYxLjJMMTc2LjYgMjc5Yy0xNS41LS45LTMwLjcgMy40LTQzLjUgMTIuMUwwIDIzNi4xQzEwLjIgMTA4LjQgMTE3LjEgOCAyNDcuNiA4IDM4NC44IDggNDk2IDExOSA0OTYgMjU2ek0xNTUuNyAzODQuM2wtMzAuNS0xMi42YTUyLjc5IDUyLjc5IDAgMCAwIDI3LjIgMjUuOGMyNi45IDExLjIgNTcuOC0xLjYgNjktMjguNCA1LjQtMTMgNS41LTI3LjMuMS00MC4zLTUuNC0xMy0xNS41LTIzLjItMjguNS0yOC42LTEyLjktNS40LTI2LjctNS4yLTM4LjktLjZsMzEuNSAxM2MxOS44IDguMiAyOS4yIDMwLjkgMjAuOSA1MC43LTguMyAxOS45LTMxIDI5LjItNTAuOCAyMXptMTczLjgtMTI5LjljLTM0LjQgMC02Mi40LTI4LTYyLjQtNjIuM3MyOC02Mi4zIDYyLjQtNjIuMyA2Mi40IDI4IDYyLjQgNjIuMy0yNy45IDYyLjMtNjIuNCA2Mi4zem0uMS0xNS42YzI1LjkgMCA0Ni45LTIxIDQ2LjktNDYuOCAwLTI1LjktMjEtNDYuOC00Ni45LTQ2LjhzLTQ2LjkgMjEtNDYuOSA0Ni44Yy4xIDI1LjggMjEuMSA0Ni44IDQ2LjkgNDYuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RpY2tlck11bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTYxLjcgMTk5LjZjLTEuMy4zLjMgMCAwIDB6bS02LjItNzcuNGMtNy43LTIyLjMtNS4xLTcuMi0xMy40LTM2LjktMS42LTYuNS0zLjYtMTQuNS02LjItMjAtNC40LTguNy00LjYtNy41LTQuNi05LjUgMC01LjMgMzAuNy00NS4zIDE5LTQ2LjktNS43LS42LTEyLjIgMTEuNi0yMC42IDE3LTguNiA0LjItOCA1LTEwLjMgNS0yLjYgMC01LjctMy02LjItNS0yLTUuNyAxLjktMjUuOS0zLjYtMjUuOS0zLjYgMC0xMi4zIDI0LjgtMTcgMjUuOC01LjIgMS4zLTI3LjktMTEuNC03NS4xIDE4LTI1LjMgMTMuMi04Ni45IDY1LjItODcgNjUuMy02LjcgNC43LTIwIDQuNy0zNS41IDE2LTQ0LjQgMzAuMS0xMDkuNiA5LjQtMTEwLjcgOS0xMTAuNi0yNi44LTEyOC0xNS4yLTE1OSAxMS41LTIwLjggMTcuOS0yMy43IDM2LjUtMjQuMiAzOC45LTQuMiAyMC40IDUuMiA0OC4zIDYuNyA2NC4zIDEuOCAxOS4zLTIuNyAxNy43IDcuNyA5OC4zLjUgMSA0LjEgMCA1LjEgMS41IDAgOC40LTMuOCAxMi4xLTQuMSAxMy0xLjUgNC41LTEuNSAxMC41IDAgMTYgMi4zIDguMiA4LjIgMzcuMiA4LjIgNDYuOSAwIDQxLjguNCA0NCAyLjYgNDkuNCAzLjkgMTAgMTIuNSA5LjEgMTcgMTIgMy4xIDMuNS0uNSA4LjUgMSAxMi41LjUgMiAzLjYgNCA2LjIgNSA5LjIgMy42IDI3IC4zIDI5LjktMi41IDEuNi0xLjUuNS00LjUgMy4xLTUgNS4xIDAgMTAuOC0uNSAxNC40LTIuNSA1LjEtMi41IDQuMS02IDEuNS0xMC41LS40LS44LTctMTMuMy05LjgtMTYtMi4xLTItNS4xLTMtNy4yLTQuNS01LjgtNC45LTEwLjMtMTkuNC0xMC4zLTE5LjUtNC42LTE5LjQtMTAuMy00Ni4zLTQuMS02Ni44IDQuNi0xNy4yIDM5LjUtODcuNyAzOS42LTg3LjggNC4xLTYuNSAxNy0xMS41IDI3LjMtNyA2IDEuOSAxOS4zIDIyIDY1LjQgMzAuOSA0Ny45IDguNyA5Ny40LTIgMTEyLjItMiAyLjggMi0xLjkgMTMtLjUgMzguOSAwIDI2LjQtLjQgMTMuNy00LjEgMjkuOS0yLjIgOS43IDMuNCAyMy4yLTEuNSA0Ni45LTEuNCA5LjgtOS45IDMyLjctOC4yIDQzLjQuNSAxIDEgMiAxLjUgMy41LjUgNC41IDEuNSA4LjUgNC42IDEwIDcuMyAzLjYgMTItMy41IDkuOCAxMS41LS43IDMuMS0yLjYgMTIgMS41IDE1IDQuNCAzLjcgMzAuNiAzLjQgMzYuNS41IDIuNi0xLjUgMS42LTQuNSA2LjQtNy40IDEuOS0uOSAxMS4zLS40IDExLjMtNi41LjMtMS44LTkuMi0xOS45LTkuMy0yMC0yLjYtMy41LTkuMi00LjUtMTEuMy04LTYuOS0xMC4xLTEuNy01Mi42LjUtNTkuNCAzLTExIDUuNi0yMi40IDguNy0zMi40IDExLTQyLjUgMTAuMy01MC42IDE2LjUtNjguMy44LTEuOCA2LjQtMjMuMSAxMC4zLTI5LjkgOS4zLTE3IDIxLjctMzIuNCAzMy41LTQ3LjQgMTgtMjIuOSAzNC00Ni45IDUyLTY5LjggNi4xLTcgOC4yLTEzLjcgMTgtOCAxMC44IDUuNyAyMS42IDcgMzEuOSAxNyAxNC42IDEyLjggMTAuMiAxOC4yIDExLjggMjIuOSAxLjUgNSA3LjcgMTAuNSAxNC45IDkuNSAxMC40LTIgMTMtMi41IDEzLjQtMi41IDIuNi0uNSA1LjctNSA3LjItOCAzLjEtNS41IDcuMi05IDcuMi0xNi41IDAtNy43LS40LTIuOC0yMC42LTUyLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0cmF2YSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTguNCAwTDcgMjkyaDg5LjJsNjIuMi0xMTYuMUwyMjAuMSAyOTJoODguNXptMTUwLjIgMjkybC00My45IDg4LjItNDQuNi04OC4yaC02Ny42bDExMi4yIDIyMCAxMTEuNS0yMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0cmlwZVMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTU1LjMgMTU0LjZjMC0yMi4zIDE4LjYtMzAuOSA0OC40LTMwLjkgNDMuNCAwIDk4LjUgMTMuMyAxNDEuOSAzNi43VjI2LjFDMjk4LjMgNy4yIDI1MS4xIDAgMjAzLjggMCA4OC4xIDAgMTEgNjAuNCAxMSAxNjEuNGMwIDE1Ny45IDIxNi44IDEzMi4zIDIxNi44IDIwMC40IDAgMjYuNC0yMi45IDM0LjktNTQuNyAzNC45LTQ3LjIgMC0xMDguMi0xOS41LTE1Ni4xLTQ1LjV2MTI4LjVhMzk2LjA5IDM5Ni4wOSAwIDAgMCAxNTYgMzIuNGMxMTguNiAwIDIwMC4zLTUxIDIwMC4zLTE1My42IDAtMTcwLjItMjE4LTEzOS43LTIxOC0yMDMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RyaXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2NSAxNDQuN2wtNDMuMyA5LjItLjIgMTQyLjRjMCAyNi4zIDE5LjggNDMuMyA0Ni4xIDQzLjMgMTQuNiAwIDI1LjMtMi43IDMxLjItNS45di0zMy44Yy01LjcgMi4zLTMzLjcgMTAuNS0zMy43LTE1LjdWMjIxaDMzLjd2LTM3LjhoLTMzLjd6bTg5LjEgNTEuNmwtMi43LTEzLjFIMjEzdjE1My4yaDQ0LjNWMjMzLjNjMTAuNS0xMy44IDI4LjItMTEuMSAzMy45LTkuM3YtNDAuOGMtNi0yLjEtMjYuNy02LTM3LjEgMTMuMXptOTIuMy03Mi4zbC00NC42IDkuNXYzNi4ybDQ0LjYtOS41ek00NC45IDIyOC4zYzAtNi45IDUuOC05LjYgMTUuMS05LjcgMTMuNSAwIDMwLjcgNC4xIDQ0LjIgMTEuNHYtNDEuOGMtMTQuNy01LjgtMjkuNC04LjEtNDQuMS04LjEtMzYgMC02MCAxOC44LTYwIDUwLjIgMCA0OS4yIDY3LjUgNDEuMiA2Ny41IDYyLjQgMCA4LjItNy4xIDEwLjktMTcgMTAuOS0xNC43IDAtMzMuNy02LjEtNDguNi0xNC4ydjQwYzE2LjUgNy4xIDMzLjIgMTAuMSA0OC41IDEwLjEgMzYuOSAwIDYyLjMtMTUuOCA2Mi4zLTQ3LjggMC01Mi45LTY3LjktNDMuNC02Ny45LTYzLjR6TTY0MCAyNjEuNmMwLTQ1LjUtMjItODEuNC02NC4yLTgxLjRzLTY3LjkgMzUuOS02Ny45IDgxLjFjMCA1My41IDMwLjMgNzguMiA3My41IDc4LjIgMjEuMiAwIDM3LjEtNC44IDQ5LjItMTEuNXYtMzMuNGMtMTIuMSA2LjEtMjYgOS44LTQzLjYgOS44LTE3LjMgMC0zMi41LTYuMS0zNC41LTI2LjloODYuOWMuMi0yLjMuNi0xMS42LjYtMTUuOXptLTg3LjktMTYuOGMwLTIwIDEyLjMtMjguNCAyMy40LTI4LjQgMTAuOSAwIDIyLjUgOC40IDIyLjUgMjguNHptLTExMi45LTY0LjZjLTE3LjQgMC0yOC42IDguMi0zNC44IDEzLjlsLTIuMy0xMUgzNjN2MjA0LjhsNDQuNC05LjQuMS01MC4yYzYuNCA0LjcgMTUuOSAxMS4yIDMxLjQgMTEuMiAzMS44IDAgNjAuOC0yMy4yIDYwLjgtNzkuNi4xLTUxLjYtMjkuMy03OS43LTYwLjUtNzkuN3ptLTEwLjYgMTIyLjVjLTEwLjQgMC0xNi42LTMuOC0yMC45LTguNGwtLjMtNjZjNC42LTUuMSAxMS04LjggMjEuMi04LjggMTYuMiAwIDI3LjQgMTguMiAyNy40IDQxLjQuMSAyMy45LTEwLjkgNDEuOC0yNy40IDQxLjh6bS0xMjYuNyAzMy43aDQ0LjZWMTgzLjJoLTQ0LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0dWRpb3ZpbmFyaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAuMyAxODcuN2w0LjIgMjh2MjhsLTI1LjEgNDQuMS0zOS44IDc4LjQtNTYuMSA2Ny41LTc5LjEgMzcuOC0xNy43IDI0LjUtNy43IDEyLTkuNiA0czE3LjMtNjMuNiAxOS40LTYzLjZjMi4xIDAgMjAuMy43IDIwLjMuN2w2Ni43LTM4LjYtOTIuNSAyNi4xLTU1LjkgMzYuOC0yMi44IDI4LTYuNiAxLjQgMjAuOC03My42IDYuOS01LjUgMjAuNyAxMi45IDg4LjMtNDUuMiA1Ni44LTUxLjUgMTQuOC02OC40LTEyNS40IDIzLjMgMTUuMi0xOC4yLTE3My40LTUzLjMgODEuOS0xMC41LTE2Ni0xMjIuOUwxMzMuNSAxMDggMzIuMiAwbDI1Mi45IDEyNi42LTMxLjUtMzhMMzc4IDE2MyAyMzQuNyA2NGwxOC43IDM4LjQtNDkuNi0xOC4xTDE1OC4zIDBsMTk0LjYgMTIyTDMxMCA2Ni4ybDEwOCA5Ni40IDEyLTguOS0yMS0xNi40IDQuMi0zNy44TDQ1MSA4OS4xbDI5LjIgMjQuNyAxMS41IDQuMi03IDYuMiA4LjUgMTItMTMuMSA3LjQtMTAuMyAyMC4yIDEwLjUgMjMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3R1bWJsZXVwb25DaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptMCAxNzcuNWMtOS44IDAtMTcuOCA4LTE3LjggMTcuOHYxMDYuOWMwIDQwLjktMzMuOSA3My45LTc0LjkgNzMuOS00MS40IDAtNzQuOS0zMy41LTc0LjktNzQuOXYtNDYuNWg1Ny4zdjQ1LjhjMCAxMCA4IDE3LjggMTcuOCAxNy44czE3LjgtNy45IDE3LjgtMTcuOFYyMDAuMWMwLTQwIDM0LjItNzIuMSA3NC43LTcyLjEgNDAuNyAwIDc0LjcgMzIuMyA3NC43IDcyLjZ2MjMuN2wtMzQuMSAxMC4xLTIyLjktMTAuN3YtMjAuNmMuMS05LjYtNy45LTE3LjYtMTcuNy0xNy42em0xNjcuNiAxMjMuNmMwIDQxLjQtMzMuNSA3NC45LTc0LjkgNzQuOS00MS4yIDAtNzQuOS0zMy4yLTc0LjktNzQuMlYyNjNsMjIuOSAxMC43IDM0LjEtMTAuMXY0Ny4xYzAgOS44IDggMTcuNiAxNy44IDE3LjZzMTcuOC03LjkgMTcuOC0xNy42di00OGg1Ny4zYy0uMSA0NS45LS4xIDQ2LjQtLjEgNDYuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3R1bWJsZXVwb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAyLjkgMjY2djY5LjdjMCA2Mi4xLTUwLjMgMTEyLjQtMTEyLjQgMTEyLjQtNjEuOCAwLTExMi40LTQ5LjgtMTEyLjQtMTExLjN2LTcwLjJsMzQuMyAxNiA1MS4xLTE1LjJWMzM4YzAgMTQuNyAxMiAyNi41IDI2LjcgMjYuNVM0MTcgMzUyLjcgNDE3IDMzOHYtNzJoODUuOXptLTIyNC43LTU4LjJsMzQuMyAxNiA1MS4xLTE1LjJWMTczYzAtNjAuNS01MS4xLTEwOS0xMTIuMS0xMDktNjAuOCAwLTExMi4xIDQ4LjItMTEyLjEgMTA4LjJ2MTYyLjRjMCAxNC45LTEyIDI2LjctMjYuNyAyNi43Uzg2IDM0OS41IDg2IDMzNC42VjI2NkgwdjY5LjdDMCAzOTcuNyA1MC4zIDQ0OCAxMTIuNCA0NDhjNjEuNiAwIDExMi40LTQ5LjUgMTEyLjQtMTEwLjhWMTc2LjljMC0xNC43IDEyLTI2LjcgMjYuNy0yNi43czI2LjcgMTIgMjYuNyAyNi43djMwLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN1cGVycG93ZXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAzMmMtODMuMyAxMS0xNjYuOCAyMi0yNTAgMzMtOTIgMTIuNS0xNjMuMyA4Ni43LTE2OSAxODAtMy4zIDU1LjUgMTggMTA5LjUgNTcuOCAxNDguMkwwIDQ4MGM4My4zLTExIDE2Ni41LTIyIDI0OS44LTMzIDkxLjgtMTIuNSAxNjMuMy04Ni44IDE2OC43LTE3OS44IDMuNS01NS41LTE4LTEwOS41LTU3LjctMTQ4LjJMNDQ4IDMyem0tNzkuNyAyMzIuM2MtNC4yIDc5LjUtNzQgMTM5LjItMTUyLjggMTM0LjUtNzkuNS00LjctMTQwLjctNzEtMTM2LjMtMTUxIDQuNS03OS4yIDc0LjMtMTM5LjMgMTUzLTEzNC41IDc5LjMgNC43IDE0MC41IDcxIDEzNi4xIDE1MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3VwcGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MCAyNjIuNWMwIDY0LjEtMTA5IDExNi4xLTI0My41IDExNi4xLTI0LjggMC00OC42LTEuOC03MS4xLTUgNy43LjQgMTUuNS42IDIzLjQuNiAxMzQuNSAwIDI0My41LTU2LjkgMjQzLjUtMTI3LjEgMC0yOS40LTE5LjEtNTYuNC01MS4yLTc4IDYwIDIxLjEgOTguOSA1NS4xIDk4LjkgOTMuNHpNNDcuNyAyMjcuOWMtLjEtNzAuMiAxMDguOC0xMjcuMyAyNDMuMy0xMjcuNiA3LjkgMCAxNS42LjIgMjMuMy41LTIyLjUtMy4yLTQ2LjMtNC45LTcxLTQuOUMxMDguOCA5Ni4zLS4xIDE0OC41IDAgMjEyLjZjLjEgMzguMyAzOS4xIDcyLjMgOTkuMyA5My4zLTMyLjMtMjEuNS01MS41LTQ4LjYtNTEuNi03OHptNjAuMiAzOS45czEwLjUgMTMuMiAyOS4zIDEzLjJjMTcuOSAwIDI4LjQtMTEuNSAyOC40LTI1LjEgMC0yOC00MC4yLTI1LjEtNDAuMi0zOS43IDAtNS40IDUuMy05LjEgMTIuNS05LjEgNS43IDAgMTEuMyAyLjYgMTEuMyA2LjZ2My45aDE0LjJ2LTcuOWMwLTEyLjEtMTUuNC0xNi44LTI1LjQtMTYuOC0xNi41IDAtMjguNSAxMC4yLTI4LjUgMjQuMSAwIDI2LjYgNDAuMiAyNS40IDQwLjIgMzkuOSAwIDYuNi01LjggMTAuMS0xMi4zIDEwLjEtMTEuOSAwLTIwLjctMTAuMS0yMC43LTEwLjFsLTguOCAxMC45em0xMjAuOC03My42djU0LjRjMCAxMS4zLTcuMSAxNy44LTE3LjggMTcuOC0xMC43IDAtMTcuOC02LjUtMTcuOC0xNy43di01NC41aC0xNS44djU1YzAgMTguOSAxMy40IDMxLjkgMzMuNyAzMS45IDIwLjEgMCAzMy40LTEzIDMzLjQtMzEuOXYtNTVoLTE1Ljd6bTM0LjQgODUuNGgxNS44di0yOS41aDE1LjVjMTYgMCAyNy4yLTExLjUgMjcuMi0yOC4xcy0xMS4yLTI3LjgtMjcuMi0yNy44aC0zOS4xdjEzLjRoNy44djcyem0xNS44LTQzdi0yOS4xaDEyLjljOC43IDAgMTMuNyA1LjcgMTMuNyAxNC40IDAgOC45LTUuMSAxNC43LTE0IDE0LjdoLTEyLjZ6bTU3IDQzaDE1Ljh2LTI5LjVoMTUuNWMxNiAwIDI3LjItMTEuNSAyNy4yLTI4LjFzLTExLjItMjcuOC0yNy4yLTI3LjhoLTM5LjF2MTMuNGg3Ljh2NzJ6bTE1LjctNDN2LTI5LjFoMTIuOWM4LjcgMCAxMy43IDUuNyAxMy43IDE0LjQgMCA4LjktNSAxNC43LTE0IDE0LjdoLTEyLjZ6bTU3LjEgMzQuOGMwIDUuOCAyLjQgOC4yIDguMiA4LjJoMzcuNmM1LjggMCA4LjItMi40IDguMi04LjJ2LTEzaC0xNC4zdjUuMmMwIDEuNy0xIDIuNi0yLjYgMi42aC0xOC42Yy0xLjcgMC0yLjYtMS0yLjYtMi42di02MS4yYzAtNS43LTIuNC04LjItOC4yLTguMkg0MDF2MTMuNGg1LjJjMS43IDAgMi42IDEgMi42IDIuNnY2MS4yem02My40IDBjMCA1LjggMi40IDguMiA4LjIgOC4ySDUxOWM1LjcgMCA4LjItMi40IDguMi04LjJ2LTEzaC0xNC4zdjUuMmMwIDEuNy0xIDIuNi0yLjYgMi42aC0xOS43Yy0xLjcgMC0yLjYtMS0yLjYtMi42di0yMC4zaDI3Ljd2LTEzLjRINDg4di0yMi40aDE5LjJjMS43IDAgMi42IDEgMi42IDIuNnY1LjJINTI0di0xM2MwLTUuNy0yLjUtOC4yLTguMi04LjJoLTUxLjZ2MTMuNGg3Ljh2NjMuOXptNTguOS03NnY1LjloMS42di01LjloMi43di0xLjJoLTd2MS4yaDIuN3ptNS43LTEuMnY3LjFoMS41di01LjdsMi4zIDUuN2gxLjNsMi4zLTUuN3Y1LjdoMS41di03LjFoLTIuM2wtMi4xIDUuMS0yLjEtNS4xaC0yLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN1c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDcxLjA4IDEwMi42NnMtLjMgMTguMy0uMyAyMC4zYy05LjEtMy03NC40LTI0LjEtMTM1LjctMjYuMy01MS45LTEuOC0xMjIuOC00LjMtMjIzIDU3LjMtMTkuNCAxMi40LTczLjkgNDYuMS05OS42IDEwOS43QzcgMjc3LS4xMiAzMDcgNyAzMzUuMDZhMTExIDExMSAwIDAgMCAxNi41IDM1LjdjMTcuNCAyNSA0Ni42IDQxLjYgNzguMSA0NC40IDQ0LjQgMy45IDc4LjEtMTYgOTAtNTMuMyA4LjItMjUuOCAwLTYzLjYtMzEuNS04Mi45LTI1LjYtMTUuNy01My4zLTEyLjEtNjkuMi0xLjYtMTMuOSA5LjItMjEuOCAyMy41LTIxLjYgMzkuMi4zIDI3LjggMjQuMyA0Mi42IDQxLjUgNDIuNmE0OSA0OSAwIDAgMCAxNS44LTIuN2M2LjUtMS44IDEzLjMtNi41IDEzLjMtMTQuOSAwLTEyLjEtMTEuNi0xNC44LTE2LjgtMTMuOS0yLjkuNS00LjUgMi0xMS44IDIuNC0yLS4yLTEyLTMuMS0xMi0xNFYzMTZjLjItMTIuMyAxMy4yLTE4IDI1LjUtMTYuOSAzMi4zIDIuOCA0Ny43IDQwLjcgMjguNSA2NS43LTE4LjMgMjMuNy03Ni42IDIzLjItOTkuNy0yMC40LTI2LTQ5LjIgMTIuNy0xMTEuMiA4Ny05OC40IDMzLjIgNS43IDgzLjYgMzUuNSAxMDIuNCAxMDQuM2g0NS45Yy01LjctMTcuNi04LjktNjguMyA0Mi43LTY4LjMgNTYuNyAwIDYzLjkgMzkuOSA3OS44IDY4LjNINDYwYy0xMi44LTE4LjMtMjEuNy0zOC43LTE4LjktNTUuOCA1LjYtMzMuOCAzOS43LTE4LjQgODIuNC0xNy40IDY2LjUuNCAxMDIuMS0yNyAxMDMuMS0yOCAzLjctMy4xIDYuNS0xNS44IDctMTcuNyAxLjMtNS4xLTMuMi0yLjQtMy4yLTIuNC04LjcgNS4yLTMwLjUgMTUuMi01MC45IDE1LjYtMjUuMy41LTc2LjItMjUuNC04MS42LTI4LjItLjMtLjQuMSAxLjItMTEtMjUuNSA4OC40IDU4LjMgMTE4LjMgNDAuNSAxNDUuMiAyMS43LjgtLjYgNC4zLTIuOSAzLjYtNS43LTEzLjgtNDguMS0yMi40LTYyLjctMzQuNS02OS42LTM3LTIxLjYtMTI1LTM0LjctMTI5LjItMzUuMy4xLS4xLS45LS4zLS45Ljd6bTYwLjQgNzIuOGEzNy41NCAzNy41NCAwIDAgMSAzOC45LTM2LjNjMzMuNCAxLjIgNDguOCA0Mi4zIDI0LjQgNjUuMi0yNC4yIDIyLjctNjQuNCA0LjYtNjMuMy0yOC45em0zOC42LTI1LjNhMjYuMjcgMjYuMjcgMCAxIDAgMjUuNCAyNy4yIDI2LjE5IDI2LjE5IDAgMCAwLTI1LjQtMjcuMnptNC4zIDI4LjhjLTE1LjQgMC0xNS40LTE1LjYgMC0xNS42czE1LjQgMTUuNjQgMCAxNS42NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3dpZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDE1Ni4wOWMwLTQuNTEtLjA4LTktLjItMTMuNTJhMTk2LjMxIDE5Ni4zMSAwIDAgMC0yLjU4LTI5LjQyIDk5LjYyIDk5LjYyIDAgMCAwLTkuMjItMjhBOTQuMDggOTQuMDggMCAwIDAgMzk0Ljg0IDQ0YTk5LjE3IDk5LjE3IDAgMCAwLTI4LTkuMjIgMTk1IDE5NSAwIDAgMC0yOS40My0yLjU5Yy00LjUxLS4xMi05LS4xNy0xMy41Mi0uMkgxMjQuMTRjLTQuNTEgMC05IC4wOC0xMy41Mi4yLTIuNDUuMDctNC45MS4xNS03LjM3LjI3YTE3MS42OCAxNzEuNjggMCAwIDAtMjIuMDYgMi4zMiAxMDMuMDYgMTAzLjA2IDAgMCAwLTIxLjIxIDYuMXEtMy40NiAxLjQ1LTYuODEgMy4xMmE5NC42NiA5NC42NiAwIDAgMC0xOC4zOSAxMi4zMmMtMS44OCAxLjYxLTMuNjkgMy4yOC01LjQzIDVBOTMuODYgOTMuODYgMCAwIDAgMTIgODUuMTdhOTkuNDUgOTkuNDUgMCAwIDAtOS4yMiAyOCAxOTYuMzEgMTk2LjMxIDAgMCAwLTIuNTQgMjkuNGMtLjEzIDQuNTEtLjE4IDktLjIxIDEzLjUydjE5OS44M2MwIDQuNTEuMDggOSAuMjEgMTMuNTFhMTk2LjA4IDE5Ni4wOCAwIDAgMCAyLjU4IDI5LjQyIDk5LjMgOTkuMyAwIDAgMCA5LjIyIDI4QTk0LjMxIDk0LjMxIDAgMCAwIDUzLjE3IDQ2OGE5OS40NyA5OS40NyAwIDAgMCAyOCA5LjIxIDE5NSAxOTUgMCAwIDAgMjkuNDMgMi41OWM0LjUuMTIgOSAuMTcgMTMuNTIuMkgzMjMuOTFjNC41MSAwIDktLjA4IDEzLjUyLS4yYTE5Ni41OSAxOTYuNTkgMCAwIDAgMjkuNDQtMi41OSA5OS41NyA5OS41NyAwIDAgMCAyOC05LjIxQTk0LjIyIDk0LjIyIDAgMCAwIDQzNiA0MjYuODRhOTkuMyA5OS4zIDAgMCAwIDkuMjItMjggMTk0Ljc5IDE5NC43OSAwIDAgMCAyLjU5LTI5LjQyYy4xMi00LjUuMTctOSAuMi0xMy41MVYxNzIuMTRjLS4wMS01LjM1LS4wMS0xMC43LS4wMS0xNi4wNXptLTY5Ljg4IDI0MWMtMjAtMzguOTMtNTcuMjMtMjkuMjctNzYuMzEtMTkuNDctMS43MiAxLTMuNDggMi01LjI1IDNsLS40Mi4yNWMtMzkuNSAyMS05Mi41MyAyMi41NC0xNDUuODUtLjM4QTIzNC42NCAyMzQuNjQgMCAwIDEgNDUgMjkwLjEyYTIzMC42MyAyMzAuNjMgMCAwIDAgMzkuMTcgMjMuMzdjNTYuMzYgMjYuNCAxMTMgMjQuNDkgMTUzIDAtNTctNDMuODUtMTA0LjYtMTAxLTE0MS4wOS0xNDcuMjJhMTk3LjA5IDE5Ny4wOSAwIDAgMS0xOC43OC0yNS45YzQzLjcgNDAgMTEyLjcgOTAuMjIgMTM3LjQ4IDEwNC4xMi01Mi41Ny01NS40OS05OC44OS0xMjMuOTQtOTYuNzItMTIxLjc0IDgyLjc5IDgzLjQyIDE1OS4xOCAxMzAuNTkgMTU5LjE4IDEzMC41OSAyLjg4IDEuNTggNSAyLjg1IDYuNzMgNGExMjcuNDQgMTI3LjQ0IDAgMCAwIDQuMTYtMTIuNDdjMTMuMjItNDguMzMtMS42Ni0xMDMuNTgtMzUuMzEtMTQ5LjJDMzI5LjYxIDE0MS43NSAzNzUgMjI5LjM0IDM1Ni40IDMwMy40MmMtLjQ0IDEuNzMtLjk1IDMuNC0xLjQ0IDUuMDkgMzguNTIgNDcuNCAyOC4wNCA5OC4xNyAyMy4xMyA4OC41OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3ltZm9ueSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4em0xMzMuNzQgMTQzLjU0Yy0xMS40Ny40MS0xOS40LTYuNDUtMTkuNzctMTYuODctLjI3LTkuMTggNi42OC0xMy40NCA2LjUzLTE4Ljg1LS4yMy02LjU1LTEwLjE2LTYuODItMTIuODctNi42Ny0zOS43OCAxLjI5LTQ4LjU5IDU3LTU4Ljg5IDExMy44NSAyMS40MyAzLjE1IDM2LjY1LS43MiA0NS4xNC02LjIyIDEyLTcuNzUtMy4zNC0xNS43Mi0xLjQyLTI0LjU2IDQtMTguMTYgMzIuNTUtMTkgMzIgNS4zLS4zNiAxNy44Ni0yNS45MiA0MS44MS03Ny42IDM1LjctMTAuNzYgNTkuNTItMTguMzUgMTE1LTU4LjIgMTYxLjcyLTI5IDM0LjQ2LTU4LjQgMzkuODItNzEuNTggNDAuMjYtMjQuNjUuODUtNDEtMTIuMzEtNDEuNTgtMjkuODQtLjU2LTE3IDE0LjQ1LTI2LjI2IDI0LjMxLTI2LjU5IDIxLjg5LS43NSAzMC4xMiAyNS42NyAxNC44OCAzNC0xMi4wOSA5LjcxLjExIDEyLjYxIDIuMDUgMTIuNTUgMTAuNDItLjM2IDE3LjM0LTUuNTEgMjIuMTgtOSAyNC0yMCAzMy4yNC01NC44NiA0NS4zNS0xMTguMzUgOC4xOS00OS42NiAxNy03OCAxOC4yMy04Mi0xNi45My0xMi43NS0yNy4wOC0yOC41NS00OS44NS0zNC43Mi0xNS42MS00LjIzLTI1LjEyLS42My0zMS44MSA3LjgzLTcuOTIgMTAtNS4yOSAyMyAyLjM3IDMwLjdsMTIuNjMgMTRjMTUuNTEgMTcuOTMgMjQgMzEuODcgMjAuOCA1MC42Mi01LjA2IDI5LjkzLTQwLjcyIDUyLjktODIuODggMzkuOTQtMzYtMTEuMTEtNDIuNy0zNi41Ni0zOC4zOC01MC42MiA3LjUxLTI0LjE1IDQyLjM2LTExLjcyIDM0LjYyIDEzLjYtMi43OSA4LjYtNC45MiA4LjY4LTYuMjggMTMuMDctNC41NiAxNC43NyA0MS44NSAyOC40IDUxLTEuMzkgNC40Ny0xNC41Mi01LjMtMjEuNzEtMjIuMjUtMzkuODUtMjguNDctMzEuNzUtMTYtNjUuNDkgMi45NS03OS42N0MyMDQuMjMgMTQwLjEzIDI1MS45NCAxOTcgMjYyIDIwNS4yOWMzNy4xNy0xMDkgMTAwLjUzLTEwNS40NiAxMDIuNDMtMTA1LjUzIDI1LjE2LS44MSA0NC4xOSAxMC41OSA0NC44MyAyOC42NS4yNSA3LjY5LTQuMTcgMjIuNTktMTkuNTIgMjMuMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRlYW1zcGVhayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDQuMiAzNDYuNzljMi40LTEyLjMtMTItMzAtMzIuNC00OC43LTIwLjktMTkuMi00OC4yLTM5LjEtNjMuNC00Ni42LTIxLjctMTItNDEuNy0xLjgtNDYuMyAyMi43LTUgMjYuMiAwIDUxLjQgMTQuNSA3My45IDEwLjIgMTUuNSAyNS40IDIyLjcgNDMuNCAyNCAxMS42LjYgNTIuNSAyLjIgNjEuNy0xIDExLjktNC4zIDIwLjEtMTEuOCAyMi41LTI0LjN6bTIwNSAyMC44YTUuMjIgNS4yMiAwIDAgMC04LjMgMi40Yy04IDI1LjQtNDQuNyAxMTIuNS0xNzIuMSAxMjEuNS0xNDkuNyAxMC41IDgwLjMgNDMuNiAxNDUuNC02LjQgMjIuNy0xNy40IDQ3LjYtMzUgNDYuNi04NS40LS40LTEwLjEtNC45LTI2LjY5LTExLjYtMzIuMXptNjItMTIyLjRjLS4zLTE4LjktOC42LTMzLjQtMjYtNDIuMi0yLjktMS4zLTUtMi43LTUuOS02LjRBMjIyLjY0IDIyMi42NCAwIDAgMCA0MzguOSAxMDNjLTEuMS0xLjUtMy41LTMuMi0yLjItNSA4LjUtMTEuNS0uMy0xOC03LTI0LjRRMzIxLjQtMzEuMTEgMTc3LjQgMTMuMDljLTQwLjEgMTIuMy03My45IDM1LjYtMTAyIDY3LjQtNCA0LjMtNi43IDkuMS0zIDE0LjUgMyA0IDEuMyA2LjItMSA5LjNDNTEuNiAxMzIgMzguMiAxNjIuNTkgMzIuMSAxOTZjLS43IDQuMy0yLjkgNi02LjQgNy44LTE0LjIgNy0yMi41IDE4LjUtMjQuOSAzNEwwIDI2NC4yOXYyMC45YzAgMzAuOCAyMSA1MC40IDUxLjggNDkgNy43LS4zIDExLjctNC4zIDEyLTExLjUgMi03Ny41LTIuNC05NS40IDMuNy0xMjUuOEM5Mi4xIDcyLjM5IDIzNC4zIDUgMzQ1LjMgNjUuMzkgNDExLjQgMTAyIDQ0NS43IDE1OSA0NDcuNiAyMzQuNzljLjggMjguMiAwIDU2LjUgMCA4NC42IDAgNyAyLjIgMTIuNSA5LjQgMTQuMiAyNC4xIDUgNDkuMi0xMiA1My4yLTM2LjcgMi45LTE3LjEgMS0zNC41IDEtNTEuN3ptLTE1OS42IDEzMS41YzM2LjUgMi44IDU5LjMtMjguNSA1OC40LTYwLjUtMi4xLTQ1LjItNjYuMi0xNi41LTg3LjgtOC03My4yIDI4LjEtNDUgNTQuOS0yMi4yIDYwLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRlbGVncmFtUGxhbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ2LjcgOTguNmwtNjcuNiAzMTguOGMtNS4xIDIyLjUtMTguNCAyOC4xLTM3LjMgMTcuNWwtMTAzLTc1LjktNDkuNyA0Ny44Yy01LjUgNS41LTEwLjEgMTAuMS0yMC43IDEwLjFsNy40LTEwNC45IDE5MC45LTE3Mi41YzguMy03LjQtMS44LTExLjUtMTIuOS00LjFMMTE3LjggMjg0IDE2LjIgMjUyLjJjLTIyLjEtNi45LTIyLjUtMjIuMSA0LjYtMzIuN0w0MTguMiA2Ni40YzE4LjQtNi45IDM0LjUgNC4xIDI4LjUgMzIuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVsZWdyYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMTIxLjggMTY5LjlsLTQwLjcgMTkxLjhjLTMgMTMuNi0xMS4xIDE2LjktMjIuNCAxMC41bC02Mi00NS43LTI5LjkgMjguOGMtMy4zIDMuMy02LjEgNi4xLTEyLjUgNi4xbDQuNC02My4xIDExNC45LTEwMy44YzUtNC40LTEuMS02LjktNy43LTIuNWwtMTQyIDg5LjQtNjEuMi0xOS4xYy0xMy4zLTQuMi0xMy42LTEzLjMgMi44LTE5LjdsMjM5LjEtOTIuMmMxMS4xLTQgMjAuOCAyLjcgMTcuMiAxOS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZW5jZW50V2VpYm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzIuMyA0OTUuOGMxLjQgMTkuOS0yNy42IDIyLjItMjkuNyAyLjlDMzEgMzY4LjggNzMuNyAyNTkuMiAxNDQgMTg1LjVjLTE1LjYtMzQgOS4yLTc3LjEgNTAuNi03Ny4xIDMwLjMgMCA1NS4xIDI0LjYgNTUuMSA1NS4xIDAgNDQtNDkuNSA3MC44LTg2LjkgNDUuMS02NS43IDcxLjMtMTAxLjQgMTY5LjgtOTAuNSAyODcuMnpNMTkyIC4xQzY2LjEuMS0xMi4zIDEzNC4zIDQzLjcgMjQyLjQgNTIuNCAyNTkuOCA3OSAyNDYuOSA3MCAyMjkgMjMuNyAxMzYuNCA5MSAyOS44IDE5MiAyOS44Yzc1LjQgMCAxMzYuOSA2MS40IDEzNi45IDEzNi45IDAgOTAuOC04Ni45IDE1My45LTE2Ny43IDEzMy4xLTE5LjEtNC4xLTI1LjYgMjQuNC02LjYgMjkuMSAxMTAuNyAyMy4yIDIwNC02MCAyMDQtMTYyLjNDMzU4LjYgNzQuNyAyODQgLjEgMTkyIC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaGVSZWRZZXRpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4OC4yMyAyNDEuN2wyMC43IDcuMWMtOS42LTIzLjktMjMuOS0zNy0zMS43LTQ0LjhsNy4xLTE4LjJjLjIgMCAxMi4zLTI3LjgtMi41LTMwLjctLjYtMTEuMy02LjYtMjctMTguNC0yNy03LjYtMTAuNi0xNy43LTEyLjMtMzAuNy01LjlhMTIyLjIgMTIyLjIgMCAwIDAtMjUuMyAxNi41Yy01LjMtNi40LTMgLjQtMy0yOS44LTM3LjEtMjQuMy00NS40LTExLjctNzQuOCAzbC41LjVhMjM5LjM2IDIzOS4zNiAwIDAgMC02OC40LTEzLjNjLTUuNS04LjctMTguNi0xOS4xLTI1LjEtMjUuMWwyNC44IDcuMWMtNS41LTUuNS0yNi44LTEyLjktMzQuMi0xNS4yIDE4LjItNC4xIDI5LjgtMjAuOCA0Mi41LTMzLTM0LjktMTAuMS02Ny45LTUuOS05Ny45IDExLjhsMTItNDQuMkwxODIgMGMtMzEuNiAyNC4yLTMzIDQxLjktMzMuNyA0NS41LS45LTIuNC02LjMtMTkuNi0xNS4yLTI3YTM1LjEyIDM1LjEyIDAgMCAwLS41IDI1LjNjMyA4LjQgNS45IDE0LjggOC40IDE4LjktMTYtMy4zLTI4LjMtNC45LTQ5LjIgMGgtMy43bDMzIDE0LjNhMTk0LjI2IDE5NC4yNiAwIDAgMC00Ni43IDY3LjRsLTEuNyA4LjQgMS43IDEuNyA3LjYtNC43Yy0zLjMgMTEuNi01LjMgMTkuNC02LjYgMjUuOGEyMDAuMTggMjAwLjE4IDAgMCAwLTI3LjggNDAuM2MtMTUgMS0zMS44IDEwLjgtNDAuMyAxNC4zbDMgMy40IDI4LjggMWMtLjUgMS0uNyAyLjItMS4yIDMuMi03LjMgNi40LTM5LjggMzcuNy0zMyA4MC43bDIwLjItMjIuNGMuNSAxLjcuNyAzLjQgMS4yIDUuMiAwIDI1LjUuNCA4OS42IDY0LjkgMTUwLjUgNDMuNiA0MCA5NiA2MC4yIDE1Ny41IDYwLjIgMTIxLjcgMCAyMjMtODcuMyAyMjMtMjExLjUgNi44LTkuNy0xLjIgMyAxNi43LTI1LjFsMTMgMTQuMyAyLjUtLjVBMTgxLjg0IDE4MS44NCAwIDAgMCA0OTUgMjU1YTQ0Ljc0IDQ0Ljc0IDAgMCAwLTYuOC0xMy4zek0zOTggMTExLjJsLS41IDIxLjljNS41IDE4LjEgMTYuOSAxNy4yIDIyLjQgMTcuMmwtMy40LTQuNyAyMi40LTUuNGEyNDIuNDQgMjQyLjQ0IDAgMCAxLTI3IDBjMTIuOC0yLjEgMzMuMy0yOSA0My0xMS4zIDMuNCA3LjYgNi40IDE3LjIgOS4zIDI3LjhsMS43LTUuOWE1Ni4zOCA1Ni4zOCAwIDAgMS0xLjctMTUuMmM1LjQuNSA4LjggMy40IDkuMyAxMC4xLjUgNi40IDEuNyAxNC44IDMuNCAyNS4zbDQuNy0xMS4zYzQuNiAwIDQuNS0zLjYtMi41IDIwLjctMjAuOS04LjctMzUuMS04LjQtNDYuNS04LjRsMTguMi0xNmMtMjUuMyA4LjItMzMgMTAuOC01NC44IDIwLjktMS4xLTUuNC01LTEzLjUtMTYtMTkuOS0zLjIgMy44LTIuOC45LS43IDE0LjhoLTIuNWE2Mi4zMiA2Mi4zMiAwIDAgMC04LjQtMjMuMWw0LjItMy40YzguNC03LjEgMTEuOC0xNC4zIDEwLjYtMjEuOS0uNS02LjQtNS40LTEzLjUtMTMuNS0yMC43IDUuNi0zLjQgMTUuMi0uNCAyOC4zIDguNXptLTM5LjYtMTAuMWMyLjcgMS45IDExLjQgNS40IDE4LjkgMTcuMiA0LjIgOC40IDQgOS44IDMuNCAxMS4xLS41IDIuNC0uNSA0LjMtMyA3LjEtMS43IDIuNS01LjQgNC43LTExLjggNy42LTcuNi0xMy0xNi41LTIzLjYtMjcuOC0zMS4yek05MSAxNDMuMWwxLjItMS43YzEuMi0yLjkgNC4yLTcuNiA5LjMtMTUuMmwyLjUtMy40LTEzIDEyLjMgNS40LTQuNy0xMC4xIDkuMy00LjIgMS4yYzEyLjMtMjQuMSAyMy4xLTQxLjMgMzIuNS01MC4yIDkuMy05LjMgMTYtMTYgMjAuMi0xOS40bC02LjQgMS4yYy0xMS4zLTQuMi0xOS40LTcuMS0yNC44LTguNCAyLjUtLjUgMy43LS41IDMuMi0uNSAxMC4zIDAgMTcuNS41IDIwLjkgMS4yYTUyLjM1IDUyLjM1IDAgMCAwIDE2IDIuNWwuNS0xLjctOC40LTM1LjggMTMuNSAyOWE0Mi44OSA0Mi44OSAwIDAgMCA1LjktMTQuM2MxLjctNi40IDUuNC0xMyAxMC4xLTE5LjRzNy42LTEwLjYgOS4zLTExLjNhMjM0LjY4IDIzNC42OCAwIDAgMC02LjQgMjUuM2wtMS43IDcuMS0uNSA0LjcgMi41IDIuNUMxOTAuNCAzOS45IDIxNCAzNCAyMzkuOCAzNC41bDIxLjEuNWMtMTEuOCAxMy41LTI3LjggMjEuOS00OC41IDI0LjhhMjAxLjI2IDIwMS4yNiAwIDAgMS0yMy40IDIuOWwtLjItLjUtMi41LTEuMmEyMC43NSAyMC43NSAwIDAgMC0xNCAyYy0yLjUtLjItNC45LS41LTcuMS0uN2wtMi41IDEuNy41IDEuMmMyIC4yIDMuOS41IDYuMi43bC0yIDMuNCAzLjQtLjUtMTAuNiAxMS4zYy00LjIgMy01LjQgNi40LTQuMiA5LjNsNS40LTMuNGgxLjJhMzkuNCAzOS40IDAgMCAxIDI1LjMtMTUuMnYtM2M2LjQuNSAxMyAxIDE5LjQgMS4yIDYuNCAwIDguNC41IDUuNCAxLjJhMTg5LjYgMTg5LjYgMCAwIDEgMjAuNyAxMy41YzEzLjUgMTAuMSAyMy42IDIxLjkgMzAgMzUuNCA4LjggMTguMiAxMy41IDM3LjEgMTMuNSA1Ni42YTE0MS4xMyAxNDEuMTMgMCAwIDEtMyAyOC4zIDIwOS45MSAyMDkuOTEgMCAwIDEtMTYgNDZsMi41LjVjMTguMi0xOS43IDQxLjktMTYgNDkuMi0xNmwtNi40IDUuOSAyMi40IDE3LjctMS43IDMwLjdjLTUuNC0xMi4zLTE2LjUtMjEuMS0zMy0yNy44IDE2LjUgMTQuOCAyMy42IDIxLjEgMjEuOSAyMC4yLTQuOC0yLjgtMy41LTEuOS0xMC44LTMuNyA0LjEgNC4xIDE3LjUgMTguOCAxOC4yIDIwLjdsLjIuMi0uMi4yYzAgMS44IDEuNi0xLjItMTQgMjIuOS03NS4yLTE1LjMtMTA2LjI3LTQyLjctMTQxLjItNjMuMmwxMS44IDEuMmMtMTEuOC0xOC41LTE1LjYtMTcuNy0zOC40LTI2LjFMMTQ5IDIyNWMtOC44LTMtMTguMi0zLTI4LjMuNWw3LjYtMTAuNi0xLjItMS43Yy0xNC45IDQuMy0xOS44IDkuMi0yMi42IDExLjMtMS4xLTUuNS0yLjgtMTIuNC0xMi4zLTI4LjhsLTEuMiAyNy0xMy4yLTVjMS41LTI1LjIgNS40LTUwLjUgMTMuMi03NC42em0yNzYuNSAzMzBjLTQ5LjkgMjUtNTYuMSAyMi40LTU5IDIzLjktMjkuOC0xMS44LTUwLjktMzEuNy02My41LTU4LjhsMzAgMTYuNWMtOS44LTkuMy0xOC4zLTE2LjUtMzguNC00NC4zbDExLjggMjMuMS0xNy43LTcuNmMxNC4yIDIxLjEgMjMuNSA1MS43IDY2LjYgNzMuNS0xMjAuOCAyNC4yLTE5OS03Mi4xLTIwMC45LTc0LjNhMjYyLjU3IDI2Mi41NyAwIDAgMCAzNS40IDI0LjhjMy40IDEuNyA3LjEgMi41IDEwLjEgMS4ybC0xNi0yMC43YzkuMiA0LjIgOS41IDQuNSA2OS4xIDI5LTQyLjUtMjAuNy03My44LTQwLjgtOTMuMi02MC4yLS41IDYuNC0xLjIgMTAuMS0xLjIgMTAuMWE4MC4yNSA4MC4yNSAwIDAgMSAyMC43IDI2LjZjLTM5LTE4LjktNTcuNi00Ny42LTcxLjMtODIuNiA0OS45IDU1LjEgMTE4LjkgMzcuNSAxMjAuNSAzNy4xIDM0LjggMTYuNCA2OS45IDIzLjYgMTEzLjkgMTAuNiAzLjMgMCAyMC4zIDE3IDI1LjMgMzkuMWw0LjItMy0yLjUtMjMuNmM5IDkgMjQuOSAyMi42IDM0LjQgMTMtMTUuNi01LjMtMjMuNS05LjUtMjkuNS0zMS43IDQuNiA0LjIgNy42IDkgMjcuOCAxNWwxLjItMS4yLTEwLjUtMTQuMmMxMS43LTQuOC0zLjUgMSAzMi0xMC44IDQuMyAzNC4zIDkgNDkuMi43IDg5LjV6bTExNS4zLTIxNC40bC0yLjUuNSAzIDkuM2MtMy41IDUuOS0yMy43IDQ0LjMtNzEuNiA3OS43LTM5LjUgMjkuOC03Ni42IDM5LjEtODAuOSA0MC4zbC03LjYtNy4xLTEuMiAzIDE0LjMgMTYtNy4xLTQuNyAzLjQgNC4yaC0xLjJsLTIxLjktMTMuNSA5LjMgMjYuNi0xOS0yNy45LTEuMiAyLjUgNy42IDI5Yy02LjEtOC4yLTIxLTMyLjYtNTYuOC0zOS42bDMyLjUgMjEuMmEyMTQuODIgMjE0LjgyIDAgMCAxLTkzLjItNi40Yy00LjItMS4yLTguOS0yLjUtMTMuNS00LjJsMS4yLTMtNDQuOC0yMi40IDI2LjEgMjIuNGMtNTcuNyA5LjEtMTEzLTI1LjQtMTI2LjQtODMuNGwtMi41LTE2LjQtMjIuMjcgMjIuM2MxOS41LTU3LjUgMjUuNi01Ny45IDUxLjQtNzAuMS05LjEtNS4zLTEuNi0zLjMtMzguNC05LjMgMTUuOC01LjggMzMtMTUuNCA3MyA1LjJhMTguNSAxOC41IDAgMCAxIDMuNy0xLjdjLjYtMy4yLjQtLjggMS0xMS44IDMuOSAxMCAzLjYgOC43IDMgOS4zbDEuNy41YzEyLjctNi41IDguOS00LjUgMTctOC45bC01LjQgMTMuNSAyMi4zLTUuOC04LjQgOC40IDIuNSAyLjVjNC41LTEuOCAzMC4zIDMuNCA0MC44IDE2bC0yMy42LTIuNWMzOS40IDIzIDUxLjUgNTQgNTUuOCA2OS42bDEuNy0xLjJjLTIuOC0yMi4zLTEyLjQtMzMuOS0xNi00MC4xIDQuMiA1IDM5LjIgMzQuNiAxMTAuNCA0Ni0xMS4zLS41LTIzLjEgNS40LTM0LjkgMTguOWw0Ni43LTIwLjItOS4zIDIxLjljNy42LTEwLjEgMTQuOC0yMy42IDIxLjItMzkuNnYtLjVsMS4yLTMtMS4yIDE2YzEzLjUtNDEuOCAyNS4zLTc4LjUgMzUuNC0xMDkuN2wxMy41LTI3Ljh2LTJsLTUuNC00LjJoMTAuMWw1LjkgNC4yIDIuNS0xLjItMy40LTE2IDEyLjMgMTguOSA0MS44LTIwLjItMTQuOCAxMyAuNSAyLjkgMTcuNy0uNWExODQgMTg0IDAgMCAxIDMzIDQuMmwtMjMuNiAyLjUtMS4yIDMgMjYuNiAyMy4xYTI1NC4yMSAyNTQuMjEgMCAwIDEgMjcgMzJjLTExLjItMy4zLTEwLjMtMy40LTIxLjItMy40bDEyLjMgMzIuNXptLTYuMS03MS4zbC0zLjkgMTMtMTQuMy0xMS44em0tMjU0LjggNy4xYzEuNyAxMC42IDQuNyAxNy43IDguOCAyMS45LTkuMyA2LjYtMjcuNSAxMy45LTQ2LjUgMTZsLjUgMS4yYTUwLjIyIDUwLjIyIDAgMCAwIDI0LjgtMi41bC03LjEgMTNjNC4yLTEuNyAxMC4xLTcuMSAxNy43LTE0LjggMTEuOS01LjUgMTIuNy01LjEgMjAuMi0xNi0xMi43LTYuNC0xNS43LTEzLjctMTguNC0xOC44em0zLjctMTAyLjNjLTYuNC0zLjQtMTAuNiAzLTEyLjMgMTguOXMyLjUgMjkuNSAxMS44IDM5LjYgMTguMiAxMC42IDI2LjEgMyAzLjQtMjMuNi0xMS4zLTQ3LjdhMzkuNTcgMzkuNTcgMCAwIDAtMTQuMjctMTMuOHptLTQuNyA0Ni4zYzUuNCAyLjIgMTAuNSAxLjkgMTIuMy0xMC42di00LjdsLTEuMi41Yy00LjMtMy4xLTIuNS00LjUtMS43LTYuMmwuNS0uNWMtLjktMS4yLTUtOC4xLTEyLjUgNC43LS41LTEzLjUuNS0yMS45IDMtMjQuOCAxLjItMi41IDQuNy0xLjIgMTEuMyA0LjIgNi40IDUuNCAxMS4zIDE2IDE1LjIgMzIuNSA2LjUgMjgtMTkuOCAyNi4yLTI2LjkgNC45em0tNDUtNS41YzEuNi4zIDkuMy0xLjEgOS4zLTE0LjhoLS41Yy01LjQtMS4xLTIuMi01LjUtLjctNS45LTEuNy0zLTMuNC00LjItNS40LTQuNy04LjEgMC0xMS42IDEyLjctOC4xIDIxLjJhNy41MSA3LjUxIDAgMCAwIDUuNDMgNC4yek0yMTYgODIuOWwtMi41LjUuNSAzYTQ4Ljk0IDQ4Ljk0IDAgMCAxIDI2LjEgNS45Yy0yLjUtNS41LTEwLTE0LjMtMjguMy0xNC4zbC41IDIuNXptLTcxLjggNDkuNGMyMS43IDE2LjggMTYuNSAyMS40IDQ2LjUgMjMuNmwtMi45LTQuN2E0Mi42NyA0Mi42NyAwIDAgMCAxNC44LTI4LjNjMS43LTE2LTEuMi0yOS41LTguOC00MS4zbDEzLTcuNmEyLjI2IDIuMjYgMCAwIDAtLjUtMS43IDE0LjIxIDE0LjIxIDAgMCAwLTEzLjUgMS43Yy0xMi43IDYuNy0yOCAyMC45LTI5IDIyLjQtMS43IDEuNy0zLjQgNS45LTUuNCAxMy41YTk5LjYxIDk5LjYxIDAgMCAwLTIuOSAyMy42Yy00LjctOC0xMC41LTYuNC0xOS45LTUuOWw3LjEgNy42Yy0xNi41IDAtMjMuMyAxNS40LTIzLjYgMTYgNi44IDAgNC42LTcuNiAzMC0xMi4zLTQuMy02LjMtMy4zLTUtNC45LTYuNnptMTguNy0xOC43YzEuMi03LjYgMy40LTEzIDYuNC0xNy4yIDUuNC02LjQgMTAuNi0xMC4xIDE2LTExLjggNC4yLTEuNyA3LjEgMS4yIDEwLjEgOS4zYTcyLjE0IDcyLjE0IDAgMCAxIDMgMjUuM2MtLjUgOS4zLTMuNCAxNy4yLTguNCAyMy4xLTIuOSAzLjQtNS40IDUuOS02LjQgNy42YTM5LjIxIDM5LjIxIDAgMCAxLTExLjMtLjVsLTcuMS0zLjQtNS40LTYuNGMuOC0xMCAxLjMtMTguOCAzLjEtMjZ6bTQyIDU2LjFjLTM0LjggMTQuNC0zNC43IDE0LTM2LjEgMTQuMy0yMC44IDQuNy0xOS0yNC40LTE4LjktMjQuOGw1LjktMS4yLS41LTIuNWMtMjAuMi0yLjYtMzEgNC4yLTMyLjUgNC45LjUuNSAzIDMuNCA1LjkgOS4zIDQuMi02LjQgOC44LTEwLjEgMTUuMi0xMC42YTgzLjQ3IDgzLjQ3IDAgMCAwIDEuNyAzMy43Yy4xLjUgMi42IDE3LjQgMjcuNSAyNC4xIDExLjMgMyAyNyAxLjIgNDguOS01LjRsLTkuMi41Yy00LjItMTQuOC02LjQtMjQuOC01LjktMjkuNSAxMS4zLTguOCAyMS45LTExLjMgMzAuNy03LjZoMi41bC0xMS44LTcuNi03LjEuNWMtNS45IDEuMi0xMi4zIDQuMi0xOS40IDguNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGhlbWVjbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDIuOSA4LjQzYzkuOS01LjczIDI2LTUuODIgMzUuOTUtLjIxTDQzMCAxMTUuODVjMTAgNS42IDE4IDE5LjQ0IDE4IDMwLjg2VjM2NGMwIDExLjQ0LTguMDYgMjUuMjktMTggMzFMMjM4LjgxIDUwMy43NGMtOS45MyA1LjY2LTI2IDUuNTctMzUuODUtLjIxTDE3Ljg2IDM5NS4xMkM4IDM4OS4zNCAwIDM3NS4zOCAwIDM2NFYxNDYuNzFjMC0xMS40NCA4LTI1LjM2IDE3LjkxLTMxLjA4em0tNzcuNCAxOTkuODNjLTE1Ljk0IDAtMzEuODkuMTQtNDcuODMuMTR2MTAxLjQ1SDk2LjhWMjgwaDI4LjdjNDkuNzEgMCA0OS41Ni03MS43NCAwLTcxLjc0em0xNDAuMTQgMTAwLjI5bC0zMC43My0zNC42NGMzNy03LjUxIDM0LjgtNjUuMjMtMTAuODctNjUuNTEtMTYuMDkgMC0zMi4xNy0uMTQtNDguMjYtLjE0djEwMS41OWgxOS4xM3YtMzMuOTFoMTguNDFsMjkuNTYgMzMuOTFoMjIuNzZ6bS00MS41OS04Mi4zMmMyMy4zNCAwIDIzLjI2IDMyLjQ2IDAgMzIuNDZoLTI5LjEzdi0zMi40NnptLTk1LjU2LTEuNmMyMS4xOCAwIDIxLjExIDM4Ljg1IDAgMzguODVIOTYuMTh2LTM4Ljg0em0xOTIuNjUtMTguMjVjLTY4LjQ2IDAtNzEgMTA1LjggMCAxMDUuOCA2OS40OC0uMDEgNjkuNDEtMTA1LjggMC0xMDUuOHptMCAxNy4zOWM0NC4xMiAwIDQ0LjggNzAuODYgMCA3MC44NnMtNDQuNDMtNzAuODYgMC03MC44NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGhlbWVpc2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOCA4OC4yODZjMC0xMCA2LjI4Ni0yMS43MTQgMTcuNzE1LTIxLjcxNCAxMS4xNDIgMCAxNy43MTQgMTEuNzE0IDE3LjcxNCAyMS43MTQgMCAxMC4yODUtNi41NzIgMjEuNzE0LTE3LjcxNCAyMS43MTRDMjE0LjI4NiAxMTAgMjA4IDk4LjU3MSAyMDggODguMjg2em0zMDQgMTYwYzAgMzYuMDAxLTExLjQyOSAxMDIuMjg2LTM2LjI4NiAxMjkuNzE0LTIyLjg1OCAyNC44NTgtODcuNDI4IDYxLjE0My0xMjAuODU3IDcwLjU3MmwtMS4xNDMuMjg2djMyLjU3MWMwIDE2LjI4Ni0xMi41NzIgMzAuNTcxLTI5LjE0MyAzMC41NzEtMTAgMC0xOS40MjktNS43MTQtMjQuNTcyLTE0LjI4Ni01LjQyNyA4LjU3Mi0xNC44NTYgMTQuMjg2LTI0Ljg1NiAxNC4yODYtMTAgMC0xOS40MjktNS43MTQtMjQuODU4LTE0LjI4Ni01LjE0MiA4LjU3Mi0xNC41NzEgMTQuMjg2LTI0LjU3IDE0LjI4Ni0xMC4yODYgMC0xOS40MjktNS43MTQtMjQuODU4LTE0LjI4Ni01LjE0MyA4LjU3Mi0xNC41NzEgMTQuMjg2LTI0LjU3MSAxNC4yODYtMTguODU3IDAtMjkuNDI5LTE1LjcxNC0yOS40MjktMzIuODU3LTE2LjI4NiAxMi4yODUtMzUuNzE1IDE5LjQyOC01Ni41NzEgMTkuNDI4LTIyIDAtNDMuNDI5LTguMjg1LTYwLjI4Ni0yMi44NTcgMTAuMjg1LS4yODYgMjAuNTcxLTIuMjg2IDMwLjI4NS01LjcxNC0yMC44NTctNS43MTQtMzkuNDI4LTE4Ljg1Ny01Mi0zNi4yODYgMjEuMzcgNC42NDUgNDYuMjA5IDEuNjczIDY3LjE0My0xMS4xNDMtMjItMjItNTYuNTcxLTU4Ljg1Ny02OC41NzItODcuNDI4QzEuMTQzIDMyMS43MTQgMCAzMDMuNzE0IDAgMjg5LjQyOWMwLTQ5LjcxNCAyMC4yODYtMTYwIDg2LjI4Ni0xNjAgMTAuNTcxIDAgMTguODU3IDQuODU4IDIzLjE0MyAxNC44NTdhMTU4Ljc5MiAxNTguNzkyIDAgMCAxIDEyLTE1LjQyOGMyLTIuNTcyIDUuNzE0LTUuNDI5IDcuMTQzLTguMjg2IDcuOTk5LTEyLjU3MSAxMS43MTQtMjEuMTQyIDIxLjcxNC0zNEMxODIuNTcxIDQ1LjQyOCAyMzIgMTcuMTQzIDI4NS4xNDMgMTcuMTQzYzYgMCAxMiAuMjg1IDE3LjcxNCAxLjE0M0MzMTMuNzE0IDYuNTcxIDMyOC44NTcgMCAzNDQuNTcyIDBjMTQuNTcxIDAgMjkuNzE0IDYgNDAgMTYuMjg2Ljg1Ny44NTggMS40MjggMi4yODYgMS40MjggMy40MjggMCAzLjcxNC0xMC4yODUgMTMuNDI5LTEyLjg1NyAxNi4yODYgNC4yODYgMS40MjkgMTUuNzE0IDYuODU4IDE1LjcxNCAxMiAwIDIuODU3LTIuODU3IDUuMTQzLTQuNTcxIDcuMTQzIDMxLjQyOSAyNy43MTQgNDkuNDI5IDY3LjE0MyA1Ni4yODYgMTA4IDQuMjg2LTUuMTQzIDEwLjI4NS04LjU3MiAxNy4xNDMtOC41NzIgMTAuNTcxIDAgMjAuODU3IDcuMTQ0IDI4LjU3MSAxNC4wMDFDNTA3LjE0MyAxODcuMTQzIDUxMiAyMjEuNzE0IDUxMiAyNDguMjg2ek0xODggODkuNDI4YzAgMTguMjg2IDEyLjU3MSAzNy4xNDMgMzIuMjg2IDM3LjE0MyAxOS43MTQgMCAzMi4yODUtMTguODU3IDMyLjI4NS0zNy4xNDMgMC0xOC0xMi41NzEtMzYuODU3LTMyLjI4NS0zNi44NTctMTkuNzE1IDAtMzIuMjg2IDE4Ljg1OC0zMi4yODYgMzYuODU3ek0yMzcuNzE0IDE5NGMwLTE5LjcxNCAzLjcxNC0zOS4xNDMgOC41NzEtNTguMjg2LTUyLjAzOSA3OS41MzQtMTMuNTMxIDE4NC41NzEgNjguODU4IDE4NC41NzEgMjEuNDI4IDAgNDIuNTcxLTcuNzE0IDYwLTIwIDItNy40MjkgMy43MTQtMTQuODU3IDMuNzE0LTIyLjU3MiAwLTE0LjI4Ni02LjI4Ni0yMS40MjgtMjAuNTcyLTIxLjQyOC00LjU3MSAwLTkuMTQzLjg1Ny0xMy40MjkgMS43MTQtNjMuMzQzIDEyLjY2OC0xMDcuMTQyIDMuNjY5LTEwNy4xNDItNjMuOTk5em0tNDEuMTQyIDI1NC44NThjMC0xMS4xNDMtOC44NTgtMjAuODU3LTIwLjI4Ni0yMC44NTctMTEuNDI5IDAtMjAgOS43MTUtMjAgMjAuODU3djMyLjU3MWMwIDExLjE0MyA4LjU3MSAyMS4xNDIgMjAgMjEuMTQyIDExLjQyOCAwIDIwLjI4Ni05LjcxNSAyMC4yODYtMjEuMTQydi0zMi41NzF6bTQ5LjE0MyAwYzAtMTEuMTQzLTguNTcyLTIwLjg1Ny0yMC0yMC44NTctMTEuNDI5IDAtMjAuMjg2IDkuNzE1LTIwLjI4NiAyMC44NTd2MzIuNTcxYzAgMTEuMTQzIDguODU3IDIxLjE0MiAyMC4yODYgMjEuMTQyIDExLjQyOCAwIDIwLTEwIDIwLTIxLjE0MnYtMzIuNTcxem00OS43MTMgMGMwLTExLjE0My04Ljg1Ny0yMC44NTctMjAuMjg1LTIwLjg1Ny0xMS40MjkgMC0yMC4yODYgOS43MTUtMjAuMjg2IDIwLjg1N3YzMi41NzFjMCAxMS4xNDMgOC44NTcgMjEuMTQyIDIwLjI4NiAyMS4xNDIgMTEuNDI4IDAgMjAuMjg1LTkuNzE1IDIwLjI4NS0yMS4xNDJ2LTMyLjU3MXptNDkuNzE1IDBjMC0xMS4xNDMtOC44NTctMjAuODU3LTIwLjI4Ni0yMC44NTctMTEuNDI4IDAtMjAuMjg2IDkuNzE1LTIwLjI4NiAyMC44NTd2MzIuNTcxYzAgMTEuMTQzIDguODU4IDIxLjE0MiAyMC4yODYgMjEuMTQyIDExLjQyOSAwIDIwLjI4Ni0xMCAyMC4yODYtMjEuMTQydi0zMi41NzF6TTQyMS43MTQgMjg2Yy0zMC44NTcgNTkuMTQyLTkwLjI4NSAxMDIuNTcyLTE1OC41NzEgMTAyLjU3Mi05Ni41NzEgMC0xNjAuNTcxLTg0LjU3Mi0xNjAuNTcxLTE3Ni41NzIgMC0xNi44NTcgMi0zMy40MjkgNi00OS43MTQtMjAgMzMuNzE1LTI5LjcxNCA3Mi41NzItMjkuNzE0IDExMS40MjkgMCA2MC4yODYgMjQuODU3IDEyMS43MTUgNzEuNDI5IDE2MC44NTcgNS4xNDMtOS43MTQgMTQuODU3LTE2LjI4NiAyNi0xNi4yODYgMTAgMCAxOS40MjggNS43MTQgMjQuNTcxIDE0LjI4NiA1LjQyOS04LjU3MSAxNC41NzEtMTQuMjg2IDI0Ljg1OC0xNC4yODYgMTAgMCAxOS40MjggNS43MTQgMjQuNTcxIDE0LjI4NiA1LjQyOS04LjU3MSAxNC44NTctMTQuMjg2IDI0Ljg1OC0xNC4yODYgMTAgMCAxOS40MjggNS43MTQgMjQuODU3IDE0LjI4NiA1LjE0My04LjU3MSAxNC41NzEtMTQuMjg2IDI0LjU3Mi0xNC4yODYgMTAuODU3IDAgMjAuODU3IDYuNTcyIDI1LjcxNCAxNiA0My40MjctMzYuMjg2IDY4LjU2OS05MiA3MS40MjYtMTQ4LjI4NnptMTAuNTcyLTk5LjcxNGMwLTUzLjcxNC0zNC41NzEtMTA1LjcxNC05Mi41NzItMTA1LjcxNC0zMC4yODUgMC01OC41NzEgMTUuMTQzLTc4Ljg1NyAzNi44NTdDMjQwLjg2MiAxODMuODEyIDIzMy40MSAyNTQgMzAyLjI4NiAyNTRjMjguODA1IDAgOTcuMzU3LTI4LjUzOCA4NC4yODYgMzYuODU3IDI4Ljg1Ny0yNiA0NS43MTQtNjUuNzE0IDQ1LjcxNC0xMDQuNTcxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaGlua1BlYWtzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NS40IDQwOS40bDg3LjEtMTUwLjItMzItLjMtNTUuMSA5NUwyNTkuMiAwIDIzIDQwNy40bDMyIC4zTDI1OS4yIDU1LjZ6bS0zNTUuMy00NC4xaDMyLjFsMTE3LjQtMjAyLjVMNDYzIDUxMS45bDMyLjUuMS0yMzUuOC00MDQuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGlrdG9rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCwyMDkuOTFhMjEwLjA2LDIxMC4wNiwwLDAsMS0xMjIuNzctMzkuMjVWMzQ5LjM4QTE2Mi41NSwxNjIuNTUsMCwxLDEsMTg1LDE4OC4zMVYyNzguMmE3NC42Miw3NC42MiwwLDEsMCw1Mi4yMyw3MS4xOFYwbDg4LDBhMTIxLjE4LDEyMS4xOCwwLDAsMCwxLjg2LDIyLjE3aDBBMTIyLjE4LDEyMi4xOCwwLDAsMCwzODEsMTAyLjM5YTEyMS40MywxMjEuNDMsMCwwLDAsNjcsMjAuMTRaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyYWRlRmVkZXJhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOC44Yy0xMzcgMC0yNDggMTExLTI0OCAyNDhzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OC0xMTEtMjQ4LTI0OC0yNDh6bTAgNDgyLjhjLTEyOS43IDAtMjM0LjgtMTA1LjEtMjM0LjgtMjM0LjhTMTE4LjMgMjIgMjQ4IDIyczIzNC44IDEwNS4xIDIzNC44IDIzNC44UzM3Ny43IDQ5MS42IDI0OCA0OTEuNnptMTU1LjEtMzI4LjV2LTQ2LjhIMjA5LjNWMTk4SDU0LjJsMzYuNyA0NmgxMTcuN3YxOTYuOGg0OC44VjI0NWg4My4zdi00N2gtODMuM3YtMzQuOGgxNDUuN3ptLTczLjMgNDUuMXYyMy45aC04Mi45djE5Ny40aC0yNi44VjIzMi4xSDk2LjNsLTIwLjEtMjMuOWgxNDMuOXYtODAuNmgxNzEuOFYxNTJoLTE0NXY1Ni4yem0tMTYxLjMtNjlsLTEyLjQtMjAuNyAyLjEgMjMuOC0yMy41IDUuNCAyMy4zIDUuNC0yLjEgMjQgMTIuMy0yMC41IDIyLjIgOS41LTE1LjctMTguMSAxNS44LTE4LjF6bS0yOS42LTE5LjdsOS4zLTExLjUtMTIuNyA1LjktOC0xMi40IDEuNyAxMy45LTE0LjMgMy44IDEzLjcgMi43LS44IDE0LjcgNi44LTEyLjIgMTMuOCA1LjN6bTE2NS40IDE0NS4ybC0xMy4xIDUuNi03LjMtMTIuMiAxLjMgMTQuMi0xMy45IDMuMiAxMy45IDMuMi0xLjIgMTQuMiA3LjMtMTIuMiAxMy4xIDUuNS05LjQtMTAuN3ptMTA2LjktNzcuMmwtMjAuOSA5LjEtMTItMTkuNiAyLjIgMjIuNy0yMi4zIDUuNCAyMi4yIDQuOS0xLjggMjIuOSAxMS41LTE5LjYgMjEuMiA4LjgtMTUuMS0xN3pNMjQ4IDI5LjljLTEyNS4zIDAtMjI2LjkgMTAxLjYtMjI2LjkgMjI2LjlTMTIyLjcgNDgzLjcgMjQ4IDQ4My43czIyNi45LTEwMS42IDIyNi45LTIyNi45UzM3My4zIDI5LjkgMjQ4IDI5Ljl6TTM0Mi42IDE5NnY1MWgtODMuM3YxOTUuN2gtNTIuN1YyNDUuOUg4OS45bC00MC00OS45aDE1Ny40di04MS42aDE5Ny44djUwLjdIMjU5LjRWMTk2ek0yNDggNDMuMmM2MC4zIDAgMTE0LjggMjUgMTUzLjYgNjUuMkgyMDIuNVYxOTBINDUuMUM3My4xIDEwNC44IDE1My40IDQzLjIgMjQ4IDQzLjJ6bTAgNDI3LjFjLTExNy45IDAtMjEzLjYtOTUuNi0yMTMuNi0yMTMuNSAwLTIxLjIgMy4xLTQxLjggOC45LTYxLjFMODcuMSAyNTJoMTE0Ljd2MTk2LjhoNjQuNlYyNTNoODMuM3YtNjIuN2gtODMuMnYtMTkuMmgxNDUuNnYtNTAuOGMzMC44IDM3IDQ5LjMgODQuNiA0OS4zIDEzNi41LjEgMTE3LjktOTUuNSAyMTMuNS0yMTMuNCAyMTMuNXpNMTc4LjggMjc1bC0xMS0yMS40IDEuNyAyNC41LTIzLjcgMy45IDIzLjggNS45LTMuNyAyMy44IDEzLTIwLjkgMjEuNSAxMC44LTE1LjgtMTguOCAxNi45LTE3LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyZWxsbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTIuMyAzMkg1Ni4xQzI1LjEgMzIgMCA1Ny4xIDAgODhjLS4xIDAgMC00IDAgMzM2IDAgMzAuOSAyNS4xIDU2IDU2IDU2aDMzNi4yYzMwLjgtLjIgNTUuNy0yNS4yIDU1LjctNTZWODhjLjEtMzAuOC0yNC44LTU1LjgtNTUuNi01NnpNMTk3IDM3MS4zYy0uMiAxNC43LTEyLjEgMjYuNi0yNi45IDI2LjZIODcuNGMtMTQuOC4xLTI2LjktMTEuOC0yNy0yNi42VjExNy4xYzAtMTQuOCAxMi0yNi45IDI2LjktMjYuOWg4Mi45YzE0LjggMCAyNi45IDEyIDI2LjkgMjYuOXYyNTQuMnptMTkzLjEtMTEyYzAgMTQuOC0xMiAyNi45LTI2LjkgMjYuOWgtODFjLTE0LjggMC0yNi45LTEyLTI2LjktMjYuOVYxMTcuMmMwLTE0LjggMTItMjYuOSAyNi44LTI2LjloODEuMWMxNC44IDAgMjYuOSAxMiAyNi45IDI2Ljl2MTQyLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyaXBhZHZpc29yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyOC45MSwxNzguODIsNTc2LDEyNy41OEg0NzEuNjZhMzI2LjExLDMyNi4xMSwwLDAsMC0zNjcsMEgwbDQ3LjA5LDUxLjI0QTE0My45MTEsMTQzLjkxMSwwLDAsMCwyNDEuODYsMzkwLjczTDI4OCw0NDAuOTNsNDYuMTEtNTAuMTdBMTQzLjk0LDE0My45NCwwLDAsMCw1NzUuODgsMjg1LjE4aC0uMDNBMTQzLjU2LDE0My41NiwwLDAsMCw1MjguOTEsMTc4LjgyWk0xNDQuMDYsMzgyLjU3YTk3LjM5LDk3LjM5LDAsMSwxLDk3LjM5LTk3LjM5QTk3LjM5LDk3LjM5LDAsMCwxLDE0NC4wNiwzODIuNTdaTTI4OCwyODIuMzdjMC02NC4wOS00Ni42Mi0xMTkuMDgtMTA4LjA5LTE0Mi41OWEyODEsMjgxLDAsMCwxLDIxNi4xNywwQzMzNC42MSwxNjMuMywyODgsMjE4LjI5LDI4OCwyODIuMzdabTE0My44OCwxMDAuMmgtLjAxYTk3LjQwNSw5Ny40MDUsMCwxLDEsLjAxLDBaTTE0NC4wNiwyMzQuMTJoLS4wMWE1MS4wNiw1MS4wNiwwLDEsMCw1MS4wNiw1MS4wNnYtLjExQTUxLDUxLDAsMCwwLDE0NC4wNiwyMzQuMTJabTI4Ny44MiwwYTUxLjA2LDUxLjA2LDAsMSwwLDUxLjA2LDUxLjA2QTUxLjA2LDUxLjA2LDAsMCwwLDQzMS44OCwyMzQuMTJaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVR1bWJsclNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tODIuMyAzNjQuMmMtOC41IDkuMS0zMS4yIDE5LjgtNjAuOSAxOS44LTc1LjUgMC05MS45LTU1LjUtOTEuOS04Ny45di05MGgtMjkuN2MtMy40IDAtNi4yLTIuOC02LjItNi4ydi00Mi41YzAtNC41IDIuOC04LjUgNy4xLTEwIDM4LjgtMTMuNyA1MC45LTQ3LjUgNTIuNy03My4yLjUtNi45IDQuMS0xMC4yIDEwLTEwLjJoNDQuM2MzLjQgMCA2LjIgMi44IDYuMiA2LjJ2NzJoNTEuOWMzLjQgMCA2LjIgMi44IDYuMiA2LjJ2NTEuMWMwIDMuNC0yLjggNi4yLTYuMiA2LjJoLTUyLjFWMzIxYzAgMjEuNCAxNC44IDMzLjUgNDIuNSAyMi40IDMtMS4yIDUuNi0yIDgtMS40IDIuMi41IDMuNiAyLjEgNC42IDQuOWwxMy44IDQwLjJjMSAzLjIgMiA2LjctLjMgOS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUdW1ibHIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA5LjggNDgwLjNjLTEzLjYgMTQuNS01MCAzMS43LTk3LjQgMzEuNy0xMjAuOCAwLTE0Ny04OC44LTE0Ny0xNDAuNnYtMTQ0SDE3LjljLTUuNSAwLTEwLTQuNS0xMC0xMHYtNjhjMC03LjIgNC41LTEzLjYgMTEuMy0xNiA2Mi0yMS44IDgxLjUtNzYgODQuMy0xMTcuMS44LTExIDYuNS0xNi4zIDE2LjEtMTYuM2g3MC45YzUuNSAwIDEwIDQuNSAxMCAxMHYxMTUuMmg4M2M1LjUgMCAxMCA0LjQgMTAgOS45djgxLjdjMCA1LjUtNC41IDEwLTEwIDEwaC04My40VjM2MGMwIDM0LjIgMjMuNyA1My42IDY4IDM1LjggNC44LTEuOSA5LTMuMiAxMi43LTIuMiAzLjUuOSA1LjggMy40IDcuNCA3LjlsMjIgNjQuM2MxLjggNSAzLjMgMTAuNi0uNCAxNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUd2l0Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzkxLjE3LDEwMy40N0gzNTIuNTR2MTA5LjdoMzguNjNaTTI4NSwxMDNIMjQ2LjM3VjIxMi43NUgyODVaTTEyMC44MywwLDI0LjMxLDkxLjQyVjQyMC41OEgxNDAuMTRWNTEybDk2LjUzLTkxLjQyaDc3LjI1TDQ4Ny42OSwyNTZWMFpNNDQ5LjA3LDIzNy43NWwtNzcuMjIsNzMuMTJIMjk0LjYxbC02Ny42LDY0di02NEgxNDAuMTRWMzYuNThINDQ5LjA3WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUd2l0dGVyU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS00OC45IDE1OC44Yy4yIDIuOC4yIDUuNy4yIDguNSAwIDg2LjctNjYgMTg2LjYtMTg2LjYgMTg2LjYtMzcuMiAwLTcxLjctMTAuOC0xMDAuNy0yOS40IDUuMy42IDEwLjQuOCAxNS44LjggMzAuNyAwIDU4LjktMTAuNCA4MS40LTI4LTI4LjgtLjYtNTMtMTkuNS02MS4zLTQ1LjUgMTAuMSAxLjUgMTkuMiAxLjUgMjkuNi0xLjItMzAtNi4xLTUyLjUtMzIuNS01Mi41LTY0LjR2LS44YzguNyA0LjkgMTguOSA3LjkgMjkuNiA4LjNhNjUuNDQ3IDY1LjQ0NyAwIDAgMS0yOS4yLTU0LjZjMC0xMi4yIDMuMi0yMy40IDguOS0zMy4xIDMyLjMgMzkuOCA4MC44IDY1LjggMTM1LjIgNjguNi05LjMtNDQuNSAyNC04MC42IDY0LTgwLjYgMTguOSAwIDM1LjkgNy45IDQ3LjkgMjAuNyAxNC44LTIuOCAyOS04LjMgNDEuNi0xNS44LTQuOSAxNS4yLTE1LjIgMjgtMjguOCAzNi4xIDEzLjItMS40IDI2LTUuMSAzNy44LTEwLjItOC45IDEzLjEtMjAuMSAyNC43LTMyLjkgMzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVR3aXR0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDU5LjM3IDE1MS43MTZjLjMyNSA0LjU0OC4zMjUgOS4wOTcuMzI1IDEzLjY0NSAwIDEzOC43Mi0xMDUuNTgzIDI5OC41NTgtMjk4LjU1OCAyOTguNTU4LTU5LjQ1MiAwLTExNC42OC0xNy4yMTktMTYxLjEzNy00Ny4xMDYgOC40NDcuOTc0IDE2LjU2OCAxLjI5OSAyNS4zNCAxLjI5OSA0OS4wNTUgMCA5NC4yMTMtMTYuNTY4IDEzMC4yNzQtNDQuODMyLTQ2LjEzMi0uOTc1LTg0Ljc5Mi0zMS4xODgtOTguMTEyLTcyLjc3MiA2LjQ5OC45NzQgMTIuOTk1IDEuNjI0IDE5LjgxOCAxLjYyNCA5LjQyMSAwIDE4Ljg0My0xLjMgMjcuNjE0LTMuNTczLTQ4LjA4MS05Ljc0Ny04NC4xNDMtNTEuOTgtODQuMTQzLTEwMi45ODV2LTEuMjk5YzEzLjk2OSA3Ljc5NyAzMC4yMTQgMTIuNjcgNDcuNDMxIDEzLjMxOS0yOC4yNjQtMTguODQzLTQ2Ljc4MS01MS4wMDUtNDYuNzgxLTg3LjM5MSAwLTE5LjQ5MiA1LjE5Ny0zNy4zNiAxNC4yOTQtNTIuOTU0IDUxLjY1NSA2My42NzUgMTI5LjMgMTA1LjI1OCAyMTYuMzY1IDEwOS44MDctMS42MjQtNy43OTctMi41OTktMTUuOTE4LTIuNTk5LTI0LjA0IDAtNTcuODI4IDQ2Ljc4Mi0xMDQuOTM0IDEwNC45MzQtMTA0LjkzNCAzMC4yMTMgMCA1Ny41MDIgMTIuNjcgNzYuNjcgMzMuMTM3IDIzLjcxNS00LjU0OCA0Ni40NTYtMTMuMzIgNjYuNTk5LTI1LjM0LTcuNzk4IDI0LjM2Ni0yNC4zNjYgNDQuODMzLTQ2LjEzMiA1Ny44MjcgMjEuMTE3LTIuMjczIDQxLjU4NC04LjEyMiA2MC40MjYtMTYuMjQzLTE0LjI5MiAyMC43OTEtMzIuMTYxIDM5LjMwOC01Mi42MjggNTQuMjUzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUeXBvMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzguNyA3OC40YzAtMjQuNyA1LjQtMzIuNCAxMy45LTM5LjQtNjkuNSA4LjUtMTQ5LjMgMzQtMTc2LjMgNjYuNC01LjQgNy43LTkuMyAyMC44LTkuMyAzNy4xQzcgMjQ2IDExMy44IDQ4MCAxOTEuMSA0ODBjMzYuMyAwIDk3LjMtNTkuNSAxNDYuNy0xMzktNyAyLjMtMTEuNiAyLjMtMTguNSAyLjMtNTcuMiAwLTE0MC42LTE5OC41LTE0MC42LTI2NC45ek0zMDEuNSAzMmMtMzAuMSAwLTQxLjcgNS40LTQxLjcgMzYuMyAwIDY2LjQgNTMuOCAxOTguNSAxMDEuNyAxOTguNSAyNi4zIDAgNzguOC05OS43IDc4LjgtMTgyLjMgMC00MC45LTY3LTUyLjUtMTM4LjgtNTIuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVWJlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTQuMSAzMkgzMy45QzE1LjIgMzIgMCA0Ny4yIDAgNjUuOVY0NDZjMCAxOC44IDE1LjIgMzQgMzMuOSAzNEg0MTRjMTguNyAwIDMzLjktMTUuMiAzMy45LTMzLjlWNjUuOUM0NDggNDcuMiA0MzIuOCAzMiA0MTQuMSAzMnpNMjM3LjYgMzkxLjFDMTYzIDM5OC42IDk2LjQgMzQ0LjIgODguOSAyNjkuNmg5NC40VjI5MGMwIDMuNyAzIDYuOCA2LjggNi44SDI1OGMzLjcgMCA2LjgtMyA2LjgtNi44di02Ny45YzAtMy43LTMtNi44LTYuOC02LjhoLTY3LjljLTMuNyAwLTYuOCAzLTYuOCA2Ljh2MjAuNEg4OC45YzctNjkuNCA2NS40LTEyMi4yIDEzNS4xLTEyMi4yIDY5LjcgMCAxMjguMSA1Mi44IDEzNS4xIDEyMi4yIDcuNSA3NC41LTQ2LjkgMTQxLjEtMTIxLjUgMTQ4LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVidW50dSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em01Mi43IDkzYzguOC0xNS4yIDI4LjMtMjAuNSA0My41LTExLjcgMTUuMyA4LjggMjAuNSAyOC4zIDExLjcgNDMuNi04LjggMTUuMi0yOC4zIDIwLjUtNDMuNSAxMS43LTE1LjMtOC45LTIwLjUtMjguNC0xMS43LTQzLjZ6TTg3LjQgMjg3LjljLTE3LjYgMC0zMS45LTE0LjMtMzEuOS0zMS45IDAtMTcuNiAxNC4zLTMxLjkgMzEuOS0zMS45IDE3LjYgMCAzMS45IDE0LjMgMzEuOSAzMS45IDAgMTcuNi0xNC4zIDMxLjktMzEuOSAzMS45em0yOC4xIDMuMWMyMi4zLTE3LjkgMjIuNC01MS45IDAtNjkuOSA4LjYtMzIuOCAyOS4xLTYwLjcgNTYuNS03OS4xbDIzLjcgMzkuNmMtNTEuNSAzNi4zLTUxLjUgMTEyLjUgMCAxNDguOEwxNzIgMzcwYy0yNy40LTE4LjMtNDcuOC00Ni4zLTU2LjUtNzl6bTIyOC43IDEzMS43Yy0xNS4zIDguOC0zNC43IDMuNi00My41LTExLjctOC44LTE1LjMtMy42LTM0LjggMTEuNy00My42IDE1LjItOC44IDM0LjctMy42IDQzLjUgMTEuNyA4LjggMTUuMyAzLjYgMzQuOC0xMS43IDQzLjZ6bS4zLTY5LjVjLTI2LjctMTAuMy01Ni4xIDYuNi02MC41IDM1LTUuMiAxLjQtNDguOSAxNC4zLTk2LjctOS40bDIyLjUtNDAuM2M1NyAyNi41IDEyMy40LTExLjcgMTI4LjktNzQuNGw0Ni4xLjdjLTIuMyAzNC41LTE3LjMgNjUuNS00MC4zIDg4LjR6bS01LjktMTA1LjNjLTUuNC02Mi03MS4zLTEwMS4yLTEyOC45LTc0LjRsLTIyLjUtNDAuM2M0Ny45LTIzLjcgOTEuNS0xMC44IDk2LjctOS40IDQuNCAyOC4zIDMzLjggNDUuMyA2MC41IDM1IDIzLjEgMjIuOSAzOCA1My45IDQwLjIgODguNWwtNDYgLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVpa2l0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0My45IDEyOHYyNTZMMjE4IDUxMiAwIDM4NFYxNjkuN2w4Ny42IDQ1LjF2MTE3bDEzMy41IDc1LjUgMTM1LjgtNzUuNXYtMTUxbC0xMDEuMS01Ny42IDg3LjYtNTMuMUw0NDMuOSAxMjh6TTMwOC42IDQ5LjFMMjIzLjggMGwtODguNiA1NC44IDg2IDQ3LjMgODcuNC01M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW1icmFjbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTUuMzUgOEMxMTguMzYgNy44MyA3LjE0IDExOC43MiA3IDI1NS42OGMtLjA3IDEzNyAxMTEgMjQ4LjIgMjQ4IDI0OC4yNyAxMzYuODUgMCAyNDcuODItMTEwLjcgMjQ4LTI0Ny42N1MzOTIuMzQgOC4xNyAyNTUuMzUgOHptMTQ1IDI2NnEtMS4xNCA0MC42OC0xNCA2NXQtNDMuNTEgMzVxLTMwLjYxIDEwLjctODUuNDUgMTAuNDdoLTQuNnEtNTQuNzguMjItODUuNDQtMTAuNDd0LTQzLjUyLTM1cS0xMi44NS0yNC4zNi0xNC02NWEyMjQuODEgMjI0LjgxIDAgMCAxIDAtMzAuNzEgNDE4LjM3IDQxOC4zNyAwIDAgMSAzLjYtNDMuODhjMS44OC0xMy4zOSAzLjU3LTIyLjU4IDUuNC0zMiAxLTQuODggMS4yOC02LjQyIDEuODItOC40NWE1LjA5IDUuMDkgMCAwIDEgNC45LTMuODloLjY5bDMyIDVhNS4wNyA1LjA3IDAgMCAxIDQuMTYgNSA1IDUgMCAwIDEgMCAuNzdsLTEuNyA4Ljc4cS0yLjQxIDEzLjI1LTQuODQgMzMuNjhhMzgwLjYyIDM4MC42MiAwIDAgMC0yLjY0IDQyLjE1cS0uMjggNDAuNDMgOC4xMyA1OS44M2E0My44NyA0My44NyAwIDAgMCAzMS4zMSAyNS4xOEEyNDMgMjQzIDAgMCAwIDI1MCAzNDAuNmgxMC4yNWEyNDIuNjQgMjQyLjY0IDAgMCAwIDU3LjI3LTUuMTYgNDMuODYgNDMuODYgMCAwIDAgMzEuMTUtMjUuMjNxOC41My0xOS40MiA4LjEzLTU5Ljc4YTM4OCAzODggMCAwIDAtMi42LTQyLjE1cS0yLjQ4LTIwLjM4LTQuODktMzMuNjhsLTEuNjktOC43OGE1IDUgMCAwIDEgMC0uNzcgNSA1IDAgMCAxIDQuMi01bDMyLTVoLjgyYTUgNSAwIDAgMSA0LjkgMy44OWMuNTUgMi4wNS44MSAzLjU3IDEuODMgOC40NSAxLjgyIDkuNjIgMy41MiAxOC43OCA1LjM5IDMyYTQxNS43MSA0MTUuNzEgMCAwIDEgMy42MSA0My44OCAyMjguMDYgMjI4LjA2IDAgMCAxLS4wNCAzMC43M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW5jaGFydGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3MS43MywyMzIuODEzQTUuMzgxLDUuMzgxLDAsMCwwLDE3Ni43LDIyOS41LDQ4LjA4MSw0OC4wODEsMCwwLDEsMTkxLjYsMjA0LjI0NGMxLjI0My0uODI4LDEuNjU3LTIuNDg0LDEuNjU3LTQuMTQxYTQuMjIsNC4yMiwwLDAsMC0yLjA3MS0zLjMxMkw3NC40MjksMTI4LjQ3MywxNDguOTU4LDg1YTkuOTQxLDkuOTQxLDAsMCwwLDQuOTY4LTguMjgxLDkuMTA4LDkuMTA4LDAsMCwwLTQuOTY4LTguMjgxTDEyNi42LDU1LjZhOS43NDgsOS43NDgsMCwwLDAtOS41MjMsMGwtMTAwLjIsNTcuOTY2YTkuOTQzLDkuOTQzLDAsMCwwLTQuOTY5LDguMjgxVjIzNi45NTRhOS4xMDksOS4xMDksMCwwLDAsNC45NjksOC4yODFMMzkuMjM1LDI1OC4wN2E4LjgyOSw4LjgyOSwwLDAsMCw0Ljk2OCwxLjI0Miw5LjQsOS40LDAsMCwwLDYuNjI1LTIuNDg0LDEwLjgsMTAuOCwwLDAsMCwyLjktNy4wMzlWMTY0LjVMMTY5LjY2LDIzMi40QTQuNSw0LjUsMCwwLDAsMTcxLjczLDIzMi44MTNaTTMyMy4yNzIsMzc3LjczYTEyLjQ3OCwxMi40NzgsMCwwLDAtNC45NjksMS4yNDJsLTc0LjUyOCw0My4wNjJWMjg3Ljg4MmMwLTIuOS0yLjktNS44LTYuMjExLTQuNTU1YTUzLjAzNiw1My4wMzYsMCwwLDEtMjguOTg0LjQxNCw0Ljg2LDQuODYsMCwwLDAtNi4yMSw0LjU1NVY0MjEuNjE5bC03NC41MjktNDMuMDYxYTguODMsOC44MywwLDAsMC00Ljk2OS0xLjI0Miw5LjYzMSw5LjYzMSwwLDAsMC05LjUyMyw5LjUyM3YyNi4wODVhOS4xMDcsOS4xMDcsMCwwLDAsNC45NjksOC4yODFsMTAwLjIsNTcuNTUzQTguODI5LDguODI5LDAsMCwwLDIyMy40ODYsNDgwYTExLjAyNywxMS4wMjcsMCwwLDAsNC45NjktMS4yNDJsMTAwLjItNTcuNTUzYTkuOTQxLDkuOTQxLDAsMCwwLDQuOTY4LTguMjgxVjM4Ni44MzlDMzMyLjgsMzgyLjI4NSwzMjguMjQsMzc3LjczLDMyMy4yNzIsMzc3LjczWk0yODYuMDA3LDc4YTIzLDIzLDAsMSwwLTIzLTIzQTIzLDIzLDAsMCwwLDI4Ni4wMDcsNzhabTYzLjYyNy0xMC4wODZhMjMsMjMsMCwxLDAsMjMsMjNBMjMsMjMsMCwwLDAsMzQ5LjYzNCw2Ny45MTRaTTQxMi44MTYsMTUxLjZhMjMsMjMsMCwxLDAtMjMtMjNBMjMsMjMsMCwwLDAsNDEyLjgxNiwxNTEuNlptLTYzLjE4Mi05LjJhMjMsMjMsMCwxLDAsMjMsMjNBMjMsMjMsMCwwLDAsMzQ5LjYzNCwxNDIuNFptLTYzLjYyNyw4My4yNDRhMjMsMjMsMCwxLDAtMjMtMjNBMjMsMjMsMCwwLDAsMjg2LjAwNywyMjUuNjQ4Wm0tNjIuMDc0LDM2LjM1OGEyMywyMywwLDEsMC0yMy0yM0EyMywyMywwLDAsMCwyMjMuOTMzLDI2Mi4wMDZabTE4OC44ODMtODIuMzU4YTIzLDIzLDAsMSwwLDIzLDIzQTIzLDIzLDAsMCwwLDQxMi44MTYsMTc5LjY0OFptMCw3Mi4yNzJhMjMsMjMsMCwxLDAsMjMsMjNBMjMsMjMsMCwwLDAsNDEyLjgxNiwyNTEuOTJaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVuaXJlZ2lzdHJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiA0ODBjMzkuNSAwIDc2LjItMTEuOCAxMDYuOC0zMi4ySDg1LjNDMTE1LjggNDY4LjIgMTUyLjUgNDgwIDE5MiA0ODB6bS04OS4xLTE5My4xdi0xMi40SDB2MTIuNGMwIDIuNSAwIDUgLjEgNy40aDEwMy4xYy0uMi0yLjQtLjMtNC45LS4zLTcuNHptMjAuNSA1N0g4LjVjMi42IDguNSA1LjggMTYuOCA5LjYgMjQuOGgxMzguM2MtMTIuOS01LjctMjQuMS0xNC4yLTMzLTI0Ljh6bS0xNy43LTM0LjdIMS4zYy45IDcuNiAyLjIgMTUgMy45IDIyLjNoMTA5LjdjLTQtNi45LTcuMi0xNC40LTkuMi0yMi4zem0tMi44LTY5LjNIMHYxNy4zaDEwMi45em0wLTE3My4ySDB2NC45aDEwMi45em0wLTM0LjdIMHYyLjVoMTAyLjl6bTAgNjkuM0gwdjcuNGgxMDIuOXptMCAxMDRIMHYxNC44aDEwMi45em0wLTY5LjNIMHY5LjloMTAyLjl6bTAgMzQuNkgwVjE4M2gxMDIuOXptMTY2LjIgMTYwLjloMTA5LjdjMS44LTcuMyAzLjEtMTQuNyAzLjktMjIuM0gyNzguM2MtMi4xIDcuOS01LjIgMTUuNC05LjIgMjIuM3ptMTItMTg1LjdIMzg0VjEzNkgyODEuMXptMCAzNy4ySDM4NHYtMTIuNEgyODEuMXptMC03NC4zSDM4NHYtNy40SDI4MS4xem0wLTc2Ljd2Mi41SDM4NFYzMnptLTIwMyA0MTAuOWgyMjcuN2MxMS44LTguNyAyMi43LTE4LjYgMzIuMi0yOS43SDQ0LjljOS42IDExIDIxLjQgMjEgMzMuMiAyOS43em0yMDMtMzcxLjNIMzg0di00LjlIMjgxLjF6bTAgMTQ4LjVIMzg0di0xNC44SDI4MS4xek0zOC44IDQwNS43aDMwNS4zYzYuNy04LjUgMTIuNi0xNy42IDE3LjgtMjcuMkgyM2M1LjIgOS42IDkuMiAxOC43IDE1LjggMjcuMnptMTg4LjgtMzcuMUgzNjdjMy43LTggNS44LTE2LjIgOC41LTI0LjhoLTExNWMtOC44IDEwLjctMjAuMSAxOS4yLTMyLjkgMjQuOHptNTMuNS04MS43YzAgMi41LS4xIDUtLjQgNy40aDEwMy4xYy4xLTIuNS4yLTQuOS4yLTcuNHYtMTIuNEgyODEuMXptMC0yOS43SDM4NHYtMTcuM0gyODEuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW5pdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk4LjExLDIwNi40LDQ0NS4zMSwxNC43MiwyNDguMiw2Ni4wOCwyMTksMTE2LjE0bC01OS4yLS40M0wxNS41NCwyNTYsMTU5LjgyLDM5Ni4zMmw1OS4xNy0uNDMsMjkuMjQsNTAsMTk3LjA4LDUxLjM2LDUyLjgtMTkxLjYyLTMwLTQ5LjYzWk0yMjMuNzcsMTI0LjIsMzc0LjU1LDg2LjUxLDI4OCwyMzIuMzNIMTE0Ljg3Wm0wLDI2My42M0wxMTQuODcsMjc5LjcxSDI4OGw4Ni41NSwxNDUuODFabTE5MywxNEwzMzAuMTcsMjU2bDg2LjU4LTE0NS44NEw0NTguNTYsMjU2WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbnNwbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDgsMjMwLjE3VjQ4MEgwVjIzMC4xN0gxNDEuMTNWMzU1LjA5SDMwNi44N1YyMzAuMTdaTTMwNi44NywzMkgxNDEuMTNWMTU2LjkxSDMwNi44N1pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW50YXBwZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDEuMyA0OS45Yy03OS44IDE2MC4xLTg0LjYgMTUyLjUtODcuOSAxNzMuMmwtNS4yIDMyLjhjLTEuOSAxMi02LjYgMjMuNS0xMy43IDMzLjRMMTQ1LjYgNDk3LjFjLTcuNiAxMC42LTIwLjQgMTYuMi0zMy40IDE0LjYtNDAuMy01LTc3LjgtMzIuMi05NS4zLTY4LjUtNS43LTExLjgtNC41LTI1LjggMy4xLTM2LjRsMTQ4LjktMjA3LjljNy4xLTkuOSAxNi40LTE4IDI3LjItMjMuN2wyOS4zLTE1LjVjMTguNS05LjggOS43LTExLjkgMTM1LjYtMTM4LjkgMS00LjggMS03LjMgMy42LTggMy0uNyA2LjYtMSA2LjMtNC42bC0uNC00LjZjLS4yLTEuOSAxLjMtMy42IDMuMi0zLjYgNC41LS4xIDEzLjIgMS4yIDI1LjYgMTAgMTIuMyA4LjkgMTYuNCAxNi44IDE3LjcgMjEuMS42IDEuOC0uNiAzLjctMi40IDQuMmwtNC41IDEuMWMtMy40LjktMi41IDQuNC0yLjMgNy40LjEgMi44LTIuMyAzLjYtNi41IDYuMXpNMjMwLjEgMzYuNGMzLjQuOSAyLjUgNC40IDIuMyA3LjQtLjIgMi43IDIuMSAzLjUgNi40IDYgNy45IDE1LjkgMTUuMyAzMC41IDIyLjIgNDQgLjcgMS4zIDIuMyAxLjUgMy4zLjUgMTEuMi0xMiAyNC42LTI2LjIgNDAuNS00Mi42IDEuMy0xLjQgMS40LTMuNS4xLTQuOS04LTguMi0xNi41LTE2LjktMjUuNi0yNi4xLTEtNC43LTEtNy4zLTMuNi04LTMtLjgtNi42LTEtNi4zLTQuNi4zLTMuMyAxLjQtOC4xLTIuOC04LjItNC41LS4xLTEzLjIgMS4xLTI1LjYgMTAtMTIuMyA4LjktMTYuNCAxNi44LTE3LjcgMjEuMS0xLjQgNC4yIDMuNiA0LjYgNi44IDUuNHpNNjIwIDQwNi43TDQ3MS4yIDE5OC44Yy0xMy4yLTE4LjUtMjYuNi0yMy40LTU2LjQtMzkuMS0xMS4yLTUuOS0xNC4yLTEwLjktMzAuNS0yOC45LTEtMS4xLTIuOS0uOS0zLjYuNS00Ni4zIDg4LjgtNDcuMSA4Mi44LTQ5IDk0LjgtMS43IDEwLjctMS4zIDIwIC4zIDI5LjggMS45IDEyIDYuNiAyMy41IDEzLjcgMzMuNGwxNDguOSAyMDcuOWM3LjYgMTAuNiAyMC4yIDE2LjIgMzMuMSAxNC43IDQwLjMtNC45IDc4LTMyIDk1LjctNjguNiA1LjQtMTEuOSA0LjMtMjUuOS0zLjQtMzYuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXBzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwMy4yIDMwM2MtNS4yIDMuNi0zMi42IDEzLjEtMzIuNi0xOVYxODBIMzcuOXYxMDIuNmMwIDc0LjkgODAuMiA1MS4xIDk3LjkgMzlWMTgwaC0zMi42ek00IDc0LjgydjIyMC45YzAgMTAzLjcgNzQuOSAxMzUuMiAxODcuNyAxODQuMSAxMTIuNC00OC45IDE4Ny43LTgwLjIgMTg3LjctMTg0LjFWNzQuODJjLTExNi4zLTYxLjYtMjgxLjgtNDkuNi0zNzUuNCAwem0zNTguMSAyMjAuOWMwIDg2LjYtNTMuMiAxMTMuNi0xNzAuNCAxNjUuMy0xMTcuNS01MS44LTE3MC41LTc4LjctMTcwLjUtMTY1LjN2LTEyNi40YzEwMi4zLTkzLjggMjMxLjYtMTAwIDM0MC45LTg5Ljh6bS0yMDkuNi0xMDcuNHYyMTIuOGgzMi43di02OC43YzI0LjQgNy4zIDcxLjctMi42IDcxLjctNzguNSAwLTk3LjQtODAuNy04MC45Mi0xMDQuNC02NS42em0zMi43IDExNy4zdi0xMDAuM2M4LjQtNC4yIDM4LjQtMTIuNyAzOC40IDQ5LjMgMCA2Ny45LTM2LjQgNTEuOC0zOC40IDUxem03OS4xLTg2LjRjLjEgNDcuMyA1MS42IDQyLjUgNTIuMiA3MC40LjYgMjMuNS0zMC40IDIzLTUwLjggNC45djMwLjFjMzYuMiAyMS41IDgxLjkgOC4xIDgzLjItMzMuNSAxLjctNTEuNS01NC4xLTQ2LjYtNTMuNC03My4yLjYtMjAuMyAzMC42LTIwLjUgNDguNS0yLjJ2LTI4LjRjLTI4LjUtMjItNzkuOS05LjItNzkuNyAzMS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQxLjUgMjU2YzAgMy4xLTEuNyA2LjEtNC41IDcuNUw1NDcuOSAzMTdjLTEuNC44LTIuOCAxLjQtNC41IDEuNC0xLjQgMC0zLjEtLjMtNC41LTEuMS0yLjgtMS43LTQuNS00LjUtNC41LTcuOHYtMzUuNkgyOTUuN2MyNS4zIDM5LjYgNDAuNSAxMDYuOSA2OS42IDEwNi45SDM5MlYzNTRjMC01IDMuOS04LjkgOC45LTguOUg0OTBjNSAwIDguOSAzLjkgOC45IDguOXY4OS4xYzAgNS0zLjkgOC45LTguOSA4LjloLTg5LjFjLTUgMC04LjktMy45LTguOS04Ljl2LTI2LjdoLTI2LjdjLTc1LjQgMC04MS4xLTE0Mi41LTEyNC43LTE0Mi41SDE0MC4zYy04LjEgMzAuNi0zNS45IDUzLjUtNjkgNTMuNUMzMiAzMjcuMyAwIDI5NS4zIDAgMjU2czMyLTcxLjMgNzEuMy03MS4zYzMzLjEgMCA2MSAyMi44IDY5IDUzLjUgMzkuMSAwIDQzLjkgOS41IDc0LjYtNjAuNEMyNTUgODguNyAyNzMgOTUuNyAzMjMuOCA5NS43YzcuNS0yMC45IDI3LTM1LjYgNTAuNC0zNS42IDI5LjUgMCA1My41IDIzLjkgNTMuNSA1My41cy0yMy45IDUzLjUtNTMuNSA1My41Yy0yMy40IDAtNDIuOS0xNC44LTUwLjQtMzUuNkgyOTRjLTI5LjEgMC00NC4zIDY3LjQtNjkuNiAxMDYuOWgzMTAuMXYtMzUuNmMwLTMuMyAxLjctNi4xIDQuNS03LjggMi44LTEuNyA2LjQtMS40IDguOS4zbDg5LjEgNTMuNWMyLjggMS4xIDQuNSA0LjEgNC41IDcuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNwcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjAuMyAyNDEuN2MyNS44LTQxLjMgMTUuMi00OC44LTExLjctNDguOGgtMjdjLS4xIDAtMS41LTEuNC0xMC45IDgtMTEuMiA1LjYtMzcuOSA2LjMtMzcuOSA4LjcgMCA0LjUgNzAuMy0zLjEgODguMSAwIDkuNSAxLjUtMS41IDIwLjQtNC40IDMyLS41IDQuNSAyLjQgMi4zIDMuOC4xem0tMTEyLjEgMjIuNmM2NC0yMS4zIDk3LjMtMjMuOSAxMDItMjYuMiA0LjQtMi45LTQuNC02LjYtMjYuMi01LjgtNTEuNyAyLjItMTM3LjYgMzcuMS0xNzIuNiA1My45bC0zMC43LTkzLjNoMTk2LjZjLTIuNy0yOC4yLTE1Mi45LTIyLjYtMzM3LjktMjIuNkwyNyA0MTUuOGMxOTYuNC05Ny4zIDI1OC45LTEzMC4zIDMyMS4yLTE1MS41ek05NC43IDk2YzI1My4zIDUzLjcgMzMwIDY1LjcgMzMyLjEgODUuMiAzNi40IDAgNDUuOSAwIDUyLjQgNi42IDIxLjEgMTkuNy0xNC42IDY3LjctMTQuNiA2Ny43LTQuNCAyLjktNDA2LjQgMTYwLjItNDA2LjQgMTYwLjJoNDIzLjFMNTQ5IDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc3N1bm5haCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTYuOCAyODUuMWw1LjcgMTQuNGgtOC4yYy0xLjMtMy4yLTMuMS03LjctMy44LTkuNS0yLjUtNi4zLTEuMS04LjQgMC0xMCAxLjktMi43IDMuMi00LjQgMy42LTUuMiAwIDIuMi44IDUuNyAyLjcgMTAuM3ptMjk3LjMgMTguOGMtMi4xIDEzLjgtNS43IDI3LjEtMTAuNSAzOS43bDQzIDIzLjQtNDQuOC0xOC44Yy01LjMgMTMuMi0xMiAyNS42LTE5LjkgMzcuMmwzNC4yIDMwLjItMzYuOC0yNi40Yy04LjQgMTEuOC0xOCAyMi42LTI4LjcgMzIuM2wyNC45IDM0LjctMjguMS0zMS44Yy0xMSA5LjYtMjMuMSAxOC0zNi4xIDI1LjFsMTUuNyAzNy4yLTE5LjMtMzUuM2MtMTMuMSA2LjgtMjcgMTIuMS00MS42IDE1LjlsNi43IDM4LjQtMTAuNS0zNy40Yy0xNC4zIDMuNC0yOS4yIDUuMy00NC41IDUuNEwyNTYgNTEybC0xLjktMzguNGMtMTUuMy0uMS0zMC4yLTItNDQuNS01LjNMMTk5IDUwNS42bDYuNy0zOC4yYy0xNC42LTMuNy0yOC42LTkuMS00MS43LTE1LjhsLTE5LjIgMzUuMSAxNS42LTM3Yy0xMy03LTI1LjItMTUuNC0zNi4yLTI1LjFsLTI3LjkgMzEuNiAyNC43LTM0LjRjLTEwLjctOS43LTIwLjQtMjAuNS0yOC44LTMyLjNsLTM2LjUgMjYuMiAzMy45LTI5LjljLTcuOS0xMS42LTE0LjYtMjQuMS0yMC0zNy4zbC00NC40IDE4LjdMNjcuOCAzNDRjLTQuOC0xMi43LTguNC0yNi4xLTEwLjUtMzkuOWwtNTEgOSA1MC4zLTE0LjJjLTEuMS04LjUtMS43LTE3LjEtMS43LTI1LjkgMC00LjcuMi05LjQuNS0xNC4xTDAgMjU2bDU2LTIuOGMxLjMtMTMuMSAzLjgtMjUuOCA3LjUtMzguMUw2LjQgMTk5bDU4LjkgMTAuNGM0LTEyIDkuMS0yMy41IDE1LjItMzQuNGwtNTUuMS0zMCA1OC4zIDI0LjZDOTAgMTU5IDk3LjIgMTQ5LjIgMTA1LjMgMTQwTDU1LjggOTYuNGw1My45IDM4LjdjOC4xLTguNiAxNy0xNi41IDI2LjYtMjMuNmwtNDAtNTUuNiA0NS42IDUxLjZjOS41LTYuNiAxOS43LTEyLjMgMzAuMy0xNy4ybC0yNy4zLTY0LjkgMzMuOCA2Mi4xYzEwLjUtNC40IDIxLjQtNy45IDMyLjctMTAuNEwxOTkgNi40bDE5LjUgNjkuMmMxMS0yLjEgMjIuMy0zLjIgMzMuOC0zLjRMMjU2IDBsMy42IDcyLjJjMTEuNS4yIDIyLjggMS40IDMzLjggMy41TDMxMyA2LjRsLTEyLjQgNzAuN2MxMS4zIDIuNiAyMi4yIDYuMSAzMi42IDEwLjVsMzMuOS02Mi4yLTI3LjQgNjUuMWMxMC42IDQuOSAyMC43IDEwLjcgMzAuMiAxNy4ybDQ1LjgtNTEuOC00MC4xIDU1LjljOS41IDcuMSAxOC40IDE1IDI2LjUgMjMuNmw1NC4yLTM4LjktNDkuNyA0My45YzggOS4xIDE1LjIgMTguOSAyMS41IDI5LjRsNTguNy0yNC43LTU1LjUgMzAuMmM2LjEgMTAuOSAxMS4xIDIyLjMgMTUuMSAzNC4zbDU5LjMtMTAuNC01Ny41IDE2LjJjMy43IDEyLjIgNi4yIDI0LjkgNy41IDM3LjlMNTEyIDI1NmwtNTYgMi44Yy4zIDQuNi41IDkuMy41IDE0LjEgMCA4LjctLjYgMTcuMy0xLjYgMjUuOGw1MC43IDE0LjMtNTEuNS05LjF6bS0yMS44LTMxYzAtOTcuNS03OS0xNzYuNS0xNzYuNS0xNzYuNXMtMTc2LjUgNzktMTc2LjUgMTc2LjUgNzkgMTc2LjUgMTc2LjUgMTc2LjUgMTc2LjUtNzkgMTc2LjUtMTc2LjV6bS0yNCAwYzAgODQuMy02OC4zIDE1Mi42LTE1Mi42IDE1Mi42cy0xNTIuNi02OC4zLTE1Mi42LTE1Mi42IDY4LjMtMTUyLjYgMTUyLjYtMTUyLjYgMTUyLjYgNjguMyAxNTIuNiAxNTIuNnpNMTk1IDI0MWMwIDIuMSAxLjMgMy44IDMuNiA1LjEgMy4zIDEuOSA2LjIgNC42IDguMiA4LjIgMi44LTUuNyA0LjMtOS41IDQuMy0xMS4yIDAtMi4yLTEuMS00LjQtMy4yLTctMi4xLTIuNS0zLjItNS4yLTMuMy03LjctNi41IDYuOC05LjYgMTAuOS05LjYgMTIuNnptLTQwLjctMTljMCAyLjEgMS4zIDMuOCAzLjYgNS4xIDMuNSAxLjkgNi4yIDQuNiA4LjIgOC4yIDIuOC01LjcgNC4zLTkuNSA0LjMtMTEuMiAwLTIuMi0xLjEtNC40LTMuMi03LTIuMS0yLjUtMy4yLTUuMi0zLjMtNy43LTYuNSA2LjgtOS42IDEwLjktOS42IDEyLjZ6bS0xOSAwYzAgMi4xIDEuMyAzLjggMy42IDUuMSAzLjMgMS45IDYuMiA0LjYgOC4yIDguMiAyLjgtNS43IDQuMy05LjUgNC4zLTExLjIgMC0yLjItMS4xLTQuNC0zLjItNy0yLjEtMi41LTMuMi01LjItMy4zLTcuNy02LjQgNi44LTkuNiAxMC45LTkuNiAxMi42em0yMDQuOSA4Ny45Yy04LjQtMy04LjctNi44LTguNy0xNS42VjE4MmMtOC4yIDEyLjUtMTQuMiAxOC42LTE4IDE4LjYgNi4zIDE0LjQgOS41IDIzLjkgOS41IDI4LjN2NjQuM2MwIDIuMi0yLjIgNi41LTQuNyA2LjVoLTE4Yy0yLjgtNy41LTEwLjItMjYuOS0xNS4zLTQwLjMtMiAyLjUtNy4yIDkuMi0xMC43IDEzLjcgMi40IDEuNiA0LjEgMy42IDUuMiA2LjMgMi42IDYuNyA2LjQgMTYuNSA3LjkgMjAuMmgtOS4yYy0zLjktMTAuNC05LjYtMjUuNC0xMS44LTMxLjEtMiAyLjUtNy4yIDkuMi0xMC43IDEzLjcgMi40IDEuNiA0LjEgMy42IDUuMiA2LjMuOCAyIDIuOCA3LjMgNC4zIDEwLjlIMjU2Yy0xLjUtNC4xLTUuNi0xNC42LTguNC0yMi0yIDIuNS03LjIgOS4yLTEwLjcgMTMuNyAyLjUgMS42IDQuMyAzLjYgNS4yIDYuMy4yLjYuNSAxLjQuNiAxLjdIMjI1Yy00LjYtMTMuOS0xMS40LTI3LjctMTEuNC0zNC4xIDAtMi4yLjMtNS4xIDEuMS04LjItOC44IDEwLjgtMTQgMTUuOS0xNCAyNSAwIDcuNSAxMC40IDI4LjMgMTAuNCAzMy4zIDAgMS43LS41IDMuMy0xLjQgNC45LTkuNi0xMi43LTE1LjUtMjAuNy0xOC44LTIwLjdoLTEybC0xMS4yLTI4Yy0zLjgtOS42LTUuNy0xNi01LjctMTguOCAwLTMuOC41LTcuNyAxLjctMTIuMi0xIDEuMy0zLjcgNC43LTUuNSA3LjEtLjgtMi4xLTMuMS03LjctNC42LTExLjUtMi4xIDIuNS03LjUgOS4xLTExLjIgMTMuNi45IDIuMyAzLjMgOC4xIDQuOSAxMi4yLTIuNSAzLjMtOS4xIDExLjgtMTMuNiAxNy43LTQgNS4zLTUuOCAxMy4zLTIuNyAyMS44IDIuNSA2LjcgMiA3LjktMS43IDE0LjFIMTkxYzUuNSAwIDE0LjMgMTQgMTUuNSAyMiAxMy4yLTE2IDE1LjQtMTkuNiAxNi44LTIxLjZoMTA3YzMuOSAwIDcuMi0xLjkgOS45LTUuOHptMjAuMS0yNi42VjE4MS43Yy05IDEyLjUtMTUuOSAxOC42LTIwLjcgMTguNiA3LjEgMTQuNCAxMC43IDIzLjkgMTAuNyAyOC4zdjY2LjNjMCAxNy41IDguNiAyMC40IDI0IDIwLjQgOC4xIDAgMTIuNS0uOCAxMy43LTIuNy00LjMtMS42LTcuNi0yLjUtOS45LTMuMy04LjEtMy4yLTE3LjgtNy40LTE3LjgtMjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZhYWRpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQuNSAxNDAuN2MxLjUtMTcuNiA0LjktNTIuNyA0OS44LTUyLjdoOTguNmMyMC43IDAgMzIuMS03LjggMzIuMS0yMS42VjU0LjFjMC0xMi4yIDkuMy0yMi4xIDIxLjUtMjIuMVM0NDggNDEuOSA0NDggNTQuMXYzNi41YzAgNDIuOS0yMS41IDYyLTY2LjggNjJIMjgwLjdjLTMwLjEgMC0zMyAxNC43LTMzIDI3LjEgMCAxLjMtLjEgMi41LS4yIDMuNy0uNyAxMi4zLTEwLjkgMjIuMi0yMy40IDIyLjJzLTIyLjctOS44LTIzLjQtMjIuMmMtLjEtMS4yLS4yLTIuNC0uMi0zLjcgMC0xMi4zLTMtMjcuMS0zMy0yNy4xSDY2LjhjLTQ1LjMgMC02Ni44LTE5LjEtNjYuOC02MlY1NC4xQzAgNDEuOSA5LjQgMzIgMjEuNiAzMnMyMS41IDkuOSAyMS41IDIyLjF2MTIuM0M0My4xIDgwLjIgNTQuNSA4OCA3NS4yIDg4aDk4LjZjNDQuOCAwIDQ4LjMgMzUuMSA0OS44IDUyLjdoLjl6TTIyNCA0NTZjMTEuNSAwIDIxLjQtNyAyNS43LTE2LjMgMS4xLTEuOCA5Ny4xLTE2OS42IDk4LjItMTcxLjQgMTEuOS0xOS42LTMuMi00NC4zLTI3LjItNDQuMy0xMy45IDAtMjMuMyA2LjQtMjkuOCAyMC4zTDIyNCAzNjJsLTY2LjktMTE3LjdjLTYuNC0xMy45LTE1LjktMjAuMy0yOS44LTIwLjMtMjQgMC0zOS4xIDI0LjYtMjcuMiA0NC4zIDEuMSAxLjkgOTcuMSAxNjkuNiA5OC4yIDE3MS40IDQuMyA5LjMgMTQuMiAxNi4zIDI1LjcgMTYuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmlhY29pbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMzJoLTY0bC04MC43IDE5MmgtOTQuNUw2NCAzMkgwbDQ4IDExMkgwdjQ4aDY4LjVsMTMuOCAzMkgwdjQ4aDEwMi44TDE5MiA0ODBsODkuMi0yMDhIMzg0di00OGgtODIuM2wxMy44LTMySDM4NHYtNDhoLTQ4bDQ4LTExMnpNMTkyIDMzNmwtMjctNjRoNTRsLTI3IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaWFkZW9TcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNMjgwLjcgMzgxLjJjLTQyLjQgNDYuMi0xMjAgNDYuNi0xNjIuNCAwLTY4LTczLjYtMTkuOC0xOTYuMSA4MS4yLTE5Ni4xIDEzLjMgMCAyNi42IDIuMSAzOS4xIDYuNy00LjMgOC40LTcuMyAxNy42LTguNCAyNy4xLTkuNy00LjEtMjAuMi02LTMwLjctNi00OC44IDAtODQuNiA0MS43LTg0LjYgODguOSAwIDQzIDI4LjUgNzguNyA2OS41IDg1LjkgNjEuNS0yNCA3Mi45LTExNy42IDcyLjktMTc1IDAtNy4zIDAtMTQuOC0uNi0yMi4xLTExLjItMzIuOS0yNi42LTY0LjYtNDQuMi05NC41IDI3LjEgMTguMyA0MS45IDYyLjUgNDQuMiA5NC4xdi40YzcuNyAyMi41IDExLjggNDYuMiAxMS44IDcwIDAgNTQuMS0yMS45IDk5LTY4LjMgMTI4LjJsLTIuNC4yYzUwIDEgODYuMi0zOC42IDg2LjItODcuMiAwLTEyLjItMi4xLTI0LjMtNi45LTM1LjcgOS41LTEuOSAxOC41LTUuNiAyNi40LTEwLjUgMTUuMyAzNi42IDEyLjYgODcuMy0yMi44IDEyNS42ek0zMDkgMjMzLjdjLTEzLjMgMC0yNS4xLTcuMS0zNC40LTE2LjEgMjEuOS0xMiA0OS42LTMwLjcgNjIuMy01MyAxLjUtMyA0LjEtOC42IDQuNS0xMi0xMi41IDI3LjktNDQuMiA0OS44LTczLjkgNTYuNy00LjctNy4zLTcuNS0xNS41LTcuNS0yNC4zIDAtMTAuMyA1LjItMjQuMSAxMi45LTMxLjYgMjEuNi0yMC41IDUzLTguNSA3Mi40LTUwIDMyLjUgNDYuMiAxMy4xIDEzMC4zLTM2LjMgMTMwLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpYWRlbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzYuMiAxNTAuNXYuN0MyNTguMyA5OC42IDIzMy42IDQ3LjggMjA1LjQgMGM0My4zIDI5LjIgNjcgMTAwIDcwLjggMTUwLjV6bTMyLjcgMTIxLjdjNy42IDE4LjIgMTEgMzcuNSAxMSA1NyAwIDc3LjctNTcuOCAxNDEtMTM3LjggMTM5LjRsMy44LS4zYzc0LjItNDYuNyAxMDkuMy0xMTguNiAxMDkuMy0yMDUuMSAwLTM4LjEtNi41LTc1LjktMTguOS0xMTIgMSAxMS43IDEgMjMuNyAxIDM1LjQgMCA5MS44LTE4LjEgMjQxLjYtMTE2LjYgMjgwQzk1IDQ1NS4yIDQ5LjQgMzk4IDQ5LjQgMzI5LjJjMC03NS42IDU3LjQtMTQyLjMgMTM1LjQtMTQyLjMgMTYuOCAwIDMzLjcgMy4xIDQ5LjEgOS42IDEuNy0xNS4xIDYuNS0yOS45IDEzLjQtNDMuMy0xOS45LTcuMi00MS4yLTEwLjctNjIuNS0xMC43LTE2MS41IDAtMjM4LjcgMTk1LjktMTI5LjkgMzEzLjcgNjcuOSA3NC42IDE5MiA3My45IDI1OS44IDAgNTYuNi02MS4zIDYwLjktMTQyLjQgMzYuNC0yMDEtMTIuNyA4LTI3LjEgMTMuOS00Mi4yIDE3ek00MTguMSAxMS43Yy0zMSA2Ni41LTgxLjMgNDcuMi0xMTUuOCA4MC4xLTEyLjQgMTItMjAuNiAzNC0yMC42IDUwLjUgMCAxNC4xIDQuNSAyNy4xIDEyIDM4LjggNDcuNC0xMSA5OC4zLTQ2IDExOC4yLTkwLjctLjcgNS41LTQuOCAxNC40LTcuMiAxOS4yLTIwLjMgMzUuNy02NC42IDY1LjYtOTkuNyA4NC45IDE0LjggMTQuNCAzMy43IDI1LjggNTUgMjUuOCA3OSAwIDExMC4xLTEzNC42IDU4LjEtMjA4LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpYmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0NCA0OS45QzQzMS4zIDM4LjIgMzc5LjkuOSAyNjUuMy40YzAgMC0xMzUuMS04LjEtMjAwLjkgNTIuM0MyNy44IDg5LjMgMTQuOSAxNDMgMTMuNSAyMDkuNWMtMS40IDY2LjUtMy4xIDE5MS4xIDExNyAyMjQuOWguMWwtLjEgNTEuNnMtLjggMjAuOSAxMyAyNS4xYzE2LjYgNS4yIDI2LjQtMTAuNyA0Mi4zLTI3LjggOC43LTkuNCAyMC43LTIzLjIgMjkuOC0zMy43IDgyLjIgNi45IDE0NS4zLTguOSAxNTIuNS0xMS4yIDE2LjYtNS40IDExMC41LTE3LjQgMTI1LjctMTQyIDE1LjgtMTI4LjYtNy42LTIwOS44LTQ5LjgtMjQ2LjV6TTQ1Ny45IDI4N2MtMTIuOSAxMDQtODkgMTEwLjYtMTAzIDExNS4xLTYgMS45LTYxLjUgMTUuNy0xMzEuMiAxMS4yIDAgMC01MiA2Mi43LTY4LjIgNzktNS4zIDUuMy0xMS4xIDQuOC0xMS01LjcgMC02LjkuNC04NS43LjQtODUuNy0uMSAwLS4xIDAgMCAwLTEwMS44LTI4LjItOTUuOC0xMzQuMy05NC43LTE4OS44IDEuMS01NS41IDExLjYtMTAxIDQyLjYtMTMxLjYgNTUuNy01MC41IDE3MC40LTQzIDE3MC40LTQzIDk2LjkuNCAxNDMuMyAyOS42IDE1NC4xIDM5LjQgMzUuNyAzMC42IDUzLjkgMTAzLjggNDAuNiAyMTEuMXptLTEzOS04MC44Yy40IDguNi0xMi41IDkuMi0xMi45LjYtMS4xLTIyLTExLjQtMzIuNy0zMi42LTMzLjktOC42LS41LTcuOC0xMy40LjctMTIuOSAyNy45IDEuNSA0My40IDE3LjUgNDQuOCA0Ni4yem0yMC4zIDExLjNjMS00Mi40LTI1LjUtNzUuNi03NS44LTc5LjMtOC41LS42LTcuNi0xMy41LjktMTIuOSA1OCA0LjIgODguOSA0NC4xIDg3LjggOTIuNS0uMSA4LjYtMTMuMSA4LjItMTIuOS0uM3ptNDcgMTMuNGMuMSA4LjYtMTIuOSA4LjctMTIuOS4xLS42LTgxLjUtNTQuOS0xMjUuOS0xMjAuOC0xMjYuNC04LjUtLjEtOC41LTEyLjkgMC0xMi45IDczLjcuNSAxMzMgNTEuNCAxMzMuNyAxMzkuMnpNMzc0LjkgMzI5di4yYy0xMC44IDE5LTMxIDQwLTUxLjggMzMuM2wtLjItLjNjLTIxLjEtNS45LTcwLjgtMzEuNS0xMDIuMi01Ni41LTE2LjItMTIuOC0zMS0yNy45LTQyLjQtNDIuNC0xMC4zLTEyLjktMjAuNy0yOC4yLTMwLjgtNDYuNi0yMS4zLTM4LjUtMjYtNTUuNy0yNi01NS43LTYuNy0yMC44IDE0LjItNDEgMzMuMy01MS44aC4yYzkuMi00LjggMTgtMy4yIDIzLjkgMy45IDAgMCAxMi40IDE0LjggMTcuNyAyMi4xIDUgNi44IDExLjcgMTcuNyAxNS4yIDIzLjggNi4xIDEwLjkgMi4zIDIyLTMuNyAyNi42bC0xMiA5LjZjLTYuMSA0LjktNS4zIDE0LTUuMyAxNHMxNy44IDY3LjMgODQuMyA4NC4zYzAgMCA5LjEuOCAxNC01LjNsOS42LTEyYzQuNi02IDE1LjctOS44IDI2LjYtMy43IDE0LjcgOC4zIDMzLjQgMjEuMiA0NS44IDMyLjkgNyA1LjcgOC42IDE0LjQgMy44IDIzLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpbWVvU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS0xNi4yIDE0OS42Yy0xLjQgMzEuMS0yMy4yIDczLjgtNjUuMyAxMjcuOS00My41IDU2LjUtODAuMyA4NC44LTExMC40IDg0LjgtMTguNyAwLTM0LjQtMTcuMi00Ny4zLTUxLjYtMjUuMi05Mi4zLTM1LjktMTQ2LjQtNTYuNy0xNDYuNC0yLjQgMC0xMC44IDUtMjUuMSAxNS4xTDY0IDE5MmMzNi45LTMyLjQgNzIuMS02OC40IDk0LjEtNzAuNCAyNC45LTIuNCA0MC4yIDE0LjYgNDYgNTEuMSAyMC41IDEyOS42IDI5LjYgMTQ5LjIgNjYuOCA5MC41IDEzLjQtMjEuMiAyMC42LTM3LjIgMjEuNS00OC4zIDMuNC0zMi44LTI1LjYtMzAuNi00NS4yLTIyLjIgMTUuNy01MS41IDQ1LjgtNzYuNSA5MC4xLTc1LjEgMzIuOSAxIDQ4LjQgMjIuNCA0Ni41IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaW1lb1YgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ3LjggMTUzLjZjLTIgNDMuNi0zMi40IDEwMy4zLTkxLjQgMTc5LjEtNjAuOSA3OS4yLTExMi40IDExOC44LTE1NC42IDExOC44LTI2LjEgMC00OC4yLTI0LjEtNjYuMy03Mi4zQzEwMC4zIDI1MCA4NS4zIDE3NC4zIDU2LjIgMTc0LjNjLTMuNCAwLTE1LjEgNy4xLTM1LjIgMjEuMUwwIDE2OC4yYzUxLjYtNDUuMyAxMDAuOS05NS43IDEzMS44LTk4LjUgMzQuOS0zLjQgNTYuMyAyMC41IDY0LjQgNzEuNSAyOC43IDE4MS41IDQxLjQgMjA4LjkgOTMuNiAxMjYuNyAxOC43LTI5LjYgMjguOC01Mi4xIDMwLjItNjcuNiA0LjgtNDUuOS0zNS44LTQyLjgtNjMuMy0zMSAyMi03Mi4xIDY0LjEtMTA3LjEgMTI2LjItMTA1LjEgNDUuOCAxLjIgNjcuNSAzMS4xIDY0LjkgODkuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmltZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAzLjIgMzJINDQuOEMyMC4xIDMyIDAgNTIuMSAwIDc2Ljh2MzU4LjRDMCA0NTkuOSAyMC4xIDQ4MCA0NC44IDQ4MGgzNTguNGMyNC43IDAgNDQuOC0yMC4xIDQ0LjgtNDQuOFY3Ni44YzAtMjQuNy0yMC4xLTQ0LjgtNDQuOC00NC44ek0zNzcgMTgwLjhjLTEuNCAzMS41LTIzLjQgNzQuNy02NiAxMjkuNC00NCA1Ny4yLTgxLjMgODUuOC0xMTEuNyA4NS44LTE4LjkgMC0zNC44LTE3LjQtNDcuOS01Mi4zLTI1LjUtOTMuMy0zNi40LTE0OC01Ny40LTE0OC0yLjQgMC0xMC45IDUuMS0yNS40IDE1LjJsLTE1LjItMTkuNmMzNy4zLTMyLjggNzIuOS02OS4yIDk1LjItNzEuMiAyNS4yLTIuNCA0MC43IDE0LjggNDYuNSA1MS43IDIwLjcgMTMxLjIgMjkuOSAxNTEgNjcuNiA5MS42IDEzLjUtMjEuNCAyMC44LTM3LjcgMjEuOC00OC45IDMuNS0zMy4yLTI1LjktMzAuOS00NS44LTIyLjQgMTUuOS01Mi4xIDQ2LjMtNzcuNCA5MS4yLTc2IDMzLjMuOSA0OSAyMi41IDQ3LjEgNjQuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMjU0Ljd2NTIuMWMtMTguNCA0LjItMzYuOSA2LjEtNTIuMSA2LjEtMzYuOSA3Ny40LTEwMyAxNDMuOC0xMjUuMSAxNTYuMi0xNCA3LjktMjcuMSA4LjQtNDIuNy0uOEMxMzcgNDUyIDM0LjIgMzY3LjcgMCAxMDIuN2g3NC41QzkzLjIgMjYxLjggMTM5IDM0My40IDE4OS4zIDQwNC41YzI3LjktMjcuOSA1NC44LTY1LjEgNzUuNi0xMDYuOS00OS44LTI1LjMtODAuMS04MC45LTgwLjEtMTQ1LjYgMC02NS42IDM3LjctMTE1LjEgMTAyLjItMTE1LjEgMTE0LjkgMCAxMDYuMiAxMjcuOSA4MS42IDE4MS41IDAgMC00Ni40IDkuMi02My41LTIwLjUgMy40LTExLjMgOC4yLTMwLjggOC4yLTQ4LjUgMC0zMS4zLTExLjMtNDYuNi0yOC40LTQ2LjYtMTguMiAwLTMwLjggMTcuMS0zMC44IDUwIC4xIDc5LjIgNTkuNCAxMTguNyAxMjkuOSAxMDEuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQ1IDExNy43YzMuNy0xMi41IDAtMjEuNy0xNy44LTIxLjdoLTU4LjljLTE1IDAtMjEuOSA3LjktMjUuNiAxNi43IDAgMC0zMCA3My4xLTcyLjQgMTIwLjUtMTMuNyAxMy43LTIwIDE4LjEtMjcuNSAxOC4xLTMuNyAwLTkuNC00LjQtOS40LTE2LjlWMTE3LjdjMC0xNS00LjItMjEuNy0xNi42LTIxLjdoLTkyLjZjLTkuNCAwLTE1IDctMTUgMTMuNSAwIDE0LjIgMjEuMiAxNy41IDIzLjQgNTcuNXY4Ni44YzAgMTktMy40IDIyLjUtMTAuOSAyMi41LTIwIDAtNjguNi03My40LTk3LjQtMTU3LjQtNS44LTE2LjMtMTEuNS0yMi45LTI2LjYtMjIuOUgzOC44Yy0xNi44IDAtMjAuMiA3LjktMjAuMiAxNi43IDAgMTUuNiAyMCA5My4xIDkzLjEgMTk1LjVDMTYwLjQgMzc4LjEgMjI5IDQxNiAyOTEuNCA0MTZjMzcuNSAwIDQyLjEtOC40IDQyLjEtMjIuOSAwLTY2LjgtMy40LTczLjEgMTUuNC03My4xIDguNyAwIDIzLjcgNC40IDU4LjcgMzguMSA0MCA0MCA0Ni42IDU3LjkgNjkgNTcuOWg1OC45YzE2LjggMCAyNS4zLTguNCAyMC40LTI1LTExLjItMzQuOS04Ni45LTEwNi43LTkwLjMtMTExLjUtOC43LTExLjItNi4yLTE2LjIgMC0yNi4yLjEtLjEgNzItMTAxLjMgNzkuNC0xMzUuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVm52IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwNC45IDM1MmMtMzQuMSAwLTQ2LjQtMzAuNC00Ni40LTMwLjRMMi42IDIxMC4xUy03LjggMTkyIDEzIDE5MmgzMi44YzEwLjQgMCAxMy4yIDguNyAxOC44IDE4LjFsMzYuNyA3NC41czUuMiAxMy4xIDIxLjEgMTMuMSAyMS4xLTEzLjEgMjEuMS0xMy4xbDM2LjctNzQuNWM1LjYtOS41IDguNC0xOC4xIDE4LjgtMTguMWgzMi44YzIwLjggMCAxMC40IDE4LjEgMTAuNCAxOC4xbC01NS44IDExMS41UzE3NC4yIDM1MiAxNDAgMzUyaC0zNS4xem0zOTUgMGMtMzQuMSAwLTQ2LjQtMzAuNC00Ni40LTMwLjRsLTU1LjktMTExLjVTMzg3LjIgMTkyIDQwOCAxOTJoMzIuOGMxMC40IDAgMTMuMiA4LjcgMTguOCAxOC4xbDM2LjcgNzQuNXM1LjIgMTMuMSAyMS4xIDEzLjEgMjEuMS0xMy4xIDIxLjEtMTMuMWwzNi44LTc0LjVjNS42LTkuNSA4LjQtMTguMSAxOC44LTE4LjFINjI3YzIwLjggMCAxMC40IDE4LjEgMTAuNCAxOC4xbC01NS45IDExMS41UzU2OS4zIDM1MiA1MzUuMSAzNTJoLTM1LjJ6TTMzNy42IDE5MmMzNC4xIDAgNDYuNCAzMC40IDQ2LjQgMzAuNGw1NS45IDExMS41czEwLjQgMTguMS0xMC40IDE4LjFoLTMyLjhjLTEwLjQgMC0xMy4yLTguNy0xOC44LTE4LjFsLTM2LjctNzQuNXMtNS4yLTEzLjEtMjEuMS0xMy4xYy0xNS45IDAtMjEuMSAxMy4xLTIxLjEgMTMuMWwtMzYuNyA3NC41Yy01LjYgOS40LTguNCAxOC4xLTE4LjggMTguMWgtMzIuOWMtMjAuOCAwLTEwLjQtMTguMS0xMC40LTE4LjFsNTUuOS0xMTEuNXMxMi4yLTMwLjQgNDYuNC0zMC40aDM1LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZ1ZWpzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1Ni45IDY0LjNIMjgwbC01NiA4OC42LTQ4LTg4LjZIMEwyMjQgNDQ4IDQ0OCA2NC4zaC05MS4xem0tMzAxLjIgMzJoNTMuOEwyMjQgMjk0LjUgMzM4LjQgOTYuM2g1My44TDIyNCAzODQuNSA1NS43IDk2LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdhdGNobWFuTW9uaXRvcmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYsMTZDMTIzLjQ1MiwxNiwxNiwxMjMuNDUyLDE2LDI1NlMxMjMuNDUyLDQ5NiwyNTYsNDk2LDQ5NiwzODguNTQ4LDQ5NiwyNTYsMzg4LjU0OCwxNiwyNTYsMTZaTTEyMS42OSw0MjkuMTIyQzcwLjA1NiwzODguOTcyLDM2Ljc0MSwzMjYuMzIyLDM2Ljc0MSwyNTZhMjE4LjUxOSwyMTguNTE5LDAsMCwxLDkuNTg3LTY0LjEyMmwxMDIuOS0xNy44OTUtLjEyMSwxMC45NjctMTMuOTQzLDIuMDEzcy0uMTQ0LDEyLjUtLjE0NCwxOS41NDlhMTIuNzc4LDEyLjc3OCwwLDAsMCw0Ljg4NywxMC4zNDlsOS40NjgsNy40Wm0xMDUuNjkyLTI4My4yNyw4LjQ4LTcuNjE4czYuOTM0LTUuMzgtLjE0My05LjM0NGMtNy4xODgtNC4wMjQtMzkuNTMtMzQuNS0zOS41My0zNC41LTUuMzQ4LTUuNDc3LTguMjU3LTcuMzQ3LTE1LjQ2LDAsMCwwLTMyLjM0MiwzMC40NzQtMzkuNTI5LDM0LjUtNy4wNzgsMy45NjQtLjE0NCw5LjM0NC0uMTQ0LDkuMzQ0bDguNDgxLDcuNjE4LS4wNDgsNC4zNjlMNzUuOTgyLDEzMS4wNDVjMzkuNjQ0LTU2LjkzOCwxMDUuNTMyLTk0LjMsMTgwLjAxOC05NC4zQTIxOC43NTQsMjE4Ljc1NCwwLDAsMSw0MjAuOTM0LDExMS43N2wtMTkzLjUxMiwzNy43Wm0zNC4wNjMsMzI5LjI2OS0zMy45LTI1MC44NTcsOS40NjctNy40YTEyLjc3OCwxMi43NzgsMCwwLDAsNC44ODgtMTAuMzQ5YzAtNy4wNDQtLjE0NC0xOS41NDktLjE0NC0xOS41NDlsLTEzLjk0My0yLjAxMy0uMTE2LTEwLjQ3NCwyNDEuNzExLDMxLjM5MUEyMTguODcyLDIxOC44NzIsMCwwLDEsNDc1LjI1OSwyNTZDNDc1LjI1OSwzNzUuMDc0LDM3OS44MzEsNDcyLjIxMiwyNjEuNDQ1LDQ3NS4xMjFaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdhemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAyLjE3IDIwMS42N0M1MTYuNjkgMjg3LjUzIDQ3MS4yMyAzNjkuNTkgMzg5IDQwOS44YzEzIDM0LjEtMTIuNCA3MC4yLTQ4LjMyIDcwLjJhNTEuNjggNTEuNjggMCAwIDEtNTEuNTctNDljLTYuNDQuMTktNjQuMiAwLTc2LjMzLS42NEE1MS42OSA1MS42OSAwIDAgMSAxNTkgNDc5LjkyYy0zMy44Ni0xLjM2LTU3Ljk1LTM0Ljg0LTQ3LTY3LjkyLTM3LjIxLTEzLjExLTcyLjU0LTM0Ljg3LTk5LjYyLTcwLjgtMTMtMTcuMjgtLjQ4LTQxLjggMjAuODQtNDEuOCA0Ni4zMSAwIDMyLjIyLTU0LjE3IDQzLjE1LTExMC4yNkM5NC44IDk1LjIgMTkzLjEyIDMyIDI4OC4wOSAzMmMxMDIuNDggMCAxOTcuMTUgNzAuNjcgMjE0LjA4IDE2OS42N3pNMzczLjUxIDM4OC4yOGM0Mi0xOS4xOCA4MS4zMy01Ni43MSA5Ni4yOS0xMDIuMTQgNDAuNDgtMTIzLjA5LTY0LjE1LTIyOC0xODEuNzEtMjI4LTgzLjQ1IDAtMTcwLjMyIDU1LjQyLTE4Ni4wNyAxMzYtOS41MyA0OC45MSA1IDEzMS4zNS02OC43NSAxMzEuMzVDNTguMjEgMzU4LjYgOTEuNiAzNzguMTEgMTI3IDM4OS41NGMyNC42Ni0yMS44IDYzLjg3LTE1LjQ3IDc5LjgzIDE0LjM0IDE0LjIyIDEgNzkuMTkgMS4xOCA4Ny45LjgyYTUxLjY5IDUxLjY5IDAgMCAxIDc4Ljc4LTE2LjQyek0yMDUuMTIgMTg3LjEzYzAtMzQuNzQgNTAuODQtMzQuNzUgNTAuODQgMHMtNTAuODQgMzQuNzQtNTAuODQgMHptMTE2LjU3IDBjMC0zNC43NCA1MC44Ni0zNC43NSA1MC44NiAwcy01MC44NiAzNC43NS01MC44NiAwem0tMTIyLjYxIDcwLjY5Yy0zLjQ0LTE2Ljk0IDIyLjE4LTIyLjE4IDI1LjYyLTUuMjFsLjA2LjI4YzQuMTQgMjEuNDIgMjkuODUgNDQgNjQuMTIgNDMuMDcgMzUuNjgtLjk0IDU5LjI1LTIyLjIxIDY0LjExLTQyLjc3IDQuNDYtMTYuMDUgMjguNi0xMC4zNiAyNS40NyA2LTUuMjMgMjIuMTgtMzEuMjEgNjItOTEuNDYgNjIuOS00Mi41NSAwLTgwLjg4LTI3Ljg0LTg3LjktNjQuMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdlZWJseSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjUuMDkgNjUuODNjLTM5Ljg4IDAtNzMuMjggMjUuNzMtODMuNjYgNjQuMzMtMTguMTYtNTguMDYtNjUuNS02NC4zMy04NC45NS02NC4zMy0xOS43OCAwLTY2LjggNi4yOC04NS4yOCA2NC4zMy0xMC4zOC0zOC42LTQzLjQ1LTY0LjMzLTgzLjY2LTY0LjMzQzM4LjU5IDY1LjgzIDAgOTkuNzIgMCAxNDMuMDNjMCAyOC45NiA0LjE4IDMzLjI3IDc3LjE3IDIzMy40OCAyMi4zNyA2MC41NyA2Ny43NyA2OS4zNSA5Mi43NCA2OS4zNSAzOS4yMyAwIDcwLjA0LTE5LjQ2IDg1LjkzLTUzLjk4IDE1Ljg5IDM0LjgzIDQ2LjY5IDU0LjI5IDg1LjkzIDU0LjI5IDI0Ljk3IDAgNzAuMzYtOS4xIDkyLjc0LTY5LjY3IDc2LjU1LTIwOC42NSA3Ny41LTIwNS41OCA3Ny41LTIyNy4yLjYzLTQ4LjMyLTM2LjAxLTgzLjQ3LTg2LjkyLTgzLjQ3em0yNi4zNCAxMTQuODFsLTY1LjU3IDE3Ni40NGMtNy45MiAyMS40OS0yMS4yMiAzNy4yMi00Ni4yNCAzNy4yMi0yMy40NCAwLTM3LjM4LTEyLjQxLTQ0LjAzLTMzLjlsLTM5LjI4LTExNy40MmgtLjk1TDIxNi4wOCAzNjAuNGMtNi45NiAyMS41LTIwLjkgMzMuNi00NC4wMiAzMy42LTI1LjAyIDAtMzguMzMtMTUuNzQtNDYuMjQtMzcuMjJMNjAuODggMTgxLjU1Yy01LjM4LTE0LjgzLTcuOTItMjMuOTEtNy45Mi0zNC41IDAtMTYuMzQgMTUuODQtMjkuMzYgMzguMzMtMjkuMzYgMTguNjkgMCAzMS45OSAxMS44IDM2LjExIDI5LjA1bDQ0LjAzIDEzOS44MmguOTVsNDQuNjYtMTM2Ljc5YzYuMDItMTkuNjcgMTYuNDctMzIuMDggMzguOTYtMzIuMDhzMzIuOTQgMTIuMTEgMzguOTYgMzIuMDhsNDQuNjYgMTM2Ljc5aC45NWw0NC4wMy0xMzkuODJjNC4xMi0xNy4yNSAxNy40Mi0yOS4wNSAzNi4xMS0yOS4wNSAyMi4xNyAwIDM4LjMzIDEzLjMyIDM4LjMzIDM1LjcxLS4zMiA3Ljg3LTQuMTIgMTYuMDQtNy42MSAyNy4yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2VpYm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDA3IDE3Ny42YzcuNi0yNC0xMy40LTQ2LjgtMzcuNC00MS43LTIyIDQuOC0yOC44LTI4LjEtNy4xLTMyLjggNTAuMS0xMC45IDkyLjMgMzcuMSA3Ni41IDg0LjgtNi44IDIxLjItMzguOCAxMC44LTMyLTEwLjN6TTIxNC44IDQ0Ni43QzEwOC41IDQ0Ni43IDAgMzk1LjMgMCAzMTAuNGMwLTQ0LjMgMjgtOTUuNCA3Ni4zLTE0My43QzE3NiA2NyAyNzkuNSA2NS44IDI0OS45IDE2MWMtNCAxMy4xIDEyLjMgNS43IDEyLjMgNiA3OS41LTMzLjYgMTQwLjUtMTYuOCAxMTQgNTEuNC0zLjcgOS40IDEuMSAxMC45IDguMyAxMy4xIDEzNS43IDQyLjMgMzQuOCAyMTUuMi0xNjkuNyAyMTUuMnptMTQzLjctMTQ2LjNjLTUuNC01NS43LTc4LjUtOTQtMTYzLjQtODUuNy04NC44IDguNi0xNDguOCA2MC4zLTE0My40IDExNnM3OC41IDk0IDE2My40IDg1LjdjODQuOC04LjYgMTQ4LjgtNjAuMyAxNDMuNC0xMTZ6TTM0Ny45IDM1LjFjLTI1LjkgNS42LTE2LjggNDMuNyA4LjMgMzguMyA3Mi4zLTE1LjIgMTM0LjggNTIuOCAxMTEuNyAxMjQtNy40IDI0LjIgMjkuMSAzNyAzNy40IDEyIDMxLjktOTkuOC01NS4xLTE5NS45LTE1Ny40LTE3NC4zem0tNzguNSAzMTFjLTE3LjEgMzguOC02Ni44IDYwLTEwOS4xIDQ2LjMtNDAuOC0xMy4xLTU4LTUzLjQtNDAuMy04OS43IDE3LjctMzUuNCA2My4xLTU1LjQgMTAzLjQtNDUuMSA0MiAxMC44IDYzLjEgNTAuMiA0NiA4OC41em0tODYuMy0zMGMtMTIuOS01LjQtMzAgLjMtMzggMTIuOS04LjMgMTIuOS00LjMgMjggOC42IDM0IDEzLjEgNiAzMC44LjMgMzkuMS0xMi45IDgtMTMuMSAzLjctMjguMy05LjctMzR6bTMyLjYtMTMuNGMtNS4xLTEuNy0xMS40LjYtMTQuMyA1LjQtMi45IDUuMS0xLjQgMTAuNiAzLjcgMTIuOSA1LjEgMiAxMS43LS4zIDE0LjYtNS40IDIuOC01LjIgMS4xLTEwLjktNC0xMi45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXZWl4aW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg1LjIgMTY3LjZjNi40IDAgMTIuNi4zIDE4LjggMS4xQzM4Ny40IDkwLjMgMzAzLjMgMzIgMjA3LjcgMzIgMTAwLjUgMzIgMTMgMTA0LjggMTMgMTk3LjRjMCA1My40IDI5LjMgOTcuNSA3Ny45IDEzMS42bC0xOS4zIDU4LjYgNjgtMzQuMWMyNC40IDQuOCA0My44IDkuNyA2OC4yIDkuNyA2LjIgMCAxMi4xLS4zIDE4LjMtLjgtNC0xMi45LTYuMi0yNi42LTYuMi00MC44LS4xLTg0LjkgNzIuOS0xNTQgMTY1LjMtMTU0em0tMTA0LjUtNTIuOWMxNC41IDAgMjQuMiA5LjcgMjQuMiAyNC40IDAgMTQuNS05LjcgMjQuMi0yNC4yIDI0LjItMTQuOCAwLTI5LjMtOS43LTI5LjMtMjQuMi4xLTE0LjcgMTQuNi0yNC40IDI5LjMtMjQuNHptLTEzNi40IDQ4LjZjLTE0LjUgMC0yOS4zLTkuNy0yOS4zLTI0LjIgMC0xNC44IDE0LjgtMjQuNCAyOS4zLTI0LjQgMTQuOCAwIDI0LjQgOS43IDI0LjQgMjQuNCAwIDE0LjYtOS42IDI0LjItMjQuNCAyNC4yek01NjMgMzE5LjRjMC03Ny45LTc3LjktMTQxLjMtMTY1LjQtMTQxLjMtOTIuNyAwLTE2NS40IDYzLjQtMTY1LjQgMTQxLjNTMzA1IDQ2MC43IDM5Ny42IDQ2MC43YzE5LjMgMCAzOC45LTUuMSA1OC42LTkuOWw1My40IDI5LjMtMTQuOC00OC42QzUzNCA0MDIuMSA1NjMgMzYzLjIgNTYzIDMxOS40em0tMjE5LjEtMjQuNWMtOS43IDAtMTkuMy05LjctMTkuMy0xOS42IDAtOS43IDkuNy0xOS4zIDE5LjMtMTkuMyAxNC44IDAgMjQuNCA5LjcgMjQuNCAxOS4zIDAgMTAtOS43IDE5LjYtMjQuNCAxOS42em0xMDcuMSAwYy05LjcgMC0xOS4zLTkuNy0xOS4zLTE5LjYgMC05LjcgOS43LTE5LjMgMTkuMy0xOS4zIDE0LjUgMCAyNC40IDkuNyAyNC40IDE5LjMuMSAxMC05LjkgMTkuNi0yNC40IDE5LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdoYXRzYXBwU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxMjIuOGMtNzIuNyAwLTEzMS44IDU5LjEtMTMxLjkgMTMxLjggMCAyNC45IDcgNDkuMiAyMC4yIDcwLjFsMy4xIDUtMTMuMyA0OC42IDQ5LjktMTMuMSA0LjggMi45YzIwLjIgMTIgNDMuNCAxOC40IDY3LjEgMTguNGguMWM3Mi42IDAgMTMzLjMtNTkuMSAxMzMuMy0xMzEuOCAwLTM1LjItMTUuMi02OC4zLTQwLjEtOTMuMi0yNS0yNS01OC0zOC43LTkzLjItMzguN3ptNzcuNSAxODguNGMtMy4zIDkuMy0xOS4xIDE3LjctMjYuNyAxOC44LTEyLjYgMS45LTIyLjQuOS00Ny41LTkuOS0zOS43LTE3LjItNjUuNy01Ny4yLTY3LjctNTkuOC0yLTIuNi0xNi4yLTIxLjUtMTYuMi00MXMxMC4yLTI5LjEgMTMuOS0zMy4xYzMuNi00IDcuOS01IDEwLjYtNSAyLjYgMCA1LjMgMCA3LjYuMSAyLjQuMSA1LjctLjkgOC45IDYuOCAzLjMgNy45IDExLjIgMjcuNCAxMi4yIDI5LjRzMS43IDQuMy4zIDYuOWMtNy42IDE1LjItMTUuNyAxNC42LTExLjYgMjEuNiAxNS4zIDI2LjMgMzAuNiAzNS40IDUzLjkgNDcuMSA0IDIgNi4zIDEuNyA4LjYtMSAyLjMtMi42IDkuOS0xMS42IDEyLjUtMTUuNSAyLjYtNCA1LjMtMy4zIDguOS0yIDMuNiAxLjMgMjMuMSAxMC45IDI3LjEgMTIuOXM2LjYgMyA3LjYgNC42Yy45IDEuOS45IDkuOS0yLjQgMTkuMXpNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNMjIzLjkgNDEzLjJjLTI2LjYgMC01Mi43LTYuNy03NS44LTE5LjNMNjQgNDE2bDIyLjUtODIuMmMtMTMuOS0yNC0yMS4yLTUxLjMtMjEuMi03OS4zQzY1LjQgMTY3LjEgMTM2LjUgOTYgMjIzLjkgOTZjNDIuNCAwIDgyLjIgMTYuNSAxMTIuMiA0Ni41IDI5LjkgMzAgNDcuOSA2OS44IDQ3LjkgMTEyLjIgMCA4Ny40LTcyLjcgMTU4LjUtMTYwLjEgMTU4LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdoYXRzYXBwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4MC45IDk3LjFDMzM5IDU1LjEgMjgzLjIgMzIgMjIzLjkgMzJjLTEyMi40IDAtMjIyIDk5LjYtMjIyIDIyMiAwIDM5LjEgMTAuMiA3Ny4zIDI5LjYgMTExTDAgNDgwbDExNy43LTMwLjljMzIuNCAxNy43IDY4LjkgMjcgMTA2LjEgMjdoLjFjMTIyLjMgMCAyMjQuMS05OS42IDIyNC4xLTIyMiAwLTU5LjMtMjUuMi0xMTUtNjcuMS0xNTd6bS0xNTcgMzQxLjZjLTMzLjIgMC02NS43LTguOS05NC0yNS43bC02LjctNC02OS44IDE4LjNMNzIgMzU5LjJsLTQuNC03Yy0xOC41LTI5LjQtMjguMi02My4zLTI4LjItOTguMiAwLTEwMS43IDgyLjgtMTg0LjUgMTg0LjYtMTg0LjUgNDkuMyAwIDk1LjYgMTkuMiAxMzAuNCA1NC4xIDM0LjggMzQuOSA1Ni4yIDgxLjIgNTYuMSAxMzAuNSAwIDEwMS44LTg0LjkgMTg0LjYtMTg2LjYgMTg0LjZ6bTEwMS4yLTEzOC4yYy01LjUtMi44LTMyLjgtMTYuMi0zNy45LTE4LTUuMS0xLjktOC44LTIuOC0xMi41IDIuOC0zLjcgNS42LTE0LjMgMTgtMTcuNiAyMS44LTMuMiAzLjctNi41IDQuMi0xMiAxLjQtMzIuNi0xNi4zLTU0LTI5LjEtNzUuNS02Ni01LjctOS44IDUuNy05LjEgMTYuMy0zMC4zIDEuOC0zLjcuOS02LjktLjUtOS43LTEuNC0yLjgtMTIuNS0zMC4xLTE3LjEtNDEuMi00LjUtMTAuOC05LjEtOS4zLTEyLjUtOS41LTMuMi0uMi02LjktLjItMTAuNi0uMi0zLjcgMC05LjcgMS40LTE0LjggNi45LTUuMSA1LjYtMTkuNCAxOS0xOS40IDQ2LjMgMCAyNy4zIDE5LjkgNTMuNyAyMi42IDU3LjQgMi44IDMuNyAzOS4xIDU5LjcgOTQuOCA4My44IDM1LjIgMTUuMiA0OSAxNi41IDY2LjYgMTMuOSAxMC43LTEuNiAzMi44LTEzLjQgMzcuNC0yNi40IDQuNi0xMyA0LjYtMjQuMSAzLjItMjYuNC0xLjMtMi41LTUtMy45LTEwLjUtNi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaG1jcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMTYxdi0yMS4zbC0yOC41LTguOC0yLjItMTAuNCAyMC4xLTIwLjdMNDI3IDgwLjRsLTI5IDcuNS03LjItNy41IDcuNS0yOC4yLTE5LjEtMTEuNi0yMS4zIDIxLTEwLjctMy4yLTctMjYuNGgtMjIuNmwtNi4yIDI2LjQtMTIuMSAzLjItMTkuNy0yMS0xOS40IDExIDguMSAyNy43LTguMSA4LjQtMjguNS03LjUtMTEgMTkuMSAyMC43IDIxLTIuOSAxMC40LTI4LjUgNy44LS4zIDIxLjcgMjguOCA3LjUgMi40IDEyLjEtMjAuMSAxOS45IDEwLjQgMTguNSAyOS42LTcuNSA3LjIgOC42LTguMSAyNi45IDE5LjkgMTEuNiAxOS40LTIwLjQgMTEuNiAyLjkgNi43IDI4LjUgMjIuNi4zIDYuNy0yOC44IDExLjYtMy41IDIwLjcgMjEuNiAyMC40LTEyLjEtOC44LTI4IDcuOC04LjEgMjguOCA4LjggMTAuMy0yMC4xLTIwLjktMTguOCAyLjItMTIuMSAyOS4xLTd6bS0xMTkuMiA0NS4yYy0zMS4zIDAtNTYuOC0yNS40LTU2LjgtNTYuOHMyNS40LTU2LjggNTYuOC01Ni44IDU2LjggMjUuNCA1Ni44IDU2LjhjMCAzMS41LTI1LjQgNTYuOC01Ni44IDU2Ljh6bTcyLjMgMTYuNGw0Ni45IDE0LjVWMjc3bC01NS4xIDEzLjQtNC4xIDIyLjcgMzguOSAzNS4zLTE5LjIgMzcuOS01NC0xNi43LTE0LjYgMTUuMiAxNi43IDUyLjUtMzguMyAyMi43LTM4LjktNDAuNS0yMS43IDYuNi0xMi42IDU0LTQyLjQtLjUtMTIuNi01My42LTIxLjctNS42LTM2LjQgMzguNC0zNy40LTIxLjcgMTUuMi01MC41LTEzLjctMTYuMS01NS41IDE0LjEtMTkuNy0zNC44IDM3LjktMzcuNC00LjgtMjIuOC01NC0xNC4xLjUtNDAuOUw1NCAyMTkuOWw1LjctMTkuNy0zOC45LTM5LjRMNDEuNSAxMjVsNTMuNiAxNC4xIDE1LjItMTUuNy0xNS4yLTUyIDM2LjQtMjAuNyAzNi44IDM5LjRMMTkxIDg0bDExLjYtNTJIMjQ1bDExLjYgNDUuOUwyMzQgNzJsLTYuMy0xLjctMy4zIDUuNy0xMSAxOS4xLTMuMyA1LjYgNC42IDQuNiAxNy4yIDE3LjQtLjMgMS0yMy44IDYuNS02LjIgMS43LS4xIDYuNC0uMiAxMi45QzE1My44IDE2MS42IDExOCAyMDQgMTE4IDI1NC43YzAgNTguMyA0Ny4zIDEwNS43IDEwNS43IDEwNS43IDUwLjUgMCA5Mi43LTM1LjQgMTAzLjItODIuOGwxMy4yLjIgNi45LjEgMS42LTYuNyA1LjYtMjQgMS45LS42IDE3LjEgMTcuOCA0LjcgNC45IDUuOC0zLjQgMjAuNC0xMi4xIDUuOC0zLjUtMi02LjUtNi44LTIxLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdpa2lwZWRpYVcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQwIDUxLjJsLS4zIDEyLjJjLTI4LjEuOC00NSAxNS44LTU1LjggNDAuMy0yNSA1Ny44LTEwMy4zIDI0MC0xNTUuMyAzNTguNkg0MTVsLTgxLjktMTkzLjFjLTMyLjUgNjMuNi02OC4zIDEzMC05OS4yIDE5My4xLS4zLjMtMTUgMC0xNS0uM0MxNzIgMzUyLjMgMTIyLjggMjQzLjQgNzUuOCAxMzMuNCA2NC40IDEwNi43IDI2LjQgNjMuNC4yIDYzLjdjMC0zLjEtLjMtMTAtLjMtMTQuMmgxNjEuOXYxMy45Yy0xOS4yIDEuMS01Mi44IDEzLjMtNDMuMyAzNC4yIDIxLjkgNDkuNyAxMDMuNiAyNDAuMyAxMjUuNiAyODguNiAxNS0yOS43IDU3LjgtMTA5LjIgNzUuMy0xNDIuOC0xMy45LTI4LjMtNTguNi0xMzMuOS03Mi44LTE2MC05LjctMTcuOC0zNi4xLTE5LjQtNTUuOC0xOS43VjQ5LjhsMTQyLjUuM3YxMy4xYy0xOS40LjYtMzguMSA3LjgtMjkuNCAyNi4xIDE4LjkgNDAgMzAuNiA2OC4xIDQ4LjEgMTA0LjcgNS42LTEwLjggMzQuNy02OS40IDQ4LjEtMTAwLjggOC45LTIwLjYtMy45LTI4LjYtMzguNi0yOS40LjMtMy42IDAtMTAuMy4zLTEzLjYgNDQuNC0uMyAxMTEuMS0uMyAxMjMuMS0uNnYxMy42Yy0yMi41LjgtNDUuOCAxMi44LTU4LjEgMzEuN2wtNTkuMiAxMjIuOGM2LjQgMTYuMSA2My4zIDE0Mi44IDY5LjIgMTU2LjdMNTU5LjIgOTEuOGMtOC42LTIzLjEtMzYuNC0yOC4xLTQ3LjItMjguM1Y0OS42bDEyNy44IDEuMS4yLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdpbmRvd3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA5My43bDE4My42LTI1LjN2MTc3LjRIMFY5My43em0wIDMyNC42bDE4My42IDI1LjNWMjY4LjRIMHYxNDkuOXptMjAzLjggMjhMNDQ4IDQ4MFYyNjguNEgyMDMuOHYxNzcuOXptMC0zODAuNnYxODAuMUg0NDhWMzJMMjAzLjggNjUuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2l4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM5My4zOCAxMzEuNjljMCAxMy4wMyAyLjA4IDMyLjY5LTI4LjY4IDQzLjgzLTkuNTIgMy40NS0xNS45NSA5LjY2LTE1Ljk1IDkuNjYgMC0zMSA0LjcyLTQyLjIyIDE3LjQtNDguODYgOS43NS01LjExIDI3LjIzLTQuNjMgMjcuMjMtNC42M3ptLTExNS44IDM1LjU0bC0zNC4yNCAxMzIuNjYtMjguNDgtMTA4LjU3Yy03LjY5LTMxLjk5LTIwLjgxLTQ4LjUzLTQ4LjQzLTQ4LjUzLTI3LjM3IDAtNDAuNjYgMTYuMTgtNDguNDMgNDguNTNMODkuNTIgMjk5Ljg5IDU1LjI4IDE2Ny4yM0M0OS43MyAxNDAuNTEgMjMuODYgMTI4Ljk2IDAgMTMxLjk2bDY1LjU3IDI0Ny45M3MyMS42MyAxLjU2IDMyLjQ2LTMuOTZjMTQuMjItNy4yNSAyMC45OC0xMi44NCAyOS41OS00Ni41NyA3LjY3LTMwLjA3IDI5LjExLTExOC40MSAzMS4xMi0xMjQuNyA0Ljc2LTE0Ljk0IDExLjA5LTEzLjgxIDE1LjQgMCAxLjk3IDYuMyAyMy40NSA5NC42MyAzMS4xMiAxMjQuNyA4LjYgMzMuNzMgMTUuMzcgMzkuMzIgMjkuNTkgNDYuNTcgMTAuODIgNS41MiAzMi40NiAzLjk2IDMyLjQ2IDMuOTZsNjUuNTctMjQ3LjkzYy0yNC40Mi0zLjA3LTQ5LjgyIDguOTMtNTUuMyAzNS4yN3ptMTE1Ljc4IDUuMjFzLTQuMSA2LjM0LTEzLjQ2IDExLjU3Yy02LjAxIDMuMzYtMTEuNzggNS42NC0xNy45NyA4LjYxLTE1LjE0IDcuMjYtMTMuMTggMTMuOTUtMTMuMTggMzUuMnYxNTIuMDdzMTYuNTUgMi4wOSAyNy4zNy0zLjQzYzEzLjkzLTcuMSAxNy4xMy0xMy45NSAxNy4yNi00NC43OFYxODEuNDFsLS4wMi4wMXYtOC45OHptMTYzLjQ0IDg0LjA4TDY0MCAxMzIuNzhzLTM1LjExLTUuOTgtNTIuNSA5Ljg1Yy0xMy4zIDEyLjEtMjQuNDEgMjkuNTUtNTQuMTggNzIuNDctLjQ3LjczLTYuMjUgMTAuNTQtMTMuMDcgMC0yOS4yOS00Mi4yMy00MC44LTYwLjI5LTU0LjE4LTcyLjQ3LTE3LjM5LTE1LjgzLTUyLjUtOS44NS01Mi41LTkuODVsODMuMiAxMjMuNzQtODIuOTcgMTIzLjM2czM2LjU3IDQuNjIgNTMuOTUtMTEuMjFjMTEuNDktMTAuNDYgMTcuNTgtMjAuMzcgNTIuNTEtNzAuNzIgNi44MS0xMC41MiAxMi41Ny0uNzcgMTMuMDcgMCAyOS40IDQyLjM4IDM5LjIzIDU4LjA2IDUzLjE0IDcwLjcyIDE3LjM5IDE1LjgzIDUzLjMyIDExLjIxIDUzLjMyIDExLjIxTDU1Ni44IDI1Ni41MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2l6YXJkc09mVGhlQ29hc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE5LjE5IDM0NS42OWMtMS45IDEuMzgtMTEuMDcgOC40NC0uMjYgMjMuNTcgNC42NCA2LjQyIDE0LjExIDEyLjc5IDIxLjczIDYuNTUgNi41LTQuODggNy4zNS0xMi45Mi4yNi0yMy4wNC01LjQ3LTcuNzYtMTQuMjgtMTIuODgtMjEuNzMtNy4wOHptMzM2Ljc1IDc1Ljk0Yy0uMzQgMS43LS41NSAxLjY3Ljc5IDAgMi4wOS00LjE5IDQuMTktMTAuMjEgNC45OC0xOS45IDMuMTQtMzguNDktNDAuMzMtNzEuNDktMTAxLjM0LTc4LjAzLTU0LjczLTYuMDItMTI0LjM4IDkuMTctMTg4LjggNjAuNDlsLS4yNiAxLjU3YzIuNjIgNC45OCA0Ljk4IDEwLjc0IDMuNCAyMS4yMWwuNzkuMjZjNjMuODktNTguNCAxMzEuMTktNzcuMjUgMTg0LjM1LTczLjg1IDU4LjQgMy42NyAxMDAuMDMgMzQuMDQgMTAwLjAzIDY4LjA4LS4wMSA5Ljk2LTIuNjMgMTUuNzItMy45NCAyMC4xN3pNMzkyLjI4IDI0MC40MmMuNzkgNy4wNyA0LjE5IDEwLjIxIDkuMTcgMTAuNDcgNS41LjI2IDkuNDMtMi42MiAxMC40Ny02LjU1Ljc5LTMuNCAyLjA5LTI5Ljg1IDIuMDktMjkuODVzLTExLjI2IDYuNTUtMTQuOTMgMTAuNDdjLTMuNjYgMy42OC03LjMzIDguMzktNi44IDE1LjQ2em0tNTAuMDItMTUxLjFDMTM3Ljc1IDg5LjMyIDEzLjEgMjI2LjguNzkgMjQxLjJjLTEuMDUuNTItMS4zMS43OS43OSAxLjMxIDYwLjQ5IDE2LjUgMTU1LjgxIDgxLjE4IDE5Ni4xMyAyMDIuMTZsMS4wNS4yNmM1NS4yNS02OS45MiAxNDAuODgtMTI4LjA1IDIzNi45OS0xMjguMDUgODAuOTIgMCAxMzAuMTUgNDIuMTYgMTMwLjE1IDgwLjM5IDAgMTguMzMtNi41NSAzMy41Mi0yMi4yNiA0Ni4zNSAwIC45Ni0uMi43OS43OS43OSAxNC42Ni0xMC43NCAyNy41LTI4LjggMjcuNS00OC4xOCAwLTIyLjc4LTEyLjA1LTM4LjIzLTEyLjA1LTM4LjIzIDcuMDcgNy4wNyAxMC43NCAxNi4yNCAxMC43NCAxNi4yNCA1Ljc2LTQwLjg1IDI2Ljk3LTYyLjMyIDI2Ljk3LTYyLjMyLTIuMzYtOS42OS02LjgxLTE3LjgxLTYuODEtMTcuODEgNy41OSA4LjEyIDE0LjQgMjcuNSAxNC40IDQxLjM3IDAgMTAuNDctMy40IDIyLjc4LTEyLjU3IDMxLjk1bC4yNi41MmM4LjEyLTQuOTggMTYuNS0xNi43NiAxNi41LTM3Ljk3IDAtMTUuNzEtNC43MS0yNS45Mi00LjcxLTI1LjkyIDUuNzYtNS4yNCAxMS4yNi05LjE3IDE1Ljk3LTExLjc4Ljc5IDMuNCAyLjA5IDkuNjkgMi4zNiAxNC45MyAwIDEuMDUuNzkgMS44MyAxLjA1IDAgLjc5LTUuNzYtLjI2LTE2LjI0LS4yNi0xNi41IDYuMDItMy4xNCA5LjY5LTQuNDUgOS42OS00LjQ1QzYxNy43NCAxNzYgNDg5LjQzIDg5LjMyIDM0Mi4yNiA4OS4zMnptLTk5LjI0IDI4OS42MmMtMTEuMDYgOC45OS0yNC4yIDQuMDgtMzAuNjQtNC4xOS03LjQ1LTkuNTgtNi43Ni0yNC4wOSA0LjE5LTMyLjQ3IDE0Ljg1LTExLjM1IDI3LjA4LS40OSAzMS4xNiA1LjUuMjguMzkgMTIuMTMgMTYuNTctNC43MSAzMS4xNnptMi4wOS0xMzYuNDNsOS40My0xNy44MSAxMS43OCA3MC45Ni0xMi41NyA2LjAyLTI0LjYyLTI4LjggMTQuMTQtMjYuNzEgMy42NyA0LjQ1LTEuODMtOC4xMXptMTguNTkgMTE3LjU4bC0uMjYtLjI2YzIuMDUtNC4xLTIuNS02LjYxLTE3LjU0LTMxLjY5LTEuMzEtMi4zNi0zLjE0LTIuODgtNC40NS0yLjYybC0uMjYtLjUyYzcuODYtNS43NiAxNS40NS0xMC4yMSAyNS40LTE1LjcxbC41Mi4yNmMxLjMxIDEuODMgMi4wOSAyLjg4IDMuNCA0LjcxbC0uMjYuNTJjLTEuMDUtLjI2LTIuMzYtLjc5LTUuMjQuMjYtMi4wOS43OS03Ljg2IDMuNjctMTIuMzEgNy41OXYxLjMxYzEuNTcgMi4zNiAzLjkzIDYuNTUgNS43NiA5LjY5aC4yNmMxMC4wNS02LjI4IDcuNTYtNC41NSAxMS41Mi03Ljg2aC4yNmMuNTIgMS44My41MiAxLjgzIDEuODMgNS41bC0uMjYuMjZjLTMuMDYuNjEtNC42NS4zNC0xMS41MiA1LjV2LjI2YzkuNDYgMTcuMDIgMTEuMDEgMTYuNzUgMTIuNTcgMTUuOTdsLjI2LjI2Yy0yLjM0IDEuNTktNi4yNyA0LjIxLTkuNjggNi41N3ptNTUuMjYtMzIuNDdjLTMuMTQgMS41Ny02LjAyIDIuODgtOS45NSA0Ljk4bC0uMjYtLjI2YzEuMjktMi41OSAxLjE2LTIuNzEtMTEuNzgtMzIuNDdsLS4yNi0uMjZjLS4xNSAwLTguOSAzLjY1LTkuOTUgNy4zM2gtLjUybC0xLjA1LTUuNzYuMjYtLjUyYzcuMjktNC41NiAyNS41My0xMS42NCAyNy43Ni0xMi41N2wuNTIuMjYgMy4xNCA0Ljk4LS4yNi41MmMtMy41My0xLjc2LTcuMzUuNzYtMTIuMzEgMi42MnYuMjZjMTIuMzEgMzIuMDEgMTIuNjcgMzAuNjQgMTQuNjYgMzAuNjR2LjI1em00NC43Ny0xNi41Yy00LjE5IDEuMDUtNS4yNCAxLjMxLTkuNjkgMi44OGwtLjI2LS4yNi41Mi00LjQ1Yy0xLjA1LTMuNC0zLjE0LTExLjUyLTMuNjctMTMuNjJsLS4yNi0uMjZjLTMuNC43OS04LjkgMi42Mi0xMi44MyAzLjkzbC0uMjYuMjZjLjc5IDIuNjIgMy4xNCA5Ljk1IDQuMTkgMTMuODguNzkgMi4zNiAxLjgzIDIuODggMi44OCAzLjE0di41MmMtMy42NyAxLjA1LTcuMDcgMi42Mi0xMC4yMSAzLjkzbC0uMjYtLjI2YzEuMDUtMS4zMSAxLjA1LTIuODguMjYtNC45OC0xLjA1LTMuMTQtOC4xMi0yMy44My05LjE3LTI3LjIzLS41Mi0xLjgzLTEuNTctMy4xNC0yLjYyLTMuMTR2LS41MmMzLjE0LTEuMDUgNi4wMi0yLjA5IDEwLjc0LTMuNGwuMjYuMjYtLjI2IDQuNzFjMS4zMSAzLjkzIDIuMzYgNy41OSAzLjE0IDkuNjloLjI2YzMuOTMtMS4zMSA5LjQzLTIuODggMTIuODMtMy45M2wuMjYtLjI2LTIuNjItOS40M2MtLjUyLTEuODMtMS4wNS0zLjQtMi42Mi0zLjkzdi0uMjZjNC40NS0xLjA1IDcuMzMtMS44MyAxMC43NC0yLjM2bC4yNi4yNmMtMS4wNSAxLjMxLTEuMDUgMi44OC0uNTIgNC40NSAxLjU3IDYuMjggNC43MSAyMC40MyA2LjI4IDI2LjQ1LjU0IDIuNjIgMS44NSAzLjQxIDIuNjMgMy45M3ptMzIuMjEtNi44MWwtLjI2LjI2Yy00LjcxLjUyLTE0LjE0IDIuMzYtMjIuNTIgNC4xOWwtLjI2LS4yNi43OS00LjE5Yy0xLjU3LTcuODYtMy40LTE4LjU5LTQuOTgtMjYuMTktLjI2LTEuODMtLjc5LTIuODgtMi42Mi0zLjY3bC43OS0uNTJjOS4xNy0xLjU3IDIwLjE2LTIuMzYgMjQuODgtMi42MmwuMjYuMjZjLjUyIDIuMzYuNzkgMy4xNCAxLjU3IDUuNWwtLjI2LjI2Yy0xLjE0LTEuMTQtMy4zNC0zLjItMTYuMjQtLjc5bC0uMjYuMjZjLjI2IDEuNTcgMS4wNSA2LjU1IDEuNTcgOS45NWwuMjYuMjZjOS41Mi0xLjY4IDQuNzYtLjA2IDEwLjc0LTIuMzZoLjI2YzAgMS41Ny0uMjYgMS44My0uMjYgNS4yNGgtLjI2Yy00LjgxLTEuMDMtMi4xNS0uOS0xMC4yMSAwbC0uMjYuMjZjLjI2IDIuMDkgMS41NyA5LjQzIDIuMDkgMTIuNTdsLjI2LjI2YzEuMTUuMzggMTQuMjEtLjY1IDE2LjI0LTQuNzFoLjI2Yy0uNTMgMi4zOC0xLjA1IDQuMjEtMS41OCA2LjA0em0xMC43NC00NC41MWMtNC40NSAyLjM2LTguMTIgMi44OC0xMSAyLjg4LS4yNS4wMi0xMS40MSAxLjA5LTE3LjU0LTkuOTUtNi43NC0xMC43OS0uOTgtMjUuMiA1LjUtMzEuNjkgOC44LTguMTIgMjMuMzUtMTAuMSAyOC41NC0xNy4wMiA4LjAzLTEwLjMzLTEzLjA0LTIyLjMxLTI5LjU5LTUuNzZsLTIuNjItMi44OCA1LjI0LTE2LjI0YzI1LjU5LTEuNTcgNDUuMi0zLjA0IDUwLjAyIDE2LjI0Ljc5IDMuMTQgMCA5LjQzLS4yNiAxMi4wNSAwIDIuNjItMS44MyAxOC44NS0yLjA5IDIzLjA0LS41MiA0LjE5LS43OSAxOC4zMy0uNzkgMjAuNjkuMjYgMi4zNi41MiA0LjE5IDEuNTcgNS41IDEuNTcgMS44MyA1Ljc2IDEuODMgNS43NiAxLjgzbC0uNzkgNC43MWMtMTEuODItMS4wNy0xMC4yOC0uNTktMjAuNDMtMS4wNS0zLjIyLTUuMTUtMi4yMy0zLjI4LTQuMTktNy44NiAwIC4wMS00LjE5IDMuOTQtNy4zMyA1LjUxem0zNy4xOCAyMS4yMWMtNi4zNS0xMC41OC0xOS44Mi03LjE2LTIxLjczIDUuNS0yLjYzIDE3LjA4IDE0LjMgMTkuNzkgMjAuNjkgMTAuMjFsLjI2LjI2Yy0uNTIgMS44My0xLjgzIDYuMDItMS44MyA2LjI4bC0uNTIuNTJjLTEwLjMgNi44Ny0yOC41LTIuNS0yNS42Ni0xOC41OSAxLjk0LTEwLjg3IDE0LjQ0LTE4LjkzIDI4LjgtOS45NWwuMjYuNTJjMCAxLjA2LS4yNyAzLjQxLS4yNyA1LjI1em01Ljc3LTg3Ljczdi02LjU1Yy42OSAwIDE5LjY1IDMuMjggMjcuNzYgNy4zM2wtMS41NyAxNy41NHMxMC4yMS05LjQzIDE1LjQ1LTEwLjc0YzUuMjQtMS41NyAxNC45MyA3LjMzIDE0LjkzIDcuMzNsLTExLjI2IDExLjI2Yy0xMi4wNy02LjM1LTE5LjU5LS4wOC0yMC42OS43OS01LjI5IDM4LjcyLTguNiA0Mi4xNyA0LjQ1IDQ2LjA5bC0uNTIgNC43MWMtMTcuNTUtNC4yOS0xOC41My00LjUtMzYuOTItNy4zM2wuNzktNC43MWM3LjI1IDAgNy40OC01LjMyIDcuNTktNi44MSAwIDAgNC45OC01My4xNiA0Ljk4LTU1LjI1LS4wMi0yLjg3LTQuOTktMy42Ni00Ljk5LTMuNjZ6bTEwLjk5IDExNC40NGMtOC4xMi0yLjA5LTE0LjE0LTExLTEwLjc0LTIwLjY5IDMuMTQtOS40MyAxMi4zMS0xMi4zMSAxOC44NS0xMC4yMSA5LjE3IDIuNjIgMTIuODMgMTEuNzggMTAuNzQgMTkuMzgtMi42MSA4LjktOS40MiAxMy44Ny0xOC44NSAxMS41MnptNDIuMTYgOS42OWMtMi4zNi0uNTItNy4wNy0yLjM2LTguNjQtMi44OHYtLjI2bDEuNTctMS44M2MuNTktOC4yNC41OS03LjI3LjI2LTcuNTktNC44Mi0xLjgxLTYuNjYtMi4zNi03LjA3LTIuMzYtMS4zMSAxLjgzLTIuODggNC40NS0zLjY3IDUuNWwtLjc5IDMuNHYuMjZjLTEuMzEtLjI2LTMuOTMtMS4zMS02LjAyLTEuNTd2LS4yNmwyLjYyLTEuODNjMy40LTQuNzEgOS45NS0xNC4xNCAxMy44OC0yMC4xNnYtMi4wOWwuNTItLjI2YzIuMDkuNzkgNS41IDIuMDkgNy41OSAyLjg4LjQ4LjQ4LjE4LTEuODctMS4wNSAyNS4xNC0uMjQgMS44MS4wMiAyLjYuOCAzLjkxem0tNC43MS04OS44MmMxMS4yNS0xOC4yNyAzMC43Ni0xNi4xOSAzNC4wNC0zLjRMNTM5LjcgMTk4YzIuMzQtNi4yNS0yLjgyLTkuOS00LjQ1LTExLjI2bDEuODMtMy42N2MxMi4yMiAxMC4zNyAxNi4zOCAxMy45NyAyMi41MiAyMC40My0yNS45MSA3My4wNy0zMC43NiA4MC44MS0yNC42MiA4NC4zMmwtMS44MyA0LjQ1Yy02LjM3LTMuMzUtOC45LTQuNDItMTcuODEtOC42NGwyLjA5LTYuODFjLS4yNi0uMjYtMy45MyAzLjkzLTkuNjkgMy42Ny0xOS4wNi0xLjMtMjIuODktMzEuNzUtOS42Ny01Mi45em0yOS4zMyA3OS4zNGMwLTUuNzEtNi4zNC03Ljg5LTcuODYtNS4yNC0xLjMxIDIuMDkgMS4wNSA0Ljk4IDIuODggOC4zOCAxLjU3IDIuNjIgMi42MiA2LjI4IDEuMDUgOS40My0yLjY0IDYuMzQtMTIuNCA1LjMxLTE1LjQ1LS43OSAwLS43LS4yNy4wOSAxLjgzLTQuNzFsLjc5LS4yNmMtLjU3IDUuNjYgNi4wNiA5LjYxIDguMzggNC45OCAxLjA1LTIuMDktLjUyLTUuNS0yLjA5LTguMzgtMS41Ny0yLjYyLTMuNjctNi4yOC0xLjgzLTkuNjkgMi43Mi01LjA2IDExLjI1LTQuNDcgMTQuNjYgMi4zNnYuNTJsLTIuMzYgMy40em0yMS4yMSAxMy4zNmMtMS45Ni0zLjI3LS45MS0yLjE0LTQuNDUtNC43MWgtLjI2Yy0yLjM2IDQuMTktNS43NiAxMC40Ny04LjY0IDE2LjI0LTEuMzEgMi4zNi0xLjA1IDMuNC0uNzkgMy45M2wtLjI2LjI2LTUuNzYtNC40NS4yNi0uMjYgMi4wOS0xLjMxYzMuMTQtNS43NiA2LjU1LTEyLjA1IDkuMTctMTcuMDJ2LS4yNmMtMi42NC0xLjk4LTEuMjItMS41MS02LjAyLTEuODN2LS4yNmwzLjE0LTMuNGguMjZjMy42NyAyLjM2IDkuOTUgNi44MSAxMi4zMSA4LjlsLjI2LjI2LTEuMzEgMy45MXptMjcuMjMtNDQuMjZsLTIuODgtMi44OGMuNzktMi4zNiAxLjgzLTQuOTggMi4wOS03LjU5Ljc1LTkuNzQtMTEuNTItMTEuODQtMTEuNTItNC45OCAwIDQuOTggNy44NiAxOS4zOCA3Ljg2IDI3Ljc2IDAgMTAuMjEtNS43NiAxNS43MS0xMy44OCAxNi41LTguMzguNzktMjAuMTYtMTAuNDctMjAuMTYtMTAuNDdsNC45OC0xNC40IDIuODggMi4wOWMtMi45NyAxNy44IDE3LjY4IDIwLjM3IDEzLjM1IDUuMjQtMS4wNi00LjAyLTE4Ljc1LTM0LjIgMi4wOS0zOC4yMyAxMy42Mi0yLjM2IDIzLjA0IDE2LjUgMjMuMDQgMTYuNWwtNy44NSAxMC40NnptMzUuNjItMTAuMjFjLTExLTMwLjM4LTYwLjQ5LTEyNy41My0xOTEuOTUtMTI5LjYyLTUzLjQyLTEuMDUtOTQuMjcgMTUuNDUtMTMyLjc2IDM3Ljk3bDg1LjYzLTkuMTctOTEuMzkgMjAuNjkgMjUuMTQgMTkuNjQtMy45My0xNi41YzcuNS0xLjcxIDM5LjE1LTguNDUgNjYuNzctOC45bC0yMi4yNiA4MC4zOWMxMy42MS0uNyAxOC45Ny04Ljk4IDE5LjY0LTIyLjc4bDQuOTgtMS4wNS4yNiAyNi43MWMtMjIuNDYgMy4yMS0zNy4zIDYuNjktNDkuNDkgOS45NWwxMy4wOS00My4yMS02MS41NC0zNi42NiAyLjM2IDguMTIgMTAuMjEgNC45OGM2LjI4IDE4LjU5IDE5LjM4IDU2LjU2IDIwLjQzIDU4LjY2IDEuOTUgNC4yOCAzLjE2IDUuNzggMTIuMDUgNC40NWwxLjA1IDQuOThjLTE2LjA4IDQuODYtMjMuNjYgNy42MS0zOS4wMiAxNC40bC0yLjM2LTQuNzFjNC40LTIuOTQgOC43My0zLjk0IDUuNS0xMi44My0yMy43LTYyLjUtMjEuNDgtNTguMTQtMjIuNzgtNTkuNDRsMi4zNi00LjQ1IDMzLjUyIDY3LjNjLTMuODQtMTEuODcgMS42OCAxLjY5LTMyLjk5LTc4LjgybC00MS45IDg4LjUxIDQuNzEtMTMuODgtMzUuODgtNDIuMTYgMjcuNzYgOTMuNDgtMTEuNzggOC4zOEM5NSAyMjguNTggMTAxLjA1IDIzMS44NyA5My4yMyAyMzEuNTJjLTUuNS0uMjYtMTMuNjIgNS41LTEzLjYyIDUuNUw3NC42MyAyMzFjMzAuNTYtMjMuNTMgMzEuNjItMjQuMzMgNTguNC00Mi42OGw0LjE5IDcuMDdzLTUuNzYgNC4xOS03Ljg2IDcuMDdjLTUuOSA5LjI4IDEuNjcgMTMuMjggNjEuOCA3NS42OGwtMTguODUtNTguOTIgMzkuOC0xMC4yMSAyNS42NiAzMC42NCA0LjQ1LTEyLjMxLTQuOTgtMjQuNjIgMTMuMDktMy40LjUyIDMuMTQgMy42Ny0xMC40Ny05NC4yNyAyOS4zMyAxMS4yNi00Ljk4LTEzLjYyLTQyLjQyIDE3LjI4LTkuMTcgMzAuMTEgMzYuMTQgMjguNTQtMTMuMDljLTEuNDEtNy40Ny0yLjQ3LTE0LjUtNC43MS0xOS42NGwxNy4yOCAxMy44OCA0LjcxLTIuMDktNTkuMTgtNDIuNjggMjMuMDggMTEuNWMxOC45OC02LjA3IDI1LjIzLTcuNDcgMzIuMjEtOS42OWwyLjYyIDExYy0xMi41NSAxMi41NSAxLjQzIDE2LjgyIDYuNTUgMTkuMzhsLTEzLjYyLTYxLjAxIDEyLjA1IDI4LjI4YzQuMTktMS4zMSA3LjMzLTIuMDkgNy4zMy0yLjA5bDIuNjIgOC42NHMtMy4xNCAxLjA1LTYuMjggMi4wOWw4LjkgMjAuOTUgMzMuNzgtNjUuNzMtMjAuNjkgNjEuMDFjNDIuNDItMjQuMDkgODEuNDQtMzYuNjYgMTMxLjk4LTM1Ljg4IDY3LjA0IDEuMDUgMTY3LjMzIDQwLjg1IDE5OS44IDEzOS44My43OCAyLjEtLjAxIDIuNjMtLjc5LjI3ek0yMDMuNDggMTUyLjQzczEuODMtLjUyIDQuMTktMS4zMWw5LjQzIDcuNTljLS40IDAtMy40NC0uMjUtMTEuMjYgMi4zNmwtMi4zNi04LjY0em0xNDMuNzYgMzguNWMtMS41Ny0uNi0yNi40Ni00LjgxLTMzLjI2IDIwLjY5bDIxLjczIDE3LjAyIDExLjUzLTM3Ljcxek0zMTguNDMgNjcuMDdjLTU4LjQgMC0xMDYuMDUgMTIuMDUtMTE0Ljk2IDE0LjR2Ljc5YzguMzggMi4wOSAxNC40IDQuMTkgMjEuMjEgMTEuNzhsMS41Ny4yNmM2LjU1LTEuODMgNDguOTctMTMuODggMTEwLjI0LTEzLjg4IDE4MC4xNiAwIDMwMS42NyAxMTYuNzkgMzAxLjY3IDIyMy4zN3Y5Ljk1YzAgMS4zMS43OSAyLjYyIDEuMDUuNTIuNTItMi4wOS43OS04LjY0Ljc5LTE5LjY0LjI2LTgzLjc5LTk2LjYzLTIyNy41NS0zMjEuNTctMjI3LjU1em0yMTEuMDYgMTY5LjY4YzEuMzEtNS43NiAwLTEyLjMxLTcuMzMtMTMuMDktOS42Mi0xLjEzLTE2LjE0IDIzLjc5LTE3LjAyIDMzLjUyLS43OSA1LjUtMS4zMSAxNC45MyA2LjAyIDE0LjkzIDQuNjgtLjAxIDkuNzItLjkxIDE4LjMzLTM1LjM2em0tNjEuNTMgNDIuOTVjLTIuNjItLjc5LTkuNDMtLjc5LTEyLjU3IDEwLjQ3LTEuODMgNi44MS41MiAxMy4zNSA2LjAyIDE0LjY2IDMuNjcgMS4wNSA4LjkuNTIgMTEuNzgtMTAuNzQgMi42Mi05Ljk0LTEuODMtMTMuNjEtNS4yMy0xNC4zOXpNNDkxIDMwMC42NWMxLjgzLjUyIDMuMTQgMS4wNSA1Ljc2IDEuODMgMC0xLjgzLjUyLTguMzguNzktMTIuMDUtMS4wNSAxLjMxLTUuNSA4LjEyLTYuNTUgOS45NXYuMjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdvZHUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc4LjQxNCAzMzkuNzA2SDE0MS4xTDExMi4xNjYgMjIzLjQ3NWgtLjQ3OEw4My4yMjggMzM5LjcwNkg0NS4yTDAgMTY4Ljk0NkgzNy41NDhMNjQuNTc0IDI4NS4xNzdoLjQ3OEw5NC43MDcgMTY4Ljk0NmgzNS4xNTdsMjkuMTc4IDExNy42NjdoLjQ3OUwxODcuNSAxNjguOTQ2aDM2LjgzMXpNMjcxLjQgMjEyLjcxM2MzOC45ODQgMCA2NC4xIDI1LjgyOCA2NC4xIDY1LjI5MSAwIDM5LjIyMi0yNS4xMTEgNjUuMDUtNjQuMSA2NS4wNS0zOC43NDMgMC02My44NTUtMjUuODI4LTYzLjg1NS02NS4wNUMyMDcuNTQ3IDIzOC41NDEgMjMyLjY1OSAyMTIuNzEzIDI3MS40IDIxMi43MTN6bTAgMTA0Ljc1M2MyMy4yIDAgMzAuMTMzLTE5Ljg1MiAzMC4xMzMtMzkuNDYyIDAtMTkuODUyLTYuOTM0LTM5LjctMzAuMTMzLTM5LjctMjcuNyAwLTI5Ljg5NCAxOS44NS0yOS44OTQgMzkuN0MyNDEuNTA4IDI5Ny42MTQgMjQ4LjQ0MyAzMTcuNDY2IDI3MS40IDMxNy40NjZ6TTQzNS4wODQgMzIzLjkyMmgtLjQ3OGMtNy44OTMgMTMuMzkyLTIxLjc2NSAxOS4xMzItMzcuNTQ4IDE5LjEzMi0zNy4zMSAwLTU1LjQ4NS0zMi4wNDUtNTUuNDg1LTY2LjI0NiAwLTMzLjI0MyAxOC40MTUtNjQuMDk1IDU0Ljc2Ny02NC4wOTUgMTQuNTg5IDAgMjguOTM4IDYuMjE4IDM2LjgzMSAxOC40MTZoLjI0VjE2OC45NDZoMzMuOTZ2MTcwLjc2SDQzNS4wODR6TTQwNS40MjggMjM4LjNjLTIyLjI0IDAtMjkuODk0IDE5LjEzNC0yOS44OTQgMzkuNDYzIDAgMTkuMzcxIDguODQ4IDM5LjcgMjkuODk0IDM5LjcgMjIuNDgyIDAgMjkuMTc4LTE5LjYxMyAyOS4xNzgtMzkuOTRDNDM0LjYwNiAyNTcuNDM2IDQyNy40MzIgMjM4LjMgNDA1LjQyOCAyMzguM3pNNTkyLjk2IDMzOS43MDZINTYwLjY3M1YzMjIuNDg3aC0uNzE4Yy04LjYwOSAxMy44Ny0yMy40MzYgMjAuNTY3LTM3Ljc4NiAyMC41NjctMzYuMTEzIDAtNDUuMi0yMC4zMjgtNDUuMi01MC45NDFWMjE2LjA2MWgzMy45NTlWMjg1LjljMCAyMC4zMjkgNS45NzkgMzAuMzcyIDIxLjc2NSAzMC4zNzIgMTguNDE1IDAgMjYuMzA2LTEwLjI4MyAyNi4zMDYtMzUuMzkzVjIxNi4wNjFINTkyLjk2ek02MDIuNDUzIDMwMi44NzZINjQwdjM2LjgzSDYwMi40NTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdvbGZQYWNrQmF0dGFsaW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI2Ny43MyA0NzEuNTNsMTAuNTYgMTUuODQgNS4yOC0xMi4zMiA1LjI4IDdWNTEyYzIxLjA2LTcuOTIgMjEuMTEtNjYuODYgMjUuNTEtOTcuMjEgNC42Mi0zMS44OS0uODgtOTIuODEgODEuMzctMTQ5LjExLTguODgtMjMuNjEtMTItNDkuNDMtMi42NC04MC4wNUM0MjEgMTg5IDQ0NyAxOTYuMjEgNDU2LjQzIDIzOS43M2wtMzAuMzUgOC4zNmMxMS4xNSAyMyAxNyA0Ni43NiAxMy4yIDcyLjE0TDQxMiAzMTMuMThsLTYuMTYgMzMuNDMtMTguNDctNy04LjggMzMuMzktMTkuMzUtNyAyNi4zOSAyMS4xMSA4LjgtMjguMTVMNDE5IDM2NC4ybDctMzUuNjMgMjYuMzkgMTQuNTJjLjI1LTIwIDctNTguMDYtOC44LTg0LjQ1bDI2LjM5IDUuMjhjNC0yMi4wNy0yLjM4LTM5LjIxLTcuOTItNTYuNzRsMjIuNDMgOS42OGMtLjQ0LTI1LjA3LTI5Ljk0LTU2Ljc5LTYxLjU4LTU4LjUtMjAuMjItMS4wOS01Ni43NC0yNS4xNy01NC4xLTUxLjkgMi0xOS44NyAxNy40NS00Mi42MiA0My4xMS00OS43LTQ0IDM2LjUxLTkuNjggNjcuMyA1LjI4IDczLjQ2IDQuNC0xMS40NCAxNy41NC02OS4wOCAwLTEzMC4yLTQwLjM5IDIyLjg3LTg5LjY1IDY1LjEtOTMuMiAxNDcuNzlsLTU4IDM4LjcxLTMuNTIgOTMuMjVMMzY5Ljc4IDIyMGw3IDctMTcuNTkgMy41Mi00NCAzOC43MS0xNS44NC01LjI4LTI4LjEgNDkuMjUtMy41MiAxMTkuNjQgMjEuMTEgMTUuODQtMzIuNTUgMTUuODQtMzIuNTUtMTUuODQgMjEuMTEtMTUuODQtMy41Mi0xMTkuNjQtMjguMTUtNDkuMjYtMTUuODQgNS4yOC00NC0zOC43MS0xNy41OC0zLjUxIDctNyAxMDcuMzMgNTkuODItMy41Mi05My4yNS01OC4wNi0zOC43MUMxODUgNjUuMSAxMzUuNzcgMjIuODcgOTUuMyAwYy0xNy41NCA2MS4xMi00LjQgMTE4Ljc2IDAgMTMwLjIgMTUtNi4xNiA0OS4yNi0zNi45NSA1LjI4LTczLjQ2IDI1LjY2IDcuMDggNDEuMTUgMjkuODMgNDMuMTEgNDkuNyAyLjYzIDI2Ljc0LTMzLjg4IDUwLjgxLTU0LjEgNTEuOS0zMS42NSAxLjcyLTYxLjE1IDMzLjQ0LTYxLjU5IDU4LjUxbDIyLjQzLTkuNjhjLTUuNTQgMTcuNTMtMTEuOTEgMzQuNjctNy45MiA1Ni43NGwyNi4zOS01LjI4Yy0xNS43NiAyNi4zOS05LjA1IDY0LjQzLTguOCA4NC40NWwyNi4zOS0xNC41MiA3IDM1LjYzIDI0LjYzLTUuMjggOC44IDI4LjE1TDE1My4zNSAzNjYgMTM0IDM3M2wtOC44LTMzLjQzLTE4LjQ3IDctNi4xNi0zMy40My0yNy4yNyA3Yy0zLjgyLTI1LjM4IDItNDkuMSAxMy4yLTcyLjE0bC0zMC4zNS04LjM2YzkuNC00My41MiAzNS40Ny01MC43NyA2My4zNC01NC4xIDkuMzYgMzAuNjIgNi4yNCA1Ni40NS0yLjY0IDgwLjA1IDgyLjI1IDU2LjMgNzYuNzUgMTE3LjIzIDgxLjM3IDE0OS4xMSA0LjQgMzAuMzUgNC40NSA4OS4yOSAyNS41MSA5Ny4yMXYtMjkuODNsNS4yOC03IDUuMjggMTIuMzIgMTAuNTYtMTUuODQgMTEuNDQgMjEuMTEgMTEuNDMtMjEuMXptNzkuMTctOTVMMzMxLjA2IDM2NmM3LjQ3LTQuMzYgMTMuNzYtOC40MiAxOS4zNS0xMi4zMi0uNiA3LjIyLS4yNyAxMy44NC0zLjUxIDIyLjg0em0yOC4xNS00OS4yNmMtLjQgMTAuOTQtLjkgMjEuNjYtMS43NiAzMS42Ny03Ljg1LTEuODYtMTUuNTctMy44LTIxLjExLTcgOC4yNC03Ljk0IDE1LjU1LTE2LjMyIDIyLjg3LTI0LjY4em0yNC42MyA1LjI4YzAtMTMuNDMtMi4wNS0yNC4yMS01LjI4LTMzLjQzYTIzNSAyMzUgMCAwIDEtMTguNDcgMjcuMjd6bTMuNTItODAuOTRjMTkuNDQgMTIuODEgMjcuOCAzMy42NiAyOS45MSA1Ni4zLTEyLjMyLTQuNTMtMjQuNjMtOS4zMS0zNi45NS0xMC41NiA1LjA2LTEyIDYuNjUtMjguMTQgNy00NS43NHptLTEuNzYtNDUuNzRjLjgxIDE0LjMgMS44NCAyOC44MiAxLjc2IDQyLjIzIDE5LjIyLTguMTEgMjkuNzgtOS43MiA0NC0xNC4wOC0xMC42MS0xOC45Ni0yNy4yLTI1LjUzLTQ1Ljc2LTI4LjE2ek0xNjUuNjggMzc2LjUyTDE4MS41MiAzNjZjLTcuNDctNC4zNi0xMy43Ni04LjQyLTE5LjM1LTEyLjMyLjYgNy4yNi4yNyAxMy44OCAzLjUxIDIyLjg4em0tMjguMTUtNDkuMjZjLjQgMTAuOTQuOSAyMS42NiAxLjc2IDMxLjY3IDcuODUtMS44NiAxNS41Ny0zLjggMjEuMTEtNy04LjI0LTcuOTMtMTUuNTUtMTYuMzEtMjIuODctMjQuNjd6bS0yNC42NCA1LjI4YzAtMTMuNDMgMi0yNC4yMSA1LjI4LTMzLjQzYTIzNSAyMzUgMCAwIDAgMTguNDcgMjcuMjd6bS0zLjUyLTgwLjk0Yy0xOS40NCAxMi44MS0yNy44IDMzLjY2LTI5LjkxIDU2LjMgMTIuMzItNC41MyAyNC42My05LjMxIDM3LTEwLjU2LTUtMTItNi42NS0yOC4xNC03LTQ1Ljc0em0xLjc2LTQ1Ljc0Yy0uODEgMTQuMy0xLjg0IDI4LjgyLTEuNzYgNDIuMjMtMTkuMjItOC4xMS0yOS43OC05LjcyLTQ0LTE0LjA4IDEwLjYzLTE4Ljk1IDI3LjIzLTI1LjUyIDQ1Ljc2LTI4LjE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXb3JkcHJlc3NTaW1wbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5LjMgOCA4IDExOS4yIDggMjU2YzAgMTM2LjcgMTExLjMgMjQ4IDI0OCAyNDhzMjQ4LTExMS4zIDI0OC0yNDhDNTA0IDExOS4yIDM5Mi43IDggMjU2IDh6TTMzIDI1NmMwLTMyLjMgNi45LTYzIDE5LjMtOTAuN2wxMDYuNCAyOTEuNEM4NC4zIDQyMC41IDMzIDM0NC4yIDMzIDI1NnptMjIzIDIyM2MtMjEuOSAwLTQzLTMuMi02My05LjFsNjYuOS0xOTQuNCA2OC41IDE4Ny44Yy41IDEuMSAxIDIuMSAxLjYgMy4xLTIzLjEgOC4xLTQ4IDEyLjYtNzQgMTIuNnptMzAuNy0zMjcuNWMxMy40LS43IDI1LjUtMi4xIDI1LjUtMi4xIDEyLTEuNCAxMC42LTE5LjEtMS40LTE4LjQgMCAwLTM2LjEgMi44LTU5LjQgMi44LTIxLjkgMC01OC43LTIuOC01OC43LTIuOC0xMi0uNy0xMy40IDE3LjctMS40IDE4LjQgMCAwIDExLjQgMS40IDIzLjQgMi4xbDM0LjcgOTUuMkwyMDAuNiAzOTNsLTgxLjItMjQxLjVjMTMuNC0uNyAyNS41LTIuMSAyNS41LTIuMSAxMi0xLjQgMTAuNi0xOS4xLTEuNC0xOC40IDAgMC0zNi4xIDIuOC01OS40IDIuOC00LjIgMC05LjEtLjEtMTQuNC0uM0MxMDkuNiA3MyAxNzguMSAzMyAyNTYgMzNjNTggMCAxMTAuOSAyMi4yIDE1MC42IDU4LjUtMS0uMS0xLjktLjItMi45LS4yLTIxLjkgMC0zNy40IDE5LjEtMzcuNCAzOS42IDAgMTguNCAxMC42IDMzLjkgMjEuOSA1Mi4zIDguNSAxNC44IDE4LjQgMzMuOSAxOC40IDYxLjUgMCAxOS4xLTcuMyA0MS4yLTE3IDcyLjFsLTIyLjIgNzQuMy04MC43LTIzOS42em04MS40IDI5Ny4ybDY4LjEtMTk2LjljMTIuNy0zMS44IDE3LTU3LjIgMTctNzkuOSAwLTguMi0uNS0xNS44LTEuNS0yMi45IDE3LjQgMzEuOCAyNy4zIDY4LjIgMjcuMyAxMDcgMCA4Mi4zLTQ0LjYgMTU0LjEtMTEwLjkgMTkyLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdvcmRwcmVzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MS43IDE2OS40bDEwMS41IDI3OEM5Mi4yIDQxMyA0My4zIDM0MC4yIDQzLjMgMjU2YzAtMzAuOSA2LjYtNjAuMSAxOC40LTg2LjZ6bTMzNy45IDc1LjljMC0yNi4zLTkuNC00NC41LTE3LjUtNTguNy0xMC44LTE3LjUtMjAuOS0zMi40LTIwLjktNDkuOSAwLTE5LjYgMTQuOC0zNy44IDM1LjctMzcuOC45IDAgMS44LjEgMi44LjItMzcuOS0zNC43LTg4LjMtNTUuOS0xNDMuNy01NS45LTc0LjMgMC0xMzkuNyAzOC4xLTE3Ny44IDk1LjkgNSAuMiA5LjcuMyAxMy43LjMgMjIuMiAwIDU2LjctMi43IDU2LjctMi43IDExLjUtLjcgMTIuOCAxNi4yIDEuNCAxNy41IDAgMC0xMS41IDEuMy0yNC4zIDJsNzcuNSAyMzAuNEwyNDkuOCAyNDdsLTMzLjEtOTAuOGMtMTEuNS0uNy0yMi4zLTItMjIuMy0yLTExLjUtLjctMTAuMS0xOC4yIDEuMy0xNy41IDAgMCAzNS4xIDIuNyA1NiAyLjcgMjIuMiAwIDU2LjctMi43IDU2LjctMi43IDExLjUtLjcgMTIuOCAxNi4yIDEuNCAxNy41IDAgMC0xMS41IDEuMy0yNC4zIDJsNzYuOSAyMjguNyAyMS4yLTcwLjljOS0yOS40IDE2LTUwLjUgMTYtNjguN3ptLTEzOS45IDI5LjNsLTYzLjggMTg1LjVjMTkuMSA1LjYgMzkuMiA4LjcgNjAuMSA4LjcgMjQuOCAwIDQ4LjUtNC4zIDcwLjYtMTIuMS0uNi0uOS0xLjEtMS45LTEuNS0yLjlsLTY1LjQtMTc5LjJ6bTE4My0xMjAuN2MuOSA2LjggMS40IDE0IDEuNCAyMS45IDAgMjEuNi00IDQ1LjgtMTYuMiA3Ni4ybC02NSAxODcuOUM0MjYuMiA0MDMgNDY4LjcgMzM0LjUgNDY4LjcgMjU2YzAtMzctOS40LTcxLjgtMjYtMTAyLjF6TTUwNCAyNTZjMCAxMzYuOC0xMTEuMyAyNDgtMjQ4IDI0OEMxMTkuMiA1MDQgOCAzOTIuNyA4IDI1NiA4IDExOS4yIDExOS4yIDggMjU2IDhjMTM2LjcgMCAyNDggMTExLjIgMjQ4IDI0OHptLTExLjQgMGMwLTEzMC41LTEwNi4yLTIzNi42LTIzNi42LTIzNi42QzEyNS41IDE5LjQgMTkuNCAxMjUuNSAxOS40IDI1NlMxMjUuNiA0OTIuNiAyNTYgNDkyLjZjMTMwLjUgMCAyMzYuNi0xMDYuMSAyMzYuNi0yMzYuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV3BiZWdpbm5lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjIuNzk5IDMyMi4zNzRDNTE5LjAxIDM4Ni42ODIgNDY2Ljk2MSA0ODAgMzcwLjk0NCA0ODBjLTM5LjYwMiAwLTc4LjgyNC0xNy42ODctMTAwLjE0Mi01MC4wNC02Ljg4Ny4zNTYtMjIuNzAyLjM1Ni0yOS41OSAwQzIxOS44NDggNDYyLjM4MSAxODAuNTg4IDQ4MCAxNDEuMDY5IDQ4MGMtOTUuNDkgMC0xNDguMzQ4LTkyLjk5Ni05MS44NTUtMTU3LjYyNkMtMjkuOTI1IDE5MC41MjMgODAuNDc5IDMyIDI1Ni4wMDYgMzJjMTc1LjYzMiAwIDI4NS44NyAxNTguNjI2IDIwNi43OTMgMjkwLjM3NHptLTMzOS42NDctODIuOTcyaDQxLjUyOXYtNTguMDc1aC00MS41Mjl2NTguMDc1em0yMTcuMTggODYuMDcydi0yMy44MzljLTYwLjUwNiAyMC45MTUtMTMyLjM1NSA5LjE5OC0xODcuNTg5LTMzLjk3MWwuMjQ2IDI0Ljg5N2M1MS4xMDEgNDYuMzY3IDEzMS43NDYgNTcuODc1IDE4Ny4zNDMgMzIuOTEzem0tMTUwLjc1My04Ni4wNzJoMTY2LjA1OHYtNTguMDc1SDE4OS41Nzl2NTguMDc1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXcGV4cGxvcmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiAyNTZjMCAxNDEuMi0xMTQuNyAyNTYtMjU2IDI1NkMxMTQuOCA1MTIgMCAzOTcuMyAwIDI1NlMxMTQuNyAwIDI1NiAwczI1NiAxMTQuNyAyNTYgMjU2em0tMzIgMGMwLTEyMy4yLTEwMC4zLTIyNC0yMjQtMjI0QzEzMi41IDMyIDMyIDEzMi41IDMyIDI1NnMxMDAuNSAyMjQgMjI0IDIyNCAyMjQtMTAwLjUgMjI0LTIyNHpNMTYwLjkgMTI0LjZsODYuOSAzNy4xLTM3LjEgODYuOS04Ni45LTM3LjEgMzcuMS04Ni45em0xMTAgMTY5LjFsNDYuNiA5NGgtMTQuNmwtNTAtMTAwLTQ4LjkgMTAwaC0xNGw1MS4xLTEwNi45LTIyLjMtOS40IDYtMTQgNjguNiAyOS4xLTYgMTQuMy0xNi41LTcuMXptLTExLjgtMTE2LjNsNjguNiAyOS40LTI5LjQgNjguM0wyMzAgMjQ2bDI5LjEtNjguNnptODAuMyA0Mi45bDU0LjYgMjMuMS0yMy40IDU0LjMtNTQuMy0yMy4xIDIzLjEtNTQuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV3Bmb3JtcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggNzUuMnYzNjEuN2MwIDI0LjMtMTkgNDMuMi00My4yIDQzLjJINDMuMkMxOS4zIDQ4MCAwIDQ2MS40IDAgNDM2LjhWNzUuMkMwIDUxLjEgMTguOCAzMiA0My4yIDMyaDM2MS43YzI0IDAgNDMuMSAxOC44IDQzLjEgNDMuMnptLTM3LjMgMzYxLjZWNzUuMmMwLTMtMi42LTUuOC01LjgtNS44aC05LjNMMjg1LjMgMTQ0IDIyNCA5NC4xIDE2Mi44IDE0NCA1Mi41IDY5LjNoLTkuM2MtMy4yIDAtNS44IDIuOC01LjggNS44djM2MS43YzAgMyAyLjYgNS44IDUuOCA1LjhoMzYxLjdjMy4yLjEgNS44LTIuNyA1LjgtNS44ek0xNTAuMiAxODZ2MzdINzYuN3YtMzdoNzMuNXptMCA3NC40djM3LjNINzYuN3YtMzcuM2g3My41em0xMS4xLTE0Ny4zbDU0LTQzLjdIOTYuOGw2NC41IDQzLjd6bTIxMCA3Mi45djM3aC0xOTZ2LTM3aDE5NnptMCA3NC40djM3LjNoLTE5NnYtMzcuM2gxOTZ6bS04NC42LTE0Ny4zbDY0LjUtNDMuN0gyMzIuOGw1My45IDQzLjd6TTM3MS4zIDMzNXYzNy4zaC05OS40VjMzNWg5OS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXcHJlc3NyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMS4wMyA4IDAgMTE5LjAzIDAgMjU2czExMS4wMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzIDI0OC0yNDhTMzg0Ljk3IDggMjQ4IDh6bTE3MS4zMyAxNTguNmMtMTUuMTggMzQuNTEtMzAuMzcgNjkuMDItNDUuNjMgMTAzLjUtMi40NCA1LjUxLTYuODkgOC4yNC0xMi45NyA4LjI0LTIzLjAyLS4wMS00Ni4wMy4wNi02OS4wNS0uMDUtNS4xMi0uMDMtOC4yNSAxLjg5LTEwLjM0IDYuNzItMTAuMTkgMjMuNTYtMjAuNjMgNDctMzAuOTUgNzAuNS0xLjU0IDMuNTEtNC4wNiA1LjI5LTcuOTIgNS4yOS00NS45NC0uMDEtOTEuODctLjAyLTEzNy44MSAwLTMuMTMgMC01LjYzLTEuMTUtNy43Mi0zLjQ1LTExLjIxLTEyLjMzLTIyLjQ2LTI0LjYzLTMzLjY4LTM2Ljk0LTIuNjktMi45NS0yLjc5LTYuMTgtMS4yMS05LjczIDguNjYtMTkuNTQgMTcuMjctMzkuMSAyNS44OS01OC42NiAxMi45My0yOS4zNSAyNS44OS01OC42OSAzOC43NS04OC4wOCAxLjctMy44OCA0LjI4LTUuNjggOC41NC01LjY1IDE0LjI0LjEgMjguNDguMDIgNDIuNzIuMDUgNi4yNC4wMSA5LjIgNC44NCA2LjY2IDEwLjU5LTEzLjYgMzAuNzctMjcuMTcgNjEuNTUtNDAuNzQgOTIuMzMtNS43MiAxMi45OS0xMS40MiAyNS45OS0xNy4wOSAzOS0zLjkxIDguOTUgNy4wOCAxMS45NyAxMC45NSA1LjYuMjMtLjM3LTEuNDIgNC4xOCAzMC4wMS02Ny42OSAxLjM2LTMuMSAzLjQxLTQuNCA2Ljc3LTQuMzkgMTUuMjEuMDggMzAuNDMuMDIgNDUuNjQuMDQgNS41Ni4wMSA3LjkxIDMuNjQgNS42NiA4Ljc1LTguMzMgMTguOTYtMTYuNzEgMzcuOS0yNC45OCA1Ni44OS00Ljk4IDExLjQzIDguMDggMTIuNDkgMTEuMjggNS4zMy4wNC0uMDggMjcuODktNjMuMzMgMzIuMTktNzMuMTYgMi4wMi00LjYxIDUuNDQtNi41MSAxMC4zNS02LjUgMjYuNDMuMDUgNTIuODYgMCA3OS4yOS4wNSAxMi40NC4wMiAxMy45My0xMy42NSAzLjktMTMuNjQtMjUuMjYuMDMtNTAuNTIuMDItNzUuNzguMDItNi4yNyAwLTcuODQtMi40Ny01LjI3LTguMjcgNS43OC0xMy4wNiAxMS41OS0yNi4xMSAxNy4zLTM5LjIxIDEuNzMtMy45NiA0LjUyLTUuNzkgOC44NC01Ljc4IDIzLjA5LjA2IDI1Ljk4LjAyIDEzMC43OC4wMyA2LjA4LS4wMSA4LjAzIDIuNzkgNS42MiA4LjI3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFYYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OS45IDMxOC4yYzQ0LjMgNTQuMyA2NC43IDk4LjggNTQuNCAxMTguNy03LjkgMTUuMS01Ni43IDQ0LjYtOTIuNiA1NS45LTI5LjYgOS4zLTY4LjQgMTMuMy0xMDAuNCAxMC4yLTM4LjItMy43LTc2LjktMTcuNC0xMTAuMS0zOUM5My4zIDQ0NS44IDg3IDQzOC4zIDg3IDQyMy40YzAtMjkuOSAzMi45LTgyLjMgODkuMi0xNDIuMSAzMi0zMy45IDc2LjUtNzMuNyA4MS40LTcyLjYgOS40IDIuMSA4NC4zIDc1LjEgMTEyLjMgMTA5LjV6TTE4OC42IDE0My44Yy0yOS43LTI2LjktNTguMS01My45LTg2LjQtNjMuNC0xNS4yLTUuMS0xNi4zLTQuOC0yOC43IDguMS0yOS4yIDMwLjQtNTMuNSA3OS43LTYwLjMgMTIyLjQtNS40IDM0LjItNi4xIDQzLjgtNC4yIDYwLjUgNS42IDUwLjUgMTcuMyA4NS40IDQwLjUgMTIwLjkgOS41IDE0LjYgMTIuMSAxNy4zIDkuMyA5LjktNC4yLTExLS4zLTM3LjUgOS41LTY0IDE0LjMtMzkgNTMuOS0xMTIuOSAxMjAuMy0xOTQuNHptMzExLjYgNjMuNUM0ODMuMyAxMjcuMyA0MzIuNyA3NyA0MjUuNiA3N2MtNy4zIDAtMjQuMiA2LjUtMzYgMTMuOS0yMy4zIDE0LjUtNDEgMzEuNC02NC4zIDUyLjhDMzY3LjcgMTk3IDQyNy41IDI4My4xIDQ0OC4yIDM0NmM2LjggMjAuNyA5LjcgNDEuMSA3LjQgNTIuMy0xLjcgOC41LTEuNyA4LjUgMS40IDQuNiA2LjEtNy43IDE5LjktMzEuMyAyNS40LTQzLjUgNy40LTE2LjIgMTUtNDAuMiAxOC42LTU4LjcgNC4zLTIyLjUgMy45LTcwLjgtLjgtOTMuNHpNMTQxLjMgNDNDMTg5IDQwLjUgMjUxIDc3LjUgMjU1LjYgNzguNGMuNy4xIDEwLjQtNC4yIDIxLjYtOS43IDYzLjktMzEuMSA5NC0yNS44IDEwNy40LTI1LjItNjMuOS0zOS4zLTE1Mi43LTUwLTIzMy45LTExLjctMjMuNCAxMS4xLTI0IDExLjktOS40IDExLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVhpbmdTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNMTQwLjQgMzIwLjJIOTMuOGMtNS41IDAtOC43LTUuMy02LTEwLjNsNDkuMy04Ni43Yy4xIDAgLjEtLjEgMC0uMmwtMzEuNC01NGMtMy01LjYuMi0xMC4xIDYtMTAuMWg0Ni42YzUuMiAwIDkuNSAyLjkgMTIuOSA4LjdsMzEuOSA1NS4zYy0xLjMgMi4zLTE4IDMxLjctNTAuMSA4OC4yLTMuNSA2LjItNy43IDkuMS0xMi42IDkuMXptMjE5LjctMjE0LjFMMjU3LjMgMjg2Ljh2LjJsNjUuNSAxMTljMi44IDUuMS4xIDEwLjEtNiAxMC4xaC00Ni42Yy01LjUgMC05LjctMi45LTEyLjktOC43bC02Ni0xMjAuM2MyLjMtNC4xIDM2LjgtNjQuOSAxMDMuNC0xODIuMyAzLjMtNS44IDcuNC04LjcgMTIuNS04LjdoNDYuOWM1LjctLjEgOC44IDQuNyA2IDEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFYaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2Mi43IDIxMGMtMS44IDMuMy0yNS4yIDQ0LjQtNzAuMSAxMjMuNS00LjkgOC4zLTEwLjggMTIuNS0xNy43IDEyLjVIOS44Yy03LjcgMC0xMi4xLTcuNS04LjUtMTQuNGw2OS0xMjEuM2MuMiAwIC4yLS4xIDAtLjNsLTQzLjktNzUuNmMtNC4zLTcuOC4zLTE0LjEgOC41LTE0LjFIMTAwYzcuMyAwIDEzLjMgNC4xIDE4IDEyLjJsNDQuNyA3Ny41ek0zODIuNiA0Ni4xbC0xNDQgMjUzdi4zTDMzMC4yIDQ2NmMzLjkgNy4xLjIgMTQuMS04LjUgMTQuMWgtNjUuMmMtNy42IDAtMTMuNi00LTE4LTEyLjJsLTkyLjQtMTY4LjVjMy4zLTUuOCA1MS41LTkwLjggMTQ0LjgtMjU1LjIgNC42LTguMSAxMC40LTEyLjIgMTcuNS0xMi4yaDY1LjdjOCAwIDEyLjMgNi43IDguNSAxNC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFZQ29tYmluYXRvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMzJ2NDQ4SDBWMzJoNDQ4ek0yMzYgMjg3LjVMMzEzLjUgMTQyaC0zMi43TDIzNSAyMzNjLTQuNyA5LjMtOSAxOC4zLTEyLjggMjYuOEwyMTAgMjMzbC00NS4yLTkxaC0zNWw3Ni43IDE0My44djk0LjVIMjM2di05Mi44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFZYWhvbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjMuNjksMTQxLjA2LDE2NywyODQuMjMsMTExLDE0MS4wNkgxNC45M0wxMjAuNzYsMzkwLjE5LDgyLjE5LDQ4MGg5NC4xN0wzMTcuMjcsMTQxLjA2Wm0xMDUuNCwxMzUuNzlhNTguMjIsNTguMjIsMCwxLDAsNTguMjIsNTguMjJBNTguMjIsNTguMjIsMCwwLDAsMzI5LjA5LDI3Ni44NVpNMzk0LjY1LDMybC05MywyMjMuNDdINDA2LjQ0TDQ5OS4wNywzMlpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWWFtbWVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyMS43OCAxNTIuMTdBMjMuMDYgMjMuMDYgMCAwIDAgNDAwLjkgMTEyYy0uODMuNDMtMS43MS45LTIuNjMgMS40LTE1LjI1IDguNC0xMTguMzMgODAuNjItMTA2LjY5IDg4Ljc3czgyLjA0LTIzLjYxIDEzMC4yLTUwem0wIDIxNy4xN2MtNDguMTYtMjYuMzgtMTE4LjY0LTU4LjEtMTMwLjItNTBzOTEuNDIgODAuMzUgMTA2LjY5IDg4Ljc0Yy45Mi41MSAxLjggMSAyLjYzIDEuNDFhMjMuMDcgMjMuMDcgMCAwIDAgMjAuODgtNDAuMTV6TTQ2NC4yMSAyMzdjLS45NSAwLTEuOTUtLjA2LTMtLjA2LTE3LjQgMC0xNDIuNTIgMTMuNzYtMTM2LjI0IDI2LjUxczgzLjMgMTguNzQgMTM4LjIxIDE4Ljc2YTIzIDIzIDAgMCAwIDEtNDUuMjF6TTMxIDk2LjY1YTI0Ljg4IDI0Ljg4IDAgMCAxIDQ2LjE0LTE4LjRsODEgMjA1LjA2aDEuMjFsNzctMjAzLjUzYTIzLjUyIDIzLjUyIDAgMCAxIDQ0LjQ1IDE1LjI3TDE3MS4yIDM2OC40NEMxNTIuNjUgNDE1LjY2IDEzNC4wOCA0NDggNzcuOTEgNDQ4YTEzOS42NyAxMzkuNjcgMCAwIDEtMjMuODEtMS45NSAyMS4zMSAyMS4zMSAwIDAgMSA2LjktNDEuNzdjLjY2LjA2IDEwLjkxLjY2IDEzLjg2LjY2IDMwLjQ3IDAgNDMuNzQtMTguOTQgNTguMDctNTkuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVlhbmRleEludGVybmF0aW9uYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI5LjUgNTEyVjM0NS45TDE4LjUgNDhoNTUuOGw4MS44IDIyOS43TDI1MC4yIDBoNTEuM0wxODAuOCAzNDcuOFY1MTJoLTUxLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVlhbmRleCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTMuMSAzMTUuOEw2NS43IDUxMkgybDk2LTIwOS44Yy00NS4xLTIyLjktNzUuMi02NC40LTc1LjItMTQxLjFDMjIuNyA1My43IDkwLjggMCAxNzEuNyAwSDI1NHY1MTJoLTU1LjFWMzE1LjhoLTQ1Ljh6bTQ1LjgtMjY5LjNoLTI5LjRjLTQ0LjQgMC04Ny40IDI5LjQtODcuNCAxMTQuNiAwIDgyLjMgMzkuNCAxMDguOCA4Ny40IDEwOC44aDI5LjRWNDYuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWWFybiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTMuOSAzNDUuMmMtMzkgOS4zLTQ4LjQgMzIuMS0xMDQgNDcuNCAwIDAtMi43IDQtMTAuNCA1LjgtMTMuNCAzLjMtNjMuOSA2LTY4LjUgNi4xLTEyLjQuMS0xOS45LTMuMi0yMi04LjItNi40LTE1LjMgOS4yLTIyIDkuMi0yMi04LjEtNS05LTkuOS05LjgtOC4xLTIuNCA1LjgtMy42IDIwLjEtMTAuMSAyNi41LTguOCA4LjktMjUuNSA1LjktMzUuMy44LTEwLjgtNS43LjgtMTkuMi44LTE5LjJzLTUuOCAzLjQtMTAuNS0zLjZjLTYtOS4zLTE3LjEtMzcuMyAxMS41LTYyLTEuMy0xMC4xLTQuNi01My43IDQwLjYtODUuNiAwIDAtMjAuNi0yMi44LTEyLjktNDMuMyA1LTEzLjQgNy0xMy4zIDguNi0xMy45IDUuNy0yLjIgMTEuMy00LjYgMTUuNC05LjEgMjAuNi0yMi4yIDQ2LjgtMTggNDYuOC0xOHMxMi40LTM3LjggMjMuOS0zMC40YzMuNSAyLjMgMTYuMyAzMC42IDE2LjMgMzAuNnMxMy42LTcuOSAxNS4xLTVjOC4yIDE2IDkuMiA0Ni41IDUuNiA2NS4xLTYuMSAzMC42LTIxLjQgNDcuMS0yNy42IDU3LjUtMS40IDIuNCAxNi41IDEwIDI3LjggNDEuMyAxMC40IDI4LjYgMS4xIDUyLjcgMi44IDU1LjMuOCAxLjQgMTMuNy44IDM2LjQtMTMuMiAxMi44LTcuOSAyOC4xLTE2LjkgNDUuNC0xNyAxNi43LS41IDE3LjYgMTkuMiA0LjkgMjIuMnpNNDk2IDI1NmMwIDEzNi45LTExMS4xIDI0OC0yNDggMjQ4UzAgMzkyLjkgMCAyNTYgMTExLjEgOCAyNDggOHMyNDggMTExLjEgMjQ4IDI0OHptLTc5LjMgNzUuMmMtMS43LTEzLjYtMTMuMi0yMy0yOC0yMi44LTIyIC4zLTQwLjUgMTEuNy01Mi44IDE5LjItNC44IDMtOC45IDUuMi0xMi40IDYuOCAzLjEtNDQuNS0yMi41LTczLjEtMjguNy03OS40IDcuOC0xMS4zIDE4LjQtMjcuOCAyMy40LTUzLjIgNC4zLTIxLjcgMy01NS41LTYuOS03NC41LTEuNi0zLjEtNy40LTExLjItMjEtNy40LTkuNy0yMC0xMy0yMi4xLTE1LjYtMjMuOC0xLjEtLjctMjMuNi0xNi40LTQxLjQgMjgtMTIuMi45LTMxLjMgNS4zLTQ3LjUgMjIuOC0yIDIuMi01LjkgMy44LTEwLjEgNS40aC4xYy04LjQgMy0xMi4zIDkuOS0xNi45IDIyLjMtNi41IDE3LjQuMiAzNC42IDYuOCA0NS43LTE3LjggMTUuOS0zNyAzOS44LTM1LjcgODIuNS0zNCAzNi0xMS44IDczLTUuNiA3OS42LTEuNiAxMS4xIDMuNyAxOS40IDEyIDIzLjggMTIuNiA2LjcgMzAuMyA5LjYgNDMuOSAyLjggNC45IDUuMiAxMy44IDEwLjEgMzAgMTAuMSA2LjggMCA1OC0yLjkgNzIuNi02LjUgNi44LTEuNiAxMS41LTQuNSAxNC42LTcuMSA5LjgtMy4xIDM2LjgtMTIuMyA2Mi4yLTI4LjcgMTgtMTEuNyAyNC4yLTE0LjIgMzcuNi0xNy40IDEyLjktMy4yIDIxLTE1LjEgMTkuNC0yOC4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFZZWxwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyLjkgMjQwLjMybDk5LjYyIDQ4LjYxYzE5LjIgOS40IDE2LjIgMzcuNTEtNC41IDQyLjcxTDMwLjUgMzU4LjQ1YTIyLjc5IDIyLjc5IDAgMCAxLTI4LjIxLTE5LjYgMTk3LjE2IDE5Ny4xNiAwIDAgMSA5LTg1LjMyIDIyLjggMjIuOCAwIDAgMSAzMS42MS0xMy4yMXptNDQgMjM5LjI1YTE5OS40NSAxOTkuNDUgMCAwIDAgNzkuNDIgMzIuMTFBMjIuNzggMjIuNzggMCAwIDAgMTkyLjk0IDQ5MGwzLjktMTEwLjgyYy43LTIxLjMtMjUuNS0zMS45MS0zOS44MS0xNi4xbC03NC4yMSA4Mi40YTIyLjgyIDIyLjgyIDAgMCAwIDQuMDkgMzQuMDl6bTE0NS4zNC0xMDkuOTJsNTguODEgOTRhMjIuOTMgMjIuOTMgMCAwIDAgMzQgNS41IDE5OC4zNiAxOTguMzYgMCAwIDAgNTIuNzEtNjcuNjFBMjMgMjMgMCAwIDAgMzY0LjE3IDM3MGwtMTA1LjQyLTM0LjI2Yy0yMC4zMS02LjUtMzcuODEgMTUuOC0yNi41MSAzMy45MXptMTQ4LjMzLTEzMi4yM2ExOTcuNDQgMTk3LjQ0IDAgMCAwLTUwLjQxLTY5LjMxIDIyLjg1IDIyLjg1IDAgMCAwLTM0IDQuNGwtNjIgOTEuOTJjLTExLjkgMTcuNyA0LjcgNDAuNjEgMjUuMiAzNC43MUwzNjYgMjY4LjYzYTIzIDIzIDAgMCAwIDE0LjYxLTMxLjIxek02Mi4xMSAzMC4xOGEyMi44NiAyMi44NiAwIDAgMC05LjkgMzJsMTA0LjEyIDE4MC40NGMxMS43IDIwLjIgNDIuNjEgMTEuOSA0Mi42MS0xMS40VjIyLjg4YTIyLjY3IDIyLjY3IDAgMCAwLTI0LjUtMjIuOCAzMjAuMzcgMzIwLjM3IDAgMCAwLTExMi4zMyAzMC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFZb2FzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05MS4zIDc2aDE4NmwtNyAxOC45aC0xNzljLTM5LjcgMC03MS45IDMxLjYtNzEuOSA3MC4zdjIwNS40YzAgMzUuNCAyNC45IDcwLjMgODQgNzAuM1Y0NjBIOTEuM0M0MS4yIDQ2MCAwIDQxOS44IDAgMzcwLjVWMTY1LjJDMCAxMTUuOSA0MC43IDc2IDkxLjMgNzZ6bTIyOS4xLTU2aDY2LjVDMjQzLjEgMzk4LjEgMjQxLjIgNDE4LjkgMjAyLjIgNDU5LjNjLTIwLjggMjEuNi00OS4zIDMxLjctNzguMyAzMi43di01MS4xYzQ5LjItNy43IDY0LjYtNDkuOSA2NC42LTc1LjMgMC0yMC4xLjYtMTIuNi04Mi4xLTIyMy4yaDYxLjRMMjE4LjIgMjk5IDMyMC40IDIwek00NDggMTYxLjVWNDYwSDIzNGM2LjYtOS42IDEwLjctMTYuMyAxMi4xLTE5LjRoMTgyLjVWMTYxLjVjMC0zMi41LTE3LjEtNTEuOS00OC4yLTYyLjlsNi43LTE3LjZjNDEuNyAxMy42IDYwLjkgNDMuMSA2MC45IDgwLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVlvdXR1YmVTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg2LjggMjAyLjFsOTUuMiA1NC4xLTk1LjIgNTQuMVYyMDIuMXpNNDQ4IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4em0tNDIgMTc2LjNzMC01OS42LTcuNi04OC4yYy00LjItMTUuOC0xNi41LTI4LjItMzIuMi0zMi40QzMzNy45IDEyOCAyMjQgMTI4IDIyNCAxMjhzLTExMy45IDAtMTQyLjIgNy43Yy0xNS43IDQuMi0yOCAxNi42LTMyLjIgMzIuNC03LjYgMjguNS03LjYgODguMi03LjYgODguMnMwIDU5LjYgNy42IDg4LjJjNC4yIDE1LjggMTYuNSAyNy43IDMyLjIgMzEuOUMxMTAuMSAzODQgMjI0IDM4NCAyMjQgMzg0czExMy45IDAgMTQyLjItNy43YzE1LjctNC4yIDI4LTE2LjEgMzIuMi0zMS45IDcuNi0yOC41IDcuNi04OC4xIDcuNi04OC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFZb3V0dWJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0OS42NTUgMTI0LjA4M2MtNi4yODEtMjMuNjUtMjQuNzg3LTQyLjI3Ni00OC4yODQtNDguNTk3QzQ1OC43ODEgNjQgMjg4IDY0IDI4OCA2NFMxMTcuMjIgNjQgNzQuNjI5IDc1LjQ4NmMtMjMuNDk3IDYuMzIyLTQyLjAwMyAyNC45NDctNDguMjg0IDQ4LjU5Ny0xMS40MTIgNDIuODY3LTExLjQxMiAxMzIuMzA1LTExLjQxMiAxMzIuMzA1czAgODkuNDM4IDExLjQxMiAxMzIuMzA1YzYuMjgxIDIzLjY1IDI0Ljc4NyA0MS41IDQ4LjI4NCA0Ny44MjFDMTE3LjIyIDQ0OCAyODggNDQ4IDI4OCA0NDhzMTcwLjc4IDAgMjEzLjM3MS0xMS40ODZjMjMuNDk3LTYuMzIxIDQyLjAwMy0yNC4xNzEgNDguMjg0LTQ3LjgyMSAxMS40MTItNDIuODY3IDExLjQxMi0xMzIuMzA1IDExLjQxMi0xMzIuMzA1czAtODkuNDM4LTExLjQxMi0xMzIuMzA1em0tMzE3LjUxIDIxMy41MDhWMTc1LjE4NWwxNDIuNzM5IDgxLjIwNS0xNDIuNzM5IDgxLjIwMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWmhpaHUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcwLjU0IDE0OC4xM3YyMTcuNTRsMjMuNDMuMDEgNy43MSAyNi4zNyA0Mi4wMS0yNi4zN2g0OS41M1YxNDguMTNIMTcwLjU0em05Ny43NSAxOTMuOTNoLTI3Ljk0bC0yNy45IDE3LjUxLTUuMDgtMTcuNDctMTEuOS0uMDRWMTcxLjc1aDcyLjgydjE3MC4zMXptLTExOC40Ni05NC4zOUg5Ny41YzEuNzQtMjcuMSAyLjItNTEuNTkgMi4yLTczLjQ2aDUxLjE2czEuOTctMjIuNTYtOC41OC0yMi4zMWgtODguNWMzLjQ5LTEzLjEyIDcuODctMjYuNjYgMTMuMTItNDAuNjcgMCAwLTI0LjA3IDAtMzIuMjcgMjEuNTctMy4zOSA4LjktMTMuMjEgNDMuMTQtMzAuNyA3OC4xMiA1Ljg5LS42NCAyNS4zNy0xLjE4IDM2Ljg0LTIyLjIxIDIuMTEtNS44OSAyLjUxLTYuNjYgNS4xNC0xNC41M2gyOC44N2MwIDEwLjUtMS4yIDY2Ljg4LTEuNjggNzMuNDRIMjAuODNjLTExLjc0IDAtMTUuNTYgMjMuNjItMTUuNTYgMjMuNjJoNjUuNThDNjYuNDUgMzIxLjEgNDIuODMgMzYzLjEyIDAgMzk2LjM0YzIwLjQ5IDUuODUgNDAuOTEtLjkzIDUxLTkuOSAwIDAgMjIuOTgtMjAuOSAzNS41OS02OS4yNWw1My45NiA2NC45NHM3LjkxLTI2Ljg5LTEuMjQtMzkuOTljLTcuNTgtOC45Mi0yOC4wNi0zMy4wNi0zNi43OS00MS44MUw4Ny45IDMxMS45NWM0LjM2LTEzLjk4IDYuOTktMjcuNTUgNy44Ny00MC42N2g2MS42NXMtLjA5LTIzLjYyLTcuNTktMjMuNjJ2LjAxem00MTIuMDItMS42YzIwLjgzLTI1LjY0IDQ0Ljk4LTU4LjU3IDQ0Ljk4LTU4LjU3cy0xOC42NS0xNC44LTI3LjM4LTQuMDZjLTYgOC4xNS0zNi44MyA0OC4yLTM2LjgzIDQ4LjJsMTkuMjMgMTQuNDN6bS0xNTAuMDktNTkuMDljLTkuMDEtOC4yNS0yNS45MSAyLjEzLTI1LjkxIDIuMTNzMzkuNTIgNTUuMDQgNDEuMTIgNTcuNDVsMTkuNDYtMTMuNzNzLTI1LjY3LTM3LjYxLTM0LjY2LTQ1Ljg2aC0uMDF6TTY0MCAyNTguMzVjLTE5Ljc4IDAtMTMwLjkxLjkzLTEzMS4wNi45M3YtMTAxYzQuODEgMCAxMi40Mi0uNCAyMi44NS0xLjIgNDAuODgtMi40MSA3MC4xMy00IDg3Ljc3LTQuODEgMCAwIDEyLjIyLTI3LjE5LS41OS0zMy40NC0zLjA3LTEuMTgtMjMuMTcgNC41OC0yMy4xNyA0LjU4cy0xNjUuMjIgMTYuNDktMjMyLjM2IDE4LjA1YzEuNiA4LjgyIDcuNjIgMTcuMDggMTUuNzggMTkuNTUgMTMuMzEgMy40OCAyMi42OSAxLjcgNDkuMTUuODkgMjQuODMtMS42IDQzLjY4LTIuNDMgNTYuNTEtMi40M3Y5OS44MUgzNTEuNDFzMi44MiAyMi4zMSAyNS41MSAyMi44NWgxMDcuOTR2NzAuOTJjMCAxMy45Ny0xMS4xOSAyMS45OS0yNC40OCAyMS4xMi0xNC4wOC4xMS0yNi4wOC0xLjE1LTQxLjY5LTEuODEgMS45OSAzLjk3IDYuMzMgMTQuMzkgMTkuMzEgMjEuODQgOS44OCA0LjgxIDE2LjE3IDYuNTcgMjYuMDIgNi41NyAyOS41NiAwIDQ1LjY3LTE3LjI4IDQ0Ljg5LTQ1LjMxdi03My4zMmgxMjIuMzZjOS42OCAwIDguNy0yMy43OCA4LjctMjMuNzhsLjAzLS4wMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTU3LjUyIDI3MmgzNi45NkwxNzYgMjE4Ljc4IDE1Ny41MiAyNzJ6TTM1MiAyNTZjLTEzLjIzIDAtMjQgMTAuNzctMjQgMjRzMTAuNzcgMjQgMjQgMjQgMjQtMTAuNzcgMjQtMjQtMTAuNzctMjQtMjQtMjR6TTQ2NCA2NEg0OEMyMS41IDY0IDAgODUuNSAwIDExMnYyODhjMCAyNi41IDIxLjUgNDggNDggNDhoNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjExMmMwLTI2LjUtMjEuNS00OC00OC00OHpNMjUwLjU4IDM1MmgtMTYuOTRjLTYuODEgMC0xMi44OC00LjMyLTE1LjEyLTEwLjc1TDIxMS4xNSAzMjBoLTcwLjI5bC03LjM4IDIxLjI1QTE2IDE2IDAgMCAxIDExOC4zNiAzNTJoLTE2Ljk0Yy0xMS4wMSAwLTE4LjczLTEwLjg1LTE1LjEyLTIxLjI1TDE0MCAxNzYuMTJBMjMuOTk1IDIzLjk5NSAwIDAgMSAxNjIuNjcgMTYwaDI2LjY2QTIzLjk5IDIzLjk5IDAgMCAxIDIxMiAxNzYuMTNsNTMuNjkgMTU0LjYyYzMuNjEgMTAuNC00LjExIDIxLjI1LTE1LjExIDIxLjI1ek00MjQgMzM2YzAgOC44NC03LjE2IDE2LTE2IDE2aC0xNmMtNC44NSAwLTkuMDQtMi4yNy0xMS45OC01LjY4LTguNjIgMy42Ni0xOC4wOSA1LjY4LTI4LjAyIDUuNjgtMzkuNyAwLTcyLTMyLjMtNzItNzJzMzIuMy03MiA3Mi03MmM4LjQ2IDAgMTYuNDYgMS43MyAyNCA0LjQyVjE3NmMwLTguODQgNy4xNi0xNiAxNi0xNmgxNmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFkZHJlc3NCb29rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzNiAxNjBjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTIwVjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHY0MTZjMCAyNi41IDIxLjUgNDggNDggNDhoMzIwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4di00OGgyMGM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtMjB2LTY0aDIwYzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC0yMHYtNjRoMjB6bS0yMjgtMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjQtNjQtMjguNy02NC02NCAyOC43LTY0IDY0LTY0em0xMTIgMjM2LjhjMCAxMC42LTEwIDE5LjItMjIuNCAxOS4ySDExOC40QzEwNiAzODQgOTYgMzc1LjQgOTYgMzY0Ljh2LTE5LjJjMC0zMS44IDMwLjEtNTcuNiA2Ny4yLTU3LjZoNWMxMi4zIDUuMSAyNS43IDggMzkuOCA4czI3LjYtMi45IDM5LjgtOGg1YzM3LjEgMCA2Ny4yIDI1LjggNjcuMiA1Ny42djE5LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFkZHJlc3NDYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyOCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0ODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS0zNTIgOTZjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjQtNjQtMjguNy02NC02NCAyOC43LTY0IDY0LTY0em0xMTIgMjM2LjhjMCAxMC42LTEwIDE5LjItMjIuNCAxOS4ySDg2LjRDNzQgMzg0IDY0IDM3NS40IDY0IDM2NC44di0xOS4yYzAtMzEuOCAzMC4xLTU3LjYgNjcuMi01Ny42aDVjMTIuMyA1LjEgMjUuNyA4IDM5LjggOHMyNy42LTIuOSAzOS44LThoNWMzNy4xIDAgNjcuMiAyNS44IDY3LjIgNTcuNnYxOS4yek01MTIgMzEyYzAgNC40LTMuNiA4LTggOEgzNjBjLTQuNCAwLTgtMy42LTgtOHYtMTZjMC00LjQgMy42LTggOC04aDE0NGM0LjQgMCA4IDMuNiA4IDh2MTZ6bTAtNjRjMCA0LjQtMy42IDgtOCA4SDM2MGMtNC40IDAtOC0zLjYtOC04di0xNmMwLTQuNCAzLjYtOCA4LThoMTQ0YzQuNCAwIDggMy42IDggOHYxNnptMC02NGMwIDQuNC0zLjYgOC04IDhIMzYwYy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxNDRjNC40IDAgOCAzLjYgOCA4djE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBZGp1c3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAyNTZjMCAxMzYuOTY2IDExMS4wMzMgMjQ4IDI0OCAyNDhzMjQ4LTExMS4wMzQgMjQ4LTI0OFMzOTIuOTY2IDggMjU2IDggOCAxMTkuMDMzIDggMjU2em0yNDggMTg0VjcyYzEwMS43MDUgMCAxODQgODIuMzExIDE4NCAxODQgMCAxMDEuNzA1LTgyLjMxMSAxODQtMTg0IDE4NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWlyRnJlc2hlbmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxNjBIOTZDNDMgMTYwIDAgMjAzIDAgMjU2VjQ4MEMwIDQ5Ny42MjUgMTQuMzc1IDUxMiAzMiA1MTJIMjg4QzMwNS42MjUgNTEyIDMyMCA0OTcuNjI1IDMyMCA0ODBWMjU2QzMyMCAyMDMgMjc3IDE2MCAyMjQgMTYwWk0xNjAgNDE2QzExNS44NzUgNDE2IDgwIDM4MC4xMjUgODAgMzM2UzExNS44NzUgMjU2IDE2MCAyNTZTMjQwIDI5MS44NzUgMjQwIDMzNlMyMDQuMTI1IDQxNiAxNjAgNDE2Wk0yMjQgMzJDMjI0IDE0LjM3NSAyMDkuNjI1IDAgMTkyIDBIMTI4QzExMC4zNzUgMCA5NiAxNC4zNzUgOTYgMzJWMTI4SDIyNFYzMlpNMzgxLjc4MSA1MS41NzhDMzgzIDUwLjk2OSAzODQgNDkuMzU5IDM4NCA0OEMzODQgNDYuNjI1IDM4MyA0NS4wMzEgMzgxLjc4MSA0NC40MjJMMzUyIDMyTDMzOS41NjIgMi4yMTlDMzM4Ljk2OSAxIDMzNy4zNzUgMCAzMzYgMFMzMzMuMDMxIDEgMzMyLjQwNiAyLjIxOUwzMjAgMzJMMjkwLjIxOSA0NC40MjJDMjg5IDQ1LjAzMSAyODggNDYuNjI1IDI4OCA0OEMyODggNDkuMzU5IDI4OSA1MC45NjkgMjkwLjIxOSA1MS41NzhMMzIwIDY0TDMzMi40MDYgOTMuNzgxQzMzMy4wMzEgOTUgMzM0LjYyNSA5NiAzMzYgOTZTMzM4Ljk2OSA5NSAzMzkuNTYyIDkzLjc4MUwzNTIgNjRMMzgxLjc4MSA1MS41NzhaTTQ0OCA2NEw0NjAuNDA2IDkzLjc4MUM0NjEuMDMxIDk1IDQ2Mi42MjUgOTYgNDY0IDk2UzQ2Ni45NjkgOTUgNDY3LjU2MiA5My43ODFMNDgwIDY0TDUwOS43ODEgNTEuNTc4QzUxMSA1MC45NjkgNTEyIDQ5LjM1OSA1MTIgNDhDNTEyIDQ2LjYyNSA1MTEgNDUuMDMxIDUwOS43ODEgNDQuNDIyTDQ4MCAzMkw0NjcuNTYyIDIuMjE5QzQ2Ni45NjkgMSA0NjUuMzc1IDAgNDY0IDBTNDYxLjAzMSAxIDQ2MC40MDYgMi4yMTlMNDQ4IDMyTDQxOC4yMTkgNDQuNDIyQzQxNyA0NS4wMzEgNDE2IDQ2LjYyNSA0MTYgNDhDNDE2IDQ5LjM1OSA0MTcgNTAuOTY5IDQxOC4yMTkgNTEuNTc4TDQ0OCA2NFpNNDgwIDIyNEw0NjcuNTYyIDE5NC4yMTlDNDY2Ljk2OSAxOTMgNDY1LjM3NSAxOTIgNDY0IDE5MlM0NjEuMDMxIDE5MyA0NjAuNDA2IDE5NC4yMTlMNDQ4IDIyNEw0MTguMjE5IDIzNi40MjJDNDE3IDIzNy4wMzEgNDE2IDIzOC42MjUgNDE2IDI0MEM0MTYgMjQxLjM1OSA0MTcgMjQyLjk2OSA0MTguMjE5IDI0My41NzhMNDQ4IDI1Nkw0NjAuNDA2IDI4NS43ODFDNDYxLjAzMSAyODcgNDYyLjYyNSAyODggNDY0IDI4OFM0NjYuOTY5IDI4NyA0NjcuNTYyIDI4NS43ODFMNDgwIDI1Nkw1MDkuNzgxIDI0My41NzhDNTExIDI0Mi45NjkgNTEyIDI0MS4zNTkgNTEyIDI0MEM1MTIgMjM4LjYyNSA1MTEgMjM3LjAzMSA1MDkuNzgxIDIzNi40MjJMNDgwIDIyNFpNNDQ1Ljc4MSAxNDcuNTc4QzQ0NyAxNDYuOTY5IDQ0OCAxNDUuMzU5IDQ0OCAxNDRDNDQ4IDE0Mi42MjUgNDQ3IDE0MS4wMzEgNDQ1Ljc4MSAxNDAuNDIyTDQxNiAxMjhMNDAzLjU2MiA5OC4yMTlDNDAyLjk2OSA5NyA0MDEuMzc1IDk2IDQwMCA5NlMzOTcuMDMxIDk3IDM5Ni40MDYgOTguMjE5TDM4NCAxMjhMMzU0LjIxOSAxNDAuNDIyQzM1MyAxNDEuMDMxIDM1MiAxNDIuNjI1IDM1MiAxNDRDMzUyIDE0NS4zNTkgMzUzIDE0Ni45NjkgMzU0LjIxOSAxNDcuNTc4TDM4NCAxNjBMMzk2LjQwNiAxODkuNzgxQzM5Ny4wMzEgMTkxIDM5OC42MjUgMTkyIDQwMCAxOTJTNDAyLjk2OSAxOTEgNDAzLjU2MiAxODkuNzgxTDQxNiAxNjBMNDQ1Ljc4MSAxNDcuNTc4WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbGlnbkNlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzIgMTYwSDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAgMjU2SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6TTEwOC4xIDk2aDIzMS44MUExMi4wOSAxMi4wOSAwIDAgMCAzNTIgODMuOVY0NC4wOUExMi4wOSAxMi4wOSAwIDAgMCAzMzkuOTEgMzJIMTA4LjFBMTIuMDkgMTIuMDkgMCAwIDAgOTYgNDQuMDlWODMuOUExMi4xIDEyLjEgMCAwIDAgMTA4LjEgOTZ6bTIzMS44MSAyNTZBMTIuMDkgMTIuMDkgMCAwIDAgMzUyIDMzOS45di0zOS44MUExMi4wOSAxMi4wOSAwIDAgMCAzMzkuOTEgMjg4SDEwOC4xQTEyLjA5IDEyLjA5IDAgMCAwIDk2IDMwMC4wOXYzOS44MWExMi4xIDEyLjEgMCAwIDAgMTIuMSAxMi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbGlnbkp1c3RpZnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMyIDQxNkgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTEyOEgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTEyOEgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTEyOEgxNkExNiAxNiAwIDAgMCAwIDQ4djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWxpZ25MZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjgzIDM1MmgyNjIuMzRBMTIuODIgMTIuODIgMCAwIDAgMjg4IDMzOS4xN3YtMzguMzRBMTIuODIgMTIuODIgMCAwIDAgMjc1LjE3IDI4OEgxMi44M0ExMi44MiAxMi44MiAwIDAgMCAwIDMwMC44M3YzOC4zNEExMi44MiAxMi44MiAwIDAgMCAxMi44MyAzNTJ6bTAtMjU2aDI2Mi4zNEExMi44MiAxMi44MiAwIDAgMCAyODggODMuMTdWNDQuODNBMTIuODIgMTIuODIgMCAwIDAgMjc1LjE3IDMySDEyLjgzQTEyLjgyIDEyLjgyIDAgMCAwIDAgNDQuODN2MzguMzRBMTIuODIgMTIuODIgMCAwIDAgMTIuODMgOTZ6TTQzMiAxNjBIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMCAyNTZIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWxpZ25SaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAyMjRoNDE2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNkgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNnptNDE2IDE5MkgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0zLjE3LTM4NEgxNzIuODNBMTIuODIgMTIuODIgMCAwIDAgMTYwIDQ0LjgzdjM4LjM0QTEyLjgyIDEyLjgyIDAgMCAwIDE3Mi44MyA5NmgyNjIuMzRBMTIuODIgMTIuODIgMCAwIDAgNDQ4IDgzLjE3VjQ0LjgzQTEyLjgyIDEyLjgyIDAgMCAwIDQzNS4xNyAzMnptMCAyNTZIMTcyLjgzQTEyLjgyIDEyLjgyIDAgMCAwIDE2MCAzMDAuODN2MzguMzRBMTIuODIgMTIuODIgMCAwIDAgMTcyLjgzIDM1MmgyNjIuMzRBMTIuODIgMTIuODIgMCAwIDAgNDQ4IDMzOS4xN3YtMzguMzRBMTIuODIgMTIuODIgMCAwIDAgNDM1LjE3IDI4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWxsZXJnaWVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAxMTJjLTE3LjYgMC0zMiAxNC40LTMyIDMydjcyYzAgNC40LTMuNiA4LTggOGgtMTZjLTQuNCAwLTgtMy42LTgtOFY2NGMwLTE3LjYtMTQuNC0zMi0zMi0zMnMtMzIgMTQuNC0zMiAzMnYxNTJjMCA0LjQtMy42IDgtOCA4aC0xNmMtNC40IDAtOC0zLjYtOC04VjMyYzAtMTcuNi0xNC40LTMyLTMyLTMycy0zMiAxNC40LTMyIDMydjE4NGMwIDQuNC0zLjYgOC04IDhoLTE2Yy00LjQgMC04LTMuNi04LThWNjRjMC0xNy42LTE0LjQtMzItMzItMzJTOTYgNDYuNCA5NiA2NHYyNDFsLTIzLjYtMzIuNWMtMTMtMTcuOS0zOC0yMS44LTU1LjktOC44cy0yMS44IDM4LTguOCA1NS45bDEyNS42IDE3Mi43YzkgMTIuNCAyMy41IDE5LjggMzguOCAxOS44aDE5Ny42YzIyLjMgMCA0MS42LTE1LjMgNDYuNy0zN2wyNi41LTExMi43YzMuMi0xMy43IDQuOS0yOC4zIDUuMS00Mi4zVjE0NGMwLTE3LjYtMTQuNC0zMi0zMi0zMnpNMTc2IDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2em0wLTk2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6bTY0IDEyOGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2em0wLTk2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6bTY0IDMyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6bTMyIDY0Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6bTMyLTEyOGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbWJ1bGFuY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI0IDM1MmgtMTZWMjQzLjljMC0xMi43LTUuMS0yNC45LTE0LjEtMzMuOUw0OTQgMTEwLjFjLTktOS0yMS4yLTE0LjEtMzMuOS0xNC4xSDQxNlY0OGMwLTI2LjUtMjEuNS00OC00OC00OEg0OEMyMS41IDAgMCAyMS41IDAgNDh2MzIwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDE2YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZoMTI4YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZoNDhjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6TTE2MCA0NjRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDggNDggMjEuNSA0OCA0OC0yMS41IDQ4LTQ4IDQ4em0xNDQtMjQ4YzAgNC40LTMuNiA4LTggOGgtNTZ2NTZjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04di01NmgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDU2di01NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djU2aDU2YzQuNCAwIDggMy42IDggOHY0OHptMTc2IDI0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OCA0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDh6bTgwLTIwOEg0MTZWMTQ0aDQ0LjFsOTkuOSA5OS45VjI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW1lcmljYW5TaWduTGFuZ3VhZ2VJbnRlcnByZXRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjkwLjU0NyAxODkuMDM5Yy0yMC4yOTUtMTAuMTQ5LTQ0LjE0Ny0xMS4xOTktNjQuNzM5LTMuODkgNDIuNjA2IDAgNzEuMjA4IDIwLjQ3NSA4NS41NzggNTAuNTc2IDguNTc2IDE3Ljg5OS01LjE0OCAzOC4wNzEtMjMuNjE3IDM4LjA3MSAxOC40MjkgMCAzMi4yMTEgMjAuMTM2IDIzLjYxNyAzOC4wNzEtMTQuNzI1IDMwLjg0Ni00Ni4xMjMgNTAuODU0LTgwLjI5OCA1MC44NTQtLjU1NyAwLTk0LjQ3MS04LjYxNS05NC40NzEtOC42MTVsLTY2LjQwNiAzMy4zNDdjLTkuMzg0IDQuNjkzLTE5LjgxNS4zNzktMjMuODk1LTcuNzgxTDEuODYgMjkwLjc0N2MtNC4xNjctOC42MTUtMS4xMTEtMTguODk3IDYuOTQ2LTIzLjYyMWw1OC4wNzItMzMuMDY5TDEwOCAxNTkuODYxYzYuMzktNTcuMjQ1IDM0LjczMS0xMDkuNzY3IDc5Ljc0My0xNDYuNzI2IDExLjM5MS05LjQ0OCAyOC4zNDEtNy43ODEgMzcuNTEgMy42MTMgOS40NDYgMTEuMzk0IDcuNzggMjguMDY3LTMuNjEyIDM3LjUxNi0xMi41MDMgMTAuNTU5LTIzLjYxOCAyMi41MDktMzIuNTA5IDM1LjU3IDIxLjY3Mi0xNC43MjkgNDYuNjc5LTI0LjczMiA3NC4xODYtMjguMDY3IDE0LjcyNS0xLjk0NSAyOC4wNjMgOC4zMzYgMjkuNzMgMjMuMDY1IDEuOTQ1IDE0LjcyOC04LjMzNiAyOC4wNjctMjMuMDYyIDI5LjczNC0xNi4xMTYgMS45NDUtMzEuMTIgNy41MDMtNDQuMTc4IDE1LjI4NCAyNi4xMTQtNS43MTMgNTguNzEyLTMuMTM4IDg4LjA3OSAxMS4xMTUgMTMuMzM2IDYuNjY5IDE4Ljg5MyAyMi41MDkgMTIuMjI0IDM1Ljg0OC02LjM4OSAxMy4wNi0yMi41MDQgMTguNjE3LTM1LjU2NCAxMi4yMjZ6bS0yNy4yMjkgNjkuNDcyYy02LjExMi0xMi41MDUtMTguMzM4LTIwLjI4Ni0zMi4yMzEtMjAuMjg2YTM1LjQ2IDM1LjQ2IDAgMCAwLTM1LjU2NSAzNS41N2MwIDIxLjQyOCAxNy44MDggMzUuNTcgMzUuNTY1IDM1LjU3IDEzLjg5MyAwIDI2LjExOS03Ljc4MSAzMi4yMzEtMjAuMjg2IDQuNDQ2LTkuNDQ5IDEzLjYxNC0xNS4wMDYgMjMuMzM5LTE1LjI4NC05LjcyNS0uMjc3LTE4Ljg5My01LjgzNS0yMy4zMzktMTUuMjg0em0zNzQuODIxLTM3LjIzN2M0LjE2OCA4LjYxNSAxLjExMSAxOC44OTctNi45NDYgMjMuNjIxbC01OC4wNzEgMzMuMDY5TDUzMiAzNTIuMTZjLTYuMzkgNTcuMjQ1LTM0LjczMSAxMDkuNzY3LTc5Ljc0MyAxNDYuNzI2LTEwLjkzMiA5LjExMi0yNy43OTkgOC4xNDQtMzcuNTEtMy42MTMtOS40NDYtMTEuMzk0LTcuNzgtMjguMDY3IDMuNjEzLTM3LjUxNiAxMi41MDMtMTAuNTU5IDIzLjYxNy0yMi41MDkgMzIuNTA4LTM1LjU3LTIxLjY3MiAxNC43MjktNDYuNjc5IDI0LjczMi03NC4xODYgMjguMDY3LTEwLjAyMSAyLjUwNi0yNy41NTItNS42NDMtMjkuNzMtMjMuMDY1LTEuOTQ1LTE0LjcyOCA4LjMzNi0yOC4wNjcgMjMuMDYyLTI5LjczNCAxNi4xMTYtMS45NDYgMzEuMTItNy41MDMgNDQuMTc4LTE1LjI4NC0yNi4xMTQgNS43MTMtNTguNzEyIDMuMTM4LTg4LjA3OS0xMS4xMTUtMTMuMzM2LTYuNjY5LTE4Ljg5My0yMi41MDktMTIuMjI0LTM1Ljg0OCA2LjM4OS0xMy4wNjEgMjIuNTA1LTE4LjYxOSAzNS41NjUtMTIuMjI3IDIwLjI5NSAxMC4xNDkgNDQuMTQ3IDExLjE5OSA2NC43MzkgMy44OS00Mi42MDYgMC03MS4yMDgtMjAuNDc1LTg1LjU3OC01MC41NzYtOC41NzYtMTcuODk5IDUuMTQ4LTM4LjA3MSAyMy42MTctMzguMDcxLTE4LjQyOSAwLTMyLjIxMS0yMC4xMzYtMjMuNjE3LTM4LjA3MSAxNC4wMzMtMjkuMzk2IDQ0LjAzOS01MC44ODcgODEuOTY2LTUwLjg1NGw5Mi44MDMgOC42MTUgNjYuNDA2LTMzLjM0N2M5LjQwOC00LjcwNCAxOS44MjgtLjM1NCAyMy44OTQgNy43ODFsNDQuNDU1IDg4LjkyNnptLTIyOS4yMjctMTguNjE4Yy0xMy44OTMgMC0yNi4xMTkgNy43ODEtMzIuMjMxIDIwLjI4Ni00LjQ0NiA5LjQ0OS0xMy42MTQgMTUuMDA2LTIzLjMzOSAxNS4yODQgOS43MjUuMjc4IDE4Ljg5MyA1LjgzNiAyMy4zMzkgMTUuMjg0IDYuMTEyIDEyLjUwNSAxOC4zMzggMjAuMjg2IDMyLjIzMSAyMC4yODZhMzUuNDYgMzUuNDYgMCAwIDAgMzUuNTY1LTM1LjU3YzAtMjEuNDI5LTE3LjgwOC0zNS41Ny0zNS41NjUtMzUuNTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuY2hvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi45NzEgMzUyaDMyLjM5NEM2Ny4xNzIgNDU0LjczNSAxODEuOTQ0IDUxMiAyODggNTEyYzEwNi4yMjkgMCAyMjAuODUzLTU3LjM4IDI0Mi42MzUtMTYwaDMyLjM5NGMxMC42OTEgMCAxNi4wNDUtMTIuOTI2IDguNDg1LTIwLjQ4NWwtNjcuMDI5LTY3LjAyOWMtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3MSAwbC02Ny4wMjkgNjcuMDI5Yy03LjU2IDcuNTYtMi4yMDYgMjAuNDg1IDguNDg1IDIwLjQ4NWgzNS4xNDZjLTIwLjI5IDU0LjMxNy04NC45NjMgODYuNTg4LTE0NC4xMTcgOTQuMDE1VjI1Nmg1MmM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC01MnYtNS40N2MzNy4yODEtMTMuMTc4IDYzLjk5NS00OC43MjUgNjQtOTAuNTE4QzM4NC4wMDUgNDMuNzcyIDM0MS42MDUuNzM4IDI4OS4zNy4wMSAyMzUuNzIzLS43MzkgMTkyIDQyLjUyNSAxOTIgOTZjMCA0MS43OTggMjYuNzE2IDc3LjM1IDY0IDkwLjUzVjE5MmgtNTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg1MnYxOTAuMDE1Yy01OC45MzYtNy4zOTktMTIzLjgyLTM5LjY3OS0xNDQuMTE3LTk0LjAxNWgzNS4xNDZjMTAuNjkxIDAgMTYuMDQ1LTEyLjkyNiA4LjQ4NS0yMC40ODVsLTY3LjAyOS02Ny4wMjljLTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NzEgMEw0LjQ4NSAzMzEuNTE1Qy0zLjA3NCAzMzkuMDc0IDIuMjggMzUyIDEyLjk3MSAzNTJ6TTI4OCA2NGMxNy42NDUgMCAzMiAxNC4zNTUgMzIgMzJzLTE0LjM1NSAzMi0zMiAzMi0zMi0xNC4zNTUtMzItMzIgMTQuMzU1LTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmdsZURvdWJsZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQzIDI1Ni4zTDcgMTIwLjNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDIyLjYtMjIuNmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw5Ni40IDk2LjQgOTYuNC05Ni40YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDMxMyA4Ni4zYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC0xMzYgMTM2Yy05LjQgOS41LTI0LjYgOS41LTM0IC4xem0zNCAxOTJsMTM2LTEzNmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtMjIuNi0yMi42Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEwxNjAgMzUyLjFsLTk2LjQtOTYuNGMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMNyAyNzguM2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsMTM2IDEzNmM5LjQgOS41IDI0LjYgOS41IDM0IC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmdsZURvdWJsZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIzLjcgMjM5bDEzNi0xMzZjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMjIuNiAyMi42YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDMxOS45IDI1Nmw5Ni40IDk2LjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMMzkzLjcgNDA5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMTM2LTEzNmMtOS41LTkuNC05LjUtMjQuNi0uMS0zNHptLTE5MiAzNGwxMzYgMTM2YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDIyLjYtMjIuNmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwxMjcuOSAyNTZsOTYuNC05Ni40YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDIwMS43IDEwM2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTEzNiAxMzZjLTkuNSA5LjQtOS41IDI0LjYtLjEgMzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuZ2xlRG91YmxlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0LjMgMjczbC0xMzYgMTM2Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMjIuNi0yMi42Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw5Ni40LTk2LjQtOTYuNC05Ni40Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUw1NC4zIDEwM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwxMzYgMTM2YzkuNSA5LjQgOS41IDI0LjYuMSAzNHptMTkyLTM0bC0xMzYtMTM2Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtMjIuNiAyMi42Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw5Ni40IDk2LjQtOTYuNCA5Ni40Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwyMi42IDIyLjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsMTM2LTEzNmM5LjQtOS4yIDkuNC0yNC40IDAtMzMuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5nbGVEb3VibGVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzcgMjU1LjdsMTM2IDEzNmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtMjIuNiAyMi42Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwxNjAgMzUxLjlsLTk2LjQgOTYuNGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMNyA0MjUuN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsMTM2LTEzNmM5LjQtOS41IDI0LjYtOS41IDM0LS4xem0tMzQtMTkyTDcgMTk5LjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDIyLjYgMjIuNmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw5Ni40LTk2LjQgOTYuNCA5Ni40YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDIyLjYtMjIuNmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtMTM2LTEzNmMtOS4yLTkuNC0yNC40LTkuNC0zMy44IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuZ2xlRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDMgMzUyLjNMNyAyMTYuM2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsMjIuNi0yMi42YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDk2LjQgOTYuNCA5Ni40LTk2LjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMjIuNiAyMi42YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC0xMzYgMTM2Yy05LjIgOS40LTI0LjQgOS40LTMzLjggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5nbGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxLjcgMjM5bDEzNi0xMzZjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMjIuNiAyMi42YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDEyNy45IDI1Nmw5Ni40IDk2LjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMMjAxLjcgNDA5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMTM2LTEzNmMtOS41LTkuNC05LjUtMjQuNi0uMS0zNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5nbGVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQuMyAyNzNsLTEzNiAxMzZjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC0yMi42LTIyLjZjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDk2LjQtOTYuNC05Ni40LTk2LjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDU0LjMgMTAzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDEzNiAxMzZjOS41IDkuNCA5LjUgMjQuNi4xIDM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmdsZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NyAxNTkuN2wxMzYgMTM2YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC0yMi42IDIyLjZjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDE2MCAyNTUuOWwtOTYuNCA5Ni40Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEw3IDMyOS43Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWwxMzYtMTM2YzkuNC05LjUgMjQuNi05LjUgMzQtLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuZ3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6TTEzNiAyNDBjMC05LjMgNC4xLTE3LjUgMTAuNS0yMy40bC0zMS05LjNjLTguNS0yLjUtMTMuMy0xMS41LTEwLjctMTkuOSAyLjUtOC41IDExLjQtMTMuMiAxOS45LTEwLjdsODAgMjRjOC41IDIuNSAxMy4zIDExLjUgMTAuNyAxOS45LTIuMSA2LjktOC40IDExLjQtMTUuMyAxMS40LS41IDAtMS4xLS4yLTEuNy0uMi43IDIuNyAxLjcgNS4zIDEuNyA4LjIgMCAxNy43LTE0LjMgMzItMzIgMzJTMTM2IDI1Ny43IDEzNiAyNDB6bTE2OCAxNTQuMmMtMjcuOC0zMy40LTg0LjItMzMuNC0xMTIuMSAwLTEzLjUgMTYuMy0zOC4yLTQuMi0yNC42LTIwLjUgMjAtMjQgNDkuNC0zNy44IDgwLjYtMzcuOHM2MC42IDEzLjggODAuNiAzNy44YzEzLjggMTYuNS0xMS4xIDM2LjYtMjQuNSAyMC41em03Ni42LTE4Ni45bC0zMSA5LjNjNi4zIDUuOCAxMC41IDE0LjEgMTAuNSAyMy40IDAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtMi45LjktNS42IDEuNy04LjItLjYuMS0xLjEuMi0xLjcuMi02LjkgMC0xMy4yLTQuNS0xNS4zLTExLjQtMi41LTguNSAyLjMtMTcuNCAxMC43LTE5LjlsODAtMjRjOC40LTIuNSAxNy40IDIuMyAxOS45IDEwLjcgMi41IDguNS0yLjMgMTcuNC0xMC44IDE5Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFua2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk2IDI1NmgtNDQuNjJDMjcyLjQ2IDIyMi4wMSAyODggMTgxLjY1IDI4OCAxNDQgMjg4IDU1LjYzIDIzMC42OSAwIDE2MCAwUzMyIDU1LjYzIDMyIDE0NGMwIDM3LjY1IDE1LjU0IDc4LjAxIDM2LjYyIDExMkgyNGMtMTMuMjUgMC0yNCAxMC43NC0yNCAyNHYzMmMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDk2djE1MmMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDMyYzEzLjI1IDAgMjQtMTAuNzUgMjQtMjRWMzM2aDk2YzEzLjI1IDAgMjQtMTAuNzUgMjQtMjR2LTMyYzAtMTMuMjYtMTAuNzUtMjQtMjQtMjR6TTE2MCA4MGMyOS42MSAwIDQ4IDI0LjUyIDQ4IDY0IDAgMzQuNjYtMjcuMTQgNzguMTQtNDggMTAwLjg3LTIwLjg2LTIyLjcyLTQ4LTY2LjIxLTQ4LTEwMC44NyAwLTM5LjQ4IDE4LjM5LTY0IDQ4LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcHBsZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTAuODUgMTI5YzI1Ljk3IDQuNjcgNDcuMjcgMTguNjcgNjMuOTIgNDIgMTQuNjUgMjAuNjcgMjQuNjQgNDYuNjcgMjkuOTYgNzggNC42NyAyOC42NyA0LjMyIDU3LjMzLTEgODYtNy45OSA0Ny4zMy0yMy45NyA4Ny00Ny45NCAxMTktMjguNjQgMzguNjctNjQuNTkgNTgtMTA3Ljg3IDU4LTEwLjY2IDAtMjIuMy0zLjMzLTM0Ljk2LTEwLTguNjYtNS4zMy0xOC4zMS04LTI4Ljk3LThzLTIwLjMgMi42Ny0yOC45NyA4Yy0xMi42NiA2LjY3LTI0LjMgMTAtMzQuOTYgMTAtNDMuMjggMC03OS4yMy0xOS4zMy0xMDcuODctNTgtMjMuOTctMzItMzkuOTUtNzEuNjctNDcuOTQtMTE5LTUuMzItMjguNjctNS42Ny01Ny4zMy0xLTg2IDUuMzItMzEuMzMgMTUuMzEtNTcuMzMgMjkuOTYtNzggMTYuNjUtMjMuMzMgMzcuOTUtMzcuMzMgNjMuOTItNDIgMTUuOTgtMi42NyAzNy45NS0uMzMgNjUuOTIgNyAyMy45NyA2LjY3IDQ0LjI4IDE0LjY3IDYwLjkzIDI0IDE2LjY1LTkuMzMgMzYuOTYtMTcuMzMgNjAuOTMtMjQgMjcuOTgtNy4zMyA0OS45Ni05LjY3IDY1Ljk0LTd6bS01NC45NC00MWMtOS4zMiA4LjY3LTIxLjY1IDE1LTM2Ljk2IDE5LTEwLjY2IDMuMzMtMjIuMyA1LTM0Ljk2IDVsLTE0Ljk4LTFjLTEuMzMtOS4zMy0xLjMzLTIwIDAtMzIgMi42Ny0yNCAxMC4zMi00Mi4zMyAyMi45Ny01NSA5LjMyLTguNjcgMjEuNjUtMTUgMzYuOTYtMTkgMTAuNjYtMy4zMyAyMi4zLTUgMzQuOTYtNWwxNC45OCAxIDEgMTVjMCAxMi42Ny0xLjY3IDI0LjMzLTQuOTkgMzUtMy45OSAxNS4zMy0xMC4zMSAyNy42Ny0xOC45OCAzN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJjaGl2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzg0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE2MEgzMnYyODh6bTE2MC0yMTJjMC02LjYgNS40LTEyIDEyLTEyaDEwNGM2LjYgMCAxMiA1LjQgMTIgMTJ2OGMwIDYuNi01LjQgMTItMTIgMTJIMjA0Yy02LjYgMC0xMi01LjQtMTItMTJ2LTh6TTQ4MCAzMkgzMkMxNC4zIDMyIDAgNDYuMyAwIDY0djQ4YzAgOC44IDcuMiAxNiAxNiAxNmg0ODBjOC44IDAgMTYtNy4yIDE2LTE2VjY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcmNod2F5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2MCA0NDhoLTE2Vjk2SDMydjM1MkgxNi4wMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZIMTc2YzguODQgMCAxNi03LjE2IDE2LTE2VjMyMGMwLTUzLjAyIDQyLjk4LTk2IDk2LTk2czk2IDQyLjk4IDk2IDk2bC4wMiAxNjB2MTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZINTYwYzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnptMC00NDhIMTZDNy4xNiAwIDAgNy4xNiAwIDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDU0NGM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYxNmMwLTguODQtNy4xNi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dBbHRDaXJjbGVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNCAyNTZjMCAxMzctMTExIDI0OC0yNDggMjQ4UzggMzkzIDggMjU2IDExOSA4IDI1NiA4czI0OCAxMTEgMjQ4IDI0OHpNMjEyIDE0MHYxMTZoLTcwLjljLTEwLjcgMC0xNi4xIDEzLTguNSAyMC41bDExNC45IDExNC4zYzQuNyA0LjcgMTIuMiA0LjcgMTYuOSAwbDExNC45LTExNC4zYzcuNi03LjYgMi4yLTIwLjUtOC41LTIwLjVIMzAwVjE0MGMwLTYuNi01LjQtMTItMTItMTJoLTY0Yy02LjYgMC0xMiA1LjQtMTIgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93QWx0Q2lyY2xlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTA0QzExOSA1MDQgOCAzOTMgOCAyNTZTMTE5IDggMjU2IDhzMjQ4IDExMSAyNDggMjQ4LTExMSAyNDgtMjQ4IDI0OHptMTE2LTI5MkgyNTZ2LTcwLjljMC0xMC43LTEzLTE2LjEtMjAuNS04LjVMMTIxLjIgMjQ3LjVjLTQuNyA0LjctNC43IDEyLjIgMCAxNi45bDExNC4zIDExNC45YzcuNiA3LjYgMjAuNSAyLjIgMjAuNS04LjVWMzAwaDExNmM2LjYgMCAxMi01LjQgMTItMTJ2LTY0YzAtNi42LTUuNC0xMi0xMi0xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dBbHRDaXJjbGVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOGMxMzcgMCAyNDggMTExIDI0OCAyNDhTMzkzIDUwNCAyNTYgNTA0IDggMzkzIDggMjU2IDExOSA4IDI1NiA4ek0xNDAgMzAwaDExNnY3MC45YzAgMTAuNyAxMyAxNi4xIDIwLjUgOC41bDExNC4zLTExNC45YzQuNy00LjcgNC43LTEyLjIgMC0xNi45bC0xMTQuMy0xMTVjLTcuNi03LjYtMjAuNS0yLjItMjAuNSA4LjVWMjEySDE0MGMtNi42IDAtMTIgNS40LTEyIDEydjY0YzAgNi42IDUuNCAxMiAxMiAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dBbHRDaXJjbGVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDI1NkM4IDExOSAxMTkgOCAyNTYgOHMyNDggMTExIDI0OCAyNDgtMTExIDI0OC0yNDggMjQ4UzggMzkzIDggMjU2em0yOTIgMTE2VjI1Nmg3MC45YzEwLjcgMCAxNi4xLTEzIDguNS0yMC41TDI2NC41IDEyMS4yYy00LjctNC43LTEyLjItNC43LTE2LjkgMGwtMTE1IDExNC4zYy03LjYgNy42LTIuMiAyMC41IDguNSAyMC41SDIxMnYxMTZjMCA2LjYgNS40IDEyIDEyIDEyaDY0YzYuNiAwIDEyLTUuNCAxMi0xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dDaXJjbGVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNCAyNTZjMCAxMzctMTExIDI0OC0yNDggMjQ4UzggMzkzIDggMjU2IDExOSA4IDI1NiA4czI0OCAxMTEgMjQ4IDI0OHptLTE0My42LTI4LjlMMjg4IDMwMi42VjEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNGgtMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0djE4Mi42bC03Mi40LTc1LjVjLTkuMy05LjctMjQuOC05LjktMzQuMy0uNGwtMTAuOSAxMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlMMjM5IDQwNC4zYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDEzMi43LTEzMi43YzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC0xMC45LTExYy05LjUtOS41LTI1LTkuMy0zNC4zLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93Q2lyY2xlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTA0QzExOSA1MDQgOCAzOTMgOCAyNTZTMTE5IDggMjU2IDhzMjQ4IDExMSAyNDggMjQ4LTExMSAyNDgtMjQ4IDI0OHptMjguOS0xNDMuNkwyMDkuNCAyODhIMzkyYzEzLjMgMCAyNC0xMC43IDI0LTI0di0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNEgyMDkuNGw3NS41LTcyLjRjOS43LTkuMyA5LjktMjQuOC40LTM0LjNsLTExLTEwLjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDEwNy43IDIzOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsMTMyLjcgMTMyLjdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsMTEtMTAuOWM5LjUtOS41IDkuMy0yNS0uNC0zNC4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd0NpcmNsZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4YzEzNyAwIDI0OCAxMTEgMjQ4IDI0OFMzOTMgNTA0IDI1NiA1MDQgOCAzOTMgOCAyNTYgMTE5IDggMjU2IDh6bS0yOC45IDE0My42bDc1LjUgNzIuNEgxMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0djE2YzAgMTMuMyAxMC43IDI0IDI0IDI0aDE4Mi42bC03NS41IDcyLjRjLTkuNyA5LjMtOS45IDI0LjgtLjQgMzQuM2wxMSAxMC45YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwTDQwNC4zIDI3M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwyNzEuNiAxMDYuM2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTExIDEwLjljLTkuNSA5LjYtOS4zIDI1LjEuNCAzNC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd0NpcmNsZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMjU2QzggMTE5IDExOSA4IDI1NiA4czI0OCAxMTEgMjQ4IDI0OC0xMTEgMjQ4LTI0OCAyNDhTOCAzOTMgOCAyNTZ6bTE0My42IDI4LjlsNzIuNC03NS41VjM5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYyMDkuNGw3Mi40IDc1LjVjOS4zIDkuNyAyNC44IDkuOSAzNC4zLjRsMTAuOS0xMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwyNzMgMTA3LjdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDEwNi4zIDI0MC40Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwxMC45IDExYzkuNiA5LjUgMjUuMSA5LjMgMzQuNC0uNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxMy4xIDIyMi41bDIyLjIgMjIuMmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUwyNDEgNDczYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwxMi43IDI3OC42Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWwyMi4yLTIyLjJjOS41LTkuNSAyNS05LjMgMzQuMy40TDE4NCAzNDMuNFY1NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGgzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNHYyODcuNGwxMTQuOC0xMjAuNWM5LjMtOS44IDI0LjgtMTAgMzQuMy0uNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1Ny41IDQ0NS4xbC0yMi4yIDIyLjJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDcgMjczYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwyMDEuNCA0NC43YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDIyLjIgMjIuMmM5LjUgOS41IDkuMyAyNS0uNCAzNC4zTDEzNi42IDIxNkg0MjRjMTMuMyAwIDI0IDEwLjcgMjQgMjR2MzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRIMTM2LjZsMTIwLjUgMTE0LjhjOS44IDkuMyAxMCAyNC44LjQgMzQuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTAuNSA2Ni45bDIyLjItMjIuMmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEw0NDEgMjM5YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDI0Ni42IDQ2Ny4zYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMjIuMi0yMi4yYy05LjUtOS41LTkuMy0yNSAuNC0zNC4zTDMxMS40IDI5NkgyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjR2LTMyYzAtMTMuMyAxMC43LTI0IDI0LTI0aDI4Ny40TDE5MC45IDEwMS4yYy05LjgtOS4zLTEwLTI0LjgtLjQtMzQuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNC45IDI4OS41bC0yMi4yLTIyLjJjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDIwNyAzOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwxOTQuMyAxOTQuM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOUw0MTMgMjg5LjRjLTkuNSA5LjUtMjUgOS4zLTM0LjMtLjRMMjY0IDE2OC42VjQ1NmMwIDEzLjMtMTAuNyAyNC0yNCAyNGgtMzJjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjE2OC42TDY5LjIgMjg5LjFjLTkuMyA5LjgtMjQuOCAxMC0zNC4zLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93c0FsdEggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzc3Ljk0MSAxNjkuOTQxVjIxNkgxMzQuMDU5di00Ni4wNTljMC0yMS4zODItMjUuODUxLTMyLjA5LTQwLjk3MS0xNi45NzFMNy4wMjkgMjM5LjAyOWMtOS4zNzMgOS4zNzMtOS4zNzMgMjQuNTY4IDAgMzMuOTQxbDg2LjA1OSA4Ni4wNTljMTUuMTE5IDE1LjExOSA0MC45NzEgNC40MTEgNDAuOTcxLTE2Ljk3MVYyOTZoMjQzLjg4MnY0Ni4wNTljMCAyMS4zODIgMjUuODUxIDMyLjA5IDQwLjk3MSAxNi45NzFsODYuMDU5LTg2LjA1OWM5LjM3My05LjM3MyA5LjM3My0yNC41NjggMC0zMy45NDFsLTg2LjA1OS04Ni4wNTljLTE1LjExOS0xNS4xMi00MC45NzEtNC40MTItNDAuOTcxIDE2Ljk3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd3NBbHRWIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNC4wNTkgMzc3Ljk0MUgxNjhWMTM0LjA1OWg0Ni4wNTljMjEuMzgyIDAgMzIuMDktMjUuODUxIDE2Ljk3MS00MC45NzFMMTQ0Ljk3MSA3LjAyOWMtOS4zNzMtOS4zNzMtMjQuNTY4LTkuMzczLTMzLjk0MSAwTDI0Ljk3MSA5My4wODhjLTE1LjExOSAxNS4xMTktNC40MTEgNDAuOTcxIDE2Ljk3MSA0MC45NzFIODh2MjQzLjg4Mkg0MS45NDFjLTIxLjM4MiAwLTMyLjA5IDI1Ljg1MS0xNi45NzEgNDAuOTcxbDg2LjA1OSA4Ni4wNTljOS4zNzMgOS4zNzMgMjQuNTY4IDkuMzczIDMzLjk0MSAwbDg2LjA1OS04Ni4wNTljMTUuMTItMTUuMTE5IDQuNDEyLTQwLjk3MS0xNi45Ny00MC45NzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93c0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIuMjAxIDQyNS43NzVsLTc5LjE5NiA3OS4xOTZjLTkuMzczIDkuMzczLTI0LjU2OCA5LjM3My0zMy45NDEgMGwtNzkuMTk2LTc5LjE5NmMtMTUuMTE5LTE1LjExOS00LjQxMS00MC45NzEgMTYuOTcxLTQwLjk3aDUxLjE2MkwyMjggMjg0SDEyNy4xOTZ2NTEuMTYyYzAgMjEuMzgyLTI1Ljg1MSAzMi4wOS00MC45NzEgMTYuOTcxTDcuMDI5IDI3Mi45MzdjLTkuMzczLTkuMzczLTkuMzczLTI0LjU2OSAwLTMzLjk0MUw4Ni4yMjUgMTU5LjhjMTUuMTE5LTE1LjExOSA0MC45NzEtNC40MTEgNDAuOTcxIDE2Ljk3MVYyMjhIMjI4VjEyNy4xOTZoLTUxLjIzYy0yMS4zODIgMC0zMi4wOS0yNS44NTEtMTYuOTcxLTQwLjk3MWw3OS4xOTYtNzkuMTk2YzkuMzczLTkuMzczIDI0LjU2OC05LjM3MyAzMy45NDEgMGw3OS4xOTYgNzkuMTk2YzE1LjExOSAxNS4xMTkgNC40MTEgNDAuOTcxLTE2Ljk3MSA0MC45NzFoLTUxLjE2MlYyMjhoMTAwLjgwNHYtNTEuMTYyYzAtMjEuMzgyIDI1Ljg1MS0zMi4wOSA0MC45Ny0xNi45NzFsNzkuMTk2IDc5LjE5NmM5LjM3MyA5LjM3MyA5LjM3MyAyNC41NjkgMCAzMy45NDFMNDI1Ljc3MyAzNTIuMmMtMTUuMTE5IDE1LjExOS00MC45NzEgNC40MTEtNDAuOTctMTYuOTcxVjI4NEgyODR2MTAwLjgwNGg1MS4yM2MyMS4zODIgMCAzMi4wOSAyNS44NTEgMTYuOTcxIDQwLjk3MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXNzaXN0aXZlTGlzdGVuaW5nU3lzdGVtcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTYgMjYwYzAgMTUuNDY0LTEyLjUzNiAyOC0yOCAyOHMtMjgtMTIuNTM2LTI4LTI4YzAtNDQuMTEyIDM1Ljg4OC04MCA4MC04MHM4MCAzNS44ODggODAgODBjMCAxNS40NjQtMTIuNTM2IDI4LTI4IDI4cy0yOC0xMi41MzYtMjgtMjhjMC0xMy4yMzQtMTAuNzY3LTI0LTI0LTI0cy0yNCAxMC43NjYtMjQgMjR6bTI0LTE3NmMtOTcuMDQ3IDAtMTc2IDc4Ljk1My0xNzYgMTc2IDAgMTUuNDY0IDEyLjUzNiAyOCAyOCAyOHMyOC0xMi41MzYgMjgtMjhjMC02Ni4xNjggNTMuODMyLTEyMCAxMjAtMTIwczEyMCA1My44MzIgMTIwIDEyMGMwIDc1LjE2NC03MS4wMDkgNzAuMzExLTcxLjk5NyAxNDMuNjIyTDI4OCA0MDRjMCAyOC42NzMtMjMuMzI3IDUyLTUyIDUyLTE1LjQ2NCAwLTI4IDEyLjUzNi0yOCAyOHMxMi41MzYgMjggMjggMjhjNTkuNDc1IDAgMTA3Ljg3Ni00OC4zMjggMTA4LTEwNy43NzQuNTk1LTM0LjQyOCA3Mi00OC4yNCA3Mi0xNDQuMjI2IDAtOTcuMDQ3LTc4Ljk1My0xNzYtMTc2LTE3NnptLTgwIDIzNmMtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMyczE0LjMyNyAzMiAzMiAzMiAzMi0xNC4zMjcgMzItMzItMTQuMzI3LTMyLTMyLTMyek0zMiA0NDhjLTE3LjY3MyAwLTMyIDE0LjMyNy0zMiAzMnMxNC4zMjcgMzIgMzIgMzIgMzItMTQuMzI3IDMyLTMyLTE0LjMyNy0zMi0zMi0zMnptNDgwLTE4Ny45OTNjMC0xLjUxOC0uMDEyLTMuMDI1LS4wNDUtNC41MzFDNTEwLjA3NiAxNDAuNTI1IDQzNi4xNTcgMzguNDcgMzI3Ljk5NCAxLjUxMWMtMTQuNjMzLTQuOTk4LTMwLjU0OSAyLjgwOS0zNS41NSAxNy40NDItNSAxNC42MzMgMi44MSAzMC41NDkgMTcuNDQyIDM1LjU1IDg1LjkwNiAyOS4zNTQgMTQ0LjYxIDExMC41MTMgMTQ2LjA3NyAyMDEuOTUzbC4wMDMuMTg4Yy4wMjYgMS4xMTguMDMzIDIuMjM2LjAzMyAzLjM2MyAwIDE1LjQ2NCAxMi41MzYgMjggMjggMjhzMjguMDAxLTEyLjUzNiAyOC4wMDEtMjh6TTE1Mi45NzEgNDM5LjAyOWwtODAtODBMMzkuMDMgMzkyLjk3bDgwIDgwIDMzLjk0MS0zMy45NDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFzdGVyaXNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3OC4yMSAzMzQuMDkzTDMzNiAyNTZsMTQyLjIxLTc4LjA5M2MxMS43OTUtNi40NzcgMTUuOTYxLTIxLjM4NCA5LjIzMi0zMy4wMzdsLTE5LjQ4LTMzLjc0MWMtNi43MjgtMTEuNjUzLTIxLjcyLTE1LjQ5OS0zMy4yMjctOC41MjNMMjk2IDE4Ni43MThsMy40NzUtMTYyLjIwNEMyOTkuNzYzIDExLjA2MSAyODguOTM3IDAgMjc1LjQ4IDBoLTM4Ljk2Yy0xMy40NTYgMC0yNC4yODMgMTEuMDYxLTIzLjk5NCAyNC41MTRMMjE2IDE4Ni43MTggNzcuMjY1IDEwMi42MDdjLTExLjUwNi02Ljk3Ni0yNi40OTktMy4xMy0zMy4yMjcgOC41MjNsLTE5LjQ4IDMzLjc0MWMtNi43MjggMTEuNjUzLTIuNTYyIDI2LjU2IDkuMjMzIDMzLjAzN0wxNzYgMjU2IDMzLjc5IDMzNC4wOTNjLTExLjc5NSA2LjQ3Ny0xNS45NjEgMjEuMzg0LTkuMjMyIDMzLjAzN2wxOS40OCAzMy43NDFjNi43MjggMTEuNjUzIDIxLjcyMSAxNS40OTkgMzMuMjI3IDguNTIzTDIxNiAzMjUuMjgybC0zLjQ3NSAxNjIuMjA0QzIxMi4yMzcgNTAwLjkzOSAyMjMuMDY0IDUxMiAyMzYuNTIgNTEyaDM4Ljk2MWMxMy40NTYgMCAyNC4yODMtMTEuMDYxIDIzLjk5NS0yNC41MTRMMjk2IDMyNS4yODJsMTM4LjczNSA4NC4xMTFjMTEuNTA2IDYuOTc2IDI2LjQ5OSAzLjEzIDMzLjIyNy04LjUyM2wxOS40OC0zMy43NDFjNi43MjgtMTEuNjUzIDIuNTYzLTI2LjU1OS05LjIzMi0zMy4wMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOC45NDEgOCA4IDExOC45MTkgOCAyNTZjMCAxMzcuMDU5IDExMC45MTkgMjQ4IDI0OCAyNDggNDguMTU0IDAgOTUuMzQyLTE0LjE0IDEzNS40MDgtNDAuMjIzIDEyLjAwNS03LjgxNSAxNC42MjUtMjQuMjg4IDUuNTUyLTM1LjM3MmwtMTAuMTc3LTEyLjQzM2MtNy42NzEtOS4zNzEtMjEuMTc5LTExLjY2Ny0zMS4zNzMtNS4xMjlDMzI1LjkyIDQyOS43NTcgMjkxLjMxNCA0NDAgMjU2IDQ0MGMtMTAxLjQ1OCAwLTE4NC04Mi41NDItMTg0LTE4NFMxNTQuNTQyIDcyIDI1NiA3MmMxMDAuMTM5IDAgMTg0IDU3LjYxOSAxODQgMTYwIDAgMzguNzg2LTIxLjA5MyA3OS43NDItNTguMTcgODMuNjkzLTE3LjM0OS0uNDU0LTE2LjkxLTEyLjg1Ny0xMy40NzYtMzAuMDI0bDIzLjQzMy0xMjEuMTFDMzk0LjY1MyAxNDkuNzUgMzgzLjMwOCAxMzYgMzY4LjIyNSAxMzZoLTQ0Ljk4MWExMy41MTggMTMuNTE4IDAgMCAwLTEzLjQzMiAxMS45OTNsLS4wMS4wOTJjLTE0LjY5Ny0xNy45MDEtNDAuNDQ4LTIxLjc3NS01OS45NzEtMjEuNzc1LTc0LjU4IDAtMTM3LjgzMSA2Mi4yMzQtMTM3LjgzMSAxNTEuNDYgMCA2NS4zMDMgMzYuNzg1IDEwNS44NyA5NiAxMDUuODcgMjYuOTg0IDAgNTcuMzY5LTE1LjYzNyA3NC45OTEtMzguMzMzIDkuNTIyIDM0LjEwNCA0MC42MTMgMzQuMTAzIDcwLjcxIDM0LjEwM0M0NjIuNjA5IDM3OS40MSA1MDQgMzA3Ljc5OCA1MDQgMjMyIDUwNCA5NS42NTMgMzk0LjAyMyA4IDI1NiA4em0tMjEuNjggMzA0LjQzYy0yMi4yNDkgMC0zNi4wNy0xNS42MjMtMzYuMDctNDAuNzcxIDAtNDQuOTkzIDMwLjc3OS03Mi43MjkgNTguNjMtNzIuNzI5IDIyLjI5MiAwIDM1LjYwMSAxNS4yNDEgMzUuNjAxIDQwLjc3IDAgNDUuMDYxLTMzLjg3NSA3Mi43My01OC4xNjEgNzIuNzN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUF0bGFzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxOC4zOCAyMDhoLTM5LjA5Yy0xLjQ5IDI3LjAzLTYuNTQgNTEuMzUtMTQuMjEgNzAuNDEgMjcuNzEtMTMuMjQgNDguMDItMzkuMTkgNTMuMy03MC40MXptMC0zMmMtNS4yOS0zMS4yMi0yNS41OS01Ny4xNy01My4zLTcwLjQxIDcuNjggMTkuMDYgMTIuNzIgNDMuMzggMTQuMjEgNzAuNDFoMzkuMDl6TTIyNCA5Ny4zMWMtNy42OSA3LjQ1LTIwLjc3IDM0LjQyLTIzLjQzIDc4LjY5aDQ2Ljg3Yy0yLjY3LTQ0LjI2LTE1Ljc1LTcxLjI0LTIzLjQ0LTc4LjY5em0tNDEuMDggOC4yOGMtMjcuNzEgMTMuMjQtNDguMDIgMzkuMTktNTMuMyA3MC40MWgzOS4wOWMxLjQ5LTI3LjAzIDYuNTMtNTEuMzUgMTQuMjEtNzAuNDF6bTAgMTcyLjgyYy03LjY4LTE5LjA2LTEyLjcyLTQzLjM4LTE0LjIxLTcwLjQxaC0zOS4wOWM1LjI4IDMxLjIyIDI1LjU5IDU3LjE3IDUzLjMgNzAuNDF6TTI0Ny40MyAyMDhoLTQ2Ljg3YzIuNjYgNDQuMjYgMTUuNzQgNzEuMjQgMjMuNDMgNzguNjkgNy43LTcuNDUgMjAuNzgtMzQuNDMgMjMuNDQtNzguNjl6TTQ0OCAzNTguNFYyNS42YzAtMTYtOS42LTI1LjYtMjUuNi0yNS42SDk2QzQxLjYgMCAwIDQxLjYgMCA5NnYzMjBjMCA1NC40IDQxLjYgOTYgOTYgOTZoMzI2LjRjMTIuOCAwIDI1LjYtOS42IDI1LjYtMjUuNnYtMTZjMC02LjQtMy4yLTEyLjgtOS42LTE5LjItMy4yLTE2LTMuMi02MC44IDAtNzMuNiA2LjQtMy4yIDkuNi05LjYgOS42LTE5LjJ6TTIyNCA2NGM3MC42OSAwIDEyOCA1Ny4zMSAxMjggMTI4cy01Ny4zMSAxMjgtMTI4IDEyOFM5NiAyNjIuNjkgOTYgMTkyIDE1My4zMSA2NCAyMjQgNjR6bTE2MCAzODRIOTZjLTE5LjIgMC0zMi0xMi44LTMyLTMyczE2LTMyIDMyLTMyaDI4OHY2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXRvbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjMuOTk5MDgsMjI0YTMyLDMyLDAsMSwwLDMyLjAwNzgyLDMyQTMyLjA2NDMxLDMyLjA2NDMxLDAsMCwwLDIyMy45OTkwOCwyMjRabTIxNC4xNzItOTZjLTEwLjg3Ny0xOS41LTQwLjUwOTc5LTUwLjc1LTExNi4yNzU0NC00MS44NzVDMzAwLjM5MTY4LDM0Ljg3NSwyNjcuNjMzODYsMCwyMjMuOTk5MDgsMHMtNzYuMzkwNjYsMzQuODc1LTk3Ljg5NjUzLDg2LjEyNUM1MC4zMzY5LDc3LjM3NSwyMC43MDYsMTA4LjUsOS44MjkwNywxMjgtNi41NDk4NCwxNTcuMzc1LTUuMTc0ODQsMjAxLjEyNSwzNC45NTgsMjU2LTUuMTc0ODQsMzEwLjg3NS02LjU0OTg0LDM1NC42MjUsOS44MjkwNywzODRjMjkuMTMwODcsNTIuMzc1LDEwMS42NDY1Miw0My42MjUsMTE2LjI3MzQ4LDQxLjg3NUMxNDcuNjA4NDIsNDc3LjEyNSwxODAuMzY0MjksNTEyLDIyMy45OTkwOCw1MTJzNzYuMzkyNi0zNC44NzUsOTcuODk2NTItODYuMTI1YzE0LjYyODkxLDEuNzUsODcuMTQ0NTYsMTAuNSwxMTYuMjc1NDQtNDEuODc1QzQ1NC41NSwzNTQuNjI1LDQ1My4xNzUsMzEwLjg3NSw0MTMuMDQwMTcsMjU2LDQ1My4xNzUsMjAxLjEyNSw0NTQuNTUsMTU3LjM3NSw0MzguMTcxLDEyOFpNNjMuMzM4ODYsMzUyYy00LTcuMjUtLjEyNS0yNC43NSwxNS4wMDM5MS00OC4yNSw2Ljg3Njk1LDYuNSwxNC4xMjg5MSwxMi44NzUsMjEuODgwODcsMTkuMTI1LDEuNjI1LDEzLjc1LDQsMjcuMTI1LDYuNzUsNDAuMTI1QzgyLjM0NDcyLDM2My44NzUsNjcuMDkwODEsMzU4LjYyNSw2My4zMzg4NiwzNTJabTM2Ljg4NDc4LTE2Mi44NzVjLTcuNzUyLDYuMjUtMTUuMDAzOTIsMTIuNjI1LTIxLjg4MDg3LDE5LjEyNS0xNS4xMjg5MS0yMy41LTE5LjAwMzkyLTQxLTE1LjAwMzkxLTQ4LjI1LDMuMzc3LTYuMTI1LDE2LjM3ODkxLTExLjUsMzcuODg0NzgtMTEuNSwxLjc1LDAsMy44NzUuMzc1LDUuNzUuMzc1QzEwNC4wOTg2NCwxNjIuMjUsMTAxLjg0ODY0LDE3NS42MjUsMTAwLjIyMzY0LDE4OS4xMjVaTTIyMy45OTkwOCw2NGM5LjUwMTk1LDAsMjIuMjU1ODYsMTMuNSwzMy44ODI4MiwzNy4yNS0xMS4yNTIsMy43NS0yMi41MDM5MSw4LTMzLjg4MjgyLDEyLjg3NS0xMS4zNzctNC44NzUtMjIuNjI4OTItOS4xMjUtMzMuODgyODMtMTIuODc1QzIwMS43NDUxNiw3Ny41LDIxNC40OTcxMiw2NCwyMjMuOTk5MDgsNjRabTAsMzg0Yy05LjUwMiwwLTIyLjI1MzkyLTEzLjUtMzMuODgyODMtMzcuMjUsMTEuMjUzOTEtMy43NSwyMi41MDU4Ny04LDMzLjg4MjgzLTEyLjg3NUMyMzUuMzc4LDQwMi43NSwyNDYuNjI5OTQsNDA3LDI1Ny44ODE5LDQxMC43NSwyNDYuMjU0OTQsNDM0LjUsMjMzLjUwMSw0NDgsMjIzLjk5OTA4LDQ0OFptMC0xMTJhODAsODAsMCwxLDEsODAtODBBODAuMDAwMjMsODAuMDAwMjMsMCwwLDEsMjIzLjk5OTA4LDMzNlpNMzg0LjY1OTMsMzUyYy0zLjYyNSw2LjYyNS0xOS4wMDM5MiwxMS44NzUtNDMuNjM0NzksMTEsMi43NTItMTMsNS4xMjctMjYuMzc1LDYuNzUyLTQwLjEyNSw3Ljc1MTk1LTYuMjUsMTUuMDAzOTEtMTIuNjI1LDIxLjg3ODkxLTE5LjEyNUMzODQuNzg0MywzMjcuMjUsMzg4LjY1OTMsMzQ0Ljc1LDM4NC42NTkzLDM1MlpNMzY5LjY1NTM4LDIwOC4yNWMtNi44NzUtNi41LTE0LjEyNy0xMi44NzUtMjEuODc4OTEtMTkuMTI1LTEuNjI1LTEzLjUtMy44NzUtMjYuODc1LTYuNzUyLTQwLjI1LDEuODc1LDAsNC4wMDItLjM3NSw1Ljc1Mi0uMzc1LDIxLjUwMzkxLDAsMzQuNTA3ODIsNS4zNzUsMzcuODgyODMsMTEuNUMzODguNjU5MywxNjcuMjUsMzg0Ljc4NDMsMTg0Ljc1LDM2OS42NTUzOCwyMDguMjVaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUF1ZGlvRGVzY3JpcHRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYyLjkyNSAyMzguNzA5bDguODIyIDMwLjY1NWgtMjUuNjA2bDkuMDQxLTMwLjY1MmMxLjI3Ny00LjQyMSAyLjY1MS05Ljk5NCAzLjg3Mi0xNS4yNDUgMS4yMiA1LjI1MSAyLjU5NCAxMC44MjMgMy44NzEgMTUuMjQyem0xNjYuNDc0LTMyLjA5OWgtMTQuNTIzdjk4Ljc4MWgxNC41MjNjMjkuNzc2IDAgNDYuMTc1LTE3LjY3OCA0Ni4xNzUtNDkuNzc2IDAtMzIuMjM5LTE3LjQ5LTQ5LjAwNS00Ni4xNzUtNDkuMDA1ek01MTIgMTEydjI4OGMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjExMmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDQxNmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4ek0yNDUuNDU5IDMzNi4xMzlsLTU3LjA5Ny0xNjhBMTIuMDAxIDEyLjAwMSAwIDAgMCAxNzcgMTYwaC0zNS44OTRhMTIuMDAxIDEyLjAwMSAwIDAgMC0xMS4zNjIgOC4xMzlsLTU3LjA5NyAxNjhDNzAuMDAzIDM0My45MjIgNzUuNzg5IDM1MiA4NC4wMDkgMzUyaDI5LjEzM2ExMiAxMiAwIDAgMCAxMS41MzUtOC42OTNsOC41NzQtMjkuOTA2aDUxLjM2N2w4Ljc5MyAyOS45NzdBMTIgMTIgMCAwIDAgMjA0LjkyNiAzNTJoMjkuMTcyYzguMjIgMCAxNC4wMDYtOC4wNzggMTEuMzYxLTE1Ljg2MXptMTg0LjcwMS04MC41MjVjMC01OC45NzctMzcuOTE5LTk1LjYxNC05OC45Ni05NS42MTRoLTU3LjM2NmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYxNjhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMkgzMzEuMmM2MS4wNDEgMCA5OC45Ni0zNi45MzMgOTguOTYtOTYuMzg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05Ny4xMiAzNjIuNjNjLTguNjktOC42OS00LjE2LTYuMjQtMjUuMTItMTEuODUtOS41MS0yLjU1LTE3Ljg3LTcuNDUtMjUuNDMtMTMuMzJMMS4yIDQ0OC43Yy00LjM5IDEwLjc3IDMuODEgMjIuNDcgMTUuNDMgMjIuMDNsNTIuNjktMi4wMUwxMDUuNTYgNTA3YzggOC40NCAyMi4wNCA1LjgxIDI2LjQzLTQuOTZsNTIuMDUtMTI3LjYyYy0xMC44NCA2LjA0LTIyLjg3IDkuNTgtMzUuMzEgOS41OC0xOS41IDAtMzcuODItNy41OS01MS42MS0yMS4zN3pNMzgyLjggNDQ4LjdsLTQ1LjM3LTExMS4yNGMtNy41NiA1Ljg4LTE1LjkyIDEwLjc3LTI1LjQzIDEzLjMyLTIxLjA3IDUuNjQtMTYuNDUgMy4xOC0yNS4xMiAxMS44NS0xMy43OSAxMy43OC0zMi4xMiAyMS4zNy01MS42MiAyMS4zNy0xMi40NCAwLTI0LjQ3LTMuNTUtMzUuMzEtOS41OEwyNTIgNTAyLjA0YzQuMzkgMTAuNzcgMTguNDQgMTMuNCAyNi40MyA0Ljk2bDM2LjI1LTM4LjI4IDUyLjY5IDIuMDFjMTEuNjIuNDQgMTkuODItMTEuMjcgMTUuNDMtMjIuMDN6TTI2MyAzNDBjMTUuMjgtMTUuNTUgMTcuMDMtMTQuMjEgMzguNzktMjAuMTQgMTMuODktMy43OSAyNC43NS0xNC44NCAyOC40Ny0yOC45OCA3LjQ4LTI4LjQgNS41NC0yNC45NyAyNS45NS00NS43NSAxMC4xNy0xMC4zNSAxNC4xNC0yNS40NCAxMC40Mi0zOS41OC03LjQ3LTI4LjM4LTcuNDgtMjQuNDIgMC01Mi44MyAzLjcyLTE0LjE0LS4yNS0yOS4yMy0xMC40Mi0zOS41OC0yMC40MS0yMC43OC0xOC40Ny0xNy4zNi0yNS45NS00NS43NS0zLjcyLTE0LjE0LTE0LjU4LTI1LjE5LTI4LjQ3LTI4Ljk4LTI3Ljg4LTcuNjEtMjQuNTItNS42Mi00NC45NS0yNi40MS0xMC4xNy0xMC4zNS0yNS0xNC40LTM4Ljg5LTEwLjYxLTI3Ljg3IDcuNi0yMy45OCA3LjYxLTUxLjkgMC0xMy44OS0zLjc5LTI4LjcyLjI1LTM4Ljg5IDEwLjYxLTIwLjQxIDIwLjc4LTE3LjA1IDE4LjgtNDQuOTQgMjYuNDEtMTMuODkgMy43OS0yNC43NSAxNC44NC0yOC40NyAyOC45OC03LjQ3IDI4LjM5LTUuNTQgMjQuOTctMjUuOTUgNDUuNzUtMTAuMTcgMTAuMzUtMTQuMTUgMjUuNDQtMTAuNDIgMzkuNTggNy40NyAyOC4zNiA3LjQ4IDI0LjQgMCA1Mi44Mi0zLjcyIDE0LjE0LjI1IDI5LjIzIDEwLjQyIDM5LjU5IDIwLjQxIDIwLjc4IDE4LjQ3IDE3LjM1IDI1Ljk1IDQ1Ljc1IDMuNzIgMTQuMTQgMTQuNTggMjUuMTkgMjguNDcgMjguOThDMTA0LjYgMzI1Ljk2IDEwNi4yNyAzMjUgMTIxIDM0MGMxMy4yMyAxMy40NyAzMy44NCAxNS44OCA0OS43NCA1LjgyYTM5LjY3NiAzOS42NzYgMCAwIDEgNDIuNTMgMGMxNS44OSAxMC4wNiAzNi41IDcuNjUgNDkuNzMtNS44MnpNOTcuNjYgMTc1Ljk2YzAtNTMuMDMgNDIuMjQtOTYuMDIgOTQuMzQtOTYuMDJzOTQuMzQgNDIuOTkgOTQuMzQgOTYuMDItNDIuMjQgOTYuMDItOTQuMzQgOTYuMDItOTQuMzQtNDIuOTktOTQuMzQtOTYuMDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhYnlDYXJyaWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQuOCAxN2MtMTEuMy0xNy44LTM3LjItMjIuOC01NC05LjRDMzUuMyA1MS45IDAgMTE4IDAgMTkyaDI1NkwxNDQuOCAxN3pNNDk2IDk2aC00OGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2NjRIMGMwIDUwLjYgMjMgOTYuNCA2MC4zIDEzMC43QzI1LjcgMzYzLjYgMCAzOTQuNyAwIDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtOC45LTEuOC0xNy4yLTQuNC0yNS4yIDIxLjYgNS45IDQ0LjYgOS4yIDY4LjQgOS4yczQ2LjktMy4zIDY4LjQtOS4yYy0yLjcgOC00LjQgMTYuMy00LjQgMjUuMiAwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMzcuMy0yNS43LTY4LjQtNjAuMy03Ny4zQzQyNSAzMjAuNCA0NDggMjc0LjYgNDQ4IDIyNHYtNjRoNDhjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6TTgwIDQ2NGMtMTcuNiAwLTMyLTE0LjQtMzItMzJzMTQuNC0zMiAzMi0zMiAzMiAxNC40IDMyIDMyLTE0LjQgMzItMzIgMzJ6bTMyMC0zMmMwIDE3LjYtMTQuNCAzMi0zMiAzMnMtMzItMTQuNC0zMi0zMiAxNC40LTMyIDMyLTMyIDMyIDE0LjQgMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhYnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDE2MGM0NC4yIDAgODAtMzUuOCA4MC04MFMyMzYuMiAwIDE5MiAwcy04MCAzNS44LTgwIDgwIDM1LjggODAgODAgODB6bS01My40IDI0OC44bDI1LjYtMzItNjEuNS01MS4yTDU2LjggMzgzYy0xMS40IDE0LjItMTEuNyAzNC40LS44IDQ5bDQ4IDY0YzcuOSAxMC41IDE5LjkgMTYgMzIgMTYgOC4zIDAgMTYuOC0yLjYgMjQtOCAxNy43LTEzLjIgMjEuMi0zOC4zIDgtNTZsLTI5LjQtMzkuMnptMTQyLjctODMuMmwtNjEuNSA1MS4yIDI1LjYgMzJMMjE2IDQ0OGMtMTMuMiAxNy43LTkuNyA0Mi44IDggNTYgNy4yIDUuNCAxNS42IDggMjQgOCAxMi4yIDAgMjQuMi01LjUgMzItMTZsNDgtNjRjMTAuOS0xNC42IDEwLjYtMzQuOC0uOC00OWwtNDUuOS01Ny40ek0zNzYuNyAxNDVjLTEyLjctMTguMS0zNy42LTIyLjQtNTUuNy05LjhsLTQwLjYgMjguNWMtNTIuNyAzNy0xMjQuMiAzNy0xNzYuOCAwTDYzIDEzNS4zQzQ0LjkgMTIyLjYgMjAgMTI3IDcuMyAxNDUtNS40IDE2My4xLTEgMTg4IDE3IDIwMC43bDQwLjYgMjguNWMxNyAxMS45IDM1LjQgMjAuOSA1NC40IDI3LjlWMjg4aDE2MHYtMzAuOGMxOS03IDM3LjQtMTYgNTQuNC0yNy45bDQwLjYtMjguNWMxOC4xLTEyLjggMjIuNC0zNy43IDkuNy01NS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYWNrc3BhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTc2IDY0SDIwNS4yNkE2My45NyA2My45NyAwIDAgMCAxNjAgODIuNzVMOS4zNyAyMzMuMzdjLTEyLjUgMTIuNS0xMi41IDMyLjc2IDAgNDUuMjVMMTYwIDQyOS4yNWMxMiAxMiAyOC4yOCAxOC43NSA0NS4yNSAxOC43NUg1NzZjMzUuMzUgMCA2NC0yOC42NSA2NC02NFYxMjhjMC0zNS4zNS0yOC42NS02NC02NC02NHptLTg0LjY5IDI1NC4wNmM2LjI1IDYuMjUgNi4yNSAxNi4zOCAwIDIyLjYzbC0yMi42MiAyMi42MmMtNi4yNSA2LjI1LTE2LjM4IDYuMjUtMjIuNjMgMEwzODQgMzAxLjI1bC02Mi4wNiA2Mi4wNmMtNi4yNSA2LjI1LTE2LjM4IDYuMjUtMjIuNjMgMGwtMjIuNjItMjIuNjJjLTYuMjUtNi4yNS02LjI1LTE2LjM4IDAtMjIuNjNMMzM4Ljc1IDI1NmwtNjIuMDYtNjIuMDZjLTYuMjUtNi4yNS02LjI1LTE2LjM4IDAtMjIuNjNsMjIuNjItMjIuNjJjNi4yNS02LjI1IDE2LjM4LTYuMjUgMjIuNjMgMEwzODQgMjEwLjc1bDYyLjA2LTYyLjA2YzYuMjUtNi4yNSAxNi4zOC02LjI1IDIyLjYzIDBsMjIuNjIgMjIuNjJjNi4yNSA2LjI1IDYuMjUgMTYuMzggMCAyMi42M0w0MjkuMjUgMjU2bDYyLjA2IDYyLjA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYWNrd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS41IDI4MC42bDE5MiAxNjBjMjAuNiAxNy4yIDUyLjUgMi44IDUyLjUtMjQuNlY5NmMwLTI3LjQtMzEuOS00MS44LTUyLjUtMjQuNmwtMTkyIDE2MGMtMTUuMyAxMi44LTE1LjMgMzYuNCAwIDQ5LjJ6bTI1NiAwbDE5MiAxNjBjMjAuNiAxNy4yIDUyLjUgMi44IDUyLjUtMjQuNlY5NmMwLTI3LjQtMzEuOS00MS44LTUyLjUtMjQuNmwtMTkyIDE2MGMtMTUuMyAxMi44LTE1LjMgMzYuNCAwIDQ5LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhY29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxOC45MiAzMzYuMzljMzQuODktMzQuODkgNDQuMi01OS43IDU0LjA1LTg2IDEwLjYxLTI4LjI5IDIxLjU5LTU3LjU0IDYxLjM3LTk3LjM0czY5LjA1LTUwLjc3IDk3LjM1LTYxLjM4YzIzLjg4LTkgNDYuNjQtMTcuNjggNzYuNzktNDUuMzdMNDcwLjgxIDguOTFhMzEgMzEgMCAwIDAtNDAuMTgtMi44M2MtMTMuNjQgMTAuMS0yNS4xNSAxNC4zOS00MSAyMC4zQzI0NyA3OS41MiAyMDkuMjYgMTkxLjI5IDIwMC42NSAyMTQuMWMtMjkuNzUgNzguODMtODkuNTUgOTQuNjgtOTguNzIgOTguMDktMjQuODYgOS4yNi01NC43MyAyMC4zOC05MS4wNyA1MC4zNkMtMyAzNzQtMy42MyAzOTUgOS4wNyA0MDcuNjFsMzUuNzYgMzUuNTFDODAgNDEwLjUyIDEwNyA0MDAuMTUgMTMzIDM5MC4zOWMyNi4yNy05Ljg0IDUxLjA2LTE5LjEyIDg1LjkyLTU0em0zNDgtMjMybC0zNS43NS0zNS41MWMtMzUuMTkgMzIuNjMtNjIuMTggNDMtODguMjUgNTIuNzktMjYuMjYgOS44NS01MS4wNiAxOS4xNi04NS45NSA1NHMtNDQuMTkgNTkuNjktNTQgODZDMjkyLjMzIDI5MCAyODEuMzQgMzE5LjIyIDI0MS41NSAzNTlzLTY5IDUwLjczLTk3LjMgNjEuMzJjLTIzLjg2IDktNDYuNjEgMTcuNjYtNzYuNzIgNDUuMzNsMzcuNjggMzcuNDNhMzEgMzEgMCAwIDAgNDAuMTggMi44MmMxMy42LTEwLjA2IDI1LjA5LTE0LjM0IDQwLjk0LTIwLjI0IDE0Mi4yLTUzIDE4MC0xNjQuMSAxODguOTQtMTg3LjY5QzQwNSAyMTkuMTggNDY0LjggMjAzLjMgNDc0IDE5OS44NmMyNC44Ny05LjI3IDU0Ljc0LTIwLjQgOTEuMTEtNTAuNDEgMTMuODktMTEuNCAxNC41Mi0zMi40NSAxLjgyLTQ1LjA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYWN0ZXJpYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzIuMzUsMjI2LjRBMTcuNzEsMTcuNzEsMCwwLDAsMjgxLjQ2LDIwM2wtNC05LjA4YTEyMS4yOSwxMjEuMjksMCwwLDEsMTIuMzYtMy4wOEE4My4zNCw4My4zNCwwLDAsMCwzMjMuNTcsMTc3bDEwLDlhMTcuNzYsMTcuNzYsMCwxLDAsMjMuOTItMjYuMjdsLTkuNzItOC43NmE4My4xMiw4My4xMiwwLDAsMCwxMS42NS00OC4xOGwxMS44NS0zLjUxYTE3LjczLDE3LjczLDAsMSwwLTEwLjE1LTM0bC0xMS4zNCwzLjM2YTg0LDg0LDAsMCwwLTM2LjM4LTM1LjU3bDIuODQtMTAuODVhMTcuOCwxNy44LDAsMCwwLTM0LjQ3LTguOTNsLTIuODIsMTAuNzhhODMuMjUsODMuMjUsMCwwLDAtMTYuNzQsMS4xQzI1MC44MywyNywyNDAsMzAuMjIsMjI5LjEsMzMuMzlsLTMuMzgtOS40NmExNy44LDE3LjgsMCwwLDAtMzMuNTYsMTEuODlsMy40OSw5LjhhMjg2Ljc0LDI4Ni43NCwwLDAsMC00My45NCwyMy41N2wtNi4zMi04LjQzYTE3LjksMTcuOSwwLDAsMC0yNC45NC0zLjZBMTcuNjksMTcuNjksMCwwLDAsMTE2Ljg0LDgybDYuNDUsOC42MWEyODYuNTksMjg2LjU5LDAsMCwwLTM0Ljk1LDM1LjMzbC04LjgyLTYuNDJhMTcuODQsMTcuODQsMCwwLDAtMjQuODksMy44NiwxNy42NiwxNy42NiwwLDAsMCwzLjg4LDI0Ljc3bDguODgsNi40N2EyODYuNiwyODYuNiwwLDAsMC0yMyw0My45MWwtMTAuNDgtMy41OWExNy43MywxNy43MywwLDEsMC0xMS41OSwzMy41MkwzMi42NywyMzJjLTIuNzksMTAtNS43OSwxOS44NC03LjUyLDMwLjIyYTgzLjE2LDgzLjE2LDAsMCwwLS44MiwxOWwtMTEuNTgsMy40M2ExNy43MywxNy43MywwLDEsMCwxMC4xMywzNGwxMS4yNy0zLjMzYTgzLjUxLDgzLjUxLDAsMCwwLDM2LjM5LDM1LjQzbC0yLjg4LDExLjA2YTE3LjgxLDE3LjgxLDAsMCwwLDM0LjQ4LDguOTJsMi44Ny0xMWMxLDAsMi4wNy4yNiwzLjEuMjZhODMuMzksODMuMzksMCwwLDAsNDUuNjUtMTMuODhsOC41OSw4LjhhMTcuNzcsMTcuNzcsMCwwLDAsMjUuNTYtMjQuN2wtOS4xNC05LjM3YTgzLjQxLDgzLjQxLDAsMCwwLDEyLjA4LTMxLjA1LDExOS4wOCwxMTkuMDgsMCwwLDEsMy44Ny0xNS41M2w5LDQuMjJhMTcuNzQsMTcuNzQsMCwxLDAsMTUuMTUtMzIuMDlsLTguOC00LjExYy42Ny0xLDEuMi0yLjA4LDEuOS0zLjA1YTExOS44OSwxMTkuODksMCwwLDEsNy44Ny05LjQxLDEyMS43MywxMjEuNzMsMCwwLDEsMTEuNjUtMTEuNCwxMTkuNDksMTE5LjQ5LDAsMCwxLDkuOTQtNy44MmMxLjEyLS43NywyLjMyLTEuNDIsMy40Ny0yLjE1bDMuOTIsOC44NWExNy44NiwxNy44NiwwLDAsMCwxNi4zMiwxMC41OEExOC4xNCwxOC4xNCwwLDAsMCwyNzIuMzUsMjI2LjRaTTEyOCwyNTZhMzIsMzIsMCwxLDEsMzItMzJBMzIsMzIsMCwwLDEsMTI4LDI1NlptODAtOTZhMTYsMTYsMCwxLDEsMTYtMTZBMTYsMTYsMCwwLDEsMjA4LDE2MFptNDMxLjI2LDQ1LjNhMTcuNzksMTcuNzksMCwwLDAtMTcuMDYtMTIuNjksMTcuNTUsMTcuNTUsMCwwLDAtNS4wOC43NGwtMTEuMjcsMy4zM2E4My42MSw4My42MSwwLDAsMC0zNi4zOS0zNS40M2wyLjg4LTExLjA2YTE3LjgxLDE3LjgxLDAsMCwwLTM0LjQ4LTguOTFsLTIuODcsMTFjLTEsMC0yLjA3LS4yNi0zLjEtLjI2YTgzLjMyLDgzLjMyLDAsMCwwLTQ1LjY1LDEzLjg5bC04LjU5LTguODFhMTcuNzcsMTcuNzcsMCwwLDAtMjUuNTYsMjQuN2w5LjE0LDkuMzdhODMuMjgsODMuMjgsMCwwLDAtMTIuMDgsMzEuMDYsMTE5LjM0LDExOS4zNCwwLDAsMS0zLjg3LDE1LjUybC05LTQuMjJhMTcuNzQsMTcuNzQsMCwxLDAtMTUuMTUsMzIuMDlsOC44LDQuMTFjLS42NywxLTEuMiwyLjA4LTEuODksMy4wNWExMTcuNzEsMTE3LjcxLDAsMCwxLTcuOTQsOS40NywxMTksMTE5LDAsMCwxLTExLjU3LDExLjMzLDEyMS41OSwxMjEuNTksMCwwLDEtMTAsNy44M2MtMS4xMi43Ny0yLjMyLDEuNDItMy40NywyLjE1bC0zLjkyLTguODVhMTcuODYsMTcuODYsMCwwLDAtMTYuMzItMTAuNTgsMTguMTQsMTguMTQsMCwwLDAtNy4xOCwxLjVBMTcuNzEsMTcuNzEsMCwwLDAsMzU4LjU0LDMwOWw0LDkuMDhhMTE4LjcxLDExOC43MSwwLDAsMS0xMi4zNiwzLjA4LDgzLjM0LDgzLjM0LDAsMCwwLTMzLjc3LDEzLjlsLTEwLTlhMTcuNzcsMTcuNzcsMCwxLDAtMjMuOTIsMjYuMjhsOS43Miw4Ljc1YTgzLjEyLDgzLjEyLDAsMCwwLTExLjY1LDQ4LjE4bC0xMS44NiwzLjUxYTE3LjczLDE3LjczLDAsMSwwLDEwLjE2LDM0bDExLjM0LTMuMzZBODQsODQsMCwwLDAsMzI2LjYxLDQ3OWwtMi44NCwxMC44NWExNy44LDE3LjgsMCwwLDAsMzQuNDcsOC45M0wzNjEuMDYsNDg4YTgzLjMsODMuMywwLDAsMCwxNi43NC0xLjFjMTEuMzctMS44OSwyMi4yNC01LjA3LDMzLjEtOC4yNGwzLjM4LDkuNDZhMTcuOCwxNy44LDAsMCwwLDMzLjU2LTExLjg5bC0zLjQ5LTkuNzlhMjg3LjY2LDI4Ny42NiwwLDAsMCw0My45NC0yMy41OGw2LjMyLDguNDNhMTcuODgsMTcuODgsMCwwLDAsMjQuOTMsMy42QTE3LjY3LDE3LjY3LDAsMCwwLDUyMy4xNiw0MzBsLTYuNDUtOC42MWEyODcuMzcsMjg3LjM3LDAsMCwwLDM0Ljk1LTM1LjM0bDguODIsNi40MmExNy43NiwxNy43NiwwLDEsMCwyMS0yOC42M2wtOC44OC02LjQ2YTI4Ny4xNywyODcuMTcsMCwwLDAsMjMtNDMuOTJsMTAuNDgsMy41OWExNy43MywxNy43MywwLDEsMCwxMS41OS0zMy41Mkw2MDcuMzMsMjgwYzIuNzktMTAsNS43OS0xOS44NCw3LjUyLTMwLjIxYTgzLjI3LDgzLjI3LDAsMCwwLC44Mi0xOS4wNWwxMS41OC0zLjQzQTE3LjcsMTcuNywwLDAsMCw2MzkuMjYsMjA1LjNaTTQxNiw0MTZhMzIsMzIsMCwxLDEsMzItMzJBMzIsMzIsMCwwLDEsNDE2LDQxNlpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFjdGVyaXVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMSwxMDIuOTNBMjMuNzYsMjMuNzYsMCwwLDAsNDgxLjQ3LDg3bC0xNS4xMiw0LjQ4YTExMS44NSwxMTEuODUsMCwwLDAtNDguNS00Ny40MmwzLjc5LTE0LjQ3YTIzLjc0LDIzLjc0LDAsMCwwLTQ2LTExLjkxbC0zLjc2LDE0LjM3YTExMS45NCwxMTEuOTQsMCwwLDAtMjIuMzMsMS40NywzODYuNzQsMzg2Ljc0LDAsMCwwLTQ0LjMzLDEwLjQxbC00LjMtMTJhMjMuNzQsMjMuNzQsMCwwLDAtNDQuNzUsMTUuODVsNC4zLDEyLjA1YTM4My40LDM4My40LDAsMCwwLTU4LjY5LDMxLjgzbC04LTEwLjYzYTIzLjg1LDIzLjg1LDAsMCwwLTMzLjI0LTQuOCwyMy41NywyMy41NywwLDAsMC00LjgzLDMzLjA5bDgsMTAuNjNhMzg2LjE0LDM4Ni4xNCwwLDAsMC00Ni43LDQ3LjQ0bC0xMS04YTIzLjY4LDIzLjY4LDAsMSwwLTI4LDM4LjE3bDExLjA5LDguMDZhMzgzLjQ1LDM4My40NSwwLDAsMC0zMC45Miw1OC43NWwtMTIuOTMtNC40M2EyMy42NSwyMy42NSwwLDEsMC0xNS40Nyw0NC42OWwxMyw0LjQ4YTM4NS44MSwzODUuODEsMCwwLDAtOS4zLDQwLjUzQTExMS41OCwxMTEuNTgsMCwwLDAsMzIuNDQsMzc1TDE3LDM3OS41NmEyMy42NCwyMy42NCwwLDAsMCwxMy41MSw0NS4zMWwxNS00LjQ0YTExMS40OSwxMTEuNDksMCwwLDAsNDguNTMsNDcuMjRsLTMuODUsMTQuNzVhMjMuNjYsMjMuNjYsMCwwLDAsMTcsMjguODMsMjQuNywyNC43LDAsMCwwLDYsLjc1LDIzLjczLDIzLjczLDAsMCwwLDIzLTE3LjdMMTQwLDQ3OS42N2MxLjM3LjA1LDIuNzcuMzUsNC4xMy4zNUExMTEuMjIsMTExLjIyLDAsMCwwLDIwNSw0NjEuNWwxMS40NSwxMS43NGEyMy43LDIzLjcsMCwwLDAsMzQuMDgtMzIuOTNsLTEyLjE5LTEyLjVhMTExLDExMSwwLDAsMCwxNi4xMS00MS40LDE1OC42OSwxNTguNjksMCwwLDEsNS4xNi0yMC43MWwxMiw1LjY0YTIzLjY2LDIzLjY2LDAsMSwwLDIwLjE5LTQyLjc5bC0xMS43Mi01LjQ5Yy44OS0xLjMyLDEuNTktMi43NywyLjUyLTQuMDZhMTU3Ljg2LDE1Ny44NiwwLDAsMSwxMC40Ni0xMi40OSwxNTkuNSwxNTkuNSwwLDAsMSwxNS41OS0xNS4yOCwxNjIuMTgsMTYyLjE4LDAsMCwxLDEzLjIzLTEwLjRjMS41LTEsMy4xLTEuODksNC42My0yLjg3bDUuMjMsMTEuOGEyMy43NCwyMy43NCwwLDAsMCw0My40OC0xOS4wOGwtNS4zNi0xMi4xMWExNTguODcsMTU4Ljg3LDAsMCwxLDE2LjQ5LTQuMSwxMTEsMTExLDAsMCwwLDQ1LTE4LjU0bDEzLjMzLDEyYTIzLjY5LDIzLjY5LDAsMSwwLDMxLjg4LTM1bC0xMi45NC0xMS42N0ExMTAuODMsMTEwLjgzLDAsMCwwLDQ3OS4yMSwxMzdMNDk1LDEzMi4zMkEyMy42MSwyMy42MSwwLDAsMCw1MTEsMTAyLjkzWk0xNjAsMzY4YTQ4LDQ4LDAsMSwxLDQ4LTQ4QTQ4LDQ4LDAsMCwxLDE2MCwzNjhabTgwLTEzNmEyNCwyNCwwLDEsMSwyNC0yNEEyNCwyNCwwLDAsMSwyNDAsMjMyWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYWhhaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYuMjUgMjAyLjUybC0xMTAtMTUuNDQgNDEuODItMTA0LjM0YzYuNjctMTYuNjQtMTEuNi0zMi4xOC0yNi41OS0yMi42M0wzMDcuNDQgMTIwIDI3My4zNSAxMi44MkMyNzAuNjQgNC4yNyAyNjMuMzIgMCAyNTYgMGMtNy4zMiAwLTE0LjY0IDQuMjctMTcuMzUgMTIuODJsLTM0LjA5IDEwNy4xOS05NC4wNC01OS44OWMtMTQuOTktOS41NS0zMy4yNSA1Ljk5LTI2LjU5IDIyLjYzbDQxLjgyIDEwNC4zNC0xMTAgMTUuNDNjLTE3LjU0IDIuNDYtMjEuNjggMjYuMjctNi4wMyAzNC42N2w5OC4xNiA1Mi42Ni03NC40OCA4My41NGMtMTAuOTIgMTIuMjUtMS43MiAzMC45MyAxMy4yOSAzMC45MyAxLjMxIDAgMi42Ny0uMTQgNC4wNy0uNDVsMTA4LjU3LTIzLjY1LTQuMTEgMTEyLjU1Yy0uNDMgMTEuNjUgOC44NyAxOS4yMiAxOC40MSAxOS4yMiA1LjE1IDAgMTAuMzktMi4yMSAxNC4yLTcuMThsNjguMTgtODguOSA2OC4xOCA4OC45YzMuODEgNC45NyA5LjA0IDcuMTggMTQuMiA3LjE4IDkuNTQgMCAxOC44NC03LjU3IDE4LjQxLTE5LjIybC00LjExLTExMi41NSAxMDguNTcgMjMuNjVjMTcuMzYgMy43NiAyOS4yMS0xNy4yIDE3LjM1LTMwLjQ5bC03NC40OC04My41NCA5OC4xNi01Mi42NmMxNS42NC04LjM5IDExLjUtMzIuMi02LjA0LTM0LjY2ek0zMzguNTEgMzExLjY4bC01MS44OS0xMS4zIDEuOTcgNTMuNzlMMjU2IDMxMS42OGwtMzIuNTkgNDIuNDkgMS45Ni01My43OS01MS44OSAxMS4zIDM1LjYtMzkuOTMtNDYuOTItMjUuMTcgNTIuNTctNy4zOC0xOS45OS00OS44NyA0NC45NSAyOC42MkwyNTYgMTY2LjcybDE2LjI5IDUxLjIzIDQ0Ljk1LTI4LjYyLTE5Ljk5IDQ5Ljg3IDUyLjU3IDcuMzgtNDYuOTIgMjUuMTcgMzUuNjEgMzkuOTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhbGFuY2VTY2FsZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI4IDQ0OEgzNTJWMTUzLjI1YzIwLjQyLTguOTQgMzYuMS0yNi4yMiA0My4zOC00Ny40N2wxMzItNDQuMjZjOC4zOC0yLjgxIDEyLjg5LTExLjg4IDEwLjA4LTIwLjI2bC0xMC4xNy0zMC4zNEM1MjQuNDggMi41NCA1MTUuNDEtMS45NyA1MDcuMDMuODRMMzg5LjExIDQwLjM3QzM3NS4zIDE2LjM2IDM0OS42OSAwIDMyMCAwYy00NC4xOCAwLTgwIDM1LjgyLTgwIDgwIDAgMy40My41OSA2LjcxIDEuMDEgMTAuMDNsLTEyOC4zOSA0My4wNWMtOC4zOCAyLjgxLTEyLjg5IDExLjg4LTEwLjA4IDIwLjI2bDEwLjE3IDMwLjM0YzIuODEgOC4zOCAxMS44OCAxMi44OSAyMC4yNiAxMC4wOGwxNDIuMDUtNDcuNjNjNC4wNyAyLjc3IDguNDMgNS4xMiAxMi45OSA3LjEyVjQ5NmMwIDguODQgNy4xNiAxNiAxNiAxNmgyMjRjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYy0uMDEtOC44NC03LjE3LTE2LTE2LjAxLTE2em0xMTEuOTgtMTQ0YzAtMTYuMTggMS4zNC04LjczLTg1LjA1LTE4MS41MS0xNy42NS0zNS4yOS02OC4xOS0zNS4zNi04NS44NyAwLTg3LjEyIDE3NC4yNi04NS4wNCAxNjUuODQtODUuMDQgMTgxLjUxSDM4NGMwIDQ0LjE4IDU3LjMxIDgwIDEyOCA4MHMxMjgtMzUuODIgMTI4LTgwaC0uMDJ6TTQ0MCAyODhsNzItMTQ0IDcyIDE0NEg0NDB6bS0yNjkuMDctMzcuNTFjLTE3LjY1LTM1LjI5LTY4LjE5LTM1LjM2LTg1Ljg3IDBDLTIuMDYgNDI0Ljc1LjAyIDQxNi4zMy4wMiA0MzJIMGMwIDQ0LjE4IDU3LjMxIDgwIDEyOCA4MHMxMjgtMzUuODIgMTI4LTgwaC0uMDJjMC0xNi4xOCAxLjM0LTguNzMtODUuMDUtMTgxLjUxek01NiA0MTZsNzItMTQ0IDcyIDE0NEg1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFsYW5jZVNjYWxlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgNDY0djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDIyNGM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYxNTMuMjVjNC41Ni0yIDguOTItNC4zNSAxMi45OS03LjEybDE0Mi4wNSA0Ny42M2M4LjM4IDIuODEgMTcuNDUtMS43MSAyMC4yNi0xMC4wOGwxMC4xNy0zMC4zNGMyLjgxLTguMzgtMS43MS0xNy40NS0xMC4wOC0yMC4yNmwtMTI4LjQtNDMuMDVjLjQyLTMuMzIgMS4wMS02LjYgMS4wMS0xMC4wMyAwLTQ0LjE4LTM1LjgyLTgwLTgwLTgwLTI5LjY5IDAtNTUuMyAxNi4zNi02OS4xMSA0MC4zN0wxMzIuOTYuODNjLTguMzgtMi44MS0xNy40NSAxLjcxLTIwLjI2IDEwLjA4bC0xMC4xNyAzMC4zNGMtMi44MSA4LjM4IDEuNzEgMTcuNDUgMTAuMDggMjAuMjZsMTMyIDQ0LjI2YzcuMjggMjEuMjUgMjIuOTYgMzguNTQgNDMuMzggNDcuNDdWNDQ4SDExMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ6TTAgMzA0YzAgNDQuMTggNTcuMzEgODAgMTI4IDgwczEyOC0zNS44MiAxMjgtODBoLS4wMmMwLTE1LjY3IDIuMDgtNy4yNS04NS4wNS0xODEuNTEtMTcuNjgtMzUuMzYtNjguMjItMzUuMjktODUuODcgMEMtMS4zMiAyOTUuMjcuMDIgMjg3LjgyLjAyIDMwNEgwem01Ni0xNmw3Mi0xNDQgNzIgMTQ0SDU2em0zMjguMDIgMTQ0SDM4NGMwIDQ0LjE4IDU3LjMxIDgwIDEyOCA4MHMxMjgtMzUuODIgMTI4LTgwaC0uMDJjMC0xNS42NyAyLjA4LTcuMjUtODUuMDUtMTgxLjUxLTE3LjY4LTM1LjM2LTY4LjIyLTM1LjI5LTg1Ljg3IDAtODYuMzggMTcyLjc4LTg1LjA0IDE2NS4zMy04NS4wNCAxODEuNTF6TTQ0MCA0MTZsNzItMTQ0IDcyIDE0NEg0NDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhbGFuY2VTY2FsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMzM2aC0uMDJjMC0xNi4xOCAxLjM0LTguNzMtODUuMDUtMTgxLjUxLTE3LjY1LTM1LjI5LTY4LjE5LTM1LjM2LTg1Ljg3IDBDLTIuMDYgMzI4Ljc1LjAyIDMyMC4zMy4wMiAzMzZIMGMwIDQ0LjE4IDU3LjMxIDgwIDEyOCA4MHMxMjgtMzUuODIgMTI4LTgwek0xMjggMTc2bDcyIDE0NEg1Nmw3Mi0xNDR6bTUxMS45OCAxNjBjMC0xNi4xOCAxLjM0LTguNzMtODUuMDUtMTgxLjUxLTE3LjY1LTM1LjI5LTY4LjE5LTM1LjM2LTg1Ljg3IDAtODcuMTIgMTc0LjI2LTg1LjA0IDE2NS44NC04NS4wNCAxODEuNTFIMzg0YzAgNDQuMTggNTcuMzEgODAgMTI4IDgwczEyOC0zNS44MiAxMjgtODBoLS4wMnpNNDQwIDMyMGw3Mi0xNDQgNzIgMTQ0SDQ0MHptODggMTI4SDM1MlYxNTMuMjVjMjMuNTEtMTAuMjkgNDEuMTYtMzEuNDggNDYuMzktNTcuMjVINTI4YzguODQgMCAxNi03LjE2IDE2LTE2VjQ4YzAtOC44NC03LjE2LTE2LTE2LTE2SDM4My42NEMzNjkuMDQgMTIuNjggMzQ2LjA5IDAgMzIwIDBzLTQ5LjA0IDEyLjY4LTYzLjY0IDMySDExMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTI5LjYxYzUuMjMgMjUuNzYgMjIuODcgNDYuOTYgNDYuMzkgNTcuMjVWNDQ4SDExMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDE2YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOS4wMzQgOCA4IDExOS4wMzMgOCAyNTZzMTExLjAzNCAyNDggMjQ4IDI0OCAyNDgtMTExLjAzNCAyNDgtMjQ4UzM5Mi45NjcgOCAyNTYgOHptMTMwLjEwOCAxMTcuODkyYzY1LjQ0OCA2NS40NDggNzAgMTY1LjQ4MSAyMC42NzcgMjM1LjYzN0wxNTAuNDcgMTA1LjIxNmM3MC4yMDQtNDkuMzU2IDE3MC4yMjYtNDQuNzM1IDIzNS42MzggMjAuNjc2ek0xMjUuODkyIDM4Ni4xMDhjLTY1LjQ0OC02NS40NDgtNzAtMTY1LjQ4MS0yMC42NzctMjM1LjYzN0wzNjEuNTMgNDA2Ljc4NGMtNzAuMjAzIDQ5LjM1Ni0xNzAuMjI2IDQ0LjczNi0yMzUuNjM4LTIwLjY3NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFuZEFpZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDE2MHYxOTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRoOTZWOTZINjRjLTM1LjMgMC02NCAyOC43LTY0IDY0em01NzYtNjRoLTk2djMyMGg5NmMzNS4zIDAgNjQtMjguNyA2NC02NFYxNjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTE5MiA0MTZoMjU2Vjk2SDE5MnYzMjB6bTE3Ni0yMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjQtMjQtMTAuNy0yNC0yNCAxMC43LTI0IDI0LTI0em0wIDk2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHptLTk2LTk2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHptMCA5NmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNC0yNC0xMC43LTI0LTI0IDEwLjctMjQgMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhcmNvZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0NDhWNjRoMTh2Mzg0SDB6bTI2Ljg1Ny0uMjczVjY0SDM2djM4My43MjdoLTkuMTQzem0yNy4xNDMgMFY2NGg4Ljg1N3YzODMuNzI3SDU0em00NC44NTcgMFY2NGg4Ljg1N3YzODMuNzI3aC04Ljg1N3ptMzYgMFY2NGgxNy43MTR2MzgzLjcyN2gtMTcuNzE0em00NC44NTcgMFY2NGg4Ljg1N3YzODMuNzI3aC04Ljg1N3ptMTggMFY2NGg4Ljg1N3YzODMuNzI3aC04Ljg1N3ptMTggMFY2NGg4Ljg1N3YzODMuNzI3aC04Ljg1N3ptMzUuNzE1IDBWNjRoMTh2MzgzLjcyN2gtMTh6bTQ0Ljg1NyAwVjY0aDE4djM4My43MjdoLTE4em0zNS45OTkgMFY2NGgxOC4wMDF2MzgzLjcyN2gtMTguMDAxem0zNi4wMDEgMFY2NGgxOC4wMDF2MzgzLjcyN2gtMTguMDAxem0yNi44NTcgMFY2NGgxOHYzODMuNzI3aC0xOHptNDUuMTQzIDBWNjRoMjYuODU3djM4My43MjdoLTI2Ljg1N3ptMzUuNzE0IDBWNjRoOS4xNDN2MzgzLjcyN0g0NzZ6bTE4IC4yNzNWNjRoMTh2Mzg0aC0xOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxMzJoNDE2YzguODM3IDAgMTYtNy4xNjMgMTYtMTZWNzZjMC04LjgzNy03LjE2My0xNi0xNi0xNkgxNkM3LjE2MyA2MCAwIDY3LjE2MyAwIDc2djQwYzAgOC44MzcgNy4xNjMgMTYgMTYgMTZ6bTAgMTYwaDQxNmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2di00MGMwLTguODM3LTcuMTYzLTE2LTE2LTE2SDE2Yy04LjgzNyAwLTE2IDcuMTYzLTE2IDE2djQwYzAgOC44MzcgNy4xNjMgMTYgMTYgMTZ6bTAgMTYwaDQxNmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2di00MGMwLTguODM3LTcuMTYzLTE2LTE2LTE2SDE2Yy04LjgzNyAwLTE2IDcuMTYzLTE2IDE2djQwYzAgOC44MzcgNy4xNjMgMTYgMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhc2ViYWxsQmFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjguNSAzNjMuOWwyOC44LTEzLjljMTEuMSAyMi45IDI2IDQzLjIgNDQuMSA2MC45IDM0LTQyLjUgNTQuNS05Ni4zIDU0LjUtMTU0LjkgMC01OC41LTIwLjQtMTEyLjItNTQuMi0xNTQuNi0xNy44IDE3LjMtMzIuNiAzNy4xLTQzLjYgNTkuNWwtMjguNy0xNC4xYzEyLjgtMjYgMzAtNDkgNTAuOC02OUMzNzUuNiAzNC43IDMxNSA4IDI0OCA4IDE4MS4xIDggMTIwLjUgMzQuNiA3NS45IDc3LjdjMjAuNyAxOS45IDM3LjkgNDIuOSA1MC43IDY4LjhsLTI4LjcgMTQuMWMtMTEtMjIuMy0yNS43LTQyLjEtNDMuNS01OS40QzIwLjQgMTQzLjcgMCAxOTcuNCAwIDI1NmMwIDU4LjYgMjAuNCAxMTIuMyA1NC40IDE1NC43IDE4LjItMTcuNyAzMy4yLTM4IDQ0LjMtNjFsMjguOCAxMy45Yy0xMi45IDI2LjctMzAuMyA1MC4zLTUxLjUgNzAuNyA0NC41IDQzLjEgMTA1LjEgNjkuNyAxNzIgNjkuNyA2Ni44IDAgMTI3LjMtMjYuNSAxNzEuOS02OS41LTIxLjEtMjAuNC0zOC41LTQzLjktNTEuNC03MC42em0tMjI4LjMtMzJsLTMwLjUtOS44YzE0LjktNDYuNCAxMi43LTkzLjgtLjYtMTM0bDMwLjQtMTBjMTUgNDUuNiAxOCA5OS45LjcgMTUzLjh6bTIxNi4zLTE1My40bDMwLjQgMTBjLTEzLjIgNDAuMS0xNS41IDg3LjUtLjYgMTM0bC0zMC41IDkuOGMtMTcuMy01NC0xNC4zLTEwOC4zLjctMTUzLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhc2tldGJhbGxCYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxMi4zIDEwLjNjLTQzLjggNi4zLTg2LjIgMjQuMS0xMjIuMiA1My44bDc3LjQgNzcuNGMyNy44LTM1LjggNDMuMy04MS4yIDQ0LjgtMTMxLjJ6TTI0OCAyMjJMNDA1LjkgNjQuMWMtNDIuNC0zNS05My42LTUzLjUtMTQ1LjUtNTYuMS0xLjIgNjMuOS0yMS41IDEyMi4zLTU4LjcgMTY3LjdMMjQ4IDIyMnpNNTYuMSA5OC4xYy0yOS43IDM2LTQ3LjUgNzguNC01My44IDEyMi4yIDUwLTEuNSA5NS41LTE3IDEzMS4yLTQ0LjhMNTYuMSA5OC4xem0yNzIuMiAyMDQuMmM0NS4zLTM3LjEgMTAzLjctNTcuNCAxNjcuNy01OC43LTIuNi01MS45LTIxLjEtMTAzLjEtNTYuMS0xNDUuNUwyODIgMjU2bDQ2LjMgNDYuM3pNMjQ4IDI5MEw5MC4xIDQ0Ny45YzQyLjQgMzQuOSA5My42IDUzLjUgMTQ1LjUgNTYuMSAxLjMtNjQgMjEuNi0xMjIuNCA1OC43LTE2Ny43TDI0OCAyOTB6bTE5MS45IDEyMy45YzI5LjctMzYgNDcuNS03OC40IDUzLjgtMTIyLjItNTAuMSAxLjYtOTUuNSAxNy4xLTEzMS4yIDQ0LjhsNzcuNCA3Ny40ek0xNjcuNyAyMDkuN0MxMjIuMyAyNDYuOSA2My45IDI2Ny4zIDAgMjY4LjRjMi42IDUxLjkgMjEuMSAxMDMuMSA1Ni4xIDE0NS41TDIxNCAyNTZsLTQ2LjMtNDYuM3ptMTE2IDI5MmM0My44LTYuMyA4Ni4yLTI0LjEgMTIyLjItNTMuOGwtNzcuNC03Ny40Yy0yNy43IDM1LjctNDMuMiA4MS4yLTQ0LjggMTMxLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhdGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIsMzg0YTk1LjQsOTUuNCwwLDAsMCwzMiw3MS4wOVY0OTZhMTYsMTYsMCwwLDAsMTYsMTZoMzJhMTYsMTYsMCwwLDAsMTYtMTZWNDgwSDM4NHYxNmExNiwxNiwwLDAsMCwxNiwxNmgzMmExNiwxNiwwLDAsMCwxNi0xNlY0NTUuMDlBOTUuNCw5NS40LDAsMCwwLDQ4MCwzODRWMzM2SDMyWk00OTYsMjU2SDgwVjY5LjI1YTIxLjI2LDIxLjI2LDAsMCwxLDM2LjI4LTE1bDE5LjI3LDE5LjI2Yy0xMy4xMywyOS44OC03LjYxLDU5LjExLDguNjIsNzkuNzNsLS4xNy4xN0ExNiwxNiwwLDAsMCwxNDQsMTc2bDExLjMxLDExLjMxYTE2LDE2LDAsMCwwLDIyLjYzLDBMMjgzLjMxLDgxLjk0YTE2LDE2LDAsMCwwLDAtMjIuNjNMMjcyLDQ4YTE2LDE2LDAsMCwwLTIyLjYyLDBsLS4xNy4xN2MtMjAuNjItMTYuMjMtNDkuODMtMjEuNzUtNzkuNzMtOC42MkwxNTAuMjIsMjAuMjhBNjkuMjUsNjkuMjUsMCwwLDAsMzIsNjkuMjVWMjU2SDE2QTE2LDE2LDAsMCwwLDAsMjcydjE2YTE2LDE2LDAsMCwwLDE2LDE2SDQ5NmExNiwxNiwwLDAsMCwxNi0xNlYyNzJBMTYsMTYsMCwwLDAsNDk2LDI1NlpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmF0dGVyeUVtcHR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NCAxNjB2NjRoMzJ2NjRoLTMydjY0SDY0VjE2MGg0ODBtMTYtNjRINDhjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2MjI0YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNTEyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDh2LTE2aDhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjE4NGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRoLTh2LTE2YzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhdHRlcnlGdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NCAxNjB2NjRoMzJ2NjRoLTMydjY0SDY0VjE2MGg0ODBtMTYtNjRINDhjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2MjI0YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNTEyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDh2LTE2aDhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjE4NGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRoLTh2LTE2YzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6bS00OCA5Nkg5NnYxMjhoNDE2VjE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmF0dGVyeUhhbGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQ0IDE2MHY2NGgzMnY2NGgtMzJ2NjRINjRWMTYwaDQ4MG0xNi02NEg0OGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHYyMjRjMCAyNi41MSAyMS40OSA0OCA0OCA0OGg1MTJjMjYuNTEgMCA0OC0yMS40OSA0OC00OHYtMTZoOGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTg0YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNGgtOHYtMTZjMC0yNi41MS0yMS40OS00OC00OC00OHptLTI0MCA5Nkg5NnYxMjhoMjI0VjE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmF0dGVyeVF1YXJ0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQ0IDE2MHY2NGgzMnY2NGgtMzJ2NjRINjRWMTYwaDQ4MG0xNi02NEg0OGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHYyMjRjMCAyNi41MSAyMS40OSA0OCA0OCA0OGg1MTJjMjYuNTEgMCA0OC0yMS40OSA0OC00OHYtMTZoOGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTg0YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNGgtOHYtMTZjMC0yNi41MS0yMS40OS00OC00OC00OHptLTMzNiA5Nkg5NnYxMjhoMTI4VjE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmF0dGVyeVRocmVlUXVhcnRlcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQ0IDE2MHY2NGgzMnY2NGgtMzJ2NjRINjRWMTYwaDQ4MG0xNi02NEg0OGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHYyMjRjMCAyNi41MSAyMS40OSA0OCA0OCA0OGg1MTJjMjYuNTEgMCA0OC0yMS40OSA0OC00OHYtMTZoOGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTg0YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNGgtOHYtMTZjMC0yNi41MS0yMS40OS00OC00OC00OHptLTE0NCA5Nkg5NnYxMjhoMzIwVjE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiAyNTZjNDQuMTEgMCA4MC0zNS44OSA4MC04MHMtMzUuODktODAtODAtODAtODAgMzUuODktODAgODAgMzUuODkgODAgODAgODB6bTM1Mi0xMjhIMzA0Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNDRINjRWODBjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZDNy4xNiA2NCAwIDcxLjE2IDAgODB2MzUyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2di00OGg1MTJ2NDhjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZWMjQwYzAtNjEuODYtNTAuMTQtMTEyLTExMi0xMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJlZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY4IDk2aC00OFY1NmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjRDMTAuNzQ1IDMyIDAgNDIuNzQ1IDAgNTZ2NDAwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgyNzJjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di00Mi4xMWw4MC42MDYtMzUuOTc3QzQyOS4zOTYgMzY1LjA2MyA0NDggMzM2LjM4OCA0NDggMzA0Ljg2VjE3NmMwLTQ0LjExMi0zNS44ODgtODAtODAtODB6bTE2IDIwOC44NmExNi4wMTggMTYuMDE4IDAgMCAxLTkuNDc5IDE0LjYxMUwzMjAgMzQzLjgwNVYxNjBoNDhjOC44MjIgMCAxNiA3LjE3OCAxNiAxNnYxMjguODZ6TTIwOCAzODRjLTguODM2IDAtMTYtNy4xNjQtMTYtMTZWMTQ0YzAtOC44MzYgNy4xNjQtMTYgMTYtMTZzMTYgNy4xNjQgMTYgMTZ2MjI0YzAgOC44MzYtNy4xNjQgMTYtMTYgMTZ6bS05NiAwYy04LjgzNiAwLTE2LTcuMTY0LTE2LTE2VjE0NGMwLTguODM2IDcuMTY0LTE2IDE2LTE2czE2IDcuMTY0IDE2IDE2djIyNGMwIDguODM2LTcuMTY0IDE2LTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCZWxsU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjMzLjgyIDQ1OC4xbC05MC42Mi03MC4wNWMuMTktMS4zOC44LTIuNjYuOC00LjA2LjA1LTcuNTUtMi42MS0xNS4yNy04LjYxLTIxLjcxLTE5LjMyLTIwLjc2LTU1LjQ3LTUxLjk5LTU1LjQ3LTE1NC4yOSAwLTc3LjctNTQuNDgtMTM5LjktMTI3Ljk0LTE1NS4xNlYzMmMwLTE3LjY3LTE0LjMyLTMyLTMxLjk4LTMycy0zMS45OCAxNC4zMy0zMS45OCAzMnYyMC44NGMtNDAuMzMgOC4zOC03NC42NiAzMS4wNy05Ny41OSA2Mi41N0w0NS40NyAzLjM3QzM4LjQ5LTIuMDUgMjguNDMtLjggMjMuMDEgNi4xOEwzLjM3IDMxLjQ1Qy0yLjA1IDM4LjQyLS44IDQ4LjQ3IDYuMTggNTMuOWw1ODguMzUgNDU0LjczYzYuOTggNS40MyAxNy4wMyA0LjE3IDIyLjQ2LTIuODFsMTkuNjQtMjUuMjdjNS40Mi02Ljk3IDQuMTctMTcuMDItMi44MS0yMi40NXpNMTU3LjIzIDI1MS41NGMtOC42MSA2Ny45Ni0zNi40MSA5My4zMy01Mi42MiAxMTAuNzUtNiA2LjQ1LTguNjYgMTQuMTYtOC42MSAyMS43MS4xMSAxNi40IDEyLjk4IDMyIDMyLjEgMzJoMjQxLjkyTDE1Ny4yMyAyNTEuNTR6TTMyMCA1MTJjMzUuMzIgMCA2My45Ny0yOC42NSA2My45Ny02NEgyNTYuMDNjMCAzNS4zNSAyOC42NSA2NCA2My45NyA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgNTEyYzM1LjMyIDAgNjMuOTctMjguNjUgNjMuOTctNjRIMTYwLjAzYzAgMzUuMzUgMjguNjUgNjQgNjMuOTcgNjR6bTIxNS4zOS0xNDkuNzFjLTE5LjMyLTIwLjc2LTU1LjQ3LTUxLjk5LTU1LjQ3LTE1NC4yOSAwLTc3LjctNTQuNDgtMTM5LjktMTI3Ljk0LTE1NS4xNlYzMmMwLTE3LjY3LTE0LjMyLTMyLTMxLjk4LTMycy0zMS45OCAxNC4zMy0zMS45OCAzMnYyMC44NEMxMTguNTYgNjguMSA2NC4wOCAxMzAuMyA2NC4wOCAyMDhjMCAxMDIuMy0zNi4xNSAxMzMuNTMtNTUuNDcgMTU0LjI5LTYgNi40NS04LjY2IDE0LjE2LTguNjEgMjEuNzEuMTEgMTYuNCAxMi45OCAzMiAzMi4xIDMyaDM4My44YzE5LjEyIDAgMzItMTUuNiAzMi4xLTMyIC4wNS03LjU1LTIuNjEtMTUuMjctOC42MS0yMS43MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmV6aWVyQ3VydmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY4IDMyaC05NmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY5NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDk2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpNMjA4IDg4aC04NC43NUMxMTMuNzUgNjQuNTYgOTAuODQgNDggNjQgNDggMjguNjYgNDggMCA3Ni42NSAwIDExMnMyOC42NiA2NCA2NCA2NGMyNi44NCAwIDQ5Ljc1LTE2LjU2IDU5LjI1LTQwaDc5LjczYy01NS4zNyAzMi41Mi05NS44NiA4Ny4zMi0xMDkuNTQgMTUyaDQ5LjRjMTEuMy00MS42MSAzNi43Ny03Ny4yMSA3MS4wNC0xMDEuNTYtMy43LTguMDgtNS44OC0xNi45OS01Ljg4LTI2LjQ0Vjg4em0tNDggMjMySDY0Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjk2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoOTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtOTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpNNTc2IDQ4Yy0yNi44NCAwLTQ5Ljc1IDE2LjU2LTU5LjI1IDQwSDQzMnY3MmMwIDkuNDUtMi4xOSAxOC4zNi01Ljg4IDI2LjQ0IDM0LjI3IDI0LjM1IDU5Ljc0IDU5Ljk1IDcxLjA0IDEwMS41Nmg0OS40Yy0xMy42OC02NC42OC01NC4xNy0xMTkuNDgtMTA5LjU0LTE1Mmg3OS43M2M5LjUgMjMuNDQgMzIuNDEgNDAgNTkuMjUgNDAgMzUuMzQgMCA2NC0yOC42NSA2NC02NHMtMjguNjYtNjQtNjQtNjR6bTAgMjcyaC05NmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY5NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDk2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTk2YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJpYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAzNTguNFYyNS42YzAtMTYtOS42LTI1LjYtMjUuNi0yNS42SDk2QzQxLjYgMCAwIDQxLjYgMCA5NnYzMjBjMCA1NC40IDQxLjYgOTYgOTYgOTZoMzI2LjRjMTIuOCAwIDI1LjYtOS42IDI1LjYtMjUuNnYtMTZjMC02LjQtMy4yLTEyLjgtOS42LTE5LjItMy4yLTE2LTMuMi02MC44IDAtNzMuNiA2LjQtMy4yIDkuNi05LjYgOS42LTE5LjJ6TTE0NCAxNDRjMC04Ljg0IDcuMTYtMTYgMTYtMTZoNDhWODBjMC04Ljg0IDcuMTYtMTYgMTYtMTZoMzJjOC44NCAwIDE2IDcuMTYgMTYgMTZ2NDhoNDhjOC44NCAwIDE2IDcuMTYgMTYgMTZ2MzJjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTQ4djExMmMwIDguODQtNy4xNiAxNi0xNiAxNmgtMzJjLTguODQgMC0xNi03LjE2LTE2LTE2VjE5MmgtNDhjLTguODQgMC0xNi03LjE2LTE2LTE2di0zMnptMjM2LjggMzA0SDk2Yy0xOS4yIDAtMzItMTIuOC0zMi0zMnMxNi0zMiAzMi0zMmgyODQuOHY2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmljeWNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIuNTA5IDE5Mi4wMDFjLTE2LjM3My0uMDY0LTMyLjAzIDIuOTU1LTQ2LjQzNiA4LjQ5NWwtNzcuNjgtMTI1LjE1M0EyNCAyNCAwIDAgMCAzNjguMDAxIDY0aC02NGMtOC44MzcgMC0xNiA3LjE2My0xNiAxNnYxNmMwIDguODM3IDcuMTYzIDE2IDE2IDE2aDUwLjY0OWwxNC44OTYgMjRIMjU2LjAwMnYtMTZjMC04LjgzNy03LjE2My0xNi0xNi0xNmgtODcuNDU5Yy0xMy40NDEgMC0yNC43NzcgMTAuOTk5LTI0LjUzNiAyNC40MzcuMjMyIDEzLjA0NCAxMC44NzYgMjMuNTYzIDIzLjk5NSAyMy41NjNoNDguNzI2bC0yOS40MTcgNDcuNTJjLTEzLjQzMy00LjgzLTI3LjkwNC03LjQ4My00Mi45OTItNy41MkM1OC4wOTQgMTkxLjgzLjQxMiAyNDkuMDEyLjAwMiAzMTkuMjM2LS40MTMgMzkwLjI3OSA1Ny4wNTUgNDQ4IDEyOC4wMDIgNDQ4YzU5LjY0MiAwIDEwOS43NTgtNDAuNzkzIDEyMy45NjctOTZoNTIuMDMzYTI0IDI0IDAgMCAwIDIwLjQwNi0xMS4zNjdMNDEwLjM3IDIwMS43N2wxNC45MzggMjQuMDY3Yy0yNS40NTUgMjMuNDQ4LTQxLjM4NSA1Ny4wODEtNDEuMzA3IDk0LjQzNy4xNDUgNjguODMzIDU3Ljg5OSAxMjcuMDUxIDEyNi43MjkgMTI3LjcxOSA3MC42MDYuNjg1IDEyOC4xODEtNTUuODAzIDEyOS4yNTUtMTI1Ljk5NiAxLjA4Ni03MC45NDEtNTYuNTI2LTEyOS43Mi0xMjcuNDc2LTEyOS45OTZ6TTE4Ni43NSAyNjUuNzcyYzkuNzI3IDEwLjUyOSAxNi42NzMgMjMuNjYxIDE5LjY0MiAzOC4yMjhoLTQzLjMwNmwyMy42NjQtMzguMjI4ek0xMjguMDAyIDQwMGMtNDQuMTEyIDAtODAtMzUuODg4LTgwLTgwczM1Ljg4OC04MCA4MC04MGM1Ljg2OSAwIDExLjU4Ni42NTMgMTcuMDk5IDEuODU5bC00NS41MDUgNzMuNTA5Qzg5LjcxNSAzMzEuMzI3IDEwMS4yMTMgMzUyIDEyMC4wMDIgMzUyaDgxLjNjLTEyLjM3IDI4LjIyNS00MC41NjIgNDgtNzMuMyA0OHptMTYyLjYzLTk2aC0zNS42MjRjLTMuOTYtMzEuNzU2LTE5LjU1Ni01OS44OTQtNDIuMzgzLTgwLjAyNkwyMzcuMzcxIDE4NGgxMjcuNTQ3bC03NC4yODYgMTIwem0yMTcuMDU3IDk1Ljg4NmMtNDEuMDM2LTIuMTY1LTc0LjA0OS0zNS42OTItNzUuNjI3LTc2Ljc1NS0uODEyLTIxLjEyMSA2LjYzMy00MC41MTggMTkuMzM1LTU1LjI2M2w0NC40MzMgNzEuNTg2YzQuNjYgNy41MDggMTQuNTI0IDkuODE2IDIyLjAzMiA1LjE1NmwxMy41OTQtOC40MzdjNy41MDgtNC42NiA5LjgxNy0xNC41MjQgNS4xNTYtMjIuMDMybC00NC40NjgtNzEuNjQzYTc5LjkwMSA3OS45MDEgMCAwIDEgMTkuODU4LTIuNDk3YzQ0LjExMiAwIDgwIDM1Ljg4OCA4MCA4MC0uMDAxIDQ1LjU0LTM4LjI1MiA4Mi4zMTYtODQuMzEzIDc5Ljg4NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmlraW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCA5NmE0OCA0OCAwIDEgMC00OC00OCA0OCA0OCAwIDAgMCA0OCA0OHptLTQgMTIxYTMxLjkgMzEuOSAwIDAgMCAyMCA3aDY0YTMyIDMyIDAgMCAwIDAtNjRoLTUyLjc4TDM1NiAxMDNhMzEuOTQgMzEuOTQgMCAwIDAtNDAuODEuNjhsLTExMiA5NmEzMiAzMiAwIDAgMCAzLjA4IDUwLjkyTDI4OCAzMDUuMTJWNDE2YTMyIDMyIDAgMCAwIDY0IDBWMjg4YTMyIDMyIDAgMCAwLTE0LjI1LTI2LjYybC00MS4zNi0yNy41NyA1OC4yNS00OS45MnptMTE2IDM5YTEyOCAxMjggMCAxIDAgMTI4IDEyOCAxMjggMTI4IDAgMCAwLTEyOC0xMjh6bTAgMTkyYTY0IDY0IDAgMSAxIDY0LTY0IDY0IDY0IDAgMCAxLTY0IDY0ek0xMjggMjU2YTEyOCAxMjggMCAxIDAgMTI4IDEyOCAxMjggMTI4IDAgMCAwLTEyOC0xMjh6bTAgMTkyYTY0IDY0IDAgMSAxIDY0LTY0IDY0IDY0IDAgMCAxLTY0IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCaW5vY3VsYXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiA0OGMwLTguODQtNy4xNi0xNi0xNi0xNmgtNjRjLTguODQgMC0xNiA3LjE2LTE2IDE2djQ4aDk2VjQ4ek02My45MSAxNTkuOTlDNjEuNCAyNTMuODQgMy40NiAyNzQuMjIgMCA0MDR2NDRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg5NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjI4OGgzMlYxMjhIOTUuODRjLTE3LjYzIDAtMzEuNDUgMTQuMzctMzEuOTMgMzEuOTl6bTM4NC4xOCAwYy0uNDgtMTcuNjItMTQuMy0zMS45OS0zMS45My0zMS45OUgzMjB2MTYwaDMydjE2MGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDk2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTQ0Yy0zLjQ2LTEyOS43OC02MS40LTE1MC4xNi02My45MS0yNDQuMDF6TTE3NiAzMmgtNjRjLTguODQgMC0xNiA3LjE2LTE2IDE2djQ4aDk2VjQ4YzAtOC44NC03LjE2LTE2LTE2LTE2em00OCAyNTZoNjRWMTI4aC02NHYxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJpb2hhemFyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODcuOSAxMTJjMTguNiAwIDM2LjIgMy44IDUyLjggOS42IDEzLjMtMTAuMyAyMy42LTI0LjMgMjkuNS00MC43LTI1LjItMTAuOS01My0xNy04Mi4yLTE3LTI5LjEgMC01Ni45IDYtODIuMSAxNi45IDUuOSAxNi40IDE2LjIgMzAuNCAyOS41IDQwLjcgMTYuNS01LjcgMzQtOS41IDUyLjUtOS41ek0xNjMuNiA0MzguN2MxMi0xMS44IDIwLjQtMjYuNCAyNC41LTQyLjQtMzIuOS0yNi40LTU0LjgtNjUuMy01OC45LTEwOS42LTguNS0yLjgtMTcuMi00LjYtMjYuNC00LjYtNy42IDAtMTUuMiAxLTIyLjUgMy4xIDQuMSA2Mi44IDM1LjggMTE4IDgzLjMgMTUzLjV6bTIyNC4yLTQyLjZjNC4xIDE2IDEyLjUgMzAuNyAyNC41IDQyLjUgNDcuNC0zNS41IDc5LjEtOTAuNyA4My0xNTMuNS03LjItMi0xNC43LTMtMjIuMi0zLTkuMiAwLTE4IDEuOS0yNi42IDQuNy00LjEgNDQuMi0yNiA4Mi45LTU4LjcgMTA5LjN6bTExMy41LTIwNWMtMTcuNi0xMC40LTM2LjMtMTYuNi01NS4zLTE5LjkgNi0xNy43IDEwLTM2LjQgMTAtNTYuMiAwLTQxLTE0LjUtODAuOC00MS0xMTIuMi0yLjUtMy02LjYtMy43LTEwLTEuOC0zLjMgMS45LTQuOCA2LTMuNiA5LjcgNC41IDEzLjggNi42IDI2LjMgNi42IDM4LjUgMCA2Ny44LTUzLjggMTIyLjktMTIwIDEyMi45UzE2OCAxMTcgMTY4IDQ5LjJjMC0xMi4xIDIuMi0yNC43IDYuNi0zOC41IDEuMi0zLjctLjMtNy44LTMuNi05LjctMy40LTEuOS03LjUtMS4yLTEwIDEuOEMxMzQuNiAzNC4yIDEyMCA3NCAxMjAgMTE1YzAgMTkuOCAzLjkgMzguNSAxMCA1Ni4yLTE4LjkgMy4zLTM3LjcgOS41LTU1LjMgMTkuOS0zNC42IDIwLjUtNjEgNTMuMy03NC4zIDkyLjQtMS4zIDMuNy4yIDcuNyAzLjUgOS44IDMuMyAyIDcuNSAxLjMgMTAtMS42IDkuNC0xMC44IDE5LTE5LjEgMjkuMi0yNS4xIDU3LjMtMzMuOSAxMzAuOC0xMy43IDE2My45IDQ1IDMzLjEgNTguNyAxMy40IDEzNC00My45IDE2Ny45LTEwLjIgNi4xLTIyIDEwLjQtMzUuOCAxMy40LTMuNy44LTYuNCA0LjItNi40IDguMS4xIDQgMi43IDcuMyA2LjUgOCAzOS43IDcuOCA4MC42LjggMTE1LjItMTkuNyAxOC0xMC42IDMyLjktMjQuNSA0NS4zLTQwLjEgMTIuNCAxNS42IDI3LjMgMjkuNSA0NS4zIDQwLjEgMzQuNiAyMC41IDc1LjUgMjcuNSAxMTUuMiAxOS43IDMuOC0uNyA2LjQtNCA2LjUtOCAwLTMuOS0yLjYtNy4zLTYuNC04LjEtMTMuOS0yLjktMjUuNi03LjMtMzUuOC0xMy40LTU3LjMtMzMuOS03Ny0xMDkuMi00My45LTE2Ny45czEwNi42LTc4LjkgMTYzLjktNDVjMTAuMiA2LjEgMTkuOCAxNC4zIDI5LjIgMjUuMSAyLjUgMi45IDYuNyAzLjYgMTAgMS42czQuOC02LjEgMy41LTkuOGMtMTMuMS0zOS4xLTM5LjUtNzItNzQuMS05Mi40em0tMjEzLjQgMTI5Yy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4IDQ4IDIxLjUgNDggNDgtMjEuNSA0OC00OCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmlydGhkYXlDYWtlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAzODRjLTI4LjAyIDAtMzEuMjYtMzItNzQuNS0zMi00My40MyAwLTQ2LjgyNSAzMi03NC43NSAzMi0yNy42OTUgMC0zMS40NTQtMzItNzQuNzUtMzItNDIuODQyIDAtNDcuMjE4IDMyLTc0LjUgMzItMjguMTQ4IDAtMzEuMjAyLTMyLTc0Ljc1LTMyLTQzLjU0NyAwLTQ2LjY1MyAzMi03NC43NSAzMnYtODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMTZWMTEyaDY0djE0NGg2NFYxMTJoNjR2MTQ0aDY0VjExMmg2NHYxNDRoMTZjMjYuNSAwIDQ4IDIxLjUgNDggNDh2ODB6bTAgMTI4SDB2LTk2YzQzLjM1NiAwIDQ2Ljc2Ny0zMiA3NC43NS0zMiAyNy45NTEgMCAzMS4yNTMgMzIgNzQuNzUgMzIgNDIuODQzIDAgNDcuMjE3LTMyIDc0LjUtMzIgMjguMTQ4IDAgMzEuMjAxIDMyIDc0Ljc1IDMyIDQzLjM1NyAwIDQ2Ljc2Ny0zMiA3NC43NS0zMiAyNy40ODggMCAzMS4yNTIgMzIgNzQuNSAzMnY5NnpNOTYgOTZjLTE3Ljc1IDAtMzItMTQuMjUtMzItMzIgMC0zMSAzMi0yMyAzMi02NCAxMiAwIDMyIDI5LjUgMzIgNTZzLTE0LjI1IDQwLTMyIDQwem0xMjggMGMtMTcuNzUgMC0zMi0xNC4yNS0zMi0zMiAwLTMxIDMyLTIzIDMyLTY0IDEyIDAgMzIgMjkuNSAzMiA1NnMtMTQuMjUgNDAtMzIgNDB6bTEyOCAwYy0xNy43NSAwLTMyLTE0LjI1LTMyLTMyIDAtMzEgMzItMjMgMzItNjQgMTIgMCAzMiAyOS41IDMyIDU2cy0xNC4yNSA0MC0zMiA0MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmxlbmRlclBob25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM5MiA2NGgxNjYuNTRMNTc2IDBIMTkydjM1MmgyODhsMTcuNDYtNjRIMzkyYy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMTE0LjE4bDE3LjQ2LTY0SDM5MmMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDE0MC4zNmwxNy40Ni02NEgzOTJjLTQuNDIgMC04LTMuNTgtOC04VjcyYzAtNC40MiAzLjU4LTggOC04ek0xNTguOCAzMzUuMDFsLTI1Ljc4LTYzLjI2Yy0yLjc4LTYuODEtOS44LTEwLjk5LTE3LjI0LTEwLjI2bC00NS4wMyA0LjQyYy0xNy4yOC00Ni45NC0xNy42NS05OS43OCAwLTE0Ny43Mmw0NS4wMyA0LjQyYzcuNDMuNzMgMTQuNDYtMy40NiAxNy4yNC0xMC4yNmwyNS43OC02My4yNmMzLjAyLTcuMzkuMi0xNS44NS02LjY4LTIwLjA3bC0zOS4yOC0yNC4xQzk4LjUxLTMuODcgODAuMDktLjUgNjguOTUgMTEuOTdjLTkyLjU3IDEwMy42LTkyIDI1OS41NSAyLjEgMzYyLjQ5IDkuODcgMTAuOCAyOS4xMiAxMi40OCA0MS42NSA0LjhsMzkuNDEtMjQuMThjNi44OS00LjIyIDkuNy0xMi42NyA2LjY5LTIwLjA3ek00ODAgMzg0SDE5MmMtMzUuMzUgMC02NCAyOC42NS02NCA2NHYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDM1MmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0em0tMTQ0IDk2Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCbGVuZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAzODRIMTYwYy0zNS4zNSAwLTY0IDI4LjY1LTY0IDY0djMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzIwYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTMyYzAtMzUuMzUtMjguNjUtNjQtNjQtNjR6bS0xMjggOTZjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTQwLTQxNmgxNjYuNTRMNTEyIDBINDhDMjEuNDkgMCAwIDIxLjQ5IDAgNDh2MTYwYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMTAzLjI3bDguNzMgOTZoMjU2bDE3LjQ2LTY0SDMyOGMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDExNC4xOGwxNy40Ni02NEgzMjhjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGgxNDAuMzZsMTcuNDYtNjRIMzI4Yy00LjQyIDAtOC0zLjU4LTgtOFY3MmMwLTQuNDIgMy41OC04IDgtOHpNNjQgMTkyVjY0aDY5LjgybDExLjY0IDEyOEg2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmxpbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzgwLjE1IDUxMC44MzdhOCA4IDAgMCAxLTEwLjk4OS0yLjY4N2wtMTI1LjMzLTIwNi40MjdhMzEuOTIzIDMxLjkyMyAwIDAgMCAxMi45NTgtOS40ODVsMTI2LjA0OCAyMDcuNjA4YTggOCAwIDAgMS0yLjY4NyAxMC45OTF6TTE0Mi44MDMgMzE0LjMzOGwtMzIuNTQgODkuNDg1IDM2LjEyIDg4LjI4NWM2LjY5MyAxNi4zNiAyNS4zNzcgMjQuMTkyIDQxLjczMyAxNy41MDEgMTYuMzU3LTYuNjkyIDI0LjE5My0yNS4zNzYgMTcuNTAxLTQxLjczNGwtNjIuODE0LTE1My41Mzd6TTk2IDg4YzI0LjMwMSAwIDQ0LTE5LjY5OSA0NC00NFMxMjAuMzAxIDAgOTYgMCA1MiAxOS42OTkgNTIgNDRzMTkuNjk5IDQ0IDQ0IDQ0em0xNTQuODM3IDE2OS4xMjhsLTEyMC0xNTJjLTQuNzMzLTUuOTk1LTExLjc1LTkuMTA4LTE4LjgzNy05LjExMlY5Nkg4MHYuMDI2Yy03LjE0Ni4wMDMtMTQuMjE3IDMuMTYxLTE4Ljk0NCA5LjI0TDAgMTgzLjc2NnY5NS42OTRjMCAxMy40NTUgMTEuMDExIDI0Ljc5MSAyNC40NjQgMjQuNTM2QzM3LjUwNSAzMDMuNzQ4IDQ4IDI5My4xIDQ4IDI4MHYtNzkuNzY2bDE2LTIwLjU3MXYxNDAuNjk4TDkuOTI3IDQ2OS4wNTVjLTYuMDQgMTYuNjA5IDIuNTI4IDM0Ljk2OSAxOS4xMzggNDEuMDA5IDE2LjYwMiA2LjAzOSAzNC45NjgtMi41MjQgNDEuMDA5LTE5LjEzOEwxMzYgMzA5LjYzOFYyMDIuNDQxbC0zMS40MDYtMzkuODE2YTQgNCAwIDEgMSA2LjI2OS00Ljk3MWwxMDIuMyAxMjkuMjE3YzkuMTQ1IDExLjU4NCAyNC4zNjggMTEuMzM5IDMzLjcwOCAzLjk2NSAxMC40MS04LjIxNiAxMi4xNTktMjMuMzM0IDMuOTY2LTMzLjcwOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmxvZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzIuMiAyMjYuOGMtMTQuNi0yLjktMjguMiA4LjktMjguMiAyMy44VjMwMWMwIDEwLjIgNy4xIDE4LjQgMTYuNyAyMiAxOC4yIDYuOCAzMS4zIDI0LjQgMzEuMyA0NSAwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OFYxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRIMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0djI0OGMwIDg5LjUgODIuMSAxNjAuMiAxNzUgMTQwLjcgNTQuNC0xMS40IDk4LjMtNTUuNCAxMDkuNy0xMDkuNyAxNy40LTgyLjktMzctMTU3LjItMTEyLjUtMTcyLjJ6TTIwOSAwYy05LjItLjUtMTcgNi44LTE3IDE2djMxLjZjMCA4LjUgNi42IDE1LjUgMTUgMTUuOSAxMjkuNCA3IDIzMy40IDExMiAyNDAuOSAyNDEuNS41IDguNCA3LjUgMTUgMTUuOSAxNWgzMi4xYzkuMiAwIDE2LjUtNy44IDE2LTE3QzUwMy40IDEzOS44IDM3Mi4yIDguNiAyMDkgMHptLjMgOTZjLTkuMy0uNy0xNy4zIDYuNy0xNy4zIDE2LjF2MzIuMWMwIDguNCA2LjUgMTUuMyAxNC44IDE1LjkgNzYuOCA2LjMgMTM4IDY4LjIgMTQ0LjkgMTQ1LjIuOCA4LjMgNy42IDE0LjcgMTUuOSAxNC43aDMyLjJjOS4zIDAgMTYuOC04IDE2LjEtMTcuMy04LjQtMTEwLjEtOTYuNS0xOTguMi0yMDYuNi0yMDYuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9sZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzMuNDkgMjM4YTEyMiAxMjIgMCAwIDAgMjctNjUuMjFDMzY3Ljg3IDk2LjQ5IDMwOCAzMiAyMzMuNDIgMzJIMzRhMTYgMTYgMCAwIDAtMTYgMTZ2NDhhMTYgMTYgMCAwIDAgMTYgMTZoMzEuODd2Mjg4SDM0YTE2IDE2IDAgMCAwLTE2IDE2djQ4YTE2IDE2IDAgMCAwIDE2IDE2aDIwOS4zMmM3MC44IDAgMTM0LjE0LTUxLjc1IDE0MS0xMjIuNCA0Ljc0LTQ4LjQ1LTE2LjM5LTkyLjA2LTUwLjgzLTExOS42ek0xNDUuNjYgMTEyaDg3Ljc2YTQ4IDQ4IDAgMCAxIDAgOTZoLTg3Ljc2em04Ny43NiAyODhoLTg3Ljc2VjI4OGg4Ny43NmE1NiA1NiAwIDAgMSAwIDExMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9sdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTYgMTYwSDE4MC42bDQyLjYtMTI5LjhDMjI3LjIgMTUgMjE1LjcgMCAyMDAgMEg1NkM0NCAwIDMzLjggOC45IDMyLjIgMjAuOGwtMzIgMjQwQy0xLjcgMjc1LjIgOS41IDI4OCAyNCAyODhoMTE4LjdMOTYuNiA0ODIuNWMtMy42IDE1LjIgOCAyOS41IDIzLjMgMjkuNSA4LjQgMCAxNi40LTQuNCAyMC44LTEybDE3Ni0zMDRjOS4zLTE1LjktMi4yLTM2LTIwLjctMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvbWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQwLjUgODguNWwtNTIgNTJMNDE1IDE2N2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtMTcuNCAxNy40YzExLjggMjYuMSAxOC40IDU1LjEgMTguNCA4NS42IDAgMTE0LjktOTMuMSAyMDgtMjA4IDIwOFMwIDQxOC45IDAgMzA0IDkzLjEgOTYgMjA4IDk2YzMwLjUgMCA1OS41IDYuNiA4NS42IDE4LjRMMzExIDk3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDI2LjUgMjYuNSA1Mi01MiAxNy4xIDE3ek01MDAgNjBoLTI0Yy02LjYgMC0xMiA1LjQtMTIgMTJzNS40IDEyIDEyIDEyaDI0YzYuNiAwIDEyLTUuNCAxMi0xMnMtNS40LTEyLTEyLTEyek00NDAgMGMtNi42IDAtMTIgNS40LTEyIDEydjI0YzAgNi42IDUuNCAxMiAxMiAxMnMxMi01LjQgMTItMTJWMTJjMC02LjYtNS40LTEyLTEyLTEyem0zMy45IDU1bDE3LTE3YzQuNy00LjcgNC43LTEyLjMgMC0xNy00LjctNC43LTEyLjMtNC43LTE3IDBsLTE3IDE3Yy00LjcgNC43LTQuNyAxMi4zIDAgMTcgNC44IDQuNyAxMi40IDQuNyAxNyAwem0tNjcuOCAwYzQuNyA0LjcgMTIuMyA0LjcgMTcgMCA0LjctNC43IDQuNy0xMi4zIDAtMTdsLTE3LTE3Yy00LjctNC43LTEyLjMtNC43LTE3IDAtNC43IDQuNy00LjcgMTIuMyAwIDE3bDE3IDE3em02Ny44IDM0Yy00LjctNC43LTEyLjMtNC43LTE3IDAtNC43IDQuNy00LjcgMTIuMyAwIDE3bDE3IDE3YzQuNyA0LjcgMTIuMyA0LjcgMTcgMCA0LjctNC43IDQuNy0xMi4zIDAtMTdsLTE3LTE3ek0xMTIgMjcyYzAtMzUuMyAyOC43LTY0IDY0LTY0IDguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2Yy01Mi45IDAtOTYgNDMuMS05NiA5NiAwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU5OC44OCAyNDQuNTZjMjUuMi0xMi42IDQxLjEyLTM4LjM2IDQxLjEyLTY2LjUzdi03LjY0QzY0MCAxMjkuMyA2MDYuNyA5NiA1NjUuNjEgOTZjLTMyLjAyIDAtNjAuNDQgMjAuNDktNzAuNTcgNTAuODYtNy42OCAyMy4wMy0xMS42IDQ1LjE0LTM4LjExIDQ1LjE0SDE4My4wNmMtMjcuMzggMC0zMS41OC0yNS41NC0zOC4xMS00NS4xNEMxMzQuODMgMTE2LjQ5IDEwNi40IDk2IDc0LjM5IDk2IDMzLjMgOTYgMCAxMjkuMyAwIDE3MC4zOXY3LjY0YzAgMjguMTcgMTUuOTIgNTMuOTMgNDEuMTIgNjYuNTMgOS40MyA0LjcxIDkuNDMgMTguMTcgMCAyMi44OEMxNS45MiAyODAuMDQgMCAzMDUuOCAwIDMzMy45N3Y3LjY0QzAgMzgyLjcgMzMuMyA0MTYgNzQuMzggNDE2YzMyLjAyIDAgNjAuNDQtMjAuNDkgNzAuNTctNTAuODYgNy42OC0yMy4wMyAxMS42LTQ1LjE0IDM4LjExLTQ1LjE0aDI3My44N2MyNy4zOCAwIDMxLjU4IDI1LjU0IDM4LjExIDQ1LjE0QzUwNS4xNyAzOTUuNTEgNTMzLjYgNDE2IDU2NS42MSA0MTZjNDEuMDggMCA3NC4zOC0zMy4zIDc0LjM4LTc0LjM5di03LjY0YzAtMjguMTgtMTUuOTItNTMuOTMtNDEuMTItNjYuNTMtOS40Mi00LjcxLTkuNDItMTguMTcuMDEtMjIuODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzAyLjUgNTEyYzIzLjE4IDAgNDQuNDMtMTIuNTggNTYtMzIuNjZDMzc0LjY5IDQ1MS4yNiAzODQgNDE4Ljc1IDM4NCAzODRjMC0zNi4xMi0xMC4wOC02OS44MS0yNy40NC05OC42Mkw0MDAgMjQxLjk0bDkuMzggOS4zOGM2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwbDExLjMtMTEuMzJjNi4yNS02LjI1IDYuMjUtMTYuMzggMC0yMi42M2wtNTIuNjktNTIuNjljLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBsLTExLjMxIDExLjMxYy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzbDkuMzggOS4zOC0zOS40MSAzOS40MWMtMTEuNTYtMTEuMzctMjQuNTMtMjEuMzMtMzguNjUtMjkuNTFWNjMuNzRsMTUuOTctLjAyYzguODItLjAxIDE1Ljk3LTcuMTYgMTUuOTgtMTUuOThsLjA0LTMxLjcyQzMyMCA3LjE3IDMxMi44Mi0uMDEgMzAzLjk3IDBMODAuMDMuMjZjLTguODIuMDEtMTUuOTcgNy4xNi0xNS45OCAxNS45OGwtLjA0IDMxLjczYy0uMDEgOC44NSA3LjE3IDE2LjAyIDE2LjAyIDE2LjAxTDk2IDYzLjk2djE1My45M0MzOC42NyAyNTEuMSAwIDMxMi45NyAwIDM4NGMwIDM0Ljc1IDkuMzEgNjcuMjcgMjUuNSA5NS4zNEMzNy4wOCA0OTkuNDIgNTguMzMgNTEyIDgxLjUgNTEyaDIyMXpNMTIwLjA2IDI1OS40M0wxNDQgMjQ1LjU2VjYzLjkxbDk2LS4xMXYxODEuNzZsMjMuOTQgMTMuODdjMjQuODEgMTQuMzcgNDQuMTIgMzUuNzMgNTYuNTYgNjAuNTdoLTI1N2MxMi40NS0yNC44NCAzMS43NS00Ni4yIDU2LjU2LTYwLjU3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb29rRGVhZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzIgMTM2YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2LTE2IDcuMi0xNiAxNiA3LjIgMTYgMTYgMTZ6bTE3NiAyMjIuNFYyNS42YzAtMTYtOS42LTI1LjYtMjUuNi0yNS42SDk2QzQxLjYgMCAwIDQxLjYgMCA5NnYzMjBjMCA1NC40IDQxLjYgOTYgOTYgOTZoMzI2LjRjMTIuOCAwIDI1LjYtOS42IDI1LjYtMjUuNnYtMTZjMC02LjQtMy4yLTEyLjgtOS42LTE5LjItMy4yLTE2LTMuMi02MC44IDAtNzMuNiA2LjQtMy4yIDkuNi05LjYgOS42LTE5LjJ6TTI0MCA1NmM0NC4yIDAgODAgMjguNyA4MCA2NCAwIDIwLjktMTIuNyAzOS4yLTMyIDUwLjlWMTg0YzAgOC44LTcuMiAxNi0xNiAxNmgtNjRjLTguOCAwLTE2LTcuMi0xNi0xNnYtMTMuMWMtMTkuMy0xMS43LTMyLTMwLTMyLTUwLjkgMC0zNS4zIDM1LjgtNjQgODAtNjR6TTEyNC44IDIyMy4zbDYuMy0xNC43YzEuNy00LjEgNi40LTUuOSAxMC41LTQuMmw5OC4zIDQyLjEgOTguNC00Mi4xYzQuMS0xLjcgOC44LjEgMTAuNSA0LjJsNi4zIDE0LjdjMS43IDQuMS0uMSA4LjgtNC4yIDEwLjVMMjgwLjYgMjY0bDcwLjMgMzAuMWM0LjEgMS43IDUuOSA2LjQgNC4yIDEwLjVsLTYuMyAxNC43Yy0xLjcgNC4xLTYuNCA1LjktMTAuNSA0LjJMMjQwIDI4MS40bC05OC4zIDQyLjJjLTQuMSAxLjctOC44LS4xLTEwLjUtNC4ybC02LjMtMTQuN2MtMS43LTQuMS4xLTguOCA0LjItMTAuNWw3MC40LTMwLjEtNzAuNS0zMC4zYy00LjEtMS43LTUuOS02LjQtNC4yLTEwLjV6bTI1NiAyMjQuN0g5NmMtMTkuMiAwLTMyLTEyLjgtMzItMzJzMTYtMzIgMzItMzJoMjg0Ljh6TTIwOCAxMzZjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTYtMTYgNy4yLTE2IDE2IDcuMiAxNiAxNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9va01lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDM1OC40VjI1LjZjMC0xNi05LjYtMjUuNi0yNS42LTI1LjZIOTZDNDEuNiAwIDAgNDEuNiAwIDk2djMyMGMwIDU0LjQgNDEuNiA5NiA5NiA5NmgzMjYuNGMxMi44IDAgMjUuNi05LjYgMjUuNi0yNS42di0xNnEwLTkuNi05LjYtMTkuMmMtMy4yLTE2LTMuMi02MC44IDAtNzMuNnE5LjYtNC44IDkuNi0xOS4yek0xNDQgMTY4YTggOCAwIDAgMSA4LThoNTZ2LTU2YTggOCAwIDAgMSA4LThoNDhhOCA4IDAgMCAxIDggOHY1Nmg1NmE4IDggMCAwIDEgOCA4djQ4YTggOCAwIDAgMS04IDhoLTU2djU2YTggOCAwIDAgMS04IDhoLTQ4YTggOCAwIDAgMS04LTh2LTU2aC01NmE4IDggMCAwIDEtOC04em0yMzYuOCAyODBIOTZjLTE5LjIgMC0zMi0xMi44LTMyLTMyczE2LTMyIDMyLTMyaDI4NC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb29rT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDIuMjIgMzIuMDVjLTU0LjggMy4xMS0xNjMuNzIgMTQuNDMtMjMwLjk2IDU1LjU5LTQuNjQgMi44NC03LjI3IDcuODktNy4yNyAxMy4xN3YzNjMuODdjMCAxMS41NSAxMi42MyAxOC44NSAyMy4yOCAxMy40OSA2OS4xOC0zNC44MiAxNjkuMjMtNDQuMzIgMjE4LjctNDYuOTIgMTYuODktLjg5IDMwLjAyLTE0LjQzIDMwLjAyLTMwLjY2VjYyLjc1Yy4wMS0xNy43MS0xNS4zNS0zMS43NC0zMy43Ny0zMC43ek0yNjQuNzMgODcuNjRDMTk3LjUgNDYuNDggODguNTggMzUuMTcgMzMuNzggMzIuMDUgMTUuMzYgMzEuMDEgMCA0NS4wNCAwIDYyLjc1VjQwMC42YzAgMTYuMjQgMTMuMTMgMjkuNzggMzAuMDIgMzAuNjYgNDkuNDkgMi42IDE0OS41OSAxMi4xMSAyMTguNzcgNDYuOTUgMTAuNjIgNS4zNSAyMy4yMS0xLjk0IDIzLjIxLTEzLjQ2VjEwMC42M2MwLTUuMjktMi42Mi0xMC4xNC03LjI3LTEyLjk5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb29rUmVhZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiA5NmMwLTUzLjAyLTQyLjk4LTk2LTk2LTk2cy05NiA0Mi45OC05NiA5NiA0Mi45OCA5NiA5NiA5NiA5Ni00Mi45OCA5Ni05NnpNMjMzLjU5IDI0MS4xYy01OS4zMy0zNi4zMi0xNTUuNDMtNDYuMy0yMDMuNzktNDkuMDVDMTMuNTUgMTkxLjEzIDAgMjAzLjUxIDAgMjE5LjE0djIyMi44YzAgMTQuMzMgMTEuNTkgMjYuMjggMjYuNDkgMjcuMDUgNDMuNjYgMi4yOSAxMzEuOTkgMTAuNjggMTkzLjA0IDQxLjQzIDkuMzcgNC43MiAyMC40OC0xLjcxIDIwLjQ4LTExLjg3VjI1Mi41NmMtLjAxLTQuNjctMi4zMi04Ljk1LTYuNDItMTEuNDZ6bTI0OC42MS00OS4wNWMtNDguMzUgMi43NC0xNDQuNDYgMTIuNzMtMjAzLjc4IDQ5LjA1LTQuMSAyLjUxLTYuNDEgNi45Ni02LjQxIDExLjYzdjI0NS43OWMwIDEwLjE5IDExLjE0IDE2LjYzIDIwLjU0IDExLjkgNjEuMDQtMzAuNzIgMTQ5LjMyLTM5LjExIDE5Mi45Ny00MS40IDE0LjktLjc4IDI2LjQ5LTEyLjczIDI2LjQ5LTI3LjA2VjIxOS4xNGMtLjAxLTE1LjYzLTEzLjU2LTI4LjAxLTI5LjgxLTI3LjA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb29rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAzNjBWMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRIOTZDNDMgMCAwIDQzIDAgOTZ2MzIwYzAgNTMgNDMgOTYgOTYgOTZoMzI4YzEzLjMgMCAyNC0xMC43IDI0LTI0di0xNmMwLTcuNS0zLjUtMTQuMy04LjktMTguNy00LjItMTUuNC00LjItNTkuMyAwLTc0LjcgNS40LTQuMyA4LjktMTEuMSA4LjktMTguNnpNMTI4IDEzNGMwLTMuMyAyLjctNiA2LTZoMjEyYzMuMyAwIDYgMi43IDYgNnYyMGMwIDMuMy0yLjcgNi02IDZIMTM0Yy0zLjMgMC02LTIuNy02LTZ2LTIwem0wIDY0YzAtMy4zIDIuNy02IDYtNmgyMTJjMy4zIDAgNiAyLjcgNiA2djIwYzAgMy4zLTIuNyA2LTYgNkgxMzRjLTMuMyAwLTYtMi43LTYtNnYtMjB6bTI1My40IDI1MEg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzIgMC0xNy42IDE0LjQtMzIgMzItMzJoMjg1LjRjLTEuOSAxNy4xLTEuOSA0Ni45IDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvb2ttYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNTEyVjQ4QzAgMjEuNDkgMjEuNDkgMCA0OCAwaDI4OGMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4djQ2NEwxOTIgNDAwIDAgNTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3JkZXJBbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDMySDMyQTMyIDMyIDAgMCAwIDAgNjR2Mzg0YTMyIDMyIDAgMCAwIDMyIDMyaDM4NGEzMiAzMiAwIDAgMCAzMi0zMlY2NGEzMiAzMiAwIDAgMC0zMi0zMnptLTMyIDY0djEyOEgyNTZWOTZ6bS0xOTIgMHYxMjhINjRWOTZ6TTY0IDQxNlYyODhoMTI4djEyOHptMTkyIDBWMjg4aDEyOHYxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvcmRlck5vbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQwIDIyNGgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em05NiAwaC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTk2IDBoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptLTI4OCAwaC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTk2IDE5MmgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em05NiAwaC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTk2IDBoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC05NmgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTE5MmgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2ek0yNDAgMzIwaC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAtMTkyaC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bS05NiAyODhoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptOTYtMzg0aC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnptOTYgMGgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6bTk2IDBoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2ek00OCAyMjRIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wIDE5MkgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAtOTZIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTE5MkgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAtOTZIMTZBMTYgMTYgMCAwIDAgMCA0OHYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnptOTYgMGgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvcmRlclN0eWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0MCA0MTZoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptLTk2IDBoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMTkyIDBoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptOTYtMTkyaC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAgOTZoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMCA5NmgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTI4OGgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTk2SDMyQTMyIDMyIDAgMCAwIDAgNjR2NDAwYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2Vjk2aDM2OGExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm93bGluZ0JhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHpNMTIwIDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTY0LTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyem00OCAxNDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3hPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyNS43IDI1NmMtMTYuOSAwLTMyLjgtOS00MS40LTIzLjRMMzIwIDEyNmwtNjQuMiAxMDYuNmMtOC43IDE0LjUtMjQuNiAyMy41LTQxLjUgMjMuNS00LjUgMC05LS42LTEzLjMtMS45TDY0IDIxNXYxNzhjMCAxNC43IDEwIDI3LjUgMjQuMiAzMWwyMTYuMiA1NC4xYzEwLjIgMi41IDIwLjkgMi41IDMxIDBMNTUxLjggNDI0YzE0LjItMy42IDI0LjItMTYuNCAyNC4yLTMxVjIxNWwtMTM3IDM5LjFjLTQuMyAxLjMtOC44IDEuOS0xMy4zIDEuOXptMjEyLjYtMTEyLjJMNTg2LjggNDFjLTMuMS02LjItOS44LTkuOC0xNi43LTguOUwzMjAgNjRsOTEuNyAxNTIuMWMzLjggNi4zIDExLjQgOS4zIDE4LjUgNy4zbDE5Ny45LTU2LjVjOS45LTIuOSAxNC43LTEzLjkgMTAuMi0yMy4xek01My4yIDQxTDEuNyAxNDMuOGMtNC42IDkuMi4zIDIwLjIgMTAuMSAyM2wxOTcuOSA1Ni41YzcuMSAyIDE0LjctMSAxOC41LTcuM0wzMjAgNjQgNjkuOCAzMi4xYy02LjktLjgtMTMuNSAyLjctMTYuNiA4Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJveFRpc3N1ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODMuODgsMjg3LjgybDY0LTE5MkgzMzguNDdhNzAuMiw3MC4yLDAsMCwxLTY2LjU5LTQ4LDcwLjIxLDcwLjIxLDAsMCwwLTY2LjYtNDhINjMuODhsNjQsMjg4Wm0tMzg0LDE5MmEzMiwzMiwwLDAsMCwzMiwzMmg0NDhhMzIsMzIsMCwwLDAsMzItMzJ2LTY0SC0uMTJabTQ4MC0yNTZINDM4Ljk0bC0yMS4zMyw2NGgxNC4yN2ExNiwxNiwwLDAsMSwwLDMyaC0zNTJhMTYsMTYsMCwxLDEsMC0zMkg5NS4wOWwtMTQuMjItNjRoLTQ5YTMyLDMyLDAsMCwwLTMyLDMydjEyOGg1MTJ2LTEyOEEzMiwzMiwwLDAsMCw0NzkuODgsMjIzLjgyWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA5LjUgMTg0LjZMNDU4LjkgMzIuOEM0NTIuNCAxMy4yIDQzNC4xIDAgNDEzLjQgMEgyNzJ2MTkyaDIzOC43Yy0uNC0yLjUtLjQtNS0xLjItNy40ek0yNDAgMEg5OC42Yy0yMC43IDAtMzkgMTMuMi00NS41IDMyLjhMMi41IDE4NC42Yy0uOCAyLjQtLjggNC45LTEuMiA3LjRIMjQwVjB6TTAgMjI0djI0MGMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0MTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMjI0SDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJveGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2MCAyODhoLTgwdjk2bC0zMi0yMS4zLTMyIDIxLjN2LTk2aC04MGMtOC44IDAtMTYgNy4yLTE2IDE2djE5MmMwIDguOCA3LjIgMTYgMTYgMTZoMjI0YzguOCAwIDE2LTcuMiAxNi0xNlYzMDRjMC04LjgtNy4yLTE2LTE2LTE2em0tMzg0LTY0aDIyNGM4LjggMCAxNi03LjIgMTYtMTZWMTZjMC04LjgtNy4yLTE2LTE2LTE2aC04MHY5NmwtMzItMjEuM0wyNTYgOTZWMGgtODBjLTguOCAwLTE2IDcuMi0xNiAxNnYxOTJjMCA4LjggNy4yIDE2IDE2IDE2em02NCA2NGgtODB2OTZsLTMyLTIxLjNMOTYgMzg0di05NkgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djE5MmMwIDguOCA3LjIgMTYgMTYgMTZoMjI0YzguOCAwIDE2LTcuMiAxNi0xNlYzMDRjMC04LjgtNy4yLTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcmFpbGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAyNTZjMCAzNS4zNDYtMjguNjU0IDY0LTY0IDY0UzAgMjkxLjM0NiAwIDI1NnMyOC42NTQtNjQgNjQtNjQgNjQgMjguNjU0IDY0IDY0ek02NCAzODRjLTE3LjY3MyAwLTMyIDE0LjMyNy0zMiAzMnMxNC4zMjcgMzIgMzIgMzIgMzItMTQuMzI3IDMyLTMyLTE0LjMyNy0zMi0zMi0zMnptMC0zNTJDMjguNjU0IDMyIDAgNjAuNjU0IDAgOTZzMjguNjU0IDY0IDY0IDY0IDY0LTI4LjY1NCA2NC02NC0yOC42NTQtNjQtNjQtNjR6bTE2MCAxOTJjLTE3LjY3MyAwLTMyIDE0LjMyNy0zMiAzMnMxNC4zMjcgMzIgMzIgMzIgMzItMTQuMzI3IDMyLTMyLTE0LjMyNy0zMi0zMi0zMnptMCAxNjBjLTE3LjY3MyAwLTMyIDE0LjMyNy0zMiAzMnMxNC4zMjcgMzIgMzIgMzIgMzItMTQuMzI3IDMyLTMyLTE0LjMyNy0zMi0zMi0zMnptMC0zNTJjLTM1LjM0NiAwLTY0IDI4LjY1NC02NCA2NHMyOC42NTQgNjQgNjQgNjQgNjQtMjguNjU0IDY0LTY0LTI4LjY1NC02NC02NC02NHptMjI0IDE5MmMtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMyczE0LjMyNyAzMiAzMiAzMiAzMi0xNC4zMjcgMzItMzItMTQuMzI3LTMyLTMyLTMyem0wIDE2MGMtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMyczE0LjMyNyAzMiAzMiAzMiAzMi0xNC4zMjcgMzItMzItMTQuMzI3LTMyLTMyLTMyem0wLTM1MmMtMzUuMzQ2IDAtNjQgMjguNjU0LTY0IDY0czI4LjY1NCA2NCA2NCA2NCA2NC0yOC42NTQgNjQtNjQtMjguNjU0LTY0LTY0LTY0em0xNjAgMTkyYy0xNy42NzMgMC0zMiAxNC4zMjctMzIgMzJzMTQuMzI3IDMyIDMyIDMyIDMyLTE0LjMyNyAzMi0zMi0xNC4zMjctMzItMzItMzJ6bTAgMTYwYy0xNy42NzMgMC0zMiAxNC4zMjctMzIgMzJzMTQuMzI3IDMyIDMyIDMyIDMyLTE0LjMyNyAzMi0zMi0xNC4zMjctMzItMzItMzJ6bTAtMzIwYy0xNy42NzMgMC0zMiAxNC4zMjctMzIgMzJzMTQuMzI3IDMyIDMyIDMyIDMyLTE0LjMyNyAzMi0zMi0xNC4zMjctMzItMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJyYWluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOCAwYy0yOS45IDAtNTQuNyAyMC41LTYxLjggNDguMi0uOCAwLTEuNC0uMi0yLjItLjItMzUuMyAwLTY0IDI4LjctNjQgNjQgMCA0LjguNiA5LjUgMS43IDE0QzUyLjUgMTM4IDMyIDE2Ni42IDMyIDIwMGMwIDEyLjYgMy4yIDI0LjMgOC4zIDM0LjlDMTYuMyAyNDguNyAwIDI3NC4zIDAgMzA0YzAgMzMuMyAyMC40IDYxLjkgNDkuNCA3My45LS45IDQuNi0xLjQgOS4zLTEuNCAxNC4xIDAgMzkuOCAzMi4yIDcyIDcyIDcyIDQuMSAwIDguMS0uNSAxMi0xLjIgOS42IDI4LjUgMzYuMiA0OS4yIDY4IDQ5LjIgMzkuOCAwIDcyLTMyLjIgNzItNzJWNjRjMC0zNS4zLTI4LjctNjQtNjQtNjR6bTM2OCAzMDRjMC0yOS43LTE2LjMtNTUuMy00MC4zLTY5LjEgNS4yLTEwLjYgOC4zLTIyLjMgOC4zLTM0LjkgMC0zMy40LTIwLjUtNjItNDkuNy03NCAxLTQuNSAxLjctOS4yIDEuNy0xNCAwLTM1LjMtMjguNy02NC02NC02NC0uOCAwLTEuNS4yLTIuMi4yQzQyMi43IDIwLjUgMzk3LjkgMCAzNjggMGMtMzUuMyAwLTY0IDI4LjYtNjQgNjR2Mzc2YzAgMzkuOCAzMi4yIDcyIDcyIDcyIDMxLjggMCA1OC40LTIwLjcgNjgtNDkuMiAzLjkuNyA3LjkgMS4yIDEyIDEuMiAzOS44IDAgNzItMzIuMiA3Mi03MiAwLTQuOC0uNS05LjUtMS40LTE0LjEgMjktMTIgNDkuNC00MC42IDQ5LjQtNzMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnJlYWRTbGljZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMEMxMDggMCAwIDkzLjQgMCAxNjkuMTQgMCAxOTkuNDQgMjQuMjQgMjI0IDY0IDIyNHYyNTZjMCAxNy42NyAxNi4xMiAzMiAzNiAzMmgzNzZjMTkuODggMCAzNi0xNC4zMyAzNi0zMlYyMjRjMzkuNzYgMCA2NC0yNC41NiA2NC01NC44NkM1NzYgOTMuNCA0NjggMCAyODggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnJpZWZjYXNlTWVkaWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMTI4aC04MFY4MGMwLTI2LjUtMjEuNS00OC00OC00OEgxNzZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djQ4SDQ4Yy0yNi41IDAtNDggMjEuNS00OCA0OHYyODhjMCAyNi41IDIxLjUgNDggNDggNDhoNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjE3NmMwLTI2LjUtMjEuNS00OC00OC00OHpNMTkyIDk2aDEyOHYzMkgxOTJWOTZ6bTE2MCAyNDhjMCA0LjQtMy42IDgtOCA4aC01NnY1NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTU2aC01NmMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoNTZ2LTU2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2NTZoNTZjNC40IDAgOCAzLjYgOCA4djQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcmllZmNhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDMzNmMwIDguODQtNy4xNiAxNi0xNiAxNmgtOTZjLTguODQgMC0xNi03LjE2LTE2LTE2di00OEgwdjE0NGMwIDI1LjYgMjIuNCA0OCA0OCA0OGg0MTZjMjUuNiAwIDQ4LTIyLjQgNDgtNDhWMjg4SDMyMHY0OHptMTQ0LTIwOGgtODBWODBjMC0yNS42LTIyLjQtNDgtNDgtNDhIMTc2Yy0yNS42IDAtNDggMjIuNC00OCA0OHY0OEg0OGMtMjUuNiAwLTQ4IDIyLjQtNDggNDh2ODBoNTEydi04MGMwLTI1LjYtMjIuNC00OC00OC00OHptLTE0NCAwSDE5MlY5NmgxMjh2MzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJyb2FkY2FzdFRvd2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1MC45NCAxOTJoMzMuNzNjMTEuMDEgMCAxOC42MS0xMC44MyAxNC44Ni0yMS4xOC00LjkzLTEzLjU4LTcuNTUtMjcuOTgtNy41NS00Mi44MnMyLjYyLTI5LjI0IDcuNTUtNDIuODJDMjAzLjI5IDc0LjgzIDE5NS42OCA2NCAxODQuNjcgNjRoLTMzLjczYy03LjAxIDAtMTMuNDYgNC40OS0xNS40MSAxMS4yM0MxMzAuNjQgOTIuMjEgMTI4IDEwOS44OCAxMjggMTI4YzAgMTguMTIgMi42NCAzNS43OSA3LjU0IDUyLjc2IDEuOTQgNi43NCA4LjM5IDExLjI0IDE1LjQgMTEuMjR6TTg5LjkyIDIzLjM0Qzk1LjU2IDEyLjcyIDg3Ljk3IDAgNzUuOTYgMEg0MC42M2MtNi4yNyAwLTEyLjE0IDMuNTktMTQuNzQgOS4zMUM5LjQgNDUuNTQgMCA4NS42NSAwIDEyOGMwIDI0Ljc1IDMuMTIgNjguMzMgMjYuNjkgMTE4Ljg2IDIuNjIgNS42MyA4LjQyIDkuMTQgMTQuNjEgOS4xNGgzNC44NGMxMi4wMiAwIDE5LjYxLTEyLjc0IDEzLjk1LTIzLjM3LTQ5Ljc4LTkzLjMyLTE2LjcxLTE3OC4xNS0uMTctMjA5LjI5ek02MTQuMDYgOS4yOUM2MTEuNDYgMy41OCA2MDUuNiAwIDU5OS4zMyAwaC0zNS40MmMtMTEuOTggMC0xOS42NiAxMi42Ni0xNC4wMiAyMy4yNSAxOC4yNyAzNC4yOSA0OC40MiAxMTkuNDIuMjggMjA5LjIzLTUuNzIgMTAuNjggMS44IDIzLjUyIDEzLjkxIDIzLjUyaDM1LjIzYzYuMjcgMCAxMi4xMy0zLjU4IDE0LjczLTkuMjlDNjMwLjU3IDIxMC40OCA2NDAgMTcwLjM2IDY0MCAxMjhzLTkuNDItODIuNDgtMjUuOTQtMTE4Ljcxek00ODkuMDYgNjRoLTMzLjczYy0xMS4wMSAwLTE4LjYxIDEwLjgzLTE0Ljg2IDIxLjE4IDQuOTMgMTMuNTggNy41NSAyNy45OCA3LjU1IDQyLjgycy0yLjYyIDI5LjI0LTcuNTUgNDIuODJjLTMuNzYgMTAuMzUgMy44NSAyMS4xOCAxNC44NiAyMS4xOGgzMy43M2M3LjAyIDAgMTMuNDYtNC40OSAxNS40MS0xMS4yNCA0LjktMTYuOTcgNy41My0zNC42NCA3LjUzLTUyLjc2IDAtMTguMTItMi42NC0zNS43OS03LjU0LTUyLjc2LTEuOTQtNi43NS04LjM5LTExLjI0LTE1LjQtMTEuMjR6bS0xMTYuMyAxMDAuMTJjNy4wNS0xMC4yOSAxMS4yLTIyLjcxIDExLjItMzYuMTIgMC0zNS4zNS0yOC42My02NC02My45Ni02NC0zNS4zMiAwLTYzLjk2IDI4LjY1LTYzLjk2IDY0IDAgMTMuNDEgNC4xNSAyNS44MyAxMS4yIDM2LjEybC0xMzAuNSAzMTMuNDFjLTMuNCA4LjE1LjQ2IDE3LjUyIDguNjEgMjAuOTJsMjkuNTEgMTIuMzFjOC4xNSAzLjQgMTcuNTItLjQ2IDIwLjkxLTguNjFMMjQ0Ljk2IDM4NGgxNTAuMDdsNDkuMiAxMTguMTVjMy40IDguMTYgMTIuNzYgMTIuMDEgMjAuOTEgOC42MWwyOS41MS0xMi4zMWM4LjE1LTMuNCAxMi0xMi43NyA4LjYxLTIwLjkybC0xMzAuNS0zMTMuNDF6TTI3MS42MiAzMjBMMzIwIDIwMy44MSAzNjguMzggMzIwaC05Ni43NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnJvb20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2LjQ3IDIxNi43N2w4Ni43MyAxMDkuMThzLTE2LjYgMTAyLjM2LTc2LjU3IDE1MC4xMkMyMDYuNjYgNTIzLjg1IDAgNTEwLjE5IDAgNTEwLjE5czMuOC0yMy4xNCAxMS01NS40M2w5NC42Mi0xMTIuMTdjMy45Ny00LjctLjg3LTExLjYyLTYuNjUtOS41bC02MC40IDIyLjA5YzE0LjQ0LTQxLjY2IDMyLjcyLTgwLjA0IDU0LjYtOTcuNDcgNTkuOTctNDcuNzYgMTYzLjMtNDAuOTQgMTYzLjMtNDAuOTR6TTYzNi41MyAzMS4wM2wtMTkuODYtMjVjLTUuNDktNi45LTE1LjUyLTguMDUtMjIuNDEtMi41NmwtMjMyLjQ4IDE3Ny44LTM0LjE0LTQyLjk3Yy01LjA5LTYuNDEtMTUuMTQtNS4yMS0xOC41OSAyLjIxbC0yNS4zMyA1NC41NSA4Ni43MyAxMDkuMTggNTguOC0xMi40NWM4LTEuNjkgMTEuNDItMTEuMiA2LjM0LTE3LjZsLTM0LjA5LTQyLjkyIDIzMi40OC0xNzcuOGM2Ljg5LTUuNDggOC4wNC0xNS41MyAyLjU1LTIyLjQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcnVzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIgMEgzMkMxNC4zMyAwIDAgMTQuMzMgMCAzMnYyMjRoMzg0VjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTAgMzIwYzAgMzUuMzUgMjguNjYgNjQgNjQgNjRoNjR2NjRjMCAzNS4zNSAyOC42NiA2NCA2NCA2NHM2NC0yOC42NSA2NC02NHYtNjRoNjRjMzUuMzQgMCA2NC0yOC42NSA2NC02NHYtMzJIMHYzMnptMTkyIDEwNGMxMy4yNSAwIDI0IDEwLjc0IDI0IDI0IDAgMTMuMjUtMTAuNzUgMjQtMjQgMjRzLTI0LTEwLjc1LTI0LTI0YzAtMTMuMjYgMTAuNzUtMjQgMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1ZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTEuOTg4IDI4OC45Yy0uNDc4IDE3LjQzLTE1LjIxNyAzMS4xLTMyLjY1MyAzMS4xSDQyNHYxNmMwIDIxLjg2NC00Ljg4MiA0Mi41ODQtMTMuNiA2MS4xNDVsNjAuMjI4IDYwLjIyOGMxMi40OTYgMTIuNDk3IDEyLjQ5NiAzMi43NTggMCA0NS4yNTUtMTIuNDk4IDEyLjQ5Ny0zMi43NTkgMTIuNDk2LTQ1LjI1NiAwbC01NC43MzYtNTQuNzM2QzM0NS44ODYgNDY3Ljk2NSAzMTQuMzUxIDQ4MCAyODAgNDgwVjIzNmMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0yNGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNDRjLTM0LjM1MSAwLTY1Ljg4Ni0xMi4wMzUtOTAuNjM2LTMyLjEwOGwtNTQuNzM2IDU0LjczNmMtMTIuNDk4IDEyLjQ5Ny0zMi43NTkgMTIuNDk2LTQ1LjI1NiAwLTEyLjQ5Ni0xMi40OTctMTIuNDk2LTMyLjc1OCAwLTQ1LjI1NWw2MC4yMjgtNjAuMjI4QzkyLjg4MiAzNzguNTg0IDg4IDM1Ny44NjQgODggMzM2di0xNkgzMi42NjZDMTUuMjMgMzIwIC40OTEgMzA2LjMzLjAxMyAyODguOS0uNDg0IDI3MC44MTYgMTQuMDI4IDI1NiAzMiAyNTZoNTZ2LTU4Ljc0NWwtNDYuNjI4LTQ2LjYyOGMtMTIuNDk2LTEyLjQ5Ny0xMi40OTYtMzIuNzU4IDAtNDUuMjU1IDEyLjQ5OC0xMi40OTcgMzIuNzU4LTEyLjQ5NyA0NS4yNTYgMEwxNDEuMjU1IDE2MGgyMjkuNDg5bDU0LjYyNy01NC42MjdjMTIuNDk4LTEyLjQ5NyAzMi43NTgtMTIuNDk3IDQ1LjI1NiAwIDEyLjQ5NiAxMi40OTcgMTIuNDk2IDMyLjc1OCAwIDQ1LjI1NUw0MjQgMTk3LjI1NVYyNTZoNTZjMTcuOTcyIDAgMzIuNDg0IDE0LjgxNiAzMS45ODggMzIuOXpNMjU3IDBjLTYxLjg1NiAwLTExMiA1MC4xNDQtMTEyIDExMmgyMjRDMzY5IDUwLjE0NCAzMTguODU2IDAgMjU3IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1aWxkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzNiA0ODBoLTIwVjI0YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEg1NkM0Mi43NDUgMCAzMiAxMC43NDUgMzIgMjR2NDU2SDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjIwaDQ0OHYtMjBjMC02LjYyNy01LjM3My0xMi0xMi0xMnpNMTI4IDc2YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNDBjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY0MGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC00MGMtNi42MjcgMC0xMi01LjM3My0xMi0xMlY3NnptMCA5NmMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDQwYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2NDBjMCA2LjYyNy01LjM3MyAxMi0xMiAxMmgtNDBjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTQwem01MiAxNDhoLTQwYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi00MGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDQwYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2NDBjMCA2LjYyNy01LjM3MyAxMi0xMiAxMnptNzYgMTYwaC02NHYtODRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmg0MGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjg0em02NC0xNzJjMCA2LjYyNy01LjM3MyAxMi0xMiAxMmgtNDBjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTQwYzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNDBjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY0MHptMC05NmMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC00MGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtNDBjMC02LjYyNyA1LjM3My0xMiAxMi0xMmg0MGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjQwem0wLTk2YzAgNi42MjctNS4zNzMgMTItMTIgMTJoLTQwYy02LjYyNyAwLTEyLTUuMzczLTEyLTEyVjc2YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNDBjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY0MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVsbGhvcm4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTc2IDI0MGMwLTIzLjYzLTEyLjk1LTQ0LjA0LTMyLTU1LjEyVjMyLjAxQzU0NCAyMy4yNiA1MzcuMDIgMCA1MTIgMGMtNy4xMiAwLTE0LjE5IDIuMzgtMTkuOTggNy4wMmwtODUuMDMgNjguMDNDMzY0LjI4IDEwOS4xOSAzMTAuNjYgMTI4IDI1NiAxMjhINjRjLTM1LjM1IDAtNjQgMjguNjUtNjQgNjR2OTZjMCAzNS4zNSAyOC42NSA2NCA2NCA2NGgzMy43Yy0xLjM5IDEwLjQ4LTIuMTggMjEuMTQtMi4xOCAzMiAwIDM5Ljc3IDkuMjYgNzcuMzUgMjUuNTYgMTEwLjk0IDUuMTkgMTAuNjkgMTYuNTIgMTcuMDYgMjguNCAxNy4wNmg3NC4yOGMyNi4wNSAwIDQxLjY5LTI5Ljg0IDI1LjktNTAuNTYtMTYuNC0yMS41Mi0yNi4xNS00OC4zNi0yNi4xNS03Ny40NCAwLTExLjExIDEuNjItMjEuNzkgNC40MS0zMkgyNTZjNTQuNjYgMCAxMDguMjggMTguODEgMTUwLjk4IDUyLjk1bDg1LjAzIDY4LjAzYTMyLjAyMyAzMi4wMjMgMCAwIDAgMTkuOTggNy4wMmMyNC45MiAwIDMyLTIyLjc4IDMyLTMyVjI5NS4xM0M1NjMuMDUgMjg0LjA0IDU3NiAyNjMuNjMgNTc2IDI0MHptLTk2IDE0MS40MmwtMzMuMDUtMjYuNDRDMzkyLjk1IDMxMS43OCAzMjUuMTIgMjg4IDI1NiAyODh2LTk2YzY5LjEyIDAgMTM2Ljk1LTIzLjc4IDE5MC45NS02Ni45OEw0ODAgOTguNTh2MjgyLjg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdWxsc2V5ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEuMDMgOCAwIDExOS4wMyAwIDI1NnMxMTEuMDMgMjQ4IDI0OCAyNDggMjQ4LTExMS4wMyAyNDgtMjQ4UzM4NC45NyA4IDI0OCA4em0wIDQzMmMtMTAxLjY5IDAtMTg0LTgyLjI5LTE4NC0xODQgMC0xMDEuNjkgODIuMjktMTg0IDE4NC0xODQgMTAxLjY5IDAgMTg0IDgyLjI5IDE4NCAxODQgMCAxMDEuNjktODIuMjkgMTg0LTE4NCAxODR6bTAtMzEyYy03MC42OSAwLTEyOCA1Ny4zMS0xMjggMTI4czU3LjMxIDEyOCAxMjggMTI4IDEyOC01Ny4zMSAxMjgtMTI4LTU3LjMxLTEyOC0xMjgtMTI4em0wIDE5MmMtMzUuMjkgMC02NC0yOC43MS02NC02NHMyOC43MS02NCA2NC02NCA2NCAyOC43MSA2NCA2NC0yOC43MSA2NC02NCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVybiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMEM3OS43IDEwMS4zIDAgMjIwLjkgMCAzMDAuNSAwIDQyNSA3OSA1MTIgMTkyIDUxMnMxOTItODcgMTkyLTIxMS41YzAtNzkuOS04MC4yLTE5OS42LTE5Mi0zMDAuNXptMCA0NDhjLTU2LjUgMC05Ni0zOS05Ni05NC44IDAtMTMuNSA0LjYtNjEuNSA5Ni0xNjEuMiA5MS40IDk5LjcgOTYgMTQ3LjcgOTYgMTYxLjIgMCA1NS44LTM5LjUgOTQuOC05NiA5NC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdXNBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg4IDEyOGgtOFY4MGMwLTQ0LjgtOTkuMi04MC0yMjQtODBTMzIgMzUuMiAzMiA4MHY0OGgtOGMtMTMuMjUgMC0yNCAxMC43NC0yNCAyNHY4MGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDh2MTYwYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmgxOTJ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmg2LjRjMTYgMCAyNS42LTEyLjggMjUuNi0yNS42VjI1Nmg4YzEzLjI1IDAgMjQtMTAuNzUgMjQtMjR2LTgwYzAtMTMuMjYtMTAuNzUtMjQtMjQtMjR6TTE2MCA3MmMwLTQuNDIgMy41OC04IDgtOGgxNzZjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhIMTY4Yy00LjQyIDAtOC0zLjU4LTgtOFY3MnptLTQ4IDMyOGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMTI4LTExMkgxMjhjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJ2LTk2YzAtMTcuNjcgMTQuMzMtMzIgMzItMzJoMTEydjE2MHptMzIgMFYxMjhoMTEyYzE3LjY3IDAgMzIgMTQuMzMgMzIgMzJ2OTZjMCAxNy42Ny0xNC4zMyAzMi0zMiAzMkgyNzJ6bTEyOCAxMTJjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODggMTI4aC04VjgwYzAtNDQuOC05OS4yLTgwLTIyNC04MFMzMiAzNS4yIDMyIDgwdjQ4aC04Yy0xMy4yNSAwLTI0IDEwLjc0LTI0IDI0djgwYzAgMTMuMjUgMTAuNzUgMjQgMjQgMjRoOHYxNjBjMCAxNy42NyAxNC4zMyAzMiAzMiAzMnYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTMyaDE5MnYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTMyaDYuNGMxNiAwIDI1LjYtMTIuOCAyNS42LTI1LjZWMjU2aDhjMTMuMjUgMCAyNC0xMC43NSAyNC0yNHYtODBjMC0xMy4yNi0xMC43NS0yNC0yNC0yNHpNMTEyIDQwMGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMTYtMTEyYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyVjEyOGMwLTE3LjY3IDE0LjMzLTMyIDMyLTMyaDI1NmMxNy42NyAwIDMyIDE0LjMzIDMyIDMydjEyOGMwIDE3LjY3LTE0LjMzIDMyLTMyIDMySDEyOHptMjcyIDExMmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVzaW5lc3NUaW1lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiAyMjRjLTc5LjU5IDAtMTQ0IDY0LjQxLTE0NCAxNDRzNjQuNDEgMTQ0IDE0NCAxNDQgMTQ0LTY0LjQxIDE0NC0xNDQtNjQuNDEtMTQ0LTE0NC0xNDR6bTY0IDE1MC4yOWMwIDUuMzQtNC4zNyA5LjcxLTkuNzEgOS43MWgtNjAuNTdjLTUuMzQgMC05LjcxLTQuMzctOS43MS05Ljcxdi03Ni41N2MwLTUuMzQgNC4zNy05LjcxIDkuNzEtOS43MWgxMi41N2M1LjM0IDAgOS43MSA0LjM3IDkuNzEgOS43MVYzNTJoMzguMjljNS4zNCAwIDkuNzEgNC4zNyA5LjcxIDkuNzF2MTIuNTh6TTQ5NiAxOTJjNS40IDAgMTAuNzIuMzMgMTYgLjgxVjE0NGMwLTI1LjYtMjIuNC00OC00OC00OGgtODBWNDhjMC0yNS42LTIyLjQtNDgtNDgtNDhIMTc2Yy0yNS42IDAtNDggMjIuNC00OCA0OHY0OEg0OGMtMjUuNiAwLTQ4IDIyLjQtNDggNDh2ODBoMzk1LjEyYzI4LjYtMjAuMDkgNjMuMzUtMzIgMTAwLjg4LTMyek0zMjAgOTZIMTkyVjY0aDEyOHYzMnptNi44MiAyMjRIMjA4Yy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtNDhIMHYxNDRjMCAyNS42IDIyLjQgNDggNDggNDhoMjkxLjQzQzMyNy4xIDQyMy45NiAzMjAgMzk2LjgyIDMyMCAzNjhjMC0xNi42NiAyLjQ4LTMyLjcyIDYuODItNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbGN1bGF0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDBINDhDMjIuNCAwIDAgMjIuNCAwIDQ4djQxNmMwIDI1LjYgMjIuNCA0OCA0OCA0OGgzNTJjMjUuNiAwIDQ4LTIyLjQgNDgtNDhWNDhjMC0yNS42LTIyLjQtNDgtNDgtNDh6TTEyOCA0MzUuMmMwIDYuNC02LjQgMTIuOC0xMi44IDEyLjhINzYuOGMtNi40IDAtMTIuOC02LjQtMTIuOC0xMi44di0zOC40YzAtNi40IDYuNC0xMi44IDEyLjgtMTIuOGgzOC40YzYuNCAwIDEyLjggNi40IDEyLjggMTIuOHYzOC40em0wLTEyOGMwIDYuNC02LjQgMTIuOC0xMi44IDEyLjhINzYuOGMtNi40IDAtMTIuOC02LjQtMTIuOC0xMi44di0zOC40YzAtNi40IDYuNC0xMi44IDEyLjgtMTIuOGgzOC40YzYuNCAwIDEyLjggNi40IDEyLjggMTIuOHYzOC40em0xMjggMTI4YzAgNi40LTYuNCAxMi44LTEyLjggMTIuOGgtMzguNGMtNi40IDAtMTIuOC02LjQtMTIuOC0xMi44di0zOC40YzAtNi40IDYuNC0xMi44IDEyLjgtMTIuOGgzOC40YzYuNCAwIDEyLjggNi40IDEyLjggMTIuOHYzOC40em0wLTEyOGMwIDYuNC02LjQgMTIuOC0xMi44IDEyLjhoLTM4LjRjLTYuNCAwLTEyLjgtNi40LTEyLjgtMTIuOHYtMzguNGMwLTYuNCA2LjQtMTIuOCAxMi44LTEyLjhoMzguNGM2LjQgMCAxMi44IDYuNCAxMi44IDEyLjh2MzguNHptMTI4IDEyOGMwIDYuNC02LjQgMTIuOC0xMi44IDEyLjhoLTM4LjRjLTYuNCAwLTEyLjgtNi40LTEyLjgtMTIuOFYyNjguOGMwLTYuNCA2LjQtMTIuOCAxMi44LTEyLjhoMzguNGM2LjQgMCAxMi44IDYuNCAxMi44IDEyLjh2MTY2LjR6bTAtMjU2YzAgNi40LTYuNCAxMi44LTEyLjggMTIuOEg3Ni44Yy02LjQgMC0xMi44LTYuNC0xMi44LTEyLjhWNzYuOEM2NCA3MC40IDcwLjQgNjQgNzYuOCA2NGgyOTQuNGM2LjQgMCAxMi44IDYuNCAxMi44IDEyLjh2MTAyLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbGVuZGFyQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFYxOTJIMHYyNzJ6bTMyMC0xOTZjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwem0wIDEyOGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwYzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDB6TTE5MiAyNjhjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwem0wIDEyOGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwYzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDB6TTY0IDI2OGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwYzAgNi42LTUuNCAxMi0xMiAxMkg3NmMtNi42IDAtMTItNS40LTEyLTEydi00MHptMCAxMjhjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJINzZjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDB6TTQwMCA2NGgtNDhWMTZjMC04LjgtNy4yLTE2LTE2LTE2aC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djQ4SDE2MFYxNmMwLTguOC03LjItMTYtMTYtMTZoLTMyYy04LjggMC0xNiA3LjItMTYgMTZ2NDhINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2NDhoNDQ4di00OGMwLTI2LjUtMjEuNS00OC00OC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FsZW5kYXJDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzYgMTYwSDEyYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0zNmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDQ4VjEyYzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNDBjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY1MmgxMjhWMTJjMC02LjYyNyA1LjM3My0xMiAxMi0xMmg0MGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjUyaDQ4YzI2LjUxIDAgNDggMjEuNDkgNDggNDh2MzZjMCA2LjYyNy01LjM3MyAxMi0xMiAxMnpNMTIgMTkyaDQyNGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI2MGMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjIwNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyem0zMzMuMjk2IDk1Ljk0N2wtMjguMTY5LTI4LjM5OGMtNC42NjctNC43MDUtMTIuMjY1LTQuNzM2LTE2Ljk3LS4wNjhMMTk0LjEyIDM2NC42NjVsLTQ1Ljk4LTQ2LjM1MmMtNC42NjctNC43MDUtMTIuMjY2LTQuNzM2LTE2Ljk3MS0uMDY4bC0yOC4zOTcgMjguMTdjLTQuNzA1IDQuNjY3LTQuNzM2IDEyLjI2NS0uMDY4IDE2Ljk3bDgyLjYwMSA4My4yNjljNC42NjcgNC43MDUgMTIuMjY1IDQuNzM2IDE2Ljk3LjA2OGwxNDIuOTUzLTE0MS44MDVjNC43MDUtNC42NjcgNC43MzYtMTIuMjY1LjA2OC0xNi45N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FsZW5kYXJEYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjE5MkgwdjI3MnptNjQtMTkyYzAtOC44IDcuMi0xNiAxNi0xNmg5NmM4LjggMCAxNiA3LjIgMTYgMTZ2OTZjMCA4LjgtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZ2LTk2ek00MDAgNjRoLTQ4VjE2YzAtOC44LTcuMi0xNi0xNi0xNmgtMzJjLTguOCAwLTE2IDcuMi0xNiAxNnY0OEgxNjBWMTZjMC04LjgtNy4yLTE2LTE2LTE2aC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djQ4SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjQ4aDQ0OHYtNDhjMC0yNi41LTIxLjUtNDgtNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbGVuZGFyTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM2IDE2MEgxMmMtNi42IDAtMTItNS40LTEyLTEydi0zNmMwLTI2LjUgMjEuNS00OCA0OC00OGg0OFYxMmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjUyaDEyOFYxMmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjUyaDQ4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djM2YzAgNi42LTUuNCAxMi0xMiAxMnpNMTIgMTkyaDQyNGM2LjYgMCAxMiA1LjQgMTIgMTJ2MjYwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYyMDRjMC02LjYgNS40LTEyIDEyLTEyem0zMDQgMTkyYzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEySDEzMmMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmgxODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbGVuZGFyUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzYgMTYwSDEyYy02LjYgMC0xMi01LjQtMTItMTJ2LTM2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4VjEyYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NTJoMTI4VjEyYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NTJoNDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh2MzZjMCA2LjYtNS40IDEyLTEyIDEyek0xMiAxOTJoNDI0YzYuNiAwIDEyIDUuNCAxMiAxMnYyNjBjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjIwNGMwLTYuNiA1LjQtMTIgMTItMTJ6bTMxNiAxNDBjMC02LjYtNS40LTEyLTEyLTEyaC02MHYtNjBjMC02LjYtNS40LTEyLTEyLTEyaC00MGMtNi42IDAtMTIgNS40LTEyIDEydjYwaC02MGMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmg2MHY2MGMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEydi02MGg2MGM2LjYgMCAxMi01LjQgMTItMTJ2LTQwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYWxlbmRhclRpbWVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzNiAxNjBIMTJjLTYuNiAwLTEyLTUuNC0xMi0xMnYtMzZjMC0yNi41IDIxLjUtNDggNDgtNDhoNDhWMTJjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY1MmgxMjhWMTJjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY1Mmg0OGMyNi41IDAgNDggMjEuNSA0OCA0OHYzNmMwIDYuNi01LjQgMTItMTIgMTJ6TTEyIDE5Mmg0MjRjNi42IDAgMTIgNS40IDEyIDEydjI2MGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMjA0YzAtNi42IDUuNC0xMiAxMi0xMnptMjU3LjMgMTYwbDQ4LjEtNDguMWM0LjctNC43IDQuNy0xMi4zIDAtMTdsLTI4LjMtMjguM2MtNC43LTQuNy0xMi4zLTQuNy0xNyAwTDIyNCAzMDYuN2wtNDguMS00OC4xYy00LjctNC43LTEyLjMtNC43LTE3IDBsLTI4LjMgMjguM2MtNC43IDQuNy00LjcgMTIuMyAwIDE3bDQ4LjEgNDguMS00OC4xIDQ4LjFjLTQuNyA0LjctNC43IDEyLjMgMCAxN2wyOC4zIDI4LjNjNC43IDQuNyAxMi4zIDQuNyAxNyAwbDQ4LjEtNDguMSA0OC4xIDQ4LjFjNC43IDQuNyAxMi4zIDQuNyAxNyAwbDI4LjMtMjguM2M0LjctNC43IDQuNy0xMi4zIDAtMTdMMjY5LjMgMzUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYWxlbmRhcldlZWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjE5MkgwdjI3MnptNjQtMTkyYzAtOC44IDcuMi0xNiAxNi0xNmgyODhjOC44IDAgMTYgNy4yIDE2IDE2djY0YzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2di02NHpNNDAwIDY0aC00OFYxNmMwLTguOC03LjItMTYtMTYtMTZoLTMyYy04LjggMC0xNiA3LjItMTYgMTZ2NDhIMTYwVjE2YzAtOC44LTcuMi0xNi0xNi0xNmgtMzJjLTguOCAwLTE2IDcuMi0xNiAxNnY0OEg0OEMyMS41IDY0IDAgODUuNSAwIDExMnY0OGg0NDh2LTQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYWxlbmRhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxOTJoNDI0YzYuNiAwIDEyIDUuNCAxMiAxMnYyNjBjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjIwNGMwLTYuNiA1LjQtMTIgMTItMTJ6bTQzNi00NHYtMzZjMC0yNi41LTIxLjUtNDgtNDgtNDhoLTQ4VjEyYzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnY1MkgxNjBWMTJjMC02LjYtNS40LTEyLTEyLTEyaC00MGMtNi42IDAtMTIgNS40LTEyIDEydjUySDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjM2YzAgNi42IDUuNCAxMiAxMiAxMmg0MjRjNi42IDAgMTItNS40IDEyLTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYW1lcmFSZXRybyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0MTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDhINDh6bTAgMzJoMTA2YzMuMyAwIDYgMi43IDYgNnYyMGMwIDMuMy0yLjcgNi02IDZIMzhjLTMuMyAwLTYtMi43LTYtNlY4MGMwLTguOCA3LjItMTYgMTYtMTZ6bTQyNiA5NkgzOGMtMy4zIDAtNi0yLjctNi02di0zNmMwLTMuMyAyLjctNiA2LTZoMTM4bDMwLjItNDUuM2MxLjEtMS43IDMtMi43IDUtMi43SDQ2NGM4LjggMCAxNiA3LjIgMTYgMTZ2NzRjMCAzLjMtMi43IDYtNiA2ek0yNTYgNDI0Yy02Ni4yIDAtMTIwLTUzLjgtMTIwLTEyMHM1My44LTEyMCAxMjAtMTIwIDEyMCA1My44IDEyMCAxMjAtNTMuOCAxMjAtMTIwIDEyMHptMC0yMDhjLTQ4LjUgMC04OCAzOS41LTg4IDg4czM5LjUgODggODggODggODgtMzkuNSA4OC04OC0zOS41LTg4LTg4LTg4em0tNDggMTA0Yy04LjggMC0xNi03LjItMTYtMTYgMC0zNS4zIDI4LjctNjQgNjQtNjQgOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZjLTE3LjYgMC0zMiAxNC40LTMyIDMyIDAgOC44LTcuMiAxNi0xNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FtZXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiAxNDR2Mjg4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYxNDRjMC0yNi41IDIxLjUtNDggNDgtNDhoODhsMTIuMy0zMi45YzctMTguNyAyNC45LTMxLjEgNDQuOS0zMS4xaDEyNS41YzIwIDAgMzcuOSAxMi40IDQ0LjkgMzEuMUwzNzYgOTZoODhjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTM3NiAyODhjMC02Ni4yLTUzLjgtMTIwLTEyMC0xMjBzLTEyMCA1My44LTEyMCAxMjAgNTMuOCAxMjAgMTIwIDEyMCAxMjAtNTMuOCAxMjAtMTIwem0tMzIgMGMwIDQ4LjUtMzkuNSA4OC04OCA4OHMtODgtMzkuNS04OC04OCAzOS41LTg4IDg4LTg4IDg4IDM5LjUgODggODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbXBncm91bmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI0IDQ0OGgtMjQuNjhMMzU5LjU0IDExNy43NWw1My40MS03My41NWM1LjE5LTcuMTUgMy42MS0xNy4xNi0zLjU0LTIyLjM1bC0yNS45LTE4Ljc5Yy03LjE1LTUuMTktMTcuMTUtMy42MS0yMi4zNSAzLjU1TDMyMCA2My4zIDI3OC44MyA2LjZjLTUuMTktNy4xNS0xNS4yLTguNzQtMjIuMzUtMy41NWwtMjUuODggMTguOGMtNy4xNSA1LjE5LTguNzQgMTUuMi0zLjU0IDIyLjM1bDUzLjQxIDczLjU1TDQwLjY4IDQ0OEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNjA4YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnpNMzIwIDI4OGwxMTYuMzYgMTYwSDIwMy42NEwzMjAgMjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYW5keUNhbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk3LjUgOTJDNDY5LjYgMzMuMSA0MTEuOCAwIDM1Mi40IDBjLTI3LjkgMC01Ni4yIDcuMy04MS44IDIyLjZMMjQzLjEgMzljLTE1LjIgOS4xLTIwLjEgMjguNy0xMSA0My45bDMyLjggNTQuOWM2IDEwIDE2LjYgMTUuNiAyNy41IDE1LjYgNS42IDAgMTEuMi0xLjUgMTYuNC00LjVsMjcuNS0xNi40YzUuMS0zLjEgMTAuOC00LjUgMTYuNC00LjUgMTAuOSAwIDIxLjUgNS42IDI3LjUgMTUuNiA5LjEgMTUuMSA0LjEgMzQuOC0xMSA0My45TDE1LjYgMzk3LjZjLTE1LjIgOS4xLTIwLjEgMjguNy0xMSA0My45bDMyLjggNTQuOWM2IDEwIDE2LjYgMTUuNiAyNy41IDE1LjYgNS42IDAgMTEuMi0xLjUgMTYuNC00LjVMNDI4LjYgMzAxYzcxLjctNDIuOSAxMDQuNi0xMzMuNSA2OC45LTIwOXptLTE3Ny43IDEzbC0yLjUgMS41TDI5Ni44IDQ1YzkuNy00LjcgMTkuOC04LjEgMzAuMy0xMC4ybDIwLjYgNjEuOGMtOS44LjgtMTkuNCAzLjMtMjcuOSA4LjR6TTE0NS45IDQzMS44bC02MC41LTM4LjUgMzAuOC0xOC4zIDYwLjUgMzguNS0zMC44IDE4LjN6bTEwNy41LTYzLjlsLTYwLjUtMzguNSAzMC44LTE4LjMgNjAuNSAzOC41LTMwLjggMTguM3pNMzY0LjMgMzAybC02MC41LTM4LjUgMzAuOC0xOC4zIDYwLjUgMzguNS0zMC44IDE4LjN6bTIwLjQtMTk3LjNsNDYtNDZjOC40IDYuNSAxNiAxNC4xIDIyLjYgMjIuNkw0MDcuNiAxMjdjLTUuNy05LjMtMTMuNy0xNi45LTIyLjktMjIuM3ptODIuMSAxMDcuOGwtNTkuNS0xOS44YzMuMi01LjMgNS44LTEwLjkgNy40LTE3LjEgMS4xLTQuNSAxLjctOS4xIDEuOC0xMy42bDYwLjQgMjAuMWMtMi4xIDEwLjQtNS41IDIwLjYtMTAuMSAzMC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYW5uYWJpcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDMuNDcgMzYwLjI1Yy0xLjU2LS44Mi0zMi4zOS0xNi44OS03Ni43OC0yNS44MSA2NC4yNS03NS4xMiA4NC4wNS0xNjEuNjcgODQuOTMtMTY1LjY0IDEuMTgtNS4zMy0uNDQtMTAuOS00LjMtMTQuNzctMy4wMy0zLjA0LTcuMTItNC43LTExLjMyLTQuNy0xLjE0IDAtMi4yOS4xMi0zLjQ0LjM4LTMuODguODUtODYuNTQgMTkuNTktMTYwLjU4IDc5Ljc2LjAxLTEuNDYuMDEtMi45My4wMS00LjQgMC0xMTguNzktNTkuOTgtMjEzLjcyLTYyLjUzLTIxNy43QTE1Ljk3MyAxNS45NzMgMCAwIDAgMjU2IDBjLTUuNDUgMC0xMC41MyAyLjc4LTEzLjQ3IDcuMzctMi41NSAzLjk4LTYyLjUzIDk4LjkxLTYyLjUzIDIxNy43IDAgMS40Ny4wMSAyLjk0LjAxIDQuNC03NC4wMy02MC4xNi0xNTYuNjktNzguOS0xNjAuNTgtNzkuNzYtMS4xNC0uMjUtMi4yOS0uMzgtMy40NC0uMzgtNC4yIDAtOC4yOSAxLjY2LTExLjMyIDQuN0ExNS45ODYgMTUuOTg2IDAgMCAwIC4zOCAxNjguOGMuODggMy45NyAyMC42OCA5MC41MiA4NC45MyAxNjUuNjQtNDQuMzkgOC45Mi03NS4yMSAyNC45OS03Ni43OCAyNS44MWExNi4wMDMgMTYuMDAzIDAgMCAwLS4wMiAyOC4yOWMyLjQ1IDEuMjkgNjAuNzYgMzEuNzIgMTMzLjQ5IDMxLjcyIDYuMTQgMCAxMS45Ni0uMSAxNy41LS4zMS0xMS4zNyAyMi4yMy0xNi41MiAzOC4zMS0xNi44MSAzOS4yMi0xLjggNS42OC0uMjkgMTEuODkgMy45MSAxNi4xMWExNi4wMTkgMTYuMDE5IDAgMCAwIDE2LjEgMy45OWMxLjgzLS41NyAzNy43Mi0xMS45OSA3Ny4zLTM5LjI5VjUwNGMwIDQuNDIgMy41OCA4IDggOGgxNmM0LjQyIDAgOC0zLjU4IDgtOHYtNjQuMDFjMzkuNTggMjcuMyA3NS40NyAzOC43MSA3Ny4zIDM5LjI5YTE2LjAxOSAxNi4wMTkgMCAwIDAgMTYuMS0zLjk5YzQuMi00LjIyIDUuNzEtMTAuNDMgMy45MS0xNi4xMS0uMjktLjkxLTUuNDUtMTYuOTktMTYuODEtMzkuMjIgNS41NC4yMSAxMS4zNy4zMSAxNy41LjMxIDcyLjcyIDAgMTMxLjA0LTMwLjQzIDEzMy40OS0zMS43MiA1LjI0LTIuNzggOC41Mi04LjIyIDguNTEtMTQuMTUtLjAxLTUuOTQtMy4yOS0xMS4zOS04LjUzLTE0LjE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXBzdWxlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NTUuMyAzMDAuMUw0MjQuMiAxMTIuOEM0MDEuOSA4MSAzNjYuNCA2NCAzMzAuNCA2NGMtMjIuNiAwLTQ1LjUgNi43LTY1LjUgMjAuNy0xOS43IDEzLjgtMzMuNyAzMi44LTQxLjUgNTMuOEMyMjAuNSA3OS4yIDE3MiAzMiAxMTIgMzIgNTAuMSAzMiAwIDgyLjEgMCAxNDR2MjI0YzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyczExMi01MC4xIDExMi0xMTJWMjE4LjljMy4zIDguNiA3LjMgMTcuMSAxMi44IDI1TDM2OCA0MzEuMmMyMi4yIDMxLjggNTcuNyA0OC44IDkzLjggNDguOCAyMi43IDAgNDUuNS02LjcgNjUuNS0yMC43IDUxLjctMzYuMiA2NC4yLTEwNy41IDI4LTE1OS4yek0xNjAgMjU2SDY0VjE0NGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4djExMnptMTk0LjggNDQuOWwtNjUuNi05My43Yy03LjctMTEtMTAuNy0yNC40LTguMy0zNy42IDIuMy0xMy4yIDkuNy0yNC44IDIwLjctMzIuNSA4LjUtNiAxOC41LTkuMSAyOC44LTkuMSAxNi41IDAgMzEuOSA4IDQxLjMgMjEuNWw2NS42IDkzLjctODIuNSA1Ny43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ4MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM4LjY2IDIxMi4zM2wtMTEuMjQtMjguMS0xOS45My00OS44M0MzOTAuMzggOTEuNjMgMzQ5LjU3IDY0IDMwMy41IDY0aC0xMjdjLTQ2LjA2IDAtODYuODggMjcuNjMtMTAzLjk5IDcwLjRsLTE5LjkzIDQ5LjgzLTExLjI0IDI4LjFDMTcuMjIgMjIxLjUgMCAyNDQuNjYgMCAyNzJ2NDhjMCAxNi4xMiA2LjE2IDMwLjY3IDE2IDQxLjkzVjQxNmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTMyaDI1NnYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTU0LjA3YzkuODQtMTEuMjUgMTYtMjUuOCAxNi00MS45M3YtNDhjMC0yNy4zNC0xNy4yMi01MC41LTQxLjM0LTU5LjY3em0tMzA2LjczLTU0LjE2YzcuMjktMTguMjIgMjQuOTQtMzAuMTcgNDQuNTctMzAuMTdoMTI3YzE5LjYzIDAgMzcuMjggMTEuOTUgNDQuNTcgMzAuMTdMMzY4IDIwOEgxMTJsMTkuOTMtNDkuODN6TTgwIDMxOS44Yy0xOS4yIDAtMzItMTIuNzYtMzItMzEuOVM2MC44IDI1NiA4MCAyNTZzNDggMjguNzEgNDggNDcuODUtMjguOCAxNS45NS00OCAxNS45NXptMzIwIDBjLTE5LjIgMC00OCAzLjE5LTQ4LTE1Ljk1UzM4MC44IDI1NiA0MDAgMjU2czMyIDEyLjc2IDMyIDMxLjktMTIuOCAzMS45LTMyIDMxLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhckJhdHRlcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDEyOGgtMzJWODBjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTk2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY0OEgxOTJWODBjMC04Ljg0LTcuMTYtMTYtMTYtMTZIODBjLTguODQgMC0xNiA3LjE2LTE2IDE2djQ4SDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjI1NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDQ0OGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjE2MGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyek0xOTIgMjY0YzAgNC40Mi0zLjU4IDgtOCA4SDcyYy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMTEyYzQuNDIgMCA4IDMuNTggOCA4djE2em0yNTYgMGMwIDQuNDItMy41OCA4LTggOGgtNDB2NDBjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHYtNDBoLTQwYy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoNDB2LTQwYzAtNC40MiAzLjU4LTggOC04aDE2YzQuNDIgMCA4IDMuNTggOCA4djQwaDQwYzQuNDIgMCA4IDMuNTggOCA4djE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJDcmFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDMuMjUgMjIwLjgxbC0xMi40MiA0Ni4zN2MtMy4wMSAxMS4yNS0zLjYzIDIyLjg5LTIuNDEgMzQuMzlsLTM1LjIgMjguOThjLTYuNTcgNS40MS0xNi4zMS0uNDMtMTQuNjItOC43N2wxNS40NC03Ni42OGMxLjA2LTUuMjYtMi42Ni0xMC4yOC04LTEwLjc5bC03Ny44Ni03LjU1Yy04LjQ3LS44Mi0xMS4yMy0xMS44My00LjE0LTE2LjU0bDY1LjE1LTQzLjNjNC40Ni0yLjk3IDUuMzgtOS4xNSAxLjk4LTEzLjI5TDIxLjQ2IDkzLjIyYy01LjQxLTYuNTcuNDMtMTYuMyA4Ljc4LTE0LjYybDc2LjY4IDE1LjQ0YzUuMjYgMS4wNiAxMC4yOC0yLjY2IDEwLjgtOGw3LjU1LTc3Ljg2Yy44Mi04LjQ4IDExLjgzLTExLjIzIDE2LjU1LTQuMTRsNDMuMyA2NS4xNGMyLjk3IDQuNDYgOS4xNSA1LjM4IDEzLjI5IDEuOThsNjAuNC00OS43MWM2LjU3LTUuNDEgMTYuMy40MyAxNC42MiA4Ljc3TDI2Mi4xIDg2LjM4Yy0yLjcxIDMuMDUtNS40MyA2LjA5LTcuOTEgOS40bC0zMi4xNSA0Mi45Ny0xMC43MSAxNC4zMmMtMzIuNzMgOC43Ni01OS4xOCAzNC41My02OC4wOCA2Ny43NHptNDk0LjU3IDEzMi41MWwtMTIuNDIgNDYuMzZjLTMuMTMgMTEuNjgtOS4zOCAyMS42MS0xNy41NSAyOS4zNmE2Ni44NzYgNjYuODc2IDAgMCAxLTguNzYgN2wtMTMuOTkgNTIuMjNjLTEuMTQgNC4yNy0zLjEgOC4xLTUuNjUgMTEuMzgtNy42NyA5Ljg0LTIwLjc0IDE0LjY4LTMzLjU0IDExLjI1TDUxNSA1MDIuNjJjLTE3LjA3LTQuNTctMjcuMi0yMi4xMi0yMi42My0zOS4xOWw4LjI4LTMwLjkxLTI0Ny4yOC02Ni4yNi04LjI4IDMwLjkxYy00LjU3IDE3LjA3LTIyLjEyIDI3LjItMzkuMTkgMjIuNjNsLTMwLjkxLTguMjhjLTEyLjgtMy40My0yMS43LTE0LjE2LTIzLjQyLTI2LjUxLS41Ny00LjEyLS4zNS04LjQyLjc5LTEyLjY4bDEzLjk5LTUyLjIzYTY2LjYyIDY2LjYyIDAgMCAxLTQuMDktMTAuNDVjLTMuMi0xMC43OS0zLjY1LTIyLjUyLS41Mi0zNC4ybDEyLjQyLTQ2LjM3YzUuMzEtMTkuOCAxOS4zNi0zNC44MyAzNi44OS00Mi4yMWE2NC4zMzYgNjQuMzM2IDAgMCAxIDE4LjQ5LTQuNzJsMTguMTMtMjQuMjMgMzIuMTUtNDIuOTdjMy40NS00LjYxIDcuMTktOC45IDExLjItMTIuODQgOC03Ljg5IDE3LjAzLTE0LjQ0IDI2Ljc0LTE5LjUxIDQuODYtMi41NCA5Ljg5LTQuNzEgMTUuMDUtNi40OSAxMC4zMy0zLjU4IDIxLjE5LTUuNjMgMzIuMjQtNi4wNCAxMS4wNS0uNDEgMjIuMzEuODIgMzMuNDMgMy44bDEyMi42OCAzMi44N2MxMS4xMiAyLjk4IDIxLjQ4IDcuNTQgMzAuODUgMTMuNDNhMTExLjExIDExMS4xMSAwIDAgMSAzNC42OSAzNC41YzguODIgMTMuODggMTQuNjQgMjkuODQgMTYuNjggNDYuOTlsNi4zNiA1My4yOSAzLjU5IDMwLjA1YTY0LjQ5IDY0LjQ5IDAgMCAxIDIyLjc0IDI5LjkzYzQuMzkgMTEuODggNS4yOSAyNS4xOSAxLjc1IDM4LjM5ek0yNTUuNTggMjM0LjM0Yy0xOC41NS00Ljk3LTM0LjIxIDQuMDQtMzkuMTcgMjIuNTMtNC45NiAxOC40OSA0LjExIDM0LjEyIDIyLjY1IDM5LjA5IDE4LjU1IDQuOTcgNDUuNTQgMTUuNTEgNTAuNDktMi45OCA0Ljk2LTE4LjQ5LTE1LjQzLTUzLjY3LTMzLjk3LTU4LjY0em0yOTAuNjEgMjguMTdsLTYuMzYtNTMuMjljLS41OC00Ljg3LTEuODktOS41My0zLjgyLTEzLjg2LTUuOC0xMi45OS0xNy4yLTIzLjAxLTMxLjQyLTI2LjgybC0xMjIuNjgtMzIuODdhNDguMDA4IDQ4LjAwOCAwIDAgMC01MC44NiAxNy42MWwtMzIuMTUgNDIuOTcgMTcyIDQ2LjA4IDc1LjI5IDIwLjE4em0xOC40OSA1NC42NWMtMTguNTUtNC45Ny01My44IDE1LjMxLTU4Ljc1IDMzLjc5LTQuOTUgMTguNDkgMjMuNjkgMjIuODYgNDIuMjQgMjcuODMgMTguNTUgNC45NyAzNC4yMS00LjA0IDM5LjE3LTIyLjUzIDQuOTUtMTguNDgtNC4xMS0zNC4xMi0yMi42Ni0zOS4wOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyU2lkZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDQgMTkyaC0xNkw0MTkuMjIgNTYuMDJBNjQuMDI1IDY0LjAyNSAwIDAgMCAzNjkuMjQgMzJIMTU1LjMzYy0yNi4xNyAwLTQ5LjcgMTUuOTMtNTkuNDIgNDAuMjNMNDggMTk0LjI2QzIwLjQ0IDIwMS40IDAgMjI2LjIxIDAgMjU2djExMmMwIDguODQgNy4xNiAxNiAxNiAxNmg0OGMwIDUzLjAyIDQyLjk4IDk2IDk2IDk2czk2LTQyLjk4IDk2LTk2aDEyOGMwIDUzLjAyIDQyLjk4IDk2IDk2IDk2czk2LTQyLjk4IDk2LTk2aDQ4YzguODQgMCAxNi03LjE2IDE2LTE2di04MGMwLTUzLjAyLTQyLjk4LTk2LTk2LTk2ek0xNjAgNDMyYy0yNi40NyAwLTQ4LTIxLjUzLTQ4LTQ4czIxLjUzLTQ4IDQ4LTQ4IDQ4IDIxLjUzIDQ4IDQ4LTIxLjUzIDQ4LTQ4IDQ4em03Mi0yNDBIMTE2LjkzbDM4LjQtOTZIMjMydjk2em00OCAwVjk2aDg5LjI0bDc2LjggOTZIMjgwem0yMDAgMjQwYy0yNi40NyAwLTQ4LTIxLjUzLTQ4LTQ4czIxLjUzLTQ4IDQ4LTQ4IDQ4IDIxLjUzIDQ4IDQ4LTIxLjUzIDQ4LTQ4IDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk5Ljk5IDE3NmgtNTkuODdsLTE2LjY0LTQxLjZDNDA2LjM4IDkxLjYzIDM2NS41NyA2NCAzMTkuNSA2NGgtMTI3Yy00Ni4wNiAwLTg2Ljg4IDI3LjYzLTEwMy45OSA3MC40TDcxLjg3IDE3NkgxMi4wMUM0LjIgMTc2LTEuNTMgMTgzLjM0LjM3IDE5MC45MWw2IDI0QzcuNyAyMjAuMjUgMTIuNSAyMjQgMTguMDEgMjI0aDIwLjA3QzI0LjY1IDIzNS43MyAxNiAyNTIuNzggMTYgMjcydjQ4YzAgMTYuMTIgNi4xNiAzMC42NyAxNiA0MS45M1Y0MTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmgyNTZ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi01NC4wN2M5Ljg0LTExLjI1IDE2LTI1LjggMTYtNDEuOTN2LTQ4YzAtMTkuMjItOC42NS0zNi4yNy0yMi4wNy00OEg0OTRjNS41MSAwIDEwLjMxLTMuNzUgMTEuNjQtOS4wOWw2LTI0YzEuODktNy41Ny0zLjg0LTE0LjkxLTExLjY1LTE0Ljkxem0tMzUyLjA2LTE3LjgzYzcuMjktMTguMjIgMjQuOTQtMzAuMTcgNDQuNTctMzAuMTdoMTI3YzE5LjYzIDAgMzcuMjggMTEuOTUgNDQuNTcgMzAuMTdMMzg0IDIwOEgxMjhsMTkuOTMtNDkuODN6TTk2IDMxOS44Yy0xOS4yIDAtMzItMTIuNzYtMzItMzEuOVM3Ni44IDI1NiA5NiAyNTZzNDggMjguNzEgNDggNDcuODUtMjguOCAxNS45NS00OCAxNS45NXptMzIwIDBjLTE5LjIgMC00OCAzLjE5LTQ4LTE1Ljk1UzM5Ni44IDI1NiA0MTYgMjU2czMyIDEyLjc2IDMyIDMxLjktMTIuOCAzMS45LTMyIDMxLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcmF2YW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2LDIwOGExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCw0MTYsMjA4Wk02MjQsMzIwSDU3NlYxNjBBMTYwLDE2MCwwLDAsMCw0MTYsMEg2NEE2NCw2NCwwLDAsMCwwLDY0VjMyMGE2NCw2NCwwLDAsMCw2NCw2NEg5NmE5Niw5NiwwLDAsMCwxOTIsMEg2MjRhMTYsMTYsMCwwLDAsMTYtMTZWMzM2QTE2LDE2LDAsMCwwLDYyNCwzMjBaTTE5Miw0MzJhNDgsNDgsMCwxLDEsNDgtNDhBNDguMDUsNDguMDUsMCwwLDEsMTkyLDQzMlptNjQtMjQwYTMyLDMyLDAsMCwxLTMyLDMySDk2YTMyLDMyLDAsMCwxLTMyLTMyVjEyOEEzMiwzMiwwLDAsMSw5Niw5NkgyMjRhMzIsMzIsMCwwLDEsMzIsMzJaTTQ0OCwzMjBIMzIwVjEyOGEzMiwzMiwwLDAsMSwzMi0zMmg2NGEzMiwzMiwwLDAsMSwzMiwzMlpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyZXREb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxLjMgMTkyaDI1Ny4zYzE3LjggMCAyNi43IDIxLjUgMTQuMSAzNC4xTDE3NC4xIDM1NC44Yy03LjggNy44LTIwLjUgNy44LTI4LjMgMEwxNy4yIDIyNi4xQzQuNiAyMTMuNSAxMy41IDE5MiAzMS4zIDE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyZXRMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAxOTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiAxMjcuMzM4djI1Ny4zMjRjMCAxNy44MTgtMjEuNTQzIDI2Ljc0MS0zNC4xNDIgMTQuMTQyTDI5LjE5NiAyNzAuMTQyYy03LjgxLTcuODEtNy44MS0yMC40NzQgMC0yOC4yODRsMTI4LjY2Mi0xMjguNjYyYzEyLjU5OS0xMi42IDM0LjE0Mi0zLjY3NiAzNC4xNDIgMTQuMTQyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJldFJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAxOTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzg0LjY2MlYxMjcuMzM4YzAtMTcuODE4IDIxLjU0My0yNi43NDEgMzQuMTQyLTE0LjE0MmwxMjguNjYyIDEyOC42NjJjNy44MSA3LjgxIDcuODEgMjAuNDc0IDAgMjguMjg0TDM0LjE0MiAzOTguODA0QzIxLjU0MyA0MTEuNDA0IDAgNDAyLjQ4IDAgMzg0LjY2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyZXRTcXVhcmVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDM1MmMyNi41IDAgNDggMjEuNSA0OCA0OHpNOTIuNSAyMjAuNWwxMjMgMTIzYzQuNyA0LjcgMTIuMyA0LjcgMTcgMGwxMjMtMTIzYzcuNi03LjYgMi4yLTIwLjUtOC41LTIwLjVIMTAxYy0xMC43IDAtMTYuMSAxMi45LTguNSAyMC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJldFNxdWFyZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDQ4MEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFY4MGMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDM1MmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4djM1MmMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4ek0yNTkuNTE1IDEyNC40ODVsLTEyMy4wMyAxMjMuMDNjLTQuNjg2IDQuNjg2LTQuNjg2IDEyLjI4NCAwIDE2Ljk3MWwxMjMuMDI5IDEyMy4wMjljNy41NiA3LjU2IDIwLjQ4NSAyLjIwNiAyMC40ODUtOC40ODVWMTMyLjk3MWMuMDAxLTEwLjY5MS0xMi45MjUtMTYuMDQ1LTIwLjQ4NC04LjQ4NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyZXRTcXVhcmVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCAzMmgzNTJjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHYzNTJjMCAyNi41MS0yMS40OSA0OC00OCA0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFY4MGMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4em0xNDAuNDg1IDM1NS41MTVsMTIzLjAyOS0xMjMuMDI5YzQuNjg2LTQuNjg2IDQuNjg2LTEyLjI4NCAwLTE2Ljk3MWwtMTIzLjAyOS0xMjMuMDNjLTcuNTYtNy41Ni0yMC40ODUtMi4yMDYtMjAuNDg1IDguNDg1djI0Ni4wNTljMCAxMC42OTEgMTIuOTI2IDE2LjA0NSAyMC40ODUgOC40ODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcmV0U3F1YXJlVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0MzJWODBjMC0yNi41MSAyMS40OS00OCA0OC00OGgzNTJjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHYzNTJjMCAyNi41MS0yMS40OSA0OC00OCA0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OHptMzU1LjUxNS0xNDAuNDg1bC0xMjMuMDMtMTIzLjAzYy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcxIDBMOTIuNDg1IDI5MS41MTVjLTcuNTYgNy41Ni0yLjIwNiAyMC40ODUgOC40ODUgMjAuNDg1aDI0Ni4wNTljMTAuNjkxIDAgMTYuMDQ1LTEyLjkyNiA4LjQ4Ni0yMC40ODV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcmV0VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4LjY2MiAzNTJIMzEuMzM4Yy0xNy44MTggMC0yNi43NDEtMjEuNTQzLTE0LjE0Mi0zNC4xNDJsMTI4LjY2Mi0xMjguNjYyYzcuODEtNy44MSAyMC40NzQtNy44MSAyOC4yODQgMGwxMjguNjYyIDEyOC42NjJjMTIuNiAxMi41OTkgMy42NzYgMzQuMTQyLTE0LjE0MiAzNC4xNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcnJvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTguMiAxNTYuNmMtNTIuNy0yNS43LTExNC41LTEwLjUtMTUwLjIgMzIuOGw1NS4yIDU1LjJjNi4zIDYuMyA2LjMgMTYuNCAwIDIyLjYtMy4xIDMuMS03LjIgNC43LTExLjMgNC43cy04LjItMS42LTExLjMtNC43TDEzMC40IDIxNyAyLjMgNDc5LjdjLTIuOSA2LTMuMSAxMy4zIDAgMTkuNyA1LjQgMTEuMSAxOC45IDE1LjcgMzAgMTAuM2wxMzMuNi02NS4yLTQ5LjItNDkuMmMtNi4zLTYuMi02LjMtMTYuNCAwLTIyLjYgNi4zLTYuMiAxNi40LTYuMiAyMi42IDBsNTcgNTcgMTAyLTQ5LjhjMjQtMTEuNyA0NC41LTMxLjMgNTcuMS01Ny4xIDMwLjEtNjEuNyA0LjUtMTM2LjEtNTcuMi0xNjYuMnptOTIuMS0zNC45QzQwOS44IDgxIDM5OS43IDMyLjkgMzYwIDBjLTUwLjMgNDEuNy01Mi41IDEwNy41LTcuOSAxNTEuOWw4IDhjNDQuNCA0NC42IDExMC4zIDQyLjQgMTUxLjktNy45LTMyLjktMzkuNy04MS00OS44LTEyMS43LTMwLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcnRBcnJvd0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA0LjcxNyAzMjBIMjExLjU3Mmw2LjU0NSAzMmgyNjguNDE4YzE1LjQwMSAwIDI2LjgxNiAxNC4zMDEgMjMuNDAzIDI5LjMxOWwtNS41MTcgMjQuMjc2QzUyMy4xMTIgNDE0LjY2OCA1MzYgNDMzLjgyOCA1MzYgNDU2YzAgMzEuMjAyLTI1LjUxOSA1Ni40NDQtNTYuODI0IDU1Ljk5NC0yOS44MjMtLjQyOS01NC4zNS0yNC42MzEtNTUuMTU1LTU0LjQ0Ny0uNDQtMTYuMjg3IDYuMDg1LTMxLjA0OSAxNi44MDMtNDEuNTQ4SDIzMS4xNzZDMjQxLjU1MyA0MjYuMTY1IDI0OCA0NDAuMzI2IDI0OCA0NTZjMCAzMS44MTMtMjYuNTI4IDU3LjQzMS01OC42NyA1NS45MzgtMjguNTQtMS4zMjUtNTEuNzUxLTI0LjM4NS01My4yNTEtNTIuOTE3LTEuMTU4LTIyLjAzNCAxMC40MzYtNDEuNDU1IDI4LjA1MS01MS41ODZMOTMuODgzIDY0SDI0QzEwLjc0NSA2NCAwIDUzLjI1NSAwIDQwVjI0QzAgMTAuNzQ1IDEwLjc0NSAwIDI0IDBoMTAyLjUyOWMxMS40MDEgMCAyMS4yMjggOC4wMjEgMjMuNTEzIDE5LjE5TDE1OS4yMDggNjRINTUxLjk5YzE1LjQwMSAwIDI2LjgxNiAxNC4zMDEgMjMuNDAzIDI5LjMxOWwtNDcuMjczIDIwOEM1MjUuNjM3IDMxMi4yNDYgNTE1LjkyMyAzMjAgNTA0LjcxNyAzMjB6TTQwMy4wMjkgMTkySDM2MHYtNjBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtMjRjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NjBoLTQzLjAyOWMtMTAuNjkxIDAtMTYuMDQ1IDEyLjkyNi04LjQ4NSAyMC40ODVsNjcuMDI5IDY3LjAyOWM0LjY4NiA0LjY4NiAxMi4yODQgNC42ODYgMTYuOTcxIDBsNjcuMDI5LTY3LjAyOWM3LjU1OS03LjU1OSAyLjIwNS0yMC40ODUtOC40ODYtMjAuNDg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJ0UGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQuNzE3IDMyMEgyMTEuNTcybDYuNTQ1IDMyaDI2OC40MThjMTUuNDAxIDAgMjYuODE2IDE0LjMwMSAyMy40MDMgMjkuMzE5bC01LjUxNyAyNC4yNzZDNTIzLjExMiA0MTQuNjY4IDUzNiA0MzMuODI4IDUzNiA0NTZjMCAzMS4yMDItMjUuNTE5IDU2LjQ0NC01Ni44MjQgNTUuOTk0LTI5LjgyMy0uNDI5LTU0LjM1LTI0LjYzMS01NS4xNTUtNTQuNDQ3LS40NC0xNi4yODcgNi4wODUtMzEuMDQ5IDE2LjgwMy00MS41NDhIMjMxLjE3NkMyNDEuNTUzIDQyNi4xNjUgMjQ4IDQ0MC4zMjYgMjQ4IDQ1NmMwIDMxLjgxMy0yNi41MjggNTcuNDMxLTU4LjY3IDU1LjkzOC0yOC41NC0xLjMyNS01MS43NTEtMjQuMzg1LTUzLjI1MS01Mi45MTctMS4xNTgtMjIuMDM0IDEwLjQzNi00MS40NTUgMjguMDUxLTUxLjU4Nkw5My44ODMgNjRIMjRDMTAuNzQ1IDY0IDAgNTMuMjU1IDAgNDBWMjRDMCAxMC43NDUgMTAuNzQ1IDAgMjQgMGgxMDIuNTI5YzExLjQwMSAwIDIxLjIyOCA4LjAyMSAyMy41MTMgMTkuMTlMMTU5LjIwOCA2NEg1NTEuOTljMTUuNDAxIDAgMjYuODE2IDE0LjMwMSAyMy40MDMgMjkuMzE5bC00Ny4yNzMgMjA4QzUyNS42MzcgMzEyLjI0NiA1MTUuOTIzIDMyMCA1MDQuNzE3IDMyMHpNNDA4IDE2OGgtNDh2LTQwYzAtOC44MzctNy4xNjMtMTYtMTYtMTZoLTE2Yy04LjgzNyAwLTE2IDcuMTYzLTE2IDE2djQwaC00OGMtOC44MzcgMC0xNiA3LjE2My0xNiAxNnYxNmMwIDguODM3IDcuMTYzIDE2IDE2IDE2aDQ4djQwYzAgOC44MzcgNy4xNjMgMTYgMTYgMTZoMTZjOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtNDBoNDhjOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtMTZjMC04LjgzNy03LjE2My0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FzaFJlZ2lzdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMS4xIDM3OC44bC0yNi43LTE2MGMtMi42LTE1LjQtMTUuOS0yNi43LTMxLjYtMjYuN0gyMDh2LTY0aDk2YzguOCAwIDE2LTcuMiAxNi0xNlYxNmMwLTguOC03LjItMTYtMTYtMTZINDhjLTguOCAwLTE2IDcuMi0xNiAxNnY5NmMwIDguOCA3LjIgMTYgMTYgMTZoOTZ2NjRINTkuMWMtMTUuNiAwLTI5IDExLjMtMzEuNiAyNi43TC44IDM3OC43Yy0uNiAzLjUtLjkgNy0uOSAxMC41VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg0NDhjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTkwLjdjLjEtMy41LS4yLTctLjgtMTAuNXpNMjgwIDI0OGMwLTguOCA3LjItMTYgMTYtMTZoMTZjOC44IDAgMTYgNy4yIDE2IDE2djE2YzAgOC44LTcuMiAxNi0xNiAxNmgtMTZjLTguOCAwLTE2LTcuMi0xNi0xNnYtMTZ6bS0zMiA2NGgxNmM4LjggMCAxNiA3LjIgMTYgMTZ2MTZjMCA4LjgtNy4yIDE2LTE2IDE2aC0xNmMtOC44IDAtMTYtNy4yLTE2LTE2di0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bS0zMi04MGM4LjggMCAxNiA3LjIgMTYgMTZ2MTZjMCA4LjgtNy4yIDE2LTE2IDE2aC0xNmMtOC44IDAtMTYtNy4yLTE2LTE2di0xNmMwLTguOCA3LjItMTYgMTYtMTZoMTZ6TTgwIDgwVjQ4aDE5MnYzMkg4MHptNDAgMjAwaC0xNmMtOC44IDAtMTYtNy4yLTE2LTE2di0xNmMwLTguOCA3LjItMTYgMTYtMTZoMTZjOC44IDAgMTYgNy4yIDE2IDE2djE2YzAgOC44LTcuMiAxNi0xNiAxNnptMTYgNjR2LTE2YzAtOC44IDcuMi0xNiAxNi0xNmgxNmM4LjggMCAxNiA3LjIgMTYgMTZ2MTZjMCA4LjgtNy4yIDE2LTE2IDE2aC0xNmMtOC44IDAtMTYtNy4yLTE2LTE2em0yMTYgMTEyYzAgNC40LTMuNiA4LTggOEgxNjhjLTQuNCAwLTgtMy42LTgtOHYtMTZjMC00LjQgMy42LTggOC04aDE3NmM0LjQgMCA4IDMuNiA4IDh2MTZ6bTI0LTExMmMwIDguOC03LjIgMTYtMTYgMTZoLTE2Yy04LjggMC0xNi03LjItMTYtMTZ2LTE2YzAtOC44IDcuMi0xNiAxNi0xNmgxNmM4LjggMCAxNiA3LjIgMTYgMTZ2MTZ6bTQ4LTgwYzAgOC44LTcuMiAxNi0xNiAxNmgtMTZjLTguOCAwLTE2LTcuMi0xNi0xNnYtMTZjMC04LjggNy4yLTE2IDE2LTE2aDE2YzguOCAwIDE2IDcuMiAxNiAxNnYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2F0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5MC41OSAxOTJjLTIwLjE4IDAtMTA2LjgyIDEuOTgtMTYyLjU5IDg1Ljk1VjE5MmMwLTUyLjk0LTQzLjA2LTk2LTk2LTk2LTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJzMTQuMzMgMzIgMzIgMzJjMTcuNjQgMCAzMiAxNC4zNiAzMiAzMnYyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRoMTc2YzguODQgMCAxNi03LjE2IDE2LTE2di0xNmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC0zMmwxMjgtOTZ2MTQ0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2VjI4OS44NmMtMTAuMjkgMi42Ny0yMC44OSA0LjU0LTMyIDQuNTQtNjEuODEgMC0xMTMuNTItNDQuMDUtMTI1LjQxLTEwMi40ek00NDggOTZoLTY0bC02NC02NHYxMzQuNGMwIDUzLjAyIDQyLjk4IDk2IDk2IDk2czk2LTQyLjk4IDk2LTk2VjMybC02NCA2NHptLTcyIDgwYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnM3LjE2LTE2IDE2LTE2IDE2IDcuMTYgMTYgMTYtNy4xNiAxNi0xNiAxNnptODAgMGMtOC44NCAwLTE2LTcuMTYtMTYtMTZzNy4xNi0xNiAxNi0xNiAxNiA3LjE2IDE2IDE2LTcuMTYgMTYtMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNlcnRpZmljYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1OC42MjIgMjU1LjkybDQ1Ljk4NS00NS4wMDVjMTMuNzA4LTEyLjk3NyA3LjMxNi0zNi4wMzktMTAuNjY0LTQwLjMzOWwtNjIuNjUtMTUuOTkgMTcuNjYxLTYyLjAxNWM0Ljk5MS0xNy44MzgtMTEuODI5LTM0LjY2My0yOS42NjEtMjkuNjcxbC02MS45OTQgMTcuNjY3LTE1Ljk4NC02Mi42NzFDMzM3LjA4NS4xOTcgMzEzLjc2NS02LjI3NiAzMDAuOTkgNy4yMjhMMjU2IDUzLjU3IDIxMS4wMTEgNy4yMjljLTEyLjYzLTEzLjM1MS0zNi4wNDctNy4yMzQtNDAuMzI1IDEwLjY2OGwtMTUuOTg0IDYyLjY3MS02MS45OTUtMTcuNjY3Qzc0Ljg3IDU3LjkwNyA1OC4wNTYgNzQuNzM4IDYzLjA0NiA5Mi41NzJsMTcuNjYxIDYyLjAxNS02Mi42NSAxNS45OUMuMDY5IDE3NC44NzgtNi4zMSAxOTcuOTQ0IDcuMzkyIDIxMC45MTVsNDUuOTg1IDQ1LjAwNS00NS45ODUgNDUuMDA0Yy0xMy43MDggMTIuOTc3LTcuMzE2IDM2LjAzOSAxMC42NjQgNDAuMzM5bDYyLjY1IDE1Ljk5LTE3LjY2MSA2Mi4wMTVjLTQuOTkxIDE3LjgzOCAxMS44MjkgMzQuNjYzIDI5LjY2MSAyOS42NzFsNjEuOTk0LTE3LjY2NyAxNS45ODQgNjIuNjcxYzQuNDM5IDE4LjU3NSAyNy42OTYgMjQuMDE4IDQwLjMyNSAxMC42NjhMMjU2IDQ1OC42MWw0NC45ODkgNDYuMDAxYzEyLjUgMTMuNDg4IDM1Ljk4NyA3LjQ4NiA0MC4zMjUtMTAuNjY4bDE1Ljk4NC02Mi42NzEgNjEuOTk0IDE3LjY2N2MxNy44MzYgNC45OTQgMzQuNjUxLTExLjgzNyAyOS42NjEtMjkuNjcxbC0xNy42NjEtNjIuMDE1IDYyLjY1LTE1Ljk5YzE3Ljk4Ny00LjMwMiAyNC4zNjYtMjcuMzY3IDEwLjY2NC00MC4zMzlsLTQ1Ljk4NC00NS4wMDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYWlyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMiAxMjhjMC0yOS41IDE2LjItNTUgNDAtNjguOVYyNTZoNDhWNDhoNDh2MjA4aDQ4VjU5LjFjMjMuOCAxMy45IDQwIDM5LjQgNDAgNjguOXYxMjhoNDhWMTI4QzM4NCA1Ny4zIDMyNi43IDAgMjU2IDBoLTY0QzEyMS4zIDAgNjQgNTcuMyA2NCAxMjh2MTI4aDQ4em0zMzQuMyAyMTMuOWwtMTAuNy0zMmMtNC40LTEzLjEtMTYuNi0yMS45LTMwLjQtMjEuOUg0Mi43Yy0xMy44IDAtMjYgOC44LTMwLjQgMjEuOWwtMTAuNyAzMkMtNS4yIDM2Mi42IDEwLjIgMzg0IDMyIDM4NHYxMTJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzODRoMjU2djExMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjM4NGMyMS44IDAgMzcuMi0yMS40IDMwLjMtNDIuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hhbGtib2FyZFRlYWNoZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA4IDM1MmMtMi4zOSAwLTQuNzguMzUtNy4wNiAxLjA5QzE4Ny45OCAzNTcuMyAxNzQuMzUgMzYwIDE2MCAzNjBjLTE0LjM1IDAtMjcuOTgtMi43LTQwLjk1LTYuOTEtMi4yOC0uNzQtNC42Ni0xLjA5LTcuMDUtMS4wOUM0OS45NCAzNTItLjMzIDQwMi40OCAwIDQ2NC42Mi4xNCA0OTAuODggMjEuNzMgNTEyIDQ4IDUxMmgyMjRjMjYuMjcgMCA0Ny44Ni0yMS4xMiA0OC00Ny4zOC4zMy02Mi4xNC00OS45NC0xMTIuNjItMTEyLTExMi42MnptLTQ4LTMyYzUzLjAyIDAgOTYtNDIuOTggOTYtOTZzLTQyLjk4LTk2LTk2LTk2LTk2IDQyLjk4LTk2IDk2IDQyLjk4IDk2IDk2IDk2ek01OTIgMEgyMDhjLTI2LjQ3IDAtNDggMjIuMjUtNDggNDkuNTlWOTZjMjMuNDIgMCA0NS4xIDYuNzggNjQgMTcuOFY2NGgzNTJ2Mjg4aC02NHYtNjRIMzg0djY0aC03Ni4yNGMxOS4xIDE2LjY5IDMzLjEyIDM4LjczIDM5LjY5IDY0SDU5MmMyNi40NyAwIDQ4LTIyLjI1IDQ4LTQ5LjU5VjQ5LjU5QzY0MCAyMi4yNSA2MTguNDcgMCA1OTIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hhbGtib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiA2NGg0NDh2MzUyaDY0VjQwYzAtMjIuMDYtMTcuOTQtNDAtNDAtNDBINzJDNDkuOTQgMCAzMiAxNy45NCAzMiA0MHYzNzZoNjRWNjR6bTUyOCAzODRINDgwdi02NEgyODh2NjRIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDYwOGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYXJnaW5nU3RhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYgNDQ4SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmgzMjBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2em0yMDgtMzIwVjgwYzAtOC44NC03LjE2LTE2LTE2LTE2cy0xNiA3LjE2LTE2IDE2djQ4aC0zMlY4MGMwLTguODQtNy4xNi0xNi0xNi0xNnMtMTYgNy4xNi0xNiAxNnY0OGgtMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgMzUuNzYgMjMuNjIgNjUuNjkgNTYgNzUuOTN2MTE4LjQ5YzAgMTMuOTUtOS41IDI2LjkyLTIzLjI2IDI5LjE5QzQzMS4yMiA0MDIuNSA0MTYgMzg4Ljk5IDQxNiAzNzJ2LTI4YzAtNDguNi0zOS40LTg4LTg4LTg4aC04VjY0YzAtMzUuMzUtMjguNjUtNjQtNjQtNjRIOTZDNjAuNjUgMCAzMiAyOC42NSAzMiA2NHYzNTJoMjg4VjMwNGg4YzIyLjA5IDAgNDAgMTcuOTEgNDAgNDB2MjQuNjFjMCAzOS42NyAyOC45MiA3NS4xNiA2OC40MSA3OS4wMUM0ODEuNzEgNDUyLjA1IDUyMCA0MTYuNDEgNTIwIDM3MlYyNTEuOTNjMzIuMzgtMTAuMjQgNTYtNDAuMTcgNTYtNzUuOTN2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2aC0xNnptLTI4My45MSA0Ny43NmwtOTMuNyAxMzljLTIuMiAzLjMzLTYuMjEgNS4yNC0xMC4zOSA1LjI0LTcuNjcgMC0xMy40Ny02LjI4LTExLjY3LTEyLjkyTDE2Ny4zNSAyMjRIMTA4Yy03LjI1IDAtMTIuODUtNS41OS0xMS44OS0xMS44OWwxNi0xMDdDMTEyLjkgOTkuOSAxMTcuOTggOTYgMTI0IDk2aDY4YzcuODggMCAxMy42MiA2LjU0IDExLjYgMTMuMjFMMTkyIDE2MGg1Ny43YzkuMjQgMCAxNS4wMSA4Ljc4IDEwLjM5IDE1Ljc2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGFydEFyZWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAwIDM4NGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDBjMCA2LjYtNS40IDEyLTEyIDEySDEyYy02LjYgMC0xMi01LjQtMTItMTJWNzZjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnYzMDhoNDM2ek0zNzIuNyAxNTkuNUwyODggMjE2bC04NS4zLTExMy43Yy01LjEtNi44LTE1LjUtNi4zLTE5LjkgMUw5NiAyNDh2MTA0aDM4NGwtODkuOS0xODcuOGMtMy4yLTYuNS0xMS40LTguNy0xNy40LTQuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hhcnRCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzMyLjggMzIwaDM4LjRjNi40IDAgMTIuOC02LjQgMTIuOC0xMi44VjE3Mi44YzAtNi40LTYuNC0xMi44LTEyLjgtMTIuOGgtMzguNGMtNi40IDAtMTIuOCA2LjQtMTIuOCAxMi44djEzNC40YzAgNi40IDYuNCAxMi44IDEyLjggMTIuOHptOTYgMGgzOC40YzYuNCAwIDEyLjgtNi40IDEyLjgtMTIuOFY3Ni44YzAtNi40LTYuNC0xMi44LTEyLjgtMTIuOGgtMzguNGMtNi40IDAtMTIuOCA2LjQtMTIuOCAxMi44djIzMC40YzAgNi40IDYuNCAxMi44IDEyLjggMTIuOHptLTI4OCAwaDM4LjRjNi40IDAgMTIuOC02LjQgMTIuOC0xMi44di03MC40YzAtNi40LTYuNC0xMi44LTEyLjgtMTIuOGgtMzguNGMtNi40IDAtMTIuOCA2LjQtMTIuOCAxMi44djcwLjRjMCA2LjQgNi40IDEyLjggMTIuOCAxMi44em05NiAwaDM4LjRjNi40IDAgMTIuOC02LjQgMTIuOC0xMi44VjEwOC44YzAtNi40LTYuNC0xMi44LTEyLjgtMTIuOGgtMzguNGMtNi40IDAtMTIuOCA2LjQtMTIuOCAxMi44djE5OC40YzAgNi40IDYuNCAxMi44IDEyLjggMTIuOHpNNDk2IDM4NEg2NFY4MGMwLTguODQtNy4xNi0xNi0xNi0xNkgxNkM3LjE2IDY0IDAgNzEuMTYgMCA4MHYzMzZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg0NjRjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGFydExpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2IDM4NEg2NFY4MGMwLTguODQtNy4xNi0xNi0xNi0xNkgxNkM3LjE2IDY0IDAgNzEuMTYgMCA4MHYzMzZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg0NjRjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2ek00NjQgOTZIMzQ1Ljk0Yy0yMS4zOCAwLTMyLjA5IDI1Ljg1LTE2Ljk3IDQwLjk3bDMyLjQgMzIuNEwyODggMjQyLjc1bC03My4zNy03My4zN2MtMTIuNS0xMi41LTMyLjc2LTEyLjUtNDUuMjUgMGwtNjguNjkgNjguNjljLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNsMjIuNjIgMjIuNjJjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMEwxOTIgMjM3LjI1bDczLjM3IDczLjM3YzEyLjUgMTIuNSAzMi43NiAxMi41IDQ1LjI1IDBsOTYtOTYgMzIuNCAzMi40YzE1LjEyIDE1LjEyIDQwLjk3IDQuNDEgNDAuOTctMTYuOTdWMTEyYy4wMS04Ljg0LTcuMTUtMTYtMTUuOTktMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYXJ0UGllIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NDQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyNy43OSAyODhIMjkwLjVsMTU4LjAzIDE1OC4wM2M2LjA0IDYuMDQgMTUuOTggNi41MyAyMi4xOS42OCAzOC43LTM2LjQ2IDY1LjMyLTg1LjYxIDczLjEzLTE0MC44NiAxLjM0LTkuNDYtNi41MS0xNy44NS0xNi4wNi0xNy44NXptLTE1LjgzLTY0LjhDNTAzLjcyIDEwMy43NCA0MDguMjYgOC4yOCAyODguOC4wNCAyNzkuNjgtLjU5IDI3MiA3LjEgMjcyIDE2LjI0VjI0MGgyMjMuNzdjOS4xNCAwIDE2LjgyLTcuNjggMTYuMTktMTYuOHpNMjI0IDI4OFY1MC43MWMwLTkuNTUtOC4zOS0xNy40LTE3Ljg0LTE2LjA2Qzg2Ljk5IDUxLjQ5LTQuMSAxNTUuNi4xNCAyODAuMzcgNC41IDQwOC41MSAxMTQuODMgNTEzLjU5IDI0My4wMyA1MTEuOThjNTAuNC0uNjMgOTYuOTctMTYuODcgMTM1LjI2LTQ0LjAzIDcuOS01LjYgOC40Mi0xNy4yMyAxLjU3LTI0LjA4TDIyNCAyODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZWNrQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNCAyNTZjMCAxMzYuOTY3LTExMS4wMzMgMjQ4LTI0OCAyNDhTOCAzOTIuOTY3IDggMjU2IDExOS4wMzMgOCAyNTYgOHMyNDggMTExLjAzMyAyNDggMjQ4ek0yMjcuMzE0IDM4Ny4zMTRsMTg0LTE4NGM2LjI0OC02LjI0OCA2LjI0OC0xNi4zNzkgMC0yMi42MjdsLTIyLjYyNy0yMi42MjdjLTYuMjQ4LTYuMjQ5LTE2LjM3OS02LjI0OS0yMi42MjggMEwyMTYgMzA4LjExOGwtNzAuMDU5LTcwLjA1OWMtNi4yNDgtNi4yNDgtMTYuMzc5LTYuMjQ4LTIyLjYyOCAwbC0yMi42MjcgMjIuNjI3Yy02LjI0OCA2LjI0OC02LjI0OCAxNi4zNzkgMCAyMi42MjdsMTA0IDEwNGM2LjI0OSA2LjI0OSAxNi4zNzkgNi4yNDkgMjIuNjI4LjAwMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlY2tEb3VibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA1IDE3NC44bC0zOS42LTM5LjZjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDE5MiAzNzQuNyA4MC42IDI2My4yYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw3IDMwMi45Yy05LjQgOS40LTkuNCAyNC42IDAgMzRMMTc1IDUwNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGwyOTYtMjk2LjJjOS40LTkuNSA5LjQtMjQuNy4xLTM0em0tMzI0LjMgMTA2YzYuMiA2LjMgMTYuNCA2LjMgMjIuNiAwbDIwOC0yMDguMmM2LjItNi4zIDYuMi0xNi40IDAtMjIuNkwzNjYuMSA0LjdjLTYuMi02LjMtMTYuNC02LjMtMjIuNiAwTDE5MiAxNTYuMmwtNTUuNC01NS41Yy02LjItNi4zLTE2LjQtNi4zLTIyLjYgMEw2OC43IDE0NmMtNi4yIDYuMy02LjIgMTYuNCAwIDIyLjZsMTEyIDExMi4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGVja1NxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgNDgwSDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjgwYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoMzUyYzI2LjUxIDAgNDggMjEuNDkgNDggNDh2MzUyYzAgMjYuNTEtMjEuNDkgNDgtNDggNDh6bS0yMDQuNjg2LTk4LjA1OWwxODQtMTg0YzYuMjQ4LTYuMjQ4IDYuMjQ4LTE2LjM3OSAwLTIyLjYyN2wtMjIuNjI3LTIyLjYyN2MtNi4yNDgtNi4yNDgtMTYuMzc5LTYuMjQ5LTIyLjYyOCAwTDE4NCAzMDIuNzQ1bC03MC4wNTktNzAuMDU5Yy02LjI0OC02LjI0OC0xNi4zNzktNi4yNDgtMjIuNjI4IDBsLTIyLjYyNyAyMi42MjdjLTYuMjQ4IDYuMjQ4LTYuMjQ4IDE2LjM3OSAwIDIyLjYyN2wxMDQgMTA0YzYuMjQ5IDYuMjUgMTYuMzc5IDYuMjUgMjIuNjI4LjAwMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTczLjg5OCA0MzkuNDA0bC0xNjYuNC0xNjYuNGMtOS45OTctOS45OTctOS45OTctMjYuMjA2IDAtMzYuMjA0bDM2LjIwMy0zNi4yMDRjOS45OTctOS45OTggMjYuMjA3LTkuOTk4IDM2LjIwNCAwTDE5MiAzMTIuNjkgNDMyLjA5NSA3Mi41OTZjOS45OTctOS45OTcgMjYuMjA3LTkuOTk3IDM2LjIwNCAwbDM2LjIwMyAzNi4yMDRjOS45OTcgOS45OTcgOS45OTcgMjYuMjA2IDAgMzYuMjA0bC0yOTQuNCAyOTQuNDAxYy05Ljk5OCA5Ljk5Ny0yNi4yMDcgOS45OTctMzYuMjA0LS4wMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZWVzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI4OHYxNjBhMzIgMzIgMCAwIDAgMzIgMzJoNDQ4YTMyIDMyIDAgMCAwIDMyLTMyVjI4OHpNMjk5LjgzIDMyYTMyIDMyIDAgMCAwLTIxLjEzIDdMMCAyNTZoNTEyYzAtMTE5Ljg5LTk0LTIxNy44LTIxMi4xNy0yMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZXNzQmlzaG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMjg3Ljg4YzAgNTEuNjQgMjIuMTQgNzMuODMgNTYgODQuNlY0MTZoMTkydi00My41MmMzMy44Ni0xMC43NyA1Ni0zMyA1Ni04NC42IDAtMzAuNjEtMTAuNzMtNjcuMS0yNi42OS0xMDIuNTZMMTg1IDI4NS42NWE4IDggMCAwIDEtMTEuMzEgMGwtMTEuMzEtMTEuMzFhOCA4IDAgMCAxIDAtMTEuMzFMMjcwLjI3IDE1NS4xYy0yMC44LTM3LjkxLTQ2LjQ3LTcyLjEtNzAuODctOTIuNTlDMjEzLjQgNTkuMDkgMjI0IDQ3LjA1IDIyNCAzMmEzMiAzMiAwIDAgMC0zMi0zMmgtNjRhMzIgMzIgMCAwIDAtMzIgMzJjMCAxNSAxMC42IDI3LjA5IDI0LjYgMzAuNTFDNjcuODEgMTA2LjggOCAyMTQuNSA4IDI4Ny44OHpNMzA0IDQ0OEgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgyODhhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGVzc0JvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NS45LjJoLTY0djY0aDY0ek0wIDY0LjE3djY0aDY0di02NHpNMTI4IC4ySDY0djY0aDY0em02NCAyNTUuOXY2NGg2NHYtNjR6TTAgMTkyLjEydjY0aDY0di02NHpNMzgzLjg1LjJoLTY0djY0aDY0em0xMjggMGgtNjR2NjRoNjR6TTEyOCAyNTYuMUg2NHY2NGg2NHpNNTExLjggNDQ4di02NGgtNjR2NjR6bTAtMTI4di02NGgtNjR2NjR6TTM4My44NSA1MTJoNjR2LTY0aC02NHptMTI4LTMxOS44OHYtNjRoLTY0djY0ek0xMjggNTEyaDY0di02NGgtNjR6TTAgNTEyaDY0di02NEgwem0yNTUuOSAwaDY0di02NGgtNjR6TTAgMzIwLjA3djY0aDY0di02NHptMzE5Ljg4LTE5MS45MnYtNjRoLTY0djY0em0tNjQgMTI4aDY0di02NGgtNjR6bS02NCAxMjh2NjRoNjR2LTY0em0xMjgtNjRoNjR2LTY0aC02NHptMC0xMjcuOTVoNjR2LTY0aC02NHptMCAxOTEuOTN2NjRoNjR2LTY0ek02NCAzODQuMDV2NjRoNjR2LTY0em0xMjgtMjU1Ljl2LTY0aC02NHY2NHptMTkxLjkyIDI1NS45aDY0di02NGgtNjR6bS0xMjgtMTkxLjkzdi02NGgtNjR2NjR6bTEyOC0xMjcuOTV2NjRoNjR2LTY0em0tMTI4IDI1NS45djY0aDY0di02NHptLTY0LTEyNy45NUgxMjh2NjRoNjR6bTE5MS45MiA2NGg2NHYtNjRoLTY0ek0xMjggMTI4LjE1SDY0djY0aDY0em0wIDE5MS45MnY2NGg2NHYtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZXNzS2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgNDQ4SDQ4YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDM1MmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTE2LTI4OEgyNTZ2LTQ4aDQwYTggOCAwIDAgMCA4LThWNTZhOCA4IDAgMCAwLTgtOGgtNDBWOGE4IDggMCAwIDAtOC04aC00OGE4IDggMCAwIDAtOCA4djQwaC00MGE4IDggMCAwIDAtOCA4djQ4YTggOCAwIDAgMCA4IDhoNDB2NDhIMzJhMzIgMzIgMCAwIDAtMzAuNTIgNDEuNTRMNzQuNTYgNDE2aDI5OC44OGw3My4wOC0yMTQuNDZBMzIgMzIgMCAwIDAgNDE2IDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlc3NLbmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMjcyLjQ3bDQwLjYzIDE4LjA2YTMyIDMyIDAgMCAwIDI0Ljg4LjQ3bDEyLjc4LTUuMTJhMzIgMzIgMCAwIDAgMTguNzYtMjAuNWw5LjIyLTMwLjY1YTI0IDI0IDAgMCAxIDEyLjU1LTE1LjY1TDE1OS45NCAyMDh2NTAuMzNhNDggNDggMCAwIDEtMjYuNTMgNDIuOTRsLTU3LjIyIDI4LjY1QTgwIDgwIDAgMCAwIDMyIDQwMS40OFY0MTZoMzE5Ljg2VjIyNGMwLTEwNi04NS45Mi0xOTItMTkxLjkyLTE5MkgxMkExMiAxMiAwIDAgMCAwIDQ0YTE2LjkgMTYuOSAwIDAgMCAxLjc5IDcuNThMMTYgODBsLTkgOWEyNCAyNCAwIDAgMC03IDE3djEzNy4yMWEzMiAzMiAwIDAgMCAxOSAyOS4yNnpNNTIgMTI4YTIwIDIwIDAgMSAxLTIwIDIwIDIwIDIwIDAgMCAxIDIwLTIwem0zMTYgMzIwSDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDM1MmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZXNzUGF3biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDUuMSAyMjRIODBhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMTZ2NS40OWMwIDQ0LTQuMTQgODYuNi0yNCAxMjIuNTFoMTc2Yy0xOS44OS0zNS45MS0yNC03OC41MS0yNC0xMjIuNTFWMjg4aDE2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNmgtMjUuMWMyOS4zOS0xOC4zOCA0OS4xLTUwLjc4IDQ5LjEtODhhMTA0IDEwNCAwIDAgMC0yMDggMGMwIDM3LjIyIDE5LjcxIDY5LjYyIDQ5LjEgODh6TTMwNCA0NDhIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMjg4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlc3NRdWVlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMTEyYTU2IDU2IDAgMSAwLTU2LTU2IDU2IDU2IDAgMCAwIDU2IDU2em0xNzYgMzM2SDgwYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDM1MmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTcyLjg3LTI2My44NGwtMjguNTEtMTUuOTJjLTcuNDQtNS0xNi45MS0yLjQ2LTIyLjI5IDQuNjhhNDcuNTkgNDcuNTkgMCAwIDEtNDcuMjMgMTguMjNDMzgzLjcgMTg2Ljg2IDM2OCAxNjQuOTMgMzY4IDE0MS40YTEzLjQgMTMuNCAwIDAgMC0xMy40LTEzLjRoLTM4Ljc3Yy02IDAtMTEuNjEgNC0xMi44NiA5LjkxYTQ4IDQ4IDAgMCAxLTkzLjk0IDBjLTEuMjUtNS45Mi02LjgyLTkuOTEtMTIuODYtOS45MUgxNTcuNGExMy40IDEzLjQgMCAwIDAtMTMuNCAxMy40YzAgMjUuNjktMTkgNDguNzUtNDQuNjcgNTAuNDlhNDcuNSA0Ny41IDAgMCAxLTQxLjU0LTE5LjE1Yy01LjI4LTcuMDktMTQuNzMtOS40NS0yMi4wOS00LjU0bC0yOC41NyAxNmExNiAxNiAwIDAgMC01LjQ0IDIwLjQ3TDEwNC4yNCA0MTZoMzAzLjUybDEwMi41NS0yMTEuMzdhMTYgMTYgMCAwIDAtNS40NC0yMC40N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlc3NSb29rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OCAzMmgtNTZhMTYgMTYgMCAwIDAtMTYgMTZ2NDhoLTQ4VjQ4YTE2IDE2IDAgMCAwLTE2LTE2aC04MGExNiAxNiAwIDAgMC0xNiAxNnY0OEg4OC4xVjQ4YTE2IDE2IDAgMCAwLTE2LTE2SDE2QTE2IDE2IDAgMCAwIDAgNDh2MTc2bDY0IDMyYzAgNDguMzMtMS41NCA5NS0xMy4yMSAxNjBoMjgyLjQyQzMyMS41NCAzNTEgMzIwIDMwMy43MiAzMjAgMjU2bDY0LTMyVjQ4YTE2IDE2IDAgMCAwLTE2LTE2ek0yMjQgMzIwaC02NHYtNjRhMzIgMzIgMCAwIDEgNjQgMHptMTQ0IDEyOEgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzNTJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGVzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03NCAyMDhINjRhMTYgMTYgMCAwIDAtMTYgMTZ2MTZhMTYgMTYgMCAwIDAgMTYgMTZoMTUuOTRBNTM1Ljc4IDUzNS43OCAwIDAgMSA2NCAzODRoMTI4YTUzNS43OCA1MzUuNzggMCAwIDEtMTUuOTQtMTI4SDE5MmExNiAxNiAwIDAgMCAxNi0xNnYtMTZhMTYgMTYgMCAwIDAtMTYtMTZoLTEwbDMzLjg5LTkwLjM4YTE2IDE2IDAgMCAwLTE1LTIxLjYySDE0NFY2NGgyNGE4IDggMCAwIDAgOC04VjQwYTggOCAwIDAgMC04LThoLTI0VjhhOCA4IDAgMCAwLTgtOGgtMTZhOCA4IDAgMCAwLTggOHYyNEg4OGE4IDggMCAwIDAtOCA4djE2YTggOCAwIDAgMCA4IDhoMjR2MzJINTUuMDlhMTYgMTYgMCAwIDAtMTUgMjEuNjJ6bTE3My4xNiAyNTEuNThMMjI0IDQ0OHYtMTZhMTYgMTYgMCAwIDAtMTYtMTZINDhhMTYgMTYgMCAwIDAtMTYgMTZ2MTZMOC44NSA0NTkuNThBMTYgMTYgMCAwIDAgMCA0NzMuODlWNDk2YTE2IDE2IDAgMCAwIDE2IDE2aDIyNGExNiAxNiAwIDAgMCAxNi0xNnYtMjIuMTFhMTYgMTYgMCAwIDAtOC44NC0xNC4zMXptOTIuNzctMTU3Ljc4bC0zLjI5IDgyLjJoMTI2LjcybC0zLjI5LTgyLjIxIDI0LjYtMjAuNzlBMzIgMzIgMCAwIDAgNDk2IDI1Ni41NFYxOThhNiA2IDAgMCAwLTYtNmgtMjYuMzhhNiA2IDAgMCAwLTYgNnYyNmgtMjQuNzF2LTI2YTYgNiAwIDAgMC02LTZIMzczLjFhNiA2IDAgMCAwLTYgNnYyNmgtMjQuNzF2LTI2YTYgNiAwIDAgMC02LTZIMzEwYTYgNiAwIDAgMC02IDZ2NTguNmEzMiAzMiAwIDAgMCAxMS4zNiAyNC40ek0zODQgMzA0YTE2IDE2IDAgMCAxIDMyIDB2MzJoLTMyem0xMTkuMTYgMTU1LjU4TDQ4MCA0NDh2LTE2YTE2IDE2IDAgMCAwLTE2LTE2SDMzNmExNiAxNiAwIDAgMC0xNiAxNnYxNmwtMjMuMTUgMTEuNThhMTYgMTYgMCAwIDAtOC44NSAxNC4zMVY0OTZhMTYgMTYgMCAwIDAgMTYgMTZoMTkyYTE2IDE2IDAgMCAwIDE2LTE2di0yMi4xMWExNiAxNiAwIDAgMC04Ljg0LTE0LjMxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGV2cm9uQ2lyY2xlRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQgMjU2YzAgMTM3LTExMSAyNDgtMjQ4IDI0OFM4IDM5MyA4IDI1NiAxMTkgOCAyNTYgOHMyNDggMTExIDI0OCAyNDh6TTI3MyAzNjkuOWwxMzUuNS0xMzUuNWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtMTctMTdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDI1NiAyODUuMSAxNTQuNCAxODMuNWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTE3IDE3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOUwyMzkgMzY5LjljOS40IDkuNCAyNC42IDkuNCAzNCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGV2cm9uQ2lyY2xlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTA0QzExOSA1MDQgOCAzOTMgOCAyNTZTMTE5IDggMjU2IDhzMjQ4IDExMSAyNDggMjQ4LTExMSAyNDgtMjQ4IDI0OHpNMTQyLjEgMjczbDEzNS41IDEzNS41YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDE3LTE3YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDIyNi45IDI1NmwxMDEuNi0xMDEuNmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtMTctMTdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDE0Mi4xIDIzOWMtOS40IDkuNC05LjQgMjQuNiAwIDM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGV2cm9uQ2lyY2xlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhjMTM3IDAgMjQ4IDExMSAyNDggMjQ4UzM5MyA1MDQgMjU2IDUwNCA4IDM5MyA4IDI1NiAxMTkgOCAyNTYgOHptMTEzLjkgMjMxTDIzNC40IDEwMy41Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtMTcgMTdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45TDI4NS4xIDI1NiAxODMuNSAzNTcuNmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsMTcgMTdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBMMzY5LjkgMjczYzkuNC05LjQgOS40LTI0LjYgMC0zNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hldnJvbkNpcmNsZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMjU2QzggMTE5IDExOSA4IDI1NiA4czI0OCAxMTEgMjQ4IDI0OC0xMTEgMjQ4LTI0OCAyNDhTOCAzOTMgOCAyNTZ6bTIzMS0xMTMuOUwxMDMuNSAyNzcuNmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsMTcgMTdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBMMjU2IDIyNi45bDEwMS42IDEwMS42YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDE3LTE3YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDI3MyAxNDIuMWMtOS40LTkuNC0yNC42LTkuNC0zNCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGV2cm9uRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDcuMDI5IDM4MS40NzZMMTIuNjg2IDE4Ny4xMzJjLTkuMzczLTkuMzczLTkuMzczLTI0LjU2OSAwLTMzLjk0MWwyMi42NjctMjIuNjY3YzkuMzU3LTkuMzU3IDI0LjUyMi05LjM3NSAzMy45MDEtLjA0TDIyNCAyODQuNTA1bDE1NC43NDUtMTU0LjAyMWM5LjM3OS05LjMzNSAyNC41NDQtOS4zMTcgMzMuOTAxLjA0bDIyLjY2NyAyMi42NjdjOS4zNzMgOS4zNzMgOS4zNzMgMjQuNTY5IDAgMzMuOTQxTDI0MC45NzEgMzgxLjQ3NmMtOS4zNzMgOS4zNzItMjQuNTY5IDkuMzcyLTMzLjk0MiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGV2cm9uTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNC41MiAyMzkuMDNMMjI4Ljg3IDQ0LjY5YzkuMzctOS4zNyAyNC41Ny05LjM3IDMzLjk0IDBsMjIuNjcgMjIuNjdjOS4zNiA5LjM2IDkuMzcgMjQuNTIuMDQgMzMuOUwxMzEuNDkgMjU2bDE1NC4wMiAxNTQuNzVjOS4zNCA5LjM4IDkuMzIgMjQuNTQtLjA0IDMzLjlsLTIyLjY3IDIyLjY3Yy05LjM3IDkuMzctMjQuNTcgOS4zNy0zMy45NCAwTDM0LjUyIDI3Mi45N2MtOS4zNy05LjM3LTkuMzctMjQuNTcgMC0zMy45NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hldnJvblJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4NS40NzYgMjcyLjk3MUw5MS4xMzIgNDY3LjMxNGMtOS4zNzMgOS4zNzMtMjQuNTY5IDkuMzczLTMzLjk0MSAwbC0yMi42NjctMjIuNjY3Yy05LjM1Ny05LjM1Ny05LjM3NS0yNC41MjItLjA0LTMzLjkwMUwxODguNTA1IDI1NiAzNC40ODQgMTAxLjI1NWMtOS4zMzUtOS4zNzktOS4zMTctMjQuNTQ0LjA0LTMzLjkwMWwyMi42NjctMjIuNjY3YzkuMzczLTkuMzczIDI0LjU2OS05LjM3MyAzMy45NDEgMEwyODUuNDc1IDIzOS4wM2M5LjM3MyA5LjM3MiA5LjM3MyAyNC41NjguMDAxIDMzLjk0MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hldnJvblVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0MC45NzEgMTMwLjUyNGwxOTQuMzQzIDE5NC4zNDNjOS4zNzMgOS4zNzMgOS4zNzMgMjQuNTY5IDAgMzMuOTQxbC0yMi42NjcgMjIuNjY3Yy05LjM1NyA5LjM1Ny0yNC41MjIgOS4zNzUtMzMuOTAxLjA0TDIyNCAyMjcuNDk1IDY5LjI1NSAzODEuNTE2Yy05LjM3OSA5LjMzNS0yNC41NDQgOS4zMTctMzMuOTAxLS4wNGwtMjIuNjY3LTIyLjY2N2MtOS4zNzMtOS4zNzMtOS4zNzMtMjQuNTY5IDAtMzMuOTQxTDIwNy4wMyAxMzAuNTI1YzkuMzcyLTkuMzczIDI0LjU2OC05LjM3MyAzMy45NDEtLjAwMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hpbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIwIDcyYzAtMzkuNzY1IDMyLjIzNS03MiA3Mi03MnM3MiAzMi4yMzUgNzIgNzJjMCAzOS43NjQtMzIuMjM1IDcyLTcyIDcycy03Mi0zMi4yMzYtNzItNzJ6bTI1NC42MjcgMS4zNzNjLTEyLjQ5Ni0xMi40OTctMzIuNzU4LTEyLjQ5Ny00NS4yNTQgMEwyNDIuNzQ1IDE2MEgxNDEuMjU0TDU0LjYyNyA3My4zNzNjLTEyLjQ5Ni0xMi40OTctMzIuNzU4LTEyLjQ5Ny00NS4yNTQgMC0xMi40OTcgMTIuNDk3LTEyLjQ5NyAzMi43NTggMCA0NS4yNTVMMTA0IDIxMy4yNTRWNDgwYzAgMTcuNjczIDE0LjMyNyAzMiAzMiAzMmgxNmMxNy42NzMgMCAzMi0xNC4zMjcgMzItMzJWMzY4aDE2djExMmMwIDE3LjY3MyAxNC4zMjcgMzIgMzIgMzJoMTZjMTcuNjczIDAgMzItMTQuMzI3IDMyLTMyVjIxMy4yNTRsOTQuNjI3LTk0LjYyN2MxMi40OTctMTIuNDk3IDEyLjQ5Ny0zMi43NTcgMC00NS4yNTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNodXJjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQuNDYgMjQ2LjY4TDM1MiAxNzkuMlYxMjhoNDhjOC44NCAwIDE2LTcuMTYgMTYtMTZWODBjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTQ4VjE2YzAtOC44NC03LjE2LTE2LTE2LTE2aC0zMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NDhoLTQ4Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg0OHY1MS4ybC0xMTIuNDYgNjcuNDhBMzEuOTk3IDMxLjk5NyAwIDAgMCAxNjAgMjc0LjEyVjUxMmg5NnYtOTZjMC0zNS4zNSAyOC42NS02NCA2NC02NHM2NCAyOC42NSA2NCA2NHY5Nmg5NlYyNzQuMTJjMC0xMS4yNC01LjktMjEuNjYtMTUuNTQtMjcuNDR6TTAgMzk1Ljk2VjQ5NmMwIDguODQgNy4xNiAxNiAxNiAxNmgxMTJWMzIwTDE5LjM5IDM2Ni41NEEzMi4wMjQgMzIuMDI0IDAgMCAwIDAgMzk1Ljk2em02MjAuNjEtMjkuNDJMNTEyIDMyMHYxOTJoMTEyYzguODQgMCAxNi03LjE2IDE2LTE2VjM5NS45NmMwLTEyLjgtNy42My0yNC4zNy0xOS4zOS0yOS40MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlTm90Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDM5LjA1NnYxNi42NTljMCAxMC44MDQgNy4yODEgMjAuMTU5IDE3LjY4NiAyMy4wNjZDMzgzLjIwNCAxMDAuNDM0IDQ0MCAxNzEuNTE4IDQ0MCAyNTZjMCAxMDEuNjg5LTgyLjI5NSAxODQtMTg0IDE4NC0xMDEuNjg5IDAtMTg0LTgyLjI5NS0xODQtMTg0IDAtODQuNDcgNTYuNzg2LTE1NS41NjQgMTM0LjMxMi0xNzcuMjE5QzIxNi43MTkgNzUuODc0IDIyNCA2Ni41MTcgMjI0IDU1LjcxMlYzOS4wNjRjMC0xNS43MDktMTQuODM0LTI3LjE1My0zMC4wNDYtMjMuMjM0Qzg2LjYwMyA0My40ODIgNy4zOTQgMTQxLjIwNiA4LjAwMyAyNTcuMzMyYy43MiAxMzcuMDUyIDExMS40NzcgMjQ2Ljk1NiAyNDguNTMxIDI0Ni42NjdDMzkzLjI1NSA1MDMuNzExIDUwNCAzOTIuNzg4IDUwNCAyNTZjMC0xMTUuNjMzLTc5LjE0LTIxMi43NzktMTg2LjIxMS0yNDAuMjM2QzMwMi42NzggMTEuODg5IDI4OCAyMy40NTYgMjg4IDM5LjA1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjE2IDE5Mkg0ODBWMjRjMC0xMy4yNi0xMC43NC0yNC0yNC0yNEgzMTJjLTEzLjI2IDAtMjQgMTAuNzQtMjQgMjR2NzJoLTY0VjE2YzAtOC44NC03LjE2LTE2LTE2LTE2aC0xNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2ODBoLTY0VjE2YzAtOC44NC03LjE2LTE2LTE2LTE2SDgwYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY4MEgyNGMtMTMuMjYgMC0yNCAxMC43NC0yNCAyNHYzNjBjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg1NzZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYyMTZjMC0xMy4yNi0xMC43NS0yNC0yNC0yNHpNMTI4IDQwNGMwIDYuNjMtNS4zNyAxMi0xMiAxMkg3NmMtNi42MyAwLTEyLTUuMzctMTItMTJ2LTQwYzAtNi42MyA1LjM3LTEyIDEyLTEyaDQwYzYuNjMgMCAxMiA1LjM3IDEyIDEydjQwem0wLTk2YzAgNi42My01LjM3IDEyLTEyIDEySDc2Yy02LjYzIDAtMTItNS4zNy0xMi0xMnYtNDBjMC02LjYzIDUuMzctMTIgMTItMTJoNDBjNi42MyAwIDEyIDUuMzcgMTIgMTJ2NDB6bTAtOTZjMCA2LjYzLTUuMzcgMTItMTIgMTJINzZjLTYuNjMgMC0xMi01LjM3LTEyLTEydi00MGMwLTYuNjMgNS4zNy0xMiAxMi0xMmg0MGM2LjYzIDAgMTIgNS4zNyAxMiAxMnY0MHptMTI4IDE5MmMwIDYuNjMtNS4zNyAxMi0xMiAxMmgtNDBjLTYuNjMgMC0xMi01LjM3LTEyLTEydi00MGMwLTYuNjMgNS4zNy0xMiAxMi0xMmg0MGM2LjYzIDAgMTIgNS4zNyAxMiAxMnY0MHptMC05NmMwIDYuNjMtNS4zNyAxMi0xMiAxMmgtNDBjLTYuNjMgMC0xMi01LjM3LTEyLTEydi00MGMwLTYuNjMgNS4zNy0xMiAxMi0xMmg0MGM2LjYzIDAgMTIgNS4zNyAxMiAxMnY0MHptMC05NmMwIDYuNjMtNS4zNyAxMi0xMiAxMmgtNDBjLTYuNjMgMC0xMi01LjM3LTEyLTEydi00MGMwLTYuNjMgNS4zNy0xMiAxMi0xMmg0MGM2LjYzIDAgMTIgNS4zNyAxMiAxMnY0MHptMTYwIDk2YzAgNi42My01LjM3IDEyLTEyIDEyaC00MGMtNi42MyAwLTEyLTUuMzctMTItMTJ2LTQwYzAtNi42MyA1LjM3LTEyIDEyLTEyaDQwYzYuNjMgMCAxMiA1LjM3IDEyIDEydjQwem0wLTk2YzAgNi42My01LjM3IDEyLTEyIDEyaC00MGMtNi42MyAwLTEyLTUuMzctMTItMTJ2LTQwYzAtNi42MyA1LjM3LTEyIDEyLTEyaDQwYzYuNjMgMCAxMiA1LjM3IDEyIDEydjQwem0wLTk2YzAgNi42My01LjM3IDEyLTEyIDEyaC00MGMtNi42MyAwLTEyLTUuMzctMTItMTJWNzZjMC02LjYzIDUuMzctMTIgMTItMTJoNDBjNi42MyAwIDEyIDUuMzcgMTIgMTJ2NDB6bTE2MCAyODhjMCA2LjYzLTUuMzcgMTItMTIgMTJoLTQwYy02LjYzIDAtMTItNS4zNy0xMi0xMnYtNDBjMC02LjYzIDUuMzctMTIgMTItMTJoNDBjNi42MyAwIDEyIDUuMzcgMTIgMTJ2NDB6bTAtOTZjMCA2LjYzLTUuMzcgMTItMTIgMTJoLTQwYy02LjYzIDAtMTItNS4zNy0xMi0xMnYtNDBjMC02LjYzIDUuMzctMTIgMTItMTJoNDBjNi42MyAwIDEyIDUuMzcgMTIgMTJ2NDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsaW5pY01lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDExNUw2OS40NyAzMDcuNzFjLTEuNjIgMS40Ni0zLjY5IDIuMTQtNS40NyAzLjM1VjQ5NmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZWMzExLjFjLTEuNy0xLjE2LTMuNzItMS44Mi01LjI2LTMuMnptOTYgMjYxYTggOCAwIDAgMS04IDhoLTU2djU2YTggOCAwIDAgMS04IDhoLTQ4YTggOCAwIDAgMS04LTh2LTU2aC01NmE4IDggMCAwIDEtOC04di00OGE4IDggMCAwIDEgOC04aDU2di01NmE4IDggMCAwIDEgOC04aDQ4YTggOCAwIDAgMSA4IDh2NTZoNTZhOCA4IDAgMCAxIDggOHptMTg2LjY5LTEzOS43MmwtMjU1Ljk0LTIyNmEzOS44NSAzOS44NSAwIDAgMC01My40NSAwbC0yNTYgMjI2YTE2IDE2IDAgMCAwLTEuMjEgMjIuNkwyNS41IDI4Mi43YTE2IDE2IDAgMCAwIDIyLjYgMS4yMUwyNzcuNDIgODEuNjNhMTYgMTYgMCAwIDEgMjEuMTcgMEw1MjcuOTEgMjgzLjlhMTYgMTYgMCAwIDAgMjIuNi0xLjIxbDIxLjQtMjMuODJhMTYgMTYgMCAwIDAtMS4yMi0yMi41OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xpcGJvYXJkQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM2IDY0aC04MGMwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NEg0OEMyMS41IDY0IDAgODUuNSAwIDExMnYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjExMmMwLTI2LjUtMjEuNS00OC00OC00OHpNMTkyIDQwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHptMTIxLjIgMjMxLjhsLTE0MyAxNDEuOGMtNC43IDQuNy0xMi4zIDQuNi0xNy0uMWwtODIuNi04My4zYy00LjctNC43LTQuNi0xMi4zLjEtMTdMOTkuMSAyODVjNC43LTQuNyAxMi4zLTQuNiAxNyAuMWw0NiA0Ni40IDEwNi0xMDUuMmM0LjctNC43IDEyLjMtNC42IDE3IC4xbDI4LjIgMjguNGM0LjcgNC44IDQuNiAxMi4zLS4xIDE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbGlwYm9hcmRMaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNiA2NGgtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjRINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OFYxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTk2IDQyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0LTEwLjcgMjQtMjQgMjR6bTAtOTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjQgMjQgMTAuNyAyNCAyNC0xMC43IDI0LTI0IDI0em0wLTk2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjQtMTAuNyAyNC0yNCAyNHptOTYtMTkyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHptMTI4IDM2OGMwIDQuNC0zLjYgOC04IDhIMTY4Yy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxNDRjNC40IDAgOCAzLjYgOCA4djE2em0wLTk2YzAgNC40LTMuNiA4LTggOEgxNjhjLTQuNCAwLTgtMy42LTgtOHYtMTZjMC00LjQgMy42LTggOC04aDE0NGM0LjQgMCA4IDMuNiA4IDh2MTZ6bTAtOTZjMCA0LjQtMy42IDgtOCA4SDE2OGMtNC40IDAtOC0zLjYtOC04di0xNmMwLTQuNCAzLjYtOCA4LThoMTQ0YzQuNCAwIDggMy42IDggOHYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xpcGJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAxMTJ2MzUyYzAgMjYuNTEtMjEuNDkgNDgtNDggNDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWMTEyYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoODBjMC0zNS4yOSAyOC43MS02NCA2NC02NHM2NCAyOC43MSA2NCA2NGg4MGMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4ek0xOTIgNDBjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHMxMC43NDUgMjQgMjQgMjQgMjQtMTAuNzQ1IDI0LTI0LTEwLjc0NS0yNC0yNC0yNG05NiAxMTR2LTIwYTYgNiAwIDAgMC02LTZIMTAyYTYgNiAwIDAgMC02IDZ2MjBhNiA2IDAgMCAwIDYgNmgxODBhNiA2IDAgMCAwIDYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2LDhDMTE5LDgsOCwxMTksOCwyNTZTMTE5LDUwNCwyNTYsNTA0LDUwNCwzOTMsNTA0LDI1NiwzOTMsOCwyNTYsOFptOTIuNDksMzEzaDBsLTIwLDI1YTE2LDE2LDAsMCwxLTIyLjQ5LDIuNWgwbC02Ny00OS43MmE0MCw0MCwwLDAsMS0xNS0zMS4yM1YxMTJhMTYsMTYsMCwwLDEsMTYtMTZoMzJhMTYsMTYsMCwwLDEsMTYsMTZWMjU2bDU4LDQyLjVBMTYsMTYsMCwwLDEsMzQ4LjQ5LDMyMVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDBjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHYyODhjMCAyNi41MS0yMS40OSA0OC00OCA0OEgxNzZjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWNDhjMC0yNi41MSAyMS40OS00OCA0OC00OGgyODhNMTc2IDQxNmMtNDQuMTEyIDAtODAtMzUuODg4LTgwLTgwVjEyOEg0OGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHYyODhjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgyODhjMjYuNTEgMCA0OC0yMS40OSA0OC00OHYtNDhIMTc2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG9zZWRDYXB0aW9uaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCA2NEg0OEMyMS41IDY0IDAgODUuNSAwIDExMnYyODhjMCAyNi41IDIxLjUgNDggNDggNDhoNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjExMmMwLTI2LjUtMjEuNS00OC00OC00OHpNMjE4LjEgMjg3LjdjMi44LTIuNSA3LjEtMi4xIDkuMi45bDE5LjUgMjcuN2MxLjcgMi40IDEuNSA1LjYtLjUgNy43LTUzLjYgNTYuOC0xNzIuOCAzMi4xLTE3Mi44LTY3LjkgMC05Ny4zIDEyMS43LTExOS41IDE3Mi41LTcwLjEgMi4xIDIgMi41IDMuMiAxIDUuN2wtMTcuNSAzMC41Yy0xLjkgMy4xLTYuMiA0LTkuMSAxLjctNDAuOC0zMi05NC42LTE0LjktOTQuNiAzMS4yLjEgNDggNTEuMSA3MC41IDkyLjMgMzIuNnptMTkwLjQgMGMyLjgtMi41IDcuMS0yLjEgOS4yLjlsMTkuNSAyNy43YzEuNyAyLjQgMS41IDUuNi0uNSA3LjctNTMuNSA1Ni45LTE3Mi43IDMyLjEtMTcyLjctNjcuOSAwLTk3LjMgMTIxLjctMTE5LjUgMTcyLjUtNzAuMSAyLjEgMiAyLjUgMy4yIDEgNS43TDQyMCAyMjIuMmMtMS45IDMuMS02LjIgNC05LjEgMS43LTQwLjgtMzItOTQuNi0xNC45LTk0LjYgMzEuMiAwIDQ4IDUxIDcwLjUgOTIuMiAzMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZERvd25sb2FkQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUzNy42IDIyNi42YzQuMS0xMC43IDYuNC0yMi40IDYuNC0zNC42IDAtNTMtNDMtOTYtOTYtOTYtMTkuNyAwLTM4LjEgNi01My4zIDE2LjJDMzY3IDY0LjIgMzE1LjMgMzIgMjU2IDMyYy04OC40IDAtMTYwIDcxLjYtMTYwIDE2MCAwIDIuNy4xIDUuNC4yIDguMUM0MC4yIDIxOS44IDAgMjczLjIgMCAzMzZjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRoMzY4YzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNjEuOS00NC0xMTMuNi0xMDIuNC0xMjUuNHptLTEzMi45IDg4LjdMMjk5LjMgNDIwLjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwTDE3MS4zIDMxNS4zYy0xMC4xLTEwLjEtMi45LTI3LjMgMTEuMy0yNy4zSDI0OFYxNzZjMC04LjggNy4yLTE2IDE2LTE2aDQ4YzguOCAwIDE2IDcuMiAxNiAxNnYxMTJoNjUuNGMxNC4yIDAgMjEuNCAxNy4yIDExLjMgMjcuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRNZWF0YmFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCAzNTJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDggNDgtMjEuNSA0OC00OC0yMS41LTQ4LTQ4LTQ4em00MTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhzMjEuNSA0OCA0OCA0OCA0OC0yMS41IDQ4LTQ4LTIxLjUtNDgtNDgtNDh6bS0xMTkgMTEuMWM0LjYtMTQuNSAxLjYtMzAuOC05LjgtNDIuMy0xMS41LTExLjUtMjcuOC0xNC40LTQyLjMtOS45LTctMTMuNS0yMC43LTIzLTM2LjktMjNzLTI5LjkgOS41LTM2LjkgMjNjLTE0LjUtNC42LTMwLjgtMS42LTQyLjMgOS45LTExLjUgMTEuNS0xNC40IDI3LjgtOS45IDQyLjMtMTMuNSA3LTIzIDIwLjctMjMgMzYuOXM5LjUgMjkuOSAyMyAzNi45Yy00LjYgMTQuNS0xLjYgMzAuOCA5LjkgNDIuMyA4LjIgOC4yIDE4LjkgMTIuMyAyOS43IDEyLjMgNC4zIDAgOC41LTEuMSAxMi42LTIuNSA3IDEzLjUgMjAuNyAyMyAzNi45IDIzczI5LjktOS41IDM2LjktMjNjNC4xIDEuMyA4LjMgMi41IDEyLjYgMi41IDEwLjggMCAyMS41LTQuMSAyOS43LTEyLjMgMTEuNS0xMS41IDE0LjQtMjcuOCA5LjgtNDIuMyAxMy41LTcgMjMtMjAuNyAyMy0zNi45cy05LjUtMjkuOS0yMy0zNi45ek01MTIgMjI0YzAtNTMtNDMtOTYtOTYtOTYtLjYgMC0xLjEuMi0xLjYuMiAxLjEtNS4yIDEuNi0xMC42IDEuNi0xNi4yIDAtNDQuMi0zNS44LTgwLTgwLTgwLTI0LjYgMC00Ni4zIDExLjMtNjEgMjguOEMyNTYuNCAyNC44IDIxOS4zIDAgMTc2IDAgMTE0LjEgMCA2NCA1MC4xIDY0IDExMmMwIDcuMy44IDE0LjMgMi4xIDIxLjJDMjcuOCAxNDUuOCAwIDE4MS41IDAgMjI0YzAgNTMgNDMgOTYgOTYgOTZoNDMuNGMzLjYtOCA4LjQtMTUuNCAxNC44LTIxLjggMTMuNS0xMy41IDMxLjUtMjEuMSA1MC44LTIxLjMgMTMuNS0xMy4yIDMxLjctMjAuOSA1MS0yMC45czM3LjUgNy43IDUxIDIwLjljMTkuMy4yIDM3LjMgNy44IDUwLjggMjEuMyA2LjQgNi40IDExLjMgMTMuOCAxNC44IDIxLjhINDE2YzUzIDAgOTYtNDMgOTYtOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkTW9vblJhaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUwLjUgMjI1LjVjLTYuOS0zNy4yLTM5LjMtNjUuNS03OC41LTY1LjUtMTIuMyAwLTIzLjkgMy0zNC4zIDgtMTcuNC0yNC4xLTQ1LjYtNDAtNzcuNy00MC01MyAwLTk2IDQzLTk2IDk2IDAgLjUuMiAxLjEuMiAxLjZDMjcuNiAyMzIuOSAwIDI2NS4yIDAgMzA0YzAgNDQuMiAzNS44IDgwIDgwIDgwaDI1NmM0NC4yIDAgODAtMzUuOCA4MC04MCAwLTM5LjItMjguMi03MS43LTY1LjUtNzguNXptMjE3LjQtMS43Yy03MC40IDEzLjMtMTM1LTQwLjMtMTM1LTExMC44IDAtNDAuNiAyMS45LTc4IDU3LjUtOTguMSA1LjUtMy4xIDQuMS0xMS40LTIuMS0xMi41QzQ3OS42LjggNDcwLjcgMCA0NjEuOCAwYy03Ny45IDAtMTQxLjEgNjEuMi0xNDQuNCAxMzcuOSAyNi43IDExLjkgNDguMiAzMy44IDU4LjkgNjEuNyAzNy4xIDE0LjMgNjQgNDcuNCA3MC4yIDg2LjggNS4xLjUgMTAgMS41IDE1LjIgMS41IDQ0LjcgMCA4NS42LTIwLjIgMTEyLjYtNTMuMyA0LjItNC44LS4yLTEyLTYuNC0xMC44ek0zNjQuNSA0MTguMWMtNy42LTQuMy0xNy40LTEuOC0yMS44IDZsLTM2LjYgNjRjLTQuNCA3LjctMS43IDE3LjQgNiAyMS44IDIuNSAxLjQgNS4yIDIuMSA3LjkgMi4xIDUuNSAwIDEwLjktMi45IDEzLjktOC4xbDM2LjYtNjRjNC4zLTcuNyAxLjctMTcuNC02LTIxLjh6bS05NiAwYy03LjYtNC4zLTE3LjQtMS44LTIxLjggNmwtMzYuNiA2NGMtNC40IDcuNy0xLjcgMTcuNCA2IDIxLjggMi41IDEuNCA1LjIgMi4xIDcuOSAyLjEgNS41IDAgMTAuOS0yLjkgMTMuOS04LjFsMzYuNi02NGM0LjMtNy43IDEuNy0xNy40LTYtMjEuOHptLTk2IDBjLTcuNi00LjMtMTcuNC0xLjgtMjEuOCA2bC0zNi42IDY0Yy00LjQgNy43LTEuNyAxNy40IDYgMjEuOCAyLjUgMS40IDUuMiAyLjEgNy45IDIuMSA1LjUgMCAxMC45LTIuOSAxMy45LTguMWwzNi42LTY0YzQuMy03LjcgMS43LTE3LjQtNi0yMS44em0tOTYgMGMtNy42LTQuMy0xNy40LTEuOC0yMS44IDZsLTM2LjYgNjRjLTQuNCA3LjctMS43IDE3LjQgNiAyMS44IDIuNSAxLjQgNS4yIDIuMSA3LjkgMi4xIDUuNSAwIDEwLjktMi45IDEzLjktOC4xbDM2LjYtNjRjNC4zLTcuNyAxLjctMTcuNC02LTIxLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkTW9vbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDIuOCAzNTIuN2M1LjctOS42IDkuMi0yMC43IDkuMi0zMi43IDAtMzUuMy0yOC43LTY0LTY0LTY0LTE3LjIgMC0zMi44IDYuOS00NC4zIDE3LjktMTYuMy0yOS42LTQ3LjUtNDkuOS04My43LTQ5LjktNTMgMC05NiA0My05NiA5NiAwIDIgLjUgMy44LjYgNS43QzI3LjEgMzM4LjggMCAzNzQuMSAwIDQxNmMwIDUzIDQzIDk2IDk2IDk2aDI0MGM0NC4yIDAgODAtMzUuOCA4MC04MCAwLTQxLjktMzIuMy03NS44LTczLjItNzkuM3ptMjIyLjUtNTQuM2MtOTMuMSAxNy43LTE3OC41LTUzLjctMTc4LjUtMTQ3LjcgMC01NC4yIDI5LTEwNCA3Ni4xLTEzMC44IDcuMy00LjEgNS40LTE1LjEtMi44LTE2LjdDNDQ4LjQgMS4xIDQzNi43IDAgNDI1IDAgMzE5LjEgMCAyMzMuMSA4NS45IDIzMy4xIDE5MmMwIDguNS43IDE2LjggMS44IDI1IDUuOSA0LjMgMTEuNiA4LjkgMTYuNyAxNC4yIDExLjQtNC43IDIzLjctNy4yIDM2LjQtNy4yIDUyLjkgMCA5NiA0My4xIDk2IDk2IDAgMy42LS4yIDcuMi0uNiAxMC43IDIzLjYgMTAuOCA0Mi40IDI5LjUgNTMuNSA1Mi42IDU0LjQtMy40IDEwMy43LTI5LjMgMTM3LjEtNzAuNCA1LjMtNi41LS41LTE2LjEtOC43LTE0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkUmFpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMTI4Yy0uNiAwLTEuMS4yLTEuNi4yIDEuMS01LjIgMS42LTEwLjYgMS42LTE2LjIgMC00NC4yLTM1LjgtODAtODAtODAtMjQuNiAwLTQ2LjMgMTEuMy02MSAyOC44QzI1Ni40IDI0LjggMjE5LjMgMCAxNzYgMCAxMTQuMSAwIDY0IDUwLjEgNjQgMTEyYzAgNy4zLjggMTQuMyAyLjEgMjEuMkMyNy44IDE0NS44IDAgMTgxLjUgMCAyMjRjMCA1MyA0MyA5NiA5NiA5NmgzMjBjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZ6TTg4IDM3NC4yYy0xMi44IDQ0LjQtNDAgNTYuNC00MCA4Ny43IDAgMjcuNyAyMS41IDUwLjEgNDggNTAuMXM0OC0yMi40IDQ4LTUwLjFjMC0zMS40LTI3LjItNDMuMS00MC04Ny43LTIuMi04LjEtMTMuNS04LjUtMTYgMHptMTYwIDBjLTEyLjggNDQuNC00MCA1Ni40LTQwIDg3LjcgMCAyNy43IDIxLjUgNTAuMSA0OCA1MC4xczQ4LTIyLjQgNDgtNTAuMWMwLTMxLjQtMjcuMi00My4xLTQwLTg3LjctMi4yLTguMS0xMy41LTguNS0xNiAwem0xNjAgMGMtMTIuOCA0NC40LTQwIDU2LjQtNDAgODcuNyAwIDI3LjcgMjEuNSA1MC4xIDQ4IDUwLjFzNDgtMjIuNCA0OC01MC4xYzAtMzEuNC0yNy4yLTQzLjEtNDAtODcuNy0yLjItOC4xLTEzLjUtOC41LTE2IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkU2hvd2Vyc0hlYXZ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4My45IDM3MC4xYy03LjYtNC40LTE3LjQtMS44LTIxLjggNmwtNjQgMTEyYy00LjQgNy43LTEuNyAxNy41IDYgMjEuOCAyLjUgMS40IDUuMiAyLjEgNy45IDIuMSA1LjUgMCAxMC45LTIuOSAxMy45LTguMWw2NC0xMTJjNC40LTcuNiAxLjctMTcuNC02LTIxLjh6bTk2IDBjLTcuNi00LjQtMTcuNC0xLjgtMjEuOCA2bC02NCAxMTJjLTQuNCA3LjctMS43IDE3LjUgNiAyMS44IDIuNSAxLjQgNS4yIDIuMSA3LjkgMi4xIDUuNSAwIDEwLjktMi45IDEzLjktOC4xbDY0LTExMmM0LjQtNy42IDEuNy0xNy40LTYtMjEuOHptLTE5MiAwYy03LjYtNC40LTE3LjQtMS44LTIxLjggNmwtNjQgMTEyYy00LjQgNy43LTEuNyAxNy41IDYgMjEuOCAyLjUgMS40IDUuMiAyLjEgNy45IDIuMSA1LjUgMCAxMC45LTIuOSAxMy45LTguMWw2NC0xMTJjNC40LTcuNiAxLjctMTcuNC02LTIxLjh6bTM4NCAwYy03LjYtNC40LTE3LjQtMS44LTIxLjggNmwtNjQgMTEyYy00LjQgNy43LTEuNyAxNy41IDYgMjEuOCAyLjUgMS40IDUuMiAyLjEgNy45IDIuMSA1LjUgMCAxMC45LTIuOSAxMy45LTguMWw2NC0xMTJjNC40LTcuNiAxLjctMTcuNC02LTIxLjh6bS05NiAwYy03LjYtNC40LTE3LjQtMS44LTIxLjggNmwtNjQgMTEyYy00LjQgNy43LTEuNyAxNy41IDYgMjEuOCAyLjUgMS40IDUuMiAyLjEgNy45IDIuMSA1LjUgMCAxMC45LTIuOSAxMy45LTguMWw2NC0xMTJjNC40LTcuNiAxLjctMTcuNC02LTIxLjh6TTQxNiAxMjhjLS42IDAtMS4xLjItMS42LjIgMS4xLTUuMiAxLjYtMTAuNiAxLjYtMTYuMiAwLTQ0LjItMzUuOC04MC04MC04MC0yNC42IDAtNDYuMyAxMS4zLTYxIDI4LjhDMjU2LjQgMjQuOCAyMTkuMyAwIDE3NiAwIDExNC4yIDAgNjQgNTAuMSA2NCAxMTJjMCA3LjMuOCAxNC4zIDIuMSAyMS4yQzI3LjggMTQ1LjggMCAxODEuNSAwIDIyNGMwIDUzIDQzIDk2IDk2IDk2aDMyMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRTdW5SYWluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMC41IDIyNS41Yy02LjktMzcuMi0zOS4zLTY1LjUtNzguNS02NS41LTEyLjMgMC0yMy45IDMtMzQuMyA4LTE3LjQtMjQuMS00NS42LTQwLTc3LjctNDAtNTMgMC05NiA0My05NiA5NiAwIC41LjIgMS4xLjIgMS42QzE4Ny42IDIzMyAxNjAgMjY1LjIgMTYwIDMwNGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGgyNTZjNDQuMiAwIDgwLTM1LjggODAtODAgMC0zOS4yLTI4LjItNzEuNy02NS41LTc4LjV6bS0zODYuNCAzNC40Yy0zNy40LTM3LjQtMzcuNC05OC4zIDAtMTM1LjggMzQuNi0zNC42IDg5LjEtMzYuOCAxMjYuNy03LjQgMjAtMTIuOSA0My42LTIwLjcgNjkuMi0yMC43LjcgMCAxLjMuMiAyIC4ybDguOS0yNi43YzMuNC0xMC4yLTYuMy0xOS44LTE2LjUtMTYuNGwtNzUuMyAyNS4xLTM1LjUtNzFjLTQuOC05LjYtMTguNS05LjYtMjMuMyAwbC0zNS41IDcxLTc1LjMtMjUuMWMtMTAuMi0zLjQtMTkuOCA2LjMtMTYuNCAxNi41bDI1LjEgNzUuMy03MSAzNS41Yy05LjYgNC44LTkuNiAxOC41IDAgMjMuM2w3MSAzNS41LTI1LjEgNzUuM2MtMy40IDEwLjIgNi4zIDE5LjggMTYuNSAxNi41bDU5LjItMTkuN2MtLjItMi40LS43LTQuNy0uNy03LjIgMC0xMi41IDIuMy0yNC41IDYuMi0zNS45LTMuNi0yLjctNy4xLTUuMi0xMC4yLTguM3ptNjkuOC01OGM0LjMtMjQuNSAxNS44LTQ2LjQgMzEuOS02NC05LjgtNi4yLTIxLjQtOS45LTMzLjgtOS45LTM1LjMgMC02NCAyOC43LTY0IDY0IDAgMTguNyA4LjIgMzUuNCAyMS4xIDQ3LjEgMTEuMy0xNS45IDI2LjYtMjguOSA0NC44LTM3LjJ6bTMzMC42IDIxNi4yYy03LjYtNC4zLTE3LjQtMS44LTIxLjggNmwtMzYuNiA2NGMtNC40IDcuNy0xLjcgMTcuNCA2IDIxLjggMi41IDEuNCA1LjIgMi4xIDcuOSAyLjEgNS41IDAgMTAuOS0yLjkgMTMuOS04LjFsMzYuNi02NGM0LjMtNy43IDEuNy0xNy40LTYtMjEuOHptLTk2IDBjLTcuNi00LjMtMTcuNC0xLjgtMjEuOCA2bC0zNi42IDY0Yy00LjQgNy43LTEuNyAxNy40IDYgMjEuOCAyLjUgMS40IDUuMiAyLjEgNy45IDIuMSA1LjUgMCAxMC45LTIuOSAxMy45LTguMWwzNi42LTY0YzQuMy03LjcgMS43LTE3LjQtNi0yMS44em0tOTYgMGMtNy42LTQuMy0xNy40LTEuOC0yMS44IDZsLTM2LjYgNjRjLTQuNCA3LjctMS43IDE3LjQgNiAyMS44IDIuNSAxLjQgNS4yIDIuMSA3LjkgMi4xIDUuNSAwIDEwLjktMi45IDEzLjktOC4xbDM2LjYtNjRjNC4zLTcuNyAxLjctMTcuNC02LTIxLjh6bS05NiAwYy03LjYtNC4zLTE3LjQtMS44LTIxLjggNmwtMzYuNiA2NGMtNC40IDcuNy0xLjcgMTcuNCA2IDIxLjggMi41IDEuNCA1LjIgMi4xIDcuOSAyLjEgNS41IDAgMTAuOS0yLjkgMTMuOS04LjFsMzYuNi02NGM0LjMtNy43IDEuNy0xNy40LTYtMjEuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRTdW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTc1LjIgMzI1LjdjLjItMS45LjgtMy43LjgtNS42IDAtMzUuMy0yOC43LTY0LTY0LTY0LTEyLjYgMC0yNC4yIDMuOC0zNC4xIDEwLTE3LjYtMzguOC01Ni41LTY2LTEwMS45LTY2LTYxLjggMC0xMTIgNTAuMS0xMTIgMTEyIDAgMyAuNyA1LjguOSA4LjctNDkuNiAzLjctODguOSA0NC43LTg4LjkgOTUuMyAwIDUzIDQzIDk2IDk2IDk2aDI3MmM1MyAwIDk2LTQzIDk2LTk2IDAtNDIuMS0yNy4yLTc3LjQtNjQuOC05MC40em0tNDMwLjQtMjIuNmMtNDMuNy00My43LTQzLjctMTE0LjcgMC0xNTguMyA0My43LTQzLjcgMTE0LjctNDMuNyAxNTguNCAwIDkuNyA5LjcgMTYuOSAyMC45IDIyLjMgMzIuNyA5LjgtMy43IDIwLjEtNiAzMC43LTcuNUwzODYgODEuMWM0LTExLjktNy4zLTIzLjEtMTkuMi0xOS4yTDI3OSA5MS4yIDIzNy41IDguNEMyMzItMi44IDIxNi0yLjggMjEwLjQgOC40TDE2OSA5MS4yIDgxLjEgNjEuOUM2OS4zIDU4IDU4IDY5LjMgNjEuOSA4MS4xbDI5LjMgODcuOC04Mi44IDQxLjVjLTExLjIgNS42LTExLjIgMjEuNSAwIDI3LjFsODIuOCA0MS40LTI5LjMgODcuOGMtNCAxMS45IDcuMyAyMy4xIDE5LjIgMTkuMmw3Ni4xLTI1LjNjNi4xLTEyLjQgMTQtMjMuNyAyMy42LTMzLjUtMTMuMS01LjQtMjUuNC0xMy40LTM2LTI0em0tNC44LTc5LjJjMCA0MC44IDI5LjMgNzQuOCA2Ny45IDgyLjMgOC00LjcgMTYuMy04LjggMjUuMi0xMS43IDUuNC00NC4zIDMxLTgyLjUgNjcuNC0xMDVDMjg3LjMgMTYwLjQgMjU4IDE0MCAyMjQgMTQwYy00Ni4zIDAtODQgMzcuNi04NCA4My45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZFVwbG9hZEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MzcuNiAyMjYuNmM0LjEtMTAuNyA2LjQtMjIuNCA2LjQtMzQuNiAwLTUzLTQzLTk2LTk2LTk2LTE5LjcgMC0zOC4xIDYtNTMuMyAxNi4yQzM2NyA2NC4yIDMxNS4zIDMyIDI1NiAzMmMtODguNCAwLTE2MCA3MS42LTE2MCAxNjAgMCAyLjcuMSA1LjQuMiA4LjFDNDAuMiAyMTkuOCAwIDI3My4yIDAgMzM2YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0aDM2OGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOCAwLTYxLjktNDQtMTEzLjYtMTAyLjQtMTI1LjR6TTM5My40IDI4OEgzMjh2MTEyYzAgOC44LTcuMiAxNi0xNiAxNmgtNDhjLTguOCAwLTE2LTcuMi0xNi0xNlYyODhoLTY1LjRjLTE0LjMgMC0yMS40LTE3LjItMTEuMy0yNy4zbDEwNS40LTEwNS40YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwbDEwNS40IDEwNS40YzEwLjEgMTAuMSAyLjkgMjcuMy0xMS4zIDI3LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUzNy42IDIyNi42YzQuMS0xMC43IDYuNC0yMi40IDYuNC0zNC42IDAtNTMtNDMtOTYtOTYtOTYtMTkuNyAwLTM4LjEgNi01My4zIDE2LjJDMzY3IDY0LjIgMzE1LjMgMzIgMjU2IDMyYy04OC40IDAtMTYwIDcxLjYtMTYwIDE2MCAwIDIuNy4xIDUuNC4yIDguMUM0MC4yIDIxOS44IDAgMjczLjIgMCAzMzZjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRoMzY4YzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNjEuOS00NC0xMTMuNi0xMDIuNC0xMjUuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29ja3RhaWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk2IDQ2NGgtNTZWMzM4Ljc4bDE2OC43NC0xNjguNzNjMTUuNTItMTUuNTIgNC41My00Mi4wNS0xNy40Mi00Mi4wNUgyNC42OGMtMjEuOTUgMC0zMi45NCAyNi41My0xNy40MiA0Mi4wNUwxNzYgMzM4Ljc4VjQ2NGgtNTZjLTIyLjA5IDAtNDAgMTcuOTEtNDAgNDAgMCA0LjQyIDMuNTggOCA4IDhoMjQwYzQuNDIgMCA4LTMuNTggOC04IDAtMjIuMDktMTcuOTEtNDAtNDAtNDB6TTQzMiAwYy02Mi42MSAwLTExNS4zNSA0MC4yLTEzNS4xOCA5Nmg1Mi41NGMxNi42NS0yOC41NSA0Ny4yNy00OCA4Mi42NC00OCA1Mi45MyAwIDk2IDQzLjA2IDk2IDk2cy00My4wNyA5Ni05NiA5NmMtMTQuMDQgMC0yNy4yOS0zLjItMzkuMzItOC42NGwtMzUuMjYgMzUuMjZDMzc5LjIzIDI3OS45MiA0MDQuNTkgMjg4IDQzMiAyODhjNzkuNTMgMCAxNDQtNjQuNDcgMTQ0LTE0NFM1MTEuNTMgMCA0MzIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29kZUJyYW5jaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMTQ0YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwYzAgMzYuNCAyNC4zIDY3LjEgNTcuNSA3Ni44LS42IDE2LjEtNC4yIDI4LjUtMTEgMzYuOS0xNS40IDE5LjItNDkuMyAyMi40LTg1LjIgMjUuNy0yOC4yIDIuNi01Ny40IDUuNC04MS4zIDE2Ljl2LTE0NGMzMi41LTEwLjIgNTYtNDAuNSA1Ni03Ni4zIDAtNDQuMi0zNS44LTgwLTgwLTgwUzAgMzUuOCAwIDgwYzAgMzUuOCAyMy41IDY2LjEgNTYgNzYuM3YxOTkuM0MyMy41IDM2NS45IDAgMzk2LjIgMCA0MzJjMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTM0LTIxLjItNjMuMS01MS4yLTc0LjYgMy4xLTUuMiA3LjgtOS44IDE0LjktMTMuNCAxNi4yLTguMiA0MC40LTEwLjQgNjYuMS0xMi44IDQyLjItMy45IDkwLTguNCAxMTguMi00My40IDE0LTE3LjQgMjEuMS0zOS44IDIxLjYtNjcuOSAzMS42LTEwLjggNTQuNC00MC43IDU0LjQtNzUuOXpNODAgNjRjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTYtMTYtNy4yLTE2LTE2IDcuMi0xNiAxNi0xNnptMCAzODRjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTcuMiAxNi0xNiAxNnptMjI0LTMyMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNi0xNi03LjItMTYtMTYgNy4yLTE2IDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3OC45IDUxMS41bC02MS0xNy43Yy02LjQtMS44LTEwLTguNS04LjItMTQuOUwzNDYuMiA4LjdjMS44LTYuNCA4LjUtMTAgMTQuOS04LjJsNjEgMTcuN2M2LjQgMS44IDEwIDguNSA4LjIgMTQuOUwyOTMuOCA1MDMuM2MtMS45IDYuNC04LjUgMTAuMS0xNC45IDguMnptLTExNC0xMTIuMmw0My41LTQ2LjRjNC42LTQuOSA0LjMtMTIuNy0uOC0xNy4yTDExNyAyNTZsOTAuNi03OS43YzUuMS00LjUgNS41LTEyLjMuOC0xNy4ybC00My41LTQ2LjRjLTQuNS00LjgtMTIuMS01LjEtMTctLjVMMy44IDI0Ny4yYy01LjEgNC43LTUuMSAxMi44IDAgMTcuNWwxNDQuMSAxMzUuMWM0LjkgNC42IDEyLjUgNC40IDE3LS41em0zMjcuMi42bDE0NC4xLTEzNS4xYzUuMS00LjcgNS4xLTEyLjggMC0xNy41TDQ5Mi4xIDExMi4xYy00LjgtNC41LTEyLjQtNC4zLTE3IC41TDQzMS42IDE1OWMtNC42IDQuOS00LjMgMTIuNy44IDE3LjJMNTIzIDI1NmwtOTAuNiA3OS43Yy01LjEgNC41LTUuNSAxMi4zLS44IDE3LjJsNDMuNSA0Ni40YzQuNSA0LjkgMTIuMSA1LjEgMTcgLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvZmZlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMzg0aDE5MmM1MyAwIDk2LTQzIDk2LTk2aDMyYzcwLjYgMCAxMjgtNTcuNCAxMjgtMTI4UzU4Mi42IDMyIDUxMiAzMkgxMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0djIzMmMwIDUzIDQzIDk2IDk2IDk2ek01MTIgOTZjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRoLTMyVjk2aDMyem00Ny43IDM4NEg0OC4zYy00Ny42IDAtNjEtNjQtMzYtNjRoNTgzLjNjMjUgMCAxMS44IDY0LTM1LjkgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODcuNCAzMTUuN2wtNDIuNi0yNC42YzQuMy0yMy4yIDQuMy00NyAwLTcwLjJsNDIuNi0yNC42YzQuOS0yLjggNy4xLTguNiA1LjUtMTQtMTEuMS0zNS42LTMwLTY3LjgtNTQuNy05NC42LTMuOC00LjEtMTAtNS4xLTE0LjgtMi4zTDM4MC44IDExMGMtMTcuOS0xNS40LTM4LjUtMjcuMy02MC44LTM1LjFWMjUuOGMwLTUuNi0zLjktMTAuNS05LjQtMTEuNy0zNi43LTguMi03NC4zLTcuOC0xMDkuMiAwLTUuNSAxLjItOS40IDYuMS05LjQgMTEuN1Y3NWMtMjIuMiA3LjktNDIuOCAxOS44LTYwLjggMzUuMUw4OC43IDg1LjVjLTQuOS0yLjgtMTEtMS45LTE0LjggMi4zLTI0LjcgMjYuNy00My42IDU4LjktNTQuNyA5NC42LTEuNyA1LjQuNiAxMS4yIDUuNSAxNEw2Ny4zIDIyMWMtNC4zIDIzLjItNC4zIDQ3IDAgNzAuMmwtNDIuNiAyNC42Yy00LjkgMi44LTcuMSA4LjYtNS41IDE0IDExLjEgMzUuNiAzMCA2Ny44IDU0LjcgOTQuNiAzLjggNC4xIDEwIDUuMSAxNC44IDIuM2w0Mi42LTI0LjZjMTcuOSAxNS40IDM4LjUgMjcuMyA2MC44IDM1LjF2NDkuMmMwIDUuNiAzLjkgMTAuNSA5LjQgMTEuNyAzNi43IDguMiA3NC4zIDcuOCAxMDkuMiAwIDUuNS0xLjIgOS40LTYuMSA5LjQtMTEuN3YtNDkuMmMyMi4yLTcuOSA0Mi44LTE5LjggNjAuOC0zNS4xbDQyLjYgMjQuNmM0LjkgMi44IDExIDEuOSAxNC44LTIuMyAyNC43LTI2LjcgNDMuNi01OC45IDU0LjctOTQuNiAxLjUtNS41LS43LTExLjMtNS42LTE0LjF6TTI1NiAzMzZjLTQ0LjEgMC04MC0zNS45LTgwLTgwczM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb2dzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMi4xIDE5MWwtOC4yIDE0LjNjLTMgNS4zLTkuNCA3LjUtMTUuMSA1LjQtMTEuOC00LjQtMjIuNi0xMC43LTMyLjEtMTguNi00LjYtMy44LTUuOC0xMC41LTIuOC0xNS43bDguMi0xNC4zYy02LjktOC0xMi4zLTE3LjMtMTUuOS0yNy40aC0xNi41Yy02IDAtMTEuMi00LjMtMTIuMi0xMC4zLTItMTItMi4xLTI0LjYgMC0zNy4xIDEtNiA2LjItMTAuNCAxMi4yLTEwLjRoMTYuNWMzLjYtMTAuMSA5LTE5LjQgMTUuOS0yNy40bC04LjItMTQuM2MtMy01LjItMS45LTExLjkgMi44LTE1LjcgOS41LTcuOSAyMC40LTE0LjIgMzIuMS0xOC42IDUuNy0yLjEgMTIuMS4xIDE1LjEgNS40bDguMiAxNC4zYzEwLjUtMS45IDIxLjItMS45IDMxLjcgMEw1NTIgNi4zYzMtNS4zIDkuNC03LjUgMTUuMS01LjQgMTEuOCA0LjQgMjIuNiAxMC43IDMyLjEgMTguNiA0LjYgMy44IDUuOCAxMC41IDIuOCAxNS43bC04LjIgMTQuM2M2LjkgOCAxMi4zIDE3LjMgMTUuOSAyNy40aDE2LjVjNiAwIDExLjIgNC4zIDEyLjIgMTAuMyAyIDEyIDIuMSAyNC42IDAgMzcuMS0xIDYtNi4yIDEwLjQtMTIuMiAxMC40aC0xNi41Yy0zLjYgMTAuMS05IDE5LjQtMTUuOSAyNy40bDguMiAxNC4zYzMgNS4yIDEuOSAxMS45LTIuOCAxNS43LTkuNSA3LjktMjAuNCAxNC4yLTMyLjEgMTguNi01LjcgMi4xLTEyLjEtLjEtMTUuMS01LjRsLTguMi0xNC4zYy0xMC40IDEuOS0yMS4yIDEuOS0zMS43IDB6bS0xMC41LTU4LjhjMzguNSAyOS42IDgyLjQtMTQuMyA1Mi44LTUyLjgtMzguNS0yOS43LTgyLjQgMTQuMy01Mi44IDUyLjh6TTM4Ni4zIDI4Ni4xbDMzLjcgMTYuOGMxMC4xIDUuOCAxNC41IDE4LjEgMTAuNSAyOS4xLTguOSAyNC4yLTI2LjQgNDYuNC00Mi42IDY1LjgtNy40IDguOS0yMC4yIDExLjEtMzAuMyA1LjNsLTI5LjEtMTYuOGMtMTYgMTMuNy0zNC42IDI0LjYtNTQuOSAzMS43djMzLjZjMCAxMS42LTguMyAyMS42LTE5LjcgMjMuNi0yNC42IDQuMi01MC40IDQuNC03NS45IDAtMTEuNS0yLTIwLTExLjktMjAtMjMuNlY0MThjLTIwLjMtNy4yLTM4LjktMTgtNTQuOS0zMS43TDc0IDQwM2MtMTAgNS44LTIyLjkgMy42LTMwLjMtNS4zLTE2LjItMTkuNC0zMy4zLTQxLjYtNDIuMi02NS43LTQtMTAuOS40LTIzLjIgMTAuNS0yOS4xbDMzLjMtMTYuOGMtMy45LTIwLjktMy45LTQyLjQgMC02My40TDEyIDIwNS44Yy0xMC4xLTUuOC0xNC42LTE4LjEtMTAuNS0yOSA4LjktMjQuMiAyNi00Ni40IDQyLjItNjUuOCA3LjQtOC45IDIwLjItMTEuMSAzMC4zLTUuM2wyOS4xIDE2LjhjMTYtMTMuNyAzNC42LTI0LjYgNTQuOS0zMS43VjU3LjFjMC0xMS41IDguMi0yMS41IDE5LjYtMjMuNSAyNC42LTQuMiA1MC41LTQuNCA3Ni0uMSAxMS41IDIgMjAgMTEuOSAyMCAyMy42djMzLjZjMjAuMyA3LjIgMzguOSAxOCA1NC45IDMxLjdsMjkuMS0xNi44YzEwLTUuOCAyMi45LTMuNiAzMC4zIDUuMyAxNi4yIDE5LjQgMzMuMiA0MS42IDQyLjEgNjUuOCA0IDEwLjkuMSAyMy4yLTEwIDI5LjFsLTMzLjcgMTYuOGMzLjkgMjEgMy45IDQyLjUgMCA2My41em0tMTE3LjYgMjEuMWM1OS4yLTc3LTI4LjctMTY0LjktMTA1LjctMTA1LjctNTkuMiA3NyAyOC43IDE2NC45IDEwNS43IDEwNS43em0yNDMuNCAxODIuN2wtOC4yIDE0LjNjLTMgNS4zLTkuNCA3LjUtMTUuMSA1LjQtMTEuOC00LjQtMjIuNi0xMC43LTMyLjEtMTguNi00LjYtMy44LTUuOC0xMC41LTIuOC0xNS43bDguMi0xNC4zYy02LjktOC0xMi4zLTE3LjMtMTUuOS0yNy40aC0xNi41Yy02IDAtMTEuMi00LjMtMTIuMi0xMC4zLTItMTItMi4xLTI0LjYgMC0zNy4xIDEtNiA2LjItMTAuNCAxMi4yLTEwLjRoMTYuNWMzLjYtMTAuMSA5LTE5LjQgMTUuOS0yNy40bC04LjItMTQuM2MtMy01LjItMS45LTExLjkgMi44LTE1LjcgOS41LTcuOSAyMC40LTE0LjIgMzIuMS0xOC42IDUuNy0yLjEgMTIuMS4xIDE1LjEgNS40bDguMiAxNC4zYzEwLjUtMS45IDIxLjItMS45IDMxLjcgMGw4LjItMTQuM2MzLTUuMyA5LjQtNy41IDE1LjEtNS40IDExLjggNC40IDIyLjYgMTAuNyAzMi4xIDE4LjYgNC42IDMuOCA1LjggMTAuNSAyLjggMTUuN2wtOC4yIDE0LjNjNi45IDggMTIuMyAxNy4zIDE1LjkgMjcuNGgxNi41YzYgMCAxMS4yIDQuMyAxMi4yIDEwLjMgMiAxMiAyLjEgMjQuNiAwIDM3LjEtMSA2LTYuMiAxMC40LTEyLjIgMTAuNGgtMTYuNWMtMy42IDEwLjEtOSAxOS40LTE1LjkgMjcuNGw4LjIgMTQuM2MzIDUuMiAxLjkgMTEuOS0yLjggMTUuNy05LjUgNy45LTIwLjQgMTQuMi0zMi4xIDE4LjYtNS43IDIuMS0xMi4xLS4xLTE1LjEtNS40bC04LjItMTQuM2MtMTAuNCAxLjktMjEuMiAxLjktMzEuNyAwek01MDEuNiA0MzFjMzguNSAyOS42IDgyLjQtMTQuMyA1Mi44LTUyLjgtMzguNS0yOS42LTgyLjQgMTQuMy01Mi44IDUyLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvaW5zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDA1LjNWNDQ4YzAgMzUuMyA4NiA2NCAxOTIgNjRzMTkyLTI4LjcgMTkyLTY0di00Mi43QzM0Mi43IDQzNC40IDI2Ny4yIDQ0OCAxOTIgNDQ4UzQxLjMgNDM0LjQgMCA0MDUuM3pNMzIwIDEyOGMxMDYgMCAxOTItMjguNyAxOTItNjRTNDI2IDAgMzIwIDAgMTI4IDI4LjcgMTI4IDY0czg2IDY0IDE5MiA2NHpNMCAzMDAuNFYzNTJjMCAzNS4zIDg2IDY0IDE5MiA2NHMxOTItMjguNyAxOTItNjR2LTUxLjZjLTQxLjMgMzQtMTE2LjkgNTEuNi0xOTIgNTEuNlM0MS4zIDMzNC40IDAgMzAwLjR6bTQxNiAxMWM1Ny4zLTExLjEgOTYtMzEuNyA5Ni01NS40di00Mi43Yy0yMy4yIDE2LjQtNTcuMyAyNy42LTk2IDM0LjV2NjMuNnpNMTkyIDE2MEM4NiAxNjAgMCAxOTUuOCAwIDI0MHM4NiA4MCAxOTIgODAgMTkyLTM1LjggMTkyLTgwLTg2LTgwLTE5Mi04MHptMjE5LjMgNTYuM2M2MC0xMC44IDEwMC43LTMyIDEwMC43LTU2LjN2LTQyLjdjLTM1LjUgMjUuMS05Ni41IDM4LjYtMTYwLjcgNDEuOCAyOS41IDE0LjMgNTEuMiAzMy41IDYwIDU3LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbHVtbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDMySDQ4QzIxLjQ5IDMyIDAgNTMuNDkgMCA4MHYzNTJjMCAyNi41MSAyMS40OSA0OCA0OCA0OGg0MTZjMjYuNTEgMCA0OC0yMS40OSA0OC00OFY4MGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4ek0yMjQgNDE2SDY0VjE2MGgxNjB2MjU2em0yMjQgMEgyODhWMTYwaDE2MHYyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbW1lbnRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDBINjRDMjguNyAwIDAgMjguNyAwIDY0djI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NGg5NnY4NGMwIDkuOCAxMS4yIDE1LjUgMTkuMSA5LjdMMzA0IDQxNmgxNDRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjRjMC0zNS4zLTI4LjctNjQtNjQtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbW1lbnREb2xsYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDMyQzExNC42MiAzMiAwIDEyNS4xMiAwIDI0MGMwIDQ5LjU2IDIxLjQxIDk1LjAxIDU3LjAyIDEzMC43NEM0NC40NiA0MjEuMDUgMi43IDQ2NS45NyAyLjIgNDY2LjVBNy45OTUgNy45OTUgMCAwIDAgOCA0ODBjNjYuMjYgMCAxMTUuOTktMzEuNzUgMTQwLjYtNTEuMzhDMTgxLjI5IDQ0MC45MyAyMTcuNTkgNDQ4IDI1NiA0NDhjMTQxLjM4IDAgMjU2LTkzLjEyIDI1Ni0yMDhTMzk3LjM4IDMyIDI1NiAzMnptMjQgMzAyLjQ0VjM1MmMwIDguODQtNy4xNiAxNi0xNiAxNmgtMTZjLTguODQgMC0xNi03LjE2LTE2LTE2di0xNy43M2MtMTEuNDItMS4zNS0yMi4yOC01LjE5LTMxLjc4LTExLjQ2LTYuMjItNC4xMS02LjgyLTEzLjExLTEuNTUtMTguMzhsMTcuNTItMTcuNTJjMy43NC0zLjc0IDkuMzEtNC4yNCAxNC4xMS0yLjAzIDMuMTggMS40NiA2LjY2IDIuMjIgMTAuMjYgMi4yMmgzMi43OGM0LjY2IDAgOC40NC0zLjc4IDguNDQtOC40MiAwLTMuNzUtMi41Mi03LjA4LTYuMTItOC4xMWwtNTAuMDctMTQuM2MtMjIuMjUtNi4zNS00MC4wMS0yNC43MS00Mi45MS00Ny42Ny00LjA1LTMyLjA3IDE5LjAzLTU5LjQzIDQ5LjMyLTYzLjA1VjEyOGMwLTguODQgNy4xNi0xNiAxNi0xNmgxNmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYxNy43M2MxMS40MiAxLjM1IDIyLjI4IDUuMTkgMzEuNzggMTEuNDYgNi4yMiA0LjExIDYuODIgMTMuMTEgMS41NSAxOC4zOGwtMTcuNTIgMTcuNTJjLTMuNzQgMy43NC05LjMxIDQuMjQtMTQuMTEgMi4wM2EyNC41MTYgMjQuNTE2IDAgMCAwLTEwLjI2LTIuMjJoLTMyLjc4Yy00LjY2IDAtOC40NCAzLjc4LTguNDQgOC40MiAwIDMuNzUgMi41MiA3LjA4IDYuMTIgOC4xMWw1MC4wNyAxNC4zYzIyLjI1IDYuMzYgNDAuMDEgMjQuNzEgNDIuOTEgNDcuNjcgNC4wNSAzMi4wNi0xOS4wMyA1OS40Mi00OS4zMiA2My4wNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tbWVudERvdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDMyQzExNC42IDMyIDAgMTI1LjEgMCAyNDBjMCA0OS42IDIxLjQgOTUgNTcgMTMwLjdDNDQuNSA0MjEuMSAyLjcgNDY2IDIuMiA0NjYuNWMtMi4yIDIuMy0yLjggNS43LTEuNSA4LjdTNC44IDQ4MCA4IDQ4MGM2Ni4zIDAgMTE2LTMxLjggMTQwLjYtNTEuNCAzMi43IDEyLjMgNjkgMTkuNCAxMDcuNCAxOS40IDE0MS40IDAgMjU2LTkzLjEgMjU2LTIwOFMzOTcuNCAzMiAyNTYgMzJ6TTEyOCAyNzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tbWVudE1lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDMyQzExNC42MiAzMiAwIDEyNS4xMiAwIDI0MGMwIDQ5LjU2IDIxLjQxIDk1IDU3IDEzMC43NEM0NC40NiA0MjEuMDUgMi43IDQ2NiAyLjIgNDY2LjVBOCA4IDAgMCAwIDggNDgwYzY2LjI2IDAgMTE2LTMxLjc1IDE0MC42LTUxLjM4QTMwNC42NiAzMDQuNjYgMCAwIDAgMjU2IDQ0OGMxNDEuMzkgMCAyNTYtOTMuMTIgMjU2LTIwOFMzOTcuMzkgMzIgMjU2IDMyem05NiAyMzJhOCA4IDAgMCAxLTggOGgtNTZ2NTZhOCA4IDAgMCAxLTggOGgtNDhhOCA4IDAgMCAxLTgtOHYtNTZoLTU2YTggOCAwIDAgMS04LTh2LTQ4YTggOCAwIDAgMSA4LThoNTZ2LTU2YTggOCAwIDAgMSA4LThoNDhhOCA4IDAgMCAxIDggOHY1Nmg1NmE4IDggMCAwIDEgOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21tZW50U2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMjQwYzAgNDkuNiAyMS40IDk1IDU3IDEzMC43LTEyLjYgNTAuMy01NC4zIDk1LjItNTQuOCA5NS44LTIuMiAyLjMtMi44IDUuNy0xLjUgOC43IDEuMyAyLjkgNC4xIDQuOCA3LjMgNC44IDY2LjMgMCAxMTYtMzEuOCAxNDAuNi01MS40IDMyLjcgMTIuMyA2OSAxOS40IDEwNy40IDE5LjQgMjcuNCAwIDUzLjctMy42IDc4LjQtMTBMNzIuOSAxODYuNGMtNS42IDE3LjEtOC45IDM1LTguOSA1My42em01NjkuOCAyMTguMWwtMTE0LjQtODguNEM1NTQuNiAzMzQuMSA1NzYgMjg5LjIgNTc2IDI0MGMwLTExNC45LTExNC42LTIwOC0yNTYtMjA4LTY1LjEgMC0xMjQuMiAyMC4xLTE2OS40IDUyLjdMNDUuNSAzLjRDMzguNS0yIDI4LjUtLjggMjMgNi4yTDMuNCAzMS40Yy01LjQgNy00LjIgMTcgMi44IDIyLjRsNTg4LjQgNDU0LjdjNyA1LjQgMTcgNC4yIDIyLjUtMi44bDE5LjYtMjUuM2M1LjQtNi44IDQuMS0xNi45LTIuOS0yMi4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21tZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAzMkMxMTQuNiAzMiAwIDEyNS4xIDAgMjQwYzAgNDkuNiAyMS40IDk1IDU3IDEzMC43QzQ0LjUgNDIxLjEgMi43IDQ2NiAyLjIgNDY2LjVjLTIuMiAyLjMtMi44IDUuNy0xLjUgOC43UzQuOCA0ODAgOCA0ODBjNjYuMyAwIDExNi0zMS44IDE0MC42LTUxLjQgMzIuNyAxMi4zIDY5IDE5LjQgMTA3LjQgMTkuNCAxNDEuNCAwIDI1Ni05My4xIDI1Ni0yMDhTMzk3LjQgMzIgMjU2IDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21tZW50c0RvbGxhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMTkyYzAtODguMzctOTMuMTItMTYwLTIwOC0xNjBTMCAxMDMuNjMgMCAxOTJjMCAzNC4yNyAxNC4xMyA2NS45NSAzNy45NyA5MS45OEMyNC42MSAzMTQuMjIgMi41MiAzMzguMTYgMi4yIDMzOC41QTcuOTk1IDcuOTk1IDAgMCAwIDggMzUyYzM2LjU4IDAgNjYuOTMtMTIuMjUgODguNzMtMjQuOThDMTI4LjkzIDM0Mi43NiAxNjcuMDIgMzUyIDIwOCAzNTJjMTE0Ljg4IDAgMjA4LTcxLjYzIDIwOC0xNjB6bS0yMjQgOTZ2LTE2LjI5Yy0xMS4yOS0uNTgtMjIuMjctNC41Mi0zMS4zNy0xMS4zNS0zLjktMi45My00LjEtOC43Ny0uNTctMTIuMTRsMTEuNzUtMTEuMjFjMi43Ny0yLjY0IDYuODktMi43NiAxMC4xMy0uNzMgMy44NyAyLjQyIDguMjYgMy43MiAxMi44MiAzLjcyaDI4LjExYzYuNSAwIDExLjgtNS45MiAxMS44LTEzLjE5IDAtNS45NS0zLjYxLTExLjE5LTguNzctMTIuNzNsLTQ1LTEzLjVjLTE4LjU5LTUuNTgtMzEuNTgtMjMuNDItMzEuNTgtNDMuMzkgMC0yNC41MiAxOS4wNS00NC40NCA0Mi42Ny00NS4wN1Y5NmMwLTQuNDIgMy41OC04IDgtOGgxNmM0LjQyIDAgOCAzLjU4IDggOHYxNi4yOWMxMS4yOS41OCAyMi4yNyA0LjUxIDMxLjM3IDExLjM1IDMuOSAyLjkzIDQuMSA4Ljc3LjU3IDEyLjE0bC0xMS43NSAxMS4yMWMtMi43NyAyLjY0LTYuODkgMi43Ni0xMC4xMy43My0zLjg3LTIuNDMtOC4yNi0zLjcyLTEyLjgyLTMuNzJoLTI4LjExYy02LjUgMC0xMS44IDUuOTItMTEuOCAxMy4xOSAwIDUuOTUgMy42MSAxMS4xOSA4Ljc3IDEyLjczbDQ1IDEzLjVjMTguNTkgNS41OCAzMS41OCAyMy40MiAzMS41OCA0My4zOSAwIDI0LjUzLTE5LjA1IDQ0LjQ0LTQyLjY3IDQ1LjA3VjI4OGMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04em0zNDYuMDEgMTIzLjk5QzU2MS44NyAzODUuOTYgNTc2IDM1NC4yNyA1NzYgMzIwYzAtNjYuOTQtNTMuNDktMTI0LjItMTI5LjMzLTE0OC4wNy44NiA2LjYgMS4zMyAxMy4yOSAxLjMzIDIwLjA3IDAgMTA1Ljg3LTEwNy42NiAxOTItMjQwIDE5Mi0xMC43OCAwLTIxLjMyLS43Ny0zMS43My0xLjg4QzIwNy44IDQzOS42MyAyODEuNzcgNDgwIDM2OCA0ODBjNDAuOTggMCA3OS4wNy05LjI0IDExMS4yNy0yNC45OEM1MDEuMDcgNDY3Ljc1IDUzMS40MiA0ODAgNTY4IDQ4MGMzLjIgMCA2LjA5LTEuOTEgNy4zNC00Ljg0IDEuMjctMi45NC42Ni02LjM0LTEuNTUtOC42Ny0uMzEtLjMzLTIyLjQyLTI0LjI0LTM1Ljc4LTU0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbW1lbnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAxOTJjMC04OC40LTkzLjEtMTYwLTIwOC0xNjBTMCAxMDMuNiAwIDE5MmMwIDM0LjMgMTQuMSA2NS45IDM4IDkyLTEzLjQgMzAuMi0zNS41IDU0LjItMzUuOCA1NC41LTIuMiAyLjMtMi44IDUuNy0xLjUgOC43UzQuOCAzNTIgOCAzNTJjMzYuNiAwIDY2LjktMTIuMyA4OC43LTI1IDMyLjIgMTUuNyA3MC4zIDI1IDExMS4zIDI1IDExNC45IDAgMjA4LTcxLjYgMjA4LTE2MHptMTIyIDIyMGMyMy45LTI2IDM4LTU3LjcgMzgtOTIgMC02Ni45LTUzLjUtMTI0LjItMTI5LjMtMTQ4LjEuOSA2LjYgMS4zIDEzLjMgMS4zIDIwLjEgMCAxMDUuOS0xMDcuNyAxOTItMjQwIDE5Mi0xMC44IDAtMjEuMy0uOC0zMS43LTEuOUMyMDcuOCA0MzkuNiAyODEuOCA0ODAgMzY4IDQ4MGM0MSAwIDc5LjEtOS4yIDExMS4zLTI1IDIxLjggMTIuNyA1Mi4xIDI1IDg4LjcgMjUgMy4yIDAgNi4xLTEuOSA3LjMtNC44IDEuMy0yLjkuNy02LjMtMS41LTguNy0uMy0uMy0yMi40LTI0LjItMzUuOC01NC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21wYWN0RGlzYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4ek04OCAyNTZINTZjMC0xMDUuOSA4Ni4xLTE5MiAxOTItMTkydjMyYy04OC4yIDAtMTYwIDcxLjgtMTYwIDE2MHptMTYwIDk2Yy01MyAwLTk2LTQzLTk2LTk2czQzLTk2IDk2LTk2IDk2IDQzIDk2IDk2LTQzIDk2LTk2IDk2em0wLTEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbXBhc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI1LjM4IDIzMy4zN2MtMTIuNSAxMi41LTEyLjUgMzIuNzYgMCA0NS4yNSAxMi40OSAxMi41IDMyLjc2IDEyLjUgNDUuMjUgMCAxMi41LTEyLjUgMTIuNS0zMi43NiAwLTQ1LjI1LTEyLjUtMTIuNDktMzIuNzYtMTIuNDktNDUuMjUgMHpNMjQ4IDhDMTExLjAzIDggMCAxMTkuMDMgMCAyNTZzMTExLjAzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMgMjQ4LTI0OFMzODQuOTcgOCAyNDggOHptMTI2LjE0IDE0OC4wNUwzMDguMTcgMzAwLjRhMzEuOTM4IDMxLjkzOCAwIDAgMS0xNS43NyAxNS43N2wtMTQ0LjM0IDY1Ljk3Yy0xNi42NSA3LjYxLTMzLjgxLTkuNTUtMjYuMi0yNi4ybDY1Ljk4LTE0NC4zNWEzMS45MzggMzEuOTM4IDAgMCAxIDE1Ljc3LTE1Ljc3bDE0NC4zNC02NS45N2MxNi42NS03LjYgMzMuOCA5LjU1IDI2LjE5IDI2LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbXByZXNzQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNjg2IDQyNy4zMTRMMTA0IDMyOGwtMzIuOTIyLTMxLjAyOUM1NS45NTggMjgxLjg1MSA2Ni42NjYgMjU2IDg4LjA0OCAyNTZoMTEyQzIxMy4zMDMgMjU2IDIyNCAyNjYuNzQ1IDIyNCAyODB2MTEyYzAgMjEuMzgyLTI1LjgwMyAzMi4wOS00MC45MjIgMTYuOTcxTDE1MiAzNzZsLTk5LjMxNCA5OS4zMTRjLTYuMjQ4IDYuMjQ4LTE2LjM3OSA2LjI0OC0yMi42MjcgMEw0LjY4NiA0NDkuOTQxYy02LjI0OC02LjI0OC02LjI0OC0xNi4zNzkgMC0yMi42Mjd6TTQ0My4zMTQgODQuNjg2TDM0NCAxODRsMzIuOTIyIDMxLjAyOWMxNS4xMiAxNS4xMiA0LjQxMiA0MC45NzEtMTYuOTcgNDAuOTcxaC0xMTJDMjM0LjY5NyAyNTYgMjI0IDI0NS4yNTUgMjI0IDIzMlYxMjBjMC0yMS4zODIgMjUuODAzLTMyLjA5IDQwLjkyMi0xNi45NzFMMjk2IDEzNmw5OS4zMTQtOTkuMzE0YzYuMjQ4LTYuMjQ4IDE2LjM3OS02LjI0OCAyMi42MjcgMGwyNS4zNzMgMjUuMzczYzYuMjQ4IDYuMjQ4IDYuMjQ4IDE2LjM3OSAwIDIyLjYyN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tcHJlc3NBcnJvd3NBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAwIDI4OEg4OGMtMjEuNCAwLTMyLjEgMjUuOC0xNyA0MWwzMi45IDMxLTk5LjIgOTkuM2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsMjUuNCAyNS40YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwTDE1MiA0MDhsMzEuMSAzM2MxNS4xIDE1LjEgNDAuOSA0LjQgNDAuOS0xN1YzMTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTExMi02NGgxMTJjMjEuNCAwIDMyLjEtMjUuOSAxNy00MWwtMzMtMzEgOTkuMy05OS4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42TDQ4MS45IDQuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMMzYwIDEwNGwtMzEuMS0zM0MzMTMuOCA1NS45IDI4OCA2Ni42IDI4OCA4OHYxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjR6bTk2IDEzNmwzMy0zMS4xYzE1LjEtMTUuMSA0LjQtNDAuOS0xNy00MC45SDMxMmMtMTMuMyAwLTI0IDEwLjctMjQgMjR2MTEyYzAgMjEuNCAyNS45IDMyLjEgNDEgMTdsMzEtMzIuOSA5OS4zIDk5LjNjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsMjUuNC0yNS40YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42TDQwOCAzNjB6TTE4MyA3MS4xTDE1MiAxMDQgNTIuNyA0LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDQuNyAzMC4xYy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNkwxMDQgMTUybC0zMyAzMS4xQzU1LjkgMTk4LjIgNjYuNiAyMjQgODggMjI0aDExMmMxMy4zIDAgMjQtMTAuNyAyNC0yNFY4OGMwLTIxLjMtMjUuOS0zMi00MS0xNi45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21wcmVzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzYgMTkySDMxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRWNDRjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY4NGg4NGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDBjMCA2LjYtNS40IDEyLTEyIDEyem0tMjc2LTI0VjQ0YzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnY4NEgxMmMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmgxMjRjMTMuMyAwIDI0LTEwLjcgMjQtMjR6bTAgMzAwVjM0NGMwLTEzLjMtMTAuNy0yNC0yNC0yNEgxMmMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmg4NHY4NGMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEyem0xOTIgMHYtODRoODRjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJIMzEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYxMjRjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29uY2llcmdlQmVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMTMwLjU0VjExMmgxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlY4MGMwLTguODQtNy4xNi0xNi0xNi0xNmgtOTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djE2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2djE4LjU0QzExNS40OSAxNDYuMTEgMzIgMjM5LjE4IDMyIDM1Mmg0NDhjMC0xMTIuODItODMuNDktMjA1Ljg5LTE5Mi0yMjEuNDZ6TTQ5NiAzODRIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvb2tpZUJpdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEwLjUyIDI1NS44MmMtNjkuOTctLjg1LTEyNi40Ny01Ny42OS0xMjYuNDctMTI3Ljg2LTcwLjE3IDAtMTI3LTU2LjQ5LTEyNy44Ni0xMjYuNDUtMjcuMjYtNC4xNC01NS4xMy4zLTc5LjcyIDEyLjgybC02OS4xMyAzNS4yMmExMzIuMjIxIDEzMi4yMjEgMCAwIDAtNTcuNzkgNTcuODFsLTM1LjEgNjguODhhMTMyLjY0NSAxMzIuNjQ1IDAgMCAwLTEyLjgyIDgwLjk1bDEyLjA4IDc2LjI3YTEzMi41MjEgMTMyLjUyMSAwIDAgMCAzNy4xNiA3Mi45Nmw1NC43NyA1NC43NmExMzIuMDM2IDEzMi4wMzYgMCAwIDAgNzIuNzEgMzcuMDZsNzYuNzEgMTIuMTVjMjcuNTEgNC4zNiA1NS43LS4xMSA4MC41My0xMi43Nmw2OS4xMy0zNS4yMWExMzIuMjczIDEzMi4yNzMgMCAwIDAgNTcuNzktNTcuODFsMzUuMS02OC44OGMxMi41Ni0yNC42NCAxNy4wMS01Mi41OCAxMi45MS03OS45MXpNMTc2IDM2OGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMzItMTYwYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0xNjAgMTI4Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb29raWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEwLjM3IDI1NC43OWwtMTIuMDgtNzYuMjZhMTMyLjQ5MyAxMzIuNDkzIDAgMCAwLTM3LjE2LTcyLjk1bC01NC43Ni01NC43NWMtMTkuNzMtMTkuNzItNDUuMTgtMzIuNy03Mi43MS0zNy4wNWwtNzYuNy0xMi4xNWMtMjcuNTEtNC4zNi01NS42OS4xMS04MC41MiAxMi43NkwxMDcuMzIgNDkuNmExMzIuMjUgMTMyLjI1IDAgMCAwLTU3Ljc5IDU3LjhsLTM1LjEgNjguODhhMTMyLjYwMiAxMzIuNjAyIDAgMCAwLTEyLjgyIDgwLjk0bDEyLjA4IDc2LjI3YTEzMi40OTMgMTMyLjQ5MyAwIDAgMCAzNy4xNiA3Mi45NWw1NC43NiA1NC43NWExMzIuMDg3IDEzMi4wODcgMCAwIDAgNzIuNzEgMzcuMDVsNzYuNyAxMi4xNGMyNy41MSA0LjM2IDU1LjY5LS4xMSA4MC41Mi0xMi43NWw2OS4xMi0zNS4yMWExMzIuMzAyIDEzMi4zMDIgMCAwIDAgNTcuNzktNTcuOGwzNS4xLTY4Ljg3YzEyLjcxLTI0Ljk2IDE3LjItNTMuMyAxMi44Mi04MC45NnpNMTc2IDM2OGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMzItMTYwYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0xNjAgMTI4Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb3B5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCA0NDh2NDBjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0SDI0Yy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjRWMTIwYzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNGg3MnYyOTZjMCAzMC44NzkgMjUuMTIxIDU2IDU2IDU2aDE2OHptMC0zNDRWMEgxNTJjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYzNjhjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDI3MmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTI4SDM0NGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bTEyMC45NzEtMzEuMDI5TDM3NS4wMjkgNy4wMjlBMjQgMjQgMCAwIDAgMzU4LjA1OSAwSDM1MnY5Nmg5NnYtNi4wNTlhMjQgMjQgMCAwIDAtNy4wMjktMTYuOTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvcHlyaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkuMDMzIDggOCAxMTkuMDMzIDggMjU2czExMS4wMzMgMjQ4IDI0OCAyNDggMjQ4LTExMS4wMzMgMjQ4LTI0OFMzOTIuOTY3IDggMjU2IDh6bTExNy4xMzQgMzQ2Ljc1M2MtMS41OTIgMS44NjctMzkuNzc2IDQ1LjczMS0xMDkuODUxIDQ1LjczMS04NC42OTIgMC0xNDQuNDg0LTYzLjI2LTE0NC40ODQtMTQ1LjU2NyAwLTgxLjMwMyA2Mi4wMDQtMTQzLjQwMSAxNDMuNzYyLTE0My40MDEgNjYuOTU3IDAgMTAxLjk2NSAzNy4zMTUgMTAzLjQyMiAzOC45MDRhMTIgMTIgMCAwIDEgMS4yMzggMTQuNjIzbC0yMi4zOCAzNC42NTVjLTQuMDQ5IDYuMjY3LTEyLjc3NCA3LjM1MS0xOC4yMzQgMi4yOTUtLjIzMy0uMjE0LTI2LjUyOS0yMy44OC02MS44OC0yMy44OC00Ni4xMTYgMC03My45MTYgMzMuNTc1LTczLjkxNiA3Ni4wODIgMCAzOS42MDIgMjUuNTE0IDc5LjY5MiA3NC4yNzcgNzkuNjkyIDM4LjY5NyAwIDY1LjI4LTI4LjMzOCA2NS41NDQtMjguNjI1IDUuMTMyLTUuNTY1IDE0LjA1OS01LjAzMyAxOC41MDggMS4wNTNsMjQuNTQ3IDMzLjU3MmExMi4wMDEgMTIuMDAxIDAgMCAxLS41NTMgMTQuODY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb3VjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMjI0djY0aDMyMHYtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRoMzJjMC01My00My05Ni05Ni05NkgxNjBjLTUzIDAtOTYgNDMtOTYgOTZoMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjR6bTQxNi0zMmgtMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjk2SDEyOHYtOTZjMC0xNy43LTE0LjMtMzItMzItMzJINjRjLTM1LjMgMC02NCAyOC43LTY0IDY0IDAgMjMuNiAxMyA0NCAzMiA1NS4xVjQzMmMwIDguOCA3LjIgMTYgMTYgMTZoNjRjOC44IDAgMTYtNy4yIDE2LTE2di0xNmgzODR2MTZjMCA4LjggNy4yIDE2IDE2IDE2aDY0YzguOCAwIDE2LTcuMiAxNi0xNlYzMTEuMWMxOS0xMS4xIDMyLTMxLjUgMzItNTUuMSAwLTM1LjMtMjguNy02NC02NC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlZGl0Q2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0ODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMjU2SDB2MTc2em0xOTItNjhjMC02LjYgNS40LTEyIDEyLTEyaDEzNmM2LjYgMCAxMiA1LjQgMTIgMTJ2NDBjMCA2LjYtNS40IDEyLTEyIDEySDIwNGMtNi42IDAtMTItNS40LTEyLTEydi00MHptLTEyOCAwYzAtNi42IDUuNC0xMiAxMi0xMmg3MmM2LjYgMCAxMiA1LjQgMTIgMTJ2NDBjMCA2LjYtNS40IDEyLTEyIDEySDc2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTQwek01NzYgODB2NDhIMFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGg0ODBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyb3BBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg4IDM1MmgtNDBWOTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMkgxOTJ2OTZoMTYwdjMyOGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDQ4YzEzLjI1IDAgMjQtMTAuNzUgMjQtMjR2LTQwaDQwYzEzLjI1IDAgMjQtMTAuNzUgMjQtMjR2LTQ4YzAtMTMuMjYtMTAuNzUtMjQtMjQtMjR6TTE2MCAyNGMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0SDg4Qzc0Ljc1IDAgNjQgMTAuNzQgNjQgMjR2NDBIMjRDMTAuNzUgNjQgMCA3NC43NCAwIDg4djQ4YzAgMTMuMjUgMTAuNzUgMjQgMjQgMjRoNDB2MjU2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMjI0di05NkgxNjBWMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyb3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg4IDM1MmgtNDBWMTA5LjI1bDU5LjMxLTU5LjMxYzYuMjUtNi4yNSA2LjI1LTE2LjM4IDAtMjIuNjNMNDg0LjY5IDQuNjljLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBMNDAyLjc1IDY0SDE5MnY5NmgxMTQuNzVMMTYwIDMwNi43NVYyNGMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0SDg4Qzc0Ljc1IDAgNjQgMTAuNzQgNjQgMjR2NDBIMjRDMTAuNzUgNjQgMCA3NC43NCAwIDg4djQ4YzAgMTMuMjUgMTAuNzUgMjQgMjQgMjRoNDB2MjY0YzAgMTMuMjUgMTAuNzUgMjQgMjQgMjRoMjMydi05NkgyMDUuMjVMMzUyIDIwNS4yNVY0ODhjMCAxMy4yNSAxMC43NSAyNCAyNCAyNGg0OGMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0di00MGg0MGMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0di00OGMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcm9zcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIgMTI4aC05NlYzMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC02NGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY5NkgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDk2djIyNGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMjU2aDk2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyb3NzaGFpcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAwIDIyNGgtMzAuMzY0QzQ1NS43MjQgMTMwLjMyNSAzODEuNjc1IDU2LjI3NiAyODggNDIuMzY0VjEyYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjMwLjM2NEMxMzAuMzI1IDU2LjI3NiA1Ni4yNzYgMTMwLjMyNSA0Mi4zNjQgMjI0SDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMzAuMzY0QzU2LjI3NiAzODEuNjc1IDEzMC4zMjUgNDU1LjcyNCAyMjQgNDY5LjYzNlY1MDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi0zMC4zNjRDMzgxLjY3NSA0NTUuNzI0IDQ1NS43MjQgMzgxLjY3NSA0NjkuNjM2IDI4OEg1MDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMnpNMjg4IDQwNC42MzRWMzY0YzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwLjYzNEMxNjUuODI2IDM5Mi4yMzIgMTE5Ljc4MyAzNDYuMjQzIDEwNy4zNjYgMjg4SDE0OGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MC42MzRDMTE5Ljc2OCAxNjUuODI2IDE2NS43NTcgMTE5Ljc4MyAyMjQgMTA3LjM2NlYxNDhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MC42MzRDMzQ2LjE3NCAxMTkuNzY4IDM5Mi4yMTcgMTY1Ljc1NyA0MDQuNjM0IDIyNEgzNjRjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MC42MzRDMzkyLjIzMiAzNDYuMTc0IDM0Ni4yNDMgMzkyLjIxNyAyODggNDA0LjYzNHpNMjg4IDI1NmMwIDE3LjY3My0xNC4zMjcgMzItMzIgMzJzLTMyLTE0LjMyNy0zMi0zMmMwLTE3LjY3MyAxNC4zMjctMzIgMzItMzJzMzIgMTQuMzI3IDMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcm93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NCAzMmgtMTYuMzZDNTEzLjA0IDEyLjY4IDQ5MC4wOSAwIDQ2NCAwYy00NC4xOCAwLTgwIDM1LjgyLTgwIDgwdjIwLjk4TDEyLjA5IDM5My41N0EzMC4yMTYgMzAuMjE2IDAgMCAwIDAgNDE3Ljc0YzAgMjIuNDYgMjMuNjQgMzcuMDcgNDMuNzMgMjcuMDNMMTY1LjI3IDM4NGg5Ni40OWw0NC40MSAxMjAuMWMyLjI3IDYuMjMgOS4xNSA5LjQ0IDE1LjM4IDcuMTdsMjIuNTUtOC4yMWM2LjIzLTIuMjcgOS40NC05LjE1IDcuMTctMTUuMzhMMzEyLjk0IDM4NEgzNTJjMS45MSAwIDMuNzYtLjIzIDUuNjYtLjI5bDQ0LjUxIDEyMC4zOGMyLjI3IDYuMjMgOS4xNSA5LjQ0IDE1LjM4IDcuMTdsMjIuNTUtOC4yMWM2LjIzLTIuMjcgOS40NC05LjE1IDcuMTctMTUuMzhsLTQxLjI0LTExMS41M0M0ODUuNzQgMzUyLjggNTQ0IDI3OS4yNiA1NDQgMTkydi04MGw5Ni0xNmMwLTM1LjM1LTQyLjk4LTY0LTk2LTY0em0tODAgNzJjLTEzLjI1IDAtMjQtMTAuNzUtMjQtMjQgMC0xMy4yNiAxMC43NS0yNCAyNC0yNHMyNCAxMC43NCAyNCAyNGMwIDEzLjI1LTEwLjc1IDI0LTI0IDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcm93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjggNDQ4SDExMmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg0MTZjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6bTY0LTMyMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDggMCA3LjEgMS42IDEzLjcgNC40IDE5LjhMNDc2IDIzOS4yYy0xNS40IDkuMi0zNS4zIDQtNDQuMi0xMS42TDM1MC4zIDg1QzM2MSA3Ni4yIDM2OCA2MyAzNjggNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDhjMCAxNSA3IDI4LjIgMTcuNyAzN2wtODEuNSAxNDIuNmMtOC45IDE1LjYtMjguOSAyMC44LTQ0LjIgMTEuNmwtNzIuMy00My40YzIuNy02IDQuNC0xMi43IDQuNC0xOS44IDAtMjYuNS0yMS41LTQ4LTQ4LTQ4UzAgMTQ5LjUgMCAxNzZzMjEuNSA0OCA0OCA0OGMyLjYgMCA1LjItLjQgNy43LS44TDEyOCA0MTZoMzg0bDcyLjMtMTkyLjhjMi41LjQgNS4xLjggNy43LjggMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNydXRjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDcuMzEgMTg1LjcxbC0xODEtMTgxYTE2IDE2IDAgMCAwLTIyLjYyIDBMMjgxIDI3LjMxYTE2IDE2IDAgMCAwIDAgMjIuNjNsMTgxIDE4MWExNiAxNiAwIDAgMCAyMi42MyAwbDIyLjYyLTIyLjYzYTE2IDE2IDAgMCAwIC4wNi0yMi42em0tMTc5LjU0IDY2LjQxbC02Ny44OS02Ny44OSA1NS4xLTU1LjEtNDUuMjUtNDUuMjUtMTA5LjY3IDEwOS42N2E5Ni4wOCA5Ni4wOCAwIDAgMC0yNS42NyA0Ni4yOUwxMDYuNjUgMzYwLjFsLTEwMiAxMDJhMTYgMTYgMCAwIDAgMCAyMi42M2wyMi42MiAyMi42MmExNiAxNiAwIDAgMCAyMi42MyAwbDEwMi0xMDIgMTIwLjI1LTI3Ljc1YTk1Ljg4IDk1Ljg4IDAgMCAwIDQ2LjI5LTI1LjY1bDEwOS42OC0xMDkuNjhMMzgyLjg3IDE5N3ptLTU0LjU3IDU0LjU3YTMyIDMyIDAgMCAxLTE1LjQ1IDguNTRsLTc5LjMgMTguMzIgMTguMy03OS4zYTMyLjIyIDMyLjIyIDAgMCAxIDguNTYtMTUuNDVsOS4zMS05LjMxIDY3Ljg5IDY3Ljg5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDdWJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzOS4xIDYuM2wtMjA4IDc4Yy0xOC43IDctMzEuMSAyNS0zMS4xIDQ1djIyNS4xYzAgMTguMiAxMC4zIDM0LjggMjYuNSA0Mi45bDIwOCAxMDRjMTMuNSA2LjggMjkuNCA2LjggNDIuOSAwbDIwOC0xMDRjMTYuMy04LjEgMjYuNS0yNC44IDI2LjUtNDIuOVYxMjkuM2MwLTIwLTEyLjQtMzcuOS0zMS4xLTQ0LjlsLTIwOC03OEMyNjIgMi4yIDI1MCAyLjIgMjM5LjEgNi4zek0yNTYgNjguNGwxOTIgNzJ2MS4xbC0xOTIgNzgtMTkyLTc4di0xLjFsMTkyLTcyem0zMiAzNTZWMjc1LjVsMTYwLTY1djEzMy45bC0xNjAgODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUN1YmVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4OC42IDI1MC4yTDM5MiAyMTRWMTA1LjVjMC0xNS05LjMtMjguNC0yMy40LTMzLjdsLTEwMC0zNy41Yy04LjEtMy4xLTE3LjEtMy4xLTI1LjMgMGwtMTAwIDM3LjVjLTE0LjEgNS4zLTIzLjQgMTguNy0yMy40IDMzLjdWMjE0bC05Ni42IDM2LjJDOS4zIDI1NS41IDAgMjY4LjkgMCAyODMuOVYzOTRjMCAxMy42IDcuNyAyNi4xIDE5LjkgMzIuMmwxMDAgNTBjMTAuMSA1LjEgMjIuMSA1LjEgMzIuMiAwbDEwMy45LTUyIDEwMy45IDUyYzEwLjEgNS4xIDIyLjEgNS4xIDMyLjIgMGwxMDAtNTBjMTIuMi02LjEgMTkuOS0xOC42IDE5LjktMzIuMlYyODMuOWMwLTE1LTkuMy0yOC40LTIzLjQtMzMuN3pNMzU4IDIxNC44bC04NSAzMS45di02OC4ybDg1LTM3djczLjN6TTE1NCAxMDQuMWwxMDItMzguMiAxMDIgMzguMnYuNmwtMTAyIDQxLjQtMTAyLTQxLjR2LS42em04NCAyOTEuMWwtODUgNDIuNXYtNzkuMWw4NS0zOC44djc1LjR6bTAtMTEybC0xMDIgNDEuNC0xMDItNDEuNHYtLjZsMTAyLTM4LjIgMTAyIDM4LjJ2LjZ6bTI0MCAxMTJsLTg1IDQyLjV2LTc5LjFsODUtMzguOHY3NS40em0wLTExMmwtMTAyIDQxLjQtMTAyLTQxLjR2LS42bDEwMi0zOC4yIDEwMiAzOC4ydi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc4LjA2IDI1Nkw0NDQuNDggODkuNTdjNC42OS00LjY5IDQuNjktMTIuMjkgMC0xNi45Ny0zMi44LTMyLjgtODUuOTktMzIuOC0xMTguNzkgMEwyMTAuMTggMTg4LjEybC0yNC44Ni0yNC44NmM0LjMxLTEwLjkyIDYuNjgtMjIuODEgNi42OC0zNS4yNiAwLTUzLjAyLTQyLjk4LTk2LTk2LTk2UzAgNzQuOTggMCAxMjhzNDIuOTggOTYgOTYgOTZjNC41NCAwIDguOTktLjMyIDEzLjM2LS45M0wxNDIuMjkgMjU2bC0zMi45MyAzMi45M2MtNC4zNy0uNjEtOC44My0uOTMtMTMuMzYtLjkzLTUzLjAyIDAtOTYgNDIuOTgtOTYgOTZzNDIuOTggOTYgOTYgOTYgOTYtNDIuOTggOTYtOTZjMC0xMi40NS0yLjM3LTI0LjM0LTYuNjgtMzUuMjZsMjQuODYtMjQuODZMMzI1LjY5IDQzOS40YzMyLjggMzIuOCA4NS45OSAzMi44IDExOC43OSAwIDQuNjktNC42OCA0LjY5LTEyLjI4IDAtMTYuOTdMMjc4LjA2IDI1NnpNOTYgMTYwYy0xNy42NCAwLTMyLTE0LjM2LTMyLTMyczE0LjM2LTMyIDMyLTMyIDMyIDE0LjM2IDMyIDMyLTE0LjM2IDMyLTMyIDMyem0wIDI1NmMtMTcuNjQgMC0zMi0xNC4zNi0zMi0zMnMxNC4zNi0zMiAzMi0zMiAzMiAxNC4zNiAzMiAzMi0xNC4zNiAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGF0YWJhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDczLjE0M3Y0NS43MTRDNDQ4IDE1OS4xNDMgMzQ3LjY2NyAxOTIgMjI0IDE5MlMwIDE1OS4xNDMgMCAxMTguODU3VjczLjE0M0MwIDMyLjg1NyAxMDAuMzMzIDAgMjI0IDBzMjI0IDMyLjg1NyAyMjQgNzMuMTQzek00NDggMTc2djEwMi44NTdDNDQ4IDMxOS4xNDMgMzQ3LjY2NyAzNTIgMjI0IDM1MlMwIDMxOS4xNDMgMCAyNzguODU3VjE3NmM0OC4xMjUgMzMuMTQzIDEzNi4yMDggNDguNTcyIDIyNCA0OC41NzJTMzk5Ljg3NCAyMDkuMTQzIDQ0OCAxNzZ6bTAgMTYwdjEwMi44NTdDNDQ4IDQ3OS4xNDMgMzQ3LjY2NyA1MTIgMjI0IDUxMlMwIDQ3OS4xNDMgMCA0MzguODU3VjMzNmM0OC4xMjUgMzMuMTQzIDEzNi4yMDggNDguNTcyIDIyNCA0OC41NzJTMzk5Ljg3NCAzNjkuMTQzIDQ0OCAzMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURlYWYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE2IDI2MGMwIDE1LjQ2NC0xMi41MzYgMjgtMjggMjhzLTI4LTEyLjUzNi0yOC0yOGMwLTQ0LjExMiAzNS44ODgtODAgODAtODBzODAgMzUuODg4IDgwIDgwYzAgMTUuNDY0LTEyLjUzNiAyOC0yOCAyOHMtMjgtMTIuNTM2LTI4LTI4YzAtMTMuMjM0LTEwLjc2Ny0yNC0yNC0yNHMtMjQgMTAuNzY2LTI0IDI0em0yNC0xNzZjLTk3LjA0NyAwLTE3NiA3OC45NTMtMTc2IDE3NiAwIDE1LjQ2NCAxMi41MzYgMjggMjggMjhzMjgtMTIuNTM2IDI4LTI4YzAtNjYuMTY4IDUzLjgzMi0xMjAgMTIwLTEyMHMxMjAgNTMuODMyIDEyMCAxMjBjMCA3NS4xNjQtNzEuMDA5IDcwLjMxMS03MS45OTcgMTQzLjYyMkwyODggNDA0YzAgMjguNjczLTIzLjMyNyA1Mi01MiA1Mi0xNS40NjQgMC0yOCAxMi41MzYtMjggMjhzMTIuNTM2IDI4IDI4IDI4YzU5LjQ3NSAwIDEwNy44NzYtNDguMzI4IDEwOC0xMDcuNzc0LjU5NS0zNC40MjggNzItNDguMjQgNzItMTQ0LjIyNiAwLTk3LjA0Ny03OC45NTMtMTc2LTE3Ni0xNzZ6bTI2OC40ODUtNTIuMjAxTDQ4MC4yIDMuNTE1Yy00LjY4Ny00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcxIDBMMzc2LjIgOTAuNTQ0Yy00LjY4NiA0LjY4Ni00LjY4NiAxMi4yODQgMCAxNi45NzFsMjguMjg1IDI4LjI4NWM0LjY4NiA0LjY4NiAxMi4yODQgNC42ODYgMTYuOTcgMGw4Ny4wMy04Ny4wMjljNC42ODctNC42ODggNC42ODctMTIuMjg2IDAtMTYuOTcyek0xNjguOTcgMzE0Ljc0NWMtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3IDBMMy41MTUgNDYzLjIzYy00LjY4NiA0LjY4Ni00LjY4NiAxMi4yODQgMCAxNi45NzFMMzEuOCA1MDguNDg1YzQuNjg3IDQuNjg2IDEyLjI4NCA0LjY4NiAxNi45NzEgMEwxOTcuMjU2IDM2MGM0LjY4Ni00LjY4NiA0LjY4Ni0xMi4yODQgMC0xNi45NzFsLTI4LjI4Ni0yOC4yODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURlbW9jcmF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzNy4zIDI1Ni45bC0xOS42LTI5LjRjLTI4LjItNDIuMy03NS4zLTY3LjUtMTI2LjEtNjcuNUgyNTZsLTgxLjItODEuMmMyMC4xLTIwLjEgMjIuNi01MS4xIDcuNS03My45LTMuNC01LjItMTAuOC01LjktMTUuMi0xLjVsLTQxLjggNDEuOEw4Mi40IDIuNGMtMy42LTMuNi05LjYtMy0xMi40IDEuMi0xMi4zIDE4LjYtMTAuMyA0NCA2LjEgNjAuNCAzLjMgMy4zIDcuMyA1LjMgMTEuMyA3LjUtMi4yIDEuNy00LjcgMy4xLTYuNCA1LjRMNi40IDE3Ni4yYy03LjMgOS43LTguNCAyMi43LTMgMzMuNWwxNC4zIDI4LjZjNS40IDEwLjggMTYuNSAxNy43IDI4LjYgMTcuN2gzMWM4LjUgMCAxNi42LTMuNCAyMi42LTkuNEwxMzggMjEybDU0IDEwOGgzNTJ2LTc3LjhjMTYuMiAxMi4yIDE4LjMgMTcuNiA0MC4xIDUwLjMgNC45IDcuNCAxNC44IDkuMyAyMi4yIDQuNGwyNi42LTE3LjdjNy4zLTUgOS4zLTE0LjkgNC40LTIyLjN6bS0zNDEuMS0xMy42bC0xNi41IDE2LjEgMy45IDIyLjdjLjcgNC4xLTMuNiA3LjItNy4yIDUuM0wyNTYgMjc2LjdsLTIwLjQgMTAuN2MtMy42IDEuOS03LjktMS4yLTcuMi01LjNsMy45LTIyLjctMTYuNS0xNi4xYy0zLTIuOS0xLjMtNy45IDIuOC04LjVsMjIuOC0zLjMgMTAuMi0yMC43YzEuOC0zLjcgNy4xLTMuNyA5IDBsMTAuMiAyMC43IDIyLjggMy4zYzQgLjYgNS42IDUuNiAyLjYgOC41em0xMTIgMGwtMTYuNSAxNi4xIDMuOSAyMi43Yy43IDQuMS0zLjYgNy4yLTcuMiA1LjNMMzY4IDI3Ni43bC0yMC40IDEwLjdjLTMuNiAxLjktNy45LTEuMi03LjItNS4zbDMuOS0yMi43LTE2LjUtMTYuMWMtMy0yLjktMS4zLTcuOSAyLjgtOC41bDIyLjgtMy4zIDEwLjItMjAuN2MxLjgtMy43IDcuMS0zLjcgOSAwbDEwLjIgMjAuNyAyMi44IDMuM2M0IC42IDUuNiA1LjYgMi42IDguNXptMTEyIDBsLTE2LjUgMTYuMSAzLjkgMjIuN2MuNyA0LjEtMy42IDcuMi03LjIgNS4zTDQ4MCAyNzYuN2wtMjAuNCAxMC43Yy0zLjYgMS45LTcuOS0xLjItNy4yLTUuM2wzLjktMjIuNy0xNi41LTE2LjFjLTMtMi45LTEuMy03LjkgMi44LTguNWwyMi44LTMuMyAxMC4yLTIwLjdjMS44LTMuNyA3LjEtMy43IDkgMGwxMC4yIDIwLjcgMjIuOCAzLjNjNCAuNiA1LjYgNS42IDIuNiA4LjV6TTE5MiA0OTZjMCA4LjggNy4yIDE2IDE2IDE2aDY0YzguOCAwIDE2LTcuMiAxNi0xNnYtODBoMTYwdjgwYzAgOC44IDcuMiAxNiAxNiAxNmg2NGM4LjggMCAxNi03LjIgMTYtMTZWMzUySDE5MnYxNDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURlc2t0b3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI4IDBINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djMyMGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgxOTJsLTE2IDQ4aC03MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGgyNzJjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRoLTcybC0xNi00OGgxOTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS0xNiAzNTJINjRWNjRoNDQ4djI4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGhhcm1hY2hha3JhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NSAyMjUuMDZsLTE3LjIyIDEuMDhjLTUuMjctMzkuNDktMjAuNzktNzUuNjQtNDMuODYtMTA1Ljg0bDEyLjk1LTExLjQzYzYuOTItNi4xMSA3LjI1LTE2Ljc5LjczLTIzLjMxTDQyNi40NCA2NC40Yy02LjUzLTYuNTMtMTcuMjEtNi4xOS0yMy4zMS43M0wzOTEuNyA3OC4wN2MtMzAuMi0yMy4wNi02Ni4zNS0zOC41OC0xMDUuODMtNDMuODZMMjg2Ljk0IDE3Yy41OC05LjIxLTYuNzQtMTctMTUuOTctMTdoLTI5Ljk0Yy05LjIzIDAtMTYuNTQgNy43OS0xNS45NyAxN2wxLjA4IDE3LjIyYy0zOS40OSA1LjI3LTc1LjY0IDIwLjc5LTEwNS44MyA0My44NmwtMTEuNDMtMTIuOTVjLTYuMTEtNi45Mi0xNi43OS03LjI1LTIzLjMxLS43M0w2NC40IDg1LjU2Yy02LjUzIDYuNTMtNi4xOSAxNy4yMS43MyAyMy4zMWwxMi45NSAxMS40M2MtMjMuMDYgMzAuMi0zOC41OCA2Ni4zNS00My44NiAxMDUuODRMMTcgMjI1LjA2Yy05LjIxLS41OC0xNyA2Ljc0LTE3IDE1Ljk3djI5Ljk0YzAgOS4yMyA3Ljc5IDE2LjU0IDE3IDE1Ljk3bDE3LjIyLTEuMDhjNS4yNyAzOS40OSAyMC43OSA3NS42NCA0My44NiAxMDUuODNsLTEyLjk1IDExLjQzYy02LjkyIDYuMTEtNy4yNSAxNi43OS0uNzMgMjMuMzFsMjEuMTcgMjEuMTdjNi41MyA2LjUzIDE3LjIxIDYuMTkgMjMuMzEtLjczbDExLjQzLTEyLjk1YzMwLjIgMjMuMDYgNjYuMzUgMzguNTggMTA1Ljg0IDQzLjg2TDIyNS4wNiA0OTVjLS41OCA5LjIxIDYuNzQgMTcgMTUuOTcgMTdoMjkuOTRjOS4yMyAwIDE2LjU0LTcuNzkgMTUuOTctMTdsLTEuMDgtMTcuMjJjMzkuNDktNS4yNyA3NS42NC0yMC43OSAxMDUuODQtNDMuODZsMTEuNDMgMTIuOTVjNi4xMSA2LjkyIDE2Ljc5IDcuMjUgMjMuMzEuNzNsMjEuMTctMjEuMTdjNi41My02LjUzIDYuMTktMTcuMjEtLjczLTIzLjMxbC0xMi45NS0xMS40M2MyMy4wNi0zMC4yIDM4LjU4LTY2LjM1IDQzLjg2LTEwNS44M2wxNy4yMiAxLjA4YzkuMjEuNTggMTctNi43NCAxNy0xNS45N3YtMjkuOTRjLS4wMS05LjIzLTcuOC0xNi41NC0xNy4wMS0xNS45N3pNMjgxLjg0IDk4LjYxYzI0LjgxIDQuMDcgNDcuNjMgMTMuNjYgNjcuMjMgMjcuNzhsLTQyLjYyIDQ4LjI5Yy04LjczLTUuNDQtMTguMzItOS41NC0yOC42Mi0xMS45NWw0LjAxLTY0LjEyem0tNTEuNjggMGw0LjAxIDY0LjEyYy0xMC4yOSAyLjQxLTE5Ljg5IDYuNTItMjguNjIgMTEuOTVsLTQyLjYyLTQ4LjI5YzE5LjYtMTQuMTIgNDIuNDItMjMuNzEgNjcuMjMtMjcuNzh6bS0xMDMuNzcgNjQuMzNsNDguMyA0Mi42MWMtNS40NCA4LjczLTkuNTQgMTguMzMtMTEuOTYgMjguNjJsLTY0LjEyLTQuMDFjNC4wNy0yNC44MSAxMy42Ni00Ny42MiAyNy43OC02Ny4yMnptLTI3Ljc4IDExOC45bDY0LjEyLTQuMDFjMi40MSAxMC4yOSA2LjUyIDE5Ljg5IDExLjk1IDI4LjYybC00OC4yOSA0Mi42MmMtMTQuMTItMTkuNi0yMy43MS00Mi40Mi0yNy43OC02Ny4yM3ptMTMxLjU1IDEzMS41NWMtMjQuODEtNC4wNy00Ny42My0xMy42Ni02Ny4yMy0yNy43OGw0Mi42MS00OC4zYzguNzMgNS40NCAxOC4zMyA5LjU0IDI4LjYyIDExLjk2bC00IDY0LjEyek0yNTYgMjg4Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0yNS44NCAxMjUuMzlsLTQuMDEtNjQuMTJjMTAuMjktMi40MSAxOS44OS02LjUyIDI4LjYyLTExLjk2bDQyLjYxIDQ4LjNjLTE5LjYgMTQuMTItNDIuNDEgMjMuNzEtNjcuMjIgMjcuNzh6bTEwMy43Ny02NC4zM2wtNDguMjktNDIuNjJjNS40NC04LjczIDkuNTQtMTguMzIgMTEuOTUtMjguNjJsNjQuMTIgNC4wMWMtNC4wNyAyNC44Mi0xMy42NiA0Ny42NC0yNy43OCA2Ny4yM3ptLTM2LjM0LTExNC44OWMtMi40MS0xMC4yOS02LjUyLTE5Ljg5LTExLjk2LTI4LjYybDQ4LjMtNDIuNjFjMTQuMTIgMTkuNiAyMy43MSA0Mi40MiAyNy43OCA2Ny4yM2wtNjQuMTIgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGlhZ25vc2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiAyNTZjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTYtMTYgNy4yLTE2IDE2IDcuMiAxNiAxNiAxNnptLTE3Ni04MGM0OC41IDAgODgtMzkuNSA4OC04OFMzNjguNSAwIDMyMCAwcy04OCAzOS41LTg4IDg4IDM5LjUgODggODggODh6TTU5LjggMzY0YzEwLjIgMTUuMyAyOS4zIDE3LjggNDIuOSA5LjggMTYuMi05LjYgNTYuMi0zMS43IDEwNS4zLTQ4LjZWNDE2aDIyNHYtOTAuN2M0OS4xIDE2LjggODkuMSAzOSAxMDUuMyA0OC42IDEzLjYgOCAzMi43IDUuMyA0Mi45LTkuOGwxNy44LTI2LjdjOC44LTEzLjIgNy42LTM0LjYtMTAtNDUuMS0xMS45LTcuMS0yOS43LTE3LTUxLjEtMjcuNC0yOC4xIDQ2LjEtOTkuNCAxNy44LTg3LjctMzUuMUM0MDkuMyAyMTcuMiAzNjUuMSAyMDggMzIwIDIwOGMtNTcgMC0xMTIuOSAxNC41LTE2MCAzMi4yLS4yIDQwLjItNDcuNiA2My4zLTc5LjIgMzYtMTEuMiA2LTIxLjMgMTEuNi0yOC43IDE2LTE3LjYgMTAuNS0xOC44IDMxLjgtMTAgNDUuMUw1OS44IDM2NHpNMzY4IDM0NGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNC0yNC0xMC43LTI0LTI0IDEwLjctMjQgMjQtMjR6bS05Ni05NmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNC0yNC0xMC43LTI0LTI0IDEwLjctMjQgMjQtMjR6bS0xNjAgOGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNi0xNiA3LjItMTYgMTYgNy4yIDE2IDE2IDE2em01MTIgMTkySDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDYwOGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGljZUQyMCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDgwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDYuNzUgMjE1LjA2TDEuMiAzNzAuOTVjLTMuMDggNSAuMSAxMS41IDUuOTMgMTIuMTRsMjA4LjI2IDIyLjA3LTEwOC42NC0xOTAuMXpNNy40MSAzMTUuNDNMODIuNyAxOTMuMDggNi4wNiAxNDcuMWMtMi42Ny0xLjYtNi4wNi4zMi02LjA2IDMuNDN2MTYyLjgxYzAgNC4wMyA1LjI5IDUuNTMgNy40MSAyLjA5ek0xOC4yNSA0MjMuNmwxOTQuNCA4Ny42NmM1LjMgMi40NSAxMS4zNS0xLjQzIDExLjM1LTcuMjZ2LTY1LjY3bC0yMDMuNTUtMjIuM2MtNC40NS0uNS02LjIzIDUuNTktMi4yIDcuNTd6bTgxLjIyLTI1Ny43OEwxNzkuNCAyMi44OGM0LjM0LTcuMDYtMy41OS0xNS4yNS0xMC43OC0xMS4xNEwxNy44MSAxMTAuMzVjLTIuNDcgMS42Mi0yLjM5IDUuMjYuMTMgNi43OGw4MS41MyA0OC42OXpNMjQwIDE3NmgxMDkuMjFMMjUzLjYzIDcuNjJDMjUwLjUgMi41NCAyNDUuMjUgMCAyNDAgMHMtMTAuNSAyLjU0LTEzLjYzIDcuNjJMMTMwLjc5IDE3NkgyNDB6bTIzMy45NC0yOC45bC03Ni42NCA0NS45OSA3NS4yOSAxMjIuMzVjMi4xMSAzLjQ0IDcuNDEgMS45NCA3LjQxLTIuMVYxNTAuNTNjMC0zLjExLTMuMzktNS4wMy02LjA2LTMuNDN6bS05My40MSAxOC43Mmw4MS41My00OC43YzIuNTMtMS41MiAyLjYtNS4xNi4xMy02Ljc4bC0xNTAuODEtOTguNmMtNy4xOS00LjExLTE1LjEyIDQuMDgtMTAuNzggMTEuMTRsNzkuOTMgMTQyLjk0em03OS4wMiAyNTAuMjFMMjU2IDQzOC4zMnY2NS42N2MwIDUuODQgNi4wNSA5LjcxIDExLjM1IDcuMjZsMTk0LjQtODcuNjZjNC4wMy0xLjk3IDIuMjUtOC4wNi0yLjItNy41NnptLTg2LjMtMjAwLjk3bC0xMDguNjMgMTkwLjEgMjA4LjI2LTIyLjA3YzUuODMtLjY1IDkuMDEtNy4xNCA1LjkzLTEyLjE0TDM3My4yNSAyMTUuMDZ6TTI0MCAyMDhIMTM5LjU3TDI0MCAzODMuNzUgMzQwLjQzIDIwOEgyNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpY2VENiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjIuMTkgMTA5Ljk1TDI1Ni4yMSA5LjA3Yy0xOS45MS0xMi4xLTQ0LjUyLTEyLjEtNjQuNDMgMEwyNS44MSAxMDkuOTVjLTUuMzIgMy4yMy01LjI5IDExLjI3LjA2IDE0LjQ2TDIyNCAyNDIuNTVsMTk4LjE0LTExOC4xNGM1LjM1LTMuMTkgNS4zOC0xMS4yMi4wNS0xNC40NnptMTMuODQgNDQuNjNMMjQwIDI3MS40NnYyMjMuODJjMCAxMi44OCAxMy4zOSAyMC45MSAyNC4wNSAxNC40M2wxNTIuMTYtOTIuNDhjMTkuNjgtMTEuOTYgMzEuNzktMzMuOTQgMzEuNzktNTcuN3YtMTk3LjdjMC02LjQxLTYuNjQtMTAuNDMtMTEuOTctNy4yNXpNMCAxNjEuODN2MTk3LjdjMCAyMy43NyAxMi4xMSA0NS43NCAzMS43OSA1Ny43bDE1Mi4xNiA5Mi40N2MxMC42NyA2LjQ4IDI0LjA1LTEuNTQgMjQuMDUtMTQuNDNWMjcxLjQ2TDExLjk3IDE1NC41OEM2LjY0IDE1MS40IDAgMTU1LjQyIDAgMTYxLjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWNlRml2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMzJINjRDMjguNjUgMzIgMCA2MC42NSAwIDk2djMyMGMwIDM1LjM1IDI4LjY1IDY0IDY0IDY0aDMyMGMzNS4zNSAwIDY0LTI4LjY1IDY0LTY0Vjk2YzAtMzUuMzUtMjguNjUtNjQtNjQtNjR6TTEyOCAzODRjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTAtMTkyYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem05NiA5NmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptOTYgOTZjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTAtMTkyYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWNlRm91ciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMzJINjRDMjguNjUgMzIgMCA2MC42NSAwIDk2djMyMGMwIDM1LjM1IDI4LjY1IDY0IDY0IDY0aDMyMGMzNS4zNSAwIDY0LTI4LjY1IDY0LTY0Vjk2YzAtMzUuMzUtMjguNjUtNjQtNjQtNjR6TTEyOCAzODRjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTAtMTkyYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0xOTIgMTkyYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0wLTE5MmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGljZU9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMzJINjRDMjguNjUgMzIgMCA2MC42NSAwIDk2djMyMGMwIDM1LjM1IDI4LjY1IDY0IDY0IDY0aDMyMGMzNS4zNSAwIDY0LTI4LjY1IDY0LTY0Vjk2YzAtMzUuMzUtMjguNjUtNjQtNjQtNjR6TTIyNCAyODhjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpY2VTaXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDMySDY0QzI4LjY1IDMyIDAgNjAuNjUgMCA5NnYzMjBjMCAzNS4zNSAyOC42NSA2NCA2NCA2NGgzMjBjMzUuMzUgMCA2NC0yOC42NSA2NC02NFY5NmMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0ek0xMjggMzg0Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0wLTk2Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0wLTk2Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0xOTIgMTkyYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0wLTk2Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0wLTk2Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWNlVGhyZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDMySDY0QzI4LjY1IDMyIDAgNjAuNjUgMCA5NnYzMjBjMCAzNS4zNSAyOC42NSA2NCA2NCA2NGgzMjBjMzUuMzUgMCA2NC0yOC42NSA2NC02NFY5NmMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0ek0xMjggMTkyYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem05NiA5NmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptOTYgOTZjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpY2VUd28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDMySDY0QzI4LjY1IDMyIDAgNjAuNjUgMCA5NnYzMjBjMCAzNS4zNSAyOC42NSA2NCA2NCA2NGgzMjBjMzUuMzUgMCA2NC0yOC42NSA2NC02NFY5NmMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0ek0xMjggMTkyYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0xOTIgMTkyYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU5MiAxOTJINDczLjI2YzEyLjY5IDI5LjU5IDcuMTIgNjUuMi0xNyA4OS4zMkwzMjAgNDE3LjU4VjQ2NGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDIyNGMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjI0MGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4ek00ODAgMzc2Yy0xMy4yNSAwLTI0LTEwLjc1LTI0LTI0IDAtMTMuMjYgMTAuNzUtMjQgMjQtMjRzMjQgMTAuNzQgMjQgMjRjMCAxMy4yNS0xMC43NSAyNC0yNCAyNHptLTQ2LjM3LTE4Ni43TDI1OC43IDE0LjM3Yy0xOS4xNi0xOS4xNi01MC4yMy0xOS4xNi02OS4zOSAwTDE0LjM3IDE4OS4zYy0xOS4xNiAxOS4xNi0xOS4xNiA1MC4yMyAwIDY5LjM5TDE4OS4zIDQzMy42M2MxOS4xNiAxOS4xNiA1MC4yMyAxOS4xNiA2OS4zOSAwTDQzMy42MyAyNTguN2MxOS4xNi0xOS4xNyAxOS4xNi01MC4yNCAwLTY5LjR6TTk2IDI0OGMtMTMuMjUgMC0yNC0xMC43NS0yNC0yNCAwLTEzLjI2IDEwLjc1LTI0IDI0LTI0czI0IDEwLjc0IDI0IDI0YzAgMTMuMjUtMTAuNzUgMjQtMjQgMjR6bTEyOCAxMjhjLTEzLjI1IDAtMjQtMTAuNzUtMjQtMjQgMC0xMy4yNiAxMC43NS0yNCAyNC0yNHMyNCAxMC43NCAyNCAyNGMwIDEzLjI1LTEwLjc1IDI0LTI0IDI0em0wLTEyOGMtMTMuMjUgMC0yNC0xMC43NS0yNC0yNCAwLTEzLjI2IDEwLjc1LTI0IDI0LTI0czI0IDEwLjc0IDI0IDI0YzAgMTMuMjUtMTAuNzUgMjQtMjQgMjR6bTAtMTI4Yy0xMy4yNSAwLTI0LTEwLjc1LTI0LTI0IDAtMTMuMjYgMTAuNzUtMjQgMjQtMjRzMjQgMTAuNzQgMjQgMjRjMCAxMy4yNS0xMC43NSAyNC0yNCAyNHptMTI4IDEyOGMtMTMuMjUgMC0yNC0xMC43NS0yNC0yNCAwLTEzLjI2IDEwLjc1LTI0IDI0LTI0czI0IDEwLjc0IDI0IDI0YzAgMTMuMjUtMTAuNzUgMjQtMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpZ2l0YWxUYWNob2dyYXBoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYwOCA5NkgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYyNTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg1NzZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYxMjhjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpNMzA0IDM1MmMwIDQuNDItMy41OCA4LTggOEg3MmMtNC40MiAwLTgtMy41OC04LTh2LThjMC00LjQyIDMuNTgtOCA4LThoMjI0YzQuNDIgMCA4IDMuNTggOCA4djh6TTcyIDI4OHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhIODBjLTQuNDIgMC04LTMuNTgtOC04em02NCAwdi0xNmMwLTQuNDIgMy41OC04IDgtOGgxNmM0LjQyIDAgOCAzLjU4IDggOHYxNmMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04em02NCAwdi0xNmMwLTQuNDIgMy41OC04IDgtOGgxNmM0LjQyIDAgOCAzLjU4IDggOHYxNmMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04em02NCAwdi0xNmMwLTQuNDIgMy41OC04IDgtOGgxNmM0LjQyIDAgOCAzLjU4IDggOHYxNmMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04em00MC02NGMwIDguODQtNy4xNiAxNi0xNiAxNkg4MGMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTQ4YzAtOC44NCA3LjE2LTE2IDE2LTE2aDIwOGM4Ljg0IDAgMTYgNy4xNiAxNiAxNnY0OHptMjcyIDEyOGMwIDQuNDItMy41OCA4LTggOEgzNDRjLTQuNDIgMC04LTMuNTgtOC04di04YzAtNC40MiAzLjU4LTggOC04aDIyNGM0LjQyIDAgOCAzLjU4IDggOHY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaXJlY3Rpb25zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMi42MSAyMzMuMzJMMjc4LjY4IDkuMzljLTEyLjUyLTEyLjUyLTMyLjgzLTEyLjUyLTQ1LjM2IDBMOS4zOSAyMzMuMzJjLTEyLjUyIDEyLjUzLTEyLjUyIDMyLjgzIDAgNDUuMzZsMjIzLjkzIDIyMy45M2MxMi41MiAxMi41MyAzMi44MyAxMi41MyA0NS4zNiAwbDIyMy45My0yMjMuOTNjMTIuNTItMTIuNTMgMTIuNTItMzIuODMgMC00NS4zNnptLTEwMC45OCAxMi41NmwtODQuMjEgNzcuNzNjLTUuMTIgNC43My0xMy40MyAxLjEtMTMuNDMtNS44OFYyNjRoLTk2djY0YzAgNC40Mi0zLjU4IDgtOCA4aC0zMmMtNC40MiAwLTgtMy41OC04LTh2LTgwYzAtMTcuNjcgMTQuMzMtMzIgMzItMzJoMTEydi01My43M2MwLTYuOTcgOC4zLTEwLjYxIDEzLjQzLTUuODhsODQuMjEgNzcuNzNjMy40MyAzLjE3IDMuNDMgOC41OSAwIDExLjc2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaXNlYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3Mi4yOSAxOTUuOWwtNjcuMDYtMjNjLTE5LjI4LTYuNi0zMy41NC0yMC45Mi0zOC4xNC0zOC4zMWwtMTYtNjAuNDVjLTExLjU4LTQzLjc3LTc2LjU3LTU3LjEzLTExMC0yMi42MkwxOTUgOTkuMjRjLTEzLjI2IDEzLjcxLTMzLjU0IDIwLjkzLTU0LjIgMTkuMzFsLTcxLjktNS42MmMtNTItNC4wNy04Ni45MyA0NC44OS01OSA4Mi44NGwzOC41NCA1Mi40MmMxMS4wOCAxNS4wNyAxMi44MiAzMy44NiA0LjY0IDUwLjI0bC0yOC40MyA1N0M0IDM5Ni42NyA0Ny40NiA0NDAuMjkgOTguMTEgNDI5LjIzbDcwLTE1LjI4YzIwLjExLTQuMzkgNDEuNDUgMCA1Ny4wNyAxMS43M2w1NC4zMiA0MC44M2MzOS4zMiAyOS41NiAxMDEgNy41NyAxMDQuNDUtMzcuMjJsNC43LTYxLjg2YzEuMzUtMTcuOCAxMi44LTMzLjg3IDMwLjYzLTQzbDYyLTMxLjc0YzQ0Ljg0LTIyLjk2IDM5LjU1LTgwLjE3LTguOTktOTYuNzl6TTE2MCAyNTZhMzIgMzIgMCAxIDEgMzItMzIgMzIgMzIgMCAwIDEtMzIgMzJ6bTEyOCA5NmEzMiAzMiAwIDEgMSAzMi0zMiAzMiAzMiAwIDAgMS0zMiAzMnptMTYtMTI4YTE2IDE2IDAgMSAxIDE2LTE2IDE2IDE2IDAgMCAxLTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaXZpZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDM1MmMtMzUuMzUgMC02NCAyOC42NS02NCA2NHMyOC42NSA2NCA2NCA2NCA2NC0yOC42NSA2NC02NC0yOC42NS02NC02NC02NHptMC0xOTJjMzUuMzUgMCA2NC0yOC42NSA2NC02NHMtMjguNjUtNjQtNjQtNjQtNjQgMjguNjUtNjQgNjQgMjguNjUgNjQgNjQgNjR6bTE5MiA0OEgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDM4NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaXp6eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0tOTYgMjA2LjZsLTI4LjcgMjguN2MtMTQuOCAxNC44LTM3LjgtNy41LTIyLjYtMjIuNmwyOC43LTI4LjctMjguNy0yOC43Yy0xNS0xNSA3LjctMzcuNiAyMi42LTIyLjZsMjguNyAyOC43IDI4LjctMjguN2MxNS0xNSAzNy42IDcuNyAyMi42IDIyLjZMMTc0LjYgMTkybDI4LjcgMjguN2MxNS4yIDE1LjItNy45IDM3LjQtMjIuNiAyMi42TDE1MiAyMTQuNnpNMjQ4IDQxNmMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NCA2NCAyOC43IDY0IDY0LTI4LjcgNjQtNjQgNjR6bTE0Ny4zLTE5NS4zYzE1LjIgMTUuMi03LjkgMzcuNC0yMi42IDIyLjZMMzQ0IDIxNC42bC0yOC43IDI4LjdjLTE0LjggMTQuOC0zNy44LTcuNS0yMi42LTIyLjZsMjguNy0yOC43LTI4LjctMjguN2MtMTUtMTUgNy43LTM3LjYgMjIuNi0yMi42bDI4LjcgMjguNyAyOC43LTI4LjdjMTUtMTUgMzcuNiA3LjcgMjIuNiAyMi42TDM2Ni42IDE5MmwyOC43IDI4Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURuYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0uMSA0OTQuMWMtMS4xIDkuNSA2LjMgMTcuOCAxNS45IDE3LjhsMzIuMy4xYzguMSAwIDE0LjktNS45IDE2LTEzLjkuNy00LjkgMS44LTExLjEgMy40LTE4LjFIMzgwYzEuNiA2LjkgMi45IDEzLjIgMy41IDE4LjEgMS4xIDggNy45IDE0IDE2IDEzLjlsMzIuMy0uMWM5LjYgMCAxNy4xLTguMyAxNS45LTE3LjgtNC42LTM3LjktMjUuNi0xMjktMTE4LjktMjA3LjctMTcuNiAxMi40LTM3LjEgMjQuMi01OC41IDM1LjQgNi4yIDQuNiAxMS40IDkuNCAxNyAxNC4ySDE1OS43YzIxLjMtMTguMSA0Ny0zNS42IDc4LjctNTEuNEM0MTAuNSAxOTkuMSA0NDIuMSA2NS44IDQ0Ny45IDE3LjkgNDQ5IDguNCA0NDEuNi4xIDQzMiAuMUwzOTkuNiAwYy04LjEgMC0xNC45IDUuOS0xNiAxMy45LS43IDQuOS0xLjggMTEuMS0zLjQgMTguMUg2Ny44Yy0xLjYtNy0yLjctMTMuMS0zLjQtMTguMS0xLjEtOC03LjktMTQtMTYtMTMuOUwxNi4xLjFDNi41LjEtMSA4LjQuMSAxNy45IDUuMyA2MC44IDMxLjQgMTcxLjggMTYwIDI1NiAzMS41IDM0MC4yIDUuMyA0NTEuMi4xIDQ5NC4xek0yMjQgMjE5LjZjLTI1LjEtMTMuNy00Ni40LTI4LjQtNjQuMy00My42aDEyOC41Yy0xNy44IDE1LjItMzkuMSAzMC02NC4yIDQzLjZ6TTM1NS4xIDk2Yy01LjggMTAuNC0xMi44IDIxLjEtMjEgMzJIMTE0Yy04LjMtMTAuOS0xNS4zLTIxLjYtMjEtMzJoMjYyLjF6TTkyLjkgNDE2YzUuOC0xMC40IDEyLjgtMjEuMSAyMS0zMmgyMTkuNGM4LjMgMTAuOSAxNS40IDIxLjYgMjEuMiAzMkg5Mi45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk4LjA2LDIyNCw0NDgsMjc3LjU1VjQ5NmExNiwxNiwwLDAsMS0xNiwxNkgzNjhhMTYsMTYsMCwwLDEtMTYtMTZWMzg0SDE5MlY0OTZhMTYsMTYsMCwwLDEtMTYsMTZIMTEyYTE2LDE2LDAsMCwxLTE2LTE2VjI4Mi4wOUM1OC44NCwyNjguODQsMzIsMjMzLjY2LDMyLDE5MmEzMiwzMiwwLDAsMSw2NCwwLDMyLjA2LDMyLjA2LDAsMCwwLDMyLDMyWk01NDQsMTEydjMyYTY0LDY0LDAsMCwxLTY0LDY0SDQ0OHYzNS41OEwzMjAsMTk3Ljg3VjQ4YzAtMTQuMjUsMTcuMjItMjEuMzksMjcuMzEtMTEuMzFMMzc0LjU5LDY0aDUzLjYzYzEwLjkxLDAsMjMuNzUsNy45MiwyOC42MiwxNy42OUw0NjQsOTZoNjRBMTYsMTYsMCwwLDEsNTQ0LDExMlptLTExMiwwYTE2LDE2LDAsMSwwLTE2LDE2QTE2LDE2LDAsMCwwLDQzMiwxMTJaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURvbGxhclNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI4OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA5LjIgMjMzLjRsLTEwOC0zMS42Qzg4LjcgMTk4LjIgODAgMTg2LjUgODAgMTczLjVjMC0xNi4zIDEzLjItMjkuNSAyOS41LTI5LjVoNjYuM2MxMi4yIDAgMjQuMiAzLjcgMzQuMiAxMC41IDYuMSA0LjEgMTQuMyAzLjEgMTkuNS0ybDM0LjgtMzRjNy4xLTYuOSA2LjEtMTguNC0xLjgtMjQuNUMyMzggNzQuOCAyMDcuNCA2NC4xIDE3NiA2NFYxNmMwLTguOC03LjItMTYtMTYtMTZoLTMyYy04LjggMC0xNiA3LjItMTYgMTZ2NDhoLTIuNUM0NS44IDY0LTUuNCAxMTguNy41IDE4My42YzQuMiA0Ni4xIDM5LjQgODMuNiA4My44IDk2LjZsMTAyLjUgMzBjMTIuNSAzLjcgMjEuMiAxNS4zIDIxLjIgMjguMyAwIDE2LjMtMTMuMiAyOS41LTI5LjUgMjkuNWgtNjYuM0MxMDAgMzY4IDg4IDM2NC4zIDc4IDM1Ny41Yy02LjEtNC4xLTE0LjMtMy4xLTE5LjUgMmwtMzQuOCAzNGMtNy4xIDYuOS02LjEgMTguNCAxLjggMjQuNSAyNC41IDE5LjIgNTUuMSAyOS45IDg2LjUgMzB2NDhjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnYtNDguMmM0Ni42LS45IDkwLjMtMjguNiAxMDUuNy03Mi43IDIxLjUtNjEuNi0xNC42LTEyNC44LTcyLjUtMTQxLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURvbGx5RmxhdGJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDggMzIwaDM4NGM4LjggMCAxNi03LjIgMTYtMTZWNDhjMC04LjgtNy4yLTE2LTE2LTE2SDQ0OHYxMjhsLTQ4LTMyLTQ4IDMyVjMySDIwOGMtOC44IDAtMTYgNy4yLTE2IDE2djI1NmMwIDguOCA3LjIgMTYgMTYgMTZ6bTQxNiA2NEgxMjhWMTZjMC04LjgtNy4yLTE2LTE2LTE2SDE2QzcuMiAwIDAgNy4yIDAgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDQ4djM2OGMwIDguOCA3LjIgMTYgMTYgMTZoODIuOWMtMS44IDUtMi45IDEwLjQtMi45IDE2IDAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhjMC01LjYtMS4yLTExLTIuOS0xNkg0NTFjLTEuOCA1LTIuOSAxMC40LTIuOSAxNiAwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4YzAtNS42LTEuMi0xMS0yLjktMTZINjI0YzguOCAwIDE2LTcuMiAxNi0xNnYtMzJjMC04LjgtNy4yLTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb2xseSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTQuMiAyNzcuN2MxOCA1IDM0LjcgMTMuNCA0OS41IDI0LjdsMTYxLjUtNTMuOGM4LjQtMi44IDEyLjktMTEuOSAxMC4xLTIwLjJMNDU0LjkgNDcuMmMtMi44LTguNC0xMS45LTEyLjktMjAuMi0xMC4xbC02MS4xIDIwLjQgMzMuMSA5OS40TDM0NiAxNzdsLTMzLjEtOTkuNC02MS42IDIwLjVjLTguNCAyLjgtMTIuOSAxMS45LTEwLjEgMjAuMmw1MyAxNTkuNHptMjgxIDQ4LjdMNTY1IDI5NmMtMi44LTguNC0xMS45LTEyLjktMjAuMi0xMC4xbC0yMTMuNSA3MS4yYy0xNy4yLTIyLTQzLjYtMzYuNC03My41LTM3TDE1OC40IDIxLjlDMTU0IDguOCAxNDEuOCAwIDEyOCAwSDE2QzcuMiAwIDAgNy4yIDAgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDg4LjlsOTIuMiAyNzYuN2MtMjYuMSAyMC40LTQxLjcgNTMuNi0zNiA5MC41IDYuMSAzOS40IDM3LjkgNzIuMyA3Ny4zIDc5LjIgNjAuMiAxMC43IDExMi4zLTM0LjggMTEzLjQtOTIuNmwyMTMuMy03MS4yYzguMy0yLjggMTIuOS0xMS44IDEwLjEtMjAuMnpNMjU2IDQ2NGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OCA0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURvbmF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNDE2YzExNC45IDAgMjA4LTkzLjEgMjA4LTIwOFMzNzAuOSAwIDI1NiAwIDQ4IDkzLjEgNDggMjA4czkzLjEgMjA4IDIwOCAyMDh6TTIzMy44IDk3LjRWODAuNmMwLTkuMiA3LjQtMTYuNiAxNi42LTE2LjZoMTEuMWM5LjIgMCAxNi42IDcuNCAxNi42IDE2LjZ2MTdjMTUuNS44IDMwLjUgNi4xIDQzIDE1LjQgNS42IDQuMSA2LjIgMTIuMyAxLjIgMTcuMUwzMDYgMTQ1LjZjLTMuOCAzLjctOS41IDMuOC0xNCAxLTUuNC0zLjQtMTEuNC01LjEtMTcuOC01LjFoLTM4LjljLTkgMC0xNi4zIDguMi0xNi4zIDE4LjMgMCA4LjIgNSAxNS41IDEyLjEgMTcuNmw2Mi4zIDE4LjdjMjUuNyA3LjcgNDMuNyAzMi40IDQzLjcgNjAuMSAwIDM0LTI2LjQgNjEuNS01OS4xIDYyLjR2MTYuOGMwIDkuMi03LjQgMTYuNi0xNi42IDE2LjZoLTExLjFjLTkuMiAwLTE2LjYtNy40LTE2LjYtMTYuNnYtMTdjLTE1LjUtLjgtMzAuNS02LjEtNDMtMTUuNC01LjYtNC4xLTYuMi0xMi4zLTEuMi0xNy4xbDE2LjMtMTUuNWMzLjgtMy43IDkuNS0zLjggMTQtMSA1LjQgMy40IDExLjQgNS4xIDE3LjggNS4xaDM4LjljOSAwIDE2LjMtOC4yIDE2LjMtMTguMyAwLTguMi01LTE1LjUtMTIuMS0xNy42bC02Mi4zLTE4LjdjLTI1LjctNy43LTQzLjctMzIuNC00My43LTYwLjEuMS0zNCAyNi40LTYxLjUgNTkuMS02Mi40ek00ODAgMzUyaC0zMi41Yy0xOS42IDI2LTQ0LjYgNDcuNy03MyA2NGg2My44YzUuMyAwIDkuNiAzLjYgOS42IDh2MTZjMCA0LjQtNC4zIDgtOS42IDhINzMuNmMtNS4zIDAtOS42LTMuNi05LjYtOHYtMTZjMC00LjQgNC4zLTggOS42LThoNjMuOGMtMjguNC0xNi4zLTUzLjMtMzgtNzMtNjRIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDQ0OGMxNy43IDAgMzItMTQuMyAzMi0zMnYtOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURvb3JDbG9zZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI0IDQ0OEg1MTJWNTAuOEM1MTIgMjIuNzggNDkwLjQ3IDAgNDY0IDBIMTc1Ljk5Yy0yNi40NyAwLTQ4IDIyLjc4LTQ4IDUwLjhWNDQ4SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg2MDhjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2ek00MTUuOTkgMjg4Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyYy4wMSAxNy42Ny0xNC4zMiAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG9vck9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI0IDQ0OGgtODBWMTEzLjQ1QzU0NCA4Ni4xOSA1MjIuNDcgNjQgNDk2IDY0SDM4NHY2NGg5NnYzODRoMTQ0YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnpNMzEyLjI0IDEuMDFsLTE5MiA0OS43NEMxMDUuOTkgNTQuNDQgOTYgNjcuNyA5NiA4Mi45MlY0NDhIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDMzNlYzMy4xOGMwLTIxLjU4LTE5LjU2LTM3LjQxLTM5Ljc2LTMyLjE3ek0yNjQgMjg4Yy0xMy4yNSAwLTI0LTE0LjMzLTI0LTMyczEwLjc1LTMyIDI0LTMyIDI0IDE0LjMzIDI0IDMyLTEwLjc1IDMyLTI0IDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb3RDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5LjAzMyA4IDggMTE5LjAzMyA4IDI1NnMxMTEuMDMzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMzIDI0OC0yNDhTMzkyLjk2NyA4IDI1NiA4em04MCAyNDhjMCA0NC4xMTItMzUuODg4IDgwLTgwIDgwcy04MC0zNS44ODgtODAtODAgMzUuODg4LTgwIDgwLTgwIDgwIDM1Ljg4OCA4MCA4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG92ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMTY3LjJ2LTI4LjFjLTI4LjItMzYuMy00Ny4xLTc5LjMtNTQuMS0xMjUuMi0yLjEtMTMuNS0xOS0xOC44LTI3LjgtOC4zLTIxLjEgMjQuOS0zNy43IDU0LjEtNDguOSA4Ni41IDM0LjIgMzguMyA4MCA2NC42IDEzMC44IDc1LjF6TTQwMCA2NGMtNDQuMiAwLTgwIDM1LjktODAgODAuMXY1OS40QzIxNS42IDE5Ny4zIDEyNyAxMzMgODcgNDEuOGMtNS41LTEyLjUtMjMuMi0xMy4yLTI5LS45QzQxLjQgNzYgMzIgMTE1LjIgMzIgMTU2LjZjMCA3MC44IDM0LjEgMTM2LjkgODUuMSAxODUuOSAxMy4yIDEyLjcgMjYuMSAyMy4yIDM4LjkgMzIuOGwtMTQzLjkgMzZDMS40IDQxNC0zLjQgNDI2LjQgMi42IDQzNS43IDIwIDQ2Mi42IDYzIDUwOC4yIDE1NS44IDUxMmM4IC4zIDE2LTIuNiAyMi4xLTcuOWw2NS4yLTU2LjFIMzIwYzg4LjQgMCAxNjAtNzEuNSAxNjAtMTU5LjlWMTI4bDMyLTY0SDQwMHptMCA5Ni4xYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURvd25sb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNiAwaDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0djE2OGg4Ny43YzE3LjggMCAyNi43IDIxLjUgMTQuMSAzNC4xTDI2OS43IDM3OC4zYy03LjUgNy41LTE5LjggNy41LTI3LjMgMEw5MC4xIDIyNi4xYy0xMi42LTEyLjYtMy43LTM0LjEgMTQuMS0zNC4xSDE5MlYyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMjk2IDM3NnYxMTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRIMjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjM3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGgxNDYuN2w0OSA0OWMyMC4xIDIwLjEgNTIuNSAyMC4xIDcyLjYgMGw0OS00OUg0ODhjMTMuMyAwIDI0IDEwLjcgMjQgMjR6bS0xMjQgODhjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwIDkgMjAgMjAgMjAgMjAtOSAyMC0yMHptNjQgMGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjAgOSAyMCAyMCAyMCAyMC05IDIwLTIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEcmFmdGluZ0NvbXBhc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDU3LjAxIDM0NC40MmMtMjUuMDUgMjAuMzMtNTIuNjMgMzcuMTgtODIuNTQgNDkuMDVsNTQuMzggOTQuMTkgNTMuOTUgMjMuMDRjOS44MSA0LjE5IDIwLjg5LTIuMjEgMjIuMTctMTIuOGw3LjAyLTU4LjI1LTU0Ljk4LTk1LjIzem00Mi40OS05NC41NmM0Ljg2LTcuNjcgMS44OS0xNy45OS02LjA1LTIyLjM5bC0yOC4wNy0xNS41N2MtNy40OC00LjE1LTE2LjYxLTEuNDYtMjEuMjYgNS43MkM0MDMuMDEgMjgxLjE1IDMzMi4yNSAzMjAgMjU2IDMyMGMtMjMuOTMgMC00Ny4yMy00LjI1LTY5LjQxLTExLjUzbDY3LjM2LTExNi42OGMuNy4wMiAxLjM0LjIxIDIuMDQuMjFzMS4zNS0uMTkgMi4wNC0uMjFsNTEuMDkgODguNWMzMS4yMy04Ljk2IDU5LjU2LTI1Ljc1IDgyLjYxLTQ4LjkybC01MS43OS04OS43MUMzNDcuMzkgMTI4LjAzIDM1MiAxMTIuNjMgMzUyIDk2YzAtNTMuMDItNDIuOTgtOTYtOTYtOTZzLTk2IDQyLjk4LTk2IDk2YzAgMTYuNjMgNC42MSAzMi4wMyAxMi4wNSA0NS42NmwtNjguMyAxMTguMzFjLTEyLjU1LTExLjYxLTIzLjk2LTI0LjU5LTMzLjY4LTM5LTQuNzktNy4xLTEzLjk3LTkuNjItMjEuMzgtNS4zM2wtMjcuNzUgMTYuMDdjLTcuODUgNC41NC0xMC42MyAxNC45LTUuNjQgMjIuNDcgMTUuNTcgMjMuNjQgMzQuNjkgNDQuMjEgNTUuOTggNjIuMDJMMCA0MzkuNjZsNy4wMiA1OC4yNWMxLjI4IDEwLjU5IDEyLjM2IDE2Ljk5IDIyLjE3IDEyLjhsNTMuOTUtMjMuMDQgNzAuOC0xMjIuNjNDMTg2LjEzIDM3Ny4yOCAyMjAuNjIgMzg0IDI1NiAzODRjOTkuMDUgMCAxOTAuODgtNTEuMDEgMjQzLjUtMTM0LjE0ek0yNTYgNjRjMTcuNjcgMCAzMiAxNC4zMyAzMiAzMnMtMTQuMzMgMzItMzIgMzItMzItMTQuMzMtMzItMzIgMTQuMzMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURyYWdvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC4zMiAyNTUuNzhMMTkyIDIyMy45NmwtOTEuMjggNjguNjljLTEwLjA4IDEwLjA4LTIuOTQgMjcuMzEgMTEuMzEgMjcuMzFoMjIyLjdjLTkuNDQtMjYuNC0xNC43My01NC40Ny0xNC43My04My4zOHYtNDIuMjdsLTExOS43My04Ny42Yy0yMy44Mi0xNS44OC01NS4yOS0xNC4wMS03Ny4wNiA0LjU5TDUuODEgMjI3LjY0Yy0xMi4zOCAxMC4zMy0zLjQ1IDMwLjQyIDEyLjUxIDI4LjE0em01NTYuODcgMzQuMWwtMTAwLjY2LTUwLjMxQTQ3Ljk5MiA0Ny45OTIgMCAwIDEgNDQ4IDE5Ni42NXYtMzYuNjloNjRsMjguMDkgMjIuNjNjNiA2IDE0LjE0IDkuMzcgMjIuNjMgOS4zN2gzMC45N2EzMiAzMiAwIDAgMCAyOC42Mi0xNy42OWwxNC4zMS0yOC42MmEzMi4wMDUgMzIuMDA1IDAgMCAwLTMuMDItMzMuNTFsLTc0LjUzLTk5LjM4QzU1My4wMiA0LjcgNTQzLjU0IDAgNTMzLjQ3IDBIMjk2LjAyYy03LjEzIDAtMTAuNyA4LjU3LTUuNjYgMTMuNjFMMzUyIDYzLjk2IDI5Mi40MiA4OC44Yy01LjkgMi45NS01LjkgMTEuMzYgMCAxNC4zMUwzNTIgMTI3Ljk2djEwOC42MmMwIDcyLjA4IDM2LjAzIDEzOS4zOSA5NiAxNzkuMzgtMTk1LjU5IDYuODEtMzQ0LjU2IDQxLjAxLTQzNC4xIDYwLjkxQzUuNzggNDc4LjY3IDAgNDg1Ljg4IDAgNDk0LjIgMCA1MDQgNy45NSA1MTIgMTcuNzYgNTEyaDQ5OS4wOGM2My4yOS4wMSAxMTkuNjEtNDcuNTYgMTIyLjk5LTExMC43NiAyLjUyLTQ3LjI4LTIyLjczLTkwLjQtNjQuNjQtMTExLjM2ek00ODkuMTggNjYuMjVsNDUuNjUgMTEuNDFjLTIuNzUgMTAuOTEtMTIuNDcgMTguODktMjQuMTMgMTguMjYtMTIuOTYtLjcxLTI1Ljg1LTEyLjUzLTIxLjUyLTI5LjY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEcmF3UG9seWdvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMzUyYy0uMzUgMC0uNjcuMS0xLjAyLjFsLTM5LjItNjUuMzJjNS4wNy05LjE3IDguMjItMTkuNTYgOC4yMi0zMC43OHMtMy4xNC0yMS42MS04LjIyLTMwLjc4bDM5LjItNjUuMzJjLjM1LjAxLjY3LjEgMS4wMi4xIDM1LjM1IDAgNjQtMjguNjUgNjQtNjRzLTI4LjY1LTY0LTY0LTY0Yy0yMy42MyAwLTQ0LjA0IDEyLjk1LTU1LjEyIDMySDExOS4xMkMxMDguMDQgNDQuOTUgODcuNjMgMzIgNjQgMzIgMjguNjUgMzIgMCA2MC42NSAwIDk2YzAgMjMuNjMgMTIuOTUgNDQuMDQgMzIgNTUuMTJ2MjA5Ljc1QzEyLjk1IDM3MS45NiAwIDM5Mi4zNyAwIDQxNmMwIDM1LjM1IDI4LjY1IDY0IDY0IDY0IDIzLjYzIDAgNDQuMDQtMTIuOTUgNTUuMTItMzJoMjA5Ljc1YzExLjA5IDE5LjA1IDMxLjQ5IDMyIDU1LjEyIDMyIDM1LjM1IDAgNjQtMjguNjUgNjQtNjQgLjAxLTM1LjM1LTI4LjY0LTY0LTYzLjk5LTY0em0tMjg4IDguODhWMTUxLjEyQTYzLjgyNSA2My44MjUgMCAwIDAgMTE5LjEyIDEyOGgyMDguMzZsLTM4LjQ2IDY0LjFjLS4zNS0uMDEtLjY3LS4xLTEuMDItLjEtMzUuMzUgMC02NCAyOC42NS02NCA2NHMyOC42NSA2NCA2NCA2NGMuMzUgMCAuNjctLjEgMS4wMi0uMWwzOC40NiA2NC4xSDExOS4xMkE2My43NDggNjMuNzQ4IDAgMCAwIDk2IDM2MC44OHpNMjcyIDI1NmMwLTguODIgNy4xOC0xNiAxNi0xNnMxNiA3LjE4IDE2IDE2LTcuMTggMTYtMTYgMTYtMTYtNy4xOC0xNi0xNnpNNDAwIDk2YzAgOC44Mi03LjE4IDE2LTE2IDE2cy0xNi03LjE4LTE2LTE2IDcuMTgtMTYgMTYtMTYgMTYgNy4xOCAxNiAxNnpNNjQgODBjOC44MiAwIDE2IDcuMTggMTYgMTZzLTcuMTggMTYtMTYgMTYtMTYtNy4xOC0xNi0xNiA3LjE4LTE2IDE2LTE2ek00OCA0MTZjMC04LjgyIDcuMTgtMTYgMTYtMTZzMTYgNy4xOCAxNiAxNi03LjE4IDE2LTE2IDE2LTE2LTcuMTgtMTYtMTZ6bTMzNiAxNmMtOC44MiAwLTE2LTcuMTgtMTYtMTZzNy4xOC0xNiAxNi0xNiAxNiA3LjE4IDE2IDE2LTcuMTggMTYtMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURydW1TdGVlbHBhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMzJDMTI4Ljk0IDMyIDAgODkuMzEgMCAxNjB2MTkyYzAgNzAuNjkgMTI4Ljk0IDEyOCAyODggMTI4czI4OC01Ny4zMSAyODgtMTI4VjE2MGMwLTcwLjY5LTEyOC45NC0xMjgtMjg4LTEyOHptLTgyLjk5IDE1OC4zNmMtNC40NSAxNi42MS0xNC41NCAzMC41Ny0yOC4zMSA0MC40OEMxMDAuMjMgMjE3LjQ2IDQ4IDE5MC43OCA0OCAxNjBjMC0zMC4xNiA1MC4xMS01Ni4zOSAxMjQuMDQtNzAuMDNsMjUuNiA0NC4zNGM5Ljg2IDE3LjA5IDEyLjQ4IDM2Ljk5IDcuMzcgNTYuMDV6TTI4OCAyNDBjLTIxLjA4IDAtNDEuNDEtMS02MC44OS0yLjcgOC4wNi0yNi4xMyAzMi4xNS00NS4zIDYwLjg5LTQ1LjNzNTIuODMgMTkuMTcgNjAuODkgNDUuM0MzMjkuNDEgMjM5IDMwOS4wOCAyNDAgMjg4IDI0MHptNjQtMTQ0YzAgMzUuMjktMjguNzEgNjQtNjQgNjRzLTY0LTI4LjcxLTY0LTY0VjgyLjk2YzIwLjQtMS44OCA0MS44LTIuOTYgNjQtMi45NnM0My42IDEuMDggNjQgMi45NlY5NnptNDYuOTMgMTM0LjljLTEzLjgxLTkuOTEtMjMuOTQtMjMuOS0yOC40LTQwLjU0LTUuMTEtMTkuMDYtMi40OS0zOC45NiA3LjM4LTU2LjA0bDI1LjY1LTQ0LjQyQzQ3Ny43MiAxMDMuNSA1MjggMTI5Ljc5IDUyOCAxNjBjMCAzMC44My01Mi40IDU3LjU0LTEyOS4wNyA3MC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEcnVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzMS4zNCAxMjIuMDVsNzMuNTMtNDcuNDJhMTYgMTYgMCAwIDAgNC40NC0yMi4xOWwtOC44Ny0xMy4zMWExNiAxNiAwIDAgMC0yMi4xOS00LjQ0bC0xMTAuMDYgNzFDMzE4LjQzIDk2LjkxIDI3MS4yMiA5NiAyNTYgOTYgMjE5LjU1IDk2IDAgMTAwLjU1IDAgMjA4LjE1djE2MC4yM2MwIDMwLjI3IDI3LjUgNTcuNjggNzIgNzcuODZ2LTEwMS45YTI0IDI0IDAgMSAxIDQ4IDB2MTE4LjkzYzMzLjA1IDkuMTEgNzEuMDcgMTUuMDYgMTEyIDE2LjczVjM3Ni4zOWEyNCAyNCAwIDEgMSA0OCAwVjQ4MGM0MC45My0xLjY3IDc4Ljk1LTcuNjIgMTEyLTE2LjczVjM0NC4zNGEyNCAyNCAwIDEgMSA0OCAwdjEwMS45YzQ0LjUtMjAuMTggNzItNDcuNTkgNzItNzcuODZWMjA4LjE1YzAtNDMuMzItMzUuNzYtNjkuNzYtODAuNjYtODYuMXpNMjU2IDI3Mi4yNGMtMTE0Ljg4IDAtMjA4LTI4LjY5LTIwOC02NC4wOXM5My4xMi02NC4wOCAyMDgtNjQuMDhjMTcuMTUgMCAzMy43My43MSA0OS42OCAxLjkxbC03Mi44MSA0N2ExNiAxNiAwIDAgMC00LjQzIDIyLjE5bDguODcgMTMuMzFhMTYgMTYgMCAwIDAgMjIuMTkgNC40NGwxMTguNjQtNzYuNTJDNDMwLjA5IDE2OCA0NjQgMTg2Ljg0IDQ2NCAyMDguMTVjMCAzNS40LTkzLjEzIDY0LjA5LTIwOCA2NC4wOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHJ1bXN0aWNrQml0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjIuOCA0OS41N2ExNjkuNDQgMTY5LjQ0IDAgMCAwLTIzOS41IDBDMTg3LjgyIDg1IDE2MC4xMyAxMjggMTYwLjEzIDE5MnY4NS44M2wtNDAuNjIgNDAuNTljLTkuNyA5LjY5LTI0IDExLjA3LTM2Ljc4IDZhNjAuMzMgNjAuMzMgMCAwIDAtNjUgOTguNzJDMzMgNDM4LjM5IDU0LjI0IDQ0Mi43IDczLjg1IDQzOC4yMWMtNC41IDE5LjYtLjE4IDQwLjgzIDE1LjEgNTYuMWE2MC4zNSA2MC4zNSAwIDAgMCA5OC44LTY1Yy01LjA5LTEyLjczLTMuNzItMjcgNi0zNi43NUwyMzQuMzYgMzUyaDg1Ljg5YTE4Ny44NyAxODcuODcgMCAwIDAgNjEuODktMTBjLTM5LjY0LTQzLjg5LTM5LjgzLTExMC4yMyAxLjA1LTE1MS4wNyAzNC4zOC0zNC4zNiA4Ni43Ni0zOS40NiAxMjguNzQtMTYuOCAxLjMtNDQuOTYtMTQuODEtOTAuMjgtNDkuMTMtMTI0LjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEdW1iYmVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDQgOTZINTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0djEwNEg4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDI0djEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGg0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTUyOCAxMjhoLTI0VjEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNGgtNDhjLTEzLjMgMC0yNCAxMC43LTI0IDI0djI3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGg0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNFYyODhoMjRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6TTQ1NiAzMmgtNDhjLTEzLjMgMC0yNCAxMC43LTI0IDI0djE2OEgyNTZWNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRoLTQ4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHY0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRoNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMjg4aDEyOHYxNjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRoNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWNTZjMC0xMy4zLTEwLjctMjQtMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUR1bXBzdGVyRmlyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTguNyAxMDQuMWwuMi0uMi0xNC40LTcySDMwNHYxMjhoNjAuOGMxNi4yLTE5LjMgMzQuMi0zOC4yIDUzLjktNTUuOHpNMjcyIDMySDE3MS41bC0yNS42IDEyOEgyNzJWMzJ6bTE4OS4zIDcyLjFjMTguMiAxNi4zIDM1LjUgMzMuNyA1MS4xIDUxLjUgNS43LTUuNiAxMS40LTExLjEgMTcuMy0xNi4zbDIxLjMtMTkgMjEuMyAxOWMxLjEuOSAyLjEgMi4xIDMuMSAzLjEtLjEtLjguMi0xLjUgMC0yLjNsLTI0LTk2QzU0OS43IDM3IDU0My4zIDMyIDUzNiAzMmgtOTguOWwxMi4zIDYxLjUgMTEuOSAxMC42ek0xNiAxNjBoOTcuM2wyNS42LTEyOEg0MGMtNy4zIDAtMTMuNyA1LTE1LjUgMTIuMWwtMjQgOTZDLTIgMTUwLjIgNS42IDE2MCAxNiAxNjB6bTMyNC42IDMySDMybDQgMzJIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMjhsMjAgMTYwdjE2YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZ2LTE2aDIwOC44Yy0zMC4yLTMzLjctNDguOC03Ny45LTQ4LjgtMTI2LjQgMC0zNS45IDE5LjktODIuOSA1Mi42LTEyOS42em0yMTAuNS0yOC44Yy0xNC45IDEzLjMtMjguMyAyNy4yLTQwLjIgNDEuMi0xOS41LTI1LjgtNDMuNi01Mi03MS03Ni40LTcwLjIgNjIuNy0xMjAgMTQ0LjMtMTIwIDE5My42IDAgODcuNSA3MS42IDE1OC40IDE2MCAxNTguNHMxNjAtNzAuOSAxNjAtMTU4LjRjLjEtMzYuNi0zNy0xMTIuMi04OC44LTE1OC40em0tMTguNiAyMjkuNGMtMTQuNyAxMC43LTMyLjkgMTctNTIuNSAxNy00OSAwLTg4LjktMzMuNS04OC45LTg4IDAtMjcuMSAxNi41LTUxIDQ5LjQtOTEuOSA0LjcgNS42IDY3LjEgODguMSA2Ny4xIDg4LjFsMzkuOC00N2MyLjggNC44IDUuNCA5LjUgNy43IDE0IDE4LjYgMzYuNyAxMC44IDgzLjYtMjIuNiAxMDcuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHVtcHN0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTYwIDE2MGMxMC40IDAgMTgtOS44IDE1LjUtMTkuOWwtMjQtOTZDNTQ5LjcgMzcgNTQzLjMgMzIgNTM2IDMyaC05OC45bDI1LjYgMTI4SDU2MHpNMjcyIDMySDE3MS41bC0yNS42IDEyOEgyNzJWMzJ6bTEzMi41IDBIMzA0djEyOGgxMjYuMUw0MDQuNSAzMnpNMTYgMTYwaDk3LjNsMjUuNi0xMjhINDBjLTcuMyAwLTEzLjcgNS0xNS41IDEyLjFsLTI0IDk2Qy0yIDE1MC4yIDUuNiAxNjAgMTYgMTYwem01NDQgNjRoLTIwbDQtMzJIMzJsNCAzMkgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgyOGwyMCAxNjB2MTZjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnYtMTZoMzIwdjE2YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZ2LTE2bDIwLTE2MGgyOGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHVuZ2VvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjguNzMgMTk1LjMybC04Mi44MS01MS43NmMtOC4wNC01LjAyLTE4Ljk5LTIuMTctMjIuOTMgNi40NUEyNTQuMTkgMjU0LjE5IDAgMCAwIC41NCAyMzkuMjhDLS4wNSAyNDguMzcgNy41OSAyNTYgMTYuNjkgMjU2aDk3LjEzYzcuOTYgMCAxNC4wOC02LjI1IDE1LjAxLTE0LjE2IDEuMDktOS4zMyAzLjI0LTE4LjMzIDYuMjQtMjYuOTQgMi41Ni03LjM0LjI1LTE1LjQ2LTYuMzQtMTkuNTh6TTMxOS4wMyA4QzI5OC44NiAyLjgyIDI3Ny43NyAwIDI1NiAwcy00Mi44NiAyLjgyLTYzLjAzIDhjLTkuMTcgMi4zNS0xMy45MSAxMi42LTEwLjM5IDIxLjM5bDM3LjQ3IDEwNC4wM0ExNi4wMDMgMTYuMDAzIDAgMCAwIDIzNS4xIDE0NGg0MS44YzYuNzUgMCAxMi43Ny00LjIzIDE1LjA1LTEwLjU4bDM3LjQ3LTEwNC4wM2MzLjUyLTguNzktMS4yMi0xOS4wMy0xMC4zOS0yMS4zOXpNMTEyIDI4OEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NjRjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoOTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTY0YzAtOC44NC03LjE2LTE2LTE2LTE2em0wIDEyOEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NjRjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoOTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTY0YzAtOC44NC03LjE2LTE2LTE2LTE2em03Ny4zMS0yODMuNjdsLTM2LjMyLTkwLjhjLTMuNTMtOC44My0xNC4xMy0xMi45OS0yMi40Mi04LjMxYTI1Ny4zMDggMjU3LjMwOCAwIDAgMC03MS42MSA1OS44OWMtNi4wNiA3LjMyLTMuODUgMTguNDggNC4yMiAyMy41Mmw4Mi45MyA1MS44M2M2LjUxIDQuMDcgMTQuNjYgMi42MiAyMC4xMS0yLjc5IDUuMTgtNS4xNSAxMC43OS05Ljg1IDE2Ljc5LTE0LjA1IDYuMjgtNC40MSA5LjE1LTEyLjE3IDYuMy0xOS4yOXpNMzk4LjE4IDI1Nmg5Ny4xM2M5LjEgMCAxNi43NC03LjYzIDE2LjE1LTE2LjcyYTI1NC4xMzUgMjU0LjEzNSAwIDAgMC0yMi40NS04OS4yN2MtMy45NC04LjYyLTE0Ljg5LTExLjQ3LTIyLjkzLTYuNDVsLTgyLjgxIDUxLjc2Yy02LjU5IDQuMTItOC45IDEyLjI0LTYuMzQgMTkuNTggMy4wMSA4LjYxIDUuMTUgMTcuNjIgNi4yNCAyNi45NC45MyA3LjkxIDcuMDUgMTQuMTYgMTUuMDEgMTQuMTZ6bTU0Ljg1LTE2Mi44OWEyNTcuMzA4IDI1Ny4zMDggMCAwIDAtNzEuNjEtNTkuODljLTguMjgtNC42OC0xOC44OC0uNTItMjIuNDIgOC4zMWwtMzYuMzIgOTAuOGMtMi44NSA3LjEyLjAyIDE0Ljg4IDYuMyAxOS4yOCA2IDQuMiAxMS42MSA4LjkgMTYuNzkgMTQuMDUgNS40NCA1LjQxIDEzLjYgNi44NiAyMC4xMSAyLjc5bDgyLjkzLTUxLjgzYzguMDctNS4wMyAxMC4yOS0xNi4xOSA0LjIyLTIzLjUxek00OTYgMjg4aC05NmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NjRjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoOTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTY0YzAtOC44NC03LjE2LTE2LTE2LTE2em0wIDEyOGgtOTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djY0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDk2YzguODQgMCAxNi03LjE2IDE2LTE2di02NGMwLTguODQtNy4xNi0xNi0xNi0xNnpNMjQwIDE3Ny42MlY0NzJjMCA0LjQyIDMuNTggOCA4IDhoMTZjNC40MiAwIDgtMy41OCA4LThWMTc3LjYyYy01LjIzLS44OS0xMC41Mi0xLjYyLTE2LTEuNjJzLTEwLjc3LjczLTE2IDEuNjJ6bS02NCA0MS41MVY0NzJjMCA0LjQyIDMuNTggOCA4IDhoMTZjNC40MiAwIDgtMy41OCA4LThWMTg5LjM2Yy0xMi43OCA3LjQ1LTIzLjg0IDE3LjQ3LTMyIDI5Ljc3em0xMjgtMjkuNzdWNDcyYzAgNC40MiAzLjU4IDggOCA4aDE2YzQuNDIgMCA4LTMuNTggOC04VjIxOS4xM2MtOC4xNi0xMi4zLTE5LjIyLTIyLjMyLTMyLTI5Ljc3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFZGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMi42IDgzLjJsOTAuMiA5MC4yYzMuOCAzLjggMy44IDEwIDAgMTMuOEwyNzQuNCA0MDUuNmwtOTIuOCAxMC4zYy0xMi40IDEuNC0yMi45LTkuMS0yMS41LTIxLjVsMTAuMy05Mi44TDM4OC44IDgzLjJjMy44LTMuOCAxMC0zLjggMTMuOCAwem0xNjItMjIuOWwtNDguOC00OC44Yy0xNS4yLTE1LjItMzkuOS0xNS4yLTU1LjIgMGwtMzUuNCAzNS40Yy0zLjggMy44LTMuOCAxMCAwIDEzLjhsOTAuMiA5MC4yYzMuOCAzLjggMTAgMy44IDEzLjggMGwzNS40LTM1LjRjMTUuMi0xNS4zIDE1LjItNDAgMC01NS4yek0zODQgMzQ2LjJWNDQ4SDY0VjEyOGgyMjkuOGMzLjIgMCA2LjItMS4zIDguNS0zLjVsNDAtNDBjNy42LTcuNiAyLjItMjAuNS04LjUtMjAuNUg0OEMyMS41IDY0IDAgODUuNSAwIDExMnYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjMwNi4yYzAtMTAuNy0xMi45LTE2LTIwLjUtOC41bC00MCA0MGMtMi4yIDIuMy0zLjUgNS4zLTMuNSA4LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVnZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMEM4NiAwIDAgMjE0IDAgMzIwczg2IDE5MiAxOTIgMTkyIDE5Mi04NiAxOTItMTkyUzI5OCAwIDE5MiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFamVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMzg0djY0YzAgMTcuNjczLTE0LjMyNyAzMi0zMiAzMkgzMmMtMTcuNjczIDAtMzItMTQuMzI3LTMyLTMydi02NGMwLTE3LjY3MyAxNC4zMjctMzIgMzItMzJoMzg0YzE3LjY3MyAwIDMyIDE0LjMyNyAzMiAzMnpNNDguMDUzIDMyMGgzNTEuODg2YzQxLjY1MSAwIDYzLjU4MS00OS42NzQgMzUuMzgzLTgwLjQzNUwyNTkuMzgzIDQ3LjU1OGMtMTkuMDE0LTIwLjc0My01MS43NTEtMjAuNzQ0LTcwLjc2NyAwTDEyLjY3IDIzOS41NjVDLTE1LjQ3NSAyNzAuMjY4IDYuMzI0IDMyMCA0OC4wNTMgMzIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFbGxpcHNpc0ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzI4IDI1NmMwIDM5LjgtMzIuMiA3Mi03MiA3MnMtNzItMzIuMi03Mi03MiAzMi4yLTcyIDcyLTcyIDcyIDMyLjIgNzIgNzJ6bTEwNC03MmMtMzkuOCAwLTcyIDMyLjItNzIgNzJzMzIuMiA3MiA3MiA3MiA3Mi0zMi4yIDcyLTcyLTMyLjItNzItNzItNzJ6bS0zNTIgMGMtMzkuOCAwLTcyIDMyLjItNzIgNzJzMzIuMiA3MiA3MiA3MiA3Mi0zMi4yIDcyLTcyLTMyLjItNzItNzItNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVsbGlwc2lzViAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMTkyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAxODRjMzkuOCAwIDcyIDMyLjIgNzIgNzJzLTMyLjIgNzItNzIgNzItNzItMzIuMi03Mi03MiAzMi4yLTcyIDcyLTcyek0yNCA4MGMwIDM5LjggMzIuMiA3MiA3MiA3MnM3Mi0zMi4yIDcyLTcyUzEzNS44IDggOTYgOCAyNCA0MC4yIDI0IDgwem0wIDM1MmMwIDM5LjggMzIuMiA3MiA3MiA3MnM3Mi0zMi4yIDcyLTcyLTMyLjItNzItNzItNzItNzIgMzIuMi03MiA3MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRW52ZWxvcGVPcGVuVGV4dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzYgMjE2aDE2MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTc2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNnptLTE2IDgwYzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTc2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNnptOTYgMTIxLjEzYy0xNi40MiAwLTMyLjg0LTUuMDYtNDYuODYtMTUuMTlMMCAyNTAuODZWNDY0YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDE2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMjUwLjg2TDMwMi44NiA0MDEuOTRjLTE0LjAyIDEwLjEyLTMwLjQ0IDE1LjE5LTQ2Ljg2IDE1LjE5em0yMzcuNjEtMjU0LjE4Yy04Ljg1LTYuOTQtMTcuMjQtMTMuNDctMjkuNjEtMjIuODFWOTZjMC0yNi41MS0yMS40OS00OC00OC00OGgtNzcuNTVjLTMuMDQtMi4yLTUuODctNC4yNi05LjA0LTYuNTZDMzEyLjYgMjkuMTcgMjc5LjItLjM1IDI1NiAwYy0yMy4yLS4zNS01Ni41OSAyOS4xNy03My40MSA0MS40NC0zLjE3IDIuMy02IDQuMzYtOS4wNCA2LjU2SDk2Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djQ0LjE0Yy0xMi4zNyA5LjMzLTIwLjc2IDE1Ljg3LTI5LjYxIDIyLjgxQTQ3Ljk5NSA0Ny45OTUgMCAwIDAgMCAyMDAuNzJ2MTAuNjVsOTYgNjkuMzVWOTZoMzIwdjE4NC43Mmw5Ni02OS4zNXYtMTAuNjVjMC0xNC43NC02Ljc4LTI4LjY3LTE4LjM5LTM3Ljc3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFbnZlbG9wZU9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDQ2NGMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjIwMC43MjRhNDggNDggMCAwIDEgMTguMzg3LTM3Ljc3NmMyNC45MTMtMTkuNTI5IDQ1LjUwMS0zNS4zNjUgMTY0LjItMTIxLjUxMUMxOTkuNDEyIDI5LjE3IDIzMi43OTctLjM0NyAyNTYgLjAwM2MyMy4xOTgtLjM1NCA1Ni41OTYgMjkuMTcyIDczLjQxMyA0MS40MzMgMTE4LjY4NyA4Ni4xMzcgMTM5LjMwMyAxMDEuOTk1IDE2NC4yIDEyMS41MTJBNDggNDggMCAwIDEgNTEyIDIwMC43MjRWNDY0em0tNjUuNjY2LTE5Ni42MDVjLTIuNTYzLTMuNzI4LTcuNy00LjU5NS0xMS4zMzktMS45MDctMjIuODQ1IDE2Ljg3My01NS40NjIgNDAuNzA1LTEwNS41ODIgNzcuMDc5LTE2LjgyNSAxMi4yNjYtNTAuMjEgNDEuNzgxLTczLjQxMyA0MS40My0yMy4yMTEuMzQ0LTU2LjU1OS0yOS4xNDMtNzMuNDEzLTQxLjQzLTUwLjExNC0zNi4zNy04Mi43MzQtNjAuMjA0LTEwNS41ODItNzcuMDc5LTMuNjM5LTIuNjg4LTguNzc2LTEuODIxLTExLjMzOSAxLjkwN2wtOS4wNzIgMTMuMTk2YTcuOTk4IDcuOTk4IDAgMCAwIDEuODM5IDEwLjk2N2MyMi44ODcgMTYuODk5IDU1LjQ1NCA0MC42OSAxMDUuMzAzIDc2Ljg2OCAyMC4yNzQgMTQuNzgxIDU2LjUyNCA0Ny44MTMgOTIuMjY0IDQ3LjU3MyAzNS43MjQuMjQyIDcxLjk2MS0zMi43NzEgOTIuMjYzLTQ3LjU3MyA0OS44NS0zNi4xNzkgODIuNDE4LTU5Ljk3IDEwNS4zMDMtNzYuODY4YTcuOTk4IDcuOTk4IDAgMCAwIDEuODM5LTEwLjk2N2wtOS4wNzEtMTMuMTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFbnZlbG9wZVNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNDkgMzIgMCA1My40OSAwIDgwdjM1MmMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDM1MmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjgwYzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6TTE3OC4xMTcgMjYyLjEwNEM4Ny40MjkgMTk2LjI4NyA4OC4zNTMgMTk2LjEyMSA2NCAxNzcuMTY3VjE1MmMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjRoMjcyYzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHYyNS4xNjdjLTI0LjM3MSAxOC45NjktMjMuNDM0IDE5LjEyNC0xMTQuMTE3IDg0LjkzOC0xMC41IDcuNjU1LTMxLjM5MiAyNi4xMi00NS44ODMgMjUuODk0LTE0LjUwMy4yMTgtMzUuMzY3LTE4LjIyNy00NS44ODMtMjUuODk1ek0zODQgMjE3Ljc3NVYzNjBjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0SDg4Yy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjRWMjE3Ljc3NWMxMy45NTggMTAuNzk0IDMzLjMyOSAyNS4yMzYgOTUuMzAzIDcwLjIxNCAxNC4xNjIgMTAuMzQxIDM3Ljk3NSAzMi4xNDUgNjQuNjk0IDMyLjAxIDI2Ljg4Ny4xMzQgNTEuMDM3LTIyLjA0MSA2NC43Mi0zMi4wMjUgNjEuOTU4LTQ0Ljk2NSA4MS4zMjUtNTkuNDA2IDk1LjI4My03MC4xOTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVudmVsb3BlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMi4zIDE5MC44YzMuOS0zLjEgOS43LS4yIDkuNyA0LjdWNDAwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYxOTUuNmMwLTUgNS43LTcuOCA5LjctNC43IDIyLjQgMTcuNCA1Mi4xIDM5LjUgMTU0LjEgMTEzLjYgMjEuMSAxNS40IDU2LjcgNDcuOCA5Mi4yIDQ3LjYgMzUuNy4zIDcyLTMyLjggOTIuMy00Ny42IDEwMi03NC4xIDEzMS42LTk2LjMgMTU0LTExMy43ek0yNTYgMzIwYzIzLjIuNCA1Ni42LTI5LjIgNzMuNC00MS40IDEzMi43LTk2LjMgMTQyLjgtMTA0LjcgMTczLjQtMTI4LjcgNS44LTQuNSA5LjItMTEuNSA5LjItMTguOXYtMTljMC0yNi41LTIxLjUtNDgtNDgtNDhINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2MTljMCA3LjQgMy40IDE0LjMgOS4yIDE4LjkgMzAuNiAyMy45IDQwLjcgMzIuNCAxNzMuNCAxMjguNyAxNi44IDEyLjIgNTAuMiA0MS44IDczLjQgNDEuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXF1YWxzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAzMDRIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzODRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptMC0xOTJIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzODRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXJhc2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5Ny45NDEgMjczLjk0MWMxOC43NDUtMTguNzQ1IDE4Ljc0NS00OS4xMzcgMC02Ny44ODJsLTE2MC0xNjBjLTE4Ljc0NS0xOC43NDUtNDkuMTM2LTE4Ljc0Ni02Ny44ODMgMGwtMjU2IDI1NmMtMTguNzQ1IDE4Ljc0NS0xOC43NDUgNDkuMTM3IDAgNjcuODgybDk2IDk2QTQ4LjAwNCA0OC4wMDQgMCAwIDAgMTQ0IDQ4MGgzNTZjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMkgzNTUuODgzbDE0Mi4wNTgtMTQyLjA1OXptLTMwMi42MjctNjIuNjI3bDEzNy4zNzMgMTM3LjM3M0wyNjUuMzczIDQxNkgxNTAuNjI4bC04MC04MCAxMjQuNjg2LTEyNC42ODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV0aGVybmV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiAxOTJoLTQ4di00OGMwLTguOC03LjItMTYtMTYtMTZoLTQ4VjgwYzAtOC44LTcuMi0xNi0xNi0xNkgxNDRjLTguOCAwLTE2IDcuMi0xNiAxNnY0OEg4MGMtOC44IDAtMTYgNy4yLTE2IDE2djQ4SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MjI0YzAgOC44IDcuMiAxNiAxNiAxNmg4MFYzMjBoMzJ2MTI4aDY0VjMyMGgzMnYxMjhoNjRWMzIwaDMydjEyOGg2NFYzMjBoMzJ2MTI4aDgwYzguOCAwIDE2LTcuMiAxNi0xNlYyMDhjMC04LjgtNy4yLTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFdXJvU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTAuNzA2IDQxMy43NjVjLTEuMzE0LTYuNjMtNy44MzUtMTAuODcyLTE0LjQyNC05LjM2OS0xMC42OTIgMi40MzktMjcuNDIyIDUuNDEzLTQ1LjQyNiA1LjQxMy01Ni43NjMgMC0xMDEuOTI5LTM0Ljc5LTEyMS40NjEtODUuNDQ5aDExMy42ODlhMTIgMTIgMCAwIDAgMTEuNzA4LTkuMzY5bDYuMzczLTI4LjM2YzEuNjg2LTcuNTAyLTQuMDE5LTE0LjYzMS0xMS43MDgtMTQuNjMxSDExNS4yMmMtMS4yMS0xNC4zMjgtMS40MTQtMjguMjg3LjEzNy00Mi4yNDVIMjYxLjk1YTEyIDEyIDAgMCAwIDExLjcyMy05LjQzNGw2LjUxMi0yOS43NTVjMS42MzgtNy40ODQtNC4wNjEtMTQuNTY2LTExLjcyMy0xNC41NjZIMTMwLjE4NGMyMC42MzMtNDQuOTkxIDYyLjY5LTc1LjAzIDExNy42MTktNzUuMDMgMTQuNDg2IDAgMjguNTY0IDIuMjUgMzcuODUxIDQuMTQ1IDYuMjE2IDEuMjY4IDEyLjM0Ny0yLjQ5OCAxNC4wMDItOC42MjNsMTEuOTkxLTQ0LjM2OGMxLjgyMi02Ljc0MS0yLjQ2NS0xMy42MTYtOS4zMjYtMTQuOTE3QzI5MC4yMTcgMzQuOTEyIDI3MC43MSAzMiAyNDkuNjM1IDMyIDE1Mi40NTEgMzIgNzQuMDMgOTIuMjUyIDQ1LjA3NSAxNzZIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjkuNzU1YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjEuNTY5Yy0xLjAwOSAxMy42MDctMS4xODEgMjkuMjg3LS4xODEgNDIuMjQ1SDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI4LjM2YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMzAuMTE0QzY3LjEzOSA0MTQuNjkyIDE0NS4yNjQgNDgwIDI0OS42MzUgNDgwYzI2LjMwMSAwIDQ4LjU2Mi00LjU0NCA2MS4xMDEtNy43ODggNi4xNjctMS41OTUgMTAuMDI3LTcuNzA4IDguNzg4LTEzLjk1N2wtOC44MTgtNDQuNDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV4Y2hhbmdlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTY4di0xNmMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjRoMzYwVjgwYzAtMjEuMzY3IDI1Ljg5OS0zMi4wNDIgNDAuOTcxLTE2Ljk3MWw4MCA4MGM5LjM3MiA5LjM3MyA5LjM3MiAyNC41NjkgMCAzMy45NDFsLTgwIDgwQzQwOS45NTYgMjcxLjk4MiAzODQgMjYxLjQ1NiAzODQgMjQwdi00OEgyNGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0em00ODggMTUySDEyOHYtNDhjMC0yMS4zMTQtMjUuODYyLTMyLjA4LTQwLjk3MS0xNi45NzFsLTgwIDgwYy05LjM3MiA5LjM3My05LjM3MiAyNC41NjkgMCAzMy45NDFsODAgODBDMTAyLjA1NyA0NjMuOTk3IDEyOCA0NTMuNDM3IDEyOCA0MzJ2LTQ4aDM2MGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTE2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXhjbGFtYXRpb25DaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA0IDI1NmMwIDEzNi45OTctMTExLjA0MyAyNDgtMjQ4IDI0OFM4IDM5Mi45OTcgOCAyNTZDOCAxMTkuMDgzIDExOS4wNDMgOCAyNTYgOHMyNDggMTExLjA4MyAyNDggMjQ4em0tMjQ4IDUwYy0yNS40MDUgMC00NiAyMC41OTUtNDYgNDZzMjAuNTk1IDQ2IDQ2IDQ2IDQ2LTIwLjU5NSA0Ni00Ni0yMC41OTUtNDYtNDYtNDZ6bS00My42NzMtMTY1LjM0Nmw3LjQxOCAxMzZjLjM0NyA2LjM2NCA1LjYwOSAxMS4zNDYgMTEuOTgyIDExLjM0Nmg0OC41NDZjNi4zNzMgMCAxMS42MzUtNC45ODIgMTEuOTgyLTExLjM0Nmw3LjQxOC0xMzZjLjM3NS02Ljg3NC01LjA5OC0xMi42NTQtMTEuOTgyLTEyLjY1NGgtNjMuMzgzYy02Ljg4NCAwLTEyLjM1NiA1Ljc4LTExLjk4MSAxMi42NTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV4Y2xhbWF0aW9uVHJpYW5nbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTY5LjUxNyA0NDAuMDEzQzU4Ny45NzUgNDcyLjAwNyA1NjQuODA2IDUxMiA1MjcuOTQgNTEySDQ4LjA1NGMtMzYuOTM3IDAtNTkuOTk5LTQwLjA1NS00MS41NzctNzEuOTg3TDI0Ni40MjMgMjMuOTg1YzE4LjQ2Ny0zMi4wMDkgNjQuNzItMzEuOTUxIDgzLjE1NCAwbDIzOS45NCA0MTYuMDI4ek0yODggMzU0Yy0yNS40MDUgMC00NiAyMC41OTUtNDYgNDZzMjAuNTk1IDQ2IDQ2IDQ2IDQ2LTIwLjU5NSA0Ni00Ni0yMC41OTUtNDYtNDYtNDZ6bS00My42NzMtMTY1LjM0Nmw3LjQxOCAxMzZjLjM0NyA2LjM2NCA1LjYwOSAxMS4zNDYgMTEuOTgyIDExLjM0Nmg0OC41NDZjNi4zNzMgMCAxMS42MzUtNC45ODIgMTEuOTgyLTExLjM0Nmw3LjQxOC0xMzZjLjM3NS02Ljg3NC01LjA5OC0xMi42NTQtMTEuOTgyLTEyLjY1NGgtNjMuMzgzYy02Ljg4NCAwLTEyLjM1NiA1Ljc4LTExLjk4MSAxMi42NTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV4Y2xhbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAxOTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiA0MzJjMCA0NC4xMTItMzUuODg4IDgwLTgwIDgwcy04MC0zNS44ODgtODAtODAgMzUuODg4LTgwIDgwLTgwIDgwIDM1Ljg4OCA4MCA4MHpNMjUuMjYgMjUuMTk5bDEzLjYgMjcyQzM5LjQ5OSAzMDkuOTcyIDUwLjA0MSAzMjAgNjIuODMgMzIwaDY2LjM0YzEyLjc4OSAwIDIzLjMzMS0xMC4wMjggMjMuOTctMjIuODAxbDEzLjYtMjcyQzE2Ny40MjUgMTEuNDkgMTU2LjQ5NiAwIDE0Mi43NyAwSDQ5LjIzQzM1LjUwNCAwIDI0LjU3NSAxMS40OSAyNS4yNiAyNS4xOTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV4cGFuZEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTIuNjg2IDMxNS4zMTRMMTIwIDQwOGwzMi45MjIgMzEuMDI5YzE1LjEyIDE1LjEyIDQuNDEyIDQwLjk3MS0xNi45NyA0MC45NzFoLTExMkMxMC42OTcgNDgwIDAgNDY5LjI1NSAwIDQ1NlYzNDRjMC0yMS4zODIgMjUuODAzLTMyLjA5IDQwLjkyMi0xNi45NzFMNzIgMzYwbDkyLjY4Ni05Mi42ODZjNi4yNDgtNi4yNDggMTYuMzc5LTYuMjQ4IDIyLjYyNyAwbDI1LjM3MyAyNS4zNzNjNi4yNDkgNi4yNDggNi4yNDkgMTYuMzc4IDAgMjIuNjI3em0yMi42MjgtMTE4LjYyOEwzMjggMTA0bC0zMi45MjItMzEuMDI5QzI3OS45NTggNTcuODUxIDI5MC42NjYgMzIgMzEyLjA0OCAzMmgxMTJDNDM3LjMwMyAzMiA0NDggNDIuNzQ1IDQ0OCA1NnYxMTJjMCAyMS4zODItMjUuODAzIDMyLjA5LTQwLjkyMiAxNi45NzFMMzc2IDE1MmwtOTIuNjg2IDkyLjY4NmMtNi4yNDggNi4yNDgtMTYuMzc5IDYuMjQ4LTIyLjYyNyAwbC0yNS4zNzMtMjUuMzczYy02LjI0OS02LjI0OC02LjI0OS0xNi4zNzggMC0yMi42Mjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV4cGFuZEFycm93c0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMzQ0djExMmEyMy45NCAyMy45NCAwIDAgMS0yNCAyNEgzMTJjLTIxLjM5IDAtMzIuMDktMjUuOS0xNy00MWwzNi4yLTM2LjJMMjI0IDI5NS42IDExNi43NyA0MDIuOSAxNTMgNDM5YzE1LjA5IDE1LjEgNC4zOSA0MS0xNyA0MUgyNGEyMy45NCAyMy45NCAwIDAgMS0yNC0yNFYzNDRjMC0yMS40IDI1Ljg5LTMyLjEgNDEtMTdsMzYuMTkgMzYuMkwxODQuNDYgMjU2IDc3LjE4IDE0OC43IDQxIDE4NWMtMTUuMSAxNS4xLTQxIDQuNC00MS0xN1Y1NmEyMy45NCAyMy45NCAwIDAgMSAyNC0yNGgxMTJjMjEuMzkgMCAzMi4wOSAyNS45IDE3IDQxbC0zNi4yIDM2LjJMMjI0IDIxNi40bDEwNy4yMy0xMDcuM0wyOTUgNzNjLTE1LjA5LTE1LjEtNC4zOS00MSAxNy00MWgxMTJhMjMuOTQgMjMuOTQgMCAwIDEgMjQgMjR2MTEyYzAgMjEuNC0yNS44OSAzMi4xLTQxIDE3bC0zNi4xOS0zNi4yTDI2My41NCAyNTZsMTA3LjI4IDEwNy4zTDQwNyAzMjcuMWMxNS4xLTE1LjIgNDEtNC41IDQxIDE2Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV4cGFuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDE4MFY1NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGgxMjRjNi42IDAgMTIgNS40IDEyIDEydjQwYzAgNi42LTUuNCAxMi0xMiAxMkg2NHY4NGMwIDYuNi01LjQgMTItMTIgMTJIMTJjLTYuNiAwLTEyLTUuNC0xMi0xMnpNMjg4IDQ0djQwYzAgNi42IDUuNCAxMiAxMiAxMmg4NHY4NGMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEyVjU2YzAtMTMuMy0xMC43LTI0LTI0LTI0SDMwMGMtNi42IDAtMTIgNS40LTEyIDEyem0xNDggMjc2aC00MGMtNi42IDAtMTIgNS40LTEyIDEydjg0aC04NGMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmgxMjRjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMzMyYzAtNi42LTUuNC0xMi0xMi0xMnpNMTYwIDQ2OHYtNDBjMC02LjYtNS40LTEyLTEyLTEySDY0di04NGMwLTYuNi01LjQtMTItMTItMTJIMTJjLTYuNiAwLTEyIDUuNC0xMiAxMnYxMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMTI0YzYuNiAwIDEyLTUuNCAxMi0xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXh0ZXJuYWxMaW5rQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzMiwzMjBINDAwYTE2LDE2LDAsMCwwLTE2LDE2VjQ0OEg2NFYxMjhIMjA4YTE2LDE2LDAsMCwwLDE2LTE2VjgwYTE2LDE2LDAsMCwwLTE2LTE2SDQ4QTQ4LDQ4LDAsMCwwLDAsMTEyVjQ2NGE0OCw0OCwwLDAsMCw0OCw0OEg0MDBhNDgsNDgsMCwwLDAsNDgtNDhWMzM2QTE2LDE2LDAsMCwwLDQzMiwzMjBaTTQ4OCwwaC0xMjhjLTIxLjM3LDAtMzIuMDUsMjUuOTEtMTcsNDFsMzUuNzMsMzUuNzNMMTM1LDMyMC4zN2EyNCwyNCwwLDAsMCwwLDM0TDE1Ny42NywzNzdhMjQsMjQsMCwwLDAsMzQsMEw0MzUuMjgsMTMzLjMyLDQ3MSwxNjljMTUsMTUsNDEsNC41LDQxLTE3VjI0QTI0LDI0LDAsMCwwLDQ4OCwwWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeHRlcm5hbExpbmtTcXVhcmVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDgwdjM1MmMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjgwYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoMzUyYzI2LjUxIDAgNDggMjEuNDkgNDggNDh6bS04OCAxNkgyNDguMDI5Yy0yMS4zMTMgMC0zMi4wOCAyNS44NjEtMTYuOTcxIDQwLjk3MWwzMS45ODQgMzEuOTg3TDY3LjUxNSAzNjQuNDg1Yy00LjY4NiA0LjY4Ni00LjY4NiAxMi4yODQgMCAxNi45NzFsMzEuMDI5IDMxLjAyOWM0LjY4NyA0LjY4NiAxMi4yODUgNC42ODYgMTYuOTcxIDBsMTk1LjUyNi0xOTUuNTI2IDMxLjk4OCAzMS45OTFDMzU4LjA1OCAyNjMuOTc3IDM4NCAyNTMuNDI1IDM4NCAyMzEuOTc5VjEyMGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV5ZURyb3BwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAuNzUgMzMzLjI1Yy0xMiAxMi0xOC43NSAyOC4yOC0xOC43NSA0NS4yNlY0MjRMMCA0ODBsMzIgMzIgNTYtMzJoNDUuNDljMTYuOTcgMCAzMy4yNS02Ljc0IDQ1LjI1LTE4Ljc0bDEyNi42NC0xMjYuNjItMTI4LTEyOEw1MC43NSAzMzMuMjV6TTQ4My44OCAyOC4xMmMtMzcuNDctMzcuNS05OC4yOC0zNy41LTEzNS43NSAwbC03Ny4wOSA3Ny4wOS0xMy4xLTEzLjFjLTkuNDQtOS40NC0yNC42NS05LjMxLTMzLjk0IDBsLTQwLjk3IDQwLjk3Yy05LjM3IDkuMzctOS4zNyAyNC41NyAwIDMzLjk0bDE2MS45NCAxNjEuOTRjOS40NCA5LjQ0IDI0LjY1IDkuMzEgMzMuOTQgMEw0MTkuODggMjg4YzkuMzctOS4zNyA5LjM3LTI0LjU3IDAtMzMuOTRsLTEzLjEtMTMuMSA3Ny4wOS03Ny4wOWMzNy41MS0zNy40OCAzNy41MS05OC4yNi4wMS0xMzUuNzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV5ZVNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCA0MDBjLTc1Ljg1IDAtMTM3LjI1LTU4LjcxLTE0Mi45LTEzMy4xMUw3Mi4yIDE4NS44MmMtMTMuNzkgMTcuMy0yNi40OCAzNS41OS0zNi43MiA1NS41OWEzMi4zNSAzMi4zNSAwIDAgMCAwIDI5LjE5Qzg5LjcxIDM3Ni40MSAxOTcuMDcgNDQ4IDMyMCA0NDhjMjYuOTEgMCA1Mi44Ny00IDc3Ljg5LTEwLjQ2TDM0NiAzOTcuMzlhMTQ0LjEzIDE0NC4xMyAwIDAgMS0yNiAyLjYxem0zMTMuODIgNTguMWwtMTEwLjU1LTg1LjQ0YTMzMS4yNSAzMzEuMjUgMCAwIDAgODEuMjUtMTAyLjA3IDMyLjM1IDMyLjM1IDAgMCAwIDAtMjkuMTlDNTUwLjI5IDEzNS41OSA0NDIuOTMgNjQgMzIwIDY0YTMwOC4xNSAzMDguMTUgMCAwIDAtMTQ3LjMyIDM3LjdMNDUuNDYgMy4zN0ExNiAxNiAwIDAgMCAyMyA2LjE4TDMuMzcgMzEuNDVBMTYgMTYgMCAwIDAgNi4xOCA1My45bDU4OC4zNiA0NTQuNzNhMTYgMTYgMCAwIDAgMjIuNDYtMi44MWwxOS42NC0yNS4yN2ExNiAxNiAwIDAgMC0yLjgyLTIyLjQ1em0tMTgzLjcyLTE0MmwtMzkuMy0zMC4zOEE5NC43NSA5NC43NSAwIDAgMCA0MTYgMjU2YTk0Ljc2IDk0Ljc2IDAgMCAwLTEyMS4zMS05Mi4yMUE0Ny42NSA0Ny42NSAwIDAgMSAzMDQgMTkyYTQ2LjY0IDQ2LjY0IDAgMCAxLTEuNTQgMTBsLTczLjYxLTU2Ljg5QTE0Mi4zMSAxNDIuMzEgMCAwIDEgMzIwIDExMmExNDMuOTIgMTQzLjkyIDAgMCAxIDE0NCAxNDRjMCAyMS42My01LjI5IDQxLjc5LTEzLjkgNjAuMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV5ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzIuNTIgMjQxLjRDNTE4LjI5IDEzNS41OSA0MTAuOTMgNjQgMjg4IDY0UzU3LjY4IDEzNS42NCAzLjQ4IDI0MS40MWEzMi4zNSAzMi4zNSAwIDAgMCAwIDI5LjE5QzU3LjcxIDM3Ni40MSAxNjUuMDcgNDQ4IDI4OCA0NDhzMjMwLjMyLTcxLjY0IDI4NC41Mi0xNzcuNDFhMzIuMzUgMzIuMzUgMCAwIDAgMC0yOS4xOXpNMjg4IDQwMGExNDQgMTQ0IDAgMSAxIDE0NC0xNDQgMTQzLjkzIDE0My45MyAwIDAgMS0xNDQgMTQ0em0wLTI0MGE5NS4zMSA5NS4zMSAwIDAgMC0yNS4zMSAzLjc5IDQ3Ljg1IDQ3Ljg1IDAgMCAxLTY2LjkgNjYuOUE5NS43OCA5NS43OCAwIDEgMCAyODggMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyLjU3IDEyOGMtMjguMDkgMC01NC4wOSA0LjUyLTc3LjA2IDEyLjg2bDEyLjQxLTEyMy4xMUMyODkgNy4zMSAyNzkuODEtMS4xOCAyNjkuMzMuMTMgMTg5LjYzIDEwLjEzIDEyOCA3Ny42NCAxMjggMTU5LjQzYzAgMjguMDkgNC41MiA1NC4wOSAxMi44NiA3Ny4wNkwxNy43NSAyMjQuMDhDNy4zMSAyMjMtMS4xOCAyMzIuMTkuMTMgMjQyLjY3YzEwIDc5LjcgNzcuNTEgMTQxLjMzIDE1OS4zIDE0MS4zMyAyOC4wOSAwIDU0LjA5LTQuNTIgNzcuMDYtMTIuODZsLTEyLjQxIDEyMy4xMWMtMS4wNSAxMC40MyA4LjExIDE4LjkzIDE4LjU5IDE3LjYyIDc5LjctMTAgMTQxLjMzLTc3LjUxIDE0MS4zMy0xNTkuMyAwLTI4LjA5LTQuNTItNTQuMDktMTIuODYtNzcuMDZsMTIzLjExIDEyLjQxYzEwLjQ0IDEuMDUgMTguOTMtOC4xMSAxNy42Mi0xOC41OS0xMC03OS43LTc3LjUxLTE0MS4zMy0xNTkuMy0xNDEuMzN6TTI1NiAyODhhMzIgMzIgMCAxIDEgMzItMzIgMzIgMzIgMCAwIDEtMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhc3RCYWNrd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQzNlY3NmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjE1MS45TDIzNS41IDcxLjRDMjU2LjEgNTQuMyAyODggNjguNiAyODggOTZ2MTMxLjlMNDU5LjUgNzEuNEM0ODAuMSA1NC4zIDUxMiA2OC42IDUxMiA5NnYzMjBjMCAyNy40LTMxLjkgNDEuNy01Mi41IDI0LjZMMjg4IDI4NS4zVjQxNmMwIDI3LjQtMzEuOSA0MS43LTUyLjUgMjQuNkw2NCAyODUuM1Y0MzZjMCA2LjYtNS40IDEyLTEyIDEySDEyYy02LjYgMC0xMi01LjQtMTItMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhc3RGb3J3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiA3NnYzNjBjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEyVjI4NC4xTDI3Ni41IDQ0MC42Yy0yMC42IDE3LjItNTIuNSAyLjgtNTIuNS0yNC42VjI4NC4xTDUyLjUgNDQwLjZDMzEuOSA0NTcuOCAwIDQ0My40IDAgNDE2Vjk2YzAtMjcuNCAzMS45LTQxLjcgNTIuNS0yNC42TDIyNCAyMjYuOFY5NmMwLTI3LjQgMzEuOS00MS43IDUyLjUtMjQuNkw0NDggMjI2LjhWNzZjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmF1Y2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiwyNTZIMzEzLjM5Yy0xNS43MS0xMy40NC0zNS40Ni0yMy4wNy01Ny4zOS0yOFYxODAuNDRsLTMyLTMuMzgtMzIsMy4zOFYyMjhjLTIxLjkzLDUtNDEuNjgsMTQuNi01Ny4zOSwyOEgxNkExNiwxNiwwLDAsMCwwLDI3MnY5NmExNiwxNiwwLDAsMCwxNiwxNmg5Mi43OUMxMjkuMzgsNDIxLjczLDE3Myw0NDgsMjI0LDQ0OHM5NC42Mi0yNi4yNywxMTUuMjEtNjRIMzUyYTMyLDMyLDAsMCwxLDMyLDMyLDMyLDMyLDAsMCwwLDMyLDMyaDY0YTMyLDMyLDAsMCwwLDMyLTMyQTE2MCwxNjAsMCwwLDAsMzUyLDI1NlpNODEuNTksMTU5LjkxbDE0Mi40MS0xNSwxNDIuNDEsMTVjOS40MiwxLDE3LjU5LTYuODEsMTcuNTktMTYuOFYxMTIuODljMC0xMC04LjE3LTE3LjgtMTcuNTktMTYuODFMMjU2LDEwNy43NFY4MGExNiwxNiwwLDAsMC0xNi0xNkgyMDhhMTYsMTYsMCwwLDAtMTYsMTZ2MjcuNzRMODEuNTksOTYuMDhDNzIuMTcsOTUuMDksNjQsMTAyLjksNjQsMTEyLjg5djMwLjIyQzY0LDE1My4xLDcyLjE3LDE2MC45MSw4MS41OSwxNTkuOTFaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZheCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAgMTYwVjc3LjI1YTMyIDMyIDAgMCAwLTkuMzgtMjIuNjNMNDI1LjM3IDkuMzdBMzIgMzIgMCAwIDAgNDAyLjc1IDBIMTYwYTMyIDMyIDAgMCAwLTMyIDMydjQ0OGEzMiAzMiAwIDAgMCAzMiAzMmgzMjBhMzIgMzIgMCAwIDAgMzItMzJWMTkyYTMyIDMyIDAgMCAwLTMyLTMyek0yODggNDMyYTE2IDE2IDAgMCAxLTE2IDE2aC0zMmExNiAxNiAwIDAgMS0xNi0xNnYtMzJhMTYgMTYgMCAwIDEgMTYtMTZoMzJhMTYgMTYgMCAwIDEgMTYgMTZ6bTAtMTI4YTE2IDE2IDAgMCAxLTE2IDE2aC0zMmExNiAxNiAwIDAgMS0xNi0xNnYtMzJhMTYgMTYgMCAwIDEgMTYtMTZoMzJhMTYgMTYgMCAwIDEgMTYgMTZ6bTEyOCAxMjhhMTYgMTYgMCAwIDEtMTYgMTZoLTMyYTE2IDE2IDAgMCAxLTE2LTE2di0zMmExNiAxNiAwIDAgMSAxNi0xNmgzMmExNiAxNiAwIDAgMSAxNiAxNnptMC0xMjhhMTYgMTYgMCAwIDEtMTYgMTZoLTMyYTE2IDE2IDAgMCAxLTE2LTE2di0zMmExNiAxNiAwIDAgMSAxNi0xNmgzMmExNiAxNiAwIDAgMSAxNiAxNnptMC0xMTJIMTkyVjY0aDE2MHY0OGExNiAxNiAwIDAgMCAxNiAxNmg0OHpNNjQgMTI4SDMyYTMyIDMyIDAgMCAwLTMyIDMydjMyMGEzMiAzMiAwIDAgMCAzMiAzMmgzMmEzMiAzMiAwIDAgMCAzMi0zMlYxNjBhMzIgMzIgMCAwIDAtMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZlYXRoZXJBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDBDNDYwLjIyIDMuNTYgOTYuNDQgMzguMiA3MS4wMSAyODcuNjFjLTMuMDkgMjYuNjYtNC44NCA1My40NC01Ljk5IDgwLjI0bDE3OC44Ny0xNzguNjljNi4yNS02LjI1IDE2LjQtNi4yNSAyMi42NSAwczYuMjUgMTYuMzggMCAyMi42M0w3LjA0IDQ3MS4wM2MtOS4zOCA5LjM3LTkuMzggMjQuNTcgMCAzMy45NCA5LjM4IDkuMzcgMjQuNTkgOS4zNyAzMy45OCAwbDU3LjEzLTU3LjA3YzQyLjA5LS4xNCA4NC4xNS0yLjUzIDEyNS45Ni03LjM2IDUzLjQ4LTUuNDQgOTcuMDItMjYuNDcgMTMyLjU4LTU2LjU0SDI1NS43NGwxNDYuNzktNDguODhjMTEuMjUtMTQuODkgMjEuMzctMzAuNzEgMzAuNDUtNDcuMTJoLTgxLjE0bDEwNi41NC01My4yMUM1MDAuMjkgMTMyLjg2IDUxMC4xOSAyNi4yNiA1MTIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmVhdGhlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjcuMTQgNDQuODRjLTYyLjU1LTYyLjQ4LTE2MS42Ny02NC43OC0yNTIuMjggMjUuNzMtNzguNjEgNzguNTItNjAuOTggNjAuOTItODUuNzUgODUuNjYtNjAuNDYgNjAuMzktNzAuMzkgMTUwLjgzLTYzLjY0IDIxMS4xN2wxNzguNDQtMTc4LjI1YzYuMjYtNi4yNSAxNi40LTYuMjUgMjIuNjUgMHM2LjI1IDE2LjM4IDAgMjIuNjNMNy4wNCA0NzEuMDNjLTkuMzggOS4zNy05LjM4IDI0LjU3IDAgMzMuOTQgOS4zOCA5LjM3IDI0LjYgOS4zNyAzMy45OCAwbDY2LjEtNjYuMDNDMTU5LjQyIDQ1NC42NSAyNzkgNDU3LjExIDM1My45NSAzODRoLTk4LjE5bDE0Ny41Ny00OS4xNGM0OS45OS00OS45MyAzNi4zOC0zNi4xOCA0Ni4zMS00Ni44NmgtOTcuNzhsMTMxLjU0LTQzLjhjNDUuNDQtNzQuNDYgMzQuMzEtMTQ4Ljg0LTE2LjI2LTE5OS4zNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmVtYWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAwYzM1LjM0NiAwIDY0IDI4LjY1NCA2NCA2NHMtMjguNjU0IDY0LTY0IDY0Yy0zNS4zNDYgMC02NC0yOC42NTQtNjQtNjRTOTIuNjU0IDAgMTI4IDBtMTE5LjI4MyAzNTQuMTc5bC00OC0xOTJBMjQgMjQgMCAwIDAgMTc2IDE0NGgtMTEuMzZjLTIyLjcxMSAxMC40NDMtNDkuNTkgMTAuODk0LTczLjI4IDBIODBhMjQgMjQgMCAwIDAtMjMuMjgzIDE4LjE3OWwtNDggMTkyQzQuOTM1IDM2OS4zMDUgMTYuMzgzIDM4NCAzMiAzODRoNTZ2MTA0YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgzMmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMzg0aDU2YzE1LjU5MSAwIDI3LjA3MS0xNC42NzEgMjMuMjgzLTI5LjgyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlnaHRlckpldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDQgMjI0bC0xMjgtMTYtNDgtMTZoLTI0TDIyNy4xNTggNDRoMzkuNTA5QzI3OC4zMzMgNDQgMjg4IDQxLjM3NSAyODggMzhzLTkuNjY3LTYtMjEuMzMzLTZIMTUydjEyaDE2djE2NGgtNDhsLTY2LjY2Ny04MEgxOC42NjdMOCAxMzguNjY3VjIwOGg4djE2aDQ4djIuNjY2bC02NCA4djQyLjY2N2w2NCA4VjI4OEgxNnYxNkg4djY5LjMzM0wxOC42NjcgMzg0aDM0LjY2N0wxMjAgMzA0aDQ4djE2NGgtMTZ2MTJoMTE0LjY2N2MxMS42NjcgMCAyMS4zMzMtMi42MjUgMjEuMzMzLTZzLTkuNjY3LTYtMjEuMzMzLTZoLTM5LjUwOUwzNDQgMzIwaDI0bDQ4LTE2IDEyOC0xNmM5Ni0yMS4zMzMgOTYtMjYuNTgzIDk2LTMyIDAtNS40MTcgMC0xMC42NjctOTYtMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDEzNlYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0em02NCAyMzZjMCA2LjYtNS40IDEyLTEyIDEySDEwOGMtNi42IDAtMTItNS40LTEyLTEydi04YzAtNi42IDUuNC0xMiAxMi0xMmgxNjhjNi42IDAgMTIgNS40IDEyIDEydjh6bTAtNjRjMCA2LjYtNS40IDEyLTEyIDEySDEwOGMtNi42IDAtMTItNS40LTEyLTEydi04YzAtNi42IDUuNC0xMiAxMi0xMmgxNjhjNi42IDAgMTIgNS40IDEyIDEydjh6bTAtNzJ2OGMwIDYuNi01LjQgMTItMTIgMTJIMTA4Yy02LjYgMC0xMi01LjQtMTItMTJ2LThjMC02LjYgNS40LTEyIDEyLTEyaDE2OGM2LjYgMCAxMiA1LjQgMTIgMTJ6bTk2LTExNC4xdjYuMUgyNTZWMGg2LjFjNi40IDAgMTIuNSAyLjUgMTcgN2w5Ny45IDk4YzQuNSA0LjUgNyAxMC42IDcgMTYuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUFyY2hpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzc3IDEwNUwyNzkuMSA3Yy00LjUtNC41LTEwLjYtNy0xNy03SDI1NnYxMjhoMTI4di02LjFjMC02LjMtMi41LTEyLjQtNy0xNi45ek0xMjguNCAzMzZjLTE3LjkgMC0zMi40IDEyLjEtMzIuNCAyNyAwIDE1IDE0LjYgMjcgMzIuNSAyN3MzMi40LTEyLjEgMzIuNC0yNy0xNC42LTI3LTMyLjUtMjd6TTIyNCAxMzZWMGgtNjMuNnYzMmgtMzJWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHpNOTUuOSAzMmgzMnYzMmgtMzJ6bTMyLjMgMzg0Yy0zMy4yIDAtNTgtMzAuNC01MS40LTYyLjlMOTYuNCAyNTZ2LTMyaDMydi0zMmgtMzJ2LTMyaDMydi0zMmgtMzJWOTZoMzJWNjRoMzJ2MzJoLTMydjMyaDMydjMyaC0zMnYzMmgzMnYzMmgtMzJ2MzJoMjIuMWM1LjcgMCAxMC43IDQuMSAxMS44IDkuN2wxNy4zIDg3LjdjNi40IDMyLjQtMTguNCA2Mi42LTUxLjQgNjIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUF1ZGlvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxMzZWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHptLTY0IDI2OGMwIDEwLjctMTIuOSAxNi0yMC41IDguNUwxMDQgMzc2SDc2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTU2YzAtNi42IDUuNC0xMiAxMi0xMmgyOGwzNS41LTM2LjVjNy42LTcuNiAyMC41LTIuMiAyMC41IDguNXYxMzZ6bTMzLjItNDcuNmM5LjEtOS4zIDkuMS0yNC4xIDAtMzMuNC0yMi4xLTIyLjggMTIuMi01Ni4yIDM0LjQtMzMuNSAyNy4yIDI3LjkgMjcuMiA3Mi40IDAgMTAwLjQtMjEuOCAyMi4zLTU2LjktMTAuNC0zNC40LTMzLjV6bTg2LTExNy4xYzU0LjQgNTUuOSA1NC40IDE0NC44IDAgMjAwLjgtMjEuOCAyMi40LTU3LTEwLjMtMzQuNC0zMy41IDM2LjItMzcuMiAzNi4zLTk2LjUgMC0xMzMuOC0yMi4xLTIyLjggMTIuMy01Ni4zIDM0LjQtMzMuNXpNMzg0IDEyMS45djYuMUgyNTZWMGg2LjFjNi40IDAgMTIuNSAyLjUgMTcgN2w5Ny45IDk4YzQuNSA0LjUgNyAxMC42IDcgMTYuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUNvZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDEyMS45NDFWMTI4SDI1NlYwaDYuMDU5YzYuMzY1IDAgMTIuNDcgMi41MjkgMTYuOTcxIDcuMDI5bDk3Ljk0MSA5Ny45NDFBMjQuMDA1IDI0LjAwNSAwIDAgMSAzODQgMTIxLjk0MXpNMjQ4IDE2MGMtMTMuMiAwLTI0LTEwLjgtMjQtMjRWMEgyNEMxMC43NDUgMCAwIDEwLjc0NSAwIDI0djQ2NGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMzM2YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYxNjBIMjQ4ek0xMjMuMjA2IDQwMC41MDVhNS40IDUuNCAwIDAgMS03LjYzMy4yNDZsLTY0Ljg2Ni02MC44MTJhNS40IDUuNCAwIDAgMSAwLTcuODc5bDY0Ljg2Ni02MC44MTJhNS40IDUuNCAwIDAgMSA3LjYzMy4yNDZsMTkuNTc5IDIwLjg4NWE1LjQgNS40IDAgMCAxLS4zNzIgNy43NDdMMTAxLjY1IDMzNmw0MC43NjMgMzUuODc0YTUuNCA1LjQgMCAwIDEgLjM3MiA3Ljc0N2wtMTkuNTc5IDIwLjg4NHptNTEuMjk1IDUwLjQ3OWwtMjcuNDUzLTcuOTdhNS40MDIgNS40MDIgMCAwIDEtMy42ODEtNi42OTJsNjEuNDQtMjExLjYyNmE1LjQwMiA1LjQwMiAwIDAgMSA2LjY5Mi0zLjY4MWwyNy40NTIgNy45N2E1LjQgNS40IDAgMCAxIDMuNjggNi42OTJsLTYxLjQ0IDIxMS42MjZhNS4zOTcgNS4zOTcgMCAwIDEtNi42OSAzLjY4MXptMTYwLjc5Mi0xMTEuMDQ1bC02NC44NjYgNjAuODEyYTUuNCA1LjQgMCAwIDEtNy42MzMtLjI0NmwtMTkuNTgtMjAuODg1YTUuNCA1LjQgMCAwIDEgLjM3Mi03Ljc0N0wyODQuMzUgMzM2bC00MC43NjMtMzUuODc0YTUuNCA1LjQgMCAwIDEtLjM3Mi03Ljc0N2wxOS41OC0yMC44ODVhNS40IDUuNCAwIDAgMSA3LjYzMy0uMjQ2bDY0Ljg2NiA2MC44MTJhNS40IDUuNCAwIDAgMS0uMDAxIDcuODc5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlQ29udHJhY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDEzNlYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0ek02NCA3MmMwLTQuNDIgMy41OC04IDgtOGg4MGM0LjQyIDAgOCAzLjU4IDggOHYxNmMwIDQuNDItMy41OCA4LTggOEg3MmMtNC40MiAwLTgtMy41OC04LThWNzJ6bTAgNjRjMC00LjQyIDMuNTgtOCA4LThoODBjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhINzJjLTQuNDIgMC04LTMuNTgtOC04di0xNnptMTkyLjgxIDI0OEgzMDRjOC44NCAwIDE2IDcuMTYgMTYgMTZzLTcuMTYgMTYtMTYgMTZoLTQ3LjE5Yy0xNi40NSAwLTMxLjI3LTkuMTQtMzguNjQtMjMuODYtMi45NS01LjkyLTguMDktNi41Mi0xMC4xNy02LjUycy03LjIyLjU5LTEwLjAyIDYuMTlsLTcuNjcgMTUuMzRhMTUuOTg2IDE1Ljk4NiAwIDAgMS0xNC4zMSA4Ljg0Yy0uMzggMC0uNzUtLjAyLTEuMTQtLjA1LTYuNDUtLjQ1LTEyLTQuNzUtMTQuMDMtMTAuODlMMTQ0IDM1NC41OWwtMTAuNjEgMzEuODhjLTUuODkgMTcuNjYtMjIuMzggMjkuNTMtNDEgMjkuNTNIODBjLTguODQgMC0xNi03LjE2LTE2LTE2czcuMTYtMTYgMTYtMTZoMTIuMzljNC44MyAwIDkuMTEtMy4wOCAxMC42NC03LjY2bDE4LjE5LTU0LjY0YzMuMy05LjgxIDEyLjQ0LTE2LjQxIDIyLjc4LTE2LjQxczE5LjQ4IDYuNTkgMjIuNzcgMTYuNDFsMTMuODggNDEuNjRjMTkuNzctMTYuMTkgNTQuMDUtOS43IDY2IDE0LjE2IDIuMDIgNC4wNiA1Ljk2IDYuNSAxMC4xNiA2LjV6TTM3NyAxMDVMMjc5LjEgN2MtNC41LTQuNS0xMC42LTctMTctN0gyNTZ2MTI4aDEyOHYtNi4xYzAtNi4zLTIuNS0xMi40LTctMTYuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUNzdiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMTM2VjBIMjRDMTAuNyAwIDAgMTAuNyAwIDI0djQ2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bS05NiAxNDRjMCA0LjQyLTMuNTggOC04IDhoLThjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDhjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhoLThjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDh2LTMyYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoOGM0LjQyIDAgOCAzLjU4IDggOHYxNnptNDQuMjcgMTA0SDE2MGMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDEyLjI3YzUuOTUgMCAxMC40MS0zLjUgMTAuNDEtNi42MiAwLTEuMy0uNzUtMi42Ni0yLjEyLTMuODRsLTIxLjg5LTE4Ljc3Yy04LjQ3LTcuMjItMTMuMzMtMTcuNDgtMTMuMzMtMjguMTQgMC0yMS4zIDE5LjAyLTM4LjYyIDQyLjQxLTM4LjYySDIwMGM0LjQyIDAgOCAzLjU4IDggOHYxNmMwIDQuNDItMy41OCA4LTggOGgtMTIuMjdjLTUuOTUgMC0xMC40MSAzLjUtMTAuNDEgNi42MiAwIDEuMy43NSAyLjY2IDIuMTIgMy44NGwyMS44OSAxOC43N2M4LjQ3IDcuMjIgMTMuMzMgMTcuNDggMTMuMzMgMjguMTQuMDEgMjEuMjktMTkgMzguNjItNDIuMzkgMzguNjJ6TTI1NiAyNjR2MjAuOGMwIDIwLjI3IDUuNyA0MC4xNyAxNiA1Ni44OCAxMC4zLTE2LjcgMTYtMzYuNjEgMTYtNTYuODhWMjY0YzAtNC40MiAzLjU4LTggOC04aDE2YzQuNDIgMCA4IDMuNTggOCA4djIwLjhjMCAzNS40OC0xMi44OCA2OC44OS0zNi4yOCA5NC4wOS0zLjAyIDMuMjUtNy4yNyA1LjExLTExLjcyIDUuMTFzLTguNy0xLjg2LTExLjcyLTUuMTFjLTIzLjQtMjUuMi0zNi4yOC01OC42MS0zNi4yOC05NC4wOVYyNjRjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh6bTEyMS0xNTlMMjc5LjEgN2MtNC41LTQuNS0xMC42LTctMTctN0gyNTZ2MTI4aDEyOHYtNi4xYzAtNi4zLTIuNS0xMi40LTctMTYuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZURvd25sb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxMzZWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHptNzYuNDUgMjExLjM2bC05Ni40MiA5NS43Yy02LjY1IDYuNjEtMTcuMzkgNi42MS0yNC4wNCAwbC05Ni40Mi05NS43QzczLjQyIDMzNy4yOSA4MC41NCAzMjAgOTQuODIgMzIwSDE2MHYtODBjMC04Ljg0IDcuMTYtMTYgMTYtMTZoMzJjOC44NCAwIDE2IDcuMTYgMTYgMTZ2ODBoNjUuMThjMTQuMjggMCAyMS40IDE3LjI5IDExLjI3IDI3LjM2ek0zNzcgMTA1TDI3OS4xIDdjLTQuNS00LjUtMTAuNi03LTE3LTdIMjU2djEyOGgxMjh2LTYuMWMwLTYuMy0yLjUtMTIuNC03LTE2Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVFeGNlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMTM2VjBIMjRDMTAuNyAwIDAgMTAuNyAwIDI0djQ2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bTYwLjEgMTA2LjVMMjI0IDMzNmw2MC4xIDkzLjVjNS4xIDgtLjYgMTguNS0xMC4xIDE4LjVoLTM0LjljLTQuNCAwLTguNS0yLjQtMTAuNi02LjNDMjA4LjkgNDA1LjUgMTkyIDM3MyAxOTIgMzczYy02LjQgMTQuOC0xMCAyMC0zNi42IDY4LjgtMi4xIDMuOS02LjEgNi4zLTEwLjUgNi4zSDExMGMtOS41IDAtMTUuMi0xMC41LTEwLjEtMTguNWw2MC4zLTkzLjUtNjAuMy05My41Yy01LjItOCAuNi0xOC41IDEwLjEtMTguNWgzNC44YzQuNCAwIDguNSAyLjQgMTAuNiA2LjMgMjYuMSA0OC44IDIwIDMzLjYgMzYuNiA2OC41IDAgMCA2LjEtMTEuNyAzNi42LTY4LjUgMi4xLTMuOSA2LjItNi4zIDEwLjYtNi4zSDI3NGM5LjUtLjEgMTUuMiAxMC40IDEwLjEgMTguNHpNMzg0IDEyMS45djYuMUgyNTZWMGg2LjFjNi40IDAgMTIuNSAyLjUgMTcgN2w5Ny45IDk4YzQuNSA0LjUgNyAxMC42IDcgMTYuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUV4cG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMTIxLjljMC02LjMtMi41LTEyLjQtNy0xNi45TDI3OS4xIDdjLTQuNS00LjUtMTAuNi03LTE3LTdIMjU2djEyOGgxMjh6TTU3MSAzMDhsLTk1LjctOTYuNGMtMTAuMS0xMC4xLTI3LjQtMy0yNy40IDExLjNWMjg4aC02NHY2NGg2NHY2NS4yYzAgMTQuMyAxNy4zIDIxLjQgMjcuNCAxMS4zTDU3MSAzMzJjNi42LTYuNiA2LjYtMTcuNCAwLTI0em0tMzc5IDI4di0zMmMwLTguOCA3LjItMTYgMTYtMTZoMTc2VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0VjBIMjRDMTAuNyAwIDAgMTAuNyAwIDI0djQ2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMzUySDIwOGMtOC44IDAtMTYtNy4yLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlSW1hZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDEyMS45NDFWMTI4SDI1NlYwaDYuMDU5YTI0IDI0IDAgMCAxIDE2Ljk3IDcuMDI5bDk3Ljk0MSA5Ny45NDFhMjQuMDAyIDI0LjAwMiAwIDAgMSA3LjAzIDE2Ljk3MXpNMjQ4IDE2MGMtMTMuMiAwLTI0LTEwLjgtMjQtMjRWMEgyNEMxMC43NDUgMCAwIDEwLjc0NSAwIDI0djQ2NGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMzM2YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYxNjBIMjQ4em0tMTM1LjQ1NSAxNmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4cy0yMS40OSA0OC00OCA0OC00OC0yMS40OS00OC00OCAyMS40OTEtNDggNDgtNDh6bTIwOCAyNDBoLTI1NmwuNDg1LTQ4LjQ4NUwxMDQuNTQ1IDMyOGM0LjY4Ni00LjY4NiAxMS43OTktNC4yMDEgMTYuNDg1LjQ4NUwxNjAuNTQ1IDM2OCAyNjQuMDYgMjY0LjQ4NWM0LjY4Ni00LjY4NiAxMi4yODQtNC42ODYgMTYuOTcxIDBMMzIwLjU0NSAzMDR2MTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlSW1wb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDI4OGMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgxMTJ2LTY0em00ODktMTgzTDQwNy4xIDdjLTQuNS00LjUtMTAuNi03LTE3LTdIMzg0djEyOGgxMjh2LTYuMWMwLTYuMy0yLjUtMTIuNC03LTE2Ljl6bS0xNTMgMzFWMEgxNTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0djI2NGgxMjh2LTY1LjJjMC0xNC4zIDE3LjMtMjEuNCAyNy40LTExLjNMMzc5IDMwOGM2LjYgNi43IDYuNiAxNy40IDAgMjRsLTk1LjcgOTYuNGMtMTAuMSAxMC4xLTI3LjQgMy0yNy40LTExLjNWMzUySDEyOHYxMzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgzNzZjLTEzLjIgMC0yNC0xMC44LTI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlSW52b2ljZURvbGxhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzcgMTA1TDI3OS4xIDdjLTQuNS00LjUtMTAuNi03LTE3LTdIMjU2djEyOGgxMjh2LTYuMWMwLTYuMy0yLjUtMTIuNC03LTE2Ljl6bS0xNTMgMzFWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHpNNjQgNzJjMC00LjQyIDMuNTgtOCA4LThoODBjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhINzJjLTQuNDIgMC04LTMuNTgtOC04Vjcyem0wIDgwdi0xNmMwLTQuNDIgMy41OC04IDgtOGg4MGM0LjQyIDAgOCAzLjU4IDggOHYxNmMwIDQuNDItMy41OCA4LTggOEg3MmMtNC40MiAwLTgtMy41OC04LTh6bTE0NCAyNjMuODhWNDQwYzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LTh2LTI0LjI5Yy0xMS4yOS0uNTgtMjIuMjctNC41Mi0zMS4zNy0xMS4zNS0zLjktMi45My00LjEtOC43Ny0uNTctMTIuMTRsMTEuNzUtMTEuMjFjMi43Ny0yLjY0IDYuODktMi43NiAxMC4xMy0uNzMgMy44NyAyLjQyIDguMjYgMy43MiAxMi44MiAzLjcyaDI4LjExYzYuNSAwIDExLjgtNS45MiAxMS44LTEzLjE5IDAtNS45NS0zLjYxLTExLjE5LTguNzctMTIuNzNsLTQ1LTEzLjVjLTE4LjU5LTUuNTgtMzEuNTgtMjMuNDItMzEuNTgtNDMuMzkgMC0yNC41MiAxOS4wNS00NC40NCA0Mi42Ny00NS4wN1YyMzJjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MjQuMjljMTEuMjkuNTggMjIuMjcgNC41MSAzMS4zNyAxMS4zNSAzLjkgMi45MyA0LjEgOC43Ny41NyAxMi4xNGwtMTEuNzUgMTEuMjFjLTIuNzcgMi42NC02Ljg5IDIuNzYtMTAuMTMuNzMtMy44Ny0yLjQzLTguMjYtMy43Mi0xMi44Mi0zLjcyaC0yOC4xMWMtNi41IDAtMTEuOCA1LjkyLTExLjggMTMuMTkgMCA1Ljk1IDMuNjEgMTEuMTkgOC43NyAxMi43M2w0NSAxMy41YzE4LjU5IDUuNTggMzEuNTggMjMuNDIgMzEuNTggNDMuMzkgMCAyNC41My0xOS4wNSA0NC40NC00Mi42NyA0NS4wN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUludm9pY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDI1Nkg5NnY2NGgxOTJ2LTY0em04OS0xNTFMMjc5LjEgN2MtNC41LTQuNS0xMC42LTctMTctN0gyNTZ2MTI4aDEyOHYtNi4xYzAtNi4zLTIuNS0xMi40LTctMTYuOXptLTE1MyAzMVYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0ek02NCA3MmMwLTQuNDIgMy41OC04IDgtOGg4MGM0LjQyIDAgOCAzLjU4IDggOHYxNmMwIDQuNDItMy41OCA4LTggOEg3MmMtNC40MiAwLTgtMy41OC04LThWNzJ6bTAgNjRjMC00LjQyIDMuNTgtOCA4LThoODBjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhINzJjLTQuNDIgMC04LTMuNTgtOC04di0xNnptMjU2IDMwNGMwIDQuNDItMy41OCA4LTggOGgtODBjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGg4MGM0LjQyIDAgOCAzLjU4IDggOHYxNnptMC0yMDB2OTZjMCA4Ljg0LTcuMTYgMTYtMTYgMTZIODBjLTguODQgMC0xNi03LjE2LTE2LTE2di05NmMwLTguODQgNy4xNi0xNiAxNi0xNmgyMjRjOC44NCAwIDE2IDcuMTYgMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVNZWRpY2FsQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAxMzZWMEg4OEM3NC43IDAgNjQgMTAuNyA2NCAyNHYyMzJIOGMtNC40IDAtOCAzLjYtOCA4djE2YzAgNC40IDMuNiA4IDggOGgxNDAuOWMzIDAgNS44IDEuNyA3LjIgNC40bDE5LjkgMzkuOCA1Ni44LTExMy43YzIuOS01LjkgMTEuNC01LjkgMTQuMyAwbDM0LjcgNjkuNUgzNTJjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZoLTg5LjlMMjQwIDI3NS44bC01Ni44IDExMy43Yy0yLjkgNS45LTExLjQgNS45LTE0LjMgMEwxMzQuMSAzMjBINjR2MTY4YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMzEyYy0xMy4yIDAtMjQtMTAuOC0yNC0yNHptMTUzLTMxTDM0My4xIDdjLTQuNS00LjUtMTAuNi03LTE3LTdIMzIwdjEyOGgxMjh2LTYuMWMwLTYuMy0yLjUtMTIuNC03LTE2Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVNZWRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3NyAxMDVMMjc5LjEgN2MtNC41LTQuNS0xMC42LTctMTctN0gyNTZ2MTI4aDEyOHYtNi4xYzAtNi4zLTIuNS0xMi40LTctMTYuOXptLTE1MyAzMVYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0em02NCAxNjB2NDhjMCA0LjQtMy42IDgtOCA4aC01NnY1NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTU2aC01NmMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoNTZ2LTU2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2NTZoNTZjNC40IDAgOCAzLjYgOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlUGRmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4MS45IDI1Ni4xYy01LTE2LTQuOS00Ni45LTItNDYuOSA4LjQgMCA3LjYgMzYuOSAyIDQ2Ljl6bS0xLjcgNDcuMmMtNy43IDIwLjItMTcuMyA0My4zLTI4LjQgNjIuNyAxOC4zLTcgMzktMTcuMiA2Mi45LTIxLjktMTIuNy05LjYtMjQuOS0yMy40LTM0LjUtNDAuOHpNODYuMSA0MjguMWMwIC44IDEzLjItNS40IDM0LjktNDAuMi02LjcgNi4zLTI5LjEgMjQuNS0zNC45IDQwLjJ6TTI0OCAxNjBoMTM2djMyOGMwIDEzLjMtMTAuNyAyNC0yNCAyNEgyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRWMjRDMCAxMC43IDEwLjcgMCAyNCAwaDIwMHYxMzZjMCAxMy4yIDEwLjggMjQgMjQgMjR6bS04IDE3MS44Yy0yMC0xMi4yLTMzLjMtMjktNDIuNy01My44IDQuNS0xOC41IDExLjYtNDYuNiA2LjItNjQuMi00LjctMjkuNC00Mi40LTI2LjUtNDcuOC02LjgtNSAxOC4zLS40IDQ0LjEgOC4xIDc3LTExLjYgMjcuNi0yOC43IDY0LjYtNDAuOCA4NS44LS4xIDAtLjEuMS0uMi4xLTI3LjEgMTMuOS03My42IDQ0LjUtNTQuNSA2OCA1LjYgNi45IDE2IDEwIDIxLjUgMTAgMTcuOSAwIDM1LjctMTggNjEuMS02MS44IDI1LjgtOC41IDU0LjEtMTkuMSA3OS0yMy4yIDIxLjcgMTEuOCA0Ny4xIDE5LjUgNjQgMTkuNSAyOS4yIDAgMzEuMi0zMiAxOS43LTQzLjQtMTMuOS0xMy42LTU0LjMtOS43LTczLjYtNy4yek0zNzcgMTA1TDI3OSA3Yy00LjUtNC41LTEwLjYtNy0xNy03aC02djEyOGgxMjh2LTYuMWMwLTYuMy0yLjUtMTIuNC03LTE2Ljl6bS03NC4xIDI1NS4zYzQuMS0yLjctMi41LTExLjktNDIuOC05IDM3LjEgMTUuOCA0Mi44IDkgNDIuOCA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlUG93ZXJwb2ludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTMuNyAyNzEuMmM4LjggMCAxNS41IDIuNyAyMC4zIDguMSA5LjYgMTAuOSA5LjggMzIuNy0uMiA0NC4xLTQuOSA1LjYtMTEuOSA4LjUtMjEuMSA4LjVoLTI2Ljl2LTYwLjdoMjcuOXpNMzc3IDEwNUwyNzkgN2MtNC41LTQuNS0xMC42LTctMTctN2gtNnYxMjhoMTI4di02LjFjMC02LjMtMi41LTEyLjQtNy0xNi45em0tMTUzIDMxVjBIMjRDMTAuNyAwIDAgMTAuNyAwIDI0djQ2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bTUzIDE2NS4yYzAgOTAuMy04OC44IDc3LjYtMTExLjEgNzcuNlY0MzZjMCA2LjYtNS40IDEyLTEyIDEyaC0zMC44Yy02LjYgMC0xMi01LjQtMTItMTJWMjM2LjJjMC02LjYgNS40LTEyIDEyLTEyaDgxYzQ0LjUgMCA3Mi45IDMyLjggNzIuOSA3N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZVByZXNjcmlwdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMTM2VjBIMjRDMTAuNyAwIDAgMTAuNyAwIDI0djQ2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bTY4LjUzIDE3OS40OGwxMS4zMSAxMS4zMWM2LjI1IDYuMjUgNi4yNSAxNi4zOCAwIDIyLjYzbC0yOS45IDI5LjlMMzA0IDQwOS4zOGM2LjI1IDYuMjUgNi4yNSAxNi4zOCAwIDIyLjYzbC0xMS4zMSAxMS4zMWMtNi4yNSA2LjI1LTE2LjM4IDYuMjUtMjIuNjMgMEwyNDAgNDEzLjI1bC0zMC4wNiAzMC4wNmMtNi4yNSA2LjI1LTE2LjM4IDYuMjUtMjIuNjMgMEwxNzYgNDMyYy02LjI1LTYuMjUtNi4yNS0xNi4zOCAwLTIyLjYzbDMwLjA2LTMwLjA2TDE0Ni43NCAzMjBIMTI4djQ4YzAgOC44NC03LjE2IDE2LTE2IDE2SDk2Yy04Ljg0IDAtMTYtNy4xNi0xNi0xNlYyMDhjMC04Ljg0IDcuMTYtMTYgMTYtMTZoODBjMzUuMzUgMCA2NCAyOC42NSA2NCA2NCAwIDI0LjIyLTEzLjYyIDQ1LjA1LTMzLjQ2IDU1LjkyTDI0MCAzNDUuMzhsMjkuOS0yOS45YzYuMjUtNi4yNSAxNi4zOC02LjI1IDIyLjYzIDB6TTE3NiAyNzJoLTQ4di0zMmg0OGM4LjgyIDAgMTYgNy4xOCAxNiAxNnMtNy4xOCAxNi0xNiAxNnptMjA4LTE1MC4xdjYuMUgyNTZWMGg2LjFjNi40IDAgMTIuNSAyLjUgMTcgN2w5Ny45IDk4YzQuNSA0LjUgNyAxMC42IDcgMTYuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZVNpZ25hdHVyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTguMTcgNDI0LjE0Yy0yLjk1LTUuOTItOC4wOS02LjUyLTEwLjE3LTYuNTJzLTcuMjIuNTktMTAuMDIgNi4xOWwtNy42NyAxNS4zNGMtNi4zNyAxMi43OC0yNS4wMyAxMS4zNy0yOS40OC0yLjA5TDE0NCAzODYuNTlsLTEwLjYxIDMxLjg4Yy01Ljg5IDE3LjY2LTIyLjM4IDI5LjUzLTQxIDI5LjUzSDgwYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnM3LjE2LTE2IDE2LTE2aDEyLjM5YzQuODMgMCA5LjExLTMuMDggMTAuNjQtNy42NmwxOC4xOS01NC42NGMzLjMtOS44MSAxMi40NC0xNi40MSAyMi43OC0xNi40MXMxOS40OCA2LjU5IDIyLjc3IDE2LjQxbDEzLjg4IDQxLjY0YzE5Ljc1LTE2LjE5IDU0LjA2LTkuNyA2NiAxNC4xNiAxLjg5IDMuNzggNS40OSA1Ljk1IDkuMzYgNi4yNnYtODIuMTJsMTI4LTEyNy4wOVYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNFYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0di00MGwtMTI4LS4xMWMtMTYuMTItLjMxLTMwLjU4LTkuMjgtMzcuODMtMjMuNzV6TTM4NCAxMjEuOWMwLTYuMy0yLjUtMTIuNC03LTE2LjlMMjc5LjEgN2MtNC41LTQuNS0xMC42LTctMTctN0gyNTZ2MTI4aDEyOHYtNi4xem0tOTYgMjI1LjA2VjQxNmg2OC45OWwxNjEuNjgtMTYyLjc4LTY3Ljg4LTY3Ljg4TDI4OCAzNDYuOTZ6bTI4MC41NC0xNzkuNjNsLTMxLjg3LTMxLjg3Yy05Ljk0LTkuOTQtMjYuMDctOS45NC0zNi4wMSAwbC0yNy4yNSAyNy4yNSA2Ny44OCA2Ny44OCAyNy4yNS0yNy4yNWM5Ljk1LTkuOTQgOS45NS0yNi4wNyAwLTM2LjAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlVXBsb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxMzZWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHptNjUuMTggMjE2LjAxSDIyNHY4MGMwIDguODQtNy4xNiAxNi0xNiAxNmgtMzJjLTguODQgMC0xNi03LjE2LTE2LTE2di04MEg5NC44MmMtMTQuMjggMC0yMS40MS0xNy4yOS0xMS4yNy0yNy4zNmw5Ni40Mi05NS43YzYuNjUtNi42MSAxNy4zOS02LjYxIDI0LjA0IDBsOTYuNDIgOTUuN2MxMC4xNSAxMC4wNyAzLjAzIDI3LjM2LTExLjI1IDI3LjM2ek0zNzcgMTA1TDI3OS4xIDdjLTQuNS00LjUtMTAuNi03LTE3LTdIMjU2djEyOGgxMjh2LTYuMWMwLTYuMy0yLjUtMTIuNC03LTE2Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVWaWRlbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMTIxLjk0MVYxMjhIMjU2VjBoNi4wNTljNi4zNjUgMCAxMi40NyAyLjUyOSAxNi45NzEgNy4wMjlsOTcuOTQxIDk3Ljk0MUEyNC4wMDUgMjQuMDA1IDAgMCAxIDM4NCAxMjEuOTQxek0yMjQgMTM2VjBIMjRDMTAuNzQ1IDAgMCAxMC43NDUgMCAyNHY0NjRjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDMzNmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bTk2IDE0NC4wMTZ2MTExLjk2M2MwIDIxLjQ0NS0yNS45NDMgMzEuOTk4LTQwLjk3MSAxNi45NzFMMjI0IDM1My45NDFWMzkyYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEg4OGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0VjI4MGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjRoMTEyYzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHYzOC4wNTlsNTUuMDI5LTU1LjAxM2MxNS4wMTEtMTUuMDEgNDAuOTcxLTQuNDkxIDQwLjk3MSAxNi45N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZVdvcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDEzNlYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0em01Ny4xIDEyMEgzMDVjNy43IDAgMTMuNCA3LjEgMTEuNyAxNC43bC0zOCAxNjhjLTEuMiA1LjUtNi4xIDkuMy0xMS43IDkuM2gtMzhjLTUuNSAwLTEwLjMtMy44LTExLjYtOS4xLTI1LjgtMTAzLjUtMjAuOC04MS4yLTI1LjYtMTEwLjVoLS41Yy0xLjEgMTQuMy0yLjQgMTcuNC0yNS42IDExMC41LTEuMyA1LjMtNi4xIDkuMS0xMS42IDkuMUgxMTdjLTUuNiAwLTEwLjUtMy45LTExLjctOS40bC0zNy44LTE2OGMtMS43LTcuNSA0LTE0LjYgMTEuNy0xNC42aDI0LjVjNS43IDAgMTAuNyA0IDExLjggOS43IDE1LjYgNzggMjAuMSAxMDkuNSAyMSAxMjIuMiAxLjYtMTAuMiA3LjMtMzIuNyAyOS40LTEyMi43IDEuMy01LjQgNi4xLTkuMSAxMS43LTkuMWgyOS4xYzUuNiAwIDEwLjQgMy44IDExLjcgOS4yIDI0IDEwMC40IDI4LjggMTI0IDI5LjYgMTI5LjQtLjItMTEuMi0yLjYtMTcuOCAyMS42LTEyOS4yIDEtNS42IDUuOS05LjUgMTEuNS05LjV6TTM4NCAxMjEuOXY2LjFIMjU2VjBoNi4xYzYuNCAwIDEyLjUgMi41IDE3IDdsOTcuOSA5OGM0LjUgNC41IDcgMTAuNiA3IDE2Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDEzNlYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0em0xNjAtMTQuMXY2LjFIMjU2VjBoNi4xYzYuNCAwIDEyLjUgMi41IDE3IDdsOTcuOSA5OGM0LjUgNC41IDcgMTAuNiA3IDE2Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGxEcmlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiAzMjBzLTY0IDkyLjY1LTY0IDEyOGMwIDM1LjM1IDI4LjY2IDY0IDY0IDY0czY0LTI4LjY1IDY0LTY0LTY0LTEyOC02NC0xMjh6bS05LjM3LTEwMi45NEwyOTQuOTQgOS4zN0MyODguNjkgMy4xMiAyODAuNSAwIDI3Mi4zMSAwcy0xNi4zOCAzLjEyLTIyLjYyIDkuMzdsLTgxLjU4IDgxLjU4TDgxLjkzIDQuNzZjLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYyIDBMMzYuNjkgMjcuMzhjLTYuMjQgNi4yNS02LjI0IDE2LjM4IDAgMjIuNjJsODYuMTkgODYuMTgtOTQuNzYgOTQuNzZjLTM3LjQ5IDM3LjQ4LTM3LjQ5IDk4LjI2IDAgMTM1Ljc1bDExNy4xOSAxMTcuMTljMTguNzQgMTguNzQgNDMuMzEgMjguMTIgNjcuODcgMjguMTIgMjQuNTcgMCA0OS4xMy05LjM3IDY3Ljg3LTI4LjEybDIyMS41Ny0yMjEuNTdjMTIuNS0xMi41IDEyLjUtMzIuNzUuMDEtNDUuMjV6bS0xMTYuMjIgNzAuOTdINjUuOTNjMS4zNi0zLjg0IDMuNTctNy45OCA3LjQzLTExLjgzbDEzLjE1LTEzLjE1IDgxLjYxLTgxLjYxIDU4LjYgNTguNmMxMi40OSAxMi40OSAzMi43NSAxMi40OSA0NS4yNCAwczEyLjQ5LTMyLjc1IDAtNDUuMjRsLTU4LjYtNTguNiA1OC45NS01OC45NSAxNjIuNDQgMTYyLjQ0LTQ4LjM0IDQ4LjM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMi42MyAyMTcuMDZMMjk0Ljk0IDkuMzdDMjg4LjY5IDMuMTIgMjgwLjUgMCAyNzIuMzEgMHMtMTYuMzggMy4xMi0yMi42MiA5LjM3bC04MS41OCA4MS41OEw4MS45MyA0Ljc3Yy02LjI0LTYuMjUtMTYuMzgtNi4yNS0yMi42MiAwTDM2LjY5IDI3LjM4Yy02LjI0IDYuMjUtNi4yNCAxNi4zOCAwIDIyLjYzbDg2LjE5IDg2LjE4LTk0Ljc2IDk0Ljc2Yy0zNy40OSAzNy40OS0zNy40OSA5OC4yNiAwIDEzNS43NWwxMTcuMTkgMTE3LjE5YzE4Ljc1IDE4Ljc0IDQzLjMxIDI4LjEyIDY3Ljg3IDI4LjEyIDI0LjU3IDAgNDkuMTMtOS4zNyA2Ny44OC0yOC4xMmwyMjEuNTctMjIxLjU3YzEyLjQ5LTEyLjUgMTIuNDktMzIuNzYgMC00NS4yNnptLTExNi4yMiA3MC45N0g2NS45M2MxLjM2LTMuODQgMy41Ny03Ljk4IDcuNDMtMTEuODNsMTMuMTUtMTMuMTUgODEuNjEtODEuNjEgNTguNjEgNTguNmMxMi40OSAxMi40OSAzMi43NSAxMi40OSA0NS4yNCAwIDEyLjQ5LTEyLjQ5IDEyLjQ5LTMyLjc1IDAtNDUuMjRsLTU4LjYxLTU4LjYgNTguOTUtNTguOTUgMTYyLjQ1IDE2Mi40NC00OC4zNSA0OC4zNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODggNjRoLTh2MjBjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEyVjY0SDk2djIwYzAgNi42LTUuNCAxMi0xMiAxMkg0NGMtNi42IDAtMTItNS40LTEyLTEyVjY0aC04QzEwLjcgNjQgMCA3NC43IDAgODh2MzM2YzAgMTMuMyAxMC43IDI0IDI0IDI0aDh2LTIwYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2MjBoMzIwdi0yMGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjIwaDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWODhjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTk2IDM3MmMwIDYuNi01LjQgMTItMTIgMTJINDRjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MHptMC05NmMwIDYuNi01LjQgMTItMTIgMTJINDRjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MHptMC05NmMwIDYuNi01LjQgMTItMTIgMTJINDRjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MHptMjcyIDIwOGMwIDYuNi01LjQgMTItMTIgMTJIMTU2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTk2YzAtNi42IDUuNC0xMiAxMi0xMmgyMDBjNi42IDAgMTIgNS40IDEyIDEydjk2em0wLTE2OGMwIDYuNi01LjQgMTItMTIgMTJIMTU2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTk2YzAtNi42IDUuNC0xMiAxMi0xMmgyMDBjNi42IDAgMTIgNS40IDEyIDEydjk2em0xMTIgMTUyYzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MHptMC05NmMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDB6bTAtOTZjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWx0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg3Ljk3NiAwSDI0LjAyOEMyLjcxIDAtOC4wNDcgMjUuODY2IDcuMDU4IDQwLjk3MUwxOTIgMjI1Ljk0MVY0MzJjMCA3LjgzMSAzLjgyMSAxNS4xNyAxMC4yMzcgMTkuNjYybDgwIDU1Ljk4QzI5OC4wMiA1MTguNjkgMzIwIDUwNy40OTMgMzIwIDQ4Ny45OFYyMjUuOTQxbDE4NC45NDctMTg0Ljk3QzUyMC4wMjEgMjUuODk2IDUwOS4zMzggMCA0ODcuOTc2IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbmdlcnByaW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1Ni4xMiAyNDUuOTZjLTEzLjI1IDAtMjQgMTAuNzQtMjQgMjQgMS4xNCA3Mi4yNS04LjE0IDE0MS45LTI3LjcgMjExLjU1LTIuNzMgOS43MiAyLjE1IDMwLjQ5IDIzLjEyIDMwLjQ5IDEwLjQ4IDAgMjAuMTEtNi45MiAyMy4wOS0xNy41MiAxMy41My00Ny45MSAzMS4wNC0xMjUuNDEgMjkuNDgtMjI0LjUyLjAxLTEzLjI1LTEwLjczLTI0LTIzLjk5LTI0em0tLjg2LTgxLjczQzE5NCAxNjQuMTYgMTUxLjI1IDIxMS4zIDE1Mi4xIDI2NS4zMmMuNzUgNDcuOTQtMy43NSA5NS45MS0xMy4zNyAxNDIuNTUtMi42OSAxMi45OCA1LjY3IDI1LjY5IDE4LjY0IDI4LjM2IDEzLjA1IDIuNjcgMjUuNjctNS42NiAyOC4zNi0xOC42NCAxMC4zNC01MC4wOSAxNS4xNy0xMDEuNTggMTQuMzctMTUzLjAyLS40MS0yNS45NSAxOS45Mi01Mi40OSA1NC40NS01Mi4zNCAzMS4zMS40NyA1Ny4xNSAyNS4zNCA1Ny42MiA1NS40Ny43NyA0OC4wNS0yLjgxIDk2LjMzLTEwLjYxIDE0My41NS0yLjE3IDEzLjA2IDYuNjkgMjUuNDIgMTkuNzYgMjcuNTggMTkuOTcgMy4zMyAyNi44MS0xNS4xIDI3LjU4LTE5Ljc3IDguMjgtNTAuMDMgMTIuMDYtMTAxLjIxIDExLjI3LTE1Mi4xMS0uODgtNTUuOC00Ny45NC0xMDEuODgtMTA0LjkxLTEwMi43MnptLTExMC42OS0xOS43OGMtMTAuMy04LjM0LTI1LjM3LTYuOC0zMy43NiAzLjQ4LTI1LjYyIDMxLjUtMzkuMzkgNzEuMjgtMzguNzUgMTEyIC41OSAzNy41OC0yLjQ3IDc1LjI3LTkuMTEgMTEyLjA1LTIuMzQgMTMuMDUgNi4zMSAyNS41MyAxOS4zNiAyNy44OSAyMC4xMSAzLjUgMjcuMDctMTQuODEgMjcuODktMTkuMzYgNy4xOS0zOS44NCAxMC41LTgwLjY2IDkuODYtMTIxLjMzLS40Ny0yOS44OCA5LjItNTcuODggMjgtODAuOTcgOC4zNS0xMC4yOCA2Ljc5LTI1LjM5LTMuNDktMzMuNzZ6bTEwOS40Ny02Mi4zM2MtMTUuNDEtLjQxLTMwLjg3IDEuNDQtNDUuNzggNC45Ny0xMi44OSAzLjA2LTIwLjg3IDE1Ljk4LTE3LjgzIDI4Ljg5IDMuMDYgMTIuODkgMTYgMjAuODMgMjguODkgMTcuODMgMTEuMDUtMi42MSAyMi40Ny0zLjc3IDM0LTMuNjkgNzUuNDMgMS4xMyAxMzcuNzMgNjEuNSAxMzguODggMTM0LjU4LjU5IDM3Ljg4LTEuMjggNzYuMTEtNS41OCAxMTMuNjMtMS41IDEzLjE3IDcuOTUgMjUuMDggMjEuMTEgMjYuNTggMTYuNzIgMS45NSAyNS41MS0xMS44OCAyNi41OC0yMS4xMWE5MjkuMDYgOTI5LjA2IDAgMCAwIDUuODktMTE5Ljg1Yy0xLjU2LTk4Ljc1LTg1LjA3LTE4MC4zMy0xODYuMTYtMTgxLjgzem0yNTIuMDcgMTIxLjQ1Yy0yLjg2LTEyLjkyLTE1LjUxLTIxLjItMjguNjEtMTguMjctMTIuOTQgMi44Ni0yMS4xMiAxNS42Ni0xOC4yNiAyOC42MSA0LjcxIDIxLjQxIDQuOTEgMzcuNDEgNC43IDYxLjYtLjExIDEzLjI3IDEwLjU1IDI0LjA5IDIzLjggMjQuMmguMmMxMy4xNyAwIDIzLjg5LTEwLjYxIDI0LTIzLjguMTgtMjIuMTguNC00NC4xMS01LjgzLTcyLjM0em0tNDAuMTItOTAuNzJDNDE3LjI5IDQzLjQ2IDMzNy42IDEuMjkgMjUyLjgxLjAyIDE4My4wMi0uODIgMTE4LjQ3IDI0LjkxIDcwLjQ2IDcyLjk0IDI0LjA5IDExOS4zNy0uOSAxODEuMDQuMTQgMjQ2LjY1bC0uMTIgMjEuNDdjLS4zOSAxMy4yNSAxMC4wMyAyNC4zMSAyMy4yOCAyNC42OS4yMy4wMi40OC4wMi43Mi4wMiAxMi45MiAwIDIzLjU5LTEwLjMgMjMuOTctMjMuM2wuMTYtMjMuNjRjLS44My01Mi41IDE5LjE2LTEwMS44NiA1Ni4yOC0xMzkgMzguNzYtMzguOCA5MS4zNC01OS42NyAxNDcuNjgtNTguODYgNjkuNDUgMS4wMyAxMzQuNzMgMzUuNTYgMTc0LjYyIDkyLjM5IDcuNjEgMTAuODYgMjIuNTYgMTMuNDUgMzMuNDIgNS44NiAxMC44NC03LjYyIDEzLjQ2LTIyLjU5IDUuODQtMzMuNDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcmVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIzLjU2IDUxLjJjLTIwLjggMTkuMy0zOS41OCAzOS41OS01Ni4yMiA1OS45N0MyNDAuMDggNzMuNjIgMjA2LjI4IDM1LjUzIDE2OCAwIDY5Ljc0IDkxLjE3IDAgMjA5Ljk2IDAgMjgxLjYgMCA0MDguODUgMTAwLjI5IDUxMiAyMjQgNTEyczIyNC0xMDMuMTUgMjI0LTIzMC40YzAtNTMuMjctNTEuOTgtMTYzLjE0LTEyNC40NC0yMzAuNHptLTE5LjQ3IDM0MC42NUMyODIuNDMgNDA3LjAxIDI1NS43MiA0MTYgMjI2Ljg2IDQxNiAxNTQuNzEgNDE2IDk2IDM2OC4yNiA5NiAyOTAuNzVjMC0zOC42MSAyNC4zMS03Mi42MyA3Mi43OS0xMzAuNzUgNi45MyA3Ljk4IDk4LjgzIDEyNS4zNCA5OC44MyAxMjUuMzRsNTguNjMtNjYuODhjNC4xNCA2Ljg1IDcuOTEgMTMuNTUgMTEuMjcgMTkuOTcgMjcuMzUgNTIuMTkgMTUuODEgMTE4Ljk3LTMzLjQzIDE1My40MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlyZUV4dGluZ3Vpc2hlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzQuMDI3IDI2LjMyOWwtMTY4IDI4QzI1NC42OTMgNTYuMjE4IDI1NiA2Ny44IDI1NiA3MmgtNTguMzMyQzIwOC4zNTMgMzYuMTA4IDE4MS40NDYgMCAxNDQgMGMtMzkuNDM1IDAtNjYuMzY4IDM5LjY3Ni01Mi4yMjggNzYuMjAzLTUyLjAzOSAxMy4wNTEtNzUuMzgxIDU0LjIxMy05MC4wNDkgOTAuODg0LTQuOTIzIDEyLjMwNyAxLjA2MyAyNi4yNzQgMTMuMzcgMzEuMTk3IDEyLjMxNyA0LjkyNiAyNi4yNzktMS4wNzUgMzEuMTk2LTEzLjM3Qzc1LjA1OCAxMTIuOTkgMTA2Ljk2NCAxMjAgMTY4IDEyMHYyNy4wNzZjLTQxLjU0MyAxMC44NjItNzIgNDkuMjM1LTcyIDk0LjEyOVY0ODhjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDE0NGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMjQwYzAtNDQuNzMxLTMwLjU5Ni04Mi4zMTItNzItOTIuOTdWMTIwaDQwYzAgMi45NzQtMS43MDMgMTUuNzE2IDEwLjAyNyAxNy42NzFsMTY4IDI4QzQ0MS4zNDIgMTY2Ljg5IDQ0OCAxNjEuMjUgNDQ4IDE1My44MzRWMzguMTY2YzAtNy40MTYtNi42NTgtMTMuMDU2LTEzLjk3My0xMS44Mzd6TTE0NCA3MmMtOC44MjIgMC0xNi03LjE3OC0xNi0xNnM3LjE3OC0xNiAxNi0xNiAxNiA3LjE3OCAxNiAxNi03LjE3OCAxNi0xNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTYgMjMuODZjMC0yMy44LTMwLjY1LTMyLjc3LTQ0LjE1LTEzLjA0QzQ4IDE5MS44NSAyMjQgMjAwIDIyNCAyODhjMCAzNS42My0yOS4xMSA2NC40Ni02NC44NSA2My45OS0zNS4xNy0uNDUtNjMuMTUtMjkuNzctNjMuMTUtNjQuOTR2LTg1LjUxYzAtMjEuNy0yNi40Ny0zMi4yMy00MS40My0xNi41QzI3LjggMjEzLjE2IDAgMjYxLjMzIDAgMzIwYzAgMTA1Ljg3IDg2LjEzIDE5MiAxOTIgMTkyczE5Mi04Ni4xMyAxOTItMTkyYzAtMTcwLjI5LTE2OC0xOTMtMTY4LTI5Ni4xNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlyc3RBaWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoNDhWMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHptMTI4IDQwMGgzMjBWMzJIMTI4djQ0OHptNjQtMjQ4YzAtNC40IDMuNi04IDgtOGg1NnYtNTZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHY1Nmg1NmM0LjQgMCA4IDMuNiA4IDh2NDhjMCA0LjQtMy42IDgtOCA4aC01NnY1NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTU2aC01NmMtNC40IDAtOC0zLjYtOC04di00OHpNNTI4IDMyaC00OHY0NDhoNDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzI3LjEgOTZjLTg5Ljk3IDAtMTY4LjU0IDU0Ljc3LTIxMi4yNyAxMDEuNjNMMjcuNSAxMzEuNThjLTEyLjEzLTkuMTgtMzAuMjQuNi0yNy4xNCAxNC42NkwyNC41NCAyNTYgLjM1IDM2NS43N2MtMy4xIDE0LjA2IDE1LjAxIDIzLjgzIDI3LjE0IDE0LjY2bDg3LjMzLTY2LjA1QzE1OC41NSAzNjEuMjMgMjM3LjEzIDQxNiAzMjcuMSA0MTYgNDY0LjU2IDQxNiA1NzYgMjg4IDU3NiAyNTZTNDY0LjU2IDk2IDMyNy4xIDk2em04Ny40MyAxODRjLTEzLjI1IDAtMjQtMTAuNzUtMjQtMjQgMC0xMy4yNiAxMC43NS0yNCAyNC0yNCAxMy4yNiAwIDI0IDEwLjc0IDI0IDI0IDAgMTMuMjUtMTAuNzUgMjQtMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpc3RSYWlzZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU1Ljk4IDE2MFYxNmMwLTguODQtNy4xNi0xNi0xNi0xNmgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djE0Ni45M2M1LjAyLTEuNzggMTAuMzQtMi45MyAxNS45Ny0yLjkzaDQ4LjAzem0xMjggOTUuOTljLS4wMS0zNS4zNC0yOC42Ni02My45OS02My45OS02My45OUgyMDcuODVjLTguNzggMC0xNS45IDcuMDctMTUuOSAxNS44NXYuNTZjMCAyNi4yNyAyMS4zIDQ3LjU5IDQ3LjU3IDQ3LjU5aDM1LjI2YzkuNjggMCAxMy4yIDMuNTggMTMuMiA4djE2LjJjMCA0LjI5LTMuNTkgNy43OC03Ljg4IDgtNDQuNTIgMi4yOC02NC4xNiAyNC43MS05Ni4wNSA3Mi41NWwtNi4zMSA5LjQ3YTcuOTk0IDcuOTk0IDAgMCAxLTExLjA5IDIuMjJsLTEzLjMxLTguODhhNy45OTQgNy45OTQgMCAwIDEtMi4yMi0xMS4wOWw2LjMxLTkuNDdjMTUuNzMtMjMuNiAzMC4yLTQzLjI2IDQ3LjMxLTU4LjA4LTE3LjI3LTUuNTEtMzEuNC0xOC4xMi0zOC44Ny0zNC40NS02LjU5IDMuNDEtMTMuOTYgNS41Mi0yMS44NyA1LjUyaC0zMmMtMTIuMzQgMC0yMy40OS00LjgxLTMyLTEyLjQ4QzcxLjQ4IDI1MS4xOSA2MC4zMyAyNTYgNDggMjU2SDE2Yy01LjY0IDAtMTAuOTctMS4xNS0xNi0yLjk1djc3LjkzYzAgMzMuOTUgMTMuNDggNjYuNSAzNy40OSA5MC41MUw2My45OSA0NDh2NjRoMjU1Ljk4di02My45NmwzNS45MS0zNS45MkE5Ni4wMzUgOTYuMDM1IDAgMCAwIDM4NCAzNDQuMjFsLS4wMi04OC4yMnptLTMyLjAxLTkwLjA5VjQ4YzAtOC44NC03LjE2LTE2LTE2LTE2aC0zMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTEyaDMyYzExLjI4IDAgMjEuOTQgMi4zMSAzMiA1Ljl6TTE2IDIyNGgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlY4MGMwLTguODQtNy4xNi0xNi0xNi0xNkgxNkM3LjE2IDY0IDAgNzEuMTYgMCA4MHYxMjhjMCA4Ljg0IDcuMTYgMTYgMTYgMTZ6bTk1Ljk5IDBoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZWNDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTMyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNjBjMCA4Ljg0IDcuMTYgMTYgMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZsYWdDaGVja2VyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQzLjIgMTg5LjlWMjU4YzI2LjEgNS45IDQ5LjMgMTUuNiA3My42IDIyLjN2LTY4LjJjLTI2LTUuOC00OS40LTE1LjUtNzMuNi0yMi4yem0yMjMuMy0xMjNjLTM0LjMgMTUuOS03Ni41IDMxLjktMTE3IDMxLjlDMjk2IDk4LjggMjUxLjcgNjQgMTg0LjMgNjRjLTI1IDAtNDcuMyA0LjQtNjggMTIgMi44LTcuMyA0LjEtMTUuMiAzLjYtMjMuNkMxMTguMSAyNCA5NC44IDEuMiA2Ni4zIDAgMzQuMy0xLjMgOCAyNC4zIDggNTZjMCAxOSA5LjUgMzUuOCAyNCA0NS45VjQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxNmMxMy4zIDAgMjQtMTAuNyAyNC0yNHYtOTQuNGMyOC4zLTEyLjEgNjMuNi0yMi4xIDExNC40LTIyLjEgNTMuNiAwIDk3LjggMzQuOCAxNjUuMiAzNC44IDQ4LjIgMCA4Ni43LTE2LjMgMTIyLjUtNDAuOSA4LjctNiAxMy44LTE1LjggMTMuOC0yNi40Vjk1LjljLjEtMjMuMy0yNC4yLTM4LjgtNDUuNC0yOXpNMTY5LjYgMzI1LjVjLTI1LjggMi43LTUwIDguMi03My42IDE2LjZ2LTcwLjVjMjYuMi05LjMgNDcuNS0xNSA3My42LTE3LjR6TTQ2NCAxOTFjLTIzLjYgOS44LTQ2LjMgMTkuNS03My42IDIzLjlWMjg2YzI0LjgtMy40IDUxLjQtMTEuOCA3My42LTI2djcwLjVjLTI1LjEgMTYuMS00OC41IDI0LjctNzMuNiAyNy4xVjI4NmMtMjcgMy43LTQ3LjkgMS41LTczLjYtNS42djY3LjRjLTIzLjktNy40LTQ3LjMtMTYuNy03My42LTIxLjNWMjU4Yy0xOS43LTQuNC00MC44LTYuOC03My42LTMuOHYtNzBjLTIyLjQgMy4xLTQ0LjYgMTAuMi03My42IDIwLjl2LTcwLjVjMzMuMi0xMi4yIDUwLjEtMTkuOCA3My42LTIydjcxLjZjMjctMy43IDQ4LjQtMS4zIDczLjYgNS43di02Ny40YzIzLjcgNy40IDQ3LjIgMTYuNyA3My42IDIxLjN2NjguNGMyMy43IDUuMyA0Ny42IDYuOSA3My42IDIuN1YxNDNjMjctNC44IDUyLjMtMTMuNiA3My42LTIyLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZsYWdVc2EgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJ2NDY0YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzJDNjQgMTQuMyA0OS43IDAgMzIgMHptMjY3LjkgMzAzLjZjLTU3LjItMTUuMS0xMTEuNy0yOC44LTIwMy45IDExLjFWMzg0YzE4NS43LTkyLjIgMjIxLjcgNTMuMyAzOTcuNS0yMy4xIDExLjQtNSAxOC41LTE2LjUgMTguNS0yOC44di0zNmMtNDMuNiAxNy4zLTgwLjIgMjQuMS0xMTIuMSAyNC4xLTM3LjQtLjEtNjguOS04LjQtMTAwLTE2LjZ6bTAtOTZjLTU3LjItMTUuMS0xMTEuNy0yOC44LTIwMy45IDExLjF2NjEuNWM5NC44LTM3LjYgMTU0LjYtMjIuNyAyMTIuMS03LjYgNTcuMiAxNS4xIDExMS43IDI4LjggMjAzLjktMTEuMVYyMDBjLTQzLjYgMTcuMy04MC4yIDI0LjEtMTEyLjEgMjQuMS0zNy40IDAtNjguOS04LjMtMTAwLTE2LjV6bTkuNS0xMjUuOWM1MS44IDE1LjYgOTcuNCAyOSAyMDIuNi0yMC4xVjMwLjhjMC0yNS4xLTI2LjgtMzguMS00OS40LTI2LjZDMjkxLjMgOTEuNSAzMDUuNC02Mi4yIDk2IDMyLjR2MTUxLjljOTQuOC0zNy41IDE1NC42LTIyLjcgMjEyLjEtNy42IDU3LjIgMTUgMTExLjcgMjguNyAyMDMuOS0xMS4xVjk2LjdjLTUzLjYgMjMuNS05My4zIDMxLjQtMTI2LjEgMzEuNHMtNTktNy44LTg1LjctMTUuOWMtNC0xLjItOC4xLTIuNC0xMi4xLTMuNVY3NS41YzcuMiAyIDE0LjMgNC4xIDIxLjMgNi4yek0xNjAgMTI4LjFjLTguOCAwLTE2LTcuMS0xNi0xNiAwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4xIDE2IDE2LTcuMiAxNi0xNiAxNnptMC01NS44Yy04LjggMC0xNi03LjEtMTYtMTYgMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMSAxNiAxNmMwIDguOC03LjIgMTYtMTYgMTZ6bTY0IDQ3LjljLTguOCAwLTE2LTcuMS0xNi0xNiAwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4xIDE2IDE2YzAgOC44LTcuMiAxNi0xNiAxNnptMC01NS45Yy04LjggMC0xNi03LjEtMTYtMTYgMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMSAxNiAxNmMwIDguOC03LjIgMTYtMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZsYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ5LjU2NSA5OC43ODNDMjk1Ljk3OCA5OC43ODMgMjUxLjcyMSA2NCAxODQuMzQ4IDY0Yy0yNC45NTUgMC00Ny4zMDkgNC4zODQtNjguMDQ1IDEyLjAxM2E1NS45NDcgNTUuOTQ3IDAgMCAwIDMuNTg2LTIzLjU2MkMxMTguMTE3IDI0LjAxNSA5NC44MDYgMS4yMDYgNjYuMzM4LjA0OCAzNC4zNDUtMS4yNTQgOCAyNC4yOTYgOCA1NmMwIDE5LjAyNiA5LjQ5NyAzNS44MjUgMjQgNDUuOTQ1VjQ4OGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTZjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di05NC40YzI4LjMxMS0xMi4wNjQgNjMuNTgyLTIyLjEyMiAxMTQuNDM1LTIyLjEyMiA1My41ODggMCA5Ny44NDQgMzQuNzgzIDE2NS4yMTcgMzQuNzgzIDQ4LjE2OSAwIDg2LjY2Ny0xNi4yOTQgMTIyLjUwNS00MC44NThDNTA2Ljg0IDM1OS40NTIgNTEyIDM0OS41NzEgNTEyIDMzOS4wNDV2LTI0My4xYzAtMjMuMzkzLTI0LjI2OS0zOC44Ny00NS40ODUtMjkuMDE2LTM0LjMzOCAxNS45NDgtNzYuNDU0IDMxLjg1NC0xMTYuOTUgMzEuODU0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGbGFzayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzcuMiA0MDMuNUwzMjAgMjE1VjY0aDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRIMTIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGg4djE1MUwxMC44IDQwMy41Qy0xOC41IDQ1MC42IDE1LjMgNTEyIDcwLjkgNTEyaDMwNi4yYzU1LjcgMCA4OS40LTYxLjUgNjAuMS0xMDguNXpNMTM3LjkgMzIwbDQ4LjItNzcuNmMzLjctNS4yIDUuOC0xMS42IDUuOC0xOC40VjY0aDY0djE2MGMwIDYuOSAyLjIgMTMuMiA1LjggMTguNGw0OC4yIDc3LjZoLTE3MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmx1c2hlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDQgMjAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjQtMTAuNy0yNC0yNC0yNHptLTE5MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjQtMTAuNy0yNC0yNC0yNHpNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHpNODAgMjI0YzAtMzkuOCAzMi4yLTcyIDcyLTcyczcyIDMyLjIgNzIgNzItMzIuMiA3Mi03MiA3Mi03Mi0zMi4yLTcyLTcyem0yMzIgMTc2SDE4NGMtMjEuMiAwLTIxLjItMzIgMC0zMmgxMjhjMjEuMiAwIDIxLjIgMzIgMCAzMnptMzItMTA0Yy0zOS44IDAtNzItMzIuMi03Mi03MnMzMi4yLTcyIDcyLTcyIDcyIDMyLjIgNzIgNzItMzIuMiA3Mi03MiA3MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9sZGVyTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDEyOEgyNzJsLTY0LTY0SDQ4QzIxLjQ5IDY0IDAgODUuNDkgMCAxMTJ2Mjg4YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDE2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMTc2YzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6bS05NiAxNjhjMCA4Ljg0LTcuMTYgMTYtMTYgMTZIMTYwYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtMTZjMC04Ljg0IDcuMTYtMTYgMTYtMTZoMTkyYzguODQgMCAxNiA3LjE2IDE2IDE2djE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb2xkZXJPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3Mi42OTQgMjkyLjA5M0w1MDAuMjcgNDE2LjI0OEE2My45OTcgNjMuOTk3IDAgMCAxIDQ0NC45ODkgNDQ4SDQ1LjAyNWMtMTguNTIzIDAtMzAuMDY0LTIwLjA5My0yMC43MzEtMzYuMDkzbDcyLjQyNC0xMjQuMTU1QTY0IDY0IDAgMCAxIDE1MiAyNTZoMzk5Ljk2NGMxOC41MjMgMCAzMC4wNjQgMjAuMDkzIDIwLjczIDM2LjA5M3pNMTUyIDIyNGgzMjh2LTQ4YzAtMjYuNTEtMjEuNDktNDgtNDgtNDhIMjcybC02NC02NEg0OEMyMS40OSA2NCAwIDg1LjQ5IDAgMTEydjI3OC4wNDZsNjkuMDc3LTExOC40MThDODYuMjE0IDI0Mi4yNSAxMTcuOTg5IDIyNCAxNTIgMjI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb2xkZXJQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCwxMjhIMjcyTDIwOCw2NEg0OEE0OCw0OCwwLDAsMCwwLDExMlY0MDBhNDgsNDgsMCwwLDAsNDgsNDhINDY0YTQ4LDQ4LDAsMCwwLDQ4LTQ4VjE3NkE0OCw0OCwwLDAsMCw0NjQsMTI4Wk0zNTkuNSwyOTZhMTYsMTYsMCwwLDEtMTYsMTZoLTY0djY0YTE2LDE2LDAsMCwxLTE2LDE2aC0xNmExNiwxNiwwLDAsMS0xNi0xNlYzMTJoLTY0YTE2LDE2LDAsMCwxLTE2LTE2VjI4MGExNiwxNiwwLDAsMSwxNi0xNmg2NFYyMDBhMTYsMTYsMCwwLDEsMTYtMTZoMTZhMTYsMTYsMCwwLDEsMTYsMTZ2NjRoNjRhMTYsMTYsMCwwLDEsMTYsMTZaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvbGRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMTI4SDI3MmwtNjQtNjRINDhDMjEuNDkgNjQgMCA4NS40OSAwIDExMnYyODhjMCAyNi41MSAyMS40OSA0OCA0OCA0OGg0MTZjMjYuNTEgMCA0OC0yMS40OSA0OC00OFYxNzZjMC0yNi41MS0yMS40OS00OC00OC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9udCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzIgNDE2aC0yMy40MUwyNzcuODggNTMuNjlBMzIgMzIgMCAwIDAgMjQ3LjU4IDMyaC00Ny4xNmEzMiAzMiAwIDAgMC0zMC4zIDIxLjY5TDM5LjQxIDQxNkgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgxMjhhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2aC0xOS41OGwyMy4zLTY0aDE1Mi41NmwyMy4zIDY0SDMwNGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgxMjhhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2ek0xNzYuODUgMjcyTDIyNCAxNDIuNTEgMjcxLjE1IDI3MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9vdGJhbGxCYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MS41IDYwLjNjLTQuOC0xOC4yLTE5LjEtMzIuNS0zNy4zLTM3LjRDNDIwLjMgMTYuNSAzODMgOC45IDMzOS40IDhMNDk2IDE2NC44Yy0uOC00My41LTguMi04MC42LTE0LjUtMTA0LjV6bS00NjcgMzkxLjRjNC44IDE4LjIgMTkuMSAzMi41IDM3LjMgMzcuNCAyMy45IDYuNCA2MS4yIDE0IDEwNC44IDE0LjlMMCAzNDcuMmMuOCA0My41IDguMiA4MC42IDE0LjUgMTA0LjV6TTQuMiAyODMuNEwyMjAuNCA1MDBjMTMyLjUtMTkuNCAyNDguOC0xMTguNyAyNzEuNS0yNzEuNEwyNzUuNiAxMkMxNDMuMSAzMS40IDI2LjggMTMwLjcgNC4yIDI4My40em0zMTcuMy0xMjMuNmMzLjEtMy4xIDguMi0zLjEgMTEuMyAwbDExLjMgMTEuM2MzLjEgMy4xIDMuMSA4LjIgMCAxMS4zbC0yOC4zIDI4LjMgMjguMyAyOC4zYzMuMSAzLjEgMy4xIDguMiAwIDExLjNsLTExLjMgMTEuM2MtMy4xIDMuMS04LjIgMy4xLTExLjMgMGwtMjguMy0yOC4zLTIyLjYgMjIuNyAyOC4zIDI4LjNjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM2wtMTEuMyAxMS4zYy0zLjEgMy4xLTguMiAzLjEtMTEuMyAwTDI0OCAyNzguNmwtMjIuNiAyMi42IDI4LjMgMjguM2MzLjEgMy4xIDMuMSA4LjIgMCAxMS4zbC0xMS4zIDExLjNjLTMuMSAzLjEtOC4yIDMuMS0xMS4zIDBsLTI4LjMtMjguMy0yOC4zIDI4LjNjLTMuMSAzLjEtOC4yIDMuMS0xMS4zIDBsLTExLjMtMTEuM2MtMy4xLTMuMS0zLjEtOC4yIDAtMTEuM2wyOC4zLTI4LjMtMjguMy0yOC4yYy0zLjEtMy4xLTMuMS04LjIgMC0xMS4zbDExLjMtMTEuM2MzLjEtMy4xIDguMi0zLjEgMTEuMyAwbDI4LjMgMjguMyAyMi42LTIyLjYtMjguMy0yOC4zYy0zLjEtMy4xLTMuMS04LjIgMC0xMS4zbDExLjMtMTEuM2MzLjEtMy4xIDguMi0zLjEgMTEuMyAwbDI4LjMgMjguMyAyMi42LTIyLjYtMjguMy0yOC4zYy0zLjEtMy4xLTMuMS04LjIgMC0xMS4zbDExLjMtMTEuM2MzLjEtMy4xIDguMi0zLjEgMTEuMyAwbDI4LjMgMjguMyAyOC4zLTI4LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvcndhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAwLjUgMjMxLjRsLTE5Mi0xNjBDMjg3LjkgNTQuMyAyNTYgNjguNiAyNTYgOTZ2MzIwYzAgMjcuNCAzMS45IDQxLjggNTIuNSAyNC42bDE5Mi0xNjBjMTUuMy0xMi44IDE1LjMtMzYuNCAwLTQ5LjJ6bS0yNTYgMGwtMTkyLTE2MEMzMS45IDU0LjMgMCA2OC42IDAgOTZ2MzIwYzAgMjcuNCAzMS45IDQxLjggNTIuNSAyNC42bDE5Mi0xNjBjMTUuMy0xMi44IDE1LjMtMzYuNCAwLTQ5LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZyb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ2LjUzIDk3LjQzQzQzOS42NyA2MC4yMyA0MDcuMTkgMzIgMzY4IDMyYy0zOS4yMyAwLTcxLjcyIDI4LjI5LTc4LjU0IDY1LjU0QzEyNi43NSAxMTIuOTYtLjUgMjUwLjEyIDAgNDE2Ljk4LjExIDQ1MS45IDI5LjA4IDQ4MCA2NCA0ODBoMzA0YzguODQgMCAxNi03LjE2IDE2LTE2IDAtMTcuNjctMTQuMzMtMzItMzItMzJoLTc5LjQ5bDM1LjgtNDguMzNjMjQuMTQtMzYuMjMgMTAuMzUtODguMjgtMzMuNzEtMTA2LjYtMjMuODktOS45My01MS41NS00LjY1LTcyLjI0IDEwLjg4bC0zMi43NiAyNC41OWMtNy4wNiA1LjMxLTE3LjA5IDMuOTEtMjIuNDEtMy4xOS01LjMtNy4wOC0zLjg4LTE3LjExIDMuMTktMjIuNDFsMzQuNzgtMjYuMDljMzYuODQtMjcuNjYgODguMjgtMjcuNjIgMTI1LjEzIDAgMTAuODcgOC4xNSA0NS44NyAzOS4wNiA0MC44IDkzLjIxTDQ2OS42MiA0ODBINTYwYzguODQgMCAxNi03LjE2IDE2LTE2IDAtMTcuNjctMTQuMzMtMzItMzItMzJoLTUzLjYzbC05OC41Mi0xMDQuNjggMTU0LjQ0LTg2LjY1QTU4LjE2IDU4LjE2IDAgMCAwIDU3NiAxODkuOTRjMC0yMS40LTExLjcyLTQwLjk1LTMwLjQ4LTUxLjIzLTQwLjU2LTIyLjIyLTk4Ljk5LTQxLjI4LTk4Ljk5LTQxLjI4ek0zNjggMTM2Yy0xMy4yNiAwLTI0LTEwLjc1LTI0LTI0IDAtMTMuMjYgMTAuNzQtMjQgMjQtMjQgMTMuMjUgMCAyNCAxMC43NCAyNCAyNCAwIDEzLjI1LTEwLjc1IDI0LTI0IDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGcm93bk9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHpNMTM2IDIwOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMnptMTg3LjMgMTgzLjNjLTMxLjItOS42LTU5LjQtMTUuMy03NS4zLTE1LjNzLTQ0LjEgNS43LTc1LjMgMTUuM2MtMTEuNSAzLjUtMjIuNS02LjMtMjAuNS0xOC4xIDctNDAgNjAuMS02MS4yIDk1LjgtNjEuMnM4OC44IDIxLjMgOTUuOCA2MS4yYzIgMTEuOS05LjEgMjEuNi0yMC41IDE4LjF6TTMyOCAyNDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGcm93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em04MCAxNjhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem0tMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem0xNzAuMiAyMTguMkMzMTUuOCAzNjcuNCAyODIuOSAzNTIgMjQ4IDM1MnMtNjcuOCAxNS40LTkwLjIgNDIuMmMtMTMuNSAxNi4zLTM4LjEtNC4yLTI0LjYtMjAuNUMxNjEuNyAzMzkuNiAyMDMuNiAzMjAgMjQ4IDMyMHM4Ni4zIDE5LjYgMTE0LjcgNTMuOGMxMy42IDE2LjItMTEgMzYuNy0yNC41IDIwLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZ1bm5lbERvbGxhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzMuNDYgMTY1Ljk0bDEwMS4yLTExMS44N0M1NTQuNjEgMzQuMTIgNTQwLjQ4IDAgNTEyLjI2IDBIMzEuNzRDMy41MiAwLTEwLjYxIDM0LjEyIDkuMzQgNTQuMDdMMTkyIDI1NnYxNTUuOTJjMCAxMi41OSA1LjkzIDI0LjQ0IDE2IDMybDc5Ljk5IDYwYzIwLjg2IDE1LjY0IDQ4LjQ3IDYuOTcgNTkuMjItMTMuNTdDMzEwLjggNDU1LjM4IDI4OCA0MDYuMzUgMjg4IDM1MmMwLTg5Ljc5IDYyLjA1LTE2NS4xNyAxNDUuNDYtMTg2LjA2ek00ODAgMTkyYy04OC4zNyAwLTE2MCA3MS42My0xNjAgMTYwczcxLjYzIDE2MCAxNjAgMTYwIDE2MC03MS42MyAxNjAtMTYwLTcxLjYzLTE2MC0xNjAtMTYwem0xNiAyMzkuODhWNDQ4YzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LTh2LTE2LjI5Yy0xMS4yOS0uNTgtMjIuMjctNC41Mi0zMS4zNy0xMS4zNS0zLjktMi45My00LjEtOC43Ny0uNTctMTIuMTRsMTEuNzUtMTEuMjFjMi43Ny0yLjY0IDYuODktMi43NiAxMC4xMy0uNzMgMy44NyAyLjQyIDguMjYgMy43MiAxMi44MiAzLjcyaDI4LjExYzYuNSAwIDExLjgtNS45MiAxMS44LTEzLjE5IDAtNS45NS0zLjYxLTExLjE5LTguNzctMTIuNzNsLTQ1LTEzLjVjLTE4LjU5LTUuNTgtMzEuNTgtMjMuNDItMzEuNTgtNDMuMzkgMC0yNC41MiAxOS4wNS00NC40NCA0Mi42Ny00NS4wN1YyNTZjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTYuMjljMTEuMjkuNTggMjIuMjcgNC41MSAzMS4zNyAxMS4zNSAzLjkgMi45MyA0LjEgOC43Ny41NyAxMi4xNGwtMTEuNzUgMTEuMjFjLTIuNzcgMi42NC02Ljg5IDIuNzYtMTAuMTMuNzMtMy44Ny0yLjQzLTguMjYtMy43Mi0xMi44Mi0zLjcyaC0yOC4xMWMtNi41IDAtMTEuOCA1LjkyLTExLjggMTMuMTkgMCA1Ljk1IDMuNjEgMTEuMTkgOC43NyAxMi43M2w0NSAxMy41YzE4LjU5IDUuNTggMzEuNTggMjMuNDIgMzEuNTggNDMuMzkgMCAyNC41My0xOS4wNCA0NC40NC00Mi42NyA0NS4wN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRnV0Ym9sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNCAyNTZjMCAxMzYuOTY3LTExMS4wMzMgMjQ4LTI0OCAyNDhTOCAzOTIuOTY3IDggMjU2IDExOS4wMzMgOCAyNTYgOHMyNDggMTExLjAzMyAyNDggMjQ4em0tNDggMGwtLjAwMy0uMjgyLTI2LjA2NCAyMi43NDEtNjIuNjc5LTU4LjUgMTYuNDU0LTg0LjM1NSAzNC4zMDMgMy4wNzJjLTI0Ljg4OS0zNC4yMTYtNjAuMDA0LTYwLjA4OS0xMDAuNzA5LTczLjE0MWwxMy42NTEgMzEuOTM5TDI1NiAxMzlsLTc0Ljk1My00MS41MjUgMTMuNjUxLTMxLjkzOWMtNDAuNjMxIDEzLjAyOC03NS43OCAzOC44Ny0xMDAuNzA5IDczLjE0MWwzNC41NjUtMy4wNzMgMTYuMTkyIDg0LjM1NS02Mi42NzggNTguNS0yNi4wNjQtMjIuNzQxLS4wMDMuMjgyYzAgNDMuMDE1IDEzLjQ5NyA4My45NTIgMzguNDcyIDExNy45OTFsNy43MDQtMzMuODk3IDg1LjEzOCAxMC40NDcgMzYuMzAxIDc3LjgyNi0yOS45MDIgMTcuNzg2YzQwLjIwMiAxMy4xMjIgODQuMjkgMTMuMTQ4IDEyNC41NzIgMGwtMjkuOTAyLTE3Ljc4NiAzNi4zMDEtNzcuODI2IDg1LjEzOC0xMC40NDcgNy43MDQgMzMuODk3QzQ0Mi41MDMgMzM5Ljk1MiA0NTYgMjk5LjAxNSA0NTYgMjU2em0tMjQ4LjEwMiA2OS41NzFsLTI5Ljg5NC05MS4zMTJMMjU2IDE3Ny43MzJsNzcuOTk2IDU2LjUyNy0yOS42MjIgOTEuMzEyaC05Ni40NzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdhbWVwYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwLjA3IDk2SDE2MGExNjAgMTYwIDAgMSAwIDExNC4yNCAyNzJoOTEuNTJBMTYwIDE2MCAwIDEgMCA0ODAuMDcgOTZ6TTI0OCAyNjhhMTIgMTIgMCAwIDEtMTIgMTJoLTUydjUyYTEyIDEyIDAgMCAxLTEyIDEyaC0yNGExMiAxMiAwIDAgMS0xMi0xMnYtNTJIODRhMTIgMTIgMCAwIDEtMTItMTJ2LTI0YTEyIDEyIDAgMCAxIDEyLTEyaDUydi01MmExMiAxMiAwIDAgMSAxMi0xMmgyNGExMiAxMiAwIDAgMSAxMiAxMnY1Mmg1MmExMiAxMiAwIDAgMSAxMiAxMnptMjE2IDc2YTQwIDQwIDAgMSAxIDQwLTQwIDQwIDQwIDAgMCAxLTQwIDQwem02NC05NmE0MCA0MCAwIDEgMSA0MC00MCA0MCA0MCAwIDAgMS00MCA0MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2FzUHVtcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYgNDQ4SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyMGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnptMTU3LjItMzQwLjdsLTgxLTgxYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMGwtMTEuMyAxMS4zYy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNkw0MTYgOTcuOVYxNjBjMCAyOC4xIDIwLjkgNTEuMyA0OCA1NS4yVjM3NmMwIDEzLjItMTAuOCAyNC0yNCAyNHMtMjQtMTAuOC0yNC0yNHYtMzJjMC00OC42LTM5LjQtODgtODgtODhoLThWNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIOTZDNjAuNyAwIDMyIDI4LjcgMzIgNjR2MzUyaDI4OFYzMDRoOGMyMi4xIDAgNDAgMTcuOSA0MCA0MHYyNy44YzAgMzcuNyAyNyA3MiA2NC41IDc1LjkgNDMgNC4zIDc5LjUtMjkuNSA3OS41LTcxLjdWMTUyLjZjMC0xNy02LjgtMzMuMy0xOC44LTQ1LjN6TTI1NiAxOTJIOTZWNjRoMTYwdjEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2F2ZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA0Ljk3MSAxOTkuMzYybC0yMi42MjctMjIuNjI3Yy05LjM3My05LjM3My0yNC41NjktOS4zNzMtMzMuOTQxIDBsLTUuNjU3IDUuNjU3TDMyOS42MDggNjkuMjU1bDUuNjU3LTUuNjU3YzkuMzczLTkuMzczIDkuMzczLTI0LjU2OSAwLTMzLjk0MUwzMTIuNjM4IDcuMDI5Yy05LjM3My05LjM3My0yNC41NjktOS4zNzMtMzMuOTQxIDBMMTU0LjI0NiAxMzEuNDhjLTkuMzczIDkuMzczLTkuMzczIDI0LjU2OSAwIDMzLjk0MWwyMi42MjcgMjIuNjI3YzkuMzczIDkuMzczIDI0LjU2OSA5LjM3MyAzMy45NDEgMGw1LjY1Ny01LjY1NyAzOS41OTggMzkuNTk4LTgxLjA0IDgxLjA0LTUuNjU3LTUuNjU3Yy0xMi40OTctMTIuNDk3LTMyLjc1OC0xMi40OTctNDUuMjU1IDBMOS4zNzMgNDEyLjExOGMtMTIuNDk3IDEyLjQ5Ny0xMi40OTcgMzIuNzU4IDAgNDUuMjU1bDQ1LjI1NSA0NS4yNTVjMTIuNDk3IDEyLjQ5NyAzMi43NTggMTIuNDk3IDQ1LjI1NSAwbDExNC43NDUtMTE0Ljc0NWMxMi40OTctMTIuNDk3IDEyLjQ5Ny0zMi43NTggMC00NS4yNTVsLTUuNjU3LTUuNjU3IDgxLjA0LTgxLjA0IDM5LjU5OCAzOS41OTgtNS42NTcgNS42NTdjLTkuMzczIDkuMzczLTkuMzczIDI0LjU2OSAwIDMzLjk0MWwyMi42MjcgMjIuNjI3YzkuMzczIDkuMzczIDI0LjU2OSA5LjM3MyAzMy45NDEgMGwxMjQuNDUxLTEyNC40NTFjOS4zNzItOS4zNzIgOS4zNzItMjQuNTY4IDAtMzMuOTQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHZW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg1LjUgMEw1NzYgMTYwSDQ3NC45TDQwNS43IDBoNzkuOHptLTEyOCAwbDY5LjIgMTYwSDE0OS4zTDIxOC41IDBoMTM5em0tMjY3IDBoNzkuOGwtNjkuMiAxNjBIMEw5MC41IDB6TTAgMTkyaDEwMC43bDEyMyAyNTEuN2MxLjUgMy4xLTIuNyA1LjktNSAzLjNMMCAxOTJ6bTE0OC4yIDBoMjc5LjZsLTEzNyAzMTguMmMtMSAyLjQtNC41IDIuNC01LjUgMEwxNDguMiAxOTJ6bTIwNC4xIDI1MS43bDEyMy0yNTEuN0g1NzZMMzU3LjMgNDQ2LjljLTIuMyAyLjctNi41LS4xLTUtMy4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHZW5kZXJsZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyODggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NCAxNzZjNDQuMSAwIDgwIDM1LjkgODAgODBzLTM1LjkgODAtODAgODAtODAtMzUuOS04MC04MCAzNS45LTgwIDgwLTgwbTAtNjRDNjQuNSAxMTIgMCAxNzYuNSAwIDI1NnM2NC41IDE0NCAxNDQgMTQ0IDE0NC02NC41IDE0NC0xNDQtNjQuNS0xNDQtMTQ0LTE0NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2hvc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg2LjEuMDlDODEuMDEgMy4yNCAwIDk0LjkyIDAgMjAwLjA1djI2My45MmMwIDE0LjI2IDE3LjIzIDIxLjM5IDI3LjMxIDExLjMxbDI0LjkyLTE4LjUzYzYuNjYtNC45NSAxNi0zLjk5IDIxLjUxIDIuMjFsNDIuOTUgNDguMzVjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMGw0MC43Mi00NS44NWM2LjM3LTcuMTcgMTcuNTYtNy4xNyAyMy45MiAwbDQwLjcyIDQ1Ljg1YzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsNDIuOTUtNDguMzVjNS41MS02LjIgMTQuODUtNy4xNyAyMS41MS0yLjIxbDI0LjkyIDE4LjUzYzEwLjA4IDEwLjA4IDI3LjMxIDIuOTQgMjcuMzEtMTEuMzFWMTkyQzM4NCA4NCAyOTQuODMtMy4xNyAxODYuMS4wOXpNMTI4IDIyNGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMTI4IDBjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdpZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDE2MFYzMjBIMzJ2MTI4em0yNTYgMzJoMTYwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMyMEgyODh2MTYwem0xOTItMzIwaC00Mi4xYzYuMi0xMi4xIDEwLjEtMjUuNSAxMC4xLTQwIDAtNDguNS0zOS41LTg4LTg4LTg4LTQxLjYgMC02OC41IDIxLjMtMTAzIDY4LjMtMzQuNS00Ny02MS40LTY4LjMtMTAzLTY4LjMtNDguNSAwLTg4IDM5LjUtODggODggMCAxNC41IDMuOCAyNy45IDEwLjEgNDBIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgwYzAgOC44IDcuMiAxNiAxNiAxNmg0ODBjOC44IDAgMTYtNy4yIDE2LTE2di04MGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTMyNi4xIDBjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDBjMTkuOSAwIDM0LjYgMy4zIDg2LjEgODBoLTg2LjF6bTIwNi4xIDBoLTg2LjFjNTEuNC03Ni41IDY1LjctODAgODYuMS04MCAyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2lmdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQwLjYgMTk0LjFjMS45LTMwLjggMTcuMy02MS4yIDQ0LTc5LjhDMjc5LjQgMTAzLjUgMjY4LjcgOTYgMjU2IDk2aC0yOS40bDMwLjctMjJjNy4yLTUuMSA4LjktMTUuMSAzLjctMjIuM2wtOS4zLTEzYy01LjEtNy4yLTE1LjEtOC45LTIyLjMtMy43bC0zMiAyMi45IDExLjUtMzAuNmMzLjEtOC4zLTEuMS0xNy41LTkuNC0yMC42bC0xNS01LjZjLTguMy0zLjEtMTcuNSAxLjEtMjAuNiA5LjRsLTE5LjkgNTMtMTkuOS01My4xQzEyMSAyLjEgMTExLjgtMi4xIDEwMy41IDFsLTE1IDUuNkM4MC4yIDkuNyA3NiAxOSA3OS4yIDI3LjJsMTEuNSAzMC42TDU4LjYgMzVjLTcuMi01LjEtMTcuMi0zLjUtMjIuMyAzLjdsLTkuMyAxM2MtNS4xIDcuMi0zLjUgMTcuMiAzLjcgMjIuM2wzMC43IDIySDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTY4LjljLTUuNS05LjUtOC45LTIwLjMtOC45LTMyVjI1NmMwLTI5LjkgMjAuOC01NSA0OC42LTYxLjl6TTIyNCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTYwVjM4NEgyMjR2OTZ6bTIyNCAzMmgxNjBjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTk2SDQ0OHYxMjh6bTE2MC0yODhoLTIwLjRjMi42LTcuNiA0LjQtMTUuNSA0LjQtMjMuOCAwLTM1LjUtMjctNzIuMi03Mi4xLTcyLjItNDguMSAwLTc1LjkgNDcuNy04Ny45IDc1LjMtMTIuMS0yNy42LTM5LjktNzUuMy04Ny45LTc1LjMtNDUuMSAwLTcyLjEgMzYuNy03Mi4xIDcyLjIgMCA4LjMgMS43IDE2LjIgNC40IDIzLjhIMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY5NmgxOTJWMjI0aDE1LjNsLjctLjIuNy4ySDQ0OHYxMjhoMTkydi05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTI3MiAwYy0yLjctMS40LTUuMS0zLTcuMi00LjgtNy4zLTYuNC04LjgtMTMuOC04LjgtMTkgMC05LjcgNi40LTI0LjIgMjQuMS0yNC4yIDE4LjcgMCAzNS42IDI3LjQgNDQuNSA0OEgzMzZ6bTE5OS4yLTQuOGMtMi4xIDEuOC00LjUgMy40LTcuMiA0LjhoLTUyLjZjOC44LTIwLjMgMjUuOC00OCA0NC41LTQ4IDE3LjcgMCAyNC4xIDE0LjUgMjQuMSAyNC4yIDAgNS4yLTEuNSAxMi42LTguOCAxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2xhc3NDaGVlcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjM5LjQgNDMzLjZjLTguNC0yMC40LTMxLjgtMzAuMS01Mi4yLTIxLjZsLTIyLjEgOS4yLTM4LjctMTAxLjljNDcuOS0zNSA2NC44LTEwMC4zIDM0LjUtMTUyLjhMNDc0LjMgMTZjLTgtMTMuOS0yNS4xLTE5LjctNDAtMTMuNkwzMjAgNDkuOCAyMDUuNyAyLjRjLTE0LjktNi4yLTMyLS4zLTQwIDEzLjZMNzkuMSAxNjYuNUM0OC45IDIxOSA2NS43IDI4NC4zIDExMy42IDMxOS4yTDc0LjkgNDIxLjFsLTIyLjEtOS4yYy0yMC40LTguNS00My43IDEuMi01Mi4yIDIxLjYtMS43IDQuMS4yIDguOCA0LjMgMTAuNWwxNjIuMyA2Ny40YzQuMSAxLjcgOC43LS4yIDEwLjQtNC4zIDguNC0yMC40LTEuMi00My44LTIxLjYtNTIuM2wtMjIuMS05LjJMMTczLjMgMzQyYzQuNC41IDguOCAxLjMgMTMuMSAxLjMgNTEuNyAwIDk5LjQtMzMuMSAxMTMuNC04NS4zbDIwLjItNzUuNCAyMC4yIDc1LjRjMTQgNTIuMiA2MS43IDg1LjMgMTEzLjQgODUuMyA0LjMgMCA4LjctLjggMTMuMS0xLjNMNTA2IDQ0NS42bC0yMi4xIDkuMmMtMjAuNCA4LjUtMzAuMSAzMS45LTIxLjYgNTIuMyAxLjcgNC4xIDYuNCA2IDEwLjQgNC4zTDYzNS4xIDQ0NGM0LTEuNyA2LTYuMyA0LjMtMTAuNHpNMjc1LjkgMTYyLjFsLTExMi4xLTQ2LjUgMzYuNS02My40IDk0LjUgMzkuMi0xOC45IDcwLjd6bTg4LjIgMGwtMTguOS03MC43IDk0LjUtMzkuMiAzNi41IDYzLjQtMTEyLjEgNDYuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2xhc3NNYXJ0aW5pQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMi4wNSA1Ny42QzUyMy4zIDM2LjM0IDUwOC4yNSAwIDQ3OC4yIDBIMzMuOEMzLjc1IDAtMTEuMyAzNi4zNCA5Ljk1IDU3LjZMMjI0IDI3MS42NFY0NjRoLTU2Yy0yMi4wOSAwLTQwIDE3LjkxLTQwIDQwIDAgNC40MiAzLjU4IDggOCA4aDI0MGM0LjQyIDAgOC0zLjU4IDgtOCAwLTIyLjA5LTE3LjkxLTQwLTQwLTQwaC01NlYyNzEuNjRMNTAyLjA1IDU3LjZ6TTQ0My43NyA0OGwtNDggNDhIMTE2LjI0bC00OC00OGgzNzUuNTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdsYXNzTWFydGluaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDIuMDUgNTcuNkM1MjMuMyAzNi4zNCA1MDguMjUgMCA0NzguMiAwSDMzLjhDMy43NSAwLTExLjMgMzYuMzQgOS45NSA1Ny42TDIyNCAyNzEuNjRWNDY0aC01NmMtMjIuMDkgMC00MCAxNy45MS00MCA0MCAwIDQuNDIgMy41OCA4IDggOGgyNDBjNC40MiAwIDgtMy41OCA4LTggMC0yMi4wOS0xNy45MS00MC00MC00MGgtNTZWMjcxLjY0TDUwMi4wNSA1Ny42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHbGFzc1doaXNrZXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDMySDMyQzEyLjUgMzItMi40IDQ5LjIuMyA2OC41bDU2IDM1Ni41YzQuNSAzMS41IDMxLjUgNTQuOSA2My40IDU0LjloMjczYzMxLjggMCA1OC45LTIzLjQgNjMuNC01NC45bDU1LjYtMzU2LjVDNTE0LjQgNDkuMiA0OTkuNSAzMiA0ODAgMzJ6bS0zNy40IDY0bC0zMCAxOTJoLTMxM0w2OS40IDk2aDM3My4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHbGFzc2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3NC4xIDI4MC4zN0w1MjguNzUgOTguNjZjLTUuOTEtMjMuNy0yMS41OS00NC4wNS00My01NS44MS0yMS40NC0xMS43My00Ni45Ny0xNC4xMS03MC4xOS02LjMzbC0xNS4yNSA1LjA4Yy04LjM5IDIuNzktMTIuOTIgMTEuODYtMTAuMTIgMjAuMjRsNS4wNiAxNS4xOGMyLjc5IDguMzggMTEuODUgMTIuOTEgMjAuMjMgMTAuMTJsMTMuMTgtNC4zOWMxMC44Ny0zLjYyIDIzLTMuNTcgMzMuMTYgMS43MyAxMC4yOSA1LjM3IDE3LjU3IDE0LjU2IDIwLjM3IDI1LjgybDM4LjQ2IDE1My44MmMtMjIuMTktNi44MS00OS43OS0xMi40Ni04MS4yLTEyLjQ2LTM0Ljc3IDAtNzMuOTggNy4wMi0xMTQuODUgMjYuNzRoLTczLjE4Yy00MC44Ny0xOS43NC04MC4wOC0yNi43NS0xMTQuODYtMjYuNzUtMzEuNDIgMC01OS4wMiA1LjY1LTgxLjIxIDEyLjQ2bDM4LjQ2LTE1My44M2MyLjc5LTExLjI1IDEwLjA5LTIwLjQ1IDIwLjM4LTI1LjgxIDEwLjE2LTUuMyAyMi4yOC01LjM1IDMzLjE1LTEuNzNsMTMuMTcgNC4zOWM4LjM4IDIuNzkgMTcuNDQtMS43NCAyMC4yMy0xMC4xMmw1LjA2LTE1LjE4YzIuOC04LjM4LTEuNzMtMTcuNDUtMTAuMTItMjAuMjRsLTE1LjI1LTUuMDhjLTIzLjIyLTcuNzgtNDguNzUtNS40MS03MC4xOSA2LjMzLTIxLjQxIDExLjc3LTM3LjA5IDMyLjExLTQzIDU1LjhMMS45IDI4MC4zN0E2NC4yMTggNjQuMjE4IDAgMCAwIDAgMjk1Ljg2djcwLjI1QzAgNDI5LjAxIDUxLjU4IDQ4MCAxMTUuMiA0ODBoMzcuMTJjNjAuMjggMCAxMTAuMzctNDUuOTQgMTE0Ljg4LTEwNS4zN2wyLjkzLTM4LjYzaDM1Ljc1bDIuOTMgMzguNjNDMzEzLjMxIDQzNC4wNiAzNjMuNCA0ODAgNDIzLjY4IDQ4MGgzNy4xMmM2My42MiAwIDExNS4yLTUwLjk5IDExNS4yLTExMy44OHYtNzAuMjVjMC01LjIzLS42NC0xMC40My0xLjktMTUuNXptLTM3MC43MiA4OS40MmMtMS45NyAyNS45MS0yNC40IDQ2LjIxLTUxLjA2IDQ2LjIxSDExNS4yQzg2Ljk3IDQxNiA2NCAzOTMuNjIgNjQgMzY2LjExdi0zNy41NGMxOC4xMi02LjQ5IDQzLjQyLTEyLjkyIDcyLjU4LTEyLjkyIDIzLjg2IDAgNDcuMjYgNC4zMyA2OS45MyAxMi45MmwtMy4xMyA0MS4yMnpNNTEyIDM2Ni4xMmMwIDI3LjUxLTIyLjk3IDQ5Ljg4LTUxLjIgNDkuODhoLTM3LjEyYy0yNi42NyAwLTQ5LjEtMjAuMy01MS4wNi00Ni4yMWwtMy4xMy00MS4yMmMyMi42Ny04LjU5IDQ2LjA4LTEyLjkyIDY5Ljk1LTEyLjkyIDI5LjEyIDAgNTQuNDMgNi40NCA3Mi41NSAxMi45M3YzNy41NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2xvYmVBZnJpY2EgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExLjAzIDggMCAxMTkuMDMgMCAyNTZzMTExLjAzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMgMjQ4LTI0OFMzODQuOTcgOCAyNDggOHptMTYwIDIxNS41djYuOTNjMCA1Ljg3LTMuMzIgMTEuMjQtOC41NyAxMy44NmwtMTUuMzkgNy43YTE1LjQ4NSAxNS40ODUgMCAwIDEtMTUuNTMtLjk3bC0xOC4yMS0xMi4xNGExNS41MiAxNS41MiAwIDAgMC0xMy41LTEuODFsLTIuNjUuODhjLTkuNyAzLjIzLTEzLjY2IDE0Ljc5LTcuOTkgMjMuM2wxMy4yNCAxOS44NmMyLjg3IDQuMzEgNy43MSA2LjkgMTIuODkgNi45aDguMjFjOC41NiAwIDE1LjUgNi45NCAxNS41IDE1LjV2MTEuMzRjMCAzLjM1LTEuMDkgNi42Mi0zLjEgOS4zbC0xOC43NCAyNC45OGMtMS40MiAxLjktMi4zOSA0LjEtMi44MyA2LjQzbC00LjMgMjIuODNjLS42MiAzLjI5LTIuMjkgNi4yOS00Ljc2IDguNTZhMTU5LjYwOCAxNTkuNjA4IDAgMCAwLTI1IDI5LjE2bC0xMy4wMyAxOS41NWEyNy43NTYgMjcuNzU2IDAgMCAxLTIzLjA5IDEyLjM2Yy0xMC41MSAwLTIwLjEyLTUuOTQtMjQuODItMTUuMzRhNzguOTAyIDc4LjkwMiAwIDAgMS04LjMzLTM1LjI5VjM2Ny41YzAtOC41Ni02Ljk0LTE1LjUtMTUuNS0xNS41aC0yNS44OGMtMTQuNDkgMC0yOC4zOC01Ljc2LTM4LjYzLTE2YTU0LjY1OSA1NC42NTkgMCAwIDEtMTYtMzguNjN2LTE0LjA2YzAtMTcuMTkgOC4xLTMzLjM4IDIxLjg1LTQzLjdsMjcuNTgtMjAuNjlhNTQuNjYzIDU0LjY2MyAwIDAgMSAzMi43OC0xMC45M2guODljOC40OCAwIDE2Ljg1IDEuOTcgMjQuNDMgNS43N2wxNC43MiA3LjM2YzMuNjggMS44NCA3LjkzIDIuMTQgMTEuODMuODRsNDcuMzEtMTUuNzdjNi4zMy0yLjExIDEwLjYtOC4wMyAxMC42LTE0LjcgMC04LjU2LTYuOTQtMTUuNS0xNS41LTE1LjVoLTEwLjA5Yy00LjExIDAtOC4wNS0xLjYzLTEwLjk2LTQuNTRsLTYuOTItNi45MmExNS40OTMgMTUuNDkzIDAgMCAwLTEwLjk2LTQuNTRIMTk5LjVjLTguNTYgMC0xNS41LTYuOTQtMTUuNS0xNS41di00LjRjMC03LjExIDQuODQtMTMuMzEgMTEuNzQtMTUuMDRsMTQuNDUtMy42MWMzLjc0LS45NCA3LTMuMjMgOS4xNC02LjQ0bDguMDgtMTIuMTFjMi44Ny00LjMxIDcuNzEtNi45IDEyLjg5LTYuOWgyNC4yMWM4LjU2IDAgMTUuNS02Ljk0IDE1LjUtMTUuNXYtMjEuN0MzNTkuMjMgNzEuNjMgNDIyLjg2IDEzMS4wMiA0NDEuOTMgMjA4SDQyMy41Yy04LjU2IDAtMTUuNSA2Ljk0LTE1LjUgMTUuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2xvYmVBbWVyaWNhcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEuMDMgOCAwIDExOS4wMyAwIDI1NnMxMTEuMDMgMjQ4IDI0OCAyNDggMjQ4LTExMS4wMyAyNDgtMjQ4UzM4NC45NyA4IDI0OCA4em04Mi4yOSAzNTcuNmMtMy45IDMuODgtNy45OSA3Ljk1LTExLjMxIDExLjI4LTIuOTkgMy01LjEgNi43LTYuMTcgMTAuNzEtMS41MSA1LjY2LTIuNzMgMTEuMzgtNC43NyAxNi44N2wtMTcuMzkgNDYuODVjLTEzLjc2IDMtMjggNC42OS00Mi42NSA0LjY5di0yNy4zOGMxLjY5LTEyLjYyLTcuNjQtMzYuMjYtMjIuNjMtNTEuMjUtNi02LTkuMzctMTQuMTQtOS4zNy0yMi42M3YtMzIuMDFjMC0xMS42NC02LjI3LTIyLjM0LTE2LjQ2LTI3Ljk3LTE0LjM3LTcuOTUtMzQuODEtMTkuMDYtNDguODEtMjYuMTEtMTEuNDgtNS43OC0yMi4xLTEzLjE0LTMxLjY1LTIxLjc1bC0uOC0uNzJhMTE0Ljc5MiAxMTQuNzkyIDAgMCAxLTE4LjA2LTIwLjc0Yy05LjM4LTEzLjc3LTI0LjY2LTM2LjQyLTM0LjU5LTUxLjE0IDIwLjQ3LTQ1LjUgNTcuMzYtODIuMDQgMTAzLjItMTAxLjg5bDI0LjAxIDEyLjAxQzIwMy40OCA4OS43NCAyMTYgODIuMDEgMjE2IDcwLjExdi0xMS4zYzcuOTktMS4yOSAxNi4xMi0yLjExIDI0LjM5LTIuNDJsMjguMyAyOC4zYzYuMjUgNi4yNSA2LjI1IDE2LjM4IDAgMjIuNjNMMjY0IDExMmwtMTAuMzQgMTAuMzRjLTMuMTIgMy4xMi0zLjEyIDguMTkgMCAxMS4zMWw0LjY5IDQuNjljMy4xMiAzLjEyIDMuMTIgOC4xOSAwIDExLjMxbC04IDhhOC4wMDggOC4wMDggMCAwIDEtNS42NiAyLjM0aC04Ljk5Yy0yLjA4IDAtNC4wOC44MS01LjU4IDIuMjdsLTkuOTIgOS42NWE4LjAwOCA4LjAwOCAwIDAgMC0xLjU4IDkuMzFsMTUuNTkgMzEuMTljMi42NiA1LjMyLTEuMjEgMTEuNTgtNy4xNSAxMS41OGgtNS42NGMtMS45MyAwLTMuNzktLjctNS4yNC0xLjk2bC05LjI4LTguMDZhMTYuMDE3IDE2LjAxNyAwIDAgMC0xNS41NS0zLjFsLTMxLjE3IDEwLjM5YTExLjk1IDExLjk1IDAgMCAwLTguMTcgMTEuMzRjMCA0LjUzIDIuNTYgOC42NiA2LjYxIDEwLjY5bDExLjA4IDUuNTRjOS40MSA0LjcxIDE5Ljc5IDcuMTYgMzAuMzEgNy4xNnMyMi41OSAyNy4yOSAzMiAzMmg2Ni43NWM4LjQ5IDAgMTYuNjIgMy4zNyAyMi42MyA5LjM3bDEzLjY5IDEzLjY5YTMwLjUwMyAzMC41MDMgMCAwIDEgOC45MyAyMS41NyA0Ni41MzYgNDYuNTM2IDAgMCAxLTEzLjcyIDMyLjk4ek00MTcgMjc0LjI1Yy01Ljc5LTEuNDUtMTAuODQtNS0xNC4xNS05Ljk3bC0xNy45OC0yNi45N2EyMy45NyAyMy45NyAwIDAgMSAwLTI2LjYybDE5LjU5LTI5LjM4YzIuMzItMy40NyA1LjUtNi4yOSA5LjI0LTguMTVsMTIuOTgtNi40OUM0NDAuMiAxOTMuNTkgNDQ4IDIyMy44NyA0NDggMjU2YzAgOC42Ny0uNzQgMTcuMTYtMS44MiAyNS41NEw0MTcgMjc0LjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHbG9iZUFzaWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExLjAzIDggMCAxMTkuMDMgMCAyNTZzMTExLjAzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMgMjQ4LTI0OFMzODQuOTcgOCAyNDggOHptLTExLjM0IDI0MC4yM2MtMi44OSA0LjgyLTguMSA3Ljc3LTEzLjcyIDcuNzdoLS4zMWMtNC4yNCAwLTguMzEgMS42OS0xMS4zMSA0LjY5bC01LjY2IDUuNjZjLTMuMTIgMy4xMi0zLjEyIDguMTkgMCAxMS4zMWw1LjY2IDUuNjZjMyAzIDQuNjkgNy4wNyA0LjY5IDExLjMxVjMwNGMwIDguODQtNy4xNiAxNi0xNiAxNmgtNi4xMWMtNi4wNiAwLTExLjYtMy40Mi0xNC4zMS04Ljg1bC0yMi42Mi00NS4yM2MtMi40NC00Ljg4LTguOTUtNS45NC0xMi44MS0yLjA4bC0xOS40NyAxOS40NmMtMyAzLTcuMDcgNC42OS0xMS4zMSA0LjY5SDUwLjgxQzQ5LjEyIDI3Ny41NSA0OCAyNjYuOTIgNDggMjU2YzAtMTEwLjI4IDg5LjcyLTIwMCAyMDAtMjAwIDIxLjUxIDAgNDIuMiAzLjUxIDYxLjYzIDkuODJsLTUwLjE2IDM4LjUzYy01LjExIDMuNDEtNC42MyAxMS4wNi44NiAxMy44MWwxMC44MyA1LjQxYzUuNDIgMi43MSA4Ljg0IDguMjUgOC44NCAxNC4zMVYyMTZjMCA0LjQyLTMuNTggOC04IDhoLTMuMDZjLTMuMDMgMC01LjgtMS43MS03LjE1LTQuNDItMS41Ni0zLjEyLTUuOTYtMy4yOS03Ljc2LS4zbC0xNy4zNyAyOC45NXpNNDA4IDM1OC40M2MwIDQuMjQtMS42OSA4LjMxLTQuNjkgMTEuMzFsLTkuNTcgOS41N2MtMyAzLTcuMDcgNC42OS0xMS4zMSA0LjY5aC0xNS4xNmMtNC4yNCAwLTguMzEtMS42OS0xMS4zMS00LjY5bC0xMy4wMS0xMy4wMWEyNi43NjcgMjYuNzY3IDAgMCAwLTI1LjQyLTcuMDRsLTIxLjI3IDUuMzJjLTEuMjcuMzItMi41Ny40OC0zLjg4LjQ4aC0xMC4zNGMtNC4yNCAwLTguMzEtMS42OS0xMS4zMS00LjY5bC0xMS45MS0xMS45MWE4LjAwOCA4LjAwOCAwIDAgMS0yLjM0LTUuNjZ2LTEwLjJjMC0zLjI3IDEuOTktNi4yMSA1LjAzLTcuNDNsMzkuMzQtMTUuNzRjMS45OC0uNzkgMy44Ni0xLjgyIDUuNTktMy4wNWwyMy43MS0xNi44OWE3Ljk3OCA3Ljk3OCAwIDAgMSA0LjY0LTEuNDhoMTIuMDljMy4yMyAwIDYuMTUgMS45NCA3LjM5IDQuOTNsNS4zNSAxMi44NWE0IDQgMCAwIDAgMy42OSAyLjQ2aDMuOGMxLjc4IDAgMy4zNS0xLjE4IDMuODQtMi44OGw0LjItMTQuNDdjLjUtMS43MSAyLjA2LTIuODggMy44NC0yLjg4aDYuMDZjMi4yMSAwIDQgMS43OSA0IDR2MTIuOTNjMCAyLjEyLjg0IDQuMTYgMi4zNCA1LjY2bDExLjkxIDExLjkxYzMgMyA0LjY5IDcuMDcgNC42OSAxMS4zMXYyNC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHbG9iZUV1cm9wZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0yMDAgMjQ4YzAgMjIuNS0zLjkgNDQuMi0xMC44IDY0LjRoLTIwLjNjLTQuMyAwLTguNC0xLjctMTEuNC00LjhsLTMyLTMyLjZjLTQuNS00LjYtNC41LTEyLjEuMS0xNi43bDEyLjUtMTIuNXYtOC43YzAtMy0xLjItNS45LTMuMy04bC05LjQtOS40Yy0yLjEtMi4xLTUtMy4zLTgtMy4zaC0xNmMtNi4yIDAtMTEuMy01LjEtMTEuMy0xMS4zIDAtMyAxLjItNS45IDMuMy04bDkuNC05LjRjMi4xLTIuMSA1LTMuMyA4LTMuM2gzMmM2LjIgMCAxMS4zLTUuMSAxMS4zLTExLjN2LTkuNGMwLTYuMi01LjEtMTEuMy0xMS4zLTExLjNoLTM2LjdjLTguOCAwLTE2IDcuMi0xNiAxNnY0LjVjMCA2LjktNC40IDEzLTEwLjkgMTUuMmwtMzEuNiAxMC41Yy0zLjMgMS4xLTUuNSA0LjEtNS41IDcuNnYyLjJjMCA0LjQtMy42IDgtOCA4aC0xNmMtNC40IDAtOC0zLjYtOC04cy0zLjYtOC04LThIMjQ3Yy0zIDAtNS44IDEuNy03LjIgNC40bC05LjQgMTguN2MtMi43IDUuNC04LjIgOC44LTE0LjMgOC44SDE5NGMtOC44IDAtMTYtNy4yLTE2LTE2VjE5OWMwLTQuMiAxLjctOC4zIDQuNy0xMS4zbDIwLjEtMjAuMWM0LjYtNC42IDcuMi0xMC45IDcuMi0xNy41IDAtMy40IDIuMi02LjUgNS41LTcuNmw0MC0xMy4zYzEuNy0uNiAzLjItMS41IDQuNC0yLjdsMjYuOC0yNi44YzIuMS0yLjEgMy4zLTUgMy4zLTggMC02LjItNS4xLTExLjMtMTEuMy0xMS4zSDI1OGwtMTYgMTZ2OGMwIDQuNC0zLjYgOC04IDhoLTE2Yy00LjQgMC04LTMuNi04LTh2LTIwYzAtMi41IDEuMi00LjkgMy4yLTYuNGwyOC45LTIxLjdjMS45LS4xIDMuOC0uMyA1LjctLjNDMzU4LjMgNTYgNDQ4IDE0NS43IDQ0OCAyNTZ6TTEzMC4xIDE0OS4xYzAtMyAxLjItNS45IDMuMy04bDI1LjQtMjUuNGMyLjEtMi4xIDUtMy4zIDgtMy4zIDYuMiAwIDExLjMgNS4xIDExLjMgMTEuM3YxNmMwIDMtMS4yIDUuOS0zLjMgOGwtOS40IDkuNGMtMi4xIDIuMS01IDMuMy04IDMuM2gtMTZjLTYuMiAwLTExLjMtNS4xLTExLjMtMTEuM3ptMTI4IDMwNi40di03LjFjMC04LjgtNy4yLTE2LTE2LTE2aC0yMC4yYy0xMC44IDAtMjYuNy01LjMtMzUuNC0xMS44bC0yMi4yLTE2LjdjLTExLjUtOC42LTE4LjItMjIuMS0xOC4yLTM2LjR2LTIzLjljMC0xNiA4LjQtMzAuOCAyMi4xLTM5bDQyLjktMjUuN2M3LjEtNC4yIDE1LjItNi41IDIzLjQtNi41aDMxLjJjMTAuOSAwIDIxLjQgMy45IDI5LjYgMTAuOWw0My4yIDM3LjFoMTguM2M4LjUgMCAxNi42IDMuNCAyMi42IDkuNGwxNy4zIDE3LjNjMy40IDMuNCA4LjEgNS4zIDEyLjkgNS4zSDQyM2MtMzIuNCA1OC45LTkzLjggOTkuNS0xNjQuOSAxMDMuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2xvYmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM2LjUgMTYwQzMyMiA3MC43IDI4Ny44IDggMjQ4IDhzLTc0IDYyLjctODguNSAxNTJoMTc3ek0xNTIgMjU2YzAgMjIuMiAxLjIgNDMuNSAzLjMgNjRoMTg1LjNjMi4xLTIwLjUgMy4zLTQxLjggMy4zLTY0cy0xLjItNDMuNS0zLjMtNjRIMTU1LjNjLTIuMSAyMC41LTMuMyA0MS44LTMuMyA2NHptMzI0LjctOTZjLTI4LjYtNjcuOS04Ni41LTEyMC40LTE1OC0xNDEuNiAyNC40IDMzLjggNDEuMiA4NC43IDUwIDE0MS42aDEwOHpNMTc3LjIgMTguNEMxMDUuOCAzOS42IDQ3LjggOTIuMSAxOS4zIDE2MGgxMDhjOC43LTU2LjkgMjUuNS0xMDcuOCA0OS45LTE0MS42ek00ODcuNCAxOTJIMzcyLjdjMi4xIDIxIDMuMyA0Mi41IDMuMyA2NHMtMS4yIDQzLTMuMyA2NGgxMTQuNmM1LjUtMjAuNSA4LjYtNDEuOCA4LjYtNjRzLTMuMS00My41LTguNS02NHpNMTIwIDI1NmMwLTIxLjUgMS4yLTQzIDMuMy02NEg4LjZDMy4yIDIxMi41IDAgMjMzLjggMCAyNTZzMy4yIDQzLjUgOC42IDY0aDExNC42Yy0yLTIxLTMuMi00Mi41LTMuMi02NHptMzkuNSA5NmMxNC41IDg5LjMgNDguNyAxNTIgODguNSAxNTJzNzQtNjIuNyA4OC41LTE1MmgtMTc3em0xNTkuMyAxNDEuNmM3MS40LTIxLjIgMTI5LjQtNzMuNyAxNTgtMTQxLjZoLTEwOGMtOC44IDU2LjktMjUuNiAxMDcuOC01MCAxNDEuNnpNMTkuMyAzNTJjMjguNiA2Ny45IDg2LjUgMTIwLjQgMTU4IDE0MS42LTI0LjQtMzMuOC00MS4yLTg0LjctNTAtMTQxLjZoLTEwOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR29sZkJhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQxNiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgNDE2aDIyNGMwIDE3LjctMTQuMyAzMi0zMiAzMmgtMTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjIwYzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnYtMjBjMC0xNy43LTE0LjMtMzItMzItMzJoLTE2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnptMzIwLTIwOGMwIDc0LjItMzkgMTM5LjItOTcuNSAxNzZoLTIyMUMzOSAzNDcuMiAwIDI4Mi4yIDAgMjA4IDAgOTMuMSA5My4xIDAgMjA4IDBzMjA4IDkzLjEgMjA4IDIwOHptLTE4MC4xIDQzLjljMTguMyAwIDMzLjEtMTQuOCAzMy4xLTMzLjEgMC0xNC40LTkuMy0yNi4zLTIyLjEtMzAuOSA5LjYgMjYuOC0xNS42IDUxLjMtNDEuOSA0MS45IDQuNiAxMi44IDE2LjUgMjIuMSAzMC45IDIyLjF6bTQ5LjEgNDYuOWMwLTE0LjQtOS4zLTI2LjMtMjIuMS0zMC45IDkuNiAyNi44LTE1LjYgNTEuMy00MS45IDQxLjkgNC42IDEyLjggMTYuNSAyMi4xIDMwLjkgMjIuMSAxOC4zIDAgMzMuMS0xNC45IDMzLjEtMzMuMXptNjQtNjRjMC0xNC40LTkuMy0yNi4zLTIyLjEtMzAuOSA5LjYgMjYuOC0xNS42IDUxLjMtNDEuOSA0MS45IDQuNiAxMi44IDE2LjUgMjIuMSAzMC45IDIyLjEgMTguMyAwIDMzLjEtMTQuOSAzMy4xLTMzLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvcHVyYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2IDM1MmgtMTZWMjQwYzAtOC44LTcuMi0xNi0xNi0xNmgtMTZ2LTgwYzAtOC44LTcuMi0xNi0xNi0xNmgtMTZWMTZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2MTZoLTY0VjE2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2djE2aC02NFYxNmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnYxNmgtNjRWMTZjMC04LjgtNy4yLTE2LTE2LTE2Uzk2IDcuMiA5NiAxNnYxMTJIODBjLTguOCAwLTE2IDcuMi0xNiAxNnY4MEg0OGMtOC44IDAtMTYgNy4yLTE2IDE2djExMkgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djEyOGMwIDguOCA3LjIgMTYgMTYgMTZoODBWMzUyaDMyVjIyNGgzMnYtOTZoMzJ2OTZoLTMydjEyOGgtMzJ2MTYwaDgwdi04MGMwLTguOCA3LjItMTYgMTYtMTZoNjRjOC44IDAgMTYgNy4yIDE2IDE2djgwaDgwVjM1MmgtMzJWMjI0aC0zMnYtOTZoMzJ2OTZoMzJ2MTI4aDMydjE2MGg4MGM4LjggMCAxNi03LjIgMTYtMTZWMzY4YzAtOC44LTcuMi0xNi0xNi0xNnpNMjMyIDE3NmMwLTguOCA3LjItMTYgMTYtMTZoMTZjOC44IDAgMTYgNy4yIDE2IDE2djQ4aC00OHptNTYgMTc2aC02NHYtNjRjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JhZHVhdGlvbkNhcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjIuMzQgMTUzLjJMMzQzLjQgNjcuNWMtMTUuMi00LjY3LTMxLjYtNC42Ny00Ni43OSAwTDE3LjY2IDE1My4yYy0yMy41NCA3LjIzLTIzLjU0IDM4LjM2IDAgNDUuNTlsNDguNjMgMTQuOTRjLTEwLjY3IDEzLjE5LTE3LjIzIDI5LjI4LTE3Ljg4IDQ2LjlDMzguNzggMjY2LjE1IDMyIDI3Ni4xMSAzMiAyODhjMCAxMC43OCA1LjY4IDE5Ljg1IDEzLjg2IDI1LjY1TDIwLjMzIDQyOC41M0MxOC4xMSA0MzguNTIgMjUuNzEgNDQ4IDM1Ljk0IDQ0OGg1Ni4xMWMxMC4yNCAwIDE3Ljg0LTkuNDggMTUuNjItMTkuNDdMODIuMTQgMzEzLjY1QzkwLjMyIDMwNy44NSA5NiAyOTguNzggOTYgMjg4YzAtMTEuNTctNi40Ny0yMS4yNS0xNS42Ni0yNi44Ny43Ni0xNS4wMiA4LjQ0LTI4LjMgMjAuNjktMzYuNzJMMjk2LjYgMjg0LjVjOS4wNiAyLjc4IDI2LjQ0IDYuMjUgNDYuNzkgMGwyNzguOTUtODUuN2MyMy41NS03LjI0IDIzLjU1LTM4LjM2IDAtNDUuNnpNMzUyLjc5IDMxNS4wOWMtMjguNTMgOC43Ni01Mi44NCAzLjkyLTY1LjU5IDBsLTE0NS4wMi00NC41NUwxMjggMzg0YzAgMzUuMzUgODUuOTYgNjQgMTkyIDY0czE5Mi0yOC42NSAxOTItNjRsLTE0LjE4LTExMy40Ny0xNDUuMDMgNDQuNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyZWF0ZXJUaGFuRXF1YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTUuMjIgMTA3LjY5bDE3NS41NiA2OC4wOS0xNzUuNDQgNjguMDVjLTE4LjM5IDYuMDMtMjcuODggMjQuMzktMjEuMiA0MWwxMi4wOSAzMC4wOGM2LjY4IDE2LjYxIDI2Ljk5IDI1LjE5IDQ1LjM4IDE5LjE1TDM5My4wMiAyMTQuMmMxMy43Ny00LjUyIDIyLjk4LTE2LjYxIDIyLjk4LTMwLjE3di0xNS45NmMwLTEzLjU2LTkuMjEtMjUuNjUtMjIuOTgtMzAuMTdMOTEuMyAxNy45MmMtMTguMjktNi0zOC41MSAyLjUzLTQ1LjE1IDE5LjA2TDM0LjEyIDY2LjljLTYuNjQgMTYuNTMgMi44MSAzNC43OSAyMS4xIDQwLjc5ek00MjQgNDAwSDI0Yy0xMy4yNSAwLTI0IDEwLjc0LTI0IDI0djQ4YzAgMTMuMjUgMTAuNzUgMjQgMjQgMjRoNDAwYzEzLjI1IDAgMjQtMTAuNzUgMjQtMjR2LTQ4YzAtMTMuMjYtMTAuNzUtMjQtMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyZWF0ZXJUaGFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2NS41MiAyMDkuODVMNTkuMjIgNjcuMDFjLTE2LjA2LTcuNDktMzUuMTUtLjU0LTQyLjY0IDE1LjUyTDMuMDEgMTExLjYxYy03LjQ5IDE2LjA2LS41NCAzNS4xNSAxNS41MiA0Mi42NEwyMzYuOTYgMjU2LjEgMTguNDkgMzU3Ljk5QzIuNDcgMzY1LjQ2LTQuNDYgMzg0LjUgMy4wMSA0MDAuNTJsMTMuNTIgMjlDMjQgNDQ1LjU0IDQzLjA0IDQ1Mi40NyA1OS4wNiA0NDVsMzA2LjQ3LTE0Mi45MWEzMi4wMDMgMzIuMDAzIDAgMCAwIDE4LjQ4LTI5di0zNC4yM2MtLjAxLTEyLjQ1LTcuMjEtMjMuNzYtMTguNDktMjkuMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaW1hY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHpNMTQ0IDQwMGgtOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ2LThoNDB2NDB6bTAtNTZoLTQwdi04YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDh2NDB6bS04LTEzNmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMnptNzIgMTkyaC00OHYtNDBoNDh2NDB6bTAtNTZoLTQ4di00MGg0OHY0MHptNjQgNTZoLTQ4di00MGg0OHY0MHptMC01NmgtNDh2LTQwaDQ4djQwem02NCA1NmgtNDh2LTQwaDQ4djQwem0wLTU2aC00OHYtNDBoNDh2NDB6bS04LTEwNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTY0IDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmgtOHYtNDBoNDB2OHptMC0yNGgtNDB2LTQwaDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JpbkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em02My43IDEyOC43YzcuNi0xMS40IDI0LjctMTEuNyAzMi43IDAgMTIuNCAxOC40IDE1LjEgMzYuOSAxNS43IDU1LjMtLjUgMTguNC0zLjMgMzYuOS0xNS43IDU1LjMtNy42IDExLjQtMjQuNyAxMS43LTMyLjcgMC0xMi40LTE4LjQtMTUuMS0zNi45LTE1LjctNTUuMy41LTE4LjQgMy4zLTM2LjkgMTUuNy01NS4zem0tMTYwIDBjNy42LTExLjQgMjQuNy0xMS43IDMyLjcgMCAxMi40IDE4LjQgMTUuMSAzNi45IDE1LjcgNTUuMy0uNSAxOC40LTMuMyAzNi45LTE1LjcgNTUuMy03LjYgMTEuNC0yNC43IDExLjctMzIuNyAwLTEyLjQtMTguNC0xNS4xLTM2LjktMTUuNy01NS4zLjUtMTguNCAzLjMtMzYuOSAxNS43LTU1LjN6TTI0OCA0MzJjLTYwLjYgMC0xMzQuNS0zOC4zLTE0My44LTkzLjMtMi0xMS44IDkuMy0yMS42IDIwLjctMTcuOUMxNTUuMSAzMzAuNSAyMDAgMzM2IDI0OCAzMzZzOTIuOS01LjUgMTIzLjEtMTUuMmMxMS40LTMuNyAyMi42IDYuMSAyMC43IDE3LjktOS4zIDU1LTgzLjIgOTMuMy0xNDMuOCA5My4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmluQmVhbVN3ZWF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MDQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1NiAxMjhjMjYuNSAwIDQ4LTIxIDQ4LTQ3IDAtMjAtMjguNS02MC40LTQxLjYtNzcuOC0zLjItNC4zLTkuNi00LjMtMTIuOCAwQzQzNi41IDIwLjYgNDA4IDYxIDQwOCA4MWMwIDI2IDIxLjUgNDcgNDggNDd6bTAgMzJjLTQ0LjEgMC04MC0zNS40LTgwLTc5IDAtNC40LjMtMTQuMiA4LjEtMzIuMkMzNDUgMjMuMSAyOTguMyA4IDI0OCA4IDExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhjMC0zNS4xLTcuNC02OC40LTIwLjUtOTguNi02LjMgMS41LTEyLjcgMi42LTE5LjUgMi42em0tMTI4LThjMjMuOCAwIDUyLjcgMjkuMyA1NiA3MS40LjcgOC42LTEwLjggMTItMTQuOSA0LjVsLTkuNS0xN2MtNy43LTEzLjctMTkuMi0yMS42LTMxLjUtMjEuNnMtMjMuOCA3LjktMzEuNSAyMS42bC05LjUgMTdjLTQuMSA3LjQtMTUuNiA0LTE0LjktNC41IDMuMS00Mi4xIDMyLTcxLjQgNTUuOC03MS40em0tMTYwIDBjMjMuOCAwIDUyLjcgMjkuMyA1NiA3MS40LjcgOC42LTEwLjggMTItMTQuOSA0LjVsLTkuNS0xN2MtNy43LTEzLjctMTkuMi0yMS42LTMxLjUtMjEuNnMtMjMuOCA3LjktMzEuNSAyMS42bC05LjUgMTdjLTQuMiA3LjQtMTUuNiA0LTE0LjktNC41IDMuMS00Mi4xIDMyLTcxLjQgNTUuOC03MS40em04MCAyODBjLTYwLjYgMC0xMzQuNS0zOC4zLTE0My44LTkzLjMtMi0xMS44IDkuMy0yMS42IDIwLjctMTcuOUMxNTUuMSAzMzAuNSAyMDAgMzM2IDI0OCAzMzZzOTIuOS01LjUgMTIzLjEtMTUuMmMxMS41LTMuNyAyMi42IDYuMiAyMC43IDE3LjktOS4zIDU1LTgzLjIgOTMuMy0xNDMuOCA5My4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmluQmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em04MCAxNDRjMjMuOCAwIDUyLjcgMjkuMyA1NiA3MS40LjcgOC42LTEwLjggMTEuOS0xNC45IDQuNWwtOS41LTE3Yy03LjctMTMuNy0xOS4yLTIxLjYtMzEuNS0yMS42cy0yMy44IDcuOS0zMS41IDIxLjZsLTkuNSAxN2MtNC4xIDcuMy0xNS42IDQtMTQuOS00LjUgMy4xLTQyLjEgMzItNzEuNCA1NS44LTcxLjR6bS0xNjAgMGMyMy44IDAgNTIuNyAyOS4zIDU2IDcxLjQuNyA4LjYtMTAuOCAxMS45LTE0LjkgNC41bC05LjUtMTdjLTcuNy0xMy43LTE5LjItMjEuNi0zMS41LTIxLjZzLTIzLjggNy45LTMxLjUgMjEuNmwtOS41IDE3Yy00LjIgNy40LTE1LjYgNC0xNC45LTQuNSAzLjEtNDIuMSAzMi03MS40IDU1LjgtNzEuNHptODAgMjgwYy02MC42IDAtMTM0LjUtMzguMy0xNDMuOC05My4zLTItMTEuOSA5LjQtMjEuNiAyMC43LTE3LjlDMTU1LjEgMzMwLjUgMjAwIDMzNiAyNDggMzM2czkyLjktNS41IDEyMy4xLTE1LjJjMTEuNC0zLjcgMjIuNiA2LjEgMjAuNyAxNy45LTkuMyA1NS04My4yIDkzLjMtMTQzLjggOTMuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JpbkhlYXJ0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4ek05MC40IDE4My42YzYuNy0xNy42IDI2LjctMjYuNyA0NC45LTIxLjlsNy4xIDEuOSAyLTcuMWM1LTE4LjEgMjIuOC0zMC45IDQxLjUtMjcuOSAyMS40IDMuNCAzNC40IDI0LjIgMjguOCA0NC41TDE5NS4zIDI0M2MtMS4yIDQuNS01LjkgNy4yLTEwLjUgNmwtNzAuMi0xOC4yYy0yMC40LTUuNC0zMS45LTI3LTI0LjItNDcuMnpNMjQ4IDQzMmMtNjAuNiAwLTEzNC41LTM4LjMtMTQzLjgtOTMuMy0yLTExLjggOS4yLTIxLjUgMjAuNy0xNy45QzE1NS4xIDMzMC41IDIwMCAzMzYgMjQ4IDMzNnM5Mi45LTUuNSAxMjMuMS0xNS4yYzExLjQtMy42IDIyLjYgNi4xIDIwLjcgMTcuOS05LjMgNTUtODMuMiA5My4zLTE0My44IDkzLjN6bTEzMy40LTIwMS4zbC03MC4yIDE4LjJjLTQuNSAxLjItOS4yLTEuNS0xMC41LTZMMjgxLjMgMTczYy01LjYtMjAuMyA3LjQtNDEuMSAyOC44LTQ0LjUgMTguNi0zIDM2LjQgOS44IDQxLjUgMjcuOWwyIDcuMSA3LjEtMS45YzE4LjItNC43IDM4LjIgNC4zIDQ0LjkgMjEuOSA3LjcgMjAuMy0zLjggNDEuOS0yNC4yIDQ3LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaW5TcXVpbnRUZWFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDkuNiAxMTEuOWMyMi42LTMuMiA3My41LTEyIDg4LjMtMjYuOCAxOS4yLTE5LjIgMTguOS01MC42LS43LTcwLjJTNDQ2LTUgNDI2LjkgMTQuMmMtMTQuOCAxNC44LTIzLjUgNjUuNy0yNi44IDg4LjMtLjggNS41IDMuOSAxMC4yIDkuNSA5LjR6TTEwMi40IDQwMC4xYy0yMi42IDMuMi03My41IDEyLTg4LjMgMjYuOC0xOS4xIDE5LjEtMTguOCA1MC42LjggNzAuMnM1MSAxOS45IDcwLjIuN2MxNC44LTE0LjggMjMuNS02NS43IDI2LjgtODguMy44LTUuNS0zLjktMTAuMi05LjUtOS40em0zMTEuNy0yNTYuNWMtMzMgMy45LTQ4LjYtMjUuMS00NS43LTQ1LjcgMy40LTI0IDcuNC00Mi4xIDExLjUtNTYuNUMyODUuMS0xMy40IDE2MS44LS41IDgwLjYgODAuNi0uNSAxNjEuNy0xMy40IDI4NSA0MS40IDM3OS45YzE0LjQtNC4xIDMyLjQtOCA1Ni41LTExLjUgMzMuMi0zLjkgNDguNiAyNS4yIDQ1LjcgNDUuNy0zLjQgMjQtNy40IDQyLjEtMTEuNSA1Ni41IDk0LjggNTQuOCAyMTguMSA0MS45IDI5OS4zLTM5LjJzOTQtMjA0LjQgMzkuMi0yOTkuM2MtMTQuNCA0LjEtMzIuNSA4LTU2LjUgMTEuNXpNMjU1LjcgMTA2YzMuMy0xMy4yIDIyLjQtMTEuNSAyMy42IDEuOGw0LjggNTIuMyA1Mi4zIDQuOGMxMy40IDEuMiAxNC45IDIwLjMgMS44IDIzLjZsLTkwLjUgMjIuNmMtOC45IDIuMi0xNi43LTUuOS0xNC41LTE0LjVsMjIuNS05MC42em0tOTAuOSAyMzAuM0wxNjAgMjg0bC01Mi4zLTQuOGMtMTMuNC0xLjItMTQuOS0yMC4zLTEuOC0yMy42bDkwLjUtMjIuNmM4LjgtMi4yIDE2LjcgNS44IDE0LjUgMTQuNUwxODguMyAzMzhjLTMuMSAxMy4yLTIyLjIgMTEuNy0yMy41LTEuN3ptMjE1LjcgNDQuMmMtMjkuMyAyOS4zLTc1LjcgNTAuNC0xMTYuNyA1MC40LTE4LjkgMC0zNi42LTQuNS01MS0xNC43LTkuOC02LjktOC43LTIxLjggMi0yNy4yIDI4LjMtMTQuNiA2My45LTQyLjQgOTcuOC03Ni4zczYxLjctNjkuNiA3Ni4zLTk3LjhjNS40LTEwLjUgMjAuMi0xMS45IDI3LjMtMiAzMi4zIDQ1LjMgNy4xIDEyNC43LTM1LjcgMTY3LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaW5TcXVpbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMzMuOCAxODkuN2w4MC00OGMxMS42LTYuOSAyNCA3LjcgMTUuNCAxOEwzNDMuNiAyMDhsMzMuNiA0MC4zYzguNyAxMC40LTMuOSAyNC44LTE1LjQgMThsLTgwLTQ4Yy03LjctNC43LTcuNy0xNS45IDAtMjAuNnptLTE2My0zMGMtOC42LTEwLjMgMy44LTI0LjkgMTUuNC0xOGw4MCA0OGM3LjggNC43IDcuOCAxNS45IDAgMjAuNmwtODAgNDhjLTExLjUgNi44LTI0LTcuNi0xNS40LTE4bDMzLjYtNDAuMy0zMy42LTQwLjN6TTI0OCA0MzJjLTYwLjYgMC0xMzQuNS0zOC4zLTE0My44LTkzLjMtMi0xMS45IDkuNC0yMS42IDIwLjctMTcuOUMxNTUuMSAzMzAuNSAyMDAgMzM2IDI0OCAzMzZzOTIuOS01LjUgMTIzLjEtMTUuMmMxMS41LTMuNyAyMi42IDYuMiAyMC43IDE3LjktOS4zIDU1LTgzLjIgOTMuMy0xNDMuOCA5My4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmluU3RhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHpNOTQuNiAxNjguOWwzNC45LTUgMTUuNS0zMS42YzIuOS01LjggMTEtNS44IDEzLjkgMGwxNS41IDMxLjYgMzQuOSA1YzYuMiAxIDguOSA4LjYgNC4zIDEzLjJsLTI1LjQgMjQuNiA2IDM0LjljMSA2LjItNS4zIDExLTExIDcuOUwxNTIgMjMzLjNsLTMxLjMgMTYuM2MtNS43IDMuMS0xMi0xLjctMTEtNy45bDYtMzQuOS0yNS40LTI0LjZjLTQuNi00LjctMS45LTEyLjMgNC4zLTEzLjN6TTI0OCA0MzJjLTYwLjYgMC0xMzQuNS0zOC4zLTE0My44LTkzLjMtMi0xMS44IDkuMy0yMS41IDIwLjctMTcuOUMxNTUuMSAzMzAuNSAyMDAgMzM2IDI0OCAzMzZzOTIuOS01LjUgMTIzLjEtMTUuMmMxMS41LTMuNyAyMi42IDYuMSAyMC43IDE3LjktOS4zIDU1LTgzLjIgOTMuMy0xNDMuOCA5My4zem0xNTcuNy0yNDkuOWwtMjUuNCAyNC42IDYgMzQuOWMxIDYuMi01LjMgMTEtMTEgNy45TDM0NCAyMzMuM2wtMzEuMyAxNi4zYy01LjcgMy4xLTEyLTEuNy0xMS03LjlsNi0zNC45LTI1LjQtMjQuNmMtNC41LTQuNi0xLjktMTIuMiA0LjMtMTMuMmwzNC45LTUgMTUuNS0zMS42YzIuOS01LjggMTEtNS44IDEzLjkgMGwxNS41IDMxLjYgMzQuOSA1YzYuMy45IDkgOC41IDQuNCAxMy4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmluVGVhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAyLjQgMjU2LjFjLTIyLjYgMy4yLTczLjUgMTItODguMyAyNi44LTE5LjEgMTkuMS0xOC44IDUwLjYuOCA3MC4yczUxIDE5LjkgNzAuMi43YzE0LjgtMTQuOCAyMy41LTY1LjcgMjYuOC04OC4zLjgtNS41LTMuOS0xMC4yLTkuNS05LjR6bTUyMy40IDI2LjhjLTE0LjgtMTQuOC02NS43LTIzLjUtODguMy0yNi44LTUuNS0uOC0xMC4zIDMuOS05LjUgOS41IDMuMiAyMi42IDEyIDczLjUgMjYuOCA4OC4zIDE5LjIgMTkuMiA1MC42IDE4LjkgNzAuMi0uN3MyMC01MS4yLjgtNzAuM3ptLTEyOS40LTEyLjhjLTMuOC0yNi42IDE5LjEtNDkuNSA0NS43LTQ1LjcgOC45IDEuMyAxNi44IDIuNyAyNC4zIDQuMUM1NTIuNyAxMDQuNSA0NDcuNyA4IDMyMCA4Uzg3LjMgMTA0LjUgNzMuNiAyMjguNWM3LjUtMS40IDE1LjQtMi44IDI0LjMtNC4xIDMzLjItMy45IDQ4LjYgMjUuMyA0NS43IDQ1LjctMTEuOCA4Mi4zLTI5LjkgMTAwLjQtMzUuOCAxMDYuNC0uOS45LTIgMS42LTMgMi41IDQyLjcgNzQuNiAxMjMgMTI1IDIxNS4yIDEyNXMxNzIuNS01MC40IDIxNS4yLTEyNS4xYy0xLS45LTIuMS0xLjUtMy0yLjUtNS45LTUuOS0yNC0yNC0zNS44LTEwNi4zek00MDAgMTUyYzIzLjggMCA1Mi43IDI5LjMgNTYgNzEuNC43IDguNi0xMC44IDEyLTE0LjkgNC41bC05LjUtMTdjLTcuNy0xMy43LTE5LjItMjEuNi0zMS41LTIxLjZzLTIzLjggNy45LTMxLjUgMjEuNmwtOS41IDE3Yy00LjIgNy40LTE1LjYgNC0xNC45LTQuNSAzLjEtNDIuMSAzMi03MS40IDU1LjgtNzEuNHptLTE2MCAwYzIzLjggMCA1Mi43IDI5LjMgNTYgNzEuNC43IDguNi0xMC44IDEyLTE0LjkgNC41bC05LjUtMTdjLTcuNy0xMy43LTE5LjItMjEuNi0zMS41LTIxLjZzLTIzLjggNy45LTMxLjUgMjEuNmwtOS41IDE3Yy00LjIgNy40LTE1LjYgNC0xNC45LTQuNSAzLjEtNDIuMSAzMi03MS40IDU1LjgtNzEuNHptODAgMjgwYy02MC42IDAtMTM0LjUtMzguMy0xNDMuOC05My4zLTItMTEuNyA5LjItMjEuNiAyMC43LTE3LjlDMjI3LjEgMzMwLjUgMjcyIDMzNiAzMjAgMzM2czkyLjktNS41IDEyMy4xLTE1LjJjMTEuNC0zLjcgMjIuNiA2LjEgMjAuNyAxNy45LTkuMyA1NS04My4yIDkzLjMtMTQzLjggOTMuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JpblRvbmd1ZVNxdWludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTMuMSAzNzQuNmMtMTQuNC02LjUtMzEuMSAyLjItMzQuNiAxNy42bC0xLjggNy44Yy0yLjEgOS4yLTE1LjIgOS4yLTE3LjMgMGwtMS44LTcuOGMtMy41LTE1LjQtMjAuMi0yNC4xLTM0LjYtMTcuNi0uOS40LjMtLjItMTguOSA5LjR2NjNjMCAzNS4yIDI4IDY0LjUgNjMuMSA2NC45IDM1LjcuNSA2NC45LTI4LjQgNjQuOS02NHYtNjRjLTE5LjUtOS42LTE4LjItOC45LTE5LTkuM3pNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZjMCAxMDYuMyA2NyAxOTYuNyAxNjEgMjMyLTUuNi0xMi4yLTktMjUuNy05LTQwdi00NS41Yy0yNC43LTE2LjItNDMuNS0zOC4xLTQ3LjgtNjMuOC0yLTExLjggOS4yLTIxLjUgMjAuNy0xNy45QzE1NS4xIDMzMC41IDIwMCAzMzYgMjQ4IDMzNnM5Mi45LTUuNSAxMjMuMS0xNS4yYzExLjQtMy43IDIyLjYgNi4xIDIwLjcgMTcuOS00LjMgMjUuNy0yMy4xIDQ3LjYtNDcuOCA2My44VjQ0OGMwIDE0LjMtMy40IDI3LjgtOSA0MCA5NC0zNS4zIDE2MS0xMjUuNyAxNjEtMjMyQzQ5NiAxMTkgMzg1IDggMjQ4IDh6bS0zMy44IDIxMC4zbC04MCA0OGMtMTEuNSA2LjgtMjQtNy42LTE1LjQtMThsMzMuNi00MC4zLTMzLjYtNDAuM2MtOC42LTEwLjMgMy44LTI0LjkgMTUuNC0xOGw4MCA0OGM3LjcgNC43IDcuNyAxNS45IDAgMjAuNnptMTYzIDMwYzguNyAxMC40LTMuOSAyNC44LTE1LjQgMThsLTgwLTQ4Yy03LjgtNC43LTcuOC0xNS45IDAtMjAuNmw4MC00OGMxMS43LTYuOSAyMy45IDcuNyAxNS40IDE4TDM0My42IDIwOGwzMy42IDQwLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaW5Ub25ndWVXaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0NCAxODRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNC0xMC43LTI0LTI0LTI0ek0yNDggOEMxMTEgOCAwIDExOSAwIDI1NmMwIDEwNi4zIDY3IDE5Ni43IDE2MSAyMzItNS42LTEyLjItOS0yNS43LTktNDB2LTQ1LjVjLTI0LjctMTYuMi00My41LTM4LjEtNDcuOC02My44LTItMTEuOCA5LjMtMjEuNSAyMC43LTE3LjlDMTU1LjEgMzMwLjUgMjAwIDMzNiAyNDggMzM2czkyLjktNS41IDEyMy4xLTE1LjJjMTEuNS0zLjcgMjIuNiA2LjEgMjAuNyAxNy45LTQuMyAyNS43LTIzLjEgNDcuNi00Ny44IDYzLjhWNDQ4YzAgMTQuMy0zLjQgMjcuOC05IDQwIDk0LTM1LjMgMTYxLTEyNS43IDE2MS0yMzJDNDk2IDExOSAzODUgOCAyNDggOHptLTU2IDIyNWwtOS41LTguNWMtMTQuOC0xMy4yLTQ2LjItMTMuMi02MSAwTDExMiAyMzNjLTguNSA3LjQtMjEuNi4zLTE5LjgtMTAuOCA0LTI1LjIgMzQuMi00Mi4xIDU5LjktNDIuMVMyMDggMTk3IDIxMiAyMjIuMmMxLjYgMTEuMS0xMS42IDE4LjItMjAgMTAuOHptMTUyIDM5Yy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0IDY0IDI4LjcgNjQgNjQtMjguNyA2NC02NCA2NHptLTUwLjkgMTAyLjZjLTE0LjQtNi41LTMxLjEgMi4yLTM0LjYgMTcuNmwtMS44IDcuOGMtMi4xIDkuMi0xNS4yIDkuMi0xNy4zIDBsLTEuOC03LjhjLTMuNS0xNS40LTIwLjItMjQuMS0zNC42LTE3LjYtLjkuNC4zLS4yLTE4LjkgOS40djYzYzAgMzUuMiAyOCA2NC41IDYzLjEgNjQuOSAzNS43LjUgNjQuOS0yOC40IDY0LjktNjR2LTY0Yy0xOS41LTkuNi0xOC4yLTguOS0xOS05LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaW5Ub25ndWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZjMCAxMDYuMyA2NyAxOTYuNyAxNjEgMjMyLTUuNi0xMi4yLTktMjUuNy05LTQwdi00NS41Yy0yNC43LTE2LjItNDMuNS0zOC4xLTQ3LjgtNjMuOC0yLTExLjggOS4zLTIxLjUgMjAuNy0xNy45QzE1NS4xIDMzMC41IDIwMCAzMzYgMjQ4IDMzNnM5Mi45LTUuNSAxMjMuMS0xNS4yYzExLjQtMy42IDIyLjYgNi4xIDIwLjcgMTcuOS00LjMgMjUuNy0yMy4xIDQ3LjYtNDcuOCA2My44VjQ0OGMwIDE0LjMtMy40IDI3LjgtOSA0MCA5NC0zNS4zIDE2MS0xMjUuNyAxNjEtMjMyQzQ5NiAxMTkgMzg1IDggMjQ4IDh6bS04MCAyMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bS0zNC45IDEzNC42Yy0xNC40LTYuNS0zMS4xIDIuMi0zNC42IDE3LjZsLTEuOCA3LjhjLTIuMSA5LjItMTUuMiA5LjItMTcuMyAwbC0xLjgtNy44Yy0zLjUtMTUuNC0yMC4yLTI0LjEtMzQuNi0xNy42LS45LjQuMy0uMi0xOC45IDkuNHY2M2MwIDM1LjIgMjggNjQuNSA2My4xIDY0LjkgMzUuNy41IDY0LjktMjguNCA2NC45LTY0di02NGMtMTkuNS05LjYtMTguMi04LjktMTktOS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmluV2luayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI1NmMwIDEzNyAxMTEgMjQ4IDI0OCAyNDhzMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4IDAgMTE5IDAgMjU2em0yMDAtNDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzIgMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyem0xNjggMjVsLTkuNS04LjVjLTE0LjgtMTMuMi00Ni4yLTEzLjItNjEgMEwyODggMjMzYy04LjMgNy40LTIxLjYuNC0xOS44LTEwLjggNC0yNS4yIDM0LjItNDIuMSA1OS45LTQyLjFTMzg0IDE5NyAzODggMjIyLjJjMS42IDExLTExLjUgMTguMi0yMCAxMC44em0tMjQzLjEgODcuOEMxNTUuMSAzMzAuNSAyMDAgMzM2IDI0OCAzMzZzOTIuOS01LjUgMTIzLjEtMTUuMmMxMS4zLTMuNyAyMi42IDYgMjAuNyAxNy45LTkuMiA1NS04My4yIDkzLjMtMTQzLjggOTMuM3MtMTM0LjUtMzguMy0xNDMuOC05My4zYy0yLTExLjkgOS4zLTIxLjYgMjAuNy0xNy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTgwIDE2OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzJ6bS0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzJ6bTgwIDI1NmMtNjAuNiAwLTEzNC41LTM4LjMtMTQzLjgtOTMuMy0yLTExLjggOS4zLTIxLjYgMjAuNy0xNy45QzE1NS4xIDMzMC41IDIwMCAzMzYgMjQ4IDMzNnM5Mi45LTUuNSAxMjMuMS0xNS4yYzExLjMtMy43IDIyLjYgNi4xIDIwLjcgMTcuOS05LjMgNTUtODMuMiA5My4zLTE0My44IDkzLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaXBIb3Jpem9udGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDI4OEgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bTE2MCAwaC02NGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bTE2MCAwaC02NGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTk2IDk2SDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjY0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNjRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptMTYwIDBoLTY0Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjY0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNjRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptMTYwIDBoLTY0Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjY0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNjRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JpcExpbmVzVmVydGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgNDk2VjE2YzAtOC44LTcuMi0xNi0xNi0xNkg0OGMtOC44IDAtMTYgNy4yLTE2IDE2djQ4MGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2em0xMjggMFYxNmMwLTguOC03LjItMTYtMTYtMTZoLTMyYy04LjggMC0xNiA3LjItMTYgMTZ2NDgwYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaXBMaW5lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYgMjg4SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDQ4MGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnptMC0xMjhIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoNDgwYzguOCAwIDE2LTcuMiAxNi0xNnYtMzJjMC04LjgtNy4yLTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmlwVmVydGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMzJIMzJDMTQuMzMgMzIgMCA0Ni4zMyAwIDY0djY0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNjRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlY2NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyem0wIDE2MEgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bTAgMTYwSDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjY0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNjRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpNMjg4IDMyaC02NGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptMCAxNjBoLTY0Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjY0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNjRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptMCAxNjBoLTY0Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjY0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNjRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3VpdGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMi42MyAzOUw0NzMgOS4zN2EzMiAzMiAwIDAgMC00NS4yNiAwTDM4MS40NiA1NS43YTM1LjE0IDM1LjE0IDAgMCAwLTguNTMgMTMuNzlMMzYwLjc3IDEwNmwtNzYuMjYgNzYuMjZjLTEyLjE2LTguNzYtMjUuNS0xNS43NC00MC4xLTE5LjE0LTMzLjQ1LTcuNzgtNjctLjg4LTg5Ljg4IDIyYTgyLjQ1IDgyLjQ1IDAgMCAwLTIwLjI0IDMzLjQ3Yy02IDE4LjU2LTIzLjIxIDMyLjY5LTQyLjE1IDM0LjQ2LTIzLjcgMi4yNy00NS43MyAxMS40NS02Mi42MSAyOC40NEMtMTYuMTEgMzI3LTcuOSA0MDkgNDcuNTggNDY0LjQ1UzE4NSA1MjggMjMwLjU2IDQ4Mi41MmMxNy0xNi44OCAyNi4xNi0zOC45IDI4LjQ1LTYyLjcxIDEuNzYtMTguODUgMTUuODktMzYuMTMgMzQuNDMtNDIuMTRhODIuNiA4Mi42IDAgMCAwIDMzLjQ4LTIwLjI1YzIyLjg3LTIyLjg4IDI5Ljc0LTU2LjM2IDIyLTg5Ljc1LTMuMzktMTQuNjQtMTAuMzctMjgtMTkuMTYtNDAuMkw0MDYgMTUxLjIzbDM2LjQ4LTEyLjE2YTM1LjE0IDM1LjE0IDAgMCAwIDEzLjc5LTguNTNsNDYuMzMtNDYuMzJhMzIgMzIgMCAwIDAgLjAzLTQ1LjIyek0yMDggMzUyYTQ4IDQ4IDAgMSAxIDQ4LTQ4IDQ4IDQ4IDAgMCAxLTQ4IDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA4MHYzNTJjMCAyNi41MS0yMS40OSA0OC00OCA0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFY4MGMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDM1MmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4em0tMTEyIDQ4aC0zMmMtOC44MzcgMC0xNiA3LjE2My0xNiAxNnY4MEgxNjB2LTgwYzAtOC44MzctNy4xNjMtMTYtMTYtMTZoLTMyYy04LjgzNyAwLTE2IDcuMTYzLTE2IDE2djIyNGMwIDguODM3IDcuMTYzIDE2IDE2IDE2aDMyYzguODM3IDAgMTYtNy4xNjMgMTYtMTZ2LTgwaDEyOHY4MGMwIDguODM3IDcuMTYzIDE2IDE2IDE2aDMyYzguODM3IDAgMTYtNy4xNjMgMTYtMTZWMTQ0YzAtOC44MzctNy4xNjMtMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbWJ1cmdlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2SDQ4YTQ4IDQ4IDAgMCAwIDAgOTZoNDE2YTQ4IDQ4IDAgMCAwIDAtOTZ6bTE2IDEyOEgzMmExNiAxNiAwIDAgMC0xNiAxNnYxNmE2NCA2NCAwIDAgMCA2NCA2NGgzNTJhNjQgNjQgMCAwIDAgNjQtNjR2LTE2YTE2IDE2IDAgMCAwLTE2LTE2ek01OC42NCAyMjRoMzk0LjcyYzM0LjU3IDAgNTQuNjItNDMuOSAzNC44Mi03NS44OEM0NDggODMuMiAzNTkuNTUgMzIuMSAyNTYgMzJjLTEwMy41NC4xLTE5MiA1MS4yLTIzMi4xOCAxMTYuMTFDNCAxODAuMDkgMjQuMDcgMjI0IDU4LjY0IDIyNHpNMzg0IDExMmExNiAxNiAwIDEgMS0xNiAxNiAxNiAxNiAwIDAgMSAxNi0xNnpNMjU2IDgwYTE2IDE2IDAgMSAxLTE2IDE2IDE2IDE2IDAgMCAxIDE2LTE2em0tMTI4IDMyYTE2IDE2IDAgMSAxLTE2IDE2IDE2IDE2IDAgMCAxIDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW1tZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTcxLjMxIDE5My45NGwtMjIuNjMtMjIuNjNjLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBsLTExLjMxIDExLjMxLTI4LjktMjguOWM1LjYzLTIxLjMxLjM2LTQ0LjktMTYuMzUtNjEuNjFsLTQ1LjI1LTQ1LjI1Yy02Mi40OC02Mi40OC0xNjMuNzktNjIuNDgtMjI2LjI4IDBsOTAuNTEgNDUuMjV2MTguNzVjMCAxNi45NyA2Ljc0IDMzLjI1IDE4Ljc1IDQ1LjI1bDQ5LjE0IDQ5LjE0YzE2LjcxIDE2LjcxIDQwLjMgMjEuOTggNjEuNjEgMTYuMzVsMjguOSAyOC45LTExLjMxIDExLjMxYy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzbDIyLjYzIDIyLjYzYzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsOTAuNTEtOTAuNTFjNi4yMy02LjI0IDYuMjMtMTYuMzctLjAyLTIyLjYyem0tMjg2LjcyLTE1LjJjLTMuNy0zLjctNi44NC03Ljc5LTkuODUtMTEuOTVMMTkuNjQgNDA0Ljk2Yy0yNS41NyAyMy44OC0yNi4yNiA2NC4xOS0xLjUzIDg4LjkzczY1LjA1IDI0LjA1IDg4LjkzLTEuNTNsMjM4LjEzLTI1NS4wN2MtMy45Ni0yLjkxLTcuOS01Ljg3LTExLjQ0LTkuNDFsLTQ5LjE0LTQ5LjE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW1zYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDkuMzQgMzA3LjI1QzUwNC4yOCAyOTUuNTYgNDkyLjc1IDI4OCA0ODAgMjg4aC02NFY4MGMwLTIyLTE4LTQwLTQwLTQwcy00MCAxOC00MCA0MHYxMzRjMCA1LjUyLTQuNDggMTAtMTAgMTBoLTIwYy01LjUyIDAtMTAtNC40OC0xMC0xMFY0MGMwLTIyLTE4LTQwLTQwLTQwcy00MCAxOC00MCA0MHYxNzRjMCA1LjUyLTQuNDggMTAtMTAgMTBoLTIwYy01LjUyIDAtMTAtNC40OC0xMC0xMFY4MGMwLTIyLTE4LTQwLTQwLTQwUzk2IDU4IDk2IDgwdjIwOEgzMmMtMTIuNzUgMC0yNC4yOCA3LjU2LTI5LjM0IDE5LjI1YTMxLjk2NiAzMS45NjYgMCAwIDAgNS45NCAzNC41OGwxMDIuNjkgMTEwLjAzQzE0Ni45NyA0OTAuMDggMTk5LjY5IDUxMiAyNTYgNTEyczEwOS4wMy0yMS45MiAxNDQuNzItNjAuMTRMNTAzLjQgMzQxLjgzYTMxLjk2NiAzMS45NjYgMCAwIDAgNS45NC0zNC41OHpNMjU2IDQxNmMtNTMuMDIgMC05Ni02NC05Ni02NHM0Mi45OC02NCA5Ni02NCA5NiA2NCA5NiA2NC00Mi45OCA2NC05NiA2NHptMC05NmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnMxNC4zMyAzMiAzMiAzMiAzMi0xNC4zMyAzMi0zMi0xNC4zMy0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZEhvbGRpbmdIZWFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzUuMyAyNTAuNWM3IDcuNCAxOC40IDcuNCAyNS41IDBsMTA4LjktMTE0LjJjMzEuNi0zMy4yIDI5LjgtODguMi01LjYtMTE4LjgtMzAuOC0yNi43LTc2LjctMjEuOS0xMDQuOSA3LjdMMjg4IDM2LjlsLTExLjEtMTEuNkMyNDguNy00LjQgMjAyLjgtOS4yIDE3MiAxNy41Yy0zNS4zIDMwLjYtMzcuMiA4NS42LTUuNiAxMTguOGwxMDguOSAxMTQuMnptMjkwIDc3LjZjLTExLjgtMTAuNy0zMC4yLTEwLTQyLjYgMEw0MzAuMyA0MDJjLTExLjMgOS4xLTI1LjQgMTQtNDAgMTRIMjcyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2aDc4LjNjMTUuOSAwIDMwLjctMTAuOSAzMy4zLTI2LjYgMy4zLTIwLTEyLjEtMzcuNC0zMS42LTM3LjRIMTkyYy0yNyAwLTUzLjEgOS4zLTc0LjEgMjYuM0w3MS40IDM4NEgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djk2YzAgOC44IDcuMiAxNiAxNiAxNmgzNTYuOGMxNC41IDAgMjguNi00LjkgNDAtMTRMNTY0IDM3N2MxNS4yLTEyLjEgMTYuNC0zNS4zIDEuMy00OC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kSG9sZGluZ01lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTU5Ljg4LDE3NS44Mmg2NHY2NGExNiwxNiwwLDAsMCwxNiwxNmg2NGExNiwxNiwwLDAsMCwxNi0xNnYtNjRoNjRhMTYsMTYsMCwwLDAsMTYtMTZ2LTY0YTE2LDE2LDAsMCwwLTE2LTE2aC02NHYtNjRhMTYsMTYsMCwwLDAtMTYtMTZoLTY0YTE2LDE2LDAsMCwwLTE2LDE2djY0aC02NGExNiwxNiwwLDAsMC0xNiwxNnY2NEExNiwxNiwwLDAsMCwxNTkuODgsMTc1LjgyWk01NjguMDcsMzM2LjEzYTM5LjkxLDM5LjkxLDAsMCwwLTU1LjkzLTguNDdMMzkyLjQ3LDQxNS44NEgyNzEuODZhMTYsMTYsMCwwLDEsMC0zMkgzNTAuMWMxNiwwLDMwLjc1LTEwLjg3LDMzLjM3LTI2LjYxYTMyLjA2LDMyLjA2LDAsMCwwLTMxLjYyLTM3LjM4aC0xNjBhMTE3LjcsMTE3LjcsMCwwLDAtNzQuMTIsMjYuMjVsLTQ2LjUsMzcuNzRIMTUuODdhMTYuMTEsMTYuMTEsMCwwLDAtMTYsMTZ2OTZhMTYuMTEsMTYuMTEsMCwwLDAsMTYsMTZoMzQ3YTEwNC44LDEwNC44LDAsMCwwLDYxLjctMjAuMjdMNTU5LjYsMzkyQTQwLDQwLDAsMCwwLDU2OC4wNywzMzYuMTNaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRIb2xkaW5nVXNkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3MS4wNiwxNDQuM2w1NC4yNywxNC4zYTguNTksOC41OSwwLDAsMSw2LjYzLDguMWMwLDQuNi00LjA5LDguNC05LjEyLDguNGgtMzUuNmEzMCwzMCwwLDAsMS0xMS4xOS0yLjJjLTUuMjQtMi4yLTExLjI4LTEuNy0xNS4zLDJsLTE5LDE3LjVhMTEuNjgsMTEuNjgsMCwwLDAtMi4yNSwyLjY2LDExLjQyLDExLjQyLDAsMCwwLDMuODgsMTUuNzQsODMuNzcsODMuNzcsMCwwLDAsMzQuNTEsMTEuNVYyNDBjMCw4LjgsNy44MywxNiwxNy4zNywxNmgxNy4zN2M5LjU1LDAsMTcuMzgtNy4yLDE3LjM4LTE2VjIyMi40YzMyLjkzLTMuNiw1Ny44NC0zMSw1My41LTYzLTMuMTUtMjMtMjIuNDYtNDEuMy00Ni41Ni00Ny43TDI4Mi42OCw5Ny40YTguNTksOC41OSwwLDAsMS02LjYzLTguMWMwLTQuNiw0LjA5LTguNCw5LjEyLTguNGgzNS42QTMwLDMwLDAsMCwxLDMzMiw4My4xYzUuMjMsMi4yLDExLjI4LDEuNywxNS4zLTJsMTktMTcuNUExMS4zMSwxMS4zMSwwLDAsMCwzNjguNDcsNjFhMTEuNDMsMTEuNDMsMCwwLDAtMy44NC0xNS43OCw4My44Miw4My44MiwwLDAsMC0zNC41Mi0xMS41VjE2YzAtOC44LTcuODItMTYtMTcuMzctMTZIMjk1LjM3QzI4NS44MiwwLDI3OCw3LjIsMjc4LDE2VjMzLjZjLTMyLjg5LDMuNi01Ny44NSwzMS01My41MSw2M0MyMjcuNjMsMTE5LjYsMjQ3LDEzNy45LDI3MS4wNiwxNDQuM1pNNTY1LjI3LDMyOC4xYy0xMS44LTEwLjctMzAuMi0xMC00Mi42LDBMNDMwLjI3LDQwMmE2My42NCw2My42NCwwLDAsMS00MCwxNEgyNzJhMTYsMTYsMCwwLDEsMC0zMmg3OC4yOWMxNS45LDAsMzAuNzEtMTAuOSwzMy4yNS0yNi42YTMxLjIsMzEuMiwwLDAsMCwuNDYtNS40NkEzMiwzMiwwLDAsMCwzNTIsMzIwSDE5MmExMTcuNjYsMTE3LjY2LDAsMCwwLTc0LjEsMjYuMjlMNzEuNCwzODRIMTZBMTYsMTYsMCwwLDAsMCw0MDB2OTZhMTYsMTYsMCwwLDAsMTYsMTZIMzcyLjc3YTY0LDY0LDAsMCwwLDQwLTE0TDU2NCwzNzdhMzIsMzIsMCwwLDAsMS4yOC00OC45WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kSG9sZGluZ1dhdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAyNTZjNTMgMCA5Ni00Mi4xIDk2LTk0IDAtNDAtNTcuMS0xMjAuNy04My4yLTE1NS42LTYuNC04LjUtMTkuMi04LjUtMjUuNiAwQzI0OS4xIDQxLjMgMTkyIDEyMiAxOTIgMTYyYzAgNTEuOSA0MyA5NCA5NiA5NHptMjc3LjMgNzIuMWMtMTEuOC0xMC43LTMwLjItMTAtNDIuNiAwTDQzMC4zIDQwMmMtMTEuMyA5LjEtMjUuNCAxNC00MCAxNEgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoNzguM2MxNS45IDAgMzAuNy0xMC45IDMzLjMtMjYuNiAzLjMtMjAtMTIuMS0zNy40LTMxLjYtMzcuNEgxOTJjLTI3IDAtNTMuMSA5LjMtNzQuMSAyNi4zTDcxLjQgMzg0SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2OTZjMCA4LjggNy4yIDE2IDE2IDE2aDM1Ni44YzE0LjUgMCAyOC42LTQuOSA0MC0xNEw1NjQgMzc3YzE1LjItMTIuMSAxNi40LTM1LjMgMS4zLTQ4Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRIb2xkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2NS4zIDMyOC4xYy0xMS44LTEwLjctMzAuMi0xMC00Mi42IDBMNDMwLjMgNDAyYy0xMS4zIDkuMS0yNS40IDE0LTQwIDE0SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmg3OC4zYzE1LjkgMCAzMC43LTEwLjkgMzMuMy0yNi42IDMuMy0yMC0xMi4xLTM3LjQtMzEuNi0zNy40SDE5MmMtMjcgMC01My4xIDkuMy03NC4xIDI2LjNMNzEuNCAzODRIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnY5NmMwIDguOCA3LjIgMTYgMTYgMTZoMzU2LjhjMTQuNSAwIDI4LjYtNC45IDQwLTE0TDU2NCAzNzdjMTUuMi0xMi4xIDE2LjQtMzUuMyAxLjMtNDguOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZExpemFyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgNDgwaDE5MlYzNjMuNzc4YTk1Ljk5OCA5NS45OTggMCAwIDAtMTQuODMzLTUxLjI2M0wzOTguMTI3IDU0LjM2OEE0OCA0OCAwIDAgMCAzNTcuNTQ0IDMySDI0QzEwLjc0NSAzMiAwIDQyLjc0NSAwIDU2djE2YzAgMzAuOTI4IDI1LjA3MiA1NiA1NiA1NmgyMjkuOTgxYzEyLjg0NCAwIDIxLjU1NiAxMy4wNjcgMTYuNjE1IDI0LjkyM2wtMjEuNDEgNTEuMzg1QTMyIDMyIDAgMCAxIDI1MS42NDggMjI0SDEyOGMtMzUuMzQ2IDAtNjQgMjguNjU0LTY0IDY0djhjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDE0Ny40MDZhNDcuOTk1IDQ3Ljk5NSAwIDAgMSAyNS42OTIgNy40NTVsMTExLjc0OCA3MC44MTFBMjQuMDAxIDI0LjAwMSAwIDAgMSAzODQgNDE4LjUzOVY0ODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRNaWRkbGVGaW5nZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDc5LjkzIDMxNy4xMmEzNy4zMyAzNy4zMyAwIDAgMC0yOC4yOC0zNi4xOUw0MTYgMjcydi00OS41OWMwLTExLjQ0LTkuNjktMjEuMjktMjMuMTUtMjMuNTRsLTM4LjQtNi40QzMzNi42MyAxODkuNSAzMjAgMjAwLjg2IDMyMCAyMTZ2MzJhOCA4IDAgMCAxLTE2IDBWNTBjMC0yNi4yOC0yMC4yNS00OS4yLTQ2LjUyLTUwQTQ4IDQ4IDAgMCAwIDIwOCA0OHYyMDBhOCA4IDAgMCAxLTE2IDB2LTMyYzAtMTUuMTUtMTYuNjMtMjYuNTEtMzQuNDUtMjMuNTRsLTMwLjY4IDUuMTJjLTE4IDMtMzAuODcgMTYuMTItMzAuODcgMzEuMzhWMzc2YTggOCAwIDAgMS0xNiAwdi03NmwtMjcuMzYgMTVBMzcuMzQgMzcuMzQgMCAwIDAgMzIgMzQ4LjR2NzMuNDdhMzcuMzEgMzcuMzEgMCAwIDAgMTAuOTMgMjYuMzlsMzAuOTMgMzAuOTNBMTEyIDExMiAwIDAgMCAxNTMuMDUgNTEyaDIxNUExMTIgMTEyIDAgMCAwIDQ4MCA0MDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRQYXBlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDguNzgxIDEyOC4wMDdDMzg2LjM1NiAxMjcuNTc4IDM2OCAxNDYuMzYgMzY4IDE2OC43OVYyNTZoLThWNzkuNzljMC0yMi40My0xOC4zNTYtNDEuMjEyLTQwLjc4MS00MC43ODNDMjk3LjQ4OCAzOS40MjMgMjgwIDU3LjE2OSAyODAgNzl2MTc3aC04VjQwLjc5QzI3MiAxOC4zNiAyNTMuNjQ0LS40MjIgMjMxLjIxOS4wMDcgMjA5LjQ4OC40MjMgMTkyIDE4LjE2OSAxOTIgNDB2MjE2aC04VjgwLjc5YzAtMjIuNDMtMTguMzU2LTQxLjIxMi00MC43ODEtNDAuNzgzQzEyMS40ODggNDAuNDIzIDEwNCA1OC4xNjkgMTA0IDgwdjIzNS45OTJsLTMxLjY0OC00My41MTljLTEyLjk5My0xNy44NjYtMzguMDA5LTIxLjgxNy01NS44NzctOC44MjMtMTcuODY1IDEyLjk5NC0yMS44MTUgMzguMDEtOC44MjIgNTUuODc3bDEyNS42MDEgMTcyLjcwNUE0OCA0OCAwIDAgMCAxNzIuMDczIDUxMmgxOTcuNTljMjIuMjc0IDAgNDEuNjIyLTE1LjMyNCA0Ni43MjQtMzcuMDA2bDI2LjUwOC0xMTIuNjZhMTkyLjAxMSAxOTIuMDExIDAgMCAwIDUuMTA0LTQzLjk3NVYxNjhjLjAwMS0yMS44MzEtMTcuNDg3LTM5LjU3Ny0zOS4yMTgtMzkuOTkzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kUGVhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDA4IDIxNmMtMjIuMDkyIDAtNDAgMTcuOTA5LTQwIDQwaC04di0zMmMwLTIyLjA5MS0xNy45MDgtNDAtNDAtNDBzLTQwIDE3LjkwOS00MCA0MHYzMmgtOFY0OGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4cy00OCAyMS40OS00OCA0OHYyMDhoLTEzLjU3Mkw5Mi42ODggNzguNDQ5QzgyLjk5NCA1My43NzQgNTUuMTM0IDQxLjYzIDMwLjQ2MSA1MS4zMjQgNS43ODcgNjEuMDE3LTYuMzU2IDg4Ljg3NyAzLjMzNyAxMTMuNTUxbDc0Ljc2NSAxOTAuMzQyLTMxLjA5IDI0Ljg3MmMtMTUuMzgxIDEyLjMwNi0xOS41MTUgMzMuOTc4LTkuNzQxIDUxLjA4MWw2NCAxMTJBMzkuOTk4IDM5Ljk5OCAwIDAgMCAxMzYgNTEyaDI0MGMxOC41NjIgMCAzNC42ODYtMTIuNzcgMzguOTM3LTMwLjgzOGwzMi0xMzZBMzkuOTcgMzkuOTcgMCAwIDAgNDQ4IDMzNnYtODBjMC0yMi4wOTEtMTcuOTA4LTQwLTQwLTQwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kUG9pbnREb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkxLjgyNiA0NjcuMlYzMTcuOTY2Yy04LjI0OCA1Ljg0MS0xNi41NTggMTAuNTctMjQuOTE4IDE0LjE1M0MzNS4wOTggMzQ1Ljc1Mi0uMDE0IDMyMi4yMjIgMCAyODhjLjAwOC0xOC42MTYgMTAuODk3LTMyLjIwMyAyOS4wOTItNDAgMjguMjg2LTEyLjEyMiA2NC4zMjktNzguNjQ4IDc3LjMyMy0xMDcuNTM0IDcuOTU2LTE3Ljg1NyAyNS40NzktMjguNDUzIDQzLjg0NS0yOC40NjRsLjAwMS0uMDAyaDE3MS41MjZjMTEuODEyIDAgMjEuODk3IDguNTk2IDIzLjcwMyAyMC4yNjkgNy4yNSA0Ni44MzcgMzguNDgzIDYxLjc2IDM4LjMxNSAxMjMuNzMxLS4wMDcgMi43MjQuMTk1IDEzLjI1NC4xOTUgMTYgMCA1MC42NTQtMjIuMTIyIDgxLjU3NC03MS4yNjMgNzIuNi05LjI5NyAxOC41OTctMzkuNDg2IDMwLjczOC02Mi4zMTUgMTYuNDUtMjEuMTc3IDI0LjY0NS01My44OTYgMjIuNjM5LTcwLjk0NCA2LjI5OVY0NjcuMmMwIDI0LjE1LTIwLjIwMSA0NC44LTQzLjgyNiA0NC44LTIzLjI4MyAwLTQzLjgyNi0yMS4zNS00My44MjYtNDQuOHpNMTEyIDcyVjI0YzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNGgxOTJjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0djQ4YzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgxMzZjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNHptMjEyLTI0YzAtMTEuMDQ2LTguOTU0LTIwLTIwLTIwcy0yMCA4Ljk1NC0yMCAyMCA4Ljk1NCAyMCAyMCAyMCAyMC04Ljk1NCAyMC0yMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZFBvaW50TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NC44IDE1NS44MjZoMTQ5LjIzNGMtNS44NDEtOC4yNDgtMTAuNTctMTYuNTU4LTE0LjE1My0yNC45MThDMTY2LjI0OCA5OS4wOTggMTg5Ljc3OCA2My45ODYgMjI0IDY0YzE4LjYxNi4wMDggMzIuMjAzIDEwLjg5NyA0MCAyOS4wOTIgMTIuMTIyIDI4LjI4NiA3OC42NDggNjQuMzI5IDEwNy41MzQgNzcuMzIzIDE3Ljg1NyA3Ljk1NiAyOC40NTMgMjUuNDc5IDI4LjQ2NCA0My44NDVsLjAwMi4wMDF2MTcxLjUyNmMwIDExLjgxMi04LjU5NiAyMS44OTctMjAuMjY5IDIzLjcwMy00Ni44MzcgNy4yNS02MS43NiAzOC40ODMtMTIzLjczMSAzOC4zMTUtMi43MjQtLjAwNy0xMy4yNTQuMTk1LTE2IC4xOTUtNTAuNjU0IDAtODEuNTc0LTIyLjEyMi03Mi42LTcxLjI2My0xOC41OTctOS4yOTctMzAuNzM4LTM5LjQ4Ni0xNi40NS02Mi4zMTUtMjQuNjQ1LTIxLjE3Ny0yMi42MzktNTMuODk2LTYuMjk5LTcwLjk0NEg0NC44Yy0yNC4xNSAwLTQ0LjgtMjAuMjAxLTQ0LjgtNDMuODI2IDAtMjMuMjgzIDIxLjM1LTQzLjgyNiA0NC44LTQzLjgyNnpNNDQwIDE3Nmg0OGMxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR2MTkyYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNGgtNDhjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNFYyMDBjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0em0yNCAyMTJjMTEuMDQ2IDAgMjAtOC45NTQgMjAtMjBzLTguOTU0LTIwLTIwLTIwLTIwIDguOTU0LTIwIDIwIDguOTU0IDIwIDIwIDIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kUG9pbnRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgMTk5LjY1MmMwIDIzLjYyNS0yMC42NSA0My44MjYtNDQuOCA0My44MjZoLTk5Ljg1MWMxNi4zNCAxNy4wNDggMTguMzQ2IDQ5Ljc2Ni02LjI5OSA3MC45NDQgMTQuMjg4IDIyLjgyOSAyLjE0NyA1My4wMTctMTYuNDUgNjIuMzE1QzM1My41NzQgNDI1Ljg3OCAzMjIuNjU0IDQ0OCAyNzIgNDQ4Yy0yLjc0NiAwLTEzLjI3Ni0uMjAzLTE2LS4xOTUtNjEuOTcxLjE2OC03Ni44OTQtMzEuMDY1LTEyMy43MzEtMzguMzE1QzEyMC41OTYgNDA3LjY4MyAxMTIgMzk3LjU5OSAxMTIgMzg1Ljc4NlYyMTQuMjYxbC4wMDItLjAwMWMuMDExLTE4LjM2NiAxMC42MDctMzUuODg5IDI4LjQ2NC00My44NDUgMjguODg2LTEyLjk5NCA5NS40MTMtNDkuMDM4IDEwNy41MzQtNzcuMzIzIDcuNzk3LTE4LjE5NCAyMS4zODQtMjkuMDg0IDQwLTI5LjA5MiAzNC4yMjItLjAxNCA1Ny43NTIgMzUuMDk4IDQ0LjExOSA2Ni45MDgtMy41ODMgOC4zNTktOC4zMTIgMTYuNjctMTQuMTUzIDI0LjkxOEg0NjcuMmMyMy40NSAwIDQ0LjggMjAuNTQzIDQ0LjggNDMuODI2ek05NiAyMDB2MTkyYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgyNGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0VjIwMGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjRoNDhjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0ek02OCAzNjhjMC0xMS4wNDYtOC45NTQtMjAtMjAtMjBzLTIwIDguOTU0LTIwIDIwIDguOTU0IDIwIDIwIDIwIDIwLTguOTU0IDIwLTIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kUG9pbnRVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMzUuNjUyIDBjMjMuNjI1IDAgNDMuODI2IDIwLjY1IDQzLjgyNiA0NC44djk5Ljg1MWMxNy4wNDgtMTYuMzQgNDkuNzY2LTE4LjM0NiA3MC45NDQgNi4yOTkgMjIuODI5LTE0LjI4OCA1My4wMTctMi4xNDcgNjIuMzE1IDE2LjQ1QzM2MS44NzggMTU4LjQyNiAzODQgMTg5LjM0NiAzODQgMjQwYzAgMi43NDYtLjIwMyAxMy4yNzYtLjE5NSAxNiAuMTY4IDYxLjk3MS0zMS4wNjUgNzYuODk0LTM4LjMxNSAxMjMuNzMxQzM0My42ODMgMzkxLjQwNCAzMzMuNTk5IDQwMCAzMjEuNzg2IDQwMEgxNTAuMjYxbC0uMDAxLS4wMDJjLTE4LjM2Ni0uMDExLTM1Ljg4OS0xMC42MDctNDMuODQ1LTI4LjQ2NEM5My40MjEgMzQyLjY0OCA1Ny4zNzcgMjc2LjEyMiAyOS4wOTIgMjY0IDEwLjg5NyAyNTYuMjAzLjAwOCAyNDIuNjE2IDAgMjI0Yy0uMDE0LTM0LjIyMiAzNS4wOTgtNTcuNzUyIDY2LjkwOC00NC4xMTkgOC4zNTkgMy41ODMgMTYuNjcgOC4zMTIgMjQuOTE4IDE0LjE1M1Y0NC44YzAtMjMuNDUgMjAuNTQzLTQ0LjggNDMuODI2LTQ0Ljh6TTEzNiA0MTZoMTkyYzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHY0OGMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMTM2Yy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjR2LTQ4YzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNHptMTY4IDI4Yy0xMS4wNDYgMC0yMCA4Ljk1NC0yMCAyMHM4Ljk1NCAyMCAyMCAyMCAyMC04Ljk1NCAyMC0yMC04Ljk1NC0yMC0yMC0yMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZFBvaW50ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDI0MHY5NmMwIDMuMDg0LS4zNTYgNi4xNTktMS4wNjMgOS4xNjJsLTMyIDEzNkM0MTAuNjg2IDQ5OS4yMyAzOTQuNTYyIDUxMiAzNzYgNTEySDE2OGE0MC4wMDQgNDAuMDA0IDAgMCAxLTMyLjM1LTE2LjQ3M2wtMTI3Ljk5Ny0xNzZjLTEyLjk5My0xNy44NjYtOS4wNDMtNDIuODgzIDguODIyLTU1Ljg3NiAxNy44NjctMTIuOTk0IDQyLjg4NC05LjA0MyA1NS44NzcgOC44MjNMMTA0IDMxNS45OTJWNDBjMC0yMi4wOTEgMTcuOTA4LTQwIDQwLTQwczQwIDE3LjkwOSA0MCA0MHYyMDBoOHYtNDBjMC0yMi4wOTEgMTcuOTA4LTQwIDQwLTQwczQwIDE3LjkwOSA0MCA0MHY0MGg4di0yNGMwLTIyLjA5MSAxNy45MDgtNDAgNDAtNDBzNDAgMTcuOTA5IDQwIDQwdjI0aDhjMC0yMi4wOTEgMTcuOTA4LTQwIDQwLTQwczQwIDE3LjkwOSA0MCA0MHptLTI1NiA4MGgtOHY5Nmg4di05NnptODggMGgtOHY5Nmg4di05NnptODggMGgtOHY5Nmg4di05NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZFJvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0LjggODBjLTI2LjktLjQtNDguOCAyMS4yLTQ4LjggNDhoLThWOTYuOGMwLTI2LjMtMjAuOS00OC4zLTQ3LjItNDguOC0yNi45LS40LTQ4LjggMjEuMi00OC44IDQ4djMyaC04VjgwLjhjMC0yNi4zLTIwLjktNDguMy00Ny4yLTQ4LjgtMjYuOS0uNC00OC44IDIxLjItNDguOCA0OHY0OGgtOFY5Ni44YzAtMjYuMy0yMC45LTQ4LjMtNDcuMi00OC44LTI2LjktLjQtNDguOCAyMS4yLTQ4LjggNDh2MTM2bC04LTcuMXYtNDguMWMwLTI2LjMtMjAuOS00OC4zLTQ3LjItNDguOEMyMS45IDEyNy42IDAgMTQ5LjIgMCAxNzZ2NjYuNGMwIDI3LjQgMTEuNyA1My41IDMyLjIgNzEuOGwxMTEuNyA5OS4zYzEwLjIgOS4xIDE2LjEgMjIuMiAxNi4xIDM1Ljl2Ni43YzAgMTMuMyAxMC43IDI0IDI0IDI0aDI0MGMxMy4zIDAgMjQtMTAuNyAyNC0yNHYtMi45YzAtMTIuOCAyLjYtMjUuNSA3LjUtMzcuM2w0OS0xMTYuM2M1LTExLjggNy41LTI0LjUgNy41LTM3LjNWMTI4LjhjMC0yNi4zLTIwLjktNDguNC00Ny4yLTQ4Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRTY2lzc29ycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTYgNDQwYzAtMjIuMDkyIDE3LjkwOS00MCA0MC00MHYtOGgtMzJjLTIyLjA5MSAwLTQwLTE3LjkwOC00MC00MHMxNy45MDktNDAgNDAtNDBoMzJ2LThINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhzMjEuNDktNDggNDgtNDhoMjA4di0xMy41NzJsLTE3Ny41NTEtNjkuNzRjLTI0LjY3NC05LjY5NC0zNi44MTgtMzcuNTU1LTI3LjEyNS02Mi4yMjggOS42OTMtMjQuNjc0IDM3LjU1NC0zNi44MTcgNjIuMjI4LTI3LjEyNGwxOTAuMzQyIDc0Ljc2NSAyNC44NzItMzEuMDljMTIuMzA2LTE1LjM4MSAzMy45NzgtMTkuNTE1IDUxLjA4MS05Ljc0MWwxMTIgNjRBNDAuMDAyIDQwLjAwMiAwIDAgMSA1MTIgMTY4djI0MGMwIDE4LjU2Mi0xMi43NyAzNC42ODYtMzAuODM4IDM4LjkzN2wtMTM2IDMyQTM5Ljk4MiAzOS45ODIgMCAwIDEgMzM2IDQ4MGgtODBjLTIyLjA5MSAwLTQwLTE3LjkwOC00MC00MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZFNwYXJrbGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwNi42NiwxNzAuNjRsLjA5LDAsNDkuNTUtMjAuNjVhNy4zMiw3LjMyLDAsMCwwLDMuNjgtNmgwYTcuMjksNy4yOSwwLDAsMC0zLjY4LTZsLTQ5LjU3LTIwLjY3LS4wNywwTDg2LDY3LjY4YTYuNjYsNi42NiwwLDAsMC0xMS45MiwwbC0yMC43LDQ5LjYzLS4wNSwwTDMuNywxMzhBNy4yOSw3LjI5LDAsMCwwLDAsMTQ0SDBhNy4zMiw3LjMyLDAsMCwwLDMuNjgsNkw1My4yNywxNzAuNmwuMDcsMEw3NCwyMjAuMjZhNi42NSw2LjY1LDAsMCwwLDExLjkyLDBsMjAuNjktNDkuNjJaTTQ3MS4zOCw0NjcuNDFsLTEtLjQyLTEtLjVhMzguNjcsMzguNjcsMCwwLDEsMC02OS4xNGwxLS40OSwxLS40MywzNy40OS0xNS42MywxNS42My0zNy40OC40MS0xLC40Ny0uOTVjMy44NS03Ljc0LDEwLjU4LTEzLjYzLDE4LjM1LTE3LjM0LDAtMS4zMy4yNS0yLjY5LjI3LTRWMTQ0YTMyLDMyLDAsMCwwLTY0LDB2NzJhOCw4LDAsMCwxLTgsOEg0NTZhOCw4LDAsMCwxLTgtOFY2NGEzMiwzMiwwLDAsMC02NCwwVjIxNmE4LDgsMCwwLDEtOCw4SDM2MGE4LDgsMCwwLDEtOC04VjMyYTMyLDMyLDAsMCwwLTY0LDBWMjE2YTgsOCwwLDAsMS04LDhIMjY0YTgsOCwwLDAsMS04LThWNjRhMzIsMzIsMCwwLDAtNjQsMHYyNDFsLTIzLjU5LTMyLjQ5YTQwLDQwLDAsMCwwLTY0LjcxLDQ3LjA5TDIyOS4zLDQ5Mi4yMUE0OC4wNyw0OC4wNywwLDAsMCwyNjguMDksNTEySDQ2NS43YzE5LjI0LDAsMzUuNjUtMTEuNzMsNDMuMjQtMjguNzlsLS4wNy0uMTdaTTM0OS43OSwzMzkuNTIsMzIwLDM1MS45M2wtMTIuNDIsMjkuNzhhNCw0LDAsMCwxLTcuMTUsMEwyODgsMzUxLjkzbC0yOS43OS0xMi40MWE0LDQsMCwwLDEsMC03LjE2TDI4OCwzMTkuOTRsMTIuNDItMjkuNzhhNCw0LDAsMCwxLDcuMTUsMEwzMjAsMzE5Ljk0bDI5Ljc5LDEyLjQyYTQsNCwwLDAsMSwwLDcuMTZaTTY0MCw0MzEuOTFhNy4yOCw3LjI4LDAsMCwwLTMuNjgtNmwtNDkuNTctMjAuNjctLjA3LDBMNTY2LDM1NS42M2E2LjY2LDYuNjYsMCwwLDAtMTEuOTIsMGwtMjAuNyw0OS42My0uMDUsMEw0ODMuNyw0MjZhNy4yOCw3LjI4LDAsMCwwLTMuNjgsNmgwYTcuMjksNy4yOSwwLDAsMCwzLjY4LDUuOTVsNDkuNTcsMjAuNjcuMDcsMEw1NTQsNTA4LjIxYTYuNjUsNi42NSwwLDAsMCwxMS45MiwwbDIwLjY5LTQ5LjYyaDBsLjA5LDAsNDkuNTUtMjAuNjZhNy4yOSw3LjI5LDAsMCwwLDMuNjgtNS45NWgwWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kU3BvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEwLjkwMDUsMTQ1LjI3MDI3LDQ0Mi42MDQsNDMyLjA5MzkxQTEwMy45OTUwNywxMDMuOTk1MDcsMCwwLDEsMzQxLjQzNzQ1LDUxMkgyMTQuMDc0YTEzNS45Njk2OCwxMzUuOTY5NjgsMCwwLDEtOTMuMTg0ODktMzYuOTUyOTFMMTIuNTkwNzIsMzczLjEyNzIzYTM5Ljk5MiwzOS45OTIsMCwwLDEsNTQuODEyMi01OC4yNDk4OGw2MC41OTM0Miw1Ny4wMjUyOHYwYTI4My4yNDg0OSwyODMuMjQ4NDksMCwwLDAtMTEuNjcwMy04MC40NjczNEw3My42MzcyNiwxNDcuMzYwMTFhNDAuMDA1NzUsNDAuMDA1NzUsMCwxLDEsNzYuNzE4MzMtMjIuNzE4N2wzNy4xNTQ1OCwxMjUuMzk0NzdhOC4zMzExMyw4LjMzMTEzLDAsMCwwLDE2LjA1NjU2LTQuNDQxNEwxNTMuMjYxODMsNDkuOTU0MDZBMzkuOTk2MzgsMzkuOTk2MzgsMCwxLDEsMjMwLjczMDE1LDMwLjAxNjZsNTYuMDk0OTEsMjE4LjE1ODI1YTEwLjQyMDQ3LDEwLjQyMDQ3LDAsMCwwLDIwLjMwMDE4LS41MDFMMzQ0LjgwNzY2LDYzLjk2OTY2YTQwLjA1Miw0MC4wNTIsMCwwLDEsNTEuMzAyNDUtMzAuMDg5M2MxOS44NjA3Myw2LjI5OTgsMzAuODYyNjIsMjcuNjczNzgsMjYuNjc1NjQsNDguMDg0ODdsLTMzLjgzODY5LDE2NC45NjZhNy41NTE3Miw3LjU1MTcyLDAsMCwwLDE0Ljc0NDA2LDMuMjY2NmwyOS4zOTczLTEyMy40NTg3NGEzOS45OTQxNCwzOS45OTQxNCwwLDEsMSw3Ny44MTIwOCwxOC41MzEyMVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZHNIZWxwaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4OCAxOTJIMzM2djU2YzAgMzkuNy0zMi4zIDcyLTcyIDcycy03Mi0zMi4zLTcyLTcyVjEyNi40bC02NC45IDM5QzEwNy44IDE3Ni45IDk2IDE5Ny44IDk2IDIyMC4ydjQ3LjNsLTgwIDQ2LjJDLjcgMzIyLjUtNC42IDM0Mi4xIDQuMyAzNTcuNGw4MCAxMzguNmM4LjggMTUuMyAyOC40IDIwLjUgNDMuNyAxMS43TDIzMS40IDQ0OEgzNjhjMzUuMyAwIDY0LTI4LjcgNjQtNjRoMTZjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTY0aDhjMTMuMyAwIDI0LTEwLjcgMjQtMjR2LTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0em0xNDcuNy0zNy40TDU1NS43IDE2QzU0Ni45LjcgNTI3LjMtNC41IDUxMiA0LjNMNDA4LjYgNjRIMzA2LjRjLTEyIDAtMjMuNyAzLjQtMzMuOSA5LjdMMjM5IDk0LjZjLTkuNCA1LjgtMTUgMTYuMS0xNSAyNy4xVjI0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwdi04OGgxODRjMzAuOSAwIDU2IDI1LjEgNTYgNTZ2MjguNWw4MC00Ni4yYzE1LjMtOC45IDIwLjUtMjguNCAxMS43LTQzLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRzV2FzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYsMjI0YTQ4LDQ4LDAsMSwwLTQ4LTQ4QTQ4LDQ4LDAsMCwwLDQ5NiwyMjRaTTMxMS40NywxNzguNDVBNTYuNzcsNTYuNzcsMCwwLDEsMzI4LDE3NmE1Niw1NiwwLDAsMSwxOSwzLjQ5bDE1LjM1LTQ4LjYxQTI0LDI0LDAsMCwwLDM0Miw5OS43NGMtMTEuNTMtMS4zNS0yMi4yMSw2LjQ0LTI1LjcxLDE3LjUxbC0yMC45LDY2LjE3Wk05My42NSwzODYuMzNjLjgtLjE5LDEuNTQtLjU0LDIuMzUtLjcxVjM1OS45M2ExNTYsMTU2LDAsMCwxLDEwNy4wNi0xNDhsNzMuNy0yMi43NkwzMTAuOTIsODEuMDVhMjQsMjQsMCwwLDAtMjAuMzMtMzEuMTFjLTExLjUzLTEuMzQtMjIuMjIsNi40NS0yNS43MiwxNy41MkwyMzEuNDIsMTczLjg4YTgsOCwwLDAsMS0xNS4yNi00LjgzTDI1OS41MywzMS4yNkEyNCwyNCwwLDAsMCwyMzkuMi4xNUMyMjcuNjctMS4xOSwyMTcsNi42LDIxMy40OSwxNy42NkwxNjUuNTYsMTY5LjM3YTgsOCwwLDEsMS0xNS4yNi00LjgybDM4LjU2LTEyMmEyNCwyNCwwLDAsMC0yMC4zMy0zMS4xMUMxNTcsMTAsMTQ2LjMyLDE3LjgzLDE0Mi44MiwyOC45bC02MCwxODkuODVMODAuNzYsMTY4LjdBMjQsMjQsMCwwLDAsNTYuOSwxNDQuNTVjLTEzLjIzLS4wNS0yNC43MiwxMC41NC0yNC45LDIzLjg2VjI4MS4xNEExMjMuNjksMTIzLjY5LDAsMCwwLDkzLjY1LDM4Ni4zM1pNNTE5LjEsMzM2SDM2MGE4LDgsMCwwLDEsMC0xNkg0ODhhMjQsMjQsMCwwLDAsMjMuNTQtMjguNzZDNTA5LjM1LDI3OS44NCw0OTguNzEsMjcyLDQ4Ny4xLDI3MkgyODhsNDcuMDktMTcuMDZhMjQsMjQsMCwwLDAtMTQuMTgtNDUuODhMMjEzLjE5LDI0Mi4zMUExMjMuODgsMTIzLjg4LDAsMCwwLDEyOCwzNjB2MjUuNjVhNzkuNzgsNzkuNzgsMCwwLDEsNTgsMTA4LjYzQTExOC45LDExOC45LDAsMCwwLDI0OCw1MTJINDU2YTI0LDI0LDAsMCwwLDIzLjU0LTI4Ljc2QzQ3Ny4zNSw0NzEuODQsNDY2LjcxLDQ2NCw0NTUuMSw0NjRIMzYwYTgsOCwwLDAsMSwwLTE2SDQ4OGEyNCwyNCwwLDAsMCwyMy41NC0yOC43NkM1MDkuMzUsNDA3Ljg0LDQ5OC43MSw0MDAsNDg3LjEsNDAwSDM2MGE4LDgsMCwwLDEsMC0xNkg1MjBhMjQsMjQsMCwwLDAsMjMuNTQtMjguNzZDNTQxLjM1LDM0My44NCw1MzAuNzEsMzM2LDUxOS4xLDMzNlpNNDE2LDY0YTMyLDMyLDAsMSwwLTMyLTMyQTMyLDMyLDAsMCwwLDQxNiw2NFpNMTEyLDQxNmE0OCw0OCwwLDEsMCw0OCw0OEE0OCw0OCwwLDAsMCwxMTIsNDE2WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDQuOCAyMzAuNGMtMTAuNi0xNC4xLTMwLjctMTctNDQuOC02LjQtMTQuMSAxMC42LTE3IDMwLjctNi40IDQ0LjhsMzguMSA1MC44YzQuOCA2LjQgNC4xIDE1LjMtMS41IDIwLjlsLTEyLjggMTIuOGMtNi43IDYuNy0xNy42IDYuMi0yMy42LTEuMUw2NCAyNDQuNFY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDc4LjMgMCA5NnYyMTguNGMwIDEwLjkgMy43IDIxLjUgMTAuNSAzMGwxMDQuMSAxMzQuM2M1IDYuNSA4LjQgMTMuOSAxMC40IDIxLjcgMS44IDYuOSA4LjEgMTEuNiAxNS4zIDExLjZIMjcyYzguOCAwIDE2LTcuMiAxNi0xNlYzODRjMC0yNy43LTktNTQuNi0yNS42LTc2LjhsLTU3LjYtNzYuOHpNNjA4IDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxNDguNGwtODkuOCAxMDcuOGMtNiA3LjItMTcgNy43LTIzLjYgMS4xbC0xMi44LTEyLjhjLTUuNi01LjYtNi4zLTE0LjUtMS41LTIwLjlsMzguMS01MC44YzEwLjYtMTQuMSA3LjctMzQuMi02LjQtNDQuOC0xNC4xLTEwLjYtMzQuMi03LjctNDQuOCA2LjRsLTU3LjYgNzYuOEMzNjEgMzI5LjQgMzUyIDM1Ni4zIDM1MiAzODR2MTEyYzAgOC44IDcuMiAxNiAxNiAxNmgxMzEuN2M3LjEgMCAxMy41LTQuNyAxNS4zLTExLjYgMi03LjggNS40LTE1LjIgMTAuNC0yMS43bDEwNC4xLTEzNC4zYzYuOC04LjUgMTAuNS0xOS4xIDEwLjUtMzBWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRzaGFrZUFsdFNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1OC41OSwxOTUuNiw1MDQuMiwzMTMuOGE2My40LDYzLjQsMCwwLDEsMjIuMjEsMzcuOTFINjI0YTE2LjA1LDE2LjA1LDAsMCwwLDE2LTE2VjE0My45MUExNiwxNiwwLDAsMCw2MjQsMTI4SDUxMkw0NTcuNDEsNzMuNDFBMzIsMzIsMCwwLDAsNDM0LjgsNjRIMzQ4LjkxYTMyLDMyLDAsMCwwLTIxLjYxLDguNDFsLTg4LjEyLDgwLjY4LTI1LjY5LTE5Ljg1TDI4OS4wOSw2NEgyMDUuM2EzMiwzMiwwLDAsMC0yMi42LDkuNDFsLTIwLjM0LDIwLjNMNDUuNDcsMy4zOEExNiwxNiwwLDAsMCwyMyw2LjE5TDMuMzgsMzEuNDZBMTYsMTYsMCwwLDAsNi4xOSw1My45MUw1OTQuNTQsNTA4LjYzQTE2LDE2LDAsMCwwLDYxNyw1MDUuODJsMTkuNjQtMjUuMjdhMTYsMTYsMCwwLDAtMi44MS0yMi40NUwzMDMuNCwyMDIuNzJsMzIuNjktMjkuOTIsMjctMjQuN2ExNiwxNiwwLDAsMSwyMS42MSwyMy42MVpNMTYsMTI4QTE2LjA1LDE2LjA1LDAsMCwwLDAsMTQ0VjMzNS45MWExNiwxNiwwLDAsMCwxNiwxNkgxNDYuM2w5MC41LDgxLjg5YTY0LDY0LDAsMCwwLDkwLTkuM2wuMi0uMiwxNy45MSwxNS41YTM3LjE2LDM3LjE2LDAsMCwwLDUyLjI5LTUuMzlsOC44LTEwLjgyTDIzLjU2LDEyOFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZHNoYWtlU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCwxMjguMjFWMzg0SDY0YTMyLDMyLDAsMCwwLDMyLTMyVjE4NEwyMy44MywxMjguMjFaTTQ4LDMyMC4xYTE2LDE2LDAsMSwxLTE2LDE2QTE2LDE2LDAsMCwxLDQ4LDMyMC4xWm04MCwzMS44MWgxOC4zbDkwLjUsODEuODlhNjQsNjQsMCwwLDAsOTAtOS4zbC4yLS4yLDE3LjkxLDE1LjVhMzcuMTYsMzcuMTYsMCwwLDAsNTIuMjktNS4zOWw4LjgtMTAuODJMMTI4LDIwOC43MlptNDE2LTIyMy43VjM1Mi4xYTMyLDMyLDAsMCwwLDMyLDMyaDY0VjEyOC4yMVpNNTkyLDM1Mi4xYTE2LDE2LDAsMSwxLDE2LTE2QTE2LDE2LDAsMCwxLDU5MiwzNTIuMVpNMzAzLjMzLDIwMi42N2w1OS41OC01NC41N2ExNiwxNiwwLDAsMSwyMS41OSwyMy42MUwzNTguNDEsMTk1LjYsNTA0LDMxMy44YTczLjA4LDczLjA4LDAsMCwxLDcuOTEsNy43VjEyOEw0NTcuMyw3My40MUEzMS43NiwzMS43NiwwLDAsMCw0MzQuNyw2NEgzNDguOGEzMS45MywzMS45MywwLDAsMC0yMS42LDguNDFsLTg4LjA3LDgwLjY0LTI1LjY0LTE5LjgxTDI4OS4wOSw2NEgyMDUuM2EzMiwzMiwwLDAsMC0yMi42LDkuNDFMMTYyLjM2LDkzLjcyLDQ1LjQ3LDMuMzhBMTYsMTYsMCwwLDAsMjMsNi4xOUwzLjM4LDMxLjQ2QTE2LDE2LDAsMCwwLDYuMTksNTMuOTFMNTk0LjUzLDUwOC42M0ExNiwxNiwwLDAsMCw2MTcsNTA1LjgybDE5LjY1LTI1LjI3YTE2LDE2LDAsMCwwLTIuODItMjIuNDVaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRzaGFrZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzQuNyA2NGgtODUuOWMtOCAwLTE1LjcgMy0yMS42IDguNGwtOTguMyA5MGMtLjEuMS0uMi4zLS4zLjQtMTYuNiAxNS42LTE2LjMgNDAuNS0yLjEgNTYgMTIuNyAxMy45IDM5LjQgMTcuNiA1Ni4xIDIuNy4xLS4xLjMtLjEuNC0uMmw3OS45LTczLjJjNi41LTUuOSAxNi43LTUuNSAyMi42IDEgNiA2LjUgNS41IDE2LjYtMSAyMi42bC0yNi4xIDIzLjlMNTA0IDMxMy44YzIuOSAyLjQgNS41IDUgNy45IDcuN1YxMjhsLTU0LjYtNTQuNmMtNS45LTYtMTQuMS05LjQtMjIuNi05LjR6TTU0NCAxMjguMnYyMjMuOWMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NFYxMjguMmgtOTZ6bTQ4IDIyMy45Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6TTAgMzg0aDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjEyOC4ySDBWMzg0em00OC02My45YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2LTE2LTcuMi0xNi0xNmMwLTguOSA3LjItMTYgMTYtMTZ6bTQzNS45IDE4LjZMMzM0LjYgMjE3LjVsLTMwIDI3LjVjLTI5LjcgMjcuMS03NS4yIDI0LjUtMTAxLjctNC40LTI2LjktMjkuNC0yNC44LTc0LjkgNC40LTEwMS43TDI4OS4xIDY0aC04My44Yy04LjUgMC0xNi42IDMuNC0yMi42IDkuNEwxMjggMTI4djIyMy45aDE4LjNsOTAuNSA4MS45YzI3LjQgMjIuMyA2Ny43IDE4LjEgOTAtOS4zbC4yLS4yIDE3LjkgMTUuNWMxNS45IDEzIDM5LjQgMTAuNSA1Mi4zLTUuNGwzMS40LTM4LjYgNS40IDQuNGMxMy43IDExLjEgMzMuOSA5LjEgNDUtNC43bDkuNS0xMS43YzExLjItMTMuOCA5LjEtMzMuOS00LjYtNDUuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFudWtpYWggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMyIDE2MGMtNC40MiAwLTggMy41OC04IDh2MTIwaDMyVjE2OGMwLTQuNDItMy41OC04LTgtOGgtMTZ6bS02NCAwYy00LjQyIDAtOCAzLjU4LTggOHYxMjBoMzJWMTY4YzAtNC40Mi0zLjU4LTgtOC04aC0xNnptMjI0IDBjLTQuNDIgMC04IDMuNTgtOCA4djEyMGgzMlYxNjhjMC00LjQyLTMuNTgtOC04LThoLTE2em02NCAwYy00LjQyIDAtOCAzLjU4LTggOHYxMjBoMzJWMTY4YzAtNC40Mi0zLjU4LTgtOC04aC0xNnptODggOGMwLTQuNDItMy41OC04LTgtOGgtMTZjLTQuNDIgMC04IDMuNTgtOCA4djEyMGgzMlYxNjh6bS00NDAtOGMtNC40MiAwLTggMy41OC04IDh2MTIwaDMyVjE2OGMwLTQuNDItMy41OC04LTgtOGgtMTZ6bTUyMCAwaC0zMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTEyYzAgMTcuNjctMTQuMzMgMzItMzIgMzJIMzUyVjEyOGMwLTguODQtNy4xNi0xNi0xNi0xNmgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djE5Mkg5NmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMlYxNzZjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djExMmMwIDUzLjAyIDQyLjk4IDk2IDk2IDk2aDE5MnY2NEgxMTJjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMzUydi02NGgxOTJjNTMuMDIgMCA5Ni00Mi45OCA5Ni05NlYxNzZjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bS0xNi0zMmMxMy4yNSAwIDI0LTExLjk0IDI0LTI2LjY3UzYwOCA0OCA2MDggNDhzLTI0IDM4LjYxLTI0IDUzLjMzUzU5NC43NSAxMjggNjA4IDEyOHptLTU3NiAwYzEzLjI1IDAgMjQtMTEuOTQgMjQtMjYuNjdTMzIgNDggMzIgNDggOCA4Ni42MSA4IDEwMS4zMyAxOC43NSAxMjggMzIgMTI4em0yODgtNDhjMTMuMjUgMCAyNC0xMS45NCAyNC0yNi42N1MzMjAgMCAzMjAgMHMtMjQgMzguNjEtMjQgNTMuMzNTMzA2Ljc1IDgwIDMyMCA4MHptLTIwOCA0OGMxMy4yNSAwIDI0LTExLjk0IDI0LTI2LjY3UzExMiA0OCAxMTIgNDhzLTI0IDM4LjYxLTI0IDUzLjMzUzk4Ljc1IDEyOCAxMTIgMTI4em02NCAwYzEzLjI1IDAgMjQtMTEuOTQgMjQtMjYuNjdTMTc2IDQ4IDE3NiA0OHMtMjQgMzguNjEtMjQgNTMuMzNTMTYyLjc1IDEyOCAxNzYgMTI4em02NCAwYzEzLjI1IDAgMjQtMTEuOTQgMjQtMjYuNjdTMjQwIDQ4IDI0MCA0OHMtMjQgMzguNjEtMjQgNTMuMzNTMjI2Ljc1IDEyOCAyNDAgMTI4em0xNjAgMGMxMy4yNSAwIDI0LTExLjk0IDI0LTI2LjY3UzQwMCA0OCA0MDAgNDhzLTI0IDM4LjYxLTI0IDUzLjMzUzM4Ni43NSAxMjggNDAwIDEyOHptNjQgMGMxMy4yNSAwIDI0LTExLjk0IDI0LTI2LjY3UzQ2NCA0OCA0NjQgNDhzLTI0IDM4LjYxLTI0IDUzLjMzUzQ1MC43NSAxMjggNDY0IDEyOHptNjQgMGMxMy4yNSAwIDI0LTExLjk0IDI0LTI2LjY3UzUyOCA0OCA1MjggNDhzLTI0IDM4LjYxLTI0IDUzLjMzUzUxNC43NSAxMjggNTI4IDEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFyZEhhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAgMjg4YzAtODAuMjUtNDkuMjgtMTQ4LjkyLTExOS4xOS0xNzcuNjJMMzIwIDE5MlY4MGExNiAxNiAwIDAgMC0xNi0xNmgtOTZhMTYgMTYgMCAwIDAtMTYgMTZ2MTEybC00MC44MS04MS42MkM4MS4yOCAxMzkuMDggMzIgMjA3Ljc1IDMyIDI4OHY2NGg0NDh6bTE2IDk2SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQ4MGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhc2h0YWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQwLjY2NyAxODIuMTA5bDcuMTQzLTQwYzEuMzEzLTcuMzU1LTQuMzQyLTE0LjEwOS0xMS44MTMtMTQuMTA5aC03NC44MWwxNC42MjMtODEuODkxQzM3Ny4xMjMgMzguNzU0IDM3MS40NjggMzIgMzYzLjk5NyAzMmgtNDAuNjMyYTEyIDEyIDAgMCAwLTExLjgxMyA5Ljg5MUwyOTYuMTc1IDEyOEgxOTcuNTRsMTQuNjIzLTgxLjg5MUMyMTMuNDc3IDM4Ljc1NCAyMDcuODIyIDMyIDIwMC4zNSAzMmgtNDAuNjMyYTEyIDEyIDAgMCAwLTExLjgxMyA5Ljg5MUwxMzIuNTI4IDEyOEg1My40MzJhMTIgMTIgMCAwIDAtMTEuODEzIDkuODkxbC03LjE0MyA0MEMzMy4xNjMgMTg1LjI0NiAzOC44MTggMTkyIDQ2LjI4OSAxOTJoNzQuODFMOTguMjQyIDMyMEgxOS4xNDZhMTIgMTIgMCAwIDAtMTEuODEzIDkuODkxbC03LjE0MyA0MEMtMS4xMjMgMzc3LjI0NiA0LjUzMiAzODQgMTIuMDAzIDM4NGg3NC44MUw3Mi4xOSA0NjUuODkxQzcwLjg3NyA0NzMuMjQ2IDc2LjUzMiA0ODAgODQuMDAzIDQ4MGg0MC42MzJhMTIgMTIgMCAwIDAgMTEuODEzLTkuODkxTDE1MS44MjYgMzg0aDk4LjYzNGwtMTQuNjIzIDgxLjg5MUMyMzQuNTIzIDQ3My4yNDYgMjQwLjE3OCA0ODAgMjQ3LjY1IDQ4MGg0MC42MzJhMTIgMTIgMCAwIDAgMTEuODEzLTkuODkxTDMxNS40NzIgMzg0aDc5LjA5NmExMiAxMiAwIDAgMCAxMS44MTMtOS44OTFsNy4xNDMtNDBjMS4zMTMtNy4zNTUtNC4zNDItMTQuMTA5LTExLjgxMy0xNC4xMDloLTc0LjgxbDIyLjg1Ny0xMjhoNzkuMDk2YTEyIDEyIDAgMCAwIDExLjgxMy05Ljg5MXpNMjYxLjg4OSAzMjBoLTk4LjYzNGwyMi44NTctMTI4aDk4LjYzNGwtMjIuODU3IDEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGF0Q293Ym95U2lkZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNjAuOCAyOTEuMDZjLTI4LjYzLTIyLjk0LTYyLTM1LjA2LTk2LjQtMzUuMDZDODcgMjU2IDIxLjQ3IDMxOC43MiAxLjQzIDQxMi4wNmMtMy41NSAxNi42LS40MyAzMy44MyA4LjU3IDQ3LjNDMTguNzUgNDcyLjQ3IDMxLjgzIDQ4MCA0NS44OCA0ODBINTkyYy0xMDMuMjEgMC0xNTUtMzcuMDctMjMzLjE5LTEwNC40NnptMjM0LjY1LTE4LjI5TDQ2OC40IDExNi4yQTY0IDY0IDAgMCAwIDM5MiA2NC40MUwyMDAuODUgMTA1YTY0IDY0IDAgMCAwLTUwLjM1IDU1Ljc5TDE0My42MSAyMjZjNi45LS44MyAxMy43LTIgMjAuNzktMiA0MS43OSAwIDgyIDE0LjU1IDExNy4yOSA0Mi44Mmw5OCA4NC40OEM0NTAuNzYgNDEyLjU0IDQ5NC45IDQ0OCA1OTIgNDQ4YTQ4IDQ4IDAgMCAwIDQ4LTQ4YzAtMjUuMzktMjkuNi0xMTkuMzMtMTQ0LjU1LTEyNy4yM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGF0Q293Ym95IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5MCAyOTYuOUM0ODAuNTEgMjM5LjUxIDQ1MC41MSA2NCAzOTIuMyA2NGMtMTQgMC0yNi40OSA1LjkzLTM3IDE0YTU4LjIxIDU4LjIxIDAgMCAxLTcwLjU4IDBjLTEwLjUxLTgtMjMtMTQtMzctMTQtNTguMiAwLTg4LjIgMTc1LjQ3LTk3LjcxIDIzMi44OEMxODguODEgMzA5LjQ3IDI0My43MyAzMjAgMzIwIDMyMHMxMzEuMjMtMTAuNTEgMTcwLTIzLjF6bTE0Mi45LTM3LjE4YTE2IDE2IDAgMCAwLTE5Ljc1IDEuNWMtMSAuOS0xMDEuMjcgOTAuNzgtMjkzLjE2IDkwLjc4LTE5MC44MiAwLTI5Mi4yMi04OS45NC0yOTMuMjQtOTAuODRBMTYgMTYgMCAwIDAgMSAyNzguNTNDMS43MyAyODAuNTUgNzguMzIgNDgwIDMyMCA0ODBzMzE4LjI3LTE5OS40NSAzMTktMjAxLjQ3YTE2IDE2IDAgMCAwLTYuMDktMTguODF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhdFdpemFyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYgNDQ4SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg0ODBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2em0tMzA0LTY0bC02NC0zMiA2NC0zMiAzMi02NCAzMiA2NCA2NCAzMi02NCAzMi0xNiAzMmgyMDhsLTg2LjQxLTIwMS42M2E2My45NTUgNjMuOTU1IDAgMCAxLTEuODktNDUuNDVMNDE2IDAgMjI4LjQyIDEwNy4xOWExMjcuOTg5IDEyNy45ODkgMCAwIDAtNTMuNDYgNTkuMTVMNjQgNDE2aDE0NGwtMTYtMzJ6bTY0LTIyNGwxNi0zMiAxNiAzMiAzMiAxNi0zMiAxNi0xNiAzMi0xNi0zMi0zMi0xNiAzMi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3NiAzMDR2OTZjMCAyNi41MS0yMS40OSA0OC00OCA0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OHYtOTZjMC0yNi41MSAyMS40OS00OCA0OC00OGg0ODBjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHptLTQ4LTgwYTc5LjU1NyA3OS41NTcgMCAwIDEgMzAuNzc3IDYuMTY1TDQ2Mi4yNSA4NS4zNzRBNDguMDAzIDQ4LjAwMyAwIDAgMCA0MjIuMzExIDY0SDE1My42ODlhNDggNDggMCAwIDAtMzkuOTM4IDIxLjM3NEwxNy4yMjMgMjMwLjE2NUE3OS41NTcgNzkuNTU3IDAgMCAxIDQ4IDIyNGg0ODB6bS00OCA5NmMtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMyczE0LjMyNyAzMiAzMiAzMiAzMi0xNC4zMjcgMzItMzItMTQuMzI3LTMyLTMyLTMyem0tOTYgMGMtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMyczE0LjMyNyAzMiAzMiAzMiAzMi0xNC4zMjcgMzItMzItMTQuMzI3LTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFkU2lkZUNvdWdoU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDU0LjExLDMxOS4yMWMxOS41Ni0zLjgxLDMxLjYyLTI1LDIzLjExLTQ0LjIxLTIxLTQ3LjEyLTQ4LjUtMTUxLjc1LTczLjEyLTE4Ni43NUEyMDguMTMsMjA4LjEzLDAsMCwwLDIzNC4xLDBIMTkyQTE5MC42NCwxOTAuNjQsMCwwLDAsODQuMTgsMzMuM0w0NS40NiwzLjM4QTE2LDE2LDAsMCwwLDIzLDYuMTlMMy4zNywzMS40NkExNiwxNiwwLDAsMCw2LjE4LDUzLjkxTDU5NC41Myw1MDguNjNBMTYsMTYsMCwwLDAsNjE3LDUwNS44MmwxOS42NC0yNS4yN2ExNiwxNiwwLDAsMC0yLjgxLTIyLjQ1Wk0zMTMuMzksMjEwLjQ1LDI2My42MSwxNzJjNS44OC03LjE0LDE0LjQzLTEyLDI0LjM2LTEyYTMyLjA2LDMyLjA2LDAsMCwxLDMyLDMyQzMyMCwxOTksMzE3LjI0LDIwNS4xNywzMTMuMzksMjEwLjQ1Wk02MTYsMzA0YTI0LDI0LDAsMSwwLTI0LTI0QTI0LDI0LDAsMCwwLDYxNiwzMDRabS02NCw2NGEyNCwyNCwwLDEsMC0yNC0yNEEyNCwyNCwwLDAsMCw1NTIsMzY4Wk0yODgsMzg0YTMyLDMyLDAsMCwxLDMyLTMyaDE5LjU0TDIwLjczLDEwNS41OUExOTAuODYsMTkwLjg2LDAsMCwwLDAsMTkyYzAsNTYuNzUsMjQuNzUsMTA3LjYyLDY0LDE0Mi44OFY1MTJIMjg4VjQ4MGg2NGE2NCw2NCwwLDAsMCw2NC02NEgzMjBBMzIsMzIsMCwwLDEsMjg4LDM4NFptMzI4LTI0YTI0LDI0LDAsMSwwLDI0LDI0QTI0LDI0LDAsMCwwLDYxNiwzNjBaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlYWRTaWRlQ291Z2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjE2LDMwNGEyNCwyNCwwLDEsMC0yNC0yNEEyNCwyNCwwLDAsMCw2MTYsMzA0Wk01NTIsNDE2YTI0LDI0LDAsMSwwLDI0LDI0QTI0LDI0LDAsMCwwLDU1Miw0MTZabS02NC01NmEyNCwyNCwwLDEsMCwyNCwyNEEyNCwyNCwwLDAsMCw0ODgsMzYwWk02MTYsNDY0YTI0LDI0LDAsMSwwLDI0LDI0QTI0LDI0LDAsMCwwLDYxNiw0NjRabTAtMTA0YTI0LDI0LDAsMSwwLDI0LDI0QTI0LDI0LDAsMCwwLDYxNiwzNjBabS02NC00MGEyNCwyNCwwLDEsMCwyNCwyNEEyNCwyNCwwLDAsMCw1NTIsMzIwWm0tNzQuNzgtNDVjLTIxLTQ3LjEyLTQ4LjUtMTUxLjc1LTczLjEyLTE4Ni43NUEyMDguMTMsMjA4LjEzLDAsMCwwLDIzNC4xLDBIMTkyQzg2LDAsMCw4NiwwLDE5MmMwLDU2Ljc1LDI0Ljc1LDEwNy42Miw2NCwxNDIuODhWNTEySDI4OFY0ODBoNjRhNjQsNjQsMCwwLDAsNjQtNjRIMzIwYTMyLDMyLDAsMCwxLDAtNjRoOTZWMzIwaDMyQTMyLDMyLDAsMCwwLDQ3Ny4yMiwyNzVaTTI4OCwyMjRhMzIsMzIsMCwxLDEsMzItMzJBMzIuMDcsMzIuMDcsMCwwLDEsMjg4LDIyNFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhZFNpZGVNYXNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTS4xNSwxODQuNDJDLTIuMTcsMjQ0LjIxLDIzLDI5OC4wNiw2NCwzMzQuODhWNTEySDIyNFYzMTYuNTFMMy42NywxNTYuMjVBMTgyLjI4LDE4Mi4yOCwwLDAsMCwuMTUsMTg0LjQyWk01MDkuMjIsMjc1Yy0yMS00Ny4xMi00OC41LTE1MS43NS03My4xMi0xODYuNzVBMjA4LjExLDIwOC4xMSwwLDAsMCwyNjYuMTEsMEgyMDBDMTE3LDAsNDIuNDgsNTAuNTcsMTMuMjUsMTIzLjY1TDIzOS4yMSwyODhINTExLjc2QTMxLjM1LDMxLjM1LDAsMCwwLDUwOS4yMiwyNzVaTTMyMCwyMjRhMzIsMzIsMCwxLDEsMzItMzJBMzIuMDcsMzIuMDcsMCwwLDEsMzIwLDIyNFptMTYsMTQ0SDQ5NmwxNi00OEgyNTZWNTEySDQwMS44OGE2NCw2NCwwLDAsMCw2MC43MS00My43Nkw0NjQsNDY0SDMzNmExNiwxNiwwLDAsMSwwLTMySDQ3NC42N2wxMC42Ny0zMkgzMzZhMTYsMTYsMCwwLDEsMC0zMlpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhZFNpZGVWaXJ1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzIsMjQwYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDI3MiwyNDBabS02NC02NGExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwyMDgsMTc2Wm0zMDEuMiw5OWMtMjAuOTMtNDcuMTItNDguNDMtMTUxLjczLTczLjA3LTE4Ni43NUEyMDcuOSwyMDcuOSwwLDAsMCwyNjYuMDksMEgxOTJDODYsMCwwLDg2LDAsMTkyQTE5MS4yMywxOTEuMjMsMCwwLDAsNjQsMzM0LjgxVjUxMkgzMjBWNDQ4aDY0YTY0LDY0LDAsMCwwLDY0LTY0VjMyMEg0ODBBMzIsMzIsMCwwLDAsNTA5LjIsMjc1Wk0zNjgsMjQwSDM1NS44OGMtMjguNTEsMC00Mi43OSwzNC40Ny0yMi42Myw1NC42M2w4LjU4LDguNTdhMTYsMTYsMCwxLDEtMjIuNjMsMjIuNjNsLTguNTctOC41OEMyOTAuNDcsMjk3LjA5LDI1NiwzMTEuMzcsMjU2LDMzOS44OFYzNTJhMTYsMTYsMCwwLDEtMzIsMFYzMzkuODhjMC0yOC41MS0zNC40Ny00Mi43OS01NC42My0yMi42M2wtOC41Nyw4LjU4YTE2LDE2LDAsMCwxLTIyLjYzLTIyLjYzbDguNTgtOC41N2MyMC4xNi0yMC4xNiw1Ljg4LTU0LjYzLTIyLjYzLTU0LjYzSDExMmExNiwxNiwwLDAsMSwwLTMyaDEyLjEyYzI4LjUxLDAsNDIuNzktMzQuNDcsMjIuNjMtNTQuNjNsLTguNTgtOC41N2ExNiwxNiwwLDAsMSwyMi42My0yMi42M2w4LjU3LDguNThjMjAuMTYsMjAuMTYsNTQuNjMsNS44OCw1NC42My0yMi42M1Y5NmExNiwxNiwwLDAsMSwzMiwwdjEyLjEyYzAsMjguNTEsMzQuNDcsNDIuNzksNTQuNjMsMjIuNjNsOC41Ny04LjU4YTE2LDE2LDAsMCwxLDIyLjYzLDIyLjYzbC04LjU4LDguNTdDMzEzLjA5LDE3My41MywzMjcuMzcsMjA4LDM1NS44OCwyMDhIMzY4YTE2LDE2LDAsMCwxLDAsMzJaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlYWRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDk2djMyMGgzMmExNiAxNiAwIDAgMSAxNiAxNnYzMmExNiAxNiAwIDAgMS0xNiAxNkgzMjBhMTYgMTYgMCAwIDEtMTYtMTZ2LTMyYTE2IDE2IDAgMCAxIDE2LTE2aDMyVjI4OEgxNjB2MTI4aDMyYTE2IDE2IDAgMCAxIDE2IDE2djMyYTE2IDE2IDAgMCAxLTE2IDE2SDMyYTE2IDE2IDAgMCAxLTE2LTE2di0zMmExNiAxNiAwIDAgMSAxNi0xNmgzMlY5NkgzMmExNiAxNiAwIDAgMS0xNi0xNlY0OGExNiAxNiAwIDAgMSAxNi0xNmgxNjBhMTYgMTYgMCAwIDEgMTYgMTZ2MzJhMTYgMTYgMCAwIDEtMTYgMTZoLTMydjEyOGgxOTJWOTZoLTMyYTE2IDE2IDAgMCAxLTE2LTE2VjQ4YTE2IDE2IDAgMCAxIDE2LTE2aDE2MGExNiAxNiAwIDAgMSAxNiAxNnYzMmExNiAxNiAwIDAgMS0xNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhZHBob25lc0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMjg4aC0xNmMtMzUuMzUgMC02NCAyOC43LTY0IDY0LjEydjYzLjc2YzAgMzUuNDEgMjguNjUgNjQuMTIgNjQgNjQuMTJoMTZjMTcuNjcgMCAzMi0xNC4zNiAzMi0zMi4wNlYzMjAuMDZjMC0xNy43MS0xNC4zMy0zMi4wNi0zMi0zMi4wNnptMjA4IDBoLTE2Yy0xNy42NyAwLTMyIDE0LjM1LTMyIDMyLjA2djEyNy44OGMwIDE3LjcgMTQuMzMgMzIuMDYgMzIgMzIuMDZoMTZjMzUuMzUgMCA2NC0yOC43MSA2NC02NC4xMnYtNjMuNzZjMC0zNS40MS0yOC42NS02NC4xMi02NC02NC4xMnpNMjU2IDMyQzExMi45MSAzMiA0LjU3IDE1MS4xMyAwIDI4OHYxMTJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZWMjg4YzAtMTE0LjY3IDkzLjMzLTIwNy44IDIwOC0yMDcuODIgMTE0LjY3LjAyIDIwOCA5My4xNSAyMDggMjA3LjgydjExMmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYyODhDNTA3LjQzIDE1MS4xMyAzOTkuMDkgMzIgMjU2IDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFkcGhvbmVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAzMkMxMTQuNTIgMzIgMCAxNDYuNDk2IDAgMjg4djQ4YTMyIDMyIDAgMCAwIDE3LjY4OSAyOC42MjJsMTQuMzgzIDcuMTkxQzM0LjA4MyA0MzEuOTAzIDgzLjQyMSA0ODAgMTQ0IDQ4MGgyNGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMjgwYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNGgtMjRjLTMxLjM0MiAwLTU5LjY3MSAxMi44NzktODAgMzMuNjI3VjI4OGMwLTEwNS44NjkgODYuMTMxLTE5MiAxOTItMTkyczE5MiA4Ni4xMzEgMTkyIDE5MnYxLjYyN0M0MjcuNjcxIDI2OC44NzkgMzk5LjM0MiAyNTYgMzY4IDI1NmgtMjRjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYxNzZjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDI0YzYwLjU3OSAwIDEwOS45MTctNDguMDk4IDExMS45MjgtMTA4LjE4N2wxNC4zODItNy4xOTFBMzIgMzIgMCAwIDAgNTEyIDMzNnYtNDhjMC0xNDEuNDc5LTExNC40OTYtMjU2LTI1Ni0yNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlYWRzZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDIwOGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC0xNmMtMzUuMzUgMC02NCAyOC42NS02NCA2NHY0OGMwIDM1LjM1IDI4LjY1IDY0IDY0IDY0aDE2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMjA4em0xNzYgMTQ0YzM1LjM1IDAgNjQtMjguNjUgNjQtNjR2LTQ4YzAtMzUuMzUtMjguNjUtNjQtNjQtNjRoLTE2Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjExMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDE2ek0yNTYgMEMxMTMuMTggMCA0LjU4IDExOC44MyAwIDI1NnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZjMC0xMTQuNjkgOTMuMzEtMjA4IDIwOC0yMDhzMjA4IDkzLjMxIDIwOCAyMDhoLS4xMmMuMDggMi40My4xMiAxNjUuNzIuMTIgMTY1LjcyIDAgMjMuMzUtMTguOTMgNDIuMjgtNDIuMjggNDIuMjhIMzIwYzAtMjYuNTEtMjEuNDktNDgtNDgtNDhoLTMyYy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4czIxLjQ5IDQ4IDQ4IDQ4aDE4MS43MmM0OS44NiAwIDkwLjI4LTQwLjQyIDkwLjI4LTkwLjI4VjI1NkM1MDcuNDIgMTE4LjgzIDM5OC44MiAwIDI1NiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFydEJyb2tlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzMuNyA3My44bC0yLjQtMi41Yy00Ni00Ny0xMTgtNTEuNy0xNjkuNi0xNC44TDMzNiAxNTkuOWwtOTYgNjQgNDggMTI4LTE0NC0xNDQgOTYtNjQtMjguNi04Ni41QzE1OS43IDE5LjYgODcgMjQgNDAuNyA3MS40bC0yLjQgMi40Qy0xMC40IDEyMy42LTEyLjUgMjAyLjkgMzEgMjU2bDIxMi4xIDIxOC42YzcuMSA3LjMgMTguNiA3LjMgMjUuNyAwTDQ4MSAyNTUuOWM0My41LTUzIDQxLjQtMTMyLjMtNy4zLTE4Mi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjIuMyA2Mi42QzQwNy41IDE1LjkgMzI2IDI0LjMgMjc1LjcgNzYuMkwyNTYgOTYuNWwtMTkuNy0yMC4zQzE4Ni4xIDI0LjMgMTA0LjUgMTUuOSA0OS43IDYyLjZjLTYyLjggNTMuNi02Ni4xIDE0OS44LTkuOSAyMDcuOWwxOTMuNSAxOTkuOGMxMi41IDEyLjkgMzIuOCAxMi45IDQ1LjMgMGwxOTMuNS0xOTkuOGM1Ni4zLTU4LjEgNTMtMTU0LjMtOS44LTIwNy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFydGJlYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwLjIgMjQzLjhsLTQ5LjcgOTkuNGMtNiAxMi4xLTIzLjQgMTEuNy0yOC45LS42bC01Ni45LTEyNi4zLTMwIDcxLjdINjAuNmwxODIuNSAxODYuNWM3LjEgNy4zIDE4LjYgNy4zIDI1LjcgMEw0NTEuNCAyODhIMzQyLjNsLTIyLjEtNDQuMnpNNDczLjcgNzMuOWwtMi40LTIuNWMtNTEuNS01Mi42LTEzNS44LTUyLjYtMTg3LjQgMEwyNTYgMTAwbC0yNy45LTI4LjVjLTUxLjUtNTIuNy0xMzUuOS01Mi43LTE4Ny40IDBsLTIuNCAyLjRDLTEwLjQgMTIzLjctMTIuNSAyMDMgMzEgMjU2aDEwMi40bDM1LjktODYuMmM1LjQtMTIuOSAyMy42LTEzLjIgMjkuNC0uNGw1OC4yIDEyOS4zIDQ5LTk3LjljNS45LTExLjggMjIuNy0xMS44IDI4LjYgMGwyNy42IDU1LjJINDgxYzQzLjUtNTMgNDEuNC0xMzIuMy03LjMtMTgyLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlbGljb3B0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA0IDM4NGgyNzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMiAwLTEyMy43MS0xMDAuMjktMjI0LTIyNC0yMjRWNjRoMTc2YzguODQgMCAxNi03LjE2IDE2LTE2VjE2YzAtOC44NC03LjE2LTE2LTE2LTE2SDE0NGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTc2djY0SDExMkw2OC44IDcwLjRDNjUuNzggNjYuMzcgNjEuMDMgNjQgNTYgNjRIMTYuMDFDNS42IDY0LTIuMDQgNzMuNzguNDkgODMuODhMMzIgMTkybDE2MCA2NCA4Ni40IDExNS4yQTMxLjk5MiAzMS45OTIgMCAwIDAgMzA0IDM4NHptMTEyLTE4OC40OUM0NzguNTUgMjA4LjMgNTI4LjAzIDI1Ny40NCA1NDAuNzkgMzIwSDQxNlYxOTUuNTF6bTIxOS4zNyAyNjMuM2wtMjIuMTUtMjIuMmMtNi4yNS02LjI2LTE2LjI0LTYuMS0yMi42NC4wMS03LjA5IDYuNzctMTMuODQgMTEuMjUtMjQuNjQgMTEuMjVIMjQwYy04Ljg0IDAtMTYgNy4xOC0xNiAxNi4wM3YzMi4wNmMwIDguODUgNy4xNiAxNi4wMyAxNiAxNi4wM2gzMjUuOTRjMTQuODggMCAzNS4zLS40NyA2OC40NS0yOS41MiA3LjAyLTYuMTQgNy41Ny0xNy4wNS45OC0yMy42NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGlnaGxpZ2h0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU0NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0NzkuOThMOTkuOTIgNTEybDM1LjQ1LTM1LjQ1LTY3LjA0LTY3LjA0TDAgNDc5Ljk4em0xMjQuNjEtMjQwLjAxYTM2LjU5MiAzNi41OTIgMCAwIDAtMTAuNzkgMzguMWwxMy4wNSA0Mi44My01MC45MyA1MC45NCA5Ni4yMyA5Ni4yMyA1MC44Ni01MC44NiA0Mi43NCAxMy4wOGMxMy43MyA0LjIgMjguNjUtLjAxIDM4LjE1LTEwLjc4bDM1LjU1LTQxLjY0LTE3My4zNC0xNzMuMzQtNDEuNTIgMzUuNDR6bTQwMy4zMS0xNjAuN2wtNjMuMi02My4yYy0yMC40OS0yMC40OS01My4zOC0yMS41Mi03NS4xMi0yLjM1TDE5MC41NSAxODMuNjhsMTY5Ljc3IDE2OS43OEw1MzAuMjcgMTU0LjRjMTkuMTgtMjEuNzQgMTguMTUtNTQuNjMtMi4zNS03NS4xM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGlraW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTgwLjk1IDQ3Mi4yM2MtNC4yOCAxNy4xNiA2LjE0IDM0LjUzIDIzLjI4IDM4LjgxIDIuNjEuNjYgNS4yMi45NSA3LjguOTUgMTQuMzMgMCAyNy4zNy05LjcgMzEuMDItMjQuMjNsMjUuMjQtMTAwLjk3LTUyLjc4LTUyLjc4LTM0LjU2IDEzOC4yMnptMTQuODktMTk2LjEyTDEzNyAxMTdjMi4xOS04LjQyLTMuMTQtMTYuOTUtMTEuOTItMTkuMDYtNDMuODgtMTAuNTItODguMzUgMTUuMDctOTkuMzIgNTcuMTdMLjQ5IDI1My4yNGMtMi4xOSA4LjQyIDMuMTQgMTYuOTUgMTEuOTIgMTkuMDZsNjMuNTYgMTUuMjVjOC43OSAyLjEgMTcuNjgtMy4wMiAxOS44Ny0xMS40NHpNMzY4IDE2MGgtMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djE2aC0zNC43NWwtNDYuNzgtNDYuNzhDMjQzLjM4IDEzNC4xMSAyMjguNjEgMTI4IDIxMi45MSAxMjhjLTI3LjAyIDAtNTAuNDcgMTguMy01Ny4wMyA0NC41MmwtMjYuOTIgMTA3LjcyYTMyLjAxMiAzMi4wMTIgMCAwIDAgOC40MiAzMC4zOUwyMjQgMzk3LjI1VjQ4MGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyczMyLTE0LjMzIDMyLTMydi04Mi43NWMwLTE3LjA5LTYuNjYtMzMuMTYtMTguNzUtNDUuMjVsLTQ2LjgyLTQ2LjgyYy4xNS0uNS40OS0uODkuNjItMS40MWwxOS44OS03OS41NyAyMi40MyAyMi40M2M2IDYgMTQuMTQgOS4zOCAyMi42MiA5LjM4aDQ4djI0MGMwIDguODQgNy4xNiAxNiAxNiAxNmgxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYxNzZjLjAxLTguODQtNy4xNS0xNi0xNS45OS0xNnpNMjQwIDk2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhTMjY2LjUxIDAgMjQwIDBzLTQ4IDIxLjQ5LTQ4IDQ4IDIxLjQ5IDQ4IDQ4IDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIaXBwbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01ODEuMTIgOTYuMmMtMjcuNjctLjE1LTUyLjUgMTcuNTgtNzYuNiAyNi42MkM0ODkuOTggODguMjcgNDU1LjgzIDY0IDQxNiA2NGMtMTEuMjggMC0yMS45NSAyLjMtMzIgNS44OFY1NmMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0aC0xNmMtMTMuMjUgMC0yNCAxMC43NC0yNCAyNHY0OC45OEMyODYuMDEgNzkuNTggMjQxLjI0IDY0IDE5MiA2NCA4NS45NiA2NCAwIDEzNS42NCAwIDIyNHYyNDBjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNjRjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTcwLjc5QzEyOC4zNSA0MDcuNTcgMTY2LjcyIDQxNiAyMDggNDE2czc5LjY1LTguNDMgMTEyLTIyLjc5VjQ2NGMwIDguODQgNy4xNiAxNiAxNiAxNmg2NGM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYyODhoMTI4djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi05Mi4wMmMwLTM0LjA5LTI0Ljc5LTY3LjU5LTU4Ljg4LTY3Ljc4ek00NDggMTc2Yy04Ljg0IDAtMTYtNy4xNi0xNi0xNnM3LjE2LTE2IDE2LTE2IDE2IDcuMTYgMTYgMTYtNy4xNiAxNi0xNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGlzdG9yeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQgMjU1LjUzMWMuMjUzIDEzNi42NC0xMTEuMTggMjQ4LjM3Mi0yNDcuODIgMjQ4LjQ2OC01OS4wMTUuMDQyLTExMy4yMjMtMjAuNTMtMTU1LjgyMi01NC45MTEtMTEuMDc3LTguOTQtMTEuOTA1LTI1LjU0MS0xLjgzOS0zNS42MDdsMTEuMjY3LTExLjI2N2M4LjYwOS04LjYwOSAyMi4zNTMtOS41NTEgMzEuODkxLTEuOTg0QzE3My4wNjIgNDI1LjEzNSAyMTIuNzgxIDQ0MCAyNTYgNDQwYzEwMS43MDUgMCAxODQtODIuMzExIDE4NC0xODQgMC0xMDEuNzA1LTgyLjMxMS0xODQtMTg0LTE4NC00OC44MTQgMC05My4xNDkgMTguOTY5LTEyNi4wNjggNDkuOTMybDUwLjc1NCA1MC43NTRjMTAuMDggMTAuMDggMi45NDEgMjcuMzE0LTExLjMxMyAyNy4zMTRIMjRjLTguODM3IDAtMTYtNy4xNjMtMTYtMTZWMzguNjI3YzAtMTQuMjU0IDE3LjIzNC0yMS4zOTMgMjcuMzE0LTExLjMxNGw0OS4zNzIgNDkuMzcyQzEyOS4yMDkgMzQuMTM2IDE4OS41NTIgOCAyNTYgOGMxMzYuODEgMCAyNDcuNzQ3IDExMC43OCAyNDggMjQ3LjUzMXptLTE4MC45MTIgNzguNzg0bDkuODIzLTEyLjYzYzguMTM4LTEwLjQ2MyA2LjI1My0yNS41NDItNC4yMS0zMy42NzlMMjg4IDI1Ni4zNDlWMTUyYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNGgtMTZjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYxMzUuNjUxbDY1LjQwOSA1MC44NzRjMTAuNDYzIDguMTM3IDI1LjU0MSA2LjI1MyAzMy42NzktNC4yMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG9ja2V5UHVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDE2MGMwLTUzIDExNC42LTk2IDI1Ni05NnMyNTYgNDMgMjU2IDk2LTExNC42IDk2LTI1NiA5NlMwIDIxMyAwIDE2MHptMCA4Mi4yVjM1MmMwIDUzIDExNC42IDk2IDI1NiA5NnMyNTYtNDMgMjU2LTk2VjI0Mi4yYy0xMTMuNCA4Mi4zLTM5OC41IDgyLjQtNTEyIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvbGx5QmVycnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ0IDE5MmMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OC00OCAyMS41LTQ4IDQ4IDIxLjUgNDggNDggNDh6bTExMi00OGMwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4LTIxLjUtNDgtNDgtNDgtNDggMjEuNS00OCA0OHptLTMyLTQ4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4UzI1MC41IDAgMjI0IDBzLTQ4IDIxLjUtNDggNDggMjEuNSA0OCA0OCA0OHptLTE2LjIgMTM5LjFjLjEtMTIuNC0xMy4xLTIwLjEtMjMuOC0xMy43LTM0LjMgMjAuMy03MS40IDMyLjctMTA4LjcgMzYuMi05LjcuOS0xNS42IDExLjMtMTEuNiAyMC4yIDYuMiAxMy45IDExLjEgMjguNiAxNC43IDQzLjggMy42IDE1LjItNS4zIDMwLjYtMjAuMiAzNS4xLTE0LjkgNC41LTMwLjEgNy42LTQ1LjMgOS4xLTkuNyAxLTE1LjcgMTEuMy0xMS43IDIwLjIgMTUgMzIuOCAyMi45IDY5LjUgMjMgMTA3LjcuMSAxNC40IDE1LjIgMjMuMSAyNy42IDE2IDMzLjItMTkgNjguOS0zMC41IDEwNC44LTMzLjkgOS43LS45IDE1LjYtMTEuMyAxMS42LTIwLjItNi4yLTEzLjktMTEuMS0yOC42LTE0LjctNDMuOC0zLjYtMTUuMiA1LjMtMzAuNiAyMC4yLTM1LjEgMTQuOS00LjUgMzAuMS03LjYgNDUuMy05LjEgOS43LTEgMTUuNy0xMS4zIDExLjctMjAuMi0xNS41LTM0LjItMjMuMy03Mi41LTIyLjktMTEyLjN6TTQzNSAzNjUuNmMtMTUuMi0xLjYtMzAuMy00LjctNDUuMy05LjEtMTQuOS00LjUtMjMuOC0xOS45LTIwLjItMzUuMSAzLjYtMTUuMiA4LjUtMjkuOCAxNC43LTQzLjggNC04LjktMS45LTE5LjMtMTEuNi0yMC4yLTM3LjMtMy41LTc0LjQtMTUuOS0xMDguNy0zNi4yLTEwLjctNi4zLTIzLjkgMS40LTIzLjggMTMuNyAwIDEuNi0uMiAzLjItLjIgNC45LjIgMzMuMyA3IDY1LjcgMTkuOSA5NCA1LjcgMTIuNCA1LjIgMjYuNi0uNiAzOC45IDQuOSAxLjIgOS45IDIuMiAxNC44IDMuNyAxNC45IDQuNSAyMy44IDE5LjkgMjAuMiAzNS4xLTMuNiAxNS4yLTguNSAyOS44LTE0LjcgNDMuOC00IDguOSAxLjkgMTkuMyAxMS42IDIwLjIgMzUuOSAzLjQgNzEuNiAxNC45IDEwNC44IDMzLjkgMTIuNSA3LjEgMjcuNi0xLjYgMjcuNi0xNiAuMi0zOC4yIDgtNzUgMjMtMTA3LjcgNC4zLTguNy0xLjgtMTkuMS0xMS41LTIwLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjgwLjM3IDE0OC4yNkw5NiAzMDAuMTFWNDY0YTE2IDE2IDAgMCAwIDE2IDE2bDExMi4wNi0uMjlhMTYgMTYgMCAwIDAgMTUuOTItMTZWMzY4YTE2IDE2IDAgMCAxIDE2LTE2aDY0YTE2IDE2IDAgMCAxIDE2IDE2djk1LjY0YTE2IDE2IDAgMCAwIDE2IDE2LjA1TDQ2NCA0ODBhMTYgMTYgMCAwIDAgMTYtMTZWMzAwTDI5NS42NyAxNDguMjZhMTIuMTkgMTIuMTkgMCAwIDAtMTUuMyAwek01NzEuNiAyNTEuNDdMNDg4IDE4Mi41NlY0NC4wNWExMiAxMiAwIDAgMC0xMi0xMmgtNTZhMTIgMTIgMCAwIDAtMTIgMTJ2NzIuNjFMMzE4LjQ3IDQzYTQ4IDQ4IDAgMCAwLTYxIDBMNC4zNCAyNTEuNDdhMTIgMTIgMCAwIDAtMS42IDE2LjlsMjUuNSAzMUExMiAxMiAwIDAgMCA0NS4xNSAzMDFsMjM1LjIyLTE5My43NGExMi4xOSAxMi4xOSAwIDAgMSAxNS4zIDBMNTMwLjkgMzAxYTEyIDEyIDAgMCAwIDE2LjktMS42bDI1LjUtMzFhMTIgMTIgMCAwIDAtMS43LTE2LjkzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3JzZUhlYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA5LjggMzMyLjVsLTY5LjktMTY0LjNjLTE0LjktNDEuMi01MC40LTcxLTkzLTc5LjIgMTgtMTAuNiA0Ni4zLTM1LjkgMzQuMi04Mi4zLTEuMy01LTcuMS03LjktMTItNi4xTDE2Ni45IDc2LjNDMzUuOSAxMjMuNCAwIDIzOC45IDAgMzk4LjhWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDIzNi4yYzIzLjggMCAzOS4zLTI1IDI4LjYtNDYuM0wyNTYgMzg0di0uN2MtNDUuNi0zLjUtODQuNi0zMC43LTEwNC4zLTY5LjYtMS42LTMuMS0uOS02LjkgMS42LTkuM2wxMi4xLTEyLjFjMy45LTMuOSAxMC42LTIuNyAxMi45IDIuNCAxNC44IDMzLjcgNDguMiA1Ny40IDg3LjQgNTcuNCAxNy4yIDAgMzMtNS4xIDQ2LjgtMTMuMmw0NiA2My45YzYgOC40IDE1LjcgMTMuMyAyNiAxMy4zaDUwLjNjOC41IDAgMTYuNi0zLjQgMjIuNi05LjRsNDUuMy0zOS44YzguOS05LjEgMTEuNy0yMi42IDcuMS0zNC40ek0zMjggMjI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjQtMTAuNyAyNC0yNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG9yc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTc1LjkyIDc2LjZjLS4wMS04LjEzLTMuMDItMTUuODctOC41OC0yMS44LTMuNzgtNC4wMy04LjU4LTkuMTItMTMuNjktMTQuNSAxMS4wNi02Ljg0IDE5LjUtMTcuNDkgMjIuMTgtMzAuNjZDNTc2Ljg1IDQuNjggNTcyLjk2IDAgNTY3LjkgMEg0NDcuOTJjLTcwLjY5IDAtMTI4IDU3LjMxLTEyOCAxMjhIMTYwYy0yOC44NCAwLTU0LjQgMTIuOTgtNzIgMzMuMTFWMTYwYy00OC41MyAwLTg4IDM5LjQ3LTg4IDg4djU2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2YzguODQgMCAxNi03LjE2IDE2LTE2di01NmMwLTEzLjIyIDYuODctMjQuMzkgMTYuNzgtMzEuNjgtLjIxIDIuNTgtLjc4IDUuMDUtLjc4IDcuNjggMCAyNy42NCAxMS44NCA1Mi4zNiAzMC41NCA2OS44OGwtMjUuNzIgNjguNmE2My45NDUgNjMuOTQ1IDAgMCAwLTIuMTYgMzcuOTlsMjQuODUgOTkuNDFBMTUuOTgyIDE1Ljk4MiAwIDAgMCAxMDcuMDIgNTEyaDY1Ljk2YzEwLjQxIDAgMTguMDUtOS43OCAxNS41Mi0xOS44OGwtMjYuMzEtMTA1LjI2IDIzLjg0LTYzLjU5TDMyMCAzNDUuNlY0OTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNjRjOC44NCAwIDE2LTcuMTYgMTYtMTZWMzE4LjIyYzE5Ljc0LTIwLjE5IDMyLTQ3Ljc1IDMyLTc4LjIyIDAtLjIyLS4wNy0uNDItLjA4LS42NFYxMzYuODlsMTYgNy4xMSAxOC45IDM3LjdjNy40NSAxNC44NyAyNS4wNSAyMS41NSA0MC40OSAxNS4zN2wzMi41NS0xMy4wMmEzMS45OTcgMzEuOTk3IDAgMCAwIDIwLjEyLTI5Ljc0bC0uMDYtNzcuNzF6bS02NCAxOS40Yy04Ljg0IDAtMTYtNy4xNi0xNi0xNnM3LjE2LTE2IDE2LTE2IDE2IDcuMTYgMTYgMTYtNy4xNiAxNi0xNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG9zcGl0YWxBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQ0IDk2SDQxNlYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzNjhjMCA4LjggNy4yIDE2IDE2IDE2aDU0NGM4LjggMCAxNi03LjIgMTYtMTZWMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0xNjAgNDM2YzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MHptMC0xMjhjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwem0xNjAgMTI4YzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MHptMC0xMjhjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwem0xNi0xNzBjMCAzLjMtMi43IDYtNiA2aC0yNnYyNmMwIDMuMy0yLjcgNi02IDZoLTIwYy0zLjMgMC02LTIuNy02LTZ2LTI2aC0yNmMtMy4zIDAtNi0yLjctNi02di0yMGMwLTMuMyAyLjctNiA2LTZoMjZWODZjMC0zLjMgMi43LTYgNi02aDIwYzMuMyAwIDYgMi43IDYgNnYyNmgyNmMzLjMgMCA2IDIuNyA2IDZ2MjB6bTE0NCAyOThjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwem0wLTEyOGMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvc3BpdGFsU3ltYm9sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAwQzExNC42IDAgMCAxMTQuNiAwIDI1NnMxMTQuNiAyNTYgMjU2IDI1NiAyNTYtMTE0LjYgMjU2LTI1NlMzOTcuNCAwIDI1NiAwem0xMTIgMzc2YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOHYtODhoLTk2djg4YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFYxMzZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHY4OGg5NnYtODhjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYyNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvc3BpdGFsVXNlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAgMzIwYTk2IDk2IDAgMSAwLTk2LTk2IDk2IDk2IDAgMCAwIDk2IDk2em00OCAzMmEyMi44OCAyMi44OCAwIDAgMC03LjA2IDEuMDkgMTI0Ljc2IDEyNC43NiAwIDAgMS04MS44OSAwQTIyLjgyIDIyLjgyIDAgMCAwIDQzMiAzNTJhMTEyIDExMiAwIDAgMC0xMTIgMTEyLjYyYy4xNCAyNi4yNiAyMS43MyA0Ny4zOCA0OCA0Ny4zOGgyMjRjMjYuMjcgMCA0Ny44Ni0yMS4xMiA0OC00Ny4zOEExMTIgMTEyIDAgMCAwIDUyOCAzNTJ6bS0xOTguMDkgMTAuNDVBMTQ1LjE5IDE0NS4xOSAwIDAgMSAzNTIgMzQ0LjYyVjEyOGEzMiAzMiAwIDAgMC0zMi0zMmgtMzJWMzJhMzIgMzIgMCAwIDAtMzItMzJIOTZhMzIgMzIgMCAwIDAtMzIgMzJ2NjRIMzJhMzIgMzIgMCAwIDAtMzIgMzJ2MzY4YTE2IDE2IDAgMCAwIDE2IDE2aDI4OC4zMUE3OC42MiA3OC42MiAwIDAgMSAyODggNDY0Ljc5YTE0My4wNiAxNDMuMDYgMCAwIDEgNDEuOTEtMTAyLjM0ek0xNDQgNDA0YTEyIDEyIDAgMCAxLTEyIDEySDkyYTEyIDEyIDAgMCAxLTEyLTEydi00MGExMiAxMiAwIDAgMSAxMi0xMmg0MGExMiAxMiAwIDAgMSAxMiAxMnptMC0xMjhhMTIgMTIgMCAwIDEtMTIgMTJIOTJhMTIgMTIgMCAwIDEtMTItMTJ2LTQwYTEyIDEyIDAgMCAxIDEyLTEyaDQwYTEyIDEyIDAgMCAxIDEyIDEyem00OC0xMjJhNiA2IDAgMCAxLTYgNmgtMjBhNiA2IDAgMCAxLTYtNnYtMjZoLTI2YTYgNiAwIDAgMS02LTZ2LTIwYTYgNiAwIDAgMSA2LTZoMjZWNzBhNiA2IDAgMCAxIDYtNmgyMGE2IDYgMCAwIDEgNiA2djI2aDI2YTYgNiAwIDAgMSA2IDZ2MjBhNiA2IDAgMCAxLTYgNmgtMjZ6bTgwIDI1MGExMiAxMiAwIDAgMS0xMiAxMmgtNDBhMTIgMTIgMCAwIDEtMTItMTJ2LTQwYTEyIDEyIDAgMCAxIDEyLTEyaDQwYTEyIDEyIDAgMCAxIDEyIDEyem0wLTEyOGExMiAxMiAwIDAgMS0xMiAxMmgtNDBhMTIgMTIgMCAwIDEtMTItMTJ2LTQwYTEyIDEyIDAgMCAxIDEyLTEyaDQwYTEyIDEyIDAgMCAxIDEyIDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3NwaXRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggNDkydjIwSDB2LTIwYzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMjBWMTIwYzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNGg4OFYyNGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjRoMTEyYzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHY3Mmg4OGMxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR2MzYwaDIwYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ6TTMwOCAxOTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMnptLTE2OCA2NGg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyem0xMDQgMTI4aC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY4NGg2NHYtODRjMC02LjYyNy01LjM3My0xMi0xMi0xMnptNjQtOTZoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMnptLTExNiAxMmMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwek0xODIgOTZoMjZ2MjZhNiA2IDAgMCAwIDYgNmgyMGE2IDYgMCAwIDAgNi02Vjk2aDI2YTYgNiAwIDAgMCA2LTZWNzBhNiA2IDAgMCAwLTYtNmgtMjZWMzhhNiA2IDAgMCAwLTYtNmgtMjBhNiA2IDAgMCAwLTYgNnYyNmgtMjZhNiA2IDAgMCAwLTYgNnYyMGE2IDYgMCAwIDAgNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3RUdWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE0LjIxIDE3Ny42NWMxLjAyIDguMjEgNy43NSAxNC4zNSAxNS43NSAxNC4zNWgxNi4xMmM5LjUxIDAgMTcuMDgtOC41NyAxNi0xOC4zNS00LjM0LTM5LjExLTIyLjQtNzQuNTMtNTAuMTMtOTcuMTYtMTcuMzctMTQuMTctMjguODItMzYuNzUtMzEuOTgtNjIuMTVDMzc4Ljk2IDYuMTQgMzcyLjIyIDAgMzY0LjIzIDBoLTE2LjEyYy05LjUxIDAtMTcuMDkgOC41Ny0xNiAxOC4zNSA0LjM0IDM5LjExIDIyLjQgNzQuNTMgNTAuMTMgOTcuMTYgMTcuMzYgMTQuMTcgMjguODIgMzYuNzUgMzEuOTcgNjIuMTR6bS0xMDggMGMxLjAyIDguMjEgNy43NSAxNC4zNSAxNS43NSAxNC4zNWgxNi4xMmM5LjUxIDAgMTcuMDgtOC41NyAxNi0xOC4zNS00LjM0LTM5LjExLTIyLjQtNzQuNTMtNTAuMTMtOTcuMTYtMTcuMzctMTQuMTctMjguODItMzYuNzUtMzEuOTgtNjIuMTVDMjcwLjk2IDYuMTQgMjY0LjIyIDAgMjU2LjIzIDBoLTE2LjEyYy05LjUxIDAtMTcuMDkgOC41Ny0xNiAxOC4zNSA0LjM0IDM5LjExIDIyLjQgNzQuNTMgNTAuMTMgOTcuMTYgMTcuMzYgMTQuMTcgMjguODIgMzYuNzUgMzEuOTcgNjIuMTR6TTQ4MCAyNTZIMjU2bC0xMTAuOTMtODMuMmE2My45OSA2My45OSAwIDAgMC0zOC40LTEyLjhINjRjLTM1LjM1IDAtNjQgMjguNjUtNjQgNjR2MjI0YzAgMzUuMzUgMjguNjUgNjQgNjQgNjRoMzg0YzM1LjM1IDAgNjQtMjguNjUgNjQtNjRWMjg4YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTEyOCA0NDBjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOFYzMjhjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTEyem05NiAwYzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LThWMzI4YzAtNC40MiAzLjU4LTggOC04aDE2YzQuNDIgMCA4IDMuNTggOCA4djExMnptOTYgMGMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04VjMyOGMwLTQuNDIgMy41OC04IDgtOGgxNmM0LjQyIDAgOCAzLjU4IDggOHYxMTJ6bTk2IDBjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOFYzMjhjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTEyek02NCAxMjhjMzUuMzUgMCA2NC0yOC42NSA2NC02NFM5OS4zNSAwIDY0IDAgMCAyOC42NSAwIDY0czI4LjY1IDY0IDY0IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3Rkb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg4LjU2IDIzLjQ0YTgwIDgwIDAgMCAwLTExMy4xMiAwbC0zNTIgMzUyYTgwIDgwIDAgMSAwIDExMy4xMiAxMTMuMTJsMzUyLTM1MmE4MCA4MCAwIDAgMCAwLTExMy4xMnptLTQ5LjkzIDk1LjE5Yy0xOS42IDE5LjU5LTM3LjUyIDIyLjY3LTUxLjkzIDI1LjE0QzM3My43NiAxNDYgMzY0LjQgMTQ3LjYgMzUyIDE2MHMtMTQgMjEuNzYtMTYuMjMgMzQuNzFjLTIuNDggMTQuNC01LjU1IDMyLjMzLTI1LjE1IDUxLjkycy0zNy41MiAyMi42Ny01MS45MiAyNS4xNUMyNDUuNzUgMjc0IDIzNi40IDI3NS42IDIyNCAyODhzLTE0IDIxLjc1LTE2LjIzIDM0LjdjLTIuNDcgMTQuNC01LjU0IDMyLjMzLTI1LjE0IDUxLjkycy0zNy41MyAyMi42OC01MS45MyAyNS4xNUMxMTcuNzYgNDAyIDEwOC40IDQwMy42IDk2IDQxNmExNiAxNiAwIDAgMS0yMi42My0yMi42M2MxOS42LTE5LjU5IDM3LjUyLTIyLjY3IDUxLjkyLTI1LjE0IDEzLTIuMjIgMjIuMy0zLjgyIDM0LjcxLTE2LjIzczE0LTIxLjc1IDE2LjIyLTM0LjdjMi40OC0xNC40IDUuNTUtMzIuMzMgMjUuMTUtNTEuOTJzMzcuNTItMjIuNjcgNTEuOTItMjUuMTRjMTMtMi4yMiAyMi4zLTMuODMgMzQuNy0xNi4yM3MxNC0yMS43NiAxNi4yNC0zNC43MWMyLjQ3LTE0LjQgNS41NC0zMi4zMyAyNS4xNC01MS45MnMzNy41Mi0yMi42OCA1MS45Mi0yNS4xNUMzOTQuMjQgMTEwIDQwMy41OSAxMDguNDEgNDE2IDk2YTE2IDE2IDAgMCAxIDIyLjYzIDIyLjYzek0zMS40NCAzMjIuMThMMzIyLjE4IDMxLjQ0bC0xMS41NC0xMS41NWMtMjUtMjUtNjMuODUtMjYuNjYtODYuNzktMy43MkwxNi4xNyAyMjMuODVjLTIyLjk0IDIyLjk0LTIxLjI3IDYxLjc5IDMuNzIgODYuNzh6bTQ0OS4xMi0xMzIuMzZMMTg5LjgyIDQ4MC41NmwxMS41NCAxMS41NWMyNSAyNSA2My44NSAyNi42NiA4Ni43OSAzLjcybDIwNy42OC0yMDcuNjhjMjIuOTQtMjIuOTQgMjEuMjctNjEuNzktMy43Mi04Ni43OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG90ZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTYwIDY0YzguODQgMCAxNi03LjE2IDE2LTE2VjE2YzAtOC44NC03LjE2LTE2LTE2LTE2SDE2QzcuMTYgMCAwIDcuMTYgMCAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNS45OHYzODRIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDI0MHYtODBjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnY4MGgyNDBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2aC0xNlY2NGgxNnptLTMwNCA0NC44YzAtNi40IDYuNC0xMi44IDEyLjgtMTIuOGgzOC40YzYuNCAwIDEyLjggNi40IDEyLjggMTIuOHYzOC40YzAgNi40LTYuNCAxMi44LTEyLjggMTIuOGgtMzguNGMtNi40IDAtMTIuOC02LjQtMTIuOC0xMi44di0zOC40em0wIDk2YzAtNi40IDYuNC0xMi44IDEyLjgtMTIuOGgzOC40YzYuNCAwIDEyLjggNi40IDEyLjggMTIuOHYzOC40YzAgNi40LTYuNCAxMi44LTEyLjggMTIuOGgtMzguNGMtNi40IDAtMTIuOC02LjQtMTIuOC0xMi44di0zOC40em0tMTI4LTk2YzAtNi40IDYuNC0xMi44IDEyLjgtMTIuOGgzOC40YzYuNCAwIDEyLjggNi40IDEyLjggMTIuOHYzOC40YzAgNi40LTYuNCAxMi44LTEyLjggMTIuOGgtMzguNGMtNi40IDAtMTIuOC02LjQtMTIuOC0xMi44di0zOC40ek0xNzkuMiAyNTZoLTM4LjRjLTYuNCAwLTEyLjgtNi40LTEyLjgtMTIuOHYtMzguNGMwLTYuNCA2LjQtMTIuOCAxMi44LTEyLjhoMzguNGM2LjQgMCAxMi44IDYuNCAxMi44IDEyLjh2MzguNGMwIDYuNC02LjQgMTIuOC0xMi44IDEyLjh6TTE5MiAzODRjMC01My4wMiA0Mi45OC05NiA5Ni05NnM5NiA0Mi45OCA5NiA5NkgxOTJ6bTI1Ni0xNDAuOGMwIDYuNC02LjQgMTIuOC0xMi44IDEyLjhoLTM4LjRjLTYuNCAwLTEyLjgtNi40LTEyLjgtMTIuOHYtMzguNGMwLTYuNCA2LjQtMTIuOCAxMi44LTEyLjhoMzguNGM2LjQgMCAxMi44IDYuNCAxMi44IDEyLjh2MzguNHptMC05NmMwIDYuNC02LjQgMTIuOC0xMi44IDEyLjhoLTM4LjRjLTYuNCAwLTEyLjgtNi40LTEyLjgtMTIuOHYtMzguNGMwLTYuNCA2LjQtMTIuOCAxMi44LTEyLjhoMzguNGM2LjQgMCAxMi44IDYuNCAxMi44IDEyLjh2MzguNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG91cmdsYXNzRW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2MCA2NGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMjRjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDI0QzEwLjc0NSAwIDAgMTAuNzQ1IDAgMjR2MTZjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0IDAgOTAuOTY1IDUxLjAxNiAxNjcuNzM0IDEyMC44NDIgMTkyQzc1LjAxNiAyODAuMjY2IDI0IDM1Ny4wMzUgMjQgNDQ4Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MTZjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDMzNmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTE2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNCAwLTkwLjk2NS01MS4wMTYtMTY3LjczNC0xMjAuODQyLTE5MkMzMDguOTg0IDIzMS43MzQgMzYwIDE1NC45NjUgMzYwIDY0ek0xOTIgMjA4Yy01Ny43ODcgMC0xMDQtNjYuNTE4LTEwNC0xNDRoMjA4YzAgNzcuOTQ1LTQ2LjUxIDE0NC0xMDQgMTQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VyZ2xhc3NIYWxmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2MCAwSDI0QzEwLjc0NSAwIDAgMTAuNzQ1IDAgMjR2MTZjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0IDAgOTAuOTY1IDUxLjAxNiAxNjcuNzM0IDEyMC44NDIgMTkyQzc1LjAxNiAyODAuMjY2IDI0IDM1Ny4wMzUgMjQgNDQ4Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MTZjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDMzNmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTE2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNCAwLTkwLjk2NS01MS4wMTYtMTY3LjczNC0xMjAuODQyLTE5MkMzMDguOTg0IDIzMS43MzQgMzYwIDE1NC45NjUgMzYwIDY0YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYyNGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjR6bS03NS4wNzggMzg0SDk5LjA4YzE3LjA1OS00Ni43OTcgNTIuMDk2LTgwIDkyLjkyLTgwIDQwLjgyMSAwIDc1Ljg2MiAzMy4xOTYgOTIuOTIyIDgwem0uMDE5LTI1Nkg5OS4wNzhDOTEuOTg4IDEwOC41NDggODggODYuNzQ4IDg4IDY0aDIwOGMwIDIyLjgwNS0zLjk4NyA0NC41ODctMTEuMDU5IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VyZ2xhc3NTdGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjAgMEgyNEMxMC43NDUgMCAwIDEwLjc0NSAwIDI0djE2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNCAwIDkwLjk2NSA1MS4wMTYgMTY3LjczNCAxMjAuODQyIDE5MkM3NS4wMTYgMjgwLjI2NiAyNCAzNTcuMDM1IDI0IDQ0OGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djE2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgzMzZjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di0xNmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjQgMC05MC45NjUtNTEuMDE2LTE2Ny43MzQtMTIwLjg0Mi0xOTJDMzA4Ljk4NCAyMzEuNzM0IDM2MCAxNTQuOTY1IDM2MCA2NGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMjRjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0em0tNjQgNDQ4SDg4YzAtNzcuNDU4IDQ2LjIwNC0xNDQgMTA0LTE0NCA1Ny43ODYgMCAxMDQgNjYuNTE3IDEwNCAxNDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXJnbGFzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjAgNjRjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjI0YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyNEMxMC43NDUgMCAwIDEwLjc0NSAwIDI0djE2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNCAwIDkwLjk2NSA1MS4wMTYgMTY3LjczNCAxMjAuODQyIDE5MkM3NS4wMTYgMjgwLjI2NiAyNCAzNTcuMDM1IDI0IDQ0OGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djE2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgzMzZjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di0xNmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjQgMC05MC45NjUtNTEuMDE2LTE2Ny43MzQtMTIwLjg0Mi0xOTJDMzA4Ljk4NCAyMzEuNzM0IDM2MCAxNTQuOTY1IDM2MCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG91c2VEYW1hZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDExNC45Nkw2OS40NyAzMDcuNzFjLTEuNjIgMS40Ni0zLjY5IDIuMTQtNS40NyAzLjM1VjQ5NmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNDkuMjNMMTkyIDQzOS4xOWwxMDQuMTEtNjQtNjAuMTYtMTE5LjIyTDM4NCAzOTIuNzVsLTEwNC4xMSA2NEwzMTkuODEgNTEySDQ5NmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYzMTEuMWMtMS43LTEuMTYtMy43Mi0xLjgyLTUuMjYtMy4yTDI4OCAxMTQuOTZ6bTI4Mi42OSAxMjEuMzJMNTEyIDE4NC40NVY0OGMwLTguODQtNy4xNi0xNi0xNi0xNmgtNjRjLTguODQgMC0xNiA3LjE2LTE2IDE2djUxLjY5TDMxNC43NSAxMC4zMUMzMDcuMTIgMy40NSAyOTcuNTYuMDEgMjg4IDBzLTE5LjEgMy40MS0yNi43IDEwLjI3TDUuMzEgMjM2LjI4Yy02LjU3IDUuOTEtNy4xMiAxNi4wMi0xLjIxIDIyLjZsMjEuNCAyMy44MmM1LjkgNi41NyAxNi4wMiA3LjEyIDIyLjYgMS4yMUwyNzcuNDIgODEuNjNjNi4wNS01LjMzIDE1LjEyLTUuMzMgMjEuMTcgMEw1MjcuOTEgMjgzLjljNi41NyA1LjkgMTYuNjkgNS4zNiAyMi42LTEuMjFsMjEuNC0yMy44MmM1LjktNi41NyA1LjM2LTE2LjY5LTEuMjItMjIuNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXNlVXNlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzAuNjksMjM2LjI3LDUxMiwxODQuNDRWNDhhMTYsMTYsMCwwLDAtMTYtMTZINDMyYTE2LDE2LDAsMCwwLTE2LDE2Vjk5LjY3TDMxNC43OCwxMC4zQzMwOC41LDQuNjEsMjk2LjUzLDAsMjg4LDBzLTIwLjQ2LDQuNjEtMjYuNzQsMTAuM2wtMjU2LDIyNkExOC4yNywxOC4yNywwLDAsMCwwLDI0OC4yYTE4LjY0LDE4LjY0LDAsMCwwLDQuMDksMTAuNzFMMjUuNSwyODIuN2EyMS4xNCwyMS4xNCwwLDAsMCwxMiw1LjMsMjEuNjcsMjEuNjcsMCwwLDAsMTAuNjktNC4xMWwxNS45LTE0VjQ4MGEzMiwzMiwwLDAsMCwzMiwzMkg0ODBhMzIsMzIsMCwwLDAsMzItMzJWMjY5Ljg4bDE1LjkxLDE0QTIxLjk0LDIxLjk0LDAsMCwwLDUzOC42MywyODhhMjAuODksMjAuODksMCwwLDAsMTEuODctNS4zMWwyMS40MS0yMy44MUEyMS42NCwyMS42NCwwLDAsMCw1NzYsMjQ4LjE5LDIxLDIxLDAsMCwwLDU3MC42OSwyMzYuMjdaTTI4OCwxNzZhNjQsNjQsMCwxLDEtNjQsNjRBNjQsNjQsMCwwLDEsMjg4LDE3NlpNNDAwLDQ0OEgxNzZhMTYsMTYsMCwwLDEtMTYtMTYsOTYsOTYsMCwwLDEsOTYtOTZoNjRhOTYsOTYsMCwwLDEsOTYsOTZBMTYsMTYsMCwwLDEsNDAwLDQ0OFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSHJ5dm5pYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjggMjQwYzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNmgtNDEuODZjMTMuNDEtMjguNjMgMTMuNzQtNjMuMzMtNC4xMy05NC4wNUMzMDMuMzQgNDkuODQgMjY3LjEgMzIgMjI5Ljk2IDMyaC03OC44MmMtMjQuMzIgMC00Ny44NiA4LjUzLTY2LjU0IDI0LjA5TDcyLjgzIDY1LjljLTEwLjE4IDguNDktMTEuNTYgMjMuNjItMy4wNyAzMy44bDIwLjQ5IDI0LjU5YzguNDkgMTAuMTkgMjMuNjIgMTEuNTYgMzMuODEgMy4wN2wxMS43My05Ljc4YzQuMzItMy42IDkuNzctNS41NyAxNS4zOS01LjU3aDgzLjYyYzExLjY5IDAgMjEuMiA5LjUyIDIxLjIgMjEuMiAwIDUuOTEtMi40OCAxMS41OC02LjgxIDE1LjU4TDIxOS43IDE3NkgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTM0LjM3bC0zNC42NyAzMkgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDEuODZjLTEzLjQxIDI4LjYzLTEzLjc0IDYzLjMzIDQuMTMgOTQuMDVDODAuNjYgNDYyLjE1IDExNi45IDQ4MCAxNTQuMDQgNDgwaDc4LjgyYzI0LjMyIDAgNDcuODYtOC41MyA2Ni41NC0yNC4wOWwxMS43Ny05LjgxYzEwLjE4LTguNDkgMTEuNTYtMjMuNjIgMy4wNy0zMy44bC0yMC40OS0yNC41OWMtOC40OS0xMC4xOS0yMy42Mi0xMS41Ni0zMy44MS0zLjA3bC0xMS43NSA5LjhhMjMuOTkyIDIzLjk5MiAwIDAgMS0xNS4zNiA1LjU2SDE0OS4yYy0xMS42OSAwLTIxLjItOS41Mi0yMS4yLTIxLjIgMC01LjkxIDIuNDgtMTEuNTggNi44MS0xNS41OEwxNjQuMyAzMzZIMzY4YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNkgyMzMuNjNsMzQuNjctMzJIMzY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJQ3Vyc29yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1Mi4wNDhWMTIuMDY1QzI1NiA1LjQ5NiAyNTAuNzI2LjE0OCAyNDQuMTU4LjA2NiAyMTEuNjIxLS4zNDQgMTY2LjQ2OS4wMTEgMTI4IDM3Ljk1OSA5MC4yNjYuNzM2IDQ2Ljk3OS0uMTE0IDExLjkxMy4xMTQgNS4zMTguMTU3IDAgNS41MTkgMCAxMi4xMTR2MzkuNjQ1YzAgNi42ODcgNS40NTggMTIuMDc4IDEyLjE0NSAxMS45OThDMzguMTExIDYzLjQ0NyA5NiA2Ny4yNDMgOTYgMTEyLjE4MlYyMjRINjBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgzNnYxMTJjMCA0NC45MzItNTYuMDc1IDQ4LjAzMS04My45NSA0Ny45NTlDNS40MDQgNDQ3Ljk0MiAwIDQ1My4zMDYgMCA0NTkuOTUydjM5Ljk4M2MwIDYuNTY5IDUuMjc0IDExLjkxNyAxMS44NDIgMTEuOTk5IDMyLjUzNy40MDkgNzcuNjg5LjA1NCAxMTYuMTU4LTM3Ljg5NCAzNy43MzQgMzcuMjIzIDgxLjAyMSAzOC4wNzMgMTE2LjA4NyAzNy44NDUgNi41OTUtLjA0MyAxMS45MTMtNS40MDUgMTEuOTEzLTEyVjQ2MC4yNGMwLTYuNjg3LTUuNDU4LTEyLjA3OC0xMi4xNDUtMTEuOTk4QzIxNy44ODkgNDQ4LjU1MyAxNjAgNDQ0LjkzOSAxNjAgNDAwVjI4OGgzNmM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0zNlYxMTIuMTgyYzAtNDQuOTMyIDU2LjA3NS00OC4yMTMgODMuOTUtNDguMTQyIDYuNjQ2LjAxOCAxMi4wNS01LjM0NiAxMi4wNS0xMS45OTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUljZUNyZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OCAxNjBoLS45NGExNDQgMTQ0IDAgMSAwLTI4Ni4xMiAwSDgwYTQ4IDQ4IDAgMCAwIDAgOTZoMjg4YTQ4IDQ4IDAgMCAwIDAtOTZ6TTE5NS4zOCA0OTMuNjlhMzEuNTIgMzEuNTIgMCAwIDAgNTcuMjQgMEwzNTIgMjg4SDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJY2ljbGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMS40IDM3LjlDNTE1LjEgMTguMiA1MDAgMCA0ODAgMEgzMkMxMC42IDAtNC44IDIwLjcgMS40IDQxLjJsODcuMSAyNzMuNGMyLjUgNy4yIDEyLjcgNy4yIDE1LjEgMEwxNDAgMTkwLjVsNDQuMiAxODcuM2MxLjkgOC4zIDEzLjcgOC4zIDE1LjYgMGw0Ni41LTE5Ni45IDM0LjEgMTMzLjRjMi4zIDcuNiAxMyA3LjYgMTUuMyAwbDQ1LjgtMTcyLjUgNjYuNyAzNjMuOGMxLjcgOC42IDE0IDguNiAxNS43IDBsODcuNS00NjcuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSWNvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTE2LjY1IDIxOS4zNWExNS42OCAxNS42OCAwIDAgMCAyMi42NSAwbDk2Ljc1LTk5LjgzYzI4LjE1LTI5IDI2LjUtNzcuMS00LjkxLTEwMy44OEMyMDMuNzUtNy43IDE2My0zLjUgMTM3Ljg2IDIyLjQ0TDEyOCAzMi41OGwtOS44NS0xMC4xNEM5My4wNS0zLjUgNTIuMjUtNy43IDI0Ljg2IDE1LjY0Yy0zMS40MSAyNi43OC0zMyA3NC44NS01IDEwMy44OHptMTQzLjkyIDEwMC40OWgtNDhsLTcuMDgtMTQuMjRhMjcuMzkgMjcuMzkgMCAwIDAtMjUuNjYtMTcuNzhoLTcxLjcxYTI3LjM5IDI3LjM5IDAgMCAwLTI1LjY2IDE3Ljc4bC03IDE0LjI0aC00OEEyNy40NSAyNy40NSAwIDAgMCAwIDM0Ny4zdjEzNy4yNUEyNy40NCAyNy40NCAwIDAgMCAyNy40MyA1MTJoMjMzLjE0QTI3LjQ1IDI3LjQ1IDAgMCAwIDI4OCA0ODQuNTVWMzQ3LjNhMjcuNDUgMjcuNDUgMCAwIDAtMjcuNDMtMjcuNDZ6TTE0NCA0NjhhNTIgNTIgMCAxIDEgNTItNTIgNTIgNTIgMCAwIDEtNTIgNTJ6bTM1NS40LTExNS45aC02MC41OGwyMi4zNi01MC43NWMyLjEtNi42NS0zLjkzLTEzLjIxLTEyLjE4LTEzLjIxaC03NS41OWMtNi4zIDAtMTEuNjYgMy45LTEyLjUgOS4xbC0xNi44IDEwNi45M2MtMSA2LjMgNC44OCAxMS44OSAxMi41IDExLjg5aDYyLjMxbC0yNC4yIDgzYy0xLjg5IDYuNjUgNC4yIDEyLjkgMTIuMjMgMTIuOWExMy4yNiAxMy4yNiAwIDAgMCAxMC45Mi01LjI1bDkyLjQtMTM4LjkxYzQuODgtNi45MS0xLjE2LTE1LjctMTAuODctMTUuN3pNNDc4LjA4LjMzTDMyOS41MSAyMy4xN0MzMTQuODcgMjUuNDIgMzA0IDM4LjkyIDMwNCA1NC44M1YxNjEuNmE4My4yNSA4My4yNSAwIDAgMC0xNi0xLjdjLTM1LjM1IDAtNjQgMjEuNDgtNjQgNDhzMjguNjUgNDggNjQgNDhjMzUuMiAwIDYzLjczLTIxLjMyIDY0LTQ3LjY2Vjk5LjY2bDExMi0xNy4yMnY0Ny4xOGE4My4yNSA4My4yNSAwIDAgMC0xNi0xLjdjLTM1LjM1IDAtNjQgMjEuNDgtNjQgNDhzMjguNjUgNDggNjQgNDhjMzUuMiAwIDYzLjczLTIxLjMyIDY0LTQ3LjY2VjMyYzAtMTkuNDgtMTYtMzQuNDItMzMuOTItMzEuNjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUlkQmFkZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM2IDBINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyODhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTE0NCAzMmg5NmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmgtOTZjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTQ4IDEyOGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NC02NC0yOC43LTY0LTY0IDI4LjctNjQgNjQtNjR6bTExMiAyMzYuOGMwIDEwLjYtMTAgMTkuMi0yMi40IDE5LjJIMTAyLjRDOTAgNDE2IDgwIDQwNy40IDgwIDM5Ni44di0xOS4yYzAtMzEuOCAzMC4xLTU3LjYgNjcuMi01Ny42aDVjMTIuMyA1LjEgMjUuNyA4IDM5LjggOHMyNy42LTIuOSAzOS44LThoNWMzNy4xIDAgNjcuMiAyNS44IDY3LjIgNTcuNnYxOS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJZENhcmRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI4IDY0SDM4NHY5NkgxOTJWNjRINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQ4MGMyNi41IDAgNDgtMjEuNSA0OC00OFYxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTI4OCAyMjRjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjQtNjQtMjguNy02NC02NCAyOC43LTY0IDY0LTY0em05My4zIDIyNEgxOTQuN2MtMTAuNCAwLTE4LjgtMTAtMTUuNi0xOS44IDguMy0yNS42IDMyLjQtNDQuMiA2MC45LTQ0LjJoOC4yYzEyLjMgNS4xIDI1LjcgOCAzOS44IDhzMjcuNi0yLjkgMzkuOC04aDguMmMyOC40IDAgNTIuNSAxOC41IDYwLjkgNDQuMiAzLjIgOS44LTUuMiAxOS44LTE1LjYgMTkuOHpNMzUyIDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyaC02NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2OTZoMTI4VjMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJZENhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI4IDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MTZoNTc2VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0wIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0ODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTI4SDB2MzA0em0zNTItMjMyYzAtNC40IDMuNi04IDgtOGgxNDRjNC40IDAgOCAzLjYgOCA4djE2YzAgNC40LTMuNiA4LTggOEgzNjBjLTQuNCAwLTgtMy42LTgtOHYtMTZ6bTAgNjRjMC00LjQgMy42LTggOC04aDE0NGM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4SDM2MGMtNC40IDAtOC0zLjYtOC04di0xNnptMCA2NGMwLTQuNCAzLjYtOCA4LThoMTQ0YzQuNCAwIDggMy42IDggOHYxNmMwIDQuNC0zLjYgOC04IDhIMzYwYy00LjQgMC04LTMuNi04LTh2LTE2ek0xNzYgMTkyYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0LTY0LTI4LjctNjQtNjQgMjguNy02NCA2NC02NHpNNjcuMSAzOTYuMkM3NS41IDM3MC41IDk5LjYgMzUyIDEyOCAzNTJoOC4yYzEyLjMgNS4xIDI1LjcgOCAzOS44IDhzMjcuNi0yLjkgMzkuOC04aDguMmMyOC40IDAgNTIuNSAxOC41IDYwLjkgNDQuMiAzLjIgOS45LTUuMiAxOS44LTE1LjYgMTkuOEg4Mi43Yy0xMC40IDAtMTguOC0xMC0xNS42LTE5Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUlnbG9vIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCAzMy45Yy0xMC41LTEuMi0yMS4yLTEuOS0zMi0xLjktOTkuOCAwLTE4Ny44IDUwLjgtMjM5LjQgMTI4SDMyMFYzMy45ek05NiAxOTJIMzAuM0MxMS4xIDIzMC42IDAgMjc0IDAgMzIwaDk2VjE5MnpNMzUyIDM5LjRWMTYwaDE3NS40QzQ4Ny4yIDk5LjkgNDI0LjggNTUuOSAzNTIgMzkuNHpNNDgwIDMyMGg5NmMwLTQ2LTExLjEtODkuNC0zMC4zLTEyOEg0ODB2MTI4em0tNjQgNjR2OTZoMTI4YzE3LjcgMCAzMi0xNC4zIDMyLTMydi05Nkg0MTEuNWMyLjYgMTAuMyA0LjUgMjAuOSA0LjUgMzJ6bTMyLTE5MkgxMjh2MTI4aDQ5LjhjMjIuMi0zOC4xIDYzLTY0IDExMC4yLTY0czg4IDI1LjkgMTEwLjIgNjRINDQ4VjE5MnpNMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTI4di05NmMwLTExLjEgMS45LTIxLjcgNC41LTMySDB2OTZ6bTI4OC0xNjBjLTUzIDAtOTYgNDMtOTYgOTZ2OTZoMTkydi05NmMwLTUzLTQzLTk2LTk2LTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgNDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjExMmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDQxNmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4djI4OGMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4ek0xMTIgMTIwYy0zMC45MjggMC01NiAyNS4wNzItNTYgNTZzMjUuMDcyIDU2IDU2IDU2IDU2LTI1LjA3MiA1Ni01Ni0yNS4wNzItNTYtNTYtNTZ6TTY0IDM4NGgzODRWMjcybC04Ny41MTUtODcuNTE1Yy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcxIDBMMjA4IDMyMGwtNTUuNTE1LTU1LjUxNWMtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3MSAwTDY0IDMzNnY0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW1hZ2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MCA0MTZ2MTZjMCAyNi41MS0yMS40OSA0OC00OCA0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFYxNzZjMC0yNi41MSAyMS40OS00OCA0OC00OGgxNnYyMDhjMCA0NC4xMTIgMzUuODg4IDgwIDgwIDgwaDMzNnptOTYtODBWODBjMC0yNi41MS0yMS40OS00OC00OC00OEgxNDRjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2MjU2YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMzg0YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDh6TTI1NiAxMjhjMCAyNi41MS0yMS40OSA0OC00OCA0OHMtNDgtMjEuNDktNDgtNDggMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDh6bS05NiAxNDRsNTUuNTE1LTU1LjUxNWM0LjY4Ni00LjY4NiAxMi4yODQtNC42ODYgMTYuOTcxIDBMMjcyIDI1NmwxMzUuNTE1LTEzNS41MTVjNC42ODYtNC42ODYgMTIuMjg0LTQuNjg2IDE2Ljk3MSAwTDUxMiAyMDh2MTEySDE2MHYtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUluYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2Ny45MzggMjQzLjkwOEw0NjIuMjUgODUuMzc0QTQ4LjAwMyA0OC4wMDMgMCAwIDAgNDIyLjMxMSA2NEgxNTMuNjg5YTQ4IDQ4IDAgMCAwLTM5LjkzOCAyMS4zNzRMOC4wNjIgMjQzLjkwOEE0Ny45OTQgNDcuOTk0IDAgMCAwIDAgMjcwLjUzM1Y0MDBjMCAyNi41MSAyMS40OSA0OCA0OCA0OGg0ODBjMjYuNTEgMCA0OC0yMS40OSA0OC00OFYyNzAuNTMzYTQ3Ljk5NCA0Ny45OTQgMCAwIDAtOC4wNjItMjYuNjI1ek0xNjIuMjUyIDEyOGgyNTEuNDk3bDg1LjMzMyAxMjhIMzc2bC0zMiA2NEgyMzJsLTMyLTY0SDc2LjkxOGw4NS4zMzQtMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbmRlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcuMzEgMzYzLjNsOTYtOTZhMTYgMTYgMCAwIDAgMC0yMi42MmwtOTYtOTZDMTcuMjcgMTM4LjY2IDAgMTQ1Ljc4IDAgMTYwdjE5MmMwIDE0LjMxIDE3LjMzIDIxLjMgMjcuMzEgMTEuM3pNNDMyIDQxNkgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0zLjE3LTEyOEgyMDQuODNBMTIuODIgMTIuODIgMCAwIDAgMTkyIDMwMC44M3YzOC4zNEExMi44MiAxMi44MiAwIDAgMCAyMDQuODMgMzUyaDIzMC4zNEExMi44MiAxMi44MiAwIDAgMCA0NDggMzM5LjE3di0zOC4zNEExMi44MiAxMi44MiAwIDAgMCA0MzUuMTcgMjg4em0wLTEyOEgyMDQuODNBMTIuODIgMTIuODIgMCAwIDAgMTkyIDE3Mi44M3YzOC4zNEExMi44MiAxMi44MiAwIDAgMCAyMDQuODMgMjI0aDIzMC4zNEExMi44MiAxMi44MiAwIDAgMCA0NDggMjExLjE3di0zOC4zNEExMi44MiAxMi44MiAwIDAgMCA0MzUuMTcgMTYwek00MzIgMzJIMTZBMTYgMTYgMCAwIDAgMCA0OHYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUluZHVzdHJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3NS4xMTUgMTYzLjc4MUwzMzYgMjUyLjMwOXYtNjguMjhjMC0xOC45MTYtMjAuOTMxLTMwLjM5OS0zNi44ODUtMjAuMjQ4TDE2MCAyNTIuMzA5VjU2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyNEMxMC43NDUgMzIgMCA0Mi43NDUgMCA1NnY0MDBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDQ2NGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTg0LjAyOWMwLTE4LjkxNy0yMC45MzEtMzAuMzk5LTM2Ljg4NS0yMC4yNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUluZmluaXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3MS4xIDk2QzQwNSA5NiAzNTMuMyAxMzcuMyAzMjAgMTc0LjYgMjg2LjcgMTM3LjMgMjM1IDk2IDE2OC45IDk2IDc1LjggOTYgMCAxNjcuOCAwIDI1NnM3NS44IDE2MCAxNjguOSAxNjBjNjYuMSAwIDExNy44LTQxLjMgMTUxLjEtNzguNiAzMy4zIDM3LjMgODUgNzguNiAxNTEuMSA3OC42IDkzLjEgMCAxNjguOS03MS44IDE2OC45LTE2MFM1NjQuMiA5NiA0NzEuMSA5NnpNMTY4LjkgMzIwYy00MC4yIDAtNzIuOS0yOC43LTcyLjktNjRzMzIuNy02NCA3Mi45LTY0YzM4LjIgMCA3My40IDM2LjEgOTQgNjQtMjAuNCAyNy42LTU1LjkgNjQtOTQgNjR6bTMwMi4yIDBjLTM4LjIgMC03My40LTM2LjEtOTQtNjQgMjAuNC0yNy42IDU1LjktNjQgOTQtNjQgNDAuMiAwIDcyLjkgMjguNyA3Mi45IDY0cy0zMi43IDY0LTcyLjkgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUluZm9DaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5LjA0MyA4IDggMTE5LjA4MyA4IDI1NmMwIDEzNi45OTcgMTExLjA0MyAyNDggMjQ4IDI0OHMyNDgtMTExLjAwMyAyNDgtMjQ4QzUwNCAxMTkuMDgzIDM5Mi45NTcgOCAyNTYgOHptMCAxMTBjMjMuMTk2IDAgNDIgMTguODA0IDQyIDQycy0xOC44MDQgNDItNDIgNDItNDItMTguODA0LTQyLTQyIDE4LjgwNC00MiA0Mi00MnptNTYgMjU0YzAgNi42MjctNS4zNzMgMTItMTIgMTJoLTg4Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDEydi02NGgtMTJjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTI0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNjRjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYxMDBoMTJjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW5mbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMTkyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0MjQuMjI5aDIwVjI3OS43NzFIMjBjLTExLjA0NiAwLTIwLTguOTU0LTIwLTIwVjIxMmMwLTExLjA0NiA4Ljk1NC0yMCAyMC0yMGgxMTJjMTEuMDQ2IDAgMjAgOC45NTQgMjAgMjB2MjEyLjIyOWgyMGMxMS4wNDYgMCAyMCA4Ljk1NCAyMCAyMFY0OTJjMCAxMS4wNDYtOC45NTQgMjAtMjAgMjBIMjBjLTExLjA0NiAwLTIwLTguOTU0LTIwLTIwdi00Ny43NzFjMC0xMS4wNDYgOC45NTQtMjAgMjAtMjB6TTk2IDBDNTYuMjM1IDAgMjQgMzIuMjM1IDI0IDcyczMyLjIzNSA3MiA3MiA3MiA3Mi0zMi4yMzUgNzItNzJTMTM1Ljc2NCAwIDk2IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUl0YWxpYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgNDh2MzJhMTYgMTYgMCAwIDEtMTYgMTZoLTYyLjc2bC04MCAzMjBIMjA4YTE2IDE2IDAgMCAxIDE2IDE2djMyYTE2IDE2IDAgMCAxLTE2IDE2SDE2YTE2IDE2IDAgMCAxLTE2LTE2di0zMmExNiAxNiAwIDAgMSAxNi0xNmg2Mi43Nmw4MC0zMjBIMTEyYTE2IDE2IDAgMCAxLTE2LTE2VjQ4YTE2IDE2IDAgMCAxIDE2LTE2aDE5MmExNiAxNiAwIDAgMSAxNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSmVkaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MzUuOTUzMDgsMzUyYy00Mi42NDA2OSw5NC4xNzE4OC0xMzcuNjQwODYsMTYwLTI0Ny45ODQ4LDE2MHEtNi4zOTg0NCwwLTEyLjg0Mzc3LS4yOTY4OEMxNzEuMTU1NTgsNTA2LjkzNzUsODEuMjY0ODEsNDQyLjIzNDM4LDQwLjAxNDc0LDM1Mkg3OS45MzY2OEwyMS4zMjcyLDI5My40MDYyNWEyNjQuODI1MjIsMjY0LjgyNTIyLDAsMCwxLTUuMTA5MzgtMzkuNDIxODcsMjczLjY2NTMsMjczLjY2NTMsMCwwLDEsLjUtMjkuOTg0MzhINjMuOTM2NjVMMjIuNTQ2LDE4Mi42MjVBMjY5Ljc5NzgyLDI2OS43OTc4MiwwLDAsMSwxMzAuNTE0ODksMjAuNTQ2ODhhMTYuMDYzOTMsMTYuMDYzOTMsMCwwLDEsOS4yODEyNy0zLDE2LjM2MzMyLDE2LjM2MzMyLDAsMCwxLDEzLjUsNy4yNSwxNi4wMjczOSwxNi4wMjczOSwwLDAsMSwxLjYyNSwxNS4wOTM3NCwxMzguMzg3LDEzOC4zODcsMCwwLDAtOS44NDM3Niw1MS4yNjU2M2MwLDQ1LjEwOTM3LDIxLjA0NjkxLDg2LjU3ODEzLDU3LjcxODg0LDExMy43MzQzN2ExNi4yOTk4OSwxNi4yOTk4OSwwLDAsMSwxLjIwMzEzLDI1LjM5MDYzYy0yNi41NDY5MiwyMy45ODQzNy00MS4xNzE5NCw1Ni41LTQxLjE3MTk0LDkxLjU3ODEzLDAsNjAuMDMxMjQsNDIuOTUzMTksMTEwLjI4MTI0LDk5Ljg5MDc5LDEyMS45MjE4N2wyLjUtNjUuMjY1NjNMMjM4LjA2MiwzOTdhOC4zMzkxMSw4LjMzOTExLDAsMCwxLTEwLS43NSw4LjAyNSw4LjAyNSwwLDAsMS0xLjM5MDYzLTkuOTM3NWwyMC4xMjUtMzMuNzY1NjItNDIuMDYyNTctOC43MzQzOGE3Ljk4OTgsNy45ODk4LDAsMCwxLDAtMTUuNjU2MjVsNDIuMDYyNTctOC43MTg3NS0yMC4xMDk0MS0zMy43MzQzOGE3Ljk5MTIyLDcuOTkxMjIsMCwwLDEsMTEuMzU5MzktMTAuNzE4NzRMMjY4LjQzNywyOTUuNjQwNjIsMjc5Ljk1MjY1LDcuNjcxODhhNy45NzEzOCw3Ljk3MTM4LDAsMCwxLDgtNy42NzE4OGguMDQ2ODdhOC4wMjA2NCw4LjAyMDY0LDAsMCwxLDcuOTUzMTQsNy43MDMxMkwzMDcuNDgzOTQsMjk1LjYyNWwzMC4zOTA2OC0yMC42NzE4OGE4LjA4MzI3LDguMDgzMjcsMCwwLDEsMTAsLjgxMjUsNy45OTg2Niw3Ljk5ODY2LDAsMCwxLDEuMzkwNjIsOS45MDYyNkwzMjkuMTI0NjEsMzE5LjQzNzVsNDIuMDc4MTksOC43MzQzOGE3Ljk5MzczLDcuOTkzNzMsMCwwLDEsMCwxNS42NTYyNGwtNDIuMDc4MTksOC43MTg3NiwyMC4xMDk0LDMzLjczNDM3YTcuOTc3OTEsNy45Nzc5MSwwLDAsMS0xLjMyODEyLDkuOTIxODdBOC4yNTczOSw4LjI1NzM5LDAsMCwxLDMzNy44NzQ2MiwzOTdMMzEwLjcwMjcsMzc4LjUzMTI1bDIuNSw2NS4zNDM3NWM0OC40ODQ0Ni05LjQwNjI1LDg3LjU3ODI4LTQ4LjE1NjI1LDk3LjMxMjY3LTk2LjVBMTIzLjUyNjUyLDEyMy41MjY1MiwwLDAsMCwzNzEuOTUyOCwyMzAuMjk2ODhhMTYuMzA2MzQsMTYuMzA2MzQsMCwwLDEsMS4yMDMxMy0yNS40MjE4OGMzNi42NTYzMS0yNy4xNzE4OCw1Ny42ODc2LTY4LjYwOTM4LDU3LjY4NzYtMTEzLjczNDM4YTEzOC4wMTY4OSwxMzguMDE2ODksMCwwLDAtOS44NTkzOS01MS4zMTI1LDE1Ljk4MTMyLDE1Ljk4MTMyLDAsMCwxLDEuNjA5MzctMTUuMDkzNzQsMTYuMzY5MTQsMTYuMzY5MTQsMCwwLDEsMTMuNS03LjIzNDM4LDE2LjAyNDUzLDE2LjAyNDUzLDAsMCwxLDkuMjUsMi45ODQzOEEyNzEuMjY5NDcsMjcxLjI2OTQ3LDAsMCwxLDU1My4yNSwxODIuNzY1NjJMNTExLjk5OTkyLDIyNGg0Ni45NTMyQzU1OS4zMTI1LDIyOS43NjU2Miw1NjAsMjM1LjQ1MzEyLDU2MCwyNDEuMjY1NjJhMjcwLjA5MiwyNzAuMDkyLDAsMCwxLTUuMTI1LDUxLjg1OTM4TDQ5NS45ODQyNywzNTJaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUpvaW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0NC4zNCAxODEuMWMyMi4zOCAxNS42OCAzNS42NiA0MS4xNiAzNS42NiA2OC41OVYyODBjMCA0LjQyIDMuNTggOCA4IDhoNDhjNC40MiAwIDgtMy41OCA4LTh2LTMwLjMxYzAtNDMuMjQtMjEuMDEtODMuNDEtNTYuMzQtMTA4LjA2QzQ2My44NSAxMjUuMDIgNDQ4IDk5LjM0IDQ0OCA3MC4zMVY4YzAtNC40Mi0zLjU4LTgtOC04aC00OGMtNC40MiAwLTggMy41OC04IDh2NjYuNGMwIDQzLjY5IDI0LjU2IDgxLjYzIDYwLjM0IDEwNi43ek0xOTQuOTcgMzU4Ljk4QzEyNi4wMyAzNzAuMDcgNTkuNjkgMzk0LjY5IDAgNDMyYzgzLjY1IDUyLjI4IDE4MC4zIDgwIDI3OC45NCA4MGg4OC41N0wyNTQuNzkgMzgwLjQ5Yy0xNC43NC0xNy4yLTM3LjQ1LTI1LjExLTU5LjgyLTIxLjUxek01NTMuMjggODcuMDljLTUuNjctMy44LTkuMjgtOS45Ni05LjI4LTE2Ljc4VjhjMC00LjQyLTMuNTgtOC04LThoLTQ4Yy00LjQyIDAtOCAzLjU4LTggOHY2Mi4zMWMwIDIyLjAyIDEwLjE3IDQzLjQxIDI4LjY0IDU1LjM5QzU1MC43OSAxNTMuMDQgNTc2IDE5OS41NCA1NzYgMjQ5LjY5VjI4MGMwIDQuNDIgMy41OCA4IDggOGg0OGM0LjQyIDAgOC0zLjU4IDgtOHYtMzAuMzFjMC02NS40NC0zMi40MS0xMjYuMTktODYuNzItMTYyLjZ6TTM2MC44OSAzNTIuMDVjLTM0LjQuMDYtODYuODEuMTUtODguMjEuMTdsMTE3LjggMTM3LjQzQTYzLjk4NyA2My45ODcgMCAwIDAgNDM5LjA3IDUxMmg4OC40NUw0MDkuNTcgMzc0LjRhNjMuOTU1IDYzLjk1NSAwIDAgMC00OC42OC0yMi4zNXpNNjE2IDM1Mkg0MzJsMTE3Ljk5IDEzNy42NUE2My45ODcgNjMuOTg3IDAgMCAwIDU5OC41OCA1MTJINjE2YzEzLjI1IDAgMjQtMTAuNzUgMjQtMjRWMzc2YzAtMTMuMjYtMTAuNzUtMjQtMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUpvdXJuYWxXaGlsbHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM4LjQwNjI1LDM3Ny41OTM3NWMtMy4yMDMxMywxMi44MTI1LTMuMjAzMTMsNTcuNjA5MzcsMCw3My42MDkzN1E0NDcuOTkyMiw0NjAuNzg5MDcsNDQ4LDQ3MC40MDYyNXYxNmMwLDE2LTEyLjc5Njg4LDI1LjU5Mzc1LTI1LjU5Mzc1LDI1LjU5Mzc1SDk2Yy01NC40MDYyNSwwLTk2LTQxLjU5Mzc1LTk2LTk2Vjk2QzAsNDEuNTkzNzUsNDEuNTkzNzUsMCw5NiwwSDQyMi40MDYyNUM0MzguNDA2MjUsMCw0NDgsOS41OTM3NSw0NDgsMjUuNTkzNzV2MzMyLjgxMjVRNDQ4LDM3Mi43OTY4OCw0MzguNDA2MjUsMzc3LjU5Mzc1Wk0zODAuNzk2ODgsMzg0SDk2Yy0xNiwwLTMyLDEyLjc5Njg4LTMyLDMyczEyLjc5Njg4LDMyLDMyLDMySDM4MC43OTY4OFpNMTI4LjAxNTYyLDE3Ni4wMTU2MmMwLC41MTU2My4xNDA2My45ODQzOC4xNDA2MywxLjVsMzcuMTA5MzcsMzIuNDY4NzZBNy45OTk1NCw3Ljk5OTU0LDAsMCwxLDE2MCwyMjRoLS4wMTU2MmE5LjE3Njc4LDkuMTc2NzgsMCwwLDEtNS4yNS0xLjk4NDM4TDEzMS4xNDA2MiwyMDEuMzc1QzE0Mi42ODc1LDI1MC45NTMxMiwxODYuOTA2MjUsMjg4LDI0MCwyODhzOTcuMzEyNS0zNy4wNDY4OCwxMDguODc1LTg2LjYyNWwtMjMuNTkzNzUsMjAuNjQwNjJhOC4wMjUxNiw4LjAyNTE2LDAsMCwxLTUuMjY1NjMsMS45Njg3NkgzMjBhOS4xNDY0MSw5LjE0NjQxLDAsMCwxLTYuMDE1NjItMi43MTg3NkE5LjI2NTA4LDkuMjY1MDgsMCwwLDEsMzEyLDIxNmE5LjA5Nyw5LjA5NywwLDAsMSwyLjczNDM4LTYuMDE1NjJsMzcuMTA5MzctMzIuNDY4NzZjLjAxNTYzLS41MzEyNC4xNTYyNS0xLC4xNTYyNS0xLjUxNTYyLDAtMTEuMDQ2ODgtMi4wOTM3NS0yMS41MTU2Mi01LjA2MjUxLTMxLjU5Mzc1bC0yMS4yNjU2MiwyMS4yNWE4LjAwNDY3LDguMDA0NjcsMCwwLDEtMTEuMzI4MTItMTEuMzEyNWwyNi40MjE4Ny0yNi40MDYyNWExMTEuODE1MTcsMTExLjgxNTE3LDAsMCwwLTQ2LjM1OTM3LTQ5LjI2NTYyLDYzLjAyMzM2LDYzLjAyMzM2LDAsMCwxLTE0LjA2MjUsODIuNjQwNjJBNTUuODM4NDYsNTUuODM4NDYsMCwwLDEsMjUxLjYyNSwyNTQuNzM0MzhsLTEuNDIxODgtMzQuMjgxMjYsMTIuNjcxODgsOC42MjVhMy45NjcsMy45NjcsMCwwLDAsMi4yNS42ODc1LDMuOTgwNTksMy45ODA1OSwwLDAsMCwzLjQzNzQ5LTYuMDMxMjRsLTguNTMxMjQtMTQuMzEyNSwxNy45MDYyNS0zLjcxODc2YTQuMDA2NDcsNC4wMDY0NywwLDAsMCwwLTcuODQzNzRsLTE3LjkwNjI1LTMuNzE4NzYsOC41MzEyNC0xNC4zMTI1YTMuOTgwNTksMy45ODA1OSwwLDAsMC0zLjQzNzQ5LTYuMDMxMjQsNC43MjYsNC43MjYsMCwwLDAtMi4yNS42NzE4N0wyNDguNjg3NSwxODQuMTI1LDI0NCw3MS44MjgxMmE0LjAwMzg2LDQuMDAzODYsMCwwLDAtOCwwbC00LjYyNSwxMTAuODEyNS0xMi04LjE1NjI0YTQuMDAzLDQuMDAzLDAsMCwwLTUuNjg3NTEsNS4zNTkzN2w4LjUzMTI2LDE0LjMxMjVMMjA0LjMxMjUsMTk3Ljg3NWEzLjk5Njg2LDMuOTk2ODYsMCwwLDAsMCw3LjgyODEybDE3LjkwNjI1LDMuNzM0MzgtOC41MzEyNiwxNC4yOTY4OGE0LjcyNDY5LDQuNzI0NjksMCwwLDAtLjU2MjQ5LDIuMDQ2ODcsNC41OTU0Nyw0LjU5NTQ3LDAsMCwwLDEuMjUsMi45MDYyNSw0LjAxMDU5LDQuMDEwNTksMCwwLDAsMi43NSwxLjA5Mzc1LDQuMDkwMTYsNC4wOTAxNiwwLDAsMCwyLjI1LS42ODc1bDEwLjM1OTM3LTcuMDQ2ODdMMjI4LjM3NSwyNTQuNzY1NjJhNTUuODY0MTQsNTUuODY0MTQsMCwwLDEtMjguNzE4NzUtOTMuNDUzMTIsNjMuMDExMTksNjMuMDExMTksMCwwLDEtMTQuMDQ2ODgtODIuNjU2MjUsMTExLjkzMTU4LDExMS45MzE1OCwwLDAsMC00Ni4zNzUsNDkuMjY1NjNsMjYuNDIxODcsMjYuNDIxODdhNy45OTkxNyw3Ljk5OTE3LDAsMCwxLTExLjMxMjUsMTEuMzEyNWwtMjEuMjY1NjMtMjEuMjY1NjNDMTMwLjA5Mzc1LDE1NC40ODQzOCwxMjgsMTY0Ljk1MzEyLDEyOC4wMTU2MiwxNzYuMDE1NjJaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUthYWJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU1NC4xMiA4My41MUwzMTguMzYgNC45M2E5NS45NjIgOTUuOTYyIDAgMCAwLTYwLjcxIDBMMjEuODggODMuNTFBMzIuMDA2IDMyLjAwNiAwIDAgMCAwIDExMy44N3Y0OS4wMWwyNjUuMDItNzkuNTFjMTUuMDMtNC41IDMwLjkyLTQuNSA0NS45OCAwbDI2NSA3OS41MXYtNDkuMDFjMC0xMy43Ny04LjgxLTI2LTIxLjg4LTMwLjM2em0tMjc5LjkgMzAuNTJMMCAxOTYuM3YyMjguMzhjMCAxNSAxMC40MiAyNy45OCAyNS4wNiAzMS4yNGwyNDIuMTIgNTMuOGE5NS45MzcgOTUuOTM3IDAgMCAwIDQxLjY1IDBsMjQyLjEyLTUzLjhjMTQuNjQtMy4yNSAyNS4wNi0xNi4yNCAyNS4wNi0zMS4yNFYxOTYuMjlsLTI3NC4yLTgyLjI2Yy05LjA0LTIuNzItMTguNTktMi43Mi0yNy41OSAwek0xMjggMjMwLjExYzAgMy42MS0yLjQxIDYuNzctNS44OSA3LjcybC04MCAyMS44MkMzNy4wMiAyNjEuMDMgMzIgMjU3LjIgMzIgMjUxLjkzdi0xNi41OGMwLTMuNjEgMi40MS02Ljc3IDUuODktNy43Mmw4MC0yMS44MmM1LjA5LTEuMzkgMTAuMTEgMi40NCAxMC4xMSA3LjcydjE2LjU4em0xNDQtMzkuMjhjMCAzLjYxLTIuNDEgNi43Ny01Ljg5IDcuNzJsLTk2IDI2LjE4Yy01LjA5IDEuMzktMTAuMTEtMi40NC0xMC4xMS03Ljcydi0xNi41OGMwLTMuNjEgMi40MS02Ljc3IDUuODktNy43Mmw5Ni0yNi4xOGM1LjA5LTEuMzkgMTAuMTEgMi40NCAxMC4xMSA3LjcydjE2LjU4em0xNzYgMjIuN2MwLTUuMjggNS4wMi05LjExIDEwLjExLTcuNzJsODAgMjEuODJjMy40OC45NSA1Ljg5IDQuMTEgNS44OSA3LjcydjE2LjU4YzAgNS4yOC01LjAyIDkuMTEtMTAuMTEgNy43MmwtODAtMjEuODJhNy45OTcgNy45OTcgMCAwIDEtNS44OS03Ljcydi0xNi41OHptLTE0NC0zOS4yN2MwLTUuMjggNS4wMi05LjExIDEwLjExLTcuNzJsOTYgMjYuMThjMy40OC45NSA1Ljg5IDQuMTEgNS44OSA3LjcydjE2LjU4YzAgNS4yOC01LjAyIDkuMTEtMTAuMTEgNy43MmwtOTYtMjYuMThhNy45OTcgNy45OTcgMCAwIDEtNS44OS03Ljcydi0xNi41OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS2V5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiAxNzYuMDAxQzUxMiAyNzMuMjAzIDQzMy4yMDIgMzUyIDMzNiAzNTJjLTExLjIyIDAtMjIuMTktMS4wNjItMzIuODI3LTMuMDY5bC0yNC4wMTIgMjcuMDE0QTIzLjk5OSAyMy45OTkgMCAwIDEgMjYxLjIyMyAzODRIMjI0djQwYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNGgtNDB2NDBjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0SDI0Yy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjR2LTc4LjA1OWMwLTYuMzY1IDIuNTI5LTEyLjQ3IDcuMDI5LTE2Ljk3MWwxNjEuODAyLTE2MS44MDJDMTYzLjEwOCAyMTMuODE0IDE2MCAxOTUuMjcxIDE2MCAxNzYgMTYwIDc4Ljc5OCAyMzguNzk3LjAwMSAzMzUuOTk5IDAgNDMzLjQ4OC0uMDAxIDUxMiA3OC41MTEgNTEyIDE3Ni4wMDF6TTMzNiAxMjhjMCAyNi41MSAyMS40OSA0OCA0OCA0OHM0OC0yMS40OSA0OC00OC0yMS40OS00OC00OC00OC00OCAyMS40OS00OCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS2V5Ym9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI4IDQ0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFYxMTJjMC0yNi41MSAyMS40OS00OCA0OC00OGg0ODBjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHYyODhjMCAyNi41MS0yMS40OSA0OC00OCA0OHpNMTI4IDE4MHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMkg3NmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptLTMzNiA5NnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem0tMzM2IDk2di00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDc2Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptMjg4IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJIMTcyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjMyYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS2hhbmRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNS44MSA2NmMtNi4zNy0zLjUtMTQuMzctMi4zMy0xOS4zNiAzLjAyYTE1Ljk3NCAxNS45NzQgMCAwIDAtMS45MSAxOS41MmMxNi40OSAyNi4xNiAyNS4yIDU2LjM5IDI1LjIgODcuNDEtLjE5IDUzLjI1LTI2Ljc3IDEwMi42OS03MS4yNyAxMzIuNDFsLTc2LjYzIDUzLjM1di0yMC4xbDQ0LjA1LTM2LjA5YzMuOTItNC4yIDUtMTAuMDkgMi44MS0xNS4yOEwzMTAuODUgMjczYzMzLjg0LTE5LjI2IDU2Ljk0LTU1LjI1IDU2Ljk0LTk2Ljk5IDAtNDAuNzktMjIuMDItNzYuMTMtNTQuNTktOTUuNzFsNS4yMi0xMS40NGMyLjM0LTUuNTMuOTMtMTEuODMtMy41Ny0xNi4wNEwyNTUuODYgMGwtNTguOTkgNTIuODFjLTQuNSA0LjIxLTUuOSAxMC41MS0zLjU3IDE2LjA0bDUuMjIgMTEuNDRjLTMyLjU3IDE5LjU4LTU0LjU5IDU0LjkzLTU0LjU5IDk1LjcyIDAgNDEuNzUgMjMuMDkgNzcuNzMgNTYuOTQgOTYuOTlsLTcuODUgMTcuMjRjLTIuMTkgNS4xOC0xLjEgMTEuMDcgMi44MSAxNS4yOGw0NC4wNSAzNi4wOXYxOS45bC03Ni41OS01My4zM0MxMTkuMDIgMjc4LjYyIDkyLjQ0IDIyOS4xOSA5Mi4yNiAxNzZjMC0zMS4wOCA4LjcxLTYxLjMxIDI1LjItODcuNDcgMy44Ny02LjE2IDIuNC0xMy43Ny0yLjU5LTE5LjA4LTUtNS4zNC0xMy42OC02LjItMjAuMDItMi43QzE2LjMyIDEwOS42LTIyLjMgMjA1LjMgMTMuMzYgMjk1Ljk5YzcuMDcgMTcuOTkgMTcuODkgMzQuMzggMzAuNDYgNDkuMDZsNTUuOTcgNjUuMzZjNC44NyA1LjY5IDEzLjA0IDcuMjQgMTkuNjUgMy43Mmw3OS4zNS00Mi4yM0wyMjggMzkyLjIzbC00Ny4wOCAzMi43OGMtMS42Ny0uMzctMy4yMy0xLjAxLTUuMDEtMS4wMS0xMy4yNSAwLTIzLjk5IDEwLjc0LTIzLjk5IDI0IDAgMTMuMjUgMTAuNzQgMjQgMjMuOTkgMjQgMTIuMSAwIDIxLjY5LTkuMTEgMjMuMzMtMjAuNzZsNDAuNjMtMjguMjh2MjkuOTVjLTkuMzkgNS41Ny0xNS45OSAxNS4zOC0xNS45OSAyNy4xIDAgMTcuNjcgMTQuMzIgMzIgMzEuOTggMzJzMzEuOTgtMTQuMzMgMzEuOTgtMzJjMC0xMS43MS02LjYxLTIxLjUyLTE1Ljk5LTI3LjF2LTMwLjE1bDQwLjkxIDI4LjQ4QzMxNC40MSA0NjIuODkgMzI0IDQ3MiAzMzYuMDkgNDcyYzEzLjI1IDAgMjMuOTktMTAuNzUgMjMuOTktMjQgMC0xMy4yNi0xMC43NC0yNC0yMy45OS0yNC0xLjc4IDAtMy4zNC42NC01LjAxIDEuMDFMMjg0IDM5Mi4yM2wyOS4yMS0yMC4zNCA3OS4zNSA0Mi4yM2M2LjYxIDMuNTIgMTQuNzggMS45NyAxOS42NS0zLjcxbDUyLjUxLTYxLjMxYzE4Ljg3LTIyLjAyIDM0LTQ3LjUgNDEuMjUtNzUuNTkgMjEuNjItODMuNjYtMTYuNDUtMTY3LjI3LTkwLjE2LTIwNy41MXptLTk1Ljk5IDExMGMwIDIyLjMtMTEuNDkgNDEuOTItMjguODMgNTMuMzhsLTUuNjUtMTIuNDFjLTguNzUtMjQuNTItOC43NS01MS4wNCAwLTc1LjU2bDcuODMtMTcuMThjMTYuMDcgMTEuNjUgMjYuNjUgMzAuNDUgMjYuNjUgNTEuNzd6bS0xMjcuOTMgMGMwLTIxLjMyIDEwLjU4LTQwLjEyIDI2LjY2LTUxLjc2bDcuODMgMTcuMThjOC43NSAyNC41MiA4Ljc1IDUxLjAzIDAgNzUuNTZsLTUuNjUgMTIuNDFjLTE3LjM0LTExLjQ2LTI4Ljg0LTMxLjA5LTI4Ljg0LTUzLjM5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLaXNzQmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0tMzkgMjE5LjlsLTkuNS0xN2MtNy43LTEzLjctMTkuMi0yMS42LTMxLjUtMjEuNnMtMjMuOCA3LjktMzEuNSAyMS42bC05LjUgMTdjLTQuMiA3LjQtMTUuNiA0LTE0LjktNC41IDMuMy00Mi4xIDMyLjItNzEuNCA1Ni03MS40czUyLjcgMjkuMyA1NiA3MS40Yy41IDguNS0xMC45IDEyLTE1LjEgNC41ek0zMDQgMzk2YzAgMTkuMi0yOC43IDQxLjUtNzEuNSA0NC04LjUuOC0xMi4xLTExLjgtMy42LTE1LjRsMTctNy4yYzEzLTUuNSAyMC44LTEzLjUgMjAuOC0yMS41cy03LjgtMTYtMjAuOC0yMS41bC0xNy03LjJjLTYtMi41LTYuMS0xMi4yIDAtMTQuOGwxNy03LjJjMTMtNS41IDIwLjgtMTMuNSAyMC44LTIxLjVzLTcuOC0xNi0yMC44LTIxLjVsLTE3LTcuMmMtOC42LTMuNi00LjgtMTYuNSAzLjYtMTUuNCA0Mi44IDIuNSA3MS41IDI0LjggNzEuNSA0NCAwIDEzLTEzLjQgMjcuMy0zNS4yIDM2QzI5MC42IDM2OC43IDMwNCAzODMgMzA0IDM5NnptNjUtMTY4LjFsLTkuNS0xN2MtNy43LTEzLjctMTkuMi0yMS42LTMxLjUtMjEuNnMtMjMuOCA3LjktMzEuNSAyMS42bC05LjUgMTdjLTQuMSA3LjMtMTUuNiA0LTE0LjktNC41IDMuMy00Mi4xIDMyLjItNzEuNCA1Ni03MS40czUyLjcgMjkuMyA1NiA3MS40Yy41IDguNS0xMC45IDEyLTE1LjEgNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLaXNzV2lua0hlYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MDQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMS4xIDQwMi41Yy04LTIwLjgtMzEuNS0zMS41LTUzLjEtMjUuOWwtOC40IDIuMi0yLjMtOC40Yy01LjktMjEuNC0yNy0zNi41LTQ5LTMzLTI1LjIgNC00MC42IDI4LjYtMzQgNTIuNmwyMi45IDgyLjZjMS41IDUuMyA3IDguNSAxMi40IDcuMWw4My0yMS41YzI0LjEtNi4zIDM3LjctMzEuOCAyOC41LTU1Ljd6bS0xNzcuNi00Yy01LjYtMjAuMy0yLjMtNDIgOS01OS43IDI5LjctNDYuMyA5OC43LTQ1LjUgMTI3LjggNC4zIDYuNC4xIDEyLjYgMS40IDE4LjYgMi45IDEwLjktMjcuOSAxNy4xLTU4LjIgMTcuMS05MEM0OTYgMTE5IDM4NSA4IDI0OCA4UzAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OGMzNS40IDAgNjguOS03LjUgOTkuNC0yMC45LS4zLS43LTIzLjktODQuNi0yMy45LTg0LjZ6TTE2OCAyNDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0xMjAgMTU2YzAgMTkuMi0yOC43IDQxLjUtNzEuNSA0NC04LjUuOC0xMi4xLTExLjgtMy42LTE1LjRsMTctNy4yYzEzLTUuNSAyMC44LTEzLjUgMjAuOC0yMS41cy03LjgtMTYtMjAuOC0yMS41bC0xNy03LjJjLTYtMi41LTUuNy0xMi4zIDAtMTQuOGwxNy03LjJjMTMtNS41IDIwLjgtMTMuNSAyMC44LTIxLjVzLTcuOC0xNi0yMC44LTIxLjVsLTE3LTcuMmMtOC44LTMuNy00LjYtMTYuNiAzLjYtMTUuNCA0Mi44IDIuNSA3MS41IDI0LjggNzEuNSA0NCAwIDEzLTEzLjQgMjcuMy0zNS4yIDM2QzI3NC42IDM2OC43IDI4OCAzODMgMjg4IDM5NnptMTYtMTc5Yy04LjMgNy40LTIxLjYuNC0xOS44LTEwLjggNC0yNS4yIDM0LjItNDIuMSA1OS45LTQyLjFTNDAwIDE4MSA0MDQgMjA2LjJjMS43IDExLjEtMTEuMyAxOC4zLTE5LjggMTAuOGwtOS41LTguNWMtMTQuOC0xMy4yLTQ2LjItMTMuMi02MSAwTDMwNCAyMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUtpc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptLTgwIDIzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTEzNiAxNTZjMCAxOS4yLTI4LjcgNDEuNS03MS41IDQ0LTguNS44LTEyLjEtMTEuOC0zLjYtMTUuNGwxNy03LjJjMTMtNS41IDIwLjgtMTMuNSAyMC44LTIxLjVzLTcuOC0xNi0yMC44LTIxLjVsLTE3LTcuMmMtNi0yLjUtNi4xLTEyLjIgMC0xNC44bDE3LTcuMmMxMy01LjUgMjAuOC0xMy41IDIwLjgtMjEuNXMtNy44LTE2LTIwLjgtMjEuNWwtMTctNy4yYy04LjYtMy42LTQuOC0xNi41IDMuNi0xNS40IDQyLjggMi41IDcxLjUgMjQuOCA3MS41IDQ0IDAgMTMtMTMuNCAyNy4zLTM1LjIgMzZDMjkwLjYgMzY4LjcgMzA0IDM4MyAzMDQgMzk2em0yNC0xNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLaXdpQmlyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzUuODEgMjE3Ljk4QzU3Mi42NCAxNTcuNDEgNTE4LjI4IDExMiA0NTcuNjMgMTEyaC05LjM3Yy01Mi44MiAwLTEwNC4yNS0xNi4yNS0xNDcuNzQtNDYuMjQtNDEuOTktMjguOTYtOTYuMDQtNDEuNjItMTUzLjIxLTI4LjdDMTI5LjMgNDEuMTItLjA4IDc4LjI0IDAgMjI0Yy4wNCA3MC45NSAzOC42OCAxMzIuOCA5NS45OSAxNjYuMDFWNDY0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2YzguODQgMCAxNi03LjE2IDE2LTE2di01NC4yNmMxNS4zNiAzLjk2IDMxLjQgNi4yNiA0OCA2LjI2IDUuNDQgMCAxMC42OC0uNzMgMTYtMS4xOFY0NjRjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTU5LjQzYzE0LjI0LTUuMDYgMjcuODgtMTEuMzkgNDAuMzQtMTkuNTFDMzQyLjA3IDM1NS4yNSAzOTMuODYgMzM2IDQ0OC40NiAzMzZjMjUuNDggMCAxNi4wMS0uMzEgMjMuMDUtLjc4bDc0LjQxIDEzNi40NGMyLjg2IDUuMjMgOC4zIDguMzQgMTQuMDUgOC4zNCAxLjMxIDAgMi42NC0uMTYgMy45NS0uNSA3LjA5LTEuOCAxMi4wNS04LjE5IDEyLjA1LTE1LjUgMCAwIC4xNC0yNDAuMjQtLjE2LTI0Ni4wMnpNNDYzLjk3IDI0OGMtMTMuMjUgMC0yNC0xMC43NS0yNC0yNCAwLTEzLjI2IDEwLjc1LTI0IDI0LTI0czI0IDEwLjc0IDI0IDI0YzAgMTMuMjUtMTAuNzUgMjQtMjQgMjR6bTgwIDE1My4yNWwtMzkuODYtNzMuMDhjMTUuMTItNS44MyAyOC43My0xNC42IDM5Ljg2LTI1Ljk4djk5LjA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYW5kbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDEuNjIgOTIuMTFMMjY3LjI0IDIuMDRhMzEuOTU4IDMxLjk1OCAwIDAgMC0yMi40NyAwTDEwLjM4IDkyLjExQTE2LjAwMSAxNi4wMDEgMCAwIDAgMCAxMDcuMDlWMTQ0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzYuOTFjMC02LjY3LTQuMTQtMTIuNjQtMTAuMzgtMTQuOTh6TTY0IDE5MnYxNjBINDhjLTguODQgMC0xNiA3LjE2LTE2IDE2djQ4aDQ0OHYtNDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTE2VjE5MmgtNjR2MTYwaC05NlYxOTJoLTY0djE2MGgtOTZWMTkySDY0em00MzIgMjU2SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg0ODBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYW5ndWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTIuMSAyMzYuMmMtMy41LTEyLjEtNy44LTMzLjItNy44LTMzLjJoLS41cy00LjMgMjEuMS03LjggMzMuMmwtMTEuMSAzNy41SDE2M3pNNjE2IDk2SDMzNnYzMjBoMjgwYzEzLjMgMCAyNC0xMC43IDI0LTI0VjEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHptLTI0IDEyMGMwIDYuNi01LjQgMTItMTIgMTJoLTExLjRjLTYuOSAyMy42LTIxLjcgNDcuNC00Mi43IDY5LjkgOC40IDYuNCAxNy4xIDEyLjUgMjYuMSAxOCA1LjUgMy40IDcuMyAxMC41IDQuMSAxNi4ybC03LjkgMTMuOWMtMy40IDUuOS0xMC45IDcuOC0xNi43IDQuMy0xMi42LTcuOC0yNC41LTE2LjEtMzUuNC0yNC45LTEwLjkgOC43LTIyLjcgMTcuMS0zNS40IDI0LjktNS44IDMuNS0xMy4zIDEuNi0xNi43LTQuM2wtNy45LTEzLjljLTMuMi01LjYtMS40LTEyLjggNC4yLTE2LjIgOS4zLTUuNyAxOC0xMS43IDI2LjEtMTgtNy45LTguNC0xNC45LTE3LTIxLTI1LjctNC01LjctMi4yLTEzLjYgMy43LTE3LjFsNi41LTMuOSA3LjMtNC4zYzUuNC0zLjIgMTIuNC0xLjcgMTYgMy40IDUgNyAxMC44IDE0IDE3LjQgMjAuOSAxMy41LTE0LjIgMjMuOC0yOC45IDMwLTQzLjJINDEyYy02LjYgMC0xMi01LjQtMTItMTJ2LTE2YzAtNi42IDUuNC0xMiAxMi0xMmg2NHYtMTZjMC02LjYgNS40LTEyIDEyLTEyaDE2YzYuNiAwIDEyIDUuNCAxMiAxMnYxNmg2NGM2LjYgMCAxMiA1LjQgMTIgMTJ6TTAgMTIwdjI3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGgyODBWOTZIMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0em01OC45IDIxNi4xTDExNi40IDE2N2MxLjctNC45IDYuMi04LjEgMTEuNC04LjFoMzIuNWM1LjEgMCA5LjcgMy4zIDExLjQgOC4xbDU3LjUgMTY5LjFjMi42IDcuOC0zLjEgMTUuOS0xMS40IDE1LjloLTIyLjlhMTIgMTIgMCAwIDEtMTEuNS04LjZsLTkuNC0zMS45aC02MC4ybC05LjEgMzEuOGMtMS41IDUuMS02LjIgOC43LTExLjUgOC43SDcwLjNjLTguMiAwLTE0LTguMS0xMS40LTE1Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhcHRvcENvZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU1LjAzIDI2MS42NWM2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwbDExLjMxLTExLjMxYzYuMjUtNi4yNSA2LjI1LTE2LjM4IDAtMjIuNjNMMjUzLjI1IDE5MmwzNS43MS0zNS43MmM2LjI1LTYuMjUgNi4yNS0xNi4zOCAwLTIyLjYzbC0xMS4zMS0xMS4zMWMtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjMgMGwtNTguMzQgNTguMzRjLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNsNTguMzUgNTguMzR6bTk2LjAxLTExLjNsMTEuMzEgMTEuMzFjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMGw1OC4zNC01OC4zNGM2LjI1LTYuMjUgNi4yNS0xNi4zOCAwLTIyLjYzbC01OC4zNC01OC4zNGMtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjMgMGwtMTEuMzEgMTEuMzFjLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNMMzg2Ljc1IDE5MmwtMzUuNzEgMzUuNzJjLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjN6TTYyNCA0MTZIMzgxLjU0Yy0uNzQgMTkuODEtMTQuNzEgMzItMzIuNzQgMzJIMjg4Yy0xOC42OSAwLTMzLjAyLTE3LjQ3LTMyLjc3LTMySDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MTZjMCAzNS4yIDI4LjggNjQgNjQgNjRoNTEyYzM1LjIgMCA2NC0yOC44IDY0LTY0di0xNmMwLTguOC03LjItMTYtMTYtMTZ6TTU3NiA0OGMwLTI2LjQtMjEuNi00OC00OC00OEgxMTJDODUuNiAwIDY0IDIxLjYgNjQgNDh2MzM2aDUxMlY0OHptLTY0IDI3MkgxMjhWNjRoMzg0djI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGFwdG9wSG91c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyLDI4OEgyMDhhMTYsMTYsMCwwLDEtMTYtMTZWMjA4YTE2LDE2LDAsMCwxLDE2LTE2aDY0YTE2LDE2LDAsMCwxLDE2LDE2djM3LjEyQzI5OS4xMSwyMzIuMjQsMzE1LDIyNCwzMzIuOCwyMjRINDY5Ljc0bDYuNjUtNy41M0ExNi41MSwxNi41MSwwLDAsMCw0ODAsMjA3YTE2LjMxLDE2LjMxLDAsMCwwLTQuNzUtMTAuNjFMNDE2LDE0NFY0OGExNiwxNiwwLDAsMC0xNi0xNkgzNjhhMTYsMTYsMCwwLDAtMTYsMTZWODcuM0wyNjMuNSw4LjkyQzI1OCw0LDI0Ny40NSwwLDI0MC4wNSwwcy0xNy45Myw0LTIzLjQ3LDguOTJMNC43OCwxOTYuNDJBMTYuMTUsMTYuMTUsMCwwLDAsMCwyMDdhMTYuNCwxNi40LDAsMCwwLDMuNTUsOS4zOUwyMi4zNCwyMzcuN0ExNi4yMiwxNi4yMiwwLDAsMCwzMywyNDIuNDgsMTYuNTEsMTYuNTEsMCwwLDAsNDIuMzQsMjM5TDY0LDIxOS44OFYzODRhMzIsMzIsMCwwLDAsMzIsMzJIMjcyWk02MjkuMzMsNDQ4SDU5MlYyODhjMC0xNy42Ny0xMi44OS0zMi0yOC44LTMySDMzMi44Yy0xNS45MSwwLTI4LjgsMTQuMzMtMjguOCwzMlY0NDhIMjY2LjY3QTEwLjY3LDEwLjY3LDAsMCwwLDI1Niw0NTguNjd2MTAuNjZBNDIuODIsNDIuODIsMCwwLDAsMjk4LjYsNTEySDU5Ny40QTQyLjgyLDQyLjgyLDAsMCwwLDY0MCw0NjkuMzNWNDU4LjY3QTEwLjY3LDEwLjY3LDAsMCwwLDYyOS4zMyw0NDhaTTU0NCw0NDhIMzUyVjMwNEg1NDRaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhcHRvcE1lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMyIDIyNGg1NnY1NmE4IDggMCAwIDAgOCA4aDQ4YTggOCAwIDAgMCA4LTh2LTU2aDU2YTggOCAwIDAgMCA4LTh2LTQ4YTggOCAwIDAgMC04LThoLTU2di01NmE4IDggMCAwIDAtOC04aC00OGE4IDggMCAwIDAtOCA4djU2aC01NmE4IDggMCAwIDAtOCA4djQ4YTggOCAwIDAgMCA4IDh6TTU3NiA0OGE0OC4xNCA0OC4xNCAwIDAgMC00OC00OEgxMTJhNDguMTQgNDguMTQgMCAwIDAtNDggNDh2MzM2aDUxMnptLTY0IDI3MkgxMjhWNjRoMzg0em0xMTIgOTZIMzgxLjU0Yy0uNzQgMTkuODEtMTQuNzEgMzItMzIuNzQgMzJIMjg4Yy0xOC42OSAwLTMzLTE3LjQ3LTMyLjc3LTMySDE2YTE2IDE2IDAgMCAwLTE2IDE2djE2YTY0LjE5IDY0LjE5IDAgMCAwIDY0IDY0aDUxMmE2NC4xOSA2NC4xOSAwIDAgMCA2NC02NHYtMTZhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhcHRvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjQgNDE2SDM4MS41NGMtLjc0IDE5LjgxLTE0LjcxIDMyLTMyLjc0IDMySDI4OGMtMTguNjkgMC0zMy4wMi0xNy40Ny0zMi43Ny0zMkgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djE2YzAgMzUuMiAyOC44IDY0IDY0IDY0aDUxMmMzNS4yIDAgNjQtMjguOCA2NC02NHYtMTZjMC04LjgtNy4yLTE2LTE2LTE2ek01NzYgNDhjMC0yNi40LTIxLjYtNDgtNDgtNDhIMTEyQzg1LjYgMCA2NCAyMS42IDY0IDQ4djMzNmg1MTJWNDh6bS02NCAyNzJIMTI4VjY0aDM4NHYyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhdWdoQmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0yNCAxOTkuNGMzLjMtNDIuMSAzMi4yLTcxLjQgNTYtNzEuNHM1Mi43IDI5LjMgNTYgNzEuNGMuNyA4LjYtMTAuOCAxMS45LTE0LjkgNC41bC05LjUtMTdjLTcuNy0xMy43LTE5LjItMjEuNi0zMS41LTIxLjZzLTIzLjggNy45LTMxLjUgMjEuNmwtOS41IDE3Yy00LjIgNy40LTE1LjggNC4xLTE1LjEtNC41em0tMTYwIDBjMy4zLTQyLjEgMzIuMi03MS40IDU2LTcxLjRzNTIuNyAyOS4zIDU2IDcxLjRjLjcgOC42LTEwLjggMTEuOS0xNC45IDQuNWwtOS41LTE3Yy03LjctMTMuNy0xOS4yLTIxLjYtMzEuNS0yMS42cy0yMy44IDcuOS0zMS41IDIxLjZsLTkuNSAxN2MtNC4zIDcuNC0xNS44IDQtMTUuMS00LjV6TTM5OC45IDMwNkMzOTAgMzc3IDMyOS40IDQzMiAyNTYgNDMyaC0xNmMtNzMuNCAwLTEzNC01NS0xNDIuOS0xMjYtMS4yLTkuNSA2LjMtMTggMTUuOS0xOGgyNzBjOS42IDAgMTcuMSA4LjQgMTUuOSAxOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGF1Z2hTcXVpbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMzMuOCAxNjEuN2w4MC00OGMxMS42LTYuOSAyNCA3LjcgMTUuNCAxOEwzNDMuNiAxODBsMzMuNiA0MC4zYzguNyAxMC40LTMuOSAyNC44LTE1LjQgMThsLTgwLTQ4Yy03LjctNC43LTcuNy0xNS45IDAtMjAuNnptLTE2My0zMGMtOC42LTEwLjMgMy44LTI0LjkgMTUuNC0xOGw4MCA0OGM3LjggNC43IDcuOCAxNS45IDAgMjAuNmwtODAgNDhjLTExLjUgNi44LTI0LTcuNi0xNS40LTE4bDMzLjYtNDAuMy0zMy42LTQwLjN6TTM5OC45IDMwNkMzOTAgMzc3IDMyOS40IDQzMiAyNTYgNDMyaC0xNmMtNzMuNCAwLTEzNC01NS0xNDIuOS0xMjYtMS4yLTkuNSA2LjMtMTggMTUuOS0xOGgyNzBjOS42IDAgMTcuMSA4LjQgMTUuOSAxOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGF1Z2hXaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTIwLjEgMTk4LjFjNC0yNS4yIDM0LjItNDIuMSA1OS45LTQyLjFzNTUuOSAxNi45IDU5LjkgNDIuMWMxLjcgMTEuMS0xMS40IDE4LjMtMTkuOCAxMC44bC05LjUtOC41Yy0xNC44LTEzLjItNDYuMi0xMy4yLTYxIDBMMjg4IDIxN2MtOC40IDcuNC0yMS42LjMtMTkuOS0xMC45ek0xNjggMTYwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzIgMTQuMy0zMiAzMi0zMnptMjMwLjkgMTQ2QzM5MCAzNzcgMzI5LjQgNDMyIDI1NiA0MzJoLTE2Yy03My40IDAtMTM0LTU1LTE0Mi45LTEyNi0xLjItOS41IDYuMy0xOCAxNS45LTE4aDI3MGM5LjYgMCAxNy4xIDguNCAxNS45IDE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYXVnaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em04MCAxNTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem0tMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem04OCAyNzJoLTE2Yy03My40IDAtMTM0LTU1LTE0Mi45LTEyNi0xLjItOS41IDYuMy0xOCAxNS45LTE4aDI3MGM5LjYgMCAxNy4xIDguNCAxNS45IDE4LTguOSA3MS02OS41IDEyNi0xNDIuOSAxMjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxheWVyR3JvdXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNDEgMTQ4LjAybDIzMi45NCAxMDUuNjdjNi44IDMuMDkgMTQuNDkgMy4wOSAyMS4yOSAwbDIzMi45NC0xMDUuNjdjMTYuNTUtNy41MSAxNi41NS0zMi41MiAwLTQwLjAzTDI2Ni42NSAyLjMxYTI1LjYwNyAyNS42MDcgMCAwIDAtMjEuMjkgMEwxMi40MSAxMDcuOThjLTE2LjU1IDcuNTEtMTYuNTUgMzIuNTMgMCA0MC4wNHptNDg3LjE4IDg4LjI4bC01OC4wOS0yNi4zMy0xNjEuNjQgNzMuMjdjLTcuNTYgMy40My0xNS41OSA1LjE3LTIzLjg2IDUuMTdzLTE2LjI5LTEuNzQtMjMuODYtNS4xN0w3MC41MSAyMDkuOTdsLTU4LjEgMjYuMzNjLTE2LjU1IDcuNS0xNi41NSAzMi41IDAgNDBsMjMyLjk0IDEwNS41OWM2LjggMy4wOCAxNC40OSAzLjA4IDIxLjI5IDBMNDk5LjU5IDI3Ni4zYzE2LjU1LTcuNSAxNi41NS0zMi41IDAtNDB6bTAgMTI3LjhsLTU3Ljg3LTI2LjIzLTE2MS44NiA3My4zN2MtNy41NiAzLjQzLTE1LjU5IDUuMTctMjMuODYgNS4xN3MtMTYuMjktMS43NC0yMy44Ni01LjE3TDcwLjI5IDMzNy44NyAxMi40MSAzNjQuMWMtMTYuNTUgNy41LTE2LjU1IDMyLjUgMCA0MGwyMzIuOTQgMTA1LjU5YzYuOCAzLjA4IDE0LjQ5IDMuMDggMjEuMjkgMEw0OTkuNTkgNDA0LjFjMTYuNTUtNy41IDE2LjU1LTMyLjUgMC00MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGVhZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDYuMiA5LjdjLTUuNi0xMi41LTIxLjYtMTMtMjguMy0xLjJDNDg2LjkgNjIuNCA0MzEuNCA5NiAzNjggOTZoLTgwQzE4MiA5NiA5NiAxODIgOTYgMjg4YzAgNyAuOCAxMy43IDEuNSAyMC41QzE2MS4zIDI2Mi44IDI1My40IDIyNCAzODQgMjI0YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2QzEzMi42IDI1NiAyNiA0MTAuMSAyLjQgNDY4Yy02LjYgMTYuMyAxLjIgMzQuOSAxNy41IDQxLjYgMTYuNCA2LjggMzUtMS4xIDQxLjgtMTcuMyAxLjUtMy42IDIwLjktNDcuOSA3MS45LTkwLjYgMzIuNCA0My45IDk0IDg1LjggMTc0LjkgNzcuMkM0NjUuNSA0NjcuNSA1NzYgMzI2LjcgNTc2IDE1NC4zYzAtNTAuMi0xMC44LTEwMi4yLTI5LjgtMTQ0LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxlbW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4OS4wMzggMjIuOTYzQzQ2NS45NDQtLjEzIDQzNC42NDgtNS45MyA0MTMuOTQ3IDYuMTI5Yy01OC45MDYgMzQuMzEyLTE4MS4yNS01My4wNzctMzIxLjA3MyA4Ni43NDZTNDAuNDQxIDM1NS4wNDEgNi4xMjkgNDEzLjk0NWMtMTIuMDU5IDIwLjcwMi02LjI2IDUxLjk5OSAxNi44MzMgNzUuMDkzIDIzLjA5NSAyMy4wOTUgNTQuMzkyIDI4Ljg5MSA3NS4wOTUgMTYuODMyIDU4LjkwMS0zNC4zMSAxODEuMjQ2IDUzLjA3OSAzMjEuMDY4LTg2Ljc0M1M0NzEuNTYgMTU2Ljk2IDUwNS44NzEgOTguMDU2YzEyLjA1OS0yMC43MDIgNi4yNjEtNTEuOTk5LTE2LjgzMy03NS4wOTN6TTI0My44ODEgOTUuNTIyYy01OC4xODkgMTQuNTQ3LTEzMy44MDggOTAuMTU1LTE0OC4zNTggMTQ4LjM1OC0xLjgxNyA3LjI3LTguMzQyIDEyLjEyNC0xNS41MTEgMTIuMTI0LTEuMjg0IDAtMi41OS0uMTU2LTMuODkzLS40ODEtOC41NzItMi4xNDQtMTMuNzg0LTEwLjgzLTExLjY0Mi0xOS40MDNDODEuOTAxIDE2Ni40MjcgMTY2LjMxNiA4MS45MyAyMzYuMTE5IDY0LjQ3OGM4LjU3NS0yLjE0MyAxNy4yNjEgMy4wNjkgMTkuNDAzIDExLjY0MnMtMy4wNjkgMTcuMjU5LTExLjY0MSAxOS40MDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxlc3NUaGFuRXF1YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQuOTggMjE0LjJsMzAxLjQxIDExOS44N2MxOC4zOSA2LjAzIDM4LjcxLTIuNTQgNDUuMzgtMTkuMTVsMTIuMDktMzAuMDhjNi42OC0xNi42MS0yLjgyLTM0Ljk3LTIxLjIxLTQxbC0xNzUuNDQtNjguMDUgMTc1LjU2LTY4LjA5YzE4LjI5LTYgMjcuNzQtMjQuMjcgMjEuMS00MC43OWwtMTIuMDMtMjkuOTJjLTYuNjQtMTYuNTMtMjYuODYtMjUuMDYtNDUuMTUtMTkuMDZMNTQuOTggMTM3Ljg5QzQxLjIxIDE0Mi40MSAzMiAxNTQuNSAzMiAxNjguMDd2MTUuOTZjMCAxMy41NiA5LjIxIDI1LjY1IDIyLjk4IDMwLjE3ek00MjQgNDAwSDI0Yy0xMy4yNSAwLTI0IDEwLjc0LTI0IDI0djQ4YzAgMTMuMjUgMTAuNzUgMjQgMjQgMjRoNDAwYzEzLjI1IDAgMjQtMTAuNzUgMjQtMjR2LTQ4YzAtMTMuMjYtMTAuNzUtMjQtMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxlc3NUaGFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2NS40NiAzNTcuNzRMMTQ3LjA0IDI1NS44OWwyMTguNDctMTAxLjg4YzE2LjAyLTcuNDcgMjIuOTUtMjYuNTEgMTUuNDgtNDIuNTNsLTEzLjUyLTI5QzM2MCA2Ni40NiAzNDAuOTYgNTkuNTMgMzI0Ljk0IDY3TDE4LjQ4IDIwOS45MWEzMi4wMTQgMzIuMDE0IDAgMCAwLTE4LjQ4IDI5djM0LjI0YzAgMTIuNDQgNy4yMSAyMy43NSAxOC40OCAyOWwzMDYuMzEgMTQyLjgzYzE2LjA2IDcuNDkgMzUuMTUuNTQgNDIuNjQtMTUuNTJsMTMuNTYtMjkuMDhjNy40OS0xNi4wNi41NC0zNS4xNS0xNS41My00Mi42NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGV2ZWxEb3duQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMy41NTMgMzkyLjMzMUwyMDkuNTg3IDUwNC4zMzRjLTkuNDg1IDEwLjIxNC0yNS42NzYgMTAuMjI5LTM1LjE3NCAwTDcwLjQzOCAzOTIuMzMxQzU2LjIzMiAzNzcuMDMxIDY3LjA2MiAzNTIgODguMDI1IDM1MkgxNTJWODBINjguMDI0YTExLjk5NiAxMS45OTYgMCAwIDEtOC40ODUtMy41MTVsLTU2LTU2Qy00LjAyMSAxMi45MjYgMS4zMzMgMCAxMi4wMjQgMEgyMDhjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0djMyOGg2My45NjZjMjAuODc4IDAgMzEuODUxIDI0Ljk2OSAxNy41ODcgNDAuMzMxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMZXZlbFVwQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMy41NTMgMTE5LjY2OUwyMDkuNTg3IDcuNjY2Yy05LjQ4NS0xMC4yMTQtMjUuNjc2LTEwLjIyOS0zNS4xNzQgMEw3MC40MzggMTE5LjY2OUM1Ni4yMzIgMTM0Ljk2OSA2Ny4wNjIgMTYwIDg4LjAyNSAxNjBIMTUydjI3Mkg2OC4wMjRhMTEuOTk2IDExLjk5NiAwIDAgMC04LjQ4NSAzLjUxNWwtNTYgNTZDLTQuMDIxIDQ5OS4wNzQgMS4zMzMgNTEyIDEyLjAyNCA1MTJIMjA4YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYxNjBoNjMuOTY2YzIwLjg3OCAwIDMxLjg1MS0yNC45NjkgMTcuNTg3LTQwLjMzMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlmZVJpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5LjAzMyA4IDggMTE5LjAzMyA4IDI1NnMxMTEuMDMzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMzIDI0OC0yNDhTMzkyLjk2NyA4IDI1NiA4em0xNzMuNjk2IDExOS41NTlsLTYzLjM5OSA2My4zOTljLTEwLjk4Ny0xOC41NTktMjYuNjctMzQuMjUyLTQ1LjI1NS00NS4yNTVsNjMuMzk5LTYzLjM5OWEyMTguMzk2IDIxOC4zOTYgMCAwIDEgNDUuMjU1IDQ1LjI1NXpNMjU2IDM1MmMtNTMuMDE5IDAtOTYtNDIuOTgxLTk2LTk2czQyLjk4MS05NiA5Ni05NiA5NiA0Mi45ODEgOTYgOTYtNDIuOTgxIDk2LTk2IDk2ek0xMjcuNTU5IDgyLjMwNGw2My4zOTkgNjMuMzk5Yy0xOC41NTkgMTAuOTg3LTM0LjI1MiAyNi42Ny00NS4yNTUgNDUuMjU1bC02My4zOTktNjMuMzk5YTIxOC4zNzIgMjE4LjM3MiAwIDAgMSA0NS4yNTUtNDUuMjU1ek04Mi4zMDQgMzg0LjQ0MWw2My4zOTktNjMuMzk5YzEwLjk4NyAxOC41NTkgMjYuNjcgMzQuMjUyIDQ1LjI1NSA0NS4yNTVsLTYzLjM5OSA2My4zOTlhMjE4LjM5NiAyMTguMzk2IDAgMCAxLTQ1LjI1NS00NS4yNTV6bTMwMi4xMzcgNDUuMjU1bC02My4zOTktNjMuMzk5YzE4LjU1OS0xMC45ODcgMzQuMjUyLTI2LjY3IDQ1LjI1NS00NS4yNTVsNjMuMzk5IDYzLjM5OWEyMTguNDAzIDIxOC40MDMgMCAwIDEtNDUuMjU1IDQ1LjI1NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlnaHRidWxiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzNTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2LjA2IDQ1NC4zNWMuMDEgNi4yOSAxLjg3IDEyLjQ1IDUuMzYgMTcuNjlsMTcuMDkgMjUuNjlhMzEuOTkgMzEuOTkgMCAwIDAgMjYuNjQgMTQuMjhoNjEuNzFhMzEuOTkgMzEuOTkgMCAwIDAgMjYuNjQtMTQuMjhsMTcuMDktMjUuNjlhMzEuOTg5IDMxLjk4OSAwIDAgMCA1LjM2LTE3LjY5bC4wNC0zOC4zNUg5Ni4wMWwuMDUgMzguMzV6TTAgMTc2YzAgNDQuMzcgMTYuNDUgODQuODUgNDMuNTYgMTE1Ljc4IDE2LjUyIDE4Ljg1IDQyLjM2IDU4LjIzIDUyLjIxIDkxLjQ1LjA0LjI2LjA3LjUyLjExLjc4aDE2MC4yNGMuMDQtLjI2LjA3LS41MS4xMS0uNzggOS44NS0zMy4yMiAzNS42OS03Mi42IDUyLjIxLTkxLjQ1QzMzNS41NSAyNjAuODUgMzUyIDIyMC4zNyAzNTIgMTc2IDM1MiA3OC42MSAyNzIuOTEtLjMgMTc1LjQ1IDAgNzMuNDQuMzEgMCA4Mi45NyAwIDE3NnptMTc2LTgwYy00NC4xMSAwLTgwIDM1Ljg5LTgwIDgwIDAgOC44NC03LjE2IDE2LTE2IDE2cy0xNi03LjE2LTE2LTE2YzAtNjEuNzYgNTAuMjQtMTEyIDExMi0xMTIgOC44NCAwIDE2IDcuMTYgMTYgMTZzLTcuMTYgMTYtMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzI2LjYxMiAxODUuMzkxYzU5Ljc0NyA1OS44MDkgNTguOTI3IDE1NS42OTguMzYgMjE0LjU5LS4xMS4xMi0uMjQuMjUtLjM2LjM3bC02Ny4yIDY3LjJjLTU5LjI3IDU5LjI3LTE1NS42OTkgNTkuMjYyLTIxNC45NiAwLTU5LjI3LTU5LjI2LTU5LjI3LTE1NS43IDAtMjE0Ljk2bDM3LjEwNi0zNy4xMDZjOS44NC05Ljg0IDI2Ljc4Ni0zLjMgMjcuMjk0IDEwLjYwNi42NDggMTcuNzIyIDMuODI2IDM1LjUyNyA5LjY5IDUyLjcyMSAxLjk4NiA1LjgyMi41NjcgMTIuMjYyLTMuNzgzIDE2LjYxMmwtMTMuMDg3IDEzLjA4N2MtMjguMDI2IDI4LjAyNi0yOC45MDUgNzMuNjYtMS4xNTUgMTAxLjk2IDI4LjAyNCAyOC41NzkgNzQuMDg2IDI4Ljc0OSAxMDIuMzI1LjUxbDY3LjItNjcuMTljMjguMTkxLTI4LjE5MSAyOC4wNzMtNzMuNzU3IDAtMTAxLjgzLTMuNzAxLTMuNjk0LTcuNDI5LTYuNTY0LTEwLjM0MS04LjU2OWExNi4wMzcgMTYuMDM3IDAgMCAxLTYuOTQ3LTEyLjYwNmMtLjM5Ni0xMC41NjcgMy4zNDgtMjEuNDU2IDExLjY5OC0yOS44MDZsMjEuMDU0LTIxLjA1NWM1LjUyMS01LjUyMSAxNC4xODItNi4xOTkgMjAuNTg0LTEuNzMxYTE1Mi40ODIgMTUyLjQ4MiAwIDAgMSAyMC41MjIgMTcuMTk3ek00NjcuNTQ3IDQ0LjQ0OWMtNTkuMjYxLTU5LjI2Mi0xNTUuNjktNTkuMjctMjE0Ljk2IDBsLTY3LjIgNjcuMmMtLjEyLjEyLS4yNS4yNS0uMzYuMzctNTguNTY2IDU4Ljg5Mi01OS4zODcgMTU0Ljc4MS4zNiAyMTQuNTlhMTUyLjQ1NCAxNTIuNDU0IDAgMCAwIDIwLjUyMSAxNy4xOTZjNi40MDIgNC40NjggMTUuMDY0IDMuNzg5IDIwLjU4NC0xLjczMWwyMS4wNTQtMjEuMDU1YzguMzUtOC4zNSAxMi4wOTQtMTkuMjM5IDExLjY5OC0yOS44MDZhMTYuMDM3IDE2LjAzNyAwIDAgMC02Ljk0Ny0xMi42MDZjLTIuOTEyLTIuMDA1LTYuNjQtNC44NzUtMTAuMzQxLTguNTY5LTI4LjA3My0yOC4wNzMtMjguMTkxLTczLjYzOSAwLTEwMS44M2w2Ny4yLTY3LjE5YzI4LjIzOS0yOC4yMzkgNzQuMy0yOC4wNjkgMTAyLjMyNS41MSAyNy43NSAyOC4zIDI2Ljg3MiA3My45MzQtMS4xNTUgMTAxLjk2bC0xMy4wODcgMTMuMDg3Yy00LjM1IDQuMzUtNS43NjkgMTAuNzktMy43ODMgMTYuNjEyIDUuODY0IDE3LjE5NCA5LjA0MiAzNC45OTkgOS42OSA1Mi43MjEuNTA5IDEzLjkwNiAxNy40NTQgMjAuNDQ2IDI3LjI5NCAxMC42MDZsMzcuMTA2LTM3LjEwNmM1OS4yNzEtNTkuMjU5IDU5LjI3MS0xNTUuNjk5LjAwMS0yMTQuOTU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaXJhU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzEuOTk0IDI1NmgtNDguMDE5QzMxNy42NCAyNTYgMzEyIDI2MC45MTIgMzEyIDI2Ny4yNDYgMzEyIDM2OCAyMzAuMTc5IDQxNiAxNDQgNDE2VjI1Ni43ODFsMTM0LjYwMy0yOS45MTJBMTIgMTIgMCAwIDAgMjg4IDIxNS4xNTV2LTQwLjk3NmMwLTcuNjc3LTcuMTA5LTEzLjM4LTE0LjYwMy0xMS43MTRMMTQ0IDE5MS4yMTlWMTYwLjc4bDEzNC42MDMtMjkuOTEyQTEyIDEyIDAgMCAwIDI4OCAxMTkuMTU0Vjc4LjE3OWMwLTcuNjc3LTcuMTA5LTEzLjM4LTE0LjYwMy0xMS43MTRMMTQ0IDk1LjIxOVY0NGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDc2Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjY4Ljk5N0w5LjM5NyAxMjUuMTMxQTEyIDEyIDAgMCAwIDAgMTM2Ljg0NXY0MC45NzZjMCA3LjY3NyA3LjEwOSAxMy4zOCAxNC42MDMgMTEuNzE0TDY0IDE3OC41NTh2MzAuNDM5TDkuMzk3IDIyMS4xMzFBMTIgMTIgMCAwIDAgMCAyMzIuODQ1djQwLjk3NmMwIDcuNjc3IDcuMTA5IDEzLjM4IDE0LjYwMyAxMS43MTRMNjQgMjc0LjU1OFY0NjhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg3OS41ODNjMTM0LjA5MSAwIDIyMy4yNTUtNzcuODM0IDIyOC40MDgtMjExLjU5Mi4yNjEtNi43ODItNS4yMTEtMTIuNDA4LTExLjk5Ny0xMi40MDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpc3RBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDQ4MEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFY4MGMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDQxNmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4djM1MmMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4ek0xMjggMTIwYy0yMi4wOTEgMC00MCAxNy45MDktNDAgNDBzMTcuOTA5IDQwIDQwIDQwIDQwLTE3LjkwOSA0MC00MC0xNy45MDktNDAtNDAtNDB6bTAgOTZjLTIyLjA5MSAwLTQwIDE3LjkwOS00MCA0MHMxNy45MDkgNDAgNDAgNDAgNDAtMTcuOTA5IDQwLTQwLTE3LjkwOS00MC00MC00MHptMCA5NmMtMjIuMDkxIDAtNDAgMTcuOTA5LTQwIDQwczE3LjkwOSA0MCA0MCA0MCA0MC0xNy45MDkgNDAtNDAtMTcuOTA5LTQwLTQwLTQwem0yODgtMTM2di0zMmMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDIwNGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYzMmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDIwMGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem0wIDk2di0zMmMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDIwNGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYzMmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDIwMGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem0wIDk2di0zMmMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDIwNGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYzMmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDIwMGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaXN0T2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjEuNzcgNDAxbDE3LjUtMjAuMTVhMTkuOTIgMTkuOTIgMCAwIDAgNS4wNy0xNC4xOXYtMy4zMUM4NC4zNCAzNTYgODAuNSAzNTIgNzMgMzUySDE2YTggOCAwIDAgMC04IDh2MTZhOCA4IDAgMCAwIDggOGgyMi44M2ExNTcuNDEgMTU3LjQxIDAgMCAwLTExIDEyLjMxbC01LjYxIDdjLTQgNS4wNy01LjI1IDEwLjEzLTIuOCAxNC44OGwxLjA1IDEuOTNjMyA1Ljc2IDYuMjkgNy44OCAxMi4yNSA3Ljg4aDQuNzNjMTAuMzMgMCAxNS45NCAyLjQ0IDE1Ljk0IDkuMDkgMCA0LjcyLTQuMiA4LjIyLTE0LjM2IDguMjJhNDEuNTQgNDEuNTQgMCAwIDEtMTUuNDctMy4xMmMtNi40OS0zLjg4LTExLjc0LTMuNS0xNS42IDMuMTJsLTUuNTkgOS4zMWMtMy43MiA2LjEzLTMuMTkgMTEuNzIgMi42MyAxNS45NCA3LjcxIDQuNjkgMjAuMzggOS40NCAzNyA5LjQ0IDM0LjE2IDAgNDguNS0yMi43NSA0OC41LTQ0LjEyLS4wMy0xNC4zOC05LjEyLTI5Ljc2LTI4LjczLTM0Ljg4ek00OTYgMjI0SDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTE2MEgxNzZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzIwYTE2IDE2IDAgMCAwIDE2LTE2VjgwYTE2IDE2IDAgMCAwLTE2LTE2em0wIDMyMEgxNzZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzIwYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpNMTYgMTYwaDY0YTggOCAwIDAgMCA4LTh2LTE2YTggOCAwIDAgMC04LThINjRWNDBhOCA4IDAgMCAwLTgtOEgzMmE4IDggMCAwIDAtNy4xNCA0LjQybC04IDE2QTggOCAwIDAgMCAyNCA2NGg4djY0SDE2YTggOCAwIDAgMC04IDh2MTZhOCA4IDAgMCAwIDggOHptLTMuOTEgMTYwSDgwYTggOCAwIDAgMCA4LTh2LTE2YTggOCAwIDAgMC04LThINDEuMzJjMy4yOS0xMC4yOSA0OC4zNC0xOC42OCA0OC4zNC01Ni40NCAwLTI5LjA2LTI1LTM5LjU2LTQ0LjQ3LTM5LjU2LTIxLjM2IDAtMzMuOCAxMC00MC40NiAxOC43NS00LjM3IDUuNTktMyAxMC44NCAyLjggMTUuMzdsOC41OCA2Ljg4YzUuNjEgNC41NiAxMSAyLjQ3IDE2LjEyLTIuNDRhMTMuNDQgMTMuNDQgMCAwIDEgOS40Ni0zLjg0YzMuMzMgMCA5LjI4IDEuNTYgOS4yOCA4Ljc1QzUxIDI0OC4xOSAwIDI1Ny4zMSAwIDMwNC41OXY0QzAgMzE2IDUuMDggMzIwIDEyLjA5IDMyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlzdFVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDQ4YTQ4IDQ4IDAgMSAwIDQ4IDQ4IDQ4IDQ4IDAgMCAwLTQ4LTQ4em0wIDE2MGE0OCA0OCAwIDEgMCA0OCA0OCA0OCA0OCAwIDAgMC00OC00OHptMCAxNjBhNDggNDggMCAxIDAgNDggNDggNDggNDggMCAwIDAtNDgtNDh6bTQ0OCAxNkgxNzZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzIwYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC0zMjBIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNlY4MGExNiAxNiAwIDAgMC0xNi0xNnptMCAxNjBIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODAgMzY4SDE2YTE2IDE2IDAgMCAwLTE2IDE2djY0YTE2IDE2IDAgMCAwIDE2IDE2aDY0YTE2IDE2IDAgMCAwIDE2LTE2di02NGExNiAxNiAwIDAgMC0xNi0xNnptMC0zMjBIMTZBMTYgMTYgMCAwIDAgMCA2NHY2NGExNiAxNiAwIDAgMCAxNiAxNmg2NGExNiAxNiAwIDAgMCAxNi0xNlY2NGExNiAxNiAwIDAgMC0xNi0xNnptMCAxNjBIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2NjRhMTYgMTYgMCAwIDAgMTYgMTZoNjRhMTYgMTYgMCAwIDAgMTYtMTZ2LTY0YTE2IDE2IDAgMCAwLTE2LTE2em00MTYgMTc2SDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTMyMEgxNzZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzIwYTE2IDE2IDAgMCAwIDE2LTE2VjgwYTE2IDE2IDAgMCAwLTE2LTE2em0wIDE2MEgxNzZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzIwYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTG9jYXRpb25BcnJvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDQuNTIgMy41MkwyOC43NCAxOTUuNDJjLTQ3Ljk3IDIyLjM5LTMxLjk4IDkyLjc1IDE5LjE5IDkyLjc1aDE3NS45MXYxNzUuOTFjMCA1MS4xNyA3MC4zNiA2Ny4xNyA5Mi43NSAxOS4xOWwxOTEuOS00MTUuNzhjMTUuOTktMzguMzktMjUuNTktNzkuOTctNjMuOTctNjMuOTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxvY2tPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyMy41IDBDMzM5LjUuMyAyNzIgNjkuNSAyNzIgMTUzLjVWMjI0SDQ4Yy0yNi41IDAtNDggMjEuNS00OCA0OHYxOTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjI3MmMwLTI2LjUtMjEuNS00OC00OC00OGgtNDh2LTcxLjFjMC0zOS42IDMxLjctNzIuNSA3MS4zLTcyLjkgNDAtLjQgNzIuNyAzMi4xIDcyLjcgNzJ2ODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzJjMTMuMyAwIDI0LTEwLjcgMjQtMjR2LTgwQzU3NiA2OCA1MDcuNS0uMyA0MjMuNSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAyMjRoLTI0di03MkMzNzYgNjguMiAzMDcuOCAwIDIyNCAwUzcyIDY4LjIgNzIgMTUydjcySDQ4Yy0yNi41IDAtNDggMjEuNS00OCA0OHYxOTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjI3MmMwLTI2LjUtMjEuNS00OC00OC00OHptLTEwNCAwSDE1MnYtNzJjMC0zOS43IDMyLjMtNzIgNzItNzJzNzIgMzIuMyA3MiA3MnY3MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTG9uZ0Fycm93QWx0RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjggMzQ1Ljk0MVY0NGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC01NmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYzMDEuOTQxSDQxLjk0MWMtMjEuMzgyIDAtMzIuMDkgMjUuODUxLTE2Ljk3MSA0MC45NzFsODYuMDU5IDg2LjA1OWM5LjM3MyA5LjM3MyAyNC41NjkgOS4zNzMgMzMuOTQxIDBsODYuMDU5LTg2LjA1OWMxNS4xMTktMTUuMTE5IDQuNDExLTQwLjk3MS0xNi45NzEtNDAuOTcxSDE2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTG9uZ0Fycm93QWx0TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMzQuMDU5IDI5Nkg0MzZjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNTZjMC02LjYyNy01LjM3My0xMi0xMi0xMkgxMzQuMDU5di00Ni4wNTljMC0yMS4zODItMjUuODUxLTMyLjA5LTQwLjk3MS0xNi45NzFMNy4wMjkgMjM5LjAyOWMtOS4zNzMgOS4zNzMtOS4zNzMgMjQuNTY5IDAgMzMuOTQxbDg2LjA1OSA4Ni4wNTljMTUuMTE5IDE1LjExOSA0MC45NzEgNC40MTEgNDAuOTcxLTE2Ljk3MVYyOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxvbmdBcnJvd0FsdFJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMy45NDEgMjE2SDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjU2YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMzAxLjk0MXY0Ni4wNTljMCAyMS4zODIgMjUuODUxIDMyLjA5IDQwLjk3MSAxNi45NzFsODYuMDU5LTg2LjA1OWM5LjM3My05LjM3MyA5LjM3My0yNC41NjkgMC0zMy45NDFsLTg2LjA1OS04Ni4wNTljLTE1LjExOS0xNS4xMTktNDAuOTcxLTQuNDExLTQwLjk3MSAxNi45NzFWMjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMb25nQXJyb3dBbHRVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04OCAxNjYuMDU5VjQ2OGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDU2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJWMTY2LjA1OWg0Ni4wNTljMjEuMzgyIDAgMzIuMDktMjUuODUxIDE2Ljk3MS00MC45NzFsLTg2LjA1OS04Ni4wNTljLTkuMzczLTkuMzczLTI0LjU2OS05LjM3My0zMy45NDEgMGwtODYuMDU5IDg2LjA1OWMtMTUuMTE5IDE1LjExOS00LjQxMSA0MC45NzEgMTYuOTcxIDQwLjk3MUg4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTG93VmlzaW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2OS4zNDQgMjMxLjYzMUM1MTIuOTYgMTM1Ljk0OSA0MDcuODEgNzIgMjg4IDcyYy0yOC40NjggMC01Ni4xMDIgMy42MTktODIuNDUxIDEwLjQwOUwxNTIuNzc4IDEwLjI0Yy03LjYwMS0xMC44NTgtMjIuNTY0LTEzLjUtMzMuNDIzLTUuOWwtMTMuMTE0IDkuMTc4Yy0xMC44NiA3LjYwMS0xMy41MDIgMjIuNTY2LTUuOSAzMy40MjZsNDMuMTMxIDU4LjM5NUM4OS40NDkgMTMxLjczIDQwLjIyOCAxNzQuNjgzIDYuNjgyIDIzMS41ODFjLS4wMS4wMTctLjAyMy4wMzMtLjAzNC4wNS04Ljc2NSAxNC44NzUtOC45NjQgMzMuNTI4IDAgNDguNzM5IDM4LjUgNjUuMzMyIDk5Ljc0MiAxMTUuODYyIDE3Mi44NTkgMTQxLjM0OUw1NS4zMTYgMjQ0LjMwMkEyNzIuMTk0IDI3Mi4xOTQgMCAwIDEgODMuNjEgMjA4LjM5bDExOS40IDE3MC41OGguMDFsNDAuNjMgNTguMDRhMzMwLjA1NSAzMzAuMDU1IDAgMCAwIDc4Ljk0IDEuMTdsLTE4OS45OC0yNzEuNGEyNzcuNjI4IDI3Ny42MjggMCAwIDEgMzguNzc3LTIxLjU2M2wyNTEuODM2IDM1Ni41NDRjNy42MDEgMTAuODU4IDIyLjU2NCAxMy40OTkgMzMuNDIzIDUuOWwxMy4xMTQtOS4xNzhjMTAuODYtNy42MDEgMTMuNTAyLTIyLjU2NyA1LjktMzMuNDI2bC00My4xMi01OC4zNzctLjAwNy0uMDA5YzU3LjE2MS0yNy45NzggMTA0LjgzNS03Mi4wNCAxMzYuODEtMTI2LjMwMWE0Ny45MzggNDcuOTM4IDAgMCAwIC4wMDEtNDguNzM5ek0zOTAuMDI2IDM0NS45NGwtMTkuMDY2LTI3LjIzYzI0LjY4Mi0zMi41NjcgMjcuNzExLTc2LjM1MyA4LjgtMTExLjY4di4wM2MwIDIzLjY1LTE5LjE3IDQyLjgyLTQyLjgyIDQyLjgyLTIzLjgyOCAwLTQyLjgyLTE5LjM0OS00Mi44Mi00Mi44MiAwLTIzLjY1IDE5LjE3LTQyLjgyIDQyLjgyLTQyLjgyaC4wM2MtMjQuNzUtMTMuMjQ5LTUzLjUyMi0xNS42NDMtNzkuNTEtNy42OGwtMTkuMDY4LTI3LjIzN0MyNTMuNzU4IDEyMy4zMDYgMjcwLjQ4OCAxMjAgMjg4IDEyMGM3NS4xNjIgMCAxMzYgNjAuODI2IDEzNiAxMzYgMCAzNC41MDQtMTIuODMzIDY1Ljk3NS0zMy45NzQgODkuOTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUx1Z2dhZ2VDYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAzMjBoMzJWOTZoLTMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjE2MGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyem0zNTItMzJWMTI4YzAtMTcuNjctMTQuMzMtMzItMzItMzJoLTMydjIyNGgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyem00OCA5NkgxMjhWMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZDNy4xNiAwIDAgNy4xNiAwIDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4djM2OGMwIDguODQgNy4xNiAxNiAxNiAxNmg4Mi45NGMtMS43OSA1LjAzLTIuOTQgMTAuMzYtMi45NCAxNiAwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4czQ4LTIxLjQ5IDQ4LTQ4YzAtNS42NC0xLjE1LTEwLjk3LTIuOTQtMTZoMTk3Ljg4Yy0xLjc5IDUuMDMtMi45NCAxMC4zNi0yLjk0IDE2IDAgMjYuNTEgMjEuNDkgNDggNDggNDhzNDgtMjEuNDkgNDgtNDhjMC01LjY0LTEuMTUtMTAuOTctMi45NC0xNkg2MjRjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2ek00ODAgOTZWNDhjMC0yNi41MS0yMS40OS00OC00OC00OGgtOTZjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2MjcyaDE5MlY5NnptLTQ4IDBoLTk2VjQ4aDk2djQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMdW5nc1ZpcnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0NCwxNTAuNjhWMTZBMTYsMTYsMCwwLDAsMzI4LDBIMzEyYTE2LDE2LDAsMCwwLTE2LDE2VjE1MC42OGE0Ni40NSw0Ni40NSwwLDAsMSw0OCwwWk0xOTUuNTQsNDQ0LjQ2YTQ4LjA2LDQ4LjA2LDAsMCwxLDAtNjcuODhsOC41OC04LjU4SDE5MmE0OCw0OCwwLDAsMSwwLTk2aDEyLjEybC04LjU4LTguNTdhNDgsNDgsMCwwLDEsNjAuNDYtNzRWMTYxLjc1QzI1NiwxMjUuMzgsMjI0LjYyLDk2LDE4Niw5NmMtNDQsMC01OCwyOC41LTgwLjEyLDYzLjEzYTgxOS41Miw4MTkuNTIsMCwwLDAtMTAyLDIzMUExMTMuMTYsMTEzLjE2LDAsMCwwLDAsNDE5Ljc1QzAsNDgxLDYyLjUsNTI1LjI2LDEyNS4yNSw1MDguMzhsNTkuNS0xNS44N2E5OC41MSw5OC41MSwwLDAsMCw1Mi41LTM0Ljc1LDQ2LjQ5LDQ2LjQ5LDAsMCwxLTQxLjcxLTEzLjNabTIyNi4yOS0yMi42M2ExNiwxNiwwLDAsMCwwLTIyLjYybC04LjU4LTguNThDMzkzLjA5LDM3MC40Nyw0MDcuMzcsMzM2LDQzNS44OCwzMzZINDQ4YTE2LDE2LDAsMCwwLDAtMzJINDM1Ljg4Yy0yOC41MSwwLTQyLjc5LTM0LjQ3LTIyLjYzLTU0LjYybDguNTgtOC41OGExNiwxNiwwLDAsMC0yMi42My0yMi42M2wtOC41Nyw4LjU4QzM3MC40NywyNDYuOTEsMzM2LDIzMi42MywzMzYsMjA0LjEyVjE5MmExNiwxNiwwLDAsMC0zMiwwdjEyLjEyYzAsMjguNTEtMzQuNDcsNDIuNzktNTQuNjMsMjIuNjNsLTguNTctOC41OGExNiwxNiwwLDAsMC0yMi42MywyMi42M2w4LjU4LDguNThjMjAuMTYsMjAuMTUsNS44OCw1NC42Mi0yMi42Myw1NC42MkgxOTJhMTYsMTYsMCwwLDAsMCwzMmgxMi4xMmMyOC41MSwwLDQyLjc5LDM0LjQ3LDIyLjYzLDU0LjYzbC04LjU4LDguNThhMTYsMTYsMCwxLDAsMjIuNjMsMjIuNjJsOC41Ny04LjU3QzI2OS41MywzOTMuMSwzMDQsNDA3LjM4LDMwNCw0MzUuODhWNDQ4YTE2LDE2LDAsMCwwLDMyLDBWNDM1Ljg4YzAtMjguNSwzNC40Ny00Mi43OCw1NC42My0yMi42Mmw4LjU3LDguNTdhMTYsMTYsMCwwLDAsMjIuNjMsMFpNMjg4LDMwNGExNiwxNiwwLDEsMSwxNi0xNkExNiwxNiwwLDAsMSwyODgsMzA0Wm02NCw2NGExNiwxNiwwLDEsMSwxNi0xNkExNiwxNiwwLDAsMSwzNTIsMzY4Wm0yODQuMTIsMjIuMTNhODE5LjUyLDgxOS41MiwwLDAsMC0xMDItMjMxQzUxMiwxMjQuNSw0OTgsOTYsNDU0LDk2Yy0zOC42MiwwLTcwLDI5LjM4LTcwLDY1Ljc1djI3LjcyYTQ4LDQ4LDAsMCwxLDYwLjQ2LDc0TDQzNS44OCwyNzJINDQ4YTQ4LDQ4LDAsMCwxLDAsOTZINDM1Ljg4bDguNTgsOC41OGE0Ny43LDQ3LjcsMCwwLDEtNDEuNzEsODEuMTgsOTguNTEsOTguNTEsMCwwLDAsNTIuNSwzNC43NWw1OS41LDE1Ljg3QzU3Ny41LDUyNS4yNiw2NDAsNDgxLDY0MCw0MTkuNzVBMTEzLjE2LDExMy4xNiwwLDAsMCw2MzYuMTIsMzkwLjEzWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMdW5ncyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MzYuMTEgMzkwLjE1QzYxNC40NCAzMDguODUgNTgwLjA3IDIzMSA1MzQuMSAxNTkuMTMgNTExLjk4IDEyNC41NiA0OTguMDMgOTYgNDU0LjA1IDk2IDQxNS4zNiA5NiAzODQgMTI1LjQyIDM4NCAxNjEuNzF2NjAuMTFsLTMyLjg4LTIxLjkyYTE1Ljk5NiAxNS45OTYgMCAwIDEtNy4xMi0xMy4zMVYxNmMwLTguODQtNy4xNi0xNi0xNi0xNmgtMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djE3MC41OWMwIDUuMzUtMi42NyAxMC4zNC03LjEyIDEzLjMxTDI1NiAyMjEuODJ2LTYwLjExQzI1NiAxMjUuNDIgMjI0LjY0IDk2IDE4NS45NSA5NmMtNDMuOTggMC01Ny45MyAyOC41Ni04MC4wNSA2My4xM0M1OS45MyAyMzEgMjUuNTYgMzA4Ljg1IDMuODkgMzkwLjE1IDEuMyAzOTkuODQgMCA0MDkuNzkgMCA0MTkuNzhjMCA2MS4yMyA2Mi40OCAxMDUuNDQgMTI1LjI0IDg4LjYybDU5LjUtMTUuOTVjNDIuMTgtMTEuMyA3MS4yNi00Ny40NyA3MS4yNi04OC42MnYtODcuNDlsLTg1Ljg0IDU3LjIzYTcuOTkyIDcuOTkyIDAgMCAxLTExLjA5LTIuMjJsLTguODgtMTMuMzFhNy45OTIgNy45OTIgMCAwIDEgMi4yMi0xMS4wOUwzMjAgMjM1LjIzbDE2Ny41OSAxMTEuNzJhNy45OTQgNy45OTQgMCAwIDEgMi4yMiAxMS4wOWwtOC44OCAxMy4zMWE3Ljk5NCA3Ljk5NCAwIDAgMS0xMS4wOSAyLjIyTDM4NCAzMTYuMzR2ODcuNDljMCA0MS4xNSAyOS4wOCA3Ny4zMSA3MS4yNiA4OC42Mmw1OS41IDE1Ljk1QzU3Ny41MiA1MjUuMjIgNjQwIDQ4MS4wMSA2NDAgNDE5Ljc4YzAtOS45OS0xLjMtMTkuOTQtMy44OS0yOS42M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFnaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDk2bDE2LTMyIDMyLTE2LTMyLTE2LTE2LTMyLTE2IDMyLTMyIDE2IDMyIDE2IDE2IDMyek04MCAxNjBsMjYuNjYtNTMuMzNMMTYwIDgwbC01My4zNC0yNi42N0w4MCAwIDUzLjM0IDUzLjMzIDAgODBsNTMuMzQgMjYuNjdMODAgMTYwem0zNTIgMTI4bC0yNi42NiA1My4zM0wzNTIgMzY4bDUzLjM0IDI2LjY3TDQzMiA0NDhsMjYuNjYtNTMuMzNMNTEyIDM2OGwtNTMuMzQtMjYuNjdMNDMyIDI4OHptNzAuNjItMTkzLjc3TDQxNy43NyA5LjM4QzQxMS41MyAzLjEyIDQwMy4zNCAwIDM5NS4xNSAwYy04LjE5IDAtMTYuMzggMy4xMi0yMi42MyA5LjM4TDkuMzggMzcyLjUyYy0xMi41IDEyLjUtMTIuNSAzMi43NiAwIDQ1LjI1bDg0Ljg1IDg0Ljg1YzYuMjUgNi4yNSAxNC40NCA5LjM3IDIyLjYyIDkuMzcgOC4xOSAwIDE2LjM4LTMuMTIgMjIuNjMtOS4zN2wzNjMuMTQtMzYzLjE1YzEyLjUtMTIuNDggMTIuNS0zMi43NSAwLTQ1LjI0ek0zNTkuNDUgMjAzLjQ2bC01MC45MS01MC45MSA4Ni42LTg2LjYgNTAuOTEgNTAuOTEtODYuNiA4Ni42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYWduZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTY0LjA3IDE0OC4xSDEyYTEyIDEyIDAgMCAxLTEyLTEydi04MGEzNiAzNiAwIDAgMSAzNi0zNmgxMDRhMzYgMzYgMCAwIDEgMzYgMzZ2ODBhMTEuODkgMTEuODkgMCAwIDEtMTEuOTMgMTJ6bTM0Ny45My0xMlY1NmEzNiAzNiAwIDAgMC0zNi0zNkgzNzJhMzYgMzYgMCAwIDAtMzYgMzZ2ODBhMTIgMTIgMCAwIDAgMTIgMTJoMTUyYTExLjg5IDExLjg5IDAgMCAwIDEyLTExLjl6bS0xNjQgNDRhMTIgMTIgMCAwIDAtMTIgMTJ2NTJjMCAxMjguMS0xNjAgMTI3LjktMTYwIDB2LTUyYTEyIDEyIDAgMCAwLTEyLTEySDEyLjFhMTIgMTIgMCAwIDAtMTIgMTIuMWMuMSAyMS40LjYgNDAuMyAwIDUzLjMgMCAxNTAuNiAxMzYuMTcgMjQ2LjYgMjU2Ljc1IDI0Ni42czI1NS05NiAyNTUtMjQ2LjdjLS42LTEyLjgtLjItMzMgMC01My4yYTEyIDEyIDAgMCAwLTEyLTEyLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1haWxCdWxrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCA0NDhjLTI1LjYgMC01MS4yLTIyLjQtNjQtMzItNjQtNDQuOC04My4yLTYwLjgtOTYtNzAuNFY0ODBjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgyNTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYzNDUuNmMtMTIuOCA5LjYtMzIgMjUuNi05NiA3MC40LTEyLjggOS42LTM4LjQgMzItNjQgMzJ6bTEyOC0xOTJIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MTZjMjUuNiAxOS4yIDIyLjQgMTkuMiAxMTUuMiA4Ni40IDkuNiA2LjQgMjguOCAyNS42IDQ0LjggMjUuNnMzNS4yLTE5LjIgNDQuOC0yMi40YzkyLjgtNjcuMiA4OS42LTY3LjIgMTE1LjItODYuNFYyODhjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptMjU2LTk2SDIyNGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYzMmg5NmMzMy4yMSAwIDYwLjU5IDI1LjQyIDYzLjcxIDU3LjgybC4yOS0uMjJWNDE2aDE5MmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjE5MmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyem0tMzIgMTI4aC02NHYtNjRoNjR2NjR6bS0zNTItOTZjMC0zNS4yOSAyOC43MS02NCA2NC02NGgyMjRWMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMkg5NkM3OC4zMyAwIDY0IDE0LjMzIDY0IDMydjE5Mmg5NnYtMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDE5MiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMGMzNS4zNDYgMCA2NCAyOC42NTQgNjQgNjRzLTI4LjY1NCA2NC02NCA2NC02NC0yOC42NTQtNjQtNjRTNjAuNjU0IDAgOTYgMG00OCAxNDRoLTExLjM2Yy0yMi43MTEgMTAuNDQzLTQ5LjU5IDEwLjg5NC03My4yOCAwSDQ4Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djEzNmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTZ2MTM2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGg2NGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMzUyaDE2YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYxOTJjMC0yNi41MS0yMS40OS00OC00OC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFwTWFya2VkQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAwYy02OS41OSAwLTEyNiA1Ni40MS0xMjYgMTI2IDAgNTYuMjYgODIuMzUgMTU4LjggMTEzLjkgMTk2LjAyIDYuMzkgNy41NCAxNy44MiA3LjU0IDI0LjIgMEMzMzEuNjUgMjg0LjggNDE0IDE4Mi4yNiA0MTQgMTI2IDQxNCA1Ni40MSAzNTcuNTkgMCAyODggMHptMCAxNjhjLTIzLjIgMC00Mi0xOC44LTQyLTQyczE4LjgtNDIgNDItNDIgNDIgMTguOCA0MiA0Mi0xOC44IDQyLTQyIDQyek0yMC4xMiAyMTUuOTVBMzIuMDA2IDMyLjAwNiAwIDAgMCAwIDI0NS42NnYyNTAuMzJjMCAxMS4zMiAxMS40MyAxOS4wNiAyMS45NCAxNC44NkwxNjAgNDQ4VjIxNC45MmMtOC44NC0xNS45OC0xNi4wNy0zMS41NC0yMS4yNS00Ni40MkwyMC4xMiAyMTUuOTV6TTI4OCAzNTkuNjdjLTE0LjA3IDAtMjcuMzgtNi4xOC0zNi41MS0xNi45Ni0xOS42Ni0yMy4yLTQwLjU3LTQ5LjYyLTU5LjQ5LTc2LjcydjE4MmwxOTIgNjRWMjY2Yy0xOC45MiAyNy4wOS0zOS44MiA1My41Mi01OS40OSA3Ni43Mi05LjEzIDEwLjc3LTIyLjQ0IDE2Ljk1LTM2LjUxIDE2Ljk1em0yNjYuMDYtMTk4LjUxTDQxNiAyMjR2Mjg4bDEzOS44OC01NS45NUEzMS45OTYgMzEuOTk2IDAgMCAwIDU3NiA0MjYuMzRWMTc2LjAyYzAtMTEuMzItMTEuNDMtMTkuMDYtMjEuOTQtMTQuODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcE1hcmtlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMGMtNjkuNTkgMC0xMjYgNTYuNDEtMTI2IDEyNiAwIDU2LjI2IDgyLjM1IDE1OC44IDExMy45IDE5Ni4wMiA2LjM5IDcuNTQgMTcuODIgNy41NCAyNC4yIDBDMzMxLjY1IDI4NC44IDQxNCAxODIuMjYgNDE0IDEyNiA0MTQgNTYuNDEgMzU3LjU5IDAgMjg4IDB6TTIwLjEyIDIxNS45NUEzMi4wMDYgMzIuMDA2IDAgMCAwIDAgMjQ1LjY2djI1MC4zMmMwIDExLjMyIDExLjQzIDE5LjA2IDIxLjk0IDE0Ljg2TDE2MCA0NDhWMjE0LjkyYy04Ljg0LTE1Ljk4LTE2LjA3LTMxLjU0LTIxLjI1LTQ2LjQyTDIwLjEyIDIxNS45NXpNMjg4IDM1OS42N2MtMTQuMDcgMC0yNy4zOC02LjE4LTM2LjUxLTE2Ljk2LTE5LjY2LTIzLjItNDAuNTctNDkuNjItNTkuNDktNzYuNzJ2MTgybDE5MiA2NFYyNjZjLTE4LjkyIDI3LjA5LTM5LjgyIDUzLjUyLTU5LjQ5IDc2LjcyLTkuMTMgMTAuNzctMjIuNDQgMTYuOTUtMzYuNTEgMTYuOTV6bTI2Ni4wNi0xOTguNTFMNDE2IDIyNHYyODhsMTM5Ljg4LTU1Ljk1QTMxLjk5NiAzMS45OTYgMCAwIDAgNTc2IDQyNi4zNFYxNzYuMDJjMC0xMS4zMi0xMS40My0xOS4wNi0yMS45NC0xNC44NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFwTWFya2VyQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3Mi4yNjggNTAxLjY3QzI2Ljk3IDI5MS4wMzEgMCAyNjkuNDEzIDAgMTkyIDAgODUuOTYxIDg1Ljk2MSAwIDE5MiAwczE5MiA4NS45NjEgMTkyIDE5MmMwIDc3LjQxMy0yNi45NyA5OS4wMzEtMTcyLjI2OCAzMDkuNjctOS41MzUgMTMuNzc0LTI5LjkzIDEzLjc3My0zOS40NjQgMHpNMTkyIDI3MmM0NC4xODMgMCA4MC0zNS44MTcgODAtODBzLTM1LjgxNy04MC04MC04MC04MCAzNS44MTctODAgODAgMzUuODE3IDgwIDgwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXBNYXJrZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcyLjI2OCA1MDEuNjdDMjYuOTcgMjkxLjAzMSAwIDI2OS40MTMgMCAxOTIgMCA4NS45NjEgODUuOTYxIDAgMTkyIDBzMTkyIDg1Ljk2MSAxOTIgMTkyYzAgNzcuNDEzLTI2Ljk3IDk5LjAzMS0xNzIuMjY4IDMwOS42Ny05LjUzNSAxMy43NzQtMjkuOTMgMTMuNzczLTM5LjQ2NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXBQaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI4OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEyIDMxNi45NHYxNTYuNjlsMjIuMDIgMzMuMDJjNC43NSA3LjEyIDE1LjIyIDcuMTIgMTkuOTcgMEwxNzYgNDczLjYzVjMxNi45NGMtMTAuMzkgMS45Mi0yMS4wNiAzLjA2LTMyIDMuMDZzLTIxLjYxLTEuMTQtMzItMy4wNnpNMTQ0IDBDNjQuNDcgMCAwIDY0LjQ3IDAgMTQ0czY0LjQ3IDE0NCAxNDQgMTQ0IDE0NC02NC40NyAxNDQtMTQ0UzIyMy41MyAwIDE0NCAwem0wIDc2Yy0zNy41IDAtNjggMzAuNS02OCA2OCAwIDYuNjItNS4zOCAxMi0xMiAxMnMtMTItNS4zOC0xMi0xMmMwLTUwLjczIDQxLjI4LTkyIDkyLTkyIDYuNjIgMCAxMiA1LjM4IDEyIDEycy01LjM4IDEyLTEyIDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXBTaWducyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDcuMzEgODQuNjlMNDY0IDQxLjM3Yy02LTYtMTQuMTQtOS4zNy0yMi42My05LjM3SDI4OFYxNmMwLTguODQtNy4xNi0xNi0xNi0xNmgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djE2SDU2Yy0xMy4yNSAwLTI0IDEwLjc1LTI0IDI0djgwYzAgMTMuMjUgMTAuNzUgMjQgMjQgMjRoMzg1LjM3YzguNDkgMCAxNi42Mi0zLjM3IDIyLjYzLTkuMzdsNDMuMzEtNDMuMzFjNi4yNS02LjI2IDYuMjUtMTYuMzggMC0yMi42M3pNMjI0IDQ5NmMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYzODRoLTY0djExMnptMjMyLTI3MkgyODh2LTMyaC02NHYzMkg3MC42M2MtOC40OSAwLTE2LjYyIDMuMzctMjIuNjMgOS4zN0w0LjY5IDI3Ni42OWMtNi4yNSA2LjI1LTYuMjUgMTYuMzggMCAyMi42M0w0OCAzNDIuNjNjNiA2IDE0LjE0IDkuMzcgMjIuNjMgOS4zN0g0NTZjMTMuMjUgMCAyNC0xMC43NSAyNC0yNHYtODBjMC0xMy4yNS0xMC43NS0yNC0yNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTE3LjY2djM0Ni4zMmMwIDExLjMyIDExLjQzIDE5LjA2IDIxLjk0IDE0Ljg2TDE2MCA0MTZWMzJMMjAuMTIgODcuOTVBMzIuMDA2IDMyLjAwNiAwIDAgMCAwIDExNy42NnpNMTkyIDQxNmwxOTIgNjRWOTZMMTkyIDMydjM4NHpNNTU0LjA2IDMzLjE2TDQxNiA5NnYzODRsMTM5Ljg4LTU1Ljk1QTMxLjk5NiAzMS45OTYgMCAwIDAgNTc2IDM5NC4zNFY0OC4wMmMwLTExLjMyLTExLjQzLTE5LjA2LTIxLjk0LTE0Ljg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXJrZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTMuOTUgMjkwLjAzQTMyNy4wMzggMzI3LjAzOCAwIDAgMCAuMTcgNDg1LjExbC0uMDMuMjNjLTEuNyAxNS4yOCAxMS4yMSAyOC4yIDI2LjQ5IDI2LjUxYTMyNy4wMiAzMjcuMDIgMCAwIDAgMTk1LjM0LTkzLjhsNzUuNC03NS40LTEyOC4wMi0xMjguMDItNzUuNCA3NS40ek00ODUuNDkgMjYuNTFjLTM1LjM1LTM1LjM1LTkyLjY3LTM1LjM1LTEyOC4wMiAwbC0yMS43NiAyMS43Ni0zNi41Ni0zNi41NWMtMTUuNjItMTUuNjItNDAuOTUtMTUuNjItNTYuNTYgMEwxMzguNDcgMTE1Ljg0Yy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzbDIyLjYyIDIyLjYyYzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsODcuMTUtODcuMTUgMTkuNTkgMTkuNTlMMTkxLjk4IDE5MiAzMjAgMzIwLjAybDE2NS40OS0xNjUuNDljMzUuMzUtMzUuMzUgMzUuMzUtOTIuNjYgMC0xMjguMDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcnNEb3VibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQwIDBoLTc5Yy0xMC43IDAtMTYgMTIuOS04LjUgMjAuNWwxNi45IDE2LjktNDguNyA0OC43QzE5OC41IDcyLjEgMTcyLjIgNjQgMTQ0IDY0IDY0LjUgNjQgMCAxMjguNSAwIDIwOHM2NC41IDE0NCAxNDQgMTQ0IDE0NC02NC41IDE0NC0xNDRjMC0yOC4yLTguMS01NC41LTIyLjEtNzYuN2w0OC43LTQ4LjcgMTYuOSAxNi45YzIuNCAyLjQgNS41IDMuNSA4LjQgMy41IDYuMiAwIDEyLjEtNC44IDEyLjEtMTJWMTJjMC02LjYtNS40LTEyLTEyLTEyek0xNDQgMjg4Yy00NC4xIDAtODAtMzUuOS04MC04MHMzNS45LTgwIDgwLTgwIDgwIDM1LjkgODAgODAtMzUuOSA4MC04MCA4MHptMzU2LTEyOC4xaC03OWMtMTAuNyAwLTE2IDEyLjktOC41IDIwLjVsMTYuOSAxNi45LTQ4LjcgNDguN2MtMTguMi0xMS40LTM5LTE4LjktNjEuNS0yMS4zLTIuMSAyMS44LTguMiA0My4zLTE4LjQgNjMuMyAxLjEgMCAyLjItLjEgMy4yLS4xIDQ0LjEgMCA4MCAzNS45IDgwIDgwcy0zNS45IDgwLTgwIDgwLTgwLTM1LjktODAtODBjMC0xLjEgMC0yLjIuMS0zLjItMjAgMTAuMi00MS41IDE2LjQtNjMuMyAxOC40QzE2OC40IDQ1NS42IDIyOS42IDUxMiAzMDQgNTEyYzc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0IDAtMjguMi04LjEtNTQuNS0yMi4xLTc2LjdsNDguNy00OC43IDE2LjkgMTYuOWMyLjQgMi40IDUuNCAzLjUgOC40IDMuNSA2LjIgMCAxMi4xLTQuOCAxMi4xLTEydi03OWMwLTYuNy01LjQtMTIuMS0xMi0xMi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXJzU3Ryb2tlSCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDgwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzYuMiAyNDcuNWwtNTUuOS01NS45Yy03LjYtNy42LTIwLjUtMi4yLTIwLjUgOC41VjIyNEgzNzZ2LTIwYzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnYyMGgtMjcuNmMtNS44LTI1LjYtMTguNy00OS45LTM4LjYtNjkuOEMxODkuNiA5OCA5OC40IDk4IDQyLjIgMTU0LjJjLTU2LjIgNTYuMi01Ni4yIDE0Ny40IDAgMjAzLjYgNTYuMiA1Ni4yIDE0Ny40IDU2LjIgMjAzLjYgMCAxOS45LTE5LjkgMzIuOC00NC4yIDM4LjYtNjkuOEgzMTJ2MjBjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnYtMjBoMjMuOXYyMy45YzAgMTAuNyAxMi45IDE2IDIwLjUgOC41bDU1LjktNTUuOWM0LjYtNC43IDQuNi0xMi4zLS4xLTE3em0tMjc1LjYgNjUuMWMtMzEuMiAzMS4yLTgxLjkgMzEuMi0xMTMuMSAwLTMxLjItMzEuMi0zMS4yLTgxLjkgMC0xMTMuMSAzMS4yLTMxLjIgODEuOS0zMS4yIDExMy4xIDAgMzEuMiAzMS4xIDMxLjIgODEuOSAwIDExMy4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXJzU3Ryb2tlViAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjg4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDUuOCAyMzQuMmMtMTkuOS0xOS45LTQ0LjItMzIuOC02OS44LTM4LjZ2LTI1LjRoMjBjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTIwVjgxLjRoMjMuOWMxMC43IDAgMTYtMTIuOSA4LjUtMjAuNUwxNTIuNSA1LjFjLTQuNy00LjctMTIuMy00LjctMTcgMEw3OS42IDYxYy03LjYgNy42LTIuMiAyMC41IDguNSAyMC41SDExMnYyNC43SDkyYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDIwdjI1LjRjLTI1LjYgNS44LTQ5LjkgMTguNy02OS44IDM4LjYtNTYuMiA1Ni4yLTU2LjIgMTQ3LjQgMCAyMDMuNiA1Ni4yIDU2LjIgMTQ3LjQgNTYuMiAyMDMuNiAwIDU2LjMtNTYuMiA1Ni4zLTE0Ny40IDAtMjAzLjZ6bS00NS4yIDE1OC40Yy0zMS4yIDMxLjItODEuOSAzMS4yLTExMy4xIDAtMzEuMi0zMS4yLTMxLjItODEuOSAwLTExMy4xIDMxLjItMzEuMiA4MS45LTMxLjIgMTEzLjEgMCAzMS4yIDMxLjEgMzEuMiA4MS45IDAgMTEzLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcnNTdHJva2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzcyIDY0aC03OWMtMTAuNyAwLTE2IDEyLjktOC41IDIwLjVsMTYuOSAxNi45LTE3LjUgMTcuNS0xNC4xLTE0LjFjLTQuNy00LjctMTIuMy00LjctMTcgMEwyMjQuNSAxMzNjLTQuNyA0LjctNC43IDEyLjMgMCAxN2wxNC4xIDE0LjEtMTggMThjLTIyLjItMTQtNDguNS0yMi4xLTc2LjctMjIuMUM2NC41IDE2MCAwIDIyNC41IDAgMzA0czY0LjUgMTQ0IDE0NCAxNDQgMTQ0LTY0LjUgMTQ0LTE0NGMwLTI4LjItOC4xLTU0LjUtMjIuMS03Ni43bDE4LTE4IDE0LjEgMTQuMWM0LjcgNC43IDEyLjMgNC43IDE3IDBsMjguMy0yOC4zYzQuNy00LjcgNC43LTEyLjMgMC0xN0wzMjkuMiAxNjRsMTcuNS0xNy41IDE2LjkgMTYuOWM3LjYgNy42IDIwLjUgMi4yIDIwLjUtOC41Vjc2Yy0uMS02LjYtNS41LTEyLTEyLjEtMTJ6TTE0NCAzODRjLTQ0LjEgMC04MC0zNS45LTgwLTgwczM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3MiA2NGgtNzljLTEwLjcgMC0xNiAxMi45LTguNSAyMC41bDE2LjkgMTYuOS04MC43IDgwLjdjLTIyLjItMTQtNDguNS0yMi4xLTc2LjctMjIuMUM2NC41IDE2MCAwIDIyNC41IDAgMzA0czY0LjUgMTQ0IDE0NCAxNDQgMTQ0LTY0LjUgMTQ0LTE0NGMwLTI4LjItOC4xLTU0LjUtMjIuMS03Ni43bDgwLjctODAuNyAxNi45IDE2LjljNy42IDcuNiAyMC41IDIuMiAyMC41LTguNVY3NmMwLTYuNi01LjQtMTItMTItMTJ6TTE0NCAzODRjLTQ0LjEgMC04MC0zNS45LTgwLTgwczM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMC42NyA2NGMtNDQyLjYgMC0zNTcuNTcgMzg0LTE1OC40NiAzODQgMzkuOSAwIDc3LjQ3LTIwLjY5IDEwMS40Mi01NS44NmwyNS43My0zNy43OWMxNS42Ni0yMi45OSA0Ni45Ny0yMi45OSA2Mi42MyAwbDI1LjczIDM3Ljc5QzQwMS42NiA0MjcuMzEgNDM5LjIzIDQ0OCA0NzkuMTMgNDQ4YzE4OS44NiAwIDI5MC42My0zODQtMTU4LjQ2LTM4NHpNMTg0IDMwOC4zNmMtNDEuMDYgMC02Ny43Ni0yNS42Ni04MC4wOC00MS4wNS01LjIzLTYuNTMtNS4yMy0xNi4wOSAwLTIyLjYzIDEyLjMyLTE1LjQgMzkuMDEtNDEuMDUgODAuMDgtNDEuMDVzNjcuNzYgMjUuNjYgODAuMDggNDEuMDVjNS4yMyA2LjUzIDUuMjMgMTYuMDkgMCAyMi42My0xMi4zMiAxNS40LTM5LjAyIDQxLjA1LTgwLjA4IDQxLjA1em0yNzIgMGMtNDEuMDYgMC02Ny43Ni0yNS42Ni04MC4wOC00MS4wNS01LjIzLTYuNTMtNS4yMy0xNi4wOSAwLTIyLjYzIDEyLjMyLTE1LjQgMzkuMDEtNDEuMDUgODAuMDgtNDEuMDVzNjcuNzYgMjUuNjYgODAuMDggNDEuMDVjNS4yMyA2LjUzIDUuMjMgMTYuMDkgMCAyMi42My0xMi4zMiAxNS40LTM5LjAyIDQxLjA1LTgwLjA4IDQxLjA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZWRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjMuNzUgMTMwLjc1TDE1NC42MiAxNS41NEEzMS45OTcgMzEuOTk3IDAgMCAwIDEyNy4xOCAwSDE2LjAzQzMuMDggMC00LjUgMTQuNTcgMi45MiAyNS4xOGwxMTEuMjcgMTU4Ljk2YzI5LjcyLTI3Ljc3IDY3LjUyLTQ2LjgzIDEwOS41Ni01My4zOXpNNDk1Ljk3IDBIMzg0LjgyYy0xMS4yNCAwLTIxLjY2IDUuOS0yNy40NCAxNS41NGwtNjkuMTMgMTE1LjIxYzQyLjA0IDYuNTYgNzkuODQgMjUuNjIgMTA5LjU2IDUzLjM4TDUwOS4wOCAyNS4xOEM1MTYuNSAxNC41NyA1MDguOTIgMCA0OTUuOTcgMHpNMjU2IDE2MGMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZzNzguOCAxNzYgMTc2IDE3NiAxNzYtNzguOCAxNzYtMTc2LTc4LjgtMTc2LTE3Ni0xNzZ6bTkyLjUyIDE1Ny4yNmwtMzcuOTMgMzYuOTYgOC45NyA1Mi4yMmMxLjYgOS4zNi04LjI2IDE2LjUxLTE2LjY1IDEyLjA5TDI1NiAzOTMuODhsLTQ2LjkgMjQuNjVjLTguNCA0LjQ1LTE4LjI1LTIuNzQtMTYuNjUtMTIuMDlsOC45Ny01Mi4yMi0zNy45My0zNi45NmMtNi44Mi02LjY0LTMuMDUtMTguMjMgNi4zNS0xOS41OWw1Mi40My03LjY0IDIzLjQzLTQ3LjUyYzIuMTEtNC4yOCA2LjE5LTYuMzkgMTAuMjgtNi4zOSA0LjExIDAgOC4yMiAyLjE0IDEwLjMzIDYuMzlsMjMuNDMgNDcuNTIgNTIuNDMgNy42NGM5LjQgMS4zNiAxMy4xNyAxMi45NSA2LjM1IDE5LjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZWRraXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgNDgwaDMyMFYxMjhoLTMyVjgwYzAtMjYuNTEtMjEuNDktNDgtNDgtNDhIMTc2Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djQ4SDk2djM1MnptOTYtMzg0aDEyOHYzMkgxOTJWOTZ6bTMyMCA4MHYyNTZjMCAyNi41MS0yMS40OSA0OC00OCA0OGgtMTZWMTI4aDE2YzI2LjUxIDAgNDggMjEuNDkgNDggNDh6TTY0IDQ4MEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFYxNzZjMC0yNi41MSAyMS40OS00OCA0OC00OGgxNnYzNTJ6bTI4OC0yMDh2MzJjMCA4LjgzNy03LjE2MyAxNi0xNiAxNmgtNDh2NDhjMCA4LjgzNy03LjE2MyAxNi0xNiAxNmgtMzJjLTguODM3IDAtMTYtNy4xNjMtMTYtMTZ2LTQ4aC00OGMtOC44MzcgMC0xNi03LjE2My0xNi0xNnYtMzJjMC04LjgzNyA3LjE2My0xNiAxNi0xNmg0OHYtNDhjMC04LjgzNyA3LjE2My0xNiAxNi0xNmgzMmM4LjgzNyAwIDE2IDcuMTYzIDE2IDE2djQ4aDQ4YzguODM3IDAgMTYgNy4xNjMgMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1laEJsYW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bS04MCAyMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1laFJvbGxpbmdFeWVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6TTg4IDIyNGMwLTI0LjMgMTMuNy00NS4yIDMzLjYtNTYtLjcgMi42LTEuNiA1LjItMS42IDggMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTIuOC0uOS01LjQtMS42LTggMTkuOSAxMC44IDMzLjYgMzEuNyAzMy42IDU2IDAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0em0yMjQgMTc2SDE4NGMtMjEuMiAwLTIxLjItMzIgMC0zMmgxMjhjMjEuMiAwIDIxLjIgMzIgMCAzMnptMzItMTEyYy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTI0LjMgMTMuNy00NS4yIDMzLjYtNTYtLjcgMi42LTEuNiA1LjItMS42IDggMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTIuOC0uOS01LjQtMS42LTggMTkuOSAxMC44IDMzLjYgMzEuNyAzMy42IDU2IDAgMzUuMy0yOC43IDY0LTY0IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZWggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptLTgwIDE2OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzJ6bTE3NiAxOTJIMTUyYy0yMS4yIDAtMjEuMi0zMiAwLTMyaDE5MmMyMS4yIDAgMjEuMiAzMiAwIDMyem0tMTYtMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVtb3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MCAxMzAuOTRWOTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMkgzMkMxNC4zMyA2NCAwIDc4LjMzIDAgOTZ2MzQuOTRjMTguNiA2LjYxIDMyIDI0LjE5IDMyIDQ1LjA2cy0xMy40IDM4LjQ1LTMyIDQ1LjA2VjMyMGg2NDB2LTk4Ljk0Yy0xOC42LTYuNjEtMzItMjQuMTktMzItNDUuMDZzMTMuNC0zOC40NSAzMi00NS4wNnpNMjI0IDI1NmgtNjRWMTI4aDY0djEyOHptMTI4IDBoLTY0VjEyOGg2NHYxMjh6bTEyOCAwaC02NFYxMjhoNjR2MTI4ek0wIDQ0OGg2NHYtMjYuNjdjMC04Ljg0IDcuMTYtMTYgMTYtMTZzMTYgNy4xNiAxNiAxNlY0NDhoMTI4di0yNi42N2MwLTguODQgNy4xNi0xNiAxNi0xNnMxNiA3LjE2IDE2IDE2VjQ0OGgxMjh2LTI2LjY3YzAtOC44NCA3LjE2LTE2IDE2LTE2czE2IDcuMTYgMTYgMTZWNDQ4aDEyOHYtMjYuNjdjMC04Ljg0IDcuMTYtMTYgMTYtMTZzMTYgNy4xNiAxNiAxNlY0NDhoNjR2LTk2SDB2OTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1lbm9yYWggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ0IDEyOGgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djE0NGg2NFYxNDRjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bTk2IDBoLTMyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNDRoNjRWMTQ0YzAtOC44NC03LjE2LTE2LTE2LTE2em0xOTIgMGgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djE0NGg2NFYxNDRjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bTk2IDBoLTMyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNDRoNjRWMTQ0YzAtOC44NC03LjE2LTE2LTE2LTE2em04MC0zMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyUzYwOCAwIDYwOCAwcy0zMiA0Ni4zMy0zMiA2NCAxNC4zMyAzMiAzMiAzMnptLTk2IDBjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlM1MTIgMCA1MTIgMHMtMzIgNDYuMzMtMzIgNjQgMTQuMzMgMzIgMzIgMzJ6bS05NiAwYzE3LjY3IDAgMzItMTQuMzMgMzItMzJTNDE2IDAgNDE2IDBzLTMyIDQ2LjMzLTMyIDY0IDE0LjMzIDMyIDMyIDMyem0tOTYgMGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyUzMyMCAwIDMyMCAwcy0zMiA0Ni4zMy0zMiA2NCAxNC4zMyAzMiAzMiAzMnptLTk2IDBjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlMyMjQgMCAyMjQgMHMtMzIgNDYuMzMtMzIgNjQgMTQuMzMgMzIgMzIgMzJ6bS05NiAwYzE3LjY3IDAgMzItMTQuMzMgMzItMzJTMTI4IDAgMTI4IDAgOTYgNDYuMzMgOTYgNjRzMTQuMzMgMzIgMzIgMzJ6bS05NiAwYzE3LjY3IDAgMzItMTQuMzMgMzItMzJTMzIgMCAzMiAwIDAgNDYuMzMgMCA2NHMxNC4zMyAzMiAzMiAzMnptNTQ0IDE5MmMwIDE3LjY3LTE0LjMzIDMyLTMyIDMySDM1MlYxNDRjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTMyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNzZIOTZjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJWMTQ0YzAtOC44NC03LjE2LTE2LTE2LTE2SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNDRjMCA1My4wMiA0Mi45OCA5NiA5NiA5NmgxOTJ2NjRIMTEyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg0MTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2SDM1MnYtNjRoMTkyYzUzLjAyIDAgOTYtNDIuOTggOTYtOTZWMTQ0YzAtOC44NC03LjE2LTE2LTE2LTE2aC0zMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZXJjdXJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyODggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAyMDhjMC00NC4yLTE5LjktODMuNy01MS4yLTExMC4xIDIuNS0xLjggNC45LTMuOCA3LjItNS44IDI0LjctMjEuMiAzOS44LTQ4LjggNDMuMi03OC44LjktNy4xLTQuNy0xMy4zLTExLjktMTMuM2gtNDAuNUMyMjkgMCAyMjQuMSA0LjEgMjIzIDkuOGMtMi40IDEyLjUtOS42IDI0LjMtMjAuNyAzMy44QzE4NyA1Ni44IDE2Ni4zIDY0IDE0NCA2NHMtNDMtNy4yLTU4LjQtMjAuNEM3NC41IDM0LjEgNjcuNCAyMi4zIDY0LjkgOS44IDYzLjggNC4xIDU4LjkgMCA1My4yIDBIMTIuN0M1LjUgMC0uMSA2LjIuOCAxMy4zIDQuMiA0My40IDE5LjIgNzEgNDQgOTIuMmMyLjMgMiA0LjcgMy45IDcuMiA1LjhDMTkuOSAxMjQuMyAwIDE2My44IDAgMjA4YzAgNjguNSA0Ny45IDEyNS45IDExMiAxNDAuNFY0MDBINzZjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoMzZ2MzZjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnYtMzZoMzZjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTM2di01MS42YzY0LjEtMTQuNSAxMTItNzEuOSAxMTItMTQwLjR6bS0yMjQgMGMwLTQ0LjEgMzUuOS04MCA4MC04MHM4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODAtODAtMzUuOS04MC04MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWV0ZW9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMS4zMjgsMjAuODAyN2MtMTEuNjA3NTksMzguNzAyNjQtMzQuMzA3MjQsMTExLjcwMTczLTYxLjMwMzExLDE4Ny43MDA3Nyw2Ljk5ODkzLDIuMDkzNzIsMTMuNDA0Miw0LDE4LjYwNjUzLDUuNTkzNjhhMTYuMDYxNTgsMTYuMDYxNTgsMCwwLDEsOS40OTg1NCwyMi45MDZjLTIyLjEwNiw0Mi4yOTYzNS04Mi42OTA0NywxNTIuNzk1LTE0Mi40NzgxOSwyMTQuNDAzNTYtLjk5OTg0LDEuMDkzNzMtMS45OTk2OSwyLjUtMi45OTk1NCwzLjQ5OTk1QTE5NC44MzA0NiwxOTQuODMwNDYsMCwxLDEsNTcuMDg1LDE3OS40MTAwOWMuOTk5ODUtMSwyLjQwNTg4LTIsMy40OTk0Ny0zLDYxLjU5OTk0LTU5LjkwNTQ5LDE3MS45NzM2Ny0xMjAuNDA0NzMsMjE0LjM3MzQzLTE0Mi40OTgyYTE2LjA1OCwxNi4wNTgsMCwwLDEsMjIuOTAyNzQsOS40OTk4OGMxLjU5MzUxLDUuMDkzNjgsMy40OTk0NywxMS41OTM2LDUuNTkyOSwxOC41OTM1MUMzNzkuMzQ4MTgsMzUuMDA1NjUsNDUyLjQzMDc0LDEyLjMwMjgxLDQ5MS4xMjc5NC43MDkyMUExNi4xODMyNSwxNi4xODMyNSwwLDAsMSw1MTEuMzI4LDIwLjgwMjdaTTMxOS45NTEsMzIwLjAwMjA3QTEyNy45ODA0MSwxMjcuOTgwNDEsMCwxLDAsMTkxLjk3MDYxLDQ0OC4wMDA0NiwxMjcuOTc1NzMsMTI3Ljk3NTczLDAsMCwwLDMxOS45NTEsMzIwLjAwMjA3Wm0tMTI3Ljk4MDQxLTMxLjk5OTZhMzEuOTk1MSwzMS45OTUxLDAsMSwxLTMxLjk5NTEtMzEuOTk5NkEzMS45NTksMzEuOTU5LDAsMCwxLDE5MS45NzA2MSwyODguMDAyNDdabTMxLjk5NTEsNzkuOTk5YTE1Ljk5NzU1LDE1Ljk5NzU1LDAsMSwxLTE1Ljk5NzU1LTE1Ljk5OThBMTYuMDQ5NzUsMTYuMDQ5NzUsMCwwLDEsMjIzLjk2NTcxLDM2OC4wMDE0N1pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWljcm9jaGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiA0OHY0MTZjMCAyNi41MS0yMS40OSA0OC00OCA0OEgxNDRjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWNDhjMC0yNi41MSAyMS40OS00OCA0OC00OGgyMjRjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHptOTYgNTh2MTJhNiA2IDAgMCAxLTYgNmgtMTh2NmE2IDYgMCAwIDEtNiA2aC00MlY4OGg0MmE2IDYgMCAwIDEgNiA2djZoMThhNiA2IDAgMCAxIDYgNnptMCA5NnYxMmE2IDYgMCAwIDEtNiA2aC0xOHY2YTYgNiAwIDAgMS02IDZoLTQydi00OGg0MmE2IDYgMCAwIDEgNiA2djZoMThhNiA2IDAgMCAxIDYgNnptMCA5NnYxMmE2IDYgMCAwIDEtNiA2aC0xOHY2YTYgNiAwIDAgMS02IDZoLTQydi00OGg0MmE2IDYgMCAwIDEgNiA2djZoMThhNiA2IDAgMCAxIDYgNnptMCA5NnYxMmE2IDYgMCAwIDEtNiA2aC0xOHY2YTYgNiAwIDAgMS02IDZoLTQydi00OGg0MmE2IDYgMCAwIDEgNiA2djZoMThhNiA2IDAgMCAxIDYgNnpNMzAgMzc2aDQydjQ4SDMwYTYgNiAwIDAgMS02LTZ2LTZINmE2IDYgMCAwIDEtNi02di0xMmE2IDYgMCAwIDEgNi02aDE4di02YTYgNiAwIDAgMSA2LTZ6bTAtOTZoNDJ2NDhIMzBhNiA2IDAgMCAxLTYtNnYtNkg2YTYgNiAwIDAgMS02LTZ2LTEyYTYgNiAwIDAgMSA2LTZoMTh2LTZhNiA2IDAgMCAxIDYtNnptMC05Nmg0MnY0OEgzMGE2IDYgMCAwIDEtNi02di02SDZhNiA2IDAgMCAxLTYtNnYtMTJhNiA2IDAgMCAxIDYtNmgxOHYtNmE2IDYgMCAwIDEgNi02em0wLTk2aDQydjQ4SDMwYTYgNiAwIDAgMS02LTZ2LTZINmE2IDYgMCAwIDEtNi02di0xMmE2IDYgMCAwIDEgNi02aDE4di02YTYgNiAwIDAgMSA2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pY3JvcGhvbmVBbHRTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MzMuODIgNDU4LjFMNDc2LjI2IDMzNi4zM0M0ODguNzQgMzEyLjIxIDQ5NiAyODQuOTggNDk2IDI1NnYtNDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY0OGMwIDE3LjkyLTMuOTYgMzQuOC0xMC43MiA1MC4ybC0yNi41NS0yMC41MmMzLjEtOS40IDUuMjgtMTkuMjIgNS4yOC0yOS42N2gtNDMuNjdsLTQxLjQtMzJINDE2di0zMmgtODUuMzNjLTUuODkgMC0xMC42Ny0zLjU4LTEwLjY3LTh2LTE2YzAtNC40MiA0Ljc4LTggMTAuNjctOEg0MTZ2LTMyaC04NS4zM2MtNS44OSAwLTEwLjY3LTMuNTgtMTAuNjctOHYtMTZjMC00LjQyIDQuNzgtOCAxMC42Ny04SDQxNmMwLTUzLjAyLTQyLjk4LTk2LTk2LTk2cy05NiA0Mi45OC05NiA5NnY0NS4zNkw0NS40NyAzLjM3QzM4LjQ5LTIuMDUgMjguNDMtLjggMjMuMDEgNi4xOEwzLjM3IDMxLjQ1Qy0yLjA1IDM4LjQyLS44IDQ4LjQ3IDYuMTggNTMuOWw1ODguMzYgNDU0LjczYzYuOTggNS40MyAxNy4wMyA0LjE3IDIyLjQ2LTIuODFsMTkuNjQtMjUuMjdjNS40MS02Ljk3IDQuMTYtMTcuMDItMi44Mi0yMi40NXpNNDAwIDQ2NGgtNTZ2LTMzLjc4YzExLjcxLTEuNjIgMjMuMS00LjI4IDMzLjk2LTguMDhsLTUwLjQtMzguOTZjLTYuNzEuNC0xMy40MS44Ny0yMC4zNS4yLTU1Ljg1LTUuNDUtOTguNzQtNDguNjMtMTExLjE4LTEwMS44NUwxNDQgMjQxLjMxdjYuODVjMCA4OS42NCA2My45NyAxNjkuNTUgMTUyIDE4MS42OVY0NjRoLTU2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNjBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTE2YzAtOC44NC03LjE2LTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaWNyb3Bob25lQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzNTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNiAxOTJoLTE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY0OGMwIDc0LjgtNjQuNDkgMTM0LjgyLTE0MC43OSAxMjcuMzhDOTYuNzEgMzc2Ljg5IDQ4IDMxNy4xMSA0OCAyNTAuM1YyMDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djQwLjE2YzAgODkuNjQgNjMuOTcgMTY5LjU1IDE1MiAxODEuNjlWNDY0SDk2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNjBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTE2YzAtOC44NC03LjE2LTE2LTE2LTE2aC01NnYtMzMuNzdDMjg1LjcxIDQxOC40NyAzNTIgMzQ0LjkgMzUyIDI1NnYtNDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6TTE3NiAzNTJjNTMuMDIgMCA5Ni00Mi45OCA5Ni05NmgtODUuMzNjLTUuODkgMC0xMC42Ny0zLjU4LTEwLjY3LTh2LTE2YzAtNC40MiA0Ljc4LTggMTAuNjctOEgyNzJ2LTMyaC04NS4zM2MtNS44OSAwLTEwLjY3LTMuNTgtMTAuNjctOHYtMTZjMC00LjQyIDQuNzgtOCAxMC42Ny04SDI3MnYtMzJoLTg1LjMzYy01Ljg5IDAtMTAuNjctMy41OC0xMC42Ny04di0xNmMwLTQuNDIgNC43OC04IDEwLjY3LThIMjcyYzAtNTMuMDItNDIuOTgtOTYtOTYtOTZTODAgNDIuOTggODAgOTZ2MTYwYzAgNTMuMDIgNDIuOTggOTYgOTYgOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pY3JvcGhvbmVTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MzMuODIgNDU4LjFsLTE1Ny44LTEyMS45NkM0ODguNjEgMzEyLjEzIDQ5NiAyODUuMDEgNDk2IDI1NnYtNDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY0OGMwIDE3LjkyLTMuOTYgMzQuOC0xMC43MiA1MC4ybC0yNi41NS0yMC41MmMzLjEtOS40IDUuMjgtMTkuMjIgNS4yOC0yOS42N1Y5NmMwLTUzLjAyLTQyLjk4LTk2LTk2LTk2cy05NiA0Mi45OC05NiA5NnY0NS4zNkw0NS40NyAzLjM3QzM4LjQ5LTIuMDUgMjguNDMtLjggMjMuMDEgNi4xOEwzLjM3IDMxLjQ1Qy0yLjA1IDM4LjQyLS44IDQ4LjQ3IDYuMTggNTMuOWw1ODguMzYgNDU0LjczYzYuOTggNS40MyAxNy4wMyA0LjE3IDIyLjQ2LTIuODFsMTkuNjQtMjUuMjdjNS40MS02Ljk3IDQuMTYtMTcuMDItMi44Mi0yMi40NXpNNDAwIDQ2NGgtNTZ2LTMzLjc3YzExLjY2LTEuNiAyMi44NS00LjU0IDMzLjY3LTguMzFsLTUwLjExLTM4LjczYy02LjcxLjQtMTMuNDEuODctMjAuMzUuMi01NS44NS01LjQ1LTk4Ljc0LTQ4LjYzLTExMS4xOC0xMDEuODVMMTQ0IDI0MS4zMXY2Ljg1YzAgODkuNjQgNjMuOTcgMTY5LjU1IDE1MiAxODEuNjlWNDY0aC01NmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTYwYzguODQgMCAxNi03LjE2IDE2LTE2di0xNmMwLTguODQtNy4xNi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWljcm9waG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzUyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzYgMzUyYzUzLjAyIDAgOTYtNDIuOTggOTYtOTZWOTZjMC01My4wMi00Mi45OC05Ni05Ni05NlM4MCA0Mi45OCA4MCA5NnYxNjBjMCA1My4wMiA0Mi45OCA5NiA5NiA5NnptMTYwLTE2MGgtMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djQ4YzAgNzQuOC02NC40OSAxMzQuODItMTQwLjc5IDEyNy4zOEM5Ni43MSAzNzYuODkgNDggMzE3LjExIDQ4IDI1MC4zVjIwOGMwLTguODQtNy4xNi0xNi0xNi0xNkgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NDAuMTZjMCA4OS42NCA2My45NyAxNjkuNTUgMTUyIDE4MS42OVY0NjRIOTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djE2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTU2di0zMy43N0MyODUuNzEgNDE4LjQ3IDM1MiAzNDQuOSAzNTIgMjU2di00OGMwLTguODQtNy4xNi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWljcm9zY29wZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMzIwaDEydjE2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDQwYzguODQgMCAxNi03LjE2IDE2LTE2di0xNmgxMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJWMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTY0Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYyMjRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMnptMzA0IDEyOGgtMS4yOUM0OTMuMjQgNDEzLjk5IDUxMiAzNjkuMiA1MTIgMzIwYzAtMTA1Ljg4LTg2LjEyLTE5Mi0xOTItMTkydjY0YzcwLjU4IDAgMTI4IDU3LjQyIDEyOCAxMjhzLTU3LjQyIDEyOC0xMjggMTI4SDQ4Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4IDAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNiAwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4em0tMzYwLTMyaDIwOGM0LjQyIDAgOC0zLjU4IDgtOHYtMTZjMC00LjQyLTMuNTgtOC04LThIMTA0Yy00LjQyIDAtOCAzLjU4LTggOHYxNmMwIDQuNDIgMy41OCA4IDggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWludXNDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHpNMTI0IDI5NmMtNi42IDAtMTItNS40LTEyLTEydi01NmMwLTYuNiA1LjQtMTIgMTItMTJoMjY0YzYuNiAwIDEyIDUuNCAxMiAxMnY1NmMwIDYuNi01LjQgMTItMTIgMTJIMTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaW51c1NxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek05MiAyOTZjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNTZjMC02LjYgNS40LTEyIDEyLTEyaDI2NGM2LjYgMCAxMiA1LjQgMTIgMTJ2NTZjMCA2LjYtNS40IDEyLTEyIDEySDkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMjA4SDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzg0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pdHRlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjggNDE2SDQ4Yy04LjggMC0xNiA3LjItMTYgMTZ2NjRjMCA4LjggNy4yIDE2IDE2IDE2aDMyMGM4LjggMCAxNi03LjIgMTYtMTZ2LTY0YzAtOC44LTcuMi0xNi0xNi0xNnptNTctMjA5LjFjLTI3LjItMjIuNi02Ny41LTE5LTkwLjEgOC4ybC0yMC45IDI1LTI5LjYtMTI4LjRjLTE4LTc3LjUtOTUuNC0xMjUuOS0xNzIuOC0xMDhDMzQuMiAyMS42LTE0LjIgOTguOSAzLjcgMTc2LjRMNTEuNiAzODRoMzA5bDcyLjUtODdjMjIuNy0yNy4yIDE5LTY3LjUtOC4xLTkwLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vYmlsZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzIgMEg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDIyNGMyNi41IDAgNDgtMjEuNSA0OC00OFY0OGMwLTI2LjUtMjEuNS00OC00OC00OHpNMTYwIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTExMi0xMDhjMCA2LjYtNS40IDEyLTEyIDEySDYwYy02LjYgMC0xMi01LjQtMTItMTJWNjBjMC02LjYgNS40LTEyIDEyLTEyaDIwMGM2LjYgMCAxMiA1LjQgMTIgMTJ2MzEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb2JpbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyIDBINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyMjRjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTE2MCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb25leUJpbGxBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyIDI4OGgtMTZ2LTg4YzAtNC40Mi0zLjU4LTgtOC04aC0xMy41OGMtNC43NCAwLTkuMzcgMS40LTEzLjMxIDQuMDNsLTE1LjMzIDEwLjIyYTcuOTk0IDcuOTk0IDAgMCAwLTIuMjIgMTEuMDlsOC44OCAxMy4zMWE3Ljk5NCA3Ljk5NCAwIDAgMCAxMS4wOSAyLjIybC40Ny0uMzFWMjg4aC0xNmMtNC40MiAwLTggMy41OC04IDh2MTZjMCA0LjQyIDMuNTggOCA4IDhoNjRjNC40MiAwIDgtMy41OCA4LTh2LTE2YzAtNC40Mi0zLjU4LTgtOC04ek02MDggNjRIMzJDMTQuMzMgNjQgMCA3OC4zMyAwIDk2djMyMGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDU3NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjk2YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTQ4IDQwMHYtNjRjMzUuMzUgMCA2NCAyOC42NSA2NCA2NEg0OHptMC0yMjR2LTY0aDY0YzAgMzUuMzUtMjguNjUgNjQtNjQgNjR6bTI3MiAxOTJjLTUzLjAyIDAtOTYtNTAuMTUtOTYtMTEyIDAtNjEuODYgNDIuOTgtMTEyIDk2LTExMnM5NiA1MC4xNCA5NiAxMTJjMCA2MS44Ny00MyAxMTItOTYgMTEyem0yNzIgMzJoLTY0YzAtMzUuMzUgMjguNjUtNjQgNjQtNjR2NjR6bTAtMjI0Yy0zNS4zNSAwLTY0LTI4LjY1LTY0LTY0aDY0djY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb25leUJpbGxXYXZlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyMS4xNiA1NC40NkM1ODIuMzcgMzguMTkgNTQzLjU1IDMyIDUwNC43NSAzMmMtMTIzLjE3LS4wMS0yNDYuMzMgNjIuMzQtMzY5LjUgNjIuMzQtMzAuODkgMC02MS43Ni0zLjkyLTkyLjY1LTEzLjcyLTMuNDctMS4xLTYuOTUtMS42Mi0xMC4zNS0xLjYyQzE1LjA0IDc5IDAgOTIuMzIgMCAxMTAuODF2MzE3LjI2YzAgMTIuNjMgNy4yMyAyNC42IDE4Ljg0IDI5LjQ2QzU3LjYzIDQ3My44MSA5Ni40NSA0ODAgMTM1LjI1IDQ4MGMxMjMuMTcgMCAyNDYuMzQtNjIuMzUgMzY5LjUxLTYyLjM1IDMwLjg5IDAgNjEuNzYgMy45MiA5Mi42NSAxMy43MiAzLjQ3IDEuMSA2Ljk1IDEuNjIgMTAuMzUgMS42MiAxNy4yMSAwIDMyLjI1LTEzLjMyIDMyLjI1LTMxLjgxVjgzLjkzYy0uMDEtMTIuNjQtNy4yNC0yNC42LTE4Ljg1LTI5LjQ3ek0zMjAgMzUyYy00NC4xOSAwLTgwLTQyLjk5LTgwLTk2IDAtNTMuMDIgMzUuODItOTYgODAtOTZzODAgNDIuOTggODAgOTZjMCA1My4wMy0zNS44MyA5Ni04MCA5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9uZXlCaWxsV2F2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjEuMTYgNTQuNDZDNTgyLjM3IDM4LjE5IDU0My41NSAzMiA1MDQuNzUgMzJjLTEyMy4xNy0uMDEtMjQ2LjMzIDYyLjM0LTM2OS41IDYyLjM0LTMwLjg5IDAtNjEuNzYtMy45Mi05Mi42NS0xMy43Mi0zLjQ3LTEuMS02Ljk1LTEuNjItMTAuMzUtMS42MkMxNS4wNCA3OSAwIDkyLjMyIDAgMTEwLjgxdjMxNy4yNmMwIDEyLjYzIDcuMjMgMjQuNiAxOC44NCAyOS40NkM1Ny42MyA0NzMuODEgOTYuNDUgNDgwIDEzNS4yNSA0ODBjMTIzLjE3IDAgMjQ2LjM0LTYyLjM1IDM2OS41MS02Mi4zNSAzMC44OSAwIDYxLjc2IDMuOTIgOTIuNjUgMTMuNzIgMy40NyAxLjEgNi45NSAxLjYyIDEwLjM1IDEuNjIgMTcuMjEgMCAzMi4yNS0xMy4zMiAzMi4yNS0zMS44MVY4My45M2MtLjAxLTEyLjY0LTcuMjQtMjQuNi0xOC44NS0yOS40N3pNNDggMTMyLjIyYzIwLjEyIDUuMDQgNDEuMTIgNy41NyA2Mi43MiA4LjkzQzEwNC44NCAxNzAuNTQgNzkgMTkyLjY5IDQ4IDE5Mi42OXYtNjAuNDd6bTAgMjg1di00Ny43OGMzNC4zNyAwIDYyLjE4IDI3LjI3IDYzLjcxIDYxLjQtMjIuNTMtMS44MS00My41OS02LjMxLTYzLjcxLTEzLjYyek0zMjAgMzUyYy00NC4xOSAwLTgwLTQyLjk5LTgwLTk2IDAtNTMuMDIgMzUuODItOTYgODAtOTZzODAgNDIuOTggODAgOTZjMCA1My4wMy0zNS44MyA5Ni04MCA5NnptMjcyIDI3Ljc4Yy0xNy41Mi00LjM5LTM1LjcxLTYuODUtNTQuMzItOC40NCA1Ljg3LTI2LjA4IDI3LjUtNDUuODggNTQuMzItNDkuMjh2NTcuNzJ6bTAtMjM2LjExYy0zMC44OS0zLjkxLTU0Ljg2LTI5LjctNTUuODEtNjEuNTUgMTkuNTQgMi4xNyAzOC4wOSA2LjIzIDU1LjgxIDEyLjY2djQ4Ljg5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb25leUJpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjA4IDY0SDMyQzE0LjMzIDY0IDAgNzguMzMgMCA5NnYzMjBjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg1NzZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlY5NmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyek00OCA0MDB2LTY0YzM1LjM1IDAgNjQgMjguNjUgNjQgNjRINDh6bTAtMjI0di02NGg2NGMwIDM1LjM1LTI4LjY1IDY0LTY0IDY0em0yNzIgMTc2Yy00NC4xOSAwLTgwLTQyLjk5LTgwLTk2IDAtNTMuMDIgMzUuODItOTYgODAtOTZzODAgNDIuOTggODAgOTZjMCA1My4wMy0zNS44MyA5Ni04MCA5NnptMjcyIDQ4aC02NGMwLTM1LjM1IDI4LjY1LTY0IDY0LTY0djY0em0wLTIyNGMtMzUuMzUgMC02NC0yOC42NS02NC02NGg2NHY2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9uZXlDaGVja0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MDggMzJIMzJDMTQuMzMgMzIgMCA0Ni4zMyAwIDY0djM4NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDU3NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTE3NiAzMjcuODhWMzQ0YzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LTh2LTE2LjI5Yy0xMS4yOS0uNTgtMjIuMjctNC41Mi0zMS4zNy0xMS4zNS0zLjktMi45My00LjEtOC43Ny0uNTctMTIuMTRsMTEuNzUtMTEuMjFjMi43Ny0yLjY0IDYuODktMi43NiAxMC4xMy0uNzMgMy44NyAyLjQyIDguMjYgMy43MiAxMi44MiAzLjcyaDI4LjExYzYuNSAwIDExLjgtNS45MiAxMS44LTEzLjE5IDAtNS45NS0zLjYxLTExLjE5LTguNzctMTIuNzNsLTQ1LTEzLjVjLTE4LjU5LTUuNTgtMzEuNTgtMjMuNDItMzEuNTgtNDMuMzkgMC0yNC41MiAxOS4wNS00NC40NCA0Mi42Ny00NS4wN1YxNTJjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTYuMjljMTEuMjkuNTggMjIuMjcgNC41MSAzMS4zNyAxMS4zNSAzLjkgMi45MyA0LjEgOC43Ny41NyAxMi4xNGwtMTEuNzUgMTEuMjFjLTIuNzcgMi42NC02Ljg5IDIuNzYtMTAuMTMuNzMtMy44Ny0yLjQzLTguMjYtMy43Mi0xMi44Mi0zLjcyaC0yOC4xMWMtNi41IDAtMTEuOCA1LjkyLTExLjggMTMuMTkgMCA1Ljk1IDMuNjEgMTEuMTkgOC43NyAxMi43M2w0NSAxMy41YzE4LjU5IDUuNTggMzEuNTggMjMuNDIgMzEuNTggNDMuMzkgMCAyNC41My0xOS4wNSA0NC40NC00Mi42NyA0NS4wN3pNNDE2IDMxMmMwIDQuNDItMy41OCA4LTggOEgyOTZjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGgxMTJjNC40MiAwIDggMy41OCA4IDh2MTZ6bTE2MCAwYzAgNC40Mi0zLjU4IDgtOCA4aC04MGMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDgwYzQuNDIgMCA4IDMuNTggOCA4djE2em0wLTk2YzAgNC40Mi0zLjU4IDgtOCA4SDI5NmMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDI3MmM0LjQyIDAgOCAzLjU4IDggOHYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9uZXlDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQ0OGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDU3NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjEyOEgwdjMyMHptNDQ4LTIwOGMwLTguODQgNy4xNi0xNiAxNi0xNmg5NmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYzMmMwIDguODQtNy4xNiAxNi0xNiAxNmgtOTZjLTguODQgMC0xNi03LjE2LTE2LTE2di0zMnptMCAxMjBjMC00LjQyIDMuNTgtOCA4LThoMTEyYzQuNDIgMCA4IDMuNTggOCA4djE2YzAgNC40Mi0zLjU4IDgtOCA4SDQ1NmMtNC40MiAwLTgtMy41OC04LTh2LTE2ek02NCAyNjRjMC00LjQyIDMuNTgtOCA4LThoMzA0YzQuNDIgMCA4IDMuNTggOCA4djE2YzAgNC40Mi0zLjU4IDgtOCA4SDcyYy00LjQyIDAtOC0zLjU4LTgtOHYtMTZ6bTAgOTZjMC00LjQyIDMuNTgtOCA4LThoMTc2YzQuNDIgMCA4IDMuNTggOCA4djE2YzAgNC40Mi0zLjU4IDgtOCA4SDcyYy00LjQyIDAtOC0zLjU4LTgtOHYtMTZ6TTYyNCAzMkgxNkM3LjE2IDMyIDAgMzkuMTYgMCA0OHY0OGg2NDBWNDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vbnVtZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OCA0NDhIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDM1MmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bS03OC44Ni0zNDcuMjZhMzEuOTcgMzEuOTcgMCAwIDAtOS4yMS0xOS40NEwyMDMuMzEgNC42OWMtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjMgMGwtNzYuNiA3Ni42MWEzMS45NyAzMS45NyAwIDAgMC05LjIxIDE5LjQ0TDY0IDQxNmgyNTZsLTMwLjg2LTMxNS4yNnpNMjQwIDMwNy4yYzAgNi40LTYuNCAxMi44LTEyLjggMTIuOGgtNzAuNGMtNi40IDAtMTIuOC02LjQtMTIuOC0xMi44di0zOC40YzAtNi40IDYuNC0xMi44IDEyLjgtMTIuOGg3MC40YzYuNCAwIDEyLjggNi40IDEyLjggMTIuOHYzOC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4My4yMTEgNTEyYzc4Ljk2MiAwIDE1MS4wNzktMzUuOTI1IDE5OC44NTctOTQuNzkyIDcuMDY4LTguNzA4LS42MzktMjEuNDMtMTEuNTYyLTE5LjM1LTEyNC4yMDMgMjMuNjU0LTIzOC4yNjItNzEuNTc2LTIzOC4yNjItMTk2Ljk1NCAwLTcyLjIyMiAzOC42NjItMTM4LjYzNSAxMDEuNDk4LTE3NC4zOTQgOS42ODYtNS41MTIgNy4yNS0yMC4xOTctMy43NTYtMjIuMjNBMjU4LjE1NiAyNTguMTU2IDAgMCAwIDI4My4yMTEgMGMtMTQxLjMwOSAwLTI1NiAxMTQuNTExLTI1NiAyNTYgMCAxNDEuMzA5IDExNC41MTEgMjU2IDI1NiAyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vcnRhclBlc3RsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDEuNTQgNjAuOTFjMTcuMjItMTcuMjIgMTIuNTEtNDYuMjUtOS4yNy01Ny4xNGEzNS42OTYgMzUuNjk2IDAgMCAwLTM3LjM3IDMuMzdMMjUxLjA5IDE2MGgxNTEuMzdsOTkuMDgtOTkuMDl6TTQ5NiAxOTJIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2YzAgODAuOTggNTAuMiAxNTAuMTEgMTIxLjEzIDE3OC4zMi0xMi43NiAxNi44Ny0yMS43MiAzNi44LTI0Ljk1IDU4LjY5LTEuNDYgOS45MiA2LjA0IDE4Ljk4IDE2LjA3IDE4Ljk4aDIyMy41YzEwLjAzIDAgMTcuNTMtOS4wNiAxNi4wNy0xOC45OC0zLjIyLTIxLjg5LTEyLjE4LTQxLjgyLTI0Ljk1LTU4LjY5QzQyOS44IDQwNi4xMSA0ODAgMzM2Ljk4IDQ4MCAyNTZoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb3NxdWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0ODBjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg2NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjE2MEgwdjMyMHptNTc5LjE2LTE5MmMxNy44Ni0xNy4zOSAyOC44NC0zNy4zNCAyOC44NC01OC45MSAwLTUyLjg2LTQxLjc5LTkzLjc5LTg3LjkyLTEyMi45LTQxLjk0LTI2LjQ3LTgwLjYzLTU3Ljc3LTExMS45Ni05Ni4yMkw0MDAgMGwtOC4xMiA5Ljk3Yy0zMS4zMyAzOC40NS03MC4wMSA2OS43Ni0xMTEuOTYgOTYuMjJDMjMzLjc5IDEzNS4zIDE5MiAxNzYuMjMgMTkyIDIyOS4wOWMwIDIxLjU3IDEwLjk4IDQxLjUyIDI4Ljg0IDU4LjkxaDM1OC4zMnpNNjA4IDMyMEgxOTJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MTI4YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJ2LTY0YzAtMTcuNjcgMTQuMzMtMzIgMzItMzJzMzIgMTQuMzMgMzIgMzJ2NjRoNjR2LTcyYzAtNDggNDgtNzIgNDgtNzJzNDggMjQgNDggNzJ2NzJoNjR2LTY0YzAtMTcuNjcgMTQuMzMtMzIgMzItMzJzMzIgMTQuMzMgMzIgMzJ2NjRoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYzNTJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpNNjQgMFMwIDMyIDAgOTZ2MzJoMTI4Vjk2YzAtNjQtNjQtOTYtNjQtOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vdG9yY3ljbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyLjkgMTkyYy0xNC45LS4xLTI5LjEgMi4zLTQyLjQgNi45TDQzNy42IDE0NEg1MjBjMTMuMyAwIDI0LTEwLjcgMjQtMjRWODhjMC0xMy4zLTEwLjctMjQtMjQtMjRoLTQ1LjNjLTYuOCAwLTEzLjMgMi45LTE3LjggNy45bC0zNy41IDQxLjctMjIuOC0zOEMzOTIuMiA2OC40IDM4NC40IDY0IDM3NiA2NGgtODBjLTguOCAwLTE2IDcuMi0xNiAxNnYxNmMwIDguOCA3LjIgMTYgMTYgMTZoNjYuNGwxOS4yIDMySDIyNy45Yy0xNy43LTIzLjEtNDQuOS00MC05OS45LTQwSDcyLjVDNTkgMTA0IDQ3LjcgMTE1IDQ4IDEyOC41Yy4yIDEzIDEwLjkgMjMuNSAyNCAyMy41aDU2YzI0LjUgMCAzOC43IDEwLjkgNDcuOCAyNC44bC0xMS4zIDIwLjVjLTEzLTMuOS0yNi45LTUuNy00MS4zLTUuMkM1NS45IDE5NC41IDEuNiAyNDkuNiAwIDMxN2MtMS42IDcyLjEgNTYuMyAxMzEgMTI4IDEzMSA1OS42IDAgMTA5LjctNDAuOCAxMjQtOTZoODQuMmMxMy43IDAgMjQuNi0xMS40IDI0LTI1LjEtMi4xLTQ3LjEgMTcuNS05My43IDU2LjItMTI1bDEyLjUgMjAuOGMtMjcuNiAyMy43LTQ1LjEgNTguOS00NC44IDk4LjIuNSA2OS42IDU3LjIgMTI2LjUgMTI2LjggMTI3LjEgNzEuNi43IDEyOS44LTU3LjUgMTI5LjItMTI5LjEtLjctNjkuNi01Ny42LTEyNi40LTEyNy4yLTEyNi45ek0xMjggNDAwYy00NC4xIDAtODAtMzUuOS04MC04MHMzNS45LTgwIDgwLTgwYzQuMiAwIDguNC4zIDEyLjUgMUw5OSAzMTYuNGMtOC44IDE2IDIuOCAzNS42IDIxIDM1LjZoODEuM2MtMTIuNCAyOC4yLTQwLjYgNDgtNzMuMyA0OHptNDYzLjktNzUuNmMtMi4yIDQwLjYtMzUgNzMuNC03NS41IDc1LjUtNDYuMSAyLjUtODQuNC0zNC4zLTg0LjQtNzkuOSAwLTIxLjQgOC40LTQwLjggMjIuMS01NS4xbDQ5LjQgODIuNGM0LjUgNy42IDE0LjQgMTAgMjIgNS41bDEzLjctOC4yYzcuNi00LjUgMTAtMTQuNCA1LjUtMjJsLTQ4LjYtODAuOWM1LjItMS4xIDEwLjUtMS42IDE1LjktMS42IDQ1LjYtLjEgODIuMyAzOC4yIDc5LjkgODQuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW91bnRhaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjM0LjkyIDQ2Mi43bC0yODgtNDQ4QzM0MS4wMyA1LjU0IDMzMC44OSAwIDMyMCAwcy0yMS4wMyA1LjU0LTI2LjkyIDE0LjdsLTI4OCA0NDhhMzIuMDAxIDMyLjAwMSAwIDAgMC0xLjE3IDMyLjY0QTMyLjAwNCAzMi4wMDQgMCAwIDAgMzIgNTEyaDU3NmMxMS43MSAwIDIyLjQ4LTYuMzkgMjguMDktMTYuNjdhMzEuOTgzIDMxLjk4MyAwIDAgMC0xLjE3LTMyLjYzek0zMjAgOTEuMThMNDA1LjM5IDIyNEgzMjBsLTY0IDY0LTM4LjA2LTM4LjA2TDMyMCA5MS4xOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW91c2VQb2ludGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwMi4xODkgMzI5LjEyNkgxOTYuMTA1bDU1LjgzMSAxMzUuOTkzYzMuODg5IDkuNDI4LS41NTUgMTkuOTk5LTkuNDQ0IDIzLjk5OWwtNDkuMTY1IDIxLjQyN2MtOS4xNjUgNC0xOS40NDMtLjU3MS0yMy4zMzItOS43MTRsLTUzLjA1My0xMjkuMTM2LTg2LjY2NCA4OS4xMzhDMTguNzI5IDQ3Mi43MSAwIDQ2My41NTQgMCA0NDcuOTc3VjE4LjI5OUMwIDEuODk5IDE5LjkyMS02LjA5NiAzMC4yNzcgNS40NDNsMjg0LjQxMiAyOTIuNTQyYzExLjQ3MiAxMS4xNzkgMy4wMDcgMzEuMTQxLTEyLjUgMzEuMTQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb3VzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDM1MmExNjAgMTYwIDAgMCAwIDE2MCAxNjBoNjRhMTYwIDE2MCAwIDAgMCAxNjAtMTYwVjIyNEgwek0xNzYgMGgtMTZBMTYwIDE2MCAwIDAgMCAwIDE2MHYzMmgxNzZ6bTQ4IDBoLTE2djE5MmgxNzZ2LTMyQTE2MCAxNjAgMCAwIDAgMjI0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU11Z0hvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjcuMSAxNDYuNWMxLjMgNy43IDggMTMuNSAxNiAxMy41aDE2LjVjOS44IDAgMTcuNi04LjUgMTYuMy0xOC0zLjgtMjguMi0xNi40LTU0LjItMzYuNi03NC43LTE0LjQtMTQuNy0yMy42LTMzLjMtMjYuNC01My41QzExMS44IDUuOSAxMDUgMCA5Ni44IDBIODAuNEM3MC42IDAgNjMgOC41IDY0LjEgMThjMy45IDMxLjkgMTggNjEuMyA0MC42IDg0LjQgMTIgMTIuMiAxOS43IDI3LjUgMjIuNCA0NC4xem0xMTIgMGMxLjMgNy43IDggMTMuNSAxNiAxMy41aDE2LjVjOS44IDAgMTcuNi04LjUgMTYuMy0xOC0zLjgtMjguMi0xNi40LTU0LjItMzYuNi03NC43LTE0LjQtMTQuNy0yMy42LTMzLjMtMjYuNC01My41QzIyMy44IDUuOSAyMTcgMCAyMDguOCAwaC0xNi40Yy05LjggMC0xNy41IDguNS0xNi4zIDE4IDMuOSAzMS45IDE4IDYxLjMgNDAuNiA4NC40IDEyIDEyLjIgMTkuNyAyNy41IDIyLjQgNDQuMXpNNDAwIDE5MkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTkyYzAgNTMgNDMgOTYgOTYgOTZoMTkyYzUzIDAgOTYtNDMgOTYtOTZoMTZjNjEuOCAwIDExMi01MC4yIDExMi0xMTJzLTUwLjItMTEyLTExMi0xMTJ6bTAgMTYwaC0xNnYtOTZoMTZjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU11c2ljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3MC4zOCAxLjUxTDE1MC40MSA5NkEzMiAzMiAwIDAgMCAxMjggMTI2LjUxdjI2MS40MUExMzkgMTM5IDAgMCAwIDk2IDM4NGMtNTMgMC05NiAyOC42Ni05NiA2NHM0MyA2NCA5NiA2NCA5Ni0yOC42NiA5Ni02NFYyMTQuMzJsMjU2LTc1djE4NC42MWExMzguNCAxMzguNCAwIDAgMC0zMi0zLjkzYy01MyAwLTk2IDI4LjY2LTk2IDY0czQzIDY0IDk2IDY0IDk2LTI4LjY1IDk2LTY0VjMyYTMyIDMyIDAgMCAwLTQxLjYyLTMwLjQ5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOZXR3b3JrV2lyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQwIDI2NHYtMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMzQ0di00MGg3MmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJIMjI0Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjEyOGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDcydjQwSDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmgxMDR2NDBINjRjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MTI4YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMTYwYzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMzUyYzAtMTcuNjctMTQuMzMtMzItMzItMzJoLTU2di00MGgzMDR2NDBoLTU2Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjEyOGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDE2MGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjM1MmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC01NnYtNDBoMTA0YzguODQgMCAxNi03LjE2IDE2LTE2ek0yNTYgMTI4VjY0aDEyOHY2NEgyNTZ6bS02NCAzMjBIOTZ2LTY0aDk2djY0em0zNTIgMGgtOTZ2LTY0aDk2djY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOZXV0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI4OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDE3NmMwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NFMwIDk2LjUgMCAxNzZjMCA2OC41IDQ3LjkgMTI1LjkgMTEyIDE0MC40VjQ2OGMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEyVjMxNi40YzY0LjEtMTQuNSAxMTItNzEuOSAxMTItMTQwLjR6bS0xNDQgODBjLTQ0LjEgMC04MC0zNS45LTgwLTgwczM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOZXdzcGFwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTUyIDY0SDg4Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2OEgyNGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djI3MmMwIDMwLjkyOCAyNS4wNzIgNTYgNTYgNTZoNDcyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWODhjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0ek01NiA0MDBhOCA4IDAgMCAxLTgtOFYxNDRoMTZ2MjQ4YTggOCAwIDAgMS04IDh6bTIzNi0xNkgxNDBjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LThjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxNTJjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY4YzAgNi42MjctNS4zNzMgMTItMTIgMTJ6bTIwOCAwSDM0OGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtOGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDE1MmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjhjMCA2LjYyNy01LjM3MyAxMi0xMiAxMnptLTIwOC05NkgxNDBjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LThjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxNTJjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY4YzAgNi42MjctNS4zNzMgMTItMTIgMTJ6bTIwOCAwSDM0OGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtOGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDE1MmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjhjMCA2LjYyNy01LjM3MyAxMi0xMiAxMnptMC05NkgxNDBjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTQwYzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMzYwYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2NDBjMCA2LjYyNy01LjM3MyAxMi0xMiAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTm90RXF1YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDIwOGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC0yMy44OGw1MS44Ny02Ni44MWM1LjM3LTcuMDIgNC4wNC0xNy4wNi0yLjk3LTIyLjQzTDQxNS42MSAzLjNjLTcuMDItNS4zOC0xNy4wNi00LjA0LTIyLjQ0IDIuOTdMMzExLjA5IDExMkgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDIwNC41NmwtNzQuNTMgOTZIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg1NS40OWwtNTEuODcgNjYuODFjLTUuMzcgNy4wMS00LjA0IDE3LjA1IDIuOTcgMjIuNDNMNjQgNTA4LjdjNy4wMiA1LjM4IDE3LjA2IDQuMDQgMjIuNDMtMi45N0wxNjguNTIgNDAwSDQxNmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMySDI0My4wNWw3NC41My05Nkg0MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5vdGVzTWVkaWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYgNjRoLTgwYzAtMzUuMy0yOC43LTY0LTY0LTY0cy02NCAyOC43LTY0IDY0SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyODhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xOTIgNDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjQtMjQtMTAuNy0yNC0yNCAxMC43LTI0IDI0LTI0em05NiAzMDRjMCA0LjQtMy42IDgtOCA4aC01NnY1NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTU2aC01NmMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoNTZ2LTU2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2NTZoNTZjNC40IDAgOCAzLjYgOCA4djQ4em0wLTE5MmMwIDQuNC0zLjYgOC04IDhIMTA0Yy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxNzZjNC40IDAgOCAzLjYgOCA4djE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPYmplY3RHcm91cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAgMTI4Vjk2aDIwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJWNDRjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjBINjRWNDRjMC02LjYyNy01LjM3My0xMi0xMi0xMkgxMkM1LjM3MyAzMiAwIDM3LjM3MyAwIDQ0djQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjB2MzIwSDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtMjBoMzg0djIwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtMjBWMTI4ek05NiAyNzZWMTQwYzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTY4YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MTM2YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMTA4Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEyem0zMjAgOTZjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkgyMzZjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTUyaDcyYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtNzJoODRjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYxMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9iamVjdFVuZ3JvdXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzIwdjI2YTYgNiAwIDAgMS02IDZINmE2IDYgMCAwIDEtNi02di01MmE2IDYgMCAwIDEgNi02aDI2Vjk2SDZhNiA2IDAgMCAxLTYtNlYzOGE2IDYgMCAwIDEgNi02aDUyYTYgNiAwIDAgMSA2IDZ2MjZoMjg4VjM4YTYgNiAwIDAgMSA2LTZoNTJhNiA2IDAgMCAxIDYgNnY1MmE2IDYgMCAwIDEtNiA2aC0yNnYxOTJoMjZhNiA2IDAgMCAxIDYgNnY1MmE2IDYgMCAwIDEtNiA2aC01MmE2IDYgMCAwIDEtNi02di0yNkg2NHptNDgwLTY0di0zMmgyNmE2IDYgMCAwIDAgNi02di01MmE2IDYgMCAwIDAtNi02aC01MmE2IDYgMCAwIDAtNiA2djI2SDQwOHY3Mmg4YzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHY2NGMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRoLTY0Yy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjR2LThIMTkydjcyaC0yNmE2IDYgMCAwIDAtNiA2djUyYTYgNiAwIDAgMCA2IDZoNTJhNiA2IDAgMCAwIDYtNnYtMjZoMjg4djI2YTYgNiAwIDAgMCA2IDZoNTJhNiA2IDAgMCAwIDYtNnYtNTJhNiA2IDAgMCAwLTYtNmgtMjZWMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPaWxDYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI5LjggMTYwLjMxTDQxNiAyMjRsLTUwLjQ5LTI1LjI0YTY0LjA3IDY0LjA3IDAgMCAwLTI4LjYyLTYuNzZIMjgwdi00OGg1NmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTc2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmg1NnY0OGgtNTZMMzcuNzIgMTY2Ljg2YTMxLjkgMzEuOSAwIDAgMC01Ljc5LS41M0MxNC42NyAxNjYuMzMgMCAxODAuMzYgMCAxOTguMzR2OTQuOTVjMCAxNS40NiAxMS4wNiAyOC43MiAyNi4yOCAzMS40OEw5NiAzMzcuNDZWMzg0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMjc0LjYzYzguNTUgMCAxNi43NS0zLjQyIDIyLjc2LTkuNTFsMjEyLjI2LTIxNC43NWMxLjUtMS41IDIuMzQtMy41NCAyLjM0LTUuNjZWMTY4Yy4wMS01LjMxLTUuMDgtOS4xNS0xMC4xOS03LjY5ek05NiAyODguNjdsLTQ4LTguNzN2LTYyLjQzbDQ4IDguNzN2NjIuNDN6bTQ1My4zMyA4NC42NmMwIDIzLjU2IDE5LjEgNDIuNjcgNDIuNjcgNDIuNjdzNDIuNjctMTkuMSA0Mi42Ny00Mi42N1M1OTIgMjg4IDU5MiAyODhzLTQyLjY3IDYxLjc3LTQyLjY3IDg1LjMzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjAuNiA2MC45NGExMC40MyAxMC40MyAwIDAgMCAxNC43NiAwbDIxLjU3LTIxLjU2YTEwLjQzIDEwLjQzIDAgMCAwIDAtMTQuNzZMMzc1LjM1IDMuMDZjLTQuMDgtNC4wNy0xMC42OC00LjA3LTE0Ljc2IDBsLTIxLjU3IDIxLjU2YTEwLjQzIDEwLjQzIDAgMCAwIDAgMTQuNzZsMjEuNTggMjEuNTZ6TTQxMi4xMSAxOTJjLTI2LjY5IDAtNTEuNzcgMTAuMzktNzAuNjQgMjkuMjVsLTI0LjI1IDI0LjI1Yy02Ljc4IDYuNzctMTUuNzggMTAuNS0yNS4zOCAxMC41SDI0NWMxMC41NC0yMi4xIDE0LjE3LTQ4LjExIDcuNzMtNzUuMjMtMTAuMS00Mi41NS00Ni4zNi03Ni4xMS04OS41Mi04My4xOS0zNi4xNS01LjkzLTcwLjkgNS4wNC05Ni4wMSAyOC43OC03LjM2IDYuOTYtNi45NyAxOC44NSAxLjEyIDI0LjkzbDI2LjE1IDE5LjYzYzUuNzIgNC4zIDEzLjY2IDQuMzIgMTkuMi0uMjEgOC40NS02LjkgMTkuMDItMTAuNzEgMzAuMjctMTAuNzEgMjYuNDcgMCA0OC4wMSAyMS41MyA0OC4wMSA0OHMtMjEuNTQgNDgtNDguMDEgNDhoLTMxLjljLTExLjk2IDAtMTkuNzQgMTIuNTgtMTQuMzkgMjMuMjhsMTYuMDkgMzIuMTdjMi41MyA1LjA2IDcuNiA4LjEgMTMuMTcgOC41NWgzMy4wM2MzNS4zIDAgNjQuMDEgMjguNyA2NC4wMSA2NHMtMjguNzEgNjQtNjQuMDEgNjRjLTk2LjAyIDAtMTIyLjM1LTU0LjAyLTE0NS4xNS05Mi4wMy00LjUzLTcuNTUtMTQuNzctMy41OC0xNC43OSA1LjIyQy0uMDkgNDE2IDQxLjEzIDUxMiAxNTkuOTQgNTEyYzcwLjU5IDAgMTI4LjAyLTU3LjQyIDEyOC4wMi0xMjggMC0yMy40Mi02Ljc4LTQ1LjEtMTcuODEtNjRoMjEuNjljMjYuNjkgMCA1MS43Ny0xMC4zOSA3MC42NC0yOS4yNWwyNC4yNS0yNC4yNWM2Ljc4LTYuNzcgMTUuNzgtMTAuNSAyNS4zOC0xMC41IDE5Ljc4IDAgMzUuODggMTYuMDkgMzUuODggMzUuODhWMzkyYzAgMTMuMjMtMTguNzcgMjQtMzIuMDEgMjQtMzkuNCAwLTY2LjY3LTI0LjI0LTgxLjgyLTQyLjg5LTQuNzctNS44Ny0xNC4yLTIuNTQtMTQuMiA1LjAyVjQxNnMwIDY0IDk2LjAyIDY0YzQ4LjU0IDAgOTYuMDItMzkuNDcgOTYuMDItODhWMjkxLjg4YzAtNTUuMDgtNDQuOC05OS44OC05OS44OS05OS44OHptNDIuMTgtMTI0LjczYy04NS41NSA2NS4xMi0xNjkuMDUgMi43NS0xNzIuNTguMDUtNi4wMi00LjYyLTE0LjQ0LTQuMzgtMjAuMTQuNTUtNS43NCA0LjkyLTcuMjcgMTMuMTctMy42NiAxOS44IDEuNjEgMi45NSA0MC4zNyA3Mi4zNCAxMTguOCA3Mi4zNCA3OS45MiAwIDk4Ljc4LTMxLjM2IDEwMS43NS0zNy42NiAxLjAyLTIuMTIgMS41My00LjQ3IDEuNTMtNi44M1Y4MGMwLTEzLjIyLTE1LjE0LTIwLjY5LTI1LjctMTIuNzN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU90dGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYwOCAzMmgtMzJsLTEzLjI1LTEzLjI1QTYzLjk3IDYzLjk3IDAgMCAwIDUxNy40OSAwSDQ5N2MtMTEuMTQgMC0yMi4wOCAyLjkxLTMxLjc1IDguNDNMMzEyIDk2aC01NkMxNDkuOTYgOTYgNjQgMTgxLjk2IDY0IDI4OHYxLjYxYzAgMzIuNzUtMTYgNjIuMTQtMzkuNTYgODQuODktMTguMTkgMTcuNTgtMjguMSA0My42OC0yMy4xOSA3MS44IDYuNzYgMzguOCA0Mi45IDY1LjcgODIuMjggNjUuN0gxOTJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnMtMTQuMzMtMzItMzItMzJIODBjLTguODMgMC0xNi03LjE3LTE2LTE2czcuMTctMTYgMTYtMTZoMjI0YzguODQgMCAxNi03LjE2IDE2LTE2di0xNmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC02NGwxNDkuNDktODAuNUw0NDggNDE2aDgwYzguODQgMCAxNi03LjE2IDE2LTE2di0xNmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC0yOC4yMmwtNTUuMTEtMTEwLjIxTDUyMS4xNCAxOTJINTQ0YzUzLjAyIDAgOTYtNDIuOTggOTYtOTZWNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptLTk2IDE2YzguODQgMCAxNiA3LjE2IDE2IDE2cy03LjE2IDE2LTE2IDE2LTE2LTcuMTYtMTYtMTYgNy4xNi0xNiAxNi0xNnptMzIgOTZoLTM0Ljk2TDQwNy4yIDE5OC44NGwtMTMuNzctMjcuNTVMNTEyIDExMmg3Ny4wNWMtNi42MiAxOC41OC0yNC4yMiAzMi00NS4wNSAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT3V0ZGVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDAuNjkgMzYzLjI5YzEwIDEwIDI3LjMxIDIuOTMgMjcuMzEtMTEuMzFWMTYwYzAtMTQuMzItMTcuMzMtMjEuMzEtMjcuMzEtMTEuMzFsLTk2IDk2YTE2IDE2IDAgMCAwIDAgMjIuNjJ6TTQzMiA0MTZIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMy4xNy0xMjhIMjA0LjgzQTEyLjgyIDEyLjgyIDAgMCAwIDE5MiAzMDAuODN2MzguMzRBMTIuODIgMTIuODIgMCAwIDAgMjA0LjgzIDM1MmgyMzAuMzRBMTIuODIgMTIuODIgMCAwIDAgNDQ4IDMzOS4xN3YtMzguMzRBMTIuODIgMTIuODIgMCAwIDAgNDM1LjE3IDI4OHptMC0xMjhIMjA0LjgzQTEyLjgyIDEyLjgyIDAgMCAwIDE5MiAxNzIuODN2MzguMzRBMTIuODIgMTIuODIgMCAwIDAgMjA0LjgzIDIyNGgyMzAuMzRBMTIuODIgMTIuODIgMCAwIDAgNDQ4IDIxMS4xN3YtMzguMzRBMTIuODIgMTIuODIgMCAwIDAgNDM1LjE3IDE2MHpNNDMyIDMySDE2QTE2IDE2IDAgMCAwIDAgNDh2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYWdlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggNjRINjRhNjQgNjQgMCAwIDAtNjQgNjR2MjU2YTY0IDY0IDAgMCAwIDY0IDY0aDM4NGE2NCA2NCAwIDAgMCA2NC02NFYxMjhhNjQgNjQgMCAwIDAtNjQtNjR6TTE2MCAzNjhIODBhMTYgMTYgMCAwIDEtMTYtMTZ2LTE2YTE2IDE2IDAgMCAxIDE2LTE2aDgwem0xMjgtMTZhMTYgMTYgMCAwIDEtMTYgMTZoLTgwdi00OGg4MGExNiAxNiAwIDAgMSAxNiAxNnptMTYwLTEyOGEzMiAzMiAwIDAgMS0zMiAzMkg5NmEzMiAzMiAwIDAgMS0zMi0zMnYtNjRhMzIgMzIgMCAwIDEgMzItMzJoMzIwYTMyIDMyIDAgMCAxIDMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYWludEJydXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2Ny4wMiAzMDkuMzRjLTQwLjEyIDIuNTgtNzYuNTMgMTcuODYtOTcuMTkgNzIuMy0yLjM1IDYuMjEtOCA5Ljk4LTE0LjU5IDkuOTgtMTEuMTEgMC00NS40Ni0yNy42Ny01NS4yNS0zNC4zNUMwIDQzOS42MiAzNy45MyA1MTIgMTI4IDUxMmM3NS44NiAwIDEyOC00My43NyAxMjgtMTIwLjE5IDAtMy4xMS0uNjUtNi4wOC0uOTctOS4xM2wtODguMDEtNzMuMzR6TTQ1Ny44OSAwYy0xNS4xNiAwLTI5LjM3IDYuNzEtNDAuMjEgMTYuNDVDMjEzLjI3IDE5OS4wNSAxOTIgMjAzLjM0IDE5MiAyNTcuMDljMCAxMy43IDMuMjUgMjYuNzYgOC43MyAzOC43bDYzLjgyIDUzLjE4YzcuMjEgMS44IDE0LjY0IDMuMDMgMjIuMzkgMy4wMyA2Mi4xMSAwIDk4LjExLTQ1LjQ3IDIxMS4xNi0yNTYuNDYgNy4zOC0xNC4zNSAxMy45LTI5Ljg1IDEzLjktNDUuOTlDNTEyIDIwLjY0IDQ4NiAwIDQ1Ny44OSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYWludFJvbGxlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMTI4VjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJIMzJDMTQuMzMgMCAwIDE0LjMzIDAgMzJ2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzNTJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnptMzItNjR2MTI4YzAgMTcuNjctMTQuMzMgMzItMzIgMzJIMjU2Yy0zNS4zNSAwLTY0IDI4LjY1LTY0IDY0djMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjEyOGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMzUyYzAtMTcuNjctMTQuMzMtMzItMzItMzJ2LTMyaDE2MGM1My4wMiAwIDk2LTQyLjk4IDk2LTk2di02NGMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYWxldHRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwNC4zIDVDMTA0LjkgMjQuNCAyNC44IDEwNC4zIDUuMiAyMDMuNGMtMzcgMTg3IDEzMS43IDMyNi40IDI1OC44IDMwNi43IDQxLjItNi40IDYxLjQtNTQuNiA0Mi41LTkxLjctMjMuMS00NS40IDkuOS05OC40IDYwLjktOTguNGg3OS43YzM1LjggMCA2NC44LTI5LjYgNjQuOS02NS4zQzUxMS41IDk3LjEgMzY4LjEtMjYuOSAyMDQuMyA1ek05NiAzMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0zMi0xMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0xMjgtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0xMjggNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYWxsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ0IDI1NmgzNTJjOC44IDAgMTYtNy4yIDE2LTE2VjE2YzAtOC44LTcuMi0xNi0xNi0xNkgzODR2MTI4bC02NC0zMi02NCAzMlYwSDE0NGMtOC44IDAtMTYgNy4yLTE2IDE2djIyNGMwIDguOCA3LjIgMTYgMTYgMTZ6bTQ4MCAxMjhjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoNDh2NjRIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoNjA4YzguOCAwIDE2LTcuMiAxNi0xNnYtMzJjMC04LjgtNy4yLTE2LTE2LTE2aC00OHYtNjRoNDh6bS0zMzYgNjRIMTI4di02NGgxNjB2NjR6bTIyNCAwSDM1MnYtNjRoMTYwdjY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXBlclBsYW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3NiAzLjJMMTIuNSAyNzAuNmMtMTguMSAxMC40LTE1LjggMzUuNiAyLjIgNDMuMkwxMjEgMzU4LjRsMjg3LjMtMjUzLjJjNS41LTQuOSAxMy4zIDIuNiA4LjYgOC4zTDE3NiA0MDd2ODAuNWMwIDIzLjYgMjguNSAzMi45IDQyLjUgMTUuOEwyODIgNDI2bDEyNC42IDUyLjJjMTQuMiA2IDMwLjQtMi45IDMzLTE4LjJsNzItNDMyQzUxNSA3LjggNDkzLjMtNi44IDQ3NiAzLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhcGVyY2xpcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00My4yNDYgNDY2LjE0MmMtNTguNDMtNjAuMjg5LTU3LjM0MS0xNTcuNTExIDEuMzg2LTIxNy41ODFMMjU0LjM5MiAzNGM0NC4zMTYtNDUuMzMyIDExNi4zNTEtNDUuMzM2IDE2MC42NzEgMCA0My44OSA0NC44OTQgNDMuOTQzIDExNy4zMjkgMCAxNjIuMjc2TDIzMi4yMTQgMzgzLjEyOGMtMjkuODU1IDMwLjUzNy03OC42MzMgMzAuMTExLTEwNy45ODItLjk5OC0yOC4yNzUtMjkuOTctMjcuMzY4LTc3LjQ3MyAxLjQ1Mi0xMDYuOTUzbDE0My43NDMtMTQ2LjgzNWM2LjE4Mi02LjMxNCAxNi4zMTItNi40MjIgMjIuNjI2LS4yNDFsMjIuODYxIDIyLjM3OWM2LjMxNSA2LjE4MiA2LjQyMiAxNi4zMTIuMjQxIDIyLjYyNkwxNzEuNDI3IDMxOS45MjdjLTQuOTMyIDUuMDQ1LTUuMjM2IDEzLjQyOC0uNjQ4IDE4LjI5MiA0LjM3MiA0LjYzNCAxMS4yNDUgNC43MTEgMTUuNjg4LjE2NWwxODIuODQ5LTE4Ni44NTFjMTkuNjEzLTIwLjA2MiAxOS42MTMtNTIuNzI1LS4wMTEtNzIuNzk4LTE5LjE4OS0xOS42MjctNDkuOTU3LTE5LjYzNy02OS4xNTQgMEw5MC4zOSAyOTMuMjk1Yy0zNC43NjMgMzUuNTYtMzUuMjk5IDkzLjEyLTEuMTkxIDEyOC4zMTMgMzQuMDEgMzUuMDkzIDg4Ljk4NSAzNS4xMzcgMTIzLjA1OC4yODZsMTcyLjA2LTE3NS45OTljNi4xNzctNi4zMTkgMTYuMzA3LTYuNDMzIDIyLjYyNi0uMjU2bDIyLjg3NyAyMi4zNjRjNi4zMTkgNi4xNzcgNi40MzQgMTYuMzA3LjI1NiAyMi42MjZsLTE3Mi4wNiAxNzUuOTk4Yy01OS41NzYgNjAuOTM4LTE1NS45NDMgNjAuMjE2LTIxNC43Ny0uNDg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXJhY2h1dGVCb3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTExLjkgMTc1Yy05LjEtNzUuNi03OC40LTEzMi40LTE1OC4zLTE1OC43QzM5MCA1NS43IDQxNiAxMTYuOSA0MTYgMTkyaDI4LjFMMzI3LjUgMzIxLjVjLTIuNS0uNi00LjgtMS41LTcuNS0xLjVoLTQ4VjE5MmgxMTJDMzg0IDc2LjggMzE1LjEgMCAyNTYgMFMxMjggNzYuOCAxMjggMTkyaDExMnYxMjhoLTQ4Yy0yLjcgMC01IC45LTcuNSAxLjVMNjcuOSAxOTJIOTZjMC03NS4xIDI2LTEzNi4zIDYyLjQtMTc1LjdDNzguNSA0Mi43IDkuMiA5OS41LjEgMTc1Yy0xLjEgOS4xIDYuOCAxNyAxNiAxN2g4LjdsMTM2LjcgMTUxLjljLS43IDIuNi0xLjYgNS4yLTEuNiA4LjF2MTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDEyOGMxNy43IDAgMzItMTQuMyAzMi0zMlYzNTJjMC0yLjktLjktNS40LTEuNi04LjFMNDg3LjEgMTkyaDguN2M5LjMgMCAxNy4yLTcuOCAxNi4xLTE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXJhZ3JhcGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDQ4djMyYTE2IDE2IDAgMCAxLTE2IDE2aC00OHYzNjhhMTYgMTYgMCAwIDEtMTYgMTZoLTMyYTE2IDE2IDAgMCAxLTE2LTE2Vjk2aC0zMnYzNjhhMTYgMTYgMCAwIDEtMTYgMTZoLTMyYTE2IDE2IDAgMCAxLTE2LTE2VjM1MmgtMzJhMTYwIDE2MCAwIDAgMSAwLTMyMGgyNDBhMTYgMTYgMCAwIDEgMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhcmtpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNMjQwIDMyMGgtNDh2NDhjMCA4LjgtNy4yIDE2LTE2IDE2aC0zMmMtOC44IDAtMTYtNy4yLTE2LTE2VjE0NGMwLTguOCA3LjItMTYgMTYtMTZoOTZjNTIuOSAwIDk2IDQzLjEgOTYgOTZzLTQzLjEgOTYtOTYgOTZ6bTAtMTI4aC00OHY2NGg0OGMxNy42IDAgMzItMTQuNCAzMi0zMnMtMTQuNC0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFzc3BvcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI5LjYyIDE3NmgzOS4wOWMxLjQ5LTI3LjAzIDYuNTQtNTEuMzUgMTQuMjEtNzAuNDEtMjcuNzEgMTMuMjQtNDguMDIgMzkuMTktNTMuMyA3MC40MXptMCAzMmM1LjI5IDMxLjIyIDI1LjU5IDU3LjE3IDUzLjMgNzAuNDEtNy42OC0xOS4wNi0xMi43Mi00My4zOC0xNC4yMS03MC40MWgtMzkuMDl6TTIyNCAyODYuNjljNy42OS03LjQ1IDIwLjc3LTM0LjQyIDIzLjQzLTc4LjY5aC00Ni44N2MyLjY3IDQ0LjI2IDE1Ljc1IDcxLjI0IDIzLjQ0IDc4LjY5ek0yMDAuNTcgMTc2aDQ2Ljg3Yy0yLjY2LTQ0LjI2LTE1Ljc0LTcxLjI0LTIzLjQzLTc4LjY5LTcuNyA3LjQ1LTIwLjc4IDM0LjQzLTIzLjQ0IDc4LjY5em02NC41MSAxMDIuNDFjMjcuNzEtMTMuMjQgNDguMDItMzkuMTkgNTMuMy03MC40MWgtMzkuMDljLTEuNDkgMjcuMDMtNi41MyA1MS4zNS0xNC4yMSA3MC40MXpNNDE2IDBINjRDMjguNjUgMCAwIDI4LjY1IDAgNjR2Mzg0YzAgMzUuMzUgMjguNjUgNjQgNjQgNjRoMzUyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptLTgwIDQxNkgxMTJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoMjI0YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2em0tMTEyLTk2Yy03MC42OSAwLTEyOC01Ny4zMS0xMjgtMTI4UzE1My4zMSA2NCAyMjQgNjRzMTI4IDU3LjMxIDEyOCAxMjgtNTcuMzEgMTI4LTEyOCAxMjh6bTQxLjA4LTIxNC40MWM3LjY4IDE5LjA2IDEyLjcyIDQzLjM4IDE0LjIxIDcwLjQxaDM5LjA5Yy01LjI4LTMxLjIyLTI1LjU5LTU3LjE3LTUzLjMtNzAuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhc3RhZmFyaWFuaXNtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNC41NCAzNDcuNjdjLTMyLjctMTIuNTItNTcuMzYgNC4yNS03NS4zNyAxNi40NS0xNy4wNiAxMS41My0yMy4yNSAxNC40Mi0zMS40MSAxMS4zNi04LjEyLTMuMDktMTAuODMtOS4zOC0xNS44OS0yOS4zOC0zLjMzLTEzLjE1LTcuNDQtMjkuMzItMTcuOTUtNDIuNjUgMi4yNC0yLjkxIDQuNDMtNS43OSA2LjM4LTguNTdDNTAwLjQ3IDMwNC40NSA1MTMuNzEgMzEyIDUzMiAzMTJjMzMuOTUgMCA1MC44Ny0yNS43OCA2Mi4wNi00Mi44MyAxMC41OS0xNi4xNCAxNS0yMS4xNyAyMS45NC0yMS4xNyAxMy4yNSAwIDI0LTEwLjc1IDI0LTI0cy0xMC43NS0yNC0yNC0yNGMtMzMuOTUgMC01MC44NyAyNS43OC02Mi4wNiA0Mi44My0xMC42IDE2LjE0LTE1IDIxLjE3LTIxLjk0IDIxLjE3LTE3LjMxIDAtMzcuNDgtNjEuNDMtOTcuMjYtMTAxLjkxbDE3LjI1LTM0LjVDNDg1LjQzIDEyNS41IDUxMiA5Ny45OCA1MTIgNjRjMC0zNS4zNS0yOC42NS02NC02NC02NHMtNjQgMjguNjUtNjQgNjRjMCAxMy4wMiAzLjk0IDI1LjEgMTAuNjIgMzUuMjFsLTE4LjE1IDM2LjNjLTE2Ljk4LTQuNi0zNS42LTcuNTEtNTYuNDYtNy41MXMtMzkuNDkgMi45MS01Ni40NiA3LjUxbC0xOC4xNS0zNi4zQzI1Mi4wNiA4OS4xIDI1NiA3Ny4wMiAyNTYgNjRjMC0zNS4zNS0yOC42NS02NC02NC02NHMtNjQgMjguNjUtNjQgNjRjMCAzMy45OCAyNi41NiA2MS41IDYwLjAyIDYzLjZsMTcuMjUgMzQuNUMxNDUuNjggMjAyLjQ0IDEyNS4xNSAyNjQgMTA4IDI2NGMtNi45NCAwLTExLjM0LTUuMDMtMjEuOTQtMjEuMTdDNzQuODggMjI1Ljc4IDU3Ljk2IDIwMCAyNCAyMDBjLTEzLjI1IDAtMjQgMTAuNzUtMjQgMjRzMTAuNzUgMjQgMjQgMjRjNi45NCAwIDExLjM0IDUuMDMgMjEuOTQgMjEuMTdDNTcuMTMgMjg2LjIyIDc0LjA1IDMxMiAxMDggMzEyYzE4LjI5IDAgMzEuNTMtNy41NSA0MS43LTE3LjExIDEuOTUgMi43OSA0LjE0IDUuNjYgNi4zOCA4LjU3LTEwLjUxIDEzLjMzLTE0LjYyIDI5LjUtMTcuOTUgNDIuNjUtNS4wNiAyMC03Ljc3IDI2LjI4LTE1Ljg5IDI5LjM4LTguMTEgMy4wNi0xNC4zMy4xNy0zMS40MS0xMS4zNi0xOC4wMy0xMi4yLTQyLjcyLTI4LjkyLTc1LjM3LTE2LjQ1LTEyLjM5IDQuNzItMTguNTkgMTguNTgtMTMuODcgMzAuOTcgNC43MiAxMi40MSAxOC42MSAxOC42MSAzMC45NyAxMy44OCA4LjE2LTMuMDkgMTQuMzQtLjE5IDMxLjM5IDExLjM2IDEzLjU1IDkuMTYgMzAuODMgMjAuODYgNTIuNDIgMjAuODQgNy4xNyAwIDE0LjgzLTEuMjggMjIuOTctNC4zOSAzMi42Ni0xMi40NCAzOS45OC00MS4zMyA0NS4zMy02Mi40NCAyLjIxLTguNzIgMy45OS0xNC40OSA1Ljk1LTE4Ljg3IDE2LjYyIDEzLjYxIDM2Ljk1IDI1Ljg4IDYxLjY0IDM0LjE3LTkuOTYgMzctMzIuMTggOTAuOC02MC4yNiA5MC44LTEzLjI1IDAtMjQgMTAuNzUtMjQgMjRzMTAuNzUgMjQgMjQgMjRjNjYuNzQgMCA5Ny4wNS04OC42MyAxMDcuNDItMTI5LjE0IDYuNjkuNiAxMy40MiAxLjE0IDIwLjU4IDEuMTRzMTMuODktLjU0IDIwLjU4LTEuMTRDMzUwLjk1IDQyMy4zNyAzODEuMjYgNTEyIDQ0OCA1MTJjMTMuMjUgMCAyNC0xMC43NSAyNC0yNHMtMTAuNzUtMjQtMjQtMjRjLTI3Ljk0IDAtNTAuMjEtNTMuODEtNjAuMjItOTAuODEgMjQuNjktOC4yOSA0NS0yMC41NiA2MS42Mi0zNC4xNiAxLjk2IDQuMzggMy43NCAxMC4xNSA1Ljk1IDE4Ljg3IDUuMzQgMjEuMTEgMTIuNjcgNTAgNDUuMzMgNjIuNDQgOC4xNCAzLjExIDE1LjggNC4zOSAyMi45NyA0LjM5IDIxLjU5IDAgMzguODctMTEuNjkgNTIuNDItMjAuODQgMTcuMDUtMTEuNTUgMjMuMjgtMTQuNDUgMzEuMzktMTEuMzYgMTIuMzkgNC43NSAyNi4yNy0xLjQ3IDMwLjk3LTEzLjg4IDQuNzEtMTIuNC0xLjQ5LTI2LjI2LTEzLjg5LTMwLjk4ek00NDggNDhjOC44MiAwIDE2IDcuMTggMTYgMTZzLTcuMTggMTYtMTYgMTYtMTYtNy4xOC0xNi0xNiA3LjE4LTE2IDE2LTE2em0tMjU2IDBjOC44MiAwIDE2IDcuMTggMTYgMTZzLTcuMTggMTYtMTYgMTYtMTYtNy4xOC0xNi0xNiA3LjE4LTE2IDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXN0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMTg0YzAtMzAuODc5IDI1LjEyMi01NiA1Ni01NmgxMzZWNTZjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0aC04MC42MUMyMDQuMzA2IDEyLjg5IDE4My42MzcgMCAxNjAgMHMtNDQuMzA2IDEyLjg5LTU1LjM5IDMySDI0QzEwLjc0NSAzMiAwIDQyLjc0NSAwIDU2djMzNmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTA0VjE4NHptMzItMTQ0YzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHMtMTAuNzQ1IDI0LTI0IDI0LTI0LTEwLjc0NS0yNC0yNCAxMC43NDUtMjQgMjQtMjR6bTE4NCAyNDhoMTA0djIwMGMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMTg0Yy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjRWMTg0YzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNGgxMzZ2MTA0YzAgMTMuMiAxMC44IDI0IDI0IDI0em0xMDQtMzguMDU5VjI1NmgtOTZ2LTk2aDYuMDU5YTI0IDI0IDAgMCAxIDE2Ljk3IDcuMDI5bDY1Ljk0MSA2NS45NDFhMjQuMDAyIDI0LjAwMiAwIDAgMSA3LjAzIDE2Ljk3MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGF1c2VDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptLTE2IDMyOGMwIDguOC03LjIgMTYtMTYgMTZoLTQ4Yy04LjggMC0xNi03LjItMTYtMTZWMTc2YzAtOC44IDcuMi0xNiAxNi0xNmg0OGM4LjggMCAxNiA3LjIgMTYgMTZ2MTYwem0xMTIgMGMwIDguOC03LjIgMTYtMTYgMTZoLTQ4Yy04LjggMC0xNi03LjItMTYtMTZWMTc2YzAtOC44IDcuMi0xNiAxNi0xNmg0OGM4LjggMCAxNiA3LjIgMTYgMTZ2MTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXVzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQgNDc5SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY3OWMwLTI2LjUgMjEuNS00OCA0OC00OGg5NmMyNi41IDAgNDggMjEuNSA0OCA0OHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDh6bTMwNC00OFY3OWMwLTI2LjUtMjEuNS00OC00OC00OGgtOTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg5NmMyNi41IDAgNDgtMjEuNSA0OC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGF3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAyMjRjLTc5LjQxIDAtMTkyIDEyMi43Ni0xOTIgMjAwLjI1IDAgMzQuOSAyNi44MSA1NS43NSA3MS43NCA1NS43NSA0OC44NCAwIDgxLjA5LTI1LjA4IDEyMC4yNi0yNS4wOCAzOS41MSAwIDcxLjg1IDI1LjA4IDEyMC4yNiAyNS4wOCA0NC45MyAwIDcxLjc0LTIwLjg1IDcxLjc0LTU1Ljc1QzQ0OCAzNDYuNzYgMzM1LjQxIDIyNCAyNTYgMjI0em0tMTQ3LjI4LTEyLjYxYy0xMC40LTM0LjY1LTQyLjQ0LTU3LjA5LTcxLjU2LTUwLjEzLTI5LjEyIDYuOTYtNDQuMjkgNDAuNjktMzMuODkgNzUuMzQgMTAuNCAzNC42NSA0Mi40NCA1Ny4wOSA3MS41NiA1MC4xMyAyOS4xMi02Ljk2IDQ0LjI5LTQwLjY5IDMzLjg5LTc1LjM0em04NC43Mi0yMC43OGMzMC45NC04LjE0IDQ2LjQyLTQ5Ljk0IDM0LjU4LTkzLjM2cy00Ni41Mi03Mi4wMS03Ny40Ni02My44Ny00Ni40MiA0OS45NC0zNC41OCA5My4zNmMxMS44NCA0My40MiA0Ni41MyA3Mi4wMiA3Ny40NiA2My44N3ptMjgxLjM5LTI5LjM0Yy0yOS4xMi02Ljk2LTYxLjE1IDE1LjQ4LTcxLjU2IDUwLjEzLTEwLjQgMzQuNjUgNC43NyA2OC4zOCAzMy44OSA3NS4zNCAyOS4xMiA2Ljk2IDYxLjE1LTE1LjQ4IDcxLjU2LTUwLjEzIDEwLjQtMzQuNjUtNC43Ny02OC4zOC0zMy44OS03NS4zNHptLTE1Ni4yNyAyOS4zNGMzMC45NCA4LjE0IDY1LjYyLTIwLjQ1IDc3LjQ2LTYzLjg3IDExLjg0LTQzLjQyLTMuNjQtODUuMjEtMzQuNTgtOTMuMzZzLTY1LjYyIDIwLjQ1LTc3LjQ2IDYzLjg3Yy0xMS44NCA0My40MiAzLjY0IDg1LjIyIDM0LjU4IDkzLjM2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZWFjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEuMDMgOCAwIDExOS4wMyAwIDI1NnMxMTEuMDMgMjQ4IDI0OCAyNDggMjQ4LTExMS4wMyAyNDgtMjQ4UzM4NC45NyA4IDI0OCA4em0xODQgMjQ4YzAgMzEuOTMtOC4yIDYxLjk3LTIyLjU3IDg4LjE3TDI4MCAyNDAuNjNWNzQuOTdjODYuMjMgMTUuMjEgMTUyIDkwLjUgMTUyIDE4MS4wM3pNMjE2IDQzNy4wM2MtMzMuODYtNS45Ny02NC40OS0yMS4yLTg5LjI5LTQzLjAyTDIxNiAzMjIuNTd2MTE0LjQ2em02NC0xMTQuNDZMMzY5LjI5IDM5NGMtMjQuOCAyMS44Mi01NS40MyAzNy4wNS04OS4yOSA0My4wMlYzMjIuNTd6bS02NC0yNDcuNnYxNjUuNjZMODYuNTcgMzQ0LjE3QzcyLjIgMzE3Ljk3IDY0IDI4Ny45MyA2NCAyNTZjMC05MC41MyA2NS43Ny0xNjUuODIgMTUyLTE4MS4wM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVuQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5Ny45NCA3NC4xN2wtNjAuMTEtNjAuMTFjLTE4Ljc1LTE4Ljc1LTQ5LjE2LTE4Ljc1LTY3LjkxIDBsLTU2LjU1IDU2LjU1IDEyOC4wMiAxMjguMDIgNTYuNTUtNTYuNTVjMTguNzUtMTguNzUgMTguNzUtNDkuMTUgMC02Ny45MXptLTI0Ni44LTIwLjUzYy0xNS42Mi0xNS42Mi00MC45NC0xNS42Mi01Ni41NiAwTDc1LjggMTcyLjQzYy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYybDIyLjYzIDIyLjYzYzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsMTAxLjgyLTEwMS44MiAyMi42MyAyMi42Mkw5My45NSAyOTAuMDNBMzI3LjAzOCAzMjcuMDM4IDAgMCAwIC4xNyA0ODUuMTFsLS4wMy4yM2MtMS43IDE1LjI4IDExLjIxIDI4LjIgMjYuNDkgMjYuNTFhMzI3LjAyIDMyNy4wMiAwIDAgMCAxOTUuMzQtOTMuOGwxOTYuNzktMTk2Ljc5LTgyLjc3LTgyLjc3LTg0Ljg1LTg0Ljg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW5GYW5jeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03OS4xOCAyODIuOTRhMzIuMDA1IDMyLjAwNSAwIDAgMC0yMC4yNCAyMC4yNEwwIDQ4MGw0LjY5IDQuNjkgOTIuODktOTIuODljLS42Ni0yLjU2LTEuNTctNS4wMy0xLjU3LTcuOCAwLTE3LjY3IDE0LjMzLTMyIDMyLTMyczMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyYy0yLjc3IDAtNS4yNC0uOTEtNy44LTEuNTdsLTkyLjg5IDkyLjg5TDMyIDUxMmwxNzYuODItNTguOTRhMzEuOTgzIDMxLjk4MyAwIDAgMCAyMC4yNC0yMC4yNGwzMy4wNy04NC4wNy05OC44OC05OC44OC04NC4wNyAzMy4wN3pNMzY5LjI1IDI4LjMyTDE4Ni4xNCAyMjcuODFsOTcuODUgOTcuODUgMTk5LjQ5LTE4My4xMUM1NjguNCA2Ny40OCA0NDMuNzMtNTUuOTQgMzY5LjI1IDI4LjMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW5OaWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTM2LjYgMTM4Ljc5YTY0LjAwMyA2NC4wMDMgMCAwIDAtNDMuMzEgNDEuMzVMMCA0NjBsMTQuNjkgMTQuNjlMMTY0LjggMzI0LjU4Yy0yLjk5LTYuMjYtNC44LTEzLjE4LTQuOC0yMC41OCAwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4czQ4IDIxLjQ5IDQ4IDQ4LTIxLjQ5IDQ4LTQ4IDQ4Yy03LjQgMC0xNC4zMi0xLjgxLTIwLjU4LTQuOEwzNy4zMSA0OTcuMzEgNTIgNTEybDI3OS44Ni05My4yOWE2NC4wMDMgNjQuMDAzIDAgMCAwIDQxLjM1LTQzLjMxTDQxNiAyMjQgMjg4IDk2bC0xNTEuNCA0Mi43OXptMzYxLjM0LTY0LjYybC02MC4xMS02MC4xMWMtMTguNzUtMTguNzUtNDkuMTYtMTguNzUtNjcuOTEgMGwtNTYuNTUgNTYuNTUgMTI4LjAyIDEyOC4wMiA1Ni41NS01Ni41NWMxOC43NS0xOC43NSAxOC43NS00OS4xNSAwLTY3LjkxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW5TcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDQ4MEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4djM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OHpNMjM4LjEgMTc3LjlMMTAyLjQgMzEzLjZsLTYuMyA1Ny4xYy0uOCA3LjYgNS42IDE0LjEgMTMuMyAxMy4zbDU3LjEtNi4zTDMwMi4yIDI0MmMyLjMtMi4zIDIuMy02LjEgMC04LjVMMjQ2LjcgMTc4Yy0yLjUtMi40LTYuMy0yLjQtOC42LS4xek0zNDUgMTY1LjFMMzE0LjkgMTM1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtMjMuMSAyMy4xYy0yLjMgMi4zLTIuMyA2LjEgMCA4LjVsNTUuNSA1NS41YzIuMyAyLjMgNi4xIDIuMyA4LjUgMEwzNDUgMTk5YzkuMy05LjMgOS4zLTI0LjUgMC0zMy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjkwLjc0IDkzLjI0bDEyOC4wMiAxMjguMDItMjc3Ljk5IDI3Ny45OS0xMTQuMTQgMTIuNkMxMS4zNSA1MTMuNTQtMS41NiA1MDAuNjIuMTQgNDg1LjM0bDEyLjctMTE0LjIyIDI3Ny45LTI3Ny44OHptMjA3LjItMTkuMDZsLTYwLjExLTYwLjExYy0xOC43NS0xOC43NS00OS4xNi0xOC43NS02Ny45MSAwbC01Ni41NSA1Ni41NSAxMjguMDIgMTI4LjAyIDU2LjU1LTU2LjU1YzE4Ljc1LTE4Ljc2IDE4Ljc1LTQ5LjE2IDAtNjcuOTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlbmNpbEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTcuOSAxNDIuMWwtNDYuMSA0Ni4xYy00LjcgNC43LTEyLjMgNC43LTE3IDBsLTExMS0xMTFjLTQuNy00LjctNC43LTEyLjMgMC0xN2w0Ni4xLTQ2LjFjMTguNy0xOC43IDQ5LjEtMTguNyA2Ny45IDBsNjAuMSA2MC4xYzE4LjggMTguNyAxOC44IDQ5LjEgMCA2Ny45ek0yODQuMiA5OS44TDIxLjYgMzYyLjQuNCA0ODMuOWMtMi45IDE2LjQgMTEuNCAzMC42IDI3LjggMjcuOGwxMjEuNS0yMS4zIDI2Mi42LTI2Mi42YzQuNy00LjcgNC43LTEyLjMgMC0xN2wtMTExLTExMWMtNC44LTQuNy0xMi40LTQuNy0xNy4xIDB6TTEyNC4xIDMzOS45Yy01LjUtNS41LTUuNS0xNC4zIDAtMTkuOGwxNTQtMTU0YzUuNS01LjUgMTQuMy01LjUgMTkuOCAwczUuNSAxNC4zIDAgMTkuOGwtMTU0IDE1NGMtNS41IDUuNS0xNC4zIDUuNS0xOS44IDB6TTg4IDQyNGg0OHYzNi4zbC02NC41IDExLjMtMzEuMS0zMS4xTDUxLjcgMzc2SDg4djQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW5jaWxSdWxlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDkuNDYgMjQ0LjA0bDEzNC41OC0xMzQuNTYtNDQuMTItNDQuMTItNjEuNjggNjEuNjhhNy45MTkgNy45MTkgMCAwIDEtMTEuMjEgMGwtMTEuMjEtMTEuMjFjLTMuMS0zLjEtMy4xLTguMTIgMC0xMS4yMWw2MS42OC02MS42OC0zMy42NC0zMy42NUMxMzEuNDctMy4xIDExMS4zOS0zLjEgOTkgOS4yOUw5LjI5IDk5Yy0xMi4zOCAxMi4zOS0xMi4zOSAzMi40NyAwIDQ0Ljg2bDEwMC4xNyAxMDAuMTh6bTM4OC40Ny0xMTYuOGMxOC43Ni0xOC43NiAxOC43NS00OS4xNyAwLTY3LjkzbC00NS4yNS00NS4yNWMtMTguNzYtMTguNzYtNDkuMTgtMTguNzYtNjcuOTUgMGwtNDYuMDIgNDYuMDEgMTEzLjIgMTEzLjIgNDYuMDItNDYuMDN6TTMxNi4wOCA4Mi43MWwtMjk3IDI5Ni45NkwuMzIgNDg3LjExYy0yLjUzIDE0LjQ5IDEwLjA5IDI3LjExIDI0LjU5IDI0LjU2bDEwNy40NS0xOC44NEw0MjkuMjggMTk1LjkgMzE2LjA4IDgyLjcxem0xODYuNjMgMjg1LjQzbC0zMy42NC0zMy42NC02MS42OCA2MS42OGMtMy4xIDMuMS04LjEyIDMuMS0xMS4yMSAwbC0xMS4yMS0xMS4yMWMtMy4wOS0zLjEtMy4wOS04LjEyIDAtMTEuMjFsNjEuNjgtNjEuNjgtNDQuMTQtNDQuMTRMMjY3LjkzIDQwMi41bDEwMC4yMSAxMDAuMmMxMi4zOSAxMi4zOSAzMi40NyAxMi4zOSA0NC44NiAwbDg5LjcxLTg5LjdjMTIuMzktMTIuMzkgMTIuMzktMzIuNDcgMC00NC44NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVvcGxlQXJyb3dzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2LDEyOEE2NCw2NCwwLDEsMCwzMiw2NCw2NCw2NCwwLDAsMCw5NiwxMjhabTAsMTc2LjA4YTQ0LjExLDQ0LjExLDAsMCwxLDEzLjY0LTMyTDE4MS43NywyMDRjMS42NS0xLjU1LDMuNzctMi4zMSw1LjYxLTMuNTdBNjMuOTEsNjMuOTEsMCwwLDAsMTI4LDE2MEg2NEE2NCw2NCwwLDAsMCwwLDIyNHY5NmEzMiwzMiwwLDAsMCwzMiwzMlY0ODBhMzIsMzIsMCwwLDAsMzIsMzJoNjRhMzIsMzIsMCwwLDAsMzItMzJWMzgzLjYxbC01MC4zNi00Ny41M0E0NC4wOCw0NC4wOCwwLDAsMSw5NiwzMDQuMDhaTTQ4MCwxMjhhNjQsNjQsMCwxLDAtNjQtNjRBNjQsNjQsMCwwLDAsNDgwLDEyOFptMzIsMzJINDQ4YTYzLjkxLDYzLjkxLDAsMCwwLTU5LjM4LDQwLjQyYzEuODQsMS4yNyw0LDIsNS42MiwzLjU5bDcyLjEyLDY4LjA2YTQ0LjM3LDQ0LjM3LDAsMCwxLDAsNjRMNDE2LDM4My42MlY0ODBhMzIsMzIsMCwwLDAsMzIsMzJoNjRhMzIsMzIsMCwwLDAsMzItMzJWMzUyYTMyLDMyLDAsMCwwLDMyLTMyVjIyNEE2NCw2NCwwLDAsMCw1MTIsMTYwWk00NDQuNCwyOTUuMzRsLTcyLjEyLTY4LjA2QTEyLDEyLDAsMCwwLDM1MiwyMzZ2MzZIMjI0VjIzNmExMiwxMiwwLDAsMC0yMC4yOC04LjczTDEzMS42LDI5NS4zNGExMi40LDEyLjQsMCwwLDAsMCwxNy40N2w3Mi4xMiw2OC4wN0ExMiwxMiwwLDAsMCwyMjQsMzcyLjE0VjMzNkgzNTJ2MzYuMTRhMTIsMTIsMCwwLDAsMjAuMjgsOC43NGw3Mi4xMi02OC4wN0ExMi40LDEyLjQsMCwwLDAsNDQ0LjQsMjk1LjM0WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW9wbGVDYXJyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggOTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhTMTU0LjUgMCAxMjggMCA4MCAyMS41IDgwIDQ4czIxLjUgNDggNDggNDh6bTM4NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4UzUzOC41IDAgNTEyIDBzLTQ4IDIxLjUtNDggNDggMjEuNSA0OCA0OCA0OHptMTI1LjcgMzcyLjFsLTQ0LTExMC00MS4xIDQ2LjQtMiAxOC4yIDI3LjcgNjkuMmM1IDEyLjUgMTcgMjAuMSAyOS43IDIwLjEgNCAwIDgtLjcgMTEuOS0yLjMgMTYuNC02LjYgMjQuNC0yNS4yIDE3LjgtNDEuNnptLTM0LjItMjA5LjhMNTg1IDE3OC4xYy00LjYtMjAtMTguNi0zNi44LTM3LjUtNDQuOS0xOC41LTgtMzktNi43LTU2LjEgMy4zLTIyLjcgMTMuNC0zOS43IDM0LjUtNDguMSA1OS40TDQzMiAyMjkuOCA0MTYgMjQwdi05NmMwLTguOC03LjItMTYtMTYtMTZIMjQwYy04LjggMC0xNiA3LjItMTYgMTZ2OTZsLTE2LjEtMTAuMi0xMS4zLTMzLjljLTguMy0yNS0yNS40LTQ2LTQ4LjEtNTkuNC0xNy4yLTEwLTM3LjYtMTEuMy01Ni4xLTMuMy0xOC45IDguMS0zMi45IDI0LjktMzcuNSA0NC45bC0xOC40IDgwLjJjLTQuNiAyMCAuNyA0MS4yIDE0LjQgNTYuN2w2Ny4yIDc1LjkgMTAuMSA5Mi42QzEzMCA0OTkuOCAxNDMuOCA1MTIgMTYwIDUxMmMxLjIgMCAyLjMtLjEgMy41LS4yIDE3LjYtMS45IDMwLjItMTcuNyAyOC4zLTM1LjNsLTEwLjEtOTIuOGMtMS41LTEzLTYuOS0yNS4xLTE1LjYtMzVsLTQzLjMtNDkgMTcuNi03MC4zIDYuOCAyMC40YzQuMSAxMi41IDExLjkgMjMuNCAyNC41IDMyLjZsNTEuMSAzMi41YzQuNiAyLjkgMTIuMSA0LjYgMTcuMiA1aDE2MGM1LjEtLjQgMTIuNi0yLjEgMTcuMi01bDUxLjEtMzIuNWMxMi42LTkuMiAyMC40LTIwIDI0LjUtMzIuNmw2LjgtMjAuNCAxNy42IDcwLjMtNDMuMyA0OWMtOC43IDkuOS0xNC4xIDIyLTE1LjYgMzVsLTEwLjEgOTIuOGMtMS45IDE3LjYgMTAuOCAzMy40IDI4LjMgMzUuMyAxLjIuMSAyLjMuMiAzLjUuMiAxNi4xIDAgMzAtMTIuMSAzMS44LTI4LjVsMTAuMS05Mi42IDY3LjItNzUuOWMxMy42LTE1LjUgMTktMzYuNyAxNC40LTU2Ljd6TTQ2LjMgMzU4LjFsLTQ0IDExMGMtNi42IDE2LjQgMS40IDM1IDE3LjggNDEuNiAxNi44IDYuNiAzNS4xLTEuNyA0MS42LTE3LjhsMjcuNy02OS4yLTItMTguMi00MS4xLTQ2LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcHBlckhvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzAuNjcgMjYzLjEyVjE3My40bC01Mi43NS0yNC4yMkMyMTkuNDQgMjE4Ljc2IDE5Ny41OCA0MDAgNTYgNDAwYTU2IDU2IDAgMCAwIDAgMTEyYzIxMi42NCAwIDM3MC42NS0xMjIuODcgNDE5LjE4LTIxMC4zNGwtMzcuMDUtMzguNTR6bTEzMS4wOS0xMjguMzdDNDkzLjkyIDc0LjkxIDQ3Ny4xOCAyNi40OCA0NTguNjIgM2E4IDggMCAwIDAtMTEuOTMtLjU5bC0yMi45IDIzYTguMDYgOC4wNiAwIDAgMC0uODkgMTAuMjNjNi44NiAxMC4zNiAxNy4wNSAzNS4xLTEuNCA3Mi4zMkExNDIuODUgMTQyLjg1IDAgMCAwIDM2NC4zNCA5NmMtMjggMC01NCA4LjU0LTc2LjM0IDIyLjU5bDc0LjY3IDM0LjI5djc4LjI0aDg5LjA5TDUwNi40NCAyODhjMy4yNi0xMi42MiA1LjU2LTI1LjYzIDUuNTYtMzkuMzFhMTU0IDE1NCAwIDAgMC01MC4yNC0xMTMuOTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcmNlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEyIDIyNGM2MS45IDAgMTEyLTUwLjEgMTEyLTExMlMxNzMuOSAwIDExMiAwIDAgNTAuMSAwIDExMnM1MC4xIDExMiAxMTIgMTEyem0wLTE2MGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OC00OC0yMS41LTQ4LTQ4IDIxLjUtNDggNDgtNDh6bTIyNCAyMjRjLTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyczUwLjEgMTEyIDExMiAxMTIgMTEyLTUwLjEgMTEyLTExMi01MC4xLTExMi0xMTItMTEyem0wIDE2MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OCA0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDh6TTM5Mi4zLjJsMzEuNi0uMWMxOS40LS4xIDMwLjkgMjEuOCAxOS43IDM3LjhMNzcuNCA1MDEuNmEyMy45NSAyMy45NSAwIDAgMS0xOS42IDEwLjJsLTMzLjQuMWMtMTkuNSAwLTMwLjktMjEuOS0xOS43LTM3LjhsMzY4LTQ2My43QzM3Ny4yIDQgMzg0LjUuMiAzOTIuMy4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJjZW50YWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwOS4yNSAxNzMuMjVjMjQuOTktMjQuOTkgMjQuOTktNjUuNTIgMC05MC41MS0yNC45OS0yNC45OS02NS41Mi0yNC45OS05MC41MSAwLTI0Ljk5IDI0Ljk5LTI0Ljk5IDY1LjUyIDAgOTAuNTEgMjUgMjUgNjUuNTIgMjUgOTAuNTEgMHptMjU2IDE2NS40OWMtMjQuOTktMjQuOTktNjUuNTItMjQuOTktOTAuNTEgMC0yNC45OSAyNC45OS0yNC45OSA2NS41MiAwIDkwLjUxIDI0Ljk5IDI0Ljk5IDY1LjUyIDI0Ljk5IDkwLjUxIDAgMjUtMjQuOTkgMjUtNjUuNTEgMC05MC41MXptLTEuOTQtMjMxLjQzbC0yMi42Mi0yMi42MmMtMTIuNS0xMi41LTMyLjc2LTEyLjUtNDUuMjUgMEwyMC42OSAzNTkuNDRjLTEyLjUgMTIuNS0xMi41IDMyLjc2IDAgNDUuMjVsMjIuNjIgMjIuNjJjMTIuNSAxMi41IDMyLjc2IDEyLjUgNDUuMjUgMGwyNzQuNzUtMjc0Ljc1YzEyLjUtMTIuNDkgMTIuNS0zMi43NSAwLTQ1LjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25Cb290aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgNDk2YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzIwaC02NHYxNzZ6bTMyLTI3MmgtNTAuOWwtNDUuMi00NS4zQzExNS44IDE2Ni42IDk5LjcgMTYwIDgyLjcgMTYwSDY0Yy0xNy4xIDAtMzMuMiA2LjctNDUuMyAxOC44QzYuNyAxOTAuOSAwIDIwNyAwIDIyNC4xTC4yIDMyMCAwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMS45IDMyIDE3LjYgMCAzMi0xNC4zIDMyLTMybC4xLTEwMC43Yy45LjUgMS42IDEuMyAyLjUgMS43bDI5LjEgNDN2NTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnYtNTYuNWMwLTkuOS0yLjMtMTkuOC02LjctMjguNmwtNDEuMi02MS4zVjI1M2wyMC45IDIwLjljOS4xIDkuMSAyMS4xIDE0LjEgMzMuOSAxNC4xSDIyNGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMnpNNjQgMTI4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4UzkwLjUgMzIgNjQgMzIgMTYgNTMuNSAxNiA4MHMyMS41IDQ4IDQ4IDQ4em0yMjQtOTZsMzEuNSAyMjMuMS0zMC45IDE1NC42Yy00LjMgMjEuNiAxMyAzOC4zIDMxLjQgMzguMyAxNS4yIDAgMjgtOS4xIDMyLjMtMzAuNC45IDE2LjkgMTQuNiAzMC40IDMxLjcgMzAuNCAxNy43IDAgMzItMTQuMyAzMi0zMiAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjBIMjg4djMyem0tOTYgMHYxNjBoNjRWMGgtMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek01NDQgMGgtMzJ2NDk2YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBob25lQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5Ny4zOSAzNjEuOGwtMTEyLTQ4YTI0IDI0IDAgMCAwLTI4IDYuOWwtNDkuNiA2MC42QTM3MC42NiAzNzAuNjYgMCAwIDEgMTMwLjYgMjA0LjExbDYwLjYtNDkuNmEyMy45NCAyMy45NCAwIDAgMCA2LjktMjhsLTQ4LTExMkEyNC4xNiAyNC4xNiAwIDAgMCAxMjIuNi42MWwtMTA0IDI0QTI0IDI0IDAgMCAwIDAgNDhjMCAyNTYuNSAyMDcuOSA0NjQgNDY0IDQ2NGEyNCAyNCAwIDAgMCAyMy40LTE4LjZsMjQtMTA0YTI0LjI5IDI0LjI5IDAgMCAwLTE0LjAxLTI3LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBob25lU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjY4LjIgMzgxLjRsLTQ5LjYtNjAuNmMtNi44LTguMy0xOC4yLTExLjEtMjgtNi45bC0xMTIgNDhjLTEwLjcgNC42LTE2LjUgMTYuMS0xMy45IDI3LjVsMjQgMTA0YzIuNSAxMC44IDEyLjEgMTguNiAyMy40IDE4LjYgMTAwLjcgMCAxOTMuNy0zMi40IDI2OS43LTg2LjlsLTgwLTYxLjhjLTEwLjkgNi41LTIyLjEgMTIuNy0zMy42IDE4LjF6bTM2NS42IDc2LjdMNDc1LjEgMzM1LjVDNTM3LjkgMjU2LjQgNTc2IDE1Ni45IDU3NiA0OGMwLTExLjItNy43LTIwLjktMTguNi0yMy40bC0xMDQtMjRjLTExLjMtMi42LTIyLjkgMy4zLTI3LjUgMTMuOWwtNDggMTEyYy00LjIgOS44LTEuNCAyMS4zIDYuOSAyOGw2MC42IDQ5LjZjLTEyLjIgMjYuMS0yNy45IDUwLjMtNDYgNzIuOEw0NS41IDMuNEMzOC41LTIgMjguNS0uOCAyMyA2LjJMMy40IDMxLjRjLTUuNCA3LTQuMiAxNyAyLjggMjIuNGw1ODguNCA0NTQuN2M3IDUuNCAxNyA0LjIgMjIuNS0yLjhsMTkuNi0yNS4zYzUuNC02LjggNC4xLTE2LjktMi45LTIyLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBob25lU3F1YXJlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEE0OCA0OCAwIDAgMCAwIDgwdjM1MmE0OCA0OCAwIDAgMCA0OCA0OGgzNTJhNDggNDggMCAwIDAgNDgtNDhWODBhNDggNDggMCAwIDAtNDgtNDh6bS0xNi4zOSAzMDcuMzdsLTE1IDY1QTE1IDE1IDAgMCAxIDM1NCA0MTZDMTk0IDQxNiA2NCAyODYuMjkgNjQgMTI2YTE1LjcgMTUuNyAwIDAgMSAxMS42My0xNC42MWw2NS0xNUExOC4yMyAxOC4yMyAwIDAgMSAxNDQgOTZhMTYuMjcgMTYuMjcgMCAwIDEgMTMuNzkgOS4wOWwzMCA3MEExNy45IDE3LjkgMCAwIDEgMTg5IDE4MWExNyAxNyAwIDAgMS01LjUgMTEuNjFsLTM3Ljg5IDMxYTIzMS45MSAyMzEuOTEgMCAwIDAgMTEwLjc4IDExMC43OGwzMS0zNy44OUExNyAxNyAwIDAgMSAyOTkgMjkxYTE3Ljg1IDE3Ljg1IDAgMCAxIDUuOTEgMS4yMWw3MCAzMEExNi4yNSAxNi4yNSAwIDAgMSAzODQgMzM2YTE3LjQxIDE3LjQxIDAgMCAxLS4zOSAzLjM3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaG9uZVNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNDkgMzIgMCA1My40OSAwIDgwdjM1MmMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDM1MmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjgwYzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6TTk0IDQxNmMtNy4wMzMgMC0xMy4wNTctNC44NzMtMTQuNjE2LTExLjYyN2wtMTQuOTk4LTY1YTE1IDE1IDAgMCAxIDguNzA3LTE3LjE2bDY5Ljk5OC0yOS45OTlhMTUgMTUgMCAwIDEgMTcuNTE4IDQuMjg5bDMwLjk5NyAzNy44ODVjNDguOTQ0LTIyLjk2MyA4OC4yOTctNjIuODU4IDExMC43ODEtMTEwLjc4bC0zNy44ODYtMzAuOTk3YTE1LjAwMSAxNS4wMDEgMCAwIDEtNC4yODktMTcuNTE4bDMwLTY5Ljk5OGExNSAxNSAwIDAgMSAxNy4xNi04LjcwN2w2NSAxNC45OThBMTQuOTk3IDE0Ljk5NyAwIDAgMSAzODQgMTI2YzAgMTYwLjI5Mi0xMjkuOTQ1IDI5MC0yOTAgMjkwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaG9uZVZvbHVtZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05Ny4zMzMgNTA2Ljk2NmMtMTI5Ljg3NC0xMjkuODc0LTEyOS42ODEtMzQwLjI1MiAwLTQ2OS45MzMgNS42OTgtNS42OTggMTQuNTI3LTYuNjMyIDIxLjI2My0yLjQyMmw2NC44MTcgNDAuNTEzYTE3LjE4NyAxNy4xODcgMCAwIDEgNi44NDkgMjAuOTU4bC0zMi40MDggODEuMDIxYTE3LjE4OCAxNy4xODggMCAwIDEtMTcuNjY5IDEwLjcxOWwtNTUuODEtNS41OGMtMjEuMDUxIDU4LjI2MS0yMC42MTIgMTIyLjQ3MSAwIDE3OS41MTVsNTUuODExLTUuNTgxYTE3LjE4OCAxNy4xODggMCAwIDEgMTcuNjY5IDEwLjcxOWwzMi40MDggODEuMDIyYTE3LjE4OCAxNy4xODggMCAwIDEtNi44NDkgMjAuOTU4bC02NC44MTcgNDAuNTEzYTE3LjE5IDE3LjE5IDAgMCAxLTIxLjI2NC0yLjQyMnpNMjQ3LjEyNiA5NS40NzNjMTEuODMyIDIwLjA0NyAxMS44MzIgNDUuMDA4IDAgNjUuMDU1LTMuOTUgNi42OTMtMTMuMTA4IDcuOTU5LTE4LjcxOCAyLjU4MWwtNS45NzUtNS43MjZjLTMuOTExLTMuNzQ4LTQuNzkzLTkuNjIyLTIuMjYxLTE0LjQxYTMyLjA2MyAzMi4wNjMgMCAwIDAgMC0yOS45NDVjLTIuNTMzLTQuNzg4LTEuNjUtMTAuNjYyIDIuMjYxLTE0LjQxbDUuOTc1LTUuNzI2YzUuNjEtNS4zNzggMTQuNzY4LTQuMTEyIDE4LjcxOCAyLjU4MXptOTEuNzg3LTkxLjE4N2M2MC4xNCA3MS42MDQgNjAuMDkyIDE3NS44ODIgMCAyNDcuNDI4LTQuNDc0IDUuMzI3LTEyLjUzIDUuNzQ2LTE3LjU1Mi45MzNsLTUuNzk4LTUuNTU3Yy00LjU2LTQuMzcxLTQuOTc3LTExLjUyOS0uOTMtMTYuMzc5IDQ5LjY4Ny01OS41MzggNDkuNjQ2LTE0NS45MzMgMC0yMDUuNDIyLTQuMDQ3LTQuODUtMy42MzEtMTIuMDA4LjkzLTE2LjM3OWw1Ljc5OC01LjU1N2M1LjAyMi00LjgxMyAxMy4wNzgtNC4zOTQgMTcuNTUyLjkzM3ptLTQ1Ljk3MiA0NC45NDFjMzYuMDUgNDYuMzIyIDM2LjEwOCAxMTEuMTQ5IDAgMTU3LjU0Ni00LjM5IDUuNjQxLTEyLjY5NyA2LjI1MS0xNy44NTYgMS4zMDRsLTUuODE4LTUuNTc5Yy00LjQtNC4yMTktNC45OTgtMTEuMDk1LTEuMjg1LTE1LjkzMSAyNi41MzYtMzQuNTY0IDI2LjUzNC04Mi41NzIgMC0xMTcuMTM0LTMuNzEzLTQuODM2LTMuMTE1LTExLjcxMSAxLjI4NS0xNS45MzFsNS44MTgtNS41NzljNS4xNTktNC45NDcgMTMuNDY2LTQuMzM3IDE3Ljg1NiAxLjMwNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDkzLjQgMjQuNmwtMTA0LTI0Yy0xMS4zLTIuNi0yMi45IDMuMy0yNy41IDEzLjlsLTQ4IDExMmMtNC4yIDkuOC0xLjQgMjEuMyA2LjkgMjhsNjAuNiA0OS42Yy0zNiA3Ni43LTk4LjkgMTQwLjUtMTc3LjIgMTc3LjJsLTQ5LjYtNjAuNmMtNi44LTguMy0xOC4yLTExLjEtMjgtNi45bC0xMTIgNDhDMy45IDM2Ni41LTIgMzc4LjEuNiAzODkuNGwyNCAxMDRDMjcuMSA1MDQuMiAzNi43IDUxMiA0OCA1MTJjMjU2LjEgMCA0NjQtMjA3LjUgNDY0LTQ2NCAwLTExLjItNy43LTIwLjktMTguNi0yMy40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaG90b1ZpZGVvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYwOCAwSDE2MGEzMiAzMiAwIDAgMC0zMiAzMnY5NmgxNjBWNjRoMTkydjMyMGgxMjhhMzIgMzIgMCAwIDAgMzItMzJWMzJhMzIgMzIgMCAwIDAtMzItMzJ6TTIzMiAxMDNhOSA5IDAgMCAxLTkgOWgtMzBhOSA5IDAgMCAxLTktOVY3M2E5IDkgMCAwIDEgOS05aDMwYTkgOSAwIDAgMSA5IDl6bTM1MiAyMDhhOSA5IDAgMCAxLTkgOWgtMzBhOSA5IDAgMCAxLTktOXYtMzBhOSA5IDAgMCAxIDktOWgzMGE5IDkgMCAwIDEgOSA5em0wLTEwNGE5IDkgMCAwIDEtOSA5aC0zMGE5IDkgMCAwIDEtOS05di0zMGE5IDkgMCAwIDEgOS05aDMwYTkgOSAwIDAgMSA5IDl6bTAtMTA0YTkgOSAwIDAgMS05IDloLTMwYTkgOSAwIDAgMS05LTlWNzNhOSA5IDAgMCAxIDktOWgzMGE5IDkgMCAwIDEgOSA5em0tMTY4IDU3SDMyYTMyIDMyIDAgMCAwLTMyIDMydjI4OGEzMiAzMiAwIDAgMCAzMiAzMmgzODRhMzIgMzIgMCAwIDAgMzItMzJWMTkyYTMyIDMyIDAgMCAwLTMyLTMyek05NiAyMjRhMzIgMzIgMCAxIDEtMzIgMzIgMzIgMzIgMCAwIDEgMzItMzJ6bTI4OCAyMjRINjR2LTMybDY0LTY0IDMyIDMyIDEyOC0xMjggOTYgOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpZ2d5QmFuayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjAgMjI0aC0yOS41Yy04LjgtMjAtMjEuNi0zNy43LTM3LjQtNTIuNUw1MTIgOTZoLTMyYy0yOS40IDAtNTUuNCAxMy41LTczIDM0LjMtNy42LTEuMS0xNS4xLTIuMy0yMy0yLjNIMjU2Yy03Ny40IDAtMTQxLjkgNTUtMTU2LjggMTI4SDU2Yy0xNC44IDAtMjYuNS0xMy41LTIzLjUtMjguOEMzNC43IDIxNS44IDQ1LjQgMjA4IDU3IDIwOGgxYzMuMyAwIDYtMi43IDYtNnYtMjBjMC0zLjMtMi43LTYtNi02LTI4LjUgMC01My45IDIwLjQtNTcuNSA0OC42Qy0zLjkgMjU4LjggMjIuNyAyODggNTYgMjg4aDQwYzAgNTIuMiAyNS40IDk4LjEgNjQgMTI3LjNWNDk2YzAgOC44IDcuMiAxNiAxNiAxNmg2NGM4LjggMCAxNi03LjIgMTYtMTZ2LTQ4aDEyOHY0OGMwIDguOCA3LjIgMTYgMTYgMTZoNjRjOC44IDAgMTYtNy4yIDE2LTE2di04MC43YzExLjgtOC45IDIyLjMtMTkuNCAzMS4zLTMxLjNINTYwYzguOCAwIDE2LTcuMiAxNi0xNlYyNDBjMC04LjgtNy4yLTE2LTE2LTE2em0tMTI4IDY0Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6TTI1NiA5NmgxMjhjNS40IDAgMTAuNy40IDE1LjkuOCAwLS4zLjEtLjUuMS0uOCAwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDIuMS41IDQuMS42IDYuMiAxNS4yLTMuOSAzMS02LjIgNDcuNC02LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpbGxzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMiAzMkM1MC4xIDMyIDAgODIuMSAwIDE0NHYyMjRjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJzMTEyLTUwLjEgMTEyLTExMlYxNDRjMC02MS45LTUwLjEtMTEyLTExMi0xMTJ6bTQ4IDIyNEg2NFYxNDRjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHYxMTJ6bTEzOS43LTI5LjdjLTMuNS0zLjUtOS40LTMuMS0xMi4zLjgtNDUuMyA2Mi41LTQwLjQgMTUwLjEgMTUuOSAyMDYuNCA1Ni4zIDU2LjMgMTQzLjkgNjEuMiAyMDYuNCAxNS45IDQtMi45IDQuMy04LjguOC0xMi4zTDI5OS43IDIyNi4zem0yMjkuOC0xOWMtNTYuMy01Ni4zLTE0My45LTYxLjItMjA2LjQtMTUuOS00IDIuOS00LjMgOC44LS44IDEyLjNsMjEwLjggMjEwLjhjMy41IDMuNSA5LjQgMy4xIDEyLjMtLjggNDUuMy02Mi42IDQwLjUtMTUwLjEtMTUuOS0yMDYuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGl6emFTbGljZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTguODcuMTVjLTE2LjE2LTEuNTItMzEuMiA4LjQyLTM1LjMzIDI0LjEybC0xNC44MSA1Ni4yN2MxODcuNjIgNS40OSAzMTQuNTQgMTMwLjYxIDMyMi40OCAzMTdsNTYuOTQtMTUuNzhjMTUuNzItNC4zNiAyNS40OS0xOS42OCAyMy42Mi0zNS45QzQ5MC44OSAxNjUuMDggMzQwLjc4IDE3LjMyIDE1OC44Ny4xNXptLTU4LjQ3IDExMkwuNTUgNDkxLjY0YTE2LjIxIDE2LjIxIDAgMCAwIDIwIDE5Ljc1bDM3OS0xMDUuMWMtNC4yNy0xNzQuODktMTIzLjA4LTI5Mi4xNC0yOTkuMTUtMjk0LjF6TTEyOCA0MTZhMzIgMzIgMCAxIDEgMzItMzIgMzIgMzIgMCAwIDEtMzIgMzJ6bTQ4LTE1MmEzMiAzMiAwIDEgMSAzMi0zMiAzMiAzMiAwIDAgMS0zMiAzMnptMTA0IDEwNGEzMiAzMiAwIDEgMSAzMi0zMiAzMiAzMiAwIDAgMS0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGxhY2VPZldvcnNoaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjIwLjYxIDM2Ni41NUw1MTIgMzIwdjE5MmgxMTJjOC44NCAwIDE2LTcuMTYgMTYtMTZWMzk1Ljk2YTMyIDMyIDAgMCAwLTE5LjM5LTI5LjQxek0wIDM5NS45NlY0OTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTEyVjMyMEwxOS4zOSAzNjYuNTVBMzIgMzIgMCAwIDAgMCAzOTUuOTZ6bTQ2NC40Ni0xNDkuMjhMNDE2IDIxNy42VjEwMi42M2MwLTguNDktMy4zNy0xNi42Mi05LjM4LTIyLjYzTDMzMS4zMSA0LjY5Yy02LjI1LTYuMjUtMTYuMzgtNi4yNS0yMi42MiAwTDIzMy4zOCA4MGMtNiA2LTkuMzggMTQuMTQtOS4zOCAyMi42M1YyMTcuNmwtNDguNDYgMjkuMDhBMzEuOTk3IDMxLjk5NyAwIDAgMCAxNjAgMjc0LjEyVjUxMmg5NnYtOTZjMC0zNS4zNSAyOC42Ni02NCA2NC02NHM2NCAyOC42NSA2NCA2NHY5Nmg5NlYyNzQuMTJjMC0xMS4yNC01LjktMjEuNjYtMTUuNTQtMjcuNDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYW5lQXJyaXZhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjQgNDQ4SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg2MDhjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2ek00NC44MSAyMDUuNjZsODguNzQgODBhNjIuNjA3IDYyLjYwNyAwIDAgMCAyNS40NyAxMy45M2wyODcuNiA3OC4zNWMyNi40OCA3LjIxIDU0LjU2IDguNzIgODEgMS4zNiAyOS42Ny04LjI3IDQzLjQ0LTIxLjIxIDQ3LjI1LTM1LjcxIDMuODMtMTQuNS0xLjczLTMyLjcxLTIzLjM3LTU0Ljk2LTE5LjI4LTE5LjgyLTQ0LjM1LTMyLjc5LTcwLjgzLTQwbC05Ny41MS0yNi41NkwyODIuOCAzMC4yMmMtMS41MS01LjgxLTUuOTUtMTAuMzUtMTEuNjYtMTEuOTFMMjA2LjA1LjU4Yy0xMC41Ni0yLjg4LTIwLjkgNS4zMi0yMC43MSAxNi40NGw0Ny45MiAxNjQuMjEtMTAyLjItMjcuODQtMjcuNTktNjcuODhjLTEuOTMtNC44OS02LjAxLTguNTctMTEuMDItOS45M0w1Mi43MiA2NC43NWMtMTAuMzQtMi44Mi0yMC41MyA1LTIwLjcyIDE1Ljg4bC4yMyAxMDEuNzhjLjE5IDguOTEgNi4wMyAxNy4zNCAxMi41OCAyMy4yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGxhbmVEZXBhcnR1cmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI0IDQ0OEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNjA4YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnpNODAuNTUgMzQxLjI3YzYuMjggNi44NCAxNS4xIDEwLjcyIDI0LjMzIDEwLjcxbDEzMC41NC0uMThhNjUuNjIgNjUuNjIgMCAwIDAgMjkuNjQtNy4xMmwyOTAuOTYtMTQ3LjY1YzI2Ljc0LTEzLjU3IDUwLjcxLTMyLjk0IDY3LjAyLTU4LjMxIDE4LjMxLTI4LjQ4IDIwLjMtNDkuMDkgMTMuMDctNjMuNjUtNy4yMS0xNC41Ny0yNC43NC0yNS4yNy01OC4yNS0yNy40NS0yOS44NS0xLjk0LTU5LjU0IDUuOTItODYuMjggMTkuNDhsLTk4LjUxIDQ5Ljk5LTIxOC43LTgyLjA2YTE3Ljc5OSAxNy43OTkgMCAwIDAtMTgtMS4xMUw5MC42MiA2Ny4yOWMtMTAuNjcgNS40MS0xMy4yNSAxOS42NS01LjE3IDI4LjUzbDE1Ni4yMiA5OC4xLTEwMy4yMSA1Mi4zOC03Mi4zNS0zNi40N2ExNy44MDQgMTcuODA0IDAgMCAwLTE2LjA3LjAyTDkuOTEgMjMwLjIyYy0xMC40NCA1LjMtMTMuMTkgMTkuMTItNS41NyAyOC4wOGw3Ni4yMSA4Mi45N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGxhbmVTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMi40OCwxNDcuODgsNjQsMjU2LDMyLjQ4LDM2NC4xM0ExNiwxNiwwLDAsMCw0OCwzODRIODhhMTYsMTYsMCwwLDAsMTIuOC02LjQxTDE0NCwzMjBIMjQ2Ljg1bC00OSwxNzEuNTlBMTYsMTYsMCwwLDAsMjEzLjIsNTEyaDY1LjVhMTYsMTYsMCwwLDAsMTMuODktOC4wNmw2Ni42LTExNi41NEwzNC4zNSwxMzYuMzRBMTUuNDcsMTUuNDcsMCwwLDAsMzIuNDgsMTQ3Ljg4Wk02MzMuODIsNDU4LjA5LDQ1NS4xNCwzMjBINTEyYzM1LjM0LDAsOTYtMjguNjYsOTYtNjRzLTYwLjY2LTY0LTk2LTY0SDM5Ny43TDI5Mi42MSw4LjA2QzI5MC4wNiwzLjYxLDI4My44NCwwLDI3OC43MSwwSDIxMy4yYTE2LDE2LDAsMCwwLTE1LjM4LDIwLjM5bDM2Ljk0LDEyOS4yOUw0NS40NiwzLjM4QTE2LDE2LDAsMCwwLDIzLDYuMTlMMy4zNywzMS40NUExNiwxNiwwLDAsMCw2LjE4LDUzLjkxTDU5NC41NCw1MDguNjNBMTYsMTYsMCwwLDAsNjE3LDUwNS44MWwxOS42NC0yNS4yNkExNiwxNiwwLDAsMCw2MzMuODIsNDU4LjA5WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbGFuZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAgMTkySDM2NS43MUwyNjAuNjEgOC4wNkExNi4wMTQgMTYuMDE0IDAgMCAwIDI0Ni43MSAwaC02NS41Yy0xMC42MyAwLTE4LjMgMTAuMTctMTUuMzggMjAuMzlMMjE0Ljg2IDE5MkgxMTJsLTQzLjItNTcuNmMtMy4wMi00LjAzLTcuNzctNi40LTEyLjgtNi40SDE2LjAxQzUuNiAxMjgtMi4wNCAxMzcuNzguNDkgMTQ3Ljg4TDMyIDI1NiAuNDkgMzY0LjEyQy0yLjA0IDM3NC4yMiA1LjYgMzg0IDE2LjAxIDM4NEg1NmM1LjA0IDAgOS43OC0yLjM3IDEyLjgtNi40TDExMiAzMjBoMTAyLjg2bC00OS4wMyAxNzEuNmMtMi45MiAxMC4yMiA0Ljc1IDIwLjQgMTUuMzggMjAuNGg2NS41YzUuNzQgMCAxMS4wNC0zLjA4IDEzLjg5LTguMDZMMzY1LjcxIDMyMEg0ODBjMzUuMzUgMCA5Ni0yOC42NSA5Ni02NHMtNjAuNjUtNjQtOTYtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYXlDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptMTE1LjcgMjcybC0xNzYgMTAxYy0xNS44IDguOC0zNS43LTIuNS0zNS43LTIxVjE1MmMwLTE4LjQgMTkuOC0yOS44IDM1LjctMjFsMTc2IDEwN2MxNi40IDkuMiAxNi40IDMyLjkgMCA0MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGxheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjQuNCAyMTQuN0w3Mi40IDYuNkM0My44LTEwLjMgMCA2LjEgMCA0Ny45VjQ2NGMwIDM3LjUgNDAuNyA2MC4xIDcyLjQgNDEuM2wzNTItMjA4YzMxLjQtMTguNSAzMS41LTY0LjEgMC04Mi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbHVnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCwzMmEzMiwzMiwwLDAsMC02NCwwdjk2aDY0Wm00OCwxMjhIMTZBMTYsMTYsMCwwLDAsMCwxNzZ2MzJhMTYsMTYsMCwwLDAsMTYsMTZIMzJ2MzJBMTYwLjA3LDE2MC4wNywwLDAsMCwxNjAsNDEyLjhWNTEyaDY0VjQxMi44QTE2MC4wNywxNjAuMDcsMCwwLDAsMzUyLDI1NlYyMjRoMTZhMTYsMTYsMCwwLDAsMTYtMTZWMTc2QTE2LDE2LDAsMCwwLDM2OCwxNjBaTTEyOCwzMmEzMiwzMiwwLDAsMC02NCwwdjk2aDY0WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbHVzQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTE0NCAyNzZjMCA2LjYtNS40IDEyLTEyIDEyaC05MnY5MmMwIDYuNi01LjQgMTItMTIgMTJoLTU2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTkyaC05MmMtNi42IDAtMTItNS40LTEyLTEydi01NmMwLTYuNiA1LjQtMTIgMTItMTJoOTJ2LTkyYzAtNi42IDUuNC0xMiAxMi0xMmg1NmM2LjYgMCAxMiA1LjQgMTIgMTJ2OTJoOTJjNi42IDAgMTIgNS40IDEyIDEydjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbHVzU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS0zMiAyNTJjMCA2LjYtNS40IDEyLTEyIDEyaC05MnY5MmMwIDYuNi01LjQgMTItMTIgMTJoLTU2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTkySDkyYy02LjYgMC0xMi01LjQtMTItMTJ2LTU2YzAtNi42IDUuNC0xMiAxMi0xMmg5MnYtOTJjMC02LjYgNS40LTEyIDEyLTEyaDU2YzYuNiAwIDEyIDUuNCAxMiAxMnY5Mmg5MmM2LjYgMCAxMiA1LjQgMTIgMTJ2NTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDIwOEgyNzJWNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MTQ0SDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMTQ0djE0NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMzA0aDE0NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQb2RjYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI2Ny40MjkgNDg4LjU2M0MyNjIuMjg2IDUwNy41NzMgMjQyLjg1OCA1MTIgMjI0IDUxMmMtMTguODU3IDAtMzguMjg2LTQuNDI3LTQzLjQyOC0yMy40MzdDMTcyLjkyNyA0NjAuMTM0IDE2MCAzODguODk4IDE2MCAzNTUuNzVjMC0zNS4xNTYgMzEuMTQyLTQzLjc1IDY0LTQzLjc1czY0IDguNTk0IDY0IDQzLjc1YzAgMzIuOTQ5LTEyLjg3MSAxMDQuMTc5LTIwLjU3MSAxMzIuODEzek0xNTYuODY3IDI4OC41NTRjLTE4LjY5My0xOC4zMDgtMjkuOTU4LTQ0LjE3My0yOC43ODQtNzIuNTk5IDIuMDU0LTQ5LjcyNCA0Mi4zOTUtODkuOTU2IDkyLjEyNC05MS44ODFDMjc0Ljg2MiAxMjEuOTU4IDMyMCAxNjUuODA3IDMyMCAyMjBjMCAyNi44MjctMTEuMDY0IDUxLjExNi0yOC44NjYgNjguNTUyLTIuNjc1IDIuNjItMi40MDEgNi45ODYuNjI4IDkuMTg3IDkuMzEyIDYuNzY1IDE2LjQ2IDE1LjM0MyAyMS4yMzQgMjUuMzYzIDEuNzQxIDMuNjU0IDYuNDk3IDQuNjYgOS40NDkgMS44OTEgMjguODI2LTI3LjA0MyA0Ni41NTMtNjUuNzgzIDQ1LjUxMS0xMDguNTY1LTEuODU1LTc2LjIwNi02My41OTUtMTM4LjIwOC0xMzkuNzkzLTE0MC4zNjlDMTQ2Ljg2OSA3My43NTMgODAgMTM5LjIxNSA4MCAyMjBjMCA0MS4zNjEgMTcuNTMyIDc4LjcgNDUuNTUgMTA0Ljk4OSAyLjk1MyAyLjc3MSA3LjcxMSAxLjc3IDkuNDUzLTEuODg3IDQuNzc0LTEwLjAyMSAxMS45MjMtMTguNTk4IDIxLjIzNS0yNS4zNjMgMy4wMjktMi4yIDMuMzA0LTYuNTY2LjYyOS05LjE4NXpNMjI0IDBDMTAwLjIwNCAwIDAgMTAwLjE4NSAwIDIyNGMwIDg5Ljk5MiA1Mi42MDIgMTY1LjY0NyAxMjUuNzM5IDIwMS40MDggNC4zMzMgMi4xMTggOS4yNjctMS41NDQgOC41MzUtNi4zMS0yLjM4Mi0xNS41MTItNC4zNDItMzAuOTQ2LTUuNDA2LTQ0LjMzOS0uMTQ2LTEuODM2LTEuMTQ5LTMuNDg2LTIuNjc4LTQuNTEyLTQ3LjQtMzEuODA2LTc4LjU2NC04Ni4wMTYtNzguMTg3LTE0Ny4zNDcuNTkyLTk2LjIzNyA3OS4yOS0xNzQuNjQ4IDE3NS41MjktMTc0Ljg5OUMzMjAuNzkzIDQ3Ljc0NyA0MDAgMTI2Ljc5NyA0MDAgMjI0YzAgNjEuOTMyLTMyLjE1OCAxMTYuNDktODAuNjUgMTQ3Ljg2Ny0uOTk5IDE0LjAzNy0zLjA2OSAzMC41ODgtNS42MjQgNDcuMjMtLjczMiA0Ljc2NyA0LjIwMyA4LjQyOSA4LjUzNSA2LjMxQzM5NS4yMjcgMzg5LjcyNyA0NDggMzE0LjE4NyA0NDggMjI0IDQ0OCAxMDAuMjA1IDM0Ny44MTUgMCAyMjQgMHptMCAxNjBjLTM1LjM0NiAwLTY0IDI4LjY1NC02NCA2NHMyOC42NTQgNjQgNjQgNjQgNjQtMjguNjU0IDY0LTY0LTI4LjY1NC02NC02NC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUG9sbEggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDQzMlY4MGMwLTI2LjUtMjEuNS00OC00OC00OEg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6TTExMiAxOTJjLTguODQgMC0xNi03LjE2LTE2LTE2di0zMmMwLTguODQgNy4xNi0xNiAxNi0xNmgxMjhjOC44NCAwIDE2IDcuMTYgMTYgMTZ2MzJjMCA4Ljg0LTcuMTYgMTYtMTYgMTZIMTEyem0wIDk2Yy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtMzJjMC04Ljg0IDcuMTYtMTYgMTYtMTZoMjI0YzguODQgMCAxNiA3LjE2IDE2IDE2djMyYzAgOC44NC03LjE2IDE2LTE2IDE2SDExMnptMCA5NmMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTMyYzAtOC44NCA3LjE2LTE2IDE2LTE2aDY0YzguODQgMCAxNiA3LjE2IDE2IDE2djMyYzAgOC44NC03LjE2IDE2LTE2IDE2aC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUG9sbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xNjAgMzY4YzAgOC44NC03LjE2IDE2LTE2IDE2aC0zMmMtOC44NCAwLTE2LTcuMTYtMTYtMTZWMjQwYzAtOC44NCA3LjE2LTE2IDE2LTE2aDMyYzguODQgMCAxNiA3LjE2IDE2IDE2djEyOHptOTYgMGMwIDguODQtNy4xNiAxNi0xNiAxNmgtMzJjLTguODQgMC0xNi03LjE2LTE2LTE2VjE0NGMwLTguODQgNy4xNi0xNiAxNi0xNmgzMmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYyMjR6bTk2IDBjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTMyYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtNjRjMC04Ljg0IDcuMTYtMTYgMTYtMTZoMzJjOC44NCAwIDE2IDcuMTYgMTYgMTZ2NjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBvb1N0b3JtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwOCAzMzZoLTU3LjdsMTcuMy02NC45YzItNy42LTMuNy0xNS4xLTExLjYtMTUuMWgtNjhjLTYgMC0xMS4xIDQuNS0xMS45IDEwLjRsLTE2IDEyMGMtMSA3LjIgNC42IDEzLjYgMTEuOSAxMy42aDU5LjNsLTIzIDk3LjJjLTEuOCA3LjYgNCAxNC44IDExLjcgMTQuOCA0LjIgMCA4LjItMi4yIDEwLjQtNmw4OC0xNTJjNC42LTgtMS4yLTE4LTEwLjQtMTh6bTY2LjQtMTExLjNjNS45LTkuNiA5LjYtMjAuNiA5LjYtMzIuNyAwLTM1LjMtMjguNy02NC02NC02NGgtNS45YzMuNi0xMC4xIDUuOS0yMC43IDUuOS0zMiAwLTUzLTQzLTk2LTk2LTk2LTUuMiAwLTEwLjIuNy0xNS4xIDEuNUMyMTguMyAxNC42IDIyNCAzMC42IDIyNCA0OGMwIDQ0LjItMzUuOCA4MC04MCA4MGgtMTZjLTM1LjMgMC02NCAyOC43LTY0IDY0IDAgMTIuMSAzLjcgMjMuMSA5LjYgMzIuN0MzMi42IDIyOCAwIDI2Mi4yIDAgMzA0YzAgNDQgMzYgODAgODAgODBoNDguM2MuMS0uNiAwLTEuMiAwLTEuOGwxNi0xMjBjMy0yMS44IDIxLjctMzguMiA0My43LTM4LjJoNjhjMTMuOCAwIDI2LjUgNi4zIDM0LjkgMTcuMnMxMS4yIDI0LjggNy42IDM4LjFsLTYuNiAyNC43aDE2YzE1LjcgMCAzMC4zIDguNCAzOC4xIDIyIDcuOCAxMy42IDcuOCAzMC41IDAgNDRsLTguMSAxNGgzMGM0NCAwIDgwLTM2IDgwLTgwIC4xLTQxLjgtMzIuNS03Ni03My41LTc5LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBvbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTEuNCAzNjkuMUM0NjguNyAzNTYgNDgwIDMzNS40IDQ4MCAzMTJjMC0zOS44LTMyLjItNzItNzItNzJoLTE0LjFjMTMuNC0xMS43IDIyLjEtMjguOCAyMi4xLTQ4IDAtMzUuMy0yOC43LTY0LTY0LTY0aC01LjljMy42LTEwLjEgNS45LTIwLjcgNS45LTMyIDAtNTMtNDMtOTYtOTYtOTYtNS4yIDAtMTAuMi43LTE1LjEgMS41QzI1MC4zIDE0LjYgMjU2IDMwLjYgMjU2IDQ4YzAgNDQuMi0zNS44IDgwLTgwIDgwaC0xNmMtMzUuMyAwLTY0IDI4LjctNjQgNjQgMCAxOS4yIDguNyAzNi4zIDIyLjEgNDhIMTA0Yy0zOS44IDAtNzIgMzIuMi03MiA3MiAwIDIzLjQgMTEuMyA0NCAyOC42IDU3LjFDMjYuMyAzNzQuNiAwIDQwNC4xIDAgNDQwYzAgMzkuOCAzMi4yIDcyIDcyIDcyaDM2OGMzOS44IDAgNzItMzIuMiA3Mi03MiAwLTM1LjktMjYuMy02NS40LTYwLjYtNzAuOXpNMTkyIDI1NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzJ6bTE1OS41IDEzOUMzNDEgNDIyLjkgMjkzIDQ0OCAyNTYgNDQ4cy04NS0yNS4xLTk1LjUtNTNjLTItNS4zIDItMTEgNy44LTExaDE3NS40YzUuOCAwIDkuOCA1LjcgNy44IDExek0zMjAgMzIwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUG9vcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTEuMzYgMzY5LjE0QzQ2OC42NiAzNTUuOTkgNDgwIDMzNS40MSA0ODAgMzEyYzAtMzkuNzctMzIuMjQtNzItNzItNzJoLTE0LjA3YzEzLjQyLTExLjczIDIyLjA3LTI4Ljc4IDIyLjA3LTQ4IDAtMzUuMzUtMjguNjUtNjQtNjQtNjRoLTUuODhjMy41Ny0xMC4wNSA1Ljg4LTIwLjcyIDUuODgtMzIgMC01My4wMi00Mi45OC05Ni05Ni05Ni01LjE3IDAtMTAuMTUuNzQtMTUuMTEgMS41MkMyNTAuMzEgMTQuNjQgMjU2IDMwLjYyIDI1NiA0OGMwIDQ0LjE4LTM1LjgyIDgwLTgwIDgwaC0xNmMtMzUuMzUgMC02NCAyOC42NS02NCA2NCAwIDE5LjIyIDguNjUgMzYuMjcgMjIuMDcgNDhIMTA0Yy0zOS43NiAwLTcyIDMyLjIzLTcyIDcyIDAgMjMuNDEgMTEuMzQgNDMuOTkgMjguNjQgNTcuMTRDMjYuMzEgMzc0LjYyIDAgNDA0LjEyIDAgNDQwYzAgMzkuNzYgMzIuMjQgNzIgNzIgNzJoMzY4YzM5Ljc2IDAgNzItMzIuMjQgNzItNzIgMC0zNS44OC0yNi4zMS02NS4zOC02MC42NC03MC44NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUG9ydHJhaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM2IDBINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyODhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTE5MiAxMjhjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjQtNjQtMjguNy02NC02NCAyOC43LTY0IDY0LTY0em0xMTIgMjM2LjhjMCAxMC42LTEwIDE5LjItMjIuNCAxOS4ySDEwMi40QzkwIDM4NCA4MCAzNzUuNCA4MCAzNjQuOHYtMTkuMmMwLTMxLjggMzAuMS01Ny42IDY3LjItNTcuNmg1YzEyLjMgNS4xIDI1LjcgOCAzOS44IDhzMjcuNi0yLjkgMzkuOC04aDVjMzcuMSAwIDY3LjIgMjUuOCA2Ny4yIDU3LjZ2MTkuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUG91bmRTaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwOCAzNTJoLTQ1LjQ5NWMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY1MC44NDhIMTI4VjI4OGg4NGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC04NHYtNjMuNTU2YzAtMzIuMjY2IDI0LjU2Mi01Ny4wODYgNjEuNzkyLTU3LjA4NiAyMy42NTggMCA0NS44NzggMTEuNTA1IDU3LjY1MiAxOC44NDkgNS4xNTEgMy4yMTMgMTEuODg4IDIuMDUxIDE1LjY4OC0yLjY4NWwyOC40OTMtMzUuNTEzYzQuMjMzLTUuMjc2IDMuMjc5LTEzLjAwNS0yLjExOS0xNy4wODFDMjczLjEyNCA1NC41NiAyMzYuNTc2IDMyIDE4Ny45MzEgMzIgMTA2LjAyNiAzMiA0OCA4NC43NDIgNDggMTU3Ljk2MVYyMjRIMjBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyOHYxMjhIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyOTZjNi42MjcgMCAxMi01LjM3MyAxMi0xMlYzNjRjMC02LjYyNy01LjM3My0xMi0xMi0xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUG93ZXJPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDU0LjFjNjMgNDUgMTA0IDExOC42IDEwNCAyMDEuOSAwIDEzNi44LTExMC44IDI0Ny43LTI0Ny41IDI0OEMxMjAgNTA0LjMgOC4yIDM5MyA4IDI1Ni40IDcuOSAxNzMuMSA0OC45IDk5LjMgMTExLjggNTQuMmMxMS43LTguMyAyOC00LjggMzUgNy43TDE2Mi42IDkwYzUuOSAxMC41IDMuMSAyMy44LTYuNiAzMS00MS41IDMwLjgtNjggNzkuNi02OCAxMzQuOS0uMSA5Mi4zIDc0LjUgMTY4LjEgMTY4IDE2OC4xIDkxLjYgMCAxNjguNi03NC4yIDE2OC0xNjkuMS0uMy01MS44LTI0LjctMTAxLjgtNjguMS0xMzQtOS43LTcuMi0xMi40LTIwLjUtNi41LTMwLjlsMTUuOC0yOC4xYzctMTIuNCAyMy4yLTE2LjEgMzQuOC03Ljh6TTI5NiAyNjRWMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRoLTMyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYyNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzJjMTMuMyAwIDI0LTEwLjcgMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVByYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDEyOGMzNS4zNSAwIDY0LTI4LjY1IDY0LTY0UzI5MS4zNSAwIDI1NiAwcy02NCAyOC42NS02NCA2NCAyOC42NSA2NCA2NCA2NHptLTMwLjYzIDE2OS43NWMxNC4wNiAxNi43MiAzOSAxOS4wOSA1NS45NyA1LjIybDg4LTcyLjAyYzE3LjA5LTEzLjk4IDE5LjU5LTM5LjE5IDUuNjItNTYuMjgtMTMuOTctMTcuMTEtMzkuMTktMTkuNTktNTYuMzEtNS42MmwtNTcuNDQgNDctMzguOTEtNDYuMzFjLTE1LjQ0LTE4LjM5LTM5LjIyLTI3LjkyLTY0LTI1LjMzLTI0LjE5IDIuNDgtNDUuMjUgMTYuMjctNTYuMzcgMzYuOTJsLTQ5LjM3IDkyLjAzYy0yMy40IDQzLjY0LTguNjkgOTYuMzcgMzQuMTkgMTIzLjc1TDEzMS41NiA0MzJINDBjLTIyLjA5IDAtNDAgMTcuOTEtNDAgNDBzMTcuOTEgNDAgNDAgNDBoMjA4YzM0LjA4IDAgNTMuNzctNDIuNzkgMjguMjgtNjguMjhMMTY2LjQyIDMzMy44NmwzNC44LTY0Ljg3IDI0LjE1IDI4Ljc2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQcmF5aW5nSGFuZHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyIDE5MS45MWMtMTcuNiAwLTMyIDE0LjQtMzIgMzJ2ODBjMCA4Ljg0LTcuMTYgMTYtMTYgMTZzLTE2LTcuMTYtMTYtMTZ2LTc2LjU1YzAtMTcuMzkgNC43Mi0zNC40NyAxMy42OS00OS4zOWw3Ny43NS0xMjkuNTljOS4wOS0xNS4xNiA0LjE5LTM0LjgxLTEwLjk3LTQzLjkxLTE0LjQ1LTguNjctMzIuNzItNC4zLTQyLjMgOS4yMS0uMi4yMy0uNjIuMjEtLjc5LjQ4bC0xMTcuMjYgMTc1LjlDMTE3LjU2IDIwNS45IDExMiAyMjQuMzEgMTEyIDI0My4yOXY4MC4yM2wtOTAuMTIgMzAuMDRBMzEuOTc0IDMxLjk3NCAwIDAgMCAwIDM4My45MXY5NmMwIDEwLjgyIDguNTIgMzIgMzIgMzIgMi42OSAwIDUuNDEtLjM0IDguMDYtMS4wM2wxNzkuMTktNDYuNjJDMjY5LjE2IDQ0OS45OSAzMDQgNDAzLjggMzA0IDM1MS45MXYtMTI4YzAtMTcuNi0xNC40LTMyLTMyLTMyem0zNDYuMTIgMTYxLjczTDUyOCAzMjMuNnYtODAuMjNjMC0xOC45OC01LjU2LTM3LjM5LTE2LjEyLTUzLjIzTDM5NC42MiAxNC4yNWMtLjE4LS4yNy0uNTktLjI0LS43OS0uNDgtOS41OC0xMy41MS0yNy44NS0xNy44OC00Mi4zLTkuMjEtMTUuMTYgOS4wOS0yMC4wNiAyOC43NS0xMC45NyA0My45MWw3Ny43NSAxMjkuNTljOC45NyAxNC45MiAxMy42OSAzMiAxMy42OSA0OS4zOVYzMDRjMCA4Ljg0LTcuMTYgMTYtMTYgMTZzLTE2LTcuMTYtMTYtMTZ2LTgwYzAtMTcuNi0xNC40LTMyLTMyLTMycy0zMiAxNC40LTMyIDMydjEyOGMwIDUxLjg5IDM0Ljg0IDk4LjA4IDg0Ljc1IDExMi4zNGwxNzkuMTkgNDYuNjJjMi42Ni42OSA1LjM4IDEuMDMgOC4wNiAxLjAzIDIzLjQ4IDAgMzItMjEuMTggMzItMzJ2LTk2YzAtMTMuNzctOC44MS0yNS45OS0yMS44OC0zMC4zNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHJlc2NyaXB0aW9uQm90dGxlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2MCAwSDI0QzEwLjggMCAwIDEwLjggMCAyNHY0OGMwIDEzLjIgMTAuOCAyNCAyNCAyNGgzMzZjMTMuMiAwIDI0LTEwLjggMjQtMjRWMjRjMC0xMy4yLTEwLjgtMjQtMjQtMjR6TTMyIDQ4MGMwIDE3LjYgMTQuNCAzMiAzMiAzMmgyNTZjMTcuNiAwIDMyLTE0LjQgMzItMzJWMTI4SDMydjM1MnptNjQtMTg0YzAtNC40IDMuNi04IDgtOGg1NnYtNTZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHY1Nmg1NmM0LjQgMCA4IDMuNiA4IDh2NDhjMCA0LjQtMy42IDgtOCA4aC01NnY1NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTU2aC01NmMtNC40IDAtOC0zLjYtOC04di00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHJlc2NyaXB0aW9uQm90dGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDE5MmgxMjBjNC40IDAgOCAzLjYgOCA4djE2YzAgNC40LTMuNiA4LTggOEgzMnY2NGgxMjBjNC40IDAgOCAzLjYgOCA4djE2YzAgNC40LTMuNiA4LTggOEgzMnY2NGgxMjBjNC40IDAgOCAzLjYgOCA4djE2YzAgNC40LTMuNiA4LTggOEgzMnY2NGMwIDE3LjYgMTQuNCAzMiAzMiAzMmgyNTZjMTcuNiAwIDMyLTE0LjQgMzItMzJWMTI4SDMydjY0ek0zNjAgMEgyNEMxMC44IDAgMCAxMC44IDAgMjR2NDhjMCAxMy4yIDEwLjggMjQgMjQgMjRoMzM2YzEzLjIgMCAyNC0xMC44IDI0LTI0VjI0YzAtMTMuMi0xMC44LTI0LTI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQcmVzY3JpcHRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzAxLjI2IDM1Mmw3OC4wNi03OC4wNmM2LjI1LTYuMjUgNi4yNS0xNi4zOCAwLTIyLjYzbC0yMi42My0yMi42M2MtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjMgMEwyNTYgMzA2Ljc0bC04My45Ni04My45NkMyMTkuMzEgMjE2LjggMjU2IDE3Ni44OSAyNTYgMTI4YzAtNTMuMDItNDIuOTgtOTYtOTYtOTZIMTZDNy4xNiAzMiAwIDM5LjE2IDAgNDh2MjU2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2di04MGgxOC43NWwxMjggMTI4LTc4LjA2IDc4LjA2Yy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzbDIyLjYzIDIyLjYzYzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBMMjU2IDM5Ny4yNWw3OC4wNiA3OC4wNmM2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwbDIyLjYzLTIyLjYzYzYuMjUtNi4yNSA2LjI1LTE2LjM4IDAtMjIuNjNMMzAxLjI2IDM1MnpNNjQgOTZoOTZjMTcuNjQgMCAzMiAxNC4zNiAzMiAzMnMtMTQuMzYgMzItMzIgMzJINjRWOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVByaW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAxOTJWNzcuMjVjMC04LjQ5LTMuMzctMTYuNjItOS4zNy0yMi42M0wzOTMuMzcgOS4zN2MtNi02LTE0LjE0LTkuMzctMjIuNjMtOS4zN0g5NkM3OC4zMyAwIDY0IDE0LjMzIDY0IDMydjE2MGMtMzUuMzUgMC02NCAyOC42NS02NCA2NHYxMTJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDh2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMjBjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtOTZoNDhjOC44NCAwIDE2LTcuMTYgMTYtMTZWMjU2YzAtMzUuMzUtMjguNjUtNjQtNjQtNjR6bS02NCAyNTZIMTI4di05NmgyNTZ2OTZ6bTAtMjI0SDEyOFY2NGgxOTJ2NDhjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDh2OTZ6bTQ4IDcyYy0xMy4yNSAwLTI0LTEwLjc1LTI0LTI0IDAtMTMuMjYgMTAuNzUtMjQgMjQtMjRzMjQgMTAuNzQgMjQgMjRjMCAxMy4yNS0xMC43NSAyNC0yNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHJvY2VkdXJlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjggMjI0SDI3MmMtOC44IDAtMTYgNy4yLTE2IDE2djE0NEg2NFYxNDRjMC04LjgtNy4yLTE2LTE2LTE2SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzUyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZ2LTQ4aDUxMnY0OGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjMzNmMwLTYxLjktNTAuMS0xMTItMTEyLTExMnpNMTM2IDk2aDEyNi4xbDI3LjYgNTUuMmM1LjkgMTEuOCAyMi43IDExLjggMjguNiAwTDM2OCA1MS44IDM5MC4xIDk2SDUxMmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkg0MDkuOUwzODIuMyA4LjhDMzc2LjQtMyAzNTkuNi0zIDM1My43IDguOEwzMDQgMTA4LjJsLTE5LjktMzkuOGMtMS40LTIuNy00LjEtNC40LTcuMi00LjRIMTM2Yy00LjQgMC04IDMuNi04IDh2MTZjMCA0LjQgMy42IDggOCA4em0yNCAyNTZjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjQtNjQgMjguNy02NCA2NCAyOC43IDY0IDY0IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQcm9qZWN0RGlhZ3JhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMzIwSDI1NmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYxMjhjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgxMjhjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYzNTJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpNMTkyIDMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJIMzJDMTQuMzMgMCAwIDE0LjMzIDAgMzJ2MTI4YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoOTUuNzJsNzMuMTYgMTI4LjA0QzIxMS45OCAzMDAuOTggMjMyLjQgMjg4IDI1NiAyODhoLjI4TDE5MiAxNzUuNTFWMTI4aDIyNFY2NEgxOTJWMzJ6TTYwOCAwSDQ4MGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYxMjhjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgxMjhjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYzMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQdW1wTWVkaWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzUuNTEsMTU5LjgySDg0LjI0QTY0LDY0LDAsMCwwLDIwLjUxLDIxOEwuMTQsNDQyYTY0LDY0LDAsMCwwLDYzLjc0LDY5LjhoMTkyQTY0LDY0LDAsMCwwLDMxOS42MSw0NDJMMjk5LjI0LDIxOEE2NCw2NCwwLDAsMCwyMzUuNTEsMTU5LjgyWm00LjM3LDE3My4zM2ExMy4zNSwxMy4zNSwwLDAsMS0xMy4zNCwxMy4zNGgtNDB2NDBhMTMuMzMsMTMuMzMsMCwwLDEtMTMuMzMsMTMuMzNIMTQ2LjU0YTEzLjMzLDEzLjMzLDAsMCwxLTEzLjMzLTEzLjMzdi00MGgtNDBhMTMuMzQsMTMuMzQsMCwwLDEtMTMuMzMtMTMuMzRWMzA2LjQ5YTEzLjMzLDEzLjMzLDAsMCwxLDEzLjMzLTEzLjM0aDQwdi00MGExMy4zMywxMy4zMywwLDAsMSwxMy4zMy0xMy4zM2gyNi42N2ExMy4zMywxMy4zMywwLDAsMSwxMy4zMywxMy4zM3Y0MGg0MGExMy4zNCwxMy4zNCwwLDAsMSwxMy4zNCwxMy4zNFpNMzc5LjE5LDkzLjg4LDMzNS44Nyw1MC41NmE2NCw2NCwwLDAsMC00NS4yNC0xOC43NEgyMjMuODhhMzIsMzIsMCwwLDAtMzItMzJoLTY0YTMyLDMyLDAsMCwwLTMyLDMydjk2aDEyOHYtMzJoNjYuNzVsNDMuMzEsNDMuMzFhMTYsMTYsMCwwLDAsMjIuNjMsMGwyMi42Mi0yMi42MkExNiwxNiwwLDAsMCwzNzkuMTksOTMuODhaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVB1bXBTb2FwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzNS42MywxNjBIODQuMzdhNjQsNjQsMCwwLDAtNjMuNzQsNTguMjFMLjI3LDQ0Mi4yMUE2NCw2NCwwLDAsMCw2NCw1MTJIMjU2YTY0LDY0LDAsMCwwLDYzLjc0LTY5Ljc5bC0yMC4zNi0yMjRBNjQsNjQsMCwwLDAsMjM1LjYzLDE2MFpNMTYwLDQxNmMtMzMuMTIsMC02MC0yNi4zMy02MC01OC43NSwwLTI1LDM1LjctNzUuNDcsNTItOTcuMjdBMTAsMTAsMCwwLDEsMTY4LDI2MGMxNi4zMywyMS44LDUyLDcyLjI3LDUyLDk3LjI3QzIyMCwzODkuNjcsMTkzLjEyLDQxNiwxNjAsNDE2Wk0zNzkuMzEsOTQuMDYsMzM2LDUwLjc0QTY0LDY0LDAsMCwwLDI5MC43NSwzMkgyMjRBMzIsMzIsMCwwLDAsMTkyLDBIMTI4QTMyLDMyLDAsMCwwLDk2LDMydjk2SDIyNFY5Nmg2Ni43NWw0My4zMSw0My4zMWExNiwxNiwwLDAsMCwyMi42MywwbDIyLjYyLTIyLjYyQTE2LDE2LDAsMCwwLDM3OS4zMSw5NC4wNlpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHV6emxlUGllY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTE5LjQ0MiAyODguNjUxYy00MS41MTkgMC01OS41IDMxLjU5My04Mi4wNTggMzEuNTkzQzM3Ny40MDkgMzIwLjI0NCA0MzIgMTQ0IDQzMiAxNDRzLTE5Ni4yODggODAtMTk2LjI4OC0zLjI5N2MwLTM1LjgyNyAzNi4yODgtNDYuMjUgMzYuMjg4LTg1Ljk4NUMyNzIgMTkuMjE2IDI0My44ODUgMCAyMTAuNTM5IDBjLTM0LjY1NCAwLTY2LjM2NiAxOC44OTEtNjYuMzY2IDU2LjM0NiAwIDQxLjM2NCAzMS43MTEgNTkuMjc3IDMxLjcxMSA4MS43NUMxNzUuODg1IDIwNy43MTkgMCAxNjYuNzU4IDAgMTY2Ljc1OHYzMzMuMjM3czE3OC42MzUgNDEuMDQ3IDE3OC42MzUtMjguNjYyYzAtMjIuNDczLTQwLTQwLjEwNy00MC04MS40NzEgMC0zNy40NTYgMjkuMjUtNTYuMzQ2IDYzLjU3Ny01Ni4zNDYgMzMuNjczIDAgNjEuNzg4IDE5LjIxNiA2MS43ODggNTQuNzE3IDAgMzkuNzM1LTM2LjI4OCA1MC4xNTgtMzYuMjg4IDg1Ljk4NSAwIDYwLjgwMyAxMjkuNjc1IDI1LjczIDE4MS4yMyAyNS43MyAwIDAtMzQuNzI1LTEyMC4xMDEgMjUuODI3LTEyMC4xMDEgMzUuOTYyIDAgNDYuNDIzIDM2LjE1MiA4Ni4zMDggMzYuMTUyQzU1Ni43MTIgNDE2IDU3NiAzODcuOTkgNTc2IDM1NC40NDNjMC0zNC4xOTktMTguOTYyLTY1Ljc5Mi01Ni41NTgtNjUuNzkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFRcmNvZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyMjRoMTkyVjMySDB2MTkyek02NCA5Nmg2NHY2NEg2NFY5NnptMTkyLTY0djE5MmgxOTJWMzJIMjU2em0xMjggMTI4aC02NFY5Nmg2NHY2NHpNMCA0ODBoMTkyVjI4OEgwdjE5MnptNjQtMTI4aDY0djY0SDY0di02NHptMzUyLTY0aDMydjEyOGgtOTZ2LTMyaC0zMnY5NmgtNjRWMjg4aDk2djMyaDY0di0zMnptMCAxNjBoMzJ2MzJoLTMydi0zMnptLTY0IDBoMzJ2MzJoLTMydi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUXVlc3Rpb25DaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA0IDI1NmMwIDEzNi45OTctMTExLjA0MyAyNDgtMjQ4IDI0OFM4IDM5Mi45OTcgOCAyNTZDOCAxMTkuMDgzIDExOS4wNDMgOCAyNTYgOHMyNDggMTExLjA4MyAyNDggMjQ4ek0yNjIuNjU1IDkwYy01NC40OTcgMC04OS4yNTUgMjIuOTU3LTExNi41NDkgNjMuNzU4LTMuNTM2IDUuMjg2LTIuMzUzIDEyLjQxNSAyLjcxNSAxNi4yNThsMzQuNjk5IDI2LjMxYzUuMjA1IDMuOTQ3IDEyLjYyMSAzLjAwOCAxNi42NjUtMi4xMjIgMTcuODY0LTIyLjY1OCAzMC4xMTMtMzUuNzk3IDU3LjMwMy0zNS43OTcgMjAuNDI5IDAgNDUuNjk4IDEzLjE0OCA0NS42OTggMzIuOTU4IDAgMTQuOTc2LTEyLjM2MyAyMi42NjctMzIuNTM0IDMzLjk3NkMyNDcuMTI4IDIzOC41MjggMjE2IDI1NC45NDEgMjE2IDI5NnY0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNTZjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtMS4zMzNjMC0yOC40NjIgODMuMTg2LTI5LjY0NyA4My4xODYtMTA2LjY2NyAwLTU4LjAwMi02MC4xNjUtMTAyLTExNi41MzEtMTAyek0yNTYgMzM4Yy0yNS4zNjUgMC00NiAyMC42MzUtNDYgNDYgMCAyNS4zNjQgMjAuNjM1IDQ2IDQ2IDQ2czQ2LTIwLjYzNiA0Ni00NmMwLTI1LjM2NS0yMC42MzUtNDYtNDYtNDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVF1ZXN0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwMi4wMjEgMEMxMjIuMjAyIDAgNzAuNTAzIDMyLjcwMyAyOS45MTQgOTEuMDI2Yy03LjM2MyAxMC41OC01LjA5MyAyNS4wODYgNS4xNzggMzIuODc0bDQzLjEzOCAzMi43MDljMTAuMzczIDcuODY1IDI1LjEzMiA2LjAyNiAzMy4yNTMtNC4xNDggMjUuMDQ5LTMxLjM4MSA0My42My00OS40NDkgODIuNzU3LTQ5LjQ0OSAzMC43NjQgMCA2OC44MTYgMTkuNzk5IDY4LjgxNiA0OS42MzEgMCAyMi41NTItMTguNjE3IDM0LjEzNC00OC45OTMgNTEuMTY0LTM1LjQyMyAxOS44Ni04Mi4yOTkgNDQuNTc2LTgyLjI5OSAxMDYuNDA1VjMyMGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoNzIuNDcxYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtNS43NzNjMC00Mi44NiAxMjUuMjY4LTQ0LjY0NSAxMjUuMjY4LTE2MC42MjdDMzc3LjUwNCA2Ni4yNTYgMjg2LjkwMiAwIDIwMi4wMjEgMHpNMTkyIDM3My40NTljLTM4LjE5NiAwLTY5LjI3MSAzMS4wNzUtNjkuMjcxIDY5LjI3MSAwIDM4LjE5NSAzMS4wNzUgNjkuMjcgNjkuMjcxIDY5LjI3czY5LjI3MS0zMS4wNzUgNjkuMjcxLTY5LjI3MS0zMS4wNzUtNjkuMjctNjkuMjcxLTY5LjI3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFRdWlkZGl0Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2LjUgMjE2LjhMMzQzLjIgMzI2cy0xNi42IDEwMi40LTc2LjYgMTUwLjFDMjA2LjcgNTIzLjggMCA1MTAuMiAwIDUxMC4yczMuOC0yMy4xIDExLTU1LjRsOTQuNi0xMTIuMmM0LTQuNy0uOS0xMS42LTYuNi05LjVsLTYwLjQgMjIuMWMxNC40LTQxLjcgMzIuNy04MCA1NC42LTk3LjUgNTkuOS00Ny44IDE2My4zLTQwLjkgMTYzLjMtNDAuOXptMjM4IDEzNWMtNDQgMC03OS44IDM1LjgtNzkuOCA3OS45IDAgNDQuMSAzNS43IDc5LjkgNzkuOCA3OS45IDQ0LjEgMCA3OS44LTM1LjggNzkuOC03OS45IDAtNDQuMi0zNS44LTc5LjktNzkuOC03OS45ek02MzYuNSAzMUw2MTYuNyA2Yy01LjUtNi45LTE1LjUtOC0yMi40LTIuNkwzNjEuOCAxODEuM2wtMzQuMS00M2MtNS4xLTYuNC0xNS4xLTUuMi0xOC42IDIuMmwtMjUuMyA1NC42IDg2LjcgMTA5LjIgNTguOC0xMi40YzgtMS43IDExLjQtMTEuMiA2LjMtMTcuNmwtMzQuMS00Mi45TDYzNCA1My41YzYuOS01LjUgOC0xNS42IDIuNS0yMi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFRdW90ZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NmgtODB2LTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0aDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRoLThjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwdjI0MGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgxMjhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tMjg4IDBIOTZ2LTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0aDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRoLThDNzEuNiAzMiAwIDEwMy42IDAgMTkydjI0MGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgxMjhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFRdW90ZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAzMkgzMzZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djEyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGg4MHY2NGMwIDM1LjMtMjguNyA2NC02NCA2NGgtOGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2NDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRoOGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHptLTI4OCAwSDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MTI4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDgwdjY0YzAgMzUuMy0yOC43IDY0LTY0IDY0aC04Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHY0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGg4Yzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwVjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFRdXJhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMzU4LjRWMjUuNmMwLTE2LTkuNi0yNS42LTI1LjYtMjUuNkg5NkM0MS42IDAgMCA0MS42IDAgOTZ2MzIwYzAgNTQuNCA0MS42IDk2IDk2IDk2aDMyNi40YzEyLjggMCAyNS42LTkuNiAyNS42LTI1LjZ2LTE2YzAtNi40LTMuMi0xMi44LTkuNi0xOS4yLTMuMi0xNi0zLjItNjAuOCAwLTczLjYgNi40LTMuMiA5LjYtOS42IDkuNi0xOS4yek0zMDEuMDggMTQ1LjgyYy42LTEuMjEgMS43Ni0xLjgyIDIuOTItMS44MnMyLjMyLjYxIDIuOTIgMS44MmwxMS4xOCAyMi42NSAyNSAzLjYzYzIuNjcuMzkgMy43NCAzLjY3IDEuODEgNS41NmwtMTguMDkgMTcuNjMgNC4yNyAyNC44OWMuMzYgMi4xMS0xLjMxIDMuODItMy4yMSAzLjgyLS41IDAtMS4wMi0uMTItMS41Mi0uMzhMMzA0IDIxMS44N2wtMjIuMzYgMTEuNzVjLS41LjI2LTEuMDIuMzgtMS41Mi4zOC0xLjkgMC0zLjU3LTEuNzEtMy4yMS0zLjgybDQuMjctMjQuODktMTguMDktMTcuNjNjLTEuOTQtMS44OS0uODctNS4xNyAxLjgxLTUuNTZsMjQuOTktMy42MyAxMS4xOS0yMi42NXptLTU3Ljg5LTY5LjAxYzEzLjY3IDAgMjcuMjYgMi40OSA0MC4zOCA3LjQxYTYuNzc1IDYuNzc1IDAgMSAxLTIuMzggMTMuMTJjLS42NyAwLTMuMDktLjIxLTQuMTMtLjIxLTUyLjMxIDAtOTQuODYgNDIuNTUtOTQuODYgOTQuODYgMCA1Mi4zIDQyLjU1IDk0Ljg2IDk0Ljg2IDk0Ljg2IDEuMDMgMCAzLjQ4LS4yMSA0LjEzLS4yMSAzLjkzIDAgNi44IDMuMTQgNi44IDYuNzggMCAyLjk4LTEuOTQgNS41MS00LjYyIDYuNDItMTMuMDcgNC44Ny0yNi41OSA3LjM0LTQwLjE5IDcuMzRDMTc5LjY3IDMwNy4xOSAxMjggMjU1LjUxIDEyOCAxOTJjMC02My41MiA1MS42Ny0xMTUuMTkgMTE1LjE5LTExNS4xOXpNMzgwLjggNDQ4SDk2Yy0xOS4yIDAtMzItMTIuOC0zMi0zMnMxNi0zMiAzMi0zMmgyODQuOHY2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmFkaWF0aW9uQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMiAyNTZoNzkuMWM5LjIgMCAxNi45LTcuNyAxNi0xNi44LTQuNi00My42LTI3LTgxLjgtNTkuNS0xMDcuOC03LjYtNi4xLTE4LjgtNC41LTI0IDMuOEwyODEuOSAyMDJjMTggMTEuMiAzMC4xIDMxLjIgMzAuMSA1NHptLTk3LjggNTQuMUwxNzIuNCAzNzdjLTQuOSA3LjgtMi40IDE4LjQgNS44IDIyLjUgMjEuMSAxMC40IDQ0LjcgMTYuNSA2OS44IDE2LjVzNDguNy02LjEgNjkuOS0xNi41YzguMi00LjEgMTAuNi0xNC43IDUuOC0yMi41bC00MS44LTY2LjljLTkuOCA2LjItMjEuNCA5LjktMzMuOCA5LjlzLTI0LjEtMy43LTMzLjktOS45ek0xMDQuOSAyNTZIMTg0YzAtMjIuOCAxMi4xLTQyLjggMzAuMi01NC4xbC00MS43LTY2LjhjLTUuMi04LjMtMTYuNC05LjktMjQtMy44LTMyLjYgMjYtNTQuOSA2NC4yLTU5LjUgMTA3LjgtMS4xIDkuMiA2LjcgMTYuOSAxNS45IDE2Ljl6TTI0OCA1MDRjMTM3IDAgMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OHptMC00MzJjMTAxLjUgMCAxODQgODIuNSAxODQgMTg0cy04Mi41IDE4NC0xODQgMTg0UzY0IDM1Ny41IDY0IDI1NiAxNDYuNSA3MiAyNDggNzJ6bTAgMjE2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmFkaWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyOC4yIDI1NS44aDE1MS42YzkuMSAwIDE2LjgtNy43IDE2LjItMTYuOC01LjEtNzUuOC00NC40LTE0Mi4yLTEwMi41LTE4NC4yLTcuNC01LjMtMTcuOS0yLjktMjIuNyA0LjhMMjkwLjQgMTg4YzIyLjYgMTQuMyAzNy44IDM5LjIgMzcuOCA2Ny44em0tMzcuOCA2Ny43Yy0xMi4zIDcuNy0yNi44IDEyLjQtNDIuNCAxMi40LTE1LjYgMC0zMC00LjctNDIuNC0xMi40TDEyNS4yIDQ1MmMtNC44IDcuNy0yLjQgMTguMSA1LjYgMjIuNEMxNjUuNyA0OTMuMiAyMDUuNiA1MDQgMjQ4IDUwNHM4Mi4zLTEwLjggMTE3LjItMjkuNmM4LTQuMyAxMC40LTE0LjggNS42LTIyLjRsLTgwLjQtMTI4LjV6TTI0OCAzMDMuOGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OC00OCAyMS41LTQ4IDQ4IDIxLjUgNDggNDggNDh6bS0yMzEuOC00OGgxNTEuNmMwLTI4LjYgMTUuMi01My41IDM3LjgtNjcuN0wxMjUuMiA1OS43Yy00LjgtNy43LTE1LjMtMTAuMi0yMi43LTQuOEM0NC40IDk2LjkgNS4xIDE2My4zIDAgMjM5LjFjLS42IDkgNy4xIDE2LjcgMTYuMiAxNi43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSYWluYm93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI2OC4zIDMyLjdDMTE1LjQgNDIuOSAwIDE3Ni45IDAgMzMwLjJWNDY0YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzIwQzY0IDE4Ni44IDE4MC45IDgwLjMgMzE3LjUgOTcuOSA0MzAuNCAxMTIuNCA1MTIgMjE0IDUxMiAzMjcuOFY0NjRjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzMjBjMC0xNjUuMy0xNDAtMjk4LjYtMzA3LjctMjg3LjN6bS01LjYgOTYuOUMxNjYgMTQyIDk2IDIyOS4xIDk2IDMyNi43VjQ2NGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjMyMGMwLTc0LjggNjQuNS0xMzQuOCAxNDAuOC0xMjcuNCA2Ni41IDYuNSAxMTUuMiA2Ni4yIDExNS4yIDEzMy4xVjQ2NGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjMyMGMwLTExNC4yLTEwMC4yLTIwNS40LTIxNy4zLTE5MC40em02LjIgOTYuM2MtNDUuNiA4LjktNzYuOSA1MS41LTc2LjkgOTcuOVY0NjRjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzMjBjMC0xNy42IDE0LjMtMzIgMzItMzJzMzIgMTQuNCAzMiAzMnYxNDRjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzMjBjMC01OS4yLTUzLjgtMTA2LTExNS4xLTk0LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJhbmRvbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQuOTcxIDM1OS4wMjljOS4zNzMgOS4zNzMgOS4zNzMgMjQuNTY5IDAgMzMuOTQxbC04MCA3OS45ODRjLTE1LjAxIDE1LjAxLTQwLjk3MSA0LjQ5LTQwLjk3MS0xNi45NzFWNDE2aC01OC43ODVhMTIuMDA0IDEyLjAwNCAwIDAgMS04Ljc3My0zLjgxMmwtNzAuNTU2LTc1LjU5NiA1My4zMzMtNTcuMTQzTDM1MiAzMzZoMzJ2LTM5Ljk4MWMwLTIxLjQzOCAyNS45NDMtMzEuOTk4IDQwLjk3MS0xNi45NzFsODAgNzkuOTgxek0xMiAxNzZoODRsNTIuNzgxIDU2LjU1MSA1My4zMzMtNTcuMTQzLTcwLjU1Ni03NS41OTZBMTEuOTk5IDExLjk5OSAwIDAgMCAxMjIuNzg1IDk2SDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjU2YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJ6bTM3MiAwdjM5Ljk4NGMwIDIxLjQ2IDI1Ljk2MSAzMS45OCA0MC45NzEgMTYuOTcxbDgwLTc5Ljk4NGM5LjM3My05LjM3MyA5LjM3My0yNC41NjkgMC0zMy45NDFsLTgwLTc5Ljk4MUM0MDkuOTQzIDI0LjAyMSAzODQgMzQuNTgyIDM4NCA1Ni4wMTlWOTZoLTU4Ljc4NWExMi4wMDQgMTIuMDA0IDAgMCAwLTguNzczIDMuODEyTDk2IDMzNkgxMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY1NmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDExMC43ODVjMy4zMjYgMCA2LjUwMy0xLjM4MSA4Ljc3My0zLjgxMkwzNTIgMTc2aDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWNlaXB0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1OC40IDMuMkwzMjAgNDggMjY1LjYgMy4yYTE1LjkgMTUuOSAwIDAgMC0xOS4yIDBMMTkyIDQ4IDEzNy42IDMuMmExNS45IDE1LjkgMCAwIDAtMTkuMiAwTDY0IDQ4IDI1LjYgMy4yQzE1LTQuNyAwIDIuOCAwIDE2djQ4MGMwIDEzLjIgMTUgMjAuNyAyNS42IDEyLjhMNjQgNDY0bDU0LjQgNDQuOGExNS45IDE1LjkgMCAwIDAgMTkuMiAwTDE5MiA0NjRsNTQuNCA0NC44YTE1LjkgMTUuOSAwIDAgMCAxOS4yIDBMMzIwIDQ2NGwzOC40IDQ0LjhjMTAuNSA3LjkgMjUuNi40IDI1LjYtMTIuOFYxNmMwLTEzLjItMTUtMjAuNy0yNS42LTEyLjh6TTMyMCAzNjBjMCA0LjQtMy42IDgtOCA4SDcyYy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgyNDBjNC40IDAgOCAzLjYgOCA4djE2em0wLTk2YzAgNC40LTMuNiA4LTggOEg3MmMtNC40IDAtOC0zLjYtOC04di0xNmMwLTQuNCAzLjYtOCA4LThoMjQwYzQuNCAwIDggMy42IDggOHYxNnptMC05NmMwIDQuNC0zLjYgOC04IDhINzJjLTQuNCAwLTgtMy42LTgtOHYtMTZjMC00LjQgMy42LTggOC04aDI0MGM0LjQgMCA4IDMuNiA4IDh2MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlY29yZFZpbnlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAxNTJhMTA0IDEwNCAwIDEgMCAxMDQgMTA0IDEwNCAxMDQgMCAwIDAtMTA0LTEwNHptMCAxMjhhMjQgMjQgMCAxIDEgMjQtMjQgMjQgMjQgMCAwIDEtMjQgMjR6bTAtMjcyQzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTAgMzc2YTEyOCAxMjggMCAxIDEgMTI4LTEyOCAxMjggMTI4IDAgMCAxLTEyOCAxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlY3ljbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg0LjU2MSAyNjEuOTAzYzMuMjMyIDEzLjk5Ny0xMi4xMjMgMjQuNjM1LTI0LjA2OCAxNy4xNjhsLTQwLjczNi0yNS40NTUtNTAuODY3IDgxLjQwMkM1NS42MDYgMzU2LjI3MyA3MC45NiAzODQgOTYuMDEyIDM4NEgxNDhjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY0MGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDk2LjExNWMtNzUuMzM0IDAtMTIxLjMwMi04My4wNDgtODEuNDA4LTE0Ni44OGw1MC44MjItODEuMzg4LTQwLjcyNS0yNS40NDhjLTEyLjA4MS03LjU0Ny04Ljk2Ni0yNS45NjEgNC44NzktMjkuMTU4bDExMC4yMzctMjUuNDVjOC42MTEtMS45ODggMTcuMjAxIDMuMzgxIDE5LjE4OSAxMS45OWwyNS40NTIgMTEwLjIzN3ptOTguNTYxLTE4Mi45MTVsNDEuMjg5IDY2LjA3Ni00MC43NCAyNS40NTdjLTEyLjA1MSA3LjUyOC05IDI1Ljk1MyA0Ljg3OSAyOS4xNThsMTEwLjIzNyAyNS40NWM4LjY3MiAxLjk5OSAxNy4yMTUtMy40MzggMTkuMTg5LTExLjk5bDI1LjQ1LTExMC4yMzdjMy4xOTctMTMuODQ0LTExLjk5LTI0LjcxOS0yNC4wNjgtMTcuMTY4bC00MC42ODcgMjUuNDI0LTQxLjI2My02Ni4wODJjLTM3LjUyMS02MC4wMzMtMTI1LjIwOS02MC4xNzEtMTYyLjgxNiAwbC0xNy45NjMgMjguNzY2Yy0zLjUxIDUuNjItMS44IDEzLjAyMSAzLjgyIDE2LjUzM2wzMy45MTkgMjEuMTk1YzUuNjIgMy41MTIgMTMuMDI0IDEuODAzIDE2LjUzNi0zLjgxN2wxNy45NjEtMjguNzQzYzEyLjcxMi0yMC4zNDEgNDEuOTczLTE5LjY3NiA1NC4yNTctLjAyMnpNNDk3LjI4OCAzMDEuMTJsLTI3LjUxNS00NC4wNjVjLTMuNTExLTUuNjIzLTEwLjkxNi03LjMzNC0xNi41MzgtMy44MjFsLTMzLjg2MSAyMS4xNTljLTUuNjIgMy41MTItNy4zMyAxMC45MTUtMy44MTggMTYuNTM2bDI3LjU2NCA0NC4xMTJjMTMuMjU3IDIxLjIxMS0yLjA1NyA0OC45Ni0yNy4xMzYgNDguOTZIMzIwVjMzNi4wMmMwLTE0LjIxMy0xNy4yNDItMjEuMzgzLTI3LjMxMy0xMS4zMTNsLTgwIDc5Ljk4MWMtNi4yNDkgNi4yNDgtNi4yNDkgMTYuMzc5IDAgMjIuNjI3bDgwIDc5Ljk4OUMzMDIuNjg5IDUxNy4zMDggMzIwIDUxMC4zIDMyMCA0OTUuOTg5VjQ0OGg5NS44OGM3NS4yNzQgMCAxMjEuMzM1LTgyLjk5NyA4MS40MDgtMTQ2Ljg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWRvQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1Ni40NTUgOGM2Ni4yNjkuMTE5IDEyNi40MzcgMjYuMjMzIDE3MC44NTkgNjguNjg1bDM1LjcxNS0zNS43MTVDNDc4LjE0OSAyNS44NTEgNTA0IDM2LjU1OSA1MDQgNTcuOTQxVjE5MmMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMzQ1Ljk0MWMtMjEuMzgyIDAtMzIuMDktMjUuODUxLTE2Ljk3MS00MC45NzFsNDEuNzUtNDEuNzVjLTMwLjg2NC0yOC44OTktNzAuODAxLTQ0LjkwNy0xMTMuMjMtNDUuMjczLTkyLjM5OC0uNzk4LTE3MC4yODMgNzMuOTc3LTE2OS40ODQgMTY5LjQ0MkM4OC43NjQgMzQ4LjAwOSAxNjIuMTg0IDQyNCAyNTYgNDI0YzQxLjEyNyAwIDc5Ljk5Ny0xNC42NzggMTEwLjYyOS00MS41NTYgNC43NDMtNC4xNjEgMTEuOTA2LTMuOTA4IDE2LjM2OC41NTNsMzkuNjYyIDM5LjY2MmM0Ljg3MiA0Ljg3MiA0LjYzMSAxMi44MTUtLjQ4MiAxNy40MzNDMzc4LjIwMiA0NzkuODEzIDMxOS45MjYgNTA0IDI1NiA1MDQgMTE5LjAzNCA1MDQgOC4wMDEgMzkyLjk2NyA4IDI1Ni4wMDIgNy45OTkgMTE5LjE5MyAxMTkuNjQ2IDcuNzU1IDI1Ni40NTUgOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVkbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDAuMzMgMGgtNDcuNDFhMTIgMTIgMCAwIDAtMTIgMTIuNTdsNCA4Mi43NkEyNDcuNDIgMjQ3LjQyIDAgMCAwIDI1NiA4QzExOS4zNCA4IDcuOSAxMTkuNTMgOCAyNTYuMTkgOC4xIDM5My4wNyAxMTkuMSA1MDQgMjU2IDUwNGEyNDcuMSAyNDcuMSAwIDAgMCAxNjYuMTgtNjMuOTEgMTIgMTIgMCAwIDAgLjQ4LTE3LjQzbC0zNC0zNGExMiAxMiAwIDAgMC0xNi4zOC0uNTVBMTc2IDE3NiAwIDEgMSA0MDIuMSAxNTcuOGwtMTAxLjUzLTQuODdhMTIgMTIgMCAwIDAtMTIuNTcgMTJ2NDcuNDFhMTIgMTIgMCAwIDAgMTIgMTJoMjAwLjMzYTEyIDEyIDAgMCAwIDEyLTEyVjEyYTEyIDEyIDAgMCAwLTEyLTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdpc3RlcmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4NS4zNjMgMjA3LjQ3NWMwIDE4LjYtOS44MzEgMjguNDMxLTI4LjQzMSAyOC40MzFoLTI5Ljg3NnYtNTYuMTRoMjMuMzc4YzI4LjY2OCAwIDM0LjkyOSA4Ljc3MyAzNC45MjkgMjcuNzA5ek01MDQgMjU2YzAgMTM2Ljk2Ny0xMTEuMDMzIDI0OC0yNDggMjQ4UzggMzkyLjk2NyA4IDI1NiAxMTkuMDMzIDggMjU2IDhzMjQ4IDExMS4wMzMgMjQ4IDI0OHpNMzYzLjQxMSAzNjAuNDE0Yy00Ni43MjktODQuODI1LTQzLjI5OS03OC42MzYtNDQuNzAyLTgwLjk4IDIzLjQzMi0xNS4xNzIgMzcuOTQ1LTQyLjk3OSAzNy45NDUtNzQuNDg2IDAtNTQuMjQ0LTMxLjUtODkuMjUyLTEwNS40OTgtODkuMjUyaC03MC42NjdjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNFYzNzJjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDIyLjU2N2MxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTcxLjY2M2gyNS41NTZsNDQuMTI5IDgyLjkzN2EyNC4wMDEgMjQuMDAxIDAgMCAwIDIxLjE4OCAxMi43MjdoMjQuNDY0YzE4LjI2MS0uMDAxIDI5LjgyOS0xOS41OTEgMjEuMDE4LTM1LjU4N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVtb3ZlRm9ybWF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNiA0MTZoLTExLjE3bDkuMjYtMjcuNzdMMjY3IDMzNi40IDI0MC40OSA0MTZIMjA4YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDEyOGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTI5Ny44MiA0Mi4xTDM3NyAyNTkuNTkgNDI2LjE3IDExMkg1NDR2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djQzLjlMNDUuNDYgMy4zOEExNiAxNiAwIDAgMCAyMyA2LjE5TDMuMzcgMzEuNDZhMTYgMTYgMCAwIDAgMi44MSAyMi40NWw1ODguMzYgNDU0LjcyYTE2IDE2IDAgMCAwIDIyLjQ2LTIuODFsMTkuNjQtMjUuMjdhMTYgMTYgMCAwIDAtMi44Mi0yMi40NXpNMzA5LjkxIDIwNy43NkwyMjQgMTQxLjM2VjExMmgxMTcuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlcGx5QWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzNi4zMDkgMTg5LjgzNkwzMTIuMzEzIDM3Ljg1MUMzMjcuNzIgMjQuNTQ2IDM1MiAzNS4zNDggMzUyIDU2LjAxNXY4Mi43NjNjMTI5LjE4MiAxMC4yMzEgMjI0IDUyLjIxMiAyMjQgMTgzLjU0OCAwIDYxLjQ0MS0zOS41ODIgMTIyLjMwOS04My4zMzMgMTU0LjEzMi0xMy42NTMgOS45MzEtMzMuMTExLTIuNTMzLTI4LjA3Ny0xOC42MzEgMzguNTEyLTEyMy4xNjItMy45MjItMTY5LjQ4Mi0xMTIuNTktMTgyLjAxNXY4NC4xNzVjMCAyMC43MDEtMjQuMyAzMS40NTMtMzkuNjg3IDE4LjE2NEwxMzYuMzA5IDIyNi4xNjRjLTExLjA3MS05LjU2MS0xMS4wODYtMjYuNzUzIDAtMzYuMzI4em0tMTI4IDM2LjMyOEwxODQuMzEzIDM3OC4xNUMxOTkuNyAzOTEuNDM5IDIyNCAzODAuNjg3IDIyNCAzNTkuOTg2di0xNS44MThsLTEwOC42MDYtOTMuNzg1QTU1Ljk2IDU1Ljk2IDAgMCAxIDk2IDIwNy45OThhNTUuOTUzIDU1Ljk1MyAwIDAgMSAxOS4zOTMtNDIuMzhMMjI0IDcxLjgzMlY1Ni4wMTVjMC0yMC42NjctMjQuMjgtMzEuNDY5LTM5LjY4Ny0xOC4xNjRMOC4zMDkgMTg5LjgzNmMtMTEuMDg2IDkuNTc1LTExLjA3MSAyNi43NjcgMCAzNi4zMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlcGx5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguMzA5IDE4OS44MzZMMTg0LjMxMyAzNy44NTFDMTk5LjcxOSAyNC41NDYgMjI0IDM1LjM0NyAyMjQgNTYuMDE1djgwLjA1M2MxNjAuNjI5IDEuODM5IDI4OCAzNC4wMzIgMjg4IDE4Ni4yNTggMCA2MS40NDEtMzkuNTgxIDEyMi4zMDktODMuMzMzIDE1NC4xMzItMTMuNjUzIDkuOTMxLTMzLjExMS0yLjUzMy0yOC4wNzctMTguNjMxIDQ1LjM0NC0xNDUuMDEyLTIxLjUwNy0xODMuNTEtMTc2LjU5LTE4NS43NDJWMzYwYzAgMjAuNy0yNC4zIDMxLjQ1My0zOS42ODcgMTguMTY0bC0xNzYuMDA0LTE1MmMtMTEuMDcxLTkuNTYyLTExLjA4Ni0yNi43NTMgMC0zNi4zMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlcHVibGljYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQ0IDE5MmMwLTg4LjQtNzEuNi0xNjAtMTYwLTE2MEgxNjBDNzEuNiAzMiAwIDEwMy42IDAgMTkydjY0aDU0NHYtNjR6bS0zNjcuNy0yMS42bC0xOS44IDE5LjMgNC43IDI3LjNjLjggNC45LTQuMyA4LjYtOC43IDYuM0wxMjggMjEwLjRsLTI0LjUgMTIuOWMtNC4zIDIuMy05LjUtMS40LTguNy02LjNsNC43LTI3LjMtMTkuOC0xOS4zYy0zLjYtMy41LTEuNi05LjUgMy4zLTEwLjJsMjcuNC00IDEyLjItMjQuOGMyLjItNC41IDguNi00LjQgMTAuNyAwbDEyLjIgMjQuOCAyNy40IDRjNSAuNyA2LjkgNi43IDMuNCAxMC4yem0xNDQgMGwtMTkuOCAxOS4zIDQuNyAyNy4zYy44IDQuOS00LjMgOC42LTguNyA2LjNMMjcyIDIxMC40bC0yNC41IDEyLjljLTQuMyAyLjMtOS41LTEuNC04LjctNi4zbDQuNy0yNy4zLTE5LjgtMTkuM2MtMy42LTMuNS0xLjYtOS41IDMuMy0xMC4ybDI3LjQtNCAxMi4yLTI0LjhjMi4yLTQuNSA4LjYtNC40IDEwLjcgMGwxMi4yIDI0LjggMjcuNCA0YzUgLjcgNi45IDYuNyAzLjQgMTAuMnptMTQ0IDBsLTE5LjggMTkuMyA0LjcgMjcuM2MuOCA0LjktNC4zIDguNi04LjcgNi4zTDQxNiAyMTAuNGwtMjQuNSAxMi45Yy00LjMgMi4zLTkuNS0xLjQtOC43LTYuM2w0LjctMjcuMy0xOS44LTE5LjNjLTMuNi0zLjUtMS42LTkuNSAzLjMtMTAuMmwyNy40LTQgMTIuMi0yNC44YzIuMi00LjUgOC42LTQuNCAxMC43IDBsMTIuMiAyNC44IDI3LjQgNGM1IC43IDYuOSA2LjcgMy40IDEwLjJ6TTYyNCAzMjBoLTMyYy04LjggMC0xNiA3LjItMTYgMTZ2NjRjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMjg4SDB2MTc2YzAgOC44IDcuMiAxNiAxNiAxNmg5NmM4LjggMCAxNi03LjIgMTYtMTZ2LTgwaDE5MnY4MGMwIDguOCA3LjIgMTYgMTYgMTZoOTZjOC44IDAgMTYtNy4yIDE2LTE2VjM1MmgzMnY0My4zYzAgNDEuOCAzMCA4MC4xIDcxLjYgODQuMyA0Ny44IDQuOSA4OC40LTMyLjcgODguNC03OS42di02NGMwLTguOC03LjItMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlc3Ryb29tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAxMjhjMzUuMyAwIDY0LTI4LjcgNjQtNjRTMTYzLjMgMCAxMjggMCA2NCAyOC43IDY0IDY0czI4LjcgNjQgNjQgNjR6bTM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0UzU0Ny4zIDAgNTEyIDBzLTY0IDI4LjctNjQgNjQgMjguNyA2NCA2NCA2NHptMTI3LjMgMjI2LjVsLTQ1LjYtMTg1LjhjLTMuMy0xMy41LTE1LjUtMjMtMjkuOC0yNC4yLTE1IDkuNy0zMi44IDE1LjUtNTIgMTUuNS0xOS4yIDAtMzctNS44LTUyLTE1LjUtMTQuMyAxLjItMjYuNSAxMC43LTI5LjggMjQuMmwtNDUuNiAxODUuOEMzODEgMzY5LjYgMzkzIDM4NCA0MDkuMiAzODRINDY0djEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGg0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNFYzODRoNTQuOGMxNi4yIDAgMjguMi0xNC40IDI0LjUtMjkuNXpNMzM2IDBoLTMyYy04LjggMC0xNiA3LjItMTYgMTZ2NDgwYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMTZjMC04LjgtNy4yLTE2LTE2LTE2ek0xODAuMSAxNDQuNGMtMTUgOS44LTMyLjkgMTUuNi01Mi4xIDE1LjYtMTkuMiAwLTM3LjEtNS44LTUyLjEtMTUuNkM1MS4zIDE0Ni41IDMyIDE2Ni45IDMyIDE5MnYxMzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRoOHYxMzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRoODBjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMzUyaDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTkyYzAtMjUuMS0xOS4zLTQ1LjUtNDMuOS00Ny42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZXR3ZWV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyOS42NTcgMzQzLjU5OEw1MjguOTcxIDQ0NC4yODRjLTkuMzczIDkuMzcyLTI0LjU2OCA5LjM3Mi0zMy45NDEgMEwzOTQuMzQzIDM0My41OThjLTkuMzczLTkuMzczLTkuMzczLTI0LjU2OSAwLTMzLjk0MWwxMC44MjMtMTAuODIzYzkuNTYyLTkuNTYyIDI1LjEzMy05LjM0IDM0LjQxOS40OTJMNDgwIDM0Mi4xMThWMTYwSDI5Mi40NTFhMjQuMDA1IDI0LjAwNSAwIDAgMS0xNi45NzEtNy4wMjlsLTE2LTE2QzI0NC4zNjEgMTIxLjg1MSAyNTUuMDY5IDk2IDI3Ni40NTEgOTZINTIwYzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHYyMjIuMTE4bDQwLjQxNi00Mi43OTJjOS4yODUtOS44MzEgMjQuODU2LTEwLjA1NCAzNC40MTktLjQ5MmwxMC44MjMgMTAuODIzYzkuMzcyIDkuMzcyIDkuMzcyIDI0LjU2OS0uMDAxIDMzLjk0MXptLTI2NS4xMzggMTUuNDMxQTIzLjk5OSAyMy45OTkgMCAwIDAgMzQ3LjU0OCAzNTJIMTYwVjE2OS44ODFsNDAuNDE2IDQyLjc5MmM5LjI4NiA5LjgzMSAyNC44NTYgMTAuMDU0IDM0LjQxOS40OTFsMTAuODIyLTEwLjgyMmM5LjM3My05LjM3MyA5LjM3My0yNC41NjkgMC0zMy45NDFMMTQ0Ljk3MSA2Ny43MTZjLTkuMzczLTkuMzczLTI0LjU2OS05LjM3My0zMy45NDEgMEwxMC4zNDMgMTY4LjQwMmMtOS4zNzMgOS4zNzMtOS4zNzMgMjQuNTY5IDAgMzMuOTQxbDEwLjgyMiAxMC44MjJjOS41NjIgOS41NjIgMjUuMTMzIDkuMzQgMzQuNDE5LS40OTFMOTYgMTY5Ljg4MVYzOTJjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDI0My41NDljMjEuMzgyIDAgMzIuMDktMjUuODUxIDE2Ljk3MS00MC45NzFsLTE2LjAwMS0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmliYm9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMSA0NDQuM2MtOS42IDEwLjgtNy41IDI3LjYgNC41IDM1LjdsNjguOCAyNy45YzkuOSA2LjcgMjMuMyA1IDMxLjMtMy44bDkxLjgtMTAxLjktNzkuMi04Ny45LTExNy4yIDEzMHptNDM1LjggMHMtMjkyLTMyNC42LTI5NS40LTMzMC4xYzE1LjQtOC40IDQwLjItMTcuOSA3Ny41LTE3LjlzNjIuMSA5LjUgNzcuNSAxNy45Yy0zLjMgNS42LTU2IDY0LjYtNTYgNjQuNmw3OS4xIDg3LjcgMzQuMi0zOGMyOC43LTMxLjkgMzMuMy03OC42IDExLjQtMTE1LjVsLTQzLjctNzMuNWMtNC4zLTcuMi05LjktMTMuMy0xNi44LTE4LTQwLjctMjcuNi0xMjcuNC0yOS43LTE3MS40IDAtNi45IDQuNy0xMi41IDEwLjgtMTYuOCAxOGwtNDMuNiA3My4yYy0xLjUgMi41LTM3LjEgNjIuMiAxMS41IDExNkwzMzcuNSA1MDRjOCA4LjkgMjEuNCAxMC41IDMxLjMgMy44bDY4LjgtMjcuOWMxMS45LTggMTQtMjQuOCA0LjMtMzUuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNjRDMTEwLjA2IDY0IDAgMTI1LjkxIDAgMjA4djk4LjEzQzAgMzg0LjQ4IDExNC42MiA0NDggMjU2IDQ0OHMyNTYtNjMuNTIgMjU2LTE0MS44N1YyMDhjMC04Mi4wOS0xMTAuMDYtMTQ0LTI1Ni0xNDR6bTAgNjRjMTA2LjA0IDAgMTkyIDM1LjgyIDE5MiA4MCAwIDkuMjYtMy45NyAxOC4xMi0xMC45MSAyNi4zOUMzOTIuMTUgMjA4LjIxIDMyOC4yMyAxOTIgMjU2IDE5MnMtMTM2LjE1IDE2LjIxLTE4MS4wOSA0Mi4zOUM2Ny45NyAyMjYuMTIgNjQgMjE3LjI2IDY0IDIwOGMwLTQ0LjE4IDg1Ljk2LTgwIDE5Mi04MHpNMTIwLjQzIDI2NC42NEMxNTUuMDQgMjQ5LjkzIDIwMS42NCAyNDAgMjU2IDI0MHMxMDAuOTYgOS45MyAxMzUuNTcgMjQuNjRDMzU2Ljg0IDI3OS4wNyAzMDguOTMgMjg4IDI1NiAyODhzLTEwMC44NC04LjkzLTEzNS41Ny0yMy4zNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUm9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzMuMTkgNDAyLjY3bC0xMzkuNzktMzIwQzQyOC40MyA3MS4yOSA0MTcuNiA2NCA0MDUuNjggNjRoLTk3LjU5bDIuNDUgMjMuMTZjLjUgNC43Mi0zLjIxIDguODQtNy45NiA4Ljg0aC0yOS4xNmMtNC43NSAwLTguNDYtNC4xMi03Ljk2LTguODRMMjY3LjkxIDY0aC05Ny41OWMtMTEuOTMgMC0yMi43NiA3LjI5LTI3LjczIDE4LjY3TDIuOCA0MDIuNjdDLTYuNDUgNDIzLjg2IDguMzEgNDQ4IDMwLjU0IDQ0OGgxOTYuODRsMTAuMzEtOTcuNjhjLjg2LTguMTQgNy43Mi0xNC4zMiAxNS45MS0xNC4zMmg2OC44YzguMTkgMCAxNS4wNSA2LjE4IDE1LjkxIDE0LjMyTDM0OC42MiA0NDhoMTk2Ljg0YzIyLjIzIDAgMzYuOTktMjQuMTQgMjcuNzMtNDUuMzN6TTI2MC40IDEzNS4xNmE4IDggMCAwIDEgNy45Ni03LjE2aDM5LjI5YzQuMDkgMCA3LjUzIDMuMDkgNy45NiA3LjE2bDQuNiA0My41OGMuNzUgNy4wOS00LjgxIDEzLjI2LTExLjkzIDEzLjI2aC00MC41NGMtNy4xMyAwLTEyLjY4LTYuMTctMTEuOTMtMTMuMjZsNC41OS00My41OHpNMzE1LjY0IDMwNGgtNTUuMjljLTkuNSAwLTE2LjkxLTguMjMtMTUuOTEtMTcuNjhsNS4wNy00OGMuODYtOC4xNCA3LjcyLTE0LjMyIDE1LjkxLTE0LjMyaDQ1LjE1YzguMTkgMCAxNS4wNSA2LjE4IDE1LjkxIDE0LjMybDUuMDcgNDhjMSA5LjQ1LTYuNDEgMTcuNjgtMTUuOTEgMTcuNjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJvYm90IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyLDIyNEg2NFY0MTZIMzJBMzEuOTYxNjYsMzEuOTYxNjYsMCwwLDEsMCwzODRWMjU2QTMxLjk2MTY2LDMxLjk2MTY2LDAsMCwxLDMyLDIyNFptNTEyLTQ4VjQ0OGE2NC4wNjMyOCw2NC4wNjMyOCwwLDAsMS02NCw2NEgxNjBhNjQuMDYzMjgsNjQuMDYzMjgsMCwwLDEtNjQtNjRWMTc2YTc5Ljk3NCw3OS45NzQsMCwwLDEsODAtODBIMjg4VjMyYTMyLDMyLDAsMCwxLDY0LDBWOTZINDY0QTc5Ljk3NCw3OS45NzQsMCwwLDEsNTQ0LDE3NlpNMjY0LDI1NmE0MCw0MCwwLDEsMC00MCw0MEEzOS45OTcsMzkuOTk3LDAsMCwwLDI2NCwyNTZabS04LDEyOEgxOTJ2MzJoNjRabTk2LDBIMjg4djMyaDY0Wk00NTYsMjU2YTQwLDQwLDAsMSwwLTQwLDQwQTM5Ljk5NywzOS45OTcsMCwwLDAsNDU2LDI1NlptLTgsMTI4SDM4NHYzMmg2NFpNNjQwLDI1NlYzODRhMzEuOTYxNjYsMzEuOTYxNjYsMCwwLDEtMzIsMzJINTc2VjIyNGgzMkEzMS45NjE2NiwzMS45NjE2NiwwLDAsMSw2NDAsMjU2WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSb2NrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA1LjEyMDE5LDE5LjA5Mzc1Yy0xLjE4OTQ1LTUuNTMxMjUtNi42NTgxOS0xMS0xMi4yMDctMTIuMTg3NUM0NjAuNzE2LDAsNDM1LjUwNywwLDQxMC40MDc0NywwLDMwNy4xNzUyMywwLDI0NS4yNjkwOSw1NS4yMDMxMiwxOTkuMDUyMzgsMTI4SDk0LjgzNzcyYy0xNi4zNDc2My4wMTU2Mi0zNS41NTY1OCwxMS44NzUtNDIuODg2NjQsMjYuNDg0MzhMMi41MTU2MiwyNTMuMjk2ODhBMjguNCwyOC40LDAsMCwwLDAsMjY0YTI0LjAwODY3LDI0LjAwODY3LDAsMCwwLDI0LjAwNTgyLDI0SDEyNy44MTYxOGwtMjIuNDc0NTcsMjIuNDY4NzVjLTExLjM2NTIxLDExLjM2MTMzLTEyLjk5NjA3LDMyLjI1NzgxLDAsNDUuMjVMMTU2LjI0NTgyLDQwNi42MjVjMTEuMTU2MjMsMTEuMTg3NSwzMi4xNTYxOSwxMy4xNTYyNSw0NS4yNzcyNiwwbDIyLjQ3NDU3LTIyLjQ2ODc1VjQ4OGEyNC4wMDg2NywyNC4wMDg2NywwLDAsMCwyNC4wMDU4MSwyNCwyOC41NTkzNCwyOC41NTkzNCwwLDAsMCwxMC43MDctMi41MTU2Mmw5OC43MjgzNC00OS4zOTA2M2MxNC42Mjg4OC03LjI5Njg3LDI2LjUwNzc2LTI2LjUsMjYuNTA3NzYtNDIuODU5MzdWMzEyLjc5Njg4YzcyLjU5NzUzLTQ2LjMxMjUsMTI4LjAzNDkzLTEwOC40MDYyNiwxMjguMDM0OTMtMjExLjA5Mzc2QzUxMi4wNzUyNiw3Ni41LDUxMi4wNzUyNiw1MS4yOTY4OCw1MDUuMTIwMTksMTkuMDkzNzVaTTM4NC4wNDAzMywxNjhBNDAsNDAsMCwxLDEsNDI0LjA1LDEyOCw0MC4wMjMyMiw0MC4wMjMyMiwwLDAsMSwzODQuMDQwMzMsMTY4WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSb3V0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMzIwaC05NmMtMTcuNiAwLTMyLTE0LjQtMzItMzJzMTQuNC0zMiAzMi0zMmg5NnM5Ni0xMDcgOTYtMTYwLTQzLTk2LTk2LTk2LTk2IDQzLTk2IDk2YzAgMjUuNSAyMi4yIDYzLjQgNDUuMyA5NkgzMjBjLTUyLjkgMC05NiA0My4xLTk2IDk2czQzLjEgOTYgOTYgOTZoOTZjMTcuNiAwIDMyIDE0LjQgMzIgMzJzLTE0LjQgMzItMzIgMzJIMTg1LjVjLTE2IDI0LjgtMzMuOCA0Ny43LTQ3LjMgNjRINDE2YzUyLjkgMCA5Ni00My4xIDk2LTk2cy00My4xLTk2LTk2LTk2em0wLTI1NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzJ6TTk2IDI1NmMtNTMgMC05NiA0My05NiA5NnM5NiAxNjAgOTYgMTYwIDk2LTEwNyA5Ni0xNjAtNDMtOTYtOTYtOTZ6bTAgMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUnNzU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS40OSAzMiAwIDUzLjQ5IDAgODB2MzUyYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMzUyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWODBjMC0yNi41MS0yMS40OS00OC00OC00OHpNMTEyIDQxNmMtMjYuNTEgMC00OC0yMS40OS00OC00OHMyMS40OS00OCA0OC00OCA0OCAyMS40OSA0OCA0OC0yMS40OSA0OC00OCA0OHptMTU3LjUzMyAwaC0zNC4zMzVjLTYuMDExIDAtMTEuMDUxLTQuNjM2LTExLjQ0Mi0xMC42MzQtNS4yMTQtODAuMDUtNjkuMjQzLTE0My45Mi0xNDkuMTIzLTE0OS4xMjMtNS45OTctLjM5LTEwLjYzMy01LjQzMS0xMC42MzMtMTEuNDQxdi0zNC4zMzVjMC02LjUzNSA1LjQ2OC0xMS43NzcgMTEuOTk0LTExLjQyNSAxMTAuNTQ2IDUuOTc0IDE5OC45OTcgOTQuNTM2IDIwNC45NjQgMjA0Ljk2NC4zNTIgNi41MjYtNC44OSAxMS45OTQtMTEuNDI1IDExLjk5NHptMTAzLjAyNyAwaC0zNC4zMzRjLTYuMTYxIDAtMTEuMTc1LTQuODgyLTExLjQyNy0xMS4wMzgtNS41OTgtMTM2LjUzNS0xMTUuMjA0LTI0Ni4xNjEtMjUxLjc2LTI1MS43NkM2OC44ODIgMTUyLjk0OSA2NCAxNDcuOTM1IDY0IDE0MS43NzRWMTA3LjQ0YzAtNi40NTQgNS4zMzgtMTEuNjY0IDExLjc4Ny0xMS40MzIgMTY3LjgzIDYuMDI1IDMwMi4yMSAxNDEuMTkxIDMwOC4yMDUgMzA4LjIwNS4yMzIgNi40NDktNC45NzggMTEuNzg3LTExLjQzMiAxMS43ODd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjguMDgxIDQxNS45NTljMCAzNS4zNjktMjguNjcyIDY0LjA0MS02NC4wNDEgNjQuMDQxUzAgNDUxLjMyOCAwIDQxNS45NTlzMjguNjcyLTY0LjA0MSA2NC4wNDEtNjQuMDQxIDY0LjA0IDI4LjY3MyA2NC4wNCA2NC4wNDF6bTE3NS42NiA0Ny4yNWMtOC4zNTQtMTU0LjYtMTMyLjE4NS0yNzguNTg3LTI4Ni45NS0yODYuOTVDNy42NTYgMTc1Ljc2NSAwIDE4My4xMDUgMCAxOTIuMjUzdjQ4LjA2OWMwIDguNDE1IDYuNDkgMTUuNDcyIDE0Ljg4NyAxNi4wMTggMTExLjgzMiA3LjI4NCAyMDEuNDczIDk2LjcwMiAyMDguNzcyIDIwOC43NzIuNTQ3IDguMzk3IDcuNjA0IDE0Ljg4NyAxNi4wMTggMTQuODg3aDQ4LjA2OWM5LjE0OS4wMDEgMTYuNDg5LTcuNjU1IDE1Ljk5NS0xNi43OXptMTQ0LjI0OS4yODhDNDM5LjU5NiAyMjkuNjc3IDI1MS40NjUgNDAuNDQ1IDE2LjUwMyAzMi4wMSA3LjQ3MyAzMS42ODYgMCAzOC45ODEgMCA0OC4wMTZ2NDguMDY4YzAgOC42MjUgNi44MzUgMTUuNjQ1IDE1LjQ1MyAxNS45OTkgMTkxLjE3OSA3LjgzOSAzNDQuNjI3IDE2MS4zMTYgMzUyLjQ2NSAzNTIuNDY1LjM1MyA4LjYxOCA3LjM3MyAxNS40NTMgMTUuOTk5IDE1LjQ1M2g0OC4wNjhjOS4wMzQtLjAwMSAxNi4zMjktNy40NzQgMTYuMDA1LTE2LjUwNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUnVibGVTaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzOS4zNiAzMjBDMzI0LjQ4IDMyMCAzODQgMjYwLjU0MiAzODQgMTc1LjA3MVMzMjQuNDggMzIgMjM5LjM2IDMySDc2Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjIwNi42MzJIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJWMzA4YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNTJ2MzJIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg1MnY1MmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDU4LjU2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTUySDMwOGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDE0Ni41NnYtMzJoOTIuOHptLTkyLjgtMjE5LjI1Mmg3OC43MmM0Ni43MiAwIDc0Ljg4IDI5LjExIDc0Ljg4IDc0LjMyMyAwIDQ1LjgzMi0yOC4xNiA3NS41NjEtNzYuMTYgNzUuNTYxaC03Ny40NFYxMDAuNzQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSdWxlckNvbWJpbmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCAyODhoLTU2Yy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoNTZ2LTY0aC01NmMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDU2Vjk2aC01NmMtNC40MiAwLTgtMy41OC04LThWNzJjMC00LjQyIDMuNTgtOCA4LThoNTZWMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMkgzMkMxNC4zMyAwIDAgMTQuMzMgMCAzMnY0NDhjMCAyLjc3LjkxIDUuMjQgMS41NyA3LjhMMTYwIDMyOS4zOFYyODh6bTMyMCA2NGgtMzJ2NTZjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHYtNTZoLTY0djU2YzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LTh2LTU2aC02NHY1NmMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04di01NmgtNDEuMzdMMjQuMiA1MTAuNDNjMi41Ni42NiA1LjA0IDEuNTcgNy44IDEuNTdoNDQ4YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTk2YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJ1bGVySG9yaXpvbnRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDQgMTI4aC00OHY4OGMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04di04OGgtNjR2ODhjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHYtODhoLTY0djg4YzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LTh2LTg4aC02NHY4OGMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04di04OGgtNjR2ODhjMCA0LjQyLTMuNTggOC04IDhIODhjLTQuNDIgMC04LTMuNTgtOC04di04OEgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYxOTJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg1MTJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYxNjBjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUnVsZXJWZXJ0aWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjggNDE2Yy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoODh2LTY0aC04OGMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDg4di02NGgtODhjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGg4OHYtNjRoLTg4Yy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoODhWMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMkgzMkMxNC4zMyAwIDAgMTQuMzMgMCAzMnY0NDhjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgxOTJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtNjRoLTg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSdWxlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MzUuNyAxNjcuMkw1NTYuMSAzMS43Yy04LjgtMTUtMjguMy0yMC4xLTQzLjUtMTEuNWwtNjkgMzkuMUw1MDMuMyAxNjFjMi4yIDMuOC45IDguNS0yLjkgMTAuN2wtMTMuOCA3LjhjLTMuOCAyLjItOC43LjktMTAuOS0yLjlMNDE2IDc1bC01NS4yIDMxLjMgMjcuOSA0Ny40YzIuMiAzLjguOSA4LjUtMi45IDEwLjdsLTEzLjggNy44Yy0zLjggMi4yLTguNy45LTEwLjktMi45TDMzMy4yIDEyMiAyNzggMTUzLjMgMzM3LjggMjU1YzIuMiAzLjcuOSA4LjUtMi45IDEwLjdsLTEzLjggNy44Yy0zLjggMi4yLTguNy45LTEwLjktMi45bC01OS43LTEwMS43LTU1LjIgMzEuMyAyNy45IDQ3LjRjMi4yIDMuOC45IDguNS0yLjkgMTAuN2wtMTMuOCA3LjhjLTMuOCAyLjItOC43LjktMTAuOS0yLjlsLTI3LjktNDcuNS01NS4yIDMxLjMgNTkuNyAxMDEuN2MyLjIgMy43LjkgOC41LTIuOSAxMC43bC0xMy44IDcuOGMtMy44IDIuMi04LjcuOS0xMC45LTIuOUw4NC45IDI2Mi45bC02OSAzOS4xQy43IDMxMC43LTQuNiAzMjkuOCA0LjIgMzQ0LjhsNzkuNiAxMzUuNmM4LjggMTUgMjguMyAyMC4xIDQzLjUgMTEuNUw2MjQuMSAyMTBjMTUuMi04LjYgMjAuNC0yNy44IDExLjYtNDIuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUnVubmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDE2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzIgOTZjMjYuNTEgMCA0OC0yMS40OSA0OC00OFMyOTguNTEgMCAyNzIgMHMtNDggMjEuNDktNDggNDggMjEuNDkgNDggNDggNDh6TTExMy42OSAzMTcuNDdsLTE0LjggMzQuNTJIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJzMTQuMzMgMzIgMzIgMzJoNzcuNDVjMTkuMjUgMCAzNi41OC0xMS40NCA0NC4xMS0yOS4wOWw4Ljc5LTIwLjUyLTEwLjY3LTYuM2MtMTcuMzItMTAuMjMtMzAuMDYtMjUuMzctMzcuOTktNDIuNjF6TTM4NCAyMjMuOTloLTQ0LjAzbC0yNi4wNi01My4yNWMtMTIuNS0yNS41NS0zNS40NS00NC4yMy02MS43OC01MC45NGwtNzEuMDgtMjEuMTRjLTI4LjMtNi44LTU3Ljc3LS41NS04MC44NCAxNy4xNGwtMzkuNjcgMzAuNDFjLTE0LjAzIDEwLjc1LTE2LjY5IDMwLjgzLTUuOTIgNDQuODZzMzAuODQgMTYuNjYgNDQuODYgNS45MmwzOS42OS0zMC40MWM3LjY3LTUuODkgMTcuNDQtOCAyNS4yNy02LjE0bDE0LjcgNC4zNy0zNy40NiA4Ny4zOWMtMTIuNjIgMjkuNDgtMS4zMSA2NC4wMSAyNi4zIDgwLjMxbDg0Ljk4IDUwLjE3LTI3LjQ3IDg3LjczYy01LjI4IDE2Ljg2IDQuMTEgMzQuODEgMjAuOTcgNDAuMDkgMy4xOSAxIDYuNDEgMS40OCA5LjU4IDEuNDggMTMuNjEgMCAyNi4yMy04Ljc3IDMwLjUyLTIyLjQ1bDMxLjY0LTEwMS4wNmM1LjkxLTIwLjc3LTIuODktNDMuMDgtMjEuNjQtNTQuMzlsLTYxLjI0LTM2LjE0IDMxLjMxLTc4LjI4IDIwLjI3IDQxLjQzYzggMTYuMzQgMjQuOTIgMjYuODkgNDMuMTEgMjYuODlIMzg0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJzLTE0LjMzLTMxLjk5LTMyLTMxLjk5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSdXBlZVNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA4IDk2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJWNDRjMC02LjYyNy01LjM3My0xMi0xMi0xMkgxMkM1LjM3MyAzMiAwIDM3LjM3MyAwIDQ0djQ0Ljc0OGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDg1LjI4YzI3LjMwOCAwIDQ4LjI2MSA5Ljk1OCA2MC45NyAyNy4yNTJIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxNTguNzU3Yy02LjIxNyAzNi4wODYtMzIuOTYxIDU4LjYzMi03NC43NTcgNTguNjMySDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjUzLjAxMmMwIDMuMzQ5IDEuNCA2LjU0NiAzLjg2MSA4LjgxOGwxNjUuMDUyIDE1Mi4zNTZhMTIuMDAxIDEyLjAwMSAwIDAgMCA4LjEzOSAzLjE4Mmg4Mi41NjJjMTAuOTI0IDAgMTYuMTY2LTEzLjQwOCA4LjEzOS0yMC44MThMMTE2Ljg3MSAzMTkuOTA2Yzc2LjQ5OS0yLjM0IDEzMS4xNDQtNTMuMzk1IDEzOC4zMTgtMTI3LjkwNkgzMDhjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNTguNjljLTMuNDg2LTExLjU0MS04LjI4LTIyLjI0Ni0xNC4yNTItMzJIMzA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTYWRDcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZjMCA5MC4xIDQ4LjIgMTY4LjcgMTIwIDIxMi4xVjI4OGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djE5Ni43YzI5LjUgMTIuNCA2MiAxOS4zIDk2IDE5LjNzNjYuNS02LjkgOTYtMTkuM1YyODhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnYxODAuMUM0NDcuOCA0MjQuNyA0OTYgMzQ2IDQ5NiAyNTYgNDk2IDExOSAzODUgOCAyNDggOHptLTY1LjUgMjE2LjVjLTE0LjgtMTMuMi00Ni4yLTEzLjItNjEgMEwxMTIgMjMzYy0zLjggMy4zLTkuMyA0LTEzLjcgMS42LTQuNC0yLjQtNi45LTcuNC02LjEtMTIuNCA0LTI1LjIgMzQuMi00Mi4xIDU5LjktNDIuMVMyMDggMTk3IDIxMiAyMjIuMmMuOCA1LTEuNyAxMC02LjEgMTIuNC01LjggMy4xLTExLjIuNy0xMy43LTEuNmwtOS43LTguNXpNMjQ4IDQxNmMtMjYuNSAwLTQ4LTI4LjctNDgtNjRzMjEuNS02NCA0OC02NCA0OCAyOC43IDQ4IDY0LTIxLjUgNjQtNDggNjR6bTE0OS44LTE4MS41Yy01LjggMy4xLTExLjIuNy0xMy43LTEuNmwtOS41LTguNWMtMTQuOC0xMy4yLTQ2LjItMTMuMi02MSAwTDMwNCAyMzNjLTMuOCAzLjMtOS4zIDQtMTMuNyAxLjYtNC40LTIuNC02LjktNy40LTYuMS0xMi40IDQtMjUuMiAzNC4yLTQyLjEgNTkuOS00Mi4xUzQwMCAxOTcgNDA0IDIyMi4yYy42IDQuOS0xLjggOS45LTYuMiAxMi4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTYWRUZWFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTgwIDE2OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzJ6TTE1MiA0MTZjLTI2LjUgMC00OC0yMS00OC00NyAwLTIwIDI4LjUtNjAuNCA0MS42LTc3LjggMy4yLTQuMyA5LjYtNC4zIDEyLjggMEMxNzEuNSAzMDguNiAyMDAgMzQ5IDIwMCAzNjljMCAyNi0yMS41IDQ3LTQ4IDQ3em0xNi0xNzZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0xNzAuMiAxNTQuMkMzMTUuOCAzNjcuNCAyODIuOSAzNTIgMjQ4IDM1MmMtMjEuMiAwLTIxLjItMzIgMC0zMiA0NC40IDAgODYuMyAxOS42IDExNC43IDUzLjggMTMuOCAxNi40LTExLjIgMzYuNS0yNC41IDIwLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNhdGVsbGl0ZURpc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA1LjQ0OTU0LDQ2Mi41OWM3LjM5MTU3LDcuMjk3OTIsNi4xODgyOSwyMC4wOTY2MS0zLjAwMDM4LDI1LjAwMzU2LTc3LjcxMyw0MS44MDI4MS0xNzYuNzI1NTksMjkuOTEwNS0yNDIuMzQzMzEtMzUuNzA4MkMtNS40OTYyNCwzODYuMjgyMjctMTcuNDA0LDI4Ny4zNjIsMjQuNDEzODEsMjA5LjU1NGM0Ljg5MTI1LTkuMDk1LDE3LjY4OTc1LTEwLjI5ODM0LDI1LjAwMzE4LTMuMDAwNDNMMTY2LjIyODcyLDMyMy4zNjcwOGwyNy4zOTQxMS0yNy4zOTQ1MmMtLjY4NzU5LTIuNjA5NzQtMS41OTQtNS4wMDA3MS0xLjU5NC03LjgxMzYxYTMyLjAwNDA3LDMyLjAwNDA3LDAsMSwxLDMyLjAwNDA3LDMyLjAwNDU1Yy0yLjc5NzIzLDAtNS4yMDM3OC0uODkwNzUtNy43OTc4Ni0xLjU5NGwtMjcuNDA5NzQsMjcuNDEwMTVaTTUxMS45NzU4LDMwMy4wNjczMmExNi4xMDMzNiwxNi4xMDMzNiwwLDAsMS0xNi4wMDIsMTcuMDAyNDJINDYzLjg2MDMxYTE1Ljk2OTU2LDE1Ljk2OTU2LDAsMCwxLTE1Ljg5MjY1LTE1LjAwMjEzQzQ0MC40NjY3MSwxNzUuNTQ5MiwzMzYuNDUzNDgsNzAuNTM0MjcsMjA3LjAzMDc4LDYzLjUzMzI4YTE1Ljg0NDg2LDE1Ljg0NDg2LDAsMCwxLTE1LjAwMTkxLTE1LjkwODUyVjE2LjAyNjUyQTE2LjA5Mzg5LDE2LjA5Mzg5LDAsMCwxLDIwOS4wMzEuMDI0MjVDMzcyLjI1NDkxLDguNjE5MjIsNTAzLjQ3NDcyLDEzOS44NDEsNTExLjk3NTgsMzAzLjA2NzMyWm0tOTYuMDEyMjEtLjI5NjkyYTE2LjIxMDkzLDE2LjIxMDkzLDAsMCwxLTE2LjExMTQyLDE3LjI5OTM0SDM2Ny42NDVhMTYuMDY4NjIsMTYuMDY4NjIsMCwwLDEtMTUuODkyNjUtMTQuNzA1MjJjLTYuOTA3MTItNzcuMDEwOTQtNjguMTE4LTEzOC45MTAzNy0xNDQuOTI0NjctMTQ1LjIyMzc2YTE1Ljk0LDE1Ljk0LDAsMCwxLTE0Ljc5ODc2LTE1Ljg5Mjg5VjExMi4xMzM5M2ExNi4xMzQsMTYuMTM0LDAsMCwxLDE3LjI5OTA4LTE2LjA5NkMzMTkuNDUxMzIsMTA0LjUzOTEsNDA3LjU1NjI3LDE5Mi42NDUzOCw0MTUuOTYzNTksMzAyLjc3MDRaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNhdGVsbGl0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDIuNjA5NjksMzEwLjA0MjA2bC05Ni43MDM5Myw5Ni43MTYyNWEzMS44ODE1MSwzMS44ODE1MSwwLDAsMS00NS4wMDc2NSwwTDI4MC41NzIsMzI2LjM0MTE1bC05Ljg5MjMxLDkuOTA3NTlhMTkwLjU2MzQzLDE5MC41NjM0MywwLDAsMS01LjQwNzE2LDE2OC41MjI4N2MtNC41MDA3Nyw4LjUwMTE1LTE2LjM5MzQyLDkuNTk1MDUtMjMuMjA3MDcsMi43OTcyNUwxMzQuNTQ3MTUsNDAwLjA1NDI4bC0xNy43OTk5LDE3Ljc5OTI5Yy43MDMyNCwyLjYwOTcyLDEuNjA5NjUsNS4wMDA2NywxLjYwOTY1LDcuNzk3OTNhMzIuMDA1NDQsMzIuMDA1NDQsMCwxLDEtMzIuMDA1NDQtMzIuMDA0MzRjMi43OTczNSwwLDUuMTg4MzguOTA2MzcsNy43OTgyLDEuNjA5NTlsMTcuNzk5OS0xNy43OTkyOUw0LjQzMTI5LDI2OS45NDI4N2MtNi43OTgtNi44MTM0Mi01LjcwNDA5LTE4LjYxMTksMi43OTczNS0yMy4yMDYyN2ExOTAuNTgxNjEsMTkwLjU4MTYxLDAsMCwxLDE2OC41Mjg2NC01LjQwN2w5Ljc5ODU0LTkuNzk4MjEtODAuMzEwNTMtODAuNDE3MTZhMzIuMDAyLDMyLjAwMiwwLDAsMSwwLTQ1LjA5OTg3TDIwMS45NjQ3NCw5LjI5ODE0QTMxLjYyNjM5LDMxLjYyNjM5LDAsMCwxLDIyNC40Njg2OCwwYTMxLjk5OTUxLDMxLjk5OTUxLDAsMCwxLDIyLjU5NzU5LDkuMjk4MTRsODAuMzI2MTUsODAuMzA3NzcsNDcuODA1LTQ3Ljg5NzEzYTMzLjYwNzUsMzMuNjA3NSwwLDAsMSw0Ny41MDgwOCwwbDQ3LjUwODA3LDQ3LjUwNjQ1YTMzLjYzMzA4LDMzLjYzMzA4LDAsMCwxLDAsNDcuNTA2NDRsLTQ3LjgwNSw0Ny44OTcxM0w1MDIuNzE5MDgsMjY1LjAzNkEzMS43ODkzOCwzMS43ODkzOCwwLDAsMSw1MDIuNjA5NjksMzEwLjA0MjA2Wk0yMTkuNTYxNTksMTk3LjQzM2w3My44MjUwNS03My44MjI1Mi02OC45MTgtNjguOS03My44MDk0Miw3My44MDY4OVptMjM3Ljc0MzUyLDkwLjEwNi02OC45MDIzMy02OC45MTU2LTczLjgyNSw3My44MjI1Miw2OC45MTgsNjguOVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2F2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzMuOTQxIDEyOS45NDFsLTgzLjg4Mi04My44ODJBNDggNDggMCAwIDAgMzE2LjExOCAzMkg0OEMyMS40OSAzMiAwIDUzLjQ5IDAgODB2MzUyYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMzUyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMTYzLjg4MmE0OCA0OCAwIDAgMC0xNC4wNTktMzMuOTQxek0yMjQgNDE2Yy0zNS4zNDYgMC02NC0yOC42NTQtNjQtNjQgMC0zNS4zNDYgMjguNjU0LTY0IDY0LTY0czY0IDI4LjY1NCA2NCA2NGMwIDM1LjM0Ni0yOC42NTQgNjQtNjQgNjR6bTk2LTMwNC41MlYyMTJjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkg3NmMtNi42MjcgMC0xMi01LjM3My0xMi0xMlYxMDhjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgyMjguNTJjMy4xODMgMCA2LjIzNSAxLjI2NCA4LjQ4NSAzLjUxNWwzLjQ4IDMuNDhBMTEuOTk2IDExLjk5NiAwIDAgMSAzMjAgMTExLjQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTY2hvb2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyMjR2MjcyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDgwVjE5MkgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnptMzYwLTQ4aC0yNHYtNDBjMC00LjQyLTMuNTgtOC04LThoLTE2Yy00LjQyIDAtOCAzLjU4LTggOHY2NGMwIDQuNDIgMy41OCA4IDggOGg0OGM0LjQyIDAgOC0zLjU4IDgtOHYtMTZjMC00LjQyLTMuNTgtOC04LTh6bTEzNy43NS02My45NmwtMTYwLTEwNi42N2EzMi4wMiAzMi4wMiAwIDAgMC0zNS41IDBsLTE2MCAxMDYuNjdBMzIuMDAyIDMyLjAwMiAwIDAgMCAxMjggMTM4LjY2VjUxMmgxMjhWMzY4YzAtOC44NCA3LjE2LTE2IDE2LTE2aDk2YzguODQgMCAxNiA3LjE2IDE2IDE2djE0NGgxMjhWMTM4LjY3YzAtMTAuNy01LjM1LTIwLjctMTQuMjUtMjYuNjN6TTMyMCAyNTZjLTQ0LjE4IDAtODAtMzUuODItODAtODBzMzUuODItODAgODAtODAgODAgMzUuODIgODAgODAtMzUuODIgODAtODAgODB6bTI4OC02NGgtNjR2MzIwaDgwYzguODQgMCAxNi03LjE2IDE2LTE2VjIyNGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTY3Jld2RyaXZlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMEwzMjAgOTZ2NjIuMDZsLTgzLjAzIDgzLjAzYzYuNzkgNC4yNSAxMy4yNyA5LjA2IDE5LjA3IDE0Ljg3IDUuOCA1LjggMTAuNjIgMTIuMjggMTQuODcgMTkuMDdMMzUzLjk0IDE5Mkg0MTZsOTYtMTI4LTY0LTY0ek0xMjggMjc4LjU5TDEwLjkyIDM5NS42N2MtMTQuNTUgMTQuNTUtMTQuNTUgMzguMTUgMCA1Mi43MWw1Mi43IDUyLjdjMTQuNTYgMTQuNTYgMzguMTUgMTQuNTYgNTIuNzEgMEwyMzMuNDEgMzg0YzI5LjExLTI5LjExIDI5LjExLTc2LjMgMC0xMDUuNDFzLTc2LjMtMjkuMTEtMTA1LjQxIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNjcm9sbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCAwQzIxLjUzIDAgMCAyMS41MyAwIDQ4djY0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDgwVjQ4Qzk2IDIxLjUzIDc0LjQ3IDAgNDggMHptMjA4IDQxMi41N1YzNTJoMjg4Vjk2YzAtNTIuOTQtNDMuMDYtOTYtOTYtOTZIMTExLjU5QzEyMS43NCAxMy40MSAxMjggMjkuOTIgMTI4IDQ4djM2OGMwIDM4Ljg3IDM0LjY1IDY5LjY1IDc0Ljc1IDYzLjEyQzIzNC4yMiA0NzQgMjU2IDQ0NC40NiAyNTYgNDEyLjU3ek0yODggMzg0djMyYzAgNTIuOTMtNDMuMDYgOTYtOTYgOTZoMzM2YzYxLjg2IDAgMTEyLTUwLjE0IDExMi0xMTIgMC04Ljg0LTcuMTYtMTYtMTYtMTZIMjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTZENhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDBIMTI4TDAgMTI4djMyMGMwIDM1LjMgMjguNyA2NCA2NCA2NGgyNTZjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjRjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTE2MCAxNjBoLTQ4VjY0aDQ4djk2em04MCAwaC00OFY2NGg0OHY5NnptODAgMGgtNDhWNjRoNDh2OTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNlYXJjaERvbGxhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDUuMDQgNDQyLjY2bC05OS43MS05OS42OWMtNC41LTQuNS0xMC42LTctMTctN2gtMTYuM2MyNy42LTM1LjMgNDQtNzkuNjkgNDQtMTI3Ljk5QzQxNi4wMyA5My4wOSAzMjIuOTIgMCAyMDguMDIgMFMwIDkzLjA5IDAgMjA3Ljk4czkzLjExIDIwNy45OCAyMDguMDIgMjA3Ljk4YzQ4LjMgMCA5Mi43MS0xNi40IDEyOC4wMS00NHYxNi4zYzAgNi40IDIuNSAxMi41IDcgMTdsOTkuNzEgOTkuNjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBsMjguMy0yOC4zYzkuNC05LjQgOS40LTI0LjU5LjEtMzMuOTl6bS0yOTcuMDItOTAuN2MtNzkuNTQgMC0xNDQtNjQuMzQtMTQ0LTE0My45OCAwLTc5LjUzIDY0LjM1LTE0My45OCAxNDQtMTQzLjk4IDc5LjU0IDAgMTQ0IDY0LjM0IDE0NCAxNDMuOTggMCA3OS41My02NC4zNSAxNDMuOTgtMTQ0IDE0My45OHptMjcuMTEtMTUyLjU0bC00NS4wMS0xMy41Yy01LjE2LTEuNTUtOC43Ny02Ljc4LTguNzctMTIuNzMgMC03LjI3IDUuMy0xMy4xOSAxMS44LTEzLjE5aDI4LjExYzQuNTYgMCA4Ljk2IDEuMjkgMTIuODIgMy43MiAzLjI0IDIuMDMgNy4zNiAxLjkxIDEwLjEzLS43M2wxMS43NS0xMS4yMWMzLjUzLTMuMzcgMy4zMy05LjIxLS41Ny0xMi4xNC05LjEtNi44My0yMC4wOC0xMC43Ny0zMS4zNy0xMS4zNVYxMTJjMC00LjQyLTMuNTgtOC04LThoLTE2Yy00LjQyIDAtOCAzLjU4LTggOHYxNi4xMmMtMjMuNjMuNjMtNDIuNjggMjAuNTUtNDIuNjggNDUuMDcgMCAxOS45NyAxMi45OSAzNy44MSAzMS41OCA0My4zOWw0NS4wMSAxMy41YzUuMTYgMS41NSA4Ljc3IDYuNzggOC43NyAxMi43MyAwIDcuMjctNS4zIDEzLjE5LTExLjggMTMuMTloLTI4LjFjLTQuNTYgMC04Ljk2LTEuMjktMTIuODItMy43Mi0zLjI0LTIuMDMtNy4zNi0xLjkxLTEwLjEzLjczbC0xMS43NSAxMS4yMWMtMy41MyAzLjM3LTMuMzMgOS4yMS41NyAxMi4xNCA5LjEgNi44MyAyMC4wOCAxMC43NyAzMS4zNyAxMS4zNVYzMDRjMCA0LjQyIDMuNTggOCA4IDhoMTZjNC40MiAwIDgtMy41OCA4LTh2LTE2LjEyYzIzLjYzLS42MyA0Mi42OC0yMC41NCA0Mi42OC00NS4wNyAwLTE5Ljk3LTEyLjk5LTM3LjgxLTMxLjU5LTQzLjM5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTZWFyY2hMb2NhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDUuMDQgNDQyLjY2bC05OS43MS05OS42OWMtNC41LTQuNS0xMC42LTctMTctN2gtMTYuM2MyNy42LTM1LjMgNDQtNzkuNjkgNDQtMTI3Ljk5QzQxNi4wMyA5My4wOSAzMjIuOTIgMCAyMDguMDIgMFMwIDkzLjA5IDAgMjA3Ljk4czkzLjExIDIwNy45OCAyMDguMDIgMjA3Ljk4YzQ4LjMgMCA5Mi43MS0xNi40IDEyOC4wMS00NHYxNi4zYzAgNi40IDIuNSAxMi41IDcgMTdsOTkuNzEgOTkuNjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBsMjguMy0yOC4zYzkuNC05LjQgOS40LTI0LjU5LjEtMzMuOTl6bS0yOTcuMDItOTAuN2MtNzkuNTQgMC0xNDQtNjQuMzQtMTQ0LTE0My45OCAwLTc5LjUzIDY0LjM1LTE0My45OCAxNDQtMTQzLjk4IDc5LjU0IDAgMTQ0IDY0LjM0IDE0NCAxNDMuOTggMCA3OS41My02NC4zNSAxNDMuOTgtMTQ0IDE0My45OHptLjAyLTIzOS45NmMtNDAuNzggMC03My44NCAzMy4wNS03My44NCA3My44MyAwIDMyLjk2IDQ4LjI2IDkzLjA1IDY2Ljc1IDExNC44NmE5LjI0IDkuMjQgMCAwIDAgMTQuMTggMGMxOC40OS0yMS44MSA2Ni43NS04MS44OSA2Ni43NS0xMTQuODYgMC00MC43OC0zMy4wNi03My44My03My44NC03My44M3ptMCA5NmMtMTMuMjYgMC0yNC0xMC43NS0yNC0yNCAwLTEzLjI2IDEwLjc1LTI0IDI0LTI0czI0IDEwLjc0IDI0IDI0YzAgMTMuMjUtMTAuNzUgMjQtMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNlYXJjaE1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwNCAxOTJ2MzJjMCA2LjYtNS40IDEyLTEyIDEySDEyNGMtNi42IDAtMTItNS40LTEyLTEydi0zMmMwLTYuNiA1LjQtMTIgMTItMTJoMTY4YzYuNiAwIDEyIDUuNCAxMiAxMnptMjAxIDI4NC43TDQ3Ni43IDUwNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMzQzIDQwNS4zYy00LjUtNC41LTctMTAuNi03LTE3VjM3MmMtMzUuMyAyNy42LTc5LjcgNDQtMTI4IDQ0QzkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwczIwOCA5My4xIDIwOCAyMDhjMCA0OC4zLTE2LjQgOTIuNy00NCAxMjhoMTYuM2M2LjQgMCAxMi41IDIuNSAxNyA3bDk5LjcgOTkuN2M5LjMgOS40IDkuMyAyNC42IDAgMzR6TTM0NCAyMDhjMC03NS4yLTYwLjgtMTM2LTEzNi0xMzZTNzIgMTMyLjggNzIgMjA4czYwLjggMTM2IDEzNiAxMzYgMTM2LTYwLjggMTM2LTEzNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2VhcmNoUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDQgMTkydjMyYzAgNi42LTUuNCAxMi0xMiAxMmgtNTZ2NTZjMCA2LjYtNS40IDEyLTEyIDEyaC0zMmMtNi42IDAtMTItNS40LTEyLTEydi01NmgtNTZjLTYuNiAwLTEyLTUuNC0xMi0xMnYtMzJjMC02LjYgNS40LTEyIDEyLTEyaDU2di01NmMwLTYuNiA1LjQtMTIgMTItMTJoMzJjNi42IDAgMTIgNS40IDEyIDEydjU2aDU2YzYuNiAwIDEyIDUuNCAxMiAxMnptMjAxIDI4NC43TDQ3Ni43IDUwNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMzQzIDQwNS4zYy00LjUtNC41LTctMTAuNi03LTE3VjM3MmMtMzUuMyAyNy42LTc5LjcgNDQtMTI4IDQ0QzkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwczIwOCA5My4xIDIwOCAyMDhjMCA0OC4zLTE2LjQgOTIuNy00NCAxMjhoMTYuM2M2LjQgMCAxMi41IDIuNSAxNyA3bDk5LjcgOTkuN2M5LjMgOS40IDkuMyAyNC42IDAgMzR6TTM0NCAyMDhjMC03NS4yLTYwLjgtMTM2LTEzNi0xMzZTNzIgMTMyLjggNzIgMjA4czYwLjggMTM2IDEzNiAxMzYgMTM2LTYwLjggMTM2LTEzNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2VhcmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNSA0NDIuN0w0MDUuMyAzNDNjLTQuNS00LjUtMTAuNi03LTE3LTdIMzcyYzI3LjYtMzUuMyA0NC03OS43IDQ0LTEyOEM0MTYgOTMuMSAzMjIuOSAwIDIwOCAwUzAgOTMuMSAwIDIwOHM5My4xIDIwOCAyMDggMjA4YzQ4LjMgMCA5Mi43LTE2LjQgMTI4LTQ0djE2LjNjMCA2LjQgMi41IDEyLjUgNyAxN2w5OS43IDk5LjdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsMjguMy0yOC4zYzkuNC05LjQgOS40LTI0LjYuMS0zNHpNMjA4IDMzNmMtNzAuNyAwLTEyOC01Ny4yLTEyOC0xMjggMC03MC43IDU3LjItMTI4IDEyOC0xMjggNzAuNyAwIDEyOCA1Ny4yIDEyOCAxMjggMCA3MC43LTU3LjIgMTI4LTEyOCAxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNlZWRsaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDk2SDBjMCAxMjMuNyAxMDAuMyAyMjQgMjI0IDIyNHYxNDRjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzMjBDMjg4IDE5Ni4zIDE4Ny43IDk2IDY0IDk2em0zODQtNjRjLTg0LjIgMC0xNTcuNCA0Ni41LTE5NS43IDExNS4yIDI3LjcgMzAuMiA0OC4yIDY2LjkgNTkgMTA3LjZDNDI0IDI0My4xIDUxMiAxNDcuOSA1MTIgMzJoLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTZXJ2ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDE2MEgzMmMtMTcuNjczIDAtMzItMTQuMzI3LTMyLTMyVjY0YzAtMTcuNjczIDE0LjMyNy0zMiAzMi0zMmg0NDhjMTcuNjczIDAgMzIgMTQuMzI3IDMyIDMydjY0YzAgMTcuNjczLTE0LjMyNyAzMi0zMiAzMnptLTQ4LTg4Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjRzMTAuNzQ1IDI0IDI0IDI0IDI0LTEwLjc0NSAyNC0yNC0xMC43NDUtMjQtMjQtMjR6bS02NCAwYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjRzMTAuNzQ1IDI0IDI0IDI0IDI0LTEwLjc0NSAyNC0yNC0xMC43NDUtMjQtMjQtMjR6bTExMiAyNDhIMzJjLTE3LjY3MyAwLTMyLTE0LjMyNy0zMi0zMnYtNjRjMC0xNy42NzMgMTQuMzI3LTMyIDMyLTMyaDQ0OGMxNy42NzMgMCAzMiAxNC4zMjcgMzIgMzJ2NjRjMCAxNy42NzMtMTQuMzI3IDMyLTMyIDMyem0tNDgtODhjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHMxMC43NDUgMjQgMjQgMjQgMjQtMTAuNzQ1IDI0LTI0LTEwLjc0NS0yNC0yNC0yNHptLTY0IDBjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHMxMC43NDUgMjQgMjQgMjQgMjQtMTAuNzQ1IDI0LTI0LTEwLjc0NS0yNC0yNC0yNHptMTEyIDI0OEgzMmMtMTcuNjczIDAtMzItMTQuMzI3LTMyLTMydi02NGMwLTE3LjY3MyAxNC4zMjctMzIgMzItMzJoNDQ4YzE3LjY3MyAwIDMyIDE0LjMyNyAzMiAzMnY2NGMwIDE3LjY3My0xNC4zMjcgMzItMzIgMzJ6bS00OC04OGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0czEwLjc0NSAyNCAyNCAyNCAyNC0xMC43NDUgMjQtMjQtMTAuNzQ1LTI0LTI0LTI0em0tNjQgMGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0czEwLjc0NSAyNCAyNCAyNCAyNC0xMC43NDUgMjQtMjQtMTAuNzQ1LTI0LTI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGFwZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4LDI1NkExMjgsMTI4LDAsMSwwLDI1NiwzODQsMTI4LDEyOCwwLDAsMCwxMjgsMjU2Wm0zNzktNTQuODZMNDAwLjA3LDE4LjI5YTM3LjI2LDM3LjI2LDAsMCwwLTY0LjE0LDBMMjI5LDIwMS4xNEMyMTQuNzYsMjI1LjUyLDIzMi41OCwyNTYsMjYxLjA5LDI1Nkg0NzQuOTFDNTAzLjQyLDI1Niw1MjEuMjQsMjI1LjUyLDUwNywyMDEuMTRaTTQ4MCwyODhIMzIwYTMyLDMyLDAsMCwwLTMyLDMyVjQ4MGEzMiwzMiwwLDAsMCwzMiwzMkg0ODBhMzIsMzIsMCwwLDAsMzItMzJWMzIwQTMyLDMyLDAsMCwwLDQ4MCwyODhaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoYXJlQWx0U3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA4MHYzNTJjMCAyNi41MS0yMS40OSA0OC00OCA0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFY4MGMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDM1MmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4ek0zMDQgMjk2Yy0xNC41NjIgMC0yNy44MjMgNS41NjEtMzcuNzgzIDE0LjY3MWwtNjcuOTU4LTQwLjc3NWE1Ni4zMzkgNTYuMzM5IDAgMCAwIDAtMjcuNzkzbDY3Ljk1OC00MC43NzVDMjc2LjE3NyAyMTAuNDM5IDI4OS40MzggMjE2IDMwNCAyMTZjMzAuOTI4IDAgNTYtMjUuMDcyIDU2LTU2cy0yNS4wNzItNTYtNTYtNTYtNTYgMjUuMDcyLTU2IDU2YzAgNC43OTcuNjA1IDkuNDUzIDEuNzQgMTMuODk3bC02Ny45NTggNDAuNzc1QzE3MS44MjMgMjA1LjU2MSAxNTguNTYyIDIwMCAxNDQgMjAwYy0zMC45MjggMC01NiAyNS4wNzItNTYgNTZzMjUuMDcyIDU2IDU2IDU2YzE0LjU2MiAwIDI3LjgyMy01LjU2MSAzNy43ODMtMTQuNjcxbDY3Ljk1OCA0MC43NzVhNTYuMDg4IDU2LjA4OCAwIDAgMC0xLjc0IDEzLjg5N2MwIDMwLjkyOCAyNS4wNzIgNTYgNTYgNTZzNTYtMjUuMDcyIDU2LTU2QzM2MCAzMjEuMDcyIDMzNC45MjggMjk2IDMwNCAyOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoYXJlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiAzMjBjLTIyLjYwOCAwLTQzLjM4NyA3LjgxOS01OS43OSAyMC44OTVsLTEwMi40ODYtNjQuMDU0YTk2LjU1MSA5Ni41NTEgMCAwIDAgMC00MS42ODNsMTAyLjQ4Ni02NC4wNTRDMzA4LjYxMyAxODQuMTgxIDMyOS4zOTIgMTkyIDM1MiAxOTJjNTMuMDE5IDAgOTYtNDIuOTgxIDk2LTk2UzQwNS4wMTkgMCAzNTIgMHMtOTYgNDIuOTgxLTk2IDk2YzAgNy4xNTguNzkgMTQuMTMgMi4yNzYgMjAuODQxTDE1NS43OSAxODAuODk1QzEzOS4zODcgMTY3LjgxOSAxMTguNjA4IDE2MCA5NiAxNjBjLTUzLjAxOSAwLTk2IDQyLjk4MS05NiA5NnM0Mi45ODEgOTYgOTYgOTZjMjIuNjA4IDAgNDMuMzg3LTcuODE5IDU5Ljc5LTIwLjg5NWwxMDIuNDg2IDY0LjA1NEE5Ni4zMDEgOTYuMzAxIDAgMCAwIDI1NiA0MTZjMCA1My4wMTkgNDIuOTgxIDk2IDk2IDk2czk2LTQyLjk4MSA5Ni05Ni00Mi45ODEtOTYtOTYtOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoYXJlU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2OC40ODIgMTc3LjQ0OEw0MjQuNDc5IDMxMy40MzNDNDA5LjMgMzI3Ljc2OCAzODQgMzE3LjE0IDM4NCAyOTUuOTg1di03MS45NjNjLTE0NC41NzUuOTctMjA1LjU2NiAzNS4xMTMtMTY0Ljc3NSAxNzEuMzUzIDQuNDgzIDE0Ljk3My0xMi44NDYgMjYuNTY3LTI1LjAwNiAxNy4zM0MxNTUuMjUyIDM4My4xMDUgMTIwIDMyNi40ODggMTIwIDI2OS4zMzljMC0xNDMuOTM3IDExNy41OTktMTcyLjUgMjY0LTE3My4zMTJWMjQuMDEyYzAtMjEuMTc0IDI1LjMxNy0zMS43NjggNDAuNDc5LTE3LjQ0OGwxNDQuMDAzIDEzNS45ODhjMTAuMDIgOS40NjMgMTAuMDI4IDI1LjQyNSAwIDM0Ljg5NnpNMzg0IDM3OS4xMjhWNDQ4SDY0VjEyOGg1MC45MTZhMTEuOTkgMTEuOTkgMCAwIDAgOC42NDgtMy42OTNjMTQuOTUzLTE1LjU2OCAzMi4yMzctMjcuODkgNTEuMDE0LTM3LjY3NkMxODUuNzA4IDgwLjgzIDE4MS41ODQgNjQgMTY5LjAzMyA2NEg0OEMyMS40OSA2NCAwIDg1LjQ5IDAgMTEydjM1MmMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDM1MmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4di04OC44MDZjMC04LjI4OC04LjE5Ny0xNC4wNjYtMTYuMDExLTExLjMwMmE3MS44MyA3MS44MyAwIDAgMS0zNC4xODkgMy4zNzdjLTcuMjctMS4wNDYtMTMuOCA0LjUxNC0xMy44IDExLjg1OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAzLjY5MSAxODkuODM2TDMyNy42ODcgMzcuODUxQzMxMi4yODEgMjQuNTQ2IDI4OCAzNS4zNDcgMjg4IDU2LjAxNXY4MC4wNTNDMTI3LjM3MSAxMzcuOTA3IDAgMTcwLjEgMCAzMjIuMzI2YzAgNjEuNDQxIDM5LjU4MSAxMjIuMzA5IDgzLjMzMyAxNTQuMTMyIDEzLjY1MyA5LjkzMSAzMy4xMTEtMi41MzMgMjguMDc3LTE4LjYzMUM2Ni4wNjYgMzEyLjgxNCAxMzIuOTE3IDI3NC4zMTYgMjg4IDI3Mi4wODVWMzYwYzAgMjAuNyAyNC4zIDMxLjQ1MyAzOS42ODcgMTguMTY0bDE3Ni4wMDQtMTUyYzExLjA3MS05LjU2MiAxMS4wODYtMjYuNzUzIDAtMzYuMzI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGVrZWxTaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCAxNjh2MTY4YzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4YzguODQgMCAxNi03LjE2IDE2LTE2VjE2OGMwLTc1LjExLTYwLjg5LTEzNi0xMzYtMTM2SDI0QzEwLjc1IDMyIDAgNDIuNzQgMCA1NnY0MDhjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDhjOC44NCAwIDE2LTcuMTYgMTYtMTZWMTEyaDExMmMzMC45MyAwIDU2IDI1LjA3IDU2IDU2ek00MzIgMzJoLTQ4Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYyOTZjMCAzMC45My0yNS4wNyA1Ni01NiA1NkgyMDBWMTc2YzAtOC44NC03LjE2LTE2LTE2LTE2aC00OGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MjgwYzAgMTMuMjUgMTAuNzUgMjQgMjQgMjRoMTY4Yzc1LjExIDAgMTM2LTYwLjg5IDEzNi0xMzZWNDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoaWVsZEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjYuNSA4My43bC0xOTItODBhNDguMTUgNDguMTUgMCAwIDAtMzYuOSAwbC0xOTIgODBDMjcuNyA5MS4xIDE2IDEwOC42IDE2IDEyOGMwIDE5OC41IDExNC41IDMzNS43IDIyMS41IDM4MC4zIDExLjggNC45IDI1LjEgNC45IDM2LjkgMEMzNjAuMSA0NzIuNiA0OTYgMzQ5LjMgNDk2IDEyOGMwLTE5LjQtMTEuNy0zNi45LTI5LjUtNDQuM3pNMjU2LjEgNDQ2LjNsLS4xLTM4MSAxNzUuOSA3My4zYy0zLjMgMTUxLjQtODIuMSAyNjEuMS0xNzUuOCAzMDcuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hpZWxkVmlydXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0LDE5MmExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwyMjQsMTkyWk00NjYuNSw4My42OGwtMTkyLTgwQTU3LjQsNTcuNCwwLDAsMCwyNTYuMDUsMGE1Ny40LDU3LjQsMCwwLDAtMTguNDYsMy42N2wtMTkyLDgwQTQ3LjkzLDQ3LjkzLDAsMCwwLDE2LDEyOEMxNiwzMjYuNSwxMzAuNSw0NjMuNzIsMjM3LjUsNTA4LjMyYTQ4LjA5LDQ4LjA5LDAsMCwwLDM2LjkxLDBDMzYwLjA5LDQ3Mi42MSw0OTYsMzQ5LjMsNDk2LDEyOEE0OCw0OCwwLDAsMCw0NjYuNSw4My42OFpNMzg0LDI1NkgzNzEuODhjLTI4LjUxLDAtNDIuNzksMzQuNDctMjIuNjMsNTQuNjNsOC41OCw4LjU3YTE2LDE2LDAsMSwxLTIyLjYzLDIyLjYzbC04LjU3LTguNThDMzA2LjQ3LDMxMy4wOSwyNzIsMzI3LjM3LDI3MiwzNTUuODhWMzY4YTE2LDE2LDAsMCwxLTMyLDBWMzU1Ljg4YzAtMjguNTEtMzQuNDctNDIuNzktNTQuNjMtMjIuNjNsLTguNTcsOC41OGExNiwxNiwwLDAsMS0yMi42My0yMi42M2w4LjU4LTguNTdjMjAuMTYtMjAuMTYsNS44OC01NC42My0yMi42My01NC42M0gxMjhhMTYsMTYsMCwwLDEsMC0zMmgxMi4xMmMyOC41MSwwLDQyLjc5LTM0LjQ3LDIyLjYzLTU0LjYzbC04LjU4LTguNTdhMTYsMTYsMCwwLDEsMjIuNjMtMjIuNjNsOC41Nyw4LjU4YzIwLjE2LDIwLjE2LDU0LjYzLDUuODgsNTQuNjMtMjIuNjNWMTEyYTE2LDE2LDAsMCwxLDMyLDB2MTIuMTJjMCwyOC41MSwzNC40Nyw0Mi43OSw1NC42MywyMi42M2w4LjU3LTguNThhMTYsMTYsMCwwLDEsMjIuNjMsMjIuNjNsLTguNTgsOC41N0MzMjkuMDksMTg5LjUzLDM0My4zNywyMjQsMzcxLjg4LDIyNEgzODRhMTYsMTYsMCwwLDEsMCwzMlptLTk2LDBhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsMjg4LDI1NlpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hpcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYuNjE2IDM3Mi42MzlsNzAuMDEyLTcwLjAxMmMxNi44OTktMTYuOSA5Ljk0Mi00NS43NzEtMTIuODM2LTUzLjA5Mkw1MTIgMjM2LjEwMlY5NmMwLTE3LjY3My0xNC4zMjctMzItMzItMzJoLTY0VjI0YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyNDhjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHY0MGgtNjRjLTE3LjY3MyAwLTMyIDE0LjMyNy0zMiAzMnYxNDAuMTAybC00MS43OTIgMTMuNDMzYy0yMi43NTMgNy4zMTMtMjkuNzU0IDM2LjE3My0xMi44MzYgNTMuMDkybDcwLjAxMiA3MC4wMTJDMTI1LjgyOCA0MTYuMjg3IDg1LjU4NyA0NDggMjQgNDQ4Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MTZjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0IDYxLjAyMyAwIDEwNy40OTktMjAuNjEgMTQzLjI1OC01OS4zOTZDMTgxLjY3NyA0ODcuNDMyIDIxNi4wMjEgNTEyIDI1NiA1MTJoMTI4YzM5Ljk3OSAwIDc0LjMyMy0yNC41NjggODguNzQyLTU5LjM5NkM1MDguNDk1IDQ5MS4zODQgNTU0Ljk2OCA1MTIgNjE2IDUxMmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTE2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNC02MC44MTcgMC0xMDEuNTQyLTMxLjAwMS0xMTkuMzg0LTc1LjM2MXpNMTkyIDEyOGgyNTZ2ODcuNTMxbC0xMTguMjA4LTM3Ljk5NWEzMS45OTUgMzEuOTk1IDAgMCAwLTE5LjU4NCAwTDE5MiAyMTUuNTMxVjEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hpcHBpbmdGYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNCAzNTJoLTE2VjI0My45YzAtMTIuNy01LjEtMjQuOS0xNC4xLTMzLjlMNDk0IDExMC4xYy05LTktMjEuMi0xNC4xLTMzLjktMTQuMUg0MTZWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhIMTEyQzg1LjUgMCA2NCAyMS41IDY0IDQ4djQ4SDhjLTQuNCAwLTggMy42LTggOHYxNmMwIDQuNCAzLjYgOCA4IDhoMjcyYzQuNCAwIDggMy42IDggOHYxNmMwIDQuNC0zLjYgOC04IDhINDBjLTQuNCAwLTggMy42LTggOHYxNmMwIDQuNCAzLjYgOCA4IDhoMjA4YzQuNCAwIDggMy42IDggOHYxNmMwIDQuNC0zLjYgOC04IDhIOGMtNC40IDAtOCAzLjYtOCA4djE2YzAgNC40IDMuNiA4IDggOGgyMDhjNC40IDAgOCAzLjYgOCA4djE2YzAgNC40LTMuNiA4LTggOEg2NHYxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmgxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05Nmg0OGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnpNMTYwIDQ2NGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OCA0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDh6bTMyMCAwYy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4IDQ4IDIxLjUgNDggNDgtMjEuNSA0OC00OCA0OHptODAtMjA4SDQxNlYxNDRoNDQuMWw5OS45IDk5LjlWMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaG9lUHJpbnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiAxNjBoMzJWMzJoLTMyYy0zNS4zNSAwLTY0IDI4LjY1LTY0IDY0czI4LjY1IDY0IDY0IDY0ek0wIDQxNmMwIDM1LjM1IDI4LjY1IDY0IDY0IDY0aDMyVjM1Mkg2NGMtMzUuMzUgMC02NCAyOC42NS02NCA2NHptMzM3LjQ2LTEyOGMtMzQuOTEgMC03Ni4xNiAxMy4xMi0xMDQuNzMgMzItMjQuNzkgMTYuMzgtNDQuNTIgMzItMTA0LjczIDMydjEyOGw1Ny41MyAxNS45N2MyNi4yMSA3LjI4IDUzLjAxIDEzLjEyIDgwLjMxIDE1LjA1IDMyLjY5IDIuMzEgNjUuNi42NyA5Ny41OC02LjJDNDcyLjkgNDgxLjMgNTEyIDQyOS4yMiA1MTIgMzg0YzAtNjQtODQuMTgtOTYtMTc0LjU0LTk2ek00OTEuNDIgNy4xOUM0NTkuNDQuMzIgNDI2LjUzLTEuMzMgMzkzLjg0Ljk5Yy0yNy4zIDEuOTMtNTQuMSA3Ljc3LTgwLjMxIDE1LjA0TDI1NiAzMnYxMjhjNjAuMiAwIDc5Ljk0IDE1LjYyIDEwNC43MyAzMiAyOC41NyAxOC44OCA2OS44MiAzMiAxMDQuNzMgMzJDNTU1LjgyIDIyNCA2NDAgMTkyIDY0MCAxMjhjMC00NS4yMi0zOS4xLTk3LjMtMTQ4LjU4LTEyMC44MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hvcHBpbmdCYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyIDE2MHYtMzJDMzUyIDU3LjQyIDI5NC41NzkgMCAyMjQgMCAxNTMuNDIgMCA5NiA1Ny40MiA5NiAxMjh2MzJIMHYyNzJjMCA0NC4xODMgMzUuODE3IDgwIDgwIDgwaDI4OGM0NC4xODMgMCA4MC0zNS44MTcgODAtODBWMTYwaC05NnptLTE5Mi0zMmMwLTM1LjI5IDI4LjcxLTY0IDY0LTY0czY0IDI4LjcxIDY0IDY0djMySDE2MHYtMzJ6bTE2MCAxMjBjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNHMxMC43NDUtMjQgMjQtMjQgMjQgMTAuNzQ1IDI0IDI0LTEwLjc0NSAyNC0yNCAyNHptLTE5MiAwYy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjRzMTAuNzQ1LTI0IDI0LTI0IDI0IDEwLjc0NSAyNCAyNC0xMC43NDUgMjQtMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNob3BwaW5nQmFza2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3NiAyMTZ2MTZjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0aC04bC0yNi4xMTMgMTgyLjc4OEM1MTQuNTA5IDQ2Mi40MzUgNDk0LjI1NyA0ODAgNDcwLjM3IDQ4MEgxMDUuNjNjLTIzLjg4NyAwLTQ0LjEzOS0xNy41NjUtNDcuNTE4LTQxLjIxMkwzMiAyNTZoLThjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNHYtMTZjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0aDY3LjM0MWwxMDYuNzgtMTQ2LjgyMWMxMC4zOTUtMTQuMjkyIDMwLjQwNy0xNy40NTMgNDQuNzAxLTcuMDU4IDE0LjI5MyAxMC4zOTUgMTcuNDUzIDMwLjQwOCA3LjA1OCA0NC43MDFMMTcwLjQ3NyAxOTJoMjM1LjA0NkwzMjYuMTIgODIuODIxYy0xMC4zOTUtMTQuMjkyLTcuMjM0LTM0LjMwNiA3LjA1OS00NC43MDEgMTQuMjkxLTEwLjM5NSAzNC4zMDYtNy4yMzUgNDQuNzAxIDcuMDU4TDQ4NC42NTkgMTkySDU1MmMxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR6TTMxMiAzOTJWMjgwYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHMtMjQgMTAuNzQ1LTI0IDI0djExMmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRzMjQtMTAuNzQ1IDI0LTI0em0xMTIgMFYyODBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0cy0yNCAxMC43NDUtMjQgMjR2MTEyYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNHMyNC0xMC43NDUgMjQtMjR6bS0yMjQgMFYyODBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0cy0yNCAxMC43NDUtMjQgMjR2MTEyYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNHMyNC0xMC43NDUgMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNob3BwaW5nQ2FydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjguMTIgMzAxLjMxOWw0Ny4yNzMtMjA4QzU3OC44MDYgNzguMzAxIDU2Ny4zOTEgNjQgNTUxLjk5IDY0SDE1OS4yMDhsLTkuMTY2LTQ0LjgxQzE0Ny43NTggOC4wMjEgMTM3LjkzIDAgMTI2LjUyOSAwSDI0QzEwLjc0NSAwIDAgMTAuNzQ1IDAgMjR2MTZjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDY5Ljg4M2w3MC4yNDggMzQzLjQzNUMxNDcuMzI1IDQxNy4xIDEzNiA0MzUuMjIyIDEzNiA0NTZjMCAzMC45MjggMjUuMDcyIDU2IDU2IDU2czU2LTI1LjA3MiA1Ni01NmMwLTE1LjY3NC02LjQ0Ny0yOS44MzUtMTYuODI0LTQwaDIwOS42NDdDNDMwLjQ0NyA0MjYuMTY1IDQyNCA0NDAuMzI2IDQyNCA0NTZjMCAzMC45MjggMjUuMDcyIDU2IDU2IDU2czU2LTI1LjA3MiA1Ni01NmMwLTIyLjE3Mi0xMi44ODgtNDEuMzMyLTMxLjU3OS01MC40MDVsNS41MTctMjQuMjc2YzMuNDEzLTE1LjAxOC04LjAwMi0yOS4zMTktMjMuNDAzLTI5LjMxOUgyMTguMTE3bC02LjU0NS0zMmgyOTMuMTQ1YzExLjIwNiAwIDIwLjkyLTcuNzU0IDIzLjQwMy0xOC42ODF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNob3dlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDQsMzIwYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDMwNCwzMjBabTMyLTk2YTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDMzNiwyMjRabTMyLDY0YTE2LDE2LDAsMSwwLTE2LTE2QTE2LDE2LDAsMCwwLDM2OCwyODhabS0zMiwzMmExNiwxNiwwLDEsMC0xNi0xNkExNiwxNiwwLDAsMCwzMzYsMzIwWm0tMzItNjRhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsMzA0LDI1NlptMTI4LTMyYTE2LDE2LDAsMSwwLTE2LTE2QTE2LDE2LDAsMCwwLDQzMiwyMjRabS00OCwxNmExNiwxNiwwLDEsMCwxNi0xNkExNiwxNiwwLDAsMCwzODQsMjQwWm0tMTYtNDhhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsMzY4LDE5MlptOTYsMzJhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsNDY0LDIyNFptMzItMzJhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsNDk2LDE5MlptLTY0LDY0YTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDQzMiwyNTZabS0zMiwzMmExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCw0MDAsMjg4Wm0tNjQsNjRhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsMzM2LDM1MlptLTMyLDMyYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDMwNCwzODRabTY0LTY0YTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDM2OCwzMjBabTIxLjY1LTIxOC4zNS0xMS4zLTExLjMxYTE2LDE2LDAsMCwwLTIyLjYzLDBMMzUwLjA1LDk2QTExMS4xOSwxMTEuMTksMCwwLDAsMjcyLDY0Yy0xOS4yNCwwLTM3LjA4LDUuMy01Mi45LDEzLjg1bC0xMC0xMEExMjEuNzIsMTIxLjcyLDAsMCwwLDEyMy40NCwzMkM1NS40OSwzMS41LDAsOTIuOTEsMCwxNjAuODVWNDY0YTE2LDE2LDAsMCwwLDE2LDE2SDQ4YTE2LDE2LDAsMCwwLDE2LTE2VjE1OC40YzAtMzAuMTUsMjEtNTguMiw1MS02MS45M2E1OC4zOCw1OC4zOCwwLDAsMSw0OC45MywxNi42N2wxMCwxMEMxNjUuMywxMzguOTIsMTYwLDE1Ni43NiwxNjAsMTc2YTExMS4yMywxMTEuMjMsMCwwLDAsMzIsNzguMDVsLTUuNjYsNS42N2ExNiwxNiwwLDAsMCwwLDIyLjYybDExLjMsMTEuMzFhMTYsMTYsMCwwLDAsMjIuNjMsMEwzODkuNjUsMTI0LjI4QTE2LDE2LDAsMCwwLDM4OS42NSwxMDEuNjVaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNodXR0bGVWYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI4Ljg4IDIxMC42NUw0OTQuMzkgNDkuMjdBNDguMDEgNDguMDEgMCAwIDAgNDU3LjUyIDMySDMyQzE0LjMzIDMyIDAgNDYuMzMgMCA2NHYyODhjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMmMwIDUzLjAyIDQyLjk4IDk2IDk2IDk2czk2LTQyLjk4IDk2LTk2aDEyOGMwIDUzLjAyIDQyLjk4IDk2IDk2IDk2czk2LTQyLjk4IDk2LTk2aDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMjQxLjM4YzAtMTEuMjMtMy45NC0yMi4xLTExLjEyLTMwLjczek02NCAxOTJWOTZoOTZ2OTZINjR6bTk2IDI0MGMtMjYuNTEgMC00OC0yMS40OS00OC00OHMyMS40OS00OCA0OC00OCA0OCAyMS40OSA0OCA0OC0yMS40OSA0OC00OCA0OHptMTYwLTI0MGgtOTZWOTZoOTZ2OTZ6bTE2MCAyNDBjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhzMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDgtMjEuNDkgNDgtNDggNDh6bS05Ni0yNDBWOTZoNjYuMDJsODAgOTZIMzg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaWduSW5BbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDQ0OGgtODRjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDg0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMmgtODRjLTYuNiAwLTEyLTUuNC0xMi0xMlY3NmMwLTYuNiA1LjQtMTIgMTItMTJoODRjNTMgMCA5NiA0MyA5NiA5NnYxOTJjMCA1My00MyA5Ni05NiA5NnptLTQ3LTIwMUwyMDEgNzljLTE1LTE1LTQxLTQuNS00MSAxN3Y5NkgyNGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2OTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMTM2djk2YzAgMjEuNSAyNiAzMiA0MSAxN2wxNjgtMTY4YzkuMy05LjQgOS4zLTI0LjYgMC0zNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2lnbkxhbmd1YWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkxLjQzNCA0ODMuOTg3Yy0uMzA3LTE2LjAxOCAxMy4xMDktMjkuMTI5IDI5LjEzLTI5LjEyOWg2Mi4yOTN2LTUuNzE0SDU2Ljk5M2MtMTYuMDIxIDAtMjkuNDM3LTEzLjExMS0yOS4xMy0yOS4xMjlDMjguMTYgNDA0LjQ5MSA0MC44MzUgMzkyIDU2LjQyOCAzOTJoMTI2LjQyOXYtNS43MTRIMjkuMTM2Yy0xNi4wMjEgMC0yOS40MzctMTMuMTExLTI5LjEzLTI5LjEyOS4yOTctMTUuNTIyIDEyLjk3My0yOC4wMTMgMjguNTY2LTI4LjAxM2gxNTQuMjg2di01LjcxNEg1Ny43MDdjLTE2LjAyMSAwLTI5LjQzNy0xMy4xMTEtMjkuMTMtMjkuMTI5LjI5Ny0xNS41MjIgMTIuOTczLTI4LjAxMyAyOC41NjYtMjguMDEzaDE2OC41NjZsLTMxLjA4NS0yMi42MDZjLTEyLjc2Mi05LjI4MS0xNS41ODMtMjcuMTQ5LTYuMzAyLTM5LjkxMiA5LjI4MS0xMi43NjEgMjcuMTUtMTUuNTgyIDM5LjkxMi02LjMwMmwxMjMuMzYxIDg5LjcxNWEzNC4yODcgMzQuMjg3IDAgMCAxIDE0LjEyIDI3LjcyOHYxNDEuMTM2YzAgMTUuOTEtMTAuOTQ2IDI5LjczLTI2LjQzMyAzMy4zNzRsLTgwLjQ3MSAxOC45MzRhMTM3LjE2IDEzNy4xNiAwIDAgMS0zMS40MTEgMy42NDZIMTIwYy0xNS41OTMtLjAwMS0yOC4yNjktMTIuNDkyLTI4LjU2Ni0yOC4wMTR6bTczLjI0OS0yMjUuNzAxaDM2LjQyM2wtMTEuMTg3LTguMTM2Yy0xOC41NzktMTMuNTExLTIwLjMxMy00MC44ODctMy4xNy01Ni41MzZsLTEzLjAwNC0xNi43Yy05Ljg0My0xMi42NDEtMjguNDMtMTUuMTcxLTQwLjg4LTUuMDg4LTEyLjA2NSA5Ljc3MS0xNC4xMzMgMjcuNDQ3LTQuNTUzIDM5Ljc1bDM2LjM3MSA0Ni43MXptMjgzLjI5OC0yLjEwM2wtNS4wMDMtMTUyLjQ1MmMtLjUxOC0xNS43NzEtMTMuNzIyLTI4LjEzNi0yOS40OTMtMjcuNjE5LTE1Ljc3My41MTgtMjguMTM3IDEzLjcyMi0yNy42MTkgMjkuNDkzbDEuMjYyIDM4LjQxNUwyODMuNTY1IDExLjAxOWMtOS41OC0xMi4zMDMtMjcuMjIzLTE0LjYzLTM5LjY1My01LjMyOC0xMi44MjcgOS41OTktMTQuOTI5IDI4LjI0LTUuMDg2IDQwLjg4MWw3Ni44ODkgOTguNzQ1LTQuNTA5IDMuNTExLTk0Ljc5LTEyMS43MzRjLTkuNTgtMTIuMzAzLTI3LjIyMy0xNC42My0zOS42NTMtNS4zMjgtMTIuODI3IDkuNTk5LTE0LjkyOSAyOC4yNC01LjA4NiA0MC44ODFsOTQuNDQzIDEyMS4yODgtNC41MDkgMy41MTEtNzcuNjc1LTk5Ljc1NGMtOS41OC0xMi4zMDMtMjcuMjIzLTE0LjYzLTM5LjY1My01LjMyOC0xMi44MjcgOS41OTktMTQuOTI5IDI4LjI0LTUuMDg2IDQwLjg4MWw1Mi4wNTMgNjYuODQ5YzEyLjQ5Ny04LjI1NyAyOS4wNTUtOC4yODUgNDEuNjkuOTA0bDEyMy4zNiA4OS43MTRjMTAuOTA0IDcuOTMgMTcuNDE1IDIwLjcxNSAxNy40MTUgMzQuMTk4djE2Ljk5OWw2MS4wNjQtNDcuNTQ5YTM0LjI4NSAzNC4yODUgMCAwIDAgMTMuMjAyLTI4LjE3N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2lnbk91dEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTcgMjczTDMyOSA0NDFjLTE1IDE1LTQxIDQuNS00MS0xN3YtOTZIMTUyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHYtOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRoMTM2Vjg4YzAtMjEuNCAyNS45LTMyIDQxLTE3bDE2OCAxNjhjOS4zIDkuNCA5LjMgMjQuNiAwIDM0ek0xOTIgNDM2di00MGMwLTYuNi01LjQtMTItMTItMTJIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmg4NGM2LjYgMCAxMi01LjQgMTItMTJWNzZjMC02LjYtNS40LTEyLTEyLTEySDk2Yy01MyAwLTk2IDQzLTk2IDk2djE5MmMwIDUzIDQzIDk2IDk2IDk2aDg0YzYuNiAwIDEyLTUuNCAxMi0xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYgNjRIMTI4VjE2YzAtOC44LTcuMi0xNi0xNi0xNkg4MGMtOC44IDAtMTYgNy4yLTE2IDE2djQ4SDE2QzcuMiA2NCAwIDcxLjIgMCA4MHYzMmMwIDguOCA3LjIgMTYgMTYgMTZoNDh2MzY4YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMTI4aDM2OGM4LjggMCAxNi03LjIgMTYtMTZWODBjMC04LjgtNy4yLTE2LTE2LTE2ek0xNjAgMzg0aDMyMFYxNjBIMTYwdjIyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2lnbmFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNiAyODhoLTQ4Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxOTJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDhjOC44NCAwIDE2LTcuMTYgMTYtMTZWMzA0YzAtOC44NC03LjE2LTE2LTE2LTE2ek04OCAzODRINDBjLTguODQgMC0xNiA3LjE2LTE2IDE2djk2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4YzguODQgMCAxNi03LjE2IDE2LTE2di05NmMwLTguODQtNy4xNi0xNi0xNi0xNnptMjU2LTE5MmgtNDhjLTguODQgMC0xNiA3LjE2LTE2IDE2djI4OGMwIDguODQgNy4xNiAxNiAxNiAxNmg0OGM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYyMDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bTEyOC05NmgtNDhjLTguODQgMC0xNiA3LjE2LTE2IDE2djM4NGMwIDguODQgNy4xNiAxNiAxNiAxNmg0OGM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYxMTJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6TTYwMCAwaC00OGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NDgwYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4YzguODQgMCAxNi03LjE2IDE2LTE2VjE2YzAtOC44NC03LjE2LTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaWduYXR1cmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjIzLjIgMTkyYy01MS44IDMuNS0xMjUuNyA1NC43LTE2My4xIDcxLjUtMjkuMSAxMy4xLTU0LjIgMjQuNC03Ni4xIDI0LjQtMjIuNiAwLTI2LTE2LjItMjEuMy01MS45IDEuMS04IDExLjctNzkuMi00Mi43LTc2LjEtMjUuMSAxLjUtNjQuMyAyNC44LTE2OS41IDEyNkwxOTIgMTgyLjJjMzAuNC03NS45LTUzLjItMTUxLjUtMTI5LjctMTAyLjhMNy40IDExNi4zQzAgMTIxLTIuMiAxMzAuOSAyLjUgMTM4LjRsMTcuMiAyN2M0LjcgNy41IDE0LjYgOS43IDIyLjEgNC45bDU4LTM4LjljMTguNC0xMS43IDQwLjcgNy4yIDMyLjcgMjcuMUwzNC4zIDQwNC4xQzI3LjUgNDIxIDM3IDQ0OCA2NCA0NDhjOC4zIDAgMTYuNS0zLjIgMjIuNi05LjQgNDIuMi00Mi4yIDE1NC43LTE1MC43IDIxMS4yLTE5NS44LTIuMiAyOC41LTIuMSA1OC45IDIwLjYgODMuOCAxNS4zIDE2LjggMzcuMyAyNS4zIDY1LjUgMjUuMyAzNS42IDAgNjgtMTQuNiAxMDIuMy0zMCAzMy0xNC44IDk5LTYyLjYgMTM4LjQtNjUuOCA4LjUtLjcgMTUuMi03LjMgMTUuMi0xNS44di0zMi4xYy4yLTkuMS03LjUtMTYuOC0xNi42LTE2LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpbUNhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NHYzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRoMjU2YzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOEwyNTYgMEg2NEMyOC43IDAgMCAyOC43IDAgNjR6bTIyNCAxOTJoLTY0di02NGg2NHY2NHptOTYgMGgtNjR2LTY0aDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMydjMyem0tNjQgMTI4aDY0djMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyaC0zMnYtNjR6bS05NiAwaDY0djY0aC02NHYtNjR6bS05NiAwaDY0djY0SDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnYtMzJ6bTAtOTZoMjU2djY0SDY0di02NHptMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmgzMnY2NEg2NHYtMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIsNDE2YTk2LDk2LDAsMCwwLDk2LDk2SDM4NGE5Niw5NiwwLDAsMCw5Ni05NlYzODRIMzJaTTQ5NiwyODhINDAwVjI1Nmg2NGExNiwxNiwwLDAsMCwxNi0xNlYyMjRhMTYsMTYsMCwwLDAtMTYtMTZIMzg0YTMyLDMyLDAsMCwwLTMyLDMydjQ4SDI4OFY5NmEzMiwzMiwwLDAsMSw2NCwwdjE2YTE2LDE2LDAsMCwwLDE2LDE2aDMyYTE2LDE2LDAsMCwwLDE2LTE2Vjk2QTk2LjE2LDk2LjE2LDAsMCwwLDMwMC44NywxLjg2QzI1NS4yOSwxMC43MSwyMjQsNTMuMzYsMjI0LDk5Ljc5VjI4OEgxNjBWMjQwYTMyLDMyLDAsMCwwLTMyLTMySDQ4YTE2LDE2LDAsMCwwLTE2LDE2djE2YTE2LDE2LDAsMCwwLDE2LDE2aDY0djMySDE2QTE2LDE2LDAsMCwwLDAsMzA0djMyYTE2LDE2LDAsMCwwLDE2LDE2SDQ5NmExNiwxNiwwLDAsMCwxNi0xNlYzMDRBMTYsMTYsMCwwLDAsNDk2LDI4OFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2l0ZW1hcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMzUySDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjk2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoOTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtOTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptLTI0LTgwaDE5MnY0OGg0OHYtNDhoMTkydjQ4aDQ4di01Ny41OWMwLTIxLjE3LTE3LjIzLTM4LjQxLTM4LjQxLTM4LjQxSDM0NHYtNjRoNDBjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYzMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMySDI1NmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY5NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDQwdjY0SDk0LjQxQzczLjIzIDIyNCA1NiAyNDEuMjMgNTYgMjYyLjQxVjMyMGg0OHYtNDh6bTI2NCA4MGgtOTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg5NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi05NmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyem0yNDAgMGgtOTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg5NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi05NmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTa2F0aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAwYy0yNi41IDAtNDggMjEuNS00OCA0OHMyMS41IDQ4IDQ4IDQ4IDQ4LTIxLjUgNDgtNDgtMjEuNS00OC00OC00OHptMCA0NDhjLTguOCAwLTE2IDcuMi0xNiAxNnMtNy4yIDE2LTE2IDE2aC05NmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmg5NmMyNi41IDAgNDgtMjEuNSA0OC00OCAwLTguOC03LjItMTYtMTYtMTZ6bS0yODIuMiA4LjZjLTYuMiA2LjItMTYuNCA2LjMtMjIuNiAwbC02Ny45LTY3LjljLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNjcuOSA2Ny45YzkuNCA5LjQgMjEuNyAxNCAzNCAxNHMyNC42LTQuNyAzMy45LTE0YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMy0yMi43IDB6bTU2LjEtMTc5LjhsLTkzLjcgOTMuN2MtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjIgNi4yIDYuMiAxNC40IDkuNCAyMi42IDkuNHMxNi40LTMuMSAyMi42LTkuNGw5MS45LTkxLjktMzAuMi0zMC4yYy01LTUtOS40LTEwLjctMTMuMi0xNi44ek0xMjggMTYwaDEwNS41bC0yMC4xIDE3LjJjLTEzLjUgMTEuNS0yMS42IDI4LjQtMjIuMyA0Ni4xLS43IDE3LjggNi4xIDM1LjIgMTguNyA0Ny43bDc4LjIgNzguMlY0MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnYtODkuNGMwLTEyLjYtNS4xLTI1LTE0LjEtMzMuOWwtNjEtNjFjLjUtLjQgMS4yLS42IDEuNy0xLjFsODIuMy04Mi4zYzExLjUtMTEuNSAxNC45LTI4LjYgOC43LTQzLjYtNi4yLTE1LTIwLjctMjQuNy0zNy0yNC43SDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2tpaW5nTm9yZGljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNiA5NmMyNi41IDAgNDgtMjEuNSA0OC00OFMzNjIuNSAwIDMzNiAwcy00OCAyMS41LTQ4IDQ4IDIxLjUgNDggNDggNDh6bTIxNiAzMjBjLTEzLjIgMC0yNCAxMC43LTI0IDI0IDAgMTMuMi0xMC44IDI0LTI0IDI0aC02OS41TDQ2MCAyODUuNmMxMS43LTQuNyAyMC4xLTE2LjIgMjAuMS0yOS42IDAtMTcuNy0xNC4zLTMyLTMyLTMyaC00NEwzNzggMTcwLjhjLTEyLjUtMjUuNS0zNS41LTQ0LjItNjEuOC01MC45TDI0NSA5OC43Yy0yOC4zLTYuOC01Ny44LS41LTgwLjggMTcuMWwtMzkuNyAzMC40Yy0xNCAxMC43LTE2LjcgMzAuOC01LjkgNDQuOS43LjkgMS43IDEuMyAyLjQgMi4xTDY2LjkgNDY0SDI0Yy0xMy4yIDAtMjQgMTAuNy0yNCAyNHMxMC44IDI0IDI0IDI0aDQ4MGMzOS43IDAgNzItMzIuMyA3Mi03MiAwLTEzLjItMTAuOC0yNC0yNC0yNHptLTI2MC41IDQ4aC05Ni45bDQzLjEtOTEtMjItMTNjLTEyLjEtNy4yLTIxLjktMTYuOS0yOS41LTI3LjhMMTIzLjcgNDY0SDk5LjVsNTIuMy0yNjEuNGM0LjEtMSA4LjEtMi45IDExLjctNS42bDM5LjctMzAuNGM3LjctNS45IDE3LjQtOCAyNS4zLTYuMWwxNC43IDQuNC0zNy41IDg3LjRjLTEyLjYgMjkuNS0xLjMgNjQgMjYuMyA4MC4zbDg1IDUwLjItMjUuNSA4MS4yem0xMTAuNiAwaC00My42bDIzLjYtNzUuNWM1LjktMjAuOC0yLjktNDMuMS0yMS42LTU0LjRMMjk5LjMgMjk4bDMxLjMtNzguMyAyMC4zIDQxLjRjOCAxNi4zIDI0LjkgMjYuOSA0My4xIDI2LjloMzMuM2wtMjUuMiAxNzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNraWluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzIgOTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhTNDU4LjUgMCA0MzIgMHMtNDggMjEuNS00OCA0OCAyMS41IDQ4IDQ4IDQ4em03MyAzNTYuMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDAtMTIuMSAxMi4xLTMwLjUgMTUuNC00NS4xIDguN2wtMTM1LjgtNzAuMiA0OS4yLTczLjhjMTIuNy0xOSAxMC4yLTQ0LjUtNi02MC42TDI5MyAyMTUuN2wtMTA3LTUzLjFjLTIuOSAxOS45IDMuNCA0MCAxNy43IDU0LjRsNzUuMSA3NS4yLTQ1LjkgNjguOEwzNSAyNTguN2MtMTEuNy02LTI2LjItMS41LTMyLjMgMTAuMy02LjEgMTEuOC0xLjUgMjYuMyAxMC4zIDMyLjNsMzkxLjkgMjAyLjVjMTEuOSA1LjUgMjQuNSA4LjEgMzcuMSA4LjEgMjMuMiAwIDQ2LTkgNjMtMjYgOS4zLTkuMyA5LjMtMjQuNSAwLTMzLjh6TTEyMCA5MS42bC0xMS41IDIyLjVjMTQuNCA3LjMgMzEuMiA0LjkgNDIuOC00LjhsNDcuMiAyMy40Yy0uMS4xLS4xLjItLjIuM2wxMTQuNSA1Ni44IDMyLjQtMTMgNi40IDE5LjFjNCAxMi4xIDEyLjYgMjIgMjQgMjcuN2w1OC4xIDI5YzE1LjkgNy45IDM1IDEuNSA0Mi45LTE0LjMgNy45LTE1LjggMS41LTM1LTE0LjMtNDIuOWwtNTIuMS0yNi4xLTE3LjEtNTEuMmMtOC4xLTI0LjItNDAuOS01Ni42LTg0LjUtMzkuMmwtODEuMiAzMi41LTYyLjUtMzFjLjMtMTQuNS03LjItMjguNi0yMC45LTM1LjZsLTExLjEgMjEuN2gtLjJsLTM0LjQtN2MtMS44LS40LTMuNy4yLTUgMS43LTEuOSAyLjItMS43IDUuNS41IDcuNGwyNi4yIDIzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTa3VsbENyb3NzYm9uZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM5LjE1IDQ1My4wNkwyOTcuMTcgMzg0bDE0MS45OS02OS4wNmM3LjktMy45NSAxMS4xMS0xMy41NiA3LjE1LTIxLjQ2TDQzMiAyNjQuODVjLTMuOTUtNy45LTEzLjU2LTExLjExLTIxLjQ3LTcuMTZMMjI0IDM0OC40MSAzNy40NyAyNTcuNjljLTcuOS0zLjk1LTE3LjUxLS43NS0yMS40NyA3LjE2TDEuNjkgMjkzLjQ4Yy0zLjk1IDcuOS0uNzUgMTcuNTEgNy4xNSAyMS40NkwxNTAuODMgMzg0IDguODUgNDUzLjA2Yy03LjkgMy45NS0xMS4xMSAxMy41Ni03LjE1IDIxLjQ3bDE0LjMxIDI4LjYzYzMuOTUgNy45IDEzLjU2IDExLjExIDIxLjQ3IDcuMTVMMjI0IDQxOS41OWwxODYuNTMgOTAuNzJjNy45IDMuOTUgMTcuNTEuNzUgMjEuNDctNy4xNWwxNC4zMS0yOC42M2MzLjk1LTcuOTEuNzQtMTcuNTItNy4xNi0yMS40N3pNMTUwIDIzNy4yOGwtNS40OCAyNS44N2MtMi42NyAxMi42MiA1LjQyIDI0Ljg1IDE2LjQ1IDI0Ljg1aDEyNi4wOGMxMS4wMyAwIDE5LjEyLTEyLjIzIDE2LjQ1LTI0Ljg1bC01LjUtMjUuODdjNDEuNzgtMjIuNDEgNzAtNjIuNzUgNzAtMTA5LjI4QzM2OCA1Ny4zMSAzMDMuNTMgMCAyMjQgMFM4MCA1Ny4zMSA4MCAxMjhjMCA0Ni41MyAyOC4yMiA4Ni44NyA3MCAxMDkuMjh6TTI4MCAxMTJjMTcuNjUgMCAzMiAxNC4zNSAzMiAzMnMtMTQuMzUgMzItMzIgMzItMzItMTQuMzUtMzItMzIgMTQuMzUtMzIgMzItMzJ6bS0xMTIgMGMxNy42NSAwIDMyIDE0LjM1IDMyIDMycy0xNC4zNSAzMi0zMiAzMi0zMi0xNC4zNS0zMi0zMiAxNC4zNS0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2t1bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDBDMTE0LjYgMCAwIDEwMC4zIDAgMjI0YzAgNzAuMSAzNi45IDEzMi42IDk0LjUgMTczLjcgOS42IDYuOSAxNS4yIDE4LjEgMTMuNSAyOS45bC05LjQgNjYuMmMtMS40IDkuNiA2IDE4LjIgMTUuNyAxOC4ySDE5MnYtNTZjMC00LjQgMy42LTggOC04aDE2YzQuNCAwIDggMy42IDggOHY1Nmg2NHYtNTZjMC00LjQgMy42LTggOC04aDE2YzQuNCAwIDggMy42IDggOHY1Nmg3Ny43YzkuNyAwIDE3LjEtOC42IDE1LjctMTguMmwtOS40LTY2LjJjLTEuNy0xMS43IDMuOC0yMyAxMy41LTI5LjlDNDc1LjEgMzU2LjYgNTEyIDI5NC4xIDUxMiAyMjQgNTEyIDEwMC4zIDM5Ny40IDAgMjU2IDB6bS05NiAzMjBjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjQgNjQgMjguNyA2NCA2NC0yOC43IDY0LTY0IDY0em0xOTIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NCA2NCAyOC43IDY0IDY0LTI4LjcgNjQtNjQgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU5NC41MyA1MDguNjNMNi4xOCA1My45Yy02Ljk3LTUuNDItOC4yMy0xNS40Ny0yLjgxLTIyLjQ1TDIzLjAxIDYuMThDMjguNDMtLjggMzguNDktMi4wNiA0NS40NyAzLjM3TDYzMy44MiA0NTguMWM2Ljk3IDUuNDIgOC4yMyAxNS40NyAyLjgxIDIyLjQ1bC0xOS42NCAyNS4yN2MtNS40MiA2Ljk4LTE1LjQ4IDguMjMtMjIuNDYgMi44MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2xlaWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYxMi43IDM1MC43bC05LjMtNy40Yy02LjktNS41LTE3LTQuNC0yMi41IDIuNWwtMTAgMTIuNWMtNS41IDYuOS00LjQgMTcgMi41IDIyLjVsOS4zIDcuNGM1LjkgNC43IDkuMiAxMS43IDkuMiAxOS4yIDAgMTMuNi0xMSAyNC42LTI0LjYgMjQuNkg0OGMtOC44IDAtMTYgNy4yLTE2IDE2djE2YzAgOC44IDcuMiAxNiAxNiAxNmg1MTZjMzkgMCA3My43LTI5LjMgNzUuOS02OC4zIDEuNC0yMy44LTguNy00Ni4zLTI3LjItNjF6TTMyIDIyNGMwIDU5LjYgNDAuOSAxMDkuMiA5NiAxMjMuNVY0MDBoNjR2LTQ4aDE5MnY0OGg2NHYtNDhjNTMgMCA5Ni00MyA5Ni05NnYtOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJoLTk2djY0YzAgMzUuMy0yOC43IDY0LTY0IDY0aC0yMC43Yy02NS44IDAtMTI1LjktMzcuMi0xNTUuMy05Ni0yOS40LTU4LjgtODkuNi05Ni0xNTUuMy05NkgzMkMxNC4zIDMyIDAgNDYuMyAwIDY0czE0LjMgMzIgMzIgMzJ2MTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbGlkZXJzSCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYgMzg0SDE2MHYtMTZjMC04LjgtNy4yLTE2LTE2LTE2aC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djE2SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDgwdjE2YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZ2LTE2aDMzNmM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnptMC0xNjBoLTgwdi0xNmMwLTguOC03LjItMTYtMTYtMTZoLTMyYy04LjggMC0xNiA3LjItMTYgMTZ2MTZIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzM2djE2YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZ2LTE2aDgwYzguOCAwIDE2LTcuMiAxNi0xNnYtMzJjMC04LjgtNy4yLTE2LTE2LTE2em0wLTE2MEgyODhWNDhjMC04LjgtNy4yLTE2LTE2LTE2aC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djE2SDE2QzcuMiA2NCAwIDcxLjIgMCA4MHYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMjA4djE2YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZ2LTE2aDIwOGM4LjggMCAxNi03LjIgMTYtMTZWODBjMC04LjgtNy4yLTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbWlsZUJlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHpNMTEyIDIyMy40YzMuMy00Mi4xIDMyLjItNzEuNCA1Ni03MS40czUyLjcgMjkuMyA1NiA3MS40Yy43IDguNi0xMC44IDExLjktMTQuOSA0LjVsLTkuNS0xN2MtNy43LTEzLjctMTkuMi0yMS42LTMxLjUtMjEuNnMtMjMuOCA3LjktMzEuNSAyMS42bC05LjUgMTdjLTQuMyA3LjQtMTUuOCA0LTE1LjEtNC41em0yNTAuOCAxMjIuOEMzMzQuMyAzODAuNCAyOTIuNSA0MDAgMjQ4IDQwMHMtODYuMy0xOS42LTExNC44LTUzLjhjLTEzLjUtMTYuMyAxMS0zNi43IDI0LjYtMjAuNSAyMi40IDI2LjkgNTUuMiA0Mi4yIDkwLjIgNDIuMnM2Ny44LTE1LjQgOTAuMi00Mi4yYzEzLjYtMTYuMiAzOC4xIDQuMyAyNC42IDIwLjV6bTYuMi0xMTguM2wtOS41LTE3Yy03LjctMTMuNy0xOS4yLTIxLjYtMzEuNS0yMS42cy0yMy44IDcuOS0zMS41IDIxLjZsLTkuNSAxN2MtNC4xIDcuMy0xNS42IDQtMTQuOS00LjUgMy4zLTQyLjEgMzIuMi03MS40IDU2LTcxLjRzNTIuNyAyOS4zIDU2IDcxLjRjLjYgOC42LTExIDExLjktMTUuMSA0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNtaWxlV2luayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI1NmMwIDEzNyAxMTEgMjQ4IDI0OCAyNDhzMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4IDAgMTE5IDAgMjU2em0yMDAtNDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzIgMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyem0xNTguNSAxNi41Yy0xNC44LTEzLjItNDYuMi0xMy4yLTYxIDBMMjg4IDIzM2MtOC4zIDcuNC0yMS42LjQtMTkuOC0xMC44IDQtMjUuMiAzNC4yLTQyLjEgNTkuOS00Mi4xUzM4NCAxOTcgMzg4IDIyMi4yYzEuNyAxMS4xLTExLjQgMTguMy0xOS44IDEwLjhsLTkuNy04LjV6TTE1Ny44IDMyNS44QzE4MC4yIDM1Mi43IDIxMyAzNjggMjQ4IDM2OHM2Ny44LTE1LjQgOTAuMi00Mi4yYzEzLjYtMTYuMiAzOC4xIDQuMiAyNC42IDIwLjVDMzM0LjMgMzgwLjQgMjkyLjUgNDAwIDI0OCA0MDBzLTg2LjMtMTkuNi0xMTQuOC01My44Yy0xMy41LTE2LjMgMTEuMi0zNi43IDI0LjYtMjAuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU21pbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptODAgMTY4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzIgMTQuMy0zMiAzMi0zMnptLTE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzIgMTQuMy0zMiAzMi0zMnptMTk0LjggMTcwLjJDMzM0LjMgMzgwLjQgMjkyLjUgNDAwIDI0OCA0MDBzLTg2LjMtMTkuNi0xMTQuOC01My44Yy0xMy42LTE2LjMgMTEtMzYuNyAyNC42LTIwLjUgMjIuNCAyNi45IDU1LjIgNDIuMiA5MC4yIDQyLjJzNjcuOC0xNS40IDkwLjItNDIuMmMxMy40LTE2LjIgMzguMSA0LjIgMjQuNiAyMC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbW9nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNCAzNjhIODBjLTguOCAwLTE2IDcuMi0xNiAxNnYxNmMwIDguOCA3LjIgMTYgMTYgMTZoNTQ0YzguOCAwIDE2LTcuMiAxNi0xNnYtMTZjMC04LjgtNy4yLTE2LTE2LTE2em0tNDgwIDk2SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MTZjMCA4LjggNy4yIDE2IDE2IDE2aDEyOGM4LjggMCAxNi03LjIgMTYtMTZ2LTE2YzAtOC44LTcuMi0xNi0xNi0xNnptNDE2IDBIMjI0Yy04LjggMC0xNiA3LjItMTYgMTZ2MTZjMCA4LjggNy4yIDE2IDE2IDE2aDMzNmM4LjggMCAxNi03LjIgMTYtMTZ2LTE2YzAtOC44LTcuMi0xNi0xNi0xNnpNMTQ0IDI4OGgxNTYuMWMyMi41IDE5LjcgNTEuNiAzMiA4My45IDMyczYxLjMtMTIuMyA4My45LTMySDUyOGM2MS45IDAgMTEyLTUwLjEgMTEyLTExMlM1ODkuOSA2NCA1MjggNjRjLTE4IDAtMzQuNyA0LjYtNDkuNyAxMi4xQzQ1NCAzMSA0MDYuOCAwIDM1MiAwYy00MSAwLTc3LjggMTcuMy0xMDQgNDQuOEMyMjEuOCAxNy4zIDE4NSAwIDE0NCAwIDY0LjUgMCAwIDY0LjUgMCAxNDRzNjQuNSAxNDQgMTQ0IDE0NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU21va2luZ0JhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDExNy41bC05Ni05NkgxMTJjLTguOCAwLTE2IDcuMi0xNiAxNnY2NHpNMjU2IDBDMTE0LjYgMCAwIDExNC42IDAgMjU2czExNC42IDI1NiAyNTYgMjU2IDI1Ni0xMTQuNiAyNTYtMjU2UzM5Ny40IDAgMjU2IDB6bTAgNDQ4Yy0xMDUuOSAwLTE5Mi04Ni4xLTE5Mi0xOTIgMC00MS40IDEzLjMtNzkuNyAzNS43LTExMS4xbDI2Ny40IDI2Ny40QzMzNS43IDQzNC43IDI5Ny40IDQ0OCAyNTYgNDQ4em00NS4yLTE5MkgzODR2MzJoLTUwLjhsLTMyLTMyem0xMTEuMSAxMTEuMUwzNjUuMiAzMjBINDAwYzguOCAwIDE2LTcuMiAxNi0xNnYtNjRjMC04LjgtNy4yLTE2LTE2LTE2SDI2OS4yTDE0NC45IDk5LjdDMTc2LjMgNzcuMyAyMTQuNiA2NCAyNTYgNjRjMTA1LjkgMCAxOTIgODYuMSAxOTIgMTkyIDAgNDEuNC0xMy4zIDc5LjctMzUuNyAxMTEuMXpNMzIwLjYgMTI4Yy0xNS42IDAtMjguNi0xMS4yLTMxLjQtMjUuOS0uNy0zLjYtNC02LjEtNy43LTYuMWgtMTYuMmMtNSAwLTguNyA0LjUtOCA5LjQgNC42IDMwLjkgMzEuMiA1NC42IDYzLjMgNTQuNiAxNS42IDAgMjguNiAxMS4yIDMxLjQgMjUuOS43IDMuNiA0IDYuMSA3LjcgNi4xaDE2LjJjNSAwIDguNy00LjUgOC05LjQtNC42LTMwLjktMzEuMi01NC42LTYzLjMtNTQuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU21va2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MzIgMzUyaC00OGMtNC40IDAtOCAzLjYtOCA4djE0NGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjM2MGMwLTQuNC0zLjYtOC04LTh6TTU1My4zIDg3LjFjLTUuNy0zLjgtOS4zLTEwLTkuMy0xNi44VjhjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djYyLjNjMCAyMiAxMC4yIDQzLjQgMjguNiA1NS40IDQyLjIgMjcuMyA2Ny40IDczLjggNjcuNCAxMjRWMjgwYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTMwLjNjMC02NS41LTMyLjQtMTI2LjItODYuNy0xNjIuNnpNNDMyIDM1Mkg0OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2NjRjMCAyNi41IDIxLjUgNDggNDggNDhoMzg0YzguOCAwIDE2LTcuMiAxNi0xNlYzNjhjMC04LjgtNy4yLTE2LTE2LTE2em0tMzIgMTEySDIyNHYtNjRoMTc2djY0em04Ny43LTMyMi40QzQ2My44IDEyNSA0NDggOTkuMyA0NDggNzAuM1Y4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHY2Ni40YzAgNDMuNyAyNC42IDgxLjYgNjAuMyAxMDYuNyAyMi40IDE1LjcgMzUuNyA0MS4yIDM1LjcgNjguNlYyODBjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtMzAuM2MwLTQzLjMtMjEtODMuNC01Ni4zLTEwOC4xek01MzYgMzUyaC00OGMtNC40IDAtOCAzLjYtOCA4djE0NGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjM2MGMwLTQuNC0zLjYtOC04LTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNtcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMzJDMTE0LjYgMzIgMCAxMjUuMSAwIDI0MGMwIDQ5LjYgMjEuNCA5NSA1NyAxMzAuN0M0NC41IDQyMS4xIDIuNyA0NjYgMi4yIDQ2Ni41Yy0yLjIgMi4zLTIuOCA1LjctMS41IDguNyAxLjMgMyA0LjEgNC44IDcuMyA0LjggNjYuMyAwIDExNi0zMS44IDE0MC42LTUxLjQgMzIuNyAxMi4zIDY5IDE5LjQgMTA3LjQgMTkuNCAxNDEuNCAwIDI1Ni05My4xIDI1Ni0yMDhTMzk3LjQgMzIgMjU2IDMyek0xMjguMiAzMDRIMTE2Yy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxMi4zYzYgMCAxMC40LTMuNSAxMC40LTYuNiAwLTEuMy0uOC0yLjctMi4xLTMuOGwtMjEuOS0xOC44Yy04LjUtNy4yLTEzLjMtMTcuNS0xMy4zLTI4LjEgMC0yMS4zIDE5LTM4LjYgNDIuNC0zOC42SDE1NmM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4aC0xMi4zYy02IDAtMTAuNCAzLjUtMTAuNCA2LjYgMCAxLjMuOCAyLjcgMi4xIDMuOGwyMS45IDE4LjhjOC41IDcuMiAxMy4zIDE3LjUgMTMuMyAyOC4xLjEgMjEuMy0xOSAzOC42LTQyLjQgMzguNnptMTkxLjgtOGMwIDQuNC0zLjYgOC04IDhoLTE2Yy00LjQgMC04LTMuNi04LTh2LTY4LjJsLTI0LjggNTUuOGMtMi45IDUuOS0xMS40IDUuOS0xNC4zIDBMMjI0IDIyNy44VjI5NmMwIDQuNC0zLjYgOC04IDhoLTE2Yy00LjQgMC04LTMuNi04LThWMTkyYzAtOC44IDcuMi0xNiAxNi0xNmgxNmM2LjEgMCAxMS42IDMuNCAxNC4zIDguOGwxNy43IDM1LjQgMTcuNy0zNS40YzIuNy01LjQgOC4zLTguOCAxNC4zLTguOGgxNmM4LjggMCAxNiA3LjIgMTYgMTZ2MTA0em00OC4zIDhIMzU2Yy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxMi4zYzYgMCAxMC40LTMuNSAxMC40LTYuNiAwLTEuMy0uOC0yLjctMi4xLTMuOGwtMjEuOS0xOC44Yy04LjUtNy4yLTEzLjMtMTcuNS0xMy4zLTI4LjEgMC0yMS4zIDE5LTM4LjYgNDIuNC0zOC42SDM5NmM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4aC0xMi4zYy02IDAtMTAuNCAzLjUtMTAuNCA2LjYgMCAxLjMuOCAyLjcgMi4xIDMuOGwyMS45IDE4LjhjOC41IDcuMiAxMy4zIDE3LjUgMTMuMyAyOC4xLjEgMjEuMy0xOC45IDM4LjYtNDIuMyAzOC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbm93Ym9hcmRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMyIDk2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4UzQ1OC41IDAgNDMyIDBzLTQ4IDIxLjUtNDggNDggMjEuNSA0OCA0OCA0OHptMjguOCAxNTMuNmM1LjggNC4zIDEyLjUgNi40IDE5LjIgNi40IDkuNyAwIDE5LjMtNC40IDI1LjYtMTIuOCAxMC42LTE0LjEgNy44LTM0LjItNi40LTQ0LjhsLTExMS40LTgzLjVjLTEzLjgtMTAuMy0yOS4xLTE4LjQtNDUuNC0yMy44bC02My43LTIxLjItMjYuMS01Mi4xQzI0NC43IDIgMjI1LjUtNC40IDIwOS43IDMuNWMtMTUuOCA3LjktMjIuMiAyNy4xLTE0LjMgNDIuOWwyOS4xIDU4LjFjNS43IDExLjQgMTUuNiAxOS45IDI3LjcgMjRsMTYuNCA1LjUtNDEuMiAyMC42Yy0yMS44IDEwLjktMzUuNCAzMi44LTM1LjQgNTcuMnY1My4xbC03NC4xIDI0LjdjLTE2LjggNS42LTI1LjggMjMuNy0yMC4yIDQwLjUgMS43IDUuMiA0LjkgOS40IDguNyAxMi45bC0zOC43LTE0LjFjLTkuNy0zLjUtMTcuNC0xMC42LTIxLjgtMjAtNS42LTEyLTE5LjktMTcuMi0zMS45LTExLjZzLTE3LjIgMTkuOS0xMS42IDMxLjljOS44IDIxIDI3LjEgMzYuOSA0OC45IDQ0LjhsMzY0LjggMTMyLjdjOS43IDMuNSAxOS43IDUuMyAyOS43IDUuMyAxMi41IDAgMjQuOS0yLjcgMzYuNS04LjIgMTItNS42IDE3LjItMTkuOSAxMS42LTMxLjlTNDc0IDQ1NC43IDQ2MiA0NjAuM2MtOS4zIDQuNC0xOS44IDQuOC0yOS41IDEuM2wtOTAuOC0zMy4xYzguNy00LjEgMTUuNi0xMS44IDE3LjgtMjEuOWwyMS45LTEwMmMzLjktMTguMi0zLjItMzcuMi0xOC4xLTQ4LjRsLTUyLTM5IDY2LTMwLjUgODMuNSA2Mi45em0tMTQ0LjQgNTEuN2wtMTkuNyA5MmMtMS41IDcuMS0uMSAxMy45IDIuOCAyMGwtMTY5LjQtNjEuNmMyLjctLjIgNS40LS40IDgtMS4zbDg1LTI4LjRjMTkuNi02LjUgMzIuOC0yNC44IDMyLjgtNDUuNVYyNTZsNjAuNSA0NS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbm93Zmxha2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQwLjMgMzQ1LjJsLTMzLjgtMTkuNSAyNi03YzguMi0yLjIgMTMuMS0xMC43IDEwLjktMTguOWwtNC0xNC45Yy0yLjItOC4yLTEwLjctMTMuMS0xOC45LTEwLjlsLTcwLjggMTktNjMuOS0zNyA2My44LTM2LjkgNzAuOCAxOWM4LjIgMi4yIDE2LjctMi43IDE4LjktMTAuOWw0LTE0LjljMi4yLTguMi0yLjctMTYuNy0xMC45LTE4LjlsLTI2LTcgMzMuOC0xOS41YzcuNC00LjMgOS45LTEzLjcgNS43LTIxLjFMNDMwLjQgMTE5Yy00LjMtNy40LTEzLjctOS45LTIxLjEtNS43bC0zMy44IDE5LjUgNy0yNmMyLjItOC4yLTIuNy0xNi43LTEwLjktMTguOWwtMTQuOS00Yy04LjItMi4yLTE2LjcgMi43LTE4LjkgMTAuOWwtMTkgNzAuOC02Mi44IDM2LjJ2LTc3LjVsNTMuNy01My43YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC0xMS4zLTExLjNjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDI1NiA1Ni40VjE2YzAtOC44LTcuMi0xNi0xNi0xNmgtMzJjLTguOCAwLTE2IDcuMi0xNiAxNnY0MC40bC0xOS43LTE5LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDEzOC4zIDQ4Yy02LjMgNi4yLTYuMyAxNi40IDAgMjIuNmw1My43IDUzLjd2NzcuNWwtNjIuOC0zNi4yLTE5LTcwLjhjLTIuMi04LjItMTAuNy0xMy4xLTE4LjktMTAuOWwtMTQuOSA0Yy04LjIgMi4yLTEzLjEgMTAuNy0xMC45IDE4LjlsNyAyNi0zMy44LTE5LjVjLTcuNC00LjMtMTYuOC0xLjctMjEuMSA1LjdMMi4xIDE0NS43Yy00LjMgNy40LTEuNyAxNi44IDUuNyAyMS4xbDMzLjggMTkuNS0yNiA3Yy04LjMgMi4yLTEzLjIgMTAuNy0xMSAxOWw0IDE0LjljMi4yIDguMiAxMC43IDEzLjEgMTguOSAxMC45bDcwLjgtMTkgNjMuOCAzNi45LTYzLjggMzYuOS03MC44LTE5Yy04LjItMi4yLTE2LjcgMi43LTE4LjkgMTAuOWwtNCAxNC45Yy0yLjIgOC4yIDIuNyAxNi43IDEwLjkgMTguOWwyNiA3LTMzLjggMTkuNmMtNy40IDQuMy05LjkgMTMuNy01LjcgMjEuMWwxNS41IDI2LjhjNC4zIDcuNCAxMy43IDkuOSAyMS4xIDUuN2wzMy44LTE5LjUtNyAyNmMtMi4yIDguMiAyLjcgMTYuNyAxMC45IDE4LjlsMTQuOSA0YzguMiAyLjIgMTYuNy0yLjcgMTguOS0xMC45bDE5LTcwLjggNjIuOC0zNi4ydjc3LjVsLTUzLjcgNTMuN2MtNi4zIDYuMi02LjMgMTYuNCAwIDIyLjZsMTEuMyAxMS4zYzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDE5LjctMTkuN1Y0OTZjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnYtNDAuNGwxOS43IDE5LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsMTEuMy0xMS4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42TDI1NiAzODcuN3YtNzcuNWw2Mi44IDM2LjIgMTkgNzAuOGMyLjIgOC4yIDEwLjcgMTMuMSAxOC45IDEwLjlsMTQuOS00YzguMi0yLjIgMTMuMS0xMC43IDEwLjktMTguOWwtNy0yNiAzMy44IDE5LjVjNy40IDQuMyAxNi44IDEuNyAyMS4xLTUuN2wxNS41LTI2LjhjNC4zLTcuMyAxLjgtMTYuOC01LjYtMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNub3dtYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEwLjkgMTUyLjNsLTUuOS0xNC41Yy0zLjMtOC0xMi42LTExLjktMjAuOC04LjdMNDU2IDE0MC42di0yOWMwLTguNi03LjItMTUuNi0xNi0xNS42aC0xNmMtOC44IDAtMTYgNy0xNiAxNS42djQ2LjljMCAuNS4zIDEgLjMgMS41bC01Ni40IDIzYy01LjktMTAtMTMuMy0xOC45LTIyLTI2LjYgMTMuNi0xNi42IDIyLTM3LjQgMjItNjAuNSAwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDIzLjEgOC41IDQzLjkgMjIgNjAuNS04LjcgNy43LTE2IDE2LjYtMjIgMjYuNmwtNTYuNC0yM2MuMS0uNS4zLTEgLjMtMS41di00Ni45QzEwNCAxMDMgOTYuOCA5NiA4OCA5Nkg3MmMtOC44IDAtMTYgNy0xNiAxNS42djI5bC0yOC4xLTExLjVjLTguMi0zLjItMTcuNS43LTIwLjggOC43bC01LjkgMTQuNWMtMy4zIDggLjcgMTcuMSA4LjkgMjAuM2wxMzUuMiA1NS4yYy0uNCA0LTEuMiA4LTEuMiAxMi4yIDAgMTAuMSAxLjcgMTkuNiA0LjIgMjguOUMxMjAuOSAyOTYuNCAxMDQgMzM0LjIgMTA0IDM3NmMwIDU0IDI4LjQgMTAwLjkgNzAuOCAxMjcuOCA5LjMgNS45IDIwLjMgOC4yIDMxLjMgOC4yaDk5LjJjMTMuMyAwIDI2LjMtNC4xIDM3LjItMTEuNyA0Ni41LTMyLjMgNzQuNC04OS40IDYyLjktMTUyLjYtNS41LTMwLjItMjAuNS01Ny42LTQxLjYtNzkgMi41LTkuMiA0LjItMTguNyA0LjItMjguNyAwLTQuMi0uOC04LjEtMS4yLTEyLjJMNTAyIDE3Mi42YzguMS0zLjEgMTIuMS0xMi4yIDguOS0yMC4zek0yMjQgOTZjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTcuMiAxNi0xNiAxNnptMzIgMjcyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6bTAtNjRjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTcuMiAxNi0xNiAxNnptMC02NGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2em0wLTg4cy0xNi0yMy4yLTE2LTMyIDcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtMTYgMzItMTYgMzJ6bTMyLTU2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNub3dwbG93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyMCAzNzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNC0xMC43LTI0LTI0LTI0em04MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjQtMTAuNy0yNC0yNC0yNHptODAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0LTEwLjctMjQtMjQtMjR6bTgwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNC0xMC43LTI0LTI0LTI0em0yMzguNiA0OS40Yy0xNC41LTE0LjUtMjIuNi0zNC4xLTIyLjYtNTQuNlYyNjkuMmMwLTIwLjUgOC4xLTQwLjEgMjIuNi01NC42bDM2LjctMzYuN2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtMjIuNi0yMi42Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMGwtMzYuNyAzNi43Yy0yNi41IDI2LjUtNDEuNCA2Mi40LTQxLjQgOTkuOVYyODhoLTY0di01MC45YzAtOC43LTEuOC0xNy4yLTUuMi0yNS4yTDM2NC41IDI5LjFDMzU2LjkgMTEuNCAzMzkuNiAwIDMyMC4zIDBIMTc2Yy0yNi41IDAtNDggMjEuNS00OCA0OHYxMTJoLTE2Yy0yNi41IDAtNDggMjEuNS00OCA0OHY5MS4yQzI2LjMgMzE3LjIgMCAzNTUuNCAwIDQwMGMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMmgyNTZjNjEuOSAwIDExMi01MC4xIDExMi0xMTIgMC0xNy4zLTQuMi0zMy40LTExLjItNDhINTEydjE4LjdjMCAzNy41IDE0LjkgNzMuNCA0MS40IDk5LjlsMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDIyLjYtMjIuNmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtMzYuNy0zNi43ek0xOTIgNjRoMTE3LjhsNjguNiAxNjBIMjU2bC02NC02NFY2NHptMTc2IDM4NEgxMTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDhoMjU2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb2FwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiwxOTJhOTUuNDIsOTUuNDIsMCwwLDEtMzAuOTQsNzAuMjFBOTUuOCw5NS44LDAsMCwxLDM1Miw0NDhIMTYwYTk2LDk2LDAsMCwxLDAtMTkyaDg4LjkxQTk1LjMsOTUuMywwLDAsMSwyMjQsMTkySDk2QTk2LDk2LDAsMCwwLDAsMjg4VjQxNmE5Niw5NiwwLDAsMCw5Niw5Nkg0MTZhOTYsOTYsMCwwLDAsOTYtOTZWMjg4QTk2LDk2LDAsMCwwLDQxNiwxOTJabS05Niw2NGE2NCw2NCwwLDEsMC02NC02NEE2NCw2NCwwLDAsMCwzMjAsMjU2Wk0yMDgsOTZhNDgsNDgsMCwxLDAtNDgtNDhBNDgsNDgsMCwwLDAsMjA4LDk2Wk0zODQsNjRhMzIsMzIsMCwxLDAtMzItMzJBMzIsMzIsMCwwLDAsMzg0LDY0Wk0xNjAsMjg4YTY0LDY0LDAsMCwwLDAsMTI4SDM1MmE2NCw2NCwwLDAsMCwwLTEyOFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29ja3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE0LjY2IDMxMS4wMUwyODggMjU2Vjk2SDEyOHYxNzZsLTg2LjY1IDY0LjYxYy0zOS40IDI5LjU2LTUzLjg2IDg0LjQyLTI5LjIxIDEyNy4wNkMzMC4zOSA0OTUuMjUgNjMuMjcgNTEyIDk2LjA4IDUxMmMyMC4wMyAwIDQwLjI1LTYuMjUgNTcuNTItMTkuMmwyMS44Ni0xNi4zOWMtMjkuODUtNTUuMzgtMTMuNTQtMTI1Ljg0IDM5LjItMTY1LjR6TTI4OCAzMmMwLTExLjA1IDMuMDctMjEuMyA4LjAyLTMwLjM4QzI5My40LjkyIDI5MC44NSAwIDI4OCAwSDE2MGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYzMmgxNjBWMzJ6TTQ4MCAwSDM1MmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYzMmgxOTJWMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpNMzIwIDI3MmwtODYuMTMgNjQuNjFjLTM5LjQgMjkuNTYtNTMuODYgODQuNDItMjkuMjEgMTI3LjA2IDE4LjI1IDMxLjU4IDUwLjYxIDQ4LjMzIDgzLjQyIDQ4LjMzIDIwLjAzIDAgNDAuMjUtNi4yNSA1Ny41Mi0xOS4ybDExNS4yLTg2LjRBMTI3Ljk5NyAxMjcuOTk3IDAgMCAwIDUxMiAzMDRWOTZIMzIwdjE3NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29sYXJQYW5lbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzEuOTggNDQ4LjAxbC00Ny45Ny4wNVY0MTZoLTEyOHYzMi4yMWwtNDcuOTguMDVjLTguODIuMDEtMTUuOTcgNy4xNi0xNS45OCAxNS45OWwtLjA1IDMxLjczYy0uMDEgOC44NSA3LjE3IDE2LjAzIDE2LjAyIDE2LjAybDIyMy45Ni0uMjZjOC44Mi0uMDEgMTUuOTctNy4xNiAxNS45OC0xNS45OGwuMDQtMzEuNzNjLjAxLTguODUtNy4xNy0xNi4wMy0xNi4wMi0xNi4wMnpNNTg1LjIgMjYuNzRDNTgyLjU4IDExLjMxIDU2OC45OSAwIDU1My4wNiAwSDg2LjkzQzcxIDAgNTcuNDEgMTEuMzEgNTQuNzkgMjYuNzQtMy4zMiAzNjkuMTYuMDQgMzQ4LjA4LjAzIDM1MmMtLjAzIDE3LjMyIDE0LjI5IDMyIDMyLjYgMzJoNTc0Ljc0YzE4LjIzIDAgMzIuNTEtMTQuNTYgMzIuNTktMzEuNzkuMDItNC4wOCAzLjM1IDE2Ljk1LTU0Ljc2LTMyNS40N3pNMjU5LjgzIDY0aDEyMC4zM2w5Ljc3IDk2SDI1MC4wNmw5Ljc3LTk2em0tNzUuMTcgMjU2SDcxLjA5TDkwLjEgMjA4aDEwNS45N2wtMTEuNDEgMTEyem0xNi4yOS0xNjBIOTguMjRsMTYuMjktOTZoOTYuMTlsLTkuNzcgOTZ6bTMyLjgyIDE2MGwxMS40LTExMmgxNDkuNjVsMTEuNCAxMTJIMjMzLjc3em0xOTUuNS0yNTZoOTYuMTlsMTYuMjkgOTZINDM5LjA0bC05Ljc3LTk2em0yNi4wNiAyNTZsLTExLjQtMTEySDU0OS45bDE5LjAxIDExMkg0NTUuMzN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnRBbHBoYURvd25BbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc2IDM1MmgtNDhWNDhhMTYgMTYgMCAwIDAtMTYtMTZIODBhMTYgMTYgMCAwIDAtMTYgMTZ2MzA0SDE2Yy0xNC4xOSAwLTIxLjM2IDE3LjI0LTExLjI5IDI3LjMxbDgwIDk2YTE2IDE2IDAgMCAwIDIyLjYyIDBsODAtOTZDMTk3LjM1IDM2OS4yNiAxOTAuMjIgMzUyIDE3NiAzNTJ6bTExMi0xMjhoMTI4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNmgtNTZsNjEuMjYtNzAuNDVBMzIgMzIgMCAwIDAgNDMyIDY1LjYzVjQ4YTE2IDE2IDAgMCAwLTE2LTE2SDI4OGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg1NmwtNjEuMjYgNzAuNDVBMzIgMzIgMCAwIDAgMjcyIDE5MC4zN1YyMDhhMTYgMTYgMCAwIDAgMTYgMTZ6bTE1OS4wNiAyMzQuNjJsLTU5LjI3LTE2MEExNiAxNiAwIDAgMCAzNzIuNzIgMjg4aC00MS40NGExNiAxNiAwIDAgMC0xNS4wNyAxMC42MmwtNTkuMjcgMTYwQTE2IDE2IDAgMCAwIDI3MiA0ODBoMjQuODNhMTYgMTYgMCAwIDAgMTUuMjMtMTEuMDhsNC40Mi0xMi45Mmg3MWw0LjQxIDEyLjkyQTE2IDE2IDAgMCAwIDQwNy4xNiA0ODBINDMyYTE2IDE2IDAgMCAwIDE1LjA2LTIxLjM4ek0zMzUuNjEgNDAwTDM1MiAzNTJsMTYuMzkgNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnRBbHBoYURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc2IDM1MmgtNDhWNDhhMTYgMTYgMCAwIDAtMTYtMTZIODBhMTYgMTYgMCAwIDAtMTYgMTZ2MzA0SDE2Yy0xNC4xOSAwLTIxLjM2IDE3LjI0LTExLjI5IDI3LjMxbDgwIDk2YTE2IDE2IDAgMCAwIDIyLjYyIDBsODAtOTZDMTk3LjM1IDM2OS4yNiAxOTAuMjIgMzUyIDE3NiAzNTJ6bTI0MC02NEgyODhhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNTZsLTYxLjI2IDcwLjQ1QTMyIDMyIDAgMCAwIDI3MiA0NDYuMzdWNDY0YTE2IDE2IDAgMCAwIDE2IDE2aDEyOGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZoLTU2bDYxLjI2LTcwLjQ1QTMyIDMyIDAgMCAwIDQzMiAzMjEuNjNWMzA0YTE2IDE2IDAgMCAwLTE2LTE2em0zMS4wNi04NS4zOGwtNTkuMjctMTYwQTE2IDE2IDAgMCAwIDM3Mi43MiAzMmgtNDEuNDRhMTYgMTYgMCAwIDAtMTUuMDcgMTAuNjJsLTU5LjI3IDE2MEExNiAxNiAwIDAgMCAyNzIgMjI0aDI0LjgzYTE2IDE2IDAgMCAwIDE1LjIzLTExLjA4bDQuNDItMTIuOTJoNzFsNC40MSAxMi45MkExNiAxNiAwIDAgMCA0MDcuMTYgMjI0SDQzMmExNiAxNiAwIDAgMCAxNS4wNi0yMS4zOHpNMzM1LjYxIDE0NEwzNTIgOTZsMTYuMzkgNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnRBbHBoYVVwQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDE2MGg0OHYzMDRhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZWMTYwaDQ4YzE0LjIxIDAgMjEuMzgtMTcuMjQgMTEuMzEtMjcuMzFsLTgwLTk2YTE2IDE2IDAgMCAwLTIyLjYyIDBsLTgwIDk2Qy01LjM1IDE0Mi43NCAxLjc4IDE2MCAxNiAxNjB6bTI3MiA2NGgxMjhhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2aC01Nmw2MS4yNi03MC40NUEzMiAzMiAwIDAgMCA0MzIgNjUuNjNWNDhhMTYgMTYgMCAwIDAtMTYtMTZIMjg4YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDU2bC02MS4yNiA3MC40NUEzMiAzMiAwIDAgMCAyNzIgMTkwLjM3VjIwOGExNiAxNiAwIDAgMCAxNiAxNnptMTU5LjA2IDIzNC42MmwtNTkuMjctMTYwQTE2IDE2IDAgMCAwIDM3Mi43MiAyODhoLTQxLjQ0YTE2IDE2IDAgMCAwLTE1LjA3IDEwLjYybC01OS4yNyAxNjBBMTYgMTYgMCAwIDAgMjcyIDQ4MGgyNC44M2ExNiAxNiAwIDAgMCAxNS4yMy0xMS4wOGw0LjQyLTEyLjkyaDcxbDQuNDEgMTIuOTJBMTYgMTYgMCAwIDAgNDA3LjE2IDQ4MEg0MzJhMTYgMTYgMCAwIDAgMTUuMDYtMjEuMzh6TTMzNS42MSA0MDBMMzUyIDM1MmwxNi4zOSA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29ydEFscGhhVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTYwaDQ4djMwNGExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNlYxNjBoNDhjMTQuMjEgMCAyMS4zOC0xNy4yNCAxMS4zMS0yNy4zMWwtODAtOTZhMTYgMTYgMCAwIDAtMjIuNjIgMGwtODAgOTZDLTUuMzUgMTQyLjc0IDEuNzggMTYwIDE2IDE2MHptNDAwIDEyOEgyODhhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNTZsLTYxLjI2IDcwLjQ1QTMyIDMyIDAgMCAwIDI3MiA0NDYuMzdWNDY0YTE2IDE2IDAgMCAwIDE2IDE2aDEyOGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZoLTU2bDYxLjI2LTcwLjQ1QTMyIDMyIDAgMCAwIDQzMiAzMjEuNjNWMzA0YTE2IDE2IDAgMCAwLTE2LTE2em0zMS4wNi04NS4zOGwtNTkuMjctMTYwQTE2IDE2IDAgMCAwIDM3Mi43MiAzMmgtNDEuNDRhMTYgMTYgMCAwIDAtMTUuMDcgMTAuNjJsLTU5LjI3IDE2MEExNiAxNiAwIDAgMCAyNzIgMjI0aDI0LjgzYTE2IDE2IDAgMCAwIDE1LjIzLTExLjA4bDQuNDItMTIuOTJoNzFsNC40MSAxMi45MkExNiAxNiAwIDAgMCA0MDcuMTYgMjI0SDQzMmExNiAxNiAwIDAgMCAxNS4wNi0yMS4zOHpNMzM1LjYxIDE0NEwzNTIgOTZsMTYuMzkgNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnRBbW91bnREb3duQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0MCA5Nmg2NGExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNmgtNjRhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZ6bTAgMTI4aDEyOGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZIMjQwYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2em0yNTYgMTkySDI0MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgyNTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0tMjU2LTY0aDE5MmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZIMjQwYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2em0tNjQgMGgtNDhWNDhhMTYgMTYgMCAwIDAtMTYtMTZIODBhMTYgMTYgMCAwIDAtMTYgMTZ2MzA0SDE2Yy0xNC4xOSAwLTIxLjM3IDE3LjI0LTExLjI5IDI3LjMxbDgwIDk2YTE2IDE2IDAgMCAwIDIyLjYyIDBsODAtOTZDMTk3LjM1IDM2OS4yNiAxOTAuMjIgMzUyIDE3NiAzNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnRBbW91bnREb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwNCA0MTZoLTY0YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDY0YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptLTEyOC02NGgtNDhWNDhhMTYgMTYgMCAwIDAtMTYtMTZIODBhMTYgMTYgMCAwIDAtMTYgMTZ2MzA0SDE2Yy0xNC4xOSAwLTIxLjM3IDE3LjI0LTExLjI5IDI3LjMxbDgwIDk2YTE2IDE2IDAgMCAwIDIyLjYyIDBsODAtOTZDMTk3LjM1IDM2OS4yNiAxOTAuMjIgMzUyIDE3NiAzNTJ6bTI1Ni0xOTJIMjQwYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDE5MmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bS02NCAxMjhIMjQwYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDEyOGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6TTQ5NiAzMkgyNDBhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMjU2YTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb3J0QW1vdW50VXBBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQwIDk2aDY0YTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2aC02NGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNnptMCAxMjhoMTI4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNkgyNDBhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZ6bTI1NiAxOTJIMjQwYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDI1NmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bS0yNTYtNjRoMTkyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNkgyNDBhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZ6TTE2IDE2MGg0OHYzMDRhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZWMTYwaDQ4YzE0LjIxIDAgMjEuMzktMTcuMjQgMTEuMzEtMjcuMzFsLTgwLTk2YTE2IDE2IDAgMCAwLTIyLjYyIDBsLTgwIDk2Qy01LjM1IDE0Mi43NCAxLjc4IDE2MCAxNiAxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnRBbW91bnRVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDQgNDE2aC02NGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg2NGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6TTE2IDE2MGg0OHYzMDRhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZWMTYwaDQ4YzE0LjIxIDAgMjEuMzgtMTcuMjQgMTEuMzEtMjcuMzFsLTgwLTk2YTE2IDE2IDAgMCAwLTIyLjYyIDBsLTgwIDk2Qy01LjM1IDE0Mi43NCAxLjc3IDE2MCAxNiAxNjB6bTQxNiAwSDI0MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgxOTJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0tNjQgMTI4SDI0MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgxMjhhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2ek00OTYgMzJIMjQwYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDI1NmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29ydERvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDEgMjg4aDIzOGMyMS40IDAgMzIuMSAyNS45IDE3IDQxTDE3NyA0NDhjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDI0IDMyOWMtMTUuMS0xNS4xLTQuNC00MSAxNy00MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29ydE51bWVyaWNEb3duQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiAzNTJoLTQ4VjQ4YTE2IDE2IDAgMCAwLTE2LTE2SDgwYTE2IDE2IDAgMCAwLTE2IDE2djMwNEgxNmMtMTQuMTkgMC0yMS4zNiAxNy4yNC0xMS4yOSAyNy4zMWw4MCA5NmExNiAxNiAwIDAgMCAyMi42MiAwbDgwLTk2QzE5Ny4zNSAzNjkuMjYgMTkwLjIyIDM1MiAxNzYgMzUyem0yMjQgNjRoLTE2VjMwNGExNiAxNiAwIDAgMC0xNi0xNmgtNDhhMTYgMTYgMCAwIDAtMTQuMjkgOC44M2wtMTYgMzJBMTYgMTYgMCAwIDAgMzA0IDM1MmgxNnY2NGgtMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoOTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2ek0zMzAuMTcgMzQuOTFhNzkgNzkgMCAwIDAtNTUgNTQuMTdjLTE0LjI3IDUxLjA1IDIxLjE5IDk3Ljc3IDY4LjgzIDEwMi41M2E4NC4wNyA4NC4wNyAwIDAgMS0yMC44NSAxMi45MWMtNy41NyAzLjQtMTAuOCAxMi40Ny04LjE4IDIwLjM0bDkuOSAyMGMyLjg3IDguNjMgMTIuNTMgMTMuNDkgMjAuOSA5LjkxIDU4LTI0Ljc3IDg2LjI1LTYxLjYxIDg2LjI1LTEzMlYxMTJjLS4wMi01MS4yMS00OC40LTkxLjM0LTEwMS44NS03Ny4wOXpNMzUyIDEzMmEyMCAyMCAwIDEgMSAyMC0yMCAyMCAyMCAwIDAgMS0yMCAyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29ydE51bWVyaWNEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwNCA5NmgxNnY2NGgtMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoOTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2aC0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNmgtNDhhMTYgMTYgMCAwIDAtMTQuMjkgOC44M2wtMTYgMzJBMTYgMTYgMCAwIDAgMzA0IDk2em0yNi4xNSAxNjIuOTFhNzkgNzkgMCAwIDAtNTUgNTQuMTdjLTE0LjI1IDUxLjA1IDIxLjIxIDk3Ljc3IDY4Ljg1IDEwMi41M2E4NC4wNyA4NC4wNyAwIDAgMS0yMC44NSAxMi45MWMtNy41NyAzLjQtMTAuOCAxMi40Ny04LjE4IDIwLjM0bDkuOSAyMGMyLjg3IDguNjMgMTIuNTMgMTMuNDkgMjAuOSA5LjkxIDU4LTI0Ljc2IDg2LjI1LTYxLjYxIDg2LjI1LTEzMlYzMzZjLS4wMi01MS4yMS00OC40LTkxLjM0LTEwMS44NS03Ny4wOXpNMzUyIDM1NmEyMCAyMCAwIDEgMSAyMC0yMCAyMCAyMCAwIDAgMS0yMCAyMHptLTE3Ni00aC00OFY0OGExNiAxNiAwIDAgMC0xNi0xNkg4MGExNiAxNiAwIDAgMC0xNiAxNnYzMDRIMTZjLTE0LjE5IDAtMjEuMzYgMTcuMjQtMTEuMjkgMjcuMzFsODAgOTZhMTYgMTYgMCAwIDAgMjIuNjIgMGw4MC05NkMxOTcuMzUgMzY5LjI2IDE5MC4yMiAzNTIgMTc2IDM1MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29ydE51bWVyaWNVcEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDcuMzEgMzYuNjlhMTYgMTYgMCAwIDAtMjIuNjIgMGwtODAgOTZDLTUuMzUgMTQyLjc0IDEuNzggMTYwIDE2IDE2MGg0OHYzMDRhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZWMTYwaDQ4YzE0LjIxIDAgMjEuMzgtMTcuMjQgMTEuMzEtMjcuMzF6TTQwMCA0MTZoLTE2VjMwNGExNiAxNiAwIDAgMC0xNi0xNmgtNDhhMTYgMTYgMCAwIDAtMTQuMjkgOC44M2wtMTYgMzJBMTYgMTYgMCAwIDAgMzA0IDM1MmgxNnY2NGgtMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoOTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2ek0zMzAuMTcgMzQuOTFhNzkgNzkgMCAwIDAtNTUgNTQuMTdjLTE0LjI3IDUxLjA1IDIxLjE5IDk3Ljc3IDY4LjgzIDEwMi41M2E4NC4wNyA4NC4wNyAwIDAgMS0yMC44NSAxMi45MWMtNy41NyAzLjQtMTAuOCAxMi40Ny04LjE4IDIwLjM0bDkuOSAyMGMyLjg3IDguNjMgMTIuNTMgMTMuNDkgMjAuOSA5LjkxIDU4LTI0Ljc3IDg2LjI1LTYxLjYxIDg2LjI1LTEzMlYxMTJjLS4wMi01MS4yMS00OC40LTkxLjM0LTEwMS44NS03Ny4wOXpNMzUyIDEzMmEyMCAyMCAwIDEgMSAyMC0yMCAyMCAyMCAwIDAgMS0yMCAyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29ydE51bWVyaWNVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzAuMTcgMjU4LjkxYTc5IDc5IDAgMCAwLTU1IDU0LjE3Yy0xNC4yNyA1MS4wNSAyMS4xOSA5Ny43NyA2OC44MyAxMDIuNTNhODQuMDcgODQuMDcgMCAwIDEtMjAuODUgMTIuOTFjLTcuNTcgMy40LTEwLjggMTIuNDctOC4xOCAyMC4zNGw5LjkgMjBjMi44NyA4LjYzIDEyLjUzIDEzLjQ5IDIwLjkgOS45MSA1OC0yNC43NiA4Ni4yNS02MS42MSA4Ni4yNS0xMzJWMzM2Yy0uMDItNTEuMjEtNDguNC05MS4zNC0xMDEuODUtNzcuMDl6TTM1MiAzNTZhMjAgMjAgMCAxIDEgMjAtMjAgMjAgMjAgMCAwIDEtMjAgMjB6TTMwNCA5NmgxNnY2NGgtMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoOTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2aC0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNmgtNDhhMTYgMTYgMCAwIDAtMTQuMjkgOC44M2wtMTYgMzJBMTYgMTYgMCAwIDAgMzA0IDk2ek0xMDcuMzEgMzYuNjlhMTYgMTYgMCAwIDAtMjIuNjIgMGwtODAgOTZDLTUuMzUgMTQyLjc0IDEuNzggMTYwIDE2IDE2MGg0OHYzMDRhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZWMTYwaDQ4YzE0LjIxIDAgMjEuMzgtMTcuMjQgMTEuMzEtMjcuMzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnRVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzkgMjI0SDQxYy0yMS40IDAtMzIuMS0yNS45LTE3LTQxTDE0MyA2NGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwxMTkgMTE5YzE1LjIgMTUuMSA0LjUgNDEtMTYuOSA0MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MSAyODhoMjM4YzIxLjQgMCAzMi4xIDI1LjkgMTcgNDFMMTc3IDQ0OGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMjQgMzI5Yy0xNS4xLTE1LjEtNC40LTQxIDE3LTQxem0yNTUtMTA1TDE3NyA2NGMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMMjQgMTgzYy0xNS4xIDE1LjEtNC40IDQxIDE3IDQxaDIzOGMyMS40IDAgMzIuMS0yNS45IDE3LTQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTY4LjI1IDE5MmMtMjkuMDQuMTMtMTM1LjAxIDYuMTYtMjEzLjg0IDgzLTMzLjEyIDI5LjYzLTUzLjM2IDYzLjMtNjYuNDEgOTQuODYtMTMuMDUtMzEuNTYtMzMuMjktNjUuMjMtNjYuNDEtOTQuODYtNzguODMtNzYuODQtMTg0LjgtODIuODctMjEzLjg0LTgzLTQuNDEtLjAyLTcuNzkgMy40LTcuNzUgNy44Mi4yMyAyNy45MiA3LjE0IDEyNi4xNCA4OC43NyAxOTkuM0MxNzIuNzkgNDgwLjk0IDI1NiA0ODAgMjg4IDQ4MHMxMTUuMTkuOTUgMTk5LjIzLTgwLjg4YzgxLjY0LTczLjE3IDg4LjU0LTE3MS4zOCA4OC43Ny0xOTkuMy4wNC00LjQyLTMuMzQtNy44NC03Ljc1LTcuODJ6TTI4Ny45OCAzMDIuNmMxMi44Mi0xOC44NSAyNy42LTM1Ljc4IDQ0LjA5LTUwLjUyIDE5LjA5LTE4LjYxIDM5LjU4LTMzLjMgNjAuMjYtNDUuMTgtMTYuNDQtNzAuNS01MS43Mi0xMzMuMDUtOTYuNzMtMTcyLjIyLTQuMTEtMy41OC0xMS4wMi0zLjU4LTE1LjE0IDAtNDQuOTkgMzkuMTQtODAuMjcgMTAxLjYzLTk2Ljc0IDE3Mi4wNyAyMC4zNyAxMS43IDQwLjUgMjYuMTQgNTkuMjIgNDQuMzlhMjgyLjc2OCAyODIuNzY4IDAgMCAxIDQ1LjA0IDUxLjQ2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcGFjZVNodXR0bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTkyLjYwNCAyMDguMjQ0QzU1OS43MzUgMTkyLjgzNiA1MTUuNzc3IDE4NCA0NzIgMTg0SDE4Ni4zMjdjLTQuOTUyLTYuNTU1LTEwLjU4NS0xMS45NzgtMTYuNzItMTZIMzc2QzIyOS4xNTcgMTM3Ljc0NyAyMTkuNDAzIDMyIDk2LjAwMyAzMkg5NnYxMjhIODBWMzJjLTI2LjUxIDAtNDggMjguNjU0LTQ4IDY0djY0Yy0yMy4xOTcgMC0zMiAxMC4wMzItMzIgMjR2NDBjMCAxMy45ODMgOC44MTkgMjQgMzIgMjR2MTZjLTIzLjE5NyAwLTMyIDEwLjAzMi0zMiAyNHY0MGMwIDEzLjk4MyA4LjgxOSAyNCAzMiAyNHY2NGMwIDM1LjM0NiAyMS40OSA2NCA0OCA2NFYzNTJoMTZ2MTI4aC4wMDNjMTIzLjQgMCAxMzMuMTU0LTEwNS43NDcgMjc5Ljk5Ny0xMzZIMTY5LjYwNmM2LjEzNS00LjAyMiAxMS43NjgtOS40NDUgMTYuNzItMTZINDcyYzQzLjc3NyAwIDg3LjczNS04LjgzNiAxMjAuNjA0LTI0LjI0NEM2MjIuMjgyIDI4OS44NDUgNjQwIDI3MS45OTIgNjQwIDI1NnMtMTcuNzE4LTMzLjg0NS00Ny4zOTYtNDcuNzU2ek00ODggMjk2YTggOCAwIDAgMS04LTh2LTY0YTggOCAwIDAgMSA4LThjMzEuOTA5IDAgMzEuOTQyIDgwIDAgODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNwZWxsQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyIDI1Nmg5MS4zNmM0My4yIDAgODItMzIuMiA4NC41MS03NS4zNGE3OS44MiA3OS44MiAwIDAgMC0yNS4yNi02My4wNyA3OS44MSA3OS44MSAwIDAgMCA5LjA2LTQ0LjkxQzQyNy45IDMwLjU3IDM4OS4zIDAgMzQ3IDBoLTc1YTE2IDE2IDAgMCAwLTE2IDE2djIyNGExNiAxNiAwIDAgMCAxNiAxNnptNDAtMjAwaDQwYTI0IDI0IDAgMCAxIDAgNDhoLTQwem0wIDk2aDU2YTI0IDI0IDAgMCAxIDAgNDhoLTU2ek0xNTUuMTIgMjIuMjVBMzIgMzIgMCAwIDAgMTI0LjY0IDBIOTkuMzZhMzIgMzIgMCAwIDAtMzAuNDggMjIuMjVMLjU5IDIzNS43M0ExNiAxNiAwIDAgMCAxNiAyNTZoMjQuOTNhMTYgMTYgMCAwIDAgMTUuNDItMTEuNzNMNjguMjkgMjA4aDg3LjQybDExLjk0IDM2LjI3QTE2IDE2IDAgMCAwIDE4My4wNyAyNTZIMjA4YTE2IDE2IDAgMCAwIDE1LjQyLTIwLjI3ek04OS4zNyAxNDRMMTEyIDc1LjNsMjIuNjMgNjguN3ptNDgyIDEzMi40OGwtNDUuMjEtNDUuM2ExNS44OCAxNS44OCAwIDAgMC0yMi41OSAwbC0xNTEuNSAxNTEuNS01NS40MS01NS41YTE1Ljg4IDE1Ljg4IDAgMCAwLTIyLjU5IDBsLTQ1LjMgNDUuM2ExNiAxNiAwIDAgMCAwIDIyLjU5bDExMiAxMTIuMjFhMTUuODkgMTUuODkgMCAwIDAgMjIuNiAwbDIwOC0yMDguMjFhMTYgMTYgMCAwIDAtLjAyLTIyLjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcGlkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUxLjE3IDE2Ny4zNUwxNzcuMSAxNzZoNC42N2w1LjIyLTI2LjEyYy43Mi0zLjU4IDEuOC03LjU4IDMuMjEtMTEuNzlsLTIwLjI5LTQwLjU4IDIzLjgtNzEuMzljMi43OS04LjM4LTEuNzMtMTcuNDQtMTAuMTItMjAuMjRMMTY4LjQyLjgyYy04LjM4LTIuOC0xNy40NSAxLjczLTIwLjI0IDEwLjEybC0yNS44OSA3Ny42OGEzMi4wNCAzMi4wNCAwIDAgMCAxLjczIDI0LjQzbDI3LjE1IDU0LjN6bTQyMi4xNCAxODIuMDNsLTUyLjc1LTc5LjEyYTMyLjAwMiAzMi4wMDIgMCAwIDAtMjYuNjItMTQuMjVINDE2bDY4Ljk5LTI0LjM2YTMyLjAzIDMyLjAzIDAgMCAwIDE2LjUxLTEyLjYxbDUzLjYtODAuNDFjNC45LTcuMzUgMi45MS0xNy4yOS00LjQ0LTIyLjE5bC0xMy4zMS04Ljg4Yy03LjM1LTQuOS0xNy4yOS0yLjkxLTIyLjE5IDQuNDRsLTUwLjU2IDc1LjgzTDQwNC4xIDIwOEgzNjhsLTEwLjM3LTUxLjg1QzM1NS40NCAxNDUuMTggMzQwLjI2IDk2IDI4OCA5NmMtNTIuMjYgMC02Ny40NCA0OS4xOC02OS42MyA2MC4xNUwyMDggMjA4aC0zNi4xbC02MC40OS0yMC4xN0w2MC44NCAxMTJjLTQuOS03LjM1LTE0LjgzLTkuMzQtMjIuMTktNC40NGwtMTMuMzEgOC44OGMtNy4zNSA0LjktOS4zNCAxNC44My00LjQ0IDIyLjE5bDUzLjYgODAuNDFhMzIuMDMgMzIuMDMgMCAwIDAgMTYuNTEgMTIuNjFMMTYwIDI1Nkg4Mi4wNmEzMi4wMiAzMi4wMiAwIDAgMC0yNi42MyAxNC4yNUwyLjY5IDM0OS4zOGMtNC45IDcuMzUtMi45MiAxNy4yOSA0LjQ0IDIyLjE5bDEzLjMxIDguODhjNy4zNSA0LjkgMTcuMjkgMi45MSAyMi4xOS00LjQ0bDQ4LTcyaDQ3LjA2bC02MC44MyA5Ny4zM0EzMS45ODggMzEuOTg4IDAgMCAwIDcyIDQxOC4zVjQ5NmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtNzMuMTFsNzQuMDgtMTE4LjUzYy0xLjAxIDE0LjA1LTIuMDggMjguMTEtMi4wOCA0Mi4yMUMxOTIgMzk5LjY0IDIzMi43NiA0NDggMjg4IDQ0OHM5Ni00OC4zNiA5Ni0xMDEuNDNjMC0xNC4xLTEuMDgtMjguMTYtMi4wOC00Mi4yMUw0NTYgNDIyLjg5VjQ5NmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtNzcuNzFjMC02LTEuNjktMTEuODgtNC44Ni0xNi45Nkw0MzguMzEgMzA0aDQ3LjA2bDQ4IDcyYzQuOSA3LjM1IDE0Ljg0IDkuMzQgMjIuMTkgNC40NGwxMy4zMS04Ljg4YzcuMzYtNC45IDkuMzQtMTQuODMgNC40NC0yMi4xOHpNNDA2LjA5IDk3LjUxbC0yMC4yOSA0MC41OGMxLjQxIDQuMjEgMi40OSA4LjIxIDMuMjEgMTEuNzlsNS4yMiAyNi4xMmg0LjY3bDI1LjkzLTguNjUgMjcuMTUtNTQuM2EzMS45OTUgMzEuOTk1IDAgMCAwIDEuNzMtMjQuNDNsLTI1Ljg5LTc3LjY4QzQyNS4wMyAyLjU2IDQxNS45Ni0xLjk4IDQwNy41OC44MmwtMTUuMTcgNS4wNmMtOC4zOCAyLjgtMTIuOTEgMTEuODYtMTAuMTIgMjAuMjRsMjMuOCA3MS4zOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3Bpbm5lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDQgNDhjMCAyNi41MS0yMS40OSA0OC00OCA0OHMtNDgtMjEuNDktNDgtNDggMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDh6bS00OCAzNjhjLTI2LjUxIDAtNDggMjEuNDktNDggNDhzMjEuNDkgNDggNDggNDggNDgtMjEuNDkgNDgtNDgtMjEuNDktNDgtNDgtNDh6bTIwOC0yMDhjLTI2LjUxIDAtNDggMjEuNDktNDggNDhzMjEuNDkgNDggNDggNDggNDgtMjEuNDkgNDgtNDgtMjEuNDktNDgtNDgtNDh6TTk2IDI1NmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4UzAgMjI5LjQ5IDAgMjU2czIxLjQ5IDQ4IDQ4IDQ4IDQ4LTIxLjQ5IDQ4LTQ4em0xMi45MjIgOTkuMDc4Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4czIxLjQ5IDQ4IDQ4IDQ4IDQ4LTIxLjQ5IDQ4LTQ4YzAtMjYuNTA5LTIxLjQ5MS00OC00OC00OHptMjk0LjE1NiAwYy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4czIxLjQ5IDQ4IDQ4IDQ4IDQ4LTIxLjQ5IDQ4LTQ4YzAtMjYuNTA5LTIxLjQ5LTQ4LTQ4LTQ4ek0xMDguOTIyIDYwLjkyMmMtMjYuNTEgMC00OCAyMS40OS00OCA0OHMyMS40OSA0OCA0OCA0OCA0OC0yMS40OSA0OC00OC0yMS40OTEtNDgtNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNwbG90Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDcyLjI5IDE5NS44OWwtNjcuMDYtMjIuOTVjLTE5LjI4LTYuNi0zMy41NC0yMC45Mi0zOC4xNC0zOC4zTDM1MS4xIDc0LjE5Yy0xMS41OC00My43Ny03Ni41Ny01Ny4xMy0xMDkuOTgtMjIuNjJsLTQ2LjE0IDQ3LjY3Yy0xMy4yNiAxMy43MS0zMy41NCAyMC45My01NC4yIDE5LjMxbC03MS44OC01LjYyYy01Mi4wNS00LjA3LTg2LjkzIDQ0Ljg4LTU5LjAzIDgyLjgzbDM4LjU0IDUyLjQyYzExLjA4IDE1LjA3IDEyLjgyIDMzLjg2IDQuNjQgNTAuMjRMMjQuNjIgMzU1LjRjLTIwLjU5IDQxLjI1IDIyLjg0IDg0Ljg3IDczLjQ5IDczLjgxbDY5Ljk2LTE1LjI4YzIwLjExLTQuMzkgNDEuNDUgMCA1Ny4wNyAxMS43M2w1NC4zMiA0MC44M2MzOS4zMiAyOS41NiAxMDEuMDQgNy41NyAxMDQuNDUtMzcuMjJsNC43LTYxLjg2YzEuMzUtMTcuNzkgMTIuOC0zMy44NiAzMC42My00Mi45OWw2Mi0zMS43NGM0NC44OC0yMi45NiAzOS41OS04MC4xNy04Ljk1LTk2Ljc5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcHJheUNhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtNjRjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2OTZoMTI4VjMyem0yNTYgOTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJzMTQuMzMgMzIgMzIgMzIgMzItMTQuMzMgMzItMzItMTQuMzMtMzItMzItMzJ6bS0yNTYgMzJIOTZjLTUzLjAyIDAtOTYgNDIuOTgtOTYgOTZ2MjI0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMjU2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMjU2YzAtNTMuMDItNDIuOTgtOTYtOTYtOTZ6bS02NCAyNTZjLTQ0LjE4IDAtODAtMzUuODItODAtODBzMzUuODItODAgODAtODAgODAgMzUuODIgODAgODAtMzUuODIgODAtODAgODB6TTQ4MCA5NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMycy0xNC4zMy0zMi0zMi0zMi0zMiAxNC4zMy0zMiAzMiAxNC4zMyAzMiAzMiAzMnptLTk2IDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMyczE0LjMzIDMyIDMyIDMyIDMyLTE0LjMzIDMyLTMyLTE0LjMzLTMyLTMyLTMyem0tOTYtOTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJzMTQuMzMgMzIgMzIgMzIgMzItMTQuMzMgMzItMzItMTQuMzMtMzItMzItMzJ6bTk2IDBjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJzMTQuMzMgMzIgMzIgMzIgMzItMTQuMzMgMzItMzItMTQuMzMtMzItMzItMzJ6bTk2IDE5MmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnMxNC4zMyAzMiAzMiAzMiAzMi0xNC4zMyAzMi0zMi0xNC4zMy0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlRnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgNTEySDBWMGg1MTJ2NTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVSb290QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3MS4zMSAyNTEuMzFsLTIyLjYyLTIyLjYyYy02LjI1LTYuMjUtMTYuMzgtNi4yNS0yMi42MyAwTDQ4MCAyNzQuNzVsLTQ2LjA2LTQ2LjA2Yy02LjI1LTYuMjUtMTYuMzgtNi4yNS0yMi42MyAwbC0yMi42MiAyMi42MmMtNi4yNSA2LjI1LTYuMjUgMTYuMzggMCAyMi42M0w0MzQuNzUgMzIwbC00Ni4wNiA0Ni4wNmMtNi4yNSA2LjI1LTYuMjUgMTYuMzggMCAyMi42M2wyMi42MiAyMi42MmM2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwTDQ4MCAzNjUuMjVsNDYuMDYgNDYuMDZjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMGwyMi42Mi0yMi42MmM2LjI1LTYuMjUgNi4yNS0xNi4zOCAwLTIyLjYzTDUyNS4yNSAzMjBsNDYuMDYtNDYuMDZjNi4yNS02LjI1IDYuMjUtMTYuMzggMC0yMi42M3pNNTUyIDBIMzA3LjY1Yy0xNC41NCAwLTI3LjI2IDkuOC0zMC45NSAyMy44N2wtODQuNzkgMzIyLjgtNTguNDEtMTA2LjFBMzIuMDA4IDMyLjAwOCAwIDAgMCAxMDUuNDcgMjI0SDI0Yy0xMy4yNSAwLTI0IDEwLjc0LTI0IDI0djQ4YzAgMTMuMjUgMTAuNzUgMjQgMjQgMjRoNDMuNjJsODguODggMTYzLjczQzE2OC45OSA1MDMuNSAxODYuMyA1MTIgMjA0Ljk0IDUxMmMxNy4yNyAwIDQ0LjQ0LTkgNTQuMjgtNDEuNDhMMzU3LjAzIDk2SDU1MmMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0VjI0YzAtMTMuMjYtMTAuNzUtMjQtMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFtcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiA1MTJoNDQ4di02NEgzMnY2NHptMzg0LTI1NmgtNjYuNTZjLTE2LjI2IDAtMjkuNDQtMTMuMTgtMjkuNDQtMjkuNDR2LTkuNDZjMC0yNy4zNyA4Ljg4LTUzLjQxIDIxLjQ2LTc3LjcyIDkuMTEtMTcuNjEgMTIuOS0zOC4zOSA5LjA1LTYwLjQyLTYuNzctMzguNzgtMzguNDctNzAuNy03Ny4yNi03Ny40NUMyMTIuNjItOS4wNCAxNjAgMzcuMzMgMTYwIDk2YzAgMTQuMTYgMy4xMiAyNy41NCA4LjY5IDM5LjU4QzE4Mi4wMiAxNjQuNDMgMTkyIDE5NC43IDE5MiAyMjYuNDl2LjA3YzAgMTYuMjYtMTMuMTggMjkuNDQtMjkuNDQgMjkuNDRIOTZjLTUzLjAyIDAtOTYgNDIuOTgtOTYgOTZ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg0NDhjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJjMC01My4wMi00Mi45OC05Ni05Ni05NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RhckFuZENyZXNjZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0MC40NyA0NjYuMzZjLTEuNDUgMC02Ljg5LjQ2LTkuMTguNDYtMTE2LjI1IDAtMjEwLjgyLTk0LjU3LTIxMC44Mi0yMTAuODJTMjE1LjA0IDQ1LjE4IDMzMS4yOSA0NS4xOGMyLjMyIDAgNy43LjQ2IDkuMTguNDYgNy4xMyAwIDEzLjMzLTUuMDMgMTQuNzUtMTIuMDcgMS40Ni03LjI1LTIuNTUtMTQuNDktOS40Ny0xNy4wOUMzMTYuNTggNS41NCAyODYuMzkgMCAyNTYgMCAxMTQuODQgMCAwIDExNC44NCAwIDI1NnMxMTQuODQgMjU2IDI1NiAyNTZjMzAuMjMgMCA2MC4yOC01LjQ5IDg5LjMyLTE2LjMyIDUuOTYtMi4wMiAxMC4yOC03LjY0IDEwLjI4LTE0LjI2IDAtOC4wOS02LjM5LTE1LjA2LTE1LjEzLTE1LjA2em0xNjIuOTktMjUyLjVsLTc2LjM4LTExLjEtMzQuMTYtNjkuMjFjLTEuODMtMy43LTUuMzgtNS41NS04LjkzLTUuNTVzLTcuMSAxLjg1LTguOTMgNS41NWwtMzQuMTYgNjkuMjEtNzYuMzggMTEuMWMtOC4xNyAxLjE4LTExLjQzIDExLjIyLTUuNTIgMTYuOTlsNTUuMjcgNTMuODctMTMuMDUgNzYuMDdjLTEuMTEgNi40NCA0LjAxIDExLjY2IDkuODEgMTEuNjYgMS41MyAwIDMuMTEtLjM2IDQuNjQtMS4xN0wzODQgMzM1LjM3bDY4LjMxIDM1LjkxYzEuNTMuOCAzLjExIDEuMTcgNC42NCAxLjE3IDUuOCAwIDEwLjkyLTUuMjMgOS44MS0xMS42NmwtMTMuMDUtNzYuMDcgNTUuMjctNTMuODdjNS45MS01Ljc3IDIuNjUtMTUuODEtNS41Mi0xNi45OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RhckhhbGZBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUzNiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA4LjU1IDE3MS41MUwzNjIuMTggMTUwLjIgMjk2Ljc3IDE3LjgxQzI5MC44OSA1Ljk4IDI3OS40MiAwIDI2Ny45NSAwYy0xMS40IDAtMjIuNzkgNS45LTI4LjY5IDE3LjgxbC02NS40MyAxMzIuMzgtMTQ2LjM4IDIxLjI5Yy0yNi4yNSAzLjgtMzYuNzcgMzYuMDktMTcuNzQgNTQuNTlsMTA1Ljg5IDEwMy0yNS4wNiAxNDUuNDhDODYuOTggNDk1LjMzIDEwMy41NyA1MTIgMTIyLjE1IDUxMmM0LjkzIDAgMTAtMS4xNyAxNC44Ny0zLjc1bDEzMC45NS02OC42OCAxMzAuOTQgNjguN2M0Ljg2IDIuNTUgOS45MiAzLjcxIDE0LjgzIDMuNzEgMTguNiAwIDM1LjIyLTE2LjYxIDMxLjY2LTM3LjRsLTI1LjAzLTE0NS40OSAxMDUuOTEtMTAyLjk4YzE5LjA0LTE4LjUgOC41Mi01MC44LTE3LjczLTU0LjZ6bS0xMjEuNzQgMTIzLjJsLTE4LjEyIDE3LjYyIDQuMjggMjQuODggMTkuNTIgMTEzLjQ1LTEwMi4xMy01My41OS0yMi4zOC0xMS43NC4wMy0zMTcuMTkgNTEuMDMgMTAzLjI5IDExLjE4IDIyLjYzIDI1LjAxIDMuNjQgMTE0LjIzIDE2LjYzLTgyLjY1IDgwLjM4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFySGFsZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMGMtMTEuNCAwLTIyLjggNS45LTI4LjcgMTcuOEwxOTQgMTUwLjIgNDcuOSAxNzEuNGMtMjYuMiAzLjgtMzYuNyAzNi4xLTE3LjcgNTQuNmwxMDUuNyAxMDMtMjUgMTQ1LjVjLTQuNSAyNi4xIDIzIDQ2IDQ2LjQgMzMuN0wyODggNDM5LjZWMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3Rhck9mRGF2aWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ2NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDA1LjY4IDI1Nmw1My4yMS04OS4zOUM0NzMuMyAxNDIuNCA0NTUuNDggMTEyIDQyNi44OCAxMTJIMzE5Ljk2bC01NS45NS05My45OEMyNTYuODYgNi4wMSAyNDQuNDMgMCAyMzIgMHMtMjQuODYgNi4wMS0zMi4wMSAxOC4wMkwxNDQuMDQgMTEySDM3LjExYy0yOC42IDAtNDYuNDIgMzAuNC0zMi4wMSA1NC42MUw1OC4zMiAyNTYgNS4xIDM0NS4zOUMtOS4zMSAzNjkuNiA4LjUxIDQwMCAzNy4xMSA0MDBoMTA2LjkzbDU1Ljk1IDkzLjk4QzIwNy4xNCA1MDUuOTkgMjE5LjU3IDUxMiAyMzIgNTEyczI0Ljg2LTYuMDEgMzIuMDEtMTguMDJMMzE5Ljk2IDQwMGgxMDYuOTNjMjguNiAwIDQ2LjQyLTMwLjQgMzIuMDEtNTQuNjFMNDA1LjY4IDI1NnptLTEyLjc4LTg4bC0xOS44IDMzLjI2TDM1My4zIDE2OGgzOS42em0tNTIuMzkgODhsLTUyLjM5IDg4SDE3NS44OGwtNTIuMzktODggNTIuMzgtODhoMTEyLjI1bDUyLjM5IDg4ek0yMzIgNzMuNzJMMjU0Ljc5IDExMmgtNDUuNTdMMjMyIDczLjcyek03MS4xIDE2OGgzOS42bC0xOS44IDMzLjI2TDcxLjEgMTY4em0wIDE3NmwxOS44LTMzLjI2TDExMC43IDM0NEg3MS4xek0yMzIgNDM4LjI4TDIwOS4yMSA0MDBoNDUuNTdMMjMyIDQzOC4yOHpNMzUzLjI5IDM0NGwxOS44LTMzLjI2TDM5Mi45IDM0NGgtMzkuNjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0YXJPZkxpZmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ4MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDcxLjk5IDMzNC40M0wzMzYuMDYgMjU2bDEzNS45My03OC40M2M3LjY2LTQuNDIgMTAuMjgtMTQuMiA1Ljg2LTIxLjg2bC0zMi4wMi01NS40M2MtNC40Mi03LjY1LTE0LjIxLTEwLjI4LTIxLjg3LTUuODZsLTEzNS45MyA3OC40M1YxNmMwLTguODQtNy4xNy0xNi0xNi4wMS0xNmgtNjQuMDRjLTguODQgMC0xNi4wMSA3LjE2LTE2LjAxIDE2djE1Ni44Nkw1Ni4wNCA5NC40M2MtNy42Ni00LjQyLTE3LjQ1LTEuNzktMjEuODcgNS44NkwyLjE1IDE1NS43MWMtNC40MiA3LjY1LTEuOCAxNy40NCA1Ljg2IDIxLjg2TDE0My45NCAyNTYgOC4wMSAzMzQuNDNjLTcuNjYgNC40Mi0xMC4yOCAxNC4yMS01Ljg2IDIxLjg2bDMyLjAyIDU1LjQzYzQuNDIgNy42NSAxNC4yMSAxMC4yNyAyMS44NyA1Ljg2bDEzNS45My03OC40M1Y0OTZjMCA4Ljg0IDcuMTcgMTYgMTYuMDEgMTZoNjQuMDRjOC44NCAwIDE2LjAxLTcuMTYgMTYuMDEtMTZWMzM5LjE0bDEzNS45MyA3OC40M2M3LjY2IDQuNDIgMTcuNDUgMS44IDIxLjg3LTUuODZsMzIuMDItNTUuNDNjNC40Mi03LjY1IDEuOC0xNy40My01Ljg2LTIxLjg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1OS4zIDE3LjhMMTk0IDE1MC4yIDQ3LjkgMTcxLjVjLTI2LjIgMy44LTM2LjcgMzYuMS0xNy43IDU0LjZsMTA1LjcgMTAzLTI1IDE0NS41Yy00LjUgMjYuMyAyMy4yIDQ2IDQ2LjQgMzMuN0wyODggNDM5LjZsMTMwLjcgNjguN2MyMy4yIDEyLjIgNTAuOS03LjQgNDYuNC0zMy43bC0yNS0xNDUuNSAxMDUuNy0xMDNjMTktMTguNSA4LjUtNTAuOC0xNy43LTU0LjZMMzgyIDE1MC4yIDMxNi43IDE3LjhjLTExLjctMjMuNi00NS42LTIzLjktNTcuNCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGVwQmFja3dhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgNDY4VjQ0YzAtNi42IDUuNC0xMiAxMi0xMmg0OGM2LjYgMCAxMiA1LjQgMTIgMTJ2MTc2LjRsMTk1LjUtMTgxQzM1Mi4xIDIyLjMgMzg0IDM2LjYgMzg0IDY0djM4NGMwIDI3LjQtMzEuOSA0MS43LTUyLjUgMjQuNkwxMzYgMjkyLjdWNDY4YzAgNi42LTUuNCAxMi0xMiAxMkg3NmMtNi42IDAtMTItNS40LTEyLTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGVwRm9yd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgNDR2NDI0YzAgNi42LTUuNCAxMi0xMiAxMmgtNDhjLTYuNiAwLTEyLTUuNC0xMi0xMlYyOTEuNmwtMTk1LjUgMTgxQzk1LjkgNDg5LjcgNjQgNDc1LjQgNjQgNDQ4VjY0YzAtMjcuNCAzMS45LTQxLjcgNTIuNS0yNC42TDMxMiAyMTkuM1Y0NGMwLTYuNiA1LjQtMTIgMTItMTJoNDhjNi42IDAgMTIgNS40IDEyIDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGV0aG9zY29wZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDcuMSAxMTJjLTM0LjIuNS02Mi4zIDI4LjQtNjMgNjIuNi0uNSAyNC4zIDEyLjUgNDUuNiAzMiA1Ni44VjM0NGMwIDU3LjMtNTAuMiAxMDQtMTEyIDEwNC02MCAwLTEwOS4yLTQ0LjEtMTExLjktOTkuMkMyNjUgMzMzLjggMzIwIDI2OS4yIDMyMCAxOTJWMzYuNmMwLTExLjQtOC4xLTIxLjMtMTkuMy0yMy41TDIzNy44LjVjLTEzLTIuNi0yNS42IDUuOC0yOC4yIDE4LjhMMjA2LjQgMzVjLTIuNiAxMyA1LjggMjUuNiAxOC44IDI4LjJsMzAuNyA2LjF2MTIxLjRjMCA1Mi45LTQyLjIgOTYuNy05NS4xIDk3LjItNTMuNC41LTk2LjktNDIuNy05Ni45LTk2VjY5LjRsMzAuNy02LjFjMTMtMi42IDIxLjQtMTUuMiAxOC44LTI4LjJsLTMuMS0xNS43QzEwNy43IDYuNCA5NS4xLTIgODIuMS42TDE5LjMgMTNDOC4xIDE1LjMgMCAyNS4xIDAgMzYuNlYxOTJjMCA3Ny4zIDU1LjEgMTQyIDEyOC4xIDE1Ni44QzEzMC43IDQzOS4yIDIwOC42IDUxMiAzMDQgNTEyYzk3IDAgMTc2LTc1LjQgMTc2LTE2OFYyMzEuNGMxOS4xLTExLjEgMzItMzEuNyAzMi01NS40IDAtMzUuNy0yOS4yLTY0LjUtNjQuOS02NHptLjkgODBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTcuMiAxNi0xNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RpY2t5Tm90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTIgMzIwaDEzNlY1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNEgyNEMxMC43IDMyIDAgNDIuNyAwIDU2djQwMGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgyNjRWMzQ0YzAtMTMuMiAxMC44LTI0IDI0LTI0em0xMjkgNTVsLTk4IDk4Yy00LjUgNC41LTEwLjYgNy0xNyA3aC02VjM1MmgxMjh2Ni4xYzAgNi4zLTIuNSAxMi40LTcgMTYuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RvcENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4em05NiAzMjhjMCA4LjgtNy4yIDE2LTE2IDE2SDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2VjE3NmMwLTguOCA3LjItMTYgMTYtMTZoMTYwYzguOCAwIDE2IDcuMiAxNiAxNnYxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0b3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RvcHdhdGNoMjAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzk4LjUsMTkwLjkxbC41OS0uNjEsMjYuNTktMjYuNThhMTYsMTYsMCwwLDAsMC0yMi42M0w0MDMsMTE4LjQxYTE2LDE2LDAsMCwwLTIyLjYzLDBsLTI0LjY4LDI0LjY4QTIwNi42OCwyMDYuNjgsMCwwLDAsMjU2LDk4LjVWNjRoMzJhMTYsMTYsMCwwLDAsMTYtMTZWMTZBMTYsMTYsMCwwLDAsMjg4LDBIMTYwYTE2LjA1LDE2LjA1LDAsMCwwLTE2LDE2VjQ4YTE2LjA1LDE2LjA1LDAsMCwwLDE2LDE2aDMyVjk4LjVBMjA3LjkyLDIwNy45MiwwLDAsMCwxNi4wOSwyOTcuNTdDMTIuNjQsNDExLjUsMTA2Ljc2LDUxMC4yMiwyMjAuNzIsNTEyLDMzNy4xMyw1MTMuNzcsNDMyLDQyMCw0MzIsMzA0QTIwNiwyMDYsMCwwLDAsMzk4LjUsMTkwLjkxWk0yMDQuMzcsMzc3LjU1YTguMiw4LjIsMCwwLDEsOC4zMiw4LjA3djIyLjMxYTguMiw4LjIsMCwwLDEtOC4zMiw4LjA3SDEyMS41MmExNi40NiwxNi40NiwwLDAsMS0xNi42MS0xNy42MmMyLjc4LTM1LjIyLDE0LjY3LTU3LjQxLDM4LjQ1LTkxLjM3LDIwLjQyLTI5LjE5LDI3LjEtMzcuMzIsMjcuMS02Mi4zNCwwLTE2LjkyLTEuNzktMjQuMjctMTIuMjEtMjQuMjctOS4zOSwwLTEyLjY5LDcuNC0xMi42OSwyMi42OHY1LjIzYTguMiw4LjIsMCwwLDEtOC4zMyw4LjA3aC0yNC45YTguMiw4LjIsMCwwLDEtOC4zMy04LjA3di00LjA3YzAtMjcuMyw4LjQ4LTYwLjI0LDU2LjQzLTYwLjI0LDQzLDAsNTUuNTcsMjUuODUsNTUuNTcsNjEsMCwzNS41OC0xMi40NCw1MS4yMS0zNC4zNSw4MS4zMS0xMS41NiwxNS0yNC42MSwzNS41Ny0yNi40MSw1MS4yWk0zNDQsMzUyLjMyYzAsMzUuMTYtMTIuMyw2My42OC01Ny4yMyw2My42OEMyNDMuMTksNDE2LDIzMiwzODYuNDgsMjMyLDM1Mi41NVYyNDcuMjJjMC00MC43MywxOS41OC02My4yMiw1Ni4yLTYzLjIyQzMyNSwxODQsMzQ0LDIwNi42NCwzNDQsMjQ1LjNaTTI4Ny44NywyMjEuNzNjLTkuNDEsMC0xMy4yMyw3LjUtMTMuMjMsMjBWMzU3LjY4YzAsMTMuMTEsMy41OSwyMC41OSwxMy4yMywyMC41OXMxMy04LDEzLTIxLjI3VjI0MS4wNkMzMDAuODksMjI5Ljc5LDI5Ny44OCwyMjEuNzMsMjg3Ljg3LDIyMS43M1pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RvcHdhdGNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzMiAzMDRjMCAxMTQuOS05My4xIDIwOC0yMDggMjA4UzE2IDQxOC45IDE2IDMwNGMwLTEwNCA3Ni4zLTE5MC4yIDE3Ni0yMDUuNVY2NGgtMjhjLTYuNiAwLTEyLTUuNC0xMi0xMlYxMmMwLTYuNiA1LjQtMTIgMTItMTJoMTIwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJoLTI4djM0LjVjMzcuNSA1LjggNzEuNyAyMS42IDk5LjcgNDQuNmwyNy41LTI3LjVjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDI4LjMgMjguM2M0LjcgNC43IDQuNyAxMi4zIDAgMTdsLTI5LjQgMjkuNC0uNi42QzQxOS43IDIyMy4zIDQzMiAyNjIuMiA0MzIgMzA0em0tMTc2IDM2VjE4OC41YzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMlYzNDBjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RvcmVBbHRTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy44OSwxMjMuNjIsNS41MSwxNDIuMmMtMTQuMiwyMS4zLDEsNDkuOCwyNi41OSw0OS44aDc0LjI2Wk01NzYsNDEzLjQyVjIyNEg1MTJWMzY0TDM4NCwyNjVWMjI0SDMzMC45MmwtNDEuNC0zMkg2MDhjMjUuNSwwLDQwLjctMjguNSwyNi41OS00OS44bC04NS4yOS0xMjhBMzIuMTgsMzIuMTgsMCwwLDAsNTIyLjYsMEgxMTcuNDJBMzEuODcsMzEuODcsMCwwLDAsOTAuODEsMTQuMmwtMTAuNjYsMTZMNDUuNDYsMy4zOEExNiwxNiwwLDAsMCwyMyw2LjE5TDMuMzcsMzEuNDZBMTYsMTYsMCwwLDAsNi4xOCw1My45MUw1OTQuNTMsNTA4LjYzQTE2LDE2LDAsMCwwLDYxNyw1MDUuODFsMTkuNjQtMjUuMjZhMTYsMTYsMCwwLDAtMi44MS0yMi40NVpNMzIwLDM4NEgxMjhWMjI0SDY0VjQ4MGEzMiwzMiwwLDAsMCwzMiwzMkgzNTJhMzIsMzIsMCwwLDAsMzItMzJWNDA2LjU5bC02NC00OS40N1pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RvcmVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDM4NEgxMjhWMjI0SDY0djI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyNTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjI0aC02NHYxNjB6bTMxNC42LTI0MS44bC04NS4zLTEyOGMtNi04LjktMTYtMTQuMi0yNi43LTE0LjJIMTE3LjRjLTEwLjcgMC0yMC43IDUuMy0yNi42IDE0LjJsLTg1LjMgMTI4Yy0xNC4yIDIxLjMgMSA0OS44IDI2LjYgNDkuOEg2MDhjMjUuNSAwIDQwLjctMjguNSAyNi42LTQ5Ljh6TTUxMiA0OTZjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyMjRoLTY0djI3MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RvcmVTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjEuNTEsMzg0VjI4NC4yYTExOS40MywxMTkuNDMsMCwwLDEtMjgsMy44LDEyMy40NiwxMjMuNDYsMCwwLDEtMTcuMS0xLjIsMTE0Ljg4LDExNC44OCwwLDAsMS0xNS41OC0zLjZWNDgwYzAsMTcuNywxMy41OSwzMiwzMC40LDMySDUwNS43NUwzNDguNDIsMzg0Wm0tMjgtMTI4LjA5YzI1LjEsMCw0Ny4yOS0xMC43Miw2NC0yNy4yNEwyNCwxMjAuMDVjLTMwLjUyLDUzLjM5LTIuNDUsMTI2LjUzLDU2LjQ5LDEzNUE5NS42OCw5NS42OCwwLDAsMCw5My40OCwyNTUuOTFaTTYwMi4xMyw0NTguMDksNTQ3LjIsNDEzLjQxVjI4My4yYTkzLjUsOTMuNSwwLDAsMS0xNS41NywzLjYsMTI3LjMxLDEyNy4zMSwwLDAsMS0xNy4yOSwxLjIsMTE0Ljg5LDExNC44OSwwLDAsMS0yOC0zLjh2NzkuNjhMMzQ4LjUyLDI1MS43N2E4OC4wNiw4OC4wNiwwLDAsMCwyNS40MSw0LjE0YzI4LjExLDAsNTMtMTMsNzAuMTEtMzMuMTEsMTcuMTksMjAuMTEsNDIuMDgsMzMuMTEsNzAuMTEsMzMuMTFhOTQuMzEsOTQuMzEsMCwwLDAsMTMtLjkxYzU5LjY2LTguNDEsODgtODIuOCw1Ni4wNi0xMzYuNEw1MjEuNTUsMTVBMzAuMSwzMC4xLDAsMCwwLDQ5NS44MSwwSDExMkEzMC4xMSwzMC4xMSwwLDAsMCw4Ni4yNywxNUw3Ni44OCwzMC43OCw0My4xOSwzLjM4QTE0LjY4LDE0LjY4LDAsMCwwLDIxLjg2LDYuMTlMMy4yLDMxLjQ1QTE2LjU4LDE2LjU4LDAsMCwwLDUuODcsNTMuOTFMNTY0LjgxLDUwOC42M2ExNC42OSwxNC42OSwwLDAsMCwyMS4zMy0yLjgybDE4LjY2LTI1LjI2QTE2LjU4LDE2LjU4LDAsMCwwLDYwMi4xMyw0NTguMDlaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0b3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2MTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYwMiAxMTguNkw1MzcuMSAxNUM1MzEuMyA1LjcgNTIxIDAgNTEwIDBIMTA2Qzk1IDAgODQuNyA1LjcgNzguOSAxNUwxNCAxMTguNmMtMzMuNSA1My41LTMuOCAxMjcuOSA1OC44IDEzNi40IDQuNS42IDkuMS45IDEzLjcuOSAyOS42IDAgNTUuOC0xMyA3My44LTMzLjEgMTggMjAuMSA0NC4zIDMzLjEgNzMuOCAzMy4xIDI5LjYgMCA1NS44LTEzIDczLjgtMzMuMSAxOCAyMC4xIDQ0LjMgMzMuMSA3My44IDMzLjEgMjkuNiAwIDU1LjgtMTMgNzMuOC0zMy4xIDE4LjEgMjAuMSA0NC4zIDMzLjEgNzMuOCAzMy4xIDQuNyAwIDkuMi0uMyAxMy43LS45IDYyLjgtOC40IDkyLjYtODIuOCA1OS0xMzYuNHpNNTI5LjUgMjg4Yy0xMCAwLTE5LjktMS41LTI5LjUtMy44VjM4NEgxMTZ2LTk5LjhjLTkuNiAyLjItMTkuNSAzLjgtMjkuNSAzLjgtNiAwLTEyLjEtLjQtMTgtMS4yLTUuNi0uOC0xMS4xLTIuMS0xNi40LTMuNlY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoNDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI4My4yYy01LjQgMS42LTEwLjggMi45LTE2LjQgMy42LTYuMS44LTEyLjEgMS4yLTE4LjIgMS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdHJlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTI4aDQxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlY0OGMwLTguODQtNy4xNi0xNi0xNi0xNkgxNkM3LjE2IDMyIDAgMzkuMTYgMCA0OHY2NGMwIDguODQgNy4xNiAxNiAxNiAxNnptNDgwIDgwSDgwYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY2NGMwIDguODQgNy4xNiAxNiAxNiAxNmg0MTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTY0YzAtOC44NC03LjE2LTE2LTE2LTE2em0tNjQgMTc2SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY2NGMwIDguODQgNy4xNiAxNiAxNiAxNmg0MTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTY0YzAtOC44NC03LjE2LTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdHJlZXRWaWV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2Ny45IDMyOS43NmMtNC42MiA1LjMtOS43OCAxMC4xLTE1LjkgMTMuNjV2MjIuOTRjNjYuNTIgOS4zNCAxMTIgMjguMDUgMTEyIDQ5LjY1IDAgMzAuOTMtOTMuMTIgNTYtMjA4IDU2UzQ4IDQ0Ni45MyA0OCA0MTZjMC0yMS42IDQ1LjQ4LTQwLjMgMTEyLTQ5LjY1di0yMi45NGMtNi4xMi0zLjU1LTExLjI4LTguMzUtMTUuOS0xMy42NUM1OC44NyAzNDUuMzQgMCAzNzguMDUgMCA0MTZjMCA1My4wMiAxMTQuNjIgOTYgMjU2IDk2czI1Ni00Mi45OCAyNTYtOTZjMC0zNy45NS01OC44Ny03MC42Ni0xNDQuMS04Ni4yNHpNMjU2IDEyOGMzNS4zNSAwIDY0LTI4LjY1IDY0LTY0UzI5MS4zNSAwIDI1NiAwcy02NCAyOC42NS02NCA2NCAyOC42NSA2NCA2NCA2NHptLTY0IDE5MnY5NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTk2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTk2YzAtMjYuNTEtMjEuNDktNDgtNDgtNDhoLTExLjhjLTExLjA3IDUuMDMtMjMuMjYgOC0zNi4yIDhzLTI1LjEzLTIuOTctMzYuMi04SDIwOGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHY5NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdHJpa2V0aHJvdWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiAyMjRIMjkzLjlsLTg3LjE3LTI2LjgzQTQzLjU1IDQzLjU1IDAgMCAxIDIxOS41NSAxMTJoNjYuNzlBNDkuODkgNDkuODkgMCAwIDEgMzMxIDEzOS41OGExNiAxNiAwIDAgMCAyMS40NiA3LjE1bDQyLjk0LTIxLjQ3YTE2IDE2IDAgMCAwIDcuMTYtMjEuNDZsLS41My0xQTEyOCAxMjggMCAwIDAgMjg3LjUxIDMyaC02OGExMjMuNjggMTIzLjY4IDAgMCAwLTEyMyAxMzUuNjRjMiAyMC44OSAxMC4xIDM5LjgzIDIxLjc4IDU2LjM2SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQ4MGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bS0xODAuMjQgOTZBNDMgNDMgMCAwIDEgMzM2IDM1Ni40NSA0My41OSA0My41OSAwIDAgMSAyOTIuNDUgNDAwaC02Ni43OUE0OS44OSA0OS44OSAwIDAgMSAxODEgMzcyLjQyYTE2IDE2IDAgMCAwLTIxLjQ2LTcuMTVsLTQyLjk0IDIxLjQ3YTE2IDE2IDAgMCAwLTcuMTYgMjEuNDZsLjUzIDFBMTI4IDEyOCAwIDAgMCAyMjQuNDkgNDgwaDY4YTEyMy42OCAxMjMuNjggMCAwIDAgMTIzLTEzNS42NCAxMTQuMjUgMTE0LjI1IDAgMCAwLTUuMzQtMjQuMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0cm9vcHdhZmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4OC4xMiAyMTAuNzRMMTQyLjg2IDI1Nmw0NS4yNSA0NS4yNUwyMzMuMzcgMjU2bC00NS4yNS00NS4yNnptMTEzLjEzLTIyLjYyTDI1NiAxNDIuODZsLTQ1LjI1IDQ1LjI1TDI1NiAyMzMuMzdsNDUuMjUtNDUuMjV6bS05MC41IDEzNS43NkwyNTYgMzY5LjE0bDQ1LjI2LTQ1LjI2TDI1NiAyNzguNjNsLTQ1LjI1IDQ1LjI1ek0yNTYgMEMxMTQuNjIgMCAwIDExNC42MiAwIDI1NnMxMTQuNjIgMjU2IDI1NiAyNTYgMjU2LTExNC42MiAyNTYtMjU2UzM5Ny4zOCAwIDI1NiAwem0xODYuNjggMjk1LjZsLTExLjMxIDExLjMxYy0zLjEyIDMuMTItOC4xOSAzLjEyLTExLjMxIDBsLTI4LjI5LTI4LjI5LTQ1LjI1IDQ1LjI1IDMzLjk0IDMzLjk0IDE2Ljk3LTE2Ljk3YzMuMTItMy4xMiA4LjE5LTMuMTIgMTEuMzEgMGwxMS4zMSAxMS4zMWMzLjEyIDMuMTIgMy4xMiA4LjE5IDAgMTEuMzFsLTE2Ljk3IDE2Ljk3IDE2Ljk3IDE2Ljk3YzMuMTIgMy4xMiAzLjEyIDguMTkgMCAxMS4zMWwtMTEuMzEgMTEuMzFjLTMuMTIgMy4xMi04LjE5IDMuMTItMTEuMzEgMGwtMTYuOTctMTYuOTctMTYuOTcgMTYuOTdjLTMuMTIgMy4xMi04LjE5IDMuMTItMTEuMzEgMGwtMTEuMzEtMTEuMzFjLTMuMTItMy4xMi0zLjEyLTguMTkgMC0xMS4zMWwxNi45Ny0xNi45Ny0zMy45NC0zMy45NC00NS4yNiA0NS4yNiAyOC4yOSAyOC4yOWMzLjEyIDMuMTIgMy4xMiA4LjE5IDAgMTEuMzFsLTExLjMxIDExLjMxYy0zLjEyIDMuMTItOC4xOSAzLjEyLTExLjMxIDBMMjU2IDQxNC4zOWwtMjguMjkgMjguMjljLTMuMTIgMy4xMi04LjE5IDMuMTItMTEuMzEgMGwtMTEuMzEtMTEuMzFjLTMuMTItMy4xMi0zLjEyLTguMTkgMC0xMS4zMWwyOC4yOS0yOC4yOS00NS4yNS00NS4yNi0zMy45NCAzMy45NCAxNi45NyAxNi45N2MzLjEyIDMuMTIgMy4xMiA4LjE5IDAgMTEuMzFsLTExLjMxIDExLjMxYy0zLjEyIDMuMTItOC4xOSAzLjEyLTExLjMxIDBsLTE2Ljk3LTE2Ljk3LTE2Ljk3IDE2Ljk3Yy0zLjEyIDMuMTItOC4xOSAzLjEyLTExLjMxIDBsLTExLjMxLTExLjMxYy0zLjEyLTMuMTItMy4xMi04LjE5IDAtMTEuMzFsMTYuOTctMTYuOTctMTYuOTctMTYuOTdjLTMuMTItMy4xMi0zLjEyLTguMTkgMC0xMS4zMWwxMS4zMS0xMS4zMWMzLjEyLTMuMTIgOC4xOS0zLjEyIDExLjMxIDBsMTYuOTcgMTYuOTcgMzMuOTQtMzMuOTQtNDUuMjUtNDUuMjUtMjguMjkgMjguMjljLTMuMTIgMy4xMi04LjE5IDMuMTItMTEuMzEgMEw2OS4zMiAyOTUuNmMtMy4xMi0zLjEyLTMuMTItOC4xOSAwLTExLjMxTDk3LjYxIDI1NmwtMjguMjktMjguMjljLTMuMTItMy4xMi0zLjEyLTguMTkgMC0xMS4zMWwxMS4zMS0xMS4zMWMzLjEyLTMuMTIgOC4xOS0zLjEyIDExLjMxIDBsMjguMjkgMjguMjkgNDUuMjUtNDUuMjYtMzMuOTQtMzMuOTQtMTYuOTcgMTYuOTdjLTMuMTIgMy4xMi04LjE5IDMuMTItMTEuMzEgMGwtMTEuMzEtMTEuMzFjLTMuMTItMy4xMi0zLjEyLTguMTkgMC0xMS4zMWwxNi45Ny0xNi45Ny0xNi45Ny0xNi45N2MtMy4xMi0zLjEyLTMuMTItOC4xOSAwLTExLjMxbDExLjMxLTExLjMxYzMuMTItMy4xMiA4LjE5LTMuMTIgMTEuMzEgMGwxNi45NyAxNi45NyAxNi45Ny0xNi45N2MzLjEyLTMuMTIgOC4xOS0zLjEyIDExLjMxIDBsMTEuMzEgMTEuMzFjMy4xMiAzLjEyIDMuMTIgOC4xOSAwIDExLjMxbC0xNi45NyAxNi45NyAzMy45NCAzMy45NCA0NS4yNi00NS4yNS0yOC4yOS0yOC4yOWMtMy4xMi0zLjEyLTMuMTItOC4xOSAwLTExLjMxbDExLjMxLTExLjMxYzMuMTItMy4xMiA4LjE5LTMuMTIgMTEuMzEgMEwyNTYgOTcuNjFsMjguMjktMjguMjljMy4xMi0zLjEyIDguMTktMy4xMiAxMS4zMSAwbDExLjMxIDExLjMxYzMuMTIgMy4xMiAzLjEyIDguMTkgMCAxMS4zMWwtMjguMjkgMjguMjkgNDUuMjYgNDUuMjUgMzMuOTQtMzMuOTQtMTYuOTctMTYuOTdjLTMuMTItMy4xMi0zLjEyLTguMTkgMC0xMS4zMWwxMS4zMS0xMS4zMWMzLjEyLTMuMTIgOC4xOS0zLjEyIDExLjMxIDBsMTYuOTcgMTYuOTcgMTYuOTctMTYuOTdjMy4xMi0zLjEyIDguMTktMy4xMiAxMS4zMSAwbDExLjMxIDExLjMxYzMuMTIgMy4xMiAzLjEyIDguMTkgMCAxMS4zMWwtMTYuOTcgMTYuOTcgMTYuOTcgMTYuOTdjMy4xMiAzLjEyIDMuMTIgOC4xOSAwIDExLjMxbC0xMS4zMSAxMS4zMWMtMy4xMiAzLjEyLTguMTkgMy4xMi0xMS4zMSAwbC0xNi45Ny0xNi45Ny0zMy45NCAzMy45NCA0NS4yNSA0NS4yNiAyOC4yOS0yOC4yOWMzLjEyLTMuMTIgOC4xOS0zLjEyIDExLjMxIDBsMTEuMzEgMTEuMzFjMy4xMiAzLjEyIDMuMTIgOC4xOSAwIDExLjMxTDQxNC4zOSAyNTZsMjguMjkgMjguMjhhOC4wMTUgOC4wMTUgMCAwIDEgMCAxMS4zMnpNMjc4LjYzIDI1Nmw0NS4yNiA0NS4yNUwzNjkuMTQgMjU2bC00NS4yNS00NS4yNkwyNzguNjMgMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdWJzY3JpcHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2IDQ0OGgtMTZWMzA0YTE2IDE2IDAgMCAwLTE2LTE2aC00OGExNiAxNiAwIDAgMC0xNC4yOSA4LjgzbC0xNiAzMkExNiAxNiAwIDAgMCA0MDAgMzUyaDE2djk2aC0xNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg5NmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6TTMzNiA2NGgtNjdhMTYgMTYgMCAwIDAtMTMuMTQgNi44N2wtNzkuOSAxMTUtNzkuOS0xMTVBMTYgMTYgMCAwIDAgODMgNjRIMTZBMTYgMTYgMCAwIDAgMCA4MHY0OGExNiAxNiAwIDAgMCAxNiAxNmgzMy40OGw3Ny44MSAxMTItNzcuODEgMTEySDE2YTE2IDE2IDAgMCAwLTE2IDE2djQ4YTE2IDE2IDAgMCAwIDE2IDE2aDY3YTE2IDE2IDAgMCAwIDEzLjE0LTYuODdsNzkuOS0xMTUgNzkuOSAxMTVBMTYgMTYgMCAwIDAgMjY5IDQ0OGg2N2ExNiAxNiAwIDAgMCAxNi0xNnYtNDhhMTYgMTYgMCAwIDAtMTYtMTZoLTMzLjQ4bC03Ny44MS0xMTIgNzcuODEtMTEySDMzNmExNiAxNiAwIDAgMCAxNi0xNlY4MGExNiAxNiAwIDAgMC0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3Vid2F5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA5NnYyNTZjMCA1MS44MTUtNjEuNjI0IDk2LTEzMC4wMjIgOTZsNjIuOTggNDkuNzIxQzM4Ni45MDUgNTAyLjQxNyAzODMuNTYyIDUxMiAzNzYgNTEySDcyYy03LjU3OCAwLTEwLjg5Mi05LjU5NC00Ljk1Ny0xNC4yNzlMMTMwLjAyMiA0NDhDNjEuODIgNDQ4IDAgNDAzLjk1NCAwIDM1MlY5NkMwIDQyLjk4MSA2NCAwIDEyOCAwaDE5MmM2NSAwIDEyOCA0Mi45ODEgMTI4IDk2ek0yMDAgMjMyVjEyMGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRINzJjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYxMTJjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDEwNGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR6bTIwMCAwVjEyMGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjcyYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MTEyYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxMDRjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0em0tNDggNTZjLTI2LjUxIDAtNDggMjEuNDktNDggNDhzMjEuNDkgNDggNDggNDggNDgtMjEuNDkgNDgtNDgtMjEuNDktNDgtNDgtNDh6bS0yNTYgMGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHMyMS40OSA0OCA0OCA0OCA0OC0yMS40OSA0OC00OC0yMS40OS00OC00OC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3VpdGNhc2VSb2xsaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNiAxNjBINDhjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2MjI0YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMTZ2MTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTE2aDEyOHYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZoMTZjMjYuNTEgMCA0OC0yMS40OSA0OC00OFYyMDhjMC0yNi41MS0yMS40OS00OC00OC00OHptLTE2IDIxNmMwIDQuNDItMy41OCA4LTggOEg3MmMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDI0MGM0LjQyIDAgOCAzLjU4IDggOHYxNnptMC05NmMwIDQuNDItMy41OCA4LTggOEg3MmMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDI0MGM0LjQyIDAgOCAzLjU4IDggOHYxNnpNMTQ0IDQ4aDk2djgwaDQ4VjQ4YzAtMjYuNTEtMjEuNDktNDgtNDgtNDhoLTk2Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djgwaDQ4VjQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdWl0Y2FzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggNDgwaDI1NlY4MGMwLTI2LjUtMjEuNS00OC00OC00OEgxNzZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djQwMHptNjQtMzg0aDEyOHYzMkgxOTJWOTZ6bTMyMCA4MHYyNTZjMCAyNi41LTIxLjUgNDgtNDggNDhoLTQ4VjEyOGg0OGMyNi41IDAgNDggMjEuNSA0OCA0OHpNOTYgNDgwSDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYxNzZjMC0yNi41IDIxLjUtNDggNDgtNDhoNDh2MzUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDE2MGMtNTIuOSAwLTk2IDQzLjEtOTYgOTZzNDMuMSA5NiA5NiA5NiA5Ni00My4xIDk2LTk2LTQzLjEtOTYtOTYtOTZ6bTI0Ni40IDgwLjVsLTk0LjctNDcuMyAzMy41LTEwMC40YzQuNS0xMy42LTguNC0yNi41LTIxLjktMjEuOWwtMTAwLjQgMzMuNS00Ny40LTk0LjhjLTYuNC0xMi44LTI0LjYtMTIuOC0zMSAwbC00Ny4zIDk0LjdMOTIuNyA3MC44Yy0xMy42LTQuNS0yNi41IDguNC0yMS45IDIxLjlsMzMuNSAxMDAuNC05NC43IDQ3LjRjLTEyLjggNi40LTEyLjggMjQuNiAwIDMxbDk0LjcgNDcuMy0zMy41IDEwMC41Yy00LjUgMTMuNiA4LjQgMjYuNSAyMS45IDIxLjlsMTAwLjQtMzMuNSA0Ny4zIDk0LjdjNi40IDEyLjggMjQuNiAxMi44IDMxIDBsNDcuMy05NC43IDEwMC40IDMzLjVjMTMuNiA0LjUgMjYuNS04LjQgMjEuOS0yMS45bC0zMy41LTEwMC40IDk0LjctNDcuM2MxMy02LjUgMTMtMjQuNy4yLTMxLjF6bS0xNTUuOSAxMDZjLTQ5LjkgNDkuOS0xMzEuMSA0OS45LTE4MSAwLTQ5LjktNDkuOS00OS45LTEzMS4xIDAtMTgxIDQ5LjktNDkuOSAxMzEuMS00OS45IDE4MSAwIDQ5LjkgNDkuOSA0OS45IDEzMS4xIDAgMTgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdXBlcnNjcmlwdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYgMTYwaC0xNlYxNmExNiAxNiAwIDAgMC0xNi0xNmgtNDhhMTYgMTYgMCAwIDAtMTQuMjkgOC44M2wtMTYgMzJBMTYgMTYgMCAwIDAgNDAwIDY0aDE2djk2aC0xNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg5NmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6TTMzNiA2NGgtNjdhMTYgMTYgMCAwIDAtMTMuMTQgNi44N2wtNzkuOSAxMTUtNzkuOS0xMTVBMTYgMTYgMCAwIDAgODMgNjRIMTZBMTYgMTYgMCAwIDAgMCA4MHY0OGExNiAxNiAwIDAgMCAxNiAxNmgzMy40OGw3Ny44MSAxMTItNzcuODEgMTEySDE2YTE2IDE2IDAgMCAwLTE2IDE2djQ4YTE2IDE2IDAgMCAwIDE2IDE2aDY3YTE2IDE2IDAgMCAwIDEzLjE0LTYuODdsNzkuOS0xMTUgNzkuOSAxMTVBMTYgMTYgMCAwIDAgMjY5IDQ0OGg2N2ExNiAxNiAwIDAgMCAxNi0xNnYtNDhhMTYgMTYgMCAwIDAtMTYtMTZoLTMzLjQ4bC03Ny44MS0xMTIgNzcuODEtMTEySDMzNmExNiAxNiAwIDAgMCAxNi0xNlY4MGExNiAxNiAwIDAgMC0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3VycHJpc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHpNMTM2IDIwOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMnptMTEyIDIwOGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NCA2NCAyOC43IDY0IDY0LTI4LjcgNjQtNjQgNjR6bTgwLTE3NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN3YXRjaGJvb2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM0LjY2LDE2Ny43MWgwTDM0NC41LDc3LjM2YTMxLjgzLDMxLjgzLDAsMCwwLTQ1LS4wN2gwbC0uMDcuMDdMMjI0LDE1Mi44OFY0MjRMNDM0LjY2LDIxMi45QTMyLDMyLDAsMCwwLDQzNC42NiwxNjcuNzFaTTQ4MCwzMjBIMzczLjA5TDE4Ni42OCw1MDYuNTFjLTIuMDYsMi4wNy00LjUsMy41OC02LjY4LDUuNDlINDgwYTMyLDMyLDAsMCwwLDMyLTMyVjM1MkEzMiwzMiwwLDAsMCw0ODAsMzIwWk0xOTIsMzJBMzIsMzIsMCwwLDAsMTYwLDBIMzJBMzIsMzIsMCwwLDAsMCwzMlY0MTZhOTYsOTYsMCwwLDAsMTkyLDBaTTk2LDQ0MGEyNCwyNCwwLDEsMSwyNC0yNEEyNCwyNCwwLDAsMSw5Niw0NDBabTMyLTE4NEg2NFYxOTJoNjRabTAtMTI4SDY0VjY0aDY0WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTd2ltbWVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4OS42MSAzMTAuNThjMy41NCAzLjI2IDE1LjI3IDkuNDIgMzQuMzkgOS40MnMzMC44Ni02LjE2IDM0LjM5LTkuNDJjMTYuMDItMTQuNzcgMzQuNS0yMi41OCA1My40Ni0yMi41OGgxNi4zYzE4Ljk2IDAgMzcuNDUgNy44MSA1My40NiAyMi41OCAzLjU0IDMuMjYgMTUuMjcgOS40MiAzNC4zOSA5LjQyczMwLjg2LTYuMTYgMzQuMzktOS40MmMxNC44Ni0xMy43MSAzMS44OC0yMS4xMiA0OS4zOS0yMi4xNmwtMTEyLjg0LTgwLjYgMTgtMTIuODZjMy42NC0yLjU4IDguMjgtMy41MiAxMi42Mi0yLjYxbDEwMC4zNSAyMS41M2MyNS45MSA1LjUzIDUxLjQ0LTEwLjk3IDU3LTM2Ljg4IDUuNTUtMjUuOTItMTAuOTUtNTEuNDQtMzYuODgtNTdMNDM3LjY4IDk4LjQ3Yy0zMC43My02LjU4LTYzLjAyLjEyLTg4LjU2IDE4LjM4bC04MC4wMiA1Ny4xN2MtMTAuMzggNy4zOS0xOS4zNiAxNi40NC0yNi43MiAyNi45NEwxNzMuNzUgMjk5YzUuNDcgMy4yMyAxMC44MiA2LjkzIDE1Ljg2IDExLjU4ek02MjQgMzUyaC0xNmMtMjYuMDQgMC00NS44LTguNDItNTYuMDktMTcuOS04LjktOC4yMS0xOS42Ni0xNC4xLTMxLjc3LTE0LjFoLTE2LjNjLTEyLjExIDAtMjIuODcgNS44OS0zMS43NyAxNC4xQzQ2MS44IDM0My41OCA0NDIuMDQgMzUyIDQxNiAzNTJzLTQ1LjgtOC40Mi01Ni4wOS0xNy45Yy04LjktOC4yMS0xOS42Ni0xNC4xLTMxLjc3LTE0LjFoLTE2LjNjLTEyLjExIDAtMjIuODcgNS44OS0zMS43NyAxNC4xQzI2OS44IDM0My41OCAyNTAuMDQgMzUyIDIyNCAzNTJzLTQ1LjgtOC40Mi01Ni4wOS0xNy45Yy04LjktOC4yMS0xOS42Ni0xNC4xLTMxLjc3LTE0LjFoLTE2LjNjLTEyLjExIDAtMjIuODcgNS44OS0zMS43NyAxNC4xQzc3LjggMzQzLjU4IDU4LjA0IDM1MiAzMiAzNTJIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2YzM4LjYyIDAgNzIuNzItMTIuMTkgOTYtMzEuODQgMjMuMjggMTkuNjYgNTcuMzggMzEuODQgOTYgMzEuODRzNzIuNzItMTIuMTkgOTYtMzEuODRjMjMuMjggMTkuNjYgNTcuMzggMzEuODQgOTYgMzEuODRzNzIuNzItMTIuMTkgOTYtMzEuODRjMjMuMjggMTkuNjYgNTcuMzggMzEuODQgOTYgMzEuODRoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2em0tNTEyLTk2YzQ0LjE4IDAgODAtMzUuODIgODAtODBzLTM1LjgyLTgwLTgwLTgwLTgwIDM1LjgyLTgwIDgwIDM1LjgyIDgwIDgwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTd2ltbWluZ1Bvb2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI0IDQxNmgtMTZjLTI2LjA0IDAtNDUuOC04LjQyLTU2LjA5LTE3LjktOC45LTguMjEtMTkuNjYtMTQuMS0zMS43Ny0xNC4xaC0xNi4zYy0xMi4xMSAwLTIyLjg3IDUuODktMzEuNzcgMTQuMUM0NjEuOCA0MDcuNTggNDQyLjA0IDQxNiA0MTYgNDE2cy00NS44LTguNDItNTYuMDktMTcuOWMtOC45LTguMjEtMTkuNjYtMTQuMS0zMS43Ny0xNC4xaC0xNi4zYy0xMi4xMSAwLTIyLjg3IDUuODktMzEuNzcgMTQuMUMyNjkuOCA0MDcuNTggMjUwLjA0IDQxNiAyMjQgNDE2cy00NS44LTguNDItNTYuMDktMTcuOWMtOC45LTguMjEtMTkuNjYtMTQuMS0zMS43Ny0xNC4xaC0xNi4zYy0xMi4xMSAwLTIyLjg3IDUuODktMzEuNzcgMTQuMUM3Ny44IDQwNy41OCA1OC4wNCA0MTYgMzIgNDE2SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNmMzOC42MiAwIDcyLjcyLTEyLjE5IDk2LTMxLjg0IDIzLjI4IDE5LjY2IDU3LjM4IDMxLjg0IDk2IDMxLjg0czcyLjcyLTEyLjE5IDk2LTMxLjg0YzIzLjI4IDE5LjY2IDU3LjM4IDMxLjg0IDk2IDMxLjg0czcyLjcyLTEyLjE5IDk2LTMxLjg0YzIzLjI4IDE5LjY2IDU3LjM4IDMxLjg0IDk2IDMxLjg0aDE2YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnptLTQwMC0zMnYtOTZoMTkydjk2YzE5LjEyIDAgMzAuODYtNi4xNiAzNC4zOS05LjQyIDkuMTctOC40NiAxOS4yLTE0LjM0IDI5LjYxLTE4LjA3VjEyOGMwLTE3LjY0IDE0LjM2LTMyIDMyLTMyczMyIDE0LjM2IDMyIDMydjE2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2di0xNmMwLTUyLjk0LTQzLjA2LTk2LTk2LTk2cy05NiA0My4wNi05NiA5NnY5NkgyMjR2LTk2YzAtMTcuNjQgMTQuMzYtMzIgMzItMzJzMzIgMTQuMzYgMzIgMzJ2MTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTE2YzAtNTIuOTQtNDMuMDYtOTYtOTYtOTZzLTk2IDQzLjA2LTk2IDk2djIyOC41YzEwLjQxIDMuNzMgMjAuNDQgOS42MiAyOS42MSAxOC4wNyAzLjUzIDMuMjcgMTUuMjcgOS40MyAzNC4zOSA5LjQzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTeW5hZ29ndWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzAgMTk2LjUxTDYuNjcgMjY4LjI5QTI2LjY0MyAyNi42NDMgMCAwIDAgMCAyODUuOTNWNTEyaDEyOFYyMzkuNThsLTM4LTQzLjA3Yy01LjMxLTYuMDEtMTQuNjktNi4wMS0yMCAwem01NjMuMzMgNzEuNzhMNTcwIDE5Ni41MWMtNS4zMS02LjAyLTE0LjY5LTYuMDItMjAgMGwtMzggNDMuMDdWNTEyaDEyOFYyODUuOTNjMC02LjUtMi4zNy0xMi43Ny02LjY3LTE3LjY0ek0zMzkuOTkgNy4wMWMtMTEuNjktOS4zNS0yOC4yOS05LjM1LTM5Ljk4IDBsLTEyOCAxMDIuNEEzMi4wMDUgMzIuMDA1IDAgMCAwIDE2MCAxMzQuNFY1MTJoOTZ2LTkyLjU3YzAtMzEuODggMjEuNzgtNjEuNDMgNTMuMjUtNjYuNTVDMzQ5LjM0IDM0Ni4zNSAzODQgMzc3LjEzIDM4NCA0MTZ2OTZoOTZWMTM0LjRjMC05LjcyLTQuNDItMTguOTItMTIuMDEtMjQuOTlsLTEyOC0xMDIuNHptNTIuMDcgMjE1LjU1YzEuOTggMy4xNS0uMjkgNy4yNC00IDcuMjRoLTM4Ljk0TDMyNCAyNjkuNzljLTEuODUgMi45NS02LjE1IDIuOTUtOCAwbC0yNS4xMi0zOS45OGgtMzguOTRjLTMuNzIgMC01Ljk4LTQuMDktNC03LjI0bDE5LjItMzAuNTYtMTkuMi0zMC41NmMtMS45OC0zLjE1LjI5LTcuMjQgNC03LjI0aDM4Ljk0bDI1LjEyLTQwYzEuODUtMi45NSA2LjE1LTIuOTUgOCAwbDI1LjEyIDM5Ljk4aDM4Ljk1YzMuNzEgMCA1Ljk4IDQuMDkgNCA3LjI0TDM3Mi44NyAxOTJsMTkuMTkgMzAuNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN5bmNBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzcwLjcyIDEzMy4yOEMzMzkuNDU4IDEwNC4wMDggMjk4Ljg4OCA4Ny45NjIgMjU1Ljg0OCA4OGMtNzcuNDU4LjA2OC0xNDQuMzI4IDUzLjE3OC0xNjIuNzkxIDEyNi44NS0xLjM0NCA1LjM2My02LjEyMiA5LjE1LTExLjY1MSA5LjE1SDI0LjEwM2MtNy40OTggMC0xMy4xOTQtNi44MDctMTEuODA3LTE0LjE3NkMzMy45MzMgOTQuOTI0IDEzNC44MTMgOCAyNTYgOGM2Ni40NDggMCAxMjYuNzkxIDI2LjEzNiAxNzEuMzE1IDY4LjY4NUw0NjMuMDMgNDAuOTdDNDc4LjE0OSAyNS44NTEgNTA0IDM2LjU1OSA1MDQgNTcuOTQxVjE5MmMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMzQ1Ljk0MWMtMjEuMzgyIDAtMzIuMDktMjUuODUxLTE2Ljk3MS00MC45NzFsNDEuNzUtNDEuNzQ5ek0zMiAyOTZoMTM0LjA1OWMyMS4zODIgMCAzMi4wOSAyNS44NTEgMTYuOTcxIDQwLjk3MWwtNDEuNzUgNDEuNzVjMzEuMjYyIDI5LjI3MyA3MS44MzUgNDUuMzE5IDExNC44NzYgNDUuMjggNzcuNDE4LS4wNyAxNDQuMzE1LTUzLjE0NCAxNjIuNzg3LTEyNi44NDkgMS4zNDQtNS4zNjMgNi4xMjItOS4xNSAxMS42NTEtOS4xNWg1Ny4zMDRjNy40OTggMCAxMy4xOTQgNi44MDcgMTEuODA3IDE0LjE3NkM0NzguMDY3IDQxNy4wNzYgMzc3LjE4NyA1MDQgMjU2IDUwNGMtNjYuNDQ4IDAtMTI2Ljc5MS0yNi4xMzYtMTcxLjMxNS02OC42ODVMNDguOTcgNDcxLjAzQzMzLjg1MSA0ODYuMTQ5IDggNDc1LjQ0MSA4IDQ1NC4wNTlWMzIwYzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3luYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDAuNjUgMTIuNTdsNCA4Mi43N0EyNDcuMTYgMjQ3LjE2IDAgMCAwIDI1NS44MyA4QzEzNC43MyA4IDMzLjkxIDk0LjkyIDEyLjI5IDIwOS44MkExMiAxMiAwIDAgMCAyNC4wOSAyMjRoNDkuMDVhMTIgMTIgMCAwIDAgMTEuNjctOS4yNiAxNzUuOTEgMTc1LjkxIDAgMCAxIDMxNy01Ni45NGwtMTAxLjQ2LTQuODZhMTIgMTIgMCAwIDAtMTIuNTcgMTJ2NDcuNDFhMTIgMTIgMCAwIDAgMTIgMTJINTAwYTEyIDEyIDAgMCAwIDEyLTEyVjEyYTEyIDEyIDAgMCAwLTEyLTEyaC00Ny4zN2ExMiAxMiAwIDAgMC0xMS45OCAxMi41N3pNMjU1LjgzIDQzMmExNzUuNjEgMTc1LjYxIDAgMCAxLTE0Ni03Ny44bDEwMS44IDQuODdhMTIgMTIgMCAwIDAgMTIuNTctMTJ2LTQ3LjRhMTIgMTIgMCAwIDAtMTItMTJIMTJhMTIgMTIgMCAwIDAtMTIgMTJWNTAwYTEyIDEyIDAgMCAwIDEyIDEyaDQ3LjM1YTEyIDEyIDAgMCAwIDEyLTEyLjZsLTQuMTUtODIuNTdBMjQ3LjE3IDI0Ny4xNyAwIDAgMCAyNTUuODMgNTA0YzEyMS4xMSAwIDIyMS45My04Ni45MiAyNDMuNTUtMjAxLjgyYTEyIDEyIDAgMCAwLTExLjgtMTQuMThoLTQ5LjA1YTEyIDEyIDAgMCAwLTExLjY3IDkuMjZBMTc1Ljg2IDE3NS44NiAwIDAgMSAyNTUuODMgNDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTeXJpbmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwMS41IDE3NC44bDU1LjcgNTUuOGMzLjEgMy4xIDMuMSA4LjIgMCAxMS4zbC0xMS4zIDExLjNjLTMuMSAzLjEtOC4yIDMuMS0xMS4zIDBsLTU1LjctNTUuOC00NS4zIDQ1LjMgNTUuOCA1NS44YzMuMSAzLjEgMy4xIDguMiAwIDExLjNsLTExLjMgMTEuM2MtMy4xIDMuMS04LjIgMy4xLTExLjMgMEwxMTEgMjY1LjJsLTI2LjQgMjYuNGMtMTcuMyAxNy4zLTI1LjYgNDEuMS0yMyA2NS40bDcuMSA2My42TDIuMyA0ODdjLTMuMSAzLjEtMy4xIDguMiAwIDExLjNsMTEuMyAxMS4zYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNjYuMy02Ni4zIDYzLjYgNy4xYzIzLjkgMi42IDQ3LjktNS40IDY1LjQtMjNsMTgxLjktMTgxLjktMTM1LjctMTM1LjctNjQuOSA2NXptMzA4LjItOTMuM0w0MzAuNSAyLjNjLTMuMS0zLjEtOC4yLTMuMS0xMS4zIDBsLTExLjMgMTEuM2MtMy4xIDMuMS0zLjEgOC4yIDAgMTEuM2wyOC4zIDI4LjMtNDUuMyA0NS4zLTU2LjYtNTYuNi0xNy0xN2MtMy4xLTMuMS04LjItMy4xLTExLjMgMGwtMzMuOSAzMy45Yy0zLjEgMy4xLTMuMSA4LjIgMCAxMS4zbDE3IDE3TDQyNC44IDIyM2wxNyAxN2MzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDMzLjktMzRjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNzMuNS03My41IDQ1LjMtNDUuMyAyOC4zIDI4LjNjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwxMS4zLTExLjNjMy4xLTMuMiAzLjEtOC4yIDAtMTEuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFibGVUZW5uaXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2LjIgMjk2LjVDNTI3LjcgMjE4LjcgNTEyIDEyNi4yIDQ0OSA2My4xIDM2NS4xLTIxIDIyOS0yMSAxNDUuMSA2My4xbC01NiA1Ni4xIDIxMS41IDIxMS41YzQ2LjEtNjIuMSAxMzEuNS03Ny40IDE5NS42LTM0LjJ6bS0yMTcuOSA3OS43TDU3LjkgMTU1LjljLTI3LjMgNDUuMy0yMS43IDEwNSAxNy4zIDE0NC4xbDM0LjUgMzQuNkw2LjcgNDI0Yy04LjYgNy41LTkuMSAyMC43LTEgMjguOGw1My40IDUzLjVjOCA4LjEgMjEuMiA3LjYgMjguNy0xTDE3Ny4xIDQwMmwzNS43IDM1LjdjMTkuNyAxOS43IDQ0LjYgMzAuNSA3MC4zIDMzLjMtNy4xLTE3LTExLTM1LjYtMTEtNTUuMS0uMS0xMy44IDIuNS0yNyA2LjItMzkuN3pNNDE2IDMyMGMtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NiA5Ni00MyA5Ni05Ni00My05Ni05Ni05NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDMySDQ4QzIxLjQ5IDMyIDAgNTMuNDkgMCA4MHYzNTJjMCAyNi41MSAyMS40OSA0OCA0OCA0OGg0MTZjMjYuNTEgMCA0OC0yMS40OSA0OC00OFY4MGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4ek0yMjQgNDE2SDY0di05NmgxNjB2OTZ6bTAtMTYwSDY0di05NmgxNjB2OTZ6bTIyNCAxNjBIMjg4di05NmgxNjB2OTZ6bTAtMTYwSDI4OHYtOTZoMTYwdjk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYWJsZXRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDBINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTIyNCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0xNzYtMTA4YzAgNi42LTUuNCAxMi0xMiAxMkg2MGMtNi42IDAtMTItNS40LTEyLTEyVjYwYzAtNi42IDUuNC0xMiAxMi0xMmgzMjhjNi42IDAgMTIgNS40IDEyIDEydjMxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFibGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAwSDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHY0MTZjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0yMjQgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFibGV0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMTkyQzc4LjkgMTkyIDEyLjUgMjUwLjUuMSAzMjYuN2MtLjggNC44IDMuMyA5LjMgOC4zIDkuM2gzMDMuM2M1IDAgOS4xLTQuNSA4LjMtOS4zQzMwNy41IDI1MC41IDI0MS4xIDE5MiAxNjAgMTkyem0xNTEuNiAxNzZIOC40Yy01IDAtOS4xIDQuNS04LjMgOS4zQzEyLjUgNDUzLjUgNzguOSA1MTIgMTYwIDUxMnMxNDcuNS01OC41IDE1OS45LTEzNC43Yy44LTQuOC0zLjMtOS4zLTguMy05LjN6TTU5My40IDQ2LjZjLTU2LjUtNTYuNS0xNDQuMi02MS40LTIwNi45LTE2LTQgMi45LTQuMyA4LjktLjggMTIuM0w1OTcgMjU0LjNjMy41IDMuNSA5LjUgMy4yIDEyLjMtLjggNDUuNS02Mi43IDQwLjYtMTUwLjQtMTUuOS0yMDYuOXpNMzYzIDY1LjdjLTMuNS0zLjUtOS41LTMuMi0xMi4zLjgtNDUuNCA2Mi43LTQwLjUgMTUwLjQgMTUuOSAyMDYuOSA1Ni41IDU2LjUgMTQ0LjIgNjEuNCAyMDYuOSAxNS45IDQtMi45IDQuMy04LjkuOC0xMi4zTDM2MyA2NS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYWNob21ldGVyQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAzMkMxMjguOTQgMzIgMCAxNjAuOTQgMCAzMjBjMCA1Mi44IDE0LjI1IDEwMi4yNiAzOS4wNiAxNDQuOCA1LjYxIDkuNjIgMTYuMyAxNS4yIDI3LjQ0IDE1LjJoNDQzYzExLjE0IDAgMjEuODMtNS41OCAyNy40NC0xNS4yQzU2MS43NSA0MjIuMjYgNTc2IDM3Mi44IDU3NiAzMjBjMC0xNTkuMDYtMTI4Ljk0LTI4OC0yODgtMjg4em0wIDY0YzE0LjcxIDAgMjYuNTggMTAuMTMgMzAuMzIgMjMuNjUtMS4xMSAyLjI2LTIuNjQgNC4yMy0zLjQ1IDYuNjdsLTkuMjIgMjcuNjdjLTUuMTMgMy40OS0xMC45NyA2LjAxLTE3LjY0IDYuMDEtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMlMyNzAuMzMgOTYgMjg4IDk2ek05NiAzODRjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTQ4LTE2MGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMjQ2Ljc3LTcyLjQxbC02MS4zMyAxODRDMzQzLjEzIDM0Ny4zMyAzNTIgMzY0LjU0IDM1MiAzODRjMCAxMS43Mi0zLjM4IDIyLjU1LTguODggMzJIMjMyLjg4Yy01LjUtOS40NS04Ljg4LTIwLjI4LTguODgtMzIgMC0zMy45NCAyNi41LTYxLjQzIDU5LjktNjMuNTlsNjEuMzQtMTg0LjAxYzQuMTctMTIuNTYgMTcuNzMtMTkuNDUgMzAuMzYtMTUuMTcgMTIuNTcgNC4xOSAxOS4zNSAxNy43OSAxNS4xNyAzMC4zNnptMTQuNjYgNTcuMmwxNS41Mi00Ni41NWMzLjQ3LTEuMjkgNy4xMy0yLjIzIDExLjA1LTIuMjMgMTcuNjcgMCAzMiAxNC4zMyAzMiAzMnMtMTQuMzMgMzItMzIgMzJjLTExLjM4LS4wMS0yMC44OS02LjI4LTI2LjU3LTE1LjIyek00ODAgMzg0Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyNTIuMTE4VjQ4QzAgMjEuNDkgMjEuNDkgMCA0OCAwaDIwNC4xMThhNDggNDggMCAwIDEgMzMuOTQxIDE0LjA1OWwyMTEuODgyIDIxMS44ODJjMTguNzQ1IDE4Ljc0NSAxOC43NDUgNDkuMTM3IDAgNjcuODgyTDI5My44MjMgNDk3Ljk0MWMtMTguNzQ1IDE4Ljc0NS00OS4xMzcgMTguNzQ1LTY3Ljg4MiAwTDE0LjA1OSAyODYuMDU5QTQ4IDQ4IDAgMCAxIDAgMjUyLjExOHpNMTEyIDY0Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4czIxLjQ5IDQ4IDQ4IDQ4IDQ4LTIxLjQ5IDQ4LTQ4LTIxLjQ5LTQ4LTQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYWdzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5Ny45NDEgMjI1Ljk0MUwyODYuMDU5IDE0LjA1OUE0OCA0OCAwIDAgMCAyNTIuMTE4IDBINDhDMjEuNDkgMCAwIDIxLjQ5IDAgNDh2MjA0LjExOGE0OCA0OCAwIDAgMCAxNC4wNTkgMzMuOTQxbDIxMS44ODIgMjExLjg4MmMxOC43NDQgMTguNzQ1IDQ5LjEzNiAxOC43NDYgNjcuODgyIDBsMjA0LjExOC0yMDQuMTE4YzE4Ljc0NS0xOC43NDUgMTguNzQ1LTQ5LjEzNyAwLTY3Ljg4MnpNMTEyIDE2MGMtMjYuNTEgMC00OC0yMS40OS00OC00OHMyMS40OS00OCA0OC00OCA0OCAyMS40OSA0OCA0OC0yMS40OSA0OC00OCA0OHptNTEzLjk0MSAxMzMuODIzTDQyMS44MjMgNDk3Ljk0MWMtMTguNzQ1IDE4Ljc0NS00OS4xMzcgMTguNzQ1LTY3Ljg4MiAwbC0uMzYtLjM2TDUyNy42NCAzMjMuNTIyYzE2Ljk5OS0xNi45OTkgMjYuMzYtMzkuNiAyNi4zNi02My42NHMtOS4zNjItNDYuNjQxLTI2LjM2LTYzLjY0TDMzMS4zOTcgMGg0OC43MjFhNDggNDggMCAwIDEgMzMuOTQxIDE0LjA1OWwyMTEuODgyIDIxMS44ODJjMTguNzQ1IDE4Ljc0NSAxOC43NDUgNDkuMTM3IDAgNjcuODgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxOTJjLTM1LjMgMC02NCAyOC43LTY0IDY0czI4LjcgNjQgNjQgNjQgNjQtMjguNyA2NC02NC0yOC43LTY0LTY0LTY0em00MDAgMjI0SDM4MC42YzQxLjUtNDAuNyA2Ny40LTk3LjMgNjcuNC0xNjAgMC0xMjMuNy0xMDAuMy0yMjQtMjI0LTIyNFMwIDEzMi4zIDAgMjU2czEwMC4zIDIyNCAyMjQgMjI0aDQwMGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnptLTQwMC02NGMtNTMgMC05Ni00My05Ni05NnM0My05NiA5Ni05NiA5NiA0MyA5NiA5Ni00MyA5Ni05NiA5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFza3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTM5LjYxIDM1LjVhMTIgMTIgMCAwIDAtMTcgMEw1OC45MyA5OC44MWwtMjIuNy0yMi4xMmExMiAxMiAwIDAgMC0xNyAwTDMuNTMgOTIuNDFhMTIgMTIgMCAwIDAgMCAxN2w0Ny41OSA0Ny40YTEyLjc4IDEyLjc4IDAgMCAwIDE3LjYxIDBsMTUuNTktMTUuNjJMMTU2LjUyIDY5YTEyLjA5IDEyLjA5IDAgMCAwIC4wOS0xN3ptMCAxNTkuMTlhMTIgMTIgMCAwIDAtMTcgMGwtNjMuNjggNjMuNzItMjIuNy0yMi4xYTEyIDEyIDAgMCAwLTE3IDBMMy41MyAyNTJhMTIgMTIgMCAwIDAgMCAxN0w1MSAzMTYuNWExMi43NyAxMi43NyAwIDAgMCAxNy42IDBsMTUuNy0xNS42OSA3Mi4yLTcyLjIyYTEyIDEyIDAgMCAwIC4wOS0xNi45ek02NCAzNjhjLTI2LjQ5IDAtNDguNTkgMjEuNS00OC41OSA0OFMzNy41MyA0NjQgNjQgNDY0YTQ4IDQ4IDAgMCAwIDAtOTZ6bTQzMiAxNkgyMDhhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMjg4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC0zMjBIMjA4YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDI4OGExNiAxNiAwIDAgMCAxNi0xNlY4MGExNiAxNiAwIDAgMC0xNi0xNnptMCAxNjBIMjA4YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDI4OGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRheGkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDYyIDI0MS42NGwtMjItODQuODRjLTkuNi0zNS4yLTQxLjYtNjAuOC03Ni44LTYwLjhIMzUyVjY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJIMTkyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjMyaC0xMS4yYy0zNS4yIDAtNjcuMiAyNS42LTc2LjggNjAuOGwtMjIgODQuODRDMjEuNDEgMjQ4LjA0IDAgMjczLjQ3IDAgMzA0djQ4YzAgMjMuNjMgMTIuOTUgNDQuMDQgMzIgNTUuMTJWNDQ4YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJoMjU2djMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtNDAuODhjMTkuMDUtMTEuMDkgMzItMzEuNSAzMi01NS4xMnYtNDhjMC0zMC41My0yMS40MS01NS45Ni01MC02Mi4zNnpNOTYgMzUyYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0yMC41NS0xMTJsMTcuMi02Ni4zNmMyLjIzLTguMTYgOS41OS0xMy42NCAxNS4wNi0xMy42NGgyMTQuNGM1LjQ3IDAgMTIuODMgNS40OCAxNC44NSAxMi44NkwzOTUuNDUgMjQwaC0yNzguOXpNNDE2IDM1MmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVldGhPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NCAwSDk2QzQyLjk4IDAgMCA0Mi45OCAwIDk2djY0YzAgMzUuMzUgMjguNjYgNjQgNjQgNjRoNTEyYzM1LjM0IDAgNjQtMjguNjUgNjQtNjRWOTZjMC01My4wMi00Mi45OC05Ni05Ni05NnpNMTYwIDE3NmMwIDguODQtNy4xNiAxNi0xNiAxNkg4MGMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTMyYzAtMjYuNTEgMjEuNDktNDggNDgtNDhzNDggMjEuNDkgNDggNDh2MzJ6bTE0NCAwYzAgOC44NC03LjE2IDE2LTE2IDE2aC04MGMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTU2YzAtMzAuOTMgMjUuMDctNTYgNTYtNTZzNTYgMjUuMDcgNTYgNTZ2NTZ6bTE0NCAwYzAgOC44NC03LjE2IDE2LTE2IDE2aC04MGMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTU2YzAtMzAuOTMgMjUuMDctNTYgNTYtNTZzNTYgMjUuMDcgNTYgNTZ2NTZ6bTEyOCAwYzAgOC44NC03LjE2IDE2LTE2IDE2aC02NGMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTMyYzAtMjYuNTEgMjEuNDktNDggNDgtNDhzNDggMjEuNDkgNDggNDh2MzJ6bTAgMTQ0SDY0Yy0zNS4zNCAwLTY0IDI4LjY1LTY0IDY0djMyYzAgNTMuMDIgNDIuOTggOTYgOTYgOTZoNDQ4YzUzLjAyIDAgOTYtNDIuOTggOTYtOTZ2LTMyYzAtMzUuMzUtMjguNjYtNjQtNjQtNjR6bS00MTYgODBjMCAyNi41MS0yMS40OSA0OC00OCA0OHMtNDgtMjEuNDktNDgtNDh2LTMyYzAtOC44NCA3LjE2LTE2IDE2LTE2aDY0YzguODQgMCAxNiA3LjE2IDE2IDE2djMyem0xNDQtOGMwIDMwLjkzLTI1LjA3IDU2LTU2IDU2cy01Ni0yNS4wNy01Ni01NnYtMjRjMC04Ljg0IDcuMTYtMTYgMTYtMTZoODBjOC44NCAwIDE2IDcuMTYgMTYgMTZ2MjR6bTE0NCAwYzAgMzAuOTMtMjUuMDcgNTYtNTYgNTZzLTU2LTI1LjA3LTU2LTU2di0yNGMwLTguODQgNy4xNi0xNiAxNi0xNmg4MGM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYyNHptMTI4IDhjMCAyNi41MS0yMS40OSA0OC00OCA0OHMtNDgtMjEuNDktNDgtNDh2LTMyYzAtOC44NCA3LjE2LTE2IDE2LTE2aDY0YzguODQgMCAxNiA3LjE2IDE2IDE2djMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZWV0aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDQgMEg5NkM0Mi45OCAwIDAgNDIuOTggMCA5NnYzMjBjMCA1My4wMiA0Mi45OCA5NiA5NiA5Nmg0NDhjNTMuMDIgMCA5Ni00Mi45OCA5Ni05NlY5NmMwLTUzLjAyLTQyLjk4LTk2LTk2LTk2ek0xNjAgMzY4YzAgMjYuNTEtMjEuNDkgNDgtNDggNDhzLTQ4LTIxLjQ5LTQ4LTQ4di02NGMwLTguODQgNy4xNi0xNiAxNi0xNmg2NGM4Ljg0IDAgMTYgNy4xNiAxNiAxNnY2NHptMC0xMjhjMCA4Ljg0LTcuMTYgMTYtMTYgMTZIODBjLTguODQgMC0xNi03LjE2LTE2LTE2di02NGMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4czQ4IDIxLjQ5IDQ4IDQ4djY0em0xNDQgMTIwYzAgMzAuOTMtMjUuMDcgNTYtNTYgNTZzLTU2LTI1LjA3LTU2LTU2di01NmMwLTguODQgNy4xNi0xNiAxNi0xNmg4MGM4Ljg0IDAgMTYgNy4xNiAxNiAxNnY1NnptMC0xMjBjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTgwYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtODhjMC0zMC45MyAyNS4wNy01NiA1Ni01NnM1NiAyNS4wNyA1NiA1NnY4OHptMTQ0IDEyMGMwIDMwLjkzLTI1LjA3IDU2LTU2IDU2cy01Ni0yNS4wNy01Ni01NnYtNTZjMC04Ljg0IDcuMTYtMTYgMTYtMTZoODBjOC44NCAwIDE2IDcuMTYgMTYgMTZ2NTZ6bTAtMTIwYzAgOC44NC03LjE2IDE2LTE2IDE2aC04MGMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTg4YzAtMzAuOTMgMjUuMDctNTYgNTYtNTZzNTYgMjUuMDcgNTYgNTZ2ODh6bTEyOCAxMjhjMCAyNi41MS0yMS40OSA0OC00OCA0OHMtNDgtMjEuNDktNDgtNDh2LTY0YzAtOC44NCA3LjE2LTE2IDE2LTE2aDY0YzguODQgMCAxNiA3LjE2IDE2IDE2djY0em0wLTEyOGMwIDguODQtNy4xNiAxNi0xNiAxNmgtNjRjLTguODQgMC0xNi03LjE2LTE2LTE2di02NGMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4czQ4IDIxLjQ5IDQ4IDQ4djY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZW1wZXJhdHVyZUhpZ2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDBjLTUyLjkgMC05NiA0My4xLTk2IDk2czQzLjEgOTYgOTYgOTYgOTYtNDMuMSA5Ni05Ni00My4xLTk2LTk2LTk2em0wIDEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bS0xNjAtMTZDMjU2IDUwLjEgMjA1LjkgMCAxNDQgMFMzMiA1MC4xIDMyIDExMnYxNjYuNUMxMi4zIDMwMy4yIDAgMzM0IDAgMzY4YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0czE0NC02NC41IDE0NC0xNDRjMC0zNC0xMi4zLTY0LjktMzItODkuNVYxMTJ6TTE0NCA0NDhjLTQ0LjEgMC04MC0zNS45LTgwLTgwIDAtMjUuNSAxMi4yLTQ4LjkgMzItNjMuOFYxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHYxOTIuMmMxOS44IDE0LjggMzIgMzguMyAzMiA2My44IDAgNDQuMS0zNS45IDgwLTgwIDgwem0xNi0xMjUuMVYxMTJjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2MjEwLjljLTE4LjYgNi42LTMyIDI0LjItMzIgNDUuMSAwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4YzAtMjAuOS0xMy40LTM4LjUtMzItNDUuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVtcGVyYXR1cmVMb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDBjLTUyLjkgMC05NiA0My4xLTk2IDk2czQzLjEgOTYgOTYgOTYgOTYtNDMuMSA5Ni05Ni00My4xLTk2LTk2LTk2em0wIDEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bS0xNjAtMTZDMjU2IDUwLjEgMjA1LjkgMCAxNDQgMFMzMiA1MC4xIDMyIDExMnYxNjYuNUMxMi4zIDMwMy4yIDAgMzM0IDAgMzY4YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0czE0NC02NC41IDE0NC0xNDRjMC0zNC0xMi4zLTY0LjktMzItODkuNVYxMTJ6TTE0NCA0NDhjLTQ0LjEgMC04MC0zNS45LTgwLTgwIDAtMjUuNSAxMi4yLTQ4LjkgMzItNjMuOFYxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHYxOTIuMmMxOS44IDE0LjggMzIgMzguMyAzMiA2My44IDAgNDQuMS0zNS45IDgwLTgwIDgwem0xNi0xMjUuMVYzMDRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2MTguOWMtMTguNiA2LjYtMzIgMjQuMi0zMiA0NS4xIDAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhjMC0yMC45LTEzLjQtMzguNS0zMi00NS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZW5nZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzIgMTYwSDEyYy02LjYgMC0xMiA1LjQtMTIgMTJ2NTZjMCA2LjYgNS40IDEyIDEyIDEyaDE0MHYyMjhjMCA2LjYgNS40IDEyIDEyIDEyaDU2YzYuNiAwIDEyLTUuNCAxMi0xMlYyNDBoMTQwYzYuNiAwIDEyLTUuNCAxMi0xMnYtNTZjMC02LjYtNS40LTEyLTEyLTEyem0wLTEyOEgxMkM1LjQgMzIgMCAzNy40IDAgNDR2NTZjMCA2LjYgNS40IDEyIDEyIDEyaDM2MGM2LjYgMCAxMi01LjQgMTItMTJWNDRjMC02LjYtNS40LTEyLTEyLTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZXJtaW5hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTcuOTgxIDI3Mi45NzFMNjMuNjM4IDQ2Ny4zMTRjLTkuMzczIDkuMzczLTI0LjU2OSA5LjM3My0zMy45NDEgMEw3LjAyOSA0NDQuNjQ3Yy05LjM1Ny05LjM1Ny05LjM3NS0yNC41MjItLjA0LTMzLjkwMUwxNjEuMDExIDI1NiA2Ljk5IDEwMS4yNTVjLTkuMzM1LTkuMzc5LTkuMzE3LTI0LjU0NC4wNC0zMy45MDFsMjIuNjY3LTIyLjY2N2M5LjM3My05LjM3MyAyNC41NjktOS4zNzMgMzMuOTQxIDBMMjU3Ljk4MSAyMzkuMDNjOS4zNzMgOS4zNzIgOS4zNzMgMjQuNTY4IDAgMzMuOTQxek02NDAgNDU2di0zMmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMzEyYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MzJjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDMwNGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRleHRIZWlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA0IDMySDE2QTE2IDE2IDAgMCAwIDAgNDh2OTZhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyaDU2djMwNEg4MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgxNjBhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2aC00MFYxMTJoNTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6bTI1NiAzMzZoLTQ4VjE0NGg0OGMxNC4zMSAwIDIxLjMzLTE3LjMxIDExLjMxLTI3LjMxbC04MC04MGExNiAxNiAwIDAgMC0yMi42MiAwbC04MCA4MEMzNzkuMzYgMTI2IDM4NC4zNiAxNDQgNDAwIDE0NGg0OHYyMjRoLTQ4Yy0xNC4zMSAwLTIxLjMyIDE3LjMxLTExLjMxIDI3LjMxbDgwIDgwYTE2IDE2IDAgMCAwIDIyLjYyIDBsODAtODBDNTgwLjY0IDM4NiA1NzUuNjQgMzY4IDU2MCAzNjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRleHRXaWR0aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzIgMzJIMTZBMTYgMTYgMCAwIDAgMCA0OHY4MGExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMTZoMTIwdjExMmgtMjRhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMTI4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNmgtMjRWMTEyaDEyMHYxNmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnptLTY4LjY5IDI2MC42OUMzNTQgMjgzLjM2IDMzNiAyODguMzYgMzM2IDMwNHY0OEgxMTJ2LTQ4YzAtMTQuMzEtMTcuMzEtMjEuMzItMjcuMzEtMTEuMzFsLTgwIDgwYTE2IDE2IDAgMCAwIDAgMjIuNjJsODAgODBDOTQgNDg0LjY0IDExMiA0NzkuNjQgMTEyIDQ2NHYtNDhoMjI0djQ4YzAgMTQuMzEgMTcuMzEgMjEuMzMgMjcuMzEgMTEuMzFsODAtODBhMTYgMTYgMCAwIDAgMC0yMi42MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGhMYXJnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTYgMzJoMTkyYzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHYxNjBjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0SDI5NmMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0VjU2YzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNHptLTgwIDBIMjRDMTAuNzQ1IDMyIDAgNDIuNzQ1IDAgNTZ2MTYwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxOTJjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjU2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHpNMCAyOTZ2MTYwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxOTJjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjI5NmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjRjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHptMjk2IDE4NGgxOTJjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjI5NmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjk2Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MTYwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGhMaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0OS4zMzMgMjE2djgwYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgyNGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0di04MGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjRoMTAxLjMzM2MxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR6TTAgMzc2djgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxMDEuMzMzYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtODBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDI0Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR6TTEyNS4zMzMgMzJIMjRDMTAuNzQ1IDMyIDAgNDIuNzQ1IDAgNTZ2ODBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDEwMS4zMzNjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjU2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHptODAgNDQ4SDQ4OGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTgwYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyMDUuMzMzYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2ODBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0em0tMjQtNDI0djgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNEg0ODhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjU2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyMDUuMzMzYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR6bTI0IDI2NEg0ODhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di04MGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjA1LjMzM2MtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ5LjMzMyA1NnY4MGMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMjRjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNFY1NmMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjRoMTAxLjMzM2MxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR6bTE4MS4zMzQgMjQwdi04MGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjA1LjMzM2MtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxMDEuMzMzYzEzLjI1NiAwIDI0LjAwMS0xMC43NDUgMjQuMDAxLTI0em0zMi0yNDB2ODBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0SDQ4OGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWNTZjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDM4Ni42NjdjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHptLTMyIDgwVjU2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyMDUuMzMzYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2ODBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDEwMS4zMzNjMTMuMjU2IDAgMjQuMDAxLTEwLjc0NSAyNC4wMDEtMjR6bS0yMDUuMzM0IDU2SDI0Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2ODBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDEwMS4zMzNjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di04MGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjR6TTAgMzc2djgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxMDEuMzMzYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtODBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDI0Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR6bTM4Ni42NjctNTZINDg4YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtODBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDM4Ni42NjdjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHY4MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjR6bTAgMTYwSDQ4OGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTgwYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgzODYuNjY3Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2ODBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0ek0xODEuMzMzIDM3NnY4MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTAxLjMzM2MxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTgwYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyMDUuMzMzYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRoZWF0ZXJNYXNrcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDYuODYgMjQ1LjE1Yy0zNS44OCAxMC40NS01OS45NSA0MS4yLTU3LjUzIDc0LjEgMTEuNC0xMi43MiAyOC44MS0yMy43IDQ5LjktMzAuOTJsNy42My00My4xOHpNOTUuODEgMjk1TDY0LjA4IDExNS40OWMtLjI5LTEuNjIuMjgtMi42Mi4yNC0yLjY1IDU3Ljc2LTMyLjA2IDEyMy4xMi00OS4wMSAxODkuMDEtNDkuMDEgMS42MSAwIDMuMjMuMTcgNC44NS4xOSAxMy45NS0xMy40NyAzMS43My0yMi44MyA1MS41OS0yNiAxOC44OS0zLjAyIDM4LjA1LTQuNTUgNTcuMTgtNS4zMi05Ljk5LTEzLjk1LTI0LjQ4LTI0LjIzLTQxLjc3LTI3QzMwMS4yNyAxLjg5IDI3Ny4yNCAwIDI1My4zMiAwIDE3Ni42NiAwIDEwMS4wMiAxOS40MiAzMy4yIDU3LjA2IDkuMDMgNzAuNDgtMy45MiA5OC40OCAxLjA1IDEyNi41OGwzMS43MyAxNzkuNTFjMTQuMjMgODAuNTIgMTM2LjMzIDE0Mi4wOCAyMDQuNDUgMTQyLjA4IDMuNTkgMCA2Ljc1LS40NiAxMC4wMS0uOC0xMy41Mi0xNy4wOC0yOC45NC00MC40OC0zOS41LTY3LjU4LTQ3LjYxLTEyLjk4LTEwNi4wNi01MS42Mi0xMTEuOTMtODQuNzl6bTk3LjU1LTEzNy40NmMtLjczLTQuMTItMi4yMy03Ljg3LTQuMDctMTEuNC04LjI1IDguOTEtMjAuNjcgMTUuNzUtMzUuMzIgMTguMzItMTQuNjUgMi41OC0yOC42Ny40LTM5LjQ4LTUuMTctLjUyIDMuOTQtLjY0IDcuOTguMDkgMTIuMSAzLjg0IDIxLjcgMjQuNTggMzYuMTkgNDYuMzQgMzIuMzcgMjEuNzUtMy44MiAzNi4yOC0yNC41MiAzMi40NC00Ni4yMnpNNjA2LjggMTIwLjljLTg4Ljk4LTQ5LjM4LTE5MS40My02Ny40MS0yOTEuOTgtNTEuMzUtMjcuMzEgNC4zNi00OS4wOCAyNi4yNi01NC4wNCA1NC4zNmwtMzEuNzMgMTc5LjUxYy0xNS4zOSA4Ny4wNSA5NS4yOCAxOTYuMjcgMTU4LjMxIDIwNy4zNSA2My4wMyAxMS4wOSAyMDQuNDctNTMuNzkgMjE5Ljg2LTE0MC44NGwzMS43My0xNzkuNTFjNC45Ny0yOC4xMS03Ljk4LTU2LjExLTMyLjE1LTY5LjUyem0tMjczLjI0IDk2LjhjMy44NC0yMS43IDI0LjU4LTM2LjE5IDQ2LjM0LTMyLjM2IDIxLjc2IDMuODMgMzYuMjggMjQuNTIgMzIuNDUgNDYuMjItLjczIDQuMTItMi4yMyA3Ljg3LTQuMDcgMTEuNC04LjI1LTguOTEtMjAuNjctMTUuNzUtMzUuMzItMTguMzItMTQuNjUtMi41OC0yOC42Ny0uNC0zOS40OCA1LjE3LS41My0zLjk1LS42NS03Ljk5LjA4LTEyLjExem03MC40NyAxOTguNzZjLTU1LjY4LTkuNzktOTMuNTItNTkuMjctODkuMDQtMTEyLjkgMjAuNiAyNS41NCA1Ni4yMSA0Ni4xNyA5OS40OSA1My43OCA0My4yOCA3LjYxIDgzLjgyLjM3IDExMS45My0xNi42LTE0LjE4IDUxLjk0LTY2LjcxIDg1LjUxLTEyMi4zOCA3NS43MnptMTMwLjMtMTUxLjM0Yy04LjI1LTguOTEtMjAuNjgtMTUuNzUtMzUuMzMtMTguMzItMTQuNjUtMi41OC0yOC42Ny0uNC0zOS40OCA1LjE3LS41Mi0zLjk0LS42NC03Ljk4LjA5LTEyLjEgMy44NC0yMS43IDI0LjU4LTM2LjE5IDQ2LjM0LTMyLjM3IDIxLjc1IDMuODMgMzYuMjggMjQuNTIgMzIuNDUgNDYuMjItLjczIDQuMTMtMi4yMyA3Ljg4LTQuMDcgMTEuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGhlcm1vbWV0ZXJFbXB0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMzg0YzAgMzUuMzQ2LTI4LjY1NCA2NC02NCA2NHMtNjQtMjguNjU0LTY0LTY0YzAtMzUuMzQ2IDI4LjY1NC02NCA2NC02NHM2NCAyOC42NTQgNjQgNjR6bTMyLTg0LjY1M2MxOS45MTIgMjIuNTYzIDMyIDUyLjE5NCAzMiA4NC42NTMgMCA3MC42OTYtNTcuMzAzIDEyOC0xMjggMTI4LS4yOTkgMC0uNjA5LS4wMDEtLjkwOS0uMDAzQzU2Ljc4OSA1MTEuNTA5LS4zNTcgNDUzLjYzNi4wMDIgMzgzLjMzMy4xNjYgMzUxLjEzNSAxMi4yMjUgMzIxLjc1NSAzMiAyOTkuMzQ3Vjk2YzAtNTMuMDE5IDQyLjk4MS05NiA5Ni05NnM5NiA0Mi45ODEgOTYgOTZ2MjAzLjM0N3pNMjA4IDM4NGMwLTM0LjMzOS0xOS4zNy01Mi4xOS0zMi02Ni41MDJWOTZjMC0yNi40NjctMjEuNTMzLTQ4LTQ4LTQ4UzgwIDY5LjUzMyA4MCA5NnYyMjEuNDk4Yy0xMi43MzIgMTQuNDI4LTMxLjgyNSAzMi4xLTMxLjk5OSA2Ni4wOC0uMjI0IDQzLjg3NiAzNS41NjMgODAuMTE2IDc5LjQyMyA4MC40MkwxMjggNDY0YzQ0LjExMiAwIDgwLTM1Ljg4OCA4MC04MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGhlcm1vbWV0ZXJGdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCA5NmMwLTUzLjAxOS00Mi45ODEtOTYtOTYtOTZTMzIgNDIuOTgxIDMyIDk2djIwMy4zNDdDMTIuMjI1IDMyMS43NTYuMTY2IDM1MS4xMzYuMDAyIDM4My4zMzNjLS4zNTkgNzAuMzAzIDU2Ljc4NyAxMjguMTc2IDEyNy4wODkgMTI4LjY2NC4yOTkuMDAyLjYxLjAwMy45MDkuMDAzIDcwLjY5OCAwIDEyOC01Ny4zMDQgMTI4LTEyOCAwLTMyLjQ1OS0xMi4wODgtNjIuMDktMzItODQuNjUzVjk2em0tOTYgMzY4bC0uNTc2LS4wMDJjLTQzLjg2LS4zMDQtNzkuNjQ3LTM2LjU0NC03OS40MjMtODAuNDIuMTczLTMzLjk4IDE5LjI2Ni01MS42NTIgMzEuOTk5LTY2LjA4Vjk2YzAtMjYuNDY3IDIxLjUzMy00OCA0OC00OHM0OCAyMS41MzMgNDggNDh2MjIxLjQ5OGMxMi42MyAxNC4zMTIgMzIgMzIuMTY0IDMyIDY2LjUwMiAwIDQ0LjExMi0zNS44ODggODAtODAgODB6bTY0LTgwYzAgMzUuMzQ2LTI4LjY1NCA2NC02NCA2NHMtNjQtMjguNjU0LTY0LTY0YzAtMjMuNjg1IDEyLjg3Ni00NC4zNDkgMzItNTUuNDE3Vjk2YzAtMTcuNjczIDE0LjMyNy0zMiAzMi0zMnMzMiAxNC4zMjcgMzIgMzJ2MjMyLjU4M2MxOS4xMjQgMTEuMDY4IDMyIDMxLjczMiAzMiA1NS40MTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRoZXJtb21ldGVySGFsZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMzg0YzAgMzUuMzQ2LTI4LjY1NCA2NC02NCA2NHMtNjQtMjguNjU0LTY0LTY0YzAtMjMuNjg1IDEyLjg3Ni00NC4zNDkgMzItNTUuNDE3VjIyNGMwLTE3LjY3MyAxNC4zMjctMzIgMzItMzJzMzIgMTQuMzI3IDMyIDMydjEwNC41ODNjMTkuMTI0IDExLjA2OCAzMiAzMS43MzIgMzIgNTUuNDE3em0zMi04NC42NTNjMTkuOTEyIDIyLjU2MyAzMiA1Mi4xOTQgMzIgODQuNjUzIDAgNzAuNjk2LTU3LjMwMyAxMjgtMTI4IDEyOC0uMjk5IDAtLjYwOS0uMDAxLS45MDktLjAwM0M1Ni43ODkgNTExLjUwOS0uMzU3IDQ1My42MzYuMDAyIDM4My4zMzMuMTY2IDM1MS4xMzUgMTIuMjI1IDMyMS43NTUgMzIgMjk5LjM0N1Y5NmMwLTUzLjAxOSA0Mi45ODEtOTYgOTYtOTZzOTYgNDIuOTgxIDk2IDk2djIwMy4zNDd6TTIwOCAzODRjMC0zNC4zMzktMTkuMzctNTIuMTktMzItNjYuNTAyVjk2YzAtMjYuNDY3LTIxLjUzMy00OC00OC00OFM4MCA2OS41MzMgODAgOTZ2MjIxLjQ5OGMtMTIuNzMyIDE0LjQyOC0zMS44MjUgMzIuMS0zMS45OTkgNjYuMDgtLjIyNCA0My44NzYgMzUuNTYzIDgwLjExNiA3OS40MjMgODAuNDJMMTI4IDQ2NGM0NC4xMTIgMCA4MC0zNS44ODggODAtODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRoZXJtb21ldGVyUXVhcnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMzg0YzAgMzUuMzQ2LTI4LjY1NCA2NC02NCA2NHMtNjQtMjguNjU0LTY0LTY0YzAtMjMuNjg1IDEyLjg3Ni00NC4zNDkgMzItNTUuNDE3VjI4OGMwLTE3LjY3MyAxNC4zMjctMzIgMzItMzJzMzIgMTQuMzI3IDMyIDMydjQwLjU4M2MxOS4xMjQgMTEuMDY4IDMyIDMxLjczMiAzMiA1NS40MTd6bTMyLTg0LjY1M2MxOS45MTIgMjIuNTYzIDMyIDUyLjE5NCAzMiA4NC42NTMgMCA3MC42OTYtNTcuMzAzIDEyOC0xMjggMTI4LS4yOTkgMC0uNjA5LS4wMDEtLjkwOS0uMDAzQzU2Ljc4OSA1MTEuNTA5LS4zNTcgNDUzLjYzNi4wMDIgMzgzLjMzMy4xNjYgMzUxLjEzNSAxMi4yMjUgMzIxLjc1NSAzMiAyOTkuMzQ3Vjk2YzAtNTMuMDE5IDQyLjk4MS05NiA5Ni05NnM5NiA0Mi45ODEgOTYgOTZ2MjAzLjM0N3pNMjA4IDM4NGMwLTM0LjMzOS0xOS4zNy01Mi4xOS0zMi02Ni41MDJWOTZjMC0yNi40NjctMjEuNTMzLTQ4LTQ4LTQ4UzgwIDY5LjUzMyA4MCA5NnYyMjEuNDk4Yy0xMi43MzIgMTQuNDI4LTMxLjgyNSAzMi4xLTMxLjk5OSA2Ni4wOC0uMjI0IDQzLjg3NiAzNS41NjMgODAuMTE2IDc5LjQyMyA4MC40MkwxMjggNDY0YzQ0LjExMiAwIDgwLTM1Ljg4OCA4MC04MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGhlcm1vbWV0ZXJUaHJlZVF1YXJ0ZXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiAzODRjMCAzNS4zNDYtMjguNjU0IDY0LTY0IDY0LTM1LjM0NiAwLTY0LTI4LjY1NC02NC02NCAwLTIzLjY4NSAxMi44NzYtNDQuMzQ5IDMyLTU1LjQxN1YxNjBjMC0xNy42NzMgMTQuMzI3LTMyIDMyLTMyczMyIDE0LjMyNyAzMiAzMnYxNjguNTgzYzE5LjEyNCAxMS4wNjggMzIgMzEuNzMyIDMyIDU1LjQxN3ptMzItODQuNjUzYzE5LjkxMiAyMi41NjMgMzIgNTIuMTk0IDMyIDg0LjY1MyAwIDcwLjY5Ni01Ny4zMDMgMTI4LTEyOCAxMjgtLjI5OSAwLS42MDktLjAwMS0uOTA5LS4wMDNDNTYuNzg5IDUxMS41MDktLjM1NyA0NTMuNjM2LjAwMiAzODMuMzMzLjE2NiAzNTEuMTM1IDEyLjIyNSAzMjEuNzU1IDMyIDI5OS4zNDdWOTZjMC01My4wMTkgNDIuOTgxLTk2IDk2LTk2czk2IDQyLjk4MSA5NiA5NnYyMDMuMzQ3ek0yMDggMzg0YzAtMzQuMzM5LTE5LjM3LTUyLjE5LTMyLTY2LjUwMlY5NmMwLTI2LjQ2Ny0yMS41MzMtNDgtNDgtNDhTODAgNjkuNTMzIDgwIDk2djIyMS40OThjLTEyLjczMiAxNC40MjgtMzEuODI1IDMyLjEtMzEuOTk5IDY2LjA4LS4yMjQgNDMuODc2IDM1LjU2MyA4MC4xMTYgNzkuNDIzIDgwLjQyTDEyOCA0NjRjNDQuMTEyIDAgODAtMzUuODg4IDgwLTgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaGVybW9tZXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzYuOCAyMC40Yy0zNy41LTMwLjctOTUuNS0yNi4zLTEzMS45IDEwLjJsLTQ1LjcgNDYgNTAuNSA1MC41YzMuMSAzLjEgMy4xIDguMiAwIDExLjNsLTExLjMgMTEuM2MtMy4xIDMuMS04LjIgMy4xLTExLjMgMGwtNTAuNC01MC41LTQ1LjEgNDUuNCA1MC4zIDUwLjRjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM2wtMTEuMyAxMS4zYy0zLjEgMy4xLTguMiAzLjEtMTEuMyAwTDIwOSAxNjcuNGwtNDUuMSA0NS40TDIxNCAyNjNjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM2wtMTEuMyAxMS4zYy0zLjEgMy4xLTguMiAzLjEtMTEuMyAwbC01MC4xLTUwLjJMOTYgMjgxLjFWMzgyTDcgNDcxYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOSA5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw4OS04OWg5OS45TDQ4NCAxNjIuNmMzNC45LTM0LjkgNDIuMi0xMDEuNS03LjItMTQyLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRodW1ic0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA1NnYyNDBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDgwYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFY1NmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjRDMTAuNzQ1IDMyIDAgNDIuNzQ1IDAgNTZ6bTQwIDIwMGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjRzMjQgMTAuNzQ1IDI0IDI0LTEwLjc0NSAyNC0yNCAyNC0yNC0xMC43NDUtMjQtMjR6bTI3MiAyNTZjLTIwLjE4MyAwLTI5LjQ4NS0zOS4yOTMtMzMuOTMxLTU3Ljc5NS01LjIwNi0yMS42NjYtMTAuNTg5LTQ0LjA3LTI1LjM5My01OC45MDItMzIuNDY5LTMyLjUyNC00OS41MDMtNzMuOTY3LTg5LjExNy0xMTMuMTExYTExLjk4IDExLjk4IDAgMCAxLTMuNTU4LTguNTIxVjU5LjkwMWMwLTYuNTQxIDUuMjQzLTExLjg3OCAxMS43ODMtMTEuOTk4IDE1LjgzMS0uMjkgMzYuNjk0LTkuMDc5IDUyLjY1MS0xNi4xNzhDMjU2LjE4OSAxNy41OTggMjk1LjcwOS4wMTcgMzQzLjk5NSAwaDIuODQ0YzQyLjc3NyAwIDkzLjM2My40MTMgMTEzLjc3NCAyOS43MzcgOC4zOTIgMTIuMDU3IDEwLjQ0NiAyNy4wMzQgNi4xNDggNDQuNjMyIDE2LjMxMiAxNy4wNTMgMjUuMDYzIDQ4Ljg2MyAxNi4zODIgNzQuNzU3IDE3LjU0NCAyMy40MzIgMTkuMTQzIDU2LjEzMiA5LjMwOCA3OS40NjlsLjExLjExYzExLjg5MyAxMS45NDkgMTkuNTIzIDMxLjI1OSAxOS40MzkgNDkuMTk3LS4xNTYgMzAuMzUyLTI2LjE1NyA1OC4wOTgtNTkuNTUzIDU4LjA5OEgzNTAuNzIzQzM1OC4wMyAzNjQuMzQgMzg0IDM4OC4xMzIgMzg0IDQzMC41NDggMzg0IDUwNCAzMzYgNTEyIDMxMiA1MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRodW1ic1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwNCAyMjRIMjRjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYyNDBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDgwYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYyNDhjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0ek02NCA0NzJjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNHMxMC43NDUtMjQgMjQtMjQgMjQgMTAuNzQ1IDI0IDI0LTEwLjc0NSAyNC0yNCAyNHpNMzg0IDgxLjQ1MmMwIDQyLjQxNi0yNS45NyA2Ni4yMDgtMzMuMjc3IDk0LjU0OGgxMDEuNzIzYzMzLjM5NyAwIDU5LjM5NyAyNy43NDYgNTkuNTUzIDU4LjA5OC4wODQgMTcuOTM4LTcuNTQ2IDM3LjI0OS0xOS40MzkgNDkuMTk3bC0uMTEuMTFjOS44MzYgMjMuMzM3IDguMjM3IDU2LjAzNy05LjMwOCA3OS40NjkgOC42ODEgMjUuODk1LS4wNjkgNTcuNzA0LTE2LjM4MiA3NC43NTcgNC4yOTggMTcuNTk4IDIuMjQ0IDMyLjU3NS02LjE0OCA0NC42MzJDNDQwLjIwMiA1MTEuNTg3IDM4OS42MTYgNTEyIDM0Ni44MzkgNTEybC0yLjg0NS0uMDAxYy00OC4yODctLjAxNy04Ny44MDYtMTcuNTk4LTExOS41Ni0zMS43MjUtMTUuOTU3LTcuMDk5LTM2LjgyMS0xNS44ODctNTIuNjUxLTE2LjE3OC02LjU0LS4xMi0xMS43ODMtNS40NTctMTEuNzgzLTExLjk5OHYtMjEzLjc3YzAtMy4yIDEuMjgyLTYuMjcxIDMuNTU4LTguNTIxIDM5LjYxNC0zOS4xNDQgNTYuNjQ4LTgwLjU4NyA4OS4xMTctMTEzLjExMSAxNC44MDQtMTQuODMyIDIwLjE4OC0zNy4yMzYgMjUuMzkzLTU4LjkwMkMyODIuNTE1IDM5LjI5MyAyOTEuODE3IDAgMzEyIDBjMjQgMCA3MiA4IDcyIDgxLjQ1MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGh1bWJ0YWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5OC4wMjggMjE0LjI2N0wyODUuNzkzIDk2SDMyOGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMjRjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDU2QzQyLjc0NSAwIDMyIDEwLjc0NSAzMiAyNHY0OGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoNDIuMjA3TDg1Ljk3MiAyMTQuMjY3QzM3LjQ2NSAyMzYuODIgMCAyNzcuMjYxIDAgMzI4YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxMzZ2MTA0LjAwN2MwIDEuMjQyLjI4OSAyLjQ2Ny44NDUgMy41NzhsMjQgNDhjMi45NDEgNS44ODIgMTEuMzY0IDUuODkzIDE0LjMxMSAwbDI0LTQ4YTguMDA4IDguMDA4IDAgMCAwIC44NDUtMy41NzhWMzUyaDEzNmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjQtLjAwMS01MS4xODMtMzcuOTgzLTkxLjQyLTg1Ljk3My0xMTMuNzMzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaWNrZXRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDE2MGgzMjB2MTkySDEyOFYxNjB6bTQwMCA5NmMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4djk2YzAgMjYuNTEtMjEuNDkgNDgtNDggNDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDh2LTk2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhzLTIxLjQ5LTQ4LTQ4LTQ4di05NmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDQ4MGMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4djk2Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4em0tNDgtMTA0YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgxMjBjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYyMDhjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDMzNmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaW1lc0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4em0xMjEuNiAzMTMuMWM0LjcgNC43IDQuNyAxMi4zIDAgMTdMMzM4IDM3Ny42Yy00LjcgNC43LTEyLjMgNC43LTE3IDBMMjU2IDMxMmwtNjUuMSA2NS42Yy00LjcgNC43LTEyLjMgNC43LTE3IDBMMTM0LjQgMzM4Yy00LjctNC43LTQuNy0xMi4zIDAtMTdsNjUuNi02NS02NS42LTY1LjFjLTQuNy00LjctNC43LTEyLjMgMC0xN2wzOS42LTM5LjZjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDY1IDY1LjcgNjUuMS02NS42YzQuNy00LjcgMTIuMy00LjcgMTcgMGwzOS42IDM5LjZjNC43IDQuNyA0LjcgMTIuMyAwIDE3TDMxMiAyNTZsNjUuNiA2NS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaW1lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzUyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDIuNzIgMjU2bDEwMC4wNy0xMDAuMDdjMTIuMjgtMTIuMjggMTIuMjgtMzIuMTkgMC00NC40OGwtMjIuMjQtMjIuMjRjLTEyLjI4LTEyLjI4LTMyLjE5LTEyLjI4LTQ0LjQ4IDBMMTc2IDE4OS4yOCA3NS45MyA4OS4yMWMtMTIuMjgtMTIuMjgtMzIuMTktMTIuMjgtNDQuNDggMEw5LjIxIDExMS40NWMtMTIuMjggMTIuMjgtMTIuMjggMzIuMTkgMCA0NC40OEwxMDkuMjggMjU2IDkuMjEgMzU2LjA3Yy0xMi4yOCAxMi4yOC0xMi4yOCAzMi4xOSAwIDQ0LjQ4bDIyLjI0IDIyLjI0YzEyLjI4IDEyLjI4IDMyLjIgMTIuMjggNDQuNDggMEwxNzYgMzIyLjcybDEwMC4wNyAxMDAuMDdjMTIuMjggMTIuMjggMzIuMiAxMi4yOCA0NC40OCAwbDIyLjI0LTIyLjI0YzEyLjI4LTEyLjI4IDEyLjI4LTMyLjE5IDAtNDQuNDhMMjQyLjcyIDI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGludFNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzMy44MiA0NTguMUw0OTQuOTcgMzUwLjc4Yy41Mi01LjU3IDEuMDMtMTEuMTYgMS4wMy0xNi44NyAwLTExMS43Ni05OS43OS0xNTMuMzQtMTQ2Ljc4LTMxMS44Mi03Ljk0LTI4Ljc4LTQ5LjQ0LTMwLjEyLTU4LjQ0IDAtMTUuNTIgNTIuMzQtMzYuODcgOTEuOTYtNTguNDkgMTI1LjY4TDQ1LjQ3IDMuMzdDMzguNDktMi4wNSAyOC40My0uOCAyMy4wMSA2LjE4TDMuMzcgMzEuNDVDLTIuMDUgMzguNDItLjggNDguNDcgNi4xOCA1My45bDU4OC4zNiA0NTQuNzNjNi45OCA1LjQzIDE3LjAzIDQuMTcgMjIuNDYtMi44MWwxOS42NC0yNS4yN2M1LjQxLTYuOTcgNC4xNi0xNy4wMi0yLjgyLTIyLjQ1ek0xNDQgMzMzLjkxQzE0NCA0MzIuMzUgMjIyLjcyIDUxMiAzMjAgNTEyYzQ0LjcxIDAgODUuMzctMTYuOTYgMTE2LjQtNDQuN0wxNjIuNzIgMjU1Ljc4Yy0xMS40MSAyMy41LTE4LjcyIDQ4LjM1LTE4LjcyIDc4LjEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzNTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwNS4yMiAyMi4wOWMtNy45NC0yOC43OC00OS40NC0zMC4xMi01OC40NCAwQzEwMC4wMSAxNzkuODUgMCAyMjIuNzIgMCAzMzMuOTEgMCA0MzIuMzUgNzguNzIgNTEyIDE3NiA1MTJzMTc2LTc5LjY1IDE3Ni0xNzguMDljMC0xMTEuNzUtOTkuNzktMTUzLjM0LTE0Ni43OC0zMTEuODJ6TTE3NiA0NDhjLTYxLjc1IDAtMTEyLTUwLjI1LTExMi0xMTIgMC04Ljg0IDcuMTYtMTYgMTYtMTZzMTYgNy4xNiAxNiAxNmMwIDQ0LjExIDM1Ljg5IDgwIDgwIDgwIDguODQgMCAxNiA3LjE2IDE2IDE2cy03LjE2IDE2LTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaXJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0zMy44IDE4OS43bDgwLTQ4YzExLjYtNi45IDI0IDcuNyAxNS40IDE4TDM0My42IDIwOGwzMy42IDQwLjNjOC43IDEwLjQtMy45IDI0LjgtMTUuNCAxOGwtODAtNDhjLTcuNy00LjctNy43LTE1LjkgMC0yMC42em0tMTYzLTMwYy04LjYtMTAuMyAzLjgtMjQuOSAxNS40LTE4bDgwIDQ4YzcuOCA0LjcgNy44IDE1LjkgMCAyMC42bC04MCA0OGMtMTEuNSA2LjgtMjQtNy42LTE1LjQtMThsMzMuNi00MC4zLTMzLjYtNDAuM3pNMjQ4IDI4OGM1MS45IDAgMTE1LjMgNDMuOCAxMjMuMiAxMDYuNyAxLjcgMTMuNi04IDI0LjYtMTcuNyAyMC40LTI1LjktMTEuMS02NC40LTE3LjQtMTA1LjUtMTcuNHMtNzkuNiA2LjMtMTA1LjUgMTcuNGMtOS44IDQuMi0xOS40LTctMTcuNy0yMC40QzEzMi43IDMzMS44IDE5Ni4xIDI4OCAyNDggMjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb2dnbGVPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDY0SDE5MkM4NS45NjEgNjQgMCAxNDkuOTYxIDAgMjU2czg1Ljk2MSAxOTIgMTkyIDE5MmgxOTJjMTA2LjAzOSAwIDE5Mi04NS45NjEgMTkyLTE5MlM0OTAuMDM5IDY0IDM4NCA2NHpNNjQgMjU2YzAtNzAuNzQxIDU3LjI0OS0xMjggMTI4LTEyOCA3MC43NDEgMCAxMjggNTcuMjQ5IDEyOCAxMjggMCA3MC43NDEtNTcuMjQ5IDEyOC0xMjggMTI4LTcwLjc0MSAwLTEyOC01Ny4yNDktMTI4LTEyOHptMzIwIDEyOGgtNDguOTA1YzY1LjIxNy03Mi44NTggNjUuMjM2LTE4My4xMiAwLTI1NkgzODRjNzAuNzQxIDAgMTI4IDU3LjI0OSAxMjggMTI4IDAgNzAuNzQtNTcuMjQ5IDEyOC0xMjggMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb2dnbGVPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgNjRIMTkyQzg2IDY0IDAgMTUwIDAgMjU2czg2IDE5MiAxOTIgMTkyaDE5MmMxMDYgMCAxOTItODYgMTkyLTE5MlM0OTAgNjQgMzg0IDY0em0wIDMyMGMtNzAuOCAwLTEyOC01Ny4zLTEyOC0xMjggMC03MC44IDU3LjMtMTI4IDEyOC0xMjggNzAuOCAwIDEyOCA1Ny4zIDEyOCAxMjggMCA3MC44LTU3LjMgMTI4LTEyOCAxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRvaWxldFBhcGVyU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQsMTkyVjM2NC4xM2MwLDQxLjEyLTkuNzUsNjIuNzUtMzEuMTIsMTI2Ljg3QTE2LDE2LDAsMCwwLDQ4LDUxMkgzMjguODZhMzEuODcsMzEuODcsMCwwLDAsMzAuMzgtMjEuODdjOS4zMS0yNy44MywxOC01My4zNSwyMi4xOC04NS41NWwtMzE2LTI0NC4yNUM2NC41MywxNzAuNjYsNjQsMTgxLjE5LDY0LDE5MlpNNjMzLjgyLDQ1OC4wOWwtMTAyLTc4LjgxQzU3NS4yOCwzNjAuOTEsNjA4LDI4NC4zMiw2MDgsMTkyLDYwOCw4Niw1NjUsMCw1MTIsMHMtOTYsODYtOTYsMTkyYzAsNDIsNyw4MC40LDE4LjQzLDExMkwzODQsMjY1VjE5MmMwLTgzLjYyLDIzLjYzLTE1My41LDYwLjUtMTkySDE2MGMtMjMuMzMsMC00NC42MywxNi44My02MS4yNiw0NC41M0w0NS40NiwzLjM4QTE2LDE2LDAsMCwwLDIzLDYuMTlMMy4zNywzMS40NUExNiwxNiwwLDAsMCw2LjE4LDUzLjkxTDU5NC41NCw1MDguNjNBMTYsMTYsMCwwLDAsNjE3LDUwNS44MWwxOS42NC0yNS4yNkExNiwxNiwwLDAsMCw2MzMuODIsNDU4LjA5Wk01MTIsMjU2Yy0xNy42MywwLTMyLTI4LjYyLTMyLTY0czE0LjM3LTY0LDMyLTY0LDMyLDI4LjYzLDMyLDY0UzUyOS42MiwyNTYsNTEyLDI1NlpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVG9pbGV0UGFwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDBDNzQuOTggMCAzMiA4NS45NiAzMiAxOTJ2MTcyLjA3YzAgNDEuMTItOS44IDYyLjc3LTMxLjE3IDEyNi44N0MtMi42MiA1MDEuMyA1LjA5IDUxMiAxNi4wMSA1MTJoMjgwLjkyYzEzLjc3IDAgMjYtOC44MSAzMC4zNi0yMS44OCAxMi44My0zOC40OCAyNC43MS03Mi40IDI0LjcxLTEyNi4wNVYxOTJjMC04My42IDIzLjY3LTE1My41MiA2MC40NC0xOTJIMTI4ek05NiAyMjRjLTguODQgMC0xNi03LjE2LTE2LTE2czcuMTYtMTYgMTYtMTYgMTYgNy4xNiAxNiAxNi03LjE2IDE2LTE2IDE2em02NCAwYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnM3LjE2LTE2IDE2LTE2IDE2IDcuMTYgMTYgMTYtNy4xNiAxNi0xNiAxNnptNjQgMGMtOC44NCAwLTE2LTcuMTYtMTYtMTZzNy4xNi0xNiAxNi0xNiAxNiA3LjE2IDE2IDE2LTcuMTYgMTYtMTYgMTZ6bTY0IDBjLTguODQgMC0xNi03LjE2LTE2LTE2czcuMTYtMTYgMTYtMTYgMTYgNy4xNiAxNiAxNi03LjE2IDE2LTE2IDE2ek00ODAgMGMtNTMuMDIgMC05NiA4NS45Ni05NiAxOTJzNDIuOTggMTkyIDk2IDE5MiA5Ni04NS45NiA5Ni0xOTJTNTMzLjAyIDAgNDgwIDB6bTAgMjU2Yy0xNy42NyAwLTMyLTI4LjY1LTMyLTY0czE0LjMzLTY0IDMyLTY0IDMyIDI4LjY1IDMyIDY0LTE0LjMzIDY0LTMyIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb2lsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY4IDQ4YzguOCAwIDE2LTcuMiAxNi0xNlYxNmMwLTguOC03LjItMTYtMTYtMTZIMTZDNy4yIDAgMCA3LjIgMCAxNnYxNmMwIDguOCA3LjIgMTYgMTYgMTZoMTZ2MTU2LjdDMTEuOCAyMTQuOCAwIDIyNi45IDAgMjQwYzAgNjcuMiAzNC42IDEyNi4yIDg2LjggMTYwLjVsLTIxLjQgNzAuMkM1OS4xIDQ5MS4yIDc0LjUgNTEyIDk2IDUxMmgxOTJjMjEuNSAwIDM2LjktMjAuOCAzMC42LTQxLjNsLTIxLjQtNzAuMkMzNDkuNCAzNjYuMiAzODQgMzA3LjIgMzg0IDI0MGMwLTEzLjEtMTEuOC0yNS4yLTMyLTM1LjNWNDhoMTZ6TTgwIDcyYzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4SDg4Yy00LjQgMC04LTMuNi04LThWNzJ6bTExMiAyMDBjLTc3LjEgMC0xMzkuNi0xNC4zLTEzOS42LTMyczYyLjUtMzIgMTM5LjYtMzIgMTM5LjYgMTQuMyAxMzkuNiAzMi02Mi41IDMyLTEzOS42IDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb29sYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMi42MyAyMTQuNjNsLTQ1LjI1LTQ1LjI1Yy02LTYtMTQuMTQtOS4zNy0yMi42My05LjM3SDM4NFY4MGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4SDE3NmMtMjYuNTEgMC00OCAyMS40OS00OCA0OHY4MEg3Ny4yNWMtOC40OSAwLTE2LjYyIDMuMzctMjIuNjMgOS4zN0w5LjM3IDIxNC42M2MtNiA2LTkuMzcgMTQuMTQtOS4zNyAyMi42M1YzMjBoMTI4di0xNmMwLTguODQgNy4xNi0xNiAxNi0xNmgzMmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYxNmgxMjh2LTE2YzAtOC44NCA3LjE2LTE2IDE2LTE2aDMyYzguODQgMCAxNiA3LjE2IDE2IDE2djE2aDEyOHYtODIuNzVjMC04LjQ4LTMuMzctMTYuNjItOS4zNy0yMi42MnpNMzIwIDE2MEgxOTJWOTZoMTI4djY0em02NCAyMDhjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTMyYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtMTZIMTkydjE2YzAgOC44NC03LjE2IDE2LTE2IDE2aC0zMmMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTE2SDB2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg0NDhjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtOTZIMzg0djE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb29scyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDEuMSAzOTUuN0wzODQgMjc4LjZjLTIzLjEtMjMuMS01Ny42LTI3LjYtODUuNC0xMy45TDE5MiAxNTguMVY5Nkw2NCAwIDAgNjRsOTYgMTI4aDYyLjFsMTA2LjYgMTA2LjZjLTEzLjYgMjcuOC05LjIgNjIuMyAxMy45IDg1LjRsMTE3LjEgMTE3LjFjMTQuNiAxNC42IDM4LjIgMTQuNiA1Mi43IDBsNTIuNy01Mi43YzE0LjUtMTQuNiAxNC41LTM4LjIgMC01Mi43ek0zMzEuNyAyMjVjMjguMyAwIDU0LjkgMTEgNzQuOSAzMWwxOS40IDE5LjRjMTUuOC02LjkgMzAuOC0xNi41IDQzLjgtMjkuNSAzNy4xLTM3LjEgNDkuNy04OS4zIDM3LjktMTM2LjctMi4yLTktMTMuNS0xMi4xLTIwLjEtNS41bC03NC40IDc0LjQtNjcuOS0xMS4zTDMzNCA5OC45bDc0LjQtNzQuNGM2LjYtNi42IDMuNC0xNy45LTUuNy0yMC4yLTQ3LjQtMTEuNy05OS42LjktMTM2LjYgMzcuOS0yOC41IDI4LjUtNDEuOSA2Ni4xLTQxLjIgMTAzLjZsODIuMSA4Mi4xYzguMS0xLjkgMTYuNS0yLjkgMjQuNy0yLjl6bS0xMDMuOSA4MmwtNTYuNy01Ni43TDE4LjcgNDAyLjhjLTI1IDI1LTI1IDY1LjUgMCA5MC41czY1LjUgMjUgOTAuNSAwbDEyMy42LTEyMy42Yy03LjYtMTkuOS05LjktNDEuNi01LTYyLjd6TTY0IDQ3MmMtMTMuMiAwLTI0LTEwLjgtMjQtMjQgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDEzLjItMTAuNyAyNC0yNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVG9vdGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQzLjk4IDk2LjI1Yy0xMS4wMS00NS4yMi00Ny4xMS04Mi4wNi05Mi4wMS05My43Mi0zMi4xOS04LjM2LTYzIDUuMS04OS4xNCAyNC4zMy0zLjI1IDIuMzktNi45NiAzLjczLTEwLjUgNS40OGwyOC4zMiAxOC4yMWM3LjQyIDQuNzcgOS41OCAxNC42NyA0LjggMjIuMTEtNC40NiA2Ljk1LTE0LjI3IDkuODYtMjIuMTEgNC44TDE2Mi44MyAxMi44NGMtMjAuNy0xMC44NS00My4zOC0xNi40LTY2LjgxLTEwLjMxLTQ0LjkgMTEuNjctODEgNDguNS05Mi4wMSA5My43Mi0xMC4xMyA0MS42Mi0uNDIgODAuODEgMjEuNSAxMTAuNDMgMjMuMzYgMzEuNTcgMzIuNjggNjguNjYgMzYuMjkgMTA3LjM1IDQuNCA0Ny4xNiAxMC4zMyA5NC4xNiAyMC45NCAxNDAuMzJsNy44IDMzLjk1YzMuMTkgMTMuODcgMTUuNDkgMjMuNyAyOS42NyAyMy43IDEzLjk3IDAgMjYuMTUtOS41NSAyOS41NC0yMy4xNmwzNC40Ny0xMzguNDJjNC41Ni0xOC4zMiAyMC45Ni0zMS4xNiAzOS43Ni0zMS4xNnMzNS4yIDEyLjg1IDM5Ljc2IDMxLjE2bDM0LjQ3IDEzOC40MmMzLjM5IDEzLjYxIDE1LjU3IDIzLjE2IDI5LjU0IDIzLjE2IDE0LjE4IDAgMjYuNDgtOS44MyAyOS42Ny0yMy43bDcuOC0zMy45NWMxMC42MS00Ni4xNSAxNi41My05My4xNiAyMC45NC0xNDAuMzIgMy42MS0zOC43IDEyLjkzLTc1Ljc4IDM2LjI5LTEwNy4zNSAyMS45NS0yOS42MSAzMS42Ni02OC44IDIxLjUzLTExMC40M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVG9yYWggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwLjA1IDM2Ni40OGwxNy43Mi0yOS42NGgtMzUuNDZ6bTk5LjIxLTE2NkgzODIuNGwxOC40NiAzMC44MnpNNDggMEMyMS40OSAwIDAgMTQuMzMgMCAzMnY0NDhjMCAxNy42NyAyMS40OSAzMiA0OCAzMnM0OC0xNC4zMyA0OC0zMlYzMkM5NiAxNC4zMyA3NC41MSAwIDQ4IDB6bTE3Mi43NCAzMTEuNWgzNi44NWwtMTguNDYtMzAuODJ6bTE2MS43MSAwaDM2Ljg2bC0xOC40NS0zMC44ek0xMjggNDY0aDM4NFY0OEgxMjh6bTY2Ljc3LTI3OC4xM2EyMS4yMiAyMS4yMiAwIDAgMSAxOC40OC0xMC43MWg1OS40NWwyOS4xMy00OC43MWEyMS4xMyAyMS4xMyAwIDAgMSAxOC4yMi0xMC4zN0EyMC43NiAyMC43NiAwIDAgMSAzMzggMTI2LjI5bDI5LjI1IDQ4Ljg2aDU5LjUyYTIxLjEyIDIxLjEyIDAgMCAxIDE4LjEgMzJMNDE1LjYzIDI1NiA0NDUgMzA1YTIwLjY5IDIwLjY5IDAgMCAxIC4yNCAyMS4xMiAyMS4yNSAyMS4yNSAwIDAgMS0xOC40OCAxMC43MmgtNTkuNDdsLTI5LjEzIDQ4LjdhMjEuMTMgMjEuMTMgMCAwIDEtMTguMTYgMTAuNCAyMC43OSAyMC43OSAwIDAgMS0xOC0xMC4yMmwtMjkuMjUtNDguODhoLTU5LjVhMjEuMTEgMjEuMTEgMCAwIDEtMTguMS0zMkwyMjQuMzYgMjU2IDE5NSAyMDdhMjAuNyAyMC43IDAgMCAxLS4yMy0yMS4xM3pNNTkyIDBjLTI2LjUxIDAtNDggMTQuMzMtNDggMzJ2NDQ4YzAgMTcuNjcgMjEuNDkgMzIgNDggMzJzNDgtMTQuMzMgNDgtMzJWMzJjMC0xNy42Ny0yMS40OS0zMi00OC0zMnpNMzIwIDE0NS41M2wtMTcuNzggMjkuNjJoMzUuNDZ6bS02Mi40NSA1NWgtMzYuODFsMTguNDQgMzAuOHptMjkuNTggMTExaDY1Ljc5TDM4Ni4wOSAyNTZsLTMzLjIzLTU1LjUyaC02NS43OUwyNTMuOSAyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRvcmlpR2F0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzYuNDUgMzJoLTI0MC45QTMwMy4xNyAzMDMuMTcgMCAwIDEgMCAwdjk2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJ2NjRIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4djI0MGMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYyNTZoMjU2djI0MGMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYyNTZoNDhjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2aC00OHYtNjRoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYwYTMwMy4xNyAzMDMuMTcgMCAwIDEtMTM1LjU1IDMyek0xMjggMTI4aDk2djY0aC05NnYtNjR6bTI1NiA2NGgtOTZ2LTY0aDk2djY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFjdG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyOCAzMzZjLTQ4LjYgMC04OCAzOS40LTg4IDg4czM5LjQgODggODggODggODgtMzkuNCA4OC04OC0zOS40LTg4LTg4LTg4em0wIDExMmMtMTMuMjMgMC0yNC0xMC43Ny0yNC0yNHMxMC43Ny0yNCAyNC0yNCAyNCAxMC43NyAyNCAyNC0xMC43NyAyNC0yNCAyNHptODAtMjg4aC02NHYtNDAuMmMwLTE0LjEyIDQuNy0yNy43NiAxMy4xNS0zOC44NCA0LjQyLTUuOCAzLjU1LTE0LjA2LTEuMzItMTkuNDlMNTM0LjIgMzcuM2MtNi42Ni03LjQ1LTE4LjMyLTYuOTItMjQuNy43OEM0OTAuNTggNjAuOSA0ODAgODkuODEgNDgwIDExOS44VjE2MEgzNzcuNjdMMzIxLjU4IDI5LjE0QTQ3LjkxNCA0Ny45MTQgMCAwIDAgMjc3LjQ1IDBIMTQ0Yy0yNi40NyAwLTQ4IDIxLjUzLTQ4IDQ4djE0Ni41MmMtOC42My02LjczLTIwLjk2LTYuNDYtMjguODkgMS40N0wzNiAyMjcuMWMtOC41OSA4LjU5LTguNTkgMjIuNTIgMCAzMS4xMWw1LjA2IDUuMDZjLTQuOTkgOS4yNi04Ljk2IDE4LjgyLTExLjkxIDI4LjcySDIyYy0xMi4xNSAwLTIyIDkuODUtMjIgMjJ2NDRjMCAxMi4xNSA5Ljg1IDIyIDIyIDIyaDcuMTRjMi45NiA5LjkxIDYuOTIgMTkuNDYgMTEuOTEgMjguNzNsLTUuMDYgNS4wNmMtOC41OSA4LjU5LTguNTkgMjIuNTIgMCAzMS4xMUw2Ny4xIDQ3NmM4LjU5IDguNTkgMjIuNTIgOC41OSAzMS4xMSAwbDUuMDYtNS4wNmM5LjI2IDQuOTkgMTguODIgOC45NiAyOC43MiAxMS45MVY0OTBjMCAxMi4xNSA5Ljg1IDIyIDIyIDIyaDQ0YzEyLjE1IDAgMjItOS44NSAyMi0yMnYtNy4xNGM5LjktMi45NSAxOS40Ni02LjkyIDI4LjcyLTExLjkxbDUuMDYgNS4wNmM4LjU5IDguNTkgMjIuNTIgOC41OSAzMS4xMSAwbDMxLjExLTMxLjExYzguNTktOC41OSA4LjU5LTIyLjUyIDAtMzEuMTFsLTUuMDYtNS4wNmM0Ljk5LTkuMjYgOC45Ni0xOC44MiAxMS45MS0yOC43MkgzMzBjMTIuMTUgMCAyMi05Ljg1IDIyLTIydi02aDgwLjU0YzIxLjkxLTI4Ljk5IDU2LjMyLTQ4IDk1LjQ2LTQ4IDE4LjY0IDAgMzYuMDcgNC42MSA1MS44IDEyLjJsNTAuODItNTAuODJjNi02IDkuMzctMTQuMTQgOS4zNy0yMi42M1YxOTJjLjAxLTE3LjY3LTE0LjMyLTMyLTMxLjk5LTMyek0xNzYgNDE2Yy00NC4xOCAwLTgwLTM1LjgyLTgwLTgwczM1LjgyLTgwIDgwLTgwIDgwIDM1LjgyIDgwIDgwLTM1LjgyIDgwLTgwIDgwem0yMi0yNTZoLTM4VjY0aDEwNi44OWw0MS4xNSA5NkgxOTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyYWRlbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNjAuNiA5NkgxMmMtNi42IDAtMTIgNS40LTEyIDEydjQzLjFjMCA2LjYgNS40IDEyIDEyIDEyaDg1LjFWNDA0YzAgNi42IDUuNCAxMiAxMiAxMmg1NC4zYzYuNiAwIDEyLTUuNCAxMi0xMlYxNjMuMWg4NS4xYzYuNiAwIDEyLTUuNCAxMi0xMlYxMDhjLjEtNi42LTUuMy0xMi0xMS45LTEyek02NDAgNDAzbC0yNC0yOTZjLS41LTYuMi01LjctMTEtMTItMTFoLTY1LjRjLTUuMSAwLTkuNyAzLjMtMTEuMyA4LjFsLTQzLjggMTI3LjFjLTcuMiAyMC42LTE2LjEgNTIuOC0xNi4xIDUyLjhoLS45cy04LjktMzIuMi0xNi4xLTUyLjhsLTQzLjgtMTI3LjFjLTEuNy00LjgtNi4yLTguMS0xMS4zLTguMWgtNjUuNGMtNi4yIDAtMTEuNCA0LjgtMTIgMTFsLTI0LjQgMjk2Yy0uNiA3IDQuOSAxMyAxMiAxM0gzNjBjNi4zIDAgMTEuNS00LjkgMTItMTEuMmw5LjEtMTMyLjljMS44LTI0LjIgMC01My43IDAtNTMuN2guOXMxMC43IDMzLjYgMTcuOSA1My43bDMwLjcgODQuN2MxLjcgNC43IDYuMiA3LjkgMTEuMyA3LjloNTAuM2M1LjEgMCA5LjYtMy4yIDExLjMtNy45bDMwLjctODQuN2M3LjItMjAuMSAxNy45LTUzLjcgMTcuOS01My43aC45cy0xLjggMjkuNSAwIDUzLjdsOS4xIDEzMi45Yy40IDYuMyA1LjcgMTEuMiAxMiAxMS4ySDYyOGM3IDAgMTIuNS02IDEyLTEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFmZmljTGlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDE5MmgtNjR2LTM3Ljg4YzM3LjItMTMuMjIgNjQtNDguMzggNjQtOTAuMTJoLTY0VjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJIOTZDNzguMzMgMCA2NCAxNC4zMyA2NCAzMnYzMkgwYzAgNDEuNzQgMjYuOCA3Ni45IDY0IDkwLjEyVjE5MkgwYzAgNDEuNzQgMjYuOCA3Ni45IDY0IDkwLjEyVjMyMEgwYzAgNDIuODQgMjguMjUgNzguNjkgNjYuOTkgOTEuMDVDNzkuNDIgNDY4LjcyIDEzMC42IDUxMiAxOTIgNTEyczExMi41OC00My4yOCAxMjUuMDEtMTAwLjk1QzM1NS43NSAzOTguNjkgMzg0IDM2Mi44NCAzODQgMzIwaC02NHYtMzcuODhjMzcuMi0xMy4yMiA2NC00OC4zOCA2NC05MC4xMnpNMTkyIDQxNmMtMjYuNTEgMC00OC0yMS40OS00OC00OHMyMS40OS00OCA0OC00OCA0OCAyMS40OSA0OCA0OC0yMS40OSA0OC00OCA0OHptMC0xMjhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhzMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDgtMjEuNDkgNDgtNDggNDh6bTAtMTI4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4czIxLjQ5LTQ4IDQ4LTQ4IDQ4IDIxLjQ5IDQ4IDQ4LTIxLjQ5IDQ4LTQ4IDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFpbGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNCwzMjBINTQ0VjgwYTE2LDE2LDAsMCwwLTE2LTE2SDE2QTE2LDE2LDAsMCwwLDAsODBWMzY4YTE2LDE2LDAsMCwwLDE2LDE2SDY1LjYxYzcuODMtNTQuMjEsNTQtOTYsMTEwLjM5LTk2czEwMi41Niw0MS43OSwxMTAuMzksOTZINjI0YTE2LDE2LDAsMCwwLDE2LTE2VjMzNkExNiwxNiwwLDAsMCw2MjQsMzIwWk05NiwyNDMuNjhhMTc2LjI5LDE3Ni4yOSwwLDAsMC0zMiwyMC43MVYxMzZhOCw4LDAsMCwxLDgtOEg4OGE4LDgsMCwwLDEsOCw4Wm05Ni0xOC41NGMtNS4zMS0uNDktMTAuNTctMS4xNC0xNi0xLjE0cy0xMC42OS42NS0xNiwxLjE0VjEzNmE4LDgsMCwwLDEsOC04aDE2YTgsOCwwLDAsMSw4LDhabTk2LDM5LjI1YTE3Ni4yOSwxNzYuMjksMCwwLDAtMzItMjAuNzFWMTM2YTgsOCwwLDAsMSw4LThoMTZhOCw4LDAsMCwxLDgsOFpNMzg0LDMyMEgzNTJWMTM2YTgsOCwwLDAsMSw4LThoMTZhOCw4LDAsMCwxLDgsOFptOTYsMEg0NDhWMTM2YTgsOCwwLDAsMSw4LThoMTZhOCw4LDAsMCwxLDgsOFptLTMwNCwwYTgwLDgwLDAsMSwwLDgwLDgwQTgwLDgwLDAsMCwwLDE3NiwzMjBabTAsMTEyYTMyLDMyLDAsMSwxLDMyLTMyQTMyLDMyLDAsMCwxLDE3Niw0MzJaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyYWluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA5NnYyNTZjMCA1MS44MTUtNjEuNjI0IDk2LTEzMC4wMjIgOTZsNjIuOTggNDkuNzIxQzM4Ni45MDUgNTAyLjQxNyAzODMuNTYyIDUxMiAzNzYgNTEySDcyYy03LjU3OCAwLTEwLjg5Mi05LjU5NC00Ljk1Ny0xNC4yNzlMMTMwLjAyMiA0NDhDNjEuODIgNDQ4IDAgNDAzLjk1NCAwIDM1MlY5NkMwIDQyLjk4MSA2NCAwIDEyOCAwaDE5MmM2NSAwIDEyOCA0Mi45ODEgMTI4IDk2em0tNDggMTM2VjEyMGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRINzJjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYxMTJjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDMwNGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR6bS0xNzYgNjRjLTMwLjkyOCAwLTU2IDI1LjA3Mi01NiA1NnMyNS4wNzIgNTYgNTYgNTYgNTYtMjUuMDcyIDU2LTU2LTI1LjA3Mi01Ni01Ni01NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJTMzA1LjcgMCAyODggMHMtMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyem0yMjMuNS0xMi4xYy0yLjMtOC42LTExLTEzLjYtMTkuNi0xMS4zbC00ODAgMTI4Yy04LjUgMi4zLTEzLjYgMTEtMTEuMyAxOS42QzIuNSAxOTUuMyA4LjkgMjAwIDE2IDIwMGMxLjQgMCAyLjgtLjIgNC4xLS41TDI0MCAxNDAuOFYyMjRINjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjIyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzODRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMySDI3MnYtOTEuN2wyMjguMS02MC44YzguNi0yLjMgMTMuNi0xMS4xIDExLjQtMTkuNnpNMTc2IDM4NEg4MHYtOTZoOTZ2OTZ6bTE2MC05Nmg5NnY5NmgtOTZ2LTk2em0tMzIgMHY5NmgtOTZ2LTk2aDk2ek0xOTIgOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFuc2dlbmRlckFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDgwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjggMGgtNzljLTEwLjcgMC0xNiAxMi45LTguNSAyMC41bDE2LjkgMTYuOS04MC43IDgwLjdDMjk0LjUgMTA0LjEgMjY4LjIgOTYgMjQwIDk2Yy0yOC4yIDAtNTQuNSA4LjEtNzYuNyAyMi4xbC0xNi41LTE2LjUgMTkuOC0xOS44YzQuNy00LjcgNC43LTEyLjMgMC0xN2wtMjguMy0yOC4zYy00LjctNC43LTEyLjMtNC43LTE3IDBsLTE5LjggMTkuOC0xOS0xOSAxNi45LTE2LjlDMTA3LjEgMTIuOSAxMDEuNyAwIDkxIDBIMTJDNS40IDAgMCA1LjQgMCAxMnY3OWMwIDEwLjcgMTIuOSAxNiAyMC41IDguNWwxNi45LTE2LjkgMTkgMTktMTkuOCAxOS44Yy00LjcgNC43LTQuNyAxMi4zIDAgMTdsMjguMyAyOC4zYzQuNyA0LjcgMTIuMyA0LjcgMTcgMGwxOS44LTE5LjggMTYuNSAxNi41QzEwNC4xIDE4NS41IDk2IDIxMS44IDk2IDI0MGMwIDY4LjUgNDcuOSAxMjUuOSAxMTIgMTQwLjRWNDA4aC0zNmMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmgzNnYyOGMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEydi0yOGgzNmM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtMzZ2LTI3LjZjNjQuMS0xNC42IDExMi03MS45IDExMi0xNDAuNCAwLTI4LjItOC4xLTU0LjUtMjIuMS03Ni43bDgwLjctODAuNyAxNi45IDE2LjljNy42IDcuNiAyMC41IDIuMiAyMC41LTguNVYxMmMwLTYuNi01LjQtMTItMTItMTJ6TTI0MCAzMjBjLTQ0LjEgMC04MC0zNS45LTgwLTgwczM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFuc2dlbmRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzIgMGgtNzljLTEwLjcgMC0xNiAxMi45LTguNSAyMC41bDE2LjkgMTYuOS04MC43IDgwLjdDMTk4LjUgMTA0LjEgMTcyLjIgOTYgMTQ0IDk2IDY0LjUgOTYgMCAxNjAuNSAwIDI0MGMwIDY4LjUgNDcuOSAxMjUuOSAxMTIgMTQwLjRWNDA4SDc2Yy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDM2djI4YzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ2LTI4aDM2YzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC0zNnYtMjcuNmM2NC4xLTE0LjYgMTEyLTcxLjkgMTEyLTE0MC40IDAtMjguMi04LjEtNTQuNS0yMi4xLTc2LjdsODAuNy04MC43IDE2LjkgMTYuOWM3LjYgNy42IDIwLjUgMi4yIDIwLjUtOC41VjEyYzAtNi42LTUuNC0xMi0xMi0xMnpNMTQ0IDMyMGMtNDQuMSAwLTgwLTM1LjktODAtODBzMzUuOS04MCA4MC04MCA4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyYXNoQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDQ2NGE0OCA0OCAwIDAgMCA0OCA0OGgyODhhNDggNDggMCAwIDAgNDgtNDhWMTI4SDMyem0yNzItMjU2YTE2IDE2IDAgMCAxIDMyIDB2MjI0YTE2IDE2IDAgMCAxLTMyIDB6bS05NiAwYTE2IDE2IDAgMCAxIDMyIDB2MjI0YTE2IDE2IDAgMCAxLTMyIDB6bS05NiAwYTE2IDE2IDAgMCAxIDMyIDB2MjI0YTE2IDE2IDAgMCAxLTMyIDB6TTQzMiAzMkgzMTJsLTkuNC0xOC43QTI0IDI0IDAgMCAwIDI4MS4xIDBIMTY2LjhhMjMuNzIgMjMuNzIgMCAwIDAtMjEuNCAxMy4zTDEzNiAzMkgxNkExNiAxNiAwIDAgMCAwIDQ4djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJhc2hSZXN0b3JlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDQ2NGE0OCA0OCAwIDAgMCA0OCA0OGgyODhhNDggNDggMCAwIDAgNDgtNDhWMTI4SDMyem05MS4zMS0xNzIuOGw4OS4zOC05NC4yNmExNS40MSAxNS40MSAwIDAgMSAyMi42MiAwbDg5LjM4IDk0LjI2YzEwLjA4IDEwLjYyIDIuOTQgMjguOC0xMS4zMiAyOC44SDI1NnYxMTJhMTYgMTYgMCAwIDEtMTYgMTZoLTMyYTE2IDE2IDAgMCAxLTE2LTE2VjMyMGgtNTcuMzdjLTE0LjI2IDAtMjEuNC0xOC4xOC0xMS4zMi0yOC44ek00MzIgMzJIMzEybC05LjQtMTguN0EyNCAyNCAwIDAgMCAyODEuMSAwSDE2Ni44YTIzLjcyIDIzLjcyIDAgMCAwLTIxLjQgMTMuM0wxMzYgMzJIMTZBMTYgMTYgMCAwIDAgMCA0OHYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyYXNoUmVzdG9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01My4yIDQ2N2E0OCA0OCAwIDAgMCA0Ny45IDQ1aDI0NS44YTQ4IDQ4IDAgMCAwIDQ3LjktNDVMNDE2IDEyOEgzMnptNzAuMTEtMTc1LjhsODkuMzgtOTQuMjZhMTUuNDEgMTUuNDEgMCAwIDEgMjIuNjIgMGw4OS4zOCA5NC4yNmMxMC4wOCAxMC42MiAyLjk0IDI4LjgtMTEuMzIgMjguOEgyNTZ2MTEyYTE2IDE2IDAgMCAxLTE2IDE2aC0zMmExNiAxNiAwIDAgMS0xNi0xNlYzMjBoLTU3LjM3Yy0xNC4yNiAwLTIxLjQtMTguMTgtMTEuMzItMjguOHpNNDMyIDMySDMxMmwtOS40LTE4LjdBMjQgMjQgMCAwIDAgMjgxLjEgMEgxNjYuOGEyMy43MiAyMy43MiAwIDAgMC0yMS40IDEzLjNMMTM2IDMySDE2QTE2IDE2IDAgMCAwIDAgNDh2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzIgMzJIMzEybC05LjQtMTguN0EyNCAyNCAwIDAgMCAyODEuMSAwSDE2Ni44YTIzLjcyIDIzLjcyIDAgMCAwLTIxLjQgMTMuM0wxMzYgMzJIMTZBMTYgMTYgMCAwIDAgMCA0OHYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6TTUzLjIgNDY3YTQ4IDQ4IDAgMCAwIDQ3LjkgNDVoMjQ1LjhhNDggNDggMCAwIDAgNDcuOS00NUw0MTYgMTI4SDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3OC4zMSAzNzguNDlMMjk4LjQyIDI4OGgzMC42M2M5LjAxIDAgMTYuOTgtNSAyMC43OC0xMy4wNiAzLjgtOC4wNCAyLjU1LTE3LjI2LTMuMjgtMjQuMDVMMjY4LjQyIDE2MGgyOC44OWM5LjEgMCAxNy4zLTUuMzUgMjAuODYtMTMuNjEgMy41Mi04LjEzIDEuODYtMTcuNTktNC4yNC0yNC4wOEwyMDMuNjYgNC44M2MtNi4wMy02LjQ1LTE3LjI4LTYuNDUtMjMuMzIgMEw3MC4wNiAxMjIuMzFjLTYuMSA2LjQ5LTcuNzUgMTUuOTUtNC4yNCAyNC4wOEM2OS4zOCAxNTQuNjUgNzcuNTkgMTYwIDg2LjY5IDE2MGgyOC44OWwtNzguMTQgOTAuOTFjLTUuODEgNi43OC03LjA2IDE1Ljk5LTMuMjcgMjQuMDRDMzcuOTcgMjgzIDQ1LjkzIDI4OCA1NC45NSAyODhoMzAuNjNMNS42OSAzNzguNDljLTYgNi43OS03LjM2IDE2LjA5LTMuNTYgMjQuMjYgMy43NSA4LjA1IDEyIDEzLjI1IDIxLjAxIDEzLjI1SDE2MHYyNC40NWwtMzAuMjkgNDguNGMtNS4zMiAxMC42NCAyLjQyIDIzLjE2IDE0LjMxIDIzLjE2aDk1Ljk2YzExLjg5IDAgMTkuNjMtMTIuNTIgMTQuMzEtMjMuMTZMMjI0IDQ0MC40NVY0MTZoMTM2Ljg2YzkuMDEgMCAxNy4yNi01LjIgMjEuMDEtMTMuMjUgMy44LTguMTcgMi40NC0xNy40Ny0zLjU2LTI0LjI2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcm9waHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTUyIDY0SDQ0OFYyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNEgxNTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0djQwSDI0QzEwLjcgNjQgMCA3NC43IDAgODh2NTZjMCAzNS43IDIyLjUgNzIuNCA2MS45IDEwMC43IDMxLjUgMjIuNyA2OS44IDM3LjEgMTEwIDQxLjdDMjAzLjMgMzM4LjUgMjQwIDM2MCAyNDAgMzYwdjcyaC00OGMtMzUuMyAwLTY0IDIwLjctNjQgNTZ2MTJjMCA2LjYgNS40IDEyIDEyIDEyaDI5NmM2LjYgMCAxMi01LjQgMTItMTJ2LTEyYzAtMzUuMy0yOC43LTU2LTY0LTU2aC00OHYtNzJzMzYuNy0yMS41IDY4LjEtNzMuNmM0MC4zLTQuNiA3OC42LTE5IDExMC00MS43IDM5LjMtMjguMyA2MS45LTY1IDYxLjktMTAwLjdWODhjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTk5LjMgMTkyLjhDNzQuOSAxNzUuMiA2NCAxNTUuNiA2NCAxNDR2LTE2aDY0LjJjMSAzMi42IDUuOCA2MS4yIDEyLjggODYuMi0xNS4xLTUuMi0yOS4yLTEyLjQtNDEuNy0yMS40ek01MTIgMTQ0YzAgMTYuMS0xNy43IDM2LjEtMzUuMyA0OC44LTEyLjUgOS0yNi43IDE2LjItNDEuOCAyMS40IDctMjUgMTEuOC01My42IDEyLjgtODYuMkg1MTJ2MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRydWNrTG9hZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MC4yIDM3NS42YzIuMyA4LjUgMTEuMSAxMy42IDE5LjYgMTEuM2wyMTYuNC01OGM4LjUtMi4zIDEzLjYtMTEuMSAxMS4zLTE5LjZsLTQ5LjctMTg1LjVjLTIuMy04LjUtMTEuMS0xMy42LTE5LjYtMTEuM0wxNTEgMTMzLjNsMjQuOCA5Mi43LTYxLjggMTYuNS0yNC44LTkyLjctNzcuMyAyMC43QzMuNCAxNzIuOC0xLjcgMTgxLjYuNiAxOTAuMWw0OS42IDE4NS41ek0zODQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzIzLjZMNS45IDQ1MGMtNC4zIDEuMi02LjggNS42LTUuNiA5LjhsMTIuNiA0Ni4zYzEuMiA0LjMgNS42IDYuOCA5LjggNS42bDM5My43LTEwNy40QzQxOC44IDQ2NC4xIDQ2Ny42IDUxMiA1MjggNTEyYzYxLjkgMCAxMTItNTAuMSAxMTItMTEyVjBIMzg0em0xNDQgNDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4IDQ4IDIxLjUgNDggNDgtMjEuNSA0OC00OCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJ1Y2tNb25zdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNCAyMjRoLTE2di02NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC03My42TDQxOS4yMiAyNC4wMkE2NC4wMjUgNjQuMDI1IDAgMCAwIDM2OS4yNCAwSDI1NmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY5Nkg0OGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2ODBIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2LjcyYzI5LjIxLTM4LjY1IDc1LjEtNjQgMTI3LjI4LTY0czk4LjA3IDI1LjM1IDEyNy4yOCA2NGg2NS40NWMyOS4yMS0zOC42NSA3NS4xLTY0IDEyNy4yOC02NHM5OC4wNyAyNS4zNSAxMjcuMjggNjRINjI0YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnptLTMzNi05NlY2NGg4MS4yNGw1MS4yIDY0SDI4OHptMzA0IDIyNGgtNS4yYy0yLjItNy4zMy01LjA3LTE0LjI4LTguNjUtMjAuODlsMy42Ny0zLjY3YzYuMjUtNi4yNSA2LjI1LTE2LjM4IDAtMjIuNjNsLTIyLjYzLTIyLjYzYy02LjI1LTYuMjUtMTYuMzgtNi4yNS0yMi42MyAwbC0zLjY3IDMuNjdBMTEwLjg1IDExMC44NSAwIDAgMCA1MTIgMjc3LjJWMjcyYzAtOC44NC03LjE2LTE2LTE2LTE2aC0zMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NS4yYy03LjMzIDIuMi0xNC4yOCA1LjA3LTIwLjg5IDguNjVsLTMuNjctMy42N2MtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjMgMGwtMjIuNjMgMjIuNjNjLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNsMy42NyAzLjY3QTExMC44NSAxMTAuODUgMCAwIDAgMzczLjIgMzUySDM2OGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNS4yYzIuMiA3LjMzIDUuMDcgMTQuMjggOC42NSAyMC44OWwtMy42NyAzLjY3Yy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzbDIyLjYzIDIyLjYzYzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsMy42Ny0zLjY3YzYuNjEgMy41NyAxMy41NyA2LjQ1IDIwLjkgOC42NXY1LjJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTUuMmM3LjMzLTIuMiAxNC4yOC01LjA3IDIwLjktOC42NWwzLjY3IDMuNjdjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMGwyMi42My0yMi42M2M2LjI1LTYuMjUgNi4yNS0xNi4zOCAwLTIyLjYzbC0zLjY3LTMuNjdhMTEwLjg1IDExMC44NSAwIDAgMCA4LjY1LTIwLjg5aDUuMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjLS4wMi04Ljg0LTcuMTgtMTYtMTYuMDItMTZ6bS0xMTIgODBjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhzMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDgtMjEuNDkgNDgtNDggNDh6bS0yMDgtODBoLTUuMmMtMi4yLTcuMzMtNS4wNy0xNC4yOC04LjY1LTIwLjg5bDMuNjctMy42N2M2LjI1LTYuMjUgNi4yNS0xNi4zOCAwLTIyLjYzbC0yMi42My0yMi42M2MtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjMgMGwtMy42NyAzLjY3QTExMC44NSAxMTAuODUgMCAwIDAgMTkyIDI3Ny4yVjI3MmMwLTguODQtNy4xNi0xNi0xNi0xNmgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djUuMmMtNy4zMyAyLjItMTQuMjggNS4wNy0yMC44OSA4LjY1bC0zLjY3LTMuNjdjLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBMNTguMTggMzA0LjhjLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNsMy42NyAzLjY3YTExMC44NSAxMTAuODUgMCAwIDAtOC42NSAyMC44OUg0OGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNS4yYzIuMiA3LjMzIDUuMDcgMTQuMjggOC42NSAyMC44OWwtMy42NyAzLjY3Yy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzbDIyLjYzIDIyLjYzYzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsMy42Ny0zLjY3YzYuNjEgMy41NyAxMy41NyA2LjQ1IDIwLjkgOC42NXY1LjJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTUuMmM3LjMzLTIuMiAxNC4yOC01LjA3IDIwLjktOC42NWwzLjY3IDMuNjdjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMGwyMi42My0yMi42M2M2LjI1LTYuMjUgNi4yNS0xNi4zOCAwLTIyLjYzbC0zLjY3LTMuNjdhMTEwLjg1IDExMC44NSAwIDAgMCA4LjY1LTIwLjg5aDUuMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJDMjg4IDM1OS4xNiAyODAuODQgMzUyIDI3MiAzNTJ6bS0xMTIgODBjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhzMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDgtMjEuNDkgNDgtNDggNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRydWNrTW92aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyMS4zIDIzNy4zbC01OC41LTU4LjVjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdINDgwVjY0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjR2MzM2YzAgNDQuMiAzNS44IDgwIDgwIDgwIDI2LjMgMCA0OS40LTEyLjkgNjQtMzIuNCAxNC42IDE5LjYgMzcuNyAzMi40IDY0IDMyLjQgNDQuMiAwIDgwLTM1LjggODAtODAgMC01LjUtLjYtMTAuOC0xLjYtMTZoMTYzLjJjLTEuMSA1LjItMS42IDEwLjUtMS42IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC01LjUtLjYtMTAuOC0xLjYtMTZINjI0YzguOCAwIDE2LTcuMiAxNi0xNnYtODUuNWMwLTE3LTYuNy0zMy4yLTE4LjctNDUuMnpNODAgNDMyYy0xNy42IDAtMzItMTQuNC0zMi0zMnMxNC40LTMyIDMyLTMyIDMyIDE0LjQgMzIgMzItMTQuNCAzMi0zMiAzMnptMTI4IDBjLTE3LjYgMC0zMi0xNC40LTMyLTMyczE0LjQtMzIgMzItMzIgMzIgMTQuNCAzMiAzMi0xNC40IDMyLTMyIDMyem0yNzItMjI0aDM3LjVjNC4zIDAgOC4zIDEuNyAxMS4zIDQuN2w0My4zIDQzLjNINDgwdi00OHptNDggMjI0Yy0xNy42IDAtMzItMTQuNC0zMi0zMnMxNC40LTMyIDMyLTMyIDMyIDE0LjQgMzIgMzItMTQuNCAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJ1Y2tQaWNrdXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI0IDI4OGgtMTZ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJoLTQ4TDQxOS4yMiA1Ni4wMkE2NC4wMjUgNjQuMDI1IDAgMCAwIDM2OS4yNCAzMkgyNTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MTI4SDY0Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjY0SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg0OS42MWMtLjc2IDUuMjctMS42MSAxMC41Mi0xLjYxIDE2IDAgNjEuODYgNTAuMTQgMTEyIDExMiAxMTJzMTEyLTUwLjE0IDExMi0xMTJjMC01LjQ4LS44NS0xMC43My0xLjYxLTE2aDY3LjIzYy0uNzYgNS4yNy0xLjYxIDEwLjUyLTEuNjEgMTYgMCA2MS44NiA1MC4xNCAxMTIgMTEyIDExMnMxMTItNTAuMTQgMTEyLTExMmMwLTUuNDgtLjg1LTEwLjczLTEuNjEtMTZINjI0YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnpNMjg4IDk2aDgxLjI0bDc2LjggOTZIMjg4Vjk2ek0xNzYgNDE2Yy0yNi40NyAwLTQ4LTIxLjUzLTQ4LTQ4czIxLjUzLTQ4IDQ4LTQ4IDQ4IDIxLjUzIDQ4IDQ4LTIxLjUzIDQ4LTQ4IDQ4em0yODggMGMtMjYuNDcgMC00OC0yMS41My00OC00OHMyMS41My00OCA0OC00OCA0OCAyMS41MyA0OCA0OC0yMS41MyA0OC00OCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJ1Y2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI0IDM1MmgtMTZWMjQzLjljMC0xMi43LTUuMS0yNC45LTE0LjEtMzMuOUw0OTQgMTEwLjFjLTktOS0yMS4yLTE0LjEtMzMuOS0xNC4xSDQxNlY0OGMwLTI2LjUtMjEuNS00OC00OC00OEg0OEMyMS41IDAgMCAyMS41IDAgNDh2MzIwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDE2YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZoMTI4YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZoNDhjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6TTE2MCA0NjRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDggNDggMjEuNSA0OCA0OC0yMS41IDQ4LTQ4IDQ4em0zMjAgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OCA0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDh6bTgwLTIwOEg0MTZWMTQ0aDQ0LjFsOTkuOSA5OS45VjI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHNoaXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzMS4yIDk2LjVMNDM2LjUgMEM0MTYuNCAyNy44IDM3MS45IDQ3LjIgMzIwIDQ3LjJTMjIzLjYgMjcuOCAyMDMuNSAwTDguOCA5Ni41Yy03LjkgNC0xMS4xIDEzLjYtNy4yIDIxLjVsNTcuMiAxMTQuNWM0IDcuOSAxMy42IDExLjEgMjEuNSA3LjJsNTYuNi0yNy43YzEwLjYtNS4yIDIzIDIuNSAyMyAxNC40VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyNTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjI2LjNjMC0xMS44IDEyLjQtMTkuNiAyMy0xNC40bDU2LjYgMjcuN2M3LjkgNCAxNy41LjggMjEuNS03LjJMNjM4LjMgMTE4YzQtNy45LjgtMTcuNi03LjEtMjEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuMzcgMTAzLjgyMmMxMzguNTMyLTEzOC41MzIgMzYyLjkzNi0xMzguMzI2IDUwMS4yNjIgMCA2LjA3OCA2LjA3OCA3LjA3NCAxNS40OTYgMi41ODMgMjIuNjgxbC00My4yMTQgNjkuMTM4YTE4LjMzMiAxOC4zMzIgMCAwIDEtMjIuMzU2IDcuMzA1bC04Ni40MjItMzQuNTY5YTE4LjMzNSAxOC4zMzUgMCAwIDEtMTEuNDM0LTE4Ljg0NkwzNTEuNzQxIDkwYy02Mi4xNDUtMjIuNDU0LTEzMC42MzYtMjEuOTg2LTE5MS40ODMgMGw1Ljk1MyA1OS41MzJhMTguMzMxIDE4LjMzMSAwIDAgMS0xMS40MzQgMTguODQ2bC04Ni40MjMgMzQuNTY4YTE4LjMzNCAxOC4zMzQgMCAwIDEtMjIuMzU2LTcuMzA1TDIuNzg3IDEyNi41MDJhMTguMzMzIDE4LjMzMyAwIDAgMSAyLjU4My0yMi42OHpNOTYgMzA4di00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDQ0Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem0tMzM2IDk2di00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDkyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnpNOTYgNTAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDQ0Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptMjg4IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJIMTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjMyYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTkyIDBINDhBNDggNDggMCAwIDAgMCA0OHYzMjBhNDggNDggMCAwIDAgNDggNDhoMjQwdjMySDExMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2SDM1MnYtMzJoMjQwYTQ4IDQ4IDAgMCAwIDQ4LTQ4VjQ4YTQ4IDQ4IDAgMCAwLTQ4LTQ4em0tMTYgMzUySDY0VjY0aDUxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW1icmVsbGFCZWFjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTUuMzggMTM2LjlsMTAyLjExIDM3LjE4YzM1LjE5LTgxLjU0IDg2LjIxLTE0NC4yOSAxMzktMTczLjctOTUuODgtNC44OS0xODguNzggMzYuOTYtMjQ4LjUzIDExMS44LTYuNjkgOC40LTIuNjYgMjEuMDUgNy40MiAyNC43MnptMTMyLjI1IDQ4LjE2bDIzOC40OCA4Ni44M2MzNS43Ni0xMjEuMzggMTguNy0yMzEuNjYtNDIuNjMtMjUzLjk4LTcuNC0yLjctMTUuMTMtNC0yMy4wOS00LTU4LjAyLjAxLTEyOC4yNyA2OS4xNy0xNzIuNzYgMTcxLjE1ek01MjEuNDggNjAuNWM2LjIyIDE2LjMgMTAuODMgMzQuNiAxMy4yIDU1LjE5IDUuNzQgNDkuODktMS40MiAxMDguMjMtMTguOTUgMTY2Ljk4bDEwMi42MiAzNy4zNmMxMC4wOSAzLjY3IDIxLjMxLTMuNDMgMjEuNTctMTQuMTcgMi4zMi05NS42OS00MS45MS0xODcuNDQtMTE4LjQ0LTI0NS4zNnpNNTYwIDQ0Ny45OEgzMjEuMDZMMzg2IDI2OS41bC02MC4xNC0yMS45LTcyLjkgMjAwLjM3SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNi4wMXYzMi4wMUMwIDUwNC44MyA3LjE2IDUxMiAxNiA1MTJoNTQ0YzguODQgMCAxNi03LjE3IDE2LTE2LjAxdi0zMi4wMWMwLTguODQtNy4xNi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW1icmVsbGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTc1LjcgMjgwLjhDNTQ3LjEgMTQ0LjUgNDM3LjMgNjIuNiAzMjAgNDkuOVYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnYxNy45QzEzOC4zIDYyLjYgMjkuNSAxNDQuNS4zIDI4MC44Yy0yLjIgMTAuMSA4LjUgMjEuMyAxOC43IDExLjQgNTItNTUgMTA3LjctNTIuNCAxNTguNiAzNyA1LjMgOS41IDE0LjkgOC42IDE5LjcgMCAyMC4yLTM1LjQgNDQuOS03My4yIDkwLjctNzMuMiA1OC41IDAgODguMiA2OC44IDkwLjcgNzMuMiA0LjggOC42IDE0LjQgOS41IDE5LjcgMCA1MS04OS41IDEwNy4xLTkxLjQgMTU4LjYtMzcgMTAuMyAxMCAyMC45LTEuMyAxOC43LTExLjR6TTI1NiAzMDEuN1Y0MzJjMCA4LjgtNy4yIDE2LTE2IDE2LTcuOCAwLTEzLjItNS4zLTE1LjEtMTAuNy01LjktMTYuNy0yNC4xLTI1LjQtNDAuOC0xOS41LTE2LjcgNS45LTI1LjQgMjQuMi0xOS41IDQwLjggMTEuMiAzMS45IDQxLjYgNTMuMyA3NS40IDUzLjMgNDQuMSAwIDgwLTM1LjkgODAtODBWMzAxLjZjLTkuMS03LjktMTkuOC0xMy42LTMyLTEzLjYtMTIuMy4xLTIyLjQgNC44LTMyIDEzLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVuZGVybGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiA2NGgzMnYxNjBjMCA4OC4yMiA3MS43OCAxNjAgMTYwIDE2MHMxNjAtNzEuNzggMTYwLTE2MFY2NGgzMmExNiAxNiAwIDAgMCAxNi0xNlYxNmExNiAxNiAwIDAgMC0xNi0xNkgyNzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJ2MTYwYTgwIDgwIDAgMCAxLTE2MCAwVjY0aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjE2YTE2IDE2IDAgMCAwLTE2LTE2SDMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2em00MDAgMzg0SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVuZG9BbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU1LjU0NSA4Yy02Ni4yNjkuMTE5LTEyNi40MzggMjYuMjMzLTE3MC44NiA2OC42ODVMNDguOTcxIDQwLjk3MUMzMy44NTEgMjUuODUxIDggMzYuNTU5IDggNTcuOTQxVjE5MmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTM0LjA1OWMyMS4zODIgMCAzMi4wOS0yNS44NTEgMTYuOTcxLTQwLjk3MWwtNDEuNzUtNDEuNzVjMzAuODY0LTI4Ljg5OSA3MC44MDEtNDQuOTA3IDExMy4yMy00NS4yNzMgOTIuMzk4LS43OTggMTcwLjI4MyA3My45NzcgMTY5LjQ4NCAxNjkuNDQyQzQyMy4yMzYgMzQ4LjAwOSAzNDkuODE2IDQyNCAyNTYgNDI0Yy00MS4xMjcgMC03OS45OTctMTQuNjc4LTExMC42My00MS41NTYtNC43NDMtNC4xNjEtMTEuOTA2LTMuOTA4LTE2LjM2OC41NTNMODkuMzQgNDIyLjY1OWMtNC44NzIgNC44NzItNC42MzEgMTIuODE1LjQ4MiAxNy40MzNDMTMzLjc5OCA0NzkuODEzIDE5Mi4wNzQgNTA0IDI1NiA1MDRjMTM2Ljk2NiAwIDI0Ny45OTktMTExLjAzMyAyNDgtMjQ3Ljk5OEM1MDQuMDAxIDExOS4xOTMgMzkyLjM1NCA3Ljc1NSAyNTUuNTQ1IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVuZG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEyLjMzMyAyMjQuMzMzSDEyYy02LjYyNyAwLTEyLTUuMzczLTEyLTEyVjEyQzAgNS4zNzMgNS4zNzMgMCAxMiAwaDQ4YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2NzguMTEyQzExNy43NzMgMzkuMjc5IDE4NC4yNiA3LjQ3IDI1OC4xNzUgOC4wMDdjMTM2LjkwNi45OTQgMjQ2LjQ0OCAxMTEuNjIzIDI0Ni4xNTcgMjQ4LjUzMkM1MDQuMDQxIDM5My4yNTggMzkzLjEyIDUwNCAyNTYuMzMzIDUwNGMtNjQuMDg5IDAtMTIyLjQ5Ni0yNC4zMTMtMTY2LjUxLTY0LjIxNS01LjA5OS00LjYyMi01LjMzNC0xMi41NTQtLjQ2Ny0xNy40MmwzMy45NjctMzMuOTY3YzQuNDc0LTQuNDc0IDExLjY2Mi00LjcxNyAxNi40MDEtLjUyNUMxNzAuNzYgNDE1LjMzNiAyMTEuNTggNDMyIDI1Ni4zMzMgNDMyYzk3LjI2OCAwIDE3Ni03OC43MTYgMTc2LTE3NiAwLTk3LjI2Ny03OC43MTYtMTc2LTE3Ni0xNzYtNTguNDk2IDAtMTEwLjI4IDI4LjQ3Ni0xNDIuMjc0IDcyLjMzM2g5OC4yNzRjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY0OGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbml2ZXJzYWxBY2Nlc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDQ4YzExNC45NTMgMCAyMDggOTMuMDI5IDIwOCAyMDggMCAxMTQuOTUzLTkzLjAyOSAyMDgtMjA4IDIwOC0xMTQuOTUzIDAtMjA4LTkzLjAyOS0yMDgtMjA4IDAtMTE0Ljk1MyA5My4wMjktMjA4IDIwOC0yMDhtMC00MEMxMTkuMDMzIDggOCAxMTkuMDMzIDggMjU2czExMS4wMzMgMjQ4IDI0OCAyNDggMjQ4LTExMS4wMzMgMjQ4LTI0OFMzOTIuOTY3IDggMjU2IDh6bTAgNTZDMTQ5Ljk2MSA2NCA2NCAxNDkuOTYxIDY0IDI1NnM4NS45NjEgMTkyIDE5MiAxOTIgMTkyLTg1Ljk2MSAxOTItMTkyUzM2Mi4wMzkgNjQgMjU2IDY0em0wIDQ0YzE5Ljg4MiAwIDM2IDE2LjExOCAzNiAzNnMtMTYuMTE4IDM2LTM2IDM2LTM2LTE2LjExOC0zNi0zNiAxNi4xMTgtMzYgMzYtMzZ6bTExNy43NDEgOTguMDIzYy0yOC43MTIgNi43NzktNTUuNTExIDEyLjc0OC04Mi4xNCAxNS44MDcuODUxIDEwMS4wMjMgMTIuMzA2IDEyMy4wNTIgMjUuMDM3IDE1NS42MjEgMy42MTcgOS4yNi0uOTU3IDE5LjY5OC0xMC4yMTcgMjMuMzE1LTkuMjYxIDMuNjE3LTE5LjY5OS0uOTU3LTIzLjMxNi0xMC4yMTctOC43MDUtMjIuMzA4LTE3LjA4Ni00MC42MzYtMjIuMjYxLTc4LjU0OWgtOS42ODZjLTUuMTY3IDM3Ljg1MS0xMy41MzQgNTYuMjA4LTIyLjI2MiA3OC41NDktMy42MTUgOS4yNTUtMTQuMDUgMTMuODM2LTIzLjMxNSAxMC4yMTctOS4yNi0zLjYxNy0xMy44MzQtMTQuMDU2LTEwLjIxNy0yMy4zMTUgMTIuNzEzLTMyLjU0MSAyNC4xODUtNTQuNTQxIDI1LjAzNy0xNTUuNjIxLTI2LjYyOS0zLjA1OC01My40MjgtOS4wMjctODIuMTQxLTE1LjgwNy04LjYtMi4wMzEtMTMuOTI2LTEwLjY0OC0xMS44OTUtMTkuMjQ5czEwLjY0Ny0xMy45MjYgMTkuMjQ5LTExLjg5NWM5Ni42ODYgMjIuODI5IDEyNC4yODMgMjIuNzgzIDIyMC43NzUgMCA4LjU5OS0yLjAzIDE3LjIxOCAzLjI5NCAxOS4yNDkgMTEuODk1IDIuMDI5IDguNjAxLTMuMjk3IDE3LjIxOS0xMS44OTcgMTkuMjQ5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbml2ZXJzaXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiAxMjh2MTZhOCA4IDAgMCAxLTggOGgtMjR2MTJjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkg2MGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMTJIMjRhOCA4IDAgMCAxLTgtOHYtMTZhOCA4IDAgMCAxIDQuOTQxLTcuMzkybDIzMi04OGE3Ljk5NiA3Ljk5NiAwIDAgMSA2LjExOCAwbDIzMiA4OEE4IDggMCAwIDEgNDk2IDEyOHptLTI0IDMwNEg0MGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djE2YTggOCAwIDAgMCA4IDhoNDY0YTggOCAwIDAgMCA4LTh2LTE2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHpNOTYgMTkydjE5Mkg2MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyMGg0MTZ2LTIwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTM2VjE5MmgtNjR2MTkyaC02NFYxOTJoLTY0djE5MmgtNjRWMTkySDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbmxpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA0LjA4MyA0MDUuOTA3YzQuNjg2IDQuNjg2IDQuNjg2IDEyLjI4NCAwIDE2Ljk3MWwtNDQuNjc0IDQ0LjY3NGMtNTkuMjYzIDU5LjI2Mi0xNTUuNjkzIDU5LjI2Ni0yMTQuOTYxIDAtNTkuMjY0LTU5LjI2NS01OS4yNjQtMTU1LjY5NiAwLTIxNC45Nmw0NC42NzUtNDQuNjc1YzQuNjg2LTQuNjg2IDEyLjI4NC00LjY4NiAxNi45NzEgMGwzOS41OTggMzkuNTk4YzQuNjg2IDQuNjg2IDQuNjg2IDEyLjI4NCAwIDE2Ljk3MWwtNDQuNjc1IDQ0LjY3NGMtMjguMDcyIDI4LjA3My0yOC4wNzIgNzMuNzUgMCAxMDEuODIzIDI4LjA3MiAyOC4wNzIgNzMuNzUgMjguMDczIDEwMS44MjQgMGw0NC42NzQtNDQuNjc0YzQuNjg2LTQuNjg2IDEyLjI4NC00LjY4NiAxNi45NzEgMGwzOS41OTcgMzkuNTk4em0tNTYuNTY4LTI2MC4yMTZjNC42ODYgNC42ODYgMTIuMjg0IDQuNjg2IDE2Ljk3MSAwbDQ0LjY3NC00NC42NzRjMjguMDcyLTI4LjA3NSA3My43NS0yOC4wNzMgMTAxLjgyNCAwIDI4LjA3MiAyOC4wNzMgMjguMDcyIDczLjc1IDAgMTAxLjgyM2wtNDQuNjc1IDQ0LjY3NGMtNC42ODYgNC42ODYtNC42ODYgMTIuMjg0IDAgMTYuOTcxbDM5LjU5OCAzOS41OThjNC42ODYgNC42ODYgMTIuMjg0IDQuNjg2IDE2Ljk3MSAwbDQ0LjY3NS00NC42NzVjNTkuMjY1LTU5LjI2NSA1OS4yNjUtMTU1LjY5NSAwLTIxNC45Ni01OS4yNjYtNTkuMjY0LTE1NS42OTUtNTkuMjY0LTIxNC45NjEgMGwtNDQuNjc0IDQ0LjY3NGMtNC42ODYgNC42ODYtNC42ODYgMTIuMjg0IDAgMTYuOTcxbDM5LjU5NyAzOS41OTh6bTIzNC44MjggMzU5LjI4bDIyLjYyNy0yMi42MjdjOS4zNzMtOS4zNzMgOS4zNzMtMjQuNTY5IDAtMzMuOTQxTDYzLjU5OCA3LjAyOWMtOS4zNzMtOS4zNzMtMjQuNTY5LTkuMzczLTMzLjk0MSAwTDcuMDI5IDI5LjY1N2MtOS4zNzMgOS4zNzMtOS4zNzMgMjQuNTY5IDAgMzMuOTQxbDQ0MS4zNzMgNDQxLjM3M2M5LjM3MyA5LjM3MiAyNC41NjkgOS4zNzIgMzMuOTQxIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVubG9ja0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMjU2SDE1MlYxNTIuOWMwLTM5LjYgMzEuNy03Mi41IDcxLjMtNzIuOSA0MC0uNCA3Mi43IDMyLjEgNzIuNyA3MnYxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMmMxMy4zIDAgMjQtMTAuNyAyNC0yNHYtMTZDMzc2IDY4IDMwNy41LS4zIDIyMy41IDAgMTM5LjUuMyA3MiA2OS41IDcyIDE1My41VjI1Nkg0OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2MTYwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFYzMDRjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTI2NCA0MDhjMCAyMi4xLTE3LjkgNDAtNDAgNDBzLTQwLTE3LjktNDAtNDB2LTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDB2NDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVubG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMjU2SDE1MlYxNTIuOWMwLTM5LjYgMzEuNy03Mi41IDcxLjMtNzIuOSA0MC0uNCA3Mi43IDMyLjEgNzIuNyA3MnYxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMmMxMy4zIDAgMjQtMTAuNyAyNC0yNHYtMTZDMzc2IDY4IDMwNy41LS4zIDIyMy41IDAgMTM5LjUuMyA3MiA2OS41IDcyIDE1My41VjI1Nkg0OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2MTYwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFYzMDRjMC0yNi41LTIxLjUtNDgtNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVwbG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTYgMzg0aC04MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRWMTkyaC04Ny43Yy0xNy44IDAtMjYuNy0yMS41LTE0LjEtMzQuMUwyNDIuMyA1LjdjNy41LTcuNSAxOS44LTcuNSAyNy4zIDBsMTUyLjIgMTUyLjJjMTIuNiAxMi42IDMuNyAzNC4xLTE0LjEgMzQuMUgzMjB2MTY4YzAgMTMuMy0xMC43IDI0LTI0IDI0em0yMTYtOHYxMTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRIMjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjM3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGgxMzZ2OGMwIDMwLjkgMjUuMSA1NiA1NiA1Nmg4MGMzMC45IDAgNTYtMjUuMSA1Ni01NnYtOGgxMzZjMTMuMyAwIDI0IDEwLjcgMjQgMjR6bS0xMjQgODhjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwIDkgMjAgMjAgMjAgMjAtOSAyMC0yMHptNjQgMGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjAgOSAyMCAyMCAyMCAyMC05IDIwLTIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyQWx0U2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjMzLjggNDU4LjFMMzg5LjYgMjY5LjNDNDMzLjggMjQ0LjcgNDY0IDE5OC4xIDQ2NCAxNDQgNDY0IDY0LjUgMzk5LjUgMCAzMjAgMGMtNjcuMSAwLTEyMyA0Ni4xLTEzOSAxMDguMkw0NS41IDMuNEMzOC41LTIgMjguNS0uOCAyMyA2LjJMMy40IDMxLjRjLTUuNCA3LTQuMiAxNyAyLjggMjIuNGw1ODguNCA0NTQuN2M3IDUuNCAxNyA0LjIgMjIuNS0yLjhsMTkuNi0yNS4zYzUuNC02LjggNC4xLTE2LjktMi45LTIyLjN6TTE5OC40IDMyMEMxMjQuMiAzMjAgNjQgMzgwLjIgNjQgNDU0LjR2OS42YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM4Mi4yTDI0NS44IDMyMGgtNDcuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMjg4Yzc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0UzMzNS41IDAgMjU2IDAgMTEyIDY0LjUgMTEyIDE0NHM2NC41IDE0NCAxNDQgMTQ0em0xMjggMzJoLTU1LjFjLTIyLjIgMTAuMi00Ni45IDE2LTcyLjkgMTZzLTUwLjYtNS44LTcyLjktMTZIMTI4QzU3LjMgMzIwIDAgMzc3LjMgMCA0NDh2MTZjMCAyNi41IDIxLjUgNDggNDggNDhoNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4di0xNmMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckFzdHJvbmF1dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAyMjRoMTMuNWMyNC43IDU2LjUgODAuOSA5NiAxNDYuNSA5NnMxMjEuOC0zOS41IDE0Ni41LTk2SDM4NGM4LjggMCAxNi03LjIgMTYtMTZ2LTk2YzAtOC44LTcuMi0xNi0xNi0xNmgtMTMuNUMzNDUuOCAzOS41IDI4OS42IDAgMjI0IDBTMTAyLjIgMzkuNSA3Ny41IDk2SDY0Yy04LjggMC0xNiA3LjItMTYgMTZ2OTZjMCA4LjggNy4yIDE2IDE2IDE2em00MC04OGMwLTIyLjEgMjEuNS00MCA0OC00MGgxNDRjMjYuNSAwIDQ4IDE3LjkgNDggNDB2MjRjMCA1My00MyA5Ni05NiA5NmgtNDhjLTUzIDAtOTYtNDMtOTYtOTZ2LTI0em03MiA3MmwxMi0zNiAzNi0xMi0zNi0xMi0xMi0zNi0xMiAzNi0zNiAxMiAzNiAxMiAxMiAzNnptMTUxLjYgMTEzLjRDMjk3LjcgMzQwLjcgMjYyLjIgMzUyIDIyNCAzNTJzLTczLjctMTEuMy0xMDMuNi0zMC42QzUyLjkgMzI4LjUgMCAzODUgMCA0NTQuNHY5LjZjMCAyNi41IDIxLjUgNDggNDggNDhoODB2LTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDEyOGMxNy43IDAgMzIgMTQuMyAzMiAzMnY2NGg4MGMyNi41IDAgNDgtMjEuNSA0OC00OHYtOS42YzAtNjkuNC01Mi45LTEyNS45LTEyMC40LTEzM3pNMjcyIDQ0OGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNiAxNi03LjIgMTYtMTYtNy4yLTE2LTE2LTE2em0tOTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2djQ4aDMydi00OGMwLTguOC03LjItMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMjU2YzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzI5NC43IDAgMjI0IDAgOTYgNTcuMyA5NiAxMjhzNTcuMyAxMjggMTI4IDEyOHptODkuNiAzMmgtMTYuN2MtMjIuMiAxMC4yLTQ2LjkgMTYtNzIuOSAxNnMtNTAuNi01LjgtNzIuOS0xNmgtMTYuN0M2MC4yIDI4OCAwIDM0OC4yIDAgNDIyLjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OHYtNDEuNmMwLTc0LjItNjAuMi0xMzQuNC0xMzQuNC0xMzQuNHptMzIzLTEyOC40bC0yNy44LTI4LjFjLTQuNi00LjctMTIuMS00LjctMTYuOC0uMWwtMTA0LjggMTA0LTQ1LjUtNDUuOGMtNC42LTQuNy0xMi4xLTQuNy0xNi44LS4xbC0yOC4xIDI3LjljLTQuNyA0LjYtNC43IDEyLjEtLjEgMTYuOGw4MS43IDgyLjNjNC42IDQuNyAxMi4xIDQuNyAxNi44LjFsMTQxLjMtMTQwLjJjNC42LTQuNyA0LjctMTIuMi4xLTE2Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA5NmM0OC42IDAgODggMzkuNCA4OCA4OHMtMzkuNCA4OC04OCA4OC04OC0zOS40LTg4LTg4IDM5LjQtODggODgtODh6bTAgMzQ0Yy01OC43IDAtMTExLjMtMjYuNi0xNDYuNS02OC4yIDE4LjgtMzUuNCA1NS42LTU5LjggOTguNS01OS44IDIuNCAwIDQuOC40IDcuMSAxLjEgMTMgNC4yIDI2LjYgNi45IDQwLjkgNi45IDE0LjMgMCAyOC0yLjcgNDAuOS02LjkgMi4zLS43IDQuNy0xLjEgNy4xLTEuMSA0Mi45IDAgNzkuNyAyNC40IDk4LjUgNTkuOEMzNTkuMyA0MjEuNCAzMDYuNyA0NDggMjQ4IDQ0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckNsb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiAyMjRjLTc5LjYgMC0xNDQgNjQuNC0xNDQgMTQ0czY0LjQgMTQ0IDE0NCAxNDQgMTQ0LTY0LjQgMTQ0LTE0NC02NC40LTE0NC0xNDQtMTQ0em02NCAxNTAuM2MwIDUuMy00LjQgOS43LTkuNyA5LjdoLTYwLjZjLTUuMyAwLTkuNy00LjQtOS43LTkuN3YtNzYuNmMwLTUuMyA0LjQtOS43IDkuNy05LjdoMTIuNmM1LjMgMCA5LjcgNC40IDkuNyA5LjdWMzUyaDM4LjNjNS4zIDAgOS43IDQuNCA5LjcgOS43djEyLjZ6TTMyMCAzNjhjMC0yNy44IDYuNy01NC4xIDE4LjItNzcuNS04LTEuNS0xNi4yLTIuNS0yNC42LTIuNWgtMTYuN2MtMjIuMiAxMC4yLTQ2LjkgMTYtNzIuOSAxNnMtNTAuNi01LjgtNzIuOS0xNmgtMTYuN0M2MC4yIDI4OCAwIDM0OC4yIDAgNDIyLjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM0Ny4xYy00NS4zLTMxLjktNzUuMS04NC41LTc1LjEtMTQ0em0tOTYtMTEyYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzI5NC43IDAgMjI0IDAgOTYgNTcuMyA5NiAxMjhzNTcuMyAxMjggMTI4IDEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckNvZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MTAuNSAzNzMuM2MyLjYtMTQuMSAyLjYtMjguNSAwLTQyLjZsMjUuOC0xNC45YzMtMS43IDQuMy01LjIgMy4zLTguNS02LjctMjEuNi0xOC4yLTQxLjItMzMuMi01Ny40LTIuMy0yLjUtNi0zLjEtOS0xLjRsLTI1LjggMTQuOWMtMTAuOS05LjMtMjMuNC0xNi41LTM2LjktMjEuM3YtMjkuOGMwLTMuNC0yLjQtNi40LTUuNy03LjEtMjIuMy01LTQ1LTQuOC02Ni4yIDAtMy4zLjctNS43IDMuNy01LjcgNy4xdjI5LjhjLTEzLjUgNC44LTI2IDEyLTM2LjkgMjEuM2wtMjUuOC0xNC45Yy0yLjktMS43LTYuNy0xLjEtOSAxLjQtMTUgMTYuMi0yNi41IDM1LjgtMzMuMiA1Ny40LTEgMy4zLjQgNi44IDMuMyA4LjVsMjUuOCAxNC45Yy0yLjYgMTQuMS0yLjYgMjguNSAwIDQyLjZsLTI1LjggMTQuOWMtMyAxLjctNC4zIDUuMi0zLjMgOC41IDYuNyAyMS42IDE4LjIgNDEuMSAzMy4yIDU3LjQgMi4zIDIuNSA2IDMuMSA5IDEuNGwyNS44LTE0LjljMTAuOSA5LjMgMjMuNCAxNi41IDM2LjkgMjEuM3YyOS44YzAgMy40IDIuNCA2LjQgNS43IDcuMSAyMi4zIDUgNDUgNC44IDY2LjIgMCAzLjMtLjcgNS43LTMuNyA1LjctNy4xdi0yOS44YzEzLjUtNC44IDI2LTEyIDM2LjktMjEuM2wyNS44IDE0LjljMi45IDEuNyA2LjcgMS4xIDktMS40IDE1LTE2LjIgMjYuNS0zNS44IDMzLjItNTcuNCAxLTMuMy0uNC02LjgtMy4zLTguNWwtMjUuOC0xNC45ek00OTYgNDAwLjVjLTI2LjggMC00OC41LTIxLjgtNDguNS00OC41czIxLjgtNDguNSA0OC41LTQ4LjUgNDguNSAyMS44IDQ4LjUgNDguNS0yMS43IDQ4LjUtNDguNSA0OC41ek0yMjQgMjU2YzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzI5NC43IDAgMjI0IDAgOTYgNTcuMyA5NiAxMjhzNTcuMyAxMjggMTI4IDEyOHptMjAxLjIgMjI2LjVjLTIuMy0xLjItNC42LTIuNi02LjgtMy45bC03LjkgNC42Yy02IDMuNC0xMi44IDUuMy0xOS42IDUuMy0xMC45IDAtMjEuNC00LjYtMjguOS0xMi42LTE4LjMtMTkuOC0zMi4zLTQzLjktNDAuMi02OS42LTUuNS0xNy43IDEuOS0zNi40IDE3LjktNDUuN2w3LjktNC42Yy0uMS0yLjYtLjEtNS4yIDAtNy44bC03LjktNC42Yy0xNi05LjItMjMuNC0yOC0xNy45LTQ1LjcuOS0yLjkgMi4yLTUuOCAzLjItOC43LTMuOC0uMy03LjUtMS4yLTExLjQtMS4yaC0xNi43Yy0yMi4yIDEwLjItNDYuOSAxNi03Mi45IDE2cy01MC42LTUuOC03Mi45LTE2aC0xNi43QzYwLjIgMjg4IDAgMzQ4LjIgMCA0MjIuNFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzEwLjEgMCAxOS41LTMuMiAyNy4yLTguNS0xLjItMy44LTItNy43LTItMTEuOHYtOS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyRWRpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMjU2YzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzI5NC43IDAgMjI0IDAgOTYgNTcuMyA5NiAxMjhzNTcuMyAxMjggMTI4IDEyOHptODkuNiAzMmgtMTYuN2MtMjIuMiAxMC4yLTQ2LjkgMTYtNzIuOSAxNnMtNTAuNi01LjgtNzIuOS0xNmgtMTYuN0M2MC4yIDI4OCAwIDM0OC4yIDAgNDIyLjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI3NC45Yy0yLjQtNi44LTMuNC0xNC0yLjYtMjEuM2w2LjgtNjAuOSAxLjItMTEuMSA3LjktNy45IDc3LjMtNzcuM2MtMjQuNS0yNy43LTYwLTQ1LjUtOTkuOS00NS41em00NS4zIDE0NS4zbC02LjggNjFjLTEuMSAxMC4yIDcuNSAxOC44IDE3LjYgMTcuNmw2MC45LTYuOCAxMzcuOS0xMzcuOS03MS43LTcxLjctMTM3LjkgMTM3Ljh6TTYzMyAyNjguOUw1OTUuMSAyMzFjLTkuMy05LjMtMjQuNS05LjMtMzMuOCAwbC0zNy44IDM3LjgtNC4xIDQuMSA3MS44IDcxLjcgNDEuOC00MS44YzkuMy05LjQgOS4zLTI0LjUgMC0zMy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyRnJpZW5kcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMjU2YzYxLjkgMCAxMTItNTAuMSAxMTItMTEyUzI1My45IDMyIDE5MiAzMiA4MCA4Mi4xIDgwIDE0NHM1MC4xIDExMiAxMTIgMTEyem03Ni44IDMyaC04LjNjLTIwLjggMTAtNDMuOSAxNi02OC41IDE2cy00Ny42LTYtNjguNS0xNmgtOC4zQzUxLjYgMjg4IDAgMzM5LjYgMCA0MDMuMlY0MzJjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4di0yOC44YzAtNjMuNi01MS42LTExNS4yLTExNS4yLTExNS4yek00ODAgMjU2YzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2LTk2IDQzLTk2IDk2IDQzIDk2IDk2IDk2em00OCAzMmgtMy44Yy0xMy45IDQuOC0yOC42IDgtNDQuMiA4cy0zMC4zLTMuMi00NC4yLThINDMyYy0yMC40IDAtMzkuMiA1LjktNTUuNyAxNS40IDI0LjQgMjYuMyAzOS43IDYxLjIgMzkuNyA5OS44djM4LjRjMCAyLjItLjUgNC4zLS42IDYuNEg1OTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC02MS45LTUwLjEtMTEyLTExMi0xMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJHcmFkdWF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTkuNCAzMjAuNkwyMjQgNDE2bC05NS40LTk1LjRDNTcuMSAzMjMuNyAwIDM4Mi4yIDAgNDU0LjR2OS42YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OHYtOS42YzAtNzIuMi01Ny4xLTEzMC43LTEyOC42LTEzMy44ek0xMy42IDc5LjhsNi40IDEuNXY1OC40Yy03IDQuMi0xMiAxMS41LTEyIDIwLjMgMCA4LjQgNC42IDE1LjQgMTEuMSAxOS43TDMuNSAyNDJjLTEuNyA2LjkgMi4xIDE0IDcuNiAxNGg0MS44YzUuNSAwIDkuMy03LjEgNy42LTE0bC0xNS42LTYyLjNDNTEuNCAxNzUuNCA1NiAxNjguNCA1NiAxNjBjMC04LjgtNS0xNi4xLTEyLTIwLjNWODcuMWw2NiAxNS45Yy04LjYgMTcuMi0xNCAzNi40LTE0IDU3IDAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4czEyOC01Ny4zIDEyOC0xMjhjMC0yMC42LTUuMy0zOS44LTE0LTU3bDk2LjMtMjMuMmMxOC4yLTQuNCAxOC4yLTI3LjEgMC0zMS41bC0xOTAuNC00NmMtMTMtMy4xLTI2LjctMy4xLTM5LjcgMEwxMy42IDQ4LjJjLTE4LjEgNC40LTE4LjEgMjcuMiAwIDMxLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJJbmp1cmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3Ny4zNyAxMS45OEMyNjEuMDggNC40NyAyNDMuMTEgMCAyMjQgMGMtNTMuNjkgMC05OS41IDMzLjEzLTExOC41MSA4MGg4MS4xOWw5MC42OS02OC4wMnpNMzQyLjUxIDgwYy03LjktMTkuNDctMjAuNjctMzYuMi0zNi40OS00OS41MkwyMzkuOTkgODBoMTAyLjUyek0yMjQgMjU2YzcwLjY5IDAgMTI4LTU3LjMxIDEyOC0xMjggMC01LjQ4LS45NS0xMC43LTEuNjEtMTZIOTcuNjFjLS42NyA1LjMtMS42MSAxMC41Mi0xLjYxIDE2IDAgNzAuNjkgNTcuMzEgMTI4IDEyOCAxMjh6TTgwIDI5OS43VjUxMmgxMjguMjZsLTk4LjQ1LTIyMS41MkExMzIuODM1IDEzMi44MzUgMCAwIDAgODAgMjk5Ljd6TTAgNDY0YzAgMjYuNTEgMjEuNDkgNDggNDggNDhWMzIwLjI0QzE4Ljg4IDM0NC44OSAwIDM4MS4yNiAwIDQyMi40VjQ2NHptMjU2LTQ4aC01NS4zOGw0Mi42NyA5NkgyNTZjMjYuNDcgMCA0OC0yMS41MyA0OC00OHMtMjEuNTMtNDgtNDgtNDh6bTU3LjYtMTI4aC0xNi43MWMtMjIuMjQgMTAuMTgtNDYuODggMTYtNzIuODkgMTZzLTUwLjY1LTUuODItNzIuODktMTZoLTcuMzdsNDIuNjcgOTZIMjU2YzQ0LjExIDAgODAgMzUuODkgODAgODAgMCAxOC4wOC02LjI2IDM0LjU5LTE2LjQxIDQ4SDQwMGMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4di00MS42YzAtNzQuMjMtNjAuMTctMTM0LjQtMTM0LjQtMTM0LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAyNTZBMTI4IDEyOCAwIDEgMCA5NiAxMjhhMTI4IDEyOCAwIDAgMCAxMjggMTI4em05NiA2NGE2My4wOCA2My4wOCAwIDAgMSA4LjEtMzAuNWMtNC44LS41LTkuNS0xLjUtMTQuNS0xLjVoLTE2LjdhMTc0LjA4IDE3NC4wOCAwIDAgMS0xNDUuOCAwaC0xNi43QTEzNC40MyAxMzQuNDMgMCAwIDAgMCA0MjIuNFY0NjRhNDggNDggMCAwIDAgNDggNDhoMjgwLjlhNjMuNTQgNjMuNTQgMCAwIDEtOC45LTMyem0yODgtMzJoLTMydi04MGE4MCA4MCAwIDAgMC0xNjAgMHY4MGgtMzJhMzIgMzIgMCAwIDAtMzIgMzJ2MTYwYTMyIDMyIDAgMCAwIDMyIDMyaDIyNGEzMiAzMiAwIDAgMCAzMi0zMlYzMjBhMzIgMzIgMCAwIDAtMzItMzJ6TTQ5NiA0MzJhMzIgMzIgMCAxIDEgMzItMzIgMzIgMzIgMCAwIDEtMzIgMzJ6bTMyLTE0NGgtNjR2LTgwYTMyIDMyIDAgMCAxIDY0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJNZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMjU2YzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzI5NC43IDAgMjI0IDAgOTYgNTcuMyA5NiAxMjhzNTcuMyAxMjggMTI4IDEyOHpNMTA0IDQyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0LTEwLjctMjQtMjQtMjQtMjQgMTAuNy0yNCAyNHptMjE2LTEzNS40djQ5YzM2LjUgNy40IDY0IDM5LjggNjQgNzguNHY0MS43YzAgNy42LTUuNCAxNC4yLTEyLjkgMTUuN2wtMzIuMiA2LjRjLTQuMy45LTguNS0xLjktOS40LTYuM2wtMy4xLTE1LjdjLS45LTQuMyAxLjktOC42IDYuMy05LjRsMTkuMy0zLjlWNDE2YzAtNjIuOC05Ni02NS4xLTk2IDEuOXYyNi43bDE5LjMgMy45YzQuMy45IDcuMSA1LjEgNi4zIDkuNGwtMy4xIDE1LjdjLS45IDQuMy01LjEgNy4xLTkuNCA2LjNsLTMxLjItNC4yYy03LjktMS4xLTEzLjgtNy44LTEzLjgtMTUuOVY0MTZjMC0zOC42IDI3LjUtNzAuOSA2NC03OC40di00NS4yYy0yLjIuNy00LjQgMS4xLTYuNiAxLjktMTggNi4zLTM3LjMgOS44LTU3LjQgOS44cy0zOS40LTMuNS01Ny40LTkuOGMtNy40LTIuNi0xNC45LTQuMi0yMi42LTUuMnY4MS42YzIzLjEgNi45IDQwIDI4LjEgNDAgNTMuNCAwIDMwLjktMjUuMSA1Ni01NiA1NnMtNTYtMjUuMS01Ni01NmMwLTI1LjMgMTYuOS00Ni41IDQwLTUzLjR2LTgwLjRDNDguNSAzMDEgMCAzNTUuOCAwIDQyMi40djQ0LjhDMCA0OTEuOSAyMC4xIDUxMiA0NC44IDUxMmgzNTguNGMyNC43IDAgNDQuOC0yMC4xIDQ0LjgtNDQuOHYtNDQuOGMwLTcyLTU2LjgtMTMwLjMtMTI4LTEzMy44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI0IDIwOEg0MzJjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMTkyYzguOCAwIDE2LTcuMiAxNi0xNnYtMzJjMC04LjgtNy4yLTE2LTE2LTE2em0tNDAwIDQ4YzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzI5NC43IDAgMjI0IDAgOTYgNTcuMyA5NiAxMjhzNTcuMyAxMjggMTI4IDEyOHptODkuNiAzMmgtMTYuN2MtMjIuMiAxMC4yLTQ2LjkgMTYtNzIuOSAxNnMtNTAuNi01LjgtNzIuOS0xNmgtMTYuN0M2MC4yIDI4OCAwIDM0OC4yIDAgNDIyLjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OHYtNDEuNmMwLTc0LjItNjAuMi0xMzQuNC0xMzQuNC0xMzQuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlck5pbmphIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyNS40IDI4OS4yTDIyNCAzOTAuNiAxMjIuNiAyODkuMkM1NCAyOTUuMyAwIDM1Mi4yIDAgNDIyLjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OHYtNDEuNmMwLTcwLjItNTQtMTI3LjEtMTIyLjYtMTMzLjJ6TTMyIDE5MmMyNy4zIDAgNTEuOC0xMS41IDY5LjItMjkuNyAxNS4xIDUzLjkgNjQgOTMuNyAxMjIuOCA5My43IDcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzI5NC43IDAgMjI0IDBjLTUwLjQgMC05My42IDI5LjQtMTE0LjUgNzEuOEM5Mi4xIDQ3LjggNjQgMzIgMzIgMzJjMCAzMy40IDE3LjEgNjIuOCA0My4xIDgwLTI2IDE3LjItNDMuMSA0Ni42LTQzLjEgODB6bTE0NC05Nmg5NmMxNy43IDAgMzIgMTQuMyAzMiAzMkgxNDRjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJOdXJzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTkuNDEsMzIwLDIyNCw0MTUuMzksMTI4LjU5LDMyMEM1Ny4xLDMyMy4xLDAsMzgxLjYsMCw0NTMuNzlBNTguMjEsNTguMjEsMCwwLDAsNTguMjEsNTEySDM4OS43OUE1OC4yMSw1OC4yMSwwLDAsMCw0NDgsNDUzLjc5QzQ0OCwzODEuNiwzOTAuOSwzMjMuMSwzMTkuNDEsMzIwWk0yMjQsMzA0QTEyOCwxMjgsMCwwLDAsMzUyLDE3NlY2NS44MmEzMiwzMiwwLDAsMC0yMC43Ni0zMEwyNDYuNDcsNC4wN2E2NCw2NCwwLDAsMC00NC45NCwwTDExNi43NiwzNS44NkEzMiwzMiwwLDAsMCw5Niw2NS44MlYxNzZBMTI4LDEyOCwwLDAsMCwyMjQsMzA0Wk0xODQsNzEuNjdhNSw1LDAsMCwxLDUtNWgyMS42N1Y0NWE1LDUsMCwwLDEsNS01aDE2LjY2YTUsNSwwLDAsMSw1LDVWNjYuNjdIMjU5YTUsNSwwLDAsMSw1LDVWODguMzNhNSw1LDAsMCwxLTUsNUgyMzcuMzNWMTE1YTUsNSwwLDAsMS01LDVIMjE1LjY3YTUsNSwwLDAsMS01LTVWOTMuMzNIMTg5YTUsNSwwLDAsMS01LTVaTTE0NCwxNjBIMzA0djE2YTgwLDgwLDAsMCwxLTE2MCwwWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjQgMjA4aC02NHYtNjRjMC04LjgtNy4yLTE2LTE2LTE2aC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djY0aC02NGMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg2NHY2NGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2di02NGg2NGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnptLTQwMCA0OGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFMyOTQuNyAwIDIyNCAwIDk2IDU3LjMgOTYgMTI4czU3LjMgMTI4IDEyOCAxMjh6bTg5LjYgMzJoLTE2LjdjLTIyLjIgMTAuMi00Ni45IDE2LTcyLjkgMTZzLTUwLjYtNS44LTcyLjktMTZoLTE2LjdDNjAuMiAyODggMCAzNDguMiAwIDQyMi40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTQxLjZjMC03NC4yLTYwLjItMTM0LjQtMTM0LjQtMTM0LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJTZWNyZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzgzLjkgMzA4LjNsMjMuOS02Mi42YzQtMTAuNS0zLjctMjEuNy0xNS0yMS43aC01OC41YzExLTE4LjkgMTcuOC00MC42IDE3LjgtNjR2LS4zYzM5LjItNy44IDY0LTE5LjEgNjQtMzEuNyAwLTEzLjMtMjcuMy0yNS4xLTcwLjEtMzMtOS4yLTMyLjgtMjctNjUuOC00MC42LTgyLjgtOS41LTExLjktMjUuOS0xNS42LTM5LjUtOC44bC0yNy42IDEzLjhjLTkgNC41LTE5LjYgNC41LTI4LjYgMEwxODIuMSAzLjRjLTEzLjYtNi44LTMwLTMuMS0zOS41IDguOC0xMy41IDE3LTMxLjQgNTAtNDAuNiA4Mi44LTQyLjcgNy45LTcwIDE5LjctNzAgMzMgMCAxMi42IDI0LjggMjMuOSA2NCAzMS43di4zYzAgMjMuNCA2LjggNDUuMSAxNy44IDY0SDU2LjNjLTExLjUgMC0xOS4yIDExLjctMTQuNyAyMi4zbDI1LjggNjAuMkMyNy4zIDMyOS44IDAgMzcyLjcgMCA0MjIuNHY0NC44QzAgNDkxLjkgMjAuMSA1MTIgNDQuOCA1MTJoMzU4LjRjMjQuNyAwIDQ0LjgtMjAuMSA0NC44LTQ0Ljh2LTQ0LjhjMC00OC40LTI1LjgtOTAuNC02NC4xLTExNC4xek0xNzYgNDgwbC00MS42LTE5MiA0OS42IDMyIDI0IDQwLTMyIDEyMHptOTYgMGwtMzItMTIwIDI0LTQwIDQ5LjYtMzJMMjcyIDQ4MHptNDEuNy0yOTguNWMtMy45IDExLjktNyAyNC42LTE2LjUgMzMuNC0xMC4xIDkuMy00OCAyMi40LTY0LTI1LTIuOC04LjQtMTUuNC04LjQtMTguMyAwLTE3IDUwLjItNTYgMzIuNC02NCAyNS05LjUtOC44LTEyLjctMjEuNS0xNi41LTMzLjQtLjgtMi41LTYuMy01LjctNi4zLTUuOHYtMTAuOGMyOC4zIDMuNiA2MSA1LjggOTYgNS44czY3LjctMi4xIDk2LTUuOHYxMC44Yy0uMS4xLTUuNiAzLjItNi40IDUuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlclNoaWVsZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjIuMyAyNzEuMWwtMTE1LjItNDVjLTQuMS0xLjYtMTIuNi0zLjctMjIuMiAwbC0xMTUuMiA0NWMtMTAuNyA0LjItMTcuNyAxNC0xNy43IDI0LjkgMCAxMTEuNiA2OC43IDE4OC44IDEzMi45IDIxMy45IDkuNiAzLjcgMTggMS42IDIyLjIgMEM1NTguNCA0ODkuOSA2NDAgNDIwLjUgNjQwIDI5NmMwLTEwLjktNy0yMC43LTE3LjctMjQuOXpNNDk2IDQ2Mi40VjI3My4zbDk1LjUgMzcuM2MtNS42IDg3LjEtNjAuOSAxMzUuNC05NS41IDE1MS44ek0yMjQgMjU2YzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzI5NC43IDAgMjI0IDAgOTYgNTcuMyA5NiAxMjhzNTcuMyAxMjggMTI4IDEyOHptOTYgNDBjMC0yLjUuOC00LjggMS4xLTcuMi0yLjUtLjEtNC45LS44LTcuNS0uOGgtMTYuN2MtMjIuMiAxMC4yLTQ2LjkgMTYtNzIuOSAxNnMtNTAuNi01LjgtNzIuOS0xNmgtMTYuN0M2MC4yIDI4OCAwIDM0OC4yIDAgNDIyLjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmM2LjggMCAxMy4zLTEuNSAxOS4yLTQtNTQtNDIuOS05OS4yLTExNi43LTk5LjItMjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjMzLjggNDU4LjFMMzYyLjMgMjQ4LjNDNDEyLjEgMjMwLjcgNDQ4IDE4My44IDQ0OCAxMjggNDQ4IDU3LjMgMzkwLjcgMCAzMjAgMGMtNjcuMSAwLTEyMS41IDUxLjgtMTI2LjkgMTE3LjRMNDUuNSAzLjRDMzguNS0yIDI4LjUtLjggMjMgNi4yTDMuNCAzMS40Yy01LjQgNy00LjIgMTcgMi44IDIyLjRsNTg4LjQgNDU0LjdjNyA1LjQgMTcgNC4yIDIyLjUtMi44bDE5LjYtMjUuM2M1LjQtNi44IDQuMS0xNi45LTIuOS0yMi4zek05NiA0MjIuNFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoMzUwLjJMMjA3LjQgMjkwLjNDMTQ0LjIgMzAxLjMgOTYgMzU2IDk2IDQyMi40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyVGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzMC42IDM2NC45bC05MC4zLTkwLjJjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdoLTc5LjNjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjc5LjJjMCAxNyA2LjcgMzMuMiAxOC43IDQ1LjJsOTAuMyA5MC4yYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDkyLjUtOTIuNWMxMi42LTEyLjUgMTIuNi0zMi43LjEtNDUuMnptLTE4Mi44LTIxYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjRjMCAxMy4yLTEwLjcgMjQtMjQgMjR6bS0yMjMuOC04OGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOEMzNTIgNTcuMyAyOTQuNyAwIDIyNCAwUzk2IDU3LjMgOTYgMTI4YzAgNzAuNiA1Ny4zIDEyNy45IDEyOCAxMjcuOXptMTI3LjggMTExLjJWMjk0Yy0xMi4yLTMuNi0yNC45LTYuMi0zOC4yLTYuMmgtMTYuN2MtMjIuMiAxMC4yLTQ2LjkgMTYtNzIuOSAxNnMtNTAuNi01LjgtNzIuOS0xNmgtMTYuN0M2MC4yIDI4Ny45IDAgMzQ4LjEgMCA0MjIuM3Y0MS42YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMxNS41IDAgMjkuMS03LjUgMzcuOS0xOC45bC01OC01OGMtMTguMS0xOC4xLTI4LjEtNDIuMi0yOC4xLTY3Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJUaWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDI1NmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFMyOTQuNyAwIDIyNCAwIDk2IDU3LjMgOTYgMTI4czU3LjMgMTI4IDEyOCAxMjh6bTk1LjggMzIuNkwyNzIgNDgwbC0zMi0xMzYgMzItNTZoLTk2bDMyIDU2LTMyIDEzNi00Ny44LTE5MS40QzU2LjkgMjkyIDAgMzUwLjMgMCA0MjIuNFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4di00MS42YzAtNzIuMS01Ni45LTEzMC40LTEyOC4yLTEzMy44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyVGltZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTg5LjYgMjQwbDQ1LjYtNDUuNmM2LjMtNi4zIDYuMy0xNi41IDAtMjIuOGwtMjIuOC0yMi44Yy02LjMtNi4zLTE2LjUtNi4zLTIyLjggMEw1NDQgMTk0LjRsLTQ1LjYtNDUuNmMtNi4zLTYuMy0xNi41LTYuMy0yMi44IDBsLTIyLjggMjIuOGMtNi4zIDYuMy02LjMgMTYuNSAwIDIyLjhsNDUuNiA0NS42LTQ1LjYgNDUuNmMtNi4zIDYuMy02LjMgMTYuNSAwIDIyLjhsMjIuOCAyMi44YzYuMyA2LjMgMTYuNSA2LjMgMjIuOCAwbDQ1LjYtNDUuNiA0NS42IDQ1LjZjNi4zIDYuMyAxNi41IDYuMyAyMi44IDBsMjIuOC0yMi44YzYuMy02LjMgNi4zLTE2LjUgMC0yMi44TDU4OS42IDI0MHpNMjI0IDI1NmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFMyOTQuNyAwIDIyNCAwIDk2IDU3LjMgOTYgMTI4czU3LjMgMTI4IDEyOCAxMjh6bTg5LjYgMzJoLTE2LjdjLTIyLjIgMTAuMi00Ni45IDE2LTcyLjkgMTZzLTUwLjYtNS44LTcyLjktMTZoLTE2LjdDNjAuMiAyODggMCAzNDguMiAwIDQyMi40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTQxLjZjMC03NC4yLTYwLjItMTM0LjQtMTM0LjQtMTM0LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDI1NmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFMyOTQuNyAwIDIyNCAwIDk2IDU3LjMgOTYgMTI4czU3LjMgMTI4IDEyOCAxMjh6bTg5LjYgMzJoLTE2LjdjLTIyLjIgMTAuMi00Ni45IDE2LTcyLjkgMTZzLTUwLjYtNS44LTcyLjktMTZoLTE2LjdDNjAuMiAyODggMCAzNDguMiAwIDQyMi40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTQxLjZjMC03NC4yLTYwLjItMTM0LjQtMTM0LjQtMTM0LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJzQ29nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYxMC41IDM0MS4zYzIuNi0xNC4xIDIuNi0yOC41IDAtNDIuNmwyNS44LTE0LjljMy0xLjcgNC4zLTUuMiAzLjMtOC41LTYuNy0yMS42LTE4LjItNDEuMi0zMy4yLTU3LjQtMi4zLTIuNS02LTMuMS05LTEuNGwtMjUuOCAxNC45Yy0xMC45LTkuMy0yMy40LTE2LjUtMzYuOS0yMS4zdi0yOS44YzAtMy40LTIuNC02LjQtNS43LTcuMS0yMi4zLTUtNDUtNC44LTY2LjIgMC0zLjMuNy01LjcgMy43LTUuNyA3LjF2MjkuOGMtMTMuNSA0LjgtMjYgMTItMzYuOSAyMS4zbC0yNS44LTE0LjljLTIuOS0xLjctNi43LTEuMS05IDEuNC0xNSAxNi4yLTI2LjUgMzUuOC0zMy4yIDU3LjQtMSAzLjMuNCA2LjggMy4zIDguNWwyNS44IDE0LjljLTIuNiAxNC4xLTIuNiAyOC41IDAgNDIuNmwtMjUuOCAxNC45Yy0zIDEuNy00LjMgNS4yLTMuMyA4LjUgNi43IDIxLjYgMTguMiA0MS4xIDMzLjIgNTcuNCAyLjMgMi41IDYgMy4xIDkgMS40bDI1LjgtMTQuOWMxMC45IDkuMyAyMy40IDE2LjUgMzYuOSAyMS4zdjI5LjhjMCAzLjQgMi40IDYuNCA1LjcgNy4xIDIyLjMgNSA0NSA0LjggNjYuMiAwIDMuMy0uNyA1LjctMy43IDUuNy03LjF2LTI5LjhjMTMuNS00LjggMjYtMTIgMzYuOS0yMS4zbDI1LjggMTQuOWMyLjkgMS43IDYuNyAxLjEgOS0xLjQgMTUtMTYuMiAyNi41LTM1LjggMzMuMi01Ny40IDEtMy4zLS40LTYuOC0zLjMtOC41bC0yNS44LTE0Ljl6TTQ5NiAzNjguNWMtMjYuOCAwLTQ4LjUtMjEuOC00OC41LTQ4LjVzMjEuOC00OC41IDQ4LjUtNDguNSA0OC41IDIxLjggNDguNSA0OC41LTIxLjcgNDguNS00OC41IDQ4LjV6TTk2IDIyNGMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NC02NCAyOC43LTY0IDY0IDI4LjcgNjQgNjQgNjR6bTIyNCAzMmMxLjkgMCAzLjctLjUgNS42LS42IDguMy0yMS43IDIwLjUtNDIuMSAzNi4zLTU5LjIgNy40LTggMTcuOS0xMi42IDI4LjktMTIuNiA2LjkgMCAxMy43IDEuOCAxOS42IDUuM2w3LjkgNC42Yy44LS41IDEuNi0uOSAyLjQtMS40IDctMTQuNiAxMS4yLTMwLjggMTEuMi00OCAwLTYxLjktNTAuMS0xMTItMTEyLTExMlMyMDggODIuMSAyMDggMTQ0YzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyem0xMDUuMiAxOTQuNWMtMi4zLTEuMi00LjYtMi42LTYuOC0zLjktOC4yIDQuOC0xNS4zIDkuOC0yNy41IDkuOC0xMC45IDAtMjEuNC00LjYtMjguOS0xMi42LTE4LjMtMTkuOC0zMi4zLTQzLjktNDAuMi02OS42LTEwLjctMzQuNSAyNC45LTQ5LjcgMjUuOC01MC4zLS4xLTIuNi0uMS01LjIgMC03LjhsLTcuOS00LjZjLTMuOC0yLjItNy01LTkuOC04LjEtMy4zLjItNi41LjYtOS44LjYtMjQuNiAwLTQ3LjYtNi02OC41LTE2aC04LjNDMTc5LjYgMjg4IDEyOCAzMzkuNiAxMjggNDAzLjJWNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI1NS40Yy0zLjctNi02LjItMTIuOC02LjItMjAuM3YtOS4yek0xNzMuMSAyNzQuNkMxNjEuNSAyNjMuMSAxNDUuNiAyNTYgMTI4IDI1Nkg2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjUuOWM2LjMtNDcuNCAzNC45LTg3LjMgNzUuMi0xMDkuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlcnNTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMzIuNjUsMjEyLjMyLDM2LjIxLDEzNy43OEE2My40LDYzLjQsMCwwLDAsMzIsMTYwYTYzLjg0LDYzLjg0LDAsMCwwLDEwMC42NSw1Mi4zMlptNDAuNDQsNjIuMjhBNjMuNzksNjMuNzksMCwwLDAsMTI4LDI1Nkg2NEE2NC4wNiw2NC4wNiwwLDAsMCwwLDMyMHYzMmEzMiwzMiwwLDAsMCwzMiwzMkg5Ny45MUExNDYuNjIsMTQ2LjYyLDAsMCwxLDE3My4wOSwyNzQuNlpNNTQ0LDIyNGE2NCw2NCwwLDEsMC02NC02NEE2NC4wNiw2NC4wNiwwLDAsMCw1NDQsMjI0Wk01MDAuNTYsMzU1LjExYTExNC4yNCwxMTQuMjQsMCwwLDAtODQuNDctNjUuMjhMMzYxLDI0Ny4yM2M0MS40Ni0xNi4zLDcxLTU1LjkyLDcxLTEwMy4yM0ExMTEuOTMsMTExLjkzLDAsMCwwLDMyMCwzMmMtNTcuMTQsMC0xMDMuNjksNDIuODMtMTEwLjYsOTguMDhMNDUuNDYsMy4zOEExNiwxNiwwLDAsMCwyMyw2LjE5TDMuMzcsMzEuNDZBMTYsMTYsMCwwLDAsNi4xOCw1My45MUw1OTQuNTMsNTA4LjYzQTE2LDE2LDAsMCwwLDYxNyw1MDUuODJsMTkuNjQtMjUuMjdhMTYsMTYsMCwwLDAtMi44MS0yMi40NVpNMTI4LDQwMy4yMVY0MzJhNDgsNDgsMCwwLDAsNDgsNDhINDY0YTQ3LjQ1LDQ3LjQ1LDAsMCwwLDEyLjU3LTEuODdMMjMyLDI4OS4xM0MxNzMuNzQsMjk0LjgzLDEyOCwzNDMuNDIsMTI4LDQwMy4yMVpNNTc2LDI1Nkg1MTJhNjMuNzksNjMuNzksMCwwLDAtNDUuMDksMTguNkExNDYuMjksMTQ2LjI5LDAsMCwxLDU0MiwzODRoNjZhMzIsMzIsMCwwLDAsMzItMzJWMzIwQTY0LjA2LDY0LjA2LDAsMCwwLDU3NiwyNTZaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDIyNGMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NC02NCAyOC43LTY0IDY0IDI4LjcgNjQgNjQgNjR6bTQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0LTY0IDI4LjctNjQgNjQgMjguNyA2NCA2NCA2NHptMzIgMzJoLTY0Yy0xNy42IDAtMzMuNSA3LjEtNDUuMSAxOC42IDQwLjMgMjIuMSA2OC45IDYyIDc1LjEgMTA5LjRoNjZjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0em0tMjU2IDBjNjEuOSAwIDExMi01MC4xIDExMi0xMTJTMzgxLjkgMzIgMzIwIDMyIDIwOCA4Mi4xIDIwOCAxNDRzNTAuMSAxMTIgMTEyIDExMnptNzYuOCAzMmgtOC4zYy0yMC44IDEwLTQzLjkgMTYtNjguNSAxNnMtNDcuNi02LTY4LjUtMTZoLTguM0MxNzkuNiAyODggMTI4IDMzOS42IDEyOCA0MDMuMlY0MzJjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4di0yOC44YzAtNjMuNi01MS42LTExNS4yLTExNS4yLTExNS4yem0tMjIzLjctMTMuNEMxNjEuNSAyNjMuMSAxNDUuNiAyNTYgMTI4IDI1Nkg2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjUuOWM2LjMtNDcuNCAzNC45LTg3LjMgNzUuMi0xMDkuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXRlbnNpbFNwb29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MC4xIDMxLjljLTU1LTU1LjEtMTY0LjktMzQuNS0yMjcuOCAyOC41LTQ5LjMgNDkuMy01NS4xIDExMC0yOC44IDE2MC40TDkgNDEzLjJjLTExLjYgMTAuNS0xMi4xIDI4LjUtMSAzOS41TDU5LjMgNTA0YzExIDExIDI5LjEgMTAuNSAzOS41LTEuMWwxOTIuNC0yMTQuNGM1MC40IDI2LjMgMTExLjEgMjAuNSAxNjAuNC0yOC44IDYzLTYyLjkgODMuNi0xNzIuOCAyOC41LTIyNy44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVdGVuc2lscyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDE2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDcuOSAxNS4yYy44IDQuNyAxNi4xIDk0LjUgMTYuMSAxMjguOCAwIDUyLjMtMjcuOCA4OS42LTY4LjkgMTA0LjZMMTY4IDQ4Ni43Yy43IDEzLjctMTAuMiAyNS4zLTI0IDI1LjNIODBjLTEzLjcgMC0yNC43LTExLjUtMjQtMjUuM2wxMi45LTIzOC4xQzI3LjcgMjMzLjYgMCAxOTYuMiAwIDE0NCAwIDEwOS42IDE1LjMgMTkuOSAxNi4xIDE1LjIgMTkuMy01LjEgNjEuNC01LjQgNjQgMTYuM3YxNDEuMmMxLjMgMy40IDE1LjEgMy4yIDE2IDAgMS40LTI1LjMgNy45LTEzOS4yIDgtMTQxLjggMy4zLTIwLjggNDQuNy0yMC44IDQ3LjkgMCAuMiAyLjcgNi42IDExNi41IDggMTQxLjguOSAzLjIgMTQuOCAzLjQgMTYgMFYxNi4zYzIuNi0yMS42IDQ0LjgtMjEuNCA0OC0xLjF6bTExOS4yIDI4NS43bC0xNSAxODUuMWMtMS4yIDE0IDkuOSAyNiAyMy45IDI2aDU2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjI0YzAtMTMuMi0xMC43LTI0LTI0LTI0LTgyLjUgMC0yMjEuNCAxNzguNS02NC45IDMwMC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWZWN0b3JTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDEyOFYzMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC05NmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMkgxNjBjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMkgzMkMxNC4zMyAwIDAgMTQuMzMgMCAzMnY5NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMydjE5MmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY5NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDk2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJoMTkyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoOTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtOTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMlYxNjBjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnptLTk2LTY0aDMydjMyaC0zMlY2NHpNNjQgNjRoMzJ2MzJINjRWNjR6bTMyIDM4NEg2NHYtMzJoMzJ2MzJ6bTM1MiAwaC0zMnYtMzJoMzJ2MzJ6bS0zMi05NmgtMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MzJIMTYwdi0zMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMySDk2VjE2MGgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjk2aDE5MnYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMydjE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmVudXNEb3VibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDE3NmMwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NFMwIDk2LjUgMCAxNzZjMCA2OC41IDQ3LjkgMTI1LjkgMTEyIDE0MC40VjM2OEg3NmMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmgzNnYzNmMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEydi0zNmgzNmM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtMzZ2LTUxLjZjNjQuMS0xNC41IDExMi03MS45IDExMi0xNDAuNHptLTIyNCAwYzAtNDQuMSAzNS45LTgwIDgwLTgwczgwIDM1LjkgODAgODAtMzUuOSA4MC04MCA4MC04MC0zNS45LTgwLTgwem0zMzYgMTQwLjRWMzY4aDM2YzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJoLTM2djM2YzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnYtMzZoLTM2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmgzNnYtNTEuNmMtMjEuMi00LjgtNDAuNi0xNC4zLTU3LjItMjcuMyAxNC0xNi43IDI1LTM2IDMyLjEtNTcuMSAxNC41IDE0LjggMzQuNyAyNCA1Ny4xIDI0IDQ0LjEgMCA4MC0zNS45IDgwLTgwcy0zNS45LTgwLTgwLTgwYy0yMi4zIDAtNDIuNiA5LjItNTcuMSAyNC03LjEtMjEuMS0xOC00MC40LTMyLjEtNTcuMUMzMDMuNCA0My42IDMzNC4zIDMyIDM2OCAzMmM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDY4LjUtNDcuOSAxMjUuOS0xMTIgMTQwLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZlbnVzTWFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjQgMGgtNzljLTEwLjcgMC0xNiAxMi45LTguNSAyMC41bDE2LjkgMTYuOS00OC43IDQ4LjdDNDIyLjUgNzIuMSAzOTYuMiA2NCAzNjggNjRjLTMzLjcgMC02NC42IDExLjYtODkuMiAzMC45IDE0IDE2LjcgMjUgMzYgMzIuMSA1Ny4xIDE0LjUtMTQuOCAzNC43LTI0IDU3LjEtMjQgNDQuMSAwIDgwIDM1LjkgODAgODBzLTM1LjkgODAtODAgODBjLTIyLjMgMC00Mi42LTkuMi01Ny4xLTI0LTcuMSAyMS4xLTE4IDQwLjQtMzIuMSA1Ny4xIDI0LjUgMTkuNCA1NS41IDMwLjkgODkuMiAzMC45IDc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0IDAtMjguMi04LjEtNTQuNS0yMi4xLTc2LjdsNDguNy00OC43IDE2LjkgMTYuOWMyLjQgMi40IDUuNCAzLjUgOC40IDMuNSA2LjIgMCAxMi4xLTQuOCAxMi4xLTEyVjEyYzAtNi42LTUuNC0xMi0xMi0xMnpNMTQ0IDY0QzY0LjUgNjQgMCAxMjguNSAwIDIwOGMwIDY4LjUgNDcuOSAxMjUuOSAxMTIgMTQwLjRWNDAwSDc2Yy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDM2djM2YzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ2LTM2aDM2YzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC0zNnYtNTEuNmM2NC4xLTE0LjYgMTEyLTcxLjkgMTEyLTE0MC40IDAtNzkuNS02NC41LTE0NC0xNDQtMTQ0em0wIDIyNGMtNDQuMSAwLTgwLTM1LjktODAtODBzMzUuOS04MCA4MC04MCA4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZlbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyODggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAxNzZjMC03OS41LTY0LjUtMTQ0LTE0NC0xNDRTMCA5Ni41IDAgMTc2YzAgNjguNSA0Ny45IDEyNS45IDExMiAxNDAuNFYzNjhINzZjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoMzZ2MzZjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnYtMzZoMzZjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTM2di01MS42YzY0LjEtMTQuNSAxMTItNzEuOSAxMTItMTQwLjR6bS0yMjQgMGMwLTQ0LjEgMzUuOS04MCA4MC04MHM4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODAtODAtMzUuOS04MC04MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmVzdFBhdGNoZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM3LjI1MiwyMzkuODc3LDM4NCwxNjBWMzJBMzIsMzIsMCwwLDAsMzUyLDBIMzIwYTIzLjk4MiwyMy45ODIsMCwwLDAtMTMuMzEyLDQuMDMxbC0yNSwxNi42NzJhMTAzLjc5NCwxMDMuNzk0LDAsMCwxLTExNS4zNzYsMGwtMjUtMTYuNjcyQTIzLjk4MiwyMy45ODIsMCwwLDAsMTI4LDBIOTZBMzIsMzIsMCwwLDAsNjQsMzJWMTYwTDEwLjc0OCwyMzkuODc3QTY0LDY0LDAsMCwwLDAsMjc1LjM3N1Y0ODBhMzIsMzIsMCwwLDAsMzIsMzJIMTkyVjI4OGEzMS45ODcsMzEuOTg3LDAsMCwxLDEuNjQzLTEwLjExOUwyMDcuMTM1LDIzNy40LDE1MC4xODgsNjYuNTYxQTE1MS41NzksMTUxLjU3OSwwLDAsMCwyMjQsODYuMjM0YTE1MS41NjUsMTUxLjU2NSwwLDAsMCw3My44MTEtMTkuNjY4TDIyNCwyODhWNTEySDQxNmEzMiwzMiwwLDAsMCwzMi0zMlYyNzUuMzc3QTY0LDY0LDAsMCwwLDQzNy4yNTIsMjM5Ljg3N1pNNjMuNSwyNzIuNDg0YTEyLjAxLDEyLjAxLDAsMCwxLDE3LTE2Ljk2OGwxNS41LDE1LjUsMTUuNS0xNS41YTEyLjAxLDEyLjAxLDAsMCwxLDE3LDE2Ljk2OEwxMTIuOTg0LDI4OCwxMjguNSwzMDMuNTE2YTEyLjAxLDEyLjAxLDAsMCwxLTE3LDE2Ljk2OEw5NiwzMDQuOTg0bC0xNS41LDE1LjVhMTIuMDEsMTIuMDEsMCwwLDEtMTctMTYuOTY4TDc5LjAxNiwyODhaTTk2LDQ1NmE0MCw0MCwwLDEsMSw0MC00MEE0MCw0MCwwLDAsMSw5Niw0NTZaTTM1OS4yMjcsMzM1Ljc4NSwzMTAuNywzMzZhNi42NzEsNi42NzEsMCwwLDEtNi43LTYuN2wuMjE1LTQ4LjU3NEEyNC45ODcsMjQuOTg3LDAsMCwxLDMzMS40MywyNTYuMWMxMi43ODksMS4xNjIsMjIuMTI5LDEyLjYxOSwyMi4wNTYsMjUuNDE5bC0uMDM3LDUuMDU3LDUuMDUxLS4wMzdjMTIuODI2LS4wMzUsMjQuMjM2LDkuMjc1LDI1LjQsMjIuMDc2QTI0Ljk0OCwyNC45NDgsMCwwLDEsMzU5LjIyNywzMzUuNzg1WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWZXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzNy4yNTIsMjM5Ljg3NywzODQsMTYwVjMyQTMyLDMyLDAsMCwwLDM1MiwwSDMyMGEyNC4wMjEsMjQuMDIxLDAsMCwwLTEzLjMxMiw0LjAzMWwtMjUsMTYuNjcyYTEwMy43OTQsMTAzLjc5NCwwLDAsMS0xMTUuMzc2LDBsLTI1LTE2LjY3MkEyNC4wMjEsMjQuMDIxLDAsMCwwLDEyOCwwSDk2QTMyLDMyLDAsMCwwLDY0LDMyVjE2MEwxMC43NDgsMjM5Ljg3N0E2NCw2NCwwLDAsMCwwLDI3NS4zNzdWNDgwYTMyLDMyLDAsMCwwLDMyLDMySDE5MlYyODhhMzEuOTg3LDMxLjk4NywwLDAsMSwxLjY0My0xMC4xMTlMMjA3LjEzNSwyMzcuNCwxNTAuMTg4LDY2LjU2NEExNTEuNTE4LDE1MS41MTgsMCwwLDAsMjI0LDg2LjIzNGExNTEuNTUsMTUxLjU1LDAsMCwwLDczLjgxMi0xOS42NzJMMjI0LDI4OFY1MTJINDE2YTMyLDMyLDAsMCwwLDMyLTMyVjI3NS4zNzdBNjQsNjQsMCwwLDAsNDM3LjI1MiwyMzkuODc3Wk0xMzEuMzEyLDM3MS4zMTJsLTQ4LDQ4YTE2LDE2LDAsMCwxLTIyLjYyNC0yMi42MjRsNDgtNDhhMTYsMTYsMCwwLDEsMjIuNjI0LDIyLjYyNFptMjU2LDQ4YTE1Ljk5MiwxNS45OTIsMCwwLDEtMjIuNjI0LDBsLTQ4LTQ4YTE2LDE2LDAsMCwxLDIyLjYyNC0yMi42MjRsNDgsNDhBMTUuOTkzLDE1Ljk5MywwLDAsMSwzODcuMzEyLDQxOS4zMTJaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ4MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDc3LjcgMTg2LjFMMzA5LjUgMTguM2MtMy4xLTMuMS04LjItMy4xLTExLjMgMGwtMzQgMzMuOWMtMy4xIDMuMS0zLjEgOC4yIDAgMTEuM2wxMS4yIDExLjFMMzMgMzE2LjVjLTM4LjggMzguNy00NS4xIDEwMi05LjQgMTQzLjUgMjAuNiAyNCA0OS41IDM2IDc4LjQgMzUuOSAyNi40IDAgNTIuOC0xMCA3Mi45LTMwLjFsMjQ2LjMtMjQ1LjcgMTEuMiAxMS4xYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMzQtMzMuOWMzLjEtMyAzLjEtOC4xIDAtMTEuMnpNMzE4IDI1NkgxNjFsMTQ4LTE0Ny43IDc4LjUgNzguM0wzMTggMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaWFscyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03MiA2NGgyNHYyNDBjMCA0NC4xIDM1LjkgODAgODAgODBzODAtMzUuOSA4MC04MFY2NGgyNGM0LjQgMCA4LTMuNiA4LThWOGMwLTQuNC0zLjYtOC04LThINzJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6bTcyIDBoNjR2OTZoLTY0VjY0em00ODAgMzg0SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDYwOGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnpNMzYwIDY0aDI0djI0MGMwIDQ0LjEgMzUuOSA4MCA4MCA4MHM4MC0zNS45IDgwLTgwVjY0aDI0YzQuNCAwIDgtMy42IDgtOFY4YzAtNC40LTMuNi04LTgtOEgzNjBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6bTcyIDBoNjR2OTZoLTY0VjY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaWRlb1NsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzMy44IDQ1OC4xbC01NS00Mi41YzE1LjQtMS40IDI5LjItMTMuNyAyOS4yLTMxLjF2LTI1N2MwLTI1LjUtMjkuMS00MC40LTUwLjQtMjUuOEw0NDggMTc3LjN2MTM3LjJsLTMyLTI0Ljd2LTE3OGMwLTI2LjQtMjEuNC00Ny44LTQ3LjgtNDcuOEgxMjMuOUw0NS41IDMuNEMzOC41LTIgMjguNS0uOCAyMyA2LjJMMy40IDMxLjRjLTUuNCA3LTQuMiAxNyAyLjggMjIuNEw0Mi43IDgyIDQxNiAzNzAuNmwxNzguNSAxMzhjNyA1LjQgMTcgNC4yIDIyLjUtMi44bDE5LjYtMjUuM2M1LjUtNi45IDQuMi0xNy0yLjgtMjIuNHpNMzIgNDAwLjJjMCAyNi40IDIxLjQgNDcuOCA0Ny44IDQ3LjhoMjg4LjRjMTEuMiAwIDIxLjQtNCAyOS42LTEwLjVMMzIgMTU0Ljd2MjQ1LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpZGVvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNi4yIDY0SDQ3LjhDMjEuNCA2NCAwIDg1LjQgMCAxMTEuOHYyODguNEMwIDQyNi42IDIxLjQgNDQ4IDQ3LjggNDQ4aDI4OC40YzI2LjQgMCA0Ny44LTIxLjQgNDcuOC00Ny44VjExMS44YzAtMjYuNC0yMS40LTQ3LjgtNDcuOC00Ny44em0xODkuNCAzNy43TDQxNiAxNzcuM3YxNTcuNGwxMDkuNiA3NS41YzIxLjIgMTQuNiA1MC40LS4zIDUwLjQtMjUuOFYxMjcuNWMwLTI1LjQtMjkuMS00MC40LTUwLjQtMjUuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmloYXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzMi44OCA0MDAuNzFMNTQ0IDM1MnYtNjRsNTUuMTYtMTcuNjljMTEuNzktNS45IDExLjc5LTIyLjcyIDAtMjguNjJMNDgwIDE5MnYtNjRsMjcuMzEtMTYuM2M3LjcyLTcuNzIgNS42MS0yMC43NC00LjE2LTI1LjYyTDMyMCAwIDEzNi44NSA4Ni4wN2MtOS43NyA0Ljg4LTExLjg4IDE3LjktNC4xNiAyNS42MkwxNjAgMTI4djY0TDQwLjg0IDI0MS42OWMtMTEuNzkgNS45LTExLjc5IDIyLjcyIDAgMjguNjJMOTYgMjg4djY0TDcuMTIgNDAwLjcxYy01LjQyIDMuNjItNy43IDkuNjMtNyAxNS4yOS42MiA1LjAxIDMuNTcgOS43NSA4LjcyIDEyLjMzTDY0IDQ0OHY0OGMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtNDhoMTYwdjQ4YzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2di00OGgxNjB2NDhjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTQ4bDU1LjE1LTE5LjY3YzUuMTYtMi41OCA4LjEtNy4zMiA4LjcyLTEyLjMzLjcxLTUuNjctMS41Ny0xMS42OC02Ljk5LTE1LjI5ek0yMjQgMTI4aDE5MnY2NEgyMjR2LTY0em0tNjQgMjI0di02NGgzMjB2NjRIMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaXJ1c1NsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExNCwyMjcuNkg5Mi40Qzc2LjcsMjI3LjYsNjQsMjQwLjMsNjQsMjU2czEyLjcsMjguNCwyOC40LDI4LjRIMTE0YzUwLjcsMCw3Ni4xLDYxLjMsNDAuMiw5Ny4xTDEzOSwzOTYuOCBjLTExLjUsMTAuNy0xMi4yLDI4LjctMS42LDQwLjJzMjguNywxMi4yLDQwLjIsMS42YzAuNS0wLjUsMS4xLTEsMS42LTEuNmwxNS4yLTE1LjJjMzUuOC0zNS44LDk3LjEtMTAuNSw5Ny4xLDQwLjJ2MjEuNSBjMCwxNS43LDEyLjgsMjguNCwyOC41LDI4LjRjMTUuNywwLDI4LjQtMTIuNywyOC40LTI4LjRWNDYyYzAtMjYuNiwxNy00NS45LDM4LjItNTMuNGwtMjQ0LjUtMTg5IEMxMzMuNywyMjQuNywxMjMuOSwyMjcuNSwxMTQsMjI3LjZ6IE02MTcsNTA1LjhsMTkuNi0yNS4zYzUuNC03LDQuMi0xNy0yLjgtMjIuNUw0NzAuNiwzMzJjNC4yLTI1LjQsMjQuOS00Ny41LDU1LjQtNDcuNWgyMS41IGMxNS43LDAsMjguNC0xMi43LDI4LjQtMjguNHMtMTIuNy0yOC40LTI4LjQtMjguNEg1MjZjLTUwLjcsMC03Ni4xLTYxLjMtNDAuMi05Ny4xbDE1LjItMTUuM2MxMC43LTExLjUsMTAtMjkuNS0xLjYtNDAuMiBjLTEwLjktMTAuMS0yNy43LTEwLjEtMzguNiwwbC0xNS4yLDE1LjJjLTM1LjgsMzUuOC05Ny4xLDEwLjUtOTcuMS00MC4yVjI4LjVDMzQ4LjQsMTIuNywzMzUuNywwLDMyMCwwIGMtMTUuNywwLTI4LjQsMTIuNy0yOC40LDI4LjRWNTBjMCw1MC43LTYxLjMsNzYuMS05Ny4xLDQwLjJMMTc5LjIsNzVjLTExLjEtMTEuMS0yOS40LTEwLjYtNDAuNSwwLjVMNDUuNSwzLjQgYy03LTUuNC0xNy00LjItMjIuNSwyLjhMMy40LDMxLjVjLTUuNCw3LTQuMiwxNywyLjgsMjIuNWw1ODguNCw0NTQuN0M2MDEuNSw1MTQuMSw2MTEuNiw1MTIuOCw2MTcsNTA1Ljh6IE0zMzUuNCwyMjcuNWwtNjIuOS00OC42IGM0LjktMS44LDEwLjItMi44LDE1LjQtMi45YzI2LjUsMCw0OCwyMS41LDQ4LDQ4QzMzNiwyMjUuMiwzMzUuNSwyMjYuMywzMzUuNCwyMjcuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmlydXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgzLjU1LDIyNy41NUg0NjJjLTUwLjY4LDAtNzYuMDctNjEuMjctNDAuMjMtOTcuMTFMNDM3LDExNS4xOUEyOC40NCwyOC40NCwwLDAsMCwzOTYuOCw3NUwzODEuNTYsOTAuMjJjLTM1Ljg0LDM1LjgzLTk3LjExLDEwLjQ1LTk3LjExLTQwLjIzVjI4LjQ0YTI4LjQ1LDI4LjQ1LDAsMCwwLTU2LjksMFY1MGMwLDUwLjY4LTYxLjI3LDc2LjA2LTk3LjExLDQwLjIzTDExNS4yLDc1QTI4LjQ0LDI4LjQ0LDAsMCwwLDc1LDExNS4xOWwxNS4yNSwxNS4yNWMzNS44NCwzNS44NCwxMC40NSw5Ny4xMS00MC4yMyw5Ny4xMUgyOC40NWEyOC40NSwyOC40NSwwLDEsMCwwLDU2Ljg5SDUwYzUwLjY4LDAsNzYuMDcsNjEuMjgsNDAuMjMsOTcuMTJMNzUsMzk2LjhBMjguNDUsMjguNDUsMCwwLDAsMTE1LjIsNDM3bDE1LjI0LTE1LjI1YzM1Ljg0LTM1Ljg0LDk3LjExLTEwLjQ1LDk3LjExLDQwLjIzdjIxLjU0YTI4LjQ1LDI4LjQ1LDAsMCwwLDU2LjksMFY0NjJjMC01MC42OCw2MS4yNy03Ni4wNyw5Ny4xMS00MC4yM0wzOTYuOCw0MzdBMjguNDUsMjguNDUsMCwwLDAsNDM3LDM5Ni44bC0xNS4yNS0xNS4yNGMtMzUuODQtMzUuODQtMTAuNDUtOTcuMTIsNDAuMjMtOTcuMTJoMjEuNTRhMjguNDUsMjguNDUsMCwxLDAsMC01Ni44OVpNMjI0LDI3MmE0OCw0OCwwLDEsMSw0OC00OEE0OCw0OCwwLDAsMSwyMjQsMjcyWm04MCw1NmEyNCwyNCwwLDEsMSwyNC0yNEEyNCwyNCwwLDAsMSwzMDQsMzI4WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaXJ1c2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNCwzNTJINjExLjg4Yy0yOC41MSwwLTQyLjc5LTM0LjQ3LTIyLjYzLTU0LjYzbDguNTgtOC41N2ExNiwxNiwwLDEsMC0yMi42My0yMi42M2wtOC41Nyw4LjU4QzU0Ni40NywyOTQuOTEsNTEyLDI4MC42Myw1MTIsMjUyLjEyVjI0MGExNiwxNiwwLDAsMC0zMiwwdjEyLjEyYzAsMjguNTEtMzQuNDcsNDIuNzktNTQuNjMsMjIuNjNsLTguNTctOC41OGExNiwxNiwwLDAsMC0yMi42MywyMi42M2w4LjU4LDguNTdjMjAuMTYsMjAuMTYsNS44OCw1NC42My0yMi42Myw1NC42M0gzNjhhMTYsMTYsMCwwLDAsMCwzMmgxMi4xMmMyOC41MSwwLDQyLjc5LDM0LjQ3LDIyLjYzLDU0LjYzbC04LjU4LDguNTdhMTYsMTYsMCwxLDAsMjIuNjMsMjIuNjNsOC41Ny04LjU4YzIwLjE2LTIwLjE2LDU0LjYzLTUuODgsNTQuNjMsMjIuNjNWNDk2YTE2LDE2LDAsMCwwLDMyLDBWNDgzLjg4YzAtMjguNTEsMzQuNDctNDIuNzksNTQuNjMtMjIuNjNsOC41Nyw4LjU4YTE2LDE2LDAsMSwwLDIyLjYzLTIyLjYzbC04LjU4LTguNTdDNTY5LjA5LDQxOC40Nyw1ODMuMzcsMzg0LDYxMS44OCwzODRINjI0YTE2LDE2LDAsMCwwLDAtMzJaTTQ4MCwzODRhMzIsMzIsMCwxLDEsMzItMzJBMzIsMzIsMCwwLDEsNDgwLDM4NFpNMzQ2LjUxLDIxMy4zM2gxNi4xNmEyMS4zMywyMS4zMywwLDAsMCwwLTQyLjY2SDM0Ni41MWMtMzgsMC01Ny4wNS00Ni0zMC4xNy03Mi44NGwxMS40My0xMS40NEEyMS4zMywyMS4zMywwLDAsMCwyOTcuNiw1Ni4yM0wyODYuMTcsNjcuNjZjLTI2Ljg4LDI2Ljg4LTcyLjg0LDcuODUtNzIuODQtMzAuMTdWMjEuMzNhMjEuMzMsMjEuMzMsMCwwLDAtNDIuNjYsMFYzNy40OWMwLDM4LTQ2LDU3LjA1LTcyLjg0LDMwLjE3TDg2LjQsNTYuMjNBMjEuMzMsMjEuMzMsMCwwLDAsNTYuMjMsODYuMzlMNjcuNjYsOTcuODNjMjYuODgsMjYuODgsNy44NSw3Mi44NC0zMC4xNyw3Mi44NEgyMS4zM2EyMS4zMywyMS4zMywwLDAsMCwwLDQyLjY2SDM3LjQ5YzM4LDAsNTcuMDUsNDYsMzAuMTcsNzIuODRMNTYuMjMsMjk3LjZBMjEuMzMsMjEuMzMsMCwxLDAsODYuNCwzMjcuNzdsMTEuNDMtMTEuNDNjMjYuODgtMjYuODgsNzIuODQtNy44NSw3Mi44NCwzMC4xN3YxNi4xNmEyMS4zMywyMS4zMywwLDAsMCw0Mi42NiwwVjM0Ni41MWMwLTM4LDQ2LTU3LjA1LDcyLjg0LTMwLjE3bDExLjQzLDExLjQzYTIxLjMzLDIxLjMzLDAsMCwwLDMwLjE3LTMwLjE3bC0xMS40My0xMS40M0MyODkuNDYsMjU5LjI5LDMwOC40OSwyMTMuMzMsMzQ2LjUxLDIxMy4zM1pNMTYwLDE5MmEzMiwzMiwwLDEsMSwzMi0zMkEzMiwzMiwwLDAsMSwxNjAsMTkyWm04MCwzMmExNiwxNiwwLDEsMSwxNi0xNkExNiwxNiwwLDAsMSwyNDAsMjI0WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWb2ljZW1haWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2IDEyOGExNDQgMTQ0IDAgMCAwLTExOS43NCAyMjRIMjYzLjc0QTE0NCAxNDQgMCAxIDAgMTQ0IDQxNmgzNTJhMTQ0IDE0NCAwIDAgMCAwLTI4OHpNNjQgMjcyYTgwIDgwIDAgMSAxIDgwIDgwIDgwIDgwIDAgMCAxLTgwLTgwem00MzIgODBhODAgODAgMCAxIDEgODAtODAgODAgODAgMCAwIDEtODAgODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZvbGxleWJhbGxCYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzMS4zOSAyNDMuNDhhMjg1LjU2IDI4NS41NiAwIDAgMC0yMi43LTEwNS43Yy05MC44IDQyLjQtMTU3LjUgMTIyLjQtMTgwLjMgMjE2LjhhMjQ5IDI0OSAwIDAgMCA1Ni45IDgxLjEgMzMzLjg3IDMzMy44NyAwIDAgMSAxNDYuMS0xOTIuMnptLTM2LjktMTM0LjRhMjg0LjIzIDI4NC4yMyAwIDAgMC01Ny40LTcwLjdjLTkxIDQ5LjgtMTQ0LjggMTUyLjktMTI1IDI2Mi4yIDMzLjQtODMuMSA5OC40LTE1MiAxODIuNC0xOTEuNXptMTg3LjYgMTY1LjFjOC42LTk5LjgtMjcuMy0xOTcuNS05Ny41LTI2NC40LTE0LjctMS43LTUxLjYtNS41LTk4LjkgOC41QTMzMy44NyAzMzMuODcgMCAwIDEgMjc5LjE5IDI0MWEyODUgMjg1IDAgMCAwIDEwMi45IDMzLjE4em0tMTI0LjcgOS41YTI4Ni4zMyAyODYuMzMgMCAwIDAtODAuMiA3Mi42YzgyIDU3LjMgMTg0LjUgNzUuMSAyNzcuNSA0Ny44YTI0Ny4xNSAyNDcuMTUgMCAwIDAgNDIuMi04OS45IDMzNi4xIDMzNi4xIDAgMCAxLTgwLjkgMTAuNGMtNTQuNi0uMS0xMDguOS0xNC4xLTE1OC42LTQwLjl6bS05OC4zIDk5LjdjLTE1LjIgMjYtMjUuNyA1NC40LTMyLjEgODQuMmEyNDcuMDcgMjQ3LjA3IDAgMCAwIDI4OS0yMi4xYy0xMTIuOSAxNi4xLTIwMy4zLTI0LjgtMjU2LjktNjIuMXptMTgwLjMtMzYwLjZjNTUuMyA3MC40IDgyLjUgMTYxLjIgNzQuNiAyNTMuNmEyODYuNTkgMjg2LjU5IDAgMCAwIDg5LjctMTQuMmMwLTIgLjMtNCAuMy02IDAtMTA3LjgtNjguNy0xOTkuMS0xNjQuNi0yMzMuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVm9sdW1lRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTUuMDMgNzIuMDRMMTI2LjA2IDE2MUgyNGMtMTMuMjYgMC0yNCAxMC43NC0yNCAyNHYxNDRjMCAxMy4yNSAxMC43NCAyNCAyNCAyNGgxMDIuMDZsODguOTcgODguOTVjMTUuMDMgMTUuMDMgNDAuOTcgNC40NyA0MC45Ny0xNi45N1Y4OS4wMmMwLTIxLjQ3LTI1Ljk2LTMxLjk4LTQwLjk3LTE2Ljk4em0xMjMuMiAxMDguMDhjLTExLjU4LTYuMzMtMjYuMTktMi4xNi0zMi42MSA5LjQ1LTYuMzkgMTEuNjEtMi4xNiAyNi4yIDkuNDUgMzIuNjFDMzI3Ljk4IDIyOS4yOCAzMzYgMjQyLjYyIDMzNiAyNTdjMCAxNC4zOC04LjAyIDI3LjcyLTIwLjkyIDM0LjgxLTExLjYxIDYuNDEtMTUuODQgMjEtOS40NSAzMi42MSA2LjQzIDExLjY2IDIxLjA1IDE1LjggMzIuNjEgOS40NSAyOC4yMy0xNS41NSA0NS43Ny00NSA0NS43Ny03Ni44OHMtMTcuNTQtNjEuMzItNDUuNzgtNzYuODd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZvbHVtZU11dGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE1LjAzIDcxLjA1TDEyNi4wNiAxNjBIMjRjLTEzLjI2IDAtMjQgMTAuNzQtMjQgMjR2MTQ0YzAgMTMuMjUgMTAuNzQgMjQgMjQgMjRoMTAyLjA2bDg4Ljk3IDg4Ljk1YzE1LjAzIDE1LjAzIDQwLjk3IDQuNDcgNDAuOTctMTYuOTdWODguMDJjMC0yMS40Ni0yNS45Ni0zMS45OC00MC45Ny0xNi45N3pNNDYxLjY0IDI1Nmw0NS42NC00NS42NGM2LjMtNi4zIDYuMy0xNi41MiAwLTIyLjgybC0yMi44Mi0yMi44MmMtNi4zLTYuMy0xNi41Mi02LjMtMjIuODIgMEw0MTYgMjEwLjM2bC00NS42NC00NS42NGMtNi4zLTYuMy0xNi41Mi02LjMtMjIuODIgMGwtMjIuODIgMjIuODJjLTYuMyA2LjMtNi4zIDE2LjUyIDAgMjIuODJMMzcwLjM2IDI1NmwtNDUuNjMgNDUuNjNjLTYuMyA2LjMtNi4zIDE2LjUyIDAgMjIuODJsMjIuODIgMjIuODJjNi4zIDYuMyAxNi41MiA2LjMgMjIuODIgMEw0MTYgMzAxLjY0bDQ1LjY0IDQ1LjY0YzYuMyA2LjMgMTYuNTIgNi4zIDIyLjgyIDBsMjIuODItMjIuODJjNi4zLTYuMyA2LjMtMTYuNTIgMC0yMi44Mkw0NjEuNjQgMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWb2x1bWVPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE1IDcxbC04OSA4OUgyNGEyNCAyNCAwIDAgMC0yNCAyNHYxNDRhMjQgMjQgMCAwIDAgMjQgMjRoMTAyLjA2TDIxNSA0NDFjMTUgMTUgNDEgNC40NyA0MS0xN1Y4OGMwLTIxLjQ3LTI2LTMyLTQxLTE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWb2x1bWVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTUuMDMgNzEuMDVMMTI2LjA2IDE2MEgyNGMtMTMuMjYgMC0yNCAxMC43NC0yNCAyNHYxNDRjMCAxMy4yNSAxMC43NCAyNCAyNCAyNGgxMDIuMDZsODguOTcgODguOTVjMTUuMDMgMTUuMDMgNDAuOTcgNC40NyA0MC45Ny0xNi45N1Y4OC4wMmMwLTIxLjQ2LTI1Ljk2LTMxLjk4LTQwLjk3LTE2Ljk3em0yMzMuMzItNTEuMDhjLTExLjE3LTcuMzMtMjYuMTgtNC4yNC0zMy41MSA2Ljk1LTcuMzQgMTEuMTctNC4yMiAyNi4xOCA2Ljk1IDMzLjUxIDY2LjI3IDQzLjQ5IDEwNS44MiAxMTYuNiAxMDUuODIgMTk1LjU4IDAgNzguOTgtMzkuNTUgMTUyLjA5LTEwNS44MiAxOTUuNTgtMTEuMTcgNy4zMi0xNC4yOSAyMi4zNC02Ljk1IDMzLjUgNy4wNCAxMC43MSAyMS45MyAxNC41NiAzMy41MSA2Ljk1QzUyOC4yNyA0MzkuNTggNTc2IDM1MS4zMyA1NzYgMjU2UzUyOC4yNyA3Mi40MyA0NDguMzUgMTkuOTd6TTQ4MCAyNTZjMC02My41My0zMi4wNi0xMjEuOTQtODUuNzctMTU2LjI0LTExLjE5LTcuMTQtMjYuMDMtMy44Mi0zMy4xMiA3LjQ2cy0zLjc4IDI2LjIxIDcuNDEgMzMuMzZDNDA4LjI3IDE2NS45NyA0MzIgMjA5LjExIDQzMiAyNTZzLTIzLjczIDkwLjAzLTYzLjQ4IDExNS40MmMtMTEuMTkgNy4xNC0xNC41IDIyLjA3LTcuNDEgMzMuMzYgNi41MSAxMC4zNiAyMS4xMiAxNS4xNCAzMy4xMiA3LjQ2QzQ0Ny45NCAzNzcuOTQgNDgwIDMxOS41NCA0ODAgMjU2em0tMTQxLjc3LTc2Ljg3Yy0xMS41OC02LjMzLTI2LjE5LTIuMTYtMzIuNjEgOS40NS02LjM5IDExLjYxLTIuMTYgMjYuMiA5LjQ1IDMyLjYxQzMyNy45OCAyMjguMjggMzM2IDI0MS42MyAzMzYgMjU2YzAgMTQuMzgtOC4wMiAyNy43Mi0yMC45MiAzNC44MS0xMS42MSA2LjQxLTE1Ljg0IDIxLTkuNDUgMzIuNjEgNi40MyAxMS42NiAyMS4wNSAxNS44IDMyLjYxIDkuNDUgMjguMjMtMTUuNTUgNDUuNzctNDUgNDUuNzctNzYuODhzLTE3LjU0LTYxLjMyLTQ1Ljc4LTc2Ljg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWb3RlWWVhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYwOCAzMjBoLTY0djY0aDIyLjRjNS4zIDAgOS42IDMuNiA5LjYgOHYxNmMwIDQuNC00LjMgOC05LjYgOEg3My42Yy01LjMgMC05LjYtMy42LTkuNi04di0xNmMwLTQuNCA0LjMtOCA5LjYtOEg5NnYtNjRIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDU3NmMxNy43IDAgMzItMTQuMyAzMi0zMnYtOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS05NiA2NFY2NC4zYzAtMTcuOS0xNC41LTMyLjMtMzIuMy0zMi4zSDE2MC40QzE0Mi41IDMyIDEyOCA0Ni41IDEyOCA2NC4zVjM4NGgzODR6TTIxMS4yIDIwMmwyNS41LTI1LjNjNC4yLTQuMiAxMS00LjIgMTUuMi4xbDQxLjMgNDEuNiA5NS4yLTk0LjRjNC4yLTQuMiAxMS00LjIgMTUuMi4xbDI1LjMgMjUuNWM0LjIgNC4yIDQuMiAxMS0uMSAxNS4yTDMwMC41IDI5MmMtNC4yIDQuMi0xMSA0LjItMTUuMi0uMWwtNzQuMS03NC43Yy00LjMtNC4yLTQuMi0xMSAwLTE1LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZyQ2FyZGJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYwOCA2NEgzMkMxNC4zMyA2NCAwIDc4LjMzIDAgOTZ2MzIwYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMTYwLjIyYzI1LjE5IDAgNDguMDMtMTQuNzcgNTguMzYtMzcuNzRsMjcuNzQtNjEuNjRDMjg2LjIxIDMzMS4wOCAzMDIuMzUgMzIwIDMyMCAzMjBzMzMuNzkgMTEuMDggNDEuNjggMjguNjJsMjcuNzQgNjEuNjRDMzk5Ljc1IDQzMy4yMyA0MjIuNiA0NDggNDQ3Ljc4IDQ0OEg2MDhjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlY5NmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyek0xNjAgMzA0Yy0zNS4zNSAwLTY0LTI4LjY1LTY0LTY0czI4LjY1LTY0IDY0LTY0IDY0IDI4LjY1IDY0IDY0LTI4LjY1IDY0LTY0IDY0em0zMjAgMGMtMzUuMzUgMC02NC0yOC42NS02NC02NHMyOC42NS02NCA2NC02NCA2NCAyOC42NSA2NCA2NC0yOC42NSA2NC02NCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2Fsa2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDggOTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhTMjM0LjUgMCAyMDggMHMtNDggMjEuNS00OCA0OCAyMS41IDQ4IDQ4IDQ4em05NC41IDE0OS4xbC0yMy4zLTExLjgtOS43LTI5LjRjLTE0LjctNDQuNi01NS43LTc1LjgtMTAyLjItNzUuOS0zNi0uMS01NS45IDEwLjEtOTMuMyAyNS4yLTIxLjYgOC43LTM5LjMgMjUuMi00OS43IDQ2LjJMMTcuNiAyMTNjLTcuOCAxNS44LTEuNSAzNSAxNC4yIDQyLjkgMTUuNiA3LjkgMzQuNiAxLjUgNDIuNS0xNC4zTDgxIDIyOGMzLjUtNyA5LjMtMTIuNSAxNi41LTE1LjRsMjYuOC0xMC44LTE1LjIgNjAuN2MtNS4yIDIwLjguNCA0Mi45IDE0LjkgNTguOGw1OS45IDY1LjRjNy4yIDcuOSAxMi4zIDE3LjQgMTQuOSAyNy43bDE4LjMgNzMuM2M0LjMgMTcuMSAyMS43IDI3LjYgMzguOCAyMy4zIDE3LjEtNC4zIDI3LjYtMjEuNyAyMy4zLTM4LjhsLTIyLjItODljLTIuNi0xMC4zLTcuNy0xOS45LTE0LjktMjcuN2wtNDUuNS00OS43IDE3LjItNjguNyA1LjUgMTYuNWM1LjMgMTYuMSAxNi43IDI5LjQgMzEuNyAzN2wyMy4zIDExLjhjMTUuNiA3LjkgMzQuNiAxLjUgNDIuNS0xNC4zIDcuNy0xNS43IDEuNC0zNS4xLTE0LjMtNDN6TTczLjYgMzg1LjhjLTMuMiA4LjEtOCAxNS40LTE0LjIgMjEuNWwtNTAgNTAuMWMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuNyAxMi41IDQ1LjIgMGw1OS40LTU5LjRjNi4xLTYuMSAxMC45LTEzLjQgMTQuMi0yMS41bDEzLjUtMzMuOGMtNTUuMy02MC4zLTM4LjctNDEuOC00Ny40LTUzLjdsLTIwLjcgNTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2FsbGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2MS4yIDEyOEg4MGMtOC44NCAwLTE2LTcuMTYtMTYtMTZzNy4xNi0xNiAxNi0xNmgzODRjOC44NCAwIDE2LTcuMTYgMTYtMTYgMC0yNi41MS0yMS40OS00OC00OC00OEg2NEMyOC42NSAzMiAwIDYwLjY1IDAgOTZ2MzIwYzAgMzUuMzUgMjguNjUgNjQgNjQgNjRoMzk3LjJjMjguMDIgMCA1MC44LTIxLjUzIDUwLjgtNDhWMTc2YzAtMjYuNDctMjIuNzgtNDgtNTAuOC00OHpNNDE2IDMzNmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2FyZWhvdXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNCAzNTJIMTM2LjRjLTQuNCAwLTggMy42LTggOGwtLjEgNDhjMCA0LjQgMy42IDggOCA4SDUwNGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptMCA5NkgxMzYuMWMtNC40IDAtOCAzLjYtOCA4bC0uMSA0OGMwIDQuNCAzLjYgOCA4IDhoMzY4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0wLTE5MkgxMzYuNmMtNC40IDAtOCAzLjYtOCA4bC0uMSA0OGMwIDQuNCAzLjYgOCA4IDhINTA0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0xMDYuNS0xMzlMMzM4LjQgMy43YTQ4LjE1IDQ4LjE1IDAgMCAwLTM2LjkgMEwyOS41IDExN0MxMS43IDEyNC41IDAgMTQxLjkgMCAxNjEuM1Y1MDRjMCA0LjQgMy42IDggOCA4aDgwYzQuNCAwIDgtMy42IDgtOFYyNTZjMC0xNy42IDE0LjYtMzIgMzIuNi0zMmgzODIuOGMxOCAwIDMyLjYgMTQuNCAzMi42IDMydjI0OGMwIDQuNCAzLjYgOCA4IDhoODBjNC40IDAgOC0zLjYgOC04VjE2MS4zYzAtMTkuNC0xMS43LTM2LjgtMjkuNS00NC4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXYXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjIuMSAzODMuOWMtMjEuNS0yLjQtNDIuMS0xMC41LTU3LjktMjIuOS0xNC4xLTExLjEtMzQuMi0xMS4zLTQ4LjIgMC0zNy45IDMwLjQtMTA3LjIgMzAuNC0xNDUuNy0xLjUtMTMuNS0xMS4yLTMzLTkuMS00Ni43IDEuOC0zOCAzMC4xLTEwNi45IDMwLTE0NS4yLTEuNy0xMy41LTExLjItMzMuMy04LjktNDcuMSAyLTE1LjUgMTIuMi0zNiAyMC4xLTU3LjcgMjIuNC03LjkuOC0xMy42IDcuOC0xMy42IDE1Ljd2MzIuMmMwIDkuMSA3LjYgMTYuOCAxNi43IDE2IDI4LjgtMi41IDU2LjEtMTEuNCA3OS40LTI1LjkgNTYuNSAzNC42IDEzNyAzNC4xIDE5MiAwIDU2LjUgMzQuNiAxMzcgMzQuMSAxOTIgMCAyMy4zIDE0LjIgNTAuOSAyMy4zIDc5LjEgMjUuOCA5LjEuOCAxNi43LTYuOSAxNi43LTE2di0zMS42Yy4xLTgtNS43LTE1LjQtMTMuOC0xNi4zem0wLTE0NGMtMjEuNS0yLjQtNDIuMS0xMC41LTU3LjktMjIuOS0xNC4xLTExLjEtMzQuMi0xMS4zLTQ4LjIgMC0zNy45IDMwLjQtMTA3LjIgMzAuNC0xNDUuNy0xLjUtMTMuNS0xMS4yLTMzLTkuMS00Ni43IDEuOC0zOCAzMC4xLTEwNi45IDMwLTE0NS4yLTEuNy0xMy41LTExLjItMzMuMy04LjktNDcuMSAyLTE1LjUgMTIuMi0zNiAyMC4xLTU3LjcgMjIuNC03LjkuOC0xMy42IDcuOC0xMy42IDE1Ljd2MzIuMmMwIDkuMSA3LjYgMTYuOCAxNi43IDE2IDI4LjgtMi41IDU2LjEtMTEuNCA3OS40LTI1LjkgNTYuNSAzNC42IDEzNyAzNC4xIDE5MiAwIDU2LjUgMzQuNiAxMzcgMzQuMSAxOTIgMCAyMy4zIDE0LjIgNTAuOSAyMy4zIDc5LjEgMjUuOCA5LjEuOCAxNi43LTYuOSAxNi43LTE2di0zMS42Yy4xLTgtNS43LTE1LjQtMTMuOC0xNi4zem0wLTE0NEM1NDAuNiA5My40IDUyMCA4NS40IDUwNC4yIDczIDQ5MC4xIDYxLjkgNDcwIDYxLjcgNDU2IDczYy0zNy45IDMwLjQtMTA3LjIgMzAuNC0xNDUuNy0xLjUtMTMuNS0xMS4yLTMzLTkuMS00Ni43IDEuOC0zOCAzMC4xLTEwNi45IDMwLTE0NS4yLTEuNy0xMy41LTExLjItMzMuMy04LjktNDcuMSAyLTE1LjUgMTIuMi0zNiAyMC4xLTU3LjcgMjIuNC03LjkuOC0xMy42IDcuOC0xMy42IDE1Ljd2MzIuMmMwIDkuMSA3LjYgMTYuOCAxNi43IDE2IDI4LjgtMi41IDU2LjEtMTEuNCA3OS40LTI1LjkgNTYuNSAzNC42IDEzNyAzNC4xIDE5MiAwIDU2LjUgMzQuNiAxMzcgMzQuMSAxOTIgMCAyMy4zIDE0LjIgNTAuOSAyMy4zIDc5LjEgMjUuOCA5LjEuOCAxNi43LTYuOSAxNi43LTE2di0zMS42Yy4xLTgtNS43LTE1LjQtMTMuOC0xNi4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXYXZlU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3NiA0ODBIMzI0YTM2IDM2IDAgMCAxLTM2LTM2Vjk2aC05NnYxNTZhMzYgMzYgMCAwIDEtMzYgMzZIMTZhMTYgMTYgMCAwIDEtMTYtMTZ2LTMyYTE2IDE2IDAgMCAxIDE2LTE2aDExMlY2OGEzNiAzNiAwIDAgMSAzNi0zNmgxNTJhMzYgMzYgMCAwIDEgMzYgMzZ2MzQ4aDk2VjI2MGEzNiAzNiAwIDAgMSAzNi0zNmgxNDBhMTYgMTYgMCAwIDEgMTYgMTZ2MzJhMTYgMTYgMCAwIDEtMTYgMTZINTEydjE1NmEzNiAzNiAwIDAgMS0zNiAzNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2VpZ2h0SGFuZ2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTAuMjggNDQ1Ljg2bC03My4wMy0yOTIuMTNjLTMuOC0xNS4xOS0xNi40NC0yNS43Mi0zMC44Ny0yNS43MmgtNjAuMjVjMy41Ny0xMC4wNSA1Ljg4LTIwLjcyIDUuODgtMzIgMC01My4wMi00Mi45OC05Ni05Ni05NnMtOTYgNDIuOTgtOTYgOTZjMCAxMS4yOCAyLjMgMjEuOTUgNS44OCAzMmgtNjAuMjVjLTE0LjQzIDAtMjcuMDggMTAuNTQtMzAuODcgMjUuNzJMMS43MiA0NDUuODZDLTYuNjEgNDc5LjE3IDE2LjM4IDUxMiA0OC4wMyA1MTJoNDE1Ljk1YzMxLjY0IDAgNTQuNjMtMzIuODMgNDYuMy02Ni4xNHpNMjU2IDEyOGMtMTcuNjQgMC0zMi0xNC4zNi0zMi0zMnMxNC4zNi0zMiAzMi0zMiAzMiAxNC4zNiAzMiAzMi0xNC4zNiAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2VpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA2NGgtMjUuOThDNDM4LjQ0IDkyLjI4IDQ0OCAxMjUuMDEgNDQ4IDE2MGMwIDEwNS44Ny04Ni4xMyAxOTItMTkyIDE5MlM2NCAyNjUuODcgNjQgMTYwYzAtMzQuOTkgOS41Ni02Ny43MiAyNS45OC05Nkg2NEMyOC43MSA2NCAwIDkyLjcxIDAgMTI4djMyMGMwIDM1LjI5IDI4LjcxIDY0IDY0IDY0aDM4NGMzNS4yOSAwIDY0LTI4LjcxIDY0LTY0VjEyOGMwLTM1LjI5LTI4LjcxLTY0LTY0LTY0ek0yNTYgMzIwYzg4LjM3IDAgMTYwLTcxLjYzIDE2MC0xNjBTMzQ0LjM3IDAgMjU2IDAgOTYgNzEuNjMgOTYgMTYwczcxLjYzIDE2MCAxNjAgMTYwem0tLjMtMTUxLjk0bDMzLjU4LTc4LjM2YzMuNS04LjE3IDEyLjk0LTExLjkyIDIxLjAzLTguNDEgOC4xMiAzLjQ4IDExLjg4IDEyLjg5IDguNDEgMjFsLTMzLjY3IDc4LjU1QzI5MS43MyAxODggMjk2IDE5Ny40NSAyOTYgMjA4YzAgMjIuMDktMTcuOTEgNDAtNDAgNDBzLTQwLTE3LjkxLTQwLTQwYzAtMjEuOTggMTcuNzYtMzkuNzcgMzkuNy0zOS45NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2hlZWxjaGFpciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYuMTAxIDM4NS42NjlsMTQuMjI3IDI4LjY2M2MzLjkyOSA3LjkxNS42OTcgMTcuNTE2LTcuMjE4IDIxLjQ0NWwtNjUuNDY1IDMyLjg4NmMtMTYuMDQ5IDcuOTY3LTM1LjU1NiAxLjE5NC00My4xODktMTUuMDU1TDMzMS42NzkgMzIwSDE5MmMtMTUuOTI1IDAtMjkuNDI2LTExLjcxLTMxLjY3OS0yNy40NzVDMTI2LjQzMyA1NS4zMDggMTI4LjM4IDcwLjA0NCAxMjggNjRjMC0zNi4zNTggMzAuMzE4LTY1LjYzNSA2Ny4wNTItNjMuOTI5IDMzLjI3MSAxLjU0NSA2MC4wNDggMjguOTA1IDYwLjkyNSA2Mi4yMDEuODY4IDMyLjkzMy0yMy4xNTIgNjAuNDIzLTU0LjYwOCA2NS4wMzlsNC42NyAzMi42OUgzMzZjOC44MzcgMCAxNiA3LjE2MyAxNiAxNnYzMmMwIDguODM3LTcuMTYzIDE2LTE2IDE2SDIxNS4xODJsNC41NzIgMzJIMzUyYTMyIDMyIDAgMCAxIDI4Ljk2MiAxOC4zOTJMNDM4LjQ3NyAzOTYuOGwzNi4xNzgtMTguMzQ5YzcuOTE1LTMuOTI5IDE3LjUxNy0uNjk3IDIxLjQ0NiA3LjIxOHpNMzExLjM1OCAzNTJoLTI0LjUwNmMtNy43ODggNTQuMjA0LTU0LjUyOCA5Ni0xMTAuODUyIDk2LTYxLjc1NyAwLTExMi01MC4yNDMtMTEyLTExMiAwLTQxLjUwNSAyMi42OTQtNzcuODA5IDU2LjMyNC05Ny4xNTYtMy43MTItMjUuOTY1LTYuODQ0LTQ3Ljg2LTkuNDg4LTY2LjMzM0M0NS45NTYgMTk4LjQ2NCAwIDI2MS45NjMgMCAzMzZjMCA5Ny4wNDcgNzguOTUzIDE3NiAxNzYgMTc2IDcxLjg3IDAgMTMzLjgwNi00My4zMDggMTYxLjExLTEwNS4xOTJMMzExLjM1OCAzNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdpZmkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjM0LjkxIDE1NC44OEM0NTcuNzQtOC45OSAxODIuMTktOC45MyA1LjA5IDE1NC44OGMtNi42NiA2LjE2LTYuNzkgMTYuNTktLjM1IDIyLjk4bDM0LjI0IDMzLjk3YzYuMTQgNi4xIDE2LjAyIDYuMjMgMjIuNC4zOCAxNDUuOTItMTMzLjY4IDM3MS4zLTEzMy43MSA1MTcuMjUgMCA2LjM4IDUuODUgMTYuMjYgNS43MSAyMi40LS4zOGwzNC4yNC0zMy45N2M2LjQzLTYuMzkgNi4zLTE2LjgyLS4zNi0yMi45OHpNMzIwIDM1MmMtMzUuMzUgMC02NCAyOC42NS02NCA2NHMyOC42NSA2NCA2NCA2NCA2NC0yOC42NSA2NC02NC0yOC42NS02NC02NC02NHptMjAyLjY3LTgzLjU5Yy0xMTUuMjYtMTAxLjkzLTI5MC4yMS0xMDEuODItNDA1LjM0IDAtNi45IDYuMS03LjEyIDE2LjY5LS41NyAyMy4xNWwzNC40NCAzMy45OWM2IDUuOTIgMTUuNjYgNi4zMiAyMi4wNS44IDgzLjk1LTcyLjU3IDIwOS43NC03Mi40MSAyOTMuNDkgMCA2LjM5IDUuNTIgMTYuMDUgNS4xMyAyMi4wNS0uOGwzNC40NC0zMy45OWM2LjU2LTYuNDYgNi4zMy0xNy4wNi0uNTYtMjMuMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdpbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTU2LjcgMjU2SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDE0Mi4yYzE1LjkgMCAzMC44IDEwLjkgMzMuNCAyNi42IDMuMyAyMC0xMi4xIDM3LjQtMzEuNiAzNy40LTE0LjEgMC0yNi4xLTkuMi0zMC40LTIxLjktMi4xLTYuMy04LjYtMTAuMS0xNS4yLTEwLjFIODEuNmMtOS44IDAtMTcuNyA4LjgtMTUuOSAxOC40IDguNiA0NC4xIDQ3LjYgNzcuNiA5NC4yIDc3LjYgNTcuMSAwIDEwMi43LTUwLjEgOTUuMi0xMDguNkMyNDkgMjkxIDIwNS40IDI1NiAxNTYuNyAyNTZ6TTE2IDIyNGgzMzZjNTkuNyAwIDEwNi44LTU0LjggOTMuOC0xMTYuNy03LjYtMzYuMi0zNi45LTY1LjUtNzMuMS03My4xLTU1LjQtMTEuNi0xMDUuMSAyNC45LTExNC45IDc1LjUtMS45IDkuNiA2LjEgMTguMyAxNS44IDE4LjNoMzIuOGM2LjcgMCAxMy4xLTMuOCAxNS4yLTEwLjFDMzI1LjkgMTA1LjIgMzM3LjkgOTYgMzUyIDk2YzE5LjQgMCAzNC45IDE3LjQgMzEuNiAzNy40LTIuNiAxNS43LTE3LjQgMjYuNi0zMy40IDI2LjZIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZ6bTM4NCAzMkgyNDMuN2MxOS4zIDE2LjYgMzMuMiAzOC44IDM5LjggNjRINDAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4Yy0xNy45IDAtMzMuMy05LjktNDEuNi0yNC40LTIuOS01LTguNy03LjYtMTQuNS03LjZoLTMzLjhjLTEwLjkgMC0xOSAxMC44LTE1LjMgMjEuMSAxNy44IDUwLjYgNzAuNSA4NC44IDEyOS40IDcyLjMgNDEuMi04LjcgNzUuMS00MS42IDg0LjctODIuN0M1MjYgMzIxLjUgNDcwLjUgMjU2IDQwMCAyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdpbmRvd0Nsb3NlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0MTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS04My42IDI5MC41YzQuOCA0LjggNC44IDEyLjYgMCAxNy40bC00MC41IDQwLjVjLTQuOCA0LjgtMTIuNiA0LjgtMTcuNCAwTDI1NiAzMTMuM2wtNjYuNSA2Ny4xYy00LjggNC44LTEyLjYgNC44LTE3LjQgMGwtNDAuNS00MC41Yy00LjgtNC44LTQuOC0xMi42IDAtMTcuNGw2Ny4xLTY2LjUtNjcuMS02Ni41Yy00LjgtNC44LTQuOC0xMi42IDAtMTcuNGw0MC41LTQwLjVjNC44LTQuOCAxMi42LTQuOCAxNy40IDBsNjYuNSA2Ny4xIDY2LjUtNjcuMWM0LjgtNC44IDEyLjYtNC44IDE3LjQgMGw0MC41IDQwLjVjNC44IDQuOCA0LjggMTIuNiAwIDE3LjRMMzEzLjMgMjU2bDY3LjEgNjYuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2luZG93TWF4aW1pemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQxNmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHptLTE2IDE2MEg2NHYtODRjMC02LjYgNS40LTEyIDEyLTEyaDM2MGM2LjYgMCAxMiA1LjQgMTIgMTJ2ODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdpbmRvd01pbmltaXplIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAzNTJINDhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQxNmMyNi41IDAgNDgtMjEuNSA0OC00OHYtMzJjMC0yNi41LTIxLjUtNDgtNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdpbmRvd1Jlc3RvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDQ4djI4OGMwIDI2LjUtMjEuNSA0OC00OCA0OGgtNDhWMTc2YzAtNDQuMS0zNS45LTgwLTgwLTgwSDEyOFY0OGMwLTI2LjUgMjEuNS00OCA0OC00OGgyODhjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTM4NCAxNzZ2Mjg4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYxNzZjMC0yNi41IDIxLjUtNDggNDgtNDhoMjg4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4em0tNjggMjhjMC02LjYtNS40LTEyLTEyLTEySDc2Yy02LjYgMC0xMiA1LjQtMTIgMTJ2NTJoMjUydi01MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2luZUJvdHRsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDcuMzEgNzIuNTdMNDM5LjQzIDQuNjljLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBsLTIyLjYzIDIyLjYzYy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzbC03Ni42NyA3Ni42N2MtNDYuNTgtMTkuNy0xMDIuNC0xMC43My0xNDAuMzcgMjcuMjNMMTguNzUgMzEyLjIzYy0yNC45OSAyNC45OS0yNC45OSA2NS41MiAwIDkwLjUxbDkwLjUxIDkwLjUxYzI0Ljk5IDI0Ljk5IDY1LjUyIDI0Ljk5IDkwLjUxIDBsMTU4LjM5LTE1OC4zOWMzNy45Ni0zNy45NiA0Ni45My05My43OSAyNy4yMy0xNDAuMzdsNzYuNjctNzYuNjdjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMGwyMi42My0yMi42M2M2LjI0LTYuMjQgNi4yNC0xNi4zNy0uMDEtMjIuNjJ6TTE3OS4yMiA0MjMuMjlsLTkwLjUxLTkwLjUxIDEyMi4wNC0xMjIuMDQgOTAuNTEgOTAuNTEtMTIyLjA0IDEyMi4wNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2luZUdsYXNzQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyODggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNiA0NjRoLTQwVjM0Ni44MWM2OC40Ny0xNS44OSAxMTguMDUtNzkuOTEgMTExLjQtMTU0LjE2bC0xNS45NS0xNzguMUMyNzAuNzEgNi4zMSAyNjMuOSAwIDI1NS43NCAwSDMyLjI2Yy04LjE1IDAtMTQuOTcgNi4zMS0xNS43IDE0LjU1TC42IDE5Mi42NkMtNi4wNSAyNjYuOTEgNDMuNTMgMzMwLjkzIDExMiAzNDYuODJWNDY0SDcyYy0yMi4wOSAwLTQwIDE3LjkxLTQwIDQwIDAgNC40MiAzLjU4IDggOCA4aDIwOGM0LjQyIDAgOC0zLjU4IDgtOCAwLTIyLjA5LTE3LjkxLTQwLTQwLTQwek02MS43NSA0OGgxNjQuNWw3LjE3IDgwSDU0LjU4bDcuMTctODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdpbmVHbGFzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjg4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTYgNDY0aC00MFYzNDYuODFjNjguNDctMTUuODkgMTE4LjA1LTc5LjkxIDExMS40LTE1NC4xNmwtMTUuOTUtMTc4LjFDMjcwLjcxIDYuMzEgMjYzLjkgMCAyNTUuNzQgMEgzMi4yNmMtOC4xNSAwLTE0Ljk3IDYuMzEtMTUuNyAxNC41NUwuNiAxOTIuNjZDLTYuMDUgMjY2LjkxIDQzLjUzIDMzMC45MyAxMTIgMzQ2LjgyVjQ2NEg3MmMtMjIuMDkgMC00MCAxNy45MS00MCA0MCAwIDQuNDIgMy41OCA4IDggOGgyMDhjNC40MiAwIDgtMy41OCA4LTggMC0yMi4wOS0xNy45MS00MC00MC00MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV29uU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjQgMTkyYzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC00OGwxOC42LTgwLjZjMS43LTcuNS00LTE0LjctMTEuNy0xNC43aC00Ni4xYy01LjcgMC0xMC42IDQtMTEuNyA5LjVMNDUwLjcgMTI4SDM0MC44bC0xOS43LTg2Yy0xLjMtNS41LTYuMS05LjMtMTEuNy05LjNoLTQ0Yy01LjYgMC0xMC40IDMuOC0xMS43IDkuM2wtMjAgODZIMTI1bC0xNy41LTg1LjdjLTEuMS01LjYtNi4xLTkuNi0xMS44LTkuNkg1My42Yy03LjcgMC0xMy40IDcuMS0xMS43IDE0LjZMNjAgMTI4SDEyYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDYyLjNsNy4yIDMySDEyYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDgzLjlsNDAuOSAxODIuNmMxLjIgNS41IDYuMSA5LjQgMTEuNyA5LjRoNTYuOGM1LjYgMCAxMC40LTMuOSAxMS43LTkuM0wyNTkuMyAyODhoNTUuMWw0Mi40IDE4Mi43YzEuMyA1LjQgNi4xIDkuMyAxMS43IDkuM2g1Ni44YzUuNiAwIDEwLjQtMy45IDExLjctOS4zTDQ3OS4xIDI4OEg1NjRjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTcwLjFsNy40LTMyek0xODMuOCAzNDJjLTYuMiAyNS44LTYuOCA0Ny4yLTcuMyA0Ny4yaC0xLjFzLTEuNy0yMi02LjgtNDcuMmwtMTEtNTRoMzguOHptMjcuNS0xMThoLTY2LjhsLTYuNS0zMmg4MC44em02Mi45IDBsMi04LjZjMS45LTggMy41LTE2IDQuOC0yMy40aDExLjhjMS4zIDcuNCAyLjkgMTUuNCA0LjggMjMuNGwyIDguNnptMTMwLjkgMTE4Yy01LjEgMjUuMi02LjggNDcuMi02LjggNDcuMmgtMS4xYy0uNiAwLTEuMS0yMS40LTcuMy00Ny4ybC0xMi40LTU0aDM5LjF6bTI1LjItMTE4aC02Ny40bC03LjMtMzJoODEuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV3JlbmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNy43MyAxMDkuMWMtMi4yNC05LjAzLTEzLjU0LTEyLjA5LTIwLjEyLTUuNTFsLTc0LjM2IDc0LjM2LTY3Ljg4LTExLjMxLTExLjMxLTY3Ljg4IDc0LjM2LTc0LjM2YzYuNjItNi42MiAzLjQzLTE3LjktNS42Ni0yMC4xNi00Ny4zOC0xMS43NC05OS41NS45MS0xMzYuNTggMzcuOTMtMzkuNjQgMzkuNjQtNTAuNTUgOTcuMS0zNC4wNSAxNDcuMkwxOC43NCA0MDIuNzZjLTI0Ljk5IDI0Ljk5LTI0Ljk5IDY1LjUxIDAgOTAuNSAyNC45OSAyNC45OSA2NS41MSAyNC45OSA5MC41IDBsMjEzLjIxLTIxMy4yMWM1MC4xMiAxNi43MSAxMDcuNDcgNS42OCAxNDcuMzctMzQuMjIgMzcuMDctMzcuMDcgNDkuNy04OS4zMiAzNy45MS0xMzYuNzN6TTY0IDQ3MmMtMTMuMjUgMC0yNC0xMC43NS0yNC0yNCAwLTEzLjI2IDEwLjc1LTI0IDI0LTI0czI0IDEwLjc0IDI0IDI0YzAgMTMuMjUtMTAuNzUgMjQtMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVhSYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQwIDM4NGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNiAxNi03LjIgMTYtMTYtNy4yLTE2LTE2LTE2em0xNjAgMzJjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTYtMTYgNy4yLTE2IDE2IDcuMiAxNiAxNiAxNnpNNjI0IDBIMTZDNy4yIDAgMCA3LjIgMCAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoNjA4YzguOCAwIDE2LTcuMiAxNi0xNlYxNmMwLTguOC03LjItMTYtMTYtMTZ6bTAgNDQ4aC00OFY5Nkg2NHYzNTJIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoNjA4YzguOCAwIDE2LTcuMiAxNi0xNnYtMzJjMC04LjgtNy4yLTE2LTE2LTE2ek00ODAgMjQ4YzAgNC40LTMuNiA4LTggOEgzMzZ2MzJoMTA0YzQuNCAwIDggMy42IDggOHYxNmMwIDQuNC0zLjYgOC04IDhIMzM2djMyaDY0YzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4LTQ4LTIxLjUtNDgtNDh2LTE2aC02NHYxNmMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OCAyMS41LTQ4IDQ4LTQ4aDY0di0zMkgyMDBjLTQuNCAwLTgtMy42LTgtOHYtMTZjMC00LjQgMy42LTggOC04aDEwNHYtMzJIMTY4Yy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxMzZ2LTMySDIwMGMtNC40IDAtOC0zLjYtOC04di0xNmMwLTQuNCAzLjYtOCA4LThoMTA0di0yNGMwLTQuNCAzLjYtOCA4LThoMTZjNC40IDAgOCAzLjYgOCA4djI0aDEwNGM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4SDMzNnYzMmgxMzZjNC40IDAgOCAzLjYgOCA4djE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFZZW5TaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MS4yIDMyaC02NS4zYy00LjYgMC04LjggMi42LTEwLjggNi43bC01NS40IDExMy4yYy0xNC41IDM0LjctMjcuMSA3MS45LTI3LjEgNzEuOWgtMS4zcy0xMi42LTM3LjItMjcuMS03MS45TDEwOC44IDM4LjdjLTItNC4xLTYuMi02LjctMTAuOC02LjdIMzIuOGMtOS4xIDAtMTQuOCA5LjctMTAuNiAxNy42TDEwMi4zIDIwMEg0NGMtNi42IDAtMTIgNS40LTEyIDEydjMyYzAgNi42IDUuNCAxMiAxMiAxMmg4OC4ybDE5LjggMzcuMlYzMjBINDRjLTYuNiAwLTEyIDUuNC0xMiAxMnYzMmMwIDYuNiA1LjQgMTIgMTIgMTJoMTA4djkyYzAgNi42IDUuNCAxMiAxMiAxMmg1NmM2LjYgMCAxMi01LjQgMTItMTJ2LTkyaDEwOGM2LjYgMCAxMi01LjQgMTItMTJ2LTMyYzAtNi42LTUuNC0xMi0xMi0xMkgyMzJ2LTI2LjhsMTkuOC0zNy4ySDM0MGM2LjYgMCAxMi01LjQgMTItMTJ2LTMyYzAtNi42LTUuNC0xMi0xMi0xMmgtNTguM2w4MC4xLTE1MC40YzQuMy03LjktMS41LTE3LjYtMTAuNi0xNy42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFZaW5ZYW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMS4wMyA4IDAgMTE5LjAzIDAgMjU2czExMS4wMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzIDI0OC0yNDhTMzg0Ljk3IDggMjQ4IDh6bTAgMzc2Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0wLTEyOGMtNTMuMDIgMC05NiA0Mi45OC05NiA5NnM0Mi45OCA5NiA5NiA5NmMtMTA2LjA0IDAtMTkyLTg1Ljk2LTE5Mi0xOTJTMTQxLjk2IDY0IDI0OCA2NGM1My4wMiAwIDk2IDQyLjk4IDk2IDk2cy00Mi45OCA5Ni05NiA5NnptMC0xMjhjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJzMTQuMzMgMzIgMzIgMzIgMzItMTQuMzMgMzItMzItMTQuMzMtMzItMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0FkZHJlc3NCb29rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzNiAxNjBjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTIwVjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHY0MTZjMCAyNi41IDIxLjUgNDggNDggNDhoMzIwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4di00OGgyMGM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtMjB2LTY0aDIwYzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC0yMHYtNjRoMjB6bS02OCAzMDRINDhWNDhoMzIwdjQxNnpNMjA4IDI1NmMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NC02NCAyOC43LTY0IDY0IDI4LjcgNjQgNjQgNjR6bS04OS42IDEyOGgxNzkuMmMxMi40IDAgMjIuNC04LjYgMjIuNC0xOS4ydi0xOS4yYzAtMzEuOC0zMC4xLTU3LjYtNjcuMi01Ny42LTEwLjggMC0xOC43IDgtNDQuOCA4LTI2LjkgMC0zMy40LTgtNDQuOC04LTM3LjEgMC02Ny4yIDI1LjgtNjcuMiA1Ny42djE5LjJjMCAxMC42IDEwIDE5LjIgMjIuNCAxOS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdBZGRyZXNzQ2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjggMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoNDgwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0wIDQwMEg0OFY4MGg0ODB2MzUyek0yMDggMjU2YzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0LTY0IDI4LjctNjQgNjQgMjguNyA2NCA2NCA2NHptLTg5LjYgMTI4aDE3OS4yYzEyLjQgMCAyMi40LTguNiAyMi40LTE5LjJ2LTE5LjJjMC0zMS44LTMwLjEtNTcuNi02Ny4yLTU3LjYtMTAuOCAwLTE4LjcgOC00NC44IDgtMjYuOSAwLTMzLjQtOC00NC44LTgtMzcuMSAwLTY3LjIgMjUuOC02Ny4yIDU3LjZ2MTkuMmMwIDEwLjYgMTAgMTkuMiAyMi40IDE5LjJ6TTM2MCAzMjBoMTEyYzQuNCAwIDgtMy42IDgtOHYtMTZjMC00LjQtMy42LTgtOC04SDM2MGMtNC40IDAtOCAzLjYtOCA4djE2YzAgNC40IDMuNiA4IDggOHptMC02NGgxMTJjNC40IDAgOC0zLjYgOC04di0xNmMwLTQuNC0zLjYtOC04LThIMzYwYy00LjQgMC04IDMuNi04IDh2MTZjMCA0LjQgMy42IDggOCA4em0wLTY0aDExMmM0LjQgMCA4LTMuNiA4LTh2LTE2YzAtNC40LTMuNi04LTgtOEgzNjBjLTQuNCAwLTggMy42LTggOHYxNmMwIDQuNCAzLjYgOCA4IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0FuZ3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptMC0xNDRjLTMzLjYgMC02NS4yIDE0LjgtODYuOCA0MC42LTguNSAxMC4yLTcuMSAyNS4zIDMuMSAzMy44czI1LjMgNy4yIDMzLjgtM2MyNC44LTI5LjcgNzUtMjkuNyA5OS44IDAgOC4xIDkuNyAyMy4yIDExLjkgMzMuOCAzIDEwLjItOC41IDExLjUtMjMuNiAzLjEtMzMuOC0yMS42LTI1LjgtNTMuMi00MC42LTg2LjgtNDAuNnptLTQ4LTcyYzEwLjMgMCAxOS45LTYuNyAyMy0xNy4xIDMuOC0xMi43LTMuNC0yNi4xLTE2LjEtMjkuOWwtODAtMjRjLTEyLjgtMy45LTI2LjEgMy40LTI5LjkgMTYuMS0zLjggMTIuNyAzLjQgMjYuMSAxNi4xIDI5LjlsMjguMiA4LjVjLTMuMSA0LjktNS4zIDEwLjQtNS4zIDE2LjYgMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuNCAzMi0zMi4xem0xOTktNTQuOWMtMy44LTEyLjctMTcuMS0xOS45LTI5LjktMTYuMWwtODAgMjRjLTEyLjcgMy44LTE5LjkgMTcuMi0xNi4xIDI5LjkgMy4xIDEwLjQgMTIuNyAxNy4xIDIzIDE3LjEgMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTYuMi0yLjItMTEuNy01LjMtMTYuNmwyOC4yLTguNWMxMi43LTMuNyAxOS45LTE3LjEgMTYuMS0yOS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdBcnJvd0FsdENpcmNsZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptMCA0NDhjLTExMC41IDAtMjAwLTg5LjUtMjAwLTIwMFMxNDUuNSA1NiAyNTYgNTZzMjAwIDg5LjUgMjAwIDIwMC04OS41IDIwMC0yMDAgMjAwem0tMzItMzE2djExNmgtNjdjLTEwLjcgMC0xNiAxMi45LTguNSAyMC41bDk5IDk5YzQuNyA0LjcgMTIuMyA0LjcgMTcgMGw5OS05OWM3LjYtNy42IDIuMi0yMC41LTguNS0yMC41aC02N1YxNDBjMC02LjYtNS40LTEyLTEyLTEyaC00MGMtNi42IDAtMTIgNS40LTEyIDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdBcnJvd0FsdENpcmNsZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAyNTZjMCAxMzcgMTExIDI0OCAyNDggMjQ4czI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOCA4IDExOSA4IDI1NnptNDQ4IDBjMCAxMTAuNS04OS41IDIwMC0yMDAgMjAwUzU2IDM2Ni41IDU2IDI1NiAxNDUuNSA1NiAyNTYgNTZzMjAwIDg5LjUgMjAwIDIwMHptLTcyLTIwdjQwYzAgNi42LTUuNCAxMi0xMiAxMkgyNTZ2NjdjMCAxMC43LTEyLjkgMTYtMjAuNSA4LjVsLTk5LTk5Yy00LjctNC43LTQuNy0xMi4zIDAtMTdsOTktOTljNy42LTcuNiAyMC41LTIuMiAyMC41IDguNXY2N2gxMTZjNi42IDAgMTIgNS40IDEyIDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdBcnJvd0FsdENpcmNsZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNCAyNTZDNTA0IDExOSAzOTMgOCAyNTYgOFM4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4em0tNDQ4IDBjMC0xMTAuNSA4OS41LTIwMCAyMDAtMjAwczIwMCA4OS41IDIwMCAyMDAtODkuNSAyMDAtMjAwIDIwMFM1NiAzNjYuNSA1NiAyNTZ6bTcyIDIwdi00MGMwLTYuNiA1LjQtMTIgMTItMTJoMTE2di02N2MwLTEwLjcgMTIuOS0xNiAyMC41LTguNWw5OSA5OWM0LjcgNC43IDQuNyAxMi4zIDAgMTdsLTk5IDk5Yy03LjYgNy42LTIwLjUgMi4yLTIwLjUtOC41di02N0gxNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQXJyb3dBbHRDaXJjbGVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTA0YzEzNyAwIDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDh6bTAtNDQ4YzExMC41IDAgMjAwIDg5LjUgMjAwIDIwMHMtODkuNSAyMDAtMjAwIDIwMFM1NiAzNjYuNSA1NiAyNTYgMTQ1LjUgNTYgMjU2IDU2em0yMCAzMjhoLTQwYy02LjYgMC0xMi01LjQtMTItMTJWMjU2aC02N2MtMTAuNyAwLTE2LTEyLjktOC41LTIwLjVsOTktOTljNC43LTQuNyAxMi4zLTQuNyAxNyAwbDk5IDk5YzcuNiA3LjYgMi4yIDIwLjUtOC41IDIwLjVoLTY3djExNmMwIDYuNi01LjQgMTItMTIgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0JlbGxTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MzMuOTkgNDcxLjAyTDM2IDMuNTFDMjkuMS0yLjAxIDE5LjAzLS45IDEzLjUxIDZsLTEwIDEyLjQ5Qy0yLjAyIDI1LjM5LS45IDM1LjQ2IDYgNDAuOThsNTk4IDQ2Ny41MWM2LjkgNS41MiAxNi45NiA0LjQgMjIuNDktMi40OWwxMC0xMi40OWM1LjUyLTYuOSA0LjQxLTE2Ljk3LTIuNS0yMi40OXpNMTYzLjUzIDM2OGMxNi43MS0yMi4wMyAzNC40OC01NS44IDQxLjQtMTEwLjU4bC00NS40Ny0zNS41NWMtMy4yNyA5MC43My0zNi40NyAxMjAuNjgtNTQuODQgMTQwLjQyLTYgNi40NS04LjY2IDE0LjE2LTguNjEgMjEuNzEuMTEgMTYuNCAxMi45OCAzMiAzMi4xIDMyaDI3OS42NmwtNjEuNC00OEgxNjMuNTN6TTMyMCA5NmM2MS44NiAwIDExMiA1MC4xNCAxMTIgMTEyIDAgLjItLjA2LjM4LS4wNi41OC4wMiAxNi44NCAxLjE2IDMxLjc3IDIuNzkgNDUuNzNsNTkuNTMgNDYuNTRjLTguMzEtMjIuMTMtMTQuMzQtNTEuNDktMTQuMzQtOTIuODUgMC03Ny43LTU0LjQ4LTEzOS45LTEyNy45NC0xNTUuMTZWMzJjMC0xNy42Ny0xNC4zMi0zMi0zMS45OC0zMnMtMzEuOTggMTQuMzMtMzEuOTggMzJ2MjAuODRjLTI2LjAyIDUuNDEtNDkuNDUgMTYuOTQtNjkuMTMgMzIuNzJsMzguMTcgMjkuODRDMjc1IDEwMy4xOCAyOTYuNjUgOTYgMzIwIDk2em0wIDQxNmMzNS4zMiAwIDYzLjk3LTI4LjY1IDYzLjk3LTY0SDI1Ni4wM2MwIDM1LjM1IDI4LjY1IDY0IDYzLjk3IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdCZWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzOS4zOSAzNjIuMjljLTE5LjMyLTIwLjc2LTU1LjQ3LTUxLjk5LTU1LjQ3LTE1NC4yOSAwLTc3LjctNTQuNDgtMTM5LjktMTI3Ljk0LTE1NS4xNlYzMmMwLTE3LjY3LTE0LjMyLTMyLTMxLjk4LTMycy0zMS45OCAxNC4zMy0zMS45OCAzMnYyMC44NEMxMTguNTYgNjguMSA2NC4wOCAxMzAuMyA2NC4wOCAyMDhjMCAxMDIuMy0zNi4xNSAxMzMuNTMtNTUuNDcgMTU0LjI5LTYgNi40NS04LjY2IDE0LjE2LTguNjEgMjEuNzEuMTEgMTYuNCAxMi45OCAzMiAzMi4xIDMyaDM4My44YzE5LjEyIDAgMzItMTUuNiAzMi4xLTMyIC4wNS03LjU1LTIuNjEtMTUuMjctOC42MS0yMS43MXpNNjcuNTMgMzY4YzIxLjIyLTI3Ljk3IDQ0LjQyLTc0LjMzIDQ0LjUzLTE1OS40MiAwLS4yLS4wNi0uMzgtLjA2LS41OCAwLTYxLjg2IDUwLjE0LTExMiAxMTItMTEyczExMiA1MC4xNCAxMTIgMTEyYzAgLjItLjA2LjM4LS4wNi41OC4xMSA4NS4xIDIzLjMxIDEzMS40NiA0NC41MyAxNTkuNDJINjcuNTN6TTIyNCA1MTJjMzUuMzIgMCA2My45Ny0yOC42NSA2My45Ny02NEgxNjAuMDNjMCAzNS4zNSAyOC42NSA2NCA2My45NyA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQm9va21hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM2IDBINDhDMjEuNDkgMCAwIDIxLjQ5IDAgNDh2NDY0bDE5Mi0xMTIgMTkyIDExMlY0OGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4em0wIDQyOC40M2wtMTQ0LTg0LTE0NCA4NFY1NGE2IDYgMCAwIDEgNi02aDI3NmMzLjMxNCAwIDYgMi42ODMgNiA1Ljk5NlY0MjguNDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0J1aWxkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAxNDh2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDBjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEyem0xNDAgMTJoNDBjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyem0tMTI4IDk2aDQwYzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC00MGMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMnptMTI4IDBoNDBjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyem0tNzYgODR2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEyem03NiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJ6bTE4MCAxMjR2MzZIMHYtMzZjMC02LjYgNS40LTEyIDEyLTEyaDE5LjVWMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRoMzM3YzEzLjMgMCAyNCAxMC43IDI0IDI0djQ0MEg0MzZjNi42IDAgMTIgNS40IDEyIDEyek03OS41IDQ2M0gxOTJ2LTY3YzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NjdoMTEyLjVWNDlMODAgNDhsLS41IDQxNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2FsZW5kYXJBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ4IDI4OGgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJ6bTEwOC0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC00MGMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ6bTk2IDB2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEyem0tOTYgOTZ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEyem0tOTYgMHYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC00MGMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ6bTE5MiAwdi00MGMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnptOTYtMjYwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4VjEyYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NTJoMTI4VjEyYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NTJoNDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS00OCAzNDZWMTYwSDQ4djI5OGMwIDMuMyAyLjcgNiA2IDZoMzQwYzMuMyAwIDYtMi43IDYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2FsZW5kYXJDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgNjRoLTQ4VjEyYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjUySDE2MFYxMmMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY1Mkg0OEMyMS40OSA2NCAwIDg1LjQ5IDAgMTEydjM1MmMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDM1MmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjExMmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4em0tNiA0MDBINTRhNiA2IDAgMCAxLTYtNlYxNjBoMzUydjI5OGE2IDYgMCAwIDEtNiA2em0tNTIuODQ5LTIwMC42NUwxOTguODQyIDQwNC41MTljLTQuNzA1IDQuNjY3LTEyLjMwMyA0LjYzNy0xNi45NzEtLjA2OGwtNzUuMDkxLTc1LjY5OWMtNC42NjctNC43MDUtNC42MzctMTIuMzAzLjA2OC0xNi45NzFsMjIuNzE5LTIyLjUzNmM0LjcwNS00LjY2NyAxMi4zMDMtNC42MzcgMTYuOTcuMDY5bDQ0LjEwNCA0NC40NjEgMTExLjA3Mi0xMTAuMTgxYzQuNzA1LTQuNjY3IDEyLjMwMy00LjYzNyAxNi45NzEuMDY4bDIyLjUzNiAyMi43MThjNC42NjcgNC43MDUgNC42MzYgMTIuMzAzLS4wNjkgMTYuOTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NhbGVuZGFyTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI0IDMyOGMtNi42IDAtMTItNS40LTEyLTEydi0yNGMwLTYuNiA1LjQtMTIgMTItMTJoMjAwYzYuNiAwIDEyIDUuNCAxMiAxMnYyNGMwIDYuNi01LjQgMTItMTIgMTJIMTI0em0zMjQtMjE2djM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4VjEyYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NTJoMTI4VjEyYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NTJoNDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS00OCAzNDZWMTYwSDQ4djI5OGMwIDMuMyAyLjcgNiA2IDZoMzQwYzMuMyAwIDYtMi43IDYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2FsZW5kYXJQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNiAyOTJ2MjRjMCA2LjYtNS40IDEyLTEyIDEyaC03NnY3NmMwIDYuNi01LjQgMTItMTIgMTJoLTI0Yy02LjYgMC0xMi01LjQtMTItMTJ2LTc2aC03NmMtNi42IDAtMTItNS40LTEyLTEydi0yNGMwLTYuNiA1LjQtMTIgMTItMTJoNzZ2LTc2YzAtNi42IDUuNC0xMiAxMi0xMmgyNGM2LjYgMCAxMiA1LjQgMTIgMTJ2NzZoNzZjNi42IDAgMTIgNS40IDEyIDEyem0xMTItMTgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4VjEyYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NTJoMTI4VjEyYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NTJoNDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS00OCAzNDZWMTYwSDQ4djI5OGMwIDMuMyAyLjcgNiA2IDZoMzQwYzMuMyAwIDYtMi43IDYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2FsZW5kYXJUaW1lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTEuNyAzNzQuN2wtMTcgMTdjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwyMjQgMzM3LjlsLTUzLjcgNTMuN2MtNC43IDQuNy0xMi4zIDQuNy0xNyAwbC0xNy0xN2MtNC43LTQuNy00LjctMTIuMyAwLTE3bDUzLjctNTMuNy01My43LTUzLjdjLTQuNy00LjctNC43LTEyLjMgMC0xN2wxNy0xN2M0LjctNC43IDEyLjMtNC43IDE3IDBsNTMuNyA1My43IDUzLjctNTMuN2M0LjctNC43IDEyLjMtNC43IDE3IDBsMTcgMTdjNC43IDQuNyA0LjcgMTIuMyAwIDE3TDI1Ny45IDMwNGw1My43IDUzLjdjNC44IDQuNyA0LjggMTIuMy4xIDE3ek00NDggMTEydjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4VjEyYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NTJoMTI4VjEyYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NTJoNDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS00OCAzNDZWMTYwSDQ4djI5OGMwIDMuMyAyLjcgNiA2IDZoMzQwYzMuMyAwIDYtMi43IDYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2FsZW5kYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDY0aC00OFYxMmMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2NTJIMTYwVjEyYzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnY1Mkg0OEMyMS41IDY0IDAgODUuNSAwIDExMnYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjExMmMwLTI2LjUtMjEuNS00OC00OC00OHptLTYgNDAwSDU0Yy0zLjMgMC02LTIuNy02LTZWMTYwaDM1MnYyOThjMCAzLjMtMi43IDYtNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDYXJldFNxdWFyZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI1LjEgMjA4aDE5Ny44YzEwLjcgMCAxNi4xIDEzIDguNSAyMC41bC05OC45IDk4LjNjLTQuNyA0LjctMTIuMiA0LjctMTYuOSAwbC05OC45LTk4LjNjLTcuNy03LjUtMi4zLTIwLjUgOC40LTIwLjV6TTQ0OCA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDM1MmMyNi41IDAgNDggMjEuNSA0OCA0OHptLTQ4IDM0NlY4NmMwLTMuMy0yLjctNi02LTZINTRjLTMuMyAwLTYgMi43LTYgNnYzNDBjMCAzLjMgMi43IDYgNiA2aDM0MGMzLjMgMCA2LTIuNyA2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NhcmV0U3F1YXJlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzIgMTU3LjF2MTk3LjhjMCAxMC43LTEzIDE2LjEtMjAuNSA4LjVsLTk4LjMtOTguOWMtNC43LTQuNy00LjctMTIuMiAwLTE2LjlsOTguMy05OC45YzcuNS03LjcgMjAuNS0yLjMgMjAuNSA4LjR6TTQ0OCA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDM1MmMyNi41IDAgNDggMjEuNSA0OCA0OHptLTQ4IDM0NlY4NmMwLTMuMy0yLjctNi02LTZINTRjLTMuMyAwLTYgMi43LTYgNnYzNDBjMCAzLjMgMi43IDYgNiA2aDM0MGMzLjMgMCA2LTIuNyA2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NhcmV0U3F1YXJlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc2IDM1NC45VjE1Ny4xYzAtMTAuNyAxMy0xNi4xIDIwLjUtOC41bDk4LjMgOTguOWM0LjcgNC43IDQuNyAxMi4yIDAgMTYuOWwtOTguMyA5OC45Yy03LjUgNy43LTIwLjUgMi4zLTIwLjUtOC40ek00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS00OCAzNDZWODZjMC0zLjMtMi43LTYtNi02SDU0Yy0zLjMgMC02IDIuNy02IDZ2MzQwYzAgMy4zIDIuNyA2IDYgNmgzNDBjMy4zIDAgNi0yLjcgNi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDYXJldFNxdWFyZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMi45IDMwNEgxMjUuMWMtMTAuNyAwLTE2LjEtMTMtOC41LTIwLjVsOTguOS05OC4zYzQuNy00LjcgMTIuMi00LjcgMTYuOSAwbDk4LjkgOTguM2M3LjcgNy41IDIuMyAyMC41LTguNCAyMC41ek00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS00OCAzNDZWODZjMC0zLjMtMi43LTYtNi02SDU0Yy0zLjMgMC02IDIuNy02IDZ2MzQwYzAgMy4zIDIuNyA2IDYgNmgzNDBjMy4zIDAgNi0yLjcgNi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDaGFydEJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTYuOCAzNTJoMjIuNGM2LjQgMCAxMi44LTYuNCAxMi44LTEyLjhWMTA4LjhjMC02LjQtNi40LTEyLjgtMTIuOC0xMi44aC0yMi40Yy02LjQgMC0xMi44IDYuNC0xMi44IDEyLjh2MjMwLjRjMCA2LjQgNi40IDEyLjggMTIuOCAxMi44em0tMTkyIDBoMjIuNGM2LjQgMCAxMi44LTYuNCAxMi44LTEyLjhWMTQwLjhjMC02LjQtNi40LTEyLjgtMTIuOC0xMi44aC0yMi40Yy02LjQgMC0xMi44IDYuNC0xMi44IDEyLjh2MTk4LjRjMCA2LjQgNi40IDEyLjggMTIuOCAxMi44em05NiAwaDIyLjRjNi40IDAgMTIuOC02LjQgMTIuOC0xMi44VjIwNC44YzAtNi40LTYuNC0xMi44LTEyLjgtMTIuOGgtMjIuNGMtNi40IDAtMTIuOCA2LjQtMTIuOCAxMi44djEzNC40YzAgNi40IDYuNCAxMi44IDEyLjggMTIuOHpNNDk2IDQwMEg0OFY4MGMwLTguODQtNy4xNi0xNi0xNi0xNkgxNkM3LjE2IDY0IDAgNzEuMTYgMCA4MHYzMzZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg0NjRjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTE2YzAtOC44NC03LjE2LTE2LTE2LTE2em0tMzg3LjItNDhoMjIuNGM2LjQgMCAxMi44LTYuNCAxMi44LTEyLjh2LTcwLjRjMC02LjQtNi40LTEyLjgtMTIuOC0xMi44aC0yMi40Yy02LjQgMC0xMi44IDYuNC0xMi44IDEyLjh2NzAuNGMwIDYuNCA2LjQgMTIuOCAxMi44IDEyLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NoZWNrQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOS4wMzMgOCA4IDExOS4wMzMgOCAyNTZzMTExLjAzMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzMyAyNDgtMjQ4UzM5Mi45NjcgOCAyNTYgOHptMCA0OGMxMTAuNTMyIDAgMjAwIDg5LjQ1MSAyMDAgMjAwIDAgMTEwLjUzMi04OS40NTEgMjAwLTIwMCAyMDAtMTEwLjUzMiAwLTIwMC04OS40NTEtMjAwLTIwMCAwLTExMC41MzIgODkuNDUxLTIwMCAyMDAtMjAwbTE0MC4yMDQgMTMwLjI2N2wtMjIuNTM2LTIyLjcxOGMtNC42NjctNC43MDUtMTIuMjY1LTQuNzM2LTE2Ljk3LS4wNjhMMjE1LjM0NiAzMDMuNjk3bC01OS43OTItNjAuMjc3Yy00LjY2Ny00LjcwNS0xMi4yNjUtNC43MzYtMTYuOTctLjA2OWwtMjIuNzE5IDIyLjUzNmMtNC43MDUgNC42NjctNC43MzYgMTIuMjY1LS4wNjggMTYuOTcxbDkwLjc4MSA5MS41MTZjNC42NjcgNC43MDUgMTIuMjY1IDQuNzM2IDE2Ljk3LjA2OGwxNzIuNTg5LTE3MS4yMDRjNC43MDQtNC42NjggNC43MzQtMTIuMjY2LjA2Ny0xNi45NzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NoZWNrU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS40OSAzMiAwIDUzLjQ5IDAgODB2MzUyYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMzUyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWODBjMC0yNi41MS0yMS40OS00OC00OC00OHptMCA0MDBINDhWODBoMzUydjM1MnptLTM1Ljg2NC0yNDEuNzI0TDE5MS41NDcgMzYxLjQ4Yy00LjcwNSA0LjY2Ny0xMi4zMDMgNC42MzctMTYuOTctLjA2OGwtOTAuNzgxLTkxLjUxNmMtNC42NjctNC43MDUtNC42MzctMTIuMzAzLjA2OS0xNi45NzFsMjIuNzE5LTIyLjUzNmM0LjcwNS00LjY2NyAxMi4zMDMtNC42MzcgMTYuOTcuMDY5bDU5Ljc5MiA2MC4yNzcgMTQxLjM1Mi0xNDAuMjE2YzQuNzA1LTQuNjY3IDEyLjMwMy00LjYzNyAxNi45Ny4wNjhsMjIuNTM2IDIyLjcxOGM0LjY2NyA0LjcwNiA0LjYzNyAxMi4zMDQtLjA2OCAxNi45NzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4em0wIDQ0OGMtMTEwLjUgMC0yMDAtODkuNS0yMDAtMjAwUzE0NS41IDU2IDI1NiA1NnMyMDAgODkuNSAyMDAgMjAwLTg5LjUgMjAwLTIwMCAyMDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NsaXBib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYgNjRoLTgwYzAtMzUuMy0yOC43LTY0LTY0LTY0cy02NCAyOC43LTY0IDY0SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyODhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xOTIgNDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjQtMjQtMTAuNy0yNC0yNCAxMC43LTI0IDI0LTI0em0xNDQgNDE4YzAgMy4zLTIuNyA2LTYgNkg1NGMtMy4zIDAtNi0yLjctNi02VjExOGMwLTMuMyAyLjctNiA2LTZoNDJ2MzZjMCA2LjYgNS40IDEyIDEyIDEyaDE2OGM2LjYgMCAxMi01LjQgMTItMTJ2LTM2aDQyYzMuMyAwIDYgMi43IDYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2xvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptMCA0NDhjLTExMC41IDAtMjAwLTg5LjUtMjAwLTIwMFMxNDUuNSA1NiAyNTYgNTZzMjAwIDg5LjUgMjAwIDIwMC04OS41IDIwMC0yMDAgMjAwem02MS44LTEwNC40bC04NC45LTYxLjdjLTMuMS0yLjMtNC45LTUuOS00LjktOS43VjExNmMwLTYuNiA1LjQtMTIgMTItMTJoMzJjNi42IDAgMTIgNS40IDEyIDEydjE0MS43bDY2LjggNDguNmM1LjQgMy45IDYuNSAxMS40IDIuNiAxNi44TDMzNC42IDM0OWMtMy45IDUuMy0xMS40IDYuNS0xNi44IDIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2xvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDBIMTQ0Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djQ4SDQ4Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djMyMGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDMyMGMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4di00OGg0OGMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjQ4YzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6TTM2MiA0NjRINTRhNiA2IDAgMCAxLTYtNlYxNTBhNiA2IDAgMCAxIDYtNmg0MnYyMjRjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgyMjR2NDJhNiA2IDAgMCAxLTYgNnptOTYtOTZIMTUwYTYgNiAwIDAgMS02LTZWNTRhNiA2IDAgMCAxIDYtNmgzMDhhNiA2IDAgMCAxIDYgNnYzMDhhNiA2IDAgMCAxLTYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2xvc2VkQ2FwdGlvbmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgNjRINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2Mjg4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQxNmMyNi41IDAgNDgtMjEuNSA0OC00OFYxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS02IDMzNkg1NGMtMy4zIDAtNi0yLjctNi02VjExOGMwLTMuMyAyLjctNiA2LTZoNDA0YzMuMyAwIDYgMi43IDYgNnYyNzZjMCAzLjMtMi43IDYtNiA2em0tMjExLjEtODUuN2MxLjcgMi40IDEuNSA1LjYtLjUgNy43LTUzLjYgNTYuOC0xNzIuOCAzMi4xLTE3Mi44LTY3LjkgMC05Ny4zIDEyMS43LTExOS41IDE3Mi41LTcwLjEgMi4xIDIgMi41IDMuMiAxIDUuN2wtMTcuNSAzMC41Yy0xLjkgMy4xLTYuMiA0LTkuMSAxLjctNDAuOC0zMi05NC42LTE0LjktOTQuNiAzMS4yIDAgNDggNTEgNzAuNSA5Mi4yIDMyLjYgMi44LTIuNSA3LjEtMi4xIDkuMi45bDE5LjYgMjcuN3ptMTkwLjQgMGMxLjcgMi40IDEuNSA1LjYtLjUgNy43LTUzLjYgNTYuOS0xNzIuOCAzMi4xLTE3Mi44LTY3LjkgMC05Ny4zIDEyMS43LTExOS41IDE3Mi41LTcwLjEgMi4xIDIgMi41IDMuMiAxIDUuN0w0MjAgMjIwLjJjLTEuOSAzLjEtNi4yIDQtOS4xIDEuNy00MC44LTMyLTk0LjYtMTQuOS05NC42IDMxLjIgMCA0OCA1MSA3MC41IDkyLjIgMzIuNiAyLjgtMi41IDcuMS0yLjEgOS4yLjlsMTkuNiAyNy43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDb21tZW50QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAwSDY0QzI4LjcgMCAwIDI4LjcgMCA2NHYyODhjMCAzNS4zIDI4LjcgNjQgNjQgNjRoOTZ2ODRjMCA3LjEgNS44IDEyIDEyIDEyIDIuNCAwIDQuOS0uNyA3LjEtMi40TDMwNCA0MTZoMTQ0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0em0xNiAzNTJjMCA4LjgtNy4yIDE2LTE2IDE2SDI4OGwtMTIuOCA5LjZMMjA4IDQyOHYtNjBINjRjLTguOCAwLTE2LTcuMi0xNi0xNlY2NGMwLTguOCA3LjItMTYgMTYtMTZoMzg0YzguOCAwIDE2IDcuMiAxNiAxNnYyODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NvbW1lbnREb3RzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NCAyMDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyem0xMTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6bTExMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnpNMjU2IDMyQzExNC42IDMyIDAgMTI1LjEgMCAyNDBjMCA0Ny42IDE5LjkgOTEuMiA1Mi45IDEyNi4zQzM4IDQwNS43IDcgNDM5LjEgNi41IDQzOS41Yy02LjYgNy04LjQgMTcuMi00LjYgMjZTMTQuNCA0ODAgMjQgNDgwYzYxLjUgMCAxMTAtMjUuNyAxMzkuMS00Ni4zQzE5MiA0NDIuOCAyMjMuMiA0NDggMjU2IDQ0OGMxNDEuNCAwIDI1Ni05My4xIDI1Ni0yMDhTMzk3LjQgMzIgMjU2IDMyem0wIDM2OGMtMjYuNyAwLTUzLjEtNC4xLTc4LjQtMTIuMWwtMjIuNy03LjItMTkuNSAxMy44Yy0xNC4zIDEwLjEtMzMuOSAyMS40LTU3LjUgMjkgNy4zLTEyLjEgMTQuNC0yNS43IDE5LjktNDAuMmwxMC42LTI4LjEtMjAuNi0yMS44QzY5LjcgMzE0LjEgNDggMjgyLjIgNDggMjQwYzAtODguMiA5My4zLTE2MCAyMDgtMTYwczIwOCA3MS44IDIwOCAxNjAtOTMuMyAxNjAtMjA4IDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ29tbWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMzJDMTE0LjYgMzIgMCAxMjUuMSAwIDI0MGMwIDQ3LjYgMTkuOSA5MS4yIDUyLjkgMTI2LjNDMzggNDA1LjcgNyA0MzkuMSA2LjUgNDM5LjVjLTYuNiA3LTguNCAxNy4yLTQuNiAyNlMxNC40IDQ4MCAyNCA0ODBjNjEuNSAwIDExMC0yNS43IDEzOS4xLTQ2LjNDMTkyIDQ0Mi44IDIyMy4yIDQ0OCAyNTYgNDQ4YzE0MS40IDAgMjU2LTkzLjEgMjU2LTIwOFMzOTcuNCAzMiAyNTYgMzJ6bTAgMzY4Yy0yNi43IDAtNTMuMS00LjEtNzguNC0xMi4xbC0yMi43LTcuMi0xOS41IDEzLjhjLTE0LjMgMTAuMS0zMy45IDIxLjQtNTcuNSAyOSA3LjMtMTIuMSAxNC40LTI1LjcgMTkuOS00MC4ybDEwLjYtMjguMS0yMC42LTIxLjhDNjkuNyAzMTQuMSA0OCAyODIuMiA0OCAyNDBjMC04OC4yIDkzLjMtMTYwIDIwOC0xNjBzMjA4IDcxLjggMjA4IDE2MC05My4zIDE2MC0yMDggMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDb21tZW50cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MzIgMzg2LjJjMjcuNS0yNy4xIDQ0LTYxLjEgNDQtOTguMiAwLTgwLTc2LjUtMTQ2LjEtMTc2LjItMTU3LjlDMzY4LjMgNzIuNSAyOTQuMyAzMiAyMDggMzIgOTMuMSAzMiAwIDEwMy42IDAgMTkyYzAgMzcgMTYuNSA3MSA0NCA5OC4yLTE1LjMgMzAuNy0zNy4zIDU0LjUtMzcuNyA1NC45LTYuMyA2LjctOC4xIDE2LjUtNC40IDI1IDMuNiA4LjUgMTIgMTQgMjEuMiAxNCA1My41IDAgOTYuNy0yMC4yIDEyNS4yLTM4LjggOS4yIDIuMSAxOC43IDMuNyAyOC40IDQuOUMyMDguMSA0MDcuNiAyODEuOCA0NDggMzY4IDQ0OGMyMC44IDAgNDAuOC0yLjQgNTkuOC02LjhDNDU2LjMgNDU5LjcgNDk5LjQgNDgwIDU1MyA0ODBjOS4yIDAgMTcuNS01LjUgMjEuMi0xNCAzLjYtOC41IDEuOS0xOC4zLTQuNC0yNS0uNC0uMy0yMi41LTI0LjEtMzcuOC01NC44em0tMzkyLjgtOTIuM0wxMjIuMSAzMDVjLTE0LjEgOS4xLTI4LjUgMTYuMy00My4xIDIxLjQgMi43LTQuNyA1LjQtOS43IDgtMTQuOGwxNS41LTMxLjFMNzcuNyAyNTZDNjQuMiAyNDIuNiA0OCAyMjAuNyA0OCAxOTJjMC02MC43IDczLjMtMTEyIDE2MC0xMTJzMTYwIDUxLjMgMTYwIDExMi03My4zIDExMi0xNjAgMTEyYy0xNi41IDAtMzMtMS45LTQ5LTUuNmwtMTkuOC00LjV6TTQ5OC4zIDM1MmwtMjQuNyAyNC40IDE1LjUgMzEuMWMyLjYgNS4xIDUuMyAxMC4xIDggMTQuOC0xNC42LTUuMS0yOS0xMi4zLTQzLjEtMjEuNGwtMTcuMS0xMS4xLTE5LjkgNC42Yy0xNiAzLjctMzIuNSA1LjYtNDkgNS42LTU0IDAtMTAyLjItMjAuMS0xMzEuMy00OS43QzMzOCAzMzkuNSA0MTYgMjcyLjkgNDE2IDE5MmMwLTMuNC0uNC02LjctLjctMTBDNDc5LjcgMTk2LjUgNTI4IDIzOC44IDUyOCAyODhjMCAyOC43LTE2LjIgNTAuNi0yOS43IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDb21wYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0Ny45NCAxMjkuODZMMjAzLjYgMTk1LjgzYTMxLjkzOCAzMS45MzggMCAwIDAtMTUuNzcgMTUuNzdsLTY1Ljk3IDE0NC4zNGMtNy42MSAxNi42NSA5LjU0IDMzLjgxIDI2LjIgMjYuMmwxNDQuMzQtNjUuOTdhMzEuOTM4IDMxLjkzOCAwIDAgMCAxNS43Ny0xNS43N2w2NS45Ny0xNDQuMzRjNy42MS0xNi42Ni05LjU0LTMzLjgxLTI2LjItMjYuMnptLTc3LjM2IDE0OC43MmMtMTIuNDcgMTIuNDctMzIuNjkgMTIuNDctNDUuMTYgMC0xMi40Ny0xMi40Ny0xMi40Ny0zMi42OSAwLTQ1LjE2IDEyLjQ3LTEyLjQ3IDMyLjY5LTEyLjQ3IDQ1LjE2IDAgMTIuNDcgMTIuNDcgMTIuNDcgMzIuNjkgMCA0NS4xNnpNMjQ4IDhDMTExLjAzIDggMCAxMTkuMDMgMCAyNTZzMTExLjAzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMgMjQ4LTI0OFMzODQuOTcgOCAyNDggOHptMCA0NDhjLTExMC4yOCAwLTIwMC04OS43Mi0yMDAtMjAwUzEzNy43MiA1NiAyNDggNTZzMjAwIDg5LjcyIDIwMCAyMDAtODkuNzIgMjAwLTIwMCAyMDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NvcHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMzLjk0MSA2NS45NDFsLTUxLjg4Mi01MS44ODJBNDggNDggMCAwIDAgMzQ4LjExOCAwSDE3NmMtMjYuNTEgMC00OCAyMS40OS00OCA0OHY0OEg0OGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHYzMjBjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgyMjRjMjYuNTEgMCA0OC0yMS40OSA0OC00OHYtNDhoODBjMjYuNTEgMCA0OC0yMS40OSA0OC00OFY5OS44ODJhNDggNDggMCAwIDAtMTQuMDU5LTMzLjk0MXpNMjY2IDQ2NEg1NGE2IDYgMCAwIDEtNi02VjE1MGE2IDYgMCAwIDEgNi02aDc0djIyNGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDk2djQyYTYgNiAwIDAgMS02IDZ6bTEyOC05NkgxODJhNiA2IDAgMCAxLTYtNlY1NGE2IDYgMCAwIDEgNi02aDEwNnY4OGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoODh2MjAyYTYgNiAwIDAgMS02IDZ6bTYtMjU2aC02NFY0OGg5LjYzMmMxLjU5MSAwIDMuMTE3LjYzMiA0LjI0MyAxLjc1N2w0OC4zNjggNDguMzY4YTYgNiAwIDAgMSAxLjc1NyA0LjI0M1YxMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NvcHlyaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkuMDMzIDggOCAxMTkuMDMzIDggMjU2czExMS4wMzMgMjQ4IDI0OCAyNDggMjQ4LTExMS4wMzMgMjQ4LTI0OFMzOTIuOTY3IDggMjU2IDh6bTAgNDQ4Yy0xMTAuNTMyIDAtMjAwLTg5LjQ1MS0yMDAtMjAwIDAtMTEwLjUzMSA4OS40NTEtMjAwIDIwMC0yMDAgMTEwLjUzMiAwIDIwMCA4OS40NTEgMjAwIDIwMCAwIDExMC41MzItODkuNDUxIDIwMC0yMDAgMjAwem0xMDcuMzUxLTEwMS4wNjRjLTkuNjE0IDkuNzEyLTQ1LjUzIDQxLjM5Ni0xMDQuMDY1IDQxLjM5Ni04Mi40MyAwLTE0MC40ODQtNjEuNDI1LTE0MC40ODQtMTQxLjU2NyAwLTc5LjE1MiA2MC4yNzUtMTM5LjQwMSAxMzkuNzYyLTEzOS40MDEgNTUuNTMxIDAgODguNzM4IDI2LjYyIDk3LjU5MyAzNC43NzlhMTEuOTY1IDExLjk2NSAwIDAgMSAxLjkzNiAxNS4zMjJsLTE4LjE1NSAyOC4xMTNjLTMuODQxIDUuOTUtMTEuOTY2IDcuMjgyLTE3LjQ5OSAyLjkyMS04LjU5NS02Ljc3Ni0zMS44MTQtMjIuNTM4LTYxLjcwOC0yMi41MzgtNDguMzAzIDAtNzcuOTE2IDM1LjMzLTc3LjkxNiA4MC4wODIgMCA0MS41ODkgMjYuODg4IDgzLjY5MiA3OC4yNzcgODMuNjkyIDMyLjY1NyAwIDU2Ljg0My0xOS4wMzkgNjUuNzI2LTI3LjIyNSA1LjI3LTQuODU3IDEzLjU5Ni00LjAzOSAxNy44MiAxLjczOGwxOS44NjUgMjcuMTdhMTEuOTQ3IDExLjk0NyAwIDAgMS0xLjE1MiAxNS41MTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NyZWRpdENhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI3LjkgMzJINDguMUMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OC4xIDQ4aDQ3OS44YzI2LjYgMCA0OC4xLTIxLjUgNDguMS00OFY4MGMwLTI2LjUtMjEuNS00OC00OC4xLTQ4ek01NC4xIDgwaDQ2Ny44YzMuMyAwIDYgMi43IDYgNnY0Mkg0OC4xVjg2YzAtMy4zIDIuNy02IDYtNnptNDY3LjggMzUySDU0LjFjLTMuMyAwLTYtMi43LTYtNlYyNTZoNDc5Ljh2MTcwYzAgMy4zLTIuNyA2LTYgNnpNMTkyIDMzMnY0MGMwIDYuNi01LjQgMTItMTIgMTJoLTcyYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmg3MmM2LjYgMCAxMiA1LjQgMTIgMTJ6bTE5MiAwdjQwYzAgNi42LTUuNCAxMi0xMiAxMkgyMzZjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDEzNmM2LjYgMCAxMiA1LjQgMTIgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0Rpenp5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptLTMzLjgtMjE3LjljNy44LTcuOCA3LjgtMjAuNSAwLTI4LjNMMTk2LjMgMTkybDE3LjktMTcuOWM3LjgtNy44IDcuOC0yMC41IDAtMjguMy03LjgtNy44LTIwLjUtNy44LTI4LjMgMEwxNjggMTYzLjdsLTE3LjgtMTcuOGMtNy44LTcuOC0yMC41LTcuOC0yOC4zIDAtNy44IDcuOC03LjggMjAuNSAwIDI4LjNsMTcuOSAxNy45LTE3LjkgMTcuOWMtNy44IDcuOC03LjggMjAuNSAwIDI4LjMgNy44IDcuOCAyMC41IDcuOCAyOC4zIDBsMTcuOC0xNy44IDE3LjggMTcuOGM3LjkgNy43IDIwLjUgNy43IDI4LjQtLjJ6bTE2MC05Mi4yYy03LjgtNy44LTIwLjUtNy44LTI4LjMgMEwzMjggMTYzLjdsLTE3LjgtMTcuOGMtNy44LTcuOC0yMC41LTcuOC0yOC4zIDAtNy44IDcuOC03LjggMjAuNSAwIDI4LjNsMTcuOSAxNy45LTE3LjkgMTcuOWMtNy44IDcuOC03LjggMjAuNSAwIDI4LjMgNy44IDcuOCAyMC41IDcuOCAyOC4zIDBsMTcuOC0xNy44IDE3LjggMTcuOGM3LjggNy44IDIwLjUgNy44IDI4LjMgMCA3LjgtNy44IDcuOC0yMC41IDAtMjguM2wtMTcuOC0xOCAxNy45LTE3LjljNy43LTcuOCA3LjctMjAuNCAwLTI4LjJ6TTI0OCAyNzJjLTM1LjMgMC02NCAyOC43LTY0IDY0czI4LjcgNjQgNjQgNjQgNjQtMjguNyA2NC02NC0yOC43LTY0LTY0LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdEb3RDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDU2YzExMC41MzIgMCAyMDAgODkuNDUxIDIwMCAyMDAgMCAxMTAuNTMyLTg5LjQ1MSAyMDAtMjAwIDIwMC0xMTAuNTMyIDAtMjAwLTg5LjQ1MS0yMDAtMjAwIDAtMTEwLjUzMiA4OS40NTEtMjAwIDIwMC0yMDBtMC00OEMxMTkuMDMzIDggOCAxMTkuMDMzIDggMjU2czExMS4wMzMgMjQ4IDI0OCAyNDggMjQ4LTExMS4wMzMgMjQ4LTI0OFMzOTIuOTY3IDggMjU2IDh6bTAgMTY4Yy00NC4xODMgMC04MCAzNS44MTctODAgODBzMzUuODE3IDgwIDgwIDgwIDgwLTM1LjgxNyA4MC04MC0zNS44MTctODAtODAtODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0VkaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAyLjMgMzQ0LjlsMzItMzJjNS01IDEzLjctMS41IDEzLjcgNS43VjQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDI3My41YzcuMSAwIDEwLjcgOC42IDUuNyAxMy43bC0zMiAzMmMtMS41IDEuNS0zLjUgMi4zLTUuNyAyLjNINDh2MzUyaDM1MlYzNTAuNWMwLTIuMS44LTQuMSAyLjMtNS42em0xNTYuNi0yMDEuOEwyOTYuMyA0MDUuN2wtOTAuNCAxMGMtMjYuMiAyLjktNDguNS0xOS4yLTQ1LjYtNDUuNmwxMC05MC40TDQzMi45IDE3LjFjMjIuOS0yMi45IDU5LjktMjIuOSA4Mi43IDBsNDMuMiA0My4yYzIyLjkgMjIuOSAyMi45IDYwIC4xIDgyLjh6TTQ2MC4xIDE3NEw0MDIgMTE1LjkgMjE2LjIgMzAxLjhsLTcuMyA2NS4zIDY1LjMtNy4zTDQ2MC4xIDE3NHptNjQuOC03OS43bC00My4yLTQzLjJjLTQuMS00LjEtMTAuOC00LjEtMTQuOCAwTDQzNiA4Mmw1OC4xIDU4LjEgMzAuOS0zMC45YzQtNC4yIDQtMTAuOC0uMS0xNC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdFbnZlbG9wZU9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk0LjU4NiAxNjQuNTE2Yy00LjY5Ny0zLjg4My0xMTEuNzIzLTg5Ljk1LTEzNS4yNTEtMTA4LjY1N0MzMzcuMjMxIDM4LjE5MSAyOTkuNDM3IDAgMjU2IDBjLTQzLjIwNSAwLTgwLjYzNiAzNy43MTctMTAzLjMzNSA1NS44NTktMjQuNDYzIDE5LjQ1LTEzMS4wNyAxMDUuMTk1LTEzNS4xNSAxMDguNTQ5QTQ4LjAwNCA0OC4wMDQgMCAwIDAgMCAyMDEuNDg1VjQ2NGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDQxNmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjIwMS41MDlhNDggNDggMCAwIDAtMTcuNDE0LTM2Ljk5M3pNNDY0IDQ1OGE2IDYgMCAwIDEtNiA2SDU0YTYgNiAwIDAgMS02LTZWMjA0LjM0N2MwLTEuODEzLjgxNi0zLjUyNiAyLjIyNi00LjY2NSAxNS44Ny0xMi44MTQgMTA4Ljc5My04Ny41NTQgMTMyLjM2NC0xMDYuMjkzQzIwMC43NTUgNzguODggMjMyLjM5OCA0OCAyNTYgNDhjMjMuNjkzIDAgNTUuODU3IDMxLjM2OSA3My40MSA0NS4zODkgMjMuNTczIDE4Ljc0MSAxMTYuNTAzIDkzLjQ5MyAxMzIuMzY2IDEwNi4zMTZhNS45OSA1Ljk5IDAgMCAxIDIuMjI0IDQuNjYzVjQ1OHptLTMxLjk5MS0xODcuNzA0YzQuMjQ5IDUuMTU5IDMuNDY1IDEyLjc5NS0xLjc0NSAxNi45ODEtMjguOTc1IDIzLjI4My01OS4yNzQgNDcuNTk3LTcwLjkyOSA1Ni44NjNDMzM2LjYzNiAzNjIuMjgzIDI5OS4yMDUgNDAwIDI1NiA0MDBjLTQzLjQ1MiAwLTgxLjI4Ny0zOC4yMzctMTAzLjMzNS01NS44Ni0xMS4yNzktOC45NjctNDEuNzQ0LTMzLjQxMy03MC45MjctNTYuODY1LTUuMjEtNC4xODctNS45OTMtMTEuODIyLTEuNzQ1LTE2Ljk4MWwxNS4yNTgtMTguNTI4YzQuMTc4LTUuMDczIDExLjY1Ny01Ljg0MyAxNi43NzktMS43MjYgMjguNjE4IDIzLjAwMSA1OC41NjYgNDcuMDM1IDcwLjU2IDU2LjU3MUMyMDAuMTQzIDMyMC42MzEgMjMyLjMwNyAzNTIgMjU2IDM1MmMyMy42MDIgMCA1NS4yNDYtMzAuODggNzMuNDEtNDUuMzg5IDExLjk5NC05LjUzNSA0MS45NDQtMzMuNTcgNzAuNTYzLTU2LjU2OCA1LjEyMi00LjExNiAxMi42MDEtMy4zNDYgMTYuNzc4IDEuNzI3bDE1LjI1OCAxOC41MjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0VudmVsb3BlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCA2NEg0OEMyMS40OSA2NCAwIDg1LjQ5IDAgMTEydjI4OGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDQxNmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjExMmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4em0wIDQ4djQwLjgwNWMtMjIuNDIyIDE4LjI1OS01OC4xNjggNDYuNjUxLTEzNC41ODcgMTA2LjQ5LTE2Ljg0MSAxMy4yNDctNTAuMjAxIDQ1LjA3Mi03My40MTMgNDQuNzAxLTIzLjIwOC4zNzUtNTYuNTc5LTMxLjQ1OS03My40MTMtNDQuNzAxQzEwNi4xOCAxOTkuNDY1IDcwLjQyNSAxNzEuMDY3IDQ4IDE1Mi44MDVWMTEyaDQxNnpNNDggNDAwVjIxNC4zOThjMjIuOTE0IDE4LjI1MSA1NS40MDkgNDMuODYyIDEwNC45MzggODIuNjQ2IDIxLjg1NyAxNy4yMDUgNjAuMTM0IDU1LjE4NiAxMDMuMDYyIDU0Ljk1NSA0Mi43MTcuMjMxIDgwLjUwOS0zNy4xOTkgMTAzLjA1My01NC45NDcgNDkuNTI4LTM4Ljc4MyA4Mi4wMzItNjQuNDAxIDEwNC45NDctODIuNjUzVjQwMEg0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRXllU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjM0IDQ3MUwzNiAzLjUxQTE2IDE2IDAgMCAwIDEzLjUxIDZsLTEwIDEyLjQ5QTE2IDE2IDAgMCAwIDYgNDFsNTk4IDQ2Ny40OWExNiAxNiAwIDAgMCAyMi40OS0yLjQ5bDEwLTEyLjQ5QTE2IDE2IDAgMCAwIDYzNCA0NzF6TTI5Ni43OSAxNDYuNDdsMTM0Ljc5IDEwNS4zOEM0MjkuMzYgMTkxLjkxIDM4MC40OCAxNDQgMzIwIDE0NGExMTIuMjYgMTEyLjI2IDAgMCAwLTIzLjIxIDIuNDd6bTQ2LjQyIDIxOS4wN0wyMDguNDIgMjYwLjE2QzIxMC42NSAzMjAuMDkgMjU5LjUzIDM2OCAzMjAgMzY4YTExMyAxMTMgMCAwIDAgMjMuMjEtMi40NnpNMzIwIDExMmM5OC42NSAwIDE4OS4wOSA1NSAyMzcuOTMgMTQ0YTI4NS41MyAyODUuNTMgMCAwIDEtNDQgNjAuMmwzNy43NCAyOS41YTMzMy43IDMzMy43IDAgMCAwIDUyLjktNzUuMTEgMzIuMzUgMzIuMzUgMCAwIDAgMC0yOS4xOUM1NTAuMjkgMTM1LjU5IDQ0Mi45MyA2NCAzMjAgNjRjLTM2LjcgMC03MS43MSA3LTEwNC42MyAxOC44MWw0Ni40MSAzNi4yOWMxOC45NC00LjMgMzguMzQtNy4xIDU4LjIyLTcuMXptMCAyODhjLTk4LjY1IDAtMTg5LjA4LTU1LTIzNy45My0xNDRhMjg1LjQ3IDI4NS40NyAwIDAgMSA0NC4wNS02MC4xOWwtMzcuNzQtMjkuNWEzMzMuNiAzMzMuNiAwIDAgMC01Mi44OSA3NS4xIDMyLjM1IDMyLjM1IDAgMCAwIDAgMjkuMTlDODkuNzIgMzc2LjQxIDE5Ny4wOCA0NDggMzIwIDQ0OGMzNi43IDAgNzEuNzEtNy4wNSAxMDQuNjMtMTguODFsLTQ2LjQxLTM2LjI4QzM1OS4yOCAzOTcuMiAzMzkuODkgNDAwIDMyMCA0MDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0V5ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMTQ0YTExMC45NCAxMTAuOTQgMCAwIDAtMzEuMjQgNSA1NS40IDU1LjQgMCAwIDEgNy4yNCAyNyA1NiA1NiAwIDAgMS01NiA1NiA1NS40IDU1LjQgMCAwIDEtMjctNy4yNEExMTEuNzEgMTExLjcxIDAgMSAwIDI4OCAxNDR6bTI4NC41MiA5Ny40QzUxOC4yOSAxMzUuNTkgNDEwLjkzIDY0IDI4OCA2NFM1Ny42OCAxMzUuNjQgMy40OCAyNDEuNDFhMzIuMzUgMzIuMzUgMCAwIDAgMCAyOS4xOUM1Ny43MSAzNzYuNDEgMTY1LjA3IDQ0OCAyODggNDQ4czIzMC4zMi03MS42NCAyODQuNTItMTc3LjQxYTMyLjM1IDMyLjM1IDAgMCAwIDAtMjkuMTl6TTI4OCA0MDBjLTk4LjY1IDAtMTg5LjA5LTU1LTIzNy45My0xNDRDOTguOTEgMTY3IDE4OS4zNCAxMTIgMjg4IDExMnMxODkuMDkgNTUgMjM3LjkzIDE0NEM0NzcuMSAzNDUgMzg2LjY2IDQwMCAyODggNDAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGaWxlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAyNDh2MjhjMCA2LjYtNS40IDEyLTEyIDEySDEwOGMtNi42IDAtMTItNS40LTEyLTEydi0yOGMwLTYuNiA1LjQtMTIgMTItMTJoMTY4YzYuNiAwIDEyIDUuNCAxMiAxMnptLTEyIDcySDEwOGMtNi42IDAtMTIgNS40LTEyIDEydjI4YzAgNi42IDUuNCAxMiAxMiAxMmgxNjhjNi42IDAgMTItNS40IDEyLTEydi0yOGMwLTYuNi01LjQtMTItMTItMTJ6bTEwOC0xODguMVY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjQ4QzAgMjEuNSAyMS41IDAgNDggMGgyMDQuMUMyNjQuOCAwIDI3NyA1LjEgMjg2IDE0LjFMMzY5LjkgOThjOSA4LjkgMTQuMSAyMS4yIDE0LjEgMzMuOXptLTEyOC04MFYxMjhoNzYuMUwyNTYgNTEuOXpNMzM2IDQ2NFYxNzZIMjMyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFY0OEg0OHY0MTZoMjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGaWxlQXJjaGl2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjguMyAxNjB2MzJoMzJ2LTMyem02NC05NmgtMzJ2MzJoMzJ6bS02NCAzMnYzMmgzMlY5NnptNjQgMzJoLTMydjMyaDMyem0xNzcuNi0zMC4xTDI4NiAxNEMyNzcgNSAyNjQuOC0uMSAyNTIuMS0uMUg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OFYxMzEuOWMwLTEyLjctNS4xLTI1LTE0LjEtMzR6TTI1NiA1MS45bDc2LjEgNzYuMUgyNTZ6TTMzNiA0NjRINDhWNDhoNzkuN3YxNmgzMlY0OEgyMDh2MTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDEwNHpNMTk0LjIgMjY1LjdjLTEuMS01LjYtNi05LjctMTEuOC05LjdoLTIyLjF2LTMyaC0zMnYzMmwtMTkuNyA5Ny4xQzEwMiAzODUuNiAxMjYuOCA0MTYgMTYwIDQxNmMzMy4xIDAgNTcuOS0zMC4yIDUxLjUtNjIuNnptLTMzLjkgMTI0LjRjLTE3LjkgMC0zMi40LTEyLjEtMzIuNC0yN3MxNC41LTI3IDMyLjQtMjcgMzIuNCAxMi4xIDMyLjQgMjctMTQuNSAyNy0zMi40IDI3em0zMi0xOTguMWgtMzJ2MzJoMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZpbGVBdWRpbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjkuOTQxIDk3Ljk0MWwtODMuODgyLTgzLjg4MkE0OCA0OCAwIDAgMCAyNTIuMTE4IDBINDhDMjEuNDkgMCAwIDIxLjQ5IDAgNDh2NDE2YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMjg4YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMTMxLjg4MmE0OCA0OCAwIDAgMC0xNC4wNTktMzMuOTQxek0zMzIuMTE4IDEyOEgyNTZWNTEuODgyTDMzMi4xMTggMTI4ek00OCA0NjRWNDhoMTYwdjEwNGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTA0djI4OEg0OHptMTQ0LTc2LjAyNGMwIDEwLjY5MS0xMi45MjYgMTYuMDQ1LTIwLjQ4NSA4LjQ4NUwxMzYgMzYwLjQ4NmgtMjhjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTU2YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMjhsMzUuNTE1LTM2Ljk0N2M3LjU2LTcuNTYgMjAuNDg1LTIuMjA2IDIwLjQ4NSA4LjQ4NXYxMzUuOTUyem00MS4yMDEtNDcuMTNjOS4wNTEtOS4yOTcgOS4wNi0yNC4xMzMuMDAxLTMzLjQzOS0yMi4xNDktMjIuNzUyIDEyLjIzNS01Ni4yNDYgMzQuMzk1LTMzLjQ4MSAyNy4xOTggMjcuOTQgMjcuMjEyIDcyLjQ0NC4wMDEgMTAwLjQwMS0yMS43OTMgMjIuMzg2LTU2Ljk0Ny0xMC4zMTUtMzQuMzk3LTMzLjQ4MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmlsZUNvZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ5LjkgMzQ5LjFsLS4yLS4yLTMyLjgtMjguOSAzMi44LTI4LjljMy42LTMuMiA0LTguOC44LTEyLjRsLS4yLS4yLTE3LjQtMTguNmMtMy40LTMuNi05LTMuNy0xMi40LS40bC01Ny43IDU0LjFjLTMuNyAzLjUtMy43IDkuNCAwIDEyLjhsNTcuNyA1NC4xYzEuNiAxLjUgMy44IDIuNCA2IDIuNCAyLjQgMCA0LjgtMSA2LjQtMi44bDE3LjQtMTguNmMzLjMtMy41IDMuMS05LjEtLjQtMTIuNHptMjIwLTI1MS4yTDI4NiAxNEMyNzcgNSAyNjQuOC0uMSAyNTIuMS0uMUg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OFYxMzEuOWMwLTEyLjctNS4xLTI1LTE0LjEtMzR6TTI1NiA1MS45bDc2LjEgNzYuMUgyNTZ6TTMzNiA0NjRINDhWNDhoMTYwdjEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxMDR6TTIwOS42IDIxNGMtNC43LTEuNC05LjUgMS4zLTEwLjkgNkwxNDQgNDA4LjFjLTEuNCA0LjcgMS4zIDkuNiA2IDEwLjlsMjQuNCA3LjFjNC43IDEuNCA5LjYtMS40IDEwLjktNkwyNDAgMjMxLjljMS40LTQuNy0xLjMtOS42LTYtMTAuOXptMjQuNSA3Ni45bC4yLjIgMzIuOCAyOC45LTMyLjggMjguOWMtMy42IDMuMi00IDguOC0uOCAxMi40bC4yLjIgMTcuNCAxOC42YzMuMyAzLjUgOC45IDMuNyAxMi40LjRsNTcuNy01NC4xYzMuNy0zLjUgMy43LTkuNCAwLTEyLjhsLTU3LjctNTQuMWMtMy41LTMuMy05LjEtMy4yLTEyLjQuNGwtMTcuNCAxOC42Yy0zLjMgMy41LTMuMSA5LjEuNCAxMi40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGaWxlRXhjZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY5LjkgOTcuOUwyODYgMTRDMjc3IDUgMjY0LjgtLjEgMjUyLjEtLjFINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyODhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTMxLjljMC0xMi43LTUuMS0yNS0xNC4xLTM0ek0zMzIuMSAxMjhIMjU2VjUxLjlsNzYuMSA3Ni4xek00OCA0NjRWNDhoMTYwdjEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxMDR2Mjg4SDQ4em0yMTItMjQwaC0yOC44Yy00LjQgMC04LjQgMi40LTEwLjUgNi4zLTE4IDMzLjEtMjIuMiA0Mi40LTI4LjYgNTcuNy0xMy45LTI5LjEtNi45LTE3LjMtMjguNi01Ny43LTIuMS0zLjktNi4yLTYuMy0xMC42LTYuM0gxMjRjLTkuMyAwLTE1IDEwLTEwLjQgMThsNDYuMyA3OC00Ni4zIDc4Yy00LjcgOCAxLjEgMTggMTAuNCAxOGgyOC45YzQuNCAwIDguNC0yLjQgMTAuNS02LjMgMjEuNy00MCAyMy00NSAyOC42LTU3LjcgMTQuOSAzMC4yIDUuOSAxNS45IDI4LjYgNTcuNyAyLjEgMy45IDYuMiA2LjMgMTAuNiA2LjNIMjYwYzkuMyAwIDE1LTEwIDEwLjQtMThMMjI0IDMyMGMuNy0xLjEgMzAuMy01MC41IDQ2LjMtNzggNC43LTgtMS4xLTE4LTEwLjMtMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZpbGVJbWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjkuOSA5Ny45TDI4NiAxNEMyNzcgNSAyNjQuOC0uMSAyNTIuMS0uMUg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OFYxMzEuOWMwLTEyLjctNS4xLTI1LTE0LjEtMzR6TTMzMi4xIDEyOEgyNTZWNTEuOWw3Ni4xIDc2LjF6TTQ4IDQ2NFY0OGgxNjB2MTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDEwNHYyODhINDh6bTMyLTQ4aDIyNFYyODhsLTIzLjUtMjMuNWMtNC43LTQuNy0xMi4zLTQuNy0xNyAwTDE3NiAzNTJsLTM5LjUtMzkuNWMtNC43LTQuNy0xMi4zLTQuNy0xNyAwTDgwIDM1MnY2NHptNDgtMjQwYy0yNi41IDAtNDggMjEuNS00OCA0OHMyMS41IDQ4IDQ4IDQ4IDQ4LTIxLjUgNDgtNDgtMjEuNS00OC00OC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmlsZVBkZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjkuOSA5Ny45TDI4NiAxNEMyNzcgNSAyNjQuOC0uMSAyNTIuMS0uMUg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OFYxMzEuOWMwLTEyLjctNS4xLTI1LTE0LjEtMzR6TTMzMi4xIDEyOEgyNTZWNTEuOWw3Ni4xIDc2LjF6TTQ4IDQ2NFY0OGgxNjB2MTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDEwNHYyODhINDh6bTI1MC4yLTE0My43Yy0xMi4yLTEyLTQ3LTguNy02NC40LTYuNS0xNy4yLTEwLjUtMjguNy0yNS0zNi44LTQ2LjMgMy45LTE2LjEgMTAuMS00MC42IDUuNC01Ni00LjItMjYuMi0zNy44LTIzLjYtNDIuNi01LjktNC40IDE2LjEtLjQgMzguNSA3IDY3LjEtMTAgMjMuOS0yNC45IDU2LTM1LjQgNzQuNC0yMCAxMC4zLTQ3IDI2LjItNTEgNDYuMi0zLjMgMTUuOCAyNiA1NS4yIDc2LjEtMzEuMiAyMi40LTcuNCA0Ni44LTE2LjUgNjguNC0yMC4xIDE4LjkgMTAuMiA0MSAxNyA1NS44IDE3IDI1LjUgMCAyOC0yOC4yIDE3LjUtMzguN3ptLTE5OC4xIDc3LjhjNS4xLTEzLjcgMjQuNS0yOS41IDMwLjQtMzUtMTkgMzAuMy0zMC40IDM1LjctMzAuNCAzNXptODEuNi0xOTAuNmM3LjQgMCA2LjcgMzIuMSAxLjggNDAuOC00LjQtMTMuOS00LjMtNDAuOC0xLjgtNDAuOHptLTI0LjQgMTM2LjZjOS43LTE2LjkgMTgtMzcgMjQuNy01NC43IDguMyAxNS4xIDE4LjkgMjcuMiAzMC4xIDM1LjUtMjAuOCA0LjMtMzguOSAxMy4xLTU0LjggMTkuMnptMTMxLjYtNXMtNSA2LTM3LjMtNy44YzM1LjEtMi42IDQwLjkgNS40IDM3LjMgNy44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGaWxlUG93ZXJwb2ludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjkuOSA5Ny45TDI4NiAxNEMyNzcgNSAyNjQuOC0uMSAyNTIuMS0uMUg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OFYxMzEuOWMwLTEyLjctNS4xLTI1LTE0LjEtMzR6TTMzMi4xIDEyOEgyNTZWNTEuOWw3Ni4xIDc2LjF6TTQ4IDQ2NFY0OGgxNjB2MTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDEwNHYyODhINDh6bTcyLTYwVjIzNmMwLTYuNiA1LjQtMTIgMTItMTJoNjkuMmMzNi43IDAgNjIuOCAyNyA2Mi44IDY2LjMgMCA3NC4zLTY4LjcgNjYuNS05NS41IDY2LjVWNDA0YzAgNi42LTUuNCAxMi0xMiAxMkgxMzJjLTYuNiAwLTEyLTUuNC0xMi0xMnptNDguNS04Ny40aDIzYzcuOSAwIDEzLjktMi40IDE4LjEtNy4yIDguNS05LjggOC40LTI4LjUuMS0zNy44LTQuMS00LjYtOS45LTctMTcuNC03aC0yMy45djUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGaWxlVmlkZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY5Ljk0MSA5Ny45NDFsLTgzLjg4Mi04My44ODJBNDggNDggMCAwIDAgMjUyLjExOCAwSDQ4QzIxLjQ5IDAgMCAyMS40OSAwIDQ4djQxNmMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDI4OGMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjEzMS44ODJhNDggNDggMCAwIDAtMTQuMDU5LTMzLjk0MXpNMzMyLjExOCAxMjhIMjU2VjUxLjg4MkwzMzIuMTE4IDEyOHpNNDggNDY0VjQ4aDE2MHYxMDRjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDEwNHYyODhINDh6bTIyOC42ODctMjExLjMwM0wyMjQgMzA1LjM3NFYyNjhjMC0xMS4wNDYtOC45NTQtMjAtMjAtMjBIMTAwYy0xMS4wNDYgMC0yMCA4Ljk1NC0yMCAyMHYxMDRjMCAxMS4wNDYgOC45NTQgMjAgMjAgMjBoMTA0YzExLjA0NiAwIDIwLTguOTU0IDIwLTIwdi0zNy4zNzRsNTIuNjg3IDUyLjY3NEMyODYuNzA0IDM5Ny4zMTggMzA0IDM5MC4yOCAzMDQgMzc1Ljk4NlYyNjQuMDExYzAtMTQuMzExLTE3LjMwOS0yMS4zMTktMjcuMzEzLTExLjMxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmlsZVdvcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY5LjkgOTcuOUwyODYgMTRDMjc3IDUgMjY0LjgtLjEgMjUyLjEtLjFINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyODhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTMxLjljMC0xMi43LTUuMS0yNS0xNC4xLTM0ek0zMzIuMSAxMjhIMjU2VjUxLjlsNzYuMSA3Ni4xek00OCA0NjRWNDhoMTYwdjEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxMDR2Mjg4SDQ4em0yMjAuMS0yMDhjLTUuNyAwLTEwLjYgNC0xMS43IDkuNS0yMC42IDk3LjctMjAuNCA5NS40LTIxIDEwMy41LS4yLTEuMi0uNC0yLjYtLjctNC4zLS44LTUuMS4zLjItMjMuNi05OS41LTEuMy01LjQtNi4xLTkuMi0xMS43LTkuMmgtMTMuM2MtNS41IDAtMTAuMyAzLjgtMTEuNyA5LjEtMjQuNCA5OS0yNCA5Ni4yLTI0LjggMTAzLjctLjEtMS4xLS4yLTIuNS0uNS00LjItLjctNS4yLTE0LjEtNzMuMy0xOS4xLTk5LTEuMS01LjYtNi05LjctMTEuOC05LjdoLTE2LjhjLTcuOCAwLTEzLjUgNy4zLTExLjcgMTQuOCA4IDMyLjYgMjYuNyAxMDkuNSAzMy4yIDEzNiAxLjMgNS40IDYuMSA5LjEgMTEuNyA5LjFoMjUuMmM1LjUgMCAxMC4zLTMuNyAxMS42LTkuMWwxNy45LTcxLjRjMS41LTYuMiAyLjUtMTIgMy0xNy4zbDIuOSAxNy4zYy4xLjQgMTIuNiA1MC41IDE3LjkgNzEuNCAxLjMgNS4zIDYuMSA5LjEgMTEuNiA5LjFoMjQuN2M1LjUgMCAxMC4zLTMuNyAxMS42LTkuMSAyMC44LTgxLjkgMzAuMi0xMTkgMzQuNS0xMzYgMS45LTcuNi0zLjgtMTQuOS0xMS42LTE0LjloLTE1Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZpbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY5LjkgOTcuOUwyODYgMTRDMjc3IDUgMjY0LjgtLjEgMjUyLjEtLjFINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyODhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTMxLjljMC0xMi43LTUuMS0yNS0xNC4xLTM0ek0zMzIuMSAxMjhIMjU2VjUxLjlsNzYuMSA3Ni4xek00OCA0NjRWNDhoMTYwdjEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxMDR2Mjg4SDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGbGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNi4xNzQgODBjLTQ5LjEzMiAwLTkzLjMwNS0zMi0xNjEuOTEzLTMyLTMxLjMwMSAwLTU4LjMwMyA2LjQ4Mi04MC43MjEgMTUuMTY4YTQ4LjA0IDQ4LjA0IDAgMCAwIDIuMTQyLTIwLjcyN0M5My4wNjcgMTkuNTc1IDc0LjE2NyAxLjU5NCA1MS4yMDEuMTA0IDIzLjI0Mi0xLjcxIDAgMjAuNDMxIDAgNDhjMCAxNy43NjQgOS42NTcgMzMuMjYyIDI0IDQxLjU2MlY0OTZjMCA4LjgzNyA3LjE2MyAxNiAxNiAxNmgxNmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2di04My40NDNDMTA5Ljg2OSAzOTUuMjggMTQzLjI1OSAzODQgMTk5LjgyNiAzODRjNDkuMTMyIDAgOTMuMzA1IDMyIDE2MS45MTMgMzIgNTguNDc5IDAgMTAxLjk3Mi0yMi42MTcgMTI4LjU0OC0zOS45ODFDNTAzLjg0NiAzNjcuMTYxIDUxMiAzNTIuMDUxIDUxMiAzMzUuODU1Vjk1LjkzN2MwLTM0LjQ1OS0zNS4yNjQtNTcuNzY4LTY2LjkwNC00NC4xMTdDNDA5LjE5MyA2Ny4zMDkgMzcxLjY0MSA4MCAzMzYuMTc0IDgwek00NjQgMzM2Yy0yMS43ODMgMTUuNDEyLTYwLjgyNCAzMi0xMDIuMjYxIDMyLTU5Ljk0NSAwLTEwMi4wMDItMzItMTYxLjkxMy0zMi00My4zNjEgMC05Ni4zNzkgOS40MDMtMTI3LjgyNiAyNFYxMjhjMjEuNzg0LTE1LjQxMiA2MC44MjQtMzIgMTAyLjI2MS0zMiA1OS45NDUgMCAxMDIuMDAyIDMyIDE2MS45MTMgMzIgNDMuMjcxIDAgOTYuMzItMTcuMzY2IDEyNy44MjYtMzJ2MjQwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGbHVzaGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptOTYtMzEyYy00NC4yIDAtODAgMzUuOC04MCA4MHMzNS44IDgwIDgwIDgwIDgwLTM1LjggODAtODAtMzUuOC04MC04MC04MHptMCAxMjhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDggNDggMjEuNSA0OCA0OC0yMS41IDQ4LTQ4IDQ4em0wLTcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjQtMTAuNy0yNC0yNC0yNHptLTExMiAyNGMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MCAzNS44IDgwIDgwIDgwIDgwLTM1LjggODAtODB6bS04MCA0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OCA0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDh6bTAtNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNC0xMC43LTI0LTI0LTI0em0xNjAgMTQ0SDE4NGMtMTMuMiAwLTI0IDEwLjgtMjQgMjRzMTAuOCAyNCAyNCAyNGgxMjhjMTMuMiAwIDI0LTEwLjggMjQtMjRzLTEwLjgtMjQtMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZvbGRlck9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI3LjkgMjI0SDQ4MHYtNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhIMjcybC02NC02NEg0OEMyMS41IDY0IDAgODUuNSAwIDExMnYyODhjMCAyNi41IDIxLjUgNDggNDggNDhoNDAwYzE2LjUgMCAzMS45LTguNSA0MC43LTIyLjZsNzkuOS0xMjhjMjAtMzEuOS0zLTczLjQtNDAuNy03My40ek00OCAxMThjMC0zLjMgMi43LTYgNi02aDEzNC4xbDY0IDY0SDQyNmMzLjMgMCA2IDIuNyA2IDZ2NDJIMTUyYy0xNi44IDAtMzIuNCA4LjgtNDEuMSAyMy4yTDQ4IDM1MS40em00MDAgMjgySDcybDc3LjItMTI4SDUyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRm9sZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAxMjhIMjcybC01NC42My01NC42M2MtNi02LTE0LjE0LTkuMzctMjIuNjMtOS4zN0g0OEMyMS40OSA2NCAwIDg1LjQ5IDAgMTEydjI4OGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDQxNmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjE3NmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4em0wIDI3Mkg0OFYxMTJoMTQwLjEybDU0LjYzIDU0LjYzYzYgNiAxNC4xNCA5LjM3IDIyLjYzIDkuMzdINDY0djIyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRm9udEF3ZXNvbWVMb2dvRnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzk5MiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDU0LjYgMEg1Ny40QzI1LjkgMCAwIDI1LjkgMCA1Ny40djM5Ny4zQzAgNDg2LjEgMjUuOSA1MTIgNTcuNCA1MTJoMzk3LjNjMzEuNCAwIDU3LjQtMjUuOSA1Ny40LTU3LjRWNTcuNEM1MTIgMjUuOSA0ODYuMSAwIDQ1NC42IDB6bS01OC45IDMyNC45YzAgNC44LTQuMSA2LjktOC45IDguOS0xOS4yIDguMS0zOS43IDE1LjctNjEuNSAxNS43LTQwLjUgMC02OC43LTQ0LjgtMTYzLjIgMi41djUxLjhjMCAzMC4zLTQ1LjcgMzAuMi00NS43IDB2LTI1MGMtOS03LTE1LTE3LjktMTUtMzAuMyAwLTIxIDE3LjEtMzguMiAzOC4yLTM4LjIgMjEgMCAzOC4yIDE3LjEgMzguMiAzOC4yIDAgMTIuMi01LjggMjMuMi0xNC45IDMwLjJ2MjFjMzcuMS0xMiA2NS41LTM0LjQgMTQ2LjEtMy40IDI2LjYgMTEuNCA2OC43LTE1LjcgNzYuNS0xNS43IDUuNSAwIDEwLjMgNC4xIDEwLjMgOC45djE2MC40em00MzIuOS0xNzQuMmgtMTM3djcwLjFIODI1YzM5LjggMCA0MC40IDYyLjIgMCA2Mi4ySDY5MS42djEwNS42YzAgNDUuNS03MC43IDQ2LjQtNzAuNyAwVjEyOC4zYzAtMjIgMTgtMzkuOCAzOS44LTM5LjhoMTY3LjhjMzkuNiAwIDQwLjUgNjIuMi4xIDYyLjJ6bTE5MS4xIDIzLjRjLTE2OS4zIDAtMTY5LjEgMjUyLjQgMCAyNTIuNCAxNjkuOSAwIDE2OS45LTI1Mi40IDAtMjUyLjR6bTAgMTk2LjFjLTgxLjYgMC04Mi4xLTEzOS44IDAtMTM5LjggODIuNSAwIDgyLjQgMTM5LjggMCAxMzkuOHptMzcyLjQgNTMuNGMtMTcuNSAwLTMxLjQtMTMuOS0zMS40LTMxLjR2LTExN2MwLTYyLjQtNzIuNi01Mi41LTk5LjEtMTYuNHYxMzMuNGMwIDQxLjUtNjMuMyA0MS44LTYzLjMgMFYyMDhjMC00MCA2My4xLTQxLjYgNjMuMSAwdjMuNGM0My4zLTUxLjYgMTYyLjQtNjAuNCAxNjIuNCAzOS4zdjE0MS41Yy4zIDMwLjQtMzEuNSAzMS40LTMxLjcgMzEuNHptMTc5LjcgMi45Yy00NC4zIDAtNjguMy0yMi45LTY4LjMtNjUuOFYyMzUuMkgxNDg4Yy0zNS42IDAtMzYuNy01NS4zIDAtNTUuM2gxNS41di0zNy4zYzAtNDEuMyA2My44LTQyLjEgNjMuOCAwdjM3LjVoMjQuOWMzNS40IDAgMzUuNyA1NS4zIDAgNTUuM2gtMjQuOXYxMDguNWMwIDI5LjYgMjYuMSAyNi4zIDI3LjQgMjYuMyAzMS40IDAgNTIuNiA1Ni4zLTIyLjkgNTYuM3pNMTk5MiAxMjNjLTE5LjUtNTAuMi05NS41LTUwLTExNC41IDAtMTA3LjMgMjc1LjctOTkuNSAyNTIuNy05OS41IDI2Mi44IDAgNDIuOCA1OC4zIDUxLjIgNzIuMSAxNC40bDEzLjUtMzUuOUgyMDA2bDEzIDM1LjljMTQuMiAzNy43IDcyLjEgMjcuMiA3Mi4xLTE0LjQgMC0xMC4xIDUuMyA2LjgtOTkuMS0yNjIuOHptLTEwOC45IDE3OS4xbDUxLjctMTQyLjkgNTEuOCAxNDIuOWgtMTAzLjV6bTU5MS4zLTg1LjZsLTUzLjcgMTc2LjNjLTEyLjQgNDEuMi03MiA0MS04NCAwbC00Mi4zLTEzNS45LTQyLjMgMTM1LjljLTEyLjQgNDAuOS03MiA0MS4yLTg0LjUgMGwtNTQuMi0xNzYuM2MtMTIuNS0zOS40IDQ5LjgtNTYuMSA2MC4yLTE2LjlMMjIxMyAzNDJsNDUuMy0xMzkuNWMxMC45LTMyLjcgNTkuNi0zNC43IDcxLjIgMGw0NS4zIDEzOS41IDM5LjMtMTQyLjRjMTAuMy0zOC4zIDcyLjYtMjMuOCA2MC4zIDE2Ljl6bTI3NS40IDc1LjFjMC00Mi40LTMzLjktMTE3LjUtMTE5LjUtMTE3LjUtNzMuMiAwLTEyNC40IDU2LjMtMTI0LjQgMTI2IDAgNzcuMiA1NS4zIDEyNi40IDEyOC41IDEyNi40IDMxLjcgMCA5My0xMS41IDkzLTM5LjggMC0xOC4zLTIxLjEtMzEuNS0zOS4zLTIyLjQtNDkuNCAyNi4yLTEwOSA4LjQtMTE1LjktNDMuOGgxNDguM2MxNi4zIDAgMjkuMy0xMy40IDI5LjMtMjguOXpNMjU3MSAyNzcuN2M5LjUtNzMuNCAxMTMuOS02OC42IDExOC42IDBIMjU3MXptMzE2LjcgMTQ4LjhjLTMxLjQgMC04MS42LTEwLjUtOTYuNi0zMS45LTEyLjQtMTcgMi41LTM5LjggMjEuOC0zOS44IDE2LjMgMCAzNi44IDIyLjkgNzcuNyAyMi45IDI3LjQgMCA0MC40LTExIDQwLjQtMjUuOCAwLTM5LjgtMTQyLjktNy40LTE0Mi45LTEwMiAwLTQwLjQgMzUuMy03NS43IDk4LjYtNzUuNyAzMS40IDAgNzQuMSA5LjkgODcuNiAyOS40IDEwLjggMTQuOC0xLjQgMzYuMi0yMC45IDM2LjItMTUuMSAwLTI2LjctMTcuMy02Ni4yLTE3LjMtMjIuOSAwLTM3LjggMTAuNS0zNy44IDIzLjggMCAzNS45IDE0Mi40IDYgMTQyLjQgMTAzLjEtLjEgNDMuNy0zNy40IDc3LjEtMTA0LjEgNzcuMXptMjY2LjgtMjUyLjRjLTE2OS4zIDAtMTY5LjEgMjUyLjQgMCAyNTIuNCAxNzAuMSAwIDE2OS42LTI1Mi40IDAtMjUyLjR6bTAgMTk2LjFjLTgxLjggMC04Mi0xMzkuOCAwLTEzOS44IDgyLjUgMCA4Mi40IDEzOS44IDAgMTM5Ljh6bTQ3Ni45IDIyVjI2OC43YzAtNTMuOC02MS40LTQ1LjgtODUuNy0xMC41djEzNGMwIDQxLjMtNjMuOCA0Mi4xLTYzLjggMFYyNjguN2MwLTUyLjEtNTkuNS00Ny40LTg1LjctMTAuMXYxMzMuNmMwIDQxLjUtNjMuMyA0MS44LTYzLjMgMFYyMDhjMC00MCA2My4xLTQxLjYgNjMuMSAwdjMuNGM5LjktMTQuNCA0MS44LTM3LjMgNzguNi0zNy4zIDM1LjMgMCA1Ny43IDE2LjQgNjYuNyA0My44IDEzLjktMjEuOCA0NS44LTQzLjggODIuNi00My44IDQ0LjMgMCA3MC43IDIzLjQgNzAuNyA3Mi43djE0NS4zYy41IDE3LjMtMTMuNSAzMS40LTMxLjkgMzEuNCAzLjUuMS0zMS4zIDEuMS0zMS4zLTMxLjN6TTM5OTIgMjkxLjZjMC00Mi40LTMyLjQtMTE3LjUtMTE3LjktMTE3LjUtNzMuMiAwLTEyNy41IDU2LjMtMTI3LjUgMTI2IDAgNzcuMiA1OC4zIDEyNi40IDEzMS42IDEyNi40IDMxLjcgMCA5MS41LTExLjUgOTEuNS0zOS44IDAtMTguMy0yMS4xLTMxLjUtMzkuMy0yMi40LTQ5LjQgMjYuMi0xMTAuNSA4LjQtMTE3LjUtNDMuOGgxNDkuOGMxNi4zIDAgMjkuMS0xMy40IDI5LjMtMjguOXptLTE4MC41LTEzLjljOS43LTc0LjQgMTE1LjktNjguMyAxMjAuMSAwaC0xMjAuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRnJvd25PcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptLTQ4LTI0OGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzJ6bTEyOC0zMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6bS04MCAxMTJjLTM1LjYgMC04OC44IDIxLjMtOTUuOCA2MS4yLTIgMTEuOCA5IDIxLjUgMjAuNSAxOC4xIDMxLjItOS42IDU5LjQtMTUuMyA3NS4zLTE1LjNzNDQuMSA1LjcgNzUuMyAxNS4zYzExLjQgMy41IDIyLjUtNi4zIDIwLjUtMTguMS03LTM5LjktNjAuMi02MS4yLTk1LjgtNjEuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRnJvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem0tODAtMjE2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptMTYwLTY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnptLTgwIDEyOGMtNDAuMiAwLTc4IDE3LjctMTAzLjggNDguNi04LjUgMTAuMi03LjEgMjUuMyAzLjEgMzMuOCAxMC4yIDguNCAyNS4zIDcuMSAzMy44LTMuMSAxNi42LTE5LjkgNDEtMzEuNCA2Ni45LTMxLjRzNTAuMyAxMS40IDY2LjkgMzEuNGM4LjEgOS43IDIzLjEgMTEuOSAzMy44IDMuMSAxMC4yLTguNSAxMS41LTIzLjYgMy4xLTMzLjhDMzI2IDMyMS43IDI4OC4yIDMwNCAyNDggMzA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGdXRib2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgzLjggMTc5LjRDNDQ5LjggNzQuNiAzNTIuNiA4IDI0OC4xIDhjLTI1LjQgMC01MS4yIDMuOS03Ni43IDEyLjJDNDEuMiA2Mi41LTMwLjEgMjAyLjQgMTIuMiAzMzIuNiA0Ni4yIDQzNy40IDE0My40IDUwNCAyNDcuOSA1MDRjMjUuNCAwIDUxLjItMy45IDc2LjctMTIuMiAxMzAuMi00Mi4zIDIwMS41LTE4Mi4yIDE1OS4yLTMxMi40em0tNzQuNSAxOTMuN2wtNTIuMiA2LjQtNDMuNy02MC45IDI0LjQtNzUuMiA3MS4xLTIyLjEgMzguOSAzNi40Yy0uMiAzMC43LTcuNCA2MS4xLTIxLjcgODkuMi00LjcgOS4zLTEwLjcgMTcuOC0xNi44IDI2LjJ6bTAtMjM1LjRsLTEwLjQgNTMuMS03MC43IDIyLTY0LjItNDYuNVY5Mi41bDQ3LjQtMjYuMmMzOS4yIDEzIDczLjQgMzggOTcuOSA3MS40ek0xODQuOSA2Ni40TDIzMiA5Mi41djczLjhsLTY0LjIgNDYuNS03MC42LTIyLTEwLjEtNTIuNWMyNC4zLTMzLjQgNTcuOS01OC42IDk3LjgtNzEuOXpNMTM5IDM3OS41TDg1LjkgMzczYy0xNC40LTIwLjEtMzcuMy01OS42LTM3LjgtMTE1LjNsMzktMzYuNCA3MS4xIDIyLjIgMjQuMyA3NC4zLTQzLjUgNjEuN3ptNDguMiA2N2wtMjIuNC00OC4xIDQzLjYtNjEuN0gyODdsNDQuMyA2MS43LTIyLjQgNDguMWMtNi4yIDEuOC01Ny42IDIwLjQtMTIxLjcgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnR2VtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAwSDExMmMtNCAwLTcuOCAyLTEwIDUuNEwyIDE1Mi42Yy0yLjkgNC40LTIuNiAxMC4yLjcgMTQuMmwyNzYgMzQwLjhjNC44IDUuOSAxMy44IDUuOSAxOC42IDBsMjc2LTM0MC44YzMuMy00LjEgMy42LTkuOC43LTE0LjJMNDc0LjEgNS40QzQ3MS44IDIgNDY4LjEgMCA0NjQgMHptLTE5LjMgNDhsNjMuMyA5NmgtNjguNGwtNTEuNy05Nmg1Ni44em0tMjAyLjEgMGg5MC43bDUxLjcgOTZIMTkxbDUxLjYtOTZ6bS0xMTEuMyAwaDU2LjhsLTUxLjcgOTZINjhsNjMuMy05NnptLTQzIDE0NGg1MS40TDIwOCAzNTIgODguMyAxOTJ6bTEwMi45IDBoMTkzLjZMMjg4IDQzNS4zIDE5MS4yIDE5MnpNMzY4IDM1Mmw2OC4yLTE2MGg1MS40TDM2OCAzNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0dyaW1hY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem0tODAtMjE2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyem0xNiAxNkgxNTJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDE5MmMyNi41IDAgNDgtMjEuNSA0OC00OHYtMzJjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS0xNjggOTZoLTI0Yy04LjggMC0xNi03LjItMTYtMTZ2LThoNDB2MjR6bTAtNDBoLTQwdi04YzAtOC44IDcuMi0xNiAxNi0xNmgyNHYyNHptNjQgNDBoLTQ4di0yNGg0OHYyNHptMC00MGgtNDh2LTI0aDQ4djI0em02NCA0MGgtNDh2LTI0aDQ4djI0em0wLTQwaC00OHYtMjRoNDh2MjR6bTU2IDI0YzAgOC44LTcuMiAxNi0xNiAxNmgtMjR2LTI0aDQwdjh6bTAtMjRoLTQwdi0yNGgyNGM4LjggMCAxNiA3LjIgMTYgMTZ2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnR3JpbkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDAuMyAyNDhjMTIuNC0xOC43IDE1LjEtMzcuMyAxNS43LTU2LS41LTE4LjctMy4zLTM3LjMtMTUuNy01Ni04LTEyLTI1LjEtMTEuNC0zMi43IDAtMTIuNCAxOC43LTE1LjEgMzcuMy0xNS43IDU2IC41IDE4LjcgMy4zIDM3LjMgMTUuNyA1NiA4LjEgMTIgMjUuMiAxMS40IDMyLjcgMHptMTI4IDBjMTIuNC0xOC43IDE1LjEtMzcuMyAxNS43LTU2LS41LTE4LjctMy4zLTM3LjMtMTUuNy01Ni04LTEyLTI1LjEtMTEuNC0zMi43IDAtMTIuNCAxOC43LTE1LjEgMzcuMy0xNS43IDU2IC41IDE4LjcgMy4zIDM3LjMgMTUuNyA1NiA4LjEgMTIgMjUuMiAxMS40IDMyLjcgMHpNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem0xMDUuNi0xNTEuNGMtMjUuOSA4LjMtNjQuNCAxMy4xLTEwNS42IDEzLjFzLTc5LjYtNC44LTEwNS42LTEzLjFjLTkuOS0zLjEtMTkuNCA1LjMtMTcuNyAxNS4zIDcuOSA0Ny4yIDcxLjMgODAgMTIzLjMgODBzMTE1LjMtMzIuOSAxMjMuMy04MGMxLjYtOS44LTcuNy0xOC40LTE3LjctMTUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnR3JpbkJlYW1Td2VhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDAgMTYwYzI5LjUgMCA1My4zLTI2LjMgNTMuMy01OC43IDAtMjUtMzEuNy03NS41LTQ2LjItOTcuMy0zLjYtNS4zLTEwLjctNS4zLTE0LjIgMC0xNC41IDIxLjgtNDYuMiA3Mi4zLTQ2LjIgOTcuMyAwIDMyLjQgMjMuOCA1OC43IDUzLjMgNTguN3pNMjQ4IDQwMGM1MS45IDAgMTE1LjMtMzIuOSAxMjMuMy04MCAxLjctOS45LTcuNy0xOC41LTE3LjctMTUuMy0yNS45IDguMy02NC40IDEzLjEtMTA1LjYgMTMuMXMtNzkuNi00LjgtMTA1LjYtMTMuMWMtOS44LTMuMS0xOS40IDUuMy0xNy43IDE1LjMgOCA0Ny4xIDcxLjQgODAgMTIzLjMgODB6bTEzMC4zLTE2OC4zYzMuNi0xLjEgNi00LjUgNS43LTguMy0zLjMtNDIuMS0zMi4yLTcxLjQtNTYtNzEuNHMtNTIuNyAyOS4zLTU2IDcxLjRjLS4zIDMuNyAyLjEgNy4yIDUuNyA4LjMgMy41IDEuMSA3LjQtLjUgOS4zLTMuN2w5LjUtMTdjNy43LTEzLjcgMTkuMi0yMS42IDMxLjUtMjEuNnMyMy44IDcuOSAzMS41IDIxLjZsOS41IDE3YzIuMSAzLjYgNi4yIDQuNiA5LjMgMy43em0xMDUuMy01Mi45Yy0yNC42IDE1LjctNDYgMTIuOS00Ni40IDEyLjkgNi45IDIwLjIgMTAuOCA0MS44IDEwLjggNjQuMyAwIDExMC4zLTg5LjcgMjAwLTIwMCAyMDBTNDggMzY2LjMgNDggMjU2IDEzNy43IDU2IDI0OCA1NmMzOS44IDAgNzYuOCAxMS44IDEwOCAzMS45IDEuNy05LjUgNi4zLTI0LjEgMTcuMi00NS43QzMzNi40IDIwLjYgMjkzLjcgOCAyNDggOCAxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4YzAtMjctNC40LTUyLjktMTIuNC03Ny4yek0xNjggMTg5LjRjMTIuMyAwIDIzLjggNy45IDMxLjUgMjEuNmw5LjUgMTdjMi4xIDMuNyA2LjIgNC43IDkuMyAzLjcgMy42LTEuMSA2LTQuNSA1LjctOC4zLTMuMy00Mi4xLTMyLjItNzEuNC01Ni03MS40cy01Mi43IDI5LjMtNTYgNzEuNGMtLjMgMy43IDIuMSA3LjIgNS43IDguMyAzLjUgMS4xIDcuNC0uNSA5LjMtMy43bDkuNS0xN2M3LjctMTMuOCAxOS4yLTIxLjYgMzEuNS0yMS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdHcmluQmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bTEwNS42LTE1MS40Yy0yNS45IDguMy02NC40IDEzLjEtMTA1LjYgMTMuMXMtNzkuNi00LjgtMTA1LjYtMTMuMWMtOS44LTMuMS0xOS40IDUuMy0xNy43IDE1LjMgNy45IDQ3LjEgNzEuMyA4MCAxMjMuMyA4MHMxMTUuMy0zMi45IDEyMy4zLTgwYzEuNi05LjgtNy43LTE4LjQtMTcuNy0xNS4zem0tMjM1LjktNzIuOWMzLjUgMS4xIDcuNC0uNSA5LjMtMy43bDkuNS0xN2M3LjctMTMuNyAxOS4yLTIxLjYgMzEuNS0yMS42czIzLjggNy45IDMxLjUgMjEuNmw5LjUgMTdjMi4xIDMuNyA2LjIgNC43IDkuMyAzLjcgMy42LTEuMSA2LTQuNSA1LjctOC4zLTMuMy00Mi4xLTMyLjItNzEuNC01Ni03MS40cy01Mi43IDI5LjMtNTYgNzEuNGMtLjMgMy43IDIuMSA3LjIgNS43IDguM3ptMTYwIDBjMy41IDEuMSA3LjQtLjUgOS4zLTMuN2w5LjUtMTdjNy43LTEzLjcgMTkuMi0yMS42IDMxLjUtMjEuNnMyMy44IDcuOSAzMS41IDIxLjZsOS41IDE3YzIuMSAzLjcgNi4yIDQuNyA5LjMgMy43IDMuNi0xLjEgNi00LjUgNS43LTguMy0zLjMtNDIuMS0zMi4yLTcxLjQtNTYtNzEuNHMtNTIuNyAyOS4zLTU2IDcxLjRjLS4zIDMuNyAyLjEgNy4yIDUuNyA4LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0dyaW5IZWFydHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUzLjYgMzA0LjZjLTI1LjkgOC4zLTY0LjQgMTMuMS0xMDUuNiAxMy4xcy03OS42LTQuOC0xMDUuNi0xMy4xYy05LjgtMy4xLTE5LjQgNS4zLTE3LjcgMTUuMyA3LjkgNDcuMiA3MS4zIDgwIDEyMy4zIDgwczExNS4zLTMyLjkgMTIzLjMtODBjMS42LTkuOC03LjctMTguNC0xNy43LTE1LjN6bS0xNTIuOC00OC45YzQuNSAxLjIgOS4yLTEuNSAxMC41LTZsMTkuNC02OS45YzUuNi0yMC4zLTcuNC00MS4xLTI4LjgtNDQuNS0xOC42LTMtMzYuNCA5LjgtNDEuNSAyNy45bC0yIDcuMS03LjEtMS45Yy0xOC4yLTQuNy0zOC4yIDQuMy00NC45IDIyLTcuNyAyMC4yIDMuOCA0MS45IDI0LjIgNDcuMmw3MC4yIDE4LjF6bTE4OC44LTY1LjNjLTYuNy0xNy42LTI2LjctMjYuNy00NC45LTIybC03LjEgMS45LTItNy4xYy01LTE4LjEtMjIuOC0zMC45LTQxLjUtMjcuOS0yMS40IDMuNC0zNC40IDI0LjItMjguOCA0NC41bDE5LjQgNjkuOWMxLjIgNC41IDUuOSA3LjIgMTAuNSA2bDcwLjItMTguMmMyMC40LTUuMyAzMS45LTI2LjkgMjQuMi00Ny4xek0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0dyaW5TcXVpbnRUZWFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTcuMSAzODQuMWMtMjUuOCAzLjctODQgMTMuNy0xMDAuOSAzMC42LTIxLjkgMjEuOS0yMS41IDU3LjkuOSA4MC4zczU4LjMgMjIuOCA4MC4zLjlDMTE0LjMgNDc5IDEyNC4zIDQyMC44IDEyOCAzOTVjLjgtNi40LTQuNi0xMS44LTEwLjktMTAuOXptLTQxLjItNDEuN0M0MC4zIDI2OCA1MyAxNzYuMSAxMTQuNiAxMTQuNiAxNTIuNCA3Ni44IDIwMi42IDU2IDI1NiA1NmMzNi4yIDAgNzAuOCA5LjggMTAxLjIgMjcuNyAzLjgtMjAuMyA4LTM2LjEgMTItNDguM0MzMzMuOCAxNy4yIDI5NC45IDggMjU2IDggMTkyLjUgOCAxMjkuMSAzMi4yIDgwLjYgODAuNmMtNzQuMSA3NC4xLTkxLjMgMTgzLjQtNTIgMjc0IDEyLjItNC4xIDI3LjctOC4zIDQ3LjMtMTIuMnptMzUyLjMtMTg3LjZjNDUgNzYuNiAzNC45IDE3Ni45LTMwLjggMjQyLjYtMzcuOCAzNy44LTg4IDU4LjYtMTQxLjQgNTguNi0zMC41IDAtNTkuOC03LTg2LjQtMTkuOC0zLjkgMTkuNS04IDM1LTEyLjIgNDcuMiAzMS40IDEzLjYgNjUgMjAuNiA5OC43IDIwLjYgNjMuNSAwIDEyNi45LTI0LjIgMTc1LjQtNzIuNiA3OC4xLTc4LjEgOTMuMS0xOTUuNCA0NS4yLTI4OC42LTEyLjMgNC0yOC4yIDguMS00OC41IDEyem0tMzMuMy0yNi45YzI1LjgtMy43IDg0LTEzLjcgMTAwLjktMzAuNiAyMS45LTIxLjkgMjEuNS01Ny45LS45LTgwLjNzLTU4LjMtMjIuOC04MC4zLS45QzM5Ny43IDMzIDM4Ny43IDkxLjIgMzg0IDExN2MtLjggNi40IDQuNiAxMS44IDEwLjkgMTAuOXptLTE4NyAxMDguM2MtMy0zLTcuMi00LjItMTEuNC0zLjJMMTA2IDI1NS43Yy01LjcgMS40LTkuNSA2LjctOS4xIDEyLjYuNSA1LjggNS4xIDEwLjUgMTAuOSAxMWw1Mi4zIDQuOCA0LjggNTIuM2MuNSA1LjggNS4yIDEwLjQgMTEgMTAuOWguOWM1LjUgMCAxMC4zLTMuNyAxMS43LTkuMWwyMi42LTkwLjVjMS00LjItLjItOC41LTMuMi0xMS41em0zOS43LTI1LjFsOTAuNS0yMi42YzUuNy0xLjQgOS41LTYuNyA5LjEtMTIuNi0uNS01LjgtNS4xLTEwLjUtMTAuOS0xMWwtNTIuMy00LjgtNC44LTUyLjNjLS41LTUuOC01LjItMTAuNC0xMS0xMC45LTUuNi0uMS0xMS4yIDMuNC0xMi42IDkuMUwyMzMgMTk2LjVjLTEgNC4xLjIgOC40IDMuMiAxMS40IDUgNSAxMS4zIDMuMiAxMS40IDMuMnptNTIgODguNWMtMjkuMSAyOS4xLTU5LjcgNTIuOS04My45IDY1LjQtOS4yIDQuOC0xMCAxNy41LTEuNyAyMy40IDM4LjkgMjcuNyAxMDcgNi4yIDE0My43LTMwLjZTNDE2IDI1MyAzODguMyAyMTQuMWMtNS44LTguMi0xOC41LTcuNi0yMy40IDEuNy0xMi4zIDI0LjItMzYuMiA1NC43LTY1LjMgODMuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnR3JpblNxdWludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bTEwNS42LTE1MS40Yy0yNS45IDguMy02NC40IDEzLjEtMTA1LjYgMTMuMXMtNzkuNi00LjgtMTA1LjYtMTMuMWMtOS45LTMuMS0xOS40IDUuNC0xNy43IDE1LjMgNy45IDQ3LjEgNzEuMyA4MCAxMjMuMyA4MHMxMTUuMy0zMi45IDEyMy4zLTgwYzEuNi05LjgtNy43LTE4LjQtMTcuNy0xNS4zem0tMjM0LjctNDAuOGMzLjYgNC4yIDkuOSA1LjcgMTUuMyAyLjVsODAtNDhjMy42LTIuMiA1LjgtNi4xIDUuOC0xMC4zcy0yLjItOC4xLTUuOC0xMC4zbC04MC00OGMtNS4xLTMtMTEuNC0xLjktMTUuMyAyLjUtMy44IDQuNS0zLjggMTEtLjEgMTUuNWwzMy42IDQwLjMtMzMuNiA0MC4zYy0zLjggNC41LTMuNyAxMS4xLjEgMTUuNXptMjQyLjkgMi41YzUuNCAzLjIgMTEuNyAxLjcgMTUuMy0yLjUgMy44LTQuNSAzLjgtMTEgLjEtMTUuNUwzNDMuNiAyMDhsMzMuNi00MC4zYzMuOC00LjUgMy43LTExLS4xLTE1LjUtMy44LTQuNC0xMC4yLTUuNC0xNS4zLTIuNWwtODAgNDhjLTMuNiAyLjItNS44IDYuMS01LjggMTAuM3MyLjIgOC4xIDUuOCAxMC4zbDgwIDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdHcmluU3RhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem0xMDUuNi0xNTEuNGMtMjUuOSA4LjMtNjQuNCAxMy4xLTEwNS42IDEzLjFzLTc5LjYtNC44LTEwNS42LTEzLjFjLTkuOC0zLjEtMTkuNCA1LjMtMTcuNyAxNS4zIDcuOSA0Ny4yIDcxLjMgODAgMTIzLjMgODBzMTE1LjMtMzIuOSAxMjMuMy04MGMxLjYtOS44LTcuNy0xOC40LTE3LjctMTUuM3ptLTIyNy45LTU3LjVjLTEgNi4yIDUuNCAxMSAxMSA3LjlsMzEuMy0xNi4zIDMxLjMgMTYuM2M1LjYgMy4xIDEyLTEuNyAxMS03LjlsLTYtMzQuOSAyNS40LTI0LjZjNC41LTQuNSAxLjktMTIuMi00LjMtMTMuMmwtMzQuOS01LTE1LjUtMzEuNmMtMi45LTUuOC0xMS01LjgtMTMuOSAwbC0xNS41IDMxLjYtMzQuOSA1Yy02LjIuOS04LjkgOC42LTQuMyAxMy4ybDI1LjQgMjQuNi02LjEgMzQuOXptMjU5LjctNzIuN2wtMzQuOS01LTE1LjUtMzEuNmMtMi45LTUuOC0xMS01LjgtMTMuOSAwbC0xNS41IDMxLjYtMzQuOSA1Yy02LjIuOS04LjkgOC42LTQuMyAxMy4ybDI1LjQgMjQuNi02IDM0LjljLTEgNi4yIDUuNCAxMSAxMSA3LjlsMzEuMy0xNi4zIDMxLjMgMTYuM2M1LjYgMy4xIDEyLTEuNyAxMS03LjlsLTYtMzQuOSAyNS40LTI0LjZjNC41LTQuNiAxLjgtMTIuMi00LjQtMTMuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnR3JpblRlYXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExNy4xIDI1Ni4xYy0yNS44IDMuNy04NCAxMy43LTEwMC45IDMwLjYtMjEuOSAyMS45LTIxLjUgNTcuOS45IDgwLjNzNTguMyAyMi44IDgwLjMuOUMxMTQuMyAzNTEgMTI0LjMgMjkyLjggMTI4IDI2N2MuOC02LjQtNC42LTExLjgtMTAuOS0xMC45em01MDYuNyAzMC42Yy0xNi45LTE2LjktNzUuMS0yNi45LTEwMC45LTMwLjYtNi4zLS45LTExLjcgNC41LTEwLjggMTAuOCAzLjcgMjUuOCAxMy43IDg0IDMwLjYgMTAwLjkgMjEuOSAyMS45IDU3LjkgMjEuNSA4MC4zLS45IDIyLjMtMjIuMyAyMi43LTU4LjMuOC04MC4yem0tMTI2LjYgNjEuN0M0NjMuOCA0MTIuMyAzOTYuOSA0NTYgMzIwIDQ1NmMtNzYuOSAwLTE0My44LTQzLjctMTc3LjItMTA3LjYtMTIuNSAzNy40LTI1LjIgNDMuOS0yOC4zIDQ2LjVDMTU5LjEgNDYwLjcgMjM0LjUgNTA0IDMyMCA1MDRzMTYwLjktNDMuMyAyMDUuNS0xMDkuMWMtMy4yLTIuNy0xNS45LTkuMi0yOC4zLTQ2LjV6TTEyMi43IDIyNC41QzEzNy45IDEyOS4yIDIyMC41IDU2IDMyMCA1NmM5OS41IDAgMTgyLjEgNzMuMiAxOTcuMyAxNjguNSAyLjEtLjIgNS4yLTIuNCA0OS41IDdDNTU0LjQgMTA2IDQ0OC43IDggMzIwIDhTODUuNiAxMDYgNzMuMiAyMzEuNGM0NC41LTkuNCA0Ny4xLTcuMiA0OS41LTYuOXpNMzIwIDQwMGM1MS45IDAgMTE1LjMtMzIuOSAxMjMuMy04MCAxLjctOS45LTcuNy0xOC41LTE3LjctMTUuMy0yNS45IDguMy02NC40IDEzLjEtMTA1LjYgMTMuMXMtNzkuNi00LjgtMTA1LjYtMTMuMWMtOS44LTMuMS0xOS40IDUuMy0xNy43IDE1LjMgOCA0Ny4xIDcxLjQgODAgMTIzLjMgODB6bTEzMC4zLTE2OC4zYzMuNi0xLjEgNi00LjUgNS43LTguMy0zLjMtNDIuMS0zMi4yLTcxLjQtNTYtNzEuNHMtNTIuNyAyOS4zLTU2IDcxLjRjLS4zIDMuNyAyLjEgNy4yIDUuNyA4LjMgMy41IDEuMSA3LjQtLjUgOS4zLTMuN2w5LjUtMTdjNy43LTEzLjcgMTkuMi0yMS42IDMxLjUtMjEuNnMyMy44IDcuOSAzMS41IDIxLjZsOS41IDE3YzIuMSAzLjYgNi4yIDQuNiA5LjMgMy43ek0yNDAgMTg5LjRjMTIuMyAwIDIzLjggNy45IDMxLjUgMjEuNmw5LjUgMTdjMi4xIDMuNyA2LjIgNC43IDkuMyAzLjcgMy42LTEuMSA2LTQuNSA1LjctOC4zLTMuMy00Mi4xLTMyLjItNzEuNC01Ni03MS40cy01Mi43IDI5LjMtNTYgNzEuNGMtLjMgMy43IDIuMSA3LjIgNS43IDguMyAzLjUgMS4xIDcuNC0uNSA5LjMtMy43bDkuNS0xN2M3LjctMTMuOCAxOS4yLTIxLjYgMzEuNS0yMS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdHcmluVG9uZ3VlU3F1aW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTY0IDQwMGMwIDM1LjYtMjkuMSA2NC41LTY0LjkgNjQtMzUuMS0uNS02My4xLTI5LjgtNjMuMS02NXYtNDIuOGwxNy43LTguOGMxNS03LjUgMzEuNSAxLjcgMzQuOSAxNi41bDIuOCAxMi4xYzIuMSA5LjIgMTUuMiA5LjIgMTcuMyAwbDIuOC0xMi4xYzMuNC0xNC44IDE5LjgtMjQuMSAzNC45LTE2LjVsMTcuNyA4LjhWNDA4em0yOC4yIDI1LjNjMi4yLTguMSAzLjgtMTYuNSAzLjgtMjUuM3YtNDMuNWMxNC4yLTEyLjQgMjQuNC0yNy41IDI3LjMtNDQuNSAxLjctOS45LTcuNy0xOC41LTE3LjctMTUuMy0yNS45IDguMy02NC40IDEzLjEtMTA1LjYgMTMuMXMtNzkuNi00LjgtMTA1LjYtMTMuMWMtOS45LTMuMS0xOS40IDUuMy0xNy43IDE1LjMgMi45IDE3IDEzLjEgMzIuMSAyNy4zIDQ0LjVWNDA4YzAgOC44IDEuNiAxNy4yIDMuOCAyNS4zQzkxLjggMzk5LjkgNDggMzMzIDQ4IDI1NmMwLTExMC4zIDg5LjctMjAwIDIwMC0yMDBzMjAwIDg5LjcgMjAwIDIwMGMwIDc3LTQzLjggMTQzLjktMTA3LjggMTc3LjN6bTM2LjktMjgxLjFjLTMuOC00LjQtMTAuMy01LjUtMTUuMy0yLjVsLTgwIDQ4Yy0zLjYgMi4yLTUuOCA2LjEtNS44IDEwLjNzMi4yIDguMSA1LjggMTAuM2w4MCA0OGM1LjQgMy4yIDExLjcgMS43IDE1LjMtMi41IDMuOC00LjUgMy44LTExIC4xLTE1LjVMMzQzLjYgMjA4bDMzLjYtNDAuM2MzLjgtNC41IDMuNy0xMS4xLS4xLTE1LjV6bS0xNjIuOSA0NS41bC04MC00OGMtNS0zLTExLjQtMi0xNS4zIDIuNS0zLjggNC41LTMuOCAxMS0uMSAxNS41bDMzLjYgNDAuMy0zMy42IDQwLjNjLTMuOCA0LjUtMy43IDExIC4xIDE1LjUgMy42IDQuMiA5LjkgNS43IDE1LjMgMi41bDgwLTQ4YzMuNi0yLjIgNS44LTYuMSA1LjgtMTAuM3MtMi4yLTguMS01LjgtMTAuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnR3JpblRvbmd1ZVdpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUyIDE4MGMtMjUuNyAwLTU1LjkgMTYuOS01OS44IDQyLjEtLjggNSAxLjcgMTAgNi4xIDEyLjQgNC40IDIuNCA5LjkgMS44IDEzLjctMS42bDkuNS04LjVjMTQuOC0xMy4yIDQ2LjItMTMuMiA2MSAwbDkuNSA4LjVjMi41IDIuMiA4IDQuNyAxMy43IDEuNiA0LjQtMi40IDYuOS03LjQgNi4xLTEyLjQtMy45LTI1LjItMzQuMS00Mi4xLTU5LjgtNDIuMXptMTc2LTUyYy00NC4yIDAtODAgMzUuOC04MCA4MHMzNS44IDgwIDgwIDgwIDgwLTM1LjggODAtODAtMzUuOC04MC04MC04MHptMCAxMjhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDggNDggMjEuNSA0OCA0OC0yMS41IDQ4LTQ4IDQ4em0wLTcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjQtMTAuNy0yNC0yNC0yNHpNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptNjQgNDAwYzAgMzUuNi0yOS4xIDY0LjUtNjQuOSA2NC0zNS4xLS41LTYzLjEtMjkuOC02My4xLTY1di00Mi44bDE3LjctOC44YzE1LTcuNSAzMS41IDEuNyAzNC45IDE2LjVsMi44IDEyLjFjMi4xIDkuMiAxNS4yIDkuMiAxNy4zIDBsMi44LTEyLjFjMy40LTE0LjggMTkuOC0yNC4xIDM0LjktMTYuNWwxNy43IDguOFY0MDh6bTI4LjIgMjUuM2MyLjItOC4xIDMuOC0xNi41IDMuOC0yNS4zdi00My41YzE0LjItMTIuNCAyNC40LTI3LjUgMjcuMy00NC41IDEuNy05LjktNy43LTE4LjUtMTcuNy0xNS4zLTI1LjkgOC4zLTY0LjQgMTMuMS0xMDUuNiAxMy4xcy03OS42LTQuOC0xMDUuNi0xMy4xYy05LjktMy4xLTE5LjQgNS4zLTE3LjcgMTUuMyAyLjkgMTcgMTMuMSAzMi4xIDI3LjMgNDQuNVY0MDhjMCA4LjggMS42IDE3LjIgMy44IDI1LjNDOTEuOCAzOTkuOSA0OCAzMzMgNDggMjU2YzAtMTEwLjMgODkuNy0yMDAgMjAwLTIwMHMyMDAgODkuNyAyMDAgMjAwYzAgNzctNDMuOCAxNDMuOS0xMDcuOCAxNzcuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnR3JpblRvbmd1ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em02NCA0MDBjMCAzNS42LTI5LjEgNjQuNS02NC45IDY0LTM1LjEtLjUtNjMuMS0yOS44LTYzLjEtNjV2LTQyLjhsMTcuNy04LjhjMTUtNy41IDMxLjUgMS43IDM0LjkgMTYuNWwyLjggMTIuMWMyLjEgOS4yIDE1LjIgOS4yIDE3LjMgMGwyLjgtMTIuMWMzLjQtMTQuOCAxOS44LTI0LjEgMzQuOS0xNi41bDE3LjcgOC44VjQwOHptMjguMiAyNS4zYzIuMi04LjEgMy44LTE2LjUgMy44LTI1LjN2LTQzLjVjMTQuMi0xMi40IDI0LjQtMjcuNSAyNy4zLTQ0LjUgMS43LTkuOS03LjctMTguNS0xNy43LTE1LjMtMjUuOSA4LjMtNjQuNCAxMy4xLTEwNS42IDEzLjFzLTc5LjYtNC44LTEwNS42LTEzLjFjLTkuOS0zLjEtMTkuNCA1LjMtMTcuNyAxNS4zIDIuOSAxNyAxMy4xIDMyLjEgMjcuMyA0NC41VjQwOGMwIDguOCAxLjYgMTcuMiAzLjggMjUuM0M5MS44IDM5OS45IDQ4IDMzMyA0OCAyNTZjMC0xMTAuMyA4OS43LTIwMCAyMDAtMjAwczIwMCA4OS43IDIwMCAyMDBjMCA3Ny00My44IDE0My45LTEwNy44IDE3Ny4zek0xNjggMTc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnptMTYwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdHcmluV2luayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjggMTgwYy0yNS42OSAwLTU1Ljg4IDE2LjkyLTU5Ljg2IDQyLjEyLTEuNzUgMTEuMjIgMTEuNSAxOC4yNCAxOS44MyAxMC44NGw5LjU1LTguNDhjMTQuODEtMTMuMTkgNDYuMTYtMTMuMTkgNjAuOTcgMGw5LjU1IDguNDhjOC40OCA3LjQzIDIxLjU2LjI1IDE5LjgzLTEwLjg0QzM4My44OCAxOTYuOTIgMzUzLjY5IDE4MCAzMjggMTgwem0tMTYwIDYwYzE3LjY3IDAgMzItMTQuMzMgMzItMzJzLTE0LjMzLTMyLTMyLTMyLTMyIDE0LjMzLTMyIDMyIDE0LjMzIDMyIDMyIDMyem0xODUuNTUgNjQuNjRjLTI1LjkzIDguMy02NC40IDEzLjA2LTEwNS41NSAxMy4wNnMtNzkuNjItNC43NS0xMDUuNTUtMTMuMDZjLTkuOTQtMy4xMy0xOS40IDUuMzctMTcuNzEgMTUuMzRDMTMyLjY3IDM2Ny4xMyAxOTYuMDYgNDAwIDI0OCA0MDBzMTE1LjMzLTMyLjg3IDEyMy4yNi04MC4wMmMxLjY4LTkuODktNy42Ny0xOC40OC0xNy43MS0xNS4zNHpNMjQ4IDhDMTExLjAzIDggMCAxMTkuMDMgMCAyNTZzMTExLjAzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMgMjQ4LTI0OFMzODQuOTcgOCAyNDggOHptMCA0NDhjLTExMC4yOCAwLTIwMC04OS43Mi0yMDAtMjAwUzEzNy43MiA1NiAyNDggNTZzMjAwIDg5LjcyIDIwMCAyMDAtODkuNzIgMjAwLTIwMCAyMDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0dyaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem0xMDUuNi0xNTEuNGMtMjUuOSA4LjMtNjQuNCAxMy4xLTEwNS42IDEzLjFzLTc5LjYtNC44LTEwNS42LTEzLjFjLTkuOS0zLjEtMTkuNCA1LjQtMTcuNyAxNS4zIDcuOSA0Ny4xIDcxLjMgODAgMTIzLjMgODBzMTE1LjMtMzIuOSAxMjMuMy04MGMxLjYtOS44LTcuNy0xOC40LTE3LjctMTUuM3pNMTY4IDI0MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6bTE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSGFuZExpemFyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NTYuNjg2IDI5MC41NDJMNDEwLjMyOCA2NC44MjlDMzk3LjAwMSA0NC4yNzIgMzc0LjQxNyAzMiAzNDkuOTE3IDMySDU2QzI1LjEyMSAzMiAwIDU3LjEyMiAwIDg4djhjMCA0NC4xMTIgMzUuODg4IDgwIDgwIDgwaDE5Ni4wNDJsLTE4LjMzMyA0OEgxNDRjLTQ4LjUyMyAwLTg4IDM5LjQ3Ny04OCA4OCAwIDMwLjg3OSAyNS4xMjEgNTYgNTYgNTZoMTMxLjU1MmMyLjk4NyAwIDUuOTE0LjU0OSA4LjY5NyAxLjYzMUwzNTIgNDA4LjQxOFY0ODBoMjI0VjM1NS44MjljMC0yMy4yMjUtNi42NzktNDUuODAxLTE5LjMxNC02NS4yODd6TTUyOCA0MzJINDAwdi0yMy41ODJjMC0xOS45NDgtMTIuMDE0LTM3LjUwOC0zMC42MDQtNDQuNzM2bC05OS43NTEtMzguNzg4QTcxLjczMyA3MS43MzMgMCAwIDAgMjQzLjU1MiAzMjBIMTEyYy00LjQxMSAwLTgtMy41ODktOC04IDAtMjIuMDU2IDE3Ljk0NC00MCA0MC00MGgxMTMuNzA5YzE5Ljc2NyAwIDM3Ljc4Ni0xMi40MDcgNDQuODQtMzAuODczbDI0LjU1Mi02NC4yODFjOC45OTYtMjMuNTUzLTguNDI4LTQ4Ljg0Ni0zMy42My00OC44NDZIODBjLTE3LjY0NSAwLTMyLTE0LjM1NS0zMi0zMnYtOGMwLTQuNDExIDMuNTg5LTggOC04aDI5My45MTdjOC4xNjYgMCAxNS42OTMgNC4wOSAyMC4xMzcgMTAuOTQybDE0Ni4zNTggMjI1LjcxNUE3MS44NCA3MS44NCAwIDAgMSA1MjggMzU1LjgyOVY0MzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmRQYXBlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzIuNTcgMTEyLjY0MXYtMTAuODI1YzAtNDMuNjEyLTQwLjUyLTc2LjY5MS04My4wMzktNjUuNTQ2LTI1LjYyOS00OS41LTk0LjA5LTQ3LjQ1LTExNy45ODIuNzQ3QzEzMC4yNjkgMjYuNDU2IDg5LjE0NCA1Ny45NDUgODkuMTQ0IDEwMnYxMjYuMTNjLTE5Ljk1My03LjQyNy00My4zMDgtNS4wNjgtNjIuMDgzIDguODcxLTI5LjM1NSAyMS43OTYtMzUuNzk0IDYzLjMzMy0xNC41NSA5My4xNTNMMTMyLjQ4IDQ5OC41NjlhMzIgMzIgMCAwIDAgMjYuMDYyIDEzLjQzMmgyMjIuODk3YzE0LjkwNCAwIDI3LjgzNS0xMC4yODkgMzEuMTgyLTI0LjgxM2wzMC4xODQtMTMwLjk1OEEyMDMuNjM3IDIwMy42MzcgMCAwIDAgNDQ4IDMxMC41NjRWMTc5YzAtNDAuNjItMzUuNTIzLTcxLjk5Mi03NS40My02Ni4zNTl6bTI3LjQyNyAxOTcuOTIyYzAgMTEuNzMxLTEuMzM0IDIzLjQ2OS0zLjk2NSAzNC44ODZMMzY4LjcwNyA0NjRoLTIwMS45Mkw1MS41OTEgMzAyLjMwM2MtMTQuNDM5LTIwLjI3IDE1LjAyMy00Mi43NzYgMjkuMzk0LTIyLjYwNWwyNy4xMjggMzguMDc5YzguOTk1IDEyLjYyNiAyOS4wMzEgNi4yODcgMjkuMDMxLTkuMjgzVjEwMmMwLTI1LjY0NSAzNi41NzEtMjQuODEgMzYuNTcxLjY5MVYyNTZjMCA4LjgzNyA3LjE2MyAxNiAxNiAxNmg2Ljg1NmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2VjY3YzAtMjUuNjYzIDM2LjU3MS0yNC44MSAzNi41NzEuNjkxVjI1NmMwIDguODM3IDcuMTYzIDE2IDE2IDE2aDYuODU2YzguODM3IDAgMTYtNy4xNjMgMTYtMTZWMTAxLjEyNWMwLTI1LjY3MiAzNi41Ny0yNC44MSAzNi41Ny42OTFWMjU2YzAgOC44MzcgNy4xNjMgMTYgMTYgMTZoNi44NTdjOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtNzYuMzA5YzAtMjYuMjQyIDM2LjU3LTI1LjY0IDM2LjU3LS42OTF2MTMxLjU2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSGFuZFBlYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2Mi4xNDYgMTkxLjk3NmMtMTMuNzEtMjEuNjQ5LTM4Ljc2MS0zNC4wMTYtNjUuMDA2LTMwLjM0MVY3NGMwLTQwLjgwNC0zMi44MTEtNzQtNzMuMTQxLTc0LTQwLjMzIDAtNzMuMTQgMzMuMTk2LTczLjE0IDc0TDE2MCAxNjhsLTE4LjY3OS03OC44NUMxMjYuNTc4IDUwLjg0MyA4My44NSAzMi4xMSA0Ni4yMDkgNDcuMjA4IDguNzM1IDYyLjIzOC05LjU3MSAxMDQuOTYzIDUuMDA4IDE0Mi44NWw1NS43NTcgMTQ0LjkyN2MtMzAuNTU3IDI0Ljk1Ni00My45OTQgNTcuODA5LTI0LjczMyA5Mi4yMThsNTQuODUzIDk3Ljk5OUMxMDIuNjI1IDQ5OC45NyAxMjQuNzMgNTEyIDE0OC41NzUgNTEyaDIwNS43MDJjMzAuNzQ0IDAgNTcuNTU4LTIxLjQ0IDY0LjU1NS01MS43OTdsMjcuNDI3LTExOC45OTlhNjcuODAxIDY3LjgwMSAwIDAgMCAxLjcyOS0xNS4yMDNMNDQ4IDI1NmMwLTQ0Ljk1Ni00My4yNjMtNzcuMzQzLTg1Ljg1NC02NC4wMjR6TTM5OS45ODcgMzI2YzAgMS40ODgtLjE2OSAyLjk3Ny0uNTAyIDQuNDIzbC0yNy40MjcgMTE5LjAwMWMtMS45NzggOC41ODItOS4yOSAxNC41NzYtMTcuNzgyIDE0LjU3NkgxNDguNTc1Yy02LjQ4NiAwLTEyLjU0Mi0zLjYyMS0xNS44MDUtOS40NDlsLTU0Ljg1NC05OGMtNC41NTctOC4xNDEtMi42MTktMTguNjY4IDQuNTA4LTI0LjQ4OGwyNi42NDctMjEuNzY0YTE2IDE2IDAgMCAwIDQuODEyLTE4LjEzOWwtNjQuMDktMTY2LjU0OUMzNy4yMjYgOTIuOTU2IDg0LjM3IDc0LjgzNyA5Ni41MSAxMDYuMzg5bDU5Ljc4NCAxNTUuMzU3QTE2IDE2IDAgMCAwIDE3MS4yMjcgMjcyaDExLjYzMmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2Vjc0YzAtMzQuMzc1IDUwLjI4MS0zNC40MyA1MC4yODEgMHYxODJjMCA4LjgzNyA3LjE2MyAxNiAxNiAxNmg2Ljg1NmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2di0yOGMwLTI1LjEyMiAzNi41NjctMjUuMTU5IDM2LjU2NyAwdjI4YzAgOC44MzcgNy4xNjMgMTYgMTYgMTZoNi44NTZjOC44MzcgMCAxNi03LjE2MyAxNi0xNiAwLTI1LjEyIDM2LjU2Ny0yNS4xNiAzNi41NjcgMHY3MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSGFuZFBvaW50RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODguOCA1MTJjNDUuNjE2IDAgODMuMi0zNy43NjUgODMuMi04My4ydi0zNS42NDdhOTMuMTQ4IDkzLjE0OCAwIDAgMCAyMi4wNjQtNy45MjljMjIuMDA2IDIuNTA3IDQ0Ljk3OC0zLjUwMyA2Mi43OTEtMTUuOTg1QzQwOS4zNDIgMzY4LjEgNDQ4IDMzMS44NDEgNDQ4IDI2OS4yOTlWMjQ4YzAtNjAuMDYzLTQwLTk4LjUxMi00MC0xMjcuMnYtMi42NzljNC45NTItNS43NDcgOC0xMy41MzYgOC0yMi4xMlYzMmMwLTE3LjY3My0xMi44OTQtMzItMjguOC0zMkgxNTYuOEMxNDAuODk0IDAgMTI4IDE0LjMyNyAxMjggMzJ2NjRjMCA4LjU4NCAzLjA0OCAxNi4zNzMgOCAyMi4xMnYyLjY3OWMwIDYuOTY0LTYuMTkzIDE0Ljg2Mi0yMy42NjggMzAuMTgzbC0uMTQ4LjEyOS0uMTQ2LjEzMWMtOS45MzcgOC44NTYtMjAuODQxIDE4LjExNi0zMy4yNTMgMjUuODUxQzQ4LjUzNyAxOTUuNzk4IDAgMjA3LjQ4NiAwIDI1Mi44YzAgNTYuOTI4IDM1LjI4NiA5MiA4My4yIDkyIDguMDI2IDAgMTUuNDg5LS44MTQgMjIuNC0yLjE3NlY0MjguOGMwIDQ1LjA5OSAzOC4xMDEgODMuMiA4My4yIDgzLjJ6bTAtNDhjLTE4LjcgMC0zNS4yLTE2Ljc3NS0zNS4yLTM1LjJWMjcwLjRjLTE3LjMyNSAwLTM1LjIgMjYuNC03MC40IDI2LjQtMjYuNCAwLTM1LjItMjAuNjI1LTM1LjItNDQgMC04Ljc5NCAzMi43MTItMjAuNDQ1IDU2LjEtMzQuOTI2IDE0LjU3NS05LjA3NCAyNy4yMjUtMTkuNTI0IDM5Ljg3NS0zMC43OTkgMTguMzc0LTE2LjEwOSAzNi42MzMtMzMuODM2IDM5LjU5Ni01OS4wNzVoMTc2Ljc1MkMzNjQuMDg3IDE3MC43OSA0MDAgMjAyLjUwOSA0MDAgMjQ4djIxLjI5OWMwIDQwLjUyNC0yMi4xOTcgNTcuMTI0LTYxLjMyNSA1MC42MDEtOC4wMDEgMTQuNjEyLTMzLjk3OSAyNC4xNTEtNTMuNjI1IDEyLjkyNS0xOC4yMjUgMTkuMzY1LTQ2LjM4MSAxNy43ODctNjEuMDUgNC45NVY0MjguOGMwIDE4Ljk3NS0xNi4yMjUgMzUuMi0zNS4yIDM1LjJ6TTMyOCA2NGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjRzMjQgMTAuNzQ1IDI0IDI0LTEwLjc0NSAyNC0yNCAyNC0yNC0xMC43NDUtMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmRQb2ludExlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyMjAuOEMwIDI2Ni40MTYgMzcuNzY1IDMwNCA4My4yIDMwNGgzNS42NDdhOTMuMTQ4IDkzLjE0OCAwIDAgMCA3LjkyOSAyMi4wNjRjLTIuNTA3IDIyLjAwNiAzLjUwMyA0NC45NzggMTUuOTg1IDYyLjc5MUMxNDMuOSA0NDEuMzQyIDE4MC4xNTkgNDgwIDI0Mi43MDEgNDgwSDI2NGM2MC4wNjMgMCA5OC41MTItNDAgMTI3LjItNDBoMi42NzljNS43NDcgNC45NTIgMTMuNTM2IDggMjIuMTIgOGg2NGMxNy42NzMgMCAzMi0xMi44OTQgMzItMjguOFYxODguOGMwLTE1LjkwNi0xNC4zMjctMjguOC0zMi0yOC44aC02NGMtOC41ODQgMC0xNi4zNzMgMy4wNDgtMjIuMTIgOEgzOTEuMmMtNi45NjQgMC0xNC44NjItNi4xOTMtMzAuMTgzLTIzLjY2OGwtLjEyOS0uMTQ4LS4xMzEtLjE0NmMtOC44NTYtOS45MzctMTguMTE2LTIwLjg0MS0yNS44NTEtMzMuMjUzQzMxNi4yMDIgODAuNTM3IDMwNC41MTQgMzIgMjU5LjIgMzJjLTU2LjkyOCAwLTkyIDM1LjI4Ni05MiA4My4yIDAgOC4wMjYuODE0IDE1LjQ4OSAyLjE3NiAyMi40SDgzLjJDMzguMTAxIDEzNy42IDAgMTc1LjcwMSAwIDIyMC44em00OCAwYzAtMTguNyAxNi43NzUtMzUuMiAzNS4yLTM1LjJoMTU4LjRjMC0xNy4zMjUtMjYuNC0zNS4yLTI2LjQtNzAuNCAwLTI2LjQgMjAuNjI1LTM1LjIgNDQtMzUuMiA4Ljc5NCAwIDIwLjQ0NSAzMi43MTIgMzQuOTI2IDU2LjEgOS4wNzQgMTQuNTc1IDE5LjUyNCAyNy4yMjUgMzAuNzk5IDM5Ljg3NSAxNi4xMDkgMTguMzc0IDMzLjgzNiAzNi42MzMgNTkuMDc1IDM5LjU5NnYxNzYuNzUyQzM0MS4yMSAzOTYuMDg3IDMwOS40OTEgNDMyIDI2NCA0MzJoLTIxLjI5OWMtNDAuNTI0IDAtNTcuMTI0LTIyLjE5Ny01MC42MDEtNjEuMzI1LTE0LjYxMi04LjAwMS0yNC4xNTEtMzMuOTc5LTEyLjkyNS01My42MjUtMTkuMzY1LTE4LjIyNS0xNy43ODctNDYuMzgxLTQuOTUtNjEuMDVIODMuMkM2NC4yMjUgMjU2IDQ4IDIzOS43NzUgNDggMjIwLjh6TTQ0OCAzNjBjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0cy0xMC43NDUgMjQtMjQgMjQtMjQtMTAuNzQ1LTI0LTI0IDEwLjc0NS0yNCAyNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSGFuZFBvaW50UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDI4LjggMTM3LjZoLTg2LjE3N2ExMTUuNTIgMTE1LjUyIDAgMCAwIDIuMTc2LTIyLjRjMC00Ny45MTQtMzUuMDcyLTgzLjItOTItODMuMi00NS4zMTQgMC01Ny4wMDIgNDguNTM3LTc1LjcwNyA3OC43ODQtNy43MzUgMTIuNDEzLTE2Ljk5NCAyMy4zMTctMjUuODUxIDMzLjI1M2wtLjEzMS4xNDYtLjEyOS4xNDhDMTM1LjY2MiAxNjEuODA3IDEyNy43NjQgMTY4IDEyMC44IDE2OGgtMi42NzljLTUuNzQ3LTQuOTUyLTEzLjUzNi04LTIyLjEyLThIMzJjLTE3LjY3MyAwLTMyIDEyLjg5NC0zMiAyOC44djIzMC40QzAgNDM1LjEwNiAxNC4zMjcgNDQ4IDMyIDQ0OGg2NGM4LjU4NCAwIDE2LjM3My0zLjA0OCAyMi4xMi04aDIuNjc5YzI4LjY4OCAwIDY3LjEzNyA0MCAxMjcuMiA0MGgyMS4yOTljNjIuNTQyIDAgOTguOC0zOC42NTggOTkuOTQtOTEuMTQ1IDEyLjQ4Mi0xNy44MTMgMTguNDkxLTQwLjc4NSAxNS45ODUtNjIuNzkxQTkzLjE0OCA5My4xNDggMCAwIDAgMzkzLjE1MiAzMDRINDI4LjhjNDUuNDM1IDAgODMuMi0zNy41ODQgODMuMi04My4yIDAtNDUuMDk5LTM4LjEwMS04My4yLTgzLjItODMuMnptMCAxMTguNGgtOTEuMDI2YzEyLjgzNyAxNC42NjkgMTQuNDE1IDQyLjgyNS00Ljk1IDYxLjA1IDExLjIyNyAxOS42NDYgMS42ODcgNDUuNjI0LTEyLjkyNSA1My42MjUgNi41MjQgMzkuMTI4LTEwLjA3NiA2MS4zMjUtNTAuNiA2MS4zMjVIMjQ4Yy00NS40OTEgMC03Ny4yMS0zNS45MTMtMTIwLTM5LjY3NlYyMTUuNTcxYzI1LjIzOS0yLjk2NCA0Mi45NjYtMjEuMjIyIDU5LjA3NS0zOS41OTYgMTEuMjc1LTEyLjY1IDIxLjcyNS0yNS4zIDMwLjc5OS0zOS44NzVDMjMyLjM1NSAxMTIuNzEyIDI0NC4wMDYgODAgMjUyLjggODBjMjMuMzc1IDAgNDQgOC44IDQ0IDM1LjIgMCAzNS4yLTI2LjQgNTMuMDc1LTI2LjQgNzAuNGgxNTguNGMxOC40MjUgMCAzNS4yIDE2LjUgMzUuMiAzNS4yIDAgMTguOTc1LTE2LjIyNSAzNS4yLTM1LjIgMzUuMnpNODggMzg0YzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNHMtMjQtMTAuNzQ1LTI0LTI0IDEwLjc0NS0yNCAyNC0yNCAyNCAxMC43NDUgMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmRQb2ludFVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwNS42IDgzLjJ2ODYuMTc3YTExNS41MiAxMTUuNTIgMCAwIDAtMjIuNC0yLjE3NmMtNDcuOTE0IDAtODMuMiAzNS4wNzItODMuMiA5MiAwIDQ1LjMxNCA0OC41MzcgNTcuMDAyIDc4Ljc4NCA3NS43MDcgMTIuNDEzIDcuNzM1IDIzLjMxNyAxNi45OTQgMzMuMjUzIDI1Ljg1MWwuMTQ2LjEzMS4xNDguMTI5QzEyOS44MDcgMzc2LjMzOCAxMzYgMzg0LjIzNiAxMzYgMzkxLjJ2Mi42NzljLTQuOTUyIDUuNzQ3LTggMTMuNTM2LTggMjIuMTJ2NjRjMCAxNy42NzMgMTIuODk0IDMyIDI4LjggMzJoMjMwLjRjMTUuOTA2IDAgMjguOC0xNC4zMjcgMjguOC0zMnYtNjRjMC04LjU4NC0zLjA0OC0xNi4zNzMtOC0yMi4xMlYzOTEuMmMwLTI4LjY4OCA0MC02Ny4xMzcgNDAtMTI3LjJ2LTIxLjI5OWMwLTYyLjU0Mi0zOC42NTgtOTguOC05MS4xNDUtOTkuOTQtMTcuODEzLTEyLjQ4Mi00MC43ODUtMTguNDkxLTYyLjc5MS0xNS45ODVBOTMuMTQ4IDkzLjE0OCAwIDAgMCAyNzIgMTE4Ljg0N1Y4My4yQzI3MiAzNy43NjUgMjM0LjQxNiAwIDE4OC44IDBjLTQ1LjA5OSAwLTgzLjIgMzguMTAxLTgzLjIgODMuMnptMTE4LjQgMHY5MS4wMjZjMTQuNjY5LTEyLjgzNyA0Mi44MjUtMTQuNDE1IDYxLjA1IDQuOTUgMTkuNjQ2LTExLjIyNyA0NS42MjQtMS42ODcgNTMuNjI1IDEyLjkyNSAzOS4xMjgtNi41MjQgNjEuMzI1IDEwLjA3NiA2MS4zMjUgNTAuNlYyNjRjMCA0NS40OTEtMzUuOTEzIDc3LjIxLTM5LjY3NiAxMjBIMTgzLjU3MWMtMi45NjQtMjUuMjM5LTIxLjIyMi00Mi45NjYtMzkuNTk2LTU5LjA3NS0xMi42NS0xMS4yNzUtMjUuMy0yMS43MjUtMzkuODc1LTMwLjc5OUM4MC43MTIgMjc5LjY0NSA0OCAyNjcuOTk0IDQ4IDI1OS4yYzAtMjMuMzc1IDguOC00NCAzNS4yLTQ0IDM1LjIgMCA1My4wNzUgMjYuNCA3MC40IDI2LjRWODMuMmMwLTE4LjQyNSAxNi41LTM1LjIgMzUuMi0zNS4yIDE4Ljk3NSAwIDM1LjIgMTYuMjI1IDM1LjIgMzUuMnpNMzUyIDQyNGMxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjRzLTEwLjc0NSAyNC0yNCAyNC0yNC0xMC43NDUtMjQtMjQgMTAuNzQ1LTI0IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kUG9pbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTguMTgyIDE3OS4zNjFjLTE5LjQ5My0yNC43NjgtNTIuNjc5LTMxLjk0NS03OS44NzItMTkuMDk4LTE1LjEyNy0xNS42ODctMzYuMTgyLTIyLjQ4Ny01Ni41OTUtMTkuNjI5VjY3YzAtMzYuOTQ0LTI5LjczNi02Ny02Ni4yODYtNjdTODkuMTQzIDMwLjA1NiA4OS4xNDMgNjd2MTYxLjEyOWMtMTkuOTA5LTcuNDEtNDMuMjcyLTUuMDk0LTYyLjA4MyA4Ljg3Mi0yOS4zNTUgMjEuNzk1LTM1Ljc5MyA2My4zMzMtMTQuNTUgOTMuMTUybDEwOS42OTkgMTU0LjAwMUMxMzQuNjMyIDUwMS41OSAxNTQuNzQxIDUxMiAxNzYgNTEyaDE3OC4yODZjMzAuODAyIDAgNTcuNTc0LTIxLjUgNjQuNTU3LTUxLjc5N2wyNy40MjktMTE4Ljk5OUE2Ny44NzMgNjcuODczIDAgMCAwIDQ0OCAzMjZ2LTg0YzAtNDYuODQ0LTQ2LjYyNS03OS4yNzMtODkuODE4LTYyLjYzOXpNODAuOTg1IDI3OS42OTdsMjcuMTI2IDM4LjA3OWM4Ljk5NSAxMi42MjYgMjkuMDMxIDYuMjg3IDI5LjAzMS05LjI4M1Y2N2MwLTI1LjEyIDM2LjU3MS0yNS4xNiAzNi41NzEgMHYxNzVjMCA4LjgzNiA3LjE2MyAxNiAxNiAxNmg2Ljg1N2M4LjgzNyAwIDE2LTcuMTY0IDE2LTE2di0zNWMwLTI1LjEyIDM2LjU3MS0yNS4xNiAzNi41NzEgMHYzNWMwIDguODM2IDcuMTYzIDE2IDE2IDE2SDI3MmM4LjgzNyAwIDE2LTcuMTY0IDE2LTE2di0yMWMwLTI1LjEyIDM2LjU3MS0yNS4xNiAzNi41NzEgMHYyMWMwIDguODM2IDcuMTYzIDE2IDE2IDE2aDYuODU3YzguODM3IDAgMTYtNy4xNjQgMTYtMTYgMC0yNS4xMjEgMzYuNTcxLTI1LjE2IDM2LjU3MSAwdjg0YzAgMS40ODgtLjE2OSAyLjk3Ny0uNTAyIDQuNDIzbC0yNy40MyAxMTkuMDAxYy0xLjk3OCA4LjU4Mi05LjI5IDE0LjU3Ni0xNy43ODIgMTQuNTc2SDE3NmMtNS43NjkgMC0xMS4yNjMtMi44NzgtMTQuNjk3LTcuNjk3bC0xMDkuNzEyLTE1NGMtMTQuNDA2LTIwLjIyMyAxNC45OTQtNDIuODE4IDI5LjM5NC0yMi42MDZ6TTE3Ni4xNDMgNDAwdi05NmMwLTguODM3IDYuMjY4LTE2IDE0LTE2aDZjNy43MzIgMCAxNCA3LjE2MyAxNCAxNnY5NmMwIDguODM3LTYuMjY4IDE2LTE0IDE2aC02Yy03LjczMyAwLTE0LTcuMTYzLTE0LTE2em03NS40MjggMHYtOTZjMC04LjgzNyA2LjI2OC0xNiAxNC0xNmg2YzcuNzMyIDAgMTQgNy4xNjMgMTQgMTZ2OTZjMCA4LjgzNy02LjI2OCAxNi0xNCAxNmgtNmMtNy43MzIgMC0xNC03LjE2My0xNC0xNnpNMzI3IDQwMHYtOTZjMC04LjgzNyA2LjI2OC0xNiAxNC0xNmg2YzcuNzMyIDAgMTQgNy4xNjMgMTQgMTZ2OTZjMCA4LjgzNy02LjI2OCAxNi0xNCAxNmgtNmMtNy43MzIgMC0xNC03LjE2My0xNC0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSGFuZFJvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDA4Ljg2NCA3OS4wNTJjLTIyLjQwMS0zMy44OTgtNjYuMTA4LTQyLjI3My05OC44MTMtMjMuNTg4LTI5LjQ3NC0zMS40NjktNzkuMTQ1LTMxLjA5My0xMDguMzM0LS4wMjItNDcuMTYtMjcuMDItMTA4LjcxIDUuMDU1LTExMC42NzEgNjAuODA2QzQ0Ljg0NiAxMDUuNDA3IDAgMTQwLjAwMSAwIDE4Ny40Mjl2NTYuOTUzYzAgMzIuNzQxIDE0LjI4IDYzLjk1NCAzOS4xOCA4NS42MzRsOTcuNzEgODUuMDgxYzQuMjUyIDMuNzAyIDMuMTEgNS41NzMgMy4xMSAzMi45MDMgMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMyaDI1MmMxNy42NzMgMCAzMi0xNC4zMjcgMzItMzIgMC0yMy41MTMtMS4wMTUtMzAuNzQ1IDMuOTgyLTQyLjM3bDQyLjgzNS05OS42NTZjNi4wOTQtMTQuMTc3IDkuMTgzLTI5LjE3MiA5LjE4My00NC41NjhWMTQ2Ljk2M2MwLTUyLjgzOS01NC4zMTQtODguNjYyLTEwMy4xMzYtNjcuOTExek00NjQgMjYxLjQwNmE2NC41MDUgNjQuNTA1IDAgMCAxLTUuMjgyIDI1LjYxM2wtNDIuODM1IDk5LjY1NWMtNS4yMyAxMi4xNzEtNy44ODMgMjUuMDQtNy44ODMgMzguMjVWNDMySDE4OHYtMTAuMjg2YzAtMTYuMzctNy4xNC0zMS45NzctMTkuNTktNDIuODE3bC05Ny43MS04NS4wOEM1Ni4yNzQgMjgxLjI1NSA0OCAyNjMuMjM2IDQ4IDI0NC4zODF2LTU2Ljk1M2MwLTMzLjIwOCA1Mi0zMy41MzcgNTIgLjY3N3Y0MS4yMjhhMTYgMTYgMCAwIDAgNS40OTMgMTIuMDY3bDcgNi4wOTVBMTYgMTYgMCAwIDAgMTM5IDIzNS40MjlWMTE4Ljg1N2MwLTMzLjA5NyA1Mi0zMy43MjUgNTIgLjY3N3YyNi43NTFjMCA4LjgzNiA3LjE2NCAxNiAxNiAxNmg3YzguODM2IDAgMTYtNy4xNjQgMTYtMTZ2LTQxLjE0M2MwLTMzLjEzNCA1Mi0zMy42NzUgNTIgLjY3N3Y0MC40NjZjMCA4LjgzNiA3LjE2MyAxNiAxNiAxNmg3YzguODM3IDAgMTYtNy4xNjQgMTYtMTZ2LTI3LjQyOWMwLTMzLjAzIDUyLTMzLjc4IDUyIC42Nzd2MjYuNzUxYzAgOC44MzYgNy4xNjMgMTYgMTYgMTZoN2M4LjgzNyAwIDE2LTcuMTY0IDE2LTE2IDAtMzMuMTQ2IDUyLTMzLjYxMyA1MiAuNjc3djExNC40NDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmRTY2lzc29ycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNDgwbDcwLS4wMTNjNS4xMTQgMCAxMC4yMzEtLjU4MyAxNS4yMDMtMS43MjlsMTE4Ljk5OS0yNy40MjdDNDkwLjU2IDQ0My44MzUgNTEyIDQxNy4wMiA1MTIgMzg2LjI3N1YxODAuNTc1YzAtMjMuODQ1LTEzLjAzLTQ1Ljk1MS0zNC4wMDUtNTcuNjlsLTk3Ljk5OS01NC44NTNjLTM0LjQwOS0xOS4yNjEtNjcuMjYzLTUuODI0LTkyLjIxOCAyNC43MzNMMTQyLjg1IDM3LjAwOGMtMzcuODg3LTE0LjU3OS04MC42MTIgMy43MjctOTUuNjQyIDQxLjIwMS0xNS4wOTggMzcuNjQyIDMuNjM1IDgwLjM3IDQxLjk0MiA5NS4xMTJMMTY4IDE5MmwtOTQtOS4xNDFjLTQwLjgwNCAwLTc0IDMyLjgxMS03NCA3My4xNCAwIDQwLjMzIDMzLjE5NiA3My4xNDEgNzQgNzMuMTQxaDg3LjYzNWMtMy42NzUgMjYuMjQ1IDguNjkyIDUxLjI5NyAzMC4zNDEgNjUuMDA2QzE3OC42NTcgNDM2LjczNyAyMTEuMDQ0IDQ4MCAyNTYgNDgwem0wLTQ4LjAxM2MtMjUuMTYgMC0yNS4xMi0zNi41NjcgMC0zNi41NjcgOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtNi44NTZjMC04LjgzNy03LjE2My0xNi0xNi0xNmgtMjhjLTI1LjE1OSAwLTI1LjEyMi0zNi41NjcgMC0zNi41NjdoMjhjOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtNi44NTZjMC04LjgzNy03LjE2My0xNi0xNi0xNkg3NGMtMzQuNDMgMC0zNC4zNzUtNTAuMjgxIDAtNTAuMjgxaDE4MmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2di0xMS42MzJhMTYgMTYgMCAwIDAtMTAuMjU0LTE0LjkzM0wxMDYuMzg5IDEyOC41MWMtMzEuNTUyLTEyLjE0LTEzLjQzMi01OS4yODMgMTkuMjIyLTQ2LjcxN2wxNjYuNTQ5IDY0LjA5MWExNi4wMDEgMTYuMDAxIDAgMCAwIDE4LjEzOS00LjgxMmwyMS43NjQtMjYuNjQ3YzUuODItNy4xMjcgMTYuMzQ4LTkuMDY0IDI0LjQ4OC00LjUwOGw5OCA1NC44NTRjNS44MjggMy4yNjMgOS40NDkgOS4zMTggOS40NDkgMTUuODA1djIwNS43MDFjMCA4LjQ5MS01Ljk5NCAxNS44MDQtMTQuNTc2IDE3Ljc4MmwtMTE5LjAwMSAyNy40MjdhMTkuNzQzIDE5Ljc0MyAwIDAgMS00LjQyMy41MDJoLTcwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kU3BvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAxLjAzMDUzLDExNi4xNzYwNWMtMTkuMzkwNTktMzEuNTA3NzktNTEuMjQ0MDYtMzUuNzI4NDktNjYuMzEwNDQtMzUuMDE3NTYtMTQuMTEzMjUtNTAuODEwNTEtNjIuMDAzOC01NC4wOC03MC43MzgxNi01NC4wOGE3NC4wMzA5MSw3NC4wMzA5MSwwLDAsMC03Mi4yMzgxNiw1OC45MTZsLTQuNjQ2NDgsMjIuNjYwMTQtMTMuNjgzNTctNTMuMjA3Yy05LjA5NTY5LTM1LjM3MTA3LTQ2LjQxMi02NC4wNTA3NC04OS42Ni01My4wNzIyM2E3My44OTc0OSw3My44OTc0OSwwLDAsMC01NS4xMjEsNzguOTQ3MjIsNzMuNjgyNzMsNzMuNjgyNzMsMCwwLDAtNjQuODQ5NSw5NC40MjE4MWwyNC4zNTkzMyw4Mi4xOTcyMWMtMzguMjQwMTctNy41NDQ5Mi02Mi43OTY3NywxNi4xODM1OC02OC4xMTUxMiwyMS44NDc2NGE3My42NzkxLDczLjY3OTEsMCwwLDAsMy4xOTkyMSwxMDQuMTkzMjlsOTEuMzY1MDksODUuOTc2NUExNTQuMTY0LDE1NC4xNjQsMCwwLDAsMjIwLjYyMjc5LDUxMmgxMDcuNDU0OUExMjcuMzAwNzksMTI3LjMwMDc5LDAsMCwwLDQ1Mi4zMzkyLDQxMy44NjEzOWw1Ny42MjMtMjQxLjk2MjcyQTczLjIwMjc0LDczLjIwMjc0LDAsMCwwLDUwMS4wMzA1MywxMTYuMTc2MDVabS0zNy43NTk3LDQ0LjYwNTQ0TDQwNS42NDc4OCw0MDIuNzQ4MTJhNzkuNDY2MTYsNzkuNDY2MTYsMCwwLDEtNzcuNTcwMTksNjEuMjU5NzJIMjIwLjYyMjc5YTEwNi4zNDA1MiwxMDYuMzQwNTIsMCwwLDEtNzMuMTM2Ni0yOC45OThsLTkxLjM2OS04NS45ODA0MUMzMS4zNDM4MSwzMjUuNzI2NjksNjYuNjExMzMsMjg4LjEzMSw5MS4zOTY0NCwzMTEuNTM5Mmw1MS4xMjMsNDguMTA3MzljNS40MjU3Nyw1LjEwOTM3LDEzLjQ4MjM5LjcxNjc5LDEzLjQ4MjM5LTUuODI2MTdhMjQ2Ljc5OTE0LDI0Ni43OTkxNCwwLDAsMC0xMC4xNzc3MS03MC4xNTIzbC0zNi4wMTM2Mi0xMjEuNTM5Yy05LjczMjQtMzIuODgyNzksMzkuNjk5MTYtNDcuMjcxNDUsNDkuMzg2NjQtMTQuNjI1bDMxLjM0MzcsMTA1Ljc3OTIzYzUuNTkzNzQsMTguOTA0MjgsMzMuNzgxMTksMTAuNzEyODgsMjguOTY0OC04LjAwNzgxTDE3Ny4wNjQyNyw4MC4yMzY2MmMtOC41MDM4OS0zMy4xMDM1LDQxLjQzMTU3LTQ1LjY0NjQ2LDQ5Ljg2NTE1LTEyLjgzNTkzbDQ3LjMyNjA5LDE4NC4wMzVjNC40Mjc3MywxNy4yNDIxOCwyOS4xNjIwNywxNi41MDM5LDMyLjcxMDg5LS44MDQ2OGwzMS43OTEtMTU0Ljk3MDZjNi44MTA1NC0zMy4xMDc0LDU3LjUxNzQ4LTI0LjEwNzQxLDUwLjExOTA2LDExLjk2Mjg4TDM2MC4zMjc2NCwyNDYuNzg5MjRjLTMuNzIyNjUsMTguMTA5MzYsMjMuNjY3OTMsMjQuNjMwODQsMjguMDU2NTksNi4yMTY3OUw0MTMuMTg1LDE0OC44NTk2MkM0MjEuMTQ5OCwxMTUuNTEyLDQ3MS4xNCwxMjcuNzk3MTMsNDYzLjI3MDgzLDE2MC43ODE0OVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSGFuZHNoYWtlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxOS4yIDEyNy45bC00Ny42LTQ3LjZBNTYuMjUyIDU2LjI1MiAwIDAgMCA0MzIgNjRIMjA1LjJjLTE0LjggMC0yOS4xIDUuOS0zOS42IDE2LjNMMTE4IDEyNy45SDB2MjU1LjdoNjRjMTcuNiAwIDMxLjgtMTQuMiAzMS45LTMxLjdoOS4xbDg0LjYgNzYuNGMzMC45IDI1LjEgNzMuOCAyNS43IDEwNS42IDMuOCAxMi41IDEwLjggMjYgMTUuOSA0MS4xIDE1LjkgMTguMiAwIDM1LjMtNy40IDQ4LjgtMjQgMjIuMSA4LjcgNDguMiAyLjYgNjQtMTYuOGwyNi4yLTMyLjNjNS42LTYuOSA5LjEtMTQuOCAxMC45LTIzaDU3LjljLjEgMTcuNSAxNC40IDMxLjcgMzEuOSAzMS43aDY0VjEyNy45SDUxOS4yek00OCAzNTEuNmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTZjMCA4LjktNy4yIDE2LTE2IDE2em0zOTAtNi45bC0yNi4xIDMyLjJjLTIuOCAzLjQtNy44IDQtMTEuMyAxLjJsLTIzLjktMTkuNC0zMCAzNi41Yy02IDcuMy0xNSA0LjgtMTggMi40bC0zNi44LTMxLjUtMTUuNiAxOS4yYy0xMy45IDE3LjEtMzkuMiAxOS43LTU1LjMgNi42bC05Ny4zLTg4SDk2VjE3NS44aDQxLjlsNjEuNy02MS42YzItLjggMy43LTEuNSA1LjctMi4zSDI2MmwtMzguNyAzNS41Yy0yOS40IDI2LjktMzEuMSA3Mi4zLTQuNCAxMDEuMyAxNC44IDE2LjIgNjEuMiA0MS4yIDEwMS41IDQuNGw4LjItNy41IDEwOC4yIDg3LjhjMy40IDIuOCAzLjkgNy45IDEuMiAxMS4zem0xMDYtNDAuOGgtNjkuMmMtMi4zLTIuOC00LjktNS40LTcuNy03LjdsLTEwMi43LTgzLjQgMTIuNS0xMS40YzYuNS02IDctMTYuMSAxLTIyLjZMMzY3IDE2Ny4xYy02LTYuNS0xNi4xLTYuOS0yMi42LTFsLTU1LjIgNTAuNmMtOS41IDguNy0yNS43IDkuNC0zNC42IDAtOS4zLTkuOS04LjUtMjUuMSAxLjItMzMuOWw2NS42LTYwLjFjNy40LTYuOCAxNy0xMC41IDI3LTEwLjVsODMuNy0uMmMyLjEgMCA0LjEuOCA1LjUgMi4zbDYxLjcgNjEuNkg1NDR2MTI4em00OCA0Ny43Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNmMwIDguOS03LjIgMTYtMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjcuNDAzIDIzNS42NDJMNDYyLjMyMyA4NC41ODlBNDggNDggMCAwIDAgNDIyLjkxOSA2NEgxNTMuMDgxYTQ4IDQ4IDAgMCAwLTM5LjQwNCAyMC41ODlMOC41OTcgMjM1LjY0MkE0OC4wMDEgNDguMDAxIDAgMCAwIDAgMjYzLjA1NFY0MDBjMCAyNi41MSAyMS40OSA0OCA0OCA0OGg0ODBjMjYuNTEgMCA0OC0yMS40OSA0OC00OFYyNjMuMDU0YzAtOS44MDEtMy0xOS4zNjYtOC41OTctMjcuNDEyek0xNTMuMDgxIDExMmgyNjkuODM4bDc3LjkxMyAxMTJINzUuMTY4bDc3LjkxMy0xMTJ6TTUyOCA0MDBINDhWMjcyaDQ4MHYxMjh6bS0zMi02NGMwIDE3LjY3My0xNC4zMjcgMzItMzIgMzJzLTMyLTE0LjMyNy0zMi0zMiAxNC4zMjctMzIgMzItMzIgMzIgMTQuMzI3IDMyIDMyem0tOTYgMGMwIDE3LjY3My0xNC4zMjcgMzItMzIgMzJzLTMyLTE0LjMyNy0zMi0zMiAxNC4zMjctMzIgMzItMzIgMzIgMTQuMzI3IDMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIZWFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTguNCA2NC4zQzQwMC42IDE1LjcgMzExLjMgMjMgMjU2IDc5LjMgMjAwLjcgMjMgMTExLjQgMTUuNiA1My42IDY0LjMtMjEuNiAxMjcuNi0xMC42IDIzMC44IDQzIDI4NS41bDE3NS40IDE3OC43YzEwIDEwLjIgMjMuNCAxNS45IDM3LjYgMTUuOSAxNC4zIDAgMjcuNi01LjYgMzcuNi0xNS44TDQ2OSAyODUuNmM1My41LTU0LjcgNjQuNy0xNTcuOS0xMC42LTIyMS4zem0tMjMuNiAxODcuNUwyNTkuNCA0MzAuNWMtMi40IDIuNC00LjQgMi40LTYuOCAwTDc3LjIgMjUxLjhjLTM2LjUtMzcuMi00My45LTEwNy42IDcuMy0xNTAuNyAzOC45LTMyLjcgOTguOS0yNy44IDEzNi41IDEwLjVsMzUgMzUuNyAzNS0zNS43YzM3LjgtMzguNSA5Ny44LTQzLjIgMTM2LjUtMTAuNiA1MS4xIDQzLjEgNDMuNSAxMTMuOSA3LjMgMTUwLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hvc3BpdGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAyNDR2LTQwYzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNDBjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY0MGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC00MGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnptMTQwIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJ6bS03NiA4NHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem03NiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyem0xODAgMTI0djM2SDB2LTM2YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTkuNVY4NS4wMzVDMzEuNSA3My40MTggNDIuMjQ1IDY0IDU1LjUgNjRIMTQ0VjI0YzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNGgxMTJjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0djQwaDg4LjVjMTMuMjU1IDAgMjQgOS40MTggMjQgMjEuMDM1VjQ2NEg0MzZjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnpNNzkuNSA0NjNIMTkydi02N2MwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDQwYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2NjdoMTEyLjVWMTEySDMwNHYyNGMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMTY4Yy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjR2LTI0SDc5LjV2MzUxek0yNjYgNjRoLTI2VjM4YTYgNiAwIDAgMC02LTZoLTIwYTYgNiAwIDAgMC02IDZ2MjZoLTI2YTYgNiAwIDAgMC02IDZ2MjBhNiA2IDAgMCAwIDYgNmgyNnYyNmE2IDYgMCAwIDAgNiA2aDIwYTYgNiAwIDAgMCA2LTZWOTZoMjZhNiA2IDAgMCAwIDYtNlY3MGE2IDYgMCAwIDAtNi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIb3VyZ2xhc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY4IDQ4aDRjNi42MjcgMCAxMi01LjM3MyAxMi0xMlYxMmMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDEyQzUuMzczIDAgMCA1LjM3MyAwIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNGMwIDgwLjU2NCAzMi4xODggMTY1LjgwNyA5Ny4xOCAyMDhDNDcuODk5IDI5OC4zODEgMTYgMzgzLjkgMTYgNDY0aC00Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMzYwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTI0YzAtNi42MjctNS4zNzMtMTItMTItMTJoLTRjMC04MC41NjQtMzIuMTg4LTE2NS44MDctOTcuMTgtMjA4QzMzNi4xMDIgMjEzLjYxOSAzNjggMTI4LjEgMzY4IDQ4ek02NCA0OGgyNTZjMCAxMDEuNjItNTcuMzA3IDE4NC0xMjggMTg0UzY0IDE0OS42MjEgNjQgNDh6bTI1NiA0MTZINjRjMC0xMDEuNjIgNTcuMzA4LTE4NCAxMjgtMTg0czEyOCA4Mi4zOCAxMjggMTg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdJZEJhZGdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNiAwSDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHY0MTZjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0wIDQ2NEg0OFY0OGgyODh2NDE2ek0xNDQgMTEyaDk2YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2aC05NmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNnptNDggMTc2YzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0LTY0IDI4LjctNjQgNjQgMjguNyA2NCA2NCA2NHptLTg5LjYgMTI4aDE3OS4yYzEyLjQgMCAyMi40LTguNiAyMi40LTE5LjJ2LTE5LjJjMC0zMS44LTMwLjEtNTcuNi02Ny4yLTU3LjYtMTAuOCAwLTE4LjcgOC00NC44IDgtMjYuOSAwLTMzLjQtOC00NC44LTgtMzcuMSAwLTY3LjIgMjUuOC02Ny4yIDU3LjZ2MTkuMmMwIDEwLjYgMTAgMTkuMiAyMi40IDE5LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0lkQ2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjggMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoNDgwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0wIDQwMEgzMDMuMmMuOS00LjUuOCAzLjYuOC0yMi40IDAtMzEuOC0zMC4xLTU3LjYtNjcuMi01Ny42LTEwLjggMC0xOC43IDgtNDQuOCA4LTI2LjkgMC0zMy40LTgtNDQuOC04LTM3LjEgMC02Ny4yIDI1LjgtNjcuMiA1Ny42IDAgMjYtLjIgMTcuOS44IDIyLjRINDhWMTQ0aDQ4MHYyODh6bS0xNjgtODBoMTEyYzQuNCAwIDgtMy42IDgtOHYtMTZjMC00LjQtMy42LTgtOC04SDM2MGMtNC40IDAtOCAzLjYtOCA4djE2YzAgNC40IDMuNiA4IDggOHptMC02NGgxMTJjNC40IDAgOC0zLjYgOC04di0xNmMwLTQuNC0zLjYtOC04LThIMzYwYy00LjQgMC04IDMuNi04IDh2MTZjMCA0LjQgMy42IDggOCA4em0wLTY0aDExMmM0LjQgMCA4LTMuNiA4LTh2LTE2YzAtNC40LTMuNi04LTgtOEgzNjBjLTQuNCAwLTggMy42LTggOHYxNmMwIDQuNCAzLjYgOCA4IDh6bS0xNjggOTZjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjQtNjQgMjguNy02NCA2NCAyOC43IDY0IDY0IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdJbWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgNjRINDhDMjEuNDkgNjQgMCA4NS40OSAwIDExMnYyODhjMCAyNi41MSAyMS40OSA0OCA0OCA0OGg0MTZjMjYuNTEgMCA0OC0yMS40OSA0OC00OFYxMTJjMC0yNi41MS0yMS40OS00OC00OC00OHptLTYgMzM2SDU0YTYgNiAwIDAgMS02LTZWMTE4YTYgNiAwIDAgMSA2LTZoNDA0YTYgNiAwIDAgMSA2IDZ2Mjc2YTYgNiAwIDAgMS02IDZ6TTEyOCAxNTJjLTIyLjA5MSAwLTQwIDE3LjkwOS00MCA0MHMxNy45MDkgNDAgNDAgNDAgNDAtMTcuOTA5IDQwLTQwLTE3LjkwOS00MC00MC00MHpNOTYgMzUyaDMyMHYtODBsLTg3LjUxNS04Ny41MTVjLTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NzEgMEwxOTIgMzA0bC0zOS41MTUtMzkuNTE1Yy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcxIDBMOTYgMzA0djQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdJbWFnZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDQxNnYxNmMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjE3NmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDE2djQ4SDU0YTYgNiAwIDAgMC02IDZ2MjQ0YTYgNiAwIDAgMCA2IDZoMzcyYTYgNiAwIDAgMCA2LTZ2LTEwaDQ4em00Mi0zMzZIMTUwYTYgNiAwIDAgMC02IDZ2MjQ0YTYgNiAwIDAgMCA2IDZoMzcyYTYgNiAwIDAgMCA2LTZWODZhNiA2IDAgMCAwLTYtNnptNi00OGMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4djI1NmMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4SDE0NGMtMjYuNTEgMC00OC0yMS40OS00OC00OFY4MGMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDM4NHpNMjY0IDE0NGMwIDIyLjA5MS0xNy45MDkgNDAtNDAgNDBzLTQwLTE3LjkwOS00MC00MCAxNy45MDktNDAgNDAtNDAgNDAgMTcuOTA5IDQwIDQwem0tNzIgOTZsMzkuNTE1LTM5LjUxNWM0LjY4Ni00LjY4NiAxMi4yODQtNC42ODYgMTYuOTcxIDBMMjg4IDI0MGwxMDMuNTE1LTEwMy41MTVjNC42ODYtNC42ODYgMTIuMjg0LTQuNjg2IDE2Ljk3MSAwTDQ4MCAyMDh2ODBIMTkydi00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnS2V5Ym9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI4IDY0SDQ4QzIxLjQ5IDY0IDAgODUuNDkgMCAxMTJ2Mjg4YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDgwYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMTEyYzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6bTggMzM2YzAgNC40MTEtMy41ODkgOC04IDhINDhjLTQuNDExIDAtOC0zLjU4OS04LThWMTEyYzAtNC40MTEgMy41ODktOCA4LThoNDgwYzQuNDExIDAgOCAzLjU4OSA4IDh2Mjg4ek0xNzAgMjcwdi0yOGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0yOGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyOGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDI4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTI4YzAtNi42MjctNS4zNzMtMTItMTItMTJoLTI4Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI4YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjhjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtMjhjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtMjhjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyOGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi0yOGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0yOGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyOGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDI4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bS0zMzYgODJ2LTI4YzAtNi42MjctNS4zNzMtMTItMTItMTJIODJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyOGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem0zODQgMHYtMjhjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtMjhjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyOGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyek0xMjIgMTg4di0yOGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDgyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI4YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjhjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtMjhjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtMjhjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyOGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi0yOGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0yOGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyOGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDI4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTI4YzAtNi42MjctNS4zNzMtMTItMTItMTJoLTI4Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI4YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjhjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtMjhjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtMjhjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyOGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem0tOTggMTU4di0xNmMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDE4MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYxNmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDIxNmM2LjYyNyAwIDEyLTUuMzczIDEyLTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdLaXNzQmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjggMTUyYy0yMy44IDAtNTIuNyAyOS4zLTU2IDcxLjQtLjMgMy43IDIgNy4yIDUuNiA4LjMgMy41IDEgNy41LS41IDkuMy0zLjdsOS41LTE3YzcuNy0xMy43IDE5LjItMjEuNiAzMS41LTIxLjZzMjMuOCA3LjkgMzEuNSAyMS42bDkuNSAxN2MyLjEgMy43IDYuMiA0LjcgOS4zIDMuNyAzLjYtMS4xIDUuOS00LjUgNS42LTguMy0zLjEtNDIuMS0zMi03MS40LTU1LjgtNzEuNHpNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem01Ni0xNDhjMC0xOS4yLTI4LjgtNDEuNS03MS41LTQ0LTMuOC0uNC03LjQgMi40LTguMiA2LjItLjkgMy44IDEuMSA3LjcgNC43IDkuMmwxNi45IDcuMmMxMyA1LjUgMjAuOCAxMy41IDIwLjggMjEuNXMtNy44IDE2LTIwLjcgMjEuNWwtMTcgNy4yYy01LjcgMi40LTYgMTIuMiAwIDE0LjhsMTYuOSA3LjJjMTMgNS41IDIwLjggMTMuNSAyMC44IDIxLjVzLTcuOCAxNi0yMC43IDIxLjVsLTE3IDcuMmMtMy42IDEuNS01LjYgNS40LTQuNyA5LjIuOCAzLjYgNC4xIDYuMiA3LjggNi4yaC41YzQyLjgtMi41IDcxLjUtMjQuOCA3MS41LTQ0IDAtMTMtMTMuNC0yNy4zLTM1LjItMzZDMjkwLjYgMzM1LjMgMzA0IDMyMSAzMDQgMzA4em0yNC0xNTZjLTIzLjggMC01Mi43IDI5LjMtNTYgNzEuNC0uMyAzLjcgMiA3LjIgNS42IDguMyAzLjUgMSA3LjUtLjUgOS4zLTMuN2w5LjUtMTdjNy43LTEzLjcgMTkuMi0yMS42IDMxLjUtMjEuNnMyMy44IDcuOSAzMS41IDIxLjZsOS41IDE3YzIuMSAzLjcgNi4yIDQuNyA5LjMgMy43IDMuNi0xLjEgNS45LTQuNSA1LjYtOC4zLTMuMS00Mi4xLTMyLTcxLjQtNTUuOC03MS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdLaXNzV2lua0hlYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MDQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwNCAzMDguNWMwLTE5LjItMjguOC00MS41LTcxLjUtNDQtMy44LS40LTcuNCAyLjQtOC4yIDYuMi0uOSAzLjggMS4xIDcuNyA0LjcgOS4ybDE2LjkgNy4yYzEzIDUuNSAyMC44IDEzLjUgMjAuOCAyMS41cy03LjggMTYtMjAuNyAyMS41bC0xNyA3LjJjLTUuNyAyLjQtNiAxMi4yIDAgMTQuOGwxNi45IDcuMmMxMyA1LjUgMjAuOCAxMy41IDIwLjggMjEuNXMtNy44IDE2LTIwLjcgMjEuNWwtMTcgNy4yYy0zLjYgMS41LTUuNiA1LjQtNC43IDkuMi44IDMuNiA0LjEgNi4yIDcuOCA2LjJoLjVjNDIuOC0yLjUgNzEuNS0yNC44IDcxLjUtNDQgMC0xMy0xMy40LTI3LjMtMzUuMi0zNiAyMS43LTkuMSAzNS4xLTIzLjQgMzUuMS0zNi40em03MC41LTgzLjVsOS41IDguNWMzLjggMy4zIDkuMyA0IDEzLjcgMS42IDQuNC0yLjQgNi45LTcuNCA2LjEtMTIuNC00LTI1LjItMzQuMi00Mi4xLTU5LjgtNDIuMXMtNTUuOSAxNi45LTU5LjggNDIuMWMtLjggNSAxLjcgMTAgNi4xIDEyLjQgNS44IDMuMSAxMS4yLjcgMTMuNy0xLjZsOS41LTguNWMxNC44LTEzLjIgNDYuMi0xMy4yIDYxIDB6TTEzNiAyMDguNWMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMnptMzY1LjEgMTk0Yy04LTIwLjgtMzEuNS0zMS41LTUzLjEtMjUuOWwtOC40IDIuMi0yLjMtOC40Yy01LjktMjEuNC0yNy0zNi41LTQ5LTMzLTI1LjIgNC00MC42IDI4LjYtMzQgNTIuNmwyMi45IDgyLjZjMS41IDUuMyA3IDguNSAxMi40IDcuMWw4My0yMS41YzI0LjEtNi4zIDM3LjctMzEuOCAyOC41LTU1Ljd6TTMzNCA0MzYuM2MtMjYuMSAxMi41LTU1LjIgMTkuNy04NiAxOS43LTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMGMwIDIyLjEtMy43IDQzLjMtMTAuNCA2My4yIDkgNi40IDE3IDE0LjIgMjIuNiAyMy45IDYuNC4xIDEyLjYgMS40IDE4LjYgMi45IDEwLjktMjcuOSAxNy4xLTU4LjIgMTcuMS05MEM0OTYgMTE5IDM4NSA4IDI0OCA4UzAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OGMzNS40IDAgNjguOS03LjUgOTkuNC0yMC45LTIuNS03LjMgNC4zIDE3LjItMTMuNC00Ni44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdLaXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2OCAxNzZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyem0xMzYgMTMyYzAtMTkuMi0yOC44LTQxLjUtNzEuNS00NC0zLjgtLjQtNy40IDIuNC04LjIgNi4yLS45IDMuOCAxLjEgNy43IDQuNyA5LjJsMTYuOSA3LjJjMTMgNS41IDIwLjggMTMuNSAyMC44IDIxLjVzLTcuOCAxNi0yMC43IDIxLjVsLTE3IDcuMmMtNS43IDIuNC02IDEyLjIgMCAxNC44bDE2LjkgNy4yYzEzIDUuNSAyMC44IDEzLjUgMjAuOCAyMS41cy03LjggMTYtMjAuNyAyMS41bC0xNyA3LjJjLTMuNiAxLjUtNS42IDUuNC00LjcgOS4yLjggMy42IDQuMSA2LjIgNy44IDYuMmguNWM0Mi44LTIuNSA3MS41LTI0LjggNzEuNS00NCAwLTEzLTEzLjQtMjcuMy0zNS4yLTM2QzI5MC42IDMzNS4zIDMwNCAzMjEgMzA0IDMwOHpNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem04MC0yODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdMYXVnaEJlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMTQxLjQgMzg5LjRjLTM3LjggMzcuOC04OCA1OC42LTE0MS40IDU4LjZzLTEwMy42LTIwLjgtMTQxLjQtNTguNlM0OCAzMDkuNCA0OCAyNTZzMjAuOC0xMDMuNiA1OC42LTE0MS40UzE5NC42IDU2IDI0OCA1NnMxMDMuNiAyMC44IDE0MS40IDU4LjZTNDQ4IDIwMi42IDQ0OCAyNTZzLTIwLjggMTAzLjYtNTguNiAxNDEuNHpNMzI4IDE1MmMtMjMuOCAwLTUyLjcgMjkuMy01NiA3MS40LS43IDguNiAxMC44IDExLjkgMTQuOSA0LjVsOS41LTE3YzcuNy0xMy43IDE5LjItMjEuNiAzMS41LTIxLjZzMjMuOCA3LjkgMzEuNSAyMS42bDkuNSAxN2M0LjEgNy40IDE1LjYgNCAxNC45LTQuNS0zLjEtNDIuMS0zMi03MS40LTU1LjgtNzEuNHptLTIwMSA3NS45bDkuNS0xN2M3LjctMTMuNyAxOS4yLTIxLjYgMzEuNS0yMS42czIzLjggNy45IDMxLjUgMjEuNmw5LjUgMTdjNC4xIDcuNCAxNS42IDQgMTQuOS00LjUtMy4zLTQyLjEtMzIuMi03MS40LTU2LTcxLjRzLTUyLjcgMjkuMy01NiA3MS40Yy0uNiA4LjUgMTAuOSAxMS45IDE1LjEgNC41ek0zNjIuNCAyODhIMTMzLjZjLTguMiAwLTE0LjUgNy0xMy41IDE1IDcuNSA1OS4yIDU4LjkgMTA1IDEyMS4xIDEwNWgxMy42YzYyLjIgMCAxMTMuNi00NS44IDEyMS4xLTEwNSAxLTgtNS4zLTE1LTEzLjUtMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0xhdWdoU3F1aW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTE0MS40IDM4OS40Yy0zNy44IDM3LjgtODggNTguNi0xNDEuNCA1OC42cy0xMDMuNi0yMC44LTE0MS40LTU4LjZTNDggMzA5LjQgNDggMjU2czIwLjgtMTAzLjYgNTguNi0xNDEuNFMxOTQuNiA1NiAyNDggNTZzMTAzLjYgMjAuOCAxNDEuNCA1OC42UzQ0OCAyMDIuNiA0NDggMjU2cy0yMC44IDEwMy42LTU4LjYgMTQxLjR6TTM0My42IDE5NmwzMy42LTQwLjNjOC42LTEwLjMtMy44LTI0LjgtMTUuNC0xOGwtODAgNDhjLTcuOCA0LjctNy44IDE1LjkgMCAyMC42bDgwIDQ4YzExLjUgNi44IDI0LTcuNiAxNS40LTE4TDM0My42IDE5NnptLTIwOS40IDU4LjNsODAtNDhjNy44LTQuNyA3LjgtMTUuOSAwLTIwLjZsLTgwLTQ4Yy0xMS42LTYuOS0yNCA3LjctMTUuNCAxOGwzMy42IDQwLjMtMzMuNiA0MC4zYy04LjcgMTAuNCAzLjggMjQuOCAxNS40IDE4ek0zNjIuNCAyODhIMTMzLjZjLTguMiAwLTE0LjUgNy0xMy41IDE1IDcuNSA1OS4yIDU4LjkgMTA1IDEyMS4xIDEwNWgxMy42YzYyLjIgMCAxMTMuNi00NS44IDEyMS4xLTEwNSAxLTgtNS4zLTE1LTEzLjUtMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0xhdWdoV2luayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0xNDEuNCAzODkuNGMtMzcuOCAzNy44LTg4IDU4LjYtMTQxLjQgNTguNnMtMTAzLjYtMjAuOC0xNDEuNC01OC42QzY4LjggMzU5LjYgNDggMzA5LjQgNDggMjU2czIwLjgtMTAzLjYgNTguNi0xNDEuNEMxNDQuNCA3Ni44IDE5NC42IDU2IDI0OCA1NnMxMDMuNiAyMC44IDE0MS40IDU4LjZjMzcuOCAzNy44IDU4LjYgODggNTguNiAxNDEuNHMtMjAuOCAxMDMuNi01OC42IDE0MS40ek0zMjggMTY0Yy0yNS43IDAtNTUuOSAxNi45LTU5LjkgNDIuMS0xLjcgMTEuMiAxMS41IDE4LjIgMTkuOCAxMC44bDkuNS04LjVjMTQuOC0xMy4yIDQ2LjItMTMuMiA2MSAwbDkuNSA4LjVjOC41IDcuNCAyMS42LjMgMTkuOC0xMC44LTMuOC0yNS4yLTM0LTQyLjEtNTkuNy00Mi4xem0tMTYwIDYwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptMTk0LjQgNjRIMTMzLjZjLTguMiAwLTE0LjUgNy0xMy41IDE1IDcuNSA1OS4yIDU4LjkgMTA1IDEyMS4xIDEwNWgxMy42YzYyLjIgMCAxMTMuNi00NS44IDEyMS4xLTEwNSAxLTgtNS4zLTE1LTEzLjUtMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0xhdWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTE0MS40IDM4OS40Yy0zNy44IDM3LjgtODggNTguNi0xNDEuNCA1OC42cy0xMDMuNi0yMC44LTE0MS40LTU4LjZTNDggMzA5LjQgNDggMjU2czIwLjgtMTAzLjYgNTguNi0xNDEuNFMxOTQuNiA1NiAyNDggNTZzMTAzLjYgMjAuOCAxNDEuNCA1OC42UzQ0OCAyMDIuNiA0NDggMjU2cy0yMC44IDEwMy42LTU4LjYgMTQxLjR6TTMyOCAyMjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyem0tMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyem0xOTQuNCA2NEgxMzMuNmMtOC4yIDAtMTQuNSA3LTEzLjUgMTUgNy41IDU5LjIgNTguOSAxMDUgMTIxLjEgMTA1aDEzLjZjNjIuMiAwIDExMy42LTQ1LjggMTIxLjEtMTA1IDEtOC01LjMtMTUtMTMuNS0xNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTGVtb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg0LjExMiAyNy44ODlDNDU1Ljk4OS0uMjMzIDQxNi4xMDgtOC4wNTcgMzg3LjA1OSA4Ljg2NSAzNDcuNjA0IDMxLjg0OCAyMjMuNTA0LTQxLjExMSA5MS4xOTYgOTEuMTk3LTQxLjI3NyAyMjMuNjcyIDMxLjkyMyAzNDcuNDcyIDguODY2IDM4Ny4wNThjLTE2LjkyMiAyOS4wNTEtOS4xIDY4LjkzMiAxOS4wMjIgOTcuMDU0IDI4LjEzNSAyOC4xMzUgNjguMDExIDM1LjkzOCA5Ny4wNTcgMTkuMDIxIDM5LjQyMy0yMi45NyAxNjMuNTU3IDQ5Ljk2OSAyOTUuODU4LTgyLjMyOSAxMzIuNDc0LTEzMi40NzcgNTkuMjczLTI1Ni4yNzcgODIuMzMxLTI5NS44NjEgMTYuOTIyLTI5LjA1IDkuMS02OC45MzEtMTkuMDIyLTk3LjA1NHptLTIyLjQwNSA3Mi44OTRjLTM4LjggNjYuNjA5IDQ1LjYgMTY1LjYzNS03NC44NDUgMjg2LjA4LTEyMC40NCAxMjAuNDQzLTIxOS40NzUgMzYuMDQ4LTI4Ni4wNzYgNzQuODQzLTIyLjY3OSAxMy4yMDctNjQuMDM1LTI3LjI0MS01MC40OTMtNTAuNDg4IDM4LjgtNjYuNjA5LTQ1LjYtMTY1LjYzNSA3NC44NDUtMjg2LjA4QzI0NS41NzMgNC43MDIgMzQ0LjYxNiA4OS4wODYgNDExLjIxOSA1MC4yOTJjMjIuNzMtMTMuMjQgNjQuMDA1IDI3LjI4OCA1MC40ODggNTAuNDkxem0tMTY5Ljg2MSA4LjczNmMxLjM3IDEwLjk2LTYuNDA0IDIwLjk1Ny0xNy4zNjUgMjIuMzI3LTU0Ljg0NiA2Ljg1NS0xMzUuNzc5IDg3Ljc4Ny0xNDIuNjM1IDE0Mi42MzUtMS4zNzMgMTAuOTg5LTExLjM5OSAxOC43MzQtMjIuMzI2IDE3LjM2NS0xMC45NjEtMS4zNy0xOC43MzUtMTEuMzY2LTE3LjM2NS0yMi4zMjYgOS4xNjItNzMuMjg2IDEwNC4xNjctMTY4LjIxNSAxNzcuMzY1LTE3Ny4zNjUgMTAuOTUzLTEuMzY4IDIwLjk1NiA2LjQwMyAyMi4zMjYgMTcuMzY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdMaWZlUmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTA0YzEzNi45NjcgMCAyNDgtMTExLjAzMyAyNDgtMjQ4UzM5Mi45NjcgOCAyNTYgOCA4IDExOS4wMzMgOCAyNTZzMTExLjAzMyAyNDggMjQ4IDI0OHptLTEwMy4zOTgtNzYuNzJsNTMuNDExLTUzLjQxMWMzMS44MDYgMTMuNTA2IDY4LjEyOCAxMy41MjIgOTkuOTc0IDBsNTMuNDExIDUzLjQxMWMtNjMuMjE3IDM4LjMxOS0xNDMuNTc5IDM4LjMxOS0yMDYuNzk2IDB6TTMzNiAyNTZjMCA0NC4xMTItMzUuODg4IDgwLTgwIDgwcy04MC0zNS44ODgtODAtODAgMzUuODg4LTgwIDgwLTgwIDgwIDM1Ljg4OCA4MCA4MHptOTEuMjggMTAzLjM5OGwtNTMuNDExLTUzLjQxMWMxMy41MDUtMzEuODA2IDEzLjUyMi02OC4xMjggMC05OS45NzRsNTMuNDExLTUzLjQxMWMzOC4zMTkgNjMuMjE3IDM4LjMxOSAxNDMuNTc5IDAgMjA2Ljc5NnpNMzU5LjM5NyA4NC43MmwtNTMuNDExIDUzLjQxMWMtMzEuODA2LTEzLjUwNS02OC4xMjgtMTMuNTIyLTk5Ljk3MyAwTDE1Mi42MDIgODQuNzJjNjMuMjE3LTM4LjMxOSAxNDMuNTc5LTM4LjMxOSAyMDYuNzk1IDB6TTg0LjcyIDE1Mi42MDJsNTMuNDExIDUzLjQxMWMtMTMuNTA2IDMxLjgwNi0xMy41MjIgNjguMTI4IDAgOTkuOTc0TDg0LjcyIDM1OS4zOThjLTM4LjMxOS02My4yMTctMzguMzE5LTE0My41NzkgMC0yMDYuNzk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdMaWdodGJ1bGIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM1MiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc2IDgwYy01Mi45NCAwLTk2IDQzLjA2LTk2IDk2IDAgOC44NCA3LjE2IDE2IDE2IDE2czE2LTcuMTYgMTYtMTZjMC0zNS4zIDI4LjcyLTY0IDY0LTY0IDguODQgMCAxNi03LjE2IDE2LTE2cy03LjE2LTE2LTE2LTE2ek05Ni4wNiA0NTkuMTdjMCAzLjE1LjkzIDYuMjIgMi42OCA4Ljg0bDI0LjUxIDM2Ljg0YzIuOTcgNC40NiA3Ljk3IDcuMTQgMTMuMzIgNy4xNGg3OC44NWM1LjM2IDAgMTAuMzYtMi42OCAxMy4zMi03LjE0bDI0LjUxLTM2Ljg0YzEuNzQtMi42MiAyLjY3LTUuNyAyLjY4LTguODRsLjA1LTQzLjE4SDk2LjAybC4wNCA0My4xOHpNMTc2IDBDNzMuNzIgMCAwIDgyLjk3IDAgMTc2YzAgNDQuMzcgMTYuNDUgODQuODUgNDMuNTYgMTE1Ljc4IDE2LjY0IDE4Ljk5IDQyLjc0IDU4LjggNTIuNDIgOTIuMTZ2LjA2aDQ4di0uMTJjLS4wMS00Ljc3LS43Mi05LjUxLTIuMTUtMTQuMDctNS41OS0xNy44MS0yMi44Mi02NC43Ny02Mi4xNy0xMDkuNjctMjAuNTQtMjMuNDMtMzEuNTItNTMuMTUtMzEuNjEtODQuMTQtLjItNzMuNjQgNTkuNjctMTI4IDEyNy45NS0xMjggNzAuNTggMCAxMjggNTcuNDIgMTI4IDEyOCAwIDMwLjk3LTExLjI0IDYwLjg1LTMxLjY1IDg0LjE0LTM5LjExIDQ0LjYxLTU2LjQyIDkxLjQ3LTYyLjEgMTA5LjQ2YTQ3LjUwNyA0Ny41MDcgMCAwIDAtMi4yMiAxNC4zdi4xaDQ4di0uMDVjOS42OC0zMy4zNyAzNS43OC03My4xOCA1Mi40Mi05Mi4xNkMzMzUuNTUgMjYwLjg1IDM1MiAyMjAuMzcgMzUyIDE3NiAzNTIgNzguOCAyNzMuMiAwIDE3NiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdMaXN0QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAzMkg0OEMyMS40OSAzMiAwIDUzLjQ5IDAgODB2MzUyYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDE2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWODBjMC0yNi41MS0yMS40OS00OC00OC00OHptLTYgNDAwSDU0YTYgNiAwIDAgMS02LTZWODZhNiA2IDAgMCAxIDYtNmg0MDRhNiA2IDAgMCAxIDYgNnYzNDBhNiA2IDAgMCAxLTYgNnptLTQyLTkydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMjA0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDIwMGM2LjYyNyAwIDEyIDUuMzczIDEyIDEyem0wLTk2djI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMjA0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDIwMGM2LjYyNyAwIDEyIDUuMzczIDEyIDEyem0wLTk2djI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMjA0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDIwMGM2LjYyNyAwIDEyIDUuMzczIDEyIDEyem0tMjUyIDEyYzAgMTkuODgyLTE2LjExOCAzNi0zNiAzNnMtMzYtMTYuMTE4LTM2LTM2IDE2LjExOC0zNiAzNi0zNiAzNiAxNi4xMTggMzYgMzZ6bTAgOTZjMCAxOS44ODItMTYuMTE4IDM2LTM2IDM2cy0zNi0xNi4xMTgtMzYtMzYgMTYuMTE4LTM2IDM2LTM2IDM2IDE2LjExOCAzNiAzNnptMCA5NmMwIDE5Ljg4Mi0xNi4xMTggMzYtMzYgMzZzLTM2LTE2LjExOC0zNi0zNiAxNi4xMTgtMzYgMzYtMzYgMzYgMTYuMTE4IDM2IDM2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdNYXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTYwLjAyIDMyYy0xLjk2IDAtMy45OC4zNy01Ljk2IDEuMTZMMzg0LjAxIDk2SDM4NEwyMTIgMzUuMjhBNjQuMjUyIDY0LjI1MiAwIDAgMCAxOTEuNzYgMzJjLTYuNjkgMC0xMy4zNyAxLjA1LTE5LjgxIDMuMTRMMjAuMTIgODcuOTVBMzIuMDA2IDMyLjAwNiAwIDAgMCAwIDExNy42NnYzNDYuMzJDMCA0NzMuMTcgNy41MyA0ODAgMTUuOTkgNDgwYzEuOTYgMCAzLjk3LS4zNyA1Ljk2LTEuMTZMMTkyIDQxNmwxNzIgNjAuNzFhNjMuOTggNjMuOTggMCAwIDAgNDAuMDUuMTVsMTUxLjgzLTUyLjgxQTMxLjk5NiAzMS45OTYgMCAwIDAgNTc2IDM5NC4zNFY0OC4wMmMwLTkuMTktNy41My0xNi4wMi0xNS45OC0xNi4wMnpNMjI0IDkwLjQybDEyOCA0NS4xOXYyODUuOTdsLTEyOC00NS4xOVY5MC40MnpNNDggNDE4LjA1VjEyOS4wN2wxMjgtNDQuNTN2Mjg2LjJsLS42NC4yM0w0OCA0MTguMDV6bTQ4MC0zNS4xM2wtMTI4IDQ0LjUzVjE0MS4yNmwuNjQtLjI0TDUyOCA5My45NXYyODguOTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ01laEJsYW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptLTgwLTI4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6bTE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTWVoUm9sbGluZ0V5ZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem04OC0zMDRjLTM5LjggMC03MiAzMi4yLTcyIDcyczMyLjIgNzIgNzIgNzIgNzItMzIuMiA3Mi03Mi0zMi4yLTcyLTcyLTcyem0wIDExMmMtMjIuMSAwLTQwLTE3LjktNDAtNDAgMC0xMy42IDcuMy0yNS4xIDE3LjctMzIuMy0xIDIuNi0xLjcgNS4zLTEuNyA4LjMgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTIuOS0uNy01LjctMS43LTguMyAxMC40IDcuMiAxNy43IDE4LjcgMTcuNyAzMi4zIDAgMjIuMS0xNy45IDQwLTQwIDQwem0tMTA0LTQwYzAtMzkuOC0zMi4yLTcyLTcyLTcycy03MiAzMi4yLTcyIDcyIDMyLjIgNzIgNzIgNzIgNzItMzIuMiA3Mi03MnptLTExMiAwYzAtMTMuNiA3LjMtMjUuMSAxNy43LTMyLjMtMSAyLjYtMS43IDUuMy0xLjcgOC4zIDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0yLjktLjctNS43LTEuNy04LjMgMTAuNCA3LjIgMTcuNyAxOC43IDE3LjcgMzIuMyAwIDIyLjEtMTcuOSA0MC00MCA0MHMtNDAtMTcuOS00MC00MHptMTkyIDEyOEgxODRjLTEzLjIgMC0yNCAxMC44LTI0IDI0czEwLjggMjQgMjQgMjRoMTI4YzEzLjIgMCAyNC0xMC44IDI0LTI0cy0xMC44LTI0LTI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdNZWggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem0tODAtMjE2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptMTYwLTY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnptOCAxNDRIMTYwYy0xMy4yIDAtMjQgMTAuOC0yNCAyNHMxMC44IDI0IDI0IDI0aDE3NmMxMy4yIDAgMjQtMTAuOCAyNC0yNHMtMTAuOC0yNC0yNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTWludXNTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTA4IDI4NGMtNi42IDAtMTItNS40LTEyLTEydi0zMmMwLTYuNiA1LjQtMTIgMTItMTJoMjMyYzYuNiAwIDEyIDUuNCAxMiAxMnYzMmMwIDYuNi01LjQgMTItMTIgMTJIMTA4ek00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS00OCAzNDZWODZjMC0zLjMtMi43LTYtNi02SDU0Yy0zLjMgMC02IDIuNy02IDZ2MzQwYzAgMy4zIDIuNyA2IDYgNmgzNDBjMy4zIDAgNi0yLjcgNi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdNb25leUJpbGxBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDE0NGMtNTMuMDIgMC05NiA1MC4xNC05NiAxMTIgMCA2MS44NSA0Mi45OCAxMTIgOTYgMTEyIDUzIDAgOTYtNTAuMTMgOTYtMTEyIDAtNjEuODYtNDIuOTgtMTEyLTk2LTExMnptNDAgMTY4YzAgNC40Mi0zLjU4IDgtOCA4aC02NGMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDE2di01NS40NGwtLjQ3LjMxYTcuOTkyIDcuOTkyIDAgMCAxLTExLjA5LTIuMjJsLTguODgtMTMuMzFhNy45OTIgNy45OTIgMCAwIDEgMi4yMi0xMS4wOWwxNS4zMy0xMC4yMmEyMy45OSAyMy45OSAwIDAgMSAxMy4zMS00LjAzSDMyOGM0LjQyIDAgOCAzLjU4IDggOHY4OGgxNmM0LjQyIDAgOCAzLjU4IDggOHYxNnpNNjA4IDY0SDMyQzE0LjMzIDY0IDAgNzguMzMgMCA5NnYzMjBjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg1NzZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlY5NmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyem0tMTYgMjcyYy0zNS4zNSAwLTY0IDI4LjY1LTY0IDY0SDExMmMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0VjE3NmMzNS4zNSAwIDY0LTI4LjY1IDY0LTY0aDQxNmMwIDM1LjM1IDI4LjY1IDY0IDY0IDY0djE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTW9vbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzkuMTM1IDUxMmM3OC43NTYgMCAxNTAuOTgyLTM1LjgwNCAxOTguODQ0LTk0Ljc3NSAyOC4yNy0zNC44MzEtMi41NTgtODUuNzIyLTQ2LjI0OS03Ny40MDEtODIuMzQ4IDE1LjY4My0xNTguMjcyLTQ3LjI2OC0xNTguMjcyLTEzMC43OTIgMC00OC40MjQgMjYuMDYtOTIuMjkyIDY3LjQzNC0xMTUuODM2IDM4Ljc0NS0yMi4wNSAyOC45OTktODAuNzg4LTE1LjAyMi04OC45MTlBMjU3LjkzNiAyNTcuOTM2IDAgMCAwIDI3OS4xMzUgMGMtMTQxLjM2IDAtMjU2IDExNC41NzUtMjU2IDI1NiAwIDE0MS4zNiAxMTQuNTc2IDI1NiAyNTYgMjU2em0wLTQ2NGMxMi45ODUgMCAyNS42ODkgMS4yMDEgMzguMDE2IDMuNDc4LTU0Ljc2IDMxLjE2My05MS42OTMgOTAuMDQyLTkxLjY5MyAxNTcuNTU0IDAgMTEzLjg0OCAxMDMuNjQxIDE5OS4yIDIxNS4yNTIgMTc3Ljk0NEM0MDIuNTc0IDQzMy45NjQgMzQ0LjM2NiA0NjQgMjc5LjEzNSA0NjRjLTExNC44NzUgMC0yMDgtOTMuMTI1LTIwOC0yMDhzOTMuMTI1LTIwOCAyMDgtMjA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdOZXdzcGFwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTUyIDY0SDExMmMtMjAuODU4IDAtMzguNjQzIDEzLjM3Ny00NS4yNDggMzJIMjRjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYyNzJjMCAzMC45MjggMjUuMDcyIDU2IDU2IDU2aDQ5NmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWODhjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0ek00OCAzOTJWMTQ0aDE2djI0OGMwIDQuNDExLTMuNTg5IDgtOCA4cy04LTMuNTg5LTgtOHptNDgwIDhIMTExLjQyMmMuMzc0LTIuNjE0LjU3OC01LjI4My41NzgtOFYxMTJoNDE2djI4OHpNMTcyIDI4MGgxMzZjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtOTZjMC02LjYyNy01LjM3My0xMi0xMi0xMkgxNzJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2OTZjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMnptMjgtODBoODB2NDBoLTgwdi00MHptLTQwIDE0MHYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxMzZjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDE3MmMtNi42MjcgMC0xMi01LjM3My0xMi0xMnptMTkyIDB2LTI0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTA0YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkgzNjRjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6bTAtMTQ0di0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDEwNGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMzY0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEyem0wIDcydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDEwNGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMzY0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdPYmplY3RHcm91cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDAgMTI4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJWNDRjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNzJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MTJIOTZWNDRjMC02LjYyNy01LjM3My0xMi0xMi0xMkgxMkM1LjM3MyAzMiAwIDM3LjM3MyAwIDQ0djcyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTJ2MjU2SDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjcyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNzJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtMTJoMzIwdjEyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNzJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNzJjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtMTJWMTI4aDEyem0tNTItNjRoMzJ2MzJoLTMyVjY0ek0zMiA2NGgzMnYzMkgzMlY2NHptMzIgMzg0SDMydi0zMmgzMnYzMnptNDE2IDBoLTMydi0zMmgzMnYzMnptLTQwLTY0aC0xMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYxMkg5NnYtMTJjMC02LjYyNy01LjM3My0xMi0xMi0xMkg3MlYxMjhoMTJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtMTJoMzIwdjEyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTJ2MjU2em0tMzYtMTkyaC04NHYtNTJjMC02LjYyOC01LjM3My0xMi0xMi0xMkgxMDhjLTYuNjI3IDAtMTIgNS4zNzItMTIgMTJ2MTY4YzAgNi42MjggNS4zNzMgMTIgMTIgMTJoODR2NTJjMCA2LjYyOCA1LjM3MyAxMiAxMiAxMmgyMDBjNi42MjcgMCAxMi01LjM3MiAxMi0xMlYyMDRjMC02LjYyOC01LjM3My0xMi0xMi0xMnptLTI2OC0yNGgxNDR2MTEySDEzNlYxNjh6bTI0MCAxNzZIMjMydi0yNGg3NmM2LjYyNyAwIDEyLTUuMzcyIDEyLTEydi03Nmg1NnYxMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ09iamVjdFVuZ3JvdXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTY0IDIyNGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi03MmMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC03MmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYxMmgtODh2LTI0aDEyYzYuNjI3IDAgMTItNS4zNzMgMTItMTJWNDRjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNzJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MTJIOTZWNDRjMC02LjYyNy01LjM3My0xMi0xMi0xMkgxMkM1LjM3MyAzMiAwIDM3LjM3MyAwIDQ0djcyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTJ2MTYwSDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjcyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNzJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtMTJoODh2MjRoLTEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjcyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNzJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtMTJoMjI0djEyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNzJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNzJjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtMTJWMjI0aDEyek0zNTIgNjRoMzJ2MzJoLTMyVjY0em0wIDI1NmgzMnYzMmgtMzJ2LTMyek02NCAzNTJIMzJ2LTMyaDMydjMyem0wLTI1NkgzMlY2NGgzMnYzMnptMzIgMjE2di0xMmMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDcyVjEyOGgxMmM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi0xMmgyMjR2MTJjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxMnYxNjBoLTEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjEySDk2em0xMjggMTM2aC0zMnYtMzJoMzJ2MzJ6bTI4MC02NGgtMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MTJIMjU2di0xMmMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0xMnYtMjRoODh2MTJjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg3MmM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi03MmMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0xMnYtODhoODh2MTJjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxMnYxNjB6bTQwIDY0aC0zMnYtMzJoMzJ2MzJ6bTAtMjU2aC0zMnYtMzJoMzJ2MzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1BhcGVyUGxhbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQwIDYuNUwyNCAyNDYuNGMtMzQuNCAxOS45LTMxLjEgNzAuOCA1LjcgODUuOUwxNDQgMzc5LjZWNDY0YzAgNDYuNCA1OS4yIDY1LjUgODYuNiAyOC42bDQzLjgtNTkuMSAxMTEuOSA0Ni4yYzUuOSAyLjQgMTIuMSAzLjYgMTguMyAzLjYgOC4yIDAgMTYuMy0yLjEgMjMuNi02LjIgMTIuOC03LjIgMjEuNi0yMCAyMy45LTM0LjVsNTkuNC0zODcuMmM2LjEtNDAuMS0zNi45LTY4LjgtNzEuNS00OC45ek0xOTIgNDY0di02NC42bDM2LjYgMTUuMUwxOTIgNDY0em0yMTIuNi0yOC43bC0xNTMuOC02My41TDM5MSAxNjkuNWMxMC43LTE1LjUtOS41LTMzLjUtMjMuNy0yMS4yTDE1NS44IDMzMi42IDQ4IDI4OCA0NjQgNDhsLTU5LjQgMzg3LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1BhdXNlQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTAgNDQ4Yy0xMTAuNSAwLTIwMC04OS41LTIwMC0yMDBTMTQ1LjUgNTYgMjU2IDU2czIwMCA4OS41IDIwMCAyMDAtODkuNSAyMDAtMjAwIDIwMHptOTYtMjgwdjE2MGMwIDguOC03LjIgMTYtMTYgMTZoLTQ4Yy04LjggMC0xNi03LjItMTYtMTZWMTc2YzAtOC44IDcuMi0xNiAxNi0xNmg0OGM4LjggMCAxNiA3LjIgMTYgMTZ6bS0xMTIgMHYxNjBjMCA4LjgtNy4yIDE2LTE2IDE2aC00OGMtOC44IDAtMTYtNy4yLTE2LTE2VjE3NmMwLTguOCA3LjItMTYgMTYtMTZoNDhjOC44IDAgMTYgNy4yIDE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdQbGF5Q2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3MS43IDIzOGwtMTc2LTEwN2MtMTUuOC04LjgtMzUuNyAyLjUtMzUuNyAyMXYyMDhjMCAxOC40IDE5LjggMjkuOCAzNS43IDIxbDE3Ni0xMDFjMTYuNC05LjEgMTYuNC0zMi44IDAtNDJ6TTUwNCAyNTZDNTA0IDExOSAzOTMgOCAyNTYgOFM4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4em0tNDQ4IDBjMC0xMTAuNSA4OS41LTIwMCAyMDAtMjAwczIwMCA4OS41IDIwMCAyMDAtODkuNSAyMDAtMjAwIDIwMFM1NiAzNjYuNSA1NiAyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1BsdXNTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyIDI0MHYzMmMwIDYuNi01LjQgMTItMTIgMTJoLTg4djg4YzAgNi42LTUuNCAxMi0xMiAxMmgtMzJjLTYuNiAwLTEyLTUuNC0xMi0xMnYtODhoLTg4Yy02LjYgMC0xMi01LjQtMTItMTJ2LTMyYzAtNi42IDUuNC0xMiAxMi0xMmg4OHYtODhjMC02LjYgNS40LTEyIDEyLTEyaDMyYzYuNiAwIDEyIDUuNCAxMiAxMnY4OGg4OGM2LjYgMCAxMiA1LjQgMTIgMTJ6bTk2LTE2MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDM1MmMyNi41IDAgNDggMjEuNSA0OCA0OHptLTQ4IDM0NlY4NmMwLTMuMy0yLjctNi02LTZINTRjLTMuMyAwLTYgMi43LTYgNnYzNDBjMCAzLjMgMi43IDYgNiA2aDM0MGMzLjMgMCA2LTIuNyA2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1F1ZXN0aW9uQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOS4wNDMgOCA4IDExOS4wODMgOCAyNTZjMCAxMzYuOTk3IDExMS4wNDMgMjQ4IDI0OCAyNDhzMjQ4LTExMS4wMDMgMjQ4LTI0OEM1MDQgMTE5LjA4MyAzOTIuOTU3IDggMjU2IDh6bTAgNDQ4Yy0xMTAuNTMyIDAtMjAwLTg5LjQzMS0yMDAtMjAwIDAtMTEwLjQ5NSA4OS40NzItMjAwIDIwMC0yMDAgMTEwLjQ5MSAwIDIwMCA4OS40NzEgMjAwIDIwMCAwIDExMC41My04OS40MzEgMjAwLTIwMCAyMDB6bTEwNy4yNDQtMjU1LjJjMCA2Ny4wNTItNzIuNDIxIDY4LjA4NC03Mi40MjEgOTIuODYzVjMwMGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC00NS42NDdjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTguNjU5YzAtMzUuNzQ1IDI3LjEtNTAuMDM0IDQ3LjU3OS02MS41MTYgMTcuNTYxLTkuODQ1IDI4LjMyNC0xNi41NDEgMjguMzI0LTI5LjU3OSAwLTE3LjI0Ni0yMS45OTktMjguNjkzLTM5Ljc4NC0yOC42OTMtMjMuMTg5IDAtMzMuODk0IDEwLjk3Ny00OC45NDIgMjkuOTY5LTQuMDU3IDUuMTItMTEuNDYgNi4wNzEtMTYuNjY2IDIuMTI0bC0yNy44MjQtMjEuMDk4Yy01LjEwNy0zLjg3Mi02LjI1MS0xMS4wNjYtMi42NDQtMTYuMzYzQzE4NC44NDYgMTMxLjQ5MSAyMTQuOTQgMTEyIDI2MS43OTQgMTEyYzQ5LjA3MSAwIDEwMS40NSAzOC4zMDQgMTAxLjQ1IDg4Ljh6TTI5OCAzNjhjMCAyMy4xNTktMTguODQxIDQyLTQyIDQycy00Mi0xOC44NDEtNDItNDIgMTguODQxLTQyIDQyLTQyIDQyIDE4Ljg0MSA0MiA0MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnUmVnaXN0ZXJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkuMDMzIDggOCAxMTkuMDMzIDggMjU2czExMS4wMzMgMjQ4IDI0OCAyNDggMjQ4LTExMS4wMzMgMjQ4LTI0OFMzOTIuOTY3IDggMjU2IDh6bTAgNDQ4Yy0xMTAuNTMyIDAtMjAwLTg5LjQ1MS0yMDAtMjAwIDAtMTEwLjUzMSA4OS40NTEtMjAwIDIwMC0yMDAgMTEwLjUzMiAwIDIwMCA4OS40NTEgMjAwIDIwMCAwIDExMC41MzItODkuNDUxIDIwMC0yMDAgMjAwem0xMTAuNDQyLTgxLjc5MWMtNTMuMDQ2LTk2LjI4NC01MC4yNS05MS40NjgtNTMuMjcxLTk2LjA4NSAyNC4yNjctMTMuODc5IDM5LjQ4Mi00MS41NjMgMzkuNDgyLTczLjE3NiAwLTUyLjUwMy0zMC4yNDctODUuMjUyLTEwMS40OTgtODUuMjUyaC03OC42NjdjLTYuNjE3IDAtMTIgNS4zODMtMTIgMTJWMzgwYzAgNi42MTcgNS4zODMgMTIgMTIgMTJoMzguNTY4YzYuNjE3IDAgMTItNS4zODMgMTItMTJ2LTgzLjY2M2gzMS45NThsNDcuNTE1IDg5LjMwM2ExMS45OCAxMS45OCAwIDAgMCAxMC41OTMgNi4zNmg0Mi44MWM5LjE0IDAgMTQuOTE0LTkuNzk5IDEwLjUxLTE3Ljc5MXpNMjU2LjkzMyAyMzkuOTA2aC0zMy44NzV2LTY0LjE0aDI3LjM3N2MzMi40MTcgMCAzOC45MjkgMTIuMTMzIDM4LjkyOSAzMS43MDktLjAwMSAyMC45MTMtMTEuNTE4IDMyLjQzMS0zMi40MzEgMzIuNDMxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdTYWRDcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMTQ0IDM4Ni40VjI4MGMwLTEzLjItMTAuOC0yNC0yNC0yNHMtMjQgMTAuOC0yNCAyNHYxNTEuNEMzMTUuNSA0NDcgMjgyLjggNDU2IDI0OCA0NTZzLTY3LjUtOS05Ni0yNC42VjI4MGMwLTEzLjItMTAuOC0yNC0yNC0yNHMtMjQgMTAuOC0yNCAyNHYxMTQuNGMtMzQuNi0zNi01Ni04NC43LTU2LTEzOC40IDAtMTEwLjMgODkuNy0yMDAgMjAwLTIwMHMyMDAgODkuNyAyMDAgMjAwYzAgNTMuNy0yMS40IDEwMi41LTU2IDEzOC40ek0yMDUuOCAyMzQuNWM0LjQtMi40IDYuOS03LjQgNi4xLTEyLjQtNC0yNS4yLTM0LjItNDIuMS01OS44LTQyLjFzLTU1LjkgMTYuOS01OS44IDQyLjFjLS44IDUgMS43IDEwIDYuMSAxMi40IDQuNCAyLjQgOS45IDEuOCAxMy43LTEuNmw5LjUtOC41YzE0LjgtMTMuMiA0Ni4yLTEzLjIgNjEgMGw5LjUgOC41YzIuNSAyLjMgNy45IDQuOCAxMy43IDEuNnpNMzQ0IDE4MGMtMjUuNyAwLTU1LjkgMTYuOS01OS44IDQyLjEtLjggNSAxLjcgMTAgNi4xIDEyLjQgNC41IDIuNCA5LjkgMS44IDEzLjctMS42bDkuNS04LjVjMTQuOC0xMy4yIDQ2LjItMTMuMiA2MSAwbDkuNSA4LjVjMi41IDIuMiA4IDQuNyAxMy43IDEuNiA0LjQtMi40IDYuOS03LjQgNi4xLTEyLjQtMy45LTI1LjItMzQuMS00Mi4xLTU5LjgtNDIuMXptLTk2IDkyYy0zMC45IDAtNTYgMjguNy01NiA2NHMyNS4xIDY0IDU2IDY0IDU2LTI4LjcgNTYtNjQtMjUuMS02NC01Ni02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU2FkVGVhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bTgtMTUyYy0xMy4yIDAtMjQgMTAuOC0yNCAyNHMxMC44IDI0IDI0IDI0YzIzLjggMCA0Ni4zIDEwLjUgNjEuNiAyOC44IDguMSA5LjggMjMuMiAxMS45IDMzLjggMy4xIDEwLjItOC41IDExLjYtMjMuNiAzLjEtMzMuOEMzMzAgMzIwLjggMjk0LjEgMzA0IDI1NiAzMDR6bS04OC02NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6bTE2MC02NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6bS0xNjUuNiA5OC44QzE1MSAyOTAuMSAxMjYgMzI1LjQgMTI2IDM0Mi45YzAgMjIuNyAxOC44IDQxLjEgNDIgNDEuMXM0Mi0xOC40IDQyLTQxLjFjMC0xNy41LTI1LTUyLjgtMzYuNC02OC4xLTIuOC0zLjctOC40LTMuNy0xMS4yIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1NhdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMzLjk0MSAxMjkuOTQxbC04My44ODItODMuODgyQTQ4IDQ4IDAgMCAwIDMxNi4xMTggMzJINDhDMjEuNDkgMzIgMCA1My40OSAwIDgwdjM1MmMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDM1MmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjE2My44ODJhNDggNDggMCAwIDAtMTQuMDU5LTMzLjk0MXpNMjcyIDgwdjgwSDE0NFY4MGgxMjh6bTEyMiAzNTJINTRhNiA2IDAgMCAxLTYtNlY4NmE2IDYgMCAwIDEgNi02aDQydjEwNGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTc2YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFY4My44ODJsNzguMjQzIDc4LjI0M2E2IDYgMCAwIDEgMS43NTcgNC4yNDNWNDI2YTYgNiAwIDAgMS02IDZ6TTIyNCAyMzJjLTQ4LjUyMyAwLTg4IDM5LjQ3Ny04OCA4OHMzOS40NzcgODggODggODggODgtMzkuNDc3IDg4LTg4LTM5LjQ3Ny04OC04OC04OHptMCAxMjhjLTIyLjA1NiAwLTQwLTE3Ljk0NC00MC00MHMxNy45NDQtNDAgNDAtNDAgNDAgMTcuOTQ0IDQwIDQwLTE3Ljk0NCA0MC00MCA0MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU2hhcmVTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTYxLjkzOCAxNTguMDZMNDE3Ljk0IDE0LjA5MkMzODcuOTI2LTE1LjkyMiAzMzYgNS4wOTcgMzM2IDQ4LjAzMnY1Ny4xOThjLTQyLjQ1IDEuODgtODQuMDMgNi41NS0xMjAuNzYgMTcuOTktMzUuMTcgMTAuOTUtNjMuMDcgMjcuNTgtODIuOTEgNDkuNDJDMTA4LjIyIDE5OS4yIDk2IDIzMi42IDk2IDI3MS45NGMwIDYxLjY5NyAzMy4xNzggMTEyLjQ1NSA4NC44NyAxNDQuNzYgMzcuNTQ2IDIzLjUwOCA4NS4yNDgtMTIuNjUxIDcxLjAyLTU1Ljc0LTE1LjUxNS00Ny4xMTktMTcuMTU2LTcwLjkyMyA4NC4xMS03OC43NlYzMzZjMCA0Mi45OTMgNTEuOTY4IDYzLjkxMyA4MS45NCAzMy45NGwxNDMuOTk4LTE0NGMxOC43NS0xOC43NCAxOC43NS00OS4xNCAwLTY3Ljg4ek0zODQgMzM2VjIzMi4xNkMyNTUuMzA5IDIzNC4wODIgMTY2LjQ5MiAyNTUuMzUgMjA2LjMxIDM3NiAxNzYuNzkgMzU3LjU1IDE0NCAzMjQuMDggMTQ0IDI3MS45NGMwLTEwOS4zMzQgMTI5LjE0LTExOC45NDcgMjQwLTExOS44NVY0OGwxNDQgMTQ0LTE0NCAxNDR6bTI0Ljc0IDg0LjQ5M2E4Mi42NTggODIuNjU4IDAgMCAwIDIwLjk3NC05LjMwM2M3Ljk3Ni00Ljk1MiAxOC4yODYuODI2IDE4LjI4NiAxMC4yMTRWNDY0YzAgMjYuNTEtMjEuNDkgNDgtNDggNDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWMTEyYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoMTMyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2NC40ODZjMCA0LjkxNy0yLjk4NyA5LjM2OS03LjU2OSAxMS4xNTItMTMuNzAyIDUuMzMxLTI2LjM5NiAxMS41MzctMzguMDUgMTguNTg1YTEyLjEzOCAxMi4xMzggMCAwIDEtNi4yOCAxLjc3N0g1NGE2IDYgMCAwIDAtNiA2djM0MGE2IDYgMCAwIDAgNiA2aDM0MGE2IDYgMCAwIDAgNi02di0yNS45NjZjMC01LjM3IDMuNTc5LTEwLjA1OSA4Ljc0LTExLjU0MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU21pbGVCZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptODQtMTQzLjRjLTIwLjggMjUtNTEuNSAzOS40LTg0IDM5LjRzLTYzLjItMTQuMy04NC0zOS40Yy04LjUtMTAuMi0yMy42LTExLjUtMzMuOC0zLjEtMTAuMiA4LjUtMTEuNSAyMy42LTMuMSAzMy44IDMwIDM2IDc0LjEgNTYuNiAxMjAuOSA1Ni42czkwLjktMjAuNiAxMjAuOS01Ni42YzguNS0xMC4yIDcuMS0yNS4zLTMuMS0zMy44LTEwLjItOC40LTI1LjMtNy4xLTMzLjggMy4xek0xMzYuNSAyMTFjNy43LTEzLjcgMTkuMi0yMS42IDMxLjUtMjEuNnMyMy44IDcuOSAzMS41IDIxLjZsOS41IDE3YzIuMSAzLjcgNi4yIDQuNyA5LjMgMy43IDMuNi0xLjEgNi00LjUgNS43LTguMy0zLjMtNDIuMS0zMi4yLTcxLjQtNTYtNzEuNHMtNTIuNyAyOS4zLTU2IDcxLjRjLS4zIDMuNyAyLjEgNy4yIDUuNyA4LjMgMy40IDEuMSA3LjQtLjUgOS4zLTMuN2w5LjUtMTd6TTMyOCAxNTJjLTIzLjggMC01Mi43IDI5LjMtNTYgNzEuNC0uMyAzLjcgMi4xIDcuMiA1LjcgOC4zIDMuNSAxLjEgNy40LS41IDkuMy0zLjdsOS41LTE3YzcuNy0xMy43IDE5LjItMjEuNiAzMS41LTIxLjZzMjMuOCA3LjkgMzEuNSAyMS42bDkuNSAxN2MyLjEgMy43IDYuMiA0LjcgOS4zIDMuNyAzLjYtMS4xIDYtNC41IDUuNy04LjMtMy4zLTQyLjEtMzIuMi03MS40LTU2LTcxLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1NtaWxlV2luayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bTExNy44LTE0Ni40Yy0xMC4yLTguNS0yNS4zLTcuMS0zMy44IDMuMS0yMC44IDI1LTUxLjUgMzkuNC04NCAzOS40cy02My4yLTE0LjMtODQtMzkuNGMtOC41LTEwLjItMjMuNy0xMS41LTMzLjgtMy4xLTEwLjIgOC41LTExLjUgMjMuNi0zLjEgMzMuOCAzMCAzNiA3NC4xIDU2LjYgMTIwLjkgNTYuNnM5MC45LTIwLjYgMTIwLjktNTYuNmM4LjUtMTAuMiA3LjEtMjUuMy0zLjEtMzMuOHpNMTY4IDI0MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6bTE2MC02MGMtMjUuNyAwLTU1LjkgMTYuOS01OS45IDQyLjEtMS43IDExLjIgMTEuNSAxOC4yIDE5LjggMTAuOGw5LjUtOC41YzE0LjgtMTMuMiA0Ni4yLTEzLjIgNjEgMGw5LjUgOC41YzguNSA3LjQgMjEuNi4zIDE5LjgtMTAuOC0zLjgtMjUuMi0zNC00Mi4xLTU5LjctNDIuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU21pbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem0tODAtMjE2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyem00IDcyLjZjLTIwLjggMjUtNTEuNSAzOS40LTg0IDM5LjRzLTYzLjItMTQuMy04NC0zOS40Yy04LjUtMTAuMi0yMy43LTExLjUtMzMuOC0zLjEtMTAuMiA4LjUtMTEuNSAyMy42LTMuMSAzMy44IDMwIDM2IDc0LjEgNTYuNiAxMjAuOSA1Ni42czkwLjktMjAuNiAxMjAuOS01Ni42YzguNS0xMC4yIDcuMS0yNS4zLTMuMS0zMy44LTEwLjEtOC40LTI1LjMtNy4xLTMzLjggMy4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdTbm93Zmxha2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQwLjEgMzU1LjJsLTM5LjItMjMgMzQuMS05LjNjOC40LTIuMyAxMy40LTExLjEgMTEuMS0xOS42bC00LjEtMTUuNWMtMi4yLTguNS0xMC45LTEzLjYtMTkuMy0xMS4zTDM0MyAyOTguMiAyNzEuMiAyNTZsNzEuOS00Mi4yIDc5LjcgMjEuN2M4LjQgMi4zIDE3LTIuOCAxOS4zLTExLjNsNC4xLTE1LjVjMi4yLTguNS0yLjctMTcuMy0xMS4xLTE5LjZsLTM0LjEtOS4zIDM5LjItMjNjNy41LTQuNCAxMC4xLTE0LjIgNS44LTIxLjlsLTcuOS0xMy45Yy00LjMtNy43LTE0LTEwLjMtMjEuNS01LjlsLTM5LjIgMjMgOS4xLTM0LjdjMi4yLTguNS0yLjctMTcuMy0xMS4xLTE5LjZsLTE1LjItNC4xYy04LjQtMi4zLTE3IDIuOC0xOS4zIDExLjNsLTIxLjMgODEtNzEuOSA0Mi4ydi04NC41TDMwNiA3MC40YzYuMS02LjIgNi4xLTE2LjQgMC0yMi42bC0xMS4xLTExLjNjLTYuMS02LjItMTYuMS02LjItMjIuMiAwbC0yNC45IDI1LjRWMTZjMC04LjgtNy0xNi0xNS43LTE2aC0xNS43Yy04LjcgMC0xNS43IDcuMi0xNS43IDE2djQ2LjFsLTI0LjktMjUuNGMtNi4xLTYuMi0xNi4xLTYuMi0yMi4yIDBMMTQyLjEgNDhjLTYuMSA2LjItNi4xIDE2LjQgMCAyMi42bDU4LjMgNTkuM3Y4NC41bC03MS45LTQyLjItMjEuMy04MWMtMi4yLTguNS0xMC45LTEzLjYtMTkuMy0xMS4zTDcyLjcgODRjLTguNCAyLjMtMTMuNCAxMS4xLTExLjEgMTkuNmw5LjEgMzQuNy0zOS4yLTIzYy03LjUtNC40LTE3LjEtMS44LTIxLjUgNS45bC03LjkgMTMuOWMtNC4zIDcuNy0xLjggMTcuNCA1LjggMjEuOWwzOS4yIDIzLTM0LjEgOS4xYy04LjQgMi4zLTEzLjQgMTEuMS0xMS4xIDE5LjZMNiAyMjQuMmMyLjIgOC41IDEwLjkgMTMuNiAxOS4zIDExLjNsNzkuNy0yMS43IDcxLjkgNDIuMi03MS45IDQyLjItNzkuNy0yMS43Yy04LjQtMi4zLTE3IDIuOC0xOS4zIDExLjNsLTQuMSAxNS41Yy0yLjIgOC41IDIuNyAxNy4zIDExLjEgMTkuNmwzNC4xIDkuMy0zOS4yIDIzYy03LjUgNC40LTEwLjEgMTQuMi01LjggMjEuOUwxMCAzOTFjNC4zIDcuNyAxNCAxMC4zIDIxLjUgNS45bDM5LjItMjMtOS4xIDM0LjdjLTIuMiA4LjUgMi43IDE3LjMgMTEuMSAxOS42bDE1LjIgNC4xYzguNCAyLjMgMTctMi44IDE5LjMtMTEuM2wyMS4zLTgxIDcxLjktNDIuMnY4NC41bC01OC4zIDU5LjNjLTYuMSA2LjItNi4xIDE2LjQgMCAyMi42bDExLjEgMTEuM2M2LjEgNi4yIDE2LjEgNi4yIDIyLjIgMGwyNC45LTI1LjRWNDk2YzAgOC44IDcgMTYgMTUuNyAxNmgxNS43YzguNyAwIDE1LjctNy4yIDE1LjctMTZ2LTQ2LjFsMjQuOSAyNS40YzYuMSA2LjIgMTYuMSA2LjIgMjIuMiAwbDExLjEtMTEuM2M2LjEtNi4yIDYuMS0xNi40IDAtMjIuNmwtNTguMy01OS4zdi04NC41bDcxLjkgNDIuMiAyMS4zIDgxYzIuMiA4LjUgMTAuOSAxMy42IDE5LjMgMTEuM0wzNzUgNDI4YzguNC0yLjMgMTMuNC0xMS4xIDExLjEtMTkuNmwtOS4xLTM0LjcgMzkuMiAyM2M3LjUgNC40IDE3LjEgMS44IDIxLjUtNS45bDcuOS0xMy45YzQuNi03LjUgMi4xLTE3LjMtNS41LTIxLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1NxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tNiA0MDBINTRjLTMuMyAwLTYtMi43LTYtNlY4NmMwLTMuMyAyLjctNiA2LTZoMzQwYzMuMyAwIDYgMi43IDYgNnYzNDBjMCAzLjMtMi43IDYtNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdTdGFySGFsZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMzg1LjNsLTEyNC4zIDY1LjQgMjMuNy0xMzguNC0xMDAuNi05OCAxMzktMjAuMiA2Mi4yLTEyNlYwYy0xMS40IDAtMjIuOCA1LjktMjguNyAxNy44TDE5NCAxNTAuMiA0Ny45IDE3MS40Yy0yNi4yIDMuOC0zNi43IDM2LjEtMTcuNyA1NC42bDEwNS43IDEwMy0yNSAxNDUuNWMtNC41IDI2LjEgMjMgNDYgNDYuNCAzMy43TDI4OCA0MzkuNnYtNTQuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3RhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjguMSAxNzEuNUwzODIgMTUwLjIgMzE2LjcgMTcuOGMtMTEuNy0yMy42LTQ1LjYtMjMuOS01Ny40IDBMMTk0IDE1MC4yIDQ3LjkgMTcxLjVjLTI2LjIgMy44LTM2LjcgMzYuMS0xNy43IDU0LjZsMTA1LjcgMTAzLTI1IDE0NS41Yy00LjUgMjYuMyAyMy4yIDQ2IDQ2LjQgMzMuN0wyODggNDM5LjZsMTMwLjcgNjguN2MyMy4yIDEyLjIgNTAuOS03LjQgNDYuNC0zMy43bC0yNS0xNDUuNSAxMDUuNy0xMDNjMTktMTguNSA4LjUtNTAuOC0xNy43LTU0LjZ6TTM4OC42IDMxMi4zbDIzLjcgMTM4LjRMMjg4IDM4NS40bC0xMjQuMyA2NS4zIDIzLjctMTM4LjQtMTAwLjYtOTggMTM5LTIwLjIgNjIuMi0xMjYgNjIuMiAxMjYgMTM5IDIwLjItMTAwLjYgOTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1N0aWNreU5vdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDM0OC4xMDZWODBjMC0yNi41MS0yMS40OS00OC00OC00OEg0OEMyMS40OSAzMiAwIDUzLjQ5IDAgODB2MzUxLjk4OGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDI2OC4xMThhNDggNDggMCAwIDAgMzMuOTQxLTE0LjA1OWw4My44ODItODMuODgyQTQ4IDQ4IDAgMCAwIDQ0OCAzNDguMTA2em0tMTI4IDgwdi03Ni4xMThoNzYuMTE4TDMyMCA0MjguMTA2ek00MDAgODB2MjIzLjk4OEgyOTZjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYxMDRINDhWODBoMzUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdTdG9wQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNCAyNTZDNTA0IDExOSAzOTMgOCAyNTYgOFM4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4em0tNDQ4IDBjMC0xMTAuNSA4OS41LTIwMCAyMDAtMjAwczIwMCA4OS41IDIwMCAyMDAtODkuNSAyMDAtMjAwIDIwMFM1NiAzNjYuNSA1NiAyNTZ6bTI5Ni04MHYxNjBjMCA4LjgtNy4yIDE2LTE2IDE2SDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2VjE3NmMwLTguOCA3LjItMTYgMTYtMTZoMTYwYzguOCAwIDE2IDcuMiAxNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3VuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NC4yIDIyMS45bC01OS44LTQwLjUgMTMuNy03MWMyLjYtMTMuMi0xLjYtMjYuOC0xMS4xLTM2LjQtOS42LTkuNS0yMy4yLTEzLjctMzYuMi0xMS4xbC03MC45IDEzLjctNDAuNC01OS45Yy0xNS4xLTIyLjMtNTEuOS0yMi4zLTY3IDBsLTQwLjQgNTkuOS03MC44LTEzLjdDOTggNjAuNCA4NC41IDY0LjUgNzUgNzQuMWMtOS41IDkuNi0xMy43IDIzLjEtMTEuMSAzNi4zbDEzLjcgNzEtNTkuOCA0MC41QzYuNiAyMjkuNSAwIDI0MiAwIDI1NS41czYuNyAyNiAxNy44IDMzLjVsNTkuOCA0MC41LTEzLjcgNzFjLTIuNiAxMy4yIDEuNiAyNi44IDExLjEgMzYuMyA5LjUgOS41IDIyLjkgMTMuNyAzNi4zIDExLjFsNzAuOC0xMy43IDQwLjQgNTkuOUMyMzAgNTA1LjMgMjQyLjYgNTEyIDI1NiA1MTJzMjYtNi43IDMzLjUtMTcuOGw0MC40LTU5LjkgNzAuOSAxMy43YzEzLjQgMi43IDI2LjgtMS42IDM2LjMtMTEuMSA5LjUtOS41IDEzLjYtMjMuMSAxMS4xLTM2LjNsLTEzLjctNzEgNTkuOC00MC41YzExLjEtNy41IDE3LjgtMjAuMSAxNy44LTMzLjUtLjEtMTMuNi02LjctMjYuMS0xNy45LTMzLjd6bS0xMTIuOSA4NS42bDE3LjYgOTEuMi05MS0xNy42TDI1NiA0NThsLTUxLjktNzctOTAuOSAxNy42IDE3LjYtOTEuMi03Ni44LTUyIDc2LjgtNTItMTcuNi05MS4yIDkxIDE3LjZMMjU2IDUzbDUxLjkgNzYuOSA5MS0xNy42LTE3LjYgOTEuMSA3Ni44IDUyLTc2LjggNTIuMXpNMjU2IDE1MmMtNTcuMyAwLTEwNCA0Ni43LTEwNCAxMDRzNDYuNyAxMDQgMTA0IDEwNCAxMDQtNDYuNyAxMDQtMTA0LTQ2LjctMTA0LTEwNC0xMDR6bTAgMTYwYy0zMC45IDAtNTYtMjUuMS01Ni01NnMyNS4xLTU2IDU2LTU2IDU2IDI1LjEgNTYgNTYtMjUuMSA1Ni01NiA1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3VycHJpc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem0wLTE3NmMtMzUuMyAwLTY0IDI4LjctNjQgNjRzMjguNyA2NCA2NCA2NCA2NC0yOC43IDY0LTY0LTI4LjctNjQtNjQtNjR6bS00OC03MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzJ6bTEyOC0zMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1RodW1ic0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY2LjI3IDIyNS4zMWM0LjY3NC0yMi42NDcuODY0LTQ0LjUzOC04Ljk5LTYyLjk5IDIuOTU4LTIzLjg2OC00LjAyMS00OC41NjUtMTcuMzQtNjYuOTlDNDM4Ljk4NiAzOS40MjMgNDA0LjExNyAwIDMyNyAwYy03IDAtMTUgLjAxLTIyLjIyLjAxQzIwMS4xOTUuMDEgMTY4Ljk5NyA0MCAxMjggNDBoLTEwLjg0NWMtNS42NC00Ljk3NS0xMy4wNDItOC0yMS4xNTUtOEgzMkMxNC4zMjcgMzIgMCA0Ni4zMjcgMCA2NHYyNDBjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMyaDY0YzExLjg0MiAwIDIyLjE3NS02LjQzOCAyNy43MDgtMTZoNy4wNTJjMTkuMTQ2IDE2Ljk1MyA0Ni4wMTMgNjAuNjUzIDY4Ljc2IDgzLjQgMTMuNjY3IDEzLjY2NyAxMC4xNTMgMTA4LjYgNzEuNzYgMTA4LjYgNTcuNTggMCA5NS4yNy0zMS45MzYgOTUuMjctMTA0LjczIDAtMTguNDEtMy45My0zMy43My04Ljg1LTQ2LjU0aDM2LjQ4YzQ4LjYwMiAwIDg1LjgyLTQxLjU2NSA4NS44Mi04NS41OCAwLTE5LjE1LTQuOTYtMzQuOTktMTMuNzMtNDkuODR6TTY0IDI5NmMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0czEwLjc0NS0yNCAyNC0yNCAyNCAxMC43NDUgMjQgMjQtMTAuNzQ1IDI0LTI0IDI0em0zMzAuMTggMTYuNzNIMjkwLjE5YzAgMzcuODIgMjguMzYgNTUuMzcgMjguMzYgOTQuNTQgMCAyMy43NSAwIDU2LjczLTQ3LjI3IDU2LjczLTE4LjkxLTE4LjkxLTkuNDYtNjYuMTgtMzcuODItOTQuNTRDMjA2LjkgMzQyLjg5IDE2Ny4yOCAyNzIgMTM4LjkyIDI3MkgxMjhWODUuODNjNTMuNjExIDAgMTAwLjAwMS0zNy44MiAxNzEuNjQtMzcuODJoMzcuODJjMzUuNTEyIDAgNjAuODIgMTcuMTIgNTMuMTIgNjUuOSAxNS4yIDguMTYgMjYuNSAzNi40NCAxMy45NCA1Ny41NyAyMS41ODEgMjAuMzg0IDE4LjY5OSA1MS4wNjUgNS4yMSA2NS42MiA5LjQ1IDAgMjIuMzYgMTguOTEgMjIuMjcgMzcuODEtLjA5IDE4LjkxLTE2LjcxIDM3LjgyLTM3LjgyIDM3LjgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdUaHVtYnNVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjYuMjcgMjg2LjY5QzQ3NS4wNCAyNzEuODQgNDgwIDI1NiA0ODAgMjM2Ljg1YzAtNDQuMDE1LTM3LjIxOC04NS41OC04NS44Mi04NS41OEgzNTcuN2M0LjkyLTEyLjgxIDguODUtMjguMTMgOC44NS00Ni41NEMzNjYuNTUgMzEuOTM2IDMyOC44NiAwIDI3MS4yOCAwYy02MS42MDcgMC01OC4wOTMgOTQuOTMzLTcxLjc2IDEwOC42LTIyLjc0NyAyMi43NDctNDkuNjE1IDY2LjQ0Ny02OC43NiA4My40SDMyYy0xNy42NzMgMC0zMiAxNC4zMjctMzIgMzJ2MjQwYzAgMTcuNjczIDE0LjMyNyAzMiAzMiAzMmg2NGMxNC44OTMgMCAyNy40MDgtMTAuMTc0IDMwLjk3OC0yMy45NSA0NC41MDkgMS4wMDEgNzUuMDYgMzkuOTQgMTc3LjgwMiAzOS45NCA3LjIyIDAgMTUuMjIuMDEgMjIuMjIuMDEgNzcuMTE3IDAgMTExLjk4Ni0zOS40MjMgMTEyLjk0LTk1LjMzIDEzLjMxOS0xOC40MjUgMjAuMjk5LTQzLjEyMiAxNy4zNC02Ni45OSA5Ljg1NC0xOC40NTIgMTMuNjY0LTQwLjM0MyA4Ljk5LTYyLjk5em0tNjEuNzUgNTMuODNjMTIuNTYgMjEuMTMgMS4yNiA0OS40MS0xMy45NCA1Ny41NyA3LjcgNDguNzgtMTcuNjA4IDY1LjktNTMuMTIgNjUuOWgtMzcuODJjLTcxLjYzOSAwLTExOC4wMjktMzcuODItMTcxLjY0LTM3LjgyVjI0MGgxMC45MmMyOC4zNiAwIDY3Ljk4LTcwLjg5IDk0LjU0LTk3LjQ2IDI4LjM2LTI4LjM2IDE4LjkxLTc1LjYzIDM3LjgyLTk0LjU0IDQ3LjI3IDAgNDcuMjcgMzIuOTggNDcuMjcgNTYuNzMgMCAzOS4xNy0yOC4zNiA1Ni43Mi0yOC4zNiA5NC41NGgxMDMuOTljMjEuMTEgMCAzNy43MyAxOC45MSAzNy44MiAzNy44Mi4wOSAxOC45LTEyLjgyIDM3LjgxLTIyLjI3IDM3LjgxIDEzLjQ4OSAxNC41NTUgMTYuMzcxIDQ1LjIzNi01LjIxIDY1LjYyek04OCA0MzJjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0cy0yNC0xMC43NDUtMjQtMjQgMTAuNzQ1LTI0IDI0LTI0IDI0IDEwLjc0NSAyNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnVGltZXNDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptMCA0NDhjLTExMC41IDAtMjAwLTg5LjUtMjAwLTIwMFMxNDUuNSA1NiAyNTYgNTZzMjAwIDg5LjUgMjAwIDIwMC04OS41IDIwMC0yMDAgMjAwem0xMDEuOC0yNjIuMkwyOTUuNiAyNTZsNjIuMiA2Mi4yYzQuNyA0LjcgNC43IDEyLjMgMCAxN2wtMjIuNiAyMi42Yy00LjcgNC43LTEyLjMgNC43LTE3IDBMMjU2IDI5NS42bC02Mi4yIDYyLjJjLTQuNyA0LjctMTIuMyA0LjctMTcgMGwtMjIuNi0yMi42Yy00LjctNC43LTQuNy0xMi4zIDAtMTdsNjIuMi02Mi4yLTYyLjItNjIuMmMtNC43LTQuNy00LjctMTIuMyAwLTE3bDIyLjYtMjIuNmM0LjctNC43IDEyLjMtNC43IDE3IDBsNjIuMiA2Mi4yIDYyLjItNjIuMmM0LjctNC43IDEyLjMtNC43IDE3IDBsMjIuNiAyMi42YzQuNyA0LjcgNC43IDEyLjMgMCAxN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnVGlyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem0xMjkuMS0zMDMuOGMtMy44LTQuNC0xMC4zLTUuNC0xNS4zLTIuNWwtODAgNDhjLTMuNiAyLjItNS44IDYuMS01LjggMTAuM3MyLjIgOC4xIDUuOCAxMC4zbDgwIDQ4YzUuNCAzLjIgMTEuOCAxLjYgMTUuMy0yLjUgMy44LTQuNSAzLjktMTEgLjEtMTUuNUwzNDMuNiAyMDhsMzMuNi00MC4zYzMuOC00LjUgMy43LTExLjEtLjEtMTUuNXpNMjIwIDIwOGMwLTQuMi0yLjItOC4xLTUuOC0xMC4zbC04MC00OGMtNS0zLTExLjUtMS45LTE1LjMgMi41LTMuOCA0LjUtMy45IDExLS4xIDE1LjVsMzMuNiA0MC4zLTMzLjYgNDAuM2MtMy44IDQuNS0zLjcgMTEgLjEgMTUuNSAzLjUgNC4xIDkuOSA1LjcgMTUuMyAyLjVsODAtNDhjMy42LTIuMiA1LjgtNi4xIDUuOC0xMC4zem0yOCA2NGMtNDUuNCAwLTEwMC45IDM4LjMtMTA3LjggOTMuMy0xLjUgMTEuOCA2LjkgMjEuNiAxNS41IDE3LjlDMTc4LjQgMzczLjUgMjEyIDM2OCAyNDggMzY4czY5LjYgNS41IDkyLjMgMTUuMmM4LjUgMy43IDE3LTYgMTUuNS0xNy45LTYuOS01NS02Mi40LTkzLjMtMTA3LjgtOTMuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnVHJhc2hBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjY4IDQxNmgyNGExMiAxMiAwIDAgMCAxMi0xMlYxODhhMTIgMTIgMCAwIDAtMTItMTJoLTI0YTEyIDEyIDAgMCAwLTEyIDEydjIxNmExMiAxMiAwIDAgMCAxMiAxMnpNNDMyIDgwaC04Mi40MWwtMzQtNTYuN0E0OCA0OCAwIDAgMCAyNzQuNDEgMEgxNzMuNTlhNDggNDggMCAwIDAtNDEuMTYgMjMuM0w5OC40MSA4MEgxNkExNiAxNiAwIDAgMCAwIDk2djE2YTE2IDE2IDAgMCAwIDE2IDE2aDE2djMzNmE0OCA0OCAwIDAgMCA0OCA0OGgyODhhNDggNDggMCAwIDAgNDgtNDhWMTI4aDE2YTE2IDE2IDAgMCAwIDE2LTE2Vjk2YTE2IDE2IDAgMCAwLTE2LTE2ek0xNzEuODQgNTAuOTFBNiA2IDAgMCAxIDE3NyA0OGg5NGE2IDYgMCAwIDEgNS4xNSAyLjkxTDI5My42MSA4MEgxNTQuMzl6TTM2OCA0NjRIODBWMTI4aDI4OHptLTIxMi00OGgyNGExMiAxMiAwIDAgMCAxMi0xMlYxODhhMTIgMTIgMCAwIDAtMTItMTJoLTI0YTEyIDEyIDAgMCAwLTEyIDEydjIxNmExMiAxMiAwIDAgMCAxMiAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnVXNlckNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggMTA0Yy01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2IDk2LTQzIDk2LTk2LTQzLTk2LTk2LTk2em0wIDE0NGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OCA0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDh6bTAtMjQwQzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy00OS43IDAtOTUuMS0xOC4zLTEzMC4xLTQ4LjQgMTQuOS0yMyA0MC40LTM4LjYgNjkuNi0zOS41IDIwLjggNi40IDQwLjYgOS42IDYwLjUgOS42czM5LjctMy4xIDYwLjUtOS42YzI5LjIgMSA1NC43IDE2LjUgNjkuNiAzOS41LTM1IDMwLjEtODAuNCA0OC40LTEzMC4xIDQ4LjR6bTE2Mi43LTg0LjFjLTI0LjQtMzEuNC02Mi4xLTUxLjktMTA1LjEtNTEuOS0xMC4yIDAtMjYgOS42LTU3LjYgOS42LTMxLjUgMC00Ny40LTkuNi01Ny42LTkuNi00Mi45IDAtODAuNiAyMC41LTEwNS4xIDUxLjlDNjEuOSAzMzkuMiA0OCAyOTkuMiA0OCAyNTZjMC0xMTAuMyA4OS43LTIwMCAyMDAtMjAwczIwMCA4OS43IDIwMCAyMDBjMCA0My4yLTEzLjkgODMuMi0zNy4zIDExNS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdVc2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMy42IDMwNGMtMjguNyAwLTQyLjUgMTYtODkuNiAxNi00Ny4xIDAtNjAuOC0xNi04OS42LTE2QzYwLjIgMzA0IDAgMzY0LjIgMCA0MzguNFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4di0yNS42YzAtNzQuMi02MC4yLTEzNC40LTEzNC40LTEzNC40ek00MDAgNDY0SDQ4di0yNS42YzAtNDcuNiAzOC44LTg2LjQgODYuNC04Ni40IDE0LjYgMCAzOC4zIDE2IDg5LjYgMTYgNTEuNyAwIDc0LjktMTYgODkuNi0xNiA0Ny42IDAgODYuNCAzOC44IDg2LjQgODYuNFY0NjR6TTIyNCAyODhjNzkuNSAwIDE0NC02NC41IDE0NC0xNDRTMzAzLjUgMCAyMjQgMCA4MCA2NC41IDgwIDE0NHM2NC41IDE0NCAxNDQgMTQ0em0wLTI0MGM1Mi45IDAgOTYgNDMuMSA5NiA5NnMtNDMuMSA5Ni05NiA5Ni05Ni00My4xLTk2LTk2IDQzLjEtOTYgOTYtOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1dpbmRvd0Nsb3NlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0MTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bTAgMzk0YzAgMy4zLTIuNyA2LTYgNkg1NGMtMy4zIDAtNi0yLjctNi02Vjg2YzAtMy4zIDIuNy02IDYtNmg0MDRjMy4zIDAgNiAyLjcgNiA2djM0MHpNMzU2LjUgMTk0LjZMMjk1LjEgMjU2bDYxLjQgNjEuNGM0LjYgNC42IDQuNiAxMi4xIDAgMTYuOGwtMjIuMyAyMi4zYy00LjYgNC42LTEyLjEgNC42LTE2LjggMEwyNTYgMjk1LjFsLTYxLjQgNjEuNGMtNC42IDQuNi0xMi4xIDQuNi0xNi44IDBsLTIyLjMtMjIuM2MtNC42LTQuNi00LjYtMTIuMSAwLTE2LjhsNjEuNC02MS40LTYxLjQtNjEuNGMtNC42LTQuNi00LjYtMTIuMSAwLTE2LjhsMjIuMy0yMi4zYzQuNi00LjYgMTIuMS00LjYgMTYuOCAwbDYxLjQgNjEuNCA2MS40LTYxLjRjNC42LTQuNiAxMi4xLTQuNiAxNi44IDBsMjIuMyAyMi4zYzQuNyA0LjYgNC43IDEyLjEgMCAxNi44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdXaW5kb3dNYXhpbWl6ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0wIDM5NGMwIDMuMy0yLjcgNi02IDZINTRjLTMuMyAwLTYtMi43LTYtNlYxOTJoNDE2djIzNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnV2luZG93TWluaW1pemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDQ4MEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmg0NDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1dpbmRvd1Jlc3RvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDBIMTQ0Yy0yNi41IDAtNDggMjEuNS00OCA0OHY0OEg0OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2MzIwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDMyMGMyNi41IDAgNDgtMjEuNSA0OC00OHYtNDhoNDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS05NiA0NjRINDhWMjU2aDMyMHYyMDh6bTk2LTk2aC00OFYxNDRjMC0yNi41LTIxLjUtNDgtNDgtNDhIMTQ0VjQ4aDMyMHYzMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeHMsIGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IEZhQmFycyB9IGZyb20gJ3JlYWN0LWljb25zL2ZhJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IHVzZU5hdmJhckNvbnRleHQgfSBmcm9tICcuL05hdmJhckNvbnRleHQubWpzJztcblxuY29uc3QgTmF2YmFyVG9nZ2xlID0gKHtcbiAgYmFySWNvbjogQmFySWNvbiA9IEZhQmFycyxcbiAgY2xhc3NOYW1lLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgeyB0aGVtZTogcm9vdFRoZW1lLCBpc09wZW4sIHNldElzT3BlbiB9ID0gdXNlTmF2YmFyQ29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChyb290VGhlbWUudG9nZ2xlLCBjdXN0b21UaGVtZSk7XG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKCkgPT4ge1xuICAgIHNldElzT3BlbighaXNPcGVuKTtcbiAgfTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFxuICAgIFwiYnV0dG9uXCIsXG4gICAge1xuICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLW5hdmJhci10b2dnbGVcIixcbiAgICAgIG9uQ2xpY2s6IGhhbmRsZUNsaWNrLFxuICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBcInNyLW9ubHlcIiwgY2hpbGRyZW46IFwiT3BlbiBtYWluIG1lbnVcIiB9KSxcbiAgICAgICAgLyogQF9fUFVSRV9fICovIGpzeChCYXJJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgY2xhc3NOYW1lOiB0aGVtZS5pY29uIH0pXG4gICAgICBdXG4gICAgfVxuICApO1xufTtcblxuZXhwb3J0IHsgTmF2YmFyVG9nZ2xlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1OYXZiYXJUb2dnbGUubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBOYXZiYXJCcmFuZCB9IGZyb20gJy4vTmF2YmFyQnJhbmQubWpzJztcbmltcG9ydCB7IE5hdmJhckNvbGxhcHNlIH0gZnJvbSAnLi9OYXZiYXJDb2xsYXBzZS5tanMnO1xuaW1wb3J0IHsgTmF2YmFyQ29udGV4dCB9IGZyb20gJy4vTmF2YmFyQ29udGV4dC5tanMnO1xuaW1wb3J0IHsgTmF2YmFyTGluayB9IGZyb20gJy4vTmF2YmFyTGluay5tanMnO1xuaW1wb3J0IHsgTmF2YmFyVG9nZ2xlIH0gZnJvbSAnLi9OYXZiYXJUb2dnbGUubWpzJztcblxuY29uc3QgTmF2YmFyQ29tcG9uZW50ID0gKHtcbiAgYm9yZGVyLFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBmbHVpZCA9IGZhbHNlLFxuICBtZW51T3BlbixcbiAgcm91bmRlZCxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IFtpc09wZW4sIHNldElzT3Blbl0gPSB1c2VTdGF0ZShtZW51T3Blbik7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkubmF2YmFyLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KE5hdmJhckNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHsgdGhlbWUsIGlzT3Blbiwgc2V0SXNPcGVuIH0sIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIFwibmF2XCIsXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKFxuICAgICAgICB0aGVtZS5yb290LmJhc2UsXG4gICAgICAgIHRoZW1lLnJvb3QuYm9yZGVyZWRbYm9yZGVyID8gXCJvblwiIDogXCJvZmZcIl0sXG4gICAgICAgIHRoZW1lLnJvb3Qucm91bmRlZFtyb3VuZGVkID8gXCJvblwiIDogXCJvZmZcIl0sXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKSxcbiAgICAgIC4uLnByb3BzLFxuICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUucm9vdC5pbm5lci5iYXNlLCB0aGVtZS5yb290LmlubmVyLmZsdWlkW2ZsdWlkID8gXCJvblwiIDogXCJvZmZcIl0pLCBjaGlsZHJlbiB9KVxuICAgIH1cbiAgKSB9KTtcbn07XG5OYXZiYXJDb21wb25lbnQuZGlzcGxheU5hbWUgPSBcIk5hdmJhclwiO1xuTmF2YmFyQnJhbmQuZGlzcGxheU5hbWUgPSBcIk5hdmJhci5CcmFuZFwiO1xuTmF2YmFyQ29sbGFwc2UuZGlzcGxheU5hbWUgPSBcIk5hdmJhci5Db2xsYXBzZVwiO1xuTmF2YmFyTGluay5kaXNwbGF5TmFtZSA9IFwiTmF2YmFyLkxpbmtcIjtcbk5hdmJhclRvZ2dsZS5kaXNwbGF5TmFtZSA9IFwiTmF2YmFyLlRvZ2dsZVwiO1xuY29uc3QgTmF2YmFyID0gT2JqZWN0LmFzc2lnbihOYXZiYXJDb21wb25lbnQsIHtcbiAgQnJhbmQ6IE5hdmJhckJyYW5kLFxuICBDb2xsYXBzZTogTmF2YmFyQ29sbGFwc2UsXG4gIExpbms6IE5hdmJhckxpbmssXG4gIFRvZ2dsZTogTmF2YmFyVG9nZ2xlXG59KTtcblxuZXhwb3J0IHsgTmF2YmFyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1OYXZiYXIubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUlkLCB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcbmltcG9ydCB7IERyb3Bkb3duIH0gZnJvbSAnLi4vRHJvcGRvd24vRHJvcGRvd24ubWpzJztcbmltcG9ydCAnLi4vRHJvcGRvd24vRHJvcGRvd25Db250ZXh0Lm1qcyc7XG5pbXBvcnQgJy4uL0Ryb3Bkb3duL0Ryb3Bkb3duSXRlbS5tanMnO1xuXG5jb25zdCBNZWdhTWVudURyb3Bkb3duID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIHRvZ2dsZSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgW2xhYmVsbGVkQnksIHNldExhYmVsbGVkQnldID0gdXNlU3RhdGUodm9pZCAwKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5tZWdhTWVudS5kcm9wZG93biwgY3VzdG9tVGhlbWUpO1xuICBpZiAodG9nZ2xlKSB7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBEcm9wZG93bixcbiAgICAgIHtcbiAgICAgICAgaW5saW5lOiB0cnVlLFxuICAgICAgICBsYWJlbDogdG9nZ2xlLFxuICAgICAgICBwbGFjZW1lbnQ6IFwiYm90dG9tXCIsXG4gICAgICAgIHRoZW1lOiB0aGVtZS50b2dnbGUsXG4gICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLFxuICAgICAgICBjaGlsZHJlblxuICAgICAgfVxuICAgICk7XG4gIH1cbiAgY29uc3QgaWQgPSB1c2VJZCgpO1xuICBjb25zdCByZWYgPSB1c2VSZWYobnVsbCk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZmluZFRvZ2dsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgY29uc3QgbWVnYU1lbnUgPSByZWYuY3VycmVudD8uY2xvc2VzdChcIm5hdlwiKTtcbiAgICAgIHJldHVybiBtZWdhTWVudT8ucXVlcnlTZWxlY3RvcignW2FyaWEtaGFzcG9wdXA9XCJtZW51XCJdJyk7XG4gICAgfTtcbiAgICBzZXRMYWJlbGxlZEJ5KGZpbmRUb2dnbGUoKT8uaWQpO1xuICB9LCBbXSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIFwiZGl2XCIsXG4gICAge1xuICAgICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogbGFiZWxsZWRCeSxcbiAgICAgIGlkLFxuICAgICAgcmVmLFxuICAgICAgcm9sZTogXCJtZW51XCIsXG4gICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSxcbiAgICAgIC4uLnByb3BzLFxuICAgICAgY2hpbGRyZW5cbiAgICB9XG4gICk7XG59O1xuTWVnYU1lbnVEcm9wZG93bi5kaXNwbGF5TmFtZSA9IFwiTWVnYU1lbnUuRHJvcGRvd25cIjtcblxuZXhwb3J0IHsgTWVnYU1lbnVEcm9wZG93biB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TWVnYU1lbnVEcm9wZG93bi5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB1c2VJZCwgdXNlUmVmLCB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBNZWdhTWVudURyb3Bkb3duVG9nZ2xlID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IGlkID0gdXNlSWQoKTtcbiAgY29uc3QgcmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBbY29udHJvbHMsIHNldENvbnRyb2xzXSA9IHVzZVN0YXRlKHZvaWQgMCk7XG4gIGNvbnN0IFtpc0V4cGFuZGVkLCBzZXRFeHBhbmRlZF0gPSB1c2VTdGF0ZSh2b2lkIDApO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLm1lZ2FNZW51LmRyb3Bkb3duVG9nZ2xlLCBjdXN0b21UaGVtZSk7XG4gIGNvbnN0IGZpbmREcm9wZG93biA9IGZ1bmN0aW9uKCkge1xuICAgIGNvbnN0IG1lZ2FNZW51ID0gcmVmLmN1cnJlbnQ/LmNsb3Nlc3QoXCJuYXZcIik7XG4gICAgcmV0dXJuIG1lZ2FNZW51Py5xdWVyeVNlbGVjdG9yKCdbcm9sZT1cIm1lbnVcIl0nKTtcbiAgfTtcbiAgY29uc3Qgb25DbGljayA9IGZ1bmN0aW9uKCkge1xuICAgIGZpbmREcm9wZG93bigpPy5jbGFzc0xpc3QudG9nZ2xlKFwiaGlkZGVuXCIpO1xuICAgIHNldEV4cGFuZGVkKCFpc0V4cGFuZGVkKTtcbiAgfTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBkcm9wZG93biA9IGZpbmREcm9wZG93bigpO1xuICAgIGNvbnN0IGlzRHJvcGRvd25IaWRkZW4gPSBkcm9wZG93bj8uY2xhc3NMaXN0LmNvbnRhaW5zKFwiaGlkZGVuXCIpO1xuICAgIHNldENvbnRyb2xzKGRyb3Bkb3duPy5pZCk7XG4gICAgc2V0RXhwYW5kZWQoIWlzRHJvcGRvd25IaWRkZW4pO1xuICB9LCBbXSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIFwiYnV0dG9uXCIsXG4gICAge1xuICAgICAgXCJhcmlhLWNvbnRyb2xzXCI6IGNvbnRyb2xzLFxuICAgICAgXCJhcmlhLWV4cGFuZGVkXCI6IGlzRXhwYW5kZWQsXG4gICAgICBcImFyaWEtaGFzcG9wdXBcIjogXCJtZW51XCIsXG4gICAgICBpZCxcbiAgICAgIG9uQ2xpY2ssXG4gICAgICByZWYsXG4gICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSxcbiAgICAgIC4uLnByb3BzLFxuICAgICAgY2hpbGRyZW5cbiAgICB9XG4gICk7XG59O1xuTWVnYU1lbnVEcm9wZG93blRvZ2dsZS5kaXNwbGF5TmFtZSA9IFwiTWVnYU1lbnUuRHJvcGRvd25Ub2dnbGVcIjtcblxuZXhwb3J0IHsgTWVnYU1lbnVEcm9wZG93blRvZ2dsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TWVnYU1lbnVEcm9wZG93blRvZ2dsZS5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcbmltcG9ydCB7IE5hdmJhciB9IGZyb20gJy4uL05hdmJhci9OYXZiYXIubWpzJztcbmltcG9ydCAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0ICcuLi9OYXZiYXIvTmF2YmFyQ29udGV4dC5tanMnO1xuaW1wb3J0ICdyZWFjdC1pY29ucy9mYSc7XG5pbXBvcnQgeyBNZWdhTWVudURyb3Bkb3duIH0gZnJvbSAnLi9NZWdhTWVudURyb3Bkb3duLm1qcyc7XG5pbXBvcnQgeyBNZWdhTWVudURyb3Bkb3duVG9nZ2xlIH0gZnJvbSAnLi9NZWdhTWVudURyb3Bkb3duVG9nZ2xlLm1qcyc7XG5cbmNvbnN0IE1lZ2FNZW51Q29tcG9uZW50ID0gKHsgY2hpbGRyZW4sIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkubWVnYU1lbnUsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goTmF2YmFyLCB7IGZsdWlkOiB0cnVlLCB0aGVtZSwgLi4ucHJvcHMsIGNoaWxkcmVuIH0pO1xufTtcbmNvbnN0IE1lZ2FNZW51ID0gT2JqZWN0LmFzc2lnbihNZWdhTWVudUNvbXBvbmVudCwge1xuICBEcm9wZG93bjogTWVnYU1lbnVEcm9wZG93bixcbiAgRHJvcGRvd25Ub2dnbGU6IE1lZ2FNZW51RHJvcGRvd25Ub2dnbGVcbn0pO1xuTWVnYU1lbnVDb21wb25lbnQuZGlzcGxheU5hbWUgPSBcIk1lZ2FNZW51XCI7XG5cbmV4cG9ydCB7IE1lZ2FNZW51IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1NZWdhTWVudS5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuXG5jb25zdCBNb2RhbENvbnRleHQgPSBjcmVhdGVDb250ZXh0KHZvaWQgMCk7XG5mdW5jdGlvbiB1c2VNb2RhbENvbnRleHQoKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KE1vZGFsQ29udGV4dCk7XG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcInVzZU1vZGFsQ29udGV4dCBzaG91bGQgYmUgdXNlZCB3aXRoaW4gdGhlIE1vZGFsQ29udGV4dCBwcm92aWRlciFcIik7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbmV4cG9ydCB7IE1vZGFsQ29udGV4dCwgdXNlTW9kYWxDb250ZXh0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Nb2RhbENvbnRleHQubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlTW9kYWxDb250ZXh0IH0gZnJvbSAnLi9Nb2RhbENvbnRleHQubWpzJztcblxuY29uc3QgTW9kYWxCb2R5ID0gKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3QgeyB0aGVtZTogcm9vdFRoZW1lLCBwb3B1cCB9ID0gdXNlTW9kYWxDb250ZXh0KCk7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKHJvb3RUaGVtZS5ib2R5LCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIHBvcHVwICYmIFt0aGVtZS5wb3B1cF0sIGNsYXNzTmFtZSksIC4uLnByb3BzLCBjaGlsZHJlbiB9KTtcbn07XG5cbmV4cG9ydCB7IE1vZGFsQm9keSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TW9kYWxCb2R5Lm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IHVzZU1vZGFsQ29udGV4dCB9IGZyb20gJy4vTW9kYWxDb250ZXh0Lm1qcyc7XG5cbmNvbnN0IE1vZGFsRm9vdGVyID0gKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3QgeyB0aGVtZTogcm9vdFRoZW1lLCBwb3B1cCB9ID0gdXNlTW9kYWxDb250ZXh0KCk7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKHJvb3RUaGVtZS5mb290ZXIsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgIXBvcHVwICYmIHRoZW1lLnBvcHVwLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgY2hpbGRyZW4gfSk7XG59O1xuXG5leHBvcnQgeyBNb2RhbEZvb3RlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TW9kYWxGb290ZXIubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4cywganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdXNlSWQsIHVzZUxheW91dEVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEhpT3V0bGluZVggfSBmcm9tICdyZWFjdC1pY29ucy9oaSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyB1c2VNb2RhbENvbnRleHQgfSBmcm9tICcuL01vZGFsQ29udGV4dC5tanMnO1xuXG5jb25zdCBNb2RhbEhlYWRlciA9ICh7XG4gIGFzOiBDb21wb25lbnQgPSBcImgzXCIsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICBpZCxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgaW5uZXJIZWFkZXJJZCA9IHVzZUlkKCk7XG4gIGNvbnN0IGhlYWRlcklkID0gaWQgfHwgaW5uZXJIZWFkZXJJZDtcbiAgY29uc3QgeyB0aGVtZTogcm9vdFRoZW1lLCBwb3B1cCwgb25DbG9zZSwgc2V0SGVhZGVySWQgfSA9IHVzZU1vZGFsQ29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChyb290VGhlbWUuaGVhZGVyLCBjdXN0b21UaGVtZSk7XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgc2V0SGVhZGVySWQoaGVhZGVySWQpO1xuICAgIHJldHVybiAoKSA9PiBzZXRIZWFkZXJJZCh2b2lkIDApO1xuICB9LCBbaGVhZGVySWQsIHNldEhlYWRlcklkXSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBwb3B1cCAmJiB0aGVtZS5wb3B1cCwgY2xhc3NOYW1lKSwgLi4ucHJvcHMsIGNoaWxkcmVuOiBbXG4gICAgLyogQF9fUFVSRV9fICovIGpzeChDb21wb25lbnQsIHsgaWQ6IGhlYWRlcklkLCBjbGFzc05hbWU6IHRoZW1lLnRpdGxlLCBjaGlsZHJlbiB9KSxcbiAgICAvKiBAX19QVVJFX18gKi8ganN4KFwiYnV0dG9uXCIsIHsgXCJhcmlhLWxhYmVsXCI6IFwiQ2xvc2VcIiwgY2xhc3NOYW1lOiB0aGVtZS5jbG9zZS5iYXNlLCB0eXBlOiBcImJ1dHRvblwiLCBvbkNsaWNrOiBvbkNsb3NlLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChIaU91dGxpbmVYLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgY2xhc3NOYW1lOiB0aGVtZS5jbG9zZS5pY29uIH0pIH0pXG4gIF0gfSk7XG59O1xuXG5leHBvcnQgeyBNb2RhbEhlYWRlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TW9kYWxIZWFkZXIubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdXNlRmxvYXRpbmcsIHVzZU1lcmdlUmVmcywgdXNlQ2xpY2ssIHVzZURpc21pc3MsIHVzZVJvbGUsIHVzZUludGVyYWN0aW9ucywgRmxvYXRpbmdQb3J0YWwsIEZsb2F0aW5nT3ZlcmxheSwgRmxvYXRpbmdGb2N1c01hbmFnZXIgfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBNb2RhbEJvZHkgfSBmcm9tICcuL01vZGFsQm9keS5tanMnO1xuaW1wb3J0IHsgTW9kYWxDb250ZXh0IH0gZnJvbSAnLi9Nb2RhbENvbnRleHQubWpzJztcbmltcG9ydCB7IE1vZGFsRm9vdGVyIH0gZnJvbSAnLi9Nb2RhbEZvb3Rlci5tanMnO1xuaW1wb3J0IHsgTW9kYWxIZWFkZXIgfSBmcm9tICcuL01vZGFsSGVhZGVyLm1qcyc7XG5cbmNvbnN0IE1vZGFsQ29tcG9uZW50ID0gZm9yd2FyZFJlZihcbiAgKHtcbiAgICBjaGlsZHJlbixcbiAgICBjbGFzc05hbWUsXG4gICAgZGlzbWlzc2libGUgPSBmYWxzZSxcbiAgICBvbkNsb3NlLFxuICAgIHBvcHVwLFxuICAgIHBvc2l0aW9uID0gXCJjZW50ZXJcIixcbiAgICByb290LFxuICAgIHNob3csXG4gICAgc2l6ZSA9IFwiMnhsXCIsXG4gICAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gICAgaW5pdGlhbEZvY3VzLFxuICAgIC4uLnByb3BzXG4gIH0sIHRoZWlyUmVmKSA9PiB7XG4gICAgY29uc3QgW2hlYWRlcklkLCBzZXRIZWFkZXJJZF0gPSB1c2VTdGF0ZSh2b2lkIDApO1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkubW9kYWwsIGN1c3RvbVRoZW1lKTtcbiAgICBjb25zdCB7IGNvbnRleHQgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICAgIG9wZW46IHNob3csXG4gICAgICBvbk9wZW5DaGFuZ2U6ICgpID0+IG9uQ2xvc2UgJiYgb25DbG9zZSgpXG4gICAgfSk7XG4gICAgY29uc3QgcmVmID0gdXNlTWVyZ2VSZWZzKFtjb250ZXh0LnJlZnMuc2V0RmxvYXRpbmcsIHRoZWlyUmVmXSk7XG4gICAgY29uc3QgY2xpY2sgPSB1c2VDbGljayhjb250ZXh0KTtcbiAgICBjb25zdCBkaXNtaXNzID0gdXNlRGlzbWlzcyhjb250ZXh0LCB7IG91dHNpZGVQcmVzc0V2ZW50OiBcIm1vdXNlZG93blwiLCBlbmFibGVkOiBkaXNtaXNzaWJsZSB9KTtcbiAgICBjb25zdCByb2xlID0gdXNlUm9sZShjb250ZXh0KTtcbiAgICBjb25zdCB7IGdldEZsb2F0aW5nUHJvcHMgfSA9IHVzZUludGVyYWN0aW9ucyhbY2xpY2ssIGRpc21pc3MsIHJvbGVdKTtcbiAgICBpZiAoIXNob3cpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChNb2RhbENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHsgdGhlbWUsIHBvcHVwLCBvbkNsb3NlLCBzZXRIZWFkZXJJZCB9LCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChGbG9hdGluZ1BvcnRhbCwgeyByb290LCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIEZsb2F0aW5nT3ZlcmxheSxcbiAgICAgIHtcbiAgICAgICAgbG9ja1Njcm9sbDogdHJ1ZSxcbiAgICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcIm1vZGFsLW92ZXJsYXlcIixcbiAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKFxuICAgICAgICAgIHRoZW1lLnJvb3QuYmFzZSxcbiAgICAgICAgICB0aGVtZS5yb290LnBvc2l0aW9uc1twb3NpdGlvbl0sXG4gICAgICAgICAgc2hvdyA/IHRoZW1lLnJvb3Quc2hvdy5vbiA6IHRoZW1lLnJvb3Quc2hvdy5vZmYsXG4gICAgICAgICAgY2xhc3NOYW1lXG4gICAgICAgICksXG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChGbG9hdGluZ0ZvY3VzTWFuYWdlciwgeyBjb250ZXh0LCBpbml0aWFsRm9jdXMsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgLi4uZ2V0RmxvYXRpbmdQcm9wcyhwcm9wcyksXG4gICAgICAgICAgICBcImFyaWEtbGFiZWxsZWRieVwiOiBoZWFkZXJJZCxcbiAgICAgICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5jb250ZW50LmJhc2UsIHRoZW1lLnJvb3Quc2l6ZXNbc2l6ZV0pLFxuICAgICAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHRoZW1lLmNvbnRlbnQuaW5uZXIsIGNoaWxkcmVuIH0pXG4gICAgICAgICAgfVxuICAgICAgICApIH0pXG4gICAgICB9XG4gICAgKSB9KSB9KTtcbiAgfVxuKTtcbk1vZGFsQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJNb2RhbFwiO1xuTW9kYWxIZWFkZXIuZGlzcGxheU5hbWUgPSBcIk1vZGFsLkhlYWRlclwiO1xuTW9kYWxCb2R5LmRpc3BsYXlOYW1lID0gXCJNb2RhbC5Cb2R5XCI7XG5Nb2RhbEZvb3Rlci5kaXNwbGF5TmFtZSA9IFwiTW9kYWwuRm9vdGVyXCI7XG5jb25zdCBNb2RhbCA9IE9iamVjdC5hc3NpZ24oTW9kYWxDb21wb25lbnQsIHtcbiAgSGVhZGVyOiBNb2RhbEhlYWRlcixcbiAgQm9keTogTW9kYWxCb2R5LFxuICBGb290ZXI6IE1vZGFsRm9vdGVyXG59KTtcblxuZXhwb3J0IHsgTW9kYWwgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU1vZGFsLm1qcy5tYXBcbiIsImNvbnN0IHJhbmdlID0gKHN0YXJ0LCBlbmQpID0+IHtcbiAgaWYgKHN0YXJ0ID49IGVuZCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4gWy4uLkFycmF5KGVuZCAtIHN0YXJ0ICsgMSkua2V5cygpXS5tYXAoKGtleSkgPT4ga2V5ICsgc3RhcnQpO1xufTtcblxuZXhwb3J0IHsgcmFuZ2UgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlbHBlcnMubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBQYWdpbmF0aW9uQnV0dG9uID0gKHtcbiAgYWN0aXZlLFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBvbkNsaWNrLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5wYWdpbmF0aW9uLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIFwiYnV0dG9uXCIsXG4gICAge1xuICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgIGNsYXNzTmFtZTogdHdNZXJnZShhY3RpdmUgJiYgdGhlbWUucGFnZXMuc2VsZWN0b3IuYWN0aXZlLCBjbGFzc05hbWUpLFxuICAgICAgb25DbGljayxcbiAgICAgIC4uLnByb3BzLFxuICAgICAgY2hpbGRyZW5cbiAgICB9XG4gICk7XG59O1xuUGFnaW5hdGlvbkJ1dHRvbi5kaXNwbGF5TmFtZSA9IFwiUGFnaW5hdGlvbi5CdXR0b25cIjtcbmNvbnN0IFBhZ2luYXRpb25OYXZpZ2F0aW9uID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgb25DbGljayxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkucGFnaW5hdGlvbiwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBcImJ1dHRvblwiLFxuICAgIHtcbiAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoZGlzYWJsZWQgJiYgdGhlbWUucGFnZXMuc2VsZWN0b3IuZGlzYWJsZWQsIGNsYXNzTmFtZSksXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIG9uQ2xpY2ssXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuXG4gICAgfVxuICApO1xufTtcblBhZ2luYXRpb25OYXZpZ2F0aW9uLmRpc3BsYXlOYW1lID0gXCJQYWdpbmF0aW9uLk5hdmlnYXRpb25cIjtcblxuZXhwb3J0IHsgUGFnaW5hdGlvbkJ1dHRvbiwgUGFnaW5hdGlvbk5hdmlnYXRpb24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVBhZ2luYXRpb25CdXR0b24ubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4cywganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgSGlDaGV2cm9uTGVmdCwgSGlDaGV2cm9uUmlnaHQgfSBmcm9tICdyZWFjdC1pY29ucy9oaSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyByYW5nZSB9IGZyb20gJy4vaGVscGVycy5tanMnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkJ1dHRvbiwgUGFnaW5hdGlvbk5hdmlnYXRpb24gfSBmcm9tICcuL1BhZ2luYXRpb25CdXR0b24ubWpzJztcblxuY29uc3QgUGFnaW5hdGlvbkNvbXBvbmVudCA9ICh7XG4gIGNsYXNzTmFtZSxcbiAgY3VycmVudFBhZ2UsXG4gIGxheW91dCA9IFwicGFnaW5hdGlvblwiLFxuICBuZXh0TGFiZWwgPSBcIk5leHRcIixcbiAgb25QYWdlQ2hhbmdlLFxuICBwcmV2aW91c0xhYmVsID0gXCJQcmV2aW91c1wiLFxuICByZW5kZXJQYWdpbmF0aW9uQnV0dG9uID0gKHByb3BzMikgPT4gLyogQF9fUFVSRV9fICovIGpzeChQYWdpbmF0aW9uQnV0dG9uLCB7IC4uLnByb3BzMiB9KSxcbiAgc2hvd0ljb25zOiBzaG93SWNvbiA9IGZhbHNlLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgdG90YWxQYWdlcyxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5wYWdpbmF0aW9uLCBjdXN0b21UaGVtZSk7XG4gIGNvbnN0IGxhc3RQYWdlID0gTWF0aC5taW4oTWF0aC5tYXgobGF5b3V0ID09PSBcInBhZ2luYXRpb25cIiA/IGN1cnJlbnRQYWdlICsgMiA6IGN1cnJlbnRQYWdlICsgNCwgNSksIHRvdGFsUGFnZXMpO1xuICBjb25zdCBmaXJzdFBhZ2UgPSBNYXRoLm1heCgxLCBsYXN0UGFnZSAtIDQpO1xuICBjb25zdCBnb1RvTmV4dFBhZ2UgPSAoKSA9PiB7XG4gICAgb25QYWdlQ2hhbmdlKE1hdGgubWluKGN1cnJlbnRQYWdlICsgMSwgdG90YWxQYWdlcykpO1xuICB9O1xuICBjb25zdCBnb1RvUHJldmlvdXNQYWdlID0gKCkgPT4ge1xuICAgIG9uUGFnZUNoYW5nZShNYXRoLm1heChjdXJyZW50UGFnZSAtIDEsIDEpKTtcbiAgfTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwibmF2XCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksIC4uLnByb3BzLCBjaGlsZHJlbjogW1xuICAgIGxheW91dCA9PT0gXCJ0YWJsZVwiICYmIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5sYXlvdXQudGFibGUuYmFzZSwgY2hpbGRyZW46IFtcbiAgICAgIFwiU2hvd2luZyBcIixcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5sYXlvdXQudGFibGUuc3BhbiwgY2hpbGRyZW46IGZpcnN0UGFnZSB9KSxcbiAgICAgIFwiIHRvXFx4QTBcIixcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5sYXlvdXQudGFibGUuc3BhbiwgY2hpbGRyZW46IGxhc3RQYWdlIH0pLFxuICAgICAgXCIgb2ZcXHhBMFwiLFxuICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IHRoZW1lLmxheW91dC50YWJsZS5zcGFuLCBjaGlsZHJlbjogdG90YWxQYWdlcyB9KSxcbiAgICAgIFwiIEVudHJpZXNcIlxuICAgIF0gfSksXG4gICAgLyogQF9fUFVSRV9fICovIGpzeHMoXCJ1bFwiLCB7IGNsYXNzTmFtZTogdGhlbWUucGFnZXMuYmFzZSwgY2hpbGRyZW46IFtcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJsaVwiLCB7IGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4cyhcbiAgICAgICAgUGFnaW5hdGlvbk5hdmlnYXRpb24sXG4gICAgICAgIHtcbiAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUucGFnZXMucHJldmlvdXMuYmFzZSwgc2hvd0ljb24gJiYgdGhlbWUucGFnZXMuc2hvd0ljb24pLFxuICAgICAgICAgIG9uQ2xpY2s6IGdvVG9QcmV2aW91c1BhZ2UsXG4gICAgICAgICAgZGlzYWJsZWQ6IGN1cnJlbnRQYWdlID09PSAxLFxuICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICBzaG93SWNvbiAmJiAvKiBAX19QVVJFX18gKi8ganN4KEhpQ2hldnJvbkxlZnQsIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBjbGFzc05hbWU6IHRoZW1lLnBhZ2VzLnByZXZpb3VzLmljb24gfSksXG4gICAgICAgICAgICBwcmV2aW91c0xhYmVsXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICApIH0pLFxuICAgICAgbGF5b3V0ID09PSBcInBhZ2luYXRpb25cIiAmJiByYW5nZShmaXJzdFBhZ2UsIGxhc3RQYWdlKS5tYXAoKHBhZ2UpID0+IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJsaVwiLCB7IFwiYXJpYS1jdXJyZW50XCI6IHBhZ2UgPT09IGN1cnJlbnRQYWdlID8gXCJwYWdlXCIgOiB2b2lkIDAsIGNoaWxkcmVuOiByZW5kZXJQYWdpbmF0aW9uQnV0dG9uKHtcbiAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLnBhZ2VzLnNlbGVjdG9yLmJhc2UsIGN1cnJlbnRQYWdlID09PSBwYWdlICYmIHRoZW1lLnBhZ2VzLnNlbGVjdG9yLmFjdGl2ZSksXG4gICAgICAgIGFjdGl2ZTogcGFnZSA9PT0gY3VycmVudFBhZ2UsXG4gICAgICAgIG9uQ2xpY2s6ICgpID0+IG9uUGFnZUNoYW5nZShwYWdlKSxcbiAgICAgICAgY2hpbGRyZW46IHBhZ2VcbiAgICAgIH0pIH0sIHBhZ2UpKSxcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJsaVwiLCB7IGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4cyhcbiAgICAgICAgUGFnaW5hdGlvbk5hdmlnYXRpb24sXG4gICAgICAgIHtcbiAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUucGFnZXMubmV4dC5iYXNlLCBzaG93SWNvbiAmJiB0aGVtZS5wYWdlcy5zaG93SWNvbiksXG4gICAgICAgICAgb25DbGljazogZ29Ub05leHRQYWdlLFxuICAgICAgICAgIGRpc2FibGVkOiBjdXJyZW50UGFnZSA9PT0gdG90YWxQYWdlcyxcbiAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgbmV4dExhYmVsLFxuICAgICAgICAgICAgc2hvd0ljb24gJiYgLyogQF9fUFVSRV9fICovIGpzeChIaUNoZXZyb25SaWdodCwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUsIGNsYXNzTmFtZTogdGhlbWUucGFnZXMubmV4dC5pY29uIH0pXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICApIH0pXG4gICAgXSB9KVxuICBdIH0pO1xufTtcblBhZ2luYXRpb25Db21wb25lbnQuZGlzcGxheU5hbWUgPSBcIlBhZ2luYXRpb25cIjtcbmNvbnN0IFBhZ2luYXRpb24gPSBPYmplY3QuYXNzaWduKFBhZ2luYXRpb25Db21wb25lbnQsIHtcbiAgQnV0dG9uOiBQYWdpbmF0aW9uQnV0dG9uXG59KTtcblxuZXhwb3J0IHsgUGFnaW5hdGlvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UGFnaW5hdGlvbi5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBSYWRpbyA9IGZvcndhcmRSZWYoXG4gICh7IGNsYXNzTmFtZSwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkucmFkaW8sIGN1c3RvbVRoZW1lKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcImlucHV0XCIsIHsgcmVmLCB0eXBlOiBcInJhZGlvXCIsIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5yb290LmJhc2UsIGNsYXNzTmFtZSksIC4uLnByb3BzIH0pO1xuICB9XG4pO1xuUmFkaW8uZGlzcGxheU5hbWUgPSBcIlJhZGlvXCI7XG5cbmV4cG9ydCB7IFJhZGlvIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1SYWRpby5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3gsIEZyYWdtZW50IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcblxuY29uc3QgUmFuZ2VTbGlkZXIgPSBmb3J3YXJkUmVmKFxuICAoeyBjbGFzc05hbWUsIHNpemluZyA9IFwibWRcIiwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkucmFuZ2VTbGlkZXIsIGN1c3RvbVRoZW1lKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChGcmFnbWVudCwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1yYW5nZS1zbGlkZXJcIiwgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLnJvb3QuYmFzZSwgY2xhc3NOYW1lKSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHRoZW1lLmZpZWxkLmJhc2UsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgXCJpbnB1dFwiLFxuICAgICAge1xuICAgICAgICByZWYsXG4gICAgICAgIHR5cGU6IFwicmFuZ2VcIixcbiAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmZpZWxkLmlucHV0LmJhc2UsIHRoZW1lLmZpZWxkLmlucHV0LnNpemVzW3NpemluZ10pLFxuICAgICAgICAuLi5wcm9wc1xuICAgICAgfVxuICAgICkgfSkgfSkgfSk7XG4gIH1cbik7XG5SYW5nZVNsaWRlci5kaXNwbGF5TmFtZSA9IFwiUmFuZ2VTbGlkZXJcIjtcblxuZXhwb3J0IHsgUmFuZ2VTbGlkZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVJhbmdlU2xpZGVyLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeHMsIGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcblxuY29uc3QgUmF0aW5nQWR2YW5jZWQgPSAoe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBwZXJjZW50RmlsbGVkID0gMCxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkucmF0aW5nQWR2YW5jZWQsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksIC4uLnByb3BzLCBjaGlsZHJlbjogW1xuICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5sYWJlbCwgY2hpbGRyZW4gfSksXG4gICAgLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogdGhlbWUucHJvZ3Jlc3MuYmFzZSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBcImRpdlwiLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6IHRoZW1lLnByb2dyZXNzLmZpbGwsXG4gICAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1yYXRpbmctZmlsbFwiLFxuICAgICAgICBzdHlsZTogeyB3aWR0aDogYCR7cGVyY2VudEZpbGxlZH0lYCB9XG4gICAgICB9XG4gICAgKSB9KSxcbiAgICAvKiBAX19QVVJFX18gKi8ganN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogdGhlbWUucHJvZ3Jlc3MubGFiZWwsIGNoaWxkcmVuOiBgJHtwZXJjZW50RmlsbGVkfSVgIH0pXG4gIF0gfSk7XG59O1xuXG5leHBvcnQgeyBSYXRpbmdBZHZhbmNlZCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UmF0aW5nQWR2YW5jZWQubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgUmF0aW5nQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQodm9pZCAwKTtcbmZ1bmN0aW9uIHVzZVJhdGluZ0NvbnRleHQoKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KFJhdGluZ0NvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1c2VSYXRpbmdDb250ZXh0IHNob3VsZCBiZSB1c2VkIHdpdGhpbiB0aGUgUmF0aW5nQ29udGV4dCBwcm92aWRlciFcIik7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbmV4cG9ydCB7IFJhdGluZ0NvbnRleHQsIHVzZVJhdGluZ0NvbnRleHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVJhdGluZ0NvbnRleHQubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgSGlTdGFyIH0gZnJvbSAncmVhY3QtaWNvbnMvaGknO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlUmF0aW5nQ29udGV4dCB9IGZyb20gJy4vUmF0aW5nQ29udGV4dC5tanMnO1xuXG5jb25zdCBSYXRpbmdTdGFyID0gKHtcbiAgY2xhc3NOYW1lLFxuICBmaWxsZWQgPSB0cnVlLFxuICBzdGFySWNvbjogSWNvbiA9IEhpU3RhcixcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHsgdGhlbWU6IHJvb3RUaGVtZSwgc2l6ZSA9IFwic21cIiB9ID0gdXNlUmF0aW5nQ29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChyb290VGhlbWUuc3RhciwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBJY29uLFxuICAgIHtcbiAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1yYXRpbmctc3RhclwiLFxuICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLnNpemVzW3NpemVdLCB0aGVtZVtmaWxsZWQgPyBcImZpbGxlZFwiIDogXCJlbXB0eVwiXSwgY2xhc3NOYW1lKSxcbiAgICAgIC4uLnByb3BzXG4gICAgfVxuICApO1xufTtcblxuZXhwb3J0IHsgUmF0aW5nU3RhciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UmF0aW5nU3Rhci5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBSYXRpbmdBZHZhbmNlZCB9IGZyb20gJy4vUmF0aW5nQWR2YW5jZWQubWpzJztcbmltcG9ydCB7IFJhdGluZ0NvbnRleHQgfSBmcm9tICcuL1JhdGluZ0NvbnRleHQubWpzJztcbmltcG9ydCB7IFJhdGluZ1N0YXIgfSBmcm9tICcuL1JhdGluZ1N0YXIubWpzJztcblxuY29uc3QgUmF0aW5nQ29tcG9uZW50ID0gKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgc2l6ZSA9IFwic21cIiwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5yYXRpbmcsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUmF0aW5nQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogeyB0aGVtZSwgc2l6ZSB9LCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5yb290LmJhc2UsIGNsYXNzTmFtZSksIC4uLnByb3BzLCBjaGlsZHJlbiB9KSB9KTtcbn07XG5SYXRpbmdDb21wb25lbnQuZGlzcGxheU5hbWUgPSBcIlJhdGluZ1wiO1xuUmF0aW5nU3Rhci5kaXNwbGF5TmFtZSA9IFwiUmF0aW5nLlN0YXJcIjtcblJhdGluZ0FkdmFuY2VkLmRpc3BsYXlOYW1lID0gXCJSYXRpbmcuQWR2YW5jZWRcIjtcbmNvbnN0IFJhdGluZyA9IE9iamVjdC5hc3NpZ24oUmF0aW5nQ29tcG9uZW50LCB7XG4gIFN0YXI6IFJhdGluZ1N0YXIsXG4gIEFkdmFuY2VkOiBSYXRpbmdBZHZhbmNlZFxufSk7XG5cbmV4cG9ydCB7IFJhdGluZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UmF0aW5nLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeHMsIGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBIZWxwZXJUZXh0IH0gZnJvbSAnLi4vSGVscGVyVGV4dC9IZWxwZXJUZXh0Lm1qcyc7XG5cbmNvbnN0IFNlbGVjdCA9IGZvcndhcmRSZWYoXG4gICh7XG4gICAgYWRkb24sXG4gICAgY2hpbGRyZW4sXG4gICAgY2xhc3NOYW1lLFxuICAgIGNvbG9yID0gXCJncmF5XCIsXG4gICAgaGVscGVyVGV4dCxcbiAgICBpY29uOiBJY29uLFxuICAgIHNoYWRvdyxcbiAgICBzaXppbmcgPSBcIm1kXCIsXG4gICAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gICAgLi4ucHJvcHNcbiAgfSwgcmVmKSA9PiB7XG4gICAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5zZWxlY3QsIGN1c3RvbVRoZW1lKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSwgY2hpbGRyZW46IFtcbiAgICAgIGFkZG9uICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5hZGRvbiwgY2hpbGRyZW46IGFkZG9uIH0pLFxuICAgICAgLyogQF9fUFVSRV9fICovIGpzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IHRoZW1lLmZpZWxkLmJhc2UsIGNoaWxkcmVuOiBbXG4gICAgICAgIEljb24gJiYgLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogdGhlbWUuZmllbGQuaWNvbi5iYXNlLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChJY29uLCB7IGNsYXNzTmFtZTogdGhlbWUuZmllbGQuaWNvbi5zdmcgfSkgfSksXG4gICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgXCJzZWxlY3RcIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgICAgICAgIHRoZW1lLmZpZWxkLnNlbGVjdC5iYXNlLFxuICAgICAgICAgICAgICB0aGVtZS5maWVsZC5zZWxlY3QuY29sb3JzW2NvbG9yXSxcbiAgICAgICAgICAgICAgdGhlbWUuZmllbGQuc2VsZWN0LnNpemVzW3NpemluZ10sXG4gICAgICAgICAgICAgIHRoZW1lLmZpZWxkLnNlbGVjdC53aXRoSWNvbltJY29uID8gXCJvblwiIDogXCJvZmZcIl0sXG4gICAgICAgICAgICAgIHRoZW1lLmZpZWxkLnNlbGVjdC53aXRoQWRkb25bYWRkb24gPyBcIm9uXCIgOiBcIm9mZlwiXSxcbiAgICAgICAgICAgICAgdGhlbWUuZmllbGQuc2VsZWN0LndpdGhTaGFkb3dbc2hhZG93ID8gXCJvblwiIDogXCJvZmZcIl1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICBoZWxwZXJUZXh0ICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goSGVscGVyVGV4dCwgeyBjb2xvciwgY2hpbGRyZW46IGhlbHBlclRleHQgfSlcbiAgICAgIF0gfSlcbiAgICBdIH0pO1xuICB9XG4pO1xuU2VsZWN0LmRpc3BsYXlOYW1lID0gXCJTZWxlY3RcIjtcblxuZXhwb3J0IHsgU2VsZWN0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1TZWxlY3QubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgU2lkZWJhckNvbnRleHQgPSBjcmVhdGVDb250ZXh0KHZvaWQgMCk7XG5mdW5jdGlvbiB1c2VTaWRlYmFyQ29udGV4dCgpIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoU2lkZWJhckNvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1c2VTaWRlYmFyQ29udGV4dCBzaG91bGQgYmUgdXNlZCB3aXRoaW4gdGhlIFNpZGViYXJDb250ZXh0IHByb3ZpZGVyIVwiKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn1cblxuZXhwb3J0IHsgU2lkZWJhckNvbnRleHQsIHVzZVNpZGViYXJDb250ZXh0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1TaWRlYmFyQ29udGV4dC5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuXG5jb25zdCBTaWRlYmFySXRlbUNvbnRleHQgPSBjcmVhdGVDb250ZXh0KHZvaWQgMCk7XG5mdW5jdGlvbiB1c2VTaWRlYmFySXRlbUNvbnRleHQoKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KFNpZGViYXJJdGVtQ29udGV4dCk7XG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcInVzZVNpZGViYXJJdGVtQ29udGV4dCBzaG91bGQgYmUgdXNlZCB3aXRoaW4gdGhlIFNpZGViYXJJdGVtQ29udGV4dCBwcm92aWRlciFcIik7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbmV4cG9ydCB7IFNpZGViYXJJdGVtQ29udGV4dCwgdXNlU2lkZWJhckl0ZW1Db250ZXh0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1TaWRlYmFySXRlbUNvbnRleHQubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4cywganN4LCBGcmFnbWVudCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHVzZUlkLCB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSGlDaGV2cm9uRG93biB9IGZyb20gJ3JlYWN0LWljb25zL2hpJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICcuLi9Ub29sdGlwL1Rvb2x0aXAubWpzJztcbmltcG9ydCB7IHVzZVNpZGViYXJDb250ZXh0IH0gZnJvbSAnLi9TaWRlYmFyQ29udGV4dC5tanMnO1xuaW1wb3J0IHsgU2lkZWJhckl0ZW1Db250ZXh0IH0gZnJvbSAnLi9TaWRlYmFySXRlbUNvbnRleHQubWpzJztcblxuY29uc3QgU2lkZWJhckNvbGxhcHNlID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgaWNvbjogSWNvbixcbiAgbGFiZWwsXG4gIGNoZXZyb25JY29uOiBDaGV2cm9uSWNvbiA9IEhpQ2hldnJvbkRvd24sXG4gIHJlbmRlckNoZXZyb25JY29uLFxuICBvcGVuID0gZmFsc2UsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCBpZCA9IHVzZUlkKCk7XG4gIGNvbnN0IFtpc09wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUob3Blbik7XG4gIGNvbnN0IHsgdGhlbWU6IHJvb3RUaGVtZSwgaXNDb2xsYXBzZWQgfSA9IHVzZVNpZGViYXJDb250ZXh0KCk7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKHJvb3RUaGVtZS5jb2xsYXBzZSwgY3VzdG9tVGhlbWUpO1xuICB1c2VFZmZlY3QoKCkgPT4gc2V0T3BlbihvcGVuKSwgW29wZW5dKTtcbiAgY29uc3QgV3JhcHBlciA9ICh7IGNoaWxkcmVuOiBjaGlsZHJlbjIgfSkgPT4gLyogQF9fUFVSRV9fICovIGpzeChcImxpXCIsIHsgY2hpbGRyZW46IGlzQ29sbGFwc2VkICYmICFpc09wZW4gPyAvKiBAX19QVVJFX18gKi8ganN4KFRvb2x0aXAsIHsgY29udGVudDogbGFiZWwsIHBsYWNlbWVudDogXCJyaWdodFwiLCBjaGlsZHJlbjogY2hpbGRyZW4yIH0pIDogY2hpbGRyZW4yIH0pO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoV3JhcHBlciwgeyBjaGlsZHJlbjogW1xuICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFxuICAgICAgXCJidXR0b25cIixcbiAgICAgIHtcbiAgICAgICAgaWQ6IGBmbG93Yml0ZS1zaWRlYmFyLWNvbGxhcHNlLSR7aWR9YCxcbiAgICAgICAgb25DbGljazogKCkgPT4gc2V0T3BlbighaXNPcGVuKSxcbiAgICAgICAgdGl0bGU6IGxhYmVsLFxuICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYnV0dG9uLCBjbGFzc05hbWUpLFxuICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICBJY29uICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgICBJY29uLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBcImFyaWEtaGlkZGVuXCI6IHRydWUsXG4gICAgICAgICAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1zaWRlYmFyLWNvbGxhcHNlLWljb25cIixcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmljb24uYmFzZSwgdGhlbWUuaWNvbi5vcGVuW2lzT3BlbiA/IFwib25cIiA6IFwib2ZmXCJdKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICksXG4gICAgICAgICAgaXNDb2xsYXBzZWQgPyAvKiBAX19QVVJFX18gKi8ganN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogXCJzci1vbmx5XCIsIGNoaWxkcmVuOiBsYWJlbCB9KSA6IC8qIEBfX1BVUkVfXyAqLyBqc3hzKEZyYWdtZW50LCB7IGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4KFwic3BhblwiLCB7IFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1zaWRlYmFyLWNvbGxhcHNlLWxhYmVsXCIsIGNsYXNzTmFtZTogdGhlbWUubGFiZWwuYmFzZSwgY2hpbGRyZW46IGxhYmVsIH0pLFxuICAgICAgICAgICAgcmVuZGVyQ2hldnJvbkljb24gPyByZW5kZXJDaGV2cm9uSWNvbih0aGVtZSwgaXNPcGVuKSA6IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgICAgIENoZXZyb25JY29uLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJhcmlhLWhpZGRlblwiOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5sYWJlbC5pY29uLmJhc2UsIHRoZW1lLmxhYmVsLmljb24ub3Blbltpc09wZW4gPyBcIm9uXCIgOiBcIm9mZlwiXSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICAgIF0gfSlcbiAgICAgICAgXVxuICAgICAgfVxuICAgICksXG4gICAgLyogQF9fUFVSRV9fICovIGpzeChcInVsXCIsIHsgXCJhcmlhLWxhYmVsbGVkYnlcIjogYGZsb3diaXRlLXNpZGViYXItY29sbGFwc2UtJHtpZH1gLCBoaWRkZW46ICFpc09wZW4sIGNsYXNzTmFtZTogdGhlbWUubGlzdCwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goU2lkZWJhckl0ZW1Db250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IGlzSW5zaWRlQ29sbGFwc2U6IHRydWUgfSwgY2hpbGRyZW4gfSkgfSlcbiAgXSB9KTtcbn07XG5TaWRlYmFyQ29sbGFwc2UuZGlzcGxheU5hbWUgPSBcIlNpZGViYXIuQ29sbGFwc2VcIjtcblxuZXhwb3J0IHsgU2lkZWJhckNvbGxhcHNlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1TaWRlYmFyQ29sbGFwc2UubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlU2lkZWJhckNvbnRleHQgfSBmcm9tICcuL1NpZGViYXJDb250ZXh0Lm1qcyc7XG5cbmNvbnN0IFNpZGViYXJDVEEgPSAoe1xuICBjaGlsZHJlbixcbiAgY29sb3IgPSBcImluZm9cIixcbiAgY2xhc3NOYW1lLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgeyB0aGVtZTogcm9vdFRoZW1lLCBpc0NvbGxhcHNlZCB9ID0gdXNlU2lkZWJhckNvbnRleHQoKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAocm9vdFRoZW1lLmN0YSwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBcImRpdlwiLFxuICAgIHtcbiAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJzaWRlYmFyLWN0YVwiLFxuICAgICAgaGlkZGVuOiBpc0NvbGxhcHNlZCxcbiAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCB0aGVtZS5jb2xvcltjb2xvcl0sIGNsYXNzTmFtZSksXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuXG4gICAgfVxuICApO1xufTtcblNpZGViYXJDVEEuZGlzcGxheU5hbWUgPSBcIlNpZGViYXIuQ1RBXCI7XG5cbmV4cG9ydCB7IFNpZGViYXJDVEEgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNpZGViYXJDVEEubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgdXNlSWQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBCYWRnZSB9IGZyb20gJy4uL0JhZGdlL0JhZGdlLm1qcyc7XG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnLi4vVG9vbHRpcC9Ub29sdGlwLm1qcyc7XG5pbXBvcnQgeyB1c2VTaWRlYmFyQ29udGV4dCB9IGZyb20gJy4vU2lkZWJhckNvbnRleHQubWpzJztcbmltcG9ydCB7IHVzZVNpZGViYXJJdGVtQ29udGV4dCB9IGZyb20gJy4vU2lkZWJhckl0ZW1Db250ZXh0Lm1qcyc7XG5cbmNvbnN0IExpc3RJdGVtID0gKHsgaWQsIHRoZW1lLCBpc0NvbGxhcHNlZCwgdG9vbHRpcENoaWxkcmVuLCBjaGlsZHJlbjogd3JhcHBlckNoaWxkcmVuLCAuLi5wcm9wcyB9KSA9PiAvKiBAX19QVVJFX18gKi8ganN4KFwibGlcIiwgeyAuLi5wcm9wcywgY2hpbGRyZW46IGlzQ29sbGFwc2VkID8gLyogQF9fUFVSRV9fICovIGpzeChcbiAgVG9vbHRpcCxcbiAge1xuICAgIGNvbnRlbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3goQ2hpbGRyZW4sIHsgaWQsIHRoZW1lLCBjaGlsZHJlbjogdG9vbHRpcENoaWxkcmVuIH0pLFxuICAgIHBsYWNlbWVudDogXCJyaWdodFwiLFxuICAgIGNoaWxkcmVuOiB3cmFwcGVyQ2hpbGRyZW5cbiAgfVxuKSA6IHdyYXBwZXJDaGlsZHJlbiB9KTtcbmNvbnN0IENoaWxkcmVuID0gKHsgaWQsIHRoZW1lLCBjaGlsZHJlbiB9KSA9PiB7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIFwic3BhblwiLFxuICAgIHtcbiAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1zaWRlYmFyLWl0ZW0tY29udGVudFwiLFxuICAgICAgaWQ6IGBmbG93Yml0ZS1zaWRlYmFyLWl0ZW0tJHtpZH1gLFxuICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmNvbnRlbnQuYmFzZSksXG4gICAgICBjaGlsZHJlblxuICAgIH1cbiAgKTtcbn07XG5jb25zdCBTaWRlYmFySXRlbSA9IGZvcndhcmRSZWYoXG4gICh7XG4gICAgYWN0aXZlOiBpc0FjdGl2ZSxcbiAgICBhczogQ29tcG9uZW50ID0gXCJhXCIsXG4gICAgY2hpbGRyZW4sXG4gICAgY2xhc3NOYW1lLFxuICAgIGljb246IEljb24sXG4gICAgbGFiZWwsXG4gICAgbGFiZWxDb2xvciA9IFwiaW5mb1wiLFxuICAgIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAgIC4uLnByb3BzXG4gIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IGlkID0gdXNlSWQoKTtcbiAgICBjb25zdCB7IHRoZW1lOiByb290VGhlbWUsIGlzQ29sbGFwc2VkIH0gPSB1c2VTaWRlYmFyQ29udGV4dCgpO1xuICAgIGNvbnN0IHsgaXNJbnNpZGVDb2xsYXBzZSB9ID0gdXNlU2lkZWJhckl0ZW1Db250ZXh0KCk7XG4gICAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAocm9vdFRoZW1lLml0ZW0sIGN1c3RvbVRoZW1lKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChMaXN0SXRlbSwgeyB0aGVtZSwgY2xhc3NOYW1lOiB0aGVtZS5saXN0SXRlbSwgaWQsIGlzQ29sbGFwc2VkLCB0b29sdGlwQ2hpbGRyZW46IGNoaWxkcmVuLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoXG4gICAgICBDb21wb25lbnQsXG4gICAgICB7XG4gICAgICAgIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IGBmbG93Yml0ZS1zaWRlYmFyLWl0ZW0tJHtpZH1gLFxuICAgICAgICByZWYsXG4gICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZShcbiAgICAgICAgICB0aGVtZS5iYXNlLFxuICAgICAgICAgIGlzQWN0aXZlICYmIHRoZW1lLmFjdGl2ZSxcbiAgICAgICAgICAhaXNDb2xsYXBzZWQgJiYgaXNJbnNpZGVDb2xsYXBzZSAmJiB0aGVtZS5jb2xsYXBzZWQ/Lmluc2lkZUNvbGxhcHNlLFxuICAgICAgICAgIGNsYXNzTmFtZVxuICAgICAgICApLFxuICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICBJY29uICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgICBJY29uLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBcImFyaWEtaGlkZGVuXCI6IHRydWUsXG4gICAgICAgICAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1zaWRlYmFyLWl0ZW0taWNvblwiLFxuICAgICAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuaWNvbj8uYmFzZSwgaXNBY3RpdmUgJiYgdGhlbWUuaWNvbj8uYWN0aXZlKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICksXG4gICAgICAgICAgaXNDb2xsYXBzZWQgJiYgIUljb24gJiYgLyogQF9fUFVSRV9fICovIGpzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IHRoZW1lLmNvbGxhcHNlZD8ubm9JY29uLCBjaGlsZHJlbjogY2hpbGRyZW4uY2hhckF0KDApLnRvTG9jYWxlVXBwZXJDYXNlKCkgPz8gXCI/XCIgfSksXG4gICAgICAgICAgIWlzQ29sbGFwc2VkICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goQ2hpbGRyZW4sIHsgaWQsIHRoZW1lLCBjaGlsZHJlbiB9KSxcbiAgICAgICAgICAhaXNDb2xsYXBzZWQgJiYgbGFiZWwgJiYgLyogQF9fUFVSRV9fICovIGpzeChCYWRnZSwgeyBjb2xvcjogbGFiZWxDb2xvciwgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLXNpZGViYXItbGFiZWxcIiwgaGlkZGVuOiBpc0NvbGxhcHNlZCwgY2xhc3NOYW1lOiB0aGVtZS5sYWJlbCwgY2hpbGRyZW46IGxhYmVsIH0pXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICApIH0pO1xuICB9XG4pO1xuU2lkZWJhckl0ZW0uZGlzcGxheU5hbWUgPSBcIlNpZGViYXIuSXRlbVwiO1xuXG5leHBvcnQgeyBTaWRlYmFySXRlbSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2lkZWJhckl0ZW0ubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlU2lkZWJhckNvbnRleHQgfSBmcm9tICcuL1NpZGViYXJDb250ZXh0Lm1qcyc7XG5pbXBvcnQgeyBTaWRlYmFySXRlbUNvbnRleHQgfSBmcm9tICcuL1NpZGViYXJJdGVtQ29udGV4dC5tanMnO1xuXG5jb25zdCBTaWRlYmFySXRlbUdyb3VwID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHsgdGhlbWU6IHJvb3RUaGVtZSB9ID0gdXNlU2lkZWJhckNvbnRleHQoKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAocm9vdFRoZW1lLml0ZW1Hcm91cCwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcInVsXCIsIHsgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLXNpZGViYXItaXRlbS1ncm91cFwiLCBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSwgLi4ucHJvcHMsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFNpZGViYXJJdGVtQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogeyBpc0luc2lkZUNvbGxhcHNlOiBmYWxzZSB9LCBjaGlsZHJlbiB9KSB9KTtcbn07XG5TaWRlYmFySXRlbUdyb3VwLmRpc3BsYXlOYW1lID0gXCJTaWRlYmFyLkl0ZW1Hcm91cFwiO1xuXG5leHBvcnQgeyBTaWRlYmFySXRlbUdyb3VwIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1TaWRlYmFySXRlbUdyb3VwLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IHVzZVNpZGViYXJDb250ZXh0IH0gZnJvbSAnLi9TaWRlYmFyQ29udGV4dC5tanMnO1xuXG5jb25zdCBTaWRlYmFySXRlbXMgPSAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgLi4ucHJvcHMgfSkgPT4ge1xuICBjb25zdCB7IHRoZW1lOiByb290VGhlbWUgfSA9IHVzZVNpZGViYXJDb250ZXh0KCk7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKHJvb3RUaGVtZS5pdGVtcywgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLCBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtc2lkZWJhci1pdGVtc1wiLCAuLi5wcm9wcywgY2hpbGRyZW4gfSk7XG59O1xuU2lkZWJhckl0ZW1zLmRpc3BsYXlOYW1lID0gXCJTaWRlYmFyLkl0ZW1zXCI7XG5cbmV4cG9ydCB7IFNpZGViYXJJdGVtcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2lkZWJhckl0ZW1zLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeHMsIGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlU2lkZWJhckNvbnRleHQgfSBmcm9tICcuL1NpZGViYXJDb250ZXh0Lm1qcyc7XG5cbmNvbnN0IFNpZGViYXJMb2dvID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgaHJlZixcbiAgaW1nLFxuICBpbWdBbHQgPSBcIlwiLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgaWQgPSB1c2VJZCgpO1xuICBjb25zdCB7IHRoZW1lOiByb290VGhlbWUsIGlzQ29sbGFwc2VkIH0gPSB1c2VTaWRlYmFyQ29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChyb290VGhlbWUubG9nbywgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoXG4gICAgXCJhXCIsXG4gICAge1xuICAgICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogYGZsb3diaXRlLXNpZGViYXItbG9nby0ke2lkfWAsXG4gICAgICBocmVmLFxuICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJpbWdcIiwgeyBhbHQ6IGltZ0FsdCwgc3JjOiBpbWcsIGNsYXNzTmFtZTogdGhlbWUuaW1nIH0pLFxuICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogdGhlbWUuY29sbGFwc2VkW2lzQ29sbGFwc2VkID8gXCJvblwiIDogXCJvZmZcIl0sIGlkOiBgZmxvd2JpdGUtc2lkZWJhci1sb2dvLSR7aWR9YCwgY2hpbGRyZW4gfSlcbiAgICAgIF1cbiAgICB9XG4gICk7XG59O1xuU2lkZWJhckxvZ28uZGlzcGxheU5hbWUgPSBcIlNpZGViYXIuTG9nb1wiO1xuXG5leHBvcnQgeyBTaWRlYmFyTG9nbyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2lkZWJhckxvZ28ubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgU2lkZWJhckNvbGxhcHNlIH0gZnJvbSAnLi9TaWRlYmFyQ29sbGFwc2UubWpzJztcbmltcG9ydCB7IFNpZGViYXJDb250ZXh0IH0gZnJvbSAnLi9TaWRlYmFyQ29udGV4dC5tanMnO1xuaW1wb3J0IHsgU2lkZWJhckNUQSB9IGZyb20gJy4vU2lkZWJhckNUQS5tanMnO1xuaW1wb3J0IHsgU2lkZWJhckl0ZW0gfSBmcm9tICcuL1NpZGViYXJJdGVtLm1qcyc7XG5pbXBvcnQgeyBTaWRlYmFySXRlbUdyb3VwIH0gZnJvbSAnLi9TaWRlYmFySXRlbUdyb3VwLm1qcyc7XG5pbXBvcnQgeyBTaWRlYmFySXRlbXMgfSBmcm9tICcuL1NpZGViYXJJdGVtcy5tanMnO1xuaW1wb3J0IHsgU2lkZWJhckxvZ28gfSBmcm9tICcuL1NpZGViYXJMb2dvLm1qcyc7XG5cbmNvbnN0IFNpZGViYXJDb21wb25lbnQgPSAoe1xuICBjaGlsZHJlbixcbiAgYXM6IENvbXBvbmVudCA9IFwibmF2XCIsXG4gIGNvbGxhcHNlQmVoYXZpb3IgPSBcImNvbGxhcHNlXCIsXG4gIGNvbGxhcHNlZDogaXNDb2xsYXBzZWQgPSBmYWxzZSxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIGNsYXNzTmFtZSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5zaWRlYmFyLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFNpZGViYXJDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IHRoZW1lLCBpc0NvbGxhcHNlZCB9LCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBDb21wb25lbnQsXG4gICAge1xuICAgICAgXCJhcmlhLWxhYmVsXCI6IFwiU2lkZWJhclwiLFxuICAgICAgaGlkZGVuOiBpc0NvbGxhcHNlZCAmJiBjb2xsYXBzZUJlaGF2aW9yID09PSBcImhpZGVcIixcbiAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5yb290LmJhc2UsIHRoZW1lLnJvb3QuY29sbGFwc2VkW2lzQ29sbGFwc2VkID8gXCJvblwiIDogXCJvZmZcIl0sIGNsYXNzTmFtZSksXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5yb290LmlubmVyLCBjaGlsZHJlbiB9KVxuICAgIH1cbiAgKSB9KTtcbn07XG5TaWRlYmFyQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJTaWRlYmFyXCI7XG5jb25zdCBTaWRlYmFyID0gT2JqZWN0LmFzc2lnbihTaWRlYmFyQ29tcG9uZW50LCB7XG4gIENvbGxhcHNlOiBTaWRlYmFyQ29sbGFwc2UsXG4gIENUQTogU2lkZWJhckNUQSxcbiAgSXRlbTogU2lkZWJhckl0ZW0sXG4gIEl0ZW1zOiBTaWRlYmFySXRlbXMsXG4gIEl0ZW1Hcm91cDogU2lkZWJhckl0ZW1Hcm91cCxcbiAgTG9nbzogU2lkZWJhckxvZ29cbn0pO1xuXG5leHBvcnQgeyBTaWRlYmFyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1TaWRlYmFyLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IFRhYmxlQm9keUNvbnRleHQgPSBjcmVhdGVDb250ZXh0KHZvaWQgMCk7XG5mdW5jdGlvbiB1c2VUYWJsZUJvZHlDb250ZXh0KCkge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChUYWJsZUJvZHlDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwidXNlVGFibGVCb2R5Q29udGV4dCBzaG91bGQgYmUgdXNlZCB3aXRoaW4gdGhlIFRhYmxlQm9keUNvbnRleHQgcHJvdmlkZXIhXCIpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufVxuXG5leHBvcnQgeyBUYWJsZUJvZHlDb250ZXh0LCB1c2VUYWJsZUJvZHlDb250ZXh0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UYWJsZUJvZHlDb250ZXh0Lm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IFRhYmxlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQodm9pZCAwKTtcbmZ1bmN0aW9uIHVzZVRhYmxlQ29udGV4dCgpIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoVGFibGVDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwidXNlVGFibGVDb250ZXh0IHNob3VsZCBiZSB1c2VkIHdpdGhpbiB0aGUgVGFibGVDb250ZXh0IHByb3ZpZGVyIVwiKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn1cblxuZXhwb3J0IHsgVGFibGVDb250ZXh0LCB1c2VUYWJsZUNvbnRleHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRhYmxlQ29udGV4dC5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgVGFibGVCb2R5Q29udGV4dCB9IGZyb20gJy4vVGFibGVCb2R5Q29udGV4dC5tanMnO1xuaW1wb3J0IHsgdXNlVGFibGVDb250ZXh0IH0gZnJvbSAnLi9UYWJsZUNvbnRleHQubWpzJztcblxuY29uc3QgVGFibGVCb2R5ID0gZm9yd2FyZFJlZihcbiAgKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IHsgdGhlbWU6IHJvb3RUaGVtZSB9ID0gdXNlVGFibGVDb250ZXh0KCk7XG4gICAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAocm9vdFRoZW1lLmJvZHksIGN1c3RvbVRoZW1lKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChUYWJsZUJvZHlDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IHRoZW1lIH0sIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFwidGJvZHlcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSwgcmVmLCAuLi5wcm9wcywgY2hpbGRyZW4gfSkgfSk7XG4gIH1cbik7XG5UYWJsZUJvZHkuZGlzcGxheU5hbWUgPSBcIlRhYmxlLkJvZHlcIjtcblxuZXhwb3J0IHsgVGFibGVCb2R5IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UYWJsZUJvZHkubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IHVzZVRhYmxlQm9keUNvbnRleHQgfSBmcm9tICcuL1RhYmxlQm9keUNvbnRleHQubWpzJztcblxuY29uc3QgVGFibGVDZWxsID0gZm9yd2FyZFJlZihcbiAgKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IHsgdGhlbWU6IGJvZHlUaGVtZSB9ID0gdXNlVGFibGVCb2R5Q29udGV4dCgpO1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGJvZHlUaGVtZS5jZWxsLCBjdXN0b21UaGVtZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJ0ZFwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLCByZWYsIC4uLnByb3BzLCBjaGlsZHJlbiB9KTtcbiAgfVxuKTtcblRhYmxlQ2VsbC5kaXNwbGF5TmFtZSA9IFwiVGFibGUuQ2VsbFwiO1xuXG5leHBvcnQgeyBUYWJsZUNlbGwgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRhYmxlQ2VsbC5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuXG5jb25zdCBUYWJsZUhlYWRDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh2b2lkIDApO1xuZnVuY3Rpb24gdXNlVGFibGVIZWFkQ29udGV4dCgpIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoVGFibGVIZWFkQ29udGV4dCk7XG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcInVzZVRhYmxlSGVhZENvbnRleHQgc2hvdWxkIGJlIHVzZWQgd2l0aGluIHRoZSBUYWJsZUhlYWRDb250ZXh0IHByb3ZpZGVyIVwiKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn1cblxuZXhwb3J0IHsgVGFibGVIZWFkQ29udGV4dCwgdXNlVGFibGVIZWFkQ29udGV4dCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VGFibGVIZWFkQ29udGV4dC5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlVGFibGVDb250ZXh0IH0gZnJvbSAnLi9UYWJsZUNvbnRleHQubWpzJztcbmltcG9ydCB7IFRhYmxlSGVhZENvbnRleHQgfSBmcm9tICcuL1RhYmxlSGVhZENvbnRleHQubWpzJztcblxuY29uc3QgVGFibGVIZWFkID0gZm9yd2FyZFJlZihcbiAgKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IHsgdGhlbWU6IHJvb3RUaGVtZSB9ID0gdXNlVGFibGVDb250ZXh0KCk7XG4gICAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAocm9vdFRoZW1lLmhlYWQsIGN1c3RvbVRoZW1lKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChUYWJsZUhlYWRDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IHRoZW1lIH0sIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFwidGhlYWRcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSwgcmVmLCAuLi5wcm9wcywgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJ0clwiLCB7IGNoaWxkcmVuIH0pIH0pIH0pO1xuICB9XG4pO1xuVGFibGVIZWFkLmRpc3BsYXlOYW1lID0gXCJUYWJsZS5IZWFkXCI7XG5cbmV4cG9ydCB7IFRhYmxlSGVhZCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VGFibGVIZWFkLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyB1c2VUYWJsZUhlYWRDb250ZXh0IH0gZnJvbSAnLi9UYWJsZUhlYWRDb250ZXh0Lm1qcyc7XG5cbmNvbnN0IFRhYmxlSGVhZENlbGwgPSBmb3J3YXJkUmVmKFxuICAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgLi4ucHJvcHMgfSwgcmVmKSA9PiB7XG4gICAgY29uc3QgeyB0aGVtZTogaGVhZFRoZW1lIH0gPSB1c2VUYWJsZUhlYWRDb250ZXh0KCk7XG4gICAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoaGVhZFRoZW1lLmNlbGwsIGN1c3RvbVRoZW1lKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcInRoXCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksIHJlZiwgLi4ucHJvcHMsIGNoaWxkcmVuIH0pO1xuICB9XG4pO1xuVGFibGVIZWFkQ2VsbC5kaXNwbGF5TmFtZSA9IFwiVGFibGUuSGVhZENlbGxcIjtcblxuZXhwb3J0IHsgVGFibGVIZWFkQ2VsbCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VGFibGVIZWFkQ2VsbC5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlVGFibGVDb250ZXh0IH0gZnJvbSAnLi9UYWJsZUNvbnRleHQubWpzJztcblxuY29uc3QgVGFibGVSb3cgPSBmb3J3YXJkUmVmKFxuICAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgLi4ucHJvcHMgfSwgcmVmKSA9PiB7XG4gICAgY29uc3QgeyB0aGVtZTogcm9vdFRoZW1lLCBob3ZlcmFibGUsIHN0cmlwZWQgfSA9IHVzZVRhYmxlQ29udGV4dCgpO1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKHJvb3RUaGVtZS5yb3csIGN1c3RvbVRoZW1lKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFwidHJcIixcbiAgICAgIHtcbiAgICAgICAgcmVmLFxuICAgICAgICBcImRhdGEtdGVzdGlkXCI6IFwidGFibGUtcm93LWVsZW1lbnRcIixcbiAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIHN0cmlwZWQgJiYgdGhlbWUuc3RyaXBlZCwgaG92ZXJhYmxlICYmIHRoZW1lLmhvdmVyZWQsIGNsYXNzTmFtZSksXG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICBjaGlsZHJlblxuICAgICAgfVxuICAgICk7XG4gIH1cbik7XG5UYWJsZVJvdy5kaXNwbGF5TmFtZSA9IFwiVGFibGUuUm93XCI7XG5cbmV4cG9ydCB7IFRhYmxlUm93IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UYWJsZVJvdy5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3gsIGpzeHMgfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgVGFibGVCb2R5IH0gZnJvbSAnLi9UYWJsZUJvZHkubWpzJztcbmltcG9ydCB7IFRhYmxlQ2VsbCB9IGZyb20gJy4vVGFibGVDZWxsLm1qcyc7XG5pbXBvcnQgeyBUYWJsZUNvbnRleHQgfSBmcm9tICcuL1RhYmxlQ29udGV4dC5tanMnO1xuaW1wb3J0IHsgVGFibGVIZWFkIH0gZnJvbSAnLi9UYWJsZUhlYWQubWpzJztcbmltcG9ydCB7IFRhYmxlSGVhZENlbGwgfSBmcm9tICcuL1RhYmxlSGVhZENlbGwubWpzJztcbmltcG9ydCB7IFRhYmxlUm93IH0gZnJvbSAnLi9UYWJsZVJvdy5tanMnO1xuXG5jb25zdCBUYWJsZUNvbXBvbmVudCA9IGZvcndhcmRSZWYoXG4gICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHN0cmlwZWQsIGhvdmVyYWJsZSwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkudGFibGUsIGN1c3RvbVRoZW1lKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IFwiZGF0YS10ZXN0aWRcIjogXCJ0YWJsZS1lbGVtZW50XCIsIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5yb290LndyYXBwZXIpLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoVGFibGVDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IHRoZW1lLCBzdHJpcGVkLCBob3ZlcmFibGUgfSwgY2hpbGRyZW46IFtcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUucm9vdC5zaGFkb3csIGNsYXNzTmFtZSkgfSksXG4gICAgICAvKiBAX19QVVJFX18gKi8ganN4KFwidGFibGVcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUucm9vdC5iYXNlLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgcmVmLCBjaGlsZHJlbiB9KVxuICAgIF0gfSkgfSk7XG4gIH1cbik7XG5UYWJsZUNvbXBvbmVudC5kaXNwbGF5TmFtZSA9IFwiVGFibGVcIjtcbmNvbnN0IFRhYmxlID0gT2JqZWN0LmFzc2lnbihUYWJsZUNvbXBvbmVudCwge1xuICBIZWFkOiBUYWJsZUhlYWQsXG4gIEJvZHk6IFRhYmxlQm9keSxcbiAgUm93OiBUYWJsZVJvdyxcbiAgQ2VsbDogVGFibGVDZWxsLFxuICBIZWFkQ2VsbDogVGFibGVIZWFkQ2VsbFxufSk7XG5cbmV4cG9ydCB7IFRhYmxlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UYWJsZS5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5cbmNvbnN0IFRhYkl0ZW0gPSAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lIH0pID0+IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWUsIGNoaWxkcmVuIH0pO1xuVGFiSXRlbS5kaXNwbGF5TmFtZSA9IFwiVGFicy5JdGVtXCI7XG5cbmV4cG9ydCB7IFRhYkl0ZW0gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRhYkl0ZW0ubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4cywganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgdXNlSWQsIHVzZU1lbW8sIENoaWxkcmVuLCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZUltcGVyYXRpdmVIYW5kbGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBUYWJJdGVtIH0gZnJvbSAnLi9UYWJJdGVtLm1qcyc7XG5cbmNvbnN0IFRhYnNDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBvbkFjdGl2ZVRhYkNoYW5nZSwgdmFyaWFudCA9IFwiZGVmYXVsdFwiLCB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgLi4ucHJvcHMgfSwgcmVmKSA9PiB7XG4gICAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS50YWJzLCBjdXN0b21UaGVtZSk7XG4gICAgY29uc3QgaWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHRhYnMgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gQ2hpbGRyZW4ubWFwKFxuICAgICAgICBDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKSxcbiAgICAgICAgKHsgcHJvcHM6IHByb3BzMiB9KSA9PiBwcm9wczJcbiAgICAgICksXG4gICAgICBbY2hpbGRyZW5dXG4gICAgKTtcbiAgICBjb25zdCB0YWJSZWZzID0gdXNlUmVmKFtdKTtcbiAgICBjb25zdCBbYWN0aXZlVGFiLCBzZXRBY3RpdmVUYWJdID0gdXNlU3RhdGUoXG4gICAgICBNYXRoLm1heChcbiAgICAgICAgMCxcbiAgICAgICAgdGFicy5maW5kSW5kZXgoKHRhYikgPT4gdGFiLmFjdGl2ZSlcbiAgICAgIClcbiAgICApO1xuICAgIGNvbnN0IFtmb2N1c2VkVGFiLCBzZXRGb2N1c2VkVGFiXSA9IHVzZVN0YXRlKC0xKTtcbiAgICBjb25zdCBzZXRBY3RpdmVUYWJXaXRoQ2FsbGJhY2sgPSAoYWN0aXZlVGFiMikgPT4ge1xuICAgICAgc2V0QWN0aXZlVGFiKGFjdGl2ZVRhYjIpO1xuICAgICAgaWYgKG9uQWN0aXZlVGFiQ2hhbmdlKSBvbkFjdGl2ZVRhYkNoYW5nZShhY3RpdmVUYWIyKTtcbiAgICB9O1xuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gKHsgdGFyZ2V0IH0pID0+IHtcbiAgICAgIHNldEFjdGl2ZVRhYldpdGhDYWxsYmFjayh0YXJnZXQpO1xuICAgICAgc2V0Rm9jdXNlZFRhYih0YXJnZXQpO1xuICAgIH07XG4gICAgY29uc3QgaGFuZGxlS2V5Ym9hcmQgPSAoeyBldmVudCwgdGFyZ2V0IH0pID0+IHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dMZWZ0XCIpIHtcbiAgICAgICAgc2V0Rm9jdXNlZFRhYihNYXRoLm1heCgwLCBmb2N1c2VkVGFiIC0gMSkpO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gXCJBcnJvd1JpZ2h0XCIpIHtcbiAgICAgICAgc2V0Rm9jdXNlZFRhYihNYXRoLm1pbih0YWJzLmxlbmd0aCAtIDEsIGZvY3VzZWRUYWIgKyAxKSk7XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgc2V0QWN0aXZlVGFiV2l0aENhbGxiYWNrKHRhcmdldCk7XG4gICAgICAgIHNldEZvY3VzZWRUYWIodGFyZ2V0KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IHRhYkl0ZW1TdHlsZSA9IHRoZW1lLnRhYmxpc3QudGFiaXRlbS52YXJpYW50W3ZhcmlhbnRdO1xuICAgIGNvbnN0IHRhYkl0ZW1Db250YWluZXJTdHlsZSA9IHRoZW1lLnRhYml0ZW1jb250YWluZXIudmFyaWFudFt2YXJpYW50XTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgdGFiUmVmcy5jdXJyZW50W2ZvY3VzZWRUYWJdPy5mb2N1cygpO1xuICAgIH0sIFtmb2N1c2VkVGFiXSk7XG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+ICh7XG4gICAgICBzZXRBY3RpdmVUYWI6IHNldEFjdGl2ZVRhYldpdGhDYWxsYmFja1xuICAgIH0pKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSwgY2hpbGRyZW46IFtcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHtcbiAgICAgICAgICBcImFyaWEtbGFiZWxcIjogXCJUYWJzXCIsXG4gICAgICAgICAgcm9sZTogXCJ0YWJsaXN0XCIsXG4gICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLnRhYmxpc3QuYmFzZSwgdGhlbWUudGFibGlzdC52YXJpYW50W3ZhcmlhbnRdLCBjbGFzc05hbWUpLFxuICAgICAgICAgIC4uLnByb3BzLFxuICAgICAgICAgIGNoaWxkcmVuOiB0YWJzLm1hcCgodGFiLCBpbmRleCkgPT4gLyogQF9fUFVSRV9fICovIGpzeHMoXG4gICAgICAgICAgICBcImJ1dHRvblwiLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICBcImFyaWEtY29udHJvbHNcIjogYCR7aWR9LXRhYnBhbmVsLSR7aW5kZXh9YCxcbiAgICAgICAgICAgICAgXCJhcmlhLXNlbGVjdGVkXCI6IGluZGV4ID09PSBhY3RpdmVUYWIsXG4gICAgICAgICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZShcbiAgICAgICAgICAgICAgICB0aGVtZS50YWJsaXN0LnRhYml0ZW0uYmFzZSxcbiAgICAgICAgICAgICAgICB0YWJJdGVtU3R5bGUuYmFzZSxcbiAgICAgICAgICAgICAgICBpbmRleCA9PT0gYWN0aXZlVGFiICYmIHRhYkl0ZW1TdHlsZS5hY3RpdmUub24sXG4gICAgICAgICAgICAgICAgaW5kZXggIT09IGFjdGl2ZVRhYiAmJiAhdGFiLmRpc2FibGVkICYmIHRhYkl0ZW1TdHlsZS5hY3RpdmUub2ZmXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGRpc2FibGVkOiB0YWIuZGlzYWJsZWQsXG4gICAgICAgICAgICAgIGlkOiBgJHtpZH0tdGFiLSR7aW5kZXh9YCxcbiAgICAgICAgICAgICAgb25DbGljazogKCkgPT4gaGFuZGxlQ2xpY2soeyB0YXJnZXQ6IGluZGV4IH0pLFxuICAgICAgICAgICAgICBvbktleURvd246IChldmVudCkgPT4gaGFuZGxlS2V5Ym9hcmQoeyBldmVudCwgdGFyZ2V0OiBpbmRleCB9KSxcbiAgICAgICAgICAgICAgcmVmOiAoZWxlbWVudCkgPT4gdGFiUmVmcy5jdXJyZW50W2luZGV4XSA9IGVsZW1lbnQsXG4gICAgICAgICAgICAgIHJvbGU6IFwidGFiXCIsXG4gICAgICAgICAgICAgIHRhYkluZGV4OiBpbmRleCA9PT0gZm9jdXNlZFRhYiA/IDAgOiAtMSxcbiAgICAgICAgICAgICAgc3R5bGU6IHsgekluZGV4OiBpbmRleCA9PT0gZm9jdXNlZFRhYiA/IDIgOiAxIH0sXG4gICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgdGFiLmljb24gJiYgLyogQF9fUFVSRV9fICovIGpzeCh0YWIuaWNvbiwgeyBjbGFzc05hbWU6IHRoZW1lLnRhYmxpc3QudGFiaXRlbS5pY29uIH0pLFxuICAgICAgICAgICAgICAgIHRhYi50aXRsZVxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaW5kZXhcbiAgICAgICAgICApKVxuICAgICAgICB9XG4gICAgICApLFxuICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS50YWJpdGVtY29udGFpbmVyLmJhc2UsIHRhYkl0ZW1Db250YWluZXJTdHlsZSksIGNoaWxkcmVuOiB0YWJzLm1hcCgodGFiLCBpbmRleCkgPT4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgXCJkaXZcIixcbiAgICAgICAge1xuICAgICAgICAgIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IGAke2lkfS10YWItJHtpbmRleH1gLFxuICAgICAgICAgIGNsYXNzTmFtZTogdGhlbWUudGFicGFuZWwsXG4gICAgICAgICAgaGlkZGVuOiBpbmRleCAhPT0gYWN0aXZlVGFiLFxuICAgICAgICAgIGlkOiBgJHtpZH0tdGFicGFuZWwtJHtpbmRleH1gLFxuICAgICAgICAgIHJvbGU6IFwidGFicGFuZWxcIixcbiAgICAgICAgICB0YWJJbmRleDogMCxcbiAgICAgICAgICBjaGlsZHJlbjogdGFiLmNoaWxkcmVuXG4gICAgICAgIH0sXG4gICAgICAgIGluZGV4XG4gICAgICApKSB9KVxuICAgIF0gfSk7XG4gIH1cbik7XG5UYWJzQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJUYWJzXCI7XG5jb25zdCBUYWJzID0gT2JqZWN0LmFzc2lnbihUYWJzQ29tcG9uZW50LCB7XG4gIEl0ZW06IFRhYkl0ZW1cbn0pO1xuXG5leHBvcnQgeyBUYWJzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UYWJzLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeHMsIEZyYWdtZW50LCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgSGVscGVyVGV4dCB9IGZyb20gJy4uL0hlbHBlclRleHQvSGVscGVyVGV4dC5tanMnO1xuXG5jb25zdCBUZXh0YXJlYSA9IGZvcndhcmRSZWYoXG4gICh7IGNsYXNzTmFtZSwgY29sb3IgPSBcImdyYXlcIiwgaGVscGVyVGV4dCwgc2hhZG93LCB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgLi4ucHJvcHMgfSwgcmVmKSA9PiB7XG4gICAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS50ZXh0YXJlYSwgY3VzdG9tVGhlbWUpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhGcmFnbWVudCwgeyBjaGlsZHJlbjogW1xuICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgXCJ0ZXh0YXJlYVwiLFxuICAgICAgICB7XG4gICAgICAgICAgcmVmLFxuICAgICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCB0aGVtZS5jb2xvcnNbY29sb3JdLCB0aGVtZS53aXRoU2hhZG93W3NoYWRvdyA/IFwib25cIiA6IFwib2ZmXCJdLCBjbGFzc05hbWUpLFxuICAgICAgICAgIC4uLnByb3BzXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBoZWxwZXJUZXh0ICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goSGVscGVyVGV4dCwgeyBjb2xvciwgY2hpbGRyZW46IGhlbHBlclRleHQgfSlcbiAgICBdIH0pO1xuICB9XG4pO1xuVGV4dGFyZWEuZGlzcGxheU5hbWUgPSBcIlRleHRhcmVhXCI7XG5cbmV4cG9ydCB7IFRleHRhcmVhIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UZXh0YXJlYS5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuXG5jb25zdCBUaW1lbGluZUNvbnRlbnRDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh2b2lkIDApO1xuZnVuY3Rpb24gdXNlVGltZWxpbmVDb250ZW50Q29udGV4dCgpIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoVGltZWxpbmVDb250ZW50Q29udGV4dCk7XG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcInVzZVRpbWVsaW5lQ29udGVudENvbnRleHQgc2hvdWxkIGJlIHVzZWQgd2l0aGluIHRoZSBUaW1lbGluZUNvbnRlbnRDb250ZXh0IHByb3ZpZGVyIVwiKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn1cblxuZXhwb3J0IHsgVGltZWxpbmVDb250ZW50Q29udGV4dCwgdXNlVGltZWxpbmVDb250ZW50Q29udGV4dCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VGltZWxpbmVDb250ZW50Q29udGV4dC5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyB1c2VUaW1lbGluZUNvbnRlbnRDb250ZXh0IH0gZnJvbSAnLi9UaW1lbGluZUNvbnRlbnRDb250ZXh0Lm1qcyc7XG5cbmNvbnN0IFRpbWVsaW5lQm9keSA9ICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IHsgdGhlbWU6IGNvbnRlbnRUaGVtZSB9ID0gdXNlVGltZWxpbmVDb250ZW50Q29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChjb250ZW50VGhlbWUuYm9keSwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgY2hpbGRyZW4gfSk7XG59O1xuXG5leHBvcnQgeyBUaW1lbGluZUJvZHkgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRpbWVsaW5lQm9keS5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuXG5jb25zdCBUaW1lbGluZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0KHZvaWQgMCk7XG5mdW5jdGlvbiB1c2VUaW1lbGluZUNvbnRleHQoKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KFRpbWVsaW5lQ29udGV4dCk7XG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcInVzZVRpbWVsaW5lQ29udGV4dCBzaG91bGQgYmUgdXNlZCB3aXRoaW4gdGhlIFRpbWVsaW5lQ29udGV4dCBwcm92aWRlciFcIik7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbmV4cG9ydCB7IFRpbWVsaW5lQ29udGV4dCwgdXNlVGltZWxpbmVDb250ZXh0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UaW1lbGluZUNvbnRleHQubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgVGltZWxpbmVJdGVtQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQodm9pZCAwKTtcbmZ1bmN0aW9uIHVzZVRpbWVsaW5lSXRlbUNvbnRleHQoKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KFRpbWVsaW5lSXRlbUNvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1c2VUaW1lbGluZUl0ZW1Db250ZXh0IHNob3VsZCBiZSB1c2VkIHdpdGhpbiB0aGUgVGltZWxpbmVJdGVtQ29udGV4dCBwcm92aWRlciFcIik7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbmV4cG9ydCB7IFRpbWVsaW5lSXRlbUNvbnRleHQsIHVzZVRpbWVsaW5lSXRlbUNvbnRleHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRpbWVsaW5lSXRlbUNvbnRleHQubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgVGltZWxpbmVDb250ZW50Q29udGV4dCB9IGZyb20gJy4vVGltZWxpbmVDb250ZW50Q29udGV4dC5tanMnO1xuaW1wb3J0IHsgdXNlVGltZWxpbmVDb250ZXh0IH0gZnJvbSAnLi9UaW1lbGluZUNvbnRleHQubWpzJztcbmltcG9ydCB7IHVzZVRpbWVsaW5lSXRlbUNvbnRleHQgfSBmcm9tICcuL1RpbWVsaW5lSXRlbUNvbnRleHQubWpzJztcblxuY29uc3QgVGltZWxpbmVDb250ZW50ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHsgaG9yaXpvbnRhbCB9ID0gdXNlVGltZWxpbmVDb250ZXh0KCk7XG4gIGNvbnN0IHsgdGhlbWU6IGl0ZW1UaGVtZSB9ID0gdXNlVGltZWxpbmVJdGVtQ29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChpdGVtVGhlbWUuY29udGVudCwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChUaW1lbGluZUNvbnRlbnRDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IHRoZW1lIH0sIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIFwiZGl2XCIsXG4gICAge1xuICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcInRpbWVsaW5lLWNvbnRlbnRcIixcbiAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5yb290LmJhc2UsIGhvcml6b250YWwgPyB0aGVtZS5yb290Lmhvcml6b250YWwgOiB0aGVtZS5yb290LnZlcnRpY2FsLCBjbGFzc05hbWUpLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBjaGlsZHJlblxuICAgIH1cbiAgKSB9KTtcbn07XG5cbmV4cG9ydCB7IFRpbWVsaW5lQ29udGVudCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VGltZWxpbmVDb250ZW50Lm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IHVzZVRpbWVsaW5lQ29udGV4dCB9IGZyb20gJy4vVGltZWxpbmVDb250ZXh0Lm1qcyc7XG5pbXBvcnQgeyBUaW1lbGluZUl0ZW1Db250ZXh0IH0gZnJvbSAnLi9UaW1lbGluZUl0ZW1Db250ZXh0Lm1qcyc7XG5cbmNvbnN0IFRpbWVsaW5lSXRlbSA9ICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IHsgdGhlbWU6IHJvb3RUaGVtZSwgaG9yaXpvbnRhbCB9ID0gdXNlVGltZWxpbmVDb250ZXh0KCk7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKHJvb3RUaGVtZS5pdGVtLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFRpbWVsaW5lSXRlbUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHsgdGhlbWUgfSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgXCJsaVwiLFxuICAgIHtcbiAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJ0aW1lbGluZS1pdGVtXCIsXG4gICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoaG9yaXpvbnRhbCAmJiB0aGVtZS5yb290Lmhvcml6b250YWwsICFob3Jpem9udGFsICYmIHRoZW1lLnJvb3QudmVydGljYWwsIGNsYXNzTmFtZSksXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuXG4gICAgfVxuICApIH0pO1xufTtcblxuZXhwb3J0IHsgVGltZWxpbmVJdGVtIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UaW1lbGluZUl0ZW0ubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4cywganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlVGltZWxpbmVDb250ZXh0IH0gZnJvbSAnLi9UaW1lbGluZUNvbnRleHQubWpzJztcbmltcG9ydCB7IHVzZVRpbWVsaW5lSXRlbUNvbnRleHQgfSBmcm9tICcuL1RpbWVsaW5lSXRlbUNvbnRleHQubWpzJztcblxuY29uc3QgVGltZWxpbmVQb2ludCA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGljb246IEljb24sXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB7IGhvcml6b250YWwgfSA9IHVzZVRpbWVsaW5lQ29udGV4dCgpO1xuICBjb25zdCB7IHRoZW1lOiBpdGVtVGhlbWUgfSA9IHVzZVRpbWVsaW5lSXRlbUNvbnRleHQoKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoaXRlbVRoZW1lLnBvaW50LCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhcbiAgICBcImRpdlwiLFxuICAgIHtcbiAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJ0aW1lbGluZS1wb2ludFwiLFxuICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKGhvcml6b250YWwgJiYgdGhlbWUuaG9yaXpvbnRhbCwgIWhvcml6b250YWwgJiYgdGhlbWUudmVydGljYWwsIGNsYXNzTmFtZSksXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgIGNoaWxkcmVuLFxuICAgICAgICBJY29uID8gLyogQF9fUFVSRV9fICovIGpzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUubWFya2VyLmljb24ud3JhcHBlciksIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUubWFya2VyLmljb24uYmFzZSkgfSkgfSkgOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKGhvcml6b250YWwgJiYgdGhlbWUubWFya2VyLmJhc2UuaG9yaXpvbnRhbCwgIWhvcml6b250YWwgJiYgdGhlbWUubWFya2VyLmJhc2UudmVydGljYWwpXG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICBob3Jpem9udGFsICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUubGluZSkgfSlcbiAgICAgIF1cbiAgICB9XG4gICk7XG59O1xuXG5leHBvcnQgeyBUaW1lbGluZVBvaW50IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UaW1lbGluZVBvaW50Lm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IHVzZVRpbWVsaW5lQ29udGVudENvbnRleHQgfSBmcm9tICcuL1RpbWVsaW5lQ29udGVudENvbnRleHQubWpzJztcblxuY29uc3QgVGltZWxpbmVUaW1lID0gKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3QgeyB0aGVtZTogY29udGVudFRoZW1lIH0gPSB1c2VUaW1lbGluZUNvbnRlbnRDb250ZXh0KCk7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGNvbnRlbnRUaGVtZS50aW1lLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwidGltZVwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgY2hpbGRyZW4gfSk7XG59O1xuXG5leHBvcnQgeyBUaW1lbGluZVRpbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRpbWVsaW5lVGltZS5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyB1c2VUaW1lbGluZUNvbnRlbnRDb250ZXh0IH0gZnJvbSAnLi9UaW1lbGluZUNvbnRlbnRDb250ZXh0Lm1qcyc7XG5cbmNvbnN0IFRpbWVsaW5lVGl0bGUgPSAoe1xuICBhczogVGFnID0gXCJoM1wiLFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgeyB0aGVtZTogY29udGVudFRoZW1lIH0gPSB1c2VUaW1lbGluZUNvbnRlbnRDb250ZXh0KCk7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGNvbnRlbnRUaGVtZS50aXRsZSwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChUYWcsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksIC4uLnByb3BzLCBjaGlsZHJlbiB9KTtcbn07XG5cbmV4cG9ydCB7IFRpbWVsaW5lVGl0bGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRpbWVsaW5lVGl0bGUubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgVGltZWxpbmVCb2R5IH0gZnJvbSAnLi9UaW1lbGluZUJvZHkubWpzJztcbmltcG9ydCB7IFRpbWVsaW5lQ29udGVudCB9IGZyb20gJy4vVGltZWxpbmVDb250ZW50Lm1qcyc7XG5pbXBvcnQgeyBUaW1lbGluZUNvbnRleHQgfSBmcm9tICcuL1RpbWVsaW5lQ29udGV4dC5tanMnO1xuaW1wb3J0IHsgVGltZWxpbmVJdGVtIH0gZnJvbSAnLi9UaW1lbGluZUl0ZW0ubWpzJztcbmltcG9ydCB7IFRpbWVsaW5lUG9pbnQgfSBmcm9tICcuL1RpbWVsaW5lUG9pbnQubWpzJztcbmltcG9ydCB7IFRpbWVsaW5lVGltZSB9IGZyb20gJy4vVGltZWxpbmVUaW1lLm1qcyc7XG5pbXBvcnQgeyBUaW1lbGluZVRpdGxlIH0gZnJvbSAnLi9UaW1lbGluZVRpdGxlLm1qcyc7XG5cbmNvbnN0IFRpbWVsaW5lQ29tcG9uZW50ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgaG9yaXpvbnRhbCxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkudGltZWxpbmUsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goVGltZWxpbmVDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IHRoZW1lLCBob3Jpem9udGFsIH0sIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIFwib2xcIixcbiAgICB7XG4gICAgICBcImRhdGEtdGVzdGlkXCI6IFwidGltZWxpbmUtY29tcG9uZW50XCIsXG4gICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgIGhvcml6b250YWwgJiYgdGhlbWUucm9vdC5kaXJlY3Rpb24uaG9yaXpvbnRhbCxcbiAgICAgICAgIWhvcml6b250YWwgJiYgdGhlbWUucm9vdC5kaXJlY3Rpb24udmVydGljYWwsXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKSxcbiAgICAgIC4uLnByb3BzLFxuICAgICAgY2hpbGRyZW5cbiAgICB9XG4gICkgfSk7XG59O1xuVGltZWxpbmVDb21wb25lbnQuZGlzcGxheU5hbWUgPSBcIlRpbWVsaW5lXCI7XG5UaW1lbGluZUl0ZW0uZGlzcGxheU5hbWUgPSBcIlRpbWVsaW5lLkl0ZW1cIjtcblRpbWVsaW5lUG9pbnQuZGlzcGxheU5hbWUgPSBcIlRpbWVsaW5lLlBvaW50XCI7XG5UaW1lbGluZUNvbnRlbnQuZGlzcGxheU5hbWUgPSBcIlRpbWVsaW5lLkNvbnRlbnRcIjtcblRpbWVsaW5lVGltZS5kaXNwbGF5TmFtZSA9IFwiVGltZWxpbmUuVGltZVwiO1xuVGltZWxpbmVUaXRsZS5kaXNwbGF5TmFtZSA9IFwiVGltZWxpbmUuVGl0bGVcIjtcblRpbWVsaW5lQm9keS5kaXNwbGF5TmFtZSA9IFwiVGltZWxpbmUuQm9keVwiO1xuY29uc3QgVGltZWxpbmUgPSBPYmplY3QuYXNzaWduKFRpbWVsaW5lQ29tcG9uZW50LCB7XG4gIEl0ZW06IFRpbWVsaW5lSXRlbSxcbiAgUG9pbnQ6IFRpbWVsaW5lUG9pbnQsXG4gIENvbnRlbnQ6IFRpbWVsaW5lQ29udGVudCxcbiAgVGltZTogVGltZWxpbmVUaW1lLFxuICBUaXRsZTogVGltZWxpbmVUaXRsZSxcbiAgQm9keTogVGltZWxpbmVCb2R5XG59KTtcblxuZXhwb3J0IHsgVGltZWxpbmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRpbWVsaW5lLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IFRvYXN0Q29udGV4dCA9IGNyZWF0ZUNvbnRleHQodm9pZCAwKTtcbmZ1bmN0aW9uIHVzZVRvYXN0Q29udGV4dCgpIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoVG9hc3RDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwidXNlVG9hc3RDb250ZXh0IHNob3VsZCBiZSB1c2VkIHdpdGhpbiB0aGUgVG9hc3RDb250ZXh0IHByb3ZpZGVyIVwiKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn1cblxuZXhwb3J0IHsgVG9hc3RDb250ZXh0LCB1c2VUb2FzdENvbnRleHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRvYXN0Q29udGV4dC5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBIaVggfSBmcm9tICdyZWFjdC1pY29ucy9oaSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyB1c2VUb2FzdENvbnRleHQgfSBmcm9tICcuL1RvYXN0Q29udGV4dC5tanMnO1xuXG5jb25zdCBUb2FzdFRvZ2dsZSA9ICh7XG4gIGNsYXNzTmFtZSxcbiAgb25DbGljayxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIHhJY29uOiBYSWNvbiA9IEhpWCxcbiAgb25EaXNtaXNzLFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB7IHRoZW1lOiByb290VGhlbWUsIGR1cmF0aW9uLCBpc0Nsb3NlZCwgaXNSZW1vdmVkLCBzZXRJc0Nsb3NlZCwgc2V0SXNSZW1vdmVkIH0gPSB1c2VUb2FzdENvbnRleHQoKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAocm9vdFRoZW1lLnRvZ2dsZSwgY3VzdG9tVGhlbWUpO1xuICBjb25zdCBoYW5kbGVDbGljayA9IChlKSA9PiB7XG4gICAgaWYgKG9uQ2xpY2spIG9uQ2xpY2soZSk7XG4gICAgaWYgKG9uRGlzbWlzcykge1xuICAgICAgb25EaXNtaXNzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHNldElzQ2xvc2VkKCFpc0Nsb3NlZCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiBzZXRJc1JlbW92ZWQoIWlzUmVtb3ZlZCksIGR1cmF0aW9uKTtcbiAgfTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgXCJidXR0b25cIixcbiAgICB7XG4gICAgICBcImFyaWEtbGFiZWxcIjogXCJDbG9zZVwiLFxuICAgICAgb25DbGljazogaGFuZGxlQ2xpY2ssXG4gICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFhJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgY2xhc3NOYW1lOiB0aGVtZS5pY29uIH0pXG4gICAgfVxuICApO1xufTtcblxuZXhwb3J0IHsgVG9hc3RUb2dnbGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRvYXN0VG9nZ2xlLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgVG9hc3RDb250ZXh0IH0gZnJvbSAnLi9Ub2FzdENvbnRleHQubWpzJztcbmltcG9ydCB7IFRvYXN0VG9nZ2xlIH0gZnJvbSAnLi9Ub2FzdFRvZ2dsZS5tanMnO1xuXG5jb25zdCBkdXJhdGlvbkNsYXNzZXMgPSB7XG4gIDc1OiBcImR1cmF0aW9uLTc1XCIsXG4gIDEwMDogXCJkdXJhdGlvbi0xMDBcIixcbiAgMTUwOiBcImR1cmF0aW9uLTE1MFwiLFxuICAyMDA6IFwiZHVyYXRpb24tMjAwXCIsXG4gIDMwMDogXCJkdXJhdGlvbi0zMDBcIixcbiAgNTAwOiBcImR1cmF0aW9uLTUwMFwiLFxuICA3MDA6IFwiZHVyYXRpb24tNzAwXCIsXG4gIDFlMzogXCJkdXJhdGlvbi0xMDAwXCJcbn07XG5jb25zdCBUb2FzdENvbXBvbmVudCA9ICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGR1cmF0aW9uID0gMzAwLCB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgLi4ucHJvcHMgfSkgPT4ge1xuICBjb25zdCBbaXNDbG9zZWQsIHNldElzQ2xvc2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2lzUmVtb3ZlZCwgc2V0SXNSZW1vdmVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS50b2FzdCwgY3VzdG9tVGhlbWUpO1xuICBpZiAoaXNSZW1vdmVkKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goVG9hc3RDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IHRoZW1lLCBkdXJhdGlvbiwgaXNDbG9zZWQsIGlzUmVtb3ZlZCwgc2V0SXNDbG9zZWQsIHNldElzUmVtb3ZlZCB9LCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBcImRpdlwiLFxuICAgIHtcbiAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS10b2FzdFwiLFxuICAgICAgcm9sZTogXCJhbGVydFwiLFxuICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLnJvb3QuYmFzZSwgZHVyYXRpb25DbGFzc2VzW2R1cmF0aW9uXSwgaXNDbG9zZWQgJiYgdGhlbWUucm9vdC5jbG9zZWQsIGNsYXNzTmFtZSksXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuXG4gICAgfVxuICApIH0pO1xufTtcblRvYXN0Q29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJUb2FzdFwiO1xuVG9hc3RUb2dnbGUuZGlzcGxheU5hbWUgPSBcIlRvYXN0LlRvZ2dsZVwiO1xuY29uc3QgVG9hc3QgPSBPYmplY3QuYXNzaWduKFRvYXN0Q29tcG9uZW50LCB7XG4gIFRvZ2dsZTogVG9hc3RUb2dnbGVcbn0pO1xuXG5leHBvcnQgeyBUb2FzdCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VG9hc3QubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4cywgRnJhZ21lbnQsIGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IGZvcndhcmRSZWYsIHVzZUlkIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBUb2dnbGVTd2l0Y2ggPSBmb3J3YXJkUmVmKFxuICAoe1xuICAgIGNoZWNrZWQsXG4gICAgY2xhc3NOYW1lLFxuICAgIGNvbG9yID0gXCJibHVlXCIsXG4gICAgc2l6aW5nID0gXCJtZFwiLFxuICAgIGRpc2FibGVkLFxuICAgIGxhYmVsLFxuICAgIG5hbWUsXG4gICAgb25DaGFuZ2UsXG4gICAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gICAgLi4ucHJvcHNcbiAgfSwgcmVmKSA9PiB7XG4gICAgY29uc3QgaWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkudG9nZ2xlU3dpdGNoLCBjdXN0b21UaGVtZSk7XG4gICAgY29uc3QgdG9nZ2xlID0gKCkgPT4gb25DaGFuZ2UoIWNoZWNrZWQpO1xuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gKCkgPT4ge1xuICAgICAgdG9nZ2xlKCk7XG4gICAgfTtcbiAgICBjb25zdCBoYW5kbGVPbktleURvd24gPSAoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5jb2RlID09IFwiRW50ZXJcIikge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKEZyYWdtZW50LCB7IGNoaWxkcmVuOiBbXG4gICAgICBuYW1lICYmIGNoZWNrZWQgPyAvKiBAX19QVVJFX18gKi8ganN4KFwiaW5wdXRcIiwgeyByZWYsIGNoZWNrZWQsIGhpZGRlbjogdHJ1ZSwgbmFtZSwgcmVhZE9ubHk6IHRydWUsIHR5cGU6IFwiY2hlY2tib3hcIiwgY2xhc3NOYW1lOiBcInNyLW9ubHlcIiB9KSA6IG51bGwsXG4gICAgICAvKiBAX19QVVJFX18gKi8ganN4cyhcbiAgICAgICAgXCJidXR0b25cIixcbiAgICAgICAge1xuICAgICAgICAgIFwiYXJpYS1jaGVja2VkXCI6IGNoZWNrZWQsXG4gICAgICAgICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogYCR7aWR9LWZsb3diaXRlLXRvZ2dsZXN3aXRjaC1sYWJlbGAsXG4gICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgaWQ6IGAke2lkfS1mbG93Yml0ZS10b2dnbGVzd2l0Y2hgLFxuICAgICAgICAgIG9uQ2xpY2s6IGhhbmRsZUNsaWNrLFxuICAgICAgICAgIG9uS2V5RG93bjogaGFuZGxlT25LZXlEb3duLFxuICAgICAgICAgIHJvbGU6IFwic3dpdGNoXCIsXG4gICAgICAgICAgdGFiSW5kZXg6IDAsXG4gICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUucm9vdC5iYXNlLCB0aGVtZS5yb290LmFjdGl2ZVtkaXNhYmxlZCA/IFwib2ZmXCIgOiBcIm9uXCJdLCBjbGFzc05hbWUpLFxuICAgICAgICAgIC4uLnByb3BzLFxuICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLXRvZ2dsZXN3aXRjaC10b2dnbGVcIixcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgICAgICAgICAgICB0aGVtZS50b2dnbGUuYmFzZSxcbiAgICAgICAgICAgICAgICAgIHRoZW1lLnRvZ2dsZS5jaGVja2VkW2NoZWNrZWQgPyBcIm9uXCIgOiBcIm9mZlwiXSxcbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQgJiYgdGhlbWUudG9nZ2xlLmNoZWNrZWQuY29sb3JbY29sb3JdLFxuICAgICAgICAgICAgICAgICAgdGhlbWUudG9nZ2xlLnNpemVzW3NpemluZ11cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBsYWJlbD8ubGVuZ3RoID8gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICAgICAgXCJzcGFuXCIsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtdG9nZ2xlc3dpdGNoLWxhYmVsXCIsXG4gICAgICAgICAgICAgICAgaWQ6IGAke2lkfS1mbG93Yml0ZS10b2dnbGVzd2l0Y2gtbGFiZWxgLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogdGhlbWUucm9vdC5sYWJlbCxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogbGFiZWxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSA6IG51bGxcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIClcbiAgICBdIH0pO1xuICB9XG4pO1xuVG9nZ2xlU3dpdGNoLmRpc3BsYXlOYW1lID0gXCJUb2dnbGVTd2l0Y2hcIjtcblxuZXhwb3J0IHsgVG9nZ2xlU3dpdGNoIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Ub2dnbGVTd2l0Y2gubWpzLm1hcFxuIiwiaW1wb3J0IHsgQnNQbHVzIH0gZnJvbSBcIkByZWFjdC1pY29ucy9hbGwtZmlsZXMvYnMvQnNQbHVzXCJcbmltcG9ydCB7IEJzUGVuY2lsIH0gZnJvbSBcIkByZWFjdC1pY29ucy9hbGwtZmlsZXMvYnMvQnNQZW5jaWxcIlxuaW1wb3J0IHsgUmlTYXZlRmlsbCB9IGZyb20gXCJAcmVhY3QtaWNvbnMvYWxsLWZpbGVzL3JpL1JpU2F2ZUZpbGxcIlxuaW1wb3J0IHsgUmlEZWxldGVCaW4yTGluZSwgUmlTYXZlRmlsbCB9IGZyb20gXCJAcHJlYWN0LWljb25zL3JpXCJcbmltcG9ydCB7IEJzWENpcmNsZSwgQnNQbHVzLCBCc1BlbmNpbCB9IGZyb20gXCJAcHJlYWN0LWljb25zL2JzXCJcbmltcG9ydCB7IEJ1dHRvbiBhcyBCYXNlQnV0dG9uIH0gZnJvbSBcImZsb3diaXRlLXJlYWN0XCJcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuY29uc3QgQnV0dG9uID0gKHsgdHlwZSAsIHZhcmlhbnQgLCBvbkNsaWNrIH0pID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgICA8QmFzZUJ1dHRvbiBjb2xvcj17dmFyaWFudH0gcGlsbCBvbkNsaWNrPXtvbkNsaWNrfT5cbiAgICAgICAgICAgIHsgdHlwZSA9PSAxICYmIDxCc1BsdXMvPiB9XG4gICAgICAgICAgICB7IHR5cGUgPT0gMiAmJiA8QnNQZW5jaWwvPiB9XG4gICAgICAgICAgICB7IHR5cGUgPT0gMyAmJiA8UmlTYXZlRmlsbC8+IH1cbiAgICAgICAgICAgIHsgdHlwZSA9PSA0ICYmIDxCc1hDaXJjbGUvPiB9XG4gICAgICAgICAgICB7IHR5cGUgPT0gNSAmJiA8UmlEZWxldGVCaW4yTGluZS8+IH1cbiAgICAgICAgPC9CYXNlQnV0dG9uPlxuICAgICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBCdXR0b247XG4iLCIvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgYHRoaW5nYCBpcyBhbiBvYmplY3QgZm9yIHRoZSBwdXJwb3NlcyBvZiBSSlNGLiBJbiB0aGlzIGNhc2UsIGB0aGluZ2AgaXMgYW4gb2JqZWN0IGlmIGl0IGhhc1xuICogdGhlIHR5cGUgYG9iamVjdGAgYnV0IGlzIE5PVCBudWxsLCBhbiBhcnJheSBvciBhIEZpbGUuXG4gKlxuICogQHBhcmFtIHRoaW5nIC0gVGhlIHRoaW5nIHRvIGNoZWNrIHRvIHNlZSB3aGV0aGVyIGl0IGlzIGFuIG9iamVjdFxuICogQHJldHVybnMgLSBUcnVlIGlmIGl0IGlzIGEgbm9uLW51bGwsIG5vbi1hcnJheSwgbm9uLUZpbGUgb2JqZWN0XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzT2JqZWN0KHRoaW5nKSB7XG4gICAgaWYgKHR5cGVvZiB0aGluZyAhPT0gJ29iamVjdCcgfHwgdGhpbmcgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBsYXN0TW9kaWZpZWQgaXMgZ3VhcmFudGVlZCB0byBiZSBhIG51bWJlciBvbiBhIEZpbGUgaW5zdGFuY2VcbiAgICAvLyBhcyBwZXIgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL0ZpbGVBUEkvI2Rmbi1sYXN0TW9kaWZpZWRcbiAgICBpZiAodHlwZW9mIHRoaW5nLmxhc3RNb2RpZmllZCA9PT0gJ251bWJlcicgJiYgdHlwZW9mIEZpbGUgIT09ICd1bmRlZmluZWQnICYmIHRoaW5nIGluc3RhbmNlb2YgRmlsZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIGdldE1vbnRoIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBtZXRob2Qgb24gYSBEYXRlIGluc3RhbmNlXG4gICAgLy8gYXMgcGVyIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyL211bHRpcGFnZS9udW1iZXJzLWFuZC1kYXRlcy5odG1sI3NlYy1kYXRlLnByb3RvdHlwZS5nZXRtb250aFxuICAgIGlmICh0eXBlb2YgdGhpbmcuZ2V0TW9udGggPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIERhdGUgIT09ICd1bmRlZmluZWQnICYmIHRoaW5nIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAhQXJyYXkuaXNBcnJheSh0aGluZyk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pc09iamVjdC5qcy5tYXAiLCJpbXBvcnQgaXNPYmplY3QgZnJvbSAnLi9pc09iamVjdCc7XG4vKiogQ2hlY2tzIHRoZSBzY2hlbWEgdG8gc2VlIGlmIGl0IGlzIGFsbG93aW5nIGFkZGl0aW9uYWwgaXRlbXMsIGJ5IHZlcmlmeWluZyB0aGF0IGBzY2hlbWEuYWRkaXRpb25hbEl0ZW1zYCBpcyBhblxuICogb2JqZWN0LiBUaGUgdXNlciBpcyB3YXJuZWQgaW4gdGhlIGNvbnNvbGUgaWYgYHNjaGVtYS5hZGRpdGlvbmFsSXRlbXNgIGhhcyB0aGUgdmFsdWUgYHRydWVgLlxuICpcbiAqIEBwYXJhbSBzY2hlbWEgLSBUaGUgc2NoZW1hIG9iamVjdCB0byBjaGVja1xuICogQHJldHVybnMgLSBUcnVlIGlmIGFkZGl0aW9uYWwgaXRlbXMgaXMgYWxsb3dlZCwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFsbG93QWRkaXRpb25hbEl0ZW1zKHNjaGVtYSkge1xuICAgIGlmIChzY2hlbWEuYWRkaXRpb25hbEl0ZW1zID09PSB0cnVlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignYWRkaXRpb25hbEl0ZW1zPXRydWUgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIGlzT2JqZWN0KHNjaGVtYS5hZGRpdGlvbmFsSXRlbXMpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWxsb3dBZGRpdGlvbmFsSXRlbXMuanMubWFwIiwiLyoqIEF0dGVtcHRzIHRvIGNvbnZlcnQgdGhlIHN0cmluZyBpbnRvIGEgbnVtYmVyLiBJZiBhbiBlbXB0eSBzdHJpbmcgaXMgcHJvdmlkZWQsIHRoZW4gYHVuZGVmaW5lZGAgaXMgcmV0dXJuZWQuIElmIGFcbiAqIGBudWxsYCBpcyBwcm92aWRlZCwgaXQgaXMgcmV0dXJuZWQuIElmIHRoZSBzdHJpbmcgZW5kcyBpbiBhIGAuYCB0aGVuIHRoZSBzdHJpbmcgaXMgcmV0dXJuZWQgYmVjYXVzZSB0aGUgdXNlciBtYXkgYmVcbiAqIGluIHRoZSBtaWRkbGUgb2YgdHlwaW5nIGEgZmxvYXQgbnVtYmVyLiBJZiBhIG51bWJlciBlbmRzIGluIGEgcGF0dGVybiBsaWtlIGAuMGAsIGAuMjBgLCBgLjAzMGAsIHN0cmluZyBpcyByZXR1cm5lZFxuICogYmVjYXVzZSB0aGUgdXNlciBtYXkgYmUgdHlwaW5nIG51bWJlciB0aGF0IHdpbGwgZW5kIGluIGEgbm9uLXplcm8gZGlnaXQuIE90aGVyd2lzZSwgdGhlIHN0cmluZyBpcyB3cmFwcGVkIGJ5XG4gKiBgTnVtYmVyKClgIGFuZCBpZiB0aGF0IHJlc3VsdCBpcyBub3QgYE5hTmAsIHRoYXQgbnVtYmVyIHdpbGwgYmUgcmV0dXJuZWQsIG90aGVyd2lzZSB0aGUgc3RyaW5nIGB2YWx1ZWAgd2lsbCBiZS5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgc3RyaW5nIG9yIG51bGwgdmFsdWUgdG8gY29udmVydCB0byBhIG51bWJlclxuICogQHJldHVybnMgLSBUaGUgYHZhbHVlYCBjb252ZXJ0ZWQgdG8gYSBudW1iZXIgd2hlbiBhcHByb3ByaWF0ZSwgb3RoZXJ3aXNlIHRoZSBgdmFsdWVgXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFzTnVtYmVyKHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSAnJykge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICgvXFwuJC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgLy8gJzMuJyBjYW4ndCByZWFsbHkgYmUgY29uc2lkZXJlZCBhIG51bWJlciBldmVuIGlmIGl0IHBhcnNlcyBpbiBqcy4gVGhlXG4gICAgICAgIC8vIHVzZXIgaXMgbW9zdCBsaWtlbHkgZW50ZXJpbmcgYSBmbG9hdC5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAoL1xcLjAkLy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHJldHVybiB0aGlzIGFzIGEgc3RyaW5nIGhlcmUsIHRvIGFsbG93IGZvciBpbnB1dCBsaWtlIDMuMDdcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAoL1xcLlxcZCowJC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgLy8gSXQncyBhIG51bWJlciwgdGhhdCdzIGNvb2wgLSBidXQgd2UgbmVlZCBpdCBhcyBhIHN0cmluZyBzbyBpdCBkb2Vzbid0IHNjcmV3XG4gICAgICAgIC8vIHdpdGggdGhlIHVzZXIgd2hlbiBlbnRlcmluZyBkb2xsYXIgYW1vdW50cyBvciBvdGhlciB2YWx1ZXMgKHN1Y2ggYXMgdGhvc2Ugd2l0aFxuICAgICAgICAvLyBzcGVjaWZpYyBwcmVjaXNpb24gb3IgbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cylcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBjb25zdCBuID0gTnVtYmVyKHZhbHVlKTtcbiAgICBjb25zdCB2YWxpZCA9IHR5cGVvZiBuID09PSAnbnVtYmVyJyAmJiAhTnVtYmVyLmlzTmFOKG4pO1xuICAgIHJldHVybiB2YWxpZCA/IG4gOiB2YWx1ZTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFzTnVtYmVyLmpzLm1hcCIsIi8qKiBCZWxvdyBhcmUgdGhlIGxpc3Qgb2YgYWxsIHRoZSBrZXlzIGludG8gdmFyaW91cyBlbGVtZW50cyBvZiBhIFJKU0ZTY2hlbWEgb3IgVWlTY2hlbWEgdGhhdCBhcmUgdXNlZCBieSB0aGUgdmFyaW91c1xuICogdXRpbGl0eSBmdW5jdGlvbnMuIEluIGFkZGl0aW9uIHRvIHRob3NlIGtleXMsIHRoZXJlIGFyZSB0aGUgc3BlY2lhbCBgQURESVRJT05BTF9QUk9QRVJUWV9GTEFHYCBhbmRcbiAqIGBSSlNGX0FERElUSU9OQUxfUFJPUEVSVElFU19GTEFHYCBmbGFncyB0aGF0IGlzIGFkZGVkIHRvIGEgc2NoZW1hIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucyBieSB0aGUgYHJldHJpZXZlU2NoZW1hKClgXG4gKiB1dGlsaXR5LlxuICovXG5leHBvcnQgY29uc3QgQURESVRJT05BTF9QUk9QRVJUWV9GTEFHID0gJ19fYWRkaXRpb25hbF9wcm9wZXJ0eSc7XG5leHBvcnQgY29uc3QgQURESVRJT05BTF9QUk9QRVJUSUVTX0tFWSA9ICdhZGRpdGlvbmFsUHJvcGVydGllcyc7XG5leHBvcnQgY29uc3QgQUxMX09GX0tFWSA9ICdhbGxPZic7XG5leHBvcnQgY29uc3QgQU5ZX09GX0tFWSA9ICdhbnlPZic7XG5leHBvcnQgY29uc3QgQ09OU1RfS0VZID0gJ2NvbnN0JztcbmV4cG9ydCBjb25zdCBERUZBVUxUX0tFWSA9ICdkZWZhdWx0JztcbmV4cG9ydCBjb25zdCBERUZJTklUSU9OU19LRVkgPSAnZGVmaW5pdGlvbnMnO1xuZXhwb3J0IGNvbnN0IERFUEVOREVOQ0lFU19LRVkgPSAnZGVwZW5kZW5jaWVzJztcbmV4cG9ydCBjb25zdCBFTlVNX0tFWSA9ICdlbnVtJztcbmV4cG9ydCBjb25zdCBFUlJPUlNfS0VZID0gJ19fZXJyb3JzJztcbmV4cG9ydCBjb25zdCBJRF9LRVkgPSAnJGlkJztcbmV4cG9ydCBjb25zdCBJRl9LRVkgPSAnaWYnO1xuZXhwb3J0IGNvbnN0IElURU1TX0tFWSA9ICdpdGVtcyc7XG5leHBvcnQgY29uc3QgSlVOS19PUFRJT05fSUQgPSAnXyRqdW5rX29wdGlvbl9zY2hlbWFfaWQkXyc7XG5leHBvcnQgY29uc3QgTkFNRV9LRVkgPSAnJG5hbWUnO1xuZXhwb3J0IGNvbnN0IE9ORV9PRl9LRVkgPSAnb25lT2YnO1xuZXhwb3J0IGNvbnN0IFBST1BFUlRJRVNfS0VZID0gJ3Byb3BlcnRpZXMnO1xuZXhwb3J0IGNvbnN0IFJFUVVJUkVEX0tFWSA9ICdyZXF1aXJlZCc7XG5leHBvcnQgY29uc3QgU1VCTUlUX0JUTl9PUFRJT05TX0tFWSA9ICdzdWJtaXRCdXR0b25PcHRpb25zJztcbmV4cG9ydCBjb25zdCBSRUZfS0VZID0gJyRyZWYnO1xuLyoqXG4gKiBAZGVwcmVjYXRlZCBSZXBsYWNlIHdpdGggY29ycmVjdGx5IHNwZWxsZWQgY29uc3RhbnQgYFJKU0ZfQURESVRJT05BTF9QUk9QRVJUSUVTX0ZMQUdgXG4gKi9cbmV4cG9ydCBjb25zdCBSSlNGX0FERElUT05BTF9QUk9QRVJUSUVTX0ZMQUcgPSAnX19yanNmX2FkZGl0aW9uYWxQcm9wZXJ0aWVzJztcbmV4cG9ydCBjb25zdCBSSlNGX0FERElUSU9OQUxfUFJPUEVSVElFU19GTEFHID0gJ19fcmpzZl9hZGRpdGlvbmFsUHJvcGVydGllcyc7XG5leHBvcnQgY29uc3QgUk9PVF9TQ0hFTUFfUFJFRklYID0gJ19fcmpzZl9yb290U2NoZW1hJztcbmV4cG9ydCBjb25zdCBVSV9GSUVMRF9LRVkgPSAndWk6ZmllbGQnO1xuZXhwb3J0IGNvbnN0IFVJX1dJREdFVF9LRVkgPSAndWk6d2lkZ2V0JztcbmV4cG9ydCBjb25zdCBVSV9PUFRJT05TX0tFWSA9ICd1aTpvcHRpb25zJztcbmV4cG9ydCBjb25zdCBVSV9HTE9CQUxfT1BUSU9OU19LRVkgPSAndWk6Z2xvYmFsT3B0aW9ucyc7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIiwiaW1wb3J0IHsgVUlfT1BUSU9OU19LRVksIFVJX1dJREdFVF9LRVkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgaXNPYmplY3QgZnJvbSAnLi9pc09iamVjdCc7XG4vKiogR2V0IGFsbCBwYXNzZWQgb3B0aW9ucyBmcm9tIHVpOm9wdGlvbnMsIGFuZCB1aTo8b3B0aW9uTmFtZT4sIHJldHVybmluZyB0aGVtIGluIGFuIG9iamVjdCB3aXRoIHRoZSBgdWk6YFxuICogc3RyaXBwZWQgb2ZmLiBBbnkgYGdsb2JhbE9wdGlvbnNgIHdpbGwgYWx3YXlzIGJlIHJldHVybmVkLCB1bmxlc3MgdGhleSBhcmUgb3ZlcnJpZGRlbiBieSBvcHRpb25zIGluIHRoZSBgdWlTY2hlbWFgLlxuICpcbiAqIEBwYXJhbSBbdWlTY2hlbWE9e31dIC0gVGhlIFVJIFNjaGVtYSBmcm9tIHdoaWNoIHRvIGdldCBhbnkgYHVpOnh4eGAgb3B0aW9uc1xuICogQHBhcmFtIFtnbG9iYWxPcHRpb25zPXt9XSAtIFRoZSBvcHRpb25hbCBHbG9iYWwgVUkgU2NoZW1hIGZyb20gd2hpY2ggdG8gZ2V0IGFueSBmYWxsYmFjayBgeHh4YCBvcHRpb25zXG4gKiBAcmV0dXJucyAtIEFuIG9iamVjdCBjb250YWluaW5nIGFsbCB0aGUgYHVpOnh4eGAgb3B0aW9ucyB3aXRoIHRoZSBgdWk6YCBzdHJpcHBlZCBvZmYgYWxvbmcgd2l0aCBhbGwgYGdsb2JhbE9wdGlvbnNgXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFVpT3B0aW9ucyh1aVNjaGVtYSA9IHt9LCBnbG9iYWxPcHRpb25zID0ge30pIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModWlTY2hlbWEpXG4gICAgICAgIC5maWx0ZXIoKGtleSkgPT4ga2V5LmluZGV4T2YoJ3VpOicpID09PSAwKVxuICAgICAgICAucmVkdWNlKChvcHRpb25zLCBrZXkpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB1aVNjaGVtYVtrZXldO1xuICAgICAgICBpZiAoa2V5ID09PSBVSV9XSURHRVRfS0VZICYmIGlzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignU2V0dGluZyBvcHRpb25zIHZpYSB1aTp3aWRnZXQgb2JqZWN0IGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQsIHVzZSB1aTpvcHRpb25zIGluc3RlYWQnKTtcbiAgICAgICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09IFVJX09QVElPTlNfS0VZICYmIGlzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4ub3B0aW9ucywgLi4udmFsdWUgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyAuLi5vcHRpb25zLCBba2V5LnN1YnN0cmluZygzKV06IHZhbHVlIH07XG4gICAgfSwgeyAuLi5nbG9iYWxPcHRpb25zIH0pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0VWlPcHRpb25zLmpzLm1hcCIsImltcG9ydCBnZXRVaU9wdGlvbnMgZnJvbSAnLi9nZXRVaU9wdGlvbnMnO1xuLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBmaWVsZCBkZXNjcmliZWQgYnkgYHNjaGVtYWAsIGhhdmluZyB0aGUgYHVpU2NoZW1hYCBhbmQgYGZvcm1EYXRhYCBzdXBwb3J0cyBleHBhbmRpbmcuIFRoZSBVSSBmb3JcbiAqIHRoZSBmaWVsZCBjYW4gZXhwYW5kIGlmIGl0IGhhcyBhZGRpdGlvbmFsIHByb3BlcnRpZXMsIGlzIG5vdCBmb3JjZWQgYXMgbm9uLWV4cGFuZGFibGUgYnkgdGhlIGB1aVNjaGVtYWAgYW5kIHRoZVxuICogYGZvcm1EYXRhYCBvYmplY3QgZG9lc24ndCBhbHJlYWR5IGhhdmUgYHNjaGVtYS5tYXhQcm9wZXJ0aWVzYCBlbGVtZW50cy5cbiAqXG4gKiBAcGFyYW0gc2NoZW1hIC0gVGhlIHNjaGVtYSBmb3IgdGhlIGZpZWxkIHRoYXQgaXMgYmVpbmcgY2hlY2tlZFxuICogQHBhcmFtIFt1aVNjaGVtYT17fV0gLSBUaGUgdWlTY2hlbWEgZm9yIHRoZSBmaWVsZFxuICogQHBhcmFtIFtmb3JtRGF0YV0gLSBUaGUgZm9ybURhdGEgZm9yIHRoZSBmaWVsZFxuICogQHJldHVybnMgLSBUcnVlIGlmIHRoZSBzY2hlbWEgZWxlbWVudCBoYXMgYWRkaXRpb25hbFByb3BlcnRpZXMsIGlzIGV4cGFuZGFibGUsIGFuZCBub3QgYXQgdGhlIG1heFByb3BlcnRpZXMgbGltaXRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY2FuRXhwYW5kKHNjaGVtYSwgdWlTY2hlbWEgPSB7fSwgZm9ybURhdGEpIHtcbiAgICBpZiAoIXNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IHsgZXhwYW5kYWJsZSA9IHRydWUgfSA9IGdldFVpT3B0aW9ucyh1aVNjaGVtYSk7XG4gICAgaWYgKGV4cGFuZGFibGUgPT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiBleHBhbmRhYmxlO1xuICAgIH1cbiAgICAvLyBpZiB1aTpvcHRpb25zLmV4cGFuZGFibGUgd2FzIG5vdCBleHBsaWNpdGx5IHNldCB0byBmYWxzZSwgd2UgY2FuIGFkZFxuICAgIC8vIGFub3RoZXIgcHJvcGVydHkgaWYgd2UgaGF2ZSBub3QgZXhjZWVkZWQgbWF4UHJvcGVydGllcyB5ZXRcbiAgICBpZiAoc2NoZW1hLm1heFByb3BlcnRpZXMgIT09IHVuZGVmaW5lZCAmJiBmb3JtRGF0YSkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZm9ybURhdGEpLmxlbmd0aCA8IHNjaGVtYS5tYXhQcm9wZXJ0aWVzO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNhbkV4cGFuZC5qcy5tYXAiLCIvKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGdsb2JhbGAgZnJvbSBOb2RlLmpzLiAqL1xudmFyIGZyZWVHbG9iYWwgPSB0eXBlb2YgZ2xvYmFsID09ICdvYmplY3QnICYmIGdsb2JhbCAmJiBnbG9iYWwuT2JqZWN0ID09PSBPYmplY3QgJiYgZ2xvYmFsO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZyZWVHbG9iYWw7XG4iLCJ2YXIgZnJlZUdsb2JhbCA9IHJlcXVpcmUoJy4vX2ZyZWVHbG9iYWwnKTtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJvb3Q7XG4iLCJ2YXIgcm9vdCA9IHJlcXVpcmUoJy4vX3Jvb3QnKTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgU3ltYm9sID0gcm9vdC5TeW1ib2w7XG5cbm1vZHVsZS5leHBvcnRzID0gU3ltYm9sO1xuIiwidmFyIFN5bWJvbCA9IHJlcXVpcmUoJy4vX1N5bWJvbCcpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGVcbiAqIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgbmF0aXZlT2JqZWN0VG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgc3ltVG9TdHJpbmdUYWcgPSBTeW1ib2wgPyBTeW1ib2wudG9TdHJpbmdUYWcgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlR2V0VGFnYCB3aGljaCBpZ25vcmVzIGBTeW1ib2wudG9TdHJpbmdUYWdgIHZhbHVlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSByYXcgYHRvU3RyaW5nVGFnYC5cbiAqL1xuZnVuY3Rpb24gZ2V0UmF3VGFnKHZhbHVlKSB7XG4gIHZhciBpc093biA9IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIHN5bVRvU3RyaW5nVGFnKSxcbiAgICAgIHRhZyA9IHZhbHVlW3N5bVRvU3RyaW5nVGFnXTtcblxuICB0cnkge1xuICAgIHZhbHVlW3N5bVRvU3RyaW5nVGFnXSA9IHVuZGVmaW5lZDtcbiAgICB2YXIgdW5tYXNrZWQgPSB0cnVlO1xuICB9IGNhdGNoIChlKSB7fVxuXG4gIHZhciByZXN1bHQgPSBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgaWYgKHVubWFza2VkKSB7XG4gICAgaWYgKGlzT3duKSB7XG4gICAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB0YWc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0UmF3VGFnO1xuIiwiLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlXG4gKiBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIHN0cmluZyB1c2luZyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBvYmplY3RUb1N0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gb2JqZWN0VG9TdHJpbmc7XG4iLCJ2YXIgU3ltYm9sID0gcmVxdWlyZSgnLi9fU3ltYm9sJyksXG4gICAgZ2V0UmF3VGFnID0gcmVxdWlyZSgnLi9fZ2V0UmF3VGFnJyksXG4gICAgb2JqZWN0VG9TdHJpbmcgPSByZXF1aXJlKCcuL19vYmplY3RUb1N0cmluZycpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgbnVsbFRhZyA9ICdbb2JqZWN0IE51bGxdJyxcbiAgICB1bmRlZmluZWRUYWcgPSAnW29iamVjdCBVbmRlZmluZWRdJztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgc3ltVG9TdHJpbmdUYWcgPSBTeW1ib2wgPyBTeW1ib2wudG9TdHJpbmdUYWcgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGdldFRhZ2Agd2l0aG91dCBmYWxsYmFja3MgZm9yIGJ1Z2d5IGVudmlyb25tZW50cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBgdG9TdHJpbmdUYWdgLlxuICovXG5mdW5jdGlvbiBiYXNlR2V0VGFnKHZhbHVlKSB7XG4gIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWRUYWcgOiBudWxsVGFnO1xuICB9XG4gIHJldHVybiAoc3ltVG9TdHJpbmdUYWcgJiYgc3ltVG9TdHJpbmdUYWcgaW4gT2JqZWN0KHZhbHVlKSlcbiAgICA/IGdldFJhd1RhZyh2YWx1ZSlcbiAgICA6IG9iamVjdFRvU3RyaW5nKHZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlR2V0VGFnO1xuIiwiLyoqXG4gKiBDcmVhdGVzIGEgdW5hcnkgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIGl0cyBhcmd1bWVudCB0cmFuc2Zvcm1lZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gd3JhcC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHRyYW5zZm9ybSBUaGUgYXJndW1lbnQgdHJhbnNmb3JtLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIG92ZXJBcmcoZnVuYywgdHJhbnNmb3JtKSB7XG4gIHJldHVybiBmdW5jdGlvbihhcmcpIHtcbiAgICByZXR1cm4gZnVuYyh0cmFuc2Zvcm0oYXJnKSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gb3ZlckFyZztcbiIsInZhciBvdmVyQXJnID0gcmVxdWlyZSgnLi9fb3ZlckFyZycpO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBnZXRQcm90b3R5cGUgPSBvdmVyQXJnKE9iamVjdC5nZXRQcm90b3R5cGVPZiwgT2JqZWN0KTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRQcm90b3R5cGU7XG4iLCIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLiBBIHZhbHVlIGlzIG9iamVjdC1saWtlIGlmIGl0J3Mgbm90IGBudWxsYFxuICogYW5kIGhhcyBhIGB0eXBlb2ZgIHJlc3VsdCBvZiBcIm9iamVjdFwiLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKHt9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKF8ubm9vcCk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3RMaWtlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PSAnb2JqZWN0Jztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc09iamVjdExpa2U7XG4iLCJ2YXIgYmFzZUdldFRhZyA9IHJlcXVpcmUoJy4vX2Jhc2VHZXRUYWcnKSxcbiAgICBnZXRQcm90b3R5cGUgPSByZXF1aXJlKCcuL19nZXRQcm90b3R5cGUnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XSc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKiogVXNlZCB0byBpbmZlciB0aGUgYE9iamVjdGAgY29uc3RydWN0b3IuICovXG52YXIgb2JqZWN0Q3RvclN0cmluZyA9IGZ1bmNUb1N0cmluZy5jYWxsKE9iamVjdCk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIHRoYXQgaXMsIGFuIG9iamVjdCBjcmVhdGVkIGJ5IHRoZVxuICogYE9iamVjdGAgY29uc3RydWN0b3Igb3Igb25lIHdpdGggYSBgW1tQcm90b3R5cGVdXWAgb2YgYG51bGxgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC44LjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcGxhaW4gb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5hID0gMTtcbiAqIH1cbiAqXG4gKiBfLmlzUGxhaW5PYmplY3QobmV3IEZvbyk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzUGxhaW5PYmplY3QoeyAneCc6IDAsICd5JzogMCB9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzUGxhaW5PYmplY3QoT2JqZWN0LmNyZWF0ZShudWxsKSk7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgaWYgKCFpc09iamVjdExpa2UodmFsdWUpIHx8IGJhc2VHZXRUYWcodmFsdWUpICE9IG9iamVjdFRhZykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgcHJvdG8gPSBnZXRQcm90b3R5cGUodmFsdWUpO1xuICBpZiAocHJvdG8gPT09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICB2YXIgQ3RvciA9IGhhc093blByb3BlcnR5LmNhbGwocHJvdG8sICdjb25zdHJ1Y3RvcicpICYmIHByb3RvLmNvbnN0cnVjdG9yO1xuICByZXR1cm4gdHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yIGluc3RhbmNlb2YgQ3RvciAmJlxuICAgIGZ1bmNUb1N0cmluZy5jYWxsKEN0b3IpID09IG9iamVjdEN0b3JTdHJpbmc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNQbGFpbk9iamVjdDtcbiIsImltcG9ydCBpc1BsYWluT2JqZWN0IGZyb20gJ2xvZGFzaC9pc1BsYWluT2JqZWN0JztcbmltcG9ydCB7IEVSUk9SU19LRVkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG4vKiogR2l2ZW4gYSBgZm9ybURhdGFgIG9iamVjdCwgcmVjdXJzaXZlbHkgY3JlYXRlcyBhIGBGb3JtVmFsaWRhdGlvbmAgZXJyb3IgaGFuZGxpbmcgc3RydWN0dXJlIGFyb3VuZCBpdFxuICpcbiAqIEBwYXJhbSBmb3JtRGF0YSAtIFRoZSBmb3JtIGRhdGEgYXJvdW5kIHdoaWNoIHRoZSBlcnJvciBoYW5kbGVyIGlzIGNyZWF0ZWRcbiAqIEByZXR1cm5zIC0gQSBgRm9ybVZhbGlkYXRpb25gIG9iamVjdCBiYXNlZCBvbiB0aGUgYGZvcm1EYXRhYCBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRXJyb3JIYW5kbGVyKGZvcm1EYXRhKSB7XG4gICAgY29uc3QgaGFuZGxlciA9IHtcbiAgICAgICAgLy8gV2Ugc3RvcmUgdGhlIGxpc3Qgb2YgZXJyb3JzIGZvciB0aGlzIG5vZGUgaW4gYSBwcm9wZXJ0eSBuYW1lZCBfX2Vycm9yc1xuICAgICAgICAvLyB0byBhdm9pZCBuYW1lIGNvbGxpc2lvbiB3aXRoIGEgcG9zc2libGUgc3ViIHNjaGVtYSBmaWVsZCBuYW1lZFxuICAgICAgICAvLyAnZXJyb3JzJyAoc2VlIGB1dGlscy50b0Vycm9yU2NoZW1hYCkuXG4gICAgICAgIFtFUlJPUlNfS0VZXTogW10sXG4gICAgICAgIGFkZEVycm9yKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHRoaXNbRVJST1JTX0tFWV0ucHVzaChtZXNzYWdlKTtcbiAgICAgICAgfSxcbiAgICB9O1xuICAgIGlmIChBcnJheS5pc0FycmF5KGZvcm1EYXRhKSkge1xuICAgICAgICByZXR1cm4gZm9ybURhdGEucmVkdWNlKChhY2MsIHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmFjYywgW2tleV06IGNyZWF0ZUVycm9ySGFuZGxlcih2YWx1ZSkgfTtcbiAgICAgICAgfSwgaGFuZGxlcik7XG4gICAgfVxuICAgIGlmIChpc1BsYWluT2JqZWN0KGZvcm1EYXRhKSkge1xuICAgICAgICBjb25zdCBmb3JtT2JqZWN0ID0gZm9ybURhdGE7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhmb3JtT2JqZWN0KS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5hY2MsIFtrZXldOiBjcmVhdGVFcnJvckhhbmRsZXIoZm9ybU9iamVjdFtrZXldKSB9O1xuICAgICAgICB9LCBoYW5kbGVyKTtcbiAgICB9XG4gICAgcmV0dXJuIGhhbmRsZXI7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcmVhdGVFcnJvckhhbmRsZXIuanMubWFwIiwiLyoqXG4gKiBSZW1vdmVzIGFsbCBrZXktdmFsdWUgZW50cmllcyBmcm9tIHRoZSBsaXN0IGNhY2hlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBjbGVhclxuICogQG1lbWJlck9mIExpc3RDYWNoZVxuICovXG5mdW5jdGlvbiBsaXN0Q2FjaGVDbGVhcigpIHtcbiAgdGhpcy5fX2RhdGFfXyA9IFtdO1xuICB0aGlzLnNpemUgPSAwO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGxpc3RDYWNoZUNsZWFyO1xuIiwiLyoqXG4gKiBQZXJmb3JtcyBhXG4gKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogY29tcGFyaXNvbiBiZXR3ZWVuIHR3byB2YWx1ZXMgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgYXJlIGVxdWl2YWxlbnQuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxIH07XG4gKiB2YXIgb3RoZXIgPSB7ICdhJzogMSB9O1xuICpcbiAqIF8uZXEob2JqZWN0LCBvYmplY3QpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uZXEob2JqZWN0LCBvdGhlcik7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uZXEoJ2EnLCAnYScpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uZXEoJ2EnLCBPYmplY3QoJ2EnKSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uZXEoTmFOLCBOYU4pO1xuICogLy8gPT4gdHJ1ZVxuICovXG5mdW5jdGlvbiBlcSh2YWx1ZSwgb3RoZXIpIHtcbiAgcmV0dXJuIHZhbHVlID09PSBvdGhlciB8fCAodmFsdWUgIT09IHZhbHVlICYmIG90aGVyICE9PSBvdGhlcik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZXE7XG4iLCJ2YXIgZXEgPSByZXF1aXJlKCcuL2VxJyk7XG5cbi8qKlxuICogR2V0cyB0aGUgaW5kZXggYXQgd2hpY2ggdGhlIGBrZXlgIGlzIGZvdW5kIGluIGBhcnJheWAgb2Yga2V5LXZhbHVlIHBhaXJzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7Kn0ga2V5IFRoZSBrZXkgdG8gc2VhcmNoIGZvci5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gKi9cbmZ1bmN0aW9uIGFzc29jSW5kZXhPZihhcnJheSwga2V5KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gIHdoaWxlIChsZW5ndGgtLSkge1xuICAgIGlmIChlcShhcnJheVtsZW5ndGhdWzBdLCBrZXkpKSB7XG4gICAgICByZXR1cm4gbGVuZ3RoO1xuICAgIH1cbiAgfVxuICByZXR1cm4gLTE7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXNzb2NJbmRleE9mO1xuIiwidmFyIGFzc29jSW5kZXhPZiA9IHJlcXVpcmUoJy4vX2Fzc29jSW5kZXhPZicpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgYXJyYXlQcm90byA9IEFycmF5LnByb3RvdHlwZTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgc3BsaWNlID0gYXJyYXlQcm90by5zcGxpY2U7XG5cbi8qKlxuICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIGxpc3QgY2FjaGUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGRlbGV0ZVxuICogQG1lbWJlck9mIExpc3RDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byByZW1vdmUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGVudHJ5IHdhcyByZW1vdmVkLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZURlbGV0ZShrZXkpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fLFxuICAgICAgaW5kZXggPSBhc3NvY0luZGV4T2YoZGF0YSwga2V5KTtcblxuICBpZiAoaW5kZXggPCAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBsYXN0SW5kZXggPSBkYXRhLmxlbmd0aCAtIDE7XG4gIGlmIChpbmRleCA9PSBsYXN0SW5kZXgpIHtcbiAgICBkYXRhLnBvcCgpO1xuICB9IGVsc2Uge1xuICAgIHNwbGljZS5jYWxsKGRhdGEsIGluZGV4LCAxKTtcbiAgfVxuICAtLXRoaXMuc2l6ZTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbGlzdENhY2hlRGVsZXRlO1xuIiwidmFyIGFzc29jSW5kZXhPZiA9IHJlcXVpcmUoJy4vX2Fzc29jSW5kZXhPZicpO1xuXG4vKipcbiAqIEdldHMgdGhlIGxpc3QgY2FjaGUgdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBsaXN0Q2FjaGVHZXQoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG5cbiAgcmV0dXJuIGluZGV4IDwgMCA/IHVuZGVmaW5lZCA6IGRhdGFbaW5kZXhdWzFdO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGxpc3RDYWNoZUdldDtcbiIsInZhciBhc3NvY0luZGV4T2YgPSByZXF1aXJlKCcuL19hc3NvY0luZGV4T2YnKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBsaXN0IGNhY2hlIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGhhc1xuICogQG1lbWJlck9mIExpc3RDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZUhhcyhrZXkpIHtcbiAgcmV0dXJuIGFzc29jSW5kZXhPZih0aGlzLl9fZGF0YV9fLCBrZXkpID4gLTE7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbGlzdENhY2hlSGFzO1xuIiwidmFyIGFzc29jSW5kZXhPZiA9IHJlcXVpcmUoJy4vX2Fzc29jSW5kZXhPZicpO1xuXG4vKipcbiAqIFNldHMgdGhlIGxpc3QgY2FjaGUgYGtleWAgdG8gYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgc2V0XG4gKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHNldC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGxpc3QgY2FjaGUgaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZVNldChrZXksIHZhbHVlKSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG5cbiAgaWYgKGluZGV4IDwgMCkge1xuICAgICsrdGhpcy5zaXplO1xuICAgIGRhdGEucHVzaChba2V5LCB2YWx1ZV0pO1xuICB9IGVsc2Uge1xuICAgIGRhdGFbaW5kZXhdWzFdID0gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbGlzdENhY2hlU2V0O1xuIiwidmFyIGxpc3RDYWNoZUNsZWFyID0gcmVxdWlyZSgnLi9fbGlzdENhY2hlQ2xlYXInKSxcbiAgICBsaXN0Q2FjaGVEZWxldGUgPSByZXF1aXJlKCcuL19saXN0Q2FjaGVEZWxldGUnKSxcbiAgICBsaXN0Q2FjaGVHZXQgPSByZXF1aXJlKCcuL19saXN0Q2FjaGVHZXQnKSxcbiAgICBsaXN0Q2FjaGVIYXMgPSByZXF1aXJlKCcuL19saXN0Q2FjaGVIYXMnKSxcbiAgICBsaXN0Q2FjaGVTZXQgPSByZXF1aXJlKCcuL19saXN0Q2FjaGVTZXQnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGxpc3QgY2FjaGUgb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBMaXN0Q2FjaGUoZW50cmllcykge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGVudHJpZXMgPT0gbnVsbCA/IDAgOiBlbnRyaWVzLmxlbmd0aDtcblxuICB0aGlzLmNsZWFyKCk7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGVudHJ5ID0gZW50cmllc1tpbmRleF07XG4gICAgdGhpcy5zZXQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgfVxufVxuXG4vLyBBZGQgbWV0aG9kcyB0byBgTGlzdENhY2hlYC5cbkxpc3RDYWNoZS5wcm90b3R5cGUuY2xlYXIgPSBsaXN0Q2FjaGVDbGVhcjtcbkxpc3RDYWNoZS5wcm90b3R5cGVbJ2RlbGV0ZSddID0gbGlzdENhY2hlRGVsZXRlO1xuTGlzdENhY2hlLnByb3RvdHlwZS5nZXQgPSBsaXN0Q2FjaGVHZXQ7XG5MaXN0Q2FjaGUucHJvdG90eXBlLmhhcyA9IGxpc3RDYWNoZUhhcztcbkxpc3RDYWNoZS5wcm90b3R5cGUuc2V0ID0gbGlzdENhY2hlU2V0O1xuXG5tb2R1bGUuZXhwb3J0cyA9IExpc3RDYWNoZTtcbiIsInZhciBMaXN0Q2FjaGUgPSByZXF1aXJlKCcuL19MaXN0Q2FjaGUnKTtcblxuLyoqXG4gKiBSZW1vdmVzIGFsbCBrZXktdmFsdWUgZW50cmllcyBmcm9tIHRoZSBzdGFjay5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgY2xlYXJcbiAqIEBtZW1iZXJPZiBTdGFja1xuICovXG5mdW5jdGlvbiBzdGFja0NsZWFyKCkge1xuICB0aGlzLl9fZGF0YV9fID0gbmV3IExpc3RDYWNoZTtcbiAgdGhpcy5zaXplID0gMDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdGFja0NsZWFyO1xuIiwiLyoqXG4gKiBSZW1vdmVzIGBrZXlgIGFuZCBpdHMgdmFsdWUgZnJvbSB0aGUgc3RhY2suXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGRlbGV0ZVxuICogQG1lbWJlck9mIFN0YWNrXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gc3RhY2tEZWxldGUoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIHJlc3VsdCA9IGRhdGFbJ2RlbGV0ZSddKGtleSk7XG5cbiAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0YWNrRGVsZXRlO1xuIiwiLyoqXG4gKiBHZXRzIHRoZSBzdGFjayB2YWx1ZSBmb3IgYGtleWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGdldFxuICogQG1lbWJlck9mIFN0YWNrXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBlbnRyeSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gc3RhY2tHZXQoa2V5KSB7XG4gIHJldHVybiB0aGlzLl9fZGF0YV9fLmdldChrZXkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0YWNrR2V0O1xuIiwiLyoqXG4gKiBDaGVja3MgaWYgYSBzdGFjayB2YWx1ZSBmb3IgYGtleWAgZXhpc3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBoYXNcbiAqIEBtZW1iZXJPZiBTdGFja1xuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIHN0YWNrSGFzKGtleSkge1xuICByZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMoa2V5KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdGFja0hhcztcbiIsIi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgdGhlXG4gKiBbbGFuZ3VhZ2UgdHlwZV0oaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLWVjbWFzY3JpcHQtbGFuZ3VhZ2UtdHlwZXMpXG4gKiBvZiBgT2JqZWN0YC4gKGUuZy4gYXJyYXlzLCBmdW5jdGlvbnMsIG9iamVjdHMsIHJlZ2V4ZXMsIGBuZXcgTnVtYmVyKDApYCwgYW5kIGBuZXcgU3RyaW5nKCcnKWApXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNPYmplY3Qoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KF8ubm9vcCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlKSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiAodHlwZSA9PSAnb2JqZWN0JyB8fCB0eXBlID09ICdmdW5jdGlvbicpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzT2JqZWN0O1xuIiwidmFyIGJhc2VHZXRUYWcgPSByZXF1aXJlKCcuL19iYXNlR2V0VGFnJyksXG4gICAgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzT2JqZWN0Jyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBhc3luY1RhZyA9ICdbb2JqZWN0IEFzeW5jRnVuY3Rpb25dJyxcbiAgICBmdW5jVGFnID0gJ1tvYmplY3QgRnVuY3Rpb25dJyxcbiAgICBnZW5UYWcgPSAnW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0nLFxuICAgIHByb3h5VGFnID0gJ1tvYmplY3QgUHJveHldJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYEZ1bmN0aW9uYCBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBmdW5jdGlvbiwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzRnVuY3Rpb24oXyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0Z1bmN0aW9uKC9hYmMvKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWUpIHtcbiAgaWYgKCFpc09iamVjdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLy8gVGhlIHVzZSBvZiBgT2JqZWN0I3RvU3RyaW5nYCBhdm9pZHMgaXNzdWVzIHdpdGggdGhlIGB0eXBlb2ZgIG9wZXJhdG9yXG4gIC8vIGluIFNhZmFyaSA5IHdoaWNoIHJldHVybnMgJ29iamVjdCcgZm9yIHR5cGVkIGFycmF5cyBhbmQgb3RoZXIgY29uc3RydWN0b3JzLlxuICB2YXIgdGFnID0gYmFzZUdldFRhZyh2YWx1ZSk7XG4gIHJldHVybiB0YWcgPT0gZnVuY1RhZyB8fCB0YWcgPT0gZ2VuVGFnIHx8IHRhZyA9PSBhc3luY1RhZyB8fCB0YWcgPT0gcHJveHlUYWc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNGdW5jdGlvbjtcbiIsInZhciByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpO1xuXG4vKiogVXNlZCB0byBkZXRlY3Qgb3ZlcnJlYWNoaW5nIGNvcmUtanMgc2hpbXMuICovXG52YXIgY29yZUpzRGF0YSA9IHJvb3RbJ19fY29yZS1qc19zaGFyZWRfXyddO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGNvcmVKc0RhdGE7XG4iLCJ2YXIgY29yZUpzRGF0YSA9IHJlcXVpcmUoJy4vX2NvcmVKc0RhdGEnKTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG1ldGhvZHMgbWFzcXVlcmFkaW5nIGFzIG5hdGl2ZS4gKi9cbnZhciBtYXNrU3JjS2V5ID0gKGZ1bmN0aW9uKCkge1xuICB2YXIgdWlkID0gL1teLl0rJC8uZXhlYyhjb3JlSnNEYXRhICYmIGNvcmVKc0RhdGEua2V5cyAmJiBjb3JlSnNEYXRhLmtleXMuSUVfUFJPVE8gfHwgJycpO1xuICByZXR1cm4gdWlkID8gKCdTeW1ib2woc3JjKV8xLicgKyB1aWQpIDogJyc7XG59KCkpO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgZnVuY2AgaGFzIGl0cyBzb3VyY2UgbWFza2VkLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgZnVuY2AgaXMgbWFza2VkLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzTWFza2VkKGZ1bmMpIHtcbiAgcmV0dXJuICEhbWFza1NyY0tleSAmJiAobWFza1NyY0tleSBpbiBmdW5jKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc01hc2tlZDtcbiIsIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIHJlc29sdmUgdGhlIGRlY29tcGlsZWQgc291cmNlIG9mIGZ1bmN0aW9ucy4gKi9cbnZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ29udmVydHMgYGZ1bmNgIHRvIGl0cyBzb3VyY2UgY29kZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHNvdXJjZSBjb2RlLlxuICovXG5mdW5jdGlvbiB0b1NvdXJjZShmdW5jKSB7XG4gIGlmIChmdW5jICE9IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGZ1bmNUb1N0cmluZy5jYWxsKGZ1bmMpO1xuICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiAoZnVuYyArICcnKTtcbiAgICB9IGNhdGNoIChlKSB7fVxuICB9XG4gIHJldHVybiAnJztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0b1NvdXJjZTtcbiIsInZhciBpc0Z1bmN0aW9uID0gcmVxdWlyZSgnLi9pc0Z1bmN0aW9uJyksXG4gICAgaXNNYXNrZWQgPSByZXF1aXJlKCcuL19pc01hc2tlZCcpLFxuICAgIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpLFxuICAgIHRvU291cmNlID0gcmVxdWlyZSgnLi9fdG9Tb3VyY2UnKTtcblxuLyoqXG4gKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgXG4gKiBbc3ludGF4IGNoYXJhY3RlcnNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXBhdHRlcm5zKS5cbiAqL1xudmFyIHJlUmVnRXhwQ2hhciA9IC9bXFxcXF4kLiorPygpW1xcXXt9fF0vZztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGhvc3QgY29uc3RydWN0b3JzIChTYWZhcmkpLiAqL1xudmFyIHJlSXNIb3N0Q3RvciA9IC9eXFxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXFxdJC87XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKiogVXNlZCB0byBkZXRlY3QgaWYgYSBtZXRob2QgaXMgbmF0aXZlLiAqL1xudmFyIHJlSXNOYXRpdmUgPSBSZWdFeHAoJ14nICtcbiAgZnVuY1RvU3RyaW5nLmNhbGwoaGFzT3duUHJvcGVydHkpLnJlcGxhY2UocmVSZWdFeHBDaGFyLCAnXFxcXCQmJylcbiAgLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFxcXFwoKXwgZm9yIC4rPyg/PVxcXFxcXF0pL2csICckMS4qPycpICsgJyQnXG4pO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTmF0aXZlYCB3aXRob3V0IGJhZCBzaGltIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG5hdGl2ZSBmdW5jdGlvbixcbiAqICBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc05hdGl2ZSh2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSB8fCBpc01hc2tlZCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHBhdHRlcm4gPSBpc0Z1bmN0aW9uKHZhbHVlKSA/IHJlSXNOYXRpdmUgOiByZUlzSG9zdEN0b3I7XG4gIHJldHVybiBwYXR0ZXJuLnRlc3QodG9Tb3VyY2UodmFsdWUpKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSXNOYXRpdmU7XG4iLCIvKipcbiAqIEdldHMgdGhlIHZhbHVlIGF0IGBrZXlgIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBnZXRWYWx1ZShvYmplY3QsIGtleSkge1xuICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiBvYmplY3Rba2V5XTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBnZXRWYWx1ZTtcbiIsInZhciBiYXNlSXNOYXRpdmUgPSByZXF1aXJlKCcuL19iYXNlSXNOYXRpdmUnKSxcbiAgICBnZXRWYWx1ZSA9IHJlcXVpcmUoJy4vX2dldFZhbHVlJyk7XG5cbi8qKlxuICogR2V0cyB0aGUgbmF0aXZlIGZ1bmN0aW9uIGF0IGBrZXlgIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIG1ldGhvZCB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZnVuY3Rpb24gaWYgaXQncyBuYXRpdmUsIGVsc2UgYHVuZGVmaW5lZGAuXG4gKi9cbmZ1bmN0aW9uIGdldE5hdGl2ZShvYmplY3QsIGtleSkge1xuICB2YXIgdmFsdWUgPSBnZXRWYWx1ZShvYmplY3QsIGtleSk7XG4gIHJldHVybiBiYXNlSXNOYXRpdmUodmFsdWUpID8gdmFsdWUgOiB1bmRlZmluZWQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0TmF0aXZlO1xuIiwidmFyIGdldE5hdGl2ZSA9IHJlcXVpcmUoJy4vX2dldE5hdGl2ZScpLFxuICAgIHJvb3QgPSByZXF1aXJlKCcuL19yb290Jyk7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHRoYXQgYXJlIHZlcmlmaWVkIHRvIGJlIG5hdGl2ZS4gKi9cbnZhciBNYXAgPSBnZXROYXRpdmUocm9vdCwgJ01hcCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE1hcDtcbiIsInZhciBnZXROYXRpdmUgPSByZXF1aXJlKCcuL19nZXROYXRpdmUnKTtcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgdGhhdCBhcmUgdmVyaWZpZWQgdG8gYmUgbmF0aXZlLiAqL1xudmFyIG5hdGl2ZUNyZWF0ZSA9IGdldE5hdGl2ZShPYmplY3QsICdjcmVhdGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBuYXRpdmVDcmVhdGU7XG4iLCJ2YXIgbmF0aXZlQ3JlYXRlID0gcmVxdWlyZSgnLi9fbmF0aXZlQ3JlYXRlJyk7XG5cbi8qKlxuICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgaGFzaC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgY2xlYXJcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKi9cbmZ1bmN0aW9uIGhhc2hDbGVhcigpIHtcbiAgdGhpcy5fX2RhdGFfXyA9IG5hdGl2ZUNyZWF0ZSA/IG5hdGl2ZUNyZWF0ZShudWxsKSA6IHt9O1xuICB0aGlzLnNpemUgPSAwO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGhhc2hDbGVhcjtcbiIsIi8qKlxuICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIGhhc2guXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGRlbGV0ZVxuICogQG1lbWJlck9mIEhhc2hcbiAqIEBwYXJhbSB7T2JqZWN0fSBoYXNoIFRoZSBoYXNoIHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBoYXNoRGVsZXRlKGtleSkge1xuICB2YXIgcmVzdWx0ID0gdGhpcy5oYXMoa2V5KSAmJiBkZWxldGUgdGhpcy5fX2RhdGFfX1trZXldO1xuICB0aGlzLnNpemUgLT0gcmVzdWx0ID8gMSA6IDA7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaGFzaERlbGV0ZTtcbiIsInZhciBuYXRpdmVDcmVhdGUgPSByZXF1aXJlKCcuL19uYXRpdmVDcmVhdGUnKTtcblxuLyoqIFVzZWQgdG8gc3RhbmQtaW4gZm9yIGB1bmRlZmluZWRgIGhhc2ggdmFsdWVzLiAqL1xudmFyIEhBU0hfVU5ERUZJTkVEID0gJ19fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18nO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEdldHMgdGhlIGhhc2ggdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBlbnRyeSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gaGFzaEdldChrZXkpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICBpZiAobmF0aXZlQ3JlYXRlKSB7XG4gICAgdmFyIHJlc3VsdCA9IGRhdGFba2V5XTtcbiAgICByZXR1cm4gcmVzdWx0ID09PSBIQVNIX1VOREVGSU5FRCA/IHVuZGVmaW5lZCA6IHJlc3VsdDtcbiAgfVxuICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChkYXRhLCBrZXkpID8gZGF0YVtrZXldIDogdW5kZWZpbmVkO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGhhc2hHZXQ7XG4iLCJ2YXIgbmF0aXZlQ3JlYXRlID0gcmVxdWlyZSgnLi9fbmF0aXZlQ3JlYXRlJyk7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgaGFzaCB2YWx1ZSBmb3IgYGtleWAgZXhpc3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBoYXNcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIGVudHJ5IHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFuIGVudHJ5IGZvciBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaGFzaEhhcyhrZXkpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICByZXR1cm4gbmF0aXZlQ3JlYXRlID8gKGRhdGFba2V5XSAhPT0gdW5kZWZpbmVkKSA6IGhhc093blByb3BlcnR5LmNhbGwoZGF0YSwga2V5KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBoYXNoSGFzO1xuIiwidmFyIG5hdGl2ZUNyZWF0ZSA9IHJlcXVpcmUoJy4vX25hdGl2ZUNyZWF0ZScpO1xuXG4vKiogVXNlZCB0byBzdGFuZC1pbiBmb3IgYHVuZGVmaW5lZGAgaGFzaCB2YWx1ZXMuICovXG52YXIgSEFTSF9VTkRFRklORUQgPSAnX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyc7XG5cbi8qKlxuICogU2V0cyB0aGUgaGFzaCBga2V5YCB0byBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBzZXRcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHNldC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGhhc2ggaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIGhhc2hTZXQoa2V5LCB2YWx1ZSkge1xuICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX187XG4gIHRoaXMuc2l6ZSArPSB0aGlzLmhhcyhrZXkpID8gMCA6IDE7XG4gIGRhdGFba2V5XSA9IChuYXRpdmVDcmVhdGUgJiYgdmFsdWUgPT09IHVuZGVmaW5lZCkgPyBIQVNIX1VOREVGSU5FRCA6IHZhbHVlO1xuICByZXR1cm4gdGhpcztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBoYXNoU2V0O1xuIiwidmFyIGhhc2hDbGVhciA9IHJlcXVpcmUoJy4vX2hhc2hDbGVhcicpLFxuICAgIGhhc2hEZWxldGUgPSByZXF1aXJlKCcuL19oYXNoRGVsZXRlJyksXG4gICAgaGFzaEdldCA9IHJlcXVpcmUoJy4vX2hhc2hHZXQnKSxcbiAgICBoYXNoSGFzID0gcmVxdWlyZSgnLi9faGFzaEhhcycpLFxuICAgIGhhc2hTZXQgPSByZXF1aXJlKCcuL19oYXNoU2V0Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGhhc2ggb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBIYXNoKGVudHJpZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XG5cbiAgdGhpcy5jbGVhcigpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gIH1cbn1cblxuLy8gQWRkIG1ldGhvZHMgdG8gYEhhc2hgLlxuSGFzaC5wcm90b3R5cGUuY2xlYXIgPSBoYXNoQ2xlYXI7XG5IYXNoLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBoYXNoRGVsZXRlO1xuSGFzaC5wcm90b3R5cGUuZ2V0ID0gaGFzaEdldDtcbkhhc2gucHJvdG90eXBlLmhhcyA9IGhhc2hIYXM7XG5IYXNoLnByb3RvdHlwZS5zZXQgPSBoYXNoU2V0O1xuXG5tb2R1bGUuZXhwb3J0cyA9IEhhc2g7XG4iLCJ2YXIgSGFzaCA9IHJlcXVpcmUoJy4vX0hhc2gnKSxcbiAgICBMaXN0Q2FjaGUgPSByZXF1aXJlKCcuL19MaXN0Q2FjaGUnKSxcbiAgICBNYXAgPSByZXF1aXJlKCcuL19NYXAnKTtcblxuLyoqXG4gKiBSZW1vdmVzIGFsbCBrZXktdmFsdWUgZW50cmllcyBmcm9tIHRoZSBtYXAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGNsZWFyXG4gKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAqL1xuZnVuY3Rpb24gbWFwQ2FjaGVDbGVhcigpIHtcbiAgdGhpcy5zaXplID0gMDtcbiAgdGhpcy5fX2RhdGFfXyA9IHtcbiAgICAnaGFzaCc6IG5ldyBIYXNoLFxuICAgICdtYXAnOiBuZXcgKE1hcCB8fCBMaXN0Q2FjaGUpLFxuICAgICdzdHJpbmcnOiBuZXcgSGFzaFxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1hcENhY2hlQ2xlYXI7XG4iLCIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHN1aXRhYmxlIGZvciB1c2UgYXMgdW5pcXVlIG9iamVjdCBrZXkuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgc3VpdGFibGUsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNLZXlhYmxlKHZhbHVlKSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICByZXR1cm4gKHR5cGUgPT0gJ3N0cmluZycgfHwgdHlwZSA9PSAnbnVtYmVyJyB8fCB0eXBlID09ICdzeW1ib2wnIHx8IHR5cGUgPT0gJ2Jvb2xlYW4nKVxuICAgID8gKHZhbHVlICE9PSAnX19wcm90b19fJylcbiAgICA6ICh2YWx1ZSA9PT0gbnVsbCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNLZXlhYmxlO1xuIiwidmFyIGlzS2V5YWJsZSA9IHJlcXVpcmUoJy4vX2lzS2V5YWJsZScpO1xuXG4vKipcbiAqIEdldHMgdGhlIGRhdGEgZm9yIGBtYXBgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gbWFwIFRoZSBtYXAgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSByZWZlcmVuY2Uga2V5LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1hcCBkYXRhLlxuICovXG5mdW5jdGlvbiBnZXRNYXBEYXRhKG1hcCwga2V5KSB7XG4gIHZhciBkYXRhID0gbWFwLl9fZGF0YV9fO1xuICByZXR1cm4gaXNLZXlhYmxlKGtleSlcbiAgICA/IGRhdGFbdHlwZW9mIGtleSA9PSAnc3RyaW5nJyA/ICdzdHJpbmcnIDogJ2hhc2gnXVxuICAgIDogZGF0YS5tYXA7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0TWFwRGF0YTtcbiIsInZhciBnZXRNYXBEYXRhID0gcmVxdWlyZSgnLi9fZ2V0TWFwRGF0YScpO1xuXG4vKipcbiAqIFJlbW92ZXMgYGtleWAgYW5kIGl0cyB2YWx1ZSBmcm9tIHRoZSBtYXAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGRlbGV0ZVxuICogQG1lbWJlck9mIE1hcENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gbWFwQ2FjaGVEZWxldGUoa2V5KSB7XG4gIHZhciByZXN1bHQgPSBnZXRNYXBEYXRhKHRoaXMsIGtleSlbJ2RlbGV0ZSddKGtleSk7XG4gIHRoaXMuc2l6ZSAtPSByZXN1bHQgPyAxIDogMDtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYXBDYWNoZURlbGV0ZTtcbiIsInZhciBnZXRNYXBEYXRhID0gcmVxdWlyZSgnLi9fZ2V0TWFwRGF0YScpO1xuXG4vKipcbiAqIEdldHMgdGhlIG1hcCB2YWx1ZSBmb3IgYGtleWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGdldFxuICogQG1lbWJlck9mIE1hcENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBlbnRyeSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gbWFwQ2FjaGVHZXQoa2V5KSB7XG4gIHJldHVybiBnZXRNYXBEYXRhKHRoaXMsIGtleSkuZ2V0KGtleSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWFwQ2FjaGVHZXQ7XG4iLCJ2YXIgZ2V0TWFwRGF0YSA9IHJlcXVpcmUoJy4vX2dldE1hcERhdGEnKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBtYXAgdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgaGFzXG4gKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBtYXBDYWNoZUhhcyhrZXkpIHtcbiAgcmV0dXJuIGdldE1hcERhdGEodGhpcywga2V5KS5oYXMoa2V5KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYXBDYWNoZUhhcztcbiIsInZhciBnZXRNYXBEYXRhID0gcmVxdWlyZSgnLi9fZ2V0TWFwRGF0YScpO1xuXG4vKipcbiAqIFNldHMgdGhlIG1hcCBga2V5YCB0byBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBzZXRcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBtYXAgY2FjaGUgaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIG1hcENhY2hlU2V0KGtleSwgdmFsdWUpIHtcbiAgdmFyIGRhdGEgPSBnZXRNYXBEYXRhKHRoaXMsIGtleSksXG4gICAgICBzaXplID0gZGF0YS5zaXplO1xuXG4gIGRhdGEuc2V0KGtleSwgdmFsdWUpO1xuICB0aGlzLnNpemUgKz0gZGF0YS5zaXplID09IHNpemUgPyAwIDogMTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWFwQ2FjaGVTZXQ7XG4iLCJ2YXIgbWFwQ2FjaGVDbGVhciA9IHJlcXVpcmUoJy4vX21hcENhY2hlQ2xlYXInKSxcbiAgICBtYXBDYWNoZURlbGV0ZSA9IHJlcXVpcmUoJy4vX21hcENhY2hlRGVsZXRlJyksXG4gICAgbWFwQ2FjaGVHZXQgPSByZXF1aXJlKCcuL19tYXBDYWNoZUdldCcpLFxuICAgIG1hcENhY2hlSGFzID0gcmVxdWlyZSgnLi9fbWFwQ2FjaGVIYXMnKSxcbiAgICBtYXBDYWNoZVNldCA9IHJlcXVpcmUoJy4vX21hcENhY2hlU2V0Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIG1hcCBjYWNoZSBvYmplY3QgdG8gc3RvcmUga2V5LXZhbHVlIHBhaXJzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBNYXBDYWNoZShlbnRyaWVzKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gZW50cmllcyA9PSBudWxsID8gMCA6IGVudHJpZXMubGVuZ3RoO1xuXG4gIHRoaXMuY2xlYXIoKTtcbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIgZW50cnkgPSBlbnRyaWVzW2luZGV4XTtcbiAgICB0aGlzLnNldChlbnRyeVswXSwgZW50cnlbMV0pO1xuICB9XG59XG5cbi8vIEFkZCBtZXRob2RzIHRvIGBNYXBDYWNoZWAuXG5NYXBDYWNoZS5wcm90b3R5cGUuY2xlYXIgPSBtYXBDYWNoZUNsZWFyO1xuTWFwQ2FjaGUucHJvdG90eXBlWydkZWxldGUnXSA9IG1hcENhY2hlRGVsZXRlO1xuTWFwQ2FjaGUucHJvdG90eXBlLmdldCA9IG1hcENhY2hlR2V0O1xuTWFwQ2FjaGUucHJvdG90eXBlLmhhcyA9IG1hcENhY2hlSGFzO1xuTWFwQ2FjaGUucHJvdG90eXBlLnNldCA9IG1hcENhY2hlU2V0O1xuXG5tb2R1bGUuZXhwb3J0cyA9IE1hcENhY2hlO1xuIiwidmFyIExpc3RDYWNoZSA9IHJlcXVpcmUoJy4vX0xpc3RDYWNoZScpLFxuICAgIE1hcCA9IHJlcXVpcmUoJy4vX01hcCcpLFxuICAgIE1hcENhY2hlID0gcmVxdWlyZSgnLi9fTWFwQ2FjaGUnKTtcblxuLyoqIFVzZWQgYXMgdGhlIHNpemUgdG8gZW5hYmxlIGxhcmdlIGFycmF5IG9wdGltaXphdGlvbnMuICovXG52YXIgTEFSR0VfQVJSQVlfU0laRSA9IDIwMDtcblxuLyoqXG4gKiBTZXRzIHRoZSBzdGFjayBga2V5YCB0byBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBzZXRcbiAqIEBtZW1iZXJPZiBTdGFja1xuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBzdGFjayBjYWNoZSBpbnN0YW5jZS5cbiAqL1xuZnVuY3Rpb24gc3RhY2tTZXQoa2V5LCB2YWx1ZSkge1xuICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX187XG4gIGlmIChkYXRhIGluc3RhbmNlb2YgTGlzdENhY2hlKSB7XG4gICAgdmFyIHBhaXJzID0gZGF0YS5fX2RhdGFfXztcbiAgICBpZiAoIU1hcCB8fCAocGFpcnMubGVuZ3RoIDwgTEFSR0VfQVJSQVlfU0laRSAtIDEpKSB7XG4gICAgICBwYWlycy5wdXNoKFtrZXksIHZhbHVlXSk7XG4gICAgICB0aGlzLnNpemUgPSArK2RhdGEuc2l6ZTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBkYXRhID0gdGhpcy5fX2RhdGFfXyA9IG5ldyBNYXBDYWNoZShwYWlycyk7XG4gIH1cbiAgZGF0YS5zZXQoa2V5LCB2YWx1ZSk7XG4gIHRoaXMuc2l6ZSA9IGRhdGEuc2l6ZTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc3RhY2tTZXQ7XG4iLCJ2YXIgTGlzdENhY2hlID0gcmVxdWlyZSgnLi9fTGlzdENhY2hlJyksXG4gICAgc3RhY2tDbGVhciA9IHJlcXVpcmUoJy4vX3N0YWNrQ2xlYXInKSxcbiAgICBzdGFja0RlbGV0ZSA9IHJlcXVpcmUoJy4vX3N0YWNrRGVsZXRlJyksXG4gICAgc3RhY2tHZXQgPSByZXF1aXJlKCcuL19zdGFja0dldCcpLFxuICAgIHN0YWNrSGFzID0gcmVxdWlyZSgnLi9fc3RhY2tIYXMnKSxcbiAgICBzdGFja1NldCA9IHJlcXVpcmUoJy4vX3N0YWNrU2V0Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHN0YWNrIGNhY2hlIG9iamVjdCB0byBzdG9yZSBrZXktdmFsdWUgcGFpcnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtBcnJheX0gW2VudHJpZXNdIFRoZSBrZXktdmFsdWUgcGFpcnMgdG8gY2FjaGUuXG4gKi9cbmZ1bmN0aW9uIFN0YWNrKGVudHJpZXMpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fID0gbmV3IExpc3RDYWNoZShlbnRyaWVzKTtcbiAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xufVxuXG4vLyBBZGQgbWV0aG9kcyB0byBgU3RhY2tgLlxuU3RhY2sucHJvdG90eXBlLmNsZWFyID0gc3RhY2tDbGVhcjtcblN0YWNrLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBzdGFja0RlbGV0ZTtcblN0YWNrLnByb3RvdHlwZS5nZXQgPSBzdGFja0dldDtcblN0YWNrLnByb3RvdHlwZS5oYXMgPSBzdGFja0hhcztcblN0YWNrLnByb3RvdHlwZS5zZXQgPSBzdGFja1NldDtcblxubW9kdWxlLmV4cG9ydHMgPSBTdGFjaztcbiIsIi8qKiBVc2VkIHRvIHN0YW5kLWluIGZvciBgdW5kZWZpbmVkYCBoYXNoIHZhbHVlcy4gKi9cbnZhciBIQVNIX1VOREVGSU5FRCA9ICdfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fJztcblxuLyoqXG4gKiBBZGRzIGB2YWx1ZWAgdG8gdGhlIGFycmF5IGNhY2hlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBhZGRcbiAqIEBtZW1iZXJPZiBTZXRDYWNoZVxuICogQGFsaWFzIHB1c2hcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNhY2hlLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2FjaGUgaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIHNldENhY2hlQWRkKHZhbHVlKSB7XG4gIHRoaXMuX19kYXRhX18uc2V0KHZhbHVlLCBIQVNIX1VOREVGSU5FRCk7XG4gIHJldHVybiB0aGlzO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNldENhY2hlQWRkO1xuIiwiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBpbiB0aGUgYXJyYXkgY2FjaGUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGhhc1xuICogQG1lbWJlck9mIFNldENhY2hlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBmb3VuZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBzZXRDYWNoZUhhcyh2YWx1ZSkge1xuICByZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXModmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNldENhY2hlSGFzO1xuIiwidmFyIE1hcENhY2hlID0gcmVxdWlyZSgnLi9fTWFwQ2FjaGUnKSxcbiAgICBzZXRDYWNoZUFkZCA9IHJlcXVpcmUoJy4vX3NldENhY2hlQWRkJyksXG4gICAgc2V0Q2FjaGVIYXMgPSByZXF1aXJlKCcuL19zZXRDYWNoZUhhcycpO1xuXG4vKipcbiAqXG4gKiBDcmVhdGVzIGFuIGFycmF5IGNhY2hlIG9iamVjdCB0byBzdG9yZSB1bmlxdWUgdmFsdWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFt2YWx1ZXNdIFRoZSB2YWx1ZXMgdG8gY2FjaGUuXG4gKi9cbmZ1bmN0aW9uIFNldENhY2hlKHZhbHVlcykge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHZhbHVlcyA9PSBudWxsID8gMCA6IHZhbHVlcy5sZW5ndGg7XG5cbiAgdGhpcy5fX2RhdGFfXyA9IG5ldyBNYXBDYWNoZTtcbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB0aGlzLmFkZCh2YWx1ZXNbaW5kZXhdKTtcbiAgfVxufVxuXG4vLyBBZGQgbWV0aG9kcyB0byBgU2V0Q2FjaGVgLlxuU2V0Q2FjaGUucHJvdG90eXBlLmFkZCA9IFNldENhY2hlLnByb3RvdHlwZS5wdXNoID0gc2V0Q2FjaGVBZGQ7XG5TZXRDYWNoZS5wcm90b3R5cGUuaGFzID0gc2V0Q2FjaGVIYXM7XG5cbm1vZHVsZS5leHBvcnRzID0gU2V0Q2FjaGU7XG4iLCIvKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5zb21lYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWVcbiAqIHNob3J0aGFuZHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IFthcnJheV0gVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFueSBlbGVtZW50IHBhc3NlcyB0aGUgcHJlZGljYXRlIGNoZWNrLFxuICogIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYXJyYXlTb21lKGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGlmIChwcmVkaWNhdGUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFycmF5U29tZTtcbiIsIi8qKlxuICogQ2hlY2tzIGlmIGEgYGNhY2hlYCB2YWx1ZSBmb3IgYGtleWAgZXhpc3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gY2FjaGUgVGhlIGNhY2hlIHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGNhY2hlSGFzKGNhY2hlLCBrZXkpIHtcbiAgcmV0dXJuIGNhY2hlLmhhcyhrZXkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNhY2hlSGFzO1xuIiwidmFyIFNldENhY2hlID0gcmVxdWlyZSgnLi9fU2V0Q2FjaGUnKSxcbiAgICBhcnJheVNvbWUgPSByZXF1aXJlKCcuL19hcnJheVNvbWUnKSxcbiAgICBjYWNoZUhhcyA9IHJlcXVpcmUoJy4vX2NhY2hlSGFzJyk7XG5cbi8qKiBVc2VkIHRvIGNvbXBvc2UgYml0bWFza3MgZm9yIHZhbHVlIGNvbXBhcmlzb25zLiAqL1xudmFyIENPTVBBUkVfUEFSVElBTF9GTEFHID0gMSxcbiAgICBDT01QQVJFX1VOT1JERVJFRF9GTEFHID0gMjtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VJc0VxdWFsRGVlcGAgZm9yIGFycmF5cyB3aXRoIHN1cHBvcnQgZm9yXG4gKiBwYXJ0aWFsIGRlZXAgY29tcGFyaXNvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBjb21wYXJlLlxuICogQHBhcmFtIHtBcnJheX0gb3RoZXIgVGhlIG90aGVyIGFycmF5IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBiYXNlSXNFcXVhbGAgZm9yIG1vcmUgZGV0YWlscy5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGN1c3RvbWl6ZXIgVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpc29ucy5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGVxdWFsRnVuYyBUaGUgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGVxdWl2YWxlbnRzIG9mIHZhbHVlcy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBzdGFjayBUcmFja3MgdHJhdmVyc2VkIGBhcnJheWAgYW5kIGBvdGhlcmAgb2JqZWN0cy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgYXJyYXlzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGVxdWFsQXJyYXlzKGFycmF5LCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjaykge1xuICB2YXIgaXNQYXJ0aWFsID0gYml0bWFzayAmIENPTVBBUkVfUEFSVElBTF9GTEFHLFxuICAgICAgYXJyTGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgb3RoTGVuZ3RoID0gb3RoZXIubGVuZ3RoO1xuXG4gIGlmIChhcnJMZW5ndGggIT0gb3RoTGVuZ3RoICYmICEoaXNQYXJ0aWFsICYmIG90aExlbmd0aCA+IGFyckxlbmd0aCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLy8gQ2hlY2sgdGhhdCBjeWNsaWMgdmFsdWVzIGFyZSBlcXVhbC5cbiAgdmFyIGFyclN0YWNrZWQgPSBzdGFjay5nZXQoYXJyYXkpO1xuICB2YXIgb3RoU3RhY2tlZCA9IHN0YWNrLmdldChvdGhlcik7XG4gIGlmIChhcnJTdGFja2VkICYmIG90aFN0YWNrZWQpIHtcbiAgICByZXR1cm4gYXJyU3RhY2tlZCA9PSBvdGhlciAmJiBvdGhTdGFja2VkID09IGFycmF5O1xuICB9XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgcmVzdWx0ID0gdHJ1ZSxcbiAgICAgIHNlZW4gPSAoYml0bWFzayAmIENPTVBBUkVfVU5PUkRFUkVEX0ZMQUcpID8gbmV3IFNldENhY2hlIDogdW5kZWZpbmVkO1xuXG4gIHN0YWNrLnNldChhcnJheSwgb3RoZXIpO1xuICBzdGFjay5zZXQob3RoZXIsIGFycmF5KTtcblxuICAvLyBJZ25vcmUgbm9uLWluZGV4IHByb3BlcnRpZXMuXG4gIHdoaWxlICgrK2luZGV4IDwgYXJyTGVuZ3RoKSB7XG4gICAgdmFyIGFyclZhbHVlID0gYXJyYXlbaW5kZXhdLFxuICAgICAgICBvdGhWYWx1ZSA9IG90aGVyW2luZGV4XTtcblxuICAgIGlmIChjdXN0b21pemVyKSB7XG4gICAgICB2YXIgY29tcGFyZWQgPSBpc1BhcnRpYWxcbiAgICAgICAgPyBjdXN0b21pemVyKG90aFZhbHVlLCBhcnJWYWx1ZSwgaW5kZXgsIG90aGVyLCBhcnJheSwgc3RhY2spXG4gICAgICAgIDogY3VzdG9taXplcihhcnJWYWx1ZSwgb3RoVmFsdWUsIGluZGV4LCBhcnJheSwgb3RoZXIsIHN0YWNrKTtcbiAgICB9XG4gICAgaWYgKGNvbXBhcmVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChjb21wYXJlZCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdCA9IGZhbHNlO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIC8vIFJlY3Vyc2l2ZWx5IGNvbXBhcmUgYXJyYXlzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgaWYgKHNlZW4pIHtcbiAgICAgIGlmICghYXJyYXlTb21lKG90aGVyLCBmdW5jdGlvbihvdGhWYWx1ZSwgb3RoSW5kZXgpIHtcbiAgICAgICAgICAgIGlmICghY2FjaGVIYXMoc2Vlbiwgb3RoSW5kZXgpICYmXG4gICAgICAgICAgICAgICAgKGFyclZhbHVlID09PSBvdGhWYWx1ZSB8fCBlcXVhbEZ1bmMoYXJyVmFsdWUsIG90aFZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdGFjaykpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBzZWVuLnB1c2gob3RoSW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pKSB7XG4gICAgICAgIHJlc3VsdCA9IGZhbHNlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCEoXG4gICAgICAgICAgYXJyVmFsdWUgPT09IG90aFZhbHVlIHx8XG4gICAgICAgICAgICBlcXVhbEZ1bmMoYXJyVmFsdWUsIG90aFZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdGFjaylcbiAgICAgICAgKSkge1xuICAgICAgcmVzdWx0ID0gZmFsc2U7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgc3RhY2tbJ2RlbGV0ZSddKGFycmF5KTtcbiAgc3RhY2tbJ2RlbGV0ZSddKG90aGVyKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBlcXVhbEFycmF5cztcbiIsInZhciByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBVaW50OEFycmF5ID0gcm9vdC5VaW50OEFycmF5O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFVpbnQ4QXJyYXk7XG4iLCIvKipcbiAqIENvbnZlcnRzIGBtYXBgIHRvIGl0cyBrZXktdmFsdWUgcGFpcnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBtYXAgVGhlIG1hcCB0byBjb252ZXJ0LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBrZXktdmFsdWUgcGFpcnMuXG4gKi9cbmZ1bmN0aW9uIG1hcFRvQXJyYXkobWFwKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgcmVzdWx0ID0gQXJyYXkobWFwLnNpemUpO1xuXG4gIG1hcC5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAgICByZXN1bHRbKytpbmRleF0gPSBba2V5LCB2YWx1ZV07XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1hcFRvQXJyYXk7XG4iLCIvKipcbiAqIENvbnZlcnRzIGBzZXRgIHRvIGFuIGFycmF5IG9mIGl0cyB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBzZXQgVGhlIHNldCB0byBjb252ZXJ0LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIHNldFRvQXJyYXkoc2V0KSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgcmVzdWx0ID0gQXJyYXkoc2V0LnNpemUpO1xuXG4gIHNldC5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmVzdWx0WysraW5kZXhdID0gdmFsdWU7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNldFRvQXJyYXk7XG4iLCJ2YXIgU3ltYm9sID0gcmVxdWlyZSgnLi9fU3ltYm9sJyksXG4gICAgVWludDhBcnJheSA9IHJlcXVpcmUoJy4vX1VpbnQ4QXJyYXknKSxcbiAgICBlcSA9IHJlcXVpcmUoJy4vZXEnKSxcbiAgICBlcXVhbEFycmF5cyA9IHJlcXVpcmUoJy4vX2VxdWFsQXJyYXlzJyksXG4gICAgbWFwVG9BcnJheSA9IHJlcXVpcmUoJy4vX21hcFRvQXJyYXknKSxcbiAgICBzZXRUb0FycmF5ID0gcmVxdWlyZSgnLi9fc2V0VG9BcnJheScpO1xuXG4vKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciB2YWx1ZSBjb21wYXJpc29ucy4gKi9cbnZhciBDT01QQVJFX1BBUlRJQUxfRkxBRyA9IDEsXG4gICAgQ09NUEFSRV9VTk9SREVSRURfRkxBRyA9IDI7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgIHN5bWJvbFRhZyA9ICdbb2JqZWN0IFN5bWJvbF0nO1xuXG52YXIgYXJyYXlCdWZmZXJUYWcgPSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nLFxuICAgIGRhdGFWaWV3VGFnID0gJ1tvYmplY3QgRGF0YVZpZXddJztcblxuLyoqIFVzZWQgdG8gY29udmVydCBzeW1ib2xzIHRvIHByaW1pdGl2ZXMgYW5kIHN0cmluZ3MuICovXG52YXIgc3ltYm9sUHJvdG8gPSBTeW1ib2wgPyBTeW1ib2wucHJvdG90eXBlIDogdW5kZWZpbmVkLFxuICAgIHN5bWJvbFZhbHVlT2YgPSBzeW1ib2xQcm90byA/IHN5bWJvbFByb3RvLnZhbHVlT2YgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbERlZXBgIGZvciBjb21wYXJpbmcgb2JqZWN0cyBvZlxuICogdGhlIHNhbWUgYHRvU3RyaW5nVGFnYC5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBmdW5jdGlvbiBvbmx5IHN1cHBvcnRzIGNvbXBhcmluZyB2YWx1ZXMgd2l0aCB0YWdzIG9mXG4gKiBgQm9vbGVhbmAsIGBEYXRlYCwgYEVycm9yYCwgYE51bWJlcmAsIGBSZWdFeHBgLCBvciBgU3RyaW5nYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge09iamVjdH0gb3RoZXIgVGhlIG90aGVyIG9iamVjdCB0byBjb21wYXJlLlxuICogQHBhcmFtIHtzdHJpbmd9IHRhZyBUaGUgYHRvU3RyaW5nVGFnYCBvZiB0aGUgb2JqZWN0cyB0byBjb21wYXJlLlxuICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgYmFzZUlzRXF1YWxgIGZvciBtb3JlIGRldGFpbHMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjdXN0b21pemVyIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXG4gKiBAcGFyYW0ge09iamVjdH0gc3RhY2sgVHJhY2tzIHRyYXZlcnNlZCBgb2JqZWN0YCBhbmQgYG90aGVyYCBvYmplY3RzLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBvYmplY3RzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGVxdWFsQnlUYWcob2JqZWN0LCBvdGhlciwgdGFnLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKSB7XG4gIHN3aXRjaCAodGFnKSB7XG4gICAgY2FzZSBkYXRhVmlld1RhZzpcbiAgICAgIGlmICgob2JqZWN0LmJ5dGVMZW5ndGggIT0gb3RoZXIuYnl0ZUxlbmd0aCkgfHxcbiAgICAgICAgICAob2JqZWN0LmJ5dGVPZmZzZXQgIT0gb3RoZXIuYnl0ZU9mZnNldCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgb2JqZWN0ID0gb2JqZWN0LmJ1ZmZlcjtcbiAgICAgIG90aGVyID0gb3RoZXIuYnVmZmVyO1xuXG4gICAgY2FzZSBhcnJheUJ1ZmZlclRhZzpcbiAgICAgIGlmICgob2JqZWN0LmJ5dGVMZW5ndGggIT0gb3RoZXIuYnl0ZUxlbmd0aCkgfHxcbiAgICAgICAgICAhZXF1YWxGdW5jKG5ldyBVaW50OEFycmF5KG9iamVjdCksIG5ldyBVaW50OEFycmF5KG90aGVyKSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICBjYXNlIGJvb2xUYWc6XG4gICAgY2FzZSBkYXRlVGFnOlxuICAgIGNhc2UgbnVtYmVyVGFnOlxuICAgICAgLy8gQ29lcmNlIGJvb2xlYW5zIHRvIGAxYCBvciBgMGAgYW5kIGRhdGVzIHRvIG1pbGxpc2Vjb25kcy5cbiAgICAgIC8vIEludmFsaWQgZGF0ZXMgYXJlIGNvZXJjZWQgdG8gYE5hTmAuXG4gICAgICByZXR1cm4gZXEoK29iamVjdCwgK290aGVyKTtcblxuICAgIGNhc2UgZXJyb3JUYWc6XG4gICAgICByZXR1cm4gb2JqZWN0Lm5hbWUgPT0gb3RoZXIubmFtZSAmJiBvYmplY3QubWVzc2FnZSA9PSBvdGhlci5tZXNzYWdlO1xuXG4gICAgY2FzZSByZWdleHBUYWc6XG4gICAgY2FzZSBzdHJpbmdUYWc6XG4gICAgICAvLyBDb2VyY2UgcmVnZXhlcyB0byBzdHJpbmdzIGFuZCB0cmVhdCBzdHJpbmdzLCBwcmltaXRpdmVzIGFuZCBvYmplY3RzLFxuICAgICAgLy8gYXMgZXF1YWwuIFNlZSBodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtcmVnZXhwLnByb3RvdHlwZS50b3N0cmluZ1xuICAgICAgLy8gZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgIHJldHVybiBvYmplY3QgPT0gKG90aGVyICsgJycpO1xuXG4gICAgY2FzZSBtYXBUYWc6XG4gICAgICB2YXIgY29udmVydCA9IG1hcFRvQXJyYXk7XG5cbiAgICBjYXNlIHNldFRhZzpcbiAgICAgIHZhciBpc1BhcnRpYWwgPSBiaXRtYXNrICYgQ09NUEFSRV9QQVJUSUFMX0ZMQUc7XG4gICAgICBjb252ZXJ0IHx8IChjb252ZXJ0ID0gc2V0VG9BcnJheSk7XG5cbiAgICAgIGlmIChvYmplY3Quc2l6ZSAhPSBvdGhlci5zaXplICYmICFpc1BhcnRpYWwpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgLy8gQXNzdW1lIGN5Y2xpYyB2YWx1ZXMgYXJlIGVxdWFsLlxuICAgICAgdmFyIHN0YWNrZWQgPSBzdGFjay5nZXQob2JqZWN0KTtcbiAgICAgIGlmIChzdGFja2VkKSB7XG4gICAgICAgIHJldHVybiBzdGFja2VkID09IG90aGVyO1xuICAgICAgfVxuICAgICAgYml0bWFzayB8PSBDT01QQVJFX1VOT1JERVJFRF9GTEFHO1xuXG4gICAgICAvLyBSZWN1cnNpdmVseSBjb21wYXJlIG9iamVjdHMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgIHN0YWNrLnNldChvYmplY3QsIG90aGVyKTtcbiAgICAgIHZhciByZXN1bHQgPSBlcXVhbEFycmF5cyhjb252ZXJ0KG9iamVjdCksIGNvbnZlcnQob3RoZXIpLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKTtcbiAgICAgIHN0YWNrWydkZWxldGUnXShvYmplY3QpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcblxuICAgIGNhc2Ugc3ltYm9sVGFnOlxuICAgICAgaWYgKHN5bWJvbFZhbHVlT2YpIHtcbiAgICAgICAgcmV0dXJuIHN5bWJvbFZhbHVlT2YuY2FsbChvYmplY3QpID09IHN5bWJvbFZhbHVlT2YuY2FsbChvdGhlcik7XG4gICAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGVxdWFsQnlUYWc7XG4iLCIvKipcbiAqIEFwcGVuZHMgdGhlIGVsZW1lbnRzIG9mIGB2YWx1ZXNgIHRvIGBhcnJheWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byBhcHBlbmQuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gYXJyYXlQdXNoKGFycmF5LCB2YWx1ZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSB2YWx1ZXMubGVuZ3RoLFxuICAgICAgb2Zmc2V0ID0gYXJyYXkubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgYXJyYXlbb2Zmc2V0ICsgaW5kZXhdID0gdmFsdWVzW2luZGV4XTtcbiAgfVxuICByZXR1cm4gYXJyYXk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXJyYXlQdXNoO1xuIiwiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGFuIGBBcnJheWAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGFycmF5LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcnJheShbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheShkb2N1bWVudC5ib2R5LmNoaWxkcmVuKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0FycmF5KCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0FycmF5KF8ubm9vcCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7XG5cbm1vZHVsZS5leHBvcnRzID0gaXNBcnJheTtcbiIsInZhciBhcnJheVB1c2ggPSByZXF1aXJlKCcuL19hcnJheVB1c2gnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi9pc0FycmF5Jyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGdldEFsbEtleXNgIGFuZCBgZ2V0QWxsS2V5c0luYCB3aGljaCB1c2VzXG4gKiBga2V5c0Z1bmNgIGFuZCBgc3ltYm9sc0Z1bmNgIHRvIGdldCB0aGUgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBhbmRcbiAqIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGtleXNGdW5jIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIGtleXMgb2YgYG9iamVjdGAuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBzeW1ib2xzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyBhbmQgc3ltYm9scy5cbiAqL1xuZnVuY3Rpb24gYmFzZUdldEFsbEtleXMob2JqZWN0LCBrZXlzRnVuYywgc3ltYm9sc0Z1bmMpIHtcbiAgdmFyIHJlc3VsdCA9IGtleXNGdW5jKG9iamVjdCk7XG4gIHJldHVybiBpc0FycmF5KG9iamVjdCkgPyByZXN1bHQgOiBhcnJheVB1c2gocmVzdWx0LCBzeW1ib2xzRnVuYyhvYmplY3QpKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlR2V0QWxsS2V5cztcbiIsIi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmZpbHRlcmAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXG4gKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZpbHRlcmVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBhcnJheUZpbHRlcihhcnJheSwgcHJlZGljYXRlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsXG4gICAgICByZXNJbmRleCA9IDAsXG4gICAgICByZXN1bHQgPSBbXTtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICByZXN1bHRbcmVzSW5kZXgrK10gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhcnJheUZpbHRlcjtcbiIsIi8qKlxuICogVGhpcyBtZXRob2QgcmV0dXJucyBhIG5ldyBlbXB0eSBhcnJheS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMTMuMFxuICogQGNhdGVnb3J5IFV0aWxcbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGVtcHR5IGFycmF5LlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgYXJyYXlzID0gXy50aW1lcygyLCBfLnN0dWJBcnJheSk7XG4gKlxuICogY29uc29sZS5sb2coYXJyYXlzKTtcbiAqIC8vID0+IFtbXSwgW11dXG4gKlxuICogY29uc29sZS5sb2coYXJyYXlzWzBdID09PSBhcnJheXNbMV0pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gc3R1YkFycmF5KCkge1xuICByZXR1cm4gW107XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc3R1YkFycmF5O1xuIiwidmFyIGFycmF5RmlsdGVyID0gcmVxdWlyZSgnLi9fYXJyYXlGaWx0ZXInKSxcbiAgICBzdHViQXJyYXkgPSByZXF1aXJlKCcuL3N0dWJBcnJheScpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IG9iamVjdFByb3RvLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlR2V0U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGVudW1lcmFibGUgc3ltYm9scyBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBzeW1ib2xzLlxuICovXG52YXIgZ2V0U3ltYm9scyA9ICFuYXRpdmVHZXRTeW1ib2xzID8gc3R1YkFycmF5IDogZnVuY3Rpb24ob2JqZWN0KSB7XG4gIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcbiAgcmV0dXJuIGFycmF5RmlsdGVyKG5hdGl2ZUdldFN5bWJvbHMob2JqZWN0KSwgZnVuY3Rpb24oc3ltYm9sKSB7XG4gICAgcmV0dXJuIHByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwob2JqZWN0LCBzeW1ib2wpO1xuICB9KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0U3ltYm9scztcbiIsIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udGltZXNgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kc1xuICogb3IgbWF4IGFycmF5IGxlbmd0aCBjaGVja3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7bnVtYmVyfSBuIFRoZSBudW1iZXIgb2YgdGltZXMgdG8gaW52b2tlIGBpdGVyYXRlZWAuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiByZXN1bHRzLlxuICovXG5mdW5jdGlvbiBiYXNlVGltZXMobiwgaXRlcmF0ZWUpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICByZXN1bHQgPSBBcnJheShuKTtcblxuICB3aGlsZSAoKytpbmRleCA8IG4pIHtcbiAgICByZXN1bHRbaW5kZXhdID0gaXRlcmF0ZWUoaW5kZXgpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVRpbWVzO1xuIiwidmFyIGJhc2VHZXRUYWcgPSByZXF1aXJlKCcuL19iYXNlR2V0VGFnJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi9pc09iamVjdExpa2UnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc0FyZ3VtZW50c2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LFxuICovXG5mdW5jdGlvbiBiYXNlSXNBcmd1bWVudHModmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYXJnc1RhZztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSXNBcmd1bWVudHM7XG4iLCJ2YXIgYmFzZUlzQXJndW1lbnRzID0gcmVxdWlyZSgnLi9fYmFzZUlzQXJndW1lbnRzJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi9pc09iamVjdExpa2UnKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgcHJvcGVydHlJc0VudW1lcmFibGUgPSBvYmplY3RQcm90by5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBsaWtlbHkgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGBhcmd1bWVudHNgIG9iamVjdCxcbiAqICBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcmd1bWVudHMoZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FyZ3VtZW50cyhbMSwgMiwgM10pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzQXJndW1lbnRzID0gYmFzZUlzQXJndW1lbnRzKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID8gYmFzZUlzQXJndW1lbnRzIDogZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgJ2NhbGxlZScpICYmXG4gICAgIXByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodmFsdWUsICdjYWxsZWUnKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gaXNBcmd1bWVudHM7XG4iLCIvKipcbiAqIFRoaXMgbWV0aG9kIHJldHVybnMgYGZhbHNlYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMTMuMFxuICogQGNhdGVnb3J5IFV0aWxcbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udGltZXMoMiwgXy5zdHViRmFsc2UpO1xuICogLy8gPT4gW2ZhbHNlLCBmYWxzZV1cbiAqL1xuZnVuY3Rpb24gc3R1YkZhbHNlKCkge1xuICByZXR1cm4gZmFsc2U7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc3R1YkZhbHNlO1xuIiwidmFyIHJvb3QgPSByZXF1aXJlKCcuL19yb290JyksXG4gICAgc3R1YkZhbHNlID0gcmVxdWlyZSgnLi9zdHViRmFsc2UnKTtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBleHBvcnRzYC4gKi9cbnZhciBmcmVlRXhwb3J0cyA9IHR5cGVvZiBleHBvcnRzID09ICdvYmplY3QnICYmIGV4cG9ydHMgJiYgIWV4cG9ydHMubm9kZVR5cGUgJiYgZXhwb3J0cztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBtb2R1bGVgLiAqL1xudmFyIGZyZWVNb2R1bGUgPSBmcmVlRXhwb3J0cyAmJiB0eXBlb2YgbW9kdWxlID09ICdvYmplY3QnICYmIG1vZHVsZSAmJiAhbW9kdWxlLm5vZGVUeXBlICYmIG1vZHVsZTtcblxuLyoqIERldGVjdCB0aGUgcG9wdWxhciBDb21tb25KUyBleHRlbnNpb24gYG1vZHVsZS5leHBvcnRzYC4gKi9cbnZhciBtb2R1bGVFeHBvcnRzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLmV4cG9ydHMgPT09IGZyZWVFeHBvcnRzO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBCdWZmZXIgPSBtb2R1bGVFeHBvcnRzID8gcm9vdC5CdWZmZXIgOiB1bmRlZmluZWQ7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVJc0J1ZmZlciA9IEJ1ZmZlciA/IEJ1ZmZlci5pc0J1ZmZlciA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIGJ1ZmZlci5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMy4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGJ1ZmZlciwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzQnVmZmVyKG5ldyBCdWZmZXIoMikpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNCdWZmZXIobmV3IFVpbnQ4QXJyYXkoMikpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzQnVmZmVyID0gbmF0aXZlSXNCdWZmZXIgfHwgc3R1YkZhbHNlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzQnVmZmVyO1xuIiwiLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgTUFYX1NBRkVfSU5URUdFUiA9IDkwMDcxOTkyNTQ3NDA5OTE7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlcy4gKi9cbnZhciByZUlzVWludCA9IC9eKD86MHxbMS05XVxcZCopJC87XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBhcnJheS1saWtlIGluZGV4LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPU1BWF9TQUZFX0lOVEVHRVJdIFRoZSB1cHBlciBib3VuZHMgb2YgYSB2YWxpZCBpbmRleC5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgaW5kZXgsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNJbmRleCh2YWx1ZSwgbGVuZ3RoKSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICBsZW5ndGggPSBsZW5ndGggPT0gbnVsbCA/IE1BWF9TQUZFX0lOVEVHRVIgOiBsZW5ndGg7XG5cbiAgcmV0dXJuICEhbGVuZ3RoICYmXG4gICAgKHR5cGUgPT0gJ251bWJlcicgfHxcbiAgICAgICh0eXBlICE9ICdzeW1ib2wnICYmIHJlSXNVaW50LnRlc3QodmFsdWUpKSkgJiZcbiAgICAgICAgKHZhbHVlID4gLTEgJiYgdmFsdWUgJSAxID09IDAgJiYgdmFsdWUgPCBsZW5ndGgpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzSW5kZXg7XG4iLCIvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgbGVuZ3RoLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBsb29zZWx5IGJhc2VkIG9uXG4gKiBbYFRvTGVuZ3RoYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtdG9sZW5ndGgpLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgbGVuZ3RoLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNMZW5ndGgoMyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0xlbmd0aChOdW1iZXIuTUlOX1ZBTFVFKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0xlbmd0aChJbmZpbml0eSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNMZW5ndGgoJzMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzTGVuZ3RoKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiZcbiAgICB2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDw9IE1BWF9TQUZFX0lOVEVHRVI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNMZW5ndGg7XG4iLCJ2YXIgYmFzZUdldFRhZyA9IHJlcXVpcmUoJy4vX2Jhc2VHZXRUYWcnKSxcbiAgICBpc0xlbmd0aCA9IHJlcXVpcmUoJy4vaXNMZW5ndGgnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgIHdlYWtNYXBUYWcgPSAnW29iamVjdCBXZWFrTWFwXSc7XG5cbnZhciBhcnJheUJ1ZmZlclRhZyA9ICdbb2JqZWN0IEFycmF5QnVmZmVyXScsXG4gICAgZGF0YVZpZXdUYWcgPSAnW29iamVjdCBEYXRhVmlld10nLFxuICAgIGZsb2F0MzJUYWcgPSAnW29iamVjdCBGbG9hdDMyQXJyYXldJyxcbiAgICBmbG9hdDY0VGFnID0gJ1tvYmplY3QgRmxvYXQ2NEFycmF5XScsXG4gICAgaW50OFRhZyA9ICdbb2JqZWN0IEludDhBcnJheV0nLFxuICAgIGludDE2VGFnID0gJ1tvYmplY3QgSW50MTZBcnJheV0nLFxuICAgIGludDMyVGFnID0gJ1tvYmplY3QgSW50MzJBcnJheV0nLFxuICAgIHVpbnQ4VGFnID0gJ1tvYmplY3QgVWludDhBcnJheV0nLFxuICAgIHVpbnQ4Q2xhbXBlZFRhZyA9ICdbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XScsXG4gICAgdWludDE2VGFnID0gJ1tvYmplY3QgVWludDE2QXJyYXldJyxcbiAgICB1aW50MzJUYWcgPSAnW29iamVjdCBVaW50MzJBcnJheV0nO1xuXG4vKiogVXNlZCB0byBpZGVudGlmeSBgdG9TdHJpbmdUYWdgIHZhbHVlcyBvZiB0eXBlZCBhcnJheXMuICovXG52YXIgdHlwZWRBcnJheVRhZ3MgPSB7fTtcbnR5cGVkQXJyYXlUYWdzW2Zsb2F0MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbZmxvYXQ2NFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbaW50OFRhZ10gPSB0eXBlZEFycmF5VGFnc1tpbnQxNlRhZ10gPVxudHlwZWRBcnJheVRhZ3NbaW50MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDhUYWddID1cbnR5cGVkQXJyYXlUYWdzW3VpbnQ4Q2xhbXBlZFRhZ10gPSB0eXBlZEFycmF5VGFnc1t1aW50MTZUYWddID1cbnR5cGVkQXJyYXlUYWdzW3VpbnQzMlRhZ10gPSB0cnVlO1xudHlwZWRBcnJheVRhZ3NbYXJnc1RhZ10gPSB0eXBlZEFycmF5VGFnc1thcnJheVRhZ10gPVxudHlwZWRBcnJheVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gdHlwZWRBcnJheVRhZ3NbYm9vbFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbZGF0YVZpZXdUYWddID0gdHlwZWRBcnJheVRhZ3NbZGF0ZVRhZ10gPVxudHlwZWRBcnJheVRhZ3NbZXJyb3JUYWddID0gdHlwZWRBcnJheVRhZ3NbZnVuY1RhZ10gPVxudHlwZWRBcnJheVRhZ3NbbWFwVGFnXSA9IHR5cGVkQXJyYXlUYWdzW251bWJlclRhZ10gPVxudHlwZWRBcnJheVRhZ3Nbb2JqZWN0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3JlZ2V4cFRhZ10gPVxudHlwZWRBcnJheVRhZ3Nbc2V0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3N0cmluZ1RhZ10gPVxudHlwZWRBcnJheVRhZ3Nbd2Vha01hcFRhZ10gPSBmYWxzZTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc1R5cGVkQXJyYXlgIHdpdGhvdXQgTm9kZS5qcyBvcHRpbWl6YXRpb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdHlwZWQgYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzVHlwZWRBcnJheSh2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJlxuICAgIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgISF0eXBlZEFycmF5VGFnc1tiYXNlR2V0VGFnKHZhbHVlKV07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUlzVHlwZWRBcnJheTtcbiIsIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udW5hcnlgIHdpdGhvdXQgc3VwcG9ydCBmb3Igc3RvcmluZyBtZXRhZGF0YS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2FwIGFyZ3VtZW50cyBmb3IuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjYXBwZWQgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGJhc2VVbmFyeShmdW5jKSB7XG4gIHJldHVybiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiBmdW5jKHZhbHVlKTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlVW5hcnk7XG4iLCJ2YXIgZnJlZUdsb2JhbCA9IHJlcXVpcmUoJy4vX2ZyZWVHbG9iYWwnKTtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBleHBvcnRzYC4gKi9cbnZhciBmcmVlRXhwb3J0cyA9IHR5cGVvZiBleHBvcnRzID09ICdvYmplY3QnICYmIGV4cG9ydHMgJiYgIWV4cG9ydHMubm9kZVR5cGUgJiYgZXhwb3J0cztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBtb2R1bGVgLiAqL1xudmFyIGZyZWVNb2R1bGUgPSBmcmVlRXhwb3J0cyAmJiB0eXBlb2YgbW9kdWxlID09ICdvYmplY3QnICYmIG1vZHVsZSAmJiAhbW9kdWxlLm5vZGVUeXBlICYmIG1vZHVsZTtcblxuLyoqIERldGVjdCB0aGUgcG9wdWxhciBDb21tb25KUyBleHRlbnNpb24gYG1vZHVsZS5leHBvcnRzYC4gKi9cbnZhciBtb2R1bGVFeHBvcnRzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLmV4cG9ydHMgPT09IGZyZWVFeHBvcnRzO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYHByb2Nlc3NgIGZyb20gTm9kZS5qcy4gKi9cbnZhciBmcmVlUHJvY2VzcyA9IG1vZHVsZUV4cG9ydHMgJiYgZnJlZUdsb2JhbC5wcm9jZXNzO1xuXG4vKiogVXNlZCB0byBhY2Nlc3MgZmFzdGVyIE5vZGUuanMgaGVscGVycy4gKi9cbnZhciBub2RlVXRpbCA9IChmdW5jdGlvbigpIHtcbiAgdHJ5IHtcbiAgICAvLyBVc2UgYHV0aWwudHlwZXNgIGZvciBOb2RlLmpzIDEwKy5cbiAgICB2YXIgdHlwZXMgPSBmcmVlTW9kdWxlICYmIGZyZWVNb2R1bGUucmVxdWlyZSAmJiBmcmVlTW9kdWxlLnJlcXVpcmUoJ3V0aWwnKS50eXBlcztcblxuICAgIGlmICh0eXBlcykge1xuICAgICAgcmV0dXJuIHR5cGVzO1xuICAgIH1cblxuICAgIC8vIExlZ2FjeSBgcHJvY2Vzcy5iaW5kaW5nKCd1dGlsJylgIGZvciBOb2RlLmpzIDwgMTAuXG4gICAgcmV0dXJuIGZyZWVQcm9jZXNzICYmIGZyZWVQcm9jZXNzLmJpbmRpbmcgJiYgZnJlZVByb2Nlc3MuYmluZGluZygndXRpbCcpO1xuICB9IGNhdGNoIChlKSB7fVxufSgpKTtcblxubW9kdWxlLmV4cG9ydHMgPSBub2RlVXRpbDtcbiIsInZhciBiYXNlSXNUeXBlZEFycmF5ID0gcmVxdWlyZSgnLi9fYmFzZUlzVHlwZWRBcnJheScpLFxuICAgIGJhc2VVbmFyeSA9IHJlcXVpcmUoJy4vX2Jhc2VVbmFyeScpLFxuICAgIG5vZGVVdGlsID0gcmVxdWlyZSgnLi9fbm9kZVV0aWwnKTtcblxuLyogTm9kZS5qcyBoZWxwZXIgcmVmZXJlbmNlcy4gKi9cbnZhciBub2RlSXNUeXBlZEFycmF5ID0gbm9kZVV0aWwgJiYgbm9kZVV0aWwuaXNUeXBlZEFycmF5O1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSB0eXBlZCBhcnJheS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDMuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHR5cGVkIGFycmF5LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNUeXBlZEFycmF5KG5ldyBVaW50OEFycmF5KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzVHlwZWRBcnJheShbXSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNUeXBlZEFycmF5ID0gbm9kZUlzVHlwZWRBcnJheSA/IGJhc2VVbmFyeShub2RlSXNUeXBlZEFycmF5KSA6IGJhc2VJc1R5cGVkQXJyYXk7XG5cbm1vZHVsZS5leHBvcnRzID0gaXNUeXBlZEFycmF5O1xuIiwidmFyIGJhc2VUaW1lcyA9IHJlcXVpcmUoJy4vX2Jhc2VUaW1lcycpLFxuICAgIGlzQXJndW1lbnRzID0gcmVxdWlyZSgnLi9pc0FyZ3VtZW50cycpLFxuICAgIGlzQXJyYXkgPSByZXF1aXJlKCcuL2lzQXJyYXknKSxcbiAgICBpc0J1ZmZlciA9IHJlcXVpcmUoJy4vaXNCdWZmZXInKSxcbiAgICBpc0luZGV4ID0gcmVxdWlyZSgnLi9faXNJbmRleCcpLFxuICAgIGlzVHlwZWRBcnJheSA9IHJlcXVpcmUoJy4vaXNUeXBlZEFycmF5Jyk7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiB0aGUgYXJyYXktbGlrZSBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5oZXJpdGVkIFNwZWNpZnkgcmV0dXJuaW5nIGluaGVyaXRlZCBwcm9wZXJ0eSBuYW1lcy5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIGFycmF5TGlrZUtleXModmFsdWUsIGluaGVyaXRlZCkge1xuICB2YXIgaXNBcnIgPSBpc0FycmF5KHZhbHVlKSxcbiAgICAgIGlzQXJnID0gIWlzQXJyICYmIGlzQXJndW1lbnRzKHZhbHVlKSxcbiAgICAgIGlzQnVmZiA9ICFpc0FyciAmJiAhaXNBcmcgJiYgaXNCdWZmZXIodmFsdWUpLFxuICAgICAgaXNUeXBlID0gIWlzQXJyICYmICFpc0FyZyAmJiAhaXNCdWZmICYmIGlzVHlwZWRBcnJheSh2YWx1ZSksXG4gICAgICBza2lwSW5kZXhlcyA9IGlzQXJyIHx8IGlzQXJnIHx8IGlzQnVmZiB8fCBpc1R5cGUsXG4gICAgICByZXN1bHQgPSBza2lwSW5kZXhlcyA/IGJhc2VUaW1lcyh2YWx1ZS5sZW5ndGgsIFN0cmluZykgOiBbXSxcbiAgICAgIGxlbmd0aCA9IHJlc3VsdC5sZW5ndGg7XG5cbiAgZm9yICh2YXIga2V5IGluIHZhbHVlKSB7XG4gICAgaWYgKChpbmhlcml0ZWQgfHwgaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwga2V5KSkgJiZcbiAgICAgICAgIShza2lwSW5kZXhlcyAmJiAoXG4gICAgICAgICAgIC8vIFNhZmFyaSA5IGhhcyBlbnVtZXJhYmxlIGBhcmd1bWVudHMubGVuZ3RoYCBpbiBzdHJpY3QgbW9kZS5cbiAgICAgICAgICAga2V5ID09ICdsZW5ndGgnIHx8XG4gICAgICAgICAgIC8vIE5vZGUuanMgMC4xMCBoYXMgZW51bWVyYWJsZSBub24taW5kZXggcHJvcGVydGllcyBvbiBidWZmZXJzLlxuICAgICAgICAgICAoaXNCdWZmICYmIChrZXkgPT0gJ29mZnNldCcgfHwga2V5ID09ICdwYXJlbnQnKSkgfHxcbiAgICAgICAgICAgLy8gUGhhbnRvbUpTIDIgaGFzIGVudW1lcmFibGUgbm9uLWluZGV4IHByb3BlcnRpZXMgb24gdHlwZWQgYXJyYXlzLlxuICAgICAgICAgICAoaXNUeXBlICYmIChrZXkgPT0gJ2J1ZmZlcicgfHwga2V5ID09ICdieXRlTGVuZ3RoJyB8fCBrZXkgPT0gJ2J5dGVPZmZzZXQnKSkgfHxcbiAgICAgICAgICAgLy8gU2tpcCBpbmRleCBwcm9wZXJ0aWVzLlxuICAgICAgICAgICBpc0luZGV4KGtleSwgbGVuZ3RoKVxuICAgICAgICApKSkge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhcnJheUxpa2VLZXlzO1xuIiwiLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBsaWtlbHkgYSBwcm90b3R5cGUgb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcHJvdG90eXBlLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzUHJvdG90eXBlKHZhbHVlKSB7XG4gIHZhciBDdG9yID0gdmFsdWUgJiYgdmFsdWUuY29uc3RydWN0b3IsXG4gICAgICBwcm90byA9ICh0eXBlb2YgQ3RvciA9PSAnZnVuY3Rpb24nICYmIEN0b3IucHJvdG90eXBlKSB8fCBvYmplY3RQcm90bztcblxuICByZXR1cm4gdmFsdWUgPT09IHByb3RvO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzUHJvdG90eXBlO1xuIiwidmFyIG92ZXJBcmcgPSByZXF1aXJlKCcuL19vdmVyQXJnJyk7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVLZXlzID0gb3ZlckFyZyhPYmplY3Qua2V5cywgT2JqZWN0KTtcblxubW9kdWxlLmV4cG9ydHMgPSBuYXRpdmVLZXlzO1xuIiwidmFyIGlzUHJvdG90eXBlID0gcmVxdWlyZSgnLi9faXNQcm90b3R5cGUnKSxcbiAgICBuYXRpdmVLZXlzID0gcmVxdWlyZSgnLi9fbmF0aXZlS2V5cycpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmtleXNgIHdoaWNoIGRvZXNuJ3QgdHJlYXQgc3BhcnNlIGFycmF5cyBhcyBkZW5zZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gYmFzZUtleXMob2JqZWN0KSB7XG4gIGlmICghaXNQcm90b3R5cGUob2JqZWN0KSkge1xuICAgIHJldHVybiBuYXRpdmVLZXlzKG9iamVjdCk7XG4gIH1cbiAgdmFyIHJlc3VsdCA9IFtdO1xuICBmb3IgKHZhciBrZXkgaW4gT2JqZWN0KG9iamVjdCkpIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgJiYga2V5ICE9ICdjb25zdHJ1Y3RvcicpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUtleXM7XG4iLCJ2YXIgaXNGdW5jdGlvbiA9IHJlcXVpcmUoJy4vaXNGdW5jdGlvbicpLFxuICAgIGlzTGVuZ3RoID0gcmVxdWlyZSgnLi9pc0xlbmd0aCcpO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGFycmF5LWxpa2UuIEEgdmFsdWUgaXMgY29uc2lkZXJlZCBhcnJheS1saWtlIGlmIGl0J3NcbiAqIG5vdCBhIGZ1bmN0aW9uIGFuZCBoYXMgYSBgdmFsdWUubGVuZ3RoYCB0aGF0J3MgYW4gaW50ZWdlciBncmVhdGVyIHRoYW4gb3JcbiAqIGVxdWFsIHRvIGAwYCBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUmAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYXJyYXktbGlrZSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzQXJyYXlMaWtlKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5TGlrZShkb2N1bWVudC5ib2R5LmNoaWxkcmVuKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJyYXlMaWtlKCdhYmMnKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJyYXlMaWtlKF8ubm9vcCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0FycmF5TGlrZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiBpc0xlbmd0aCh2YWx1ZS5sZW5ndGgpICYmICFpc0Z1bmN0aW9uKHZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0FycmF5TGlrZTtcbiIsInZhciBhcnJheUxpa2VLZXlzID0gcmVxdWlyZSgnLi9fYXJyYXlMaWtlS2V5cycpLFxuICAgIGJhc2VLZXlzID0gcmVxdWlyZSgnLi9fYmFzZUtleXMnKSxcbiAgICBpc0FycmF5TGlrZSA9IHJlcXVpcmUoJy4vaXNBcnJheUxpa2UnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAqXG4gKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy4gU2VlIHRoZVxuICogW0VTIHNwZWNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5rZXlzKVxuICogZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmtleXMobmV3IEZvbyk7XG4gKiAvLyA9PiBbJ2EnLCAnYiddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKlxuICogXy5rZXlzKCdoaScpO1xuICogLy8gPT4gWycwJywgJzEnXVxuICovXG5mdW5jdGlvbiBrZXlzKG9iamVjdCkge1xuICByZXR1cm4gaXNBcnJheUxpa2Uob2JqZWN0KSA/IGFycmF5TGlrZUtleXMob2JqZWN0KSA6IGJhc2VLZXlzKG9iamVjdCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ga2V5cztcbiIsInZhciBiYXNlR2V0QWxsS2V5cyA9IHJlcXVpcmUoJy4vX2Jhc2VHZXRBbGxLZXlzJyksXG4gICAgZ2V0U3ltYm9scyA9IHJlcXVpcmUoJy4vX2dldFN5bWJvbHMnKSxcbiAgICBrZXlzID0gcmVxdWlyZSgnLi9rZXlzJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiBvd24gZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBhbmQgc3ltYm9scyBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyBhbmQgc3ltYm9scy5cbiAqL1xuZnVuY3Rpb24gZ2V0QWxsS2V5cyhvYmplY3QpIHtcbiAgcmV0dXJuIGJhc2VHZXRBbGxLZXlzKG9iamVjdCwga2V5cywgZ2V0U3ltYm9scyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0QWxsS2V5cztcbiIsInZhciBnZXRBbGxLZXlzID0gcmVxdWlyZSgnLi9fZ2V0QWxsS2V5cycpO1xuXG4vKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciB2YWx1ZSBjb21wYXJpc29ucy4gKi9cbnZhciBDT01QQVJFX1BBUlRJQUxfRkxBRyA9IDE7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbERlZXBgIGZvciBvYmplY3RzIHdpdGggc3VwcG9ydCBmb3JcbiAqIHBhcnRpYWwgZGVlcCBjb21wYXJpc29ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge09iamVjdH0gb3RoZXIgVGhlIG90aGVyIG9iamVjdCB0byBjb21wYXJlLlxuICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgYmFzZUlzRXF1YWxgIGZvciBtb3JlIGRldGFpbHMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjdXN0b21pemVyIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXG4gKiBAcGFyYW0ge09iamVjdH0gc3RhY2sgVHJhY2tzIHRyYXZlcnNlZCBgb2JqZWN0YCBhbmQgYG90aGVyYCBvYmplY3RzLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBvYmplY3RzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGVxdWFsT2JqZWN0cyhvYmplY3QsIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKSB7XG4gIHZhciBpc1BhcnRpYWwgPSBiaXRtYXNrICYgQ09NUEFSRV9QQVJUSUFMX0ZMQUcsXG4gICAgICBvYmpQcm9wcyA9IGdldEFsbEtleXMob2JqZWN0KSxcbiAgICAgIG9iakxlbmd0aCA9IG9ialByb3BzLmxlbmd0aCxcbiAgICAgIG90aFByb3BzID0gZ2V0QWxsS2V5cyhvdGhlciksXG4gICAgICBvdGhMZW5ndGggPSBvdGhQcm9wcy5sZW5ndGg7XG5cbiAgaWYgKG9iakxlbmd0aCAhPSBvdGhMZW5ndGggJiYgIWlzUGFydGlhbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgaW5kZXggPSBvYmpMZW5ndGg7XG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgdmFyIGtleSA9IG9ialByb3BzW2luZGV4XTtcbiAgICBpZiAoIShpc1BhcnRpYWwgPyBrZXkgaW4gb3RoZXIgOiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG90aGVyLCBrZXkpKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICAvLyBDaGVjayB0aGF0IGN5Y2xpYyB2YWx1ZXMgYXJlIGVxdWFsLlxuICB2YXIgb2JqU3RhY2tlZCA9IHN0YWNrLmdldChvYmplY3QpO1xuICB2YXIgb3RoU3RhY2tlZCA9IHN0YWNrLmdldChvdGhlcik7XG4gIGlmIChvYmpTdGFja2VkICYmIG90aFN0YWNrZWQpIHtcbiAgICByZXR1cm4gb2JqU3RhY2tlZCA9PSBvdGhlciAmJiBvdGhTdGFja2VkID09IG9iamVjdDtcbiAgfVxuICB2YXIgcmVzdWx0ID0gdHJ1ZTtcbiAgc3RhY2suc2V0KG9iamVjdCwgb3RoZXIpO1xuICBzdGFjay5zZXQob3RoZXIsIG9iamVjdCk7XG5cbiAgdmFyIHNraXBDdG9yID0gaXNQYXJ0aWFsO1xuICB3aGlsZSAoKytpbmRleCA8IG9iakxlbmd0aCkge1xuICAgIGtleSA9IG9ialByb3BzW2luZGV4XTtcbiAgICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XSxcbiAgICAgICAgb3RoVmFsdWUgPSBvdGhlcltrZXldO1xuXG4gICAgaWYgKGN1c3RvbWl6ZXIpIHtcbiAgICAgIHZhciBjb21wYXJlZCA9IGlzUGFydGlhbFxuICAgICAgICA/IGN1c3RvbWl6ZXIob3RoVmFsdWUsIG9ialZhbHVlLCBrZXksIG90aGVyLCBvYmplY3QsIHN0YWNrKVxuICAgICAgICA6IGN1c3RvbWl6ZXIob2JqVmFsdWUsIG90aFZhbHVlLCBrZXksIG9iamVjdCwgb3RoZXIsIHN0YWNrKTtcbiAgICB9XG4gICAgLy8gUmVjdXJzaXZlbHkgY29tcGFyZSBvYmplY3RzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgaWYgKCEoY29tcGFyZWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gKG9ialZhbHVlID09PSBvdGhWYWx1ZSB8fCBlcXVhbEZ1bmMob2JqVmFsdWUsIG90aFZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdGFjaykpXG4gICAgICAgICAgOiBjb21wYXJlZFxuICAgICAgICApKSB7XG4gICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBza2lwQ3RvciB8fCAoc2tpcEN0b3IgPSBrZXkgPT0gJ2NvbnN0cnVjdG9yJyk7XG4gIH1cbiAgaWYgKHJlc3VsdCAmJiAhc2tpcEN0b3IpIHtcbiAgICB2YXIgb2JqQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcixcbiAgICAgICAgb3RoQ3RvciA9IG90aGVyLmNvbnN0cnVjdG9yO1xuXG4gICAgLy8gTm9uIGBPYmplY3RgIG9iamVjdCBpbnN0YW5jZXMgd2l0aCBkaWZmZXJlbnQgY29uc3RydWN0b3JzIGFyZSBub3QgZXF1YWwuXG4gICAgaWYgKG9iakN0b3IgIT0gb3RoQ3RvciAmJlxuICAgICAgICAoJ2NvbnN0cnVjdG9yJyBpbiBvYmplY3QgJiYgJ2NvbnN0cnVjdG9yJyBpbiBvdGhlcikgJiZcbiAgICAgICAgISh0eXBlb2Ygb2JqQ3RvciA9PSAnZnVuY3Rpb24nICYmIG9iakN0b3IgaW5zdGFuY2VvZiBvYmpDdG9yICYmXG4gICAgICAgICAgdHlwZW9mIG90aEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBvdGhDdG9yIGluc3RhbmNlb2Ygb3RoQ3RvcikpIHtcbiAgICAgIHJlc3VsdCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuICBzdGFja1snZGVsZXRlJ10ob2JqZWN0KTtcbiAgc3RhY2tbJ2RlbGV0ZSddKG90aGVyKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBlcXVhbE9iamVjdHM7XG4iLCJ2YXIgZ2V0TmF0aXZlID0gcmVxdWlyZSgnLi9fZ2V0TmF0aXZlJyksXG4gICAgcm9vdCA9IHJlcXVpcmUoJy4vX3Jvb3QnKTtcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgdGhhdCBhcmUgdmVyaWZpZWQgdG8gYmUgbmF0aXZlLiAqL1xudmFyIERhdGFWaWV3ID0gZ2V0TmF0aXZlKHJvb3QsICdEYXRhVmlldycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IERhdGFWaWV3O1xuIiwidmFyIGdldE5hdGl2ZSA9IHJlcXVpcmUoJy4vX2dldE5hdGl2ZScpLFxuICAgIHJvb3QgPSByZXF1aXJlKCcuL19yb290Jyk7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHRoYXQgYXJlIHZlcmlmaWVkIHRvIGJlIG5hdGl2ZS4gKi9cbnZhciBQcm9taXNlID0gZ2V0TmF0aXZlKHJvb3QsICdQcm9taXNlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gUHJvbWlzZTtcbiIsInZhciBnZXROYXRpdmUgPSByZXF1aXJlKCcuL19nZXROYXRpdmUnKSxcbiAgICByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB0aGF0IGFyZSB2ZXJpZmllZCB0byBiZSBuYXRpdmUuICovXG52YXIgU2V0ID0gZ2V0TmF0aXZlKHJvb3QsICdTZXQnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBTZXQ7XG4iLCJ2YXIgZ2V0TmF0aXZlID0gcmVxdWlyZSgnLi9fZ2V0TmF0aXZlJyksXG4gICAgcm9vdCA9IHJlcXVpcmUoJy4vX3Jvb3QnKTtcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgdGhhdCBhcmUgdmVyaWZpZWQgdG8gYmUgbmF0aXZlLiAqL1xudmFyIFdlYWtNYXAgPSBnZXROYXRpdmUocm9vdCwgJ1dlYWtNYXAnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBXZWFrTWFwO1xuIiwidmFyIERhdGFWaWV3ID0gcmVxdWlyZSgnLi9fRGF0YVZpZXcnKSxcbiAgICBNYXAgPSByZXF1aXJlKCcuL19NYXAnKSxcbiAgICBQcm9taXNlID0gcmVxdWlyZSgnLi9fUHJvbWlzZScpLFxuICAgIFNldCA9IHJlcXVpcmUoJy4vX1NldCcpLFxuICAgIFdlYWtNYXAgPSByZXF1aXJlKCcuL19XZWFrTWFwJyksXG4gICAgYmFzZUdldFRhZyA9IHJlcXVpcmUoJy4vX2Jhc2VHZXRUYWcnKSxcbiAgICB0b1NvdXJjZSA9IHJlcXVpcmUoJy4vX3RvU291cmNlJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBtYXBUYWcgPSAnW29iamVjdCBNYXBdJyxcbiAgICBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJyxcbiAgICBwcm9taXNlVGFnID0gJ1tvYmplY3QgUHJvbWlzZV0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgIHdlYWtNYXBUYWcgPSAnW29iamVjdCBXZWFrTWFwXSc7XG5cbnZhciBkYXRhVmlld1RhZyA9ICdbb2JqZWN0IERhdGFWaWV3XSc7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBtYXBzLCBzZXRzLCBhbmQgd2Vha21hcHMuICovXG52YXIgZGF0YVZpZXdDdG9yU3RyaW5nID0gdG9Tb3VyY2UoRGF0YVZpZXcpLFxuICAgIG1hcEN0b3JTdHJpbmcgPSB0b1NvdXJjZShNYXApLFxuICAgIHByb21pc2VDdG9yU3RyaW5nID0gdG9Tb3VyY2UoUHJvbWlzZSksXG4gICAgc2V0Q3RvclN0cmluZyA9IHRvU291cmNlKFNldCksXG4gICAgd2Vha01hcEN0b3JTdHJpbmcgPSB0b1NvdXJjZShXZWFrTWFwKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBgdG9TdHJpbmdUYWdgIG9mIGB2YWx1ZWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgYHRvU3RyaW5nVGFnYC5cbiAqL1xudmFyIGdldFRhZyA9IGJhc2VHZXRUYWc7XG5cbi8vIEZhbGxiYWNrIGZvciBkYXRhIHZpZXdzLCBtYXBzLCBzZXRzLCBhbmQgd2VhayBtYXBzIGluIElFIDExIGFuZCBwcm9taXNlcyBpbiBOb2RlLmpzIDwgNi5cbmlmICgoRGF0YVZpZXcgJiYgZ2V0VGFnKG5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoMSkpKSAhPSBkYXRhVmlld1RhZykgfHxcbiAgICAoTWFwICYmIGdldFRhZyhuZXcgTWFwKSAhPSBtYXBUYWcpIHx8XG4gICAgKFByb21pc2UgJiYgZ2V0VGFnKFByb21pc2UucmVzb2x2ZSgpKSAhPSBwcm9taXNlVGFnKSB8fFxuICAgIChTZXQgJiYgZ2V0VGFnKG5ldyBTZXQpICE9IHNldFRhZykgfHxcbiAgICAoV2Vha01hcCAmJiBnZXRUYWcobmV3IFdlYWtNYXApICE9IHdlYWtNYXBUYWcpKSB7XG4gIGdldFRhZyA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgdmFyIHJlc3VsdCA9IGJhc2VHZXRUYWcodmFsdWUpLFxuICAgICAgICBDdG9yID0gcmVzdWx0ID09IG9iamVjdFRhZyA/IHZhbHVlLmNvbnN0cnVjdG9yIDogdW5kZWZpbmVkLFxuICAgICAgICBjdG9yU3RyaW5nID0gQ3RvciA/IHRvU291cmNlKEN0b3IpIDogJyc7XG5cbiAgICBpZiAoY3RvclN0cmluZykge1xuICAgICAgc3dpdGNoIChjdG9yU3RyaW5nKSB7XG4gICAgICAgIGNhc2UgZGF0YVZpZXdDdG9yU3RyaW5nOiByZXR1cm4gZGF0YVZpZXdUYWc7XG4gICAgICAgIGNhc2UgbWFwQ3RvclN0cmluZzogcmV0dXJuIG1hcFRhZztcbiAgICAgICAgY2FzZSBwcm9taXNlQ3RvclN0cmluZzogcmV0dXJuIHByb21pc2VUYWc7XG4gICAgICAgIGNhc2Ugc2V0Q3RvclN0cmluZzogcmV0dXJuIHNldFRhZztcbiAgICAgICAgY2FzZSB3ZWFrTWFwQ3RvclN0cmluZzogcmV0dXJuIHdlYWtNYXBUYWc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0VGFnO1xuIiwidmFyIFN0YWNrID0gcmVxdWlyZSgnLi9fU3RhY2snKSxcbiAgICBlcXVhbEFycmF5cyA9IHJlcXVpcmUoJy4vX2VxdWFsQXJyYXlzJyksXG4gICAgZXF1YWxCeVRhZyA9IHJlcXVpcmUoJy4vX2VxdWFsQnlUYWcnKSxcbiAgICBlcXVhbE9iamVjdHMgPSByZXF1aXJlKCcuL19lcXVhbE9iamVjdHMnKSxcbiAgICBnZXRUYWcgPSByZXF1aXJlKCcuL19nZXRUYWcnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi9pc0FycmF5JyksXG4gICAgaXNCdWZmZXIgPSByZXF1aXJlKCcuL2lzQnVmZmVyJyksXG4gICAgaXNUeXBlZEFycmF5ID0gcmVxdWlyZSgnLi9pc1R5cGVkQXJyYXknKTtcblxuLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgdmFsdWUgY29tcGFyaXNvbnMuICovXG52YXIgQ09NUEFSRV9QQVJUSUFMX0ZMQUcgPSAxO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VJc0VxdWFsYCBmb3IgYXJyYXlzIGFuZCBvYmplY3RzIHdoaWNoIHBlcmZvcm1zXG4gKiBkZWVwIGNvbXBhcmlzb25zIGFuZCB0cmFja3MgdHJhdmVyc2VkIG9iamVjdHMgZW5hYmxpbmcgb2JqZWN0cyB3aXRoIGNpcmN1bGFyXG4gKiByZWZlcmVuY2VzIHRvIGJlIGNvbXBhcmVkLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBvdGhlciBUaGUgb3RoZXIgb2JqZWN0IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBiYXNlSXNFcXVhbGAgZm9yIG1vcmUgZGV0YWlscy5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGN1c3RvbWl6ZXIgVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpc29ucy5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGVxdWFsRnVuYyBUaGUgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGVxdWl2YWxlbnRzIG9mIHZhbHVlcy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgYG9iamVjdGAgYW5kIGBvdGhlcmAgb2JqZWN0cy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlSXNFcXVhbERlZXAob2JqZWN0LCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjaykge1xuICB2YXIgb2JqSXNBcnIgPSBpc0FycmF5KG9iamVjdCksXG4gICAgICBvdGhJc0FyciA9IGlzQXJyYXkob3RoZXIpLFxuICAgICAgb2JqVGFnID0gb2JqSXNBcnIgPyBhcnJheVRhZyA6IGdldFRhZyhvYmplY3QpLFxuICAgICAgb3RoVGFnID0gb3RoSXNBcnIgPyBhcnJheVRhZyA6IGdldFRhZyhvdGhlcik7XG5cbiAgb2JqVGFnID0gb2JqVGFnID09IGFyZ3NUYWcgPyBvYmplY3RUYWcgOiBvYmpUYWc7XG4gIG90aFRhZyA9IG90aFRhZyA9PSBhcmdzVGFnID8gb2JqZWN0VGFnIDogb3RoVGFnO1xuXG4gIHZhciBvYmpJc09iaiA9IG9ialRhZyA9PSBvYmplY3RUYWcsXG4gICAgICBvdGhJc09iaiA9IG90aFRhZyA9PSBvYmplY3RUYWcsXG4gICAgICBpc1NhbWVUYWcgPSBvYmpUYWcgPT0gb3RoVGFnO1xuXG4gIGlmIChpc1NhbWVUYWcgJiYgaXNCdWZmZXIob2JqZWN0KSkge1xuICAgIGlmICghaXNCdWZmZXIob3RoZXIpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIG9iaklzQXJyID0gdHJ1ZTtcbiAgICBvYmpJc09iaiA9IGZhbHNlO1xuICB9XG4gIGlmIChpc1NhbWVUYWcgJiYgIW9iaklzT2JqKSB7XG4gICAgc3RhY2sgfHwgKHN0YWNrID0gbmV3IFN0YWNrKTtcbiAgICByZXR1cm4gKG9iaklzQXJyIHx8IGlzVHlwZWRBcnJheShvYmplY3QpKVxuICAgICAgPyBlcXVhbEFycmF5cyhvYmplY3QsIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKVxuICAgICAgOiBlcXVhbEJ5VGFnKG9iamVjdCwgb3RoZXIsIG9ialRhZywgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjayk7XG4gIH1cbiAgaWYgKCEoYml0bWFzayAmIENPTVBBUkVfUEFSVElBTF9GTEFHKSkge1xuICAgIHZhciBvYmpJc1dyYXBwZWQgPSBvYmpJc09iaiAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgJ19fd3JhcHBlZF9fJyksXG4gICAgICAgIG90aElzV3JhcHBlZCA9IG90aElzT2JqICYmIGhhc093blByb3BlcnR5LmNhbGwob3RoZXIsICdfX3dyYXBwZWRfXycpO1xuXG4gICAgaWYgKG9iaklzV3JhcHBlZCB8fCBvdGhJc1dyYXBwZWQpIHtcbiAgICAgIHZhciBvYmpVbndyYXBwZWQgPSBvYmpJc1dyYXBwZWQgPyBvYmplY3QudmFsdWUoKSA6IG9iamVjdCxcbiAgICAgICAgICBvdGhVbndyYXBwZWQgPSBvdGhJc1dyYXBwZWQgPyBvdGhlci52YWx1ZSgpIDogb3RoZXI7XG5cbiAgICAgIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjayk7XG4gICAgICByZXR1cm4gZXF1YWxGdW5jKG9ialVud3JhcHBlZCwgb3RoVW53cmFwcGVkLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdGFjayk7XG4gICAgfVxuICB9XG4gIGlmICghaXNTYW1lVGFnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjayk7XG4gIHJldHVybiBlcXVhbE9iamVjdHMob2JqZWN0LCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjayk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUlzRXF1YWxEZWVwO1xuIiwidmFyIGJhc2VJc0VxdWFsRGVlcCA9IHJlcXVpcmUoJy4vX2Jhc2VJc0VxdWFsRGVlcCcpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4vaXNPYmplY3RMaWtlJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNFcXVhbGAgd2hpY2ggc3VwcG9ydHMgcGFydGlhbCBjb21wYXJpc29uc1xuICogYW5kIHRyYWNrcyB0cmF2ZXJzZWQgb2JqZWN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuXG4gKiAgMSAtIFVub3JkZXJlZCBjb21wYXJpc29uXG4gKiAgMiAtIFBhcnRpYWwgY29tcGFyaXNvblxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXG4gKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIGB2YWx1ZWAgYW5kIGBvdGhlcmAgb2JqZWN0cy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWVzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc0VxdWFsKHZhbHVlLCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spIHtcbiAgaWYgKHZhbHVlID09PSBvdGhlcikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmICh2YWx1ZSA9PSBudWxsIHx8IG90aGVyID09IG51bGwgfHwgKCFpc09iamVjdExpa2UodmFsdWUpICYmICFpc09iamVjdExpa2Uob3RoZXIpKSkge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gdmFsdWUgJiYgb3RoZXIgIT09IG90aGVyO1xuICB9XG4gIHJldHVybiBiYXNlSXNFcXVhbERlZXAodmFsdWUsIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBiYXNlSXNFcXVhbCwgc3RhY2spO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VJc0VxdWFsO1xuIiwidmFyIGJhc2VJc0VxdWFsID0gcmVxdWlyZSgnLi9fYmFzZUlzRXF1YWwnKTtcblxuLyoqXG4gKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmlzRXF1YWxgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGN1c3RvbWl6ZXJgIHdoaWNoXG4gKiBpcyBpbnZva2VkIHRvIGNvbXBhcmUgdmFsdWVzLiBJZiBgY3VzdG9taXplcmAgcmV0dXJucyBgdW5kZWZpbmVkYCwgY29tcGFyaXNvbnNcbiAqIGFyZSBoYW5kbGVkIGJ5IHRoZSBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYCBpcyBpbnZva2VkIHdpdGggdXAgdG9cbiAqIHNpeCBhcmd1bWVudHM6IChvYmpWYWx1ZSwgb3RoVmFsdWUgWywgaW5kZXh8a2V5LCBvYmplY3QsIG90aGVyLCBzdGFja10pLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gaXNHcmVldGluZyh2YWx1ZSkge1xuICogICByZXR1cm4gL15oKD86aXxlbGxvKSQvLnRlc3QodmFsdWUpO1xuICogfVxuICpcbiAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIob2JqVmFsdWUsIG90aFZhbHVlKSB7XG4gKiAgIGlmIChpc0dyZWV0aW5nKG9ialZhbHVlKSAmJiBpc0dyZWV0aW5nKG90aFZhbHVlKSkge1xuICogICAgIHJldHVybiB0cnVlO1xuICogICB9XG4gKiB9XG4gKlxuICogdmFyIGFycmF5ID0gWydoZWxsbycsICdnb29kYnllJ107XG4gKiB2YXIgb3RoZXIgPSBbJ2hpJywgJ2dvb2RieWUnXTtcbiAqXG4gKiBfLmlzRXF1YWxXaXRoKGFycmF5LCBvdGhlciwgY3VzdG9taXplcik7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGlzRXF1YWxXaXRoKHZhbHVlLCBvdGhlciwgY3VzdG9taXplcikge1xuICBjdXN0b21pemVyID0gdHlwZW9mIGN1c3RvbWl6ZXIgPT0gJ2Z1bmN0aW9uJyA/IGN1c3RvbWl6ZXIgOiB1bmRlZmluZWQ7XG4gIHZhciByZXN1bHQgPSBjdXN0b21pemVyID8gY3VzdG9taXplcih2YWx1ZSwgb3RoZXIpIDogdW5kZWZpbmVkO1xuICByZXR1cm4gcmVzdWx0ID09PSB1bmRlZmluZWQgPyBiYXNlSXNFcXVhbCh2YWx1ZSwgb3RoZXIsIHVuZGVmaW5lZCwgY3VzdG9taXplcikgOiAhIXJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0VxdWFsV2l0aDtcbiIsImltcG9ydCBpc0VxdWFsV2l0aCBmcm9tICdsb2Rhc2gvaXNFcXVhbFdpdGgnO1xuLyoqIEltcGxlbWVudHMgYSBkZWVwIGVxdWFscyB1c2luZyB0aGUgYGxvZGFzaC5pc0VxdWFsV2l0aGAgZnVuY3Rpb24sIHRoYXQgcHJvdmlkZXMgYSBjdXN0b21pemVkIGNvbXBhcmF0b3IgdGhhdFxuICogYXNzdW1lcyBhbGwgZnVuY3Rpb25zIGFyZSBlcXVpdmFsZW50LlxuICpcbiAqIEBwYXJhbSBhIC0gVGhlIGZpcnN0IGVsZW1lbnQgdG8gY29tcGFyZVxuICogQHBhcmFtIGIgLSBUaGUgc2Vjb25kIGVsZW1lbnQgdG8gY29tcGFyZVxuICogQHJldHVybnMgLSBUcnVlIGlmIHRoZSBgYWAgYW5kIGBiYCBhcmUgZGVlcGx5IGVxdWFsLCBmYWxzZSBvdGhlcndpc2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGVlcEVxdWFscyhhLCBiKSB7XG4gICAgcmV0dXJuIGlzRXF1YWxXaXRoKGEsIGIsIChvYmosIG90aGVyKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2Ygb2JqID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBvdGhlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgLy8gQXNzdW1lIGFsbCBmdW5jdGlvbnMgYXJlIGVxdWl2YWxlbnRcbiAgICAgICAgICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vcmpzZi10ZWFtL3JlYWN0LWpzb25zY2hlbWEtZm9ybS9pc3N1ZXMvMjU1XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkOyAvLyBmYWxsYmFjayB0byBkZWZhdWx0IGlzRXF1YWxzIGJlaGF2aW9yXG4gICAgfSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWVwRXF1YWxzLmpzLm1hcCIsInZhciBiYXNlR2V0VGFnID0gcmVxdWlyZSgnLi9fYmFzZUdldFRhZycpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4vaXNPYmplY3RMaWtlJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBzeW1ib2xUYWcgPSAnW29iamVjdCBTeW1ib2xdJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYFN5bWJvbGAgcHJpbWl0aXZlIG9yIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHN5bWJvbCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzU3ltYm9sKFN5bWJvbC5pdGVyYXRvcik7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc1N5bWJvbCgnYWJjJyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc1N5bWJvbCh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdzeW1ib2wnIHx8XG4gICAgKGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gc3ltYm9sVGFnKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc1N5bWJvbDtcbiIsInZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi9pc0FycmF5JyksXG4gICAgaXNTeW1ib2wgPSByZXF1aXJlKCcuL2lzU3ltYm9sJyk7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIHByb3BlcnR5IG5hbWVzIHdpdGhpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbnZhciByZUlzRGVlcFByb3AgPSAvXFwufFxcWyg/OlteW1xcXV0qfChbXCInXSkoPzooPyFcXDEpW15cXFxcXXxcXFxcLikqP1xcMSlcXF0vLFxuICAgIHJlSXNQbGFpblByb3AgPSAvXlxcdyokLztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHByb3BlcnR5IG5hbWUgYW5kIG5vdCBhIHByb3BlcnR5IHBhdGguXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgdG8gcXVlcnkga2V5cyBvbi5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcHJvcGVydHkgbmFtZSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0tleSh2YWx1ZSwgb2JqZWN0KSB7XG4gIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgaWYgKHR5cGUgPT0gJ251bWJlcicgfHwgdHlwZSA9PSAnc3ltYm9sJyB8fCB0eXBlID09ICdib29sZWFuJyB8fFxuICAgICAgdmFsdWUgPT0gbnVsbCB8fCBpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gcmVJc1BsYWluUHJvcC50ZXN0KHZhbHVlKSB8fCAhcmVJc0RlZXBQcm9wLnRlc3QodmFsdWUpIHx8XG4gICAgKG9iamVjdCAhPSBudWxsICYmIHZhbHVlIGluIE9iamVjdChvYmplY3QpKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0tleTtcbiIsInZhciBNYXBDYWNoZSA9IHJlcXVpcmUoJy4vX01hcENhY2hlJyk7XG5cbi8qKiBFcnJvciBtZXNzYWdlIGNvbnN0YW50cy4gKi9cbnZhciBGVU5DX0VSUk9SX1RFWFQgPSAnRXhwZWN0ZWQgYSBmdW5jdGlvbic7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgbWVtb2l6ZXMgdGhlIHJlc3VsdCBvZiBgZnVuY2AuIElmIGByZXNvbHZlcmAgaXNcbiAqIHByb3ZpZGVkLCBpdCBkZXRlcm1pbmVzIHRoZSBjYWNoZSBrZXkgZm9yIHN0b3JpbmcgdGhlIHJlc3VsdCBiYXNlZCBvbiB0aGVcbiAqIGFyZ3VtZW50cyBwcm92aWRlZCB0byB0aGUgbWVtb2l6ZWQgZnVuY3Rpb24uIEJ5IGRlZmF1bHQsIHRoZSBmaXJzdCBhcmd1bWVudFxuICogcHJvdmlkZWQgdG8gdGhlIG1lbW9pemVkIGZ1bmN0aW9uIGlzIHVzZWQgYXMgdGhlIG1hcCBjYWNoZSBrZXkuIFRoZSBgZnVuY2BcbiAqIGlzIGludm9rZWQgd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgdGhlIG1lbW9pemVkIGZ1bmN0aW9uLlxuICpcbiAqICoqTm90ZToqKiBUaGUgY2FjaGUgaXMgZXhwb3NlZCBhcyB0aGUgYGNhY2hlYCBwcm9wZXJ0eSBvbiB0aGUgbWVtb2l6ZWRcbiAqIGZ1bmN0aW9uLiBJdHMgY3JlYXRpb24gbWF5IGJlIGN1c3RvbWl6ZWQgYnkgcmVwbGFjaW5nIHRoZSBgXy5tZW1vaXplLkNhY2hlYFxuICogY29uc3RydWN0b3Igd2l0aCBvbmUgd2hvc2UgaW5zdGFuY2VzIGltcGxlbWVudCB0aGVcbiAqIFtgTWFwYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtcHJvcGVydGllcy1vZi10aGUtbWFwLXByb3RvdHlwZS1vYmplY3QpXG4gKiBtZXRob2QgaW50ZXJmYWNlIG9mIGBjbGVhcmAsIGBkZWxldGVgLCBgZ2V0YCwgYGhhc2AsIGFuZCBgc2V0YC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGhhdmUgaXRzIG91dHB1dCBtZW1vaXplZC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtyZXNvbHZlcl0gVGhlIGZ1bmN0aW9uIHRvIHJlc29sdmUgdGhlIGNhY2hlIGtleS5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IG1lbW9pemVkIGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEsICdiJzogMiB9O1xuICogdmFyIG90aGVyID0geyAnYyc6IDMsICdkJzogNCB9O1xuICpcbiAqIHZhciB2YWx1ZXMgPSBfLm1lbW9pemUoXy52YWx1ZXMpO1xuICogdmFsdWVzKG9iamVjdCk7XG4gKiAvLyA9PiBbMSwgMl1cbiAqXG4gKiB2YWx1ZXMob3RoZXIpO1xuICogLy8gPT4gWzMsIDRdXG4gKlxuICogb2JqZWN0LmEgPSAyO1xuICogdmFsdWVzKG9iamVjdCk7XG4gKiAvLyA9PiBbMSwgMl1cbiAqXG4gKiAvLyBNb2RpZnkgdGhlIHJlc3VsdCBjYWNoZS5cbiAqIHZhbHVlcy5jYWNoZS5zZXQob2JqZWN0LCBbJ2EnLCAnYiddKTtcbiAqIHZhbHVlcyhvYmplY3QpO1xuICogLy8gPT4gWydhJywgJ2InXVxuICpcbiAqIC8vIFJlcGxhY2UgYF8ubWVtb2l6ZS5DYWNoZWAuXG4gKiBfLm1lbW9pemUuQ2FjaGUgPSBXZWFrTWFwO1xuICovXG5mdW5jdGlvbiBtZW1vaXplKGZ1bmMsIHJlc29sdmVyKSB7XG4gIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nIHx8IChyZXNvbHZlciAhPSBudWxsICYmIHR5cGVvZiByZXNvbHZlciAhPSAnZnVuY3Rpb24nKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgfVxuICB2YXIgbWVtb2l6ZWQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgYXJncyA9IGFyZ3VtZW50cyxcbiAgICAgICAga2V5ID0gcmVzb2x2ZXIgPyByZXNvbHZlci5hcHBseSh0aGlzLCBhcmdzKSA6IGFyZ3NbMF0sXG4gICAgICAgIGNhY2hlID0gbWVtb2l6ZWQuY2FjaGU7XG5cbiAgICBpZiAoY2FjaGUuaGFzKGtleSkpIHtcbiAgICAgIHJldHVybiBjYWNoZS5nZXQoa2V5KTtcbiAgICB9XG4gICAgdmFyIHJlc3VsdCA9IGZ1bmMuYXBwbHkodGhpcywgYXJncyk7XG4gICAgbWVtb2l6ZWQuY2FjaGUgPSBjYWNoZS5zZXQoa2V5LCByZXN1bHQpIHx8IGNhY2hlO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG4gIG1lbW9pemVkLmNhY2hlID0gbmV3IChtZW1vaXplLkNhY2hlIHx8IE1hcENhY2hlKTtcbiAgcmV0dXJuIG1lbW9pemVkO1xufVxuXG4vLyBFeHBvc2UgYE1hcENhY2hlYC5cbm1lbW9pemUuQ2FjaGUgPSBNYXBDYWNoZTtcblxubW9kdWxlLmV4cG9ydHMgPSBtZW1vaXplO1xuIiwidmFyIG1lbW9pemUgPSByZXF1aXJlKCcuL21lbW9pemUnKTtcblxuLyoqIFVzZWQgYXMgdGhlIG1heGltdW0gbWVtb2l6ZSBjYWNoZSBzaXplLiAqL1xudmFyIE1BWF9NRU1PSVpFX1NJWkUgPSA1MDA7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLm1lbW9pemVgIHdoaWNoIGNsZWFycyB0aGUgbWVtb2l6ZWQgZnVuY3Rpb24nc1xuICogY2FjaGUgd2hlbiBpdCBleGNlZWRzIGBNQVhfTUVNT0laRV9TSVpFYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gaGF2ZSBpdHMgb3V0cHV0IG1lbW9pemVkLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgbWVtb2l6ZWQgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIG1lbW9pemVDYXBwZWQoZnVuYykge1xuICB2YXIgcmVzdWx0ID0gbWVtb2l6ZShmdW5jLCBmdW5jdGlvbihrZXkpIHtcbiAgICBpZiAoY2FjaGUuc2l6ZSA9PT0gTUFYX01FTU9JWkVfU0laRSkge1xuICAgICAgY2FjaGUuY2xlYXIoKTtcbiAgICB9XG4gICAgcmV0dXJuIGtleTtcbiAgfSk7XG5cbiAgdmFyIGNhY2hlID0gcmVzdWx0LmNhY2hlO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1lbW9pemVDYXBwZWQ7XG4iLCJ2YXIgbWVtb2l6ZUNhcHBlZCA9IHJlcXVpcmUoJy4vX21lbW9pemVDYXBwZWQnKTtcblxuLyoqIFVzZWQgdG8gbWF0Y2ggcHJvcGVydHkgbmFtZXMgd2l0aGluIHByb3BlcnR5IHBhdGhzLiAqL1xudmFyIHJlUHJvcE5hbWUgPSAvW14uW1xcXV0rfFxcWyg/OigtP1xcZCsoPzpcXC5cXGQrKT8pfChbXCInXSkoKD86KD8hXFwyKVteXFxcXF18XFxcXC4pKj8pXFwyKVxcXXwoPz0oPzpcXC58XFxbXFxdKSg/OlxcLnxcXFtcXF18JCkpL2c7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIGJhY2tzbGFzaGVzIGluIHByb3BlcnR5IHBhdGhzLiAqL1xudmFyIHJlRXNjYXBlQ2hhciA9IC9cXFxcKFxcXFwpPy9nO1xuXG4vKipcbiAqIENvbnZlcnRzIGBzdHJpbmdgIHRvIGEgcHJvcGVydHkgcGF0aCBhcnJheS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHByb3BlcnR5IHBhdGggYXJyYXkuXG4gKi9cbnZhciBzdHJpbmdUb1BhdGggPSBtZW1vaXplQ2FwcGVkKGZ1bmN0aW9uKHN0cmluZykge1xuICB2YXIgcmVzdWx0ID0gW107XG4gIGlmIChzdHJpbmcuY2hhckNvZGVBdCgwKSA9PT0gNDYgLyogLiAqLykge1xuICAgIHJlc3VsdC5wdXNoKCcnKTtcbiAgfVxuICBzdHJpbmcucmVwbGFjZShyZVByb3BOYW1lLCBmdW5jdGlvbihtYXRjaCwgbnVtYmVyLCBxdW90ZSwgc3ViU3RyaW5nKSB7XG4gICAgcmVzdWx0LnB1c2gocXVvdGUgPyBzdWJTdHJpbmcucmVwbGFjZShyZUVzY2FwZUNoYXIsICckMScpIDogKG51bWJlciB8fCBtYXRjaCkpO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHN0cmluZ1RvUGF0aDtcbiIsIi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLm1hcGAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlXG4gKiBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgbWFwcGVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBhcnJheU1hcChhcnJheSwgaXRlcmF0ZWUpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICByZXN1bHRbaW5kZXhdID0gaXRlcmF0ZWUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXJyYXlNYXA7XG4iLCJ2YXIgU3ltYm9sID0gcmVxdWlyZSgnLi9fU3ltYm9sJyksXG4gICAgYXJyYXlNYXAgPSByZXF1aXJlKCcuL19hcnJheU1hcCcpLFxuICAgIGlzQXJyYXkgPSByZXF1aXJlKCcuL2lzQXJyYXknKSxcbiAgICBpc1N5bWJvbCA9IHJlcXVpcmUoJy4vaXNTeW1ib2wnKTtcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgSU5GSU5JVFkgPSAxIC8gMDtcblxuLyoqIFVzZWQgdG8gY29udmVydCBzeW1ib2xzIHRvIHByaW1pdGl2ZXMgYW5kIHN0cmluZ3MuICovXG52YXIgc3ltYm9sUHJvdG8gPSBTeW1ib2wgPyBTeW1ib2wucHJvdG90eXBlIDogdW5kZWZpbmVkLFxuICAgIHN5bWJvbFRvU3RyaW5nID0gc3ltYm9sUHJvdG8gPyBzeW1ib2xQcm90by50b1N0cmluZyA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50b1N0cmluZ2Agd2hpY2ggZG9lc24ndCBjb252ZXJ0IG51bGxpc2hcbiAqIHZhbHVlcyB0byBlbXB0eSBzdHJpbmdzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwcm9jZXNzLlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBiYXNlVG9TdHJpbmcodmFsdWUpIHtcbiAgLy8gRXhpdCBlYXJseSBmb3Igc3RyaW5ncyB0byBhdm9pZCBhIHBlcmZvcm1hbmNlIGhpdCBpbiBzb21lIGVudmlyb25tZW50cy5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAvLyBSZWN1cnNpdmVseSBjb252ZXJ0IHZhbHVlcyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgIHJldHVybiBhcnJheU1hcCh2YWx1ZSwgYmFzZVRvU3RyaW5nKSArICcnO1xuICB9XG4gIGlmIChpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gc3ltYm9sVG9TdHJpbmcgPyBzeW1ib2xUb1N0cmluZy5jYWxsKHZhbHVlKSA6ICcnO1xuICB9XG4gIHZhciByZXN1bHQgPSAodmFsdWUgKyAnJyk7XG4gIHJldHVybiAocmVzdWx0ID09ICcwJyAmJiAoMSAvIHZhbHVlKSA9PSAtSU5GSU5JVFkpID8gJy0wJyA6IHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlVG9TdHJpbmc7XG4iLCJ2YXIgYmFzZVRvU3RyaW5nID0gcmVxdWlyZSgnLi9fYmFzZVRvU3RyaW5nJyk7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIHN0cmluZy4gQW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkIGZvciBgbnVsbGBcbiAqIGFuZCBgdW5kZWZpbmVkYCB2YWx1ZXMuIFRoZSBzaWduIG9mIGAtMGAgaXMgcHJlc2VydmVkLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY29udmVydGVkIHN0cmluZy5cbiAqIEBleGFtcGxlXG4gKlxuICogXy50b1N0cmluZyhudWxsKTtcbiAqIC8vID0+ICcnXG4gKlxuICogXy50b1N0cmluZygtMCk7XG4gKiAvLyA9PiAnLTAnXG4gKlxuICogXy50b1N0cmluZyhbMSwgMiwgM10pO1xuICogLy8gPT4gJzEsMiwzJ1xuICovXG5mdW5jdGlvbiB0b1N0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgPT0gbnVsbCA/ICcnIDogYmFzZVRvU3RyaW5nKHZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0b1N0cmluZztcbiIsInZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi9pc0FycmF5JyksXG4gICAgaXNLZXkgPSByZXF1aXJlKCcuL19pc0tleScpLFxuICAgIHN0cmluZ1RvUGF0aCA9IHJlcXVpcmUoJy4vX3N0cmluZ1RvUGF0aCcpLFxuICAgIHRvU3RyaW5nID0gcmVxdWlyZSgnLi90b1N0cmluZycpO1xuXG4vKipcbiAqIENhc3RzIGB2YWx1ZWAgdG8gYSBwYXRoIGFycmF5IGlmIGl0J3Mgbm90IG9uZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5IGtleXMgb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGNhc3QgcHJvcGVydHkgcGF0aCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gY2FzdFBhdGgodmFsdWUsIG9iamVjdCkge1xuICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGlzS2V5KHZhbHVlLCBvYmplY3QpID8gW3ZhbHVlXSA6IHN0cmluZ1RvUGF0aCh0b1N0cmluZyh2YWx1ZSkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNhc3RQYXRoO1xuIiwidmFyIGlzU3ltYm9sID0gcmVxdWlyZSgnLi9pc1N5bWJvbCcpO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBJTkZJTklUWSA9IDEgLyAwO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcga2V5IGlmIGl0J3Mgbm90IGEgc3RyaW5nIG9yIHN5bWJvbC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIHtzdHJpbmd8c3ltYm9sfSBSZXR1cm5zIHRoZSBrZXkuXG4gKi9cbmZ1bmN0aW9uIHRvS2V5KHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgfHwgaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHZhciByZXN1bHQgPSAodmFsdWUgKyAnJyk7XG4gIHJldHVybiAocmVzdWx0ID09ICcwJyAmJiAoMSAvIHZhbHVlKSA9PSAtSU5GSU5JVFkpID8gJy0wJyA6IHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0b0tleTtcbiIsInZhciBjYXN0UGF0aCA9IHJlcXVpcmUoJy4vX2Nhc3RQYXRoJyksXG4gICAgdG9LZXkgPSByZXF1aXJlKCcuL190b0tleScpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmdldGAgd2l0aG91dCBzdXBwb3J0IGZvciBkZWZhdWx0IHZhbHVlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXNvbHZlZCB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gYmFzZUdldChvYmplY3QsIHBhdGgpIHtcbiAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG5cbiAgdmFyIGluZGV4ID0gMCxcbiAgICAgIGxlbmd0aCA9IHBhdGgubGVuZ3RoO1xuXG4gIHdoaWxlIChvYmplY3QgIT0gbnVsbCAmJiBpbmRleCA8IGxlbmd0aCkge1xuICAgIG9iamVjdCA9IG9iamVjdFt0b0tleShwYXRoW2luZGV4KytdKV07XG4gIH1cbiAgcmV0dXJuIChpbmRleCAmJiBpbmRleCA9PSBsZW5ndGgpID8gb2JqZWN0IDogdW5kZWZpbmVkO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VHZXQ7XG4iLCJ2YXIgYmFzZUdldCA9IHJlcXVpcmUoJy4vX2Jhc2VHZXQnKTtcblxuLyoqXG4gKiBHZXRzIHRoZSB2YWx1ZSBhdCBgcGF0aGAgb2YgYG9iamVjdGAuIElmIHRoZSByZXNvbHZlZCB2YWx1ZSBpc1xuICogYHVuZGVmaW5lZGAsIHRoZSBgZGVmYXVsdFZhbHVlYCBpcyByZXR1cm5lZCBpbiBpdHMgcGxhY2UuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAzLjcuMFxuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAqIEBwYXJhbSB7Kn0gW2RlZmF1bHRWYWx1ZV0gVGhlIHZhbHVlIHJldHVybmVkIGZvciBgdW5kZWZpbmVkYCByZXNvbHZlZCB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzb2x2ZWQgdmFsdWUuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3QgPSB7ICdhJzogW3sgJ2InOiB7ICdjJzogMyB9IH1dIH07XG4gKlxuICogXy5nZXQob2JqZWN0LCAnYVswXS5iLmMnKTtcbiAqIC8vID0+IDNcbiAqXG4gKiBfLmdldChvYmplY3QsIFsnYScsICcwJywgJ2InLCAnYyddKTtcbiAqIC8vID0+IDNcbiAqXG4gKiBfLmdldChvYmplY3QsICdhLmIuYycsICdkZWZhdWx0Jyk7XG4gKiAvLyA9PiAnZGVmYXVsdCdcbiAqL1xuZnVuY3Rpb24gZ2V0KG9iamVjdCwgcGF0aCwgZGVmYXVsdFZhbHVlKSB7XG4gIHZhciByZXN1bHQgPSBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IGJhc2VHZXQob2JqZWN0LCBwYXRoKTtcbiAgcmV0dXJuIHJlc3VsdCA9PT0gdW5kZWZpbmVkID8gZGVmYXVsdFZhbHVlIDogcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldDtcbiIsInZhciBiYXNlS2V5cyA9IHJlcXVpcmUoJy4vX2Jhc2VLZXlzJyksXG4gICAgZ2V0VGFnID0gcmVxdWlyZSgnLi9fZ2V0VGFnJyksXG4gICAgaXNBcmd1bWVudHMgPSByZXF1aXJlKCcuL2lzQXJndW1lbnRzJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4vaXNBcnJheScpLFxuICAgIGlzQXJyYXlMaWtlID0gcmVxdWlyZSgnLi9pc0FycmF5TGlrZScpLFxuICAgIGlzQnVmZmVyID0gcmVxdWlyZSgnLi9pc0J1ZmZlcicpLFxuICAgIGlzUHJvdG90eXBlID0gcmVxdWlyZSgnLi9faXNQcm90b3R5cGUnKSxcbiAgICBpc1R5cGVkQXJyYXkgPSByZXF1aXJlKCcuL2lzVHlwZWRBcnJheScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgbWFwVGFnID0gJ1tvYmplY3QgTWFwXScsXG4gICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XSc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYW4gZW1wdHkgb2JqZWN0LCBjb2xsZWN0aW9uLCBtYXAsIG9yIHNldC5cbiAqXG4gKiBPYmplY3RzIGFyZSBjb25zaWRlcmVkIGVtcHR5IGlmIHRoZXkgaGF2ZSBubyBvd24gZW51bWVyYWJsZSBzdHJpbmcga2V5ZWRcbiAqIHByb3BlcnRpZXMuXG4gKlxuICogQXJyYXktbGlrZSB2YWx1ZXMgc3VjaCBhcyBgYXJndW1lbnRzYCBvYmplY3RzLCBhcnJheXMsIGJ1ZmZlcnMsIHN0cmluZ3MsIG9yXG4gKiBqUXVlcnktbGlrZSBjb2xsZWN0aW9ucyBhcmUgY29uc2lkZXJlZCBlbXB0eSBpZiB0aGV5IGhhdmUgYSBgbGVuZ3RoYCBvZiBgMGAuXG4gKiBTaW1pbGFybHksIG1hcHMgYW5kIHNldHMgYXJlIGNvbnNpZGVyZWQgZW1wdHkgaWYgdGhleSBoYXZlIGEgYHNpemVgIG9mIGAwYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBlbXB0eSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzRW1wdHkobnVsbCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0VtcHR5KHRydWUpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNFbXB0eSgxKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzRW1wdHkoWzEsIDIsIDNdKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0VtcHR5KHsgJ2EnOiAxIH0pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNFbXB0eSh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChpc0FycmF5TGlrZSh2YWx1ZSkgJiZcbiAgICAgIChpc0FycmF5KHZhbHVlKSB8fCB0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbHVlLnNwbGljZSA9PSAnZnVuY3Rpb24nIHx8XG4gICAgICAgIGlzQnVmZmVyKHZhbHVlKSB8fCBpc1R5cGVkQXJyYXkodmFsdWUpIHx8IGlzQXJndW1lbnRzKHZhbHVlKSkpIHtcbiAgICByZXR1cm4gIXZhbHVlLmxlbmd0aDtcbiAgfVxuICB2YXIgdGFnID0gZ2V0VGFnKHZhbHVlKTtcbiAgaWYgKHRhZyA9PSBtYXBUYWcgfHwgdGFnID09IHNldFRhZykge1xuICAgIHJldHVybiAhdmFsdWUuc2l6ZTtcbiAgfVxuICBpZiAoaXNQcm90b3R5cGUodmFsdWUpKSB7XG4gICAgcmV0dXJuICFiYXNlS2V5cyh2YWx1ZSkubGVuZ3RoO1xuICB9XG4gIGZvciAodmFyIGtleSBpbiB2YWx1ZSkge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBrZXkpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzRW1wdHk7XG4iLCJ2YXIgaGFzRXhjYXBlID0gL34vXG52YXIgZXNjYXBlTWF0Y2hlciA9IC9+WzAxXS9nXG5mdW5jdGlvbiBlc2NhcGVSZXBsYWNlciAobSkge1xuICBzd2l0Y2ggKG0pIHtcbiAgICBjYXNlICd+MSc6IHJldHVybiAnLydcbiAgICBjYXNlICd+MCc6IHJldHVybiAnfidcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdGlsZGUgZXNjYXBlOiAnICsgbSlcbn1cblxuZnVuY3Rpb24gdW50aWxkZSAoc3RyKSB7XG4gIGlmICghaGFzRXhjYXBlLnRlc3Qoc3RyKSkgcmV0dXJuIHN0clxuICByZXR1cm4gc3RyLnJlcGxhY2UoZXNjYXBlTWF0Y2hlciwgZXNjYXBlUmVwbGFjZXIpXG59XG5cbmZ1bmN0aW9uIHNldHRlciAob2JqLCBwb2ludGVyLCB2YWx1ZSkge1xuICB2YXIgcGFydFxuICB2YXIgaGFzTmV4dFBhcnRcblxuICBmb3IgKHZhciBwID0gMSwgbGVuID0gcG9pbnRlci5sZW5ndGg7IHAgPCBsZW47KSB7XG4gICAgaWYgKHBvaW50ZXJbcF0gPT09ICdjb25zdHJ1Y3RvcicgfHwgcG9pbnRlcltwXSA9PT0gJ3Byb3RvdHlwZScgfHwgcG9pbnRlcltwXSA9PT0gJ19fcHJvdG9fXycpIHJldHVybiBvYmpcblxuICAgIHBhcnQgPSB1bnRpbGRlKHBvaW50ZXJbcCsrXSlcbiAgICBoYXNOZXh0UGFydCA9IGxlbiA+IHBcblxuICAgIGlmICh0eXBlb2Ygb2JqW3BhcnRdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gc3VwcG9ydCBzZXR0aW5nIG9mIC8tXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopICYmIHBhcnQgPT09ICctJykge1xuICAgICAgICBwYXJ0ID0gb2JqLmxlbmd0aFxuICAgICAgfVxuXG4gICAgICAvLyBzdXBwb3J0IG5lc3RlZCBvYmplY3RzL2FycmF5IHdoZW4gc2V0dGluZyB2YWx1ZXNcbiAgICAgIGlmIChoYXNOZXh0UGFydCkge1xuICAgICAgICBpZiAoKHBvaW50ZXJbcF0gIT09ICcnICYmIHBvaW50ZXJbcF0gPCBJbmZpbml0eSkgfHwgcG9pbnRlcltwXSA9PT0gJy0nKSBvYmpbcGFydF0gPSBbXVxuICAgICAgICBlbHNlIG9ialtwYXJ0XSA9IHt9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFoYXNOZXh0UGFydCkgYnJlYWtcbiAgICBvYmogPSBvYmpbcGFydF1cbiAgfVxuXG4gIHZhciBvbGRWYWx1ZSA9IG9ialtwYXJ0XVxuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgZGVsZXRlIG9ialtwYXJ0XVxuICBlbHNlIG9ialtwYXJ0XSA9IHZhbHVlXG4gIHJldHVybiBvbGRWYWx1ZVxufVxuXG5mdW5jdGlvbiBjb21waWxlUG9pbnRlciAocG9pbnRlcikge1xuICBpZiAodHlwZW9mIHBvaW50ZXIgPT09ICdzdHJpbmcnKSB7XG4gICAgcG9pbnRlciA9IHBvaW50ZXIuc3BsaXQoJy8nKVxuICAgIGlmIChwb2ludGVyWzBdID09PSAnJykgcmV0dXJuIHBvaW50ZXJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgSlNPTiBwb2ludGVyLicpXG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwb2ludGVyKSkge1xuICAgIGZvciAoY29uc3QgcGFydCBvZiBwb2ludGVyKSB7XG4gICAgICBpZiAodHlwZW9mIHBhcnQgIT09ICdzdHJpbmcnICYmIHR5cGVvZiBwYXJ0ICE9PSAnbnVtYmVyJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgSlNPTiBwb2ludGVyLiBNdXN0IGJlIG9mIHR5cGUgc3RyaW5nIG9yIG51bWJlci4nKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcG9pbnRlclxuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIEpTT04gcG9pbnRlci4nKVxufVxuXG5mdW5jdGlvbiBnZXQgKG9iaiwgcG9pbnRlcikge1xuICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBpbnB1dCBvYmplY3QuJylcbiAgcG9pbnRlciA9IGNvbXBpbGVQb2ludGVyKHBvaW50ZXIpXG4gIHZhciBsZW4gPSBwb2ludGVyLmxlbmd0aFxuICBpZiAobGVuID09PSAxKSByZXR1cm4gb2JqXG5cbiAgZm9yICh2YXIgcCA9IDE7IHAgPCBsZW47KSB7XG4gICAgb2JqID0gb2JqW3VudGlsZGUocG9pbnRlcltwKytdKV1cbiAgICBpZiAobGVuID09PSBwKSByZXR1cm4gb2JqXG4gICAgaWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnIHx8IG9iaiA9PT0gbnVsbCkgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG59XG5cbmZ1bmN0aW9uIHNldCAob2JqLCBwb2ludGVyLCB2YWx1ZSkge1xuICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBpbnB1dCBvYmplY3QuJylcbiAgcG9pbnRlciA9IGNvbXBpbGVQb2ludGVyKHBvaW50ZXIpXG4gIGlmIChwb2ludGVyLmxlbmd0aCA9PT0gMCkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIEpTT04gcG9pbnRlciBmb3Igc2V0LicpXG4gIHJldHVybiBzZXR0ZXIob2JqLCBwb2ludGVyLCB2YWx1ZSlcbn1cblxuZnVuY3Rpb24gY29tcGlsZSAocG9pbnRlcikge1xuICB2YXIgY29tcGlsZWQgPSBjb21waWxlUG9pbnRlcihwb2ludGVyKVxuICByZXR1cm4ge1xuICAgIGdldDogZnVuY3Rpb24gKG9iamVjdCkge1xuICAgICAgcmV0dXJuIGdldChvYmplY3QsIGNvbXBpbGVkKVxuICAgIH0sXG4gICAgc2V0OiBmdW5jdGlvbiAob2JqZWN0LCB2YWx1ZSkge1xuICAgICAgcmV0dXJuIHNldChvYmplY3QsIGNvbXBpbGVkLCB2YWx1ZSlcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0cy5nZXQgPSBnZXRcbmV4cG9ydHMuc2V0ID0gc2V0XG5leHBvcnRzLmNvbXBpbGUgPSBjb21waWxlXG4iLCIvKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5mb3JFYWNoYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3JcbiAqIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IFthcnJheV0gVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gYXJyYXlFYWNoKGFycmF5LCBpdGVyYXRlZSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgaWYgKGl0ZXJhdGVlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KSA9PT0gZmFsc2UpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYXJyYXk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXJyYXlFYWNoO1xuIiwidmFyIGdldE5hdGl2ZSA9IHJlcXVpcmUoJy4vX2dldE5hdGl2ZScpO1xuXG52YXIgZGVmaW5lUHJvcGVydHkgPSAoZnVuY3Rpb24oKSB7XG4gIHRyeSB7XG4gICAgdmFyIGZ1bmMgPSBnZXROYXRpdmUoT2JqZWN0LCAnZGVmaW5lUHJvcGVydHknKTtcbiAgICBmdW5jKHt9LCAnJywge30pO1xuICAgIHJldHVybiBmdW5jO1xuICB9IGNhdGNoIChlKSB7fVxufSgpKTtcblxubW9kdWxlLmV4cG9ydHMgPSBkZWZpbmVQcm9wZXJ0eTtcbiIsInZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vX2RlZmluZVByb3BlcnR5Jyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGFzc2lnblZhbHVlYCBhbmQgYGFzc2lnbk1lcmdlVmFsdWVgIHdpdGhvdXRcbiAqIHZhbHVlIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gYXNzaWduLlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gYXNzaWduLlxuICovXG5mdW5jdGlvbiBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgPT0gJ19fcHJvdG9fXycgJiYgZGVmaW5lUHJvcGVydHkpIHtcbiAgICBkZWZpbmVQcm9wZXJ0eShvYmplY3QsIGtleSwge1xuICAgICAgJ2NvbmZpZ3VyYWJsZSc6IHRydWUsXG4gICAgICAnZW51bWVyYWJsZSc6IHRydWUsXG4gICAgICAndmFsdWUnOiB2YWx1ZSxcbiAgICAgICd3cml0YWJsZSc6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUFzc2lnblZhbHVlO1xuIiwidmFyIGJhc2VBc3NpZ25WYWx1ZSA9IHJlcXVpcmUoJy4vX2Jhc2VBc3NpZ25WYWx1ZScpLFxuICAgIGVxID0gcmVxdWlyZSgnLi9lcScpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEFzc2lnbnMgYHZhbHVlYCB0byBga2V5YCBvZiBgb2JqZWN0YCBpZiB0aGUgZXhpc3RpbmcgdmFsdWUgaXMgbm90IGVxdWl2YWxlbnRcbiAqIHVzaW5nIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXG4gKiBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGFzc2lnbi5cbiAqL1xuZnVuY3Rpb24gYXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIHZhciBvYmpWYWx1ZSA9IG9iamVjdFtrZXldO1xuICBpZiAoIShoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSAmJiBlcShvYmpWYWx1ZSwgdmFsdWUpKSB8fFxuICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgIShrZXkgaW4gb2JqZWN0KSkpIHtcbiAgICBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFzc2lnblZhbHVlO1xuIiwidmFyIGFzc2lnblZhbHVlID0gcmVxdWlyZSgnLi9fYXNzaWduVmFsdWUnKSxcbiAgICBiYXNlQXNzaWduVmFsdWUgPSByZXF1aXJlKCcuL19iYXNlQXNzaWduVmFsdWUnKTtcblxuLyoqXG4gKiBDb3BpZXMgcHJvcGVydGllcyBvZiBgc291cmNlYCB0byBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyBmcm9tLlxuICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IGlkZW50aWZpZXJzIHRvIGNvcHkuXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdD17fV0gVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgdG8uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb3BpZWQgdmFsdWVzLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xuZnVuY3Rpb24gY29weU9iamVjdChzb3VyY2UsIHByb3BzLCBvYmplY3QsIGN1c3RvbWl6ZXIpIHtcbiAgdmFyIGlzTmV3ID0gIW9iamVjdDtcbiAgb2JqZWN0IHx8IChvYmplY3QgPSB7fSk7XG5cbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGg7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuXG4gICAgdmFyIG5ld1ZhbHVlID0gY3VzdG9taXplclxuICAgICAgPyBjdXN0b21pemVyKG9iamVjdFtrZXldLCBzb3VyY2Vba2V5XSwga2V5LCBvYmplY3QsIHNvdXJjZSlcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKG5ld1ZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIG5ld1ZhbHVlID0gc291cmNlW2tleV07XG4gICAgfVxuICAgIGlmIChpc05ldykge1xuICAgICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBvYmplY3Q7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29weU9iamVjdDtcbiIsInZhciBjb3B5T2JqZWN0ID0gcmVxdWlyZSgnLi9fY29weU9iamVjdCcpLFxuICAgIGtleXMgPSByZXF1aXJlKCcuL2tleXMnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5hc3NpZ25gIHdpdGhvdXQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgc291cmNlc1xuICogb3IgYGN1c3RvbWl6ZXJgIGZ1bmN0aW9ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VBc3NpZ24ob2JqZWN0LCBzb3VyY2UpIHtcbiAgcmV0dXJuIG9iamVjdCAmJiBjb3B5T2JqZWN0KHNvdXJjZSwga2V5cyhzb3VyY2UpLCBvYmplY3QpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VBc3NpZ247XG4iLCIvKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZVxuICogW2BPYmplY3Qua2V5c2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5rZXlzKVxuICogZXhjZXB0IHRoYXQgaXQgaW5jbHVkZXMgaW5oZXJpdGVkIGVudW1lcmFibGUgcHJvcGVydGllcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gbmF0aXZlS2V5c0luKG9iamVjdCkge1xuICB2YXIgcmVzdWx0ID0gW107XG4gIGlmIChvYmplY3QgIT0gbnVsbCkge1xuICAgIGZvciAodmFyIGtleSBpbiBPYmplY3Qob2JqZWN0KSkge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuYXRpdmVLZXlzSW47XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzT2JqZWN0JyksXG4gICAgaXNQcm90b3R5cGUgPSByZXF1aXJlKCcuL19pc1Byb3RvdHlwZScpLFxuICAgIG5hdGl2ZUtleXNJbiA9IHJlcXVpcmUoJy4vX25hdGl2ZUtleXNJbicpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmtleXNJbmAgd2hpY2ggZG9lc24ndCB0cmVhdCBzcGFyc2UgYXJyYXlzIGFzIGRlbnNlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBiYXNlS2V5c0luKG9iamVjdCkge1xuICBpZiAoIWlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICByZXR1cm4gbmF0aXZlS2V5c0luKG9iamVjdCk7XG4gIH1cbiAgdmFyIGlzUHJvdG8gPSBpc1Byb3RvdHlwZShvYmplY3QpLFxuICAgICAgcmVzdWx0ID0gW107XG5cbiAgZm9yICh2YXIga2V5IGluIG9iamVjdCkge1xuICAgIGlmICghKGtleSA9PSAnY29uc3RydWN0b3InICYmIChpc1Byb3RvIHx8ICFoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSkpKSB7XG4gICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VLZXlzSW47XG4iLCJ2YXIgYXJyYXlMaWtlS2V5cyA9IHJlcXVpcmUoJy4vX2FycmF5TGlrZUtleXMnKSxcbiAgICBiYXNlS2V5c0luID0gcmVxdWlyZSgnLi9fYmFzZUtleXNJbicpLFxuICAgIGlzQXJyYXlMaWtlID0gcmVxdWlyZSgnLi9pc0FycmF5TGlrZScpO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgb2YgYG9iamVjdGAuXG4gKlxuICogKipOb3RlOioqIE5vbi1vYmplY3QgdmFsdWVzIGFyZSBjb2VyY2VkIHRvIG9iamVjdHMuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAzLjAuMFxuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gRm9vKCkge1xuICogICB0aGlzLmEgPSAxO1xuICogICB0aGlzLmIgPSAyO1xuICogfVxuICpcbiAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gKlxuICogXy5rZXlzSW4obmV3IEZvbyk7XG4gKiAvLyA9PiBbJ2EnLCAnYicsICdjJ10gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAqL1xuZnVuY3Rpb24ga2V5c0luKG9iamVjdCkge1xuICByZXR1cm4gaXNBcnJheUxpa2Uob2JqZWN0KSA/IGFycmF5TGlrZUtleXMob2JqZWN0LCB0cnVlKSA6IGJhc2VLZXlzSW4ob2JqZWN0KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBrZXlzSW47XG4iLCJ2YXIgY29weU9iamVjdCA9IHJlcXVpcmUoJy4vX2NvcHlPYmplY3QnKSxcbiAgICBrZXlzSW4gPSByZXF1aXJlKCcuL2tleXNJbicpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmFzc2lnbkluYCB3aXRob3V0IHN1cHBvcnQgZm9yIG11bHRpcGxlIHNvdXJjZXNcbiAqIG9yIGBjdXN0b21pemVyYCBmdW5jdGlvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBiYXNlQXNzaWduSW4ob2JqZWN0LCBzb3VyY2UpIHtcbiAgcmV0dXJuIG9iamVjdCAmJiBjb3B5T2JqZWN0KHNvdXJjZSwga2V5c0luKHNvdXJjZSksIG9iamVjdCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUFzc2lnbkluO1xuIiwidmFyIHJvb3QgPSByZXF1aXJlKCcuL19yb290Jyk7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgQnVmZmVyID0gbW9kdWxlRXhwb3J0cyA/IHJvb3QuQnVmZmVyIDogdW5kZWZpbmVkLFxuICAgIGFsbG9jVW5zYWZlID0gQnVmZmVyID8gQnVmZmVyLmFsbG9jVW5zYWZlIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjbG9uZSBvZiAgYGJ1ZmZlcmAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QnVmZmVyfSBidWZmZXIgVGhlIGJ1ZmZlciB0byBjbG9uZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gKiBAcmV0dXJucyB7QnVmZmVyfSBSZXR1cm5zIHRoZSBjbG9uZWQgYnVmZmVyLlxuICovXG5mdW5jdGlvbiBjbG9uZUJ1ZmZlcihidWZmZXIsIGlzRGVlcCkge1xuICBpZiAoaXNEZWVwKSB7XG4gICAgcmV0dXJuIGJ1ZmZlci5zbGljZSgpO1xuICB9XG4gIHZhciBsZW5ndGggPSBidWZmZXIubGVuZ3RoLFxuICAgICAgcmVzdWx0ID0gYWxsb2NVbnNhZmUgPyBhbGxvY1Vuc2FmZShsZW5ndGgpIDogbmV3IGJ1ZmZlci5jb25zdHJ1Y3RvcihsZW5ndGgpO1xuXG4gIGJ1ZmZlci5jb3B5KHJlc3VsdCk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2xvbmVCdWZmZXI7XG4iLCIvKipcbiAqIENvcGllcyB0aGUgdmFsdWVzIG9mIGBzb3VyY2VgIHRvIGBhcnJheWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IHNvdXJjZSBUaGUgYXJyYXkgdG8gY29weSB2YWx1ZXMgZnJvbS5cbiAqIEBwYXJhbSB7QXJyYXl9IFthcnJheT1bXV0gVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIHRvLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGNvcHlBcnJheShzb3VyY2UsIGFycmF5KSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gc291cmNlLmxlbmd0aDtcblxuICBhcnJheSB8fCAoYXJyYXkgPSBBcnJheShsZW5ndGgpKTtcbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBhcnJheVtpbmRleF0gPSBzb3VyY2VbaW5kZXhdO1xuICB9XG4gIHJldHVybiBhcnJheTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjb3B5QXJyYXk7XG4iLCJ2YXIgY29weU9iamVjdCA9IHJlcXVpcmUoJy4vX2NvcHlPYmplY3QnKSxcbiAgICBnZXRTeW1ib2xzID0gcmVxdWlyZSgnLi9fZ2V0U3ltYm9scycpO1xuXG4vKipcbiAqIENvcGllcyBvd24gc3ltYm9scyBvZiBgc291cmNlYCB0byBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IHRvIGNvcHkgc3ltYm9scyBmcm9tLlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3Q9e31dIFRoZSBvYmplY3QgdG8gY29weSBzeW1ib2xzIHRvLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xuZnVuY3Rpb24gY29weVN5bWJvbHMoc291cmNlLCBvYmplY3QpIHtcbiAgcmV0dXJuIGNvcHlPYmplY3Qoc291cmNlLCBnZXRTeW1ib2xzKHNvdXJjZSksIG9iamVjdCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29weVN5bWJvbHM7XG4iLCJ2YXIgYXJyYXlQdXNoID0gcmVxdWlyZSgnLi9fYXJyYXlQdXNoJyksXG4gICAgZ2V0UHJvdG90eXBlID0gcmVxdWlyZSgnLi9fZ2V0UHJvdG90eXBlJyksXG4gICAgZ2V0U3ltYm9scyA9IHJlcXVpcmUoJy4vX2dldFN5bWJvbHMnKSxcbiAgICBzdHViQXJyYXkgPSByZXF1aXJlKCcuL3N0dWJBcnJheScpO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlR2V0U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHN5bWJvbHMuXG4gKi9cbnZhciBnZXRTeW1ib2xzSW4gPSAhbmF0aXZlR2V0U3ltYm9scyA/IHN0dWJBcnJheSA6IGZ1bmN0aW9uKG9iamVjdCkge1xuICB2YXIgcmVzdWx0ID0gW107XG4gIHdoaWxlIChvYmplY3QpIHtcbiAgICBhcnJheVB1c2gocmVzdWx0LCBnZXRTeW1ib2xzKG9iamVjdCkpO1xuICAgIG9iamVjdCA9IGdldFByb3RvdHlwZShvYmplY3QpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdldFN5bWJvbHNJbjtcbiIsInZhciBjb3B5T2JqZWN0ID0gcmVxdWlyZSgnLi9fY29weU9iamVjdCcpLFxuICAgIGdldFN5bWJvbHNJbiA9IHJlcXVpcmUoJy4vX2dldFN5bWJvbHNJbicpO1xuXG4vKipcbiAqIENvcGllcyBvd24gYW5kIGluaGVyaXRlZCBzeW1ib2xzIG9mIGBzb3VyY2VgIHRvIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3QgdG8gY29weSBzeW1ib2xzIGZyb20uXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdD17fV0gVGhlIG9iamVjdCB0byBjb3B5IHN5bWJvbHMgdG8uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBjb3B5U3ltYm9sc0luKHNvdXJjZSwgb2JqZWN0KSB7XG4gIHJldHVybiBjb3B5T2JqZWN0KHNvdXJjZSwgZ2V0U3ltYm9sc0luKHNvdXJjZSksIG9iamVjdCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29weVN5bWJvbHNJbjtcbiIsInZhciBiYXNlR2V0QWxsS2V5cyA9IHJlcXVpcmUoJy4vX2Jhc2VHZXRBbGxLZXlzJyksXG4gICAgZ2V0U3ltYm9sc0luID0gcmVxdWlyZSgnLi9fZ2V0U3ltYm9sc0luJyksXG4gICAga2V5c0luID0gcmVxdWlyZSgnLi9rZXlzSW4nKTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgYW5kXG4gKiBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzIGFuZCBzeW1ib2xzLlxuICovXG5mdW5jdGlvbiBnZXRBbGxLZXlzSW4ob2JqZWN0KSB7XG4gIHJldHVybiBiYXNlR2V0QWxsS2V5cyhvYmplY3QsIGtleXNJbiwgZ2V0U3ltYm9sc0luKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBnZXRBbGxLZXlzSW47XG4iLCIvKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEluaXRpYWxpemVzIGFuIGFycmF5IGNsb25lLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGluaXRpYWxpemVkIGNsb25lLlxuICovXG5mdW5jdGlvbiBpbml0Q2xvbmVBcnJheShhcnJheSkge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgcmVzdWx0ID0gbmV3IGFycmF5LmNvbnN0cnVjdG9yKGxlbmd0aCk7XG5cbiAgLy8gQWRkIHByb3BlcnRpZXMgYXNzaWduZWQgYnkgYFJlZ0V4cCNleGVjYC5cbiAgaWYgKGxlbmd0aCAmJiB0eXBlb2YgYXJyYXlbMF0gPT0gJ3N0cmluZycgJiYgaGFzT3duUHJvcGVydHkuY2FsbChhcnJheSwgJ2luZGV4JykpIHtcbiAgICByZXN1bHQuaW5kZXggPSBhcnJheS5pbmRleDtcbiAgICByZXN1bHQuaW5wdXQgPSBhcnJheS5pbnB1dDtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGluaXRDbG9uZUFycmF5O1xuIiwidmFyIFVpbnQ4QXJyYXkgPSByZXF1aXJlKCcuL19VaW50OEFycmF5Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mIGBhcnJheUJ1ZmZlcmAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXlCdWZmZXJ9IGFycmF5QnVmZmVyIFRoZSBhcnJheSBidWZmZXIgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7QXJyYXlCdWZmZXJ9IFJldHVybnMgdGhlIGNsb25lZCBhcnJheSBidWZmZXIuXG4gKi9cbmZ1bmN0aW9uIGNsb25lQXJyYXlCdWZmZXIoYXJyYXlCdWZmZXIpIHtcbiAgdmFyIHJlc3VsdCA9IG5ldyBhcnJheUJ1ZmZlci5jb25zdHJ1Y3RvcihhcnJheUJ1ZmZlci5ieXRlTGVuZ3RoKTtcbiAgbmV3IFVpbnQ4QXJyYXkocmVzdWx0KS5zZXQobmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjbG9uZUFycmF5QnVmZmVyO1xuIiwidmFyIGNsb25lQXJyYXlCdWZmZXIgPSByZXF1aXJlKCcuL19jbG9uZUFycmF5QnVmZmVyJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mIGBkYXRhVmlld2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhVmlldyBUaGUgZGF0YSB2aWV3IHRvIGNsb25lLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNsb25lZCBkYXRhIHZpZXcuXG4gKi9cbmZ1bmN0aW9uIGNsb25lRGF0YVZpZXcoZGF0YVZpZXcsIGlzRGVlcCkge1xuICB2YXIgYnVmZmVyID0gaXNEZWVwID8gY2xvbmVBcnJheUJ1ZmZlcihkYXRhVmlldy5idWZmZXIpIDogZGF0YVZpZXcuYnVmZmVyO1xuICByZXR1cm4gbmV3IGRhdGFWaWV3LmNvbnN0cnVjdG9yKGJ1ZmZlciwgZGF0YVZpZXcuYnl0ZU9mZnNldCwgZGF0YVZpZXcuYnl0ZUxlbmd0aCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2xvbmVEYXRhVmlldztcbiIsIi8qKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgIGZsYWdzIGZyb20gdGhlaXIgY29lcmNlZCBzdHJpbmcgdmFsdWVzLiAqL1xudmFyIHJlRmxhZ3MgPSAvXFx3KiQvO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjbG9uZSBvZiBgcmVnZXhwYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHJlZ2V4cCBUaGUgcmVnZXhwIHRvIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIHJlZ2V4cC5cbiAqL1xuZnVuY3Rpb24gY2xvbmVSZWdFeHAocmVnZXhwKSB7XG4gIHZhciByZXN1bHQgPSBuZXcgcmVnZXhwLmNvbnN0cnVjdG9yKHJlZ2V4cC5zb3VyY2UsIHJlRmxhZ3MuZXhlYyhyZWdleHApKTtcbiAgcmVzdWx0Lmxhc3RJbmRleCA9IHJlZ2V4cC5sYXN0SW5kZXg7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2xvbmVSZWdFeHA7XG4iLCJ2YXIgU3ltYm9sID0gcmVxdWlyZSgnLi9fU3ltYm9sJyk7XG5cbi8qKiBVc2VkIHRvIGNvbnZlcnQgc3ltYm9scyB0byBwcmltaXRpdmVzIGFuZCBzdHJpbmdzLiAqL1xudmFyIHN5bWJvbFByb3RvID0gU3ltYm9sID8gU3ltYm9sLnByb3RvdHlwZSA6IHVuZGVmaW5lZCxcbiAgICBzeW1ib2xWYWx1ZU9mID0gc3ltYm9sUHJvdG8gPyBzeW1ib2xQcm90by52YWx1ZU9mIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjbG9uZSBvZiB0aGUgYHN5bWJvbGAgb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gc3ltYm9sIFRoZSBzeW1ib2wgb2JqZWN0IHRvIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIHN5bWJvbCBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGNsb25lU3ltYm9sKHN5bWJvbCkge1xuICByZXR1cm4gc3ltYm9sVmFsdWVPZiA/IE9iamVjdChzeW1ib2xWYWx1ZU9mLmNhbGwoc3ltYm9sKSkgOiB7fTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjbG9uZVN5bWJvbDtcbiIsInZhciBjbG9uZUFycmF5QnVmZmVyID0gcmVxdWlyZSgnLi9fY2xvbmVBcnJheUJ1ZmZlcicpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjbG9uZSBvZiBgdHlwZWRBcnJheWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSB0eXBlZEFycmF5IFRoZSB0eXBlZCBhcnJheSB0byBjbG9uZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgdHlwZWQgYXJyYXkuXG4gKi9cbmZ1bmN0aW9uIGNsb25lVHlwZWRBcnJheSh0eXBlZEFycmF5LCBpc0RlZXApIHtcbiAgdmFyIGJ1ZmZlciA9IGlzRGVlcCA/IGNsb25lQXJyYXlCdWZmZXIodHlwZWRBcnJheS5idWZmZXIpIDogdHlwZWRBcnJheS5idWZmZXI7XG4gIHJldHVybiBuZXcgdHlwZWRBcnJheS5jb25zdHJ1Y3RvcihidWZmZXIsIHR5cGVkQXJyYXkuYnl0ZU9mZnNldCwgdHlwZWRBcnJheS5sZW5ndGgpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNsb25lVHlwZWRBcnJheTtcbiIsInZhciBjbG9uZUFycmF5QnVmZmVyID0gcmVxdWlyZSgnLi9fY2xvbmVBcnJheUJ1ZmZlcicpLFxuICAgIGNsb25lRGF0YVZpZXcgPSByZXF1aXJlKCcuL19jbG9uZURhdGFWaWV3JyksXG4gICAgY2xvbmVSZWdFeHAgPSByZXF1aXJlKCcuL19jbG9uZVJlZ0V4cCcpLFxuICAgIGNsb25lU3ltYm9sID0gcmVxdWlyZSgnLi9fY2xvbmVTeW1ib2wnKSxcbiAgICBjbG9uZVR5cGVkQXJyYXkgPSByZXF1aXJlKCcuL19jbG9uZVR5cGVkQXJyYXknKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGJvb2xUYWcgPSAnW29iamVjdCBCb29sZWFuXScsXG4gICAgZGF0ZVRhZyA9ICdbb2JqZWN0IERhdGVdJyxcbiAgICBtYXBUYWcgPSAnW29iamVjdCBNYXBdJyxcbiAgICBudW1iZXJUYWcgPSAnW29iamVjdCBOdW1iZXJdJyxcbiAgICByZWdleHBUYWcgPSAnW29iamVjdCBSZWdFeHBdJyxcbiAgICBzZXRUYWcgPSAnW29iamVjdCBTZXRdJyxcbiAgICBzdHJpbmdUYWcgPSAnW29iamVjdCBTdHJpbmddJyxcbiAgICBzeW1ib2xUYWcgPSAnW29iamVjdCBTeW1ib2xdJztcblxudmFyIGFycmF5QnVmZmVyVGFnID0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyxcbiAgICBkYXRhVmlld1RhZyA9ICdbb2JqZWN0IERhdGFWaWV3XScsXG4gICAgZmxvYXQzMlRhZyA9ICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgIGZsb2F0NjRUYWcgPSAnW29iamVjdCBGbG9hdDY0QXJyYXldJyxcbiAgICBpbnQ4VGFnID0gJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgaW50MTZUYWcgPSAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgaW50MzJUYWcgPSAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgdWludDhUYWcgPSAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgdWludDhDbGFtcGVkVGFnID0gJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICB1aW50MTZUYWcgPSAnW29iamVjdCBVaW50MTZBcnJheV0nLFxuICAgIHVpbnQzMlRhZyA9ICdbb2JqZWN0IFVpbnQzMkFycmF5XSc7XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgYW4gb2JqZWN0IGNsb25lIGJhc2VkIG9uIGl0cyBgdG9TdHJpbmdUYWdgLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIGZ1bmN0aW9uIG9ubHkgc3VwcG9ydHMgY2xvbmluZyB2YWx1ZXMgd2l0aCB0YWdzIG9mXG4gKiBgQm9vbGVhbmAsIGBEYXRlYCwgYEVycm9yYCwgYE1hcGAsIGBOdW1iZXJgLCBgUmVnRXhwYCwgYFNldGAsIG9yIGBTdHJpbmdgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge3N0cmluZ30gdGFnIFRoZSBgdG9TdHJpbmdUYWdgIG9mIHRoZSBvYmplY3QgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgaW5pdGlhbGl6ZWQgY2xvbmUuXG4gKi9cbmZ1bmN0aW9uIGluaXRDbG9uZUJ5VGFnKG9iamVjdCwgdGFnLCBpc0RlZXApIHtcbiAgdmFyIEN0b3IgPSBvYmplY3QuY29uc3RydWN0b3I7XG4gIHN3aXRjaCAodGFnKSB7XG4gICAgY2FzZSBhcnJheUJ1ZmZlclRhZzpcbiAgICAgIHJldHVybiBjbG9uZUFycmF5QnVmZmVyKG9iamVjdCk7XG5cbiAgICBjYXNlIGJvb2xUYWc6XG4gICAgY2FzZSBkYXRlVGFnOlxuICAgICAgcmV0dXJuIG5ldyBDdG9yKCtvYmplY3QpO1xuXG4gICAgY2FzZSBkYXRhVmlld1RhZzpcbiAgICAgIHJldHVybiBjbG9uZURhdGFWaWV3KG9iamVjdCwgaXNEZWVwKTtcblxuICAgIGNhc2UgZmxvYXQzMlRhZzogY2FzZSBmbG9hdDY0VGFnOlxuICAgIGNhc2UgaW50OFRhZzogY2FzZSBpbnQxNlRhZzogY2FzZSBpbnQzMlRhZzpcbiAgICBjYXNlIHVpbnQ4VGFnOiBjYXNlIHVpbnQ4Q2xhbXBlZFRhZzogY2FzZSB1aW50MTZUYWc6IGNhc2UgdWludDMyVGFnOlxuICAgICAgcmV0dXJuIGNsb25lVHlwZWRBcnJheShvYmplY3QsIGlzRGVlcCk7XG5cbiAgICBjYXNlIG1hcFRhZzpcbiAgICAgIHJldHVybiBuZXcgQ3RvcjtcblxuICAgIGNhc2UgbnVtYmVyVGFnOlxuICAgIGNhc2Ugc3RyaW5nVGFnOlxuICAgICAgcmV0dXJuIG5ldyBDdG9yKG9iamVjdCk7XG5cbiAgICBjYXNlIHJlZ2V4cFRhZzpcbiAgICAgIHJldHVybiBjbG9uZVJlZ0V4cChvYmplY3QpO1xuXG4gICAgY2FzZSBzZXRUYWc6XG4gICAgICByZXR1cm4gbmV3IEN0b3I7XG5cbiAgICBjYXNlIHN5bWJvbFRhZzpcbiAgICAgIHJldHVybiBjbG9uZVN5bWJvbChvYmplY3QpO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaW5pdENsb25lQnlUYWc7XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzT2JqZWN0Jyk7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdENyZWF0ZSA9IE9iamVjdC5jcmVhdGU7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY3JlYXRlYCB3aXRob3V0IHN1cHBvcnQgZm9yIGFzc2lnbmluZ1xuICogcHJvcGVydGllcyB0byB0aGUgY3JlYXRlZCBvYmplY3QuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm90byBUaGUgb2JqZWN0IHRvIGluaGVyaXQgZnJvbS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gKi9cbnZhciBiYXNlQ3JlYXRlID0gKGZ1bmN0aW9uKCkge1xuICBmdW5jdGlvbiBvYmplY3QoKSB7fVxuICByZXR1cm4gZnVuY3Rpb24ocHJvdG8pIHtcbiAgICBpZiAoIWlzT2JqZWN0KHByb3RvKSkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBpZiAob2JqZWN0Q3JlYXRlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0Q3JlYXRlKHByb3RvKTtcbiAgICB9XG4gICAgb2JqZWN0LnByb3RvdHlwZSA9IHByb3RvO1xuICAgIHZhciByZXN1bHQgPSBuZXcgb2JqZWN0O1xuICAgIG9iamVjdC5wcm90b3R5cGUgPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbn0oKSk7XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUNyZWF0ZTtcbiIsInZhciBiYXNlQ3JlYXRlID0gcmVxdWlyZSgnLi9fYmFzZUNyZWF0ZScpLFxuICAgIGdldFByb3RvdHlwZSA9IHJlcXVpcmUoJy4vX2dldFByb3RvdHlwZScpLFxuICAgIGlzUHJvdG90eXBlID0gcmVxdWlyZSgnLi9faXNQcm90b3R5cGUnKTtcblxuLyoqXG4gKiBJbml0aWFsaXplcyBhbiBvYmplY3QgY2xvbmUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjbG9uZS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGluaXRpYWxpemVkIGNsb25lLlxuICovXG5mdW5jdGlvbiBpbml0Q2xvbmVPYmplY3Qob2JqZWN0KSB7XG4gIHJldHVybiAodHlwZW9mIG9iamVjdC5jb25zdHJ1Y3RvciA9PSAnZnVuY3Rpb24nICYmICFpc1Byb3RvdHlwZShvYmplY3QpKVxuICAgID8gYmFzZUNyZWF0ZShnZXRQcm90b3R5cGUob2JqZWN0KSlcbiAgICA6IHt9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGluaXRDbG9uZU9iamVjdDtcbiIsInZhciBnZXRUYWcgPSByZXF1aXJlKCcuL19nZXRUYWcnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgbWFwVGFnID0gJ1tvYmplY3QgTWFwXSc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNNYXBgIHdpdGhvdXQgTm9kZS5qcyBvcHRpbWl6YXRpb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgbWFwLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc01hcCh2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBnZXRUYWcodmFsdWUpID09IG1hcFRhZztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSXNNYXA7XG4iLCJ2YXIgYmFzZUlzTWFwID0gcmVxdWlyZSgnLi9fYmFzZUlzTWFwJyksXG4gICAgYmFzZVVuYXJ5ID0gcmVxdWlyZSgnLi9fYmFzZVVuYXJ5JyksXG4gICAgbm9kZVV0aWwgPSByZXF1aXJlKCcuL19ub2RlVXRpbCcpO1xuXG4vKiBOb2RlLmpzIGhlbHBlciByZWZlcmVuY2VzLiAqL1xudmFyIG5vZGVJc01hcCA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzTWFwO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgTWFwYCBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjMuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBtYXAsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc01hcChuZXcgTWFwKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzTWFwKG5ldyBXZWFrTWFwKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc01hcCA9IG5vZGVJc01hcCA/IGJhc2VVbmFyeShub2RlSXNNYXApIDogYmFzZUlzTWFwO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzTWFwO1xuIiwidmFyIGdldFRhZyA9IHJlcXVpcmUoJy4vX2dldFRhZycpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4vaXNPYmplY3RMaWtlJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBzZXRUYWcgPSAnW29iamVjdCBTZXRdJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc1NldGAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzZXQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzU2V0KHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGdldFRhZyh2YWx1ZSkgPT0gc2V0VGFnO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VJc1NldDtcbiIsInZhciBiYXNlSXNTZXQgPSByZXF1aXJlKCcuL19iYXNlSXNTZXQnKSxcbiAgICBiYXNlVW5hcnkgPSByZXF1aXJlKCcuL19iYXNlVW5hcnknKSxcbiAgICBub2RlVXRpbCA9IHJlcXVpcmUoJy4vX25vZGVVdGlsJyk7XG5cbi8qIE5vZGUuanMgaGVscGVyIHJlZmVyZW5jZXMuICovXG52YXIgbm9kZUlzU2V0ID0gbm9kZVV0aWwgJiYgbm9kZVV0aWwuaXNTZXQ7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBTZXRgIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMy4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHNldCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzU2V0KG5ldyBTZXQpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNTZXQobmV3IFdlYWtTZXQpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzU2V0ID0gbm9kZUlzU2V0ID8gYmFzZVVuYXJ5KG5vZGVJc1NldCkgOiBiYXNlSXNTZXQ7XG5cbm1vZHVsZS5leHBvcnRzID0gaXNTZXQ7XG4iLCJ2YXIgU3RhY2sgPSByZXF1aXJlKCcuL19TdGFjaycpLFxuICAgIGFycmF5RWFjaCA9IHJlcXVpcmUoJy4vX2FycmF5RWFjaCcpLFxuICAgIGFzc2lnblZhbHVlID0gcmVxdWlyZSgnLi9fYXNzaWduVmFsdWUnKSxcbiAgICBiYXNlQXNzaWduID0gcmVxdWlyZSgnLi9fYmFzZUFzc2lnbicpLFxuICAgIGJhc2VBc3NpZ25JbiA9IHJlcXVpcmUoJy4vX2Jhc2VBc3NpZ25JbicpLFxuICAgIGNsb25lQnVmZmVyID0gcmVxdWlyZSgnLi9fY2xvbmVCdWZmZXInKSxcbiAgICBjb3B5QXJyYXkgPSByZXF1aXJlKCcuL19jb3B5QXJyYXknKSxcbiAgICBjb3B5U3ltYm9scyA9IHJlcXVpcmUoJy4vX2NvcHlTeW1ib2xzJyksXG4gICAgY29weVN5bWJvbHNJbiA9IHJlcXVpcmUoJy4vX2NvcHlTeW1ib2xzSW4nKSxcbiAgICBnZXRBbGxLZXlzID0gcmVxdWlyZSgnLi9fZ2V0QWxsS2V5cycpLFxuICAgIGdldEFsbEtleXNJbiA9IHJlcXVpcmUoJy4vX2dldEFsbEtleXNJbicpLFxuICAgIGdldFRhZyA9IHJlcXVpcmUoJy4vX2dldFRhZycpLFxuICAgIGluaXRDbG9uZUFycmF5ID0gcmVxdWlyZSgnLi9faW5pdENsb25lQXJyYXknKSxcbiAgICBpbml0Q2xvbmVCeVRhZyA9IHJlcXVpcmUoJy4vX2luaXRDbG9uZUJ5VGFnJyksXG4gICAgaW5pdENsb25lT2JqZWN0ID0gcmVxdWlyZSgnLi9faW5pdENsb25lT2JqZWN0JyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4vaXNBcnJheScpLFxuICAgIGlzQnVmZmVyID0gcmVxdWlyZSgnLi9pc0J1ZmZlcicpLFxuICAgIGlzTWFwID0gcmVxdWlyZSgnLi9pc01hcCcpLFxuICAgIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpLFxuICAgIGlzU2V0ID0gcmVxdWlyZSgnLi9pc1NldCcpLFxuICAgIGtleXMgPSByZXF1aXJlKCcuL2tleXMnKSxcbiAgICBrZXlzSW4gPSByZXF1aXJlKCcuL2tleXNJbicpO1xuXG4vKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciBjbG9uaW5nLiAqL1xudmFyIENMT05FX0RFRVBfRkxBRyA9IDEsXG4gICAgQ0xPTkVfRkxBVF9GTEFHID0gMixcbiAgICBDTE9ORV9TWU1CT0xTX0ZMQUcgPSA0O1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIGdlblRhZyA9ICdbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXScsXG4gICAgbWFwVGFnID0gJ1tvYmplY3QgTWFwXScsXG4gICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XScsXG4gICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XScsXG4gICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXScsXG4gICAgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXScsXG4gICAgd2Vha01hcFRhZyA9ICdbb2JqZWN0IFdlYWtNYXBdJztcblxudmFyIGFycmF5QnVmZmVyVGFnID0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyxcbiAgICBkYXRhVmlld1RhZyA9ICdbb2JqZWN0IERhdGFWaWV3XScsXG4gICAgZmxvYXQzMlRhZyA9ICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgIGZsb2F0NjRUYWcgPSAnW29iamVjdCBGbG9hdDY0QXJyYXldJyxcbiAgICBpbnQ4VGFnID0gJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgaW50MTZUYWcgPSAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgaW50MzJUYWcgPSAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgdWludDhUYWcgPSAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgdWludDhDbGFtcGVkVGFnID0gJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICB1aW50MTZUYWcgPSAnW29iamVjdCBVaW50MTZBcnJheV0nLFxuICAgIHVpbnQzMlRhZyA9ICdbb2JqZWN0IFVpbnQzMkFycmF5XSc7XG5cbi8qKiBVc2VkIHRvIGlkZW50aWZ5IGB0b1N0cmluZ1RhZ2AgdmFsdWVzIHN1cHBvcnRlZCBieSBgXy5jbG9uZWAuICovXG52YXIgY2xvbmVhYmxlVGFncyA9IHt9O1xuY2xvbmVhYmxlVGFnc1thcmdzVGFnXSA9IGNsb25lYWJsZVRhZ3NbYXJyYXlUYWddID1cbmNsb25lYWJsZVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gY2xvbmVhYmxlVGFnc1tkYXRhVmlld1RhZ10gPVxuY2xvbmVhYmxlVGFnc1tib29sVGFnXSA9IGNsb25lYWJsZVRhZ3NbZGF0ZVRhZ10gPVxuY2xvbmVhYmxlVGFnc1tmbG9hdDMyVGFnXSA9IGNsb25lYWJsZVRhZ3NbZmxvYXQ2NFRhZ10gPVxuY2xvbmVhYmxlVGFnc1tpbnQ4VGFnXSA9IGNsb25lYWJsZVRhZ3NbaW50MTZUYWddID1cbmNsb25lYWJsZVRhZ3NbaW50MzJUYWddID0gY2xvbmVhYmxlVGFnc1ttYXBUYWddID1cbmNsb25lYWJsZVRhZ3NbbnVtYmVyVGFnXSA9IGNsb25lYWJsZVRhZ3Nbb2JqZWN0VGFnXSA9XG5jbG9uZWFibGVUYWdzW3JlZ2V4cFRhZ10gPSBjbG9uZWFibGVUYWdzW3NldFRhZ10gPVxuY2xvbmVhYmxlVGFnc1tzdHJpbmdUYWddID0gY2xvbmVhYmxlVGFnc1tzeW1ib2xUYWddID1cbmNsb25lYWJsZVRhZ3NbdWludDhUYWddID0gY2xvbmVhYmxlVGFnc1t1aW50OENsYW1wZWRUYWddID1cbmNsb25lYWJsZVRhZ3NbdWludDE2VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDMyVGFnXSA9IHRydWU7XG5jbG9uZWFibGVUYWdzW2Vycm9yVGFnXSA9IGNsb25lYWJsZVRhZ3NbZnVuY1RhZ10gPVxuY2xvbmVhYmxlVGFnc1t3ZWFrTWFwVGFnXSA9IGZhbHNlO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNsb25lYCBhbmQgYF8uY2xvbmVEZWVwYCB3aGljaCB0cmFja3NcbiAqIHRyYXZlcnNlZCBvYmplY3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjbG9uZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy5cbiAqICAxIC0gRGVlcCBjbG9uZVxuICogIDIgLSBGbGF0dGVuIGluaGVyaXRlZCBwcm9wZXJ0aWVzXG4gKiAgNCAtIENsb25lIHN5bWJvbHNcbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNsb25pbmcuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2tleV0gVGhlIGtleSBvZiBgdmFsdWVgLlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBwYXJlbnQgb2JqZWN0IG9mIGB2YWx1ZWAuXG4gKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIG9iamVjdHMgYW5kIHRoZWlyIGNsb25lIGNvdW50ZXJwYXJ0cy5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBjbG9uZWQgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGJhc2VDbG9uZSh2YWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwga2V5LCBvYmplY3QsIHN0YWNrKSB7XG4gIHZhciByZXN1bHQsXG4gICAgICBpc0RlZXAgPSBiaXRtYXNrICYgQ0xPTkVfREVFUF9GTEFHLFxuICAgICAgaXNGbGF0ID0gYml0bWFzayAmIENMT05FX0ZMQVRfRkxBRyxcbiAgICAgIGlzRnVsbCA9IGJpdG1hc2sgJiBDTE9ORV9TWU1CT0xTX0ZMQUc7XG5cbiAgaWYgKGN1c3RvbWl6ZXIpIHtcbiAgICByZXN1bHQgPSBvYmplY3QgPyBjdXN0b21pemVyKHZhbHVlLCBrZXksIG9iamVjdCwgc3RhY2spIDogY3VzdG9taXplcih2YWx1ZSk7XG4gIH1cbiAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICB2YXIgaXNBcnIgPSBpc0FycmF5KHZhbHVlKTtcbiAgaWYgKGlzQXJyKSB7XG4gICAgcmVzdWx0ID0gaW5pdENsb25lQXJyYXkodmFsdWUpO1xuICAgIGlmICghaXNEZWVwKSB7XG4gICAgICByZXR1cm4gY29weUFycmF5KHZhbHVlLCByZXN1bHQpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgdGFnID0gZ2V0VGFnKHZhbHVlKSxcbiAgICAgICAgaXNGdW5jID0gdGFnID09IGZ1bmNUYWcgfHwgdGFnID09IGdlblRhZztcblxuICAgIGlmIChpc0J1ZmZlcih2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBjbG9uZUJ1ZmZlcih2YWx1ZSwgaXNEZWVwKTtcbiAgICB9XG4gICAgaWYgKHRhZyA9PSBvYmplY3RUYWcgfHwgdGFnID09IGFyZ3NUYWcgfHwgKGlzRnVuYyAmJiAhb2JqZWN0KSkge1xuICAgICAgcmVzdWx0ID0gKGlzRmxhdCB8fCBpc0Z1bmMpID8ge30gOiBpbml0Q2xvbmVPYmplY3QodmFsdWUpO1xuICAgICAgaWYgKCFpc0RlZXApIHtcbiAgICAgICAgcmV0dXJuIGlzRmxhdFxuICAgICAgICAgID8gY29weVN5bWJvbHNJbih2YWx1ZSwgYmFzZUFzc2lnbkluKHJlc3VsdCwgdmFsdWUpKVxuICAgICAgICAgIDogY29weVN5bWJvbHModmFsdWUsIGJhc2VBc3NpZ24ocmVzdWx0LCB2YWx1ZSkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIWNsb25lYWJsZVRhZ3NbdGFnXSkge1xuICAgICAgICByZXR1cm4gb2JqZWN0ID8gdmFsdWUgOiB7fTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdCA9IGluaXRDbG9uZUJ5VGFnKHZhbHVlLCB0YWcsIGlzRGVlcCk7XG4gICAgfVxuICB9XG4gIC8vIENoZWNrIGZvciBjaXJjdWxhciByZWZlcmVuY2VzIGFuZCByZXR1cm4gaXRzIGNvcnJlc3BvbmRpbmcgY2xvbmUuXG4gIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjayk7XG4gIHZhciBzdGFja2VkID0gc3RhY2suZ2V0KHZhbHVlKTtcbiAgaWYgKHN0YWNrZWQpIHtcbiAgICByZXR1cm4gc3RhY2tlZDtcbiAgfVxuICBzdGFjay5zZXQodmFsdWUsIHJlc3VsdCk7XG5cbiAgaWYgKGlzU2V0KHZhbHVlKSkge1xuICAgIHZhbHVlLmZvckVhY2goZnVuY3Rpb24oc3ViVmFsdWUpIHtcbiAgICAgIHJlc3VsdC5hZGQoYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdWJWYWx1ZSwgdmFsdWUsIHN0YWNrKSk7XG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoaXNNYXAodmFsdWUpKSB7XG4gICAgdmFsdWUuZm9yRWFjaChmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XG4gICAgICByZXN1bHQuc2V0KGtleSwgYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBrZXksIHZhbHVlLCBzdGFjaykpO1xuICAgIH0pO1xuICB9XG5cbiAgdmFyIGtleXNGdW5jID0gaXNGdWxsXG4gICAgPyAoaXNGbGF0ID8gZ2V0QWxsS2V5c0luIDogZ2V0QWxsS2V5cylcbiAgICA6IChpc0ZsYXQgPyBrZXlzSW4gOiBrZXlzKTtcblxuICB2YXIgcHJvcHMgPSBpc0FyciA/IHVuZGVmaW5lZCA6IGtleXNGdW5jKHZhbHVlKTtcbiAgYXJyYXlFYWNoKHByb3BzIHx8IHZhbHVlLCBmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XG4gICAgaWYgKHByb3BzKSB7XG4gICAgICBrZXkgPSBzdWJWYWx1ZTtcbiAgICAgIHN1YlZhbHVlID0gdmFsdWVba2V5XTtcbiAgICB9XG4gICAgLy8gUmVjdXJzaXZlbHkgcG9wdWxhdGUgY2xvbmUgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICBhc3NpZ25WYWx1ZShyZXN1bHQsIGtleSwgYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBrZXksIHZhbHVlLCBzdGFjaykpO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlQ2xvbmU7XG4iLCIvKipcbiAqIEdldHMgdGhlIGxhc3QgZWxlbWVudCBvZiBgYXJyYXlgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBBcnJheVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGxhc3QgZWxlbWVudCBvZiBgYXJyYXlgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmxhc3QoWzEsIDIsIDNdKTtcbiAqIC8vID0+IDNcbiAqL1xuZnVuY3Rpb24gbGFzdChhcnJheSkge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gIHJldHVybiBsZW5ndGggPyBhcnJheVtsZW5ndGggLSAxXSA6IHVuZGVmaW5lZDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsYXN0O1xuIiwiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zbGljZWAgd2l0aG91dCBhbiBpdGVyYXRlZSBjYWxsIGd1YXJkLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2xpY2UuXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBwb3NpdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbZW5kPWFycmF5Lmxlbmd0aF0gVGhlIGVuZCBwb3NpdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gYmFzZVNsaWNlKGFycmF5LCBzdGFydCwgZW5kKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGlmIChzdGFydCA8IDApIHtcbiAgICBzdGFydCA9IC1zdGFydCA+IGxlbmd0aCA/IDAgOiAobGVuZ3RoICsgc3RhcnQpO1xuICB9XG4gIGVuZCA9IGVuZCA+IGxlbmd0aCA/IGxlbmd0aCA6IGVuZDtcbiAgaWYgKGVuZCA8IDApIHtcbiAgICBlbmQgKz0gbGVuZ3RoO1xuICB9XG4gIGxlbmd0aCA9IHN0YXJ0ID4gZW5kID8gMCA6ICgoZW5kIC0gc3RhcnQpID4+PiAwKTtcbiAgc3RhcnQgPj4+PSAwO1xuXG4gIHZhciByZXN1bHQgPSBBcnJheShsZW5ndGgpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHJlc3VsdFtpbmRleF0gPSBhcnJheVtpbmRleCArIHN0YXJ0XTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VTbGljZTtcbiIsInZhciBiYXNlR2V0ID0gcmVxdWlyZSgnLi9fYmFzZUdldCcpLFxuICAgIGJhc2VTbGljZSA9IHJlcXVpcmUoJy4vX2Jhc2VTbGljZScpO1xuXG4vKipcbiAqIEdldHMgdGhlIHBhcmVudCB2YWx1ZSBhdCBgcGF0aGAgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7QXJyYXl9IHBhdGggVGhlIHBhdGggdG8gZ2V0IHRoZSBwYXJlbnQgdmFsdWUgb2YuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcGFyZW50IHZhbHVlLlxuICovXG5mdW5jdGlvbiBwYXJlbnQob2JqZWN0LCBwYXRoKSB7XG4gIHJldHVybiBwYXRoLmxlbmd0aCA8IDIgPyBvYmplY3QgOiBiYXNlR2V0KG9iamVjdCwgYmFzZVNsaWNlKHBhdGgsIDAsIC0xKSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyZW50O1xuIiwidmFyIGNhc3RQYXRoID0gcmVxdWlyZSgnLi9fY2FzdFBhdGgnKSxcbiAgICBsYXN0ID0gcmVxdWlyZSgnLi9sYXN0JyksXG4gICAgcGFyZW50ID0gcmVxdWlyZSgnLi9fcGFyZW50JyksXG4gICAgdG9LZXkgPSByZXF1aXJlKCcuL190b0tleScpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnVuc2V0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwcm9wZXJ0eSBwYXRoIHRvIHVuc2V0LlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBwcm9wZXJ0eSBpcyBkZWxldGVkLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VVbnNldChvYmplY3QsIHBhdGgpIHtcbiAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG4gIG9iamVjdCA9IHBhcmVudChvYmplY3QsIHBhdGgpO1xuICByZXR1cm4gb2JqZWN0ID09IG51bGwgfHwgZGVsZXRlIG9iamVjdFt0b0tleShsYXN0KHBhdGgpKV07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVVuc2V0O1xuIiwidmFyIGlzUGxhaW5PYmplY3QgPSByZXF1aXJlKCcuL2lzUGxhaW5PYmplY3QnKTtcblxuLyoqXG4gKiBVc2VkIGJ5IGBfLm9taXRgIHRvIGN1c3RvbWl6ZSBpdHMgYF8uY2xvbmVEZWVwYCB1c2UgdG8gb25seSBjbG9uZSBwbGFpblxuICogb2JqZWN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSB1bmNsb25lZCB2YWx1ZSBvciBgdW5kZWZpbmVkYCB0byBkZWZlciBjbG9uaW5nIHRvIGBfLmNsb25lRGVlcGAuXG4gKi9cbmZ1bmN0aW9uIGN1c3RvbU9taXRDbG9uZSh2YWx1ZSkge1xuICByZXR1cm4gaXNQbGFpbk9iamVjdCh2YWx1ZSkgPyB1bmRlZmluZWQgOiB2YWx1ZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjdXN0b21PbWl0Q2xvbmU7XG4iLCJ2YXIgU3ltYm9sID0gcmVxdWlyZSgnLi9fU3ltYm9sJyksXG4gICAgaXNBcmd1bWVudHMgPSByZXF1aXJlKCcuL2lzQXJndW1lbnRzJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4vaXNBcnJheScpO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBzcHJlYWRhYmxlU3ltYm9sID0gU3ltYm9sID8gU3ltYm9sLmlzQ29uY2F0U3ByZWFkYWJsZSA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIGZsYXR0ZW5hYmxlIGBhcmd1bWVudHNgIG9iamVjdCBvciBhcnJheS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBmbGF0dGVuYWJsZSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0ZsYXR0ZW5hYmxlKHZhbHVlKSB7XG4gIHJldHVybiBpc0FycmF5KHZhbHVlKSB8fCBpc0FyZ3VtZW50cyh2YWx1ZSkgfHxcbiAgICAhIShzcHJlYWRhYmxlU3ltYm9sICYmIHZhbHVlICYmIHZhbHVlW3NwcmVhZGFibGVTeW1ib2xdKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0ZsYXR0ZW5hYmxlO1xuIiwidmFyIGFycmF5UHVzaCA9IHJlcXVpcmUoJy4vX2FycmF5UHVzaCcpLFxuICAgIGlzRmxhdHRlbmFibGUgPSByZXF1aXJlKCcuL19pc0ZsYXR0ZW5hYmxlJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZmxhdHRlbmAgd2l0aCBzdXBwb3J0IGZvciByZXN0cmljdGluZyBmbGF0dGVuaW5nLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gZmxhdHRlbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBkZXB0aCBUaGUgbWF4aW11bSByZWN1cnNpb24gZGVwdGguXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtwcmVkaWNhdGU9aXNGbGF0dGVuYWJsZV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzU3RyaWN0XSBSZXN0cmljdCB0byB2YWx1ZXMgdGhhdCBwYXNzIGBwcmVkaWNhdGVgIGNoZWNrcy5cbiAqIEBwYXJhbSB7QXJyYXl9IFtyZXN1bHQ9W11dIFRoZSBpbml0aWFsIHJlc3VsdCB2YWx1ZS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZsYXR0ZW5lZCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gYmFzZUZsYXR0ZW4oYXJyYXksIGRlcHRoLCBwcmVkaWNhdGUsIGlzU3RyaWN0LCByZXN1bHQpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgcHJlZGljYXRlIHx8IChwcmVkaWNhdGUgPSBpc0ZsYXR0ZW5hYmxlKTtcbiAgcmVzdWx0IHx8IChyZXN1bHQgPSBbXSk7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF07XG4gICAgaWYgKGRlcHRoID4gMCAmJiBwcmVkaWNhdGUodmFsdWUpKSB7XG4gICAgICBpZiAoZGVwdGggPiAxKSB7XG4gICAgICAgIC8vIFJlY3Vyc2l2ZWx5IGZsYXR0ZW4gYXJyYXlzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgICAgIGJhc2VGbGF0dGVuKHZhbHVlLCBkZXB0aCAtIDEsIHByZWRpY2F0ZSwgaXNTdHJpY3QsIHJlc3VsdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhcnJheVB1c2gocmVzdWx0LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghaXNTdHJpY3QpIHtcbiAgICAgIHJlc3VsdFtyZXN1bHQubGVuZ3RoXSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VGbGF0dGVuO1xuIiwidmFyIGJhc2VGbGF0dGVuID0gcmVxdWlyZSgnLi9fYmFzZUZsYXR0ZW4nKTtcblxuLyoqXG4gKiBGbGF0dGVucyBgYXJyYXlgIGEgc2luZ2xlIGxldmVsIGRlZXAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEFycmF5XG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gZmxhdHRlbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZsYXR0ZW5lZCBhcnJheS5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5mbGF0dGVuKFsxLCBbMiwgWzMsIFs0XV0sIDVdXSk7XG4gKiAvLyA9PiBbMSwgMiwgWzMsIFs0XV0sIDVdXG4gKi9cbmZ1bmN0aW9uIGZsYXR0ZW4oYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICByZXR1cm4gbGVuZ3RoID8gYmFzZUZsYXR0ZW4oYXJyYXksIDEpIDogW107XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZmxhdHRlbjtcbiIsIi8qKlxuICogQSBmYXN0ZXIgYWx0ZXJuYXRpdmUgdG8gYEZ1bmN0aW9uI2FwcGx5YCwgdGhpcyBmdW5jdGlvbiBpbnZva2VzIGBmdW5jYFxuICogd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgYHRoaXNBcmdgIGFuZCB0aGUgYXJndW1lbnRzIG9mIGBhcmdzYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gaW52b2tlLlxuICogQHBhcmFtIHsqfSB0aGlzQXJnIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gKiBAcGFyYW0ge0FycmF5fSBhcmdzIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIGBmdW5jYCB3aXRoLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc3VsdCBvZiBgZnVuY2AuXG4gKi9cbmZ1bmN0aW9uIGFwcGx5KGZ1bmMsIHRoaXNBcmcsIGFyZ3MpIHtcbiAgc3dpdGNoIChhcmdzLmxlbmd0aCkge1xuICAgIGNhc2UgMDogcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnKTtcbiAgICBjYXNlIDE6IHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgYXJnc1swXSk7XG4gICAgY2FzZSAyOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0sIGFyZ3NbMV0pO1xuICAgIGNhc2UgMzogcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnLCBhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdKTtcbiAgfVxuICByZXR1cm4gZnVuYy5hcHBseSh0aGlzQXJnLCBhcmdzKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhcHBseTtcbiIsInZhciBhcHBseSA9IHJlcXVpcmUoJy4vX2FwcGx5Jyk7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVNYXggPSBNYXRoLm1heDtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VSZXN0YCB3aGljaCB0cmFuc2Zvcm1zIHRoZSByZXN0IGFycmF5LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhcHBseSBhIHJlc3QgcGFyYW1ldGVyIHRvLlxuICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD1mdW5jLmxlbmd0aC0xXSBUaGUgc3RhcnQgcG9zaXRpb24gb2YgdGhlIHJlc3QgcGFyYW1ldGVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gdHJhbnNmb3JtIFRoZSByZXN0IGFycmF5IHRyYW5zZm9ybS5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBvdmVyUmVzdChmdW5jLCBzdGFydCwgdHJhbnNmb3JtKSB7XG4gIHN0YXJ0ID0gbmF0aXZlTWF4KHN0YXJ0ID09PSB1bmRlZmluZWQgPyAoZnVuYy5sZW5ndGggLSAxKSA6IHN0YXJ0LCAwKTtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBhcmdzID0gYXJndW1lbnRzLFxuICAgICAgICBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBuYXRpdmVNYXgoYXJncy5sZW5ndGggLSBzdGFydCwgMCksXG4gICAgICAgIGFycmF5ID0gQXJyYXkobGVuZ3RoKTtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBhcnJheVtpbmRleF0gPSBhcmdzW3N0YXJ0ICsgaW5kZXhdO1xuICAgIH1cbiAgICBpbmRleCA9IC0xO1xuICAgIHZhciBvdGhlckFyZ3MgPSBBcnJheShzdGFydCArIDEpO1xuICAgIHdoaWxlICgrK2luZGV4IDwgc3RhcnQpIHtcbiAgICAgIG90aGVyQXJnc1tpbmRleF0gPSBhcmdzW2luZGV4XTtcbiAgICB9XG4gICAgb3RoZXJBcmdzW3N0YXJ0XSA9IHRyYW5zZm9ybShhcnJheSk7XG4gICAgcmV0dXJuIGFwcGx5KGZ1bmMsIHRoaXMsIG90aGVyQXJncyk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gb3ZlclJlc3Q7XG4iLCIvKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYHZhbHVlYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDIuNC4wXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcmV0dXJuIGZyb20gdGhlIG5ldyBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNvbnN0YW50IGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0cyA9IF8udGltZXMoMiwgXy5jb25zdGFudCh7ICdhJzogMSB9KSk7XG4gKlxuICogY29uc29sZS5sb2cob2JqZWN0cyk7XG4gKiAvLyA9PiBbeyAnYSc6IDEgfSwgeyAnYSc6IDEgfV1cbiAqXG4gKiBjb25zb2xlLmxvZyhvYmplY3RzWzBdID09PSBvYmplY3RzWzFdKTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gY29uc3RhbnQodmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjb25zdGFudDtcbiIsIi8qKlxuICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgZmlyc3QgYXJndW1lbnQgaXQgcmVjZWl2ZXMuXG4gKlxuICogQHN0YXRpY1xuICogQHNpbmNlIDAuMS4wXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IFV0aWxcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgQW55IHZhbHVlLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgYHZhbHVlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxIH07XG4gKlxuICogY29uc29sZS5sb2coXy5pZGVudGl0eShvYmplY3QpID09PSBvYmplY3QpO1xuICogLy8gPT4gdHJ1ZVxuICovXG5mdW5jdGlvbiBpZGVudGl0eSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWU7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaWRlbnRpdHk7XG4iLCJ2YXIgY29uc3RhbnQgPSByZXF1aXJlKCcuL2NvbnN0YW50JyksXG4gICAgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuL19kZWZpbmVQcm9wZXJ0eScpLFxuICAgIGlkZW50aXR5ID0gcmVxdWlyZSgnLi9pZGVudGl0eScpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBzZXRUb1N0cmluZ2Agd2l0aG91dCBzdXBwb3J0IGZvciBob3QgbG9vcCBzaG9ydGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gc3RyaW5nIFRoZSBgdG9TdHJpbmdgIHJlc3VsdC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgZnVuY2AuXG4gKi9cbnZhciBiYXNlU2V0VG9TdHJpbmcgPSAhZGVmaW5lUHJvcGVydHkgPyBpZGVudGl0eSA6IGZ1bmN0aW9uKGZ1bmMsIHN0cmluZykge1xuICByZXR1cm4gZGVmaW5lUHJvcGVydHkoZnVuYywgJ3RvU3RyaW5nJywge1xuICAgICdjb25maWd1cmFibGUnOiB0cnVlLFxuICAgICdlbnVtZXJhYmxlJzogZmFsc2UsXG4gICAgJ3ZhbHVlJzogY29uc3RhbnQoc3RyaW5nKSxcbiAgICAnd3JpdGFibGUnOiB0cnVlXG4gIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlU2V0VG9TdHJpbmc7XG4iLCIvKiogVXNlZCB0byBkZXRlY3QgaG90IGZ1bmN0aW9ucyBieSBudW1iZXIgb2YgY2FsbHMgd2l0aGluIGEgc3BhbiBvZiBtaWxsaXNlY29uZHMuICovXG52YXIgSE9UX0NPVU5UID0gODAwLFxuICAgIEhPVF9TUEFOID0gMTY7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVOb3cgPSBEYXRlLm5vdztcblxuLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCdsbCBzaG9ydCBvdXQgYW5kIGludm9rZSBgaWRlbnRpdHlgIGluc3RlYWRcbiAqIG9mIGBmdW5jYCB3aGVuIGl0J3MgY2FsbGVkIGBIT1RfQ09VTlRgIG9yIG1vcmUgdGltZXMgaW4gYEhPVF9TUEFOYFxuICogbWlsbGlzZWNvbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byByZXN0cmljdC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHNob3J0YWJsZSBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gc2hvcnRPdXQoZnVuYykge1xuICB2YXIgY291bnQgPSAwLFxuICAgICAgbGFzdENhbGxlZCA9IDA7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBzdGFtcCA9IG5hdGl2ZU5vdygpLFxuICAgICAgICByZW1haW5pbmcgPSBIT1RfU1BBTiAtIChzdGFtcCAtIGxhc3RDYWxsZWQpO1xuXG4gICAgbGFzdENhbGxlZCA9IHN0YW1wO1xuICAgIGlmIChyZW1haW5pbmcgPiAwKSB7XG4gICAgICBpZiAoKytjb3VudCA+PSBIT1RfQ09VTlQpIHtcbiAgICAgICAgcmV0dXJuIGFyZ3VtZW50c1swXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY291bnQgPSAwO1xuICAgIH1cbiAgICByZXR1cm4gZnVuYy5hcHBseSh1bmRlZmluZWQsIGFyZ3VtZW50cyk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hvcnRPdXQ7XG4iLCJ2YXIgYmFzZVNldFRvU3RyaW5nID0gcmVxdWlyZSgnLi9fYmFzZVNldFRvU3RyaW5nJyksXG4gICAgc2hvcnRPdXQgPSByZXF1aXJlKCcuL19zaG9ydE91dCcpO1xuXG4vKipcbiAqIFNldHMgdGhlIGB0b1N0cmluZ2AgbWV0aG9kIG9mIGBmdW5jYCB0byByZXR1cm4gYHN0cmluZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHN0cmluZyBUaGUgYHRvU3RyaW5nYCByZXN1bHQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGZ1bmNgLlxuICovXG52YXIgc2V0VG9TdHJpbmcgPSBzaG9ydE91dChiYXNlU2V0VG9TdHJpbmcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHNldFRvU3RyaW5nO1xuIiwidmFyIGZsYXR0ZW4gPSByZXF1aXJlKCcuL2ZsYXR0ZW4nKSxcbiAgICBvdmVyUmVzdCA9IHJlcXVpcmUoJy4vX292ZXJSZXN0JyksXG4gICAgc2V0VG9TdHJpbmcgPSByZXF1aXJlKCcuL19zZXRUb1N0cmluZycpO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZVJlc3RgIHdoaWNoIGZsYXR0ZW5zIHRoZSByZXN0IGFycmF5LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhcHBseSBhIHJlc3QgcGFyYW1ldGVyIHRvLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGZsYXRSZXN0KGZ1bmMpIHtcbiAgcmV0dXJuIHNldFRvU3RyaW5nKG92ZXJSZXN0KGZ1bmMsIHVuZGVmaW5lZCwgZmxhdHRlbiksIGZ1bmMgKyAnJyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZmxhdFJlc3Q7XG4iLCJ2YXIgYXJyYXlNYXAgPSByZXF1aXJlKCcuL19hcnJheU1hcCcpLFxuICAgIGJhc2VDbG9uZSA9IHJlcXVpcmUoJy4vX2Jhc2VDbG9uZScpLFxuICAgIGJhc2VVbnNldCA9IHJlcXVpcmUoJy4vX2Jhc2VVbnNldCcpLFxuICAgIGNhc3RQYXRoID0gcmVxdWlyZSgnLi9fY2FzdFBhdGgnKSxcbiAgICBjb3B5T2JqZWN0ID0gcmVxdWlyZSgnLi9fY29weU9iamVjdCcpLFxuICAgIGN1c3RvbU9taXRDbG9uZSA9IHJlcXVpcmUoJy4vX2N1c3RvbU9taXRDbG9uZScpLFxuICAgIGZsYXRSZXN0ID0gcmVxdWlyZSgnLi9fZmxhdFJlc3QnKSxcbiAgICBnZXRBbGxLZXlzSW4gPSByZXF1aXJlKCcuL19nZXRBbGxLZXlzSW4nKTtcblxuLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgY2xvbmluZy4gKi9cbnZhciBDTE9ORV9ERUVQX0ZMQUcgPSAxLFxuICAgIENMT05FX0ZMQVRfRkxBRyA9IDIsXG4gICAgQ0xPTkVfU1lNQk9MU19GTEFHID0gNDtcblxuLyoqXG4gKiBUaGUgb3Bwb3NpdGUgb2YgYF8ucGlja2A7IHRoaXMgbWV0aG9kIGNyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mIHRoZVxuICogb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0eSBwYXRocyBvZiBgb2JqZWN0YCB0aGF0IGFyZSBub3Qgb21pdHRlZC5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgY29uc2lkZXJhYmx5IHNsb3dlciB0aGFuIGBfLnBpY2tgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBzaW5jZSAwLjEuMFxuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXG4gKiBAcGFyYW0gey4uLihzdHJpbmd8c3RyaW5nW10pfSBbcGF0aHNdIFRoZSBwcm9wZXJ0eSBwYXRocyB0byBvbWl0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6ICcyJywgJ2MnOiAzIH07XG4gKlxuICogXy5vbWl0KG9iamVjdCwgWydhJywgJ2MnXSk7XG4gKiAvLyA9PiB7ICdiJzogJzInIH1cbiAqL1xudmFyIG9taXQgPSBmbGF0UmVzdChmdW5jdGlvbihvYmplY3QsIHBhdGhzKSB7XG4gIHZhciByZXN1bHQgPSB7fTtcbiAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICB2YXIgaXNEZWVwID0gZmFsc2U7XG4gIHBhdGhzID0gYXJyYXlNYXAocGF0aHMsIGZ1bmN0aW9uKHBhdGgpIHtcbiAgICBwYXRoID0gY2FzdFBhdGgocGF0aCwgb2JqZWN0KTtcbiAgICBpc0RlZXAgfHwgKGlzRGVlcCA9IHBhdGgubGVuZ3RoID4gMSk7XG4gICAgcmV0dXJuIHBhdGg7XG4gIH0pO1xuICBjb3B5T2JqZWN0KG9iamVjdCwgZ2V0QWxsS2V5c0luKG9iamVjdCksIHJlc3VsdCk7XG4gIGlmIChpc0RlZXApIHtcbiAgICByZXN1bHQgPSBiYXNlQ2xvbmUocmVzdWx0LCBDTE9ORV9ERUVQX0ZMQUcgfCBDTE9ORV9GTEFUX0ZMQUcgfCBDTE9ORV9TWU1CT0xTX0ZMQUcsIGN1c3RvbU9taXRDbG9uZSk7XG4gIH1cbiAgdmFyIGxlbmd0aCA9IHBhdGhzLmxlbmd0aDtcbiAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgYmFzZVVuc2V0KHJlc3VsdCwgcGF0aHNbbGVuZ3RoXSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IG9taXQ7XG4iLCJpbXBvcnQganNvbnBvaW50ZXIgZnJvbSAnanNvbnBvaW50ZXInO1xuaW1wb3J0IG9taXQgZnJvbSAnbG9kYXNoL29taXQnO1xuaW1wb3J0IHsgUkVGX0tFWSB9IGZyb20gJy4vY29uc3RhbnRzJztcbi8qKiBTcGxpdHMgb3V0IHRoZSB2YWx1ZSBhdCB0aGUgYGtleWAgaW4gYG9iamVjdGAgZnJvbSB0aGUgYG9iamVjdGAsIHJldHVybmluZyBhbiBhcnJheSB0aGF0IGNvbnRhaW5zIGluIHRoZSBmaXJzdFxuICogbG9jYXRpb24sIHRoZSBgb2JqZWN0YCBtaW51cyB0aGUgYGtleTogdmFsdWVgIGFuZCBpbiB0aGUgc2Vjb25kIGxvY2F0aW9uIHRoZSBgdmFsdWVgLlxuICpcbiAqIEBwYXJhbSBrZXkgLSBUaGUga2V5IGZyb20gdGhlIG9iamVjdCB0byBleHRyYWN0XG4gKiBAcGFyYW0gb2JqZWN0IC0gVGhlIG9iamVjdCBmcm9tIHdoaWNoIHRvIGV4dHJhY3QgdGhlIGVsZW1lbnRcbiAqIEByZXR1cm5zIC0gQW4gYXJyYXkgd2l0aCB0aGUgZmlyc3QgdmFsdWUgYmVpbmcgdGhlIG9iamVjdCBtaW51cyB0aGUgYGtleWAgZWxlbWVudCBhbmQgdGhlIHNlY29uZCBlbGVtZW50IGJlaW5nIHRoZVxuICogICAgICB2YWx1ZSBmcm9tIGBvYmplY3Rba2V5XWBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0S2V5RWxlbWVudEZyb21PYmplY3Qoa2V5LCBvYmplY3QpIHtcbiAgICBjb25zdCB2YWx1ZSA9IG9iamVjdFtrZXldO1xuICAgIGNvbnN0IHJlbWFpbmluZyA9IG9taXQob2JqZWN0LCBba2V5XSk7XG4gICAgcmV0dXJuIFtyZW1haW5pbmcsIHZhbHVlXTtcbn1cbi8qKiBHaXZlbiB0aGUgbmFtZSBvZiBhIGAkcmVmYCBmcm9tIHdpdGhpbiBhIHNjaGVtYSwgdXNpbmcgdGhlIGByb290U2NoZW1hYCwgcmVjdXJzaXZlbHkgbG9vayB1cCBhbmQgcmV0dXJuIHRoZVxuICogc3ViLXNjaGVtYSB1c2luZyB0aGUgcGF0aCBwcm92aWRlZCBieSB0aGF0IHJlZmVyZW5jZS4gSWYgYCNgIGlzIG5vdCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSByZWZlcmVuY2UsIHRoZSBwYXRoXG4gKiBkb2VzIG5vdCBleGlzdCBpbiB0aGUgc2NoZW1hLCBvciB0aGUgcmVmZXJlbmNlIHJlc29sdmVzIGNpcmN1bGFybHkgYmFjayB0byBpdHNlbGYsIHRoZW4gdGhyb3cgYW4gRXJyb3IuXG4gKiBPdGhlcndpc2UgcmV0dXJuIHRoZSBzdWItc2NoZW1hLiBBbHNvIGRlYWxzIHdpdGggbmVzdGVkIGAkcmVmYHMgaW4gdGhlIHN1Yi1zY2hlbWEuXG4gKlxuICogQHBhcmFtICRyZWYgLSBUaGUgcmVmIHN0cmluZyBmb3Igd2hpY2ggdGhlIHNjaGVtYSBkZWZpbml0aW9uIGlzIGRlc2lyZWRcbiAqIEBwYXJhbSBbcm9vdFNjaGVtYT17fV0gLSBUaGUgcm9vdCBzY2hlbWEgaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgZGVmaW5pdGlvblxuICogQHBhcmFtIHJlY3Vyc2VMaXN0IC0gTGlzdCBvZiAkcmVmcyBhbHJlYWR5IHJlc29sdmVkIHRvIHByZXZlbnQgcmVjdXJzaW9uXG4gKiBAcmV0dXJucyAtIFRoZSBzdWItc2NoZW1hIHdpdGhpbiB0aGUgYHJvb3RTY2hlbWFgIHdoaWNoIG1hdGNoZXMgdGhlIGAkcmVmYCBpZiBpdCBleGlzdHNcbiAqIEB0aHJvd3MgLSBFcnJvciBpbmRpY2F0aW5nIHRoYXQgbm8gc2NoZW1hIGZvciB0aGF0IHJlZmVyZW5jZSBjb3VsZCBiZSByZXNvbHZlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZFNjaGVtYURlZmluaXRpb25SZWN1cnNpdmUoJHJlZiwgcm9vdFNjaGVtYSA9IHt9LCByZWN1cnNlTGlzdCA9IFtdKSB7XG4gICAgY29uc3QgcmVmID0gJHJlZiB8fCAnJztcbiAgICBsZXQgZGVjb2RlZFJlZjtcbiAgICBpZiAocmVmLnN0YXJ0c1dpdGgoJyMnKSkge1xuICAgICAgICAvLyBEZWNvZGUgVVJJIGZyYWdtZW50IHJlcHJlc2VudGF0aW9uLlxuICAgICAgICBkZWNvZGVkUmVmID0gZGVjb2RlVVJJQ29tcG9uZW50KHJlZi5zdWJzdHJpbmcoMSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCBhIGRlZmluaXRpb24gZm9yICR7JHJlZn0uYCk7XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnQgPSBqc29ucG9pbnRlci5nZXQocm9vdFNjaGVtYSwgZGVjb2RlZFJlZik7XG4gICAgaWYgKGN1cnJlbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5kIGEgZGVmaW5pdGlvbiBmb3IgJHskcmVmfS5gKTtcbiAgICB9XG4gICAgY29uc3QgbmV4dFJlZiA9IGN1cnJlbnRbUkVGX0tFWV07XG4gICAgaWYgKG5leHRSZWYpIHtcbiAgICAgICAgLy8gQ2hlY2sgZm9yIGNpcmN1bGFyIHJlZmVyZW5jZXMuXG4gICAgICAgIGlmIChyZWN1cnNlTGlzdC5pbmNsdWRlcyhuZXh0UmVmKSkge1xuICAgICAgICAgICAgaWYgKHJlY3Vyc2VMaXN0Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRGVmaW5pdGlvbiBmb3IgJHskcmVmfSBpcyBhIGNpcmN1bGFyIHJlZmVyZW5jZWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0UmVmLCAuLi5yZXN0UmVmc10gPSByZWN1cnNlTGlzdDtcbiAgICAgICAgICAgIGNvbnN0IGNpcmN1bGFyUGF0aCA9IFsuLi5yZXN0UmVmcywgcmVmLCBmaXJzdFJlZl0uam9pbignIC0+ICcpO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBEZWZpbml0aW9uIGZvciAke2ZpcnN0UmVmfSBjb250YWlucyBhIGNpcmN1bGFyIHJlZmVyZW5jZSB0aHJvdWdoICR7Y2lyY3VsYXJQYXRofWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IFtyZW1haW5pbmcsIHRoZVJlZl0gPSBzcGxpdEtleUVsZW1lbnRGcm9tT2JqZWN0KFJFRl9LRVksIGN1cnJlbnQpO1xuICAgICAgICBjb25zdCBzdWJTY2hlbWEgPSBmaW5kU2NoZW1hRGVmaW5pdGlvblJlY3Vyc2l2ZSh0aGVSZWYsIHJvb3RTY2hlbWEsIFsuLi5yZWN1cnNlTGlzdCwgcmVmXSk7XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhyZW1haW5pbmcpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLnJlbWFpbmluZywgLi4uc3ViU2NoZW1hIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1YlNjaGVtYTtcbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnQ7XG59XG4vKiogR2l2ZW4gdGhlIG5hbWUgb2YgYSBgJHJlZmAgZnJvbSB3aXRoaW4gYSBzY2hlbWEsIHVzaW5nIHRoZSBgcm9vdFNjaGVtYWAsIGxvb2sgdXAgYW5kIHJldHVybiB0aGUgc3ViLXNjaGVtYSB1c2luZyB0aGVcbiAqIHBhdGggcHJvdmlkZWQgYnkgdGhhdCByZWZlcmVuY2UuIElmIGAjYCBpcyBub3QgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgcmVmZXJlbmNlLCB0aGUgcGF0aCBkb2VzIG5vdCBleGlzdCBpblxuICogdGhlIHNjaGVtYSwgb3IgdGhlIHJlZmVyZW5jZSByZXNvbHZlcyBjaXJjdWxhcmx5IGJhY2sgdG8gaXRzZWxmLCB0aGVuIHRocm93IGFuIEVycm9yLiBPdGhlcndpc2UgcmV0dXJuIHRoZVxuICogc3ViLXNjaGVtYS4gQWxzbyBkZWFscyB3aXRoIG5lc3RlZCBgJHJlZmBzIGluIHRoZSBzdWItc2NoZW1hLlxuICpcbiAqIEBwYXJhbSAkcmVmIC0gVGhlIHJlZiBzdHJpbmcgZm9yIHdoaWNoIHRoZSBzY2hlbWEgZGVmaW5pdGlvbiBpcyBkZXNpcmVkXG4gKiBAcGFyYW0gW3Jvb3RTY2hlbWE9e31dIC0gVGhlIHJvb3Qgc2NoZW1hIGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGRlZmluaXRpb25cbiAqIEByZXR1cm5zIC0gVGhlIHN1Yi1zY2hlbWEgd2l0aGluIHRoZSBgcm9vdFNjaGVtYWAgd2hpY2ggbWF0Y2hlcyB0aGUgYCRyZWZgIGlmIGl0IGV4aXN0c1xuICogQHRocm93cyAtIEVycm9yIGluZGljYXRpbmcgdGhhdCBubyBzY2hlbWEgZm9yIHRoYXQgcmVmZXJlbmNlIGNvdWxkIGJlIHJlc29sdmVkXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGZpbmRTY2hlbWFEZWZpbml0aW9uKCRyZWYsIHJvb3RTY2hlbWEgPSB7fSkge1xuICAgIGNvbnN0IHJlY3Vyc2VMaXN0ID0gW107XG4gICAgcmV0dXJuIGZpbmRTY2hlbWFEZWZpbml0aW9uUmVjdXJzaXZlKCRyZWYsIHJvb3RTY2hlbWEsIHJlY3Vyc2VMaXN0KTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZpbmRTY2hlbWFEZWZpbml0aW9uLmpzLm1hcCIsIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaGFzYCB3aXRob3V0IHN1cHBvcnQgZm9yIGRlZXAgcGF0aHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IGtleSBUaGUga2V5IHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlSGFzKG9iamVjdCwga2V5KSB7XG4gIHJldHVybiBvYmplY3QgIT0gbnVsbCAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSGFzO1xuIiwidmFyIGNhc3RQYXRoID0gcmVxdWlyZSgnLi9fY2FzdFBhdGgnKSxcbiAgICBpc0FyZ3VtZW50cyA9IHJlcXVpcmUoJy4vaXNBcmd1bWVudHMnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi9pc0FycmF5JyksXG4gICAgaXNJbmRleCA9IHJlcXVpcmUoJy4vX2lzSW5kZXgnKSxcbiAgICBpc0xlbmd0aCA9IHJlcXVpcmUoJy4vaXNMZW5ndGgnKSxcbiAgICB0b0tleSA9IHJlcXVpcmUoJy4vX3RvS2V5Jyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGBwYXRoYCBleGlzdHMgb24gYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIHRvIGNoZWNrLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaGFzRnVuYyBUaGUgZnVuY3Rpb24gdG8gY2hlY2sgcHJvcGVydGllcy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgcGF0aGAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGhhc1BhdGgob2JqZWN0LCBwYXRoLCBoYXNGdW5jKSB7XG4gIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuXG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gcGF0aC5sZW5ndGgsXG4gICAgICByZXN1bHQgPSBmYWxzZTtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBrZXkgPSB0b0tleShwYXRoW2luZGV4XSk7XG4gICAgaWYgKCEocmVzdWx0ID0gb2JqZWN0ICE9IG51bGwgJiYgaGFzRnVuYyhvYmplY3QsIGtleSkpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgb2JqZWN0ID0gb2JqZWN0W2tleV07XG4gIH1cbiAgaWYgKHJlc3VsdCB8fCArK2luZGV4ICE9IGxlbmd0aCkge1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgbGVuZ3RoID0gb2JqZWN0ID09IG51bGwgPyAwIDogb2JqZWN0Lmxlbmd0aDtcbiAgcmV0dXJuICEhbGVuZ3RoICYmIGlzTGVuZ3RoKGxlbmd0aCkgJiYgaXNJbmRleChrZXksIGxlbmd0aCkgJiZcbiAgICAoaXNBcnJheShvYmplY3QpIHx8IGlzQXJndW1lbnRzKG9iamVjdCkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGhhc1BhdGg7XG4iLCJ2YXIgYmFzZUhhcyA9IHJlcXVpcmUoJy4vX2Jhc2VIYXMnKSxcbiAgICBoYXNQYXRoID0gcmVxdWlyZSgnLi9faGFzUGF0aCcpO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgcGF0aGAgaXMgYSBkaXJlY3QgcHJvcGVydHkgb2YgYG9iamVjdGAuXG4gKlxuICogQHN0YXRpY1xuICogQHNpbmNlIDAuMS4wXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHBhdGhgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IHsgJ2InOiAyIH0gfTtcbiAqIHZhciBvdGhlciA9IF8uY3JlYXRlKHsgJ2EnOiBfLmNyZWF0ZSh7ICdiJzogMiB9KSB9KTtcbiAqXG4gKiBfLmhhcyhvYmplY3QsICdhJyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5oYXMob2JqZWN0LCAnYS5iJyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5oYXMob2JqZWN0LCBbJ2EnLCAnYiddKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmhhcyhvdGhlciwgJ2EnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGhhcyhvYmplY3QsIHBhdGgpIHtcbiAgcmV0dXJuIG9iamVjdCAhPSBudWxsICYmIGhhc1BhdGgob2JqZWN0LCBwYXRoLCBiYXNlSGFzKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBoYXM7XG4iLCJ2YXIgYmFzZUdldFRhZyA9IHJlcXVpcmUoJy4vX2Jhc2VHZXRUYWcnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXSc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBOdW1iZXJgIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gKlxuICogKipOb3RlOioqIFRvIGV4Y2x1ZGUgYEluZmluaXR5YCwgYC1JbmZpbml0eWAsIGFuZCBgTmFOYCwgd2hpY2ggYXJlXG4gKiBjbGFzc2lmaWVkIGFzIG51bWJlcnMsIHVzZSB0aGUgYF8uaXNGaW5pdGVgIG1ldGhvZC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG51bWJlciwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzTnVtYmVyKDMpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNOdW1iZXIoTnVtYmVyLk1JTl9WQUxVRSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc051bWJlcihJbmZpbml0eSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc051bWJlcignMycpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNOdW1iZXIodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJyB8fFxuICAgIChpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IG51bWJlclRhZyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNOdW1iZXI7XG4iLCJ2YXIgYmFzZUdldFRhZyA9IHJlcXVpcmUoJy4vX2Jhc2VHZXRUYWcnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi9pc0FycmF5JyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi9pc09iamVjdExpa2UnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3RyaW5nYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBzaW5jZSAwLjEuMFxuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc3RyaW5nLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTdHJpbmcoJ2FiYycpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNTdHJpbmcoMSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc1N0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdzdHJpbmcnIHx8XG4gICAgKCFpc0FycmF5KHZhbHVlKSAmJiBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IHN0cmluZ1RhZyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNTdHJpbmc7XG4iLCIvKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5yZWR1Y2VgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxuICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEBwYXJhbSB7Kn0gW2FjY3VtdWxhdG9yXSBUaGUgaW5pdGlhbCB2YWx1ZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2luaXRBY2N1bV0gU3BlY2lmeSB1c2luZyB0aGUgZmlyc3QgZWxlbWVudCBvZiBgYXJyYXlgIGFzXG4gKiAgdGhlIGluaXRpYWwgdmFsdWUuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgYWNjdW11bGF0ZWQgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGFycmF5UmVkdWNlKGFycmF5LCBpdGVyYXRlZSwgYWNjdW11bGF0b3IsIGluaXRBY2N1bSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuXG4gIGlmIChpbml0QWNjdW0gJiYgbGVuZ3RoKSB7XG4gICAgYWNjdW11bGF0b3IgPSBhcnJheVsrK2luZGV4XTtcbiAgfVxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGFjY3VtdWxhdG9yID0gaXRlcmF0ZWUoYWNjdW11bGF0b3IsIGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KTtcbiAgfVxuICByZXR1cm4gYWNjdW11bGF0b3I7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXJyYXlSZWR1Y2U7XG4iLCIvKipcbiAqIENyZWF0ZXMgYSBiYXNlIGZ1bmN0aW9uIGZvciBtZXRob2RzIGxpa2UgYF8uZm9ySW5gIGFuZCBgXy5mb3JPd25gLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGJhc2UgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VGb3IoZnJvbVJpZ2h0KSB7XG4gIHJldHVybiBmdW5jdGlvbihvYmplY3QsIGl0ZXJhdGVlLCBrZXlzRnVuYykge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBpdGVyYWJsZSA9IE9iamVjdChvYmplY3QpLFxuICAgICAgICBwcm9wcyA9IGtleXNGdW5jKG9iamVjdCksXG4gICAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aDtcblxuICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgdmFyIGtleSA9IHByb3BzW2Zyb21SaWdodCA/IGxlbmd0aCA6ICsraW5kZXhdO1xuICAgICAgaWYgKGl0ZXJhdGVlKGl0ZXJhYmxlW2tleV0sIGtleSwgaXRlcmFibGUpID09PSBmYWxzZSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVCYXNlRm9yO1xuIiwidmFyIGNyZWF0ZUJhc2VGb3IgPSByZXF1aXJlKCcuL19jcmVhdGVCYXNlRm9yJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGJhc2VGb3JPd25gIHdoaWNoIGl0ZXJhdGVzIG92ZXIgYG9iamVjdGBcbiAqIHByb3BlcnRpZXMgcmV0dXJuZWQgYnkgYGtleXNGdW5jYCBhbmQgaW52b2tlcyBgaXRlcmF0ZWVgIGZvciBlYWNoIHByb3BlcnR5LlxuICogSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvbiBlYXJseSBieSBleHBsaWNpdGx5IHJldHVybmluZyBgZmFsc2VgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGtleXNGdW5jIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIGtleXMgb2YgYG9iamVjdGAuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG52YXIgYmFzZUZvciA9IGNyZWF0ZUJhc2VGb3IoKTtcblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlRm9yO1xuIiwidmFyIGJhc2VGb3IgPSByZXF1aXJlKCcuL19iYXNlRm9yJyksXG4gICAga2V5cyA9IHJlcXVpcmUoJy4va2V5cycpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZvck93bmAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VGb3JPd24ob2JqZWN0LCBpdGVyYXRlZSkge1xuICByZXR1cm4gb2JqZWN0ICYmIGJhc2VGb3Iob2JqZWN0LCBpdGVyYXRlZSwga2V5cyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUZvck93bjtcbiIsInZhciBpc0FycmF5TGlrZSA9IHJlcXVpcmUoJy4vaXNBcnJheUxpa2UnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgYGJhc2VFYWNoYCBvciBgYmFzZUVhY2hSaWdodGAgZnVuY3Rpb24uXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGVhY2hGdW5jIFRoZSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgYSBjb2xsZWN0aW9uLlxuICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBiYXNlIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBjcmVhdGVCYXNlRWFjaChlYWNoRnVuYywgZnJvbVJpZ2h0KSB7XG4gIHJldHVybiBmdW5jdGlvbihjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xuICAgIGlmIChjb2xsZWN0aW9uID09IG51bGwpIHtcbiAgICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICAgIH1cbiAgICBpZiAoIWlzQXJyYXlMaWtlKGNvbGxlY3Rpb24pKSB7XG4gICAgICByZXR1cm4gZWFjaEZ1bmMoY29sbGVjdGlvbiwgaXRlcmF0ZWUpO1xuICAgIH1cbiAgICB2YXIgbGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGgsXG4gICAgICAgIGluZGV4ID0gZnJvbVJpZ2h0ID8gbGVuZ3RoIDogLTEsXG4gICAgICAgIGl0ZXJhYmxlID0gT2JqZWN0KGNvbGxlY3Rpb24pO1xuXG4gICAgd2hpbGUgKChmcm9tUmlnaHQgPyBpbmRleC0tIDogKytpbmRleCA8IGxlbmd0aCkpIHtcbiAgICAgIGlmIChpdGVyYXRlZShpdGVyYWJsZVtpbmRleF0sIGluZGV4LCBpdGVyYWJsZSkgPT09IGZhbHNlKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVCYXNlRWFjaDtcbiIsInZhciBiYXNlRm9yT3duID0gcmVxdWlyZSgnLi9fYmFzZUZvck93bicpLFxuICAgIGNyZWF0ZUJhc2VFYWNoID0gcmVxdWlyZSgnLi9fY3JlYXRlQmFzZUVhY2gnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5mb3JFYWNoYCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl8T2JqZWN0fSBSZXR1cm5zIGBjb2xsZWN0aW9uYC5cbiAqL1xudmFyIGJhc2VFYWNoID0gY3JlYXRlQmFzZUVhY2goYmFzZUZvck93bik7XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUVhY2g7XG4iLCJ2YXIgU3RhY2sgPSByZXF1aXJlKCcuL19TdGFjaycpLFxuICAgIGJhc2VJc0VxdWFsID0gcmVxdWlyZSgnLi9fYmFzZUlzRXF1YWwnKTtcblxuLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgdmFsdWUgY29tcGFyaXNvbnMuICovXG52YXIgQ09NUEFSRV9QQVJUSUFMX0ZMQUcgPSAxLFxuICAgIENPTVBBUkVfVU5PUkRFUkVEX0ZMQUcgPSAyO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTWF0Y2hgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgdmFsdWVzIHRvIG1hdGNoLlxuICogQHBhcmFtIHtBcnJheX0gbWF0Y2hEYXRhIFRoZSBwcm9wZXJ0eSBuYW1lcywgdmFsdWVzLCBhbmQgY29tcGFyZSBmbGFncyB0byBtYXRjaC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBvYmplY3RgIGlzIGEgbWF0Y2gsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzTWF0Y2gob2JqZWN0LCBzb3VyY2UsIG1hdGNoRGF0YSwgY3VzdG9taXplcikge1xuICB2YXIgaW5kZXggPSBtYXRjaERhdGEubGVuZ3RoLFxuICAgICAgbGVuZ3RoID0gaW5kZXgsXG4gICAgICBub0N1c3RvbWl6ZXIgPSAhY3VzdG9taXplcjtcblxuICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICByZXR1cm4gIWxlbmd0aDtcbiAgfVxuICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcbiAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICB2YXIgZGF0YSA9IG1hdGNoRGF0YVtpbmRleF07XG4gICAgaWYgKChub0N1c3RvbWl6ZXIgJiYgZGF0YVsyXSlcbiAgICAgICAgICA/IGRhdGFbMV0gIT09IG9iamVjdFtkYXRhWzBdXVxuICAgICAgICAgIDogIShkYXRhWzBdIGluIG9iamVjdClcbiAgICAgICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgZGF0YSA9IG1hdGNoRGF0YVtpbmRleF07XG4gICAgdmFyIGtleSA9IGRhdGFbMF0sXG4gICAgICAgIG9ialZhbHVlID0gb2JqZWN0W2tleV0sXG4gICAgICAgIHNyY1ZhbHVlID0gZGF0YVsxXTtcblxuICAgIGlmIChub0N1c3RvbWl6ZXIgJiYgZGF0YVsyXSkge1xuICAgICAgaWYgKG9ialZhbHVlID09PSB1bmRlZmluZWQgJiYgIShrZXkgaW4gb2JqZWN0KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBzdGFjayA9IG5ldyBTdGFjaztcbiAgICAgIGlmIChjdXN0b21pemVyKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBjdXN0b21pemVyKG9ialZhbHVlLCBzcmNWYWx1ZSwga2V5LCBvYmplY3QsIHNvdXJjZSwgc3RhY2spO1xuICAgICAgfVxuICAgICAgaWYgKCEocmVzdWx0ID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gYmFzZUlzRXF1YWwoc3JjVmFsdWUsIG9ialZhbHVlLCBDT01QQVJFX1BBUlRJQUxfRkxBRyB8IENPTVBBUkVfVU5PUkRFUkVEX0ZMQUcsIGN1c3RvbWl6ZXIsIHN0YWNrKVxuICAgICAgICAgICAgOiByZXN1bHRcbiAgICAgICAgICApKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUlzTWF0Y2g7XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzT2JqZWN0Jyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgc3VpdGFibGUgZm9yIHN0cmljdCBlcXVhbGl0eSBjb21wYXJpc29ucywgaS5lLiBgPT09YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpZiBzdWl0YWJsZSBmb3Igc3RyaWN0XG4gKiAgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNTdHJpY3RDb21wYXJhYmxlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gdmFsdWUgJiYgIWlzT2JqZWN0KHZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc1N0cmljdENvbXBhcmFibGU7XG4iLCJ2YXIgaXNTdHJpY3RDb21wYXJhYmxlID0gcmVxdWlyZSgnLi9faXNTdHJpY3RDb21wYXJhYmxlJyksXG4gICAga2V5cyA9IHJlcXVpcmUoJy4va2V5cycpO1xuXG4vKipcbiAqIEdldHMgdGhlIHByb3BlcnR5IG5hbWVzLCB2YWx1ZXMsIGFuZCBjb21wYXJlIGZsYWdzIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG1hdGNoIGRhdGEgb2YgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGdldE1hdGNoRGF0YShvYmplY3QpIHtcbiAgdmFyIHJlc3VsdCA9IGtleXMob2JqZWN0KSxcbiAgICAgIGxlbmd0aCA9IHJlc3VsdC5sZW5ndGg7XG5cbiAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgdmFyIGtleSA9IHJlc3VsdFtsZW5ndGhdLFxuICAgICAgICB2YWx1ZSA9IG9iamVjdFtrZXldO1xuXG4gICAgcmVzdWx0W2xlbmd0aF0gPSBba2V5LCB2YWx1ZSwgaXNTdHJpY3RDb21wYXJhYmxlKHZhbHVlKV07XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBnZXRNYXRjaERhdGE7XG4iLCIvKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgbWF0Y2hlc1Byb3BlcnR5YCBmb3Igc291cmNlIHZhbHVlcyBzdWl0YWJsZVxuICogZm9yIHN0cmljdCBlcXVhbGl0eSBjb21wYXJpc29ucywgaS5lLiBgPT09YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcGFyYW0geyp9IHNyY1ZhbHVlIFRoZSB2YWx1ZSB0byBtYXRjaC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHNwZWMgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIG1hdGNoZXNTdHJpY3RDb21wYXJhYmxlKGtleSwgc3JjVmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gb2JqZWN0W2tleV0gPT09IHNyY1ZhbHVlICYmXG4gICAgICAoc3JjVmFsdWUgIT09IHVuZGVmaW5lZCB8fCAoa2V5IGluIE9iamVjdChvYmplY3QpKSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWF0Y2hlc1N0cmljdENvbXBhcmFibGU7XG4iLCJ2YXIgYmFzZUlzTWF0Y2ggPSByZXF1aXJlKCcuL19iYXNlSXNNYXRjaCcpLFxuICAgIGdldE1hdGNoRGF0YSA9IHJlcXVpcmUoJy4vX2dldE1hdGNoRGF0YScpLFxuICAgIG1hdGNoZXNTdHJpY3RDb21wYXJhYmxlID0gcmVxdWlyZSgnLi9fbWF0Y2hlc1N0cmljdENvbXBhcmFibGUnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5tYXRjaGVzYCB3aGljaCBkb2Vzbid0IGNsb25lIGBzb3VyY2VgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgdmFsdWVzIHRvIG1hdGNoLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgc3BlYyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gYmFzZU1hdGNoZXMoc291cmNlKSB7XG4gIHZhciBtYXRjaERhdGEgPSBnZXRNYXRjaERhdGEoc291cmNlKTtcbiAgaWYgKG1hdGNoRGF0YS5sZW5ndGggPT0gMSAmJiBtYXRjaERhdGFbMF1bMl0pIHtcbiAgICByZXR1cm4gbWF0Y2hlc1N0cmljdENvbXBhcmFibGUobWF0Y2hEYXRhWzBdWzBdLCBtYXRjaERhdGFbMF1bMV0pO1xuICB9XG4gIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICByZXR1cm4gb2JqZWN0ID09PSBzb3VyY2UgfHwgYmFzZUlzTWF0Y2gob2JqZWN0LCBzb3VyY2UsIG1hdGNoRGF0YSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZU1hdGNoZXM7XG4iLCIvKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmhhc0luYCB3aXRob3V0IHN1cHBvcnQgZm9yIGRlZXAgcGF0aHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IGtleSBUaGUga2V5IHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlSGFzSW4ob2JqZWN0LCBrZXkpIHtcbiAgcmV0dXJuIG9iamVjdCAhPSBudWxsICYmIGtleSBpbiBPYmplY3Qob2JqZWN0KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSGFzSW47XG4iLCJ2YXIgYmFzZUhhc0luID0gcmVxdWlyZSgnLi9fYmFzZUhhc0luJyksXG4gICAgaGFzUGF0aCA9IHJlcXVpcmUoJy4vX2hhc1BhdGgnKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHBhdGhgIGlzIGEgZGlyZWN0IG9yIGluaGVyaXRlZCBwcm9wZXJ0eSBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgcGF0aGAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3QgPSBfLmNyZWF0ZSh7ICdhJzogXy5jcmVhdGUoeyAnYic6IDIgfSkgfSk7XG4gKlxuICogXy5oYXNJbihvYmplY3QsICdhJyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5oYXNJbihvYmplY3QsICdhLmInKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmhhc0luKG9iamVjdCwgWydhJywgJ2InXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5oYXNJbihvYmplY3QsICdiJyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBoYXNJbihvYmplY3QsIHBhdGgpIHtcbiAgcmV0dXJuIG9iamVjdCAhPSBudWxsICYmIGhhc1BhdGgob2JqZWN0LCBwYXRoLCBiYXNlSGFzSW4pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGhhc0luO1xuIiwidmFyIGJhc2VJc0VxdWFsID0gcmVxdWlyZSgnLi9fYmFzZUlzRXF1YWwnKSxcbiAgICBnZXQgPSByZXF1aXJlKCcuL2dldCcpLFxuICAgIGhhc0luID0gcmVxdWlyZSgnLi9oYXNJbicpLFxuICAgIGlzS2V5ID0gcmVxdWlyZSgnLi9faXNLZXknKSxcbiAgICBpc1N0cmljdENvbXBhcmFibGUgPSByZXF1aXJlKCcuL19pc1N0cmljdENvbXBhcmFibGUnKSxcbiAgICBtYXRjaGVzU3RyaWN0Q29tcGFyYWJsZSA9IHJlcXVpcmUoJy4vX21hdGNoZXNTdHJpY3RDb21wYXJhYmxlJyksXG4gICAgdG9LZXkgPSByZXF1aXJlKCcuL190b0tleScpO1xuXG4vKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciB2YWx1ZSBjb21wYXJpc29ucy4gKi9cbnZhciBDT01QQVJFX1BBUlRJQUxfRkxBRyA9IDEsXG4gICAgQ09NUEFSRV9VTk9SREVSRURfRkxBRyA9IDI7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWF0Y2hlc1Byb3BlcnR5YCB3aGljaCBkb2Vzbid0IGNsb25lIGBzcmNWYWx1ZWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcGFyYW0geyp9IHNyY1ZhbHVlIFRoZSB2YWx1ZSB0byBtYXRjaC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHNwZWMgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGJhc2VNYXRjaGVzUHJvcGVydHkocGF0aCwgc3JjVmFsdWUpIHtcbiAgaWYgKGlzS2V5KHBhdGgpICYmIGlzU3RyaWN0Q29tcGFyYWJsZShzcmNWYWx1ZSkpIHtcbiAgICByZXR1cm4gbWF0Y2hlc1N0cmljdENvbXBhcmFibGUodG9LZXkocGF0aCksIHNyY1ZhbHVlKTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgdmFyIG9ialZhbHVlID0gZ2V0KG9iamVjdCwgcGF0aCk7XG4gICAgcmV0dXJuIChvYmpWYWx1ZSA9PT0gdW5kZWZpbmVkICYmIG9ialZhbHVlID09PSBzcmNWYWx1ZSlcbiAgICAgID8gaGFzSW4ob2JqZWN0LCBwYXRoKVxuICAgICAgOiBiYXNlSXNFcXVhbChzcmNWYWx1ZSwgb2JqVmFsdWUsIENPTVBBUkVfUEFSVElBTF9GTEFHIHwgQ09NUEFSRV9VTk9SREVSRURfRkxBRyk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZU1hdGNoZXNQcm9wZXJ0eTtcbiIsIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHJvcGVydHlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVlcCBwYXRocy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhY2Nlc3NvciBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gYmFzZVByb3BlcnR5KGtleSkge1xuICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogb2JqZWN0W2tleV07XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVByb3BlcnR5O1xuIiwidmFyIGJhc2VHZXQgPSByZXF1aXJlKCcuL19iYXNlR2V0Jyk7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlUHJvcGVydHlgIHdoaWNoIHN1cHBvcnRzIGRlZXAgcGF0aHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhY2Nlc3NvciBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gYmFzZVByb3BlcnR5RGVlcChwYXRoKSB7XG4gIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICByZXR1cm4gYmFzZUdldChvYmplY3QsIHBhdGgpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VQcm9wZXJ0eURlZXA7XG4iLCJ2YXIgYmFzZVByb3BlcnR5ID0gcmVxdWlyZSgnLi9fYmFzZVByb3BlcnR5JyksXG4gICAgYmFzZVByb3BlcnR5RGVlcCA9IHJlcXVpcmUoJy4vX2Jhc2VQcm9wZXJ0eURlZXAnKSxcbiAgICBpc0tleSA9IHJlcXVpcmUoJy4vX2lzS2V5JyksXG4gICAgdG9LZXkgPSByZXF1aXJlKCcuL190b0tleScpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIHZhbHVlIGF0IGBwYXRoYCBvZiBhIGdpdmVuIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDIuNC4wXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFjY2Vzc29yIGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0cyA9IFtcbiAqICAgeyAnYSc6IHsgJ2InOiAyIH0gfSxcbiAqICAgeyAnYSc6IHsgJ2InOiAxIH0gfVxuICogXTtcbiAqXG4gKiBfLm1hcChvYmplY3RzLCBfLnByb3BlcnR5KCdhLmInKSk7XG4gKiAvLyA9PiBbMiwgMV1cbiAqXG4gKiBfLm1hcChfLnNvcnRCeShvYmplY3RzLCBfLnByb3BlcnR5KFsnYScsICdiJ10pKSwgJ2EuYicpO1xuICogLy8gPT4gWzEsIDJdXG4gKi9cbmZ1bmN0aW9uIHByb3BlcnR5KHBhdGgpIHtcbiAgcmV0dXJuIGlzS2V5KHBhdGgpID8gYmFzZVByb3BlcnR5KHRvS2V5KHBhdGgpKSA6IGJhc2VQcm9wZXJ0eURlZXAocGF0aCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcHJvcGVydHk7XG4iLCJ2YXIgYmFzZU1hdGNoZXMgPSByZXF1aXJlKCcuL19iYXNlTWF0Y2hlcycpLFxuICAgIGJhc2VNYXRjaGVzUHJvcGVydHkgPSByZXF1aXJlKCcuL19iYXNlTWF0Y2hlc1Byb3BlcnR5JyksXG4gICAgaWRlbnRpdHkgPSByZXF1aXJlKCcuL2lkZW50aXR5JyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4vaXNBcnJheScpLFxuICAgIHByb3BlcnR5ID0gcmVxdWlyZSgnLi9wcm9wZXJ0eScpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLml0ZXJhdGVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSBbdmFsdWU9Xy5pZGVudGl0eV0gVGhlIHZhbHVlIHRvIGNvbnZlcnQgdG8gYW4gaXRlcmF0ZWUuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIGl0ZXJhdGVlLlxuICovXG5mdW5jdGlvbiBiYXNlSXRlcmF0ZWUodmFsdWUpIHtcbiAgLy8gRG9uJ3Qgc3RvcmUgdGhlIGB0eXBlb2ZgIHJlc3VsdCBpbiBhIHZhcmlhYmxlIHRvIGF2b2lkIGEgSklUIGJ1ZyBpbiBTYWZhcmkgOS5cbiAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTYwMzQgZm9yIG1vcmUgZGV0YWlscy5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGlkZW50aXR5O1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gaXNBcnJheSh2YWx1ZSlcbiAgICAgID8gYmFzZU1hdGNoZXNQcm9wZXJ0eSh2YWx1ZVswXSwgdmFsdWVbMV0pXG4gICAgICA6IGJhc2VNYXRjaGVzKHZhbHVlKTtcbiAgfVxuICByZXR1cm4gcHJvcGVydHkodmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VJdGVyYXRlZTtcbiIsIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucmVkdWNlYCBhbmQgYF8ucmVkdWNlUmlnaHRgLCB3aXRob3V0IHN1cHBvcnRcbiAqIGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLCB3aGljaCBpdGVyYXRlcyBvdmVyIGBjb2xsZWN0aW9uYCB1c2luZyBgZWFjaEZ1bmNgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHBhcmFtIHsqfSBhY2N1bXVsYXRvciBUaGUgaW5pdGlhbCB2YWx1ZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5pdEFjY3VtIFNwZWNpZnkgdXNpbmcgdGhlIGZpcnN0IG9yIGxhc3QgZWxlbWVudCBvZlxuICogIGBjb2xsZWN0aW9uYCBhcyB0aGUgaW5pdGlhbCB2YWx1ZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGVhY2hGdW5jIFRoZSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgYGNvbGxlY3Rpb25gLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGFjY3VtdWxhdGVkIHZhbHVlLlxuICovXG5mdW5jdGlvbiBiYXNlUmVkdWNlKGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCBhY2N1bXVsYXRvciwgaW5pdEFjY3VtLCBlYWNoRnVuYykge1xuICBlYWNoRnVuYyhjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pIHtcbiAgICBhY2N1bXVsYXRvciA9IGluaXRBY2N1bVxuICAgICAgPyAoaW5pdEFjY3VtID0gZmFsc2UsIHZhbHVlKVxuICAgICAgOiBpdGVyYXRlZShhY2N1bXVsYXRvciwgdmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKTtcbiAgfSk7XG4gIHJldHVybiBhY2N1bXVsYXRvcjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlUmVkdWNlO1xuIiwidmFyIGFycmF5UmVkdWNlID0gcmVxdWlyZSgnLi9fYXJyYXlSZWR1Y2UnKSxcbiAgICBiYXNlRWFjaCA9IHJlcXVpcmUoJy4vX2Jhc2VFYWNoJyksXG4gICAgYmFzZUl0ZXJhdGVlID0gcmVxdWlyZSgnLi9fYmFzZUl0ZXJhdGVlJyksXG4gICAgYmFzZVJlZHVjZSA9IHJlcXVpcmUoJy4vX2Jhc2VSZWR1Y2UnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi9pc0FycmF5Jyk7XG5cbi8qKlxuICogUmVkdWNlcyBgY29sbGVjdGlvbmAgdG8gYSB2YWx1ZSB3aGljaCBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0IG9mIHJ1bm5pbmdcbiAqIGVhY2ggZWxlbWVudCBpbiBgY29sbGVjdGlvbmAgdGhydSBgaXRlcmF0ZWVgLCB3aGVyZSBlYWNoIHN1Y2Nlc3NpdmVcbiAqIGludm9jYXRpb24gaXMgc3VwcGxpZWQgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgcHJldmlvdXMuIElmIGBhY2N1bXVsYXRvcmBcbiAqIGlzIG5vdCBnaXZlbiwgdGhlIGZpcnN0IGVsZW1lbnQgb2YgYGNvbGxlY3Rpb25gIGlzIHVzZWQgYXMgdGhlIGluaXRpYWxcbiAqIHZhbHVlLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIGZvdXIgYXJndW1lbnRzOlxuICogKGFjY3VtdWxhdG9yLCB2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAqXG4gKiBNYW55IGxvZGFzaCBtZXRob2RzIGFyZSBndWFyZGVkIHRvIHdvcmsgYXMgaXRlcmF0ZWVzIGZvciBtZXRob2RzIGxpa2VcbiAqIGBfLnJlZHVjZWAsIGBfLnJlZHVjZVJpZ2h0YCwgYW5kIGBfLnRyYW5zZm9ybWAuXG4gKlxuICogVGhlIGd1YXJkZWQgbWV0aG9kcyBhcmU6XG4gKiBgYXNzaWduYCwgYGRlZmF1bHRzYCwgYGRlZmF1bHRzRGVlcGAsIGBpbmNsdWRlc2AsIGBtZXJnZWAsIGBvcmRlckJ5YCxcbiAqIGFuZCBgc29ydEJ5YFxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEBwYXJhbSB7Kn0gW2FjY3VtdWxhdG9yXSBUaGUgaW5pdGlhbCB2YWx1ZS5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAqIEBzZWUgXy5yZWR1Y2VSaWdodFxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnJlZHVjZShbMSwgMl0sIGZ1bmN0aW9uKHN1bSwgbikge1xuICogICByZXR1cm4gc3VtICsgbjtcbiAqIH0sIDApO1xuICogLy8gPT4gM1xuICpcbiAqIF8ucmVkdWNlKHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMSB9LCBmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcbiAqICAgKHJlc3VsdFt2YWx1ZV0gfHwgKHJlc3VsdFt2YWx1ZV0gPSBbXSkpLnB1c2goa2V5KTtcbiAqICAgcmV0dXJuIHJlc3VsdDtcbiAqIH0sIHt9KTtcbiAqIC8vID0+IHsgJzEnOiBbJ2EnLCAnYyddLCAnMic6IFsnYiddIH0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAqL1xuZnVuY3Rpb24gcmVkdWNlKGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCBhY2N1bXVsYXRvcikge1xuICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheVJlZHVjZSA6IGJhc2VSZWR1Y2UsXG4gICAgICBpbml0QWNjdW0gPSBhcmd1bWVudHMubGVuZ3RoIDwgMztcblxuICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBiYXNlSXRlcmF0ZWUoaXRlcmF0ZWUsIDQpLCBhY2N1bXVsYXRvciwgaW5pdEFjY3VtLCBiYXNlRWFjaCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcmVkdWNlO1xuIiwidmFyIGlkZW50aXR5ID0gcmVxdWlyZSgnLi9pZGVudGl0eScpO1xuXG4vKipcbiAqIENhc3RzIGB2YWx1ZWAgdG8gYGlkZW50aXR5YCBpZiBpdCdzIG5vdCBhIGZ1bmN0aW9uLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGNhc3QgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNhc3RGdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdmdW5jdGlvbicgPyB2YWx1ZSA6IGlkZW50aXR5O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNhc3RGdW5jdGlvbjtcbiIsIi8qKiBVc2VkIHRvIG1hdGNoIGEgc2luZ2xlIHdoaXRlc3BhY2UgY2hhcmFjdGVyLiAqL1xudmFyIHJlV2hpdGVzcGFjZSA9IC9cXHMvO1xuXG4vKipcbiAqIFVzZWQgYnkgYF8udHJpbWAgYW5kIGBfLnRyaW1FbmRgIHRvIGdldCB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgbm9uLXdoaXRlc3BhY2VcbiAqIGNoYXJhY3RlciBvZiBgc3RyaW5nYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbGFzdCBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIuXG4gKi9cbmZ1bmN0aW9uIHRyaW1tZWRFbmRJbmRleChzdHJpbmcpIHtcbiAgdmFyIGluZGV4ID0gc3RyaW5nLmxlbmd0aDtcblxuICB3aGlsZSAoaW5kZXgtLSAmJiByZVdoaXRlc3BhY2UudGVzdChzdHJpbmcuY2hhckF0KGluZGV4KSkpIHt9XG4gIHJldHVybiBpbmRleDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0cmltbWVkRW5kSW5kZXg7XG4iLCJ2YXIgdHJpbW1lZEVuZEluZGV4ID0gcmVxdWlyZSgnLi9fdHJpbW1lZEVuZEluZGV4Jyk7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIGxlYWRpbmcgd2hpdGVzcGFjZS4gKi9cbnZhciByZVRyaW1TdGFydCA9IC9eXFxzKy87XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udHJpbWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byB0cmltLlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdHJpbW1lZCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIGJhc2VUcmltKHN0cmluZykge1xuICByZXR1cm4gc3RyaW5nXG4gICAgPyBzdHJpbmcuc2xpY2UoMCwgdHJpbW1lZEVuZEluZGV4KHN0cmluZykgKyAxKS5yZXBsYWNlKHJlVHJpbVN0YXJ0LCAnJylcbiAgICA6IHN0cmluZztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlVHJpbTtcbiIsInZhciBiYXNlVHJpbSA9IHJlcXVpcmUoJy4vX2Jhc2VUcmltJyksXG4gICAgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzT2JqZWN0JyksXG4gICAgaXNTeW1ib2wgPSByZXF1aXJlKCcuL2lzU3ltYm9sJyk7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIE5BTiA9IDAgLyAwO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgYmFkIHNpZ25lZCBoZXhhZGVjaW1hbCBzdHJpbmcgdmFsdWVzLiAqL1xudmFyIHJlSXNCYWRIZXggPSAvXlstK10weFswLTlhLWZdKyQvaTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGJpbmFyeSBzdHJpbmcgdmFsdWVzLiAqL1xudmFyIHJlSXNCaW5hcnkgPSAvXjBiWzAxXSskL2k7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBvY3RhbCBzdHJpbmcgdmFsdWVzLiAqL1xudmFyIHJlSXNPY3RhbCA9IC9eMG9bMC03XSskL2k7XG5cbi8qKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB3aXRob3V0IGEgZGVwZW5kZW5jeSBvbiBgcm9vdGAuICovXG52YXIgZnJlZVBhcnNlSW50ID0gcGFyc2VJbnQ7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIG51bWJlci5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIG51bWJlci5cbiAqIEBleGFtcGxlXG4gKlxuICogXy50b051bWJlcigzLjIpO1xuICogLy8gPT4gMy4yXG4gKlxuICogXy50b051bWJlcihOdW1iZXIuTUlOX1ZBTFVFKTtcbiAqIC8vID0+IDVlLTMyNFxuICpcbiAqIF8udG9OdW1iZXIoSW5maW5pdHkpO1xuICogLy8gPT4gSW5maW5pdHlcbiAqXG4gKiBfLnRvTnVtYmVyKCczLjInKTtcbiAqIC8vID0+IDMuMlxuICovXG5mdW5jdGlvbiB0b051bWJlcih2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmIChpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gTkFOO1xuICB9XG4gIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcbiAgICB2YXIgb3RoZXIgPSB0eXBlb2YgdmFsdWUudmFsdWVPZiA9PSAnZnVuY3Rpb24nID8gdmFsdWUudmFsdWVPZigpIDogdmFsdWU7XG4gICAgdmFsdWUgPSBpc09iamVjdChvdGhlcikgPyAob3RoZXIgKyAnJykgOiBvdGhlcjtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSAwID8gdmFsdWUgOiArdmFsdWU7XG4gIH1cbiAgdmFsdWUgPSBiYXNlVHJpbSh2YWx1ZSk7XG4gIHZhciBpc0JpbmFyeSA9IHJlSXNCaW5hcnkudGVzdCh2YWx1ZSk7XG4gIHJldHVybiAoaXNCaW5hcnkgfHwgcmVJc09jdGFsLnRlc3QodmFsdWUpKVxuICAgID8gZnJlZVBhcnNlSW50KHZhbHVlLnNsaWNlKDIpLCBpc0JpbmFyeSA/IDIgOiA4KVxuICAgIDogKHJlSXNCYWRIZXgudGVzdCh2YWx1ZSkgPyBOQU4gOiArdmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRvTnVtYmVyO1xuIiwidmFyIHRvTnVtYmVyID0gcmVxdWlyZSgnLi90b051bWJlcicpO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBJTkZJTklUWSA9IDEgLyAwLFxuICAgIE1BWF9JTlRFR0VSID0gMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDg7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIGZpbml0ZSBudW1iZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjEyLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgY29udmVydGVkIG51bWJlci5cbiAqIEBleGFtcGxlXG4gKlxuICogXy50b0Zpbml0ZSgzLjIpO1xuICogLy8gPT4gMy4yXG4gKlxuICogXy50b0Zpbml0ZShOdW1iZXIuTUlOX1ZBTFVFKTtcbiAqIC8vID0+IDVlLTMyNFxuICpcbiAqIF8udG9GaW5pdGUoSW5maW5pdHkpO1xuICogLy8gPT4gMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDhcbiAqXG4gKiBfLnRvRmluaXRlKCczLjInKTtcbiAqIC8vID0+IDMuMlxuICovXG5mdW5jdGlvbiB0b0Zpbml0ZSh2YWx1ZSkge1xuICBpZiAoIXZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSAwID8gdmFsdWUgOiAwO1xuICB9XG4gIHZhbHVlID0gdG9OdW1iZXIodmFsdWUpO1xuICBpZiAodmFsdWUgPT09IElORklOSVRZIHx8IHZhbHVlID09PSAtSU5GSU5JVFkpIHtcbiAgICB2YXIgc2lnbiA9ICh2YWx1ZSA8IDAgPyAtMSA6IDEpO1xuICAgIHJldHVybiBzaWduICogTUFYX0lOVEVHRVI7XG4gIH1cbiAgcmV0dXJuIHZhbHVlID09PSB2YWx1ZSA/IHZhbHVlIDogMDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0b0Zpbml0ZTtcbiIsInZhciB0b0Zpbml0ZSA9IHJlcXVpcmUoJy4vdG9GaW5pdGUnKTtcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGFuIGludGVnZXIuXG4gKlxuICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGxvb3NlbHkgYmFzZWQgb25cbiAqIFtgVG9JbnRlZ2VyYF0oaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXRvaW50ZWdlcikuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgaW50ZWdlci5cbiAqIEBleGFtcGxlXG4gKlxuICogXy50b0ludGVnZXIoMy4yKTtcbiAqIC8vID0+IDNcbiAqXG4gKiBfLnRvSW50ZWdlcihOdW1iZXIuTUlOX1ZBTFVFKTtcbiAqIC8vID0+IDBcbiAqXG4gKiBfLnRvSW50ZWdlcihJbmZpbml0eSk7XG4gKiAvLyA9PiAxLjc5NzY5MzEzNDg2MjMxNTdlKzMwOFxuICpcbiAqIF8udG9JbnRlZ2VyKCczLjInKTtcbiAqIC8vID0+IDNcbiAqL1xuZnVuY3Rpb24gdG9JbnRlZ2VyKHZhbHVlKSB7XG4gIHZhciByZXN1bHQgPSB0b0Zpbml0ZSh2YWx1ZSksXG4gICAgICByZW1haW5kZXIgPSByZXN1bHQgJSAxO1xuXG4gIHJldHVybiByZXN1bHQgPT09IHJlc3VsdCA/IChyZW1haW5kZXIgPyByZXN1bHQgLSByZW1haW5kZXIgOiByZXN1bHQpIDogMDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0b0ludGVnZXI7XG4iLCJ2YXIgYmFzZVRpbWVzID0gcmVxdWlyZSgnLi9fYmFzZVRpbWVzJyksXG4gICAgY2FzdEZ1bmN0aW9uID0gcmVxdWlyZSgnLi9fY2FzdEZ1bmN0aW9uJyksXG4gICAgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi90b0ludGVnZXInKTtcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgTUFYX1NBRkVfSU5URUdFUiA9IDkwMDcxOTkyNTQ3NDA5OTE7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHRoZSBtYXhpbXVtIGxlbmd0aCBhbmQgaW5kZXggb2YgYW4gYXJyYXkuICovXG52YXIgTUFYX0FSUkFZX0xFTkdUSCA9IDQyOTQ5NjcyOTU7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVNaW4gPSBNYXRoLm1pbjtcblxuLyoqXG4gKiBJbnZva2VzIHRoZSBpdGVyYXRlZSBgbmAgdGltZXMsIHJldHVybmluZyBhbiBhcnJheSBvZiB0aGUgcmVzdWx0cyBvZlxuICogZWFjaCBpbnZvY2F0aW9uLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDsgKGluZGV4KS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiB0aW1lcyB0byBpbnZva2UgYGl0ZXJhdGVlYC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiByZXN1bHRzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRpbWVzKDMsIFN0cmluZyk7XG4gKiAvLyA9PiBbJzAnLCAnMScsICcyJ11cbiAqXG4gKiAgXy50aW1lcyg0LCBfLmNvbnN0YW50KDApKTtcbiAqIC8vID0+IFswLCAwLCAwLCAwXVxuICovXG5mdW5jdGlvbiB0aW1lcyhuLCBpdGVyYXRlZSkge1xuICBuID0gdG9JbnRlZ2VyKG4pO1xuICBpZiAobiA8IDEgfHwgbiA+IE1BWF9TQUZFX0lOVEVHRVIpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgdmFyIGluZGV4ID0gTUFYX0FSUkFZX0xFTkdUSCxcbiAgICAgIGxlbmd0aCA9IG5hdGl2ZU1pbihuLCBNQVhfQVJSQVlfTEVOR1RIKTtcblxuICBpdGVyYXRlZSA9IGNhc3RGdW5jdGlvbihpdGVyYXRlZSk7XG4gIG4gLT0gTUFYX0FSUkFZX0xFTkdUSDtcblxuICB2YXIgcmVzdWx0ID0gYmFzZVRpbWVzKGxlbmd0aCwgaXRlcmF0ZWUpO1xuICB3aGlsZSAoKytpbmRleCA8IG4pIHtcbiAgICBpdGVyYXRlZShpbmRleCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0aW1lcztcbiIsImltcG9ydCBnZXQgZnJvbSAnbG9kYXNoL2dldCc7XG5pbXBvcnQgeyBQUk9QRVJUSUVTX0tFWSB9IGZyb20gJy4vY29uc3RhbnRzJztcbi8qKiBDb21wYXJlcyB0aGUgdmFsdWUgb2YgYGRpc2NyaW1pbmF0b3JGaWVsZGAgd2l0aGluIGBmb3JtRGF0YWAgYWdhaW5zdCB0aGUgdmFsdWUgb2YgYGRpc2NyaW1pbmF0b3JGaWVsZGAgd2l0aGluIHNjaGVtYSBmb3IgZWFjaCBgb3B0aW9uYC5cbiAqIFJldHVybnMgaW5kZXggb2YgZmlyc3QgYG9wdGlvbmAgd2hvc2UgZGlzY3JpbWluYXRvciBtYXRjaGVzIGZvcm1EYXRhLiBSZXR1cm5zIGB1bmRlZmluZWRgIGlmIHRoZXJlIGlzIG5vIG1hdGNoLlxuICogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCB3b3JrIHdpdGggZGlzY3JpbWluYXRvcnMgb2YgYFwidHlwZVwiOiBcIm9iamVjdFwiYCBhbmQgYFwidHlwZVwiOiBcImFycmF5XCJgXG4gKlxuICogQHBhcmFtIGZvcm1EYXRhIC0gVGhlIGN1cnJlbnQgZm9ybURhdGEsIGlmIGFueSwgdXNlZCB0byBmaWd1cmUgb3V0IGEgbWF0Y2hcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIGxpc3Qgb2Ygb3B0aW9ucyB0byBmaW5kIGEgbWF0Y2hpbmcgb3B0aW9ucyBmcm9tXG4gKiBAcGFyYW0gW2Rpc2NyaW1pbmF0b3JGaWVsZF0gLSBUaGUgb3B0aW9uYWwgbmFtZSBvZiB0aGUgZmllbGQgd2l0aGluIHRoZSBvcHRpb25zIG9iamVjdCB3aG9zZSB2YWx1ZSBpcyB1c2VkIHRvXG4gKiAgICAgICAgICBkZXRlcm1pbmUgd2hpY2ggb3B0aW9uIGlzIHNlbGVjdGVkXG4gKiBAcmV0dXJucyAtIFRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCBvcHRpb24gb3IgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vIG1hdGNoXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldE9wdGlvbk1hdGNoaW5nU2ltcGxlRGlzY3JpbWluYXRvcihmb3JtRGF0YSwgb3B0aW9ucywgZGlzY3JpbWluYXRvckZpZWxkKSB7XG4gICAgdmFyIF9hO1xuICAgIGlmIChmb3JtRGF0YSAmJiBkaXNjcmltaW5hdG9yRmllbGQpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBnZXQoZm9ybURhdGEsIGRpc2NyaW1pbmF0b3JGaWVsZCk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSBvcHRpb25zW2ldO1xuICAgICAgICAgICAgY29uc3QgZGlzY3JpbWluYXRvciA9IGdldChvcHRpb24sIFtQUk9QRVJUSUVTX0tFWSwgZGlzY3JpbWluYXRvckZpZWxkXSwge30pO1xuICAgICAgICAgICAgaWYgKGRpc2NyaW1pbmF0b3IudHlwZSA9PT0gJ29iamVjdCcgfHwgZGlzY3JpbWluYXRvci50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGlzY3JpbWluYXRvci5jb25zdCA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgoX2EgPSBkaXNjcmltaW5hdG9yLmVudW0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm47XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXRPcHRpb25NYXRjaGluZ1NpbXBsZURpc2NyaW1pbmF0b3IuanMubWFwIiwiaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcbmltcG9ydCBoYXMgZnJvbSAnbG9kYXNoL2hhcyc7XG5pbXBvcnQgaXNOdW1iZXIgZnJvbSAnbG9kYXNoL2lzTnVtYmVyJztcbmltcG9ydCB7IFBST1BFUlRJRVNfS0VZIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBnZXRPcHRpb25NYXRjaGluZ1NpbXBsZURpc2NyaW1pbmF0b3IgZnJvbSAnLi4vZ2V0T3B0aW9uTWF0Y2hpbmdTaW1wbGVEaXNjcmltaW5hdG9yJztcbi8qKiBHaXZlbiB0aGUgYGZvcm1EYXRhYCBhbmQgbGlzdCBvZiBgb3B0aW9uc2AsIGF0dGVtcHRzIHRvIGZpbmQgdGhlIGluZGV4IG9mIHRoZSBvcHRpb24gdGhhdCBiZXN0IG1hdGNoZXMgdGhlIGRhdGEuXG4gKiBEZXByZWNhdGVkLCB1c2UgYGdldEZpcnN0TWF0Y2hpbmdPcHRpb24oKWAgaW5zdGVhZC5cbiAqXG4gKiBAcGFyYW0gdmFsaWRhdG9yIC0gQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIGBWYWxpZGF0b3JUeXBlYCBpbnRlcmZhY2UgdGhhdCB3aWxsIGJlIHVzZWQgd2hlbiBuZWNlc3NhcnlcbiAqIEBwYXJhbSBmb3JtRGF0YSAtIFRoZSBjdXJyZW50IGZvcm1EYXRhLCBpZiBhbnksIHVzZWQgdG8gZmlndXJlIG91dCBhIG1hdGNoXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBsaXN0IG9mIG9wdGlvbnMgdG8gZmluZCBhIG1hdGNoaW5nIG9wdGlvbnMgZnJvbVxuICogQHBhcmFtIHJvb3RTY2hlbWEgLSBUaGUgcm9vdCBzY2hlbWEsIHVzZWQgdG8gcHJpbWFyaWx5IHRvIGxvb2sgdXAgYCRyZWZgc1xuICogQHBhcmFtIFtkaXNjcmltaW5hdG9yRmllbGRdIC0gVGhlIG9wdGlvbmFsIG5hbWUgb2YgdGhlIGZpZWxkIHdpdGhpbiB0aGUgb3B0aW9ucyBvYmplY3Qgd2hvc2UgdmFsdWUgaXMgdXNlZCB0b1xuICogICAgICAgICAgZGV0ZXJtaW5lIHdoaWNoIG9wdGlvbiBpcyBzZWxlY3RlZFxuICogQHJldHVybnMgLSBUaGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgb3B0aW9uIG9yIDAgaWYgbm9uZSBpcyBhdmFpbGFibGVcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldE1hdGNoaW5nT3B0aW9uKHZhbGlkYXRvciwgZm9ybURhdGEsIG9wdGlvbnMsIHJvb3RTY2hlbWEsIGRpc2NyaW1pbmF0b3JGaWVsZCkge1xuICAgIC8vIEZvciBwZXJmb3JtYW5jZSwgc2tpcCB2YWxpZGF0aW5nIHN1YnNjaGVtYXMgaWYgZm9ybURhdGEgaXMgdW5kZWZpbmVkLiBXZSBqdXN0XG4gICAgLy8gd2FudCB0byBnZXQgdGhlIGZpcnN0IG9wdGlvbiBpbiB0aGF0IGNhc2UuXG4gICAgaWYgKGZvcm1EYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIGNvbnN0IHNpbXBsZURpc2NyaW1pbmF0b3JNYXRjaCA9IGdldE9wdGlvbk1hdGNoaW5nU2ltcGxlRGlzY3JpbWluYXRvcihmb3JtRGF0YSwgb3B0aW9ucywgZGlzY3JpbWluYXRvckZpZWxkKTtcbiAgICBpZiAoaXNOdW1iZXIoc2ltcGxlRGlzY3JpbWluYXRvck1hdGNoKSkge1xuICAgICAgICByZXR1cm4gc2ltcGxlRGlzY3JpbWluYXRvck1hdGNoO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qgb3B0aW9uID0gb3B0aW9uc1tpXTtcbiAgICAgICAgLy8gSWYgd2UgaGF2ZSBhIGRpc2NyaW1pbmF0b3IgZmllbGQsIHRoZW4gd2Ugd2lsbCB1c2UgdGhpcyB0byBtYWtlIHRoZSBkZXRlcm1pbmF0aW9uXG4gICAgICAgIGlmIChkaXNjcmltaW5hdG9yRmllbGQgJiYgaGFzKG9wdGlvbiwgW1BST1BFUlRJRVNfS0VZLCBkaXNjcmltaW5hdG9yRmllbGRdKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBnZXQoZm9ybURhdGEsIGRpc2NyaW1pbmF0b3JGaWVsZCk7XG4gICAgICAgICAgICBjb25zdCBkaXNjcmltaW5hdG9yID0gZ2V0KG9wdGlvbiwgW1BST1BFUlRJRVNfS0VZLCBkaXNjcmltaW5hdG9yRmllbGRdLCB7fSk7XG4gICAgICAgICAgICBpZiAodmFsaWRhdG9yLmlzVmFsaWQoZGlzY3JpbWluYXRvciwgdmFsdWUsIHJvb3RTY2hlbWEpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAob3B0aW9uW1BST1BFUlRJRVNfS0VZXSkge1xuICAgICAgICAgICAgLy8gSWYgdGhlIHNjaGVtYSBkZXNjcmliZXMgYW4gb2JqZWN0IHRoZW4gd2UgbmVlZCB0byBhZGQgc2xpZ2h0bHkgbW9yZVxuICAgICAgICAgICAgLy8gc3RyaWN0IG1hdGNoaW5nIHRvIHRoZSBzY2hlbWEsIGJlY2F1c2UgdW5sZXNzIHRoZSBzY2hlbWEgdXNlcyB0aGVcbiAgICAgICAgICAgIC8vIFwicmVxdWlyZXNcIiBrZXl3b3JkLCBhbiBvYmplY3Qgd2lsbCBtYXRjaCB0aGUgc2NoZW1hIGFzIGxvbmcgYXMgaXRcbiAgICAgICAgICAgIC8vIGRvZXNuJ3QgaGF2ZSBtYXRjaGluZyBrZXlzIHdpdGggYSBjb25mbGljdGluZyB0eXBlLiBUbyBkbyB0aGlzIHdlIHVzZSBhblxuICAgICAgICAgICAgLy8gXCJhbnlPZlwiIHdpdGggYW4gYXJyYXkgb2YgcmVxdWlyZXMuIFRoaXMgYXVnbWVudGF0aW9uIGV4cHJlc3NlcyB0aGF0IHRoZVxuICAgICAgICAgICAgLy8gc2NoZW1hIHNob3VsZCBtYXRjaCBpZiBhbnkgb2YgdGhlIGtleXMgaW4gdGhlIHNjaGVtYSBhcmUgcHJlc2VudCBvbiB0aGVcbiAgICAgICAgICAgIC8vIG9iamVjdCBhbmQgcGFzcyB2YWxpZGF0aW9uLlxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIENyZWF0ZSBhbiBcImFueU9mXCIgc2NoZW1hIHRoYXQgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIG9mIHRoZSBrZXlzIGluIHRoZVxuICAgICAgICAgICAgLy8gXCJwcm9wZXJ0aWVzXCIgb2JqZWN0XG4gICAgICAgICAgICBjb25zdCByZXF1aXJlc0FueU9mID0ge1xuICAgICAgICAgICAgICAgIGFueU9mOiBPYmplY3Qua2V5cyhvcHRpb25bUFJPUEVSVElFU19LRVldKS5tYXAoKGtleSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IFtrZXldLFxuICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBsZXQgYXVnbWVudGVkU2NoZW1hO1xuICAgICAgICAgICAgLy8gSWYgdGhlIFwiYW55T2ZcIiBrZXl3b3JkIGFscmVhZHkgZXhpc3RzLCB3cmFwIHRoZSBhdWdtZW50YXRpb24gaW4gYW4gXCJhbGxPZlwiXG4gICAgICAgICAgICBpZiAob3B0aW9uLmFueU9mKSB7XG4gICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUgb3B0aW9uXG4gICAgICAgICAgICAgICAgY29uc3QgeyAuLi5zaGFsbG93Q2xvbmUgfSA9IG9wdGlvbjtcbiAgICAgICAgICAgICAgICBpZiAoIXNoYWxsb3dDbG9uZS5hbGxPZikge1xuICAgICAgICAgICAgICAgICAgICBzaGFsbG93Q2xvbmUuYWxsT2YgPSBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIFwiYWxsT2ZcIiBhbHJlYWR5IGV4aXN0cywgc2hhbGxvdyBjbG9uZSB0aGUgYXJyYXlcbiAgICAgICAgICAgICAgICAgICAgc2hhbGxvd0Nsb25lLmFsbE9mID0gc2hhbGxvd0Nsb25lLmFsbE9mLnNsaWNlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNoYWxsb3dDbG9uZS5hbGxPZi5wdXNoKHJlcXVpcmVzQW55T2YpO1xuICAgICAgICAgICAgICAgIGF1Z21lbnRlZFNjaGVtYSA9IHNoYWxsb3dDbG9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGF1Z21lbnRlZFNjaGVtYSA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbiwgcmVxdWlyZXNBbnlPZik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBSZW1vdmUgdGhlIFwicmVxdWlyZWRcIiBmaWVsZCBhcyBpdCdzIGxpa2VseSB0aGF0IG5vdCBhbGwgZmllbGRzIGhhdmVcbiAgICAgICAgICAgIC8vIGJlZW4gZmlsbGVkIGluIHlldCwgd2hpY2ggd2lsbCBtZWFuIHRoYXQgdGhlIHNjaGVtYSBpcyBub3QgdmFsaWRcbiAgICAgICAgICAgIGRlbGV0ZSBhdWdtZW50ZWRTY2hlbWEucmVxdWlyZWQ7XG4gICAgICAgICAgICBpZiAodmFsaWRhdG9yLmlzVmFsaWQoYXVnbWVudGVkU2NoZW1hLCBmb3JtRGF0YSwgcm9vdFNjaGVtYSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh2YWxpZGF0b3IuaXNWYWxpZChvcHRpb24sIGZvcm1EYXRhLCByb290U2NoZW1hKSkge1xuICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIDA7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXRNYXRjaGluZ09wdGlvbi5qcy5tYXAiLCJpbXBvcnQgZ2V0TWF0Y2hpbmdPcHRpb24gZnJvbSAnLi9nZXRNYXRjaGluZ09wdGlvbic7XG4vKiogR2l2ZW4gdGhlIGBmb3JtRGF0YWAgYW5kIGxpc3Qgb2YgYG9wdGlvbnNgLCBhdHRlbXB0cyB0byBmaW5kIHRoZSBpbmRleCBvZiB0aGUgZmlyc3Qgb3B0aW9uIHRoYXQgbWF0Y2hlcyB0aGUgZGF0YS5cbiAqIEFsd2F5cyByZXR1cm5zIHRoZSBmaXJzdCBvcHRpb24gaWYgdGhlcmUgaXMgbm90aGluZyB0aGF0IG1hdGNoZXMuXG4gKlxuICogQHBhcmFtIHZhbGlkYXRvciAtIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBgVmFsaWRhdG9yVHlwZWAgaW50ZXJmYWNlIHRoYXQgd2lsbCBiZSB1c2VkIHdoZW4gbmVjZXNzYXJ5XG4gKiBAcGFyYW0gZm9ybURhdGEgLSBUaGUgY3VycmVudCBmb3JtRGF0YSwgaWYgYW55LCB1c2VkIHRvIGZpZ3VyZSBvdXQgYSBtYXRjaFxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgbGlzdCBvZiBvcHRpb25zIHRvIGZpbmQgYSBtYXRjaGluZyBvcHRpb25zIGZyb21cbiAqIEBwYXJhbSByb290U2NoZW1hIC0gVGhlIHJvb3Qgc2NoZW1hLCB1c2VkIHRvIHByaW1hcmlseSB0byBsb29rIHVwIGAkcmVmYHNcbiAqIEBwYXJhbSBbZGlzY3JpbWluYXRvckZpZWxkXSAtIFRoZSBvcHRpb25hbCBuYW1lIG9mIHRoZSBmaWVsZCB3aXRoaW4gdGhlIG9wdGlvbnMgb2JqZWN0IHdob3NlIHZhbHVlIGlzIHVzZWQgdG9cbiAqICAgICAgICAgIGRldGVybWluZSB3aGljaCBvcHRpb24gaXMgc2VsZWN0ZWRcbiAqIEByZXR1cm5zIC0gVGhlIGluZGV4IG9mIHRoZSBmaXJzdCBtYXRjaGVkIG9wdGlvbiBvciAwIGlmIG5vbmUgaXMgYXZhaWxhYmxlXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldEZpcnN0TWF0Y2hpbmdPcHRpb24odmFsaWRhdG9yLCBmb3JtRGF0YSwgb3B0aW9ucywgcm9vdFNjaGVtYSwgZGlzY3JpbWluYXRvckZpZWxkKSB7XG4gICAgcmV0dXJuIGdldE1hdGNoaW5nT3B0aW9uKHZhbGlkYXRvciwgZm9ybURhdGEsIG9wdGlvbnMsIHJvb3RTY2hlbWEsIGRpc2NyaW1pbmF0b3JGaWVsZCk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXRGaXJzdE1hdGNoaW5nT3B0aW9uLmpzLm1hcCIsInZhciBiYXNlSXNFcXVhbCA9IHJlcXVpcmUoJy4vX2Jhc2VJc0VxdWFsJyk7XG5cbi8qKlxuICogUGVyZm9ybXMgYSBkZWVwIGNvbXBhcmlzb24gYmV0d2VlbiB0d28gdmFsdWVzIHRvIGRldGVybWluZSBpZiB0aGV5IGFyZVxuICogZXF1aXZhbGVudC5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2Qgc3VwcG9ydHMgY29tcGFyaW5nIGFycmF5cywgYXJyYXkgYnVmZmVycywgYm9vbGVhbnMsXG4gKiBkYXRlIG9iamVjdHMsIGVycm9yIG9iamVjdHMsIG1hcHMsIG51bWJlcnMsIGBPYmplY3RgIG9iamVjdHMsIHJlZ2V4ZXMsXG4gKiBzZXRzLCBzdHJpbmdzLCBzeW1ib2xzLCBhbmQgdHlwZWQgYXJyYXlzLiBgT2JqZWN0YCBvYmplY3RzIGFyZSBjb21wYXJlZFxuICogYnkgdGhlaXIgb3duLCBub3QgaW5oZXJpdGVkLCBlbnVtZXJhYmxlIHByb3BlcnRpZXMuIEZ1bmN0aW9ucyBhbmQgRE9NXG4gKiBub2RlcyBhcmUgY29tcGFyZWQgYnkgc3RyaWN0IGVxdWFsaXR5LCBpLmUuIGA9PT1gLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWVzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3QgPSB7ICdhJzogMSB9O1xuICogdmFyIG90aGVyID0geyAnYSc6IDEgfTtcbiAqXG4gKiBfLmlzRXF1YWwob2JqZWN0LCBvdGhlcik7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogb2JqZWN0ID09PSBvdGhlcjtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzRXF1YWwodmFsdWUsIG90aGVyKSB7XG4gIHJldHVybiBiYXNlSXNFcXVhbCh2YWx1ZSwgb3RoZXIpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzRXF1YWw7XG4iLCJ2YXIgYXNzaWduVmFsdWUgPSByZXF1aXJlKCcuL19hc3NpZ25WYWx1ZScpLFxuICAgIGNhc3RQYXRoID0gcmVxdWlyZSgnLi9fY2FzdFBhdGgnKSxcbiAgICBpc0luZGV4ID0gcmVxdWlyZSgnLi9faXNJbmRleCcpLFxuICAgIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpLFxuICAgIHRvS2V5ID0gcmVxdWlyZSgnLi9fdG9LZXknKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zZXRgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIHNldC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIHBhdGggY3JlYXRpb24uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBiYXNlU2V0KG9iamVjdCwgcGF0aCwgdmFsdWUsIGN1c3RvbWl6ZXIpIHtcbiAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfVxuICBwYXRoID0gY2FzdFBhdGgocGF0aCwgb2JqZWN0KTtcblxuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHBhdGgubGVuZ3RoLFxuICAgICAgbGFzdEluZGV4ID0gbGVuZ3RoIC0gMSxcbiAgICAgIG5lc3RlZCA9IG9iamVjdDtcblxuICB3aGlsZSAobmVzdGVkICE9IG51bGwgJiYgKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBrZXkgPSB0b0tleShwYXRoW2luZGV4XSksXG4gICAgICAgIG5ld1ZhbHVlID0gdmFsdWU7XG5cbiAgICBpZiAoa2V5ID09PSAnX19wcm90b19fJyB8fCBrZXkgPT09ICdjb25zdHJ1Y3RvcicgfHwga2V5ID09PSAncHJvdG90eXBlJykge1xuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG5cbiAgICBpZiAoaW5kZXggIT0gbGFzdEluZGV4KSB7XG4gICAgICB2YXIgb2JqVmFsdWUgPSBuZXN0ZWRba2V5XTtcbiAgICAgIG5ld1ZhbHVlID0gY3VzdG9taXplciA/IGN1c3RvbWl6ZXIob2JqVmFsdWUsIGtleSwgbmVzdGVkKSA6IHVuZGVmaW5lZDtcbiAgICAgIGlmIChuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG5ld1ZhbHVlID0gaXNPYmplY3Qob2JqVmFsdWUpXG4gICAgICAgICAgPyBvYmpWYWx1ZVxuICAgICAgICAgIDogKGlzSW5kZXgocGF0aFtpbmRleCArIDFdKSA/IFtdIDoge30pO1xuICAgICAgfVxuICAgIH1cbiAgICBhc3NpZ25WYWx1ZShuZXN0ZWQsIGtleSwgbmV3VmFsdWUpO1xuICAgIG5lc3RlZCA9IG5lc3RlZFtrZXldO1xuICB9XG4gIHJldHVybiBvYmplY3Q7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVNldDtcbiIsInZhciBiYXNlU2V0ID0gcmVxdWlyZSgnLi9fYmFzZVNldCcpO1xuXG4vKipcbiAqIFNldHMgdGhlIHZhbHVlIGF0IGBwYXRoYCBvZiBgb2JqZWN0YC4gSWYgYSBwb3J0aW9uIG9mIGBwYXRoYCBkb2Vzbid0IGV4aXN0LFxuICogaXQncyBjcmVhdGVkLiBBcnJheXMgYXJlIGNyZWF0ZWQgZm9yIG1pc3NpbmcgaW5kZXggcHJvcGVydGllcyB3aGlsZSBvYmplY3RzXG4gKiBhcmUgY3JlYXRlZCBmb3IgYWxsIG90aGVyIG1pc3NpbmcgcHJvcGVydGllcy4gVXNlIGBfLnNldFdpdGhgIHRvIGN1c3RvbWl6ZVxuICogYHBhdGhgIGNyZWF0aW9uLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMy43LjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gc2V0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiBbeyAnYic6IHsgJ2MnOiAzIH0gfV0gfTtcbiAqXG4gKiBfLnNldChvYmplY3QsICdhWzBdLmIuYycsIDQpO1xuICogY29uc29sZS5sb2cob2JqZWN0LmFbMF0uYi5jKTtcbiAqIC8vID0+IDRcbiAqXG4gKiBfLnNldChvYmplY3QsIFsneCcsICcwJywgJ3knLCAneiddLCA1KTtcbiAqIGNvbnNvbGUubG9nKG9iamVjdC54WzBdLnkueik7XG4gKiAvLyA9PiA1XG4gKi9cbmZ1bmN0aW9uIHNldChvYmplY3QsIHBhdGgsIHZhbHVlKSB7XG4gIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IG9iamVjdCA6IGJhc2VTZXQob2JqZWN0LCBwYXRoLCB2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2V0O1xuIiwidmFyIGFycmF5RWFjaCA9IHJlcXVpcmUoJy4vX2FycmF5RWFjaCcpLFxuICAgIGJhc2VDcmVhdGUgPSByZXF1aXJlKCcuL19iYXNlQ3JlYXRlJyksXG4gICAgYmFzZUZvck93biA9IHJlcXVpcmUoJy4vX2Jhc2VGb3JPd24nKSxcbiAgICBiYXNlSXRlcmF0ZWUgPSByZXF1aXJlKCcuL19iYXNlSXRlcmF0ZWUnKSxcbiAgICBnZXRQcm90b3R5cGUgPSByZXF1aXJlKCcuL19nZXRQcm90b3R5cGUnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi9pc0FycmF5JyksXG4gICAgaXNCdWZmZXIgPSByZXF1aXJlKCcuL2lzQnVmZmVyJyksXG4gICAgaXNGdW5jdGlvbiA9IHJlcXVpcmUoJy4vaXNGdW5jdGlvbicpLFxuICAgIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpLFxuICAgIGlzVHlwZWRBcnJheSA9IHJlcXVpcmUoJy4vaXNUeXBlZEFycmF5Jyk7XG5cbi8qKlxuICogQW4gYWx0ZXJuYXRpdmUgdG8gYF8ucmVkdWNlYDsgdGhpcyBtZXRob2QgdHJhbnNmb3JtcyBgb2JqZWN0YCB0byBhIG5ld1xuICogYGFjY3VtdWxhdG9yYCBvYmplY3Qgd2hpY2ggaXMgdGhlIHJlc3VsdCBvZiBydW5uaW5nIGVhY2ggb2YgaXRzIG93blxuICogZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQgcHJvcGVydGllcyB0aHJ1IGBpdGVyYXRlZWAsIHdpdGggZWFjaCBpbnZvY2F0aW9uXG4gKiBwb3RlbnRpYWxseSBtdXRhdGluZyB0aGUgYGFjY3VtdWxhdG9yYCBvYmplY3QuIElmIGBhY2N1bXVsYXRvcmAgaXMgbm90XG4gKiBwcm92aWRlZCwgYSBuZXcgb2JqZWN0IHdpdGggdGhlIHNhbWUgYFtbUHJvdG90eXBlXV1gIHdpbGwgYmUgdXNlZC4gVGhlXG4gKiBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggZm91ciBhcmd1bWVudHM6IChhY2N1bXVsYXRvciwgdmFsdWUsIGtleSwgb2JqZWN0KS5cbiAqIEl0ZXJhdGVlIGZ1bmN0aW9ucyBtYXkgZXhpdCBpdGVyYXRpb24gZWFybHkgYnkgZXhwbGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDEuMy4wXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0geyp9IFthY2N1bXVsYXRvcl0gVGhlIGN1c3RvbSBhY2N1bXVsYXRvciB2YWx1ZS5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAqIEBleGFtcGxlXG4gKlxuICogXy50cmFuc2Zvcm0oWzIsIDMsIDRdLCBmdW5jdGlvbihyZXN1bHQsIG4pIHtcbiAqICAgcmVzdWx0LnB1c2gobiAqPSBuKTtcbiAqICAgcmV0dXJuIG4gJSAyID09IDA7XG4gKiB9LCBbXSk7XG4gKiAvLyA9PiBbNCwgOV1cbiAqXG4gKiBfLnRyYW5zZm9ybSh7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDEgfSwgZnVuY3Rpb24ocmVzdWx0LCB2YWx1ZSwga2V5KSB7XG4gKiAgIChyZXN1bHRbdmFsdWVdIHx8IChyZXN1bHRbdmFsdWVdID0gW10pKS5wdXNoKGtleSk7XG4gKiB9LCB7fSk7XG4gKiAvLyA9PiB7ICcxJzogWydhJywgJ2MnXSwgJzInOiBbJ2InXSB9XG4gKi9cbmZ1bmN0aW9uIHRyYW5zZm9ybShvYmplY3QsIGl0ZXJhdGVlLCBhY2N1bXVsYXRvcikge1xuICB2YXIgaXNBcnIgPSBpc0FycmF5KG9iamVjdCksXG4gICAgICBpc0Fyckxpa2UgPSBpc0FyciB8fCBpc0J1ZmZlcihvYmplY3QpIHx8IGlzVHlwZWRBcnJheShvYmplY3QpO1xuXG4gIGl0ZXJhdGVlID0gYmFzZUl0ZXJhdGVlKGl0ZXJhdGVlLCA0KTtcbiAgaWYgKGFjY3VtdWxhdG9yID09IG51bGwpIHtcbiAgICB2YXIgQ3RvciA9IG9iamVjdCAmJiBvYmplY3QuY29uc3RydWN0b3I7XG4gICAgaWYgKGlzQXJyTGlrZSkge1xuICAgICAgYWNjdW11bGF0b3IgPSBpc0FyciA/IG5ldyBDdG9yIDogW107XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICAgIGFjY3VtdWxhdG9yID0gaXNGdW5jdGlvbihDdG9yKSA/IGJhc2VDcmVhdGUoZ2V0UHJvdG90eXBlKG9iamVjdCkpIDoge307XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgYWNjdW11bGF0b3IgPSB7fTtcbiAgICB9XG4gIH1cbiAgKGlzQXJyTGlrZSA/IGFycmF5RWFjaCA6IGJhc2VGb3JPd24pKG9iamVjdCwgZnVuY3Rpb24odmFsdWUsIGluZGV4LCBvYmplY3QpIHtcbiAgICByZXR1cm4gaXRlcmF0ZWUoYWNjdW11bGF0b3IsIHZhbHVlLCBpbmRleCwgb2JqZWN0KTtcbiAgfSk7XG4gIHJldHVybiBhY2N1bXVsYXRvcjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0cmFuc2Zvcm07XG4iLCJ2YXIgYmFzZUFzc2lnblZhbHVlID0gcmVxdWlyZSgnLi9fYmFzZUFzc2lnblZhbHVlJyksXG4gICAgZXEgPSByZXF1aXJlKCcuL2VxJyk7XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlIGBhc3NpZ25WYWx1ZWAgZXhjZXB0IHRoYXQgaXQgZG9lc24ndCBhc3NpZ25cbiAqIGB1bmRlZmluZWRgIHZhbHVlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gYXNzaWduLlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gYXNzaWduLlxuICovXG5mdW5jdGlvbiBhc3NpZ25NZXJnZVZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBpZiAoKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgIWVxKG9iamVjdFtrZXldLCB2YWx1ZSkpIHx8XG4gICAgICAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiAhKGtleSBpbiBvYmplY3QpKSkge1xuICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXNzaWduTWVyZ2VWYWx1ZTtcbiIsInZhciBpc0FycmF5TGlrZSA9IHJlcXVpcmUoJy4vaXNBcnJheUxpa2UnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuL2lzT2JqZWN0TGlrZScpO1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uaXNBcnJheUxpa2VgIGV4Y2VwdCB0aGF0IGl0IGFsc28gY2hlY2tzIGlmIGB2YWx1ZWBcbiAqIGlzIGFuIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBhcnJheS1saWtlIG9iamVjdCxcbiAqICBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcnJheUxpa2VPYmplY3QoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJyYXlMaWtlT2JqZWN0KGRvY3VtZW50LmJvZHkuY2hpbGRyZW4pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2VPYmplY3QoJ2FiYycpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzQXJyYXlMaWtlT2JqZWN0KF8ubm9vcCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0FycmF5TGlrZU9iamVjdCh2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBpc0FycmF5TGlrZSh2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNBcnJheUxpa2VPYmplY3Q7XG4iLCIvKipcbiAqIEdldHMgdGhlIHZhbHVlIGF0IGBrZXlgLCB1bmxlc3MgYGtleWAgaXMgXCJfX3Byb3RvX19cIiBvciBcImNvbnN0cnVjdG9yXCIuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBzYWZlR2V0KG9iamVjdCwga2V5KSB7XG4gIGlmIChrZXkgPT09ICdjb25zdHJ1Y3RvcicgJiYgdHlwZW9mIG9iamVjdFtrZXldID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGtleSA9PSAnX19wcm90b19fJykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHJldHVybiBvYmplY3Rba2V5XTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzYWZlR2V0O1xuIiwidmFyIGNvcHlPYmplY3QgPSByZXF1aXJlKCcuL19jb3B5T2JqZWN0JyksXG4gICAga2V5c0luID0gcmVxdWlyZSgnLi9rZXlzSW4nKTtcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgcGxhaW4gb2JqZWN0IGZsYXR0ZW5pbmcgaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nXG4gKiBrZXllZCBwcm9wZXJ0aWVzIG9mIGB2YWx1ZWAgdG8gb3duIHByb3BlcnRpZXMgb2YgdGhlIHBsYWluIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDMuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBwbGFpbiBvYmplY3QuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5iID0gMjtcbiAqIH1cbiAqXG4gKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICpcbiAqIF8uYXNzaWduKHsgJ2EnOiAxIH0sIG5ldyBGb28pO1xuICogLy8gPT4geyAnYSc6IDEsICdiJzogMiB9XG4gKlxuICogXy5hc3NpZ24oeyAnYSc6IDEgfSwgXy50b1BsYWluT2JqZWN0KG5ldyBGb28pKTtcbiAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMyB9XG4gKi9cbmZ1bmN0aW9uIHRvUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgcmV0dXJuIGNvcHlPYmplY3QodmFsdWUsIGtleXNJbih2YWx1ZSkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRvUGxhaW5PYmplY3Q7XG4iLCJ2YXIgYXNzaWduTWVyZ2VWYWx1ZSA9IHJlcXVpcmUoJy4vX2Fzc2lnbk1lcmdlVmFsdWUnKSxcbiAgICBjbG9uZUJ1ZmZlciA9IHJlcXVpcmUoJy4vX2Nsb25lQnVmZmVyJyksXG4gICAgY2xvbmVUeXBlZEFycmF5ID0gcmVxdWlyZSgnLi9fY2xvbmVUeXBlZEFycmF5JyksXG4gICAgY29weUFycmF5ID0gcmVxdWlyZSgnLi9fY29weUFycmF5JyksXG4gICAgaW5pdENsb25lT2JqZWN0ID0gcmVxdWlyZSgnLi9faW5pdENsb25lT2JqZWN0JyksXG4gICAgaXNBcmd1bWVudHMgPSByZXF1aXJlKCcuL2lzQXJndW1lbnRzJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4vaXNBcnJheScpLFxuICAgIGlzQXJyYXlMaWtlT2JqZWN0ID0gcmVxdWlyZSgnLi9pc0FycmF5TGlrZU9iamVjdCcpLFxuICAgIGlzQnVmZmVyID0gcmVxdWlyZSgnLi9pc0J1ZmZlcicpLFxuICAgIGlzRnVuY3Rpb24gPSByZXF1aXJlKCcuL2lzRnVuY3Rpb24nKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKSxcbiAgICBpc1BsYWluT2JqZWN0ID0gcmVxdWlyZSgnLi9pc1BsYWluT2JqZWN0JyksXG4gICAgaXNUeXBlZEFycmF5ID0gcmVxdWlyZSgnLi9pc1R5cGVkQXJyYXknKSxcbiAgICBzYWZlR2V0ID0gcmVxdWlyZSgnLi9fc2FmZUdldCcpLFxuICAgIHRvUGxhaW5PYmplY3QgPSByZXF1aXJlKCcuL3RvUGxhaW5PYmplY3QnKTtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VNZXJnZWAgZm9yIGFycmF5cyBhbmQgb2JqZWN0cyB3aGljaCBwZXJmb3Jtc1xuICogZGVlcCBtZXJnZXMgYW5kIHRyYWNrcyB0cmF2ZXJzZWQgb2JqZWN0cyBlbmFibGluZyBvYmplY3RzIHdpdGggY2lyY3VsYXJcbiAqIHJlZmVyZW5jZXMgdG8gYmUgbWVyZ2VkLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBtZXJnZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBzcmNJbmRleCBUaGUgaW5kZXggb2YgYHNvdXJjZWAuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBtZXJnZUZ1bmMgVGhlIGZ1bmN0aW9uIHRvIG1lcmdlIHZhbHVlcy5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGFzc2lnbmVkIHZhbHVlcy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgc291cmNlIHZhbHVlcyBhbmQgdGhlaXIgbWVyZ2VkXG4gKiAgY291bnRlcnBhcnRzLlxuICovXG5mdW5jdGlvbiBiYXNlTWVyZ2VEZWVwKG9iamVjdCwgc291cmNlLCBrZXksIHNyY0luZGV4LCBtZXJnZUZ1bmMsIGN1c3RvbWl6ZXIsIHN0YWNrKSB7XG4gIHZhciBvYmpWYWx1ZSA9IHNhZmVHZXQob2JqZWN0LCBrZXkpLFxuICAgICAgc3JjVmFsdWUgPSBzYWZlR2V0KHNvdXJjZSwga2V5KSxcbiAgICAgIHN0YWNrZWQgPSBzdGFjay5nZXQoc3JjVmFsdWUpO1xuXG4gIGlmIChzdGFja2VkKSB7XG4gICAgYXNzaWduTWVyZ2VWYWx1ZShvYmplY3QsIGtleSwgc3RhY2tlZCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciBuZXdWYWx1ZSA9IGN1c3RvbWl6ZXJcbiAgICA/IGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlLCAoa2V5ICsgJycpLCBvYmplY3QsIHNvdXJjZSwgc3RhY2spXG4gICAgOiB1bmRlZmluZWQ7XG5cbiAgdmFyIGlzQ29tbW9uID0gbmV3VmFsdWUgPT09IHVuZGVmaW5lZDtcblxuICBpZiAoaXNDb21tb24pIHtcbiAgICB2YXIgaXNBcnIgPSBpc0FycmF5KHNyY1ZhbHVlKSxcbiAgICAgICAgaXNCdWZmID0gIWlzQXJyICYmIGlzQnVmZmVyKHNyY1ZhbHVlKSxcbiAgICAgICAgaXNUeXBlZCA9ICFpc0FyciAmJiAhaXNCdWZmICYmIGlzVHlwZWRBcnJheShzcmNWYWx1ZSk7XG5cbiAgICBuZXdWYWx1ZSA9IHNyY1ZhbHVlO1xuICAgIGlmIChpc0FyciB8fCBpc0J1ZmYgfHwgaXNUeXBlZCkge1xuICAgICAgaWYgKGlzQXJyYXkob2JqVmFsdWUpKSB7XG4gICAgICAgIG5ld1ZhbHVlID0gb2JqVmFsdWU7XG4gICAgICB9XG4gICAgICBlbHNlIGlmIChpc0FycmF5TGlrZU9iamVjdChvYmpWYWx1ZSkpIHtcbiAgICAgICAgbmV3VmFsdWUgPSBjb3B5QXJyYXkob2JqVmFsdWUpO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoaXNCdWZmKSB7XG4gICAgICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgICAgIG5ld1ZhbHVlID0gY2xvbmVCdWZmZXIoc3JjVmFsdWUsIHRydWUpO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoaXNUeXBlZCkge1xuICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICBuZXdWYWx1ZSA9IGNsb25lVHlwZWRBcnJheShzcmNWYWx1ZSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgbmV3VmFsdWUgPSBbXTtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAoaXNQbGFpbk9iamVjdChzcmNWYWx1ZSkgfHwgaXNBcmd1bWVudHMoc3JjVmFsdWUpKSB7XG4gICAgICBuZXdWYWx1ZSA9IG9ialZhbHVlO1xuICAgICAgaWYgKGlzQXJndW1lbnRzKG9ialZhbHVlKSkge1xuICAgICAgICBuZXdWYWx1ZSA9IHRvUGxhaW5PYmplY3Qob2JqVmFsdWUpO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoIWlzT2JqZWN0KG9ialZhbHVlKSB8fCBpc0Z1bmN0aW9uKG9ialZhbHVlKSkge1xuICAgICAgICBuZXdWYWx1ZSA9IGluaXRDbG9uZU9iamVjdChzcmNWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgaWYgKGlzQ29tbW9uKSB7XG4gICAgLy8gUmVjdXJzaXZlbHkgbWVyZ2Ugb2JqZWN0cyBhbmQgYXJyYXlzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgc3RhY2suc2V0KHNyY1ZhbHVlLCBuZXdWYWx1ZSk7XG4gICAgbWVyZ2VGdW5jKG5ld1ZhbHVlLCBzcmNWYWx1ZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIsIHN0YWNrKTtcbiAgICBzdGFja1snZGVsZXRlJ10oc3JjVmFsdWUpO1xuICB9XG4gIGFzc2lnbk1lcmdlVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlTWVyZ2VEZWVwO1xuIiwidmFyIFN0YWNrID0gcmVxdWlyZSgnLi9fU3RhY2snKSxcbiAgICBhc3NpZ25NZXJnZVZhbHVlID0gcmVxdWlyZSgnLi9fYXNzaWduTWVyZ2VWYWx1ZScpLFxuICAgIGJhc2VGb3IgPSByZXF1aXJlKCcuL19iYXNlRm9yJyksXG4gICAgYmFzZU1lcmdlRGVlcCA9IHJlcXVpcmUoJy4vX2Jhc2VNZXJnZURlZXAnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKSxcbiAgICBrZXlzSW4gPSByZXF1aXJlKCcuL2tleXNJbicpLFxuICAgIHNhZmVHZXQgPSByZXF1aXJlKCcuL19zYWZlR2V0Jyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWVyZ2VgIHdpdGhvdXQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgc291cmNlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBzcmNJbmRleCBUaGUgaW5kZXggb2YgYHNvdXJjZWAuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBtZXJnZWQgdmFsdWVzLlxuICogQHBhcmFtIHtPYmplY3R9IFtzdGFja10gVHJhY2tzIHRyYXZlcnNlZCBzb3VyY2UgdmFsdWVzIGFuZCB0aGVpciBtZXJnZWRcbiAqICBjb3VudGVycGFydHMuXG4gKi9cbmZ1bmN0aW9uIGJhc2VNZXJnZShvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIsIHN0YWNrKSB7XG4gIGlmIChvYmplY3QgPT09IHNvdXJjZSkge1xuICAgIHJldHVybjtcbiAgfVxuICBiYXNlRm9yKHNvdXJjZSwgZnVuY3Rpb24oc3JjVmFsdWUsIGtleSkge1xuICAgIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjayk7XG4gICAgaWYgKGlzT2JqZWN0KHNyY1ZhbHVlKSkge1xuICAgICAgYmFzZU1lcmdlRGVlcChvYmplY3QsIHNvdXJjZSwga2V5LCBzcmNJbmRleCwgYmFzZU1lcmdlLCBjdXN0b21pemVyLCBzdGFjayk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdmFyIG5ld1ZhbHVlID0gY3VzdG9taXplclxuICAgICAgICA/IGN1c3RvbWl6ZXIoc2FmZUdldChvYmplY3QsIGtleSksIHNyY1ZhbHVlLCAoa2V5ICsgJycpLCBvYmplY3QsIHNvdXJjZSwgc3RhY2spXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBuZXdWYWx1ZSA9IHNyY1ZhbHVlO1xuICAgICAgfVxuICAgICAgYXNzaWduTWVyZ2VWYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUpO1xuICAgIH1cbiAgfSwga2V5c0luKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlTWVyZ2U7XG4iLCJ2YXIgaWRlbnRpdHkgPSByZXF1aXJlKCcuL2lkZW50aXR5JyksXG4gICAgb3ZlclJlc3QgPSByZXF1aXJlKCcuL19vdmVyUmVzdCcpLFxuICAgIHNldFRvU3RyaW5nID0gcmVxdWlyZSgnLi9fc2V0VG9TdHJpbmcnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5yZXN0YCB3aGljaCBkb2Vzbid0IHZhbGlkYXRlIG9yIGNvZXJjZSBhcmd1bWVudHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IGEgcmVzdCBwYXJhbWV0ZXIgdG8uXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PWZ1bmMubGVuZ3RoLTFdIFRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgcmVzdCBwYXJhbWV0ZXIuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gYmFzZVJlc3QoZnVuYywgc3RhcnQpIHtcbiAgcmV0dXJuIHNldFRvU3RyaW5nKG92ZXJSZXN0KGZ1bmMsIHN0YXJ0LCBpZGVudGl0eSksIGZ1bmMgKyAnJyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVJlc3Q7XG4iLCJ2YXIgZXEgPSByZXF1aXJlKCcuL2VxJyksXG4gICAgaXNBcnJheUxpa2UgPSByZXF1aXJlKCcuL2lzQXJyYXlMaWtlJyksXG4gICAgaXNJbmRleCA9IHJlcXVpcmUoJy4vX2lzSW5kZXgnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGdpdmVuIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgdmFsdWUgYXJndW1lbnQuXG4gKiBAcGFyYW0geyp9IGluZGV4IFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgaW5kZXggb3Iga2V5IGFyZ3VtZW50LlxuICogQHBhcmFtIHsqfSBvYmplY3QgVGhlIHBvdGVudGlhbCBpdGVyYXRlZSBvYmplY3QgYXJndW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLFxuICogIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNJdGVyYXRlZUNhbGwodmFsdWUsIGluZGV4LCBvYmplY3QpIHtcbiAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciB0eXBlID0gdHlwZW9mIGluZGV4O1xuICBpZiAodHlwZSA9PSAnbnVtYmVyJ1xuICAgICAgICA/IChpc0FycmF5TGlrZShvYmplY3QpICYmIGlzSW5kZXgoaW5kZXgsIG9iamVjdC5sZW5ndGgpKVxuICAgICAgICA6ICh0eXBlID09ICdzdHJpbmcnICYmIGluZGV4IGluIG9iamVjdClcbiAgICAgICkge1xuICAgIHJldHVybiBlcShvYmplY3RbaW5kZXhdLCB2YWx1ZSk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzSXRlcmF0ZWVDYWxsO1xuIiwidmFyIGJhc2VSZXN0ID0gcmVxdWlyZSgnLi9fYmFzZVJlc3QnKSxcbiAgICBpc0l0ZXJhdGVlQ2FsbCA9IHJlcXVpcmUoJy4vX2lzSXRlcmF0ZWVDYWxsJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8uYXNzaWduYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gYXNzaWduZXIgVGhlIGZ1bmN0aW9uIHRvIGFzc2lnbiB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhc3NpZ25lciBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQXNzaWduZXIoYXNzaWduZXIpIHtcbiAgcmV0dXJuIGJhc2VSZXN0KGZ1bmN0aW9uKG9iamVjdCwgc291cmNlcykge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBzb3VyY2VzLmxlbmd0aCxcbiAgICAgICAgY3VzdG9taXplciA9IGxlbmd0aCA+IDEgPyBzb3VyY2VzW2xlbmd0aCAtIDFdIDogdW5kZWZpbmVkLFxuICAgICAgICBndWFyZCA9IGxlbmd0aCA+IDIgPyBzb3VyY2VzWzJdIDogdW5kZWZpbmVkO1xuXG4gICAgY3VzdG9taXplciA9IChhc3NpZ25lci5sZW5ndGggPiAzICYmIHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicpXG4gICAgICA/IChsZW5ndGgtLSwgY3VzdG9taXplcilcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHNvdXJjZXNbMF0sIHNvdXJjZXNbMV0sIGd1YXJkKSkge1xuICAgICAgY3VzdG9taXplciA9IGxlbmd0aCA8IDMgPyB1bmRlZmluZWQgOiBjdXN0b21pemVyO1xuICAgICAgbGVuZ3RoID0gMTtcbiAgICB9XG4gICAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciBzb3VyY2UgPSBzb3VyY2VzW2luZGV4XTtcbiAgICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgYXNzaWduZXIob2JqZWN0LCBzb3VyY2UsIGluZGV4LCBjdXN0b21pemVyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlQXNzaWduZXI7XG4iLCJ2YXIgYmFzZU1lcmdlID0gcmVxdWlyZSgnLi9fYmFzZU1lcmdlJyksXG4gICAgY3JlYXRlQXNzaWduZXIgPSByZXF1aXJlKCcuL19jcmVhdGVBc3NpZ25lcicpO1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uYXNzaWduYCBleGNlcHQgdGhhdCBpdCByZWN1cnNpdmVseSBtZXJnZXMgb3duIGFuZFxuICogaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgb2Ygc291cmNlIG9iamVjdHMgaW50byB0aGVcbiAqIGRlc3RpbmF0aW9uIG9iamVjdC4gU291cmNlIHByb3BlcnRpZXMgdGhhdCByZXNvbHZlIHRvIGB1bmRlZmluZWRgIGFyZVxuICogc2tpcHBlZCBpZiBhIGRlc3RpbmF0aW9uIHZhbHVlIGV4aXN0cy4gQXJyYXkgYW5kIHBsYWluIG9iamVjdCBwcm9wZXJ0aWVzXG4gKiBhcmUgbWVyZ2VkIHJlY3Vyc2l2ZWx5LiBPdGhlciBvYmplY3RzIGFuZCB2YWx1ZSB0eXBlcyBhcmUgb3ZlcnJpZGRlbiBieVxuICogYXNzaWdubWVudC4gU291cmNlIG9iamVjdHMgYXJlIGFwcGxpZWQgZnJvbSBsZWZ0IHRvIHJpZ2h0LiBTdWJzZXF1ZW50XG4gKiBzb3VyY2VzIG92ZXJ3cml0ZSBwcm9wZXJ0eSBhc3NpZ25tZW50cyBvZiBwcmV2aW91cyBzb3VyY2VzLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC41LjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAqIEBwYXJhbSB7Li4uT2JqZWN0fSBbc291cmNlc10gVGhlIHNvdXJjZSBvYmplY3RzLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHtcbiAqICAgJ2EnOiBbeyAnYic6IDIgfSwgeyAnZCc6IDQgfV1cbiAqIH07XG4gKlxuICogdmFyIG90aGVyID0ge1xuICogICAnYSc6IFt7ICdjJzogMyB9LCB7ICdlJzogNSB9XVxuICogfTtcbiAqXG4gKiBfLm1lcmdlKG9iamVjdCwgb3RoZXIpO1xuICogLy8gPT4geyAnYSc6IFt7ICdiJzogMiwgJ2MnOiAzIH0sIHsgJ2QnOiA0LCAnZSc6IDUgfV0gfVxuICovXG52YXIgbWVyZ2UgPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgpIHtcbiAgYmFzZU1lcmdlKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCk7XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBtZXJnZTtcbiIsInZhciBiYXNlRmxhdHRlbiA9IHJlcXVpcmUoJy4vX2Jhc2VGbGF0dGVuJyk7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIElORklOSVRZID0gMSAvIDA7XG5cbi8qKlxuICogUmVjdXJzaXZlbHkgZmxhdHRlbnMgYGFycmF5YC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDMuMC4wXG4gKiBAY2F0ZWdvcnkgQXJyYXlcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBmbGF0dGVuLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmxhdHRlbmVkIGFycmF5LlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmZsYXR0ZW5EZWVwKFsxLCBbMiwgWzMsIFs0XV0sIDVdXSk7XG4gKiAvLyA9PiBbMSwgMiwgMywgNCwgNV1cbiAqL1xuZnVuY3Rpb24gZmxhdHRlbkRlZXAoYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICByZXR1cm4gbGVuZ3RoID8gYmFzZUZsYXR0ZW4oYXJyYXksIElORklOSVRZKSA6IFtdO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZsYXR0ZW5EZWVwO1xuIiwiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5maW5kSW5kZXhgIGFuZCBgXy5maW5kTGFzdEluZGV4YCB3aXRob3V0XG4gKiBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VGaW5kSW5kZXgoYXJyYXksIHByZWRpY2F0ZSwgZnJvbUluZGV4LCBmcm9tUmlnaHQpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgIGluZGV4ID0gZnJvbUluZGV4ICsgKGZyb21SaWdodCA/IDEgOiAtMSk7XG5cbiAgd2hpbGUgKChmcm9tUmlnaHQgPyBpbmRleC0tIDogKytpbmRleCA8IGxlbmd0aCkpIHtcbiAgICBpZiAocHJlZGljYXRlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KSkge1xuICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cbiAgfVxuICByZXR1cm4gLTE7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUZpbmRJbmRleDtcbiIsIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNOYU5gIHdpdGhvdXQgc3VwcG9ydCBmb3IgbnVtYmVyIG9iamVjdHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYE5hTmAsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzTmFOKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPT0gdmFsdWU7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUlzTmFOO1xuIiwiLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uaW5kZXhPZmAgd2hpY2ggcGVyZm9ybXMgc3RyaWN0IGVxdWFsaXR5XG4gKiBjb21wYXJpc29ucyBvZiB2YWx1ZXMsIGkuZS4gYD09PWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAqIEBwYXJhbSB7bnVtYmVyfSBmcm9tSW5kZXggVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAqL1xuZnVuY3Rpb24gc3RyaWN0SW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xuICB2YXIgaW5kZXggPSBmcm9tSW5kZXggLSAxLFxuICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgaWYgKGFycmF5W2luZGV4XSA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0cmljdEluZGV4T2Y7XG4iLCJ2YXIgYmFzZUZpbmRJbmRleCA9IHJlcXVpcmUoJy4vX2Jhc2VGaW5kSW5kZXgnKSxcbiAgICBiYXNlSXNOYU4gPSByZXF1aXJlKCcuL19iYXNlSXNOYU4nKSxcbiAgICBzdHJpY3RJbmRleE9mID0gcmVxdWlyZSgnLi9fc3RyaWN0SW5kZXhPZicpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmluZGV4T2ZgIHdpdGhvdXQgYGZyb21JbmRleGAgYm91bmRzIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICovXG5mdW5jdGlvbiBiYXNlSW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xuICByZXR1cm4gdmFsdWUgPT09IHZhbHVlXG4gICAgPyBzdHJpY3RJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KVxuICAgIDogYmFzZUZpbmRJbmRleChhcnJheSwgYmFzZUlzTmFOLCBmcm9tSW5kZXgpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VJbmRleE9mO1xuIiwidmFyIGJhc2VJbmRleE9mID0gcmVxdWlyZSgnLi9fYmFzZUluZGV4T2YnKTtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uaW5jbHVkZXNgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxuICogc3BlY2lmeWluZyBhbiBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7Kn0gdGFyZ2V0IFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB0YXJnZXRgIGlzIGZvdW5kLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGFycmF5SW5jbHVkZXMoYXJyYXksIHZhbHVlKSB7XG4gIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgcmV0dXJuICEhbGVuZ3RoICYmIGJhc2VJbmRleE9mKGFycmF5LCB2YWx1ZSwgMCkgPiAtMTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhcnJheUluY2x1ZGVzO1xuIiwiLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2UgYGFycmF5SW5jbHVkZXNgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYSBjb21wYXJhdG9yLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICogQHBhcmFtIHsqfSB0YXJnZXQgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjb21wYXJhdG9yIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHRhcmdldGAgaXMgZm91bmQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYXJyYXlJbmNsdWRlc1dpdGgoYXJyYXksIHZhbHVlLCBjb21wYXJhdG9yKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBpZiAoY29tcGFyYXRvcih2YWx1ZSwgYXJyYXlbaW5kZXhdKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhcnJheUluY2x1ZGVzV2l0aDtcbiIsIi8qKlxuICogVGhpcyBtZXRob2QgcmV0dXJucyBgdW5kZWZpbmVkYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDIuMy4wXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRpbWVzKDIsIF8ubm9vcCk7XG4gKiAvLyA9PiBbdW5kZWZpbmVkLCB1bmRlZmluZWRdXG4gKi9cbmZ1bmN0aW9uIG5vb3AoKSB7XG4gIC8vIE5vIG9wZXJhdGlvbiBwZXJmb3JtZWQuXG59XG5cbm1vZHVsZS5leHBvcnRzID0gbm9vcDtcbiIsInZhciBTZXQgPSByZXF1aXJlKCcuL19TZXQnKSxcbiAgICBub29wID0gcmVxdWlyZSgnLi9ub29wJyksXG4gICAgc2V0VG9BcnJheSA9IHJlcXVpcmUoJy4vX3NldFRvQXJyYXknKTtcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgSU5GSU5JVFkgPSAxIC8gMDtcblxuLyoqXG4gKiBDcmVhdGVzIGEgc2V0IG9iamVjdCBvZiBgdmFsdWVzYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gdmFsdWVzIFRoZSB2YWx1ZXMgdG8gYWRkIHRvIHRoZSBzZXQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgc2V0LlxuICovXG52YXIgY3JlYXRlU2V0ID0gIShTZXQgJiYgKDEgLyBzZXRUb0FycmF5KG5ldyBTZXQoWywtMF0pKVsxXSkgPT0gSU5GSU5JVFkpID8gbm9vcCA6IGZ1bmN0aW9uKHZhbHVlcykge1xuICByZXR1cm4gbmV3IFNldCh2YWx1ZXMpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVTZXQ7XG4iLCJ2YXIgU2V0Q2FjaGUgPSByZXF1aXJlKCcuL19TZXRDYWNoZScpLFxuICAgIGFycmF5SW5jbHVkZXMgPSByZXF1aXJlKCcuL19hcnJheUluY2x1ZGVzJyksXG4gICAgYXJyYXlJbmNsdWRlc1dpdGggPSByZXF1aXJlKCcuL19hcnJheUluY2x1ZGVzV2l0aCcpLFxuICAgIGNhY2hlSGFzID0gcmVxdWlyZSgnLi9fY2FjaGVIYXMnKSxcbiAgICBjcmVhdGVTZXQgPSByZXF1aXJlKCcuL19jcmVhdGVTZXQnKSxcbiAgICBzZXRUb0FycmF5ID0gcmVxdWlyZSgnLi9fc2V0VG9BcnJheScpO1xuXG4vKiogVXNlZCBhcyB0aGUgc2l6ZSB0byBlbmFibGUgbGFyZ2UgYXJyYXkgb3B0aW1pemF0aW9ucy4gKi9cbnZhciBMQVJHRV9BUlJBWV9TSVpFID0gMjAwO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnVuaXFCeWAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGR1cGxpY2F0ZSBmcmVlIGFycmF5LlxuICovXG5mdW5jdGlvbiBiYXNlVW5pcShhcnJheSwgaXRlcmF0ZWUsIGNvbXBhcmF0b3IpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBpbmNsdWRlcyA9IGFycmF5SW5jbHVkZXMsXG4gICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICBpc0NvbW1vbiA9IHRydWUsXG4gICAgICByZXN1bHQgPSBbXSxcbiAgICAgIHNlZW4gPSByZXN1bHQ7XG5cbiAgaWYgKGNvbXBhcmF0b3IpIHtcbiAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgIGluY2x1ZGVzID0gYXJyYXlJbmNsdWRlc1dpdGg7XG4gIH1cbiAgZWxzZSBpZiAobGVuZ3RoID49IExBUkdFX0FSUkFZX1NJWkUpIHtcbiAgICB2YXIgc2V0ID0gaXRlcmF0ZWUgPyBudWxsIDogY3JlYXRlU2V0KGFycmF5KTtcbiAgICBpZiAoc2V0KSB7XG4gICAgICByZXR1cm4gc2V0VG9BcnJheShzZXQpO1xuICAgIH1cbiAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgIGluY2x1ZGVzID0gY2FjaGVIYXM7XG4gICAgc2VlbiA9IG5ldyBTZXRDYWNoZTtcbiAgfVxuICBlbHNlIHtcbiAgICBzZWVuID0gaXRlcmF0ZWUgPyBbXSA6IHJlc3VsdDtcbiAgfVxuICBvdXRlcjpcbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF0sXG4gICAgICAgIGNvbXB1dGVkID0gaXRlcmF0ZWUgPyBpdGVyYXRlZSh2YWx1ZSkgOiB2YWx1ZTtcblxuICAgIHZhbHVlID0gKGNvbXBhcmF0b3IgfHwgdmFsdWUgIT09IDApID8gdmFsdWUgOiAwO1xuICAgIGlmIChpc0NvbW1vbiAmJiBjb21wdXRlZCA9PT0gY29tcHV0ZWQpIHtcbiAgICAgIHZhciBzZWVuSW5kZXggPSBzZWVuLmxlbmd0aDtcbiAgICAgIHdoaWxlIChzZWVuSW5kZXgtLSkge1xuICAgICAgICBpZiAoc2VlbltzZWVuSW5kZXhdID09PSBjb21wdXRlZCkge1xuICAgICAgICAgIGNvbnRpbnVlIG91dGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaXRlcmF0ZWUpIHtcbiAgICAgICAgc2Vlbi5wdXNoKGNvbXB1dGVkKTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIWluY2x1ZGVzKHNlZW4sIGNvbXB1dGVkLCBjb21wYXJhdG9yKSkge1xuICAgICAgaWYgKHNlZW4gIT09IHJlc3VsdCkge1xuICAgICAgICBzZWVuLnB1c2goY29tcHV0ZWQpO1xuICAgICAgfVxuICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VVbmlxO1xuIiwidmFyIGJhc2VVbmlxID0gcmVxdWlyZSgnLi9fYmFzZVVuaXEnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZHVwbGljYXRlLWZyZWUgdmVyc2lvbiBvZiBhbiBhcnJheSwgdXNpbmdcbiAqIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXG4gKiBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGluIHdoaWNoIG9ubHkgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgZWFjaCBlbGVtZW50XG4gKiBpcyBrZXB0LiBUaGUgb3JkZXIgb2YgcmVzdWx0IHZhbHVlcyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBvcmRlciB0aGV5IG9jY3VyXG4gKiBpbiB0aGUgYXJyYXkuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEFycmF5XG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGR1cGxpY2F0ZSBmcmVlIGFycmF5LlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnVuaXEoWzIsIDEsIDJdKTtcbiAqIC8vID0+IFsyLCAxXVxuICovXG5mdW5jdGlvbiB1bmlxKGFycmF5KSB7XG4gIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSA/IGJhc2VVbmlxKGFycmF5KSA6IFtdO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHVuaXE7XG4iLCJ2YXIgYmFzZUNsb25lID0gcmVxdWlyZSgnLi9fYmFzZUNsb25lJyk7XG5cbi8qKiBVc2VkIHRvIGNvbXBvc2UgYml0bWFza3MgZm9yIGNsb25pbmcuICovXG52YXIgQ0xPTkVfREVFUF9GTEFHID0gMSxcbiAgICBDTE9ORV9TWU1CT0xTX0ZMQUcgPSA0O1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uY2xvbmVgIGV4Y2VwdCB0aGF0IGl0IHJlY3Vyc2l2ZWx5IGNsb25lcyBgdmFsdWVgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byByZWN1cnNpdmVseSBjbG9uZS5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBkZWVwIGNsb25lZCB2YWx1ZS5cbiAqIEBzZWUgXy5jbG9uZVxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0cyA9IFt7ICdhJzogMSB9LCB7ICdiJzogMiB9XTtcbiAqXG4gKiB2YXIgZGVlcCA9IF8uY2xvbmVEZWVwKG9iamVjdHMpO1xuICogY29uc29sZS5sb2coZGVlcFswXSA9PT0gb2JqZWN0c1swXSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBjbG9uZURlZXAodmFsdWUpIHtcbiAgcmV0dXJuIGJhc2VDbG9uZSh2YWx1ZSwgQ0xPTkVfREVFUF9GTEFHIHwgQ0xPTkVfU1lNQk9MU19GTEFHKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjbG9uZURlZXA7XG4iLCJ2YXIgYmFzZUVhY2ggPSByZXF1aXJlKCcuL19iYXNlRWFjaCcpLFxuICAgIGlzQXJyYXlMaWtlID0gcmVxdWlyZSgnLi9pc0FycmF5TGlrZScpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1hcGAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgbWFwcGVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBiYXNlTWFwKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgcmVzdWx0ID0gaXNBcnJheUxpa2UoY29sbGVjdGlvbikgPyBBcnJheShjb2xsZWN0aW9uLmxlbmd0aCkgOiBbXTtcblxuICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwga2V5LCBjb2xsZWN0aW9uKSB7XG4gICAgcmVzdWx0WysraW5kZXhdID0gaXRlcmF0ZWUodmFsdWUsIGtleSwgY29sbGVjdGlvbik7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VNYXA7XG4iLCIvKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNvcnRCeWAgd2hpY2ggdXNlcyBgY29tcGFyZXJgIHRvIGRlZmluZSB0aGVcbiAqIHNvcnQgb3JkZXIgb2YgYGFycmF5YCBhbmQgcmVwbGFjZXMgY3JpdGVyaWEgb2JqZWN0cyB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmdcbiAqIHZhbHVlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNvcnQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjb21wYXJlciBUaGUgZnVuY3Rpb24gdG8gZGVmaW5lIHNvcnQgb3JkZXIuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gYmFzZVNvcnRCeShhcnJheSwgY29tcGFyZXIpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBhcnJheS5zb3J0KGNvbXBhcmVyKTtcbiAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgYXJyYXlbbGVuZ3RoXSA9IGFycmF5W2xlbmd0aF0udmFsdWU7XG4gIH1cbiAgcmV0dXJuIGFycmF5O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VTb3J0Qnk7XG4iLCJ2YXIgaXNTeW1ib2wgPSByZXF1aXJlKCcuL2lzU3ltYm9sJyk7XG5cbi8qKlxuICogQ29tcGFyZXMgdmFsdWVzIHRvIHNvcnQgdGhlbSBpbiBhc2NlbmRpbmcgb3JkZXIuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc29ydCBvcmRlciBpbmRpY2F0b3IgZm9yIGB2YWx1ZWAuXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVBc2NlbmRpbmcodmFsdWUsIG90aGVyKSB7XG4gIGlmICh2YWx1ZSAhPT0gb3RoZXIpIHtcbiAgICB2YXIgdmFsSXNEZWZpbmVkID0gdmFsdWUgIT09IHVuZGVmaW5lZCxcbiAgICAgICAgdmFsSXNOdWxsID0gdmFsdWUgPT09IG51bGwsXG4gICAgICAgIHZhbElzUmVmbGV4aXZlID0gdmFsdWUgPT09IHZhbHVlLFxuICAgICAgICB2YWxJc1N5bWJvbCA9IGlzU3ltYm9sKHZhbHVlKTtcblxuICAgIHZhciBvdGhJc0RlZmluZWQgPSBvdGhlciAhPT0gdW5kZWZpbmVkLFxuICAgICAgICBvdGhJc051bGwgPSBvdGhlciA9PT0gbnVsbCxcbiAgICAgICAgb3RoSXNSZWZsZXhpdmUgPSBvdGhlciA9PT0gb3RoZXIsXG4gICAgICAgIG90aElzU3ltYm9sID0gaXNTeW1ib2wob3RoZXIpO1xuXG4gICAgaWYgKCghb3RoSXNOdWxsICYmICFvdGhJc1N5bWJvbCAmJiAhdmFsSXNTeW1ib2wgJiYgdmFsdWUgPiBvdGhlcikgfHxcbiAgICAgICAgKHZhbElzU3ltYm9sICYmIG90aElzRGVmaW5lZCAmJiBvdGhJc1JlZmxleGl2ZSAmJiAhb3RoSXNOdWxsICYmICFvdGhJc1N5bWJvbCkgfHxcbiAgICAgICAgKHZhbElzTnVsbCAmJiBvdGhJc0RlZmluZWQgJiYgb3RoSXNSZWZsZXhpdmUpIHx8XG4gICAgICAgICghdmFsSXNEZWZpbmVkICYmIG90aElzUmVmbGV4aXZlKSB8fFxuICAgICAgICAhdmFsSXNSZWZsZXhpdmUpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgICBpZiAoKCF2YWxJc051bGwgJiYgIXZhbElzU3ltYm9sICYmICFvdGhJc1N5bWJvbCAmJiB2YWx1ZSA8IG90aGVyKSB8fFxuICAgICAgICAob3RoSXNTeW1ib2wgJiYgdmFsSXNEZWZpbmVkICYmIHZhbElzUmVmbGV4aXZlICYmICF2YWxJc051bGwgJiYgIXZhbElzU3ltYm9sKSB8fFxuICAgICAgICAob3RoSXNOdWxsICYmIHZhbElzRGVmaW5lZCAmJiB2YWxJc1JlZmxleGl2ZSkgfHxcbiAgICAgICAgKCFvdGhJc0RlZmluZWQgJiYgdmFsSXNSZWZsZXhpdmUpIHx8XG4gICAgICAgICFvdGhJc1JlZmxleGl2ZSkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgfVxuICByZXR1cm4gMDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjb21wYXJlQXNjZW5kaW5nO1xuIiwidmFyIGNvbXBhcmVBc2NlbmRpbmcgPSByZXF1aXJlKCcuL19jb21wYXJlQXNjZW5kaW5nJyk7XG5cbi8qKlxuICogVXNlZCBieSBgXy5vcmRlckJ5YCB0byBjb21wYXJlIG11bHRpcGxlIHByb3BlcnRpZXMgb2YgYSB2YWx1ZSB0byBhbm90aGVyXG4gKiBhbmQgc3RhYmxlIHNvcnQgdGhlbS5cbiAqXG4gKiBJZiBgb3JkZXJzYCBpcyB1bnNwZWNpZmllZCwgYWxsIHZhbHVlcyBhcmUgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlci4gT3RoZXJ3aXNlLFxuICogc3BlY2lmeSBhbiBvcmRlciBvZiBcImRlc2NcIiBmb3IgZGVzY2VuZGluZyBvciBcImFzY1wiIGZvciBhc2NlbmRpbmcgc29ydCBvcmRlclxuICogb2YgY29ycmVzcG9uZGluZyB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjb21wYXJlLlxuICogQHBhcmFtIHtPYmplY3R9IG90aGVyIFRoZSBvdGhlciBvYmplY3QgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbltdfHN0cmluZ1tdfSBvcmRlcnMgVGhlIG9yZGVyIHRvIHNvcnQgYnkgZm9yIGVhY2ggcHJvcGVydHkuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzb3J0IG9yZGVyIGluZGljYXRvciBmb3IgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVNdWx0aXBsZShvYmplY3QsIG90aGVyLCBvcmRlcnMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBvYmpDcml0ZXJpYSA9IG9iamVjdC5jcml0ZXJpYSxcbiAgICAgIG90aENyaXRlcmlhID0gb3RoZXIuY3JpdGVyaWEsXG4gICAgICBsZW5ndGggPSBvYmpDcml0ZXJpYS5sZW5ndGgsXG4gICAgICBvcmRlcnNMZW5ndGggPSBvcmRlcnMubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIHJlc3VsdCA9IGNvbXBhcmVBc2NlbmRpbmcob2JqQ3JpdGVyaWFbaW5kZXhdLCBvdGhDcml0ZXJpYVtpbmRleF0pO1xuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIGlmIChpbmRleCA+PSBvcmRlcnNMZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHZhciBvcmRlciA9IG9yZGVyc1tpbmRleF07XG4gICAgICByZXR1cm4gcmVzdWx0ICogKG9yZGVyID09ICdkZXNjJyA/IC0xIDogMSk7XG4gICAgfVxuICB9XG4gIC8vIEZpeGVzIGFuIGBBcnJheSNzb3J0YCBidWcgaW4gdGhlIEpTIGVuZ2luZSBlbWJlZGRlZCBpbiBBZG9iZSBhcHBsaWNhdGlvbnNcbiAgLy8gdGhhdCBjYXVzZXMgaXQsIHVuZGVyIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcywgdG8gcHJvdmlkZSB0aGUgc2FtZSB2YWx1ZSBmb3JcbiAgLy8gYG9iamVjdGAgYW5kIGBvdGhlcmAuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vamFzaGtlbmFzL3VuZGVyc2NvcmUvcHVsbC8xMjQ3XG4gIC8vIGZvciBtb3JlIGRldGFpbHMuXG4gIC8vXG4gIC8vIFRoaXMgYWxzbyBlbnN1cmVzIGEgc3RhYmxlIHNvcnQgaW4gVjggYW5kIG90aGVyIGVuZ2luZXMuXG4gIC8vIFNlZSBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD05MCBmb3IgbW9yZSBkZXRhaWxzLlxuICByZXR1cm4gb2JqZWN0LmluZGV4IC0gb3RoZXIuaW5kZXg7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29tcGFyZU11bHRpcGxlO1xuIiwidmFyIGFycmF5TWFwID0gcmVxdWlyZSgnLi9fYXJyYXlNYXAnKSxcbiAgICBiYXNlR2V0ID0gcmVxdWlyZSgnLi9fYmFzZUdldCcpLFxuICAgIGJhc2VJdGVyYXRlZSA9IHJlcXVpcmUoJy4vX2Jhc2VJdGVyYXRlZScpLFxuICAgIGJhc2VNYXAgPSByZXF1aXJlKCcuL19iYXNlTWFwJyksXG4gICAgYmFzZVNvcnRCeSA9IHJlcXVpcmUoJy4vX2Jhc2VTb3J0QnknKSxcbiAgICBiYXNlVW5hcnkgPSByZXF1aXJlKCcuL19iYXNlVW5hcnknKSxcbiAgICBjb21wYXJlTXVsdGlwbGUgPSByZXF1aXJlKCcuL19jb21wYXJlTXVsdGlwbGUnKSxcbiAgICBpZGVudGl0eSA9IHJlcXVpcmUoJy4vaWRlbnRpdHknKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi9pc0FycmF5Jyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ub3JkZXJCeWAgd2l0aG91dCBwYXJhbSBndWFyZHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb25bXXxPYmplY3RbXXxzdHJpbmdbXX0gaXRlcmF0ZWVzIFRoZSBpdGVyYXRlZXMgdG8gc29ydCBieS5cbiAqIEBwYXJhbSB7c3RyaW5nW119IG9yZGVycyBUaGUgc29ydCBvcmRlcnMgb2YgYGl0ZXJhdGVlc2AuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzb3J0ZWQgYXJyYXkuXG4gKi9cbmZ1bmN0aW9uIGJhc2VPcmRlckJ5KGNvbGxlY3Rpb24sIGl0ZXJhdGVlcywgb3JkZXJzKSB7XG4gIGlmIChpdGVyYXRlZXMubGVuZ3RoKSB7XG4gICAgaXRlcmF0ZWVzID0gYXJyYXlNYXAoaXRlcmF0ZWVzLCBmdW5jdGlvbihpdGVyYXRlZSkge1xuICAgICAgaWYgKGlzQXJyYXkoaXRlcmF0ZWUpKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBiYXNlR2V0KHZhbHVlLCBpdGVyYXRlZS5sZW5ndGggPT09IDEgPyBpdGVyYXRlZVswXSA6IGl0ZXJhdGVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGl0ZXJhdGVlO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGl0ZXJhdGVlcyA9IFtpZGVudGl0eV07XG4gIH1cblxuICB2YXIgaW5kZXggPSAtMTtcbiAgaXRlcmF0ZWVzID0gYXJyYXlNYXAoaXRlcmF0ZWVzLCBiYXNlVW5hcnkoYmFzZUl0ZXJhdGVlKSk7XG5cbiAgdmFyIHJlc3VsdCA9IGJhc2VNYXAoY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGtleSwgY29sbGVjdGlvbikge1xuICAgIHZhciBjcml0ZXJpYSA9IGFycmF5TWFwKGl0ZXJhdGVlcywgZnVuY3Rpb24oaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBpdGVyYXRlZSh2YWx1ZSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHsgJ2NyaXRlcmlhJzogY3JpdGVyaWEsICdpbmRleCc6ICsraW5kZXgsICd2YWx1ZSc6IHZhbHVlIH07XG4gIH0pO1xuXG4gIHJldHVybiBiYXNlU29ydEJ5KHJlc3VsdCwgZnVuY3Rpb24ob2JqZWN0LCBvdGhlcikge1xuICAgIHJldHVybiBjb21wYXJlTXVsdGlwbGUob2JqZWN0LCBvdGhlciwgb3JkZXJzKTtcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZU9yZGVyQnk7XG4iLCJ2YXIgYmFzZUZsYXR0ZW4gPSByZXF1aXJlKCcuL19iYXNlRmxhdHRlbicpLFxuICAgIGJhc2VPcmRlckJ5ID0gcmVxdWlyZSgnLi9fYmFzZU9yZGVyQnknKSxcbiAgICBiYXNlUmVzdCA9IHJlcXVpcmUoJy4vX2Jhc2VSZXN0JyksXG4gICAgaXNJdGVyYXRlZUNhbGwgPSByZXF1aXJlKCcuL19pc0l0ZXJhdGVlQ2FsbCcpO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgZWxlbWVudHMsIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIgYnkgdGhlIHJlc3VsdHMgb2ZcbiAqIHJ1bm5pbmcgZWFjaCBlbGVtZW50IGluIGEgY29sbGVjdGlvbiB0aHJ1IGVhY2ggaXRlcmF0ZWUuIFRoaXMgbWV0aG9kXG4gKiBwZXJmb3JtcyBhIHN0YWJsZSBzb3J0LCB0aGF0IGlzLCBpdCBwcmVzZXJ2ZXMgdGhlIG9yaWdpbmFsIHNvcnQgb3JkZXIgb2ZcbiAqIGVxdWFsIGVsZW1lbnRzLiBUaGUgaXRlcmF0ZWVzIGFyZSBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0gey4uLihGdW5jdGlvbnxGdW5jdGlvbltdKX0gW2l0ZXJhdGVlcz1bXy5pZGVudGl0eV1dXG4gKiAgVGhlIGl0ZXJhdGVlcyB0byBzb3J0IGJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgc29ydGVkIGFycmF5LlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgdXNlcnMgPSBbXG4gKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQ4IH0sXG4gKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2IH0sXG4gKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDMwIH0sXG4gKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM0IH1cbiAqIF07XG4gKlxuICogXy5zb3J0QnkodXNlcnMsIFtmdW5jdGlvbihvKSB7IHJldHVybiBvLnVzZXI7IH1dKTtcbiAqIC8vID0+IG9iamVjdHMgZm9yIFtbJ2Jhcm5leScsIDM2XSwgWydiYXJuZXknLCAzNF0sIFsnZnJlZCcsIDQ4XSwgWydmcmVkJywgMzBdXVxuICpcbiAqIF8uc29ydEJ5KHVzZXJzLCBbJ3VzZXInLCAnYWdlJ10pO1xuICogLy8gPT4gb2JqZWN0cyBmb3IgW1snYmFybmV5JywgMzRdLCBbJ2Jhcm5leScsIDM2XSwgWydmcmVkJywgMzBdLCBbJ2ZyZWQnLCA0OF1dXG4gKi9cbnZhciBzb3J0QnkgPSBiYXNlUmVzdChmdW5jdGlvbihjb2xsZWN0aW9uLCBpdGVyYXRlZXMpIHtcbiAgaWYgKGNvbGxlY3Rpb24gPT0gbnVsbCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICB2YXIgbGVuZ3RoID0gaXRlcmF0ZWVzLmxlbmd0aDtcbiAgaWYgKGxlbmd0aCA+IDEgJiYgaXNJdGVyYXRlZUNhbGwoY29sbGVjdGlvbiwgaXRlcmF0ZWVzWzBdLCBpdGVyYXRlZXNbMV0pKSB7XG4gICAgaXRlcmF0ZWVzID0gW107XG4gIH0gZWxzZSBpZiAobGVuZ3RoID4gMiAmJiBpc0l0ZXJhdGVlQ2FsbChpdGVyYXRlZXNbMF0sIGl0ZXJhdGVlc1sxXSwgaXRlcmF0ZWVzWzJdKSkge1xuICAgIGl0ZXJhdGVlcyA9IFtpdGVyYXRlZXNbMF1dO1xuICB9XG4gIHJldHVybiBiYXNlT3JkZXJCeShjb2xsZWN0aW9uLCBiYXNlRmxhdHRlbihpdGVyYXRlZXMsIDEpLCBbXSk7XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBzb3J0Qnk7XG4iLCJ2YXIgYmFzZVVuaXEgPSByZXF1aXJlKCcuL19iYXNlVW5pcScpO1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8udW5pcWAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY29tcGFyYXRvcmAgd2hpY2hcbiAqIGlzIGludm9rZWQgdG8gY29tcGFyZSBlbGVtZW50cyBvZiBgYXJyYXlgLiBUaGUgb3JkZXIgb2YgcmVzdWx0IHZhbHVlcyBpc1xuICogZGV0ZXJtaW5lZCBieSB0aGUgb3JkZXIgdGhleSBvY2N1ciBpbiB0aGUgYXJyYXkuVGhlIGNvbXBhcmF0b3IgaXMgaW52b2tlZFxuICogd2l0aCB0d28gYXJndW1lbnRzOiAoYXJyVmFsLCBvdGhWYWwpLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBBcnJheVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGR1cGxpY2F0ZSBmcmVlIGFycmF5LlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0cyA9IFt7ICd4JzogMSwgJ3knOiAyIH0sIHsgJ3gnOiAyLCAneSc6IDEgfSwgeyAneCc6IDEsICd5JzogMiB9XTtcbiAqXG4gKiBfLnVuaXFXaXRoKG9iamVjdHMsIF8uaXNFcXVhbCk7XG4gKiAvLyA9PiBbeyAneCc6IDEsICd5JzogMiB9LCB7ICd4JzogMiwgJ3knOiAxIH1dXG4gKi9cbmZ1bmN0aW9uIHVuaXFXaXRoKGFycmF5LCBjb21wYXJhdG9yKSB7XG4gIGNvbXBhcmF0b3IgPSB0eXBlb2YgY29tcGFyYXRvciA9PSAnZnVuY3Rpb24nID8gY29tcGFyYXRvciA6IHVuZGVmaW5lZDtcbiAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpID8gYmFzZVVuaXEoYXJyYXksIHVuZGVmaW5lZCwgY29tcGFyYXRvcikgOiBbXTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB1bmlxV2l0aDtcbiIsInZhciBiYXNlUmVzdCA9IHJlcXVpcmUoJy4vX2Jhc2VSZXN0JyksXG4gICAgZXEgPSByZXF1aXJlKCcuL2VxJyksXG4gICAgaXNJdGVyYXRlZUNhbGwgPSByZXF1aXJlKCcuL19pc0l0ZXJhdGVlQ2FsbCcpLFxuICAgIGtleXNJbiA9IHJlcXVpcmUoJy4va2V5c0luJyk7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogQXNzaWducyBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0aWVzIG9mIHNvdXJjZVxuICogb2JqZWN0cyB0byB0aGUgZGVzdGluYXRpb24gb2JqZWN0IGZvciBhbGwgZGVzdGluYXRpb24gcHJvcGVydGllcyB0aGF0XG4gKiByZXNvbHZlIHRvIGB1bmRlZmluZWRgLiBTb3VyY2Ugb2JqZWN0cyBhcmUgYXBwbGllZCBmcm9tIGxlZnQgdG8gcmlnaHQuXG4gKiBPbmNlIGEgcHJvcGVydHkgaXMgc2V0LCBhZGRpdGlvbmFsIHZhbHVlcyBvZiB0aGUgc2FtZSBwcm9wZXJ0eSBhcmUgaWdub3JlZC5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gKiBAcGFyYW0gey4uLk9iamVjdH0gW3NvdXJjZXNdIFRoZSBzb3VyY2Ugb2JqZWN0cy5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKiBAc2VlIF8uZGVmYXVsdHNEZWVwXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uZGVmYXVsdHMoeyAnYSc6IDEgfSwgeyAnYic6IDIgfSwgeyAnYSc6IDMgfSk7XG4gKiAvLyA9PiB7ICdhJzogMSwgJ2InOiAyIH1cbiAqL1xudmFyIGRlZmF1bHRzID0gYmFzZVJlc3QoZnVuY3Rpb24ob2JqZWN0LCBzb3VyY2VzKSB7XG4gIG9iamVjdCA9IE9iamVjdChvYmplY3QpO1xuXG4gIHZhciBpbmRleCA9IC0xO1xuICB2YXIgbGVuZ3RoID0gc291cmNlcy5sZW5ndGg7XG4gIHZhciBndWFyZCA9IGxlbmd0aCA+IDIgPyBzb3VyY2VzWzJdIDogdW5kZWZpbmVkO1xuXG4gIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChzb3VyY2VzWzBdLCBzb3VyY2VzWzFdLCBndWFyZCkpIHtcbiAgICBsZW5ndGggPSAxO1xuICB9XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIgc291cmNlID0gc291cmNlc1tpbmRleF07XG4gICAgdmFyIHByb3BzID0ga2V5c0luKHNvdXJjZSk7XG4gICAgdmFyIHByb3BzSW5kZXggPSAtMTtcbiAgICB2YXIgcHJvcHNMZW5ndGggPSBwcm9wcy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytwcm9wc0luZGV4IDwgcHJvcHNMZW5ndGgpIHtcbiAgICAgIHZhciBrZXkgPSBwcm9wc1twcm9wc0luZGV4XTtcbiAgICAgIHZhciB2YWx1ZSA9IG9iamVjdFtrZXldO1xuXG4gICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgIChlcSh2YWx1ZSwgb2JqZWN0UHJvdG9ba2V5XSkgJiYgIWhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSkge1xuICAgICAgICBvYmplY3Rba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvYmplY3Q7XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBkZWZhdWx0cztcbiIsInZhciBTZXRDYWNoZSA9IHJlcXVpcmUoJy4vX1NldENhY2hlJyksXG4gICAgYXJyYXlJbmNsdWRlcyA9IHJlcXVpcmUoJy4vX2FycmF5SW5jbHVkZXMnKSxcbiAgICBhcnJheUluY2x1ZGVzV2l0aCA9IHJlcXVpcmUoJy4vX2FycmF5SW5jbHVkZXNXaXRoJyksXG4gICAgYXJyYXlNYXAgPSByZXF1aXJlKCcuL19hcnJheU1hcCcpLFxuICAgIGJhc2VVbmFyeSA9IHJlcXVpcmUoJy4vX2Jhc2VVbmFyeScpLFxuICAgIGNhY2hlSGFzID0gcmVxdWlyZSgnLi9fY2FjaGVIYXMnKTtcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU1pbiA9IE1hdGgubWluO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZHMgbGlrZSBgXy5pbnRlcnNlY3Rpb25gLCB3aXRob3V0IHN1cHBvcnRcbiAqIGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLCB0aGF0IGFjY2VwdHMgYW4gYXJyYXkgb2YgYXJyYXlzIHRvIGluc3BlY3QuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5cyBUaGUgYXJyYXlzIHRvIGluc3BlY3QuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWVdIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBzaGFyZWQgdmFsdWVzLlxuICovXG5mdW5jdGlvbiBiYXNlSW50ZXJzZWN0aW9uKGFycmF5cywgaXRlcmF0ZWUsIGNvbXBhcmF0b3IpIHtcbiAgdmFyIGluY2x1ZGVzID0gY29tcGFyYXRvciA/IGFycmF5SW5jbHVkZXNXaXRoIDogYXJyYXlJbmNsdWRlcyxcbiAgICAgIGxlbmd0aCA9IGFycmF5c1swXS5sZW5ndGgsXG4gICAgICBvdGhMZW5ndGggPSBhcnJheXMubGVuZ3RoLFxuICAgICAgb3RoSW5kZXggPSBvdGhMZW5ndGgsXG4gICAgICBjYWNoZXMgPSBBcnJheShvdGhMZW5ndGgpLFxuICAgICAgbWF4TGVuZ3RoID0gSW5maW5pdHksXG4gICAgICByZXN1bHQgPSBbXTtcblxuICB3aGlsZSAob3RoSW5kZXgtLSkge1xuICAgIHZhciBhcnJheSA9IGFycmF5c1tvdGhJbmRleF07XG4gICAgaWYgKG90aEluZGV4ICYmIGl0ZXJhdGVlKSB7XG4gICAgICBhcnJheSA9IGFycmF5TWFwKGFycmF5LCBiYXNlVW5hcnkoaXRlcmF0ZWUpKTtcbiAgICB9XG4gICAgbWF4TGVuZ3RoID0gbmF0aXZlTWluKGFycmF5Lmxlbmd0aCwgbWF4TGVuZ3RoKTtcbiAgICBjYWNoZXNbb3RoSW5kZXhdID0gIWNvbXBhcmF0b3IgJiYgKGl0ZXJhdGVlIHx8IChsZW5ndGggPj0gMTIwICYmIGFycmF5Lmxlbmd0aCA+PSAxMjApKVxuICAgICAgPyBuZXcgU2V0Q2FjaGUob3RoSW5kZXggJiYgYXJyYXkpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgfVxuICBhcnJheSA9IGFycmF5c1swXTtcblxuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIHNlZW4gPSBjYWNoZXNbMF07XG5cbiAgb3V0ZXI6XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoICYmIHJlc3VsdC5sZW5ndGggPCBtYXhMZW5ndGgpIHtcbiAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF0sXG4gICAgICAgIGNvbXB1dGVkID0gaXRlcmF0ZWUgPyBpdGVyYXRlZSh2YWx1ZSkgOiB2YWx1ZTtcblxuICAgIHZhbHVlID0gKGNvbXBhcmF0b3IgfHwgdmFsdWUgIT09IDApID8gdmFsdWUgOiAwO1xuICAgIGlmICghKHNlZW5cbiAgICAgICAgICA/IGNhY2hlSGFzKHNlZW4sIGNvbXB1dGVkKVxuICAgICAgICAgIDogaW5jbHVkZXMocmVzdWx0LCBjb21wdXRlZCwgY29tcGFyYXRvcilcbiAgICAgICAgKSkge1xuICAgICAgb3RoSW5kZXggPSBvdGhMZW5ndGg7XG4gICAgICB3aGlsZSAoLS1vdGhJbmRleCkge1xuICAgICAgICB2YXIgY2FjaGUgPSBjYWNoZXNbb3RoSW5kZXhdO1xuICAgICAgICBpZiAoIShjYWNoZVxuICAgICAgICAgICAgICA/IGNhY2hlSGFzKGNhY2hlLCBjb21wdXRlZClcbiAgICAgICAgICAgICAgOiBpbmNsdWRlcyhhcnJheXNbb3RoSW5kZXhdLCBjb21wdXRlZCwgY29tcGFyYXRvcikpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICBjb250aW51ZSBvdXRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHNlZW4pIHtcbiAgICAgICAgc2Vlbi5wdXNoKGNvbXB1dGVkKTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSW50ZXJzZWN0aW9uO1xuIiwidmFyIGlzQXJyYXlMaWtlT2JqZWN0ID0gcmVxdWlyZSgnLi9pc0FycmF5TGlrZU9iamVjdCcpO1xuXG4vKipcbiAqIENhc3RzIGB2YWx1ZWAgdG8gYW4gZW1wdHkgYXJyYXkgaWYgaXQncyBub3QgYW4gYXJyYXkgbGlrZSBvYmplY3QuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyB7QXJyYXl8T2JqZWN0fSBSZXR1cm5zIHRoZSBjYXN0IGFycmF5LWxpa2Ugb2JqZWN0LlxuICovXG5mdW5jdGlvbiBjYXN0QXJyYXlMaWtlT2JqZWN0KHZhbHVlKSB7XG4gIHJldHVybiBpc0FycmF5TGlrZU9iamVjdCh2YWx1ZSkgPyB2YWx1ZSA6IFtdO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNhc3RBcnJheUxpa2VPYmplY3Q7XG4iLCJ2YXIgYXJyYXlNYXAgPSByZXF1aXJlKCcuL19hcnJheU1hcCcpLFxuICAgIGJhc2VJbnRlcnNlY3Rpb24gPSByZXF1aXJlKCcuL19iYXNlSW50ZXJzZWN0aW9uJyksXG4gICAgYmFzZVJlc3QgPSByZXF1aXJlKCcuL19iYXNlUmVzdCcpLFxuICAgIGNhc3RBcnJheUxpa2VPYmplY3QgPSByZXF1aXJlKCcuL19jYXN0QXJyYXlMaWtlT2JqZWN0JyksXG4gICAgbGFzdCA9IHJlcXVpcmUoJy4vbGFzdCcpO1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uaW50ZXJzZWN0aW9uYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjb21wYXJhdG9yYFxuICogd2hpY2ggaXMgaW52b2tlZCB0byBjb21wYXJlIGVsZW1lbnRzIG9mIGBhcnJheXNgLiBUaGUgb3JkZXIgYW5kIHJlZmVyZW5jZXNcbiAqIG9mIHJlc3VsdCB2YWx1ZXMgYXJlIGRldGVybWluZWQgYnkgdGhlIGZpcnN0IGFycmF5LiBUaGUgY29tcGFyYXRvciBpc1xuICogaW52b2tlZCB3aXRoIHR3byBhcmd1bWVudHM6IChhcnJWYWwsIG90aFZhbCkuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IEFycmF5XG4gKiBAcGFyYW0gey4uLkFycmF5fSBbYXJyYXlzXSBUaGUgYXJyYXlzIHRvIGluc3BlY3QuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGludGVyc2VjdGluZyB2YWx1ZXMuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3RzID0gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDIsICd5JzogMSB9XTtcbiAqIHZhciBvdGhlcnMgPSBbeyAneCc6IDEsICd5JzogMSB9LCB7ICd4JzogMSwgJ3knOiAyIH1dO1xuICpcbiAqIF8uaW50ZXJzZWN0aW9uV2l0aChvYmplY3RzLCBvdGhlcnMsIF8uaXNFcXVhbCk7XG4gKiAvLyA9PiBbeyAneCc6IDEsICd5JzogMiB9XVxuICovXG52YXIgaW50ZXJzZWN0aW9uV2l0aCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICB2YXIgY29tcGFyYXRvciA9IGxhc3QoYXJyYXlzKSxcbiAgICAgIG1hcHBlZCA9IGFycmF5TWFwKGFycmF5cywgY2FzdEFycmF5TGlrZU9iamVjdCk7XG5cbiAgY29tcGFyYXRvciA9IHR5cGVvZiBjb21wYXJhdG9yID09ICdmdW5jdGlvbicgPyBjb21wYXJhdG9yIDogdW5kZWZpbmVkO1xuICBpZiAoY29tcGFyYXRvcikge1xuICAgIG1hcHBlZC5wb3AoKTtcbiAgfVxuICByZXR1cm4gKG1hcHBlZC5sZW5ndGggJiYgbWFwcGVkWzBdID09PSBhcnJheXNbMF0pXG4gICAgPyBiYXNlSW50ZXJzZWN0aW9uKG1hcHBlZCwgdW5kZWZpbmVkLCBjb21wYXJhdG9yKVxuICAgIDogW107XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBpbnRlcnNlY3Rpb25XaXRoO1xuIiwidmFyIGJhc2VHZXRUYWcgPSByZXF1aXJlKCcuL19iYXNlR2V0VGFnJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi9pc09iamVjdExpa2UnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGJvb2xUYWcgPSAnW29iamVjdCBCb29sZWFuXSc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGJvb2xlYW4gcHJpbWl0aXZlIG9yIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGJvb2xlYW4sIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0Jvb2xlYW4oZmFsc2UpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNCb29sZWFuKG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNCb29sZWFuKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gZmFsc2UgfHxcbiAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBib29sVGFnKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0Jvb2xlYW47XG4iLCJ2YXIgaXNFcXVhbCA9IHJlcXVpcmUoJ2xvZGFzaC9pc0VxdWFsJylcbnZhciBzb3J0QnkgPSByZXF1aXJlKCdsb2Rhc2gvc29ydEJ5JylcbnZhciB1bmlxID0gcmVxdWlyZSgnbG9kYXNoL3VuaXEnKVxudmFyIHVuaXFXaXRoID0gcmVxdWlyZSgnbG9kYXNoL3VuaXFXaXRoJylcbnZhciBkZWZhdWx0cyA9IHJlcXVpcmUoJ2xvZGFzaC9kZWZhdWx0cycpXG52YXIgaW50ZXJzZWN0aW9uV2l0aCA9IHJlcXVpcmUoJ2xvZGFzaC9pbnRlcnNlY3Rpb25XaXRoJylcbnZhciBpc1BsYWluT2JqZWN0ID0gcmVxdWlyZSgnbG9kYXNoL2lzUGxhaW5PYmplY3QnKVxudmFyIGlzQm9vbGVhbiA9IHJlcXVpcmUoJ2xvZGFzaC9pc0Jvb2xlYW4nKVxuXG52YXIgbm9ybWFsaXplQXJyYXkgPSB2YWwgPT4gQXJyYXkuaXNBcnJheSh2YWwpXG4gID8gdmFsIDogW3ZhbF1cbnZhciB1bmRlZiA9IHZhbCA9PiB2YWwgPT09IHVuZGVmaW5lZFxudmFyIGtleXMgPSBvYmogPT4gaXNQbGFpbk9iamVjdChvYmopIHx8IEFycmF5LmlzQXJyYXkob2JqKSA/IE9iamVjdC5rZXlzKG9iaikgOiBbXVxudmFyIGhhcyA9IChvYmosIGtleSkgPT4gb2JqLmhhc093blByb3BlcnR5KGtleSlcbnZhciBzdHJpbmdBcnJheSA9IGFyciA9PiBzb3J0QnkodW5pcShhcnIpKVxudmFyIHVuZGVmRW1wdHkgPSB2YWwgPT4gdW5kZWYodmFsKSB8fCAoQXJyYXkuaXNBcnJheSh2YWwpICYmIHZhbC5sZW5ndGggPT09IDApXG52YXIga2V5VmFsRXF1YWwgPSAoYSwgYiwga2V5LCBjb21wYXJlKSA9PiBiICYmIGhhcyhiLCBrZXkpICYmIGEgJiYgaGFzKGEsIGtleSkgJiYgY29tcGFyZShhW2tleV0sIGJba2V5XSlcbnZhciB1bmRlZkFuZFplcm8gPSAoYSwgYikgPT4gKHVuZGVmKGEpICYmIGIgPT09IDApIHx8ICh1bmRlZihiKSAmJiBhID09PSAwKSB8fCBpc0VxdWFsKGEsIGIpXG52YXIgZmFsc2VVbmRlZmluZWQgPSAoYSwgYikgPT4gKHVuZGVmKGEpICYmIGIgPT09IGZhbHNlKSB8fCAodW5kZWYoYikgJiYgYSA9PT0gZmFsc2UpIHx8IGlzRXF1YWwoYSwgYilcbnZhciBlbXB0eVNjaGVtYSA9IHNjaGVtYSA9PiB1bmRlZihzY2hlbWEpIHx8IGlzRXF1YWwoc2NoZW1hLCB7fSkgfHwgc2NoZW1hID09PSB0cnVlXG52YXIgZW1wdHlPYmpVbmRlZiA9IHNjaGVtYSA9PiB1bmRlZihzY2hlbWEpIHx8IGlzRXF1YWwoc2NoZW1hLCB7fSlcbnZhciBpc1NjaGVtYSA9IHZhbCA9PiB1bmRlZih2YWwpIHx8IGlzUGxhaW5PYmplY3QodmFsKSB8fCB2YWwgPT09IHRydWUgfHwgdmFsID09PSBmYWxzZVxuXG5mdW5jdGlvbiB1bmRlZkFycmF5RXF1YWwoYSwgYikge1xuICBpZiAodW5kZWZFbXB0eShhKSAmJiB1bmRlZkVtcHR5KGIpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gaXNFcXVhbChzdHJpbmdBcnJheShhKSwgc3RyaW5nQXJyYXkoYikpXG4gIH1cbn1cblxuZnVuY3Rpb24gdW5zb3J0ZWROb3JtYWxpemVkQXJyYXkoYSwgYikge1xuICBhID0gbm9ybWFsaXplQXJyYXkoYSlcbiAgYiA9IG5vcm1hbGl6ZUFycmF5KGIpXG4gIHJldHVybiBpc0VxdWFsKHN0cmluZ0FycmF5KGEpLCBzdHJpbmdBcnJheShiKSlcbn1cblxuZnVuY3Rpb24gc2NoZW1hR3JvdXAoYSwgYiwga2V5LCBjb21wYXJlKSB7XG4gIHZhciBhbGxQcm9wcyA9IHVuaXEoa2V5cyhhKS5jb25jYXQoa2V5cyhiKSkpXG4gIGlmIChlbXB0eU9ialVuZGVmKGEpICYmIGVtcHR5T2JqVW5kZWYoYikpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9IGVsc2UgaWYgKGVtcHR5T2JqVW5kZWYoYSkgJiYga2V5cyhiKS5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfSBlbHNlIGlmIChlbXB0eU9ialVuZGVmKGIpICYmIGtleXMoYSkubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gYWxsUHJvcHMuZXZlcnkoZnVuY3Rpb24oa2V5KSB7XG4gICAgdmFyIGFWYWwgPSBhW2tleV1cbiAgICB2YXIgYlZhbCA9IGJba2V5XVxuICAgIGlmIChBcnJheS5pc0FycmF5KGFWYWwpICYmIEFycmF5LmlzQXJyYXkoYlZhbCkpIHtcbiAgICAgIHJldHVybiBpc0VxdWFsKHN0cmluZ0FycmF5KGEpLCBzdHJpbmdBcnJheShiKSlcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYVZhbCkgJiYgIUFycmF5LmlzQXJyYXkoYlZhbCkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShiVmFsKSAmJiAhQXJyYXkuaXNBcnJheShhVmFsKSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICAgIHJldHVybiBrZXlWYWxFcXVhbChhLCBiLCBrZXksIGNvbXBhcmUpXG4gIH0pXG59XG5cbmZ1bmN0aW9uIGl0ZW1zKGEsIGIsIGtleSwgY29tcGFyZSkge1xuICBpZiAoaXNQbGFpbk9iamVjdChhKSAmJiBpc1BsYWluT2JqZWN0KGIpKSB7XG4gICAgcmV0dXJuIGNvbXBhcmUoYSwgYilcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGEpICYmIEFycmF5LmlzQXJyYXkoYikpIHtcbiAgICByZXR1cm4gc2NoZW1hR3JvdXAoYSwgYiwga2V5LCBjb21wYXJlKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBpc0VxdWFsKGEsIGIpXG4gIH1cbn1cblxuZnVuY3Rpb24gdW5zb3J0ZWRBcnJheShhLCBiLCBrZXksIGNvbXBhcmUpIHtcbiAgdmFyIHVuaXF1ZUEgPSB1bmlxV2l0aChhLCBjb21wYXJlKVxuICB2YXIgdW5pcXVlQiA9IHVuaXFXaXRoKGIsIGNvbXBhcmUpXG4gIHZhciBpbnRlciA9IGludGVyc2VjdGlvbldpdGgodW5pcXVlQSwgdW5pcXVlQiwgY29tcGFyZSlcbiAgcmV0dXJuIGludGVyLmxlbmd0aCA9PT0gTWF0aC5tYXgodW5pcXVlQS5sZW5ndGgsIHVuaXF1ZUIubGVuZ3RoKVxufVxuXG52YXIgY29tcGFyZXJzID0ge1xuICB0aXRsZTogaXNFcXVhbCxcbiAgdW5pcXVlSXRlbXM6IGZhbHNlVW5kZWZpbmVkLFxuICBtaW5MZW5ndGg6IHVuZGVmQW5kWmVybyxcbiAgbWluSXRlbXM6IHVuZGVmQW5kWmVybyxcbiAgbWluUHJvcGVydGllczogdW5kZWZBbmRaZXJvLFxuICByZXF1aXJlZDogdW5kZWZBcnJheUVxdWFsLFxuICBlbnVtOiB1bmRlZkFycmF5RXF1YWwsXG4gIHR5cGU6IHVuc29ydGVkTm9ybWFsaXplZEFycmF5LFxuICBpdGVtczogaXRlbXMsXG4gIGFueU9mOiB1bnNvcnRlZEFycmF5LFxuICBhbGxPZjogdW5zb3J0ZWRBcnJheSxcbiAgb25lT2Y6IHVuc29ydGVkQXJyYXksXG4gIHByb3BlcnRpZXM6IHNjaGVtYUdyb3VwLFxuICBwYXR0ZXJuUHJvcGVydGllczogc2NoZW1hR3JvdXAsXG4gIGRlcGVuZGVuY2llczogc2NoZW1hR3JvdXBcbn1cblxudmFyIGFjY2VwdHNVbmRlZmluZWQgPSBbXG4gICdwcm9wZXJ0aWVzJyxcbiAgJ3BhdHRlcm5Qcm9wZXJ0aWVzJyxcbiAgJ2RlcGVuZGVuY2llcycsXG4gICd1bmlxdWVJdGVtcycsXG4gICdtaW5MZW5ndGgnLFxuICAnbWluSXRlbXMnLFxuICAnbWluUHJvcGVydGllcycsXG4gICdyZXF1aXJlZCdcbl1cblxudmFyIHNjaGVtYVByb3BzID0gWydhZGRpdGlvbmFsUHJvcGVydGllcycsICdhZGRpdGlvbmFsSXRlbXMnLCAnY29udGFpbnMnLCAncHJvcGVydHlOYW1lcycsICdub3QnXVxuXG5mdW5jdGlvbiBjb21wYXJlKGEsIGIsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IGRlZmF1bHRzKG9wdGlvbnMsIHtcbiAgICBpZ25vcmU6IFtdXG4gIH0pXG5cbiAgaWYgKGVtcHR5U2NoZW1hKGEpICYmIGVtcHR5U2NoZW1hKGIpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmICghaXNTY2hlbWEoYSkgfHwgIWlzU2NoZW1hKGIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFaXRoZXIgb2YgdGhlIHZhbHVlcyBhcmUgbm90IGEgSlNPTiBzY2hlbWEuJylcbiAgfVxuICBpZiAoYSA9PT0gYikge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAoaXNCb29sZWFuKGEpICYmIGlzQm9vbGVhbihiKSkge1xuICAgIHJldHVybiBhID09PSBiXG4gIH1cblxuICBpZiAoKGEgPT09IHVuZGVmaW5lZCAmJiBiID09PSBmYWxzZSkgfHwgKGIgPT09IHVuZGVmaW5lZCAmJiBhID09PSBmYWxzZSkpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmICgodW5kZWYoYSkgJiYgIXVuZGVmKGIpKSB8fCAoIXVuZGVmKGEpICYmIHVuZGVmKGIpKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgdmFyIGFsbEtleXMgPSB1bmlxKE9iamVjdC5rZXlzKGEpLmNvbmNhdChPYmplY3Qua2V5cyhiKSkpXG5cbiAgaWYgKG9wdGlvbnMuaWdub3JlLmxlbmd0aCkge1xuICAgIGFsbEtleXMgPSBhbGxLZXlzLmZpbHRlcihrID0+IG9wdGlvbnMuaWdub3JlLmluZGV4T2YoaykgPT09IC0xKVxuICB9XG5cbiAgaWYgKCFhbGxLZXlzLmxlbmd0aCkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBmdW5jdGlvbiBpbm5lckNvbXBhcmUoYSwgYikge1xuICAgIHJldHVybiBjb21wYXJlKGEsIGIsIG9wdGlvbnMpXG4gIH1cblxuICByZXR1cm4gYWxsS2V5cy5ldmVyeShmdW5jdGlvbihrZXkpIHtcbiAgICB2YXIgYVZhbHVlID0gYVtrZXldXG4gICAgdmFyIGJWYWx1ZSA9IGJba2V5XVxuXG4gICAgaWYgKHNjaGVtYVByb3BzLmluZGV4T2Yoa2V5KSAhPT0gLTEpIHtcbiAgICAgIHJldHVybiBjb21wYXJlKGFWYWx1ZSwgYlZhbHVlLCBvcHRpb25zKVxuICAgIH1cblxuICAgIHZhciBjb21wYXJlciA9IGNvbXBhcmVyc1trZXldXG4gICAgaWYgKCFjb21wYXJlcikge1xuICAgICAgY29tcGFyZXIgPSBpc0VxdWFsXG4gICAgfVxuXG4gICAgLy8gZG8gc2ltcGxlIGxvZGFzaCBjaGVjayBmaXJzdFxuICAgIGlmIChpc0VxdWFsKGFWYWx1ZSwgYlZhbHVlKSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoYWNjZXB0c1VuZGVmaW5lZC5pbmRleE9mKGtleSkgPT09IC0xKSB7XG4gICAgICBpZiAoKCFoYXMoYSwga2V5KSAmJiBoYXMoYiwga2V5KSkgfHwgKGhhcyhhLCBrZXkpICYmICFoYXMoYiwga2V5KSkpIHtcbiAgICAgICAgcmV0dXJuIGFWYWx1ZSA9PT0gYlZhbHVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHJlc3VsdCA9IGNvbXBhcmVyKGFWYWx1ZSwgYlZhbHVlLCBrZXksIGlubmVyQ29tcGFyZSlcbiAgICBpZiAoIWlzQm9vbGVhbihyZXN1bHQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbXBhcmVyIG11c3QgcmV0dXJuIHRydWUgb3IgZmFsc2UnKVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0XG4gIH0pXG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29tcGFyZVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiogRlVOQ1RJT046IGlzQXJyYXkoIHZhbHVlIClcbipcdFZhbGlkYXRlcyBpZiBhIHZhbHVlIGlzIGFuIGFycmF5LlxuKlxuKiBAcGFyYW0geyp9IHZhbHVlIC0gdmFsdWUgdG8gYmUgdmFsaWRhdGVkXG4qIEByZXR1cm5zIHtCb29sZWFufSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB2YWx1ZSBpcyBhbiBhcnJheVxuKi9cbmZ1bmN0aW9uIGlzQXJyYXkoIHZhbHVlICkge1xuXHRyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKCB2YWx1ZSApID09PSAnW29iamVjdCBBcnJheV0nO1xufSAvLyBlbmQgRlVOQ1RJT04gaXNBcnJheSgpXG5cbi8vIEVYUE9SVFMgLy9cblxubW9kdWxlLmV4cG9ydHMgPSBBcnJheS5pc0FycmF5IHx8IGlzQXJyYXk7XG4iLCIvKipcbipcbipcdFZBTElEQVRFOiBudW1iZXJcbipcbipcbipcdERFU0NSSVBUSU9OOlxuKlx0XHQtIFZhbGlkYXRlcyBpZiBhIHZhbHVlIGlzIGEgbnVtYmVyLlxuKlxuKlxuKlx0Tk9URVM6XG4qXHRcdFsxXVxuKlxuKlxuKlx0VE9ETzpcbipcdFx0WzFdXG4qXG4qXG4qXHRMSUNFTlNFOlxuKlx0XHRNSVRcbipcbipcdENvcHlyaWdodCAoYykgMjAxNC4gQXRoYW4gUmVpbmVzLlxuKlxuKlxuKlx0QVVUSE9SOlxuKlx0XHRBdGhhbiBSZWluZXMuIGtncnl0ZUBnbWFpbC5jb20uIDIwMTQuXG4qXG4qL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuKiBGVU5DVElPTjogaXNOdW1iZXIoIHZhbHVlIClcbipcdFZhbGlkYXRlcyBpZiBhIHZhbHVlIGlzIGEgbnVtYmVyLlxuKlxuKiBAcGFyYW0geyp9IHZhbHVlIC0gdmFsdWUgdG8gYmUgdmFsaWRhdGVkXG4qIEByZXR1cm5zIHtCb29sZWFufSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB2YWx1ZSBpcyBhIG51bWJlclxuKi9cbmZ1bmN0aW9uIGlzTnVtYmVyKCB2YWx1ZSApIHtcblx0cmV0dXJuICggdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyB8fCBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoIHZhbHVlICkgPT09ICdbb2JqZWN0IE51bWJlcl0nICkgJiYgdmFsdWUudmFsdWVPZigpID09PSB2YWx1ZS52YWx1ZU9mKCk7XG59IC8vIGVuZCBGVU5DVElPTiBpc051bWJlcigpXG5cblxuLy8gRVhQT1JUUyAvL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzTnVtYmVyO1xuIiwiLyoqXG4qXG4qXHRWQUxJREFURTogaW50ZWdlclxuKlxuKlxuKlx0REVTQ1JJUFRJT046XG4qXHRcdC0gVmFsaWRhdGVzIGlmIGEgdmFsdWUgaXMgYW4gaW50ZWdlci5cbipcbipcbipcdE5PVEVTOlxuKlx0XHRbMV1cbipcbipcbipcdFRPRE86XG4qXHRcdFsxXVxuKlxuKlxuKlx0TElDRU5TRTpcbipcdFx0TUlUXG4qXG4qXHRDb3B5cmlnaHQgKGMpIDIwMTQuIEF0aGFuIFJlaW5lcy5cbipcbipcbipcdEFVVEhPUjpcbipcdFx0QXRoYW4gUmVpbmVzLiBrZ3J5dGVAZ21haWwuY29tLiAyMDE0LlxuKlxuKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vLyBNT0RVTEVTIC8vXG5cbnZhciBpc051bWJlciA9IHJlcXVpcmUoICd2YWxpZGF0ZS5pby1udW1iZXInICk7XG5cblxuLy8gSVNJTlRFR0VSIC8vXG5cbi8qKlxuKiBGVU5DVElPTjogaXNJbnRlZ2VyKCB2YWx1ZSApXG4qXHRWYWxpZGF0ZXMgaWYgYSB2YWx1ZSBpcyBhbiBpbnRlZ2VyLlxuKlxuKiBAcGFyYW0ge051bWJlcn0gdmFsdWUgLSB2YWx1ZSB0byBiZSB2YWxpZGF0ZWRcbiogQHJldHVybnMge0Jvb2xlYW59IGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHZhbHVlIGlzIGFuIGludGVnZXJcbiovXG5mdW5jdGlvbiBpc0ludGVnZXIoIHZhbHVlICkge1xuXHRyZXR1cm4gaXNOdW1iZXIoIHZhbHVlICkgJiYgdmFsdWUlMSA9PT0gMDtcbn0gLy8gZW5kIEZVTkNUSU9OIGlzSW50ZWdlcigpXG5cblxuLy8gRVhQT1JUUyAvL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzSW50ZWdlcjtcbiIsIi8qKlxuKlxuKlx0VkFMSURBVEU6IGludGVnZXItYXJyYXlcbipcbipcbipcdERFU0NSSVBUSU9OOlxuKlx0XHQtIFZhbGlkYXRlcyBpZiBhIHZhbHVlIGlzIGFuIGludGVnZXIgYXJyYXkuXG4qXG4qXG4qXHROT1RFUzpcbipcdFx0WzFdXG4qXG4qXG4qXHRUT0RPOlxuKlx0XHRbMV1cbipcbipcbipcdExJQ0VOU0U6XG4qXHRcdE1JVFxuKlxuKlx0Q29weXJpZ2h0IChjKSAyMDE1LiBBdGhhbiBSZWluZXMuXG4qXG4qXG4qXHRBVVRIT1I6XG4qXHRcdEF0aGFuIFJlaW5lcy4ga2dyeXRlQGdtYWlsLmNvbS4gMjAxNS5cbipcbiovXG5cbid1c2Ugc3RyaWN0JztcblxuLy8gTU9EVUxFUyAvL1xuXG52YXIgaXNBcnJheSA9IHJlcXVpcmUoICd2YWxpZGF0ZS5pby1hcnJheScgKSxcblx0aXNJbnRlZ2VyID0gcmVxdWlyZSggJ3ZhbGlkYXRlLmlvLWludGVnZXInICk7XG5cblxuLy8gSVMgSU5URUdFUiBBUlJBWSAvL1xuXG4vKipcbiogRlVOQ1RJT046IGlzSW50ZWdlckFycmF5KCB2YWx1ZSApXG4qXHRWYWxpZGF0ZXMgaWYgYSB2YWx1ZSBpcyBhbiBpbnRlZ2VyIGFycmF5LlxuKlxuKiBAcGFyYW0geyp9IHZhbHVlIC0gdmFsdWUgdG8gYmUgdmFsaWRhdGVkXG4qIEByZXR1cm5zIHtCb29sZWFufSBib29sZWFuIGluZGljYXRpbmcgaWYgYSB2YWx1ZSBpcyBhbiBpbnRlZ2VyIGFycmF5XG4qL1xuZnVuY3Rpb24gaXNJbnRlZ2VyQXJyYXkoIHZhbHVlICkge1xuXHR2YXIgbGVuO1xuXHRpZiAoICFpc0FycmF5KCB2YWx1ZSApICkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXHRsZW4gPSB2YWx1ZS5sZW5ndGg7XG5cdGlmICggIWxlbiApIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblx0Zm9yICggdmFyIGkgPSAwOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0aWYgKCAhaXNJbnRlZ2VyKCB2YWx1ZVtpXSApICkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gdHJ1ZTtcbn0gLy8gZW5kIEZVTkNUSU9OIGlzSW50ZWdlckFycmF5KClcblxuXG4vLyBFWFBPUlRTIC8vXG5cbm1vZHVsZS5leHBvcnRzID0gaXNJbnRlZ2VyQXJyYXk7XG4iLCIvKipcbipcbipcdFZBTElEQVRFOiBmdW5jdGlvblxuKlxuKlxuKlx0REVTQ1JJUFRJT046XG4qXHRcdC0gVmFsaWRhdGVzIGlmIGEgdmFsdWUgaXMgYSBmdW5jdGlvbi5cbipcbipcbipcdE5PVEVTOlxuKlx0XHRbMV1cbipcbipcbipcdFRPRE86XG4qXHRcdFsxXVxuKlxuKlxuKlx0TElDRU5TRTpcbipcdFx0TUlUXG4qXG4qXHRDb3B5cmlnaHQgKGMpIDIwMTQuIEF0aGFuIFJlaW5lcy5cbipcbipcbipcdEFVVEhPUjpcbipcdFx0QXRoYW4gUmVpbmVzLiBrZ3J5dGVAZ21haWwuY29tLiAyMDE0LlxuKlxuKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiogRlVOQ1RJT046IGlzRnVuY3Rpb24oIHZhbHVlIClcbipcdFZhbGlkYXRlcyBpZiBhIHZhbHVlIGlzIGEgZnVuY3Rpb24uXG4qXG4qIEBwYXJhbSB7Kn0gdmFsdWUgLSB2YWx1ZSB0byBiZSB2YWxpZGF0ZWRcbiogQHJldHVybnMge0Jvb2xlYW59IGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHZhbHVlIGlzIGEgZnVuY3Rpb25cbiovXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKCB2YWx1ZSApIHtcblx0cmV0dXJuICggdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nICk7XG59IC8vIGVuZCBGVU5DVElPTiBpc0Z1bmN0aW9uKClcblxuXG4vLyBFWFBPUlRTIC8vXG5cbm1vZHVsZS5leHBvcnRzID0gaXNGdW5jdGlvbjtcbiIsIid1c2Ugc3RyaWN0JztcblxuLy8gTU9EVUxFUyAvL1xuXG52YXIgaXNBcnJheSA9IHJlcXVpcmUoICd2YWxpZGF0ZS5pby1hcnJheScgKSxcblx0aXNJbnRlZ2VyQXJyYXkgPSByZXF1aXJlKCAndmFsaWRhdGUuaW8taW50ZWdlci1hcnJheScgKSxcblx0aXNGdW5jdGlvbiA9IHJlcXVpcmUoICd2YWxpZGF0ZS5pby1mdW5jdGlvbicgKTtcblxuXG4vLyBWQVJJQUJMRVMgLy9cblxudmFyIE1BWElOVCA9IE1hdGgucG93KCAyLCAzMSApIC0gMTtcblxuXG4vLyBGVU5DVElPTlMgLy9cblxuLyoqXG4qIEZVTkNUSU9OOiBnY2QoIGEsIGIgKVxuKlx0Q29tcHV0ZXMgdGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yIG9mIHR3byBpbnRlZ2VycyBgYWAgYW5kIGBiYCwgdXNpbmcgdGhlIGJpbmFyeSBHQ0QgYWxnb3JpdGhtLlxuKlxuKiBAcGFyYW0ge051bWJlcn0gYSAtIGludGVnZXJcbiogQHBhcmFtIHtOdW1iZXJ9IGIgLSBpbnRlZ2VyXG4qIEByZXR1cm5zIHtOdW1iZXJ9IGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yXG4qL1xuZnVuY3Rpb24gZ2NkKCBhLCBiICkge1xuXHR2YXIgayA9IDEsXG5cdFx0dDtcblx0Ly8gU2ltcGxlIGNhc2VzOlxuXHRpZiAoIGEgPT09IDAgKSB7XG5cdFx0cmV0dXJuIGI7XG5cdH1cblx0aWYgKCBiID09PSAwICkge1xuXHRcdHJldHVybiBhO1xuXHR9XG5cdC8vIFJlZHVjZSBgYWAgYW5kL29yIGBiYCB0byBvZGQgbnVtYmVycyBhbmQga2VlcCB0cmFjayBvZiB0aGUgZ3JlYXRlc3QgcG93ZXIgb2YgMiBkaXZpZGluZyBib3RoIGBhYCBhbmQgYGJgLi4uXG5cdHdoaWxlICggYSUyID09PSAwICYmIGIlMiA9PT0gMCApIHtcblx0XHRhID0gYSAvIDI7IC8vIHJpZ2h0IHNoaWZ0XG5cdFx0YiA9IGIgLyAyOyAvLyByaWdodCBzaGlmdFxuXHRcdGsgPSBrICogMjsgLy8gbGVmdCBzaGlmdFxuXHR9XG5cdC8vIFJlZHVjZSBgYWAgdG8gYW4gb2RkIG51bWJlci4uLlxuXHR3aGlsZSAoIGElMiA9PT0gMCApIHtcblx0XHRhID0gYSAvIDI7IC8vIHJpZ2h0IHNoaWZ0XG5cdH1cblx0Ly8gSGVuY2Vmb3J0aCwgYGFgIGlzIGFsd2F5cyBvZGQuLi5cblx0d2hpbGUgKCBiICkge1xuXHRcdC8vIFJlbW92ZSBhbGwgZmFjdG9ycyBvZiAyIGluIGBiYCwgYXMgdGhleSBhcmUgbm90IGNvbW1vbi4uLlxuXHRcdHdoaWxlICggYiUyID09PSAwICkge1xuXHRcdFx0YiA9IGIgLyAyOyAvLyByaWdodCBzaGlmdFxuXHRcdH1cblx0XHQvLyBgYWAgYW5kIGBiYCBhcmUgYm90aCBvZGQuIFN3YXAgdmFsdWVzIHN1Y2ggdGhhdCBgYmAgaXMgdGhlIGxhcmdlciBvZiB0aGUgdHdvIHZhbHVlcywgYW5kIHRoZW4gc2V0IGBiYCB0byB0aGUgZGlmZmVyZW5jZSAod2hpY2ggaXMgZXZlbikuLi5cblx0XHRpZiAoIGEgPiBiICkge1xuXHRcdFx0dCA9IGI7XG5cdFx0XHRiID0gYTtcblx0XHRcdGEgPSB0O1xuXHRcdH1cblx0XHRiID0gYiAtIGE7IC8vIGI9MCBpZmYgYj1hXG5cdH1cblx0Ly8gUmVzdG9yZSBjb21tb24gZmFjdG9ycyBvZiAyLi4uXG5cdHJldHVybiBrICogYTtcbn0gLy8gZW5kIEZVTkNUSU9OIGdjZCgpXG5cbi8qKlxuKiBGVU5DVElPTjogYml0d2lzZSggYSwgYiApXG4qXHRDb21wdXRlcyB0aGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3Igb2YgdHdvIGludGVnZXJzIGBhYCBhbmQgYGJgLCB1c2luZyB0aGUgYmluYXJ5IEdDRCBhbGdvcml0aG0gYW5kIGJpdHdpc2Ugb3BlcmF0aW9ucy5cbipcbiogQHBhcmFtIHtOdW1iZXJ9IGEgLSBzYWZlIGludGVnZXJcbiogQHBhcmFtIHtOdW1iZXJ9IGIgLSBzYWZlIGludGVnZXJcbiogQHJldHVybnMge051bWJlcn0gZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3JcbiovXG5mdW5jdGlvbiBiaXR3aXNlKCBhLCBiICkge1xuXHR2YXIgayA9IDAsXG5cdFx0dDtcblx0Ly8gU2ltcGxlIGNhc2VzOlxuXHRpZiAoIGEgPT09IDAgKSB7XG5cdFx0cmV0dXJuIGI7XG5cdH1cblx0aWYgKCBiID09PSAwICkge1xuXHRcdHJldHVybiBhO1xuXHR9XG5cdC8vIFJlZHVjZSBgYWAgYW5kL29yIGBiYCB0byBvZGQgbnVtYmVycyBhbmQga2VlcCB0cmFjayBvZiB0aGUgZ3JlYXRlc3QgcG93ZXIgb2YgMiBkaXZpZGluZyBib3RoIGBhYCBhbmQgYGJgLi4uXG5cdHdoaWxlICggKGEgJiAxKSA9PT0gMCAmJiAoYiAmIDEpID09PSAwICkge1xuXHRcdGEgPj4+PSAxOyAvLyByaWdodCBzaGlmdFxuXHRcdGIgPj4+PSAxOyAvLyByaWdodCBzaGlmdFxuXHRcdGsrKztcblx0fVxuXHQvLyBSZWR1Y2UgYGFgIHRvIGFuIG9kZCBudW1iZXIuLi5cblx0d2hpbGUgKCAoYSAmIDEpID09PSAwICkge1xuXHRcdGEgPj4+PSAxOyAvLyByaWdodCBzaGlmdFxuXHR9XG5cdC8vIEhlbmNlZm9ydGgsIGBhYCBpcyBhbHdheXMgb2RkLi4uXG5cdHdoaWxlICggYiApIHtcblx0XHQvLyBSZW1vdmUgYWxsIGZhY3RvcnMgb2YgMiBpbiBgYmAsIGFzIHRoZXkgYXJlIG5vdCBjb21tb24uLi5cblx0XHR3aGlsZSAoIChiICYgMSkgPT09IDAgKSB7XG5cdFx0XHRiID4+Pj0gMTsgLy8gcmlnaHQgc2hpZnRcblx0XHR9XG5cdFx0Ly8gYGFgIGFuZCBgYmAgYXJlIGJvdGggb2RkLiBTd2FwIHZhbHVlcyBzdWNoIHRoYXQgYGJgIGlzIHRoZSBsYXJnZXIgb2YgdGhlIHR3byB2YWx1ZXMsIGFuZCB0aGVuIHNldCBgYmAgdG8gdGhlIGRpZmZlcmVuY2UgKHdoaWNoIGlzIGV2ZW4pLi4uXG5cdFx0aWYgKCBhID4gYiApIHtcblx0XHRcdHQgPSBiO1xuXHRcdFx0YiA9IGE7XG5cdFx0XHRhID0gdDtcblx0XHR9XG5cdFx0YiA9IGIgLSBhOyAvLyBiPTAgaWZmIGI9YVxuXHR9XG5cdC8vIFJlc3RvcmUgY29tbW9uIGZhY3RvcnMgb2YgMi4uLlxuXHRyZXR1cm4gYSA8PCBrO1xufSAvLyBlbmQgRlVOQ1RJT04gYml0d2lzZSgpXG5cblxuLy8gR1JFQVRFU1QgQ09NTU9OIERJVklTT1IgLy9cblxuLyoqXG4qIEZVTkNUSU9OOiBjb21wdXRlKCBhcnJbLCBjbGJrXSApXG4qXHRDb21wdXRlcyB0aGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3IuXG4qXG4qIEBwYXJhbSB7TnVtYmVyW118TnVtYmVyfSBhcnIgLSBpbnB1dCBhcnJheSBvZiBpbnRlZ2Vyc1xuKiBAcGFyYW0ge0Z1bmN0aW9ufE51bWJlcn0gW2NsYmtdIC0gYWNjZXNzb3IgZnVuY3Rpb24gZm9yIGFjY2Vzc2luZyBhcnJheSB2YWx1ZXNcbiogQHJldHVybnMge051bWJlcnxOdWxsfSBncmVhdGVzdCBjb21tb24gZGl2aXNvciBvciBudWxsXG4qL1xuZnVuY3Rpb24gY29tcHV0ZSgpIHtcblx0dmFyIG5hcmdzID0gYXJndW1lbnRzLmxlbmd0aCxcblx0XHRhcmdzLFxuXHRcdGNsYmssXG5cdFx0YXJyLFxuXHRcdGxlbixcblx0XHRhLCBiLFxuXHRcdGk7XG5cblx0Ly8gQ29weSB0aGUgaW5wdXQgYXJndW1lbnRzIHRvIGFuIGFycmF5Li4uXG5cdGFyZ3MgPSBuZXcgQXJyYXkoIG5hcmdzICk7XG5cdGZvciAoIGkgPSAwOyBpIDwgbmFyZ3M7IGkrKyApIHtcblx0XHRhcmdzWyBpIF0gPSBhcmd1bWVudHNbIGkgXTtcblx0fVxuXHQvLyBIYXZlIHdlIGJlZW4gcHJvdmlkZWQgd2l0aCBpbnRlZ2VyIGFyZ3VtZW50cz9cblx0aWYgKCBpc0ludGVnZXJBcnJheSggYXJncyApICkge1xuXHRcdGlmICggbmFyZ3MgPT09IDIgKSB7XG5cdFx0XHRhID0gYXJnc1sgMCBdO1xuXHRcdFx0YiA9IGFyZ3NbIDEgXTtcblx0XHRcdGlmICggYSA8IDAgKSB7XG5cdFx0XHRcdGEgPSAtYTtcblx0XHRcdH1cblx0XHRcdGlmICggYiA8IDAgKSB7XG5cdFx0XHRcdGIgPSAtYjtcblx0XHRcdH1cblx0XHRcdGlmICggYSA8PSBNQVhJTlQgJiYgYiA8PSBNQVhJTlQgKSB7XG5cdFx0XHRcdHJldHVybiBiaXR3aXNlKCBhLCBiICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXR1cm4gZ2NkKCBhLCBiICk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGFyciA9IGFyZ3M7XG5cdH1cblx0Ly8gSWYgbm90IGludGVnZXJzLCBlbnN1cmUgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGFuIGFycmF5Li4uXG5cdGVsc2UgaWYgKCAhaXNBcnJheSggYXJnc1sgMCBdICkgKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvciggJ2djZCgpOjppbnZhbGlkIGlucHV0IGFyZ3VtZW50LiBNdXN0IHByb3ZpZGUgYW4gYXJyYXkgb2YgaW50ZWdlcnMuIFZhbHVlOiBgJyArIGFyZ3NbIDAgXSArICdgLicgKTtcblx0fVxuXHQvLyBIYXZlIHdlIGJlZW4gcHJvdmlkZWQgd2l0aCBtb3JlIHRoYW4gb25lIGFyZ3VtZW50PyBJZiBzbywgZW5zdXJlIHRoYXQgdGhlIGFjY2Vzc29yIGFyZ3VtZW50IGlzIGEgZnVuY3Rpb24uLi5cblx0ZWxzZSBpZiAoIG5hcmdzID4gMSApIHtcblx0XHRhcnIgPSBhcmdzWyAwIF07XG5cdFx0Y2xiayA9IGFyZ3NbIDEgXTtcblx0XHRpZiAoICFpc0Z1bmN0aW9uKCBjbGJrICkgKSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCAnZ2NkKCk6OmludmFsaWQgaW5wdXQgYXJndW1lbnQuIEFjY2Vzc29yIG11c3QgYmUgYSBmdW5jdGlvbi4gVmFsdWU6IGAnICsgY2xiayArICdgLicgKTtcblx0XHR9XG5cdH1cblx0Ly8gV2UgaGF2ZSBiZWVuIHByb3ZpZGVkIGFuIGFycmF5Li4uXG5cdGVsc2Uge1xuXHRcdGFyciA9IGFyZ3NbIDAgXTtcblx0fVxuXHRsZW4gPSBhcnIubGVuZ3RoO1xuXG5cdC8vIENoZWNrIGlmIGEgc3VmZmljaWVudCBudW1iZXIgb2YgdmFsdWVzIGhhdmUgYmVlbiBwcm92aWRlZC4uLlxuXHRpZiAoIGxlbiA8IDIgKSB7XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblx0Ly8gSWYgYW4gYWNjZXNzb3IgaXMgcHJvdmlkZWQsIGV4dHJhY3QgdGhlIGFycmF5IHZhbHVlcy4uLlxuXHRpZiAoIGNsYmsgKSB7XG5cdFx0YSA9IG5ldyBBcnJheSggbGVuICk7XG5cdFx0Zm9yICggaSA9IDA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdGFbIGkgXSA9IGNsYmsoIGFyclsgaSBdLCBpICk7XG5cdFx0fVxuXHRcdGFyciA9IGE7XG5cdH1cblx0Ly8gR2l2ZW4gYW4gaW5wdXQgYXJyYXksIGVuc3VyZSBhbGwgYXJyYXkgdmFsdWVzIGFyZSBpbnRlZ2Vycy4uLlxuXHRpZiAoIG5hcmdzIDwgMyApIHtcblx0XHRpZiAoICFpc0ludGVnZXJBcnJheSggYXJyICkgKSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCAnZ2NkKCk6OmludmFsaWQgaW5wdXQgYXJndW1lbnQuIEFjY2Vzc2VkIGFycmF5IHZhbHVlcyBtdXN0IGJlIGludGVnZXJzLiBWYWx1ZTogYCcgKyBhcnIgKyAnYC4nICk7XG5cdFx0fVxuXHR9XG5cdC8vIENvbnZlcnQgYW55IG5lZ2F0aXZlIGludGVnZXJzIHRvIHBvc2l0aXZlIGludGVnZXJzLi4uXG5cdGZvciAoIGkgPSAwOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0YSA9IGFyclsgaSBdO1xuXHRcdGlmICggYSA8IDAgKSB7XG5cdFx0XHRhcnJbIGkgXSA9IC1hO1xuXHRcdH1cblx0fVxuXHQvLyBFeHBsb2l0IHRoZSBmYWN0IHRoYXQgdGhlIGdjZCBpcyBhbiBhc3NvY2lhdGl2ZSBmdW5jdGlvbi4uLlxuXHRhID0gYXJyWyAwIF07XG5cdGZvciAoIGkgPSAxOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0YiA9IGFyclsgaSBdO1xuXHRcdGlmICggYiA8PSBNQVhJTlQgJiYgYSA8PSBNQVhJTlQgKSB7XG5cdFx0XHRhID0gYml0d2lzZSggYSwgYiApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRhID0gZ2NkKCBhLCBiICk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBhO1xufSAvLyBlbmQgRlVOQ1RJT04gY29tcHV0ZSgpXG5cblxuLy8gRVhQT1JUUyAvL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbXB1dGU7XG4iLCIndXNlIHN0cmljdCc7XG5cbi8vIE1PRFVMRVMgLy9cblxudmFyIGdjZCA9IHJlcXVpcmUoICdjb21wdXRlLWdjZCcgKSxcblx0aXNBcnJheSA9IHJlcXVpcmUoICd2YWxpZGF0ZS5pby1hcnJheScgKSxcblx0aXNJbnRlZ2VyQXJyYXkgPSByZXF1aXJlKCAndmFsaWRhdGUuaW8taW50ZWdlci1hcnJheScgKSxcblx0aXNGdW5jdGlvbiA9IHJlcXVpcmUoICd2YWxpZGF0ZS5pby1mdW5jdGlvbicgKTtcblxuXG4vLyBMRUFTVCBDT01NT04gTVVMVElQTEUgLy9cblxuLyoqXG4qIEZVTkNUSU9OOiBsY20oIGFyclssIGNsYmtdIClcbipcdENvbXB1dGVzIHRoZSBsZWFzdCBjb21tb24gbXVsdGlwbGUgKGxjbSkuXG4qXG4qIEBwYXJhbSB7TnVtYmVyW118TnVtYmVyfSBhcnIgLSBpbnB1dCBhcnJheSBvZiBpbnRlZ2Vyc1xuKiBAcGFyYW0ge0Z1bmN0aW9ufE51bWJlcn0gW2FjY2Vzc29yXSAtIGFjY2Vzc29yIGZ1bmN0aW9uIGZvciBhY2Nlc3NpbmcgYXJyYXkgdmFsdWVzXG4qIEByZXR1cm5zIHtOdW1iZXJ8TnVsbH0gbGVhc3QgY29tbW9uIG11bHRpcGxlIG9yIG51bGxcbiovXG5mdW5jdGlvbiBsY20oKSB7XG5cdHZhciBuYXJncyA9IGFyZ3VtZW50cy5sZW5ndGgsXG5cdFx0YXJncyxcblx0XHRjbGJrLFxuXHRcdGFycixcblx0XHRsZW4sXG5cdFx0YSwgYixcblx0XHRpO1xuXG5cdC8vIENvcHkgdGhlIGlucHV0IGFyZ3VtZW50cyB0byBhbiBhcnJheS4uLlxuXHRhcmdzID0gbmV3IEFycmF5KCBuYXJncyApO1xuXHRmb3IgKCBpID0gMDsgaSA8IG5hcmdzOyBpKysgKSB7XG5cdFx0YXJnc1sgaSBdID0gYXJndW1lbnRzWyBpIF07XG5cdH1cblx0Ly8gSGF2ZSB3ZSBiZWVuIHByb3ZpZGVkIHdpdGggaW50ZWdlciBhcmd1bWVudHM/XG5cdGlmICggaXNJbnRlZ2VyQXJyYXkoIGFyZ3MgKSApIHtcblx0XHRpZiAoIG5hcmdzID09PSAyICkge1xuXHRcdFx0YSA9IGFyZ3NbIDAgXTtcblx0XHRcdGIgPSBhcmdzWyAxIF07XG5cdFx0XHRpZiAoIGEgPCAwICkge1xuXHRcdFx0XHRhID0gLWE7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIGIgPCAwICkge1xuXHRcdFx0XHRiID0gLWI7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIGEgPT09IDAgfHwgYiA9PT0gMCApIHtcblx0XHRcdFx0cmV0dXJuIDA7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gKCBhL2djZChhLGIpICkgKiBiO1xuXHRcdH1cblx0XHRhcnIgPSBhcmdzO1xuXHR9XG5cdC8vIElmIG5vdCBpbnRlZ2VycywgZW5zdXJlIHRoYXQgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGFuIGFycmF5Li4uXG5cdGVsc2UgaWYgKCAhaXNBcnJheSggYXJnc1sgMCBdICkgKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvciggJ2xjbSgpOjppbnZhbGlkIGlucHV0IGFyZ3VtZW50LiBNdXN0IHByb3ZpZGUgYW4gYXJyYXkgb2YgaW50ZWdlcnMuIFZhbHVlOiBgJyArIGFyZ3NbIDAgXSArICdgLicgKTtcblx0fVxuXHQvLyBIYXZlIHdlIGJlZW4gcHJvdmlkZWQgd2l0aCBtb3JlIHRoYW4gb25lIGFyZ3VtZW50PyBJZiBzbywgZW5zdXJlIHRoYXQgdGhlIGFjY2Vzc29yIGFyZ3VtZW50IGlzIGEgZnVuY3Rpb24uLi5cblx0ZWxzZSBpZiAoIG5hcmdzID4gMSApIHtcblx0XHRhcnIgPSBhcmdzWyAwIF07XG5cdFx0Y2xiayA9IGFyZ3NbIDEgXTtcblx0XHRpZiAoICFpc0Z1bmN0aW9uKCBjbGJrICkgKSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCAnbGNtKCk6OmludmFsaWQgaW5wdXQgYXJndW1lbnQuIEFjY2Vzc29yIG11c3QgYmUgYSBmdW5jdGlvbi4gVmFsdWU6IGAnICsgY2xiayArICdgLicgKTtcblx0XHR9XG5cdH1cblx0Ly8gV2UgaGF2ZSBiZWVuIHByb3ZpZGVkIGFuIGFycmF5Li4uXG5cdGVsc2Uge1xuXHRcdGFyciA9IGFyZ3NbIDAgXTtcblx0fVxuXHRsZW4gPSBhcnIubGVuZ3RoO1xuXG5cdC8vIENoZWNrIGlmIGEgc3VmZmljaWVudCBudW1iZXIgb2YgdmFsdWVzIGhhdmUgYmVlbiBwcm92aWRlZC4uLlxuXHRpZiAoIGxlbiA8IDIgKSB7XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblx0Ly8gSWYgYW4gYWNjZXNzb3IgaXMgcHJvdmlkZWQsIGV4dHJhY3QgdGhlIGFycmF5IHZhbHVlcy4uLlxuXHRpZiAoIGNsYmsgKSB7XG5cdFx0YSA9IG5ldyBBcnJheSggbGVuICk7XG5cdFx0Zm9yICggaSA9IDA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdGFbIGkgXSA9IGNsYmsoIGFyclsgaSBdLCBpICk7XG5cdFx0fVxuXHRcdGFyciA9IGE7XG5cdH1cblx0Ly8gR2l2ZW4gYW4gaW5wdXQgYXJyYXksIGVuc3VyZSBhbGwgYXJyYXkgdmFsdWVzIGFyZSBpbnRlZ2Vycy4uLlxuXHRpZiAoIG5hcmdzIDwgMyApIHtcblx0XHRpZiAoICFpc0ludGVnZXJBcnJheSggYXJyICkgKSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCAnbGNtKCk6OmludmFsaWQgaW5wdXQgYXJndW1lbnQuIEFjY2Vzc2VkIGFycmF5IHZhbHVlcyBtdXN0IGJlIGludGVnZXJzLiBWYWx1ZTogYCcgKyBhcnIgKyAnYC4nICk7XG5cdFx0fVxuXHR9XG5cdC8vIENvbnZlcnQgYW55IG5lZ2F0aXZlIGludGVnZXJzIHRvIHBvc2l0aXZlIGludGVnZXJzLi4uXG5cdGZvciAoIGkgPSAwOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0YSA9IGFyclsgaSBdO1xuXHRcdGlmICggYSA8IDAgKSB7XG5cdFx0XHRhcnJbIGkgXSA9IC1hO1xuXHRcdH1cblx0fVxuXHQvLyBFeHBsb2l0IHRoZSBmYWN0IHRoYXQgdGhlIGxjbSBpcyBhbiBhc3NvY2lhdGl2ZSBmdW5jdGlvbi4uLlxuXHRhID0gYXJyWyAwIF07XG5cdGZvciAoIGkgPSAxOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0YiA9IGFyclsgaSBdO1xuXHRcdGlmICggYSA9PT0gMCB8fCBiID09PSAwICkge1xuXHRcdFx0cmV0dXJuIDA7XG5cdFx0fVxuXHRcdGEgPSAoIGEvZ2NkKGEsYikgKSAqIGI7XG5cdH1cblx0cmV0dXJuIGE7XG59IC8vIGVuZCBGVU5DVElPTiBsY20oKVxuXG5cbi8vIEVYUE9SVFMgLy9cblxubW9kdWxlLmV4cG9ydHMgPSBsY207XG4iLCJ2YXIgYmFzZU1lcmdlID0gcmVxdWlyZSgnLi9fYmFzZU1lcmdlJyksXG4gICAgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzT2JqZWN0Jyk7XG5cbi8qKlxuICogVXNlZCBieSBgXy5kZWZhdWx0c0RlZXBgIHRvIGN1c3RvbWl6ZSBpdHMgYF8ubWVyZ2VgIHVzZSB0byBtZXJnZSBzb3VyY2VcbiAqIG9iamVjdHMgaW50byBkZXN0aW5hdGlvbiBvYmplY3RzIHRoYXQgYXJlIHBhc3NlZCB0aHJ1LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IG9ialZhbHVlIFRoZSBkZXN0aW5hdGlvbiB2YWx1ZS5cbiAqIEBwYXJhbSB7Kn0gc3JjVmFsdWUgVGhlIHNvdXJjZSB2YWx1ZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gbWVyZ2UuXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBwYXJlbnQgb2JqZWN0IG9mIGBvYmpWYWx1ZWAuXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBwYXJlbnQgb2JqZWN0IG9mIGBzcmNWYWx1ZWAuXG4gKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIHNvdXJjZSB2YWx1ZXMgYW5kIHRoZWlyIG1lcmdlZFxuICogIGNvdW50ZXJwYXJ0cy5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gKi9cbmZ1bmN0aW9uIGN1c3RvbURlZmF1bHRzTWVyZ2Uob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCwgc291cmNlLCBzdGFjaykge1xuICBpZiAoaXNPYmplY3Qob2JqVmFsdWUpICYmIGlzT2JqZWN0KHNyY1ZhbHVlKSkge1xuICAgIC8vIFJlY3Vyc2l2ZWx5IG1lcmdlIG9iamVjdHMgYW5kIGFycmF5cyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgIHN0YWNrLnNldChzcmNWYWx1ZSwgb2JqVmFsdWUpO1xuICAgIGJhc2VNZXJnZShvYmpWYWx1ZSwgc3JjVmFsdWUsIHVuZGVmaW5lZCwgY3VzdG9tRGVmYXVsdHNNZXJnZSwgc3RhY2spO1xuICAgIHN0YWNrWydkZWxldGUnXShzcmNWYWx1ZSk7XG4gIH1cbiAgcmV0dXJuIG9ialZhbHVlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGN1c3RvbURlZmF1bHRzTWVyZ2U7XG4iLCJ2YXIgYmFzZU1lcmdlID0gcmVxdWlyZSgnLi9fYmFzZU1lcmdlJyksXG4gICAgY3JlYXRlQXNzaWduZXIgPSByZXF1aXJlKCcuL19jcmVhdGVBc3NpZ25lcicpO1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ubWVyZ2VgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGN1c3RvbWl6ZXJgIHdoaWNoXG4gKiBpcyBpbnZva2VkIHRvIHByb2R1Y2UgdGhlIG1lcmdlZCB2YWx1ZXMgb2YgdGhlIGRlc3RpbmF0aW9uIGFuZCBzb3VyY2VcbiAqIHByb3BlcnRpZXMuIElmIGBjdXN0b21pemVyYCByZXR1cm5zIGB1bmRlZmluZWRgLCBtZXJnaW5nIGlzIGhhbmRsZWQgYnkgdGhlXG4gKiBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYCBpcyBpbnZva2VkIHdpdGggc2l4IGFyZ3VtZW50czpcbiAqIChvYmpWYWx1ZSwgc3JjVmFsdWUsIGtleSwgb2JqZWN0LCBzb3VyY2UsIHN0YWNrKS5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gKiBAcGFyYW0gey4uLk9iamVjdH0gc291cmNlcyBUaGUgc291cmNlIG9iamVjdHMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjdXN0b21pemVyIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgYXNzaWduZWQgdmFsdWVzLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gY3VzdG9taXplcihvYmpWYWx1ZSwgc3JjVmFsdWUpIHtcbiAqICAgaWYgKF8uaXNBcnJheShvYmpWYWx1ZSkpIHtcbiAqICAgICByZXR1cm4gb2JqVmFsdWUuY29uY2F0KHNyY1ZhbHVlKTtcbiAqICAgfVxuICogfVxuICpcbiAqIHZhciBvYmplY3QgPSB7ICdhJzogWzFdLCAnYic6IFsyXSB9O1xuICogdmFyIG90aGVyID0geyAnYSc6IFszXSwgJ2InOiBbNF0gfTtcbiAqXG4gKiBfLm1lcmdlV2l0aChvYmplY3QsIG90aGVyLCBjdXN0b21pemVyKTtcbiAqIC8vID0+IHsgJ2EnOiBbMSwgM10sICdiJzogWzIsIDRdIH1cbiAqL1xudmFyIG1lcmdlV2l0aCA9IGNyZWF0ZUFzc2lnbmVyKGZ1bmN0aW9uKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCwgY3VzdG9taXplcikge1xuICBiYXNlTWVyZ2Uob2JqZWN0LCBzb3VyY2UsIHNyY0luZGV4LCBjdXN0b21pemVyKTtcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IG1lcmdlV2l0aDtcbiIsInZhciBhcHBseSA9IHJlcXVpcmUoJy4vX2FwcGx5JyksXG4gICAgYmFzZVJlc3QgPSByZXF1aXJlKCcuL19iYXNlUmVzdCcpLFxuICAgIGN1c3RvbURlZmF1bHRzTWVyZ2UgPSByZXF1aXJlKCcuL19jdXN0b21EZWZhdWx0c01lcmdlJyksXG4gICAgbWVyZ2VXaXRoID0gcmVxdWlyZSgnLi9tZXJnZVdpdGgnKTtcblxuLyoqXG4gKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmRlZmF1bHRzYCBleGNlcHQgdGhhdCBpdCByZWN1cnNpdmVseSBhc3NpZ25zXG4gKiBkZWZhdWx0IHByb3BlcnRpZXMuXG4gKlxuICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAzLjEwLjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAqIEBwYXJhbSB7Li4uT2JqZWN0fSBbc291cmNlc10gVGhlIHNvdXJjZSBvYmplY3RzLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqIEBzZWUgXy5kZWZhdWx0c1xuICogQGV4YW1wbGVcbiAqXG4gKiBfLmRlZmF1bHRzRGVlcCh7ICdhJzogeyAnYic6IDIgfSB9LCB7ICdhJzogeyAnYic6IDEsICdjJzogMyB9IH0pO1xuICogLy8gPT4geyAnYSc6IHsgJ2InOiAyLCAnYyc6IDMgfSB9XG4gKi9cbnZhciBkZWZhdWx0c0RlZXAgPSBiYXNlUmVzdChmdW5jdGlvbihhcmdzKSB7XG4gIGFyZ3MucHVzaCh1bmRlZmluZWQsIGN1c3RvbURlZmF1bHRzTWVyZ2UpO1xuICByZXR1cm4gYXBwbHkobWVyZ2VXaXRoLCB1bmRlZmluZWQsIGFyZ3MpO1xufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gZGVmYXVsdHNEZWVwO1xuIiwidmFyIGFycmF5TWFwID0gcmVxdWlyZSgnLi9fYXJyYXlNYXAnKSxcbiAgICBiYXNlSW50ZXJzZWN0aW9uID0gcmVxdWlyZSgnLi9fYmFzZUludGVyc2VjdGlvbicpLFxuICAgIGJhc2VSZXN0ID0gcmVxdWlyZSgnLi9fYmFzZVJlc3QnKSxcbiAgICBjYXN0QXJyYXlMaWtlT2JqZWN0ID0gcmVxdWlyZSgnLi9fY2FzdEFycmF5TGlrZU9iamVjdCcpO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdW5pcXVlIHZhbHVlcyB0aGF0IGFyZSBpbmNsdWRlZCBpbiBhbGwgZ2l2ZW4gYXJyYXlzXG4gKiB1c2luZyBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLiBUaGUgb3JkZXIgYW5kIHJlZmVyZW5jZXMgb2YgcmVzdWx0IHZhbHVlcyBhcmVcbiAqIGRldGVybWluZWQgYnkgdGhlIGZpcnN0IGFycmF5LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBBcnJheVxuICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgaW50ZXJzZWN0aW5nIHZhbHVlcy5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pbnRlcnNlY3Rpb24oWzIsIDFdLCBbMiwgM10pO1xuICogLy8gPT4gWzJdXG4gKi9cbnZhciBpbnRlcnNlY3Rpb24gPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgdmFyIG1hcHBlZCA9IGFycmF5TWFwKGFycmF5cywgY2FzdEFycmF5TGlrZU9iamVjdCk7XG4gIHJldHVybiAobWFwcGVkLmxlbmd0aCAmJiBtYXBwZWRbMF0gPT09IGFycmF5c1swXSlcbiAgICA/IGJhc2VJbnRlcnNlY3Rpb24obWFwcGVkKVxuICAgIDogW107XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBpbnRlcnNlY3Rpb247XG4iLCIvKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZSBgYmFzZUluZGV4T2ZgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYSBjb21wYXJhdG9yLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gKiBAcGFyYW0ge251bWJlcn0gZnJvbUluZGV4IFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNvbXBhcmF0b3IgVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJbmRleE9mV2l0aChhcnJheSwgdmFsdWUsIGZyb21JbmRleCwgY29tcGFyYXRvcikge1xuICB2YXIgaW5kZXggPSBmcm9tSW5kZXggLSAxLFxuICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgaWYgKGNvbXBhcmF0b3IoYXJyYXlbaW5kZXhdLCB2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VJbmRleE9mV2l0aDtcbiIsInZhciBhcnJheU1hcCA9IHJlcXVpcmUoJy4vX2FycmF5TWFwJyksXG4gICAgYmFzZUluZGV4T2YgPSByZXF1aXJlKCcuL19iYXNlSW5kZXhPZicpLFxuICAgIGJhc2VJbmRleE9mV2l0aCA9IHJlcXVpcmUoJy4vX2Jhc2VJbmRleE9mV2l0aCcpLFxuICAgIGJhc2VVbmFyeSA9IHJlcXVpcmUoJy4vX2Jhc2VVbmFyeScpLFxuICAgIGNvcHlBcnJheSA9IHJlcXVpcmUoJy4vX2NvcHlBcnJheScpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgYXJyYXlQcm90byA9IEFycmF5LnByb3RvdHlwZTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgc3BsaWNlID0gYXJyYXlQcm90by5zcGxpY2U7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHVsbEFsbEJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlXG4gKiBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtBcnJheX0gdmFsdWVzIFRoZSB2YWx1ZXMgdG8gcmVtb3ZlLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlXSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VQdWxsQWxsKGFycmF5LCB2YWx1ZXMsIGl0ZXJhdGVlLCBjb21wYXJhdG9yKSB7XG4gIHZhciBpbmRleE9mID0gY29tcGFyYXRvciA/IGJhc2VJbmRleE9mV2l0aCA6IGJhc2VJbmRleE9mLFxuICAgICAgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHZhbHVlcy5sZW5ndGgsXG4gICAgICBzZWVuID0gYXJyYXk7XG5cbiAgaWYgKGFycmF5ID09PSB2YWx1ZXMpIHtcbiAgICB2YWx1ZXMgPSBjb3B5QXJyYXkodmFsdWVzKTtcbiAgfVxuICBpZiAoaXRlcmF0ZWUpIHtcbiAgICBzZWVuID0gYXJyYXlNYXAoYXJyYXksIGJhc2VVbmFyeShpdGVyYXRlZSkpO1xuICB9XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGZyb21JbmRleCA9IDAsXG4gICAgICAgIHZhbHVlID0gdmFsdWVzW2luZGV4XSxcbiAgICAgICAgY29tcHV0ZWQgPSBpdGVyYXRlZSA/IGl0ZXJhdGVlKHZhbHVlKSA6IHZhbHVlO1xuXG4gICAgd2hpbGUgKChmcm9tSW5kZXggPSBpbmRleE9mKHNlZW4sIGNvbXB1dGVkLCBmcm9tSW5kZXgsIGNvbXBhcmF0b3IpKSA+IC0xKSB7XG4gICAgICBpZiAoc2VlbiAhPT0gYXJyYXkpIHtcbiAgICAgICAgc3BsaWNlLmNhbGwoc2VlbiwgZnJvbUluZGV4LCAxKTtcbiAgICAgIH1cbiAgICAgIHNwbGljZS5jYWxsKGFycmF5LCBmcm9tSW5kZXgsIDEpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYXJyYXk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVB1bGxBbGw7XG4iLCJ2YXIgYmFzZVB1bGxBbGwgPSByZXF1aXJlKCcuL19iYXNlUHVsbEFsbCcpO1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ucHVsbGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBhbiBhcnJheSBvZiB2YWx1ZXMgdG8gcmVtb3ZlLlxuICpcbiAqICoqTm90ZToqKiBVbmxpa2UgYF8uZGlmZmVyZW5jZWAsIHRoaXMgbWV0aG9kIG11dGF0ZXMgYGFycmF5YC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgQXJyYXlcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byByZW1vdmUuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIGFycmF5ID0gWydhJywgJ2InLCAnYycsICdhJywgJ2InLCAnYyddO1xuICpcbiAqIF8ucHVsbEFsbChhcnJheSwgWydhJywgJ2MnXSk7XG4gKiBjb25zb2xlLmxvZyhhcnJheSk7XG4gKiAvLyA9PiBbJ2InLCAnYiddXG4gKi9cbmZ1bmN0aW9uIHB1bGxBbGwoYXJyYXksIHZhbHVlcykge1xuICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aCAmJiB2YWx1ZXMgJiYgdmFsdWVzLmxlbmd0aClcbiAgICA/IGJhc2VQdWxsQWxsKGFycmF5LCB2YWx1ZXMpXG4gICAgOiBhcnJheTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwdWxsQWxsO1xuIiwidmFyIGFycmF5RWFjaCA9IHJlcXVpcmUoJy4vX2FycmF5RWFjaCcpLFxuICAgIGJhc2VFYWNoID0gcmVxdWlyZSgnLi9fYmFzZUVhY2gnKSxcbiAgICBjYXN0RnVuY3Rpb24gPSByZXF1aXJlKCcuL19jYXN0RnVuY3Rpb24nKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi9pc0FycmF5Jyk7XG5cbi8qKlxuICogSXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZiBgY29sbGVjdGlvbmAgYW5kIGludm9rZXMgYGl0ZXJhdGVlYCBmb3IgZWFjaCBlbGVtZW50LlxuICogVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAqIEl0ZXJhdGVlIGZ1bmN0aW9ucyBtYXkgZXhpdCBpdGVyYXRpb24gZWFybHkgYnkgZXhwbGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC5cbiAqXG4gKiAqKk5vdGU6KiogQXMgd2l0aCBvdGhlciBcIkNvbGxlY3Rpb25zXCIgbWV0aG9kcywgb2JqZWN0cyB3aXRoIGEgXCJsZW5ndGhcIlxuICogcHJvcGVydHkgYXJlIGl0ZXJhdGVkIGxpa2UgYXJyYXlzLiBUbyBhdm9pZCB0aGlzIGJlaGF2aW9yIHVzZSBgXy5mb3JJbmBcbiAqIG9yIGBfLmZvck93bmAgZm9yIG9iamVjdCBpdGVyYXRpb24uXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGFsaWFzIGVhY2hcbiAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R9IFJldHVybnMgYGNvbGxlY3Rpb25gLlxuICogQHNlZSBfLmZvckVhY2hSaWdodFxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmZvckVhY2goWzEsIDJdLCBmdW5jdGlvbih2YWx1ZSkge1xuICogICBjb25zb2xlLmxvZyh2YWx1ZSk7XG4gKiB9KTtcbiAqIC8vID0+IExvZ3MgYDFgIHRoZW4gYDJgLlxuICpcbiAqIF8uZm9yRWFjaCh7ICdhJzogMSwgJ2InOiAyIH0sIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAqICAgY29uc29sZS5sb2coa2V5KTtcbiAqIH0pO1xuICogLy8gPT4gTG9ncyAnYScgdGhlbiAnYicgKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZCkuXG4gKi9cbmZ1bmN0aW9uIGZvckVhY2goY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlFYWNoIDogYmFzZUVhY2g7XG4gIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIGNhc3RGdW5jdGlvbihpdGVyYXRlZSkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZvckVhY2g7XG4iLCJ2YXIgU2V0Q2FjaGUgPSByZXF1aXJlKCcuL19TZXRDYWNoZScpLFxuICAgIGFycmF5SW5jbHVkZXMgPSByZXF1aXJlKCcuL19hcnJheUluY2x1ZGVzJyksXG4gICAgYXJyYXlJbmNsdWRlc1dpdGggPSByZXF1aXJlKCcuL19hcnJheUluY2x1ZGVzV2l0aCcpLFxuICAgIGFycmF5TWFwID0gcmVxdWlyZSgnLi9fYXJyYXlNYXAnKSxcbiAgICBiYXNlVW5hcnkgPSByZXF1aXJlKCcuL19iYXNlVW5hcnknKSxcbiAgICBjYWNoZUhhcyA9IHJlcXVpcmUoJy4vX2NhY2hlSGFzJyk7XG5cbi8qKiBVc2VkIGFzIHRoZSBzaXplIHRvIGVuYWJsZSBsYXJnZSBhcnJheSBvcHRpbWl6YXRpb25zLiAqL1xudmFyIExBUkdFX0FSUkFZX1NJWkUgPSAyMDA7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgbWV0aG9kcyBsaWtlIGBfLmRpZmZlcmVuY2VgIHdpdGhvdXQgc3VwcG9ydFxuICogZm9yIGV4Y2x1ZGluZyBtdWx0aXBsZSBhcnJheXMgb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byBleGNsdWRlLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlXSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZmlsdGVyZWQgdmFsdWVzLlxuICovXG5mdW5jdGlvbiBiYXNlRGlmZmVyZW5jZShhcnJheSwgdmFsdWVzLCBpdGVyYXRlZSwgY29tcGFyYXRvcikge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGluY2x1ZGVzID0gYXJyYXlJbmNsdWRlcyxcbiAgICAgIGlzQ29tbW9uID0gdHJ1ZSxcbiAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IFtdLFxuICAgICAgdmFsdWVzTGVuZ3RoID0gdmFsdWVzLmxlbmd0aDtcblxuICBpZiAoIWxlbmd0aCkge1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgaWYgKGl0ZXJhdGVlKSB7XG4gICAgdmFsdWVzID0gYXJyYXlNYXAodmFsdWVzLCBiYXNlVW5hcnkoaXRlcmF0ZWUpKTtcbiAgfVxuICBpZiAoY29tcGFyYXRvcikge1xuICAgIGluY2x1ZGVzID0gYXJyYXlJbmNsdWRlc1dpdGg7XG4gICAgaXNDb21tb24gPSBmYWxzZTtcbiAgfVxuICBlbHNlIGlmICh2YWx1ZXMubGVuZ3RoID49IExBUkdFX0FSUkFZX1NJWkUpIHtcbiAgICBpbmNsdWRlcyA9IGNhY2hlSGFzO1xuICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgdmFsdWVzID0gbmV3IFNldENhY2hlKHZhbHVlcyk7XG4gIH1cbiAgb3V0ZXI6XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdLFxuICAgICAgICBjb21wdXRlZCA9IGl0ZXJhdGVlID09IG51bGwgPyB2YWx1ZSA6IGl0ZXJhdGVlKHZhbHVlKTtcblxuICAgIHZhbHVlID0gKGNvbXBhcmF0b3IgfHwgdmFsdWUgIT09IDApID8gdmFsdWUgOiAwO1xuICAgIGlmIChpc0NvbW1vbiAmJiBjb21wdXRlZCA9PT0gY29tcHV0ZWQpIHtcbiAgICAgIHZhciB2YWx1ZXNJbmRleCA9IHZhbHVlc0xlbmd0aDtcbiAgICAgIHdoaWxlICh2YWx1ZXNJbmRleC0tKSB7XG4gICAgICAgIGlmICh2YWx1ZXNbdmFsdWVzSW5kZXhdID09PSBjb21wdXRlZCkge1xuICAgICAgICAgIGNvbnRpbnVlIG91dGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKCFpbmNsdWRlcyh2YWx1ZXMsIGNvbXB1dGVkLCBjb21wYXJhdG9yKSkge1xuICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VEaWZmZXJlbmNlO1xuIiwidmFyIGJhc2VEaWZmZXJlbmNlID0gcmVxdWlyZSgnLi9fYmFzZURpZmZlcmVuY2UnKSxcbiAgICBiYXNlUmVzdCA9IHJlcXVpcmUoJy4vX2Jhc2VSZXN0JyksXG4gICAgaXNBcnJheUxpa2VPYmplY3QgPSByZXF1aXJlKCcuL2lzQXJyYXlMaWtlT2JqZWN0Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBleGNsdWRpbmcgYWxsIGdpdmVuIHZhbHVlcyB1c2luZ1xuICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy5cbiAqXG4gKiAqKk5vdGU6KiogVW5saWtlIGBfLnB1bGxgLCB0aGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IGFycmF5LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBBcnJheVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gKiBAcGFyYW0gey4uLip9IFt2YWx1ZXNdIFRoZSB2YWx1ZXMgdG8gZXhjbHVkZS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGZpbHRlcmVkIHZhbHVlcy5cbiAqIEBzZWUgXy5kaWZmZXJlbmNlLCBfLnhvclxuICogQGV4YW1wbGVcbiAqXG4gKiBfLndpdGhvdXQoWzIsIDEsIDIsIDNdLCAxLCAyKTtcbiAqIC8vID0+IFszXVxuICovXG52YXIgd2l0aG91dCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5LCB2YWx1ZXMpIHtcbiAgcmV0dXJuIGlzQXJyYXlMaWtlT2JqZWN0KGFycmF5KVxuICAgID8gYmFzZURpZmZlcmVuY2UoYXJyYXksIHZhbHVlcylcbiAgICA6IFtdO1xufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gd2l0aG91dDtcbiIsImNvbnN0IGZsYXR0ZW4gPSByZXF1aXJlKCdsb2Rhc2gvZmxhdHRlbicpXG5jb25zdCBmbGF0dGVuRGVlcCA9IHJlcXVpcmUoJ2xvZGFzaC9mbGF0dGVuRGVlcCcpXG5jb25zdCBpc1BsYWluT2JqZWN0ID0gcmVxdWlyZSgnbG9kYXNoL2lzUGxhaW5PYmplY3QnKVxuY29uc3QgdW5pcSA9IHJlcXVpcmUoJ2xvZGFzaC91bmlxJylcbmNvbnN0IHVuaXFXaXRoID0gcmVxdWlyZSgnbG9kYXNoL3VuaXFXaXRoJylcbmNvbnN0IHdpdGhvdXQgPSByZXF1aXJlKCdsb2Rhc2gvd2l0aG91dCcpXG5cbmZ1bmN0aW9uIGRlbGV0ZVVuZGVmaW5lZFByb3BzKHJldHVybk9iamVjdCkge1xuICAvLyBjbGVhbnVwIGVtcHR5XG4gIGZvciAoY29uc3QgcHJvcCBpbiByZXR1cm5PYmplY3QpIHtcbiAgICBpZiAoaGFzKHJldHVybk9iamVjdCwgcHJvcCkgJiYgaXNFbXB0eVNjaGVtYShyZXR1cm5PYmplY3RbcHJvcF0pKSB7XG4gICAgICBkZWxldGUgcmV0dXJuT2JqZWN0W3Byb3BdXG4gICAgfVxuICB9XG4gIHJldHVybiByZXR1cm5PYmplY3Rcbn1cblxuY29uc3QgYWxsVW5pcXVlS2V5cyA9IChhcnIpID0+IHVuaXEoZmxhdHRlbkRlZXAoYXJyLm1hcChrZXlzKSkpXG5jb25zdCBnZXRWYWx1ZXMgPSAoc2NoZW1hcywga2V5KSA9PiBzY2hlbWFzLm1hcChzY2hlbWEgPT4gc2NoZW1hICYmIHNjaGVtYVtrZXldKVxuY29uc3QgaGFzID0gKG9iaiwgcHJvcE5hbWUpID0+IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3BOYW1lKVxuY29uc3Qga2V5cyA9IG9iaiA9PiB7XG4gIGlmIChpc1BsYWluT2JqZWN0KG9iaikgfHwgQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iailcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gW11cbiAgfVxufVxuXG5jb25zdCBub3RVbmRlZmluZWQgPSAodmFsKSA9PiB2YWwgIT09IHVuZGVmaW5lZFxuY29uc3QgaXNTY2hlbWEgPSAodmFsKSA9PiBpc1BsYWluT2JqZWN0KHZhbCkgfHwgdmFsID09PSB0cnVlIHx8IHZhbCA9PT0gZmFsc2VcbmNvbnN0IGlzRW1wdHlTY2hlbWEgPSAob2JqKSA9PiAoIWtleXMob2JqKS5sZW5ndGgpICYmIG9iaiAhPT0gZmFsc2UgJiYgb2JqICE9PSB0cnVlXG5jb25zdCB3aXRob3V0QXJyID0gKGFyciwgLi4ucmVzdCkgPT4gd2l0aG91dC5hcHBseShudWxsLCBbYXJyXS5jb25jYXQoZmxhdHRlbihyZXN0KSkpXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBhbGxVbmlxdWVLZXlzLFxuICBkZWxldGVVbmRlZmluZWRQcm9wcyxcbiAgZ2V0VmFsdWVzLFxuICBoYXMsXG4gIGlzRW1wdHlTY2hlbWEsXG4gIGlzU2NoZW1hLFxuICBrZXlzLFxuICBub3RVbmRlZmluZWQsXG4gIHVuaXFXaXRoLFxuICB3aXRob3V0QXJyXG59XG4iLCJcbmNvbnN0IGNvbXBhcmUgPSByZXF1aXJlKCdqc29uLXNjaGVtYS1jb21wYXJlJylcbmNvbnN0IGZvckVhY2ggPSByZXF1aXJlKCdsb2Rhc2gvZm9yRWFjaCcpXG5jb25zdCB7XG4gIGFsbFVuaXF1ZUtleXMsXG4gIGRlbGV0ZVVuZGVmaW5lZFByb3BzLFxuICBnZXRWYWx1ZXMsXG4gIGtleXMsXG4gIG5vdFVuZGVmaW5lZCxcbiAgdW5pcVdpdGgsXG4gIHdpdGhvdXRBcnJcbn0gPSByZXF1aXJlKCcuLi9jb21tb24nKVxuXG5mdW5jdGlvbiByZW1vdmVGYWxzZVNjaGVtYXModGFyZ2V0KSB7XG4gIGZvckVhY2godGFyZ2V0LCBmdW5jdGlvbihzY2hlbWEsIHByb3ApIHtcbiAgICBpZiAoc2NoZW1hID09PSBmYWxzZSkge1xuICAgICAgZGVsZXRlIHRhcmdldFtwcm9wXVxuICAgIH1cbiAgfSlcbn1cblxuZnVuY3Rpb24gbWVyZ2VTY2hlbWFHcm91cChncm91cCwgbWVyZ2VTY2hlbWFzKSB7XG4gIGNvbnN0IGFsbEtleXMgPSBhbGxVbmlxdWVLZXlzKGdyb3VwKVxuICByZXR1cm4gYWxsS2V5cy5yZWR1Y2UoZnVuY3Rpb24oYWxsLCBrZXkpIHtcbiAgICBjb25zdCBzY2hlbWFzID0gZ2V0VmFsdWVzKGdyb3VwLCBrZXkpXG4gICAgY29uc3QgY29tcGFjdGVkID0gdW5pcVdpdGgoc2NoZW1hcy5maWx0ZXIobm90VW5kZWZpbmVkKSwgY29tcGFyZSlcbiAgICBhbGxba2V5XSA9IG1lcmdlU2NoZW1hcyhjb21wYWN0ZWQsIGtleSlcbiAgICByZXR1cm4gYWxsXG4gIH0sIHt9KVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAga2V5d29yZHM6IFsncHJvcGVydGllcycsICdwYXR0ZXJuUHJvcGVydGllcycsICdhZGRpdGlvbmFsUHJvcGVydGllcyddLFxuICByZXNvbHZlcih2YWx1ZXMsIHBhcmVudHMsIG1lcmdlcnMsIG9wdGlvbnMpIHtcbiAgICAvLyBmaXJzdCBnZXQgcmlkIG9mIGFsbCBub24gcGVybWl0dGVkIHByb3BlcnRpZXNcbiAgICBpZiAoIW9wdGlvbnMuaWdub3JlQWRkaXRpb25hbFByb3BlcnRpZXMpIHtcbiAgICAgIHZhbHVlcy5mb3JFYWNoKGZ1bmN0aW9uKHN1YlNjaGVtYSkge1xuICAgICAgICBjb25zdCBvdGhlclN1YlNjaGVtYXMgPSB2YWx1ZXMuZmlsdGVyKHMgPT4gcyAhPT0gc3ViU2NoZW1hKVxuICAgICAgICBjb25zdCBvd25LZXlzID0ga2V5cyhzdWJTY2hlbWEucHJvcGVydGllcylcbiAgICAgICAgY29uc3Qgb3duUGF0dGVybktleXMgPSBrZXlzKHN1YlNjaGVtYS5wYXR0ZXJuUHJvcGVydGllcylcbiAgICAgICAgY29uc3Qgb3duUGF0dGVybnMgPSBvd25QYXR0ZXJuS2V5cy5tYXAoayA9PiBuZXcgUmVnRXhwKGspKVxuICAgICAgICBvdGhlclN1YlNjaGVtYXMuZm9yRWFjaChmdW5jdGlvbihvdGhlcikge1xuICAgICAgICAgIGNvbnN0IGFsbE90aGVyS2V5cyA9IGtleXMob3RoZXIucHJvcGVydGllcylcbiAgICAgICAgICBjb25zdCBrZXlzTWF0Y2hpbmdQYXR0ZXJuID0gYWxsT3RoZXJLZXlzLmZpbHRlcihrID0+IG93blBhdHRlcm5zLnNvbWUocGsgPT4gcGsudGVzdChrKSkpXG4gICAgICAgICAgY29uc3QgYWRkaXRpb25hbEtleXMgPSB3aXRob3V0QXJyKGFsbE90aGVyS2V5cywgb3duS2V5cywga2V5c01hdGNoaW5nUGF0dGVybilcbiAgICAgICAgICBhZGRpdGlvbmFsS2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgICAgb3RoZXIucHJvcGVydGllc1trZXldID0gbWVyZ2Vycy5wcm9wZXJ0aWVzKFtcbiAgICAgICAgICAgICAgb3RoZXIucHJvcGVydGllc1trZXldLCBzdWJTY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXNcbiAgICAgICAgICAgIF0sIGtleSlcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgfSlcblxuICAgICAgLy8gcmVtb3ZlIGRpc2FsbG93ZWQgcGF0dGVyblByb3BlcnRpZXNcbiAgICAgIHZhbHVlcy5mb3JFYWNoKGZ1bmN0aW9uKHN1YlNjaGVtYSkge1xuICAgICAgICBjb25zdCBvdGhlclN1YlNjaGVtYXMgPSB2YWx1ZXMuZmlsdGVyKHMgPT4gcyAhPT0gc3ViU2NoZW1hKVxuICAgICAgICBjb25zdCBvd25QYXR0ZXJuS2V5cyA9IGtleXMoc3ViU2NoZW1hLnBhdHRlcm5Qcm9wZXJ0aWVzKVxuICAgICAgICBpZiAoc3ViU2NoZW1hLmFkZGl0aW9uYWxQcm9wZXJ0aWVzID09PSBmYWxzZSkge1xuICAgICAgICAgIG90aGVyU3ViU2NoZW1hcy5mb3JFYWNoKGZ1bmN0aW9uKG90aGVyKSB7XG4gICAgICAgICAgICBjb25zdCBhbGxPdGhlclBhdHRlcm5zID0ga2V5cyhvdGhlci5wYXR0ZXJuUHJvcGVydGllcylcbiAgICAgICAgICAgIGNvbnN0IGFkZGl0aW9uYWxQYXR0ZXJuS2V5cyA9IHdpdGhvdXRBcnIoYWxsT3RoZXJQYXR0ZXJucywgb3duUGF0dGVybktleXMpXG4gICAgICAgICAgICBhZGRpdGlvbmFsUGF0dGVybktleXMuZm9yRWFjaChrZXkgPT4gZGVsZXRlIG90aGVyLnBhdHRlcm5Qcm9wZXJ0aWVzW2tleV0pXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCByZXR1cm5PYmplY3QgPSB7XG4gICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogbWVyZ2Vycy5hZGRpdGlvbmFsUHJvcGVydGllcyh2YWx1ZXMubWFwKHMgPT4gcy5hZGRpdGlvbmFsUHJvcGVydGllcykpLFxuICAgICAgcGF0dGVyblByb3BlcnRpZXM6IG1lcmdlU2NoZW1hR3JvdXAodmFsdWVzLm1hcChzID0+IHMucGF0dGVyblByb3BlcnRpZXMpLCBtZXJnZXJzLnBhdHRlcm5Qcm9wZXJ0aWVzKSxcbiAgICAgIHByb3BlcnRpZXM6IG1lcmdlU2NoZW1hR3JvdXAodmFsdWVzLm1hcChzID0+IHMucHJvcGVydGllcyksIG1lcmdlcnMucHJvcGVydGllcylcbiAgICB9XG5cbiAgICBpZiAocmV0dXJuT2JqZWN0LmFkZGl0aW9uYWxQcm9wZXJ0aWVzID09PSBmYWxzZSkge1xuICAgICAgcmVtb3ZlRmFsc2VTY2hlbWFzKHJldHVybk9iamVjdC5wcm9wZXJ0aWVzKVxuICAgIH1cblxuICAgIHJldHVybiBkZWxldGVVbmRlZmluZWRQcm9wcyhyZXR1cm5PYmplY3QpXG4gIH1cbn1cbiIsIlxuY29uc3QgY29tcGFyZSA9IHJlcXVpcmUoJ2pzb24tc2NoZW1hLWNvbXBhcmUnKVxuY29uc3QgZm9yRWFjaCA9IHJlcXVpcmUoJ2xvZGFzaC9mb3JFYWNoJylcbmNvbnN0IHtcbiAgYWxsVW5pcXVlS2V5cyxcbiAgZGVsZXRlVW5kZWZpbmVkUHJvcHMsXG4gIGhhcyxcbiAgaXNTY2hlbWEsXG4gIG5vdFVuZGVmaW5lZCxcbiAgdW5pcVdpdGhcbn0gPSByZXF1aXJlKCcuLi9jb21tb24nKVxuXG5mdW5jdGlvbiByZW1vdmVGYWxzZVNjaGVtYXNGcm9tQXJyYXkodGFyZ2V0KSB7XG4gIGZvckVhY2godGFyZ2V0LCBmdW5jdGlvbihzY2hlbWEsIGluZGV4KSB7XG4gICAgaWYgKHNjaGVtYSA9PT0gZmFsc2UpIHtcbiAgICAgIHRhcmdldC5zcGxpY2UoaW5kZXgsIDEpXG4gICAgfVxuICB9KVxufVxuXG5mdW5jdGlvbiBnZXRJdGVtU2NoZW1hcyhzdWJTY2hlbWFzLCBrZXkpIHtcbiAgcmV0dXJuIHN1YlNjaGVtYXMubWFwKGZ1bmN0aW9uKHN1Yikge1xuICAgIGlmICghc3ViKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc3ViLml0ZW1zKSkge1xuICAgICAgY29uc3Qgc2NoZW1hQXRQb3MgPSBzdWIuaXRlbXNba2V5XVxuICAgICAgaWYgKGlzU2NoZW1hKHNjaGVtYUF0UG9zKSkge1xuICAgICAgICByZXR1cm4gc2NoZW1hQXRQb3NcbiAgICAgIH0gZWxzZSBpZiAoaGFzKHN1YiwgJ2FkZGl0aW9uYWxJdGVtcycpKSB7XG4gICAgICAgIHJldHVybiBzdWIuYWRkaXRpb25hbEl0ZW1zXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzdWIuaXRlbXNcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0pXG59XG5cbmZ1bmN0aW9uIGdldEFkZGl0aW9uYWxTY2hlbWFzKHN1YlNjaGVtYXMpIHtcbiAgcmV0dXJuIHN1YlNjaGVtYXMubWFwKGZ1bmN0aW9uKHN1Yikge1xuICAgIGlmICghc3ViKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHN1Yi5pdGVtcykpIHtcbiAgICAgIHJldHVybiBzdWIuYWRkaXRpb25hbEl0ZW1zXG4gICAgfVxuICAgIHJldHVybiBzdWIuaXRlbXNcbiAgfSlcbn1cblxuLy8gUHJvdmlkZSBzb3VyY2Ugd2hlbiBhcnJheVxuZnVuY3Rpb24gbWVyZ2VJdGVtcyhncm91cCwgbWVyZ2VTY2hlbWFzLCBpdGVtcykge1xuICBjb25zdCBhbGxLZXlzID0gYWxsVW5pcXVlS2V5cyhpdGVtcylcbiAgcmV0dXJuIGFsbEtleXMucmVkdWNlKGZ1bmN0aW9uKGFsbCwga2V5KSB7XG4gICAgY29uc3Qgc2NoZW1hcyA9IGdldEl0ZW1TY2hlbWFzKGdyb3VwLCBrZXkpXG4gICAgY29uc3QgY29tcGFjdGVkID0gdW5pcVdpdGgoc2NoZW1hcy5maWx0ZXIobm90VW5kZWZpbmVkKSwgY29tcGFyZSlcbiAgICBhbGxba2V5XSA9IG1lcmdlU2NoZW1hcyhjb21wYWN0ZWQsIGtleSlcbiAgICByZXR1cm4gYWxsXG4gIH0sIFtdKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAga2V5d29yZHM6IFsnaXRlbXMnLCAnYWRkaXRpb25hbEl0ZW1zJ10sXG4gIHJlc29sdmVyKHZhbHVlcywgcGFyZW50cywgbWVyZ2Vycykge1xuICAgIC8vIGNvbnN0IGNyZWF0ZVN1Yk1lcmdlciA9IGdyb3VwS2V5ID0+IChzY2hlbWFzLCBrZXkpID0+IG1lcmdlU2NoZW1hcyhzY2hlbWFzLCBwYXJlbnRzLmNvbmNhdChncm91cEtleSwga2V5KSlcbiAgICBjb25zdCBpdGVtcyA9IHZhbHVlcy5tYXAocyA9PiBzLml0ZW1zKVxuICAgIGNvbnN0IGl0ZW1zQ29tcGFjdGVkID0gaXRlbXMuZmlsdGVyKG5vdFVuZGVmaW5lZClcbiAgICBjb25zdCByZXR1cm5PYmplY3QgPSB7fVxuXG4gICAgLy8gaWYgYWxsIGl0ZW1zIGtleXdvcmQgdmFsdWVzIGFyZSBzY2hlbWFzLCB3ZSBjYW4gbWVyZ2UgdGhlbSBhcyBzaW1wbGUgc2NoZW1hc1xuICAgIC8vIGlmIG5vdCB3ZSBuZWVkIHRvIG1lcmdlIHRoZW0gYXMgbWl4ZWRcbiAgICBpZiAoaXRlbXNDb21wYWN0ZWQuZXZlcnkoaXNTY2hlbWEpKSB7XG4gICAgICByZXR1cm5PYmplY3QuaXRlbXMgPSBtZXJnZXJzLml0ZW1zKGl0ZW1zKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm5PYmplY3QuaXRlbXMgPSBtZXJnZUl0ZW1zKHZhbHVlcywgbWVyZ2Vycy5pdGVtcywgaXRlbXMpXG4gICAgfVxuXG4gICAgbGV0IHNjaGVtYXNBdExhc3RQb3NcbiAgICBpZiAoaXRlbXNDb21wYWN0ZWQuZXZlcnkoQXJyYXkuaXNBcnJheSkpIHtcbiAgICAgIHNjaGVtYXNBdExhc3RQb3MgPSB2YWx1ZXMubWFwKHMgPT4gcy5hZGRpdGlvbmFsSXRlbXMpXG4gICAgfSBlbHNlIGlmIChpdGVtc0NvbXBhY3RlZC5zb21lKEFycmF5LmlzQXJyYXkpKSB7XG4gICAgICBzY2hlbWFzQXRMYXN0UG9zID0gZ2V0QWRkaXRpb25hbFNjaGVtYXModmFsdWVzKVxuICAgIH1cblxuICAgIGlmIChzY2hlbWFzQXRMYXN0UG9zKSB7XG4gICAgICByZXR1cm5PYmplY3QuYWRkaXRpb25hbEl0ZW1zID0gbWVyZ2Vycy5hZGRpdGlvbmFsSXRlbXMoc2NoZW1hc0F0TGFzdFBvcylcbiAgICB9XG5cbiAgICBpZiAocmV0dXJuT2JqZWN0LmFkZGl0aW9uYWxJdGVtcyA9PT0gZmFsc2UgJiYgQXJyYXkuaXNBcnJheShyZXR1cm5PYmplY3QuaXRlbXMpKSB7XG4gICAgICByZW1vdmVGYWxzZVNjaGVtYXNGcm9tQXJyYXkocmV0dXJuT2JqZWN0Lml0ZW1zKVxuICAgIH1cblxuICAgIHJldHVybiBkZWxldGVVbmRlZmluZWRQcm9wcyhyZXR1cm5PYmplY3QpXG4gIH1cbn1cbiIsImNvbnN0IGNsb25lRGVlcCA9IHJlcXVpcmUoJ2xvZGFzaC9jbG9uZURlZXAnKVxuY29uc3QgY29tcGFyZSA9IHJlcXVpcmUoJ2pzb24tc2NoZW1hLWNvbXBhcmUnKVxuY29uc3QgY29tcHV0ZUxjbSA9IHJlcXVpcmUoJ2NvbXB1dGUtbGNtJylcbmNvbnN0IGRlZmF1bHRzRGVlcCA9IHJlcXVpcmUoJ2xvZGFzaC9kZWZhdWx0c0RlZXAnKVxuY29uc3QgZmxhdHRlbiA9IHJlcXVpcmUoJ2xvZGFzaC9mbGF0dGVuJylcbmNvbnN0IGZsYXR0ZW5EZWVwID0gcmVxdWlyZSgnbG9kYXNoL2ZsYXR0ZW5EZWVwJylcbmNvbnN0IGludGVyc2VjdGlvbiA9IHJlcXVpcmUoJ2xvZGFzaC9pbnRlcnNlY3Rpb24nKVxuY29uc3QgaW50ZXJzZWN0aW9uV2l0aCA9IHJlcXVpcmUoJ2xvZGFzaC9pbnRlcnNlY3Rpb25XaXRoJylcbmNvbnN0IGlzRXF1YWwgPSByZXF1aXJlKCdsb2Rhc2gvaXNFcXVhbCcpXG5jb25zdCBpc1BsYWluT2JqZWN0ID0gcmVxdWlyZSgnbG9kYXNoL2lzUGxhaW5PYmplY3QnKVxuY29uc3QgcHVsbEFsbCA9IHJlcXVpcmUoJ2xvZGFzaC9wdWxsQWxsJylcbmNvbnN0IHNvcnRCeSA9IHJlcXVpcmUoJ2xvZGFzaC9zb3J0QnknKVxuY29uc3QgdW5pcSA9IHJlcXVpcmUoJ2xvZGFzaC91bmlxJylcbmNvbnN0IHVuaXFXaXRoID0gcmVxdWlyZSgnbG9kYXNoL3VuaXFXaXRoJylcblxuY29uc3QgcHJvcGVydGllc1Jlc29sdmVyID0gcmVxdWlyZSgnLi9jb21wbGV4LXJlc29sdmVycy9wcm9wZXJ0aWVzJylcbmNvbnN0IGl0ZW1zUmVzb2x2ZXIgPSByZXF1aXJlKCcuL2NvbXBsZXgtcmVzb2x2ZXJzL2l0ZW1zJylcblxuY29uc3QgY29udGFpbnMgPSAoYXJyLCB2YWwpID0+IGFyci5pbmRleE9mKHZhbCkgIT09IC0xXG5jb25zdCBpc1NjaGVtYSA9ICh2YWwpID0+IGlzUGxhaW5PYmplY3QodmFsKSB8fCB2YWwgPT09IHRydWUgfHwgdmFsID09PSBmYWxzZVxuY29uc3QgaXNGYWxzZSA9ICh2YWwpID0+IHZhbCA9PT0gZmFsc2VcbmNvbnN0IGlzVHJ1ZSA9ICh2YWwpID0+IHZhbCA9PT0gdHJ1ZVxuY29uc3Qgc2NoZW1hUmVzb2x2ZXIgPSAoY29tcGFjdGVkLCBrZXksIG1lcmdlU2NoZW1hcykgPT4gbWVyZ2VTY2hlbWFzKGNvbXBhY3RlZClcbmNvbnN0IHN0cmluZ0FycmF5ID0gKHZhbHVlcykgPT4gc29ydEJ5KHVuaXEoZmxhdHRlbkRlZXAodmFsdWVzKSkpXG5jb25zdCBub3RVbmRlZmluZWQgPSAodmFsKSA9PiB2YWwgIT09IHVuZGVmaW5lZFxuY29uc3QgYWxsVW5pcXVlS2V5cyA9IChhcnIpID0+IHVuaXEoZmxhdHRlbkRlZXAoYXJyLm1hcChrZXlzKSkpXG5cbi8vIHJlc29sdmVyc1xuY29uc3QgZmlyc3QgPSBjb21wYWN0ZWQgPT4gY29tcGFjdGVkWzBdXG5jb25zdCByZXF1aXJlZCA9IGNvbXBhY3RlZCA9PiBzdHJpbmdBcnJheShjb21wYWN0ZWQpXG5jb25zdCBtYXhpbXVtVmFsdWUgPSBjb21wYWN0ZWQgPT4gTWF0aC5tYXguYXBwbHkoTWF0aCwgY29tcGFjdGVkKVxuY29uc3QgbWluaW11bVZhbHVlID0gY29tcGFjdGVkID0+IE1hdGgubWluLmFwcGx5KE1hdGgsIGNvbXBhY3RlZClcbmNvbnN0IHVuaXF1ZUl0ZW1zID0gY29tcGFjdGVkID0+IGNvbXBhY3RlZC5zb21lKGlzVHJ1ZSlcbmNvbnN0IGV4YW1wbGVzID0gY29tcGFjdGVkID0+IHVuaXFXaXRoKGZsYXR0ZW4oY29tcGFjdGVkKSwgaXNFcXVhbClcblxuZnVuY3Rpb24gY29tcGFyZVByb3Aoa2V5KSB7XG4gIHJldHVybiBmdW5jdGlvbihhLCBiKSB7XG4gICAgcmV0dXJuIGNvbXBhcmUoe1xuICAgICAgW2tleV06IGFcbiAgICB9LCB7IFtrZXldOiBiIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0QWxsT2Yoc2NoZW1hKSB7XG4gIGxldCB7IGFsbE9mID0gW10sIC4uLmNvcHkgfSA9IHNjaGVtYVxuICBjb3B5ID0gaXNQbGFpbk9iamVjdChzY2hlbWEpID8gY29weSA6IHNjaGVtYSAvLyBpZiBzY2hlbWEgaXMgYm9vbGVhblxuICByZXR1cm4gW2NvcHksIC4uLmFsbE9mLm1hcChnZXRBbGxPZildXG59XG5cbmZ1bmN0aW9uIGdldFZhbHVlcyhzY2hlbWFzLCBrZXkpIHtcbiAgcmV0dXJuIHNjaGVtYXMubWFwKHNjaGVtYSA9PiBzY2hlbWEgJiYgc2NoZW1hW2tleV0pXG59XG5cbmZ1bmN0aW9uIHRyeU1lcmdlU2NoZW1hR3JvdXBzKHNjaGVtYUdyb3VwcywgbWVyZ2VTY2hlbWFzKSB7XG4gIHJldHVybiBzY2hlbWFHcm91cHMubWFwKGZ1bmN0aW9uKHNjaGVtYXMsIGluZGV4KSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBtZXJnZVNjaGVtYXMoc2NoZW1hcywgaW5kZXgpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cbiAgfSkuZmlsdGVyKG5vdFVuZGVmaW5lZClcbn1cblxuZnVuY3Rpb24ga2V5cyhvYmopIHtcbiAgaWYgKGlzUGxhaW5PYmplY3Qob2JqKSB8fCBBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBbXVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldEFueU9mQ29tYmluYXRpb25zKGFyck9mQXJyYXlzLCBjb21iaW5hdGlvbnMpIHtcbiAgY29tYmluYXRpb25zID0gY29tYmluYXRpb25zIHx8IFtdXG4gIGlmICghYXJyT2ZBcnJheXMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGNvbWJpbmF0aW9uc1xuICB9XG5cbiAgY29uc3QgdmFsdWVzID0gYXJyT2ZBcnJheXMuc2xpY2UoMCkuc2hpZnQoKVxuICBjb25zdCByZXN0ID0gYXJyT2ZBcnJheXMuc2xpY2UoMSlcbiAgaWYgKGNvbWJpbmF0aW9ucy5sZW5ndGgpIHtcbiAgICByZXR1cm4gZ2V0QW55T2ZDb21iaW5hdGlvbnMocmVzdCwgZmxhdHRlbihjb21iaW5hdGlvbnMubWFwKGNvbWJpbmF0aW9uID0+IHZhbHVlcy5tYXAoaXRlbSA9PiAoW2l0ZW1dLmNvbmNhdChjb21iaW5hdGlvbikpKSkpKVxuICB9XG4gIHJldHVybiBnZXRBbnlPZkNvbWJpbmF0aW9ucyhyZXN0LCB2YWx1ZXMubWFwKGl0ZW0gPT4gKGl0ZW0pKSlcbn1cblxuZnVuY3Rpb24gdGhyb3dJbmNvbXBhdGlibGUodmFsdWVzLCBwYXRocykge1xuICBsZXQgYXNKU09OXG4gIHRyeSB7XG4gICAgYXNKU09OID0gdmFsdWVzLm1hcChmdW5jdGlvbih2YWwpIHtcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWwsIG51bGwsIDIpXG4gICAgfSkuam9pbignXFxuJylcbiAgfSBjYXRjaCAodmFyaWFibGUpIHtcbiAgICBhc0pTT04gPSB2YWx1ZXMuam9pbignLCAnKVxuICB9XG4gIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IHJlc29sdmUgdmFsdWVzIGZvciBwYXRoOlwiJyArIHBhdGhzLmpvaW4oJy4nKSArICdcIi4gVGhleSBhcmUgcHJvYmFibHkgaW5jb21wYXRpYmxlLiBWYWx1ZXM6IFxcbicgKyBhc0pTT04pXG59XG5cbmZ1bmN0aW9uIGNhbGxHcm91cFJlc29sdmVyKGNvbXBsZXhLZXl3b3JkcywgcmVzb2x2ZXJOYW1lLCBzY2hlbWFzLCBtZXJnZVNjaGVtYXMsIG9wdGlvbnMsIHBhcmVudHMpIHtcbiAgaWYgKGNvbXBsZXhLZXl3b3Jkcy5sZW5ndGgpIHtcbiAgICBjb25zdCByZXNvbHZlckNvbmZpZyA9IG9wdGlvbnMuY29tcGxleFJlc29sdmVyc1tyZXNvbHZlck5hbWVdXG4gICAgaWYgKCFyZXNvbHZlckNvbmZpZyB8fCAhcmVzb2x2ZXJDb25maWcucmVzb2x2ZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gcmVzb2x2ZXIgZm91bmQgZm9yICcgKyByZXNvbHZlck5hbWUpXG4gICAgfVxuXG4gICAgLy8gZXh0cmFjdCBhbGwga2V5d29yZHMgZnJvbSBhbGwgdGhlIHNjaGVtYXMgdGhhdCBoYXZlIG9uZSBvciBtb3JlXG4gICAgLy8gdGhlbiByZW1vdmUgYWxsIHVuZGVmaW5lZCBvbmVzIGFuZCBub3QgdW5pcXVlXG4gICAgY29uc3QgZXh0cmFjdGVkS2V5d29yZHNPbmx5ID0gc2NoZW1hcy5tYXAoc2NoZW1hID0+IGNvbXBsZXhLZXl3b3Jkcy5yZWR1Y2UoKGFsbCwga2V5KSA9PiB7XG4gICAgICBpZiAoc2NoZW1hW2tleV0gIT09IHVuZGVmaW5lZCkgYWxsW2tleV0gPSBzY2hlbWFba2V5XVxuICAgICAgcmV0dXJuIGFsbFxuICAgIH0sIHt9KSlcbiAgICBjb25zdCB1bmlxdWUgPSB1bmlxV2l0aChleHRyYWN0ZWRLZXl3b3Jkc09ubHksIGNvbXBhcmUpXG5cbiAgICAvLyBjcmVhdGUgbWVyZ2VycyB0aGF0IGF1dG9tYXRpY2FsbHkgYWRkIHRoZSBwYXRoIG9mIHRoZSBrZXl3b3JkIGZvciB1c2UgaW4gdGhlIGNvbXBsZXggcmVzb2x2ZXJcbiAgICBjb25zdCBtZXJnZXJzID0gcmVzb2x2ZXJDb25maWcua2V5d29yZHMucmVkdWNlKChhbGwsIGtleSkgPT4gKHtcbiAgICAgIC4uLmFsbCxcbiAgICAgIFtrZXldOiAoc2NoZW1hcywgZXh0cmFLZXkgPSBbXSkgPT4gbWVyZ2VTY2hlbWFzKHNjaGVtYXMsIG51bGwsIHBhcmVudHMuY29uY2F0KGtleSwgZXh0cmFLZXkpKVxuICAgIH0pLCB7fSlcblxuICAgIGNvbnN0IHJlc3VsdCA9IHJlc29sdmVyQ29uZmlnLnJlc29sdmVyKHVuaXF1ZSwgcGFyZW50cy5jb25jYXQocmVzb2x2ZXJOYW1lKSwgbWVyZ2Vycywgb3B0aW9ucylcblxuICAgIGlmICghaXNQbGFpbk9iamVjdChyZXN1bHQpKSB7XG4gICAgICB0aHJvd0luY29tcGF0aWJsZSh1bmlxdWUsIHBhcmVudHMuY29uY2F0KHJlc29sdmVyTmFtZSkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVJlcXVpcmVkTWV0YUFycmF5KGFycikge1xuICByZXR1cm4geyByZXF1aXJlZDogYXJyIH1cbn1cblxuY29uc3Qgc2NoZW1hR3JvdXBQcm9wcyA9IFsncHJvcGVydGllcycsICdwYXR0ZXJuUHJvcGVydGllcycsICdkZWZpbml0aW9ucycsICdkZXBlbmRlbmNpZXMnXVxuY29uc3Qgc2NoZW1hQXJyYXlzID0gWydhbnlPZicsICdvbmVPZiddXG5jb25zdCBzY2hlbWFQcm9wcyA9IFtcbiAgJ2FkZGl0aW9uYWxQcm9wZXJ0aWVzJyxcbiAgJ2FkZGl0aW9uYWxJdGVtcycsXG4gICdjb250YWlucycsXG4gICdwcm9wZXJ0eU5hbWVzJyxcbiAgJ25vdCcsXG4gICdpdGVtcydcbl1cblxuY29uc3QgZGVmYXVsdFJlc29sdmVycyA9IHtcbiAgdHlwZShjb21wYWN0ZWQpIHtcbiAgICBpZiAoY29tcGFjdGVkLnNvbWUoQXJyYXkuaXNBcnJheSkpIHtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBjb21wYWN0ZWQubWFwKGZ1bmN0aW9uKHZhbCkge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWwpXG4gICAgICAgICAgPyB2YWxcbiAgICAgICAgICA6IFt2YWxdXG4gICAgICB9KVxuICAgICAgY29uc3QgY29tbW9uID0gaW50ZXJzZWN0aW9uLmFwcGx5KG51bGwsIG5vcm1hbGl6ZWQpXG5cbiAgICAgIGlmIChjb21tb24ubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHJldHVybiBjb21tb25bMF1cbiAgICAgIH0gZWxzZSBpZiAoY29tbW9uLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgcmV0dXJuIHVuaXEoY29tbW9uKVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgZGVwZW5kZW5jaWVzKGNvbXBhY3RlZCwgcGF0aHMsIG1lcmdlU2NoZW1hcykge1xuICAgIGNvbnN0IGFsbENoaWxkcmVuID0gYWxsVW5pcXVlS2V5cyhjb21wYWN0ZWQpXG5cbiAgICByZXR1cm4gYWxsQ2hpbGRyZW4ucmVkdWNlKGZ1bmN0aW9uKGFsbCwgY2hpbGRLZXkpIHtcbiAgICAgIGNvbnN0IGNoaWxkU2NoZW1hcyA9IGdldFZhbHVlcyhjb21wYWN0ZWQsIGNoaWxkS2V5KVxuICAgICAgbGV0IGlubmVyQ29tcGFjdGVkID0gdW5pcVdpdGgoY2hpbGRTY2hlbWFzLmZpbHRlcihub3RVbmRlZmluZWQpLCBpc0VxdWFsKVxuXG4gICAgICAvLyB0byBzdXBwb3J0IGRlcGVuZGVuY2llc1xuICAgICAgY29uc3QgaW5uZXJBcnJheXMgPSBpbm5lckNvbXBhY3RlZC5maWx0ZXIoQXJyYXkuaXNBcnJheSlcblxuICAgICAgaWYgKGlubmVyQXJyYXlzLmxlbmd0aCkge1xuICAgICAgICBpZiAoaW5uZXJBcnJheXMubGVuZ3RoID09PSBpbm5lckNvbXBhY3RlZC5sZW5ndGgpIHtcbiAgICAgICAgICBhbGxbY2hpbGRLZXldID0gc3RyaW5nQXJyYXkoaW5uZXJDb21wYWN0ZWQpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgaW5uZXJTY2hlbWFzID0gaW5uZXJDb21wYWN0ZWQuZmlsdGVyKGlzU2NoZW1hKVxuICAgICAgICAgIGNvbnN0IGFycmF5TWV0YVNjaGVhbXMgPSBpbm5lckFycmF5cy5tYXAoY3JlYXRlUmVxdWlyZWRNZXRhQXJyYXkpXG4gICAgICAgICAgYWxsW2NoaWxkS2V5XSA9IG1lcmdlU2NoZW1hcyhpbm5lclNjaGVtYXMuY29uY2F0KGFycmF5TWV0YVNjaGVhbXMpLCBjaGlsZEtleSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWxsXG4gICAgICB9XG5cbiAgICAgIGlubmVyQ29tcGFjdGVkID0gdW5pcVdpdGgoaW5uZXJDb21wYWN0ZWQsIGNvbXBhcmUpXG5cbiAgICAgIGFsbFtjaGlsZEtleV0gPSBtZXJnZVNjaGVtYXMoaW5uZXJDb21wYWN0ZWQsIGNoaWxkS2V5KVxuICAgICAgcmV0dXJuIGFsbFxuICAgIH0sIHt9KVxuICB9LFxuICBvbmVPZihjb21wYWN0ZWQsIHBhdGhzLCBtZXJnZVNjaGVtYXMpIHtcbiAgICBjb25zdCBjb21iaW5hdGlvbnMgPSBnZXRBbnlPZkNvbWJpbmF0aW9ucyhjbG9uZURlZXAoY29tcGFjdGVkKSlcbiAgICBjb25zdCByZXN1bHQgPSB0cnlNZXJnZVNjaGVtYUdyb3Vwcyhjb21iaW5hdGlvbnMsIG1lcmdlU2NoZW1hcylcbiAgICBjb25zdCB1bmlxdWUgPSB1bmlxV2l0aChyZXN1bHQsIGNvbXBhcmUpXG5cbiAgICBpZiAodW5pcXVlLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHVuaXF1ZVxuICAgIH1cbiAgfSxcbiAgbm90KGNvbXBhY3RlZCkge1xuICAgIHJldHVybiB7IGFueU9mOiBjb21wYWN0ZWQgfVxuICB9LFxuICBwYXR0ZXJuKGNvbXBhY3RlZCkge1xuICAgIHJldHVybiBjb21wYWN0ZWQubWFwKHIgPT4gJyg/PScgKyByICsgJyknKS5qb2luKCcnKVxuICB9LFxuICBtdWx0aXBsZU9mKGNvbXBhY3RlZCkge1xuICAgIGxldCBpbnRlZ2VycyA9IGNvbXBhY3RlZC5zbGljZSgwKVxuICAgIGxldCBmYWN0b3IgPSAxXG4gICAgd2hpbGUgKGludGVnZXJzLnNvbWUobiA9PiAhTnVtYmVyLmlzSW50ZWdlcihuKSkpIHtcbiAgICAgIGludGVnZXJzID0gaW50ZWdlcnMubWFwKG4gPT4gbiAqIDEwKVxuICAgICAgZmFjdG9yID0gZmFjdG9yICogMTBcbiAgICB9XG4gICAgcmV0dXJuIGNvbXB1dGVMY20oaW50ZWdlcnMpIC8gZmFjdG9yXG4gIH0sXG4gIGVudW0oY29tcGFjdGVkKSB7XG4gICAgY29uc3QgZW51bXMgPSBpbnRlcnNlY3Rpb25XaXRoLmFwcGx5KG51bGwsIGNvbXBhY3RlZC5jb25jYXQoaXNFcXVhbCkpXG4gICAgaWYgKGVudW1zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHNvcnRCeShlbnVtcylcbiAgICB9XG4gIH1cbn1cblxuZGVmYXVsdFJlc29sdmVycy4kaWQgPSBmaXJzdFxuZGVmYXVsdFJlc29sdmVycy4kcmVmID0gZmlyc3RcbmRlZmF1bHRSZXNvbHZlcnMuJHNjaGVtYSA9IGZpcnN0XG5kZWZhdWx0UmVzb2x2ZXJzLmFkZGl0aW9uYWxJdGVtcyA9IHNjaGVtYVJlc29sdmVyXG5kZWZhdWx0UmVzb2x2ZXJzLmFkZGl0aW9uYWxQcm9wZXJ0aWVzID0gc2NoZW1hUmVzb2x2ZXJcbmRlZmF1bHRSZXNvbHZlcnMuYW55T2YgPSBkZWZhdWx0UmVzb2x2ZXJzLm9uZU9mXG5kZWZhdWx0UmVzb2x2ZXJzLmNvbnRhaW5zID0gc2NoZW1hUmVzb2x2ZXJcbmRlZmF1bHRSZXNvbHZlcnMuZGVmYXVsdCA9IGZpcnN0XG5kZWZhdWx0UmVzb2x2ZXJzLmRlZmluaXRpb25zID0gZGVmYXVsdFJlc29sdmVycy5kZXBlbmRlbmNpZXNcbmRlZmF1bHRSZXNvbHZlcnMuZGVzY3JpcHRpb24gPSBmaXJzdFxuZGVmYXVsdFJlc29sdmVycy5leGFtcGxlcyA9IGV4YW1wbGVzXG5kZWZhdWx0UmVzb2x2ZXJzLmV4Y2x1c2l2ZU1heGltdW0gPSBtaW5pbXVtVmFsdWVcbmRlZmF1bHRSZXNvbHZlcnMuZXhjbHVzaXZlTWluaW11bSA9IG1heGltdW1WYWx1ZVxuZGVmYXVsdFJlc29sdmVycy5pdGVtcyA9IGl0ZW1zUmVzb2x2ZXJcbmRlZmF1bHRSZXNvbHZlcnMubWF4aW11bSA9IG1pbmltdW1WYWx1ZVxuZGVmYXVsdFJlc29sdmVycy5tYXhJdGVtcyA9IG1pbmltdW1WYWx1ZVxuZGVmYXVsdFJlc29sdmVycy5tYXhMZW5ndGggPSBtaW5pbXVtVmFsdWVcbmRlZmF1bHRSZXNvbHZlcnMubWF4UHJvcGVydGllcyA9IG1pbmltdW1WYWx1ZVxuZGVmYXVsdFJlc29sdmVycy5taW5pbXVtID0gbWF4aW11bVZhbHVlXG5kZWZhdWx0UmVzb2x2ZXJzLm1pbkl0ZW1zID0gbWF4aW11bVZhbHVlXG5kZWZhdWx0UmVzb2x2ZXJzLm1pbkxlbmd0aCA9IG1heGltdW1WYWx1ZVxuZGVmYXVsdFJlc29sdmVycy5taW5Qcm9wZXJ0aWVzID0gbWF4aW11bVZhbHVlXG5kZWZhdWx0UmVzb2x2ZXJzLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzUmVzb2x2ZXJcbmRlZmF1bHRSZXNvbHZlcnMucHJvcGVydHlOYW1lcyA9IHNjaGVtYVJlc29sdmVyXG5kZWZhdWx0UmVzb2x2ZXJzLnJlcXVpcmVkID0gcmVxdWlyZWRcbmRlZmF1bHRSZXNvbHZlcnMudGl0bGUgPSBmaXJzdFxuZGVmYXVsdFJlc29sdmVycy51bmlxdWVJdGVtcyA9IHVuaXF1ZUl0ZW1zXG5cbmNvbnN0IGRlZmF1bHRDb21wbGV4UmVzb2x2ZXJzID0ge1xuICBwcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzUmVzb2x2ZXIsXG4gIGl0ZW1zOiBpdGVtc1Jlc29sdmVyXG59XG5cbmZ1bmN0aW9uIG1lcmdlcihyb290U2NoZW1hLCBvcHRpb25zLCB0b3RhbFNjaGVtYXMpIHtcbiAgdG90YWxTY2hlbWFzID0gdG90YWxTY2hlbWFzIHx8IFtdXG4gIG9wdGlvbnMgPSBkZWZhdWx0c0RlZXAob3B0aW9ucywge1xuICAgIGlnbm9yZUFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICByZXNvbHZlcnM6IGRlZmF1bHRSZXNvbHZlcnMsXG4gICAgY29tcGxleFJlc29sdmVyczogZGVmYXVsdENvbXBsZXhSZXNvbHZlcnMsXG4gICAgZGVlcDogdHJ1ZVxuICB9KVxuXG4gIGNvbnN0IGNvbXBsZXhSZXNvbHZlcnMgPSBPYmplY3QuZW50cmllcyhvcHRpb25zLmNvbXBsZXhSZXNvbHZlcnMpXG5cbiAgZnVuY3Rpb24gbWVyZ2VTY2hlbWFzKHNjaGVtYXMsIGJhc2UsIHBhcmVudHMpIHtcbiAgICBzY2hlbWFzID0gY2xvbmVEZWVwKHNjaGVtYXMuZmlsdGVyKG5vdFVuZGVmaW5lZCkpXG4gICAgcGFyZW50cyA9IHBhcmVudHMgfHwgW11cbiAgICBjb25zdCBtZXJnZWQgPSBpc1BsYWluT2JqZWN0KGJhc2UpXG4gICAgICA/IGJhc2VcbiAgICAgIDoge31cblxuICAgIC8vIHJldHVybiB1bmRlZmluZWQsIGFuIGVtcHR5IHNjaGVtYVxuICAgIGlmICghc2NoZW1hcy5sZW5ndGgpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChzY2hlbWFzLnNvbWUoaXNGYWxzZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGlmIChzY2hlbWFzLmV2ZXJ5KGlzVHJ1ZSkpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgLy8gdGhlcmUgYXJlIG5vIGZhbHNlIGFuZCB3ZSBkb24ndCBuZWVkIHRoZSB0cnVlIG9uZXMgYXMgdGhleSBhY2NlcHQgZXZlcnl0aGluZ1xuICAgIHNjaGVtYXMgPSBzY2hlbWFzLmZpbHRlcihpc1BsYWluT2JqZWN0KVxuXG4gICAgY29uc3QgYWxsS2V5cyA9IGFsbFVuaXF1ZUtleXMoc2NoZW1hcylcbiAgICBpZiAob3B0aW9ucy5kZWVwICYmIGNvbnRhaW5zKGFsbEtleXMsICdhbGxPZicpKSB7XG4gICAgICByZXR1cm4gbWVyZ2VyKHtcbiAgICAgICAgYWxsT2Y6IHNjaGVtYXNcbiAgICAgIH0sIG9wdGlvbnMsIHRvdGFsU2NoZW1hcylcbiAgICB9XG5cbiAgICBjb25zdCBjb21wbGV4S2V5c0FyciA9IGNvbXBsZXhSZXNvbHZlcnMubWFwKChbbWFpbktleVdvcmQsIHJlc29sdmVyQ29uZl0pID0+XG4gICAgICBhbGxLZXlzLmZpbHRlcihrID0+IHJlc29sdmVyQ29uZi5rZXl3b3Jkcy5pbmNsdWRlcyhrKSkpXG5cbiAgICAvLyByZW1vdmUgYWxsIGNvbXBsZXgga2V5cyBiZWZvcmUgc2ltcGxlIHJlc29sdmVyc1xuICAgIGNvbXBsZXhLZXlzQXJyLmZvckVhY2goa2V5cyA9PiBwdWxsQWxsKGFsbEtleXMsIGtleXMpKVxuXG4gICAgLy8gY2FsbCBhbGwgc2ltcGxlIHJlc29sdmVycyBmb3IgcmVsZXZhbnQga2V5d29yZHNcbiAgICBhbGxLZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSBnZXRWYWx1ZXMoc2NoZW1hcywga2V5KVxuICAgICAgY29uc3QgY29tcGFjdGVkID0gdW5pcVdpdGgodmFsdWVzLmZpbHRlcihub3RVbmRlZmluZWQpLCBjb21wYXJlUHJvcChrZXkpKVxuXG4gICAgICAvLyBhcnJheXByb3BzIGxpa2UgYW55T2YgYW5kIG9uZU9mIG11c3QgYmUgbWVyZ2VkIGZpcnN0LCBhcyB0aGV5IGNvbnRhaW5zIHNjaGVtYXNcbiAgICAgIC8vIGFsbE9mIGlzIHRyZWF0ZWQgZGlmZmVyZW50bHkgYWxsdG9nZXRoZXJcbiAgICAgIGlmIChjb21wYWN0ZWQubGVuZ3RoID09PSAxICYmIGNvbnRhaW5zKHNjaGVtYUFycmF5cywga2V5KSkge1xuICAgICAgICBtZXJnZWRba2V5XSA9IGNvbXBhY3RlZFswXS5tYXAoc2NoZW1hID0+IG1lcmdlU2NoZW1hcyhbc2NoZW1hXSwgc2NoZW1hKSlcbiAgICAgICAgLy8gcHJvcCBncm91cHMgbXVzdCBhbHdheXMgYmUgcmVzb2x2ZWRcbiAgICAgIH0gZWxzZSBpZiAoY29tcGFjdGVkLmxlbmd0aCA9PT0gMSAmJiAhY29udGFpbnMoc2NoZW1hR3JvdXBQcm9wcywga2V5KSAmJiAhY29udGFpbnMoc2NoZW1hUHJvcHMsIGtleSkpIHtcbiAgICAgICAgbWVyZ2VkW2tleV0gPSBjb21wYWN0ZWRbMF1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVyID0gb3B0aW9ucy5yZXNvbHZlcnNba2V5XSB8fCBvcHRpb25zLnJlc29sdmVycy5kZWZhdWx0UmVzb2x2ZXJcbiAgICAgICAgaWYgKCFyZXNvbHZlcikgdGhyb3cgbmV3IEVycm9yKCdObyByZXNvbHZlciBmb3VuZCBmb3Iga2V5ICcgKyBrZXkgKyAnLiBZb3UgY2FuIHByb3ZpZGUgYSByZXNvbHZlciBmb3IgdGhpcyBrZXl3b3JkIGluIHRoZSBvcHRpb25zLCBvciBwcm92aWRlIGEgZGVmYXVsdCByZXNvbHZlci4nKVxuXG4gICAgICAgIGNvbnN0IG1lcmdlciA9IChzY2hlbWFzLCBleHRyYUtleSA9IFtdKSA9PiBtZXJnZVNjaGVtYXMoc2NoZW1hcywgbnVsbCwgcGFyZW50cy5jb25jYXQoa2V5LCBleHRyYUtleSkpXG4gICAgICAgIG1lcmdlZFtrZXldID0gcmVzb2x2ZXIoY29tcGFjdGVkLCBwYXJlbnRzLmNvbmNhdChrZXkpLCBtZXJnZXIsIG9wdGlvbnMpXG5cbiAgICAgICAgaWYgKG1lcmdlZFtrZXldID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aHJvd0luY29tcGF0aWJsZShjb21wYWN0ZWQsIHBhcmVudHMuY29uY2F0KGtleSkpXG4gICAgICAgIH0gZWxzZSBpZiAobWVyZ2VkW2tleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGRlbGV0ZSBtZXJnZWRba2V5XVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcblxuICAgIHJldHVybiBjb21wbGV4UmVzb2x2ZXJzLnJlZHVjZSgoYWxsLCBbcmVzb2x2ZXJLZXl3b3JkLCBjb25maWddLCBpbmRleCkgPT4gKHtcbiAgICAgIC4uLmFsbCxcbiAgICAgIC4uLmNhbGxHcm91cFJlc29sdmVyKGNvbXBsZXhLZXlzQXJyW2luZGV4XSwgcmVzb2x2ZXJLZXl3b3JkLCBzY2hlbWFzLCBtZXJnZVNjaGVtYXMsIG9wdGlvbnMsIHBhcmVudHMpXG4gICAgfSksIG1lcmdlZClcbiAgfVxuXG4gIGNvbnN0IGFsbFNjaGVtYXMgPSBmbGF0dGVuRGVlcChnZXRBbGxPZihyb290U2NoZW1hKSlcbiAgY29uc3QgbWVyZ2VkID0gbWVyZ2VTY2hlbWFzKGFsbFNjaGVtYXMpXG5cbiAgcmV0dXJuIG1lcmdlZFxufVxuXG5tZXJnZXIub3B0aW9ucyA9IHtcbiAgcmVzb2x2ZXJzOiBkZWZhdWx0UmVzb2x2ZXJzXG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWVyZ2VyXG4iLCJpbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC9nZXQnO1xuaW1wb3J0IGlzU3RyaW5nIGZyb20gJ2xvZGFzaC9pc1N0cmluZyc7XG4vKiogUmV0dXJucyB0aGUgYGRpc2NyaW1pbmF0b3IucHJvcGVydHlOYW1lYCB3aGVuIGRlZmluZWQgaW4gdGhlIGBzY2hlbWFgIGlmIGl0IGlzIGEgc3RyaW5nLiBBIHdhcm5pbmcgaXMgZ2VuZXJhdGVkIHdoZW5cbiAqIGl0IGlzIG5vdCBhIHN0cmluZy4gUmV0dXJucyBgdW5kZWZpbmVkYCB3aGVuIGEgdmFsaWQgZGlzY3JpbWluYXRvciBpcyBub3QgcHJlc2VudC5cbiAqXG4gKiBAcGFyYW0gc2NoZW1hIC0gVGhlIHNjaGVtYSBmcm9tIHdoaWNoIHRoZSBkaXNjcmltaW5hdG9yIGlzIHBvdGVudGlhbGx5IG9idGFpbmVkXG4gKiBAcmV0dXJucyAtIFRoZSBgZGlzY3JpbWluYXRvci5wcm9wZXJ0eU5hbWVgIGlmIGl0IGV4aXN0cyBpbiB0aGUgc2NoZW1hLCBvdGhlcndpc2UgYHVuZGVmaW5lZGBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0RGlzY3JpbWluYXRvckZpZWxkRnJvbVNjaGVtYShzY2hlbWEpIHtcbiAgICBsZXQgZGlzY3JpbWluYXRvcjtcbiAgICBjb25zdCBtYXliZVN0cmluZyA9IGdldChzY2hlbWEsICdkaXNjcmltaW5hdG9yLnByb3BlcnR5TmFtZScsIHVuZGVmaW5lZCk7XG4gICAgaWYgKGlzU3RyaW5nKG1heWJlU3RyaW5nKSkge1xuICAgICAgICBkaXNjcmltaW5hdG9yID0gbWF5YmVTdHJpbmc7XG4gICAgfVxuICAgIGVsc2UgaWYgKG1heWJlU3RyaW5nICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBFeHBlY3RpbmcgZGlzY3JpbWluYXRvciB0byBiZSBhIHN0cmluZywgZ290IFwiJHt0eXBlb2YgbWF5YmVTdHJpbmd9XCIgaW5zdGVhZGApO1xuICAgIH1cbiAgICByZXR1cm4gZGlzY3JpbWluYXRvcjtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldERpc2NyaW1pbmF0b3JGaWVsZEZyb21TY2hlbWEuanMubWFwIiwiLyoqIEdpdmVuIGEgc3BlY2lmaWMgYHZhbHVlYCBhdHRlbXB0cyB0byBndWVzcyB0aGUgdHlwZSBvZiBhIHNjaGVtYSBlbGVtZW50LiBJbiB0aGUgY2FzZSB3aGVyZSB3ZSBoYXZlIHRvIGltcGxpY2l0bHlcbiAqICBjcmVhdGUgYSBzY2hlbWEsIGl0IGlzIHVzZWZ1bCB0byBrbm93IHdoYXQgdHlwZSB0byB1c2UgYmFzZWQgb24gdGhlIGRhdGEgd2UgYXJlIGRlZmluaW5nLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSBmcm9tIHdoaWNoIHRvIGd1ZXNzIHRoZSB0eXBlXG4gKiBAcmV0dXJucyAtIFRoZSBiZXN0IGd1ZXNzIGZvciB0aGUgb2JqZWN0IHR5cGVcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ3Vlc3NUeXBlKHZhbHVlKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiAnYXJyYXknO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gJ3N0cmluZyc7XG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiAnbnVsbCc7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgICByZXR1cm4gJ2Jvb2xlYW4nO1xuICAgIH1cbiAgICBpZiAoIWlzTmFOKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gJ251bWJlcic7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiAnb2JqZWN0JztcbiAgICB9XG4gICAgLy8gRGVmYXVsdCB0byBzdHJpbmcgaWYgd2UgY2FuJ3QgZmlndXJlIGl0IG91dFxuICAgIHJldHVybiAnc3RyaW5nJztcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWd1ZXNzVHlwZS5qcy5tYXAiLCJ2YXIgYmFzZUZsYXR0ZW4gPSByZXF1aXJlKCcuL19iYXNlRmxhdHRlbicpLFxuICAgIGJhc2VSZXN0ID0gcmVxdWlyZSgnLi9fYmFzZVJlc3QnKSxcbiAgICBiYXNlVW5pcSA9IHJlcXVpcmUoJy4vX2Jhc2VVbmlxJyksXG4gICAgaXNBcnJheUxpa2VPYmplY3QgPSByZXF1aXJlKCcuL2lzQXJyYXlMaWtlT2JqZWN0Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB1bmlxdWUgdmFsdWVzLCBpbiBvcmRlciwgZnJvbSBhbGwgZ2l2ZW4gYXJyYXlzIHVzaW5nXG4gKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBBcnJheVxuICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgY29tYmluZWQgdmFsdWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnVuaW9uKFsyXSwgWzEsIDJdKTtcbiAqIC8vID0+IFsyLCAxXVxuICovXG52YXIgdW5pb24gPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgcmV0dXJuIGJhc2VVbmlxKGJhc2VGbGF0dGVuKGFycmF5cywgMSwgaXNBcnJheUxpa2VPYmplY3QsIHRydWUpKTtcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHVuaW9uO1xuIiwiaW1wb3J0IGd1ZXNzVHlwZSBmcm9tICcuL2d1ZXNzVHlwZSc7XG4vKiogR2V0cyB0aGUgdHlwZSBvZiBhIGdpdmVuIGBzY2hlbWFgLiBJZiB0aGUgdHlwZSBpcyBub3QgZXhwbGljaXRseSBkZWZpbmVkLCB0aGVuIGFuIGF0dGVtcHQgaXMgbWFkZSB0byBpbmZlciBpdCBmcm9tXG4gKiBvdGhlciBlbGVtZW50cyBvZiB0aGUgc2NoZW1hIGFzIGZvbGxvd3M6XG4gKiAtIHNjaGVtYS5jb25zdDogUmV0dXJucyB0aGUgYGd1ZXNzVHlwZSgpYCBvZiB0aGF0IHZhbHVlXG4gKiAtIHNjaGVtYS5lbnVtOiBSZXR1cm5zIGBzdHJpbmdgXG4gKiAtIHNjaGVtYS5wcm9wZXJ0aWVzOiBSZXR1cm5zIGBvYmplY3RgXG4gKiAtIHNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllczogUmV0dXJucyBgb2JqZWN0YFxuICogLSB0eXBlIGlzIGFuIGFycmF5IHdpdGggYSBsZW5ndGggb2YgMiBhbmQgb25lIHR5cGUgaXMgJ251bGwnOiBSZXR1cm5zIHRoZSBvdGhlciB0eXBlXG4gKlxuICogQHBhcmFtIHNjaGVtYSAtIFRoZSBzY2hlbWEgZm9yIHdoaWNoIHRvIGdldCB0aGUgdHlwZVxuICogQHJldHVybnMgLSBUaGUgdHlwZSBvZiB0aGUgc2NoZW1hXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFNjaGVtYVR5cGUoc2NoZW1hKSB7XG4gICAgbGV0IHsgdHlwZSB9ID0gc2NoZW1hO1xuICAgIGlmICghdHlwZSAmJiBzY2hlbWEuY29uc3QpIHtcbiAgICAgICAgcmV0dXJuIGd1ZXNzVHlwZShzY2hlbWEuY29uc3QpO1xuICAgIH1cbiAgICBpZiAoIXR5cGUgJiYgc2NoZW1hLmVudW0pIHtcbiAgICAgICAgcmV0dXJuICdzdHJpbmcnO1xuICAgIH1cbiAgICBpZiAoIXR5cGUgJiYgKHNjaGVtYS5wcm9wZXJ0aWVzIHx8IHNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcykpIHtcbiAgICAgICAgcmV0dXJuICdvYmplY3QnO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0eXBlKSkge1xuICAgICAgICBpZiAodHlwZS5sZW5ndGggPT09IDIgJiYgdHlwZS5pbmNsdWRlcygnbnVsbCcpKSB7XG4gICAgICAgICAgICB0eXBlID0gdHlwZS5maW5kKCh0eXBlKSA9PiB0eXBlICE9PSAnbnVsbCcpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdHlwZSA9IHR5cGVbMF07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHR5cGU7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXRTY2hlbWFUeXBlLmpzLm1hcCIsImltcG9ydCB1bmlvbiBmcm9tICdsb2Rhc2gvdW5pb24nO1xuaW1wb3J0IHsgUkVRVUlSRURfS0VZIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IGdldFNjaGVtYVR5cGUgZnJvbSAnLi9nZXRTY2hlbWFUeXBlJztcbmltcG9ydCBpc09iamVjdCBmcm9tICcuL2lzT2JqZWN0Jztcbi8qKiBSZWN1cnNpdmVseSBtZXJnZSBkZWVwbHkgbmVzdGVkIHNjaGVtYXMuIFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYG1lcmdlU2NoZW1hc2AgYW5kIGBtZXJnZU9iamVjdHNgIGlzIHRoYXRcbiAqIGBtZXJnZVNjaGVtYXNgIG9ubHkgY29uY2F0cyBhcnJheXMgZm9yIHZhbHVlcyB1bmRlciB0aGUgJ3JlcXVpcmVkJyBrZXl3b3JkLCBhbmQgd2hlbiBpdCBkb2VzLCBpdCBkb2Vzbid0IGluY2x1ZGVcbiAqIGR1cGxpY2F0ZSB2YWx1ZXMuXG4gKlxuICogQHBhcmFtIG9iajEgLSBUaGUgZmlyc3Qgc2NoZW1hIG9iamVjdCB0byBtZXJnZVxuICogQHBhcmFtIG9iajIgLSBUaGUgc2Vjb25kIHNjaGVtYSBvYmplY3QgdG8gbWVyZ2VcbiAqIEByZXR1cm5zIC0gVGhlIG1lcmdlZCBzY2hlbWEgb2JqZWN0XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1lcmdlU2NoZW1hcyhvYmoxLCBvYmoyKSB7XG4gICAgY29uc3QgYWNjID0gT2JqZWN0LmFzc2lnbih7fSwgb2JqMSk7IC8vIFByZXZlbnQgbXV0YXRpb24gb2Ygc291cmNlIG9iamVjdC5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqMikucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgICBjb25zdCBsZWZ0ID0gb2JqMSA/IG9iajFba2V5XSA6IHt9LCByaWdodCA9IG9iajJba2V5XTtcbiAgICAgICAgaWYgKG9iajEgJiYga2V5IGluIG9iajEgJiYgaXNPYmplY3QocmlnaHQpKSB7XG4gICAgICAgICAgICBhY2Nba2V5XSA9IG1lcmdlU2NoZW1hcyhsZWZ0LCByaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAob2JqMSAmJlxuICAgICAgICAgICAgb2JqMiAmJlxuICAgICAgICAgICAgKGdldFNjaGVtYVR5cGUob2JqMSkgPT09ICdvYmplY3QnIHx8IGdldFNjaGVtYVR5cGUob2JqMikgPT09ICdvYmplY3QnKSAmJlxuICAgICAgICAgICAga2V5ID09PSBSRVFVSVJFRF9LRVkgJiZcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkobGVmdCkgJiZcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkocmlnaHQpKSB7XG4gICAgICAgICAgICAvLyBEb24ndCBpbmNsdWRlIGR1cGxpY2F0ZSB2YWx1ZXMgd2hlbiBtZXJnaW5nICdyZXF1aXJlZCcgZmllbGRzLlxuICAgICAgICAgICAgYWNjW2tleV0gPSB1bmlvbihsZWZ0LCByaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBhY2Nba2V5XSA9IHJpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgYWNjKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1lcmdlU2NoZW1hcy5qcy5tYXAiLCJpbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC9nZXQnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoL2lzRXF1YWwnO1xuaW1wb3J0IHNldCBmcm9tICdsb2Rhc2gvc2V0JztcbmltcG9ydCB0aW1lcyBmcm9tICdsb2Rhc2gvdGltZXMnO1xuaW1wb3J0IHRyYW5zZm9ybSBmcm9tICdsb2Rhc2gvdHJhbnNmb3JtJztcbmltcG9ydCBtZXJnZSBmcm9tICdsb2Rhc2gvbWVyZ2UnO1xuaW1wb3J0IGZsYXR0ZW5EZWVwIGZyb20gJ2xvZGFzaC9mbGF0dGVuRGVlcCc7XG5pbXBvcnQgdW5pcSBmcm9tICdsb2Rhc2gvdW5pcSc7XG5pbXBvcnQgbWVyZ2VBbGxPZiBmcm9tICdqc29uLXNjaGVtYS1tZXJnZS1hbGxvZic7XG5pbXBvcnQgeyBBRERJVElPTkFMX1BST1BFUlRJRVNfS0VZLCBBRERJVElPTkFMX1BST1BFUlRZX0ZMQUcsIEFMTF9PRl9LRVksIEFOWV9PRl9LRVksIERFUEVOREVOQ0lFU19LRVksIElGX0tFWSwgT05FX09GX0tFWSwgUkVGX0tFWSwgUFJPUEVSVElFU19LRVksIElURU1TX0tFWSwgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IGZpbmRTY2hlbWFEZWZpbml0aW9uLCB7IHNwbGl0S2V5RWxlbWVudEZyb21PYmplY3QgfSBmcm9tICcuLi9maW5kU2NoZW1hRGVmaW5pdGlvbic7XG5pbXBvcnQgZ2V0RGlzY3JpbWluYXRvckZpZWxkRnJvbVNjaGVtYSBmcm9tICcuLi9nZXREaXNjcmltaW5hdG9yRmllbGRGcm9tU2NoZW1hJztcbmltcG9ydCBndWVzc1R5cGUgZnJvbSAnLi4vZ3Vlc3NUeXBlJztcbmltcG9ydCBpc09iamVjdCBmcm9tICcuLi9pc09iamVjdCc7XG5pbXBvcnQgbWVyZ2VTY2hlbWFzIGZyb20gJy4uL21lcmdlU2NoZW1hcyc7XG5pbXBvcnQgZ2V0Rmlyc3RNYXRjaGluZ09wdGlvbiBmcm9tICcuL2dldEZpcnN0TWF0Y2hpbmdPcHRpb24nO1xuLyoqIFJldHJpZXZlcyBhbiBleHBhbmRlZCBzY2hlbWEgdGhhdCBoYXMgaGFkIGFsbCBvZiBpdHMgY29uZGl0aW9ucywgYWRkaXRpb25hbCBwcm9wZXJ0aWVzLCByZWZlcmVuY2VzIGFuZCBkZXBlbmRlbmNpZXNcbiAqIHJlc29sdmVkIGFuZCBtZXJnZWQgaW50byB0aGUgYHNjaGVtYWAgZ2l2ZW4gYSBgdmFsaWRhdG9yYCwgYHJvb3RTY2hlbWFgIGFuZCBgcmF3Rm9ybURhdGFgIHRoYXQgaXMgdXNlZCB0byBkbyB0aGVcbiAqIHBvdGVudGlhbGx5IHJlY3Vyc2l2ZSByZXNvbHV0aW9uLlxuICpcbiAqIEBwYXJhbSB2YWxpZGF0b3IgLSBBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYFZhbGlkYXRvclR5cGVgIGludGVyZmFjZSB0aGF0IHdpbGwgYmUgZm9yd2FyZGVkIHRvIGFsbCB0aGUgQVBJc1xuICogQHBhcmFtIHNjaGVtYSAtIFRoZSBzY2hlbWEgZm9yIHdoaWNoIHJldHJpZXZpbmcgYSBzY2hlbWEgaXMgZGVzaXJlZFxuICogQHBhcmFtIFtyb290U2NoZW1hPXt9XSAtIFRoZSByb290IHNjaGVtYSB0aGF0IHdpbGwgYmUgZm9yd2FyZGVkIHRvIGFsbCB0aGUgQVBJc1xuICogQHBhcmFtIFtyYXdGb3JtRGF0YV0gLSBUaGUgY3VycmVudCBmb3JtRGF0YSwgaWYgYW55LCB0byBhc3Npc3QgcmV0cmlldmluZyBhIHNjaGVtYVxuICogQHBhcmFtIFtleHBlcmltZW50YWxfY3VzdG9tTWVyZ2VBbGxPZl0gLSBPcHRpb25hbCBmdW5jdGlvbiB0aGF0IGFsbG93cyBmb3IgY3VzdG9tIG1lcmdpbmcgb2YgYGFsbE9mYCBzY2hlbWFzXG4gKiBAcmV0dXJucyAtIFRoZSBzY2hlbWEgaGF2aW5nIGl0cyBjb25kaXRpb25zLCBhZGRpdGlvbmFsIHByb3BlcnRpZXMsIHJlZmVyZW5jZXMgYW5kIGRlcGVuZGVuY2llcyByZXNvbHZlZFxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXRyaWV2ZVNjaGVtYSh2YWxpZGF0b3IsIHNjaGVtYSwgcm9vdFNjaGVtYSA9IHt9LCByYXdGb3JtRGF0YSwgZXhwZXJpbWVudGFsX2N1c3RvbU1lcmdlQWxsT2YpIHtcbiAgICByZXR1cm4gcmV0cmlldmVTY2hlbWFJbnRlcm5hbCh2YWxpZGF0b3IsIHNjaGVtYSwgcm9vdFNjaGVtYSwgcmF3Rm9ybURhdGEsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBleHBlcmltZW50YWxfY3VzdG9tTWVyZ2VBbGxPZilbMF07XG59XG4vKiogUmVzb2x2ZXMgYSBjb25kaXRpb25hbCBibG9jayAoaWYvZWxzZS90aGVuKSBieSByZW1vdmluZyB0aGUgY29uZGl0aW9uIGFuZCBtZXJnaW5nIHRoZSBhcHByb3ByaWF0ZSBjb25kaXRpb25hbCBicmFuY2hcbiAqIHdpdGggdGhlIHJlc3Qgb2YgdGhlIHNjaGVtYS4gSWYgYGV4cGFuZEFsbEJyYW5jaGVzYCBpcyB0cnVlLCB0aGVuIHRoZSBgcmV0cmlldmVTY2hlbWFJbnRlcmFsKClgIHJlc3VsdHMgZm9yIGJvdGhcbiAqIGNvbmRpdGlvbnMgd2lsbCBiZSByZXR1cm5lZC5cbiAqXG4gKiBAcGFyYW0gdmFsaWRhdG9yIC0gQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIGBWYWxpZGF0b3JUeXBlYCBpbnRlcmZhY2UgdGhhdCBpcyB1c2VkIHRvIGRldGVjdCB2YWxpZCBzY2hlbWEgY29uZGl0aW9uc1xuICogQHBhcmFtIHNjaGVtYSAtIFRoZSBzY2hlbWEgZm9yIHdoaWNoIHJlc29sdmluZyBhIGNvbmRpdGlvbiBpcyBkZXNpcmVkXG4gKiBAcGFyYW0gcm9vdFNjaGVtYSAtIFRoZSByb290IHNjaGVtYSB0aGF0IHdpbGwgYmUgZm9yd2FyZGVkIHRvIGFsbCB0aGUgQVBJc1xuICogQHBhcmFtIGV4cGFuZEFsbEJyYW5jaGVzIC0gRmxhZywgaWYgdHJ1ZSwgd2lsbCByZXR1cm4gYWxsIHBvc3NpYmxlIGJyYW5jaGVzIG9mIGNvbmRpdGlvbnMsIGFueS9vbmVPZiBhbmRcbiAqICAgICAgICAgIGRlcGVuZGVuY2llcyBhcyBhIGxpc3Qgb2Ygc2NoZW1hc1xuICogQHBhcmFtIHJlY3Vyc2VMaXN0IC0gVGhlIGxpc3Qgb2YgcmVjdXJzaXZlIHJlZmVyZW5jZXMgYWxyZWFkeSBwcm9jZXNzZWRcbiAqIEBwYXJhbSBbZm9ybURhdGFdIC0gVGhlIGN1cnJlbnQgZm9ybURhdGEgdG8gYXNzaXN0IHJldHJpZXZpbmcgYSBzY2hlbWFcbiAqIEBwYXJhbSBbZXhwZXJpbWVudGFsX2N1c3RvbU1lcmdlQWxsT2ZdIC0gT3B0aW9uYWwgZnVuY3Rpb24gdGhhdCBhbGxvd3MgZm9yIGN1c3RvbSBtZXJnaW5nIG9mIGBhbGxPZmAgc2NoZW1hc1xuICogQHJldHVybnMgLSBBIGxpc3Qgb2Ygc2NoZW1hcyB3aXRoIHRoZSBhcHByb3ByaWF0ZSBjb25kaXRpb25zIHJlc29sdmVkLCBwb3NzaWJseSB3aXRoIGFsbCBicmFuY2hlcyBleHBhbmRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNvbmRpdGlvbih2YWxpZGF0b3IsIHNjaGVtYSwgcm9vdFNjaGVtYSwgZXhwYW5kQWxsQnJhbmNoZXMsIHJlY3Vyc2VMaXN0LCBmb3JtRGF0YSwgZXhwZXJpbWVudGFsX2N1c3RvbU1lcmdlQWxsT2YpIHtcbiAgICBjb25zdCB7IGlmOiBleHByZXNzaW9uLCB0aGVuLCBlbHNlOiBvdGhlcndpc2UsIC4uLnJlc29sdmVkU2NoZW1hTGVzc0NvbmRpdGlvbmFsIH0gPSBzY2hlbWE7XG4gICAgY29uc3QgY29uZGl0aW9uVmFsdWUgPSB2YWxpZGF0b3IuaXNWYWxpZChleHByZXNzaW9uLCBmb3JtRGF0YSB8fCB7fSwgcm9vdFNjaGVtYSk7XG4gICAgbGV0IHJlc29sdmVkU2NoZW1hcyA9IFtyZXNvbHZlZFNjaGVtYUxlc3NDb25kaXRpb25hbF07XG4gICAgbGV0IHNjaGVtYXMgPSBbXTtcbiAgICBpZiAoZXhwYW5kQWxsQnJhbmNoZXMpIHtcbiAgICAgICAgaWYgKHRoZW4gJiYgdHlwZW9mIHRoZW4gIT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgc2NoZW1hcyA9IHNjaGVtYXMuY29uY2F0KHJldHJpZXZlU2NoZW1hSW50ZXJuYWwodmFsaWRhdG9yLCB0aGVuLCByb290U2NoZW1hLCBmb3JtRGF0YSwgZXhwYW5kQWxsQnJhbmNoZXMsIHJlY3Vyc2VMaXN0LCBleHBlcmltZW50YWxfY3VzdG9tTWVyZ2VBbGxPZikpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvdGhlcndpc2UgJiYgdHlwZW9mIG90aGVyd2lzZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICBzY2hlbWFzID0gc2NoZW1hcy5jb25jYXQocmV0cmlldmVTY2hlbWFJbnRlcm5hbCh2YWxpZGF0b3IsIG90aGVyd2lzZSwgcm9vdFNjaGVtYSwgZm9ybURhdGEsIGV4cGFuZEFsbEJyYW5jaGVzLCByZWN1cnNlTGlzdCwgZXhwZXJpbWVudGFsX2N1c3RvbU1lcmdlQWxsT2YpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgY29uZGl0aW9uYWxTY2hlbWEgPSBjb25kaXRpb25WYWx1ZSA/IHRoZW4gOiBvdGhlcndpc2U7XG4gICAgICAgIGlmIChjb25kaXRpb25hbFNjaGVtYSAmJiB0eXBlb2YgY29uZGl0aW9uYWxTY2hlbWEgIT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgc2NoZW1hcyA9IHNjaGVtYXMuY29uY2F0KHJldHJpZXZlU2NoZW1hSW50ZXJuYWwodmFsaWRhdG9yLCBjb25kaXRpb25hbFNjaGVtYSwgcm9vdFNjaGVtYSwgZm9ybURhdGEsIGV4cGFuZEFsbEJyYW5jaGVzLCByZWN1cnNlTGlzdCwgZXhwZXJpbWVudGFsX2N1c3RvbU1lcmdlQWxsT2YpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoc2NoZW1hcy5sZW5ndGgpIHtcbiAgICAgICAgcmVzb2x2ZWRTY2hlbWFzID0gc2NoZW1hcy5tYXAoKHMpID0+IG1lcmdlU2NoZW1hcyhyZXNvbHZlZFNjaGVtYUxlc3NDb25kaXRpb25hbCwgcykpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZWRTY2hlbWFzLmZsYXRNYXAoKHMpID0+IHJldHJpZXZlU2NoZW1hSW50ZXJuYWwodmFsaWRhdG9yLCBzLCByb290U2NoZW1hLCBmb3JtRGF0YSwgZXhwYW5kQWxsQnJhbmNoZXMsIHJlY3Vyc2VMaXN0LCBleHBlcmltZW50YWxfY3VzdG9tTWVyZ2VBbGxPZikpO1xufVxuLyoqIEdpdmVuIGEgbGlzdCBvZiBsaXN0cyBvZiBhbGxPZiwgYW55T2Ygb3Igb25lT2YgdmFsdWVzLCBjcmVhdGUgYSBsaXN0IG9mIGxpc3RzIG9mIGFsbCBwZXJtdXRhdGlvbnMgb2YgdGhlIHZhbHVlcy4gVGhlXG4gKiBgbGlzdE9mTGlzdHNgIGlzIGV4cGVjdGVkIHRvIGJlIGFsbCByZXNvbHZlZCB2YWx1ZXMgb2YgdGhlIDFzdC4uLm50aCBzY2hlbWFzIHdpdGhpbiBhbiBgYWxsT2ZgLCBgYW55T2ZgIG9yIGBvbmVPZmAuXG4gKiBGcm9tIHRob3NlIGxpc3RzLCBidWlsZCBhIG1hdHJpeCBmb3IgZWFjaCBgeHh4T2ZgIHdoZXJlIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgc2NoZW1hIGZvciBhIHJvdyBpbiB0aGUgbGlzdCBvZiBsaXN0cy5cbiAqXG4gKiBGb3IgZXhhbXBsZTpcbiAqIC0gSWYgdGhlcmUgYXJlIHRocmVlIHh4eE9mIHJvd3MgKEEsIEIsIEMpIGFuZCB0aGV5IGhhdmUgYmVlbiByZXNvbHZlZCBzdWNoIHRoYXQgdGhlcmUgaXMgb25seSBvbmUgQSwgdHdvIEIgYW5kIHRocmVlXG4gKiAgIEMgc2NoZW1hcyB0aGVuOlxuICogICAtIFRoZSBwZXJtdXRhdGlvbiBmb3IgdGhlIGZpcnN0IHJvdyBpcyBgW1tBXV1gXG4gKiAgIC0gVGhlIHBlcm11dGF0aW9ucyBmb3IgdGhlIHNlY29uZCByb3cgYXJlIGBbW0EsQjFdLCBbQSxCMl1dYFxuICogICAtIFRoZSBwZXJtdXRhdGlvbnMgZm9yIHRoZSB0aGlyZCByb3cgYXJlIGBbW0EsQjEsQzFdLCBbQSxCMSxDMl0sIFtBLEIxLEMzXSwgW0EsQjIsQzFdLCBbQSxCMixDMl0sIFtBLEIyLEMzXV1gXG4gKlxuICogQHBhcmFtIGxpc3RPZkxpc3RzIC0gVGhlIGxpc3Qgb2YgbGlzdHMgb2YgZWxlbWVudHMgdGhhdCByZXByZXNlbnQgdGhlIGFsbE9mLCBhbnlPZiBvciBvbmVPZiByZXNvbHZlZCB2YWx1ZXMgaW4gb3JkZXJcbiAqIEByZXR1cm5zIC0gVGhlIGxpc3Qgb2YgYWxsIHBlcm11dGF0aW9ucyBvZiBzY2hlbWFzIGZvciBhIHNldCBvZiBgeHh4T2Zgc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsUGVybXV0YXRpb25zT2ZYeHhPZihsaXN0T2ZMaXN0cykge1xuICAgIGNvbnN0IGFsbFBlcm11dGF0aW9ucyA9IGxpc3RPZkxpc3RzLnJlZHVjZSgocGVybXV0YXRpb25zLCBsaXN0KSA9PiB7XG4gICAgICAgIC8vIFdoZW4gdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgc2V0IG9mIHNjaGVtYXMgZm9yIGEgcm93LCBkdXBsaWNhdGUgdGhlIHNldCBvZiBwZXJtdXRhdGlvbnMgYW5kIGFkZCBpbiB0aGUgdmFsdWVzXG4gICAgICAgIGlmIChsaXN0Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBsaXN0LmZsYXRNYXAoKGVsZW1lbnQpID0+IHRpbWVzKHBlcm11dGF0aW9ucy5sZW5ndGgsIChpKSA9PiBbLi4ucGVybXV0YXRpb25zW2ldXS5jb25jYXQoZWxlbWVudCkpKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBPdGhlcndpc2UganVzdCBwdXNoIGluIHRoZSBzaW5nbGUgdmFsdWUgaW50byB0aGUgY3VycmVudCBzZXQgb2YgcGVybXV0YXRpb25zXG4gICAgICAgIHBlcm11dGF0aW9ucy5mb3JFYWNoKChwZXJtdXRhdGlvbikgPT4gcGVybXV0YXRpb24ucHVzaChsaXN0WzBdKSk7XG4gICAgICAgIHJldHVybiBwZXJtdXRhdGlvbnM7XG4gICAgfSwgW1tdXSAvLyBTdGFydCB3aXRoIGFuIGVtcHR5IGxpc3RcbiAgICApO1xuICAgIHJldHVybiBhbGxQZXJtdXRhdGlvbnM7XG59XG4vKiogUmVzb2x2ZXMgcmVmZXJlbmNlcyBhbmQgZGVwZW5kZW5jaWVzIHdpdGhpbiBhIHNjaGVtYSBhbmQgaXRzICdhbGxPZicgY2hpbGRyZW4uIFBhc3NlcyB0aGUgYGV4cGFuZEFsbEJyYW5jaGVzYCBmbGFnXG4gKiBkb3duIHRvIHRoZSBgcmV0cmlldmVTY2hlbWFJbnRlcm5hbCgpYCwgYHJlc29sdmVSZWZlcmVuY2UoKWAgYW5kIGByZXNvbHZlRGVwZW5kZW5jaWVzKClgIGhlbHBlciBjYWxscy4gSWZcbiAqIGBleHBhbmRBbGxCcmFuY2hlc2AgaXMgdHJ1ZSwgdGhlbiBhbGwgcG9zc2libGUgZGVwZW5kZW5jaWVzIGFuZC9vciBhbGxPZiBicmFuY2hlcyBhcmUgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIHZhbGlkYXRvciAtIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBgVmFsaWRhdG9yVHlwZWAgaW50ZXJmYWNlIHRoYXQgd2lsbCBiZSBmb3J3YXJkZWQgdG8gYWxsIHRoZSBBUElzXG4gKiBAcGFyYW0gc2NoZW1hIC0gVGhlIHNjaGVtYSBmb3Igd2hpY2ggcmVzb2x2aW5nIGEgc2NoZW1hIGlzIGRlc2lyZWRcbiAqIEBwYXJhbSByb290U2NoZW1hIC0gVGhlIHJvb3Qgc2NoZW1hIHRoYXQgd2lsbCBiZSBmb3J3YXJkZWQgdG8gYWxsIHRoZSBBUElzXG4gKiBAcGFyYW0gZXhwYW5kQWxsQnJhbmNoZXMgLSBGbGFnLCBpZiB0cnVlLCB3aWxsIHJldHVybiBhbGwgcG9zc2libGUgYnJhbmNoZXMgb2YgY29uZGl0aW9ucywgYW55L29uZU9mIGFuZCBkZXBlbmRlbmNpZXNcbiAqICAgICAgICAgIGFzIGEgbGlzdCBvZiBzY2hlbWFzXG4gKiBAcGFyYW0gcmVjdXJzZUxpc3QgLSBUaGUgbGlzdCBvZiByZWN1cnNpdmUgcmVmZXJlbmNlcyBhbHJlYWR5IHByb2Nlc3NlZFxuICogQHBhcmFtIFtmb3JtRGF0YV0gLSBUaGUgY3VycmVudCBmb3JtRGF0YSwgaWYgYW55LCB0byBhc3Npc3QgcmV0cmlldmluZyBhIHNjaGVtYVxuICogQHBhcmFtIFtleHBlcmltZW50YWxfY3VzdG9tTWVyZ2VBbGxPZl0gLSBPcHRpb25hbCBmdW5jdGlvbiB0aGF0IGFsbG93cyBmb3IgY3VzdG9tIG1lcmdpbmcgb2YgYGFsbE9mYCBzY2hlbWFzXG4gKiBAcmV0dXJucyAtIFRoZSBsaXN0IG9mIHNjaGVtYXMgaGF2aW5nIGl0cyByZWZlcmVuY2VzLCBkZXBlbmRlbmNpZXMgYW5kIGFsbE9mIHNjaGVtYXMgcmVzb2x2ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVTY2hlbWEodmFsaWRhdG9yLCBzY2hlbWEsIHJvb3RTY2hlbWEsIGV4cGFuZEFsbEJyYW5jaGVzLCByZWN1cnNlTGlzdCwgZm9ybURhdGEsIGV4cGVyaW1lbnRhbF9jdXN0b21NZXJnZUFsbE9mKSB7XG4gICAgY29uc3QgdXBkYXRlZFNjaGVtYXMgPSByZXNvbHZlUmVmZXJlbmNlKHZhbGlkYXRvciwgc2NoZW1hLCByb290U2NoZW1hLCBleHBhbmRBbGxCcmFuY2hlcywgcmVjdXJzZUxpc3QsIGZvcm1EYXRhKTtcbiAgICBpZiAodXBkYXRlZFNjaGVtYXMubGVuZ3RoID4gMSB8fCB1cGRhdGVkU2NoZW1hc1swXSAhPT0gc2NoZW1hKSB7XG4gICAgICAgIC8vIHJldHVybiB0aGUgdXBkYXRlZFNjaGVtYXMgYXJyYXkgaWYgaXQgaGFzIGVpdGhlciBtdWx0aXBsZSBzY2hlbWFzIHdpdGhpbiBpdFxuICAgICAgICAvLyBPUiB0aGUgZmlyc3Qgc2NoZW1hIGlzIG5vdCB0aGUgc2FtZSBhcyB0aGUgb3JpZ2luYWwgc2NoZW1hXG4gICAgICAgIHJldHVybiB1cGRhdGVkU2NoZW1hcztcbiAgICB9XG4gICAgaWYgKERFUEVOREVOQ0lFU19LRVkgaW4gc2NoZW1hKSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkU2NoZW1hcyA9IHJlc29sdmVEZXBlbmRlbmNpZXModmFsaWRhdG9yLCBzY2hlbWEsIHJvb3RTY2hlbWEsIGV4cGFuZEFsbEJyYW5jaGVzLCByZWN1cnNlTGlzdCwgZm9ybURhdGEpO1xuICAgICAgICByZXR1cm4gcmVzb2x2ZWRTY2hlbWFzLmZsYXRNYXAoKHMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiByZXRyaWV2ZVNjaGVtYUludGVybmFsKHZhbGlkYXRvciwgcywgcm9vdFNjaGVtYSwgZm9ybURhdGEsIGV4cGFuZEFsbEJyYW5jaGVzLCByZWN1cnNlTGlzdCwgZXhwZXJpbWVudGFsX2N1c3RvbU1lcmdlQWxsT2YpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgaWYgKEFMTF9PRl9LRVkgaW4gc2NoZW1hICYmIEFycmF5LmlzQXJyYXkoc2NoZW1hLmFsbE9mKSkge1xuICAgICAgICBjb25zdCBhbGxPZlNjaGVtYUVsZW1lbnRzID0gc2NoZW1hLmFsbE9mLm1hcCgoYWxsT2ZTdWJzY2hlbWEpID0+IHJldHJpZXZlU2NoZW1hSW50ZXJuYWwodmFsaWRhdG9yLCBhbGxPZlN1YnNjaGVtYSwgcm9vdFNjaGVtYSwgZm9ybURhdGEsIGV4cGFuZEFsbEJyYW5jaGVzLCByZWN1cnNlTGlzdCwgZXhwZXJpbWVudGFsX2N1c3RvbU1lcmdlQWxsT2YpKTtcbiAgICAgICAgY29uc3QgYWxsUGVybXV0YXRpb25zID0gZ2V0QWxsUGVybXV0YXRpb25zT2ZYeHhPZihhbGxPZlNjaGVtYUVsZW1lbnRzKTtcbiAgICAgICAgcmV0dXJuIGFsbFBlcm11dGF0aW9ucy5tYXAoKHBlcm11dGF0aW9uKSA9PiAoeyAuLi5zY2hlbWEsIGFsbE9mOiBwZXJtdXRhdGlvbiB9KSk7XG4gICAgfVxuICAgIC8vIE5vICRyZWYgb3IgZGVwZW5kZW5jaWVzIG9yIGFsbE9mIGF0dHJpYnV0ZSB3YXMgZm91bmQsIHJldHVybmluZyB0aGUgb3JpZ2luYWwgc2NoZW1hLlxuICAgIHJldHVybiBbc2NoZW1hXTtcbn1cbi8qKiBSZXNvb